aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore26
-rw-r--r--COPYING674
-rw-r--r--X11/CallbackI.h119
-rw-r--r--X11/Composite.h102
-rw-r--r--X11/CompositeP.h113
-rw-r--r--X11/ConstrainP.h96
-rw-r--r--X11/Constraint.h62
-rw-r--r--X11/ConvertI.h96
-rw-r--r--X11/Core.h65
-rw-r--r--X11/CoreP.h170
-rw-r--r--X11/CreateI.h42
-rw-r--r--X11/EventI.h134
-rw-r--r--X11/HookObjI.h73
-rw-r--r--X11/ImUtil.h30
-rw-r--r--X11/InitialI.h430
-rw-r--r--X11/Intrinsic.h2595
-rw-r--r--X11/IntrinsicI.h229
-rw-r--r--X11/IntrinsicP.h324
-rw-r--r--X11/Object.h63
-rw-r--r--X11/ObjectP.h141
-rw-r--r--X11/PassivGraI.h185
-rw-r--r--X11/RectObj.h63
-rw-r--r--X11/RectObjP.h131
-rw-r--r--X11/ResConfigP.h76
-rw-r--r--X11/ResourceI.h100
-rw-r--r--X11/SelectionI.h168
-rw-r--r--X11/Shell.h564
-rw-r--r--X11/ShellI.h10
-rw-r--r--X11/ShellP.h436
-rw-r--r--X11/StringDefs.h1085
-rw-r--r--X11/ThreadsI.h129
-rw-r--r--X11/TranslateI.h606
-rw-r--r--X11/VarargsI.h66
-rw-r--r--X11/Vendor.h70
-rw-r--r--X11/VendorP.h102
-rw-r--r--X11/XKBlib.h1149
-rw-r--r--X11/Xauth.h149
-rw-r--r--X11/Xaw/AllWidgets.h37
-rw-r--r--X11/Xaw/AsciiSink.h77
-rw-r--r--X11/Xaw/AsciiSinkP.h95
-rw-r--r--X11/Xaw/AsciiSrc.h172
-rw-r--r--X11/Xaw/AsciiSrcP.h139
-rw-r--r--X11/Xaw/AsciiText.h123
-rw-r--r--X11/Xaw/AsciiTextP.h164
-rw-r--r--X11/Xaw/Box.h102
-rw-r--r--X11/Xaw/BoxP.h97
-rw-r--r--X11/Xaw/Cardinals.h42
-rw-r--r--X11/Xaw/Command.h116
-rw-r--r--X11/Xaw/CommandP.h111
-rw-r--r--X11/Xaw/Dialog.h98
-rw-r--r--X11/Xaw/DialogP.h100
-rw-r--r--X11/Xaw/Form.h167
-rw-r--r--X11/Xaw/FormP.h139
-rw-r--r--X11/Xaw/Grip.h96
-rw-r--r--X11/Xaw/GripP.h85
-rw-r--r--X11/Xaw/Label.h132
-rw-r--r--X11/Xaw/LabelP.h115
-rw-r--r--X11/Xaw/List.h234
-rw-r--r--X11/Xaw/ListP.h115
-rw-r--r--X11/Xaw/MenuButtoP.h79
-rw-r--r--X11/Xaw/MenuButton.h89
-rw-r--r--X11/Xaw/MultiSink.h110
-rw-r--r--X11/Xaw/MultiSinkP.h138
-rw-r--r--X11/Xaw/MultiSrc.h130
-rw-r--r--X11/Xaw/MultiSrcP.h179
-rw-r--r--X11/Xaw/Paned.h258
-rw-r--r--X11/Xaw/PanedP.h176
-rw-r--r--X11/Xaw/Panner.h105
-rw-r--r--X11/Xaw/PannerP.h106
-rw-r--r--X11/Xaw/Porthole.h61
-rw-r--r--X11/Xaw/PortholeP.h62
-rw-r--r--X11/Xaw/Repeater.h73
-rw-r--r--X11/Xaw/RepeaterP.h82
-rw-r--r--X11/Xaw/Reports.h55
-rw-r--r--X11/Xaw/Scrollbar.h133
-rw-r--r--X11/Xaw/ScrollbarP.h103
-rw-r--r--X11/Xaw/Simple.h113
-rw-r--r--X11/Xaw/SimpleMenP.h99
-rw-r--r--X11/Xaw/SimpleMenu.h171
-rw-r--r--X11/Xaw/SimpleP.h98
-rw-r--r--X11/Xaw/Sme.h71
-rw-r--r--X11/Xaw/SmeBSB.h96
-rw-r--r--X11/Xaw/SmeBSBP.h92
-rw-r--r--X11/Xaw/SmeLine.h69
-rw-r--r--X11/Xaw/SmeLineP.h73
-rw-r--r--X11/Xaw/SmeP.h88
-rw-r--r--X11/Xaw/StripCharP.h104
-rw-r--r--X11/Xaw/StripChart.h116
-rw-r--r--X11/Xaw/Template.c195
-rw-r--r--X11/Xaw/Template.h67
-rw-r--r--X11/Xaw/TemplateP.h65
-rw-r--r--X11/Xaw/Text.h370
-rw-r--r--X11/Xaw/TextP.h317
-rw-r--r--X11/Xaw/TextSink.h359
-rw-r--r--X11/Xaw/TextSinkP.h300
-rw-r--r--X11/Xaw/TextSrc.h275
-rw-r--r--X11/Xaw/TextSrcP.h258
-rw-r--r--X11/Xaw/Tip.h118
-rw-r--r--X11/Xaw/TipP.h75
-rw-r--r--X11/Xaw/Toggle.h179
-rw-r--r--X11/Xaw/ToggleP.h92
-rw-r--r--X11/Xaw/Tree.h135
-rw-r--r--X11/Xaw/TreeP.h137
-rw-r--r--X11/Xaw/VendorEP.h81
-rw-r--r--X11/Xaw/Viewport.h118
-rw-r--r--X11/Xaw/ViewportP.h107
-rw-r--r--X11/Xaw/XawImP.h210
-rw-r--r--X11/Xaw/XawInit.h62
-rw-r--r--X11/Xcms.h815
-rw-r--r--X11/Xdmcp.h181
-rw-r--r--X11/Xfuncproto.h126
-rw-r--r--X11/Xlib-xcb.h20
-rw-r--r--X11/Xlib.h4032
-rw-r--r--X11/XlibConf.h37
-rw-r--r--X11/Xlibint.h1337
-rw-r--r--X11/Xlocale.h59
-rw-r--r--X11/Xmu/Atoms.h123
-rw-r--r--X11/Xmu/CharSet.h73
-rw-r--r--X11/Xmu/CloseHook.h70
-rw-r--r--X11/Xmu/Converters.h277
-rw-r--r--X11/Xmu/CurUtil.h46
-rw-r--r--X11/Xmu/CvtCache.h59
-rw-r--r--X11/Xmu/DisplayQue.h152
-rw-r--r--X11/Xmu/Drawing.h158
-rw-r--r--X11/Xmu/Editres.h39
-rw-r--r--X11/Xmu/EditresP.h406
-rw-r--r--X11/Xmu/Error.h56
-rw-r--r--X11/Xmu/ExtAgent.h41
-rw-r--r--X11/Xmu/Initer.h55
-rw-r--r--X11/Xmu/Lookup.h124
-rw-r--r--X11/Xmu/Misc.h63
-rw-r--r--X11/Xmu/StdCmap.h116
-rw-r--r--X11/Xmu/StdSel.h54
-rw-r--r--X11/Xmu/SysUtil.h53
-rw-r--r--X11/Xmu/WhitePoint.h63
-rw-r--r--X11/Xmu/WidgetNode.h95
-rw-r--r--X11/Xmu/WinUtil.h61
-rw-r--r--X11/Xmu/Xct.h165
-rw-r--r--X11/Xmu/Xmu.h122
-rw-r--r--X11/Xpoll.h255
-rw-r--r--X11/Xregion.h192
-rw-r--r--X11/Xresource.h358
-rw-r--r--X11/Xtos.h72
-rw-r--r--X11/Xutil.h838
-rw-r--r--X11/Xw32defs.h3
-rw-r--r--X11/Xwindows.h4
-rw-r--r--X11/Xwinsock.h9
-rw-r--r--X11/cursorfont.h111
-rw-r--r--X11/extensions/MITMisc.h14
-rw-r--r--X11/extensions/XEVI.h15
-rw-r--r--X11/extensions/XI2proto.h5
-rw-r--r--X11/extensions/XKBbells.h2
-rw-r--r--X11/extensions/XKBconfig.h2
-rw-r--r--X11/extensions/XKBfile.h26
-rw-r--r--X11/extensions/XKBrules.h5
-rw-r--r--X11/extensions/XKM.h1
-rw-r--r--X11/extensions/XKMformat.h2
-rw-r--r--X11/extensions/XLbx.h111
-rw-r--r--X11/extensions/XShm.h40
-rw-r--r--X11/extensions/Xag.h26
-rw-r--r--X11/extensions/Xcup.h13
-rw-r--r--X11/extensions/Xdbe.h36
-rw-r--r--X11/extensions/Xext.h20
-rw-r--r--X11/extensions/Xge.h13
-rw-r--r--X11/extensions/Xinerama.h74
-rw-r--r--X11/extensions/Xrender.h528
-rw-r--r--X11/extensions/bigreqstr.h4
-rw-r--r--X11/extensions/dpms.h32
-rw-r--r--X11/extensions/extutil.h11
-rw-r--r--X11/extensions/lbxbuf.h51
-rw-r--r--X11/extensions/lbxbufstr.h45
-rw-r--r--X11/extensions/lbximage.h151
-rw-r--r--X11/extensions/multibuf.h118
-rw-r--r--X11/extensions/panoramiXext.h85
-rw-r--r--X11/extensions/recordstr.h6
-rw-r--r--X11/extensions/security.h36
-rw-r--r--X11/extensions/shape.h32
-rw-r--r--X11/extensions/sync.h224
-rw-r--r--X11/extensions/xcmiscstr.h4
-rw-r--r--X11/extensions/xtestext1.h262
-rw-r--r--X11/fonts/bdfint.h90
-rw-r--r--X11/fonts/bitmap.h109
-rw-r--r--X11/fonts/bufio.h93
-rw-r--r--X11/fonts/fntfil.h182
-rw-r--r--X11/fonts/fntfilio.h56
-rw-r--r--X11/fonts/fntfilst.h198
-rw-r--r--X11/fonts/fontenc.h124
-rw-r--r--X11/fonts/fontencc.h36
-rw-r--r--X11/fonts/fontmisc.h142
-rw-r--r--X11/fonts/fontmod.h16
-rw-r--r--X11/fonts/fontutil.h26
-rw-r--r--X11/fonts/fontxlfd.h100
-rw-r--r--X11/fonts/pcf.h102
-rw-r--r--X11/xpm.h478
-rw-r--r--X11/xtrans/Xtrans.c11
-rw-r--r--X11/xtrans/Xtransint.h7
-rw-r--r--X11/xtrans/Xtranslcl.c6
-rwxr-xr-x[-rw-r--r--]X11/xtrans/Xtranssock.c71
-rw-r--r--apps/common/inet.c88
-rw-r--r--apps/common/makefile3
-rw-r--r--apps/xauth/config.h94
-rw-r--r--apps/xauth/gethost.c5
-rw-r--r--apps/xauth/makefile22
-rw-r--r--apps/xauth/process.c2
-rw-r--r--apps/xcalc/makefile24
-rw-r--r--apps/xcalc/xcalc.c2
-rw-r--r--apps/xclock/Clock.c5
-rw-r--r--apps/xclock/makefile31
-rw-r--r--apps/xhost/config.h97
-rw-r--r--apps/xhost/makefile18
-rw-r--r--apps/xhost/xhost.c23
-rw-r--r--apps/xrdb/makefile12
-rw-r--r--apps/xrdb/xrdb.c1
-rw-r--r--apps/xwininfo/config.h109
-rw-r--r--apps/xwininfo/dsimple.c1
-rw-r--r--apps/xwininfo/dsimple.h5
-rw-r--r--apps/xwininfo/makefile19
-rw-r--r--apps/xwininfo/xwininfo.c11
-rw-r--r--bdftopcf/config.h68
-rw-r--r--bdftopcf/makefile14
-rw-r--r--buildall.bat44
-rwxr-xr-xbuildall.sh78
-rw-r--r--building.txt18
-rwxr-xr-xcompare.bat21
-rw-r--r--dxtn/Makefile20
-rw-r--r--dxtn/Makefile.old14
-rw-r--r--dxtn/dxtn.def6
-rw-r--r--dxtn/txc_compress_dxtn.c2
-rwxr-xr-xfilesthatshouldbethesame.py240
-rw-r--r--fontconfig/config.h18
-rw-r--r--fontconfig/fc-case/.gitignore1
-rw-r--r--fontconfig/fc-case/makefile27
-rw-r--r--fontconfig/fc-glyphname/.gitignore1
-rw-r--r--fontconfig/fc-glyphname/makefile26
-rw-r--r--fontconfig/fc-lang/.gitignore1
-rw-r--r--fontconfig/fc-lang/makefile275
-rw-r--r--fontconfig/src/.gitignore4
-rw-r--r--fontconfig/src/cleangperf.py8
-rw-r--r--fontconfig/src/fcatomic.c2
-rw-r--r--fontconfig/src/fccompat.c2
-rw-r--r--fontconfig/src/fcfreetype.c8
-rw-r--r--fontconfig/src/fclist.c2
-rw-r--r--fontconfig/src/fcstat.c2
-rw-r--r--fontconfig/src/fcstdint.h2
-rw-r--r--fontconfig/src/fcxml.c3
-rw-r--r--fontconfig/src/makealias.py36
-rw-r--r--fontconfig/src/makefile62
-rw-r--r--freetype/.gitignore3
-rw-r--r--freetype/builds/amiga/src/base/ftdebug.c2
-rw-r--r--freetype/builds/amiga/src/base/ftsystem.c2
-rw-r--r--freetype/builds/mac/ftmac.c2
-rw-r--r--freetype/builds/unix/ftsystem.c4
-rw-r--r--freetype/builds/vms/ftsystem.c4
-rw-r--r--freetype/builds/win32/ftdebug.c2
-rw-r--r--freetype/builds/win32/visualc/freetype.sln4
-rw-r--r--freetype/builds/win32/visualc/freetype.vcproj3
-rw-r--r--freetype/builds/wince/ftdebug.c2
-rw-r--r--freetype/freetype.sln26
-rw-r--r--freetype/freetype.vcproj1057
-rwxr-xr-xfreetype/freetype.vcxproj679
-rw-r--r--freetype/freetype.vcxproj.filters218
-rw-r--r--freetype/freetypevc10.sln38
-rw-r--r--freetype/ftdump.vcproj222
-rw-r--r--freetype/ftstring.vcproj310
-rw-r--r--freetype/ftview.vcproj310
-rw-r--r--freetype/include/freetype/config/ftconfig.h4
-rw-r--r--freetype/include/freetype/ftadvanc.h2
-rw-r--r--freetype/include/freetype/ftbbox.h2
-rw-r--r--freetype/include/freetype/ftbdf.h2
-rw-r--r--freetype/include/freetype/ftbitmap.h2
-rw-r--r--freetype/include/freetype/ftcid.h2
-rw-r--r--freetype/include/freetype/fterrors.h4
-rw-r--r--freetype/include/freetype/ftgasp.h2
-rw-r--r--freetype/include/freetype/ftglyph.h2
-rw-r--r--freetype/include/freetype/ftgxval.h2
-rw-r--r--freetype/include/freetype/ftgzip.h2
-rw-r--r--freetype/include/freetype/ftincrem.h2
-rw-r--r--freetype/include/freetype/ftlcdfil.h2
-rw-r--r--freetype/include/freetype/ftlist.h2
-rw-r--r--freetype/include/freetype/ftlzw.h2
-rw-r--r--freetype/include/freetype/ftmodapi.h2
-rw-r--r--freetype/include/freetype/ftotval.h2
-rw-r--r--freetype/include/freetype/ftoutln.h2
-rw-r--r--freetype/include/freetype/ftpfr.h2
-rw-r--r--freetype/include/freetype/ftsizes.h2
-rw-r--r--freetype/include/freetype/ftsnames.h2
-rw-r--r--freetype/include/freetype/ftsynth.h2
-rw-r--r--freetype/include/freetype/fttrigon.h2
-rw-r--r--freetype/include/freetype/fttypes.h6
-rw-r--r--freetype/include/freetype/ftwinfnt.h2
-rw-r--r--freetype/include/freetype/ftxf86.h2
-rw-r--r--freetype/include/freetype/internal/autohint.h2
-rw-r--r--freetype/include/freetype/internal/ftcalc.h2
-rw-r--r--freetype/include/freetype/internal/ftdebug.h6
-rw-r--r--freetype/include/freetype/internal/ftgloadr.h2
-rw-r--r--freetype/include/freetype/internal/ftobjs.h18
-rw-r--r--freetype/include/freetype/internal/ftrfork.h2
-rw-r--r--freetype/include/freetype/internal/ftstream.h2
-rw-r--r--freetype/include/freetype/internal/psaux.h6
-rw-r--r--freetype/include/freetype/internal/pshints.h4
-rw-r--r--freetype/include/freetype/internal/services/svbdf.h2
-rw-r--r--freetype/include/freetype/internal/services/svcid.h2
-rw-r--r--freetype/include/freetype/internal/services/svgldict.h2
-rw-r--r--freetype/include/freetype/internal/services/svgxval.h2
-rw-r--r--freetype/include/freetype/internal/services/svkern.h2
-rw-r--r--freetype/include/freetype/internal/services/svmm.h2
-rw-r--r--freetype/include/freetype/internal/services/svotval.h2
-rw-r--r--freetype/include/freetype/internal/services/svpfr.h2
-rw-r--r--freetype/include/freetype/internal/services/svpostnm.h2
-rw-r--r--freetype/include/freetype/internal/services/svpscmap.h2
-rw-r--r--freetype/include/freetype/internal/services/svpsinfo.h4
-rw-r--r--freetype/include/freetype/internal/services/svsfnt.h2
-rw-r--r--freetype/include/freetype/internal/services/svttcmap.h2
-rw-r--r--freetype/include/freetype/internal/services/svtteng.h2
-rw-r--r--freetype/include/freetype/internal/services/svttglyf.h2
-rw-r--r--freetype/include/freetype/internal/services/svwinfnt.h2
-rw-r--r--freetype/include/freetype/internal/services/svxf86nm.h2
-rw-r--r--freetype/include/freetype/internal/sfnt.h4
-rw-r--r--freetype/include/freetype/internal/t1types.h8
-rw-r--r--freetype/include/freetype/internal/tttypes.h2
-rw-r--r--freetype/include/freetype/t1tables.h2
-rw-r--r--freetype/include/freetype/tttables.h2
-rw-r--r--freetype/include/freetype/tttags.h2
-rw-r--r--freetype/include/freetype/ttunpat.h2
-rw-r--r--freetype/src/autofit/afcjk.c4
-rw-r--r--freetype/src/autofit/aferrors.h4
-rw-r--r--freetype/src/autofit/afhints.c4
-rw-r--r--freetype/src/autofit/aflatin.c4
-rw-r--r--freetype/src/autofit/afmodule.c4
-rw-r--r--freetype/src/autofit/afmodule.h2
-rw-r--r--freetype/src/autofit/afpic.c2
-rw-r--r--freetype/src/autofit/afpic.h2
-rw-r--r--freetype/src/autofit/aftypes.h6
-rw-r--r--freetype/src/base/basepic.c2
-rw-r--r--freetype/src/base/basepic.h2
-rw-r--r--freetype/src/base/ftadvanc.c2
-rw-r--r--freetype/src/base/ftapi.c6
-rw-r--r--freetype/src/base/ftbase.h2
-rw-r--r--freetype/src/base/ftbbox.c4
-rw-r--r--freetype/src/base/ftbdf.c2
-rw-r--r--freetype/src/base/ftbitmap.c2
-rw-r--r--freetype/src/base/ftcalc.c8
-rw-r--r--freetype/src/base/ftcid.c4
-rw-r--r--freetype/src/base/ftdbgmem.c4
-rw-r--r--freetype/src/base/ftdebug.c4
-rw-r--r--freetype/src/base/ftgasp.c2
-rw-r--r--freetype/src/base/ftgloadr.c8
-rw-r--r--freetype/src/base/ftglyph.c2
-rw-r--r--freetype/src/base/ftgxval.c5
-rw-r--r--freetype/src/base/ftinit.c4
-rw-r--r--freetype/src/base/ftlcdfil.c2
-rw-r--r--freetype/src/base/ftmac.c2
-rw-r--r--freetype/src/base/ftmm.c2
-rw-r--r--freetype/src/base/ftobjs.c12
-rw-r--r--freetype/src/base/ftotval.c5
-rw-r--r--freetype/src/base/ftoutln.c8
-rw-r--r--freetype/src/base/ftpatent.c4
-rw-r--r--freetype/src/base/ftpfr.c7
-rw-r--r--freetype/src/base/ftpic.c2
-rw-r--r--freetype/src/base/ftrfork.c6
-rw-r--r--freetype/src/base/ftsnames.c4
-rw-r--r--freetype/src/base/ftstream.c4
-rw-r--r--freetype/src/base/ftstroke.c6
-rw-r--r--freetype/src/base/ftsynth.c10
-rw-r--r--freetype/src/base/ftsystem.c4
-rw-r--r--freetype/src/base/fttrigon.c2
-rw-r--r--freetype/src/base/fttype1.c6
-rw-r--r--freetype/src/base/ftutil.c6
-rw-r--r--freetype/src/base/ftwinfnt.c2
-rw-r--r--freetype/src/base/ftxf86.c2
-rw-r--r--freetype/src/bdf/bdf.h4
-rw-r--r--freetype/src/bdf/bdfdrivr.c6
-rw-r--r--freetype/src/bdf/bdfdrivr.h2
-rw-r--r--freetype/src/bdf/bdflib.c6
-rw-r--r--freetype/src/cache/ftcbasic.c4
-rw-r--r--freetype/src/cache/ftccache.c4
-rw-r--r--freetype/src/cache/ftccmap.c6
-rw-r--r--freetype/src/cache/ftcimage.c2
-rw-r--r--freetype/src/cache/ftcmanag.c4
-rw-r--r--freetype/src/cache/ftcmru.c4
-rw-r--r--freetype/src/cache/ftcmru.h2
-rw-r--r--freetype/src/cache/ftcsbits.c4
-rw-r--r--freetype/src/cff/cffdrivr.c12
-rw-r--r--freetype/src/cff/cffdrivr.h2
-rw-r--r--freetype/src/cff/cffgload.c6
-rw-r--r--freetype/src/cff/cffgload.h2
-rw-r--r--freetype/src/cff/cffload.c10
-rw-r--r--freetype/src/cff/cffobjs.c17
-rw-r--r--freetype/src/cff/cffobjs.h8
-rw-r--r--freetype/src/cff/cffparse.c4
-rw-r--r--freetype/src/cff/cffparse.h2
-rw-r--r--freetype/src/cff/cffpic.c2
-rw-r--r--freetype/src/cff/cffpic.h2
-rw-r--r--freetype/src/cff/cfftypes.h10
-rw-r--r--freetype/src/cid/cidgload.c6
-rw-r--r--freetype/src/cid/cidload.c4
-rw-r--r--freetype/src/cid/cidload.h2
-rw-r--r--freetype/src/cid/cidobjs.c8
-rw-r--r--freetype/src/cid/cidobjs.h4
-rw-r--r--freetype/src/cid/cidparse.c6
-rw-r--r--freetype/src/cid/cidparse.h6
-rw-r--r--freetype/src/cid/cidriver.c4
-rw-r--r--freetype/src/cid/cidriver.h2
-rw-r--r--freetype/src/gxvalid/gxvalid.h8
-rw-r--r--freetype/src/gxvalid/gxvcommn.h2
-rw-r--r--freetype/src/gxvalid/gxvmod.c2
-rw-r--r--freetype/src/gzip/ftgzip.c6
-rw-r--r--freetype/src/lzw/ftlzw.c6
-rw-r--r--freetype/src/lzw/ftzopen.c6
-rw-r--r--freetype/src/lzw/ftzopen.h2
-rw-r--r--freetype/src/otvalid/otvalid.h8
-rw-r--r--freetype/src/otvalid/otvcommn.h2
-rw-r--r--freetype/src/otvalid/otvmod.c2
-rw-r--r--freetype/src/pcf/pcf.h4
-rw-r--r--freetype/src/pcf/pcfdrivr.c6
-rw-r--r--freetype/src/pcf/pcfdrivr.h2
-rw-r--r--freetype/src/pcf/pcfread.c6
-rw-r--r--freetype/src/pfr/pfrcmap.h2
-rw-r--r--freetype/src/pfr/pfrdrivr.c4
-rw-r--r--freetype/src/pfr/pfrdrivr.h2
-rw-r--r--freetype/src/pfr/pfrgload.c2
-rw-r--r--freetype/src/pfr/pfrload.c4
-rw-r--r--freetype/src/pfr/pfrload.h2
-rw-r--r--freetype/src/pfr/pfrobjs.c2
-rw-r--r--freetype/src/pfr/pfrsbit.c4
-rw-r--r--freetype/src/pfr/pfrtypes.h2
-rw-r--r--freetype/src/psaux/afmparse.c4
-rw-r--r--freetype/src/psaux/afmparse.h2
-rw-r--r--freetype/src/psaux/psconv.c4
-rw-r--r--freetype/src/psaux/psconv.h2
-rw-r--r--freetype/src/psaux/psobjs.c6
-rw-r--r--freetype/src/psaux/psobjs.h2
-rw-r--r--freetype/src/psaux/t1cmap.c2
-rw-r--r--freetype/src/psaux/t1cmap.h4
-rw-r--r--freetype/src/psaux/t1decode.c6
-rw-r--r--freetype/src/psaux/t1decode.h4
-rw-r--r--freetype/src/pshinter/pshalgo.c6
-rw-r--r--freetype/src/pshinter/pshglob.c2
-rw-r--r--freetype/src/pshinter/pshglob.h4
-rw-r--r--freetype/src/pshinter/pshmod.c2
-rw-r--r--freetype/src/pshinter/pshpic.c2
-rw-r--r--freetype/src/pshinter/pshpic.h2
-rw-r--r--freetype/src/pshinter/pshrec.c6
-rw-r--r--freetype/src/pshinter/pshrec.h2
-rw-r--r--freetype/src/psnames/psmodule.c6
-rw-r--r--freetype/src/psnames/pspic.c2
-rw-r--r--freetype/src/psnames/pspic.h2
-rw-r--r--freetype/src/raster/ftraster.c6
-rw-r--r--freetype/src/raster/ftrend1.c4
-rw-r--r--freetype/src/raster/ftrend1.h2
-rw-r--r--freetype/src/raster/rastpic.c2
-rw-r--r--freetype/src/raster/rastpic.h2
-rw-r--r--freetype/src/sfnt/sfdriver.c6
-rw-r--r--freetype/src/sfnt/sfntpic.c2
-rw-r--r--freetype/src/sfnt/sfntpic.h6
-rw-r--r--freetype/src/sfnt/sfobjs.c4
-rw-r--r--freetype/src/sfnt/sfobjs.h4
-rw-r--r--freetype/src/sfnt/ttbdf.c4
-rw-r--r--freetype/src/sfnt/ttcmap.c8
-rw-r--r--freetype/src/sfnt/ttcmap.h4
-rw-r--r--freetype/src/sfnt/ttkern.c4
-rw-r--r--freetype/src/sfnt/ttkern.h4
-rw-r--r--freetype/src/sfnt/ttload.c4
-rw-r--r--freetype/src/sfnt/ttload.h4
-rw-r--r--freetype/src/sfnt/ttmtx.c4
-rw-r--r--freetype/src/sfnt/ttmtx.h4
-rw-r--r--freetype/src/sfnt/ttpost.c6
-rw-r--r--freetype/src/sfnt/ttpost.h2
-rw-r--r--freetype/src/sfnt/ttsbit.c8
-rw-r--r--freetype/src/smooth/ftgrays.c4
-rw-r--r--freetype/src/smooth/ftsmooth.c3
-rw-r--r--freetype/src/smooth/ftsmooth.h2
-rw-r--r--freetype/src/smooth/ftspic.c2
-rw-r--r--freetype/src/smooth/ftspic.h2
-rw-r--r--freetype/src/tools/test_afm.c4
-rw-r--r--freetype/src/truetype/ttdriver.c6
-rw-r--r--freetype/src/truetype/ttdriver.h2
-rw-r--r--freetype/src/truetype/ttgload.c8
-rw-r--r--freetype/src/truetype/ttgxvar.c6
-rw-r--r--freetype/src/truetype/ttinterp.c4
-rw-r--r--freetype/src/truetype/ttobjs.c6
-rw-r--r--freetype/src/truetype/ttobjs.h4
-rw-r--r--freetype/src/truetype/ttpic.c2
-rw-r--r--freetype/src/truetype/ttpload.c6
-rw-r--r--freetype/src/truetype/ttpload.h2
-rw-r--r--freetype/src/truetype/ttsubpix.c12
-rw-r--r--freetype/src/type1/t1afm.c4
-rw-r--r--freetype/src/type1/t1afm.h2
-rw-r--r--freetype/src/type1/t1driver.c6
-rw-r--r--freetype/src/type1/t1driver.h2
-rw-r--r--freetype/src/type1/t1gload.c8
-rw-r--r--freetype/src/type1/t1load.c6
-rw-r--r--freetype/src/type1/t1load.h4
-rw-r--r--freetype/src/type1/t1objs.c8
-rw-r--r--freetype/src/type1/t1objs.h4
-rw-r--r--freetype/src/type1/t1parse.c6
-rw-r--r--freetype/src/type1/t1parse.h4
-rw-r--r--freetype/src/type42/t42drivr.c4
-rw-r--r--freetype/src/type42/t42drivr.h2
-rw-r--r--freetype/src/type42/t42objs.c2
-rw-r--r--freetype/src/type42/t42objs.h14
-rw-r--r--freetype/src/type42/t42parse.c6
-rw-r--r--freetype/src/type42/t42parse.h2
-rw-r--r--freetype/src/type42/t42types.h8
-rw-r--r--freetype/src/winfonts/winfnt.c6
-rw-r--r--freetype/src/winfonts/winfnt.h4
-rw-r--r--gl/gl_mangle.h2311
-rw-r--r--gl/glcore.h181
-rw-r--r--gl/glext.h11056
-rw-r--r--gl/glx.h537
-rw-r--r--gl/glx_mangle.h82
-rw-r--r--gl/glxext.h838
-rw-r--r--gl/internal/dri_interface.h1413
-rw-r--r--include/assert.h26
-rw-r--r--include/byteswap.h39
-rw-r--r--include/dirent.h440
-rw-r--r--include/dix-config.h512
-rw-r--r--include/dlfcn.h0
-rw-r--r--include/iconv.h134
-rw-r--r--include/inttypes.h305
-rw-r--r--include/kdrive-config.h40
-rw-r--r--include/netdb.h0
-rw-r--r--include/netinet/in.h0
-rw-r--r--include/netinet/in_systm.h0
-rw-r--r--include/netinet/ip.h0
-rw-r--r--include/netinet/tcp.h0
-rw-r--r--include/stdbool.h41
-rw-r--r--include/stdint.h248
-rw-r--r--include/strings.h0
-rw-r--r--include/sys/dir.h0
-rw-r--r--include/sys/ioctl.h0
-rw-r--r--include/sys/param.h12
-rw-r--r--include/sys/select.h0
-rw-r--r--include/sys/socket.h11
-rw-r--r--include/sys/time.h0
-rw-r--r--include/sys/types.h101
-rw-r--r--include/sys/un.h11
-rw-r--r--include/sys/wait.h0
-rw-r--r--include/unistd.h9
-rw-r--r--include/xcb/bigreq.h141
-rw-r--r--include/xcb/render.h4513
-rw-r--r--include/xcb/shape.h1103
-rw-r--r--include/xcb/xc_misc.h413
-rw-r--r--include/xcb/xcb.h543
-rw-r--r--include/xcb/xcb_windefs.h58
-rw-r--r--include/xcb/xcbext.h107
-rw-r--r--include/xcb/xproto.h17152
-rw-r--r--libX11/cpprules.mak19
-rw-r--r--libX11/include/X11/Xlib.h4
-rw-r--r--libX11/include/X11/Xlibint.h29
-rw-r--r--libX11/include/X11/Xregion.h2
-rw-r--r--libX11/libX11.def360
-rw-r--r--libX11/makefile25
-rw-r--r--libX11/modules/im/ximcp/imInt.c1
-rw-r--r--libX11/modules/im/ximcp/imLcLkup.c2
-rw-r--r--libX11/modules/im/ximcp/imRm.c1
-rw-r--r--libX11/modules/im/ximcp/imTrans.c2
-rw-r--r--libX11/modules/im/ximcp/makefile36
-rw-r--r--libX11/modules/lc/Utf8/makefile8
-rw-r--r--libX11/modules/lc/def/makefile7
-rw-r--r--libX11/modules/lc/gen/makefile8
-rw-r--r--libX11/modules/lc/xlocale/makefile10
-rw-r--r--libX11/modules/om/generic/makefile17
-rw-r--r--libX11/modules/om/generic/omGeneric.c1
-rw-r--r--libX11/nls/makefile38
-rw-r--r--libX11/src/ConvSel.c2
-rw-r--r--libX11/src/CrBFData.c24
-rw-r--r--libX11/src/CrGlCur.c10
-rw-r--r--libX11/src/CrPFBData.c30
-rw-r--r--libX11/src/CrWindow.c4
-rw-r--r--libX11/src/ErrDes.c1
-rw-r--r--libX11/src/FSWrap.c2
-rw-r--r--libX11/src/GetDflt.c11
-rw-r--r--libX11/src/Host.c4
-rw-r--r--libX11/src/InitExt.c1
-rw-r--r--libX11/src/KeysymStr.c1
-rw-r--r--libX11/src/OpenDis.c1
-rw-r--r--libX11/src/QuColors.c4
-rw-r--r--libX11/src/RdBitF.c33
-rw-r--r--libX11/src/SetLocale.c1
-rw-r--r--libX11/src/StrKeysym.c4
-rw-r--r--libX11/src/Window.c4
-rw-r--r--libX11/src/XlibInt.c20
-rw-r--r--libX11/src/config.h243
-rw-r--r--libX11/src/genhextable.py39
-rw-r--r--libX11/src/makefile277
-rw-r--r--libX11/src/util/makefile6
-rw-r--r--libX11/src/util/makekeys.c3
-rw-r--r--libX11/src/xcb_io.c3
-rw-r--r--libX11/src/xcms/config.h5
-rw-r--r--libX11/src/xcms/makefile72
-rw-r--r--libX11/src/xkb/Makefile29
-rw-r--r--libX11/src/xkb/XKB.c5
-rw-r--r--libX11/src/xkb/XKBBind.c28
-rw-r--r--libX11/src/xkb/XKBGAlloc.c4
-rw-r--r--libX11/src/xkb/XKBGeom.c4
-rw-r--r--libX11/src/xkb/XKBGetMap.c28
-rw-r--r--libX11/src/xkb/XKBMisc.c3
-rw-r--r--libX11/src/xkb/XKBSetGeom.c4
-rw-r--r--libX11/src/xkb/XKBUse.c28
-rw-r--r--libX11/src/xlibi18n/XDefaultIMIF.c1
-rw-r--r--libX11/src/xlibi18n/XDefaultOMIF.c2
-rw-r--r--libX11/src/xlibi18n/XimProto.h7
-rw-r--r--libX11/src/xlibi18n/lcDB.c3
-rw-r--r--libX11/src/xlibi18n/lcDynamic.c2
-rw-r--r--libX11/src/xlibi18n/lcFile.c2
-rw-r--r--libX11/src/xlibi18n/lcGeneric.c1
-rw-r--r--libX11/src/xlibi18n/lcPublic.c1
-rw-r--r--libX11/src/xlibi18n/lcUTF8.c1
-rw-r--r--libX11/src/xlibi18n/makefile80
-rw-r--r--libXau/AuFileName.c3
-rw-r--r--libXau/AuUnlock.c3
-rw-r--r--libXau/config.h7
-rw-r--r--libXau/libXau.def10
-rw-r--r--libXau/makefile13
-rw-r--r--libXaw/config.h76
-rw-r--r--libXaw/src/AsciiSrc.c2
-rw-r--r--libXaw/src/Label.c2
-rw-r--r--libXaw/src/MultiSrc.c2
-rw-r--r--libXaw/src/Pixmap.c4
-rw-r--r--libXaw/src/Private.h2
-rw-r--r--libXaw/src/TextAction.c4
-rw-r--r--libXaw/src/Vendor.c2
-rw-r--r--libXaw/src/XawI18n.h1
-rw-r--r--libXaw/src/makefile53
-rw-r--r--libXdmcp/Key.c6
-rw-r--r--libXdmcp/Write.c2
-rw-r--r--libXdmcp/config.h248
-rw-r--r--libXdmcp/makefile15
-rw-r--r--libXext/include/X11/extensions/extutil.h1
-rw-r--r--libXext/src/XAppgroup.c4
-rw-r--r--libXext/src/libXext.def8
-rw-r--r--libXext/src/makefile30
-rw-r--r--libXfont/config.h31
-rw-r--r--libXfont/src/FreeType/ftenc.c2
-rw-r--r--libXfont/src/FreeType/ftfuncs.c6
-rw-r--r--libXfont/src/FreeType/fttools.c7
-rw-r--r--libXfont/src/FreeType/makefile15
-rw-r--r--libXfont/src/bitmap/bitmapfunc.c4
-rw-r--r--libXfont/src/bitmap/bitmaputil.c4
-rw-r--r--libXfont/src/bitmap/bitscale.c4
-rw-r--r--libXfont/src/bitmap/makefile16
-rw-r--r--libXfont/src/builtins/dir.c1
-rw-r--r--libXfont/src/builtins/makefile10
-rw-r--r--libXfont/src/fc/fsio.c2
-rw-r--r--libXfont/src/fc/fstrans.c1
-rw-r--r--libXfont/src/fc/makefile10
-rw-r--r--libXfont/src/fontfile/catalogue.c5
-rw-r--r--libXfont/src/fontfile/fontfile.c35
-rw-r--r--libXfont/src/fontfile/fontscale.c4
-rw-r--r--libXfont/src/fontfile/makefile24
-rw-r--r--libXfont/src/fontfile/renderers.c1
-rw-r--r--libXfont/src/stubs/makefile26
-rw-r--r--libXfont/src/util/fontxlfd.c4
-rw-r--r--libXfont/src/util/makefile17
-rw-r--r--libXft/.gitignore78
-rw-r--r--libXft/include/X11/Xft/.gitignore2
-rw-r--r--libXft/include/X11/Xft/Xft.h617
-rw-r--r--libXft/src/makefile23
-rw-r--r--libXinerama/src/Xinerama.c4
-rw-r--r--libXinerama/src/makefile5
-rw-r--r--libXmu/src/RdBitF.c8
-rw-r--r--libXmu/src/StrToCurs.c1
-rw-r--r--libXmu/src/WidgetNode.c2
-rw-r--r--libXmu/src/config.h1
-rw-r--r--libXmu/src/libXmu.def44
-rw-r--r--libXmu/src/makefile63
-rw-r--r--libXpm/src/RdFToBuf.c4
-rw-r--r--libXpm/src/RdFToI.c3
-rw-r--r--libXpm/src/WrFFrI.c2
-rw-r--r--libXpm/src/amigax.h4
-rw-r--r--libXpm/src/config.h3
-rw-r--r--libXpm/src/makefile34
-rw-r--r--libXrender/src/Xrenderint.h4
-rw-r--r--libXrender/src/makefile18
-rw-r--r--libXt/config.h85
-rw-r--r--libXt/include/X11/.gitignore2
-rw-r--r--libXt/include/X11/Intrinsic.h5190
-rw-r--r--libXt/include/X11/IntrinsicP.h10
-rw-r--r--libXt/include/X11/ShellP.h2
-rw-r--r--libXt/src/.gitignore1
-rw-r--r--libXt/src/Convert.c4
-rw-r--r--libXt/src/Converters.c2
-rw-r--r--libXt/src/Error.c1
-rw-r--r--libXt/src/Initialize.c39
-rw-r--r--libXt/src/Intrinsic.c2
-rw-r--r--libXt/src/ResConfig.c2
-rw-r--r--libXt/src/Selection.c1
-rw-r--r--libXt/src/Shell.c11
-rw-r--r--libXt/src/Vendor.c4
-rw-r--r--libXt/src/makefile79
-rw-r--r--libXt/util/Shell.ht2
-rw-r--r--libXt/util/makefile4
-rw-r--r--libfontenc/src/encparse.c1
-rw-r--r--libfontenc/src/fontenc.c1
-rw-r--r--libfontenc/src/makefile13
-rw-r--r--libwinmain/makefile3
-rw-r--r--libwinmain/winmain.c156
-rwxr-xr-x[-rw-r--r--]libxcb/src/.gitignore91
-rw-r--r--libxcb/src/c_client.py3
-rw-r--r--libxcb/src/config.h80
-rw-r--r--libxcb/src/dummyin6.h168
-rw-r--r--libxcb/src/libxcb.def58
-rw-r--r--libxcb/src/makefile30
-rw-r--r--libxcb/src/makefile.srcs15
-rw-r--r--libxcb/src/xcb.h1
-rw-r--r--libxcb/src/xcb_auth.c7
-rw-r--r--libxcb/src/xcb_conn.c48
-rw-r--r--libxcb/src/xcb_ext.c2
-rw-r--r--libxcb/src/xcb_in.c1
-rw-r--r--libxcb/src/xcb_out.c7
-rw-r--r--libxcb/src/xcb_util.c31
-rw-r--r--libxcb/src/xcb_windefs.h21
-rw-r--r--libxcb/src/xcb_xid.c2
-rw-r--r--libxkbfile/include/X11/extensions/XKBrules.h3
-rw-r--r--libxkbfile/src/XKBfileInt.h5
-rw-r--r--libxkbfile/src/config.h4
-rw-r--r--libxkbfile/src/makefile18
-rw-r--r--libxkbfile/src/xkmout.c2
-rw-r--r--libxkbfile/src/xkmread.c2
-rwxr-xr-xlibxml2/bin/libgcc_s_sjlj-1.dllbin0 -> 115200 bytes
-rwxr-xr-xlibxml2/bin/libiconv-2.dllbin0 -> 1311053 bytes
-rwxr-xr-xlibxml2/bin/libwinpthread-1.dllbin0 -> 70144 bytes
-rwxr-xr-xlibxml2/bin/libxml2-2.dllbin0 -> 4500405 bytes
-rwxr-xr-xlibxml2/bin64/libgcc_s_sjlj-1.dllbin0 -> 105984 bytes
-rwxr-xr-xlibxml2/bin64/libiconv-2.dllbin0 -> 1504719 bytes
-rwxr-xr-xlibxml2/bin64/libwinpthread-1.dllbin0 -> 72704 bytes
-rwxr-xr-xlibxml2/bin64/libxml2-2.dllbin0 -> 5611732 bytes
-rw-r--r--libxml2/createimplib.txt19
-rw-r--r--libxml2/include/libxml/DOCBparser.h96
-rw-r--r--libxml2/include/libxml/HTMLparser.h306
-rw-r--r--libxml2/include/libxml/HTMLtree.h147
-rw-r--r--libxml2/include/libxml/SAX.h173
-rw-r--r--libxml2/include/libxml/SAX2.h176
-rw-r--r--libxml2/include/libxml/c14n.h126
-rw-r--r--libxml2/include/libxml/catalog.h182
-rw-r--r--libxml2/include/libxml/chvalid.h230
-rw-r--r--libxml2/include/libxml/debugXML.h217
-rw-r--r--libxml2/include/libxml/dict.h80
-rw-r--r--libxml2/include/libxml/encoding.h240
-rw-r--r--libxml2/include/libxml/entities.h151
-rw-r--r--libxml2/include/libxml/globals.h502
-rw-r--r--libxml2/include/libxml/hash.h233
-rw-r--r--libxml2/include/libxml/list.h137
-rw-r--r--libxml2/include/libxml/nanoftp.h163
-rw-r--r--libxml2/include/libxml/nanohttp.h81
-rw-r--r--libxml2/include/libxml/parser.h1241
-rw-r--r--libxml2/include/libxml/parserInternals.h644
-rw-r--r--libxml2/include/libxml/pattern.h100
-rw-r--r--libxml2/include/libxml/relaxng.h213
-rw-r--r--libxml2/include/libxml/schemasInternals.h958
-rw-r--r--libxml2/include/libxml/schematron.h142
-rw-r--r--libxml2/include/libxml/threads.h84
-rw-r--r--libxml2/include/libxml/tree.h1303
-rw-r--r--libxml2/include/libxml/uri.h94
-rw-r--r--libxml2/include/libxml/valid.h458
-rw-r--r--libxml2/include/libxml/xinclude.h129
-rw-r--r--libxml2/include/libxml/xlink.h189
-rw-r--r--libxml2/include/libxml/xmlIO.h366
-rw-r--r--libxml2/include/libxml/xmlautomata.h146
-rw-r--r--libxml2/include/libxml/xmlerror.h945
-rw-r--r--libxml2/include/libxml/xmlexports.h162
-rw-r--r--libxml2/include/libxml/xmlmemory.h224
-rw-r--r--libxml2/include/libxml/xmlmodule.h57
-rw-r--r--libxml2/include/libxml/xmlreader.h428
-rw-r--r--libxml2/include/libxml/xmlregexp.h222
-rw-r--r--libxml2/include/libxml/xmlsave.h88
-rw-r--r--libxml2/include/libxml/xmlschemas.h246
-rw-r--r--libxml2/include/libxml/xmlschemastypes.h151
-rw-r--r--libxml2/include/libxml/xmlstring.h140
-rw-r--r--libxml2/include/libxml/xmlunicode.h202
-rw-r--r--libxml2/include/libxml/xmlversion.h489
-rw-r--r--libxml2/include/libxml/xmlwriter.h488
-rw-r--r--libxml2/include/libxml/xpath.h557
-rw-r--r--libxml2/include/libxml/xpathInternals.h632
-rw-r--r--libxml2/include/libxml/xpointer.h114
-rw-r--r--libxml2/lib/libxml2-2.def1666
-rw-r--r--libxml2/lib/libxml2-2.libbin0 -> 383232 bytes
-rw-r--r--libxml2/lib64/libxml2-2.def1666
-rw-r--r--libxml2/lib64/libxml2-2.libbin0 -> 374916 bytes
-rw-r--r--makefile.after138
-rw-r--r--makefile.before104
-rw-r--r--mesalib/include/GL/glext.h42
-rw-r--r--mesalib/include/GL/internal/dri_interface.h6
-rw-r--r--mesalib/include/GL/wglext.h1282
-rw-r--r--mesalib/include/getopt.h128
-rw-r--r--mesalib/src/glsl/.gitignore12
-rw-r--r--mesalib/src/glsl/ast.h4
-rw-r--r--mesalib/src/glsl/builtin_functions.cpp8
-rw-r--r--mesalib/src/glsl/doflexbison.bat21
-rw-r--r--mesalib/src/glsl/getopt.cpp552
-rwxr-xr-x[-rw-r--r--]mesalib/src/glsl/glcpp/.gitignore12
-rw-r--r--mesalib/src/glsl/glcpp/glcpp.c8
-rw-r--r--mesalib/src/glsl/glsl_parser.yy1
-rw-r--r--mesalib/src/glsl/glsl_parser_extras.h4
-rwxr-xr-x[-rw-r--r--]mesalib/src/glsl/glsl_symbol_table.cpp4
-rw-r--r--mesalib/src/glsl/glsl_symbol_table.h5
-rw-r--r--mesalib/src/glsl/ir.cpp2
-rw-r--r--mesalib/src/glsl/ir_builder.cpp2
-rw-r--r--mesalib/src/glsl/ir_builder.h2
-rwxr-xr-x[-rw-r--r--]mesalib/src/glsl/ir_constant_expression.cpp9
-rw-r--r--mesalib/src/glsl/link_uniforms.cpp1
-rw-r--r--mesalib/src/glsl/list.h8
-rw-r--r--mesalib/src/glsl/main.cpp11
-rw-r--r--mesalib/src/mapi/glapi/gen/.gitignore17
-rw-r--r--mesalib/src/mapi/glapi/gen/GL3x.xml8
-rw-r--r--mesalib/src/mapi/glapi/gen/gen.bat26
-rwxr-xr-xmesalib/src/mapi/glapi/gen/gen.sh26
-rw-r--r--mesalib/src/mapi/glapi/gen/glX_API.xml14
-rwxr-xr-x[-rw-r--r--]mesalib/src/mapi/glapi/gen/glX_proto_recv.py15
-rwxr-xr-x[-rw-r--r--]mesalib/src/mapi/glapi/gen/glX_proto_send.py0
-rwxr-xr-x[-rw-r--r--]mesalib/src/mapi/glapi/gen/glX_proto_size.py17
-rwxr-xr-x[-rw-r--r--]mesalib/src/mapi/glapi/gen/glX_server_table.py4
-rwxr-xr-x[-rw-r--r--]mesalib/src/mapi/glapi/gen/gl_API.xml596
-rwxr-xr-x[-rw-r--r--]mesalib/src/mapi/glapi/gen/gl_apitemp.py0
-rwxr-xr-x[-rw-r--r--]mesalib/src/mapi/glapi/gen/gl_enums.py2
-rwxr-xr-x[-rw-r--r--]mesalib/src/mapi/glapi/gen/gl_gentable.py4
-rwxr-xr-x[-rw-r--r--]mesalib/src/mapi/glapi/gen/gl_procs.py0
-rwxr-xr-x[-rw-r--r--]mesalib/src/mapi/glapi/gen/gl_table.py14
-rwxr-xr-x[-rw-r--r--]mesalib/src/mapi/glapi/gen/remap_helper.py4
-rw-r--r--mesalib/src/mapi/glapi/glapi.h110
-rw-r--r--mesalib/src/mapi/glapi/glapi_getproc.c11
-rw-r--r--mesalib/src/mapi/glapi/glapi_nop.c4
-rw-r--r--mesalib/src/mapi/glapi/glapi_priv.h11
-rw-r--r--mesalib/src/mapi/glapi/glthread.c2
-rwxr-xr-x[-rw-r--r--]mesalib/src/mapi/mapi_abi.py0
-rw-r--r--mesalib/src/mesa/drivers/dri/common/dri_util.c82
-rw-r--r--mesalib/src/mesa/drivers/dri/common/megadriver_stub.c2
-rw-r--r--mesalib/src/mesa/drivers/dri/common/xmlconfig.c16
-rwxr-xr-x[-rw-r--r--]mesalib/src/mesa/drivers/dri/swrast/swrast.c45
-rw-r--r--mesalib/src/mesa/drivers/dri/swrast/swrast_priv.h7
-rw-r--r--mesalib/src/mesa/main/.gitignore21
-rw-r--r--mesalib/src/mesa/main/bufferobj.c12
-rw-r--r--mesalib/src/mesa/main/config.h4
-rw-r--r--mesalib/src/mesa/main/context.c4
-rw-r--r--mesalib/src/mesa/main/dlopen.h6
-rw-r--r--mesalib/src/mesa/main/imports.h1
-rw-r--r--mesalib/src/mesa/main/queryobj.c10
-rw-r--r--mesalib/src/mesa/main/remap.c4
-rw-r--r--mesalib/src/mesa/main/remap.h2
-rw-r--r--mesalib/src/mesa/main/syncobj.c10
-rw-r--r--mesalib/src/mesa/main/syncobj.h10
-rw-r--r--mesalib/src/mesa/main/version.c2
-rwxr-xr-x[-rw-r--r--]mesalib/src/mesa/program/.gitignore8
-rw-r--r--mesalib/src/mesa/program/doflexbison.bat18
-rw-r--r--mesalib/src/mesa/program/hash_table.h1
-rw-r--r--mesalib/windows/VC8/mesa/.gitignore2
-rw-r--r--mesalib/windows/VC8/mesa/glsl_apps_compile/glsl_apps_compile.vcxproj298
-rw-r--r--mesalib/windows/VC8/mesa/glsl_apps_compile/glsl_apps_compile.vcxproj.filters319
-rw-r--r--mesalib/windows/VC8/mesa/makefile92
-rw-r--r--mesalib/windows/VC8/mesa/mesa/mesa.vcxproj497
-rw-r--r--mesalib/windows/VC8/mesa/mesa/mesa.vcxproj.filters789
-rw-r--r--mesalib/windows/VC8/mesa/mesavc10.sln45
-rw-r--r--mesalib/windows/VC8/mesa/swrast_dri/swrast_dri.vcxproj294
-rw-r--r--mesalib/windows/VC8/mesa/swrast_dri/swrast_dri.vcxproj.filters147
-rw-r--r--mkfontscale/hash.h4
-rw-r--r--mkfontscale/makefile23
-rw-r--r--mkfontscale/mkfontscale.c2
-rw-r--r--openssl/.gitignore11
-rw-r--r--openssl/Configure14
-rw-r--r--openssl/Makefile685
-rw-r--r--openssl/crypto/.gitignore2
-rw-r--r--openssl/crypto/cryptlib.c2
-rw-r--r--openssl/crypto/opensslconf.h229
-rw-r--r--openssl/ms/.gitignore8
-rwxr-xr-x[-rw-r--r--]openssl/ms/do_nasm.bat12
-rwxr-xr-x[-rw-r--r--]openssl/ms/do_win64a.bat16
-rw-r--r--openssl/util/mk1mf.pl89
-rwxr-xr-x[-rw-r--r--]openssl/util/pl/VC-32.pl47
-rw-r--r--pixman/pixman/config.h229
-rw-r--r--pixman/pixman/makefile46
-rw-r--r--pixman/pixman/pixman-compiler.h3
-rw-r--r--pixman/pixman/pixman-glyph.c2
-rw-r--r--pixman/pixman/pixman-implementation.c2
-rw-r--r--pixman/pixman/pixman-mmx.c17
-rw-r--r--pixman/pixman/pixman-sse2.c24
-rw-r--r--pixman/pixman/pixman-trap.c2
-rw-r--r--pixman/pixman/pixman-version.h50
-rw-r--r--pthreads/.gitignore3
-rwxr-xr-x[-rw-r--r--]pthreads/Makefile25
-rwxr-xr-xpthreads/common.mk13
-rw-r--r--[-rwxr-xr-x]pthreads/pthread_setaffinity.c0
-rw-r--r--[-rwxr-xr-x]pthreads/pthread_timedjoin_np.c0
-rw-r--r--[-rwxr-xr-x]pthreads/pthread_tryjoin_np.c0
-rw-r--r--[-rwxr-xr-x]pthreads/sched_setaffinity.c0
-rw-r--r--[-rwxr-xr-x]pthreads/tests/affinity1.c0
-rw-r--r--[-rwxr-xr-x]pthreads/tests/affinity2.c0
-rw-r--r--[-rwxr-xr-x]pthreads/tests/affinity3.c0
-rw-r--r--[-rwxr-xr-x]pthreads/tests/affinity4.c0
-rw-r--r--[-rwxr-xr-x]pthreads/tests/affinity5.c0
-rw-r--r--[-rwxr-xr-x]pthreads/tests/context2.c0
-rw-r--r--[-rwxr-xr-x]pthreads/tests/create3.c0
-rw-r--r--[-rwxr-xr-x]pthreads/tests/exception3_0.c0
-rw-r--r--[-rwxr-xr-x]pthreads/tests/join4.c0
-rwxr-xr-xpython.bat2
-rw-r--r--releasenotes/README4
-rw-r--r--releasenotes/releasenote_1.0.1.txt9
-rw-r--r--releasenotes/releasenote_1.0.2.txt18
-rw-r--r--releasenotes/releasenote_1.1.0.txt38
-rw-r--r--releasenotes/releasenote_1.1.1.txt54
-rw-r--r--releasenotes/releasenote_1.1.2.txt66
-rw-r--r--releasenotes/releasenote_1.10.0.0.txt528
-rw-r--r--releasenotes/releasenote_1.10.0.1.txt600
-rw-r--r--releasenotes/releasenote_1.10.1.0.txt620
-rw-r--r--releasenotes/releasenote_1.10.1.1.txt635
-rw-r--r--releasenotes/releasenote_1.10.3.0.txt656
-rw-r--r--releasenotes/releasenote_1.10.3.1.txt672
-rw-r--r--releasenotes/releasenote_1.11.0.0.txt694
-rw-r--r--releasenotes/releasenote_1.11.2.0.txt719
-rw-r--r--releasenotes/releasenote_1.11.3.0.txt734
-rw-r--r--releasenotes/releasenote_1.11.4.0.txt760
-rw-r--r--releasenotes/releasenote_1.12.0.0.txt792
-rw-r--r--releasenotes/releasenote_1.12.0.1.txt821
-rw-r--r--releasenotes/releasenote_1.12.2.0.txt842
-rw-r--r--releasenotes/releasenote_1.12.99.0.txt874
-rw-r--r--releasenotes/releasenote_1.13.0.0.txt900
-rw-r--r--releasenotes/releasenote_1.13.1.0.txt929
-rw-r--r--releasenotes/releasenote_1.13.2.0.txt963
-rw-r--r--releasenotes/releasenote_1.14.2.0.txt989
-rw-r--r--releasenotes/releasenote_1.14.2.1.txt1008
-rw-r--r--releasenotes/releasenote_1.14.3.txt1026
-rw-r--r--releasenotes/releasenote_1.7.0.1.txt142
-rw-r--r--releasenotes/releasenote_1.7.0.txt96
-rw-r--r--releasenotes/releasenote_1.7.99.1.txt155
-rw-r--r--releasenotes/releasenote_1.7.99.2.txt171
-rw-r--r--releasenotes/releasenote_1.7.99.3.txt187
-rw-r--r--releasenotes/releasenote_1.7.99.4.txt197
-rw-r--r--releasenotes/releasenote_1.7.99.5.txt208
-rw-r--r--releasenotes/releasenote_1.7.99.6.txt222
-rw-r--r--releasenotes/releasenote_1.7.99.901.txt236
-rw-r--r--releasenotes/releasenote_1.7.99.902.txt253
-rw-r--r--releasenotes/releasenote_1.8.0.txt263
-rw-r--r--releasenotes/releasenote_1.8.1.1.txt287
-rw-r--r--releasenotes/releasenote_1.8.1.txt272
-rw-r--r--releasenotes/releasenote_1.8.99.901.txt283
-rw-r--r--releasenotes/releasenote_1.8.99.904.txt296
-rw-r--r--releasenotes/releasenote_1.8.99.906.txt323
-rw-r--r--releasenotes/releasenote_1.9.0.0.txt336
-rw-r--r--releasenotes/releasenote_1.9.0.1.txt345
-rw-r--r--releasenotes/releasenote_1.9.0.2.txt357
-rw-r--r--releasenotes/releasenote_1.9.0.902.txt380
-rw-r--r--releasenotes/releasenote_1.9.2.0.txt394
-rw-r--r--releasenotes/releasenote_1.9.3.0.txt426
-rw-r--r--releasenotes/releasenote_1.9.3.1.txt472
-rw-r--r--releasenotes/releasenote_1.9.4.0.txt486
-rw-r--r--releasenotes/releasenote_1.9.4.1.txt502
-rw-r--r--setvcenv.sh9
-rw-r--r--tools/bison++/Makefile646
-rw-r--r--tools/bison++/closure.cc11
-rw-r--r--tools/bison++/conflict.cc5
-rw-r--r--tools/bison++/derives.cc5
-rw-r--r--tools/genruntimemanifest.py53
-rw-r--r--tools/mhmake/.gitignore2
-rw-r--r--tools/mhmake/CMakeLists.txt52
-rw-r--r--tools/mhmake/MHMake extensions to GNU make.url3
-rwxr-xr-xtools/mhmake/addstdafxh.py33
-rwxr-xr-xtools/mhmake/bison.exebin0 -> 279552 bytes
-rw-r--r--tools/mhmake/config.guess1363
-rwxr-xr-xtools/mhmake/cygwin1.dllbin0 -> 2608311 bytes
-rwxr-xr-xtools/mhmake/flex++.exebin0 -> 485280 bytes
-rwxr-xr-xtools/mhmake/genkdev4.sh12
-rwxr-xr-xtools/mhmake/libiconv2.dllbin0 -> 1008128 bytes
-rwxr-xr-xtools/mhmake/libintl3.dllbin0 -> 103424 bytes
-rwxr-xr-xtools/mhmake/m4.exebin0 -> 158208 bytes
-rwxr-xr-xtools/mhmake/makebison.bat10
-rw-r--r--tools/mhmake/makefile31
-rwxr-xr-xtools/mhmake/makelex.bat11
-rw-r--r--tools/mhmake/mhmake.kdev44
-rw-r--r--tools/mhmake/mhmake.sln31
-rw-r--r--tools/mhmake/mhmake.vcproj1012
-rw-r--r--tools/mhmake/mhmake.vcxproj478
-rw-r--r--tools/mhmake/mhmake.vcxproj.filters109
-rw-r--r--tools/mhmake/mhmakevc10.sln31
-rw-r--r--tools/mhmake/readme.txt27
-rw-r--r--tools/mhmake/src/Makefile.am62
-rw-r--r--tools/mhmake/src/bisondata/bison.m4556
-rw-r--r--tools/mhmake/src/bisondata/c++.m4170
-rw-r--r--tools/mhmake/src/bisondata/c-skel.m425
-rw-r--r--tools/mhmake/src/bisondata/c.m4477
-rw-r--r--tools/mhmake/src/bisondata/lalr1.cc1174
-rw-r--r--tools/mhmake/src/bisondata/location.cc279
-rw-r--r--tools/mhmake/src/bisondata/m4sugar/foreach.m4400
-rw-r--r--tools/mhmake/src/bisondata/m4sugar/m4sugar.m42789
-rw-r--r--tools/mhmake/src/bisondata/yacc.c1741
-rw-r--r--tools/mhmake/src/build.cpp1710
-rw-r--r--tools/mhmake/src/commandqueue.cpp410
-rw-r--r--tools/mhmake/src/commandqueue.h73
-rw-r--r--tools/mhmake/src/curdir.cpp41
-rw-r--r--tools/mhmake/src/curdir.h47
-rw-r--r--tools/mhmake/src/fileinfo.cpp386
-rw-r--r--tools/mhmake/src/fileinfo.h448
-rw-r--r--tools/mhmake/src/flex.skl3425
-rw-r--r--tools/mhmake/src/flexint.h63
-rw-r--r--tools/mhmake/src/flexlexer.h271
-rw-r--r--tools/mhmake/src/functions.cpp1002
-rw-r--r--tools/mhmake/src/md5.cpp455
-rw-r--r--tools/mhmake/src/md5.h58
-rw-r--r--tools/mhmake/src/mhmake.cpp161
-rw-r--r--tools/mhmake/src/mhmakefileparser.cpp1445
-rw-r--r--tools/mhmake/src/mhmakefileparser.h436
-rw-r--r--tools/mhmake/src/mhmakelexer.l955
-rw-r--r--tools/mhmake/src/mhmakeparser.y306
-rw-r--r--tools/mhmake/src/refptr.h124
-rw-r--r--tools/mhmake/src/rule.cpp300
-rw-r--r--tools/mhmake/src/rule.h110
-rw-r--r--tools/mhmake/src/stdafx.cpp24
-rw-r--r--tools/mhmake/src/stdafx.h92
-rw-r--r--tools/mhmake/src/util.cpp803
-rw-r--r--tools/mhmake/src/util.h316
-rw-r--r--tools/plink/makefile15
-rw-r--r--tools/plink/misc.h24
-rw-r--r--tools/plink/ssh.c1
-rw-r--r--tools/plink/sshbn.c22
-rw-r--r--tools/plink/winplink.c55
-rwxr-xr-xupdategit.bat117
-rwxr-xr-xupdategit.sh92
-rwxr-xr-xversionchanges.btm6
-rwxr-xr-xxkbcomp/bison.bat14
-rw-r--r--xkbcomp/compat.c5
-rw-r--r--xkbcomp/expr.c2
-rw-r--r--xkbcomp/keycodes.c2
-rw-r--r--xkbcomp/listing.c10
-rw-r--r--xkbcomp/makefile43
-rw-r--r--xkbcomp/parseutils.c5
-rw-r--r--xkbcomp/utils.c2
-rw-r--r--xkbcomp/utils.h6
-rw-r--r--xkbcomp/xkbcomp.c8
-rw-r--r--xkbcomp/xkbcomp.h1
-rw-r--r--xkbcomp/xkbparse.y4
-rw-r--r--xkbcomp/xkbpath.c3
-rw-r--r--xkbcomp/xkbscan.c6
-rw-r--r--xorg-server/.Xdefaults1
-rw-r--r--xorg-server/.gitignore91
-rw-r--r--xorg-server/Xext/Makefile38
-rw-r--r--xorg-server/Xext/bigreq.c11
-rw-r--r--xorg-server/Xext/dpms.c57
-rw-r--r--xorg-server/Xext/geext.c18
-rw-r--r--xorg-server/Xext/hashtable.c12
-rw-r--r--xorg-server/Xext/panoramiX.c80
-rw-r--r--xorg-server/Xext/panoramiXprocs.c48
-rw-r--r--xorg-server/Xext/saver.c49
-rw-r--r--xorg-server/Xext/security.c37
-rw-r--r--xorg-server/Xext/securitysrv.h4
-rw-r--r--xorg-server/Xext/shape.c77
-rw-r--r--xorg-server/Xext/shm.c19
-rw-r--r--xorg-server/Xext/sync.c119
-rw-r--r--xorg-server/Xext/xace.c2
-rw-r--r--xorg-server/Xext/xcmisc.c38
-rw-r--r--xorg-server/Xext/xf86bigfont.c31
-rw-r--r--xorg-server/Xext/xres.c78
-rw-r--r--xorg-server/Xext/xtest.c25
-rw-r--r--xorg-server/Xext/xvmain.c4
-rw-r--r--xorg-server/Xi/chgdctl.c26
-rw-r--r--xorg-server/Xi/exevents.c14
-rw-r--r--xorg-server/Xi/getbmap.c13
-rw-r--r--xorg-server/Xi/getdctl.c11
-rw-r--r--xorg-server/Xi/getfctl.c13
-rw-r--r--xorg-server/Xi/getfocus.c11
-rw-r--r--xorg-server/Xi/getkmap.c14
-rw-r--r--xorg-server/Xi/getmmap.c13
-rw-r--r--xorg-server/Xi/getprop.c13
-rw-r--r--xorg-server/Xi/getselev.c15
-rw-r--r--xorg-server/Xi/getvers.c17
-rw-r--r--xorg-server/Xi/grabdev.c11
-rw-r--r--xorg-server/Xi/grabdevb.c15
-rw-r--r--xorg-server/Xi/grabdevk.c15
-rw-r--r--xorg-server/Xi/gtmotion.c18
-rw-r--r--xorg-server/Xi/listdev.c11
-rw-r--r--xorg-server/Xi/makefile56
-rw-r--r--xorg-server/Xi/opendev.c16
-rw-r--r--xorg-server/Xi/queryst.c14
-rw-r--r--xorg-server/Xi/setbmap.c13
-rw-r--r--xorg-server/Xi/setdval.c13
-rw-r--r--xorg-server/Xi/setmmap.c11
-rw-r--r--xorg-server/Xi/setmode.c11
-rw-r--r--xorg-server/Xi/xibarriers.c89
-rw-r--r--xorg-server/Xi/xigetclientpointer.c15
-rw-r--r--xorg-server/Xi/xigrabdev.c13
-rw-r--r--xorg-server/Xi/xipassivegrab.c14
-rw-r--r--xorg-server/Xi/xiproperty.c100
-rw-r--r--xorg-server/Xi/xiquerydevice.c13
-rw-r--r--xorg-server/Xi/xiquerypointer.c19
-rw-r--r--xorg-server/Xi/xiqueryversion.c15
-rw-r--r--xorg-server/Xi/xiselectev.c13
-rw-r--r--xorg-server/Xi/xisetdevfocus.c11
-rw-r--r--xorg-server/XtErrorDB236
-rw-r--r--xorg-server/composite/compalloc.c2
-rw-r--r--xorg-server/composite/compext.c29
-rw-r--r--xorg-server/composite/compoverlay.c4
-rw-r--r--xorg-server/composite/makefile9
-rw-r--r--xorg-server/config/makefile4
-rw-r--r--xorg-server/damageext/damageext.c30
-rw-r--r--xorg-server/damageext/makefile4
-rw-r--r--xorg-server/dbe/dbe.c34
-rw-r--r--xorg-server/dbe/makefile4
-rw-r--r--xorg-server/dix/Xserver-dtrace.h72
-rw-r--r--xorg-server/dix/colormap.c40
-rw-r--r--xorg-server/dix/devices.c151
-rw-r--r--xorg-server/dix/dispatch.c7952
-rw-r--r--xorg-server/dix/dixfonts.c131
-rw-r--r--xorg-server/dix/enterleave.c15
-rw-r--r--xorg-server/dix/eventconvert.c2
-rw-r--r--xorg-server/dix/events.c161
-rw-r--r--xorg-server/dix/extension.c23
-rw-r--r--xorg-server/dix/gc.c22
-rw-r--r--xorg-server/dix/getevents.c20
-rw-r--r--xorg-server/dix/inpututils.c14
-rw-r--r--xorg-server/dix/main.c54
-rw-r--r--xorg-server/dix/makefile48
-rw-r--r--xorg-server/dix/privates.c120
-rw-r--r--xorg-server/dix/property.c75
-rw-r--r--xorg-server/dix/ptrveloc.c9
-rw-r--r--xorg-server/dix/registry.c9
-rw-r--r--xorg-server/dix/resource.c120
-rw-r--r--xorg-server/dix/selection.c19
-rw-r--r--xorg-server/dix/swapreq.c3
-rw-r--r--xorg-server/dix/window.c161
-rw-r--r--xorg-server/exa/exa_accel.c2
-rw-r--r--xorg-server/exa/exa_migration_classic.c10
-rw-r--r--xorg-server/exa/exa_unaccel.c2
-rw-r--r--xorg-server/exa/makefile14
-rw-r--r--xorg-server/fb/fbpixmap.c12
-rw-r--r--xorg-server/fb/makefile37
-rw-r--r--xorg-server/fb/wfbrename.h2
-rw-r--r--xorg-server/fonts.src/100dpi/makefile357
-rw-r--r--xorg-server/fonts.src/75dpi/makefile357
-rw-r--r--xorg-server/fonts.src/OTF/makefile53
-rw-r--r--xorg-server/fonts.src/Speedo/makefile39
-rw-r--r--xorg-server/fonts.src/TTF/makefile54
-rw-r--r--xorg-server/fonts.src/Type1/makefile93
-rw-r--r--xorg-server/fonts.src/cyrillic/makefile114
-rw-r--r--xorg-server/fonts.src/encodings/large/makefile40
-rw-r--r--xorg-server/fonts.src/encodings/makefile63
-rw-r--r--xorg-server/fonts.src/font-util/makefile5
-rw-r--r--xorg-server/fonts.src/fonts.conf118
-rw-r--r--xorg-server/fonts.src/makefile8
-rw-r--r--xorg-server/fonts.src/misc/makefile345
-rw-r--r--xorg-server/fonts.src/terminus-font/Makefile2839
-rw-r--r--xorg-server/fonts.src/terminus-font/xfonts-terminus.alias212
-rw-r--r--xorg-server/glx/dispatch.h13641
-rw-r--r--xorg-server/glx/glapi.c511
-rw-r--r--xorg-server/glx/glapi.h190
-rw-r--r--xorg-server/glx/glapitable.h1122
-rw-r--r--xorg-server/glx/glheader.h38
-rw-r--r--xorg-server/glx/glprocs.h3309
-rw-r--r--xorg-server/glx/glthread.h234
-rw-r--r--xorg-server/glx/glxcmds.c127
-rw-r--r--xorg-server/glx/glxcmdsswap.c2
-rw-r--r--xorg-server/glx/glxdricommon.c33
-rw-r--r--xorg-server/glx/glxdriswrast.c34
-rw-r--r--xorg-server/glx/glxext.c9
-rw-r--r--xorg-server/glx/glxext.h8
-rw-r--r--xorg-server/glx/glxscreens.c4
-rw-r--r--xorg-server/glx/indirect_dispatch.c10837
-rw-r--r--xorg-server/glx/indirect_dispatch.h2413
-rw-r--r--xorg-server/glx/indirect_dispatch_swap.c11577
-rw-r--r--xorg-server/glx/indirect_program.c50
-rw-r--r--xorg-server/glx/indirect_reqsize.c1637
-rw-r--r--xorg-server/glx/indirect_reqsize.h267
-rw-r--r--xorg-server/glx/indirect_size.h142
-rw-r--r--xorg-server/glx/indirect_size_get.c2479
-rw-r--r--xorg-server/glx/indirect_size_get.h214
-rw-r--r--xorg-server/glx/indirect_table.c3420
-rw-r--r--xorg-server/glx/indirect_texture_compression.c27
-rw-r--r--xorg-server/glx/indirect_util.c1
-rwxr-xr-xxorg-server/glx/makefile45
-rw-r--r--xorg-server/glx/remap.c231
-rw-r--r--xorg-server/glx/remap.h62
-rw-r--r--xorg-server/glx/remap_helper.h6490
-rw-r--r--xorg-server/glx/render2.c70
-rw-r--r--xorg-server/glx/render2swap.c70
-rw-r--r--xorg-server/glx/renderpix.c25
-rw-r--r--xorg-server/glx/renderpixswap.c25
-rw-r--r--xorg-server/glx/rensize.c6
-rw-r--r--xorg-server/glx/single2.c40
-rw-r--r--xorg-server/glx/single2swap.c31
-rw-r--r--xorg-server/glx/singlepix.c88
-rw-r--r--xorg-server/glx/singlepixswap.c89
-rw-r--r--xorg-server/glx/singlesize.c17
-rw-r--r--xorg-server/glx/swap_interval.c1
-rw-r--r--xorg-server/glx/xfont.c34
-rw-r--r--xorg-server/hw/dmx/dmxinit.c1
-rw-r--r--xorg-server/hw/kdrive/ephyr/ephyr.c13
-rw-r--r--xorg-server/hw/kdrive/ephyr/ephyr.h6
-rw-r--r--xorg-server/hw/kdrive/ephyr/ephyrinit.c12
-rw-r--r--xorg-server/hw/kdrive/ephyr/ephyrlog.h4
-rw-r--r--xorg-server/hw/kdrive/ephyr/hostx.c28
-rw-r--r--xorg-server/hw/kdrive/ephyr/hostx.h4
-rw-r--r--xorg-server/hw/kdrive/ephyr/makefile6
-rw-r--r--xorg-server/hw/kdrive/src/kdrive.c4
-rw-r--r--xorg-server/hw/kdrive/src/kdrive.h2
-rw-r--r--xorg-server/hw/kdrive/src/kinput.c27
-rw-r--r--xorg-server/hw/kdrive/src/makefile14
-rw-r--r--xorg-server/hw/xfree86/common/compiler.h6
-rw-r--r--xorg-server/hw/xwin/InitInput.c34
-rw-r--r--xorg-server/hw/xwin/InitOutput.c121
-rw-r--r--xorg-server/hw/xwin/Makefile.am1
-rw-r--r--xorg-server/hw/xwin/XWin.rc40
-rw-r--r--xorg-server/hw/xwin/ddraw.h2322
-rwxr-xr-xxorg-server/hw/xwin/doflexbison.bat18
-rw-r--r--xorg-server/hw/xwin/glx/.gitignore4
-rwxr-xr-xxorg-server/hw/xwin/glx/buildsimpledib.bat1
-rwxr-xr-x[-rw-r--r--]xorg-server/hw/xwin/glx/gen_gl_wrappers.py694
-rw-r--r--xorg-server/hw/xwin/glx/genheaders.py552
-rw-r--r--xorg-server/hw/xwin/glx/gl.xml41177
-rw-r--r--xorg-server/hw/xwin/glx/glwindows.h8
-rw-r--r--xorg-server/hw/xwin/glx/glwrap.c18
-rw-r--r--xorg-server/hw/xwin/glx/indirect.c513
-rwxr-xr-xxorg-server/hw/xwin/glx/makefile43
-rw-r--r--xorg-server/hw/xwin/glx/reg.py1162
-rw-r--r--xorg-server/hw/xwin/glx/simpledib.c675
-rw-r--r--xorg-server/hw/xwin/glx/wgl.xml1957
-rw-r--r--xorg-server/hw/xwin/glx/wgl_ext_api.c7
-rw-r--r--xorg-server/hw/xwin/glx/wgl_ext_api.h28
-rw-r--r--xorg-server/hw/xwin/glx/wglext.h833
-rw-r--r--xorg-server/hw/xwin/glx/winpriv.c120
-rw-r--r--xorg-server/hw/xwin/glx/winpriv.h2
-rw-r--r--xorg-server/hw/xwin/makefile165
-rw-r--r--xorg-server/hw/xwin/propertystore.h2
-rw-r--r--xorg-server/hw/xwin/swrastwgl_dri/.gitignore1
-rw-r--r--xorg-server/hw/xwin/swrastwgl_dri/glwindows.h39
-rw-r--r--xorg-server/hw/xwin/swrastwgl_dri/glwrap.c151
-rwxr-xr-xxorg-server/hw/xwin/swrastwgl_dri/makefile21
-rw-r--r--xorg-server/hw/xwin/swrastwgl_dri/swrastwgl_dri.c1245
-rw-r--r--xorg-server/hw/xwin/swrastwgl_dri/swrastwgl_dri.def2
-rw-r--r--xorg-server/hw/xwin/taskbar.h39
-rw-r--r--xorg-server/hw/xwin/win.h82
-rw-r--r--xorg-server/hw/xwin/winSetAppUserModelID.c3
-rw-r--r--xorg-server/hw/xwin/winallpriv.c10
-rw-r--r--xorg-server/hw/xwin/winauth.c29
-rw-r--r--xorg-server/hw/xwin/winclip.c2
-rw-r--r--xorg-server/hw/xwin/winclipboard.h15
-rw-r--r--xorg-server/hw/xwin/winclipboardinit.c7
-rw-r--r--xorg-server/hw/xwin/winclipboardthread.c196
-rw-r--r--xorg-server/hw/xwin/winclipboardwndproc.c248
-rw-r--r--xorg-server/hw/xwin/winclipboardwrappers.c80
-rw-r--r--xorg-server/hw/xwin/winclipboardxevents.c93
-rw-r--r--xorg-server/hw/xwin/wincmap.c72
-rw-r--r--xorg-server/hw/xwin/winconfig.c119
-rw-r--r--xorg-server/hw/xwin/wincreatewnd.c34
-rw-r--r--xorg-server/hw/xwin/wincursor.c40
-rw-r--r--xorg-server/hw/xwin/windialogs.c44
-rw-r--r--xorg-server/hw/xwin/windisplay.c60
-rw-r--r--xorg-server/hw/xwin/winengine.c28
-rw-r--r--xorg-server/hw/xwin/winerror.c29
-rw-r--r--xorg-server/hw/xwin/winfont.c12
-rw-r--r--xorg-server/hw/xwin/wingc.c86
-rw-r--r--xorg-server/hw/xwin/wingetsp.c19
-rw-r--r--xorg-server/hw/xwin/winglobals.c7
-rw-r--r--xorg-server/hw/xwin/winglobals.h1
-rw-r--r--xorg-server/hw/xwin/winkeybd.c20
-rw-r--r--xorg-server/hw/xwin/winkeybd.h38
-rw-r--r--xorg-server/hw/xwin/winlayouts.h1
-rw-r--r--xorg-server/hw/xwin/winmisc.c2
-rw-r--r--xorg-server/hw/xwin/winmonitors.c6
-rw-r--r--xorg-server/hw/xwin/winmouse.c27
-rw-r--r--xorg-server/hw/xwin/winmsg.c84
-rw-r--r--xorg-server/hw/xwin/winmsg.h40
-rw-r--r--xorg-server/hw/xwin/winmsgwindow.c3
-rw-r--r--xorg-server/hw/xwin/winmultiwindowclass.c16
-rw-r--r--xorg-server/hw/xwin/winmultiwindowclass.h10
-rw-r--r--xorg-server/hw/xwin/winmultiwindowicons.c24
-rw-r--r--xorg-server/hw/xwin/winmultiwindowshape.c17
-rw-r--r--xorg-server/hw/xwin/winmultiwindowwindow.c270
-rw-r--r--xorg-server/hw/xwin/winmultiwindowwm.c322
-rw-r--r--xorg-server/hw/xwin/winmultiwindowwndproc.c219
-rw-r--r--xorg-server/hw/xwin/winnativegdi.c18
-rw-r--r--xorg-server/hw/xwin/winpfbdd.c32
-rw-r--r--xorg-server/hw/xwin/winpixmap.c45
-rw-r--r--xorg-server/hw/xwin/winpolyline.c2
-rw-r--r--xorg-server/hw/xwin/winprefs.c26
-rw-r--r--xorg-server/hw/xwin/winprefslex.l2
-rw-r--r--xorg-server/hw/xwin/winprefsyacc.y12
-rw-r--r--xorg-server/hw/xwin/winprocarg.c123
-rw-r--r--xorg-server/hw/xwin/winresource.h2
-rw-r--r--xorg-server/hw/xwin/winscrinit.c59
-rw-r--r--xorg-server/hw/xwin/winsetsp.c57
-rw-r--r--xorg-server/hw/xwin/winshaddd.c53
-rw-r--r--xorg-server/hw/xwin/winshadddnl.c302
-rw-r--r--xorg-server/hw/xwin/winshadgdi.c76
-rw-r--r--xorg-server/hw/xwin/wintrayicon.c85
-rw-r--r--xorg-server/hw/xwin/winwin32rootless.c217
-rw-r--r--xorg-server/hw/xwin/winwin32rootlesswindow.c12
-rw-r--r--xorg-server/hw/xwin/winwin32rootlesswndproc.c131
-rw-r--r--xorg-server/hw/xwin/winwindow.c75
-rw-r--r--xorg-server/hw/xwin/winwindow.h46
-rw-r--r--xorg-server/hw/xwin/winwindowswm.c74
-rw-r--r--xorg-server/hw/xwin/winwndproc.c128
-rw-r--r--xorg-server/hw/xwin/xdmcphostselect.c180
-rw-r--r--xorg-server/hw/xwin/xlaunch/COPYING25
-rw-r--r--xorg-server/hw/xwin/xlaunch/config.cc200
-rw-r--r--xorg-server/hw/xwin/xlaunch/config.h87
-rw-r--r--xorg-server/hw/xwin/xlaunch/main.cc982
-rw-r--r--xorg-server/hw/xwin/xlaunch/makefile22
-rw-r--r--xorg-server/hw/xwin/xlaunch/resources/dialog.rc153
-rw-r--r--xorg-server/hw/xwin/xlaunch/resources/fullscreen.bmpbin0 -> 22554 bytes
-rw-r--r--xorg-server/hw/xwin/xlaunch/resources/images.rc29
-rw-r--r--xorg-server/hw/xwin/xlaunch/resources/multiwindow.bmpbin0 -> 22554 bytes
-rw-r--r--xorg-server/hw/xwin/xlaunch/resources/nodecoration.bmpbin0 -> 22554 bytes
-rw-r--r--xorg-server/hw/xwin/xlaunch/resources/resources.h118
-rw-r--r--xorg-server/hw/xwin/xlaunch/resources/resources.rc32
-rw-r--r--xorg-server/hw/xwin/xlaunch/resources/strings.rc121
-rw-r--r--xorg-server/hw/xwin/xlaunch/resources/windowed.bmpbin0 -> 22554 bytes
-rw-r--r--xorg-server/hw/xwin/xlaunch/window/dialog.cc86
-rw-r--r--xorg-server/hw/xwin/xlaunch/window/dialog.h54
-rw-r--r--xorg-server/hw/xwin/xlaunch/window/makefile4
-rw-r--r--xorg-server/hw/xwin/xlaunch/window/util.cc1113
-rw-r--r--xorg-server/hw/xwin/xlaunch/window/util.h53
-rw-r--r--xorg-server/hw/xwin/xlaunch/window/window.cc284
-rw-r--r--xorg-server/hw/xwin/xlaunch/window/window.h114
-rw-r--r--xorg-server/hw/xwin/xlaunch/window/wizard.cc244
-rw-r--r--xorg-server/hw/xwin/xlaunch/window/wizard.h58
-rw-r--r--xorg-server/include/callback.h4
-rw-r--r--xorg-server/include/closestr.h5
-rw-r--r--xorg-server/include/dixstruct.h2
-rw-r--r--xorg-server/include/eventstr.h2
-rw-r--r--xorg-server/include/gc.h2
-rw-r--r--xorg-server/include/input.h2
-rw-r--r--xorg-server/include/list.h4
-rw-r--r--xorg-server/include/misc.h24
-rw-r--r--xorg-server/include/os.h20
-rw-r--r--xorg-server/include/pixmapstr.h2
-rw-r--r--xorg-server/include/resource.h5
-rw-r--r--xorg-server/include/scrnintstr.h6
-rw-r--r--xorg-server/include/servermd.h6
-rw-r--r--xorg-server/include/site.h4
-rw-r--r--xorg-server/include/version-config.h16
-rw-r--r--xorg-server/include/windowstr.h2
-rw-r--r--xorg-server/include/xkb-config.h33
-rw-r--r--xorg-server/include/xkbstr.h2
-rw-r--r--xorg-server/include/xwin-config.h36
-rw-r--r--xorg-server/installer/genruntimeinclude.py82
-rwxr-xr-xxorg-server/installer/packageall.bat40
-rw-r--r--xorg-server/installer/vcxsrv-64-debug.nsi97
-rw-r--r--xorg-server/installer/vcxsrv-64.nsi255
-rw-r--r--xorg-server/installer/vcxsrv-debug.nsi97
-rw-r--r--xorg-server/installer/vcxsrv.nsi255
-rw-r--r--xorg-server/makefile109
-rw-r--r--xorg-server/mi/makefile39
-rw-r--r--xorg-server/mi/miarc.c5
-rw-r--r--xorg-server/mi/micmap.c15
-rw-r--r--xorg-server/mi/micoord.h8
-rw-r--r--xorg-server/mi/mieq.c4
-rw-r--r--xorg-server/mi/miexpose.c10
-rw-r--r--xorg-server/mi/miinitext.c2
-rw-r--r--xorg-server/mi/mioverlay.c4
-rw-r--r--xorg-server/mi/misprite.c13
-rw-r--r--xorg-server/mi/mivaltree.c16
-rw-r--r--xorg-server/mi/miwideline.c4
-rw-r--r--xorg-server/mi/miwindow.c2
-rw-r--r--xorg-server/miext/damage/damage.c6
-rw-r--r--xorg-server/miext/damage/makefile7
-rw-r--r--xorg-server/miext/rootless/makefile10
-rw-r--r--xorg-server/miext/rootless/rootlessGC.c3
-rw-r--r--xorg-server/miext/rootless/rootlessWindow.c14
-rw-r--r--xorg-server/miext/rootless/xplugin.h592
-rw-r--r--xorg-server/miext/shadow/makefile25
-rw-r--r--xorg-server/miext/sync/makefile4
-rw-r--r--xorg-server/os/WaitFor.c6
-rw-r--r--xorg-server/os/access.c337
-rw-r--r--xorg-server/os/auth.c12
-rw-r--r--xorg-server/os/connection.c93
-rw-r--r--xorg-server/os/io.c1
-rw-r--r--xorg-server/os/log.c24
-rw-r--r--xorg-server/os/makefile55
-rw-r--r--xorg-server/os/utils.c126
-rw-r--r--xorg-server/os/xdmcp.c142
-rw-r--r--xorg-server/os/xprintf.c7
-rw-r--r--xorg-server/os/xstrans.c12
-rw-r--r--xorg-server/present/makefile10
-rw-r--r--xorg-server/present/present.c4
-rw-r--r--xorg-server/present/present_event.c83
-rw-r--r--xorg-server/present/present_fence.c4
-rw-r--r--xorg-server/present/present_request.c29
-rw-r--r--xorg-server/present/present_screen.c4
-rw-r--r--xorg-server/randr/makefile28
-rw-r--r--xorg-server/randr/randr.c13
-rw-r--r--xorg-server/randr/rrcrtc.c104
-rw-r--r--xorg-server/randr/rrdispatch.c10
-rw-r--r--xorg-server/randr/rrmode.c11
-rw-r--r--xorg-server/randr/rroutput.c70
-rw-r--r--xorg-server/randr/rrproperty.c81
-rw-r--r--xorg-server/randr/rrprovider.c67
-rw-r--r--xorg-server/randr/rrproviderproperty.c84
-rw-r--r--xorg-server/randr/rrscreen.c194
-rw-r--r--xorg-server/randr/rrxinerama.c83
-rw-r--r--xorg-server/record/makefile4
-rw-r--r--xorg-server/record/record.c29
-rw-r--r--xorg-server/render/makefile15
-rw-r--r--xorg-server/render/mipict.c2
-rw-r--r--xorg-server/render/render.c10
-rw-r--r--xorg-server/startmulti.bat1
-rw-r--r--xorg-server/startxdmcp.bat2
-rw-r--r--xorg-server/system.XWinrc127
-rw-r--r--xorg-server/vcxsrv.sln26
-rw-r--r--xorg-server/xfixes/cursor.c31
-rw-r--r--xorg-server/xfixes/makefile9
-rw-r--r--xorg-server/xfixes/select.c19
-rw-r--r--xorg-server/xfixes/xfixes.c10
-rw-r--r--xorg-server/xkb/XKBMisc.c2
-rw-r--r--xorg-server/xkb/ddxPrivate.c32
-rwxr-xr-xxorg-server/xkb/makefile41
-rw-r--r--xorg-server/xkb/xkb.c322
-rw-r--r--xorg-server/xkb/xkbActions.c5
-rw-r--r--xorg-server/xkb/xkbEvents.c42
-rw-r--r--xorg-server/xkb/xkbInit.c4
-rw-r--r--xorg-server/xkeyboard-config/compat/makefile20
-rw-r--r--xorg-server/xkeyboard-config/geometry/digital_vndr/makefile12
-rw-r--r--xorg-server/xkeyboard-config/geometry/makefile25
-rw-r--r--xorg-server/xkeyboard-config/geometry/sgi_vndr/makefile13
-rw-r--r--xorg-server/xkeyboard-config/keycodes/digital_vndr/makefile12
-rw-r--r--xorg-server/xkeyboard-config/keycodes/makefile33
-rw-r--r--xorg-server/xkeyboard-config/keycodes/sgi_vndr/makefile12
-rw-r--r--xorg-server/xkeyboard-config/makefile9
-rwxr-xr-xxorg-server/xkeyboard-config/rules/bin/ml1_s.bat9
-rwxr-xr-xxorg-server/xkeyboard-config/rules/bin/ml1v1_s.bat7
-rwxr-xr-xxorg-server/xkeyboard-config/rules/bin/ml1v_s.bat7
-rwxr-xr-xxorg-server/xkeyboard-config/rules/bin/ml_s.bat9
-rwxr-xr-xxorg-server/xkeyboard-config/rules/bin/mln_s.bat10
-rwxr-xr-xxorg-server/xkeyboard-config/rules/bin/mlnvn_s.bat8
-rwxr-xr-xxorg-server/xkeyboard-config/rules/bin/mlv_s.bat7
-rw-r--r--xorg-server/xkeyboard-config/rules/compat/.gitignore10
-rw-r--r--xorg-server/xkeyboard-config/rules/compat/makefile56
-rw-r--r--xorg-server/xkeyboard-config/rules/makefile197
-rw-r--r--xorg-server/xkeyboard-config/rules/merge.py13
-rw-r--r--xorg-server/xkeyboard-config/symbols/cd.in (renamed from xorg-server/xkeyboard-config/symbols/cd)0
-rw-r--r--xorg-server/xkeyboard-config/symbols/digital_vndr/makefile13
-rw-r--r--xorg-server/xkeyboard-config/symbols/fujitsu_vndr/makefile12
-rw-r--r--xorg-server/xkeyboard-config/symbols/hp_vndr/makefile12
-rwxr-xr-x[-rw-r--r--]xorg-server/xkeyboard-config/symbols/level30
-rwxr-xr-x[-rw-r--r--]xorg-server/xkeyboard-config/symbols/level50
-rw-r--r--xorg-server/xkeyboard-config/symbols/macintosh_vndr/makefile16
-rw-r--r--xorg-server/xkeyboard-config/symbols/makefile56
-rw-r--r--xorg-server/xkeyboard-config/symbols/nec_vndr/makefile12
-rw-r--r--xorg-server/xkeyboard-config/symbols/nokia_vndr/makefile14
-rw-r--r--xorg-server/xkeyboard-config/symbols/sgi_vndr/makefile12
-rw-r--r--xorg-server/xkeyboard-config/symbols/sharp_vndr/makefile16
-rw-r--r--xorg-server/xkeyboard-config/symbols/sony_vndr/makefile12
-rw-r--r--xorg-server/xkeyboard-config/symbols/sun_vndr/makefile18
-rw-r--r--xorg-server/xkeyboard-config/symbols/xfree68_vndr/makefile12
-rw-r--r--xorg-server/xkeyboard-config/types/default.in (renamed from xorg-server/xkeyboard-config/types/default)0
-rw-r--r--xorg-server/xkeyboard-config/types/makefile17
-rw-r--r--xorg-server/xkeyboard-config/xkbrules.mak26
-rw-r--r--xorg-server/xkeysymdb380
-rw-r--r--zlib/Makefile11
-rwxr-xr-x[-rw-r--r--]zlib/contrib/masmx64/bld_ml64.bat0
-rwxr-xr-x[-rw-r--r--]zlib/contrib/masmx86/bld_ml32.bat0
-rw-r--r--zlib/crc32.c2
-rw-r--r--zlib/deflate.c2
-rw-r--r--zlib/gzlib.c14
-rw-r--r--zlib/infback.c1
-rw-r--r--zlib/inffast.c1
-rw-r--r--zlib/inflate.c2
-rw-r--r--zlib/inftrees.c1
-rw-r--r--zlib/trees.c2
-rw-r--r--zlib/win32/zlib.def85
-rw-r--r--zlib/zutil.c2
1457 files changed, 269952 insertions, 37189 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..f8f940470
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,26 @@
+*.bak
+*.orig
+obj
+obj_d
+obj64
+obj64_d
+objs
+*.exe
+*.dll
+Debug
+Release
+*.vcxproj.user
+*.lib
+*.pyc
+*.res
+*.pdb
+*.suo
+*.sdf
+glsl_lexer.cpp
+glsl_parser.cpp
+.fileslist
+GPATH
+GRTAGS
+GTAGS
+TAGS
+cscope*
diff --git a/COPYING b/COPYING
new file mode 100644
index 000000000..818433ecc
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/X11/CallbackI.h b/X11/CallbackI.h
new file mode 100644
index 000000000..d11134a5d
--- /dev/null
+++ b/X11/CallbackI.h
@@ -0,0 +1,119 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+/****************************************************************
+ *
+ * Callbacks
+ *
+ ****************************************************************/
+
+typedef XrmResource **CallbackTable;
+
+#define _XtCBCalling 1
+#define _XtCBFreeAfterCalling 2
+
+_XFUNCPROTOBEGIN
+
+typedef struct internalCallbackRec {
+ unsigned short count;
+ char is_padded; /* contains NULL padding for external form */
+ char call_state; /* combination of _XtCB{FreeAfter}Calling */
+#ifdef LONG64
+ unsigned int align_pad; /* padding to align callback list */
+#endif
+ /* XtCallbackList */
+} InternalCallbackRec, *InternalCallbackList;
+
+typedef Boolean (*_XtConditionProc)(
+ XtPointer /* data */
+);
+
+extern void _XtAddCallback(
+ InternalCallbackList* /* callbacks */,
+ XtCallbackProc /* callback */,
+ XtPointer /* closure */
+);
+
+extern void _XtAddCallbackOnce(
+ InternalCallbackList* /* callbacks */,
+ XtCallbackProc /* callback */,
+ XtPointer /* closure */
+);
+
+extern InternalCallbackList _XtCompileCallbackList(
+ XtCallbackList /* xtcallbacks */
+);
+
+extern XtCallbackList _XtGetCallbackList(
+ InternalCallbackList* /* callbacks */
+);
+
+extern void _XtRemoveAllCallbacks(
+ InternalCallbackList* /* callbacks */
+);
+
+extern void _XtRemoveCallback(
+ InternalCallbackList* /* callbacks */,
+ XtCallbackProc /* callback */,
+ XtPointer /* closure */
+);
+
+extern void _XtPeekCallback(
+ Widget /* widget */,
+ XtCallbackList /* callbacks */,
+ XtCallbackProc * /* callback */,
+ XtPointer * /* closure */
+);
+
+extern void _XtCallConditionalCallbackList(
+ Widget /* widget */,
+ XtCallbackList /* callbacks */,
+ XtPointer /* call_data */,
+ _XtConditionProc /* cond_proc */
+);
+
+_XFUNCPROTOEND
diff --git a/X11/Composite.h b/X11/Composite.h
new file mode 100644
index 000000000..f9ab03e5a
--- /dev/null
+++ b/X11/Composite.h
@@ -0,0 +1,102 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XtComposite_h
+#define _XtComposite_h
+
+typedef struct _CompositeClassRec *CompositeWidgetClass;
+
+typedef Cardinal (*XtOrderProc)(
+ Widget /* child */
+);
+
+_XFUNCPROTOBEGIN
+
+extern void XtManageChildren(
+ WidgetList /* children */,
+ Cardinal /* num_children */
+);
+
+extern void XtManageChild(
+ Widget /* child */
+);
+
+extern void XtUnmanageChildren(
+ WidgetList /* children */,
+ Cardinal /* num_children */
+);
+
+extern void XtUnmanageChild(
+ Widget /* child */
+);
+
+typedef void (*XtDoChangeProc)(
+ Widget /* composite_parent */,
+ WidgetList /* unmanage_children */,
+ Cardinal * /* num_unmanage_children */,
+ WidgetList /* manage_children */,
+ Cardinal * /* num_manage_children */,
+ XtPointer /* client_data */
+);
+
+extern void XtChangeManagedSet(
+ WidgetList /* unmanage_children */,
+ Cardinal /* num_unmanage_children */,
+ XtDoChangeProc /* do_change_proc */,
+ XtPointer /* client_data */,
+ WidgetList /* manage_children */,
+ Cardinal /* num_manage_children */
+);
+
+_XFUNCPROTOEND
+
+#ifndef VMS
+externalref WidgetClass compositeWidgetClass;
+#endif
+
+#endif /* _XtComposite_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/CompositeP.h b/X11/CompositeP.h
new file mode 100644
index 000000000..8c447bd7e
--- /dev/null
+++ b/X11/CompositeP.h
@@ -0,0 +1,113 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XtCompositeP_h
+#define _XtCompositeP_h
+
+#include <X11/Composite.h>
+
+_XFUNCPROTOBEGIN
+
+/************************************************************************
+ *
+ * Additional instance fields for widgets of (sub)class 'Composite'
+ *
+ ************************************************************************/
+
+typedef struct _CompositePart {
+ WidgetList children; /* array of ALL widget children */
+ Cardinal num_children; /* total number of widget children */
+ Cardinal num_slots; /* number of slots in children array */
+ XtOrderProc insert_position; /* compute position of new child */
+} CompositePart,*CompositePtr;
+
+typedef struct _CompositeRec {
+ CorePart core;
+ CompositePart composite;
+} CompositeRec;
+
+/*********************************************************************
+ *
+ * Additional class fields for widgets of (sub)class 'Composite'
+ *
+ ********************************************************************/
+
+typedef struct _CompositeClassPart {
+ XtGeometryHandler geometry_manager; /* geometry manager for children */
+ XtWidgetProc change_managed; /* change managed state of child */
+ XtWidgetProc insert_child; /* physically add child to parent */
+ XtWidgetProc delete_child; /* physically remove child */
+ XtPointer extension; /* pointer to extension record */
+} CompositeClassPart,*CompositePartPtr;
+
+typedef struct {
+ XtPointer next_extension; /* 1st 4 mandated for all extension records */
+ XrmQuark record_type; /* NULLQUARK; on CompositeClassPart */
+ long version; /* must be XtCompositeExtensionVersion */
+ Cardinal record_size; /* sizeof(CompositeClassExtensionRec) */
+ Boolean accepts_objects;
+ Boolean allows_change_managed_set;
+} CompositeClassExtensionRec, *CompositeClassExtension;
+
+
+typedef struct _CompositeClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+} CompositeClassRec;
+
+externalref CompositeClassRec compositeClassRec;
+
+_XFUNCPROTOEND
+
+#define XtCompositeExtensionVersion 2L
+#define XtInheritGeometryManager ((XtGeometryHandler) _XtInherit)
+#define XtInheritChangeManaged ((XtWidgetProc) _XtInherit)
+#define XtInheritInsertChild ((XtWidgetProc) _XtInherit)
+#define XtInheritDeleteChild ((XtWidgetProc) _XtInherit)
+
+#endif /* _XtCompositeP_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/ConstrainP.h b/X11/ConstrainP.h
new file mode 100644
index 000000000..eb2bb3180
--- /dev/null
+++ b/X11/ConstrainP.h
@@ -0,0 +1,96 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XtConstraintP_h
+#define _XtConstraintP_h
+
+#include <X11/Constraint.h>
+
+_XFUNCPROTOBEGIN
+
+typedef struct _ConstraintPart {
+ XtPointer mumble; /* No new fields, keep C compiler happy */
+} ConstraintPart;
+
+typedef struct _ConstraintRec {
+ CorePart core;
+ CompositePart composite;
+ ConstraintPart constraint;
+} ConstraintRec, *ConstraintWidget;
+
+typedef struct _ConstraintClassPart {
+ XtResourceList resources; /* constraint resource list */
+ Cardinal num_resources; /* number of constraints in list */
+ Cardinal constraint_size; /* size of constraint record */
+ XtInitProc initialize; /* constraint initialization */
+ XtWidgetProc destroy; /* constraint destroy proc */
+ XtSetValuesFunc set_values; /* constraint set_values proc */
+ XtPointer extension; /* pointer to extension record */
+} ConstraintClassPart;
+
+typedef struct {
+ XtPointer next_extension; /* 1st 4 mandated for all extension records */
+ XrmQuark record_type; /* NULLQUARK; on ConstraintClassPart */
+ long version; /* must be XtConstraintExtensionVersion */
+ Cardinal record_size; /* sizeof(ConstraintClassExtensionRec) */
+ XtArgsProc get_values_hook;
+} ConstraintClassExtensionRec, *ConstraintClassExtension;
+
+typedef struct _ConstraintClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ConstraintClassPart constraint_class;
+} ConstraintClassRec;
+
+externalref ConstraintClassRec constraintClassRec;
+
+_XFUNCPROTOEND
+
+#define XtConstraintExtensionVersion 1L
+
+#endif /* _XtConstraintP_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/Constraint.h b/X11/Constraint.h
new file mode 100644
index 000000000..cdc2de761
--- /dev/null
+++ b/X11/Constraint.h
@@ -0,0 +1,62 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XtConstraint_h
+#define _XtConstraint_h
+
+_XFUNCPROTOBEGIN
+
+typedef struct _ConstraintClassRec *ConstraintWidgetClass;
+
+#ifndef VMS
+externalref WidgetClass constraintWidgetClass;
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _XtConstraint_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/ConvertI.h b/X11/ConvertI.h
new file mode 100644
index 000000000..c5ced0c35
--- /dev/null
+++ b/X11/ConvertI.h
@@ -0,0 +1,96 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+_XFUNCPROTOBEGIN
+
+/* Representation types */
+
+extern XrmQuark _XtQString;
+
+/*
+ * Resource conversions
+ */
+
+typedef struct _ConverterRec **ConverterTable;
+
+extern void _XtAddDefaultConverters(
+ ConverterTable /* table */
+);
+
+extern void _XtSetDefaultConverterTable(
+ ConverterTable* /* table */
+);
+
+extern void _XtFreeConverterTable(
+ ConverterTable /* table */
+);
+
+extern void _XtTableAddConverter(
+ ConverterTable /* table */,
+ XrmRepresentation /* from_type */,
+ XrmRepresentation /* to_type */,
+ XtTypeConverter /* converter */,
+ XtConvertArgList /* convert_args */,
+ Cardinal /* num_args */,
+ _XtBoolean /* new_style */,
+ XtCacheType /* cache_type */,
+ XtDestructor /* destructor */,
+ _XtBoolean /* global */
+);
+
+extern Boolean _XtConvert(
+ Widget /* widget */,
+ XrmRepresentation /* from_type */,
+ XrmValuePtr /* from */,
+ XrmRepresentation /* to_type */,
+ XrmValuePtr /* to */,
+ XtCacheRef* /* cache_ref_return */
+);
+
+void _XtConvertInitialize(void);
+
+_XFUNCPROTOEND
diff --git a/X11/Core.h b/X11/Core.h
new file mode 100644
index 000000000..7e1bc4658
--- /dev/null
+++ b/X11/Core.h
@@ -0,0 +1,65 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XtCore_h
+#define _XtCore_h
+
+_XFUNCPROTOBEGIN
+
+typedef struct _WidgetClassRec *CoreWidgetClass;
+typedef struct _WidgetRec *CoreWidget;
+externalref WidgetClass coreWidgetClass;
+
+#ifndef VMS
+externalref WidgetClass widgetClass;
+
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _XtCore_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/CoreP.h b/X11/CoreP.h
new file mode 100644
index 000000000..c383cc98d
--- /dev/null
+++ b/X11/CoreP.h
@@ -0,0 +1,170 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef XtCoreP_h
+#define XtCoreP_h
+
+#include <X11/Core.h>
+
+_XFUNCPROTOBEGIN
+
+externalref int _XtInheritTranslations;
+
+#define XtInheritTranslations ((String) &_XtInheritTranslations)
+#define XtInheritRealize ((XtRealizeProc) _XtInherit)
+#define XtInheritResize ((XtWidgetProc) _XtInherit)
+#define XtInheritExpose ((XtExposeProc) _XtInherit)
+#define XtInheritSetValuesAlmost ((XtAlmostProc) _XtInherit)
+#define XtInheritAcceptFocus ((XtAcceptFocusProc) _XtInherit)
+#define XtInheritQueryGeometry ((XtGeometryHandler) _XtInherit)
+#define XtInheritDisplayAccelerator ((XtStringProc) _XtInherit)
+
+/***************************************************************
+ * Widget Core Data Structures
+ *
+ *
+ **************************************************************/
+
+typedef struct _CorePart {
+ Widget self; /* pointer to widget itself */
+ WidgetClass widget_class; /* pointer to Widget's ClassRec */
+ Widget parent; /* parent widget */
+ XrmName xrm_name; /* widget resource name quarkified */
+ Boolean being_destroyed; /* marked for destroy */
+ XtCallbackList destroy_callbacks; /* who to call when widget destroyed */
+ XtPointer constraints; /* constraint record */
+ Position x, y; /* window position */
+ Dimension width, height; /* window dimensions */
+ Dimension border_width; /* window border width */
+ Boolean managed; /* is widget geometry managed? */
+ Boolean sensitive; /* is widget sensitive to user events*/
+ Boolean ancestor_sensitive; /* are all ancestors sensitive? */
+ XtEventTable event_table; /* private to event dispatcher */
+ XtTMRec tm; /* translation management */
+ XtTranslations accelerators; /* accelerator translations */
+ Pixel border_pixel; /* window border pixel */
+ Pixmap border_pixmap; /* window border pixmap or NULL */
+ WidgetList popup_list; /* list of popups */
+ Cardinal num_popups; /* how many popups */
+ String name; /* widget resource name */
+ Screen *screen; /* window's screen */
+ Colormap colormap; /* colormap */
+ Window window; /* window ID */
+ Cardinal depth; /* number of planes in window */
+ Pixel background_pixel; /* window background pixel */
+ Pixmap background_pixmap; /* window background pixmap or NULL */
+ Boolean visible; /* is window mapped and not occluded?*/
+ Boolean mapped_when_managed;/* map window if it's managed? */
+} CorePart;
+
+typedef struct _WidgetRec {
+ CorePart core;
+ } WidgetRec, CoreRec;
+
+
+
+/******************************************************************
+ *
+ * Core Class Structure. Widgets, regardless of their class, will have
+ * these fields. All widgets of a given class will have the same values
+ * for these fields. Widgets of a given class may also have additional
+ * common fields. These additional fields are included in incremental
+ * class structures, such as CommandClass.
+ *
+ * The fields that are specific to this subclass, as opposed to fields that
+ * are part of the superclass, are called "subclass fields" below. Many
+ * procedures are responsible only for the subclass fields, and not for
+ * any superclass fields.
+ *
+ ********************************************************************/
+
+typedef struct _CoreClassPart {
+ WidgetClass superclass; /* pointer to superclass ClassRec */
+ String class_name; /* widget resource class name */
+ Cardinal widget_size; /* size in bytes of widget record */
+ XtProc class_initialize; /* class initialization proc */
+ XtWidgetClassProc class_part_initialize; /* dynamic initialization */
+ XtEnum class_inited; /* has class been initialized? */
+ XtInitProc initialize; /* initialize subclass fields */
+ XtArgsProc initialize_hook; /* notify that initialize called */
+ XtRealizeProc realize; /* XCreateWindow for widget */
+ XtActionList actions; /* widget semantics name to proc map */
+ Cardinal num_actions; /* number of entries in actions */
+ XtResourceList resources; /* resources for subclass fields */
+ Cardinal num_resources; /* number of entries in resources */
+ XrmClass xrm_class; /* resource class quarkified */
+ Boolean compress_motion; /* compress MotionNotify for widget */
+ XtEnum compress_exposure; /* compress Expose events for widget*/
+ Boolean compress_enterleave;/* compress enter and leave events */
+ Boolean visible_interest; /* select for VisibilityNotify */
+ XtWidgetProc destroy; /* free data for subclass pointers */
+ XtWidgetProc resize; /* geom manager changed widget size */
+ XtExposeProc expose; /* rediplay window */
+ XtSetValuesFunc set_values; /* set subclass resource values */
+ XtArgsFunc set_values_hook; /* notify that set_values called */
+ XtAlmostProc set_values_almost; /* set_values got "Almost" geo reply */
+ XtArgsProc get_values_hook; /* notify that get_values called */
+ XtAcceptFocusProc accept_focus; /* assign input focus to widget */
+ XtVersionType version; /* version of intrinsics used */
+ XtPointer callback_private; /* list of callback offsets */
+ String tm_table; /* state machine */
+ XtGeometryHandler query_geometry; /* return preferred geometry */
+ XtStringProc display_accelerator;/* display your accelerator */
+ XtPointer extension; /* pointer to extension record */
+ } CoreClassPart;
+
+typedef struct _WidgetClassRec {
+ CoreClassPart core_class;
+} WidgetClassRec, CoreClassRec;
+
+externalref WidgetClassRec widgetClassRec;
+#define coreClassRec widgetClassRec
+
+_XFUNCPROTOEND
+
+#endif /* _XtCoreP_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/CreateI.h b/X11/CreateI.h
new file mode 100644
index 000000000..77d6af652
--- /dev/null
+++ b/X11/CreateI.h
@@ -0,0 +1,42 @@
+#ifndef _XtcreateI_h
+#define _XtcreateI_h
+
+_XFUNCPROTOBEGIN
+
+extern Widget _XtCreateWidget(String name, WidgetClass widget_class,
+ Widget parent, ArgList args, Cardinal num_args,
+ XtTypedArgList typed_args,
+ Cardinal num_typed_args);
+extern Widget _XtCreatePopupShell(String name, WidgetClass widget_class,
+ Widget parent, ArgList args,
+ Cardinal num_args, XtTypedArgList typed_args,
+ Cardinal num_typed_args);
+extern Widget _XtAppCreateShell(String name, String class,
+ WidgetClass widget_class, Display *display,
+ ArgList args, Cardinal num_args,
+ XtTypedArgList typed_args,
+ Cardinal num_typed_args);
+extern Widget _XtCreateHookObj(Screen *screen);
+
+_XFUNCPROTOEND
+
+#include <stdarg.h>
+
+_XFUNCPROTOBEGIN
+
+/* VarCreate.c */
+extern Widget _XtVaOpenApplication(XtAppContext *app_context_return,
+ _Xconst char* application_class,
+ XrmOptionDescList options, Cardinal num_options,
+ int *argc_in_out, String *argv_in_out,
+ String *fallback_resources, WidgetClass widget_class,
+ va_list var_args);
+extern Widget _XtVaAppInitialize(XtAppContext *app_context_return,
+ _Xconst char* application_class,
+ XrmOptionDescList options, Cardinal num_options,
+ int *argc_in_out, String *argv_in_out,
+ String *fallback_resources, va_list var_args);
+
+_XFUNCPROTOEND
+
+#endif /* _XtcreateI_h */
diff --git a/X11/EventI.h b/X11/EventI.h
new file mode 100644
index 000000000..7817bc251
--- /dev/null
+++ b/X11/EventI.h
@@ -0,0 +1,134 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+/*
+ * Event.h - exported types and functions for toolkit event handler
+ *
+ * Author: Charles Haynes
+ * Digital Equipment Corporation
+ * Western Software Laboratory
+ * Date: Sun Dec 6 1987
+ */
+
+#ifndef _Event_h_
+#define _Event_h_
+
+typedef struct _XtGrabRec *XtGrabList;
+
+#include "PassivGraI.h"
+
+_XFUNCPROTOBEGIN
+
+extern void _XtEventInitialize(
+ void
+);
+
+typedef struct _XtEventRec {
+ XtEventTable next;
+ EventMask mask; /* also select_data count for RecExt */
+ XtEventHandler proc;
+ XtPointer closure;
+ unsigned int select:1;
+ unsigned int has_type_specifier:1;
+ unsigned int async:1; /* not used, here for Digital extension? */
+} XtEventRec;
+
+typedef struct _XtGrabRec {
+ XtGrabList next;
+ Widget widget;
+ unsigned int exclusive:1;
+ unsigned int spring_loaded:1;
+}XtGrabRec;
+
+typedef struct _BlockHookRec {
+ struct _BlockHookRec* next;
+ XtAppContext app;
+ XtBlockHookProc proc;
+ XtPointer closure;
+} BlockHookRec, *BlockHook;
+
+extern void _XtFreeEventTable(
+ XtEventTable* /* event_table */
+);
+
+extern Boolean _XtOnGrabList(
+ Widget /* widget */,
+ XtGrabRec* /* grabList */
+);
+
+extern void _XtRemoveAllInputs(
+ XtAppContext /* app */
+);
+
+extern void _XtRefreshMapping(
+ XEvent* /* event */,
+ _XtBoolean /* dispatch */
+);
+
+extern void _XtSendFocusEvent(
+ Widget /* child */,
+ int /* type */);
+
+extern EventMask _XtConvertTypeToMask(
+ int /* eventType */
+);
+
+/* EventUtil.c */
+extern Widget _XtFindRemapWidget(XEvent *event, Widget widget,
+ EventMask mask, XtPerDisplayInput pdi);
+extern void _XtUngrabBadGrabs(XEvent *event, Widget widget,
+ EventMask mask, XtPerDisplayInput pdi);
+extern void _XtFillAncestorList(Widget **listPtr, int *maxElemsPtr,
+ int *numElemsPtr, Widget start,
+ Widget breakWidget);
+
+/* NextEvent.c */
+extern Boolean XtAppPeekEvent_SkipTimer;
+
+_XFUNCPROTOEND
+
+#endif /* _Event_h_ */
diff --git a/X11/HookObjI.h b/X11/HookObjI.h
new file mode 100644
index 000000000..331e1227e
--- /dev/null
+++ b/X11/HookObjI.h
@@ -0,0 +1,73 @@
+/*
+
+Copyright 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+#ifndef _XtHookObjI_h
+#define _XtHookObjI_h
+
+_XFUNCPROTOBEGIN
+
+/* This object is implementation-dependent and private to the library. */
+
+typedef struct _HookObjRec *HookObject;
+typedef struct _HookObjClassRec *HookObjectClass;
+
+externalref WidgetClass hookObjectClass;
+
+typedef struct _HookObjPart {
+ /* resources */
+ XtCallbackList createhook_callbacks;
+ XtCallbackList changehook_callbacks;
+ XtCallbackList confighook_callbacks;
+ XtCallbackList geometryhook_callbacks;
+ XtCallbackList destroyhook_callbacks;
+ WidgetList shells;
+ Cardinal num_shells;
+ /* private data */
+ Cardinal max_shells;
+ Screen* screen;
+}HookObjPart;
+
+typedef struct _HookObjRec {
+ ObjectPart object;
+ HookObjPart hooks;
+} HookObjRec;
+
+typedef struct _HookObjClassPart {
+ int unused;
+} HookObjClassPart;
+
+typedef struct _HookObjClassRec {
+ ObjectClassPart object_class;
+ HookObjClassPart hook_class;
+} HookObjClassRec;
+
+externalref HookObjClassRec hookObjClassRec;
+
+_XFUNCPROTOEND
+
+#endif /* ifndef _Xt_HookObjI_h */
+
+
diff --git a/X11/ImUtil.h b/X11/ImUtil.h
new file mode 100644
index 000000000..b7f425c93
--- /dev/null
+++ b/X11/ImUtil.h
@@ -0,0 +1,30 @@
+
+#ifndef _X11_IMUTIL_H_
+#define _X11_IMUTIL_H_
+
+extern int
+_XGetScanlinePad(
+ Display *dpy,
+ int depth);
+
+extern int
+_XGetBitsPerPixel(
+ Display *dpy,
+ int depth);
+
+extern int
+_XSetImage(
+ XImage *srcimg,
+ register XImage *dstimg,
+ register int x,
+ register int y);
+
+extern int
+_XReverse_Bytes(
+ register unsigned char *bpt,
+ register int nb);
+extern void
+_XInitImageFuncPtrs(
+ register XImage *image);
+
+#endif /* _X11_IMUTIL_H_ */
diff --git a/X11/InitialI.h b/X11/InitialI.h
new file mode 100644
index 000000000..66a4041df
--- /dev/null
+++ b/X11/InitialI.h
@@ -0,0 +1,430 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XtinitialI_h
+#define _XtinitialI_h
+
+/****************************************************************
+ *
+ * Displays
+ *
+ ****************************************************************/
+
+#ifndef X_NOT_POSIX
+#ifdef _POSIX_SOURCE
+#include <limits.h>
+#else
+#define _POSIX_SOURCE
+#include <limits.h>
+#undef _POSIX_SOURCE
+#endif
+#endif
+#ifndef PATH_MAX
+#ifdef WIN32
+#define PATH_MAX 512
+#else
+#include <sys/param.h>
+#endif
+#ifndef PATH_MAX
+#ifdef MAXPATHLEN
+#define PATH_MAX MAXPATHLEN
+#else
+#define PATH_MAX 1024
+#endif
+#endif
+#endif
+
+#include <X11/Xos.h>
+#include <X11/Xpoll.h>
+
+_XFUNCPROTOBEGIN
+
+typedef struct _TimerEventRec {
+ struct timeval te_timer_value;
+ struct _TimerEventRec *te_next;
+ XtTimerCallbackProc te_proc;
+ XtAppContext app;
+ XtPointer te_closure;
+} TimerEventRec;
+
+typedef struct _InputEvent {
+ XtInputCallbackProc ie_proc;
+ XtPointer ie_closure;
+ struct _InputEvent *ie_next;
+ struct _InputEvent *ie_oq;
+ XtAppContext app;
+ int ie_source;
+ XtInputMask ie_condition;
+} InputEvent;
+
+typedef struct _SignalEventRec {
+ XtSignalCallbackProc se_proc;
+ XtPointer se_closure;
+ struct _SignalEventRec *se_next;
+ XtAppContext app;
+ Boolean se_notice;
+} SignalEventRec;
+
+typedef struct _WorkProcRec {
+ XtWorkProc proc;
+ XtPointer closure;
+ struct _WorkProcRec *next;
+ XtAppContext app;
+} WorkProcRec;
+
+
+typedef struct
+{
+#ifndef USE_POLL
+ fd_set rmask;
+ fd_set wmask;
+ fd_set emask;
+#endif
+ int nfds;
+} FdStruct;
+
+typedef struct _LangProcRec {
+ XtLanguageProc proc;
+ XtPointer closure;
+} LangProcRec;
+
+typedef struct _ProcessContextRec {
+ XtAppContext defaultAppContext;
+ XtAppContext appContextList;
+ ConverterTable globalConverterTable;
+ LangProcRec globalLangProcRec;
+} ProcessContextRec, *ProcessContext;
+
+typedef struct {
+ char* start;
+ char* current;
+ int bytes_remaining;
+} Heap;
+
+typedef struct _DestroyRec DestroyRec;
+
+
+typedef struct _XtAppStruct {
+ XtAppContext next; /* link to next app in process context */
+ ProcessContext process; /* back pointer to our process context */
+ InternalCallbackList destroy_callbacks;
+ Display **list;
+ TimerEventRec *timerQueue;
+ WorkProcRec *workQueue;
+ InputEvent **input_list;
+ InputEvent *outstandingQueue;
+ SignalEventRec *signalQueue;
+ XrmDatabase errorDB;
+ XtErrorMsgHandler errorMsgHandler, warningMsgHandler;
+ XtErrorHandler errorHandler, warningHandler;
+ struct _ActionListRec *action_table;
+ ConverterTable converterTable;
+ unsigned long selectionTimeout;
+ FdStruct fds;
+ short count; /* num of assigned entries in list */
+ short max; /* allocate size of list */
+ short last;
+ short input_count;
+ short input_max; /* elts input_list init'd with */
+ Boolean sync, being_destroyed, error_inited;
+#ifndef NO_IDENTIFY_WINDOWS
+ Boolean identify_windows; /* debugging hack */
+#endif
+ Heap heap;
+ String * fallback_resources; /* Set by XtAppSetFallbackResources. */
+ struct _ActionHookRec* action_hook_list;
+ struct _BlockHookRec* block_hook_list;
+ int destroy_list_size; /* state data for 2-phase destroy */
+ int destroy_count;
+ int dispatch_level;
+ DestroyRec* destroy_list;
+ Widget in_phase2_destroy;
+ LangProcRec langProcRec;
+ struct _TMBindCacheRec * free_bindings;
+ String display_name_tried;
+ Display **dpy_destroy_list;
+ int dpy_destroy_count;
+ Boolean exit_flag;
+ Boolean rebuild_fdlist;
+#ifdef XTHREADS
+ LockPtr lock_info;
+ ThreadAppProc lock;
+ ThreadAppProc unlock;
+ ThreadAppYieldLockProc yield_lock;
+ ThreadAppRestoreLockProc restore_lock;
+ ThreadAppProc free_lock;
+#endif
+} XtAppStruct;
+
+extern void _XtHeapInit(Heap* heap);
+extern void _XtHeapFree(Heap* heap);
+
+#ifdef XTTRACEMEMORY
+
+
+extern char *_XtHeapMalloc(
+ Heap* /* heap */,
+ Cardinal /* size */,
+ char * /* file */,
+ int /* line */
+);
+
+#define _XtHeapAlloc(heap,bytes) _XtHeapMalloc(heap, bytes, __FILE__, __LINE__)
+
+#else /* XTTRACEMEMORY */
+
+extern char* _XtHeapAlloc(
+ Heap* /* heap */,
+ Cardinal /* size */
+);
+
+#endif /* XTTRACEMEMORY */
+
+extern void _XtSetDefaultErrorHandlers(
+ XtErrorMsgHandler* /* errMsg */,
+ XtErrorMsgHandler* /* warnMsg */,
+ XtErrorHandler* /* err */,
+ XtErrorHandler* /* warn */
+);
+
+extern void _XtSetDefaultSelectionTimeout(
+ unsigned long* /* timeout */
+);
+
+extern XtAppContext _XtDefaultAppContext(
+ void
+);
+
+extern ProcessContext _XtGetProcessContext(
+ void
+);
+
+Display *
+_XtAppInit(
+ XtAppContext* /* app_context_return */,
+ String /* application_class */,
+ XrmOptionDescRec* /* options */,
+ Cardinal /* num_options */,
+ int* /* argc_in_out */,
+ String** /* argv_in_out */,
+ String* /* fallback_resources */
+);
+
+extern void _XtDestroyAppContexts(
+ void
+);
+
+extern void _XtCloseDisplays(
+ XtAppContext /* app */
+);
+
+extern int _XtAppDestroyCount;
+
+extern int _XtWaitForSomething(
+ XtAppContext /* app */,
+ _XtBoolean /* ignoreEvents */,
+ _XtBoolean /* ignoreTimers */,
+ _XtBoolean /* ignoreInputs */,
+ _XtBoolean /* ignoreSignals */,
+ _XtBoolean /* block */,
+#ifdef XTHREADS
+ _XtBoolean /* drop_lock */,
+#endif
+ unsigned long* /* howlong */
+);
+
+typedef struct _CaseConverterRec *CaseConverterPtr;
+typedef struct _CaseConverterRec {
+ KeySym start; /* first KeySym valid in converter */
+ KeySym stop; /* last KeySym valid in converter */
+ XtCaseProc proc; /* case converter function */
+ CaseConverterPtr next; /* next converter record */
+} CaseConverterRec;
+
+typedef struct _ExtensionSelectorRec {
+ XtExtensionSelectProc proc;
+ int min, max;
+ XtPointer client_data;
+} ExtSelectRec;
+
+typedef struct _XtPerDisplayStruct {
+ InternalCallbackList destroy_callbacks;
+ Region region;
+ CaseConverterPtr case_cvt; /* user-registered case converters */
+ XtKeyProc defaultKeycodeTranslator;
+ XtAppContext appContext;
+ unsigned long keysyms_serial; /* for tracking MappingNotify events */
+ KeySym *keysyms; /* keycode to keysym table */
+ int keysyms_per_keycode; /* number of keysyms for each keycode*/
+ int min_keycode, max_keycode; /* range of keycodes */
+ KeySym *modKeysyms; /* keysym values for modToKeysysm */
+ ModToKeysymTable *modsToKeysyms; /* modifiers to Keysysms index table*/
+ unsigned char isModifier[32]; /* key-is-modifier-p bit table */
+ KeySym lock_meaning; /* Lock modifier meaning */
+ Modifiers mode_switch; /* keyboard group modifiers */
+ Modifiers num_lock; /* keyboard numlock modifiers */
+ Boolean being_destroyed;
+ Boolean rv; /* reverse_video resource */
+ XrmName name; /* resolved app name */
+ XrmClass class; /* application class */
+ Heap heap;
+ struct _GCrec *GClist; /* support for XtGetGC */
+ Drawable **pixmap_tab; /* ditto for XtGetGC */
+ String language; /* XPG language string */
+ XEvent last_event; /* last event dispatched */
+ Time last_timestamp; /* from last event dispatched */
+ int multi_click_time; /* for XtSetMultiClickTime */
+ struct _TMKeyContextRec* tm_context; /* for XtGetActionKeysym */
+ InternalCallbackList mapping_callbacks; /* special case for TM */
+ XtPerDisplayInputRec pdi; /* state for modal grabs & kbd focus */
+ struct _WWTable *WWtable; /* window to widget table */
+ XrmDatabase *per_screen_db; /* per screen resource databases */
+ XrmDatabase cmd_db; /* db from command line, if needed */
+ XrmDatabase server_db; /* resource property else .Xdefaults */
+ XtEventDispatchProc* dispatcher_list;
+ ExtSelectRec* ext_select_list;
+ int ext_select_count;
+ Widget hook_object;
+#ifndef X_NO_RESOURCE_CONFIGURATION_MANAGEMENT
+ Atom rcm_init; /* ResConfig - initialize */
+ Atom rcm_data; /* ResConfig - data atom */
+#endif
+} XtPerDisplayStruct, *XtPerDisplay;
+
+typedef struct _PerDisplayTable {
+ Display *dpy;
+ XtPerDisplayStruct perDpy;
+ struct _PerDisplayTable *next;
+} PerDisplayTable, *PerDisplayTablePtr;
+
+extern PerDisplayTablePtr _XtperDisplayList;
+
+extern XtPerDisplay _XtSortPerDisplayList(
+ Display* /* dpy */
+);
+
+extern XtPerDisplay _XtGetPerDisplay(
+ Display* /* dpy */
+);
+
+extern XtPerDisplayInputRec* _XtGetPerDisplayInput(
+ Display* /* dpy */
+);
+
+#if 0
+#ifdef DEBUG
+#define _XtGetPerDisplay(display) \
+ ((_XtperDisplayList != NULL && (_XtperDisplayList->dpy == (display))) \
+ ? &_XtperDisplayList->perDpy \
+ : _XtSortPerDisplayList(display))
+#define _XtGetPerDisplayInput(display) \
+ ((_XtperDisplayList != NULL && (_XtperDisplayList->dpy == (display))) \
+ ? &_XtperDisplayList->perDpy.pdi \
+ : &_XtSortPerDisplayList(display)->pdi)
+#else
+#define _XtGetPerDisplay(display) \
+ ((_XtperDisplayList->dpy == (display)) \
+ ? &_XtperDisplayList->perDpy \
+ : _XtSortPerDisplayList(display))
+#define _XtGetPerDisplayInput(display) \
+ ((_XtperDisplayList->dpy == (display)) \
+ ? &_XtperDisplayList->perDpy.pdi \
+ : &_XtSortPerDisplayList(display)->pdi)
+#endif /*DEBUG*/
+#endif
+
+extern void _XtDisplayInitialize(
+ Display* /* dpy */,
+ XtPerDisplay /* pd */,
+ _Xconst char* /* name */,
+ XrmOptionDescRec* /* urlist */,
+ Cardinal /* num_urs */,
+ int* /* argc */,
+ char** /* argv */
+);
+
+extern void _XtCacheFlushTag(
+ XtAppContext /* app */,
+ XtPointer /* tag */
+);
+
+extern void _XtFreeActions(
+ struct _ActionListRec* /* action_table */
+);
+
+extern void _XtDoPhase2Destroy(
+ XtAppContext /* app */,
+ int /* dispatch_level */
+);
+
+extern void _XtDoFreeBindings(
+ XtAppContext /* app */
+);
+
+extern void _XtExtensionSelect(
+ Widget /* widget */
+);
+
+#define _XtSafeToDestroy(app) ((app)->dispatch_level == 0)
+
+extern void _XtAllocWWTable(
+ XtPerDisplay pd
+);
+
+extern void _XtFreeWWTable(
+ XtPerDisplay pd
+);
+
+extern String _XtGetUserName(String dest, int len);
+extern XrmDatabase _XtPreparseCommandLine(XrmOptionDescRec *urlist,
+ Cardinal num_urs, int argc, String *argv,
+ String *applName, String *displayName,
+ String *language);
+
+_XFUNCPROTOEND
+
+#endif /* _XtinitialI_h */
diff --git a/X11/Intrinsic.h b/X11/Intrinsic.h
new file mode 100644
index 000000000..44a1b360a
--- /dev/null
+++ b/X11/Intrinsic.h
@@ -0,0 +1,2595 @@
+/***********************************************************
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+/*
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+#ifndef _XtIntrinsic_h
+#define _XtIntrinsic_h
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/Xresource.h>
+#include <X11/Xfuncproto.h>
+#ifdef XT_BC
+#include <X11/Xos.h> /* for R4 compatibility */
+#else
+#include <X11/Xosdefs.h>
+#include <string.h> /* for XtNewString */
+#endif /* XT_BC else */
+
+#define XtSpecificationRelease 6
+
+typedef char *String;
+
+/* We do this in order to get "const" declarations to work right. We
+ * use _XtString instead of String so that C++ applications can
+ * #define String to something else if they choose, to avoid conflicts
+ * with other C++ libraries.
+ */
+#define _XtString char*
+
+/* _Xt names are private to Xt implementation, do not use in client code */
+#if NeedWidePrototypes
+#define _XtBoolean int
+#define _XtDimension unsigned int
+#define _XtKeyCode unsigned int
+#define _XtPosition int
+#define _XtXtEnum unsigned int
+#else
+#define _XtBoolean Boolean
+#define _XtDimension Dimension
+#define _XtKeyCode KeyCode
+#define _XtPosition Position
+#define _XtXtEnum XtEnum
+#endif /* NeedWidePrototypes */
+
+#include <stddef.h>
+
+#ifdef VMS
+#define externalref globalref
+#define externaldef(psect) globaldef {"psect"} noshare
+#else
+#define externalref extern
+#define externaldef(psect)
+#endif /* VMS */
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+#define XtNumber(arr) ((Cardinal) (sizeof(arr) / sizeof(arr[0])))
+
+typedef struct _WidgetRec *Widget;
+typedef Widget *WidgetList;
+typedef struct _WidgetClassRec *WidgetClass;
+typedef struct _CompositeRec *CompositeWidget;
+typedef struct _XtActionsRec *XtActionList;
+typedef struct _XtEventRec *XtEventTable;
+
+typedef struct _XtAppStruct *XtAppContext;
+typedef unsigned long XtValueMask;
+typedef unsigned long XtIntervalId;
+typedef unsigned long XtInputId;
+typedef unsigned long XtWorkProcId;
+typedef unsigned long XtSignalId;
+typedef unsigned int XtGeometryMask;
+typedef unsigned long XtGCMask; /* Mask of values that are used by widget*/
+typedef unsigned long Pixel; /* Index into colormap */
+typedef int XtCacheType;
+#define XtCacheNone 0x001
+#define XtCacheAll 0x002
+#define XtCacheByDisplay 0x003
+#define XtCacheRefCount 0x100
+
+/****************************************************************
+ *
+ * System Dependent Definitions; see spec for specific range
+ * requirements. Do not assume every implementation uses the
+ * same base types!
+ *
+ *
+ * XtArgVal ought to be a union of XtPointer, char *, long, int *, and proc *
+ * but casting to union types is not really supported.
+ *
+ * So the typedef for XtArgVal should be chosen such that
+ *
+ * sizeof (XtArgVal) >= sizeof(XtPointer)
+ * sizeof(char *)
+ * sizeof(long)
+ * sizeof(int *)
+ * sizeof(proc *)
+ *
+ * ArgLists rely heavily on the above typedef.
+ *
+ ****************************************************************/
+#ifdef CRAY
+typedef long Boolean;
+typedef char* XtArgVal;
+typedef long XtEnum;
+#else
+typedef char Boolean;
+typedef intptr_t XtArgVal;
+typedef unsigned char XtEnum;
+#endif
+
+typedef unsigned int Cardinal;
+typedef unsigned short Dimension; /* Size in pixels */
+typedef short Position; /* Offset from 0 coordinate */
+
+typedef void* XtPointer;
+
+/* The type Opaque is NOT part of the Xt standard, do NOT use it. */
+/* (It remains here only for backward compatibility.) */
+typedef XtPointer Opaque;
+
+#include <X11/Core.h>
+#include <X11/Composite.h>
+#include <X11/Constraint.h>
+#include <X11/Object.h>
+#include <X11/RectObj.h>
+
+typedef struct _TranslationData *XtTranslations;
+typedef struct _TranslationData *XtAccelerators;
+typedef unsigned int Modifiers;
+
+typedef void (*XtActionProc)(
+ Widget /* widget */,
+ XEvent* /* event */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+typedef XtActionProc* XtBoundActions;
+
+typedef struct _XtActionsRec{
+ String string;
+ XtActionProc proc;
+} XtActionsRec;
+
+typedef enum {
+/* address mode parameter representation */
+/* ------------ ------------------------ */
+ XtAddress, /* address */
+ XtBaseOffset, /* offset */
+ XtImmediate, /* constant */
+ XtResourceString, /* resource name string */
+ XtResourceQuark, /* resource name quark */
+ XtWidgetBaseOffset, /* offset from ancestor */
+ XtProcedureArg /* procedure to invoke */
+} XtAddressMode;
+
+typedef struct {
+ XtAddressMode address_mode;
+ XtPointer address_id;
+ Cardinal size;
+} XtConvertArgRec, *XtConvertArgList;
+
+typedef void (*XtConvertArgProc)(
+ Widget /* widget */,
+ Cardinal* /* size */,
+ XrmValue* /* value */
+);
+
+typedef struct {
+ XtGeometryMask request_mode;
+ Position x, y;
+ Dimension width, height, border_width;
+ Widget sibling;
+ int stack_mode; /* Above, Below, TopIf, BottomIf, Opposite, DontChange */
+} XtWidgetGeometry;
+
+/* Additions to Xlib geometry requests: ask what would happen, don't do it */
+#define XtCWQueryOnly (1 << 7)
+
+/* Additions to Xlib stack modes: don't change stack order */
+#define XtSMDontChange 5
+
+typedef void (*XtConverter)( /* obsolete */
+ XrmValue* /* args */,
+ Cardinal* /* num_args */,
+ XrmValue* /* from */,
+ XrmValue* /* to */
+);
+
+typedef Boolean (*XtTypeConverter)(
+ Display* /* dpy */,
+ XrmValue* /* args */,
+ Cardinal* /* num_args */,
+ XrmValue* /* from */,
+ XrmValue* /* to */,
+ XtPointer* /* converter_data */
+);
+
+typedef void (*XtDestructor)(
+ XtAppContext /* app */,
+ XrmValue* /* to */,
+ XtPointer /* converter_data */,
+ XrmValue* /* args */,
+ Cardinal* /* num_args */
+);
+
+typedef Opaque XtCacheRef;
+
+typedef Opaque XtActionHookId;
+
+typedef void (*XtActionHookProc)(
+ Widget /* w */,
+ XtPointer /* client_data */,
+ String /* action_name */,
+ XEvent* /* event */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+typedef unsigned long XtBlockHookId;
+
+typedef void (*XtBlockHookProc)(
+ XtPointer /* client_data */
+);
+
+typedef void (*XtKeyProc)(
+ Display* /* dpy */,
+ _XtKeyCode /* keycode */,
+ Modifiers /* modifiers */,
+ Modifiers* /* modifiers_return */,
+ KeySym* /* keysym_return */
+);
+
+typedef void (*XtCaseProc)(
+ Display* /* display */,
+ KeySym /* keysym */,
+ KeySym* /* lower_return */,
+ KeySym* /* upper_return */
+);
+
+typedef void (*XtEventHandler)(
+ Widget /* widget */,
+ XtPointer /* closure */,
+ XEvent* /* event */,
+ Boolean* /* continue_to_dispatch */
+);
+typedef unsigned long EventMask;
+
+typedef enum {XtListHead, XtListTail } XtListPosition;
+
+typedef unsigned long XtInputMask;
+#define XtInputNoneMask 0L
+#define XtInputReadMask (1L<<0)
+#define XtInputWriteMask (1L<<1)
+#define XtInputExceptMask (1L<<2)
+
+typedef void (*XtTimerCallbackProc)(
+ XtPointer /* closure */,
+ XtIntervalId* /* id */
+);
+
+typedef void (*XtInputCallbackProc)(
+ XtPointer /* closure */,
+ int* /* source */,
+ XtInputId* /* id */
+);
+
+typedef void (*XtSignalCallbackProc)(
+ XtPointer /* closure */,
+ XtSignalId* /* id */
+);
+
+typedef struct {
+ String name;
+ XtArgVal value;
+} Arg, *ArgList;
+
+typedef XtPointer XtVarArgsList;
+
+typedef void (*XtCallbackProc)(
+ Widget /* widget */,
+ XtPointer /* closure */, /* data the application registered */
+ XtPointer /* call_data */ /* callback specific data */
+);
+
+typedef struct _XtCallbackRec {
+ XtCallbackProc callback;
+ XtPointer closure;
+} XtCallbackRec, *XtCallbackList;
+
+typedef enum {
+ XtCallbackNoList,
+ XtCallbackHasNone,
+ XtCallbackHasSome
+} XtCallbackStatus;
+
+typedef enum {
+ XtGeometryYes, /* Request accepted. */
+ XtGeometryNo, /* Request denied. */
+ XtGeometryAlmost, /* Request denied, but willing to take replyBox. */
+ XtGeometryDone /* Request accepted and done. */
+} XtGeometryResult;
+
+typedef enum {XtGrabNone, XtGrabNonexclusive, XtGrabExclusive} XtGrabKind;
+
+typedef struct {
+ Widget shell_widget;
+ Widget enable_widget;
+} XtPopdownIDRec, *XtPopdownID;
+
+typedef struct _XtResource {
+ String resource_name; /* Resource name */
+ String resource_class; /* Resource class */
+ String resource_type; /* Representation type desired */
+ Cardinal resource_size; /* Size in bytes of representation */
+ Cardinal resource_offset;/* Offset from base to put resource value */
+ String default_type; /* representation type of specified default */
+ XtPointer default_addr; /* Address of default resource */
+} XtResource, *XtResourceList;
+
+typedef void (*XtResourceDefaultProc)(
+ Widget /* widget */,
+ int /* offset */,
+ XrmValue* /* value */
+);
+
+typedef String (*XtLanguageProc)(
+ Display* /* dpy */,
+ String /* xnl */,
+ XtPointer /* client_data */
+);
+
+typedef void (*XtErrorMsgHandler)(
+ String /* name */,
+ String /* type */,
+ String /* class */,
+ String /* default */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+typedef void (*XtErrorHandler)(
+ String /* msg */
+);
+
+typedef void (*XtCreatePopupChildProc)(
+ Widget /* shell */
+);
+
+typedef Boolean (*XtWorkProc)(
+ XtPointer /* closure */ /* data the application registered */
+);
+
+typedef struct {
+ char match;
+ String substitution;
+} SubstitutionRec, *Substitution;
+
+typedef Boolean (*XtFilePredicate)(
+ String /* filename */
+);
+
+typedef XtPointer XtRequestId;
+
+typedef Boolean (*XtConvertSelectionProc)(
+ Widget /* widget */,
+ Atom* /* selection */,
+ Atom* /* target */,
+ Atom* /* type_return */,
+ XtPointer* /* value_return */,
+ unsigned long* /* length_return */,
+ int* /* format_return */
+);
+
+typedef void (*XtLoseSelectionProc)(
+ Widget /* widget */,
+ Atom* /* selection */
+);
+
+typedef void (*XtSelectionDoneProc)(
+ Widget /* widget */,
+ Atom* /* selection */,
+ Atom* /* target */
+);
+
+typedef void (*XtSelectionCallbackProc)(
+ Widget /* widget */,
+ XtPointer /* closure */,
+ Atom* /* selection */,
+ Atom* /* type */,
+ XtPointer /* value */,
+ unsigned long* /* length */,
+ int* /* format */
+);
+
+typedef void (*XtLoseSelectionIncrProc)(
+ Widget /* widget */,
+ Atom* /* selection */,
+ XtPointer /* client_data */
+);
+
+typedef void (*XtSelectionDoneIncrProc)(
+ Widget /* widget */,
+ Atom* /* selection */,
+ Atom* /* target */,
+ XtRequestId* /* receiver_id */,
+ XtPointer /* client_data */
+);
+
+typedef Boolean (*XtConvertSelectionIncrProc)(
+ Widget /* widget */,
+ Atom* /* selection */,
+ Atom* /* target */,
+ Atom* /* type */,
+ XtPointer* /* value */,
+ unsigned long* /* length */,
+ int* /* format */,
+ unsigned long* /* max_length */,
+ XtPointer /* client_data */,
+ XtRequestId* /* receiver_id */
+);
+
+typedef void (*XtCancelConvertSelectionProc)(
+ Widget /* widget */,
+ Atom* /* selection */,
+ Atom* /* target */,
+ XtRequestId* /* receiver_id */,
+ XtPointer /* client_data */
+);
+
+typedef Boolean (*XtEventDispatchProc)(
+ XEvent* /* event */
+);
+
+typedef void (*XtExtensionSelectProc)(
+ Widget /* widget */,
+ int* /* event_types */,
+ XtPointer* /* select_data */,
+ int /* count */,
+ XtPointer /* client_data */
+);
+
+/***************************************************************
+ *
+ * Exported Interfaces
+ *
+ ****************************************************************/
+
+_XFUNCPROTOBEGIN
+
+extern Boolean XtConvertAndStore(
+ Widget /* widget */,
+ _Xconst _XtString /* from_type */,
+ XrmValue* /* from */,
+ _Xconst _XtString /* to_type */,
+ XrmValue* /* to_in_out */
+);
+
+extern Boolean XtCallConverter(
+ Display* /* dpy */,
+ XtTypeConverter /* converter */,
+ XrmValuePtr /* args */,
+ Cardinal /* num_args */,
+ XrmValuePtr /* from */,
+ XrmValue* /* to_in_out */,
+ XtCacheRef* /* cache_ref_return */
+);
+
+extern Boolean XtDispatchEvent(
+ XEvent* /* event */
+);
+
+extern Boolean XtCallAcceptFocus(
+ Widget /* widget */,
+ Time* /* time */
+);
+
+extern Boolean XtPeekEvent( /* obsolete */
+ XEvent* /* event_return */
+);
+
+extern Boolean XtAppPeekEvent(
+ XtAppContext /* app_context */,
+ XEvent* /* event_return */
+);
+
+extern Boolean XtIsSubclass(
+ Widget /* widget */,
+ WidgetClass /* widgetClass */
+);
+
+extern Boolean XtIsObject(
+ Widget /* object */
+);
+
+extern Boolean _XtCheckSubclassFlag( /* implementation-private */
+ Widget /* object */,
+ _XtXtEnum /* type_flag */
+);
+
+extern Boolean _XtIsSubclassOf( /* implementation-private */
+ Widget /* object */,
+ WidgetClass /* widget_class */,
+ WidgetClass /* flag_class */,
+ _XtXtEnum /* type_flag */
+);
+
+extern Boolean XtIsManaged(
+ Widget /* rectobj */
+);
+
+extern Boolean XtIsRealized(
+ Widget /* widget */
+);
+
+extern Boolean XtIsSensitive(
+ Widget /* widget */
+);
+
+extern Boolean XtOwnSelection(
+ Widget /* widget */,
+ Atom /* selection */,
+ Time /* time */,
+ XtConvertSelectionProc /* convert */,
+ XtLoseSelectionProc /* lose */,
+ XtSelectionDoneProc /* done */
+);
+
+extern Boolean XtOwnSelectionIncremental(
+ Widget /* widget */,
+ Atom /* selection */,
+ Time /* time */,
+ XtConvertSelectionIncrProc /* convert_callback */,
+ XtLoseSelectionIncrProc /* lose_callback */,
+ XtSelectionDoneIncrProc /* done_callback */,
+ XtCancelConvertSelectionProc /* cancel_callback */,
+ XtPointer /* client_data */
+);
+
+extern XtGeometryResult XtMakeResizeRequest(
+ Widget /* widget */,
+ _XtDimension /* width */,
+ _XtDimension /* height */,
+ Dimension* /* width_return */,
+ Dimension* /* height_return */
+);
+
+extern void XtTranslateCoords(
+ Widget /* widget */,
+ _XtPosition /* x */,
+ _XtPosition /* y */,
+ Position* /* rootx_return */,
+ Position* /* rooty_return */
+);
+
+extern KeySym* XtGetKeysymTable(
+ Display* /* dpy */,
+ KeyCode* /* min_keycode_return */,
+ int* /* keysyms_per_keycode_return */
+);
+
+extern void XtKeysymToKeycodeList(
+ Display* /* dpy */,
+ KeySym /* keysym */,
+ KeyCode** /* keycodes_return */,
+ Cardinal* /* keycount_return */
+);
+
+extern void XtStringConversionWarning( /* obsolete */
+ _Xconst _XtString /* from_value */,
+ _Xconst _XtString /* to_type */
+);
+
+extern void XtDisplayStringConversionWarning(
+ Display* /* dpy */,
+ _Xconst _XtString /* from_value */,
+ _Xconst _XtString /* to_type */
+);
+
+externalref XtConvertArgRec const colorConvertArgs[];
+externalref XtConvertArgRec const screenConvertArg[];
+
+extern void XtAppAddConverter( /* obsolete */
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* from_type */,
+ _Xconst _XtString /* to_type */,
+ XtConverter /* converter */,
+ XtConvertArgList /* convert_args */,
+ Cardinal /* num_args */
+);
+
+extern void XtAddConverter( /* obsolete */
+ _Xconst _XtString /* from_type */,
+ _Xconst _XtString /* to_type */,
+ XtConverter /* converter */,
+ XtConvertArgList /* convert_args */,
+ Cardinal /* num_args */
+);
+
+extern void XtSetTypeConverter(
+ _Xconst _XtString /* from_type */,
+ _Xconst _XtString /* to_type */,
+ XtTypeConverter /* converter */,
+ XtConvertArgList /* convert_args */,
+ Cardinal /* num_args */,
+ XtCacheType /* cache_type */,
+ XtDestructor /* destructor */
+);
+
+extern void XtAppSetTypeConverter(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* from_type */,
+ _Xconst _XtString /* to_type */,
+ XtTypeConverter /* converter */,
+ XtConvertArgList /* convert_args */,
+ Cardinal /* num_args */,
+ XtCacheType /* cache_type */,
+ XtDestructor /* destructor */
+);
+
+extern void XtConvert( /* obsolete */
+ Widget /* widget */,
+ _Xconst _XtString /* from_type */,
+ XrmValue* /* from */,
+ _Xconst _XtString /* to_type */,
+ XrmValue* /* to_return */
+);
+
+extern void XtDirectConvert( /* obsolete */
+ XtConverter /* converter */,
+ XrmValuePtr /* args */,
+ Cardinal /* num_args */,
+ XrmValuePtr /* from */,
+ XrmValue* /* to_return */
+);
+
+/****************************************************************
+ *
+ * Translation Management
+ *
+ ****************************************************************/
+
+extern XtTranslations XtParseTranslationTable(
+ _Xconst _XtString /* table */
+);
+
+extern XtAccelerators XtParseAcceleratorTable(
+ _Xconst _XtString /* source */
+);
+
+extern void XtOverrideTranslations(
+ Widget /* widget */,
+ XtTranslations /* translations */
+);
+
+extern void XtAugmentTranslations(
+ Widget /* widget */,
+ XtTranslations /* translations */
+);
+
+extern void XtInstallAccelerators(
+ Widget /* destination */,
+ Widget /* source */
+);
+
+extern void XtInstallAllAccelerators(
+ Widget /* destination */,
+ Widget /* source */
+);
+
+extern void XtUninstallTranslations(
+ Widget /* widget */
+);
+
+extern void XtAppAddActions(
+ XtAppContext /* app_context */,
+ XtActionList /* actions */,
+ Cardinal /* num_actions */
+);
+
+extern void XtAddActions( /* obsolete */
+ XtActionList /* actions */,
+ Cardinal /* num_actions */
+);
+
+extern XtActionHookId XtAppAddActionHook(
+ XtAppContext /* app_context */,
+ XtActionHookProc /* proc */,
+ XtPointer /* client_data */
+);
+
+extern void XtRemoveActionHook(
+ XtActionHookId /* id */
+);
+
+extern void XtGetActionList(
+ WidgetClass /* widget_class */,
+ XtActionList* /* actions_return */,
+ Cardinal* /* num_actions_return */
+);
+
+extern void XtCallActionProc(
+ Widget /* widget */,
+ _Xconst _XtString /* action */,
+ XEvent* /* event */,
+ String* /* params */,
+ Cardinal /* num_params */
+);
+
+extern void XtRegisterGrabAction(
+ XtActionProc /* action_proc */,
+ _XtBoolean /* owner_events */,
+ unsigned int /* event_mask */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */
+);
+
+extern void XtSetMultiClickTime(
+ Display* /* dpy */,
+ int /* milliseconds */
+);
+
+extern int XtGetMultiClickTime(
+ Display* /* dpy */
+);
+
+extern KeySym XtGetActionKeysym(
+ XEvent* /* event */,
+ Modifiers* /* modifiers_return */
+);
+
+/***************************************************************
+ *
+ * Keycode and Keysym procedures for translation management
+ *
+ ****************************************************************/
+
+extern void XtTranslateKeycode(
+ Display* /* dpy */,
+ _XtKeyCode /* keycode */,
+ Modifiers /* modifiers */,
+ Modifiers* /* modifiers_return */,
+ KeySym* /* keysym_return */
+);
+
+extern void XtTranslateKey(
+ Display* /* dpy */,
+ _XtKeyCode /* keycode */,
+ Modifiers /* modifiers */,
+ Modifiers* /* modifiers_return */,
+ KeySym* /* keysym_return */
+);
+
+extern void XtSetKeyTranslator(
+ Display* /* dpy */,
+ XtKeyProc /* proc */
+);
+
+extern void XtRegisterCaseConverter(
+ Display* /* dpy */,
+ XtCaseProc /* proc */,
+ KeySym /* start */,
+ KeySym /* stop */
+);
+
+extern void XtConvertCase(
+ Display* /* dpy */,
+ KeySym /* keysym */,
+ KeySym* /* lower_return */,
+ KeySym* /* upper_return */
+);
+
+/****************************************************************
+ *
+ * Event Management
+ *
+ ****************************************************************/
+
+/* XtAllEvents is valid only for XtRemoveEventHandler and
+ * XtRemoveRawEventHandler; don't use it to select events!
+ */
+#define XtAllEvents ((EventMask) -1L)
+
+extern void XtAddEventHandler(
+ Widget /* widget */,
+ EventMask /* event_mask */,
+ _XtBoolean /* nonmaskable */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveEventHandler(
+ Widget /* widget */,
+ EventMask /* event_mask */,
+ _XtBoolean /* nonmaskable */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtAddRawEventHandler(
+ Widget /* widget */,
+ EventMask /* event_mask */,
+ _XtBoolean /* nonmaskable */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveRawEventHandler(
+ Widget /* widget */,
+ EventMask /* event_mask */,
+ _XtBoolean /* nonmaskable */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtInsertEventHandler(
+ Widget /* widget */,
+ EventMask /* event_mask */,
+ _XtBoolean /* nonmaskable */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */,
+ XtListPosition /* position */
+);
+
+extern void XtInsertRawEventHandler(
+ Widget /* widget */,
+ EventMask /* event_mask */,
+ _XtBoolean /* nonmaskable */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */,
+ XtListPosition /* position */
+);
+
+extern XtEventDispatchProc XtSetEventDispatcher(
+ Display* /* dpy */,
+ int /* event_type */,
+ XtEventDispatchProc /* proc */
+);
+
+extern Boolean XtDispatchEventToWidget(
+ Widget /* widget */,
+ XEvent* /* event */
+);
+
+extern void XtInsertEventTypeHandler(
+ Widget /* widget */,
+ int /* type */,
+ XtPointer /* select_data */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */,
+ XtListPosition /* position */
+);
+
+extern void XtRemoveEventTypeHandler(
+ Widget /* widget */,
+ int /* type */,
+ XtPointer /* select_data */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */
+);
+
+extern EventMask XtBuildEventMask(
+ Widget /* widget */
+);
+
+extern void XtRegisterExtensionSelector(
+ Display* /* dpy */,
+ int /* min_event_type */,
+ int /* max_event_type */,
+ XtExtensionSelectProc /* proc */,
+ XtPointer /* client_data */
+);
+
+extern void XtAddGrab(
+ Widget /* widget */,
+ _XtBoolean /* exclusive */,
+ _XtBoolean /* spring_loaded */
+);
+
+extern void XtRemoveGrab(
+ Widget /* widget */
+);
+
+extern void XtProcessEvent( /* obsolete */
+ XtInputMask /* mask */
+);
+
+extern void XtAppProcessEvent(
+ XtAppContext /* app_context */,
+ XtInputMask /* mask */
+);
+
+extern void XtMainLoop( /* obsolete */
+ void
+);
+
+extern void XtAppMainLoop(
+ XtAppContext /* app_context */
+);
+
+extern void XtAddExposureToRegion(
+ XEvent* /* event */,
+ Region /* region */
+);
+
+extern void XtSetKeyboardFocus(
+ Widget /* subtree */,
+ Widget /* descendent */
+);
+
+extern Widget XtGetKeyboardFocusWidget(
+ Widget /* widget */
+);
+
+extern XEvent* XtLastEventProcessed(
+ Display* /* dpy */
+);
+
+extern Time XtLastTimestampProcessed(
+ Display* /* dpy */
+);
+
+/****************************************************************
+ *
+ * Event Gathering Routines
+ *
+ ****************************************************************/
+
+extern XtIntervalId XtAddTimeOut( /* obsolete */
+ unsigned long /* interval */,
+ XtTimerCallbackProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern XtIntervalId XtAppAddTimeOut(
+ XtAppContext /* app_context */,
+ unsigned long /* interval */,
+ XtTimerCallbackProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveTimeOut(
+ XtIntervalId /* timer */
+);
+
+extern XtInputId XtAddInput( /* obsolete */
+ int /* source */,
+ XtPointer /* condition */,
+ XtInputCallbackProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern XtInputId XtAppAddInput(
+ XtAppContext /* app_context */,
+ int /* source */,
+ XtPointer /* condition */,
+ XtInputCallbackProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveInput(
+ XtInputId /* id */
+);
+
+extern XtSignalId XtAddSignal(
+ XtSignalCallbackProc /* proc */,
+ XtPointer /* closure */);
+
+extern XtSignalId XtAppAddSignal(
+ XtAppContext /* app_context */,
+ XtSignalCallbackProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveSignal(
+ XtSignalId /* id */
+);
+
+extern void XtNoticeSignal(
+ XtSignalId /* id */
+);
+
+extern void XtNextEvent( /* obsolete */
+ XEvent* /* event */
+);
+
+extern void XtAppNextEvent(
+ XtAppContext /* app_context */,
+ XEvent* /* event_return */
+);
+
+#define XtIMXEvent 1
+#define XtIMTimer 2
+#define XtIMAlternateInput 4
+#define XtIMSignal 8
+#define XtIMAll (XtIMXEvent | XtIMTimer | XtIMAlternateInput | XtIMSignal)
+
+extern Boolean XtPending( /* obsolete */
+ void
+);
+
+extern XtInputMask XtAppPending(
+ XtAppContext /* app_context */
+);
+
+extern XtBlockHookId XtAppAddBlockHook(
+ XtAppContext /* app_context */,
+ XtBlockHookProc /* proc */,
+ XtPointer /* client_data */
+);
+
+extern void XtRemoveBlockHook(
+ XtBlockHookId /* id */
+);
+
+/****************************************************************
+ *
+ * Random utility routines
+ *
+ ****************************************************************/
+
+#define XtIsRectObj(object) (_XtCheckSubclassFlag(object, (XtEnum)0x02))
+#define XtIsWidget(object) (_XtCheckSubclassFlag(object, (XtEnum)0x04))
+#define XtIsComposite(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x08))
+#define XtIsConstraint(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x10))
+#define XtIsShell(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x20))
+
+#undef XtIsOverrideShell
+extern Boolean XtIsOverrideShell(Widget /* object */);
+#define XtIsOverrideShell(widget) \
+ (_XtIsSubclassOf(widget, (WidgetClass)overrideShellWidgetClass, \
+ (WidgetClass)shellWidgetClass, (XtEnum)0x20))
+
+#define XtIsWMShell(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x40))
+
+#undef XtIsVendorShell
+extern Boolean XtIsVendorShell(Widget /* object */);
+#define XtIsVendorShell(widget) \
+ (_XtIsSubclassOf(widget, (WidgetClass)vendorShellWidgetClass, \
+ (WidgetClass)wmShellWidgetClass, (XtEnum)0x40))
+
+#undef XtIsTransientShell
+extern Boolean XtIsTransientShell(Widget /* object */);
+#define XtIsTransientShell(widget) \
+ (_XtIsSubclassOf(widget, (WidgetClass)transientShellWidgetClass, \
+ (WidgetClass)wmShellWidgetClass, (XtEnum)0x40))
+#define XtIsTopLevelShell(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x80))
+
+#undef XtIsApplicationShell
+extern Boolean XtIsApplicationShell(Widget /* object */);
+#define XtIsApplicationShell(widget) \
+ (_XtIsSubclassOf(widget, (WidgetClass)applicationShellWidgetClass, \
+ (WidgetClass)topLevelShellWidgetClass, (XtEnum)0x80))
+
+#undef XtIsSessionShell
+extern Boolean XtIsSessionShell(Widget /* object */);
+#define XtIsSessionShell(widget) \
+ (_XtIsSubclassOf(widget, (WidgetClass)sessionShellWidgetClass, \
+ (WidgetClass)topLevelShellWidgetClass, (XtEnum)0x80))
+
+extern void XtRealizeWidget(
+ Widget /* widget */
+);
+
+void XtUnrealizeWidget(
+ Widget /* widget */
+);
+
+extern void XtDestroyWidget(
+ Widget /* widget */
+);
+
+extern void XtSetSensitive(
+ Widget /* widget */,
+ _XtBoolean /* sensitive */
+);
+
+extern void XtSetMappedWhenManaged(
+ Widget /* widget */,
+ _XtBoolean /* mapped_when_managed */
+);
+
+extern Widget XtNameToWidget(
+ Widget /* reference */,
+ _Xconst _XtString /* names */
+);
+
+extern Widget XtWindowToWidget(
+ Display* /* display */,
+ Window /* window */
+);
+
+extern XtPointer XtGetClassExtension(
+ WidgetClass /* object_class */,
+ Cardinal /* byte_offset */,
+ XrmQuark /* type */,
+ long /* version */,
+ Cardinal /* record_size */
+);
+
+/***************************************************************
+ *
+ * Arg lists
+ *
+ ****************************************************************/
+
+
+#define XtSetArg(arg, n, d) \
+ ((void)( (arg).name = (n), (arg).value = (XtArgVal)(d) ))
+
+extern ArgList XtMergeArgLists(
+ ArgList /* args1 */,
+ Cardinal /* num_args1 */,
+ ArgList /* args2 */,
+ Cardinal /* num_args2 */
+);
+
+/***************************************************************
+ *
+ * Vararg lists
+ *
+ ****************************************************************/
+
+#define XtVaNestedList "XtVaNestedList"
+#define XtVaTypedArg "XtVaTypedArg"
+
+extern XtVarArgsList XtVaCreateArgsList(
+ XtPointer /*unused*/, ...
+) _X_SENTINEL(0);
+
+/*************************************************************
+ *
+ * Information routines
+ *
+ ************************************************************/
+
+#ifndef _XtIntrinsicP_h
+
+/* We're not included from the private file, so define these */
+
+extern Display *XtDisplay(
+ Widget /* widget */
+);
+
+extern Display *XtDisplayOfObject(
+ Widget /* object */
+);
+
+extern Screen *XtScreen(
+ Widget /* widget */
+);
+
+extern Screen *XtScreenOfObject(
+ Widget /* object */
+);
+
+extern Window XtWindow(
+ Widget /* widget */
+);
+
+extern Window XtWindowOfObject(
+ Widget /* object */
+);
+
+extern String XtName(
+ Widget /* object */
+);
+
+extern WidgetClass XtSuperclass(
+ Widget /* object */
+);
+
+extern WidgetClass XtClass(
+ Widget /* object */
+);
+
+extern Widget XtParent(
+ Widget /* widget */
+);
+
+#endif /*_XtIntrinsicP_h*/
+
+#undef XtMapWidget
+extern void XtMapWidget(Widget /* w */);
+#define XtMapWidget(widget) XMapWindow(XtDisplay(widget), XtWindow(widget))
+
+#undef XtUnmapWidget
+extern void XtUnmapWidget(Widget /* w */);
+#define XtUnmapWidget(widget) \
+ XUnmapWindow(XtDisplay(widget), XtWindow(widget))
+
+extern void XtAddCallback(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */,
+ XtCallbackProc /* callback */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveCallback(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */,
+ XtCallbackProc /* callback */,
+ XtPointer /* closure */
+);
+
+extern void XtAddCallbacks(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */,
+ XtCallbackList /* callbacks */
+);
+
+extern void XtRemoveCallbacks(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */,
+ XtCallbackList /* callbacks */
+);
+
+extern void XtRemoveAllCallbacks(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */
+);
+
+
+extern void XtCallCallbacks(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */,
+ XtPointer /* call_data */
+);
+
+extern void XtCallCallbackList(
+ Widget /* widget */,
+ XtCallbackList /* callbacks */,
+ XtPointer /* call_data */
+);
+
+extern XtCallbackStatus XtHasCallbacks(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */
+);
+
+/****************************************************************
+ *
+ * Geometry Management
+ *
+ ****************************************************************/
+
+
+extern XtGeometryResult XtMakeGeometryRequest(
+ Widget /* widget */,
+ XtWidgetGeometry* /* request */,
+ XtWidgetGeometry* /* reply_return */
+);
+
+extern XtGeometryResult XtQueryGeometry(
+ Widget /* widget */,
+ XtWidgetGeometry* /* intended */,
+ XtWidgetGeometry* /* preferred_return */
+);
+
+extern Widget XtCreatePopupShell(
+ _Xconst _XtString /* name */,
+ WidgetClass /* widgetClass */,
+ Widget /* parent */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtVaCreatePopupShell(
+ _Xconst _XtString /* name */,
+ WidgetClass /* widgetClass */,
+ Widget /* parent */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtPopup(
+ Widget /* popup_shell */,
+ XtGrabKind /* grab_kind */
+);
+
+extern void XtPopupSpringLoaded(
+ Widget /* popup_shell */
+);
+
+extern void XtCallbackNone(
+ Widget /* widget */,
+ XtPointer /* closure */,
+ XtPointer /* call_data */
+);
+
+extern void XtCallbackNonexclusive(
+ Widget /* widget */,
+ XtPointer /* closure */,
+ XtPointer /* call_data */
+);
+
+extern void XtCallbackExclusive(
+ Widget /* widget */,
+ XtPointer /* closure */,
+ XtPointer /* call_data */
+);
+
+extern void XtPopdown(
+ Widget /* popup_shell */
+);
+
+extern void XtCallbackPopdown(
+ Widget /* widget */,
+ XtPointer /* closure */,
+ XtPointer /* call_data */
+);
+
+extern void XtMenuPopupAction(
+ Widget /* widget */,
+ XEvent* /* event */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+extern Widget XtCreateWidget(
+ _Xconst _XtString /* name */,
+ WidgetClass /* widget_class */,
+ Widget /* parent */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtCreateManagedWidget(
+ _Xconst _XtString /* name */,
+ WidgetClass /* widget_class */,
+ Widget /* parent */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtVaCreateWidget(
+ _Xconst _XtString /* name */,
+ WidgetClass /* widget */,
+ Widget /* parent */,
+ ...
+) _X_SENTINEL(0);
+
+extern Widget XtVaCreateManagedWidget(
+ _Xconst _XtString /* name */,
+ WidgetClass /* widget_class */,
+ Widget /* parent */,
+ ...
+) _X_SENTINEL(0);
+
+extern Widget XtCreateApplicationShell( /* obsolete */
+ _Xconst _XtString /* name */,
+ WidgetClass /* widget_class */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtAppCreateShell(
+ _Xconst _XtString /* application_name */,
+ _Xconst _XtString /* application_class */,
+ WidgetClass /* widget_class */,
+ Display* /* display */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtVaAppCreateShell(
+ _Xconst _XtString /* application_name */,
+ _Xconst _XtString /* application_class */,
+ WidgetClass /* widget_class */,
+ Display* /* display */,
+ ...
+) _X_SENTINEL(0);
+
+/****************************************************************
+ *
+ * Toolkit initialization
+ *
+ ****************************************************************/
+
+extern void XtToolkitInitialize(
+ void
+);
+
+extern XtLanguageProc XtSetLanguageProc(
+ XtAppContext /* app_context */,
+ XtLanguageProc /* proc */,
+ XtPointer /* client_data */
+);
+
+extern void XtDisplayInitialize(
+ XtAppContext /* app_context */,
+ Display* /* dpy */,
+ _Xconst _XtString /* application_name */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescRec* /* options */,
+ Cardinal /* num_options */,
+ int* /* argc */,
+ char** /* argv */
+);
+
+extern Widget XtOpenApplication(
+ XtAppContext* /* app_context_return */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescList /* options */,
+ Cardinal /* num_options */,
+ int* /* argc_in_out */,
+ String* /* argv_in_out */,
+ String* /* fallback_resources */,
+ WidgetClass /* widget_class */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtVaOpenApplication(
+ XtAppContext* /* app_context_return */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescList /* options */,
+ Cardinal /* num_options */,
+ int* /* argc_in_out */,
+ String* /* argv_in_out */,
+ String* /* fallback_resources */,
+ WidgetClass /* widget_class */,
+ ...
+) _X_SENTINEL(0);
+
+extern Widget XtAppInitialize( /* obsolete */
+ XtAppContext* /* app_context_return */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescList /* options */,
+ Cardinal /* num_options */,
+ int* /* argc_in_out */,
+ String* /* argv_in_out */,
+ String* /* fallback_resources */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtVaAppInitialize( /* obsolete */
+ XtAppContext* /* app_context_return */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescList /* options */,
+ Cardinal /* num_options */,
+ int* /* argc_in_out */,
+ String* /* argv_in_out */,
+ String* /* fallback_resources */,
+ ...
+) _X_SENTINEL(0);
+
+extern Widget XtInitialize( /* obsolete */
+ _Xconst _XtString /* shell_name */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescRec* /* options */,
+ Cardinal /* num_options */,
+ int* /* argc */,
+ char** /* argv */
+);
+
+extern Display *XtOpenDisplay(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* display_string */,
+ _Xconst _XtString /* application_name */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescRec* /* options */,
+ Cardinal /* num_options */,
+ int* /* argc */,
+ char** /* argv */
+);
+
+extern XtAppContext XtCreateApplicationContext(
+ void
+);
+
+extern void XtAppSetFallbackResources(
+ XtAppContext /* app_context */,
+ String* /* specification_list */
+);
+
+extern void XtDestroyApplicationContext(
+ XtAppContext /* app_context */
+);
+
+extern void XtInitializeWidgetClass(
+ WidgetClass /* widget_class */
+);
+
+extern XtAppContext XtWidgetToApplicationContext(
+ Widget /* widget */
+);
+
+extern XtAppContext XtDisplayToApplicationContext(
+ Display* /* dpy */
+);
+
+extern XrmDatabase XtDatabase(
+ Display* /* dpy */
+);
+
+extern XrmDatabase XtScreenDatabase(
+ Screen* /* screen */
+);
+
+extern void XtCloseDisplay(
+ Display* /* dpy */
+);
+
+extern void XtGetApplicationResources(
+ Widget /* widget */,
+ XtPointer /* base */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern void XtVaGetApplicationResources(
+ Widget /* widget */,
+ XtPointer /* base */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtGetSubresources(
+ Widget /* widget */,
+ XtPointer /* base */,
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* class */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern void XtVaGetSubresources(
+ Widget /* widget */,
+ XtPointer /* base */,
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* class */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtSetValues(
+ Widget /* widget */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern void XtVaSetValues(
+ Widget /* widget */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtGetValues(
+ Widget /* widget */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern void XtVaGetValues(
+ Widget /* widget */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtSetSubvalues(
+ XtPointer /* base */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern void XtVaSetSubvalues(
+ XtPointer /* base */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtGetSubvalues(
+ XtPointer /* base */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern void XtVaGetSubvalues(
+ XtPointer /* base */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtGetResourceList(
+ WidgetClass /* widget_class */,
+ XtResourceList* /* resources_return */,
+ Cardinal* /* num_resources_return */
+);
+
+extern void XtGetConstraintResourceList(
+ WidgetClass /* widget_class */,
+ XtResourceList* /* resources_return */,
+ Cardinal* /* num_resources_return */
+);
+
+#define XtUnspecifiedPixmap ((Pixmap)2)
+#define XtUnspecifiedShellInt (-1)
+#define XtUnspecifiedWindow ((Window)2)
+#define XtUnspecifiedWindowGroup ((Window)3)
+#define XtCurrentDirectory "XtCurrentDirectory"
+#define XtDefaultForeground "XtDefaultForeground"
+#define XtDefaultBackground "XtDefaultBackground"
+#define XtDefaultFont "XtDefaultFont"
+#define XtDefaultFontSet "XtDefaultFontSet"
+
+#if defined(CRAY)
+#define XtOffset(p_type,field) _Offsetof(p_type,field)
+#else /* ! CRAY */
+#define XtOffset(p_type,field) \
+ ((Cardinal) (((char *) (&(((p_type)NULL)->field))) - ((char *) NULL)))
+#endif /* !CRAY */
+
+#ifdef offsetof
+#define XtOffsetOf(s_type,field) offsetof(s_type,field)
+#else
+#define XtOffsetOf(s_type,field) XtOffset(s_type*,field)
+#endif
+
+/*************************************************************
+ *
+ * Session Management
+ *
+ ************************************************************/
+
+typedef struct _XtCheckpointTokenRec {
+ int save_type;
+ int interact_style;
+ Boolean shutdown;
+ Boolean fast;
+ Boolean cancel_shutdown;
+ int phase;
+ int interact_dialog_type; /* return */
+ Boolean request_cancel; /* return */
+ Boolean request_next_phase; /* return */
+ Boolean save_success; /* return */
+ int type; /* implementation private */
+ Widget widget; /* implementation private */
+} XtCheckpointTokenRec, *XtCheckpointToken;
+
+XtCheckpointToken XtSessionGetToken(
+ Widget /* widget */
+);
+
+void XtSessionReturnToken(
+ XtCheckpointToken /* token */
+);
+
+/*************************************************************
+ *
+ * Error Handling
+ *
+ ************************************************************/
+
+extern XtErrorMsgHandler XtAppSetErrorMsgHandler(
+ XtAppContext /* app_context */,
+ XtErrorMsgHandler /* handler */
+);
+
+extern void XtSetErrorMsgHandler( /* obsolete */
+ XtErrorMsgHandler /* handler */
+);
+
+extern XtErrorMsgHandler XtAppSetWarningMsgHandler(
+ XtAppContext /* app_context */,
+ XtErrorMsgHandler /* handler */
+);
+
+extern void XtSetWarningMsgHandler( /* obsolete */
+ XtErrorMsgHandler /* handler */
+);
+
+extern void XtAppErrorMsg(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* class */,
+ _Xconst _XtString /* default */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+extern void XtErrorMsg( /* obsolete */
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* class */,
+ _Xconst _XtString /* default */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+extern void XtAppWarningMsg(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* class */,
+ _Xconst _XtString /* default */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+extern void XtWarningMsg( /* obsolete */
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* class */,
+ _Xconst _XtString /* default */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+extern XtErrorHandler XtAppSetErrorHandler(
+ XtAppContext /* app_context */,
+ XtErrorHandler /* handler */
+);
+
+extern void XtSetErrorHandler( /* obsolete */
+ XtErrorHandler /* handler */
+);
+
+extern XtErrorHandler XtAppSetWarningHandler(
+ XtAppContext /* app_context */,
+ XtErrorHandler /* handler */
+);
+
+extern void XtSetWarningHandler( /* obsolete */
+ XtErrorHandler /* handler */
+);
+
+extern void XtAppError(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* message */
+);
+
+extern void XtError( /* obsolete */
+ _Xconst _XtString /* message */
+);
+
+extern void XtAppWarning(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* message */
+);
+
+extern void XtWarning( /* obsolete */
+ _Xconst _XtString /* message */
+);
+
+extern XrmDatabase *XtAppGetErrorDatabase(
+ XtAppContext /* app_context */
+);
+
+extern XrmDatabase *XtGetErrorDatabase( /* obsolete */
+ void
+);
+
+extern void XtAppGetErrorDatabaseText(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* class */,
+ _Xconst _XtString /* default */,
+ String /* buffer_return */,
+ int /* nbytes */,
+ XrmDatabase /* database */
+);
+
+extern void XtGetErrorDatabaseText( /* obsolete */
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* class */,
+ _Xconst _XtString /* default */,
+ String /* buffer_return */,
+ int /* nbytes */
+);
+
+/****************************************************************
+ *
+ * Memory Management
+ *
+ ****************************************************************/
+
+extern char *XtMalloc(
+ Cardinal /* size */
+);
+
+extern char *XtCalloc(
+ Cardinal /* num */,
+ Cardinal /* size */
+);
+
+extern char *XtRealloc(
+ char* /* ptr */,
+ Cardinal /* num */
+);
+
+extern void XtFree(
+ char* /* ptr */
+);
+
+#ifndef _X_RESTRICT_KYWD
+# define _X_RESTRICT_KYWD
+#endif
+extern Cardinal XtAsprintf(
+ String *new_string,
+ _Xconst char * _X_RESTRICT_KYWD format,
+ ...
+) _X_ATTRIBUTE_PRINTF(2,3);
+
+#ifdef XTTRACEMEMORY
+
+extern char *_XtMalloc( /* implementation-private */
+ Cardinal /* size */,
+ char * /* file */,
+ int /* line */
+);
+
+extern char *_XtRealloc( /* implementation-private */
+ char * /* ptr */,
+ Cardinal /* size */,
+ char * /* file */,
+ int /* line */
+);
+
+extern char *_XtCalloc( /* implementation-private */
+ Cardinal /* num */,
+ Cardinal /* size */,
+ char * /* file */,
+ int /* line */
+);
+
+extern void _XtFree( /* implementation-private */
+ char * /* ptr */
+);
+
+#define XtMalloc(size) _XtMalloc(size, __FILE__, __LINE__)
+#define XtRealloc(ptr,size) _XtRealloc(ptr, size, __FILE__, __LINE__)
+#define XtCalloc(num,size) _XtCalloc(num, size, __FILE__, __LINE__)
+#define XtFree(ptr) _XtFree(ptr)
+
+#endif /* ifdef XTTRACEMEMORY */
+
+#define XtNew(type) ((type *) XtMalloc((unsigned) sizeof(type)))
+
+#undef XtNewString
+extern String XtNewString(String /* str */);
+#define XtNewString(str) \
+ ((str) != NULL ? (strcpy(XtMalloc((unsigned)strlen(str) + 1), str)) : NULL)
+
+/*************************************************************
+ *
+ * Work procs
+ *
+ **************************************************************/
+
+extern XtWorkProcId XtAddWorkProc( /* obsolete */
+ XtWorkProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern XtWorkProcId XtAppAddWorkProc(
+ XtAppContext /* app_context */,
+ XtWorkProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveWorkProc(
+ XtWorkProcId /* id */
+);
+
+
+/****************************************************************
+ *
+ * Graphic Context Management
+ *****************************************************************/
+
+extern GC XtGetGC(
+ Widget /* widget */,
+ XtGCMask /* valueMask */,
+ XGCValues* /* values */
+);
+
+extern GC XtAllocateGC(
+ Widget /* widget */,
+ Cardinal /* depth */,
+ XtGCMask /* valueMask */,
+ XGCValues* /* values */,
+ XtGCMask /* dynamicMask */,
+ XtGCMask /* unusedMask */
+);
+
+/* This implementation of XtDestroyGC differs from the formal specification
+ * for historic backwards compatibility reasons. As other implementations
+ * may conform to the spec, use of XtReleaseGC is strongly encouraged.
+ */
+extern void XtDestroyGC( /* obsolete */
+ GC /* gc */
+);
+
+extern void XtReleaseGC(
+ Widget /* object */,
+ GC /* gc */
+);
+
+
+
+extern void XtAppReleaseCacheRefs(
+ XtAppContext /* app_context */,
+ XtCacheRef* /* cache_ref */
+);
+
+extern void XtCallbackReleaseCacheRef(
+ Widget /* widget */,
+ XtPointer /* closure */, /* XtCacheRef */
+ XtPointer /* call_data */
+);
+
+extern void XtCallbackReleaseCacheRefList(
+ Widget /* widget */,
+ XtPointer /* closure */, /* XtCacheRef* */
+ XtPointer /* call_data */
+);
+
+extern void XtSetWMColormapWindows(
+ Widget /* widget */,
+ Widget* /* list */,
+ Cardinal /* count */
+);
+
+extern String XtFindFile(
+ _Xconst _XtString /* path */,
+ Substitution /* substitutions */,
+ Cardinal /* num_substitutions */,
+ XtFilePredicate /* predicate */
+);
+
+extern String XtResolvePathname(
+ Display* /* dpy */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* filename */,
+ _Xconst _XtString /* suffix */,
+ _Xconst _XtString /* path */,
+ Substitution /* substitutions */,
+ Cardinal /* num_substitutions */,
+ XtFilePredicate /* predicate */
+);
+
+/****************************************************************
+ *
+ * Selections
+ *
+ *****************************************************************/
+
+#define XT_CONVERT_FAIL (Atom)0x80000001
+
+extern void XtDisownSelection(
+ Widget /* widget */,
+ Atom /* selection */,
+ Time /* time */
+);
+
+extern void XtGetSelectionValue(
+ Widget /* widget */,
+ Atom /* selection */,
+ Atom /* target */,
+ XtSelectionCallbackProc /* callback */,
+ XtPointer /* closure */,
+ Time /* time */
+);
+
+extern void XtGetSelectionValues(
+ Widget /* widget */,
+ Atom /* selection */,
+ Atom* /* targets */,
+ int /* count */,
+ XtSelectionCallbackProc /* callback */,
+ XtPointer* /* closures */,
+ Time /* time */
+);
+
+extern void XtAppSetSelectionTimeout(
+ XtAppContext /* app_context */,
+ unsigned long /* timeout */
+);
+
+extern void XtSetSelectionTimeout( /* obsolete */
+ unsigned long /* timeout */
+);
+
+extern unsigned long XtAppGetSelectionTimeout(
+ XtAppContext /* app_context */
+);
+
+extern unsigned long XtGetSelectionTimeout( /* obsolete */
+ void
+);
+
+extern XSelectionRequestEvent *XtGetSelectionRequest(
+ Widget /* widget */,
+ Atom /* selection */,
+ XtRequestId /* request_id */
+);
+
+extern void XtGetSelectionValueIncremental(
+ Widget /* widget */,
+ Atom /* selection */,
+ Atom /* target */,
+ XtSelectionCallbackProc /* selection_callback */,
+ XtPointer /* client_data */,
+ Time /* time */
+);
+
+extern void XtGetSelectionValuesIncremental(
+ Widget /* widget */,
+ Atom /* selection */,
+ Atom* /* targets */,
+ int /* count */,
+ XtSelectionCallbackProc /* callback */,
+ XtPointer* /* client_data */,
+ Time /* time */
+);
+
+extern void XtSetSelectionParameters(
+ Widget /* requestor */,
+ Atom /* selection */,
+ Atom /* type */,
+ XtPointer /* value */,
+ unsigned long /* length */,
+ int /* format */
+);
+
+extern void XtGetSelectionParameters(
+ Widget /* owner */,
+ Atom /* selection */,
+ XtRequestId /* request_id */,
+ Atom* /* type_return */,
+ XtPointer* /* value_return */,
+ unsigned long* /* length_return */,
+ int* /* format_return */
+);
+
+extern void XtCreateSelectionRequest(
+ Widget /* requestor */,
+ Atom /* selection */
+);
+
+extern void XtSendSelectionRequest(
+ Widget /* requestor */,
+ Atom /* selection */,
+ Time /* time */
+);
+
+extern void XtCancelSelectionRequest(
+ Widget /* requestor */,
+ Atom /* selection */
+);
+
+extern Atom XtReservePropertyAtom(
+ Widget /* widget */
+);
+
+extern void XtReleasePropertyAtom(
+ Widget /* widget */,
+ Atom /* selection */
+);
+
+extern void XtGrabKey(
+ Widget /* widget */,
+ _XtKeyCode /* keycode */,
+ Modifiers /* modifiers */,
+ _XtBoolean /* owner_events */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */
+);
+
+extern void XtUngrabKey(
+ Widget /* widget */,
+ _XtKeyCode /* keycode */,
+ Modifiers /* modifiers */
+);
+
+extern int XtGrabKeyboard(
+ Widget /* widget */,
+ _XtBoolean /* owner_events */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */,
+ Time /* time */
+);
+
+extern void XtUngrabKeyboard(
+ Widget /* widget */,
+ Time /* time */
+);
+
+extern void XtGrabButton(
+ Widget /* widget */,
+ int /* button */,
+ Modifiers /* modifiers */,
+ _XtBoolean /* owner_events */,
+ unsigned int /* event_mask */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */,
+ Window /* confine_to */,
+ Cursor /* cursor */
+);
+
+extern void XtUngrabButton(
+ Widget /* widget */,
+ unsigned int /* button */,
+ Modifiers /* modifiers */
+);
+
+extern int XtGrabPointer(
+ Widget /* widget */,
+ _XtBoolean /* owner_events */,
+ unsigned int /* event_mask */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */,
+ Window /* confine_to */,
+ Cursor /* cursor */,
+ Time /* time */
+);
+
+extern void XtUngrabPointer(
+ Widget /* widget */,
+ Time /* time */
+);
+
+extern void XtGetApplicationNameAndClass(
+ Display* /* dpy */,
+ String* /* name_return */,
+ String* /* class_return */
+);
+
+extern void XtRegisterDrawable(
+ Display* /* dpy */,
+ Drawable /* drawable */,
+ Widget /* widget */
+);
+
+extern void XtUnregisterDrawable(
+ Display* /* dpy */,
+ Drawable /* drawable */
+);
+
+extern Widget XtHooksOfDisplay(
+ Display* /* dpy */
+);
+
+typedef struct {
+ String type;
+ Widget widget;
+ ArgList args;
+ Cardinal num_args;
+} XtCreateHookDataRec, *XtCreateHookData;
+
+typedef struct {
+ String type;
+ Widget widget;
+ XtPointer event_data;
+ Cardinal num_event_data;
+} XtChangeHookDataRec, *XtChangeHookData;
+
+typedef struct {
+ Widget old, req;
+ ArgList args;
+ Cardinal num_args;
+} XtChangeHookSetValuesDataRec, *XtChangeHookSetValuesData;
+
+typedef struct {
+ String type;
+ Widget widget;
+ XtGeometryMask changeMask;
+ XWindowChanges changes;
+} XtConfigureHookDataRec, *XtConfigureHookData;
+
+typedef struct {
+ String type;
+ Widget widget;
+ XtWidgetGeometry* request;
+ XtWidgetGeometry* reply;
+ XtGeometryResult result;
+} XtGeometryHookDataRec, *XtGeometryHookData;
+
+typedef struct {
+ String type;
+ Widget widget;
+} XtDestroyHookDataRec, *XtDestroyHookData;
+
+extern void XtGetDisplays(
+ XtAppContext /* app_context */,
+ Display*** /* dpy_return */,
+ Cardinal* /* num_dpy_return */
+);
+
+extern Boolean XtToolkitThreadInitialize(
+ void
+);
+
+extern void XtAppSetExitFlag(
+ XtAppContext /* app_context */
+);
+
+extern Boolean XtAppGetExitFlag(
+ XtAppContext /* app_context */
+);
+
+extern void XtAppLock(
+ XtAppContext /* app_context */
+);
+
+extern void XtAppUnlock(
+ XtAppContext /* app_context */
+);
+
+/*
+ * Predefined Resource Converters
+ */
+
+
+/* String converters */
+
+extern Boolean XtCvtStringToAcceleratorTable(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToAtom(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Display */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToBool(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToBoolean(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToCommandArgArray(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToCursor(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Display */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToDimension(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToDirectoryString(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToDisplay(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToFile(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToFloat(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToFont(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Display */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToFontSet(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Display, locale */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToFontStruct(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Display */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToGravity(
+ Display* /* dpy */,
+ XrmValuePtr /* args */,
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToInitialState(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToInt(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToPixel(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Screen, Colormap */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+#define XtCvtStringToPosition XtCvtStringToShort
+
+extern Boolean XtCvtStringToRestartStyle(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToShort(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToTranslationTable(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToUnsignedChar(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToVisual(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Screen, depth */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+/* int converters */
+
+extern Boolean XtCvtIntToBool(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtIntToBoolean(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtIntToColor(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Screen, Colormap */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+#define XtCvtIntToDimension XtCvtIntToShort
+
+extern Boolean XtCvtIntToFloat(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtIntToFont(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtIntToPixel(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtIntToPixmap(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+#define XtCvtIntToPosition XtCvtIntToShort
+
+extern Boolean XtCvtIntToShort(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtIntToUnsignedChar(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+/* Color converter */
+
+extern Boolean XtCvtColorToPixel(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+/* Pixel converter */
+
+#define XtCvtPixelToColor XtCvtIntToColor
+
+
+_XFUNCPROTOEND
+
+#endif /*_XtIntrinsic_h*/
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/IntrinsicI.h b/X11/IntrinsicI.h
new file mode 100644
index 000000000..5f852388a
--- /dev/null
+++ b/X11/IntrinsicI.h
@@ -0,0 +1,229 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XtintrinsicI_h
+#define _XtintrinsicI_h
+
+#include "Xtos.h"
+#include "IntrinsicP.h"
+#ifdef WIN32
+#define _WILLWINSOCK_
+#endif
+#include <X11/Xos.h>
+
+#include "Object.h"
+#include "RectObj.h"
+#include "ObjectP.h"
+#include "RectObjP.h"
+
+#include "ConvertI.h"
+#include "TranslateI.h"
+
+#define RectObjClassFlag 0x02
+#define WidgetClassFlag 0x04
+#define CompositeClassFlag 0x08
+#define ConstraintClassFlag 0x10
+#define ShellClassFlag 0x20
+#define WMShellClassFlag 0x40
+#define TopLevelClassFlag 0x80
+
+/*
+ * The following macros, though very handy, are not suitable for
+ * IntrinsicP.h as they violate the rule that arguments are to
+ * be evaluated exactly once.
+ */
+
+#define XtDisplayOfObject(object) \
+ (XtIsWidget(object) ? (object)->core.screen->display : \
+ _XtIsHookObject(object) ? ((HookObject)(object))->hooks.screen->display : \
+ _XtWindowedAncestor(object)->core.screen->display)
+
+#define XtScreenOfObject(object) \
+ (XtIsWidget(object) ? (object)->core.screen : \
+ _XtIsHookObject(object) ? ((HookObject)(object))->hooks.screen : \
+ _XtWindowedAncestor(object)->core.screen)
+
+#define XtWindowOfObject(object) \
+ ((XtIsWidget(object) ? (object) : _XtWindowedAncestor(object)) \
+ ->core.window)
+
+#define XtIsManaged(object) \
+ (XtIsRectObj(object) ? (object)->core.managed : False)
+
+#define XtIsSensitive(object) \
+ (XtIsRectObj(object) ? ((object)->core.sensitive && \
+ (object)->core.ancestor_sensitive) : False)
+
+
+/****************************************************************
+ *
+ * Byte utilities
+ *
+ ****************************************************************/
+
+#define _XBCOPYFUNC _XtBcopy
+#include <X11/Xfuncs.h>
+
+#define XtMemmove(dst, src, size) \
+ if ((char *)(dst) != (char *)(src)) { \
+ (void) memcpy((char *) (dst), (char *) (src), (int) (size)); \
+ }
+
+#define XtBZero(dst, size) \
+ bzero((char *) (dst), (int) (size))
+
+#define XtMemcmp(b1, b2, size) \
+ memcmp((char *) (b1), (char *) (b2), (int) (size))
+
+
+/****************************************************************
+ *
+ * Stack cache allocation/free
+ *
+ ****************************************************************/
+
+#define XtStackAlloc(size, stack_cache_array) \
+ ((size) <= sizeof(stack_cache_array) \
+ ? (XtPointer)(stack_cache_array) \
+ : XtMalloc((unsigned)(size)))
+
+#define XtStackFree(pointer, stack_cache_array) \
+ { if ((pointer) != ((XtPointer)(stack_cache_array))) XtFree(pointer); }
+
+/***************************************************************
+ *
+ * Filename defines
+ *
+ **************************************************************/
+
+/* used by XtResolvePathname */
+#ifndef XFILESEARCHPATHDEFAULT
+#define XFILESEARCHPATHDEFAULT "/usr/lib/X11/%L/%T/%N%S:/usr/lib/X11/%l/%T/%N%S:/usr/lib/X11/%T/%N%S"
+#endif
+
+/* the following two were both "X Toolkit " prior to R4 */
+#ifndef XTERROR_PREFIX
+#define XTERROR_PREFIX ""
+#endif
+
+#ifndef XTWARNING_PREFIX
+#define XTWARNING_PREFIX ""
+#endif
+
+#ifndef ERRORDB
+#define ERRORDB "/usr/lib/X11/XtErrorDB"
+#endif
+
+_XFUNCPROTOBEGIN
+
+extern String XtCXtToolkitError;
+
+extern void _XtAllocError(
+ String /* alloc_type */
+);
+
+extern void _XtCompileResourceList(
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */
+);
+
+extern XtGeometryResult _XtMakeGeometryRequest(
+ Widget /* widget */,
+ XtWidgetGeometry* /* request */,
+ XtWidgetGeometry* /* reply_return */,
+ Boolean* /* clear_rect_obj */
+);
+
+extern Boolean _XtIsHookObject(
+ Widget /* widget */
+);
+
+extern void _XtAddShellToHookObj(
+ Widget /* widget */
+);
+
+/* GCManager.c */
+extern void _XtGClistFree(Display *dpy, XtPerDisplay pd);
+
+/** GeoTattler stuff */
+
+#ifdef XT_GEO_TATTLER
+
+extern void _XtGeoTab (int);
+extern void _XtGeoTrace (
+ Widget widget,
+ ...
+) _X_ATTRIBUTE_PRINTF(2,3);
+
+#define CALLGEOTAT(f) f
+
+#else /* XT_GEO_TATTLER */
+
+#define CALLGEOTAT(f)
+
+#endif /* XT_GEO_TATTLER */
+
+#ifndef XTTRACEMEMORY
+
+extern char* __XtMalloc (
+ unsigned /* size */
+);
+extern char* __XtCalloc (
+ unsigned /* num */,
+ unsigned /* size */
+);
+
+#else
+
+#define __XtMalloc XtMalloc
+#define __XtCalloc XtCalloc
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _XtintrinsicI_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/IntrinsicP.h b/X11/IntrinsicP.h
new file mode 100644
index 000000000..d3007ee07
--- /dev/null
+++ b/X11/IntrinsicP.h
@@ -0,0 +1,324 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XtintrinsicP_h
+#define _XtintrinsicP_h
+
+#include <X11/Intrinsic.h>
+
+/*
+ * Field sizes and offsets of XrmResource must match those of XtResource.
+ * Type intptr_t is used instead of XrmQuark here because XrmQuark and String
+ * are not the same size on all systems.
+ */
+typedef struct {
+ intptr_t xrm_name; /* Resource name quark */
+ intptr_t xrm_class; /* Resource class quark */
+ intptr_t xrm_type; /* Resource representation type quark */
+ Cardinal xrm_size; /* Size in bytes of representation */
+ int xrm_offset; /* -offset-1 */
+ intptr_t xrm_default_type; /* Default representation type quark */
+ XtPointer xrm_default_addr; /* Default resource address */
+} XrmResource, *XrmResourceList;
+
+typedef unsigned long XtVersionType;
+
+#define XT_VERSION 11
+#ifndef XT_REVISION
+#define XT_REVISION 6
+#endif
+#define XtVersion (XT_VERSION * 1000 + XT_REVISION)
+#define XtVersionDontCheck 0
+
+typedef void (*XtProc)(
+ void
+);
+
+typedef void (*XtWidgetClassProc)(
+ WidgetClass /* class */
+);
+
+typedef void (*XtWidgetProc)(
+ Widget /* widget */
+);
+
+typedef Boolean (*XtAcceptFocusProc)(
+ Widget /* widget */,
+ Time* /* time */
+);
+
+typedef void (*XtArgsProc)(
+ Widget /* widget */,
+ ArgList /* args */,
+ Cardinal* /* num_args */
+);
+
+typedef void (*XtInitProc)(
+ Widget /* request */,
+ Widget /* new */,
+ ArgList /* args */,
+ Cardinal* /* num_args */
+);
+
+typedef Boolean (*XtSetValuesFunc)(
+ Widget /* old */,
+ Widget /* request */,
+ Widget /* new */,
+ ArgList /* args */,
+ Cardinal* /* num_args */
+);
+
+typedef Boolean (*XtArgsFunc)(
+ Widget /* widget */,
+ ArgList /* args */,
+ Cardinal* /* num_args */
+);
+
+typedef void (*XtAlmostProc)(
+ Widget /* old */,
+ Widget /* new */,
+ XtWidgetGeometry* /* request */,
+ XtWidgetGeometry* /* reply */
+);
+
+typedef void (*XtExposeProc)(
+ Widget /* widget */,
+ XEvent* /* event */,
+ Region /* region */
+);
+
+/* compress_exposure options*/
+#define XtExposeNoCompress ((XtEnum)False)
+#define XtExposeCompressSeries ((XtEnum)True)
+#define XtExposeCompressMultiple 2
+#define XtExposeCompressMaximal 3
+
+/* modifiers */
+#define XtExposeGraphicsExpose 0x10
+#define XtExposeGraphicsExposeMerged 0x20
+#define XtExposeNoExpose 0x40
+#define XtExposeNoRegion 0x80
+
+typedef void (*XtRealizeProc)(
+ Widget /* widget */,
+ XtValueMask* /* mask */,
+ XSetWindowAttributes* /* attributes */
+);
+
+typedef XtGeometryResult (*XtGeometryHandler)(
+ Widget /* widget */,
+ XtWidgetGeometry* /* request */,
+ XtWidgetGeometry* /* reply */
+);
+
+typedef void (*XtStringProc)(
+ Widget /* widget */,
+ String /* str */
+);
+
+typedef struct {
+ String name; /* resource name */
+ String type; /* representation type name */
+ XtArgVal value; /* representation */
+ int size; /* size of representation */
+} XtTypedArg, *XtTypedArgList;
+
+typedef void (*XtAllocateProc)(
+ WidgetClass /* widget_class */,
+ Cardinal * /* constraint_size */,
+ Cardinal * /* more_bytes */,
+ ArgList /* args */,
+ Cardinal * /* num_args */,
+ XtTypedArgList /* typed_args */,
+ Cardinal * /* num_typed_args */,
+ Widget * /* widget_return */,
+ XtPointer * /* more_bytes_return */
+);
+
+typedef void (*XtDeallocateProc)(
+ Widget /* widget */,
+ XtPointer /* more_bytes */
+);
+
+struct _XtStateRec; /* Forward declare before use for C++ */
+
+typedef struct _XtTMRec {
+ XtTranslations translations; /* private to Translation Manager */
+ XtBoundActions proc_table; /* procedure bindings for actions */
+ struct _XtStateRec *current_state; /* Translation Manager state ptr */
+ unsigned long lastEventTime;
+} XtTMRec, *XtTM;
+
+#include <X11/CoreP.h>
+#include <X11/CompositeP.h>
+#include <X11/ConstrainP.h>
+#include <X11/ObjectP.h>
+#include <X11/RectObjP.h>
+
+#define XtDisplay(widget) DisplayOfScreen((widget)->core.screen)
+#define XtScreen(widget) ((widget)->core.screen)
+#define XtWindow(widget) ((widget)->core.window)
+
+#define XtClass(widget) ((widget)->core.widget_class)
+#define XtSuperclass(widget) (XtClass(widget)->core_class.superclass)
+#define XtIsRealized(object) (XtWindowOfObject(object) != None)
+#define XtParent(widget) ((widget)->core.parent)
+
+#undef XtIsRectObj
+extern Boolean XtIsRectObj(Widget);
+#define XtIsRectObj(obj) \
+ (((Object)(obj))->object.widget_class->core_class.class_inited & 0x02)
+
+#undef XtIsWidget
+extern Boolean XtIsWidget(Widget);
+#define XtIsWidget(obj) \
+ (((Object)(obj))->object.widget_class->core_class.class_inited & 0x04)
+
+#undef XtIsComposite
+extern Boolean XtIsComposite(Widget);
+#define XtIsComposite(obj) \
+ (((Object)(obj))->object.widget_class->core_class.class_inited & 0x08)
+
+#undef XtIsConstraint
+extern Boolean XtIsConstraint(Widget);
+#define XtIsConstraint(obj) \
+ (((Object)(obj))->object.widget_class->core_class.class_inited & 0x10)
+
+#undef XtIsShell
+extern Boolean XtIsShell(Widget);
+#define XtIsShell(obj) \
+ (((Object)(obj))->object.widget_class->core_class.class_inited & 0x20)
+
+#undef XtIsWMShell
+extern Boolean XtIsWMShell(Widget);
+#define XtIsWMShell(obj) \
+ (((Object)(obj))->object.widget_class->core_class.class_inited & 0x40)
+
+#undef XtIsTopLevelShell
+extern Boolean XtIsTopLevelShell(Widget);
+#define XtIsTopLevelShell(obj) \
+ (((Object)(obj))->object.widget_class->core_class.class_inited & 0x80)
+
+#ifdef DEBUG
+#define XtCheckSubclass(w, widget_class_ptr, message) \
+ if (!XtIsSubclass(((Widget)(w)), (widget_class_ptr))) { \
+ String params[3]; \
+ Cardinal num_params = 3; \
+ params[0] = ((Widget)(w))->core.widget_class->core_class.class_name;\
+ params[1] = (widget_class_ptr)->core_class.class_name; \
+ params[2] = (message); \
+ XtAppErrorMsg(XtWidgetToApplicationContext((Widget)(w)), \
+ "subclassMismatch", "xtCheckSubclass", "XtToolkitError", \
+ "Widget class %s found when subclass of %s expected: %s",\
+ params, &num_params); \
+ }
+#else
+#define XtCheckSubclass(w, widget_class, message) /* nothing */
+#endif
+
+_XFUNCPROTOBEGIN
+
+extern Widget _XtWindowedAncestor( /* internal; implementation-dependent */
+ Widget /* object */
+);
+
+extern void _XtInherit(
+ void
+);
+
+extern void _XtHandleFocus(
+ Widget /* widget */,
+ XtPointer /* client_data */,
+ XEvent * /* event */,
+ Boolean * /* cont */);
+
+extern void XtCreateWindow(
+ Widget /* widget */,
+ unsigned int /* window_class */,
+ Visual* /* visual */,
+ XtValueMask /* value_mask */,
+ XSetWindowAttributes* /* attributes */
+);
+
+extern void XtResizeWidget(
+ Widget /* widget */,
+ _XtDimension /* width */,
+ _XtDimension /* height */,
+ _XtDimension /* border_width */
+);
+
+extern void XtMoveWidget(
+ Widget /* widget */,
+ _XtPosition /* x */,
+ _XtPosition /* y */
+);
+
+extern void XtConfigureWidget(
+ Widget /* widget */,
+ _XtPosition /* x */,
+ _XtPosition /* y */,
+ _XtDimension /* width */,
+ _XtDimension /* height */,
+ _XtDimension /* border_width */
+);
+
+extern void XtResizeWindow(
+ Widget /* widget */
+);
+
+extern void XtProcessLock(
+ void
+);
+
+extern void XtProcessUnlock(
+ void
+);
+
+_XFUNCPROTOEND
+
+#endif /* _XtIntrinsicP_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/Object.h b/X11/Object.h
new file mode 100644
index 000000000..666afd357
--- /dev/null
+++ b/X11/Object.h
@@ -0,0 +1,63 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XtObject_h
+#define _XtObject_h
+
+_XFUNCPROTOBEGIN
+
+typedef struct _ObjectRec *Object;
+typedef struct _ObjectClassRec *ObjectClass;
+
+#ifndef VMS
+externalref WidgetClass objectClass;
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _XtObject_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/ObjectP.h b/X11/ObjectP.h
new file mode 100644
index 000000000..80fb072d4
--- /dev/null
+++ b/X11/ObjectP.h
@@ -0,0 +1,141 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _Xt_ObjectP_h_
+#define _Xt_ObjectP_h_
+
+#include <X11/Object.h>
+
+_XFUNCPROTOBEGIN
+
+/**********************************************************
+ * Object Instance Data Structures
+ *
+ **********************************************************/
+/* these fields match CorePart and can not be changed */
+
+typedef struct _ObjectPart {
+ Widget self; /* pointer to widget itself */
+ WidgetClass widget_class; /* pointer to Widget's ClassRec */
+ Widget parent; /* parent widget */
+ XrmName xrm_name; /* widget resource name quarkified */
+ Boolean being_destroyed; /* marked for destroy */
+ XtCallbackList destroy_callbacks; /* who to call when widget destroyed */
+ XtPointer constraints; /* constraint record */
+} ObjectPart;
+
+typedef struct _ObjectRec {
+ ObjectPart object;
+} ObjectRec;
+
+/********************************************************
+ * Object Class Data Structures
+ *
+ ********************************************************/
+/* these fields match CoreClassPart and can not be changed */
+/* ideally these structures would only contain the fields required;
+ but because the CoreClassPart cannot be changed at this late date
+ extraneous fields are necessary to make the field offsets match */
+
+typedef struct _ObjectClassPart {
+
+ WidgetClass superclass; /* pointer to superclass ClassRec */
+ String class_name; /* widget resource class name */
+ Cardinal widget_size; /* size in bytes of widget record */
+ XtProc class_initialize; /* class initialization proc */
+ XtWidgetClassProc class_part_initialize; /* dynamic initialization */
+ XtEnum class_inited; /* has class been initialized? */
+ XtInitProc initialize; /* initialize subclass fields */
+ XtArgsProc initialize_hook; /* notify that initialize called */
+ XtProc obj1; /* NULL */
+ XtPointer obj2; /* NULL */
+ Cardinal obj3; /* NULL */
+ XtResourceList resources; /* resources for subclass fields */
+ Cardinal num_resources; /* number of entries in resources */
+ XrmClass xrm_class; /* resource class quarkified */
+ Boolean obj4; /* NULL */
+ XtEnum obj5; /* NULL */
+ Boolean obj6; /* NULL */
+ Boolean obj7; /* NULL */
+ XtWidgetProc destroy; /* free data for subclass pointers */
+ XtProc obj8; /* NULL */
+ XtProc obj9; /* NULL */
+ XtSetValuesFunc set_values; /* set subclass resource values */
+ XtArgsFunc set_values_hook; /* notify that set_values called */
+ XtProc obj10; /* NULL */
+ XtArgsProc get_values_hook; /* notify that get_values called */
+ XtProc obj11; /* NULL */
+ XtVersionType version; /* version of intrinsics used */
+ XtPointer callback_private; /* list of callback offsets */
+ String obj12; /* NULL */
+ XtProc obj13; /* NULL */
+ XtProc obj14; /* NULL */
+ XtPointer extension; /* pointer to extension record */
+}ObjectClassPart;
+
+typedef struct {
+ XtPointer next_extension; /* 1st 4 required for all extension records */
+ XrmQuark record_type; /* NULLQUARK; when on ObjectClassPart */
+ long version; /* must be XtObjectExtensionVersion */
+ Cardinal record_size; /* sizeof(ObjectClassExtensionRec) */
+ XtAllocateProc allocate;
+ XtDeallocateProc deallocate;
+} ObjectClassExtensionRec, *ObjectClassExtension;
+
+typedef struct _ObjectClassRec {
+ ObjectClassPart object_class;
+} ObjectClassRec;
+
+externalref ObjectClassRec objectClassRec;
+
+_XFUNCPROTOEND
+
+#define XtObjectExtensionVersion 1L
+#define XtInheritAllocate ((XtAllocateProc) _XtInherit)
+#define XtInheritDeallocate ((XtDeallocateProc) _XtInherit)
+
+#endif /*_Xt_ObjectP_h_*/
diff --git a/X11/PassivGraI.h b/X11/PassivGraI.h
new file mode 100644
index 000000000..cd401cd46
--- /dev/null
+++ b/X11/PassivGraI.h
@@ -0,0 +1,185 @@
+/********************************************************
+
+Copyright 1988 by Hewlett-Packard Company
+Copyright 1987, 1988, 1989 by Digital Equipment Corporation, Maynard
+
+Permission to use, copy, modify, and distribute this software
+and its documentation for any purpose and without fee is hereby
+granted, 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 names of
+Hewlett-Packard or Digital not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+********************************************************/
+
+/*
+
+Copyright 1987, 1988, 1989, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+#ifndef _PDI_h_
+#define _PDI_h_
+
+
+#define KEYBOARD TRUE
+#define POINTER FALSE
+
+_XFUNCPROTOBEGIN
+
+typedef enum {
+ XtNoServerGrab,
+ XtPassiveServerGrab,
+ XtActiveServerGrab,
+ XtPseudoPassiveServerGrab,
+ XtPseudoActiveServerGrab
+}XtServerGrabType;
+
+typedef struct _XtServerGrabRec {
+ struct _XtServerGrabRec *next;
+ Widget widget;
+ unsigned int ownerEvents:1;
+ unsigned int pointerMode:1;
+ unsigned int keyboardMode:1;
+ unsigned int hasExt:1;
+ unsigned int confineToIsWidgetWin:1;
+ KeyCode keybut;
+ unsigned short modifiers;
+ unsigned short eventMask;
+} XtServerGrabRec, *XtServerGrabPtr;
+
+typedef struct _XtGrabExtRec {
+ Mask *pKeyButMask;
+ Mask *pModifiersMask;
+ Window confineTo;
+ Cursor cursor;
+} XtServerGrabExtRec, *XtServerGrabExtPtr;
+
+#define GRABEXT(p) ((XtServerGrabExtPtr)((p)+1))
+
+typedef struct _XtDeviceRec{
+ XtServerGrabRec grab; /* need copy in order to protect
+ during grab */
+ XtServerGrabType grabType;
+}XtDeviceRec, *XtDevice;
+
+#define XtMyAncestor 0
+#define XtMyDescendant 1
+#define XtMyCousin 2
+#define XtMySelf 3
+#define XtUnrelated 4
+typedef char XtGeneology; /* do not use an enum makes PerWidgetInput larger */
+
+typedef struct {
+ Widget focusKid;
+ XtServerGrabPtr keyList, ptrList;
+ Widget queryEventDescendant;
+ unsigned int map_handler_added:1;
+ unsigned int realize_handler_added:1;
+ unsigned int active_handler_added:1;
+ unsigned int haveFocus:1;
+ XtGeneology focalPoint;
+}XtPerWidgetInputRec, *XtPerWidgetInput;
+
+typedef struct XtPerDisplayInputRec{
+ XtGrabList grabList;
+ XtDeviceRec keyboard, pointer;
+ KeyCode activatingKey;
+ Widget *trace;
+ int traceDepth, traceMax;
+ Widget focusWidget;
+}XtPerDisplayInputRec, *XtPerDisplayInput;
+
+#define IsServerGrab(g) ((g == XtPassiveServerGrab) ||\
+ (g == XtActiveServerGrab))
+
+#define IsAnyGrab(g) ((g == XtPassiveServerGrab) ||\
+ (g == XtActiveServerGrab) ||\
+ (g == XtPseudoPassiveServerGrab))
+
+#define IsEitherPassiveGrab(g) ((g == XtPassiveServerGrab) ||\
+ (g == XtPseudoPassiveServerGrab))
+
+#define IsPseudoGrab(g) ((g == XtPseudoPassiveServerGrab))
+
+extern void _XtDestroyServerGrabs(
+ Widget /* w */,
+ XtPointer /* pwi */, /*XtPerWidgetInput*/
+ XtPointer /* call_data */
+);
+
+extern XtPerWidgetInput _XtGetPerWidgetInput(
+ Widget /* widget */,
+ _XtBoolean /* create */
+);
+
+extern XtServerGrabPtr _XtCheckServerGrabsOnWidget(
+ XEvent* /* event */,
+ Widget /* widget */,
+ _XtBoolean /* isKeyboard */
+);
+
+/*
+extern XtGrabList* _XtGetGrabList( XtPerDisplayInput );
+*/
+
+#define _XtGetGrabList(pdi) (&(pdi)->grabList)
+
+extern void _XtFreePerWidgetInput(
+ Widget /* w */,
+ XtPerWidgetInput /* pwi */
+);
+
+extern Widget _XtProcessKeyboardEvent(
+ XKeyEvent* /* event */,
+ Widget /* widget */,
+ XtPerDisplayInput /* pdi */
+);
+
+extern Widget _XtProcessPointerEvent(
+ XButtonEvent* /* event */,
+ Widget /* widget */,
+ XtPerDisplayInput /* pdi */
+);
+
+extern void _XtRegisterPassiveGrabs(
+ Widget /* widget */
+);
+
+extern void _XtClearAncestorCache(
+ Widget /* widget */
+);
+
+_XFUNCPROTOEND
+
+#endif /* _PDI_h_ */
diff --git a/X11/RectObj.h b/X11/RectObj.h
new file mode 100644
index 000000000..d53e68ea1
--- /dev/null
+++ b/X11/RectObj.h
@@ -0,0 +1,63 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XtRect_h
+#define _XtRect_h
+
+_XFUNCPROTOBEGIN
+
+typedef struct _RectObjRec *RectObj;
+typedef struct _RectObjClassRec *RectObjClass;
+
+#ifndef VMS
+externalref WidgetClass rectObjClass;
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _XtRect_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/RectObjP.h b/X11/RectObjP.h
new file mode 100644
index 000000000..9bb528f7d
--- /dev/null
+++ b/X11/RectObjP.h
@@ -0,0 +1,131 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _Xt_RectObjP_h_
+#define _Xt_RectObjP_h_
+
+#include <X11/RectObj.h>
+#include <X11/ObjectP.h>
+
+_XFUNCPROTOBEGIN
+
+/**********************************************************
+ * Rectangle Object Instance Data Structures
+ *
+ **********************************************************/
+/* these fields match CorePart and can not be changed */
+
+typedef struct _RectObjPart {
+ Position x, y; /* rectangle position */
+ Dimension width, height; /* rectangle dimensions */
+ Dimension border_width; /* rectangle border width */
+ Boolean managed; /* is widget geometry managed? */
+ Boolean sensitive; /* is widget sensitive to user events*/
+ Boolean ancestor_sensitive; /* are all ancestors sensitive? */
+}RectObjPart;
+
+typedef struct _RectObjRec {
+ ObjectPart object;
+ RectObjPart rectangle;
+} RectObjRec;
+
+
+
+/********************************************************
+ * Rectangle Object Class Data Structures
+ *
+ ********************************************************/
+/* these fields match CoreClassPart and can not be changed */
+/* ideally these structures would only contain the fields required;
+ but because the CoreClassPart cannot be changed at this late date
+ extraneous fields are necessary to make the field offsets match */
+
+typedef struct _RectObjClassPart {
+
+ WidgetClass superclass; /* pointer to superclass ClassRec */
+ String class_name; /* widget resource class name */
+ Cardinal widget_size; /* size in bytes of widget record */
+ XtProc class_initialize; /* class initialization proc */
+ XtWidgetClassProc class_part_initialize; /* dynamic initialization */
+ XtEnum class_inited; /* has class been initialized? */
+ XtInitProc initialize; /* initialize subclass fields */
+ XtArgsProc initialize_hook; /* notify that initialize called */
+ XtProc rect1; /* NULL */
+ XtPointer rect2; /* NULL */
+ Cardinal rect3; /* NULL */
+ XtResourceList resources; /* resources for subclass fields */
+ Cardinal num_resources; /* number of entries in resources */
+ XrmClass xrm_class; /* resource class quarkified */
+ Boolean rect4; /* NULL */
+ XtEnum rect5; /* NULL */
+ Boolean rect6; /* NULL */
+ Boolean rect7; /* NULL */
+ XtWidgetProc destroy; /* free data for subclass pointers */
+ XtWidgetProc resize; /* geom manager changed widget size */
+ XtExposeProc expose; /* rediplay rectangle */
+ XtSetValuesFunc set_values; /* set subclass resource values */
+ XtArgsFunc set_values_hook; /* notify that set_values called */
+ XtAlmostProc set_values_almost; /* set values almost for geometry */
+ XtArgsProc get_values_hook; /* notify that get_values called */
+ XtProc rect9; /* NULL */
+ XtVersionType version; /* version of intrinsics used */
+ XtPointer callback_private; /* list of callback offsets */
+ String rect10; /* NULL */
+ XtGeometryHandler query_geometry; /* return preferred geometry */
+ XtProc rect11; /* NULL */
+ XtPointer extension; /* pointer to extension record */
+} RectObjClassPart;
+
+typedef struct _RectObjClassRec {
+ RectObjClassPart rect_class;
+} RectObjClassRec;
+
+externalref RectObjClassRec rectObjClassRec;
+
+_XFUNCPROTOEND
+
+#endif /*_Xt_RectObjP_h_*/
diff --git a/X11/ResConfigP.h b/X11/ResConfigP.h
new file mode 100644
index 000000000..ed367a792
--- /dev/null
+++ b/X11/ResConfigP.h
@@ -0,0 +1,76 @@
+/*
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+/*****************************************************************
+
+(C) COPYRIGHT International Business Machines Corp. 1992,1997
+ 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 the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+THE IBM CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
+BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL 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.
+
+Except as contained in this notice, the name of the IBM Corporation shall
+not be used in advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization from the IBM
+Corporation.
+
+******************************************************************/
+
+#ifndef _RESCONFIGP_H
+#define _RESCONFIGP_H
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+/*
+ * Atom names for resource configuration management customization tool.
+ */
+#define RCM_DATA "Custom Data"
+#define RCM_INIT "Custom Init"
+
+extern void _XtResourceConfigurationEH(
+ Widget /* w */,
+ XtPointer /* client_data */,
+ XEvent * /* event */
+);
+
+_XFUNCPROTOEND
+
+#endif
diff --git a/X11/ResourceI.h b/X11/ResourceI.h
new file mode 100644
index 000000000..578a835cf
--- /dev/null
+++ b/X11/ResourceI.h
@@ -0,0 +1,100 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+/****************************************************************
+ *
+ * Resources
+ *
+ ****************************************************************/
+
+#ifndef _XtresourceI_h
+#define _XtresourceI_h
+
+#define StringToQuark(string) XrmStringToQuark(string)
+#define StringToName(string) XrmStringToName(string)
+#define StringToClass(string) XrmStringToClass(string)
+
+_XFUNCPROTOBEGIN
+
+extern void _XtDependencies(
+ XtResourceList * /* class_resp */,
+ Cardinal * /* class_num_resp */,
+ XrmResourceList * /* super_res */,
+ Cardinal /* super_num_res */,
+ Cardinal /* super_widget_size */);
+
+extern void _XtResourceDependencies(
+ WidgetClass /* wc */
+);
+
+extern void _XtConstraintResDependencies(
+ ConstraintWidgetClass /* wc */
+);
+
+extern XtCacheRef* _XtGetResources(
+ Widget /* w */,
+ ArgList /* args */,
+ Cardinal /* num_args */,
+ XtTypedArgList /* typed_args */,
+ Cardinal* /* num_typed_args */
+);
+
+extern void _XtCopyFromParent(
+ Widget /* widget */,
+ int /* offset */,
+ XrmValue* /* value */
+);
+
+extern void _XtCopyToArg(char *src, XtArgVal *dst, unsigned int size);
+extern void _XtCopyFromArg(XtArgVal src, char *dst, unsigned int size);
+extern XrmResourceList* _XtCreateIndirectionTable(XtResourceList resources,
+ Cardinal num_resources);
+extern void _XtResourceListInitialize(void);
+
+_XFUNCPROTOEND
+
+#endif /* _XtresourceI_h */
diff --git a/X11/SelectionI.h b/X11/SelectionI.h
new file mode 100644
index 000000000..ee819ddb3
--- /dev/null
+++ b/X11/SelectionI.h
@@ -0,0 +1,168 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XtselectionI_h
+#define _XtselectionI_h
+
+#include "Intrinsic.h"
+
+typedef struct _RequestRec *Request;
+typedef struct _SelectRec *Select;
+
+typedef struct _RequestRec {
+ Select ctx; /* logical owner */
+ Widget widget; /* widget actually receiving Selection events */
+ Window requestor;
+ Atom property;
+ Atom target;
+ Atom type;
+ int format;
+ XtPointer value;
+ unsigned long bytelength;
+ unsigned long offset;
+ XtIntervalId timeout;
+ XSelectionRequestEvent event; /* for XtGetSelectionRequest */
+ Boolean allSent;
+} RequestRec;
+
+typedef struct {
+ Atom prop;
+ Boolean avail;
+} SelectionPropRec, *SelectionProp;
+
+typedef struct {
+ Display *dpy;
+ Atom incr_atom, indirect_atom, timestamp_atom;
+ int propCount;
+ SelectionProp list;
+} PropListRec, *PropList;
+
+typedef struct _SelectRec {
+ Atom selection; /* constant */
+ Display *dpy; /* constant */
+ Widget widget;
+ Time time;
+ unsigned long serial;
+ XtConvertSelectionProc convert;
+ XtLoseSelectionProc loses;
+ XtSelectionDoneProc notify;
+ XtCancelConvertSelectionProc owner_cancel;
+ XtPointer owner_closure;
+ PropList prop_list;
+ Request req; /* state for local non-incr xfer */
+ int ref_count; /* of active transfers */
+ unsigned int incremental:1;
+ unsigned int free_when_done:1;
+ unsigned int was_disowned:1;
+} SelectRec;
+
+typedef struct _ParamRec {
+ Atom selection;
+ Atom param;
+} ParamRec, *Param;
+
+typedef struct _ParamInfoRec {
+ unsigned int count;
+ Param paramlist;
+} ParamInfoRec, *ParamInfo;
+
+typedef struct _QueuedRequestRec {
+ Atom selection;
+ Atom target;
+ Atom param;
+ XtSelectionCallbackProc callback;
+ XtPointer closure;
+ Time time;
+ Boolean incremental;
+} QueuedRequestRec, *QueuedRequest;
+
+typedef struct _QueuedRequestInfoRec {
+ int count;
+ Atom *selections;
+ QueuedRequest *requests;
+} QueuedRequestInfoRec, *QueuedRequestInfo;
+
+typedef struct {
+ XtSelectionCallbackProc *callbacks;
+ XtPointer *req_closure;
+ Atom property;
+ Atom *target;
+ Atom type;
+ int format;
+ char *value;
+ int bytelength;
+ int offset;
+ XtIntervalId timeout;
+ XtEventHandler proc;
+ Widget widget;
+ Time time;
+ Select ctx;
+ Boolean *incremental;
+ int current;
+} CallBackInfoRec, *CallBackInfo;
+
+typedef struct {
+ Atom target;
+ Atom property;
+} IndirectPair;
+
+#define IndirectPairWordSize 2
+
+typedef struct {
+ int active_transfer_count;
+} RequestWindowRec;
+
+#define MAX_SELECTION_INCR(dpy) (((65536 < XMaxRequestSize(dpy)) ? \
+ (65536 << 2) : (XMaxRequestSize(dpy) << 2))-100)
+
+#define MATCH_SELECT(event, info) ((event->time == info->time) && \
+ (event->requestor == XtWindow(info->widget)) && \
+ (event->selection == info->ctx->selection) && \
+ (event->target == *info->target))
+
+#endif /* _XtselectionI_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/Shell.h b/X11/Shell.h
new file mode 100644
index 000000000..129ac3953
--- /dev/null
+++ b/X11/Shell.h
@@ -0,0 +1,564 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XtShell_h
+#define _XtShell_h
+
+#ifndef XT_NO_SM
+#include <X11/SM/SMlib.h>
+#endif
+#include <X11/Intrinsic.h>
+
+/***********************************************************************
+ *
+ * Shell Widget
+ *
+ ***********************************************************************/
+/*
+ * Shell-specific resources names, classes, and a representation type.
+ */
+
+#ifndef XTSTRINGDEFINES
+#define _XtShell_h_Const const
+#endif
+
+/* $Xorg: makestrs.c,v 1.6 2001/02/09 02:03:17 xorgcvs Exp $ */
+/* This file is automatically generated. */
+/* Default ABI version -- Do not edit */
+#ifdef XTSTRINGDEFINES
+#define XtNiconName "iconName"
+#define XtCIconName "IconName"
+#define XtNiconPixmap "iconPixmap"
+#define XtCIconPixmap "IconPixmap"
+#define XtNiconWindow "iconWindow"
+#define XtCIconWindow "IconWindow"
+#define XtNiconMask "iconMask"
+#define XtCIconMask "IconMask"
+#define XtNwindowGroup "windowGroup"
+#define XtCWindowGroup "WindowGroup"
+#define XtNvisual "visual"
+#define XtCVisual "Visual"
+#define XtNtitleEncoding "titleEncoding"
+#define XtCTitleEncoding "TitleEncoding"
+#define XtNsaveUnder "saveUnder"
+#define XtCSaveUnder "SaveUnder"
+#define XtNtransient "transient"
+#define XtCTransient "Transient"
+#define XtNoverrideRedirect "overrideRedirect"
+#define XtCOverrideRedirect "OverrideRedirect"
+#define XtNtransientFor "transientFor"
+#define XtCTransientFor "TransientFor"
+#define XtNiconNameEncoding "iconNameEncoding"
+#define XtCIconNameEncoding "IconNameEncoding"
+#define XtNallowShellResize "allowShellResize"
+#define XtCAllowShellResize "AllowShellResize"
+#define XtNcreatePopupChildProc "createPopupChildProc"
+#define XtCCreatePopupChildProc "CreatePopupChildProc"
+#define XtNtitle "title"
+#define XtCTitle "Title"
+#ifndef XtRAtom
+#define XtRAtom "Atom"
+#endif
+#define XtNargc "argc"
+#define XtCArgc "Argc"
+#define XtNargv "argv"
+#define XtCArgv "Argv"
+#define XtNiconX "iconX"
+#define XtCIconX "IconX"
+#define XtNiconY "iconY"
+#define XtCIconY "IconY"
+#define XtNinput "input"
+#define XtCInput "Input"
+#define XtNiconic "iconic"
+#define XtCIconic "Iconic"
+#define XtNinitialState "initialState"
+#define XtCInitialState "InitialState"
+#define XtNgeometry "geometry"
+#define XtCGeometry "Geometry"
+#define XtNbaseWidth "baseWidth"
+#define XtCBaseWidth "BaseWidth"
+#define XtNbaseHeight "baseHeight"
+#define XtCBaseHeight "BaseHeight"
+#define XtNwinGravity "winGravity"
+#define XtCWinGravity "WinGravity"
+#define XtNminWidth "minWidth"
+#define XtCMinWidth "MinWidth"
+#define XtNminHeight "minHeight"
+#define XtCMinHeight "MinHeight"
+#define XtNmaxWidth "maxWidth"
+#define XtCMaxWidth "MaxWidth"
+#define XtNmaxHeight "maxHeight"
+#define XtCMaxHeight "MaxHeight"
+#define XtNwidthInc "widthInc"
+#define XtCWidthInc "WidthInc"
+#define XtNheightInc "heightInc"
+#define XtCHeightInc "HeightInc"
+#define XtNminAspectY "minAspectY"
+#define XtCMinAspectY "MinAspectY"
+#define XtNmaxAspectY "maxAspectY"
+#define XtCMaxAspectY "MaxAspectY"
+#define XtNminAspectX "minAspectX"
+#define XtCMinAspectX "MinAspectX"
+#define XtNmaxAspectX "maxAspectX"
+#define XtCMaxAspectX "MaxAspectX"
+#define XtNwmTimeout "wmTimeout"
+#define XtCWmTimeout "WmTimeout"
+#define XtNwaitForWm "waitforwm"
+#define XtCWaitForWm "Waitforwm"
+#define XtNwaitforwm "waitforwm"
+#define XtCWaitforwm "Waitforwm"
+#define XtNclientLeader "clientLeader"
+#define XtCClientLeader "ClientLeader"
+#define XtNwindowRole "windowRole"
+#define XtCWindowRole "WindowRole"
+#define XtNurgency "urgency"
+#define XtCUrgency "Urgency"
+#define XtNcancelCallback "cancelCallback"
+#define XtNcloneCommand "cloneCommand"
+#define XtCCloneCommand "CloneCommand"
+#define XtNconnection "connection"
+#define XtCConnection "Connection"
+#define XtNcurrentDirectory "currentDirectory"
+#define XtCCurrentDirectory "CurrentDirectory"
+#define XtNdieCallback "dieCallback"
+#define XtNdiscardCommand "discardCommand"
+#define XtCDiscardCommand "DiscardCommand"
+#define XtNenvironment "environment"
+#define XtCEnvironment "Environment"
+#define XtNinteractCallback "interactCallback"
+#define XtNjoinSession "joinSession"
+#define XtCJoinSession "JoinSession"
+#define XtNprogramPath "programPath"
+#define XtCProgramPath "ProgramPath"
+#define XtNresignCommand "resignCommand"
+#define XtCResignCommand "ResignCommand"
+#define XtNrestartCommand "restartCommand"
+#define XtCRestartCommand "RestartCommand"
+#define XtNrestartStyle "restartStyle"
+#define XtCRestartStyle "RestartStyle"
+#define XtNsaveCallback "saveCallback"
+#define XtNsaveCompleteCallback "saveCompleteCallback"
+#define XtNsessionID "sessionID"
+#define XtCSessionID "SessionID"
+#define XtNshutdownCommand "shutdownCommand"
+#define XtCShutdownCommand "ShutdownCommand"
+#define XtNerrorCallback "errorCallback"
+#else
+extern _XtShell_h_Const char XtShellStrings[];
+#ifndef XtNiconName
+#define XtNiconName ((char*)&XtShellStrings[0])
+#endif
+#ifndef XtCIconName
+#define XtCIconName ((char*)&XtShellStrings[9])
+#endif
+#ifndef XtNiconPixmap
+#define XtNiconPixmap ((char*)&XtShellStrings[18])
+#endif
+#ifndef XtCIconPixmap
+#define XtCIconPixmap ((char*)&XtShellStrings[29])
+#endif
+#ifndef XtNiconWindow
+#define XtNiconWindow ((char*)&XtShellStrings[40])
+#endif
+#ifndef XtCIconWindow
+#define XtCIconWindow ((char*)&XtShellStrings[51])
+#endif
+#ifndef XtNiconMask
+#define XtNiconMask ((char*)&XtShellStrings[62])
+#endif
+#ifndef XtCIconMask
+#define XtCIconMask ((char*)&XtShellStrings[71])
+#endif
+#ifndef XtNwindowGroup
+#define XtNwindowGroup ((char*)&XtShellStrings[80])
+#endif
+#ifndef XtCWindowGroup
+#define XtCWindowGroup ((char*)&XtShellStrings[92])
+#endif
+#ifndef XtNvisual
+#define XtNvisual ((char*)&XtShellStrings[104])
+#endif
+#ifndef XtCVisual
+#define XtCVisual ((char*)&XtShellStrings[111])
+#endif
+#ifndef XtNtitleEncoding
+#define XtNtitleEncoding ((char*)&XtShellStrings[118])
+#endif
+#ifndef XtCTitleEncoding
+#define XtCTitleEncoding ((char*)&XtShellStrings[132])
+#endif
+#ifndef XtNsaveUnder
+#define XtNsaveUnder ((char*)&XtShellStrings[146])
+#endif
+#ifndef XtCSaveUnder
+#define XtCSaveUnder ((char*)&XtShellStrings[156])
+#endif
+#ifndef XtNtransient
+#define XtNtransient ((char*)&XtShellStrings[166])
+#endif
+#ifndef XtCTransient
+#define XtCTransient ((char*)&XtShellStrings[176])
+#endif
+#ifndef XtNoverrideRedirect
+#define XtNoverrideRedirect ((char*)&XtShellStrings[186])
+#endif
+#ifndef XtCOverrideRedirect
+#define XtCOverrideRedirect ((char*)&XtShellStrings[203])
+#endif
+#ifndef XtNtransientFor
+#define XtNtransientFor ((char*)&XtShellStrings[220])
+#endif
+#ifndef XtCTransientFor
+#define XtCTransientFor ((char*)&XtShellStrings[233])
+#endif
+#ifndef XtNiconNameEncoding
+#define XtNiconNameEncoding ((char*)&XtShellStrings[246])
+#endif
+#ifndef XtCIconNameEncoding
+#define XtCIconNameEncoding ((char*)&XtShellStrings[263])
+#endif
+#ifndef XtNallowShellResize
+#define XtNallowShellResize ((char*)&XtShellStrings[280])
+#endif
+#ifndef XtCAllowShellResize
+#define XtCAllowShellResize ((char*)&XtShellStrings[297])
+#endif
+#ifndef XtNcreatePopupChildProc
+#define XtNcreatePopupChildProc ((char*)&XtShellStrings[314])
+#endif
+#ifndef XtCCreatePopupChildProc
+#define XtCCreatePopupChildProc ((char*)&XtShellStrings[335])
+#endif
+#ifndef XtNtitle
+#define XtNtitle ((char*)&XtShellStrings[356])
+#endif
+#ifndef XtCTitle
+#define XtCTitle ((char*)&XtShellStrings[362])
+#endif
+#ifndef XtRAtom
+#define XtRAtom ((char*)&XtShellStrings[368])
+#endif
+#ifndef XtNargc
+#define XtNargc ((char*)&XtShellStrings[373])
+#endif
+#ifndef XtCArgc
+#define XtCArgc ((char*)&XtShellStrings[378])
+#endif
+#ifndef XtNargv
+#define XtNargv ((char*)&XtShellStrings[383])
+#endif
+#ifndef XtCArgv
+#define XtCArgv ((char*)&XtShellStrings[388])
+#endif
+#ifndef XtNiconX
+#define XtNiconX ((char*)&XtShellStrings[393])
+#endif
+#ifndef XtCIconX
+#define XtCIconX ((char*)&XtShellStrings[399])
+#endif
+#ifndef XtNiconY
+#define XtNiconY ((char*)&XtShellStrings[405])
+#endif
+#ifndef XtCIconY
+#define XtCIconY ((char*)&XtShellStrings[411])
+#endif
+#ifndef XtNinput
+#define XtNinput ((char*)&XtShellStrings[417])
+#endif
+#ifndef XtCInput
+#define XtCInput ((char*)&XtShellStrings[423])
+#endif
+#ifndef XtNiconic
+#define XtNiconic ((char*)&XtShellStrings[429])
+#endif
+#ifndef XtCIconic
+#define XtCIconic ((char*)&XtShellStrings[436])
+#endif
+#ifndef XtNinitialState
+#define XtNinitialState ((char*)&XtShellStrings[443])
+#endif
+#ifndef XtCInitialState
+#define XtCInitialState ((char*)&XtShellStrings[456])
+#endif
+#ifndef XtNgeometry
+#define XtNgeometry ((char*)&XtShellStrings[469])
+#endif
+#ifndef XtCGeometry
+#define XtCGeometry ((char*)&XtShellStrings[478])
+#endif
+#ifndef XtNbaseWidth
+#define XtNbaseWidth ((char*)&XtShellStrings[487])
+#endif
+#ifndef XtCBaseWidth
+#define XtCBaseWidth ((char*)&XtShellStrings[497])
+#endif
+#ifndef XtNbaseHeight
+#define XtNbaseHeight ((char*)&XtShellStrings[507])
+#endif
+#ifndef XtCBaseHeight
+#define XtCBaseHeight ((char*)&XtShellStrings[518])
+#endif
+#ifndef XtNwinGravity
+#define XtNwinGravity ((char*)&XtShellStrings[529])
+#endif
+#ifndef XtCWinGravity
+#define XtCWinGravity ((char*)&XtShellStrings[540])
+#endif
+#ifndef XtNminWidth
+#define XtNminWidth ((char*)&XtShellStrings[551])
+#endif
+#ifndef XtCMinWidth
+#define XtCMinWidth ((char*)&XtShellStrings[560])
+#endif
+#ifndef XtNminHeight
+#define XtNminHeight ((char*)&XtShellStrings[569])
+#endif
+#ifndef XtCMinHeight
+#define XtCMinHeight ((char*)&XtShellStrings[579])
+#endif
+#ifndef XtNmaxWidth
+#define XtNmaxWidth ((char*)&XtShellStrings[589])
+#endif
+#ifndef XtCMaxWidth
+#define XtCMaxWidth ((char*)&XtShellStrings[598])
+#endif
+#ifndef XtNmaxHeight
+#define XtNmaxHeight ((char*)&XtShellStrings[607])
+#endif
+#ifndef XtCMaxHeight
+#define XtCMaxHeight ((char*)&XtShellStrings[617])
+#endif
+#ifndef XtNwidthInc
+#define XtNwidthInc ((char*)&XtShellStrings[627])
+#endif
+#ifndef XtCWidthInc
+#define XtCWidthInc ((char*)&XtShellStrings[636])
+#endif
+#ifndef XtNheightInc
+#define XtNheightInc ((char*)&XtShellStrings[645])
+#endif
+#ifndef XtCHeightInc
+#define XtCHeightInc ((char*)&XtShellStrings[655])
+#endif
+#ifndef XtNminAspectY
+#define XtNminAspectY ((char*)&XtShellStrings[665])
+#endif
+#ifndef XtCMinAspectY
+#define XtCMinAspectY ((char*)&XtShellStrings[676])
+#endif
+#ifndef XtNmaxAspectY
+#define XtNmaxAspectY ((char*)&XtShellStrings[687])
+#endif
+#ifndef XtCMaxAspectY
+#define XtCMaxAspectY ((char*)&XtShellStrings[698])
+#endif
+#ifndef XtNminAspectX
+#define XtNminAspectX ((char*)&XtShellStrings[709])
+#endif
+#ifndef XtCMinAspectX
+#define XtCMinAspectX ((char*)&XtShellStrings[720])
+#endif
+#ifndef XtNmaxAspectX
+#define XtNmaxAspectX ((char*)&XtShellStrings[731])
+#endif
+#ifndef XtCMaxAspectX
+#define XtCMaxAspectX ((char*)&XtShellStrings[742])
+#endif
+#ifndef XtNwmTimeout
+#define XtNwmTimeout ((char*)&XtShellStrings[753])
+#endif
+#ifndef XtCWmTimeout
+#define XtCWmTimeout ((char*)&XtShellStrings[763])
+#endif
+#ifndef XtNwaitForWm
+#define XtNwaitForWm ((char*)&XtShellStrings[773])
+#endif
+#ifndef XtCWaitForWm
+#define XtCWaitForWm ((char*)&XtShellStrings[783])
+#endif
+#ifndef XtNwaitforwm
+#define XtNwaitforwm ((char*)&XtShellStrings[793])
+#endif
+#ifndef XtCWaitforwm
+#define XtCWaitforwm ((char*)&XtShellStrings[803])
+#endif
+#ifndef XtNclientLeader
+#define XtNclientLeader ((char*)&XtShellStrings[813])
+#endif
+#ifndef XtCClientLeader
+#define XtCClientLeader ((char*)&XtShellStrings[826])
+#endif
+#ifndef XtNwindowRole
+#define XtNwindowRole ((char*)&XtShellStrings[839])
+#endif
+#ifndef XtCWindowRole
+#define XtCWindowRole ((char*)&XtShellStrings[850])
+#endif
+#ifndef XtNurgency
+#define XtNurgency ((char*)&XtShellStrings[861])
+#endif
+#ifndef XtCUrgency
+#define XtCUrgency ((char*)&XtShellStrings[869])
+#endif
+#ifndef XtNcancelCallback
+#define XtNcancelCallback ((char*)&XtShellStrings[877])
+#endif
+#ifndef XtNcloneCommand
+#define XtNcloneCommand ((char*)&XtShellStrings[892])
+#endif
+#ifndef XtCCloneCommand
+#define XtCCloneCommand ((char*)&XtShellStrings[905])
+#endif
+#ifndef XtNconnection
+#define XtNconnection ((char*)&XtShellStrings[918])
+#endif
+#ifndef XtCConnection
+#define XtCConnection ((char*)&XtShellStrings[929])
+#endif
+#ifndef XtNcurrentDirectory
+#define XtNcurrentDirectory ((char*)&XtShellStrings[940])
+#endif
+#ifndef XtCCurrentDirectory
+#define XtCCurrentDirectory ((char*)&XtShellStrings[957])
+#endif
+#ifndef XtNdieCallback
+#define XtNdieCallback ((char*)&XtShellStrings[974])
+#endif
+#ifndef XtNdiscardCommand
+#define XtNdiscardCommand ((char*)&XtShellStrings[986])
+#endif
+#ifndef XtCDiscardCommand
+#define XtCDiscardCommand ((char*)&XtShellStrings[1001])
+#endif
+#ifndef XtNenvironment
+#define XtNenvironment ((char*)&XtShellStrings[1016])
+#endif
+#ifndef XtCEnvironment
+#define XtCEnvironment ((char*)&XtShellStrings[1028])
+#endif
+#ifndef XtNinteractCallback
+#define XtNinteractCallback ((char*)&XtShellStrings[1040])
+#endif
+#ifndef XtNjoinSession
+#define XtNjoinSession ((char*)&XtShellStrings[1057])
+#endif
+#ifndef XtCJoinSession
+#define XtCJoinSession ((char*)&XtShellStrings[1069])
+#endif
+#ifndef XtNprogramPath
+#define XtNprogramPath ((char*)&XtShellStrings[1081])
+#endif
+#ifndef XtCProgramPath
+#define XtCProgramPath ((char*)&XtShellStrings[1093])
+#endif
+#ifndef XtNresignCommand
+#define XtNresignCommand ((char*)&XtShellStrings[1105])
+#endif
+#ifndef XtCResignCommand
+#define XtCResignCommand ((char*)&XtShellStrings[1119])
+#endif
+#ifndef XtNrestartCommand
+#define XtNrestartCommand ((char*)&XtShellStrings[1133])
+#endif
+#ifndef XtCRestartCommand
+#define XtCRestartCommand ((char*)&XtShellStrings[1148])
+#endif
+#ifndef XtNrestartStyle
+#define XtNrestartStyle ((char*)&XtShellStrings[1163])
+#endif
+#ifndef XtCRestartStyle
+#define XtCRestartStyle ((char*)&XtShellStrings[1176])
+#endif
+#ifndef XtNsaveCallback
+#define XtNsaveCallback ((char*)&XtShellStrings[1189])
+#endif
+#ifndef XtNsaveCompleteCallback
+#define XtNsaveCompleteCallback ((char*)&XtShellStrings[1202])
+#endif
+#ifndef XtNsessionID
+#define XtNsessionID ((char*)&XtShellStrings[1223])
+#endif
+#ifndef XtCSessionID
+#define XtCSessionID ((char*)&XtShellStrings[1233])
+#endif
+#ifndef XtNshutdownCommand
+#define XtNshutdownCommand ((char*)&XtShellStrings[1243])
+#endif
+#ifndef XtCShutdownCommand
+#define XtCShutdownCommand ((char*)&XtShellStrings[1259])
+#endif
+#ifndef XtNerrorCallback
+#define XtNerrorCallback ((char*)&XtShellStrings[1275])
+#endif
+#endif /* XTSTRINGDEFINES */
+
+#ifndef XTSTRINGDEFINES
+#undef _XtShell_h_Const
+#endif
+
+/* Class record constants */
+
+typedef struct _ShellClassRec *ShellWidgetClass;
+typedef struct _OverrideShellClassRec *OverrideShellWidgetClass;
+typedef struct _WMShellClassRec *WMShellWidgetClass;
+typedef struct _TransientShellClassRec *TransientShellWidgetClass;
+typedef struct _TopLevelShellClassRec *TopLevelShellWidgetClass;
+typedef struct _ApplicationShellClassRec *ApplicationShellWidgetClass;
+typedef struct _SessionShellClassRec *SessionShellWidgetClass;
+
+#ifndef SHELL
+externalref WidgetClass shellWidgetClass;
+externalref WidgetClass overrideShellWidgetClass;
+externalref WidgetClass wmShellWidgetClass;
+externalref WidgetClass transientShellWidgetClass;
+externalref WidgetClass topLevelShellWidgetClass;
+externalref WidgetClass applicationShellWidgetClass;
+externalref WidgetClass sessionShellWidgetClass;
+#endif
+
+#endif /* _XtShell_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/ShellI.h b/X11/ShellI.h
new file mode 100644
index 000000000..34db03648
--- /dev/null
+++ b/X11/ShellI.h
@@ -0,0 +1,10 @@
+#ifndef _XtShellInternal_h
+#define _XtShellInternal_h
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+extern void _XtShellGetCoordinates(Widget widget, Position *x, Position *y);
+
+#endif /* _XtShellInternal_h */
diff --git a/X11/ShellP.h b/X11/ShellP.h
new file mode 100644
index 000000000..ce7ae3785
--- /dev/null
+++ b/X11/ShellP.h
@@ -0,0 +1,436 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+/*
+ * ShellP.h - Private definitions for Shell widget
+ *
+ * Author: Paul Asente
+ * Digital Equipment Corporation
+ * Western Software Laboratory
+ * Date: Thu Dec 3, 1987
+ */
+
+#ifndef _XtShellPrivate_h
+#define _XtShellPrivate_h
+
+#include <X11/Shell.h>
+
+/* *****
+ * ***** VendorP.h is included later on; it needs fields defined in the first
+ * ***** part of this header file
+ * *****
+ */
+
+_XFUNCPROTOBEGIN
+
+/***********************************************************************
+ *
+ * Shell Widget Private Data
+ *
+ ***********************************************************************/
+
+/* New fields for the Shell widget class record */
+
+typedef struct {
+ XtPointer extension; /* pointer to extension record */
+} ShellClassPart;
+
+typedef struct {
+ XtPointer next_extension; /* 1st 4 mandated for all extension records */
+ XrmQuark record_type; /* NULLQUARK; on ShellClassPart */
+ long version; /* must be XtShellExtensionVersion */
+ Cardinal record_size; /* sizeof(ShellClassExtensionRec) */
+ XtGeometryHandler root_geometry_manager;
+} ShellClassExtensionRec, *ShellClassExtension;
+
+#define XtShellExtensionVersion 1L
+#define XtInheritRootGeometryManager ((XtGeometryHandler)_XtInherit)
+
+typedef struct _ShellClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ShellClassPart shell_class;
+} ShellClassRec;
+
+externalref ShellClassRec shellClassRec;
+
+/* New fields for the shell widget */
+
+typedef struct {
+ char *geometry;
+ XtCreatePopupChildProc create_popup_child_proc;
+ XtGrabKind grab_kind;
+ Boolean spring_loaded;
+ Boolean popped_up;
+ Boolean allow_shell_resize;
+ Boolean client_specified; /* re-using old name */
+#define _XtShellPositionValid ((Boolean)(1<<0))
+#define _XtShellNotReparented ((Boolean)(1<<1))
+#define _XtShellPPositionOK ((Boolean)(1<<2))
+#define _XtShellGeometryParsed ((Boolean)(1<<3))
+ Boolean save_under;
+ Boolean override_redirect;
+
+ XtCallbackList popup_callback;
+ XtCallbackList popdown_callback;
+ Visual* visual;
+} ShellPart;
+
+typedef struct {
+ CorePart core;
+ CompositePart composite;
+ ShellPart shell;
+} ShellRec, *ShellWidget;
+
+/***********************************************************************
+ *
+ * OverrideShell Widget Private Data
+ *
+ ***********************************************************************/
+
+/* New fields for the OverrideShell widget class record */
+
+typedef struct {
+ XtPointer extension; /* pointer to extension record */
+} OverrideShellClassPart;
+
+typedef struct _OverrideShellClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ShellClassPart shell_class;
+ OverrideShellClassPart override_shell_class;
+} OverrideShellClassRec;
+
+externalref OverrideShellClassRec overrideShellClassRec;
+
+/* No new fields for the override shell widget */
+
+typedef struct {int frabjous;} OverrideShellPart;
+
+typedef struct {
+ CorePart core;
+ CompositePart composite;
+ ShellPart shell;
+ OverrideShellPart override;
+} OverrideShellRec, *OverrideShellWidget;
+
+/***********************************************************************
+ *
+ * WMShell Widget Private Data
+ *
+ ***********************************************************************/
+
+/* New fields for the WMShell widget class record */
+
+typedef struct {
+ XtPointer extension; /* pointer to extension record */
+} WMShellClassPart;
+
+typedef struct _WMShellClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ShellClassPart shell_class;
+ WMShellClassPart wm_shell_class;
+} WMShellClassRec;
+
+externalref WMShellClassRec wmShellClassRec;
+
+/* New fields for the WM shell widget */
+
+typedef struct {
+ char *title;
+ int wm_timeout;
+ Boolean wait_for_wm;
+ Boolean transient;
+ Boolean urgency;
+ Widget client_leader;
+ String window_role;
+ struct _OldXSizeHints { /* pre-R4 Xlib structure */
+ long flags;
+ int x, y;
+ int width, height;
+ int min_width, min_height;
+ int max_width, max_height;
+ int width_inc, height_inc;
+ struct {
+ int x;
+ int y;
+ } min_aspect, max_aspect;
+ } size_hints;
+ XWMHints wm_hints;
+ int base_width, base_height;
+ int win_gravity;
+ Atom title_encoding;
+} WMShellPart;
+
+typedef struct {
+ CorePart core;
+ CompositePart composite;
+ ShellPart shell;
+ WMShellPart wm;
+} WMShellRec, *WMShellWidget;
+
+_XFUNCPROTOEND
+
+#include <X11/VendorP.h>
+
+_XFUNCPROTOBEGIN
+
+/***********************************************************************
+ *
+ * TransientShell Widget Private Data
+ *
+ ***********************************************************************/
+
+/* New fields for the TransientShell widget class record */
+
+typedef struct {
+ XtPointer extension; /* pointer to extension record */
+} TransientShellClassPart;
+
+typedef struct _TransientShellClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ShellClassPart shell_class;
+ WMShellClassPart wm_shell_class;
+ VendorShellClassPart vendor_shell_class;
+ TransientShellClassPart transient_shell_class;
+} TransientShellClassRec;
+
+externalref TransientShellClassRec transientShellClassRec;
+
+/* New fields for the transient shell widget */
+
+typedef struct {
+ Widget transient_for;
+} TransientShellPart;
+
+typedef struct {
+ CorePart core;
+ CompositePart composite;
+ ShellPart shell;
+ WMShellPart wm;
+ VendorShellPart vendor;
+ TransientShellPart transient;
+} TransientShellRec, *TransientShellWidget;
+
+/***********************************************************************
+ *
+ * TopLevelShell Widget Private Data
+ *
+ ***********************************************************************/
+
+/* New fields for the TopLevelShell widget class record */
+
+typedef struct {
+ XtPointer extension; /* pointer to extension record */
+} TopLevelShellClassPart;
+
+typedef struct _TopLevelShellClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ShellClassPart shell_class;
+ WMShellClassPart wm_shell_class;
+ VendorShellClassPart vendor_shell_class;
+ TopLevelShellClassPart top_level_shell_class;
+} TopLevelShellClassRec;
+
+externalref TopLevelShellClassRec topLevelShellClassRec;
+
+/* New fields for the top level shell widget */
+
+typedef struct {
+ char *icon_name;
+ Boolean iconic;
+ Atom icon_name_encoding;
+} TopLevelShellPart;
+
+typedef struct {
+ CorePart core;
+ CompositePart composite;
+ ShellPart shell;
+ WMShellPart wm;
+ VendorShellPart vendor;
+ TopLevelShellPart topLevel;
+} TopLevelShellRec, *TopLevelShellWidget;
+
+/***********************************************************************
+ *
+ * ApplicationShell Widget Private Data
+ *
+ ***********************************************************************/
+
+/* New fields for the ApplicationShell widget class record */
+
+typedef struct {
+ XtPointer extension; /* pointer to extension record */
+} ApplicationShellClassPart;
+
+typedef struct _ApplicationShellClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ShellClassPart shell_class;
+ WMShellClassPart wm_shell_class;
+ VendorShellClassPart vendor_shell_class;
+ TopLevelShellClassPart top_level_shell_class;
+ ApplicationShellClassPart application_shell_class;
+} ApplicationShellClassRec;
+
+externalref ApplicationShellClassRec applicationShellClassRec;
+
+/* New fields for the application shell widget */
+
+typedef struct {
+#if defined(__cplusplus) || defined(c_plusplus)
+ char *c_class;
+#else
+ char *class;
+#endif
+ XrmClass xrm_class;
+ int argc;
+ char **argv;
+} ApplicationShellPart;
+
+typedef struct {
+ CorePart core;
+ CompositePart composite;
+ ShellPart shell;
+ WMShellPart wm;
+ VendorShellPart vendor;
+ TopLevelShellPart topLevel;
+ ApplicationShellPart application;
+} ApplicationShellRec, *ApplicationShellWidget;
+
+/***********************************************************************
+ *
+ * SessionShell Widget Private Data
+ *
+ ***********************************************************************/
+
+/* New fields for the SessionShell widget class record */
+
+typedef struct {
+ XtPointer extension; /* pointer to extension record */
+} SessionShellClassPart;
+
+typedef struct _SessionShellClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ShellClassPart shell_class;
+ WMShellClassPart wm_shell_class;
+ VendorShellClassPart vendor_shell_class;
+ TopLevelShellClassPart top_level_shell_class;
+ ApplicationShellClassPart application_shell_class;
+ SessionShellClassPart session_shell_class;
+} SessionShellClassRec;
+
+externalref SessionShellClassRec sessionShellClassRec;
+
+typedef struct _XtSaveYourselfRec *XtSaveYourself; /* implementation-private */
+
+/* New fields for the session shell widget */
+
+typedef struct {
+#ifndef XT_NO_SM
+ SmcConn connection;
+#endif
+ String session_id;
+ String* restart_command;
+ String* clone_command;
+ String* discard_command;
+ String* resign_command;
+ String* shutdown_command;
+ String* environment;
+ String current_dir;
+ String program_path;
+ unsigned char restart_style;
+ unsigned char checkpoint_state;
+ Boolean join_session;
+ XtCallbackList save_callbacks;
+ XtCallbackList interact_callbacks;
+ XtCallbackList cancel_callbacks;
+ XtCallbackList save_complete_callbacks;
+ XtCallbackList die_callbacks;
+ XtCallbackList error_callbacks;
+ XtSaveYourself save;
+ XtInputId input_id;
+ XtPointer ses20;
+ XtPointer ses19;
+ XtPointer ses18;
+ XtPointer ses17;
+ XtPointer ses16;
+ XtPointer ses15;
+ XtPointer ses14;
+ XtPointer ses13;
+ XtPointer ses12;
+ XtPointer ses11;
+ XtPointer ses10;
+ XtPointer ses9;
+ XtPointer ses8;
+ XtPointer ses7;
+ XtPointer ses6;
+ XtPointer ses5;
+ XtPointer ses4;
+ XtPointer ses3;
+ XtPointer ses2;
+ XtPointer ses1;
+} SessionShellPart;
+
+typedef struct {
+ CorePart core;
+ CompositePart composite;
+ ShellPart shell;
+ WMShellPart wm;
+ VendorShellPart vendor;
+ TopLevelShellPart topLevel;
+ ApplicationShellPart application;
+ SessionShellPart session;
+} SessionShellRec, *SessionShellWidget;
+
+_XFUNCPROTOEND
+
+#endif /* _XtShellPrivate_h */
diff --git a/X11/StringDefs.h b/X11/StringDefs.h
new file mode 100644
index 000000000..9f6c436e2
--- /dev/null
+++ b/X11/StringDefs.h
@@ -0,0 +1,1085 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XtStringDefs_h_
+#define _XtStringDefs_h_
+
+#ifndef XTSTRINGDEFINES
+#define _XtStringDefs_h_Const const
+#endif
+
+/* $Xorg: makestrs.c,v 1.6 2001/02/09 02:03:17 xorgcvs Exp $ */
+/* This file is automatically generated. */
+/* Default ABI version -- Do not edit */
+#ifdef XTSTRINGDEFINES
+#define XtNaccelerators "accelerators"
+#define XtNallowHoriz "allowHoriz"
+#define XtNallowVert "allowVert"
+#define XtNancestorSensitive "ancestorSensitive"
+#define XtNbackground "background"
+#define XtNbackgroundPixmap "backgroundPixmap"
+#define XtNbitmap "bitmap"
+#define XtNborderColor "borderColor"
+#define XtNborder "borderColor"
+#define XtNborderPixmap "borderPixmap"
+#define XtNborderWidth "borderWidth"
+#define XtNcallback "callback"
+#define XtNchildren "children"
+#define XtNcolormap "colormap"
+#define XtNdepth "depth"
+#define XtNdestroyCallback "destroyCallback"
+#define XtNeditType "editType"
+#define XtNfile "file"
+#define XtNfont "font"
+#define XtNforceBars "forceBars"
+#define XtNforeground "foreground"
+#define XtNfunction "function"
+#define XtNheight "height"
+#define XtNhighlight "highlight"
+#define XtNhSpace "hSpace"
+#define XtNindex "index"
+#define XtNinitialResourcesPersistent "initialResourcesPersistent"
+#define XtNinnerHeight "innerHeight"
+#define XtNinnerWidth "innerWidth"
+#define XtNinnerWindow "innerWindow"
+#define XtNinsertPosition "insertPosition"
+#define XtNinternalHeight "internalHeight"
+#define XtNinternalWidth "internalWidth"
+#define XtNjumpProc "jumpProc"
+#define XtNjustify "justify"
+#define XtNknobHeight "knobHeight"
+#define XtNknobIndent "knobIndent"
+#define XtNknobPixel "knobPixel"
+#define XtNknobWidth "knobWidth"
+#define XtNlabel "label"
+#define XtNlength "length"
+#define XtNlowerRight "lowerRight"
+#define XtNmappedWhenManaged "mappedWhenManaged"
+#define XtNmenuEntry "menuEntry"
+#define XtNname "name"
+#define XtNnotify "notify"
+#define XtNnumChildren "numChildren"
+#define XtNorientation "orientation"
+#define XtNparameter "parameter"
+#define XtNpixmap "pixmap"
+#define XtNpopupCallback "popupCallback"
+#define XtNpopdownCallback "popdownCallback"
+#define XtNresize "resize"
+#define XtNreverseVideo "reverseVideo"
+#define XtNscreen "screen"
+#define XtNscrollProc "scrollProc"
+#define XtNscrollDCursor "scrollDCursor"
+#define XtNscrollHCursor "scrollHCursor"
+#define XtNscrollLCursor "scrollLCursor"
+#define XtNscrollRCursor "scrollRCursor"
+#define XtNscrollUCursor "scrollUCursor"
+#define XtNscrollVCursor "scrollVCursor"
+#define XtNselection "selection"
+#define XtNselectionArray "selectionArray"
+#define XtNsensitive "sensitive"
+#define XtNshown "shown"
+#define XtNspace "space"
+#define XtNstring "string"
+#define XtNtextOptions "textOptions"
+#define XtNtextSink "textSink"
+#define XtNtextSource "textSource"
+#define XtNthickness "thickness"
+#define XtNthumb "thumb"
+#define XtNthumbProc "thumbProc"
+#define XtNtop "top"
+#define XtNtranslations "translations"
+#define XtNunrealizeCallback "unrealizeCallback"
+#define XtNupdate "update"
+#define XtNuseBottom "useBottom"
+#define XtNuseRight "useRight"
+#define XtNvalue "value"
+#define XtNvSpace "vSpace"
+#define XtNwidth "width"
+#define XtNwindow "window"
+#define XtNx "x"
+#define XtNy "y"
+#define XtCAccelerators "Accelerators"
+#define XtCBackground "Background"
+#define XtCBitmap "Bitmap"
+#define XtCBoolean "Boolean"
+#define XtCBorderColor "BorderColor"
+#define XtCBorderWidth "BorderWidth"
+#define XtCCallback "Callback"
+#define XtCColormap "Colormap"
+#define XtCColor "Color"
+#define XtCCursor "Cursor"
+#define XtCDepth "Depth"
+#define XtCEditType "EditType"
+#define XtCEventBindings "EventBindings"
+#define XtCFile "File"
+#define XtCFont "Font"
+#define XtCForeground "Foreground"
+#define XtCFraction "Fraction"
+#define XtCFunction "Function"
+#define XtCHeight "Height"
+#define XtCHSpace "HSpace"
+#define XtCIndex "Index"
+#define XtCInitialResourcesPersistent "InitialResourcesPersistent"
+#define XtCInsertPosition "InsertPosition"
+#define XtCInterval "Interval"
+#define XtCJustify "Justify"
+#define XtCKnobIndent "KnobIndent"
+#define XtCKnobPixel "KnobPixel"
+#define XtCLabel "Label"
+#define XtCLength "Length"
+#define XtCMappedWhenManaged "MappedWhenManaged"
+#define XtCMargin "Margin"
+#define XtCMenuEntry "MenuEntry"
+#define XtCNotify "Notify"
+#define XtCOrientation "Orientation"
+#define XtCParameter "Parameter"
+#define XtCPixmap "Pixmap"
+#define XtCPosition "Position"
+#define XtCReadOnly "ReadOnly"
+#define XtCResize "Resize"
+#define XtCReverseVideo "ReverseVideo"
+#define XtCScreen "Screen"
+#define XtCScrollProc "ScrollProc"
+#define XtCScrollDCursor "ScrollDCursor"
+#define XtCScrollHCursor "ScrollHCursor"
+#define XtCScrollLCursor "ScrollLCursor"
+#define XtCScrollRCursor "ScrollRCursor"
+#define XtCScrollUCursor "ScrollUCursor"
+#define XtCScrollVCursor "ScrollVCursor"
+#define XtCSelection "Selection"
+#define XtCSensitive "Sensitive"
+#define XtCSelectionArray "SelectionArray"
+#define XtCSpace "Space"
+#define XtCString "String"
+#define XtCTextOptions "TextOptions"
+#define XtCTextPosition "TextPosition"
+#define XtCTextSink "TextSink"
+#define XtCTextSource "TextSource"
+#define XtCThickness "Thickness"
+#define XtCThumb "Thumb"
+#define XtCTranslations "Translations"
+#define XtCValue "Value"
+#define XtCVSpace "VSpace"
+#define XtCWidth "Width"
+#define XtCWindow "Window"
+#define XtCX "X"
+#define XtCY "Y"
+#define XtRAcceleratorTable "AcceleratorTable"
+#ifndef XtRAtom
+#define XtRAtom "Atom"
+#endif
+#define XtRBitmap "Bitmap"
+#define XtRBool "Bool"
+#define XtRBoolean "Boolean"
+#define XtRCallback "Callback"
+#define XtRCallProc "CallProc"
+#define XtRCardinal "Cardinal"
+#define XtRColor "Color"
+#define XtRColormap "Colormap"
+#define XtRCursor "Cursor"
+#define XtRDimension "Dimension"
+#define XtRDisplay "Display"
+#define XtREditMode "EditMode"
+#define XtREnum "Enum"
+#define XtRFile "File"
+#define XtRFloat "Float"
+#define XtRFont "Font"
+#define XtRFontStruct "FontStruct"
+#define XtRFunction "Function"
+#define XtRGeometry "Geometry"
+#define XtRImmediate "Immediate"
+#define XtRInitialState "InitialState"
+#define XtRInt "Int"
+#define XtRJustify "Justify"
+#define XtRLongBoolean "Bool"
+#define XtRObject "Object"
+#define XtROrientation "Orientation"
+#define XtRPixel "Pixel"
+#define XtRPixmap "Pixmap"
+#define XtRPointer "Pointer"
+#define XtRPosition "Position"
+#define XtRScreen "Screen"
+#define XtRShort "Short"
+#define XtRString "String"
+#define XtRStringArray "StringArray"
+#define XtRStringTable "StringTable"
+#define XtRUnsignedChar "UnsignedChar"
+#define XtRTranslationTable "TranslationTable"
+#define XtRVisual "Visual"
+#define XtRWidget "Widget"
+#define XtRWidgetClass "WidgetClass"
+#define XtRWidgetList "WidgetList"
+#define XtRWindow "Window"
+#define XtEoff "off"
+#define XtEfalse "false"
+#define XtEno "no"
+#define XtEon "on"
+#define XtEtrue "true"
+#define XtEyes "yes"
+#define XtEvertical "vertical"
+#define XtEhorizontal "horizontal"
+#define XtEtextRead "read"
+#define XtEtextAppend "append"
+#define XtEtextEdit "edit"
+#define XtExtdefaultbackground "xtdefaultbackground"
+#define XtExtdefaultforeground "xtdefaultforeground"
+#define XtExtdefaultfont "xtdefaultfont"
+#define XtNfontSet "fontSet"
+#define XtRFontSet "FontSet"
+#define XtCFontSet "FontSet"
+#define XtRGravity "Gravity"
+#define XtNcreateHook "createHook"
+#define XtNchangeHook "changeHook"
+#define XtNconfigureHook "configureHook"
+#define XtNgeometryHook "geometryHook"
+#define XtNdestroyHook "destroyHook"
+#define XtNshells "shells"
+#define XtNnumShells "numShells"
+#define XtRCommandArgArray "CommandArgArray"
+#define XtRDirectoryString "DirectoryString"
+#define XtREnvironmentArray "EnvironmentArray"
+#define XtRRestartStyle "RestartStyle"
+#define XtRSmcConn "SmcConn"
+#define XtHcreate "Xtcreate"
+#define XtHsetValues "XtsetValues"
+#define XtHmanageChildren "XtmanageChildren"
+#define XtHunmanageChildren "XtunmanageChildren"
+#define XtHmanageSet "XtmanageSet"
+#define XtHunmanageSet "XtunmanageSet"
+#define XtHrealizeWidget "XtrealizeWidget"
+#define XtHunrealizeWidget "XtunrealizeWidget"
+#define XtHaddCallback "XtaddCallback"
+#define XtHaddCallbacks "XtaddCallbacks"
+#define XtHremoveCallback "XtremoveCallback"
+#define XtHremoveCallbacks "XtremoveCallbacks"
+#define XtHremoveAllCallbacks "XtremoveAllCallbacks"
+#define XtHaugmentTranslations "XtaugmentTranslations"
+#define XtHoverrideTranslations "XtoverrideTranslations"
+#define XtHuninstallTranslations "XtuninstallTranslations"
+#define XtHsetKeyboardFocus "XtsetKeyboardFocus"
+#define XtHsetWMColormapWindows "XtsetWMColormapWindows"
+#define XtHsetMappedWhenManaged "XtsetMappedWhenManaged"
+#define XtHmapWidget "XtmapWidget"
+#define XtHunmapWidget "XtunmapWidget"
+#define XtHpopup "Xtpopup"
+#define XtHpopupSpringLoaded "XtpopupSpringLoaded"
+#define XtHpopdown "Xtpopdown"
+#define XtHconfigure "Xtconfigure"
+#define XtHpreGeometry "XtpreGeometry"
+#define XtHpostGeometry "XtpostGeometry"
+#define XtHdestroy "Xtdestroy"
+#else
+extern _XtStringDefs_h_Const char XtStrings[];
+#ifndef XtNaccelerators
+#define XtNaccelerators ((char*)&XtStrings[0])
+#endif
+#ifndef XtNallowHoriz
+#define XtNallowHoriz ((char*)&XtStrings[13])
+#endif
+#ifndef XtNallowVert
+#define XtNallowVert ((char*)&XtStrings[24])
+#endif
+#ifndef XtNancestorSensitive
+#define XtNancestorSensitive ((char*)&XtStrings[34])
+#endif
+#ifndef XtNbackground
+#define XtNbackground ((char*)&XtStrings[52])
+#endif
+#ifndef XtNbackgroundPixmap
+#define XtNbackgroundPixmap ((char*)&XtStrings[63])
+#endif
+#ifndef XtNbitmap
+#define XtNbitmap ((char*)&XtStrings[80])
+#endif
+#ifndef XtNborderColor
+#define XtNborderColor ((char*)&XtStrings[87])
+#endif
+#ifndef XtNborder
+#define XtNborder ((char*)&XtStrings[99])
+#endif
+#ifndef XtNborderPixmap
+#define XtNborderPixmap ((char*)&XtStrings[111])
+#endif
+#ifndef XtNborderWidth
+#define XtNborderWidth ((char*)&XtStrings[124])
+#endif
+#ifndef XtNcallback
+#define XtNcallback ((char*)&XtStrings[136])
+#endif
+#ifndef XtNchildren
+#define XtNchildren ((char*)&XtStrings[145])
+#endif
+#ifndef XtNcolormap
+#define XtNcolormap ((char*)&XtStrings[154])
+#endif
+#ifndef XtNdepth
+#define XtNdepth ((char*)&XtStrings[163])
+#endif
+#ifndef XtNdestroyCallback
+#define XtNdestroyCallback ((char*)&XtStrings[169])
+#endif
+#ifndef XtNeditType
+#define XtNeditType ((char*)&XtStrings[185])
+#endif
+#ifndef XtNfile
+#define XtNfile ((char*)&XtStrings[194])
+#endif
+#ifndef XtNfont
+#define XtNfont ((char*)&XtStrings[199])
+#endif
+#ifndef XtNforceBars
+#define XtNforceBars ((char*)&XtStrings[204])
+#endif
+#ifndef XtNforeground
+#define XtNforeground ((char*)&XtStrings[214])
+#endif
+#ifndef XtNfunction
+#define XtNfunction ((char*)&XtStrings[225])
+#endif
+#ifndef XtNheight
+#define XtNheight ((char*)&XtStrings[234])
+#endif
+#ifndef XtNhighlight
+#define XtNhighlight ((char*)&XtStrings[241])
+#endif
+#ifndef XtNhSpace
+#define XtNhSpace ((char*)&XtStrings[251])
+#endif
+#ifndef XtNindex
+#define XtNindex ((char*)&XtStrings[258])
+#endif
+#ifndef XtNinitialResourcesPersistent
+#define XtNinitialResourcesPersistent ((char*)&XtStrings[264])
+#endif
+#ifndef XtNinnerHeight
+#define XtNinnerHeight ((char*)&XtStrings[291])
+#endif
+#ifndef XtNinnerWidth
+#define XtNinnerWidth ((char*)&XtStrings[303])
+#endif
+#ifndef XtNinnerWindow
+#define XtNinnerWindow ((char*)&XtStrings[314])
+#endif
+#ifndef XtNinsertPosition
+#define XtNinsertPosition ((char*)&XtStrings[326])
+#endif
+#ifndef XtNinternalHeight
+#define XtNinternalHeight ((char*)&XtStrings[341])
+#endif
+#ifndef XtNinternalWidth
+#define XtNinternalWidth ((char*)&XtStrings[356])
+#endif
+#ifndef XtNjumpProc
+#define XtNjumpProc ((char*)&XtStrings[370])
+#endif
+#ifndef XtNjustify
+#define XtNjustify ((char*)&XtStrings[379])
+#endif
+#ifndef XtNknobHeight
+#define XtNknobHeight ((char*)&XtStrings[387])
+#endif
+#ifndef XtNknobIndent
+#define XtNknobIndent ((char*)&XtStrings[398])
+#endif
+#ifndef XtNknobPixel
+#define XtNknobPixel ((char*)&XtStrings[409])
+#endif
+#ifndef XtNknobWidth
+#define XtNknobWidth ((char*)&XtStrings[419])
+#endif
+#ifndef XtNlabel
+#define XtNlabel ((char*)&XtStrings[429])
+#endif
+#ifndef XtNlength
+#define XtNlength ((char*)&XtStrings[435])
+#endif
+#ifndef XtNlowerRight
+#define XtNlowerRight ((char*)&XtStrings[442])
+#endif
+#ifndef XtNmappedWhenManaged
+#define XtNmappedWhenManaged ((char*)&XtStrings[453])
+#endif
+#ifndef XtNmenuEntry
+#define XtNmenuEntry ((char*)&XtStrings[471])
+#endif
+#ifndef XtNname
+#define XtNname ((char*)&XtStrings[481])
+#endif
+#ifndef XtNnotify
+#define XtNnotify ((char*)&XtStrings[486])
+#endif
+#ifndef XtNnumChildren
+#define XtNnumChildren ((char*)&XtStrings[493])
+#endif
+#ifndef XtNorientation
+#define XtNorientation ((char*)&XtStrings[505])
+#endif
+#ifndef XtNparameter
+#define XtNparameter ((char*)&XtStrings[517])
+#endif
+#ifndef XtNpixmap
+#define XtNpixmap ((char*)&XtStrings[527])
+#endif
+#ifndef XtNpopupCallback
+#define XtNpopupCallback ((char*)&XtStrings[534])
+#endif
+#ifndef XtNpopdownCallback
+#define XtNpopdownCallback ((char*)&XtStrings[548])
+#endif
+#ifndef XtNresize
+#define XtNresize ((char*)&XtStrings[564])
+#endif
+#ifndef XtNreverseVideo
+#define XtNreverseVideo ((char*)&XtStrings[571])
+#endif
+#ifndef XtNscreen
+#define XtNscreen ((char*)&XtStrings[584])
+#endif
+#ifndef XtNscrollProc
+#define XtNscrollProc ((char*)&XtStrings[591])
+#endif
+#ifndef XtNscrollDCursor
+#define XtNscrollDCursor ((char*)&XtStrings[602])
+#endif
+#ifndef XtNscrollHCursor
+#define XtNscrollHCursor ((char*)&XtStrings[616])
+#endif
+#ifndef XtNscrollLCursor
+#define XtNscrollLCursor ((char*)&XtStrings[630])
+#endif
+#ifndef XtNscrollRCursor
+#define XtNscrollRCursor ((char*)&XtStrings[644])
+#endif
+#ifndef XtNscrollUCursor
+#define XtNscrollUCursor ((char*)&XtStrings[658])
+#endif
+#ifndef XtNscrollVCursor
+#define XtNscrollVCursor ((char*)&XtStrings[672])
+#endif
+#ifndef XtNselection
+#define XtNselection ((char*)&XtStrings[686])
+#endif
+#ifndef XtNselectionArray
+#define XtNselectionArray ((char*)&XtStrings[696])
+#endif
+#ifndef XtNsensitive
+#define XtNsensitive ((char*)&XtStrings[711])
+#endif
+#ifndef XtNshown
+#define XtNshown ((char*)&XtStrings[721])
+#endif
+#ifndef XtNspace
+#define XtNspace ((char*)&XtStrings[727])
+#endif
+#ifndef XtNstring
+#define XtNstring ((char*)&XtStrings[733])
+#endif
+#ifndef XtNtextOptions
+#define XtNtextOptions ((char*)&XtStrings[740])
+#endif
+#ifndef XtNtextSink
+#define XtNtextSink ((char*)&XtStrings[752])
+#endif
+#ifndef XtNtextSource
+#define XtNtextSource ((char*)&XtStrings[761])
+#endif
+#ifndef XtNthickness
+#define XtNthickness ((char*)&XtStrings[772])
+#endif
+#ifndef XtNthumb
+#define XtNthumb ((char*)&XtStrings[782])
+#endif
+#ifndef XtNthumbProc
+#define XtNthumbProc ((char*)&XtStrings[788])
+#endif
+#ifndef XtNtop
+#define XtNtop ((char*)&XtStrings[798])
+#endif
+#ifndef XtNtranslations
+#define XtNtranslations ((char*)&XtStrings[802])
+#endif
+#ifndef XtNunrealizeCallback
+#define XtNunrealizeCallback ((char*)&XtStrings[815])
+#endif
+#ifndef XtNupdate
+#define XtNupdate ((char*)&XtStrings[833])
+#endif
+#ifndef XtNuseBottom
+#define XtNuseBottom ((char*)&XtStrings[840])
+#endif
+#ifndef XtNuseRight
+#define XtNuseRight ((char*)&XtStrings[850])
+#endif
+#ifndef XtNvalue
+#define XtNvalue ((char*)&XtStrings[859])
+#endif
+#ifndef XtNvSpace
+#define XtNvSpace ((char*)&XtStrings[865])
+#endif
+#ifndef XtNwidth
+#define XtNwidth ((char*)&XtStrings[872])
+#endif
+#ifndef XtNwindow
+#define XtNwindow ((char*)&XtStrings[878])
+#endif
+#ifndef XtNx
+#define XtNx ((char*)&XtStrings[885])
+#endif
+#ifndef XtNy
+#define XtNy ((char*)&XtStrings[887])
+#endif
+#ifndef XtCAccelerators
+#define XtCAccelerators ((char*)&XtStrings[889])
+#endif
+#ifndef XtCBackground
+#define XtCBackground ((char*)&XtStrings[902])
+#endif
+#ifndef XtCBitmap
+#define XtCBitmap ((char*)&XtStrings[913])
+#endif
+#ifndef XtCBoolean
+#define XtCBoolean ((char*)&XtStrings[920])
+#endif
+#ifndef XtCBorderColor
+#define XtCBorderColor ((char*)&XtStrings[928])
+#endif
+#ifndef XtCBorderWidth
+#define XtCBorderWidth ((char*)&XtStrings[940])
+#endif
+#ifndef XtCCallback
+#define XtCCallback ((char*)&XtStrings[952])
+#endif
+#ifndef XtCColormap
+#define XtCColormap ((char*)&XtStrings[961])
+#endif
+#ifndef XtCColor
+#define XtCColor ((char*)&XtStrings[970])
+#endif
+#ifndef XtCCursor
+#define XtCCursor ((char*)&XtStrings[976])
+#endif
+#ifndef XtCDepth
+#define XtCDepth ((char*)&XtStrings[983])
+#endif
+#ifndef XtCEditType
+#define XtCEditType ((char*)&XtStrings[989])
+#endif
+#ifndef XtCEventBindings
+#define XtCEventBindings ((char*)&XtStrings[998])
+#endif
+#ifndef XtCFile
+#define XtCFile ((char*)&XtStrings[1012])
+#endif
+#ifndef XtCFont
+#define XtCFont ((char*)&XtStrings[1017])
+#endif
+#ifndef XtCForeground
+#define XtCForeground ((char*)&XtStrings[1022])
+#endif
+#ifndef XtCFraction
+#define XtCFraction ((char*)&XtStrings[1033])
+#endif
+#ifndef XtCFunction
+#define XtCFunction ((char*)&XtStrings[1042])
+#endif
+#ifndef XtCHeight
+#define XtCHeight ((char*)&XtStrings[1051])
+#endif
+#ifndef XtCHSpace
+#define XtCHSpace ((char*)&XtStrings[1058])
+#endif
+#ifndef XtCIndex
+#define XtCIndex ((char*)&XtStrings[1065])
+#endif
+#ifndef XtCInitialResourcesPersistent
+#define XtCInitialResourcesPersistent ((char*)&XtStrings[1071])
+#endif
+#ifndef XtCInsertPosition
+#define XtCInsertPosition ((char*)&XtStrings[1098])
+#endif
+#ifndef XtCInterval
+#define XtCInterval ((char*)&XtStrings[1113])
+#endif
+#ifndef XtCJustify
+#define XtCJustify ((char*)&XtStrings[1122])
+#endif
+#ifndef XtCKnobIndent
+#define XtCKnobIndent ((char*)&XtStrings[1130])
+#endif
+#ifndef XtCKnobPixel
+#define XtCKnobPixel ((char*)&XtStrings[1141])
+#endif
+#ifndef XtCLabel
+#define XtCLabel ((char*)&XtStrings[1151])
+#endif
+#ifndef XtCLength
+#define XtCLength ((char*)&XtStrings[1157])
+#endif
+#ifndef XtCMappedWhenManaged
+#define XtCMappedWhenManaged ((char*)&XtStrings[1164])
+#endif
+#ifndef XtCMargin
+#define XtCMargin ((char*)&XtStrings[1182])
+#endif
+#ifndef XtCMenuEntry
+#define XtCMenuEntry ((char*)&XtStrings[1189])
+#endif
+#ifndef XtCNotify
+#define XtCNotify ((char*)&XtStrings[1199])
+#endif
+#ifndef XtCOrientation
+#define XtCOrientation ((char*)&XtStrings[1206])
+#endif
+#ifndef XtCParameter
+#define XtCParameter ((char*)&XtStrings[1218])
+#endif
+#ifndef XtCPixmap
+#define XtCPixmap ((char*)&XtStrings[1228])
+#endif
+#ifndef XtCPosition
+#define XtCPosition ((char*)&XtStrings[1235])
+#endif
+#ifndef XtCReadOnly
+#define XtCReadOnly ((char*)&XtStrings[1244])
+#endif
+#ifndef XtCResize
+#define XtCResize ((char*)&XtStrings[1253])
+#endif
+#ifndef XtCReverseVideo
+#define XtCReverseVideo ((char*)&XtStrings[1260])
+#endif
+#ifndef XtCScreen
+#define XtCScreen ((char*)&XtStrings[1273])
+#endif
+#ifndef XtCScrollProc
+#define XtCScrollProc ((char*)&XtStrings[1280])
+#endif
+#ifndef XtCScrollDCursor
+#define XtCScrollDCursor ((char*)&XtStrings[1291])
+#endif
+#ifndef XtCScrollHCursor
+#define XtCScrollHCursor ((char*)&XtStrings[1305])
+#endif
+#ifndef XtCScrollLCursor
+#define XtCScrollLCursor ((char*)&XtStrings[1319])
+#endif
+#ifndef XtCScrollRCursor
+#define XtCScrollRCursor ((char*)&XtStrings[1333])
+#endif
+#ifndef XtCScrollUCursor
+#define XtCScrollUCursor ((char*)&XtStrings[1347])
+#endif
+#ifndef XtCScrollVCursor
+#define XtCScrollVCursor ((char*)&XtStrings[1361])
+#endif
+#ifndef XtCSelection
+#define XtCSelection ((char*)&XtStrings[1375])
+#endif
+#ifndef XtCSensitive
+#define XtCSensitive ((char*)&XtStrings[1385])
+#endif
+#ifndef XtCSelectionArray
+#define XtCSelectionArray ((char*)&XtStrings[1395])
+#endif
+#ifndef XtCSpace
+#define XtCSpace ((char*)&XtStrings[1410])
+#endif
+#ifndef XtCString
+#define XtCString ((char*)&XtStrings[1416])
+#endif
+#ifndef XtCTextOptions
+#define XtCTextOptions ((char*)&XtStrings[1423])
+#endif
+#ifndef XtCTextPosition
+#define XtCTextPosition ((char*)&XtStrings[1435])
+#endif
+#ifndef XtCTextSink
+#define XtCTextSink ((char*)&XtStrings[1448])
+#endif
+#ifndef XtCTextSource
+#define XtCTextSource ((char*)&XtStrings[1457])
+#endif
+#ifndef XtCThickness
+#define XtCThickness ((char*)&XtStrings[1468])
+#endif
+#ifndef XtCThumb
+#define XtCThumb ((char*)&XtStrings[1478])
+#endif
+#ifndef XtCTranslations
+#define XtCTranslations ((char*)&XtStrings[1484])
+#endif
+#ifndef XtCValue
+#define XtCValue ((char*)&XtStrings[1497])
+#endif
+#ifndef XtCVSpace
+#define XtCVSpace ((char*)&XtStrings[1503])
+#endif
+#ifndef XtCWidth
+#define XtCWidth ((char*)&XtStrings[1510])
+#endif
+#ifndef XtCWindow
+#define XtCWindow ((char*)&XtStrings[1516])
+#endif
+#ifndef XtCX
+#define XtCX ((char*)&XtStrings[1523])
+#endif
+#ifndef XtCY
+#define XtCY ((char*)&XtStrings[1525])
+#endif
+#ifndef XtRAcceleratorTable
+#define XtRAcceleratorTable ((char*)&XtStrings[1527])
+#endif
+#ifndef XtRAtom
+#define XtRAtom ((char*)&XtStrings[1544])
+#endif
+#ifndef XtRBitmap
+#define XtRBitmap ((char*)&XtStrings[1549])
+#endif
+#ifndef XtRBool
+#define XtRBool ((char*)&XtStrings[1556])
+#endif
+#ifndef XtRBoolean
+#define XtRBoolean ((char*)&XtStrings[1561])
+#endif
+#ifndef XtRCallback
+#define XtRCallback ((char*)&XtStrings[1569])
+#endif
+#ifndef XtRCallProc
+#define XtRCallProc ((char*)&XtStrings[1578])
+#endif
+#ifndef XtRCardinal
+#define XtRCardinal ((char*)&XtStrings[1587])
+#endif
+#ifndef XtRColor
+#define XtRColor ((char*)&XtStrings[1596])
+#endif
+#ifndef XtRColormap
+#define XtRColormap ((char*)&XtStrings[1602])
+#endif
+#ifndef XtRCursor
+#define XtRCursor ((char*)&XtStrings[1611])
+#endif
+#ifndef XtRDimension
+#define XtRDimension ((char*)&XtStrings[1618])
+#endif
+#ifndef XtRDisplay
+#define XtRDisplay ((char*)&XtStrings[1628])
+#endif
+#ifndef XtREditMode
+#define XtREditMode ((char*)&XtStrings[1636])
+#endif
+#ifndef XtREnum
+#define XtREnum ((char*)&XtStrings[1645])
+#endif
+#ifndef XtRFile
+#define XtRFile ((char*)&XtStrings[1650])
+#endif
+#ifndef XtRFloat
+#define XtRFloat ((char*)&XtStrings[1655])
+#endif
+#ifndef XtRFont
+#define XtRFont ((char*)&XtStrings[1661])
+#endif
+#ifndef XtRFontStruct
+#define XtRFontStruct ((char*)&XtStrings[1666])
+#endif
+#ifndef XtRFunction
+#define XtRFunction ((char*)&XtStrings[1677])
+#endif
+#ifndef XtRGeometry
+#define XtRGeometry ((char*)&XtStrings[1686])
+#endif
+#ifndef XtRImmediate
+#define XtRImmediate ((char*)&XtStrings[1695])
+#endif
+#ifndef XtRInitialState
+#define XtRInitialState ((char*)&XtStrings[1705])
+#endif
+#ifndef XtRInt
+#define XtRInt ((char*)&XtStrings[1718])
+#endif
+#ifndef XtRJustify
+#define XtRJustify ((char*)&XtStrings[1722])
+#endif
+#ifndef XtRLongBoolean
+#define XtRLongBoolean ((char*)&XtStrings[1730])
+#endif
+#ifndef XtRObject
+#define XtRObject ((char*)&XtStrings[1735])
+#endif
+#ifndef XtROrientation
+#define XtROrientation ((char*)&XtStrings[1742])
+#endif
+#ifndef XtRPixel
+#define XtRPixel ((char*)&XtStrings[1754])
+#endif
+#ifndef XtRPixmap
+#define XtRPixmap ((char*)&XtStrings[1760])
+#endif
+#ifndef XtRPointer
+#define XtRPointer ((char*)&XtStrings[1767])
+#endif
+#ifndef XtRPosition
+#define XtRPosition ((char*)&XtStrings[1775])
+#endif
+#ifndef XtRScreen
+#define XtRScreen ((char*)&XtStrings[1784])
+#endif
+#ifndef XtRShort
+#define XtRShort ((char*)&XtStrings[1791])
+#endif
+#ifndef XtRString
+#define XtRString ((char*)&XtStrings[1797])
+#endif
+#ifndef XtRStringArray
+#define XtRStringArray ((char*)&XtStrings[1804])
+#endif
+#ifndef XtRStringTable
+#define XtRStringTable ((char*)&XtStrings[1816])
+#endif
+#ifndef XtRUnsignedChar
+#define XtRUnsignedChar ((char*)&XtStrings[1828])
+#endif
+#ifndef XtRTranslationTable
+#define XtRTranslationTable ((char*)&XtStrings[1841])
+#endif
+#ifndef XtRVisual
+#define XtRVisual ((char*)&XtStrings[1858])
+#endif
+#ifndef XtRWidget
+#define XtRWidget ((char*)&XtStrings[1865])
+#endif
+#ifndef XtRWidgetClass
+#define XtRWidgetClass ((char*)&XtStrings[1872])
+#endif
+#ifndef XtRWidgetList
+#define XtRWidgetList ((char*)&XtStrings[1884])
+#endif
+#ifndef XtRWindow
+#define XtRWindow ((char*)&XtStrings[1895])
+#endif
+#ifndef XtEoff
+#define XtEoff ((char*)&XtStrings[1902])
+#endif
+#ifndef XtEfalse
+#define XtEfalse ((char*)&XtStrings[1906])
+#endif
+#ifndef XtEno
+#define XtEno ((char*)&XtStrings[1912])
+#endif
+#ifndef XtEon
+#define XtEon ((char*)&XtStrings[1915])
+#endif
+#ifndef XtEtrue
+#define XtEtrue ((char*)&XtStrings[1918])
+#endif
+#ifndef XtEyes
+#define XtEyes ((char*)&XtStrings[1923])
+#endif
+#ifndef XtEvertical
+#define XtEvertical ((char*)&XtStrings[1927])
+#endif
+#ifndef XtEhorizontal
+#define XtEhorizontal ((char*)&XtStrings[1936])
+#endif
+#ifndef XtEtextRead
+#define XtEtextRead ((char*)&XtStrings[1947])
+#endif
+#ifndef XtEtextAppend
+#define XtEtextAppend ((char*)&XtStrings[1952])
+#endif
+#ifndef XtEtextEdit
+#define XtEtextEdit ((char*)&XtStrings[1959])
+#endif
+#ifndef XtExtdefaultbackground
+#define XtExtdefaultbackground ((char*)&XtStrings[1964])
+#endif
+#ifndef XtExtdefaultforeground
+#define XtExtdefaultforeground ((char*)&XtStrings[1984])
+#endif
+#ifndef XtExtdefaultfont
+#define XtExtdefaultfont ((char*)&XtStrings[2004])
+#endif
+#ifndef XtNfontSet
+#define XtNfontSet ((char*)&XtStrings[2018])
+#endif
+#ifndef XtRFontSet
+#define XtRFontSet ((char*)&XtStrings[2026])
+#endif
+#ifndef XtCFontSet
+#define XtCFontSet ((char*)&XtStrings[2034])
+#endif
+#ifndef XtRGravity
+#define XtRGravity ((char*)&XtStrings[2042])
+#endif
+#ifndef XtNcreateHook
+#define XtNcreateHook ((char*)&XtStrings[2050])
+#endif
+#ifndef XtNchangeHook
+#define XtNchangeHook ((char*)&XtStrings[2061])
+#endif
+#ifndef XtNconfigureHook
+#define XtNconfigureHook ((char*)&XtStrings[2072])
+#endif
+#ifndef XtNgeometryHook
+#define XtNgeometryHook ((char*)&XtStrings[2086])
+#endif
+#ifndef XtNdestroyHook
+#define XtNdestroyHook ((char*)&XtStrings[2099])
+#endif
+#ifndef XtNshells
+#define XtNshells ((char*)&XtStrings[2111])
+#endif
+#ifndef XtNnumShells
+#define XtNnumShells ((char*)&XtStrings[2118])
+#endif
+#ifndef XtRCommandArgArray
+#define XtRCommandArgArray ((char*)&XtStrings[2128])
+#endif
+#ifndef XtRDirectoryString
+#define XtRDirectoryString ((char*)&XtStrings[2144])
+#endif
+#ifndef XtREnvironmentArray
+#define XtREnvironmentArray ((char*)&XtStrings[2160])
+#endif
+#ifndef XtRRestartStyle
+#define XtRRestartStyle ((char*)&XtStrings[2177])
+#endif
+#ifndef XtRSmcConn
+#define XtRSmcConn ((char*)&XtStrings[2190])
+#endif
+#ifndef XtHcreate
+#define XtHcreate ((char*)&XtStrings[2198])
+#endif
+#ifndef XtHsetValues
+#define XtHsetValues ((char*)&XtStrings[2207])
+#endif
+#ifndef XtHmanageChildren
+#define XtHmanageChildren ((char*)&XtStrings[2219])
+#endif
+#ifndef XtHunmanageChildren
+#define XtHunmanageChildren ((char*)&XtStrings[2236])
+#endif
+#ifndef XtHmanageSet
+#define XtHmanageSet ((char*)&XtStrings[2255])
+#endif
+#ifndef XtHunmanageSet
+#define XtHunmanageSet ((char*)&XtStrings[2267])
+#endif
+#ifndef XtHrealizeWidget
+#define XtHrealizeWidget ((char*)&XtStrings[2281])
+#endif
+#ifndef XtHunrealizeWidget
+#define XtHunrealizeWidget ((char*)&XtStrings[2297])
+#endif
+#ifndef XtHaddCallback
+#define XtHaddCallback ((char*)&XtStrings[2315])
+#endif
+#ifndef XtHaddCallbacks
+#define XtHaddCallbacks ((char*)&XtStrings[2329])
+#endif
+#ifndef XtHremoveCallback
+#define XtHremoveCallback ((char*)&XtStrings[2344])
+#endif
+#ifndef XtHremoveCallbacks
+#define XtHremoveCallbacks ((char*)&XtStrings[2361])
+#endif
+#ifndef XtHremoveAllCallbacks
+#define XtHremoveAllCallbacks ((char*)&XtStrings[2379])
+#endif
+#ifndef XtHaugmentTranslations
+#define XtHaugmentTranslations ((char*)&XtStrings[2400])
+#endif
+#ifndef XtHoverrideTranslations
+#define XtHoverrideTranslations ((char*)&XtStrings[2422])
+#endif
+#ifndef XtHuninstallTranslations
+#define XtHuninstallTranslations ((char*)&XtStrings[2445])
+#endif
+#ifndef XtHsetKeyboardFocus
+#define XtHsetKeyboardFocus ((char*)&XtStrings[2469])
+#endif
+#ifndef XtHsetWMColormapWindows
+#define XtHsetWMColormapWindows ((char*)&XtStrings[2488])
+#endif
+#ifndef XtHsetMappedWhenManaged
+#define XtHsetMappedWhenManaged ((char*)&XtStrings[2511])
+#endif
+#ifndef XtHmapWidget
+#define XtHmapWidget ((char*)&XtStrings[2534])
+#endif
+#ifndef XtHunmapWidget
+#define XtHunmapWidget ((char*)&XtStrings[2546])
+#endif
+#ifndef XtHpopup
+#define XtHpopup ((char*)&XtStrings[2560])
+#endif
+#ifndef XtHpopupSpringLoaded
+#define XtHpopupSpringLoaded ((char*)&XtStrings[2568])
+#endif
+#ifndef XtHpopdown
+#define XtHpopdown ((char*)&XtStrings[2588])
+#endif
+#ifndef XtHconfigure
+#define XtHconfigure ((char*)&XtStrings[2598])
+#endif
+#ifndef XtHpreGeometry
+#define XtHpreGeometry ((char*)&XtStrings[2610])
+#endif
+#ifndef XtHpostGeometry
+#define XtHpostGeometry ((char*)&XtStrings[2624])
+#endif
+#ifndef XtHdestroy
+#define XtHdestroy ((char*)&XtStrings[2639])
+#endif
+#endif /* XTSTRINGDEFINES */
+
+#ifndef XTSTRINGDEFINES
+#undef _XtStringDefs_h_Const
+#endif
+
+#endif /* _XtStringDefs_h_ */
diff --git a/X11/ThreadsI.h b/X11/ThreadsI.h
new file mode 100644
index 000000000..b6c6b7bac
--- /dev/null
+++ b/X11/ThreadsI.h
@@ -0,0 +1,129 @@
+/************************************************************
+
+Copyright (c) 1993, Oracle and/or its affiliates. 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
+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:
+
+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 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.
+
+********************************************************/
+
+/*
+
+Copyright 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+/* $XFree86: xc/lib/Xt/ThreadsI.h,v 3.5 2001/12/14 19:56:31 dawes Exp $ */
+
+#ifndef _XtThreadsI_h
+#define _XtThreadsI_h
+
+#include <X11/XlibConf.h>
+
+#ifdef XTHREADS
+
+typedef struct _LockRec *LockPtr;
+
+typedef void (*ThreadAppProc)(
+ XtAppContext /* app */
+);
+
+typedef void (*ThreadAppYieldLockProc)(
+ XtAppContext, /* app */
+ Boolean*, /* push_thread */
+ Boolean*, /* pushed_thread */
+ int* /* level */
+);
+
+typedef void (*ThreadAppRestoreLockProc)(
+ XtAppContext /* app */,
+ int, /* level */
+ Boolean* /* pushed_thread */
+);
+
+_XFUNCPROTOBEGIN
+
+extern void (*_XtProcessLock)(
+ void
+);
+
+extern void (*_XtProcessUnlock)(
+ void
+);
+
+extern void (*_XtInitAppLock)(
+ XtAppContext /* app */
+);
+
+_XFUNCPROTOEND
+
+#define INIT_APP_LOCK(app) if(_XtInitAppLock) (*_XtInitAppLock)(app)
+#define FREE_APP_LOCK(app) if(app && app->free_lock)(*app->free_lock)(app)
+
+#define LOCK_PROCESS if(_XtProcessLock)(*_XtProcessLock)()
+#define UNLOCK_PROCESS if(_XtProcessUnlock)(*_XtProcessUnlock)()
+#define LOCK_APP(app) if(app && app->lock)(*app->lock)(app)
+#define UNLOCK_APP(app) if(app && app->unlock)(*app->unlock)(app)
+
+#define YIELD_APP_LOCK(app,push,pushed,level)\
+ if(app && app->yield_lock) (*app->yield_lock)(app,push,pushed,level)
+#define RESTORE_APP_LOCK(app,level,pushed)\
+ if(app && app->restore_lock) (*app->restore_lock)(app,level,pushed)
+
+#define WIDGET_TO_APPCON(w) \
+ XtAppContext app = (w && _XtProcessLock ? \
+ XtWidgetToApplicationContext(w) : NULL)
+
+#define DPY_TO_APPCON(d) \
+ XtAppContext app = (_XtProcessLock ? XtDisplayToApplicationContext(d): NULL)
+
+#else /* defined(XTHREADS) */
+
+#define LOCK_PROCESS
+#define UNLOCK_PROCESS
+#define LOCK_APP(app)
+#define UNLOCK_APP(app)
+
+#define INIT_APP_LOCK(app)
+#define FREE_APP_LOCK(app)
+
+#define WIDGET_TO_APPCON(w)
+#define DPY_TO_APPCON(d)
+
+#endif /* !defined(XTHREADS) */
+#endif /* _XtThreadsI_h */
diff --git a/X11/TranslateI.h b/X11/TranslateI.h
new file mode 100644
index 000000000..9894c3dd4
--- /dev/null
+++ b/X11/TranslateI.h
@@ -0,0 +1,606 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+/*
+ * TranslateI.h - Header file private to translation management
+ *
+ * Author: Gabe Beged-Dov, HP
+ *
+ * Former Author: Charles Haynes
+ * Digital Equipment Corporation
+ * Western Research Laboratory
+ * Date: Sat Aug 29 1987
+ */
+
+/*#define REFCNT_TRANSLATIONS*/
+#define CACHE_TRANSLATIONS
+
+#define TM_NO_MATCH (-2)
+
+#define _XtRStateTablePair "_XtStateTablePair"
+
+typedef unsigned char TMByteCard;
+typedef unsigned short TMShortCard;
+typedef unsigned long TMLongCard;
+typedef short TMShortInt;
+
+typedef struct _TMTypeMatchRec *TMTypeMatch;
+typedef struct _TMModifierMatchRec *TMModifierMatch;
+typedef struct _TMEventRec *TMEventPtr;
+
+typedef Boolean (*MatchProc)(TMTypeMatch typeMatch,
+ TMModifierMatch modMatch,
+ TMEventPtr eventSeq);
+
+typedef struct _ModToKeysymTable {
+ Modifiers mask;
+ int count;
+ int idx;
+} ModToKeysymTable;
+
+typedef struct _LateBindings {
+ unsigned int knot:1;
+ unsigned int pair:1;
+ unsigned short ref_count; /* garbage collection */
+ KeySym keysym;
+} LateBindings, *LateBindingsPtr;
+
+typedef short ModifierMask;
+
+typedef struct _ActionsRec *ActionPtr;
+typedef struct _ActionsRec {
+ int idx; /* index into quarkTable to find proc */
+ String *params; /* pointer to array of params */
+ Cardinal num_params; /* number of params */
+ ActionPtr next; /* next action to perform */
+} ActionRec;
+
+typedef struct _XtStateRec *StatePtr;
+typedef struct _XtStateRec {
+ unsigned int isCycleStart:1;
+ unsigned int isCycleEnd:1;
+ TMShortCard typeIndex;
+ TMShortCard modIndex;
+ ActionPtr actions; /* rhs list of actions to perform */
+ StatePtr nextLevel;
+}StateRec;
+
+
+#define XtTableReplace 0
+#define XtTableAugment 1
+#define XtTableOverride 2
+#define XtTableUnmerge 3
+
+typedef unsigned int _XtTranslateOp;
+
+/*
+ * New Definitions
+ */
+typedef struct _TMModifierMatchRec{
+ TMLongCard modifiers;
+ TMLongCard modifierMask;
+ LateBindingsPtr lateModifiers;
+ Boolean standard;
+}TMModifierMatchRec;
+
+typedef struct _TMTypeMatchRec{
+ TMLongCard eventType;
+ TMLongCard eventCode;
+ TMLongCard eventCodeMask;
+ MatchProc matchEvent;
+}TMTypeMatchRec;
+
+typedef struct _TMBranchHeadRec {
+ unsigned int isSimple:1;
+ unsigned int hasActions:1;
+ unsigned int hasCycles:1;
+ unsigned int more:13;
+ TMShortCard typeIndex;
+ TMShortCard modIndex;
+}TMBranchHeadRec, *TMBranchHead;
+
+/* NOTE: elements of this structure must match those of
+ * TMComplexStateTreeRec and TMParseStateTreeRec.
+ */
+typedef struct _TMSimpleStateTreeRec{
+ unsigned int isSimple:1;
+ unsigned int isAccelerator:1;
+ unsigned int mappingNotifyInterest:1;
+ unsigned int refCount:13;
+ TMShortCard numBranchHeads;
+ TMShortCard numQuarks; /* # of entries in quarkTbl */
+ TMShortCard unused; /* to ensure same alignment */
+ TMBranchHeadRec *branchHeadTbl;
+ XrmQuark *quarkTbl; /* table of quarkified rhs*/
+}TMSimpleStateTreeRec, *TMSimpleStateTree;
+
+/* NOTE: elements of this structure must match those of
+ * TMSimpleStateTreeRec and TMParseStateTreeRec.
+ */
+typedef struct _TMComplexStateTreeRec{
+ unsigned int isSimple:1;
+ unsigned int isAccelerator:1;
+ unsigned int mappingNotifyInterest:1;
+ unsigned int refCount:13;
+ TMShortCard numBranchHeads;
+ TMShortCard numQuarks; /* # of entries in quarkTbl */
+ TMShortCard numComplexBranchHeads;
+ TMBranchHeadRec *branchHeadTbl;
+ XrmQuark *quarkTbl; /* table of quarkified rhs*/
+ StatePtr *complexBranchHeadTbl;
+}TMComplexStateTreeRec, *TMComplexStateTree;
+
+/* NOTE: elements of this structure must match those of
+ * TMSimpleStateTreeRec and TMComplexStateTreeRec.
+ */
+typedef struct _TMParseStateTreeRec{
+ unsigned int isSimple:1;
+ unsigned int isAccelerator:1;
+ unsigned int mappingNotifyInterest:1;
+ unsigned int isStackQuarks:1;
+ unsigned int isStackBranchHeads:1;
+ unsigned int isStackComplexBranchHeads:1;
+ unsigned int unused:10; /* to ensure correct alignment */
+ TMShortCard numBranchHeads;
+ TMShortCard numQuarks; /* # of entries in quarkTbl */
+ TMShortCard numComplexBranchHeads;
+ TMBranchHeadRec *branchHeadTbl;
+ XrmQuark *quarkTbl; /* table of quarkified rhs*/
+ StatePtr *complexBranchHeadTbl;
+ TMShortCard branchHeadTblSize;
+ TMShortCard quarkTblSize; /*total size of quarkTbl */
+ TMShortCard complexBranchHeadTblSize;
+ StatePtr head;
+}TMParseStateTreeRec, *TMParseStateTree;
+
+typedef union _TMStateTreeRec{
+ TMSimpleStateTreeRec simple;
+ TMParseStateTreeRec parse;
+ TMComplexStateTreeRec complex;
+}*TMStateTree, **TMStateTreePtr, **TMStateTreeList;
+
+typedef struct _TMSimpleBindProcsRec {
+ XtActionProc *procs;
+}TMSimpleBindProcsRec, *TMSimpleBindProcs;
+
+typedef struct _TMComplexBindProcsRec {
+ Widget widget; /*widgetID to pass to action Proc*/
+ XtTranslations aXlations;
+ XtActionProc *procs;
+}TMComplexBindProcsRec, *TMComplexBindProcs;
+
+typedef struct _TMSimpleBindDataRec {
+ unsigned int isComplex:1; /* must be first */
+ TMSimpleBindProcsRec bindTbl[1]; /* variable length */
+}TMSimpleBindDataRec, *TMSimpleBindData;
+
+typedef struct _TMComplexBindDataRec {
+ unsigned int isComplex:1; /* must be first */
+ struct _ATranslationData *accel_context; /* for GetValues */
+ TMComplexBindProcsRec bindTbl[1]; /* variable length */
+}TMComplexBindDataRec, *TMComplexBindData;
+
+typedef union _TMBindDataRec{
+ TMSimpleBindDataRec simple;
+ TMComplexBindDataRec complex;
+}*TMBindData;
+
+typedef struct _TranslationData{
+ unsigned char hasBindings; /* must be first */
+ unsigned char operation; /*replace,augment,override*/
+ TMShortCard numStateTrees;
+ struct _TranslationData *composers[2];
+ EventMask eventMask;
+ TMStateTree stateTreeTbl[1]; /* variable length */
+}TranslationData;
+
+/*
+ * ATranslations is returned by GetValues for translations that contain
+ * accelerators. The TM can differentiate between this and TranslationData
+ * (that don't have a bindTbl) by looking at the first field (hasBindings)
+ * of either structure. All ATranslationData structures associated with a
+ * widget are chained off the BindData record of the widget.
+ */
+typedef struct _ATranslationData{
+ unsigned char hasBindings; /* must be first */
+ unsigned char operation;
+ struct _TranslationData *xlations; /* actual translations */
+ struct _ATranslationData *next; /* chain the contexts together */
+ TMComplexBindProcsRec bindTbl[1]; /* accelerator bindings */
+}ATranslationData, *ATranslations;
+
+typedef struct _TMConvertRec {
+ XtTranslations old; /* table to merge into */
+ XtTranslations new; /* table to merge from */
+} TMConvertRec;
+
+#define _XtEventTimerEventType ((TMLongCard)~0L)
+#define KeysymModMask (1L<<27) /* private to TM */
+#define AnyButtonMask (1L<<28) /* private to TM */
+
+typedef struct _EventRec {
+ TMLongCard modifiers;
+ TMLongCard modifierMask;
+ LateBindingsPtr lateModifiers;
+ TMLongCard eventType;
+ TMLongCard eventCode;
+ TMLongCard eventCodeMask;
+ MatchProc matchEvent;
+ Boolean standard;
+} Event;
+
+typedef struct _EventSeqRec *EventSeqPtr;
+typedef struct _EventSeqRec {
+ Event event; /* X event description */
+ StatePtr state; /* private to state table builder */
+ EventSeqPtr next; /* next event on line */
+ ActionPtr actions; /* r.h.s. list of actions to perform */
+} EventSeqRec;
+
+typedef EventSeqRec EventRec;
+typedef EventSeqPtr EventPtr;
+
+typedef struct _TMEventRec {
+ XEvent *xev;
+ Event event;
+}TMEventRec;
+
+typedef struct _ActionHookRec {
+ struct _ActionHookRec* next; /* must remain first */
+ XtAppContext app;
+ XtActionHookProc proc;
+ XtPointer closure;
+} ActionHookRec, *ActionHook;
+
+/* choose a number between 2 and 8 */
+#define TMKEYCACHELOG2 6
+#define TMKEYCACHESIZE (1<<TMKEYCACHELOG2)
+
+typedef struct _KeyCacheRec {
+ unsigned char modifiers_return[256]; /* constant per KeyCode, key proc */
+ KeyCode keycode[TMKEYCACHESIZE];
+ unsigned char modifiers[TMKEYCACHESIZE];
+ KeySym keysym[TMKEYCACHESIZE];
+} TMKeyCache;
+
+typedef struct _TMKeyContextRec {
+ XEvent *event;
+ unsigned long serial;
+ KeySym keysym;
+ Modifiers modifiers;
+ TMKeyCache keycache; /* keep this last, to keep offsets to others small */
+} TMKeyContextRec, *TMKeyContext;
+
+typedef struct _TMGlobalRec{
+ TMTypeMatchRec **typeMatchSegmentTbl;
+ TMShortCard numTypeMatches;
+ TMShortCard numTypeMatchSegments;
+ TMShortCard typeMatchSegmentTblSize;
+ TMModifierMatchRec **modMatchSegmentTbl;
+ TMShortCard numModMatches;
+ TMShortCard numModMatchSegments;
+ TMShortCard modMatchSegmentTblSize;
+ Boolean newMatchSemantics;
+#ifdef TRACE_TM
+ XtTranslations *tmTbl;
+ TMShortCard numTms;
+ TMShortCard tmTblSize;
+ struct _TMBindCacheRec **bindCacheTbl;
+ TMShortCard numBindCache;
+ TMShortCard bindCacheTblSize;
+ TMShortCard numLateBindings;
+ TMShortCard numBranchHeads;
+ TMShortCard numComplexStates;
+ TMShortCard numComplexActions;
+#endif /* TRACE_TM */
+}TMGlobalRec;
+
+_XFUNCPROTOBEGIN
+
+extern TMGlobalRec _XtGlobalTM;
+
+#define TM_MOD_SEGMENT_SIZE 16
+#define TM_TYPE_SEGMENT_SIZE 16
+
+#define TMGetTypeMatch(idx) \
+ ((TMTypeMatch) \
+ &((_XtGlobalTM.typeMatchSegmentTbl[((idx) >> 4)])[(idx) & 15]))
+#define TMGetModifierMatch(idx) \
+ ((TMModifierMatch) \
+ &((_XtGlobalTM.modMatchSegmentTbl[(idx) >> 4])[(idx) & 15]))
+
+/* Useful Access Macros */
+#define TMNewMatchSemantics() (_XtGlobalTM.newMatchSemantics)
+#define TMBranchMore(branch) (branch->more)
+#define TMComplexBranchHead(tree, br) \
+ (((TMComplexStateTree)tree)->complexBranchHeadTbl[TMBranchMore(br)])
+
+#define TMGetComplexBindEntry(bindData, idx) \
+ ((TMComplexBindProcs)&(((TMComplexBindData)bindData)->bindTbl[idx]))
+
+#define TMGetSimpleBindEntry(bindData, idx) \
+ ((TMSimpleBindProcs)&(((TMSimpleBindData)bindData)->bindTbl[idx]))
+
+
+#define _InitializeKeysymTables(dpy, pd) \
+ if (pd->keysyms == NULL) \
+ _XtBuildKeysymTables(dpy, pd)
+
+/*
+ * Internal Functions
+ */
+
+extern void _XtPopup(
+ Widget /* widget */,
+ XtGrabKind /* grab_kind */,
+ _XtBoolean /* spring_loaded */
+);
+
+extern String _XtPrintXlations(
+ Widget /* w */,
+ XtTranslations /* xlations */,
+ Widget /* accelWidget */,
+ _XtBoolean /* includeRHS */
+);
+
+extern void _XtRegisterGrabs(
+ Widget /* widget */
+);
+
+extern XtPointer _XtInitializeActionData(
+ struct _XtActionsRec * /* actions */,
+ Cardinal /* count */,
+ _XtBoolean /* inPlace */
+);
+
+extern void _XtAddEventSeqToStateTree(
+ EventSeqPtr /* eventSeq */,
+ TMParseStateTree /* stateTree */
+);
+
+extern Boolean _XtMatchUsingStandardMods(
+ TMTypeMatch /* typeMatch */,
+ TMModifierMatch /* modMatch */,
+ TMEventPtr /* eventSeq */
+);
+
+extern Boolean _XtMatchUsingDontCareMods(
+ TMTypeMatch /* typeMatch */,
+ TMModifierMatch /* modMatch */,
+ TMEventPtr /* eventSeq */
+);
+
+extern Boolean _XtRegularMatch(
+ TMTypeMatch /* typeMatch */,
+ TMModifierMatch /* modMatch */,
+ TMEventPtr /* eventSeq */
+);
+
+extern Boolean _XtMatchAtom(
+ TMTypeMatch /* typeMatch */,
+ TMModifierMatch /* modMatch */,
+ TMEventPtr /* eventSeq */
+);
+
+extern void _XtTranslateEvent(
+ Widget /* widget */,
+ XEvent* /* event */
+);
+
+#include "CallbackI.h"
+#include "EventI.h"
+#include "HookObjI.h"
+#include "PassivGraI.h"
+#include "ThreadsI.h"
+#include "InitialI.h"
+#include "ResourceI.h"
+#include "StringDefs.h"
+
+extern void _XtBuildKeysymTables(Display *dpy, XtPerDisplay pd);
+
+#ifndef NO_MIT_HACKS
+extern void _XtDisplayTranslations(
+ Widget /* widget */,
+ XEvent* /* event */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+extern void _XtDisplayAccelerators(
+ Widget /* widget */,
+ XEvent* /* event */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+extern void _XtDisplayInstalledAccelerators(
+ Widget /* widget */,
+ XEvent* /* event */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+#endif /* ifndef NO_MIT_HACKS */
+
+extern void _XtPopupInitialize(
+ XtAppContext /* app_context */
+);
+
+extern void _XtBindActions(
+ Widget /* widget */,
+ XtTM /* tm_rec */
+);
+
+extern Boolean _XtComputeLateBindings(
+ Display* /* dpy */,
+ LateBindingsPtr /* lateModifiers */,
+ Modifiers* /* computed */,
+ Modifiers* /* computedMask */
+);
+
+extern XtTranslations _XtCreateXlations(
+ TMStateTree * /* stateTrees */,
+ TMShortCard /* numStateTrees */,
+ XtTranslations /* first */,
+ XtTranslations /* second */
+);
+
+extern Boolean _XtCvtMergeTranslations(
+ Display* /* dpy */,
+ XrmValuePtr /* args */,
+ Cardinal* /* num_args */,
+ XrmValuePtr /* from */,
+ XrmValuePtr /* to */,
+ XtPointer* /* closure_ret */
+);
+
+void _XtRemoveStateTreeByIndex(
+ XtTranslations /* xlations */,
+ TMShortCard /* i */);
+
+void _XtFreeTranslations(
+ XtAppContext /* app */,
+ XrmValuePtr /* toVal */,
+ XtPointer /* closure */,
+ XrmValuePtr /* args */,
+ Cardinal* /* num_args */
+);
+
+extern TMShortCard _XtGetModifierIndex(
+ Event* /* event */
+);
+
+extern TMShortCard _XtGetQuarkIndex(
+ TMParseStateTree /* stateTreePtr */,
+ XrmQuark /* quark */
+);
+
+extern XtTranslations _XtGetTranslationValue(
+ Widget /* widget */
+);
+
+extern TMShortCard _XtGetTypeIndex(
+ Event* /* event */
+);
+
+extern void _XtGrabInitialize(
+ XtAppContext /* app */
+);
+
+extern void _XtInstallTranslations(
+ Widget /* widget */
+);
+
+extern void _XtRemoveTranslations(
+ Widget /* widget */
+);
+
+extern void _XtDestroyTMData(
+ Widget /* widget */
+);
+
+extern void _XtMergeTranslations(
+ Widget /* widget */,
+ XtTranslations /* newXlations */,
+ _XtTranslateOp /* operation */
+);
+
+extern void _XtActionInitialize(
+ XtAppContext /* app */
+);
+
+extern TMStateTree _XtParseTreeToStateTree(
+ TMParseStateTree /* parseTree */
+);
+
+extern String _XtPrintActions(
+ ActionRec* /* actions */,
+ XrmQuark* /* quarkTbl */
+);
+
+extern String _XtPrintState(
+ TMStateTree /* stateTree */,
+ TMBranchHead /* branchHead */);
+
+extern String _XtPrintEventSeq(
+ EventSeqPtr /* eventSeq */,
+ Display* /* dpy */
+);
+
+typedef Boolean (*_XtTraversalProc)(
+ StatePtr /* state */,
+ XtPointer /* data */
+);
+
+extern void _XtTraverseStateTree(
+ TMStateTree /* tree */,
+ _XtTraversalProc /* func */,
+ XtPointer /* data */
+);
+
+extern void _XtTranslateInitialize(
+ void
+);
+
+extern void _XtAddTMConverters(
+ ConverterTable /* table */
+);
+
+extern void _XtUnbindActions(
+ Widget /* widget */,
+ XtTranslations /* xlations */,
+ TMBindData /* bindData */
+);
+
+extern void _XtUnmergeTranslations(
+ Widget /* widget */,
+ XtTranslations /* xlations */
+);
+
+/* TMKey.c */
+extern void _XtAllocTMContext(XtPerDisplay pd);
+
+_XFUNCPROTOEND
diff --git a/X11/VarargsI.h b/X11/VarargsI.h
new file mode 100644
index 000000000..21884e463
--- /dev/null
+++ b/X11/VarargsI.h
@@ -0,0 +1,66 @@
+/*
+
+Copyright 1985, 1986, 1987, 1988, 1989, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+#ifndef _VarargsI_h_
+#define _VarargsI_h_
+
+#include <stdarg.h>
+
+/* private routines */
+
+_XFUNCPROTOBEGIN
+
+extern void _XtCountVaList(
+ va_list /*var*/, int* /*total_count*/, int* /*typed_count*/
+);
+
+extern void _XtVaToArgList(
+ Widget /*widget*/, va_list /*var*/, int /*max_count*/, ArgList* /*args_return*/, Cardinal* /*num_args_return*/
+);
+
+extern void _XtVaToTypedArgList(
+ va_list /*var*/, int /*count*/, XtTypedArgList* /*args_return*/, Cardinal* /*num_args_return*/
+);
+
+extern XtTypedArgList _XtVaCreateTypedArgList(
+ va_list /*var*/, int /*count*/
+);
+
+extern void _XtFreeArgList(
+ ArgList /*args*/, int /*total_count*/, int /*typed_count*/
+);
+
+extern void _XtGetApplicationResources(
+ Widget /*w*/, XtPointer /*base*/, XtResourceList /*resources*/, Cardinal /*num_resources*/, ArgList /*args*/, Cardinal /*num_args*/, XtTypedArgList /*typed_args*/, Cardinal /*num_typed_args*/
+);
+
+extern void _XtGetSubresources(
+ Widget /*w*/, XtPointer /*base*/, const char* /*name*/, const char* /*class*/, XtResourceList /*resources*/, Cardinal /*num_resources*/, ArgList /*args*/, Cardinal /*num_args*/, XtTypedArgList /*typed_args*/, Cardinal /*num_typed_args*/
+);
+
+_XFUNCPROTOEND
+
+#endif /* _VarargsI_h_ */
diff --git a/X11/Vendor.h b/X11/Vendor.h
new file mode 100644
index 000000000..b6791b155
--- /dev/null
+++ b/X11/Vendor.h
@@ -0,0 +1,70 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XtVendor_h
+#define _XtVendor_h
+
+#include <X11/Intrinsic.h>
+
+/***********************************************************************
+ *
+ * VendorShell Widget
+ *
+ ***********************************************************************/
+
+/* Class record constants */
+
+typedef struct _VendorShellClassRec *VendorShellWidgetClass;
+
+_XFUNCPROTOBEGIN
+
+externalref WidgetClass vendorShellWidgetClass;
+
+_XFUNCPROTOEND
+
+#endif /* _XtVendor_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/VendorP.h b/X11/VendorP.h
new file mode 100644
index 000000000..7b4d6dab9
--- /dev/null
+++ b/X11/VendorP.h
@@ -0,0 +1,102 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+/*
+ * VendorP.h - Private definitions for VendorShell widget
+ *
+ * Author: Paul Asente
+ * Digital Equipment Corporation
+ * Western Software Laboratory
+ * Date: Thu Dec 3, 1987
+ */
+
+/***********************************************************************
+ *
+ * VendorShell Widget Private Data
+ *
+ ***********************************************************************/
+
+#ifndef _XtVendorPrivate_h
+#define _XtVendorPrivate_h
+
+#include <X11/Vendor.h>
+
+/* New fields for the VendorShell widget class record */
+
+_XFUNCPROTOBEGIN
+
+typedef struct {
+ XtPointer extension; /* pointer to extension record */
+} VendorShellClassPart;
+
+typedef struct _VendorShellClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ShellClassPart shell_class;
+ WMShellClassPart wm_shell_class;
+ VendorShellClassPart vendor_shell_class;
+} VendorShellClassRec;
+
+externalref VendorShellClassRec vendorShellClassRec;
+
+/* New fields for the vendor shell widget. */
+
+typedef struct {
+ int vendor_specific;
+} VendorShellPart;
+
+typedef struct {
+ CorePart core;
+ CompositePart composite;
+ ShellPart shell;
+ WMShellPart wm;
+ VendorShellPart vendor;
+} VendorShellRec, *VendorShellWidget;
+
+_XFUNCPROTOEND
+
+#endif /* _XtVendorPrivate_h */
diff --git a/X11/XKBlib.h b/X11/XKBlib.h
new file mode 100644
index 000000000..33a24c1b4
--- /dev/null
+++ b/X11/XKBlib.h
@@ -0,0 +1,1149 @@
+/************************************************************
+Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
+
+Permission to use, copy, modify, and distribute this
+software and its documentation for any purpose and without
+fee is hereby granted, 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 Silicon Graphics not be
+used in advertising or publicity pertaining to distribution
+of the software without specific prior written permission.
+Silicon Graphics makes no representation about the suitability
+of this software for any purpose. It is provided "as is"
+without any express or implied warranty.
+
+SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
+GRAPHICS 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.
+
+********************************************************/
+
+#ifndef _X11_XKBLIB_H_
+#define _X11_XKBLIB_H_
+
+#include <X11/Xlib.h>
+#include <X11/extensions/XKBstr.h>
+
+typedef struct _XkbAnyEvent {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* # of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XKB event minor code */
+ unsigned int device; /* device ID */
+} XkbAnyEvent;
+
+typedef struct _XkbNewKeyboardNotify {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbNewKeyboardNotify */
+ int device; /* device ID */
+ int old_device; /* device ID of previous keyboard */
+ int min_key_code; /* minimum key code */
+ int max_key_code; /* maximum key code */
+ int old_min_key_code;/* min key code of previous kbd */
+ int old_max_key_code;/* max key code of previous kbd */
+ unsigned int changed; /* changed aspects of the keyboard */
+ char req_major; /* major and minor opcode of req */
+ char req_minor; /* that caused change, if applicable */
+} XkbNewKeyboardNotifyEvent;
+
+typedef struct _XkbMapNotifyEvent {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbMapNotify */
+ int device; /* device ID */
+ unsigned int changed; /* fields which have been changed */
+ unsigned int flags; /* reserved */
+ int first_type; /* first changed key type */
+ int num_types; /* number of changed key types */
+ KeyCode min_key_code;
+ KeyCode max_key_code;
+ KeyCode first_key_sym;
+ KeyCode first_key_act;
+ KeyCode first_key_behavior;
+ KeyCode first_key_explicit;
+ KeyCode first_modmap_key;
+ KeyCode first_vmodmap_key;
+ int num_key_syms;
+ int num_key_acts;
+ int num_key_behaviors;
+ int num_key_explicit;
+ int num_modmap_keys;
+ int num_vmodmap_keys;
+ unsigned int vmods; /* mask of changed virtual mods */
+} XkbMapNotifyEvent;
+
+typedef struct _XkbStateNotifyEvent {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* # of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbStateNotify */
+ int device; /* device ID */
+ unsigned int changed; /* mask of changed state components */
+ int group; /* keyboard group */
+ int base_group; /* base keyboard group */
+ int latched_group; /* latched keyboard group */
+ int locked_group; /* locked keyboard group */
+ unsigned int mods; /* modifier state */
+ unsigned int base_mods; /* base modifier state */
+ unsigned int latched_mods; /* latched modifiers */
+ unsigned int locked_mods; /* locked modifiers */
+ int compat_state; /* compatibility state */
+ unsigned char grab_mods; /* mods used for grabs */
+ unsigned char compat_grab_mods;/* grab mods for non-XKB clients */
+ unsigned char lookup_mods; /* mods sent to clients */
+ unsigned char compat_lookup_mods; /* mods sent to non-XKB clients */
+ int ptr_buttons; /* pointer button state */
+ KeyCode keycode; /* keycode that caused the change */
+ char event_type; /* KeyPress or KeyRelease */
+ char req_major; /* Major opcode of request */
+ char req_minor; /* Minor opcode of request */
+} XkbStateNotifyEvent;
+
+typedef struct _XkbControlsNotify {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbControlsNotify */
+ int device; /* device ID */
+ unsigned int changed_ctrls; /* controls with changed sub-values */
+ unsigned int enabled_ctrls; /* controls currently enabled */
+ unsigned int enabled_ctrl_changes;/* controls just {en,dis}abled */
+ int num_groups; /* total groups on keyboard */
+ KeyCode keycode; /* key that caused change or 0 */
+ char event_type; /* type of event that caused change */
+ char req_major; /* if keycode==0, major and minor */
+ char req_minor; /* opcode of req that caused change */
+} XkbControlsNotifyEvent;
+
+typedef struct _XkbIndicatorNotify {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbIndicatorNotify */
+ int device; /* device ID */
+ unsigned int changed; /* indicators with new state or map */
+ unsigned int state; /* current state of all indicators */
+} XkbIndicatorNotifyEvent;
+
+typedef struct _XkbNamesNotify {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbNamesNotify */
+ int device; /* device ID */
+ unsigned int changed; /* names that have changed */
+ int first_type; /* first key type with new name */
+ int num_types; /* number of key types with new names */
+ int first_lvl; /* first key type new new level names */
+ int num_lvls; /* # of key types w/new level names */
+ int num_aliases; /* total number of key aliases*/
+ int num_radio_groups;/* total number of radio groups */
+ unsigned int changed_vmods; /* virtual modifiers with new names */
+ unsigned int changed_groups; /* groups with new names */
+ unsigned int changed_indicators;/* indicators with new names */
+ int first_key; /* first key with new name */
+ int num_keys; /* number of keys with new names */
+} XkbNamesNotifyEvent;
+
+typedef struct _XkbCompatMapNotify {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbCompatMapNotify */
+ int device; /* device ID */
+ unsigned int changed_groups; /* groups with new compat maps */
+ int first_si; /* first new symbol interp */
+ int num_si; /* number of new symbol interps */
+ int num_total_si; /* total # of symbol interps */
+} XkbCompatMapNotifyEvent;
+
+typedef struct _XkbBellNotify {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbBellNotify */
+ int device; /* device ID */
+ int percent; /* requested volume as a % of maximum */
+ int pitch; /* requested pitch in Hz */
+ int duration; /* requested duration in useconds */
+ int bell_class; /* (input extension) feedback class */
+ int bell_id; /* (input extension) ID of feedback */
+ Atom name; /* "name" of requested bell */
+ Window window; /* window associated with event */
+ Bool event_only; /* "event only" requested */
+} XkbBellNotifyEvent;
+
+typedef struct _XkbActionMessage {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbActionMessage */
+ int device; /* device ID */
+ KeyCode keycode; /* key that generated the event */
+ Bool press; /* true if act caused by key press */
+ Bool key_event_follows;/* true if key event also generated */
+ int group; /* effective group */
+ unsigned int mods; /* effective mods */
+ char message[XkbActionMessageLength+1];
+ /* message -- leave space for NUL */
+} XkbActionMessageEvent;
+
+typedef struct _XkbAccessXNotify {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbAccessXNotify */
+ int device; /* device ID */
+ int detail; /* XkbAXN_* */
+ int keycode; /* key of event */
+ int sk_delay; /* current slow keys delay */
+ int debounce_delay; /* current debounce delay */
+} XkbAccessXNotifyEvent;
+
+typedef struct _XkbExtensionDeviceNotify {
+ int type; /* XkbAnyEvent */
+ unsigned long serial; /* of last req processed by server */
+ Bool send_event; /* is this from a SendEvent request? */
+ Display * display; /* Display the event was read from */
+ Time time; /* milliseconds */
+ int xkb_type; /* XkbExtensionDeviceNotify */
+ int device; /* device ID */
+ unsigned int reason; /* reason for the event */
+ unsigned int supported; /* mask of supported features */
+ unsigned int unsupported; /* mask of unsupported features */
+ /* that some app tried to use */
+ int first_btn; /* first button that changed */
+ int num_btns; /* range of buttons changed */
+ unsigned int leds_defined; /* indicators with names or maps */
+ unsigned int led_state; /* current state of the indicators */
+ int led_class; /* feedback class for led changes */
+ int led_id; /* feedback id for led changes */
+} XkbExtensionDeviceNotifyEvent;
+
+typedef union _XkbEvent {
+ int type;
+ XkbAnyEvent any;
+ XkbNewKeyboardNotifyEvent new_kbd;
+ XkbMapNotifyEvent map;
+ XkbStateNotifyEvent state;
+ XkbControlsNotifyEvent ctrls;
+ XkbIndicatorNotifyEvent indicators;
+ XkbNamesNotifyEvent names;
+ XkbCompatMapNotifyEvent compat;
+ XkbBellNotifyEvent bell;
+ XkbActionMessageEvent message;
+ XkbAccessXNotifyEvent accessx;
+ XkbExtensionDeviceNotifyEvent device;
+ XEvent core;
+} XkbEvent;
+
+typedef struct _XkbKbdDpyState XkbKbdDpyStateRec,*XkbKbdDpyStatePtr;
+
+ /* XkbOpenDisplay error codes */
+#define XkbOD_Success 0
+#define XkbOD_BadLibraryVersion 1
+#define XkbOD_ConnectionRefused 2
+#define XkbOD_NonXkbServer 3
+#define XkbOD_BadServerVersion 4
+
+ /* Values for XlibFlags */
+#define XkbLC_ForceLatin1Lookup (1<<0)
+#define XkbLC_ConsumeLookupMods (1<<1)
+#define XkbLC_AlwaysConsumeShiftAndLock (1<<2)
+#define XkbLC_IgnoreNewKeyboards (1<<3)
+#define XkbLC_ControlFallback (1<<4)
+#define XkbLC_ConsumeKeysOnComposeFail (1<<29)
+#define XkbLC_ComposeLED (1<<30)
+#define XkbLC_BeepOnComposeFail (1<<31)
+
+#define XkbLC_AllComposeControls (0xc0000000)
+#define XkbLC_AllControls (0xc000001f)
+
+_XFUNCPROTOBEGIN
+
+extern Bool XkbIgnoreExtension(
+ Bool /* ignore */
+);
+
+extern Display *XkbOpenDisplay(
+ char * /* name */,
+ int * /* ev_rtrn */,
+ int * /* err_rtrn */,
+ int * /* major_rtrn */,
+ int * /* minor_rtrn */,
+ int * /* reason */
+);
+
+extern Bool XkbQueryExtension(
+ Display * /* dpy */,
+ int * /* opcodeReturn */,
+ int * /* eventBaseReturn */,
+ int * /* errorBaseReturn */,
+ int * /* majorRtrn */,
+ int * /* minorRtrn */
+);
+
+extern Bool XkbUseExtension(
+ Display * /* dpy */,
+ int * /* major_rtrn */,
+ int * /* minor_rtrn */
+);
+
+extern Bool XkbLibraryVersion(
+ int * /* libMajorRtrn */,
+ int * /* libMinorRtrn */
+);
+
+extern unsigned int XkbSetXlibControls(
+ Display* /* dpy */,
+ unsigned int /* affect */,
+ unsigned int /* values */
+);
+
+extern unsigned int XkbGetXlibControls(
+ Display* /* dpy */
+);
+
+extern unsigned int XkbXlibControlsImplemented(void);
+
+typedef Atom (*XkbInternAtomFunc)(
+ Display * /* dpy */,
+ _Xconst char * /* name */,
+ Bool /* only_if_exists */
+);
+
+typedef char * (*XkbGetAtomNameFunc)(
+ Display * /* dpy */,
+ Atom /* atom */
+);
+
+extern void XkbSetAtomFuncs(
+ XkbInternAtomFunc /* getAtom */,
+ XkbGetAtomNameFunc /* getName */
+);
+
+extern KeySym XkbKeycodeToKeysym(
+ Display * /* dpy */,
+#if NeedWidePrototypes
+ unsigned int /* kc */,
+#else
+ KeyCode /* kc */,
+#endif
+ int /* group */,
+ int /* level */
+);
+
+extern unsigned int XkbKeysymToModifiers(
+ Display * /* dpy */,
+ KeySym /* ks */
+);
+
+extern Bool XkbLookupKeySym(
+ Display * /* dpy */,
+ KeyCode /* keycode */,
+ unsigned int /* modifiers */,
+ unsigned int * /* modifiers_return */,
+ KeySym * /* keysym_return */
+);
+
+extern int XkbLookupKeyBinding(
+ Display * /* dpy */,
+ KeySym /* sym_rtrn */,
+ unsigned int /* mods */,
+ char * /* buffer */,
+ int /* nbytes */,
+ int * /* extra_rtrn */
+);
+
+extern Bool XkbTranslateKeyCode(
+ XkbDescPtr /* xkb */,
+ KeyCode /* keycode */,
+ unsigned int /* modifiers */,
+ unsigned int * /* modifiers_return */,
+ KeySym * /* keysym_return */
+);
+
+extern int XkbTranslateKeySym(
+ Display * /* dpy */,
+ register KeySym * /* sym_return */,
+ unsigned int /* modifiers */,
+ char * /* buffer */,
+ int /* nbytes */,
+ int * /* extra_rtrn */
+);
+
+extern Bool XkbSetAutoRepeatRate(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* delay */,
+ unsigned int /* interval */
+);
+
+extern Bool XkbGetAutoRepeatRate(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int * /* delayRtrn */,
+ unsigned int * /* intervalRtrn */
+);
+
+extern Bool XkbChangeEnabledControls(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* affect */,
+ unsigned int /* values */
+);
+
+extern Bool XkbDeviceBell(
+ Display * /* dpy */,
+ Window /* win */,
+ int /* deviceSpec */,
+ int /* bellClass */,
+ int /* bellID */,
+ int /* percent */,
+ Atom /* name */
+);
+
+extern Bool XkbForceDeviceBell(
+ Display * /* dpy */,
+ int /* deviceSpec */,
+ int /* bellClass */,
+ int /* bellID */,
+ int /* percent */
+);
+
+extern Bool XkbDeviceBellEvent(
+ Display * /* dpy */,
+ Window /* win */,
+ int /* deviceSpec */,
+ int /* bellClass */,
+ int /* bellID */,
+ int /* percent */,
+ Atom /* name */
+);
+
+extern Bool XkbBell(
+ Display * /* dpy */,
+ Window /* win */,
+ int /* percent */,
+ Atom /* name */
+);
+
+extern Bool XkbForceBell(
+ Display * /* dpy */,
+ int /* percent */
+);
+
+extern Bool XkbBellEvent(
+ Display * /* dpy */,
+ Window /* win */,
+ int /* percent */,
+ Atom /* name */
+);
+
+extern Bool XkbSelectEvents(
+ Display * /* dpy */,
+ unsigned int /* deviceID */,
+ unsigned int /* affect */,
+ unsigned int /* values */
+);
+
+extern Bool XkbSelectEventDetails(
+ Display * /* dpy */,
+ unsigned int /* deviceID */,
+ unsigned int /* eventType */,
+ unsigned long /* affect */,
+ unsigned long /* details */
+);
+
+extern void XkbNoteMapChanges(
+ XkbMapChangesPtr /* old */,
+ XkbMapNotifyEvent * /* new */,
+ unsigned int /* wanted */
+);
+
+extern void XkbNoteNameChanges(
+ XkbNameChangesPtr /* old */,
+ XkbNamesNotifyEvent * /* new */,
+ unsigned int /* wanted */
+);
+
+extern Status XkbGetIndicatorState(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int * /* pStateRtrn */
+);
+
+extern Status XkbGetDeviceIndicatorState(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* ledClass */,
+ unsigned int /* ledID */,
+ unsigned int * /* pStateRtrn */
+);
+
+extern Status XkbGetIndicatorMap(
+ Display * /* dpy */,
+ unsigned long /* which */,
+ XkbDescPtr /* desc */
+);
+
+extern Bool XkbSetIndicatorMap(
+ Display * /* dpy */,
+ unsigned long /* which */,
+ XkbDescPtr /* desc */
+);
+
+#define XkbNoteIndicatorMapChanges(o,n,w) \
+ ((o)->map_changes|=((n)->map_changes&(w)))
+#define XkbNoteIndicatorStateChanges(o,n,w)\
+ ((o)->state_changes|=((n)->state_changes&(w)))
+#define XkbGetIndicatorMapChanges(d,x,c) \
+ (XkbGetIndicatorMap((d),(c)->map_changes,x))
+#define XkbChangeIndicatorMaps(d,x,c) \
+ (XkbSetIndicatorMap((d),(c)->map_changes,x))
+
+extern Bool XkbGetNamedIndicator(
+ Display * /* dpy */,
+ Atom /* name */,
+ int * /* pNdxRtrn */,
+ Bool * /* pStateRtrn */,
+ XkbIndicatorMapPtr /* pMapRtrn */,
+ Bool * /* pRealRtrn */
+);
+
+extern Bool XkbGetNamedDeviceIndicator(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* ledClass */,
+ unsigned int /* ledID */,
+ Atom /* name */,
+ int * /* pNdxRtrn */,
+ Bool * /* pStateRtrn */,
+ XkbIndicatorMapPtr /* pMapRtrn */,
+ Bool * /* pRealRtrn */
+);
+
+extern Bool XkbSetNamedIndicator(
+ Display * /* dpy */,
+ Atom /* name */,
+ Bool /* changeState */,
+ Bool /* state */,
+ Bool /* createNewMap */,
+ XkbIndicatorMapPtr /* pMap */
+);
+
+extern Bool XkbSetNamedDeviceIndicator(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* ledClass */,
+ unsigned int /* ledID */,
+ Atom /* name */,
+ Bool /* changeState */,
+ Bool /* state */,
+ Bool /* createNewMap */,
+ XkbIndicatorMapPtr /* pMap */
+);
+
+extern Bool XkbLockModifiers(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* affect */,
+ unsigned int /* values */
+);
+
+extern Bool XkbLatchModifiers(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* affect */,
+ unsigned int /* values */
+);
+
+extern Bool XkbLockGroup(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* group */
+);
+
+extern Bool XkbLatchGroup(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* group */
+);
+
+extern Bool XkbSetServerInternalMods(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* affectReal */,
+ unsigned int /* realValues */,
+ unsigned int /* affectVirtual */,
+ unsigned int /* virtualValues */
+);
+
+extern Bool XkbSetIgnoreLockMods(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* affectReal */,
+ unsigned int /* realValues */,
+ unsigned int /* affectVirtual */,
+ unsigned int /* virtualValues */
+);
+
+
+extern Bool XkbVirtualModsToReal(
+ XkbDescPtr /* xkb */,
+ unsigned int /* virtual_mask */,
+ unsigned int * /* mask_rtrn */
+);
+
+extern Bool XkbComputeEffectiveMap(
+ XkbDescPtr /* xkb */,
+ XkbKeyTypePtr /* type */,
+ unsigned char * /* map_rtrn */
+);
+
+extern Status XkbInitCanonicalKeyTypes(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which */,
+ int /* keypadVMod */
+);
+
+extern XkbDescPtr XkbAllocKeyboard(
+ void
+);
+
+extern void XkbFreeKeyboard(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which */,
+ Bool /* freeDesc */
+);
+
+extern Status XkbAllocClientMap(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which */,
+ unsigned int /* nTypes */
+);
+
+extern Status XkbAllocServerMap(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which */,
+ unsigned int /* nActions */
+);
+
+extern void XkbFreeClientMap(
+ XkbDescPtr /* xkb */,
+ unsigned int /* what */,
+ Bool /* freeMap */
+);
+
+extern void XkbFreeServerMap(
+ XkbDescPtr /* xkb */,
+ unsigned int /* what */,
+ Bool /* freeMap */
+);
+
+extern XkbKeyTypePtr XkbAddKeyType(
+ XkbDescPtr /* xkb */,
+ Atom /* name */,
+ int /* map_count */,
+ Bool /* want_preserve */,
+ int /* num_lvls */
+);
+
+extern Status XkbAllocIndicatorMaps(
+ XkbDescPtr /* xkb */
+);
+
+extern void XkbFreeIndicatorMaps(
+ XkbDescPtr /* xkb */
+);
+
+extern XkbDescPtr XkbGetMap(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ unsigned int /* deviceSpec */
+);
+
+extern Status XkbGetUpdatedMap(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ XkbDescPtr /* desc */
+);
+
+extern Status XkbGetMapChanges(
+ Display * /* dpy */,
+ XkbDescPtr /* xkb */,
+ XkbMapChangesPtr /* changes */
+);
+
+
+extern Status XkbRefreshKeyboardMapping(
+ XkbMapNotifyEvent * /* event */
+);
+
+extern Status XkbGetKeyTypes(
+ Display * /* dpy */,
+ unsigned int /* first */,
+ unsigned int /* num */,
+ XkbDescPtr /* xkb */
+);
+
+extern Status XkbGetKeySyms(
+ Display * /* dpy */,
+ unsigned int /* first */,
+ unsigned int /* num */,
+ XkbDescPtr /* xkb */
+);
+
+extern Status XkbGetKeyActions(
+ Display * /* dpy */,
+ unsigned int /* first */,
+ unsigned int /* num */,
+ XkbDescPtr /* xkb */
+);
+
+extern Status XkbGetKeyBehaviors(
+ Display * /* dpy */,
+ unsigned int /* firstKey */,
+ unsigned int /* nKeys */,
+ XkbDescPtr /* desc */
+);
+
+extern Status XkbGetVirtualMods(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ XkbDescPtr /* desc */
+);
+
+extern Status XkbGetKeyExplicitComponents(
+ Display * /* dpy */,
+ unsigned int /* firstKey */,
+ unsigned int /* nKeys */,
+ XkbDescPtr /* desc */
+);
+
+extern Status XkbGetKeyModifierMap(
+ Display * /* dpy */,
+ unsigned int /* firstKey */,
+ unsigned int /* nKeys */,
+ XkbDescPtr /* desc */
+);
+
+extern Status XkbGetKeyVirtualModMap(
+ Display * /* dpy */,
+ unsigned int /* first */,
+ unsigned int /* num */,
+ XkbDescPtr /* xkb */
+);
+
+extern Status XkbAllocControls(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which*/
+);
+
+extern void XkbFreeControls(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which */,
+ Bool /* freeMap */
+);
+
+extern Status XkbGetControls(
+ Display * /* dpy */,
+ unsigned long /* which */,
+ XkbDescPtr /* desc */
+);
+
+extern Bool XkbSetControls(
+ Display * /* dpy */,
+ unsigned long /* which */,
+ XkbDescPtr /* desc */
+);
+
+extern void XkbNoteControlsChanges(
+ XkbControlsChangesPtr /* old */,
+ XkbControlsNotifyEvent * /* new */,
+ unsigned int /* wanted */
+);
+
+#define XkbGetControlsChanges(d,x,c) XkbGetControls(d,(c)->changed_ctrls,x)
+#define XkbChangeControls(d,x,c) XkbSetControls(d,(c)->changed_ctrls,x)
+
+extern Status XkbAllocCompatMap(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which */,
+ unsigned int /* nInterpret */
+);
+
+extern void XkbFreeCompatMap(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which */,
+ Bool /* freeMap */
+);
+
+extern Status XkbGetCompatMap(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ XkbDescPtr /* xkb */
+);
+
+extern Bool XkbSetCompatMap(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ XkbDescPtr /* xkb */,
+ Bool /* updateActions */
+);
+
+extern XkbSymInterpretPtr XkbAddSymInterpret(
+ XkbDescPtr /* xkb */,
+ XkbSymInterpretPtr /* si */,
+ Bool /* updateMap */,
+ XkbChangesPtr /* changes */
+);
+
+extern Status XkbAllocNames(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which */,
+ int /* nTotalRG */,
+ int /* nTotalAliases */
+);
+
+extern Status XkbGetNames(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ XkbDescPtr /* desc */
+);
+
+extern Bool XkbSetNames(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ unsigned int /* firstType */,
+ unsigned int /* nTypes */,
+ XkbDescPtr /* desc */
+);
+
+extern Bool XkbChangeNames(
+ Display * /* dpy */,
+ XkbDescPtr /* xkb */,
+ XkbNameChangesPtr /* changes */
+);
+
+extern void XkbFreeNames(
+ XkbDescPtr /* xkb */,
+ unsigned int /* which */,
+ Bool /* freeMap */
+);
+
+
+extern Status XkbGetState(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ XkbStatePtr /* rtrnState */
+);
+
+extern Bool XkbSetMap(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ XkbDescPtr /* desc */
+);
+
+extern Bool XkbChangeMap(
+ Display* /* dpy */,
+ XkbDescPtr /* desc */,
+ XkbMapChangesPtr /* changes */
+);
+
+extern Bool XkbSetDetectableAutoRepeat(
+ Display * /* dpy */,
+ Bool /* detectable */,
+ Bool * /* supported */
+);
+
+extern Bool XkbGetDetectableAutoRepeat(
+ Display * /* dpy */,
+ Bool * /* supported */
+);
+
+extern Bool XkbSetAutoResetControls(
+ Display * /* dpy */,
+ unsigned int /* changes */,
+ unsigned int * /* auto_ctrls */,
+ unsigned int * /* auto_values */
+);
+
+extern Bool XkbGetAutoResetControls(
+ Display * /* dpy */,
+ unsigned int * /* auto_ctrls */,
+ unsigned int * /* auto_ctrl_values */
+);
+
+extern Bool XkbSetPerClientControls(
+ Display * /* dpy */,
+ unsigned int /* change */,
+ unsigned int * /* values */
+);
+
+extern Bool XkbGetPerClientControls(
+ Display * /* dpy */,
+ unsigned int * /* ctrls */
+);
+
+extern Status XkbCopyKeyType(
+ XkbKeyTypePtr /* from */,
+ XkbKeyTypePtr /* into */
+);
+
+extern Status XkbCopyKeyTypes(
+ XkbKeyTypePtr /* from */,
+ XkbKeyTypePtr /* into */,
+ int /* num_types */
+);
+
+extern Status XkbResizeKeyType(
+ XkbDescPtr /* xkb */,
+ int /* type_ndx */,
+ int /* map_count */,
+ Bool /* want_preserve */,
+ int /* new_num_lvls */
+);
+
+extern KeySym *XkbResizeKeySyms(
+ XkbDescPtr /* desc */,
+ int /* forKey */,
+ int /* symsNeeded */
+);
+
+extern XkbAction *XkbResizeKeyActions(
+ XkbDescPtr /* desc */,
+ int /* forKey */,
+ int /* actsNeeded */
+);
+
+extern Status XkbChangeTypesOfKey(
+ XkbDescPtr /* xkb */,
+ int /* key */,
+ int /* num_groups */,
+ unsigned int /* groups */,
+ int * /* newTypes */,
+ XkbMapChangesPtr /* pChanges */
+);
+
+extern Status XkbChangeKeycodeRange(
+ XkbDescPtr /* xkb */,
+ int /* minKC */,
+ int /* maxKC */,
+ XkbChangesPtr /* changes */
+);
+
+/***====================================================================***/
+
+extern XkbComponentListPtr XkbListComponents(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ XkbComponentNamesPtr /* ptrns */,
+ int * /* max_inout */
+);
+
+extern void XkbFreeComponentList(
+ XkbComponentListPtr /* list */
+);
+
+extern XkbDescPtr XkbGetKeyboard(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ unsigned int /* deviceSpec */
+);
+
+extern XkbDescPtr XkbGetKeyboardByName(
+ Display * /* dpy */,
+ unsigned int /* deviceSpec */,
+ XkbComponentNamesPtr /* names */,
+ unsigned int /* want */,
+ unsigned int /* need */,
+ Bool /* load */
+);
+
+/***====================================================================***/
+
+extern int XkbKeyTypesForCoreSymbols( /* returns # of groups */
+ XkbDescPtr /* xkb */, /* keyboard device */
+ int /* map_width */, /* width of core KeySym array */
+ KeySym * /* core_syms */, /* always mapWidth symbols */
+ unsigned int /* protected */, /* explicit key types */
+ int * /* types_inout */, /* always four type indices */
+ KeySym * /* xkb_syms_rtrn */ /* must have enough space */
+);
+
+extern Bool XkbApplyCompatMapToKey( /* False only on error */
+ XkbDescPtr /* xkb */, /* keymap to be edited */
+ KeyCode /* key */, /* key to be updated */
+ XkbChangesPtr /* changes */ /* resulting changes to map */
+);
+
+extern Bool XkbUpdateMapFromCore( /* False only on error */
+ XkbDescPtr /* xkb */, /* XKB keyboard to be edited */
+ KeyCode /* first_key */, /* first changed key */
+ int /* num_keys */, /* number of changed keys */
+ int /* map_width */, /* width of core keymap */
+ KeySym * /* core_keysyms */, /* symbols from core keymap */
+ XkbChangesPtr /* changes */ /* resulting changes */
+);
+
+/***====================================================================***/
+
+extern XkbDeviceLedInfoPtr XkbAddDeviceLedInfo(
+ XkbDeviceInfoPtr /* devi */,
+ unsigned int /* ledClass */,
+ unsigned int /* ledId */
+);
+
+extern Status XkbResizeDeviceButtonActions(
+ XkbDeviceInfoPtr /* devi */,
+ unsigned int /* newTotal */
+);
+
+extern XkbDeviceInfoPtr XkbAllocDeviceInfo(
+ unsigned int /* deviceSpec */,
+ unsigned int /* nButtons */,
+ unsigned int /* szLeds */
+);
+
+extern void XkbFreeDeviceInfo(
+ XkbDeviceInfoPtr /* devi */,
+ unsigned int /* which */,
+ Bool /* freeDevI */
+);
+
+extern void XkbNoteDeviceChanges(
+ XkbDeviceChangesPtr /* old */,
+ XkbExtensionDeviceNotifyEvent * /* new */,
+ unsigned int /* wanted */
+);
+
+extern XkbDeviceInfoPtr XkbGetDeviceInfo(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ unsigned int /* deviceSpec */,
+ unsigned int /* ledClass */,
+ unsigned int /* ledID */
+);
+
+extern Status XkbGetDeviceInfoChanges(
+ Display * /* dpy */,
+ XkbDeviceInfoPtr /* devi */,
+ XkbDeviceChangesPtr /* changes */
+);
+
+extern Status XkbGetDeviceButtonActions(
+ Display * /* dpy */,
+ XkbDeviceInfoPtr /* devi */,
+ Bool /* all */,
+ unsigned int /* first */,
+ unsigned int /* nBtns */
+);
+
+extern Status XkbGetDeviceLedInfo(
+ Display * /* dpy */,
+ XkbDeviceInfoPtr /* devi */,
+ unsigned int /* ledClass (class, XIDflt, XIAll) */,
+ unsigned int /* ledId (id, XIDflt, XIAll) */,
+ unsigned int /* which (XkbXI_Indicator{Names,Map}Mask */
+);
+
+extern Bool XkbSetDeviceInfo(
+ Display * /* dpy */,
+ unsigned int /* which */,
+ XkbDeviceInfoPtr /* devi */
+);
+
+extern Bool XkbChangeDeviceInfo(
+ Display* /* dpy */,
+ XkbDeviceInfoPtr /* desc */,
+ XkbDeviceChangesPtr /* changes */
+);
+
+extern Bool XkbSetDeviceLedInfo(
+ Display * /* dpy */,
+ XkbDeviceInfoPtr /* devi */,
+ unsigned int /* ledClass */,
+ unsigned int /* ledID */,
+ unsigned int /* which */
+);
+
+extern Bool XkbSetDeviceButtonActions(
+ Display * /* dpy */,
+ XkbDeviceInfoPtr /* devi */,
+ unsigned int /* first */,
+ unsigned int /* nBtns */
+);
+
+/***====================================================================***/
+
+extern char XkbToControl(
+ char /* c */
+);
+
+/***====================================================================***/
+
+extern Bool XkbSetDebuggingFlags(
+ Display * /* dpy */,
+ unsigned int /* mask */,
+ unsigned int /* flags */,
+ char * /* msg */,
+ unsigned int /* ctrls_mask */,
+ unsigned int /* ctrls */,
+ unsigned int * /* rtrn_flags */,
+ unsigned int * /* rtrn_ctrls */
+);
+
+extern Bool XkbApplyVirtualModChanges(
+ XkbDescPtr /* xkb */,
+ unsigned int /* changed */,
+ XkbChangesPtr /* changes */
+);
+
+extern Bool XkbUpdateActionVirtualMods(
+ XkbDescPtr /* xkb */,
+ XkbAction * /* act */,
+ unsigned int /* changed */
+);
+
+extern void XkbUpdateKeyTypeVirtualMods(
+ XkbDescPtr /* xkb */,
+ XkbKeyTypePtr /* type */,
+ unsigned int /* changed */,
+ XkbChangesPtr /* changes */
+);
+
+_XFUNCPROTOEND
+
+#endif /* _X11_XKBLIB_H_ */
diff --git a/X11/Xauth.h b/X11/Xauth.h
new file mode 100644
index 000000000..a707bed8c
--- /dev/null
+++ b/X11/Xauth.h
@@ -0,0 +1,149 @@
+/*
+
+Copyright 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+#ifndef _Xauth_h
+#define _Xauth_h
+
+/* struct xauth is full of implicit padding to properly align the pointers
+ after the length fields. We can't clean that up without breaking ABI,
+ so tell clang not to bother complaining about it. */
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+typedef struct xauth {
+ unsigned short family;
+ unsigned short address_length;
+ char *address;
+ unsigned short number_length;
+ char *number;
+ unsigned short name_length;
+ char *name;
+ unsigned short data_length;
+ char *data;
+} Xauth;
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+#ifndef _XAUTH_STRUCT_ONLY
+
+# include <X11/Xfuncproto.h>
+# include <X11/Xfuncs.h>
+
+# include <stdio.h>
+
+# define FamilyLocal (256) /* not part of X standard (i.e. X.h) */
+# define FamilyWild (65535)
+# define FamilyNetname (254) /* not part of X standard */
+# define FamilyKrb5Principal (253) /* Kerberos 5 principal name */
+# define FamilyLocalHost (252) /* for local non-net authentication */
+
+
+_XFUNCPROTOBEGIN
+
+char *XauFileName(void);
+
+Xauth *XauReadAuth(
+FILE* /* auth_file */
+);
+
+int XauLockAuth(
+_Xconst char* /* file_name */,
+int /* retries */,
+int /* timeout */,
+long /* dead */
+);
+
+int XauUnlockAuth(
+_Xconst char* /* file_name */
+);
+
+int XauWriteAuth(
+FILE* /* auth_file */,
+Xauth* /* auth */
+);
+
+Xauth *XauGetAuthByAddr(
+#if NeedWidePrototypes
+unsigned int /* family */,
+unsigned int /* address_length */,
+#else
+unsigned short /* family */,
+unsigned short /* address_length */,
+#endif
+_Xconst char* /* address */,
+#if NeedWidePrototypes
+unsigned int /* number_length */,
+#else
+unsigned short /* number_length */,
+#endif
+_Xconst char* /* number */,
+#if NeedWidePrototypes
+unsigned int /* name_length */,
+#else
+unsigned short /* name_length */,
+#endif
+_Xconst char* /* name */
+);
+
+Xauth *XauGetBestAuthByAddr(
+#if NeedWidePrototypes
+unsigned int /* family */,
+unsigned int /* address_length */,
+#else
+unsigned short /* family */,
+unsigned short /* address_length */,
+#endif
+_Xconst char* /* address */,
+#if NeedWidePrototypes
+unsigned int /* number_length */,
+#else
+unsigned short /* number_length */,
+#endif
+_Xconst char* /* number */,
+int /* types_length */,
+char** /* type_names */,
+_Xconst int* /* type_lengths */
+);
+
+void XauDisposeAuth(
+Xauth* /* auth */
+);
+
+_XFUNCPROTOEND
+
+/* Return values from XauLockAuth */
+
+# define LOCK_SUCCESS 0 /* lock succeeded */
+# define LOCK_ERROR 1 /* lock unexpectely failed, check errno */
+# define LOCK_TIMEOUT 2 /* lock failed, timeouts expired */
+
+#endif /* _XAUTH_STRUCT_ONLY */
+
+#endif /* _Xauth_h */
diff --git a/X11/Xaw/AllWidgets.h b/X11/Xaw/AllWidgets.h
new file mode 100644
index 000000000..4c81cc0ce
--- /dev/null
+++ b/X11/Xaw/AllWidgets.h
@@ -0,0 +1,37 @@
+/*
+ *
+Copyright 1990, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ */
+
+#ifndef _XawAllWidgets_h
+#define _XawAllWidgets_h
+
+#include <X11/Xmu/WidgetNode.h>
+
+/*
+ * This file matches the generated AllWidgets.c
+ */
+extern XmuWidgetNode XawWidgetArray[];
+extern int XawWidgetCount;
+
+#endif /* _XawAllWidgets_h */
diff --git a/X11/Xaw/AsciiSink.h b/X11/Xaw/AsciiSink.h
new file mode 100644
index 000000000..27d8f48c5
--- /dev/null
+++ b/X11/Xaw/AsciiSink.h
@@ -0,0 +1,77 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawAsciiSink_h
+#define _XawAsciiSink_h
+
+/*
+ * AsciiSink Object
+ */
+
+#include <X11/Xaw/TextSink.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ echo Output Boolean True
+ displayNonprinting Output Boolean True
+
+*/
+
+#define XtCOutput "Output"
+
+#define XtNdisplayNonprinting "displayNonprinting"
+#define XtNecho "echo"
+
+/* Class record constants */
+extern WidgetClass asciiSinkObjectClass;
+
+typedef struct _AsciiSinkClassRec *AsciiSinkObjectClass;
+typedef struct _AsciiSinkRec *AsciiSinkObject;
+
+#endif /* _XawAsciiSink_h */
diff --git a/X11/Xaw/AsciiSinkP.h b/X11/Xaw/AsciiSinkP.h
new file mode 100644
index 000000000..4bf440acb
--- /dev/null
+++ b/X11/Xaw/AsciiSinkP.h
@@ -0,0 +1,95 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawAsciiSinkP_h
+#define _XawAsciiSinkP_h
+
+/*
+ * AsciiSink Object Private Data
+ */
+#include <X11/Xaw/TextSinkP.h>
+#include <X11/Xaw/AsciiSink.h>
+
+/* New fields for the AsciiSink object class record */
+typedef struct _AsciiSinkClassPart {
+ XtPointer extension;
+} AsciiSinkClassPart;
+
+/* Full class record declaration */
+typedef struct _AsciiSinkClassRec {
+ ObjectClassPart object_class;
+ TextSinkClassPart text_sink_class;
+ AsciiSinkClassPart ascii_sink_class;
+} AsciiSinkClassRec;
+
+extern AsciiSinkClassRec asciiSinkClassRec;
+
+/* New fields for the AsciiSink object record */
+typedef struct {
+ /* resources */
+ XFontStruct *font; /* Font to draw in. */
+ Boolean echo;
+ Boolean display_nonprinting;
+
+ /* private */
+ GC normgc, invgc, xorgc;
+ XawTextPosition cursor_position;
+ XawTextInsertState laststate;
+ short cursor_x, cursor_y; /* Cursor Location. */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} AsciiSinkPart;
+
+/* Full instance record declaration */
+typedef struct _AsciiSinkRec {
+ ObjectPart object;
+ TextSinkPart text_sink;
+ AsciiSinkPart ascii_sink;
+} AsciiSinkRec;
+
+#endif /* _XawAsciiSinkP_h */
diff --git a/X11/Xaw/AsciiSrc.h b/X11/Xaw/AsciiSrc.h
new file mode 100644
index 000000000..08c5f8c26
--- /dev/null
+++ b/X11/Xaw/AsciiSrc.h
@@ -0,0 +1,172 @@
+/*
+
+Copyright 1989, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+
+/*
+ * AsciiSrc.h - Public Header file for Ascii Text Source.
+ *
+ * This is the public header file for the Ascii Text Source.
+ * It is intended to be used with the Text widget, the simplest way to use
+ * this text source is to use the AsciiText Object.
+ *
+ * Date: June 29, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+
+#ifndef _XawAsciiSrc_h
+#define _XawAsciiSrc_h
+
+#include <X11/Xaw/TextSrc.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ dataCompression DataCompression Boolean True
+ length Length int (internal)
+ pieceSize PieceSize int BUFSIZ
+ string String String NULL
+ type Type XawAsciiType XawAsciiString
+ useStringInPlace UseStringInPlace Boolean False
+
+*/
+
+extern WidgetClass asciiSrcObjectClass;
+
+typedef struct _AsciiSrcClassRec *AsciiSrcObjectClass;
+typedef struct _AsciiSrcRec *AsciiSrcObject;
+
+#define AsciiSourceObjectClass AsciiSrcObjectClass
+#define AsciiSourceObject AsciiSrcObject
+
+/*
+ * Resource Definitions
+ */
+#define XtCDataCompression "DataCompression"
+#define XtCPieceSize "PieceSize"
+#define XtCType "Type"
+#define XtCUseStringInPlace "UseStringInPlace"
+
+#define XtNdataCompression "dataCompression"
+#define XtNpieceSize "pieceSize"
+#define XtNtype "type"
+#define XtNuseStringInPlace "useStringInPlace"
+
+#define XtRAsciiType "AsciiType"
+
+#define XtEstring "string"
+#define XtEfile "file"
+
+typedef enum {
+ XawAsciiFile,
+ XawAsciiString
+} XawAsciiType;
+
+/*
+ * Public routines
+ */
+
+_XFUNCPROTOBEGIN
+
+/*
+ * Function:
+ * XawAsciiSourceFreeString
+ *
+ * Parameters:
+ * w - AsciiSrc object
+ *
+ * Description:
+ * Frees the string returned by a get values call
+ * on the string when the source is of type string.
+ */
+void XawAsciiSourceFreeString
+(
+ Widget w
+ );
+
+/*
+ * Function:
+ * XawAsciiSave
+ *
+ * Arguments:
+ * w - asciiSrc Object.
+ *
+ * Description:
+ * Saves all the pieces into a file or string as required.
+ *
+ * Returns:
+ * True if the save was successful
+ */
+Bool XawAsciiSave
+(
+ Widget w
+ );
+
+/*
+ * Function:
+ * XawAsciiSaveAsFile
+ *
+ * Parameters:
+ * w - asciiSrc object
+ * name - name of the file to save this file into
+ *
+ * Description:
+ * Save the current buffer as a file.
+ *
+ * Returns:
+ * True if the save was successful
+ */
+Bool XawAsciiSaveAsFile
+(
+ Widget w,
+ _Xconst char *name
+ );
+
+/*
+ * Function:
+ * XawAsciiSourceChanged
+ *
+ * Parameters:
+ * w - asciiSource object
+ *
+ * Description:
+ * Returns true if the source has changed since last saved.
+ *
+ * Returns:
+ * a Boolean (see description)
+ */
+Bool XawAsciiSourceChanged
+(
+ Widget w
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawAsciiSrc_h */
diff --git a/X11/Xaw/AsciiSrcP.h b/X11/Xaw/AsciiSrcP.h
new file mode 100644
index 000000000..1f3f06eec
--- /dev/null
+++ b/X11/Xaw/AsciiSrcP.h
@@ -0,0 +1,139 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+/*
+ * AsciiSrcP.h - Private Header for Ascii Text Source.
+ *
+ * This is the private header file for the Ascii Text Source.
+ * It is intended to be used with the Text widget, the simplest way to use
+ * this text source is to use the AsciiText Object.
+ *
+ * Date: June 29, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _XawAsciiSrcP_h
+#define _XawAsciiSrcP_h
+
+#include <X11/Xaw/TextSrcP.h>
+#include <X11/Xaw/AsciiSrc.h>
+
+#ifdef L_tmpnam
+#define TMPSIZ L_tmpnam
+#else
+#ifdef PATH_MAX
+#define TMPSIZ PATH_MAX
+#else
+#define TMPSIZ 1024 /* bytes to allocate for tmpnam */
+#endif
+#endif
+
+typedef struct _Piece { /* Piece of the text file of BUFSIZ allocated
+ characters */
+ char *text; /* The text in this buffer */
+ XawTextPosition used; /* The number of characters of this buffer
+ that have been used */
+ struct _Piece *prev, *next; /* linked list pointers */
+} Piece;
+
+typedef struct _AsciiSrcClassPart {
+ XtPointer extension;
+} AsciiSrcClassPart;
+
+/* Full class record */
+typedef struct _AsciiSrcClassRec {
+ ObjectClassPart object_class;
+ TextSrcClassPart text_src_class;
+ AsciiSrcClassPart ascii_src_class;
+} AsciiSrcClassRec;
+
+extern AsciiSrcClassRec asciiSrcClassRec;
+
+/* New fields for the AsciiSrc object */
+typedef struct _AsciiSrcPart {
+ /* resources */
+ char *string; /* either the string, or the
+ file name, depending upon the type */
+ XawAsciiType type; /* either string or disk */
+ XawTextPosition piece_size; /* Size of text buffer for each piece */
+ Boolean data_compression; /* compress to minimum memory automatically
+ on save? */
+#ifdef OLDXAW
+ XtCallbackList callback;
+#endif
+ Boolean use_string_in_place;/* Use the string passed in place */
+ int ascii_length; /* length field for ascii string emulation */
+
+#ifdef ASCII_DISK
+ String filename; /* name of file for Compatability */
+#endif /* ASCII_DISK */
+
+ /* private */
+ Boolean is_tempfile; /* Is this a temporary file? */
+#ifdef OLDXAW
+ Boolean changes;
+#endif
+ Boolean allocated_string; /* Have I allocated the
+ string in ascii_src->string? */
+ XawTextPosition length; /* length of file */
+ Piece *first_piece; /* first piece of the text */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} AsciiSrcPart;
+
+/* instance record */
+typedef struct _AsciiSrcRec {
+ ObjectPart object;
+ TextSrcPart text_src;
+ AsciiSrcPart ascii_src;
+} AsciiSrcRec;
+
+#endif /* _XawAsciiSrcP_h */
diff --git a/X11/Xaw/AsciiText.h b/X11/Xaw/AsciiText.h
new file mode 100644
index 000000000..b0b3cd9a6
--- /dev/null
+++ b/X11/Xaw/AsciiText.h
@@ -0,0 +1,123 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+/*
+ * AsciiText.h - Public header file for AsciiText Widget
+ *
+ * This Widget is intended to be used as a simple front end to the
+ * text widget with an ascii source and ascii sink attached to it
+ *
+ * Date: June 29, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+#ifndef _AsciiText_h
+#define _AsciiText_h
+
+#include <X11/Xaw/Text.h>
+#include <X11/Xaw/AsciiSrc.h>
+#include <X11/Xaw/MultiSrc.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ autoFill AutoFill Boolean False
+ background Background Pixel XtDefaultBackground
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ bottomMargin Margin Position 2
+ cursor Cursor Cursor xterm
+ destroyCallback Callback Pointer NULL
+ displayCaret Output Boolean True
+ displayPosition TextPosition int 0
+ editType EditType XawTextEditType XawtextRead
+ font Font XFontStruct* Fixed
+ foreground Foreground Pixel Black
+ height Height Dimension font height
+ insertPosition TextPosition int 0
+ international International Boolean false
+ leftMargin Margin Position 2
+ mappedWhenManaged MappedWhenManaged Boolean True
+ resize Resize XawTextResizeMode XawtextResizeNever
+ rightMargin Margin Position 4
+ scrollHorizontal Scroll XawTextScrollMode XawtextScrollNever
+ scrollVertical Scroll XawTextScrollMode XawtextScrollNever
+ selectTypes SelectTypes Pointer pos/word/line/par/all
+ selection Selection Pointer (empty selection)
+ sensitive Sensitive Boolean True
+ sink TextSink Widget (none)
+ source TextSource Widget (none)
+ string String String NULL
+ topMargin Margin Position 2
+ width Width Dimension 100
+ wrap Wrap XawTextWrapMode XawtextWrapNever
+ x Position Position 0
+ y Position Position 0
+
+ (see also *Src.h and *Sink.h)
+*/
+
+typedef struct _AsciiTextClassRec *AsciiTextWidgetClass;
+typedef struct _AsciiRec *AsciiWidget;
+
+extern WidgetClass asciiTextWidgetClass;
+
+/*
+ * Disk and String Emulation Info
+ */
+#ifdef ASCII_STRING
+extern WidgetClass asciiStringWidgetClass;
+#endif
+
+#ifdef ASCII_DISK
+extern WidgetClass asciiDiskWidgetClass;
+#endif
+
+#endif /* _AsciiText_h */
diff --git a/X11/Xaw/AsciiTextP.h b/X11/Xaw/AsciiTextP.h
new file mode 100644
index 000000000..f91c36241
--- /dev/null
+++ b/X11/Xaw/AsciiTextP.h
@@ -0,0 +1,164 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+/*
+ * AsciiText.c - Private header file for AsciiText Widget.
+ *
+ * This Widget is intended to be used as a simple front end to the
+ * text widget with an ascii source and ascii sink attached to it.
+ *
+ * Date: June 29, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _AsciiTextP_h
+#define _AsciiTextP_h
+
+#include <X11/Xaw/TextP.h>
+#include <X11/Xaw/AsciiText.h>
+#include <X11/Xaw/AsciiSrc.h>
+#include <X11/Xaw/MultiSrc.h>
+
+typedef struct {
+ XtPointer extension;
+} AsciiClassPart;
+
+typedef struct _AsciiTextClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ TextClassPart text_class;
+ AsciiClassPart ascii_class;
+} AsciiTextClassRec;
+
+extern AsciiTextClassRec asciiTextClassRec;
+
+typedef struct {
+ int resource;
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} AsciiPart;
+
+typedef struct _AsciiRec {
+ CorePart core;
+ SimplePart simple;
+ TextPart text;
+ AsciiPart ascii;
+} AsciiRec;
+
+/*
+ * Ascii String Emulation widget
+ */
+#ifdef ASCII_STRING
+typedef struct {
+ XtPointer extension;
+} AsciiStringClassPart;
+
+typedef struct _AsciiStringClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ TextClassPart text_class;
+ AsciiClassPart ascii_class;
+ AsciiStringClassPart string_class;
+} AsciiStringClassRec;
+
+extern AsciiStringClassRec asciiStringClassRec;
+
+typedef struct {
+ int resource;
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} AsciiStringPart;
+
+typedef struct _AsciiStringRec {
+ CorePart core;
+ SimplePart simple;
+ TextPart text;
+ AsciiPart ascii;
+ AsciiStringPart ascii_str;
+} AsciiStringRec;
+#endif /* ASCII_STRING */
+
+#ifdef ASCII_DISK
+/*
+ * Ascii Disk Emulation widget
+ */
+typedef struct {
+ XtPointer extension;
+} AsciiDiskClassPart;
+
+typedef struct _AsciiDiskClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ TextClassPart text_class;
+ AsciiClassPart ascii_class;
+ AsciiDiskClassPart disk_class;
+} AsciiDiskClassRec;
+
+extern AsciiDiskClassRec asciiDiskClassRec;
+
+typedef struct {
+ char resource;
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} AsciiDiskPart;
+
+typedef struct _AsciiDiskRec {
+ CorePart core;
+ SimplePart simple;
+ TextPart text;
+ AsciiPart ascii;
+ AsciiDiskPart ascii_disk;
+} AsciiDiskRec;
+#endif /* ASCII_DISK */
+
+#endif /* _AsciiTextP_h */
diff --git a/X11/Xaw/Box.h b/X11/Xaw/Box.h
new file mode 100644
index 000000000..9eb1884d9
--- /dev/null
+++ b/X11/Xaw/Box.h
@@ -0,0 +1,102 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawBox_h
+#define _XawBox_h
+
+#include <X11/Xmu/Converters.h>
+
+/*
+ * Box Widget (subclass of CompositeClass)
+ */
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ destroyCallback Callback Pointer NULL
+ displayList DisplayList XawDisplayList* NULL
+ hSpace HSpace Dimension 4
+ height Height Dimension 0
+ mappedWhenManaged MappedWhenManaged Boolean True
+ orientation Orientation XtOrientation vertical
+ vSpace VSpace Dimension 4
+ width Width Dimension 0
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#ifndef _XtStringDefs_h_
+#define XtNhSpace "hSpace"
+#define XtNvSpace "vSpace"
+#endif
+
+#ifndef OLDXAW
+#ifndef XawNdisplayList
+#define XawNdisplayList "displayList"
+#endif
+
+#ifndef XawCDisplayList
+#define XawCDisplayList "DisplayList"
+#endif
+
+#ifndef XawRDisplayList
+#define XawRDisplayList "XawDisplayList"
+#endif
+#endif /* OLDXAW */
+
+/* Class record constants */
+extern WidgetClass boxWidgetClass;
+
+typedef struct _BoxClassRec *BoxWidgetClass;
+typedef struct _BoxRec *BoxWidget;
+
+#endif /* _XawBox_h */
diff --git a/X11/Xaw/BoxP.h b/X11/Xaw/BoxP.h
new file mode 100644
index 000000000..b3c2573b1
--- /dev/null
+++ b/X11/Xaw/BoxP.h
@@ -0,0 +1,97 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawBoxP_h
+#define _XawBoxP_h
+
+/*
+ * Box Widget Private Data
+ */
+#include <X11/Xaw/Box.h>
+#include <X11/Xmu/Converters.h>
+#include <X11/Xaw/XawInit.h>
+
+/* New fields for the Box widget class record */
+typedef struct {
+ XtPointer extension;
+} BoxClassPart;
+
+/* Full class record declaration */
+typedef struct _BoxClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ BoxClassPart box_class;
+} BoxClassRec;
+
+extern BoxClassRec boxClassRec;
+
+/* New fields for the Box widget record */
+typedef struct {
+ /* resources */
+ Dimension h_space, v_space;
+ XtOrientation orientation;
+
+ /* private state */
+ Dimension preferred_width, preferred_height;
+ Dimension last_query_width, last_query_height;
+ XtGeometryMask last_query_mode;
+#ifndef OLDXAW
+ XawDisplayList *display_list;
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} BoxPart;
+
+/*
+ * Full instance record declaration
+ */
+typedef struct _BoxRec {
+ CorePart core;
+ CompositePart composite;
+ BoxPart box;
+} BoxRec;
+
+#endif /* _XawBoxP_h */
diff --git a/X11/Xaw/Cardinals.h b/X11/Xaw/Cardinals.h
new file mode 100644
index 000000000..1c536208e
--- /dev/null
+++ b/X11/Xaw/Cardinals.h
@@ -0,0 +1,42 @@
+/*
+
+Copyright 1985, 1986, 1987, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+#ifndef _Cardinals_h
+#define _Cardinals_h
+
+#define ZERO ((Cardinal)0)
+#define ONE ((Cardinal)1)
+#define TWO ((Cardinal)2)
+#define THREE ((Cardinal)3)
+#define FOUR ((Cardinal)4)
+#define FIVE ((Cardinal)5)
+#define SIX ((Cardinal)6)
+#define SEVEN ((Cardinal)7)
+#define EIGHT ((Cardinal)8)
+#define NINE ((Cardinal)9)
+#define TEN ((Cardinal)10)
+
+#endif /* _Cardinals_h */
diff --git a/X11/Xaw/Command.h b/X11/Xaw/Command.h
new file mode 100644
index 000000000..7011fde6e
--- /dev/null
+++ b/X11/Xaw/Command.h
@@ -0,0 +1,116 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawCommand_h
+#define _XawCommand_h
+
+#include <X11/Xaw/Label.h>
+
+/* Command widget resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ accelerators Accelerators AcceleratorTable NULL
+ ancestorSensitive AncestorSensitive Boolean True
+ background Background Pixel XtDefaultBackground
+ backgroundPixmap Pixmap Pixmap XtUnspecifiedPixmap
+ bitmap Pixmap Pixmap None
+ borderColor BorderColor Pixel XtDefaultForeground
+ borderPixmap Pixmap Pixmap XtUnspecifiedPixmap
+ borderWidth BorderWidth Dimension 1
+ callback Callback XtCallbackList NULL
+ colormap Colormap Colormap parent's colormap
+ cornerRoundPercent CornerRoundPercent Dimension 25
+ cursor Cursor Cursor None
+ cursorName Cursor String NULL
+ depth Depth int parent's depth
+ destroyCallback Callback XtCallbackList NULL
+ displayList DisplayList XawDisplayList* NULL
+ encoding Encoding UnsignedChar XawTextEncoding8bit
+ font Font XFontStruct* XtDefaultFont
+ foreground Foreground Pixel XtDefaultForeground
+ height Height Dimension text height
+ highlightThickness Thickness Dimension 0 if shaped, else 2
+ insensitiveBorder Insensitive Pixmap Gray
+ internalHeight Height Dimension 2
+ internalWidth Width Dimension 4
+ justify Justify XtJustify XtJustifyCenter
+ label Label String NULL
+ leftBitmap LeftBitmap Pixmap None
+ mappedWhenManaged MappedWhenManaged Boolean True
+ pointerColor Foreground Pixel XtDefaultForeground
+ pointerColorBackground Background Pixel XtDefaultBackground
+ resize Resize Boolean True
+ screen Screen Screen parent's Screen
+ sensitive Sensitive Boolean True
+ shapeStyle ShapeStyle ShapeStyle Rectangle
+ translations Translations TranslationTable see doc or source
+ width Width Dimension text width
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#define XtNhighlightThickness "highlightThickness"
+
+#define XtNshapeStyle "shapeStyle"
+#define XtCShapeStyle "ShapeStyle"
+#define XtRShapeStyle "ShapeStyle"
+#define XtNcornerRoundPercent "cornerRoundPercent"
+#define XtCCornerRoundPercent "CornerRoundPercent"
+
+#define XawShapeRectangle XmuShapeRectangle
+#define XawShapeOval XmuShapeOval
+#define XawShapeEllipse XmuShapeEllipse
+#define XawShapeRoundedRectangle XmuShapeRoundedRectangle
+
+extern WidgetClass commandWidgetClass;
+
+typedef struct _CommandClassRec *CommandWidgetClass;
+typedef struct _CommandRec *CommandWidget;
+
+#endif /* _XawCommand_h */
diff --git a/X11/Xaw/CommandP.h b/X11/Xaw/CommandP.h
new file mode 100644
index 000000000..d0be64edf
--- /dev/null
+++ b/X11/Xaw/CommandP.h
@@ -0,0 +1,111 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawCommandP_h
+#define _XawCommandP_h
+
+/*
+ * Command Widget Private Data
+ */
+#include <X11/Xaw/Command.h>
+#include <X11/Xaw/LabelP.h>
+
+typedef enum {
+ HighlightNone, /* Do not highlight */
+ HighlightWhenUnset, /* Highlight only when unset, this is
+ to preserve current command widget
+ functionality */
+ HighlightAlways /* Always highlight, lets the toggle widget
+ and other subclasses do the right thing */
+} XtCommandHighlight;
+
+/* New fields for the Command widget class record */
+typedef struct _CommandClass {
+ XtPointer extension;
+} CommandClassPart;
+
+/* Full class record declaration */
+typedef struct _CommandClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ LabelClassPart label_class;
+ CommandClassPart command_class;
+} CommandClassRec;
+
+extern CommandClassRec commandClassRec;
+
+/* New fields for the Command widget record */
+typedef struct {
+ /* resources */
+ Dimension highlight_thickness;
+ XtCallbackList callbacks;
+
+ /* private state */
+ Pixmap gray_pixmap;
+ GC normal_GC;
+ GC inverse_GC;
+ Boolean set;
+ XtCommandHighlight highlighted;
+
+ /* more resources */
+ int shape_style;
+ Dimension corner_round;
+
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} CommandPart;
+
+/* Full widget declaration */
+typedef struct _CommandRec {
+ CorePart core;
+ SimplePart simple;
+ LabelPart label;
+ CommandPart command;
+} CommandRec;
+
+#endif /* _XawCommandP_h */
diff --git a/X11/Xaw/Dialog.h b/X11/Xaw/Dialog.h
new file mode 100644
index 000000000..442d2d2f7
--- /dev/null
+++ b/X11/Xaw/Dialog.h
@@ -0,0 +1,98 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawDialog_h
+#define _XawDialog_h
+
+#include <X11/Xaw/Form.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ borderColor BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ destroyCallback Callback Pointer NULL
+ height Height Dimension computed at create
+ icon Icon Pixmap 0
+ label Label String NULL
+ mappedWhenManaged MappedWhenManaged Boolean True
+ sensitive Sensitive Boolean True
+ value Value String NULL
+ width Width Dimension computed at create
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#define XtCIcon "Icon"
+#define XtNicon "icon"
+
+typedef struct _DialogClassRec *DialogWidgetClass;
+typedef struct _DialogRec *DialogWidget;
+
+extern WidgetClass dialogWidgetClass;
+
+_XFUNCPROTOBEGIN
+
+void XawDialogAddButton
+(
+ Widget dialog,
+ _Xconst char *name,
+ XtCallbackProc function,
+ XtPointer client_data
+ );
+
+char *XawDialogGetValueString
+(
+ Widget w
+);
+
+_XFUNCPROTOEND
+
+#endif /* _XawDialog_h */
diff --git a/X11/Xaw/DialogP.h b/X11/Xaw/DialogP.h
new file mode 100644
index 000000000..8fb47353c
--- /dev/null
+++ b/X11/Xaw/DialogP.h
@@ -0,0 +1,100 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _DialogP_h
+#define _DialogP_h
+
+#include <X11/Xaw/Dialog.h>
+#include <X11/Xaw/FormP.h>
+
+typedef struct {
+ XtPointer extension;
+} DialogClassPart;
+
+typedef struct _DialogClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ConstraintClassPart constraint_class;
+ FormClassPart form_class;
+ DialogClassPart dialog_class;
+} DialogClassRec;
+
+extern DialogClassRec dialogClassRec;
+
+typedef struct _DialogPart {
+ /* resources */
+ String label; /* description of the dialog */
+ String value; /* for the user response */
+ Pixmap icon; /* icon bitmap */
+
+ /* private */
+ Widget iconW; /* widget to display the icon */
+ Widget labelW; /* widget to display description */
+ Widget valueW; /* user response TextWidget */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} DialogPart;
+
+typedef struct _DialogRec {
+ CorePart core;
+ CompositePart composite;
+ ConstraintPart constraint;
+ FormPart form;
+ DialogPart dialog;
+} DialogRec;
+
+typedef struct {
+ XtPointer extension;
+} DialogConstraintsPart;
+
+typedef struct _DialogConstraintsRec {
+ FormConstraintsPart form;
+ DialogConstraintsPart dialog;
+} DialogConstraintsRec, *DialogConstraints;
+
+#endif /* _DialogP_h */
diff --git a/X11/Xaw/Form.h b/X11/Xaw/Form.h
new file mode 100644
index 000000000..71a0bccee
--- /dev/null
+++ b/X11/Xaw/Form.h
@@ -0,0 +1,167 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawForm_h
+#define _XawForm_h
+
+#include <X11/Intrinsic.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ defaultDistance Thickness int 4
+ destroyCallback Callback Pointer NULL
+ displayList DisplayList XawDisplayList* NULL
+ height Height Dimension computed at realize
+ mappedWhenManaged MappedWhenManaged Boolean True
+ sensitive Sensitive Boolean True
+ width Width Dimension computed at realize
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+/* Constraint parameters:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ bottom Edge XtEdgeType XtRubber
+ fromHoriz Widget Widget (left edge of form)
+ fromVert Widget Widget (top of form)
+ horizDistance Thickness int defaultDistance
+ left Edge XtEdgeType XtRubber
+ resizable Boolean Boolean False
+ right Edge XtEdgeType XtRubber
+ top Edge XtEdgeType XtRubber
+ vertDistance Thickness int defaultDistance
+
+*/
+
+
+#ifndef _XtStringDefs_h_
+#define XtNtop "top"
+#define XtRWidget "Widget"
+#endif
+
+#define XtNdefaultDistance "defaultDistance"
+#define XtNbottom "bottom"
+#define XtNleft "left"
+#define XtNright "right"
+#define XtNfromHoriz "fromHoriz"
+#define XtNfromVert "fromVert"
+#define XtNhorizDistance "horizDistance"
+#define XtNvertDistance "vertDistance"
+#define XtNresizable "resizable"
+
+#define XtCEdge "Edge"
+#define XtCWidget "Widget"
+
+typedef enum {
+ XawChainTop, /* Keep this edge a constant distance from
+ the top of the form */
+ XawChainBottom, /* Keep this edge a constant distance from
+ the bottom of the form */
+ XawChainLeft, /* Keep this edge a constant distance from
+ the left of the form */
+ XawChainRight, /* Keep this edge a constant distance from
+ the right of the form */
+ XawRubber /* Keep this edge a proportional distance
+ from the edges of the form */
+} XawEdgeType;
+
+#define XtEdgeType XawEdgeType
+
+#define XtChainTop XawChainTop
+#define XtChainBottom XawChainBottom
+#define XtChainLeft XawChainLeft
+#define XtChainRight XawChainRight
+#define XtRubber XawRubber
+
+#define XtEchainLeft "chainLeft"
+#define XtEchainRight "chainRight"
+#define XtEchainTop "chainTop"
+#define XtEchainBottom "chainBottom"
+#define XtErubber "rubber"
+
+#ifndef OLDXAW
+#ifndef XawNdisplayList
+#define XawNdisplayList "displayList"
+#endif
+
+#ifndef XawCDisplayList
+#define XawCDisplayList "DisplayList"
+#endif
+
+#ifndef XawRDisplayList
+#define XawRDisplayList "XawDisplayList"
+#endif
+#endif
+
+typedef struct _FormClassRec *FormWidgetClass;
+typedef struct _FormRec *FormWidget;
+
+extern WidgetClass formWidgetClass;
+
+_XFUNCPROTOBEGIN
+
+void XawFormDoLayout
+(
+ Widget w,
+#if NeedWidePrototypes
+ Bool do_layout
+#else
+ Boolean do_layout
+#endif
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawForm_h */
diff --git a/X11/Xaw/FormP.h b/X11/Xaw/FormP.h
new file mode 100644
index 000000000..43a58e9d3
--- /dev/null
+++ b/X11/Xaw/FormP.h
@@ -0,0 +1,139 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+/* Form widget private definitions */
+
+#ifndef _XawFormP_h
+#define _XawFormP_h
+
+#include <X11/Xfuncproto.h>
+
+#include <X11/Xaw/Form.h>
+#include <X11/Xaw/XawInit.h>
+
+_XFUNCPROTOBEGIN
+
+#define XtREdgeType "EdgeType"
+
+typedef enum {
+ LayoutPending,
+ LayoutInProgress,
+ LayoutDone
+} LayoutState;
+
+#define XtInheritLayout \
+((Boolean (*)(FormWidget, unsigned int, unsigned int, Bool))_XtInherit)
+
+typedef struct {
+ Boolean(*layout)(FormWidget, unsigned int, unsigned int, Bool);
+#ifndef OLDXAW
+ XtPointer extension;
+#endif
+} FormClassPart;
+
+typedef struct _FormClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ConstraintClassPart constraint_class;
+ FormClassPart form_class;
+} FormClassRec;
+
+extern FormClassRec formClassRec;
+
+typedef struct _FormPart {
+ /* resources */
+ int default_spacing; /* default distance between children */
+
+ /* private */
+ Dimension old_width, old_height; /* reference value for *_virtual */
+ int no_refigure; /* no re-layout while > 0 */
+ Boolean needs_relayout; /* next time no_refigure == 0 */
+ Boolean resize_in_layout; /* should layout() do geom request? */
+ Dimension preferred_width, preferred_height; /* cached from layout */
+ Boolean resize_is_no_op; /* Causes resize to take not action */
+#ifndef OLDXAW
+ XawDisplayList *display_list;
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} FormPart;
+
+typedef struct _FormRec {
+ CorePart core;
+ CompositePart composite;
+ ConstraintPart constraint;
+ FormPart form;
+} FormRec;
+
+typedef struct _FormConstraintsPart {
+ /* resources */
+ XtEdgeType top, bottom, left, right;/* where to drag edge on resize */
+ int dx; /* desired horiz offset */
+ int dy; /* desired vertical offset */
+ Widget horiz_base; /* measure dx from here if non-null */
+ Widget vert_base; /* measure dy from here if non-null */
+ Boolean allow_resize; /* True if child may request resize */
+
+ /* private */
+ short virtual_width, virtual_height;
+ Position new_x, new_y;
+ LayoutState layout_state; /* temporary layout state */
+ Boolean deferred_resize;/* was resized while no_refigure is set */
+#ifndef OLDXAW
+ short virtual_x, virtual_y;
+ XtPointer pad[2]; /* leave some space for further optimizations
+ * in the form widget geometry
+ */
+#endif
+} FormConstraintsPart;
+
+typedef struct _FormConstraintsRec {
+ FormConstraintsPart form;
+} FormConstraintsRec, *FormConstraints;
+
+_XFUNCPROTOEND
+
+#endif /* _XawFormP_h */
diff --git a/X11/Xaw/Grip.h b/X11/Xaw/Grip.h
new file mode 100644
index 000000000..e8892ae60
--- /dev/null
+++ b/X11/Xaw/Grip.h
@@ -0,0 +1,96 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+/*
+ * Grip.h - Public Definitions for Grip widget (used by VPane Widget)
+ *
+ */
+
+#ifndef _XawGrip_h
+#define _XawGrip_h
+
+#include <X11/Xaw/Simple.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ foreground Foreground Pixel XtDefaultForeground
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 0
+ callback Callback Pointer GripAction
+ cursor Cursor Cursor None
+ cursorName Cursor String NULL
+ destroyCallback Callback Pointer NULL
+ height Height Dimension 8
+ mappedWhenManaged MappedWhenManaged Boolean True
+ pointerColor Foreground Pixel XtDefaultForeground
+ pointerColorBackground Background Pixel XtDefaultBackground
+ sensitive Sensitive Boolean True
+ width Width Dimension 8
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#define XtNgripTranslations "gripTranslations"
+
+typedef struct _XawGripCallData {
+ XEvent *event; /* the event causing the GripAction */
+ String *params; /* the TranslationTable params */
+ Cardinal num_params; /* count of params */
+} XawGripCallDataRec, *XawGripCallData,
+ GripCallDataRec, *GripCallData; /* supported for R4 compatibility */
+
+/* Class Record Constant */
+
+extern WidgetClass gripWidgetClass;
+
+typedef struct _GripClassRec *GripWidgetClass;
+typedef struct _GripRec *GripWidget;
+
+#endif /* _XawGrip_h */
diff --git a/X11/Xaw/GripP.h b/X11/Xaw/GripP.h
new file mode 100644
index 000000000..427948afd
--- /dev/null
+++ b/X11/Xaw/GripP.h
@@ -0,0 +1,85 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawGripP_h
+#define _XawGripP_h
+
+#include <X11/Xaw/Grip.h>
+#include <X11/Xaw/SimpleP.h>
+
+#define DEFAULT_GRIP_SIZE 8
+
+/* New fields for the Grip widget class */
+typedef struct {
+ XtPointer extension;
+} GripClassPart;
+
+/* Full Class record */
+typedef struct _GripClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ GripClassPart grip_class;
+} GripClassRec;
+
+extern GripClassRec gripClassRec;
+
+/* New fields for the Grip widget */
+typedef struct {
+ XtCallbackList grip_action;
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} GripPart;
+
+/* Full instance record */
+typedef struct _GripRec {
+ CorePart core;
+ SimplePart simple;
+ GripPart grip;
+} GripRec;
+
+#endif /* _XawGripP_h */
diff --git a/X11/Xaw/Label.h b/X11/Xaw/Label.h
new file mode 100644
index 000000000..175f1c120
--- /dev/null
+++ b/X11/Xaw/Label.h
@@ -0,0 +1,132 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawLabel_h
+#define _XawLabel_h
+
+/*
+ * Label Widget
+ */
+
+#include <X11/Xaw/Simple.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ bitmap Pixmap Pixmap None
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ cursor Cursor Cursor None
+ cursorName Cursor String NULL
+ destroyCallback Callback XtCallbackList NULL
+ encoding Encoding UnsignedChar XawTextEncoding8bit
+ font Font XFontStruct* XtDefaultFont
+ foreground Foreground Pixel XtDefaultForeground
+ height Height Dimension text height
+ insensitiveBorder Insensitive Pixmap Gray
+ internalHeight Height Dimension 2
+ internalWidth Width Dimension 4
+ justify Justify XtJustify XtJustifyCenter
+ label Label String NULL
+ leftBitmap LeftBitmap Pixmap None
+ mappedWhenManaged MappedWhenManaged Boolean True
+ pointerColor Foreground Pixel XtDefaultForeground
+ pointerColorBackground Background Pixel XtDefaultBackground
+ resize Resize Boolean True
+ sensitive Sensitive Boolean True
+ width Width Dimension text width
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#define XawTextEncoding8bit 0
+#define XawTextEncodingChar2b 1
+
+#define XtNleftBitmap "leftBitmap"
+#define XtCLeftBitmap "LeftBitmap"
+#define XtNencoding "encoding"
+#define XtCEncoding "Encoding"
+
+#ifndef XtNfontSet
+#define XtNfontSet "fontSet"
+#endif
+
+#ifndef XtCFontSet
+#define XtCFontSet "FontSet"
+#endif
+
+#ifndef _XtStringDefs_h_
+#define XtNbitmap "bitmap"
+#define XtNforeground "foreground"
+#define XtNlabel "label"
+#define XtNfont "font"
+#define XtNinternalWidth "internalWidth"
+#define XtNinternalHeight "internalHeight"
+#define XtNresize "resize"
+#define XtCResize "Resize"
+#define XtCBitmap "Bitmap"
+#endif
+
+#ifndef XtNlabelX
+#define XtNlabelX "labelX"
+#endif
+
+#ifndef XtNlabelY
+#define XtNlabelY "labelY"
+#endif
+
+/* Class record constants */
+
+extern WidgetClass labelWidgetClass;
+
+typedef struct _LabelClassRec *LabelWidgetClass;
+typedef struct _LabelRec *LabelWidget;
+
+#endif /* _XawLabel_h */
diff --git a/X11/Xaw/LabelP.h b/X11/Xaw/LabelP.h
new file mode 100644
index 000000000..e8cc611a0
--- /dev/null
+++ b/X11/Xaw/LabelP.h
@@ -0,0 +1,115 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawLabelP_h
+#define _XawLabelP_h
+
+/*
+ * Label Widget Private Data
+ */
+#include <X11/Xaw/Label.h>
+#include <X11/Xaw/SimpleP.h>
+
+/* New fields for the Label widget class record */
+typedef struct {
+ XtPointer extension;
+} LabelClassPart;
+
+/* Full class record declaration */
+typedef struct _LabelClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ LabelClassPart label_class;
+} LabelClassRec;
+
+extern LabelClassRec labelClassRec;
+
+/* New fields for the Label widget record */
+typedef struct {
+ /* resources */
+ Pixel foreground;
+ XFontStruct *font;
+ XFontSet fontset;
+ char *label;
+ XtJustify justify;
+ Dimension internal_width;
+ Dimension internal_height;
+ Pixmap pixmap;
+ Boolean resize;
+ unsigned char encoding;
+ Pixmap left_bitmap;
+
+ /* private state */
+ GC normal_GC;
+ GC gray_GC;
+ Pixmap stipple;
+ Position label_x;
+ Position label_y;
+ Dimension label_width;
+ Dimension label_height;
+ Dimension label_len;
+ int lbm_y; /* where in label */
+ unsigned int lbm_width, lbm_height; /* size of pixmap */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} LabelPart;
+
+/*
+ * Full instance record declaration
+ */
+typedef struct _LabelRec {
+ CorePart core;
+ SimplePart simple;
+ LabelPart label;
+} LabelRec;
+
+#define LEFT_OFFSET(lw) ((lw)->label.left_bitmap \
+ ? (lw)->label.lbm_width + (lw)->label.internal_width \
+ : 0)
+
+#endif /* _XawLabelP_h */
diff --git a/X11/Xaw/List.h b/X11/Xaw/List.h
new file mode 100644
index 000000000..7fc59f4fe
--- /dev/null
+++ b/X11/Xaw/List.h
@@ -0,0 +1,234 @@
+/*
+Copyright 1989, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+*/
+
+/* This is the List widget, it is useful to display a list, without the
+ * overhead of having a widget for each item in the list. It allows
+ * the user to select an item in a list and notifies the application through
+ * a callback function.
+ *
+ * Created: 8/13/88
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ */
+
+#ifndef _XawList_h
+#define _XawList_h
+
+#include <X11/Xaw/Simple.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ borderColor BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ callback Callback XtCallbackList NULL **6
+ columnSpacing Spacing Dimension 6
+ cursor Cursor Cursor left_ptr
+ cursorName Cursor String NULL
+ defaultColumns Columns int 2 **5
+ destroyCallback Callback Pointer NULL
+ font Font XFontStruct* XtDefaultFont
+ forceColumns Columns Boolean False **5
+ foreground Foreground Pixel XtDefaultForeground
+ height Height Dimension 0 **1
+ insensitiveBorder Insensitive Pixmap Gray
+ internalHeight Height Dimension 2
+ internalWidth Width Dimension 4
+ list List String* NULL **2
+ longest Longest int 0 **3 **4
+ mappedWhenManaged MappedWhenManaged Boolean True
+ numberStrings NumberStrings int 0 **4
+ pasteBuffer Boolean Boolean False
+ pointerColor Foreground Pixel XtDefaultForeground
+ pointerColorBackground Background Pixel XtDefaultBackground
+ rowSpacing Spacing Dimension 4
+ sensitive Sensitive Boolean True
+ verticalList Boolean Boolean False
+ width Width Dimension 0 **1
+ x Position Position 0
+ y Position Position 0
+
+ **1 - If the Width or Height of the list widget is zero (0) then the value
+ is set to the minimum size necessay to fit the entire list.
+
+ If both Width and Height are zero then they are adjusted to fit the
+ entire list that is created width the number of default columns
+ specified in the defaultColumns resource.
+
+ **2 - This is an array of strings the specify elements of the list.
+ This resource must be specified.
+ (What good is a list widget without a list?? :-)
+
+ **3 - Longest is the length of the widest string in pixels.
+
+ **4 - If either of these values are zero (0) then the list widget calculates
+ the correct value.
+
+ (This allows you to make startup faster if you already have
+ this information calculated)
+
+ NOTE: If the numberStrings value is zero the list must
+ be NULL terminated.
+
+ **5 - By setting the List.Columns resource you can force the application to
+ have a given number of columns.
+
+ **6 - This returns the name and index of the item selected in an
+ XawListReturnStruct that is pointed to by the client_data
+ in the CallbackProc.
+
+*/
+
+/*
+ * Value returned when there are no highlighted objects
+ */
+#define XAW_LIST_NONE -1
+
+#define XtCList "List"
+#define XtCSpacing "Spacing"
+#define XtCColumns "Columns"
+#define XtCLongest "Longest"
+#define XtCNumberStrings "NumberStrings"
+
+#define XtNcursor "cursor"
+#define XtNcolumnSpacing "columnSpacing"
+#define XtNdefaultColumns "defaultColumns"
+#define XtNforceColumns "forceColumns"
+#define XtNlist "list"
+#define XtNlongest "longest"
+#define XtNnumberStrings "numberStrings"
+#define XtNpasteBuffer "pasteBuffer"
+#define XtNrowSpacing "rowSpacing"
+#define XtNverticalList "verticalList"
+#define XtNshowCurrent "showCurrent"
+
+#ifndef XtNfontSet
+#define XtNfontSet "fontSet"
+#endif
+
+#ifndef XtCFontSet
+#define XtCFontSet "FontSet"
+#endif
+
+extern WidgetClass listWidgetClass;
+
+typedef struct _ListClassRec *ListWidgetClass;
+typedef struct _ListRec *ListWidget;
+
+/* list return structure */
+typedef struct _XawListReturnStruct {
+ String string;
+ int list_index;
+} XawListReturnStruct;
+
+_XFUNCPROTOBEGIN
+
+/*
+ * Function:
+ * XawListChange
+ *
+ * Parameters:
+ * w - list widget
+ * list - new list
+ * nitems - number of items in the list
+ * longest - length (in Pixels) of the longest element in the list
+ * resize - if True the the list widget will try to resize itself
+ *
+ * Description:
+ * Changes the list being used and shown.
+ *
+ * Note:
+ * If nitems of longest are <= 0 then they will be caluculated
+ * If nitems is <= 0 then the list needs to be NULL terminated
+ */
+void XawListChange
+(
+ Widget w,
+ String *list,
+ int nitems,
+ int longest,
+#if NeedWidePrototypes
+ int resize
+#else
+ Boolean resize
+#endif
+ );
+
+/*
+ * Function:
+ * XawListUnhighlight
+ *
+ * Parameters:
+ * w - list widget
+ *
+ * Description:
+ * Unlights the current highlighted element.
+ */
+void XawListUnhighlight
+(
+ Widget w
+ );
+
+/*
+ * Function:
+ * XawListHighlight
+ *
+ * Parameters:
+ * w - list widget
+ * item - item to highlight
+ *
+ * Description:
+ * Highlights the given item.
+ */
+void XawListHighlight
+(
+ Widget w,
+ int item
+ );
+
+
+/*
+ * Function:
+ * XawListShowCurrent
+ *
+ * Paraneters:
+ * w - list widget
+ *
+ * Description:
+ * Returns the currently highlighted object.
+ *
+ * Returns:
+ * The info about the currently highlighted object
+ */
+
+XawListReturnStruct *XawListShowCurrent
+(
+ Widget w
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawList_h */
diff --git a/X11/Xaw/ListP.h b/X11/Xaw/ListP.h
new file mode 100644
index 000000000..5f5398223
--- /dev/null
+++ b/X11/Xaw/ListP.h
@@ -0,0 +1,115 @@
+/*
+Copyright 1989, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+*/
+
+
+/*
+ * This is a List widget. It allows the user to select an item in a list and
+ * notifies the application through a callback function.
+ *
+ * Created: 8/13/88
+ * By: Chris D. Peterson
+ * MIT - Project Athena
+ */
+
+#ifndef _XawListP_h
+#define _XawListP_h
+
+/*
+ * List Widget Private Data
+ */
+#include <X11/Xaw/SimpleP.h>
+#include <X11/Xaw/List.h>
+
+#define NO_HIGHLIGHT XAW_LIST_NONE
+#define OUT_OF_RANGE -1
+#define OKAY 0
+
+/* New fields for the List widget class */
+typedef struct {
+ XtPointer extension;
+} ListClassPart;
+
+/* Full class record */
+typedef struct _ListClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ ListClassPart list_class;
+} ListClassRec;
+
+extern ListClassRec listClassRec;
+
+/* New fields for the List widget */
+typedef struct {
+ /* resources */
+ Pixel foreground;
+ Dimension internal_width; /* if not 3d, user sets directly */
+ Dimension internal_height;
+ Dimension column_space; /* half of *_space is add on
+ top/bot/left of */
+ Dimension row_space; /* each item's text bounding box
+ half added to longest for right */
+ int default_cols;
+ Boolean force_cols;
+ Boolean paste;
+ Boolean vertical_cols;
+ int longest; /* in pixels */
+ int nitems;
+ XFontStruct *font;
+ XFontSet fontset; /* Sheeran, Omron KK, 93/03/05 */
+ String *list; /* for i18n, always in multibyte
+ format */
+ XtCallbackList callback;
+
+ /* private */
+ int is_highlighted; /* set to the item currently
+ highlighted */
+ int highlight; /* set to the item that should be
+ highlighted */
+ int col_width; /* width of each column */
+ int row_height; /* height of each row */
+ int nrows; /* number of rows in the list */
+ int ncols; /* number of columns in the list */
+ GC normgc;
+ GC revgc;
+ GC graygc;
+ int freedoms; /* flags for resizing height
+ and width */
+#ifndef OLDXAW
+ int selected;
+ Boolean show_current;
+ char pad1[(sizeof(XtPointer) - sizeof(Boolean)) +
+ (sizeof(XtPointer) - sizeof(int))];
+ XtPointer pad2[2]; /* for future use and keep binary compatability */
+#endif
+} ListPart;
+
+
+/* Full instance record */
+typedef struct _ListRec {
+ CorePart core;
+ SimplePart simple;
+ ListPart list;
+} ListRec;
+
+#endif /* _XawListP_h */
diff --git a/X11/Xaw/MenuButtoP.h b/X11/Xaw/MenuButtoP.h
new file mode 100644
index 000000000..8ee3195c5
--- /dev/null
+++ b/X11/Xaw/MenuButtoP.h
@@ -0,0 +1,79 @@
+/*
+ *
+Copyright 1989,1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ */
+
+/*
+ * MenuButtonP.h - Private Header file for MenuButton widget.
+ *
+ * This is the private header file for the Athena MenuButton widget.
+ * It is intended to provide an easy method of activating pulldown menus.
+ *
+ * Date: May 2, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _XawMenuButtonP_h
+#define _XawMenuButtonP_h
+
+#include <X11/Xaw/MenuButton.h>
+#include <X11/Xaw/CommandP.h>
+
+/* New fields for the MenuButton widget class */
+typedef struct _MenuButtonClass {
+ XtPointer extension;
+} MenuButtonClassPart;
+
+/* class record declaration */
+typedef struct _MenuButtonClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ LabelClassPart label_class;
+ CommandClassPart command_class;
+ MenuButtonClassPart menuButton_class;
+} MenuButtonClassRec;
+
+extern MenuButtonClassRec menuButtonClassRec;
+
+/* New fields for the MenuButton widget */
+typedef struct {
+ /* resources */
+ String menu_name;
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} MenuButtonPart;
+
+/* widget declaration */
+typedef struct _MenuButtonRec {
+ CorePart core;
+ SimplePart simple;
+ LabelPart label;
+ CommandPart command;
+ MenuButtonPart menu_button;
+} MenuButtonRec;
+
+#endif /* _XawMenuButtonP_h */
diff --git a/X11/Xaw/MenuButton.h b/X11/Xaw/MenuButton.h
new file mode 100644
index 000000000..93f096306
--- /dev/null
+++ b/X11/Xaw/MenuButton.h
@@ -0,0 +1,89 @@
+/*
+ *
+Copyright 1989, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ */
+
+/***********************************************************************
+ *
+ * MenuButton Widget
+ *
+ ***********************************************************************/
+
+/*
+ * MenuButton.h - Public Header file for MenuButton widget.
+ *
+ * This is the public header file for the Athena MenuButton widget.
+ * It is intended to provide an easy method of activating pulldown menus.
+ *
+ * Date: May 2, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _XawMenuButton_h
+#define _XawMenuButton_h
+
+#include <X11/Xaw/Command.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ bitmap Pixmap Pixmap None
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ callback Callback Pointer NULL
+ cursor Cursor Cursor None
+ destroyCallback Callback Pointer NULL
+ displayList DisplayList XawDisplayList* NULL
+ font Font XFontStruct* XtDefaultFont
+ foreground Foreground Pixel XtDefaultForeground
+ height Height Dimension text height
+ highlightThickness Thickness Dimension 2
+ insensitiveBorder Insensitive Pixmap Gray
+ internalHeight Height Dimension 2
+ internalWidth Width Dimension 4
+ justify Justify XtJustify XtJustifyCenter
+ label Label String NULL
+ mappedWhenManaged MappedWhenManaged Boolean True
+ menuName MenuName String "menu"
+ resize Resize Boolean True
+ sensitive Sensitive Boolean True
+ width Width Dimension text width
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#define XtNmenuName "menuName"
+#define XtCMenuName "MenuName"
+
+extern WidgetClass menuButtonWidgetClass;
+
+typedef struct _MenuButtonClassRec *MenuButtonWidgetClass;
+typedef struct _MenuButtonRec *MenuButtonWidget;
+
+#endif /* _XawMenuButton_h */
diff --git a/X11/Xaw/MultiSink.h b/X11/Xaw/MultiSink.h
new file mode 100644
index 000000000..3519acc7a
--- /dev/null
+++ b/X11/Xaw/MultiSink.h
@@ -0,0 +1,110 @@
+/*
+ * Copyright 1991 by OMRON Corporation
+ *
+ * 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 OMRON is not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. OMRON makes no representations
+ * about the suitability of this software for any purpose. It is provided
+ * "as is" without express or implied warranty.
+ *
+ * OMRON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL OMRON 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
+ * TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Li Yuhong OMRON Corporation
+ */
+
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawMultiSink_h
+#define _XawMultiSink_h
+
+/*
+ * MultiSink Object
+ */
+
+#include <X11/Xaw/TextSink.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ echo Output Boolean True
+ displayNonprinting Output Boolean True
+ fontSet FontSet XFontSet XtDefaultFontSet
+
+*/
+
+#define XtCOutput "Output"
+
+#define XtNdisplayNonprinting "displayNonprinting"
+#define XtNecho "echo"
+
+#ifndef XtNfontSet /*Sheeran, Omron KK, 93/03/04*/
+#define XtNfontSet "fontSet"
+#endif
+
+#ifndef XtCFontSet /*Sheeran, Omron KK, 93/03/04*/
+#define XtCFontSet "FontSet"
+#endif
+
+/* Class record constants */
+extern WidgetClass multiSinkObjectClass;
+
+typedef struct _MultiSinkClassRec *MultiSinkObjectClass;
+typedef struct _MultiSinkRec *MultiSinkObject;
+
+#endif /* _XawMultiSink_h */
diff --git a/X11/Xaw/MultiSinkP.h b/X11/Xaw/MultiSinkP.h
new file mode 100644
index 000000000..019f5f4b8
--- /dev/null
+++ b/X11/Xaw/MultiSinkP.h
@@ -0,0 +1,138 @@
+/*
+ * Copyright 1991 by OMRON Corporation
+ *
+ * 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 OMRON not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. OMRON make no representations
+ * about the suitability of this software for any purpose. It is provided
+ * "as is" without express or implied warranty.
+ *
+ * OMRON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL OMRON 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
+ * TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Li Yuhong OMRON Corporation
+ */
+
+
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawMultiSinkP_h
+#define _XawMultiSinkP_h
+
+#include <X11/Xfuncproto.h>
+
+/*
+ * MultiSink Object Private Data
+ */
+#include <X11/Xaw/TextSinkP.h>
+#include <X11/Xaw/MultiSink.h>
+
+/* new fields for the MultiSink object class */
+typedef struct _MultiSinkClassPart {
+ XtPointer extension;
+} MultiSinkClassPart;
+
+/* Full class record declaration */
+typedef struct _MultiSinkClassRec {
+ ObjectClassPart object_class;
+ TextSinkClassPart text_sink_class;
+ MultiSinkClassPart multi_sink_class;
+} MultiSinkClassRec;
+
+extern MultiSinkClassRec multiSinkClassRec;
+
+/* New fields for the MultiSink object record */
+typedef struct {
+ /* resources */
+ Boolean echo;
+ Boolean display_nonprinting;
+
+ /* private */
+ GC normgc, invgc, xorgc;
+ XawTextPosition cursor_position;
+ XawTextInsertState laststate;
+ short cursor_x, cursor_y; /* Cursor Location */
+ XFontSet fontset; /* font set to draw */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} MultiSinkPart;
+
+/* Full instance record declaration */
+typedef struct _MultiSinkRec {
+ ObjectPart object;
+ TextSinkPart text_sink;
+ MultiSinkPart multi_sink;
+} MultiSinkRec;
+
+/*
+ * Semi-private functions
+ * for use by other Xaw modules only
+ */
+_XFUNCPROTOBEGIN
+
+void _XawMultiSinkPosToXY
+(
+ Widget w,
+ XawTextPosition pos,
+ Position *x,
+ Position *y
+);
+
+_XFUNCPROTOEND
+
+#endif /* _XawMultiSinkP_h */
diff --git a/X11/Xaw/MultiSrc.h b/X11/Xaw/MultiSrc.h
new file mode 100644
index 000000000..628da0cc8
--- /dev/null
+++ b/X11/Xaw/MultiSrc.h
@@ -0,0 +1,130 @@
+/*
+ * Copyright 1991 by OMRON Corporation
+ *
+ * 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 OMRON not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. OMRON makes no representations
+ * about the suitability of this software for any purpose. It is provided
+ * "as is" without express or implied warranty.
+ *
+ * OMRON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL OMRON 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
+ * TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Li Yuhong OMRON Corporation
+ */
+
+/*
+
+Copyright 1989, 1991, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+/*
+ * This file was modified from AsciiSrc.h.
+ *
+ * By Li Yuhong, Sept. 18, 1990
+ */
+
+#ifndef _XawMultiSrc_h
+#define _XawMultiSrc_h
+
+#include <X11/Xaw/TextSrc.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ dataCompression DataCompression Boolean True
+ length Length int (internal)
+ pieceSize PieceSize int BUFSIZ
+ string String String NULL
+ type Type XawAsciiType XawAsciiString
+ useStringInPlace UseStringInPlace Boolean False
+
+*/
+
+extern WidgetClass multiSrcObjectClass;
+
+typedef struct _MultiSrcClassRec *MultiSrcObjectClass;
+typedef struct _MultiSrcRec *MultiSrcObject;
+
+#define MultiSourceObjectClass MultiSrcObjectClass
+#define MultiSourceObject MultiSrcObject
+
+#define XtCDataCompression "DataCompression"
+#define XtCPieceSize "PieceSize"
+#define XtCType "Type"
+#define XtCUseStringInPlace "UseStringInPlace"
+
+#define XtNdataCompression "dataCompression"
+#define XtNpieceSize "pieceSize"
+#define XtNtype "type"
+#define XtNuseStringInPlace "useStringInPlace"
+
+#define XtRMultiType "MultiType"
+
+#define XtEstring "string"
+#define XtEfile "file"
+
+/************************************************************
+ *
+ * THESE ROUTINES ARE NOT PUBLIC: Source should call
+ *
+ * the AsciiSrc API which currently forwards requests here.
+ *
+ * future versions (like theres going to be an R7 Xaw!) may
+ *
+ * eliminate this file or at least these functions entirely.
+ *
+ ************************************************************/
+
+_XFUNCPROTOBEGIN
+
+void XawMultiSourceFreeString
+(
+ Widget w
+ );
+
+Bool _XawMultiSave
+(
+ Widget w
+);
+
+Bool _XawMultiSaveAsFile
+(
+ Widget w,
+ _Xconst char *name
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawMultiSrc_h */
diff --git a/X11/Xaw/MultiSrcP.h b/X11/Xaw/MultiSrcP.h
new file mode 100644
index 000000000..95642a43b
--- /dev/null
+++ b/X11/Xaw/MultiSrcP.h
@@ -0,0 +1,179 @@
+/*
+ * Copyright 1991 by OMRON Corporation
+ *
+ * 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 OMRON not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. OMRON make no representations
+ * about the suitability of this software for any purpose. It is provided
+ * "as is" without express or implied warranty.
+ *
+ * OMRON DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL OMRON 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
+ * TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Li Yuhong OMRON Corporation
+ */
+
+
+/***********************************************************
+
+Copyright 1987, 1988, 1991, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+/*
+ * MultiSrcP.h - Private Header for Multi Text Source.
+ *
+ * This is the private header file for the Multi Text Source.
+ * It is intended to be used with the Text widget, the simplest way to use
+ * this text source is to use the MultiText Object.
+ *
+ * Date: June 29, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+/*
+ * This file was changed from AsciiSrcP.h.
+ *
+ * By Li Yuhong, Sept. 18, 1990
+ */
+
+#ifndef _XawMultiSrcP_h
+#define _XawMultiSrcP_h
+
+#include <X11/Xfuncproto.h>
+#include <X11/Xaw/TextSrcP.h>
+#include <X11/Xaw/MultiSrc.h>
+
+#ifdef L_tmpnam
+#define TMPSIZ L_tmpnam
+#else
+#ifdef PATH_MAX
+#define TMPSIZ PATH_MAX
+#else
+#define TMPSIZ 1024 /* bytes to allocate for tmpnam */
+#endif
+#endif
+
+typedef struct _MultiPiece { /* Piece of the text file of BUFSIZ allocated
+ characters */
+ wchar_t* text; /* The text in this buffer */
+ XawTextPosition used; /* The number of characters of this buffer
+ that have been used */
+ struct _MultiPiece *prev, *next; /* linked list pointers */
+} MultiPiece;
+
+/* New fields for the MultiSrc object class */
+typedef struct _MultiSrcClassPart {
+ XtPointer extension;
+} MultiSrcClassPart;
+
+/* Full class record */
+typedef struct _MultiSrcClassRec {
+ ObjectClassPart object_class;
+ TextSrcClassPart text_src_class;
+ MultiSrcClassPart multi_src_class;
+} MultiSrcClassRec;
+
+extern MultiSrcClassRec multiSrcClassRec;
+
+/* New fields for the MultiSrc object */
+typedef struct _MultiSrcPart {
+ /* resources */
+ XIC ic; /* for X Input Method */
+ XtPointer string; /* either the string, or the file name, depend-
+ ing upon the `type'. ALWAYS IN MB FORMAT */
+ XawAsciiType type; /* either string or disk */
+ XawTextPosition piece_size; /* Size of text buffer for each piece */
+ Boolean data_compression; /* compress to minimum memory automatically
+ on save? */
+#ifdef OLDXAW
+ XtCallbackList callback;
+#endif
+ Boolean use_string_in_place;/* Use the string passed in place */
+ int multi_length; /* length field for multi string emulation */
+
+ /* private */
+
+ Boolean is_tempfile; /* Is this a temporary file? */
+#ifdef OLDXAW
+ Boolean changes;
+#endif
+ Boolean allocated_string; /* Have I allocated the
+ string in multi_src->string? */
+ XawTextPosition length; /* length of file - IN CHARACTERS, NOT BYTES */
+ MultiPiece *first_piece; /* first piece of the text */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} MultiSrcPart;
+
+/* Full instance record */
+typedef struct _MultiSrcRec {
+ ObjectPart object;
+ TextSrcPart text_src;
+ MultiSrcPart multi_src;
+} MultiSrcRec;
+
+_XFUNCPROTOBEGIN
+
+void _XawMultiSourceFreeString
+(
+ Widget w
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawMultiSrcP_h */
diff --git a/X11/Xaw/Paned.h b/X11/Xaw/Paned.h
new file mode 100644
index 000000000..4b7e1158f
--- /dev/null
+++ b/X11/Xaw/Paned.h
@@ -0,0 +1,258 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+/*
+ * Paned.h - Paned Composite Widget's public header file.
+ *
+ * Updated and significantly modifided from the Athena VPaned Widget.
+ *
+ * Date: March 1, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _XawPaned_h
+#define _XawPaned_h
+
+#include <X11/Intrinsic.h>
+#include <X11/Xmu/Converters.h>
+
+/* RESOURCES:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ betweenCursor Cursor Cursor **
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ cursor Cursor Cursor None
+ destroyCallback Callback Pointer NULL
+ height Height Dimension 0
+ gripIndent GripIndent Position 16
+ gripCursor Cursor Cursor **
+ horizontalGripCursol Cursor Cursor sb_h_double_arrow
+ horizontalBetweencursor Cursor Cursor sb_up_arrow
+ internalBorderColor BorderColor Pixel XtDefaultForeground
+ internalBorderWidth BorderWidth Position 1
+ leftCursor Cursor Cursor sb_left_arrow
+ lowerCursor Cursor Cursor sb_down_arrow
+ mappedWhenManaged MappedWhenManaged Boolean True
+ orientation Orientation XtOrientation XtorientVertical
+ refigureMode Boolean Boolean On
+ rightCursor Cursor Cursor sb_right_arrow
+ sensitive Sensitive Boolean True
+ upperCursor Cursor Cursor sb_up_arrow
+ verticalBetweenCursor Cursor Cursor sb_left_arrow
+ verticalGripCursor Cursor Cursor sb_v_double_arrow
+ width Width Dimension 0
+ x Position Position 0
+ y Position Position 0
+
+** These resources now are set to the vertical or horizontal cursor
+ depending upon orientation, by default. If a value is specified here
+ then that cursor will be used reguardless of orientation.
+
+
+CONSTRAINT RESOURCES:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ allowResize Boolean Boolean False
+ max Max Dimension unlimited
+ min Min Dimension Grip Size
+ preferredPaneSize PreferredPaneSize Dimension PANED_ASK_CHILD
+ resizeToPreferred Boolean Boolean False
+ showGrip ShowGrip Boolean True
+ skipAdjust Boolean Boolean False
+
+*/
+
+#define PANED_ASK_CHILD 0
+#define PANED_GRIP_SIZE 0
+
+#define XtNallowResize "allowResize"
+#define XtNbetweenCursor "betweenCursor"
+#define XtNverticalBetweenCursor "verticalBetweenCursor"
+#define XtNhorizontalBetweenCursor "horizontalBetweenCursor"
+#define XtNgripCursor "gripCursor"
+#define XtNgripIndent "gripIndent"
+#define XtNhorizontalGripCursor "horizontalGripCursor"
+#define XtNinternalBorderColor "internalBorderColor"
+#define XtNinternalBorderWidth "internalBorderWidth"
+#define XtNleftCursor "leftCursor"
+#define XtNlowerCursor "lowerCursor"
+#define XtNrefigureMode "refigureMode"
+#define XtNposition "position"
+#define XtNmin "min"
+#define XtNmax "max"
+#define XtNpreferredPaneSize "preferredPaneSize"
+#define XtNresizeToPreferred "resizeToPreferred"
+#define XtNrightCursor "rightCursor"
+#define XtNshowGrip "showGrip"
+#define XtNskipAdjust "skipAdjust"
+#define XtNupperCursor "upperCursor"
+#define XtNverticalGripCursor "verticalGripCursor"
+
+#define XtCGripIndent "GripIndent"
+#define XtCMin "Min"
+#define XtCMax "Max"
+#define XtCPreferredPaneSize "PreferredPaneSize"
+#define XtCShowGrip "ShowGrip"
+
+/* Class record constant */
+extern WidgetClass panedWidgetClass;
+
+typedef struct _PanedClassRec *PanedWidgetClass;
+typedef struct _PanedRec *PanedWidget;
+
+/*
+ * Public Procedures
+ */
+
+_XFUNCPROTOBEGIN
+
+/*
+ * Function:
+ * XawPanedSetMinMax
+ *
+ * Parameters:
+ * widget - widget that is a child of the Paned widget
+ * min - new min and max size for the pane
+ * max - ""
+ *
+ * Description:
+ * Sets the min and max size for a pane.
+ */
+void XawPanedSetMinMax
+(
+ Widget w,
+ int min,
+ int max
+ );
+
+/*
+ * Function:
+ * XawPanedGetMinMax
+ *
+ * Parameters:
+ * widget - widget that is a child of the Paned widget
+ * min - return the current min and max size for the pane
+ * max - ""
+ *
+ * Description:
+ * Gets the min and max size for a pane.
+ */
+void XawPanedGetMinMax
+(
+ Widget w,
+ int *min_return,
+ int *max_return
+ );
+
+/*
+ * Function:
+ * XawPanedSetRefigureMode
+ *
+ * Parameters:
+ * w - paned widget
+ * mode - if False then inhibit refigure
+ *
+ * Description:
+ * Allows a flag to be set the will inhibit the paned widgets
+ * relayout routine.
+ */
+void XawPanedSetRefigureMode
+(
+ Widget w,
+#if NeedWidePrototypes
+ int mode
+#else
+ Boolean mode
+#endif
+ );
+
+/*
+ * Function:
+ * XawPanedGetNumSub
+ *
+ * Parameters:
+ * w - paned widget
+ *
+ * Returns:
+ * Number of panes in the paned widget.
+ */
+int XawPanedGetNumSub
+(
+ Widget w
+ );
+
+/*
+ * Function:
+ * XawPanedAllowResize
+ *
+ * Parameters:
+ * widget - child of the paned widget
+ *
+ * Description:
+ * Allows a flag to be set that determines if the paned widget will
+ * allow geometry requests from this child
+ */
+void XawPanedAllowResize
+(
+ Widget w,
+#if NeedWidePrototypes
+ int allow_resize
+#else
+ Boolean allow_resize
+#endif
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawPaned_h */
diff --git a/X11/Xaw/PanedP.h b/X11/Xaw/PanedP.h
new file mode 100644
index 000000000..4e40eafb6
--- /dev/null
+++ b/X11/Xaw/PanedP.h
@@ -0,0 +1,176 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+/*
+ * Updated and significantly modified from the Athena VPaned Widget.
+ *
+ * Date: March 1, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _XawPanedP_h
+#define _XawPanedP_h
+
+#include <X11/Xaw/Paned.h>
+
+/* New fields for the Paned widget class record */
+typedef struct _PanedClassPart {
+ XtPointer extension;
+} PanedClassPart;
+
+/* Full Class record declaration */
+typedef struct _PanedClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ConstraintClassPart constraint_class;
+ PanedClassPart paned_class;
+} PanedClassRec;
+
+extern PanedClassRec panedClassRec;
+
+/* Paned constraint record */
+typedef struct _PanedConstraintsPart {
+ /* Resources */
+ Dimension min; /* Minimum height */
+ Dimension max; /* Maximum height */
+ Boolean allow_resize; /* True if child resize requests are ok */
+ Boolean show_grip; /* True if child will have grip below it,
+ when it is not the bottom pane */
+ Boolean skip_adjust; /* True if child's height should not be
+ changed without explicit user action */
+ int position; /* position location in Paned (relative to
+ other children) ** NIY ** */
+ Dimension preferred_size; /* The Preferred size of the pane.
+ If this is zero then ask child for size*/
+ Boolean resize_to_pref; /* resize this pane to its preferred size
+ on a resize or change managed after
+ realize */
+
+ /* Private state */
+ Position delta; /* Desired Location */
+ Position olddelta; /* The last value of dy */
+ Boolean paned_adjusted_me; /* Has the vpaned adjusted this widget w/o
+ user interaction to make things fit? */
+ Dimension wp_size; /* widget's preferred size */
+ int size; /* the size the widget will actually get */
+ Widget grip; /* The grip for this child */
+} PanedConstraintsPart, *Pane;
+
+typedef struct _PanedConstraintsRec {
+ PanedConstraintsPart paned;
+} PanedConstraintsRec, *PanedConstraints;
+
+/*
+ * The Pane Stack Structure
+ */
+typedef struct _PaneStack {
+ struct _PaneStack *next; /* The next element on the stack */
+ Pane pane; /* The pane in this element on the stack */
+ int start_size; /* The size of this element when it
+ was pushed onto the stack */
+} PaneStack;
+
+/* New Fields for the Paned widget record */
+typedef struct {
+ /* resources */
+ Position grip_indent; /* Location of grips (offset
+ from right margin) */
+ Boolean refiguremode; /* Whether to refigure changes
+ right now */
+ XtTranslations grip_translations; /* grip translation table */
+ Pixel internal_bp; /* color of internal borders */
+ Dimension internal_bw; /* internal border width */
+ XtOrientation orientation; /* Orientation of paned widget */
+
+ Cursor cursor; /* Cursor for paned window */
+ Cursor grip_cursor; /* inactive grip cursor */
+ Cursor v_grip_cursor; /* inactive vert grip cursor */
+ Cursor h_grip_cursor; /* inactive horiz grip cursor */
+ Cursor adjust_this_cursor; /* active grip cursor: T */
+ Cursor v_adjust_this_cursor; /* active vert grip cursor: T */
+ Cursor h_adjust_this_cursor; /* active horiz grip cursor: T */
+
+ /* vertical */
+ Cursor adjust_upper_cursor; /* active grip cursor: U */
+ Cursor adjust_lower_cursor; /* active grip cursor: D */
+
+ /* horizontal */
+ Cursor adjust_left_cursor; /* active grip cursor: U */
+ Cursor adjust_right_cursor; /* active grip cursor: D */
+
+ /* private */
+ Boolean recursively_called; /* for ChangeManaged */
+ Boolean resize_children_to_pref; /* override constrain resources
+ and resize all children to
+ preferred size */
+ int start_loc; /* mouse origin when adjusting */
+ Widget whichadd; /* Which pane to add changes to */
+ Widget whichsub; /* Which pane to sub changes from */
+ GC normgc; /* GC to use when drawing borders */
+ GC invgc; /* GC to use when erasing borders */
+ GC flipgc; /* GC to use when animating borders */
+ int num_panes; /* count of managed panes */
+ PaneStack *stack; /* The pane stack for this widget */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} PanedPart;
+
+/*
+ * Full instance record declaration
+ */
+typedef struct _PanedRec {
+ CorePart core;
+ CompositePart composite;
+ ConstraintPart constraint;
+ PanedPart paned;
+} PanedRec;
+
+#endif /* _XawPanedP_h */
diff --git a/X11/Xaw/Panner.h b/X11/Xaw/Panner.h
new file mode 100644
index 000000000..dd376027e
--- /dev/null
+++ b/X11/Xaw/Panner.h
@@ -0,0 +1,105 @@
+/*
+ *
+Copyright 1989, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ *
+ * Author: Jim Fulton, MIT X Consortium
+ */
+
+#ifndef _XawPanner_h
+#define _XawPanner_h
+
+#include <X11/Intrinsic.h>
+#include <X11/Xaw/Reports.h>
+
+/*****************************************************************************
+ *
+ * Panner Widget (subclass of Simple)
+ *
+ * This widget is used to represent navigation in a 2d coordinate system
+ *
+ * Resources:
+ *
+ * Name Class Type Default
+ * ---- ----- ---- -------
+ *
+ * allowOff AllowOff Boolean FALSE
+ * background Background Pixel XtDefaultBackground
+ * backgroundStipple BackgroundStipple String NULL
+ * canvasWidth CanvasWidth Dimension 0
+ * canvasHeight CanvasHeight Dimension 0
+ * defaultScale DefaultScale Dimension 8 percent
+ * foreground Foreground Pixel XtDefaultBackground
+ * internalSpace InternalSpace Dimension 4
+ * lineWidth LineWidth Dimension 0
+ * reportCallback ReportCallback XtCallbackList NULL
+ * resize Resize Boolean TRUE
+ * rubberBand RubberBand Boolean FALSE
+ * shadowColor ShadowColor Pixel XtDefaultForeground
+ * shadowThickness ShadowThickness Dimension 2
+ * sliderX SliderX Position 0
+ * sliderY SliderY Position 0
+ * sliderWidth SliderWidth Dimension 0
+ * sliderHeight SliderHeight Dimension 0
+ *
+ *****************************************************************************/
+
+#ifndef _XtStringDefs_h_
+#define XtNresize "resize"
+#define XtCResize "Resize"
+#endif
+
+#define XtNallowOff "allowOff"
+#define XtCAllowOff "AllowOff"
+#define XtNbackgroundStipple "backgroundStipple"
+#define XtCBackgroundStipple "BackgroundStipple"
+#define XtNdefaultScale "defaultScale"
+#define XtCDefaultScale "DefaultScale"
+#define XtNcanvasWidth "canvasWidth"
+#define XtCCanvasWidth "CanvasWidth"
+#define XtNcanvasHeight "canvasHeight"
+#define XtCCanvasHeight "CanvasHeight"
+#define XtNinternalSpace "internalSpace"
+#define XtCInternalSpace "InternalSpace"
+#define XtNlineWidth "lineWidth"
+#define XtCLineWidth "LineWidth"
+#define XtNrubberBand "rubberBand"
+#define XtCRubberBand "RubberBand"
+#define XtNshadowThickness "shadowThickness"
+#define XtCShadowThickness "ShadowThickness"
+#define XtNshadowColor "shadowColor"
+#define XtCShadowColor "ShadowColor"
+#define XtNsliderX "sliderX"
+#define XtCSliderX "SliderX"
+#define XtNsliderY "sliderY"
+#define XtCSliderY "SliderY"
+#define XtNsliderWidth "sliderWidth"
+#define XtCSliderWidth "SliderWidth"
+#define XtNsliderHeight "sliderHeight"
+#define XtCSliderHeight "SliderHeight"
+
+extern WidgetClass pannerWidgetClass;
+
+typedef struct _PannerClassRec *PannerWidgetClass;
+typedef struct _PannerRec *PannerWidget;
+
+#endif /* _XawPanner_h */
diff --git a/X11/Xaw/PannerP.h b/X11/Xaw/PannerP.h
new file mode 100644
index 000000000..893f5ca74
--- /dev/null
+++ b/X11/Xaw/PannerP.h
@@ -0,0 +1,106 @@
+/*
+ *
+Copyright 1989, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ *
+ * Author: Jim Fulton, MIT X Consortium
+ */
+
+#ifndef _XawPannerP_h
+#define _XawPannerP_h
+
+#include <X11/Xaw/Panner.h>
+#include <X11/Xaw/SimpleP.h>
+
+/* new fields in widget class */
+typedef struct {
+ XtPointer extension;
+} PannerClassPart;
+
+/* Panner widget class */
+typedef struct _PannerClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ PannerClassPart panner_class;
+} PannerClassRec;
+
+/* new fields in widget */
+typedef struct {
+ /* resources */
+ XtCallbackList report_callbacks; /* callback/Callback */
+ Boolean allow_off; /* allowOff/AllowOff */
+ Boolean resize_to_pref; /* resizeToPreferred/Boolean */
+ Pixel foreground; /* foreground/Foreground */
+ Pixel shadow_color; /* shadowColor/ShadowColor */
+ Dimension shadow_thickness; /* shadowThickness/ShadowThickness */
+ Dimension default_scale; /* defaultScale/DefaultScale */
+ Dimension line_width; /* lineWidth/LineWidth */
+ Dimension canvas_width; /* canvasWidth/CanvasWidth */
+ Dimension canvas_height; /* canvasHeight/CanvasHeight */
+ Position slider_x; /* sliderX/SliderX */
+ Position slider_y; /* sliderY/SliderY */
+ Dimension slider_width; /* sliderWidth/SliderWidth */
+ Dimension slider_height; /* sliderHeight/SliderHeight */
+ Dimension internal_border; /* internalBorderWidth/BorderWidth */
+ String stipple_name; /* backgroundStipple/BackgroundStipple
+ */
+ /* private */
+ GC slider_gc; /* background of slider */
+ GC shadow_gc; /* edge of slider and shadow */
+ GC xor_gc; /* for doing XOR tmp graphics */
+ double haspect, vaspect; /* aspect ratio of core to canvas */
+ Boolean rubber_band; /* true = rubber band, false = move */
+ struct {
+ Boolean doing; /* tmp graphics in progress */
+ Boolean showing; /* true if tmp graphics displayed */
+ Position startx, starty; /* initial position of slider */
+ Position dx, dy; /* offset loc for tmp graphics */
+ Position x, y; /* location for tmp graphics */
+ } tmp;
+ Position knob_x, knob_y; /* real upper left of knob in canvas */
+ Dimension knob_width, knob_height; /* real size of knob in canvas */
+ Boolean shadow_valid; /* true if rects are valid */
+ XRectangle shadow_rects[2]; /* location of shadows */
+ Position last_x, last_y; /* previous location of knob */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} PannerPart;
+
+typedef struct _PannerRec {
+ CorePart core;
+ SimplePart simple;
+ PannerPart panner;
+} PannerRec;
+
+#define PANNER_HSCALE(pw,val) ((pw)->panner.haspect * ((double)(val)))
+#define PANNER_VSCALE(pw,val) ((pw)->panner.vaspect * ((double)(val)))
+
+#define PANNER_DSCALE(pw,val) (Dimension) \
+((((unsigned long)(val)) * (unsigned long)pw->panner.default_scale) / 100L)
+
+#define PANNER_DEFAULT_SCALE 8 /* percent */
+#define PANNER_OUTOFRANGE -30000
+
+extern PannerClassRec pannerClassRec;
+
+#endif /* _XawPannerP_h */
diff --git a/X11/Xaw/Porthole.h b/X11/Xaw/Porthole.h
new file mode 100644
index 000000000..2dbcf1890
--- /dev/null
+++ b/X11/Xaw/Porthole.h
@@ -0,0 +1,61 @@
+/*
+ *
+Copyright 1990, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ *
+ * Author: Jim Fulton, MIT X Consortium
+ */
+
+#ifndef _XawPorthole_h
+#define _XawPorthole_h
+
+#include <X11/Intrinsic.h>
+#include <X11/Xaw/Reports.h>
+
+/*****************************************************************************
+ *
+ * Porthole Widget (subclass of Composite)
+ *
+ * This widget is similar to a viewport without scrollbars. Child movement
+ * is done by external panners or scrollbars.
+ *
+ * Parameters:
+ *
+ * Name Class Type Default
+ * ---- ----- ---- -------
+ *
+ * background Background Pixel XtDefaultBackground
+ * border BorderColor Pixel XtDefaultForeground
+ * borderWidth BorderWidth Dimension 1
+ * height Height Dimension 0
+ * reportCallback ReportCallback Pointer NULL
+ * width Width Dimension 0
+ * x Position Position 0
+ * y Position Position 0
+ *
+ *****************************************************************************/
+
+extern WidgetClass portholeWidgetClass;
+typedef struct _PortholeClassRec *PortholeWidgetClass;
+typedef struct _PortholeRec *PortholeWidget;
+
+#endif /* _XawPorthole_h */
diff --git a/X11/Xaw/PortholeP.h b/X11/Xaw/PortholeP.h
new file mode 100644
index 000000000..043fb51e8
--- /dev/null
+++ b/X11/Xaw/PortholeP.h
@@ -0,0 +1,62 @@
+/*
+ *
+Copyright 1990, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ *
+ * Author: Jim Fulton, MIT X Consortium
+ */
+
+#ifndef _XawPortholeP_h
+#define _XawPortholeP_h
+
+#include <X11/Xaw/Porthole.h>
+
+/* new fields in widget class */
+typedef struct {
+ XtPointer extension;
+} PortholeClassPart;
+
+/* widget class */
+typedef struct _PortholeClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ PortholeClassPart porthole_class;
+} PortholeClassRec;
+
+/* new fields in widget */
+typedef struct {
+ /* resources */
+ XtCallbackList report_callbacks; /* callback/Callback */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} PortholePart;
+
+typedef struct _PortholeRec {
+ CorePart core;
+ CompositePart composite;
+ PortholePart porthole;
+} PortholeRec;
+
+extern PortholeClassRec portholeClassRec;
+
+#endif /* _XawPortholeP_h */
diff --git a/X11/Xaw/Repeater.h b/X11/Xaw/Repeater.h
new file mode 100644
index 000000000..6b712cace
--- /dev/null
+++ b/X11/Xaw/Repeater.h
@@ -0,0 +1,73 @@
+/*
+ *
+Copyright 1989, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ *
+ * Author: Jim Fulton, MIT X Consortium
+ */
+
+#ifndef _XawRepeater_h
+#define _XawRepeater_h
+
+#include <X11/Xaw/Command.h>
+
+/*****************************************************************************
+ *
+ * Repeater Widget (subclass of Command)
+ *
+ * This widget is a push button that repeatedly fires when held down
+ *
+ * Parameters:
+ *
+ * Name Class Type Default
+ * ---- ----- ---- -------
+ *
+ * decay Decay int 5 milliseconds
+ * flash Boolean Boolean FALSE
+ * initialDelay Delay int 200 milliseconds
+ * minimumDelay MinimumDelay int 10 milliseconds
+ * repeatDelay Delay int 50 milliseconds
+ * startCallback StartCallback XtCallbackList NULL
+ * stopCallback StopCallback XtCallbackList NULL
+ *
+ *****************************************************************************/
+
+#define XtNdecay "decay"
+#define XtCDecay "Decay"
+#define XtNinitialDelay "initialDelay"
+#define XtCDelay "Delay"
+#define XtNminimumDelay "minimumDelay"
+#define XtCMinimumDelay "MinimumDelay"
+#define XtNrepeatDelay "repeatDelay"
+#define XtNflash "flash"
+#define XtNstartCallback "startCallback"
+#define XtCStartCallback "StartCallback"
+#define XtNstopCallback "stopCallback"
+#define XtCStopCallback "StopCallback"
+
+
+extern WidgetClass repeaterWidgetClass;
+
+typedef struct _RepeaterClassRec *RepeaterWidgetClass;
+typedef struct _RepeaterRec *RepeaterWidget;
+
+#endif /* _XawRepeater_h */
diff --git a/X11/Xaw/RepeaterP.h b/X11/Xaw/RepeaterP.h
new file mode 100644
index 000000000..b2646e3e0
--- /dev/null
+++ b/X11/Xaw/RepeaterP.h
@@ -0,0 +1,82 @@
+/*
+ *
+Copyright 1989, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ *
+ * Author: Jim Fulton, MIT X Consortium
+ */
+
+#ifndef _XawRepeaterP_h
+#define _XawRepeaterP_h
+
+#include <X11/Xaw/CommandP.h>
+#include <X11/Xaw/Repeater.h>
+
+/* new fields in widget class */
+typedef struct {
+ XtPointer extension;
+} RepeaterClassPart;
+
+/* repeater widget class */
+typedef struct _RepeaterClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ LabelClassPart label_class;
+ CommandClassPart command_class;
+ RepeaterClassPart repeater_class;
+} RepeaterClassRec;
+
+typedef struct {
+ /* resources */
+ int initial_delay; /* initialDelay/Delay */
+ int repeat_delay; /* repeatDelay/Delay */
+ int minimum_delay; /* minimumDelay/MinimumDelay */
+ int decay; /* decay to minimum delay */
+ Boolean flash; /* flash/Boolean */
+ XtCallbackList start_callbacks; /* startCallback/StartCallback */
+ XtCallbackList stop_callbacks; /* stopCallback/StopCallback */
+
+ /* private */
+ int next_delay; /* next amount for timer */
+ XtIntervalId timer; /* timer that will fire */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} RepeaterPart;
+
+typedef struct _RepeaterRec {
+ CorePart core;
+ SimplePart simple;
+ LabelPart label;
+ CommandPart command;
+ RepeaterPart repeater;
+} RepeaterRec;
+
+ /* milliseconds */
+#define REP_DEF_DECAY 5
+#define REP_DEF_INITIAL_DELAY 200
+#define REP_DEF_MINIMUM_DELAY 10
+#define REP_DEF_REPEAT_DELAY 50
+
+extern RepeaterClassRec repeaterClassRec;
+
+#endif /* _XawRepeaterP_h */
diff --git a/X11/Xaw/Reports.h b/X11/Xaw/Reports.h
new file mode 100644
index 000000000..c49834219
--- /dev/null
+++ b/X11/Xaw/Reports.h
@@ -0,0 +1,55 @@
+/*
+ *
+Copyright 1990, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ */
+
+#ifndef _Xaw_Reports_h
+#define _Xaw_Reports_h
+
+#include <X11/Intrinsic.h>
+
+/*
+ * XawPannerReport - this structure is used by the reportCallback of the
+ * Panner, Porthole, Viewport, and Scrollbar widgets to report its position.
+ * All fields must be filled in, although the changed field may be used as
+ * a hint as to which fields have been altered since the last report.
+ */
+typedef struct {
+ unsigned int changed; /* mask, see below */
+ Position slider_x, slider_y; /* location of slider within outer */
+ Dimension slider_width, slider_height; /* size of slider */
+ Dimension canvas_width, canvas_height; /* size of canvas */
+} XawPannerReport;
+
+#define XawPRSliderX (1 << 0)
+#define XawPRSliderY (1 << 1)
+#define XawPRSliderWidth (1 << 2)
+#define XawPRSliderHeight (1 << 3)
+#define XawPRCanvasWidth (1 << 4)
+#define XawPRCanvasHeight (1 << 5)
+#define XawPRAll (63) /* union of above */
+
+#define XtNreportCallback "reportCallback"
+#define XtCReportCallback "reportCallback"
+
+#endif /* _Xaw_Reports_h */
diff --git a/X11/Xaw/Scrollbar.h b/X11/Xaw/Scrollbar.h
new file mode 100644
index 000000000..904aad908
--- /dev/null
+++ b/X11/Xaw/Scrollbar.h
@@ -0,0 +1,133 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _Scrollbar_h
+#define _Scrollbar_h
+
+/*
+ * Scrollbar Widget
+ */
+
+#include <X11/Xmu/Converters.h>
+#include <X11/Xfuncproto.h>
+
+/* Scrollbar resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ accelerators Accelerators AcceleratorTable NULL
+ ancestorSensitive AncestorSensitive Boolean True
+ background Background Pixel XtDefaultBackground
+ backgroundPixmap Pixmap Pixmap XtUnspecifiedPixmap
+ borderColor BorderColor Pixel XtDefaultForeground
+ borderPixmap Pixmap Pixmap XtUnspecifiedPixmap
+ borderWidth BorderWidth Dimension 1
+ colormap Colormap Colormap parent's colormap
+ cursor Cursor Cursor None
+ cursorName Cursor String NULL
+ depth Depth int parent's depth
+ destroyCallback Callback XtCallbackList NULL
+ foreground Foreground Pixel XtDefaultForeground
+ height Height Dimension length or thickness
+ insensitiveBorder Insensitive Pixmap GreyPixmap
+ jumpProc Callback XtCallbackList NULL
+ length Length Dimension 1
+ mappedWhenManaged MappedWhenManaged Boolean True
+ minimumThumb MinimumThumb Dimension 7
+ orientation Orientation XtOrientation XtorientVertical
+ pointerColor Foreground Pixel XtDefaultForeground
+ pointerColorBackground Background Pixel XtDefaultBackground
+ screen Screen Screen parent's screen
+ scrollDCursor Cursor Cursor XC_sb_down_arrow
+ scrollHCursor Cursor Cursor XC_sb_h_double_arrow
+ scrollLCursor Cursor Cursor XC_sb_left_arrow
+ scrollProc Callback XtCallbackList NULL
+ scrollRCursor Cursor Cursor XC_sb_right_arrow
+ scrollUCursor Cursor Cursor XC_sb_up_arrow
+ scrollVCursor Cursor Cursor XC_sb_v_double_arrow
+ sensitive Sensitive Boolean True
+ shown Shown Float 0.0
+ thickness Thickness Dimension 14
+ thumb Thumb Bitmap GreyPixmap
+ thumbProc Callback XtCallbackList NULL
+ topOfThumb TopOfThumb Float 0.0
+ translations Translations TranslationTable see source or doc
+ width Width Dimension thickness or length
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#define XtCMinimumThumb "MinimumThumb"
+#define XtCShown "Shown"
+#define XtCTopOfThumb "TopOfThumb"
+
+#define XtNminimumThumb "minimumThumb"
+#define XtNtopOfThumb "topOfThumb"
+
+typedef struct _ScrollbarRec *ScrollbarWidget;
+typedef struct _ScrollbarClassRec *ScrollbarWidgetClass;
+
+extern WidgetClass scrollbarWidgetClass;
+
+_XFUNCPROTOBEGIN
+
+void XawScrollbarSetThumb
+(
+ Widget scrollbar,
+#if NeedWidePrototypes
+ double top,
+ double shown
+#else
+ float top,
+ float shown
+#endif
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _Scrollbar_h */
diff --git a/X11/Xaw/ScrollbarP.h b/X11/Xaw/ScrollbarP.h
new file mode 100644
index 000000000..b36472d4d
--- /dev/null
+++ b/X11/Xaw/ScrollbarP.h
@@ -0,0 +1,103 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _ScrollbarP_h
+#define _ScrollbarP_h
+
+#include <X11/Xaw/Scrollbar.h>
+#include <X11/Xaw/SimpleP.h>
+
+typedef struct {
+ /* resources */
+ Pixel foreground; /* thumb foreground color */
+ XtOrientation orientation; /* horizontal or vertical */
+ XtCallbackList scrollProc; /* proportional scroll */
+ XtCallbackList thumbProc; /* jump (to position) scroll */
+ XtCallbackList jumpProc; /* same as thumbProc but pass data by ref */
+ Pixmap thumb; /* thumb pixmap */
+ Cursor upCursor; /* scroll up cursor */
+ Cursor downCursor; /* scroll down cursor */
+ Cursor leftCursor; /* scroll left cursor */
+ Cursor rightCursor; /* scroll right cursor */
+ Cursor verCursor; /* scroll vertical cursor */
+ Cursor horCursor; /* scroll horizontal cursor */
+ float top;
+ float shown;
+ Dimension length; /* either height or width */
+ Dimension thickness; /* either width or height */
+ Dimension min_thumb; /* minium size for the thumb */
+
+ /* private */
+ Cursor inactiveCursor; /* The normal cursor for scrollbar */
+ char direction; /* a scroll has started; which direction */
+ GC gc; /* a (shared) gc */
+ Position topLoc; /* Pixel that corresponds to top */
+ Dimension shownLength; /* Num pixels corresponding to shown */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} ScrollbarPart;
+
+typedef struct _ScrollbarRec {
+ CorePart core;
+ SimplePart simple;
+ ScrollbarPart scrollbar;
+} ScrollbarRec;
+
+typedef struct {
+ XtPointer extension;
+} ScrollbarClassPart;
+
+typedef struct _ScrollbarClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ ScrollbarClassPart scrollbar_class;
+} ScrollbarClassRec;
+
+extern ScrollbarClassRec scrollbarClassRec;
+
+#endif /* _ScrollbarP_h */
diff --git a/X11/Xaw/Simple.h b/X11/Xaw/Simple.h
new file mode 100644
index 000000000..ff38f16cc
--- /dev/null
+++ b/X11/Xaw/Simple.h
@@ -0,0 +1,113 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _Simple_h
+#define _Simple_h
+
+#include <X11/Xmu/Converters.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ cursor Cursor Cursor None
+ cursorName Cursor String NULL
+ destroyCallback Callback Pointer NULL
+ displayList DisplayList XawDisplayList* NULL
+ height Height Dimension 0
+ insensitiveBorder Insensitive Pixmap Gray
+ mappedWhenManaged MappedWhenManaged Boolean True
+ pointerColor Foreground Pixel XtDefaultForeground
+ pointerColorBackground Background Pixel XtDefaultBackground
+ sensitive Sensitive Boolean True
+ tip Tip String NULL
+ width Width Dimension 0
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#define XtNcursor "cursor"
+#define XtNcursorName "cursorName"
+#define XtNinsensitiveBorder "insensitiveBorder"
+
+#define XtCInsensitive "Insensitive"
+
+#ifndef XtCInternational
+#define XtCInternational "International"
+#endif
+
+#ifndef XtNinternational
+#define XtNinternational "international"
+#endif
+
+#ifndef OLDXAW
+#ifndef XawNdisplayList
+#define XawNdisplayList "displayList"
+#endif
+
+#ifndef XawCDisplayList
+#define XawCDisplayList "DisplayList"
+#endif
+
+#ifndef XawRDisplayList
+#define XawRDisplayList "XawDisplayList"
+#endif
+
+#define XtNtip "tip"
+#define XtCTip "Tip"
+#endif /* OLDXAW */
+
+typedef struct _SimpleClassRec *SimpleWidgetClass;
+typedef struct _SimpleRec *SimpleWidget;
+
+extern WidgetClass simpleWidgetClass;
+
+#endif /* _Simple_h */
diff --git a/X11/Xaw/SimpleMenP.h b/X11/Xaw/SimpleMenP.h
new file mode 100644
index 000000000..e01c151ea
--- /dev/null
+++ b/X11/Xaw/SimpleMenP.h
@@ -0,0 +1,99 @@
+/*
+ *
+Copyright 1989, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ *
+ */
+
+/*
+ * SimpleMenuP.h - Private Header file for SimpleMenu widget.
+ *
+ * Date: April 3, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _SimpleMenuP_h
+#define _SimpleMenuP_h
+
+#include <X11/Xaw/SimpleMenu.h>
+#include <X11/Xaw/SmeP.h>
+#include <X11/ShellP.h>
+#include <X11/Xaw/XawInit.h>
+
+typedef struct {
+ XtPointer extension; /* For future needs */
+} SimpleMenuClassPart;
+
+typedef struct _SimpleMenuClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ShellClassPart shell_class;
+ OverrideShellClassPart override_shell_class;
+ SimpleMenuClassPart simpleMenu_class;
+} SimpleMenuClassRec;
+
+extern SimpleMenuClassRec simpleMenuClassRec;
+
+typedef struct _SimpleMenuPart {
+ /* resources */
+ String label_string; /* The string for the label or NULL */
+ SmeObject label; /* If label_string is non-NULL then this is
+ the label widget */
+ WidgetClass label_class; /* Widget Class of the menu label object */
+ Dimension top_margin; /* Top and bottom margins */
+ Dimension bottom_margin;
+ Dimension row_height; /* height of each row (menu entry) */
+ Cursor cursor; /* The menu's cursor */
+ SmeObject popup_entry; /* The entry to position the cursor on for
+ when using XawPositionSimpleMenu */
+ Boolean menu_on_screen; /* Force the menus to be fully on the screen*/
+ int backing_store; /* What type of backing store to use */
+
+ /* private */
+ Boolean recursive_set_values; /* contain a possible infinite loop */
+ Boolean menu_width; /* If true then force width to remain
+ core.width */
+ Boolean menu_height; /* Just like menu_width, but for height */
+ SmeObject entry_set; /* The entry that is currently set or
+ highlighted */
+#ifndef OLDXAW
+ Dimension left_margin;
+ Dimension right_margin;
+ XawDisplayList *display_list;
+ Widget sub_menu;
+ unsigned char state;
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} SimpleMenuPart;
+
+typedef struct _SimpleMenuRec {
+ CorePart core;
+ CompositePart composite;
+ ShellPart shell;
+ OverrideShellPart override;
+ SimpleMenuPart simple_menu;
+} SimpleMenuRec;
+
+#endif /* _SimpleMenuP_h */
diff --git a/X11/Xaw/SimpleMenu.h b/X11/Xaw/SimpleMenu.h
new file mode 100644
index 000000000..79f7216ef
--- /dev/null
+++ b/X11/Xaw/SimpleMenu.h
@@ -0,0 +1,171 @@
+/*
+ *
+Copyright 1989, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ *
+ * Author: Chris D. Peterson, MIT X Consortium
+ */
+
+/*
+ * SimpleMenu.h - Public Header file for SimpleMenu widget.
+ *
+ * This is the public header file for the Athena SimpleMenu widget.
+ * It is intended to provide one pane pulldown and popup menus within
+ * the framework of the X Toolkit. As the name implies it is a first and
+ * by no means complete implementation of menu code. It does not attempt to
+ * fill the needs of all applications, but does allow a resource oriented
+ * interface to menus.
+ *
+ * Date: April 3, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _SimpleMenu_h
+#define _SimpleMenu_h
+
+#include <X11/Shell.h>
+#include <X11/Xmu/Converters.h>
+
+/*
+ * SimpleMenu widget
+ */
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ backgroundPixmap BackgroundPixmap Pixmap None
+ borderColor BorderColor Pixel XtDefaultForeground
+ borderPixmap BorderPixmap Pixmap None
+ borderWidth BorderWidth Dimension 1
+ bottomMargin VerticalMargins Dimension VerticalSpace
+ columnWidth ColumnWidth Dimension Width of widest text
+ cursor Cursor Cursor None
+ destroyCallback Callback Pointer NULL
+ displayList DisplayList XawDisplayList* NULL
+ height Height Dimension 0
+ label Label String NULL (No label)
+ labelClass LabelClass Pointer smeBSBObjectClass
+ leftMargin HorizontalMargins Dimension 0
+ mappedWhenManaged MappedWhenManaged Boolean True
+ rightMargin HorizontalMargins Dimension 0
+ rowHeight RowHeight Dimension Height of Font
+ sensitive Sensitive Boolean True
+ topMargin VerticalMargins Dimension VerticalSpace
+ width Width Dimension 0
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+typedef struct _SimpleMenuClassRec* SimpleMenuWidgetClass;
+typedef struct _SimpleMenuRec* SimpleMenuWidget;
+
+extern WidgetClass simpleMenuWidgetClass;
+
+#define XtNcursor "cursor"
+#define XtNbottomMargin "bottomMargin"
+#define XtNcolumnWidth "columnWidth"
+#define XtNlabelClass "labelClass"
+#define XtNmenuOnScreen "menuOnScreen"
+#define XtNpopupOnEntry "popupOnEntry"
+#define XtNrowHeight "rowHeight"
+#define XtNtopMargin "topMargin"
+#define XtNleftMargin "leftMargin"
+#define XtNrightMargin "rightMargin"
+
+#define XtCColumnWidth "ColumnWidth"
+#define XtCLabelClass "LabelClass"
+#define XtCMenuOnScreen "MenuOnScreen"
+#define XtCPopupOnEntry "PopupOnEntry"
+#define XtCRowHeight "RowHeight"
+
+#define XtCVerticalMargins "VerticalMargins"
+
+#ifndef OLDXAW
+#define XtCHorizontalMargins "HorizontalMargins"
+#define XawNdisplayList "displayList"
+#define XawCDisplayList "DisplayList"
+#define XawRDisplayList "XawDisplayList"
+#endif
+
+/*
+ * Public Functions
+ */
+
+_XFUNCPROTOBEGIN
+
+/*
+ * Function:
+ * XawSimpleMenuAddGlobalActions
+ *
+ * Parameters:
+ * app_con - appcontext
+ *
+ * Description:
+ * Adds the global actions to the simple menu widget.
+ */
+void XawSimpleMenuAddGlobalActions
+(
+ XtAppContext app_con
+ );
+
+/*
+ * Function:
+ * XawSimpleMenuGetActiveEntry
+ *
+ * Parameters:
+ * w - smw widget
+ *
+ * Description:
+ * Gets the currently active (set) entry.
+ *
+ * Returns:
+ * The currently set entry or NULL if none is set
+ */
+Widget XawSimpleMenuGetActiveEntry
+(
+ Widget w
+ );
+
+/*
+ * Function:
+ * XawSimpleMenuClearActiveEntry
+ *
+ * Parameters:
+ * w - smw widget
+ *
+ * Description:
+ * Unsets the currently active (set) entry.
+ */
+void XawSimpleMenuClearActiveEntry
+(
+ Widget w
+);
+
+_XFUNCPROTOEND
+
+#endif /* _SimpleMenu_h */
diff --git a/X11/Xaw/SimpleP.h b/X11/Xaw/SimpleP.h
new file mode 100644
index 000000000..d8011621a
--- /dev/null
+++ b/X11/Xaw/SimpleP.h
@@ -0,0 +1,98 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _SimpleP_h
+#define _SimpleP_h
+
+#include <X11/Xfuncproto.h>
+
+#include <X11/Xaw/Simple.h>
+
+_XFUNCPROTOBEGIN
+
+#include <X11/Xaw/XawInit.h>
+
+typedef struct {
+ Bool (*change_sensitive)(Widget);
+#ifndef OLDXAW
+ XtPointer extension;
+#endif
+} SimpleClassPart;
+
+#define XtInheritChangeSensitive ((Bool (*)(Widget))_XtInherit)
+
+typedef struct _SimpleClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+} SimpleClassRec;
+
+extern SimpleClassRec simpleClassRec;
+
+typedef struct {
+ /* resources */
+ Cursor cursor;
+ Pixmap insensitive_border;
+ String cursor_name; /* cursor specified by name */
+ Pixel pointer_fg, pointer_bg; /* Pointer colors */
+ Boolean international;
+
+ /* private */
+#ifndef OLDXAW
+ XawDisplayList *display_list;
+ String tip;
+ XtPointer pad[3]; /* for future use and keep binary compatability */
+#endif
+} SimplePart;
+
+typedef struct _SimpleRec {
+ CorePart core;
+ SimplePart simple;
+} SimpleRec;
+
+_XFUNCPROTOEND
+
+#endif /* _SimpleP_h */
diff --git a/X11/Xaw/Sme.h b/X11/Xaw/Sme.h
new file mode 100644
index 000000000..b395ae7b8
--- /dev/null
+++ b/X11/Xaw/Sme.h
@@ -0,0 +1,71 @@
+/*
+ *
+Copyright 1989, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ */
+
+/*
+ * This is the public header file for the Athena Sme object.
+ * It is intended to be used with the simple menu widget.
+ *
+ * Date: April 3, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _Sme_h
+#define _Sme_h
+
+#include <X11/Intrinsic.h>
+#include <X11/RectObj.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ callback Callback Pointer NULL
+ destroyCallback Callback Pointer NULL
+ height Height Dimension 0
+ sensitive Sensitive Boolean True
+ width Width Dimension 0
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#ifndef XtCInternational
+#define XtCInternational "International"
+#endif
+
+#ifndef XtNinternational
+#define XtNinternational "international"
+#endif
+
+
+typedef struct _SmeClassRec *SmeObjectClass;
+typedef struct _SmeRec *SmeObject;
+
+extern WidgetClass smeObjectClass;
+
+#endif /* _Sme_h */
diff --git a/X11/Xaw/SmeBSB.h b/X11/Xaw/SmeBSB.h
new file mode 100644
index 000000000..ab6fda7a8
--- /dev/null
+++ b/X11/Xaw/SmeBSB.h
@@ -0,0 +1,96 @@
+/*
+ *
+Copyright 1989, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ */
+
+/*
+ * SmeBSB.h - Public Header file for SmeBSB object.
+ *
+ * This is the public header file for the Athena BSB Sme object.
+ * It is intended to be used with the simple menu widget. This object
+ * provides bitmap - string - bitmap style entries.
+ *
+ * Date: April 3, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _SmeBSB_h
+#define _SmeBSB_h
+
+#include <X11/Xmu/Converters.h>
+#include <X11/Xaw/Sme.h>
+
+/* BSB Menu Entry Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ callback Callback Callback NULL
+ destroyCallback Callback Pointer NULL
+ font Font XFontStruct * XtDefaultFont
+ foreground Foreground Pixel XtDefaultForeground
+ height Height Dimension 0
+ label Label String Name of entry
+ leftBitmap LeftBitmap Pixmap None
+ leftMargin HorizontalMargins Dimension 4
+ menuName MenuName String NULL
+ rightBitmap RightBitmap Pixmap None
+ rightMargin HorizontalMargins Dimension 4
+ sensitive Sensitive Boolean True
+ vertSpace VertSpace int 25
+ width Width Dimension 0
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+typedef struct _SmeBSBClassRec *SmeBSBObjectClass;
+typedef struct _SmeBSBRec *SmeBSBObject;
+
+extern WidgetClass smeBSBObjectClass;
+
+#define XtNleftBitmap "leftBitmap"
+#define XtNleftMargin "leftMargin"
+#define XtNrightBitmap "rightBitmap"
+#define XtNrightMargin "rightMargin"
+#define XtNvertSpace "vertSpace"
+
+#define XtNmenuName "menuName"
+#define XtCMenuName "MenuName"
+
+#ifndef XtNfontSet
+#define XtNfontSet "fontSet"
+#endif
+
+#ifndef XtCFontSet
+#define XtCFontSet "FontSet"
+#endif
+
+#define XtCLeftBitmap "LeftBitmap"
+#define XtCHorizontalMargins "HorizontalMargins"
+#define XtCRightBitmap "RightBitmap"
+#define XtCVertSpace "VertSpace"
+
+#endif /* _SmeBSB_h */
diff --git a/X11/Xaw/SmeBSBP.h b/X11/Xaw/SmeBSBP.h
new file mode 100644
index 000000000..03247d072
--- /dev/null
+++ b/X11/Xaw/SmeBSBP.h
@@ -0,0 +1,92 @@
+/*
+ *
+Copyright 1989, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ *
+ * Author: Chris D. Peterson, MIT X Consortium
+ */
+
+#ifndef _XawSmeBSBP_h
+#define _XawSmeBSBP_h
+
+/*
+ * Sme Object Private Data
+ */
+#include <X11/Xaw/SmeP.h>
+#include <X11/Xaw/SmeBSB.h>
+
+typedef struct _SmeBSBClassPart {
+ XtPointer extension;
+} SmeBSBClassPart;
+
+/* Full class record declaration */
+typedef struct _SmeBSBClassRec {
+ RectObjClassPart rect_class;
+ SmeClassPart sme_class;
+ SmeBSBClassPart sme_bsb_class;
+} SmeBSBClassRec;
+
+extern SmeBSBClassRec smeBSBClassRec;
+
+/* New fields for the Sme Object record */
+typedef struct {
+ /* resources */
+ String label; /* The entry label */
+ int vert_space; /* extra vert space to leave, as a
+ percentage of the font height of
+ the label */
+ Pixmap left_bitmap, right_bitmap; /* bitmaps to show */
+ Dimension left_margin, right_margin;/* left and right margins */
+ Pixel foreground; /* foreground color */
+ XFontStruct *font; /* The font to show label in */
+ XFontSet fontset; /* or fontset */
+ XtJustify justify; /* Justification for the label. */
+
+ /* private */
+ Boolean set_values_area_cleared; /* do we need to unhighlight? */
+ GC norm_gc; /* noral color gc */
+ GC rev_gc; /* reverse color gc */
+ GC norm_gray_gc; /* Normal color (grayed out) gc */
+ GC invert_gc; /* gc for flipping colors */
+ Dimension left_bitmap_width; /* size of each bitmap */
+ Dimension left_bitmap_height;
+ Dimension right_bitmap_width;
+ Dimension right_bitmap_height;
+
+#ifndef OLDXAW
+ /* new resources */
+ String menu_name; /* name of nested sub menu or NULL */
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} SmeBSBPart;
+
+/*
+ * Full instance record declaration
+ */
+typedef struct _SmeBSBRec {
+ ObjectPart object;
+ RectObjPart rectangle;
+ SmePart sme;
+ SmeBSBPart sme_bsb;
+} SmeBSBRec;
+
+#endif /* _XawSmeBSBP_h */
diff --git a/X11/Xaw/SmeLine.h b/X11/Xaw/SmeLine.h
new file mode 100644
index 000000000..af4406f3d
--- /dev/null
+++ b/X11/Xaw/SmeLine.h
@@ -0,0 +1,69 @@
+/*
+ *
+Copyright 1989, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ *
+ */
+
+/*
+ * This is the public header file for the Athena SmeLine object.
+ * It is intended to be used with the simple menu widget.
+ *
+ * Date: April 3, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _SmeLine_h
+#define _SmeLine_h
+
+#include <X11/Xaw/Sme.h>
+#include <X11/Xmu/Converters.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ callback Callback Pointer NULL
+ destroyCallback Callback Pointer NULL
+ height Height Dimension 0
+ sensitive Sensitive Boolean True
+ width Width Dimension 0
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#define XtCLineWidth "LineWidth"
+#define XtCStipple "Stipple"
+
+#define XtNlineWidth "lineWidth"
+#define XtNstipple "stipple"
+
+typedef struct _SmeLineClassRec *SmeLineObjectClass;
+typedef struct _SmeLineRec *SmeLineObject;
+
+extern WidgetClass smeLineObjectClass;
+
+#endif /* _SmeLine_h */
diff --git a/X11/Xaw/SmeLineP.h b/X11/Xaw/SmeLineP.h
new file mode 100644
index 000000000..0f9fa7076
--- /dev/null
+++ b/X11/Xaw/SmeLineP.h
@@ -0,0 +1,73 @@
+/*
+ *
+Copyright 1989, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ *
+ * Author: Chris D. Peterson, MIT X Consortium
+ */
+
+#ifndef _XawSmeLineP_h
+#define _XawSmeLineP_h
+
+/*
+ * SmeLine Widget Private Data
+ */
+#include <X11/Xaw/SmeP.h>
+#include <X11/Xaw/SmeLine.h>
+
+/* New fields for the SmeLine widget class */
+typedef struct _SmeLineClassPart {
+ XtPointer extension;
+} SmeLineClassPart;
+
+/* Full class record */
+typedef struct _SmeLineClassRec {
+ RectObjClassPart rect_class;
+ SmeClassPart sme_class;
+ SmeLineClassPart sme_line_class;
+} SmeLineClassRec;
+
+extern SmeLineClassRec smeLineClassRec;
+
+/* New fields for the SmeLine widget */
+typedef struct {
+ /* resources */
+ Pixel foreground; /* Foreground color */
+ Pixmap stipple; /* Line Stipple */
+ Dimension line_width; /* Width of the line */
+
+ /* private */
+ GC gc; /* Graphics context for drawing line */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} SmeLinePart;
+
+/* Full instance record */
+typedef struct _SmeLineRec {
+ ObjectPart object;
+ RectObjPart rectangle;
+ SmePart sme;
+ SmeLinePart sme_line;
+} SmeLineRec;
+
+#endif /* _XawSmeLineP_h */
diff --git a/X11/Xaw/SmeP.h b/X11/Xaw/SmeP.h
new file mode 100644
index 000000000..bd4bd9da7
--- /dev/null
+++ b/X11/Xaw/SmeP.h
@@ -0,0 +1,88 @@
+/*
+ *
+Copyright 1989, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ */
+
+/*
+ * This is the private header file for the Athena Sme object.
+ * This object is intended to be used with the simple menu widget.
+ *
+ * Date: April 3, 1989
+ *
+ * By: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ */
+
+#ifndef _XawSmeP_h
+#define _XawSmeP_h
+
+/*
+ * Sme Widget Private Data
+ */
+#include <X11/Xfuncproto.h>
+
+#include <X11/Xaw/Sme.h>
+
+_XFUNCPROTOBEGIN
+
+/* New fields for the Sme widget class */
+typedef struct _SmeClassPart {
+ XtWidgetProc highlight;
+ XtWidgetProc unhighlight;
+ XtWidgetProc notify;
+ XtPointer extension;
+} SmeClassPart;
+
+/* Full class record */
+typedef struct _SmeClassRec {
+ RectObjClassPart rect_class;
+ SmeClassPart sme_class;
+} SmeClassRec;
+
+extern SmeClassRec smeClassRec;
+
+/* New fields for the Sme widget */
+typedef struct {
+ /* resources */
+ XtCallbackList callbacks;
+ Boolean international;
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} SmePart;
+
+/* Full instance record */
+typedef struct _SmeRec {
+ ObjectPart object;
+ RectObjPart rectangle;
+ SmePart sme;
+} SmeRec;
+
+#define XtInheritHighlight ((XtWidgetProc)_XtInherit)
+#define XtInheritUnhighlight XtInheritHighlight
+#define XtInheritNotify XtInheritHighlight
+
+_XFUNCPROTOEND
+
+#endif /* _XawSmeP_h */
diff --git a/X11/Xaw/StripCharP.h b/X11/Xaw/StripCharP.h
new file mode 100644
index 000000000..a0085b43d
--- /dev/null
+++ b/X11/Xaw/StripCharP.h
@@ -0,0 +1,104 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawStripChartP_h
+#define _XawStripChartP_h
+
+#include <X11/Xaw/StripChart.h>
+#include <X11/Xaw/SimpleP.h>
+
+#define NO_GCS 0
+#define FOREGROUND (1 << 0)
+#define HIGHLIGHT (1 << 1)
+#define ALL_GCS (FOREGROUND | HIGHLIGHT)
+
+/* new fields for the stripChart widget */
+typedef struct {
+ /* resources */
+ Pixel fgpixel; /* color index for graph */
+ Pixel hipixel; /* color index for lines */
+ GC fgGC; /* graphics context for fgpixel */
+ GC hiGC; /* graphics context for hipixel */
+
+ /* private */
+ int update; /* update frequence */
+ int scale; /* scale factor */
+ int min_scale; /* smallest scale factor */
+ int interval; /* data point interval */
+ XPoint *points; /* Poly point for repairing graph lines */
+ double max_value; /* Max Value in window */
+ double valuedata[2048]; /* record of data points */
+ XtIntervalId interval_id;
+ XtCallbackList get_value; /* proc to call to fetch load pt */
+ int jump_val; /* Amount to jump on each scroll */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} StripChartPart;
+
+/* instance record declaration */
+typedef struct _StripChartRec {
+ CorePart core;
+ SimplePart simple;
+ StripChartPart strip_chart;
+} StripChartRec;
+
+/* new fields for the StripChart widget class record */
+typedef struct {
+ XtPointer extension;
+} StripChartClassPart;
+
+/* class record declaration */
+typedef struct _StripChartClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ StripChartClassPart strip_chart_class;
+} StripChartClassRec;
+
+extern StripChartClassRec stripChartClassRec;
+
+#endif /* _XawStripChartP_h */
diff --git a/X11/Xaw/StripChart.h b/X11/Xaw/StripChart.h
new file mode 100644
index 000000000..17e929991
--- /dev/null
+++ b/X11/Xaw/StripChart.h
@@ -0,0 +1,116 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawStripChart_h
+#define _XawStripChart_h
+
+#include <X11/Intrinsic.h>
+
+/***********************************************************************
+ *
+ * StripChart Widget
+ *
+ ***********************************************************************/
+
+/* StripChart resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ accelerators Accelerators AcceleratorTable NULL
+ ancestorSensitive AncestorSensitive Boolean True
+ background Background Pixel XtDefaultBackground
+ backgroundPixmap Pixmap Pixmap XtUnspecifiedPixmap
+ borderColor BorderColor Pixel XtDefaultForeground
+ borderPixmap Pixmap Pixmap XtUnspecifiedPixmap
+ borderWidth BorderWidth Dimension 1
+ colormap Colormap Colormap parent's colormap
+ cursor Cursor Cursor None
+ cursorName Cursor String NULL
+ depth Depth int parent's depth
+ destroyCallback Callback XtCallbackList NULL
+ foreground Foreground Pixel XtDefaultForeground
+ getValue Callback XtCallbackList NULL
+ height Height Dimension 120
+ highlight Foreground Pixel XtDefaultForeground
+ insensitiveBorder Insensitive Pixmap GreyPixmap
+ jumpScroll JumpScroll int 1/2 width
+ mappedWhenManaged MappedWhenManaged Boolean True
+ minScale Scale int 1
+ pointerColor Foreground Pixel XtDefaultForeground
+ pointerColorBackground Background Pixel XtDefaultBackground
+ screen Screen Screen parent's screen
+ sensitive Sensitive Boolean True
+ translations Translations TranslationTable NULL
+ update Interval int 10 (seconds)
+ width Width Dimension 120
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#define DEFAULT_JUMP -1
+
+#ifndef _XtStringDefs_h_
+#define XtNhighlight "highlight"
+#define XtNupdate "update"
+#endif
+
+#define XtCJumpScroll "JumpScroll"
+#define XtCScale "Scale"
+
+#define XtNgetValue "getValue"
+#define XtNjumpScroll "jumpScroll"
+#define XtNminScale "minScale"
+#define XtNscale "scale"
+#define XtNvmunix "vmunix"
+
+typedef struct _StripChartRec *StripChartWidget;
+typedef struct _StripChartClassRec *StripChartWidgetClass;
+
+extern WidgetClass stripChartWidgetClass;
+
+#endif /* _XawStripChart_h */
diff --git a/X11/Xaw/Template.c b/X11/Xaw/Template.c
new file mode 100644
index 000000000..c563b302f
--- /dev/null
+++ b/X11/Xaw/Template.c
@@ -0,0 +1,195 @@
+/*
+
+Copyright 1987, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+#include <X11/IntrinsicP.h>
+#include <X11/StringDefs.h>
+#include <X11/Xaw/TemplateP.h>
+
+/*
+ * Class Methods
+ */
+static void TemplateInitialize(Widget, Widget, ArgList, Cardinal*);
+
+/*
+ * Prototypes
+ */
+static Bool TemplateFunction(TemplateWidget, int, int, Bool);
+
+/*
+ * Actions
+ */
+static void TemplateAction(Widget, XEvent*, String*, Cardinal*);
+
+/*
+ * Initialization
+ */
+#define offset(field) XtOffsetOf(TemplateRec, template.field)
+static XtResource resources[] = {
+/*{
+ name,
+ class,
+ type,
+ size,
+ offset,
+ default_type,
+ default_addr
+ },*/
+ {
+ XtNtemplateResource,
+ XtCTemplateResource,
+ XtRTemplateResource,
+ sizeof(char*),
+ offset(resource),
+ XtRString,
+ (XtPointer)"default"
+ },
+};
+#undef offset
+
+static XtActionsRec actions[] =
+{
+ /*{name, procedure},*/
+ {"template", TemplateAction},
+};
+
+static char translations[] =
+"<Key>:" "template()\n"
+;
+
+#define Superclass (&widgetClassRec)
+TemplateClassRec templateClassRec = {
+ /* core */
+ {
+ (WidgetClass)Superclass, /* superclass */
+ "Template", /* class_name */
+ sizeof(TemplateRec), /* widget_size */
+ NULL, /* class_initialize */
+ NULL, /* class_part_initialize */
+ False, /* class_inited */
+ TemplateInitialize, /* initialize */
+ NULL, /* initialize_hook */
+ XtInheritRealize, /* realize */
+ actions, /* actions */
+ XtNumber(actions), /* num_actions */
+ resources, /* resources */
+ XtNumber(resources), /* num_resources */
+ NULLQUARK, /* xrm_class */
+ True, /* compress_motion */
+ True, /* compress_exposure */
+ True, /* compress_enterleave */
+ False, /* visible_interest */
+ NULL, /* destroy */
+ NULL, /* resize */
+ NULL, /* expose */
+ NULL, /* set_values */
+ NULL, /* set_values_hook */
+ XtInheritSetValuesAlmost, /* set_values_almost */
+ NULL, /* get_values_hook */
+ NULL, /* accept_focus */
+ XtVersion, /* version */
+ NULL, /* callback_private */
+ translations, /* tm_table */
+ XtInheritQueryGeometry, /* query_geometry */
+ XtInheritDisplayAccelerator, /* display_accelerator */
+ NULL, /* extension */
+ },
+ /* template */
+ {
+ NULL, /* extension */
+ }
+};
+
+WidgetClass templateWidgetClass = (WidgetClass)&templateClassRec;
+
+/*
+ * Implementation
+ */
+/*
+ * Function:
+ * TemplateInitialize
+ *
+ * Parameters:
+ * request - requested widget
+ * w - the widget
+ * args - arguments
+ * num_args - number of arguments
+ *
+ * Description:
+ * Initializes widget instance.
+ */
+/*ARGSUSED*/
+static void
+TemplateInitialize(Widget request, Widget w, ArgList args, Cardinal *num_args)
+{
+ TemplateWidget tw = (TemplateWidget)w;
+
+ tw->template.private = NULL;
+}
+
+/*
+ * Function:
+ * TemplateFunction
+ *
+ * Parameters:
+ * tw - template widget
+ * x - x coordinate
+ * y - y coordinate
+ * force - force action
+ *
+ * Description:
+ * This function does nothing.
+ *
+ * Return:
+ * Parameter force
+ */
+/*ARGSUSED*/
+static Bool
+TemplateFunction(TemplateWidget tw, int x, int y, Bool force)
+{
+ return (force);
+}
+
+/*
+ * Function:
+ * TemplateAction
+ *
+ * Parameters:
+ * w - template widget
+ * event - event that caused this action
+ * params - parameters
+ * num_params - number of parameters
+ *
+ * Description:
+ * This function does nothing.
+ */
+/*ARGSUSED*/
+static void
+TemplateAction(Widget w, XEvent *event, String *params, Cardinal *num_params)
+{
+}
diff --git a/X11/Xaw/Template.h b/X11/Xaw/Template.h
new file mode 100644
index 000000000..a46ac32bc
--- /dev/null
+++ b/X11/Xaw/Template.h
@@ -0,0 +1,67 @@
+/*
+
+Copyright 1987, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+#ifndef _Template_h
+#define _Template_h
+
+#include <X11/Intrinsic.h>
+
+/****************************************************************
+ *
+ * Template widget
+ *
+ ****************************************************************/
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ destroyCallback Callback Pointer NULL
+ height Height Dimension 0
+ mappedWhenManaged MappedWhenManaged Boolean True
+ sensitive Sensitive Boolean True
+ width Width Dimension 0
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+/* define any special resource names here that are not in <X11/StringDefs.h> */
+#define XtNtemplateResource "templateResource"
+
+#define XtCTemplateResource "TemplateResource"
+
+/* declare specific TemplateWidget class and instance datatypes */
+typedef struct _TemplateClassRec *TemplateWidgetClass;
+typedef struct _TemplateRec *TemplateWidget;
+
+/* declare the class constant */
+extern WidgetClass templateWidgetClass;
+
+#endif /* _Template_h */
diff --git a/X11/Xaw/TemplateP.h b/X11/Xaw/TemplateP.h
new file mode 100644
index 000000000..f61a059ab
--- /dev/null
+++ b/X11/Xaw/TemplateP.h
@@ -0,0 +1,65 @@
+/*
+
+Copyright 1987, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+#ifndef _TemplateP_h
+#define _TemplateP_h
+
+#include <X11/Xaw/Template.h>
+
+/* include superclass private header file */
+#include <X11/CoreP.h>
+
+/* define unique representation types not found in <X11/StringDefs.h> */
+#define XtRTemplateResource "TemplateResource"
+
+typedef struct {
+ XtPointer extension;
+} TemplateClassPart;
+
+typedef struct _TemplateClassRec {
+ CoreClassPart core_class;
+ TemplateClassPart template_class;
+} TemplateClassRec;
+
+extern TemplateClassRec templateClassRec;
+
+typedef struct {
+ /* resources */
+ char* resource;
+ /* private */
+ char *private;
+} TemplatePart;
+
+typedef struct _TemplateRec {
+ CorePart core;
+#if defined(__cplusplus) || defined(c_plusplus)
+ TemplatePart c_template;
+#else
+ TemplatePart template;
+#endif
+} TemplateRec;
+
+#endif /* _TemplateP_h */
diff --git a/X11/Xaw/Text.h b/X11/Xaw/Text.h
new file mode 100644
index 000000000..78c147894
--- /dev/null
+++ b/X11/Xaw/Text.h
@@ -0,0 +1,370 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawText_h
+#define _XawText_h
+
+#include <X11/Xaw/Simple.h>
+
+/*
+
+ Class: textWidgetClass
+ Class Name: Text
+ Superclass: Simple
+
+ Resources added by the Text widget:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ autoFill AutoFill Boolean False
+ bottomMargin Margin Position 2
+ displayPosition TextPosition XawTextPosition 0
+ insertPosition TextPosition XawTextPosition 0
+ justify JustifyMode JustifyMode left
+ leftColumn Column Column 0
+ rightColumn Column Column 0
+ leftMargin Margin Position 2
+ rightMargin Margin Position 4
+ positionCallback Callback Callback NULL
+ scrollHorizontal Scroll Boolean False
+ scrollVertical Scroll Boolean False
+ selectTypes SelectTypes Pointer see documentation
+ textSink TextSink Widget NULL
+ textSource TextSource Widget NULL
+ topMargin Margin Position 2
+ unrealizeCallback Callback Callback NULL
+ wrap Wrap XawTextWrapMode XawTextWrapNever
+
+*/
+
+typedef long XawTextPosition;
+
+#ifndef notdef
+typedef enum {
+ XawtextScrollNever,
+ XawtextScrollWhenNeeded,
+ XawtextScrollAlways
+} XawTextScrollMode;
+
+typedef enum {
+ XawtextResizeNever,
+ XawtextResizeWidth,
+ XawtextResizeHeight,
+ XawtextResizeBoth
+} XawTextResizeMode;
+#endif
+
+typedef enum {
+ XawtextWrapNever,
+ XawtextWrapLine,
+ XawtextWrapWord
+} XawTextWrapMode;
+
+typedef enum {
+ XawsdLeft,
+ XawsdRight
+} XawTextScanDirection;
+
+typedef enum {
+ XawtextRead,
+ XawtextAppend,
+ XawtextEdit
+} XawTextEditType;
+
+typedef enum {
+ XawselectNull,
+ XawselectPosition,
+ XawselectChar,
+ XawselectWord,
+ XawselectLine,
+ XawselectParagraph,
+ XawselectAll,
+ XawselectAlphaNumeric
+} XawTextSelectType;
+
+typedef enum {
+ XawjustifyLeft,
+ XawjustifyRight,
+ XawjustifyCenter,
+ XawjustifyFull
+} XawTextJustifyMode;
+
+typedef struct {
+ int firstPos;
+ int length;
+ char *ptr;
+ unsigned long format;
+} XawTextBlock, *XawTextBlockPtr;
+
+#ifndef OLDXAW
+typedef struct {
+ int line_number;
+ int column_number;
+ XawTextPosition insert_position;
+ XawTextPosition last_position;
+ Boolean overwrite_mode;
+} XawTextPositionInfo;
+
+typedef struct {
+ XawTextPosition left, right;
+ XawTextBlock *block;
+} XawTextPropertyInfo;
+
+typedef struct _XawTextAnchor XawTextAnchor;
+typedef struct _XawTextEntity XawTextEntity;
+typedef struct _XawTextProperty XawTextProperty;
+typedef struct _XawTextPropertyList XawTextPropertyList;
+#endif
+
+#include <X11/Xaw/TextSink.h>
+#include <X11/Xaw/TextSrc.h>
+
+#define XtEtextScrollNever "never"
+#define XtEtextScrollWhenNeeded "whenneeded"
+#define XtEtextScrollAlways "always"
+#define XtEtextResizeNever "never"
+#define XtEtextResizeWidth "width"
+#define XtEtextResizeHeight "height"
+#define XtEtextResizeBoth "both"
+
+#define XtEtextWrapNever "never"
+#define XtEtextWrapLine "line"
+#define XtEtextWrapWord "word"
+
+#define XtNautoFill "autoFill"
+#define XtNbottomMargin "bottomMargin"
+#define XtNdialogHOffset "dialogHOffset"
+#define XtNdialogVOffset "dialogVOffset"
+#define XtNdisplayCaret "displayCaret"
+#define XtNdisplayPosition "displayPosition"
+#define XtNleftMargin "leftMargin"
+#define XtNrightMargin "rightMargin"
+#define XtNpositionCallback "positionCallback"
+#define XtNscrollVertical "scrollVertical"
+#define XtNscrollHorizontal "scrollHorizontal"
+#define XtNselectTypes "selectTypes"
+#define XtNtopMargin "topMargin"
+#define XtNwrap "wrap"
+
+#define XtCColumn "Column"
+#define XtNleftColumn "leftColumn"
+#define XtNrightColumn "rightColumn"
+
+#define XtCJustifyMode XtCJustify
+#define XtNjustifyMode XtNjustify
+#define XtEtextJustifyLeft "left"
+#define XtEtextJustifyRight "right"
+#define XtEtextJustifyCenter "center"
+#define XtEtextJustifyFull "full"
+
+#define XtCAutoFill "AutoFill"
+#define XtCSelectTypes "SelectTypes"
+#define XtCWrap "Wrap"
+#ifndef notdef
+#define XtCScroll "Scroll"
+#endif
+
+#ifndef _XtStringDefs_h_
+#define XtNinsertPosition "insertPosition"
+#ifndef notdef
+#define XtNresize "resize"
+#define XtCResize "Resize"
+#endif
+#define XtNselection "selection"
+#endif
+
+/* return Error code for XawTextSearch */
+#define XawTextSearchError (-12345L)
+
+/* return codes from XawTextReplace */
+#define XawReplaceError -1
+#define XawEditDone 0
+#define XawEditError 1
+#define XawPositionError 2
+
+/* XrmQuark is not unsigned long */
+#define XawTextFormat(tw,fmt) ((unsigned long)_XawTextFormat(tw) == (fmt))
+
+extern unsigned long FMT8BIT;
+extern unsigned long XawFmt8Bit;
+extern unsigned long XawFmtWide;
+
+extern WidgetClass textWidgetClass;
+
+typedef struct _TextClassRec *TextWidgetClass;
+typedef struct _TextRec *TextWidget;
+
+_XFUNCPROTOBEGIN
+
+XrmQuark _XawTextFormat
+(
+ TextWidget tw
+ );
+
+void XawTextDisplay
+(
+ Widget w
+ );
+
+void XawTextEnableRedisplay
+(
+ Widget w
+ );
+
+void XawTextDisableRedisplay
+(
+ Widget w
+ );
+
+void XawTextSetSelectionArray
+(
+ Widget w,
+ XawTextSelectType *sarray
+ );
+
+void XawTextGetSelectionPos
+(
+ Widget w,
+ XawTextPosition *begin_return,
+ XawTextPosition *end_return
+ );
+
+void XawTextSetSource
+(
+ Widget w,
+ Widget source,
+ XawTextPosition top
+ );
+
+int XawTextReplace
+(
+ Widget w,
+ XawTextPosition start,
+ XawTextPosition end,
+ XawTextBlock *text
+ );
+
+XawTextPosition XawTextTopPosition
+(
+ Widget w
+ );
+
+XawTextPosition XawTextLastPosition
+(
+ Widget w
+ );
+
+void XawTextSetInsertionPoint
+(
+ Widget w,
+ XawTextPosition position
+ );
+
+XawTextPosition XawTextGetInsertionPoint
+(
+ Widget w
+ );
+
+void XawTextUnsetSelection
+(
+ Widget w
+ );
+
+void XawTextSetSelection
+(
+ Widget w,
+ XawTextPosition left,
+ XawTextPosition right
+ );
+
+void XawTextInvalidate
+(
+ Widget w,
+ XawTextPosition from,
+ XawTextPosition to
+);
+
+Widget XawTextGetSource
+(
+ Widget w
+ );
+
+Widget XawTextGetSink
+(
+ Widget w
+ );
+
+XawTextPosition XawTextSearch
+(
+ Widget w,
+#if NeedWidePrototypes
+ int dir,
+#else
+ XawTextScanDirection dir,
+#endif
+ XawTextBlock *text
+ );
+
+void XawTextDisplayCaret
+(
+ Widget w,
+#if NeedWidePrototypes
+ int visible
+#else
+ Boolean visible
+#endif
+ );
+
+_XFUNCPROTOEND
+
+/*
+ * For R3 compatability only
+ */
+#include <X11/Xaw/AsciiSrc.h>
+#include <X11/Xaw/AsciiSink.h>
+
+#endif /* _XawText_h */
diff --git a/X11/Xaw/TextP.h b/X11/Xaw/TextP.h
new file mode 100644
index 000000000..60f462421
--- /dev/null
+++ b/X11/Xaw/TextP.h
@@ -0,0 +1,317 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawTextP_h
+#define _XawTextP_h
+
+#include <X11/Xfuncproto.h>
+
+#include <X11/Xaw/Text.h>
+#include <X11/Xaw/SimpleP.h>
+
+_XFUNCPROTOBEGIN
+
+#define MAXCUT 30000 /* Maximum number of characters that can be cut */
+
+#define XawTextGetLastPosition(ctx) \
+ XawTextSourceScan((ctx)->text.source, 0, \
+ XawstAll, XawsdRight, 1, True)
+#define GETLASTPOS XawTextGetLastPosition(ctx)
+
+#define zeroPosition ((XawTextPosition)0)
+
+extern XtActionsRec _XawTextActionsTable[];
+extern Cardinal _XawTextActionsTableCount;
+
+extern char _XawDefaultTextTranslations[];
+
+#define XawLF 0x0a
+#define XawCR 0x0d
+#define XawTAB 0x09
+#define XawBS 0x08
+#define XawSP 0x20
+#define XawDEL 0x7f
+#define XawESC 0x1b
+#define XawBSLASH '\\'
+
+/* constants that subclasses may want to know */
+#define DEFAULT_TEXT_HEIGHT ((Dimension)~0)
+#define DEFAULT_TAB_SIZE 8
+
+/* displayable text management data structures */
+typedef struct {
+ XawTextPosition position;
+ Position y;
+#ifndef OLDXAW
+ unsigned int textWidth;
+#else
+ Dimension textWidth;
+#endif
+} XawTextLineTableEntry, *XawTextLineTableEntryPtr;
+
+typedef struct {
+ XawTextPosition left, right;
+ XawTextSelectType type;
+ Atom *selections;
+ int atom_count;
+ int array_size;
+} XawTextSelection;
+
+typedef struct _XawTextSelectionSalt {
+ struct _XawTextSelectionSalt *next;
+ XawTextSelection s;
+ /*
+ * The element "contents" stores the CT string which is gotten in the
+ * function _XawTextSaltAwaySelection()
+ */
+ char *contents;
+ int length;
+} XawTextSelectionSalt;
+
+#ifndef OLDXAW
+typedef struct _XawTextKillRing {
+ struct _XawTextKillRing *next;
+ char *contents;
+ int length;
+ unsigned refcount;
+ unsigned long format;
+} XawTextKillRing;
+
+extern XawTextKillRing *xaw_text_kill_ring;
+#endif
+
+/* Line Tables are n+1 long - last position displayed is in last lt entry */
+typedef struct {
+ XawTextPosition top; /* Top of the displayed text */
+ int lines; /* How many lines in this table */
+#ifndef OLDXAW
+ int base_line; /* line number of first entry */
+#endif
+ XawTextLineTableEntry *info; /* A dynamic array, one entry per line */
+} XawTextLineTable, *XawTextLineTablePtr;
+
+typedef struct _XawTextMargin {
+ Position left, right, top, bottom;
+} XawTextMargin;
+
+typedef struct _XmuScanline XmuTextUpdate;
+
+#define VMargins(ctx) ((ctx)->text.margin.top + (ctx)->text.margin.bottom)
+#define HMargins(ctx) ((ctx)->text.left_margin + (ctx)->text.margin.right)
+#define RVMargins(ctx) ((ctx)->text.r_margin.top + (ctx)->text.r_margin.bottom)
+#define RHMargins(ctx) ((ctx)->text.r_margin.left + (ctx)->text.r_margin.right)
+
+#define IsPositionVisible(ctx, pos) \
+(pos >= ctx->text.lt.info[0].position && \
+ pos < ctx->text.lt.info[ctx->text.lt.lines].position)
+
+/*
+ * Search & Replace data structure
+ */
+struct SearchAndReplace {
+ Boolean selection_changed; /* flag so that the selection cannot be
+ changed out from underneath query-replace.*/
+ Widget search_popup; /* The poppup widget that allows searches.*/
+ Widget label1; /* The label widgets for the search window. */
+ Widget label2;
+ Widget left_toggle; /* The left search toggle radioGroup. */
+ Widget right_toggle; /* The right search toggle radioGroup. */
+ Widget rep_label; /* The Replace label string. */
+ Widget rep_text; /* The Replace text field. */
+ Widget search_text; /* The Search text field. */
+ Widget rep_one; /* The Replace one button. */
+ Widget rep_all; /* The Replace all button. */
+#ifndef OLDXAW
+ Widget case_sensitive; /* The "Case Sensitive" toggle */
+#endif
+};
+
+/* New fields for the Text widget class record */
+typedef struct {
+ XtPointer extension;
+} TextClassPart;
+
+/* Full class record declaration */
+typedef struct _TextClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ TextClassPart text_class;
+} TextClassRec;
+
+extern TextClassRec textClassRec;
+
+/* New fields for the Text widget record */
+typedef struct _TextPart {
+ /* resources */
+ Widget source, sink;
+ XawTextPosition insertPos;
+ XawTextSelection s;
+ XawTextSelectType *sarray; /* Array to cycle for selections */
+ XawTextSelectionSalt *salt; /* salted away selections */
+ int left_margin;
+ int dialog_horiz_offset, dialog_vert_offset; /* position for popup dialog */
+ Boolean display_caret; /* insertion pt visible iff T */
+ Boolean auto_fill; /* Auto fill mode? */
+ XawTextScrollMode scroll_vert, scroll_horiz;
+ XawTextWrapMode wrap; /* The type of wrapping */
+ XawTextResizeMode resize;
+ XawTextMargin r_margin; /* The real margins */
+#ifndef OLDXAW
+ XtCallbackList position_callbacks;
+#else
+ XtPointer pad1;
+#endif
+
+ /* private state */
+ XawTextMargin margin; /* The current margins */
+ XawTextLineTable lt;
+ XawTextScanDirection extendDir;
+ XawTextSelection origSel; /* the selection being modified */
+ Time lasttime; /* timestamp of last processed action */
+ Time time; /* time of last key or button action */
+ Position ev_x, ev_y; /* x, y coords for key or button action */
+ Widget vbar, hbar; /* The scroll bars (none = NULL) */
+ struct SearchAndReplace *search; /* Search and replace structure */
+ Widget file_insert; /* The file insert popup widget */
+ XmuTextUpdate *update; /* Position intervals to update */
+#ifndef OLDXAW
+ int line_number;
+ short column_number;
+ unsigned char kill_ring;
+ Boolean selection_state;
+#else
+ XtPointer pad2;
+ int pad3;
+#endif
+ int from_left; /* Cursor position */
+ XawTextPosition lastPos; /* Last position of source */
+ GC gc;
+ Boolean showposition; /* True if we need to show the position */
+ Boolean hasfocus; /* TRUE if we currently have input focus*/
+ Boolean update_disabled; /* TRUE if display updating turned off */
+ Boolean clear_to_eol; /* Clear to eol when painting text? */
+ XawTextPosition old_insert; /* Last insertPos for batched updates */
+ short mult; /* Multiplier */
+#ifndef OLDXAW
+ XawTextKillRing *kill_ring_ptr;
+#else
+ XtPointer pad4;
+#endif
+
+ /* private state, shared w/Source and Sink */
+ Boolean redisplay_needed; /* in SetValues */
+ XawTextSelectionSalt *salt2; /* salted away selections */
+
+#ifndef OLDXAW
+ char numeric;
+ char source_changed;
+ Boolean overwrite; /* Overwrite mode */
+
+ /* new resources and states, for text edition
+ * Note: a fixed width font is required for these resources/states.
+ */
+ short left_column, right_column;
+ XawTextJustifyMode justify;
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} TextPart;
+
+#define XtRWrapMode "WrapMode"
+#define XtRScrollMode "ScrollMode"
+#define XtRResizeMode "ResizeMode"
+#define XtRJustifyMode "JustifyMode"
+
+/* full instance record */
+typedef struct _TextRec {
+ CorePart core;
+ SimplePart simple;
+ TextPart text;
+} TextRec;
+
+/*
+ * Semi-private functions
+ * for use by other Xaw modules only
+ */
+void _XawTextBuildLineTable
+(
+ TextWidget ctx,
+ XawTextPosition top_pos,
+ _XtBoolean force_rebuild
+ );
+
+char *_XawTextGetSTRING
+(
+ TextWidget ctx,
+ XawTextPosition left,
+ XawTextPosition right
+ );
+
+void _XawTextSaltAwaySelection
+(
+ TextWidget ctx,
+ Atom *selections,
+ int num_atoms
+ );
+
+void _XawTextPosToXY
+(
+ Widget w,
+ XawTextPosition pos,
+ Position *x,
+ Position *y
+ );
+
+void _XawTextNeedsUpdating
+(
+ TextWidget ctx,
+ XawTextPosition left,
+ XawTextPosition right
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawTextP_h */
diff --git a/X11/Xaw/TextSink.h b/X11/Xaw/TextSink.h
new file mode 100644
index 000000000..f3dd96855
--- /dev/null
+++ b/X11/Xaw/TextSink.h
@@ -0,0 +1,359 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawTextSink_h
+#define _XawTextSink_h
+
+#include <X11/Xaw/Text.h>
+
+/***********************************************************************
+ *
+ * TextSink Object
+ *
+ ***********************************************************************/
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ font Font XFontStruct * XtDefaultFont
+ foreground Foreground Pixel XtDefaultForeground
+ background Background Pixel XtDefaultBackground
+ cursorColor Color Pixel XtDefaultForeground
+*/
+
+/* Class record constants */
+
+extern WidgetClass textSinkObjectClass;
+
+typedef struct _TextSinkClassRec *TextSinkObjectClass;
+typedef struct _TextSinkRec *TextSinkObject;
+
+typedef enum {XawisOn, XawisOff} XawTextInsertState;
+
+#ifndef OLDXAW
+#ifndef XtNcursorColor
+#define XtNcursorColor "cursorColor"
+#endif
+
+#define XawNtextProperties "textProperties"
+#define XawCTextProperties "TextProperties"
+#define XawRTextProperties "XawTextProperties"
+#endif
+
+/*
+ * Public Functions
+ */
+_XFUNCPROTOBEGIN
+
+/*
+ * Function:
+ * XawTextSinkDisplayText
+ *
+ * Parameters:
+ * w - the TextSink Object
+ * x - location to start drawing text
+ * y - ""
+ * pos1 - location of starting and ending points in the text buffer
+ * pos2 - ""
+ * highlight - hightlight this text?
+ *
+ * Description:
+ * Stub function that in subclasses will display text.
+ *
+ * Note:
+ * This function doesn't actually display anything, it is only a place
+ * holder.
+ */
+void XawTextSinkDisplayText
+(
+ Widget w,
+#if NeedWidePrototypes
+ int x,
+ int y,
+#else
+ Position x,
+ Position y,
+#endif
+ XawTextPosition pos1,
+ XawTextPosition pos2,
+#if NeedWidePrototypes
+ int highlight
+#else
+ Boolean highlight
+#endif
+ );
+
+/*
+ * Function:
+ * XawTextSinkInsertCursor
+ *
+ * Parameters:
+ * w - the TextSink Object.
+ * x - location for the cursor.
+ * y - ""
+ * state - whether to turn the cursor on, or off
+ *
+ * Description:
+ * Places the InsertCursor.
+ *
+ * Note:
+ * This function doesn't actually display anything, it is only a place
+ * holder.
+ */
+void XawTextSinkInsertCursor
+(
+ Widget w,
+#if NeedWidePrototypes
+ int x,
+ int y,
+ int state
+#else
+ Position x,
+ Position y,
+ XawTextInsertState state
+#endif
+ );
+
+/*
+ * Function:
+ * XawTextSinkClearToBackground
+ *
+ * Parameters:
+ * w - TextSink Object
+ * x - location of area to clear
+ * y - ""
+ * width - size of area to clear
+ * height - ""
+ *
+ * Description:
+ * Clears a region of the sink to the background color.
+ *
+ * Note:
+ * This function doesn't actually display anything, it is only a place
+ * holder.
+ */
+void XawTextSinkClearToBackground
+(
+ Widget w,
+#if NeedWidePrototypes
+ int x,
+ int y,
+ unsigned int width,
+ unsigned int height
+#else
+ Position x,
+ Position y,
+ Dimension width,
+ Dimension height
+#endif
+ );
+
+/*
+ * Function:
+ * XawTextSinkFindPosition
+ *
+ * Parameters:
+ * w - TextSink Object
+ * fromPos - reference position
+ * fromX - reference location
+ * width - width of section to paint text
+ * stopAtWordBreak - returned position is a word break?
+ * resPos - Position to return
+ * resWidth - Width actually used
+ * resHeight - Height actually used
+ *
+ * Description:
+ * Finds a position in the text.
+ */
+void XawTextSinkFindPosition
+(
+ Widget w,
+ XawTextPosition fromPos,
+ int fromX,
+ int width,
+#if NeedWidePrototypes
+ int stopAtWordBreak,
+#else
+ Boolean stopAtWordBreak,
+#endif
+ XawTextPosition* pos_return,
+ int *width_return,
+ int *height_return
+ );
+
+/*
+ * Function:
+ * XawTextSinkFindDistance
+ *
+ * Parameters:
+ * w - TextSink Object
+ * fromPos - starting Position
+ * fromX - x location of starting Position
+ * toPos - end Position
+ * resWidth - Distance between fromPos and toPos
+ * resPos - Acutal toPos used
+ * resHeight - Height required by this text
+ *
+ * Description:
+ * Find the Pixel Distance between two text Positions.
+ */
+void XawTextSinkFindDistance
+(
+ Widget w,
+ XawTextPosition fromPos,
+ int fromX,
+ XawTextPosition toPos,
+ int *width_return,
+ XawTextPosition *pos_return,
+ int *height_return
+ );
+
+/*
+ * Function:
+ * XawTextSinkResolve
+ *
+ * Parameters:
+ * w - TextSink Object
+ * pos - reference Position
+ * fromx - reference Location
+ * width - width to move
+ * resPos - resulting position
+ *
+ * Description:
+ * Resloves a location to a position.
+ */
+void XawTextSinkResolve
+(
+ Widget w,
+ XawTextPosition fromPos,
+ int fromX,
+ int width,
+ XawTextPosition *pos_return
+ );
+
+/*
+ * Function:
+ * XawTextSinkMaxLines
+ *
+ * Parameters:
+ * w - TextSink Object
+ * height - height to fit lines into
+ *
+ * Returns:
+ * Number of lines that will fit
+ *
+ * Description:
+ * Finds the Maximum number of lines that will fit in a given height.
+ */
+int XawTextSinkMaxLines
+(
+ Widget w,
+#if NeedWidePrototypes
+ unsigned int height
+#else
+ Dimension height
+#endif
+ );
+
+/*
+ * Function:
+ * XawTextSinkMaxHeight
+ *
+ * Parameters:
+ * w - TextSink Object
+ * lines - number of lines
+ *
+ * Returns:
+ * Height
+ *
+ * Description:
+ * Finds the Minium height that will contain a given number lines.
+ */
+int XawTextSinkMaxHeight
+(
+ Widget w,
+ int lines
+);
+
+/*
+ * Function:
+ * XawTextSinkSetTabs
+ *
+ * Parameters:
+ * w - TextSink Object
+ * tab_count - number of tabs in the list
+ * tabs - text positions of the tabs
+ * Description:
+ * Sets the Tab stops.
+ */
+void XawTextSinkSetTabs
+(
+ Widget w,
+ int tab_count,
+ int *tabs
+);
+
+/*
+ * Function:
+ * XawTextSinkGetCursorBounds
+ *
+ * Parameters:
+ * w - TextSink Object
+ * rect - X rectance containing the cursor bounds
+ * Description:
+ * Finds the bounding box for the insert curor (caret).
+ */
+void XawTextSinkGetCursorBounds
+(
+ Widget w,
+ XRectangle *rect_return
+);
+
+_XFUNCPROTOEND
+
+#endif /* _XawTextSink_h */
diff --git a/X11/Xaw/TextSinkP.h b/X11/Xaw/TextSinkP.h
new file mode 100644
index 000000000..78f41d29c
--- /dev/null
+++ b/X11/Xaw/TextSinkP.h
@@ -0,0 +1,300 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawTextSinkP_h
+#define _XawTextSinkP_h
+
+/*
+ * TextSink Object Private Data
+ */
+#include <X11/Xaw/TextSink.h>
+#include <X11/Xaw/TextP.h> /* This sink works with the Text widget */
+#include <X11/Xaw/TextSrcP.h> /* This sink works with the Text Source */
+#include <X11/Xmu/Xmu.h>
+
+#ifndef OLDXAW
+/* font/fontset defined? */
+#define XAW_TPROP_FONT (1<<0)
+#define XAW_TPROP_FONTSET (1<<1)
+
+/* extra attributes */
+#define XAW_TPROP_FOREGROUND (1<<2)
+#define XAW_TPROP_BACKGROUND (1<<3)
+#define XAW_TPROP_FPIXMAP (1<<4)
+#define XAW_TPROP_BPIXMAP (1<<5)
+#define XAW_TPROP_UNDERLINE (1<<6)
+#define XAW_TPROP_OVERSTRIKE (1<<7)
+#define XAW_TPROP_SUBSCRIPT (1<<8)
+#define XAW_TPROP_SUPERSCRIPT (1<<9)
+
+/* xlfd attributes */
+#define XAW_TPROP_FOUNDRY (1<<0)
+#define XAW_TPROP_FAMILY (1<<1)
+#define XAW_TPROP_WEIGHT (1<<2)
+#define XAW_TPROP_SLANT (1<<3)
+#define XAW_TPROP_SETWIDTH (1<<4)
+#define XAW_TPROP_ADDSTYLE (1<<5)
+#define XAW_TPROP_PIXELSIZE (1<<6)
+#define XAW_TPROP_POINTSIZE (1<<7)
+#define XAW_TPROP_RESX (1<<8)
+#define XAW_TPROP_RESY (1<<9)
+#define XAW_TPROP_SPACING (1<<10)
+#define XAW_TPROP_AVGWIDTH (1<<11)
+#define XAW_TPROP_REGISTRY (1<<12)
+#define XAW_TPROP_ENCODING (1<<13)
+struct _XawTextProperty { /* to be extended/modified */
+ XrmQuark identifier, code;
+ unsigned long mask;
+ XFontStruct *font;
+ XFontSet fontset;
+ Pixel foreground, background;
+ Pixmap foreground_pixmap, background_pixmap;
+ XrmQuark xlfd;
+
+ unsigned long xlfd_mask;
+ XrmQuark foundry, family, weight, slant, setwidth, addstyle, pixel_size,
+ point_size, res_x, res_y, spacing, avgwidth, registry, encoding;
+
+ short underline_position, underline_thickness;
+};
+
+struct _XawTextPropertyList {
+ XrmQuark identifier;
+ Screen *screen;
+ Colormap colormap;
+ int depth;
+ XawTextProperty **properties;
+ Cardinal num_properties;
+ XawTextPropertyList *next;
+};
+
+typedef struct _XawTextPaintStruct XawTextPaintStruct;
+struct _XawTextPaintStruct {
+ XawTextPaintStruct *next;
+ int x, y, width;
+ char *text; /* formatted text */
+ Cardinal length; /* length of text */
+ XawTextProperty *property;
+ int max_ascent, max_descent;
+ XmuArea *backtabs;
+ Boolean highlight;
+};
+
+typedef struct {
+ XmuArea *clip, *hightabs; /* clip list */
+ XawTextPaintStruct *paint, *bearings; /* drawing information */
+} XawTextPaintList;
+
+typedef struct {
+ XtPointer next_extension;
+ XrmQuark record_type;
+ long version;
+ Cardinal record_size;
+ Bool (*BeginPaint)(Widget);
+ void (*PreparePaint)(Widget, int, int,
+ XawTextPosition, XawTextPosition, Bool);
+ void (*DoPaint)(Widget);
+ Bool (*EndPaint)(Widget);
+} TextSinkExtRec, *TextSinkExt;
+#endif
+
+typedef void (*_XawSinkDisplayTextProc)
+ (Widget, int, int, XawTextPosition, XawTextPosition, Bool);
+
+typedef void (*_XawSinkInsertCursorProc)
+ (Widget, int, int, XawTextInsertState);
+
+typedef void (*_XawSinkClearToBackgroundProc)
+ (Widget, int, int, unsigned int, unsigned int);
+
+typedef void (*_XawSinkFindPositionProc)
+ (Widget, XawTextPosition, int, int, Bool, XawTextPosition*, int*, int*);
+
+typedef void (*_XawSinkFindDistanceProc)
+ (Widget, XawTextPosition, int, XawTextPosition, int*,
+ XawTextPosition*, int*);
+
+typedef void (*_XawSinkResolveProc)
+ (Widget, XawTextPosition, int, int, XawTextPosition*);
+
+typedef int (*_XawSinkMaxLinesProc)
+ (Widget, unsigned int);
+
+typedef int (*_XawSinkMaxHeightProc)
+ (Widget, int);
+
+typedef void (*_XawSinkSetTabsProc)
+ (Widget, int, short*);
+
+typedef void (*_XawSinkGetCursorBoundsProc)
+ (Widget, XRectangle*);
+
+typedef struct _TextSinkClassPart {
+ _XawSinkDisplayTextProc DisplayText;
+ _XawSinkInsertCursorProc InsertCursor;
+ _XawSinkClearToBackgroundProc ClearToBackground;
+ _XawSinkFindPositionProc FindPosition;
+ _XawSinkFindDistanceProc FindDistance;
+ _XawSinkResolveProc Resolve;
+ _XawSinkMaxLinesProc MaxLines;
+ _XawSinkMaxHeightProc MaxHeight;
+ _XawSinkSetTabsProc SetTabs;
+ _XawSinkGetCursorBoundsProc GetCursorBounds;
+#ifndef OLDXAW
+ TextSinkExt extension;
+#endif
+} TextSinkClassPart;
+
+/* Full class record */
+typedef struct _TextSinkClassRec {
+ ObjectClassPart object_class;
+ TextSinkClassPart text_sink_class;
+} TextSinkClassRec;
+
+extern TextSinkClassRec textSinkClassRec;
+
+/* New fields for the TextSink object */
+typedef struct {
+ /* resources */
+ Pixel foreground; /* Foreground color */
+ Pixel background; /* Background color */
+
+ /* private */
+ Position *tabs; /* The tab stops as pixel values */
+ short *char_tabs; /* The tabs stops as character values */
+ int tab_count; /* number of items in tabs */
+
+#ifndef OLDXAW
+ /* more resources */
+ Pixel cursor_color;
+ XawTextPropertyList *properties;
+ XawTextPaintList *paint;
+ XtPointer pad[2]; /* for future use and keep binary compatability */
+#endif
+} TextSinkPart;
+
+/* Full instance record */
+typedef struct _TextSinkRec {
+ ObjectPart object;
+ TextSinkPart text_sink;
+} TextSinkRec;
+
+/* Semi private routines */
+#ifndef OLDXAW
+XawTextPropertyList *XawTextSinkConvertPropertyList
+(
+ String name,
+ String spec,
+ Screen *screen,
+ Colormap Colormap,
+ int depth
+ );
+
+XawTextProperty *XawTextSinkGetProperty
+(
+ Widget w,
+ XrmQuark property
+ );
+
+XawTextProperty *XawTextSinkCopyProperty
+(
+ Widget w,
+ XrmQuark property
+ );
+
+XawTextProperty *XawTextSinkAddProperty
+(
+ Widget w,
+ XawTextProperty *property
+ );
+
+XawTextProperty *XawTextSinkCombineProperty
+(
+ Widget w,
+ XawTextProperty *result_in_out,
+ XawTextProperty *property,
+ Bool override
+ );
+
+Bool XawTextSinkBeginPaint
+(
+ Widget w
+ );
+
+void XawTextSinkPreparePaint
+(
+ Widget w,
+ int y,
+ int line,
+ XawTextPosition from,
+ XawTextPosition to,
+ Bool highlight
+);
+
+void XawTextSinkDoPaint
+(
+ Widget w
+ );
+
+Bool XawTextSinkEndPaint
+(
+ Widget w
+ );
+#endif
+
+#define XtInheritDisplayText ((_XawSinkDisplayTextProc)_XtInherit)
+#define XtInheritInsertCursor ((_XawSinkInsertCursorProc)_XtInherit)
+#define XtInheritClearToBackground ((_XawSinkClearToBackgroundProc)_XtInherit)
+#define XtInheritFindPosition ((_XawSinkFindPositionProc)_XtInherit)
+#define XtInheritFindDistance ((_XawSinkFindDistanceProc)_XtInherit)
+#define XtInheritResolve ((_XawSinkResolveProc)_XtInherit)
+#define XtInheritMaxLines ((_XawSinkMaxLinesProc)_XtInherit)
+#define XtInheritMaxHeight ((_XawSinkMaxHeightProc)_XtInherit)
+#define XtInheritSetTabs ((_XawSinkSetTabsProc)_XtInherit)
+#define XtInheritGetCursorBounds ((_XawSinkGetCursorBoundsProc)_XtInherit)
+
+#endif /* _XawTextSinkP_h */
diff --git a/X11/Xaw/TextSrc.h b/X11/Xaw/TextSrc.h
new file mode 100644
index 000000000..2c65e6677
--- /dev/null
+++ b/X11/Xaw/TextSrc.h
@@ -0,0 +1,275 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawTextSrc_h
+#define _XawTextSrc_h
+
+#include <X11/Xaw/Text.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ callback Callback Callback NULL
+ editType EditType XawTextEditType XawtextRead
+ enableUndo Undo Boolean False
+ sourceChanged Changed Boolean False
+
+*/
+
+/* Class record constants */
+extern WidgetClass textSrcObjectClass;
+
+typedef struct _TextSrcClassRec *TextSrcObjectClass;
+typedef struct _TextSrcRec *TextSrcObject;
+
+typedef enum {
+ XawstPositions,
+ XawstWhiteSpace,
+ XawstEOL,
+ XawstParagraph,
+ XawstAll,
+ XawstAlphaNumeric
+ } XawTextScanType;
+
+typedef enum {
+ Normal,
+ Selected
+} highlightType;
+
+typedef enum {
+ XawsmTextSelect,
+ XawsmTextExtend
+} XawTextSelectionMode;
+
+typedef enum {
+ XawactionStart,
+ XawactionAdjust,
+ XawactionEnd
+} XawTextSelectionAction;
+
+#define XawTextReadError -1
+#define XawTextScanError -1
+
+#ifndef OLDXAW
+#define XtNenableUndo "enableUndo"
+#define XtCUndo "Undo"
+
+#define XtNsourceChanged "sourceChanged"
+#define XtCChanged "Changed"
+
+#define XtNpropertyCallback "propertyCallback"
+#endif
+
+/*
+ * Public Functions
+ */
+_XFUNCPROTOBEGIN
+
+/*
+ * Function:
+ * XawTextSourceRead
+ *
+ * Parameters:
+ * w - TextSrc Object
+ * pos - position of the text to retreive
+ * text - text block that will contain returned text
+ * length - maximum number of characters to read
+ *
+ * Description:
+ * This function reads the source.
+ *
+ * Returns:
+ * The number of characters read into the buffer
+ */
+XawTextPosition XawTextSourceRead
+(
+ Widget w,
+ XawTextPosition pos,
+ XawTextBlock *text_return,
+ int length
+ );
+
+/*
+ * Function:
+ * XawTextSourceReplace
+ *
+ * Parameters:
+ * src - Text Source Object
+ * startPos - ends of text that will be removed
+ * endPos - ""
+ * text - new text to be inserted into buffer at startPos
+ *
+ * Description:
+ * Replaces a block of text with new text
+ *
+ * Returns:
+ * XawEditError or XawEditDone
+ */
+int XawTextSourceReplace
+(
+ Widget w,
+ XawTextPosition start,
+ XawTextPosition end,
+ XawTextBlock *text
+ );
+
+/*
+ * Function:
+ * XawTextSourceScan
+ *
+ * Parameters:
+ * w - TextSrc Object
+ * position - position to start scanning
+ * type - type of thing to scan for
+ * dir - direction to scan
+ * count - which occurance if this thing to search for
+ * include - whether or not to include the character found in
+ * the position that is returned.
+ *
+ * Description:
+ * Scans the text source for the number and type of item specified.
+ *
+ * Returns:
+ * The position of the text
+ */
+XawTextPosition XawTextSourceScan
+(
+ Widget w,
+ XawTextPosition position,
+#if NeedWidePrototypes
+ int type,
+ int dir,
+ int count,
+ int include
+#else
+ XawTextScanType type,
+ XawTextScanDirection dir,
+ int count,
+ Boolean include
+#endif
+ );
+
+/*
+ * Function:
+ * XawTextSourceSearch
+ *
+ * Parameters:
+ * w - TextSource Object
+ * position - position to start scanning
+ * dir - direction to search
+ * text - the text block to search for
+ *
+ * Description:
+ * Searchs the text source for the text block passed.
+ *
+ * Returns:
+ * The position of the text we are searching for or XawTextSearchError
+ */
+XawTextPosition XawTextSourceSearch
+(
+ Widget w,
+ XawTextPosition position,
+#if NeedWidePrototypes
+ int dir,
+#else
+ XawTextScanDirection dir,
+#endif
+ XawTextBlock *text
+ );
+
+/*
+ * Function:
+ * XawTextSourceConvertSelection
+ *
+ * Parameters:
+ * w - TextSrc object
+ * selection - current selection atom
+ * target - current target atom
+ * type - type to conver the selection to
+ * value - return value that has been converted
+ * length - ""
+ * format - format of the returned value
+ *
+ * Returns:
+ * True if the selection has been converted
+ */
+Boolean XawTextSourceConvertSelection
+(
+ Widget w,
+ Atom *selection,
+ Atom *target,
+ Atom *type,
+ XtPointer *value_return,
+ unsigned long *length_return,
+ int *format_return
+ );
+
+/*
+ * Function:
+ * XawTextSourceSetSelection
+ *
+ * Parameters:
+ * w - TextSrc object
+ * left - bounds of the selection
+ * right - ""
+ * selection - selection atom
+ *
+ * Description:
+ * Allows special setting of the selection.
+ */
+void XawTextSourceSetSelection
+(
+ Widget w,
+ XawTextPosition start,
+ XawTextPosition end,
+ Atom selection
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawTextSrc_h */
diff --git a/X11/Xaw/TextSrcP.h b/X11/Xaw/TextSrcP.h
new file mode 100644
index 000000000..27514c218
--- /dev/null
+++ b/X11/Xaw/TextSrcP.h
@@ -0,0 +1,258 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _XawTextSrcP_h
+#define _XawTextSrcP_h
+
+/*
+ * TextSrc Object Private Data
+ */
+#include <X11/Xfuncproto.h>
+
+#include <X11/Xaw/TextSrc.h>
+#include <X11/Xaw/TextP.h> /* This source works with the Text widget */
+
+_XFUNCPROTOBEGIN
+
+#ifndef OLDXAW
+struct _XawTextAnchor {
+ XawTextPosition position;
+ XawTextEntity *entities, *cache;
+};
+
+#define XAW_TENTF_HIDE 0x0001
+#define XAW_TENTF_READ 0x0002
+#define XAW_TENTF_REPLACE 0x0004
+struct _XawTextEntity {
+ short type;
+ short flags;
+ XawTextEntity *next;
+ XtPointer data;
+ XawTextPosition offset; /* from the anchor */
+ Cardinal length;
+ XrmQuark property;
+};
+#endif
+
+#if 0 /* no longer used */
+/* New fields for the TextSrc object class */
+typedef struct {
+ XtPointer next_extension;
+ XrmQuark record_type;
+ long version;
+ Cardinal record_size;
+ int (*Input)();
+} TextSrcExtRec, *TextSrcExt;
+#endif
+
+typedef XawTextPosition (*_XawSrcReadProc)
+ (Widget, XawTextPosition, XawTextBlock*, int);
+
+typedef int (*_XawSrcReplaceProc)
+ (Widget, XawTextPosition, XawTextPosition, XawTextBlock*);
+
+typedef XawTextPosition (*_XawSrcScanProc)
+ (Widget, XawTextPosition, XawTextScanType, XawTextScanDirection,
+ int, Bool);
+
+typedef XawTextPosition (*_XawSrcSearchProc)
+ (Widget, XawTextPosition, XawTextScanDirection, XawTextBlock*);
+
+typedef void (*_XawSrcSetSelectionProc)
+ (Widget, XawTextPosition, XawTextPosition, Atom);
+
+typedef Boolean (*_XawSrcConvertSelectionProc)
+ (Widget, Atom*, Atom*, Atom*, XtPointer*, unsigned long*, int*);
+
+typedef struct _TextSrcClassPart {
+ _XawSrcReadProc Read;
+ _XawSrcReplaceProc Replace;
+ _XawSrcScanProc Scan;
+ _XawSrcSearchProc Search;
+ _XawSrcSetSelectionProc SetSelection;
+ _XawSrcConvertSelectionProc ConvertSelection;
+#ifndef OLDXAW
+ XtPointer extension;
+#endif
+} TextSrcClassPart;
+
+/* Full class record */
+typedef struct _TextSrcClassRec {
+ ObjectClassPart object_class;
+ TextSrcClassPart textSrc_class;
+} TextSrcClassRec;
+
+extern TextSrcClassRec textSrcClassRec;
+
+#ifndef OLDXAW
+typedef struct _XawTextUndo XawTextUndo;
+#endif
+
+/* New fields for the TextSrc object */
+typedef struct {
+ /* resources */
+ XawTextEditType edit_mode;
+ XrmQuark text_format; /* 2 formats: FMT8BIT for Ascii
+ FMTWIDE for ISO 10646 */
+#ifndef OLDXAW
+ XtCallbackList callback; /* A callback list to call when the
+ source is changed */
+ Boolean changed;
+ Boolean enable_undo;
+
+ /* private state */
+ Boolean undo_state; /* to protect undo manipulation */
+ XawTextUndo *undo;
+ WidgetList text; /* TextWidget's using this source */
+ Cardinal num_text;
+ XtCallbackList property_callback;
+ XawTextAnchor **anchors;
+ int num_anchors;
+ XtPointer pad[1]; /* for future use and keep binary compatability */
+#endif
+} TextSrcPart;
+
+/* Full instance record */
+typedef struct _TextSrcRec {
+ ObjectPart object;
+ TextSrcPart textSrc;
+} TextSrcRec;
+
+/*
+ * Semiprivate declarations of functions used in other modules
+ */
+char* _XawTextWCToMB
+(
+ Display *display,
+ wchar_t *wstr,
+ int *len_in_out
+ );
+
+wchar_t* _XawTextMBToWC
+(
+ Display *display,
+ char *str,
+ int *len_in_out
+ );
+
+#ifndef OLDXAW
+XawTextAnchor *XawTextSourceAddAnchor
+(
+ Widget source,
+ XawTextPosition position
+ );
+
+XawTextAnchor *XawTextSourceFindAnchor
+(
+ Widget source,
+ XawTextPosition position
+ );
+
+XawTextAnchor *XawTextSourceNextAnchor
+(
+ Widget source,
+ XawTextAnchor *anchor
+ );
+
+XawTextAnchor *XawTextSourcePrevAnchor
+(
+ Widget source,
+ XawTextAnchor *anchor
+ );
+
+XawTextAnchor *XawTextSourceRemoveAnchor
+(
+ Widget source,
+ XawTextAnchor *anchor
+ );
+
+Bool XawTextSourceAnchorAndEntity
+(
+ Widget w,
+ XawTextPosition position,
+ XawTextAnchor **anchor_return,
+ XawTextEntity **entity_return
+ );
+
+XawTextEntity *XawTextSourceAddEntity
+(
+ Widget source,
+ int type,
+ int flags,
+ XtPointer data,
+ XawTextPosition position,
+ Cardinal length,
+ XrmQuark property
+ );
+
+void XawTextSourceClearEntities
+(
+ Widget w,
+ XawTextPosition left,
+ XawTextPosition right
+ );
+#endif
+
+#if 0 /* no longer used */
+typedef XawTextPosition (*_XawTextPositionFunc)();
+#endif
+
+#define XtInheritInput ((_XawTextPositionFunc)_XtInherit)
+#define XtInheritRead ((_XawSrcReadProc)_XtInherit)
+#define XtInheritReplace ((_XawSrcReplaceProc)_XtInherit)
+#define XtInheritScan ((_XawSrcScanProc)_XtInherit)
+#define XtInheritSearch ((_XawSrcSearchProc)_XtInherit)
+#define XtInheritSetSelection ((_XawSrcSetSelectionProc)_XtInherit)
+#define XtInheritConvertSelection ((_XawSrcConvertSelectionProc)_XtInherit)
+#if 0
+#define XtTextSrcExtVersion 1
+#define XtTextSrcExtTypeString "XT_TEXTSRC_EXT"
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _XawTextSrcP_h */
diff --git a/X11/Xaw/Tip.h b/X11/Xaw/Tip.h
new file mode 100644
index 000000000..d3c1da5ad
--- /dev/null
+++ b/X11/Xaw/Tip.h
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 1999 by The XFree86 Project, Inc.
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE XFREE86 PROJECT 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.
+ *
+ * Except as contained in this notice, the name of the XFree86 Project shall
+ * not be used in advertising or otherwise to promote the sale, use or other
+ * dealings in this Software without prior written authorization from the
+ * XFree86 Project.
+ *
+ * Author: Paulo César Pereira de Andrade
+ */
+
+#ifndef _XawTip_h
+#define _XawTip_h
+
+/*
+ * Tip Widget
+ */
+
+#include <X11/Xaw/Simple.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ background Background Pixel XtDefaultBackground
+ backgroundPixmap BackgroundPixmap Pixmap XtUnspecifiedPixmap
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ bottomMargin VerticalMargins Dimension 2
+ destroyCallback Callback XtCallbackList NULL
+ displayList DisplayList XawDisplayList* NULL
+ font Font XFontStruct* XtDefaultFont
+ foreground Foreground Pixel XtDefaultForeground
+ height Height Dimension text height
+ leftMargin HorizontalMargins Dimension 6
+ rightMargin HorizontalMargins Dimension 6
+ timeout Timeout Int 500
+ topMargin VerticalMargins Dimension 2
+ width Width Dimension text width
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+typedef struct _TipClassRec *TipWidgetClass;
+typedef struct _TipRec *TipWidget;
+
+extern WidgetClass tipWidgetClass;
+
+#define XtNbottomMargin "bottomMargin"
+#define XawNdisplayList "displayList"
+#define XtNencoding "encoding"
+#define XtNleftMargin "leftMargin"
+#define XtNrightMargin "rightMargin"
+#define XtNtimeout "timeout"
+#define XtNtopMargin "topMargin"
+#define XtNtip "tip"
+
+#define XawCDisplayList "DisplayList"
+#define XtCHorizontalMargins "HorizontalMargins"
+#define XtCTimeout "Timeout"
+#define XtCVerticalMargins "VerticalMargins"
+#define XtCTip "Tip"
+
+#define XawRDisplayList "XawDisplayList"
+
+/*
+ * Public Functions
+ */
+/*
+ * Function:
+ * XawTipEnable
+ *
+ * Parameters:
+ * w - widget
+ *
+ * Description:
+ * Enables the tip event handler for this widget.
+ */
+void XawTipEnable
+(
+ Widget w
+ );
+
+/*
+ * Function:
+ * XawTipEnable
+ *
+ * Parameters:
+ * w - widget
+ *
+ * Description:
+ * Disables the tip event handler for this widget.
+ */
+void XawTipDisable
+(
+ Widget w
+ );
+
+#endif /* _XawTip_h */
diff --git a/X11/Xaw/TipP.h b/X11/Xaw/TipP.h
new file mode 100644
index 000000000..f72f20a97
--- /dev/null
+++ b/X11/Xaw/TipP.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 1999 by The XFree86 Project, Inc.
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE XFREE86 PROJECT 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.
+ *
+ * Except as contained in this notice, the name of the XFree86 Project shall
+ * not be used in advertising or otherwise to promote the sale, use or other
+ * dealings in this Software without prior written authorization from the
+ * XFree86 Project.
+ *
+ * Author: Paulo César Pereira de Andrade
+ */
+
+#ifndef _XawTipP_h
+#define _XawTipP_h
+
+#include <X11/Xaw/Tip.h>
+#include <X11/CoreP.h>
+#include <X11/Xaw/XawInit.h>
+
+typedef struct {
+ XtPointer extension;
+} TipClassPart;
+
+typedef struct _TipClassRec {
+ CoreClassPart core_class;
+ TipClassPart tip_class;
+} TipClassRec;
+
+extern TipClassRec tipClassRec;
+
+typedef struct _TipPart {
+ /* resources */
+ Pixel foreground;
+ XFontStruct *font;
+ XFontSet fontset;
+ Dimension top_margin;
+ Dimension bottom_margin;
+ Dimension left_margin;
+ Dimension right_margin;
+ int backing_store;
+ int timeout;
+ XawDisplayList *display_list;
+
+ /* private */
+ GC gc;
+ XtIntervalId timer;
+ String label;
+ Boolean international;
+ unsigned char encoding;
+ XtPointer pad[4];
+} TipPart;
+
+typedef struct _TipRec {
+ CorePart core;
+ TipPart tip;
+} TipRec;
+
+#endif /* _XawTipP_h */
diff --git a/X11/Xaw/Toggle.h b/X11/Xaw/Toggle.h
new file mode 100644
index 000000000..f6c6b970e
--- /dev/null
+++ b/X11/Xaw/Toggle.h
@@ -0,0 +1,179 @@
+/*
+ *
+Copyright 1989, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ */
+
+/*
+ * ToggleP.h - Private definitions for Toggle widget
+ *
+ * Author: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ *
+ * Date: January 12, 1989
+ */
+
+#ifndef _XawToggle_h
+#define _XawToggle_h
+
+#include <X11/Xaw/Command.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ radioGroup RadioGroup Widget NULL +
+ radioData RadioData Pointer (XPointer) Widget ++
+ state State Boolean Off
+
+ background Background Pixel XtDefaultBackground
+ bitmap Pixmap Pixmap None
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ callback Callback Pointer NULL
+ cursor Cursor Cursor None
+ destroyCallback Callback Pointer NULL
+ displayList DisplayList XawDisplayList* NULL
+ font Font XFontStructx* XtDefaultFont
+ foreground Foreground Pixel XtDefaultForeground
+ height Height Dimension text height
+ highlightThickness Thickness Dimension 2
+ insensitiveBorder Insensitive Pixmap Gray
+ internalHeight Height Dimension 2
+ internalWidth Width Dimension 4
+ justify Justify XtJustify XtJustifyCenter
+ label Label String NULL
+ mappedWhenManaged MappedWhenManaged Boolean True
+ resize Resize Boolean True
+ sensitive Sensitive Boolean True
+ width Width Dimension text width
+ x Position Position 0
+ y Position Position 0
+
++ To use the toggle as a radio toggle button, set this resource to point to
+ any other widget in the radio group.
+
+++ This is the data returned from a call to XtToggleGetCurrent, by default
+ this is set to the name of toggle widget.
+
+*/
+
+/*
+ * These should be in StringDefs.h but aren't so we will define
+ * them here if they are needed
+ */
+#define XtCWidget "Widget"
+#define XtCState "State"
+#define XtCRadioGroup "RadioGroup"
+#define XtCRadioData "RadioData"
+
+#ifndef _XtStringDefs_h_
+#define XtRWidget "Widget"
+#endif
+
+#define XtNstate "state"
+#define XtNradioGroup "radioGroup"
+#define XtNradioData "radioData"
+
+extern WidgetClass toggleWidgetClass;
+
+typedef struct _ToggleClassRec *ToggleWidgetClass;
+typedef struct _ToggleRec *ToggleWidget;
+
+/*
+ * Public Functions
+ */
+
+_XFUNCPROTOBEGIN
+
+/*
+ * Function:
+ * XawToggleChangeRadioGroup
+ *
+ * Parameters:
+ * w - toggle widget to change lists
+ * radio_group - any widget in the new list
+ *
+ * Description:
+ * Allows a toggle widget to change radio lists.
+ */
+void XawToggleChangeRadioGroup
+(
+ Widget w,
+ Widget radio_group
+ );
+
+/*
+ * Function:
+ * XawToggleGetCurrent
+ *
+ * Parameters:
+ * radio_group - any toggle widget in the toggle list
+ *
+ * Description:
+ * Returns the RadioData associated with the toggle
+ * widget that is currently active in a toggle list.
+ * Returns:
+ * The XtNradioData associated with the toggle widget
+ */
+
+XtPointer XawToggleGetCurrent
+(
+ Widget radio_group
+ );
+
+/*
+ * Function:
+ * XawToggleSetCurrent
+ *
+ * Parameters:
+ * radio_group - any toggle widget in the toggle list
+ * radio_data - radio data of the toggle widget to set
+ *
+ * Description:
+ * Sets the Toggle widget associated with the radio_data specified.
+ */
+void XawToggleSetCurrent
+(
+ Widget radio_group,
+ XtPointer radio_data
+ );
+
+/*
+ * Function:
+ * XawToggleUnsetCurrent
+ *
+ * Parameters:
+ * radio_group - any toggle widget in the toggle list
+ *
+ * Description:
+ * Unsets all Toggles in the radio_group specified.
+ */
+void XawToggleUnsetCurrent
+(
+ Widget radio_group
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawToggle_h */
diff --git a/X11/Xaw/ToggleP.h b/X11/Xaw/ToggleP.h
new file mode 100644
index 000000000..a81659801
--- /dev/null
+++ b/X11/Xaw/ToggleP.h
@@ -0,0 +1,92 @@
+/*
+
+Copyright 1989, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+/*
+ * Author: Chris D. Peterson
+ * MIT X Consortium
+ * kit@expo.lcs.mit.edu
+ *
+ * Date: January 12, 1989
+ *
+ */
+
+#ifndef _XawToggleP_h
+#define _XawToggleP_h
+
+#include <X11/Xaw/Toggle.h>
+#include <X11/Xaw/CommandP.h>
+
+/*
+ * Toggle Widget Private Data
+ */
+#define streq(a, b) (strcmp((a), (b)) == 0)
+
+typedef struct _RadioGroup {
+ struct _RadioGroup *prev, *next; /* Pointers to other elements in group */
+ Widget widget; /* Widget corrosponding to this element */
+} RadioGroup;
+
+/* New fields for the Toggle widget class */
+typedef struct _ToggleClass {
+ XtActionProc Set;
+ XtActionProc Unset;
+ XtPointer extension;
+} ToggleClassPart;
+
+/* class record declaration */
+typedef struct _ToggleClassRec {
+ CoreClassPart core_class;
+ SimpleClassPart simple_class;
+ LabelClassPart label_class;
+ CommandClassPart command_class;
+ ToggleClassPart toggle_class;
+} ToggleClassRec;
+
+extern ToggleClassRec toggleClassRec;
+
+/* New fields for the Toggle widget */
+typedef struct {
+ /* resources */
+ Widget widget;
+ XtPointer radio_data;
+
+ /* private */
+ RadioGroup *radio_group;
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} TogglePart;
+
+/* Full widget declaration */
+typedef struct _ToggleRec {
+ CorePart core;
+ SimplePart simple;
+ LabelPart label;
+ CommandPart command;
+ TogglePart toggle;
+} ToggleRec;
+
+#endif /* _XawToggleP_h */
diff --git a/X11/Xaw/Tree.h b/X11/Xaw/Tree.h
new file mode 100644
index 000000000..1747a7844
--- /dev/null
+++ b/X11/Xaw/Tree.h
@@ -0,0 +1,135 @@
+/*
+ *
+
+Copyright 1990, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+ * Copyright 1989 Prentice Hall
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose and without fee is hereby granted, provided that the above
+ * copyright notice appear in all copies and that both the copyright notice
+ * and this permission notice appear in supporting documentation.
+ *
+ * Prentice Hall and the authors disclaim all warranties with regard
+ * to this software, including all implied warranties of merchantability and
+ * fitness. In no event shall Prentice Hall or the authors be liable
+ * for any special, indirect or cosequential 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.
+ *
+ * Authors: Jim Fulton, MIT X Consortium,
+ * based on a version by Douglas Young, Prentice Hall
+ *
+ * This widget is based on the Tree widget described on pages 397-419 of
+ * Douglas Young's book "The X Window System, Programming and Applications
+ * with Xt OSF/Motif Edition." The layout code has been rewritten to use
+ * additional blank space to make the structure of the graph easier to see
+ * as well as to support vertical trees.
+ */
+
+#ifndef _XawTree_h
+#define _XawTree_h
+
+#include <X11/Xmu/Converters.h>
+
+/******************************************************************************
+ *
+ * Tree Widget (subclass of ConstraintClass)
+ *
+ ******************************************************************************
+ *
+ * Parameters:
+ *
+ * Name Class Type Default
+ * ---- ----- ---- -------
+ *
+ * autoReconfigure AutoReconfigure Boolean FALSE
+ * background Background Pixel XtDefaultBackground
+ * foreground Foreground Pixel XtDefaultForeground
+ * gravity Gravity XtGravity West
+ * hSpace HSpace Dimension 20
+ * lineWidth LineWidth Dimension 0
+ * vSpace VSpace Dimension 6
+ *
+ *
+ * Constraint Resources attached to children:
+ *
+ * treeGC TreeGC GC NULL
+ * treeParent TreeParent Widget NULL
+ *
+ *
+ *****************************************************************************/
+
+ /* new instance field names */
+#ifndef _XtStringDefs_h_
+#define XtNhSpace "hSpace"
+#define XtNvSpace "vSpace"
+#define XtCHSpace "HSpace"
+#define XtCVSpace "VSpace"
+#endif
+
+#define XtNautoReconfigure "autoReconfigure"
+#define XtNlineWidth "lineWidth"
+#define XtNtreeGC "treeGC"
+#define XtNtreeParent "treeParent"
+#define XtNgravity "gravity"
+
+ /* new class field names */
+#define XtCAutoReconfigure "AutoReconfigure"
+#define XtCLineWidth "LineWidth"
+#define XtCTreeGC "TreeGC"
+#define XtCTreeParent "TreeParent"
+#define XtCGravity "Gravity"
+
+#define XtRGC "GC"
+
+#ifndef OLDXAW
+#ifndef XawNdisplayList
+#define XawNdisplayList "displayList"
+#endif
+
+#ifndef XawCDisplayList
+#define XawCDisplayList "DisplayList"
+#endif
+
+#ifndef XawRDisplayList
+#define XawRDisplayList "XawDisplayList"
+#endif
+#endif
+ /* external declarations */
+extern WidgetClass treeWidgetClass;
+
+typedef struct _TreeClassRec *TreeWidgetClass;
+typedef struct _TreeRec *TreeWidget;
+
+_XFUNCPROTOBEGIN
+
+void XawTreeForceLayout
+(
+ Widget tree
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawTree_h */
diff --git a/X11/Xaw/TreeP.h b/X11/Xaw/TreeP.h
new file mode 100644
index 000000000..01d2bdc88
--- /dev/null
+++ b/X11/Xaw/TreeP.h
@@ -0,0 +1,137 @@
+/*
+
+Copyright 1990, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+ * Copyright 1989 Prentice Hall
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose and without fee is hereby granted, provided that the above
+ * copyright notice appear in all copies and that both the copyright notice
+ * and this permission notice appear in supporting documentation.
+ *
+ * Prentice Hall and the authors disclaim all warranties with regard
+ * to this software, including all implied warranties of merchantability and
+ * fitness. In no event shall Prentice Hall or the authors be liable
+ * for any special, indirect or cosequential 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.
+ *
+ * Authors: Jim Fulton, MIT X Consortium,
+ * based on a version by Douglas Young, Prentice Hall
+ *
+ * This widget is based on the Tree widget described on pages 397-419 of
+ * Douglas Young's book "The X Window System, Programming and Applications
+ * with Xt OSF/Motif Edition." The layout code has been rewritten to use
+ * additional blank space to make the structure of the graph easier to see
+ * as well as to support vertical trees.
+ */
+
+#ifndef _XawTreeP_h
+#define _XawTreeP_h
+
+#include <X11/Xaw/Tree.h>
+
+typedef struct _TreeClassPart {
+ XtPointer extension;
+} TreeClassPart;
+
+typedef struct _TreeClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ConstraintClassPart constraint_class;
+ TreeClassPart tree_class;
+} TreeClassRec;
+
+extern TreeClassRec treeClassRec;
+
+typedef struct {
+ /* fields available through resources */
+ Dimension hpad; /* hSpace/HSpace */
+ Dimension vpad; /* vSpace/VSpace */
+ Dimension line_width; /* lineWidth/LineWidth */
+ Pixel foreground; /* foreground/Foreground */
+ XtGravity gravity; /* gravity/Gravity */
+ Boolean auto_reconfigure; /* autoReconfigure/AutoReconfigure */
+ /* private fields */
+ GC gc; /* used to draw lines */
+ Widget tree_root; /* hidden root off all children */
+ Dimension *largest; /* list of largest per depth */
+ int n_largest; /* number of elements in largest */
+ Dimension maxwidth, maxheight; /* for shrink wrapping */
+#ifndef OLDXAW
+ XawDisplayList *display_list;
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} TreePart;
+
+
+typedef struct _TreeRec {
+ CorePart core;
+ CompositePart composite;
+ ConstraintPart constraint;
+ TreePart tree;
+} TreeRec;
+
+
+/*
+ * structure attached to all children
+ */
+typedef struct _TreeConstraintsPart {
+ /* resources */
+ Widget parent; /* treeParent/TreeParent */
+ GC gc; /* treeGC/TreeGC */
+ /* private data */
+ Widget *children;
+ int n_children;
+ int max_children;
+ Dimension bbsubwidth, bbsubheight; /* bounding box of sub tree */
+ Dimension bbwidth, bbheight; /* bounding box including node */
+ Position x, y;
+#ifndef OLDXAW
+ XtPointer pad[2]; /* leave some space for future optimizations, and
+ * keep binary compatability
+ */
+#endif
+} TreeConstraintsPart;
+
+typedef struct _TreeConstraintsRec {
+ TreeConstraintsPart tree;
+} TreeConstraintsRec, *TreeConstraints;
+
+
+/*
+ * useful macros
+ */
+
+#define TREE_CONSTRAINT(w) \
+ ((TreeConstraints)((w)->core.constraints))
+
+#define TREE_INITIAL_DEPTH 10 /* for allocating largest array */
+#define TREE_HORIZONTAL_DEFAULT_SPACING 20
+#define TREE_VERTICAL_DEFAULT_SPACING 6
+
+#endif /* _XawTreeP_h */
+
+
+
diff --git a/X11/Xaw/VendorEP.h b/X11/Xaw/VendorEP.h
new file mode 100644
index 000000000..b91f10a81
--- /dev/null
+++ b/X11/Xaw/VendorEP.h
@@ -0,0 +1,81 @@
+/*
+ * Copyright 1991 by OMRON Corporation
+ *
+ * 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 OMRON not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. OMRON makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ *
+ * OMRON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+ * OMRON 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 TORTUOUS ACTION,
+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ *
+ * Author: Seiji Kuwari OMRON Corporation
+ * kuwa@omron.co.jp
+ * kuwa%omron.co.jp@uunet.uu.net
+ */
+
+/*
+
+Copyright 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+#ifndef _VendorEP_h
+#define _VendorEP_h
+
+#include <X11/Xaw/XawImP.h>
+
+typedef struct {
+ XtPointer extension;
+} XawVendorShellExtClassPart;
+
+typedef struct _VendorShellExtClassRec {
+ ObjectClassPart object_class;
+ XawVendorShellExtClassPart vendor_shell_ext_class;
+} XawVendorShellExtClassRec;
+
+typedef struct {
+ Widget parent;
+ XawImPart im;
+ XawIcPart ic;
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} XawVendorShellExtPart;
+
+typedef struct XawVendorShellExtRec {
+ ObjectPart object;
+ XawVendorShellExtPart vendor_ext;
+} XawVendorShellExtRec, *XawVendorShellExtWidget;
+
+#endif /* _VendorEP_h */
diff --git a/X11/Xaw/Viewport.h b/X11/Xaw/Viewport.h
new file mode 100644
index 000000000..36fab4496
--- /dev/null
+++ b/X11/Xaw/Viewport.h
@@ -0,0 +1,118 @@
+/************************************************************
+
+Copyright 1987, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+********************************************************/
+
+#ifndef _XawViewport_h
+#define _XawViewport_h
+
+#include <X11/Xaw/Form.h>
+#include <X11/Xaw/Reports.h>
+
+/* Resources:
+
+ Name Class RepType Default Value
+ ---- ----- ------- -------------
+ allowHoriz Boolean Boolean False
+ allowVert Boolean Boolean False
+ background Background Pixel XtDefaultBackground
+ border BorderColor Pixel XtDefaultForeground
+ borderWidth BorderWidth Dimension 1
+ destroyCallback Callback Pointer NULL
+ forceBars Boolean Boolean False
+ height Height Dimension 0
+ mappedWhenManaged MappedWhenManaged Boolean True
+ reportCallback ReportCallback Pointer NULL
+ sensitive Sensitive Boolean True
+ useBottom Boolean Boolean False
+ useRight Boolean Boolean False
+ width Width Dimension 0
+ x Position Position 0
+ y Position Position 0
+
+*/
+
+#ifndef _XtStringDefs_h_
+#define XtNforceBars "forceBars"
+#define XtNallowHoriz "allowHoriz"
+#define XtNallowVert "allowVert"
+#define XtNuseBottom "useBottom"
+#define XtNuseRight "useRight"
+#endif
+
+extern WidgetClass viewportWidgetClass;
+
+typedef struct _ViewportClassRec *ViewportWidgetClass;
+typedef struct _ViewportRec *ViewportWidget;
+
+_XFUNCPROTOBEGIN
+
+void XawViewportSetLocation
+(
+ Widget gw,
+#if NeedWidePrototypes
+ double xoff,
+ double yoff
+#else
+ float xoff,
+ float yoff
+#endif
+ );
+
+void XawViewportSetCoordinates
+(
+ Widget gw,
+#if NeedWidePrototypes
+ int x,
+ int y
+#else
+ Position x,
+ Position y
+#endif
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XawViewport_h */
diff --git a/X11/Xaw/ViewportP.h b/X11/Xaw/ViewportP.h
new file mode 100644
index 000000000..2aeb8a5df
--- /dev/null
+++ b/X11/Xaw/ViewportP.h
@@ -0,0 +1,107 @@
+/*
+ * Private declarations for ViewportWidgetClass
+ */
+
+/************************************************************
+
+Copyright 1987, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+********************************************************/
+
+#ifndef _ViewportP_h
+#define _ViewportP_h
+
+#include <X11/Xaw/Viewport.h>
+#include <X11/Xaw/FormP.h>
+
+typedef struct {
+ XtPointer extension;
+} ViewportClassPart;
+
+typedef struct _ViewportClassRec {
+ CoreClassPart core_class;
+ CompositeClassPart composite_class;
+ ConstraintClassPart constraint_class;
+ FormClassPart form_class;
+ ViewportClassPart viewport_class;
+} ViewportClassRec;
+
+extern ViewportClassRec viewportClassRec;
+
+typedef struct _ViewportPart {
+ /* resources */
+ Boolean forcebars; /* Whether we should always display
+ the selected scrollbars */
+ Boolean allowhoriz; /* Whether we allow horizontal scrollbars */
+ Boolean allowvert; /* Whether we allow vertical scrollbars */
+ Boolean usebottom; /* True if horiz bars appear at bottom */
+ Boolean useright; /* True if vert bars appear at right */
+ XtCallbackList report_callbacks;/* when size/position changes */
+
+ /* private */
+ Widget clip, child; /* The clipping and (scrolled) child widgets */
+ Widget horiz_bar, vert_bar; /* What scrollbars we currently have */
+#ifndef OLDXAW
+ XtPointer pad[4]; /* for future use and keep binary compatability */
+#endif
+} ViewportPart;
+
+typedef struct _ViewportRec {
+ CorePart core;
+ CompositePart composite;
+ ConstraintPart constraint;
+ FormPart form;
+ ViewportPart viewport;
+} ViewportRec;
+
+typedef struct {
+ Bool reparented; /* True if child has been re-parented */
+} ViewportConstraintsPart;
+
+typedef struct _ViewportConstraintsRec {
+ FormConstraintsPart form;
+ ViewportConstraintsPart viewport;
+} ViewportConstraintsRec, *ViewportConstraints;
+
+#endif /* _ViewportP_h */
diff --git a/X11/Xaw/XawImP.h b/X11/Xaw/XawImP.h
new file mode 100644
index 000000000..a03eef60e
--- /dev/null
+++ b/X11/Xaw/XawImP.h
@@ -0,0 +1,210 @@
+/*
+ * Copyright 1991 by OMRON Corporation
+ *
+ * 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 OMRON not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. OMRON makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ *
+ * OMRON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+ * OMRON 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 TORTUOUS ACTION,
+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ *
+ * Author: Seiji Kuwari OMRON Corporation
+ * kuwa@omron.co.jp
+ * kuwa%omron.co.jp@uunet.uu.net
+ */
+
+/*
+
+Copyright 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+#ifndef _XawImP_h
+#define _XawImP_h
+
+#define XtNinputMethod "inputMethod"
+#define XtCInputMethod "InputMethod"
+#define XtNpreeditType "preeditType"
+#define XtCPreeditType "PreeditType"
+#define XtNopenIm "openIm"
+#define XtCOpenIm "OpenIm"
+#define XtNsharedIc "sharedIc"
+#define XtCSharedIc "SharedIc"
+
+#include <X11/Xaw/Text.h>
+
+#define CIICFocus (1 << 0)
+#define CIFontSet (1 << 1)
+#define CIFg (1 << 2)
+#define CIBg (1 << 3)
+#define CIBgPixmap (1 << 4)
+#define CICursorP (1 << 5)
+#define CILineS (1 << 6)
+
+typedef struct _XawImPart {
+ XIM xim;
+ XrmResourceList resources;
+ Cardinal num_resources;
+ Boolean open_im;
+ Boolean initialized;
+ Dimension area_height;
+ String input_method;
+ String preedit_type;
+} XawImPart;
+
+typedef struct _XawIcTablePart {
+ Widget widget;
+ XIC xic;
+ XIMStyle input_style;
+ unsigned long flg;
+ unsigned long prev_flg;
+ Boolean ic_focused;
+ XFontSet font_set;
+ Pixel foreground;
+ Pixel background;
+ Pixmap bg_pixmap;
+ XawTextPosition cursor_position;
+ unsigned long line_spacing;
+ Boolean openic_error;
+ struct _XawIcTablePart *next;
+} XawIcTablePart, *XawIcTableList;
+
+typedef struct _XawIcPart {
+ XIMStyle input_style;
+ Boolean shared_ic;
+ XawIcTableList shared_ic_table;
+ XawIcTableList current_ic_table;
+ XawIcTableList ic_table;
+} XawIcPart;
+
+typedef struct _contextDataRec {
+ Widget parent;
+ Widget ve;
+} contextDataRec;
+
+typedef struct _contextErrDataRec {
+ Widget widget;
+ XIM xim;
+} contextErrDataRec;
+
+void _XawImResizeVendorShell
+(
+ Widget w
+ );
+
+Dimension _XawImGetShellHeight
+(
+ Widget w
+);
+
+void _XawImRealize
+(
+ Widget w
+ );
+
+void _XawImInitialize
+(
+ Widget w,
+ Widget ext
+ );
+
+void _XawImReconnect
+(
+ Widget w
+ );
+
+void _XawImRegister
+(
+ Widget w
+ );
+
+void _XawImUnregister
+(
+ Widget w
+ );
+
+void _XawImSetValues
+(
+ Widget w,
+ ArgList args,
+ Cardinal num_args
+ );
+
+void _XawImSetFocusValues
+(
+ Widget w,
+ ArgList args,
+ Cardinal num_args
+);
+
+void _XawImUnsetFocus
+(
+ Widget w
+ );
+
+int _XawImWcLookupString
+(
+ Widget w,
+ XKeyPressedEvent *event,
+ wchar_t *buffer_return,
+ int bytes_buffer,
+ KeySym *keysym_return
+ );
+
+int _XawLookupString
+(
+ Widget w,
+ XKeyEvent *event,
+ char *buffer_return,
+ int buffer_size,
+ KeySym *keysym_return
+ );
+
+int _XawImGetImAreaHeight
+(
+ Widget w
+ );
+
+void _XawImCallVendorShellExtResize
+(
+ Widget w
+ );
+
+void _XawImDestroy
+(
+ Widget w,
+ Widget ext
+ );
+
+#endif /* _XawImP_h */
diff --git a/X11/Xaw/XawInit.h b/X11/Xaw/XawInit.h
new file mode 100644
index 000000000..7d2cee138
--- /dev/null
+++ b/X11/Xaw/XawInit.h
@@ -0,0 +1,62 @@
+/*
+ *
+Copyright 1989, 1994, 1998 The Open Group
+Copyright 2003-2004 Roland Mainz <roland.mainz@nrubsig.org>
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ */
+#ifndef _XawInit_h
+#define _XawInit_h
+
+#define XawVendor XVENDORNAMESHORT
+
+#ifdef OLDXAW
+#define XawVersion 6700002L
+#else
+#define XawVersion 7000002L
+
+typedef struct _XawDL XawDisplayList;
+#endif /* OLDXAW */
+
+#include <X11/Intrinsic.h>
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+void XawInitializeWidgetSet(void);
+#ifndef OLDXAW
+void XawInitializeDefaultConverters(void);
+#endif
+
+extern Widget XawOpenApplication(
+ XtAppContext *app_context_return,
+ Display *dpy,
+ Screen *screen,
+ String application_name,
+ String application_class,
+ WidgetClass widget_class,
+ int *argc,
+ String *argv
+);
+
+_XFUNCPROTOEND
+
+#endif /* _XawInit_h */
diff --git a/X11/Xcms.h b/X11/Xcms.h
new file mode 100644
index 000000000..663185410
--- /dev/null
+++ b/X11/Xcms.h
@@ -0,0 +1,815 @@
+
+/*
+ * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
+ * All Rights Reserved
+ *
+ * This file is a component of an X Window System-specific implementation
+ * of Xcms based on the TekColor Color Management System. Permission is
+ * hereby granted to use, copy, modify, sell, and otherwise distribute this
+ * software and its documentation for any purpose and without fee, provided
+ * that this copyright, permission, and disclaimer notice is reproduced in
+ * all copies of this software and in supporting documentation. TekColor
+ * is a trademark of Tektronix, Inc.
+ *
+ * Tektronix makes no representation about the suitability of this software
+ * for any purpose. It is provided "as is" and with all faults.
+ *
+ * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
+ * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX 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 THE PERFORMANCE OF THIS SOFTWARE.
+ *
+ *
+ * DESCRIPTION
+ * Public include file for X Color Management System
+ */
+#ifndef _X11_XCMS_H_
+#define _X11_XCMS_H_
+
+#include <X11/Xlib.h>
+
+/* The Xcms structs are full of implicit padding to properly align members.
+ We can't clean that up without breaking ABI, so tell clang not to bother
+ complaining about it. */
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+ /*
+ * XCMS Status Values
+ */
+#define XcmsFailure 0
+#define XcmsSuccess 1
+#define XcmsSuccessWithCompression 2
+
+ /*
+ * Color Space Format ID's
+ * Color Space ID's are of XcmsColorFormat type.
+ *
+ * bit 31
+ * 0 == Device-Independent
+ * 1 == Device-Dependent
+ *
+ * bit 30:
+ * 0 == Registered with X Consortium
+ * 1 == Unregistered
+ */
+#define XcmsUndefinedFormat (XcmsColorFormat)0x00000000
+#define XcmsCIEXYZFormat (XcmsColorFormat)0x00000001
+#define XcmsCIEuvYFormat (XcmsColorFormat)0x00000002
+#define XcmsCIExyYFormat (XcmsColorFormat)0x00000003
+#define XcmsCIELabFormat (XcmsColorFormat)0x00000004
+#define XcmsCIELuvFormat (XcmsColorFormat)0x00000005
+#define XcmsTekHVCFormat (XcmsColorFormat)0x00000006
+#define XcmsRGBFormat (XcmsColorFormat)0x80000000
+#define XcmsRGBiFormat (XcmsColorFormat)0x80000001
+
+ /*
+ * State of XcmsPerScrnInfo
+ */
+#define XcmsInitNone 0x00 /* no initialization attempted */
+#define XcmsInitSuccess 0x01 /* initialization successful */
+#define XcmsInitFailure 0xff /* failure, use defaults */
+
+#define DisplayOfCCC(ccc) ((ccc)->dpy)
+#define ScreenNumberOfCCC(ccc) ((ccc)->screenNumber)
+#define VisualOfCCC(ccc) ((ccc)->visual)
+#define ClientWhitePointOfCCC(ccc) (&(ccc)->clientWhitePt)
+#define ScreenWhitePointOfCCC(ccc) (&(ccc)->pPerScrnInfo->screenWhitePt)
+#define FunctionSetOfCCC(ccc) ((ccc)->pPerScrnInfo->functionSet)
+
+typedef unsigned long XcmsColorFormat; /* Color Space Format ID */
+
+typedef double XcmsFloat;
+
+ /*
+ * Device RGB
+ */
+typedef struct {
+ unsigned short red; /* scaled from 0x0000 to 0xffff */
+ unsigned short green; /* scaled from 0x0000 to 0xffff */
+ unsigned short blue; /* scaled from 0x0000 to 0xffff */
+} XcmsRGB;
+
+ /*
+ * RGB Intensity
+ */
+typedef struct {
+ XcmsFloat red; /* 0.0 - 1.0 */
+ XcmsFloat green; /* 0.0 - 1.0 */
+ XcmsFloat blue; /* 0.0 - 1.0 */
+} XcmsRGBi;
+
+ /*
+ * CIE XYZ
+ */
+typedef struct {
+ XcmsFloat X;
+ XcmsFloat Y;
+ XcmsFloat Z;
+} XcmsCIEXYZ;
+
+ /*
+ * CIE u'v'Y
+ */
+typedef struct {
+ XcmsFloat u_prime; /* 0.0 - 1.0 */
+ XcmsFloat v_prime; /* 0.0 - 1.0 */
+ XcmsFloat Y; /* 0.0 - 1.0 */
+} XcmsCIEuvY;
+
+ /*
+ * CIE xyY
+ */
+typedef struct {
+ XcmsFloat x; /* 0.0 - 1.0 */
+ XcmsFloat y; /* 0.0 - 1.0 */
+ XcmsFloat Y; /* 0.0 - 1.0 */
+} XcmsCIExyY;
+
+ /*
+ * CIE L*a*b*
+ */
+typedef struct {
+ XcmsFloat L_star; /* 0.0 - 100.0 */
+ XcmsFloat a_star;
+ XcmsFloat b_star;
+} XcmsCIELab;
+
+ /*
+ * CIE L*u*v*
+ */
+typedef struct {
+ XcmsFloat L_star; /* 0.0 - 100.0 */
+ XcmsFloat u_star;
+ XcmsFloat v_star;
+} XcmsCIELuv;
+
+ /*
+ * TekHVC
+ */
+typedef struct {
+ XcmsFloat H; /* 0.0 - 360.0 */
+ XcmsFloat V; /* 0.0 - 100.0 */
+ XcmsFloat C; /* 0.0 - 100.0 */
+} XcmsTekHVC;
+
+ /*
+ * PAD
+ */
+typedef struct {
+ XcmsFloat pad0;
+ XcmsFloat pad1;
+ XcmsFloat pad2;
+ XcmsFloat pad3;
+} XcmsPad;
+
+
+ /*
+ * XCMS Color Structure
+ */
+typedef struct {
+ union {
+ XcmsRGB RGB;
+ XcmsRGBi RGBi;
+ XcmsCIEXYZ CIEXYZ;
+ XcmsCIEuvY CIEuvY;
+ XcmsCIExyY CIExyY;
+ XcmsCIELab CIELab;
+ XcmsCIELuv CIELuv;
+ XcmsTekHVC TekHVC;
+ XcmsPad Pad;
+ } spec; /* the color specification */
+ unsigned long pixel; /* pixel value (as needed) */
+ XcmsColorFormat format; /* the specification format */
+} XcmsColor;
+
+
+ /*
+ * XCMS Per Screen related data
+ */
+
+typedef struct _XcmsPerScrnInfo {
+ XcmsColor screenWhitePt; /* Screen White point */
+ XPointer functionSet; /* pointer to Screen Color Characterization */
+ /* Function Set structure */
+ XPointer screenData; /* pointer to corresponding Screen Color*/
+ /* Characterization Data */
+ unsigned char state; /* XcmsInitNone, XcmsInitSuccess, XcmsInitFailure */
+ char pad[3];
+} XcmsPerScrnInfo;
+
+typedef struct _XcmsCCC *XcmsCCC;
+
+typedef Status (*XcmsCompressionProc)( /* Gamut Compression Proc */
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+typedef Status (*XcmsWhiteAdjustProc)( /* White Point Adjust Proc */
+ XcmsCCC /* ccc */,
+ XcmsColor* /* initial_white_point*/,
+ XcmsColor* /* target_white_point*/,
+ XcmsColorFormat /* target_format */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ Bool* /* compression_flags_return */
+);
+
+ /*
+ * XCMS Color Conversion Context
+ */
+typedef struct _XcmsCCC {
+ Display *dpy; /* X Display */
+ int screenNumber; /* X screen number */
+ Visual *visual; /* X Visual */
+ XcmsColor clientWhitePt; /* Client White Point */
+ XcmsCompressionProc gamutCompProc; /* Gamut Compression Function */
+ XPointer gamutCompClientData; /* Gamut Comp Func Client Data */
+ XcmsWhiteAdjustProc whitePtAdjProc; /* White Point Adjustment Function */
+ XPointer whitePtAdjClientData; /* White Pt Adj Func Client Data */
+ XcmsPerScrnInfo *pPerScrnInfo; /* pointer to per screen information */
+ /* associated with the above display */
+ /* screenNumber */
+} XcmsCCCRec;
+
+typedef Status (*XcmsScreenInitProc)( /* Screen Initialization Proc */
+ Display* /* dpy */,
+ int /* screen_number */,
+ XcmsPerScrnInfo* /* screen_info */
+);
+
+typedef void (*XcmsScreenFreeProc)(
+ XPointer /* screenData */
+);
+
+ /*
+ * Function List Pointer -- pointer to an array of function pointers.
+ * The end of list is indicated by a NULL pointer.
+ */
+/*
+ * XXX: The use of the XcmsConversionProc type is broken. The
+ * device-independent colour conversion code uses it as:
+
+typedef Status (*XcmsConversionProc)(XcmsCCC, XcmsColor *, XcmsColor *,
+ unsigned int);
+
+ * while the device-dependent code uses it as:
+
+typedef Status (*XcmsConversionProc)(XcmsCCC, XcmsColor *, unsigned int,
+ Bool *);
+
+ * Until this is reworked, it's probably best to leave it unprotoized.
+ * The code works regardless.
+ */
+typedef Status (*XcmsDDConversionProc)( /* using device-dependent version */
+ XcmsCCC /* ccc */,
+ XcmsColor* /* pcolors_in_out */,
+ unsigned int /* ncolors */,
+ Bool* /* pCompressed */
+ );
+
+typedef Status (*XcmsDIConversionProc)( /* using device-independent version */
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* pcolors_in_out */,
+ unsigned int /* ncolors */
+ );
+
+typedef XcmsDIConversionProc XcmsConversionProc;
+typedef XcmsConversionProc *XcmsFuncListPtr;
+
+typedef int (*XcmsParseStringProc)( /* Color String Parsing Proc */
+ char* /* color_string */,
+ XcmsColor* /* color_return */
+);
+
+ /*
+ * Color Space -- per Color Space related data (Device-Independent
+ * or Device-Dependent)
+ */
+typedef struct _XcmsColorSpace {
+ const char *prefix; /* Prefix of string format. */
+ XcmsColorFormat id; /* Format ID number. */
+ XcmsParseStringProc parseString;
+ /* String format parsing function */
+ XcmsFuncListPtr to_CIEXYZ; /* Pointer to an array of function */
+ /* pointers such that when the */
+ /* functions are executed in sequence */
+ /* will convert a XcmsColor structure */
+ /* from this color space to CIEXYZ */
+ /* space. */
+ XcmsFuncListPtr from_CIEXYZ;/* Pointer to an array of function */
+ /* pointers such that when the */
+ /* functions are executed in sequence */
+ /* will convert a XcmsColor structure */
+ /* from CIEXYZ space to this color */
+ /* space. */
+ int inverse_flag; /* If 1, indicates that for 0 <= i < n */
+ /* where n is the number of function */
+ /* pointers in the lists to_CIEXYZ */
+ /* and from_CIEXYZ; for each function */
+ /* to_CIEXYZ[i] its inverse function */
+ /* is from_CIEXYZ[n - i]. */
+
+} XcmsColorSpace;
+
+ /*
+ * Screen Color Characterization Function Set -- per device class
+ * color space conversion functions.
+ */
+typedef struct _XcmsFunctionSet {
+ XcmsColorSpace **DDColorSpaces;
+ /* Pointer to an array of pointers to */
+ /* Device-DEPENDENT color spaces */
+ /* understood by this SCCFuncSet. */
+ XcmsScreenInitProc screenInitProc;
+ /* Screen initialization function that */
+ /* reads Screen Color Characterization*/
+ /* Data off properties on the screen's*/
+ /* root window. */
+ XcmsScreenFreeProc screenFreeProc;
+ /* Function that frees the SCCData */
+ /* structures. */
+} XcmsFunctionSet;
+
+_XFUNCPROTOBEGIN
+
+extern Status XcmsAddColorSpace (
+ XcmsColorSpace* /* pColorSpace */
+);
+
+extern Status XcmsAddFunctionSet (
+ XcmsFunctionSet* /* functionSet */
+);
+
+extern Status XcmsAllocColor (
+ Display* /* dpy */,
+ Colormap /* colormap */,
+ XcmsColor* /* color_in_out */,
+ XcmsColorFormat /* result_format */
+);
+
+extern Status XcmsAllocNamedColor (
+ Display* /* dpy */,
+ Colormap /* colormap */,
+ _Xconst char* /* color_string */,
+ XcmsColor* /* color_scrn_return */,
+ XcmsColor* /* color_exact_return */,
+ XcmsColorFormat /* result_format */
+);
+
+extern XcmsCCC XcmsCCCOfColormap (
+ Display* /* dpy */,
+ Colormap /* colormap */
+);
+
+extern Status XcmsCIELabClipab(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsCIELabClipL(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsCIELabClipLab(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsCIELabQueryMaxC (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue_angle */,
+ XcmsFloat /* L_star */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsCIELabQueryMaxL (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue_angle */,
+ XcmsFloat /* chroma */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsCIELabQueryMaxLC (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue_angle */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsCIELabQueryMinL (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue_angle */,
+ XcmsFloat /* chroma */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsCIELabToCIEXYZ (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern Status XcmsCIELabWhiteShiftColors(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* initial_white_point*/,
+ XcmsColor* /* target_white_point*/,
+ XcmsColorFormat /* target_format */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsCIELuvClipL(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsCIELuvClipLuv(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsCIELuvClipuv(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsCIELuvQueryMaxC (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue_angle */,
+ XcmsFloat /* L_star */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsCIELuvQueryMaxL (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue_angle */,
+ XcmsFloat /* chroma */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsCIELuvQueryMaxLC (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue_angle */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsCIELuvQueryMinL (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue_angle */,
+ XcmsFloat /* chroma */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsCIELuvToCIEuvY (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern Status XcmsCIELuvWhiteShiftColors(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* initial_white_point*/,
+ XcmsColor* /* target_white_point*/,
+ XcmsColorFormat /* target_format */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsCIEXYZToCIELab (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern Status XcmsCIEXYZToCIEuvY (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern Status XcmsCIEXYZToCIExyY (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern Status XcmsCIEXYZToRGBi (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsCIEuvYToCIELuv (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern Status XcmsCIEuvYToCIEXYZ (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern Status XcmsCIEuvYToTekHVC (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern Status XcmsCIExyYToCIEXYZ (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern XcmsColor *XcmsClientWhitePointOfCCC (
+ XcmsCCC /* ccc */
+);
+
+extern Status XcmsConvertColors (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colorArry_in_out */,
+ unsigned int /* nColors */,
+ XcmsColorFormat /* targetFormat */,
+ Bool* /* compArry_return */
+);
+
+extern XcmsCCC XcmsCreateCCC (
+ Display* /* dpy */,
+ int /* screenNumber */,
+ Visual* /* visual */,
+ XcmsColor* /* clientWhitePt */,
+ XcmsCompressionProc /* gamutCompProc */,
+ XPointer /* gamutCompClientData */,
+ XcmsWhiteAdjustProc /* whitePtAdjProc */,
+ XPointer /* whitePtAdjClientData */
+);
+
+extern XcmsCCC XcmsDefaultCCC (
+ Display* /* dpy */,
+ int /* screenNumber */
+);
+
+extern Display *XcmsDisplayOfCCC (
+ XcmsCCC /* ccc */
+);
+
+extern XcmsColorFormat XcmsFormatOfPrefix (
+ char* /* prefix */
+);
+
+extern void XcmsFreeCCC (
+ XcmsCCC /* ccc */
+);
+
+extern Status XcmsLookupColor (
+ Display* /* dpy */,
+ Colormap /* colormap */,
+ _Xconst char* /* color_string */,
+ XcmsColor* /* pColor_exact_in_out */,
+ XcmsColor* /* pColor_scrn_in_out */,
+ XcmsColorFormat /* result_format */
+);
+
+extern char *XcmsPrefixOfFormat (
+ XcmsColorFormat /* id */
+);
+
+extern Status XcmsQueryBlack (
+ XcmsCCC /* ccc */,
+ XcmsColorFormat /* target_format */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsQueryBlue (
+ XcmsCCC /* ccc */,
+ XcmsColorFormat /* target_format */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsQueryColor (
+ Display* /* dpy */,
+ Colormap /* colormap */,
+ XcmsColor* /* pColor_in_out */,
+ XcmsColorFormat /* result_format */
+);
+
+extern Status XcmsQueryColors (
+ Display* /* dpy */,
+ Colormap /* colormap */,
+ XcmsColor* /* colorArry_in_out */,
+ unsigned int /* nColors */,
+ XcmsColorFormat /* result_format */
+);
+
+extern Status XcmsQueryGreen (
+ XcmsCCC /* ccc */,
+ XcmsColorFormat /* target_format */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsQueryRed (
+ XcmsCCC /* ccc */,
+ XcmsColorFormat /* target_format */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsQueryWhite (
+ XcmsCCC /* ccc */,
+ XcmsColorFormat /* target_format */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsRGBiToCIEXYZ (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsRGBiToRGB (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsRGBToRGBi (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */,
+ Bool* /* compression_flags_return */
+);
+
+extern int XcmsScreenNumberOfCCC (
+ XcmsCCC /* ccc */
+);
+
+extern XcmsColor *XcmsScreenWhitePointOfCCC (
+ XcmsCCC /* ccc */
+);
+
+extern XcmsCCC XcmsSetCCCOfColormap(
+ Display* /* dpy */,
+ Colormap /* colormap */,
+ XcmsCCC /* ccc */
+);
+
+extern XcmsCompressionProc XcmsSetCompressionProc (
+ XcmsCCC /* ccc */,
+ XcmsCompressionProc /* compression_proc */,
+ XPointer /* client_data */
+);
+
+extern XcmsWhiteAdjustProc XcmsSetWhiteAdjustProc (
+ XcmsCCC /* ccc */,
+ XcmsWhiteAdjustProc /* white_adjust_proc */,
+ XPointer /* client_data */
+);
+
+extern Status XcmsSetWhitePoint (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* color */
+);
+
+extern Status XcmsStoreColor (
+ Display* /* dpy */,
+ Colormap /* colormap */,
+ XcmsColor* /* pColor_in */
+);
+
+extern Status XcmsStoreColors (
+ Display* /* dpy */,
+ Colormap /* colormap */,
+ XcmsColor* /* colorArry_in */,
+ unsigned int /* nColors */,
+ Bool* /* compArry_return */
+);
+
+extern Status XcmsTekHVCClipC(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsTekHVCClipV(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsTekHVCClipVC(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ unsigned int /* index */,
+ Bool* /* compression_flags_return */
+);
+
+extern Status XcmsTekHVCQueryMaxC (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue */,
+ XcmsFloat /* value */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsTekHVCQueryMaxV (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue */,
+ XcmsFloat /* chroma */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsTekHVCQueryMaxVC (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsTekHVCQueryMaxVSamples (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue */,
+ XcmsColor* /* colors_return */,
+ unsigned int /* nsamples */
+);
+
+extern Status XcmsTekHVCQueryMinV (
+ XcmsCCC /* ccc */,
+ XcmsFloat /* hue */,
+ XcmsFloat /* chroma */,
+ XcmsColor* /* color_return */
+);
+
+extern Status XcmsTekHVCToCIEuvY (
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+);
+
+extern Status XcmsTekHVCWhiteShiftColors(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* initial_white_point*/,
+ XcmsColor* /* target_white_point*/,
+ XcmsColorFormat /* target_format */,
+ XcmsColor* /* colors_in_out */,
+ unsigned int /* ncolors */,
+ Bool* /* compression_flags_return */
+);
+
+extern Visual *XcmsVisualOfCCC (
+ XcmsCCC /* ccc */
+);
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _X11_XCMS_H_ */
diff --git a/X11/Xdmcp.h b/X11/Xdmcp.h
new file mode 100644
index 000000000..0b531de78
--- /dev/null
+++ b/X11/Xdmcp.h
@@ -0,0 +1,181 @@
+/*
+ * Copyright 1989 Network Computing Devices, Inc., Mountain View, California.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted, 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 N.C.D. not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. N.C.D. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ *
+ */
+
+#ifndef _XDMCP_H_
+#define _XDMCP_H_
+
+#include <X11/Xmd.h>
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+#define XDM_PROTOCOL_VERSION 1
+#define XDM_UDP_PORT 177
+
+/* IANA has assigned FF0X:0:0:0:0:0:0:12B as the permanently assigned
+ * multicast addresses for XDMCP, where X in the prefix may be replaced
+ * by any valid scope identifier, such as 1 for Node-Local, 2 for Link-Local,
+ * 5 for Site-Local, and so on. We set the default here to the Link-Local
+ * version to most closely match the old IPv4 subnet broadcast behavior.
+ * Both xdm and X -query allow specifying a different address if a different
+ * scope is defined.
+ */
+#define XDM_DEFAULT_MCAST_ADDR6 "ff02:0:0:0:0:0:0:12b"
+
+#define XDM_MAX_MSGLEN 8192
+#define XDM_MIN_RTX 2
+#define XDM_MAX_RTX 32
+#define XDM_RTX_LIMIT 7
+#define XDM_KA_RTX_LIMIT 4
+#define XDM_DEF_DORMANCY (3 * 60) /* 3 minutes */
+#define XDM_MAX_DORMANCY (24 * 60 * 60) /* 24 hours */
+
+typedef enum {
+ BROADCAST_QUERY = 1, QUERY, INDIRECT_QUERY, FORWARD_QUERY,
+ WILLING, UNWILLING, REQUEST, ACCEPT, DECLINE, MANAGE, REFUSE,
+ FAILED, KEEPALIVE, ALIVE
+} xdmOpCode;
+
+typedef enum {
+ XDM_QUERY, XDM_BROADCAST, XDM_INDIRECT, XDM_COLLECT_QUERY,
+ XDM_COLLECT_BROADCAST_QUERY, XDM_COLLECT_INDIRECT_QUERY,
+ XDM_START_CONNECTION, XDM_AWAIT_REQUEST_RESPONSE,
+ XDM_AWAIT_MANAGE_RESPONSE, XDM_MANAGE, XDM_RUN_SESSION, XDM_OFF,
+ XDM_AWAIT_USER_INPUT, XDM_KEEPALIVE, XDM_AWAIT_ALIVE_RESPONSE,
+#if defined(IPv6) && defined(AF_INET6)
+ XDM_MULTICAST, XDM_COLLECT_MULTICAST_QUERY,
+#endif
+ XDM_KEEP_ME_LAST
+} xdmcp_states;
+
+#ifdef NOTDEF
+/* table of hosts */
+
+#define XDM_MAX_STR_LEN 21
+#define XDM_MAX_HOSTS 20
+struct xdm_host_table {
+ struct sockaddr_in sockaddr;
+ char name[XDM_MAX_STR_LEN];
+ char status[XDM_MAX_STR_LEN];
+};
+#endif /* NOTDEF */
+
+typedef CARD8 *CARD8Ptr;
+typedef CARD16 *CARD16Ptr;
+typedef CARD32 *CARD32Ptr;
+
+typedef struct _ARRAY8 {
+ CARD16 length;
+ CARD8Ptr data;
+} ARRAY8, *ARRAY8Ptr;
+
+typedef struct _ARRAY16 {
+ CARD8 length;
+ CARD16Ptr data;
+} ARRAY16, *ARRAY16Ptr;
+
+typedef struct _ARRAY32 {
+ CARD8 length;
+ CARD32Ptr data;
+} ARRAY32, *ARRAY32Ptr;
+
+typedef struct _ARRAYofARRAY8 {
+ CARD8 length;
+ ARRAY8Ptr data;
+} ARRAYofARRAY8, *ARRAYofARRAY8Ptr;
+
+typedef struct _XdmcpHeader {
+ CARD16 version, opcode, length;
+} XdmcpHeader, *XdmcpHeaderPtr;
+
+typedef struct _XdmcpBuffer {
+ BYTE *data;
+ int size; /* size of buffer pointed by to data */
+ int pointer; /* current index into data */
+ int count; /* bytes read from network into data */
+} XdmcpBuffer, *XdmcpBufferPtr;
+
+typedef struct _XdmAuthKey {
+ BYTE data[8];
+} XdmAuthKeyRec, *XdmAuthKeyPtr;
+
+
+/* implementation-independent network address structure.
+ Equiv to sockaddr* for sockets. */
+
+typedef char *XdmcpNetaddr;
+
+extern int XdmcpWriteARRAY16(XdmcpBufferPtr buffer, const ARRAY16Ptr array);
+extern int XdmcpWriteARRAY32(XdmcpBufferPtr buffer, const ARRAY32Ptr array);
+extern int XdmcpWriteARRAY8(XdmcpBufferPtr buffer, const ARRAY8Ptr array);
+extern int XdmcpWriteARRAYofARRAY8(XdmcpBufferPtr buffer, const ARRAYofARRAY8Ptr array);
+extern int XdmcpWriteCARD16(XdmcpBufferPtr buffer, unsigned value);
+extern int XdmcpWriteCARD32(XdmcpBufferPtr buffer, unsigned value);
+extern int XdmcpWriteCARD8(XdmcpBufferPtr buffer, unsigned value);
+extern int XdmcpWriteHeader(XdmcpBufferPtr buffer, const XdmcpHeaderPtr header);
+
+extern int XdmcpFlush(int fd, XdmcpBufferPtr buffer, XdmcpNetaddr to, int tolen);
+
+extern int XdmcpReadARRAY16(XdmcpBufferPtr buffer, ARRAY16Ptr array);
+extern int XdmcpReadARRAY32(XdmcpBufferPtr buffer, ARRAY32Ptr array);
+extern int XdmcpReadARRAY8(XdmcpBufferPtr buffer, ARRAY8Ptr array);
+extern int XdmcpReadARRAYofARRAY8(XdmcpBufferPtr buffer, ARRAYofARRAY8Ptr array);
+extern int XdmcpReadCARD16(XdmcpBufferPtr buffer, CARD16Ptr valuep);
+extern int XdmcpReadCARD32(XdmcpBufferPtr buffer, CARD32Ptr valuep);
+extern int XdmcpReadCARD8(XdmcpBufferPtr buffer, CARD8Ptr valuep);
+extern int XdmcpReadHeader(XdmcpBufferPtr buffer, XdmcpHeaderPtr header);
+
+extern int XdmcpFill(int fd, XdmcpBufferPtr buffer, XdmcpNetaddr from, int *fromlen);
+
+extern int XdmcpReadRemaining(const XdmcpBufferPtr buffer);
+
+extern void XdmcpDisposeARRAY8(ARRAY8Ptr array);
+extern void XdmcpDisposeARRAY16(ARRAY16Ptr array);
+extern void XdmcpDisposeARRAY32(ARRAY32Ptr array);
+extern void XdmcpDisposeARRAYofARRAY8(ARRAYofARRAY8Ptr array);
+
+extern int XdmcpCopyARRAY8(const ARRAY8Ptr src, ARRAY8Ptr dst);
+
+extern int XdmcpARRAY8Equal(const ARRAY8Ptr array1, const ARRAY8Ptr array2);
+
+extern void XdmcpGenerateKey (XdmAuthKeyPtr key);
+extern void XdmcpIncrementKey (XdmAuthKeyPtr key);
+extern void XdmcpDecrementKey (XdmAuthKeyPtr key);
+#ifdef HASXDMAUTH
+extern void XdmcpWrap(unsigned char *input, unsigned char *wrapper, unsigned char *output, int bytes);
+extern void XdmcpUnwrap(unsigned char *input, unsigned char *wrapper, unsigned char *output, int bytes);
+#endif
+
+#ifndef TRUE
+#define TRUE 1
+#define FALSE 0
+#endif
+
+extern int XdmcpCompareKeys (const XdmAuthKeyPtr a, const XdmAuthKeyPtr b);
+
+extern int XdmcpAllocARRAY16 (ARRAY16Ptr array, int length);
+extern int XdmcpAllocARRAY32 (ARRAY32Ptr array, int length);
+extern int XdmcpAllocARRAY8 (ARRAY8Ptr array, int length);
+extern int XdmcpAllocARRAYofARRAY8 (ARRAYofARRAY8Ptr array, int length);
+
+extern int XdmcpReallocARRAY16 (ARRAY16Ptr array, int length);
+extern int XdmcpReallocARRAY32 (ARRAY32Ptr array, int length);
+extern int XdmcpReallocARRAY8 (ARRAY8Ptr array, int length);
+extern int XdmcpReallocARRAYofARRAY8 (ARRAYofARRAY8Ptr array, int length);
+
+_XFUNCPROTOEND
+
+#endif /* _XDMCP_H_ */
diff --git a/X11/Xfuncproto.h b/X11/Xfuncproto.h
new file mode 100644
index 000000000..13d443ce3
--- /dev/null
+++ b/X11/Xfuncproto.h
@@ -0,0 +1,126 @@
+/*
+ *
+Copyright 1989, 1991, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+ *
+ */
+
+/* Definitions to make function prototypes manageable */
+
+#ifndef _XFUNCPROTO_H_
+#define _XFUNCPROTO_H_
+
+#ifndef NeedFunctionPrototypes
+#define NeedFunctionPrototypes 1
+#endif /* NeedFunctionPrototypes */
+
+#ifndef NeedVarargsPrototypes
+#define NeedVarargsPrototypes 1
+#endif /* NeedVarargsPrototypes */
+
+#if NeedFunctionPrototypes
+
+#ifndef NeedNestedPrototypes
+#define NeedNestedPrototypes 1
+#endif /* NeedNestedPrototypes */
+
+#ifndef _Xconst
+#define _Xconst const
+#endif /* _Xconst */
+
+/* Function prototype configuration (see configure for more info) */
+#ifndef NARROWPROTO
+/* #undef NARROWPROTO */
+#endif
+#ifndef FUNCPROTO
+/* #undef FUNCPROTO */
+#endif
+
+#ifndef NeedWidePrototypes
+#ifdef NARROWPROTO
+#define NeedWidePrototypes 0
+#else
+#define NeedWidePrototypes 1 /* default to make interropt. easier */
+#endif
+#endif /* NeedWidePrototypes */
+
+#endif /* NeedFunctionPrototypes */
+
+#ifndef _XFUNCPROTOBEGIN
+#if defined(__cplusplus) || defined(c_plusplus) /* for C++ V2.0 */
+#define _XFUNCPROTOBEGIN extern "C" { /* do not leave open across includes */
+#define _XFUNCPROTOEND }
+#else
+#define _XFUNCPROTOBEGIN
+#define _XFUNCPROTOEND
+#endif
+#endif /* _XFUNCPROTOBEGIN */
+
+#if defined(__GNUC__) && (__GNUC__ >= 4)
+# define _X_SENTINEL(x) __attribute__ ((__sentinel__(x)))
+# define _X_ATTRIBUTE_PRINTF(x,y) __attribute__((__format__(__printf__,x,y)))
+#else
+# define _X_SENTINEL(x)
+# define _X_ATTRIBUTE_PRINTF(x,y)
+#endif /* GNUC >= 4 */
+
+#if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__CYGWIN__)
+# define _X_EXPORT __attribute__((visibility("default")))
+# define _X_HIDDEN __attribute__((visibility("hidden")))
+# define _X_INTERNAL __attribute__((visibility("internal")))
+#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
+# define _X_EXPORT __global
+# define _X_HIDDEN __hidden
+# define _X_INTERNAL __hidden
+#else /* not gcc >= 4 and not Sun Studio >= 8 */
+# define _X_EXPORT
+# define _X_HIDDEN
+# define _X_INTERNAL
+#endif /* GNUC >= 4 */
+
+#if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 303)
+# define _X_LIKELY(x) __builtin_expect(!!(x), 1)
+# define _X_UNLIKELY(x) __builtin_expect(!!(x), 0)
+# define _X_INLINE inline
+#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
+# define _X_LIKELY(x) (x)
+# define _X_UNLIKELY(x) (x)
+# define _X_INLINE inline
+#else /* not gcc >= 3.3 and not Sun Studio >= 8 */
+# define _X_LIKELY(x) (x)
+# define _X_UNLIKELY(x) (x)
+# define _X_INLINE
+#endif
+
+#if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 301)
+# define _X_DEPRECATED __attribute__((deprecated))
+#else /* not gcc >= 3.1 */
+# define _X_DEPRECATED
+#endif
+
+#if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 205)
+# define _X_NORETURN __attribute((noreturn))
+#else
+# define _X_NORETURN
+#endif /* GNUC */
+
+#endif /* _XFUNCPROTO_H_ */
diff --git a/X11/Xlib-xcb.h b/X11/Xlib-xcb.h
new file mode 100644
index 000000000..a0339de12
--- /dev/null
+++ b/X11/Xlib-xcb.h
@@ -0,0 +1,20 @@
+/* Copyright (C) 2003-2006 Jamey Sharp, Josh Triplett
+ * This file is licensed under the MIT license. See the file COPYING. */
+
+#ifndef _X11_XLIB_XCB_H_
+#define _X11_XLIB_XCB_H_
+
+#include <xcb/xcb.h>
+#include <X11/Xlib.h>
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+xcb_connection_t *XGetXCBConnection(Display *dpy);
+
+enum XEventQueueOwner { XlibOwnsEventQueue = 0, XCBOwnsEventQueue };
+void XSetEventQueueOwner(Display *dpy, enum XEventQueueOwner owner);
+
+_XFUNCPROTOEND
+
+#endif /* _X11_XLIB_XCB_H_ */
diff --git a/X11/Xlib.h b/X11/Xlib.h
new file mode 100644
index 000000000..f29976354
--- /dev/null
+++ b/X11/Xlib.h
@@ -0,0 +1,4032 @@
+/*
+
+Copyright 1985, 1986, 1987, 1991, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+
+/*
+ * Xlib.h - Header definition and support file for the C subroutine
+ * interface library (Xlib) to the X Window System Protocol (V11).
+ * Structures and symbols starting with "_" are private to the library.
+ */
+#ifndef _X11_XLIB_H_
+#define _X11_XLIB_H_
+
+#define XlibSpecificationRelease 6
+
+#include <sys/types.h>
+
+#if defined(__SCO__) || defined(__UNIXWARE__)
+#include <stdint.h>
+#endif
+
+#include <X11/X.h>
+
+/* applications should not depend on these two headers being included! */
+#include <X11/Xfuncproto.h>
+#include <X11/Xosdefs.h>
+
+#ifndef X_WCHAR
+#include <stddef.h>
+#else
+#ifdef __UNIXOS2__
+#include <stdlib.h>
+#else
+/* replace this with #include or typedef appropriate for your system */
+typedef unsigned long wchar_t;
+#endif
+#endif
+
+#if defined(ISC) && defined(USE_XMBTOWC)
+#define wctomb(a,b) _Xwctomb(a,b)
+#define mblen(a,b) _Xmblen(a,b)
+#ifndef USE_XWCHAR_STRING
+#define mbtowc(a,b,c) _Xmbtowc(a,b,c)
+#endif
+#endif
+
+extern int
+_Xmblen(
+#ifdef ISC
+ char const *str,
+ size_t len
+#else
+ char *str,
+ int len
+#endif
+ );
+
+/* API mentioning "UTF8" or "utf8" is an XFree86 extension, introduced in
+ November 2000. Its presence is indicated through the following macro. */
+#define X_HAVE_UTF8_STRING 1
+
+/* The Xlib structs are full of implicit padding to properly align members.
+ We can't clean that up without breaking ABI, so tell clang not to bother
+ complaining about it. */
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+typedef char *XPointer;
+
+typedef int Bool;
+typedef int Status;
+#define True 1
+#define False 0
+
+#define QueuedAlready 0
+#define QueuedAfterReading 1
+#define QueuedAfterFlush 2
+
+#define ConnectionNumber(dpy) (((_XPrivDisplay)dpy)->fd)
+#define RootWindow(dpy, scr) (ScreenOfDisplay(dpy,scr)->root)
+#define DefaultScreen(dpy) (((_XPrivDisplay)dpy)->default_screen)
+#define DefaultRootWindow(dpy) (ScreenOfDisplay(dpy,DefaultScreen(dpy))->root)
+#define DefaultVisual(dpy, scr) (ScreenOfDisplay(dpy,scr)->root_visual)
+#define DefaultGC(dpy, scr) (ScreenOfDisplay(dpy,scr)->default_gc)
+#define BlackPixel(dpy, scr) (ScreenOfDisplay(dpy,scr)->black_pixel)
+#define WhitePixel(dpy, scr) (ScreenOfDisplay(dpy,scr)->white_pixel)
+#define AllPlanes ((unsigned long)~0L)
+#define QLength(dpy) (((_XPrivDisplay)dpy)->qlen)
+#define DisplayWidth(dpy, scr) (ScreenOfDisplay(dpy,scr)->width)
+#define DisplayHeight(dpy, scr) (ScreenOfDisplay(dpy,scr)->height)
+#define DisplayWidthMM(dpy, scr)(ScreenOfDisplay(dpy,scr)->mwidth)
+#define DisplayHeightMM(dpy, scr)(ScreenOfDisplay(dpy,scr)->mheight)
+#define DisplayPlanes(dpy, scr) (ScreenOfDisplay(dpy,scr)->root_depth)
+#define DisplayCells(dpy, scr) (DefaultVisual(dpy,scr)->map_entries)
+#define ScreenCount(dpy) (((_XPrivDisplay)dpy)->nscreens)
+#define ServerVendor(dpy) (((_XPrivDisplay)dpy)->vendor)
+#define ProtocolVersion(dpy) (((_XPrivDisplay)dpy)->proto_major_version)
+#define ProtocolRevision(dpy) (((_XPrivDisplay)dpy)->proto_minor_version)
+#define VendorRelease(dpy) (((_XPrivDisplay)dpy)->release)
+#define DisplayString(dpy) (((_XPrivDisplay)dpy)->display_name)
+#define DefaultDepth(dpy, scr) (ScreenOfDisplay(dpy,scr)->root_depth)
+#define DefaultColormap(dpy, scr)(ScreenOfDisplay(dpy,scr)->cmap)
+#define BitmapUnit(dpy) (((_XPrivDisplay)dpy)->bitmap_unit)
+#define BitmapBitOrder(dpy) (((_XPrivDisplay)dpy)->bitmap_bit_order)
+#define BitmapPad(dpy) (((_XPrivDisplay)dpy)->bitmap_pad)
+#define ImageByteOrder(dpy) (((_XPrivDisplay)dpy)->byte_order)
+#define NextRequest(dpy) (((_XPrivDisplay)dpy)->request + 1)
+#define LastKnownRequestProcessed(dpy) (((_XPrivDisplay)dpy)->last_request_read)
+
+/* macros for screen oriented applications (toolkit) */
+#define ScreenOfDisplay(dpy, scr)(&((_XPrivDisplay)dpy)->screens[scr])
+#define DefaultScreenOfDisplay(dpy) ScreenOfDisplay(dpy,DefaultScreen(dpy))
+#define DisplayOfScreen(s) ((s)->display)
+#define RootWindowOfScreen(s) ((s)->root)
+#define BlackPixelOfScreen(s) ((s)->black_pixel)
+#define WhitePixelOfScreen(s) ((s)->white_pixel)
+#define DefaultColormapOfScreen(s)((s)->cmap)
+#define DefaultDepthOfScreen(s) ((s)->root_depth)
+#define DefaultGCOfScreen(s) ((s)->default_gc)
+#define DefaultVisualOfScreen(s)((s)->root_visual)
+#define WidthOfScreen(s) ((s)->width)
+#define HeightOfScreen(s) ((s)->height)
+#define WidthMMOfScreen(s) ((s)->mwidth)
+#define HeightMMOfScreen(s) ((s)->mheight)
+#define PlanesOfScreen(s) ((s)->root_depth)
+#define CellsOfScreen(s) (DefaultVisualOfScreen((s))->map_entries)
+#define MinCmapsOfScreen(s) ((s)->min_maps)
+#define MaxCmapsOfScreen(s) ((s)->max_maps)
+#define DoesSaveUnders(s) ((s)->save_unders)
+#define DoesBackingStore(s) ((s)->backing_store)
+#define EventMaskOfScreen(s) ((s)->root_input_mask)
+
+/*
+ * Extensions need a way to hang private data on some structures.
+ */
+typedef struct _XExtData {
+ int number; /* number returned by XRegisterExtension */
+ struct _XExtData *next; /* next item on list of data for structure */
+ int (*free_private)( /* called to free private storage */
+ struct _XExtData *extension
+ );
+ XPointer private_data; /* data private to this extension. */
+} XExtData;
+
+/*
+ * This file contains structures used by the extension mechanism.
+ */
+typedef struct { /* public to extension, cannot be changed */
+ int extension; /* extension number */
+ int major_opcode; /* major op-code assigned by server */
+ int first_event; /* first event number for the extension */
+ int first_error; /* first error number for the extension */
+} XExtCodes;
+
+/*
+ * Data structure for retrieving info about pixmap formats.
+ */
+
+typedef struct {
+ int depth;
+ int bits_per_pixel;
+ int scanline_pad;
+} XPixmapFormatValues;
+
+
+/*
+ * Data structure for setting graphics context.
+ */
+typedef struct {
+ int function; /* logical operation */
+ unsigned long plane_mask;/* plane mask */
+ unsigned long foreground;/* foreground pixel */
+ unsigned long background;/* background pixel */
+ int line_width; /* line width */
+ int line_style; /* LineSolid, LineOnOffDash, LineDoubleDash */
+ int cap_style; /* CapNotLast, CapButt,
+ CapRound, CapProjecting */
+ int join_style; /* JoinMiter, JoinRound, JoinBevel */
+ int fill_style; /* FillSolid, FillTiled,
+ FillStippled, FillOpaeueStippled */
+ int fill_rule; /* EvenOddRule, WindingRule */
+ int arc_mode; /* ArcChord, ArcPieSlice */
+ Pixmap tile; /* tile pixmap for tiling operations */
+ Pixmap stipple; /* stipple 1 plane pixmap for stipping */
+ int ts_x_origin; /* offset for tile or stipple operations */
+ int ts_y_origin;
+ Font font; /* default text font for text operations */
+ int subwindow_mode; /* ClipByChildren, IncludeInferiors */
+ Bool graphics_exposures;/* boolean, should exposures be generated */
+ int clip_x_origin; /* origin for clipping */
+ int clip_y_origin;
+ Pixmap clip_mask; /* bitmap clipping; other calls for rects */
+ int dash_offset; /* patterned/dashed line information */
+ char dashes;
+} XGCValues;
+
+/*
+ * Graphics context. The contents of this structure are implementation
+ * dependent. A GC should be treated as opaque by application code.
+ */
+
+typedef struct _XGC
+#ifdef XLIB_ILLEGAL_ACCESS
+{
+ XExtData *ext_data; /* hook for extension to hang data */
+ GContext gid; /* protocol ID for graphics context */
+ /* there is more to this structure, but it is private to Xlib */
+}
+#endif
+*GC;
+
+/*
+ * Visual structure; contains information about colormapping possible.
+ */
+typedef struct {
+ XExtData *ext_data; /* hook for extension to hang data */
+ VisualID visualid; /* visual id of this visual */
+#if defined(__cplusplus) || defined(c_plusplus)
+ int c_class; /* C++ class of screen (monochrome, etc.) */
+#else
+ int class; /* class of screen (monochrome, etc.) */
+#endif
+ unsigned long red_mask, green_mask, blue_mask; /* mask values */
+ int bits_per_rgb; /* log base 2 of distinct color values */
+ int map_entries; /* color map entries */
+} Visual;
+
+/*
+ * Depth structure; contains information for each possible depth.
+ */
+typedef struct {
+ int depth; /* this depth (Z) of the depth */
+ int nvisuals; /* number of Visual types at this depth */
+ Visual *visuals; /* list of visuals possible at this depth */
+} Depth;
+
+/*
+ * Information about the screen. The contents of this structure are
+ * implementation dependent. A Screen should be treated as opaque
+ * by application code.
+ */
+
+struct _XDisplay; /* Forward declare before use for C++ */
+
+typedef struct {
+ XExtData *ext_data; /* hook for extension to hang data */
+ struct _XDisplay *display;/* back pointer to display structure */
+ Window root; /* Root window id. */
+ int width, height; /* width and height of screen */
+ int mwidth, mheight; /* width and height of in millimeters */
+ int ndepths; /* number of depths possible */
+ Depth *depths; /* list of allowable depths on the screen */
+ int root_depth; /* bits per pixel */
+ Visual *root_visual; /* root visual */
+ GC default_gc; /* GC for the root root visual */
+ Colormap cmap; /* default color map */
+ unsigned long white_pixel;
+ unsigned long black_pixel; /* White and Black pixel values */
+ int max_maps, min_maps; /* max and min color maps */
+ int backing_store; /* Never, WhenMapped, Always */
+ Bool save_unders;
+ long root_input_mask; /* initial root input mask */
+} Screen;
+
+/*
+ * Format structure; describes ZFormat data the screen will understand.
+ */
+typedef struct {
+ XExtData *ext_data; /* hook for extension to hang data */
+ int depth; /* depth of this image format */
+ int bits_per_pixel; /* bits/pixel at this depth */
+ int scanline_pad; /* scanline must padded to this multiple */
+} ScreenFormat;
+
+/*
+ * Data structure for setting window attributes.
+ */
+typedef struct {
+ Pixmap background_pixmap; /* background or None or ParentRelative */
+ unsigned long background_pixel; /* background pixel */
+ Pixmap border_pixmap; /* border of the window */
+ unsigned long border_pixel; /* border pixel value */
+ int bit_gravity; /* one of bit gravity values */
+ int win_gravity; /* one of the window gravity values */
+ int backing_store; /* NotUseful, WhenMapped, Always */
+ unsigned long backing_planes;/* planes to be preseved if possible */
+ unsigned long backing_pixel;/* value to use in restoring planes */
+ Bool save_under; /* should bits under be saved? (popups) */
+ long event_mask; /* set of events that should be saved */
+ long do_not_propagate_mask; /* set of events that should not propagate */
+ Bool override_redirect; /* boolean value for override-redirect */
+ Colormap colormap; /* color map to be associated with window */
+ Cursor cursor; /* cursor to be displayed (or None) */
+} XSetWindowAttributes;
+
+typedef struct {
+ int x, y; /* location of window */
+ int width, height; /* width and height of window */
+ int border_width; /* border width of window */
+ int depth; /* depth of window */
+ Visual *visual; /* the associated visual structure */
+ Window root; /* root of screen containing window */
+#if defined(__cplusplus) || defined(c_plusplus)
+ int c_class; /* C++ InputOutput, InputOnly*/
+#else
+ int class; /* InputOutput, InputOnly*/
+#endif
+ int bit_gravity; /* one of bit gravity values */
+ int win_gravity; /* one of the window gravity values */
+ int backing_store; /* NotUseful, WhenMapped, Always */
+ unsigned long backing_planes;/* planes to be preserved if possible */
+ unsigned long backing_pixel;/* value to be used when restoring planes */
+ Bool save_under; /* boolean, should bits under be saved? */
+ Colormap colormap; /* color map to be associated with window */
+ Bool map_installed; /* boolean, is color map currently installed*/
+ int map_state; /* IsUnmapped, IsUnviewable, IsViewable */
+ long all_event_masks; /* set of events all people have interest in*/
+ long your_event_mask; /* my event mask */
+ long do_not_propagate_mask; /* set of events that should not propagate */
+ Bool override_redirect; /* boolean value for override-redirect */
+ Screen *screen; /* back pointer to correct screen */
+} XWindowAttributes;
+
+/*
+ * Data structure for host setting; getting routines.
+ *
+ */
+
+typedef struct {
+ int family; /* for example FamilyInternet */
+ int length; /* length of address, in bytes */
+ char *address; /* pointer to where to find the bytes */
+} XHostAddress;
+
+/*
+ * Data structure for ServerFamilyInterpreted addresses in host routines
+ */
+typedef struct {
+ int typelength; /* length of type string, in bytes */
+ int valuelength; /* length of value string, in bytes */
+ char *type; /* pointer to where to find the type string */
+ char *value; /* pointer to where to find the address */
+} XServerInterpretedAddress;
+
+/*
+ * Data structure for "image" data, used by image manipulation routines.
+ */
+typedef struct _XImage {
+ int width, height; /* size of image */
+ int xoffset; /* number of pixels offset in X direction */
+ int format; /* XYBitmap, XYPixmap, ZPixmap */
+ char *data; /* pointer to image data */
+ int byte_order; /* data byte order, LSBFirst, MSBFirst */
+ int bitmap_unit; /* quant. of scanline 8, 16, 32 */
+ int bitmap_bit_order; /* LSBFirst, MSBFirst */
+ int bitmap_pad; /* 8, 16, 32 either XY or ZPixmap */
+ int depth; /* depth of image */
+ int bytes_per_line; /* accelarator to next line */
+ int bits_per_pixel; /* bits per pixel (ZPixmap) */
+ unsigned long red_mask; /* bits in z arrangment */
+ unsigned long green_mask;
+ unsigned long blue_mask;
+ XPointer obdata; /* hook for the object routines to hang on */
+ struct funcs { /* image manipulation routines */
+ struct _XImage *(*create_image)(
+ struct _XDisplay* /* display */,
+ Visual* /* visual */,
+ unsigned int /* depth */,
+ int /* format */,
+ int /* offset */,
+ char* /* data */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ int /* bitmap_pad */,
+ int /* bytes_per_line */);
+ int (*destroy_image) (struct _XImage *);
+ unsigned long (*get_pixel) (struct _XImage *, int, int);
+ int (*put_pixel) (struct _XImage *, int, int, unsigned long);
+ struct _XImage *(*sub_image)(struct _XImage *, int, int, unsigned int, unsigned int);
+ int (*add_pixel) (struct _XImage *, long);
+ } f;
+} XImage;
+
+/*
+ * Data structure for XReconfigureWindow
+ */
+typedef struct {
+ int x, y;
+ int width, height;
+ int border_width;
+ Window sibling;
+ int stack_mode;
+} XWindowChanges;
+
+/*
+ * Data structure used by color operations
+ */
+typedef struct {
+ unsigned long pixel;
+ unsigned short red, green, blue;
+ char flags; /* do_red, do_green, do_blue */
+ char pad;
+} XColor;
+
+/*
+ * Data structures for graphics operations. On most machines, these are
+ * congruent with the wire protocol structures, so reformatting the data
+ * can be avoided on these architectures.
+ */
+typedef struct {
+ short x1, y1, x2, y2;
+} XSegment;
+
+typedef struct {
+ short x, y;
+} XPoint;
+
+typedef struct {
+ short x, y;
+ unsigned short width, height;
+} XRectangle;
+
+typedef struct {
+ short x, y;
+ unsigned short width, height;
+ short angle1, angle2;
+} XArc;
+
+
+/* Data structure for XChangeKeyboardControl */
+
+typedef struct {
+ int key_click_percent;
+ int bell_percent;
+ int bell_pitch;
+ int bell_duration;
+ int led;
+ int led_mode;
+ int key;
+ int auto_repeat_mode; /* On, Off, Default */
+} XKeyboardControl;
+
+/* Data structure for XGetKeyboardControl */
+
+typedef struct {
+ int key_click_percent;
+ int bell_percent;
+ unsigned int bell_pitch, bell_duration;
+ unsigned long led_mask;
+ int global_auto_repeat;
+ char auto_repeats[32];
+} XKeyboardState;
+
+/* Data structure for XGetMotionEvents. */
+
+typedef struct {
+ Time time;
+ short x, y;
+} XTimeCoord;
+
+/* Data structure for X{Set,Get}ModifierMapping */
+
+typedef struct {
+ int max_keypermod; /* The server's max # of keys per modifier */
+ KeyCode *modifiermap; /* An 8 by max_keypermod array of modifiers */
+} XModifierKeymap;
+
+
+/*
+ * Display datatype maintaining display specific data.
+ * The contents of this structure are implementation dependent.
+ * A Display should be treated as opaque by application code.
+ */
+#ifndef XLIB_ILLEGAL_ACCESS
+typedef struct _XDisplay Display;
+#endif
+
+struct _XPrivate; /* Forward declare before use for C++ */
+struct _XrmHashBucketRec;
+
+typedef struct
+#ifdef XLIB_ILLEGAL_ACCESS
+_XDisplay
+#endif
+{
+ XExtData *ext_data; /* hook for extension to hang data */
+ struct _XPrivate *private1;
+ int fd; /* Network socket. */
+ int private2;
+ int proto_major_version;/* major version of server's X protocol */
+ int proto_minor_version;/* minor version of servers X protocol */
+ char *vendor; /* vendor of the server hardware */
+ XID private3;
+ XID private4;
+ XID private5;
+ int private6;
+ XID (*resource_alloc)( /* allocator function */
+ struct _XDisplay*
+ );
+ int byte_order; /* screen byte order, LSBFirst, MSBFirst */
+ int bitmap_unit; /* padding and data requirements */
+ int bitmap_pad; /* padding requirements on bitmaps */
+ int bitmap_bit_order; /* LeastSignificant or MostSignificant */
+ int nformats; /* number of pixmap formats in list */
+ ScreenFormat *pixmap_format; /* pixmap format list */
+ int private8;
+ int release; /* release of the server */
+ struct _XPrivate *private9, *private10;
+ int qlen; /* Length of input event queue */
+ unsigned long last_request_read; /* seq number of last event read */
+ unsigned long request; /* sequence number of last request. */
+ XPointer private11;
+ XPointer private12;
+ XPointer private13;
+ XPointer private14;
+ unsigned max_request_size; /* maximum number 32 bit words in request*/
+ struct _XrmHashBucketRec *db;
+ int (*private15)(
+ struct _XDisplay*
+ );
+ char *display_name; /* "host:display" string used on this connect*/
+ int default_screen; /* default screen for operations */
+ int nscreens; /* number of screens on this server*/
+ Screen *screens; /* pointer to list of screens */
+ unsigned long motion_buffer; /* size of motion buffer */
+ unsigned long private16;
+ int min_keycode; /* minimum defined keycode */
+ int max_keycode; /* maximum defined keycode */
+ XPointer private17;
+ XPointer private18;
+ int private19;
+ char *xdefaults; /* contents of defaults from server */
+ /* there is more to this structure, but it is private to Xlib */
+}
+#ifdef XLIB_ILLEGAL_ACCESS
+Display,
+#endif
+*_XPrivDisplay;
+
+#undef _XEVENT_
+#ifndef _XEVENT_
+/*
+ * Definitions of specific events.
+ */
+typedef struct {
+ int type; /* of event */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window; /* "event" window it is reported relative to */
+ Window root; /* root window that the event occurred on */
+ Window subwindow; /* child window */
+ Time time; /* milliseconds */
+ int x, y; /* pointer x, y coordinates in event window */
+ int x_root, y_root; /* coordinates relative to root */
+ unsigned int state; /* key or button mask */
+ unsigned int keycode; /* detail */
+ Bool same_screen; /* same screen flag */
+} XKeyEvent;
+typedef XKeyEvent XKeyPressedEvent;
+typedef XKeyEvent XKeyReleasedEvent;
+
+typedef struct {
+ int type; /* of event */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window; /* "event" window it is reported relative to */
+ Window root; /* root window that the event occurred on */
+ Window subwindow; /* child window */
+ Time time; /* milliseconds */
+ int x, y; /* pointer x, y coordinates in event window */
+ int x_root, y_root; /* coordinates relative to root */
+ unsigned int state; /* key or button mask */
+ unsigned int button; /* detail */
+ Bool same_screen; /* same screen flag */
+} XButtonEvent;
+typedef XButtonEvent XButtonPressedEvent;
+typedef XButtonEvent XButtonReleasedEvent;
+
+typedef struct {
+ int type; /* of event */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window; /* "event" window reported relative to */
+ Window root; /* root window that the event occurred on */
+ Window subwindow; /* child window */
+ Time time; /* milliseconds */
+ int x, y; /* pointer x, y coordinates in event window */
+ int x_root, y_root; /* coordinates relative to root */
+ unsigned int state; /* key or button mask */
+ char is_hint; /* detail */
+ Bool same_screen; /* same screen flag */
+} XMotionEvent;
+typedef XMotionEvent XPointerMovedEvent;
+
+typedef struct {
+ int type; /* of event */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window; /* "event" window reported relative to */
+ Window root; /* root window that the event occurred on */
+ Window subwindow; /* child window */
+ Time time; /* milliseconds */
+ int x, y; /* pointer x, y coordinates in event window */
+ int x_root, y_root; /* coordinates relative to root */
+ int mode; /* NotifyNormal, NotifyGrab, NotifyUngrab */
+ int detail;
+ /*
+ * NotifyAncestor, NotifyVirtual, NotifyInferior,
+ * NotifyNonlinear,NotifyNonlinearVirtual
+ */
+ Bool same_screen; /* same screen flag */
+ Bool focus; /* boolean focus */
+ unsigned int state; /* key or button mask */
+} XCrossingEvent;
+typedef XCrossingEvent XEnterWindowEvent;
+typedef XCrossingEvent XLeaveWindowEvent;
+
+typedef struct {
+ int type; /* FocusIn or FocusOut */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window; /* window of event */
+ int mode; /* NotifyNormal, NotifyWhileGrabbed,
+ NotifyGrab, NotifyUngrab */
+ int detail;
+ /*
+ * NotifyAncestor, NotifyVirtual, NotifyInferior,
+ * NotifyNonlinear,NotifyNonlinearVirtual, NotifyPointer,
+ * NotifyPointerRoot, NotifyDetailNone
+ */
+} XFocusChangeEvent;
+typedef XFocusChangeEvent XFocusInEvent;
+typedef XFocusChangeEvent XFocusOutEvent;
+
+/* generated on EnterWindow and FocusIn when KeyMapState selected */
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window;
+ char key_vector[32];
+} XKeymapEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window;
+ int x, y;
+ int width, height;
+ int count; /* if non-zero, at least this many more */
+} XExposeEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Drawable drawable;
+ int x, y;
+ int width, height;
+ int count; /* if non-zero, at least this many more */
+ int major_code; /* core is CopyArea or CopyPlane */
+ int minor_code; /* not defined in the core */
+} XGraphicsExposeEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Drawable drawable;
+ int major_code; /* core is CopyArea or CopyPlane */
+ int minor_code; /* not defined in the core */
+} XNoExposeEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window;
+ int state; /* Visibility state */
+} XVisibilityEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window parent; /* parent of the window */
+ Window window; /* window id of window created */
+ int x, y; /* window location */
+ int width, height; /* size of window */
+ int border_width; /* border width */
+ Bool override_redirect; /* creation should be overridden */
+} XCreateWindowEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window event;
+ Window window;
+} XDestroyWindowEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window event;
+ Window window;
+ Bool from_configure;
+} XUnmapEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window event;
+ Window window;
+ Bool override_redirect; /* boolean, is override set... */
+} XMapEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window parent;
+ Window window;
+} XMapRequestEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window event;
+ Window window;
+ Window parent;
+ int x, y;
+ Bool override_redirect;
+} XReparentEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window event;
+ Window window;
+ int x, y;
+ int width, height;
+ int border_width;
+ Window above;
+ Bool override_redirect;
+} XConfigureEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window event;
+ Window window;
+ int x, y;
+} XGravityEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window;
+ int width, height;
+} XResizeRequestEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window parent;
+ Window window;
+ int x, y;
+ int width, height;
+ int border_width;
+ Window above;
+ int detail; /* Above, Below, TopIf, BottomIf, Opposite */
+ unsigned long value_mask;
+} XConfigureRequestEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window event;
+ Window window;
+ int place; /* PlaceOnTop, PlaceOnBottom */
+} XCirculateEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window parent;
+ Window window;
+ int place; /* PlaceOnTop, PlaceOnBottom */
+} XCirculateRequestEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window;
+ Atom atom;
+ Time time;
+ int state; /* NewValue, Deleted */
+} XPropertyEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window;
+ Atom selection;
+ Time time;
+} XSelectionClearEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window owner;
+ Window requestor;
+ Atom selection;
+ Atom target;
+ Atom property;
+ Time time;
+} XSelectionRequestEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window requestor;
+ Atom selection;
+ Atom target;
+ Atom property; /* ATOM or None */
+ Time time;
+} XSelectionEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window;
+ Colormap colormap; /* COLORMAP or None */
+#if defined(__cplusplus) || defined(c_plusplus)
+ Bool c_new; /* C++ */
+#else
+ Bool new;
+#endif
+ int state; /* ColormapInstalled, ColormapUninstalled */
+} XColormapEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window;
+ Atom message_type;
+ int format;
+ union {
+ char b[20];
+ short s[10];
+ long l[5];
+ } data;
+} XClientMessageEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window; /* unused */
+ int request; /* one of MappingModifier, MappingKeyboard,
+ MappingPointer */
+ int first_keycode; /* first keycode */
+ int count; /* defines range of change w. first_keycode*/
+} XMappingEvent;
+
+typedef struct {
+ int type;
+ Display *display; /* Display the event was read from */
+ XID resourceid; /* resource id */
+ unsigned long serial; /* serial number of failed request */
+ unsigned char error_code; /* error code of failed request */
+ unsigned char request_code; /* Major op-code of failed request */
+ unsigned char minor_code; /* Minor op-code of failed request */
+} XErrorEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display;/* Display the event was read from */
+ Window window; /* window on which event was requested in event mask */
+} XAnyEvent;
+
+
+/***************************************************************
+ *
+ * GenericEvent. This event is the standard event for all newer extensions.
+ */
+
+typedef struct
+ {
+ int type; /* of event. Always GenericEvent */
+ unsigned long serial; /* # of last request processed */
+ Bool send_event; /* true if from SendEvent request */
+ Display *display; /* Display the event was read from */
+ int extension; /* major opcode of extension that caused the event */
+ int evtype; /* actual event type. */
+ } XGenericEvent;
+
+typedef struct {
+ int type; /* of event. Always GenericEvent */
+ unsigned long serial; /* # of last request processed */
+ Bool send_event; /* true if from SendEvent request */
+ Display *display; /* Display the event was read from */
+ int extension; /* major opcode of extension that caused the event */
+ int evtype; /* actual event type. */
+ unsigned int cookie;
+ void *data;
+} XGenericEventCookie;
+
+/*
+ * this union is defined so Xlib can always use the same sized
+ * event structure internally, to avoid memory fragmentation.
+ */
+typedef union _XEvent {
+ int type; /* must not be changed; first element */
+ XAnyEvent xany;
+ XKeyEvent xkey;
+ XButtonEvent xbutton;
+ XMotionEvent xmotion;
+ XCrossingEvent xcrossing;
+ XFocusChangeEvent xfocus;
+ XExposeEvent xexpose;
+ XGraphicsExposeEvent xgraphicsexpose;
+ XNoExposeEvent xnoexpose;
+ XVisibilityEvent xvisibility;
+ XCreateWindowEvent xcreatewindow;
+ XDestroyWindowEvent xdestroywindow;
+ XUnmapEvent xunmap;
+ XMapEvent xmap;
+ XMapRequestEvent xmaprequest;
+ XReparentEvent xreparent;
+ XConfigureEvent xconfigure;
+ XGravityEvent xgravity;
+ XResizeRequestEvent xresizerequest;
+ XConfigureRequestEvent xconfigurerequest;
+ XCirculateEvent xcirculate;
+ XCirculateRequestEvent xcirculaterequest;
+ XPropertyEvent xproperty;
+ XSelectionClearEvent xselectionclear;
+ XSelectionRequestEvent xselectionrequest;
+ XSelectionEvent xselection;
+ XColormapEvent xcolormap;
+ XClientMessageEvent xclient;
+ XMappingEvent xmapping;
+ XErrorEvent xerror;
+ XKeymapEvent xkeymap;
+ XGenericEvent xgeneric;
+ XGenericEventCookie xcookie;
+ long pad[24];
+} XEvent;
+#endif
+
+#define XAllocID(dpy) ((*((_XPrivDisplay)dpy)->resource_alloc)((dpy)))
+
+/*
+ * per character font metric information.
+ */
+typedef struct {
+ short lbearing; /* origin to left edge of raster */
+ short rbearing; /* origin to right edge of raster */
+ short width; /* advance to next char's origin */
+ short ascent; /* baseline to top edge of raster */
+ short descent; /* baseline to bottom edge of raster */
+ unsigned short attributes; /* per char flags (not predefined) */
+} XCharStruct;
+
+/*
+ * To allow arbitrary information with fonts, there are additional properties
+ * returned.
+ */
+typedef struct {
+ Atom name;
+ unsigned long card32;
+} XFontProp;
+
+typedef struct {
+ XExtData *ext_data; /* hook for extension to hang data */
+ Font fid; /* Font id for this font */
+ unsigned direction; /* hint about direction the font is painted */
+ unsigned min_char_or_byte2;/* first character */
+ unsigned max_char_or_byte2;/* last character */
+ unsigned min_byte1; /* first row that exists */
+ unsigned max_byte1; /* last row that exists */
+ Bool all_chars_exist;/* flag if all characters have non-zero size*/
+ unsigned default_char; /* char to print for undefined character */
+ int n_properties; /* how many properties there are */
+ XFontProp *properties; /* pointer to array of additional properties*/
+ XCharStruct min_bounds; /* minimum bounds over all existing char*/
+ XCharStruct max_bounds; /* maximum bounds over all existing char*/
+ XCharStruct *per_char; /* first_char to last_char information */
+ int ascent; /* log. extent above baseline for spacing */
+ int descent; /* log. descent below baseline for spacing */
+} XFontStruct;
+
+/*
+ * PolyText routines take these as arguments.
+ */
+typedef struct {
+ char *chars; /* pointer to string */
+ int nchars; /* number of characters */
+ int delta; /* delta between strings */
+ Font font; /* font to print it in, None don't change */
+} XTextItem;
+
+typedef struct { /* normal 16 bit characters are two bytes */
+ unsigned char byte1;
+ unsigned char byte2;
+} XChar2b;
+
+typedef struct {
+ XChar2b *chars; /* two byte characters */
+ int nchars; /* number of characters */
+ int delta; /* delta between strings */
+ Font font; /* font to print it in, None don't change */
+} XTextItem16;
+
+
+typedef union { Display *display;
+ GC gc;
+ Visual *visual;
+ Screen *screen;
+ ScreenFormat *pixmap_format;
+ XFontStruct *font; } XEDataObject;
+
+typedef struct {
+ XRectangle max_ink_extent;
+ XRectangle max_logical_extent;
+} XFontSetExtents;
+
+/* unused:
+typedef void (*XOMProc)();
+ */
+
+typedef struct _XOM *XOM;
+typedef struct _XOC *XOC, *XFontSet;
+
+typedef struct {
+ char *chars;
+ int nchars;
+ int delta;
+ XFontSet font_set;
+} XmbTextItem;
+
+typedef struct {
+ wchar_t *chars;
+ int nchars;
+ int delta;
+ XFontSet font_set;
+} XwcTextItem;
+
+#define XNRequiredCharSet "requiredCharSet"
+#define XNQueryOrientation "queryOrientation"
+#define XNBaseFontName "baseFontName"
+#define XNOMAutomatic "omAutomatic"
+#define XNMissingCharSet "missingCharSet"
+#define XNDefaultString "defaultString"
+#define XNOrientation "orientation"
+#define XNDirectionalDependentDrawing "directionalDependentDrawing"
+#define XNContextualDrawing "contextualDrawing"
+#define XNFontInfo "fontInfo"
+
+typedef struct {
+ int charset_count;
+ char **charset_list;
+} XOMCharSetList;
+
+typedef enum {
+ XOMOrientation_LTR_TTB,
+ XOMOrientation_RTL_TTB,
+ XOMOrientation_TTB_LTR,
+ XOMOrientation_TTB_RTL,
+ XOMOrientation_Context
+} XOrientation;
+
+typedef struct {
+ int num_orientation;
+ XOrientation *orientation; /* Input Text description */
+} XOMOrientation;
+
+typedef struct {
+ int num_font;
+ XFontStruct **font_struct_list;
+ char **font_name_list;
+} XOMFontInfo;
+
+typedef struct _XIM *XIM;
+typedef struct _XIC *XIC;
+
+typedef void (*XIMProc)(
+ XIM,
+ XPointer,
+ XPointer
+);
+
+typedef Bool (*XICProc)(
+ XIC,
+ XPointer,
+ XPointer
+);
+
+typedef void (*XIDProc)(
+ Display*,
+ XPointer,
+ XPointer
+);
+
+typedef unsigned long XIMStyle;
+
+typedef struct {
+ unsigned short count_styles;
+ XIMStyle *supported_styles;
+} XIMStyles;
+
+#define XIMPreeditArea 0x0001L
+#define XIMPreeditCallbacks 0x0002L
+#define XIMPreeditPosition 0x0004L
+#define XIMPreeditNothing 0x0008L
+#define XIMPreeditNone 0x0010L
+#define XIMStatusArea 0x0100L
+#define XIMStatusCallbacks 0x0200L
+#define XIMStatusNothing 0x0400L
+#define XIMStatusNone 0x0800L
+
+#define XNVaNestedList "XNVaNestedList"
+#define XNQueryInputStyle "queryInputStyle"
+#define XNClientWindow "clientWindow"
+#define XNInputStyle "inputStyle"
+#define XNFocusWindow "focusWindow"
+#define XNResourceName "resourceName"
+#define XNResourceClass "resourceClass"
+#define XNGeometryCallback "geometryCallback"
+#define XNDestroyCallback "destroyCallback"
+#define XNFilterEvents "filterEvents"
+#define XNPreeditStartCallback "preeditStartCallback"
+#define XNPreeditDoneCallback "preeditDoneCallback"
+#define XNPreeditDrawCallback "preeditDrawCallback"
+#define XNPreeditCaretCallback "preeditCaretCallback"
+#define XNPreeditStateNotifyCallback "preeditStateNotifyCallback"
+#define XNPreeditAttributes "preeditAttributes"
+#define XNStatusStartCallback "statusStartCallback"
+#define XNStatusDoneCallback "statusDoneCallback"
+#define XNStatusDrawCallback "statusDrawCallback"
+#define XNStatusAttributes "statusAttributes"
+#define XNArea "area"
+#define XNAreaNeeded "areaNeeded"
+#define XNSpotLocation "spotLocation"
+#define XNColormap "colorMap"
+#define XNStdColormap "stdColorMap"
+#define XNForeground "foreground"
+#define XNBackground "background"
+#define XNBackgroundPixmap "backgroundPixmap"
+#define XNFontSet "fontSet"
+#define XNLineSpace "lineSpace"
+#define XNCursor "cursor"
+
+#define XNQueryIMValuesList "queryIMValuesList"
+#define XNQueryICValuesList "queryICValuesList"
+#define XNVisiblePosition "visiblePosition"
+#define XNR6PreeditCallback "r6PreeditCallback"
+#define XNStringConversionCallback "stringConversionCallback"
+#define XNStringConversion "stringConversion"
+#define XNResetState "resetState"
+#define XNHotKey "hotKey"
+#define XNHotKeyState "hotKeyState"
+#define XNPreeditState "preeditState"
+#define XNSeparatorofNestedList "separatorofNestedList"
+
+#define XBufferOverflow -1
+#define XLookupNone 1
+#define XLookupChars 2
+#define XLookupKeySym 3
+#define XLookupBoth 4
+
+typedef void *XVaNestedList;
+
+typedef struct {
+ XPointer client_data;
+ XIMProc callback;
+} XIMCallback;
+
+typedef struct {
+ XPointer client_data;
+ XICProc callback;
+} XICCallback;
+
+typedef unsigned long XIMFeedback;
+
+#define XIMReverse 1L
+#define XIMUnderline (1L<<1)
+#define XIMHighlight (1L<<2)
+#define XIMPrimary (1L<<5)
+#define XIMSecondary (1L<<6)
+#define XIMTertiary (1L<<7)
+#define XIMVisibleToForward (1L<<8)
+#define XIMVisibleToBackword (1L<<9)
+#define XIMVisibleToCenter (1L<<10)
+
+typedef struct _XIMText {
+ unsigned short length;
+ XIMFeedback *feedback;
+ Bool encoding_is_wchar;
+ union {
+ char *multi_byte;
+ wchar_t *wide_char;
+ } string;
+} XIMText;
+
+typedef unsigned long XIMPreeditState;
+
+#define XIMPreeditUnKnown 0L
+#define XIMPreeditEnable 1L
+#define XIMPreeditDisable (1L<<1)
+
+typedef struct _XIMPreeditStateNotifyCallbackStruct {
+ XIMPreeditState state;
+} XIMPreeditStateNotifyCallbackStruct;
+
+typedef unsigned long XIMResetState;
+
+#define XIMInitialState 1L
+#define XIMPreserveState (1L<<1)
+
+typedef unsigned long XIMStringConversionFeedback;
+
+#define XIMStringConversionLeftEdge (0x00000001)
+#define XIMStringConversionRightEdge (0x00000002)
+#define XIMStringConversionTopEdge (0x00000004)
+#define XIMStringConversionBottomEdge (0x00000008)
+#define XIMStringConversionConcealed (0x00000010)
+#define XIMStringConversionWrapped (0x00000020)
+
+typedef struct _XIMStringConversionText {
+ unsigned short length;
+ XIMStringConversionFeedback *feedback;
+ Bool encoding_is_wchar;
+ union {
+ char *mbs;
+ wchar_t *wcs;
+ } string;
+} XIMStringConversionText;
+
+typedef unsigned short XIMStringConversionPosition;
+
+typedef unsigned short XIMStringConversionType;
+
+#define XIMStringConversionBuffer (0x0001)
+#define XIMStringConversionLine (0x0002)
+#define XIMStringConversionWord (0x0003)
+#define XIMStringConversionChar (0x0004)
+
+typedef unsigned short XIMStringConversionOperation;
+
+#define XIMStringConversionSubstitution (0x0001)
+#define XIMStringConversionRetrieval (0x0002)
+
+typedef enum {
+ XIMForwardChar, XIMBackwardChar,
+ XIMForwardWord, XIMBackwardWord,
+ XIMCaretUp, XIMCaretDown,
+ XIMNextLine, XIMPreviousLine,
+ XIMLineStart, XIMLineEnd,
+ XIMAbsolutePosition,
+ XIMDontChange
+} XIMCaretDirection;
+
+typedef struct _XIMStringConversionCallbackStruct {
+ XIMStringConversionPosition position;
+ XIMCaretDirection direction;
+ XIMStringConversionOperation operation;
+ unsigned short factor;
+ XIMStringConversionText *text;
+} XIMStringConversionCallbackStruct;
+
+typedef struct _XIMPreeditDrawCallbackStruct {
+ int caret; /* Cursor offset within pre-edit string */
+ int chg_first; /* Starting change position */
+ int chg_length; /* Length of the change in character count */
+ XIMText *text;
+} XIMPreeditDrawCallbackStruct;
+
+typedef enum {
+ XIMIsInvisible, /* Disable caret feedback */
+ XIMIsPrimary, /* UI defined caret feedback */
+ XIMIsSecondary /* UI defined caret feedback */
+} XIMCaretStyle;
+
+typedef struct _XIMPreeditCaretCallbackStruct {
+ int position; /* Caret offset within pre-edit string */
+ XIMCaretDirection direction; /* Caret moves direction */
+ XIMCaretStyle style; /* Feedback of the caret */
+} XIMPreeditCaretCallbackStruct;
+
+typedef enum {
+ XIMTextType,
+ XIMBitmapType
+} XIMStatusDataType;
+
+typedef struct _XIMStatusDrawCallbackStruct {
+ XIMStatusDataType type;
+ union {
+ XIMText *text;
+ Pixmap bitmap;
+ } data;
+} XIMStatusDrawCallbackStruct;
+
+typedef struct _XIMHotKeyTrigger {
+ KeySym keysym;
+ int modifier;
+ int modifier_mask;
+} XIMHotKeyTrigger;
+
+typedef struct _XIMHotKeyTriggers {
+ int num_hot_key;
+ XIMHotKeyTrigger *key;
+} XIMHotKeyTriggers;
+
+typedef unsigned long XIMHotKeyState;
+
+#define XIMHotKeyStateON (0x0001L)
+#define XIMHotKeyStateOFF (0x0002L)
+
+typedef struct {
+ unsigned short count_values;
+ char **supported_values;
+} XIMValuesList;
+
+_XFUNCPROTOBEGIN
+
+#if defined(WIN32) && !defined(_XLIBINT_)
+#define _Xdebug (*_Xdebug_p)
+#endif
+
+extern int _Xdebug;
+
+extern XFontStruct *XLoadQueryFont(
+ Display* /* display */,
+ _Xconst char* /* name */
+);
+
+extern XFontStruct *XQueryFont(
+ Display* /* display */,
+ XID /* font_ID */
+);
+
+
+extern XTimeCoord *XGetMotionEvents(
+ Display* /* display */,
+ Window /* w */,
+ Time /* start */,
+ Time /* stop */,
+ int* /* nevents_return */
+);
+
+extern XModifierKeymap *XDeleteModifiermapEntry(
+ XModifierKeymap* /* modmap */,
+#if NeedWidePrototypes
+ unsigned int /* keycode_entry */,
+#else
+ KeyCode /* keycode_entry */,
+#endif
+ int /* modifier */
+);
+
+extern XModifierKeymap *XGetModifierMapping(
+ Display* /* display */
+);
+
+extern XModifierKeymap *XInsertModifiermapEntry(
+ XModifierKeymap* /* modmap */,
+#if NeedWidePrototypes
+ unsigned int /* keycode_entry */,
+#else
+ KeyCode /* keycode_entry */,
+#endif
+ int /* modifier */
+);
+
+extern XModifierKeymap *XNewModifiermap(
+ int /* max_keys_per_mod */
+);
+
+extern XImage *XCreateImage(
+ Display* /* display */,
+ Visual* /* visual */,
+ unsigned int /* depth */,
+ int /* format */,
+ int /* offset */,
+ char* /* data */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ int /* bitmap_pad */,
+ int /* bytes_per_line */
+);
+extern Status XInitImage(
+ XImage* /* image */
+);
+extern XImage *XGetImage(
+ Display* /* display */,
+ Drawable /* d */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned long /* plane_mask */,
+ int /* format */
+);
+extern XImage *XGetSubImage(
+ Display* /* display */,
+ Drawable /* d */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned long /* plane_mask */,
+ int /* format */,
+ XImage* /* dest_image */,
+ int /* dest_x */,
+ int /* dest_y */
+);
+
+/*
+ * X function declarations.
+ */
+extern Display *XOpenDisplay(
+ _Xconst char* /* display_name */
+);
+
+extern void XrmInitialize(
+ void
+);
+
+extern char *XFetchBytes(
+ Display* /* display */,
+ int* /* nbytes_return */
+);
+extern char *XFetchBuffer(
+ Display* /* display */,
+ int* /* nbytes_return */,
+ int /* buffer */
+);
+extern char *XGetAtomName(
+ Display* /* display */,
+ Atom /* atom */
+);
+extern Status XGetAtomNames(
+ Display* /* dpy */,
+ Atom* /* atoms */,
+ int /* count */,
+ char** /* names_return */
+);
+extern char *XGetDefault(
+ Display* /* display */,
+ _Xconst char* /* program */,
+ _Xconst char* /* option */
+);
+extern char *XDisplayName(
+ _Xconst char* /* string */
+);
+extern char *XKeysymToString(
+ KeySym /* keysym */
+);
+
+extern int (*XSynchronize(
+ Display* /* display */,
+ Bool /* onoff */
+))(
+ Display* /* display */
+);
+extern int (*XSetAfterFunction(
+ Display* /* display */,
+ int (*) (
+ Display* /* display */
+ ) /* procedure */
+))(
+ Display* /* display */
+);
+extern Atom XInternAtom(
+ Display* /* display */,
+ _Xconst char* /* atom_name */,
+ Bool /* only_if_exists */
+);
+extern Status XInternAtoms(
+ Display* /* dpy */,
+ char** /* names */,
+ int /* count */,
+ Bool /* onlyIfExists */,
+ Atom* /* atoms_return */
+);
+extern Colormap XCopyColormapAndFree(
+ Display* /* display */,
+ Colormap /* colormap */
+);
+extern Colormap XCreateColormap(
+ Display* /* display */,
+ Window /* w */,
+ Visual* /* visual */,
+ int /* alloc */
+);
+extern Cursor XCreatePixmapCursor(
+ Display* /* display */,
+ Pixmap /* source */,
+ Pixmap /* mask */,
+ XColor* /* foreground_color */,
+ XColor* /* background_color */,
+ unsigned int /* x */,
+ unsigned int /* y */
+);
+extern Cursor XCreateGlyphCursor(
+ Display* /* display */,
+ Font /* source_font */,
+ Font /* mask_font */,
+ unsigned int /* source_char */,
+ unsigned int /* mask_char */,
+ XColor _Xconst * /* foreground_color */,
+ XColor _Xconst * /* background_color */
+);
+extern Cursor XCreateFontCursor(
+ Display* /* display */,
+ unsigned int /* shape */
+);
+extern Font XLoadFont(
+ Display* /* display */,
+ _Xconst char* /* name */
+);
+extern GC XCreateGC(
+ Display* /* display */,
+ Drawable /* d */,
+ unsigned long /* valuemask */,
+ XGCValues* /* values */
+);
+extern GContext XGContextFromGC(
+ GC /* gc */
+);
+extern void XFlushGC(
+ Display* /* display */,
+ GC /* gc */
+);
+extern Pixmap XCreatePixmap(
+ Display* /* display */,
+ Drawable /* d */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned int /* depth */
+);
+extern Pixmap XCreateBitmapFromData(
+ Display* /* display */,
+ Drawable /* d */,
+ _Xconst char* /* data */,
+ unsigned int /* width */,
+ unsigned int /* height */
+);
+extern Pixmap XCreatePixmapFromBitmapData(
+ Display* /* display */,
+ Drawable /* d */,
+ char* /* data */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned long /* fg */,
+ unsigned long /* bg */,
+ unsigned int /* depth */
+);
+extern Window XCreateSimpleWindow(
+ Display* /* display */,
+ Window /* parent */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned int /* border_width */,
+ unsigned long /* border */,
+ unsigned long /* background */
+);
+extern Window XGetSelectionOwner(
+ Display* /* display */,
+ Atom /* selection */
+);
+extern Window XCreateWindow(
+ Display* /* display */,
+ Window /* parent */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned int /* border_width */,
+ int /* depth */,
+ unsigned int /* class */,
+ Visual* /* visual */,
+ unsigned long /* valuemask */,
+ XSetWindowAttributes* /* attributes */
+);
+extern Colormap *XListInstalledColormaps(
+ Display* /* display */,
+ Window /* w */,
+ int* /* num_return */
+);
+extern char **XListFonts(
+ Display* /* display */,
+ _Xconst char* /* pattern */,
+ int /* maxnames */,
+ int* /* actual_count_return */
+);
+extern char **XListFontsWithInfo(
+ Display* /* display */,
+ _Xconst char* /* pattern */,
+ int /* maxnames */,
+ int* /* count_return */,
+ XFontStruct** /* info_return */
+);
+extern char **XGetFontPath(
+ Display* /* display */,
+ int* /* npaths_return */
+);
+extern char **XListExtensions(
+ Display* /* display */,
+ int* /* nextensions_return */
+);
+extern Atom *XListProperties(
+ Display* /* display */,
+ Window /* w */,
+ int* /* num_prop_return */
+);
+extern XHostAddress *XListHosts(
+ Display* /* display */,
+ int* /* nhosts_return */,
+ Bool* /* state_return */
+);
+_X_DEPRECATED
+extern KeySym XKeycodeToKeysym(
+ Display* /* display */,
+#if NeedWidePrototypes
+ unsigned int /* keycode */,
+#else
+ KeyCode /* keycode */,
+#endif
+ int /* index */
+);
+extern KeySym XLookupKeysym(
+ XKeyEvent* /* key_event */,
+ int /* index */
+);
+extern KeySym *XGetKeyboardMapping(
+ Display* /* display */,
+#if NeedWidePrototypes
+ unsigned int /* first_keycode */,
+#else
+ KeyCode /* first_keycode */,
+#endif
+ int /* keycode_count */,
+ int* /* keysyms_per_keycode_return */
+);
+extern KeySym XStringToKeysym(
+ _Xconst char* /* string */
+);
+extern long XMaxRequestSize(
+ Display* /* display */
+);
+extern long XExtendedMaxRequestSize(
+ Display* /* display */
+);
+extern char *XResourceManagerString(
+ Display* /* display */
+);
+extern char *XScreenResourceString(
+ Screen* /* screen */
+);
+extern unsigned long XDisplayMotionBufferSize(
+ Display* /* display */
+);
+extern VisualID XVisualIDFromVisual(
+ Visual* /* visual */
+);
+
+/* multithread routines */
+
+extern Status XInitThreads(
+ void
+);
+
+extern void XLockDisplay(
+ Display* /* display */
+);
+
+extern void XUnlockDisplay(
+ Display* /* display */
+);
+
+/* routines for dealing with extensions */
+
+extern XExtCodes *XInitExtension(
+ Display* /* display */,
+ _Xconst char* /* name */
+);
+
+extern XExtCodes *XAddExtension(
+ Display* /* display */
+);
+extern XExtData *XFindOnExtensionList(
+ XExtData** /* structure */,
+ int /* number */
+);
+extern XExtData **XEHeadOfExtensionList(
+ XEDataObject /* object */
+);
+
+/* these are routines for which there are also macros */
+extern Window XRootWindow(
+ Display* /* display */,
+ int /* screen_number */
+);
+extern Window XDefaultRootWindow(
+ Display* /* display */
+);
+extern Window XRootWindowOfScreen(
+ Screen* /* screen */
+);
+extern Visual *XDefaultVisual(
+ Display* /* display */,
+ int /* screen_number */
+);
+extern Visual *XDefaultVisualOfScreen(
+ Screen* /* screen */
+);
+extern GC XDefaultGC(
+ Display* /* display */,
+ int /* screen_number */
+);
+extern GC XDefaultGCOfScreen(
+ Screen* /* screen */
+);
+extern unsigned long XBlackPixel(
+ Display* /* display */,
+ int /* screen_number */
+);
+extern unsigned long XWhitePixel(
+ Display* /* display */,
+ int /* screen_number */
+);
+extern unsigned long XAllPlanes(
+ void
+);
+extern unsigned long XBlackPixelOfScreen(
+ Screen* /* screen */
+);
+extern unsigned long XWhitePixelOfScreen(
+ Screen* /* screen */
+);
+extern unsigned long XNextRequest(
+ Display* /* display */
+);
+extern unsigned long XLastKnownRequestProcessed(
+ Display* /* display */
+);
+extern char *XServerVendor(
+ Display* /* display */
+);
+extern char *XDisplayString(
+ Display* /* display */
+);
+extern Colormap XDefaultColormap(
+ Display* /* display */,
+ int /* screen_number */
+);
+extern Colormap XDefaultColormapOfScreen(
+ Screen* /* screen */
+);
+extern Display *XDisplayOfScreen(
+ Screen* /* screen */
+);
+extern Screen *XScreenOfDisplay(
+ Display* /* display */,
+ int /* screen_number */
+);
+extern Screen *XDefaultScreenOfDisplay(
+ Display* /* display */
+);
+extern long XEventMaskOfScreen(
+ Screen* /* screen */
+);
+
+extern int XScreenNumberOfScreen(
+ Screen* /* screen */
+);
+
+typedef int (*XErrorHandler) ( /* WARNING, this type not in Xlib spec */
+ Display* /* display */,
+ XErrorEvent* /* error_event */
+);
+
+extern XErrorHandler XSetErrorHandler (
+ XErrorHandler /* handler */
+);
+
+
+typedef int (*XIOErrorHandler) ( /* WARNING, this type not in Xlib spec */
+ Display* /* display */
+);
+
+extern XIOErrorHandler XSetIOErrorHandler (
+ XIOErrorHandler /* handler */
+);
+
+
+extern XPixmapFormatValues *XListPixmapFormats(
+ Display* /* display */,
+ int* /* count_return */
+);
+extern int *XListDepths(
+ Display* /* display */,
+ int /* screen_number */,
+ int* /* count_return */
+);
+
+/* ICCCM routines for things that don't require special include files; */
+/* other declarations are given in Xutil.h */
+extern Status XReconfigureWMWindow(
+ Display* /* display */,
+ Window /* w */,
+ int /* screen_number */,
+ unsigned int /* mask */,
+ XWindowChanges* /* changes */
+);
+
+extern Status XGetWMProtocols(
+ Display* /* display */,
+ Window /* w */,
+ Atom** /* protocols_return */,
+ int* /* count_return */
+);
+extern Status XSetWMProtocols(
+ Display* /* display */,
+ Window /* w */,
+ Atom* /* protocols */,
+ int /* count */
+);
+extern Status XIconifyWindow(
+ Display* /* display */,
+ Window /* w */,
+ int /* screen_number */
+);
+extern Status XWithdrawWindow(
+ Display* /* display */,
+ Window /* w */,
+ int /* screen_number */
+);
+extern Status XGetCommand(
+ Display* /* display */,
+ Window /* w */,
+ char*** /* argv_return */,
+ int* /* argc_return */
+);
+extern Status XGetWMColormapWindows(
+ Display* /* display */,
+ Window /* w */,
+ Window** /* windows_return */,
+ int* /* count_return */
+);
+extern Status XSetWMColormapWindows(
+ Display* /* display */,
+ Window /* w */,
+ Window* /* colormap_windows */,
+ int /* count */
+);
+extern void XFreeStringList(
+ char** /* list */
+);
+extern int XSetTransientForHint(
+ Display* /* display */,
+ Window /* w */,
+ Window /* prop_window */
+);
+
+/* The following are given in alphabetical order */
+
+extern int XActivateScreenSaver(
+ Display* /* display */
+);
+
+extern int XAddHost(
+ Display* /* display */,
+ XHostAddress* /* host */
+);
+
+extern int XAddHosts(
+ Display* /* display */,
+ XHostAddress* /* hosts */,
+ int /* num_hosts */
+);
+
+extern int XAddToExtensionList(
+ struct _XExtData** /* structure */,
+ XExtData* /* ext_data */
+);
+
+extern int XAddToSaveSet(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern Status XAllocColor(
+ Display* /* display */,
+ Colormap /* colormap */,
+ XColor* /* screen_in_out */
+);
+
+extern Status XAllocColorCells(
+ Display* /* display */,
+ Colormap /* colormap */,
+ Bool /* contig */,
+ unsigned long* /* plane_masks_return */,
+ unsigned int /* nplanes */,
+ unsigned long* /* pixels_return */,
+ unsigned int /* npixels */
+);
+
+extern Status XAllocColorPlanes(
+ Display* /* display */,
+ Colormap /* colormap */,
+ Bool /* contig */,
+ unsigned long* /* pixels_return */,
+ int /* ncolors */,
+ int /* nreds */,
+ int /* ngreens */,
+ int /* nblues */,
+ unsigned long* /* rmask_return */,
+ unsigned long* /* gmask_return */,
+ unsigned long* /* bmask_return */
+);
+
+extern Status XAllocNamedColor(
+ Display* /* display */,
+ Colormap /* colormap */,
+ _Xconst char* /* color_name */,
+ XColor* /* screen_def_return */,
+ XColor* /* exact_def_return */
+);
+
+extern int XAllowEvents(
+ Display* /* display */,
+ int /* event_mode */,
+ Time /* time */
+);
+
+extern int XAutoRepeatOff(
+ Display* /* display */
+);
+
+extern int XAutoRepeatOn(
+ Display* /* display */
+);
+
+extern int XBell(
+ Display* /* display */,
+ int /* percent */
+);
+
+extern int XBitmapBitOrder(
+ Display* /* display */
+);
+
+extern int XBitmapPad(
+ Display* /* display */
+);
+
+extern int XBitmapUnit(
+ Display* /* display */
+);
+
+extern int XCellsOfScreen(
+ Screen* /* screen */
+);
+
+extern int XChangeActivePointerGrab(
+ Display* /* display */,
+ unsigned int /* event_mask */,
+ Cursor /* cursor */,
+ Time /* time */
+);
+
+extern int XChangeGC(
+ Display* /* display */,
+ GC /* gc */,
+ unsigned long /* valuemask */,
+ XGCValues* /* values */
+);
+
+extern int XChangeKeyboardControl(
+ Display* /* display */,
+ unsigned long /* value_mask */,
+ XKeyboardControl* /* values */
+);
+
+extern int XChangeKeyboardMapping(
+ Display* /* display */,
+ int /* first_keycode */,
+ int /* keysyms_per_keycode */,
+ KeySym* /* keysyms */,
+ int /* num_codes */
+);
+
+extern int XChangePointerControl(
+ Display* /* display */,
+ Bool /* do_accel */,
+ Bool /* do_threshold */,
+ int /* accel_numerator */,
+ int /* accel_denominator */,
+ int /* threshold */
+);
+
+extern int XChangeProperty(
+ Display* /* display */,
+ Window /* w */,
+ Atom /* property */,
+ Atom /* type */,
+ int /* format */,
+ int /* mode */,
+ _Xconst unsigned char* /* data */,
+ int /* nelements */
+);
+
+extern int XChangeSaveSet(
+ Display* /* display */,
+ Window /* w */,
+ int /* change_mode */
+);
+
+extern int XChangeWindowAttributes(
+ Display* /* display */,
+ Window /* w */,
+ unsigned long /* valuemask */,
+ XSetWindowAttributes* /* attributes */
+);
+
+extern Bool XCheckIfEvent(
+ Display* /* display */,
+ XEvent* /* event_return */,
+ Bool (*) (
+ Display* /* display */,
+ XEvent* /* event */,
+ XPointer /* arg */
+ ) /* predicate */,
+ XPointer /* arg */
+);
+
+extern Bool XCheckMaskEvent(
+ Display* /* display */,
+ long /* event_mask */,
+ XEvent* /* event_return */
+);
+
+extern Bool XCheckTypedEvent(
+ Display* /* display */,
+ int /* event_type */,
+ XEvent* /* event_return */
+);
+
+extern Bool XCheckTypedWindowEvent(
+ Display* /* display */,
+ Window /* w */,
+ int /* event_type */,
+ XEvent* /* event_return */
+);
+
+extern Bool XCheckWindowEvent(
+ Display* /* display */,
+ Window /* w */,
+ long /* event_mask */,
+ XEvent* /* event_return */
+);
+
+extern int XCirculateSubwindows(
+ Display* /* display */,
+ Window /* w */,
+ int /* direction */
+);
+
+extern int XCirculateSubwindowsDown(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XCirculateSubwindowsUp(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XClearArea(
+ Display* /* display */,
+ Window /* w */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ Bool /* exposures */
+);
+
+extern int XClearWindow(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XCloseDisplay(
+ Display* /* display */
+);
+
+extern int XConfigureWindow(
+ Display* /* display */,
+ Window /* w */,
+ unsigned int /* value_mask */,
+ XWindowChanges* /* values */
+);
+
+extern int XConnectionNumber(
+ Display* /* display */
+);
+
+extern int XConvertSelection(
+ Display* /* display */,
+ Atom /* selection */,
+ Atom /* target */,
+ Atom /* property */,
+ Window /* requestor */,
+ Time /* time */
+);
+
+extern int XCopyArea(
+ Display* /* display */,
+ Drawable /* src */,
+ Drawable /* dest */,
+ GC /* gc */,
+ int /* src_x */,
+ int /* src_y */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ int /* dest_x */,
+ int /* dest_y */
+);
+
+extern int XCopyGC(
+ Display* /* display */,
+ GC /* src */,
+ unsigned long /* valuemask */,
+ GC /* dest */
+);
+
+extern int XCopyPlane(
+ Display* /* display */,
+ Drawable /* src */,
+ Drawable /* dest */,
+ GC /* gc */,
+ int /* src_x */,
+ int /* src_y */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ int /* dest_x */,
+ int /* dest_y */,
+ unsigned long /* plane */
+);
+
+extern int XDefaultDepth(
+ Display* /* display */,
+ int /* screen_number */
+);
+
+extern int XDefaultDepthOfScreen(
+ Screen* /* screen */
+);
+
+extern int XDefaultScreen(
+ Display* /* display */
+);
+
+extern int XDefineCursor(
+ Display* /* display */,
+ Window /* w */,
+ Cursor /* cursor */
+);
+
+extern int XDeleteProperty(
+ Display* /* display */,
+ Window /* w */,
+ Atom /* property */
+);
+
+extern int XDestroyWindow(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XDestroySubwindows(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XDoesBackingStore(
+ Screen* /* screen */
+);
+
+extern Bool XDoesSaveUnders(
+ Screen* /* screen */
+);
+
+extern int XDisableAccessControl(
+ Display* /* display */
+);
+
+
+extern int XDisplayCells(
+ Display* /* display */,
+ int /* screen_number */
+);
+
+extern int XDisplayHeight(
+ Display* /* display */,
+ int /* screen_number */
+);
+
+extern int XDisplayHeightMM(
+ Display* /* display */,
+ int /* screen_number */
+);
+
+extern int XDisplayKeycodes(
+ Display* /* display */,
+ int* /* min_keycodes_return */,
+ int* /* max_keycodes_return */
+);
+
+extern int XDisplayPlanes(
+ Display* /* display */,
+ int /* screen_number */
+);
+
+extern int XDisplayWidth(
+ Display* /* display */,
+ int /* screen_number */
+);
+
+extern int XDisplayWidthMM(
+ Display* /* display */,
+ int /* screen_number */
+);
+
+extern int XDrawArc(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ int /* angle1 */,
+ int /* angle2 */
+);
+
+extern int XDrawArcs(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ XArc* /* arcs */,
+ int /* narcs */
+);
+
+extern int XDrawImageString(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst char* /* string */,
+ int /* length */
+);
+
+extern int XDrawImageString16(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst XChar2b* /* string */,
+ int /* length */
+);
+
+extern int XDrawLine(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x1 */,
+ int /* y1 */,
+ int /* x2 */,
+ int /* y2 */
+);
+
+extern int XDrawLines(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ XPoint* /* points */,
+ int /* npoints */,
+ int /* mode */
+);
+
+extern int XDrawPoint(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */
+);
+
+extern int XDrawPoints(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ XPoint* /* points */,
+ int /* npoints */,
+ int /* mode */
+);
+
+extern int XDrawRectangle(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */
+);
+
+extern int XDrawRectangles(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ XRectangle* /* rectangles */,
+ int /* nrectangles */
+);
+
+extern int XDrawSegments(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ XSegment* /* segments */,
+ int /* nsegments */
+);
+
+extern int XDrawString(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst char* /* string */,
+ int /* length */
+);
+
+extern int XDrawString16(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst XChar2b* /* string */,
+ int /* length */
+);
+
+extern int XDrawText(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ XTextItem* /* items */,
+ int /* nitems */
+);
+
+extern int XDrawText16(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ XTextItem16* /* items */,
+ int /* nitems */
+);
+
+extern int XEnableAccessControl(
+ Display* /* display */
+);
+
+extern int XEventsQueued(
+ Display* /* display */,
+ int /* mode */
+);
+
+extern Status XFetchName(
+ Display* /* display */,
+ Window /* w */,
+ char** /* window_name_return */
+);
+
+extern int XFillArc(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ int /* angle1 */,
+ int /* angle2 */
+);
+
+extern int XFillArcs(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ XArc* /* arcs */,
+ int /* narcs */
+);
+
+extern int XFillPolygon(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ XPoint* /* points */,
+ int /* npoints */,
+ int /* shape */,
+ int /* mode */
+);
+
+extern int XFillRectangle(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */
+);
+
+extern int XFillRectangles(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ XRectangle* /* rectangles */,
+ int /* nrectangles */
+);
+
+extern int XFlush(
+ Display* /* display */
+);
+
+extern int XForceScreenSaver(
+ Display* /* display */,
+ int /* mode */
+);
+
+extern int XFree(
+ void* /* data */
+);
+
+extern int XFreeColormap(
+ Display* /* display */,
+ Colormap /* colormap */
+);
+
+extern int XFreeColors(
+ Display* /* display */,
+ Colormap /* colormap */,
+ unsigned long* /* pixels */,
+ int /* npixels */,
+ unsigned long /* planes */
+);
+
+extern int XFreeCursor(
+ Display* /* display */,
+ Cursor /* cursor */
+);
+
+extern int XFreeExtensionList(
+ char** /* list */
+);
+
+extern int XFreeFont(
+ Display* /* display */,
+ XFontStruct* /* font_struct */
+);
+
+extern int XFreeFontInfo(
+ char** /* names */,
+ XFontStruct* /* free_info */,
+ int /* actual_count */
+);
+
+extern int XFreeFontNames(
+ char** /* list */
+);
+
+extern int XFreeFontPath(
+ char** /* list */
+);
+
+extern int XFreeGC(
+ Display* /* display */,
+ GC /* gc */
+);
+
+extern int XFreeModifiermap(
+ XModifierKeymap* /* modmap */
+);
+
+extern int XFreePixmap(
+ Display* /* display */,
+ Pixmap /* pixmap */
+);
+
+extern int XGeometry(
+ Display* /* display */,
+ int /* screen */,
+ _Xconst char* /* position */,
+ _Xconst char* /* default_position */,
+ unsigned int /* bwidth */,
+ unsigned int /* fwidth */,
+ unsigned int /* fheight */,
+ int /* xadder */,
+ int /* yadder */,
+ int* /* x_return */,
+ int* /* y_return */,
+ int* /* width_return */,
+ int* /* height_return */
+);
+
+extern int XGetErrorDatabaseText(
+ Display* /* display */,
+ _Xconst char* /* name */,
+ _Xconst char* /* message */,
+ _Xconst char* /* default_string */,
+ char* /* buffer_return */,
+ int /* length */
+);
+
+extern int XGetErrorText(
+ Display* /* display */,
+ int /* code */,
+ char* /* buffer_return */,
+ int /* length */
+);
+
+extern Bool XGetFontProperty(
+ XFontStruct* /* font_struct */,
+ Atom /* atom */,
+ unsigned long* /* value_return */
+);
+
+extern Status XGetGCValues(
+ Display* /* display */,
+ GC /* gc */,
+ unsigned long /* valuemask */,
+ XGCValues* /* values_return */
+);
+
+extern Status XGetGeometry(
+ Display* /* display */,
+ Drawable /* d */,
+ Window* /* root_return */,
+ int* /* x_return */,
+ int* /* y_return */,
+ unsigned int* /* width_return */,
+ unsigned int* /* height_return */,
+ unsigned int* /* border_width_return */,
+ unsigned int* /* depth_return */
+);
+
+extern Status XGetIconName(
+ Display* /* display */,
+ Window /* w */,
+ char** /* icon_name_return */
+);
+
+extern int XGetInputFocus(
+ Display* /* display */,
+ Window* /* focus_return */,
+ int* /* revert_to_return */
+);
+
+extern int XGetKeyboardControl(
+ Display* /* display */,
+ XKeyboardState* /* values_return */
+);
+
+extern int XGetPointerControl(
+ Display* /* display */,
+ int* /* accel_numerator_return */,
+ int* /* accel_denominator_return */,
+ int* /* threshold_return */
+);
+
+extern int XGetPointerMapping(
+ Display* /* display */,
+ unsigned char* /* map_return */,
+ int /* nmap */
+);
+
+extern int XGetScreenSaver(
+ Display* /* display */,
+ int* /* timeout_return */,
+ int* /* interval_return */,
+ int* /* prefer_blanking_return */,
+ int* /* allow_exposures_return */
+);
+
+extern Status XGetTransientForHint(
+ Display* /* display */,
+ Window /* w */,
+ Window* /* prop_window_return */
+);
+
+extern int XGetWindowProperty(
+ Display* /* display */,
+ Window /* w */,
+ Atom /* property */,
+ long /* long_offset */,
+ long /* long_length */,
+ Bool /* delete */,
+ Atom /* req_type */,
+ Atom* /* actual_type_return */,
+ int* /* actual_format_return */,
+ unsigned long* /* nitems_return */,
+ unsigned long* /* bytes_after_return */,
+ unsigned char** /* prop_return */
+);
+
+extern Status XGetWindowAttributes(
+ Display* /* display */,
+ Window /* w */,
+ XWindowAttributes* /* window_attributes_return */
+);
+
+extern int XGrabButton(
+ Display* /* display */,
+ unsigned int /* button */,
+ unsigned int /* modifiers */,
+ Window /* grab_window */,
+ Bool /* owner_events */,
+ unsigned int /* event_mask */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */,
+ Window /* confine_to */,
+ Cursor /* cursor */
+);
+
+extern int XGrabKey(
+ Display* /* display */,
+ int /* keycode */,
+ unsigned int /* modifiers */,
+ Window /* grab_window */,
+ Bool /* owner_events */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */
+);
+
+extern int XGrabKeyboard(
+ Display* /* display */,
+ Window /* grab_window */,
+ Bool /* owner_events */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */,
+ Time /* time */
+);
+
+extern int XGrabPointer(
+ Display* /* display */,
+ Window /* grab_window */,
+ Bool /* owner_events */,
+ unsigned int /* event_mask */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */,
+ Window /* confine_to */,
+ Cursor /* cursor */,
+ Time /* time */
+);
+
+extern int XGrabServer(
+ Display* /* display */
+);
+
+extern int XHeightMMOfScreen(
+ Screen* /* screen */
+);
+
+extern int XHeightOfScreen(
+ Screen* /* screen */
+);
+
+extern int XIfEvent(
+ Display* /* display */,
+ XEvent* /* event_return */,
+ Bool (*) (
+ Display* /* display */,
+ XEvent* /* event */,
+ XPointer /* arg */
+ ) /* predicate */,
+ XPointer /* arg */
+);
+
+extern int XImageByteOrder(
+ Display* /* display */
+);
+
+extern int XInstallColormap(
+ Display* /* display */,
+ Colormap /* colormap */
+);
+
+extern KeyCode XKeysymToKeycode(
+ Display* /* display */,
+ KeySym /* keysym */
+);
+
+extern int XKillClient(
+ Display* /* display */,
+ XID /* resource */
+);
+
+extern Status XLookupColor(
+ Display* /* display */,
+ Colormap /* colormap */,
+ _Xconst char* /* color_name */,
+ XColor* /* exact_def_return */,
+ XColor* /* screen_def_return */
+);
+
+extern int XLowerWindow(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XMapRaised(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XMapSubwindows(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XMapWindow(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XMaskEvent(
+ Display* /* display */,
+ long /* event_mask */,
+ XEvent* /* event_return */
+);
+
+extern int XMaxCmapsOfScreen(
+ Screen* /* screen */
+);
+
+extern int XMinCmapsOfScreen(
+ Screen* /* screen */
+);
+
+extern int XMoveResizeWindow(
+ Display* /* display */,
+ Window /* w */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */
+);
+
+extern int XMoveWindow(
+ Display* /* display */,
+ Window /* w */,
+ int /* x */,
+ int /* y */
+);
+
+extern int XNextEvent(
+ Display* /* display */,
+ XEvent* /* event_return */
+);
+
+extern int XNoOp(
+ Display* /* display */
+);
+
+extern Status XParseColor(
+ Display* /* display */,
+ Colormap /* colormap */,
+ _Xconst char* /* spec */,
+ XColor* /* exact_def_return */
+);
+
+extern int XParseGeometry(
+ _Xconst char* /* parsestring */,
+ int* /* x_return */,
+ int* /* y_return */,
+ unsigned int* /* width_return */,
+ unsigned int* /* height_return */
+);
+
+extern int XPeekEvent(
+ Display* /* display */,
+ XEvent* /* event_return */
+);
+
+extern int XPeekIfEvent(
+ Display* /* display */,
+ XEvent* /* event_return */,
+ Bool (*) (
+ Display* /* display */,
+ XEvent* /* event */,
+ XPointer /* arg */
+ ) /* predicate */,
+ XPointer /* arg */
+);
+
+extern int XPending(
+ Display* /* display */
+);
+
+extern int XPlanesOfScreen(
+ Screen* /* screen */
+);
+
+extern int XProtocolRevision(
+ Display* /* display */
+);
+
+extern int XProtocolVersion(
+ Display* /* display */
+);
+
+
+extern int XPutBackEvent(
+ Display* /* display */,
+ XEvent* /* event */
+);
+
+extern int XPutImage(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ XImage* /* image */,
+ int /* src_x */,
+ int /* src_y */,
+ int /* dest_x */,
+ int /* dest_y */,
+ unsigned int /* width */,
+ unsigned int /* height */
+);
+
+extern int XQLength(
+ Display* /* display */
+);
+
+extern Status XQueryBestCursor(
+ Display* /* display */,
+ Drawable /* d */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned int* /* width_return */,
+ unsigned int* /* height_return */
+);
+
+extern Status XQueryBestSize(
+ Display* /* display */,
+ int /* class */,
+ Drawable /* which_screen */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned int* /* width_return */,
+ unsigned int* /* height_return */
+);
+
+extern Status XQueryBestStipple(
+ Display* /* display */,
+ Drawable /* which_screen */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned int* /* width_return */,
+ unsigned int* /* height_return */
+);
+
+extern Status XQueryBestTile(
+ Display* /* display */,
+ Drawable /* which_screen */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ unsigned int* /* width_return */,
+ unsigned int* /* height_return */
+);
+
+extern int XQueryColor(
+ Display* /* display */,
+ Colormap /* colormap */,
+ XColor* /* def_in_out */
+);
+
+extern int XQueryColors(
+ Display* /* display */,
+ Colormap /* colormap */,
+ XColor* /* defs_in_out */,
+ int /* ncolors */
+);
+
+extern Bool XQueryExtension(
+ Display* /* display */,
+ _Xconst char* /* name */,
+ int* /* major_opcode_return */,
+ int* /* first_event_return */,
+ int* /* first_error_return */
+);
+
+extern int XQueryKeymap(
+ Display* /* display */,
+ char [32] /* keys_return */
+);
+
+extern Bool XQueryPointer(
+ Display* /* display */,
+ Window /* w */,
+ Window* /* root_return */,
+ Window* /* child_return */,
+ int* /* root_x_return */,
+ int* /* root_y_return */,
+ int* /* win_x_return */,
+ int* /* win_y_return */,
+ unsigned int* /* mask_return */
+);
+
+extern int XQueryTextExtents(
+ Display* /* display */,
+ XID /* font_ID */,
+ _Xconst char* /* string */,
+ int /* nchars */,
+ int* /* direction_return */,
+ int* /* font_ascent_return */,
+ int* /* font_descent_return */,
+ XCharStruct* /* overall_return */
+);
+
+extern int XQueryTextExtents16(
+ Display* /* display */,
+ XID /* font_ID */,
+ _Xconst XChar2b* /* string */,
+ int /* nchars */,
+ int* /* direction_return */,
+ int* /* font_ascent_return */,
+ int* /* font_descent_return */,
+ XCharStruct* /* overall_return */
+);
+
+extern Status XQueryTree(
+ Display* /* display */,
+ Window /* w */,
+ Window* /* root_return */,
+ Window* /* parent_return */,
+ Window** /* children_return */,
+ unsigned int* /* nchildren_return */
+);
+
+extern int XRaiseWindow(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XReadBitmapFile(
+ Display* /* display */,
+ Drawable /* d */,
+ _Xconst char* /* filename */,
+ unsigned int* /* width_return */,
+ unsigned int* /* height_return */,
+ Pixmap* /* bitmap_return */,
+ int* /* x_hot_return */,
+ int* /* y_hot_return */
+);
+
+extern int XReadBitmapFileData(
+ _Xconst char* /* filename */,
+ unsigned int* /* width_return */,
+ unsigned int* /* height_return */,
+ unsigned char** /* data_return */,
+ int* /* x_hot_return */,
+ int* /* y_hot_return */
+);
+
+extern int XRebindKeysym(
+ Display* /* display */,
+ KeySym /* keysym */,
+ KeySym* /* list */,
+ int /* mod_count */,
+ _Xconst unsigned char* /* string */,
+ int /* bytes_string */
+);
+
+extern int XRecolorCursor(
+ Display* /* display */,
+ Cursor /* cursor */,
+ XColor* /* foreground_color */,
+ XColor* /* background_color */
+);
+
+extern int XRefreshKeyboardMapping(
+ XMappingEvent* /* event_map */
+);
+
+extern int XRemoveFromSaveSet(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XRemoveHost(
+ Display* /* display */,
+ XHostAddress* /* host */
+);
+
+extern int XRemoveHosts(
+ Display* /* display */,
+ XHostAddress* /* hosts */,
+ int /* num_hosts */
+);
+
+extern int XReparentWindow(
+ Display* /* display */,
+ Window /* w */,
+ Window /* parent */,
+ int /* x */,
+ int /* y */
+);
+
+extern int XResetScreenSaver(
+ Display* /* display */
+);
+
+extern int XResizeWindow(
+ Display* /* display */,
+ Window /* w */,
+ unsigned int /* width */,
+ unsigned int /* height */
+);
+
+extern int XRestackWindows(
+ Display* /* display */,
+ Window* /* windows */,
+ int /* nwindows */
+);
+
+extern int XRotateBuffers(
+ Display* /* display */,
+ int /* rotate */
+);
+
+extern int XRotateWindowProperties(
+ Display* /* display */,
+ Window /* w */,
+ Atom* /* properties */,
+ int /* num_prop */,
+ int /* npositions */
+);
+
+extern int XScreenCount(
+ Display* /* display */
+);
+
+extern int XSelectInput(
+ Display* /* display */,
+ Window /* w */,
+ long /* event_mask */
+);
+
+extern Status XSendEvent(
+ Display* /* display */,
+ Window /* w */,
+ Bool /* propagate */,
+ long /* event_mask */,
+ XEvent* /* event_send */
+);
+
+extern int XSetAccessControl(
+ Display* /* display */,
+ int /* mode */
+);
+
+extern int XSetArcMode(
+ Display* /* display */,
+ GC /* gc */,
+ int /* arc_mode */
+);
+
+extern int XSetBackground(
+ Display* /* display */,
+ GC /* gc */,
+ unsigned long /* background */
+);
+
+extern int XSetClipMask(
+ Display* /* display */,
+ GC /* gc */,
+ Pixmap /* pixmap */
+);
+
+extern int XSetClipOrigin(
+ Display* /* display */,
+ GC /* gc */,
+ int /* clip_x_origin */,
+ int /* clip_y_origin */
+);
+
+extern int XSetClipRectangles(
+ Display* /* display */,
+ GC /* gc */,
+ int /* clip_x_origin */,
+ int /* clip_y_origin */,
+ XRectangle* /* rectangles */,
+ int /* n */,
+ int /* ordering */
+);
+
+extern int XSetCloseDownMode(
+ Display* /* display */,
+ int /* close_mode */
+);
+
+extern int XSetCommand(
+ Display* /* display */,
+ Window /* w */,
+ char** /* argv */,
+ int /* argc */
+);
+
+extern int XSetDashes(
+ Display* /* display */,
+ GC /* gc */,
+ int /* dash_offset */,
+ _Xconst char* /* dash_list */,
+ int /* n */
+);
+
+extern int XSetFillRule(
+ Display* /* display */,
+ GC /* gc */,
+ int /* fill_rule */
+);
+
+extern int XSetFillStyle(
+ Display* /* display */,
+ GC /* gc */,
+ int /* fill_style */
+);
+
+extern int XSetFont(
+ Display* /* display */,
+ GC /* gc */,
+ Font /* font */
+);
+
+extern int XSetFontPath(
+ Display* /* display */,
+ char** /* directories */,
+ int /* ndirs */
+);
+
+extern int XSetForeground(
+ Display* /* display */,
+ GC /* gc */,
+ unsigned long /* foreground */
+);
+
+extern int XSetFunction(
+ Display* /* display */,
+ GC /* gc */,
+ int /* function */
+);
+
+extern int XSetGraphicsExposures(
+ Display* /* display */,
+ GC /* gc */,
+ Bool /* graphics_exposures */
+);
+
+extern int XSetIconName(
+ Display* /* display */,
+ Window /* w */,
+ _Xconst char* /* icon_name */
+);
+
+extern int XSetInputFocus(
+ Display* /* display */,
+ Window /* focus */,
+ int /* revert_to */,
+ Time /* time */
+);
+
+extern int XSetLineAttributes(
+ Display* /* display */,
+ GC /* gc */,
+ unsigned int /* line_width */,
+ int /* line_style */,
+ int /* cap_style */,
+ int /* join_style */
+);
+
+extern int XSetModifierMapping(
+ Display* /* display */,
+ XModifierKeymap* /* modmap */
+);
+
+extern int XSetPlaneMask(
+ Display* /* display */,
+ GC /* gc */,
+ unsigned long /* plane_mask */
+);
+
+extern int XSetPointerMapping(
+ Display* /* display */,
+ _Xconst unsigned char* /* map */,
+ int /* nmap */
+);
+
+extern int XSetScreenSaver(
+ Display* /* display */,
+ int /* timeout */,
+ int /* interval */,
+ int /* prefer_blanking */,
+ int /* allow_exposures */
+);
+
+extern int XSetSelectionOwner(
+ Display* /* display */,
+ Atom /* selection */,
+ Window /* owner */,
+ Time /* time */
+);
+
+extern int XSetState(
+ Display* /* display */,
+ GC /* gc */,
+ unsigned long /* foreground */,
+ unsigned long /* background */,
+ int /* function */,
+ unsigned long /* plane_mask */
+);
+
+extern int XSetStipple(
+ Display* /* display */,
+ GC /* gc */,
+ Pixmap /* stipple */
+);
+
+extern int XSetSubwindowMode(
+ Display* /* display */,
+ GC /* gc */,
+ int /* subwindow_mode */
+);
+
+extern int XSetTSOrigin(
+ Display* /* display */,
+ GC /* gc */,
+ int /* ts_x_origin */,
+ int /* ts_y_origin */
+);
+
+extern int XSetTile(
+ Display* /* display */,
+ GC /* gc */,
+ Pixmap /* tile */
+);
+
+extern int XSetWindowBackground(
+ Display* /* display */,
+ Window /* w */,
+ unsigned long /* background_pixel */
+);
+
+extern int XSetWindowBackgroundPixmap(
+ Display* /* display */,
+ Window /* w */,
+ Pixmap /* background_pixmap */
+);
+
+extern int XSetWindowBorder(
+ Display* /* display */,
+ Window /* w */,
+ unsigned long /* border_pixel */
+);
+
+extern int XSetWindowBorderPixmap(
+ Display* /* display */,
+ Window /* w */,
+ Pixmap /* border_pixmap */
+);
+
+extern int XSetWindowBorderWidth(
+ Display* /* display */,
+ Window /* w */,
+ unsigned int /* width */
+);
+
+extern int XSetWindowColormap(
+ Display* /* display */,
+ Window /* w */,
+ Colormap /* colormap */
+);
+
+extern int XStoreBuffer(
+ Display* /* display */,
+ _Xconst char* /* bytes */,
+ int /* nbytes */,
+ int /* buffer */
+);
+
+extern int XStoreBytes(
+ Display* /* display */,
+ _Xconst char* /* bytes */,
+ int /* nbytes */
+);
+
+extern int XStoreColor(
+ Display* /* display */,
+ Colormap /* colormap */,
+ XColor* /* color */
+);
+
+extern int XStoreColors(
+ Display* /* display */,
+ Colormap /* colormap */,
+ XColor* /* color */,
+ int /* ncolors */
+);
+
+extern int XStoreName(
+ Display* /* display */,
+ Window /* w */,
+ _Xconst char* /* window_name */
+);
+
+extern int XStoreNamedColor(
+ Display* /* display */,
+ Colormap /* colormap */,
+ _Xconst char* /* color */,
+ unsigned long /* pixel */,
+ int /* flags */
+);
+
+extern int XSync(
+ Display* /* display */,
+ Bool /* discard */
+);
+
+extern int XTextExtents(
+ XFontStruct* /* font_struct */,
+ _Xconst char* /* string */,
+ int /* nchars */,
+ int* /* direction_return */,
+ int* /* font_ascent_return */,
+ int* /* font_descent_return */,
+ XCharStruct* /* overall_return */
+);
+
+extern int XTextExtents16(
+ XFontStruct* /* font_struct */,
+ _Xconst XChar2b* /* string */,
+ int /* nchars */,
+ int* /* direction_return */,
+ int* /* font_ascent_return */,
+ int* /* font_descent_return */,
+ XCharStruct* /* overall_return */
+);
+
+extern int XTextWidth(
+ XFontStruct* /* font_struct */,
+ _Xconst char* /* string */,
+ int /* count */
+);
+
+extern int XTextWidth16(
+ XFontStruct* /* font_struct */,
+ _Xconst XChar2b* /* string */,
+ int /* count */
+);
+
+extern Bool XTranslateCoordinates(
+ Display* /* display */,
+ Window /* src_w */,
+ Window /* dest_w */,
+ int /* src_x */,
+ int /* src_y */,
+ int* /* dest_x_return */,
+ int* /* dest_y_return */,
+ Window* /* child_return */
+);
+
+extern int XUndefineCursor(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XUngrabButton(
+ Display* /* display */,
+ unsigned int /* button */,
+ unsigned int /* modifiers */,
+ Window /* grab_window */
+);
+
+extern int XUngrabKey(
+ Display* /* display */,
+ int /* keycode */,
+ unsigned int /* modifiers */,
+ Window /* grab_window */
+);
+
+extern int XUngrabKeyboard(
+ Display* /* display */,
+ Time /* time */
+);
+
+extern int XUngrabPointer(
+ Display* /* display */,
+ Time /* time */
+);
+
+extern int XUngrabServer(
+ Display* /* display */
+);
+
+extern int XUninstallColormap(
+ Display* /* display */,
+ Colormap /* colormap */
+);
+
+extern int XUnloadFont(
+ Display* /* display */,
+ Font /* font */
+);
+
+extern int XUnmapSubwindows(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XUnmapWindow(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern int XVendorRelease(
+ Display* /* display */
+);
+
+extern int XWarpPointer(
+ Display* /* display */,
+ Window /* src_w */,
+ Window /* dest_w */,
+ int /* src_x */,
+ int /* src_y */,
+ unsigned int /* src_width */,
+ unsigned int /* src_height */,
+ int /* dest_x */,
+ int /* dest_y */
+);
+
+extern int XWidthMMOfScreen(
+ Screen* /* screen */
+);
+
+extern int XWidthOfScreen(
+ Screen* /* screen */
+);
+
+extern int XWindowEvent(
+ Display* /* display */,
+ Window /* w */,
+ long /* event_mask */,
+ XEvent* /* event_return */
+);
+
+extern int XWriteBitmapFile(
+ Display* /* display */,
+ _Xconst char* /* filename */,
+ Pixmap /* bitmap */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ int /* x_hot */,
+ int /* y_hot */
+);
+
+extern Bool XSupportsLocale (void);
+
+extern char *XSetLocaleModifiers(
+ const char* /* modifier_list */
+);
+
+extern XOM XOpenOM(
+ Display* /* display */,
+ struct _XrmHashBucketRec* /* rdb */,
+ _Xconst char* /* res_name */,
+ _Xconst char* /* res_class */
+);
+
+extern Status XCloseOM(
+ XOM /* om */
+);
+
+extern char *XSetOMValues(
+ XOM /* om */,
+ ...
+) _X_SENTINEL(0);
+
+extern char *XGetOMValues(
+ XOM /* om */,
+ ...
+) _X_SENTINEL(0);
+
+extern Display *XDisplayOfOM(
+ XOM /* om */
+);
+
+extern char *XLocaleOfOM(
+ XOM /* om */
+);
+
+extern XOC XCreateOC(
+ XOM /* om */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XDestroyOC(
+ XOC /* oc */
+);
+
+extern XOM XOMOfOC(
+ XOC /* oc */
+);
+
+extern char *XSetOCValues(
+ XOC /* oc */,
+ ...
+) _X_SENTINEL(0);
+
+extern char *XGetOCValues(
+ XOC /* oc */,
+ ...
+) _X_SENTINEL(0);
+
+extern XFontSet XCreateFontSet(
+ Display* /* display */,
+ _Xconst char* /* base_font_name_list */,
+ char*** /* missing_charset_list */,
+ int* /* missing_charset_count */,
+ char** /* def_string */
+);
+
+extern void XFreeFontSet(
+ Display* /* display */,
+ XFontSet /* font_set */
+);
+
+extern int XFontsOfFontSet(
+ XFontSet /* font_set */,
+ XFontStruct*** /* font_struct_list */,
+ char*** /* font_name_list */
+);
+
+extern char *XBaseFontNameListOfFontSet(
+ XFontSet /* font_set */
+);
+
+extern char *XLocaleOfFontSet(
+ XFontSet /* font_set */
+);
+
+extern Bool XContextDependentDrawing(
+ XFontSet /* font_set */
+);
+
+extern Bool XDirectionalDependentDrawing(
+ XFontSet /* font_set */
+);
+
+extern Bool XContextualDrawing(
+ XFontSet /* font_set */
+);
+
+extern XFontSetExtents *XExtentsOfFontSet(
+ XFontSet /* font_set */
+);
+
+extern int XmbTextEscapement(
+ XFontSet /* font_set */,
+ _Xconst char* /* text */,
+ int /* bytes_text */
+);
+
+extern int XwcTextEscapement(
+ XFontSet /* font_set */,
+ _Xconst wchar_t* /* text */,
+ int /* num_wchars */
+);
+
+extern int Xutf8TextEscapement(
+ XFontSet /* font_set */,
+ _Xconst char* /* text */,
+ int /* bytes_text */
+);
+
+extern int XmbTextExtents(
+ XFontSet /* font_set */,
+ _Xconst char* /* text */,
+ int /* bytes_text */,
+ XRectangle* /* overall_ink_return */,
+ XRectangle* /* overall_logical_return */
+);
+
+extern int XwcTextExtents(
+ XFontSet /* font_set */,
+ _Xconst wchar_t* /* text */,
+ int /* num_wchars */,
+ XRectangle* /* overall_ink_return */,
+ XRectangle* /* overall_logical_return */
+);
+
+extern int Xutf8TextExtents(
+ XFontSet /* font_set */,
+ _Xconst char* /* text */,
+ int /* bytes_text */,
+ XRectangle* /* overall_ink_return */,
+ XRectangle* /* overall_logical_return */
+);
+
+extern Status XmbTextPerCharExtents(
+ XFontSet /* font_set */,
+ _Xconst char* /* text */,
+ int /* bytes_text */,
+ XRectangle* /* ink_extents_buffer */,
+ XRectangle* /* logical_extents_buffer */,
+ int /* buffer_size */,
+ int* /* num_chars */,
+ XRectangle* /* overall_ink_return */,
+ XRectangle* /* overall_logical_return */
+);
+
+extern Status XwcTextPerCharExtents(
+ XFontSet /* font_set */,
+ _Xconst wchar_t* /* text */,
+ int /* num_wchars */,
+ XRectangle* /* ink_extents_buffer */,
+ XRectangle* /* logical_extents_buffer */,
+ int /* buffer_size */,
+ int* /* num_chars */,
+ XRectangle* /* overall_ink_return */,
+ XRectangle* /* overall_logical_return */
+);
+
+extern Status Xutf8TextPerCharExtents(
+ XFontSet /* font_set */,
+ _Xconst char* /* text */,
+ int /* bytes_text */,
+ XRectangle* /* ink_extents_buffer */,
+ XRectangle* /* logical_extents_buffer */,
+ int /* buffer_size */,
+ int* /* num_chars */,
+ XRectangle* /* overall_ink_return */,
+ XRectangle* /* overall_logical_return */
+);
+
+extern void XmbDrawText(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ XmbTextItem* /* text_items */,
+ int /* nitems */
+);
+
+extern void XwcDrawText(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ XwcTextItem* /* text_items */,
+ int /* nitems */
+);
+
+extern void Xutf8DrawText(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ XmbTextItem* /* text_items */,
+ int /* nitems */
+);
+
+extern void XmbDrawString(
+ Display* /* display */,
+ Drawable /* d */,
+ XFontSet /* font_set */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst char* /* text */,
+ int /* bytes_text */
+);
+
+extern void XwcDrawString(
+ Display* /* display */,
+ Drawable /* d */,
+ XFontSet /* font_set */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst wchar_t* /* text */,
+ int /* num_wchars */
+);
+
+extern void Xutf8DrawString(
+ Display* /* display */,
+ Drawable /* d */,
+ XFontSet /* font_set */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst char* /* text */,
+ int /* bytes_text */
+);
+
+extern void XmbDrawImageString(
+ Display* /* display */,
+ Drawable /* d */,
+ XFontSet /* font_set */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst char* /* text */,
+ int /* bytes_text */
+);
+
+extern void XwcDrawImageString(
+ Display* /* display */,
+ Drawable /* d */,
+ XFontSet /* font_set */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst wchar_t* /* text */,
+ int /* num_wchars */
+);
+
+extern void Xutf8DrawImageString(
+ Display* /* display */,
+ Drawable /* d */,
+ XFontSet /* font_set */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst char* /* text */,
+ int /* bytes_text */
+);
+
+extern XIM XOpenIM(
+ Display* /* dpy */,
+ struct _XrmHashBucketRec* /* rdb */,
+ char* /* res_name */,
+ char* /* res_class */
+);
+
+extern Status XCloseIM(
+ XIM /* im */
+);
+
+extern char *XGetIMValues(
+ XIM /* im */, ...
+) _X_SENTINEL(0);
+
+extern char *XSetIMValues(
+ XIM /* im */, ...
+) _X_SENTINEL(0);
+
+extern Display *XDisplayOfIM(
+ XIM /* im */
+);
+
+extern char *XLocaleOfIM(
+ XIM /* im*/
+);
+
+extern XIC XCreateIC(
+ XIM /* im */, ...
+) _X_SENTINEL(0);
+
+extern void XDestroyIC(
+ XIC /* ic */
+);
+
+extern void XSetICFocus(
+ XIC /* ic */
+);
+
+extern void XUnsetICFocus(
+ XIC /* ic */
+);
+
+extern wchar_t *XwcResetIC(
+ XIC /* ic */
+);
+
+extern char *XmbResetIC(
+ XIC /* ic */
+);
+
+extern char *Xutf8ResetIC(
+ XIC /* ic */
+);
+
+extern char *XSetICValues(
+ XIC /* ic */, ...
+) _X_SENTINEL(0);
+
+extern char *XGetICValues(
+ XIC /* ic */, ...
+) _X_SENTINEL(0);
+
+extern XIM XIMOfIC(
+ XIC /* ic */
+);
+
+extern Bool XFilterEvent(
+ XEvent* /* event */,
+ Window /* window */
+);
+
+extern int XmbLookupString(
+ XIC /* ic */,
+ XKeyPressedEvent* /* event */,
+ char* /* buffer_return */,
+ int /* bytes_buffer */,
+ KeySym* /* keysym_return */,
+ Status* /* status_return */
+);
+
+extern int XwcLookupString(
+ XIC /* ic */,
+ XKeyPressedEvent* /* event */,
+ wchar_t* /* buffer_return */,
+ int /* wchars_buffer */,
+ KeySym* /* keysym_return */,
+ Status* /* status_return */
+);
+
+extern int Xutf8LookupString(
+ XIC /* ic */,
+ XKeyPressedEvent* /* event */,
+ char* /* buffer_return */,
+ int /* bytes_buffer */,
+ KeySym* /* keysym_return */,
+ Status* /* status_return */
+);
+
+extern XVaNestedList XVaCreateNestedList(
+ int /*unused*/, ...
+) _X_SENTINEL(0);
+
+/* internal connections for IMs */
+
+extern Bool XRegisterIMInstantiateCallback(
+ Display* /* dpy */,
+ struct _XrmHashBucketRec* /* rdb */,
+ char* /* res_name */,
+ char* /* res_class */,
+ XIDProc /* callback */,
+ XPointer /* client_data */
+);
+
+extern Bool XUnregisterIMInstantiateCallback(
+ Display* /* dpy */,
+ struct _XrmHashBucketRec* /* rdb */,
+ char* /* res_name */,
+ char* /* res_class */,
+ XIDProc /* callback */,
+ XPointer /* client_data */
+);
+
+typedef void (*XConnectionWatchProc)(
+ Display* /* dpy */,
+ XPointer /* client_data */,
+ int /* fd */,
+ Bool /* opening */, /* open or close flag */
+ XPointer* /* watch_data */ /* open sets, close uses */
+);
+
+
+extern Status XInternalConnectionNumbers(
+ Display* /* dpy */,
+ int** /* fd_return */,
+ int* /* count_return */
+);
+
+extern void XProcessInternalConnection(
+ Display* /* dpy */,
+ int /* fd */
+);
+
+extern Status XAddConnectionWatch(
+ Display* /* dpy */,
+ XConnectionWatchProc /* callback */,
+ XPointer /* client_data */
+);
+
+extern void XRemoveConnectionWatch(
+ Display* /* dpy */,
+ XConnectionWatchProc /* callback */,
+ XPointer /* client_data */
+);
+
+extern void XSetAuthorization(
+ char * /* name */,
+ int /* namelen */,
+ char * /* data */,
+ int /* datalen */
+);
+
+extern int _Xmbtowc(
+ wchar_t * /* wstr */,
+#ifdef ISC
+ char const * /* str */,
+ size_t /* len */
+#else
+ char * /* str */,
+ int /* len */
+#endif
+);
+
+extern int _Xwctomb(
+ char * /* str */,
+ wchar_t /* wc */
+);
+
+extern Bool XGetEventData(
+ Display* /* dpy */,
+ XGenericEventCookie* /* cookie*/
+);
+
+extern void XFreeEventData(
+ Display* /* dpy */,
+ XGenericEventCookie* /* cookie*/
+);
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _X11_XLIB_H_ */
diff --git a/X11/XlibConf.h b/X11/XlibConf.h
new file mode 100644
index 000000000..eda569510
--- /dev/null
+++ b/X11/XlibConf.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright © 2005 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 Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. Keith Packard makes no
+ * representations about the suitability of this software for any purpose. It
+ * is provided "as is" without express or implied warranty.
+ *
+ * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL KEITH PACKARD 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.
+ */
+
+#ifndef _XLIBCONF_H_
+#define _XLIBCONF_H_
+/*
+ * This header file exports defines necessary to correctly
+ * use Xlibint.h both inside Xlib and by external libraries
+ * such as extensions.
+ */
+
+/* Threading support? */
+#define XTHREADS /**/
+
+/* Use multi-threaded libc functions? */
+#define XUSE_MTSAFE_API /**/
+
+#endif /* _XLIBCONF_H_ */
diff --git a/X11/Xlibint.h b/X11/Xlibint.h
new file mode 100644
index 000000000..e7d2487cf
--- /dev/null
+++ b/X11/Xlibint.h
@@ -0,0 +1,1337 @@
+
+/*
+
+Copyright 1984, 1985, 1987, 1989, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+*/
+
+#ifndef _X11_XLIBINT_H_
+#define _X11_XLIBINT_H_ 1
+
+/*
+ * Xlibint.h - Header definition and support file for the internal
+ * support routines used by the C subroutine interface
+ * library (Xlib) to the X Window System.
+ *
+ * Warning, there be dragons here....
+ */
+
+#include <X11/Xlib.h>
+#include <X11/Xproto.h> /* to declare xEvent */
+#include <X11/XlibConf.h> /* for configured options like XTHREADS */
+
+/* The Xlib structs are full of implicit padding to properly align members.
+ We can't clean that up without breaking ABI, so tell clang not to bother
+ complaining about it. */
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+#ifdef WIN32
+#define _XFlush _XFlushIt
+#endif
+
+/*
+ * If your BytesReadable correctly detects broken connections, then
+ * you should NOT define XCONN_CHECK_FREQ.
+ */
+#ifndef XCONN_CHECK_FREQ
+#define XCONN_CHECK_FREQ 256
+#endif
+
+struct _XGC
+{
+ XExtData *ext_data; /* hook for extension to hang data */
+ GContext gid; /* protocol ID for graphics context */
+ Bool rects; /* boolean: TRUE if clipmask is list of rectangles */
+ Bool dashes; /* boolean: TRUE if dash-list is really a list */
+ unsigned long dirty;/* cache dirty bits */
+ XGCValues values; /* shadow structure of values */
+};
+
+struct _XDisplay
+{
+ XExtData *ext_data; /* hook for extension to hang data */
+ struct _XFreeFuncs *free_funcs; /* internal free functions */
+ int fd; /* Network socket. */
+ int conn_checker; /* ugly thing used by _XEventsQueued */
+ int proto_major_version;/* maj. version of server's X protocol */
+ int proto_minor_version;/* minor version of server's X protocol */
+ char *vendor; /* vendor of the server hardware */
+ XID resource_base; /* resource ID base */
+ XID resource_mask; /* resource ID mask bits */
+ XID resource_id; /* allocator current ID */
+ int resource_shift; /* allocator shift to correct bits */
+ XID (*resource_alloc)( /* allocator function */
+ struct _XDisplay*
+ );
+ int byte_order; /* screen byte order, LSBFirst, MSBFirst */
+ int bitmap_unit; /* padding and data requirements */
+ int bitmap_pad; /* padding requirements on bitmaps */
+ int bitmap_bit_order; /* LeastSignificant or MostSignificant */
+ int nformats; /* number of pixmap formats in list */
+ ScreenFormat *pixmap_format; /* pixmap format list */
+ int vnumber; /* Xlib's X protocol version number. */
+ int release; /* release of the server */
+ struct _XSQEvent *head, *tail; /* Input event queue. */
+ int qlen; /* Length of input event queue */
+ unsigned long last_request_read; /* seq number of last event read */
+ unsigned long request; /* sequence number of last request. */
+ char *last_req; /* beginning of last request, or dummy */
+ char *buffer; /* Output buffer starting address. */
+ char *bufptr; /* Output buffer index pointer. */
+ char *bufmax; /* Output buffer maximum+1 address. */
+ unsigned max_request_size; /* maximum number 32 bit words in request*/
+ struct _XrmHashBucketRec *db;
+ int (*synchandler)( /* Synchronization handler */
+ struct _XDisplay*
+ );
+ char *display_name; /* "host:display" string used on this connect*/
+ int default_screen; /* default screen for operations */
+ int nscreens; /* number of screens on this server*/
+ Screen *screens; /* pointer to list of screens */
+ unsigned long motion_buffer; /* size of motion buffer */
+ volatile unsigned long flags; /* internal connection flags */
+ int min_keycode; /* minimum defined keycode */
+ int max_keycode; /* maximum defined keycode */
+ KeySym *keysyms; /* This server's keysyms */
+ XModifierKeymap *modifiermap; /* This server's modifier keymap */
+ int keysyms_per_keycode;/* number of rows */
+ char *xdefaults; /* contents of defaults from server */
+ char *scratch_buffer; /* place to hang scratch buffer */
+ unsigned long scratch_length; /* length of scratch buffer */
+ int ext_number; /* extension number on this display */
+ struct _XExten *ext_procs; /* extensions initialized on this display */
+ /*
+ * the following can be fixed size, as the protocol defines how
+ * much address space is available.
+ * While this could be done using the extension vector, there
+ * may be MANY events processed, so a search through the extension
+ * list to find the right procedure for each event might be
+ * expensive if many extensions are being used.
+ */
+ Bool (*event_vec[128])( /* vector for wire to event */
+ Display * /* dpy */,
+ XEvent * /* re */,
+ xEvent * /* event */
+ );
+ Status (*wire_vec[128])( /* vector for event to wire */
+ Display * /* dpy */,
+ XEvent * /* re */,
+ xEvent * /* event */
+ );
+ KeySym lock_meaning; /* for XLookupString */
+ struct _XLockInfo *lock; /* multi-thread state, display lock */
+ struct _XInternalAsync *async_handlers; /* for internal async */
+ unsigned long bigreq_size; /* max size of big requests */
+ struct _XLockPtrs *lock_fns; /* pointers to threads functions */
+ void (*idlist_alloc)( /* XID list allocator function */
+ Display * /* dpy */,
+ XID * /* ids */,
+ int /* count */
+ );
+ /* things above this line should not move, for binary compatibility */
+ struct _XKeytrans *key_bindings; /* for XLookupString */
+ Font cursor_font; /* for XCreateFontCursor */
+ struct _XDisplayAtoms *atoms; /* for XInternAtom */
+ unsigned int mode_switch; /* keyboard group modifiers */
+ unsigned int num_lock; /* keyboard numlock modifiers */
+ struct _XContextDB *context_db; /* context database */
+ Bool (**error_vec)( /* vector for wire to error */
+ Display * /* display */,
+ XErrorEvent * /* he */,
+ xError * /* we */
+ );
+ /*
+ * Xcms information
+ */
+ struct {
+ XPointer defaultCCCs; /* pointer to an array of default XcmsCCC */
+ XPointer clientCmaps; /* pointer to linked list of XcmsCmapRec */
+ XPointer perVisualIntensityMaps;
+ /* linked list of XcmsIntensityMap */
+ } cms;
+ struct _XIMFilter *im_filters;
+ struct _XSQEvent *qfree; /* unallocated event queue elements */
+ unsigned long next_event_serial_num; /* inserted into next queue elt */
+ struct _XExten *flushes; /* Flush hooks */
+ struct _XConnectionInfo *im_fd_info; /* _XRegisterInternalConnection */
+ int im_fd_length; /* number of im_fd_info */
+ struct _XConnWatchInfo *conn_watchers; /* XAddConnectionWatch */
+ int watcher_count; /* number of conn_watchers */
+ XPointer filedes; /* struct pollfd cache for _XWaitForReadable */
+ int (*savedsynchandler)( /* user synchandler when Xlib usurps */
+ Display * /* dpy */
+ );
+ XID resource_max; /* allocator max ID */
+ int xcmisc_opcode; /* major opcode for XC-MISC */
+ struct _XkbInfoRec *xkb_info; /* XKB info */
+ struct _XtransConnInfo *trans_conn; /* transport connection object */
+ struct _X11XCBPrivate *xcb; /* XCB glue private data */
+
+ /* Generic event cookie handling */
+ unsigned int next_cookie; /* next event cookie */
+ /* vector for wire to generic event, index is (extension - 128) */
+ Bool (*generic_event_vec[128])(
+ Display * /* dpy */,
+ XGenericEventCookie * /* Xlib event */,
+ xEvent * /* wire event */);
+ /* vector for event copy, index is (extension - 128) */
+ Bool (*generic_event_copy_vec[128])(
+ Display * /* dpy */,
+ XGenericEventCookie * /* in */,
+ XGenericEventCookie * /* out*/);
+ void *cookiejar; /* cookie events returned but not claimed */
+};
+
+#define XAllocIDs(dpy,ids,n) (*(dpy)->idlist_alloc)(dpy,ids,n)
+
+#ifndef _XEVENT_
+/*
+ * _QEvent datatype for use in input queueing.
+ */
+typedef struct _XSQEvent
+{
+ struct _XSQEvent *next;
+ XEvent event;
+ unsigned long qserial_num; /* so multi-threaded code can find new ones */
+} _XQEvent;
+#endif
+
+#include <X11/Xproto.h>
+#ifdef __sgi
+#define _SGI_MP_SOURCE /* turn this on to get MP safe errno */
+#endif
+#include <errno.h>
+#define _XBCOPYFUNC _Xbcopy
+#include <X11/Xfuncs.h>
+#include <X11/Xosdefs.h>
+
+/* Utek leaves kernel macros around in include files (bleah) */
+#ifdef dirty
+#undef dirty
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+/*
+ * The following definitions can be used for locking requests in multi-threaded
+ * address spaces.
+ */
+#ifdef XTHREADS
+/* Author: Stephen Gildea, MIT X Consortium
+ *
+ * declarations for C Threads locking
+ */
+
+typedef struct _LockInfoRec *LockInfoPtr;
+
+/* interfaces for locking.c */
+struct _XLockPtrs {
+ /* used by all, including extensions; do not move */
+ void (*lock_display)(
+ Display *dpy
+#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
+ , char *file
+ , int line
+#endif
+ );
+ void (*unlock_display)(
+ Display *dpy
+#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
+ , char *file
+ , int line
+#endif
+ );
+};
+
+#ifdef WIN32
+#ifdef LIB11_DLL
+#define X11_EXTERN __declspec(dllexport) extern
+#else
+#define X11_EXTERN __declspec(dllimport) extern
+#endif
+#else
+#define X11_EXTERN extern
+#endif
+
+
+/* in XlibInt.c */
+X11_EXTERN void (*_XCreateMutex_fn)(
+ LockInfoPtr /* lock */
+);
+X11_EXTERN void (*_XFreeMutex_fn)(
+ LockInfoPtr /* lock */
+);
+X11_EXTERN void (*_XLockMutex_fn)(
+ LockInfoPtr /* lock */
+#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
+ , char * /* file */
+ , int /* line */
+#endif
+);
+X11_EXTERN void (*_XUnlockMutex_fn)(
+ LockInfoPtr /* lock */
+#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
+ , char * /* file */
+ , int /* line */
+#endif
+);
+
+X11_EXTERN LockInfoPtr _Xglobal_lock;
+
+#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
+#define LockDisplay(d) if ((d)->lock_fns) (*(d)->lock_fns->lock_display)((d),__FILE__,__LINE__)
+#define UnlockDisplay(d) if ((d)->lock_fns) (*(d)->lock_fns->unlock_display)((d),__FILE__,__LINE__)
+#define _XLockMutex(lock) if (_XLockMutex_fn) (*_XLockMutex_fn)(lock,__FILE__,__LINE__)
+#define _XUnlockMutex(lock) if (_XUnlockMutex_fn) (*_XUnlockMutex_fn)(lock,__FILE__,__LINE__)
+#else
+/* used everywhere, so must be fast if not using threads */
+#define LockDisplay(d) if ((d)->lock_fns) (*(d)->lock_fns->lock_display)(d)
+#define UnlockDisplay(d) if ((d)->lock_fns) (*(d)->lock_fns->unlock_display)(d)
+#define _XLockMutex(lock) if (_XLockMutex_fn) (*_XLockMutex_fn)(lock)
+#define _XUnlockMutex(lock) if (_XUnlockMutex_fn) (*_XUnlockMutex_fn)(lock)
+#endif
+#define _XCreateMutex(lock) if (_XCreateMutex_fn) (*_XCreateMutex_fn)(lock);
+#define _XFreeMutex(lock) if (_XFreeMutex_fn) (*_XFreeMutex_fn)(lock);
+
+#else /* XTHREADS */
+#define LockDisplay(dis)
+#define _XLockMutex(lock)
+#define _XUnlockMutex(lock)
+#define UnlockDisplay(dis)
+#define _XCreateMutex(lock)
+#define _XFreeMutex(lock)
+#endif
+
+#define Xfree(ptr) free((ptr))
+
+/*
+ * Note that some machines do not return a valid pointer for malloc(0), in
+ * which case we provide an alternate under the control of the
+ * define MALLOC_0_RETURNS_NULL. This is necessary because some
+ * Xlib code expects malloc(0) to return a valid pointer to storage.
+ */
+#if defined(MALLOC_0_RETURNS_NULL) || defined(__clang_analyzer__)
+
+# define Xmalloc(size) malloc(((size) == 0 ? 1 : (size)))
+# define Xrealloc(ptr, size) realloc((ptr), ((size) == 0 ? 1 : (size)))
+# define Xcalloc(nelem, elsize) calloc(((nelem) == 0 ? 1 : (nelem)), (elsize))
+
+#else
+
+# define Xmalloc(size) malloc((size))
+# define Xrealloc(ptr, size) realloc((ptr), (size))
+# define Xcalloc(nelem, elsize) calloc((nelem), (elsize))
+
+#endif
+
+#include <stddef.h>
+
+#define LOCKED 1
+#define UNLOCKED 0
+
+#ifndef BUFSIZE
+#define BUFSIZE 2048 /* X output buffer size. */
+#endif
+#ifndef PTSPERBATCH
+#define PTSPERBATCH 1024 /* point batching */
+#endif
+#ifndef WLNSPERBATCH
+#define WLNSPERBATCH 50 /* wide line batching */
+#endif
+#ifndef ZLNSPERBATCH
+#define ZLNSPERBATCH 1024 /* thin line batching */
+#endif
+#ifndef WRCTSPERBATCH
+#define WRCTSPERBATCH 10 /* wide line rectangle batching */
+#endif
+#ifndef ZRCTSPERBATCH
+#define ZRCTSPERBATCH 256 /* thin line rectangle batching */
+#endif
+#ifndef FRCTSPERBATCH
+#define FRCTSPERBATCH 256 /* filled rectangle batching */
+#endif
+#ifndef FARCSPERBATCH
+#define FARCSPERBATCH 256 /* filled arc batching */
+#endif
+#ifndef CURSORFONT
+#define CURSORFONT "cursor" /* standard cursor fonts */
+#endif
+
+/*
+ * Display flags
+ */
+#define XlibDisplayIOError (1L << 0)
+#define XlibDisplayClosing (1L << 1)
+#define XlibDisplayNoXkb (1L << 2)
+#define XlibDisplayPrivSync (1L << 3)
+#define XlibDisplayProcConni (1L << 4) /* in _XProcessInternalConnection */
+#define XlibDisplayReadEvents (1L << 5) /* in _XReadEvents */
+#define XlibDisplayReply (1L << 5) /* in _XReply */
+#define XlibDisplayWriting (1L << 6) /* in _XFlushInt, _XSend */
+#define XlibDisplayDfltRMDB (1L << 7) /* mark if RM db from XGetDefault */
+
+/*
+ * X Protocol packetizing macros.
+ */
+
+/* Leftover from CRAY support - was defined empty on all non-Cray systems */
+#define WORD64ALIGN
+
+/**
+ * Return a len-sized request buffer for the request type. This function may
+ * flush the output queue.
+ *
+ * @param dpy The display connection
+ * @param type The request type
+ * @param len Length of the request in bytes
+ *
+ * @returns A pointer to the request buffer with a few default values
+ * initialized.
+ */
+extern void *_XGetRequest(Display *dpy, CARD8 type, size_t len);
+
+/* GetReqSized is the same as GetReq but allows the caller to specify the
+ * size in bytes. 'sz' must be a multiple of 4! */
+
+#define GetReqSized(name, sz, req) \
+ req = (x##name##Req *) _XGetRequest(dpy, X_##name, sz)
+
+/*
+ * GetReq - Get the next available X request packet in the buffer and
+ * return it.
+ *
+ * "name" is the name of the request, e.g. CreatePixmap, OpenFont, etc.
+ * "req" is the name of the request pointer.
+ *
+ */
+
+#define GetReq(name, req) \
+ GetReqSized(name, SIZEOF(x##name##Req), req)
+
+/* GetReqExtra is the same as GetReq, but allocates "n" additional
+ bytes after the request. "n" must be a multiple of 4! */
+
+#define GetReqExtra(name, n, req) \
+ GetReqSized(name, SIZEOF(x##name##Req) + n, req)
+
+/*
+ * GetResReq is for those requests that have a resource ID
+ * (Window, Pixmap, GContext, etc.) as their single argument.
+ * "rid" is the name of the resource.
+ */
+
+#define GetResReq(name, rid, req) \
+ req = (xResourceReq *) _XGetRequest(dpy, X_##name, SIZEOF(xResourceReq)); \
+ req->id = (rid)
+
+/*
+ * GetEmptyReq is for those requests that have no arguments
+ * at all.
+ */
+
+#define GetEmptyReq(name, req) \
+ req = (xReq *) _XGetRequest(dpy, X_##name, SIZEOF(xReq))
+
+/*
+ * MakeBigReq sets the CARD16 "req->length" to 0 and inserts a new CARD32
+ * length, after req->length, before the data in the request. The new length
+ * includes the "n" extra 32-bit words.
+ *
+ * Do not use MakeBigReq if there is no data already in the request.
+ * req->length must already be >= 2.
+ */
+#ifdef LONG64
+#define MakeBigReq(req,n) \
+ { \
+ CARD64 _BRdat; \
+ CARD32 _BRlen = req->length - 1; \
+ req->length = 0; \
+ _BRdat = ((CARD32 *)req)[_BRlen]; \
+ memmove(((char *)req) + 8, ((char *)req) + 4, (_BRlen - 1) << 2); \
+ ((CARD32 *)req)[1] = _BRlen + n + 2; \
+ Data32(dpy, &_BRdat, 4); \
+ }
+#else
+#define MakeBigReq(req,n) \
+ { \
+ CARD32 _BRdat; \
+ CARD32 _BRlen = req->length - 1; \
+ req->length = 0; \
+ _BRdat = ((CARD32 *)req)[_BRlen]; \
+ memmove(((char *)req) + 8, ((char *)req) + 4, (_BRlen - 1) << 2); \
+ ((CARD32 *)req)[1] = _BRlen + n + 2; \
+ Data32(dpy, &_BRdat, 4); \
+ }
+#endif
+
+/*
+ * SetReqLen increases the count of 32-bit words in the request by "n",
+ * or by "badlen" if "n" is too large.
+ *
+ * Do not use SetReqLen if "req" does not already have data after the
+ * xReq header. req->length must already be >= 2.
+ */
+#ifndef __clang_analyzer__
+#define SetReqLen(req,n,badlen) \
+ if ((req->length + n) > (unsigned)65535) { \
+ if (dpy->bigreq_size) { \
+ MakeBigReq(req,n) \
+ } else { \
+ n = badlen; \
+ req->length += n; \
+ } \
+ } else \
+ req->length += n
+#else
+#define SetReqLen(req,n,badlen) \
+ req->length += n
+#endif
+
+#define SyncHandle() \
+ if (dpy->synchandler) (*dpy->synchandler)(dpy)
+
+extern void _XFlushGCCache(Display *dpy, GC gc);
+#define FlushGC(dpy, gc) \
+ if ((gc)->dirty) _XFlushGCCache((dpy), (gc))
+/*
+ * Data - Place data in the buffer and pad the end to provide
+ * 32 bit word alignment. Transmit if the buffer fills.
+ *
+ * "dpy" is a pointer to a Display.
+ * "data" is a pointer to a data buffer.
+ * "len" is the length of the data buffer.
+ */
+#ifndef DataRoutineIsProcedure
+#define Data(dpy, data, len) {\
+ if (dpy->bufptr + (len) <= dpy->bufmax) {\
+ memcpy(dpy->bufptr, data, (int)len);\
+ dpy->bufptr += ((len) + 3) & ~3;\
+ } else\
+ _XSend(dpy, data, len);\
+}
+#endif /* DataRoutineIsProcedure */
+
+
+/* Allocate bytes from the buffer. No padding is done, so if
+ * the length is not a multiple of 4, the caller must be
+ * careful to leave the buffer aligned after sending the
+ * current request.
+ *
+ * "type" is the type of the pointer being assigned to.
+ * "ptr" is the pointer being assigned to.
+ * "n" is the number of bytes to allocate.
+ *
+ * Example:
+ * xTextElt *elt;
+ * BufAlloc (xTextElt *, elt, nbytes)
+ */
+
+#define BufAlloc(type, ptr, n) \
+ if (dpy->bufptr + (n) > dpy->bufmax) \
+ _XFlush (dpy); \
+ ptr = (type) dpy->bufptr; \
+ memset(ptr, '\0', n); \
+ dpy->bufptr += (n);
+
+#define Data16(dpy, data, len) Data((dpy), (_Xconst char *)(data), (len))
+#define _XRead16Pad(dpy, data, len) _XReadPad((dpy), (char *)(data), (len))
+#define _XRead16(dpy, data, len) _XRead((dpy), (char *)(data), (len))
+#ifdef LONG64
+#define Data32(dpy, data, len) _XData32(dpy, (_Xconst long *)data, len)
+extern int _XData32(
+ Display *dpy,
+ register _Xconst long *data,
+ unsigned len
+);
+extern void _XRead32(
+ Display *dpy,
+ register long *data,
+ long len
+);
+#else
+#define Data32(dpy, data, len) Data((dpy), (_Xconst char *)(data), (len))
+#define _XRead32(dpy, data, len) _XRead((dpy), (char *)(data), (len))
+#endif
+
+#define PackData16(dpy,data,len) Data16 (dpy, data, len)
+#define PackData32(dpy,data,len) Data32 (dpy, data, len)
+
+/* Xlib manual is bogus */
+#define PackData(dpy,data,len) PackData16 (dpy, data, len)
+
+#define min(a,b) (((a) < (b)) ? (a) : (b))
+#define max(a,b) (((a) > (b)) ? (a) : (b))
+
+#define CI_NONEXISTCHAR(cs) (((cs)->width == 0) && \
+ (((cs)->rbearing|(cs)->lbearing| \
+ (cs)->ascent|(cs)->descent) == 0))
+
+/*
+ * CI_GET_CHAR_INFO_1D - return the charinfo struct for the indicated 8bit
+ * character. If the character is in the column and exists, then return the
+ * appropriate metrics (note that fonts with common per-character metrics will
+ * return min_bounds). If none of these hold true, try again with the default
+ * char.
+ */
+#define CI_GET_CHAR_INFO_1D(fs,col,def,cs) \
+{ \
+ cs = def; \
+ if (col >= fs->min_char_or_byte2 && col <= fs->max_char_or_byte2) { \
+ if (fs->per_char == NULL) { \
+ cs = &fs->min_bounds; \
+ } else { \
+ cs = &fs->per_char[(col - fs->min_char_or_byte2)]; \
+ if (CI_NONEXISTCHAR(cs)) cs = def; \
+ } \
+ } \
+}
+
+#define CI_GET_DEFAULT_INFO_1D(fs,cs) \
+ CI_GET_CHAR_INFO_1D (fs, fs->default_char, NULL, cs)
+
+
+
+/*
+ * CI_GET_CHAR_INFO_2D - return the charinfo struct for the indicated row and
+ * column. This is used for fonts that have more than row zero.
+ */
+#define CI_GET_CHAR_INFO_2D(fs,row,col,def,cs) \
+{ \
+ cs = def; \
+ if (row >= fs->min_byte1 && row <= fs->max_byte1 && \
+ col >= fs->min_char_or_byte2 && col <= fs->max_char_or_byte2) { \
+ if (fs->per_char == NULL) { \
+ cs = &fs->min_bounds; \
+ } else { \
+ cs = &fs->per_char[((row - fs->min_byte1) * \
+ (fs->max_char_or_byte2 - \
+ fs->min_char_or_byte2 + 1)) + \
+ (col - fs->min_char_or_byte2)]; \
+ if (CI_NONEXISTCHAR(cs)) cs = def; \
+ } \
+ } \
+}
+
+#define CI_GET_DEFAULT_INFO_2D(fs,cs) \
+{ \
+ unsigned int r = (fs->default_char >> 8); \
+ unsigned int c = (fs->default_char & 0xff); \
+ CI_GET_CHAR_INFO_2D (fs, r, c, NULL, cs); \
+}
+
+
+/* srcvar must be a variable for large architecture version */
+#define OneDataCard32(dpy,dstaddr,srcvar) \
+ { *(CARD32 *)(dstaddr) = (srcvar); }
+
+
+typedef struct _XInternalAsync {
+ struct _XInternalAsync *next;
+ /*
+ * handler arguments:
+ * rep is the generic reply that caused this handler
+ * to be invoked. It must also be passed to _XGetAsyncReply.
+ * buf and len are opaque values that must be passed to
+ * _XGetAsyncReply or _XGetAsyncData.
+ * data is the closure stored in this struct.
+ * The handler returns True iff it handled this reply.
+ */
+ Bool (*handler)(
+ Display* /* dpy */,
+ xReply* /* rep */,
+ char* /* buf */,
+ int /* len */,
+ XPointer /* data */
+ );
+ XPointer data;
+} _XAsyncHandler;
+
+typedef struct _XAsyncEState {
+ unsigned long min_sequence_number;
+ unsigned long max_sequence_number;
+ unsigned char error_code;
+ unsigned char major_opcode;
+ unsigned short minor_opcode;
+ unsigned char last_error_received;
+ int error_count;
+} _XAsyncErrorState;
+
+extern void _XDeqAsyncHandler(Display *dpy, _XAsyncHandler *handler);
+#define DeqAsyncHandler(dpy,handler) { \
+ if (dpy->async_handlers == (handler)) \
+ dpy->async_handlers = (handler)->next; \
+ else \
+ _XDeqAsyncHandler(dpy, handler); \
+ }
+
+typedef void (*FreeFuncType) (
+ Display* /* display */
+);
+
+typedef int (*FreeModmapType) (
+ XModifierKeymap* /* modmap */
+);
+
+/*
+ * This structure is private to the library.
+ */
+typedef struct _XFreeFuncs {
+ FreeFuncType atoms; /* _XFreeAtomTable */
+ FreeModmapType modifiermap; /* XFreeModifiermap */
+ FreeFuncType key_bindings; /* _XFreeKeyBindings */
+ FreeFuncType context_db; /* _XFreeContextDB */
+ FreeFuncType defaultCCCs; /* _XcmsFreeDefaultCCCs */
+ FreeFuncType clientCmaps; /* _XcmsFreeClientCmaps */
+ FreeFuncType intensityMaps; /* _XcmsFreeIntensityMaps */
+ FreeFuncType im_filters; /* _XFreeIMFilters */
+ FreeFuncType xkb; /* _XkbFreeInfo */
+} _XFreeFuncRec;
+
+/* types for InitExt.c */
+typedef int (*CreateGCType) (
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*CopyGCType)(
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*FlushGCType) (
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*FreeGCType) (
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*CreateFontType) (
+ Display* /* display */,
+ XFontStruct* /* fs */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*FreeFontType) (
+ Display* /* display */,
+ XFontStruct* /* fs */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*CloseDisplayType) (
+ Display* /* display */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*ErrorType) (
+ Display* /* display */,
+ xError* /* err */,
+ XExtCodes* /* codes */,
+ int* /* ret_code */
+);
+
+typedef char* (*ErrorStringType) (
+ Display* /* display */,
+ int /* code */,
+ XExtCodes* /* codes */,
+ char* /* buffer */,
+ int /* nbytes */
+);
+
+typedef void (*PrintErrorType)(
+ Display* /* display */,
+ XErrorEvent* /* ev */,
+ void* /* fp */
+);
+
+typedef void (*BeforeFlushType)(
+ Display* /* display */,
+ XExtCodes* /* codes */,
+ _Xconst char* /* data */,
+ long /* len */
+);
+
+/*
+ * This structure is private to the library.
+ */
+typedef struct _XExten { /* private to extension mechanism */
+ struct _XExten *next; /* next in list */
+ XExtCodes codes; /* public information, all extension told */
+ CreateGCType create_GC; /* routine to call when GC created */
+ CopyGCType copy_GC; /* routine to call when GC copied */
+ FlushGCType flush_GC; /* routine to call when GC flushed */
+ FreeGCType free_GC; /* routine to call when GC freed */
+ CreateFontType create_Font; /* routine to call when Font created */
+ FreeFontType free_Font; /* routine to call when Font freed */
+ CloseDisplayType close_display; /* routine to call when connection closed */
+ ErrorType error; /* who to call when an error occurs */
+ ErrorStringType error_string; /* routine to supply error string */
+ char *name; /* name of this extension */
+ PrintErrorType error_values; /* routine to supply error values */
+ BeforeFlushType before_flush; /* routine to call when sending data */
+ struct _XExten *next_flush; /* next in list of those with flushes */
+} _XExtension;
+
+/* Temporary definition until we can depend on an xproto release with it */
+#ifdef _X_COLD
+# define _XLIB_COLD _X_COLD
+#elif defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 403) /* 4.3+ */
+# define _XLIB_COLD __attribute__((__cold__))
+#else
+# define _XLIB_COLD /* nothing */
+#endif
+
+/* extension hooks */
+
+#ifdef DataRoutineIsProcedure
+extern void Data(Display *dpy, char *data, long len);
+#endif
+extern int _XError(
+ Display* /* dpy */,
+ xError* /* rep */
+);
+extern int _XIOError(
+ Display* /* dpy */
+) _X_NORETURN;
+X11_EXTERN int (*_XIOErrorFunction)(
+ Display* /* dpy */
+);
+X11_EXTERN int (*_XErrorFunction)(
+ Display* /* dpy */,
+ XErrorEvent* /* error_event */
+);
+extern void _XEatData(
+ Display* /* dpy */,
+ unsigned long /* n */
+) _XLIB_COLD;
+extern void _XEatDataWords(
+ Display* /* dpy */,
+ unsigned long /* n */
+) _XLIB_COLD;
+#if defined(__SUNPRO_C) /* Studio compiler alternative to "cold" attribute */
+# pragma rarely_called(_XEatData, _XEatDataWords)
+#endif
+extern char *_XAllocScratch(
+ Display* /* dpy */,
+ unsigned long /* nbytes */
+);
+extern char *_XAllocTemp(
+ Display* /* dpy */,
+ unsigned long /* nbytes */
+);
+extern void _XFreeTemp(
+ Display* /* dpy */,
+ char* /* buf */,
+ unsigned long /* nbytes */
+);
+extern Visual *_XVIDtoVisual(
+ Display* /* dpy */,
+ VisualID /* id */
+);
+extern unsigned long _XSetLastRequestRead(
+ Display* /* dpy */,
+ xGenericReply* /* rep */
+);
+extern int _XGetHostname(
+ char* /* buf */,
+ int /* maxlen */
+);
+extern Screen *_XScreenOfWindow(
+ Display* /* dpy */,
+ Window /* w */
+);
+extern Bool _XAsyncErrorHandler(
+ Display* /* dpy */,
+ xReply* /* rep */,
+ char* /* buf */,
+ int /* len */,
+ XPointer /* data */
+);
+extern char *_XGetAsyncReply(
+ Display* /* dpy */,
+ char* /* replbuf */,
+ xReply* /* rep */,
+ char* /* buf */,
+ int /* len */,
+ int /* extra */,
+ Bool /* discard */
+);
+extern void _XGetAsyncData(
+ Display* /* dpy */,
+ char * /* data */,
+ char * /* buf */,
+ int /* len */,
+ int /* skip */,
+ int /* datalen */,
+ int /* discardtotal */
+);
+extern void _XFlush(
+ Display* /* dpy */
+);
+extern int _XEventsQueued(
+ Display* /* dpy */,
+ int /* mode */
+);
+extern void _XReadEvents(
+ Display* /* dpy */
+);
+extern int _XRead(
+ Display* /* dpy */,
+ char* /* data */,
+ long /* size */
+);
+extern void _XReadPad(
+ Display* /* dpy */,
+ char* /* data */,
+ long /* size */
+);
+extern void _XSend(
+ Display* /* dpy */,
+ _Xconst char* /* data */,
+ long /* size */
+);
+extern Status _XReply(
+ Display* /* dpy */,
+ xReply* /* rep */,
+ int /* extra */,
+ Bool /* discard */
+);
+extern void _XEnq(
+ Display* /* dpy */,
+ xEvent* /* event */
+);
+extern void _XDeq(
+ Display* /* dpy */,
+ _XQEvent* /* prev */,
+ _XQEvent* /* qelt */
+);
+
+extern Bool _XUnknownWireEvent(
+ Display* /* dpy */,
+ XEvent* /* re */,
+ xEvent* /* event */
+);
+
+extern Bool _XUnknownWireEventCookie(
+ Display* /* dpy */,
+ XGenericEventCookie* /* re */,
+ xEvent* /* event */
+);
+
+extern Bool _XUnknownCopyEventCookie(
+ Display* /* dpy */,
+ XGenericEventCookie* /* in */,
+ XGenericEventCookie* /* out */
+);
+
+extern Status _XUnknownNativeEvent(
+ Display* /* dpy */,
+ XEvent* /* re */,
+ xEvent* /* event */
+);
+
+extern Bool _XWireToEvent(Display *dpy, XEvent *re, xEvent *event);
+extern Bool _XDefaultWireError(Display *display, XErrorEvent *he, xError *we);
+extern Bool _XPollfdCacheInit(Display *dpy);
+extern void _XPollfdCacheAdd(Display *dpy, int fd);
+extern void _XPollfdCacheDel(Display *dpy, int fd);
+extern XID _XAllocID(Display *dpy);
+extern void _XAllocIDs(Display *dpy, XID *ids, int count);
+
+extern int _XFreeExtData(
+ XExtData* /* extension */
+);
+
+extern int (*XESetCreateGC(
+ Display* /* display */,
+ int /* extension */,
+ int (*) (
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+ ) /* proc */
+))(
+ Display*, GC, XExtCodes*
+);
+
+extern int (*XESetCopyGC(
+ Display* /* display */,
+ int /* extension */,
+ int (*) (
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+ ) /* proc */
+))(
+ Display*, GC, XExtCodes*
+);
+
+extern int (*XESetFlushGC(
+ Display* /* display */,
+ int /* extension */,
+ int (*) (
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+ ) /* proc */
+))(
+ Display*, GC, XExtCodes*
+);
+
+extern int (*XESetFreeGC(
+ Display* /* display */,
+ int /* extension */,
+ int (*) (
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+ ) /* proc */
+))(
+ Display*, GC, XExtCodes*
+);
+
+extern int (*XESetCreateFont(
+ Display* /* display */,
+ int /* extension */,
+ int (*) (
+ Display* /* display */,
+ XFontStruct* /* fs */,
+ XExtCodes* /* codes */
+ ) /* proc */
+))(
+ Display*, XFontStruct*, XExtCodes*
+);
+
+extern int (*XESetFreeFont(
+ Display* /* display */,
+ int /* extension */,
+ int (*) (
+ Display* /* display */,
+ XFontStruct* /* fs */,
+ XExtCodes* /* codes */
+ ) /* proc */
+))(
+ Display*, XFontStruct*, XExtCodes*
+);
+
+extern int (*XESetCloseDisplay(
+ Display* /* display */,
+ int /* extension */,
+ int (*) (
+ Display* /* display */,
+ XExtCodes* /* codes */
+ ) /* proc */
+))(
+ Display*, XExtCodes*
+);
+
+extern int (*XESetError(
+ Display* /* display */,
+ int /* extension */,
+ int (*) (
+ Display* /* display */,
+ xError* /* err */,
+ XExtCodes* /* codes */,
+ int* /* ret_code */
+ ) /* proc */
+))(
+ Display*, xError*, XExtCodes*, int*
+);
+
+extern char* (*XESetErrorString(
+ Display* /* display */,
+ int /* extension */,
+ char* (*) (
+ Display* /* display */,
+ int /* code */,
+ XExtCodes* /* codes */,
+ char* /* buffer */,
+ int /* nbytes */
+ ) /* proc */
+))(
+ Display*, int, XExtCodes*, char*, int
+);
+
+extern void (*XESetPrintErrorValues (
+ Display* /* display */,
+ int /* extension */,
+ void (*)(
+ Display* /* display */,
+ XErrorEvent* /* ev */,
+ void* /* fp */
+ ) /* proc */
+))(
+ Display*, XErrorEvent*, void*
+);
+
+extern Bool (*XESetWireToEvent(
+ Display* /* display */,
+ int /* event_number */,
+ Bool (*) (
+ Display* /* display */,
+ XEvent* /* re */,
+ xEvent* /* event */
+ ) /* proc */
+))(
+ Display*, XEvent*, xEvent*
+);
+
+extern Bool (*XESetWireToEventCookie(
+ Display* /* display */,
+ int /* extension */,
+ Bool (*) (
+ Display* /* display */,
+ XGenericEventCookie* /* re */,
+ xEvent* /* event */
+ ) /* proc */
+))(
+ Display*, XGenericEventCookie*, xEvent*
+);
+
+extern Bool (*XESetCopyEventCookie(
+ Display* /* display */,
+ int /* extension */,
+ Bool (*) (
+ Display* /* display */,
+ XGenericEventCookie* /* in */,
+ XGenericEventCookie* /* out */
+ ) /* proc */
+))(
+ Display*, XGenericEventCookie*, XGenericEventCookie*
+);
+
+
+extern Status (*XESetEventToWire(
+ Display* /* display */,
+ int /* event_number */,
+ Status (*) (
+ Display* /* display */,
+ XEvent* /* re */,
+ xEvent* /* event */
+ ) /* proc */
+))(
+ Display*, XEvent*, xEvent*
+);
+
+extern Bool (*XESetWireToError(
+ Display* /* display */,
+ int /* error_number */,
+ Bool (*) (
+ Display* /* display */,
+ XErrorEvent* /* he */,
+ xError* /* we */
+ ) /* proc */
+))(
+ Display*, XErrorEvent*, xError*
+);
+
+extern void (*XESetBeforeFlush(
+ Display* /* display */,
+ int /* error_number */,
+ void (*) (
+ Display* /* display */,
+ XExtCodes* /* codes */,
+ _Xconst char* /* data */,
+ long /* len */
+ ) /* proc */
+))(
+ Display*, XExtCodes*, _Xconst char*, long
+);
+
+/* internal connections for IMs */
+
+typedef void (*_XInternalConnectionProc)(
+ Display* /* dpy */,
+ int /* fd */,
+ XPointer /* call_data */
+);
+
+
+extern Status _XRegisterInternalConnection(
+ Display* /* dpy */,
+ int /* fd */,
+ _XInternalConnectionProc /* callback */,
+ XPointer /* call_data */
+);
+
+extern void _XUnregisterInternalConnection(
+ Display* /* dpy */,
+ int /* fd */
+);
+
+extern void _XProcessInternalConnection(
+ Display* /* dpy */,
+ struct _XConnectionInfo* /* conn_info */
+);
+
+/* Display structure has pointers to these */
+
+struct _XConnectionInfo { /* info from _XRegisterInternalConnection */
+ int fd;
+ _XInternalConnectionProc read_callback;
+ XPointer call_data;
+ XPointer *watch_data; /* set/used by XConnectionWatchProc */
+ struct _XConnectionInfo *next;
+};
+
+struct _XConnWatchInfo { /* info from XAddConnectionWatch */
+ XConnectionWatchProc fn;
+ XPointer client_data;
+ struct _XConnWatchInfo *next;
+};
+
+#ifdef __UNIXOS2__
+extern char* __XOS2RedirRoot(
+ char*
+);
+#endif
+
+extern int _XTextHeight(
+ XFontStruct* /* font_struct */,
+ _Xconst char* /* string */,
+ int /* count */
+);
+
+extern int _XTextHeight16(
+ XFontStruct* /* font_struct */,
+ _Xconst XChar2b* /* string */,
+ int /* count */
+);
+
+#if defined(WIN32)
+
+extern int _XOpenFile(
+ _Xconst char* /* path */,
+ int /* flags */
+);
+
+extern int _XOpenFileMode(
+ _Xconst char* /* path */,
+ int /* flags */,
+ mode_t /* mode */
+);
+
+extern void* _XFopenFile(
+ _Xconst char* /* path */,
+ _Xconst char* /* mode */
+);
+
+extern int _XAccessFile(
+ _Xconst char* /* path */
+);
+#else
+#define _XOpenFile(path,flags) open(path,flags)
+#define _XOpenFileMode(path,flags,mode) open(path,flags,mode)
+#define _XFopenFile(path,mode) fopen(path,mode)
+#endif
+
+/* EvToWire.c */
+extern Status _XEventToWire(Display *dpy, XEvent *re, xEvent *event);
+
+extern int _XF86LoadQueryLocaleFont(
+ Display* /* dpy */,
+ _Xconst char* /* name*/,
+ XFontStruct** /* xfp*/,
+ Font* /* fidp */
+);
+
+extern void _XProcessWindowAttributes (
+ register Display *dpy,
+ xChangeWindowAttributesReq *req,
+ register unsigned long valuemask,
+ register XSetWindowAttributes *attributes);
+
+extern int _XDefaultError(
+ Display *dpy,
+ XErrorEvent *event);
+
+extern int _XDefaultIOError(
+ Display *dpy);
+
+extern void _XSetClipRectangles (
+ register Display *dpy,
+ GC gc,
+ int clip_x_origin, int clip_y_origin,
+ XRectangle *rectangles,
+ int n,
+ int ordering);
+
+Status _XGetWindowAttributes(
+ register Display *dpy,
+ Window w,
+ XWindowAttributes *attr);
+
+int _XPutBackEvent (
+ register Display *dpy,
+ register XEvent *event);
+
+extern Bool _XIsEventCookie(
+ Display *dpy,
+ XEvent *ev);
+
+extern void _XFreeEventCookies(
+ Display *dpy);
+
+extern void _XStoreEventCookie(
+ Display *dpy,
+ XEvent *ev);
+
+extern Bool _XFetchEventCookie(
+ Display *dpy,
+ XGenericEventCookie *ev);
+
+extern Bool _XCopyEventCookie(
+ Display *dpy,
+ XGenericEventCookie *in,
+ XGenericEventCookie *out);
+
+/* lcFile.c */
+
+extern void xlocaledir(
+ char *buf,
+ int buf_len
+);
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _X11_XLIBINT_H_ */
diff --git a/X11/Xlocale.h b/X11/Xlocale.h
new file mode 100644
index 000000000..dfb004c32
--- /dev/null
+++ b/X11/Xlocale.h
@@ -0,0 +1,59 @@
+/*
+
+Copyright 1991, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+*/
+
+#ifndef _X11_XLOCALE_H_
+#define _X11_XLOCALE_H_
+
+#include <X11/Xfuncproto.h>
+#include <X11/Xosdefs.h>
+
+#ifndef X_LOCALE
+#include <locale.h>
+#else
+
+#define LC_ALL 0
+#define LC_COLLATE 1
+#define LC_CTYPE 2
+#define LC_MONETARY 3
+#define LC_NUMERIC 4
+#define LC_TIME 5
+
+_XFUNCPROTOBEGIN
+extern char *_Xsetlocale(
+ int /* category */,
+ _Xconst char* /* name */
+);
+_XFUNCPROTOEND
+
+#define setlocale _Xsetlocale
+
+#include <stddef.h>
+
+#endif /* X_LOCALE */
+
+#endif /* _X11_XLOCALE_H_ */
diff --git a/X11/Xmu/Atoms.h b/X11/Xmu/Atoms.h
new file mode 100644
index 000000000..1d0228338
--- /dev/null
+++ b/X11/Xmu/Atoms.h
@@ -0,0 +1,123 @@
+/*
+
+Copyright 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_ATOMS_H_
+#define _XMU_ATOMS_H_
+
+#include <X11/Intrinsic.h>
+#include <X11/Xfuncproto.h>
+
+typedef struct _AtomRec *AtomPtr;
+
+extern AtomPtr
+ _XA_ATOM_PAIR,
+ _XA_CHARACTER_POSITION,
+ _XA_CLASS,
+ _XA_CLIENT_WINDOW,
+ _XA_CLIPBOARD,
+ _XA_COMPOUND_TEXT,
+ _XA_DECNET_ADDRESS,
+ _XA_DELETE,
+ _XA_FILENAME,
+ _XA_HOSTNAME,
+ _XA_IP_ADDRESS,
+ _XA_LENGTH,
+ _XA_LIST_LENGTH,
+ _XA_NAME,
+ _XA_NET_ADDRESS,
+ _XA_NULL,
+ _XA_OWNER_OS,
+ _XA_SPAN,
+ _XA_TARGETS,
+ _XA_TEXT,
+ _XA_TIMESTAMP,
+ _XA_USER,
+ _XA_UTF8_STRING;
+
+#define XA_ATOM_PAIR(d) XmuInternAtom(d, _XA_ATOM_PAIR)
+#define XA_CHARACTER_POSITION(d) XmuInternAtom(d, _XA_CHARACTER_POSITION)
+#define XA_CLASS(d) XmuInternAtom(d, _XA_CLASS)
+#define XA_CLIENT_WINDOW(d) XmuInternAtom(d, _XA_CLIENT_WINDOW)
+#define XA_CLIPBOARD(d) XmuInternAtom(d, _XA_CLIPBOARD)
+#define XA_COMPOUND_TEXT(d) XmuInternAtom(d, _XA_COMPOUND_TEXT)
+#define XA_DECNET_ADDRESS(d) XmuInternAtom(d, _XA_DECNET_ADDRESS)
+#define XA_DELETE(d) XmuInternAtom(d, _XA_DELETE)
+#define XA_FILENAME(d) XmuInternAtom(d, _XA_FILENAME)
+#define XA_HOSTNAME(d) XmuInternAtom(d, _XA_HOSTNAME)
+#define XA_IP_ADDRESS(d) XmuInternAtom(d, _XA_IP_ADDRESS)
+#define XA_LENGTH(d) XmuInternAtom(d, _XA_LENGTH)
+#define XA_LIST_LENGTH(d) XmuInternAtom(d, _XA_LIST_LENGTH)
+#define XA_NAME(d) XmuInternAtom(d, _XA_NAME)
+#define XA_NET_ADDRESS(d) XmuInternAtom(d, _XA_NET_ADDRESS)
+#define XA_NULL(d) XmuInternAtom(d, _XA_NULL)
+#define XA_OWNER_OS(d) XmuInternAtom(d, _XA_OWNER_OS)
+#define XA_SPAN(d) XmuInternAtom(d, _XA_SPAN)
+#define XA_TARGETS(d) XmuInternAtom(d, _XA_TARGETS)
+#define XA_TEXT(d) XmuInternAtom(d, _XA_TEXT)
+#define XA_TIMESTAMP(d) XmuInternAtom(d, _XA_TIMESTAMP)
+#define XA_USER(d) XmuInternAtom(d, _XA_USER)
+#define XA_UTF8_STRING(d) XmuInternAtom(d, _XA_UTF8_STRING)
+
+_XFUNCPROTOBEGIN
+
+char *XmuGetAtomName
+(
+ Display *dpy,
+ Atom atom
+ );
+
+Atom XmuInternAtom
+(
+ Display *dpy,
+ AtomPtr atom_ptr
+ );
+
+void XmuInternStrings
+(
+ Display *dpy,
+ String *names,
+ Cardinal count,
+ Atom *atoms_return
+);
+
+AtomPtr XmuMakeAtom
+(
+ _Xconst char *name
+ );
+
+char *XmuNameOfAtom
+(
+ AtomPtr atom_ptr
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_ATOMS_H_ */
diff --git a/X11/Xmu/CharSet.h b/X11/Xmu/CharSet.h
new file mode 100644
index 000000000..36f76a75e
--- /dev/null
+++ b/X11/Xmu/CharSet.h
@@ -0,0 +1,73 @@
+/*
+
+Copyright 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_CHARSET_H_
+#define _XMU_CHARSET_H_
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+void XmuCopyISOLatin1Lowered
+(
+ char *dst_return,
+ _Xconst char *src
+ );
+
+void XmuCopyISOLatin1Uppered
+(
+ char *dst_return,
+ _Xconst char *src
+ );
+
+int XmuCompareISOLatin1
+(
+ _Xconst char *first,
+ _Xconst char *second
+ );
+
+void XmuNCopyISOLatin1Lowered
+(
+ char *dst_return,
+ _Xconst char *src,
+ int size
+ );
+
+void XmuNCopyISOLatin1Uppered
+(
+ char *dst_return,
+ _Xconst char *src,
+ int size
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_CHARSET_H_ */
diff --git a/X11/Xmu/CloseHook.h b/X11/Xmu/CloseHook.h
new file mode 100644
index 000000000..50552f68c
--- /dev/null
+++ b/X11/Xmu/CloseHook.h
@@ -0,0 +1,70 @@
+/*
+
+Copyright 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_CLOSEHOOK_H_
+#define _XMU_CLOSEHOOK_H_
+
+#include <X11/Xlib.h>
+#include <X11/Xfuncproto.h>
+#include <X11/Xlibint.h>
+
+typedef XPointer CloseHook;
+
+typedef int (*XmuCloseHookProc)(Display *dpy, XPointer data);
+
+_XFUNCPROTOBEGIN
+
+CloseHook XmuAddCloseDisplayHook
+(
+ Display *dpy,
+ XmuCloseHookProc proc,
+ XPointer arg
+ );
+
+Bool XmuLookupCloseDisplayHook
+(
+ Display *dpy,
+ CloseHook handle,
+ XmuCloseHookProc proc,
+ XPointer arg
+ );
+
+Bool XmuRemoveCloseDisplayHook
+(
+ Display *dpy,
+ CloseHook handle,
+ XmuCloseHookProc proc,
+ XPointer arg
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_CLOSEHOOK_H_ */
diff --git a/X11/Xmu/Converters.h b/X11/Xmu/Converters.h
new file mode 100644
index 000000000..1947e382e
--- /dev/null
+++ b/X11/Xmu/Converters.h
@@ -0,0 +1,277 @@
+/*
+
+Copyright 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_STRCONVERT_H_
+#define _XMU_STRCONVERT_H_
+
+#include <X11/Intrinsic.h>
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+void XmuCvtFunctionToCallback
+(
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal
+ );
+
+#define XtNbackingStore "backingStore"
+#define XtCBackingStore "BackingStore"
+#define XtRBackingStore "BackingStore"
+#define XtEnotUseful "notUseful"
+#define XtEwhenMapped "whenMapped"
+#define XtEalways "always"
+#define XtEdefault "default"
+void XmuCvtStringToBackingStore
+(
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal
+ );
+
+Boolean XmuCvtBackingStoreToString
+(
+ Display *dpy,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal,
+ XtPointer *converter_data
+ );
+
+void XmuCvtStringToCursor
+(
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal
+ );
+
+#define XtRColorCursor "ColorCursor"
+#define XtNpointerColor "pointerColor"
+#define XtNpointerColorBackground "pointerColorBackground"
+Boolean XmuCvtStringToColorCursor
+(
+ Display *dpy,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal,
+ XtPointer *converter_data
+ );
+
+typedef int XtGravity;
+
+#ifndef XtRGravity
+#define XtRGravity "Gravity"
+#endif
+#define XtEForget "forget"
+#define XtENorthWest "northwest"
+#define XtENorth "north"
+#define XtENorthEast "northeast"
+#define XtEWest "west"
+#define XtECenter "center"
+#define XtEEast "east"
+#define XtESouthWest "southwest"
+#define XtESouth "south"
+#define XtESouthEast "southeast"
+#define XtEStatic "static"
+#define XtEUnmap "unmap"
+void XmuCvtStringToGravity
+(
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal
+ );
+
+Boolean XmuCvtGravityToString
+(
+ Display *dpy,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal,
+ XtPointer *converter_data
+ );
+
+typedef enum {
+ XtJustifyLeft, /* justify text to left side of button */
+ XtJustifyCenter, /* justify text in center of button */
+ XtJustifyRight /* justify text to right side of button */
+} XtJustify;
+#ifndef XtRJustify
+#define XtRJustify "Justify"
+#endif
+#define XtEleft "left"
+#define XtEcenter "center"
+#define XtEright "right"
+#define XtEtop "top"
+#define XtEbottom "bottom"
+void XmuCvtStringToJustify
+(
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal
+ );
+
+Boolean XmuCvtJustifyToString
+(
+ Display *dpy,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal,
+ XtPointer *converter_data
+ );
+
+#define XtRLong "Long"
+void XmuCvtStringToLong
+(
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal
+ );
+Boolean XmuCvtLongToString
+(
+ Display *dpy,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal,
+ XtPointer *converter_data
+ );
+
+typedef enum {
+ XtorientHorizontal,
+ XtorientVertical
+} XtOrientation;
+void XmuCvtStringToOrientation
+(
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal
+ );
+
+Boolean XmuCvtOrientationToString
+(
+ Display *dpy,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal,
+ XtPointer *converter_data
+ );
+
+void XmuCvtStringToBitmap
+(
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal
+ );
+
+#define XtRShapeStyle "ShapeStyle"
+#define XtERectangle "Rectangle"
+#define XtEOval "Oval"
+#define XtEEllipse "Ellipse"
+#define XtERoundedRectangle "RoundedRectangle"
+
+#define XmuShapeRectangle 1
+#define XmuShapeOval 2
+#define XmuShapeEllipse 3
+#define XmuShapeRoundedRectangle 4
+
+Boolean XmuCvtStringToShapeStyle
+(
+ Display *dpy,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal,
+ XtPointer *converter_data
+ );
+
+Boolean XmuCvtShapeStyleToString
+(
+ Display *dpy,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal,
+ XtPointer *converter_data
+ );
+
+Boolean XmuReshapeWidget
+(
+ Widget w,
+ int shape_style,
+ int corner_width,
+ int corner_height
+ );
+
+void XmuCvtStringToWidget
+(
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValuePtr fromVal,
+ XrmValuePtr toVal
+ );
+
+Boolean XmuNewCvtStringToWidget
+(
+ Display *display,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValue *fromVal,
+ XrmValue *toVal,
+ XtPointer *converter_data
+ );
+
+Boolean XmuCvtWidgetToString
+(
+ Display *dpy,
+ XrmValue *args,
+ Cardinal *num_args,
+ XrmValue *fromVal,
+ XrmValue *toVal,
+ XtPointer *converter_data
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_STRCONVERT_H_ */
diff --git a/X11/Xmu/CurUtil.h b/X11/Xmu/CurUtil.h
new file mode 100644
index 000000000..0e79d2159
--- /dev/null
+++ b/X11/Xmu/CurUtil.h
@@ -0,0 +1,46 @@
+/*
+
+Copyright 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_CURUTIL_H_
+#define _XMU_CURUTIL_H_
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+int XmuCursorNameToIndex
+(
+ _Xconst char *name
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_CURUTIL_H_ */
diff --git a/X11/Xmu/CvtCache.h b/X11/Xmu/CvtCache.h
new file mode 100644
index 000000000..794367ba1
--- /dev/null
+++ b/X11/Xmu/CvtCache.h
@@ -0,0 +1,59 @@
+/*
+
+Copyright 1989, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+/*
+ * Public Interfaces
+ *
+ * XmuCvtCache *XmuCvtCacheLookupDisplay (dpy)
+ * Display *dpy;
+ */
+
+#ifndef _XMU_CVTCACHE_H_
+#define _XMU_CVTCACHE_H_
+
+#include <X11/Xmu/DisplayQue.h>
+#include <X11/Xfuncproto.h>
+
+typedef struct _XmuCvtCache {
+ struct {
+ char **bitmapFilePath;
+ } string_to_bitmap;
+ /* add other per-display data that needs to be cached */
+} XmuCvtCache;
+
+_XFUNCPROTOBEGIN
+
+XmuCvtCache *_XmuCCLookupDisplay
+(
+ Display *dpy
+ );
+
+extern void _XmuStringToBitmapInitCache(XmuCvtCache *c);
+extern void _XmuStringToBitmapFreeCache(XmuCvtCache *c);
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_CVTCACHE_H_ */
diff --git a/X11/Xmu/DisplayQue.h b/X11/Xmu/DisplayQue.h
new file mode 100644
index 000000000..5eb9191be
--- /dev/null
+++ b/X11/Xmu/DisplayQue.h
@@ -0,0 +1,152 @@
+/*
+
+Copyright 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+#ifndef _XMU_DISPLAYQUE_H_
+#define _XMU_DISPLAYQUE_H_
+
+#include <X11/Xmu/CloseHook.h>
+#include <X11/Xfuncproto.h>
+
+/*
+ * Public Entry Points
+ *
+ *
+ * XmuDisplayQueue *XmuDQCreate (closefunc, freefunc, data)
+ * XmuCloseDisplayQueueProc closefunc;
+ * XmuFreeDisplayQueueProc freefunc;
+ * XPointer data;
+ *
+ * Creates and returns a queue into which displays may be placed. When
+ * the display is closed, the closefunc (if non-NULL) is upcalled with
+ * as follows:
+ *
+ * (*closefunc) (queue, entry)
+ *
+ * The freeproc, if non-NULL, is called whenever the last display is
+ * closed, notifying the creator that display queue may be released
+ * using XmuDQDestroy.
+ *
+ *
+ * Bool XmuDQDestroy (q, docallbacks)
+ * XmuDisplayQueue *q;
+ * Bool docallbacks;
+ *
+ * Releases all memory for the indicated display queue. If docallbacks
+ * is true, then the closefunc (if non-NULL) is called for each
+ * display.
+ *
+ *
+ * XmuDisplayQueueEntry *XmuDQLookupDisplay (q, dpy)
+ * XmuDisplayQueue *q;
+ * Display *dpy;
+ *
+ * Returns the queue entry for the specified display or NULL if the
+ * display is not in the queue.
+ *
+ *
+ * XmuDisplayQueueEntry *XmuDQAddDisplay (q, dpy, data)
+ * XmuDisplayQueue *q;
+ * Display *dpy;
+ * XPointer data;
+ *
+ * Adds the indicated display to the end of the queue or NULL if it
+ * is unable to allocate memory. The data field may be used by the
+ * caller to attach arbitrary data to this display in this queue. The
+ * caller should use XmuDQLookupDisplay to make sure that the display
+ * hasn't already been added.
+ *
+ *
+ * Bool XmuDQRemoveDisplay (q, dpy)
+ * XmuDisplayQueue *q;
+ * Display *dpy;
+ *
+ * Removes the specified display from the given queue. If the
+ * indicated display is not found on this queue, False is returned,
+ * otherwise True is returned.
+ */
+
+typedef struct _XmuDisplayQueue XmuDisplayQueue;
+typedef struct _XmuDisplayQueueEntry XmuDisplayQueueEntry;
+
+typedef int (*XmuCloseDisplayQueueProc)(XmuDisplayQueue *queue,
+ XmuDisplayQueueEntry *entry);
+
+typedef int (*XmuFreeDisplayQueueProc)(XmuDisplayQueue *queue);
+
+struct _XmuDisplayQueueEntry {
+ struct _XmuDisplayQueueEntry *prev, *next;
+ Display *display;
+ CloseHook closehook;
+ XPointer data;
+};
+
+struct _XmuDisplayQueue {
+ int nentries;
+ XmuDisplayQueueEntry *head, *tail;
+ XmuCloseDisplayQueueProc closefunc;
+ XmuFreeDisplayQueueProc freefunc;
+ XPointer data;
+};
+
+_XFUNCPROTOBEGIN
+
+XmuDisplayQueue *XmuDQCreate
+(
+ XmuCloseDisplayQueueProc closefunc,
+ XmuFreeDisplayQueueProc freefunc,
+ XPointer data
+ );
+
+Bool XmuDQDestroy
+(
+ XmuDisplayQueue *q,
+ Bool docallbacks
+ );
+
+XmuDisplayQueueEntry *XmuDQLookupDisplay
+(
+ XmuDisplayQueue *q,
+ Display *dpy
+ );
+
+XmuDisplayQueueEntry *XmuDQAddDisplay
+(
+ XmuDisplayQueue *q,
+ Display *dpy,
+ XPointer data
+ );
+
+Bool XmuDQRemoveDisplay
+(
+ XmuDisplayQueue *q,
+ Display *dpy
+ );
+
+_XFUNCPROTOEND
+
+#define XmuDQNDisplays(q) ((q)->nentries)
+
+#endif /* _XMU_DISPLAYQUE_H_ */
diff --git a/X11/Xmu/Drawing.h b/X11/Xmu/Drawing.h
new file mode 100644
index 000000000..bfb1c3c90
--- /dev/null
+++ b/X11/Xmu/Drawing.h
@@ -0,0 +1,158 @@
+/*
+
+Copyright 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_DRAWING_H_
+#define _XMU_DRAWING_H_
+
+#include <X11/Xlib.h>
+#include <X11/Xfuncproto.h>
+
+#include <stdio.h>
+#if ! defined(_XtIntrinsic_h) && ! defined(PIXEL_ALREADY_TYPEDEFED)
+typedef unsigned long Pixel;
+#endif
+
+_XFUNCPROTOBEGIN
+
+void XmuDrawRoundedRectangle
+(
+ Display *dpy,
+ Drawable draw,
+ GC gc,
+ int x,
+ int y,
+ int w,
+ int h,
+ int ew,
+ int eh
+ );
+
+void XmuFillRoundedRectangle
+(
+ Display *dpy,
+ Drawable draw,
+ GC gc,
+ int x,
+ int y,
+ int w,
+ int h,
+ int ew,
+ int eh
+ );
+
+void XmuDrawLogo
+(
+ Display *dpy,
+ Drawable drawable,
+ GC gcFore,
+ GC gcBack,
+ int x,
+ int y,
+ unsigned int width,
+ unsigned int height
+ );
+
+Pixmap XmuCreatePixmapFromBitmap
+(
+ Display *dpy,
+ Drawable d,
+ Pixmap bitmap,
+ unsigned int width,
+ unsigned int height,
+ unsigned int depth,
+ unsigned long fore,
+ unsigned long back
+);
+
+Pixmap XmuCreateStippledPixmap
+(
+ Screen *screen,
+ Pixel fore,
+ Pixel back,
+ unsigned int depth
+ );
+
+void XmuReleaseStippledPixmap
+(
+ Screen *screen,
+ Pixmap pixmap
+ );
+
+Pixmap XmuLocateBitmapFile
+(
+ Screen *screen,
+ _Xconst char *name,
+ char *srcname_return,
+ int srcnamelen,
+ int *width_return,
+ int *height_return,
+ int *xhot_return,
+ int *yhot_return
+ );
+
+Pixmap XmuLocatePixmapFile
+(
+ Screen *screen,
+ _Xconst char *name,
+ unsigned long fore,
+ unsigned long back,
+ unsigned int depth,
+ char *srcname_return,
+ int srcnamelen,
+ int *width_return,
+ int *height_return,
+ int *xhot_return,
+ int *yhot_return
+ );
+
+int XmuReadBitmapData
+(
+ FILE *fstream,
+ unsigned int *width_return,
+ unsigned int *height_return,
+ unsigned char **datap_return,
+ int *xhot_return,
+ int *yhot_return
+);
+
+int XmuReadBitmapDataFromFile
+(
+ _Xconst char *filename,
+ unsigned int *width_return,
+ unsigned int *height_return,
+ unsigned char **datap_return,
+ int *xhot_return,
+ int *yhot_return
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_DRAWING_H_ */
diff --git a/X11/Xmu/Editres.h b/X11/Xmu/Editres.h
new file mode 100644
index 000000000..52aa239a9
--- /dev/null
+++ b/X11/Xmu/Editres.h
@@ -0,0 +1,39 @@
+/*
+
+Copyright 1991, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+void _XEditResCheckMessages
+(
+ Widget w,
+ XtPointer data,
+ XEvent *event,
+ Boolean *cont
+);
+
+_XFUNCPROTOEND
diff --git a/X11/Xmu/EditresP.h b/X11/Xmu/EditresP.h
new file mode 100644
index 000000000..d87f9464d
--- /dev/null
+++ b/X11/Xmu/EditresP.h
@@ -0,0 +1,406 @@
+/*
+
+Copyright 1989, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+/*
+ * Author: Chris D. Peterson, MIT X Consortium
+ */
+
+/************************************************************
+
+ The Editres Protocol
+
+
+ The Client message sent to the application is:
+
+ ATOM = "ResEditor" --- RES_EDITOR_NAME
+
+ FORMAT = 32 --- RES_EDIT_SEND_EVENT_FORMAT
+
+ l[0] = timestamp
+ l[1] = command atom name
+ l[2] = ident of command
+ l[3] = protocol version number to use
+
+
+
+ The binary protocol has the following format:
+
+ Card8: 8-bit unsingned integer
+ Card16: 16-bit unsingned integer
+ Card32: 32-bit unsingned integer
+ Int16: 16-bit signed integer
+ Window: 32-bit value
+ Widget: 32-bit value
+ String8: ListOfCard8
+
+ [a][b][c] represent an exclusive list of choices.
+
+ All widgets are passed as a list of widgets, containing the
+ full instance heirarch of this widget. The hierarchy is ordered
+ from parent to child. Thus the first element of each list is
+ the root of the widget tree (this makes verifying that the widget
+ still exists, MUCH faster).
+
+ ListOfFoo comprises a list of things in the following format:
+
+ number: Card16
+ <number> things: ????
+
+ This is a synchronous protocol, every request MUST be followed by a
+ reply.
+
+ Request:
+
+ Serial Number: Card8
+ Op Code: Card8 - { SendWidgetTree = 0,
+ SetValues = 1,
+ GetResources = 2,
+ GetGeometry = 3,
+ FindChild = 4,
+ GetValues = 5 }
+ Length: Card32
+ Data:
+
+ Reply:
+
+ Serial Number: Card8
+ Type: Card8 - { Formatted = 0,
+ Unformatted = 1,
+ ProtocolMismatch = 2
+ }
+ Length: Card32
+
+
+ Byte Order:
+
+ All Fields are MSB -> LSB
+
+ Data:
+
+ Formatted:
+
+ The data contains the reply information for the request as
+ specified below if the reply type is "Formatted". The return
+ values for the other reply types are shown below.
+
+ Unformatted:
+
+ Message: String8
+
+ ProtocolMismatch:
+
+ RequestedVersion: Card8
+
+------------------------------------------------------------
+
+ SendWidgetTree:
+
+ --->
+
+ Number of Entries: Card16
+ Entry:
+ widget: ListOfWidgets
+ name: String8
+ class: String8
+ window: Card32
+ toolkit: String8
+
+ Send Widget Tree returns the toolkit type, and a fuly specified list
+ of widgets for each widget in the tree. This is enough information
+ to completely reconstruct the entire widget heirarchy.
+
+ The window return value contains the Xid of the window currently
+ used by this widget. If the widget is unrealized then 0 is returned,
+ and if widget is a non-windowed object a value of 2 is returned.
+
+ SetValues:
+
+ name: String8
+ type: String8
+ value: String8
+ Number of Entries: Card16
+ Entry:
+ widget: ListOfWidgets
+
+ --->
+
+ Number of Entries: Card16
+ Entry:
+ widget: ListOfWidgets
+ message: String8
+
+ SetValues will allow the same resource to be set on a number of
+ widgets. This function will return an error message if the SetValues
+ request caused an Xt error.
+
+ GetValues:
+
+ names: ListOfString8
+ widget: Widget
+
+ --->
+ novalues: ListOfCard16
+ values: ListOfString8
+
+ GetValues will allow a number of resource values to be read
+ on a particular widget. The request specifies the names of
+ the resources wanted and the widget id these resources are
+ from. The reply returns a list of indices from the requests
+ name list of resources for which a value can not be returned.
+ It also returns a list of returned values, in the order of the
+ requests names list, skipping those indices present in novalues.
+
+ GetResources:
+
+ Number of Entries: Card16
+ Entry
+ widget: ListOfWidgets:
+
+ ---->
+
+ Number of Entries: Card16
+ Entry
+ Widget: ListOfWidgets:
+ Error: Bool
+
+ [ Message: String 8 ]
+ [ Number of Resources: Card16
+ Resource:
+ Kind: {normal, constraint}
+ Name: String8
+ Class: String8
+ Type: String8 ]
+
+ GetResource retrieves the kind, name, class and type for every
+ widget passed to it. If an error occured with the resource fetch
+ Error will be set to True for the given widget and a message
+ is returned rather than the resource info.
+
+ GetGeometry:
+
+ Number of Entries: Card16
+ Entry
+ Widget: ListOfWidgets:
+
+ ---->
+
+ Number of Entries: Card16
+ Entry
+ Widget: ListOfWidgets:
+ Error: Bool
+
+ [ message: String 8 ]
+ [ mapped: Boolean
+ X: Int16
+ Y: Int16
+ Width: Card16
+ Height: Card16
+ BorderWidth: Card16 ]
+
+ GetGeometry retreives the mapping state, x, y, width, height
+ and border width for each widget specified. If an error occured
+ with the geometry fetch "Error" will be set to True for the given
+ widget and a message is returned rather than the geometry info.
+ X an Y corrospond to the root coordinates of the upper left corner
+ of the widget (outside the window border).
+
+ FindChild:
+
+ Widget: ListOfWidgets
+ X: Int16
+ Y: Int16
+
+ --->
+
+ Widget: ListOfWidgets
+
+ Find Child returns a descendent of the widget specified that
+ is at the root coordinates specified.
+
+ NOTE:
+
+ The returned widget is undefined if the point is contained in
+ two or more mapped widgets, or in two overlapping Rect objs.
+
+ GetValues:
+
+ names: ListOfString8
+ widget: Widget
+
+ --->
+
+ values: ListOfString8
+
+ GetValues will allow a number of resource values to be read
+ on a particular widget. Currently only InterViews 3.0.1 Styles
+ and their attributes are supported. In addition, the current
+ user interface only supports the return of 1 resource. The ability
+ to specify and return multiple resources is defined for future editres
+ interfaces where some or all of a widgets resource values are returned
+ and displayed at once.
+
+
+************************************************************/
+
+#include <X11/Intrinsic.h>
+#include <X11/Xfuncproto.h>
+
+#define XER_NBBY 8 /* number of bits in a byte */
+#define BYTE_MASK 255
+
+#define HEADER_SIZE 6
+
+#define EDITRES_IS_OBJECT 2
+#define EDITRES_IS_UNREALIZED 0
+
+/*
+ * Format for atoms
+ */
+#define EDITRES_FORMAT 8
+#define EDITRES_SEND_EVENT_FORMAT 32
+
+/*
+ * Atoms
+ */
+#define EDITRES_NAME "Editres"
+#define EDITRES_COMMAND_ATOM "EditresCommand"
+#define EDITRES_COMM_ATOM "EditresComm"
+#define EDITRES_CLIENT_VALUE "EditresClientVal"
+#define EDITRES_PROTOCOL_ATOM "EditresProtocol"
+
+typedef enum {
+ SendWidgetTree = 0,
+ SetValues = 1,
+ GetResources = 2,
+ GetGeometry = 3,
+ FindChild = 4,
+ GetValues = 5
+} EditresCommand;
+
+typedef enum {
+ NormalResource = 0,
+ ConstraintResource = 1
+} ResourceType;
+
+/*
+ * The type of a resource identifier
+ */
+typedef unsigned char ResIdent;
+
+typedef enum {
+ PartialSuccess = 0,
+ Failure = 1,
+ ProtocolMismatch = 2
+} EditResError;
+
+typedef struct _WidgetInfo {
+ unsigned short num_widgets;
+ unsigned long *ids;
+ Widget real_widget;
+} WidgetInfo;
+
+typedef struct _ProtocolStream {
+ unsigned long size, alloc;
+ unsigned char *real_top, *top, *current;
+} ProtocolStream;
+
+/************************************************************
+ * Function definitions for reading and writing protocol requests
+ ************************************************************/
+_XFUNCPROTOBEGIN
+
+void _XEditResPutString8
+(
+ ProtocolStream *stream,
+ _Xconst char *str
+ );
+
+void _XEditResPut8
+(
+ ProtocolStream *stream,
+ unsigned int value
+ );
+
+void _XEditResPut16
+(
+ ProtocolStream *stream,
+ unsigned int value
+ );
+
+void _XEditResPut32
+(
+ ProtocolStream *stream,
+ unsigned long value
+ );
+
+void _XEditResPutWidgetInfo
+(
+ ProtocolStream *stream,
+ WidgetInfo *info
+ );
+
+void _XEditResResetStream
+(
+ ProtocolStream *stream
+ );
+
+Bool _XEditResGet8
+(
+ ProtocolStream *stream,
+ unsigned char *value
+ );
+
+Bool _XEditResGet16
+(
+ ProtocolStream *stream,
+ unsigned short *value
+ );
+
+Bool _XEditResGetSigned16
+(
+ ProtocolStream *stream,
+ short *value
+ );
+
+Bool _XEditResGet32
+(
+ ProtocolStream *stream,
+ unsigned long *value
+ );
+
+Bool _XEditResGetString8
+(
+ ProtocolStream *stream,
+ char **str
+ );
+
+Bool _XEditResGetWidgetInfo
+(
+ ProtocolStream *stream,
+ WidgetInfo *info
+ );
+
+_XFUNCPROTOEND
diff --git a/X11/Xmu/Error.h b/X11/Xmu/Error.h
new file mode 100644
index 000000000..5b459cb90
--- /dev/null
+++ b/X11/Xmu/Error.h
@@ -0,0 +1,56 @@
+/*
+
+Copyright 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_ERROR_H_
+#define _XMU_ERROR_H_
+
+#include <stdio.h>
+#include <X11/Xlib.h>
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+int XmuPrintDefaultErrorMessage
+(
+ Display *dpy,
+ XErrorEvent *event,
+ FILE *fp
+ );
+
+int XmuSimpleErrorHandler
+(
+ Display *dpy,
+ XErrorEvent *errorp
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_ERROR_H_ */
diff --git a/X11/Xmu/ExtAgent.h b/X11/Xmu/ExtAgent.h
new file mode 100644
index 000000000..1bdf269ff
--- /dev/null
+++ b/X11/Xmu/ExtAgent.h
@@ -0,0 +1,41 @@
+/*
+
+Copyright 1994,1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+#include <X11/Intrinsic.h>
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+extern void XmuRegisterExternalAgent
+(
+ Widget w,
+ XtPointer data,
+ XEvent *event,
+ Boolean *cont
+ );
+
+_XFUNCPROTOEND
+
diff --git a/X11/Xmu/Initer.h b/X11/Xmu/Initer.h
new file mode 100644
index 000000000..b7925bb0e
--- /dev/null
+++ b/X11/Xmu/Initer.h
@@ -0,0 +1,55 @@
+/*
+
+Copyright 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_INITER_H_
+#define _XMU_INITER_H_
+
+#include <X11/Intrinsic.h>
+#include <X11/Xfuncproto.h>
+
+typedef void (*XmuInitializerProc)(XtAppContext app_context, XPointer data);
+
+_XFUNCPROTOBEGIN
+
+void XmuCallInitializers
+(
+ XtAppContext app_context
+ );
+
+void XmuAddInitializer
+(
+ XmuInitializerProc func,
+ XPointer data
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_INITER_H_ */
diff --git a/X11/Xmu/Lookup.h b/X11/Xmu/Lookup.h
new file mode 100644
index 000000000..302045ac6
--- /dev/null
+++ b/X11/Xmu/Lookup.h
@@ -0,0 +1,124 @@
+/************************************************************
+
+Copyright 1999 by Thomas E. Dickey <dickey@clark.net>
+
+ 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 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:
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT.
+IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+
+Except as contained in this notice, the name(s) of the above copyright
+holders shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization.
+
+********************************************************/
+
+#ifndef included_xmu_lookup_h
+#define included_xmu_lookup_h 1
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+
+extern int XmuLookupString(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status,
+ unsigned long keysymSet);
+
+extern int XmuLookupLatin1(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupLatin2(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupLatin3(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupLatin4(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupKana(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupJISX0201(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupArabic(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupCyrillic(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupGreek(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupAPL(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+extern int XmuLookupHebrew(
+ XKeyEvent *event,
+ unsigned char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status);
+
+#endif /* included_xmu_lookup_h */
diff --git a/X11/Xmu/Misc.h b/X11/Xmu/Misc.h
new file mode 100644
index 000000000..039f51dde
--- /dev/null
+++ b/X11/Xmu/Misc.h
@@ -0,0 +1,63 @@
+/*
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+/***********************************************************
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+/* Various useful constant and macro definitions */
+
+#ifndef _Xmu_Misc_h
+#define _Xmu_Misc_h
+
+#define MAXDIMENSION ((1 << 31)-1)
+
+#define Max(x, y) (((x) > (y)) ? (x) : (y))
+#define Min(x, y) (((x) < (y)) ? (x) : (y))
+#define AssignMax(x, y) {if ((y) > (x)) x = (y);}
+#define AssignMin(x, y) {if ((y) < (x)) x = (y);}
+
+#endif /*_Xmu_Misc_h*/
diff --git a/X11/Xmu/StdCmap.h b/X11/Xmu/StdCmap.h
new file mode 100644
index 000000000..62eb0e8a0
--- /dev/null
+++ b/X11/Xmu/StdCmap.h
@@ -0,0 +1,116 @@
+/*
+
+Copyright 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_STDCMAP_H_
+#define _XMU_STDCMAP_H_
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+Status XmuAllStandardColormaps
+(
+ Display *dpy
+ );
+
+Status XmuCreateColormap
+(
+ Display *dpy,
+ XStandardColormap *colormap
+ );
+
+void XmuDeleteStandardColormap
+(
+ Display *dpy,
+ int screen,
+ Atom property
+ );
+
+Status XmuGetColormapAllocation
+(
+ XVisualInfo *vinfo,
+ Atom property,
+ unsigned long *red_max_return,
+ unsigned long *green_max_return,
+ unsigned long *blue_max_return
+ );
+
+Status XmuLookupStandardColormap
+(
+ Display *dpy,
+ int screen,
+ VisualID visualid,
+ unsigned int depth,
+ Atom property,
+ Bool replace,
+ Bool retain
+ );
+
+XStandardColormap *XmuStandardColormap
+(
+ Display *dpy,
+ int screen,
+ VisualID visualid,
+ unsigned int depth,
+ Atom property,
+ Colormap cmap,
+ unsigned long red_max,
+ unsigned long green_max,
+ unsigned long blue_max
+ );
+
+Status XmuVisualStandardColormaps
+(
+ Display *dpy,
+ int screen,
+ VisualID visualid,
+ unsigned int depth,
+ Bool replace,
+ Bool retain
+ );
+
+Bool XmuDistinguishableColors
+(
+ XColor *colors,
+ int count
+ );
+
+Bool XmuDistinguishablePixels
+(
+ Display *dpy,
+ Colormap cmap,
+ unsigned long *pixels,
+ int count
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_STDCMAP_H_ */
diff --git a/X11/Xmu/StdSel.h b/X11/Xmu/StdSel.h
new file mode 100644
index 000000000..9c1663074
--- /dev/null
+++ b/X11/Xmu/StdSel.h
@@ -0,0 +1,54 @@
+/*
+
+Copyright 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_SELECTION_H_
+#define _XMU_SELECTION_H_
+
+#include <X11/Intrinsic.h>
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+Boolean XmuConvertStandardSelection
+(
+ Widget w,
+ Time timev,
+ Atom *selection,
+ Atom *target,
+ Atom *type_return,
+ XPointer *value_return,
+ unsigned long *length_return,
+ int *format_return
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_SELECTION_H_ */
diff --git a/X11/Xmu/SysUtil.h b/X11/Xmu/SysUtil.h
new file mode 100644
index 000000000..192352fc7
--- /dev/null
+++ b/X11/Xmu/SysUtil.h
@@ -0,0 +1,53 @@
+/*
+
+Copyright 1989, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+#ifndef _SYSUTIL_H_
+#define _SYSUTIL_H_
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+int XmuGetHostname
+(
+ char *buf_return,
+ int maxlen
+);
+
+#ifndef _XMU_H_
+int XmuSnprintf
+(
+ char *str,
+ int size,
+ _Xconst char *fmt,
+ ...
+ )
+_X_ATTRIBUTE_PRINTF(3,4);
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _SYSUTIL_H_ */
diff --git a/X11/Xmu/WhitePoint.h b/X11/Xmu/WhitePoint.h
new file mode 100644
index 000000000..31440d1e1
--- /dev/null
+++ b/X11/Xmu/WhitePoint.h
@@ -0,0 +1,63 @@
+/*
+
+Copyright 1991, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+
+/*
+ *
+ * DESCRIPTION
+ * This file contains a series of standard white point values.
+ */
+#define CIE_A_u 0.2560
+#define CIE_A_v 0.5243
+#define CIE_A_Y 1.0000
+
+#define CIE_B_u 0.2137
+#define CIE_B_v 0.4852
+#define CIE_B_Y 1.0000
+
+#define CIE_C_u 0.2009
+#define CIE_C_v 0.4609
+#define CIE_C_Y 1.0000
+
+#define CIE_D55_u 0.2044
+#define CIE_D55_v 0.4808
+#define CIE_D55_Y 1.0000
+
+#define CIE_D65_u 0.1978
+#define CIE_D65_v 0.4684
+#define CIE_D65_Y 1.0000
+
+#define CIE_D75_u 0.1935
+#define CIE_D75_v 0.4586
+#define CIE_D75_Y 1.0000
+
+#define ASTM_D50_u 0.2092
+#define ASTM_D50_v 0.4881
+#define ASTM_D50_Y 1.0000
+
+#define WP_9300K_u 0.1884
+#define WP_9300K_v 0.4463
+#define WP_9300K_Y 1.0000
diff --git a/X11/Xmu/WidgetNode.h b/X11/Xmu/WidgetNode.h
new file mode 100644
index 000000000..85a064ece
--- /dev/null
+++ b/X11/Xmu/WidgetNode.h
@@ -0,0 +1,95 @@
+/*
+
+Copyright 1990, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+/*
+ * Author: Jim Fulton, MIT X Consortium
+ */
+
+#ifndef _XmuWidgetNode_h
+#define _XmuWidgetNode_h
+
+#include <X11/Intrinsic.h>
+#include <X11/Xfuncproto.h>
+
+/*
+ * This is usually initialized by setting the first two fields and letting
+ * rest be implicitly nulled (by genlist.sh, for example)
+ */
+typedef struct _XmuWidgetNode {
+ char *label; /* mixed case name */
+ WidgetClass *widget_class_ptr; /* addr of widget class */
+ struct _XmuWidgetNode *superclass; /* superclass of widget_class */
+ struct _XmuWidgetNode *children, *siblings; /* subclass links */
+ char *lowered_label; /* lowercase version of label */
+ char *lowered_classname; /* lowercase version of class_name */
+ Bool have_resources; /* resources have been fetched */
+ XtResourceList resources; /* extracted resource database */
+ struct _XmuWidgetNode **resourcewn; /* where resources come from */
+ Cardinal nresources; /* number of resources */
+ XtResourceList constraints; /* extracted constraint resources */
+ struct _XmuWidgetNode **constraintwn; /* where constraints come from */
+ Cardinal nconstraints; /* number of constraint resources */
+ XtPointer data; /* extra data */
+} XmuWidgetNode;
+
+#define XmuWnClass(wn) ((wn)->widget_class_ptr[0])
+#define XmuWnClassname(wn) (XmuWnClass(wn)->core_class.class_name)
+#define XmuWnSuperclass(wn) ((XmuWnClass(wn))->core_class.superclass)
+
+ /* external interfaces */
+_XFUNCPROTOBEGIN
+
+void XmuWnInitializeNodes
+(
+ XmuWidgetNode *nodearray,
+ int nnodes
+ );
+
+void XmuWnFetchResources
+(
+ XmuWidgetNode *node,
+ Widget toplevel,
+ XmuWidgetNode *topnode
+ );
+
+int XmuWnCountOwnedResources
+(
+ XmuWidgetNode *node,
+ XmuWidgetNode *ownernode,
+ Bool constraints
+ );
+
+XmuWidgetNode *XmuWnNameToNode
+(
+ XmuWidgetNode *nodelist,
+ int nnodes,
+ _Xconst char *name
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _XmuWidgetNode_h */
+
diff --git a/X11/Xmu/WinUtil.h b/X11/Xmu/WinUtil.h
new file mode 100644
index 000000000..8bfaac3cd
--- /dev/null
+++ b/X11/Xmu/WinUtil.h
@@ -0,0 +1,61 @@
+/*
+
+Copyright 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_WINDOWUTIL_H_
+#define _XMU_WINDOWUTIL_H_
+
+#include <X11/Xutil.h>
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+Window XmuClientWindow
+(
+ Display *dpy,
+ Window win
+ );
+
+Bool XmuUpdateMapHints
+(
+ Display *dpy,
+ Window win,
+ XSizeHints *hints
+ );
+
+Screen *XmuScreenOfWindow
+(
+ Display *dpy,
+ Window w
+);
+
+_XFUNCPROTOEND
+
+#endif /* _XMU_WINDOWUTIL_H_ */
diff --git a/X11/Xmu/Xct.h b/X11/Xmu/Xct.h
new file mode 100644
index 000000000..337b70bc8
--- /dev/null
+++ b/X11/Xmu/Xct.h
@@ -0,0 +1,165 @@
+/*
+
+Copyright 1989, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+#ifndef _Xct_h
+#define _Xct_h
+
+#include <X11/Xfuncproto.h>
+
+#define XctVersion 1
+
+typedef unsigned char *XctString;
+
+typedef enum {
+ XctUnspecified,
+ XctLeftToRight,
+ XctRightToLeft
+} XctHDirection;
+
+typedef unsigned long XctFlags;
+
+/* These are bits in XctFlags. */
+
+#define XctSingleSetSegments 0x0001
+ /* This means that returned segments should contain characters from only
+ * one set (C0, C1, GL, GR). When this is requested, XctSegment is never
+ * returned, instead XctC0Segment, XctC1Segment, XctGlSegment, and
+ * XctGRSegment are returned. C0 and C1 segments are always returned as
+ * singleton characters.
+ */
+
+#define XctProvideExtensions 0x0002
+ /* This means that if the Compound Text string is from a higher version
+ * than this code is implemented to, then syntactically correct but unknown
+ * control sequences should be returned as XctExtension items. If this
+ * flag is not set, and the Compound Text string version indicates that
+ * extensions cannot be ignored, then each unknown control sequence will be
+ * reported as an XctError.
+ */
+
+#define XctAcceptC0Extensions 0x0004
+ /* This means that if the Compound Text string is from a higher version
+ * than this code is implemented to, then unknown C0 characters should be
+ * treated as if they were legal, and returned as C0 characters (regardless
+ * of how XctProvideExtensions is set). If this flag is not set, then all
+ * unknown C0 characters are treated according to XctProvideExtensions.
+ */
+
+#define XctAcceptC1Extensions 0x0008
+ /* This means that if the Compound Text string is from a higher version
+ * than this code is implemented to, then unknown C0 characters should be
+ * treated as if they were legal, and returned as C0 characters (regardless
+ * of how XctProvideExtensions is set). If this flag is not set, then all
+ * unknown C0 characters are treated according to XctProvideExtensions.
+ */
+
+#define XctHideDirection 0x0010
+ /* This means that horizontal direction changes should be reported as
+ * XctHorizontal items. If this flag is not set, then direction changes are
+ * not returned as items, but the current direction is still maintained and
+ * reported for other items.
+ */
+
+#define XctFreeString 0x0020
+ /* This means that XctFree should free the Compound Text string (that was
+ * passed to XctCreate. If this flag is not set, the string is not freed.
+ */
+
+#define XctShiftMultiGRToGL 0x0040
+ /* Translate GR segments on-the-fly into GL segments for the GR sets:
+ * GB2312.1980-1, JISX0208.1983-1, and KSC5601.1987-1.
+ */
+
+/* This is the return type for XctNextItem. */
+typedef enum {
+ XctSegment, /* used when XctSingleSetSegments is not requested */
+ XctC0Segment, /* used when XctSingleSetSegments is requested */
+ XctGLSegment, /* used when XctSingleSetSegments is requested */
+ XctC1Segment, /* used when XctSingleSetSegments is requested */
+ XctGRSegment, /* used when XctSingleSetSegments is requested */
+ XctExtendedSegment, /* an extended segment */
+ XctExtension, /* used when XctProvideExtensions is requested */
+ XctHorizontal, /* horizontal direction or depth change */
+ XctEndOfText, /* end of text string */
+ XctError /* syntactic or semantic error */
+} XctResult;
+
+typedef struct _XctRec {
+ XctString total_string; /* as given to XctCreate */
+ int total_length; /* as given to XctCreate */
+ XctFlags flags; /* as given to XctCreate */
+ int version; /* indicates the version of the CT spec
+ * the string was produced from */
+ int can_ignore_exts;/* non-zero if ignoring extensions is
+ * acceptable, else zero */
+ XctString item; /* item returned from XctNextItem */
+ unsigned item_length; /* length of item in bytes */
+ int char_size; /* number of bytes per character in
+ * item, with zero meaning variable */
+ char *encoding; /* Encoding name for item */
+ XctHDirection horizontal; /* direction of item */
+ unsigned horz_depth; /* current direction nesting depth */
+ char *GL; /* "{I} F" string for current GL */
+ char *GL_encoding; /* Encoding name for current GL */
+ int GL_set_size; /* 94 or 96 */
+ int GL_char_size; /* number of bytes per GL character */
+ char *GR; /* "{I} F" string for current GR */
+ char *GR_encoding; /* Encoding name for current GR */
+ int GR_set_size; /* 94 or 96 */
+ int GR_char_size; /* number of bytes per GR character */
+ char *GLGR_encoding; /* Encoding name for current GL+GR,
+ * if known */
+ struct _XctPriv *priv; /* private to parser, don't peek */
+} *XctData;
+
+/* these are the external routines */
+_XFUNCPROTOBEGIN
+
+XctData XctCreate
+(
+ _Xconst unsigned char *string,
+ int length,
+ XctFlags flags
+);
+
+XctResult XctNextItem
+(
+ XctData data
+);
+
+void XctFree
+(
+ XctData data
+ );
+
+void XctReset
+(
+ XctData data
+ );
+
+_XFUNCPROTOEND
+
+#endif /* _Xct_h */
diff --git a/X11/Xmu/Xmu.h b/X11/Xmu/Xmu.h
new file mode 100644
index 000000000..7bcc1aa1a
--- /dev/null
+++ b/X11/Xmu/Xmu.h
@@ -0,0 +1,122 @@
+/*
+
+Copyright 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+/*
+ * The interfaces described by this header file are for miscellaneous utilities
+ * and are not part of the Xlib standard.
+ */
+
+#ifndef _XMU_H_
+#define _XMU_H_
+
+#include <X11/Xfuncproto.h>
+#include <X11/Intrinsic.h>
+#include <X11/Xmu/Atoms.h> /* _XA_... */
+#include <X11/Xmu/CharSet.h> /* CopyISOLatin1Lowered */
+#include <X11/Xmu/Converters.h> /* CvtStringTo... */
+#include <X11/Xmu/Drawing.h> /* DrawRoundedRect, DrawLogo */
+#include <X11/Xmu/Error.h> /* PrintDefaultError */
+#include <X11/Xmu/StdSel.h> /* ConvertStandardSelection */
+
+/*
+ * clip lists
+ */
+typedef struct _XmuSegment {
+ int x1, x2;
+ struct _XmuSegment *next;
+} XmuSegment;
+
+typedef struct _XmuScanline {
+ int y;
+ XmuSegment *segment;
+ struct _XmuScanline *next;
+} XmuScanline;
+
+typedef struct _XmuArea {
+ XmuScanline *scanline;
+} XmuArea;
+
+#define XmuCreateArea() XmuNewArea(0, 0, 0, 0)
+#define XmuAreaOr(dst, src) XmuAreaOrXor((dst), (src), True)
+#define XmuAreaXor(dst, src) XmuAreaOrXor((dst), (src), False)
+
+#define XmuDestroyArea(a) \
+ do { \
+ XmuDestroyScanlineList((a)->scanline); \
+ XtFree((char *)(a)); \
+ } while (0)
+
+#define FreeArea(a) \
+ do { \
+ XmuDestroyScanlineList((a)->scanline); \
+ a->scanline = (Scanline *)0; \
+ } while (0)
+
+#define XmuValidSegment(s) ((s)->x1 < (s)->x2)
+#define XmuSegmentEqu(s1, s2) ((s1)->x1 == (s2)->x1 && (s1)->x2 == (s2)->x2)
+#define XmuDestroySegment(s) XtFree((char *)(s))
+
+#define XmuDestroyScanline(s) \
+ do { \
+ XmuDestroySegmentList((s)->segment); \
+ XtFree((char*)(s)); \
+ } while (0)
+
+XmuArea *XmuNewArea(int, int, int, int);
+XmuArea *XmuAreaDup(XmuArea*);
+XmuArea *XmuAreaCopy(XmuArea*, XmuArea*);
+XmuArea *XmuAreaNot(XmuArea*, int, int, int, int);
+XmuArea *XmuAreaOrXor(XmuArea*, XmuArea*, Bool);
+XmuArea *XmuAreaAnd(XmuArea*, XmuArea*);
+Bool XmuValidArea(XmuArea*);
+Bool XmuValidScanline(XmuScanline*);
+Bool XmuScanlineEqu(XmuScanline*, XmuScanline*);
+XmuSegment *XmuNewSegment(int, int);
+void XmuDestroySegmentList(XmuSegment*);
+XmuScanline *XmuScanlineCopy(XmuScanline*, XmuScanline*);
+Bool XmuAppendSegment(XmuSegment*, XmuSegment*);
+XmuScanline *XmuOptimizeScanline(XmuScanline*);
+XmuScanline *XmuScanlineNot(XmuScanline *scanline, int, int);
+XmuScanline *XmuScanlineOr(XmuScanline*, XmuScanline*);
+XmuScanline *XmuScanlineAnd(XmuScanline*, XmuScanline*);
+XmuScanline *XmuScanlineXor(XmuScanline*, XmuScanline*);
+XmuScanline *XmuNewScanline(int, int, int);
+void XmuDestroyScanlineList(XmuScanline*);
+XmuArea *XmuOptimizeArea(XmuArea *area);
+
+#ifndef notdef
+XmuScanline *XmuScanlineOrSegment(XmuScanline*, XmuSegment*);
+XmuScanline *XmuScanlineAndSegment(XmuScanline*, XmuSegment*);
+XmuScanline *XmuScanlineXorSegment(XmuScanline*, XmuSegment*);
+#endif /* notdef */
+
+#ifndef _SYSUTIL_H_
+int XmuSnprintf(char *str, int size, _Xconst char *fmt, ...)
+ _X_ATTRIBUTE_PRINTF(3,4);
+#endif
+
+#endif /* _XMU_H_ */
+
diff --git a/X11/Xpoll.h b/X11/Xpoll.h
new file mode 100644
index 000000000..4c526500b
--- /dev/null
+++ b/X11/Xpoll.h
@@ -0,0 +1,255 @@
+/* $Xorg: Xpoll.h,v 1.4 2001/02/09 02:03:23 xorgcvs Exp $ */
+
+/*
+
+Copyright 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+*/
+
+/*
+ * Copyright © 2005 Daniel Stone
+ *
+ * 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 Daniel Stone not be used in advertising
+ * or publicity pertaining to distribution of the software without specific,
+ * written prior permission. Daniel Stone makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ *
+ * DANIEL STONE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+ * DANIEL STONE 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.
+*/
+
+/* $XFree86: xc/include/Xpoll.h,v 3.8 2001/01/17 17:53:11 dawes Exp $ */
+
+#ifndef _XPOLL_H_
+#define _XPOLL_H_
+
+#ifndef WIN32
+
+#ifndef USE_POLL
+
+#include <X11/Xos.h>
+
+/* Below is the monster branch from hell. Basically, most systems will drop to
+ * 'the branch below is the fallthrough for halfway modern systems', and include
+ * <sys/select.h>, so we get the FD_* macros. */
+#if !defined(DGUX)
+# if (defined(SVR4) || defined(CRAY) || defined(AIXV3)) && !defined(FD_SETSIZE)
+# include <sys/select.h>
+# ifdef luna
+# include <sysent.h>
+# endif
+# else /* not SVR4/CRAY/AIXv3 */
+# if defined(AIXV4) /* AIX 4.2 fubar-ed <sys/select.h>, so try really hard. */
+# if !defined(NFDBITS)
+# include <sys/select.h>
+# endif
+# else /* the branch below is the fallthrough for halfway modern systems */
+# ifdef __QNX__ /* Make sure we get 256 bit select masks */
+# define FD_SETSIZE 256
+# endif
+# include <sys/select.h>
+# endif
+# endif
+#else /* DGUX -- No sys/select in Intel DG/ux */
+# include <sys/time.h>
+# include <sys/types.h>
+# include <unistd.h>
+#endif
+
+#include <X11/Xmd.h>
+
+#ifdef CSRG_BASED
+#include <sys/param.h>
+# if BSD < 199103
+typedef long fd_mask;
+# endif
+#endif
+
+#define XFD_SETSIZE 1024
+
+#ifndef FD_SETSIZE
+#define FD_SETSIZE XFD_SETSIZE
+#endif
+
+#ifndef NBBY
+#define NBBY 8 /* number of bits in a byte */
+#endif
+
+#ifndef NFDBITS
+#define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */
+#endif
+
+#ifndef howmany
+#define howmany(x,y) (((x)+((y)-1))/(y))
+#endif
+
+#if defined(BSD) && BSD < 198911 && !defined(luna)
+typedef struct fd_set {
+ fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)];
+} fd_set;
+#endif
+
+#ifndef hpux /* and perhaps old BSD ??? */
+# define Select(n,r,w,e,t) select(n,(fd_set*)r,(fd_set*)w,(fd_set*)e,(struct timeval*)t)
+#else
+# ifndef _XPG4_EXTENDED /* HPUX 9.x and earlier */
+# define Select(n,r,w,e,t) select(n,(int*)r,(int*)w,(int*)e,(struct timeval*)t)
+# else
+# define Select(n,r,w,e,t) select(n,(fd_set*)r,(fd_set*)w,(fd_set*)e,(struct timeval*)t)
+# endif
+#endif
+
+#define __X_FDS_BITS fds_bits
+
+#ifndef __FDS_BITS
+# define __FDS_BITS(p) ((p)->__X_FDS_BITS)
+#endif
+
+#define __XFDS_BITS(p, n) (__FDS_BITS(p))[n]
+
+#ifndef FD_SET
+#define FD_SET(n, p) (__XFDS_BITS(p, ((n)/NFDBITS)) |= ((fd_mask)1 << ((n) % NFDBITS)))
+#endif
+#ifndef FD_CLR
+#define FD_CLR(n, p) (__XFDS_BITS((p), ((n)/NFDBITS)) &= ~((fd_mask)1 << ((n) % NFDBITS)))
+#endif
+#ifndef FD_ISSET
+#define FD_ISSET(n, p) ((__XFDS_BITS((p), ((n)/NFDBITS))) & ((fd_mask)1 << ((n) % NFDBITS)))
+#endif
+#ifndef FD_ZERO
+#define FD_ZERO(p) bzero((char *)(p), sizeof(*(p)))
+#endif
+
+/*
+ * The howmany(FD_SETSIZE, NFDBITS) computes the number of elements in the
+ * array. before accessing an element in the array we check it exists.
+ * If it does not exist then the compiler discards the code to access it.
+ */
+#define XFD_ANYSET(p) \
+ ((howmany(FD_SETSIZE, NFDBITS) > 0 && (__XFDS_BITS(p, 0))) || \
+ (howmany(FD_SETSIZE, NFDBITS) > 1 && (__XFDS_BITS(p, 1))) || \
+ (howmany(FD_SETSIZE, NFDBITS) > 2 && (__XFDS_BITS(p, 2))) || \
+ (howmany(FD_SETSIZE, NFDBITS) > 3 && (__XFDS_BITS(p, 3))) || \
+ (howmany(FD_SETSIZE, NFDBITS) > 4 && (__XFDS_BITS(p, 4))) || \
+ (howmany(FD_SETSIZE, NFDBITS) > 5 && (__XFDS_BITS(p, 5))) || \
+ (howmany(FD_SETSIZE, NFDBITS) > 6 && (__XFDS_BITS(p, 6))) || \
+ (howmany(FD_SETSIZE, NFDBITS) > 7 && (__XFDS_BITS(p, 7))))
+
+#define XFD_COPYSET(src,dst) { \
+ int __i__; \
+ for (__i__ = 0; __i__ < howmany(FD_SETSIZE, NFDBITS); __i__++) \
+ __XFDS_BITS((dst), __i__) = __XFDS_BITS((src), __i__); \
+ }
+#define XFD_ANDSET(dst,b1,b2) { \
+ int __i__; \
+ for (__i__ = 0; __i__ < howmany(FD_SETSIZE, NFDBITS); __i__++) \
+ __XFDS_BITS((dst), __i__) = ((__XFDS_BITS((b1), __i__)) & (__XFDS_BITS((b2), __i__))); \
+ }
+#define XFD_ORSET(dst,b1,b2) { \
+ int __i__; \
+ for (__i__ = 0; __i__ < howmany(FD_SETSIZE, NFDBITS); __i__++) \
+ __XFDS_BITS((dst), __i__) = ((__XFDS_BITS((b1), __i__)) | (__XFDS_BITS((b2), __i__))); \
+ }
+#define XFD_UNSET(dst,b1) { \
+ int __i__; \
+ for (__i__ = 0; __i__ < howmany(FD_SETSIZE, NFDBITS); __i__++) \
+ __XFDS_BITS((dst), __i__) &= ~(__XFDS_BITS((b1), __i__)); \
+ }
+
+#else /* USE_POLL */
+#include <sys/poll.h>
+#endif /* USE_POLL */
+
+#else /* WIN32 */
+
+#define XFD_SETSIZE 1024
+#ifndef FD_SETSIZE
+#define FD_SETSIZE XFD_SETSIZE
+#endif
+#include <X11/Xwinsock.h>
+
+#define Select(n,r,w,e,t) select(0,(fd_set*)r,(fd_set*)w,(fd_set*)e,(struct timeval*)t)
+
+#define XFD_SETCOUNT(p) (((fd_set FAR *)(p))->fd_count)
+#define XFD_FD(p,i) (((fd_set FAR *)(p))->fd_array[i])
+#define XFD_ANYSET(p) XFD_SETCOUNT(p)
+
+#define XFD_COPYSET(src,dst) { \
+ u_int __i; \
+ FD_ZERO(dst); \
+ for (__i = 0; __i < XFD_SETCOUNT(src) ; __i++) { \
+ XFD_FD(dst,__i) = XFD_FD(src,__i); \
+ } \
+ XFD_SETCOUNT(dst) = XFD_SETCOUNT(src); \
+}
+
+#define XFD_ANDSET(dst,b1,b2) { \
+ u_int __i; \
+ FD_ZERO(dst); \
+ for (__i = 0; __i < XFD_SETCOUNT(b1) ; __i++) { \
+ if (FD_ISSET(XFD_FD(b1,__i), b2)) \
+ FD_SET(XFD_FD(b1,__i), dst); \
+ } \
+}
+
+#define XFD_ORSET(dst,b1,b2) { \
+ u_int __i; \
+ if (dst != b1) XFD_COPYSET(b1,dst); \
+ for (__i = 0; __i < XFD_SETCOUNT(b2) ; __i++) { \
+ if (!FD_ISSET(XFD_FD(b2,__i), dst)) \
+ FD_SET(XFD_FD(b2,__i), dst); \
+ } \
+}
+
+/* this one is really sub-optimal */
+#define XFD_UNSET(dst,b1) { \
+ u_int __i; \
+ for (__i = 0; __i < XFD_SETCOUNT(b1) ; __i++) { \
+ FD_CLR(XFD_FD(b1,__i), dst); \
+ } \
+}
+
+/* we have to pay the price of having an array here, unlike with bitmasks
+ calling twice FD_SET with the same fd is not transparent, so be careful */
+#undef FD_SET
+#define FD_SET(fd,set) do { \
+ if (XFD_SETCOUNT(set) < FD_SETSIZE && !FD_ISSET(fd,set)) \
+ XFD_FD(set,XFD_SETCOUNT(set)++)=(fd); \
+} while(0)
+
+#define getdtablesize() FD_SETSIZE
+
+#endif /* WIN32 */
+
+#endif /* _XPOLL_H_ */
diff --git a/X11/Xregion.h b/X11/Xregion.h
new file mode 100644
index 000000000..70caa1a03
--- /dev/null
+++ b/X11/Xregion.h
@@ -0,0 +1,192 @@
+/************************************************************************
+
+Copyright 1987, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+************************************************************************/
+
+#ifndef _X11_XREGION_H_
+#define _X11_XREGION_H_
+
+typedef struct {
+ short x1, x2, y1, y2;
+} Box, BOX, BoxRec, *BoxPtr;
+
+typedef struct {
+ short x, y, width, height;
+}RECTANGLE, RectangleRec, *RectanglePtr;
+
+#define TRUE 1
+#define FALSE 0
+#ifndef MAXSHORT
+#define MAXSHORT 32767
+#define MINSHORT -MAXSHORT
+#endif
+#ifndef MAX
+#define MAX(a,b) (((a) > (b)) ? (a) : (b))
+#endif
+#ifndef MIN
+#define MIN(a,b) (((a) < (b)) ? (a) : (b))
+#endif
+
+
+/*
+ * clip region
+ */
+
+typedef struct _XRegion {
+ long size;
+ long numRects;
+ BOX *rects;
+ BOX extents;
+} REGION;
+
+/* Xutil.h contains the declaration:
+ * typedef struct _XRegion *Region;
+ */
+
+/* 1 if two BOXs overlap.
+ * 0 if two BOXs do not overlap.
+ * Remember, x2 and y2 are not in the region
+ */
+#define EXTENTCHECK(r1, r2) \
+ ((r1)->x2 > (r2)->x1 && \
+ (r1)->x1 < (r2)->x2 && \
+ (r1)->y2 > (r2)->y1 && \
+ (r1)->y1 < (r2)->y2)
+
+/*
+ * update region extents
+ */
+#define EXTENTS(r,idRect){\
+ if((r)->x1 < (idRect)->extents.x1)\
+ (idRect)->extents.x1 = (r)->x1;\
+ if((r)->y1 < (idRect)->extents.y1)\
+ (idRect)->extents.y1 = (r)->y1;\
+ if((r)->x2 > (idRect)->extents.x2)\
+ (idRect)->extents.x2 = (r)->x2;\
+ if((r)->y2 > (idRect)->extents.y2)\
+ (idRect)->extents.y2 = (r)->y2;\
+ }
+
+/*
+ * Check to see if there is enough memory in the present region.
+ */
+#define MEMCHECK(reg, rect, firstrect){\
+ if ((reg)->numRects >= ((reg)->size - 1)){\
+ BoxPtr tmpRect = Xrealloc ((firstrect), \
+ (2 * (sizeof(BOX)) * ((reg)->size))); \
+ if (tmpRect == NULL) \
+ return(0);\
+ (firstrect) = tmpRect; \
+ (reg)->size *= 2;\
+ (rect) = &(firstrect)[(reg)->numRects];\
+ }\
+ }
+
+/* this routine checks to see if the previous rectangle is the same
+ * or subsumes the new rectangle to add.
+ */
+
+#define CHECK_PREVIOUS(Reg, R, Rx1, Ry1, Rx2, Ry2)\
+ (!(((Reg)->numRects > 0)&&\
+ ((R-1)->y1 == (Ry1)) &&\
+ ((R-1)->y2 == (Ry2)) &&\
+ ((R-1)->x1 <= (Rx1)) &&\
+ ((R-1)->x2 >= (Rx2))))
+
+/* add a rectangle to the given Region */
+#define ADDRECT(reg, r, rx1, ry1, rx2, ry2){\
+ if (((rx1) < (rx2)) && ((ry1) < (ry2)) &&\
+ CHECK_PREVIOUS((reg), (r), (rx1), (ry1), (rx2), (ry2))){\
+ (r)->x1 = (rx1);\
+ (r)->y1 = (ry1);\
+ (r)->x2 = (rx2);\
+ (r)->y2 = (ry2);\
+ EXTENTS((r), (reg));\
+ (reg)->numRects++;\
+ (r)++;\
+ }\
+ }
+
+
+
+/* add a rectangle to the given Region */
+#define ADDRECTNOX(reg, r, rx1, ry1, rx2, ry2){\
+ if ((rx1 < rx2) && (ry1 < ry2) &&\
+ CHECK_PREVIOUS((reg), (r), (rx1), (ry1), (rx2), (ry2))){\
+ (r)->x1 = (rx1);\
+ (r)->y1 = (ry1);\
+ (r)->x2 = (rx2);\
+ (r)->y2 = (ry2);\
+ (reg)->numRects++;\
+ (r)++;\
+ }\
+ }
+
+#define EMPTY_REGION(pReg) pReg->numRects = 0
+
+#define REGION_NOT_EMPTY(pReg) pReg->numRects
+
+#define INBOX(r, x, y) \
+ ( ( ((r).x2 > x)) && \
+ ( ((r).x1 <= x)) && \
+ ( ((r).y2 > y)) && \
+ ( ((r).y1 <= y)) )
+
+/*
+ * number of points to buffer before sending them off
+ * to scanlines() : Must be an even number
+ */
+#define NUMPTSTOBUFFER 200
+
+/*
+ * used to allocate buffers for points and link
+ * the buffers together
+ */
+typedef struct _POINTBLOCK {
+ XPoint pts[NUMPTSTOBUFFER];
+ struct _POINTBLOCK *next;
+} POINTBLOCK;
+
+#endif /* _X11_XREGION_H_ */
diff --git a/X11/Xresource.h b/X11/Xresource.h
new file mode 100644
index 000000000..113f732a5
--- /dev/null
+++ b/X11/Xresource.h
@@ -0,0 +1,358 @@
+
+/***********************************************************
+
+Copyright 1987, 1988, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _X11_XRESOURCE_H_
+#define _X11_XRESOURCE_H_
+
+#ifndef _XP_PRINT_SERVER_
+#include <X11/Xlib.h>
+#endif
+
+/****************************************************************
+ ****************************************************************
+ *** ***
+ *** ***
+ *** X Resource Manager Intrinsics ***
+ *** ***
+ *** ***
+ ****************************************************************
+ ****************************************************************/
+
+_XFUNCPROTOBEGIN
+
+/****************************************************************
+ *
+ * Memory Management
+ *
+ ****************************************************************/
+
+extern char *Xpermalloc(
+ unsigned int /* size */
+);
+
+/****************************************************************
+ *
+ * Quark Management
+ *
+ ****************************************************************/
+
+typedef int XrmQuark, *XrmQuarkList;
+#define NULLQUARK ((XrmQuark) 0)
+
+typedef char *XrmString;
+#define NULLSTRING ((XrmString) 0)
+
+/* find quark for string, create new quark if none already exists */
+extern XrmQuark XrmStringToQuark(
+ _Xconst char* /* string */
+);
+
+extern XrmQuark XrmPermStringToQuark(
+ _Xconst char* /* string */
+);
+
+/* find string for quark */
+extern XrmString XrmQuarkToString(
+ XrmQuark /* quark */
+);
+
+extern XrmQuark XrmUniqueQuark(
+ void
+);
+
+#define XrmStringsEqual(a1, a2) (strcmp(a1, a2) == 0)
+
+
+/****************************************************************
+ *
+ * Conversion of Strings to Lists
+ *
+ ****************************************************************/
+
+typedef enum {XrmBindTightly, XrmBindLoosely} XrmBinding, *XrmBindingList;
+
+extern void XrmStringToQuarkList(
+ _Xconst char* /* string */,
+ XrmQuarkList /* quarks_return */
+);
+
+extern void XrmStringToBindingQuarkList(
+ _Xconst char* /* string */,
+ XrmBindingList /* bindings_return */,
+ XrmQuarkList /* quarks_return */
+);
+
+/****************************************************************
+ *
+ * Name and Class lists.
+ *
+ ****************************************************************/
+
+typedef XrmQuark XrmName;
+typedef XrmQuarkList XrmNameList;
+#define XrmNameToString(name) XrmQuarkToString(name)
+#define XrmStringToName(string) XrmStringToQuark(string)
+#define XrmStringToNameList(str, name) XrmStringToQuarkList(str, name)
+
+typedef XrmQuark XrmClass;
+typedef XrmQuarkList XrmClassList;
+#define XrmClassToString(c_class) XrmQuarkToString(c_class)
+#define XrmStringToClass(c_class) XrmStringToQuark(c_class)
+#define XrmStringToClassList(str,c_class) XrmStringToQuarkList(str, c_class)
+
+
+
+/****************************************************************
+ *
+ * Resource Representation Types and Values
+ *
+ ****************************************************************/
+
+typedef XrmQuark XrmRepresentation;
+#define XrmStringToRepresentation(string) XrmStringToQuark(string)
+#define XrmRepresentationToString(type) XrmQuarkToString(type)
+
+typedef struct {
+ unsigned int size;
+ XPointer addr;
+} XrmValue, *XrmValuePtr;
+
+
+/****************************************************************
+ *
+ * Resource Manager Functions
+ *
+ ****************************************************************/
+
+typedef struct _XrmHashBucketRec *XrmHashBucket;
+typedef XrmHashBucket *XrmHashTable;
+typedef XrmHashTable XrmSearchList[];
+typedef struct _XrmHashBucketRec *XrmDatabase;
+
+
+extern void XrmDestroyDatabase(
+ XrmDatabase /* database */
+);
+
+extern void XrmQPutResource(
+ XrmDatabase* /* database */,
+ XrmBindingList /* bindings */,
+ XrmQuarkList /* quarks */,
+ XrmRepresentation /* type */,
+ XrmValue* /* value */
+);
+
+extern void XrmPutResource(
+ XrmDatabase* /* database */,
+ _Xconst char* /* specifier */,
+ _Xconst char* /* type */,
+ XrmValue* /* value */
+);
+
+extern void XrmQPutStringResource(
+ XrmDatabase* /* database */,
+ XrmBindingList /* bindings */,
+ XrmQuarkList /* quarks */,
+ _Xconst char* /* value */
+);
+
+extern void XrmPutStringResource(
+ XrmDatabase* /* database */,
+ _Xconst char* /* specifier */,
+ _Xconst char* /* value */
+);
+
+extern void XrmPutLineResource(
+ XrmDatabase* /* database */,
+ _Xconst char* /* line */
+);
+
+extern Bool XrmQGetResource(
+ XrmDatabase /* database */,
+ XrmNameList /* quark_name */,
+ XrmClassList /* quark_class */,
+ XrmRepresentation* /* quark_type_return */,
+ XrmValue* /* value_return */
+);
+
+extern Bool XrmGetResource(
+ XrmDatabase /* database */,
+ _Xconst char* /* str_name */,
+ _Xconst char* /* str_class */,
+ char** /* str_type_return */,
+ XrmValue* /* value_return */
+);
+
+extern Bool XrmQGetSearchList(
+ XrmDatabase /* database */,
+ XrmNameList /* names */,
+ XrmClassList /* classes */,
+ XrmSearchList /* list_return */,
+ int /* list_length */
+);
+
+extern Bool XrmQGetSearchResource(
+ XrmSearchList /* list */,
+ XrmName /* name */,
+ XrmClass /* class */,
+ XrmRepresentation* /* type_return */,
+ XrmValue* /* value_return */
+);
+
+/****************************************************************
+ *
+ * Resource Database Management
+ *
+ ****************************************************************/
+
+#ifndef _XP_PRINT_SERVER_
+
+extern void XrmSetDatabase(
+ Display* /* display */,
+ XrmDatabase /* database */
+);
+
+extern XrmDatabase XrmGetDatabase(
+ Display* /* display */
+);
+
+#endif /* !_XP_PRINT_SERVER_ */
+
+extern XrmDatabase XrmGetFileDatabase(
+ _Xconst char* /* filename */
+);
+
+extern Status XrmCombineFileDatabase(
+ _Xconst char* /* filename */,
+ XrmDatabase* /* target */,
+ Bool /* override */
+);
+
+extern XrmDatabase XrmGetStringDatabase(
+ _Xconst char* /* data */ /* null terminated string */
+);
+
+extern void XrmPutFileDatabase(
+ XrmDatabase /* database */,
+ _Xconst char* /* filename */
+);
+
+extern void XrmMergeDatabases(
+ XrmDatabase /* source_db */,
+ XrmDatabase* /* target_db */
+);
+
+extern void XrmCombineDatabase(
+ XrmDatabase /* source_db */,
+ XrmDatabase* /* target_db */,
+ Bool /* override */
+);
+
+#define XrmEnumAllLevels 0
+#define XrmEnumOneLevel 1
+
+extern Bool XrmEnumerateDatabase(
+ XrmDatabase /* db */,
+ XrmNameList /* name_prefix */,
+ XrmClassList /* class_prefix */,
+ int /* mode */,
+ Bool (*)(
+ XrmDatabase* /* db */,
+ XrmBindingList /* bindings */,
+ XrmQuarkList /* quarks */,
+ XrmRepresentation* /* type */,
+ XrmValue* /* value */,
+ XPointer /* closure */
+ ) /* proc */,
+ XPointer /* closure */
+);
+
+extern const char *XrmLocaleOfDatabase(
+ XrmDatabase /* database */
+);
+
+
+/****************************************************************
+ *
+ * Command line option mapping to resource entries
+ *
+ ****************************************************************/
+
+typedef enum {
+ XrmoptionNoArg, /* Value is specified in OptionDescRec.value */
+ XrmoptionIsArg, /* Value is the option string itself */
+ XrmoptionStickyArg, /* Value is characters immediately following option */
+ XrmoptionSepArg, /* Value is next argument in argv */
+ XrmoptionResArg, /* Resource and value in next argument in argv */
+ XrmoptionSkipArg, /* Ignore this option and the next argument in argv */
+ XrmoptionSkipLine, /* Ignore this option and the rest of argv */
+ XrmoptionSkipNArgs /* Ignore this option and the next
+ OptionDescRes.value arguments in argv */
+} XrmOptionKind;
+
+typedef struct {
+ char *option; /* Option abbreviation in argv */
+ char *specifier; /* Resource specifier */
+ XrmOptionKind argKind; /* Which style of option it is */
+ XPointer value; /* Value to provide if XrmoptionNoArg */
+} XrmOptionDescRec, *XrmOptionDescList;
+
+
+extern void XrmParseCommand(
+ XrmDatabase* /* database */,
+ XrmOptionDescList /* table */,
+ int /* table_count */,
+ _Xconst char* /* name */,
+ int* /* argc_in_out */,
+ char** /* argv_in_out */
+);
+
+_XFUNCPROTOEND
+
+#endif /* _X11_XRESOURCE_H_ */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/Xtos.h b/X11/Xtos.h
new file mode 100644
index 000000000..f5cf3a6e2
--- /dev/null
+++ b/X11/Xtos.h
@@ -0,0 +1,72 @@
+/***********************************************************
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _Xtos_h
+#define _Xtos_h
+
+#define ALLOCATE_LOCAL_FALLBACK(_size) XtMalloc((unsigned long)(_size))
+#define DEALLOCATE_LOCAL_FALLBACK(_ptr) XtFree((XtPointer)(_ptr))
+#include <X11/Xalloca.h>
+
+#ifdef CRAY
+#define WORD64
+#endif
+
+#if defined (_LP64) || \
+ defined(__alpha) || defined(__alpha__) || \
+ defined(__ia64__) || defined(ia64) || \
+ defined(__sparc64__) || \
+ defined(__s390x__) || \
+ (defined(__hppa__) && defined(__LP64__)) || \
+ defined(__amd64__) || defined(amd64) || \
+ defined(__powerpc64__) || \
+ (defined(sgi) && (_MIPS_SZLONG == 64))
+#define LONG64
+#endif
+
+#endif /* _Xtos_h */
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/X11/Xutil.h b/X11/Xutil.h
new file mode 100644
index 000000000..62cdf5556
--- /dev/null
+++ b/X11/Xutil.h
@@ -0,0 +1,838 @@
+
+/***********************************************************
+
+Copyright 1987, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+
+Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+#ifndef _X11_XUTIL_H_
+#define _X11_XUTIL_H_
+
+/* You must include <X11/Xlib.h> before including this file */
+#include <X11/Xlib.h>
+#include <X11/keysym.h>
+
+/* The Xlib structs are full of implicit padding to properly align members.
+ We can't clean that up without breaking ABI, so tell clang not to bother
+ complaining about it. */
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+/*
+ * Bitmask returned by XParseGeometry(). Each bit tells if the corresponding
+ * value (x, y, width, height) was found in the parsed string.
+ */
+#define NoValue 0x0000
+#define XValue 0x0001
+#define YValue 0x0002
+#define WidthValue 0x0004
+#define HeightValue 0x0008
+#define AllValues 0x000F
+#define XNegative 0x0010
+#define YNegative 0x0020
+
+/*
+ * new version containing base_width, base_height, and win_gravity fields;
+ * used with WM_NORMAL_HINTS.
+ */
+typedef struct {
+ long flags; /* marks which fields in this structure are defined */
+ int x, y; /* obsolete for new window mgrs, but clients */
+ int width, height; /* should set so old wm's don't mess up */
+ int min_width, min_height;
+ int max_width, max_height;
+ int width_inc, height_inc;
+ struct {
+ int x; /* numerator */
+ int y; /* denominator */
+ } min_aspect, max_aspect;
+ int base_width, base_height; /* added by ICCCM version 1 */
+ int win_gravity; /* added by ICCCM version 1 */
+} XSizeHints;
+
+/*
+ * The next block of definitions are for window manager properties that
+ * clients and applications use for communication.
+ */
+
+/* flags argument in size hints */
+#define USPosition (1L << 0) /* user specified x, y */
+#define USSize (1L << 1) /* user specified width, height */
+
+#define PPosition (1L << 2) /* program specified position */
+#define PSize (1L << 3) /* program specified size */
+#define PMinSize (1L << 4) /* program specified minimum size */
+#define PMaxSize (1L << 5) /* program specified maximum size */
+#define PResizeInc (1L << 6) /* program specified resize increments */
+#define PAspect (1L << 7) /* program specified min and max aspect ratios */
+#define PBaseSize (1L << 8) /* program specified base for incrementing */
+#define PWinGravity (1L << 9) /* program specified window gravity */
+
+/* obsolete */
+#define PAllHints (PPosition|PSize|PMinSize|PMaxSize|PResizeInc|PAspect)
+
+
+
+typedef struct {
+ long flags; /* marks which fields in this structure are defined */
+ Bool input; /* does this application rely on the window manager to
+ get keyboard input? */
+ int initial_state; /* see below */
+ Pixmap icon_pixmap; /* pixmap to be used as icon */
+ Window icon_window; /* window to be used as icon */
+ int icon_x, icon_y; /* initial position of icon */
+ Pixmap icon_mask; /* icon mask bitmap */
+ XID window_group; /* id of related window group */
+ /* this structure may be extended in the future */
+} XWMHints;
+
+/* definition for flags of XWMHints */
+
+#define InputHint (1L << 0)
+#define StateHint (1L << 1)
+#define IconPixmapHint (1L << 2)
+#define IconWindowHint (1L << 3)
+#define IconPositionHint (1L << 4)
+#define IconMaskHint (1L << 5)
+#define WindowGroupHint (1L << 6)
+#define AllHints (InputHint|StateHint|IconPixmapHint|IconWindowHint| \
+IconPositionHint|IconMaskHint|WindowGroupHint)
+#define XUrgencyHint (1L << 8)
+
+/* definitions for initial window state */
+#define WithdrawnState 0 /* for windows that are not mapped */
+#define NormalState 1 /* most applications want to start this way */
+#define IconicState 3 /* application wants to start as an icon */
+
+/*
+ * Obsolete states no longer defined by ICCCM
+ */
+#define DontCareState 0 /* don't know or care */
+#define ZoomState 2 /* application wants to start zoomed */
+#define InactiveState 4 /* application believes it is seldom used; */
+ /* some wm's may put it on inactive menu */
+
+
+/*
+ * new structure for manipulating TEXT properties; used with WM_NAME,
+ * WM_ICON_NAME, WM_CLIENT_MACHINE, and WM_COMMAND.
+ */
+typedef struct {
+ unsigned char *value; /* same as Property routines */
+ Atom encoding; /* prop type */
+ int format; /* prop data format: 8, 16, or 32 */
+ unsigned long nitems; /* number of data items in value */
+} XTextProperty;
+
+#define XNoMemory -1
+#define XLocaleNotSupported -2
+#define XConverterNotFound -3
+
+typedef enum {
+ XStringStyle, /* STRING */
+ XCompoundTextStyle, /* COMPOUND_TEXT */
+ XTextStyle, /* text in owner's encoding (current locale)*/
+ XStdICCTextStyle, /* STRING, else COMPOUND_TEXT */
+ /* The following is an XFree86 extension, introduced in November 2000 */
+ XUTF8StringStyle /* UTF8_STRING */
+} XICCEncodingStyle;
+
+typedef struct {
+ int min_width, min_height;
+ int max_width, max_height;
+ int width_inc, height_inc;
+} XIconSize;
+
+typedef struct {
+ char *res_name;
+ char *res_class;
+} XClassHint;
+
+#ifdef XUTIL_DEFINE_FUNCTIONS
+extern int XDestroyImage(
+ XImage *ximage);
+extern unsigned long XGetPixel(
+ XImage *ximage,
+ int x, int y);
+extern int XPutPixel(
+ XImage *ximage,
+ int x, int y,
+ unsigned long pixel);
+extern XImage *XSubImage(
+ XImage *ximage,
+ int x, int y,
+ unsigned int width, unsigned int height);
+extern int XAddPixel(
+ XImage *ximage,
+ long value);
+#else
+/*
+ * These macros are used to give some sugar to the image routines so that
+ * naive people are more comfortable with them.
+ */
+#define XDestroyImage(ximage) \
+ ((*((ximage)->f.destroy_image))((ximage)))
+#define XGetPixel(ximage, x, y) \
+ ((*((ximage)->f.get_pixel))((ximage), (x), (y)))
+#define XPutPixel(ximage, x, y, pixel) \
+ ((*((ximage)->f.put_pixel))((ximage), (x), (y), (pixel)))
+#define XSubImage(ximage, x, y, width, height) \
+ ((*((ximage)->f.sub_image))((ximage), (x), (y), (width), (height)))
+#define XAddPixel(ximage, value) \
+ ((*((ximage)->f.add_pixel))((ximage), (value)))
+#endif
+
+/*
+ * Compose sequence status structure, used in calling XLookupString.
+ */
+typedef struct _XComposeStatus {
+ XPointer compose_ptr; /* state table pointer */
+ int chars_matched; /* match state */
+} XComposeStatus;
+
+/*
+ * Keysym macros, used on Keysyms to test for classes of symbols
+ */
+#define IsKeypadKey(keysym) \
+ (((KeySym)(keysym) >= XK_KP_Space) && ((KeySym)(keysym) <= XK_KP_Equal))
+
+#define IsPrivateKeypadKey(keysym) \
+ (((KeySym)(keysym) >= 0x11000000) && ((KeySym)(keysym) <= 0x1100FFFF))
+
+#define IsCursorKey(keysym) \
+ (((KeySym)(keysym) >= XK_Home) && ((KeySym)(keysym) < XK_Select))
+
+#define IsPFKey(keysym) \
+ (((KeySym)(keysym) >= XK_KP_F1) && ((KeySym)(keysym) <= XK_KP_F4))
+
+#define IsFunctionKey(keysym) \
+ (((KeySym)(keysym) >= XK_F1) && ((KeySym)(keysym) <= XK_F35))
+
+#define IsMiscFunctionKey(keysym) \
+ (((KeySym)(keysym) >= XK_Select) && ((KeySym)(keysym) <= XK_Break))
+
+#ifdef XK_XKB_KEYS
+#define IsModifierKey(keysym) \
+ ((((KeySym)(keysym) >= XK_Shift_L) && ((KeySym)(keysym) <= XK_Hyper_R)) \
+ || (((KeySym)(keysym) >= XK_ISO_Lock) && \
+ ((KeySym)(keysym) <= XK_ISO_Level5_Lock)) \
+ || ((KeySym)(keysym) == XK_Mode_switch) \
+ || ((KeySym)(keysym) == XK_Num_Lock))
+#else
+#define IsModifierKey(keysym) \
+ ((((KeySym)(keysym) >= XK_Shift_L) && ((KeySym)(keysym) <= XK_Hyper_R)) \
+ || ((KeySym)(keysym) == XK_Mode_switch) \
+ || ((KeySym)(keysym) == XK_Num_Lock))
+#endif
+/*
+ * opaque reference to Region data type
+ */
+typedef struct _XRegion *Region;
+
+/* Return values from XRectInRegion() */
+
+#define RectangleOut 0
+#define RectangleIn 1
+#define RectanglePart 2
+
+
+/*
+ * Information used by the visual utility routines to find desired visual
+ * type from the many visuals a display may support.
+ */
+
+typedef struct {
+ Visual *visual;
+ VisualID visualid;
+ int screen;
+ int depth;
+#if defined(__cplusplus) || defined(c_plusplus)
+ int c_class; /* C++ */
+#else
+ int class;
+#endif
+ unsigned long red_mask;
+ unsigned long green_mask;
+ unsigned long blue_mask;
+ int colormap_size;
+ int bits_per_rgb;
+} XVisualInfo;
+
+#define VisualNoMask 0x0
+#define VisualIDMask 0x1
+#define VisualScreenMask 0x2
+#define VisualDepthMask 0x4
+#define VisualClassMask 0x8
+#define VisualRedMaskMask 0x10
+#define VisualGreenMaskMask 0x20
+#define VisualBlueMaskMask 0x40
+#define VisualColormapSizeMask 0x80
+#define VisualBitsPerRGBMask 0x100
+#define VisualAllMask 0x1FF
+
+/*
+ * This defines a window manager property that clients may use to
+ * share standard color maps of type RGB_COLOR_MAP:
+ */
+typedef struct {
+ Colormap colormap;
+ unsigned long red_max;
+ unsigned long red_mult;
+ unsigned long green_max;
+ unsigned long green_mult;
+ unsigned long blue_max;
+ unsigned long blue_mult;
+ unsigned long base_pixel;
+ VisualID visualid; /* added by ICCCM version 1 */
+ XID killid; /* added by ICCCM version 1 */
+} XStandardColormap;
+
+#define ReleaseByFreeingColormap ((XID) 1L) /* for killid field above */
+
+
+/*
+ * return codes for XReadBitmapFile and XWriteBitmapFile
+ */
+#define BitmapSuccess 0
+#define BitmapOpenFailed 1
+#define BitmapFileInvalid 2
+#define BitmapNoMemory 3
+
+/****************************************************************
+ *
+ * Context Management
+ *
+ ****************************************************************/
+
+
+/* Associative lookup table return codes */
+
+#define XCSUCCESS 0 /* No error. */
+#define XCNOMEM 1 /* Out of memory */
+#define XCNOENT 2 /* No entry in table */
+
+typedef int XContext;
+
+#define XUniqueContext() ((XContext) XrmUniqueQuark())
+#define XStringToContext(string) ((XContext) XrmStringToQuark(string))
+
+_XFUNCPROTOBEGIN
+
+/* The following declarations are alphabetized. */
+
+extern XClassHint *XAllocClassHint (
+ void
+);
+
+extern XIconSize *XAllocIconSize (
+ void
+);
+
+extern XSizeHints *XAllocSizeHints (
+ void
+);
+
+extern XStandardColormap *XAllocStandardColormap (
+ void
+);
+
+extern XWMHints *XAllocWMHints (
+ void
+);
+
+extern int XClipBox(
+ Region /* r */,
+ XRectangle* /* rect_return */
+);
+
+extern Region XCreateRegion(
+ void
+);
+
+extern const char *XDefaultString (void);
+
+extern int XDeleteContext(
+ Display* /* display */,
+ XID /* rid */,
+ XContext /* context */
+);
+
+extern int XDestroyRegion(
+ Region /* r */
+);
+
+extern int XEmptyRegion(
+ Region /* r */
+);
+
+extern int XEqualRegion(
+ Region /* r1 */,
+ Region /* r2 */
+);
+
+extern int XFindContext(
+ Display* /* display */,
+ XID /* rid */,
+ XContext /* context */,
+ XPointer* /* data_return */
+);
+
+extern Status XGetClassHint(
+ Display* /* display */,
+ Window /* w */,
+ XClassHint* /* class_hints_return */
+);
+
+extern Status XGetIconSizes(
+ Display* /* display */,
+ Window /* w */,
+ XIconSize** /* size_list_return */,
+ int* /* count_return */
+);
+
+extern Status XGetNormalHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* hints_return */
+);
+
+extern Status XGetRGBColormaps(
+ Display* /* display */,
+ Window /* w */,
+ XStandardColormap** /* stdcmap_return */,
+ int* /* count_return */,
+ Atom /* property */
+);
+
+extern Status XGetSizeHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* hints_return */,
+ Atom /* property */
+);
+
+extern Status XGetStandardColormap(
+ Display* /* display */,
+ Window /* w */,
+ XStandardColormap* /* colormap_return */,
+ Atom /* property */
+);
+
+extern Status XGetTextProperty(
+ Display* /* display */,
+ Window /* window */,
+ XTextProperty* /* text_prop_return */,
+ Atom /* property */
+);
+
+extern XVisualInfo *XGetVisualInfo(
+ Display* /* display */,
+ long /* vinfo_mask */,
+ XVisualInfo* /* vinfo_template */,
+ int* /* nitems_return */
+);
+
+extern Status XGetWMClientMachine(
+ Display* /* display */,
+ Window /* w */,
+ XTextProperty* /* text_prop_return */
+);
+
+extern XWMHints *XGetWMHints(
+ Display* /* display */,
+ Window /* w */
+);
+
+extern Status XGetWMIconName(
+ Display* /* display */,
+ Window /* w */,
+ XTextProperty* /* text_prop_return */
+);
+
+extern Status XGetWMName(
+ Display* /* display */,
+ Window /* w */,
+ XTextProperty* /* text_prop_return */
+);
+
+extern Status XGetWMNormalHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* hints_return */,
+ long* /* supplied_return */
+);
+
+extern Status XGetWMSizeHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* hints_return */,
+ long* /* supplied_return */,
+ Atom /* property */
+);
+
+extern Status XGetZoomHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* zhints_return */
+);
+
+extern int XIntersectRegion(
+ Region /* sra */,
+ Region /* srb */,
+ Region /* dr_return */
+);
+
+extern void XConvertCase(
+ KeySym /* sym */,
+ KeySym* /* lower */,
+ KeySym* /* upper */
+);
+
+extern int XLookupString(
+ XKeyEvent* /* event_struct */,
+ char* /* buffer_return */,
+ int /* bytes_buffer */,
+ KeySym* /* keysym_return */,
+ XComposeStatus* /* status_in_out */
+);
+
+extern Status XMatchVisualInfo(
+ Display* /* display */,
+ int /* screen */,
+ int /* depth */,
+ int /* class */,
+ XVisualInfo* /* vinfo_return */
+);
+
+extern int XOffsetRegion(
+ Region /* r */,
+ int /* dx */,
+ int /* dy */
+);
+
+extern Bool XPointInRegion(
+ Region /* r */,
+ int /* x */,
+ int /* y */
+);
+
+extern Region XPolygonRegion(
+ XPoint* /* points */,
+ int /* n */,
+ int /* fill_rule */
+);
+
+extern int XRectInRegion(
+ Region /* r */,
+ int /* x */,
+ int /* y */,
+ unsigned int /* width */,
+ unsigned int /* height */
+);
+
+extern int XSaveContext(
+ Display* /* display */,
+ XID /* rid */,
+ XContext /* context */,
+ _Xconst char* /* data */
+);
+
+extern int XSetClassHint(
+ Display* /* display */,
+ Window /* w */,
+ XClassHint* /* class_hints */
+);
+
+extern int XSetIconSizes(
+ Display* /* display */,
+ Window /* w */,
+ XIconSize* /* size_list */,
+ int /* count */
+);
+
+extern int XSetNormalHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* hints */
+);
+
+extern void XSetRGBColormaps(
+ Display* /* display */,
+ Window /* w */,
+ XStandardColormap* /* stdcmaps */,
+ int /* count */,
+ Atom /* property */
+);
+
+extern int XSetSizeHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* hints */,
+ Atom /* property */
+);
+
+extern int XSetStandardProperties(
+ Display* /* display */,
+ Window /* w */,
+ _Xconst char* /* window_name */,
+ _Xconst char* /* icon_name */,
+ Pixmap /* icon_pixmap */,
+ char** /* argv */,
+ int /* argc */,
+ XSizeHints* /* hints */
+);
+
+extern void XSetTextProperty(
+ Display* /* display */,
+ Window /* w */,
+ XTextProperty* /* text_prop */,
+ Atom /* property */
+);
+
+extern void XSetWMClientMachine(
+ Display* /* display */,
+ Window /* w */,
+ XTextProperty* /* text_prop */
+);
+
+extern int XSetWMHints(
+ Display* /* display */,
+ Window /* w */,
+ XWMHints* /* wm_hints */
+);
+
+extern void XSetWMIconName(
+ Display* /* display */,
+ Window /* w */,
+ XTextProperty* /* text_prop */
+);
+
+extern void XSetWMName(
+ Display* /* display */,
+ Window /* w */,
+ XTextProperty* /* text_prop */
+);
+
+extern void XSetWMNormalHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* hints */
+);
+
+extern void XSetWMProperties(
+ Display* /* display */,
+ Window /* w */,
+ XTextProperty* /* window_name */,
+ XTextProperty* /* icon_name */,
+ char** /* argv */,
+ int /* argc */,
+ XSizeHints* /* normal_hints */,
+ XWMHints* /* wm_hints */,
+ XClassHint* /* class_hints */
+);
+
+extern void XmbSetWMProperties(
+ Display* /* display */,
+ Window /* w */,
+ _Xconst char* /* window_name */,
+ _Xconst char* /* icon_name */,
+ char** /* argv */,
+ int /* argc */,
+ XSizeHints* /* normal_hints */,
+ XWMHints* /* wm_hints */,
+ XClassHint* /* class_hints */
+);
+
+extern void Xutf8SetWMProperties(
+ Display* /* display */,
+ Window /* w */,
+ _Xconst char* /* window_name */,
+ _Xconst char* /* icon_name */,
+ char** /* argv */,
+ int /* argc */,
+ XSizeHints* /* normal_hints */,
+ XWMHints* /* wm_hints */,
+ XClassHint* /* class_hints */
+);
+
+extern void XSetWMSizeHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* hints */,
+ Atom /* property */
+);
+
+extern int XSetRegion(
+ Display* /* display */,
+ GC /* gc */,
+ Region /* r */
+);
+
+extern void XSetStandardColormap(
+ Display* /* display */,
+ Window /* w */,
+ XStandardColormap* /* colormap */,
+ Atom /* property */
+);
+
+extern int XSetZoomHints(
+ Display* /* display */,
+ Window /* w */,
+ XSizeHints* /* zhints */
+);
+
+extern int XShrinkRegion(
+ Region /* r */,
+ int /* dx */,
+ int /* dy */
+);
+
+extern Status XStringListToTextProperty(
+ char** /* list */,
+ int /* count */,
+ XTextProperty* /* text_prop_return */
+);
+
+extern int XSubtractRegion(
+ Region /* sra */,
+ Region /* srb */,
+ Region /* dr_return */
+);
+
+extern int XmbTextListToTextProperty(
+ Display* display,
+ char** list,
+ int count,
+ XICCEncodingStyle style,
+ XTextProperty* text_prop_return
+);
+
+extern int XwcTextListToTextProperty(
+ Display* display,
+ wchar_t** list,
+ int count,
+ XICCEncodingStyle style,
+ XTextProperty* text_prop_return
+);
+
+extern int Xutf8TextListToTextProperty(
+ Display* display,
+ char** list,
+ int count,
+ XICCEncodingStyle style,
+ XTextProperty* text_prop_return
+);
+
+extern void XwcFreeStringList(
+ wchar_t** list
+);
+
+extern Status XTextPropertyToStringList(
+ XTextProperty* /* text_prop */,
+ char*** /* list_return */,
+ int* /* count_return */
+);
+
+extern int XmbTextPropertyToTextList(
+ Display* display,
+ const XTextProperty* text_prop,
+ char*** list_return,
+ int* count_return
+);
+
+extern int XwcTextPropertyToTextList(
+ Display* display,
+ const XTextProperty* text_prop,
+ wchar_t*** list_return,
+ int* count_return
+);
+
+extern int Xutf8TextPropertyToTextList(
+ Display* display,
+ const XTextProperty* text_prop,
+ char*** list_return,
+ int* count_return
+);
+
+extern int XUnionRectWithRegion(
+ XRectangle* /* rectangle */,
+ Region /* src_region */,
+ Region /* dest_region_return */
+);
+
+extern int XUnionRegion(
+ Region /* sra */,
+ Region /* srb */,
+ Region /* dr_return */
+);
+
+extern int XWMGeometry(
+ Display* /* display */,
+ int /* screen_number */,
+ _Xconst char* /* user_geometry */,
+ _Xconst char* /* default_geometry */,
+ unsigned int /* border_width */,
+ XSizeHints* /* hints */,
+ int* /* x_return */,
+ int* /* y_return */,
+ int* /* width_return */,
+ int* /* height_return */,
+ int* /* gravity_return */
+);
+
+extern int XXorRegion(
+ Region /* sra */,
+ Region /* srb */,
+ Region /* dr_return */
+);
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+_XFUNCPROTOEND
+
+#endif /* _X11_XUTIL_H_ */
diff --git a/X11/Xw32defs.h b/X11/Xw32defs.h
index b2e4b33ae..f59c6dae7 100644
--- a/X11/Xw32defs.h
+++ b/X11/Xw32defs.h
@@ -27,7 +27,6 @@ typedef char *caddr_t;
# define execve _execve
# define execvp _execvp
# define execvpe _execvpe
-# define fdopen _fdopen
# define fileno _fileno
# define fstat _fstat
# define getcwd _getcwd
@@ -72,8 +71,8 @@ typedef char *caddr_t;
# define S_IEXEC _S_IEXEC
# define F_OK 0
-# define X_OK 1
# define W_OK 2
# define R_OK 4
+# define X_OK R_OK
# endif /* __GNUC__ */
#endif
diff --git a/X11/Xwindows.h b/X11/Xwindows.h
index e6be6eef2..92b8b527b 100644
--- a/X11/Xwindows.h
+++ b/X11/Xwindows.h
@@ -63,7 +63,9 @@ The Open Group.
#define _NO_BOOL_TYPEDEF
#define BOOL WINBOOL
#define INT32 wINT32
+#ifdef Status
#undef Status
+#endif
#define Status wStatus
#define ATOM wATOM
#define BYTE wBYTE
@@ -71,7 +73,7 @@ The Open Group.
#include <windows.h>
#undef NOMINMAX
#undef Status
-#define Status int
+typedef int Status;
#undef BYTE
#undef BOOL
#undef INT32
diff --git a/X11/Xwinsock.h b/X11/Xwinsock.h
index a81dd7a25..5bbb9d1d9 100644
--- a/X11/Xwinsock.h
+++ b/X11/Xwinsock.h
@@ -39,6 +39,10 @@ The Open Group.
# undef XFree86Server
#endif
+#ifndef FD_SETSIZE
+#define FD_SETSIZE 1024
+#endif
+
/*
* mingw-w64 headers define BOOL as a typedef, protecting against macros
* mingw.org headers define BOOL in terms of WINBOOL
@@ -47,14 +51,17 @@ The Open Group.
#define _NO_BOOL_TYPEDEF
#define BOOL WINBOOL
#define INT32 wINT32
+#ifdef Status
#undef Status
+#endif
#define Status wStatus
#define ATOM wATOM
#define BYTE wBYTE
#define FreeResource wFreeResource
#include <winsock2.h>
+#include <ws2tcpip.h>
#undef Status
-#define Status int
+typedef int Status;
#undef BYTE
#undef BOOL
#undef INT32
diff --git a/X11/cursorfont.h b/X11/cursorfont.h
new file mode 100644
index 000000000..d6319b6fa
--- /dev/null
+++ b/X11/cursorfont.h
@@ -0,0 +1,111 @@
+/*
+
+Copyright 1987, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+*/
+
+#ifndef _X11_CURSORFONT_H_
+#define _X11_CURSORFONT_H_
+
+#define XC_num_glyphs 154
+#define XC_X_cursor 0
+#define XC_arrow 2
+#define XC_based_arrow_down 4
+#define XC_based_arrow_up 6
+#define XC_boat 8
+#define XC_bogosity 10
+#define XC_bottom_left_corner 12
+#define XC_bottom_right_corner 14
+#define XC_bottom_side 16
+#define XC_bottom_tee 18
+#define XC_box_spiral 20
+#define XC_center_ptr 22
+#define XC_circle 24
+#define XC_clock 26
+#define XC_coffee_mug 28
+#define XC_cross 30
+#define XC_cross_reverse 32
+#define XC_crosshair 34
+#define XC_diamond_cross 36
+#define XC_dot 38
+#define XC_dotbox 40
+#define XC_double_arrow 42
+#define XC_draft_large 44
+#define XC_draft_small 46
+#define XC_draped_box 48
+#define XC_exchange 50
+#define XC_fleur 52
+#define XC_gobbler 54
+#define XC_gumby 56
+#define XC_hand1 58
+#define XC_hand2 60
+#define XC_heart 62
+#define XC_icon 64
+#define XC_iron_cross 66
+#define XC_left_ptr 68
+#define XC_left_side 70
+#define XC_left_tee 72
+#define XC_leftbutton 74
+#define XC_ll_angle 76
+#define XC_lr_angle 78
+#define XC_man 80
+#define XC_middlebutton 82
+#define XC_mouse 84
+#define XC_pencil 86
+#define XC_pirate 88
+#define XC_plus 90
+#define XC_question_arrow 92
+#define XC_right_ptr 94
+#define XC_right_side 96
+#define XC_right_tee 98
+#define XC_rightbutton 100
+#define XC_rtl_logo 102
+#define XC_sailboat 104
+#define XC_sb_down_arrow 106
+#define XC_sb_h_double_arrow 108
+#define XC_sb_left_arrow 110
+#define XC_sb_right_arrow 112
+#define XC_sb_up_arrow 114
+#define XC_sb_v_double_arrow 116
+#define XC_shuttle 118
+#define XC_sizing 120
+#define XC_spider 122
+#define XC_spraycan 124
+#define XC_star 126
+#define XC_target 128
+#define XC_tcross 130
+#define XC_top_left_arrow 132
+#define XC_top_left_corner 134
+#define XC_top_right_corner 136
+#define XC_top_side 138
+#define XC_top_tee 140
+#define XC_trek 142
+#define XC_ul_angle 144
+#define XC_umbrella 146
+#define XC_ur_angle 148
+#define XC_watch 150
+#define XC_xterm 152
+
+#endif /* _X11_CURSORFONT_H_ */
diff --git a/X11/extensions/MITMisc.h b/X11/extensions/MITMisc.h
index 975700e01..4cfb334ee 100644
--- a/X11/extensions/MITMisc.h
+++ b/X11/extensions/MITMisc.h
@@ -26,21 +26,11 @@ in this Software without prior written authorization from The Open Group.
/* RANDOM CRUFT! THIS HAS NO OFFICIAL X CONSORTIUM OR X PROJECT TEAM BLESSING */
-/* $Xorg: MITMisc.h,v 1.4 2001/02/09 02:03:23 xorgcvs Exp $ */
-
#ifndef _XMITMISC_H_
#define _XMITMISC_H_
#include <X11/Xfuncproto.h>
-
-#define X_MITSetBugMode 0
-#define X_MITGetBugMode 1
-
-#define MITMiscNumberEvents 0
-
-#define MITMiscNumberErrors 0
-
-#ifndef _MITMISC_SERVER_
+#include <X11/extensions/mitmiscconst.h>
_XFUNCPROTOBEGIN
@@ -62,5 +52,3 @@ Bool XMITMiscGetBugMode(
_XFUNCPROTOEND
#endif
-
-#endif
diff --git a/X11/extensions/XEVI.h b/X11/extensions/XEVI.h
index d8e37ff4f..9ca441200 100644
--- a/X11/extensions/XEVI.h
+++ b/X11/extensions/XEVI.h
@@ -1,4 +1,3 @@
-/* $Xorg: XEVI.h,v 1.3 2000/08/18 04:05:44 coskrey Exp $ */
/************************************************************
Copyright (c) 1997 by Silicon Graphics Computer Systems, Inc.
Permission to use, copy, modify, and distribute this
@@ -21,17 +20,12 @@ 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.
********************************************************/
-/* $XFree86$ */
#ifndef _XEVI_H_
#define _XEVI_H_
#include <X11/Xfuncproto.h>
-#define X_EVIQueryVersion 0
-#define X_EVIGetVisualInfo 1
-#define XEVI_TRANSPARENCY_NONE 0
-#define XEVI_TRANSPARENCY_PIXEL 1
-#define XEVI_TRANSPARENCY_MASK 2
-#ifndef _XEVI_SERVER_
+#include <X11/extensions/EVI.h>
+
typedef struct {
VisualID core_visual_id;
int screen;
@@ -43,7 +37,9 @@ typedef struct {
unsigned int num_colormap_conflicts;
VisualID* colormap_conflicts;
} ExtendedVisualInfo;
+
_XFUNCPROTOBEGIN
+
Bool XeviQueryExtension(
Display* /* dpy */
);
@@ -59,6 +55,7 @@ Status XeviGetVisualInfo(
ExtendedVisualInfo** /* extendedVisualInfo_return */,
int* /* nInfo_return */
);
+
_XFUNCPROTOEND
-#endif
+
#endif
diff --git a/X11/extensions/XI2proto.h b/X11/extensions/XI2proto.h
index 4cdaa0dfb..ad461cd9b 100644
--- a/X11/extensions/XI2proto.h
+++ b/X11/extensions/XI2proto.h
@@ -105,6 +105,11 @@
* COMMON STRUCTS *
* *
*************************************************************************************/
+#ifdef _MSC_VER
+typedef int int32_t;
+typedef unsigned uint32_t;
+#endif
+
/** Fixed point 16.16 */
typedef int32_t FP1616;
diff --git a/X11/extensions/XKBbells.h b/X11/extensions/XKBbells.h
index 16a9275ea..c78811b27 100644
--- a/X11/extensions/XKBbells.h
+++ b/X11/extensions/XKBbells.h
@@ -1,7 +1,6 @@
#ifndef _XKBBELLS_H_
#define _XKBBELLS_H_ 1
-/* $Xorg: XKBbells.h,v 1.3 2000/08/17 19:46:42 cpqbld Exp $ */
/************************************************************
Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc.
@@ -27,7 +26,6 @@
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
-/* $XFree86$ */
#define XkbBN_Info "Info"
#define XkbBN_Warning "Warning"
diff --git a/X11/extensions/XKBconfig.h b/X11/extensions/XKBconfig.h
index fbc6a600e..4816917c8 100644
--- a/X11/extensions/XKBconfig.h
+++ b/X11/extensions/XKBconfig.h
@@ -1,7 +1,6 @@
#ifndef _XKBCONFIG_H_
#define _XKBCONFIG_H_ 1
-/* $Xorg: XKBconfig.h,v 1.3 2000/08/17 19:46:42 cpqbld Exp $ */
/************************************************************
Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc.
@@ -27,7 +26,6 @@
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
-/* $XFree86: xc/lib/xkbfile/XKBconfig.h,v 3.5 2001/01/17 19:43:39 dawes Exp $ */
typedef struct _XkbConfigRtrn *XkbConfigRtrnPtr;
diff --git a/X11/extensions/XKBfile.h b/X11/extensions/XKBfile.h
index bbd7e6fcd..0d2f52bde 100644
--- a/X11/extensions/XKBfile.h
+++ b/X11/extensions/XKBfile.h
@@ -1,9 +1,7 @@
-/* $XFree86: xc/lib/xkbfile/XKBfile.h,v 3.6 2003/10/24 16:33:09 tsi Exp $ */
#ifndef _XKBFILE_H_
#define _XKBFILE_H_ 1
-/* $Xorg: XKBfile.h,v 1.3 2000/08/17 19:46:43 cpqbld Exp $ */
/************************************************************
Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc.
@@ -12,19 +10,19 @@
fee is hereby granted, 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 Silicon Graphics not be
- used in advertising or publicity pertaining to distribution
+ documentation, and that the name of Silicon Graphics not be
+ used in advertising or publicity pertaining to distribution
of the software without specific prior written permission.
- Silicon Graphics makes no representation about the suitability
+ Silicon Graphics makes no representation about the suitability
of this software for any purpose. It is provided "as is"
without any express or implied warranty.
-
- SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
- SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+
+ SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+ SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
- GRAPHICS 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
+ GRAPHICS 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.
@@ -85,9 +83,9 @@ typedef void (*XkbFileAddOnFunc)(
#define _XkbErrXReqFailure 25
#define _XkbErrBadImplementation 26
-extern char * _XkbErrMessages[];
+extern const char * _XkbErrMessages[];
extern unsigned _XkbErrCode;
-extern char * _XkbErrLocation;
+extern const char * _XkbErrLocation;
extern unsigned _XkbErrData;
/***====================================================================***/
@@ -287,7 +285,7 @@ typedef struct _XkbDrawable {
XkbSectionPtr section;
} u;
struct _XkbDrawable * next;
-} XkbDrawableRec,*XkbDrawablePtr;
+} XkbDrawableRec,*XkbDrawablePtr;
extern XkbDrawablePtr
XkbGetOrderedDrawables(
diff --git a/X11/extensions/XKBrules.h b/X11/extensions/XKBrules.h
index 0d77ca323..f898da8d9 100644
--- a/X11/extensions/XKBrules.h
+++ b/X11/extensions/XKBrules.h
@@ -1,7 +1,6 @@
#ifndef _XKBRULES_H_
#define _XKBRULES_H_ 1
-/* $Xorg: XKBrules.h,v 1.3 2000/08/17 19:46:43 cpqbld Exp $ */
/************************************************************
Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc.
@@ -27,7 +26,6 @@
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
-/* $XFree86: xc/lib/xkbfile/XKBrules.h,v 3.5 2002/11/26 01:43:25 dawes Exp $ */
/***====================================================================***/
@@ -181,7 +179,7 @@ extern void XkbRF_Free(
#define _XKB_RF_NAMES_PROP_MAXLEN 1024
#ifndef XKB_IN_SERVER
-
+#ifndef _MSC_VER
extern Bool XkbRF_GetNamesProp(
Display * /* dpy */,
char ** /* rules_file_rtrn */,
@@ -195,6 +193,7 @@ extern Bool XkbRF_SetNamesProp(
);
#endif
+#endif
_XFUNCPROTOEND
diff --git a/X11/extensions/XKM.h b/X11/extensions/XKM.h
index c6c9f5195..13dbed54c 100644
--- a/X11/extensions/XKM.h
+++ b/X11/extensions/XKM.h
@@ -1,4 +1,3 @@
-/* $Xorg: XKM.h,v 1.3 2000/08/17 19:46:43 cpqbld Exp $ */
/************************************************************
Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc.
diff --git a/X11/extensions/XKMformat.h b/X11/extensions/XKMformat.h
index 154da5694..6204e5da8 100644
--- a/X11/extensions/XKMformat.h
+++ b/X11/extensions/XKMformat.h
@@ -1,4 +1,3 @@
-/* $Xorg: XKMformat.h,v 1.3 2000/08/17 19:46:43 cpqbld Exp $ */
/************************************************************
Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc.
@@ -24,7 +23,6 @@
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
-/* $XFree86$ */
#ifndef _XKMFORMAT_H_
#define _XKMFORMAT_H_ 1
diff --git a/X11/extensions/XLbx.h b/X11/extensions/XLbx.h
index 01d44f090..1af4f9ce2 100644
--- a/X11/extensions/XLbx.h
+++ b/X11/extensions/XLbx.h
@@ -1,4 +1,3 @@
-/* $Xorg: XLbx.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
/*
* Copyright 1992 Network Computing Devices
*
@@ -16,120 +15,18 @@
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD.
* 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
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
*/
-/* $XFree86: xc/include/extensions/XLbx.h,v 1.3 2002/10/16 01:59:55 dawes Exp $ */
-
+
#ifndef _XLBX_H_
#define _XLBX_H_
#include <X11/Xfuncproto.h>
-
-/*
- * NOTE: any changes or additions to the opcodes needs to be reflected
- * in the lbxCacheable array in Xserver/lbx/lbxmain.c
- */
-
-#define X_LbxQueryVersion 0
-#define X_LbxStartProxy 1
-#define X_LbxStopProxy 2
-#define X_LbxSwitch 3
-#define X_LbxNewClient 4
-#define X_LbxCloseClient 5
-#define X_LbxModifySequence 6
-#define X_LbxAllowMotion 7
-#define X_LbxIncrementPixel 8
-#define X_LbxDelta 9
-#define X_LbxGetModifierMapping 10
-#define X_LbxInvalidateTag 12
-#define X_LbxPolyPoint 13
-#define X_LbxPolyLine 14
-#define X_LbxPolySegment 15
-#define X_LbxPolyRectangle 16
-#define X_LbxPolyArc 17
-#define X_LbxFillPoly 18
-#define X_LbxPolyFillRectangle 19
-#define X_LbxPolyFillArc 20
-#define X_LbxGetKeyboardMapping 21
-#define X_LbxQueryFont 22
-#define X_LbxChangeProperty 23
-#define X_LbxGetProperty 24
-#define X_LbxTagData 25
-
-#define X_LbxCopyArea 26
-#define X_LbxCopyPlane 27
-#define X_LbxPolyText8 28
-#define X_LbxPolyText16 29
-#define X_LbxImageText8 30
-#define X_LbxImageText16 31
-
-#define X_LbxQueryExtension 32
-#define X_LbxPutImage 33
-#define X_LbxGetImage 34
-
-#define X_LbxBeginLargeRequest 35
-#define X_LbxLargeRequestData 36
-#define X_LbxEndLargeRequest 37
-
-#define X_LbxInternAtoms 38
-#define X_LbxGetWinAttrAndGeom 39
-
-#define X_LbxGrabCmap 40
-#define X_LbxReleaseCmap 41
-#define X_LbxAllocColor 42
-
-#define X_LbxSync 43
-
-#define LbxNumberReqs 44
-
-
-#define LbxEvent 0
-#define LbxQuickMotionDeltaEvent 1
-#define LbxNumberEvents 2
-
-/* This is always the master client */
-#define LbxMasterClientIndex 0
-
-/* LbxEvent lbxType sub-fields */
-#define LbxSwitchEvent 0
-#define LbxCloseEvent 1
-#define LbxDeltaEvent 2
-#define LbxInvalidateTagEvent 3
-#define LbxSendTagDataEvent 4
-#define LbxListenToOne 5
-#define LbxListenToAll 6
-#define LbxMotionDeltaEvent 7
-#define LbxReleaseCmapEvent 8
-#define LbxFreeCellsEvent 9
-
-/*
- * Lbx image compression methods
- *
- * No compression is always assigned the value of 0.
- *
- * The rest of the compression method opcodes are assigned dynamically
- * at option negotiation time.
- */
-
-#define LbxImageCompressNone 0
-
-
-#define BadLbxClient 0
-#define LbxNumberErrors (BadLbxClient + 1)
-
-/* tagged data types */
-#define LbxTagTypeModmap 1
-#define LbxTagTypeKeymap 2
-#define LbxTagTypeProperty 3
-#define LbxTagTypeFont 4
-#define LbxTagTypeConnInfo 5
-
-#ifndef _XLBX_SERVER_
-
#include <X11/Xdefs.h>
#include <X11/Xlib.h>
+#include <X11/extensions/lbx.h>
_XFUNCPROTOBEGIN
@@ -151,5 +48,3 @@ int XLbxGetEventBase(Display *dpy);
_XFUNCPROTOEND
#endif
-
-#endif
diff --git a/X11/extensions/XShm.h b/X11/extensions/XShm.h
index 4ae14ca8b..23f065115 100644
--- a/X11/extensions/XShm.h
+++ b/X11/extensions/XShm.h
@@ -1,4 +1,3 @@
-/* $XFree86: xc/include/extensions/XShm.h,v 1.11 2003/04/03 15:11:07 dawes Exp $ */
/************************************************************
Copyright 1989, 1998 The Open Group
@@ -27,29 +26,15 @@ in this Software without prior written authorization from The Open Group.
/* THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION */
-/* $Xorg: XShm.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */
-
#ifndef _XSHM_H_
#define _XSHM_H_
#include <X11/Xfuncproto.h>
+#include <X11/extensions/shm.h>
-#define X_ShmQueryVersion 0
-#define X_ShmAttach 1
-#define X_ShmDetach 2
-#define X_ShmPutImage 3
-#define X_ShmGetImage 4
-#define X_ShmCreatePixmap 5
-
-#define ShmCompletion 0
-#define ShmNumberEvents (ShmCompletion + 1)
-
-#define BadShmSeg 0
-#define ShmNumberErrors (BadShmSeg + 1)
-
+#ifndef _XSHM_SERVER_
typedef unsigned long ShmSeg;
-#ifndef _XSHM_SERVER_
typedef struct {
int type; /* of event */
unsigned long serial; /* # of last request processed by server */
@@ -90,17 +75,17 @@ int XShmPixmapFormat(
Display* /* dpy */
);
-Status XShmAttach(
+Bool XShmAttach(
Display* /* dpy */,
XShmSegmentInfo* /* shminfo */
);
-Status XShmDetach(
+Bool XShmDetach(
Display* /* dpy */,
XShmSegmentInfo* /* shminfo */
);
-Status XShmPutImage(
+Bool XShmPutImage(
Display* /* dpy */,
Drawable /* d */,
GC /* gc */,
@@ -114,7 +99,7 @@ Status XShmPutImage(
Bool /* send_event */
);
-Status XShmGetImage(
+Bool XShmGetImage(
Display* /* dpy */,
Drawable /* d */,
XImage* /* image */,
@@ -145,17 +130,6 @@ Pixmap XShmCreatePixmap(
);
_XFUNCPROTOEND
-
-#else /* _XSHM_SERVER_ */
-
-#include "screenint.h"
-#include "pixmap.h"
-#include "gc.h"
-
-extern void ShmRegisterFbFuncs(
- ScreenPtr /* pScreen */
-);
-
-#endif
+#endif /* _XSHM_SERVER_ */
#endif
diff --git a/X11/extensions/Xag.h b/X11/extensions/Xag.h
index 815f2b9f9..9f69f7875 100644
--- a/X11/extensions/Xag.h
+++ b/X11/extensions/Xag.h
@@ -1,4 +1,3 @@
-/* $XFree86: xc/include/extensions/Xag.h,v 1.5 2001/12/17 20:52:24 dawes Exp $ */
/*
Copyright 1996, 1998 The Open Group
@@ -24,34 +23,13 @@ not be used in advertising or otherwise to promote the sale, use or
other dealings in this Software without prior written authorization
from The Open Group.
*/
-/* $Xorg: Xag.h,v 1.5 2001/02/09 02:03:24 xorgcvs Exp $ */
#ifndef _XAG_H_
#define _XAG_H_
+#include <X11/extensions/ag.h>
#include <X11/Xfuncproto.h>
-#define X_XagQueryVersion 0
-#define X_XagCreate 1
-#define X_XagDestroy 2
-#define X_XagGetAttr 3
-#define X_XagQuery 4
-#define X_XagCreateAssoc 5
-#define X_XagDestroyAssoc 6
-
-#define XagBadAppGroup 0
-#define XagNumberErrors (XagBadAppGroup + 1)
-
-#define XagNsingleScreen 7
-#define XagNdefaultRoot 1
-#define XagNrootVisual 2
-#define XagNdefaultColormap 3
-#define XagNblackPixel 4
-#define XagNwhitePixel 5
-#define XagNappGroupLeader 6
-
-#ifndef _XAG_SERVER_
-
#include <stdarg.h>
_XFUNCPROTOBEGIN
@@ -108,7 +86,5 @@ Status XagDestroyAssociation(
_XFUNCPROTOEND
-#endif /* _XAG_SERVER_ */
-
#endif /* _XAG_H_ */
diff --git a/X11/extensions/Xcup.h b/X11/extensions/Xcup.h
index b1df039e6..c8074cf3d 100644
--- a/X11/extensions/Xcup.h
+++ b/X11/extensions/Xcup.h
@@ -1,4 +1,3 @@
-/* $Xorg: Xcup.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */
/*
Copyright 1987, 1988, 1998 The Open Group
@@ -24,20 +23,12 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
-/* $XFree86$ */
#ifndef _XCUP_H_
#define _XCUP_H_
#include <X11/Xfuncproto.h>
-
-#define X_XcupQueryVersion 0
-#define X_XcupGetReservedColormapEntries 1
-#define X_XcupStoreColors 2
-
-#define XcupNumberErrors 0
-
-#ifndef _XCUP_SERVER_
+#include <X11/extensions/cup.h>
_XFUNCPROTOBEGIN
@@ -63,7 +54,5 @@ Status XcupStoreColors(
_XFUNCPROTOEND
-#endif /* _XCUP_SERVER_ */
-
#endif /* _XCUP_H_ */
diff --git a/X11/extensions/Xdbe.h b/X11/extensions/Xdbe.h
index f9205a228..5c842a445 100644
--- a/X11/extensions/Xdbe.h
+++ b/X11/extensions/Xdbe.h
@@ -1,6 +1,5 @@
-/* $Xorg: Xdbe.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
/******************************************************************************
- *
+ *
* Copyright (c) 1994, 1995 Hewlett-Packard Company
*
* Permission is hereby granted, free of charge, to any person obtaining
@@ -10,10 +9,10 @@
* 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:
- *
+ *
* The above copyright notice and this permission notice 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 NONINFRINGEMENT.
@@ -21,34 +20,37 @@
* 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.
- *
+ *
* Except as contained in this notice, the name of the Hewlett-Packard
* Company shall not be used in advertising or otherwise to promote the
* sale, use or other dealings in this Software without prior written
* authorization from the Hewlett-Packard Company.
- *
+ *
* Header file for Xlib-related DBE
*
*****************************************************************************/
-/* $XFree86: xc/include/extensions/Xdbe.h,v 3.2 2001/08/01 00:44:35 tsi Exp $ */
#ifndef XDBE_H
#define XDBE_H
-
-/* INCLUDES */
-
#include <X11/Xfuncproto.h>
-#include <X11/extensions/Xdbeproto.h>
-
+#include <X11/extensions/dbe.h>
-/* DEFINES */
-
-/* Errors */
-#define XdbeBadBuffer 0
+typedef struct
+{
+ VisualID visual; /* one visual ID that supports double-buffering */
+ int depth; /* depth of visual in bits */
+ int perflevel; /* performance level of visual */
+}
+XdbeVisualInfo;
+typedef struct
+{
+ int count; /* number of items in visual_depth */
+ XdbeVisualInfo *visinfo; /* list of visuals & depths for scrn */
+}
+XdbeScreenVisualInfo;
-/* TYPEDEFS */
typedef Drawable XdbeBackBuffer;
diff --git a/X11/extensions/Xext.h b/X11/extensions/Xext.h
index 5b62c8b2d..858592b78 100644
--- a/X11/extensions/Xext.h
+++ b/X11/extensions/Xext.h
@@ -1,5 +1,4 @@
/*
- * $Xorg: Xext.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $
*
Copyright 1989, 1998 The Open Group
@@ -23,7 +22,6 @@ Except as contained in this notice, the name of The Open Group shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
-/* $XFree86: xc/include/extensions/Xext.h,v 1.4 2001/12/14 19:53:28 dawes Exp $ */
#ifndef _XEXT_H_
#define _XEXT_H_
@@ -32,16 +30,14 @@ in this Software without prior written authorization from The Open Group.
_XFUNCPROTOBEGIN
-extern int (*XSetExtensionErrorHandler(
- int (*handler)(
- Display *,
- char *,
- char *
- )
-))(
- Display *,
- char *,
- char *
+typedef int (*XextErrorHandler) (
+ Display * /* dpy */,
+ _Xconst char* /* ext_name */,
+ _Xconst char* /* reason */
+);
+
+extern XextErrorHandler XSetExtensionErrorHandler(
+ XextErrorHandler /* handler */
);
extern int XMissingExtension(
diff --git a/X11/extensions/Xge.h b/X11/extensions/Xge.h
index 84fa250da..76b5a6a01 100644
--- a/X11/extensions/Xge.h
+++ b/X11/extensions/Xge.h
@@ -36,14 +36,17 @@
_XFUNCPROTOBEGIN
/**
- * Generic Event mask.
+ * Generic Event mask.
* To be used whenever a list of masks per extension has to be provided.
+ *
+ * But, don't actually use the CARD{8,16,32} types. We can't get them them
+ * defined here without polluting the namespace.
*/
typedef struct {
- CARD8 extension;
- CARD8 pad0;
- CARD16 pad1;
- CARD32 evmask;
+ unsigned char extension;
+ unsigned char pad0;
+ unsigned short pad1;
+ unsigned int evmask;
} XGenericEventMask;
Bool XGEQueryExtension(Display* dpy, int *event_basep, int *err_basep);
diff --git a/X11/extensions/Xinerama.h b/X11/extensions/Xinerama.h
new file mode 100644
index 000000000..666f52a78
--- /dev/null
+++ b/X11/extensions/Xinerama.h
@@ -0,0 +1,74 @@
+/*
+
+Copyright 2003 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+#ifndef _Xinerama_h
+#define _Xinerama_h
+
+#include <X11/Xlib.h>
+
+typedef struct {
+ int screen_number;
+ short x_org;
+ short y_org;
+ short width;
+ short height;
+} XineramaScreenInfo;
+
+_XFUNCPROTOBEGIN
+
+Bool XineramaQueryExtension (
+ Display *dpy,
+ int *event_base,
+ int *error_base
+);
+
+Status XineramaQueryVersion(
+ Display *dpy,
+ int *major_versionp,
+ int *minor_versionp
+);
+
+Bool XineramaIsActive(Display *dpy);
+
+
+/*
+ Returns the number of heads and a pointer to an array of
+ structures describing the position and size of the individual
+ heads. Returns NULL and number = 0 if Xinerama is not active.
+
+ Returned array should be freed with XFree().
+*/
+
+XineramaScreenInfo *
+XineramaQueryScreens(
+ Display *dpy,
+ int *number
+);
+
+_XFUNCPROTOEND
+
+#endif /* _Xinerama_h */
+
diff --git a/X11/extensions/Xrender.h b/X11/extensions/Xrender.h
new file mode 100644
index 000000000..5248e99bd
--- /dev/null
+++ b/X11/extensions/Xrender.h
@@ -0,0 +1,528 @@
+/*
+ *
+ * Copyright © 2000 SuSE, Inc.
+ *
+ * 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 SuSE not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. SuSE makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ *
+ * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
+ * 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.
+ *
+ * Author: Keith Packard, SuSE, Inc.
+ */
+
+#ifndef _XRENDER_H_
+#define _XRENDER_H_
+
+#include <X11/Xlib.h>
+#include <X11/Xfuncproto.h>
+#include <X11/Xosdefs.h>
+#include <X11/Xutil.h>
+
+#include <X11/extensions/render.h>
+
+typedef struct {
+ short red;
+ short redMask;
+ short green;
+ short greenMask;
+ short blue;
+ short blueMask;
+ short alpha;
+ short alphaMask;
+} XRenderDirectFormat;
+
+typedef struct {
+ PictFormat id;
+ int type;
+ int depth;
+ XRenderDirectFormat direct;
+ Colormap colormap;
+} XRenderPictFormat;
+
+#define PictFormatID (1 << 0)
+#define PictFormatType (1 << 1)
+#define PictFormatDepth (1 << 2)
+#define PictFormatRed (1 << 3)
+#define PictFormatRedMask (1 << 4)
+#define PictFormatGreen (1 << 5)
+#define PictFormatGreenMask (1 << 6)
+#define PictFormatBlue (1 << 7)
+#define PictFormatBlueMask (1 << 8)
+#define PictFormatAlpha (1 << 9)
+#define PictFormatAlphaMask (1 << 10)
+#define PictFormatColormap (1 << 11)
+
+typedef struct _XRenderPictureAttributes {
+ int repeat;
+ Picture alpha_map;
+ int alpha_x_origin;
+ int alpha_y_origin;
+ int clip_x_origin;
+ int clip_y_origin;
+ Pixmap clip_mask;
+ Bool graphics_exposures;
+ int subwindow_mode;
+ int poly_edge;
+ int poly_mode;
+ Atom dither;
+ Bool component_alpha;
+} XRenderPictureAttributes;
+
+typedef struct {
+ unsigned short red;
+ unsigned short green;
+ unsigned short blue;
+ unsigned short alpha;
+} XRenderColor;
+
+typedef struct _XGlyphInfo {
+ unsigned short width;
+ unsigned short height;
+ short x;
+ short y;
+ short xOff;
+ short yOff;
+} XGlyphInfo;
+
+typedef struct _XGlyphElt8 {
+ GlyphSet glyphset;
+ _Xconst char *chars;
+ int nchars;
+ int xOff;
+ int yOff;
+} XGlyphElt8;
+
+typedef struct _XGlyphElt16 {
+ GlyphSet glyphset;
+ _Xconst unsigned short *chars;
+ int nchars;
+ int xOff;
+ int yOff;
+} XGlyphElt16;
+
+typedef struct _XGlyphElt32 {
+ GlyphSet glyphset;
+ _Xconst unsigned int *chars;
+ int nchars;
+ int xOff;
+ int yOff;
+} XGlyphElt32;
+
+typedef double XDouble;
+
+typedef struct _XPointDouble {
+ XDouble x, y;
+} XPointDouble;
+
+#define XDoubleToFixed(f) ((XFixed) ((f) * 65536))
+#define XFixedToDouble(f) (((XDouble) (f)) / 65536)
+
+typedef int XFixed;
+
+typedef struct _XPointFixed {
+ XFixed x, y;
+} XPointFixed;
+
+typedef struct _XLineFixed {
+ XPointFixed p1, p2;
+} XLineFixed;
+
+typedef struct _XTriangle {
+ XPointFixed p1, p2, p3;
+} XTriangle;
+
+typedef struct _XCircle {
+ XFixed x;
+ XFixed y;
+ XFixed radius;
+} XCircle;
+
+typedef struct _XTrapezoid {
+ XFixed top, bottom;
+ XLineFixed left, right;
+} XTrapezoid;
+
+typedef struct _XTransform {
+ XFixed matrix[3][3];
+} XTransform;
+
+typedef struct _XFilters {
+ int nfilter;
+ char **filter;
+ int nalias;
+ short *alias;
+} XFilters;
+
+typedef struct _XIndexValue {
+ unsigned long pixel;
+ unsigned short red, green, blue, alpha;
+} XIndexValue;
+
+typedef struct _XAnimCursor {
+ Cursor cursor;
+ unsigned long delay;
+} XAnimCursor;
+
+typedef struct _XSpanFix {
+ XFixed left, right, y;
+} XSpanFix;
+
+typedef struct _XTrap {
+ XSpanFix top, bottom;
+} XTrap;
+
+typedef struct _XLinearGradient {
+ XPointFixed p1;
+ XPointFixed p2;
+} XLinearGradient;
+
+typedef struct _XRadialGradient {
+ XCircle inner;
+ XCircle outer;
+} XRadialGradient;
+
+typedef struct _XConicalGradient {
+ XPointFixed center;
+ XFixed angle; /* in degrees */
+} XConicalGradient;
+
+_XFUNCPROTOBEGIN
+
+Bool XRenderQueryExtension (Display *dpy, int *event_basep, int *error_basep);
+
+Status XRenderQueryVersion (Display *dpy,
+ int *major_versionp,
+ int *minor_versionp);
+
+Status XRenderQueryFormats (Display *dpy);
+
+int XRenderQuerySubpixelOrder (Display *dpy, int screen);
+
+Bool XRenderSetSubpixelOrder (Display *dpy, int screen, int subpixel);
+
+XRenderPictFormat *
+XRenderFindVisualFormat (Display *dpy, _Xconst Visual *visual);
+
+XRenderPictFormat *
+XRenderFindFormat (Display *dpy,
+ unsigned long mask,
+ _Xconst XRenderPictFormat *templ,
+ int count);
+
+#define PictStandardARGB32 0
+#define PictStandardRGB24 1
+#define PictStandardA8 2
+#define PictStandardA4 3
+#define PictStandardA1 4
+#define PictStandardNUM 5
+
+XRenderPictFormat *
+XRenderFindStandardFormat (Display *dpy,
+ int format);
+
+XIndexValue *
+XRenderQueryPictIndexValues(Display *dpy,
+ _Xconst XRenderPictFormat *format,
+ int *num);
+
+Picture
+XRenderCreatePicture (Display *dpy,
+ Drawable drawable,
+ _Xconst XRenderPictFormat *format,
+ unsigned long valuemask,
+ _Xconst XRenderPictureAttributes *attributes);
+
+void
+XRenderChangePicture (Display *dpy,
+ Picture picture,
+ unsigned long valuemask,
+ _Xconst XRenderPictureAttributes *attributes);
+
+void
+XRenderSetPictureClipRectangles (Display *dpy,
+ Picture picture,
+ int xOrigin,
+ int yOrigin,
+ _Xconst XRectangle *rects,
+ int n);
+
+void
+XRenderSetPictureClipRegion (Display *dpy,
+ Picture picture,
+ Region r);
+
+void
+XRenderSetPictureTransform (Display *dpy,
+ Picture picture,
+ XTransform *transform);
+
+void
+XRenderFreePicture (Display *dpy,
+ Picture picture);
+
+void
+XRenderComposite (Display *dpy,
+ int op,
+ Picture src,
+ Picture mask,
+ Picture dst,
+ int src_x,
+ int src_y,
+ int mask_x,
+ int mask_y,
+ int dst_x,
+ int dst_y,
+ unsigned int width,
+ unsigned int height);
+
+GlyphSet
+XRenderCreateGlyphSet (Display *dpy, _Xconst XRenderPictFormat *format);
+
+GlyphSet
+XRenderReferenceGlyphSet (Display *dpy, GlyphSet existing);
+
+void
+XRenderFreeGlyphSet (Display *dpy, GlyphSet glyphset);
+
+void
+XRenderAddGlyphs (Display *dpy,
+ GlyphSet glyphset,
+ _Xconst Glyph *gids,
+ _Xconst XGlyphInfo *glyphs,
+ int nglyphs,
+ _Xconst char *images,
+ int nbyte_images);
+
+void
+XRenderFreeGlyphs (Display *dpy,
+ GlyphSet glyphset,
+ _Xconst Glyph *gids,
+ int nglyphs);
+
+void
+XRenderCompositeString8 (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ GlyphSet glyphset,
+ int xSrc,
+ int ySrc,
+ int xDst,
+ int yDst,
+ _Xconst char *string,
+ int nchar);
+
+void
+XRenderCompositeString16 (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ GlyphSet glyphset,
+ int xSrc,
+ int ySrc,
+ int xDst,
+ int yDst,
+ _Xconst unsigned short *string,
+ int nchar);
+
+void
+XRenderCompositeString32 (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ GlyphSet glyphset,
+ int xSrc,
+ int ySrc,
+ int xDst,
+ int yDst,
+ _Xconst unsigned int *string,
+ int nchar);
+
+void
+XRenderCompositeText8 (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ int xSrc,
+ int ySrc,
+ int xDst,
+ int yDst,
+ _Xconst XGlyphElt8 *elts,
+ int nelt);
+
+void
+XRenderCompositeText16 (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ int xSrc,
+ int ySrc,
+ int xDst,
+ int yDst,
+ _Xconst XGlyphElt16 *elts,
+ int nelt);
+
+void
+XRenderCompositeText32 (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ int xSrc,
+ int ySrc,
+ int xDst,
+ int yDst,
+ _Xconst XGlyphElt32 *elts,
+ int nelt);
+
+void
+XRenderFillRectangle (Display *dpy,
+ int op,
+ Picture dst,
+ _Xconst XRenderColor *color,
+ int x,
+ int y,
+ unsigned int width,
+ unsigned int height);
+
+void
+XRenderFillRectangles (Display *dpy,
+ int op,
+ Picture dst,
+ _Xconst XRenderColor *color,
+ _Xconst XRectangle *rectangles,
+ int n_rects);
+
+void
+XRenderCompositeTrapezoids (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ int xSrc,
+ int ySrc,
+ _Xconst XTrapezoid *traps,
+ int ntrap);
+
+void
+XRenderCompositeTriangles (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ int xSrc,
+ int ySrc,
+ _Xconst XTriangle *triangles,
+ int ntriangle);
+
+void
+XRenderCompositeTriStrip (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ int xSrc,
+ int ySrc,
+ _Xconst XPointFixed *points,
+ int npoint);
+
+void
+XRenderCompositeTriFan (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ int xSrc,
+ int ySrc,
+ _Xconst XPointFixed *points,
+ int npoint);
+
+void
+XRenderCompositeDoublePoly (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ _Xconst XRenderPictFormat *maskFormat,
+ int xSrc,
+ int ySrc,
+ int xDst,
+ int yDst,
+ _Xconst XPointDouble *fpoints,
+ int npoints,
+ int winding);
+Status
+XRenderParseColor(Display *dpy,
+ char *spec,
+ XRenderColor *def);
+
+Cursor
+XRenderCreateCursor (Display *dpy,
+ Picture source,
+ unsigned int x,
+ unsigned int y);
+
+XFilters *
+XRenderQueryFilters (Display *dpy, Drawable drawable);
+
+void
+XRenderSetPictureFilter (Display *dpy,
+ Picture picture,
+ const char *filter,
+ XFixed *params,
+ int nparams);
+
+Cursor
+XRenderCreateAnimCursor (Display *dpy,
+ int ncursor,
+ XAnimCursor *cursors);
+
+
+void
+XRenderAddTraps (Display *dpy,
+ Picture picture,
+ int xOff,
+ int yOff,
+ _Xconst XTrap *traps,
+ int ntrap);
+
+Picture XRenderCreateSolidFill (Display *dpy,
+ const XRenderColor *color);
+
+Picture XRenderCreateLinearGradient (Display *dpy,
+ const XLinearGradient *gradient,
+ const XFixed *stops,
+ const XRenderColor *colors,
+ int nstops);
+
+Picture XRenderCreateRadialGradient (Display *dpy,
+ const XRadialGradient *gradient,
+ const XFixed *stops,
+ const XRenderColor *colors,
+ int nstops);
+
+Picture XRenderCreateConicalGradient (Display *dpy,
+ const XConicalGradient *gradient,
+ const XFixed *stops,
+ const XRenderColor *colors,
+ int nstops);
+
+_XFUNCPROTOEND
+
+#endif /* _XRENDER_H_ */
diff --git a/X11/extensions/bigreqstr.h b/X11/extensions/bigreqstr.h
index 0a023dbf1..df43f46de 100644
--- a/X11/extensions/bigreqstr.h
+++ b/X11/extensions/bigreqstr.h
@@ -1,3 +1,3 @@
-#warning "bigreqstr.h is obsolete and may be removed in the future."
-#warning "include <X11/extensions/bigreqsproto.h> for the protocol defines."
+#pragma message("bigreqstr.h is obsolete and may be removed in the future.")
+#pragma message("include <X11/extensions/bigreqsproto.h> for the protocol defines.")
#include <X11/extensions/bigreqsproto.h>
diff --git a/X11/extensions/dpms.h b/X11/extensions/dpms.h
index 7555f4ab6..f85e6a725 100644
--- a/X11/extensions/dpms.h
+++ b/X11/extensions/dpms.h
@@ -1,4 +1,3 @@
-/* $Xorg: dpms.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
/*****************************************************************
Copyright (c) 1996 Digital Equipment Corporation, Maynard, Massachusetts.
@@ -15,40 +14,26 @@ 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 NONINFRINGEMENT. IN NO EVENT SHALL
-DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
-BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
+BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL 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.
-Except as contained in this notice, the name of Digital Equipment Corporation
+Except as contained in this notice, the name of Digital Equipment Corporation
shall not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from Digital
+dealings in this Software without prior written authorization from Digital
Equipment Corporation.
******************************************************************/
-/* $XFree86: xc/include/extensions/dpms.h,v 3.4 2000/03/15 16:51:51 tsi Exp $ */
#ifndef _X11_EXTENSIONS_DPMS_H
#define _X11_EXTENSIONS_DPMS_H 1
-/*
- * HISTORY
- */
-/*
- * @(#)RCSfile: dpms.h,v Revision: 1.1.4.2 (DEC) Date: 1995/11/21 19:34:17
- */
-
-
-#define DPMSModeOn 0
-#define DPMSModeStandby 1
-#define DPMSModeSuspend 2
-#define DPMSModeOff 3
-
-#ifndef DPMS_SERVER
-
#include <X11/X.h>
#include <X11/Xmd.h>
+#include <X11/extensions/dpmsconst.h>
+#ifndef DPMS_SERVER
_XFUNCPROTOBEGIN
extern Bool DPMSQueryExtension(Display *, int *, int *);
@@ -62,6 +47,7 @@ extern Status DPMSForceLevel(Display *, CARD16);
extern Status DPMSInfo(Display *, CARD16 *, BOOL *);
_XFUNCPROTOEND
-#endif /* !DPMS_SERVER */
+#endif
+
#endif /* !_X11_EXTENSIONS_DPMS_H */
diff --git a/X11/extensions/extutil.h b/X11/extensions/extutil.h
index 825d81e93..074cc183a 100644
--- a/X11/extensions/extutil.h
+++ b/X11/extensions/extutil.h
@@ -1,5 +1,4 @@
/*
- * $Xorg: extutil.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $
*
Copyright 1989, 1998 The Open Group
@@ -24,18 +23,18 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*
* Author: Jim Fulton, MIT The Open Group
- *
+ *
* Xlib Extension-Writing Utilities
*
* This package contains utilities for writing the client API for various
* protocol extensions. THESE INTERFACES ARE NOT PART OF THE X STANDARD AND
* ARE SUBJECT TO CHANGE!
*/
-/* $XFree86: xc/include/extensions/extutil.h,v 1.9 2001/12/14 19:53:28 dawes Exp $ */
#ifndef _EXTUTIL_H_
#define _EXTUTIL_H_
+#include <unistd.h>
#include <X11/extensions/Xext.h>
/*
@@ -125,7 +124,7 @@ extern void XextDestroyExtension(
extern XExtDisplayInfo *XextAddDisplay(
XExtensionInfo* /* extinfo */,
Display* /* dpy */,
- char* /* ext_name */,
+ _Xconst char* /* ext_name */,
XExtensionHooks* /* hooks */,
int /* nevents */,
XPointer /* data */
@@ -149,7 +148,7 @@ extern XExtDisplayInfo *XextFindDisplay(
/*
* helper macros to generate code that is common to all extensions; caller
* should prefix it with static if extension source is in one file; this
- * could be a utility function, but have to stack 6 unused arguments for
+ * could be a utility function, but have to stack 6 unused arguments for
* something that is called many, many times would be bad.
*/
#define XEXT_GENERATE_FIND_DISPLAY(proc,extinfo,extname,hooks,nev,data) \
@@ -180,7 +179,7 @@ char *proc (Display *dpy, int code, XExtCodes *codes, char *buf, int n) \
code -= codes->first_error; \
if (code >= 0 && code < nerr) { \
char tmp[256]; \
- sprintf (tmp, "%s.%d", extname, code); \
+ snprintf (tmp, sizeof(tmp), "%s.%d", extname, code); \
XGetErrorDatabaseText (dpy, "XProtoError", tmp, errl[code], buf, n); \
return buf; \
} \
diff --git a/X11/extensions/lbxbuf.h b/X11/extensions/lbxbuf.h
deleted file mode 100644
index 63983df16..000000000
--- a/X11/extensions/lbxbuf.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* $Xorg: lbxbuf.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
-/*
- * Copyright 1988, 1989, 1990, 1994 Network Computing Devices, Inc.
- *
- * 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 Network Computing Devices, Inc. not be
- * used in advertising or publicity pertaining to distribution of this
- * software without specific, written prior permission.
- *
- * THIS SOFTWARE IS PROVIDED `AS-IS'. NETWORK COMPUTING DEVICES, INC.,
- * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT
- * LIMITATION ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, OR NONINFRINGEMENT. IN NO EVENT SHALL NETWORK
- * COMPUTING DEVICES, INC., BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING
- * SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, INCLUDING LOSS OF USE,
- * DATA, OR PROFITS, EVEN IF ADVISED OF THE POSSIBILITY THEREOF, AND
- * REGARDLESS OF WHETHER IN AN ACTION IN CONTRACT, TORT OR NEGLIGENCE,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- */
-
-#ifndef _BUFFER_H_
-#define _BUFFER_H_
-
-#define INBUFFER_SIZE (1 << 13) /* 8K */
-#define OUTBUFFER_SIZE (1 << 12) /* 4K */
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-typedef struct _zlibbuffer *ZlibBufferPtr;
-
-#include <X11/Xfuncproto.h>
-
-_XFUNCPROTOBEGIN
-
-extern int InitZlibBuffer(ZlibBufferPtr b, int size);
-extern void FreeZlibBuffer(ZlibBufferPtr b);
-extern char *ReserveOutBuf(ZlibBufferPtr outbuf, int outlen);
-
-_XFUNCPROTOEND
-
-#endif /* _BUFFER_H_ */
diff --git a/X11/extensions/lbxbufstr.h b/X11/extensions/lbxbufstr.h
deleted file mode 100644
index e1a06f633..000000000
--- a/X11/extensions/lbxbufstr.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* $Xorg: lbxbufstr.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
-/*
- * Copyright 1988, 1989, 1990, 1994 Network Computing Devices, Inc.
- *
- * 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 Network Computing Devices, Inc. not be
- * used in advertising or publicity pertaining to distribution of this
- * software without specific, written prior permission.
- *
- * THIS SOFTWARE IS PROVIDED `AS-IS'. NETWORK COMPUTING DEVICES, INC.,
- * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT
- * LIMITATION ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, OR NONINFRINGEMENT. IN NO EVENT SHALL NETWORK
- * COMPUTING DEVICES, INC., BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING
- * SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, INCLUDING LOSS OF USE,
- * DATA, OR PROFITS, EVEN IF ADVISED OF THE POSSIBILITY THEREOF, AND
- * REGARDLESS OF WHETHER IN AN ACTION IN CONTRACT, TORT OR NEGLIGENCE,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- *
- */
-/* $XFree86$ */
-
-#ifndef _BUFFERSTR_H_
-#define _BUFFERSTR_H_
-
-#include <X11/extensions/lbxbuf.h>
-
-/*
- * ZLIB Input/Output buffer
- */
-typedef struct _zlibbuffer {
- char *bufbase;
- char *bufend;
- char *bufptr;
- int bufcnt;
-} ZlibBuffer;
-
-#define BYTES_AVAIL(inbuf, len) \
- (((inbuf)->bufcnt >= (len)) ? (inbuf)->bufptr : NULL)
-
-#endif /* _BUFFERSTR_H_ */
diff --git a/X11/extensions/lbximage.h b/X11/extensions/lbximage.h
deleted file mode 100644
index 10627cf29..000000000
--- a/X11/extensions/lbximage.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/* $Xorg: lbximage.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */
-
-/******************************************************************************
-
-Copyright 1994, 1998 The Open Group
-
-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.
-
-The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP 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.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-******************************************************************************/
-/* $XFree86: xc/include/extensions/lbximage.h,v 1.4 2001/12/20 19:28:54 tsi Exp $ */
-
-#ifndef _LBX_IMAGE_H_
-#define _LBX_IMAGE_H_
-
-#include <X11/Xfuncproto.h>
-
-_XFUNCPROTOBEGIN
-
-typedef struct _LbxBitmapCompMethod {
-
- char *methodName;
- int inited;
- int methodOpCode; /* to be filled on reply from server */
-
- int (*compInit)(
- void
- );
-
- int (*compFunc)(
- unsigned char * /* inbuf */,
- unsigned char * /* outbuf */,
- int /* outbufSize */,
- int /* image_bytes */,
- int /* pixels_per_line */,
- int /* padded_bytes_per_scanline */,
- int /* reverse_bits */,
- int * /* bytesCompressed */
- );
-
- int (*decompFunc)(
- unsigned char * /* inbuf */,
- unsigned char * /* outbuf */,
- int /* image_bytes */,
- int /* pixels_per_line */,
- int /* padded_bytes_per_scanline */,
- int /* reverse_bits */
- );
-
-} LbxBitmapCompMethod;
-
-
-#define LBX_MAX_DEPTHS 5
-
-typedef struct _LbxPixmapCompMethod {
-
- char *methodName;
- unsigned formatMask;
- int depthCount;
- int depths[LBX_MAX_DEPTHS];
- int inited;
- int methodOpCode; /* to be filled on reply from server */
-
- int (*compInit)(
- void
- );
-
- int (*compFunc)(
- char * /* inbuf */,
- char * /* outbuf */,
- int /* outbufSize */,
- int /* format */,
- int /* depth */,
- int /* num_scan_lines */,
- int /* scan_line_size */,
- int * /* bytesCompressed */
- );
-
- int (*decompFunc)(
- char * /* inbuf */,
- char * /* outbuf */,
- int /* num_scan_lines */,
- int /* scan_line_size */
- );
-
-} LbxPixmapCompMethod;
-
-
-extern int LbxImageEncodePackBits (
-char * /* inbuf */,
-char * /* outbuf */,
-int /* outbufSize */,
-int /* format */,
-int /* depth */,
-int /* num_scan_lines */,
-int /* scan_line_size */,
-int * /* bytesCompressed */
-);
-
-extern int LbxImageEncodeFaxG42D (
-unsigned char * /* inbuf */,
-unsigned char * /* outbuf */,
-int /* outbufSize */,
-int /* image_bytes */,
-int /* pixels_per_line */,
-int /* padded_bytes_per_scanline */,
-int /* reverse_bits */,
-int * /* bytesCompressed */
-);
-
-extern int LbxImageDecodePackBits (
-char * /* inbuf */,
-char * /* outbuf */,
-int /* num_scan_lines */,
-int /* scan_line_size */
-);
-
-extern int LbxImageDecodeFaxG42D (
-unsigned char * /* inbuf */,
-unsigned char * /* outbuf */,
-int /* image_bytes */,
-int /* pixels_per_line */,
-int /* padded_bytes_per_scanline */,
-int /* reverse_bits */
-);
-
-_XFUNCPROTOEND
-
-#define LBX_IMAGE_COMPRESS_SUCCESS 0
-#define LBX_IMAGE_COMPRESS_NO_SUPPORT 1
-#define LBX_IMAGE_COMPRESS_BAD_MALLOC 2
-#define LBX_IMAGE_COMPRESS_NOT_WORTH_IT 3
-
-#endif /* _LBX_IMAGE_H_ */
diff --git a/X11/extensions/multibuf.h b/X11/extensions/multibuf.h
index 96b4c3b14..27165f08a 100644
--- a/X11/extensions/multibuf.h
+++ b/X11/extensions/multibuf.h
@@ -1,5 +1,4 @@
/*
- * $Xorg: multibuf.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $
*
Copyright 1989, 1998 The Open Group
@@ -24,82 +23,17 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
-/* $XFree86: xc/include/extensions/multibuf.h,v 3.4 2001/12/14 19:53:28 dawes Exp $ */
-
#ifndef _MULTIBUF_H_
#define _MULTIBUF_H_
#include <X11/Xfuncproto.h>
-#define MULTIBUFFER_PROTOCOL_NAME "Multi-Buffering"
-
-#define MULTIBUFFER_MAJOR_VERSION 1 /* current version numbers */
-#define MULTIBUFFER_MINOR_VERSION 1 /* has ClearImageBufferArea */
-
-#define X_MbufGetBufferVersion 0
-#define X_MbufCreateImageBuffers 1
-#define X_MbufDestroyImageBuffers 2
-#define X_MbufDisplayImageBuffers 3
-#define X_MbufSetMBufferAttributes 4
-#define X_MbufGetMBufferAttributes 5
-#define X_MbufSetBufferAttributes 6
-#define X_MbufGetBufferAttributes 7
-#define X_MbufGetBufferInfo 8
-#define X_MbufCreateStereoWindow 9
-#define X_MbufClearImageBufferArea 10
-
-/*
- * update_action field
- */
-#define MultibufferUpdateActionUndefined 0
-#define MultibufferUpdateActionBackground 1
-#define MultibufferUpdateActionUntouched 2
-#define MultibufferUpdateActionCopied 3
-
-/*
- * update_hint field
- */
-#define MultibufferUpdateHintFrequent 0
-#define MultibufferUpdateHintIntermittent 1
-#define MultibufferUpdateHintStatic 2
-
-/*
- * valuemask fields
- */
-#define MultibufferWindowUpdateHint (1L << 0)
-#define MultibufferBufferEventMask (1L << 0)
-
-/*
- * mono vs. stereo and left vs. right
- */
-#define MultibufferModeMono 0
-#define MultibufferModeStereo 1
-#define MultibufferSideMono 0
-#define MultibufferSideLeft 1
-#define MultibufferSideRight 2
-
-/*
- * clobber state
- */
-#define MultibufferUnclobbered 0
-#define MultibufferPartiallyClobbered 1
-#define MultibufferFullyClobbered 2
-
-/*
- * event stuff
- */
-#define MultibufferClobberNotifyMask 0x02000000
-#define MultibufferUpdateNotifyMask 0x04000000
-
-#define MultibufferClobberNotify 0
-#define MultibufferUpdateNotify 1
-#define MultibufferNumberEvents (MultibufferUpdateNotify + 1)
-
-#define MultibufferBadBuffer 0
-#define MultibufferNumberErrors (MultibufferBadBuffer + 1)
+#include <X11/extensions/multibufconst.h>
+#define MbufGetReq(name,req,info) GetReq (name, req); \
+ req->reqType = info->codes->major_opcode; \
+ req->mbufReqType = X_##name;
-#ifndef _MULTIBUF_SERVER_
/*
* Extra definitions that will only be needed in the client
*/
@@ -270,48 +204,4 @@ extern void XmbufClearBufferArea(
_XFUNCPROTOEND
-#else
-
-#include "scrnintstr.h"
-
-typedef Bool (* mbInitFunc)();
-
-struct _mbufScreen; /* declared in multibufst.h */
-
-extern void RegisterMultibufferInit(
- ScreenPtr /* pScreen */,
- Bool (* /* bufMultibufferInit */)(
- ScreenPtr /* pScreen */,
- struct _mbufScreen * /* pMBScreen */
- )
-);
-
-struct xMbufBufferInfo; /* declared in multibufst.h */
-
-extern void RegisterDoubleBufferHardware(
- ScreenPtr /* pScreen */,
- int /* nInfo */,
- struct xMbufBufferInfo * /* pInfo */,
- DevUnion * /* frameBuffer */,
- DevUnion /* selectPlane */,
- void (* /* CopyBufferBitsFunc */ )(),
- void (* /* DrawSelectPlaneFunc */ )()
-);
-
-extern int CreateImageBuffers (
- WindowPtr /* pWin */,
- int /* nbuf */,
- XID * /* ids */,
- int /* action */,
- int /* hint */
-);
-extern void DestroyImageBuffers (
- WindowPtr /* pWin */
-);
-extern int DisplayImageBuffers (
- XID * /* ids */,
- int /* nbuf */
-);
-
-#endif /* _MULTIBUF_SERVER_ */
#endif /* _MULTIBUF_H_ */
diff --git a/X11/extensions/panoramiXext.h b/X11/extensions/panoramiXext.h
new file mode 100644
index 000000000..aacc4fc43
--- /dev/null
+++ b/X11/extensions/panoramiXext.h
@@ -0,0 +1,85 @@
+/*****************************************************************
+Copyright (c) 1991, 1997 Digital Equipment Corporation, Maynard, Massachusetts.
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
+BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL 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.
+
+Except as contained in this notice, the name of Digital Equipment Corporation
+shall not be used in advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization from Digital
+Equipment Corporation.
+******************************************************************/
+/*
+ * PanoramiX definitions
+ */
+
+/* THIS IS NOT AN X PROJECT TEAM SPECIFICATION */
+
+#ifndef _panoramiXext_h
+#define _panoramiXext_h
+
+#include <X11/Xfuncproto.h>
+
+typedef struct {
+ Window window; /* PanoramiX window - may not exist */
+ int screen;
+ int State; /* PanoramiXOff, PanoramiXOn */
+ int width; /* width of this screen */
+ int height; /* height of this screen */
+ int ScreenCount; /* real physical number of screens */
+ XID eventMask; /* selected events for this client */
+} XPanoramiXInfo;
+
+_XFUNCPROTOBEGIN
+
+extern Bool XPanoramiXQueryExtension (
+ Display * /* dpy */,
+ int * /* event_base_return */,
+ int * /* error_base_return */
+);
+
+extern Status XPanoramiXQueryVersion(
+ Display * /* dpy */,
+ int * /* major_version_return */,
+ int * /* minor_version_return */
+);
+
+extern XPanoramiXInfo *XPanoramiXAllocInfo (
+ void
+);
+
+extern Status XPanoramiXGetState (
+ Display * /* dpy */,
+ Drawable /* drawable */,
+ XPanoramiXInfo * /* panoramiX_info */
+);
+
+extern Status XPanoramiXGetScreenCount (
+ Display * /* dpy */,
+ Drawable /* drawable */,
+ XPanoramiXInfo * /* panoramiX_info */
+);
+
+extern Status XPanoramiXGetScreenSize (
+ Display * /* dpy */,
+ Drawable /* drawable */,
+ int /* screen_num */,
+ XPanoramiXInfo * /* panoramiX_info */
+);
+
+_XFUNCPROTOEND
+
+#endif /* _panoramiXext_h */
diff --git a/X11/extensions/recordstr.h b/X11/extensions/recordstr.h
index 7f269b77e..983af4dc8 100644
--- a/X11/extensions/recordstr.h
+++ b/X11/extensions/recordstr.h
@@ -1,4 +1,4 @@
-#warning "recordstr.h is obsolete and may be removed in the future."
-#warning "include <X11/extensions/record.h> for the library interfaces."
-#warning "include <X11/extensions/recordproto.h> for the protocol defines."
+#pragma message( "recordstr.h is obsolete and may be removed in the future.")
+#pragma message("include <X11/extensions/record.h> for the library interfaces.")
+#pragma message( "include <X11/extensions/recordproto.h> for the protocol defines.")
#include <X11/extensions/recordproto.h>
diff --git a/X11/extensions/security.h b/X11/extensions/security.h
index fc7ade236..f5541310b 100644
--- a/X11/extensions/security.h
+++ b/X11/extensions/security.h
@@ -1,4 +1,3 @@
-/* $Xorg: security.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */
/*
Copyright 1996, 1998 The Open Group
@@ -24,7 +23,6 @@ not be used in advertising or otherwise to promote the sale, use or
other dealings in this Software without prior written authorization
from The Open Group.
*/
-/* $XFree86: xc/include/extensions/security.h,v 1.3 2001/12/14 19:53:29 dawes Exp $ */
#ifndef _SECURITY_H
#define _SECURITY_H
@@ -32,37 +30,7 @@ from The Open Group.
#define _XAUTH_STRUCT_ONLY
#include <X11/Xauth.h>
-/* constants that server, library, and application all need */
-
-#define XSecurityNumberEvents 1
-#define XSecurityNumberErrors 2
-#define XSecurityBadAuthorization 0
-#define XSecurityBadAuthorizationProtocol 1
-
-/* trust levels */
-#define XSecurityClientTrusted 0
-#define XSecurityClientUntrusted 1
-
-/* authorization attribute masks */
-#define XSecurityTimeout (1<<0)
-#define XSecurityTrustLevel (1<<1)
-#define XSecurityGroup (1<<2)
-#define XSecurityEventMask (1<<3)
-#define XSecurityAllAuthorizationAttributes \
- (XSecurityTimeout | XSecurityTrustLevel | XSecurityGroup | XSecurityEventMask)
-
-/* event masks */
-#define XSecurityAuthorizationRevokedMask (1<<0)
-#define XSecurityAllEventMasks XSecurityAuthorizationRevokedMask
-
-/* event offsets */
-#define XSecurityAuthorizationRevoked 0
-
-#define XSecurityAuthorizationName "XC-QUERY-SECURITY-1"
-#define XSecurityAuthorizationNameLen 19
-
-
-#ifndef _SECURITY_SERVER
+#include <X11/extensions/secur.h>
_XFUNCPROTOBEGIN
@@ -106,6 +74,4 @@ typedef struct {
XSecurityAuthorization auth_id; /* revoked authorization id */
} XSecurityAuthorizationRevokedEvent;
-#endif /* _SECURITY_SERVER */
-
#endif /* _SECURITY_H */
diff --git a/X11/extensions/shape.h b/X11/extensions/shape.h
index d173efef8..66af5b1b4 100644
--- a/X11/extensions/shape.h
+++ b/X11/extensions/shape.h
@@ -1,4 +1,3 @@
-/* $XFree86: xc/include/extensions/shape.h,v 1.3 2001/12/14 19:53:29 dawes Exp $ */
/************************************************************
Copyright 1989, 1998 The Open Group
@@ -25,40 +24,13 @@ in this Software without prior written authorization from The Open Group.
********************************************************/
-/* $Xorg: shape.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */
-
#ifndef _SHAPE_H_
#define _SHAPE_H_
#include <X11/Xfuncproto.h>
-
-#define X_ShapeQueryVersion 0
-#define X_ShapeRectangles 1
-#define X_ShapeMask 2
-#define X_ShapeCombine 3
-#define X_ShapeOffset 4
-#define X_ShapeQueryExtents 5
-#define X_ShapeSelectInput 6
-#define X_ShapeInputSelected 7
-#define X_ShapeGetRectangles 8
-
-#define ShapeSet 0
-#define ShapeUnion 1
-#define ShapeIntersect 2
-#define ShapeSubtract 3
-#define ShapeInvert 4
-
-#define ShapeBounding 0
-#define ShapeClip 1
-#define ShapeInput 2
-
-#define ShapeNotifyMask (1L << 0)
-#define ShapeNotify 0
-
-#define ShapeNumberEvents (ShapeNotify + 1)
+#include <X11/extensions/shapeconst.h>
#ifndef _SHAPE_SERVER_
-
#include <X11/Xutil.h>
typedef struct {
@@ -175,6 +147,6 @@ extern XRectangle *XShapeGetRectangles (
_XFUNCPROTOEND
-#endif /* _SHAPE_SERVER_ */
+#endif /* !_SHAPE_SERVER_ */
#endif /* _SHAPE_H_ */
diff --git a/X11/extensions/sync.h b/X11/extensions/sync.h
index 9fbe6d72f..31b1be064 100644
--- a/X11/extensions/sync.h
+++ b/X11/extensions/sync.h
@@ -1,4 +1,3 @@
-/* $Xorg: sync.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */
/*
Copyright 1991, 1993, 1994, 1998 The Open Group
@@ -31,13 +30,13 @@ and Olivetti Research Limited, Cambridge, England.
All Rights Reserved
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
+both that copyright notice and this permission notice appear in
supporting documentation, and that the names of Digital or Olivetti
not be used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
+software without specific, written prior permission.
DIGITAL AND OLIVETTI DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
@@ -48,95 +47,35 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
******************************************************************/
-/* $XFree86: xc/include/extensions/sync.h,v 1.4 2001/12/20 19:40:59 tsi Exp $ */
#ifndef _SYNC_H_
#define _SYNC_H_
#include <X11/Xfuncproto.h>
+#include <X11/extensions/syncconst.h>
-_XFUNCPROTOBEGIN
-
-#define SYNC_NAME "SYNC"
-
-#define SYNC_MAJOR_VERSION 3
-#define SYNC_MINOR_VERSION 0
-
-#define X_SyncInitialize 0
-#define X_SyncListSystemCounters 1
-#define X_SyncCreateCounter 2
-#define X_SyncSetCounter 3
-#define X_SyncChangeCounter 4
-#define X_SyncQueryCounter 5
-#define X_SyncDestroyCounter 6
-#define X_SyncAwait 7
-#define X_SyncCreateAlarm 8
-#define X_SyncChangeAlarm 9
-#define X_SyncQueryAlarm 10
-#define X_SyncDestroyAlarm 11
-#define X_SyncSetPriority 12
-#define X_SyncGetPriority 13
-
-#define XSyncCounterNotify 0
-#define XSyncAlarmNotify 1
-#define XSyncAlarmNotifyMask (1L << XSyncAlarmNotify)
-
-#define XSyncNumberEvents 2L
-
-#define XSyncBadCounter 0L
-#define XSyncBadAlarm 1L
-#define XSyncNumberErrors (XSyncBadAlarm + 1)
+#ifdef _SYNC_SERVER
+#include <X11/extensions/syncproto.h>
+#else
-/*
- * Flags for Alarm Attributes
- */
-#define XSyncCACounter (1L<<0)
-#define XSyncCAValueType (1L<<1)
-#define XSyncCAValue (1L<<2)
-#define XSyncCATestType (1L<<3)
-#define XSyncCADelta (1L<<4)
-#define XSyncCAEvents (1L<<5)
-
-/*
- * Constants for the value_type argument of various requests
- */
-typedef enum {
- XSyncAbsolute,
- XSyncRelative
-} XSyncValueType;
-
-/*
- * Alarm Test types
- */
-typedef enum {
- XSyncPositiveTransition,
- XSyncNegativeTransition,
- XSyncPositiveComparison,
- XSyncNegativeComparison
-} XSyncTestType;
-
-/*
- * Alarm state constants
- */
-typedef enum {
- XSyncAlarmActive,
- XSyncAlarmInactive,
- XSyncAlarmDestroyed
-} XSyncAlarmState;
-
-
-typedef XID XSyncCounter;
-typedef XID XSyncAlarm;
-typedef struct _XSyncValue {
- int hi;
- unsigned int lo;
-} XSyncValue;
-
-/*
- * Macros/functions for manipulating 64 bit values
- */
-
-/* have to put these prototypes before the corresponding macro definitions */
+_XFUNCPROTOBEGIN
+/* get rid of macros so we can define corresponding functions */
+#undef XSyncIntToValue
+#undef XSyncIntsToValue
+#undef XSyncValueGreaterThan
+#undef XSyncValueLessThan
+#undef XSyncValueGreaterOrEqual
+#undef XSyncValueLessOrEqual
+#undef XSyncValueEqual
+#undef XSyncValueIsNegative
+#undef XSyncValueIsZero
+#undef XSyncValueIsPositive
+#undef XSyncValueLow32
+#undef XSyncValueHigh32
+#undef XSyncValueAdd
+#undef XSyncValueSubtract
+#undef XSyncMaxValue
+#undef XSyncMinValue
extern void XSyncIntToValue(
XSyncValue* /*pv*/,
@@ -218,72 +157,6 @@ extern void XSyncMinValue(
_XFUNCPROTOEND
-/* The _XSync macros below are for library internal use only. They exist
- * so that if we have to make a fix, we can change it in this one place
- * and have both the macro and function variants inherit the fix.
- */
-
-#define _XSyncIntToValue(pv, i) ((pv)->hi=((i<0)?~0:0),(pv)->lo=(i))
-#define _XSyncIntsToValue(pv, l, h) ((pv)->lo = (l), (pv)->hi = (h))
-#define _XSyncValueGreaterThan(a, b)\
- ((a).hi>(b).hi || ((a).hi==(b).hi && (a).lo>(b).lo))
-#define _XSyncValueLessThan(a, b)\
- ((a).hi<(b).hi || ((a).hi==(b).hi && (a).lo<(b).lo))
-#define _XSyncValueGreaterOrEqual(a, b)\
- ((a).hi>(b).hi || ((a).hi==(b).hi && (a).lo>=(b).lo))
-#define _XSyncValueLessOrEqual(a, b)\
- ((a).hi<(b).hi || ((a).hi==(b).hi && (a).lo<=(b).lo))
-#define _XSyncValueEqual(a, b) ((a).lo==(b).lo && (a).hi==(b).hi)
-#define _XSyncValueIsNegative(v) (((v).hi & 0x80000000) ? 1 : 0)
-#define _XSyncValueIsZero(a) ((a).lo==0 && (a).hi==0)
-#define _XSyncValueIsPositive(v) (((v).hi & 0x80000000) ? 0 : 1)
-#define _XSyncValueLow32(v) ((v).lo)
-#define _XSyncValueHigh32(v) ((v).hi)
-#define _XSyncValueAdd(presult,a,b,poverflow) {\
- int t = (a).lo;\
- Bool signa = XSyncValueIsNegative(a);\
- Bool signb = XSyncValueIsNegative(b);\
- ((presult)->lo = (a).lo + (b).lo);\
- ((presult)->hi = (a).hi + (b).hi);\
- if (t>(presult)->lo) (presult)->hi++;\
- *poverflow = ((signa == signb) && !(signa == XSyncValueIsNegative(*presult)));\
- }
-#define _XSyncValueSubtract(presult,a,b,poverflow) {\
- int t = (a).lo;\
- Bool signa = XSyncValueIsNegative(a);\
- Bool signb = XSyncValueIsNegative(b);\
- ((presult)->lo = (a).lo - (b).lo);\
- ((presult)->hi = (a).hi - (b).hi);\
- if (t>(presult)->lo) (presult)->hi--;\
- *poverflow = ((signa == signb) && !(signa == XSyncValueIsNegative(*presult)));\
- }
-#define _XSyncMaxValue(pv) ((pv)->hi = 0x7fffffff, (pv)->lo = 0xffffffff)
-#define _XSyncMinValue(pv) ((pv)->hi = 0x80000000, (pv)->lo = 0)
-
-/*
- * These are the publically usable macros. If you want the function version
- * of one of these, just #undef the macro to uncover the function.
- * (This is the same convention that the ANSI C library uses.)
- */
-
-#define XSyncIntToValue(pv, i) _XSyncIntToValue(pv, i)
-#define XSyncIntsToValue(pv, l, h) _XSyncIntsToValue(pv, l, h)
-#define XSyncValueGreaterThan(a, b) _XSyncValueGreaterThan(a, b)
-#define XSyncValueLessThan(a, b) _XSyncValueLessThan(a, b)
-#define XSyncValueGreaterOrEqual(a, b) _XSyncValueGreaterOrEqual(a, b)
-#define XSyncValueLessOrEqual(a, b) _XSyncValueLessOrEqual(a, b)
-#define XSyncValueEqual(a, b) _XSyncValueEqual(a, b)
-#define XSyncValueIsNegative(v) _XSyncValueIsNegative(v)
-#define XSyncValueIsZero(a) _XSyncValueIsZero(a)
-#define XSyncValueIsPositive(v) _XSyncValueIsPositive(v)
-#define XSyncValueLow32(v) _XSyncValueLow32(v)
-#define XSyncValueHigh32(v) _XSyncValueHigh32(v)
-#define XSyncValueAdd(presult,a,b,poverflow) _XSyncValueAdd(presult,a,b,poverflow)
-#define XSyncValueSubtract(presult,a,b,poverflow) _XSyncValueSubtract(presult,a,b,poverflow)
-#define XSyncMaxValue(pv) _XSyncMaxValue(pv)
-#define XSyncMinValue(pv) _XSyncMinValue(pv)
-
-#ifndef _SYNC_SERVER
typedef struct _XSyncSystemCounter {
char *name; /* null-terminated name of system counter */
@@ -330,7 +203,7 @@ typedef struct {
} XSyncCounterNotifyEvent;
typedef struct {
- int type; /* event base + XSyncCounterNotify */
+ int type; /* event base + XSyncAlarmNotify */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
@@ -342,11 +215,11 @@ typedef struct {
} XSyncAlarmNotifyEvent;
/*
- * Errors
+ * Errors
*/
typedef struct {
- int type;
+ int type;
Display *display; /* Display the event was read from */
XSyncAlarm alarm; /* resource id */
unsigned long serial; /* serial number of failed request */
@@ -356,7 +229,7 @@ typedef struct {
} XSyncAlarmError;
typedef struct {
- int type;
+ int type;
Display *display; /* Display the event was read from */
XSyncCounter counter; /* resource id */
unsigned long serial; /* serial number of failed request */
@@ -365,7 +238,7 @@ typedef struct {
unsigned char minor_code; /* Minor op-code of failed request */
} XSyncCounterError;
-/*
+/*
* Prototypes
*/
@@ -462,8 +335,41 @@ extern Status XSyncGetPriority(
int* /*return_priority*/
);
-#endif /* _SYNC_SERVER */
+extern XSyncFence XSyncCreateFence(
+ Display* /*dpy*/,
+ Drawable /*d*/,
+ Bool /*initially_triggered*/
+);
+
+extern Bool XSyncTriggerFence(
+ Display* /*dpy*/,
+ XSyncFence /*fence*/
+);
+
+extern Bool XSyncResetFence(
+ Display* /*dpy*/,
+ XSyncFence /*fence*/
+);
+
+extern Bool XSyncDestroyFence(
+ Display* /*dpy*/,
+ XSyncFence /*fence*/
+);
+
+extern Bool XSyncQueryFence(
+ Display* /*dpy*/,
+ XSyncFence /*fence*/,
+ Bool* /*triggered*/
+);
+
+extern Bool XSyncAwaitFence(
+ Display* /*dpy*/,
+ const XSyncFence* /*fence_list*/,
+ int /*n_fences*/
+);
_XFUNCPROTOEND
+#endif /* _SYNC_SERVER */
+
#endif /* _SYNC_H_ */
diff --git a/X11/extensions/xcmiscstr.h b/X11/extensions/xcmiscstr.h
index c2b643308..43ab9ff8b 100644
--- a/X11/extensions/xcmiscstr.h
+++ b/X11/extensions/xcmiscstr.h
@@ -1,3 +1,3 @@
-#warning "xcmiscstr.h is obsolete and may be removed in the future."
-#warning "include <X11/extensions/xcmiscproto.h> for the protocol defines."
+#pragma message( "xcmiscstr.h is obsolete and may be removed in the future." )
+#pragma message( "include <X11/extensions/xcmiscproto.h> for the protocol defines." )
#include <X11/extensions/xcmiscproto.h>
diff --git a/X11/extensions/xtestext1.h b/X11/extensions/xtestext1.h
index 8f49cad07..67d015bb0 100644
--- a/X11/extensions/xtestext1.h
+++ b/X11/extensions/xtestext1.h
@@ -1,4 +1,3 @@
-/* $Xorg: xtestext1.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $ */
/*
* xtestext1.h
*
@@ -42,8 +41,8 @@ documentation, and that the name of Hewlett-Packard not be used in
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
-Hewlett-Packard makes no representations about the
-suitability of this software for any purpose. It is provided
+Hewlett-Packard makes no representations about the
+suitability of this software for any purpose. It is provided
"as is" without express or implied warranty.
This software is not subject to any license of the American
@@ -52,159 +51,13 @@ University of California.
*/
+#ifndef _XTESTEXT1_H
+#define _XTESTEXT1_H
/*
* the typedefs for CARD8, CARD16, and CARD32 are defined in Xmd.h
*/
-/*
- * used in the XTestPressButton and XTestPressKey functions
- */
-#define XTestPRESS 1 << 0
-#define XTestRELEASE 1 << 1
-#define XTestSTROKE 1 << 2
-
-/*
- * When doing a key or button stroke, the number of milliseconds
- * to delay between the press and the release of a key or button
- * in the XTestPressButton and XTestPressKey functions.
- */
-
-#define XTestSTROKE_DELAY_TIME 10
-
-/*
- * used in the XTestGetInput function
- */
-#define XTestEXCLUSIVE 1 << 0
-#define XTestPACKED_ACTIONS 1 << 1
-#define XTestPACKED_MOTION 1 << 2
-
-/*
- * used in the XTestFakeInput function
- */
-#define XTestFAKE_ACK_NOT_NEEDED 0
-#define XTestFAKE_ACK_REQUEST 1
-
-/*
- * used in the XTest extension initialization routine
- */
-#define XTestEXTENSION_NAME "XTestExtension1"
-#define XTestEVENT_COUNT 2
-
-/*
- * XTest request type values
- *
- * used in the XTest extension protocol requests
- */
-#define X_TestFakeInput 1
-#define X_TestGetInput 2
-#define X_TestStopInput 3
-#define X_TestReset 4
-#define X_TestQueryInputSize 5
-
-/*
- * This defines the maximum size of a list of input actions
- * to be sent to the server. It should always be a multiple of
- * 4 so that the entire xTestFakeInputReq structure size is a
- * multiple of 4.
- */
-#define XTestMAX_ACTION_LIST_SIZE 64
-
-typedef struct {
- CARD8 reqType; /* always XTestReqCode */
- CARD8 XTestReqType; /* always X_TestFakeInput */
- CARD16 length B16; /* 2 + XTestMAX_ACTION_LIST_SIZE/4 */
- CARD32 ack B32;
- CARD8 action_list[XTestMAX_ACTION_LIST_SIZE];
-} xTestFakeInputReq;
-#define sz_xTestFakeInputReq (XTestMAX_ACTION_LIST_SIZE + 8)
-
-typedef struct {
- CARD8 reqType; /* always XTestReqCode */
- CARD8 XTestReqType; /* always X_TestGetInput */
- CARD16 length B16; /* 2 */
- CARD32 mode B32;
-} xTestGetInputReq;
-#define sz_xTestGetInputReq 8
-
-typedef struct {
- CARD8 reqType; /* always XTestReqCode */
- CARD8 XTestReqType; /* always X_TestStopInput */
- CARD16 length B32; /* 1 */
-} xTestStopInputReq;
-#define sz_xTestStopInputReq 4
-
-typedef struct {
- CARD8 reqType; /* always XTestReqCode */
- CARD8 XTestReqType; /* always X_TestReset */
- CARD16 length B16; /* 1 */
-} xTestResetReq;
-#define sz_xTestResetReq 4
-
-typedef struct {
- CARD8 reqType; /* always XTestReqCode */
- CARD8 XTestReqType; /* always X_TestQueryInputSize */
- CARD16 length B16; /* 1 */
-} xTestQueryInputSizeReq;
-#define sz_xTestQueryInputSizeReq 4
-
-/*
- * This is the definition of the reply for the xTestQueryInputSize
- * request. It should remain the same minimum size as other replies
- * (32 bytes).
- */
-typedef struct {
- CARD8 type; /* always X_Reply */
- CARD8 pad1;
- CARD16 sequenceNumber B16;
- CARD32 length B32; /* always 0 */
- CARD32 size_return B32;
- CARD32 pad2 B32;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
- CARD32 pad5 B32;
- CARD32 pad6 B32;
-} xTestQueryInputSizeReply;
-
-/*
- * This is the definition for the input action wire event structure.
- * This event is sent to the client when the server has one or
- * more user input actions to report to the client. It must
- * remain the same size as all other wire events (32 bytes).
- */
-#define XTestACTIONS_SIZE 28
-
-typedef struct {
- CARD8 type; /* always XTestInputActionType */
- CARD8 pad00;
- CARD16 sequenceNumber B16;
- CARD8 actions[XTestACTIONS_SIZE];
-} xTestInputActionEvent;
-
-/*
- * This is the definition for the xTestFakeAck wire event structure.
- * This event is sent to the client when the server has completely
- * processed its input action buffer, and is ready for more.
- * It must remain the same size as all other wire events (32 bytes).
- */
-typedef struct {
- CARD8 type; /* always XTestFakeAckType */
- CARD8 pad00;
- CARD16 sequenceNumber B16;
- CARD32 pad02 B32;
- CARD32 pad03 B32;
- CARD32 pad04 B32;
- CARD32 pad05 B32;
- CARD32 pad06 B32;
- CARD32 pad07 B32;
- CARD32 pad08 B32;
-} xTestFakeAckEvent;
-
-/*
- * The server side of this extension does not (and should not) have
- * definitions for Display and Window. The ifndef allows the server
- * side of the extension to ignore the following typedefs.
- */
-#ifndef XTestSERVER_SIDE
+#include <X11/extensions/xtestext1const.h>
/*
* This is the definition for the input action host format event structure.
* This is the form that a client using this extension will see when
@@ -227,100 +80,19 @@ typedef struct {
Display *display;
Window window;
} XTestFakeAckEvent;
-#endif
-/*
- * This is the definition for the format of the header byte
- * in the input action structures.
- */
-#define XTestACTION_TYPE_MASK 0x03 /* bits 0 and 1 */
-#define XTestKEY_STATE_MASK 0x04 /* bit 2 (key action) */
-#define XTestX_SIGN_BIT_MASK 0x04 /* bit 2 (motion action) */
-#define XTestY_SIGN_BIT_MASK 0x08 /* bit 3 (motion action) */
-#define XTestDEVICE_ID_MASK 0xf0 /* bits 4 through 7 */
-
-#define XTestMAX_DEVICE_ID 0x0f
-#define XTestPackDeviceID(x) (((x) & XTestMAX_DEVICE_ID) << 4)
-#define XTestUnpackDeviceID(x) (((x) & XTestDEVICE_ID_MASK) >> 4)
-
-/*
- * These are the possible action types.
- */
-#define XTestDELAY_ACTION 0
-#define XTestKEY_ACTION 1
-#define XTestMOTION_ACTION 2
-#define XTestJUMP_ACTION 3
+_XFUNCPROTOBEGIN
-/*
- * These are the definitions for key/button motion input actions.
- */
-#define XTestKEY_UP 0x04
-#define XTestKEY_DOWN 0x00
+int XTestFakeInput(register Display *dpy, char *action_list_addr, int action_list_size, int ack_flag);
+int XTestGetInput(register Display *dpy, int action_handling);
+int XTestQueryInputSize(register Display *dpy, unsigned long *size_return);
+int XTestPressKey(Display *display, int device_id, unsigned long delay, unsigned int keycode, unsigned int key_action);
+int XTestPressButton(Display * display, int device_id, unsigned long delay, unsigned int button_number, unsigned int button_action);
+int XTestMovePointer(Display *display, int device_id, unsigned long delay[], int x[], int y[], unsigned int count);
+int XTestFlush(Display *display);
+int XTestStopInput(register Display *dpy);
+int XTestReset(register Display *dpy);
-typedef struct {
- CARD8 header; /* which device, key up/down */
- CARD8 keycode; /* which key/button to move */
- CARD16 delay_time B16; /* how long to delay (in ms) */
-} XTestKeyInfo;
+_XFUNCPROTOEND
-/*
- * This is the definition for pointer jump input actions.
- */
-typedef struct {
- CARD8 header; /* which pointer */
- CARD8 pad1; /* unused padding byte */
- CARD16 jumpx B16; /* x coord to jump to */
- CARD16 jumpy B16; /* y coord to jump to */
- CARD16 delay_time B16; /* how long to delay (in ms) */
-} XTestJumpInfo;
-
-/*
- * These are the definitions for pointer relative motion input
- * actions.
- *
- * The sign bits for the x and y relative motions are contained
- * in the header byte. The x and y relative motions are packed
- * into one byte to make things fit in 32 bits. If the relative
- * motion range is larger than +/-15, use the pointer jump action.
- */
-#define XTestMOTION_MAX 15
-#define XTestMOTION_MIN -15
-
-#define XTestX_NEGATIVE 0x04
-#define XTestY_NEGATIVE 0x08
-
-#define XTestX_MOTION_MASK 0x0f
-#define XTestY_MOTION_MASK 0xf0
-
-#define XTestPackXMotionValue(x) ((x) & XTestX_MOTION_MASK)
-#define XTestPackYMotionValue(x) (((x) << 4) & XTestY_MOTION_MASK)
-
-#define XTestUnpackXMotionValue(x) ((x) & XTestX_MOTION_MASK)
-#define XTestUnpackYMotionValue(x) (((x) & XTestY_MOTION_MASK) >> 4)
-
-typedef struct {
- CARD8 header; /* which pointer */
- CARD8 motion_data; /* x,y relative motion */
- CARD16 delay_time B16; /* how long to delay (in ms) */
-} XTestMotionInfo;
-
-/*
- * These are the definitions for a long delay input action. It is
- * used when more than XTestSHORT_DELAY_TIME milliseconds of delay
- * (approximately one minute) is needed.
- *
- * The device ID for a delay is always set to XTestDELAY_DEVICE_ID.
- * This guarantees that a header byte with a value of 0 is not
- * a valid header, so it can be used as a flag to indicate that
- * there are no more input actions in an XTestInputAction event.
- */
-
-#define XTestSHORT_DELAY_TIME 0xffff
-#define XTestDELAY_DEVICE_ID 0x0f
-
-typedef struct {
- CARD8 header; /* always XTestDELAY_DEVICE_ID */
- CARD8 pad1; /* unused padding byte */
- CARD16 pad2 B16; /* unused padding word */
- CARD32 delay_time B32; /* how long to delay (in ms) */
-} XTestDelayInfo;
+#endif /* _XTESTEXT1_H */
diff --git a/X11/fonts/bdfint.h b/X11/fonts/bdfint.h
new file mode 100644
index 000000000..8ce4a0cb1
--- /dev/null
+++ b/X11/fonts/bdfint.h
@@ -0,0 +1,90 @@
+/* $Xorg: bdfint.h,v 1.4 2001/02/09 02:04:01 xorgcvs Exp $ */
+
+/*
+
+Copyright 1990, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+*/
+/* $XFree86: xc/lib/font/bitmap/bdfint.h,v 1.4 2001/01/17 19:43:26 dawes Exp $ */
+
+#ifndef BDFINT_H
+#define BDFINT_H
+
+#define bdfIsPrefix(buf,str) (!strncmp((char *)buf,str,strlen(str)))
+#define bdfStrEqual(s1,s2) (!strcmp(s1,s2))
+
+#define BDF_GENPROPS 6
+#define NullProperty ((FontPropPtr)0)
+
+/*
+ * This structure holds some properties we need to generate if they aren't
+ * specified in the BDF file and some other values read from the file
+ * that we'll need to calculate them. We need to keep track of whether
+ * or not we've read them.
+ */
+typedef struct BDFSTAT {
+ int linenum;
+ char *fileName;
+ char fontName[MAXFONTNAMELEN];
+ float pointSize;
+ int resolution_x;
+ int resolution_y;
+ int digitCount;
+ int digitWidths;
+ int exHeight;
+
+ FontPropPtr fontProp;
+ FontPropPtr pointSizeProp;
+ FontPropPtr resolutionXProp;
+ FontPropPtr resolutionYProp;
+ FontPropPtr resolutionProp;
+ FontPropPtr xHeightProp;
+ FontPropPtr weightProp;
+ FontPropPtr quadWidthProp;
+ BOOL haveFontAscent;
+ BOOL haveFontDescent;
+ BOOL haveDefaultCh;
+} bdfFileState;
+
+extern void bdfError ( const char * message, ... );
+extern void bdfWarning ( const char *message, ... );
+extern unsigned char * bdfGetLine ( FontFilePtr file, unsigned char *buf,
+ int len );
+extern Atom bdfForceMakeAtom ( const char *str, int *size );
+extern Atom bdfGetPropertyValue ( char *s );
+extern int bdfIsInteger ( char *str );
+extern unsigned char bdfHexByte ( unsigned char *s );
+extern Bool bdfSpecialProperty ( FontPtr pFont, FontPropPtr prop,
+ char isString, bdfFileState *bdfState );
+extern int bdfReadFont( FontPtr pFont, FontFilePtr file,
+ int bit, int byte, int glyph, int scan );
+extern int bdfReadFontInfo( FontInfoPtr pFontInfo, FontFilePtr file );
+
+extern void FontCharInkMetrics ( FontPtr pFont, CharInfoPtr pCI,
+ xCharInfo *pInk );
+extern void FontCharReshape ( FontPtr pFont, CharInfoPtr pSrc,
+ CharInfoPtr pDst );
+
+#endif /* BDFINT_H */
diff --git a/X11/fonts/bitmap.h b/X11/fonts/bitmap.h
new file mode 100644
index 000000000..731c85f5b
--- /dev/null
+++ b/X11/fonts/bitmap.h
@@ -0,0 +1,109 @@
+/* $Xorg: bitmap.h,v 1.4 2001/02/09 02:04:04 xorgcvs Exp $ */
+
+/*
+
+Copyright 1990, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+*/
+/* $XFree86: xc/lib/font/include/bitmap.h,v 1.9 2001/01/17 19:43:31 dawes Exp $ */
+
+/*
+ * Author: Keith Packard, MIT X Consortium
+ */
+
+#ifndef _BITMAP_H_
+#define _BITMAP_H_
+
+#include <X11/fonts/fntfilio.h>
+#ifndef FONTMODULE
+#include <stdio.h> /* just for NULL */
+#else
+#include "xf86_ansic.h"
+#endif
+
+/*
+ * Internal format used to store bitmap fonts
+ */
+
+/* number of encoding entries in one segment */
+#define BITMAP_FONT_SEGMENT_SIZE 128
+
+typedef struct _BitmapExtra {
+ Atom *glyphNames;
+ int *sWidths;
+ CARD32 bitmapsSizes[GLYPHPADOPTIONS];
+ FontInfoRec info;
+} BitmapExtraRec, *BitmapExtraPtr;
+
+typedef struct _BitmapFont {
+ unsigned version_num;
+ int num_chars;
+ int num_tables;
+ CharInfoPtr metrics; /* font metrics, including glyph pointers */
+ xCharInfo *ink_metrics; /* ink metrics */
+ char *bitmaps; /* base of bitmaps, useful only to free */
+ CharInfoPtr **encoding; /* array of arrays of char info pointers */
+ CharInfoPtr pDefault; /* default character */
+ BitmapExtraPtr bitmapExtra; /* stuff not used by X server */
+} BitmapFontRec, *BitmapFontPtr;
+
+#define ACCESSENCODING(enc,i) \
+(enc[(i)/BITMAP_FONT_SEGMENT_SIZE]?\
+(enc[(i)/BITMAP_FONT_SEGMENT_SIZE][(i)%BITMAP_FONT_SEGMENT_SIZE]):\
+0)
+#define ACCESSENCODINGL(enc,i) \
+(enc[(i)/BITMAP_FONT_SEGMENT_SIZE][(i)%BITMAP_FONT_SEGMENT_SIZE])
+
+#define SEGMENT_MAJOR(n) ((n)/BITMAP_FONT_SEGMENT_SIZE)
+#define SEGMENT_MINOR(n) ((n)%BITMAP_FONT_SEGMENT_SIZE)
+#define NUM_SEGMENTS(n) \
+ (((n)+BITMAP_FONT_SEGMENT_SIZE-1)/BITMAP_FONT_SEGMENT_SIZE)
+
+extern int bitmapGetGlyphs ( FontPtr pFont, unsigned long count,
+ unsigned char *chars, FontEncoding charEncoding,
+ unsigned long *glyphCount, CharInfoPtr *glyphs );
+extern int bitmapGetMetrics ( FontPtr pFont, unsigned long count,
+ unsigned char *chars, FontEncoding charEncoding,
+ unsigned long *glyphCount, xCharInfo **glyphs );
+
+extern void bitmapComputeFontBounds ( FontPtr pFont );
+extern void bitmapComputeFontInkBounds ( FontPtr pFont );
+extern Bool bitmapAddInkMetrics ( FontPtr pFont );
+extern int bitmapComputeWeight ( FontPtr pFont );
+
+extern void BitmapRegisterFontFileFunctions ( void );
+extern int BitmapGetRenderIndex ( FontRendererPtr renderer );
+
+extern int BitmapOpenScalable ( FontPathElementPtr fpe, FontPtr *pFont,
+ int flags, FontEntryPtr entry, char *fileName,
+ FontScalablePtr vals, fsBitmapFormat format,
+ fsBitmapFormatMask fmask,
+ FontPtr non_cachable_font );
+extern int BitmapGetInfoScalable ( FontPathElementPtr fpe,
+ FontInfoPtr pFontInfo, FontEntryPtr entry,
+ FontNamePtr fontName, char *fileName,
+ FontScalablePtr vals );
+
+#endif /* _BITMAP_H_ */
diff --git a/X11/fonts/bufio.h b/X11/fonts/bufio.h
new file mode 100644
index 000000000..b5977b1d0
--- /dev/null
+++ b/X11/fonts/bufio.h
@@ -0,0 +1,93 @@
+/* $Xorg: bufio.h,v 1.4 2001/02/09 02:04:04 xorgcvs Exp $ */
+
+/*
+
+Copyright 1993, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+*/
+/* $XFree86: xc/lib/font/include/bufio.h,v 1.6 2001/07/31 16:44:55 alanh Exp $ */
+
+#ifndef ___BUFIO_H___
+#define ___BUFIO_H___ 1
+
+#include <X11/Xfuncproto.h>
+
+#ifdef TEST
+
+#define xalloc(s) malloc(s)
+#define xfree(s) free(s)
+
+#endif
+
+#define BUFFILESIZE 8192
+#define BUFFILEEOF -1
+
+typedef unsigned char BufChar;
+typedef struct _buffile *BufFilePtr;
+
+typedef struct _buffile {
+ BufChar *bufp;
+ int left;
+ int eof;
+ BufChar buffer[BUFFILESIZE];
+ int (*input)( BufFilePtr /* f */);
+ int (*output)( int /* c */, BufFilePtr /* f */);
+ int (*skip)( BufFilePtr /* f */, int /* count */);
+ int (*close)( BufFilePtr /* f */, int /* doClose */);
+ char *private;
+} BufFileRec;
+
+extern BufFilePtr BufFileCreate (
+ char*,
+ int (*)(BufFilePtr),
+ int (*)(int, BufFilePtr),
+ int (*)(BufFilePtr, int),
+ int (*)(BufFilePtr, int));
+extern BufFilePtr BufFileOpenRead ( int );
+extern BufFilePtr BufFileOpenWrite ( int );
+extern BufFilePtr BufFilePushCompressed ( BufFilePtr );
+#ifdef X_GZIP_FONT_COMPRESSION
+extern BufFilePtr BufFilePushZIP ( BufFilePtr );
+#endif
+#ifdef X_BZIP2_FONT_COMPRESSION
+extern BufFilePtr BufFilePushBZIP2 ( BufFilePtr );
+#endif
+extern int BufFileClose ( BufFilePtr, int );
+extern int BufFileRead ( BufFilePtr, char*, int );
+extern int BufFileWrite ( BufFilePtr, char*, int );
+
+#define BufFileGet(f) ((f)->left-- ? *(f)->bufp++ : ((f)->eof = (*(f)->input) (f)))
+#define BufFilePut(c,f) (--(f)->left ? *(f)->bufp++ = ((unsigned char)(c)) : (*(f)->output) ((unsigned char)(c),f))
+#define BufFileSkip(f,c) ((f)->eof = (*(f)->skip) (f, c))
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#endif /* ___BUFIO_H___ */
+
diff --git a/X11/fonts/fntfil.h b/X11/fonts/fntfil.h
new file mode 100644
index 000000000..a5fa720fa
--- /dev/null
+++ b/X11/fonts/fntfil.h
@@ -0,0 +1,182 @@
+/* $Xorg: fntfil.h,v 1.4 2001/02/09 02:04:04 xorgcvs Exp $ */
+
+/*
+
+Copyright 1991, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+/* $XFree86: xc/lib/font/include/fntfil.h,v 1.9 2001/12/14 19:56:54 dawes Exp $ */
+
+/*
+ * Author: Keith Packard, MIT X Consortium
+ */
+
+#ifndef _FONTFILE_H_
+#define _FONTFILE_H_
+
+#include <X11/fonts/fontxlfd.h>
+
+typedef struct _FontEntry *FontEntryPtr;
+typedef struct _FontTable *FontTablePtr;
+typedef struct _FontName *FontNamePtr;
+typedef struct _FontScaled *FontScaledPtr;
+typedef struct _FontScalableExtra *FontScalableExtraPtr;
+typedef struct _FontScalableEntry *FontScalableEntryPtr;
+typedef struct _FontScaleAliasEntry *FontScaleAliasEntryPtr;
+typedef struct _FontBitmapEntry *FontBitmapEntryPtr;
+typedef struct _FontAliasEntry *FontAliasEntryPtr;
+typedef struct _FontBCEntry *FontBCEntryPtr;
+typedef struct _FontDirectory *FontDirectoryPtr;
+typedef struct _FontRenderer *FontRendererPtr;
+
+#define NullFontEntry ((FontEntryPtr) 0)
+#define NullFontTable ((FontTablePtr) 0)
+#define NullFontName ((FontNamePtr) 0)
+#define NullFontScaled ((FontScaled) 0)
+#define NullFontScalableExtra ((FontScalableExtra) 0)
+#define NullFontscalableEntry ((FontScalableEntry) 0)
+#define NullFontScaleAliasEntry ((FontScaleAliasEntry) 0)
+#define NullFontBitmapEntry ((FontBitmapEntry) 0)
+#define NullFontAliasEntry ((FontAliasEntry) 0)
+#define NullFontBCEntry ((FontBCEntry) 0)
+#define NullFontDirectory ((FontDirectoryPtr) 0)
+#define NullFontRenderer ((FontRendererPtr) 0)
+
+#define FONT_ENTRY_SCALABLE 0
+#define FONT_ENTRY_SCALE_ALIAS 1
+#define FONT_ENTRY_BITMAP 2
+#define FONT_ENTRY_ALIAS 3
+#define FONT_ENTRY_BC 4
+
+#define MAXFONTNAMELEN 1024
+#define MAXFONTFILENAMELEN 1024
+
+#define FontDirFile "fonts.dir"
+#define FontAliasFile "fonts.alias"
+#define FontScalableFile "fonts.scale"
+
+extern int FontFileNameCheck ( char *name );
+extern int FontFileInitFPE ( FontPathElementPtr fpe );
+extern int FontFileResetFPE ( FontPathElementPtr fpe );
+extern int FontFileFreeFPE ( FontPathElementPtr fpe );
+extern int FontFileOpenFont ( pointer client, FontPathElementPtr fpe,
+ Mask flags, char *name, int namelen,
+ fsBitmapFormat format, fsBitmapFormatMask fmask,
+ XID id, FontPtr *pFont, char **aliasName,
+ FontPtr non_cachable_font );
+extern void FontFileCloseFont ( FontPathElementPtr fpe, FontPtr pFont );
+extern int FontFileOpenBitmap ( FontPathElementPtr fpe, FontPtr *pFont,
+ int flags, FontEntryPtr entry,
+ fsBitmapFormat format,
+ fsBitmapFormatMask fmask );
+extern int FontFileListFonts ( pointer client, FontPathElementPtr fpe,
+ char *pat, int len, int max,
+ FontNamesPtr names );
+extern int FontFileStartListFonts ( pointer client, FontPathElementPtr fpe,
+ char *pat, int len, int max,
+ pointer *privatep, int mark_aliases );
+extern int FontFileStartListFontsWithInfo ( pointer client,
+ FontPathElementPtr fpe,
+ char *pat, int len, int max,
+ pointer *privatep );
+extern int FontFileListNextFontWithInfo ( pointer client,
+ FontPathElementPtr fpe,
+ char **namep, int *namelenp,
+ FontInfoPtr *pFontInfo,
+ int *numFonts, pointer private );
+extern int FontFileStartListFontsAndAliases ( pointer client,
+ FontPathElementPtr fpe,
+ char *pat, int len, int max,
+ pointer *privatep );
+extern int FontFileListNextFontOrAlias ( pointer client,
+ FontPathElementPtr fpe,
+ char **namep, int *namelenp,
+ char **resolvedp, int *resolvedlenp,
+ pointer private );
+extern void FontFileRegisterLocalFpeFunctions ( void );
+extern void CatalogueRegisterLocalFpeFunctions ( void );
+
+
+extern FontEntryPtr FontFileAddEntry ( FontTablePtr table,
+ FontEntryPtr prototype );
+extern Bool FontFileAddFontAlias ( FontDirectoryPtr dir, char *aliasName,
+ char *fontName );
+extern Bool FontFileAddFontFile ( FontDirectoryPtr dir, char *fontName,
+ char *fileName );
+extern int FontFileCountDashes ( char *name, int namelen );
+extern FontEntryPtr FontFileFindNameInDir ( FontTablePtr table,
+ FontNamePtr pat );
+extern FontEntryPtr FontFileFindNameInScalableDir ( FontTablePtr table,
+ FontNamePtr pat,
+ FontScalablePtr vals );
+extern int FontFileFindNamesInDir ( FontTablePtr table, FontNamePtr pat,
+ int max, FontNamesPtr names );
+extern int FontFileFindNamesInScalableDir ( FontTablePtr table,
+ FontNamePtr pat, int max,
+ FontNamesPtr names,
+ FontScalablePtr vals,
+ int alias_behavior, int *newmax );
+
+extern void FontFileFreeDir ( FontDirectoryPtr dir );
+extern void FontFileFreeEntry ( FontEntryPtr entry );
+extern void FontFileFreeTable ( FontTablePtr table );
+extern Bool FontFileInitTable ( FontTablePtr table, int size );
+extern FontDirectoryPtr FontFileMakeDir ( const char *dirName, int size );
+extern Bool FontFileMatchName ( char *name, int length, FontNamePtr pat );
+extern char * FontFileSaveString ( char *s );
+extern void FontFileSortDir ( FontDirectoryPtr dir );
+extern void FontFileSortTable ( FontTablePtr table );
+
+extern void FontDefaultFormat ( int *bit, int *byte, int *glyph, int *scan );
+
+extern Bool FontFileRegisterRenderer ( FontRendererPtr renderer );
+extern Bool FontFilePriorityRegisterRenderer ( FontRendererPtr renderer,
+ int priority );
+extern FontRendererPtr FontFileMatchRenderer ( char *fileName );
+
+extern Bool FontFileAddScaledInstance ( FontEntryPtr entry,
+ FontScalablePtr vals, FontPtr pFont,
+ char *bitmapName );
+extern void FontFileSwitchStringsToBitmapPointers ( FontDirectoryPtr dir );
+extern void FontFileRemoveScaledInstance ( FontEntryPtr entry, FontPtr pFont );
+extern Bool FontFileCompleteXLFD ( FontScalablePtr vals, FontScalablePtr def );
+extern FontScaledPtr FontFileFindScaledInstance ( FontEntryPtr entry,
+ FontScalablePtr vals,
+ int noSpecificSize );
+
+extern Bool FontFileRegisterBitmapSource ( FontPathElementPtr fpe );
+extern void FontFileUnregisterBitmapSource ( FontPathElementPtr fpe );
+extern void FontFileEmptyBitmapSource ( void );
+extern int FontFileMatchBitmapSource ( FontPathElementPtr fpe,
+ FontPtr *pFont, int flags,
+ FontEntryPtr entry,
+ FontNamePtr zeroPat,
+ FontScalablePtr vals,
+ fsBitmapFormat format,
+ fsBitmapFormatMask fmask,
+ Bool noSpecificSize );
+
+extern int FontFileReadDirectory ( char *directory, FontDirectoryPtr *pdir );
+extern Bool FontFileDirectoryChanged ( FontDirectoryPtr dir );
+
+#endif /* _FONTFILE_H_ */
diff --git a/X11/fonts/fntfilio.h b/X11/fonts/fntfilio.h
new file mode 100644
index 000000000..f8e24f390
--- /dev/null
+++ b/X11/fonts/fntfilio.h
@@ -0,0 +1,56 @@
+/* $Xorg: fntfilio.h,v 1.4 2001/02/09 02:04:04 xorgcvs Exp $ */
+
+/*
+
+Copyright 1991, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+/* $XFree86: xc/lib/font/include/fntfilio.h,v 1.6 2001/10/31 22:50:26 tsi Exp $ */
+
+/*
+ * Author: Keith Packard, MIT X Consortium
+ */
+
+#ifndef _FNTFILIO_H_
+#define _FNTFILIO_H_
+
+#include <X11/fonts/bufio.h>
+
+typedef BufFilePtr FontFilePtr;
+
+#define FontFileGetc(f) BufFileGet(f)
+#define FontFilePutc(c,f) BufFilePut(c,f)
+#define FontFileRead(f,b,n) BufFileRead(f,b,n)
+#define FontFileWrite(f,b,n) BufFileWrite(f,b,n)
+#define FontFileSkip(f,n) (BufFileSkip (f, n) != BUFFILEEOF)
+#define FontFileSeek(f,n) (BufFileSeek (f,n,0) != BUFFILEEOF)
+
+#define FontFileEOF BUFFILEEOF
+
+extern FontFilePtr FontFileOpen ( const char *name );
+extern int FontFileClose ( FontFilePtr f );
+extern FontFilePtr FontFileOpenWrite ( const char *name );
+extern FontFilePtr FontFileOpenWriteFd ( int fd );
+extern FontFilePtr FontFileOpenFd ( int fd );
+
+#endif /* _FNTFILIO_H_ */
diff --git a/X11/fonts/fntfilst.h b/X11/fonts/fntfilst.h
new file mode 100644
index 000000000..1a71eae7a
--- /dev/null
+++ b/X11/fonts/fntfilst.h
@@ -0,0 +1,198 @@
+/* $Xorg: fntfilst.h,v 1.5 2001/02/09 02:04:04 xorgcvs Exp $ */
+
+/*
+
+Copyright 1991, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+/* $XFree86: xc/lib/font/include/fntfilst.h,v 3.8 2002/12/09 17:30:00 dawes Exp $ */
+
+/*
+ * Author: Keith Packard, MIT X Consortium
+ */
+
+#ifndef _FONTFILEST_H_
+#define _FONTFILEST_H_
+
+#ifndef FONTMODULE
+#include <X11/Xos.h>
+#endif
+#ifndef XP_PSTEXT
+#include <X11/fonts/fontmisc.h>
+#endif
+#include <X11/fonts/fontstruct.h>
+#include <X11/fonts/fontxlfd.h>
+#include <X11/fonts/fntfil.h>
+
+typedef struct _FontName {
+ char *name;
+ short length;
+ short ndashes;
+} FontNameRec;
+
+typedef struct _FontScaled {
+ FontScalableRec vals;
+ FontEntryPtr bitmap;
+ FontPtr pFont;
+} FontScaledRec;
+
+typedef struct _FontScalableExtra {
+ FontScalableRec defaults;
+ int numScaled;
+ int sizeScaled;
+ FontScaledPtr scaled;
+ pointer private;
+} FontScalableExtraRec;
+
+typedef struct _FontScalableEntry {
+ FontRendererPtr renderer;
+ char *fileName;
+ FontScalableExtraPtr extra;
+} FontScalableEntryRec;
+
+/*
+ * This "can't" work yet - the returned alias string must be permanent,
+ * but this layer would need to generate the appropriate name from the
+ * resolved scalable + the XLFD values passed in. XXX
+ */
+
+typedef struct _FontScaleAliasEntry {
+ char *resolved;
+} FontScaleAliasEntryRec;
+
+typedef struct _FontBitmapEntry {
+ FontRendererPtr renderer;
+ char *fileName;
+ FontPtr pFont;
+} FontBitmapEntryRec;
+
+typedef struct _FontAliasEntry {
+ char *resolved;
+} FontAliasEntryRec;
+
+typedef struct _FontBCEntry {
+ FontScalableRec vals;
+ FontEntryPtr entry;
+} FontBCEntryRec;
+
+typedef struct _FontEntry {
+ FontNameRec name;
+ int type;
+ union _FontEntryParts {
+ FontScalableEntryRec scalable;
+ FontBitmapEntryRec bitmap;
+ FontAliasEntryRec alias;
+ FontBCEntryRec bc;
+ } u;
+} FontEntryRec;
+
+typedef struct _FontTable {
+ int used;
+ int size;
+ FontEntryPtr entries;
+ Bool sorted;
+} FontTableRec;
+
+typedef struct _FontDirectory {
+ char *directory;
+ unsigned long dir_mtime;
+ unsigned long alias_mtime;
+ FontTableRec scalable;
+ FontTableRec nonScalable;
+ char *attributes;
+} FontDirectoryRec;
+
+/* Capability bits: for definition of capabilities bitmap in the
+ FontRendererRec to indicate support of XLFD enhancements */
+
+#define CAP_MATRIX 0x1
+#define CAP_CHARSUBSETTING 0x2
+
+typedef struct _FontRenderer {
+ char *fileSuffix;
+ int fileSuffixLen;
+ int (*OpenBitmap)(FontPathElementPtr /* fpe */,
+ FontPtr * /* pFont */,
+ int /* flags */,
+ FontEntryPtr /* entry */,
+ char * /* fileName */,
+ fsBitmapFormat /* format */,
+ fsBitmapFormatMask /* mask */,
+ FontPtr /* non_cachable_font */);
+ int (*OpenScalable)(FontPathElementPtr /* fpe */,
+ FontPtr * /* pFont */,
+ int /* flags */,
+ FontEntryPtr /* entry */,
+ char * /* fileName */,
+ FontScalablePtr /* vals */,
+ fsBitmapFormat /* format */,
+ fsBitmapFormatMask /* fmask */,
+ FontPtr /* non_cachable_font */);
+ int (*GetInfoBitmap)(FontPathElementPtr /* fpe */,
+ FontInfoPtr /* pFontInfo */,
+ FontEntryPtr /* entry */,
+ char * /*fileName */);
+ int (*GetInfoScalable)(FontPathElementPtr /* fpe */,
+ FontInfoPtr /* pFontInfo */,
+ FontEntryPtr /* entry */,
+ FontNamePtr /* fontName */,
+ char * /* fileName */,
+ FontScalablePtr /* vals */);
+ int number;
+ int capabilities; /* Bitmap components defined above */
+} FontRendererRec;
+
+typedef struct _FontRenders {
+ int number;
+ struct _FontRenderersElement {
+ /* In order to preserve backward compatibility, the
+ priority field is made invisible to renderers */
+ FontRendererPtr renderer;
+ int priority;
+ } *renderers;
+} FontRenderersRec, *FontRenderersPtr;
+
+typedef struct _BitmapInstance {
+ FontScalableRec vals;
+ FontBitmapEntryPtr bitmap;
+} BitmapInstanceRec, *BitmapInstancePtr;
+
+typedef struct _BitmapScalablePrivate {
+ int numInstances;
+ BitmapInstancePtr instances;
+} BitmapScalablePrivateRec, *BitmapScalablePrivatePtr;
+
+typedef struct _BitmapSources {
+ FontPathElementPtr *fpe;
+ int size;
+ int count;
+} BitmapSourcesRec, *BitmapSourcesPtr;
+
+extern BitmapSourcesRec FontFileBitmapSources;
+
+/* Defines for FontFileFindNamesInScalableDir() behavior */
+#define NORMAL_ALIAS_BEHAVIOR 0
+#define LIST_ALIASES_AND_TARGET_NAMES (1<<0)
+#define IGNORE_SCALABLE_ALIASES (1<<1)
+
+#endif /* _FONTFILEST_H_ */
diff --git a/X11/fonts/fontenc.h b/X11/fonts/fontenc.h
new file mode 100644
index 000000000..09472cfc5
--- /dev/null
+++ b/X11/fonts/fontenc.h
@@ -0,0 +1,124 @@
+/*
+Copyright (c) 1998-2001 by Juliusz Chroboczek
+
+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:
+
+The above copyright notice and this permission notice 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 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.
+*/
+
+/* $XFree86: xc/lib/font/include/fontenc.h,v 1.7 2000/11/14 16:54:45 dawes Exp $ */
+
+/* Header for backend-independent encoding code */
+
+/* An encoding is identified with a name. An encoding contains some
+ global encoding data, such as its size, and a set of mappings.
+ Mappings are identified by their type and two integers, known as
+ pid and eid, the interpretation of which is type dependent. */
+
+#ifndef _FONTENC_H
+#define _FONTENC_H
+
+/* Encoding types. For future extensions, clients should be prepared
+ to ignore unknown encoding types. */
+
+/* 0 is treated specially. */
+
+#define FONT_ENCODING_UNICODE 1
+#define FONT_ENCODING_TRUETYPE 2
+#define FONT_ENCODING_POSTSCRIPT 3
+
+/* This structure represents a mapping, either from numeric codes from
+ numeric codes, or from numeric codes to strings. */
+
+/* It is expected that only one of `recode' and `name' will actually
+ be present. However, having both fields simplifies the interface
+ somewhat. */
+
+typedef struct _FontMap {
+ int type; /* the type of the mapping */
+ int pid, eid; /* the identification of the mapping */
+ unsigned (*recode)(unsigned, void*); /* mapping function */
+ char *(*name)(unsigned, void*); /* function returning glyph names */
+ void *client_data; /* second parameter of the two above */
+ struct _FontMap *next; /* link to next element in list */
+ /* The following was added for version 0.3 of the font interface. */
+ /* It should be kept at the end to preserve binary compatibility. */
+ struct _FontEnc *encoding;
+} FontMapRec, *FontMapPtr;
+
+/* This is the structure that holds all the info for one encoding. It
+ consists of a charset name, its size, and a linked list of mappings
+ like above. */
+
+typedef struct _FontEnc {
+ char *name; /* the name of the encoding */
+ char **aliases; /* its aliases, null terminated */
+ int size; /* its size, either in bytes or rows */
+ int row_size; /* the size of a row, or 0 if bytes */
+ FontMapPtr mappings; /* linked list of mappings */
+ struct _FontEnc *next; /* link to next element */
+ /* the following two were added in version 0.2 of the font interface */
+ /* they should be kept at the end to preserve binary compatibility */
+ int first; /* first byte or row */
+ int first_col; /* first column in each row */
+} FontEncRec, *FontEncPtr;
+
+typedef struct _FontMapReverse {
+ unsigned int (*reverse)(unsigned, void*);
+ void *data;
+} FontMapReverseRec, *FontMapReversePtr;
+
+
+/* Function prototypes */
+
+/* extract an encoding name from an XLFD name. Returns a pointer to a
+ *static* buffer, or NULL */
+char *FontEncFromXLFD(const char*, int);
+
+/* find the encoding data for a given encoding name; second parameter
+ is the filename of the font for which the encoding is needed.
+ Returns NULL on failure. */
+FontEncPtr FontEncFind(const char*, const char*);
+
+/* Find a given mapping for an encoding. This is only a convenience
+ function, as clients are allowed to scavenge the data structures
+ themselves (as the TrueType backend does). */
+
+FontMapPtr FontMapFind(FontEncPtr, int, int, int);
+
+/* Do both in a single step */
+FontMapPtr FontEncMapFind(const char *, int, int, int, const char *);
+
+/* Recode a code. Always succeeds. */
+unsigned FontEncRecode(unsigned, FontMapPtr);
+
+/* Return a name for a code. Returns a string or NULL. */
+char *FontEncName(unsigned, FontMapPtr);
+
+/* Return a pointer to the name of the system encodings directory. */
+/* This string is static and should not be modified. */
+char* FontEncDirectory(void);
+
+/* Identify an encoding file. If fileName doesn't exist, or is not an
+ encoding file, return NULL, otherwise returns a NULL-terminated
+ array of strings. */
+char **FontEncIdentify(const char *fileName);
+
+FontMapReversePtr FontMapReverse(FontMapPtr);
+
+void FontMapReverseFree(FontMapReversePtr);
+#endif
diff --git a/X11/fonts/fontencc.h b/X11/fonts/fontencc.h
new file mode 100644
index 000000000..51e0e1440
--- /dev/null
+++ b/X11/fonts/fontencc.h
@@ -0,0 +1,36 @@
+/*
+Copyright (c) 1998-2001 by Juliusz Chroboczek
+
+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:
+
+The above copyright notice and this permission notice 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 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.
+*/
+/* $XFree86$ */
+
+/* Binary compatibility entry points. */
+
+/* This file includes code to make modules compiled for earlier
+ versions of the fontenc interfaces link with this one. It does
+ *not* provide source compatibility, as many of the data structures
+ now have different names. */
+
+extern char *font_encoding_from_xlfd(const char*, int);
+extern unsigned font_encoding_recode(unsigned, FontEncPtr, FontMapPtr);
+extern FontEncPtr font_encoding_find(const char*, const char*);
+extern char *font_encoding_name(unsigned, FontEncPtr, FontMapPtr);
+extern char **identifyEncodingFile(const char *fileName);
+
diff --git a/X11/fonts/fontmisc.h b/X11/fonts/fontmisc.h
new file mode 100644
index 000000000..b7c948f8e
--- /dev/null
+++ b/X11/fonts/fontmisc.h
@@ -0,0 +1,142 @@
+/* $Xorg: fontmisc.h,v 1.4 2001/02/09 02:04:04 xorgcvs Exp $ */
+
+/*
+
+Copyright 1991, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+/* $XFree86: xc/lib/font/include/fontmisc.h,v 3.16 2001/12/14 19:56:54 dawes Exp $ */
+
+/*
+ * Author: Keith Packard, MIT X Consortium
+ */
+
+#ifndef _FONTMISC_H_
+#define _FONTMISC_H_
+
+#ifndef FONTMODULE
+#include <X11/Xfuncs.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#ifndef X_NOT_POSIX
+#include <unistd.h>
+#else
+extern int close();
+#endif
+
+#endif /* FONTMODULE */
+
+#include <X11/Xdefs.h>
+
+
+#ifndef LSBFirst
+#define LSBFirst 0
+#define MSBFirst 1
+#endif
+
+#ifndef None
+#define None 0l
+#endif
+
+#ifndef TRUE
+#define TRUE 1
+#define FALSE 0
+#endif
+
+extern Atom MakeAtom ( const char *string, unsigned len, int makeit );
+extern int ValidAtom ( Atom atom );
+extern char *NameForAtom (Atom atom);
+
+#ifndef _MSC_VER
+#ifndef _HAVE_XALLOC_DECLS
+#define _HAVE_XALLOC_DECLS
+extern pointer Xalloc(unsigned long);
+extern pointer Xrealloc(pointer, unsigned long);
+extern void Xfree(pointer);
+extern pointer Xcalloc(unsigned long);
+#endif
+#endif
+extern int f_strcasecmp(const char *s1, const char *s2);
+
+#ifndef xalloc
+#ifdef _MSC_VER
+#define xalloc(n) malloc ((unsigned) n)
+#define xfree(p) free ((pointer) p)
+#define xrealloc(p,n) realloc (p,n)
+#define xcalloc(n,s) calloc(n, s)
+#else
+#define xalloc(n) Xalloc ((unsigned) n)
+#define xfree(p) Xfree ((pointer) p)
+#define xrealloc(p,n) Xrealloc ((pointer)p,n)
+#define xcalloc(n,s) Xcalloc((unsigned) n * (unsigned) s)
+#endif
+#endif
+#define lowbit(x) ((x) & (~(x) + 1))
+
+#undef assert
+#define assert(x) ((void)0)
+
+#ifndef strcasecmp
+#if defined(NEED_STRCASECMP) && !defined(FONTMODULE)
+#define strcasecmp(s1,s2) f_strcasecmp(s1,s2)
+#endif
+#endif
+
+extern void
+BitOrderInvert(
+ register unsigned char *,
+ register int
+);
+
+extern void
+TwoByteSwap(
+ register unsigned char *,
+ register int
+);
+
+extern void
+FourByteSwap(
+ register unsigned char *,
+ register int
+);
+
+extern int
+RepadBitmap (
+ char*,
+ char*,
+ unsigned,
+ unsigned,
+ int,
+ int
+);
+
+extern void CopyISOLatin1Lowered(
+ char * /*dest*/,
+ char * /*source*/,
+ int /*length*/
+);
+
+extern void register_fpe_functions(void);
+
+#endif /* _FONTMISC_H_ */
diff --git a/X11/fonts/fontmod.h b/X11/fonts/fontmod.h
new file mode 100644
index 000000000..42d277fd4
--- /dev/null
+++ b/X11/fonts/fontmod.h
@@ -0,0 +1,16 @@
+/* $XFree86: xc/lib/font/include/fontmod.h,v 1.2 1998/07/25 06:57:09 dawes Exp $ */
+
+#ifndef _FONTMOD_H_
+#define _FONTMOD_H_
+
+typedef void (*InitFont)(void);
+
+typedef struct {
+ InitFont initFunc;
+ char * name;
+ pointer module;
+} FontModule;
+
+extern FontModule *FontModuleList;
+
+#endif /* _FONTMOD_H_ */
diff --git a/X11/fonts/fontutil.h b/X11/fonts/fontutil.h
new file mode 100644
index 000000000..9a73eaa47
--- /dev/null
+++ b/X11/fonts/fontutil.h
@@ -0,0 +1,26 @@
+/* $XFree86: xc/lib/font/include/fontutil.h,v 1.1 1999/03/14 11:17:49 dawes Exp $ */
+
+#ifndef _FONTUTIL_H_
+#define _FONTUTIL_H_
+
+#include <X11/fonts/FSproto.h>
+
+extern int FontCouldBeTerminal(FontInfoPtr);
+extern int CheckFSFormat(fsBitmapFormat, fsBitmapFormatMask, int *, int *,
+ int *, int *, int *);
+extern void FontComputeInfoAccelerators(FontInfoPtr);
+
+extern void GetGlyphs ( FontPtr font, unsigned long count,
+ unsigned char *chars, FontEncoding fontEncoding,
+ unsigned long *glyphcount, CharInfoPtr *glyphs );
+extern void QueryGlyphExtents ( FontPtr pFont, CharInfoPtr *charinfo,
+ unsigned long count, ExtentInfoRec *info );
+extern Bool QueryTextExtents ( FontPtr pFont, unsigned long count,
+ unsigned char *chars, ExtentInfoRec *info );
+extern Bool ParseGlyphCachingMode ( char *str );
+extern void InitGlyphCaching ( void );
+extern void SetGlyphCachingMode ( int newmode );
+extern int add_range ( fsRange *newrange, int *nranges, fsRange **range,
+ Bool charset_subset );
+
+#endif /* _FONTUTIL_H_ */
diff --git a/X11/fonts/fontxlfd.h b/X11/fonts/fontxlfd.h
new file mode 100644
index 000000000..e87b93143
--- /dev/null
+++ b/X11/fonts/fontxlfd.h
@@ -0,0 +1,100 @@
+/* $Xorg: fontxlfd.h,v 1.4 2001/02/09 02:04:04 xorgcvs Exp $ */
+
+/*
+
+Copyright 1990, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+*/
+/* $XFree86: xc/lib/font/include/fontxlfd.h,v 1.5 2001/01/17 19:43:32 dawes Exp $ */
+
+/*
+ * Author: Keith Packard, MIT X Consortium
+ */
+
+#ifndef _FONTXLFD_H_
+#define _FONTXLFD_H_
+
+#include <X11/fonts/FSproto.h>
+
+/* Constants for values_supplied bitmap */
+
+#define SIZE_SPECIFY_MASK 0xf
+
+#define PIXELSIZE_MASK 0x3
+#define PIXELSIZE_UNDEFINED 0
+#define PIXELSIZE_SCALAR 0x1
+#define PIXELSIZE_ARRAY 0x2
+#define PIXELSIZE_SCALAR_NORMALIZED 0x3 /* Adjusted for resolution */
+
+#define POINTSIZE_MASK 0xc
+#define POINTSIZE_UNDEFINED 0
+#define POINTSIZE_SCALAR 0x4
+#define POINTSIZE_ARRAY 0x8
+
+#define PIXELSIZE_WILDCARD 0x10
+#define POINTSIZE_WILDCARD 0x20
+
+#define ENHANCEMENT_SPECIFY_MASK 0x40
+
+#define CHARSUBSET_SPECIFIED 0x40
+
+#define EPS 1.0e-20
+#define XLFD_NDIGITS 3 /* Round numbers in pixel and
+ point arrays to this many
+ digits for repeatability */
+
+typedef struct _FontScalable {
+ int values_supplied; /* Bitmap identifying what advanced
+ capabilities or enhancements
+ were specified in the font name */
+ double pixel_matrix[4];
+ double point_matrix[4];
+
+ /* Pixel and point fields are deprecated in favor of the
+ transformation matrices. They are provided and filled in for the
+ benefit of rasterizers that do not handle the matrices. */
+
+ int pixel,
+ point;
+
+ int x,
+ y,
+ width;
+ char *xlfdName;
+ int nranges;
+ fsRange *ranges;
+} FontScalableRec, *FontScalablePtr;
+
+
+extern double xlfd_round_double ( double x );
+extern Bool FontParseXLFDName ( char *fname, FontScalablePtr vals, int subst );
+extern fsRange *FontParseRanges ( char *name, int *nranges );
+
+#define FONT_XLFD_REPLACE_NONE 0
+#define FONT_XLFD_REPLACE_STAR 1
+#define FONT_XLFD_REPLACE_ZERO 2
+#define FONT_XLFD_REPLACE_VALUE 3
+
+#endif /* _FONTXLFD_H_ */
diff --git a/X11/fonts/pcf.h b/X11/fonts/pcf.h
new file mode 100644
index 000000000..673e18449
--- /dev/null
+++ b/X11/fonts/pcf.h
@@ -0,0 +1,102 @@
+/* $Xorg: pcf.h,v 1.4 2001/02/09 02:04:02 xorgcvs Exp $ */
+
+/*
+
+Copyright 1991, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+*/
+/* $XFree86: xc/lib/font/bitmap/pcf.h,v 1.4 2001/12/14 19:56:47 dawes Exp $ */
+
+/*
+ * Author: Keith Packard, MIT X Consortium
+ */
+
+#ifndef _PCF_H_
+#define _PCF_H_
+
+#include <X11/fonts/fntfilio.h>
+
+/*
+ * Information used to read/write PCF fonts
+ */
+
+typedef struct _PCFTable {
+ CARD32 type;
+ CARD32 format;
+ CARD32 size;
+ CARD32 offset;
+} PCFTableRec, *PCFTablePtr;
+
+#define PCF_FILE_VERSION (('p'<<24)|('c'<<16)|('f'<<8)|1)
+#define PCF_FORMAT_MASK 0xffffff00
+
+#define PCF_DEFAULT_FORMAT 0x00000000
+#define PCF_INKBOUNDS 0x00000200
+#define PCF_ACCEL_W_INKBOUNDS 0x00000100
+#define PCF_COMPRESSED_METRICS 0x00000100
+
+#define PCF_FORMAT_MATCH(a,b) (((a)&PCF_FORMAT_MASK) == ((b)&PCF_FORMAT_MASK))
+
+#define PCF_GLYPH_PAD_MASK (3<<0)
+#define PCF_BYTE_MASK (1<<2)
+#define PCF_BIT_MASK (1<<3)
+#define PCF_SCAN_UNIT_MASK (3<<4)
+
+#define PCF_BYTE_ORDER(f) (((f) & PCF_BYTE_MASK)?MSBFirst:LSBFirst)
+#define PCF_BIT_ORDER(f) (((f) & PCF_BIT_MASK)?MSBFirst:LSBFirst)
+#define PCF_GLYPH_PAD_INDEX(f) ((f) & PCF_GLYPH_PAD_MASK)
+#define PCF_GLYPH_PAD(f) (1<<PCF_GLYPH_PAD_INDEX(f))
+#define PCF_SCAN_UNIT_INDEX(f) (((f) & PCF_SCAN_UNIT_MASK) >> 4)
+#define PCF_SCAN_UNIT(f) (1<<PCF_SCAN_UNIT_INDEX(f))
+#define PCF_FORMAT_BITS(f) ((f) & (PCF_GLYPH_PAD_MASK|PCF_BYTE_MASK|PCF_BIT_MASK|PCF_SCAN_UNIT_MASK))
+
+#define PCF_SIZE_TO_INDEX(s) ((s) == 4 ? 2 : (s) == 2 ? 1 : 0)
+#define PCF_INDEX_TO_SIZE(b) (1<<b)
+
+#define PCF_FORMAT(bit,byte,glyph,scan) (\
+ (PCF_SIZE_TO_INDEX(scan) << 4) | \
+ (((bit) == MSBFirst ? 1 : 0) << 3) | \
+ (((byte) == MSBFirst ? 1 : 0) << 2) | \
+ (PCF_SIZE_TO_INDEX(glyph) << 0))
+
+#define PCF_PROPERTIES (1<<0)
+#define PCF_ACCELERATORS (1<<1)
+#define PCF_METRICS (1<<2)
+#define PCF_BITMAPS (1<<3)
+#define PCF_INK_METRICS (1<<4)
+#define PCF_BDF_ENCODINGS (1<<5)
+#define PCF_SWIDTHS (1<<6)
+#define PCF_GLYPH_NAMES (1<<7)
+#define PCF_BDF_ACCELERATORS (1<<8)
+
+extern int pcfReadFont ( FontPtr pFont, FontFilePtr file,
+ int bit, int byte, int glyph, int scan );
+extern int pcfReadFontInfo ( FontInfoPtr pFontInfo, FontFilePtr file );
+extern int pmfReadFont ( FontPtr pFont, FontFilePtr file,
+ int bit, int byte, int glyph, int scan );
+extern int pcfWriteFont ( FontPtr pFont, FontFilePtr file );
+extern void pcfError ( const char *, ... );
+
+#endif /* _PCF_H_ */
diff --git a/X11/xpm.h b/X11/xpm.h
new file mode 100644
index 000000000..ed4613315
--- /dev/null
+++ b/X11/xpm.h
@@ -0,0 +1,478 @@
+/*
+ * Copyright (C) 1989-95 GROUPE BULL
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * GROUPE BULL 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.
+ *
+ * Except as contained in this notice, the name of GROUPE BULL shall not be
+ * used in advertising or otherwise to promote the sale, use or other dealings
+ * in this Software without prior written authorization from GROUPE BULL.
+ */
+/* $XFree86: xc/extras/Xpm/lib/xpm.h,v 1.2 2001/08/22 23:36:44 dawes Exp $ */
+
+/*****************************************************************************\
+* xpm.h: *
+* *
+* XPM library *
+* Include file *
+* *
+* Developed by Arnaud Le Hors *
+\*****************************************************************************/
+
+/*
+ * The code related to FOR_MSW has been added by
+ * HeDu (hedu@cul-ipn.uni-kiel.de) 4/94
+ */
+
+/*
+ * The code related to AMIGA has been added by
+ * Lorens Younes (d93-hyo@nada.kth.se) 4/96
+ */
+
+#ifndef XPM_h
+#define XPM_h
+
+/*
+ * first some identification numbers:
+ * the version and revision numbers are determined with the following rule:
+ * SO Major number = LIB minor version number.
+ * SO Minor number = LIB sub-minor version number.
+ * e.g: Xpm version 3.2f
+ * we forget the 3 which is the format number, 2 gives 2, and f gives 6.
+ * thus we have XpmVersion = 2 and XpmRevision = 6
+ * which gives SOXPMLIBREV = 2.6
+ *
+ * Then the XpmIncludeVersion number is built from these numbers.
+ */
+#define XpmFormat 3
+#define XpmVersion 4
+#define XpmRevision 11
+#define XpmIncludeVersion ((XpmFormat * 100 + XpmVersion) * 100 + XpmRevision)
+
+#ifndef XPM_NUMBERS
+
+#ifdef FOR_MSW
+# define SYSV /* uses memcpy string.h etc. */
+# include <malloc.h>
+# include "simx.h" /* defines some X stuff using MSW types */
+#define NEED_STRCASECMP /* at least for MSVC++ */
+#else /* FOR_MSW */
+# ifdef AMIGA
+# include "amigax.h"
+# else /* not AMIGA */
+# include <X11/Xlib.h>
+# include <X11/Xutil.h>
+# endif /* not AMIGA */
+#endif /* FOR_MSW */
+
+/* let's define Pixel if it is not done yet */
+#if ! defined(_XtIntrinsic_h) && ! defined(PIXEL_ALREADY_TYPEDEFED)
+typedef unsigned long Pixel; /* Index into colormap */
+# define PIXEL_ALREADY_TYPEDEFED
+#endif
+
+/* Return ErrorStatus codes:
+ * null if full success
+ * positive if partial success
+ * negative if failure
+ */
+
+#define XpmColorError 1
+#define XpmSuccess 0
+#define XpmOpenFailed -1
+#define XpmFileInvalid -2
+#define XpmNoMemory -3
+#define XpmColorFailed -4
+
+typedef struct {
+ char *name; /* Symbolic color name */
+ char *value; /* Color value */
+ Pixel pixel; /* Color pixel */
+} XpmColorSymbol;
+
+typedef struct {
+ char *name; /* name of the extension */
+ unsigned int nlines; /* number of lines in this extension */
+ char **lines; /* pointer to the extension array of strings */
+} XpmExtension;
+
+typedef struct {
+ char *string; /* characters string */
+ char *symbolic; /* symbolic name */
+ char *m_color; /* monochrom default */
+ char *g4_color; /* 4 level grayscale default */
+ char *g_color; /* other level grayscale default */
+ char *c_color; /* color default */
+} XpmColor;
+
+typedef struct {
+ unsigned int width; /* image width */
+ unsigned int height; /* image height */
+ unsigned int cpp; /* number of characters per pixel */
+ unsigned int ncolors; /* number of colors */
+ XpmColor *colorTable; /* list of related colors */
+ unsigned int *data; /* image data */
+} XpmImage;
+
+typedef struct {
+ unsigned long valuemask; /* Specifies which attributes are defined */
+ char *hints_cmt; /* Comment of the hints section */
+ char *colors_cmt; /* Comment of the colors section */
+ char *pixels_cmt; /* Comment of the pixels section */
+ unsigned int x_hotspot; /* Returns the x hotspot's coordinate */
+ unsigned int y_hotspot; /* Returns the y hotspot's coordinate */
+ unsigned int nextensions; /* number of extensions */
+ XpmExtension *extensions; /* pointer to array of extensions */
+} XpmInfo;
+
+typedef int (*XpmAllocColorFunc)(
+ Display* /* display */,
+ Colormap /* colormap */,
+ char* /* colorname */,
+ XColor* /* xcolor */,
+ void* /* closure */
+);
+
+typedef int (*XpmFreeColorsFunc)(
+ Display* /* display */,
+ Colormap /* colormap */,
+ Pixel* /* pixels */,
+ int /* npixels */,
+ void* /* closure */
+);
+
+typedef struct {
+ unsigned long valuemask; /* Specifies which attributes are
+ defined */
+
+ Visual *visual; /* Specifies the visual to use */
+ Colormap colormap; /* Specifies the colormap to use */
+ unsigned int depth; /* Specifies the depth */
+ unsigned int width; /* Returns the width of the created
+ pixmap */
+ unsigned int height; /* Returns the height of the created
+ pixmap */
+ unsigned int x_hotspot; /* Returns the x hotspot's
+ coordinate */
+ unsigned int y_hotspot; /* Returns the y hotspot's
+ coordinate */
+ unsigned int cpp; /* Specifies the number of char per
+ pixel */
+ Pixel *pixels; /* List of used color pixels */
+ unsigned int npixels; /* Number of used pixels */
+ XpmColorSymbol *colorsymbols; /* List of color symbols to override */
+ unsigned int numsymbols; /* Number of symbols */
+ char *rgb_fname; /* RGB text file name */
+ unsigned int nextensions; /* Number of extensions */
+ XpmExtension *extensions; /* List of extensions */
+
+ unsigned int ncolors; /* Number of colors */
+ XpmColor *colorTable; /* List of colors */
+/* 3.2 backward compatibility code */
+ char *hints_cmt; /* Comment of the hints section */
+ char *colors_cmt; /* Comment of the colors section */
+ char *pixels_cmt; /* Comment of the pixels section */
+/* end 3.2 bc */
+ unsigned int mask_pixel; /* Color table index of transparent
+ color */
+
+ /* Color Allocation Directives */
+ Bool exactColors; /* Only use exact colors for visual */
+ unsigned int closeness; /* Allowable RGB deviation */
+ unsigned int red_closeness; /* Allowable red deviation */
+ unsigned int green_closeness; /* Allowable green deviation */
+ unsigned int blue_closeness; /* Allowable blue deviation */
+ int color_key; /* Use colors from this color set */
+
+ Pixel *alloc_pixels; /* Returns the list of alloc'ed color
+ pixels */
+ int nalloc_pixels; /* Returns the number of alloc'ed
+ color pixels */
+
+ Bool alloc_close_colors; /* Specify whether close colors should
+ be allocated using XAllocColor
+ or not */
+ int bitmap_format; /* Specify the format of 1bit depth
+ images: ZPixmap or XYBitmap */
+
+ /* Color functions */
+ XpmAllocColorFunc alloc_color; /* Application color allocator */
+ XpmFreeColorsFunc free_colors; /* Application color de-allocator */
+ void *color_closure; /* Application private data to pass to
+ alloc_color and free_colors */
+
+} XpmAttributes;
+
+/* XpmAttributes value masks bits */
+#define XpmVisual (1L<<0)
+#define XpmColormap (1L<<1)
+#define XpmDepth (1L<<2)
+#define XpmSize (1L<<3) /* width & height */
+#define XpmHotspot (1L<<4) /* x_hotspot & y_hotspot */
+#define XpmCharsPerPixel (1L<<5)
+#define XpmColorSymbols (1L<<6)
+#define XpmRgbFilename (1L<<7)
+/* 3.2 backward compatibility code */
+#define XpmInfos (1L<<8)
+#define XpmReturnInfos XpmInfos
+/* end 3.2 bc */
+#define XpmReturnPixels (1L<<9)
+#define XpmExtensions (1L<<10)
+#define XpmReturnExtensions XpmExtensions
+
+#define XpmExactColors (1L<<11)
+#define XpmCloseness (1L<<12)
+#define XpmRGBCloseness (1L<<13)
+#define XpmColorKey (1L<<14)
+
+#define XpmColorTable (1L<<15)
+#define XpmReturnColorTable XpmColorTable
+
+#define XpmReturnAllocPixels (1L<<16)
+#define XpmAllocCloseColors (1L<<17)
+#define XpmBitmapFormat (1L<<18)
+
+#define XpmAllocColor (1L<<19)
+#define XpmFreeColors (1L<<20)
+#define XpmColorClosure (1L<<21)
+
+
+/* XpmInfo value masks bits */
+#define XpmComments XpmInfos
+#define XpmReturnComments XpmComments
+
+/* XpmAttributes mask_pixel value when there is no mask */
+#ifndef FOR_MSW
+#define XpmUndefPixel 0x80000000
+#else
+/* int is only 16 bit for MSW */
+#define XpmUndefPixel 0x8000
+#endif
+
+/*
+ * color keys for visual type, they must fit along with the number key of
+ * each related element in xpmColorKeys[] defined in XpmI.h
+ */
+#define XPM_MONO 2
+#define XPM_GREY4 3
+#define XPM_GRAY4 3
+#define XPM_GREY 4
+#define XPM_GRAY 4
+#define XPM_COLOR 5
+
+
+/* macros for forward declarations of functions with prototypes */
+#define FUNC(f, t, p) extern t f p
+#define LFUNC(f, t, p) static t f p
+
+
+/*
+ * functions declarations
+ */
+
+_XFUNCPROTOBEGIN
+
+/* FOR_MSW, all ..Pixmap.. are excluded, only the ..XImage.. are used */
+/* Same for Amiga! */
+
+#if !defined(FOR_MSW) && !defined(AMIGA)
+ FUNC(XpmCreatePixmapFromData, int, (Display *display,
+ Drawable d,
+ char **data,
+ Pixmap *pixmap_return,
+ Pixmap *shapemask_return,
+ XpmAttributes *attributes));
+
+ FUNC(XpmCreateDataFromPixmap, int, (Display *display,
+ char ***data_return,
+ Pixmap pixmap,
+ Pixmap shapemask,
+ XpmAttributes *attributes));
+
+ FUNC(XpmReadFileToPixmap, int, (Display *display,
+ Drawable d,
+ char *filename,
+ Pixmap *pixmap_return,
+ Pixmap *shapemask_return,
+ XpmAttributes *attributes));
+
+ FUNC(XpmWriteFileFromPixmap, int, (Display *display,
+ char *filename,
+ Pixmap pixmap,
+ Pixmap shapemask,
+ XpmAttributes *attributes));
+#endif
+
+ FUNC(XpmCreateImageFromData, int, (Display *display,
+ char **data,
+ XImage **image_return,
+ XImage **shapemask_return,
+ XpmAttributes *attributes));
+
+ FUNC(XpmCreateDataFromImage, int, (Display *display,
+ char ***data_return,
+ XImage *image,
+ XImage *shapeimage,
+ XpmAttributes *attributes));
+
+ FUNC(XpmReadFileToImage, int, (Display *display,
+ char *filename,
+ XImage **image_return,
+ XImage **shapeimage_return,
+ XpmAttributes *attributes));
+
+ FUNC(XpmWriteFileFromImage, int, (Display *display,
+ char *filename,
+ XImage *image,
+ XImage *shapeimage,
+ XpmAttributes *attributes));
+
+ FUNC(XpmCreateImageFromBuffer, int, (Display *display,
+ char *buffer,
+ XImage **image_return,
+ XImage **shapemask_return,
+ XpmAttributes *attributes));
+#if !defined(FOR_MSW) && !defined(AMIGA)
+ FUNC(XpmCreatePixmapFromBuffer, int, (Display *display,
+ Drawable d,
+ char *buffer,
+ Pixmap *pixmap_return,
+ Pixmap *shapemask_return,
+ XpmAttributes *attributes));
+
+ FUNC(XpmCreateBufferFromImage, int, (Display *display,
+ char **buffer_return,
+ XImage *image,
+ XImage *shapeimage,
+ XpmAttributes *attributes));
+
+ FUNC(XpmCreateBufferFromPixmap, int, (Display *display,
+ char **buffer_return,
+ Pixmap pixmap,
+ Pixmap shapemask,
+ XpmAttributes *attributes));
+#endif
+ FUNC(XpmReadFileToBuffer, int, (char *filename, char **buffer_return));
+ FUNC(XpmWriteFileFromBuffer, int, (char *filename, char *buffer));
+
+ FUNC(XpmReadFileToData, int, (char *filename, char ***data_return));
+ FUNC(XpmWriteFileFromData, int, (char *filename, char **data));
+
+ FUNC(XpmAttributesSize, int, (void));
+ FUNC(XpmFreeAttributes, void, (XpmAttributes *attributes));
+ FUNC(XpmFreeExtensions, void, (XpmExtension *extensions,
+ int nextensions));
+
+ FUNC(XpmFreeXpmImage, void, (XpmImage *image));
+ FUNC(XpmFreeXpmInfo, void, (XpmInfo *info));
+ FUNC(XpmGetErrorString, char *, (int errcode));
+ FUNC(XpmLibraryVersion, int, (void));
+
+ /* XpmImage functions */
+ FUNC(XpmReadFileToXpmImage, int, (char *filename,
+ XpmImage *image,
+ XpmInfo *info));
+
+ FUNC(XpmWriteFileFromXpmImage, int, (char *filename,
+ XpmImage *image,
+ XpmInfo *info));
+#if !defined(FOR_MSW) && !defined(AMIGA)
+ FUNC(XpmCreatePixmapFromXpmImage, int, (Display *display,
+ Drawable d,
+ XpmImage *image,
+ Pixmap *pixmap_return,
+ Pixmap *shapemask_return,
+ XpmAttributes *attributes));
+#endif
+ FUNC(XpmCreateImageFromXpmImage, int, (Display *display,
+ XpmImage *image,
+ XImage **image_return,
+ XImage **shapeimage_return,
+ XpmAttributes *attributes));
+
+ FUNC(XpmCreateXpmImageFromImage, int, (Display *display,
+ XImage *image,
+ XImage *shapeimage,
+ XpmImage *xpmimage,
+ XpmAttributes *attributes));
+#if !defined(FOR_MSW) && !defined(AMIGA)
+ FUNC(XpmCreateXpmImageFromPixmap, int, (Display *display,
+ Pixmap pixmap,
+ Pixmap shapemask,
+ XpmImage *xpmimage,
+ XpmAttributes *attributes));
+#endif
+ FUNC(XpmCreateDataFromXpmImage, int, (char ***data_return,
+ XpmImage *image,
+ XpmInfo *info));
+
+ FUNC(XpmCreateXpmImageFromData, int, (char **data,
+ XpmImage *image,
+ XpmInfo *info));
+
+ FUNC(XpmCreateXpmImageFromBuffer, int, (char *buffer,
+ XpmImage *image,
+ XpmInfo *info));
+
+ FUNC(XpmCreateBufferFromXpmImage, int, (char **buffer_return,
+ XpmImage *image,
+ XpmInfo *info));
+
+ FUNC(XpmGetParseError, int, (char *filename,
+ int *linenum_return,
+ int *charnum_return));
+
+ FUNC(XpmFree, void, (void *ptr));
+
+_XFUNCPROTOEND
+
+/* backward compatibility */
+
+/* for version 3.0c */
+#define XpmPixmapColorError XpmColorError
+#define XpmPixmapSuccess XpmSuccess
+#define XpmPixmapOpenFailed XpmOpenFailed
+#define XpmPixmapFileInvalid XpmFileInvalid
+#define XpmPixmapNoMemory XpmNoMemory
+#define XpmPixmapColorFailed XpmColorFailed
+
+#define XpmReadPixmapFile(dpy, d, file, pix, mask, att) \
+ XpmReadFileToPixmap(dpy, d, file, pix, mask, att)
+#define XpmWritePixmapFile(dpy, file, pix, mask, att) \
+ XpmWriteFileFromPixmap(dpy, file, pix, mask, att)
+
+/* for version 3.0b */
+#define PixmapColorError XpmColorError
+#define PixmapSuccess XpmSuccess
+#define PixmapOpenFailed XpmOpenFailed
+#define PixmapFileInvalid XpmFileInvalid
+#define PixmapNoMemory XpmNoMemory
+#define PixmapColorFailed XpmColorFailed
+
+#define ColorSymbol XpmColorSymbol
+
+#define XReadPixmapFile(dpy, d, file, pix, mask, att) \
+ XpmReadFileToPixmap(dpy, d, file, pix, mask, att)
+#define XWritePixmapFile(dpy, file, pix, mask, att) \
+ XpmWriteFileFromPixmap(dpy, file, pix, mask, att)
+#define XCreatePixmapFromData(dpy, d, data, pix, mask, att) \
+ XpmCreatePixmapFromData(dpy, d, data, pix, mask, att)
+#define XCreateDataFromPixmap(dpy, data, pix, mask, att) \
+ XpmCreateDataFromPixmap(dpy, data, pix, mask, att)
+
+#endif /* XPM_NUMBERS */
+#endif
diff --git a/X11/xtrans/Xtrans.c b/X11/xtrans/Xtrans.c
index 735d7b87f..13adf59ef 100644
--- a/X11/xtrans/Xtrans.c
+++ b/X11/xtrans/Xtrans.c
@@ -48,7 +48,11 @@ from The Open Group.
*/
#include <ctype.h>
+#include <unistd.h>
+#ifdef _MSC_VER
+#include <X11\Xwinsock.h>
+#endif
/*
* The transport table contains a definition for every transport (protocol)
* family. All operations that can be made on the transport go through this
@@ -108,9 +112,10 @@ Xtransport_table Xtransports[] = {
{ &TRANS(SCOFuncs), TRANS_LOCAL_SCO_INDEX },
#endif /* __SCO__ || __UNIXWARE__ */
#endif /* LOCALCONN */
+ { NULL, 0}
};
-#define NUMTRANS (sizeof(Xtransports)/sizeof(Xtransport_table))
+#define NUMTRANS (sizeof(Xtransports)/sizeof(Xtransport_table)-1)
#ifdef WIN32
@@ -695,7 +700,7 @@ TRANS(SetOption) (XtransConnInfo ciptr, int option, int arg)
#if defined(WIN32)
{
#ifdef WIN32
- u_long arg;
+ unsigned long arg;
#else
int arg;
#endif
@@ -879,7 +884,6 @@ TRANS(Writev) (XtransConnInfo ciptr, struct iovec *buf, int size)
return ciptr->transptr->Writev (ciptr, buf, size);
}
-#if XTRANS_SEND_FDS
int
TRANS(SendFd) (XtransConnInfo ciptr, int fd, int do_close)
{
@@ -891,7 +895,6 @@ TRANS(RecvFd) (XtransConnInfo ciptr)
{
return ciptr->transptr->RecvFd(ciptr);
}
-#endif
int
TRANS(Disconnect) (XtransConnInfo ciptr)
diff --git a/X11/xtrans/Xtransint.h b/X11/xtrans/Xtransint.h
index 1f32f0cae..b2b6821d3 100644
--- a/X11/xtrans/Xtransint.h
+++ b/X11/xtrans/Xtransint.h
@@ -291,7 +291,6 @@ typedef struct _Xtransport {
int /* size */
);
-#if XTRANS_SEND_FDS
int (*SendFd)(
XtransConnInfo, /* connection */
int, /* fd */
@@ -301,7 +300,6 @@ typedef struct _Xtransport {
int (*RecvFd)(
XtransConnInfo /* connection */
);
-#endif
int (*Disconnect)(
XtransConnInfo /* connection */
@@ -416,6 +414,11 @@ static int trans_mkdir (
# if defined(XSERV_t) && defined(TRANS_SERVER)
# include "os.h"
# else
+
+#ifdef _MSC_VER
+#define inline __inline
+#endif
+
static inline void _X_ATTRIBUTE_PRINTF(1, 0)
VErrorF(const char *f, va_list args)
{
diff --git a/X11/xtrans/Xtranslcl.c b/X11/xtrans/Xtranslcl.c
index 4deb86c40..65f1957b9 100644
--- a/X11/xtrans/Xtranslcl.c
+++ b/X11/xtrans/Xtranslcl.c
@@ -72,17 +72,23 @@ from The Open Group.
#include <errno.h>
#include <ctype.h>
+#ifdef _MSC_VER
+#include <signal.h>
+#else
#include <sys/signal.h>
#include <sys/ioctl.h>
+#endif
#include <sys/stat.h>
#if defined(SVR4) || defined(__SVR4)
#include <sys/filio.h>
#endif
+#ifndef _MSC_VER
#ifdef sun
# include <stropts.h>
#else
# include <sys/stropts.h>
#endif
+#endif
#include <sys/wait.h>
#include <sys/types.h>
diff --git a/X11/xtrans/Xtranssock.c b/X11/xtrans/Xtranssock.c
index c9d103352..bbc08f4e0 100644..100755
--- a/X11/xtrans/Xtranssock.c
+++ b/X11/xtrans/Xtranssock.c
@@ -129,11 +129,15 @@ from the copyright holders.
#include <X11/Xw32defs.h>
#undef close
#define close closesocket
+#undef ECONNREFUSED
#define ECONNREFUSED WSAECONNREFUSED
+#undef EADDRINUSE
#define EADDRINUSE WSAEADDRINUSE
+#undef EPROTOTYPE
#define EPROTOTYPE WSAEPROTOTYPE
#undef EWOULDBLOCK
#define EWOULDBLOCK WSAEWOULDBLOCK
+#undef EINPROGRESS
#define EINPROGRESS WSAEINPROGRESS
#undef EINTR
#define EINTR WSAEINTR
@@ -242,13 +246,20 @@ static int TRANS(SocketINETClose) (XtransConnInfo ciptr);
#endif
#if defined HAVE_SOCKLEN_T || (defined(IPv6) && defined(AF_INET6))
+#ifdef _MSC_VER
+# define SOCKLEN_T int
+#else
# define SOCKLEN_T socklen_t
+#endif
#elif defined(SVR4) || defined(__SVR4) || defined(__SCO__)
# define SOCKLEN_T size_t
#else
# define SOCKLEN_T int
#endif
+static int TRANS(SocketRecvFdInvalid)(XtransConnInfo ciptr);
+static int TRANS(SocketSendFdInvalid)(XtransConnInfo ciptr, int fd, int do_close);
+
/*
* These are some utility function used by the real interface function below.
*/
@@ -640,7 +651,7 @@ TRANS(SocketOpenCOTSServer) (Xtransport *thistrans, char *protocol,
if (Sockettrans2devtab[i].family == AF_INET6)
{
int one = 1;
- setsockopt(ciptr->fd, IPPROTO_IPV6, IPV6_V6ONLY, &one, sizeof(int));
+ setsockopt(ciptr->fd, IPPROTO_IPV6, IPV6_V6ONLY, (const char *)&one, sizeof(int));
}
#endif
/* Save the index for later use */
@@ -725,7 +736,7 @@ TRANS(SocketOpenCLTSServer) (Xtransport *thistrans, char *protocol,
if (Sockettrans2devtab[i].family == AF_INET6)
{
int one = 1;
- setsockopt(ciptr->fd, IPPROTO_IPV6, IPV6_V6ONLY, &one, sizeof(int));
+ setsockopt(ciptr->fd, IPPROTO_IPV6, IPV6_V6ONLY, (const char *)&one, sizeof(int));
}
#endif
/* Save the index for later use */
@@ -850,6 +861,10 @@ set_sun_path(const char *port, const char *upath, char *path, int abstract)
#ifdef TRANS_SERVER
+#ifndef SO_BINDRETRYCOUNT
+#define SO_BINDRETRYCOUNT 20
+#endif
+
static int
TRANS(SocketCreateListener) (XtransConnInfo ciptr,
struct sockaddr *sockname,
@@ -867,7 +882,7 @@ TRANS(SocketCreateListener) (XtransConnInfo ciptr,
|| Sockettrans2devtab[ciptr->index].family == AF_INET6
#endif
)
- retry = 20;
+ retry = SO_BINDRETRYCOUNT;
else
retry = 0;
@@ -1247,7 +1262,11 @@ TRANS(SocketINETAccept) (XtransConnInfo ciptr, int *status)
{
XtransConnInfo newciptr;
+#if defined(IPv6) && defined(AF_INET6)
+ struct sockaddr_storage sockname;
+#else
struct sockaddr_in sockname;
+#endif
SOCKLEN_T namelen = sizeof(sockname);
prmsg (2, "SocketINETAccept(%p,%d)\n", ciptr, ciptr->fd);
@@ -2181,20 +2200,6 @@ TRANS(SocketSendFd) (XtransConnInfo ciptr, int fd, int do_close)
return 0;
}
-static int
-TRANS(SocketRecvFdInvalid)(XtransConnInfo ciptr)
-{
- errno = EINVAL;
- return -1;
-}
-
-static int
-TRANS(SocketSendFdInvalid)(XtransConnInfo ciptr, int fd, int do_close)
-{
- errno = EINVAL;
- return -1;
-}
-
#define MAX_FDS 128
struct fd_pass {
@@ -2221,6 +2226,20 @@ static inline void init_msg_send(struct msghdr *msg, struct iovec *iov, int niov
#endif /* XTRANS_SEND_FDS */
static int
+TRANS(SocketRecvFdInvalid)(XtransConnInfo ciptr)
+{
+ errno = EINVAL;
+ return -1;
+}
+
+static int
+TRANS(SocketSendFdInvalid)(XtransConnInfo ciptr, int fd, int do_close)
+{
+ errno = EINVAL;
+ return -1;
+}
+
+static int
TRANS(SocketRead) (XtransConnInfo ciptr, char *buf, int size)
{
@@ -2530,10 +2549,8 @@ Xtransport TRANS(SocketTCPFuncs) = {
TRANS(SocketWrite),
TRANS(SocketReadv),
TRANS(SocketWritev),
-#if XTRANS_SEND_FDS
- TRANS(SocketSendFdInvalid),
- TRANS(SocketRecvFdInvalid),
-#endif
+ TRANS(SocketSendFdInvalid),
+ TRANS(SocketRecvFdInvalid),
TRANS(SocketDisconnect),
TRANS(SocketINETClose),
TRANS(SocketINETClose),
@@ -2574,10 +2591,8 @@ Xtransport TRANS(SocketINETFuncs) = {
TRANS(SocketWrite),
TRANS(SocketReadv),
TRANS(SocketWritev),
-#if XTRANS_SEND_FDS
- TRANS(SocketSendFdInvalid),
- TRANS(SocketRecvFdInvalid),
-#endif
+ TRANS(SocketSendFdInvalid),
+ TRANS(SocketRecvFdInvalid),
TRANS(SocketDisconnect),
TRANS(SocketINETClose),
TRANS(SocketINETClose),
@@ -2619,10 +2634,8 @@ Xtransport TRANS(SocketINET6Funcs) = {
TRANS(SocketWrite),
TRANS(SocketReadv),
TRANS(SocketWritev),
-#if XTRANS_SEND_FDS
- TRANS(SocketSendFdInvalid),
- TRANS(SocketRecvFdInvalid),
-#endif
+ TRANS(SocketSendFdInvalid),
+ TRANS(SocketRecvFdInvalid),
TRANS(SocketDisconnect),
TRANS(SocketINETClose),
TRANS(SocketINETClose),
diff --git a/apps/common/inet.c b/apps/common/inet.c
new file mode 100644
index 000000000..e6c0a1554
--- /dev/null
+++ b/apps/common/inet.c
@@ -0,0 +1,88 @@
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
+#ifdef WIN32
+#include <X11/Xwinsock.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#if NTDDI_VERSION < NTDDI_VISTA
+const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt)
+{
+ if (af == AF_INET)
+ {
+ struct sockaddr_in in;
+ memset(&in, 0, sizeof(in));
+ in.sin_family = AF_INET;
+ memcpy(&in.sin_addr, src, sizeof(struct in_addr));
+ if (getnameinfo((struct sockaddr *)&in, sizeof(struct sockaddr_in), dst, cnt, NULL, 0, NI_NUMERICHOST) != 0)
+ {
+ errno = WSAGetLastError();
+ return NULL;
+ }
+ else return dst;
+ }
+ else if (af == AF_INET6)
+ {
+ struct sockaddr_in6 in;
+ memset(&in, 0, sizeof(in));
+ in.sin6_family = AF_INET6;
+ memcpy(&in.sin6_addr, src, sizeof(struct in_addr6));
+ if (getnameinfo((struct sockaddr *)&in, sizeof(struct sockaddr_in6), dst, cnt, NULL, 0, NI_NUMERICHOST) != 0)
+ {
+ errno = WSAGetLastError();
+ return NULL;
+ }
+ else return dst;
+ }
+ errno = WSAEAFNOSUPPORT;
+ return NULL;
+}
+
+int inet_pton(int af, const char *src, void *dst)
+{
+ struct sockaddr_storage ss;
+ int sslen = sizeof(ss);
+ if (af == AF_INET)
+ {
+ struct in_addr out;
+ char buffer[INET_ADDRSTRLEN + 1];
+ strncpy (buffer, src, INET_ADDRSTRLEN);
+ buffer [INET_ADDRSTRLEN] = '\0';
+ if (WSAStringToAddressA(buffer, AF_INET, NULL, (struct sockaddr*)&ss, &sslen) == SOCKET_ERROR)
+ {
+ errno = WSAGetLastError();
+ return 0;
+ }
+ else
+ {
+ out = ((struct sockaddr_in *)&ss)->sin_addr;
+ memcpy (dst, &out, sizeof(struct in_addr));
+ return 1;
+ }
+ }
+ else if (af == AF_INET6)
+ {
+ struct in6_addr out6;
+ char buffer6[INET6_ADDRSTRLEN + 1];
+ strncpy (buffer6, src, INET6_ADDRSTRLEN);
+ buffer6 [INET6_ADDRSTRLEN] = '\0';
+ if (WSAStringToAddressA(buffer6, AF_INET6, NULL, (struct sockaddr*)&ss, &sslen) == SOCKET_ERROR)
+ {
+ errno = WSAGetLastError();
+ return 0;
+ }
+ else
+ {
+ out6 = ((struct sockaddr_in6 *)&ss)->sin6_addr;
+ memcpy (dst, &out6, sizeof(struct in6_addr));
+ return 1;
+ }
+ }
+ errno = WSAEAFNOSUPPORT;
+ return -1;
+}
+#endif
diff --git a/apps/common/makefile b/apps/common/makefile
new file mode 100644
index 000000000..e261f52c9
--- /dev/null
+++ b/apps/common/makefile
@@ -0,0 +1,3 @@
+LIBRARY = common
+
+CSRCS = inet.c
diff --git a/apps/xauth/config.h b/apps/xauth/config.h
new file mode 100644
index 000000000..8152de05a
--- /dev/null
+++ b/apps/xauth/config.h
@@ -0,0 +1,94 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define to 1 if `struct sockaddr_in' has a `sin_len' member */
+#undef BSD44SOCKETS
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the `ws2_32' library (-lws2_32). */
+#undef HAVE_LIBWS2_32
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the <net/errno.h> header file. */
+#undef HAVE_NET_ERRNO_H
+
+/* Define to 1 if the system has the type `socklen_t'. */
+#undef HAVE_SOCKLEN_T
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strlcpy' function. */
+#undef HAVE_STRLCPY
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Support IPv6 for TCP connections */
+#define IPv6 1
+
+/* Support os-specific local connections */
+#undef LOCALCONN
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Major version of this package */
+#undef PACKAGE_VERSION_MAJOR
+
+/* Minor version of this package */
+#undef PACKAGE_VERSION_MINOR
+
+/* Patch version of this package */
+#undef PACKAGE_VERSION_PATCHLEVEL
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#define RETSIGTYPE void
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Support TCP socket connections */
+#define TCPCONN 1
+
+/* Support UNIX socket connections */
+#undef UNIXCONN
+
+/* Version number of package */
+#undef VERSION
diff --git a/apps/xauth/gethost.c b/apps/xauth/gethost.c
index acac86478..cac6e9ec1 100644
--- a/apps/xauth/gethost.c
+++ b/apps/xauth/gethost.c
@@ -72,6 +72,11 @@ in this Software without prior written authorization from The Open Group.
#ifndef WIN32
#include <arpa/inet.h>
+#else
+#if NTDDI_VERSION < NTDDI_VISTA
+int inet_pton(int af, const char *src, void *dst);
+const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt);
+#endif
#endif
#ifdef SIGALRM
diff --git a/apps/xauth/makefile b/apps/xauth/makefile
new file mode 100644
index 000000000..d14cf9e35
--- /dev/null
+++ b/apps/xauth/makefile
@@ -0,0 +1,22 @@
+TTYAPP = xauth
+
+INCLUDELIBFILES = \
+ ..\common\$(OBJDIR)\common.lib \
+ $(MHMAKECONF)\libxcb\src\$(OBJDIR)\libxcb.lib \
+ $(MHMAKECONF)\libXau\$(OBJDIR)\libXau.lib \
+ $(MHMAKECONF)\libXmu\src\$(OBJDIR)\libXmu.lib \
+ $(MHMAKECONF)\libXext\src\$(OBJDIR)\libXext.lib \
+ $(MHMAKECONF)\libX11\$(OBJDIR)\libX11.lib
+
+LIBDIRS=$(dir $(INCLUDELIBFILES))
+
+load_makefile $(LIBDIRS:%$(OBJDIR)\=%makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+LINKLIBS += $(PTHREADLIB)
+
+CSRCS = \
+ gethost.c \
+ parsedpy.c \
+ process.c \
+ xauth.c
+
diff --git a/apps/xauth/process.c b/apps/xauth/process.c
index a4021c7e6..f4f543cf8 100644
--- a/apps/xauth/process.c
+++ b/apps/xauth/process.c
@@ -810,7 +810,7 @@ write_auth_file(char *tmp_nam)
(void) unlink (tmp_nam);
/* CPhipps 2000/02/12 - fix file unlink/fopen race */
fd = open(tmp_nam, O_WRONLY | O_CREAT | O_EXCL, 0600);
- if (fd != -1) fp = fdopen (fd, "wb");
+ if (fd != -1) fp = _fdopen (fd, "wb");
if (!fp) {
if (fd != -1) close(fd);
fprintf (stderr, "%s: unable to open tmp file \"%s\"\n",
diff --git a/apps/xcalc/makefile b/apps/xcalc/makefile
new file mode 100644
index 000000000..4d20e4d82
--- /dev/null
+++ b/apps/xcalc/makefile
@@ -0,0 +1,24 @@
+WINAPP = xcalc
+
+DEFINES += XT_NO_SM IEEE
+
+INCLUDELIBFILES = \
+ $(MHMAKECONF)\libxcb\src\$(OBJDIR)\libxcb.lib \
+ $(MHMAKECONF)\libXpm\src\$(OBJDIR)\libXpm.lib \
+ $(MHMAKECONF)\libXau\$(OBJDIR)\libXau.lib \
+ $(MHMAKECONF)\libXaw\src\$(OBJDIR)\libXaw.lib \
+ $(MHMAKECONF)\libXt\src\$(OBJDIR)\libXt.lib \
+ $(MHMAKECONF)\libXext\src\$(OBJDIR)\libXext.lib \
+ $(MHMAKECONF)\libXmu\src\$(OBJDIR)\libXmu.lib \
+ $(MHMAKECONF)\libX11\$(OBJDIR)\libX11.lib
+
+LIBDIRS=$(dir $(INCLUDELIBFILES))
+
+load_makefile $(LIBDIRS:%$(OBJDIR)\=%makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+LINKLIBS += $(PTHREADLIB)
+
+CSRCS = \
+ actions.c \
+ math.c \
+ xcalc.c
diff --git a/apps/xcalc/xcalc.c b/apps/xcalc/xcalc.c
index bc262b681..68a69ec4e 100644
--- a/apps/xcalc/xcalc.c
+++ b/apps/xcalc/xcalc.c
@@ -117,6 +117,8 @@ main(int argc, char **argv)
XtSetLanguageProc(NULL, (XtLanguageProc) NULL, NULL);
+ XawInitializeWidgetSet(); // Needed to have the string to bitmap conversion function initialised
+
toplevel = XtAppInitialize(&xtcontext, "XCalc", Options, XtNumber(Options),
&argc, argv, NULL, NULL, 0);
if (argc != 1) Syntax(argc, argv);
diff --git a/apps/xclock/Clock.c b/apps/xclock/Clock.c
index 8af0045d4..b4272fd61 100644
--- a/apps/xclock/Clock.c
+++ b/apps/xclock/Clock.c
@@ -86,6 +86,7 @@ SOFTWARE.
#include <X11/Xosdefs.h>
#include <stdio.h>
#include <X11/Xos.h>
+#include <X11\Xwinsock.h>
#include <X11/Xaw/XawInit.h>
#if !defined(NO_I18N) && defined(HAVE_ICONV)
#include <iconv.h>
@@ -112,7 +113,7 @@ SOFTWARE.
#include <locale.h>
extern Boolean no_locale; /* if True, use old (unlocalized) behaviour */
#endif
-
+#include <unistd.h>
/* Private Definitions */
@@ -130,8 +131,10 @@ extern Boolean no_locale; /* if True, use old (unlocalized) behaviour */
#define ANALOG_SIZE_DEFAULT 164
+#ifndef max
#define max(a, b) ((a) > (b) ? (a) : (b))
#define min(a, b) ((a) < (b) ? (a) : (b))
+#endif
/* #define abs(a) ((a) < 0 ? -(a) : (a)) */
diff --git a/apps/xclock/makefile b/apps/xclock/makefile
new file mode 100644
index 000000000..42231508e
--- /dev/null
+++ b/apps/xclock/makefile
@@ -0,0 +1,31 @@
+WINAPP = xclock
+
+DEFINES += XT_NO_SM XRENDER
+
+INCLUDELIBFILES = \
+ $(MHMAKECONF)\libxcb\src\$(OBJDIR)\libxcb.lib \
+ $(MHMAKECONF)\libxkbfile\src\$(OBJDIR)\libxkbfile.lib \
+ $(MHMAKECONF)\libXpm\src\$(OBJDIR)\libXpm.lib \
+ $(MHMAKECONF)\libXau\$(OBJDIR)\libXau.lib \
+ $(MHMAKECONF)\libXaw\src\$(OBJDIR)\libXaw.lib \
+ $(MHMAKECONF)\libXt\src\$(OBJDIR)\libXt.lib \
+ $(MHMAKECONF)\libXext\src\$(OBJDIR)\libXext.lib \
+ $(MHMAKECONF)\libXmu\src\$(OBJDIR)\libXmu.lib \
+ $(MHMAKECONF)\libX11\$(OBJDIR)\libX11.lib \
+ $(MHMAKECONF)\libXft\src\$(OBJDIR)\libXft.lib \
+ $(MHMAKECONF)\libXrender\src\$(OBJDIR)\libXrender.lib \
+ $(MHMAKECONF)\fontconfig\src\$(OBJDIR)\libfontconfig.lib \
+ $(MHMAKECONF)\libXfont\src\util\$(OBJDIR)\libutil.lib
+
+INCLUDES += $(MHMAKECONF)\libXft\include $(MHMAKECONF)\freetype\include $(MHMAKECONF)\fontconfig
+
+LIBDIRS=$(dir $(INCLUDELIBFILES))
+
+load_makefile $(LIBDIRS:%$(OBJDIR)\=%makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+LINKLIBS += $(PTHREADLIB) $(FREETYPELIB) $(LIBXMLLIB)
+
+CSRCS = \
+ Clock.c \
+ xclock.c
+
diff --git a/apps/xhost/config.h b/apps/xhost/config.h
new file mode 100644
index 000000000..ffe93f580
--- /dev/null
+++ b/apps/xhost/config.h
@@ -0,0 +1,97 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define to 1 if `struct sockaddr_in' has a `sin_len' member */
+#undef BSD44SOCKETS
+
+/* Define to 1 if you have the `authdes_create' function. */
+#undef HAVE_AUTHDES_CREATE
+
+/* Define to 1 if you have the `authdes_seccreate' function. */
+#undef HAVE_AUTHDES_SECCREATE
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the `ws2_32' library (-lws2_32). */
+#undef HAVE_LIBWS2_32
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if the system has the type `socklen_t'. */
+#undef HAVE_SOCKLEN_T
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Support IPv6 for TCP connections */
+#define IPv6 1
+
+/* Support os-specific local connections */
+#undef LOCALCONN
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Major version of this package */
+#undef PACKAGE_VERSION_MAJOR
+
+/* Minor version of this package */
+#undef PACKAGE_VERSION_MINOR
+
+/* Patch version of this package */
+#undef PACKAGE_VERSION_PATCHLEVEL
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#undef RETSIGTYPE
+
+/* Support Secure RPC ("SUN-DES-1") authentication for X11 clients */
+#undef SECURE_RPC
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Support TCP socket connections */
+#define TCPCONN 1
+
+/* Support UNIX socket connections */
+#undef UNIXCONN
+
+/* Version number of package */
+#undef VERSION
diff --git a/apps/xhost/makefile b/apps/xhost/makefile
new file mode 100644
index 000000000..328fe8ccf
--- /dev/null
+++ b/apps/xhost/makefile
@@ -0,0 +1,18 @@
+DEFINES += BAD_ARPAINET
+
+TTYAPP = xhost
+
+INCLUDELIBFILES = \
+ ..\common\$(OBJDIR)\common.lib \
+ $(MHMAKECONF)\libxcb\src\$(OBJDIR)\libxcb.lib \
+ $(MHMAKECONF)\libXau\$(OBJDIR)\libXau.lib \
+ $(MHMAKECONF)\libXmu\src\$(OBJDIR)\libXmu.lib \
+ $(MHMAKECONF)\libX11\$(OBJDIR)\libX11.lib \
+
+LIBDIRS=$(dir $(INCLUDELIBFILES))
+
+load_makefile $(LIBDIRS:%$(OBJDIR)\=%makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+LINKLIBS += $(PTHREADLIB)
+
+CSRCS = xhost.c
diff --git a/apps/xhost/xhost.c b/apps/xhost/xhost.c
index a67d1361f..44d85a09e 100644
--- a/apps/xhost/xhost.c
+++ b/apps/xhost/xhost.c
@@ -92,6 +92,10 @@ X Window System is a trademark of The Open Group.
#include <arpa/inet.h>
#endif
+#ifdef _MSC_VER
+#define _X_UNUSED
+#endif
+
#ifdef SECURE_RPC
#include <pwd.h>
@@ -130,6 +134,16 @@ static volatile int nameserver_timedout;
static char *ProgramName;
+#ifdef WIN32
+#define alarm(arg)
+
+void sethostent(int x)
+{}
+
+void endhostent()
+{}
+#endif
+
#ifdef NEEDSOCKETS
static int
XFamily(int af)
@@ -842,12 +856,3 @@ local_xerror(Display *dpy, XErrorEvent *rep)
XmuPrintDefaultErrorMessage (dpy, rep, stderr);
return 0;
}
-
-#if defined(__CYGWIN__) || defined(WIN32)
-void sethostent(int x)
-{}
-
-void endhostent()
-{}
-#endif
-
diff --git a/apps/xrdb/makefile b/apps/xrdb/makefile
new file mode 100644
index 000000000..ca16db238
--- /dev/null
+++ b/apps/xrdb/makefile
@@ -0,0 +1,12 @@
+TTYAPP = xrdb
+
+INCLUDELIBFILES = \
+ $(MHMAKECONF)\libXmu\src\$(OBJDIR)\libXmu.lib \
+ $(MHMAKECONF)\libX11\$(OBJDIR)\libX11.lib
+
+LIBDIRS=$(dir $(INCLUDELIBFILES))
+
+load_makefile $(LIBDIRS:%$(OBJDIR)\=%makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+CSRCS = xrdb.c
+
diff --git a/apps/xrdb/xrdb.c b/apps/xrdb/xrdb.c
index b7c9fa3aa..d086a603c 100644
--- a/apps/xrdb/xrdb.c
+++ b/apps/xrdb/xrdb.c
@@ -53,6 +53,7 @@
#include <errno.h>
#include <stdlib.h>
#include <stdarg.h>
+#include <unistd.h>
#ifdef NEED_SYS_PARAM_H
# include <sys/param.h> /* defines MAXHOSTNAMELEN on BSD & Linux */
diff --git a/apps/xwininfo/config.h b/apps/xwininfo/config.h
new file mode 100644
index 000000000..b77456819
--- /dev/null
+++ b/apps/xwininfo/config.h
@@ -0,0 +1,109 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define to 1 if you have the iconv() function */
+#undef HAVE_ICONV
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the `strlcat' function. */
+#undef HAVE_STRLCAT
+
+/* Define to 1 if you have a working strnlen function. */
+#define HAVE_STRNLEN
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Major version of this package */
+#undef PACKAGE_VERSION_MAJOR
+
+/* Minor version of this package */
+#undef PACKAGE_VERSION_MINOR
+
+/* Patch version of this package */
+#undef PACKAGE_VERSION_PATCHLEVEL
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Enable extensions on AIX 3, Interix. */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable GNU extensions on systems that have them. */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris. */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions on HP NonStop. */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable general extensions on Solaris. */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+
+
+/* Define to 1 to call xcb-icccm library functions instead of local
+ replacements */
+#undef USE_XCB_ICCCM
+
+/* Version number of package */
+#undef VERSION
+
+/* Define to 1 if on MINIX. */
+#undef _MINIX
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+ this defined. */
+#undef _POSIX_1_SOURCE
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+#undef _POSIX_SOURCE
diff --git a/apps/xwininfo/dsimple.c b/apps/xwininfo/dsimple.c
index 6432e1335..d42e56aa3 100644
--- a/apps/xwininfo/dsimple.c
+++ b/apps/xwininfo/dsimple.c
@@ -58,6 +58,7 @@ from The Open Group.
#include <X11/cursorfont.h>
#include <stdio.h>
#include <stdlib.h>
+#include <unistd.h>
#include <stdarg.h>
#include <string.h>
#include "clientwin.h"
diff --git a/apps/xwininfo/dsimple.h b/apps/xwininfo/dsimple.h
index 952960542..d0dd71ae9 100644
--- a/apps/xwininfo/dsimple.h
+++ b/apps/xwininfo/dsimple.h
@@ -39,8 +39,9 @@ from The Open Group.
#include <xcb/xcb.h>
#include <xcb/xproto.h>
-typedef enum { False = 0, True } Bool;
-
+typedef int Bool;
+#define False 0
+#define True 1
/* Global variables used by routines in dsimple.c */
extern const char *program_name; /* Name of this program */
diff --git a/apps/xwininfo/makefile b/apps/xwininfo/makefile
new file mode 100644
index 000000000..cacef1297
--- /dev/null
+++ b/apps/xwininfo/makefile
@@ -0,0 +1,19 @@
+TTYAPP = xwininfo
+
+INCLUDELIBFILES = \
+ $(MHMAKECONF)\libxcb\src\$(OBJDIR)\libxcb.lib \
+ $(MHMAKECONF)\libXau\$(OBJDIR)\libXau.lib \
+ $(MHMAKECONF)\libXext\src\$(OBJDIR)\libXext.lib \
+ $(MHMAKECONF)\libX11\$(OBJDIR)\libX11.lib
+
+LIBDIRS=$(dir $(INCLUDELIBFILES))
+
+load_makefile $(LIBDIRS:%$(OBJDIR)\=%makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+LINKLIBS += $(PTHREADLIB)
+
+CSRCS = \
+ clientwin.c \
+ dsimple.c \
+ xwininfo.c
+
diff --git a/apps/xwininfo/xwininfo.c b/apps/xwininfo/xwininfo.c
index 39ae6ea27..59e09aff8 100644
--- a/apps/xwininfo/xwininfo.c
+++ b/apps/xwininfo/xwininfo.c
@@ -74,9 +74,12 @@ of the copyright holder.
#include <stdio.h>
#include <stdlib.h>
+#include <unistd.h>
#include <string.h>
#include <locale.h>
+#ifndef _MSC_VER
#include <langinfo.h>
+#endif
#ifdef HAVE_ICONV
# include <iconv.h>
#endif
@@ -442,6 +445,7 @@ main (int argc, char **argv)
register int i;
int tree = 0, stats = 0, bits = 0, events = 0, wm = 0, size = 0, shape = 0;
int frame = 0, children = 0;
+ int pauseatend = 0;
int use_root = 0;
xcb_window_t window = 0;
char *display_name = NULL;
@@ -453,7 +457,9 @@ main (int argc, char **argv)
if (!setlocale (LC_ALL, ""))
fprintf (stderr, "%s: can not set locale properly\n", program_name);
+#ifndef _MSC_VER
user_encoding = nl_langinfo (CODESET);
+#endif
if (user_encoding == NULL)
user_encoding = "unknown encoding";
@@ -537,6 +543,10 @@ main (int argc, char **argv)
tree = stats = bits = events = wm = size = shape = 1;
continue;
}
+ if (!strcmp(argv[i], "-pause")) {
+ pauseatend = 1;
+ continue;
+ }
usage ();
}
@@ -676,6 +686,7 @@ main (int argc, char **argv)
if (shape)
Display_Window_Shape (window);
printf ("\n");
+ if (pauseatend) getchar();
wininfo_wipe (w);
xcb_disconnect (dpy);
diff --git a/bdftopcf/config.h b/bdftopcf/config.h
new file mode 100644
index 000000000..44b70f34a
--- /dev/null
+++ b/bdftopcf/config.h
@@ -0,0 +1,68 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H
+
+/* Name of package */
+#define PACKAGE "bdftopcf"
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "bdftopcf"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "bdftopcf 1.0.4"
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "1.0.4"
+
+/* Major version of this package */
+#define PACKAGE_VERSION_MAJOR 1
+
+/* Minor version of this package */
+#define PACKAGE_VERSION_MINOR 0
+
+/* Patch version of this package */
+#define PACKAGE_VERSION_PATCHLEVEL 4
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Version number of package */
+#undef VERSION
+
+#define STDIN_FILENO 0
+#define STDOUT_FILENO 1
+
diff --git a/bdftopcf/makefile b/bdftopcf/makefile
new file mode 100644
index 000000000..e9a8abf33
--- /dev/null
+++ b/bdftopcf/makefile
@@ -0,0 +1,14 @@
+TTYAPP = bdftopcf
+
+INCLUDELIBFILES = \
+ $(MHMAKECONF)\zlib\$(OBJDIR)\zlib1.lib \
+ $(MHMAKECONF)\libXfont\src\fontfile\$(OBJDIR)\libfontfile.lib \
+ $(MHMAKECONF)\libXfont\src\bitmap\$(OBJDIR)\libbitmap.lib \
+ $(MHMAKECONF)\libXfont\src\util\$(OBJDIR)\libutil.lib
+
+LIBDIRS=$(dir $(INCLUDELIBFILES))
+
+load_makefile $(LIBDIRS:%$(OBJDIR)\=%makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+CSRCS = bdftopcf.c
+
diff --git a/buildall.bat b/buildall.bat
new file mode 100644
index 000000000..2cb1dc04e
--- /dev/null
+++ b/buildall.bat
@@ -0,0 +1,44 @@
+nasm -h > nul 2>&1
+if %errorlevel% NEQ 0 goto nasmerror
+
+echo on
+
+devenv.com freetype\freetypevc10.sln /build "Release Multithreaded|Win32"
+if %errorlevel% NEQ 0 goto end
+devenv.com freetype\freetypevc10.sln /build "Debug Multithreaded|Win32"
+if %errorlevel% NEQ 0 goto end
+cd openssl
+perl Configure VC-WIN32
+if %errorlevel% NEQ 0 goto end
+call ms\do_nasm.bat
+if %errorlevel% NEQ 0 goto end
+nmake -f ms\nt.mak
+if %errorlevel% NEQ 0 goto end
+nmake DEBUG=1 -f ms\nt.mak
+if %errorlevel% NEQ 0 goto end
+cd ..\pthreads
+nmake VC-static
+if %errorlevel% NEQ 0 goto end
+nmake VC-static-debug
+if %errorlevel% NEQ 0 goto end
+cd ..
+devenv.com tools\mhmake\mhmakevc10.sln /build "Release|Win32"
+if %errorlevel% NEQ 0 goto end
+devenv.com tools\mhmake\mhmakevc10.sln /build "Debug|Win32"
+if %errorlevel% NEQ 0 goto end
+
+set MHMAKECONF=%~dp0
+
+tools\mhmake\release\mhmake.exe -C xorg-server MAKESERVER=1 DEBUG=1
+if %errorlevel% NEQ 0 goto end
+tools\mhmake\release\mhmake.exe -C xorg-server MAKESERVER=1
+if %errorlevel% NEQ 0 goto end
+
+cd xorg-server\installer
+call packageall.bat
+
+goto end
+
+:nasmerror
+echo Please put nasm in the path
+:end \ No newline at end of file
diff --git a/buildall.sh b/buildall.sh
new file mode 100755
index 000000000..fd7976383
--- /dev/null
+++ b/buildall.sh
@@ -0,0 +1,78 @@
+#!/usr/bin/bash
+
+function check-error {
+ if [ $? -ne 0 ]; then
+ echo $1
+ exit
+ fi
+}
+
+which nasm > /dev/null 2>&1
+check-error 'Please install nasm'
+
+which MSBuild.exe > /dev/null 2>&1
+check-error 'Please install/set environment for visual studio 2010'
+
+# echo script lines from now one
+#set -v
+
+if [[ "$IS64" == "" ]]; then
+MSBuild.exe freetype/freetypevc10.sln /t:Build /p:Configuration="Release Multithreaded" /p:Platform=Win32
+check-error 'Error compiling freetype'
+MSBuild.exe freetype/freetypevc10.sln /t:Build /p:Configuration="Debug Multithreaded" /p:Platform=Win32
+check-error 'Error compiling freetype'
+else
+MSBuild.exe freetype/freetypevc10.sln /t:Build /p:Configuration="Release Multithreaded" /p:Platform=x64
+check-error 'Error compiling freetype'
+MSBuild.exe freetype/freetypevc10.sln /t:Build /p:Configuration="Debug Multithreaded" /p:Platform=x64
+check-error 'Error compiling freetype'
+fi
+
+
+
+cd openssl
+
+if [[ "$IS64" == "" ]]; then
+perl Configure VC-WIN32
+check-error 'Error executing perl'
+ms/do_nasm.bat
+check-error 'Error configuring openssl for nasm'
+else
+perl Configure VC-WIN64A
+check-error 'Error executing perl'
+ms/do_win64a.bat
+check-error 'Error configuring openssl for nasm'
+fi
+
+nmake -f ms/nt.mak
+check-error 'Error compiling openssl for release'
+
+nmake DEBUG=1 -f ms/nt.mak
+check-error 'Error compiling openssl for debug'
+
+cd ../pthreads
+nmake VC-static
+check-error 'Error compiling pthreads for release'
+
+nmake VC-static-debug
+check-error 'Error compiling pthreads for debug'
+
+cd ..
+
+MSBuild.exe tools/mhmake/mhmakevc10.sln /t:Build /p:Configuration=Release /p:Platform=Win32
+check-error 'Error compiling mhmake for release'
+
+MSBuild.exe tools/mhmake/mhmakevc10.sln /t:Build /p:Configuration=Debug /p:Platform=Win32
+check-error 'Error compiling mhmake for debug'
+
+export MHMAKECONF=`cygpath -da .`
+
+tools/mhmake/release/mhmake $PARBUILD -C xorg-server MAKESERVER=1 DEBUG=1
+check-error 'Error compiling vcxsrv for debug'
+
+tools/mhmake/release/mhmake.exe $PARBUILD -C xorg-server MAKESERVER=1
+check-error 'Error compiling vcxsrv for release'
+
+cd xorg-server/installer
+./packageall.bat
+
diff --git a/building.txt b/building.txt
new file mode 100644
index 000000000..43f043916
--- /dev/null
+++ b/building.txt
@@ -0,0 +1,18 @@
+Prerequisits:
+- Visual C++ 2010
+ Visual C++ 2010 Express Edition is probably also ok (not tested)
+- Perl (cygwin perl (http://www.cygwin.com/), strawberry perl (http://strawberryperl.com) or activestate perl (http://www.activestate.com/activeperl/) )
+- Python (2.7 used: http://www.python.org/) + libxml2 python bindings
+- Gnuwin32 gperf, gawk, gzip, flex, bison (and it's dependancies), sed (and it's dependancies (http://gnuwin32.sourceforge.net/), gperf
+- nasm (http://nasm.sourceforge.net). Make sure the nasm directory is in your path
+- Make sure that the gnuwin32 binaries are in a directory path with no spaces, like 'C:\gnuwin32\bin'
+- Make sure the environment PATH includes the directory where the gnuwin32 binaries are
+- Make sure python, perl are in the environment PATH
+- make sure the command prompt is set for compiling with the visual studio compiler (vcvars32.bat)
+- To build the installer: nsis
+
+Run the command buildall.bat. This will build everything including the installer.
+
+To clean the project tree (uses git) go to the top directory at a command prompt
+and type in 'git clean -dfx'
+
diff --git a/compare.bat b/compare.bat
deleted file mode 100755
index 90fe65d84..000000000
--- a/compare.bat
+++ /dev/null
@@ -1,21 +0,0 @@
-fcg xserver ..\released\xorg-server
-fcg libxcb ..\released\libxcb
-fcg xkeyboard-config ..\released\xorg-server\xkeyboard-config
-fcg libX11 ..\released\libX11
-fcg libXdmcp ..\released\libXdmcp
-fcg libXext ..\released\libXext
-fcg libfontenc ..\released\libfontenc
-fcg libXinerama ..\released\libXinerama
-fcg libXau ..\released\libXau
-fcg xkbcomp ..\released\xkbcomp
-fcg pixman ..\released\pixman
-fcg xextproto ..\released\X11\extensions
-fcg randrproto ..\released\X11\extensions
-fcg glproto ..\released\gl
-fcg mkfontscale ..\released\mkfontscale
-fcg xwininfo ..\released\apps\xwininfo
-fcg fontconfig ..\released\fontconfig
-fcg libXft ..\released\libXft
-fcg libXmu ..\released\libXmu
-fcg libxtrans ..\released\X11\xtrans
-fcg mesa ..\released\mesalib
diff --git a/dxtn/Makefile b/dxtn/Makefile
index 975063f8b..b014f81cd 100644
--- a/dxtn/Makefile
+++ b/dxtn/Makefile
@@ -1,18 +1,10 @@
-CFLAGS += -Wall -pedantic -fPIC
-OPT_CFLAGS = -O3
-LDFLAGS += -shared -fPIC
-OBJS = txc_compress_dxtn.o txc_fetch_dxtn.o
-LIB = libtxc_dxtn.so
+SHAREDLIB = dxtn
-$(LIB): $(OBJS)
- $(CC) $(LDFLAGS) -o $@ $(OBJS)
+CSRCS = \
+ txc_compress_dxtn.c \
+ txc_fetch_dxtn.cc
-%.o: %.c txc_dxtn.h
- $(CC) $(CFLAGS) $(OPT_CFLAGS) -c -o $@ $<
+INCLUDES += $(MHMAKECONF)\mesalib\include
-clean:
- rm -f $(OBJS) $(LIB)
+CCFLAGS += -TP
-install: $(LIB)
- install -d $(DESTDIR)/usr/lib
- install -m 755 $(LIB) $(DESTDIR)/usr/lib
diff --git a/dxtn/Makefile.old b/dxtn/Makefile.old
deleted file mode 100644
index 21b502ee7..000000000
--- a/dxtn/Makefile.old
+++ /dev/null
@@ -1,14 +0,0 @@
-libtxc_dxtn.so: txc_compress_dxtn.o txc_fetch_dxtn.o
- gcc -O3 -Wall -pedantic -fPIC -lpthread -shared -o libtxc_dxtn.so txc_compress_dxtn.o txc_fetch_dxtn.o
-
-txc_compress_dxtn.o : txc_compress_dxtn.c txc_dxtn.h
- gcc -c -O3 -Wall -pedantic -fPIC -o txc_compress_dxtn.o txc_compress_dxtn.c
-
-txc_fetch_dxtn.o : txc_fetch_dxtn.c txc_dxtn.h
- gcc -c -O3 -Wall -pedantic -fPIC -o txc_fetch_dxtn.o txc_fetch_dxtn.c
-
-clean:
- rm txc_fetch_dxtn.o txc_compress_dxtn.o libtxc_dxtn.so
-
-install: libtxc_dxtn.so
- install libtxc_dxtn.so /usr/lib/
diff --git a/dxtn/dxtn.def b/dxtn/dxtn.def
new file mode 100644
index 000000000..a9e8b80b0
--- /dev/null
+++ b/dxtn/dxtn.def
@@ -0,0 +1,6 @@
+EXPORTS
+ fetch_2d_texel_rgb_dxt1
+ fetch_2d_texel_rgba_dxt1
+ fetch_2d_texel_rgba_dxt3
+ fetch_2d_texel_rgba_dxt5
+ tx_compress_dxtn \ No newline at end of file
diff --git a/dxtn/txc_compress_dxtn.c b/dxtn/txc_compress_dxtn.c
index 0be8d4618..d279401d7 100644
--- a/dxtn/txc_compress_dxtn.c
+++ b/dxtn/txc_compress_dxtn.c
@@ -26,6 +26,8 @@
#include <stdlib.h>
#include "txc_dxtn.h"
+#include "GL/gl.h"
+
/* weights used for error function, basically weights (unsquared 2/4/1) according to rgb->luminance conversion
not sure if this really reflects visual perception */
#define REDWEIGHT 4
diff --git a/filesthatshouldbethesame.py b/filesthatshouldbethesame.py
new file mode 100755
index 000000000..72ba37961
--- /dev/null
+++ b/filesthatshouldbethesame.py
@@ -0,0 +1,240 @@
+#!/usr/bin/python
+from itertools import *
+import sys,os,difflib
+
+FilesStr=r"""
+libX11/include/X11/cursorfont.h X11/cursorfont.h
+libX11/include/X11/Xlocale.h X11/Xlocale.h
+libX11/include/X11/XKBlib.h X11/XKBlib.h
+libX11/include/X11/Xcms.h X11/Xcms.h
+libX11/include/X11/Xregion.h X11/Xregion.h
+libX11/include/X11/ImUtil.h X11/ImUtil.h
+libX11/include/X11/Xlib.h X11/Xlib.h
+libX11/include/X11/Xresource.h X11/Xresource.h
+libX11/include/X11/Xlib-xcb.h X11/Xlib-xcb.h
+libX11/include/X11/Xutil.h X11/Xutil.h
+libX11/include/X11/Xlibint.h X11/Xlibint.h
+
+libXt/include/X11/CallbackI.h X11/CallbackI.h
+libXt/include/X11/Composite.h X11/Composite.h
+libXt/include/X11/CompositeP.h X11/CompositeP.h
+libXt/include/X11/ConstrainP.h X11/ConstrainP.h
+libXt/include/X11/Constraint.h X11/Constraint.h
+libXt/include/X11/ConvertI.h X11/ConvertI.h
+libXt/include/X11/Core.h X11/Core.h
+libXt/include/X11/CoreP.h X11/CoreP.h
+libXt/include/X11/CreateI.h X11/CreateI.h
+libXt/include/X11/EventI.h X11/EventI.h
+libXt/include/X11/HookObjI.h X11/HookObjI.h
+libXt/include/X11/InitialI.h X11/InitialI.h
+libXt/include/X11/Intrinsic.h X11/Intrinsic.h
+libXt/include/X11/IntrinsicI.h X11/IntrinsicI.h
+libXt/include/X11/IntrinsicP.h X11/IntrinsicP.h
+libXt/include/X11/Object.h X11/Object.h
+libXt/include/X11/ObjectP.h X11/ObjectP.h
+libXt/include/X11/PassivGraI.h X11/PassivGraI.h
+libXt/include/X11/RectObj.h X11/RectObj.h
+libXt/include/X11/RectObjP.h X11/RectObjP.h
+libXt/include/X11/ResConfigP.h X11/ResConfigP.h
+libXt/include/X11/ResourceI.h X11/ResourceI.h
+libXt/include/X11/SelectionI.h X11/SelectionI.h
+libXt/include/X11/ShellI.h X11/ShellI.h
+libXt/include/X11/ShellP.h X11/ShellP.h
+libXt/include/X11/ThreadsI.h X11/ThreadsI.h
+libXt/include/X11/TranslateI.h X11/TranslateI.h
+libXt/include/X11/VarargsI.h X11/VarargsI.h
+libXt/include/X11/Vendor.h X11/Vendor.h
+libXt/include/X11/VendorP.h X11/VendorP.h
+libXt/include/X11/Xtos.h X11/Xtos.h
+
+libXext/include/X11/extensions/dpms.h X11/extensions/dpms.h
+libXext/include/X11/extensions/extutil.h X11/extensions/extutil.h
+libXext/include/X11/extensions/MITMisc.h X11/extensions/MITMisc.h
+libXext/include/X11/extensions/multibuf.h X11/extensions/multibuf.h
+libXext/include/X11/extensions/security.h X11/extensions/security.h
+libXext/include/X11/extensions/shape.h X11/extensions/shape.h
+libXext/include/X11/extensions/sync.h X11/extensions/sync.h
+libXext/include/X11/extensions/Xag.h X11/extensions/Xag.h
+libXext/include/X11/extensions/Xcup.h X11/extensions/Xcup.h
+libXext/include/X11/extensions/Xdbe.h X11/extensions/Xdbe.h
+libXext/include/X11/extensions/XEVI.h X11/extensions/XEVI.h
+libXext/include/X11/extensions/Xext.h X11/extensions/Xext.h
+libXext/include/X11/extensions/Xge.h X11/extensions/Xge.h
+libXext/include/X11/extensions/XLbx.h X11/extensions/XLbx.h
+libXext/include/X11/extensions/XShm.h X11/extensions/XShm.h
+libXext/include/X11/extensions/xtestext1.h X11/extensions/xtestext1.h
+
+libXrender/include/X11/extensions/xrender.h X11/extensions/xrender.h
+
+libXau/include/X11/Xauth.h X11/Xauth.h
+
+libXdmcp/include/X11/Xdmcp.h X11/Xdmcp.h
+
+include/xcb/xcbext.h libxcb/src/xcbext.h
+include/xcb/render.h libxcb/src/render.h
+include/xcb/xcb.h libxcb/src/xcb.h
+include/xcb/xc_misc.h libxcb/src/xc_misc.h
+include/xcb/bigreq.h libxcb/src/bigreq.h
+include/xcb/xproto.h libxcb/src/xproto.h
+include/xcb/xcb_windefs.h libxcb/src/xcb_windefs.h
+include/xcb/shape.h libxcb/src/shape.h
+
+gl/glext.h mesalib/include/gl/glext.h
+gl/glx.h mesalib/include/gl/glx.h
+gl/glxext.h mesalib/include/gl/glxext.h
+gl/glx_mangle.h mesalib/include/gl/glx_mangle.h
+gl/gl_mangle.h mesalib/include/gl/gl_mangle.h
+gl/internal/dri_interface.h mesalib/include/gl/internal/dri_interface.h
+
+xorg-server/hw/xwin/glx/wglext.h mesalib/include/GL/wglext.h
+
+mesalib/src/mapi/glapi/glapi.h xorg-server/glx/glapi.h
+mesalib/src/mapi/glapi/gen/glapitable.h mesalib/src/mesa/main/glapitable.h
+mesalib/src/mesa/main/glapitable.h xorg-server/glx/glapitable.h
+mesalib/src/mapi/glapi/gen/glprocs.h xorg-server/glx/glprocs.h
+mesalib/src/mapi/glapi/gen/dispatch.h xorg-server/glx/dispatch.h
+mesalib/src/mapi/glapi/gen/indirect_dispatch.c xorg-server/glx/indirect_dispatch.c
+mesalib/src/mapi/glapi/gen/indirect_dispatch.h xorg-server/glx/indirect_dispatch.h
+mesalib/src/mapi/glapi/gen/indirect_dispatch_swap.c xorg-server/glx/indirect_dispatch_swap.c
+mesalib/src/mapi/glapi/gen/indirect_reqsize.c xorg-server/glx/indirect_reqsize.c
+mesalib/src/mapi/glapi/gen/indirect_reqsize.h xorg-server/glx/indirect_reqsize.h
+mesalib/src/mapi/glapi/gen/indirect_size.h xorg-server/glx/indirect_size.h
+mesalib/src/mapi/glapi/gen/indirect_size_get.c xorg-server/glx/indirect_size_get.c
+mesalib/src/mapi/glapi/gen/indirect_size_get.h xorg-server/glx/indirect_size_get.h
+mesalib/src/mapi/glapi/gen/indirect_table.c xorg-server/glx/indirect_table.c
+mesalib/src/mapi/glapi/gen/remap_helper.h mesalib/src/mesa/main/remap_helper.h
+mesalib/src/mapi/glapi/gen/remap_helper.h xorg-server/glx/remap_helper.h
+
+libXaw/include/X11/Xaw/AllWidgets.h X11/Xaw/AllWidgets.h
+libXaw/include/X11/Xaw/AsciiSink.h X11/Xaw/AsciiSink.h
+libXaw/include/X11/Xaw/AsciiSinkP.h X11/Xaw/AsciiSinkP.h
+libXaw/include/X11/Xaw/AsciiSrc.h X11/Xaw/AsciiSrc.h
+libXaw/include/X11/Xaw/AsciiSrcP.h X11/Xaw/AsciiSrcP.h
+libXaw/include/X11/Xaw/AsciiText.h X11/Xaw/AsciiText.h
+libXaw/include/X11/Xaw/AsciiTextP.h X11/Xaw/AsciiTextP.h
+libXaw/include/X11/Xaw/Box.h X11/Xaw/Box.h
+libXaw/include/X11/Xaw/BoxP.h X11/Xaw/BoxP.h
+libXaw/include/X11/Xaw/Cardinals.h X11/Xaw/Cardinals.h
+libXaw/include/X11/Xaw/Command.h X11/Xaw/Command.h
+libXaw/include/X11/Xaw/CommandP.h X11/Xaw/CommandP.h
+libXaw/include/X11/Xaw/Dialog.h X11/Xaw/Dialog.h
+libXaw/include/X11/Xaw/DialogP.h X11/Xaw/DialogP.h
+libXaw/include/X11/Xaw/Form.h X11/Xaw/Form.h
+libXaw/include/X11/Xaw/FormP.h X11/Xaw/FormP.h
+libXaw/include/X11/Xaw/Grip.h X11/Xaw/Grip.h
+libXaw/include/X11/Xaw/GripP.h X11/Xaw/GripP.h
+libXaw/include/X11/Xaw/Label.h X11/Xaw/Label.h
+libXaw/include/X11/Xaw/LabelP.h X11/Xaw/LabelP.h
+libXaw/include/X11/Xaw/List.h X11/Xaw/List.h
+libXaw/include/X11/Xaw/ListP.h X11/Xaw/ListP.h
+libXaw/include/X11/Xaw/MenuButton.h X11/Xaw/MenuButton.h
+libXaw/include/X11/Xaw/MenuButtoP.h X11/Xaw/MenuButtoP.h
+libXaw/include/X11/Xaw/MultiSink.h X11/Xaw/MultiSink.h
+libXaw/include/X11/Xaw/MultiSinkP.h X11/Xaw/MultiSinkP.h
+libXaw/include/X11/Xaw/MultiSrc.h X11/Xaw/MultiSrc.h
+libXaw/include/X11/Xaw/MultiSrcP.h X11/Xaw/MultiSrcP.h
+libXaw/include/X11/Xaw/Paned.h X11/Xaw/Paned.h
+libXaw/include/X11/Xaw/PanedP.h X11/Xaw/PanedP.h
+libXaw/include/X11/Xaw/Panner.h X11/Xaw/Panner.h
+libXaw/include/X11/Xaw/PannerP.h X11/Xaw/PannerP.h
+libXaw/include/X11/Xaw/Porthole.h X11/Xaw/Porthole.h
+libXaw/include/X11/Xaw/PortholeP.h X11/Xaw/PortholeP.h
+libXaw/include/X11/Xaw/Repeater.h X11/Xaw/Repeater.h
+libXaw/include/X11/Xaw/RepeaterP.h X11/Xaw/RepeaterP.h
+libXaw/include/X11/Xaw/Reports.h X11/Xaw/Reports.h
+libXaw/include/X11/Xaw/Scrollbar.h X11/Xaw/Scrollbar.h
+libXaw/include/X11/Xaw/ScrollbarP.h X11/Xaw/ScrollbarP.h
+libXaw/include/X11/Xaw/Simple.h X11/Xaw/Simple.h
+libXaw/include/X11/Xaw/SimpleMenP.h X11/Xaw/SimpleMenP.h
+libXaw/include/X11/Xaw/SimpleMenu.h X11/Xaw/SimpleMenu.h
+libXaw/include/X11/Xaw/SimpleP.h X11/Xaw/SimpleP.h
+libXaw/include/X11/Xaw/Sme.h X11/Xaw/Sme.h
+libXaw/include/X11/Xaw/SmeBSB.h X11/Xaw/SmeBSB.h
+libXaw/include/X11/Xaw/SmeBSBP.h X11/Xaw/SmeBSBP.h
+libXaw/include/X11/Xaw/SmeLine.h X11/Xaw/SmeLine.h
+libXaw/include/X11/Xaw/SmeLineP.h X11/Xaw/SmeLineP.h
+libXaw/include/X11/Xaw/SmeP.h X11/Xaw/SmeP.h
+libXaw/include/X11/Xaw/StripCharP.h X11/Xaw/StripCharP.h
+libXaw/include/X11/Xaw/StripChart.h X11/Xaw/StripChart.h
+libXaw/include/X11/Xaw/Template.c X11/Xaw/Template.c
+libXaw/include/X11/Xaw/Template.h X11/Xaw/Template.h
+libXaw/include/X11/Xaw/TemplateP.h X11/Xaw/TemplateP.h
+libXaw/include/X11/Xaw/Text.h X11/Xaw/Text.h
+libXaw/include/X11/Xaw/TextP.h X11/Xaw/TextP.h
+libXaw/include/X11/Xaw/TextSink.h X11/Xaw/TextSink.h
+libXaw/include/X11/Xaw/TextSinkP.h X11/Xaw/TextSinkP.h
+libXaw/include/X11/Xaw/TextSrc.h X11/Xaw/TextSrc.h
+libXaw/include/X11/Xaw/TextSrcP.h X11/Xaw/TextSrcP.h
+libXaw/include/X11/Xaw/Tip.h X11/Xaw/Tip.h
+libXaw/include/X11/Xaw/TipP.h X11/Xaw/TipP.h
+libXaw/include/X11/Xaw/Toggle.h X11/Xaw/Toggle.h
+libXaw/include/X11/Xaw/ToggleP.h X11/Xaw/ToggleP.h
+libXaw/include/X11/Xaw/Tree.h X11/Xaw/Tree.h
+libXaw/include/X11/Xaw/TreeP.h X11/Xaw/TreeP.h
+libXaw/include/X11/Xaw/VendorEP.h X11/Xaw/VendorEP.h
+libXaw/include/X11/Xaw/Viewport.h X11/Xaw/Viewport.h
+libXaw/include/X11/Xaw/ViewportP.h X11/Xaw/ViewportP.h
+libXaw/include/X11/Xaw/XawImP.h X11/Xaw/XawImP.h
+libXaw/include/X11/Xaw/XawInit.h X11/Xaw/XawInit.h
+libXmu/include/X11/Xmu/Atoms.h X11/Xmu/Atoms.h
+libXmu/include/X11/Xmu/CharSet.h X11/Xmu/CharSet.h
+libXmu/include/X11/Xmu/CloseHook.h X11/Xmu/CloseHook.h
+libXmu/include/X11/Xmu/Converters.h X11/Xmu/Converters.h
+libXmu/include/X11/Xmu/CurUtil.h X11/Xmu/CurUtil.h
+libXmu/include/X11/Xmu/CvtCache.h X11/Xmu/CvtCache.h
+libXmu/include/X11/Xmu/DisplayQue.h X11/Xmu/DisplayQue.h
+libXmu/include/X11/Xmu/Drawing.h X11/Xmu/Drawing.h
+libXmu/include/X11/Xmu/Editres.h X11/Xmu/Editres.h
+libXmu/include/X11/Xmu/EditresP.h X11/Xmu/EditresP.h
+libXmu/include/X11/Xmu/Error.h X11/Xmu/Error.h
+libXmu/include/X11/Xmu/ExtAgent.h X11/Xmu/ExtAgent.h
+libXmu/include/X11/Xmu/Initer.h X11/Xmu/Initer.h
+libXmu/include/X11/Xmu/Lookup.h X11/Xmu/Lookup.h
+libXmu/include/X11/Xmu/Misc.h X11/Xmu/Misc.h
+libXmu/include/X11/Xmu/StdCmap.h X11/Xmu/StdCmap.h
+libXmu/include/X11/Xmu/StdSel.h X11/Xmu/StdSel.h
+libXmu/include/X11/Xmu/SysUtil.h X11/Xmu/SysUtil.h
+libXmu/include/X11/Xmu/WhitePoint.h X11/Xmu/WhitePoint.h
+libXmu/include/X11/Xmu/WidgetNode.h X11/Xmu/WidgetNode.h
+libXmu/include/X11/Xmu/WinUtil.h X11/Xmu/WinUtil.h
+libXmu/include/X11/Xmu/Xct.h X11/Xmu/Xct.h
+libXmu/include/X11/Xmu/Xmu.h X11/Xmu/Xmu.h
+
+libxkbfile/include/X11/extensions/XKBfile.h X11/extensions/XKBfile.h
+libxkbfile/include/X11/extensions/XKM.h X11/extensions/XKM.h
+libxkbfile/include/X11/extensions/XKBbells.h X11/extensions/XKBbells.h
+libxkbfile/include/X11/extensions/XKBconfig.h X11/extensions/XKBconfig.h
+libxkbfile/include/X11/extensions/XKBrules.h X11/extensions/XKBrules.h
+libxkbfile/include/X11/extensions/XKMformat.h X11/extensions/XKMformat.h
+"""
+
+Files=FilesStr.split()
+
+Diff=False
+
+# do linefeed independent compare
+def CompareFiles(f1name, f2name):
+ try:
+ if len(sys.argv)>1:
+ print "Comparing",f1name,f2name
+ f1 = open(f1name, 'rU')
+ f2 = open(f2name, 'rU')
+
+ a = f1.readlines(); f1.close()
+ b = f2.readlines(); f2.close()
+ for line in difflib.ndiff(a, b):
+ if line[0]!=' ':
+ print f1name,"and",f2name,"are different"
+ return True
+
+ return False
+ except:
+ if not os.path.exists(f1name): print "\n",f1name,"does not exist\n"
+ if not os.path.exists(f2name): print "\n",f2name,"does not exist\n"
+ return True
+
+for SrcFile,DestFile in izip(Files[0::2], Files[1::2]):
+ Diff |= CompareFiles(SrcFile, DestFile)
+
+if not Diff:
+ print "All Files are the same"
diff --git a/fontconfig/config.h b/fontconfig/config.h
new file mode 100644
index 000000000..441734857
--- /dev/null
+++ b/fontconfig/config.h
@@ -0,0 +1,18 @@
+#define HAVE_INTTYPES_H 1
+#define HAVE_FT_GET_NEXT_CHAR 1
+#define ENABLE_LIBXML2
+#define HAVE_RAND 1
+#define HAVE_STRUCT_DIRENT_D_TYPE 1
+#undef __STDC__
+#define FLEXIBLE_ARRAY_MEMBER
+#define inline __inline
+#define HAVE_FCNTL_H 1
+#define HAVE__MKTEMP_S 1
+#define FC_CACHEDIR getenv("TEMP")
+#define FC_DEFAULT_FONTS "fonts"
+#ifdef _WIN64
+#define SIZEOF_VOID_P 8
+#else
+#define SIZEOF_VOID_P 4
+#endif
+
diff --git a/fontconfig/fc-case/.gitignore b/fontconfig/fc-case/.gitignore
new file mode 100644
index 000000000..ad04faca3
--- /dev/null
+++ b/fontconfig/fc-case/.gitignore
@@ -0,0 +1 @@
+fccase.h \ No newline at end of file
diff --git a/fontconfig/fc-case/makefile b/fontconfig/fc-case/makefile
new file mode 100644
index 000000000..804cd6910
--- /dev/null
+++ b/fontconfig/fc-case/makefile
@@ -0,0 +1,27 @@
+ifneq ($(NORELDBG),1)
+$(error NORELDBG should have been set to 1)
+endif
+
+INCLUDES+=..\src
+
+TMPL=fccase.tmpl.h
+STMPL=${TMPL}
+TARG=fccase.h
+
+TTYAPP=fc-case
+
+CSRCS= \
+ fc-case.c
+
+CASEFOLDING=CaseFolding.txt
+SCASEFOLDING=CaseFolding.txt
+
+DEFINES += HAVE_CONFIG_H
+INCLUDES := .. $(INCLUDES)
+
+$(TARG): $(STMPL) $(OBJDIR)\fc-case.exe $(SCASEFOLDING)
+ del -e $(TARG)
+ $(OBJDIR)\fc-case.exe $(SCASEFOLDING) < $(STMPL) > $(TARG).tmp
+ move $(TARG).tmp $(TARG)
+
+
diff --git a/fontconfig/fc-glyphname/.gitignore b/fontconfig/fc-glyphname/.gitignore
new file mode 100644
index 000000000..84e3e5aca
--- /dev/null
+++ b/fontconfig/fc-glyphname/.gitignore
@@ -0,0 +1 @@
+fcglyphname.h \ No newline at end of file
diff --git a/fontconfig/fc-glyphname/makefile b/fontconfig/fc-glyphname/makefile
new file mode 100644
index 000000000..fca00db80
--- /dev/null
+++ b/fontconfig/fc-glyphname/makefile
@@ -0,0 +1,26 @@
+ifneq ($(NORELDBG),1)
+$(error NORELDBG should have been set to 1)
+endif
+
+INCLUDES+=..\src
+
+TMPL=fcglyphname.tmpl.h
+STMPL=${TMPL}
+TARG=fcglyphname.h
+
+TTYAPP=fc-glyphname
+
+CSRCS= \
+ fc-glyphname.c
+
+GLYPHNAME=zapfdingbats.txt
+SGLYPHNAME=zapfdingbats.txt
+
+DEFINES += HAVE_CONFIG_H
+INCLUDES := .. $(INCLUDES)
+
+$(TARG): $(STMPL) $(OBJDIR)\fc-glyphname.exe $(SGLYPHNAME)
+ del -e $(TARG)
+ $(OBJDIR)\fc-glyphname.exe $(SGLYPHNAME) < $(STMPL) > $(TARG).tmp
+ move $(TARG).tmp $(TARG)
+
diff --git a/fontconfig/fc-lang/.gitignore b/fontconfig/fc-lang/.gitignore
new file mode 100644
index 000000000..2dba764f2
--- /dev/null
+++ b/fontconfig/fc-lang/.gitignore
@@ -0,0 +1 @@
+fclang.h \ No newline at end of file
diff --git a/fontconfig/fc-lang/makefile b/fontconfig/fc-lang/makefile
new file mode 100644
index 000000000..dcfe56553
--- /dev/null
+++ b/fontconfig/fc-lang/makefile
@@ -0,0 +1,275 @@
+ifneq ($(NORELDBG),1)
+$(error NORELDBG should have been set to 1)
+endif
+
+INCLUDES+=..\src
+
+TMPL=fclang.tmpl.h
+STMPL=fclang.tmpl.h
+TARG=fclang.h
+
+TTYAPP=fc-lang
+
+CSRCS= \
+ fc-lang.c
+
+# NOTE:
+#
+# The order of the orth files here is extremely important (part of the cache
+# format) and should not be modified. New orth files should be added at the
+# end. No files should be removed either.
+#
+ORTH = \
+ aa.orth \
+ ab.orth \
+ af.orth \
+ am.orth \
+ ar.orth \
+ as.orth \
+ ast.orth \
+ av.orth \
+ ay.orth \
+ az_az.orth \
+ az_ir.orth \
+ ba.orth \
+ bm.orth \
+ be.orth \
+ bg.orth \
+ bh.orth \
+ bho.orth \
+ bi.orth \
+ bin.orth \
+ bn.orth \
+ bo.orth \
+ br.orth \
+ bs.orth \
+ bua.orth \
+ ca.orth \
+ ce.orth \
+ ch.orth \
+ chm.orth \
+ chr.orth \
+ co.orth \
+ cs.orth \
+ cu.orth \
+ cv.orth \
+ cy.orth \
+ da.orth \
+ de.orth \
+ dz.orth \
+ el.orth \
+ en.orth \
+ eo.orth \
+ es.orth \
+ et.orth \
+ eu.orth \
+ fa.orth \
+ fi.orth \
+ fj.orth \
+ fo.orth \
+ fr.orth \
+ ff.orth \
+ fur.orth \
+ fy.orth \
+ ga.orth \
+ gd.orth \
+ gez.orth \
+ gl.orth \
+ gn.orth \
+ gu.orth \
+ gv.orth \
+ ha.orth \
+ haw.orth \
+ he.orth \
+ hi.orth \
+ ho.orth \
+ hr.orth \
+ hu.orth \
+ hy.orth \
+ ia.orth \
+ ig.orth \
+ id.orth \
+ ie.orth \
+ ik.orth \
+ io.orth \
+ is.orth \
+ it.orth \
+ iu.orth \
+ ja.orth \
+ ka.orth \
+ kaa.orth \
+ ki.orth \
+ kk.orth \
+ kl.orth \
+ km.orth \
+ kn.orth \
+ ko.orth \
+ kok.orth \
+ ks.orth \
+ ku_am.orth \
+ ku_ir.orth \
+ kum.orth \
+ kv.orth \
+ kw.orth \
+ ky.orth \
+ la.orth \
+ lb.orth \
+ lez.orth \
+ ln.orth \
+ lo.orth \
+ lt.orth \
+ lv.orth \
+ mg.orth \
+ mh.orth \
+ mi.orth \
+ mk.orth \
+ ml.orth \
+ mn_cn.orth \
+ mo.orth \
+ mr.orth \
+ mt.orth \
+ my.orth \
+ nb.orth \
+ nds.orth \
+ ne.orth \
+ nl.orth \
+ nn.orth \
+ no.orth \
+ nr.orth \
+ nso.orth \
+ ny.orth \
+ oc.orth \
+ om.orth \
+ or.orth \
+ os.orth \
+ pa.orth \
+ pl.orth \
+ ps_af.orth \
+ ps_pk.orth \
+ pt.orth \
+ rm.orth \
+ ro.orth \
+ ru.orth \
+ sa.orth \
+ sah.orth \
+ sco.orth \
+ se.orth \
+ sel.orth \
+ sh.orth \
+ shs.orth \
+ si.orth \
+ sk.orth \
+ sl.orth \
+ sm.orth \
+ sma.orth \
+ smj.orth \
+ smn.orth \
+ sms.orth \
+ so.orth \
+ sq.orth \
+ sr.orth \
+ ss.orth \
+ st.orth \
+ sv.orth \
+ sw.orth \
+ syr.orth \
+ ta.orth \
+ te.orth \
+ tg.orth \
+ th.orth \
+ ti_er.orth \
+ ti_et.orth \
+ tig.orth \
+ tk.orth \
+ tl.orth \
+ tn.orth \
+ to.orth \
+ tr.orth \
+ ts.orth \
+ tt.orth \
+ tw.orth \
+ tyv.orth \
+ ug.orth \
+ uk.orth \
+ ur.orth \
+ uz.orth \
+ ve.orth \
+ vi.orth \
+ vo.orth \
+ vot.orth \
+ wa.orth \
+ wen.orth \
+ wo.orth \
+ xh.orth \
+ yap.orth \
+ yi.orth \
+ yo.orth \
+ zh_cn.orth \
+ zh_hk.orth \
+ zh_mo.orth \
+ zh_sg.orth \
+ zh_tw.orth \
+ zu.orth \
+ ak.orth \
+ an.orth \
+ ber_dz.orth \
+ ber_ma.orth \
+ byn.orth \
+ crh.orth \
+ csb.orth \
+ dv.orth \
+ ee.orth \
+ fat.orth \
+ fil.orth \
+ hne.orth \
+ hsb.orth \
+ ht.orth \
+ hz.orth \
+ ii.orth \
+ jv.orth \
+ kab.orth \
+ kj.orth \
+ kr.orth \
+ ku_iq.orth \
+ ku_tr.orth \
+ kwm.orth \
+ lg.orth \
+ li.orth \
+ mai.orth \
+ mn_mn.orth \
+ ms.orth \
+ na.orth \
+ ng.orth \
+ nv.orth \
+ ota.orth \
+ pa_pk.orth \
+ pap_an.orth \
+ pap_aw.orth \
+ qu.orth \
+ rn.orth \
+ rw.orth \
+ sc.orth \
+ sd.orth \
+ sg.orth \
+ sid.orth \
+ sn.orth \
+ su.orth \
+ ty.orth \
+ wal.orth \
+ za.orth \
+ lah.orth \
+ nqo.orth \
+ brx.orth \
+ sat.orth \
+ doi.orth \
+ mni.orth
+# ^-------------- Add new orth files here
+
+DEFINES += HAVE_CONFIG_H
+INCLUDES := .. $(INCLUDES)
+
+$(TARG):$(ORTH) $(OBJDIR)\fc-lang.exe $(STMPL)
+ del -e $(TARG)
+ $(OBJDIR)\fc-lang.exe -d . $(ORTH) < $(STMPL) > $(TARG).tmp
+ move $(TARG).tmp $(TARG)
+
diff --git a/fontconfig/src/.gitignore b/fontconfig/src/.gitignore
new file mode 100644
index 000000000..baffcee29
--- /dev/null
+++ b/fontconfig/src/.gitignore
@@ -0,0 +1,4 @@
+fcalias.h
+fcaliastail.h
+fcftalias.h
+fcftaliastail.h \ No newline at end of file
diff --git a/fontconfig/src/cleangperf.py b/fontconfig/src/cleangperf.py
new file mode 100644
index 000000000..a276312c9
--- /dev/null
+++ b/fontconfig/src/cleangperf.py
@@ -0,0 +1,8 @@
+import sys,re
+
+inbuffer=sys.stdin.read()
+inbuffer=re.sub(r'[ \t\r\n]*\n[ \t]*',r'\n',inbuffer)
+inbuffer=re.sub(r'[ \t\r\n]*,[ \t\r\n]',r',',inbuffer)
+inbuffer=re.sub(r'\n#[^\n]+','',inbuffer)
+sys.stdout.write(inbuffer)
+
diff --git a/fontconfig/src/fcatomic.c b/fontconfig/src/fcatomic.c
index c1daed938..c35a829fd 100644
--- a/fontconfig/src/fcatomic.c
+++ b/fontconfig/src/fcatomic.c
@@ -55,7 +55,7 @@
#include <time.h>
#ifdef _WIN32
-#include <direct.h>
+#undef mkdir
#define mkdir(path,mode) _mkdir(path)
#endif
diff --git a/fontconfig/src/fccompat.c b/fontconfig/src/fccompat.c
index 1c2ba8bed..b685fade3 100644
--- a/fontconfig/src/fccompat.c
+++ b/fontconfig/src/fccompat.c
@@ -217,7 +217,7 @@ FcRandom(void)
}
#ifdef _WIN32
-#include <direct.h>
+#undef mkdir
#define mkdir(path,mode) _mkdir(path)
#endif
diff --git a/fontconfig/src/fcfreetype.c b/fontconfig/src/fcfreetype.c
index e39430762..056e0f6b5 100644
--- a/fontconfig/src/fcfreetype.c
+++ b/fontconfig/src/fcfreetype.c
@@ -2652,10 +2652,10 @@ addtag(FcChar8 *complex_, FT_ULong tag)
{
FcChar8 tagstring[OTLAYOUT_ID_LEN + 1];
- tagstring[0] = (FcChar8)(tag >> 24),
- tagstring[1] = (FcChar8)(tag >> 16),
- tagstring[2] = (FcChar8)(tag >> 8),
- tagstring[3] = (FcChar8)(tag);
+ tagstring[0] = (FcChar8)((tag >> 24)&0xff),
+ tagstring[1] = (FcChar8)((tag >> 16)&0xff),
+ tagstring[2] = (FcChar8)((tag >> 8)&0xff),
+ tagstring[3] = (FcChar8)((tag)&0xff);
tagstring[4] = '\0';
/* skip tags which aren't alphanumeric, under the assumption that
diff --git a/fontconfig/src/fclist.c b/fontconfig/src/fclist.c
index a365098a4..e58a62b9f 100644
--- a/fontconfig/src/fclist.c
+++ b/fontconfig/src/fclist.c
@@ -80,7 +80,7 @@ FcObjectSetAdd (FcObjectSet *os, const char *object)
}
if (c < 0)
mid++;
- memmove (os->objects + mid + 1, os->objects + mid,
+ memmove ((void*)(os->objects + mid + 1), os->objects + mid,
(os->nobject - mid) * sizeof (const char *));
os->objects[mid] = object;
os->nobject++;
diff --git a/fontconfig/src/fcstat.c b/fontconfig/src/fcstat.c
index ff8e88455..1f37cacf8 100644
--- a/fontconfig/src/fcstat.c
+++ b/fontconfig/src/fcstat.c
@@ -90,7 +90,7 @@ FcStat (const FcChar8 *file, struct stat *statb)
return -1;
rc = GetLongPathName (full_path_name, full_path_name, sizeof (full_path_name));
- statb->st_ino = FcStringHash ((const FcChar8 *) full_path_name);
+ statb->st_ino = FcStringHash ((const FcChar8 *) full_path_name)&0xffff;
statb->st_mode = _S_IREAD | _S_IWRITE;
statb->st_mode |= (statb->st_mode >> 3) | (statb->st_mode >> 6);
diff --git a/fontconfig/src/fcstdint.h b/fontconfig/src/fcstdint.h
new file mode 100644
index 000000000..31da039d9
--- /dev/null
+++ b/fontconfig/src/fcstdint.h
@@ -0,0 +1,2 @@
+#include <stdint.h>
+
diff --git a/fontconfig/src/fcxml.c b/fontconfig/src/fcxml.c
index 91d166f38..ec79b8723 100644
--- a/fontconfig/src/fcxml.c
+++ b/fontconfig/src/fcxml.c
@@ -1988,7 +1988,8 @@ FcParseUnary (FcConfigParse *parse, FcOp op)
static void
FcParseDir (FcConfigParse *parse)
{
- const FcChar8 *attr, *data;
+ const FcChar8 *attr;
+ FcChar8 *data;
FcChar8 *prefix = NULL, *p;
#ifdef _WIN32
FcChar8 buffer[1000];
diff --git a/fontconfig/src/makealias.py b/fontconfig/src/makealias.py
new file mode 100644
index 000000000..6afca0901
--- /dev/null
+++ b/fontconfig/src/makealias.py
@@ -0,0 +1,36 @@
+import sys,os,re,glob
+
+SRCDIR=sys.argv[1]
+HEAD=open(sys.argv[2],"w")
+TAIL=open(sys.argv[3],"w")
+
+#rm -f $HEAD $TAIL
+TAIL.write("#if HAVE_GNUC_ATTRIBUTE\n")
+
+InputFiles=sys.argv[4:]
+Names=[]
+for Input in InputFiles:
+ buffer=open(Input,"r").read()
+ Names.extend(re.findall(r'\n(Fc[^ ]*) *\(',buffer))
+
+def SearchCFiles(Name):
+ Files=glob.glob(os.path.join(SRCDIR,"*.c") )
+ for File in Files:
+ buffer=open(File,"r").read()
+ res = re.findall(r'\n%s[ \(].*'%Name,buffer)
+ if res:
+ File=re.sub(r'^.*[\\/]','',File)
+ return "__"+re.sub(r'\.c','__',File)
+
+for Name in Names:
+ if Name=="FcCacheDir" or Name=="FcCacheSubdir":
+ continue
+
+ alias="IA__"+Name
+ HEAD.write("extern __typeof (%s) %s;\n"%(Name,alias))
+ HEAD.write("#define %s %s\n"%(Name,alias))
+ TAIL.write("#ifdef "+SearchCFiles(Name)+"\n")
+ TAIL.write("#undef %s\n"%Name)
+ TAIL.write("extern __typeof (%s) %s;\n"%(Name,Name))
+ TAIL.write("#endif\n")
+TAIL.write("#endif\n")
diff --git a/fontconfig/src/makefile b/fontconfig/src/makefile
new file mode 100644
index 000000000..189478427
--- /dev/null
+++ b/fontconfig/src/makefile
@@ -0,0 +1,62 @@
+$(OBJDIR)\fcobjshash.gperf: fcobjshash.gperf.h fcobjs.h
+ cp $< $<.c
+ $(CPP) -EP -I.. $<.c | \
+ python cleangperf.py | \
+ gawk '/CUT_OUT_BEGIN/ { no_write=1; next; }; /CUT_OUT_END/ { no_write=0; next; }; { if (!no_write) print; next; };' - > $@.tmp
+ mv -f $@.tmp $@
+ rm $<.c
+
+$(OBJDIR)\fcobjshash.h: $(OBJDIR)\fcobjshash.gperf
+ gperf -m 100 $< > $@
+
+
+load_makefile NORELDBG=1 ..\fc-case\makefile
+load_makefile NORELDBG=1 ..\fc-glyphname\makefile
+load_makefile NORELDBG=1 ..\fc-lang\makefile
+
+CSRCS = \
+ fcatomic.c \
+ fcblanks.c \
+ fccache.c \
+ fccfg.c \
+ fccharset.c \
+ fccompat.c \
+ fcdbg.c \
+ fcdefault.c \
+ fcdir.c \
+ fcformat.c \
+ fcfreetype.c \
+ fcfs.c \
+ fchash.c \
+ fcinit.c \
+ fclang.c \
+ fclist.c \
+ fcmatch.c \
+ fcmatrix.c \
+ fcname.c \
+ fcobjs.c \
+ fcpat.c \
+ fcserialize.c \
+ fcstat.c \
+ fcstr.c \
+ fcxml.c \
+ ftglue.c
+
+LIBRARY = libfontconfig
+
+PUBLIC_FILES = \
+ ..\fontconfig\fontconfig.h \
+ fcdeprecate.h \
+ ..\fontconfig\fcprivate.h
+
+PUBLIC_FT_FILES = \
+ ..\fontconfig\fcfreetype.h
+
+INCLUDES := .. $(OBJDIR) $(INCLUDES) $(MHMAKECONF)\freetype\include $(MHMAKECONF)\libxml2\include $(MHMAKECONF)\iconv\include
+
+fcalias.h fcaliastail.h: makealias.py $(PUBLIC_FILES)
+ python makealias.py . fcalias.h fcaliastail.h $(PUBLIC_FILES)
+
+fcftalias.h fcftaliastail.h: makealias.py $(PUBLIC_FT_FILES)
+ python makealias.py . fcftalias.h fcftaliastail.h $(PUBLIC_FT_FILES)
+
diff --git a/freetype/.gitignore b/freetype/.gitignore
new file mode 100644
index 000000000..68789d3cb
--- /dev/null
+++ b/freetype/.gitignore
@@ -0,0 +1,3 @@
+ipch
+*.opensdf
+objs64
diff --git a/freetype/builds/amiga/src/base/ftdebug.c b/freetype/builds/amiga/src/base/ftdebug.c
index 4e13a6a6f..fedc9e681 100644
--- a/freetype/builds/amiga/src/base/ftdebug.c
+++ b/freetype/builds/amiga/src/base/ftdebug.c
@@ -67,7 +67,7 @@
#include <ft2build.h>
#include FT_FREETYPE_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftdebug.h>
#if defined( FT_DEBUG_LEVEL_ERROR )
diff --git a/freetype/builds/amiga/src/base/ftsystem.c b/freetype/builds/amiga/src/base/ftsystem.c
index 42a552dbe..ac5004c6a 100644
--- a/freetype/builds/amiga/src/base/ftsystem.c
+++ b/freetype/builds/amiga/src/base/ftsystem.c
@@ -96,7 +96,7 @@ Free_VecPooled( APTR poolHeader,
#include <ft2build.h>
#include FT_CONFIG_CONFIG_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftdebug.h>
#include FT_SYSTEM_H
#include FT_ERRORS_H
#include FT_TYPES_H
diff --git a/freetype/builds/mac/ftmac.c b/freetype/builds/mac/ftmac.c
index 16d50e87f..a12d00311 100644
--- a/freetype/builds/mac/ftmac.c
+++ b/freetype/builds/mac/ftmac.c
@@ -65,7 +65,7 @@
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_TRUETYPE_TAGS_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftstream.h>
#include "ftbase.h"
#if defined( __GNUC__ ) || defined( __IBMC__ )
diff --git a/freetype/builds/unix/ftsystem.c b/freetype/builds/unix/ftsystem.c
index 92c7d9211..4fcc258c6 100644
--- a/freetype/builds/unix/ftsystem.c
+++ b/freetype/builds/unix/ftsystem.c
@@ -19,11 +19,11 @@
#include <ft2build.h>
/* we use our special ftconfig.h file, not the standard one */
#include <ftconfig.h>
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftdebug.h>
#include FT_SYSTEM_H
#include FT_ERRORS_H
#include FT_TYPES_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftstream.h>
/* memory-mapping includes and definitions */
#ifdef HAVE_UNISTD_H
diff --git a/freetype/builds/vms/ftsystem.c b/freetype/builds/vms/ftsystem.c
index 5c2819edb..78cd0e101 100644
--- a/freetype/builds/vms/ftsystem.c
+++ b/freetype/builds/vms/ftsystem.c
@@ -19,11 +19,11 @@
#include <ft2build.h>
/* we use our special ftconfig.h file, not the standard one */
#include <ftconfig.h>
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftdebug.h>
#include FT_SYSTEM_H
#include FT_ERRORS_H
#include FT_TYPES_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
/* memory-mapping includes and definitions */
#ifdef HAVE_UNISTD_H
diff --git a/freetype/builds/win32/ftdebug.c b/freetype/builds/win32/ftdebug.c
index 58b7f89ec..d35a5f03a 100644
--- a/freetype/builds/win32/ftdebug.c
+++ b/freetype/builds/win32/ftdebug.c
@@ -42,7 +42,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftdebug.h>
#ifdef FT_DEBUG_LEVEL_ERROR
diff --git a/freetype/builds/win32/visualc/freetype.sln b/freetype/builds/win32/visualc/freetype.sln
index 1f64be282..9d55ce1ff 100644
--- a/freetype/builds/win32/visualc/freetype.sln
+++ b/freetype/builds/win32/visualc/freetype.sln
@@ -1,5 +1,5 @@
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C++ Express 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "freetype.vcproj", "{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}"
EndProject
Global
diff --git a/freetype/builds/win32/visualc/freetype.vcproj b/freetype/builds/win32/visualc/freetype.vcproj
index dc5e67ad4..35b431897 100644
--- a/freetype/builds/win32/visualc/freetype.vcproj
+++ b/freetype/builds/win32/visualc/freetype.vcproj
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="8.00"
+ Version="9,00"
Name="freetype"
ProjectGUID="{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}"
+ TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
diff --git a/freetype/builds/wince/ftdebug.c b/freetype/builds/wince/ftdebug.c
index 354f4f0a7..0f45b5284 100644
--- a/freetype/builds/wince/ftdebug.c
+++ b/freetype/builds/wince/ftdebug.c
@@ -42,7 +42,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftdebug.h>
#ifdef FT_DEBUG_LEVEL_ERROR
diff --git a/freetype/freetype.sln b/freetype/freetype.sln
new file mode 100644
index 000000000..f2f15eaea
--- /dev/null
+++ b/freetype/freetype.sln
@@ -0,0 +1,26 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C++ Express 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "freetype.vcproj", "{C44F329B-3594-400B-8AE1-5E7BAB098B1D}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug Multithreaded|Win32 = Debug Multithreaded|Win32
+ Debug|Win32 = Debug|Win32
+ Release Multithreaded|Win32 = Release Multithreaded|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Debug Multithreaded|Win32.ActiveCfg = Debug Multithreaded|Win32
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Debug Multithreaded|Win32.Build.0 = Debug Multithreaded|Win32
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Debug|Win32.Build.0 = Debug|Win32
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Release Multithreaded|Win32.ActiveCfg = Release Multithreaded|Win32
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Release Multithreaded|Win32.Build.0 = Release Multithreaded|Win32
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Release|Win32.ActiveCfg = Release|Win32
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/freetype/freetype.vcproj b/freetype/freetype.vcproj
new file mode 100644
index 000000000..74fbbbd1e
--- /dev/null
+++ b/freetype/freetype.vcproj
@@ -0,0 +1,1057 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="freetype"
+ ProjectGUID="{C44F329B-3594-400B-8AE1-5E7BAB098B1D}"
+ RootNamespace="freetype"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="lib"
+ IntermediateDirectory="objs/release"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories="..\freetype\include\"
+ PreprocessorDefinitions="NDEBUG;WIN32;_LIB;FT_FLAT_COMPILE"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ DisableLanguageExtensions="true"
+ PrecompiledHeaderFile="$(IntDir)/freetype.pch"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="$(OutDir)/freetype214.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\obj/release/freetype.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release Multithreaded|Win32"
+ OutputDirectory="lib"
+ IntermediateDirectory="objs/release_mt"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\freetype\include\"
+ PreprocessorDefinitions="NDEBUG;WIN32;_LIB;FT_FLAT_COMPILE"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ DisableLanguageExtensions="true"
+ PrecompiledHeaderFile="$(IntDir)/freetype.pch"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="$(OutDir)/freetype214MT.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\obj/release_mt/freetype.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="lib"
+ IntermediateDirectory="objs/debug"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\freetype\include\"
+ PreprocessorDefinitions="_DEBUG;WIN32;_LIB;FT_FLAT_COMPILE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ DisableLanguageExtensions="true"
+ PrecompiledHeaderFile="$(IntDir)/freetype.pch"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="$(OutDir)/freetype214_D.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\obj/debug/freetype.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug Multithreaded|Win32"
+ OutputDirectory="lib"
+ IntermediateDirectory="objs/debug_mt"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\freetype\include\"
+ PreprocessorDefinitions="_DEBUG;WIN32;_LIB;FT_FLAT_COMPILE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ DisableLanguageExtensions="true"
+ PrecompiledHeaderFile="$(IntDir)/freetype.pch"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="$(OutDir)/freetype214MT_D.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\obj/debug_mt/freetype.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath=".\src\autofit\afangles.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\autofit\afcjk.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\autofit\afdummy.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\autofit\afglobal.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\autofit\afhints.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\autofit\afindic.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\autofit\aflatin.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\autofit\afloader.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\autofit\afmodule.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\psaux\afmparse.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\bdf\bdfdrivr.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\bdf\bdflib.c"
+ >
+ </File>
+ <File
+ RelativePath="src\cff\cff.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="src\base\ftbase.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\src\base\ftbbox.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\base\ftbdf.c"
+ >
+ </File>
+ <File
+ RelativePath="src\base\ftdebug.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="src\base\ftglyph.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\src\gzip\ftgzip.c"
+ >
+ </File>
+ <File
+ RelativePath="src\base\ftinit.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\src\lzw\ftlzw.c"
+ >
+ </File>
+ <File
+ RelativePath="src\base\ftmm.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\src\raster\ftraster.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\raster\ftrend1.c"
+ >
+ </File>
+ <File
+ RelativePath="src\base\ftsystem.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\src\base\fttype1.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\base\ftxf86.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\pcf\pcfdrivr.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\pcf\pcfread.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\pfr\pfrcmap.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\pfr\pfrdrivr.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\pfr\pfrgload.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\pfr\pfrload.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\pfr\pfrobjs.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\pfr\pfrsbit.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\psaux\psauxmod.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\psaux\psconv.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\pshinter\pshalgo.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\pshinter\pshglob.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\pshinter\pshmod.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\pshinter\pshrec.c"
+ >
+ </File>
+ <File
+ RelativePath="src\psnames\psmodule.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\src\psaux\psobjs.c"
+ >
+ </File>
+ <File
+ RelativePath="src\sfnt\sfnt.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="src\smooth\smooth.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\src\type1\t1afm.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\psaux\t1cmap.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\psaux\t1decode.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\type1\t1driver.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\type1\t1gload.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\type1\t1load.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\type1\t1objs.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\type1\t1parse.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\type42\t42drivr.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\type42\t42objs.c"
+ >
+ </File>
+ <File
+ RelativePath=".\src\type42\t42parse.c"
+ >
+ </File>
+ <File
+ RelativePath="src\truetype\truetype.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="src\cid\type1cid.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="src\winfonts\winfnt.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Multithreaded|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="include\freetype\freetype.h"
+ >
+ </File>
+ <File
+ RelativePath="include\freetype\config\ftconfig.h"
+ >
+ </File>
+ <File
+ RelativePath="include\freetype\fterrors.h"
+ >
+ </File>
+ <File
+ RelativePath="include\freetype\config\ftoption.h"
+ >
+ </File>
+ <File
+ RelativePath="include\freetype\fttypes.h"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/freetype/freetype.vcxproj b/freetype/freetype.vcxproj
new file mode 100755
index 000000000..19cd49f9e
--- /dev/null
+++ b/freetype/freetype.vcxproj
@@ -0,0 +1,679 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug Multithreaded|Win32">
+ <Configuration>Debug Multithreaded</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug Multithreaded|x64">
+ <Configuration>Debug Multithreaded</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release Multithreaded|Win32">
+ <Configuration>Release Multithreaded</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release Multithreaded|x64">
+ <Configuration>Release Multithreaded</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{C44F329B-3594-400B-8AE1-5E7BAB098B1D}</ProjectGuid>
+ <RootNamespace>freetype</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">lib\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">lib\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">objs/release\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">objs/release\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">lib\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">lib64\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">objs/release_mt\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">objs64/release_mt\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">lib\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">lib\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">objs/debug\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">objs/debug\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">lib\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">lib64\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">objs/debug_mt\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">objs64/debug_mt\</IntDir>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">freetype2501MT_D</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">freetype2501MT_D</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">freetype2501MT</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">freetype2501MT</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">freetype2501_D</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">freetype2501_D</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">freetype2501</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">freetype2501</TargetName>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\freetype\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_LIB;FT_FLAT_COMPILE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <DisableLanguageExtensions>true</DisableLanguageExtensions>
+ <PrecompiledHeaderOutputFile>$(IntDir)freetype.pch</PrecompiledHeaderOutputFile>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>.\obj/release/freetype.bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\freetype\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_LIB;FT_FLAT_COMPILE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <DisableLanguageExtensions>true</DisableLanguageExtensions>
+ <PrecompiledHeaderOutputFile>$(IntDir)freetype.pch</PrecompiledHeaderOutputFile>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>.\obj/release/freetype.bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\freetype\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_LIB;FT_FLAT_COMPILE;FT2_BUILD_LIBRARY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <DisableLanguageExtensions>true</DisableLanguageExtensions>
+ <PrecompiledHeaderOutputFile>$(IntDir)freetype.pch</PrecompiledHeaderOutputFile>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
+ </Lib>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>.\obj/release_mt/freetype.bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\freetype\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_LIB;FT_FLAT_COMPILE;FT2_BUILD_LIBRARY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <DisableLanguageExtensions>true</DisableLanguageExtensions>
+ <PrecompiledHeaderOutputFile>$(IntDir)freetype.pch</PrecompiledHeaderOutputFile>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
+ </Lib>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>.\obj/release_mt/freetype.bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\freetype\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_LIB;FT_FLAT_COMPILE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <DisableLanguageExtensions>true</DisableLanguageExtensions>
+ <PrecompiledHeaderOutputFile>$(IntDir)freetype.pch</PrecompiledHeaderOutputFile>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>.\obj/debug/freetype.bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\freetype\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_LIB;FT_FLAT_COMPILE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <DisableLanguageExtensions>true</DisableLanguageExtensions>
+ <PrecompiledHeaderOutputFile>$(IntDir)freetype.pch</PrecompiledHeaderOutputFile>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>.\obj/debug/freetype.bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\freetype\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_LIB;FT_FLAT_COMPILE;FT2_BUILD_LIBRARY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <DisableLanguageExtensions>true</DisableLanguageExtensions>
+ <PrecompiledHeaderOutputFile>$(IntDir)freetype.pch</PrecompiledHeaderOutputFile>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>.\obj/debug_mt/freetype.bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\freetype\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_LIB;FT_FLAT_COMPILE;FT2_BUILD_LIBRARY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <DisableLanguageExtensions>true</DisableLanguageExtensions>
+ <PrecompiledHeaderOutputFile>$(IntDir)freetype.pch</PrecompiledHeaderOutputFile>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>.\obj/debug_mt/freetype.bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="src\autofit\afangles.c" />
+ <ClCompile Include="src\autofit\afcjk.c" />
+ <ClCompile Include="src\autofit\afdummy.c" />
+ <ClCompile Include="src\autofit\afglobal.c">
+ <PreprocessToFile Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">false</PreprocessToFile>
+ <PreprocessToFile Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">false</PreprocessToFile>
+ </ClCompile>
+ <ClCompile Include="src\autofit\afhints.c" />
+ <ClCompile Include="src\autofit\afindic.c" />
+ <ClCompile Include="src\autofit\aflatin.c" />
+ <ClCompile Include="src\autofit\afloader.c" />
+ <ClCompile Include="src\autofit\afmodule.c" />
+ <ClCompile Include="src\base\ftbitmap.c" />
+ <ClCompile Include="src\base\ftlcdfil.c" />
+ <ClCompile Include="src\base\ftsynth.c" />
+ <ClCompile Include="src\psaux\afmparse.c" />
+ <ClCompile Include="src\bdf\bdfdrivr.c" />
+ <ClCompile Include="src\bdf\bdflib.c" />
+ <ClCompile Include="src\cff\cff.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="src\base\ftbase.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="src\base\ftbbox.c" />
+ <ClCompile Include="src\base\ftbdf.c" />
+ <ClCompile Include="src\base\ftdebug.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="src\base\ftglyph.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="src\gzip\ftgzip.c" />
+ <ClCompile Include="src\base\ftinit.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="src\lzw\ftlzw.c" />
+ <ClCompile Include="src\base\ftmm.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="src\raster\ftraster.c" />
+ <ClCompile Include="src\raster\ftrend1.c" />
+ <ClCompile Include="src\base\ftsystem.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="src\base\fttype1.c" />
+ <ClCompile Include="src\base\ftxf86.c" />
+ <ClCompile Include="src\pcf\pcfdrivr.c" />
+ <ClCompile Include="src\pcf\pcfread.c" />
+ <ClCompile Include="src\pfr\pfrcmap.c" />
+ <ClCompile Include="src\pfr\pfrdrivr.c" />
+ <ClCompile Include="src\pfr\pfrgload.c" />
+ <ClCompile Include="src\pfr\pfrload.c" />
+ <ClCompile Include="src\pfr\pfrobjs.c" />
+ <ClCompile Include="src\pfr\pfrsbit.c" />
+ <ClCompile Include="src\psaux\psauxmod.c" />
+ <ClCompile Include="src\psaux\psconv.c" />
+ <ClCompile Include="src\pshinter\pshalgo.c" />
+ <ClCompile Include="src\pshinter\pshglob.c" />
+ <ClCompile Include="src\pshinter\pshmod.c" />
+ <ClCompile Include="src\pshinter\pshrec.c" />
+ <ClCompile Include="src\psnames\psmodule.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="src\psaux\psobjs.c" />
+ <ClCompile Include="src\sfnt\sfnt.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="src\smooth\smooth.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="src\type1\t1afm.c" />
+ <ClCompile Include="src\psaux\t1cmap.c" />
+ <ClCompile Include="src\psaux\t1decode.c" />
+ <ClCompile Include="src\type1\t1driver.c" />
+ <ClCompile Include="src\type1\t1gload.c" />
+ <ClCompile Include="src\type1\t1load.c" />
+ <ClCompile Include="src\type1\t1objs.c" />
+ <ClCompile Include="src\type1\t1parse.c" />
+ <ClCompile Include="src\type42\t42drivr.c" />
+ <ClCompile Include="src\type42\t42objs.c" />
+ <ClCompile Include="src\type42\t42parse.c" />
+ <ClCompile Include="src\truetype\truetype.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="src\cid\type1cid.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <ClCompile Include="src\winfonts\winfnt.c">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release Multithreaded|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="include\freetype\freetype.h" />
+ <ClInclude Include="include\freetype\config\ftconfig.h" />
+ <ClInclude Include="include\freetype\fterrors.h" />
+ <ClInclude Include="include\freetype\config\ftoption.h" />
+ <ClInclude Include="include\freetype\fttypes.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/freetype/freetype.vcxproj.filters b/freetype/freetype.vcxproj.filters
new file mode 100644
index 000000000..ee6cca4d5
--- /dev/null
+++ b/freetype/freetype.vcxproj.filters
@@ -0,0 +1,218 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{26b92932-daf0-47c0-b04a-c77f12e61e08}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{6828e5e5-10d5-456e-88ac-62a6203c15a8}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="src\autofit\afangles.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\autofit\afcjk.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\autofit\afdummy.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\autofit\afglobal.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\autofit\afhints.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\autofit\afindic.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\autofit\aflatin.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\autofit\afloader.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\autofit\afmodule.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\psaux\afmparse.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\bdf\bdfdrivr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\bdf\bdflib.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\cff\cff.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\base\ftbase.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\base\ftbbox.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\base\ftbdf.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\base\ftdebug.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\base\ftglyph.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\gzip\ftgzip.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\base\ftinit.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\lzw\ftlzw.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\base\ftmm.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\raster\ftraster.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\raster\ftrend1.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\base\ftsystem.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\base\fttype1.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\base\ftxf86.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\pcf\pcfdrivr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\pcf\pcfread.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\pfr\pfrcmap.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\pfr\pfrdrivr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\pfr\pfrgload.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\pfr\pfrload.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\pfr\pfrobjs.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\pfr\pfrsbit.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\psaux\psauxmod.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\psaux\psconv.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\pshinter\pshalgo.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\pshinter\pshglob.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\pshinter\pshmod.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\pshinter\pshrec.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\psnames\psmodule.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\psaux\psobjs.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\sfnt\sfnt.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\smooth\smooth.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\type1\t1afm.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\psaux\t1cmap.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\psaux\t1decode.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\type1\t1driver.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\type1\t1gload.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\type1\t1load.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\type1\t1objs.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\type1\t1parse.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\type42\t42drivr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\type42\t42objs.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\type42\t42parse.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\truetype\truetype.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\cid\type1cid.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\winfonts\winfnt.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\base\ftlcdfil.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\base\ftsynth.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\base\ftbitmap.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="include\freetype\freetype.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="include\freetype\config\ftconfig.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="include\freetype\fterrors.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="include\freetype\config\ftoption.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="include\freetype\fttypes.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/freetype/freetypevc10.sln b/freetype/freetypevc10.sln
new file mode 100644
index 000000000..3cfe3a53d
--- /dev/null
+++ b/freetype/freetypevc10.sln
@@ -0,0 +1,38 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "freetype.vcxproj", "{C44F329B-3594-400B-8AE1-5E7BAB098B1D}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug Multithreaded|Win32 = Debug Multithreaded|Win32
+ Debug Multithreaded|x64 = Debug Multithreaded|x64
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release Multithreaded|Win32 = Release Multithreaded|Win32
+ Release Multithreaded|x64 = Release Multithreaded|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Debug Multithreaded|Win32.ActiveCfg = Debug Multithreaded|Win32
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Debug Multithreaded|Win32.Build.0 = Debug Multithreaded|Win32
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Debug Multithreaded|x64.ActiveCfg = Debug Multithreaded|x64
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Debug Multithreaded|x64.Build.0 = Debug Multithreaded|x64
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Debug|Win32.Build.0 = Debug|Win32
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Debug|x64.ActiveCfg = Debug|x64
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Debug|x64.Build.0 = Debug|x64
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Release Multithreaded|Win32.ActiveCfg = Release Multithreaded|Win32
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Release Multithreaded|Win32.Build.0 = Release Multithreaded|Win32
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Release Multithreaded|x64.ActiveCfg = Release Multithreaded|x64
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Release Multithreaded|x64.Build.0 = Release Multithreaded|x64
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Release|Win32.ActiveCfg = Release|Win32
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Release|Win32.Build.0 = Release|Win32
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Release|x64.ActiveCfg = Release|x64
+ {C44F329B-3594-400B-8AE1-5E7BAB098B1D}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/freetype/ftdump.vcproj b/freetype/ftdump.vcproj
new file mode 100644
index 000000000..be6911502
--- /dev/null
+++ b/freetype/ftdump.vcproj
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="ftdump"
+ ProjectGUID="{992C9DF1-8D21-47E7-B1A6-5FF2305DBFB0}"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\demos/obj/ftdump/release"
+ IntermediateDirectory=".\demos/obj/ftdump/release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\demos/obj/ftdump/release/ftdump.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\freetype\include\"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\demos/obj/ftdump/release/ftdump.pch"
+ AssemblerListingLocation=".\demos/obj/ftdump/release/"
+ ObjectFile=".\demos/obj/ftdump/release/"
+ ProgramDataBaseFileName=".\demos/obj/ftdump/release/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="odbc32.lib odbccp32.lib lib\freetype200b8.lib"
+ OutputFile=".\demos/obj/ftdump/release/ftdump.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ProgramDatabaseFile=".\demos/obj/ftdump/release/ftdump.pdb"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\demos/obj/ftdump/release/ftdump.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="echo copy $(TargetPath) .\demos\bin\$(TargetName).exe&#x0D;&#x0A;copy $(TargetPath) .\demos\bin\$(TargetName).exe&#x0D;&#x0A;"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\demos/obj/ftdump/debug"
+ IntermediateDirectory=".\demos/obj/ftdump/debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\demos/obj/ftdump/debug/ftdump.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\freetype\include\"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile=".\demos/obj/ftdump/debug/ftdump.pch"
+ AssemblerListingLocation=".\demos/obj/ftdump/debug/"
+ ObjectFile=".\demos/obj/ftdump/debug/"
+ ProgramDataBaseFileName=".\demos/obj/ftdump/debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="odbc32.lib odbccp32.lib lib\freetype200b8_D.lib"
+ OutputFile="demos/obj/ftdump/debug/ftdump_D.exe"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile=".\demos/obj/ftdump/debug/ftdump_D.pdb"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\demos/obj/ftdump/debug/ftdump.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="echo copy $(TargetPath) .\demos\bin\$(TargetName).exe&#x0D;&#x0A;copy $(TargetPath) .\demos\bin\$(TargetName).exe&#x0D;&#x0A;"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/freetype/ftstring.vcproj b/freetype/ftstring.vcproj
new file mode 100644
index 000000000..94b7ec349
--- /dev/null
+++ b/freetype/ftstring.vcproj
@@ -0,0 +1,310 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="ftstring"
+ ProjectGUID="{B54CF0F0-73EC-4CB2-9285-C2C23191F497}"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\demos/obj/ftstring/release"
+ IntermediateDirectory=".\demos/obj/ftstring/release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\demos/obj/ftstring/release/ftstring.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\freetype\include\,demos\graph,demos\graph\win32"
+ PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;FT_FLAT_COMPILE;DEVICE_WIN32"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\demos/obj/ftstring/release/ftstring.pch"
+ AssemblerListingLocation=".\demos/obj/ftstring/release/"
+ ObjectFile=".\demos/obj/ftstring/release/"
+ ProgramDataBaseFileName=".\demos/obj/ftstring/release/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="odbc32.lib odbccp32.lib lib\freetype200b8.lib"
+ OutputFile=".\demos/obj/ftstring/release/ftstring.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ProgramDatabaseFile=".\demos/obj/ftstring/release/ftstring.pdb"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\demos/obj/ftstring/release/ftstring.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="echo copy $(TargetPath) .\demos\bin\$(TargetName).exe&#x0D;&#x0A;copy $(TargetPath) .\demos\bin\$(TargetName).exe&#x0D;&#x0A;"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\demos/obj/ftstring/debug"
+ IntermediateDirectory=".\demos/obj/ftstring/debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\demos/obj/ftstring/debug/ftstring.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\freetype\include\,demos\graph,demos\graph\win32"
+ PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;FT_FLAT_COMPILE;DEVICE_WIN32"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile=".\demos/obj/ftstring/debug/ftstring.pch"
+ AssemblerListingLocation=".\demos/obj/ftstring/debug/"
+ ObjectFile=".\demos/obj/ftstring/debug/"
+ ProgramDataBaseFileName=".\demos/obj/ftstring/debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="odbc32.lib odbccp32.lib lib\freetype200b8_D.lib"
+ OutputFile="demos/obj/ftstring/debug/ftstring_D.exe"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile=".\demos/obj/ftstring/debug/ftstring_D.pdb"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\demos/obj/ftstring/debug/ftstring.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="echo copy $(TargetPath) .\demos\bin\$(TargetName).exe&#x0D;&#x0A;copy $(TargetPath) .\demos\bin\$(TargetName).exe&#x0D;&#x0A;"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="demos\graph\grfont.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="demos\graph\grinit.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="demos\graph\grobjs.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="demos\graph\win32\grwin32.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/freetype/ftview.vcproj b/freetype/ftview.vcproj
new file mode 100644
index 000000000..3b54694da
--- /dev/null
+++ b/freetype/ftview.vcproj
@@ -0,0 +1,310 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="ftview"
+ ProjectGUID="{DEA62A3D-3BD7-4650-ABEA-88E6DD0053BA}"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\demos/obj/ftview/debug"
+ IntermediateDirectory=".\demos/obj/ftview/debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\demos/obj/ftview/debug/ftview.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\freetype\include\,demos\graph,demos\graph\win32"
+ PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE;FT_FLAT_COMPILE;DEVICE_WIN32"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile=".\demos/obj/ftview/debug/ftview.pch"
+ AssemblerListingLocation=".\demos/obj/ftview/debug/"
+ ObjectFile=".\demos/obj/ftview/debug/"
+ ProgramDataBaseFileName=".\demos/obj/ftview/debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="odbc32.lib odbccp32.lib lib\freetype200b8_D.lib"
+ OutputFile="demos/obj/ftview/debug/ftview_D.exe"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile=".\demos/obj/ftview/debug/ftview_D.pdb"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\demos/obj/ftview/debug/ftview.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="echo copy $(TargetPath) .\demos\bin\$(TargetName).exe&#x0D;&#x0A;copy $(TargetPath) .\demos\bin\$(TargetName).exe&#x0D;&#x0A;"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\demos/obj/ftview/release"
+ IntermediateDirectory=".\demos/obj/ftview/release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\demos/obj/ftview/release/ftview.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\freetype\include\,demos\graph,demos\graph\win32"
+ PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE;FT_FLAT_COMPILE;DEVICE_WIN32"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\demos/obj/ftview/release/ftview.pch"
+ AssemblerListingLocation=".\demos/obj/ftview/release/"
+ ObjectFile=".\demos/obj/ftview/release/"
+ ProgramDataBaseFileName=".\demos/obj/ftview/release/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="odbc32.lib odbccp32.lib lib\freetype200b8.lib"
+ OutputFile=".\demos/obj/ftview/release/ftview.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ProgramDatabaseFile=".\demos/obj/ftview/release/ftview.pdb"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\demos/obj/ftview/release/ftview.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ CommandLine="echo copy $(TargetPath) .\demos\bin\$(TargetName).exe&#x0D;&#x0A;copy $(TargetPath) .\demos\bin\$(TargetName).exe&#x0D;&#x0A;"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="demos\graph\grblit.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="demos\graph\grdevice.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="demos\graph\grobjs.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="demos\graph\win32\grwin32.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/freetype/include/freetype/config/ftconfig.h b/freetype/include/freetype/config/ftconfig.h
index 5dce30ef3..f7665efab 100644
--- a/freetype/include/freetype/config/ftconfig.h
+++ b/freetype/include/freetype/config/ftconfig.h
@@ -39,8 +39,8 @@
#define __FTCONFIG_H__
#include <ft2build.h>
-#include FT_CONFIG_OPTIONS_H
-#include FT_CONFIG_STANDARD_LIBRARY_H
+#include <freetype/config/ftoption.h>
+#include <freetype/config/ftstdlib.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/ftadvanc.h b/freetype/include/freetype/ftadvanc.h
index 012b74b81..31203459b 100644
--- a/freetype/include/freetype/ftadvanc.h
+++ b/freetype/include/freetype/ftadvanc.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ftbbox.h b/freetype/include/freetype/ftbbox.h
index 976691956..f605ac1c4 100644
--- a/freetype/include/freetype/ftbbox.h
+++ b/freetype/include/freetype/ftbbox.h
@@ -32,7 +32,7 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ftbdf.h b/freetype/include/freetype/ftbdf.h
index 4f8baf840..34de541ec 100644
--- a/freetype/include/freetype/ftbdf.h
+++ b/freetype/include/freetype/ftbdf.h
@@ -20,7 +20,7 @@
#define __FTBDF_H__
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ftbitmap.h b/freetype/include/freetype/ftbitmap.h
index 7dbf5ba3f..c57f42bcc 100644
--- a/freetype/include/freetype/ftbitmap.h
+++ b/freetype/include/freetype/ftbitmap.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ftcid.h b/freetype/include/freetype/ftcid.h
index 203a30caf..5771441cf 100644
--- a/freetype/include/freetype/ftcid.h
+++ b/freetype/include/freetype/ftcid.h
@@ -19,7 +19,7 @@
#define __FTCID_H__
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/fterrors.h b/freetype/include/freetype/fterrors.h
index 0fa3e4dce..dfde72027 100644
--- a/freetype/include/freetype/fterrors.h
+++ b/freetype/include/freetype/fterrors.h
@@ -86,7 +86,7 @@
/* include module base error codes */
-#include FT_MODULE_ERRORS_H
+#include <freetype/ftmoderr.h>
/*******************************************************************/
@@ -157,7 +157,7 @@
/* now include the error codes */
-#include FT_ERROR_DEFINITIONS_H
+#include <freetype/fterrdef.h>
#ifdef FT_ERROR_END_LIST
diff --git a/freetype/include/freetype/ftgasp.h b/freetype/include/freetype/ftgasp.h
index 453d4fa42..4b7f73542 100644
--- a/freetype/include/freetype/ftgasp.h
+++ b/freetype/include/freetype/ftgasp.h
@@ -20,7 +20,7 @@
#define _FT_GASP_H_
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ftglyph.h b/freetype/include/freetype/ftglyph.h
index 31dc33187..ff5ad6380 100644
--- a/freetype/include/freetype/ftglyph.h
+++ b/freetype/include/freetype/ftglyph.h
@@ -34,7 +34,7 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ftgxval.h b/freetype/include/freetype/ftgxval.h
index 497015c10..54ab1459c 100644
--- a/freetype/include/freetype/ftgxval.h
+++ b/freetype/include/freetype/ftgxval.h
@@ -29,7 +29,7 @@
#define __FTGXVAL_H__
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ftgzip.h b/freetype/include/freetype/ftgzip.h
index acbc4f032..69d03c353 100644
--- a/freetype/include/freetype/ftgzip.h
+++ b/freetype/include/freetype/ftgzip.h
@@ -20,7 +20,7 @@
#define __FTGZIP_H__
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ftincrem.h b/freetype/include/freetype/ftincrem.h
index aaf689ff1..209cd060c 100644
--- a/freetype/include/freetype/ftincrem.h
+++ b/freetype/include/freetype/ftincrem.h
@@ -20,7 +20,7 @@
#define __FTINCREM_H__
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ftlcdfil.h b/freetype/include/freetype/ftlcdfil.h
index 8b253f118..9d8a26555 100644
--- a/freetype/include/freetype/ftlcdfil.h
+++ b/freetype/include/freetype/ftlcdfil.h
@@ -21,7 +21,7 @@
#define __FT_LCD_FILTER_H__
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ftlist.h b/freetype/include/freetype/ftlist.h
index bb6f7f119..244c9c746 100644
--- a/freetype/include/freetype/ftlist.h
+++ b/freetype/include/freetype/ftlist.h
@@ -29,7 +29,7 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ftlzw.h b/freetype/include/freetype/ftlzw.h
index 00d40169a..6446bb0ea 100644
--- a/freetype/include/freetype/ftlzw.h
+++ b/freetype/include/freetype/ftlzw.h
@@ -20,7 +20,7 @@
#define __FTLZW_H__
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ftmodapi.h b/freetype/include/freetype/ftmodapi.h
index 8abffb558..12cc7c4ad 100644
--- a/freetype/include/freetype/ftmodapi.h
+++ b/freetype/include/freetype/ftmodapi.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ftotval.h b/freetype/include/freetype/ftotval.h
index 027f2e886..3d6e0ebee 100644
--- a/freetype/include/freetype/ftotval.h
+++ b/freetype/include/freetype/ftotval.h
@@ -31,7 +31,7 @@
#define __FTOTVAL_H__
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ftoutln.h b/freetype/include/freetype/ftoutln.h
index fd69f2829..baff88920 100644
--- a/freetype/include/freetype/ftoutln.h
+++ b/freetype/include/freetype/ftoutln.h
@@ -22,7 +22,7 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ftpfr.h b/freetype/include/freetype/ftpfr.h
index 0b7b7d427..ae98d2520 100644
--- a/freetype/include/freetype/ftpfr.h
+++ b/freetype/include/freetype/ftpfr.h
@@ -20,7 +20,7 @@
#define __FTPFR_H__
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ftsizes.h b/freetype/include/freetype/ftsizes.h
index 3e548cc39..bbcc4e0b2 100644
--- a/freetype/include/freetype/ftsizes.h
+++ b/freetype/include/freetype/ftsizes.h
@@ -30,7 +30,7 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ftsnames.h b/freetype/include/freetype/ftsnames.h
index 485e4e162..d932b5367 100644
--- a/freetype/include/freetype/ftsnames.h
+++ b/freetype/include/freetype/ftsnames.h
@@ -24,7 +24,7 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ftsynth.h b/freetype/include/freetype/ftsynth.h
index 2074503cf..76d7a21df 100644
--- a/freetype/include/freetype/ftsynth.h
+++ b/freetype/include/freetype/ftsynth.h
@@ -46,7 +46,7 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/fttrigon.h b/freetype/include/freetype/fttrigon.h
index 65143cb8c..3dc77cbe6 100644
--- a/freetype/include/freetype/fttrigon.h
+++ b/freetype/include/freetype/fttrigon.h
@@ -19,7 +19,7 @@
#ifndef __FTTRIGON_H__
#define __FTTRIGON_H__
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/fttypes.h b/freetype/include/freetype/fttypes.h
index 027e59ce1..5781be012 100644
--- a/freetype/include/freetype/fttypes.h
+++ b/freetype/include/freetype/fttypes.h
@@ -21,9 +21,9 @@
#include <ft2build.h>
-#include FT_CONFIG_CONFIG_H
-#include FT_SYSTEM_H
-#include FT_IMAGE_H
+#include <freetype/config/ftconfig.h>
+#include <freetype/ftsystem.h>
+#include <freetype/ftimage.h>
#include <stddef.h>
diff --git a/freetype/include/freetype/ftwinfnt.h b/freetype/include/freetype/ftwinfnt.h
index ea3335353..ec48702ee 100644
--- a/freetype/include/freetype/ftwinfnt.h
+++ b/freetype/include/freetype/ftwinfnt.h
@@ -20,7 +20,7 @@
#define __FTWINFNT_H__
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ftxf86.h b/freetype/include/freetype/ftxf86.h
index 8c68afdcc..a26391544 100644
--- a/freetype/include/freetype/ftxf86.h
+++ b/freetype/include/freetype/ftxf86.h
@@ -20,7 +20,7 @@
#define __FTXF86_H__
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/internal/autohint.h b/freetype/include/freetype/internal/autohint.h
index 545de938c..e1eaff509 100644
--- a/freetype/include/freetype/internal/autohint.h
+++ b/freetype/include/freetype/internal/autohint.h
@@ -71,7 +71,7 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/ftcalc.h b/freetype/include/freetype/internal/ftcalc.h
index faac3a386..75652a10d 100644
--- a/freetype/include/freetype/internal/ftcalc.h
+++ b/freetype/include/freetype/internal/ftcalc.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/ftdebug.h b/freetype/include/freetype/internal/ftdebug.h
index 58a3916d7..cda7151fe 100644
--- a/freetype/include/freetype/internal/ftdebug.h
+++ b/freetype/include/freetype/internal/ftdebug.h
@@ -26,8 +26,8 @@
#include <ft2build.h>
-#include FT_CONFIG_CONFIG_H
-#include FT_FREETYPE_H
+#include <freetype/config/ftconfig.h>
+#include <freetype/freetype.h>
FT_BEGIN_HEADER
@@ -56,7 +56,7 @@ FT_BEGIN_HEADER
/* defining the enumeration */
typedef enum FT_Trace_
{
-#include FT_INTERNAL_TRACE_H
+#include <freetype/internal/fttrace.h>
trace_count
} FT_Trace;
diff --git a/freetype/include/freetype/internal/ftgloadr.h b/freetype/include/freetype/internal/ftgloadr.h
index ce4dc6c9c..76987e8c5 100644
--- a/freetype/include/freetype/internal/ftgloadr.h
+++ b/freetype/include/freetype/internal/ftgloadr.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/ftobjs.h b/freetype/include/freetype/internal/ftobjs.h
index 701c850eb..444e5d15c 100644
--- a/freetype/include/freetype/internal/ftobjs.h
+++ b/freetype/include/freetype/internal/ftobjs.h
@@ -27,15 +27,15 @@
#define __FTOBJS_H__
#include <ft2build.h>
-#include FT_RENDER_H
-#include FT_SIZES_H
-#include FT_LCD_FILTER_H
-#include FT_INTERNAL_MEMORY_H
-#include FT_INTERNAL_GLYPH_LOADER_H
-#include FT_INTERNAL_DRIVER_H
-#include FT_INTERNAL_AUTOHINT_H
-#include FT_INTERNAL_SERVICE_H
-#include FT_INTERNAL_PIC_H
+#include <freetype/ftrender.h>
+#include <freetype/ftsizes.h>
+#include <freetype/ftlcdfil.h>
+#include <freetype/internal/ftmemory.h>
+#include <freetype/internal/ftgloadr.h>
+#include <freetype/internal/ftdriver.h>
+#include <freetype/internal/autohint.h>
+#include <freetype/internal/ftserv.h>
+#include <freetype/internal/ftpic.h>
#ifdef FT_CONFIG_OPTION_INCREMENTAL
#include FT_INCREMENTAL_H
diff --git a/freetype/include/freetype/internal/ftrfork.h b/freetype/include/freetype/internal/ftrfork.h
index 6307f2d0c..136163c7c 100644
--- a/freetype/include/freetype/internal/ftrfork.h
+++ b/freetype/include/freetype/internal/ftrfork.h
@@ -26,7 +26,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/ftstream.h b/freetype/include/freetype/internal/ftstream.h
index 266185832..4d3e88105 100644
--- a/freetype/include/freetype/internal/ftstream.h
+++ b/freetype/include/freetype/internal/ftstream.h
@@ -22,7 +22,7 @@
#include <ft2build.h>
#include FT_SYSTEM_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/psaux.h b/freetype/include/freetype/internal/psaux.h
index e903114f8..ac7edacc2 100644
--- a/freetype/include/freetype/internal/psaux.h
+++ b/freetype/include/freetype/internal/psaux.h
@@ -22,9 +22,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_TYPE1_TYPES_H
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/t1types.h>
+#include <freetype/internal/services/svpscmap.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/pshints.h b/freetype/include/freetype/internal/pshints.h
index 3fb18dc2d..4e9294f90 100644
--- a/freetype/include/freetype/internal/pshints.h
+++ b/freetype/include/freetype/internal/pshints.h
@@ -23,8 +23,8 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_TYPE1_TABLES_H
+#include <freetype/freetype.h>
+#include <freetype/t1tables.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/services/svbdf.h b/freetype/include/freetype/internal/services/svbdf.h
index 0974752a7..08575aaf4 100644
--- a/freetype/include/freetype/internal/services/svbdf.h
+++ b/freetype/include/freetype/internal/services/svbdf.h
@@ -20,7 +20,7 @@
#define __SVBDF_H__
#include FT_BDF_H
-#include FT_INTERNAL_SERVICE_H
+#include <freetype/internal/ftserv.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/services/svcid.h b/freetype/include/freetype/internal/services/svcid.h
index 6be3f9374..646ce1283 100644
--- a/freetype/include/freetype/internal/services/svcid.h
+++ b/freetype/include/freetype/internal/services/svcid.h
@@ -18,7 +18,7 @@
#ifndef __SVCID_H__
#define __SVCID_H__
-#include FT_INTERNAL_SERVICE_H
+#include <freetype/internal/ftserv.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/services/svgldict.h b/freetype/include/freetype/internal/services/svgldict.h
index 1d1253472..4d3c58f8c 100644
--- a/freetype/include/freetype/internal/services/svgldict.h
+++ b/freetype/include/freetype/internal/services/svgldict.h
@@ -19,7 +19,7 @@
#ifndef __SVGLDICT_H__
#define __SVGLDICT_H__
-#include FT_INTERNAL_SERVICE_H
+#include <freetype/internal/ftserv.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/services/svgxval.h b/freetype/include/freetype/internal/services/svgxval.h
index 2cdab5065..7707d0751 100644
--- a/freetype/include/freetype/internal/services/svgxval.h
+++ b/freetype/include/freetype/internal/services/svgxval.h
@@ -29,7 +29,7 @@
#define __SVGXVAL_H__
#include FT_GX_VALIDATE_H
-#include FT_INTERNAL_VALIDATE_H
+#include <freetype/internal/ftvalid.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/services/svkern.h b/freetype/include/freetype/internal/services/svkern.h
index 1488adf49..68f5a96e9 100644
--- a/freetype/include/freetype/internal/services/svkern.h
+++ b/freetype/include/freetype/internal/services/svkern.h
@@ -19,7 +19,7 @@
#ifndef __SVKERN_H__
#define __SVKERN_H__
-#include FT_INTERNAL_SERVICE_H
+#include <freetype/internal/ftserv.h>
#include FT_TRUETYPE_TABLES_H
diff --git a/freetype/include/freetype/internal/services/svmm.h b/freetype/include/freetype/internal/services/svmm.h
index b08a663d6..4c1b960b4 100644
--- a/freetype/include/freetype/internal/services/svmm.h
+++ b/freetype/include/freetype/internal/services/svmm.h
@@ -19,7 +19,7 @@
#ifndef __SVMM_H__
#define __SVMM_H__
-#include FT_INTERNAL_SERVICE_H
+#include <freetype/internal/ftserv.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/services/svotval.h b/freetype/include/freetype/internal/services/svotval.h
index 970bbd575..141cddb46 100644
--- a/freetype/include/freetype/internal/services/svotval.h
+++ b/freetype/include/freetype/internal/services/svotval.h
@@ -20,7 +20,7 @@
#define __SVOTVAL_H__
#include FT_OPENTYPE_VALIDATE_H
-#include FT_INTERNAL_VALIDATE_H
+#include <freetype/internal/ftvalid.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/services/svpfr.h b/freetype/include/freetype/internal/services/svpfr.h
index 462786f9c..65760c8a3 100644
--- a/freetype/include/freetype/internal/services/svpfr.h
+++ b/freetype/include/freetype/internal/services/svpfr.h
@@ -20,7 +20,7 @@
#define __SVPFR_H__
#include FT_PFR_H
-#include FT_INTERNAL_SERVICE_H
+#include <freetype/internal/ftserv.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/services/svpostnm.h b/freetype/include/freetype/internal/services/svpostnm.h
index a76b4fe05..1476dea48 100644
--- a/freetype/include/freetype/internal/services/svpostnm.h
+++ b/freetype/include/freetype/internal/services/svpostnm.h
@@ -19,7 +19,7 @@
#ifndef __SVPOSTNM_H__
#define __SVPOSTNM_H__
-#include FT_INTERNAL_SERVICE_H
+#include <freetype/internal/ftserv.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/services/svpscmap.h b/freetype/include/freetype/internal/services/svpscmap.h
index 030948ea6..3cb15a2a6 100644
--- a/freetype/include/freetype/internal/services/svpscmap.h
+++ b/freetype/include/freetype/internal/services/svpscmap.h
@@ -19,7 +19,7 @@
#ifndef __SVPSCMAP_H__
#define __SVPSCMAP_H__
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/services/svpsinfo.h b/freetype/include/freetype/internal/services/svpsinfo.h
index 4bfb50671..ca3bbc114 100644
--- a/freetype/include/freetype/internal/services/svpsinfo.h
+++ b/freetype/include/freetype/internal/services/svpsinfo.h
@@ -19,8 +19,8 @@
#ifndef __SVPSINFO_H__
#define __SVPSINFO_H__
-#include FT_INTERNAL_SERVICE_H
-#include FT_INTERNAL_TYPE1_TYPES_H
+#include <freetype/internal/ftserv.h>
+#include <freetype/internal/t1types.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/services/svsfnt.h b/freetype/include/freetype/internal/services/svsfnt.h
index d3835aa1c..9a328d0a4 100644
--- a/freetype/include/freetype/internal/services/svsfnt.h
+++ b/freetype/include/freetype/internal/services/svsfnt.h
@@ -19,7 +19,7 @@
#ifndef __SVSFNT_H__
#define __SVSFNT_H__
-#include FT_INTERNAL_SERVICE_H
+#include <freetype/internal/ftserv.h>
#include FT_TRUETYPE_TABLES_H
diff --git a/freetype/include/freetype/internal/services/svttcmap.h b/freetype/include/freetype/internal/services/svttcmap.h
index 83994aaf8..5d6f9bc7a 100644
--- a/freetype/include/freetype/internal/services/svttcmap.h
+++ b/freetype/include/freetype/internal/services/svttcmap.h
@@ -24,7 +24,7 @@
#ifndef __SVTTCMAP_H__
#define __SVTTCMAP_H__
-#include FT_INTERNAL_SERVICE_H
+#include <freetype/internal/ftserv.h>
#include FT_TRUETYPE_TABLES_H
diff --git a/freetype/include/freetype/internal/services/svtteng.h b/freetype/include/freetype/internal/services/svtteng.h
index 58e02a6f9..4612884cb 100644
--- a/freetype/include/freetype/internal/services/svtteng.h
+++ b/freetype/include/freetype/internal/services/svtteng.h
@@ -19,7 +19,7 @@
#ifndef __SVTTENG_H__
#define __SVTTENG_H__
-#include FT_INTERNAL_SERVICE_H
+#include <freetype/internal/ftserv.h>
#include FT_MODULE_H
diff --git a/freetype/include/freetype/internal/services/svttglyf.h b/freetype/include/freetype/internal/services/svttglyf.h
index 369eb8421..3bb087445 100644
--- a/freetype/include/freetype/internal/services/svttglyf.h
+++ b/freetype/include/freetype/internal/services/svttglyf.h
@@ -17,7 +17,7 @@
#ifndef __SVTTGLYF_H__
#define __SVTTGLYF_H__
-#include FT_INTERNAL_SERVICE_H
+#include <freetype/internal/ftserv.h>
#include FT_TRUETYPE_TABLES_H
diff --git a/freetype/include/freetype/internal/services/svwinfnt.h b/freetype/include/freetype/internal/services/svwinfnt.h
index 57f7765d9..7ae69e2a4 100644
--- a/freetype/include/freetype/internal/services/svwinfnt.h
+++ b/freetype/include/freetype/internal/services/svwinfnt.h
@@ -19,7 +19,7 @@
#ifndef __SVWINFNT_H__
#define __SVWINFNT_H__
-#include FT_INTERNAL_SERVICE_H
+#include <freetype/internal/ftserv.h>
#include FT_WINFONTS_H
diff --git a/freetype/include/freetype/internal/services/svxf86nm.h b/freetype/include/freetype/internal/services/svxf86nm.h
index ca5d884a8..b16cbbf7b 100644
--- a/freetype/include/freetype/internal/services/svxf86nm.h
+++ b/freetype/include/freetype/internal/services/svxf86nm.h
@@ -19,7 +19,7 @@
#ifndef __SVXF86NM_H__
#define __SVXF86NM_H__
-#include FT_INTERNAL_SERVICE_H
+#include <freetype/internal/ftserv.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/sfnt.h b/freetype/include/freetype/internal/sfnt.h
index 6b5e41f1a..b94b4dd3e 100644
--- a/freetype/include/freetype/internal/sfnt.h
+++ b/freetype/include/freetype/internal/sfnt.h
@@ -21,8 +21,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
-#include FT_INTERNAL_TRUETYPE_TYPES_H
+#include <freetype/internal/ftdriver.h>
+#include <freetype/internal/tttypes.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/t1types.h b/freetype/include/freetype/internal/t1types.h
index e20237c14..ad8d27f8c 100644
--- a/freetype/include/freetype/internal/t1types.h
+++ b/freetype/include/freetype/internal/t1types.h
@@ -22,10 +22,10 @@
#include <ft2build.h>
-#include FT_TYPE1_TABLES_H
-#include FT_INTERNAL_POSTSCRIPT_HINTS_H
-#include FT_INTERNAL_SERVICE_H
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
+#include <freetype/t1tables.h>
+#include <freetype/internal/pshints.h>
+#include <freetype/internal/ftserv.h>
+#include <freetype/internal/services/svpscmap.h>
FT_BEGIN_HEADER
diff --git a/freetype/include/freetype/internal/tttypes.h b/freetype/include/freetype/internal/tttypes.h
index 1bbfe499c..b7baf2040 100644
--- a/freetype/include/freetype/internal/tttypes.h
+++ b/freetype/include/freetype/internal/tttypes.h
@@ -23,7 +23,7 @@
#include <ft2build.h>
#include FT_TRUETYPE_TABLES_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
#include FT_MULTIPLE_MASTERS_H
diff --git a/freetype/include/freetype/t1tables.h b/freetype/include/freetype/t1tables.h
index a14255e5f..4045bbd34 100644
--- a/freetype/include/freetype/t1tables.h
+++ b/freetype/include/freetype/t1tables.h
@@ -22,7 +22,7 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/tttables.h b/freetype/include/freetype/tttables.h
index fe07117b0..4dcfec661 100644
--- a/freetype/include/freetype/tttables.h
+++ b/freetype/include/freetype/tttables.h
@@ -22,7 +22,7 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/tttags.h b/freetype/include/freetype/tttags.h
index be8c524ed..c4dee4666 100644
--- a/freetype/include/freetype/tttags.h
+++ b/freetype/include/freetype/tttags.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/include/freetype/ttunpat.h b/freetype/include/freetype/ttunpat.h
index a0162759b..53e62eab0 100644
--- a/freetype/include/freetype/ttunpat.h
+++ b/freetype/include/freetype/ttunpat.h
@@ -23,7 +23,7 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/src/autofit/afcjk.c b/freetype/src/autofit/afcjk.c
index f69a528e3..c94727b1b 100644
--- a/freetype/src/autofit/afcjk.c
+++ b/freetype/src/autofit/afcjk.c
@@ -23,8 +23,8 @@
*/
#include <ft2build.h>
-#include FT_ADVANCES_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/ftadvanc.h>
+#include <freetype/internal/ftdebug.h>
#include "aftypes.h"
#include "aflatin.h"
diff --git a/freetype/src/autofit/aferrors.h b/freetype/src/autofit/aferrors.h
index 50e1a22dd..824d0b3a3 100644
--- a/freetype/src/autofit/aferrors.h
+++ b/freetype/src/autofit/aferrors.h
@@ -26,7 +26,7 @@
#ifndef __AFERRORS_H__
#define __AFERRORS_H__
-#include FT_MODULE_ERRORS_H
+#include <freetype/ftmoderr.h>
#undef __FTERRORS_H__
@@ -34,7 +34,7 @@
#define FT_ERR_PREFIX AF_Err_
#define FT_ERR_BASE FT_Mod_Err_Autofit
-#include FT_ERRORS_H
+#include <freetype/fterrors.h>
#endif /* __AFERRORS_H__ */
diff --git a/freetype/src/autofit/afhints.c b/freetype/src/autofit/afhints.c
index e8defaa88..d0f05d6a4 100644
--- a/freetype/src/autofit/afhints.c
+++ b/freetype/src/autofit/afhints.c
@@ -18,8 +18,8 @@
#include "afhints.h"
#include "aferrors.h"
-#include FT_INTERNAL_CALC_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftcalc.h>
+#include <freetype/internal/ftdebug.h>
/*************************************************************************/
diff --git a/freetype/src/autofit/aflatin.c b/freetype/src/autofit/aflatin.c
index ef0157a13..ae4bbba35 100644
--- a/freetype/src/autofit/aflatin.c
+++ b/freetype/src/autofit/aflatin.c
@@ -17,8 +17,8 @@
#include <ft2build.h>
-#include FT_ADVANCES_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/ftadvanc.h>
+#include <freetype/internal/ftdebug.h>
#include "afglobal.h"
#include "aflatin.h"
diff --git a/freetype/src/autofit/afmodule.c b/freetype/src/autofit/afmodule.c
index b1bb5ee0e..2081925f1 100644
--- a/freetype/src/autofit/afmodule.c
+++ b/freetype/src/autofit/afmodule.c
@@ -29,8 +29,8 @@
void* _af_debug_hints;
#endif
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftdebug.h>
#include FT_AUTOHINTER_H
#include FT_SERVICE_PROPERTIES_H
diff --git a/freetype/src/autofit/afmodule.h b/freetype/src/autofit/afmodule.h
index c4e8f8f66..cae3054ab 100644
--- a/freetype/src/autofit/afmodule.h
+++ b/freetype/src/autofit/afmodule.h
@@ -20,7 +20,7 @@
#define __AFMODULE_H__
#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include FT_MODULE_H
#include "afloader.h"
diff --git a/freetype/src/autofit/afpic.c b/freetype/src/autofit/afpic.c
index 45e1448c0..d142914c0 100644
--- a/freetype/src/autofit/afpic.c
+++ b/freetype/src/autofit/afpic.c
@@ -18,7 +18,7 @@
#include <ft2build.h>
#include FT_FREETYPE_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include "afpic.h"
#include "aferrors.h"
diff --git a/freetype/src/autofit/afpic.h b/freetype/src/autofit/afpic.h
index 7a07bdf4c..4ce95e3a4 100644
--- a/freetype/src/autofit/afpic.h
+++ b/freetype/src/autofit/afpic.h
@@ -22,7 +22,7 @@
FT_BEGIN_HEADER
-#include FT_INTERNAL_PIC_H
+#include <freetype/internal/ftpic.h>
#ifndef FT_CONFIG_OPTION_PIC
diff --git a/freetype/src/autofit/aftypes.h b/freetype/src/autofit/aftypes.h
index 9acd7ad6d..191a76f39 100644
--- a/freetype/src/autofit/aftypes.h
+++ b/freetype/src/autofit/aftypes.h
@@ -37,10 +37,10 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#include FT_OUTLINE_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftdebug.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/base/basepic.c b/freetype/src/base/basepic.c
index 5268e7c67..222772b41 100644
--- a/freetype/src/base/basepic.c
+++ b/freetype/src/base/basepic.c
@@ -18,7 +18,7 @@
#include <ft2build.h>
#include FT_FREETYPE_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include "basepic.h"
diff --git a/freetype/src/base/basepic.h b/freetype/src/base/basepic.h
index 329d7c8fd..1910a60f9 100644
--- a/freetype/src/base/basepic.h
+++ b/freetype/src/base/basepic.h
@@ -22,7 +22,7 @@
FT_BEGIN_HEADER
-#include FT_INTERNAL_PIC_H
+#include <freetype/internal/ftpic.h>
#ifndef FT_CONFIG_OPTION_PIC
diff --git a/freetype/src/base/ftadvanc.c b/freetype/src/base/ftadvanc.c
index 52078478d..10ba02389 100644
--- a/freetype/src/base/ftadvanc.c
+++ b/freetype/src/base/ftadvanc.c
@@ -20,7 +20,7 @@
#include FT_INTERNAL_DEBUG_H
#include FT_ADVANCES_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
static FT_Error
diff --git a/freetype/src/base/ftapi.c b/freetype/src/base/ftapi.c
index 8914d1f4e..d7d0657e5 100644
--- a/freetype/src/base/ftapi.c
+++ b/freetype/src/base/ftapi.c
@@ -19,9 +19,9 @@
#include <ft2build.h>
#include FT_LIST_H
#include FT_OUTLINE_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
#include FT_TRUETYPE_TABLES_H
#include FT_OUTLINE_H
diff --git a/freetype/src/base/ftbase.h b/freetype/src/base/ftbase.h
index 51a1db18b..9dcae7823 100644
--- a/freetype/src/base/ftbase.h
+++ b/freetype/src/base/ftbase.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/base/ftbbox.c b/freetype/src/base/ftbbox.c
index 6d1c44cb2..a01b68161 100644
--- a/freetype/src/base/ftbbox.c
+++ b/freetype/src/base/ftbbox.c
@@ -30,8 +30,8 @@
#include FT_BBOX_H
#include FT_IMAGE_H
#include FT_OUTLINE_H
-#include FT_INTERNAL_CALC_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftcalc.h>
+#include <freetype/internal/ftobjs.h>
typedef struct TBBox_Rec_
diff --git a/freetype/src/base/ftbdf.c b/freetype/src/base/ftbdf.c
index 5755f8558..48aaacb9e 100644
--- a/freetype/src/base/ftbdf.c
+++ b/freetype/src/base/ftbdf.c
@@ -17,7 +17,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include FT_SERVICE_BDF_H
diff --git a/freetype/src/base/ftbitmap.c b/freetype/src/base/ftbitmap.c
index 975818e14..50ef269bf 100644
--- a/freetype/src/base/ftbitmap.c
+++ b/freetype/src/base/ftbitmap.c
@@ -21,7 +21,7 @@
#include FT_BITMAP_H
#include FT_IMAGE_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
static
diff --git a/freetype/src/base/ftcalc.c b/freetype/src/base/ftcalc.c
index 0ec0d7893..27448b30a 100644
--- a/freetype/src/base/ftcalc.c
+++ b/freetype/src/base/ftcalc.c
@@ -34,10 +34,10 @@
#include <ft2build.h>
#include FT_GLYPH_H
-#include FT_TRIGONOMETRY_H
-#include FT_INTERNAL_CALC_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/fttrigon.h>
+#include <freetype/internal/ftcalc.h>
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftobjs.h>
#ifdef FT_MULFIX_INLINED
#undef FT_MulFix
diff --git a/freetype/src/base/ftcid.c b/freetype/src/base/ftcid.c
index 741879d92..95fbe7453 100644
--- a/freetype/src/base/ftcid.c
+++ b/freetype/src/base/ftcid.c
@@ -16,8 +16,8 @@
#include <ft2build.h>
-#include FT_CID_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/cid.h>
+#include <freetype/internal/ftobjs.h>
#include FT_SERVICE_CID_H
diff --git a/freetype/src/base/ftdbgmem.c b/freetype/src/base/ftdbgmem.c
index 6fb86fe77..f4b98effc 100644
--- a/freetype/src/base/ftdbgmem.c
+++ b/freetype/src/base/ftdbgmem.c
@@ -18,8 +18,8 @@
#include <ft2build.h>
#include FT_CONFIG_CONFIG_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_MEMORY_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftmemory.h>
#include FT_SYSTEM_H
#include FT_ERRORS_H
#include FT_TYPES_H
diff --git a/freetype/src/base/ftdebug.c b/freetype/src/base/ftdebug.c
index b9156d15e..876fe1df7 100644
--- a/freetype/src/base/ftdebug.c
+++ b/freetype/src/base/ftdebug.c
@@ -42,8 +42,8 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/freetype.h>
+#include <freetype/internal/ftdebug.h>
#ifdef FT_DEBUG_LEVEL_ERROR
diff --git a/freetype/src/base/ftgasp.c b/freetype/src/base/ftgasp.c
index 8485d2925..68f0c5c0a 100644
--- a/freetype/src/base/ftgasp.c
+++ b/freetype/src/base/ftgasp.c
@@ -18,7 +18,7 @@
#include <ft2build.h>
#include FT_GASP_H
-#include FT_INTERNAL_TRUETYPE_TYPES_H
+#include <freetype/internal/tttypes.h>
FT_EXPORT_DEF( FT_Int )
diff --git a/freetype/src/base/ftgloadr.c b/freetype/src/base/ftgloadr.c
index 3cc5c7a80..7defb29d8 100644
--- a/freetype/src/base/ftgloadr.c
+++ b/freetype/src/base/ftgloadr.c
@@ -17,10 +17,10 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_GLYPH_LOADER_H
-#include FT_INTERNAL_MEMORY_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftgloadr.h>
+#include <freetype/internal/ftmemory.h>
+#include <freetype/internal/ftobjs.h>
#undef FT_COMPONENT
#define FT_COMPONENT trace_gloader
diff --git a/freetype/src/base/ftglyph.c b/freetype/src/base/ftglyph.c
index 5dd28a8c5..4380aa2bf 100644
--- a/freetype/src/base/ftglyph.c
+++ b/freetype/src/base/ftglyph.c
@@ -34,7 +34,7 @@
#include FT_GLYPH_H
#include FT_OUTLINE_H
#include FT_BITMAP_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include "basepic.h"
diff --git a/freetype/src/base/ftgxval.c b/freetype/src/base/ftgxval.c
index a8ec44ac0..e301917d0 100644
--- a/freetype/src/base/ftgxval.c
+++ b/freetype/src/base/ftgxval.c
@@ -26,9 +26,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftobjs.h>
#include FT_SERVICE_GX_VALIDATE_H
diff --git a/freetype/src/base/ftinit.c b/freetype/src/base/ftinit.c
index 85f321fd2..b9dd96881 100644
--- a/freetype/src/base/ftinit.c
+++ b/freetype/src/base/ftinit.c
@@ -39,8 +39,8 @@
#include <ft2build.h>
#include FT_CONFIG_CONFIG_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftdebug.h>
#include FT_MODULE_H
#include "basepic.h"
diff --git a/freetype/src/base/ftlcdfil.c b/freetype/src/base/ftlcdfil.c
index 852fb3298..17ef9c9bd 100644
--- a/freetype/src/base/ftlcdfil.c
+++ b/freetype/src/base/ftlcdfil.c
@@ -21,7 +21,7 @@
#include FT_LCD_FILTER_H
#include FT_IMAGE_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#ifdef FT_CONFIG_OPTION_SUBPIXEL_RENDERING
diff --git a/freetype/src/base/ftmac.c b/freetype/src/base/ftmac.c
index 5b5aae61c..9d193b4fa 100644
--- a/freetype/src/base/ftmac.c
+++ b/freetype/src/base/ftmac.c
@@ -68,7 +68,7 @@
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_TRUETYPE_TAGS_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftstream.h>
#include "ftbase.h"
/* This is for Mac OS X. Without redefinition, OS_INLINE */
diff --git a/freetype/src/base/ftmm.c b/freetype/src/base/ftmm.c
index 18ff879bf..14ed98e47 100644
--- a/freetype/src/base/ftmm.c
+++ b/freetype/src/base/ftmm.c
@@ -20,7 +20,7 @@
#include FT_INTERNAL_DEBUG_H
#include FT_MULTIPLE_MASTERS_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include FT_SERVICE_MULTIPLE_MASTERS_H
diff --git a/freetype/src/base/ftobjs.c b/freetype/src/base/ftobjs.c
index 157bf4563..07b3b2f58 100644
--- a/freetype/src/base/ftobjs.c
+++ b/freetype/src/base/ftobjs.c
@@ -19,12 +19,12 @@
#include <ft2build.h>
#include FT_LIST_H
#include FT_OUTLINE_H
-#include FT_INTERNAL_VALIDATE_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_RFORK_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_SFNT_H /* for SFNT_Load_Table_Func */
+#include <freetype/internal/ftvalid.h>
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftrfork.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/sfnt.h> /* for SFNT_Load_Table_Func */
#include FT_TRUETYPE_TABLES_H
#include FT_TRUETYPE_TAGS_H
#include FT_TRUETYPE_IDS_H
diff --git a/freetype/src/base/ftotval.c b/freetype/src/base/ftotval.c
index 5fc73d76a..01fb4ea76 100644
--- a/freetype/src/base/ftotval.c
+++ b/freetype/src/base/ftotval.c
@@ -16,9 +16,8 @@
/***************************************************************************/
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftobjs.h>
#include FT_SERVICE_OPENTYPE_VALIDATE_H
#include FT_OPENTYPE_VALIDATE_H
diff --git a/freetype/src/base/ftoutln.c b/freetype/src/base/ftoutln.c
index 54ca5cdcf..b8f709d6b 100644
--- a/freetype/src/base/ftoutln.c
+++ b/freetype/src/base/ftoutln.c
@@ -25,10 +25,10 @@
#include <ft2build.h>
#include FT_OUTLINE_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_CALC_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_TRIGONOMETRY_H
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftcalc.h>
+#include <freetype/internal/ftdebug.h>
+#include <freetype/fttrigon.h>
/*************************************************************************/
diff --git a/freetype/src/base/ftpatent.c b/freetype/src/base/ftpatent.c
index 82b42f034..feae6660d 100644
--- a/freetype/src/base/ftpatent.c
+++ b/freetype/src/base/ftpatent.c
@@ -18,8 +18,8 @@
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_TRUETYPE_TAGS_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftstream.h>
#include FT_SERVICE_SFNT_H
#include FT_SERVICE_TRUETYPE_GLYF_H
diff --git a/freetype/src/base/ftpfr.c b/freetype/src/base/ftpfr.c
index 0ba955f01..7387e08c6 100644
--- a/freetype/src/base/ftpfr.c
+++ b/freetype/src/base/ftpfr.c
@@ -16,10 +16,9 @@
/***************************************************************************/
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-
-#include FT_INTERNAL_OBJECTS_H
-#include FT_SERVICE_PFR_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/services/svpfr.h>
/* check the format */
diff --git a/freetype/src/base/ftpic.c b/freetype/src/base/ftpic.c
index b74e90dad..7780c8a92 100644
--- a/freetype/src/base/ftpic.c
+++ b/freetype/src/base/ftpic.c
@@ -18,7 +18,7 @@
#include <ft2build.h>
#include FT_FREETYPE_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include "basepic.h"
#ifdef FT_CONFIG_OPTION_PIC
diff --git a/freetype/src/base/ftrfork.c b/freetype/src/base/ftrfork.c
index 804911721..16f81e62a 100644
--- a/freetype/src/base/ftrfork.c
+++ b/freetype/src/base/ftrfork.c
@@ -25,9 +25,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_RFORK_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/ftrfork.h>
#include "basepic.h"
#undef FT_COMPONENT
diff --git a/freetype/src/base/ftsnames.c b/freetype/src/base/ftsnames.c
index 260e91c14..26fa35c5a 100644
--- a/freetype/src/base/ftsnames.c
+++ b/freetype/src/base/ftsnames.c
@@ -21,8 +21,8 @@
#include <ft2build.h>
#include FT_SFNT_NAMES_H
-#include FT_INTERNAL_TRUETYPE_TYPES_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/tttypes.h>
+#include <freetype/internal/ftstream.h>
#ifdef TT_CONFIG_OPTION_SFNT_NAMES
diff --git a/freetype/src/base/ftstream.c b/freetype/src/base/ftstream.c
index d965333da..39b5c1e7f 100644
--- a/freetype/src/base/ftstream.c
+++ b/freetype/src/base/ftstream.c
@@ -17,8 +17,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/ftdebug.h>
/*************************************************************************/
diff --git a/freetype/src/base/ftstroke.c b/freetype/src/base/ftstroke.c
index ee61ceca0..2f7db791a 100644
--- a/freetype/src/base/ftstroke.c
+++ b/freetype/src/base/ftstroke.c
@@ -20,9 +20,9 @@
#include FT_STROKER_H
#include FT_TRIGONOMETRY_H
#include FT_OUTLINE_H
-#include FT_INTERNAL_MEMORY_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftmemory.h>
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftobjs.h>
/* documentation is in ftstroke.h */
diff --git a/freetype/src/base/ftsynth.c b/freetype/src/base/ftsynth.c
index 241d37f42..a25280d0c 100644
--- a/freetype/src/base/ftsynth.c
+++ b/freetype/src/base/ftsynth.c
@@ -17,11 +17,11 @@
#include <ft2build.h>
-#include FT_SYNTHESIS_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_OUTLINE_H
-#include FT_BITMAP_H
+#include <freetype/ftsynth.h>
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftdebug.h>
+#include <freetype/ftoutln.h>
+#include <freetype/ftbitmap.h>
/*************************************************************************/
diff --git a/freetype/src/base/ftsystem.c b/freetype/src/base/ftsystem.c
index 2c6ddac10..6d6cb7b2e 100644
--- a/freetype/src/base/ftsystem.c
+++ b/freetype/src/base/ftsystem.c
@@ -27,8 +27,8 @@
#include <ft2build.h>
#include FT_CONFIG_CONFIG_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
#include FT_SYSTEM_H
#include FT_ERRORS_H
#include FT_TYPES_H
diff --git a/freetype/src/base/fttrigon.c b/freetype/src/base/fttrigon.c
index 4ffdcb77f..a5c7efc01 100644
--- a/freetype/src/base/fttrigon.c
+++ b/freetype/src/base/fttrigon.c
@@ -30,7 +30,7 @@
/*************************************************************************/
#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include FT_INTERNAL_CALC_H
#include FT_TRIGONOMETRY_H
diff --git a/freetype/src/base/fttype1.c b/freetype/src/base/fttype1.c
index c1f9931db..db48b135e 100644
--- a/freetype/src/base/fttype1.c
+++ b/freetype/src/base/fttype1.c
@@ -17,9 +17,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_SERVICE_H
-#include FT_SERVICE_POSTSCRIPT_INFO_H
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftserv.h>
+#include <freetype/internal/services/svpsinfo.h>
/* documentation is in t1tables.h */
diff --git a/freetype/src/base/ftutil.c b/freetype/src/base/ftutil.c
index 879d02752..042077f5a 100644
--- a/freetype/src/base/ftutil.c
+++ b/freetype/src/base/ftutil.c
@@ -17,9 +17,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_MEMORY_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftmemory.h>
+#include <freetype/internal/ftobjs.h>
#include FT_LIST_H
diff --git a/freetype/src/base/ftwinfnt.c b/freetype/src/base/ftwinfnt.c
index 463ae761d..c5ae97e1a 100644
--- a/freetype/src/base/ftwinfnt.c
+++ b/freetype/src/base/ftwinfnt.c
@@ -18,7 +18,7 @@
#include <ft2build.h>
#include FT_WINFONTS_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include FT_SERVICE_WINFNT_H
diff --git a/freetype/src/base/ftxf86.c b/freetype/src/base/ftxf86.c
index a4bf767df..680f57637 100644
--- a/freetype/src/base/ftxf86.c
+++ b/freetype/src/base/ftxf86.c
@@ -18,7 +18,7 @@
#include <ft2build.h>
#include FT_XFREE86_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include FT_SERVICE_XFREE86_NAME_H
diff --git a/freetype/src/bdf/bdf.h b/freetype/src/bdf/bdf.h
index d11be6f14..7aacb6ed2 100644
--- a/freetype/src/bdf/bdf.h
+++ b/freetype/src/bdf/bdf.h
@@ -31,8 +31,8 @@
*/
#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftstream.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/bdf/bdfdrivr.c b/freetype/src/bdf/bdfdrivr.c
index 0ea0a5ea5..8127168d7 100644
--- a/freetype/src/bdf/bdfdrivr.c
+++ b/freetype/src/bdf/bdfdrivr.c
@@ -26,9 +26,9 @@ THE SOFTWARE.
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/ftobjs.h>
#include FT_BDF_H
#include FT_TRUETYPE_IDS_H
diff --git a/freetype/src/bdf/bdfdrivr.h b/freetype/src/bdf/bdfdrivr.h
index ca0dae50d..41047e707 100644
--- a/freetype/src/bdf/bdfdrivr.h
+++ b/freetype/src/bdf/bdfdrivr.h
@@ -29,7 +29,7 @@ THE SOFTWARE.
#define __BDFDRIVR_H__
#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
+#include <freetype/internal/ftdriver.h>
#include "bdf.h"
diff --git a/freetype/src/bdf/bdflib.c b/freetype/src/bdf/bdflib.c
index 0b8412d9e..73e145461 100644
--- a/freetype/src/bdf/bdflib.c
+++ b/freetype/src/bdf/bdflib.c
@@ -34,9 +34,9 @@
#include <ft2build.h>
#include FT_FREETYPE_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/ftobjs.h>
#include "bdf.h"
#include "bdferror.h"
diff --git a/freetype/src/cache/ftcbasic.c b/freetype/src/cache/ftcbasic.c
index 84d336d5d..880dba9da 100644
--- a/freetype/src/cache/ftcbasic.c
+++ b/freetype/src/cache/ftcbasic.c
@@ -17,8 +17,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/objects.h>
+#include <freetype/internal/ftdebug.h>
#include FT_CACHE_H
#include "ftcglyph.h"
#include "ftcimage.h"
diff --git a/freetype/src/cache/ftccache.c b/freetype/src/cache/ftccache.c
index f20dd4502..7fa211522 100644
--- a/freetype/src/cache/ftccache.c
+++ b/freetype/src/cache/ftccache.c
@@ -18,8 +18,8 @@
#include <ft2build.h>
#include "ftcmanag.h"
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftdebug.h>
#include "ftccback.h"
#include "ftcerror.h"
diff --git a/freetype/src/cache/ftccmap.c b/freetype/src/cache/ftccmap.c
index 848349be2..903853522 100644
--- a/freetype/src/cache/ftccmap.c
+++ b/freetype/src/cache/ftccmap.c
@@ -20,9 +20,9 @@
#include FT_FREETYPE_H
#include FT_CACHE_H
#include "ftcmanag.h"
-#include FT_INTERNAL_MEMORY_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftmemory.h>
+#include <freetype/internal/objects.h>
+#include <freetype/internal/ftdebug.h>
#include "ftccback.h"
#include "ftcerror.h"
diff --git a/freetype/src/cache/ftcimage.c b/freetype/src/cache/ftcimage.c
index c242ece02..26984fa7c 100644
--- a/freetype/src/cache/ftcimage.c
+++ b/freetype/src/cache/ftcimage.c
@@ -19,7 +19,7 @@
#include <ft2build.h>
#include FT_CACHE_H
#include "ftcimage.h"
-#include FT_INTERNAL_MEMORY_H
+#include <freetype/internal/ftmemory.h>
#include "ftccback.h"
#include "ftcerror.h"
diff --git a/freetype/src/cache/ftcmanag.c b/freetype/src/cache/ftcmanag.c
index 4eb2c5bfd..1df1775f2 100644
--- a/freetype/src/cache/ftcmanag.c
+++ b/freetype/src/cache/ftcmanag.c
@@ -19,8 +19,8 @@
#include <ft2build.h>
#include FT_CACHE_H
#include "ftcmanag.h"
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftdebug.h>
#include FT_SIZES_H
#include "ftccback.h"
diff --git a/freetype/src/cache/ftcmru.c b/freetype/src/cache/ftcmru.c
index dc8b4cc39..57783a618 100644
--- a/freetype/src/cache/ftcmru.c
+++ b/freetype/src/cache/ftcmru.c
@@ -19,8 +19,8 @@
#include <ft2build.h>
#include FT_CACHE_H
#include "ftcmru.h"
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftdebug.h>
#include "ftcerror.h"
diff --git a/freetype/src/cache/ftcmru.h b/freetype/src/cache/ftcmru.h
index 6fccf1178..4af7c4d2d 100644
--- a/freetype/src/cache/ftcmru.h
+++ b/freetype/src/cache/ftcmru.h
@@ -45,7 +45,7 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#ifdef FREETYPE_H
#error "freetype.h of FreeType 1 has been loaded!"
diff --git a/freetype/src/cache/ftcsbits.c b/freetype/src/cache/ftcsbits.c
index 6df1c1993..86d1965ad 100644
--- a/freetype/src/cache/ftcsbits.c
+++ b/freetype/src/cache/ftcsbits.c
@@ -19,8 +19,8 @@
#include <ft2build.h>
#include FT_CACHE_H
#include "ftcsbits.h"
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftdebug.h>
#include FT_ERRORS_H
#include "ftccback.h"
diff --git a/freetype/src/cff/cffdrivr.c b/freetype/src/cff/cffdrivr.c
index c8ca96ba4..fd9472947 100644
--- a/freetype/src/cff/cffdrivr.c
+++ b/freetype/src/cff/cffdrivr.c
@@ -17,12 +17,12 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_SFNT_H
-#include FT_SERVICE_CID_H
-#include FT_SERVICE_POSTSCRIPT_INFO_H
+#include <freetype/freetype.h>
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/sfnt.h>
+#include <freetype/internal/services/svcid.h>
+#include <freetype/internal/services/svpsinfo.h>
#include FT_SERVICE_POSTSCRIPT_NAME_H
#include FT_SERVICE_TT_CMAP_H
diff --git a/freetype/src/cff/cffdrivr.h b/freetype/src/cff/cffdrivr.h
index 50e813870..3fefafc04 100644
--- a/freetype/src/cff/cffdrivr.h
+++ b/freetype/src/cff/cffdrivr.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
+#include <freetype/internal/ftdriver.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/cff/cffgload.c b/freetype/src/cff/cffgload.c
index 6a8494fa9..23a6adf45 100644
--- a/freetype/src/cff/cffgload.c
+++ b/freetype/src/cff/cffgload.c
@@ -17,9 +17,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_SFNT_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/sfnt.h>
#include FT_OUTLINE_H
#include FT_CFF_DRIVER_H
diff --git a/freetype/src/cff/cffgload.h b/freetype/src/cff/cffgload.h
index 41df7db69..abeff9b92 100644
--- a/freetype/src/cff/cffgload.h
+++ b/freetype/src/cff/cffgload.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
#include "cffobjs.h"
diff --git a/freetype/src/cff/cffload.c b/freetype/src/cff/cffload.c
index 64b497168..78f0b44ff 100644
--- a/freetype/src/cff/cffload.c
+++ b/freetype/src/cff/cffload.c
@@ -17,11 +17,11 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_STREAM_H
-#include FT_TRUETYPE_TAGS_H
-#include FT_TYPE1_TABLES_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/tttags.h>
+#include <freetype/t1tables.h>
#include "cffload.h"
#include "cffparse.h"
diff --git a/freetype/src/cff/cffobjs.c b/freetype/src/cff/cffobjs.c
index dd750d104..e7dad2bd7 100644
--- a/freetype/src/cff/cffobjs.c
+++ b/freetype/src/cff/cffobjs.c
@@ -17,15 +17,14 @@
#include <ft2build.h>
-
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_CALC_H
-#include FT_INTERNAL_STREAM_H
-#include FT_ERRORS_H
-#include FT_TRUETYPE_IDS_H
-#include FT_TRUETYPE_TAGS_H
-#include FT_INTERNAL_SFNT_H
-#include FT_CFF_DRIVER_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftcalc.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/fterrors.h>
+#include <freetype/ttnameid.h>
+#include <freetype/tttags.h>
+#include <freetype/internal/sfnt.h>
+#include <freetype/ftcffdrv.h>
#include "cffobjs.h"
#include "cffload.h"
diff --git a/freetype/src/cff/cffobjs.h b/freetype/src/cff/cffobjs.h
index b375c20c7..0a2de733f 100644
--- a/freetype/src/cff/cffobjs.h
+++ b/freetype/src/cff/cffobjs.h
@@ -21,11 +21,11 @@
#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include "cfftypes.h"
-#include FT_INTERNAL_TRUETYPE_TYPES_H
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-#include FT_INTERNAL_POSTSCRIPT_HINTS_H
+#include <freetype/internal/tttypes.h>
+#include <freetype/internal/services/svpscmap.h>
+#include <freetype/internal/pshints.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/cff/cffparse.c b/freetype/src/cff/cffparse.c
index 96222120b..fad920315 100644
--- a/freetype/src/cff/cffparse.c
+++ b/freetype/src/cff/cffparse.c
@@ -18,8 +18,8 @@
#include <ft2build.h>
#include "cffparse.h"
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/ftdebug.h>
#include "cfferrs.h"
#include "cffpic.h"
diff --git a/freetype/src/cff/cffparse.h b/freetype/src/cff/cffparse.h
index 61d91ed2e..80f27b726 100644
--- a/freetype/src/cff/cffparse.h
+++ b/freetype/src/cff/cffparse.h
@@ -22,7 +22,7 @@
#include <ft2build.h>
#include "cfftypes.h"
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/cff/cffpic.c b/freetype/src/cff/cffpic.c
index f22e4f0d5..71c32747a 100644
--- a/freetype/src/cff/cffpic.c
+++ b/freetype/src/cff/cffpic.c
@@ -18,7 +18,7 @@
#include <ft2build.h>
#include FT_FREETYPE_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include "cffcmap.h"
#include "cffpic.h"
#include "cfferrs.h"
diff --git a/freetype/src/cff/cffpic.h b/freetype/src/cff/cffpic.h
index 50bab4c17..b936e2ea5 100644
--- a/freetype/src/cff/cffpic.h
+++ b/freetype/src/cff/cffpic.h
@@ -22,7 +22,7 @@
FT_BEGIN_HEADER
-#include FT_INTERNAL_PIC_H
+#include <freetype/internal/ftpic.h>
#ifndef FT_CONFIG_OPTION_PIC
diff --git a/freetype/src/cff/cfftypes.h b/freetype/src/cff/cfftypes.h
index 872744666..f53837abe 100644
--- a/freetype/src/cff/cfftypes.h
+++ b/freetype/src/cff/cfftypes.h
@@ -22,11 +22,11 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_TYPE1_TABLES_H
-#include FT_INTERNAL_SERVICE_H
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-#include FT_INTERNAL_POSTSCRIPT_HINTS_H
+#include <freetype/freetype.h>
+#include <freetype/t1tables.h>
+#include <freetype/internal/ftserv.h>
+#include <freetype/internal/services/svpscmap.h>
+#include <freetype/internal/pshints.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/cid/cidgload.c b/freetype/src/cid/cidgload.c
index a1a865869..559ec0bd3 100644
--- a/freetype/src/cid/cidgload.c
+++ b/freetype/src/cid/cidgload.c
@@ -19,10 +19,10 @@
#include <ft2build.h>
#include "cidload.h"
#include "cidgload.h"
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
#include FT_OUTLINE_H
-#include FT_INTERNAL_CALC_H
+#include <freetype/internal/ftcalc.h>
#include "ciderrs.h"
diff --git a/freetype/src/cid/cidload.c b/freetype/src/cid/cidload.c
index f2a18ea51..44646a764 100644
--- a/freetype/src/cid/cidload.c
+++ b/freetype/src/cid/cidload.c
@@ -17,10 +17,10 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftdebug.h>
#include FT_CONFIG_CONFIG_H
#include FT_MULTIPLE_MASTERS_H
-#include FT_INTERNAL_TYPE1_TYPES_H
+#include <freetype/internal/t1types.h>
#include "cidload.h"
diff --git a/freetype/src/cid/cidload.h b/freetype/src/cid/cidload.h
index 8c172ffee..8bada7f8c 100644
--- a/freetype/src/cid/cidload.h
+++ b/freetype/src/cid/cidload.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftstream.h>
#include "cidparse.h"
diff --git a/freetype/src/cid/cidobjs.c b/freetype/src/cid/cidobjs.c
index 46555e2dc..145d62998 100644
--- a/freetype/src/cid/cidobjs.c
+++ b/freetype/src/cid/cidobjs.c
@@ -17,15 +17,15 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
#include "cidgload.h"
#include "cidload.h"
#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
-#include FT_INTERNAL_POSTSCRIPT_HINTS_H
+#include <freetype/internal/psaux.h>
+#include <freetype/internal/pshints.h>
#include "ciderrs.h"
diff --git a/freetype/src/cid/cidobjs.h b/freetype/src/cid/cidobjs.h
index aee346d1c..b297d6fb4 100644
--- a/freetype/src/cid/cidobjs.h
+++ b/freetype/src/cid/cidobjs.h
@@ -21,9 +21,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include FT_CONFIG_CONFIG_H
-#include FT_INTERNAL_TYPE1_TYPES_H
+#include <freetype/internal/t1types.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/cid/cidparse.c b/freetype/src/cid/cidparse.c
index 53df3155d..4f595dd64 100644
--- a/freetype/src/cid/cidparse.c
+++ b/freetype/src/cid/cidparse.c
@@ -17,9 +17,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftstream.h>
#include "cidparse.h"
diff --git a/freetype/src/cid/cidparse.h b/freetype/src/cid/cidparse.h
index ca37deab9..f25e652bc 100644
--- a/freetype/src/cid/cidparse.h
+++ b/freetype/src/cid/cidparse.h
@@ -21,9 +21,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_TYPE1_TYPES_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
+#include <freetype/internal/t1types.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/psaux.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/cid/cidriver.c b/freetype/src/cid/cidriver.c
index 6132a2776..7f912cd94 100644
--- a/freetype/src/cid/cidriver.c
+++ b/freetype/src/cid/cidriver.c
@@ -19,13 +19,13 @@
#include <ft2build.h>
#include "cidriver.h"
#include "cidgload.h"
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftdebug.h>
#include "ciderrs.h"
#include FT_SERVICE_POSTSCRIPT_NAME_H
#include FT_SERVICE_XFREE86_NAME_H
-#include FT_SERVICE_POSTSCRIPT_INFO_H
+#include <freetype/internal/services/svpsinfo.h>
#include FT_SERVICE_CID_H
diff --git a/freetype/src/cid/cidriver.h b/freetype/src/cid/cidriver.h
index 3c45e0688..ebc200e0a 100644
--- a/freetype/src/cid/cidriver.h
+++ b/freetype/src/cid/cidriver.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
+#include <freetype/internal/ftdriver.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/gxvalid/gxvalid.h b/freetype/src/gxvalid/gxvalid.h
index 27be9ecca..fb7d10e9d 100644
--- a/freetype/src/gxvalid/gxvalid.h
+++ b/freetype/src/gxvalid/gxvalid.h
@@ -28,12 +28,12 @@
#define __GXVALID_H__
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
-#include "gxverror.h" /* must come before FT_INTERNAL_VALIDATE_H */
+#include "gxverror.h" /* must come before <freetype/internal/ftvalid.h> */
-#include FT_INTERNAL_VALIDATE_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftvalid.h>
+#include <freetype/internal/ftstream.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/gxvalid/gxvcommn.h b/freetype/src/gxvalid/gxvcommn.h
index 1ff87e442..f7d368822 100644
--- a/freetype/src/gxvalid/gxvcommn.h
+++ b/freetype/src/gxvalid/gxvcommn.h
@@ -45,7 +45,7 @@
#include <ft2build.h>
#include "gxvalid.h"
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftdebug.h>
#include FT_SFNT_NAMES_H
diff --git a/freetype/src/gxvalid/gxvmod.c b/freetype/src/gxvalid/gxvmod.c
index 278d47688..7d5cbae48 100644
--- a/freetype/src/gxvalid/gxvmod.c
+++ b/freetype/src/gxvalid/gxvmod.c
@@ -29,7 +29,7 @@
#include FT_TRUETYPE_TABLES_H
#include FT_TRUETYPE_TAGS_H
#include FT_GX_VALIDATE_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include FT_SERVICE_GX_VALIDATE_H
#include "gxvmod.h"
diff --git a/freetype/src/gzip/ftgzip.c b/freetype/src/gzip/ftgzip.c
index f26755834..4ae3fa77f 100644
--- a/freetype/src/gzip/ftgzip.c
+++ b/freetype/src/gzip/ftgzip.c
@@ -21,9 +21,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_MEMORY_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftmemory.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/ftdebug.h>
#include FT_GZIP_H
#include FT_CONFIG_STANDARD_LIBRARY_H
diff --git a/freetype/src/lzw/ftlzw.c b/freetype/src/lzw/ftlzw.c
index 82e6c0070..d0c28f65d 100644
--- a/freetype/src/lzw/ftlzw.c
+++ b/freetype/src/lzw/ftlzw.c
@@ -23,9 +23,9 @@
/***************************************************************************/
#include <ft2build.h>
-#include FT_INTERNAL_MEMORY_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftmemory.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/ftdebug.h>
#include FT_LZW_H
#include FT_CONFIG_STANDARD_LIBRARY_H
diff --git a/freetype/src/lzw/ftzopen.c b/freetype/src/lzw/ftzopen.c
index d7a64576b..15a70778e 100644
--- a/freetype/src/lzw/ftzopen.c
+++ b/freetype/src/lzw/ftzopen.c
@@ -19,9 +19,9 @@
/***************************************************************************/
#include "ftzopen.h"
-#include FT_INTERNAL_MEMORY_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftmemory.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/ftdebug.h>
static int
diff --git a/freetype/src/lzw/ftzopen.h b/freetype/src/lzw/ftzopen.h
index f7d2936be..34b37fd6b 100644
--- a/freetype/src/lzw/ftzopen.h
+++ b/freetype/src/lzw/ftzopen.h
@@ -22,7 +22,7 @@
#define __FT_ZOPEN_H__
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
/*
diff --git a/freetype/src/otvalid/otvalid.h b/freetype/src/otvalid/otvalid.h
index eb99b9cc4..c560034bf 100644
--- a/freetype/src/otvalid/otvalid.h
+++ b/freetype/src/otvalid/otvalid.h
@@ -21,12 +21,12 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
+#include <freetype/freetype.h>
-#include "otverror.h" /* must come before FT_INTERNAL_VALIDATE_H */
+#include "otverror.h" /* must come before <freetype/internal/ftvalid.h> */
-#include FT_INTERNAL_VALIDATE_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftvalid.h>
+#include <freetype/internal/ftstream.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/otvalid/otvcommn.h b/freetype/src/otvalid/otvcommn.h
index 898887fc9..7c861edb5 100644
--- a/freetype/src/otvalid/otvcommn.h
+++ b/freetype/src/otvalid/otvcommn.h
@@ -22,7 +22,7 @@
#include <ft2build.h>
#include "otvalid.h"
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftdebug.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/otvalid/otvmod.c b/freetype/src/otvalid/otvmod.c
index 37c6e869d..933e5f54a 100644
--- a/freetype/src/otvalid/otvmod.c
+++ b/freetype/src/otvalid/otvmod.c
@@ -20,7 +20,7 @@
#include FT_TRUETYPE_TABLES_H
#include FT_TRUETYPE_TAGS_H
#include FT_OPENTYPE_VALIDATE_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include FT_SERVICE_OPENTYPE_VALIDATE_H
#include "otvmod.h"
diff --git a/freetype/src/pcf/pcf.h b/freetype/src/pcf/pcf.h
index af0ffc337..78549020b 100644
--- a/freetype/src/pcf/pcf.h
+++ b/freetype/src/pcf/pcf.h
@@ -30,8 +30,8 @@ THE SOFTWARE.
#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftdriver.h>
+#include <freetype/internal/ftstream.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/pcf/pcfdrivr.c b/freetype/src/pcf/pcfdrivr.c
index df25a645a..903d7ee5a 100644
--- a/freetype/src/pcf/pcfdrivr.c
+++ b/freetype/src/pcf/pcfdrivr.c
@@ -27,9 +27,9 @@ THE SOFTWARE.
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/ftobjs.h>
#include FT_GZIP_H
#include FT_LZW_H
#include FT_BZIP2_H
diff --git a/freetype/src/pcf/pcfdrivr.h b/freetype/src/pcf/pcfdrivr.h
index 54614951b..064fddffc 100644
--- a/freetype/src/pcf/pcfdrivr.h
+++ b/freetype/src/pcf/pcfdrivr.h
@@ -29,7 +29,7 @@ THE SOFTWARE.
#define __PCFDRIVR_H__
#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
+#include <freetype/internal/ftdriver.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/pcf/pcfread.c b/freetype/src/pcf/pcfread.c
index 3c1bb7dfa..74b6cc65f 100644
--- a/freetype/src/pcf/pcfread.c
+++ b/freetype/src/pcf/pcfread.c
@@ -27,9 +27,9 @@ THE SOFTWARE.
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/ftobjs.h>
#include "pcf.h"
#include "pcfread.h"
diff --git a/freetype/src/pfr/pfrcmap.h b/freetype/src/pfr/pfrcmap.h
index a62695305..ee357d9f7 100644
--- a/freetype/src/pfr/pfrcmap.h
+++ b/freetype/src/pfr/pfrcmap.h
@@ -20,7 +20,7 @@
#define __PFRCMAP_H__
#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include "pfrtypes.h"
diff --git a/freetype/src/pfr/pfrdrivr.c b/freetype/src/pfr/pfrdrivr.c
index 4c43947bf..8e2959e76 100644
--- a/freetype/src/pfr/pfrdrivr.c
+++ b/freetype/src/pfr/pfrdrivr.c
@@ -17,8 +17,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
#include FT_SERVICE_PFR_H
#include FT_SERVICE_XFREE86_NAME_H
#include "pfrdrivr.h"
diff --git a/freetype/src/pfr/pfrdrivr.h b/freetype/src/pfr/pfrdrivr.h
index 75f86c5cd..dece491b0 100644
--- a/freetype/src/pfr/pfrdrivr.h
+++ b/freetype/src/pfr/pfrdrivr.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
+#include <freetype/internal/ftdriver.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/pfr/pfrgload.c b/freetype/src/pfr/pfrgload.c
index 88b4d66a1..7b067ea16 100644
--- a/freetype/src/pfr/pfrgload.c
+++ b/freetype/src/pfr/pfrgload.c
@@ -19,7 +19,7 @@
#include "pfrgload.h"
#include "pfrsbit.h"
#include "pfrload.h" /* for macro definitions */
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftdebug.h>
#include "pfrerror.h"
diff --git a/freetype/src/pfr/pfrload.c b/freetype/src/pfr/pfrload.c
index c19fceb1e..58a1506fa 100644
--- a/freetype/src/pfr/pfrload.c
+++ b/freetype/src/pfr/pfrload.c
@@ -17,8 +17,8 @@
#include "pfrload.h"
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
#include "pfrerror.h"
diff --git a/freetype/src/pfr/pfrload.h b/freetype/src/pfr/pfrload.h
index ed010715d..ee1ae5b32 100644
--- a/freetype/src/pfr/pfrload.h
+++ b/freetype/src/pfr/pfrload.h
@@ -20,7 +20,7 @@
#define __PFRLOAD_H__
#include "pfrobjs.h"
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftstream.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/pfr/pfrobjs.c b/freetype/src/pfr/pfrobjs.c
index 75fc4c3f1..bfa4a3af2 100644
--- a/freetype/src/pfr/pfrobjs.c
+++ b/freetype/src/pfr/pfrobjs.c
@@ -22,7 +22,7 @@
#include "pfrcmap.h"
#include "pfrsbit.h"
#include FT_OUTLINE_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftdebug.h>
#include FT_TRUETYPE_IDS_H
#include "pfrerror.h"
diff --git a/freetype/src/pfr/pfrsbit.c b/freetype/src/pfr/pfrsbit.c
index 2da150070..6761bad9f 100644
--- a/freetype/src/pfr/pfrsbit.c
+++ b/freetype/src/pfr/pfrsbit.c
@@ -18,8 +18,8 @@
#include "pfrsbit.h"
#include "pfrload.h"
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
#include "pfrerror.h"
diff --git a/freetype/src/pfr/pfrtypes.h b/freetype/src/pfr/pfrtypes.h
index 918310814..49dc5c413 100644
--- a/freetype/src/pfr/pfrtypes.h
+++ b/freetype/src/pfr/pfrtypes.h
@@ -20,7 +20,7 @@
#define __PFRTYPES_H__
#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/psaux/afmparse.c b/freetype/src/psaux/afmparse.c
index 6a40e110d..0d63e39e5 100644
--- a/freetype/src/psaux/afmparse.c
+++ b/freetype/src/psaux/afmparse.c
@@ -17,8 +17,8 @@
#include <ft2build.h>
#include FT_FREETYPE_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/psaux.h>
#include "afmparse.h"
#include "psconv.h"
diff --git a/freetype/src/psaux/afmparse.h b/freetype/src/psaux/afmparse.h
index 35d96046c..55e4f7c47 100644
--- a/freetype/src/psaux/afmparse.h
+++ b/freetype/src/psaux/afmparse.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
+#include <freetype/internal/psaux.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/psaux/psconv.c b/freetype/src/psaux/psconv.c
index d0d8861c2..b73b724e8 100644
--- a/freetype/src/psaux/psconv.c
+++ b/freetype/src/psaux/psconv.c
@@ -17,8 +17,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/psaux.h>
+#include <freetype/internal/ftdebug.h>
#include "psconv.h"
#include "psauxerr.h"
diff --git a/freetype/src/psaux/psconv.h b/freetype/src/psaux/psconv.h
index d91c76221..913ff00f6 100644
--- a/freetype/src/psaux/psconv.h
+++ b/freetype/src/psaux/psconv.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
+#include <freetype/internal/psaux.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/psaux/psobjs.c b/freetype/src/psaux/psobjs.c
index dd976d3a9..5c292e1eb 100644
--- a/freetype/src/psaux/psobjs.c
+++ b/freetype/src/psaux/psobjs.c
@@ -17,9 +17,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_CALC_H
+#include <freetype/internal/psaux.h>
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftcalc.h>
#include "psobjs.h"
#include "psconv.h"
diff --git a/freetype/src/psaux/psobjs.h b/freetype/src/psaux/psobjs.h
index e380c60da..ab270ed6b 100644
--- a/freetype/src/psaux/psobjs.h
+++ b/freetype/src/psaux/psobjs.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
+#include <freetype/internal/psaux.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/psaux/t1cmap.c b/freetype/src/psaux/t1cmap.c
index 9e5bd34ff..6d8f232a9 100644
--- a/freetype/src/psaux/t1cmap.c
+++ b/freetype/src/psaux/t1cmap.c
@@ -18,7 +18,7 @@
#include "t1cmap.h"
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftdebug.h>
#include "psauxerr.h"
diff --git a/freetype/src/psaux/t1cmap.h b/freetype/src/psaux/t1cmap.h
index 7ae65d2fa..9f495f8b5 100644
--- a/freetype/src/psaux/t1cmap.h
+++ b/freetype/src/psaux/t1cmap.h
@@ -20,8 +20,8 @@
#define __T1CMAP_H__
#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_TYPE1_TYPES_H
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/t1types.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/psaux/t1decode.c b/freetype/src/psaux/t1decode.c
index 6ce370bfa..539258380 100644
--- a/freetype/src/psaux/t1decode.c
+++ b/freetype/src/psaux/t1decode.c
@@ -17,9 +17,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_CALC_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_POSTSCRIPT_HINTS_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/pshints.h>
+#include <freetype/internal/ftcalc.h>
#include FT_OUTLINE_H
#include "t1decode.h"
diff --git a/freetype/src/psaux/t1decode.h b/freetype/src/psaux/t1decode.h
index 00728db50..64241136f 100644
--- a/freetype/src/psaux/t1decode.h
+++ b/freetype/src/psaux/t1decode.h
@@ -21,8 +21,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
-#include FT_INTERNAL_TYPE1_TYPES_H
+#include <freetype/internal/psaux.h>
+#include <freetype/internal/t1types.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/pshinter/pshalgo.c b/freetype/src/pshinter/pshalgo.c
index 343472ddb..9a37ec351 100644
--- a/freetype/src/pshinter/pshalgo.c
+++ b/freetype/src/pshinter/pshalgo.c
@@ -17,9 +17,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_CALC_H
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftcalc.h>
#include "pshalgo.h"
#include "pshnterr.h"
diff --git a/freetype/src/pshinter/pshglob.c b/freetype/src/pshinter/pshglob.c
index 9285efc9e..b3e224203 100644
--- a/freetype/src/pshinter/pshglob.c
+++ b/freetype/src/pshinter/pshglob.c
@@ -19,7 +19,7 @@
#include <ft2build.h>
#include FT_FREETYPE_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include "pshglob.h"
#ifdef DEBUG_HINTER
diff --git a/freetype/src/pshinter/pshglob.h b/freetype/src/pshinter/pshglob.h
index c51162615..34592049e 100644
--- a/freetype/src/pshinter/pshglob.h
+++ b/freetype/src/pshinter/pshglob.h
@@ -20,8 +20,8 @@
#define __PSHGLOB_H__
-#include FT_FREETYPE_H
-#include FT_INTERNAL_POSTSCRIPT_HINTS_H
+#include <freetype/freetype.h>
+#include <freetype/internal/pshints.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/pshinter/pshmod.c b/freetype/src/pshinter/pshmod.c
index cdeaca18c..762d4aa16 100644
--- a/freetype/src/pshinter/pshmod.c
+++ b/freetype/src/pshinter/pshmod.c
@@ -17,7 +17,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include "pshrec.h"
#include "pshalgo.h"
#include "pshpic.h"
diff --git a/freetype/src/pshinter/pshpic.c b/freetype/src/pshinter/pshpic.c
index 568f4ac4b..765a5d3aa 100644
--- a/freetype/src/pshinter/pshpic.c
+++ b/freetype/src/pshinter/pshpic.c
@@ -18,7 +18,7 @@
#include <ft2build.h>
#include FT_FREETYPE_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include "pshpic.h"
#include "pshnterr.h"
diff --git a/freetype/src/pshinter/pshpic.h b/freetype/src/pshinter/pshpic.h
index b46f85311..bc7501581 100644
--- a/freetype/src/pshinter/pshpic.h
+++ b/freetype/src/pshinter/pshpic.h
@@ -22,7 +22,7 @@
FT_BEGIN_HEADER
-#include FT_INTERNAL_PIC_H
+#include <freetype/internal/ftpic.h>
#ifndef FT_CONFIG_OPTION_PIC
diff --git a/freetype/src/pshinter/pshrec.c b/freetype/src/pshinter/pshrec.c
index cd66ea869..107837cf8 100644
--- a/freetype/src/pshinter/pshrec.c
+++ b/freetype/src/pshinter/pshrec.c
@@ -18,9 +18,9 @@
#include <ft2build.h>
#include FT_FREETYPE_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_CALC_H
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftcalc.h>
#include "pshrec.h"
#include "pshalgo.h"
diff --git a/freetype/src/pshinter/pshrec.h b/freetype/src/pshinter/pshrec.h
index dcb3197f9..ed464eba0 100644
--- a/freetype/src/pshinter/pshrec.h
+++ b/freetype/src/pshinter/pshrec.h
@@ -33,7 +33,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_POSTSCRIPT_HINTS_H
+#include <freetype/internal/pshints.h>
#include "pshglob.h"
diff --git a/freetype/src/psnames/psmodule.c b/freetype/src/psnames/psmodule.c
index 0a5bcb7d2..c05398b87 100644
--- a/freetype/src/psnames/psmodule.c
+++ b/freetype/src/psnames/psmodule.c
@@ -17,9 +17,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/services/svpscmap.h>
#include "psmodule.h"
#include "pstables.h"
diff --git a/freetype/src/psnames/pspic.c b/freetype/src/psnames/pspic.c
index 3820f65a7..2b3d381b0 100644
--- a/freetype/src/psnames/pspic.c
+++ b/freetype/src/psnames/pspic.c
@@ -18,7 +18,7 @@
#include <ft2build.h>
#include FT_FREETYPE_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include "pspic.h"
#include "psnamerr.h"
diff --git a/freetype/src/psnames/pspic.h b/freetype/src/psnames/pspic.h
index 6ff002c60..3cbc93db1 100644
--- a/freetype/src/psnames/pspic.h
+++ b/freetype/src/psnames/pspic.h
@@ -22,7 +22,7 @@
FT_BEGIN_HEADER
-#include FT_INTERNAL_PIC_H
+#include <freetype/internal/ftpic.h>
#ifndef FT_CONFIG_OPTION_PIC
diff --git a/freetype/src/raster/ftraster.c b/freetype/src/raster/ftraster.c
index bbd503d97..cd442d69c 100644
--- a/freetype/src/raster/ftraster.c
+++ b/freetype/src/raster/ftraster.c
@@ -60,7 +60,7 @@
#include <ft2build.h>
#include "ftraster.h"
-#include FT_INTERNAL_CALC_H /* for FT_MulDiv and FT_MulDiv_No_Round */
+#include <freetype/internal/ftcalc.h> /* for FT_MulDiv and FT_MulDiv_No_Round */
#include "rastpic.h"
@@ -230,8 +230,8 @@
#else /* !_STANDALONE_ */
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H /* for FT_TRACE, FT_ERROR, and FT_THROW */
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftdebug.h> /* for FT_TRACE, FT_ERROR, and FT_THROW */
#include "rasterrs.h"
diff --git a/freetype/src/raster/ftrend1.c b/freetype/src/raster/ftrend1.c
index aa7f6d566..4ce184348 100644
--- a/freetype/src/raster/ftrend1.c
+++ b/freetype/src/raster/ftrend1.c
@@ -17,8 +17,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftobjs.h>
#include FT_OUTLINE_H
#include "ftrend1.h"
#include "ftraster.h"
diff --git a/freetype/src/raster/ftrend1.h b/freetype/src/raster/ftrend1.h
index 4cf128622..f8c48f1f7 100644
--- a/freetype/src/raster/ftrend1.h
+++ b/freetype/src/raster/ftrend1.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_RENDER_H
+#include <freetype/ftrender.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/raster/rastpic.c b/freetype/src/raster/rastpic.c
index 5e9f7cc9c..17a1e2741 100644
--- a/freetype/src/raster/rastpic.c
+++ b/freetype/src/raster/rastpic.c
@@ -18,7 +18,7 @@
#include <ft2build.h>
#include FT_FREETYPE_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include "rastpic.h"
#include "rasterrs.h"
diff --git a/freetype/src/raster/rastpic.h b/freetype/src/raster/rastpic.h
index e0ddba624..ff7df7367 100644
--- a/freetype/src/raster/rastpic.h
+++ b/freetype/src/raster/rastpic.h
@@ -22,7 +22,7 @@
FT_BEGIN_HEADER
-#include FT_INTERNAL_PIC_H
+#include <freetype/internal/ftpic.h>
#ifndef FT_CONFIG_OPTION_PIC
diff --git a/freetype/src/sfnt/sfdriver.c b/freetype/src/sfnt/sfdriver.c
index a368b8cae..4ff80ca83 100644
--- a/freetype/src/sfnt/sfdriver.c
+++ b/freetype/src/sfnt/sfdriver.c
@@ -17,9 +17,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_SFNT_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/sfnt.h>
+#include <freetype/internal/ftobjs.h>
#include "sfdriver.h"
#include "ttload.h"
diff --git a/freetype/src/sfnt/sfntpic.c b/freetype/src/sfnt/sfntpic.c
index b3fb24b3f..80d9547f9 100644
--- a/freetype/src/sfnt/sfntpic.c
+++ b/freetype/src/sfnt/sfntpic.c
@@ -18,7 +18,7 @@
#include <ft2build.h>
#include FT_FREETYPE_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include "sfntpic.h"
#include "sferrors.h"
diff --git a/freetype/src/sfnt/sfntpic.h b/freetype/src/sfnt/sfntpic.h
index 35d0f449f..e107b924b 100644
--- a/freetype/src/sfnt/sfntpic.h
+++ b/freetype/src/sfnt/sfntpic.h
@@ -22,7 +22,7 @@
FT_BEGIN_HEADER
-#include FT_INTERNAL_PIC_H
+#include <freetype/internal/ftpic.h>
#ifndef FT_CONFIG_OPTION_PIC
@@ -50,8 +50,8 @@ FT_BEGIN_HEADER
#include FT_SERVICE_BDF_H
#endif
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
#include FT_INTERNAL_SFNT_H
#include "ttcmap.h"
diff --git a/freetype/src/sfnt/sfobjs.c b/freetype/src/sfnt/sfobjs.c
index f975e71c3..9280d39f1 100644
--- a/freetype/src/sfnt/sfobjs.c
+++ b/freetype/src/sfnt/sfobjs.c
@@ -21,8 +21,8 @@
#include "ttload.h"
#include "ttcmap.h"
#include "ttkern.h"
-#include FT_INTERNAL_SFNT_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/sfnt.h>
+#include <freetype/internal/ftdebug.h>
#include FT_TRUETYPE_IDS_H
#include FT_TRUETYPE_TAGS_H
#include FT_SERVICE_POSTSCRIPT_CMAPS_H
diff --git a/freetype/src/sfnt/sfobjs.h b/freetype/src/sfnt/sfobjs.h
index 6241c93b3..97bd8efdb 100644
--- a/freetype/src/sfnt/sfobjs.h
+++ b/freetype/src/sfnt/sfobjs.h
@@ -21,8 +21,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_SFNT_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/sfnt.h>
+#include <freetype/internal/ftobjs.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/sfnt/ttbdf.c b/freetype/src/sfnt/ttbdf.c
index 9401dae5f..9851fb1af 100644
--- a/freetype/src/sfnt/ttbdf.c
+++ b/freetype/src/sfnt/ttbdf.c
@@ -17,8 +17,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
#include FT_TRUETYPE_TAGS_H
#include "ttbdf.h"
diff --git a/freetype/src/sfnt/ttcmap.c b/freetype/src/sfnt/ttcmap.c
index 1507202ea..e5434d285 100644
--- a/freetype/src/sfnt/ttcmap.c
+++ b/freetype/src/sfnt/ttcmap.c
@@ -17,12 +17,12 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftdebug.h>
-#include "sferrors.h" /* must come before FT_INTERNAL_VALIDATE_H */
+#include "sferrors.h" /* must come before <freetype/internal/ftvalid.h> */
-#include FT_INTERNAL_VALIDATE_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftvalid.h>
+#include <freetype/internal/ftstream.h>
#include "ttload.h"
#include "ttcmap.h"
#include "sfntpic.h"
diff --git a/freetype/src/sfnt/ttcmap.h b/freetype/src/sfnt/ttcmap.h
index 0fde1676b..87aadc31c 100644
--- a/freetype/src/sfnt/ttcmap.h
+++ b/freetype/src/sfnt/ttcmap.h
@@ -21,8 +21,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_TRUETYPE_TYPES_H
-#include FT_INTERNAL_VALIDATE_H
+#include <freetype/internal/tttypes.h>
+#include <freetype/internal/ftvalid.h>
#include FT_SERVICE_TT_CMAP_H
FT_BEGIN_HEADER
diff --git a/freetype/src/sfnt/ttkern.c b/freetype/src/sfnt/ttkern.c
index 60ee546d7..b90c28e6a 100644
--- a/freetype/src/sfnt/ttkern.c
+++ b/freetype/src/sfnt/ttkern.c
@@ -18,8 +18,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
#include FT_TRUETYPE_TAGS_H
#include "ttkern.h"
diff --git a/freetype/src/sfnt/ttkern.h b/freetype/src/sfnt/ttkern.h
index df1da9b27..39b51fc35 100644
--- a/freetype/src/sfnt/ttkern.h
+++ b/freetype/src/sfnt/ttkern.h
@@ -22,8 +22,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_TRUETYPE_TYPES_H
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/tttypes.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/sfnt/ttload.c b/freetype/src/sfnt/ttload.c
index fbe70f797..9c2a35d68 100644
--- a/freetype/src/sfnt/ttload.c
+++ b/freetype/src/sfnt/ttload.c
@@ -18,8 +18,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
#include FT_TRUETYPE_TAGS_H
#include "ttload.h"
diff --git a/freetype/src/sfnt/ttload.h b/freetype/src/sfnt/ttload.h
index 49a1aee16..186e9ec90 100644
--- a/freetype/src/sfnt/ttload.h
+++ b/freetype/src/sfnt/ttload.h
@@ -22,8 +22,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_TRUETYPE_TYPES_H
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/tttypes.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/sfnt/ttmtx.c b/freetype/src/sfnt/ttmtx.c
index 371a9edab..2101fb7c6 100644
--- a/freetype/src/sfnt/ttmtx.c
+++ b/freetype/src/sfnt/ttmtx.c
@@ -17,8 +17,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
#include FT_TRUETYPE_TAGS_H
#include "ttmtx.h"
diff --git a/freetype/src/sfnt/ttmtx.h b/freetype/src/sfnt/ttmtx.h
index 8b91a113d..b045458ee 100644
--- a/freetype/src/sfnt/ttmtx.h
+++ b/freetype/src/sfnt/ttmtx.h
@@ -21,8 +21,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_TRUETYPE_TYPES_H
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/tttypes.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/sfnt/ttpost.c b/freetype/src/sfnt/ttpost.c
index 47a85c0c9..73792aed4 100644
--- a/freetype/src/sfnt/ttpost.c
+++ b/freetype/src/sfnt/ttpost.c
@@ -26,9 +26,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_TRUETYPE_TAGS_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/tttags.h>
#include "ttpost.h"
#include "sferrors.h"
diff --git a/freetype/src/sfnt/ttpost.h b/freetype/src/sfnt/ttpost.h
index 6f06d75a7..965928cce 100644
--- a/freetype/src/sfnt/ttpost.h
+++ b/freetype/src/sfnt/ttpost.h
@@ -23,7 +23,7 @@
#include <ft2build.h>
#include FT_CONFIG_CONFIG_H
-#include FT_INTERNAL_TRUETYPE_TYPES_H
+#include <freetype/internal/tttypes.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/sfnt/ttsbit.c b/freetype/src/sfnt/ttsbit.c
index cd3e5a4a0..a5e65e2ad 100644
--- a/freetype/src/sfnt/ttsbit.c
+++ b/freetype/src/sfnt/ttsbit.c
@@ -20,10 +20,10 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_TRUETYPE_TAGS_H
-#include FT_BITMAP_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/tttags.h>
+#include <freetype/ftbitmap.h>
#include "ttsbit.h"
#include "sferrors.h"
diff --git a/freetype/src/smooth/ftgrays.c b/freetype/src/smooth/ftgrays.c
index 7532a3582..b0ede7630 100644
--- a/freetype/src/smooth/ftgrays.c
+++ b/freetype/src/smooth/ftgrays.c
@@ -236,8 +236,8 @@ typedef ptrdiff_t FT_PtrDist;
#include <ft2build.h>
#include "ftgrays.h"
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftdebug.h>
#include FT_OUTLINE_H
#include "ftsmerrs.h"
diff --git a/freetype/src/smooth/ftsmooth.c b/freetype/src/smooth/ftsmooth.c
index 89088cd09..a42b85fdc 100644
--- a/freetype/src/smooth/ftsmooth.c
+++ b/freetype/src/smooth/ftsmooth.c
@@ -17,8 +17,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include FT_OUTLINE_H
#include "ftsmooth.h"
#include "ftgrays.h"
diff --git a/freetype/src/smooth/ftsmooth.h b/freetype/src/smooth/ftsmooth.h
index 3708790df..0b182efc3 100644
--- a/freetype/src/smooth/ftsmooth.h
+++ b/freetype/src/smooth/ftsmooth.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_RENDER_H
+#include <freetype/ftrender.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/smooth/ftspic.c b/freetype/src/smooth/ftspic.c
index 67a2b8310..c39bf72be 100644
--- a/freetype/src/smooth/ftspic.c
+++ b/freetype/src/smooth/ftspic.c
@@ -18,7 +18,7 @@
#include <ft2build.h>
#include FT_FREETYPE_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include "ftspic.h"
#include "ftsmerrs.h"
diff --git a/freetype/src/smooth/ftspic.h b/freetype/src/smooth/ftspic.h
index 334b51c3f..b31064751 100644
--- a/freetype/src/smooth/ftspic.h
+++ b/freetype/src/smooth/ftspic.h
@@ -22,7 +22,7 @@
FT_BEGIN_HEADER
-#include FT_INTERNAL_PIC_H
+#include <freetype/internal/ftpic.h>
#ifndef FT_CONFIG_OPTION_PIC
diff --git a/freetype/src/tools/test_afm.c b/freetype/src/tools/test_afm.c
index 24cd0c4f0..ead5e90c4 100644
--- a/freetype/src/tools/test_afm.c
+++ b/freetype/src/tools/test_afm.c
@@ -4,8 +4,8 @@
*/
#include <ft2build.h>
#include FT_FREETYPE_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/psaux.h>
void dump_fontinfo( AFM_FontInfo fi )
{
diff --git a/freetype/src/truetype/ttdriver.c b/freetype/src/truetype/ttdriver.c
index fb25706ab..9610baf1b 100644
--- a/freetype/src/truetype/ttdriver.c
+++ b/freetype/src/truetype/ttdriver.c
@@ -17,9 +17,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_SFNT_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/sfnt.h>
#include FT_SERVICE_XFREE86_NAME_H
#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
diff --git a/freetype/src/truetype/ttdriver.h b/freetype/src/truetype/ttdriver.h
index aae00f261..59c100aa5 100644
--- a/freetype/src/truetype/ttdriver.h
+++ b/freetype/src/truetype/ttdriver.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
+#include <freetype/internal/ftdriver.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/truetype/ttgload.c b/freetype/src/truetype/ttgload.c
index f640a6c78..dbb5abdc9 100644
--- a/freetype/src/truetype/ttgload.c
+++ b/freetype/src/truetype/ttgload.c
@@ -17,10 +17,10 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_CALC_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_SFNT_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftcalc.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/sfnt.h>
#include FT_TRUETYPE_TAGS_H
#include FT_OUTLINE_H
#include FT_TRUETYPE_DRIVER_H
diff --git a/freetype/src/truetype/ttgxvar.c b/freetype/src/truetype/ttgxvar.c
index 7899d3671..b05b199c3 100644
--- a/freetype/src/truetype/ttgxvar.c
+++ b/freetype/src/truetype/ttgxvar.c
@@ -44,10 +44,10 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftdebug.h>
#include FT_CONFIG_CONFIG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_SFNT_H
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/sfnt.h>
#include FT_TRUETYPE_TAGS_H
#include FT_MULTIPLE_MASTERS_H
diff --git a/freetype/src/truetype/ttinterp.c b/freetype/src/truetype/ttinterp.c
index e7ffb987c..b97db8c57 100644
--- a/freetype/src/truetype/ttinterp.c
+++ b/freetype/src/truetype/ttinterp.c
@@ -21,8 +21,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_CALC_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftcalc.h>
#include FT_TRIGONOMETRY_H
#include FT_SYSTEM_H
#include FT_TRUETYPE_DRIVER_H
diff --git a/freetype/src/truetype/ttobjs.c b/freetype/src/truetype/ttobjs.c
index 7897efa77..a3d43bf7d 100644
--- a/freetype/src/truetype/ttobjs.c
+++ b/freetype/src/truetype/ttobjs.c
@@ -17,10 +17,10 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
#include FT_TRUETYPE_TAGS_H
-#include FT_INTERNAL_SFNT_H
+#include <freetype/internal/sfnt.h>
#include FT_TRUETYPE_DRIVER_H
#include "ttgload.h"
diff --git a/freetype/src/truetype/ttobjs.h b/freetype/src/truetype/ttobjs.h
index a11dd3752..9dd4ddb8d 100644
--- a/freetype/src/truetype/ttobjs.h
+++ b/freetype/src/truetype/ttobjs.h
@@ -21,8 +21,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_TRUETYPE_TYPES_H
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/tttypes.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/truetype/ttpic.c b/freetype/src/truetype/ttpic.c
index edefae72c..55e5ba4e2 100644
--- a/freetype/src/truetype/ttpic.c
+++ b/freetype/src/truetype/ttpic.c
@@ -18,7 +18,7 @@
#include <ft2build.h>
#include FT_FREETYPE_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include "ttpic.h"
#include "tterrors.h"
diff --git a/freetype/src/truetype/ttpload.c b/freetype/src/truetype/ttpload.c
index 9723a515b..0c47253d8 100644
--- a/freetype/src/truetype/ttpload.c
+++ b/freetype/src/truetype/ttpload.c
@@ -17,9 +17,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftstream.h>
#include FT_TRUETYPE_TAGS_H
#include "ttpload.h"
diff --git a/freetype/src/truetype/ttpload.h b/freetype/src/truetype/ttpload.h
index f61ac079c..9be60eec3 100644
--- a/freetype/src/truetype/ttpload.h
+++ b/freetype/src/truetype/ttpload.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_TRUETYPE_TYPES_H
+#include <freetype/internal/tttypes.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/truetype/ttsubpix.c b/freetype/src/truetype/ttsubpix.c
index 28470ad65..b235eed6b 100644
--- a/freetype/src/truetype/ttsubpix.c
+++ b/freetype/src/truetype/ttsubpix.c
@@ -16,12 +16,12 @@
/***************************************************************************/
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_CALC_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_SFNT_H
-#include FT_TRUETYPE_TAGS_H
-#include FT_OUTLINE_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftcalc.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/sfnt.h>
+#include <freetype/tttags.h>
+#include <freetype/ftoutln.h>
#include FT_TRUETYPE_DRIVER_H
#include "ttsubpix.h"
diff --git a/freetype/src/type1/t1afm.c b/freetype/src/type1/t1afm.c
index de9c1997c..de0707184 100644
--- a/freetype/src/type1/t1afm.c
+++ b/freetype/src/type1/t1afm.c
@@ -19,8 +19,8 @@
#include <ft2build.h>
#include "t1afm.h"
#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/psaux.h>
#include "t1errors.h"
diff --git a/freetype/src/type1/t1afm.h b/freetype/src/type1/t1afm.h
index 8eb1764de..befb3b10e 100644
--- a/freetype/src/type1/t1afm.h
+++ b/freetype/src/type1/t1afm.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
#include "t1objs.h"
-#include FT_INTERNAL_TYPE1_TYPES_H
+#include <freetype/internal/t1types.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/type1/t1driver.c b/freetype/src/type1/t1driver.c
index 697288d66..1f0e9ded4 100644
--- a/freetype/src/type1/t1driver.c
+++ b/freetype/src/type1/t1driver.c
@@ -27,15 +27,15 @@
#include "t1afm.h"
#endif
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
#include FT_SERVICE_MULTIPLE_MASTERS_H
#include FT_SERVICE_GLYPH_DICT_H
#include FT_SERVICE_XFREE86_NAME_H
#include FT_SERVICE_POSTSCRIPT_NAME_H
#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-#include FT_SERVICE_POSTSCRIPT_INFO_H
+#include <freetype/internal/services/svpsinfo.h>
#include FT_SERVICE_KERNING_H
diff --git a/freetype/src/type1/t1driver.h b/freetype/src/type1/t1driver.h
index 639cd4a7a..e23a140c7 100644
--- a/freetype/src/type1/t1driver.h
+++ b/freetype/src/type1/t1driver.h
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
+#include <freetype/internal/ftdriver.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/type1/t1gload.c b/freetype/src/type1/t1gload.c
index 23478d128..1f3ae18c7 100644
--- a/freetype/src/type1/t1gload.c
+++ b/freetype/src/type1/t1gload.c
@@ -18,11 +18,11 @@
#include <ft2build.h>
#include "t1gload.h"
-#include FT_INTERNAL_CALC_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftcalc.h>
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
#include FT_OUTLINE_H
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
+#include <freetype/internal/psaux.h>
#include "t1errors.h"
diff --git a/freetype/src/type1/t1load.c b/freetype/src/type1/t1load.c
index 1c834a17b..fff575a5c 100644
--- a/freetype/src/type1/t1load.c
+++ b/freetype/src/type1/t1load.c
@@ -61,11 +61,11 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftdebug.h>
#include FT_CONFIG_CONFIG_H
#include FT_MULTIPLE_MASTERS_H
-#include FT_INTERNAL_TYPE1_TYPES_H
-#include FT_INTERNAL_CALC_H
+#include <freetype/internal/t1types.h>
+#include <freetype/internal/ftcalc.h>
#include "t1load.h"
#include "t1errors.h"
diff --git a/freetype/src/type1/t1load.h b/freetype/src/type1/t1load.h
index 546fc3353..ed0cf3894 100644
--- a/freetype/src/type1/t1load.h
+++ b/freetype/src/type1/t1load.h
@@ -21,8 +21,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/psaux.h>
#include FT_MULTIPLE_MASTERS_H
#include "t1parse.h"
diff --git a/freetype/src/type1/t1objs.c b/freetype/src/type1/t1objs.c
index 837b7911d..8cb552e3a 100644
--- a/freetype/src/type1/t1objs.c
+++ b/freetype/src/type1/t1objs.c
@@ -17,9 +17,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_CALC_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/ftcalc.h>
#include FT_TRUETYPE_IDS_H
#include "t1gload.h"
@@ -32,7 +32,7 @@
#endif
#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
+#include <freetype/internal/psaux.h>
/*************************************************************************/
diff --git a/freetype/src/type1/t1objs.h b/freetype/src/type1/t1objs.h
index 54ccbb996..abba30d58 100644
--- a/freetype/src/type1/t1objs.h
+++ b/freetype/src/type1/t1objs.h
@@ -21,9 +21,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftobjs.h>
#include FT_CONFIG_CONFIG_H
-#include FT_INTERNAL_TYPE1_TYPES_H
+#include <freetype/internal/t1types.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/type1/t1parse.c b/freetype/src/type1/t1parse.c
index 106e4e7ec..a53fb9089 100644
--- a/freetype/src/type1/t1parse.c
+++ b/freetype/src/type1/t1parse.c
@@ -34,9 +34,9 @@
#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/psaux.h>
#include "t1parse.h"
diff --git a/freetype/src/type1/t1parse.h b/freetype/src/type1/t1parse.h
index fb1c8a883..151f3953f 100644
--- a/freetype/src/type1/t1parse.h
+++ b/freetype/src/type1/t1parse.h
@@ -21,8 +21,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_TYPE1_TYPES_H
-#include FT_INTERNAL_STREAM_H
+#include <freetype/internal/t1types.h>
+#include <freetype/internal/ftstream.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/type42/t42drivr.c b/freetype/src/type42/t42drivr.c
index 3ad1bde79..7782b1da0 100644
--- a/freetype/src/type42/t42drivr.c
+++ b/freetype/src/type42/t42drivr.c
@@ -39,12 +39,12 @@
#include "t42drivr.h"
#include "t42objs.h"
#include "t42error.h"
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftdebug.h>
#include FT_SERVICE_XFREE86_NAME_H
#include FT_SERVICE_GLYPH_DICT_H
#include FT_SERVICE_POSTSCRIPT_NAME_H
-#include FT_SERVICE_POSTSCRIPT_INFO_H
+#include <freetype/internal/services/svpsinfo.h>
#undef FT_COMPONENT
#define FT_COMPONENT trace_t42
diff --git a/freetype/src/type42/t42drivr.h b/freetype/src/type42/t42drivr.h
index 9a1e97e30..1defca7ff 100644
--- a/freetype/src/type42/t42drivr.h
+++ b/freetype/src/type42/t42drivr.h
@@ -20,7 +20,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
+#include <freetype/internal/ftdriver.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/type42/t42objs.c b/freetype/src/type42/t42objs.c
index 18e2c0b62..7f30f4d38 100644
--- a/freetype/src/type42/t42objs.c
+++ b/freetype/src/type42/t42objs.c
@@ -19,7 +19,7 @@
#include "t42objs.h"
#include "t42parse.h"
#include "t42error.h"
-#include FT_INTERNAL_DEBUG_H
+#include <freetype/internal/ftdebug.h>
#include FT_LIST_H
#include FT_TRUETYPE_IDS_H
diff --git a/freetype/src/type42/t42objs.h b/freetype/src/type42/t42objs.h
index 02d13259b..4db189948 100644
--- a/freetype/src/type42/t42objs.h
+++ b/freetype/src/type42/t42objs.h
@@ -19,14 +19,14 @@
#define __T42OBJS_H__
#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_TYPE1_TABLES_H
-#include FT_INTERNAL_TYPE1_TYPES_H
+#include <freetype/freetype.h>
+#include <freetype/t1tables.h>
+#include <freetype/internal/t1types.h>
#include "t42types.h"
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DRIVER_H
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-#include FT_INTERNAL_POSTSCRIPT_HINTS_H
+#include <freetype/internal/ftobjs.h>
+#include <freetype/internal/ftdriver.h>
+#include <freetype/internal/services/svpscmap.h>
+#include <freetype/internal/pshints.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/type42/t42parse.c b/freetype/src/type42/t42parse.c
index 3cdd8a1ac..89564556e 100644
--- a/freetype/src/type42/t42parse.c
+++ b/freetype/src/type42/t42parse.c
@@ -18,9 +18,9 @@
#include "t42parse.h"
#include "t42error.h"
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/psaux.h>
/*************************************************************************/
diff --git a/freetype/src/type42/t42parse.h b/freetype/src/type42/t42parse.h
index f77ec4af4..28c22d0c3 100644
--- a/freetype/src/type42/t42parse.h
+++ b/freetype/src/type42/t42parse.h
@@ -20,7 +20,7 @@
#include "t42objs.h"
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
+#include <freetype/internal/psaux.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/type42/t42types.h b/freetype/src/type42/t42types.h
index c7c2db490..2d930d0b3 100644
--- a/freetype/src/type42/t42types.h
+++ b/freetype/src/type42/t42types.h
@@ -20,10 +20,10 @@
#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_TYPE1_TABLES_H
-#include FT_INTERNAL_TYPE1_TYPES_H
-#include FT_INTERNAL_POSTSCRIPT_HINTS_H
+#include <freetype/freetype.h>
+#include <freetype/t1tables.h>
+#include <freetype/internal/t1types.h>
+#include <freetype/internal/pshints.h>
FT_BEGIN_HEADER
diff --git a/freetype/src/winfonts/winfnt.c b/freetype/src/winfonts/winfnt.c
index e8055c089..36248913b 100644
--- a/freetype/src/winfonts/winfnt.c
+++ b/freetype/src/winfonts/winfnt.c
@@ -20,9 +20,9 @@
#include <ft2build.h>
#include FT_WINFONTS_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_OBJECTS_H
+#include <freetype/internal/ftdebug.h>
+#include <freetype/internal/ftstream.h>
+#include <freetype/internal/ftobjs.h>
#include FT_TRUETYPE_IDS_H
#include "winfnt.h"
diff --git a/freetype/src/winfonts/winfnt.h b/freetype/src/winfonts/winfnt.h
index b7a80736d..c6fec3d50 100644
--- a/freetype/src/winfonts/winfnt.h
+++ b/freetype/src/winfonts/winfnt.h
@@ -22,8 +22,8 @@
#include <ft2build.h>
-#include FT_WINFONTS_H
-#include FT_INTERNAL_DRIVER_H
+#include <freetype/ftwinfnt.h>
+#include <freetype/internal/ftdriver.h>
FT_BEGIN_HEADER
diff --git a/gl/gl_mangle.h b/gl/gl_mangle.h
new file mode 100644
index 000000000..9047ee6ff
--- /dev/null
+++ b/gl/gl_mangle.h
@@ -0,0 +1,2311 @@
+#if 0
+#define GL_MANGLE_C1 "DO NOT EDIT!!! - TO REGENERATE from gl.h, EXECUTE THIS FILE IN SHELL (/bin/sh) and save the output"
+#define GL_MANGLE_C2 "This file is used to create GL function protypes and aliases for the function names"
+ files="gl.h glext.h"
+#define GL_MANGLE_C3 "get regeneration header - copy everything in this file above the 'REGENERATE_TO_END' line"
+ awk '!done; /^\/\*REGENERATE_TO_END/ {done=1}' $0
+ echo ""
+#define GL_MANGLE_C4 get aliases
+ grep '^GLAPI' $files | sed -e 's/.*ENTRY gl\([^( ]*\).*$/#define gl\1 MANGLE(\1)/' | sort | uniq
+ echo ""
+ echo "#endif /* GL_MANGLE_H */"
+ exit
+#endif /* REGENERATION */
+
+/*
+ * If you compile Mesa with USE_MGL_NAMESPACE defined then you can link
+ * your application both with OpenGL and Mesa. The Mesa functions will
+ * be redefined so they are prefixed with "mgl" instead of "gl".
+ * Mgl contributed by Randy Frank (rfrank@rsinc.com)
+ * Regneration code contributed by Ray Tice (rayt@ma.ultra.net)
+ */
+
+#ifndef GL_MANGLE_H
+#define GL_MANGLE_H
+
+#ifndef MANGLE
+#define MANGLE(x) mgl##x
+#endif /*MANGLE*/
+
+/*REGENERATE_TO_END-----------ALL LINES BELOW HERE GET REPLACED ON REGENERATION */
+
+#define glAccum MANGLE(Accum)
+#define glActiveProgramEXT MANGLE(ActiveProgramEXT)
+#define glActiveShaderProgram MANGLE(ActiveShaderProgram)
+#define glActiveStencilFaceEXT MANGLE(ActiveStencilFaceEXT)
+#define glActiveTextureARB MANGLE(ActiveTextureARB)
+#define glActiveTexture MANGLE(ActiveTexture)
+#define glActiveVaryingNV MANGLE(ActiveVaryingNV)
+#define glAlphaFragmentOp1ATI MANGLE(AlphaFragmentOp1ATI)
+#define glAlphaFragmentOp2ATI MANGLE(AlphaFragmentOp2ATI)
+#define glAlphaFragmentOp3ATI MANGLE(AlphaFragmentOp3ATI)
+#define glAlphaFunc MANGLE(AlphaFunc)
+#define glApplyTextureEXT MANGLE(ApplyTextureEXT)
+#define glAreProgramsResidentNV MANGLE(AreProgramsResidentNV)
+#define glAreTexturesResidentEXT MANGLE(AreTexturesResidentEXT)
+#define glAreTexturesResident MANGLE(AreTexturesResident)
+#define glArrayElementEXT MANGLE(ArrayElementEXT)
+#define glArrayElement MANGLE(ArrayElement)
+#define glArrayObjectATI MANGLE(ArrayObjectATI)
+#define glAsyncMarkerSGIX MANGLE(AsyncMarkerSGIX)
+#define glAttachObjectARB MANGLE(AttachObjectARB)
+#define glAttachShader MANGLE(AttachShader)
+#define glBeginConditionalRender MANGLE(BeginConditionalRender)
+#define glBeginConditionalRenderNV MANGLE(BeginConditionalRenderNV)
+#define glBeginFragmentShaderATI MANGLE(BeginFragmentShaderATI)
+#define glBegin MANGLE(Begin)
+#define glBeginOcclusionQueryNV MANGLE(BeginOcclusionQueryNV)
+#define glBeginPerfMonitorAMD MANGLE(BeginPerfMonitorAMD)
+#define glBeginQueryARB MANGLE(BeginQueryARB)
+#define glBeginQueryIndexed MANGLE(BeginQueryIndexed)
+#define glBeginQuery MANGLE(BeginQuery)
+#define glBeginTransformFeedbackEXT MANGLE(BeginTransformFeedbackEXT)
+#define glBeginTransformFeedback MANGLE(BeginTransformFeedback)
+#define glBeginTransformFeedbackNV MANGLE(BeginTransformFeedbackNV)
+#define glBeginVertexShaderEXT MANGLE(BeginVertexShaderEXT)
+#define glBeginVideoCaptureNV MANGLE(BeginVideoCaptureNV)
+#define glBindAttribLocationARB MANGLE(BindAttribLocationARB)
+#define glBindAttribLocation MANGLE(BindAttribLocation)
+#define glBindBufferARB MANGLE(BindBufferARB)
+#define glBindBufferBaseEXT MANGLE(BindBufferBaseEXT)
+#define glBindBufferBase MANGLE(BindBufferBase)
+#define glBindBufferBaseNV MANGLE(BindBufferBaseNV)
+#define glBindBuffer MANGLE(BindBuffer)
+#define glBindBufferOffsetEXT MANGLE(BindBufferOffsetEXT)
+#define glBindBufferOffsetNV MANGLE(BindBufferOffsetNV)
+#define glBindBufferRangeEXT MANGLE(BindBufferRangeEXT)
+#define glBindBufferRange MANGLE(BindBufferRange)
+#define glBindBufferRangeNV MANGLE(BindBufferRangeNV)
+#define glBindFragDataLocationEXT MANGLE(BindFragDataLocationEXT)
+#define glBindFragDataLocationIndexed MANGLE(BindFragDataLocationIndexed)
+#define glBindFragDataLocation MANGLE(BindFragDataLocation)
+#define glBindFragmentShaderATI MANGLE(BindFragmentShaderATI)
+#define glBindFramebufferEXT MANGLE(BindFramebufferEXT)
+#define glBindFramebuffer MANGLE(BindFramebuffer)
+#define glBindImageTextureEXT MANGLE(BindImageTextureEXT)
+#define glBindLightParameterEXT MANGLE(BindLightParameterEXT)
+#define glBindMaterialParameterEXT MANGLE(BindMaterialParameterEXT)
+#define glBindMultiTextureEXT MANGLE(BindMultiTextureEXT)
+#define glBindParameterEXT MANGLE(BindParameterEXT)
+#define glBindProgramARB MANGLE(BindProgramARB)
+#define glBindProgramNV MANGLE(BindProgramNV)
+#define glBindProgramPipeline MANGLE(BindProgramPipeline)
+#define glBindRenderbufferEXT MANGLE(BindRenderbufferEXT)
+#define glBindRenderbuffer MANGLE(BindRenderbuffer)
+#define glBindSampler MANGLE(BindSampler)
+#define glBindTexGenParameterEXT MANGLE(BindTexGenParameterEXT)
+#define glBindTextureEXT MANGLE(BindTextureEXT)
+#define glBindTexture MANGLE(BindTexture)
+#define glBindTextureUnitParameterEXT MANGLE(BindTextureUnitParameterEXT)
+#define glBindTransformFeedback MANGLE(BindTransformFeedback)
+#define glBindTransformFeedbackNV MANGLE(BindTransformFeedbackNV)
+#define glBindVertexArrayAPPLE MANGLE(BindVertexArrayAPPLE)
+#define glBindVertexArray MANGLE(BindVertexArray)
+#define glBindVertexShaderEXT MANGLE(BindVertexShaderEXT)
+#define glBindVideoCaptureStreamBufferNV MANGLE(BindVideoCaptureStreamBufferNV)
+#define glBindVideoCaptureStreamTextureNV MANGLE(BindVideoCaptureStreamTextureNV)
+#define glBinormal3bEXT MANGLE(Binormal3bEXT)
+#define glBinormal3bvEXT MANGLE(Binormal3bvEXT)
+#define glBinormal3dEXT MANGLE(Binormal3dEXT)
+#define glBinormal3dvEXT MANGLE(Binormal3dvEXT)
+#define glBinormal3fEXT MANGLE(Binormal3fEXT)
+#define glBinormal3fvEXT MANGLE(Binormal3fvEXT)
+#define glBinormal3iEXT MANGLE(Binormal3iEXT)
+#define glBinormal3ivEXT MANGLE(Binormal3ivEXT)
+#define glBinormal3sEXT MANGLE(Binormal3sEXT)
+#define glBinormal3svEXT MANGLE(Binormal3svEXT)
+#define glBinormalPointerEXT MANGLE(BinormalPointerEXT)
+#define glBitmap MANGLE(Bitmap)
+#define glBlendColorEXT MANGLE(BlendColorEXT)
+#define glBlendColor MANGLE(BlendColor)
+#define glBlendEquationEXT MANGLE(BlendEquationEXT)
+#define glBlendEquationiARB MANGLE(BlendEquationiARB)
+#define glBlendEquationi MANGLE(BlendEquationi)
+#define glBlendEquationIndexedAMD MANGLE(BlendEquationIndexedAMD)
+#define glBlendEquation MANGLE(BlendEquation)
+#define glBlendEquationSeparateATI MANGLE(BlendEquationSeparateATI)
+#define glBlendEquationSeparateEXT MANGLE(BlendEquationSeparateEXT)
+#define glBlendEquationSeparateiARB MANGLE(BlendEquationSeparateiARB)
+#define glBlendEquationSeparatei MANGLE(BlendEquationSeparatei)
+#define glBlendEquationSeparateIndexedAMD MANGLE(BlendEquationSeparateIndexedAMD)
+#define glBlendEquationSeparate MANGLE(BlendEquationSeparate)
+#define glBlendFunciARB MANGLE(BlendFunciARB)
+#define glBlendFunci MANGLE(BlendFunci)
+#define glBlendFuncIndexedAMD MANGLE(BlendFuncIndexedAMD)
+#define glBlendFunc MANGLE(BlendFunc)
+#define glBlendFuncSeparateEXT MANGLE(BlendFuncSeparateEXT)
+#define glBlendFuncSeparateiARB MANGLE(BlendFuncSeparateiARB)
+#define glBlendFuncSeparatei MANGLE(BlendFuncSeparatei)
+#define glBlendFuncSeparateIndexedAMD MANGLE(BlendFuncSeparateIndexedAMD)
+#define glBlendFuncSeparateINGR MANGLE(BlendFuncSeparateINGR)
+#define glBlendFuncSeparate MANGLE(BlendFuncSeparate)
+#define glBlitFramebufferEXT MANGLE(BlitFramebufferEXT)
+#define glBlitFramebuffer MANGLE(BlitFramebuffer)
+#define glBufferAddressRangeNV MANGLE(BufferAddressRangeNV)
+#define glBufferDataARB MANGLE(BufferDataARB)
+#define glBufferData MANGLE(BufferData)
+#define glBufferParameteriAPPLE MANGLE(BufferParameteriAPPLE)
+#define glBufferSubDataARB MANGLE(BufferSubDataARB)
+#define glBufferSubData MANGLE(BufferSubData)
+#define glCallList MANGLE(CallList)
+#define glCallLists MANGLE(CallLists)
+#define glCheckFramebufferStatusEXT MANGLE(CheckFramebufferStatusEXT)
+#define glCheckFramebufferStatus MANGLE(CheckFramebufferStatus)
+#define glCheckNamedFramebufferStatusEXT MANGLE(CheckNamedFramebufferStatusEXT)
+#define glClampColorARB MANGLE(ClampColorARB)
+#define glClampColor MANGLE(ClampColor)
+#define glClearAccum MANGLE(ClearAccum)
+#define glClearBufferfi MANGLE(ClearBufferfi)
+#define glClearBufferfv MANGLE(ClearBufferfv)
+#define glClearBufferiv MANGLE(ClearBufferiv)
+#define glClearBufferuiv MANGLE(ClearBufferuiv)
+#define glClearColorIiEXT MANGLE(ClearColorIiEXT)
+#define glClearColorIuiEXT MANGLE(ClearColorIuiEXT)
+#define glClearColor MANGLE(ClearColor)
+#define glClearDebugLogMESA MANGLE(ClearDebugLogMESA)
+#define glClearDepthdNV MANGLE(ClearDepthdNV)
+#define glClearDepthf MANGLE(ClearDepthf)
+#define glClearDepth MANGLE(ClearDepth)
+#define glClearIndex MANGLE(ClearIndex)
+#define glClear MANGLE(Clear)
+#define glClearStencil MANGLE(ClearStencil)
+#define glClientActiveTextureARB MANGLE(ClientActiveTextureARB)
+#define glClientActiveTexture MANGLE(ClientActiveTexture)
+#define glClientActiveVertexStreamATI MANGLE(ClientActiveVertexStreamATI)
+#define glClientAttribDefaultEXT MANGLE(ClientAttribDefaultEXT)
+#define glClientWaitSync MANGLE(ClientWaitSync)
+#define glClipPlane MANGLE(ClipPlane)
+#define glColor3b MANGLE(Color3b)
+#define glColor3bv MANGLE(Color3bv)
+#define glColor3d MANGLE(Color3d)
+#define glColor3dv MANGLE(Color3dv)
+#define glColor3f MANGLE(Color3f)
+#define glColor3fVertex3fSUN MANGLE(Color3fVertex3fSUN)
+#define glColor3fVertex3fvSUN MANGLE(Color3fVertex3fvSUN)
+#define glColor3fv MANGLE(Color3fv)
+#define glColor3hNV MANGLE(Color3hNV)
+#define glColor3hvNV MANGLE(Color3hvNV)
+#define glColor3i MANGLE(Color3i)
+#define glColor3iv MANGLE(Color3iv)
+#define glColor3s MANGLE(Color3s)
+#define glColor3sv MANGLE(Color3sv)
+#define glColor3ub MANGLE(Color3ub)
+#define glColor3ubv MANGLE(Color3ubv)
+#define glColor3ui MANGLE(Color3ui)
+#define glColor3uiv MANGLE(Color3uiv)
+#define glColor3us MANGLE(Color3us)
+#define glColor3usv MANGLE(Color3usv)
+#define glColor4b MANGLE(Color4b)
+#define glColor4bv MANGLE(Color4bv)
+#define glColor4d MANGLE(Color4d)
+#define glColor4dv MANGLE(Color4dv)
+#define glColor4f MANGLE(Color4f)
+#define glColor4fNormal3fVertex3fSUN MANGLE(Color4fNormal3fVertex3fSUN)
+#define glColor4fNormal3fVertex3fvSUN MANGLE(Color4fNormal3fVertex3fvSUN)
+#define glColor4fv MANGLE(Color4fv)
+#define glColor4hNV MANGLE(Color4hNV)
+#define glColor4hvNV MANGLE(Color4hvNV)
+#define glColor4i MANGLE(Color4i)
+#define glColor4iv MANGLE(Color4iv)
+#define glColor4s MANGLE(Color4s)
+#define glColor4sv MANGLE(Color4sv)
+#define glColor4ub MANGLE(Color4ub)
+#define glColor4ubVertex2fSUN MANGLE(Color4ubVertex2fSUN)
+#define glColor4ubVertex2fvSUN MANGLE(Color4ubVertex2fvSUN)
+#define glColor4ubVertex3fSUN MANGLE(Color4ubVertex3fSUN)
+#define glColor4ubVertex3fvSUN MANGLE(Color4ubVertex3fvSUN)
+#define glColor4ubv MANGLE(Color4ubv)
+#define glColor4ui MANGLE(Color4ui)
+#define glColor4uiv MANGLE(Color4uiv)
+#define glColor4us MANGLE(Color4us)
+#define glColor4usv MANGLE(Color4usv)
+#define glColorFormatNV MANGLE(ColorFormatNV)
+#define glColorFragmentOp1ATI MANGLE(ColorFragmentOp1ATI)
+#define glColorFragmentOp2ATI MANGLE(ColorFragmentOp2ATI)
+#define glColorFragmentOp3ATI MANGLE(ColorFragmentOp3ATI)
+#define glColorMaski MANGLE(ColorMaski)
+#define glColorMaskIndexedEXT MANGLE(ColorMaskIndexedEXT)
+#define glColorMask MANGLE(ColorMask)
+#define glColorMaterial MANGLE(ColorMaterial)
+#define glColorP3ui MANGLE(ColorP3ui)
+#define glColorP3uiv MANGLE(ColorP3uiv)
+#define glColorP4ui MANGLE(ColorP4ui)
+#define glColorP4uiv MANGLE(ColorP4uiv)
+#define glColorPointerEXT MANGLE(ColorPointerEXT)
+#define glColorPointerListIBM MANGLE(ColorPointerListIBM)
+#define glColorPointer MANGLE(ColorPointer)
+#define glColorPointervINTEL MANGLE(ColorPointervINTEL)
+#define glColorSubTableEXT MANGLE(ColorSubTableEXT)
+#define glColorSubTable MANGLE(ColorSubTable)
+#define glColorTableEXT MANGLE(ColorTableEXT)
+#define glColorTable MANGLE(ColorTable)
+#define glColorTableParameterfv MANGLE(ColorTableParameterfv)
+#define glColorTableParameterfvSGI MANGLE(ColorTableParameterfvSGI)
+#define glColorTableParameteriv MANGLE(ColorTableParameteriv)
+#define glColorTableParameterivSGI MANGLE(ColorTableParameterivSGI)
+#define glColorTableSGI MANGLE(ColorTableSGI)
+#define glCombinerInputNV MANGLE(CombinerInputNV)
+#define glCombinerOutputNV MANGLE(CombinerOutputNV)
+#define glCombinerParameterfNV MANGLE(CombinerParameterfNV)
+#define glCombinerParameterfvNV MANGLE(CombinerParameterfvNV)
+#define glCombinerParameteriNV MANGLE(CombinerParameteriNV)
+#define glCombinerParameterivNV MANGLE(CombinerParameterivNV)
+#define glCombinerStageParameterfvNV MANGLE(CombinerStageParameterfvNV)
+#define glCompileShaderARB MANGLE(CompileShaderARB)
+#define glCompileShaderIncludeARB MANGLE(CompileShaderIncludeARB)
+#define glCompileShader MANGLE(CompileShader)
+#define glCompressedMultiTexImage1DEXT MANGLE(CompressedMultiTexImage1DEXT)
+#define glCompressedMultiTexImage2DEXT MANGLE(CompressedMultiTexImage2DEXT)
+#define glCompressedMultiTexImage3DEXT MANGLE(CompressedMultiTexImage3DEXT)
+#define glCompressedMultiTexSubImage1DEXT MANGLE(CompressedMultiTexSubImage1DEXT)
+#define glCompressedMultiTexSubImage2DEXT MANGLE(CompressedMultiTexSubImage2DEXT)
+#define glCompressedMultiTexSubImage3DEXT MANGLE(CompressedMultiTexSubImage3DEXT)
+#define glCompressedTexImage1DARB MANGLE(CompressedTexImage1DARB)
+#define glCompressedTexImage1D MANGLE(CompressedTexImage1D)
+#define glCompressedTexImage2DARB MANGLE(CompressedTexImage2DARB)
+#define glCompressedTexImage2D MANGLE(CompressedTexImage2D)
+#define glCompressedTexImage3DARB MANGLE(CompressedTexImage3DARB)
+#define glCompressedTexImage3D MANGLE(CompressedTexImage3D)
+#define glCompressedTexSubImage1DARB MANGLE(CompressedTexSubImage1DARB)
+#define glCompressedTexSubImage1D MANGLE(CompressedTexSubImage1D)
+#define glCompressedTexSubImage2DARB MANGLE(CompressedTexSubImage2DARB)
+#define glCompressedTexSubImage2D MANGLE(CompressedTexSubImage2D)
+#define glCompressedTexSubImage3DARB MANGLE(CompressedTexSubImage3DARB)
+#define glCompressedTexSubImage3D MANGLE(CompressedTexSubImage3D)
+#define glCompressedTextureImage1DEXT MANGLE(CompressedTextureImage1DEXT)
+#define glCompressedTextureImage2DEXT MANGLE(CompressedTextureImage2DEXT)
+#define glCompressedTextureImage3DEXT MANGLE(CompressedTextureImage3DEXT)
+#define glCompressedTextureSubImage1DEXT MANGLE(CompressedTextureSubImage1DEXT)
+#define glCompressedTextureSubImage2DEXT MANGLE(CompressedTextureSubImage2DEXT)
+#define glCompressedTextureSubImage3DEXT MANGLE(CompressedTextureSubImage3DEXT)
+#define glConvolutionFilter1DEXT MANGLE(ConvolutionFilter1DEXT)
+#define glConvolutionFilter1D MANGLE(ConvolutionFilter1D)
+#define glConvolutionFilter2DEXT MANGLE(ConvolutionFilter2DEXT)
+#define glConvolutionFilter2D MANGLE(ConvolutionFilter2D)
+#define glConvolutionParameterfEXT MANGLE(ConvolutionParameterfEXT)
+#define glConvolutionParameterf MANGLE(ConvolutionParameterf)
+#define glConvolutionParameterfvEXT MANGLE(ConvolutionParameterfvEXT)
+#define glConvolutionParameterfv MANGLE(ConvolutionParameterfv)
+#define glConvolutionParameteriEXT MANGLE(ConvolutionParameteriEXT)
+#define glConvolutionParameteri MANGLE(ConvolutionParameteri)
+#define glConvolutionParameterivEXT MANGLE(ConvolutionParameterivEXT)
+#define glConvolutionParameteriv MANGLE(ConvolutionParameteriv)
+#define glCopyBufferSubData MANGLE(CopyBufferSubData)
+#define glCopyColorSubTableEXT MANGLE(CopyColorSubTableEXT)
+#define glCopyColorSubTable MANGLE(CopyColorSubTable)
+#define glCopyColorTable MANGLE(CopyColorTable)
+#define glCopyColorTableSGI MANGLE(CopyColorTableSGI)
+#define glCopyConvolutionFilter1DEXT MANGLE(CopyConvolutionFilter1DEXT)
+#define glCopyConvolutionFilter1D MANGLE(CopyConvolutionFilter1D)
+#define glCopyConvolutionFilter2DEXT MANGLE(CopyConvolutionFilter2DEXT)
+#define glCopyConvolutionFilter2D MANGLE(CopyConvolutionFilter2D)
+#define glCopyImageSubDataNV MANGLE(CopyImageSubDataNV)
+#define glCopyMultiTexImage1DEXT MANGLE(CopyMultiTexImage1DEXT)
+#define glCopyMultiTexImage2DEXT MANGLE(CopyMultiTexImage2DEXT)
+#define glCopyMultiTexSubImage1DEXT MANGLE(CopyMultiTexSubImage1DEXT)
+#define glCopyMultiTexSubImage2DEXT MANGLE(CopyMultiTexSubImage2DEXT)
+#define glCopyMultiTexSubImage3DEXT MANGLE(CopyMultiTexSubImage3DEXT)
+#define glCopyPixels MANGLE(CopyPixels)
+#define glCopyTexImage1DEXT MANGLE(CopyTexImage1DEXT)
+#define glCopyTexImage1D MANGLE(CopyTexImage1D)
+#define glCopyTexImage2DEXT MANGLE(CopyTexImage2DEXT)
+#define glCopyTexImage2D MANGLE(CopyTexImage2D)
+#define glCopyTexSubImage1DEXT MANGLE(CopyTexSubImage1DEXT)
+#define glCopyTexSubImage1D MANGLE(CopyTexSubImage1D)
+#define glCopyTexSubImage2DEXT MANGLE(CopyTexSubImage2DEXT)
+#define glCopyTexSubImage2D MANGLE(CopyTexSubImage2D)
+#define glCopyTexSubImage3DEXT MANGLE(CopyTexSubImage3DEXT)
+#define glCopyTexSubImage3D MANGLE(CopyTexSubImage3D)
+#define glCopyTextureImage1DEXT MANGLE(CopyTextureImage1DEXT)
+#define glCopyTextureImage2DEXT MANGLE(CopyTextureImage2DEXT)
+#define glCopyTextureSubImage1DEXT MANGLE(CopyTextureSubImage1DEXT)
+#define glCopyTextureSubImage2DEXT MANGLE(CopyTextureSubImage2DEXT)
+#define glCopyTextureSubImage3DEXT MANGLE(CopyTextureSubImage3DEXT)
+#define glCreateDebugObjectMESA MANGLE(CreateDebugObjectMESA)
+#define glCreateProgram MANGLE(CreateProgram)
+#define glCreateProgramObjectARB MANGLE(CreateProgramObjectARB)
+#define glCreateShader MANGLE(CreateShader)
+#define glCreateShaderObjectARB MANGLE(CreateShaderObjectARB)
+#define glCreateShaderProgramEXT MANGLE(CreateShaderProgramEXT)
+#define glCreateShaderProgramv MANGLE(CreateShaderProgramv)
+#define glCreateSyncFromCLeventARB MANGLE(CreateSyncFromCLeventARB)
+#define glCullFace MANGLE(CullFace)
+#define glCullParameterdvEXT MANGLE(CullParameterdvEXT)
+#define glCullParameterfvEXT MANGLE(CullParameterfvEXT)
+#define glCurrentPaletteMatrixARB MANGLE(CurrentPaletteMatrixARB)
+#define glDebugMessageCallbackAMD MANGLE(DebugMessageCallbackAMD)
+#define glDebugMessageCallbackARB MANGLE(DebugMessageCallbackARB)
+#define glDebugMessageControlARB MANGLE(DebugMessageControlARB)
+#define glDebugMessageEnableAMD MANGLE(DebugMessageEnableAMD)
+#define glDebugMessageInsertAMD MANGLE(DebugMessageInsertAMD)
+#define glDebugMessageInsertARB MANGLE(DebugMessageInsertARB)
+#define glDeformationMap3dSGIX MANGLE(DeformationMap3dSGIX)
+#define glDeformationMap3fSGIX MANGLE(DeformationMap3fSGIX)
+#define glDeformSGIX MANGLE(DeformSGIX)
+#define glDeleteAsyncMarkersSGIX MANGLE(DeleteAsyncMarkersSGIX)
+#define glDeleteBuffersARB MANGLE(DeleteBuffersARB)
+#define glDeleteBuffers MANGLE(DeleteBuffers)
+#define glDeleteFencesAPPLE MANGLE(DeleteFencesAPPLE)
+#define glDeleteFencesNV MANGLE(DeleteFencesNV)
+#define glDeleteFragmentShaderATI MANGLE(DeleteFragmentShaderATI)
+#define glDeleteFramebuffersEXT MANGLE(DeleteFramebuffersEXT)
+#define glDeleteFramebuffers MANGLE(DeleteFramebuffers)
+#define glDeleteLists MANGLE(DeleteLists)
+#define glDeleteNamedStringARB MANGLE(DeleteNamedStringARB)
+#define glDeleteNamesAMD MANGLE(DeleteNamesAMD)
+#define glDeleteObjectARB MANGLE(DeleteObjectARB)
+#define glDeleteOcclusionQueriesNV MANGLE(DeleteOcclusionQueriesNV)
+#define glDeletePerfMonitorsAMD MANGLE(DeletePerfMonitorsAMD)
+#define glDeleteProgram MANGLE(DeleteProgram)
+#define glDeleteProgramPipelines MANGLE(DeleteProgramPipelines)
+#define glDeleteProgramsARB MANGLE(DeleteProgramsARB)
+#define glDeleteProgramsNV MANGLE(DeleteProgramsNV)
+#define glDeleteQueriesARB MANGLE(DeleteQueriesARB)
+#define glDeleteQueries MANGLE(DeleteQueries)
+#define glDeleteRenderbuffersEXT MANGLE(DeleteRenderbuffersEXT)
+#define glDeleteRenderbuffers MANGLE(DeleteRenderbuffers)
+#define glDeleteSamplers MANGLE(DeleteSamplers)
+#define glDeleteShader MANGLE(DeleteShader)
+#define glDeleteSync MANGLE(DeleteSync)
+#define glDeleteTexturesEXT MANGLE(DeleteTexturesEXT)
+#define glDeleteTextures MANGLE(DeleteTextures)
+#define glDeleteTransformFeedbacks MANGLE(DeleteTransformFeedbacks)
+#define glDeleteTransformFeedbacksNV MANGLE(DeleteTransformFeedbacksNV)
+#define glDeleteVertexArraysAPPLE MANGLE(DeleteVertexArraysAPPLE)
+#define glDeleteVertexArrays MANGLE(DeleteVertexArrays)
+#define glDeleteVertexShaderEXT MANGLE(DeleteVertexShaderEXT)
+#define glDepthBoundsdNV MANGLE(DepthBoundsdNV)
+#define glDepthBoundsEXT MANGLE(DepthBoundsEXT)
+#define glDepthFunc MANGLE(DepthFunc)
+#define glDepthMask MANGLE(DepthMask)
+#define glDepthRangeArrayv MANGLE(DepthRangeArrayv)
+#define glDepthRangedNV MANGLE(DepthRangedNV)
+#define glDepthRangef MANGLE(DepthRangef)
+#define glDepthRangeIndexed MANGLE(DepthRangeIndexed)
+#define glDepthRange MANGLE(DepthRange)
+#define glDetachObjectARB MANGLE(DetachObjectARB)
+#define glDetachShader MANGLE(DetachShader)
+#define glDetailTexFuncSGIS MANGLE(DetailTexFuncSGIS)
+#define glDisableClientStateIndexedEXT MANGLE(DisableClientStateIndexedEXT)
+#define glDisableClientState MANGLE(DisableClientState)
+#define glDisablei MANGLE(Disablei)
+#define glDisableIndexedEXT MANGLE(DisableIndexedEXT)
+#define glDisable MANGLE(Disable)
+#define glDisableVariantClientStateEXT MANGLE(DisableVariantClientStateEXT)
+#define glDisableVertexAttribAPPLE MANGLE(DisableVertexAttribAPPLE)
+#define glDisableVertexAttribArrayARB MANGLE(DisableVertexAttribArrayARB)
+#define glDisableVertexAttribArray MANGLE(DisableVertexAttribArray)
+#define glDrawArraysEXT MANGLE(DrawArraysEXT)
+#define glDrawArraysIndirect MANGLE(DrawArraysIndirect)
+#define glDrawArraysInstancedARB MANGLE(DrawArraysInstancedARB)
+#define glDrawArraysInstancedEXT MANGLE(DrawArraysInstancedEXT)
+#define glDrawArraysInstanced MANGLE(DrawArraysInstanced)
+#define glDrawArrays MANGLE(DrawArrays)
+#define glDrawBuffer MANGLE(DrawBuffer)
+#define glDrawBuffersARB MANGLE(DrawBuffersARB)
+#define glDrawBuffersATI MANGLE(DrawBuffersATI)
+#define glDrawBuffers MANGLE(DrawBuffers)
+#define glDrawElementArrayAPPLE MANGLE(DrawElementArrayAPPLE)
+#define glDrawElementArrayATI MANGLE(DrawElementArrayATI)
+#define glDrawElementsBaseVertex MANGLE(DrawElementsBaseVertex)
+#define glDrawElementsIndirect MANGLE(DrawElementsIndirect)
+#define glDrawElementsInstancedARB MANGLE(DrawElementsInstancedARB)
+#define glDrawElementsInstancedBaseVertex MANGLE(DrawElementsInstancedBaseVertex)
+#define glDrawElementsInstancedEXT MANGLE(DrawElementsInstancedEXT)
+#define glDrawElementsInstanced MANGLE(DrawElementsInstanced)
+#define glDrawElements MANGLE(DrawElements)
+#define glDrawMeshArraysSUN MANGLE(DrawMeshArraysSUN)
+#define glDrawPixels MANGLE(DrawPixels)
+#define glDrawRangeElementArrayAPPLE MANGLE(DrawRangeElementArrayAPPLE)
+#define glDrawRangeElementArrayATI MANGLE(DrawRangeElementArrayATI)
+#define glDrawRangeElementsBaseVertex MANGLE(DrawRangeElementsBaseVertex)
+#define glDrawRangeElementsEXT MANGLE(DrawRangeElementsEXT)
+#define glDrawRangeElements MANGLE(DrawRangeElements)
+#define glDrawTransformFeedback MANGLE(DrawTransformFeedback)
+#define glDrawTransformFeedbackNV MANGLE(DrawTransformFeedbackNV)
+#define glDrawTransformFeedbackStream MANGLE(DrawTransformFeedbackStream)
+#define glEdgeFlagFormatNV MANGLE(EdgeFlagFormatNV)
+#define glEdgeFlag MANGLE(EdgeFlag)
+#define glEdgeFlagPointerEXT MANGLE(EdgeFlagPointerEXT)
+#define glEdgeFlagPointerListIBM MANGLE(EdgeFlagPointerListIBM)
+#define glEdgeFlagPointer MANGLE(EdgeFlagPointer)
+#define glEdgeFlagv MANGLE(EdgeFlagv)
+#define glEGLImageTargetRenderbufferStorageOES MANGLE(EGLImageTargetRenderbufferStorageOES)
+#define glEGLImageTargetTexture2DOES MANGLE(EGLImageTargetTexture2DOES)
+#define glElementPointerAPPLE MANGLE(ElementPointerAPPLE)
+#define glElementPointerATI MANGLE(ElementPointerATI)
+#define glEnableClientStateIndexedEXT MANGLE(EnableClientStateIndexedEXT)
+#define glEnableClientState MANGLE(EnableClientState)
+#define glEnablei MANGLE(Enablei)
+#define glEnableIndexedEXT MANGLE(EnableIndexedEXT)
+#define glEnable MANGLE(Enable)
+#define glEnableVariantClientStateEXT MANGLE(EnableVariantClientStateEXT)
+#define glEnableVertexAttribAPPLE MANGLE(EnableVertexAttribAPPLE)
+#define glEnableVertexAttribArrayARB MANGLE(EnableVertexAttribArrayARB)
+#define glEnableVertexAttribArray MANGLE(EnableVertexAttribArray)
+#define glEndConditionalRender MANGLE(EndConditionalRender)
+#define glEndConditionalRenderNV MANGLE(EndConditionalRenderNV)
+#define glEndFragmentShaderATI MANGLE(EndFragmentShaderATI)
+#define glEndList MANGLE(EndList)
+#define glEnd MANGLE(End)
+#define glEndOcclusionQueryNV MANGLE(EndOcclusionQueryNV)
+#define glEndPerfMonitorAMD MANGLE(EndPerfMonitorAMD)
+#define glEndQueryARB MANGLE(EndQueryARB)
+#define glEndQueryIndexed MANGLE(EndQueryIndexed)
+#define glEndQuery MANGLE(EndQuery)
+#define glEndTransformFeedbackEXT MANGLE(EndTransformFeedbackEXT)
+#define glEndTransformFeedback MANGLE(EndTransformFeedback)
+#define glEndTransformFeedbackNV MANGLE(EndTransformFeedbackNV)
+#define glEndVertexShaderEXT MANGLE(EndVertexShaderEXT)
+#define glEndVideoCaptureNV MANGLE(EndVideoCaptureNV)
+#define glEvalCoord1d MANGLE(EvalCoord1d)
+#define glEvalCoord1dv MANGLE(EvalCoord1dv)
+#define glEvalCoord1f MANGLE(EvalCoord1f)
+#define glEvalCoord1fv MANGLE(EvalCoord1fv)
+#define glEvalCoord2d MANGLE(EvalCoord2d)
+#define glEvalCoord2dv MANGLE(EvalCoord2dv)
+#define glEvalCoord2f MANGLE(EvalCoord2f)
+#define glEvalCoord2fv MANGLE(EvalCoord2fv)
+#define glEvalMapsNV MANGLE(EvalMapsNV)
+#define glEvalMesh1 MANGLE(EvalMesh1)
+#define glEvalMesh2 MANGLE(EvalMesh2)
+#define glEvalPoint1 MANGLE(EvalPoint1)
+#define glEvalPoint2 MANGLE(EvalPoint2)
+#define glExecuteProgramNV MANGLE(ExecuteProgramNV)
+#define glExtractComponentEXT MANGLE(ExtractComponentEXT)
+#define glFeedbackBuffer MANGLE(FeedbackBuffer)
+#define glFenceSync MANGLE(FenceSync)
+#define glFinalCombinerInputNV MANGLE(FinalCombinerInputNV)
+#define glFinishAsyncSGIX MANGLE(FinishAsyncSGIX)
+#define glFinishFenceAPPLE MANGLE(FinishFenceAPPLE)
+#define glFinishFenceNV MANGLE(FinishFenceNV)
+#define glFinish MANGLE(Finish)
+#define glFinishObjectAPPLE MANGLE(FinishObjectAPPLE)
+#define glFinishTextureSUNX MANGLE(FinishTextureSUNX)
+#define glFlush MANGLE(Flush)
+#define glFlushMappedBufferRangeAPPLE MANGLE(FlushMappedBufferRangeAPPLE)
+#define glFlushMappedBufferRange MANGLE(FlushMappedBufferRange)
+#define glFlushMappedNamedBufferRangeEXT MANGLE(FlushMappedNamedBufferRangeEXT)
+#define glFlushPixelDataRangeNV MANGLE(FlushPixelDataRangeNV)
+#define glFlushRasterSGIX MANGLE(FlushRasterSGIX)
+#define glFlushVertexArrayRangeAPPLE MANGLE(FlushVertexArrayRangeAPPLE)
+#define glFlushVertexArrayRangeNV MANGLE(FlushVertexArrayRangeNV)
+#define glFogCoorddEXT MANGLE(FogCoorddEXT)
+#define glFogCoordd MANGLE(FogCoordd)
+#define glFogCoorddvEXT MANGLE(FogCoorddvEXT)
+#define glFogCoorddv MANGLE(FogCoorddv)
+#define glFogCoordfEXT MANGLE(FogCoordfEXT)
+#define glFogCoordf MANGLE(FogCoordf)
+#define glFogCoordFormatNV MANGLE(FogCoordFormatNV)
+#define glFogCoordfvEXT MANGLE(FogCoordfvEXT)
+#define glFogCoordfv MANGLE(FogCoordfv)
+#define glFogCoordhNV MANGLE(FogCoordhNV)
+#define glFogCoordhvNV MANGLE(FogCoordhvNV)
+#define glFogCoordPointerEXT MANGLE(FogCoordPointerEXT)
+#define glFogCoordPointerListIBM MANGLE(FogCoordPointerListIBM)
+#define glFogCoordPointer MANGLE(FogCoordPointer)
+#define glFogf MANGLE(Fogf)
+#define glFogFuncSGIS MANGLE(FogFuncSGIS)
+#define glFogfv MANGLE(Fogfv)
+#define glFogi MANGLE(Fogi)
+#define glFogiv MANGLE(Fogiv)
+#define glFragmentColorMaterialSGIX MANGLE(FragmentColorMaterialSGIX)
+#define glFragmentLightfSGIX MANGLE(FragmentLightfSGIX)
+#define glFragmentLightfvSGIX MANGLE(FragmentLightfvSGIX)
+#define glFragmentLightiSGIX MANGLE(FragmentLightiSGIX)
+#define glFragmentLightivSGIX MANGLE(FragmentLightivSGIX)
+#define glFragmentLightModelfSGIX MANGLE(FragmentLightModelfSGIX)
+#define glFragmentLightModelfvSGIX MANGLE(FragmentLightModelfvSGIX)
+#define glFragmentLightModeliSGIX MANGLE(FragmentLightModeliSGIX)
+#define glFragmentLightModelivSGIX MANGLE(FragmentLightModelivSGIX)
+#define glFragmentMaterialfSGIX MANGLE(FragmentMaterialfSGIX)
+#define glFragmentMaterialfvSGIX MANGLE(FragmentMaterialfvSGIX)
+#define glFragmentMaterialiSGIX MANGLE(FragmentMaterialiSGIX)
+#define glFragmentMaterialivSGIX MANGLE(FragmentMaterialivSGIX)
+#define glFramebufferDrawBufferEXT MANGLE(FramebufferDrawBufferEXT)
+#define glFramebufferDrawBuffersEXT MANGLE(FramebufferDrawBuffersEXT)
+#define glFramebufferReadBufferEXT MANGLE(FramebufferReadBufferEXT)
+#define glFramebufferRenderbufferEXT MANGLE(FramebufferRenderbufferEXT)
+#define glFramebufferRenderbuffer MANGLE(FramebufferRenderbuffer)
+#define glFramebufferTexture1DEXT MANGLE(FramebufferTexture1DEXT)
+#define glFramebufferTexture1D MANGLE(FramebufferTexture1D)
+#define glFramebufferTexture2DEXT MANGLE(FramebufferTexture2DEXT)
+#define glFramebufferTexture2D MANGLE(FramebufferTexture2D)
+#define glFramebufferTexture3DEXT MANGLE(FramebufferTexture3DEXT)
+#define glFramebufferTexture3D MANGLE(FramebufferTexture3D)
+#define glFramebufferTextureARB MANGLE(FramebufferTextureARB)
+#define glFramebufferTextureEXT MANGLE(FramebufferTextureEXT)
+#define glFramebufferTextureFaceARB MANGLE(FramebufferTextureFaceARB)
+#define glFramebufferTextureFaceEXT MANGLE(FramebufferTextureFaceEXT)
+#define glFramebufferTextureLayerARB MANGLE(FramebufferTextureLayerARB)
+#define glFramebufferTextureLayerEXT MANGLE(FramebufferTextureLayerEXT)
+#define glFramebufferTextureLayer MANGLE(FramebufferTextureLayer)
+#define glFramebufferTexture MANGLE(FramebufferTexture)
+#define glFrameTerminatorGREMEDY MANGLE(FrameTerminatorGREMEDY)
+#define glFrameZoomSGIX MANGLE(FrameZoomSGIX)
+#define glFreeObjectBufferATI MANGLE(FreeObjectBufferATI)
+#define glFrontFace MANGLE(FrontFace)
+#define glFrustum MANGLE(Frustum)
+#define glGenAsyncMarkersSGIX MANGLE(GenAsyncMarkersSGIX)
+#define glGenBuffersARB MANGLE(GenBuffersARB)
+#define glGenBuffers MANGLE(GenBuffers)
+#define glGenerateMipmapEXT MANGLE(GenerateMipmapEXT)
+#define glGenerateMipmap MANGLE(GenerateMipmap)
+#define glGenerateMultiTexMipmapEXT MANGLE(GenerateMultiTexMipmapEXT)
+#define glGenerateTextureMipmapEXT MANGLE(GenerateTextureMipmapEXT)
+#define glGenFencesAPPLE MANGLE(GenFencesAPPLE)
+#define glGenFencesNV MANGLE(GenFencesNV)
+#define glGenFragmentShadersATI MANGLE(GenFragmentShadersATI)
+#define glGenFramebuffersEXT MANGLE(GenFramebuffersEXT)
+#define glGenFramebuffers MANGLE(GenFramebuffers)
+#define glGenLists MANGLE(GenLists)
+#define glGenNamesAMD MANGLE(GenNamesAMD)
+#define glGenOcclusionQueriesNV MANGLE(GenOcclusionQueriesNV)
+#define glGenPerfMonitorsAMD MANGLE(GenPerfMonitorsAMD)
+#define glGenProgramPipelines MANGLE(GenProgramPipelines)
+#define glGenProgramsARB MANGLE(GenProgramsARB)
+#define glGenProgramsNV MANGLE(GenProgramsNV)
+#define glGenQueriesARB MANGLE(GenQueriesARB)
+#define glGenQueries MANGLE(GenQueries)
+#define glGenRenderbuffersEXT MANGLE(GenRenderbuffersEXT)
+#define glGenRenderbuffers MANGLE(GenRenderbuffers)
+#define glGenSamplers MANGLE(GenSamplers)
+#define glGenSymbolsEXT MANGLE(GenSymbolsEXT)
+#define glGenTexturesEXT MANGLE(GenTexturesEXT)
+#define glGenTextures MANGLE(GenTextures)
+#define glGenTransformFeedbacks MANGLE(GenTransformFeedbacks)
+#define glGenTransformFeedbacksNV MANGLE(GenTransformFeedbacksNV)
+#define glGenVertexArraysAPPLE MANGLE(GenVertexArraysAPPLE)
+#define glGenVertexArrays MANGLE(GenVertexArrays)
+#define glGenVertexShadersEXT MANGLE(GenVertexShadersEXT)
+#define glGetActiveAttribARB MANGLE(GetActiveAttribARB)
+#define glGetActiveAttrib MANGLE(GetActiveAttrib)
+#define glGetActiveSubroutineName MANGLE(GetActiveSubroutineName)
+#define glGetActiveSubroutineUniformiv MANGLE(GetActiveSubroutineUniformiv)
+#define glGetActiveSubroutineUniformName MANGLE(GetActiveSubroutineUniformName)
+#define glGetActiveUniformARB MANGLE(GetActiveUniformARB)
+#define glGetActiveUniformBlockiv MANGLE(GetActiveUniformBlockiv)
+#define glGetActiveUniformBlockName MANGLE(GetActiveUniformBlockName)
+#define glGetActiveUniform MANGLE(GetActiveUniform)
+#define glGetActiveUniformName MANGLE(GetActiveUniformName)
+#define glGetActiveUniformsiv MANGLE(GetActiveUniformsiv)
+#define glGetActiveVaryingNV MANGLE(GetActiveVaryingNV)
+#define glGetArrayObjectfvATI MANGLE(GetArrayObjectfvATI)
+#define glGetArrayObjectivATI MANGLE(GetArrayObjectivATI)
+#define glGetAttachedObjectsARB MANGLE(GetAttachedObjectsARB)
+#define glGetAttachedShaders MANGLE(GetAttachedShaders)
+#define glGetAttribLocationARB MANGLE(GetAttribLocationARB)
+#define glGetAttribLocation MANGLE(GetAttribLocation)
+#define glGetBooleanIndexedvEXT MANGLE(GetBooleanIndexedvEXT)
+#define glGetBooleani_v MANGLE(GetBooleani_v)
+#define glGetBooleanv MANGLE(GetBooleanv)
+#define glGetBufferParameteri64v MANGLE(GetBufferParameteri64v)
+#define glGetBufferParameterivARB MANGLE(GetBufferParameterivARB)
+#define glGetBufferParameteriv MANGLE(GetBufferParameteriv)
+#define glGetBufferParameterui64vNV MANGLE(GetBufferParameterui64vNV)
+#define glGetBufferPointervARB MANGLE(GetBufferPointervARB)
+#define glGetBufferPointerv MANGLE(GetBufferPointerv)
+#define glGetBufferSubDataARB MANGLE(GetBufferSubDataARB)
+#define glGetBufferSubData MANGLE(GetBufferSubData)
+#define glGetClipPlane MANGLE(GetClipPlane)
+#define glGetColorTableEXT MANGLE(GetColorTableEXT)
+#define glGetColorTable MANGLE(GetColorTable)
+#define glGetColorTableParameterfvEXT MANGLE(GetColorTableParameterfvEXT)
+#define glGetColorTableParameterfv MANGLE(GetColorTableParameterfv)
+#define glGetColorTableParameterfvSGI MANGLE(GetColorTableParameterfvSGI)
+#define glGetColorTableParameterivEXT MANGLE(GetColorTableParameterivEXT)
+#define glGetColorTableParameteriv MANGLE(GetColorTableParameteriv)
+#define glGetColorTableParameterivSGI MANGLE(GetColorTableParameterivSGI)
+#define glGetColorTableSGI MANGLE(GetColorTableSGI)
+#define glGetCombinerInputParameterfvNV MANGLE(GetCombinerInputParameterfvNV)
+#define glGetCombinerInputParameterivNV MANGLE(GetCombinerInputParameterivNV)
+#define glGetCombinerOutputParameterfvNV MANGLE(GetCombinerOutputParameterfvNV)
+#define glGetCombinerOutputParameterivNV MANGLE(GetCombinerOutputParameterivNV)
+#define glGetCombinerStageParameterfvNV MANGLE(GetCombinerStageParameterfvNV)
+#define glGetCompressedMultiTexImageEXT MANGLE(GetCompressedMultiTexImageEXT)
+#define glGetCompressedTexImageARB MANGLE(GetCompressedTexImageARB)
+#define glGetCompressedTexImage MANGLE(GetCompressedTexImage)
+#define glGetCompressedTextureImageEXT MANGLE(GetCompressedTextureImageEXT)
+#define glGetConvolutionFilterEXT MANGLE(GetConvolutionFilterEXT)
+#define glGetConvolutionFilter MANGLE(GetConvolutionFilter)
+#define glGetConvolutionParameterfvEXT MANGLE(GetConvolutionParameterfvEXT)
+#define glGetConvolutionParameterfv MANGLE(GetConvolutionParameterfv)
+#define glGetConvolutionParameterivEXT MANGLE(GetConvolutionParameterivEXT)
+#define glGetConvolutionParameteriv MANGLE(GetConvolutionParameteriv)
+#define glGetDebugLogLengthMESA MANGLE(GetDebugLogLengthMESA)
+#define glGetDebugLogMESA MANGLE(GetDebugLogMESA)
+#define glGetDebugMessageLogAMD MANGLE(GetDebugMessageLogAMD)
+#define glGetDebugMessageLogARB MANGLE(GetDebugMessageLogARB)
+#define glGetDetailTexFuncSGIS MANGLE(GetDetailTexFuncSGIS)
+#define glGetDoubleIndexedvEXT MANGLE(GetDoubleIndexedvEXT)
+#define glGetDoublei_v MANGLE(GetDoublei_v)
+#define glGetDoublev MANGLE(GetDoublev)
+#define glGetError MANGLE(GetError)
+#define glGetFenceivNV MANGLE(GetFenceivNV)
+#define glGetFinalCombinerInputParameterfvNV MANGLE(GetFinalCombinerInputParameterfvNV)
+#define glGetFinalCombinerInputParameterivNV MANGLE(GetFinalCombinerInputParameterivNV)
+#define glGetFloatIndexedvEXT MANGLE(GetFloatIndexedvEXT)
+#define glGetFloati_v MANGLE(GetFloati_v)
+#define glGetFloatv MANGLE(GetFloatv)
+#define glGetFogFuncSGIS MANGLE(GetFogFuncSGIS)
+#define glGetFragDataIndex MANGLE(GetFragDataIndex)
+#define glGetFragDataLocationEXT MANGLE(GetFragDataLocationEXT)
+#define glGetFragDataLocation MANGLE(GetFragDataLocation)
+#define glGetFragmentLightfvSGIX MANGLE(GetFragmentLightfvSGIX)
+#define glGetFragmentLightivSGIX MANGLE(GetFragmentLightivSGIX)
+#define glGetFragmentMaterialfvSGIX MANGLE(GetFragmentMaterialfvSGIX)
+#define glGetFragmentMaterialivSGIX MANGLE(GetFragmentMaterialivSGIX)
+#define glGetFramebufferAttachmentParameterivEXT MANGLE(GetFramebufferAttachmentParameterivEXT)
+#define glGetFramebufferAttachmentParameteriv MANGLE(GetFramebufferAttachmentParameteriv)
+#define glGetFramebufferParameterivEXT MANGLE(GetFramebufferParameterivEXT)
+#define glGetGraphicsResetStatusARB MANGLE(GetGraphicsResetStatusARB)
+#define glGetHandleARB MANGLE(GetHandleARB)
+#define glGetHistogramEXT MANGLE(GetHistogramEXT)
+#define glGetHistogram MANGLE(GetHistogram)
+#define glGetHistogramParameterfvEXT MANGLE(GetHistogramParameterfvEXT)
+#define glGetHistogramParameterfv MANGLE(GetHistogramParameterfv)
+#define glGetHistogramParameterivEXT MANGLE(GetHistogramParameterivEXT)
+#define glGetHistogramParameteriv MANGLE(GetHistogramParameteriv)
+#define glGetImageTransformParameterfvHP MANGLE(GetImageTransformParameterfvHP)
+#define glGetImageTransformParameterivHP MANGLE(GetImageTransformParameterivHP)
+#define glGetInfoLogARB MANGLE(GetInfoLogARB)
+#define glGetInstrumentsSGIX MANGLE(GetInstrumentsSGIX)
+#define glGetInteger64i_v MANGLE(GetInteger64i_v)
+#define glGetInteger64v MANGLE(GetInteger64v)
+#define glGetIntegerIndexedvEXT MANGLE(GetIntegerIndexedvEXT)
+#define glGetIntegeri_v MANGLE(GetIntegeri_v)
+#define glGetIntegerui64i_vNV MANGLE(GetIntegerui64i_vNV)
+#define glGetIntegerui64vNV MANGLE(GetIntegerui64vNV)
+#define glGetIntegerv MANGLE(GetIntegerv)
+#define glGetInvariantBooleanvEXT MANGLE(GetInvariantBooleanvEXT)
+#define glGetInvariantFloatvEXT MANGLE(GetInvariantFloatvEXT)
+#define glGetInvariantIntegervEXT MANGLE(GetInvariantIntegervEXT)
+#define glGetLightfv MANGLE(GetLightfv)
+#define glGetLightiv MANGLE(GetLightiv)
+#define glGetListParameterfvSGIX MANGLE(GetListParameterfvSGIX)
+#define glGetListParameterivSGIX MANGLE(GetListParameterivSGIX)
+#define glGetLocalConstantBooleanvEXT MANGLE(GetLocalConstantBooleanvEXT)
+#define glGetLocalConstantFloatvEXT MANGLE(GetLocalConstantFloatvEXT)
+#define glGetLocalConstantIntegervEXT MANGLE(GetLocalConstantIntegervEXT)
+#define glGetMapAttribParameterfvNV MANGLE(GetMapAttribParameterfvNV)
+#define glGetMapAttribParameterivNV MANGLE(GetMapAttribParameterivNV)
+#define glGetMapControlPointsNV MANGLE(GetMapControlPointsNV)
+#define glGetMapdv MANGLE(GetMapdv)
+#define glGetMapfv MANGLE(GetMapfv)
+#define glGetMapiv MANGLE(GetMapiv)
+#define glGetMapParameterfvNV MANGLE(GetMapParameterfvNV)
+#define glGetMapParameterivNV MANGLE(GetMapParameterivNV)
+#define glGetMaterialfv MANGLE(GetMaterialfv)
+#define glGetMaterialiv MANGLE(GetMaterialiv)
+#define glGetMinmaxEXT MANGLE(GetMinmaxEXT)
+#define glGetMinmax MANGLE(GetMinmax)
+#define glGetMinmaxParameterfvEXT MANGLE(GetMinmaxParameterfvEXT)
+#define glGetMinmaxParameterfv MANGLE(GetMinmaxParameterfv)
+#define glGetMinmaxParameterivEXT MANGLE(GetMinmaxParameterivEXT)
+#define glGetMinmaxParameteriv MANGLE(GetMinmaxParameteriv)
+#define glGetMultisamplefv MANGLE(GetMultisamplefv)
+#define glGetMultisamplefvNV MANGLE(GetMultisamplefvNV)
+#define glGetMultiTexEnvfvEXT MANGLE(GetMultiTexEnvfvEXT)
+#define glGetMultiTexEnvivEXT MANGLE(GetMultiTexEnvivEXT)
+#define glGetMultiTexGendvEXT MANGLE(GetMultiTexGendvEXT)
+#define glGetMultiTexGenfvEXT MANGLE(GetMultiTexGenfvEXT)
+#define glGetMultiTexGenivEXT MANGLE(GetMultiTexGenivEXT)
+#define glGetMultiTexImageEXT MANGLE(GetMultiTexImageEXT)
+#define glGetMultiTexLevelParameterfvEXT MANGLE(GetMultiTexLevelParameterfvEXT)
+#define glGetMultiTexLevelParameterivEXT MANGLE(GetMultiTexLevelParameterivEXT)
+#define glGetMultiTexParameterfvEXT MANGLE(GetMultiTexParameterfvEXT)
+#define glGetMultiTexParameterIivEXT MANGLE(GetMultiTexParameterIivEXT)
+#define glGetMultiTexParameterIuivEXT MANGLE(GetMultiTexParameterIuivEXT)
+#define glGetMultiTexParameterivEXT MANGLE(GetMultiTexParameterivEXT)
+#define glGetNamedBufferParameterivEXT MANGLE(GetNamedBufferParameterivEXT)
+#define glGetNamedBufferParameterui64vNV MANGLE(GetNamedBufferParameterui64vNV)
+#define glGetNamedBufferPointervEXT MANGLE(GetNamedBufferPointervEXT)
+#define glGetNamedBufferSubDataEXT MANGLE(GetNamedBufferSubDataEXT)
+#define glGetNamedFramebufferAttachmentParameterivEXT MANGLE(GetNamedFramebufferAttachmentParameterivEXT)
+#define glGetNamedProgramivEXT MANGLE(GetNamedProgramivEXT)
+#define glGetNamedProgramLocalParameterdvEXT MANGLE(GetNamedProgramLocalParameterdvEXT)
+#define glGetNamedProgramLocalParameterfvEXT MANGLE(GetNamedProgramLocalParameterfvEXT)
+#define glGetNamedProgramLocalParameterIivEXT MANGLE(GetNamedProgramLocalParameterIivEXT)
+#define glGetNamedProgramLocalParameterIuivEXT MANGLE(GetNamedProgramLocalParameterIuivEXT)
+#define glGetNamedProgramStringEXT MANGLE(GetNamedProgramStringEXT)
+#define glGetNamedRenderbufferParameterivEXT MANGLE(GetNamedRenderbufferParameterivEXT)
+#define glGetNamedStringARB MANGLE(GetNamedStringARB)
+#define glGetNamedStringivARB MANGLE(GetNamedStringivARB)
+#define glGetnColorTableARB MANGLE(GetnColorTableARB)
+#define glGetnCompressedTexImageARB MANGLE(GetnCompressedTexImageARB)
+#define glGetnConvolutionFilterARB MANGLE(GetnConvolutionFilterARB)
+#define glGetnHistogramARB MANGLE(GetnHistogramARB)
+#define glGetnMapdvARB MANGLE(GetnMapdvARB)
+#define glGetnMapfvARB MANGLE(GetnMapfvARB)
+#define glGetnMapivARB MANGLE(GetnMapivARB)
+#define glGetnMinmaxARB MANGLE(GetnMinmaxARB)
+#define glGetnPixelMapfvARB MANGLE(GetnPixelMapfvARB)
+#define glGetnPixelMapuivARB MANGLE(GetnPixelMapuivARB)
+#define glGetnPixelMapusvARB MANGLE(GetnPixelMapusvARB)
+#define glGetnPolygonStippleARB MANGLE(GetnPolygonStippleARB)
+#define glGetnSeparableFilterARB MANGLE(GetnSeparableFilterARB)
+#define glGetnTexImageARB MANGLE(GetnTexImageARB)
+#define glGetnUniformdvARB MANGLE(GetnUniformdvARB)
+#define glGetnUniformfvARB MANGLE(GetnUniformfvARB)
+#define glGetnUniformivARB MANGLE(GetnUniformivARB)
+#define glGetnUniformuivARB MANGLE(GetnUniformuivARB)
+#define glGetObjectBufferfvATI MANGLE(GetObjectBufferfvATI)
+#define glGetObjectBufferivATI MANGLE(GetObjectBufferivATI)
+#define glGetObjectParameterfvARB MANGLE(GetObjectParameterfvARB)
+#define glGetObjectParameterivAPPLE MANGLE(GetObjectParameterivAPPLE)
+#define glGetObjectParameterivARB MANGLE(GetObjectParameterivARB)
+#define glGetOcclusionQueryivNV MANGLE(GetOcclusionQueryivNV)
+#define glGetOcclusionQueryuivNV MANGLE(GetOcclusionQueryuivNV)
+#define glGetPerfMonitorCounterDataAMD MANGLE(GetPerfMonitorCounterDataAMD)
+#define glGetPerfMonitorCounterInfoAMD MANGLE(GetPerfMonitorCounterInfoAMD)
+#define glGetPerfMonitorCountersAMD MANGLE(GetPerfMonitorCountersAMD)
+#define glGetPerfMonitorCounterStringAMD MANGLE(GetPerfMonitorCounterStringAMD)
+#define glGetPerfMonitorGroupsAMD MANGLE(GetPerfMonitorGroupsAMD)
+#define glGetPerfMonitorGroupStringAMD MANGLE(GetPerfMonitorGroupStringAMD)
+#define glGetPixelMapfv MANGLE(GetPixelMapfv)
+#define glGetPixelMapuiv MANGLE(GetPixelMapuiv)
+#define glGetPixelMapusv MANGLE(GetPixelMapusv)
+#define glGetPixelTexGenParameterfvSGIS MANGLE(GetPixelTexGenParameterfvSGIS)
+#define glGetPixelTexGenParameterivSGIS MANGLE(GetPixelTexGenParameterivSGIS)
+#define glGetPointerIndexedvEXT MANGLE(GetPointerIndexedvEXT)
+#define glGetPointervEXT MANGLE(GetPointervEXT)
+#define glGetPointerv MANGLE(GetPointerv)
+#define glGetPolygonStipple MANGLE(GetPolygonStipple)
+#define glGetProgramBinary MANGLE(GetProgramBinary)
+#define glGetProgramEnvParameterdvARB MANGLE(GetProgramEnvParameterdvARB)
+#define glGetProgramEnvParameterfvARB MANGLE(GetProgramEnvParameterfvARB)
+#define glGetProgramEnvParameterIivNV MANGLE(GetProgramEnvParameterIivNV)
+#define glGetProgramEnvParameterIuivNV MANGLE(GetProgramEnvParameterIuivNV)
+#define glGetProgramInfoLog MANGLE(GetProgramInfoLog)
+#define glGetProgramivARB MANGLE(GetProgramivARB)
+#define glGetProgramiv MANGLE(GetProgramiv)
+#define glGetProgramivNV MANGLE(GetProgramivNV)
+#define glGetProgramLocalParameterdvARB MANGLE(GetProgramLocalParameterdvARB)
+#define glGetProgramLocalParameterfvARB MANGLE(GetProgramLocalParameterfvARB)
+#define glGetProgramLocalParameterIivNV MANGLE(GetProgramLocalParameterIivNV)
+#define glGetProgramLocalParameterIuivNV MANGLE(GetProgramLocalParameterIuivNV)
+#define glGetProgramNamedParameterdvNV MANGLE(GetProgramNamedParameterdvNV)
+#define glGetProgramNamedParameterfvNV MANGLE(GetProgramNamedParameterfvNV)
+#define glGetProgramParameterdvNV MANGLE(GetProgramParameterdvNV)
+#define glGetProgramParameterfvNV MANGLE(GetProgramParameterfvNV)
+#define glGetProgramPipelineInfoLog MANGLE(GetProgramPipelineInfoLog)
+#define glGetProgramPipelineiv MANGLE(GetProgramPipelineiv)
+#define glGetProgramRegisterfvMESA MANGLE(GetProgramRegisterfvMESA)
+#define glGetProgramStageiv MANGLE(GetProgramStageiv)
+#define glGetProgramStringARB MANGLE(GetProgramStringARB)
+#define glGetProgramStringNV MANGLE(GetProgramStringNV)
+#define glGetProgramSubroutineParameteruivNV MANGLE(GetProgramSubroutineParameteruivNV)
+#define glGetQueryIndexediv MANGLE(GetQueryIndexediv)
+#define glGetQueryivARB MANGLE(GetQueryivARB)
+#define glGetQueryiv MANGLE(GetQueryiv)
+#define glGetQueryObjecti64vEXT MANGLE(GetQueryObjecti64vEXT)
+#define glGetQueryObjecti64v MANGLE(GetQueryObjecti64v)
+#define glGetQueryObjectivARB MANGLE(GetQueryObjectivARB)
+#define glGetQueryObjectiv MANGLE(GetQueryObjectiv)
+#define glGetQueryObjectui64vEXT MANGLE(GetQueryObjectui64vEXT)
+#define glGetQueryObjectui64v MANGLE(GetQueryObjectui64v)
+#define glGetQueryObjectuivARB MANGLE(GetQueryObjectuivARB)
+#define glGetQueryObjectuiv MANGLE(GetQueryObjectuiv)
+#define glGetRenderbufferParameterivEXT MANGLE(GetRenderbufferParameterivEXT)
+#define glGetRenderbufferParameteriv MANGLE(GetRenderbufferParameteriv)
+#define glGetSamplerParameterfv MANGLE(GetSamplerParameterfv)
+#define glGetSamplerParameterIiv MANGLE(GetSamplerParameterIiv)
+#define glGetSamplerParameterIuiv MANGLE(GetSamplerParameterIuiv)
+#define glGetSamplerParameteriv MANGLE(GetSamplerParameteriv)
+#define glGetSeparableFilterEXT MANGLE(GetSeparableFilterEXT)
+#define glGetSeparableFilter MANGLE(GetSeparableFilter)
+#define glGetShaderInfoLog MANGLE(GetShaderInfoLog)
+#define glGetShaderiv MANGLE(GetShaderiv)
+#define glGetShaderPrecisionFormat MANGLE(GetShaderPrecisionFormat)
+#define glGetShaderSourceARB MANGLE(GetShaderSourceARB)
+#define glGetShaderSource MANGLE(GetShaderSource)
+#define glGetSharpenTexFuncSGIS MANGLE(GetSharpenTexFuncSGIS)
+#define glGetStringi MANGLE(GetStringi)
+#define glGetString MANGLE(GetString)
+#define glGetSubroutineIndex MANGLE(GetSubroutineIndex)
+#define glGetSubroutineUniformLocation MANGLE(GetSubroutineUniformLocation)
+#define glGetSynciv MANGLE(GetSynciv)
+#define glGetTexBumpParameterfvATI MANGLE(GetTexBumpParameterfvATI)
+#define glGetTexBumpParameterivATI MANGLE(GetTexBumpParameterivATI)
+#define glGetTexEnvfv MANGLE(GetTexEnvfv)
+#define glGetTexEnviv MANGLE(GetTexEnviv)
+#define glGetTexFilterFuncSGIS MANGLE(GetTexFilterFuncSGIS)
+#define glGetTexGendv MANGLE(GetTexGendv)
+#define glGetTexGenfv MANGLE(GetTexGenfv)
+#define glGetTexGeniv MANGLE(GetTexGeniv)
+#define glGetTexImage MANGLE(GetTexImage)
+#define glGetTexLevelParameterfv MANGLE(GetTexLevelParameterfv)
+#define glGetTexLevelParameteriv MANGLE(GetTexLevelParameteriv)
+#define glGetTexParameterfv MANGLE(GetTexParameterfv)
+#define glGetTexParameterIivEXT MANGLE(GetTexParameterIivEXT)
+#define glGetTexParameterIiv MANGLE(GetTexParameterIiv)
+#define glGetTexParameterIuivEXT MANGLE(GetTexParameterIuivEXT)
+#define glGetTexParameterIuiv MANGLE(GetTexParameterIuiv)
+#define glGetTexParameteriv MANGLE(GetTexParameteriv)
+#define glGetTexParameterPointervAPPLE MANGLE(GetTexParameterPointervAPPLE)
+#define glGetTextureImageEXT MANGLE(GetTextureImageEXT)
+#define glGetTextureLevelParameterfvEXT MANGLE(GetTextureLevelParameterfvEXT)
+#define glGetTextureLevelParameterivEXT MANGLE(GetTextureLevelParameterivEXT)
+#define glGetTextureParameterfvEXT MANGLE(GetTextureParameterfvEXT)
+#define glGetTextureParameterIivEXT MANGLE(GetTextureParameterIivEXT)
+#define glGetTextureParameterIuivEXT MANGLE(GetTextureParameterIuivEXT)
+#define glGetTextureParameterivEXT MANGLE(GetTextureParameterivEXT)
+#define glGetTrackMatrixivNV MANGLE(GetTrackMatrixivNV)
+#define glGetTransformFeedbackVaryingEXT MANGLE(GetTransformFeedbackVaryingEXT)
+#define glGetTransformFeedbackVarying MANGLE(GetTransformFeedbackVarying)
+#define glGetTransformFeedbackVaryingNV MANGLE(GetTransformFeedbackVaryingNV)
+#define glGetUniformBlockIndex MANGLE(GetUniformBlockIndex)
+#define glGetUniformBufferSizeEXT MANGLE(GetUniformBufferSizeEXT)
+#define glGetUniformdv MANGLE(GetUniformdv)
+#define glGetUniformfvARB MANGLE(GetUniformfvARB)
+#define glGetUniformfv MANGLE(GetUniformfv)
+#define glGetUniformi64vNV MANGLE(GetUniformi64vNV)
+#define glGetUniformIndices MANGLE(GetUniformIndices)
+#define glGetUniformivARB MANGLE(GetUniformivARB)
+#define glGetUniformiv MANGLE(GetUniformiv)
+#define glGetUniformLocationARB MANGLE(GetUniformLocationARB)
+#define glGetUniformLocation MANGLE(GetUniformLocation)
+#define glGetUniformOffsetEXT MANGLE(GetUniformOffsetEXT)
+#define glGetUniformSubroutineuiv MANGLE(GetUniformSubroutineuiv)
+#define glGetUniformui64vNV MANGLE(GetUniformui64vNV)
+#define glGetUniformuivEXT MANGLE(GetUniformuivEXT)
+#define glGetUniformuiv MANGLE(GetUniformuiv)
+#define glGetVariantArrayObjectfvATI MANGLE(GetVariantArrayObjectfvATI)
+#define glGetVariantArrayObjectivATI MANGLE(GetVariantArrayObjectivATI)
+#define glGetVariantBooleanvEXT MANGLE(GetVariantBooleanvEXT)
+#define glGetVariantFloatvEXT MANGLE(GetVariantFloatvEXT)
+#define glGetVariantIntegervEXT MANGLE(GetVariantIntegervEXT)
+#define glGetVariantPointervEXT MANGLE(GetVariantPointervEXT)
+#define glGetVaryingLocationNV MANGLE(GetVaryingLocationNV)
+#define glGetVertexAttribArrayObjectfvATI MANGLE(GetVertexAttribArrayObjectfvATI)
+#define glGetVertexAttribArrayObjectivATI MANGLE(GetVertexAttribArrayObjectivATI)
+#define glGetVertexAttribdvARB MANGLE(GetVertexAttribdvARB)
+#define glGetVertexAttribdv MANGLE(GetVertexAttribdv)
+#define glGetVertexAttribdvNV MANGLE(GetVertexAttribdvNV)
+#define glGetVertexAttribfvARB MANGLE(GetVertexAttribfvARB)
+#define glGetVertexAttribfv MANGLE(GetVertexAttribfv)
+#define glGetVertexAttribfvNV MANGLE(GetVertexAttribfvNV)
+#define glGetVertexAttribIivEXT MANGLE(GetVertexAttribIivEXT)
+#define glGetVertexAttribIiv MANGLE(GetVertexAttribIiv)
+#define glGetVertexAttribIuivEXT MANGLE(GetVertexAttribIuivEXT)
+#define glGetVertexAttribIuiv MANGLE(GetVertexAttribIuiv)
+#define glGetVertexAttribivARB MANGLE(GetVertexAttribivARB)
+#define glGetVertexAttribiv MANGLE(GetVertexAttribiv)
+#define glGetVertexAttribivNV MANGLE(GetVertexAttribivNV)
+#define glGetVertexAttribLdvEXT MANGLE(GetVertexAttribLdvEXT)
+#define glGetVertexAttribLdv MANGLE(GetVertexAttribLdv)
+#define glGetVertexAttribLi64vNV MANGLE(GetVertexAttribLi64vNV)
+#define glGetVertexAttribLui64vNV MANGLE(GetVertexAttribLui64vNV)
+#define glGetVertexAttribPointervARB MANGLE(GetVertexAttribPointervARB)
+#define glGetVertexAttribPointerv MANGLE(GetVertexAttribPointerv)
+#define glGetVertexAttribPointervNV MANGLE(GetVertexAttribPointervNV)
+#define glGetVideoCaptureivNV MANGLE(GetVideoCaptureivNV)
+#define glGetVideoCaptureStreamdvNV MANGLE(GetVideoCaptureStreamdvNV)
+#define glGetVideoCaptureStreamfvNV MANGLE(GetVideoCaptureStreamfvNV)
+#define glGetVideoCaptureStreamivNV MANGLE(GetVideoCaptureStreamivNV)
+#define glGetVideoi64vNV MANGLE(GetVideoi64vNV)
+#define glGetVideoivNV MANGLE(GetVideoivNV)
+#define glGetVideoui64vNV MANGLE(GetVideoui64vNV)
+#define glGetVideouivNV MANGLE(GetVideouivNV)
+#define glGlobalAlphaFactorbSUN MANGLE(GlobalAlphaFactorbSUN)
+#define glGlobalAlphaFactordSUN MANGLE(GlobalAlphaFactordSUN)
+#define glGlobalAlphaFactorfSUN MANGLE(GlobalAlphaFactorfSUN)
+#define glGlobalAlphaFactoriSUN MANGLE(GlobalAlphaFactoriSUN)
+#define glGlobalAlphaFactorsSUN MANGLE(GlobalAlphaFactorsSUN)
+#define glGlobalAlphaFactorubSUN MANGLE(GlobalAlphaFactorubSUN)
+#define glGlobalAlphaFactoruiSUN MANGLE(GlobalAlphaFactoruiSUN)
+#define glGlobalAlphaFactorusSUN MANGLE(GlobalAlphaFactorusSUN)
+#define glHint MANGLE(Hint)
+#define glHintPGI MANGLE(HintPGI)
+#define glHistogramEXT MANGLE(HistogramEXT)
+#define glHistogram MANGLE(Histogram)
+#define glIglooInterfaceSGIX MANGLE(IglooInterfaceSGIX)
+#define glImageTransformParameterfHP MANGLE(ImageTransformParameterfHP)
+#define glImageTransformParameterfvHP MANGLE(ImageTransformParameterfvHP)
+#define glImageTransformParameteriHP MANGLE(ImageTransformParameteriHP)
+#define glImageTransformParameterivHP MANGLE(ImageTransformParameterivHP)
+#define glIndexd MANGLE(Indexd)
+#define glIndexdv MANGLE(Indexdv)
+#define glIndexf MANGLE(Indexf)
+#define glIndexFormatNV MANGLE(IndexFormatNV)
+#define glIndexFuncEXT MANGLE(IndexFuncEXT)
+#define glIndexfv MANGLE(Indexfv)
+#define glIndexi MANGLE(Indexi)
+#define glIndexiv MANGLE(Indexiv)
+#define glIndexMask MANGLE(IndexMask)
+#define glIndexMaterialEXT MANGLE(IndexMaterialEXT)
+#define glIndexPointerEXT MANGLE(IndexPointerEXT)
+#define glIndexPointerListIBM MANGLE(IndexPointerListIBM)
+#define glIndexPointer MANGLE(IndexPointer)
+#define glIndexs MANGLE(Indexs)
+#define glIndexsv MANGLE(Indexsv)
+#define glIndexub MANGLE(Indexub)
+#define glIndexubv MANGLE(Indexubv)
+#define glInitNames MANGLE(InitNames)
+#define glInsertComponentEXT MANGLE(InsertComponentEXT)
+#define glInstrumentsBufferSGIX MANGLE(InstrumentsBufferSGIX)
+#define glInterleavedArrays MANGLE(InterleavedArrays)
+#define glIsAsyncMarkerSGIX MANGLE(IsAsyncMarkerSGIX)
+#define glIsBufferARB MANGLE(IsBufferARB)
+#define glIsBuffer MANGLE(IsBuffer)
+#define glIsBufferResidentNV MANGLE(IsBufferResidentNV)
+#define glIsEnabledi MANGLE(IsEnabledi)
+#define glIsEnabledIndexedEXT MANGLE(IsEnabledIndexedEXT)
+#define glIsEnabled MANGLE(IsEnabled)
+#define glIsFenceAPPLE MANGLE(IsFenceAPPLE)
+#define glIsFenceNV MANGLE(IsFenceNV)
+#define glIsFramebufferEXT MANGLE(IsFramebufferEXT)
+#define glIsFramebuffer MANGLE(IsFramebuffer)
+#define glIsList MANGLE(IsList)
+#define glIsNameAMD MANGLE(IsNameAMD)
+#define glIsNamedBufferResidentNV MANGLE(IsNamedBufferResidentNV)
+#define glIsNamedStringARB MANGLE(IsNamedStringARB)
+#define glIsObjectBufferATI MANGLE(IsObjectBufferATI)
+#define glIsOcclusionQueryNV MANGLE(IsOcclusionQueryNV)
+#define glIsProgramARB MANGLE(IsProgramARB)
+#define glIsProgram MANGLE(IsProgram)
+#define glIsProgramNV MANGLE(IsProgramNV)
+#define glIsProgramPipeline MANGLE(IsProgramPipeline)
+#define glIsQueryARB MANGLE(IsQueryARB)
+#define glIsQuery MANGLE(IsQuery)
+#define glIsRenderbufferEXT MANGLE(IsRenderbufferEXT)
+#define glIsRenderbuffer MANGLE(IsRenderbuffer)
+#define glIsSampler MANGLE(IsSampler)
+#define glIsShader MANGLE(IsShader)
+#define glIsSync MANGLE(IsSync)
+#define glIsTextureEXT MANGLE(IsTextureEXT)
+#define glIsTexture MANGLE(IsTexture)
+#define glIsTransformFeedback MANGLE(IsTransformFeedback)
+#define glIsTransformFeedbackNV MANGLE(IsTransformFeedbackNV)
+#define glIsVariantEnabledEXT MANGLE(IsVariantEnabledEXT)
+#define glIsVertexArrayAPPLE MANGLE(IsVertexArrayAPPLE)
+#define glIsVertexArray MANGLE(IsVertexArray)
+#define glIsVertexAttribEnabledAPPLE MANGLE(IsVertexAttribEnabledAPPLE)
+#define glLightEnviSGIX MANGLE(LightEnviSGIX)
+#define glLightf MANGLE(Lightf)
+#define glLightfv MANGLE(Lightfv)
+#define glLighti MANGLE(Lighti)
+#define glLightiv MANGLE(Lightiv)
+#define glLightModelf MANGLE(LightModelf)
+#define glLightModelfv MANGLE(LightModelfv)
+#define glLightModeli MANGLE(LightModeli)
+#define glLightModeliv MANGLE(LightModeliv)
+#define glLineStipple MANGLE(LineStipple)
+#define glLineWidth MANGLE(LineWidth)
+#define glLinkProgramARB MANGLE(LinkProgramARB)
+#define glLinkProgram MANGLE(LinkProgram)
+#define glListBase MANGLE(ListBase)
+#define glListParameterfSGIX MANGLE(ListParameterfSGIX)
+#define glListParameterfvSGIX MANGLE(ListParameterfvSGIX)
+#define glListParameteriSGIX MANGLE(ListParameteriSGIX)
+#define glListParameterivSGIX MANGLE(ListParameterivSGIX)
+#define glLoadIdentityDeformationMapSGIX MANGLE(LoadIdentityDeformationMapSGIX)
+#define glLoadIdentity MANGLE(LoadIdentity)
+#define glLoadMatrixd MANGLE(LoadMatrixd)
+#define glLoadMatrixf MANGLE(LoadMatrixf)
+#define glLoadName MANGLE(LoadName)
+#define glLoadProgramNV MANGLE(LoadProgramNV)
+#define glLoadTransposeMatrixdARB MANGLE(LoadTransposeMatrixdARB)
+#define glLoadTransposeMatrixd MANGLE(LoadTransposeMatrixd)
+#define glLoadTransposeMatrixfARB MANGLE(LoadTransposeMatrixfARB)
+#define glLoadTransposeMatrixf MANGLE(LoadTransposeMatrixf)
+#define glLockArraysEXT MANGLE(LockArraysEXT)
+#define glLogicOp MANGLE(LogicOp)
+#define glMakeBufferNonResidentNV MANGLE(MakeBufferNonResidentNV)
+#define glMakeBufferResidentNV MANGLE(MakeBufferResidentNV)
+#define glMakeNamedBufferNonResidentNV MANGLE(MakeNamedBufferNonResidentNV)
+#define glMakeNamedBufferResidentNV MANGLE(MakeNamedBufferResidentNV)
+#define glMap1d MANGLE(Map1d)
+#define glMap1f MANGLE(Map1f)
+#define glMap2d MANGLE(Map2d)
+#define glMap2f MANGLE(Map2f)
+#define glMapBufferARB MANGLE(MapBufferARB)
+#define glMapBuffer MANGLE(MapBuffer)
+#define glMapBufferRange MANGLE(MapBufferRange)
+#define glMapControlPointsNV MANGLE(MapControlPointsNV)
+#define glMapGrid1d MANGLE(MapGrid1d)
+#define glMapGrid1f MANGLE(MapGrid1f)
+#define glMapGrid2d MANGLE(MapGrid2d)
+#define glMapGrid2f MANGLE(MapGrid2f)
+#define glMapNamedBufferEXT MANGLE(MapNamedBufferEXT)
+#define glMapNamedBufferRangeEXT MANGLE(MapNamedBufferRangeEXT)
+#define glMapObjectBufferATI MANGLE(MapObjectBufferATI)
+#define glMapParameterfvNV MANGLE(MapParameterfvNV)
+#define glMapParameterivNV MANGLE(MapParameterivNV)
+#define glMapVertexAttrib1dAPPLE MANGLE(MapVertexAttrib1dAPPLE)
+#define glMapVertexAttrib1fAPPLE MANGLE(MapVertexAttrib1fAPPLE)
+#define glMapVertexAttrib2dAPPLE MANGLE(MapVertexAttrib2dAPPLE)
+#define glMapVertexAttrib2fAPPLE MANGLE(MapVertexAttrib2fAPPLE)
+#define glMaterialf MANGLE(Materialf)
+#define glMaterialfv MANGLE(Materialfv)
+#define glMateriali MANGLE(Materiali)
+#define glMaterialiv MANGLE(Materialiv)
+#define glMatrixFrustumEXT MANGLE(MatrixFrustumEXT)
+#define glMatrixIndexPointerARB MANGLE(MatrixIndexPointerARB)
+#define glMatrixIndexubvARB MANGLE(MatrixIndexubvARB)
+#define glMatrixIndexuivARB MANGLE(MatrixIndexuivARB)
+#define glMatrixIndexusvARB MANGLE(MatrixIndexusvARB)
+#define glMatrixLoaddEXT MANGLE(MatrixLoaddEXT)
+#define glMatrixLoadfEXT MANGLE(MatrixLoadfEXT)
+#define glMatrixLoadIdentityEXT MANGLE(MatrixLoadIdentityEXT)
+#define glMatrixLoadTransposedEXT MANGLE(MatrixLoadTransposedEXT)
+#define glMatrixLoadTransposefEXT MANGLE(MatrixLoadTransposefEXT)
+#define glMatrixMode MANGLE(MatrixMode)
+#define glMatrixMultdEXT MANGLE(MatrixMultdEXT)
+#define glMatrixMultfEXT MANGLE(MatrixMultfEXT)
+#define glMatrixMultTransposedEXT MANGLE(MatrixMultTransposedEXT)
+#define glMatrixMultTransposefEXT MANGLE(MatrixMultTransposefEXT)
+#define glMatrixOrthoEXT MANGLE(MatrixOrthoEXT)
+#define glMatrixPopEXT MANGLE(MatrixPopEXT)
+#define glMatrixPushEXT MANGLE(MatrixPushEXT)
+#define glMatrixRotatedEXT MANGLE(MatrixRotatedEXT)
+#define glMatrixRotatefEXT MANGLE(MatrixRotatefEXT)
+#define glMatrixScaledEXT MANGLE(MatrixScaledEXT)
+#define glMatrixScalefEXT MANGLE(MatrixScalefEXT)
+#define glMatrixTranslatedEXT MANGLE(MatrixTranslatedEXT)
+#define glMatrixTranslatefEXT MANGLE(MatrixTranslatefEXT)
+#define glMemoryBarrierEXT MANGLE(MemoryBarrierEXT)
+#define glMinmaxEXT MANGLE(MinmaxEXT)
+#define glMinmax MANGLE(Minmax)
+#define glMinSampleShadingARB MANGLE(MinSampleShadingARB)
+#define glMinSampleShading MANGLE(MinSampleShading)
+#define glMultiDrawArraysEXT MANGLE(MultiDrawArraysEXT)
+#define glMultiDrawArrays MANGLE(MultiDrawArrays)
+#define glMultiDrawElementArrayAPPLE MANGLE(MultiDrawElementArrayAPPLE)
+#define glMultiDrawElementsBaseVertex MANGLE(MultiDrawElementsBaseVertex)
+#define glMultiDrawElementsEXT MANGLE(MultiDrawElementsEXT)
+#define glMultiDrawElements MANGLE(MultiDrawElements)
+#define glMultiDrawRangeElementArrayAPPLE MANGLE(MultiDrawRangeElementArrayAPPLE)
+#define glMultiModeDrawArraysIBM MANGLE(MultiModeDrawArraysIBM)
+#define glMultiModeDrawElementsIBM MANGLE(MultiModeDrawElementsIBM)
+#define glMultiTexBufferEXT MANGLE(MultiTexBufferEXT)
+#define glMultiTexCoord1dARB MANGLE(MultiTexCoord1dARB)
+#define glMultiTexCoord1d MANGLE(MultiTexCoord1d)
+#define glMultiTexCoord1dvARB MANGLE(MultiTexCoord1dvARB)
+#define glMultiTexCoord1dv MANGLE(MultiTexCoord1dv)
+#define glMultiTexCoord1fARB MANGLE(MultiTexCoord1fARB)
+#define glMultiTexCoord1f MANGLE(MultiTexCoord1f)
+#define glMultiTexCoord1fvARB MANGLE(MultiTexCoord1fvARB)
+#define glMultiTexCoord1fv MANGLE(MultiTexCoord1fv)
+#define glMultiTexCoord1hNV MANGLE(MultiTexCoord1hNV)
+#define glMultiTexCoord1hvNV MANGLE(MultiTexCoord1hvNV)
+#define glMultiTexCoord1iARB MANGLE(MultiTexCoord1iARB)
+#define glMultiTexCoord1i MANGLE(MultiTexCoord1i)
+#define glMultiTexCoord1ivARB MANGLE(MultiTexCoord1ivARB)
+#define glMultiTexCoord1iv MANGLE(MultiTexCoord1iv)
+#define glMultiTexCoord1sARB MANGLE(MultiTexCoord1sARB)
+#define glMultiTexCoord1s MANGLE(MultiTexCoord1s)
+#define glMultiTexCoord1svARB MANGLE(MultiTexCoord1svARB)
+#define glMultiTexCoord1sv MANGLE(MultiTexCoord1sv)
+#define glMultiTexCoord2dARB MANGLE(MultiTexCoord2dARB)
+#define glMultiTexCoord2d MANGLE(MultiTexCoord2d)
+#define glMultiTexCoord2dvARB MANGLE(MultiTexCoord2dvARB)
+#define glMultiTexCoord2dv MANGLE(MultiTexCoord2dv)
+#define glMultiTexCoord2fARB MANGLE(MultiTexCoord2fARB)
+#define glMultiTexCoord2f MANGLE(MultiTexCoord2f)
+#define glMultiTexCoord2fvARB MANGLE(MultiTexCoord2fvARB)
+#define glMultiTexCoord2fv MANGLE(MultiTexCoord2fv)
+#define glMultiTexCoord2hNV MANGLE(MultiTexCoord2hNV)
+#define glMultiTexCoord2hvNV MANGLE(MultiTexCoord2hvNV)
+#define glMultiTexCoord2iARB MANGLE(MultiTexCoord2iARB)
+#define glMultiTexCoord2i MANGLE(MultiTexCoord2i)
+#define glMultiTexCoord2ivARB MANGLE(MultiTexCoord2ivARB)
+#define glMultiTexCoord2iv MANGLE(MultiTexCoord2iv)
+#define glMultiTexCoord2sARB MANGLE(MultiTexCoord2sARB)
+#define glMultiTexCoord2s MANGLE(MultiTexCoord2s)
+#define glMultiTexCoord2svARB MANGLE(MultiTexCoord2svARB)
+#define glMultiTexCoord2sv MANGLE(MultiTexCoord2sv)
+#define glMultiTexCoord3dARB MANGLE(MultiTexCoord3dARB)
+#define glMultiTexCoord3d MANGLE(MultiTexCoord3d)
+#define glMultiTexCoord3dvARB MANGLE(MultiTexCoord3dvARB)
+#define glMultiTexCoord3dv MANGLE(MultiTexCoord3dv)
+#define glMultiTexCoord3fARB MANGLE(MultiTexCoord3fARB)
+#define glMultiTexCoord3f MANGLE(MultiTexCoord3f)
+#define glMultiTexCoord3fvARB MANGLE(MultiTexCoord3fvARB)
+#define glMultiTexCoord3fv MANGLE(MultiTexCoord3fv)
+#define glMultiTexCoord3hNV MANGLE(MultiTexCoord3hNV)
+#define glMultiTexCoord3hvNV MANGLE(MultiTexCoord3hvNV)
+#define glMultiTexCoord3iARB MANGLE(MultiTexCoord3iARB)
+#define glMultiTexCoord3i MANGLE(MultiTexCoord3i)
+#define glMultiTexCoord3ivARB MANGLE(MultiTexCoord3ivARB)
+#define glMultiTexCoord3iv MANGLE(MultiTexCoord3iv)
+#define glMultiTexCoord3sARB MANGLE(MultiTexCoord3sARB)
+#define glMultiTexCoord3s MANGLE(MultiTexCoord3s)
+#define glMultiTexCoord3svARB MANGLE(MultiTexCoord3svARB)
+#define glMultiTexCoord3sv MANGLE(MultiTexCoord3sv)
+#define glMultiTexCoord4dARB MANGLE(MultiTexCoord4dARB)
+#define glMultiTexCoord4d MANGLE(MultiTexCoord4d)
+#define glMultiTexCoord4dvARB MANGLE(MultiTexCoord4dvARB)
+#define glMultiTexCoord4dv MANGLE(MultiTexCoord4dv)
+#define glMultiTexCoord4fARB MANGLE(MultiTexCoord4fARB)
+#define glMultiTexCoord4f MANGLE(MultiTexCoord4f)
+#define glMultiTexCoord4fvARB MANGLE(MultiTexCoord4fvARB)
+#define glMultiTexCoord4fv MANGLE(MultiTexCoord4fv)
+#define glMultiTexCoord4hNV MANGLE(MultiTexCoord4hNV)
+#define glMultiTexCoord4hvNV MANGLE(MultiTexCoord4hvNV)
+#define glMultiTexCoord4iARB MANGLE(MultiTexCoord4iARB)
+#define glMultiTexCoord4i MANGLE(MultiTexCoord4i)
+#define glMultiTexCoord4ivARB MANGLE(MultiTexCoord4ivARB)
+#define glMultiTexCoord4iv MANGLE(MultiTexCoord4iv)
+#define glMultiTexCoord4sARB MANGLE(MultiTexCoord4sARB)
+#define glMultiTexCoord4s MANGLE(MultiTexCoord4s)
+#define glMultiTexCoord4svARB MANGLE(MultiTexCoord4svARB)
+#define glMultiTexCoord4sv MANGLE(MultiTexCoord4sv)
+#define glMultiTexCoordP1ui MANGLE(MultiTexCoordP1ui)
+#define glMultiTexCoordP1uiv MANGLE(MultiTexCoordP1uiv)
+#define glMultiTexCoordP2ui MANGLE(MultiTexCoordP2ui)
+#define glMultiTexCoordP2uiv MANGLE(MultiTexCoordP2uiv)
+#define glMultiTexCoordP3ui MANGLE(MultiTexCoordP3ui)
+#define glMultiTexCoordP3uiv MANGLE(MultiTexCoordP3uiv)
+#define glMultiTexCoordP4ui MANGLE(MultiTexCoordP4ui)
+#define glMultiTexCoordP4uiv MANGLE(MultiTexCoordP4uiv)
+#define glMultiTexCoordPointerEXT MANGLE(MultiTexCoordPointerEXT)
+#define glMultiTexEnvfEXT MANGLE(MultiTexEnvfEXT)
+#define glMultiTexEnvfvEXT MANGLE(MultiTexEnvfvEXT)
+#define glMultiTexEnviEXT MANGLE(MultiTexEnviEXT)
+#define glMultiTexEnvivEXT MANGLE(MultiTexEnvivEXT)
+#define glMultiTexGendEXT MANGLE(MultiTexGendEXT)
+#define glMultiTexGendvEXT MANGLE(MultiTexGendvEXT)
+#define glMultiTexGenfEXT MANGLE(MultiTexGenfEXT)
+#define glMultiTexGenfvEXT MANGLE(MultiTexGenfvEXT)
+#define glMultiTexGeniEXT MANGLE(MultiTexGeniEXT)
+#define glMultiTexGenivEXT MANGLE(MultiTexGenivEXT)
+#define glMultiTexImage1DEXT MANGLE(MultiTexImage1DEXT)
+#define glMultiTexImage2DEXT MANGLE(MultiTexImage2DEXT)
+#define glMultiTexImage3DEXT MANGLE(MultiTexImage3DEXT)
+#define glMultiTexParameterfEXT MANGLE(MultiTexParameterfEXT)
+#define glMultiTexParameterfvEXT MANGLE(MultiTexParameterfvEXT)
+#define glMultiTexParameteriEXT MANGLE(MultiTexParameteriEXT)
+#define glMultiTexParameterIivEXT MANGLE(MultiTexParameterIivEXT)
+#define glMultiTexParameterIuivEXT MANGLE(MultiTexParameterIuivEXT)
+#define glMultiTexParameterivEXT MANGLE(MultiTexParameterivEXT)
+#define glMultiTexRenderbufferEXT MANGLE(MultiTexRenderbufferEXT)
+#define glMultiTexSubImage1DEXT MANGLE(MultiTexSubImage1DEXT)
+#define glMultiTexSubImage2DEXT MANGLE(MultiTexSubImage2DEXT)
+#define glMultiTexSubImage3DEXT MANGLE(MultiTexSubImage3DEXT)
+#define glMultMatrixd MANGLE(MultMatrixd)
+#define glMultMatrixf MANGLE(MultMatrixf)
+#define glMultTransposeMatrixdARB MANGLE(MultTransposeMatrixdARB)
+#define glMultTransposeMatrixd MANGLE(MultTransposeMatrixd)
+#define glMultTransposeMatrixfARB MANGLE(MultTransposeMatrixfARB)
+#define glMultTransposeMatrixf MANGLE(MultTransposeMatrixf)
+#define glNamedBufferDataEXT MANGLE(NamedBufferDataEXT)
+#define glNamedBufferSubDataEXT MANGLE(NamedBufferSubDataEXT)
+#define glNamedCopyBufferSubDataEXT MANGLE(NamedCopyBufferSubDataEXT)
+#define glNamedFramebufferRenderbufferEXT MANGLE(NamedFramebufferRenderbufferEXT)
+#define glNamedFramebufferTexture1DEXT MANGLE(NamedFramebufferTexture1DEXT)
+#define glNamedFramebufferTexture2DEXT MANGLE(NamedFramebufferTexture2DEXT)
+#define glNamedFramebufferTexture3DEXT MANGLE(NamedFramebufferTexture3DEXT)
+#define glNamedFramebufferTextureEXT MANGLE(NamedFramebufferTextureEXT)
+#define glNamedFramebufferTextureFaceEXT MANGLE(NamedFramebufferTextureFaceEXT)
+#define glNamedFramebufferTextureLayerEXT MANGLE(NamedFramebufferTextureLayerEXT)
+#define glNamedProgramLocalParameter4dEXT MANGLE(NamedProgramLocalParameter4dEXT)
+#define glNamedProgramLocalParameter4dvEXT MANGLE(NamedProgramLocalParameter4dvEXT)
+#define glNamedProgramLocalParameter4fEXT MANGLE(NamedProgramLocalParameter4fEXT)
+#define glNamedProgramLocalParameter4fvEXT MANGLE(NamedProgramLocalParameter4fvEXT)
+#define glNamedProgramLocalParameterI4iEXT MANGLE(NamedProgramLocalParameterI4iEXT)
+#define glNamedProgramLocalParameterI4ivEXT MANGLE(NamedProgramLocalParameterI4ivEXT)
+#define glNamedProgramLocalParameterI4uiEXT MANGLE(NamedProgramLocalParameterI4uiEXT)
+#define glNamedProgramLocalParameterI4uivEXT MANGLE(NamedProgramLocalParameterI4uivEXT)
+#define glNamedProgramLocalParameters4fvEXT MANGLE(NamedProgramLocalParameters4fvEXT)
+#define glNamedProgramLocalParametersI4ivEXT MANGLE(NamedProgramLocalParametersI4ivEXT)
+#define glNamedProgramLocalParametersI4uivEXT MANGLE(NamedProgramLocalParametersI4uivEXT)
+#define glNamedProgramStringEXT MANGLE(NamedProgramStringEXT)
+#define glNamedRenderbufferStorageEXT MANGLE(NamedRenderbufferStorageEXT)
+#define glNamedRenderbufferStorageMultisampleCoverageEXT MANGLE(NamedRenderbufferStorageMultisampleCoverageEXT)
+#define glNamedRenderbufferStorageMultisampleEXT MANGLE(NamedRenderbufferStorageMultisampleEXT)
+#define glNamedStringARB MANGLE(NamedStringARB)
+#define glNewList MANGLE(NewList)
+#define glNewObjectBufferATI MANGLE(NewObjectBufferATI)
+#define glNormal3b MANGLE(Normal3b)
+#define glNormal3bv MANGLE(Normal3bv)
+#define glNormal3d MANGLE(Normal3d)
+#define glNormal3dv MANGLE(Normal3dv)
+#define glNormal3f MANGLE(Normal3f)
+#define glNormal3fVertex3fSUN MANGLE(Normal3fVertex3fSUN)
+#define glNormal3fVertex3fvSUN MANGLE(Normal3fVertex3fvSUN)
+#define glNormal3fv MANGLE(Normal3fv)
+#define glNormal3hNV MANGLE(Normal3hNV)
+#define glNormal3hvNV MANGLE(Normal3hvNV)
+#define glNormal3i MANGLE(Normal3i)
+#define glNormal3iv MANGLE(Normal3iv)
+#define glNormal3s MANGLE(Normal3s)
+#define glNormal3sv MANGLE(Normal3sv)
+#define glNormalFormatNV MANGLE(NormalFormatNV)
+#define glNormalP3ui MANGLE(NormalP3ui)
+#define glNormalP3uiv MANGLE(NormalP3uiv)
+#define glNormalPointerEXT MANGLE(NormalPointerEXT)
+#define glNormalPointerListIBM MANGLE(NormalPointerListIBM)
+#define glNormalPointer MANGLE(NormalPointer)
+#define glNormalPointervINTEL MANGLE(NormalPointervINTEL)
+#define glNormalStream3bATI MANGLE(NormalStream3bATI)
+#define glNormalStream3bvATI MANGLE(NormalStream3bvATI)
+#define glNormalStream3dATI MANGLE(NormalStream3dATI)
+#define glNormalStream3dvATI MANGLE(NormalStream3dvATI)
+#define glNormalStream3fATI MANGLE(NormalStream3fATI)
+#define glNormalStream3fvATI MANGLE(NormalStream3fvATI)
+#define glNormalStream3iATI MANGLE(NormalStream3iATI)
+#define glNormalStream3ivATI MANGLE(NormalStream3ivATI)
+#define glNormalStream3sATI MANGLE(NormalStream3sATI)
+#define glNormalStream3svATI MANGLE(NormalStream3svATI)
+#define glObjectPurgeableAPPLE MANGLE(ObjectPurgeableAPPLE)
+#define glObjectUnpurgeableAPPLE MANGLE(ObjectUnpurgeableAPPLE)
+#define glOrtho MANGLE(Ortho)
+#define glPassTexCoordATI MANGLE(PassTexCoordATI)
+#define glPassThrough MANGLE(PassThrough)
+#define glPatchParameterfv MANGLE(PatchParameterfv)
+#define glPatchParameteri MANGLE(PatchParameteri)
+#define glPauseTransformFeedback MANGLE(PauseTransformFeedback)
+#define glPauseTransformFeedbackNV MANGLE(PauseTransformFeedbackNV)
+#define glPixelDataRangeNV MANGLE(PixelDataRangeNV)
+#define glPixelMapfv MANGLE(PixelMapfv)
+#define glPixelMapuiv MANGLE(PixelMapuiv)
+#define glPixelMapusv MANGLE(PixelMapusv)
+#define glPixelStoref MANGLE(PixelStoref)
+#define glPixelStorei MANGLE(PixelStorei)
+#define glPixelTexGenParameterfSGIS MANGLE(PixelTexGenParameterfSGIS)
+#define glPixelTexGenParameterfvSGIS MANGLE(PixelTexGenParameterfvSGIS)
+#define glPixelTexGenParameteriSGIS MANGLE(PixelTexGenParameteriSGIS)
+#define glPixelTexGenParameterivSGIS MANGLE(PixelTexGenParameterivSGIS)
+#define glPixelTexGenSGIX MANGLE(PixelTexGenSGIX)
+#define glPixelTransferf MANGLE(PixelTransferf)
+#define glPixelTransferi MANGLE(PixelTransferi)
+#define glPixelTransformParameterfEXT MANGLE(PixelTransformParameterfEXT)
+#define glPixelTransformParameterfvEXT MANGLE(PixelTransformParameterfvEXT)
+#define glPixelTransformParameteriEXT MANGLE(PixelTransformParameteriEXT)
+#define glPixelTransformParameterivEXT MANGLE(PixelTransformParameterivEXT)
+#define glPixelZoom MANGLE(PixelZoom)
+#define glPNTrianglesfATI MANGLE(PNTrianglesfATI)
+#define glPNTrianglesiATI MANGLE(PNTrianglesiATI)
+#define glPointParameterfARB MANGLE(PointParameterfARB)
+#define glPointParameterfEXT MANGLE(PointParameterfEXT)
+#define glPointParameterf MANGLE(PointParameterf)
+#define glPointParameterfSGIS MANGLE(PointParameterfSGIS)
+#define glPointParameterfvARB MANGLE(PointParameterfvARB)
+#define glPointParameterfvEXT MANGLE(PointParameterfvEXT)
+#define glPointParameterfv MANGLE(PointParameterfv)
+#define glPointParameterfvSGIS MANGLE(PointParameterfvSGIS)
+#define glPointParameteri MANGLE(PointParameteri)
+#define glPointParameteriNV MANGLE(PointParameteriNV)
+#define glPointParameteriv MANGLE(PointParameteriv)
+#define glPointParameterivNV MANGLE(PointParameterivNV)
+#define glPointSize MANGLE(PointSize)
+#define glPollAsyncSGIX MANGLE(PollAsyncSGIX)
+#define glPollInstrumentsSGIX MANGLE(PollInstrumentsSGIX)
+#define glPolygonMode MANGLE(PolygonMode)
+#define glPolygonOffsetEXT MANGLE(PolygonOffsetEXT)
+#define glPolygonOffset MANGLE(PolygonOffset)
+#define glPolygonStipple MANGLE(PolygonStipple)
+#define glPopAttrib MANGLE(PopAttrib)
+#define glPopClientAttrib MANGLE(PopClientAttrib)
+#define glPopMatrix MANGLE(PopMatrix)
+#define glPopName MANGLE(PopName)
+#define glPresentFrameDualFillNV MANGLE(PresentFrameDualFillNV)
+#define glPresentFrameKeyedNV MANGLE(PresentFrameKeyedNV)
+#define glPrimitiveRestartIndex MANGLE(PrimitiveRestartIndex)
+#define glPrimitiveRestartIndexNV MANGLE(PrimitiveRestartIndexNV)
+#define glPrimitiveRestartNV MANGLE(PrimitiveRestartNV)
+#define glPrioritizeTexturesEXT MANGLE(PrioritizeTexturesEXT)
+#define glPrioritizeTextures MANGLE(PrioritizeTextures)
+#define glProgramBinary MANGLE(ProgramBinary)
+#define glProgramBufferParametersfvNV MANGLE(ProgramBufferParametersfvNV)
+#define glProgramBufferParametersIivNV MANGLE(ProgramBufferParametersIivNV)
+#define glProgramBufferParametersIuivNV MANGLE(ProgramBufferParametersIuivNV)
+#define glProgramCallbackMESA MANGLE(ProgramCallbackMESA)
+#define glProgramEnvParameter4dARB MANGLE(ProgramEnvParameter4dARB)
+#define glProgramEnvParameter4dvARB MANGLE(ProgramEnvParameter4dvARB)
+#define glProgramEnvParameter4fARB MANGLE(ProgramEnvParameter4fARB)
+#define glProgramEnvParameter4fvARB MANGLE(ProgramEnvParameter4fvARB)
+#define glProgramEnvParameterI4iNV MANGLE(ProgramEnvParameterI4iNV)
+#define glProgramEnvParameterI4ivNV MANGLE(ProgramEnvParameterI4ivNV)
+#define glProgramEnvParameterI4uiNV MANGLE(ProgramEnvParameterI4uiNV)
+#define glProgramEnvParameterI4uivNV MANGLE(ProgramEnvParameterI4uivNV)
+#define glProgramEnvParameters4fvEXT MANGLE(ProgramEnvParameters4fvEXT)
+#define glProgramEnvParametersI4ivNV MANGLE(ProgramEnvParametersI4ivNV)
+#define glProgramEnvParametersI4uivNV MANGLE(ProgramEnvParametersI4uivNV)
+#define glProgramLocalParameter4dARB MANGLE(ProgramLocalParameter4dARB)
+#define glProgramLocalParameter4dvARB MANGLE(ProgramLocalParameter4dvARB)
+#define glProgramLocalParameter4fARB MANGLE(ProgramLocalParameter4fARB)
+#define glProgramLocalParameter4fvARB MANGLE(ProgramLocalParameter4fvARB)
+#define glProgramLocalParameterI4iNV MANGLE(ProgramLocalParameterI4iNV)
+#define glProgramLocalParameterI4ivNV MANGLE(ProgramLocalParameterI4ivNV)
+#define glProgramLocalParameterI4uiNV MANGLE(ProgramLocalParameterI4uiNV)
+#define glProgramLocalParameterI4uivNV MANGLE(ProgramLocalParameterI4uivNV)
+#define glProgramLocalParameters4fvEXT MANGLE(ProgramLocalParameters4fvEXT)
+#define glProgramLocalParametersI4ivNV MANGLE(ProgramLocalParametersI4ivNV)
+#define glProgramLocalParametersI4uivNV MANGLE(ProgramLocalParametersI4uivNV)
+#define glProgramNamedParameter4dNV MANGLE(ProgramNamedParameter4dNV)
+#define glProgramNamedParameter4dvNV MANGLE(ProgramNamedParameter4dvNV)
+#define glProgramNamedParameter4fNV MANGLE(ProgramNamedParameter4fNV)
+#define glProgramNamedParameter4fvNV MANGLE(ProgramNamedParameter4fvNV)
+#define glProgramParameter4dNV MANGLE(ProgramParameter4dNV)
+#define glProgramParameter4dvNV MANGLE(ProgramParameter4dvNV)
+#define glProgramParameter4fNV MANGLE(ProgramParameter4fNV)
+#define glProgramParameter4fvNV MANGLE(ProgramParameter4fvNV)
+#define glProgramParameteriARB MANGLE(ProgramParameteriARB)
+#define glProgramParameteriEXT MANGLE(ProgramParameteriEXT)
+#define glProgramParameteri MANGLE(ProgramParameteri)
+#define glProgramParameters4dvNV MANGLE(ProgramParameters4dvNV)
+#define glProgramParameters4fvNV MANGLE(ProgramParameters4fvNV)
+#define glProgramStringARB MANGLE(ProgramStringARB)
+#define glProgramSubroutineParametersuivNV MANGLE(ProgramSubroutineParametersuivNV)
+#define glProgramUniform1dEXT MANGLE(ProgramUniform1dEXT)
+#define glProgramUniform1d MANGLE(ProgramUniform1d)
+#define glProgramUniform1dvEXT MANGLE(ProgramUniform1dvEXT)
+#define glProgramUniform1dv MANGLE(ProgramUniform1dv)
+#define glProgramUniform1fEXT MANGLE(ProgramUniform1fEXT)
+#define glProgramUniform1f MANGLE(ProgramUniform1f)
+#define glProgramUniform1fvEXT MANGLE(ProgramUniform1fvEXT)
+#define glProgramUniform1fv MANGLE(ProgramUniform1fv)
+#define glProgramUniform1i64NV MANGLE(ProgramUniform1i64NV)
+#define glProgramUniform1i64vNV MANGLE(ProgramUniform1i64vNV)
+#define glProgramUniform1iEXT MANGLE(ProgramUniform1iEXT)
+#define glProgramUniform1i MANGLE(ProgramUniform1i)
+#define glProgramUniform1ivEXT MANGLE(ProgramUniform1ivEXT)
+#define glProgramUniform1iv MANGLE(ProgramUniform1iv)
+#define glProgramUniform1ui64NV MANGLE(ProgramUniform1ui64NV)
+#define glProgramUniform1ui64vNV MANGLE(ProgramUniform1ui64vNV)
+#define glProgramUniform1uiEXT MANGLE(ProgramUniform1uiEXT)
+#define glProgramUniform1ui MANGLE(ProgramUniform1ui)
+#define glProgramUniform1uivEXT MANGLE(ProgramUniform1uivEXT)
+#define glProgramUniform1uiv MANGLE(ProgramUniform1uiv)
+#define glProgramUniform2dEXT MANGLE(ProgramUniform2dEXT)
+#define glProgramUniform2d MANGLE(ProgramUniform2d)
+#define glProgramUniform2dvEXT MANGLE(ProgramUniform2dvEXT)
+#define glProgramUniform2dv MANGLE(ProgramUniform2dv)
+#define glProgramUniform2fEXT MANGLE(ProgramUniform2fEXT)
+#define glProgramUniform2f MANGLE(ProgramUniform2f)
+#define glProgramUniform2fvEXT MANGLE(ProgramUniform2fvEXT)
+#define glProgramUniform2fv MANGLE(ProgramUniform2fv)
+#define glProgramUniform2i64NV MANGLE(ProgramUniform2i64NV)
+#define glProgramUniform2i64vNV MANGLE(ProgramUniform2i64vNV)
+#define glProgramUniform2iEXT MANGLE(ProgramUniform2iEXT)
+#define glProgramUniform2i MANGLE(ProgramUniform2i)
+#define glProgramUniform2ivEXT MANGLE(ProgramUniform2ivEXT)
+#define glProgramUniform2iv MANGLE(ProgramUniform2iv)
+#define glProgramUniform2ui64NV MANGLE(ProgramUniform2ui64NV)
+#define glProgramUniform2ui64vNV MANGLE(ProgramUniform2ui64vNV)
+#define glProgramUniform2uiEXT MANGLE(ProgramUniform2uiEXT)
+#define glProgramUniform2ui MANGLE(ProgramUniform2ui)
+#define glProgramUniform2uivEXT MANGLE(ProgramUniform2uivEXT)
+#define glProgramUniform2uiv MANGLE(ProgramUniform2uiv)
+#define glProgramUniform3dEXT MANGLE(ProgramUniform3dEXT)
+#define glProgramUniform3d MANGLE(ProgramUniform3d)
+#define glProgramUniform3dvEXT MANGLE(ProgramUniform3dvEXT)
+#define glProgramUniform3dv MANGLE(ProgramUniform3dv)
+#define glProgramUniform3fEXT MANGLE(ProgramUniform3fEXT)
+#define glProgramUniform3f MANGLE(ProgramUniform3f)
+#define glProgramUniform3fvEXT MANGLE(ProgramUniform3fvEXT)
+#define glProgramUniform3fv MANGLE(ProgramUniform3fv)
+#define glProgramUniform3i64NV MANGLE(ProgramUniform3i64NV)
+#define glProgramUniform3i64vNV MANGLE(ProgramUniform3i64vNV)
+#define glProgramUniform3iEXT MANGLE(ProgramUniform3iEXT)
+#define glProgramUniform3i MANGLE(ProgramUniform3i)
+#define glProgramUniform3ivEXT MANGLE(ProgramUniform3ivEXT)
+#define glProgramUniform3iv MANGLE(ProgramUniform3iv)
+#define glProgramUniform3ui64NV MANGLE(ProgramUniform3ui64NV)
+#define glProgramUniform3ui64vNV MANGLE(ProgramUniform3ui64vNV)
+#define glProgramUniform3uiEXT MANGLE(ProgramUniform3uiEXT)
+#define glProgramUniform3ui MANGLE(ProgramUniform3ui)
+#define glProgramUniform3uivEXT MANGLE(ProgramUniform3uivEXT)
+#define glProgramUniform3uiv MANGLE(ProgramUniform3uiv)
+#define glProgramUniform4dEXT MANGLE(ProgramUniform4dEXT)
+#define glProgramUniform4d MANGLE(ProgramUniform4d)
+#define glProgramUniform4dvEXT MANGLE(ProgramUniform4dvEXT)
+#define glProgramUniform4dv MANGLE(ProgramUniform4dv)
+#define glProgramUniform4fEXT MANGLE(ProgramUniform4fEXT)
+#define glProgramUniform4f MANGLE(ProgramUniform4f)
+#define glProgramUniform4fvEXT MANGLE(ProgramUniform4fvEXT)
+#define glProgramUniform4fv MANGLE(ProgramUniform4fv)
+#define glProgramUniform4i64NV MANGLE(ProgramUniform4i64NV)
+#define glProgramUniform4i64vNV MANGLE(ProgramUniform4i64vNV)
+#define glProgramUniform4iEXT MANGLE(ProgramUniform4iEXT)
+#define glProgramUniform4i MANGLE(ProgramUniform4i)
+#define glProgramUniform4ivEXT MANGLE(ProgramUniform4ivEXT)
+#define glProgramUniform4iv MANGLE(ProgramUniform4iv)
+#define glProgramUniform4ui64NV MANGLE(ProgramUniform4ui64NV)
+#define glProgramUniform4ui64vNV MANGLE(ProgramUniform4ui64vNV)
+#define glProgramUniform4uiEXT MANGLE(ProgramUniform4uiEXT)
+#define glProgramUniform4ui MANGLE(ProgramUniform4ui)
+#define glProgramUniform4uivEXT MANGLE(ProgramUniform4uivEXT)
+#define glProgramUniform4uiv MANGLE(ProgramUniform4uiv)
+#define glProgramUniformMatrix2dvEXT MANGLE(ProgramUniformMatrix2dvEXT)
+#define glProgramUniformMatrix2dv MANGLE(ProgramUniformMatrix2dv)
+#define glProgramUniformMatrix2fvEXT MANGLE(ProgramUniformMatrix2fvEXT)
+#define glProgramUniformMatrix2fv MANGLE(ProgramUniformMatrix2fv)
+#define glProgramUniformMatrix2x3dvEXT MANGLE(ProgramUniformMatrix2x3dvEXT)
+#define glProgramUniformMatrix2x3dv MANGLE(ProgramUniformMatrix2x3dv)
+#define glProgramUniformMatrix2x3fvEXT MANGLE(ProgramUniformMatrix2x3fvEXT)
+#define glProgramUniformMatrix2x3fv MANGLE(ProgramUniformMatrix2x3fv)
+#define glProgramUniformMatrix2x4dvEXT MANGLE(ProgramUniformMatrix2x4dvEXT)
+#define glProgramUniformMatrix2x4dv MANGLE(ProgramUniformMatrix2x4dv)
+#define glProgramUniformMatrix2x4fvEXT MANGLE(ProgramUniformMatrix2x4fvEXT)
+#define glProgramUniformMatrix2x4fv MANGLE(ProgramUniformMatrix2x4fv)
+#define glProgramUniformMatrix3dvEXT MANGLE(ProgramUniformMatrix3dvEXT)
+#define glProgramUniformMatrix3dv MANGLE(ProgramUniformMatrix3dv)
+#define glProgramUniformMatrix3fvEXT MANGLE(ProgramUniformMatrix3fvEXT)
+#define glProgramUniformMatrix3fv MANGLE(ProgramUniformMatrix3fv)
+#define glProgramUniformMatrix3x2dvEXT MANGLE(ProgramUniformMatrix3x2dvEXT)
+#define glProgramUniformMatrix3x2dv MANGLE(ProgramUniformMatrix3x2dv)
+#define glProgramUniformMatrix3x2fvEXT MANGLE(ProgramUniformMatrix3x2fvEXT)
+#define glProgramUniformMatrix3x2fv MANGLE(ProgramUniformMatrix3x2fv)
+#define glProgramUniformMatrix3x4dvEXT MANGLE(ProgramUniformMatrix3x4dvEXT)
+#define glProgramUniformMatrix3x4dv MANGLE(ProgramUniformMatrix3x4dv)
+#define glProgramUniformMatrix3x4fvEXT MANGLE(ProgramUniformMatrix3x4fvEXT)
+#define glProgramUniformMatrix3x4fv MANGLE(ProgramUniformMatrix3x4fv)
+#define glProgramUniformMatrix4dvEXT MANGLE(ProgramUniformMatrix4dvEXT)
+#define glProgramUniformMatrix4dv MANGLE(ProgramUniformMatrix4dv)
+#define glProgramUniformMatrix4fvEXT MANGLE(ProgramUniformMatrix4fvEXT)
+#define glProgramUniformMatrix4fv MANGLE(ProgramUniformMatrix4fv)
+#define glProgramUniformMatrix4x2dvEXT MANGLE(ProgramUniformMatrix4x2dvEXT)
+#define glProgramUniformMatrix4x2dv MANGLE(ProgramUniformMatrix4x2dv)
+#define glProgramUniformMatrix4x2fvEXT MANGLE(ProgramUniformMatrix4x2fvEXT)
+#define glProgramUniformMatrix4x2fv MANGLE(ProgramUniformMatrix4x2fv)
+#define glProgramUniformMatrix4x3dvEXT MANGLE(ProgramUniformMatrix4x3dvEXT)
+#define glProgramUniformMatrix4x3dv MANGLE(ProgramUniformMatrix4x3dv)
+#define glProgramUniformMatrix4x3fvEXT MANGLE(ProgramUniformMatrix4x3fvEXT)
+#define glProgramUniformMatrix4x3fv MANGLE(ProgramUniformMatrix4x3fv)
+#define glProgramUniformui64NV MANGLE(ProgramUniformui64NV)
+#define glProgramUniformui64vNV MANGLE(ProgramUniformui64vNV)
+#define glProgramVertexLimitNV MANGLE(ProgramVertexLimitNV)
+#define glProvokingVertexEXT MANGLE(ProvokingVertexEXT)
+#define glProvokingVertex MANGLE(ProvokingVertex)
+#define glPushAttrib MANGLE(PushAttrib)
+#define glPushClientAttribDefaultEXT MANGLE(PushClientAttribDefaultEXT)
+#define glPushClientAttrib MANGLE(PushClientAttrib)
+#define glPushMatrix MANGLE(PushMatrix)
+#define glPushName MANGLE(PushName)
+#define glQueryCounter MANGLE(QueryCounter)
+#define glRasterPos2d MANGLE(RasterPos2d)
+#define glRasterPos2dv MANGLE(RasterPos2dv)
+#define glRasterPos2f MANGLE(RasterPos2f)
+#define glRasterPos2fv MANGLE(RasterPos2fv)
+#define glRasterPos2i MANGLE(RasterPos2i)
+#define glRasterPos2iv MANGLE(RasterPos2iv)
+#define glRasterPos2s MANGLE(RasterPos2s)
+#define glRasterPos2sv MANGLE(RasterPos2sv)
+#define glRasterPos3d MANGLE(RasterPos3d)
+#define glRasterPos3dv MANGLE(RasterPos3dv)
+#define glRasterPos3f MANGLE(RasterPos3f)
+#define glRasterPos3fv MANGLE(RasterPos3fv)
+#define glRasterPos3i MANGLE(RasterPos3i)
+#define glRasterPos3iv MANGLE(RasterPos3iv)
+#define glRasterPos3s MANGLE(RasterPos3s)
+#define glRasterPos3sv MANGLE(RasterPos3sv)
+#define glRasterPos4d MANGLE(RasterPos4d)
+#define glRasterPos4dv MANGLE(RasterPos4dv)
+#define glRasterPos4f MANGLE(RasterPos4f)
+#define glRasterPos4fv MANGLE(RasterPos4fv)
+#define glRasterPos4i MANGLE(RasterPos4i)
+#define glRasterPos4iv MANGLE(RasterPos4iv)
+#define glRasterPos4s MANGLE(RasterPos4s)
+#define glRasterPos4sv MANGLE(RasterPos4sv)
+#define glReadBuffer MANGLE(ReadBuffer)
+#define glReadInstrumentsSGIX MANGLE(ReadInstrumentsSGIX)
+#define glReadnPixelsARB MANGLE(ReadnPixelsARB)
+#define glReadPixels MANGLE(ReadPixels)
+#define glRectd MANGLE(Rectd)
+#define glRectdv MANGLE(Rectdv)
+#define glRectf MANGLE(Rectf)
+#define glRectfv MANGLE(Rectfv)
+#define glRecti MANGLE(Recti)
+#define glRectiv MANGLE(Rectiv)
+#define glRects MANGLE(Rects)
+#define glRectsv MANGLE(Rectsv)
+#define glReferencePlaneSGIX MANGLE(ReferencePlaneSGIX)
+#define glReleaseShaderCompiler MANGLE(ReleaseShaderCompiler)
+#define glRenderbufferStorageEXT MANGLE(RenderbufferStorageEXT)
+#define glRenderbufferStorage MANGLE(RenderbufferStorage)
+#define glRenderbufferStorageMultisampleCoverageNV MANGLE(RenderbufferStorageMultisampleCoverageNV)
+#define glRenderbufferStorageMultisampleEXT MANGLE(RenderbufferStorageMultisampleEXT)
+#define glRenderbufferStorageMultisample MANGLE(RenderbufferStorageMultisample)
+#define glRenderMode MANGLE(RenderMode)
+#define glReplacementCodePointerSUN MANGLE(ReplacementCodePointerSUN)
+#define glReplacementCodeubSUN MANGLE(ReplacementCodeubSUN)
+#define glReplacementCodeubvSUN MANGLE(ReplacementCodeubvSUN)
+#define glReplacementCodeuiColor3fVertex3fSUN MANGLE(ReplacementCodeuiColor3fVertex3fSUN)
+#define glReplacementCodeuiColor3fVertex3fvSUN MANGLE(ReplacementCodeuiColor3fVertex3fvSUN)
+#define glReplacementCodeuiColor4fNormal3fVertex3fSUN MANGLE(ReplacementCodeuiColor4fNormal3fVertex3fSUN)
+#define glReplacementCodeuiColor4fNormal3fVertex3fvSUN MANGLE(ReplacementCodeuiColor4fNormal3fVertex3fvSUN)
+#define glReplacementCodeuiColor4ubVertex3fSUN MANGLE(ReplacementCodeuiColor4ubVertex3fSUN)
+#define glReplacementCodeuiColor4ubVertex3fvSUN MANGLE(ReplacementCodeuiColor4ubVertex3fvSUN)
+#define glReplacementCodeuiNormal3fVertex3fSUN MANGLE(ReplacementCodeuiNormal3fVertex3fSUN)
+#define glReplacementCodeuiNormal3fVertex3fvSUN MANGLE(ReplacementCodeuiNormal3fVertex3fvSUN)
+#define glReplacementCodeuiSUN MANGLE(ReplacementCodeuiSUN)
+#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN MANGLE(ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN)
+#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN MANGLE(ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN)
+#define glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN MANGLE(ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN)
+#define glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN MANGLE(ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN)
+#define glReplacementCodeuiTexCoord2fVertex3fSUN MANGLE(ReplacementCodeuiTexCoord2fVertex3fSUN)
+#define glReplacementCodeuiTexCoord2fVertex3fvSUN MANGLE(ReplacementCodeuiTexCoord2fVertex3fvSUN)
+#define glReplacementCodeuiVertex3fSUN MANGLE(ReplacementCodeuiVertex3fSUN)
+#define glReplacementCodeuiVertex3fvSUN MANGLE(ReplacementCodeuiVertex3fvSUN)
+#define glReplacementCodeuivSUN MANGLE(ReplacementCodeuivSUN)
+#define glReplacementCodeusSUN MANGLE(ReplacementCodeusSUN)
+#define glReplacementCodeusvSUN MANGLE(ReplacementCodeusvSUN)
+#define glRequestResidentProgramsNV MANGLE(RequestResidentProgramsNV)
+#define glResetHistogramEXT MANGLE(ResetHistogramEXT)
+#define glResetHistogram MANGLE(ResetHistogram)
+#define glResetMinmaxEXT MANGLE(ResetMinmaxEXT)
+#define glResetMinmax MANGLE(ResetMinmax)
+#define glResizeBuffersMESA MANGLE(ResizeBuffersMESA)
+#define glResumeTransformFeedback MANGLE(ResumeTransformFeedback)
+#define glResumeTransformFeedbackNV MANGLE(ResumeTransformFeedbackNV)
+#define glRotated MANGLE(Rotated)
+#define glRotatef MANGLE(Rotatef)
+#define glSampleCoverageARB MANGLE(SampleCoverageARB)
+#define glSampleCoverage MANGLE(SampleCoverage)
+#define glSampleMapATI MANGLE(SampleMapATI)
+#define glSampleMaskEXT MANGLE(SampleMaskEXT)
+#define glSampleMaski MANGLE(SampleMaski)
+#define glSampleMaskIndexedNV MANGLE(SampleMaskIndexedNV)
+#define glSampleMaskSGIS MANGLE(SampleMaskSGIS)
+#define glSamplePatternEXT MANGLE(SamplePatternEXT)
+#define glSamplePatternSGIS MANGLE(SamplePatternSGIS)
+#define glSamplerParameterf MANGLE(SamplerParameterf)
+#define glSamplerParameterfv MANGLE(SamplerParameterfv)
+#define glSamplerParameterIiv MANGLE(SamplerParameterIiv)
+#define glSamplerParameteri MANGLE(SamplerParameteri)
+#define glSamplerParameterIuiv MANGLE(SamplerParameterIuiv)
+#define glSamplerParameteriv MANGLE(SamplerParameteriv)
+#define glScaled MANGLE(Scaled)
+#define glScalef MANGLE(Scalef)
+#define glScissorArrayv MANGLE(ScissorArrayv)
+#define glScissorIndexed MANGLE(ScissorIndexed)
+#define glScissorIndexedv MANGLE(ScissorIndexedv)
+#define glScissor MANGLE(Scissor)
+#define glSecondaryColor3bEXT MANGLE(SecondaryColor3bEXT)
+#define glSecondaryColor3b MANGLE(SecondaryColor3b)
+#define glSecondaryColor3bvEXT MANGLE(SecondaryColor3bvEXT)
+#define glSecondaryColor3bv MANGLE(SecondaryColor3bv)
+#define glSecondaryColor3dEXT MANGLE(SecondaryColor3dEXT)
+#define glSecondaryColor3d MANGLE(SecondaryColor3d)
+#define glSecondaryColor3dvEXT MANGLE(SecondaryColor3dvEXT)
+#define glSecondaryColor3dv MANGLE(SecondaryColor3dv)
+#define glSecondaryColor3fEXT MANGLE(SecondaryColor3fEXT)
+#define glSecondaryColor3f MANGLE(SecondaryColor3f)
+#define glSecondaryColor3fvEXT MANGLE(SecondaryColor3fvEXT)
+#define glSecondaryColor3fv MANGLE(SecondaryColor3fv)
+#define glSecondaryColor3hNV MANGLE(SecondaryColor3hNV)
+#define glSecondaryColor3hvNV MANGLE(SecondaryColor3hvNV)
+#define glSecondaryColor3iEXT MANGLE(SecondaryColor3iEXT)
+#define glSecondaryColor3i MANGLE(SecondaryColor3i)
+#define glSecondaryColor3ivEXT MANGLE(SecondaryColor3ivEXT)
+#define glSecondaryColor3iv MANGLE(SecondaryColor3iv)
+#define glSecondaryColor3sEXT MANGLE(SecondaryColor3sEXT)
+#define glSecondaryColor3s MANGLE(SecondaryColor3s)
+#define glSecondaryColor3svEXT MANGLE(SecondaryColor3svEXT)
+#define glSecondaryColor3sv MANGLE(SecondaryColor3sv)
+#define glSecondaryColor3ubEXT MANGLE(SecondaryColor3ubEXT)
+#define glSecondaryColor3ub MANGLE(SecondaryColor3ub)
+#define glSecondaryColor3ubvEXT MANGLE(SecondaryColor3ubvEXT)
+#define glSecondaryColor3ubv MANGLE(SecondaryColor3ubv)
+#define glSecondaryColor3uiEXT MANGLE(SecondaryColor3uiEXT)
+#define glSecondaryColor3ui MANGLE(SecondaryColor3ui)
+#define glSecondaryColor3uivEXT MANGLE(SecondaryColor3uivEXT)
+#define glSecondaryColor3uiv MANGLE(SecondaryColor3uiv)
+#define glSecondaryColor3usEXT MANGLE(SecondaryColor3usEXT)
+#define glSecondaryColor3us MANGLE(SecondaryColor3us)
+#define glSecondaryColor3usvEXT MANGLE(SecondaryColor3usvEXT)
+#define glSecondaryColor3usv MANGLE(SecondaryColor3usv)
+#define glSecondaryColorFormatNV MANGLE(SecondaryColorFormatNV)
+#define glSecondaryColorP3ui MANGLE(SecondaryColorP3ui)
+#define glSecondaryColorP3uiv MANGLE(SecondaryColorP3uiv)
+#define glSecondaryColorPointerEXT MANGLE(SecondaryColorPointerEXT)
+#define glSecondaryColorPointerListIBM MANGLE(SecondaryColorPointerListIBM)
+#define glSecondaryColorPointer MANGLE(SecondaryColorPointer)
+#define glSelectBuffer MANGLE(SelectBuffer)
+#define glSelectPerfMonitorCountersAMD MANGLE(SelectPerfMonitorCountersAMD)
+#define glSeparableFilter2DEXT MANGLE(SeparableFilter2DEXT)
+#define glSeparableFilter2D MANGLE(SeparableFilter2D)
+#define glSetFenceAPPLE MANGLE(SetFenceAPPLE)
+#define glSetFenceNV MANGLE(SetFenceNV)
+#define glSetFragmentShaderConstantATI MANGLE(SetFragmentShaderConstantATI)
+#define glSetInvariantEXT MANGLE(SetInvariantEXT)
+#define glSetLocalConstantEXT MANGLE(SetLocalConstantEXT)
+#define glShadeModel MANGLE(ShadeModel)
+#define glShaderBinary MANGLE(ShaderBinary)
+#define glShaderOp1EXT MANGLE(ShaderOp1EXT)
+#define glShaderOp2EXT MANGLE(ShaderOp2EXT)
+#define glShaderOp3EXT MANGLE(ShaderOp3EXT)
+#define glShaderSourceARB MANGLE(ShaderSourceARB)
+#define glShaderSource MANGLE(ShaderSource)
+#define glSharpenTexFuncSGIS MANGLE(SharpenTexFuncSGIS)
+#define glSpriteParameterfSGIX MANGLE(SpriteParameterfSGIX)
+#define glSpriteParameterfvSGIX MANGLE(SpriteParameterfvSGIX)
+#define glSpriteParameteriSGIX MANGLE(SpriteParameteriSGIX)
+#define glSpriteParameterivSGIX MANGLE(SpriteParameterivSGIX)
+#define glStartInstrumentsSGIX MANGLE(StartInstrumentsSGIX)
+#define glStencilClearTagEXT MANGLE(StencilClearTagEXT)
+#define glStencilFunc MANGLE(StencilFunc)
+#define glStencilFuncSeparateATI MANGLE(StencilFuncSeparateATI)
+#define glStencilFuncSeparate MANGLE(StencilFuncSeparate)
+#define glStencilMask MANGLE(StencilMask)
+#define glStencilMaskSeparate MANGLE(StencilMaskSeparate)
+#define glStencilOp MANGLE(StencilOp)
+#define glStencilOpSeparateATI MANGLE(StencilOpSeparateATI)
+#define glStencilOpSeparate MANGLE(StencilOpSeparate)
+#define glStopInstrumentsSGIX MANGLE(StopInstrumentsSGIX)
+#define glStringMarkerGREMEDY MANGLE(StringMarkerGREMEDY)
+#define glSwizzleEXT MANGLE(SwizzleEXT)
+#define glTagSampleBufferSGIX MANGLE(TagSampleBufferSGIX)
+#define glTangent3bEXT MANGLE(Tangent3bEXT)
+#define glTangent3bvEXT MANGLE(Tangent3bvEXT)
+#define glTangent3dEXT MANGLE(Tangent3dEXT)
+#define glTangent3dvEXT MANGLE(Tangent3dvEXT)
+#define glTangent3fEXT MANGLE(Tangent3fEXT)
+#define glTangent3fvEXT MANGLE(Tangent3fvEXT)
+#define glTangent3iEXT MANGLE(Tangent3iEXT)
+#define glTangent3ivEXT MANGLE(Tangent3ivEXT)
+#define glTangent3sEXT MANGLE(Tangent3sEXT)
+#define glTangent3svEXT MANGLE(Tangent3svEXT)
+#define glTangentPointerEXT MANGLE(TangentPointerEXT)
+#define glTbufferMask3DFX MANGLE(TbufferMask3DFX)
+#define glTessellationFactorAMD MANGLE(TessellationFactorAMD)
+#define glTessellationModeAMD MANGLE(TessellationModeAMD)
+#define glTestFenceAPPLE MANGLE(TestFenceAPPLE)
+#define glTestFenceNV MANGLE(TestFenceNV)
+#define glTestObjectAPPLE MANGLE(TestObjectAPPLE)
+#define glTexBufferARB MANGLE(TexBufferARB)
+#define glTexBufferEXT MANGLE(TexBufferEXT)
+#define glTexBuffer MANGLE(TexBuffer)
+#define glTexBumpParameterfvATI MANGLE(TexBumpParameterfvATI)
+#define glTexBumpParameterivATI MANGLE(TexBumpParameterivATI)
+#define glTexCoord1d MANGLE(TexCoord1d)
+#define glTexCoord1dv MANGLE(TexCoord1dv)
+#define glTexCoord1f MANGLE(TexCoord1f)
+#define glTexCoord1fv MANGLE(TexCoord1fv)
+#define glTexCoord1hNV MANGLE(TexCoord1hNV)
+#define glTexCoord1hvNV MANGLE(TexCoord1hvNV)
+#define glTexCoord1i MANGLE(TexCoord1i)
+#define glTexCoord1iv MANGLE(TexCoord1iv)
+#define glTexCoord1s MANGLE(TexCoord1s)
+#define glTexCoord1sv MANGLE(TexCoord1sv)
+#define glTexCoord2d MANGLE(TexCoord2d)
+#define glTexCoord2dv MANGLE(TexCoord2dv)
+#define glTexCoord2fColor3fVertex3fSUN MANGLE(TexCoord2fColor3fVertex3fSUN)
+#define glTexCoord2fColor3fVertex3fvSUN MANGLE(TexCoord2fColor3fVertex3fvSUN)
+#define glTexCoord2fColor4fNormal3fVertex3fSUN MANGLE(TexCoord2fColor4fNormal3fVertex3fSUN)
+#define glTexCoord2fColor4fNormal3fVertex3fvSUN MANGLE(TexCoord2fColor4fNormal3fVertex3fvSUN)
+#define glTexCoord2fColor4ubVertex3fSUN MANGLE(TexCoord2fColor4ubVertex3fSUN)
+#define glTexCoord2fColor4ubVertex3fvSUN MANGLE(TexCoord2fColor4ubVertex3fvSUN)
+#define glTexCoord2f MANGLE(TexCoord2f)
+#define glTexCoord2fNormal3fVertex3fSUN MANGLE(TexCoord2fNormal3fVertex3fSUN)
+#define glTexCoord2fNormal3fVertex3fvSUN MANGLE(TexCoord2fNormal3fVertex3fvSUN)
+#define glTexCoord2fVertex3fSUN MANGLE(TexCoord2fVertex3fSUN)
+#define glTexCoord2fVertex3fvSUN MANGLE(TexCoord2fVertex3fvSUN)
+#define glTexCoord2fv MANGLE(TexCoord2fv)
+#define glTexCoord2hNV MANGLE(TexCoord2hNV)
+#define glTexCoord2hvNV MANGLE(TexCoord2hvNV)
+#define glTexCoord2i MANGLE(TexCoord2i)
+#define glTexCoord2iv MANGLE(TexCoord2iv)
+#define glTexCoord2s MANGLE(TexCoord2s)
+#define glTexCoord2sv MANGLE(TexCoord2sv)
+#define glTexCoord3d MANGLE(TexCoord3d)
+#define glTexCoord3dv MANGLE(TexCoord3dv)
+#define glTexCoord3f MANGLE(TexCoord3f)
+#define glTexCoord3fv MANGLE(TexCoord3fv)
+#define glTexCoord3hNV MANGLE(TexCoord3hNV)
+#define glTexCoord3hvNV MANGLE(TexCoord3hvNV)
+#define glTexCoord3i MANGLE(TexCoord3i)
+#define glTexCoord3iv MANGLE(TexCoord3iv)
+#define glTexCoord3s MANGLE(TexCoord3s)
+#define glTexCoord3sv MANGLE(TexCoord3sv)
+#define glTexCoord4d MANGLE(TexCoord4d)
+#define glTexCoord4dv MANGLE(TexCoord4dv)
+#define glTexCoord4fColor4fNormal3fVertex4fSUN MANGLE(TexCoord4fColor4fNormal3fVertex4fSUN)
+#define glTexCoord4fColor4fNormal3fVertex4fvSUN MANGLE(TexCoord4fColor4fNormal3fVertex4fvSUN)
+#define glTexCoord4f MANGLE(TexCoord4f)
+#define glTexCoord4fVertex4fSUN MANGLE(TexCoord4fVertex4fSUN)
+#define glTexCoord4fVertex4fvSUN MANGLE(TexCoord4fVertex4fvSUN)
+#define glTexCoord4fv MANGLE(TexCoord4fv)
+#define glTexCoord4hNV MANGLE(TexCoord4hNV)
+#define glTexCoord4hvNV MANGLE(TexCoord4hvNV)
+#define glTexCoord4i MANGLE(TexCoord4i)
+#define glTexCoord4iv MANGLE(TexCoord4iv)
+#define glTexCoord4s MANGLE(TexCoord4s)
+#define glTexCoord4sv MANGLE(TexCoord4sv)
+#define glTexCoordFormatNV MANGLE(TexCoordFormatNV)
+#define glTexCoordP1ui MANGLE(TexCoordP1ui)
+#define glTexCoordP1uiv MANGLE(TexCoordP1uiv)
+#define glTexCoordP2ui MANGLE(TexCoordP2ui)
+#define glTexCoordP2uiv MANGLE(TexCoordP2uiv)
+#define glTexCoordP3ui MANGLE(TexCoordP3ui)
+#define glTexCoordP3uiv MANGLE(TexCoordP3uiv)
+#define glTexCoordP4ui MANGLE(TexCoordP4ui)
+#define glTexCoordP4uiv MANGLE(TexCoordP4uiv)
+#define glTexCoordPointerEXT MANGLE(TexCoordPointerEXT)
+#define glTexCoordPointerListIBM MANGLE(TexCoordPointerListIBM)
+#define glTexCoordPointer MANGLE(TexCoordPointer)
+#define glTexCoordPointervINTEL MANGLE(TexCoordPointervINTEL)
+#define glTexEnvf MANGLE(TexEnvf)
+#define glTexEnvfv MANGLE(TexEnvfv)
+#define glTexEnvi MANGLE(TexEnvi)
+#define glTexEnviv MANGLE(TexEnviv)
+#define glTexFilterFuncSGIS MANGLE(TexFilterFuncSGIS)
+#define glTexGend MANGLE(TexGend)
+#define glTexGendv MANGLE(TexGendv)
+#define glTexGenf MANGLE(TexGenf)
+#define glTexGenfv MANGLE(TexGenfv)
+#define glTexGeni MANGLE(TexGeni)
+#define glTexGeniv MANGLE(TexGeniv)
+#define glTexImage1D MANGLE(TexImage1D)
+#define glTexImage2D MANGLE(TexImage2D)
+#define glTexImage2DMultisample MANGLE(TexImage2DMultisample)
+#define glTexImage3DEXT MANGLE(TexImage3DEXT)
+#define glTexImage3D MANGLE(TexImage3D)
+#define glTexImage3DMultisample MANGLE(TexImage3DMultisample)
+#define glTexImage4DSGIS MANGLE(TexImage4DSGIS)
+#define glTexParameterf MANGLE(TexParameterf)
+#define glTexParameterfv MANGLE(TexParameterfv)
+#define glTexParameterIivEXT MANGLE(TexParameterIivEXT)
+#define glTexParameterIiv MANGLE(TexParameterIiv)
+#define glTexParameteri MANGLE(TexParameteri)
+#define glTexParameterIuivEXT MANGLE(TexParameterIuivEXT)
+#define glTexParameterIuiv MANGLE(TexParameterIuiv)
+#define glTexParameteriv MANGLE(TexParameteriv)
+#define glTexRenderbufferNV MANGLE(TexRenderbufferNV)
+#define glTexSubImage1DEXT MANGLE(TexSubImage1DEXT)
+#define glTexSubImage1D MANGLE(TexSubImage1D)
+#define glTexSubImage2DEXT MANGLE(TexSubImage2DEXT)
+#define glTexSubImage2D MANGLE(TexSubImage2D)
+#define glTexSubImage3DEXT MANGLE(TexSubImage3DEXT)
+#define glTexSubImage3D MANGLE(TexSubImage3D)
+#define glTexSubImage4DSGIS MANGLE(TexSubImage4DSGIS)
+#define glTextureBarrierNV MANGLE(TextureBarrierNV)
+#define glTextureBufferEXT MANGLE(TextureBufferEXT)
+#define glTextureColorMaskSGIS MANGLE(TextureColorMaskSGIS)
+#define glTextureImage1DEXT MANGLE(TextureImage1DEXT)
+#define glTextureImage2DEXT MANGLE(TextureImage2DEXT)
+#define glTextureImage3DEXT MANGLE(TextureImage3DEXT)
+#define glTextureLightEXT MANGLE(TextureLightEXT)
+#define glTextureMaterialEXT MANGLE(TextureMaterialEXT)
+#define glTextureNormalEXT MANGLE(TextureNormalEXT)
+#define glTextureParameterfEXT MANGLE(TextureParameterfEXT)
+#define glTextureParameterfvEXT MANGLE(TextureParameterfvEXT)
+#define glTextureParameteriEXT MANGLE(TextureParameteriEXT)
+#define glTextureParameterIivEXT MANGLE(TextureParameterIivEXT)
+#define glTextureParameterIuivEXT MANGLE(TextureParameterIuivEXT)
+#define glTextureParameterivEXT MANGLE(TextureParameterivEXT)
+#define glTextureRangeAPPLE MANGLE(TextureRangeAPPLE)
+#define glTextureRenderbufferEXT MANGLE(TextureRenderbufferEXT)
+#define glTextureSubImage1DEXT MANGLE(TextureSubImage1DEXT)
+#define glTextureSubImage2DEXT MANGLE(TextureSubImage2DEXT)
+#define glTextureSubImage3DEXT MANGLE(TextureSubImage3DEXT)
+#define glTrackMatrixNV MANGLE(TrackMatrixNV)
+#define glTransformFeedbackAttribsNV MANGLE(TransformFeedbackAttribsNV)
+#define glTransformFeedbackStreamAttribsNV MANGLE(TransformFeedbackStreamAttribsNV)
+#define glTransformFeedbackVaryingsEXT MANGLE(TransformFeedbackVaryingsEXT)
+#define glTransformFeedbackVaryings MANGLE(TransformFeedbackVaryings)
+#define glTransformFeedbackVaryingsNV MANGLE(TransformFeedbackVaryingsNV)
+#define glTranslated MANGLE(Translated)
+#define glTranslatef MANGLE(Translatef)
+#define glUniform1d MANGLE(Uniform1d)
+#define glUniform1dv MANGLE(Uniform1dv)
+#define glUniform1fARB MANGLE(Uniform1fARB)
+#define glUniform1f MANGLE(Uniform1f)
+#define glUniform1fvARB MANGLE(Uniform1fvARB)
+#define glUniform1fv MANGLE(Uniform1fv)
+#define glUniform1i64NV MANGLE(Uniform1i64NV)
+#define glUniform1i64vNV MANGLE(Uniform1i64vNV)
+#define glUniform1iARB MANGLE(Uniform1iARB)
+#define glUniform1i MANGLE(Uniform1i)
+#define glUniform1ivARB MANGLE(Uniform1ivARB)
+#define glUniform1iv MANGLE(Uniform1iv)
+#define glUniform1ui64NV MANGLE(Uniform1ui64NV)
+#define glUniform1ui64vNV MANGLE(Uniform1ui64vNV)
+#define glUniform1uiEXT MANGLE(Uniform1uiEXT)
+#define glUniform1ui MANGLE(Uniform1ui)
+#define glUniform1uivEXT MANGLE(Uniform1uivEXT)
+#define glUniform1uiv MANGLE(Uniform1uiv)
+#define glUniform2d MANGLE(Uniform2d)
+#define glUniform2dv MANGLE(Uniform2dv)
+#define glUniform2fARB MANGLE(Uniform2fARB)
+#define glUniform2f MANGLE(Uniform2f)
+#define glUniform2fvARB MANGLE(Uniform2fvARB)
+#define glUniform2fv MANGLE(Uniform2fv)
+#define glUniform2i64NV MANGLE(Uniform2i64NV)
+#define glUniform2i64vNV MANGLE(Uniform2i64vNV)
+#define glUniform2iARB MANGLE(Uniform2iARB)
+#define glUniform2i MANGLE(Uniform2i)
+#define glUniform2ivARB MANGLE(Uniform2ivARB)
+#define glUniform2iv MANGLE(Uniform2iv)
+#define glUniform2ui64NV MANGLE(Uniform2ui64NV)
+#define glUniform2ui64vNV MANGLE(Uniform2ui64vNV)
+#define glUniform2uiEXT MANGLE(Uniform2uiEXT)
+#define glUniform2ui MANGLE(Uniform2ui)
+#define glUniform2uivEXT MANGLE(Uniform2uivEXT)
+#define glUniform2uiv MANGLE(Uniform2uiv)
+#define glUniform3d MANGLE(Uniform3d)
+#define glUniform3dv MANGLE(Uniform3dv)
+#define glUniform3fARB MANGLE(Uniform3fARB)
+#define glUniform3f MANGLE(Uniform3f)
+#define glUniform3fvARB MANGLE(Uniform3fvARB)
+#define glUniform3fv MANGLE(Uniform3fv)
+#define glUniform3i64NV MANGLE(Uniform3i64NV)
+#define glUniform3i64vNV MANGLE(Uniform3i64vNV)
+#define glUniform3iARB MANGLE(Uniform3iARB)
+#define glUniform3i MANGLE(Uniform3i)
+#define glUniform3ivARB MANGLE(Uniform3ivARB)
+#define glUniform3iv MANGLE(Uniform3iv)
+#define glUniform3ui64NV MANGLE(Uniform3ui64NV)
+#define glUniform3ui64vNV MANGLE(Uniform3ui64vNV)
+#define glUniform3uiEXT MANGLE(Uniform3uiEXT)
+#define glUniform3ui MANGLE(Uniform3ui)
+#define glUniform3uivEXT MANGLE(Uniform3uivEXT)
+#define glUniform3uiv MANGLE(Uniform3uiv)
+#define glUniform4d MANGLE(Uniform4d)
+#define glUniform4dv MANGLE(Uniform4dv)
+#define glUniform4fARB MANGLE(Uniform4fARB)
+#define glUniform4f MANGLE(Uniform4f)
+#define glUniform4fvARB MANGLE(Uniform4fvARB)
+#define glUniform4fv MANGLE(Uniform4fv)
+#define glUniform4i64NV MANGLE(Uniform4i64NV)
+#define glUniform4i64vNV MANGLE(Uniform4i64vNV)
+#define glUniform4iARB MANGLE(Uniform4iARB)
+#define glUniform4i MANGLE(Uniform4i)
+#define glUniform4ivARB MANGLE(Uniform4ivARB)
+#define glUniform4iv MANGLE(Uniform4iv)
+#define glUniform4ui64NV MANGLE(Uniform4ui64NV)
+#define glUniform4ui64vNV MANGLE(Uniform4ui64vNV)
+#define glUniform4uiEXT MANGLE(Uniform4uiEXT)
+#define glUniform4ui MANGLE(Uniform4ui)
+#define glUniform4uivEXT MANGLE(Uniform4uivEXT)
+#define glUniform4uiv MANGLE(Uniform4uiv)
+#define glUniformBlockBinding MANGLE(UniformBlockBinding)
+#define glUniformBufferEXT MANGLE(UniformBufferEXT)
+#define glUniformMatrix2dv MANGLE(UniformMatrix2dv)
+#define glUniformMatrix2fvARB MANGLE(UniformMatrix2fvARB)
+#define glUniformMatrix2fv MANGLE(UniformMatrix2fv)
+#define glUniformMatrix2x3dv MANGLE(UniformMatrix2x3dv)
+#define glUniformMatrix2x3fv MANGLE(UniformMatrix2x3fv)
+#define glUniformMatrix2x4dv MANGLE(UniformMatrix2x4dv)
+#define glUniformMatrix2x4fv MANGLE(UniformMatrix2x4fv)
+#define glUniformMatrix3dv MANGLE(UniformMatrix3dv)
+#define glUniformMatrix3fvARB MANGLE(UniformMatrix3fvARB)
+#define glUniformMatrix3fv MANGLE(UniformMatrix3fv)
+#define glUniformMatrix3x2dv MANGLE(UniformMatrix3x2dv)
+#define glUniformMatrix3x2fv MANGLE(UniformMatrix3x2fv)
+#define glUniformMatrix3x4dv MANGLE(UniformMatrix3x4dv)
+#define glUniformMatrix3x4fv MANGLE(UniformMatrix3x4fv)
+#define glUniformMatrix4dv MANGLE(UniformMatrix4dv)
+#define glUniformMatrix4fvARB MANGLE(UniformMatrix4fvARB)
+#define glUniformMatrix4fv MANGLE(UniformMatrix4fv)
+#define glUniformMatrix4x2dv MANGLE(UniformMatrix4x2dv)
+#define glUniformMatrix4x2fv MANGLE(UniformMatrix4x2fv)
+#define glUniformMatrix4x3dv MANGLE(UniformMatrix4x3dv)
+#define glUniformMatrix4x3fv MANGLE(UniformMatrix4x3fv)
+#define glUniformSubroutinesuiv MANGLE(UniformSubroutinesuiv)
+#define glUniformui64NV MANGLE(Uniformui64NV)
+#define glUniformui64vNV MANGLE(Uniformui64vNV)
+#define glUnlockArraysEXT MANGLE(UnlockArraysEXT)
+#define glUnmapBufferARB MANGLE(UnmapBufferARB)
+#define glUnmapBuffer MANGLE(UnmapBuffer)
+#define glUnmapNamedBufferEXT MANGLE(UnmapNamedBufferEXT)
+#define glUnmapObjectBufferATI MANGLE(UnmapObjectBufferATI)
+#define glUpdateObjectBufferATI MANGLE(UpdateObjectBufferATI)
+#define glUseProgram MANGLE(UseProgram)
+#define glUseProgramObjectARB MANGLE(UseProgramObjectARB)
+#define glUseProgramStages MANGLE(UseProgramStages)
+#define glUseShaderProgramEXT MANGLE(UseShaderProgramEXT)
+#define glValidateProgramARB MANGLE(ValidateProgramARB)
+#define glValidateProgram MANGLE(ValidateProgram)
+#define glValidateProgramPipeline MANGLE(ValidateProgramPipeline)
+#define glVariantArrayObjectATI MANGLE(VariantArrayObjectATI)
+#define glVariantbvEXT MANGLE(VariantbvEXT)
+#define glVariantdvEXT MANGLE(VariantdvEXT)
+#define glVariantfvEXT MANGLE(VariantfvEXT)
+#define glVariantivEXT MANGLE(VariantivEXT)
+#define glVariantPointerEXT MANGLE(VariantPointerEXT)
+#define glVariantsvEXT MANGLE(VariantsvEXT)
+#define glVariantubvEXT MANGLE(VariantubvEXT)
+#define glVariantuivEXT MANGLE(VariantuivEXT)
+#define glVariantusvEXT MANGLE(VariantusvEXT)
+#define glVDPAUFiniNV MANGLE(VDPAUFiniNV)
+#define glVDPAUGetSurfaceivNV MANGLE(VDPAUGetSurfaceivNV)
+#define glVDPAUInitNV MANGLE(VDPAUInitNV)
+#define glVDPAUIsSurfaceNV MANGLE(VDPAUIsSurfaceNV)
+#define glVDPAUMapSurfacesNV MANGLE(VDPAUMapSurfacesNV)
+#define glVDPAURegisterOutputSurfaceNV MANGLE(VDPAURegisterOutputSurfaceNV)
+#define glVDPAURegisterVideoSurfaceNV MANGLE(VDPAURegisterVideoSurfaceNV)
+#define glVDPAUSurfaceAccessNV MANGLE(VDPAUSurfaceAccessNV)
+#define glVDPAUUnmapSurfacesNV MANGLE(VDPAUUnmapSurfacesNV)
+#define glVDPAUUnregisterSurfaceNV MANGLE(VDPAUUnregisterSurfaceNV)
+#define glVertex2d MANGLE(Vertex2d)
+#define glVertex2dv MANGLE(Vertex2dv)
+#define glVertex2f MANGLE(Vertex2f)
+#define glVertex2fv MANGLE(Vertex2fv)
+#define glVertex2hNV MANGLE(Vertex2hNV)
+#define glVertex2hvNV MANGLE(Vertex2hvNV)
+#define glVertex2i MANGLE(Vertex2i)
+#define glVertex2iv MANGLE(Vertex2iv)
+#define glVertex2s MANGLE(Vertex2s)
+#define glVertex2sv MANGLE(Vertex2sv)
+#define glVertex3d MANGLE(Vertex3d)
+#define glVertex3dv MANGLE(Vertex3dv)
+#define glVertex3f MANGLE(Vertex3f)
+#define glVertex3fv MANGLE(Vertex3fv)
+#define glVertex3hNV MANGLE(Vertex3hNV)
+#define glVertex3hvNV MANGLE(Vertex3hvNV)
+#define glVertex3i MANGLE(Vertex3i)
+#define glVertex3iv MANGLE(Vertex3iv)
+#define glVertex3s MANGLE(Vertex3s)
+#define glVertex3sv MANGLE(Vertex3sv)
+#define glVertex4d MANGLE(Vertex4d)
+#define glVertex4dv MANGLE(Vertex4dv)
+#define glVertex4f MANGLE(Vertex4f)
+#define glVertex4fv MANGLE(Vertex4fv)
+#define glVertex4hNV MANGLE(Vertex4hNV)
+#define glVertex4hvNV MANGLE(Vertex4hvNV)
+#define glVertex4i MANGLE(Vertex4i)
+#define glVertex4iv MANGLE(Vertex4iv)
+#define glVertex4s MANGLE(Vertex4s)
+#define glVertex4sv MANGLE(Vertex4sv)
+#define glVertexArrayParameteriAPPLE MANGLE(VertexArrayParameteriAPPLE)
+#define glVertexArrayRangeAPPLE MANGLE(VertexArrayRangeAPPLE)
+#define glVertexArrayRangeNV MANGLE(VertexArrayRangeNV)
+#define glVertexArrayVertexAttribLOffsetEXT MANGLE(VertexArrayVertexAttribLOffsetEXT)
+#define glVertexAttrib1dARB MANGLE(VertexAttrib1dARB)
+#define glVertexAttrib1d MANGLE(VertexAttrib1d)
+#define glVertexAttrib1dNV MANGLE(VertexAttrib1dNV)
+#define glVertexAttrib1dvARB MANGLE(VertexAttrib1dvARB)
+#define glVertexAttrib1dv MANGLE(VertexAttrib1dv)
+#define glVertexAttrib1dvNV MANGLE(VertexAttrib1dvNV)
+#define glVertexAttrib1fARB MANGLE(VertexAttrib1fARB)
+#define glVertexAttrib1f MANGLE(VertexAttrib1f)
+#define glVertexAttrib1fNV MANGLE(VertexAttrib1fNV)
+#define glVertexAttrib1fvARB MANGLE(VertexAttrib1fvARB)
+#define glVertexAttrib1fv MANGLE(VertexAttrib1fv)
+#define glVertexAttrib1fvNV MANGLE(VertexAttrib1fvNV)
+#define glVertexAttrib1hNV MANGLE(VertexAttrib1hNV)
+#define glVertexAttrib1hvNV MANGLE(VertexAttrib1hvNV)
+#define glVertexAttrib1sARB MANGLE(VertexAttrib1sARB)
+#define glVertexAttrib1s MANGLE(VertexAttrib1s)
+#define glVertexAttrib1sNV MANGLE(VertexAttrib1sNV)
+#define glVertexAttrib1svARB MANGLE(VertexAttrib1svARB)
+#define glVertexAttrib1sv MANGLE(VertexAttrib1sv)
+#define glVertexAttrib1svNV MANGLE(VertexAttrib1svNV)
+#define glVertexAttrib2dARB MANGLE(VertexAttrib2dARB)
+#define glVertexAttrib2d MANGLE(VertexAttrib2d)
+#define glVertexAttrib2dNV MANGLE(VertexAttrib2dNV)
+#define glVertexAttrib2dvARB MANGLE(VertexAttrib2dvARB)
+#define glVertexAttrib2dv MANGLE(VertexAttrib2dv)
+#define glVertexAttrib2dvNV MANGLE(VertexAttrib2dvNV)
+#define glVertexAttrib2fARB MANGLE(VertexAttrib2fARB)
+#define glVertexAttrib2f MANGLE(VertexAttrib2f)
+#define glVertexAttrib2fNV MANGLE(VertexAttrib2fNV)
+#define glVertexAttrib2fvARB MANGLE(VertexAttrib2fvARB)
+#define glVertexAttrib2fv MANGLE(VertexAttrib2fv)
+#define glVertexAttrib2fvNV MANGLE(VertexAttrib2fvNV)
+#define glVertexAttrib2hNV MANGLE(VertexAttrib2hNV)
+#define glVertexAttrib2hvNV MANGLE(VertexAttrib2hvNV)
+#define glVertexAttrib2sARB MANGLE(VertexAttrib2sARB)
+#define glVertexAttrib2s MANGLE(VertexAttrib2s)
+#define glVertexAttrib2sNV MANGLE(VertexAttrib2sNV)
+#define glVertexAttrib2svARB MANGLE(VertexAttrib2svARB)
+#define glVertexAttrib2sv MANGLE(VertexAttrib2sv)
+#define glVertexAttrib2svNV MANGLE(VertexAttrib2svNV)
+#define glVertexAttrib3dARB MANGLE(VertexAttrib3dARB)
+#define glVertexAttrib3d MANGLE(VertexAttrib3d)
+#define glVertexAttrib3dNV MANGLE(VertexAttrib3dNV)
+#define glVertexAttrib3dvARB MANGLE(VertexAttrib3dvARB)
+#define glVertexAttrib3dv MANGLE(VertexAttrib3dv)
+#define glVertexAttrib3dvNV MANGLE(VertexAttrib3dvNV)
+#define glVertexAttrib3fARB MANGLE(VertexAttrib3fARB)
+#define glVertexAttrib3f MANGLE(VertexAttrib3f)
+#define glVertexAttrib3fNV MANGLE(VertexAttrib3fNV)
+#define glVertexAttrib3fvARB MANGLE(VertexAttrib3fvARB)
+#define glVertexAttrib3fv MANGLE(VertexAttrib3fv)
+#define glVertexAttrib3fvNV MANGLE(VertexAttrib3fvNV)
+#define glVertexAttrib3hNV MANGLE(VertexAttrib3hNV)
+#define glVertexAttrib3hvNV MANGLE(VertexAttrib3hvNV)
+#define glVertexAttrib3sARB MANGLE(VertexAttrib3sARB)
+#define glVertexAttrib3s MANGLE(VertexAttrib3s)
+#define glVertexAttrib3sNV MANGLE(VertexAttrib3sNV)
+#define glVertexAttrib3svARB MANGLE(VertexAttrib3svARB)
+#define glVertexAttrib3sv MANGLE(VertexAttrib3sv)
+#define glVertexAttrib3svNV MANGLE(VertexAttrib3svNV)
+#define glVertexAttrib4bvARB MANGLE(VertexAttrib4bvARB)
+#define glVertexAttrib4bv MANGLE(VertexAttrib4bv)
+#define glVertexAttrib4dARB MANGLE(VertexAttrib4dARB)
+#define glVertexAttrib4d MANGLE(VertexAttrib4d)
+#define glVertexAttrib4dNV MANGLE(VertexAttrib4dNV)
+#define glVertexAttrib4dvARB MANGLE(VertexAttrib4dvARB)
+#define glVertexAttrib4dv MANGLE(VertexAttrib4dv)
+#define glVertexAttrib4dvNV MANGLE(VertexAttrib4dvNV)
+#define glVertexAttrib4fARB MANGLE(VertexAttrib4fARB)
+#define glVertexAttrib4f MANGLE(VertexAttrib4f)
+#define glVertexAttrib4fNV MANGLE(VertexAttrib4fNV)
+#define glVertexAttrib4fvARB MANGLE(VertexAttrib4fvARB)
+#define glVertexAttrib4fv MANGLE(VertexAttrib4fv)
+#define glVertexAttrib4fvNV MANGLE(VertexAttrib4fvNV)
+#define glVertexAttrib4hNV MANGLE(VertexAttrib4hNV)
+#define glVertexAttrib4hvNV MANGLE(VertexAttrib4hvNV)
+#define glVertexAttrib4ivARB MANGLE(VertexAttrib4ivARB)
+#define glVertexAttrib4iv MANGLE(VertexAttrib4iv)
+#define glVertexAttrib4NbvARB MANGLE(VertexAttrib4NbvARB)
+#define glVertexAttrib4Nbv MANGLE(VertexAttrib4Nbv)
+#define glVertexAttrib4NivARB MANGLE(VertexAttrib4NivARB)
+#define glVertexAttrib4Niv MANGLE(VertexAttrib4Niv)
+#define glVertexAttrib4NsvARB MANGLE(VertexAttrib4NsvARB)
+#define glVertexAttrib4Nsv MANGLE(VertexAttrib4Nsv)
+#define glVertexAttrib4NubARB MANGLE(VertexAttrib4NubARB)
+#define glVertexAttrib4Nub MANGLE(VertexAttrib4Nub)
+#define glVertexAttrib4NubvARB MANGLE(VertexAttrib4NubvARB)
+#define glVertexAttrib4Nubv MANGLE(VertexAttrib4Nubv)
+#define glVertexAttrib4NuivARB MANGLE(VertexAttrib4NuivARB)
+#define glVertexAttrib4Nuiv MANGLE(VertexAttrib4Nuiv)
+#define glVertexAttrib4NusvARB MANGLE(VertexAttrib4NusvARB)
+#define glVertexAttrib4Nusv MANGLE(VertexAttrib4Nusv)
+#define glVertexAttrib4sARB MANGLE(VertexAttrib4sARB)
+#define glVertexAttrib4s MANGLE(VertexAttrib4s)
+#define glVertexAttrib4sNV MANGLE(VertexAttrib4sNV)
+#define glVertexAttrib4svARB MANGLE(VertexAttrib4svARB)
+#define glVertexAttrib4sv MANGLE(VertexAttrib4sv)
+#define glVertexAttrib4svNV MANGLE(VertexAttrib4svNV)
+#define glVertexAttrib4ubNV MANGLE(VertexAttrib4ubNV)
+#define glVertexAttrib4ubvARB MANGLE(VertexAttrib4ubvARB)
+#define glVertexAttrib4ubv MANGLE(VertexAttrib4ubv)
+#define glVertexAttrib4ubvNV MANGLE(VertexAttrib4ubvNV)
+#define glVertexAttrib4uivARB MANGLE(VertexAttrib4uivARB)
+#define glVertexAttrib4uiv MANGLE(VertexAttrib4uiv)
+#define glVertexAttrib4usvARB MANGLE(VertexAttrib4usvARB)
+#define glVertexAttrib4usv MANGLE(VertexAttrib4usv)
+#define glVertexAttribArrayObjectATI MANGLE(VertexAttribArrayObjectATI)
+#define glVertexAttribDivisorARB MANGLE(VertexAttribDivisorARB)
+#define glVertexAttribDivisor MANGLE(VertexAttribDivisor)
+#define glVertexAttribFormatNV MANGLE(VertexAttribFormatNV)
+#define glVertexAttribI1iEXT MANGLE(VertexAttribI1iEXT)
+#define glVertexAttribI1i MANGLE(VertexAttribI1i)
+#define glVertexAttribI1ivEXT MANGLE(VertexAttribI1ivEXT)
+#define glVertexAttribI1iv MANGLE(VertexAttribI1iv)
+#define glVertexAttribI1uiEXT MANGLE(VertexAttribI1uiEXT)
+#define glVertexAttribI1ui MANGLE(VertexAttribI1ui)
+#define glVertexAttribI1uivEXT MANGLE(VertexAttribI1uivEXT)
+#define glVertexAttribI1uiv MANGLE(VertexAttribI1uiv)
+#define glVertexAttribI2iEXT MANGLE(VertexAttribI2iEXT)
+#define glVertexAttribI2i MANGLE(VertexAttribI2i)
+#define glVertexAttribI2ivEXT MANGLE(VertexAttribI2ivEXT)
+#define glVertexAttribI2iv MANGLE(VertexAttribI2iv)
+#define glVertexAttribI2uiEXT MANGLE(VertexAttribI2uiEXT)
+#define glVertexAttribI2ui MANGLE(VertexAttribI2ui)
+#define glVertexAttribI2uivEXT MANGLE(VertexAttribI2uivEXT)
+#define glVertexAttribI2uiv MANGLE(VertexAttribI2uiv)
+#define glVertexAttribI3iEXT MANGLE(VertexAttribI3iEXT)
+#define glVertexAttribI3i MANGLE(VertexAttribI3i)
+#define glVertexAttribI3ivEXT MANGLE(VertexAttribI3ivEXT)
+#define glVertexAttribI3iv MANGLE(VertexAttribI3iv)
+#define glVertexAttribI3uiEXT MANGLE(VertexAttribI3uiEXT)
+#define glVertexAttribI3ui MANGLE(VertexAttribI3ui)
+#define glVertexAttribI3uivEXT MANGLE(VertexAttribI3uivEXT)
+#define glVertexAttribI3uiv MANGLE(VertexAttribI3uiv)
+#define glVertexAttribI4bvEXT MANGLE(VertexAttribI4bvEXT)
+#define glVertexAttribI4bv MANGLE(VertexAttribI4bv)
+#define glVertexAttribI4iEXT MANGLE(VertexAttribI4iEXT)
+#define glVertexAttribI4i MANGLE(VertexAttribI4i)
+#define glVertexAttribI4ivEXT MANGLE(VertexAttribI4ivEXT)
+#define glVertexAttribI4iv MANGLE(VertexAttribI4iv)
+#define glVertexAttribI4svEXT MANGLE(VertexAttribI4svEXT)
+#define glVertexAttribI4sv MANGLE(VertexAttribI4sv)
+#define glVertexAttribI4ubvEXT MANGLE(VertexAttribI4ubvEXT)
+#define glVertexAttribI4ubv MANGLE(VertexAttribI4ubv)
+#define glVertexAttribI4uiEXT MANGLE(VertexAttribI4uiEXT)
+#define glVertexAttribI4ui MANGLE(VertexAttribI4ui)
+#define glVertexAttribI4uivEXT MANGLE(VertexAttribI4uivEXT)
+#define glVertexAttribI4uiv MANGLE(VertexAttribI4uiv)
+#define glVertexAttribI4usvEXT MANGLE(VertexAttribI4usvEXT)
+#define glVertexAttribI4usv MANGLE(VertexAttribI4usv)
+#define glVertexAttribIFormatNV MANGLE(VertexAttribIFormatNV)
+#define glVertexAttribIPointerEXT MANGLE(VertexAttribIPointerEXT)
+#define glVertexAttribIPointer MANGLE(VertexAttribIPointer)
+#define glVertexAttribL1dEXT MANGLE(VertexAttribL1dEXT)
+#define glVertexAttribL1d MANGLE(VertexAttribL1d)
+#define glVertexAttribL1dvEXT MANGLE(VertexAttribL1dvEXT)
+#define glVertexAttribL1dv MANGLE(VertexAttribL1dv)
+#define glVertexAttribL1i64NV MANGLE(VertexAttribL1i64NV)
+#define glVertexAttribL1i64vNV MANGLE(VertexAttribL1i64vNV)
+#define glVertexAttribL1ui64NV MANGLE(VertexAttribL1ui64NV)
+#define glVertexAttribL1ui64vNV MANGLE(VertexAttribL1ui64vNV)
+#define glVertexAttribL2dEXT MANGLE(VertexAttribL2dEXT)
+#define glVertexAttribL2d MANGLE(VertexAttribL2d)
+#define glVertexAttribL2dvEXT MANGLE(VertexAttribL2dvEXT)
+#define glVertexAttribL2dv MANGLE(VertexAttribL2dv)
+#define glVertexAttribL2i64NV MANGLE(VertexAttribL2i64NV)
+#define glVertexAttribL2i64vNV MANGLE(VertexAttribL2i64vNV)
+#define glVertexAttribL2ui64NV MANGLE(VertexAttribL2ui64NV)
+#define glVertexAttribL2ui64vNV MANGLE(VertexAttribL2ui64vNV)
+#define glVertexAttribL3dEXT MANGLE(VertexAttribL3dEXT)
+#define glVertexAttribL3d MANGLE(VertexAttribL3d)
+#define glVertexAttribL3dvEXT MANGLE(VertexAttribL3dvEXT)
+#define glVertexAttribL3dv MANGLE(VertexAttribL3dv)
+#define glVertexAttribL3i64NV MANGLE(VertexAttribL3i64NV)
+#define glVertexAttribL3i64vNV MANGLE(VertexAttribL3i64vNV)
+#define glVertexAttribL3ui64NV MANGLE(VertexAttribL3ui64NV)
+#define glVertexAttribL3ui64vNV MANGLE(VertexAttribL3ui64vNV)
+#define glVertexAttribL4dEXT MANGLE(VertexAttribL4dEXT)
+#define glVertexAttribL4d MANGLE(VertexAttribL4d)
+#define glVertexAttribL4dvEXT MANGLE(VertexAttribL4dvEXT)
+#define glVertexAttribL4dv MANGLE(VertexAttribL4dv)
+#define glVertexAttribL4i64NV MANGLE(VertexAttribL4i64NV)
+#define glVertexAttribL4i64vNV MANGLE(VertexAttribL4i64vNV)
+#define glVertexAttribL4ui64NV MANGLE(VertexAttribL4ui64NV)
+#define glVertexAttribL4ui64vNV MANGLE(VertexAttribL4ui64vNV)
+#define glVertexAttribLFormatNV MANGLE(VertexAttribLFormatNV)
+#define glVertexAttribLPointerEXT MANGLE(VertexAttribLPointerEXT)
+#define glVertexAttribLPointer MANGLE(VertexAttribLPointer)
+#define glVertexAttribP1ui MANGLE(VertexAttribP1ui)
+#define glVertexAttribP1uiv MANGLE(VertexAttribP1uiv)
+#define glVertexAttribP2ui MANGLE(VertexAttribP2ui)
+#define glVertexAttribP2uiv MANGLE(VertexAttribP2uiv)
+#define glVertexAttribP3ui MANGLE(VertexAttribP3ui)
+#define glVertexAttribP3uiv MANGLE(VertexAttribP3uiv)
+#define glVertexAttribP4ui MANGLE(VertexAttribP4ui)
+#define glVertexAttribP4uiv MANGLE(VertexAttribP4uiv)
+#define glVertexAttribPointerARB MANGLE(VertexAttribPointerARB)
+#define glVertexAttribPointer MANGLE(VertexAttribPointer)
+#define glVertexAttribPointerNV MANGLE(VertexAttribPointerNV)
+#define glVertexAttribs1dvNV MANGLE(VertexAttribs1dvNV)
+#define glVertexAttribs1fvNV MANGLE(VertexAttribs1fvNV)
+#define glVertexAttribs1hvNV MANGLE(VertexAttribs1hvNV)
+#define glVertexAttribs1svNV MANGLE(VertexAttribs1svNV)
+#define glVertexAttribs2dvNV MANGLE(VertexAttribs2dvNV)
+#define glVertexAttribs2fvNV MANGLE(VertexAttribs2fvNV)
+#define glVertexAttribs2hvNV MANGLE(VertexAttribs2hvNV)
+#define glVertexAttribs2svNV MANGLE(VertexAttribs2svNV)
+#define glVertexAttribs3dvNV MANGLE(VertexAttribs3dvNV)
+#define glVertexAttribs3fvNV MANGLE(VertexAttribs3fvNV)
+#define glVertexAttribs3hvNV MANGLE(VertexAttribs3hvNV)
+#define glVertexAttribs3svNV MANGLE(VertexAttribs3svNV)
+#define glVertexAttribs4dvNV MANGLE(VertexAttribs4dvNV)
+#define glVertexAttribs4fvNV MANGLE(VertexAttribs4fvNV)
+#define glVertexAttribs4hvNV MANGLE(VertexAttribs4hvNV)
+#define glVertexAttribs4svNV MANGLE(VertexAttribs4svNV)
+#define glVertexAttribs4ubvNV MANGLE(VertexAttribs4ubvNV)
+#define glVertexBlendARB MANGLE(VertexBlendARB)
+#define glVertexBlendEnvfATI MANGLE(VertexBlendEnvfATI)
+#define glVertexBlendEnviATI MANGLE(VertexBlendEnviATI)
+#define glVertexFormatNV MANGLE(VertexFormatNV)
+#define glVertexP2ui MANGLE(VertexP2ui)
+#define glVertexP2uiv MANGLE(VertexP2uiv)
+#define glVertexP3ui MANGLE(VertexP3ui)
+#define glVertexP3uiv MANGLE(VertexP3uiv)
+#define glVertexP4ui MANGLE(VertexP4ui)
+#define glVertexP4uiv MANGLE(VertexP4uiv)
+#define glVertexPointerEXT MANGLE(VertexPointerEXT)
+#define glVertexPointerListIBM MANGLE(VertexPointerListIBM)
+#define glVertexPointer MANGLE(VertexPointer)
+#define glVertexPointervINTEL MANGLE(VertexPointervINTEL)
+#define glVertexStream1dATI MANGLE(VertexStream1dATI)
+#define glVertexStream1dvATI MANGLE(VertexStream1dvATI)
+#define glVertexStream1fATI MANGLE(VertexStream1fATI)
+#define glVertexStream1fvATI MANGLE(VertexStream1fvATI)
+#define glVertexStream1iATI MANGLE(VertexStream1iATI)
+#define glVertexStream1ivATI MANGLE(VertexStream1ivATI)
+#define glVertexStream1sATI MANGLE(VertexStream1sATI)
+#define glVertexStream1svATI MANGLE(VertexStream1svATI)
+#define glVertexStream2dATI MANGLE(VertexStream2dATI)
+#define glVertexStream2dvATI MANGLE(VertexStream2dvATI)
+#define glVertexStream2fATI MANGLE(VertexStream2fATI)
+#define glVertexStream2fvATI MANGLE(VertexStream2fvATI)
+#define glVertexStream2iATI MANGLE(VertexStream2iATI)
+#define glVertexStream2ivATI MANGLE(VertexStream2ivATI)
+#define glVertexStream2sATI MANGLE(VertexStream2sATI)
+#define glVertexStream2svATI MANGLE(VertexStream2svATI)
+#define glVertexStream3dATI MANGLE(VertexStream3dATI)
+#define glVertexStream3dvATI MANGLE(VertexStream3dvATI)
+#define glVertexStream3fATI MANGLE(VertexStream3fATI)
+#define glVertexStream3fvATI MANGLE(VertexStream3fvATI)
+#define glVertexStream3iATI MANGLE(VertexStream3iATI)
+#define glVertexStream3ivATI MANGLE(VertexStream3ivATI)
+#define glVertexStream3sATI MANGLE(VertexStream3sATI)
+#define glVertexStream3svATI MANGLE(VertexStream3svATI)
+#define glVertexStream4dATI MANGLE(VertexStream4dATI)
+#define glVertexStream4dvATI MANGLE(VertexStream4dvATI)
+#define glVertexStream4fATI MANGLE(VertexStream4fATI)
+#define glVertexStream4fvATI MANGLE(VertexStream4fvATI)
+#define glVertexStream4iATI MANGLE(VertexStream4iATI)
+#define glVertexStream4ivATI MANGLE(VertexStream4ivATI)
+#define glVertexStream4sATI MANGLE(VertexStream4sATI)
+#define glVertexStream4svATI MANGLE(VertexStream4svATI)
+#define glVertexWeightfEXT MANGLE(VertexWeightfEXT)
+#define glVertexWeightfvEXT MANGLE(VertexWeightfvEXT)
+#define glVertexWeighthNV MANGLE(VertexWeighthNV)
+#define glVertexWeighthvNV MANGLE(VertexWeighthvNV)
+#define glVertexWeightPointerEXT MANGLE(VertexWeightPointerEXT)
+#define glVideoCaptureNV MANGLE(VideoCaptureNV)
+#define glVideoCaptureStreamParameterdvNV MANGLE(VideoCaptureStreamParameterdvNV)
+#define glVideoCaptureStreamParameterfvNV MANGLE(VideoCaptureStreamParameterfvNV)
+#define glVideoCaptureStreamParameterivNV MANGLE(VideoCaptureStreamParameterivNV)
+#define glViewportArrayv MANGLE(ViewportArrayv)
+#define glViewportIndexedf MANGLE(ViewportIndexedf)
+#define glViewportIndexedfv MANGLE(ViewportIndexedfv)
+#define glViewport MANGLE(Viewport)
+#define glWaitSync MANGLE(WaitSync)
+#define glWeightbvARB MANGLE(WeightbvARB)
+#define glWeightdvARB MANGLE(WeightdvARB)
+#define glWeightfvARB MANGLE(WeightfvARB)
+#define glWeightivARB MANGLE(WeightivARB)
+#define glWeightPointerARB MANGLE(WeightPointerARB)
+#define glWeightsvARB MANGLE(WeightsvARB)
+#define glWeightubvARB MANGLE(WeightubvARB)
+#define glWeightuivARB MANGLE(WeightuivARB)
+#define glWeightusvARB MANGLE(WeightusvARB)
+#define glWindowPos2dARB MANGLE(WindowPos2dARB)
+#define glWindowPos2d MANGLE(WindowPos2d)
+#define glWindowPos2dMESA MANGLE(WindowPos2dMESA)
+#define glWindowPos2dvARB MANGLE(WindowPos2dvARB)
+#define glWindowPos2dv MANGLE(WindowPos2dv)
+#define glWindowPos2dvMESA MANGLE(WindowPos2dvMESA)
+#define glWindowPos2fARB MANGLE(WindowPos2fARB)
+#define glWindowPos2f MANGLE(WindowPos2f)
+#define glWindowPos2fMESA MANGLE(WindowPos2fMESA)
+#define glWindowPos2fvARB MANGLE(WindowPos2fvARB)
+#define glWindowPos2fv MANGLE(WindowPos2fv)
+#define glWindowPos2fvMESA MANGLE(WindowPos2fvMESA)
+#define glWindowPos2iARB MANGLE(WindowPos2iARB)
+#define glWindowPos2i MANGLE(WindowPos2i)
+#define glWindowPos2iMESA MANGLE(WindowPos2iMESA)
+#define glWindowPos2ivARB MANGLE(WindowPos2ivARB)
+#define glWindowPos2iv MANGLE(WindowPos2iv)
+#define glWindowPos2ivMESA MANGLE(WindowPos2ivMESA)
+#define glWindowPos2sARB MANGLE(WindowPos2sARB)
+#define glWindowPos2s MANGLE(WindowPos2s)
+#define glWindowPos2sMESA MANGLE(WindowPos2sMESA)
+#define glWindowPos2svARB MANGLE(WindowPos2svARB)
+#define glWindowPos2sv MANGLE(WindowPos2sv)
+#define glWindowPos2svMESA MANGLE(WindowPos2svMESA)
+#define glWindowPos3dARB MANGLE(WindowPos3dARB)
+#define glWindowPos3d MANGLE(WindowPos3d)
+#define glWindowPos3dMESA MANGLE(WindowPos3dMESA)
+#define glWindowPos3dvARB MANGLE(WindowPos3dvARB)
+#define glWindowPos3dv MANGLE(WindowPos3dv)
+#define glWindowPos3dvMESA MANGLE(WindowPos3dvMESA)
+#define glWindowPos3fARB MANGLE(WindowPos3fARB)
+#define glWindowPos3f MANGLE(WindowPos3f)
+#define glWindowPos3fMESA MANGLE(WindowPos3fMESA)
+#define glWindowPos3fvARB MANGLE(WindowPos3fvARB)
+#define glWindowPos3fv MANGLE(WindowPos3fv)
+#define glWindowPos3fvMESA MANGLE(WindowPos3fvMESA)
+#define glWindowPos3iARB MANGLE(WindowPos3iARB)
+#define glWindowPos3i MANGLE(WindowPos3i)
+#define glWindowPos3iMESA MANGLE(WindowPos3iMESA)
+#define glWindowPos3ivARB MANGLE(WindowPos3ivARB)
+#define glWindowPos3iv MANGLE(WindowPos3iv)
+#define glWindowPos3ivMESA MANGLE(WindowPos3ivMESA)
+#define glWindowPos3sARB MANGLE(WindowPos3sARB)
+#define glWindowPos3s MANGLE(WindowPos3s)
+#define glWindowPos3sMESA MANGLE(WindowPos3sMESA)
+#define glWindowPos3svARB MANGLE(WindowPos3svARB)
+#define glWindowPos3sv MANGLE(WindowPos3sv)
+#define glWindowPos3svMESA MANGLE(WindowPos3svMESA)
+#define glWindowPos4dMESA MANGLE(WindowPos4dMESA)
+#define glWindowPos4dvMESA MANGLE(WindowPos4dvMESA)
+#define glWindowPos4fMESA MANGLE(WindowPos4fMESA)
+#define glWindowPos4fvMESA MANGLE(WindowPos4fvMESA)
+#define glWindowPos4iMESA MANGLE(WindowPos4iMESA)
+#define glWindowPos4ivMESA MANGLE(WindowPos4ivMESA)
+#define glWindowPos4sMESA MANGLE(WindowPos4sMESA)
+#define glWindowPos4svMESA MANGLE(WindowPos4svMESA)
+#define glWriteMaskEXT MANGLE(WriteMaskEXT)
+
+#endif /* GL_MANGLE_H */
diff --git a/gl/glcore.h b/gl/glcore.h
deleted file mode 100644
index 547b11137..000000000
--- a/gl/glcore.h
+++ /dev/null
@@ -1,181 +0,0 @@
-#ifndef __gl_core_h_
-#define __gl_core_h_
-
-/*
- * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
- * Copyright (C) 1991-2000 Silicon Graphics, Inc. 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
- * 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:
- *
- * The above copyright notice including the dates of first publication and
- * either this permission notice or a reference to
- * http://oss.sgi.com/projects/FreeB/
- * 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 NONINFRINGEMENT. IN NO EVENT SHALL
- * SILICON GRAPHICS, INC. 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.
- *
- * Except as contained in this notice, the name of Silicon Graphics, Inc.
- * shall not be used in advertising or otherwise to promote the sale, use or
- * other dealings in this Software without prior written authorization from
- * Silicon Graphics, Inc.
- */
-
-#if !defined(_WIN32_WCE)
-#include <sys/types.h>
-#endif
-
-#define GL_CORE_SGI 1
-#define GL_CORE_MESA 2
-#define GL_CORE_APPLE 4
-#define GL_CORE_WINDOWS 8
-
-typedef struct __GLcontextRec __GLcontext;
-
-/*
-** This file defines the interface between the GL core and the surrounding
-** "operating system" that supports it (currently the GLX or WGL extensions).
-**
-** Members (data and function pointers) are documented as imported or
-** exported according to how they are used by the core rendering functions.
-** Imported members are initialized by the "operating system" and used by
-** the core functions. Exported members are initialized by the core functions
-** and used by the "operating system".
-*/
-
-/**
- * Mode and limit information for a context. This information is
- * kept around in the context so that values can be used during
- * command execution, and for returning information about the
- * context to the application.
- *
- * Instances of this structure are shared by the driver and the loader. To
- * maintain binary compatability, new fields \b must be added only to the
- * end of the structure.
- *
- * \sa _gl_context_modes_create
- */
-typedef struct __GLcontextModesRec {
- struct __GLcontextModesRec * next;
-
- GLboolean rgbMode;
- GLboolean floatMode;
- GLboolean colorIndexMode;
- GLuint doubleBufferMode;
- GLuint stereoMode;
-
- GLboolean haveAccumBuffer;
- GLboolean haveDepthBuffer;
- GLboolean haveStencilBuffer;
-
- GLint redBits, greenBits, blueBits, alphaBits; /* bits per comp */
- GLuint redMask, greenMask, blueMask, alphaMask;
- GLint rgbBits; /* total bits for rgb */
- GLint indexBits; /* total bits for colorindex */
-
- GLint accumRedBits, accumGreenBits, accumBlueBits, accumAlphaBits;
- GLint depthBits;
- GLint stencilBits;
-
- GLint numAuxBuffers;
-
- GLint level;
-
- GLint pixmapMode;
-
- /* GLX */
- GLint visualID;
- GLint visualType; /**< One of the GLX X visual types. (i.e.,
- * \c GLX_TRUE_COLOR, etc.)
- */
-
- /* EXT_visual_rating / GLX 1.2 */
- GLint visualRating;
-
- /* EXT_visual_info / GLX 1.2 */
- GLint transparentPixel;
- /* colors are floats scaled to ints */
- GLint transparentRed, transparentGreen, transparentBlue, transparentAlpha;
- GLint transparentIndex;
-
- /* ARB_multisample / SGIS_multisample */
- GLint sampleBuffers;
- GLint samples;
-
- /* SGIX_fbconfig / GLX 1.3 */
- GLint drawableType;
- GLint renderType;
- GLint xRenderable;
- GLint fbconfigID;
-
- /* SGIX_pbuffer / GLX 1.3 */
- GLint maxPbufferWidth;
- GLint maxPbufferHeight;
- GLint maxPbufferPixels;
- GLint optimalPbufferWidth; /* Only for SGIX_pbuffer. */
- GLint optimalPbufferHeight; /* Only for SGIX_pbuffer. */
-
- /* SGIX_visual_select_group */
- GLint visualSelectGroup;
-
- /* OML_swap_method */
- GLint swapMethod;
-
- GLint screen;
-
- /* EXT_texture_from_pixmap */
- GLint bindToTextureRgb;
- GLint bindToTextureRgba;
- GLint bindToMipmapTexture;
- GLint bindToTextureTargets;
- GLint yInverted;
-} __GLcontextModes;
-
-/* Several fields of __GLcontextModes can take these as values. Since
- * GLX header files may not be available everywhere they need to be used,
- * redefine them here.
- */
-#define GLX_NONE 0x8000
-#define GLX_SLOW_CONFIG 0x8001
-#define GLX_TRUE_COLOR 0x8002
-#define GLX_DIRECT_COLOR 0x8003
-#define GLX_PSEUDO_COLOR 0x8004
-#define GLX_STATIC_COLOR 0x8005
-#define GLX_GRAY_SCALE 0x8006
-#define GLX_STATIC_GRAY 0x8007
-#define GLX_TRANSPARENT_RGB 0x8008
-#define GLX_TRANSPARENT_INDEX 0x8009
-#define GLX_NON_CONFORMANT_CONFIG 0x800D
-#define GLX_SWAP_EXCHANGE_OML 0x8061
-#define GLX_SWAP_COPY_OML 0x8062
-#define GLX_SWAP_UNDEFINED_OML 0x8063
-
-#define GLX_DONT_CARE 0xFFFFFFFF
-
-#define GLX_RGBA_BIT 0x00000001
-#define GLX_COLOR_INDEX_BIT 0x00000002
-#define GLX_WINDOW_BIT 0x00000001
-#define GLX_PIXMAP_BIT 0x00000002
-#define GLX_PBUFFER_BIT 0x00000004
-
-#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0
-#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1
-#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2
-#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3
-#define GLX_Y_INVERTED_EXT 0x20D4
-
-#define GLX_TEXTURE_1D_BIT_EXT 0x00000001
-#define GLX_TEXTURE_2D_BIT_EXT 0x00000002
-#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
-
-#endif /* __gl_core_h_ */
diff --git a/gl/glext.h b/gl/glext.h
new file mode 100644
index 000000000..e70266447
--- /dev/null
+++ b/gl/glext.h
@@ -0,0 +1,11056 @@
+#ifndef __glext_h_
+#define __glext_h_ 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+** Copyright (c) 2013 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE 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
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+/*
+** This header is generated from the Khronos OpenGL / OpenGL ES XML
+** API Registry. The current version of the Registry, generator scripts
+** used to make the header, and the header can be found at
+** http://www.opengl.org/registry/
+**
+** Khronos $Revision: 23855 $ on $Date: 2013-11-02 22:54:48 -0700 (Sat, 02 Nov 2013) $
+*/
+
+#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
+#ifndef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN 1
+#endif
+#include <windows.h>
+#endif
+
+#ifndef APIENTRY
+#define APIENTRY
+#endif
+#ifndef APIENTRYP
+#define APIENTRYP APIENTRY *
+#endif
+#ifndef GLAPI
+#define GLAPI extern
+#endif
+
+#define GL_GLEXT_VERSION 20131102
+
+/* Generated C header for:
+ * API: gl
+ * Profile: compatibility
+ * Versions considered: .*
+ * Versions emitted: 1\.[2-9]|[234]\.[0-9]
+ * Default extensions included: gl
+ * Additional extensions included: _nomatch_^
+ * Extensions removed: _nomatch_^
+ */
+
+#ifndef GL_VERSION_1_2
+#define GL_VERSION_1_2 1
+#define GL_UNSIGNED_BYTE_3_3_2 0x8032
+#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
+#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
+#define GL_UNSIGNED_INT_8_8_8_8 0x8035
+#define GL_UNSIGNED_INT_10_10_10_2 0x8036
+#define GL_TEXTURE_BINDING_3D 0x806A
+#define GL_PACK_SKIP_IMAGES 0x806B
+#define GL_PACK_IMAGE_HEIGHT 0x806C
+#define GL_UNPACK_SKIP_IMAGES 0x806D
+#define GL_UNPACK_IMAGE_HEIGHT 0x806E
+#define GL_TEXTURE_3D 0x806F
+#define GL_PROXY_TEXTURE_3D 0x8070
+#define GL_TEXTURE_DEPTH 0x8071
+#define GL_TEXTURE_WRAP_R 0x8072
+#define GL_MAX_3D_TEXTURE_SIZE 0x8073
+#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
+#define GL_UNSIGNED_SHORT_5_6_5 0x8363
+#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
+#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
+#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
+#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
+#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
+#define GL_BGR 0x80E0
+#define GL_BGRA 0x80E1
+#define GL_MAX_ELEMENTS_VERTICES 0x80E8
+#define GL_MAX_ELEMENTS_INDICES 0x80E9
+#define GL_CLAMP_TO_EDGE 0x812F
+#define GL_TEXTURE_MIN_LOD 0x813A
+#define GL_TEXTURE_MAX_LOD 0x813B
+#define GL_TEXTURE_BASE_LEVEL 0x813C
+#define GL_TEXTURE_MAX_LEVEL 0x813D
+#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
+#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
+#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
+#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
+#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
+#define GL_RESCALE_NORMAL 0x803A
+#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8
+#define GL_SINGLE_COLOR 0x81F9
+#define GL_SEPARATE_SPECULAR_COLOR 0x81FA
+#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
+typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
+typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
+typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
+typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
+GLAPI void APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
+GLAPI void APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
+GLAPI void APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+#endif
+#endif /* GL_VERSION_1_2 */
+
+#ifndef GL_VERSION_1_3
+#define GL_VERSION_1_3 1
+#define GL_TEXTURE0 0x84C0
+#define GL_TEXTURE1 0x84C1
+#define GL_TEXTURE2 0x84C2
+#define GL_TEXTURE3 0x84C3
+#define GL_TEXTURE4 0x84C4
+#define GL_TEXTURE5 0x84C5
+#define GL_TEXTURE6 0x84C6
+#define GL_TEXTURE7 0x84C7
+#define GL_TEXTURE8 0x84C8
+#define GL_TEXTURE9 0x84C9
+#define GL_TEXTURE10 0x84CA
+#define GL_TEXTURE11 0x84CB
+#define GL_TEXTURE12 0x84CC
+#define GL_TEXTURE13 0x84CD
+#define GL_TEXTURE14 0x84CE
+#define GL_TEXTURE15 0x84CF
+#define GL_TEXTURE16 0x84D0
+#define GL_TEXTURE17 0x84D1
+#define GL_TEXTURE18 0x84D2
+#define GL_TEXTURE19 0x84D3
+#define GL_TEXTURE20 0x84D4
+#define GL_TEXTURE21 0x84D5
+#define GL_TEXTURE22 0x84D6
+#define GL_TEXTURE23 0x84D7
+#define GL_TEXTURE24 0x84D8
+#define GL_TEXTURE25 0x84D9
+#define GL_TEXTURE26 0x84DA
+#define GL_TEXTURE27 0x84DB
+#define GL_TEXTURE28 0x84DC
+#define GL_TEXTURE29 0x84DD
+#define GL_TEXTURE30 0x84DE
+#define GL_TEXTURE31 0x84DF
+#define GL_ACTIVE_TEXTURE 0x84E0
+#define GL_MULTISAMPLE 0x809D
+#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE 0x809F
+#define GL_SAMPLE_COVERAGE 0x80A0
+#define GL_SAMPLE_BUFFERS 0x80A8
+#define GL_SAMPLES 0x80A9
+#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
+#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
+#define GL_TEXTURE_CUBE_MAP 0x8513
+#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
+#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
+#define GL_COMPRESSED_RGB 0x84ED
+#define GL_COMPRESSED_RGBA 0x84EE
+#define GL_TEXTURE_COMPRESSION_HINT 0x84EF
+#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
+#define GL_TEXTURE_COMPRESSED 0x86A1
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
+#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
+#define GL_CLAMP_TO_BORDER 0x812D
+#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1
+#define GL_MAX_TEXTURE_UNITS 0x84E2
+#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3
+#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4
+#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5
+#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6
+#define GL_MULTISAMPLE_BIT 0x20000000
+#define GL_NORMAL_MAP 0x8511
+#define GL_REFLECTION_MAP 0x8512
+#define GL_COMPRESSED_ALPHA 0x84E9
+#define GL_COMPRESSED_LUMINANCE 0x84EA
+#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB
+#define GL_COMPRESSED_INTENSITY 0x84EC
+#define GL_COMBINE 0x8570
+#define GL_COMBINE_RGB 0x8571
+#define GL_COMBINE_ALPHA 0x8572
+#define GL_SOURCE0_RGB 0x8580
+#define GL_SOURCE1_RGB 0x8581
+#define GL_SOURCE2_RGB 0x8582
+#define GL_SOURCE0_ALPHA 0x8588
+#define GL_SOURCE1_ALPHA 0x8589
+#define GL_SOURCE2_ALPHA 0x858A
+#define GL_OPERAND0_RGB 0x8590
+#define GL_OPERAND1_RGB 0x8591
+#define GL_OPERAND2_RGB 0x8592
+#define GL_OPERAND0_ALPHA 0x8598
+#define GL_OPERAND1_ALPHA 0x8599
+#define GL_OPERAND2_ALPHA 0x859A
+#define GL_RGB_SCALE 0x8573
+#define GL_ADD_SIGNED 0x8574
+#define GL_INTERPOLATE 0x8575
+#define GL_SUBTRACT 0x84E7
+#define GL_CONSTANT 0x8576
+#define GL_PRIMARY_COLOR 0x8577
+#define GL_PREVIOUS 0x8578
+#define GL_DOT3_RGB 0x86AE
+#define GL_DOT3_RGBA 0x86AF
+typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture);
+typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
+typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, void *img);
+typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m);
+typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m);
+typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m);
+typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glActiveTexture (GLenum texture);
+GLAPI void APIENTRY glSampleCoverage (GLfloat value, GLboolean invert);
+GLAPI void APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
+GLAPI void APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
+GLAPI void APIENTRY glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
+GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
+GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
+GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
+GLAPI void APIENTRY glGetCompressedTexImage (GLenum target, GLint level, void *img);
+GLAPI void APIENTRY glClientActiveTexture (GLenum texture);
+GLAPI void APIENTRY glMultiTexCoord1d (GLenum target, GLdouble s);
+GLAPI void APIENTRY glMultiTexCoord1dv (GLenum target, const GLdouble *v);
+GLAPI void APIENTRY glMultiTexCoord1f (GLenum target, GLfloat s);
+GLAPI void APIENTRY glMultiTexCoord1fv (GLenum target, const GLfloat *v);
+GLAPI void APIENTRY glMultiTexCoord1i (GLenum target, GLint s);
+GLAPI void APIENTRY glMultiTexCoord1iv (GLenum target, const GLint *v);
+GLAPI void APIENTRY glMultiTexCoord1s (GLenum target, GLshort s);
+GLAPI void APIENTRY glMultiTexCoord1sv (GLenum target, const GLshort *v);
+GLAPI void APIENTRY glMultiTexCoord2d (GLenum target, GLdouble s, GLdouble t);
+GLAPI void APIENTRY glMultiTexCoord2dv (GLenum target, const GLdouble *v);
+GLAPI void APIENTRY glMultiTexCoord2f (GLenum target, GLfloat s, GLfloat t);
+GLAPI void APIENTRY glMultiTexCoord2fv (GLenum target, const GLfloat *v);
+GLAPI void APIENTRY glMultiTexCoord2i (GLenum target, GLint s, GLint t);
+GLAPI void APIENTRY glMultiTexCoord2iv (GLenum target, const GLint *v);
+GLAPI void APIENTRY glMultiTexCoord2s (GLenum target, GLshort s, GLshort t);
+GLAPI void APIENTRY glMultiTexCoord2sv (GLenum target, const GLshort *v);
+GLAPI void APIENTRY glMultiTexCoord3d (GLenum target, GLdouble s, GLdouble t, GLdouble r);
+GLAPI void APIENTRY glMultiTexCoord3dv (GLenum target, const GLdouble *v);
+GLAPI void APIENTRY glMultiTexCoord3f (GLenum target, GLfloat s, GLfloat t, GLfloat r);
+GLAPI void APIENTRY glMultiTexCoord3fv (GLenum target, const GLfloat *v);
+GLAPI void APIENTRY glMultiTexCoord3i (GLenum target, GLint s, GLint t, GLint r);
+GLAPI void APIENTRY glMultiTexCoord3iv (GLenum target, const GLint *v);
+GLAPI void APIENTRY glMultiTexCoord3s (GLenum target, GLshort s, GLshort t, GLshort r);
+GLAPI void APIENTRY glMultiTexCoord3sv (GLenum target, const GLshort *v);
+GLAPI void APIENTRY glMultiTexCoord4d (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+GLAPI void APIENTRY glMultiTexCoord4dv (GLenum target, const GLdouble *v);
+GLAPI void APIENTRY glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+GLAPI void APIENTRY glMultiTexCoord4fv (GLenum target, const GLfloat *v);
+GLAPI void APIENTRY glMultiTexCoord4i (GLenum target, GLint s, GLint t, GLint r, GLint q);
+GLAPI void APIENTRY glMultiTexCoord4iv (GLenum target, const GLint *v);
+GLAPI void APIENTRY glMultiTexCoord4s (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+GLAPI void APIENTRY glMultiTexCoord4sv (GLenum target, const GLshort *v);
+GLAPI void APIENTRY glLoadTransposeMatrixf (const GLfloat *m);
+GLAPI void APIENTRY glLoadTransposeMatrixd (const GLdouble *m);
+GLAPI void APIENTRY glMultTransposeMatrixf (const GLfloat *m);
+GLAPI void APIENTRY glMultTransposeMatrixd (const GLdouble *m);
+#endif
+#endif /* GL_VERSION_1_3 */
+
+#ifndef GL_VERSION_1_4
+#define GL_VERSION_1_4 1
+#define GL_BLEND_DST_RGB 0x80C8
+#define GL_BLEND_SRC_RGB 0x80C9
+#define GL_BLEND_DST_ALPHA 0x80CA
+#define GL_BLEND_SRC_ALPHA 0x80CB
+#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
+#define GL_DEPTH_COMPONENT16 0x81A5
+#define GL_DEPTH_COMPONENT24 0x81A6
+#define GL_DEPTH_COMPONENT32 0x81A7
+#define GL_MIRRORED_REPEAT 0x8370
+#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
+#define GL_TEXTURE_LOD_BIAS 0x8501
+#define GL_INCR_WRAP 0x8507
+#define GL_DECR_WRAP 0x8508
+#define GL_TEXTURE_DEPTH_SIZE 0x884A
+#define GL_TEXTURE_COMPARE_MODE 0x884C
+#define GL_TEXTURE_COMPARE_FUNC 0x884D
+#define GL_POINT_SIZE_MIN 0x8126
+#define GL_POINT_SIZE_MAX 0x8127
+#define GL_POINT_DISTANCE_ATTENUATION 0x8129
+#define GL_GENERATE_MIPMAP 0x8191
+#define GL_GENERATE_MIPMAP_HINT 0x8192
+#define GL_FOG_COORDINATE_SOURCE 0x8450
+#define GL_FOG_COORDINATE 0x8451
+#define GL_FRAGMENT_DEPTH 0x8452
+#define GL_CURRENT_FOG_COORDINATE 0x8453
+#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454
+#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455
+#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456
+#define GL_FOG_COORDINATE_ARRAY 0x8457
+#define GL_COLOR_SUM 0x8458
+#define GL_CURRENT_SECONDARY_COLOR 0x8459
+#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A
+#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B
+#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C
+#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D
+#define GL_SECONDARY_COLOR_ARRAY 0x845E
+#define GL_TEXTURE_FILTER_CONTROL 0x8500
+#define GL_DEPTH_TEXTURE_MODE 0x884B
+#define GL_COMPARE_R_TO_TEXTURE 0x884E
+#define GL_FUNC_ADD 0x8006
+#define GL_FUNC_SUBTRACT 0x800A
+#define GL_FUNC_REVERSE_SUBTRACT 0x800B
+#define GL_MIN 0x8007
+#define GL_MAX 0x8008
+#define GL_CONSTANT_COLOR 0x8001
+#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
+#define GL_CONSTANT_ALPHA 0x8003
+#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
+typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount);
+typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount);
+typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLFOGCOORDFPROC) (GLfloat coord);
+typedef void (APIENTRYP PFNGLFOGCOORDFVPROC) (const GLfloat *coord);
+typedef void (APIENTRYP PFNGLFOGCOORDDPROC) (GLdouble coord);
+typedef void (APIENTRYP PFNGLFOGCOORDDVPROC) (const GLdouble *coord);
+typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const void *pointer);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v);
+typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer);
+typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y);
+typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC) (const GLdouble *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y);
+typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC) (const GLfloat *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC) (GLint x, GLint y);
+typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC) (const GLint *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y);
+typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC) (const GLshort *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC) (const GLdouble *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC) (const GLfloat *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z);
+typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC) (const GLint *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC) (const GLshort *v);
+typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+GLAPI void APIENTRY glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount);
+GLAPI void APIENTRY glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount);
+GLAPI void APIENTRY glPointParameterf (GLenum pname, GLfloat param);
+GLAPI void APIENTRY glPointParameterfv (GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glPointParameteri (GLenum pname, GLint param);
+GLAPI void APIENTRY glPointParameteriv (GLenum pname, const GLint *params);
+GLAPI void APIENTRY glFogCoordf (GLfloat coord);
+GLAPI void APIENTRY glFogCoordfv (const GLfloat *coord);
+GLAPI void APIENTRY glFogCoordd (GLdouble coord);
+GLAPI void APIENTRY glFogCoorddv (const GLdouble *coord);
+GLAPI void APIENTRY glFogCoordPointer (GLenum type, GLsizei stride, const void *pointer);
+GLAPI void APIENTRY glSecondaryColor3b (GLbyte red, GLbyte green, GLbyte blue);
+GLAPI void APIENTRY glSecondaryColor3bv (const GLbyte *v);
+GLAPI void APIENTRY glSecondaryColor3d (GLdouble red, GLdouble green, GLdouble blue);
+GLAPI void APIENTRY glSecondaryColor3dv (const GLdouble *v);
+GLAPI void APIENTRY glSecondaryColor3f (GLfloat red, GLfloat green, GLfloat blue);
+GLAPI void APIENTRY glSecondaryColor3fv (const GLfloat *v);
+GLAPI void APIENTRY glSecondaryColor3i (GLint red, GLint green, GLint blue);
+GLAPI void APIENTRY glSecondaryColor3iv (const GLint *v);
+GLAPI void APIENTRY glSecondaryColor3s (GLshort red, GLshort green, GLshort blue);
+GLAPI void APIENTRY glSecondaryColor3sv (const GLshort *v);
+GLAPI void APIENTRY glSecondaryColor3ub (GLubyte red, GLubyte green, GLubyte blue);
+GLAPI void APIENTRY glSecondaryColor3ubv (const GLubyte *v);
+GLAPI void APIENTRY glSecondaryColor3ui (GLuint red, GLuint green, GLuint blue);
+GLAPI void APIENTRY glSecondaryColor3uiv (const GLuint *v);
+GLAPI void APIENTRY glSecondaryColor3us (GLushort red, GLushort green, GLushort blue);
+GLAPI void APIENTRY glSecondaryColor3usv (const GLushort *v);
+GLAPI void APIENTRY glSecondaryColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer);
+GLAPI void APIENTRY glWindowPos2d (GLdouble x, GLdouble y);
+GLAPI void APIENTRY glWindowPos2dv (const GLdouble *v);
+GLAPI void APIENTRY glWindowPos2f (GLfloat x, GLfloat y);
+GLAPI void APIENTRY glWindowPos2fv (const GLfloat *v);
+GLAPI void APIENTRY glWindowPos2i (GLint x, GLint y);
+GLAPI void APIENTRY glWindowPos2iv (const GLint *v);
+GLAPI void APIENTRY glWindowPos2s (GLshort x, GLshort y);
+GLAPI void APIENTRY glWindowPos2sv (const GLshort *v);
+GLAPI void APIENTRY glWindowPos3d (GLdouble x, GLdouble y, GLdouble z);
+GLAPI void APIENTRY glWindowPos3dv (const GLdouble *v);
+GLAPI void APIENTRY glWindowPos3f (GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glWindowPos3fv (const GLfloat *v);
+GLAPI void APIENTRY glWindowPos3i (GLint x, GLint y, GLint z);
+GLAPI void APIENTRY glWindowPos3iv (const GLint *v);
+GLAPI void APIENTRY glWindowPos3s (GLshort x, GLshort y, GLshort z);
+GLAPI void APIENTRY glWindowPos3sv (const GLshort *v);
+GLAPI void APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+GLAPI void APIENTRY glBlendEquation (GLenum mode);
+#endif
+#endif /* GL_VERSION_1_4 */
+
+#ifndef GL_VERSION_1_5
+#define GL_VERSION_1_5 1
+#include <stddef.h>
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptr;
+#define GL_BUFFER_SIZE 0x8764
+#define GL_BUFFER_USAGE 0x8765
+#define GL_QUERY_COUNTER_BITS 0x8864
+#define GL_CURRENT_QUERY 0x8865
+#define GL_QUERY_RESULT 0x8866
+#define GL_QUERY_RESULT_AVAILABLE 0x8867
+#define GL_ARRAY_BUFFER 0x8892
+#define GL_ELEMENT_ARRAY_BUFFER 0x8893
+#define GL_ARRAY_BUFFER_BINDING 0x8894
+#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
+#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
+#define GL_READ_ONLY 0x88B8
+#define GL_WRITE_ONLY 0x88B9
+#define GL_READ_WRITE 0x88BA
+#define GL_BUFFER_ACCESS 0x88BB
+#define GL_BUFFER_MAPPED 0x88BC
+#define GL_BUFFER_MAP_POINTER 0x88BD
+#define GL_STREAM_DRAW 0x88E0
+#define GL_STREAM_READ 0x88E1
+#define GL_STREAM_COPY 0x88E2
+#define GL_STATIC_DRAW 0x88E4
+#define GL_STATIC_READ 0x88E5
+#define GL_STATIC_COPY 0x88E6
+#define GL_DYNAMIC_DRAW 0x88E8
+#define GL_DYNAMIC_READ 0x88E9
+#define GL_DYNAMIC_COPY 0x88EA
+#define GL_SAMPLES_PASSED 0x8914
+#define GL_SRC1_ALPHA 0x8589
+#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896
+#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897
+#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898
+#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899
+#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A
+#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B
+#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C
+#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D
+#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E
+#define GL_FOG_COORD_SRC 0x8450
+#define GL_FOG_COORD 0x8451
+#define GL_CURRENT_FOG_COORD 0x8453
+#define GL_FOG_COORD_ARRAY_TYPE 0x8454
+#define GL_FOG_COORD_ARRAY_STRIDE 0x8455
+#define GL_FOG_COORD_ARRAY_POINTER 0x8456
+#define GL_FOG_COORD_ARRAY 0x8457
+#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D
+#define GL_SRC0_RGB 0x8580
+#define GL_SRC1_RGB 0x8581
+#define GL_SRC2_RGB 0x8582
+#define GL_SRC0_ALPHA 0x8588
+#define GL_SRC2_ALPHA 0x858A
+typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids);
+typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids);
+typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id);
+typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id);
+typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target);
+typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params);
+typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer);
+typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers);
+typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers);
+typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer);
+typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage);
+typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
+typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, void *data);
+typedef void *(APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access);
+typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target);
+typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glGenQueries (GLsizei n, GLuint *ids);
+GLAPI void APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids);
+GLAPI GLboolean APIENTRY glIsQuery (GLuint id);
+GLAPI void APIENTRY glBeginQuery (GLenum target, GLuint id);
+GLAPI void APIENTRY glEndQuery (GLenum target);
+GLAPI void APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetQueryObjectiv (GLuint id, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params);
+GLAPI void APIENTRY glBindBuffer (GLenum target, GLuint buffer);
+GLAPI void APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers);
+GLAPI void APIENTRY glGenBuffers (GLsizei n, GLuint *buffers);
+GLAPI GLboolean APIENTRY glIsBuffer (GLuint buffer);
+GLAPI void APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage);
+GLAPI void APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
+GLAPI void APIENTRY glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, void *data);
+GLAPI void *APIENTRY glMapBuffer (GLenum target, GLenum access);
+GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum target);
+GLAPI void APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params);
+#endif
+#endif /* GL_VERSION_1_5 */
+
+#ifndef GL_VERSION_2_0
+#define GL_VERSION_2_0 1
+typedef char GLchar;
+#define GL_BLEND_EQUATION_RGB 0x8009
+#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
+#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
+#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
+#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
+#define GL_CURRENT_VERTEX_ATTRIB 0x8626
+#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
+#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
+#define GL_STENCIL_BACK_FUNC 0x8800
+#define GL_STENCIL_BACK_FAIL 0x8801
+#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
+#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
+#define GL_MAX_DRAW_BUFFERS 0x8824
+#define GL_DRAW_BUFFER0 0x8825
+#define GL_DRAW_BUFFER1 0x8826
+#define GL_DRAW_BUFFER2 0x8827
+#define GL_DRAW_BUFFER3 0x8828
+#define GL_DRAW_BUFFER4 0x8829
+#define GL_DRAW_BUFFER5 0x882A
+#define GL_DRAW_BUFFER6 0x882B
+#define GL_DRAW_BUFFER7 0x882C
+#define GL_DRAW_BUFFER8 0x882D
+#define GL_DRAW_BUFFER9 0x882E
+#define GL_DRAW_BUFFER10 0x882F
+#define GL_DRAW_BUFFER11 0x8830
+#define GL_DRAW_BUFFER12 0x8831
+#define GL_DRAW_BUFFER13 0x8832
+#define GL_DRAW_BUFFER14 0x8833
+#define GL_DRAW_BUFFER15 0x8834
+#define GL_BLEND_EQUATION_ALPHA 0x883D
+#define GL_MAX_VERTEX_ATTRIBS 0x8869
+#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
+#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
+#define GL_FRAGMENT_SHADER 0x8B30
+#define GL_VERTEX_SHADER 0x8B31
+#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
+#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
+#define GL_MAX_VARYING_FLOATS 0x8B4B
+#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
+#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
+#define GL_SHADER_TYPE 0x8B4F
+#define GL_FLOAT_VEC2 0x8B50
+#define GL_FLOAT_VEC3 0x8B51
+#define GL_FLOAT_VEC4 0x8B52
+#define GL_INT_VEC2 0x8B53
+#define GL_INT_VEC3 0x8B54
+#define GL_INT_VEC4 0x8B55
+#define GL_BOOL 0x8B56
+#define GL_BOOL_VEC2 0x8B57
+#define GL_BOOL_VEC3 0x8B58
+#define GL_BOOL_VEC4 0x8B59
+#define GL_FLOAT_MAT2 0x8B5A
+#define GL_FLOAT_MAT3 0x8B5B
+#define GL_FLOAT_MAT4 0x8B5C
+#define GL_SAMPLER_1D 0x8B5D
+#define GL_SAMPLER_2D 0x8B5E
+#define GL_SAMPLER_3D 0x8B5F
+#define GL_SAMPLER_CUBE 0x8B60
+#define GL_SAMPLER_1D_SHADOW 0x8B61
+#define GL_SAMPLER_2D_SHADOW 0x8B62
+#define GL_DELETE_STATUS 0x8B80
+#define GL_COMPILE_STATUS 0x8B81
+#define GL_LINK_STATUS 0x8B82
+#define GL_VALIDATE_STATUS 0x8B83
+#define GL_INFO_LOG_LENGTH 0x8B84
+#define GL_ATTACHED_SHADERS 0x8B85
+#define GL_ACTIVE_UNIFORMS 0x8B86
+#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
+#define GL_SHADER_SOURCE_LENGTH 0x8B88
+#define GL_ACTIVE_ATTRIBUTES 0x8B89
+#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
+#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
+#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
+#define GL_CURRENT_PROGRAM 0x8B8D
+#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0
+#define GL_LOWER_LEFT 0x8CA1
+#define GL_UPPER_LEFT 0x8CA2
+#define GL_STENCIL_BACK_REF 0x8CA3
+#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
+#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
+#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643
+#define GL_POINT_SPRITE 0x8861
+#define GL_COORD_REPLACE 0x8862
+#define GL_MAX_TEXTURE_COORDS 0x8871
+typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha);
+typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs);
+typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask);
+typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask);
+typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader);
+typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name);
+typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader);
+typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void);
+typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type);
+typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program);
+typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader);
+typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader);
+typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index);
+typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
+typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
+typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
+typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
+typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name);
+typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
+typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
+typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
+typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name);
+typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer);
+typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program);
+typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader);
+typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program);
+typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
+typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program);
+typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0);
+typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1);
+typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0);
+typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1);
+typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2);
+typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha);
+GLAPI void APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs);
+GLAPI void APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+GLAPI void APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask);
+GLAPI void APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask);
+GLAPI void APIENTRY glAttachShader (GLuint program, GLuint shader);
+GLAPI void APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name);
+GLAPI void APIENTRY glCompileShader (GLuint shader);
+GLAPI GLuint APIENTRY glCreateProgram (void);
+GLAPI GLuint APIENTRY glCreateShader (GLenum type);
+GLAPI void APIENTRY glDeleteProgram (GLuint program);
+GLAPI void APIENTRY glDeleteShader (GLuint shader);
+GLAPI void APIENTRY glDetachShader (GLuint program, GLuint shader);
+GLAPI void APIENTRY glDisableVertexAttribArray (GLuint index);
+GLAPI void APIENTRY glEnableVertexAttribArray (GLuint index);
+GLAPI void APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
+GLAPI void APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
+GLAPI void APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
+GLAPI GLint APIENTRY glGetAttribLocation (GLuint program, const GLchar *name);
+GLAPI void APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
+GLAPI void APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
+GLAPI void APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
+GLAPI GLint APIENTRY glGetUniformLocation (GLuint program, const GLchar *name);
+GLAPI void APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params);
+GLAPI void APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params);
+GLAPI void APIENTRY glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble *params);
+GLAPI void APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer);
+GLAPI GLboolean APIENTRY glIsProgram (GLuint program);
+GLAPI GLboolean APIENTRY glIsShader (GLuint shader);
+GLAPI void APIENTRY glLinkProgram (GLuint program);
+GLAPI void APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
+GLAPI void APIENTRY glUseProgram (GLuint program);
+GLAPI void APIENTRY glUniform1f (GLint location, GLfloat v0);
+GLAPI void APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1);
+GLAPI void APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+GLAPI void APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+GLAPI void APIENTRY glUniform1i (GLint location, GLint v0);
+GLAPI void APIENTRY glUniform2i (GLint location, GLint v0, GLint v1);
+GLAPI void APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2);
+GLAPI void APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+GLAPI void APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value);
+GLAPI void APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value);
+GLAPI void APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value);
+GLAPI void APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value);
+GLAPI void APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value);
+GLAPI void APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value);
+GLAPI void APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value);
+GLAPI void APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value);
+GLAPI void APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glValidateProgram (GLuint program);
+GLAPI void APIENTRY glVertexAttrib1d (GLuint index, GLdouble x);
+GLAPI void APIENTRY glVertexAttrib1dv (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttrib1f (GLuint index, GLfloat x);
+GLAPI void APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v);
+GLAPI void APIENTRY glVertexAttrib1s (GLuint index, GLshort x);
+GLAPI void APIENTRY glVertexAttrib1sv (GLuint index, const GLshort *v);
+GLAPI void APIENTRY glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y);
+GLAPI void APIENTRY glVertexAttrib2dv (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y);
+GLAPI void APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v);
+GLAPI void APIENTRY glVertexAttrib2s (GLuint index, GLshort x, GLshort y);
+GLAPI void APIENTRY glVertexAttrib2sv (GLuint index, const GLshort *v);
+GLAPI void APIENTRY glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z);
+GLAPI void APIENTRY glVertexAttrib3dv (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v);
+GLAPI void APIENTRY glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z);
+GLAPI void APIENTRY glVertexAttrib3sv (GLuint index, const GLshort *v);
+GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint index, const GLbyte *v);
+GLAPI void APIENTRY glVertexAttrib4Niv (GLuint index, const GLint *v);
+GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint index, const GLshort *v);
+GLAPI void APIENTRY glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint index, const GLubyte *v);
+GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint index, const GLuint *v);
+GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint index, const GLushort *v);
+GLAPI void APIENTRY glVertexAttrib4bv (GLuint index, const GLbyte *v);
+GLAPI void APIENTRY glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GLAPI void APIENTRY glVertexAttrib4dv (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GLAPI void APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v);
+GLAPI void APIENTRY glVertexAttrib4iv (GLuint index, const GLint *v);
+GLAPI void APIENTRY glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+GLAPI void APIENTRY glVertexAttrib4sv (GLuint index, const GLshort *v);
+GLAPI void APIENTRY glVertexAttrib4ubv (GLuint index, const GLubyte *v);
+GLAPI void APIENTRY glVertexAttrib4uiv (GLuint index, const GLuint *v);
+GLAPI void APIENTRY glVertexAttrib4usv (GLuint index, const GLushort *v);
+GLAPI void APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
+#endif
+#endif /* GL_VERSION_2_0 */
+
+#ifndef GL_VERSION_2_1
+#define GL_VERSION_2_1 1
+#define GL_PIXEL_PACK_BUFFER 0x88EB
+#define GL_PIXEL_UNPACK_BUFFER 0x88EC
+#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
+#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
+#define GL_FLOAT_MAT2x3 0x8B65
+#define GL_FLOAT_MAT2x4 0x8B66
+#define GL_FLOAT_MAT3x2 0x8B67
+#define GL_FLOAT_MAT3x4 0x8B68
+#define GL_FLOAT_MAT4x2 0x8B69
+#define GL_FLOAT_MAT4x3 0x8B6A
+#define GL_SRGB 0x8C40
+#define GL_SRGB8 0x8C41
+#define GL_SRGB_ALPHA 0x8C42
+#define GL_SRGB8_ALPHA8 0x8C43
+#define GL_COMPRESSED_SRGB 0x8C48
+#define GL_COMPRESSED_SRGB_ALPHA 0x8C49
+#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F
+#define GL_SLUMINANCE_ALPHA 0x8C44
+#define GL_SLUMINANCE8_ALPHA8 0x8C45
+#define GL_SLUMINANCE 0x8C46
+#define GL_SLUMINANCE8 0x8C47
+#define GL_COMPRESSED_SLUMINANCE 0x8C4A
+#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+#endif
+#endif /* GL_VERSION_2_1 */
+
+#ifndef GL_VERSION_3_0
+#define GL_VERSION_3_0 1
+typedef unsigned short GLhalf;
+#define GL_COMPARE_REF_TO_TEXTURE 0x884E
+#define GL_CLIP_DISTANCE0 0x3000
+#define GL_CLIP_DISTANCE1 0x3001
+#define GL_CLIP_DISTANCE2 0x3002
+#define GL_CLIP_DISTANCE3 0x3003
+#define GL_CLIP_DISTANCE4 0x3004
+#define GL_CLIP_DISTANCE5 0x3005
+#define GL_CLIP_DISTANCE6 0x3006
+#define GL_CLIP_DISTANCE7 0x3007
+#define GL_MAX_CLIP_DISTANCES 0x0D32
+#define GL_MAJOR_VERSION 0x821B
+#define GL_MINOR_VERSION 0x821C
+#define GL_NUM_EXTENSIONS 0x821D
+#define GL_CONTEXT_FLAGS 0x821E
+#define GL_COMPRESSED_RED 0x8225
+#define GL_COMPRESSED_RG 0x8226
+#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001
+#define GL_RGBA32F 0x8814
+#define GL_RGB32F 0x8815
+#define GL_RGBA16F 0x881A
+#define GL_RGB16F 0x881B
+#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD
+#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF
+#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904
+#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905
+#define GL_CLAMP_READ_COLOR 0x891C
+#define GL_FIXED_ONLY 0x891D
+#define GL_MAX_VARYING_COMPONENTS 0x8B4B
+#define GL_TEXTURE_1D_ARRAY 0x8C18
+#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19
+#define GL_TEXTURE_2D_ARRAY 0x8C1A
+#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B
+#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C
+#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
+#define GL_R11F_G11F_B10F 0x8C3A
+#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
+#define GL_RGB9_E5 0x8C3D
+#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E
+#define GL_TEXTURE_SHARED_SIZE 0x8C3F
+#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
+#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
+#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83
+#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
+#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
+#define GL_PRIMITIVES_GENERATED 0x8C87
+#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
+#define GL_RASTERIZER_DISCARD 0x8C89
+#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
+#define GL_INTERLEAVED_ATTRIBS 0x8C8C
+#define GL_SEPARATE_ATTRIBS 0x8C8D
+#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
+#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
+#define GL_RGBA32UI 0x8D70
+#define GL_RGB32UI 0x8D71
+#define GL_RGBA16UI 0x8D76
+#define GL_RGB16UI 0x8D77
+#define GL_RGBA8UI 0x8D7C
+#define GL_RGB8UI 0x8D7D
+#define GL_RGBA32I 0x8D82
+#define GL_RGB32I 0x8D83
+#define GL_RGBA16I 0x8D88
+#define GL_RGB16I 0x8D89
+#define GL_RGBA8I 0x8D8E
+#define GL_RGB8I 0x8D8F
+#define GL_RED_INTEGER 0x8D94
+#define GL_GREEN_INTEGER 0x8D95
+#define GL_BLUE_INTEGER 0x8D96
+#define GL_RGB_INTEGER 0x8D98
+#define GL_RGBA_INTEGER 0x8D99
+#define GL_BGR_INTEGER 0x8D9A
+#define GL_BGRA_INTEGER 0x8D9B
+#define GL_SAMPLER_1D_ARRAY 0x8DC0
+#define GL_SAMPLER_2D_ARRAY 0x8DC1
+#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3
+#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4
+#define GL_SAMPLER_CUBE_SHADOW 0x8DC5
+#define GL_UNSIGNED_INT_VEC2 0x8DC6
+#define GL_UNSIGNED_INT_VEC3 0x8DC7
+#define GL_UNSIGNED_INT_VEC4 0x8DC8
+#define GL_INT_SAMPLER_1D 0x8DC9
+#define GL_INT_SAMPLER_2D 0x8DCA
+#define GL_INT_SAMPLER_3D 0x8DCB
+#define GL_INT_SAMPLER_CUBE 0x8DCC
+#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE
+#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF
+#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1
+#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2
+#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3
+#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4
+#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6
+#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7
+#define GL_QUERY_WAIT 0x8E13
+#define GL_QUERY_NO_WAIT 0x8E14
+#define GL_QUERY_BY_REGION_WAIT 0x8E15
+#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16
+#define GL_BUFFER_ACCESS_FLAGS 0x911F
+#define GL_BUFFER_MAP_LENGTH 0x9120
+#define GL_BUFFER_MAP_OFFSET 0x9121
+#define GL_DEPTH_COMPONENT32F 0x8CAC
+#define GL_DEPTH32F_STENCIL8 0x8CAD
+#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
+#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
+#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
+#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
+#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
+#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
+#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
+#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
+#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
+#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
+#define GL_FRAMEBUFFER_DEFAULT 0x8218
+#define GL_FRAMEBUFFER_UNDEFINED 0x8219
+#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A
+#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
+#define GL_DEPTH_STENCIL 0x84F9
+#define GL_UNSIGNED_INT_24_8 0x84FA
+#define GL_DEPTH24_STENCIL8 0x88F0
+#define GL_TEXTURE_STENCIL_SIZE 0x88F1
+#define GL_TEXTURE_RED_TYPE 0x8C10
+#define GL_TEXTURE_GREEN_TYPE 0x8C11
+#define GL_TEXTURE_BLUE_TYPE 0x8C12
+#define GL_TEXTURE_ALPHA_TYPE 0x8C13
+#define GL_TEXTURE_DEPTH_TYPE 0x8C16
+#define GL_UNSIGNED_NORMALIZED 0x8C17
+#define GL_FRAMEBUFFER_BINDING 0x8CA6
+#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
+#define GL_RENDERBUFFER_BINDING 0x8CA7
+#define GL_READ_FRAMEBUFFER 0x8CA8
+#define GL_DRAW_FRAMEBUFFER 0x8CA9
+#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
+#define GL_RENDERBUFFER_SAMPLES 0x8CAB
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
+#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
+#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
+#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
+#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB
+#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC
+#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
+#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
+#define GL_COLOR_ATTACHMENT0 0x8CE0
+#define GL_COLOR_ATTACHMENT1 0x8CE1
+#define GL_COLOR_ATTACHMENT2 0x8CE2
+#define GL_COLOR_ATTACHMENT3 0x8CE3
+#define GL_COLOR_ATTACHMENT4 0x8CE4
+#define GL_COLOR_ATTACHMENT5 0x8CE5
+#define GL_COLOR_ATTACHMENT6 0x8CE6
+#define GL_COLOR_ATTACHMENT7 0x8CE7
+#define GL_COLOR_ATTACHMENT8 0x8CE8
+#define GL_COLOR_ATTACHMENT9 0x8CE9
+#define GL_COLOR_ATTACHMENT10 0x8CEA
+#define GL_COLOR_ATTACHMENT11 0x8CEB
+#define GL_COLOR_ATTACHMENT12 0x8CEC
+#define GL_COLOR_ATTACHMENT13 0x8CED
+#define GL_COLOR_ATTACHMENT14 0x8CEE
+#define GL_COLOR_ATTACHMENT15 0x8CEF
+#define GL_DEPTH_ATTACHMENT 0x8D00
+#define GL_STENCIL_ATTACHMENT 0x8D20
+#define GL_FRAMEBUFFER 0x8D40
+#define GL_RENDERBUFFER 0x8D41
+#define GL_RENDERBUFFER_WIDTH 0x8D42
+#define GL_RENDERBUFFER_HEIGHT 0x8D43
+#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
+#define GL_STENCIL_INDEX1 0x8D46
+#define GL_STENCIL_INDEX4 0x8D47
+#define GL_STENCIL_INDEX8 0x8D48
+#define GL_STENCIL_INDEX16 0x8D49
+#define GL_RENDERBUFFER_RED_SIZE 0x8D50
+#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
+#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
+#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
+#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
+#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
+#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
+#define GL_MAX_SAMPLES 0x8D57
+#define GL_INDEX 0x8222
+#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14
+#define GL_TEXTURE_INTENSITY_TYPE 0x8C15
+#define GL_FRAMEBUFFER_SRGB 0x8DB9
+#define GL_HALF_FLOAT 0x140B
+#define GL_MAP_READ_BIT 0x0001
+#define GL_MAP_WRITE_BIT 0x0002
+#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004
+#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008
+#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010
+#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020
+#define GL_COMPRESSED_RED_RGTC1 0x8DBB
+#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC
+#define GL_COMPRESSED_RG_RGTC2 0x8DBD
+#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE
+#define GL_RG 0x8227
+#define GL_RG_INTEGER 0x8228
+#define GL_R8 0x8229
+#define GL_R16 0x822A
+#define GL_RG8 0x822B
+#define GL_RG16 0x822C
+#define GL_R16F 0x822D
+#define GL_R32F 0x822E
+#define GL_RG16F 0x822F
+#define GL_RG32F 0x8230
+#define GL_R8I 0x8231
+#define GL_R8UI 0x8232
+#define GL_R16I 0x8233
+#define GL_R16UI 0x8234
+#define GL_R32I 0x8235
+#define GL_R32UI 0x8236
+#define GL_RG8I 0x8237
+#define GL_RG8UI 0x8238
+#define GL_RG16I 0x8239
+#define GL_RG16UI 0x823A
+#define GL_RG32I 0x823B
+#define GL_RG32UI 0x823C
+#define GL_VERTEX_ARRAY_BINDING 0x85B5
+#define GL_CLAMP_VERTEX_COLOR 0x891A
+#define GL_CLAMP_FRAGMENT_COLOR 0x891B
+#define GL_ALPHA_INTEGER 0x8D97
+typedef void (APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data);
+typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data);
+typedef void (APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index);
+typedef void (APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index);
+typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index);
+typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode);
+typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void);
+typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer);
+typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode);
+typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
+typedef void (APIENTRYP PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp);
+typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode);
+typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC) (void);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v);
+typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params);
+typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name);
+typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name);
+typedef void (APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0);
+typedef void (APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1);
+typedef void (APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
+typedef void (APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params);
+typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params);
+typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value);
+typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value);
+typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value);
+typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+typedef const GLubyte *(APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index);
+typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer);
+typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer);
+typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers);
+typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers);
+typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer);
+typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer);
+typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers);
+typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers);
+typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target);
+typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+typedef void *(APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
+typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length);
+typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array);
+typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays);
+typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays);
+typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+GLAPI void APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data);
+GLAPI void APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data);
+GLAPI void APIENTRY glEnablei (GLenum target, GLuint index);
+GLAPI void APIENTRY glDisablei (GLenum target, GLuint index);
+GLAPI GLboolean APIENTRY glIsEnabledi (GLenum target, GLuint index);
+GLAPI void APIENTRY glBeginTransformFeedback (GLenum primitiveMode);
+GLAPI void APIENTRY glEndTransformFeedback (void);
+GLAPI void APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+GLAPI void APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer);
+GLAPI void APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode);
+GLAPI void APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
+GLAPI void APIENTRY glClampColor (GLenum target, GLenum clamp);
+GLAPI void APIENTRY glBeginConditionalRender (GLuint id, GLenum mode);
+GLAPI void APIENTRY glEndConditionalRender (void);
+GLAPI void APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
+GLAPI void APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params);
+GLAPI void APIENTRY glVertexAttribI1i (GLuint index, GLint x);
+GLAPI void APIENTRY glVertexAttribI2i (GLuint index, GLint x, GLint y);
+GLAPI void APIENTRY glVertexAttribI3i (GLuint index, GLint x, GLint y, GLint z);
+GLAPI void APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w);
+GLAPI void APIENTRY glVertexAttribI1ui (GLuint index, GLuint x);
+GLAPI void APIENTRY glVertexAttribI2ui (GLuint index, GLuint x, GLuint y);
+GLAPI void APIENTRY glVertexAttribI3ui (GLuint index, GLuint x, GLuint y, GLuint z);
+GLAPI void APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+GLAPI void APIENTRY glVertexAttribI1iv (GLuint index, const GLint *v);
+GLAPI void APIENTRY glVertexAttribI2iv (GLuint index, const GLint *v);
+GLAPI void APIENTRY glVertexAttribI3iv (GLuint index, const GLint *v);
+GLAPI void APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v);
+GLAPI void APIENTRY glVertexAttribI1uiv (GLuint index, const GLuint *v);
+GLAPI void APIENTRY glVertexAttribI2uiv (GLuint index, const GLuint *v);
+GLAPI void APIENTRY glVertexAttribI3uiv (GLuint index, const GLuint *v);
+GLAPI void APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v);
+GLAPI void APIENTRY glVertexAttribI4bv (GLuint index, const GLbyte *v);
+GLAPI void APIENTRY glVertexAttribI4sv (GLuint index, const GLshort *v);
+GLAPI void APIENTRY glVertexAttribI4ubv (GLuint index, const GLubyte *v);
+GLAPI void APIENTRY glVertexAttribI4usv (GLuint index, const GLushort *v);
+GLAPI void APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params);
+GLAPI void APIENTRY glBindFragDataLocation (GLuint program, GLuint color, const GLchar *name);
+GLAPI GLint APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name);
+GLAPI void APIENTRY glUniform1ui (GLint location, GLuint v0);
+GLAPI void APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1);
+GLAPI void APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2);
+GLAPI void APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+GLAPI void APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value);
+GLAPI void APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value);
+GLAPI void APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value);
+GLAPI void APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value);
+GLAPI void APIENTRY glTexParameterIiv (GLenum target, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params);
+GLAPI void APIENTRY glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params);
+GLAPI void APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value);
+GLAPI void APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value);
+GLAPI void APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value);
+GLAPI void APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+GLAPI const GLubyte *APIENTRY glGetStringi (GLenum name, GLuint index);
+GLAPI GLboolean APIENTRY glIsRenderbuffer (GLuint renderbuffer);
+GLAPI void APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer);
+GLAPI void APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers);
+GLAPI void APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers);
+GLAPI void APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+GLAPI void APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params);
+GLAPI GLboolean APIENTRY glIsFramebuffer (GLuint framebuffer);
+GLAPI void APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer);
+GLAPI void APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers);
+GLAPI void APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers);
+GLAPI GLenum APIENTRY glCheckFramebufferStatus (GLenum target);
+GLAPI void APIENTRY glFramebufferTexture1D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLAPI void APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLAPI void APIENTRY glFramebufferTexture3D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+GLAPI void APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+GLAPI void APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGenerateMipmap (GLenum target);
+GLAPI void APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+GLAPI void APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+GLAPI void APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+GLAPI void *APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
+GLAPI void APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length);
+GLAPI void APIENTRY glBindVertexArray (GLuint array);
+GLAPI void APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays);
+GLAPI void APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays);
+GLAPI GLboolean APIENTRY glIsVertexArray (GLuint array);
+#endif
+#endif /* GL_VERSION_3_0 */
+
+#ifndef GL_VERSION_3_1
+#define GL_VERSION_3_1 1
+#define GL_SAMPLER_2D_RECT 0x8B63
+#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64
+#define GL_SAMPLER_BUFFER 0x8DC2
+#define GL_INT_SAMPLER_2D_RECT 0x8DCD
+#define GL_INT_SAMPLER_BUFFER 0x8DD0
+#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5
+#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8
+#define GL_TEXTURE_BUFFER 0x8C2A
+#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B
+#define GL_TEXTURE_BINDING_BUFFER 0x8C2C
+#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D
+#define GL_TEXTURE_RECTANGLE 0x84F5
+#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6
+#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8
+#define GL_R8_SNORM 0x8F94
+#define GL_RG8_SNORM 0x8F95
+#define GL_RGB8_SNORM 0x8F96
+#define GL_RGBA8_SNORM 0x8F97
+#define GL_R16_SNORM 0x8F98
+#define GL_RG16_SNORM 0x8F99
+#define GL_RGB16_SNORM 0x8F9A
+#define GL_RGBA16_SNORM 0x8F9B
+#define GL_SIGNED_NORMALIZED 0x8F9C
+#define GL_PRIMITIVE_RESTART 0x8F9D
+#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E
+#define GL_COPY_READ_BUFFER 0x8F36
+#define GL_COPY_WRITE_BUFFER 0x8F37
+#define GL_UNIFORM_BUFFER 0x8A11
+#define GL_UNIFORM_BUFFER_BINDING 0x8A28
+#define GL_UNIFORM_BUFFER_START 0x8A29
+#define GL_UNIFORM_BUFFER_SIZE 0x8A2A
+#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B
+#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D
+#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E
+#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F
+#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30
+#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
+#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
+#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
+#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
+#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36
+#define GL_UNIFORM_TYPE 0x8A37
+#define GL_UNIFORM_SIZE 0x8A38
+#define GL_UNIFORM_NAME_LENGTH 0x8A39
+#define GL_UNIFORM_BLOCK_INDEX 0x8A3A
+#define GL_UNIFORM_OFFSET 0x8A3B
+#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C
+#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D
+#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E
+#define GL_UNIFORM_BLOCK_BINDING 0x8A3F
+#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40
+#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41
+#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42
+#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
+#define GL_INVALID_INDEX 0xFFFFFFFFu
+typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount);
+typedef void (APIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer);
+typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint index);
+typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices);
+typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
+typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName);
+typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
+typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+GLAPI void APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount);
+GLAPI void APIENTRY glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer);
+GLAPI void APIENTRY glPrimitiveRestartIndex (GLuint index);
+GLAPI void APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+GLAPI void APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices);
+GLAPI void APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetActiveUniformName (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
+GLAPI GLuint APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName);
+GLAPI void APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
+GLAPI void APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
+#endif
+#endif /* GL_VERSION_3_1 */
+
+#ifndef GL_VERSION_3_2
+#define GL_VERSION_3_2 1
+typedef struct __GLsync *GLsync;
+#ifndef GLEXT_64_TYPES_DEFINED
+/* This code block is duplicated in glxext.h, so must be protected */
+#define GLEXT_64_TYPES_DEFINED
+/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
+/* (as used in the GL_EXT_timer_query extension). */
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#include <inttypes.h>
+#elif defined(__sun__) || defined(__digital__)
+#include <inttypes.h>
+#if defined(__STDC__)
+#if defined(__arch64__) || defined(_LP64)
+typedef long int int64_t;
+typedef unsigned long int uint64_t;
+#else
+typedef long long int int64_t;
+typedef unsigned long long int uint64_t;
+#endif /* __arch64__ */
+#endif /* __STDC__ */
+#elif defined( __VMS ) || defined(__sgi)
+#include <inttypes.h>
+#elif defined(__SCO__) || defined(__USLC__)
+#include <stdint.h>
+#elif defined(__UNIXOS2__) || defined(__SOL64__)
+typedef long int int32_t;
+typedef long long int int64_t;
+typedef unsigned long long int uint64_t;
+#elif defined(_WIN32) && defined(__GNUC__)
+#include <stdint.h>
+#elif defined(_WIN32)
+typedef __int32 int32_t;
+typedef __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+#else
+/* Fallback if nothing above works */
+#include <inttypes.h>
+#endif
+#endif
+typedef uint64_t GLuint64;
+typedef int64_t GLint64;
+#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001
+#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002
+#define GL_LINES_ADJACENCY 0x000A
+#define GL_LINE_STRIP_ADJACENCY 0x000B
+#define GL_TRIANGLES_ADJACENCY 0x000C
+#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D
+#define GL_PROGRAM_POINT_SIZE 0x8642
+#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29
+#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8
+#define GL_GEOMETRY_SHADER 0x8DD9
+#define GL_GEOMETRY_VERTICES_OUT 0x8916
+#define GL_GEOMETRY_INPUT_TYPE 0x8917
+#define GL_GEOMETRY_OUTPUT_TYPE 0x8918
+#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF
+#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0
+#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1
+#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
+#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123
+#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124
+#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
+#define GL_CONTEXT_PROFILE_MASK 0x9126
+#define GL_DEPTH_CLAMP 0x864F
+#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C
+#define GL_FIRST_VERTEX_CONVENTION 0x8E4D
+#define GL_LAST_VERTEX_CONVENTION 0x8E4E
+#define GL_PROVOKING_VERTEX 0x8E4F
+#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
+#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
+#define GL_OBJECT_TYPE 0x9112
+#define GL_SYNC_CONDITION 0x9113
+#define GL_SYNC_STATUS 0x9114
+#define GL_SYNC_FLAGS 0x9115
+#define GL_SYNC_FENCE 0x9116
+#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
+#define GL_UNSIGNALED 0x9118
+#define GL_SIGNALED 0x9119
+#define GL_ALREADY_SIGNALED 0x911A
+#define GL_TIMEOUT_EXPIRED 0x911B
+#define GL_CONDITION_SATISFIED 0x911C
+#define GL_WAIT_FAILED 0x911D
+#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull
+#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
+#define GL_SAMPLE_POSITION 0x8E50
+#define GL_SAMPLE_MASK 0x8E51
+#define GL_SAMPLE_MASK_VALUE 0x8E52
+#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59
+#define GL_TEXTURE_2D_MULTISAMPLE 0x9100
+#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101
+#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
+#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
+#define GL_TEXTURE_SAMPLES 0x9106
+#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107
+#define GL_SAMPLER_2D_MULTISAMPLE 0x9108
+#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
+#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
+#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
+#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
+#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F
+#define GL_MAX_INTEGER_SAMPLES 0x9110
+typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
+typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
+typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
+typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex);
+typedef void (APIENTRYP PFNGLPROVOKINGVERTEXPROC) (GLenum mode);
+typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags);
+typedef GLboolean (APIENTRYP PFNGLISSYNCPROC) (GLsync sync);
+typedef void (APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync);
+typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
+typedef void (APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
+typedef void (APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data);
+typedef void (APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
+typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data);
+typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val);
+typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
+GLAPI void APIENTRY glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
+GLAPI void APIENTRY glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
+GLAPI void APIENTRY glMultiDrawElementsBaseVertex (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex);
+GLAPI void APIENTRY glProvokingVertex (GLenum mode);
+GLAPI GLsync APIENTRY glFenceSync (GLenum condition, GLbitfield flags);
+GLAPI GLboolean APIENTRY glIsSync (GLsync sync);
+GLAPI void APIENTRY glDeleteSync (GLsync sync);
+GLAPI GLenum APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout);
+GLAPI void APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout);
+GLAPI void APIENTRY glGetInteger64v (GLenum pname, GLint64 *data);
+GLAPI void APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
+GLAPI void APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data);
+GLAPI void APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params);
+GLAPI void APIENTRY glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level);
+GLAPI void APIENTRY glTexImage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+GLAPI void APIENTRY glTexImage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+GLAPI void APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val);
+GLAPI void APIENTRY glSampleMaski (GLuint index, GLbitfield mask);
+#endif
+#endif /* GL_VERSION_3_2 */
+
+#ifndef GL_VERSION_3_3
+#define GL_VERSION_3_3 1
+#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE
+#define GL_SRC1_COLOR 0x88F9
+#define GL_ONE_MINUS_SRC1_COLOR 0x88FA
+#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB
+#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC
+#define GL_ANY_SAMPLES_PASSED 0x8C2F
+#define GL_SAMPLER_BINDING 0x8919
+#define GL_RGB10_A2UI 0x906F
+#define GL_TEXTURE_SWIZZLE_R 0x8E42
+#define GL_TEXTURE_SWIZZLE_G 0x8E43
+#define GL_TEXTURE_SWIZZLE_B 0x8E44
+#define GL_TEXTURE_SWIZZLE_A 0x8E45
+#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46
+#define GL_TIME_ELAPSED 0x88BF
+#define GL_TIMESTAMP 0x8E28
+#define GL_INT_2_10_10_10_REV 0x8D9F
+typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
+typedef GLint (APIENTRYP PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar *name);
+typedef void (APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers);
+typedef void (APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers);
+typedef GLboolean (APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler);
+typedef void (APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler);
+typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param);
+typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param);
+typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param);
+typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param);
+typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params);
+typedef void (APIENTRYP PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target);
+typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64 *params);
+typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64 *params);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
+typedef void (APIENTRYP PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value);
+typedef void (APIENTRYP PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint *value);
+typedef void (APIENTRYP PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value);
+typedef void (APIENTRYP PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint *value);
+typedef void (APIENTRYP PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value);
+typedef void (APIENTRYP PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint *value);
+typedef void (APIENTRYP PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords);
+typedef void (APIENTRYP PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint *coords);
+typedef void (APIENTRYP PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords);
+typedef void (APIENTRYP PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint *coords);
+typedef void (APIENTRYP PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords);
+typedef void (APIENTRYP PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint *coords);
+typedef void (APIENTRYP PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords);
+typedef void (APIENTRYP PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint *coords);
+typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords);
+typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
+typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords);
+typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
+typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords);
+typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
+typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords);
+typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint *coords);
+typedef void (APIENTRYP PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords);
+typedef void (APIENTRYP PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint *coords);
+typedef void (APIENTRYP PFNGLCOLORP3UIPROC) (GLenum type, GLuint color);
+typedef void (APIENTRYP PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint *color);
+typedef void (APIENTRYP PFNGLCOLORP4UIPROC) (GLenum type, GLuint color);
+typedef void (APIENTRYP PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint *color);
+typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color);
+typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint *color);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBindFragDataLocationIndexed (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
+GLAPI GLint APIENTRY glGetFragDataIndex (GLuint program, const GLchar *name);
+GLAPI void APIENTRY glGenSamplers (GLsizei count, GLuint *samplers);
+GLAPI void APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers);
+GLAPI GLboolean APIENTRY glIsSampler (GLuint sampler);
+GLAPI void APIENTRY glBindSampler (GLuint unit, GLuint sampler);
+GLAPI void APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param);
+GLAPI void APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param);
+GLAPI void APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param);
+GLAPI void APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param);
+GLAPI void APIENTRY glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param);
+GLAPI void APIENTRY glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param);
+GLAPI void APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params);
+GLAPI void APIENTRY glQueryCounter (GLuint id, GLenum target);
+GLAPI void APIENTRY glGetQueryObjecti64v (GLuint id, GLenum pname, GLint64 *params);
+GLAPI void APIENTRY glGetQueryObjectui64v (GLuint id, GLenum pname, GLuint64 *params);
+GLAPI void APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor);
+GLAPI void APIENTRY glVertexAttribP1ui (GLuint index, GLenum type, GLboolean normalized, GLuint value);
+GLAPI void APIENTRY glVertexAttribP1uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
+GLAPI void APIENTRY glVertexAttribP2ui (GLuint index, GLenum type, GLboolean normalized, GLuint value);
+GLAPI void APIENTRY glVertexAttribP2uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
+GLAPI void APIENTRY glVertexAttribP3ui (GLuint index, GLenum type, GLboolean normalized, GLuint value);
+GLAPI void APIENTRY glVertexAttribP3uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
+GLAPI void APIENTRY glVertexAttribP4ui (GLuint index, GLenum type, GLboolean normalized, GLuint value);
+GLAPI void APIENTRY glVertexAttribP4uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
+GLAPI void APIENTRY glVertexP2ui (GLenum type, GLuint value);
+GLAPI void APIENTRY glVertexP2uiv (GLenum type, const GLuint *value);
+GLAPI void APIENTRY glVertexP3ui (GLenum type, GLuint value);
+GLAPI void APIENTRY glVertexP3uiv (GLenum type, const GLuint *value);
+GLAPI void APIENTRY glVertexP4ui (GLenum type, GLuint value);
+GLAPI void APIENTRY glVertexP4uiv (GLenum type, const GLuint *value);
+GLAPI void APIENTRY glTexCoordP1ui (GLenum type, GLuint coords);
+GLAPI void APIENTRY glTexCoordP1uiv (GLenum type, const GLuint *coords);
+GLAPI void APIENTRY glTexCoordP2ui (GLenum type, GLuint coords);
+GLAPI void APIENTRY glTexCoordP2uiv (GLenum type, const GLuint *coords);
+GLAPI void APIENTRY glTexCoordP3ui (GLenum type, GLuint coords);
+GLAPI void APIENTRY glTexCoordP3uiv (GLenum type, const GLuint *coords);
+GLAPI void APIENTRY glTexCoordP4ui (GLenum type, GLuint coords);
+GLAPI void APIENTRY glTexCoordP4uiv (GLenum type, const GLuint *coords);
+GLAPI void APIENTRY glMultiTexCoordP1ui (GLenum texture, GLenum type, GLuint coords);
+GLAPI void APIENTRY glMultiTexCoordP1uiv (GLenum texture, GLenum type, const GLuint *coords);
+GLAPI void APIENTRY glMultiTexCoordP2ui (GLenum texture, GLenum type, GLuint coords);
+GLAPI void APIENTRY glMultiTexCoordP2uiv (GLenum texture, GLenum type, const GLuint *coords);
+GLAPI void APIENTRY glMultiTexCoordP3ui (GLenum texture, GLenum type, GLuint coords);
+GLAPI void APIENTRY glMultiTexCoordP3uiv (GLenum texture, GLenum type, const GLuint *coords);
+GLAPI void APIENTRY glMultiTexCoordP4ui (GLenum texture, GLenum type, GLuint coords);
+GLAPI void APIENTRY glMultiTexCoordP4uiv (GLenum texture, GLenum type, const GLuint *coords);
+GLAPI void APIENTRY glNormalP3ui (GLenum type, GLuint coords);
+GLAPI void APIENTRY glNormalP3uiv (GLenum type, const GLuint *coords);
+GLAPI void APIENTRY glColorP3ui (GLenum type, GLuint color);
+GLAPI void APIENTRY glColorP3uiv (GLenum type, const GLuint *color);
+GLAPI void APIENTRY glColorP4ui (GLenum type, GLuint color);
+GLAPI void APIENTRY glColorP4uiv (GLenum type, const GLuint *color);
+GLAPI void APIENTRY glSecondaryColorP3ui (GLenum type, GLuint color);
+GLAPI void APIENTRY glSecondaryColorP3uiv (GLenum type, const GLuint *color);
+#endif
+#endif /* GL_VERSION_3_3 */
+
+#ifndef GL_VERSION_4_0
+#define GL_VERSION_4_0 1
+#define GL_SAMPLE_SHADING 0x8C36
+#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37
+#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E
+#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F
+#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B
+#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C
+#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D
+#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E
+#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F
+#define GL_DRAW_INDIRECT_BUFFER 0x8F3F
+#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43
+#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F
+#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A
+#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B
+#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C
+#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D
+#define GL_MAX_VERTEX_STREAMS 0x8E71
+#define GL_DOUBLE_VEC2 0x8FFC
+#define GL_DOUBLE_VEC3 0x8FFD
+#define GL_DOUBLE_VEC4 0x8FFE
+#define GL_DOUBLE_MAT2 0x8F46
+#define GL_DOUBLE_MAT3 0x8F47
+#define GL_DOUBLE_MAT4 0x8F48
+#define GL_DOUBLE_MAT2x3 0x8F49
+#define GL_DOUBLE_MAT2x4 0x8F4A
+#define GL_DOUBLE_MAT3x2 0x8F4B
+#define GL_DOUBLE_MAT3x4 0x8F4C
+#define GL_DOUBLE_MAT4x2 0x8F4D
+#define GL_DOUBLE_MAT4x3 0x8F4E
+#define GL_ACTIVE_SUBROUTINES 0x8DE5
+#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6
+#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47
+#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48
+#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49
+#define GL_MAX_SUBROUTINES 0x8DE7
+#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8
+#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A
+#define GL_COMPATIBLE_SUBROUTINES 0x8E4B
+#define GL_PATCHES 0x000E
+#define GL_PATCH_VERTICES 0x8E72
+#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73
+#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74
+#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75
+#define GL_TESS_GEN_MODE 0x8E76
+#define GL_TESS_GEN_SPACING 0x8E77
+#define GL_TESS_GEN_VERTEX_ORDER 0x8E78
+#define GL_TESS_GEN_POINT_MODE 0x8E79
+#define GL_ISOLINES 0x8E7A
+#define GL_FRACTIONAL_ODD 0x8E7B
+#define GL_FRACTIONAL_EVEN 0x8E7C
+#define GL_MAX_PATCH_VERTICES 0x8E7D
+#define GL_MAX_TESS_GEN_LEVEL 0x8E7E
+#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F
+#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80
+#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81
+#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82
+#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83
+#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84
+#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85
+#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86
+#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89
+#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A
+#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C
+#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D
+#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E
+#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1
+#define GL_TESS_EVALUATION_SHADER 0x8E87
+#define GL_TESS_CONTROL_SHADER 0x8E88
+#define GL_TRANSFORM_FEEDBACK 0x8E22
+#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23
+#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24
+#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25
+#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70
+typedef void (APIENTRYP PFNGLMINSAMPLESHADINGPROC) (GLfloat value);
+typedef void (APIENTRYP PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode);
+typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+typedef void (APIENTRYP PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst);
+typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+typedef void (APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect);
+typedef void (APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect);
+typedef void (APIENTRYP PFNGLUNIFORM1DPROC) (GLint location, GLdouble x);
+typedef void (APIENTRYP PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y);
+typedef void (APIENTRYP PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRYP PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble *value);
+typedef void (APIENTRYP PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble *value);
+typedef void (APIENTRYP PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble *value);
+typedef void (APIENTRYP PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble *params);
+typedef GLint (APIENTRYP PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar *name);
+typedef GLuint (APIENTRYP PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar *name);
+typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values);
+typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
+typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
+typedef void (APIENTRYP PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint *indices);
+typedef void (APIENTRYP PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint *params);
+typedef void (APIENTRYP PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint *values);
+typedef void (APIENTRYP PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value);
+typedef void (APIENTRYP PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat *values);
+typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id);
+typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids);
+typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids);
+typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id);
+typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void);
+typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void);
+typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id);
+typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream);
+typedef void (APIENTRYP PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id);
+typedef void (APIENTRYP PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index);
+typedef void (APIENTRYP PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glMinSampleShading (GLfloat value);
+GLAPI void APIENTRY glBlendEquationi (GLuint buf, GLenum mode);
+GLAPI void APIENTRY glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+GLAPI void APIENTRY glBlendFunci (GLuint buf, GLenum src, GLenum dst);
+GLAPI void APIENTRY glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+GLAPI void APIENTRY glDrawArraysIndirect (GLenum mode, const void *indirect);
+GLAPI void APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect);
+GLAPI void APIENTRY glUniform1d (GLint location, GLdouble x);
+GLAPI void APIENTRY glUniform2d (GLint location, GLdouble x, GLdouble y);
+GLAPI void APIENTRY glUniform3d (GLint location, GLdouble x, GLdouble y, GLdouble z);
+GLAPI void APIENTRY glUniform4d (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GLAPI void APIENTRY glUniform1dv (GLint location, GLsizei count, const GLdouble *value);
+GLAPI void APIENTRY glUniform2dv (GLint location, GLsizei count, const GLdouble *value);
+GLAPI void APIENTRY glUniform3dv (GLint location, GLsizei count, const GLdouble *value);
+GLAPI void APIENTRY glUniform4dv (GLint location, GLsizei count, const GLdouble *value);
+GLAPI void APIENTRY glUniformMatrix2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glUniformMatrix3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glUniformMatrix4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glUniformMatrix2x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glUniformMatrix2x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glUniformMatrix3x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glUniformMatrix3x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glUniformMatrix4x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glUniformMatrix4x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glGetUniformdv (GLuint program, GLint location, GLdouble *params);
+GLAPI GLint APIENTRY glGetSubroutineUniformLocation (GLuint program, GLenum shadertype, const GLchar *name);
+GLAPI GLuint APIENTRY glGetSubroutineIndex (GLuint program, GLenum shadertype, const GLchar *name);
+GLAPI void APIENTRY glGetActiveSubroutineUniformiv (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values);
+GLAPI void APIENTRY glGetActiveSubroutineUniformName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
+GLAPI void APIENTRY glGetActiveSubroutineName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name);
+GLAPI void APIENTRY glUniformSubroutinesuiv (GLenum shadertype, GLsizei count, const GLuint *indices);
+GLAPI void APIENTRY glGetUniformSubroutineuiv (GLenum shadertype, GLint location, GLuint *params);
+GLAPI void APIENTRY glGetProgramStageiv (GLuint program, GLenum shadertype, GLenum pname, GLint *values);
+GLAPI void APIENTRY glPatchParameteri (GLenum pname, GLint value);
+GLAPI void APIENTRY glPatchParameterfv (GLenum pname, const GLfloat *values);
+GLAPI void APIENTRY glBindTransformFeedback (GLenum target, GLuint id);
+GLAPI void APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids);
+GLAPI void APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids);
+GLAPI GLboolean APIENTRY glIsTransformFeedback (GLuint id);
+GLAPI void APIENTRY glPauseTransformFeedback (void);
+GLAPI void APIENTRY glResumeTransformFeedback (void);
+GLAPI void APIENTRY glDrawTransformFeedback (GLenum mode, GLuint id);
+GLAPI void APIENTRY glDrawTransformFeedbackStream (GLenum mode, GLuint id, GLuint stream);
+GLAPI void APIENTRY glBeginQueryIndexed (GLenum target, GLuint index, GLuint id);
+GLAPI void APIENTRY glEndQueryIndexed (GLenum target, GLuint index);
+GLAPI void APIENTRY glGetQueryIndexediv (GLenum target, GLuint index, GLenum pname, GLint *params);
+#endif
+#endif /* GL_VERSION_4_0 */
+
+#ifndef GL_VERSION_4_1
+#define GL_VERSION_4_1 1
+#define GL_FIXED 0x140C
+#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
+#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
+#define GL_LOW_FLOAT 0x8DF0
+#define GL_MEDIUM_FLOAT 0x8DF1
+#define GL_HIGH_FLOAT 0x8DF2
+#define GL_LOW_INT 0x8DF3
+#define GL_MEDIUM_INT 0x8DF4
+#define GL_HIGH_INT 0x8DF5
+#define GL_SHADER_COMPILER 0x8DFA
+#define GL_SHADER_BINARY_FORMATS 0x8DF8
+#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
+#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
+#define GL_MAX_VARYING_VECTORS 0x8DFC
+#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
+#define GL_RGB565 0x8D62
+#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257
+#define GL_PROGRAM_BINARY_LENGTH 0x8741
+#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE
+#define GL_PROGRAM_BINARY_FORMATS 0x87FF
+#define GL_VERTEX_SHADER_BIT 0x00000001
+#define GL_FRAGMENT_SHADER_BIT 0x00000002
+#define GL_GEOMETRY_SHADER_BIT 0x00000004
+#define GL_TESS_CONTROL_SHADER_BIT 0x00000008
+#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010
+#define GL_ALL_SHADER_BITS 0xFFFFFFFF
+#define GL_PROGRAM_SEPARABLE 0x8258
+#define GL_ACTIVE_PROGRAM 0x8259
+#define GL_PROGRAM_PIPELINE_BINDING 0x825A
+#define GL_MAX_VIEWPORTS 0x825B
+#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C
+#define GL_VIEWPORT_BOUNDS_RANGE 0x825D
+#define GL_LAYER_PROVOKING_VERTEX 0x825E
+#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F
+#define GL_UNDEFINED_VERTEX 0x8260
+typedef void (APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void);
+typedef void (APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length);
+typedef void (APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
+typedef void (APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f);
+typedef void (APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d);
+typedef void (APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary);
+typedef void (APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
+typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value);
+typedef void (APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program);
+typedef void (APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program);
+typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar *const*strings);
+typedef void (APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline);
+typedef void (APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines);
+typedef void (APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines);
+typedef GLboolean (APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline);
+typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble v0);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline);
+typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble *params);
+typedef void (APIENTRYP PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
+typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint *v);
+typedef void (APIENTRYP PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLdouble *v);
+typedef void (APIENTRYP PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLdouble n, GLdouble f);
+typedef void (APIENTRYP PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat *data);
+typedef void (APIENTRYP PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble *data);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glReleaseShaderCompiler (void);
+GLAPI void APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length);
+GLAPI void APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
+GLAPI void APIENTRY glDepthRangef (GLfloat n, GLfloat f);
+GLAPI void APIENTRY glClearDepthf (GLfloat d);
+GLAPI void APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary);
+GLAPI void APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length);
+GLAPI void APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value);
+GLAPI void APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program);
+GLAPI void APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program);
+GLAPI GLuint APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar *const*strings);
+GLAPI void APIENTRY glBindProgramPipeline (GLuint pipeline);
+GLAPI void APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines);
+GLAPI void APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines);
+GLAPI GLboolean APIENTRY glIsProgramPipeline (GLuint pipeline);
+GLAPI void APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params);
+GLAPI void APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0);
+GLAPI void APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value);
+GLAPI void APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0);
+GLAPI void APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniform1d (GLuint program, GLint location, GLdouble v0);
+GLAPI void APIENTRY glProgramUniform1dv (GLuint program, GLint location, GLsizei count, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0);
+GLAPI void APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value);
+GLAPI void APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1);
+GLAPI void APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value);
+GLAPI void APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1);
+GLAPI void APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniform2d (GLuint program, GLint location, GLdouble v0, GLdouble v1);
+GLAPI void APIENTRY glProgramUniform2dv (GLuint program, GLint location, GLsizei count, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1);
+GLAPI void APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value);
+GLAPI void APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
+GLAPI void APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value);
+GLAPI void APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+GLAPI void APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniform3d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+GLAPI void APIENTRY glProgramUniform3dv (GLuint program, GLint location, GLsizei count, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
+GLAPI void APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value);
+GLAPI void APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+GLAPI void APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value);
+GLAPI void APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+GLAPI void APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniform4d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+GLAPI void APIENTRY glProgramUniform4dv (GLuint program, GLint location, GLsizei count, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+GLAPI void APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value);
+GLAPI void APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glValidateProgramPipeline (GLuint pipeline);
+GLAPI void APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
+GLAPI void APIENTRY glVertexAttribL1d (GLuint index, GLdouble x);
+GLAPI void APIENTRY glVertexAttribL2d (GLuint index, GLdouble x, GLdouble y);
+GLAPI void APIENTRY glVertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z);
+GLAPI void APIENTRY glVertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GLAPI void APIENTRY glVertexAttribL1dv (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttribL2dv (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttribL3dv (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttribL4dv (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
+GLAPI void APIENTRY glGetVertexAttribLdv (GLuint index, GLenum pname, GLdouble *params);
+GLAPI void APIENTRY glViewportArrayv (GLuint first, GLsizei count, const GLfloat *v);
+GLAPI void APIENTRY glViewportIndexedf (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
+GLAPI void APIENTRY glViewportIndexedfv (GLuint index, const GLfloat *v);
+GLAPI void APIENTRY glScissorArrayv (GLuint first, GLsizei count, const GLint *v);
+GLAPI void APIENTRY glScissorIndexed (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
+GLAPI void APIENTRY glScissorIndexedv (GLuint index, const GLint *v);
+GLAPI void APIENTRY glDepthRangeArrayv (GLuint first, GLsizei count, const GLdouble *v);
+GLAPI void APIENTRY glDepthRangeIndexed (GLuint index, GLdouble n, GLdouble f);
+GLAPI void APIENTRY glGetFloati_v (GLenum target, GLuint index, GLfloat *data);
+GLAPI void APIENTRY glGetDoublei_v (GLenum target, GLuint index, GLdouble *data);
+#endif
+#endif /* GL_VERSION_4_1 */
+
+#ifndef GL_VERSION_4_2
+#define GL_VERSION_4_2 1
+#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127
+#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128
+#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129
+#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A
+#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B
+#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C
+#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D
+#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E
+#define GL_NUM_SAMPLE_COUNTS 0x9380
+#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC
+#define GL_ATOMIC_COUNTER_BUFFER 0x92C0
+#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1
+#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2
+#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3
+#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4
+#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5
+#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB
+#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC
+#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD
+#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE
+#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF
+#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0
+#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1
+#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2
+#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3
+#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4
+#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5
+#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6
+#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7
+#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8
+#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC
+#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9
+#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA
+#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB
+#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001
+#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002
+#define GL_UNIFORM_BARRIER_BIT 0x00000004
+#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008
+#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020
+#define GL_COMMAND_BARRIER_BIT 0x00000040
+#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080
+#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100
+#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200
+#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400
+#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800
+#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000
+#define GL_ALL_BARRIER_BITS 0xFFFFFFFF
+#define GL_MAX_IMAGE_UNITS 0x8F38
+#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39
+#define GL_IMAGE_BINDING_NAME 0x8F3A
+#define GL_IMAGE_BINDING_LEVEL 0x8F3B
+#define GL_IMAGE_BINDING_LAYERED 0x8F3C
+#define GL_IMAGE_BINDING_LAYER 0x8F3D
+#define GL_IMAGE_BINDING_ACCESS 0x8F3E
+#define GL_IMAGE_1D 0x904C
+#define GL_IMAGE_2D 0x904D
+#define GL_IMAGE_3D 0x904E
+#define GL_IMAGE_2D_RECT 0x904F
+#define GL_IMAGE_CUBE 0x9050
+#define GL_IMAGE_BUFFER 0x9051
+#define GL_IMAGE_1D_ARRAY 0x9052
+#define GL_IMAGE_2D_ARRAY 0x9053
+#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054
+#define GL_IMAGE_2D_MULTISAMPLE 0x9055
+#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056
+#define GL_INT_IMAGE_1D 0x9057
+#define GL_INT_IMAGE_2D 0x9058
+#define GL_INT_IMAGE_3D 0x9059
+#define GL_INT_IMAGE_2D_RECT 0x905A
+#define GL_INT_IMAGE_CUBE 0x905B
+#define GL_INT_IMAGE_BUFFER 0x905C
+#define GL_INT_IMAGE_1D_ARRAY 0x905D
+#define GL_INT_IMAGE_2D_ARRAY 0x905E
+#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F
+#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060
+#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061
+#define GL_UNSIGNED_INT_IMAGE_1D 0x9062
+#define GL_UNSIGNED_INT_IMAGE_2D 0x9063
+#define GL_UNSIGNED_INT_IMAGE_3D 0x9064
+#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065
+#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066
+#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067
+#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068
+#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069
+#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C
+#define GL_MAX_IMAGE_SAMPLES 0x906D
+#define GL_IMAGE_BINDING_FORMAT 0x906E
+#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7
+#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8
+#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9
+#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA
+#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB
+#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC
+#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD
+#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE
+#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF
+#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F
+typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
+typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance);
+typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
+typedef void (APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
+typedef void (APIENTRYP PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
+typedef void (APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers);
+typedef void (APIENTRYP PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
+typedef void (APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) (GLenum mode, GLuint id, GLsizei instancecount);
+typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) (GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDrawArraysInstancedBaseInstance (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
+GLAPI void APIENTRY glDrawElementsInstancedBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance);
+GLAPI void APIENTRY glDrawElementsInstancedBaseVertexBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
+GLAPI void APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
+GLAPI void APIENTRY glGetActiveAtomicCounterBufferiv (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params);
+GLAPI void APIENTRY glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
+GLAPI void APIENTRY glMemoryBarrier (GLbitfield barriers);
+GLAPI void APIENTRY glTexStorage1D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
+GLAPI void APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+GLAPI void APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+GLAPI void APIENTRY glDrawTransformFeedbackInstanced (GLenum mode, GLuint id, GLsizei instancecount);
+GLAPI void APIENTRY glDrawTransformFeedbackStreamInstanced (GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);
+#endif
+#endif /* GL_VERSION_4_2 */
+
+#ifndef GL_VERSION_4_3
+#define GL_VERSION_4_3 1
+typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
+#define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9
+#define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E
+#define GL_COMPRESSED_RGB8_ETC2 0x9274
+#define GL_COMPRESSED_SRGB8_ETC2 0x9275
+#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276
+#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277
+#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278
+#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279
+#define GL_COMPRESSED_R11_EAC 0x9270
+#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271
+#define GL_COMPRESSED_RG11_EAC 0x9272
+#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273
+#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69
+#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A
+#define GL_MAX_ELEMENT_INDEX 0x8D6B
+#define GL_COMPUTE_SHADER 0x91B9
+#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB
+#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC
+#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD
+#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262
+#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263
+#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264
+#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265
+#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266
+#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB
+#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE
+#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF
+#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED
+#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE
+#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF
+#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242
+#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243
+#define GL_DEBUG_CALLBACK_FUNCTION 0x8244
+#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245
+#define GL_DEBUG_SOURCE_API 0x8246
+#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247
+#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248
+#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249
+#define GL_DEBUG_SOURCE_APPLICATION 0x824A
+#define GL_DEBUG_SOURCE_OTHER 0x824B
+#define GL_DEBUG_TYPE_ERROR 0x824C
+#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D
+#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E
+#define GL_DEBUG_TYPE_PORTABILITY 0x824F
+#define GL_DEBUG_TYPE_PERFORMANCE 0x8250
+#define GL_DEBUG_TYPE_OTHER 0x8251
+#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143
+#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144
+#define GL_DEBUG_LOGGED_MESSAGES 0x9145
+#define GL_DEBUG_SEVERITY_HIGH 0x9146
+#define GL_DEBUG_SEVERITY_MEDIUM 0x9147
+#define GL_DEBUG_SEVERITY_LOW 0x9148
+#define GL_DEBUG_TYPE_MARKER 0x8268
+#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269
+#define GL_DEBUG_TYPE_POP_GROUP 0x826A
+#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B
+#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C
+#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D
+#define GL_BUFFER 0x82E0
+#define GL_SHADER 0x82E1
+#define GL_PROGRAM 0x82E2
+#define GL_QUERY 0x82E3
+#define GL_PROGRAM_PIPELINE 0x82E4
+#define GL_SAMPLER 0x82E6
+#define GL_MAX_LABEL_LENGTH 0x82E8
+#define GL_DEBUG_OUTPUT 0x92E0
+#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002
+#define GL_MAX_UNIFORM_LOCATIONS 0x826E
+#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310
+#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311
+#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312
+#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313
+#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314
+#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315
+#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316
+#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317
+#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318
+#define GL_INTERNALFORMAT_SUPPORTED 0x826F
+#define GL_INTERNALFORMAT_PREFERRED 0x8270
+#define GL_INTERNALFORMAT_RED_SIZE 0x8271
+#define GL_INTERNALFORMAT_GREEN_SIZE 0x8272
+#define GL_INTERNALFORMAT_BLUE_SIZE 0x8273
+#define GL_INTERNALFORMAT_ALPHA_SIZE 0x8274
+#define GL_INTERNALFORMAT_DEPTH_SIZE 0x8275
+#define GL_INTERNALFORMAT_STENCIL_SIZE 0x8276
+#define GL_INTERNALFORMAT_SHARED_SIZE 0x8277
+#define GL_INTERNALFORMAT_RED_TYPE 0x8278
+#define GL_INTERNALFORMAT_GREEN_TYPE 0x8279
+#define GL_INTERNALFORMAT_BLUE_TYPE 0x827A
+#define GL_INTERNALFORMAT_ALPHA_TYPE 0x827B
+#define GL_INTERNALFORMAT_DEPTH_TYPE 0x827C
+#define GL_INTERNALFORMAT_STENCIL_TYPE 0x827D
+#define GL_MAX_WIDTH 0x827E
+#define GL_MAX_HEIGHT 0x827F
+#define GL_MAX_DEPTH 0x8280
+#define GL_MAX_LAYERS 0x8281
+#define GL_MAX_COMBINED_DIMENSIONS 0x8282
+#define GL_COLOR_COMPONENTS 0x8283
+#define GL_DEPTH_COMPONENTS 0x8284
+#define GL_STENCIL_COMPONENTS 0x8285
+#define GL_COLOR_RENDERABLE 0x8286
+#define GL_DEPTH_RENDERABLE 0x8287
+#define GL_STENCIL_RENDERABLE 0x8288
+#define GL_FRAMEBUFFER_RENDERABLE 0x8289
+#define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A
+#define GL_FRAMEBUFFER_BLEND 0x828B
+#define GL_READ_PIXELS 0x828C
+#define GL_READ_PIXELS_FORMAT 0x828D
+#define GL_READ_PIXELS_TYPE 0x828E
+#define GL_TEXTURE_IMAGE_FORMAT 0x828F
+#define GL_TEXTURE_IMAGE_TYPE 0x8290
+#define GL_GET_TEXTURE_IMAGE_FORMAT 0x8291
+#define GL_GET_TEXTURE_IMAGE_TYPE 0x8292
+#define GL_MIPMAP 0x8293
+#define GL_MANUAL_GENERATE_MIPMAP 0x8294
+#define GL_AUTO_GENERATE_MIPMAP 0x8295
+#define GL_COLOR_ENCODING 0x8296
+#define GL_SRGB_READ 0x8297
+#define GL_SRGB_WRITE 0x8298
+#define GL_FILTER 0x829A
+#define GL_VERTEX_TEXTURE 0x829B
+#define GL_TESS_CONTROL_TEXTURE 0x829C
+#define GL_TESS_EVALUATION_TEXTURE 0x829D
+#define GL_GEOMETRY_TEXTURE 0x829E
+#define GL_FRAGMENT_TEXTURE 0x829F
+#define GL_COMPUTE_TEXTURE 0x82A0
+#define GL_TEXTURE_SHADOW 0x82A1
+#define GL_TEXTURE_GATHER 0x82A2
+#define GL_TEXTURE_GATHER_SHADOW 0x82A3
+#define GL_SHADER_IMAGE_LOAD 0x82A4
+#define GL_SHADER_IMAGE_STORE 0x82A5
+#define GL_SHADER_IMAGE_ATOMIC 0x82A6
+#define GL_IMAGE_TEXEL_SIZE 0x82A7
+#define GL_IMAGE_COMPATIBILITY_CLASS 0x82A8
+#define GL_IMAGE_PIXEL_FORMAT 0x82A9
+#define GL_IMAGE_PIXEL_TYPE 0x82AA
+#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC
+#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD
+#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE
+#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF
+#define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1
+#define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2
+#define GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3
+#define GL_CLEAR_BUFFER 0x82B4
+#define GL_TEXTURE_VIEW 0x82B5
+#define GL_VIEW_COMPATIBILITY_CLASS 0x82B6
+#define GL_FULL_SUPPORT 0x82B7
+#define GL_CAVEAT_SUPPORT 0x82B8
+#define GL_IMAGE_CLASS_4_X_32 0x82B9
+#define GL_IMAGE_CLASS_2_X_32 0x82BA
+#define GL_IMAGE_CLASS_1_X_32 0x82BB
+#define GL_IMAGE_CLASS_4_X_16 0x82BC
+#define GL_IMAGE_CLASS_2_X_16 0x82BD
+#define GL_IMAGE_CLASS_1_X_16 0x82BE
+#define GL_IMAGE_CLASS_4_X_8 0x82BF
+#define GL_IMAGE_CLASS_2_X_8 0x82C0
+#define GL_IMAGE_CLASS_1_X_8 0x82C1
+#define GL_IMAGE_CLASS_11_11_10 0x82C2
+#define GL_IMAGE_CLASS_10_10_10_2 0x82C3
+#define GL_VIEW_CLASS_128_BITS 0x82C4
+#define GL_VIEW_CLASS_96_BITS 0x82C5
+#define GL_VIEW_CLASS_64_BITS 0x82C6
+#define GL_VIEW_CLASS_48_BITS 0x82C7
+#define GL_VIEW_CLASS_32_BITS 0x82C8
+#define GL_VIEW_CLASS_24_BITS 0x82C9
+#define GL_VIEW_CLASS_16_BITS 0x82CA
+#define GL_VIEW_CLASS_8_BITS 0x82CB
+#define GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC
+#define GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD
+#define GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE
+#define GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF
+#define GL_VIEW_CLASS_RGTC1_RED 0x82D0
+#define GL_VIEW_CLASS_RGTC2_RG 0x82D1
+#define GL_VIEW_CLASS_BPTC_UNORM 0x82D2
+#define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3
+#define GL_UNIFORM 0x92E1
+#define GL_UNIFORM_BLOCK 0x92E2
+#define GL_PROGRAM_INPUT 0x92E3
+#define GL_PROGRAM_OUTPUT 0x92E4
+#define GL_BUFFER_VARIABLE 0x92E5
+#define GL_SHADER_STORAGE_BLOCK 0x92E6
+#define GL_VERTEX_SUBROUTINE 0x92E8
+#define GL_TESS_CONTROL_SUBROUTINE 0x92E9
+#define GL_TESS_EVALUATION_SUBROUTINE 0x92EA
+#define GL_GEOMETRY_SUBROUTINE 0x92EB
+#define GL_FRAGMENT_SUBROUTINE 0x92EC
+#define GL_COMPUTE_SUBROUTINE 0x92ED
+#define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE
+#define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF
+#define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0
+#define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1
+#define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2
+#define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3
+#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4
+#define GL_ACTIVE_RESOURCES 0x92F5
+#define GL_MAX_NAME_LENGTH 0x92F6
+#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7
+#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8
+#define GL_NAME_LENGTH 0x92F9
+#define GL_TYPE 0x92FA
+#define GL_ARRAY_SIZE 0x92FB
+#define GL_OFFSET 0x92FC
+#define GL_BLOCK_INDEX 0x92FD
+#define GL_ARRAY_STRIDE 0x92FE
+#define GL_MATRIX_STRIDE 0x92FF
+#define GL_IS_ROW_MAJOR 0x9300
+#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301
+#define GL_BUFFER_BINDING 0x9302
+#define GL_BUFFER_DATA_SIZE 0x9303
+#define GL_NUM_ACTIVE_VARIABLES 0x9304
+#define GL_ACTIVE_VARIABLES 0x9305
+#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306
+#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307
+#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308
+#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309
+#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A
+#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B
+#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C
+#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D
+#define GL_LOCATION 0x930E
+#define GL_LOCATION_INDEX 0x930F
+#define GL_IS_PER_PATCH 0x92E7
+#define GL_SHADER_STORAGE_BUFFER 0x90D2
+#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3
+#define GL_SHADER_STORAGE_BUFFER_START 0x90D4
+#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5
+#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6
+#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7
+#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8
+#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9
+#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA
+#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB
+#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC
+#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD
+#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE
+#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF
+#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000
+#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39
+#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA
+#define GL_TEXTURE_BUFFER_OFFSET 0x919D
+#define GL_TEXTURE_BUFFER_SIZE 0x919E
+#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F
+#define GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB
+#define GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC
+#define GL_TEXTURE_VIEW_MIN_LAYER 0x82DD
+#define GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE
+#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
+#define GL_VERTEX_ATTRIB_BINDING 0x82D4
+#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5
+#define GL_VERTEX_BINDING_DIVISOR 0x82D6
+#define GL_VERTEX_BINDING_OFFSET 0x82D7
+#define GL_VERTEX_BINDING_STRIDE 0x82D8
+#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9
+#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA
+#define GL_DISPLAY_LIST 0x82E7
+typedef void (APIENTRYP PFNGLCLEARBUFFERDATAPROC) (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data);
+typedef void (APIENTRYP PFNGLCLEARBUFFERSUBDATAPROC) (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
+typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
+typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect);
+typedef void (APIENTRYP PFNGLCOPYIMAGESUBDATAPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETINTERNALFORMATI64VPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 *params);
+typedef void (APIENTRYP PFNGLINVALIDATETEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
+typedef void (APIENTRYP PFNGLINVALIDATETEXIMAGEPROC) (GLuint texture, GLint level);
+typedef void (APIENTRYP PFNGLINVALIDATEBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length);
+typedef void (APIENTRYP PFNGLINVALIDATEBUFFERDATAPROC) (GLuint buffer);
+typedef void (APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
+typedef void (APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride);
+typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride);
+typedef void (APIENTRYP PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint *params);
+typedef GLuint (APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name);
+typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
+typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params);
+typedef GLint (APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar *name);
+typedef GLint (APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name);
+typedef void (APIENTRYP PFNGLSHADERSTORAGEBLOCKBINDINGPROC) (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
+typedef void (APIENTRYP PFNGLTEXBUFFERRANGEPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+typedef void (APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+typedef void (APIENTRYP PFNGLTEXTUREVIEWPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
+typedef void (APIENTRYP PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBLFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex);
+typedef void (APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor);
+typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
+typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
+typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam);
+typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
+typedef void (APIENTRYP PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message);
+typedef void (APIENTRYP PFNGLPOPDEBUGGROUPPROC) (void);
+typedef void (APIENTRYP PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
+typedef void (APIENTRYP PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
+typedef void (APIENTRYP PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar *label);
+typedef void (APIENTRYP PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glClearBufferData (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data);
+GLAPI void APIENTRY glClearBufferSubData (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
+GLAPI void APIENTRY glDispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
+GLAPI void APIENTRY glDispatchComputeIndirect (GLintptr indirect);
+GLAPI void APIENTRY glCopyImageSubData (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
+GLAPI void APIENTRY glFramebufferParameteri (GLenum target, GLenum pname, GLint param);
+GLAPI void APIENTRY glGetFramebufferParameteriv (GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetInternalformati64v (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 *params);
+GLAPI void APIENTRY glInvalidateTexSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
+GLAPI void APIENTRY glInvalidateTexImage (GLuint texture, GLint level);
+GLAPI void APIENTRY glInvalidateBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr length);
+GLAPI void APIENTRY glInvalidateBufferData (GLuint buffer);
+GLAPI void APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments);
+GLAPI void APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
+GLAPI void APIENTRY glMultiDrawArraysIndirect (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride);
+GLAPI void APIENTRY glMultiDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride);
+GLAPI void APIENTRY glGetProgramInterfaceiv (GLuint program, GLenum programInterface, GLenum pname, GLint *params);
+GLAPI GLuint APIENTRY glGetProgramResourceIndex (GLuint program, GLenum programInterface, const GLchar *name);
+GLAPI void APIENTRY glGetProgramResourceName (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
+GLAPI void APIENTRY glGetProgramResourceiv (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params);
+GLAPI GLint APIENTRY glGetProgramResourceLocation (GLuint program, GLenum programInterface, const GLchar *name);
+GLAPI GLint APIENTRY glGetProgramResourceLocationIndex (GLuint program, GLenum programInterface, const GLchar *name);
+GLAPI void APIENTRY glShaderStorageBlockBinding (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
+GLAPI void APIENTRY glTexBufferRange (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+GLAPI void APIENTRY glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+GLAPI void APIENTRY glTexStorage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+GLAPI void APIENTRY glTextureView (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
+GLAPI void APIENTRY glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
+GLAPI void APIENTRY glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
+GLAPI void APIENTRY glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+GLAPI void APIENTRY glVertexAttribLFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+GLAPI void APIENTRY glVertexAttribBinding (GLuint attribindex, GLuint bindingindex);
+GLAPI void APIENTRY glVertexBindingDivisor (GLuint bindingindex, GLuint divisor);
+GLAPI void APIENTRY glDebugMessageControl (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
+GLAPI void APIENTRY glDebugMessageInsert (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
+GLAPI void APIENTRY glDebugMessageCallback (GLDEBUGPROC callback, const void *userParam);
+GLAPI GLuint APIENTRY glGetDebugMessageLog (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
+GLAPI void APIENTRY glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message);
+GLAPI void APIENTRY glPopDebugGroup (void);
+GLAPI void APIENTRY glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
+GLAPI void APIENTRY glGetObjectLabel (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
+GLAPI void APIENTRY glObjectPtrLabel (const void *ptr, GLsizei length, const GLchar *label);
+GLAPI void APIENTRY glGetObjectPtrLabel (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
+#endif
+#endif /* GL_VERSION_4_3 */
+
+#ifndef GL_VERSION_4_4
+#define GL_VERSION_4_4 1
+#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5
+#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221
+#define GL_TEXTURE_BUFFER_BINDING 0x8C2A
+#define GL_MAP_PERSISTENT_BIT 0x0040
+#define GL_MAP_COHERENT_BIT 0x0080
+#define GL_DYNAMIC_STORAGE_BIT 0x0100
+#define GL_CLIENT_STORAGE_BIT 0x0200
+#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000
+#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F
+#define GL_BUFFER_STORAGE_FLAGS 0x8220
+#define GL_CLEAR_TEXTURE 0x9365
+#define GL_LOCATION_COMPONENT 0x934A
+#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B
+#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C
+#define GL_QUERY_BUFFER 0x9192
+#define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000
+#define GL_QUERY_BUFFER_BINDING 0x9193
+#define GL_QUERY_RESULT_NO_WAIT 0x9194
+#define GL_MIRROR_CLAMP_TO_EDGE 0x8743
+typedef void (APIENTRYP PFNGLBUFFERSTORAGEPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
+typedef void (APIENTRYP PFNGLCLEARTEXIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data);
+typedef void (APIENTRYP PFNGLCLEARTEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
+typedef void (APIENTRYP PFNGLBINDBUFFERSBASEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint *buffers);
+typedef void (APIENTRYP PFNGLBINDBUFFERSRANGEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes);
+typedef void (APIENTRYP PFNGLBINDTEXTURESPROC) (GLuint first, GLsizei count, const GLuint *textures);
+typedef void (APIENTRYP PFNGLBINDSAMPLERSPROC) (GLuint first, GLsizei count, const GLuint *samplers);
+typedef void (APIENTRYP PFNGLBINDIMAGETEXTURESPROC) (GLuint first, GLsizei count, const GLuint *textures);
+typedef void (APIENTRYP PFNGLBINDVERTEXBUFFERSPROC) (GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBufferStorage (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
+GLAPI void APIENTRY glClearTexImage (GLuint texture, GLint level, GLenum format, GLenum type, const void *data);
+GLAPI void APIENTRY glClearTexSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
+GLAPI void APIENTRY glBindBuffersBase (GLenum target, GLuint first, GLsizei count, const GLuint *buffers);
+GLAPI void APIENTRY glBindBuffersRange (GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes);
+GLAPI void APIENTRY glBindTextures (GLuint first, GLsizei count, const GLuint *textures);
+GLAPI void APIENTRY glBindSamplers (GLuint first, GLsizei count, const GLuint *samplers);
+GLAPI void APIENTRY glBindImageTextures (GLuint first, GLsizei count, const GLuint *textures);
+GLAPI void APIENTRY glBindVertexBuffers (GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
+#endif
+#endif /* GL_VERSION_4_4 */
+
+#ifndef GL_ARB_ES2_compatibility
+#define GL_ARB_ES2_compatibility 1
+#endif /* GL_ARB_ES2_compatibility */
+
+#ifndef GL_ARB_ES3_compatibility
+#define GL_ARB_ES3_compatibility 1
+#endif /* GL_ARB_ES3_compatibility */
+
+#ifndef GL_ARB_arrays_of_arrays
+#define GL_ARB_arrays_of_arrays 1
+#endif /* GL_ARB_arrays_of_arrays */
+
+#ifndef GL_ARB_base_instance
+#define GL_ARB_base_instance 1
+#endif /* GL_ARB_base_instance */
+
+#ifndef GL_ARB_bindless_texture
+#define GL_ARB_bindless_texture 1
+typedef uint64_t GLuint64EXT;
+#define GL_UNSIGNED_INT64_ARB 0x140F
+typedef GLuint64 (APIENTRYP PFNGLGETTEXTUREHANDLEARBPROC) (GLuint texture);
+typedef GLuint64 (APIENTRYP PFNGLGETTEXTURESAMPLERHANDLEARBPROC) (GLuint texture, GLuint sampler);
+typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle);
+typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC) (GLuint64 handle);
+typedef GLuint64 (APIENTRYP PFNGLGETIMAGEHANDLEARBPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
+typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle, GLenum access);
+typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC) (GLuint64 handle);
+typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64ARBPROC) (GLint location, GLuint64 value);
+typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64VARBPROC) (GLint location, GLsizei count, const GLuint64 *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC) (GLuint program, GLint location, GLuint64 value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values);
+typedef GLboolean (APIENTRYP PFNGLISTEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle);
+typedef GLboolean (APIENTRYP PFNGLISIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64ARBPROC) (GLuint index, GLuint64EXT x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64VARBPROC) (GLuint index, const GLuint64EXT *v);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLUI64VARBPROC) (GLuint index, GLenum pname, GLuint64EXT *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLuint64 APIENTRY glGetTextureHandleARB (GLuint texture);
+GLAPI GLuint64 APIENTRY glGetTextureSamplerHandleARB (GLuint texture, GLuint sampler);
+GLAPI void APIENTRY glMakeTextureHandleResidentARB (GLuint64 handle);
+GLAPI void APIENTRY glMakeTextureHandleNonResidentARB (GLuint64 handle);
+GLAPI GLuint64 APIENTRY glGetImageHandleARB (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
+GLAPI void APIENTRY glMakeImageHandleResidentARB (GLuint64 handle, GLenum access);
+GLAPI void APIENTRY glMakeImageHandleNonResidentARB (GLuint64 handle);
+GLAPI void APIENTRY glUniformHandleui64ARB (GLint location, GLuint64 value);
+GLAPI void APIENTRY glUniformHandleui64vARB (GLint location, GLsizei count, const GLuint64 *value);
+GLAPI void APIENTRY glProgramUniformHandleui64ARB (GLuint program, GLint location, GLuint64 value);
+GLAPI void APIENTRY glProgramUniformHandleui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64 *values);
+GLAPI GLboolean APIENTRY glIsTextureHandleResidentARB (GLuint64 handle);
+GLAPI GLboolean APIENTRY glIsImageHandleResidentARB (GLuint64 handle);
+GLAPI void APIENTRY glVertexAttribL1ui64ARB (GLuint index, GLuint64EXT x);
+GLAPI void APIENTRY glVertexAttribL1ui64vARB (GLuint index, const GLuint64EXT *v);
+GLAPI void APIENTRY glGetVertexAttribLui64vARB (GLuint index, GLenum pname, GLuint64EXT *params);
+#endif
+#endif /* GL_ARB_bindless_texture */
+
+#ifndef GL_ARB_blend_func_extended
+#define GL_ARB_blend_func_extended 1
+#endif /* GL_ARB_blend_func_extended */
+
+#ifndef GL_ARB_buffer_storage
+#define GL_ARB_buffer_storage 1
+#endif /* GL_ARB_buffer_storage */
+
+#ifndef GL_ARB_cl_event
+#define GL_ARB_cl_event 1
+struct _cl_context;
+struct _cl_event;
+#define GL_SYNC_CL_EVENT_ARB 0x8240
+#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241
+typedef GLsync (APIENTRYP PFNGLCREATESYNCFROMCLEVENTARBPROC) (struct _cl_context *context, struct _cl_event *event, GLbitfield flags);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLsync APIENTRY glCreateSyncFromCLeventARB (struct _cl_context *context, struct _cl_event *event, GLbitfield flags);
+#endif
+#endif /* GL_ARB_cl_event */
+
+#ifndef GL_ARB_clear_buffer_object
+#define GL_ARB_clear_buffer_object 1
+#endif /* GL_ARB_clear_buffer_object */
+
+#ifndef GL_ARB_clear_texture
+#define GL_ARB_clear_texture 1
+#endif /* GL_ARB_clear_texture */
+
+#ifndef GL_ARB_color_buffer_float
+#define GL_ARB_color_buffer_float 1
+#define GL_RGBA_FLOAT_MODE_ARB 0x8820
+#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A
+#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B
+#define GL_CLAMP_READ_COLOR_ARB 0x891C
+#define GL_FIXED_ONLY_ARB 0x891D
+typedef void (APIENTRYP PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glClampColorARB (GLenum target, GLenum clamp);
+#endif
+#endif /* GL_ARB_color_buffer_float */
+
+#ifndef GL_ARB_compatibility
+#define GL_ARB_compatibility 1
+#endif /* GL_ARB_compatibility */
+
+#ifndef GL_ARB_compressed_texture_pixel_storage
+#define GL_ARB_compressed_texture_pixel_storage 1
+#endif /* GL_ARB_compressed_texture_pixel_storage */
+
+#ifndef GL_ARB_compute_shader
+#define GL_ARB_compute_shader 1
+#define GL_COMPUTE_SHADER_BIT 0x00000020
+#endif /* GL_ARB_compute_shader */
+
+#ifndef GL_ARB_compute_variable_group_size
+#define GL_ARB_compute_variable_group_size 1
+#define GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB 0x9344
+#define GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB 0x90EB
+#define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345
+#define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF
+typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDispatchComputeGroupSizeARB (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z);
+#endif
+#endif /* GL_ARB_compute_variable_group_size */
+
+#ifndef GL_ARB_conservative_depth
+#define GL_ARB_conservative_depth 1
+#endif /* GL_ARB_conservative_depth */
+
+#ifndef GL_ARB_copy_buffer
+#define GL_ARB_copy_buffer 1
+#define GL_COPY_READ_BUFFER_BINDING 0x8F36
+#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37
+#endif /* GL_ARB_copy_buffer */
+
+#ifndef GL_ARB_copy_image
+#define GL_ARB_copy_image 1
+#endif /* GL_ARB_copy_image */
+
+#ifndef GL_ARB_debug_output
+#define GL_ARB_debug_output 1
+typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
+#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242
+#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243
+#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244
+#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245
+#define GL_DEBUG_SOURCE_API_ARB 0x8246
+#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247
+#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248
+#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249
+#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A
+#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B
+#define GL_DEBUG_TYPE_ERROR_ARB 0x824C
+#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D
+#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E
+#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F
+#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250
+#define GL_DEBUG_TYPE_OTHER_ARB 0x8251
+#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143
+#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144
+#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145
+#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146
+#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147
+#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148
+typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
+typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
+typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, const void *userParam);
+typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDebugMessageControlARB (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
+GLAPI void APIENTRY glDebugMessageInsertARB (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
+GLAPI void APIENTRY glDebugMessageCallbackARB (GLDEBUGPROCARB callback, const void *userParam);
+GLAPI GLuint APIENTRY glGetDebugMessageLogARB (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
+#endif
+#endif /* GL_ARB_debug_output */
+
+#ifndef GL_ARB_depth_buffer_float
+#define GL_ARB_depth_buffer_float 1
+#endif /* GL_ARB_depth_buffer_float */
+
+#ifndef GL_ARB_depth_clamp
+#define GL_ARB_depth_clamp 1
+#endif /* GL_ARB_depth_clamp */
+
+#ifndef GL_ARB_depth_texture
+#define GL_ARB_depth_texture 1
+#define GL_DEPTH_COMPONENT16_ARB 0x81A5
+#define GL_DEPTH_COMPONENT24_ARB 0x81A6
+#define GL_DEPTH_COMPONENT32_ARB 0x81A7
+#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A
+#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B
+#endif /* GL_ARB_depth_texture */
+
+#ifndef GL_ARB_draw_buffers
+#define GL_ARB_draw_buffers 1
+#define GL_MAX_DRAW_BUFFERS_ARB 0x8824
+#define GL_DRAW_BUFFER0_ARB 0x8825
+#define GL_DRAW_BUFFER1_ARB 0x8826
+#define GL_DRAW_BUFFER2_ARB 0x8827
+#define GL_DRAW_BUFFER3_ARB 0x8828
+#define GL_DRAW_BUFFER4_ARB 0x8829
+#define GL_DRAW_BUFFER5_ARB 0x882A
+#define GL_DRAW_BUFFER6_ARB 0x882B
+#define GL_DRAW_BUFFER7_ARB 0x882C
+#define GL_DRAW_BUFFER8_ARB 0x882D
+#define GL_DRAW_BUFFER9_ARB 0x882E
+#define GL_DRAW_BUFFER10_ARB 0x882F
+#define GL_DRAW_BUFFER11_ARB 0x8830
+#define GL_DRAW_BUFFER12_ARB 0x8831
+#define GL_DRAW_BUFFER13_ARB 0x8832
+#define GL_DRAW_BUFFER14_ARB 0x8833
+#define GL_DRAW_BUFFER15_ARB 0x8834
+typedef void (APIENTRYP PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDrawBuffersARB (GLsizei n, const GLenum *bufs);
+#endif
+#endif /* GL_ARB_draw_buffers */
+
+#ifndef GL_ARB_draw_buffers_blend
+#define GL_ARB_draw_buffers_blend 1
+typedef void (APIENTRYP PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode);
+typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+typedef void (APIENTRYP PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst);
+typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBlendEquationiARB (GLuint buf, GLenum mode);
+GLAPI void APIENTRY glBlendEquationSeparateiARB (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+GLAPI void APIENTRY glBlendFunciARB (GLuint buf, GLenum src, GLenum dst);
+GLAPI void APIENTRY glBlendFuncSeparateiARB (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+#endif
+#endif /* GL_ARB_draw_buffers_blend */
+
+#ifndef GL_ARB_draw_elements_base_vertex
+#define GL_ARB_draw_elements_base_vertex 1
+#endif /* GL_ARB_draw_elements_base_vertex */
+
+#ifndef GL_ARB_draw_indirect
+#define GL_ARB_draw_indirect 1
+#endif /* GL_ARB_draw_indirect */
+
+#ifndef GL_ARB_draw_instanced
+#define GL_ARB_draw_instanced 1
+typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
+typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDrawArraysInstancedARB (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
+GLAPI void APIENTRY glDrawElementsInstancedARB (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
+#endif
+#endif /* GL_ARB_draw_instanced */
+
+#ifndef GL_ARB_enhanced_layouts
+#define GL_ARB_enhanced_layouts 1
+#endif /* GL_ARB_enhanced_layouts */
+
+#ifndef GL_ARB_explicit_attrib_location
+#define GL_ARB_explicit_attrib_location 1
+#endif /* GL_ARB_explicit_attrib_location */
+
+#ifndef GL_ARB_explicit_uniform_location
+#define GL_ARB_explicit_uniform_location 1
+#endif /* GL_ARB_explicit_uniform_location */
+
+#ifndef GL_ARB_fragment_coord_conventions
+#define GL_ARB_fragment_coord_conventions 1
+#endif /* GL_ARB_fragment_coord_conventions */
+
+#ifndef GL_ARB_fragment_layer_viewport
+#define GL_ARB_fragment_layer_viewport 1
+#endif /* GL_ARB_fragment_layer_viewport */
+
+#ifndef GL_ARB_fragment_program
+#define GL_ARB_fragment_program 1
+#define GL_FRAGMENT_PROGRAM_ARB 0x8804
+#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875
+#define GL_PROGRAM_LENGTH_ARB 0x8627
+#define GL_PROGRAM_FORMAT_ARB 0x8876
+#define GL_PROGRAM_BINDING_ARB 0x8677
+#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0
+#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1
+#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2
+#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3
+#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4
+#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5
+#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6
+#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7
+#define GL_PROGRAM_PARAMETERS_ARB 0x88A8
+#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9
+#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA
+#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB
+#define GL_PROGRAM_ATTRIBS_ARB 0x88AC
+#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD
+#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE
+#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF
+#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4
+#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5
+#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6
+#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805
+#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806
+#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807
+#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808
+#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809
+#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A
+#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B
+#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C
+#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D
+#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E
+#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F
+#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810
+#define GL_PROGRAM_STRING_ARB 0x8628
+#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B
+#define GL_CURRENT_MATRIX_ARB 0x8641
+#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7
+#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640
+#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F
+#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E
+#define GL_MAX_TEXTURE_COORDS_ARB 0x8871
+#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872
+#define GL_PROGRAM_ERROR_STRING_ARB 0x8874
+#define GL_MATRIX0_ARB 0x88C0
+#define GL_MATRIX1_ARB 0x88C1
+#define GL_MATRIX2_ARB 0x88C2
+#define GL_MATRIX3_ARB 0x88C3
+#define GL_MATRIX4_ARB 0x88C4
+#define GL_MATRIX5_ARB 0x88C5
+#define GL_MATRIX6_ARB 0x88C6
+#define GL_MATRIX7_ARB 0x88C7
+#define GL_MATRIX8_ARB 0x88C8
+#define GL_MATRIX9_ARB 0x88C9
+#define GL_MATRIX10_ARB 0x88CA
+#define GL_MATRIX11_ARB 0x88CB
+#define GL_MATRIX12_ARB 0x88CC
+#define GL_MATRIX13_ARB 0x88CD
+#define GL_MATRIX14_ARB 0x88CE
+#define GL_MATRIX15_ARB 0x88CF
+#define GL_MATRIX16_ARB 0x88D0
+#define GL_MATRIX17_ARB 0x88D1
+#define GL_MATRIX18_ARB 0x88D2
+#define GL_MATRIX19_ARB 0x88D3
+#define GL_MATRIX20_ARB 0x88D4
+#define GL_MATRIX21_ARB 0x88D5
+#define GL_MATRIX22_ARB 0x88D6
+#define GL_MATRIX23_ARB 0x88D7
+#define GL_MATRIX24_ARB 0x88D8
+#define GL_MATRIX25_ARB 0x88D9
+#define GL_MATRIX26_ARB 0x88DA
+#define GL_MATRIX27_ARB 0x88DB
+#define GL_MATRIX28_ARB 0x88DC
+#define GL_MATRIX29_ARB 0x88DD
+#define GL_MATRIX30_ARB 0x88DE
+#define GL_MATRIX31_ARB 0x88DF
+typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const void *string);
+typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program);
+typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs);
+typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs);
+typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
+typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
+typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
+typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
+typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
+typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
+typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, void *string);
+typedef GLboolean (APIENTRYP PFNGLISPROGRAMARBPROC) (GLuint program);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glProgramStringARB (GLenum target, GLenum format, GLsizei len, const void *string);
+GLAPI void APIENTRY glBindProgramARB (GLenum target, GLuint program);
+GLAPI void APIENTRY glDeleteProgramsARB (GLsizei n, const GLuint *programs);
+GLAPI void APIENTRY glGenProgramsARB (GLsizei n, GLuint *programs);
+GLAPI void APIENTRY glProgramEnvParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GLAPI void APIENTRY glProgramEnvParameter4dvARB (GLenum target, GLuint index, const GLdouble *params);
+GLAPI void APIENTRY glProgramEnvParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GLAPI void APIENTRY glProgramEnvParameter4fvARB (GLenum target, GLuint index, const GLfloat *params);
+GLAPI void APIENTRY glProgramLocalParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GLAPI void APIENTRY glProgramLocalParameter4dvARB (GLenum target, GLuint index, const GLdouble *params);
+GLAPI void APIENTRY glProgramLocalParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GLAPI void APIENTRY glProgramLocalParameter4fvARB (GLenum target, GLuint index, const GLfloat *params);
+GLAPI void APIENTRY glGetProgramEnvParameterdvARB (GLenum target, GLuint index, GLdouble *params);
+GLAPI void APIENTRY glGetProgramEnvParameterfvARB (GLenum target, GLuint index, GLfloat *params);
+GLAPI void APIENTRY glGetProgramLocalParameterdvARB (GLenum target, GLuint index, GLdouble *params);
+GLAPI void APIENTRY glGetProgramLocalParameterfvARB (GLenum target, GLuint index, GLfloat *params);
+GLAPI void APIENTRY glGetProgramivARB (GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetProgramStringARB (GLenum target, GLenum pname, void *string);
+GLAPI GLboolean APIENTRY glIsProgramARB (GLuint program);
+#endif
+#endif /* GL_ARB_fragment_program */
+
+#ifndef GL_ARB_fragment_program_shadow
+#define GL_ARB_fragment_program_shadow 1
+#endif /* GL_ARB_fragment_program_shadow */
+
+#ifndef GL_ARB_fragment_shader
+#define GL_ARB_fragment_shader 1
+#define GL_FRAGMENT_SHADER_ARB 0x8B30
+#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49
+#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B
+#endif /* GL_ARB_fragment_shader */
+
+#ifndef GL_ARB_framebuffer_no_attachments
+#define GL_ARB_framebuffer_no_attachments 1
+#endif /* GL_ARB_framebuffer_no_attachments */
+
+#ifndef GL_ARB_framebuffer_object
+#define GL_ARB_framebuffer_object 1
+#endif /* GL_ARB_framebuffer_object */
+
+#ifndef GL_ARB_framebuffer_sRGB
+#define GL_ARB_framebuffer_sRGB 1
+#endif /* GL_ARB_framebuffer_sRGB */
+
+#ifndef GL_ARB_geometry_shader4
+#define GL_ARB_geometry_shader4 1
+#define GL_LINES_ADJACENCY_ARB 0x000A
+#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B
+#define GL_TRIANGLES_ADJACENCY_ARB 0x000C
+#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000D
+#define GL_PROGRAM_POINT_SIZE_ARB 0x8642
+#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29
+#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9
+#define GL_GEOMETRY_SHADER_ARB 0x8DD9
+#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA
+#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB
+#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC
+#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD
+#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE
+#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF
+#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0
+#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1
+typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glProgramParameteriARB (GLuint program, GLenum pname, GLint value);
+GLAPI void APIENTRY glFramebufferTextureARB (GLenum target, GLenum attachment, GLuint texture, GLint level);
+GLAPI void APIENTRY glFramebufferTextureLayerARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+GLAPI void APIENTRY glFramebufferTextureFaceARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
+#endif
+#endif /* GL_ARB_geometry_shader4 */
+
+#ifndef GL_ARB_get_program_binary
+#define GL_ARB_get_program_binary 1
+#endif /* GL_ARB_get_program_binary */
+
+#ifndef GL_ARB_gpu_shader5
+#define GL_ARB_gpu_shader5 1
+#endif /* GL_ARB_gpu_shader5 */
+
+#ifndef GL_ARB_gpu_shader_fp64
+#define GL_ARB_gpu_shader_fp64 1
+#endif /* GL_ARB_gpu_shader_fp64 */
+
+#ifndef GL_ARB_half_float_pixel
+#define GL_ARB_half_float_pixel 1
+typedef unsigned short GLhalfARB;
+#define GL_HALF_FLOAT_ARB 0x140B
+#endif /* GL_ARB_half_float_pixel */
+
+#ifndef GL_ARB_half_float_vertex
+#define GL_ARB_half_float_vertex 1
+#endif /* GL_ARB_half_float_vertex */
+
+#ifndef GL_ARB_imaging
+#define GL_ARB_imaging 1
+#define GL_BLEND_COLOR 0x8005
+#define GL_BLEND_EQUATION 0x8009
+#define GL_CONVOLUTION_1D 0x8010
+#define GL_CONVOLUTION_2D 0x8011
+#define GL_SEPARABLE_2D 0x8012
+#define GL_CONVOLUTION_BORDER_MODE 0x8013
+#define GL_CONVOLUTION_FILTER_SCALE 0x8014
+#define GL_CONVOLUTION_FILTER_BIAS 0x8015
+#define GL_REDUCE 0x8016
+#define GL_CONVOLUTION_FORMAT 0x8017
+#define GL_CONVOLUTION_WIDTH 0x8018
+#define GL_CONVOLUTION_HEIGHT 0x8019
+#define GL_MAX_CONVOLUTION_WIDTH 0x801A
+#define GL_MAX_CONVOLUTION_HEIGHT 0x801B
+#define GL_POST_CONVOLUTION_RED_SCALE 0x801C
+#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D
+#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E
+#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F
+#define GL_POST_CONVOLUTION_RED_BIAS 0x8020
+#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021
+#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022
+#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023
+#define GL_HISTOGRAM 0x8024
+#define GL_PROXY_HISTOGRAM 0x8025
+#define GL_HISTOGRAM_WIDTH 0x8026
+#define GL_HISTOGRAM_FORMAT 0x8027
+#define GL_HISTOGRAM_RED_SIZE 0x8028
+#define GL_HISTOGRAM_GREEN_SIZE 0x8029
+#define GL_HISTOGRAM_BLUE_SIZE 0x802A
+#define GL_HISTOGRAM_ALPHA_SIZE 0x802B
+#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C
+#define GL_HISTOGRAM_SINK 0x802D
+#define GL_MINMAX 0x802E
+#define GL_MINMAX_FORMAT 0x802F
+#define GL_MINMAX_SINK 0x8030
+#define GL_TABLE_TOO_LARGE 0x8031
+#define GL_COLOR_MATRIX 0x80B1
+#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2
+#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3
+#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4
+#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5
+#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6
+#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7
+#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8
+#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9
+#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA
+#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB
+#define GL_COLOR_TABLE 0x80D0
+#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1
+#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2
+#define GL_PROXY_COLOR_TABLE 0x80D3
+#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4
+#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5
+#define GL_COLOR_TABLE_SCALE 0x80D6
+#define GL_COLOR_TABLE_BIAS 0x80D7
+#define GL_COLOR_TABLE_FORMAT 0x80D8
+#define GL_COLOR_TABLE_WIDTH 0x80D9
+#define GL_COLOR_TABLE_RED_SIZE 0x80DA
+#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB
+#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC
+#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD
+#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE
+#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF
+#define GL_CONSTANT_BORDER 0x8151
+#define GL_REPLICATE_BORDER 0x8153
+#define GL_CONVOLUTION_BORDER_COLOR 0x8154
+typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table);
+typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, void *table);
+typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data);
+typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image);
+typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image);
+typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params);
+typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params);
+typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, void *image);
+typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span);
+typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column);
+typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values);
+typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values);
+typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
+typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink);
+typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target);
+typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glColorTable (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table);
+GLAPI void APIENTRY glColorTableParameterfv (GLenum target, GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glColorTableParameteriv (GLenum target, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glCopyColorTable (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+GLAPI void APIENTRY glGetColorTable (GLenum target, GLenum format, GLenum type, void *table);
+GLAPI void APIENTRY glGetColorTableParameterfv (GLenum target, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetColorTableParameteriv (GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glColorSubTable (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data);
+GLAPI void APIENTRY glCopyColorSubTable (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+GLAPI void APIENTRY glConvolutionFilter1D (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image);
+GLAPI void APIENTRY glConvolutionFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image);
+GLAPI void APIENTRY glConvolutionParameterf (GLenum target, GLenum pname, GLfloat params);
+GLAPI void APIENTRY glConvolutionParameterfv (GLenum target, GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glConvolutionParameteri (GLenum target, GLenum pname, GLint params);
+GLAPI void APIENTRY glConvolutionParameteriv (GLenum target, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glCopyConvolutionFilter1D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+GLAPI void APIENTRY glCopyConvolutionFilter2D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
+GLAPI void APIENTRY glGetConvolutionFilter (GLenum target, GLenum format, GLenum type, void *image);
+GLAPI void APIENTRY glGetConvolutionParameterfv (GLenum target, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetConvolutionParameteriv (GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetSeparableFilter (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span);
+GLAPI void APIENTRY glSeparableFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column);
+GLAPI void APIENTRY glGetHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values);
+GLAPI void APIENTRY glGetHistogramParameterfv (GLenum target, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetHistogramParameteriv (GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetMinmax (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values);
+GLAPI void APIENTRY glGetMinmaxParameterfv (GLenum target, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetMinmaxParameteriv (GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glHistogram (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
+GLAPI void APIENTRY glMinmax (GLenum target, GLenum internalformat, GLboolean sink);
+GLAPI void APIENTRY glResetHistogram (GLenum target);
+GLAPI void APIENTRY glResetMinmax (GLenum target);
+#endif
+#endif /* GL_ARB_imaging */
+
+#ifndef GL_ARB_indirect_parameters
+#define GL_ARB_indirect_parameters 1
+#define GL_PARAMETER_BUFFER_ARB 0x80EE
+#define GL_PARAMETER_BUFFER_BINDING_ARB 0x80EF
+typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC) (GLenum mode, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
+typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC) (GLenum mode, GLenum type, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glMultiDrawArraysIndirectCountARB (GLenum mode, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
+GLAPI void APIENTRY glMultiDrawElementsIndirectCountARB (GLenum mode, GLenum type, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
+#endif
+#endif /* GL_ARB_indirect_parameters */
+
+#ifndef GL_ARB_instanced_arrays
+#define GL_ARB_instanced_arrays 1
+#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE
+typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVertexAttribDivisorARB (GLuint index, GLuint divisor);
+#endif
+#endif /* GL_ARB_instanced_arrays */
+
+#ifndef GL_ARB_internalformat_query
+#define GL_ARB_internalformat_query 1
+#endif /* GL_ARB_internalformat_query */
+
+#ifndef GL_ARB_internalformat_query2
+#define GL_ARB_internalformat_query2 1
+#define GL_SRGB_DECODE_ARB 0x8299
+#endif /* GL_ARB_internalformat_query2 */
+
+#ifndef GL_ARB_invalidate_subdata
+#define GL_ARB_invalidate_subdata 1
+#endif /* GL_ARB_invalidate_subdata */
+
+#ifndef GL_ARB_map_buffer_alignment
+#define GL_ARB_map_buffer_alignment 1
+#endif /* GL_ARB_map_buffer_alignment */
+
+#ifndef GL_ARB_map_buffer_range
+#define GL_ARB_map_buffer_range 1
+#endif /* GL_ARB_map_buffer_range */
+
+#ifndef GL_ARB_matrix_palette
+#define GL_ARB_matrix_palette 1
+#define GL_MATRIX_PALETTE_ARB 0x8840
+#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841
+#define GL_MAX_PALETTE_MATRICES_ARB 0x8842
+#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843
+#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844
+#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845
+#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846
+#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847
+#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848
+#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849
+typedef void (APIENTRYP PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index);
+typedef void (APIENTRYP PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices);
+typedef void (APIENTRYP PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices);
+typedef void (APIENTRYP PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices);
+typedef void (APIENTRYP PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glCurrentPaletteMatrixARB (GLint index);
+GLAPI void APIENTRY glMatrixIndexubvARB (GLint size, const GLubyte *indices);
+GLAPI void APIENTRY glMatrixIndexusvARB (GLint size, const GLushort *indices);
+GLAPI void APIENTRY glMatrixIndexuivARB (GLint size, const GLuint *indices);
+GLAPI void APIENTRY glMatrixIndexPointerARB (GLint size, GLenum type, GLsizei stride, const void *pointer);
+#endif
+#endif /* GL_ARB_matrix_palette */
+
+#ifndef GL_ARB_multi_bind
+#define GL_ARB_multi_bind 1
+#endif /* GL_ARB_multi_bind */
+
+#ifndef GL_ARB_multi_draw_indirect
+#define GL_ARB_multi_draw_indirect 1
+#endif /* GL_ARB_multi_draw_indirect */
+
+#ifndef GL_ARB_multisample
+#define GL_ARB_multisample 1
+#define GL_MULTISAMPLE_ARB 0x809D
+#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F
+#define GL_SAMPLE_COVERAGE_ARB 0x80A0
+#define GL_SAMPLE_BUFFERS_ARB 0x80A8
+#define GL_SAMPLES_ARB 0x80A9
+#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA
+#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB
+#define GL_MULTISAMPLE_BIT_ARB 0x20000000
+typedef void (APIENTRYP PFNGLSAMPLECOVERAGEARBPROC) (GLfloat value, GLboolean invert);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glSampleCoverageARB (GLfloat value, GLboolean invert);
+#endif
+#endif /* GL_ARB_multisample */
+
+#ifndef GL_ARB_multitexture
+#define GL_ARB_multitexture 1
+#define GL_TEXTURE0_ARB 0x84C0
+#define GL_TEXTURE1_ARB 0x84C1
+#define GL_TEXTURE2_ARB 0x84C2
+#define GL_TEXTURE3_ARB 0x84C3
+#define GL_TEXTURE4_ARB 0x84C4
+#define GL_TEXTURE5_ARB 0x84C5
+#define GL_TEXTURE6_ARB 0x84C6
+#define GL_TEXTURE7_ARB 0x84C7
+#define GL_TEXTURE8_ARB 0x84C8
+#define GL_TEXTURE9_ARB 0x84C9
+#define GL_TEXTURE10_ARB 0x84CA
+#define GL_TEXTURE11_ARB 0x84CB
+#define GL_TEXTURE12_ARB 0x84CC
+#define GL_TEXTURE13_ARB 0x84CD
+#define GL_TEXTURE14_ARB 0x84CE
+#define GL_TEXTURE15_ARB 0x84CF
+#define GL_TEXTURE16_ARB 0x84D0
+#define GL_TEXTURE17_ARB 0x84D1
+#define GL_TEXTURE18_ARB 0x84D2
+#define GL_TEXTURE19_ARB 0x84D3
+#define GL_TEXTURE20_ARB 0x84D4
+#define GL_TEXTURE21_ARB 0x84D5
+#define GL_TEXTURE22_ARB 0x84D6
+#define GL_TEXTURE23_ARB 0x84D7
+#define GL_TEXTURE24_ARB 0x84D8
+#define GL_TEXTURE25_ARB 0x84D9
+#define GL_TEXTURE26_ARB 0x84DA
+#define GL_TEXTURE27_ARB 0x84DB
+#define GL_TEXTURE28_ARB 0x84DC
+#define GL_TEXTURE29_ARB 0x84DD
+#define GL_TEXTURE30_ARB 0x84DE
+#define GL_TEXTURE31_ARB 0x84DF
+#define GL_ACTIVE_TEXTURE_ARB 0x84E0
+#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1
+#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2
+typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
+typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glActiveTextureARB (GLenum texture);
+GLAPI void APIENTRY glClientActiveTextureARB (GLenum texture);
+GLAPI void APIENTRY glMultiTexCoord1dARB (GLenum target, GLdouble s);
+GLAPI void APIENTRY glMultiTexCoord1dvARB (GLenum target, const GLdouble *v);
+GLAPI void APIENTRY glMultiTexCoord1fARB (GLenum target, GLfloat s);
+GLAPI void APIENTRY glMultiTexCoord1fvARB (GLenum target, const GLfloat *v);
+GLAPI void APIENTRY glMultiTexCoord1iARB (GLenum target, GLint s);
+GLAPI void APIENTRY glMultiTexCoord1ivARB (GLenum target, const GLint *v);
+GLAPI void APIENTRY glMultiTexCoord1sARB (GLenum target, GLshort s);
+GLAPI void APIENTRY glMultiTexCoord1svARB (GLenum target, const GLshort *v);
+GLAPI void APIENTRY glMultiTexCoord2dARB (GLenum target, GLdouble s, GLdouble t);
+GLAPI void APIENTRY glMultiTexCoord2dvARB (GLenum target, const GLdouble *v);
+GLAPI void APIENTRY glMultiTexCoord2fARB (GLenum target, GLfloat s, GLfloat t);
+GLAPI void APIENTRY glMultiTexCoord2fvARB (GLenum target, const GLfloat *v);
+GLAPI void APIENTRY glMultiTexCoord2iARB (GLenum target, GLint s, GLint t);
+GLAPI void APIENTRY glMultiTexCoord2ivARB (GLenum target, const GLint *v);
+GLAPI void APIENTRY glMultiTexCoord2sARB (GLenum target, GLshort s, GLshort t);
+GLAPI void APIENTRY glMultiTexCoord2svARB (GLenum target, const GLshort *v);
+GLAPI void APIENTRY glMultiTexCoord3dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r);
+GLAPI void APIENTRY glMultiTexCoord3dvARB (GLenum target, const GLdouble *v);
+GLAPI void APIENTRY glMultiTexCoord3fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r);
+GLAPI void APIENTRY glMultiTexCoord3fvARB (GLenum target, const GLfloat *v);
+GLAPI void APIENTRY glMultiTexCoord3iARB (GLenum target, GLint s, GLint t, GLint r);
+GLAPI void APIENTRY glMultiTexCoord3ivARB (GLenum target, const GLint *v);
+GLAPI void APIENTRY glMultiTexCoord3sARB (GLenum target, GLshort s, GLshort t, GLshort r);
+GLAPI void APIENTRY glMultiTexCoord3svARB (GLenum target, const GLshort *v);
+GLAPI void APIENTRY glMultiTexCoord4dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+GLAPI void APIENTRY glMultiTexCoord4dvARB (GLenum target, const GLdouble *v);
+GLAPI void APIENTRY glMultiTexCoord4fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+GLAPI void APIENTRY glMultiTexCoord4fvARB (GLenum target, const GLfloat *v);
+GLAPI void APIENTRY glMultiTexCoord4iARB (GLenum target, GLint s, GLint t, GLint r, GLint q);
+GLAPI void APIENTRY glMultiTexCoord4ivARB (GLenum target, const GLint *v);
+GLAPI void APIENTRY glMultiTexCoord4sARB (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+GLAPI void APIENTRY glMultiTexCoord4svARB (GLenum target, const GLshort *v);
+#endif
+#endif /* GL_ARB_multitexture */
+
+#ifndef GL_ARB_occlusion_query
+#define GL_ARB_occlusion_query 1
+#define GL_QUERY_COUNTER_BITS_ARB 0x8864
+#define GL_CURRENT_QUERY_ARB 0x8865
+#define GL_QUERY_RESULT_ARB 0x8866
+#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867
+#define GL_SAMPLES_PASSED_ARB 0x8914
+typedef void (APIENTRYP PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint *ids);
+typedef void (APIENTRYP PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint *ids);
+typedef GLboolean (APIENTRYP PFNGLISQUERYARBPROC) (GLuint id);
+typedef void (APIENTRYP PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id);
+typedef void (APIENTRYP PFNGLENDQUERYARBPROC) (GLenum target);
+typedef void (APIENTRYP PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glGenQueriesARB (GLsizei n, GLuint *ids);
+GLAPI void APIENTRY glDeleteQueriesARB (GLsizei n, const GLuint *ids);
+GLAPI GLboolean APIENTRY glIsQueryARB (GLuint id);
+GLAPI void APIENTRY glBeginQueryARB (GLenum target, GLuint id);
+GLAPI void APIENTRY glEndQueryARB (GLenum target);
+GLAPI void APIENTRY glGetQueryivARB (GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetQueryObjectivARB (GLuint id, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetQueryObjectuivARB (GLuint id, GLenum pname, GLuint *params);
+#endif
+#endif /* GL_ARB_occlusion_query */
+
+#ifndef GL_ARB_occlusion_query2
+#define GL_ARB_occlusion_query2 1
+#endif /* GL_ARB_occlusion_query2 */
+
+#ifndef GL_ARB_pixel_buffer_object
+#define GL_ARB_pixel_buffer_object 1
+#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB
+#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC
+#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED
+#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF
+#endif /* GL_ARB_pixel_buffer_object */
+
+#ifndef GL_ARB_point_parameters
+#define GL_ARB_point_parameters 1
+#define GL_POINT_SIZE_MIN_ARB 0x8126
+#define GL_POINT_SIZE_MAX_ARB 0x8127
+#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128
+#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129
+typedef void (APIENTRYP PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPointParameterfARB (GLenum pname, GLfloat param);
+GLAPI void APIENTRY glPointParameterfvARB (GLenum pname, const GLfloat *params);
+#endif
+#endif /* GL_ARB_point_parameters */
+
+#ifndef GL_ARB_point_sprite
+#define GL_ARB_point_sprite 1
+#define GL_POINT_SPRITE_ARB 0x8861
+#define GL_COORD_REPLACE_ARB 0x8862
+#endif /* GL_ARB_point_sprite */
+
+#ifndef GL_ARB_program_interface_query
+#define GL_ARB_program_interface_query 1
+#endif /* GL_ARB_program_interface_query */
+
+#ifndef GL_ARB_provoking_vertex
+#define GL_ARB_provoking_vertex 1
+#endif /* GL_ARB_provoking_vertex */
+
+#ifndef GL_ARB_query_buffer_object
+#define GL_ARB_query_buffer_object 1
+#endif /* GL_ARB_query_buffer_object */
+
+#ifndef GL_ARB_robust_buffer_access_behavior
+#define GL_ARB_robust_buffer_access_behavior 1
+#endif /* GL_ARB_robust_buffer_access_behavior */
+
+#ifndef GL_ARB_robustness
+#define GL_ARB_robustness 1
+#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004
+#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
+#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253
+#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254
+#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255
+#define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
+#define GL_NO_RESET_NOTIFICATION_ARB 0x8261
+typedef GLenum (APIENTRYP PFNGLGETGRAPHICSRESETSTATUSARBPROC) (void);
+typedef void (APIENTRYP PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *img);
+typedef void (APIENTRYP PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
+typedef void (APIENTRYP PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, void *img);
+typedef void (APIENTRYP PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params);
+typedef void (APIENTRYP PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params);
+typedef void (APIENTRYP PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
+typedef void (APIENTRYP PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v);
+typedef void (APIENTRYP PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v);
+typedef void (APIENTRYP PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint *v);
+typedef void (APIENTRYP PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat *values);
+typedef void (APIENTRYP PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint *values);
+typedef void (APIENTRYP PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort *values);
+typedef void (APIENTRYP PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte *pattern);
+typedef void (APIENTRYP PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table);
+typedef void (APIENTRYP PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image);
+typedef void (APIENTRYP PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span);
+typedef void (APIENTRYP PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values);
+typedef void (APIENTRYP PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLenum APIENTRY glGetGraphicsResetStatusARB (void);
+GLAPI void APIENTRY glGetnTexImageARB (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *img);
+GLAPI void APIENTRY glReadnPixelsARB (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
+GLAPI void APIENTRY glGetnCompressedTexImageARB (GLenum target, GLint lod, GLsizei bufSize, void *img);
+GLAPI void APIENTRY glGetnUniformfvARB (GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
+GLAPI void APIENTRY glGetnUniformivARB (GLuint program, GLint location, GLsizei bufSize, GLint *params);
+GLAPI void APIENTRY glGetnUniformuivARB (GLuint program, GLint location, GLsizei bufSize, GLuint *params);
+GLAPI void APIENTRY glGetnUniformdvARB (GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
+GLAPI void APIENTRY glGetnMapdvARB (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v);
+GLAPI void APIENTRY glGetnMapfvARB (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v);
+GLAPI void APIENTRY glGetnMapivARB (GLenum target, GLenum query, GLsizei bufSize, GLint *v);
+GLAPI void APIENTRY glGetnPixelMapfvARB (GLenum map, GLsizei bufSize, GLfloat *values);
+GLAPI void APIENTRY glGetnPixelMapuivARB (GLenum map, GLsizei bufSize, GLuint *values);
+GLAPI void APIENTRY glGetnPixelMapusvARB (GLenum map, GLsizei bufSize, GLushort *values);
+GLAPI void APIENTRY glGetnPolygonStippleARB (GLsizei bufSize, GLubyte *pattern);
+GLAPI void APIENTRY glGetnColorTableARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table);
+GLAPI void APIENTRY glGetnConvolutionFilterARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image);
+GLAPI void APIENTRY glGetnSeparableFilterARB (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span);
+GLAPI void APIENTRY glGetnHistogramARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values);
+GLAPI void APIENTRY glGetnMinmaxARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values);
+#endif
+#endif /* GL_ARB_robustness */
+
+#ifndef GL_ARB_robustness_isolation
+#define GL_ARB_robustness_isolation 1
+#endif /* GL_ARB_robustness_isolation */
+
+#ifndef GL_ARB_sample_shading
+#define GL_ARB_sample_shading 1
+#define GL_SAMPLE_SHADING_ARB 0x8C36
+#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37
+typedef void (APIENTRYP PFNGLMINSAMPLESHADINGARBPROC) (GLfloat value);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glMinSampleShadingARB (GLfloat value);
+#endif
+#endif /* GL_ARB_sample_shading */
+
+#ifndef GL_ARB_sampler_objects
+#define GL_ARB_sampler_objects 1
+#endif /* GL_ARB_sampler_objects */
+
+#ifndef GL_ARB_seamless_cube_map
+#define GL_ARB_seamless_cube_map 1
+#endif /* GL_ARB_seamless_cube_map */
+
+#ifndef GL_ARB_seamless_cubemap_per_texture
+#define GL_ARB_seamless_cubemap_per_texture 1
+#endif /* GL_ARB_seamless_cubemap_per_texture */
+
+#ifndef GL_ARB_separate_shader_objects
+#define GL_ARB_separate_shader_objects 1
+#endif /* GL_ARB_separate_shader_objects */
+
+#ifndef GL_ARB_shader_atomic_counters
+#define GL_ARB_shader_atomic_counters 1
+#endif /* GL_ARB_shader_atomic_counters */
+
+#ifndef GL_ARB_shader_bit_encoding
+#define GL_ARB_shader_bit_encoding 1
+#endif /* GL_ARB_shader_bit_encoding */
+
+#ifndef GL_ARB_shader_draw_parameters
+#define GL_ARB_shader_draw_parameters 1
+#endif /* GL_ARB_shader_draw_parameters */
+
+#ifndef GL_ARB_shader_group_vote
+#define GL_ARB_shader_group_vote 1
+#endif /* GL_ARB_shader_group_vote */
+
+#ifndef GL_ARB_shader_image_load_store
+#define GL_ARB_shader_image_load_store 1
+#endif /* GL_ARB_shader_image_load_store */
+
+#ifndef GL_ARB_shader_image_size
+#define GL_ARB_shader_image_size 1
+#endif /* GL_ARB_shader_image_size */
+
+#ifndef GL_ARB_shader_objects
+#define GL_ARB_shader_objects 1
+#ifdef __APPLE__
+typedef void *GLhandleARB;
+#else
+typedef unsigned int GLhandleARB;
+#endif
+typedef char GLcharARB;
+#define GL_PROGRAM_OBJECT_ARB 0x8B40
+#define GL_SHADER_OBJECT_ARB 0x8B48
+#define GL_OBJECT_TYPE_ARB 0x8B4E
+#define GL_OBJECT_SUBTYPE_ARB 0x8B4F
+#define GL_FLOAT_VEC2_ARB 0x8B50
+#define GL_FLOAT_VEC3_ARB 0x8B51
+#define GL_FLOAT_VEC4_ARB 0x8B52
+#define GL_INT_VEC2_ARB 0x8B53
+#define GL_INT_VEC3_ARB 0x8B54
+#define GL_INT_VEC4_ARB 0x8B55
+#define GL_BOOL_ARB 0x8B56
+#define GL_BOOL_VEC2_ARB 0x8B57
+#define GL_BOOL_VEC3_ARB 0x8B58
+#define GL_BOOL_VEC4_ARB 0x8B59
+#define GL_FLOAT_MAT2_ARB 0x8B5A
+#define GL_FLOAT_MAT3_ARB 0x8B5B
+#define GL_FLOAT_MAT4_ARB 0x8B5C
+#define GL_SAMPLER_1D_ARB 0x8B5D
+#define GL_SAMPLER_2D_ARB 0x8B5E
+#define GL_SAMPLER_3D_ARB 0x8B5F
+#define GL_SAMPLER_CUBE_ARB 0x8B60
+#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61
+#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62
+#define GL_SAMPLER_2D_RECT_ARB 0x8B63
+#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64
+#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80
+#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81
+#define GL_OBJECT_LINK_STATUS_ARB 0x8B82
+#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83
+#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84
+#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85
+#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86
+#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87
+#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88
+typedef void (APIENTRYP PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj);
+typedef GLhandleARB (APIENTRYP PFNGLGETHANDLEARBPROC) (GLenum pname);
+typedef void (APIENTRYP PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj);
+typedef GLhandleARB (APIENTRYP PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType);
+typedef void (APIENTRYP PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length);
+typedef void (APIENTRYP PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj);
+typedef GLhandleARB (APIENTRYP PFNGLCREATEPROGRAMOBJECTARBPROC) (void);
+typedef void (APIENTRYP PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj);
+typedef void (APIENTRYP PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj);
+typedef void (APIENTRYP PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj);
+typedef void (APIENTRYP PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj);
+typedef void (APIENTRYP PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0);
+typedef void (APIENTRYP PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1);
+typedef void (APIENTRYP PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void (APIENTRYP PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void (APIENTRYP PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0);
+typedef void (APIENTRYP PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1);
+typedef void (APIENTRYP PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2);
+typedef void (APIENTRYP PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+typedef void (APIENTRYP PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog);
+typedef void (APIENTRYP PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj);
+typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name);
+typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
+typedef void (APIENTRYP PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params);
+typedef void (APIENTRYP PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDeleteObjectARB (GLhandleARB obj);
+GLAPI GLhandleARB APIENTRY glGetHandleARB (GLenum pname);
+GLAPI void APIENTRY glDetachObjectARB (GLhandleARB containerObj, GLhandleARB attachedObj);
+GLAPI GLhandleARB APIENTRY glCreateShaderObjectARB (GLenum shaderType);
+GLAPI void APIENTRY glShaderSourceARB (GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length);
+GLAPI void APIENTRY glCompileShaderARB (GLhandleARB shaderObj);
+GLAPI GLhandleARB APIENTRY glCreateProgramObjectARB (void);
+GLAPI void APIENTRY glAttachObjectARB (GLhandleARB containerObj, GLhandleARB obj);
+GLAPI void APIENTRY glLinkProgramARB (GLhandleARB programObj);
+GLAPI void APIENTRY glUseProgramObjectARB (GLhandleARB programObj);
+GLAPI void APIENTRY glValidateProgramARB (GLhandleARB programObj);
+GLAPI void APIENTRY glUniform1fARB (GLint location, GLfloat v0);
+GLAPI void APIENTRY glUniform2fARB (GLint location, GLfloat v0, GLfloat v1);
+GLAPI void APIENTRY glUniform3fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+GLAPI void APIENTRY glUniform4fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+GLAPI void APIENTRY glUniform1iARB (GLint location, GLint v0);
+GLAPI void APIENTRY glUniform2iARB (GLint location, GLint v0, GLint v1);
+GLAPI void APIENTRY glUniform3iARB (GLint location, GLint v0, GLint v1, GLint v2);
+GLAPI void APIENTRY glUniform4iARB (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+GLAPI void APIENTRY glUniform1fvARB (GLint location, GLsizei count, const GLfloat *value);
+GLAPI void APIENTRY glUniform2fvARB (GLint location, GLsizei count, const GLfloat *value);
+GLAPI void APIENTRY glUniform3fvARB (GLint location, GLsizei count, const GLfloat *value);
+GLAPI void APIENTRY glUniform4fvARB (GLint location, GLsizei count, const GLfloat *value);
+GLAPI void APIENTRY glUniform1ivARB (GLint location, GLsizei count, const GLint *value);
+GLAPI void APIENTRY glUniform2ivARB (GLint location, GLsizei count, const GLint *value);
+GLAPI void APIENTRY glUniform3ivARB (GLint location, GLsizei count, const GLint *value);
+GLAPI void APIENTRY glUniform4ivARB (GLint location, GLsizei count, const GLint *value);
+GLAPI void APIENTRY glUniformMatrix2fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glUniformMatrix3fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glUniformMatrix4fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glGetObjectParameterfvARB (GLhandleARB obj, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetObjectParameterivARB (GLhandleARB obj, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetInfoLogARB (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog);
+GLAPI void APIENTRY glGetAttachedObjectsARB (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj);
+GLAPI GLint APIENTRY glGetUniformLocationARB (GLhandleARB programObj, const GLcharARB *name);
+GLAPI void APIENTRY glGetActiveUniformARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
+GLAPI void APIENTRY glGetUniformfvARB (GLhandleARB programObj, GLint location, GLfloat *params);
+GLAPI void APIENTRY glGetUniformivARB (GLhandleARB programObj, GLint location, GLint *params);
+GLAPI void APIENTRY glGetShaderSourceARB (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source);
+#endif
+#endif /* GL_ARB_shader_objects */
+
+#ifndef GL_ARB_shader_precision
+#define GL_ARB_shader_precision 1
+#endif /* GL_ARB_shader_precision */
+
+#ifndef GL_ARB_shader_stencil_export
+#define GL_ARB_shader_stencil_export 1
+#endif /* GL_ARB_shader_stencil_export */
+
+#ifndef GL_ARB_shader_storage_buffer_object
+#define GL_ARB_shader_storage_buffer_object 1
+#endif /* GL_ARB_shader_storage_buffer_object */
+
+#ifndef GL_ARB_shader_subroutine
+#define GL_ARB_shader_subroutine 1
+#endif /* GL_ARB_shader_subroutine */
+
+#ifndef GL_ARB_shader_texture_lod
+#define GL_ARB_shader_texture_lod 1
+#endif /* GL_ARB_shader_texture_lod */
+
+#ifndef GL_ARB_shading_language_100
+#define GL_ARB_shading_language_100 1
+#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C
+#endif /* GL_ARB_shading_language_100 */
+
+#ifndef GL_ARB_shading_language_420pack
+#define GL_ARB_shading_language_420pack 1
+#endif /* GL_ARB_shading_language_420pack */
+
+#ifndef GL_ARB_shading_language_include
+#define GL_ARB_shading_language_include 1
+#define GL_SHADER_INCLUDE_ARB 0x8DAE
+#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9
+#define GL_NAMED_STRING_TYPE_ARB 0x8DEA
+typedef void (APIENTRYP PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string);
+typedef void (APIENTRYP PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name);
+typedef void (APIENTRYP PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar *const*path, const GLint *length);
+typedef GLboolean (APIENTRYP PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name);
+typedef void (APIENTRYP PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string);
+typedef void (APIENTRYP PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const GLchar *name, GLenum pname, GLint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glNamedStringARB (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string);
+GLAPI void APIENTRY glDeleteNamedStringARB (GLint namelen, const GLchar *name);
+GLAPI void APIENTRY glCompileShaderIncludeARB (GLuint shader, GLsizei count, const GLchar *const*path, const GLint *length);
+GLAPI GLboolean APIENTRY glIsNamedStringARB (GLint namelen, const GLchar *name);
+GLAPI void APIENTRY glGetNamedStringARB (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string);
+GLAPI void APIENTRY glGetNamedStringivARB (GLint namelen, const GLchar *name, GLenum pname, GLint *params);
+#endif
+#endif /* GL_ARB_shading_language_include */
+
+#ifndef GL_ARB_shading_language_packing
+#define GL_ARB_shading_language_packing 1
+#endif /* GL_ARB_shading_language_packing */
+
+#ifndef GL_ARB_shadow
+#define GL_ARB_shadow 1
+#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C
+#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D
+#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E
+#endif /* GL_ARB_shadow */
+
+#ifndef GL_ARB_shadow_ambient
+#define GL_ARB_shadow_ambient 1
+#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF
+#endif /* GL_ARB_shadow_ambient */
+
+#ifndef GL_ARB_sparse_texture
+#define GL_ARB_sparse_texture 1
+#define GL_TEXTURE_SPARSE_ARB 0x91A6
+#define GL_VIRTUAL_PAGE_SIZE_INDEX_ARB 0x91A7
+#define GL_MIN_SPARSE_LEVEL_ARB 0x919B
+#define GL_NUM_VIRTUAL_PAGE_SIZES_ARB 0x91A8
+#define GL_VIRTUAL_PAGE_SIZE_X_ARB 0x9195
+#define GL_VIRTUAL_PAGE_SIZE_Y_ARB 0x9196
+#define GL_VIRTUAL_PAGE_SIZE_Z_ARB 0x9197
+#define GL_MAX_SPARSE_TEXTURE_SIZE_ARB 0x9198
+#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB 0x9199
+#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB 0x919A
+#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91A9
+typedef void (APIENTRYP PFNGLTEXPAGECOMMITMENTARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean resident);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTexPageCommitmentARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean resident);
+#endif
+#endif /* GL_ARB_sparse_texture */
+
+#ifndef GL_ARB_stencil_texturing
+#define GL_ARB_stencil_texturing 1
+#endif /* GL_ARB_stencil_texturing */
+
+#ifndef GL_ARB_sync
+#define GL_ARB_sync 1
+#endif /* GL_ARB_sync */
+
+#ifndef GL_ARB_tessellation_shader
+#define GL_ARB_tessellation_shader 1
+#endif /* GL_ARB_tessellation_shader */
+
+#ifndef GL_ARB_texture_border_clamp
+#define GL_ARB_texture_border_clamp 1
+#define GL_CLAMP_TO_BORDER_ARB 0x812D
+#endif /* GL_ARB_texture_border_clamp */
+
+#ifndef GL_ARB_texture_buffer_object
+#define GL_ARB_texture_buffer_object 1
+#define GL_TEXTURE_BUFFER_ARB 0x8C2A
+#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B
+#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C
+#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D
+#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E
+typedef void (APIENTRYP PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTexBufferARB (GLenum target, GLenum internalformat, GLuint buffer);
+#endif
+#endif /* GL_ARB_texture_buffer_object */
+
+#ifndef GL_ARB_texture_buffer_object_rgb32
+#define GL_ARB_texture_buffer_object_rgb32 1
+#endif /* GL_ARB_texture_buffer_object_rgb32 */
+
+#ifndef GL_ARB_texture_buffer_range
+#define GL_ARB_texture_buffer_range 1
+#endif /* GL_ARB_texture_buffer_range */
+
+#ifndef GL_ARB_texture_compression
+#define GL_ARB_texture_compression 1
+#define GL_COMPRESSED_ALPHA_ARB 0x84E9
+#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA
+#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB
+#define GL_COMPRESSED_INTENSITY_ARB 0x84EC
+#define GL_COMPRESSED_RGB_ARB 0x84ED
+#define GL_COMPRESSED_RGBA_ARB 0x84EE
+#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF
+#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0
+#define GL_TEXTURE_COMPRESSED_ARB 0x86A1
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2
+#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
+typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, void *img);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glCompressedTexImage3DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
+GLAPI void APIENTRY glCompressedTexImage2DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
+GLAPI void APIENTRY glCompressedTexImage1DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data);
+GLAPI void APIENTRY glCompressedTexSubImage3DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
+GLAPI void APIENTRY glCompressedTexSubImage2DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
+GLAPI void APIENTRY glCompressedTexSubImage1DARB (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
+GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum target, GLint level, void *img);
+#endif
+#endif /* GL_ARB_texture_compression */
+
+#ifndef GL_ARB_texture_compression_bptc
+#define GL_ARB_texture_compression_bptc 1
+#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C
+#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D
+#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E
+#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F
+#endif /* GL_ARB_texture_compression_bptc */
+
+#ifndef GL_ARB_texture_compression_rgtc
+#define GL_ARB_texture_compression_rgtc 1
+#endif /* GL_ARB_texture_compression_rgtc */
+
+#ifndef GL_ARB_texture_cube_map
+#define GL_ARB_texture_cube_map 1
+#define GL_NORMAL_MAP_ARB 0x8511
+#define GL_REFLECTION_MAP_ARB 0x8512
+#define GL_TEXTURE_CUBE_MAP_ARB 0x8513
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C
+#endif /* GL_ARB_texture_cube_map */
+
+#ifndef GL_ARB_texture_cube_map_array
+#define GL_ARB_texture_cube_map_array 1
+#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B
+#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C
+#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D
+#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E
+#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F
+#endif /* GL_ARB_texture_cube_map_array */
+
+#ifndef GL_ARB_texture_env_add
+#define GL_ARB_texture_env_add 1
+#endif /* GL_ARB_texture_env_add */
+
+#ifndef GL_ARB_texture_env_combine
+#define GL_ARB_texture_env_combine 1
+#define GL_COMBINE_ARB 0x8570
+#define GL_COMBINE_RGB_ARB 0x8571
+#define GL_COMBINE_ALPHA_ARB 0x8572
+#define GL_SOURCE0_RGB_ARB 0x8580
+#define GL_SOURCE1_RGB_ARB 0x8581
+#define GL_SOURCE2_RGB_ARB 0x8582
+#define GL_SOURCE0_ALPHA_ARB 0x8588
+#define GL_SOURCE1_ALPHA_ARB 0x8589
+#define GL_SOURCE2_ALPHA_ARB 0x858A
+#define GL_OPERAND0_RGB_ARB 0x8590
+#define GL_OPERAND1_RGB_ARB 0x8591
+#define GL_OPERAND2_RGB_ARB 0x8592
+#define GL_OPERAND0_ALPHA_ARB 0x8598
+#define GL_OPERAND1_ALPHA_ARB 0x8599
+#define GL_OPERAND2_ALPHA_ARB 0x859A
+#define GL_RGB_SCALE_ARB 0x8573
+#define GL_ADD_SIGNED_ARB 0x8574
+#define GL_INTERPOLATE_ARB 0x8575
+#define GL_SUBTRACT_ARB 0x84E7
+#define GL_CONSTANT_ARB 0x8576
+#define GL_PRIMARY_COLOR_ARB 0x8577
+#define GL_PREVIOUS_ARB 0x8578
+#endif /* GL_ARB_texture_env_combine */
+
+#ifndef GL_ARB_texture_env_crossbar
+#define GL_ARB_texture_env_crossbar 1
+#endif /* GL_ARB_texture_env_crossbar */
+
+#ifndef GL_ARB_texture_env_dot3
+#define GL_ARB_texture_env_dot3 1
+#define GL_DOT3_RGB_ARB 0x86AE
+#define GL_DOT3_RGBA_ARB 0x86AF
+#endif /* GL_ARB_texture_env_dot3 */
+
+#ifndef GL_ARB_texture_float
+#define GL_ARB_texture_float 1
+#define GL_TEXTURE_RED_TYPE_ARB 0x8C10
+#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11
+#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12
+#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13
+#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14
+#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15
+#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16
+#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17
+#define GL_RGBA32F_ARB 0x8814
+#define GL_RGB32F_ARB 0x8815
+#define GL_ALPHA32F_ARB 0x8816
+#define GL_INTENSITY32F_ARB 0x8817
+#define GL_LUMINANCE32F_ARB 0x8818
+#define GL_LUMINANCE_ALPHA32F_ARB 0x8819
+#define GL_RGBA16F_ARB 0x881A
+#define GL_RGB16F_ARB 0x881B
+#define GL_ALPHA16F_ARB 0x881C
+#define GL_INTENSITY16F_ARB 0x881D
+#define GL_LUMINANCE16F_ARB 0x881E
+#define GL_LUMINANCE_ALPHA16F_ARB 0x881F
+#endif /* GL_ARB_texture_float */
+
+#ifndef GL_ARB_texture_gather
+#define GL_ARB_texture_gather 1
+#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E
+#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F
+#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F
+#endif /* GL_ARB_texture_gather */
+
+#ifndef GL_ARB_texture_mirror_clamp_to_edge
+#define GL_ARB_texture_mirror_clamp_to_edge 1
+#endif /* GL_ARB_texture_mirror_clamp_to_edge */
+
+#ifndef GL_ARB_texture_mirrored_repeat
+#define GL_ARB_texture_mirrored_repeat 1
+#define GL_MIRRORED_REPEAT_ARB 0x8370
+#endif /* GL_ARB_texture_mirrored_repeat */
+
+#ifndef GL_ARB_texture_multisample
+#define GL_ARB_texture_multisample 1
+#endif /* GL_ARB_texture_multisample */
+
+#ifndef GL_ARB_texture_non_power_of_two
+#define GL_ARB_texture_non_power_of_two 1
+#endif /* GL_ARB_texture_non_power_of_two */
+
+#ifndef GL_ARB_texture_query_levels
+#define GL_ARB_texture_query_levels 1
+#endif /* GL_ARB_texture_query_levels */
+
+#ifndef GL_ARB_texture_query_lod
+#define GL_ARB_texture_query_lod 1
+#endif /* GL_ARB_texture_query_lod */
+
+#ifndef GL_ARB_texture_rectangle
+#define GL_ARB_texture_rectangle 1
+#define GL_TEXTURE_RECTANGLE_ARB 0x84F5
+#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6
+#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8
+#endif /* GL_ARB_texture_rectangle */
+
+#ifndef GL_ARB_texture_rg
+#define GL_ARB_texture_rg 1
+#endif /* GL_ARB_texture_rg */
+
+#ifndef GL_ARB_texture_rgb10_a2ui
+#define GL_ARB_texture_rgb10_a2ui 1
+#endif /* GL_ARB_texture_rgb10_a2ui */
+
+#ifndef GL_ARB_texture_stencil8
+#define GL_ARB_texture_stencil8 1
+#endif /* GL_ARB_texture_stencil8 */
+
+#ifndef GL_ARB_texture_storage
+#define GL_ARB_texture_storage 1
+#endif /* GL_ARB_texture_storage */
+
+#ifndef GL_ARB_texture_storage_multisample
+#define GL_ARB_texture_storage_multisample 1
+#endif /* GL_ARB_texture_storage_multisample */
+
+#ifndef GL_ARB_texture_swizzle
+#define GL_ARB_texture_swizzle 1
+#endif /* GL_ARB_texture_swizzle */
+
+#ifndef GL_ARB_texture_view
+#define GL_ARB_texture_view 1
+#endif /* GL_ARB_texture_view */
+
+#ifndef GL_ARB_timer_query
+#define GL_ARB_timer_query 1
+#endif /* GL_ARB_timer_query */
+
+#ifndef GL_ARB_transform_feedback2
+#define GL_ARB_transform_feedback2 1
+#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23
+#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24
+#endif /* GL_ARB_transform_feedback2 */
+
+#ifndef GL_ARB_transform_feedback3
+#define GL_ARB_transform_feedback3 1
+#endif /* GL_ARB_transform_feedback3 */
+
+#ifndef GL_ARB_transform_feedback_instanced
+#define GL_ARB_transform_feedback_instanced 1
+#endif /* GL_ARB_transform_feedback_instanced */
+
+#ifndef GL_ARB_transpose_matrix
+#define GL_ARB_transpose_matrix 1
+#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3
+#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4
+#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5
+#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6
+typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m);
+typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m);
+typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m);
+typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glLoadTransposeMatrixfARB (const GLfloat *m);
+GLAPI void APIENTRY glLoadTransposeMatrixdARB (const GLdouble *m);
+GLAPI void APIENTRY glMultTransposeMatrixfARB (const GLfloat *m);
+GLAPI void APIENTRY glMultTransposeMatrixdARB (const GLdouble *m);
+#endif
+#endif /* GL_ARB_transpose_matrix */
+
+#ifndef GL_ARB_uniform_buffer_object
+#define GL_ARB_uniform_buffer_object 1
+#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C
+#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45
+#endif /* GL_ARB_uniform_buffer_object */
+
+#ifndef GL_ARB_vertex_array_bgra
+#define GL_ARB_vertex_array_bgra 1
+#endif /* GL_ARB_vertex_array_bgra */
+
+#ifndef GL_ARB_vertex_array_object
+#define GL_ARB_vertex_array_object 1
+#endif /* GL_ARB_vertex_array_object */
+
+#ifndef GL_ARB_vertex_attrib_64bit
+#define GL_ARB_vertex_attrib_64bit 1
+#endif /* GL_ARB_vertex_attrib_64bit */
+
+#ifndef GL_ARB_vertex_attrib_binding
+#define GL_ARB_vertex_attrib_binding 1
+#endif /* GL_ARB_vertex_attrib_binding */
+
+#ifndef GL_ARB_vertex_blend
+#define GL_ARB_vertex_blend 1
+#define GL_MAX_VERTEX_UNITS_ARB 0x86A4
+#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5
+#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6
+#define GL_VERTEX_BLEND_ARB 0x86A7
+#define GL_CURRENT_WEIGHT_ARB 0x86A8
+#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9
+#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA
+#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB
+#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC
+#define GL_WEIGHT_ARRAY_ARB 0x86AD
+#define GL_MODELVIEW0_ARB 0x1700
+#define GL_MODELVIEW1_ARB 0x850A
+#define GL_MODELVIEW2_ARB 0x8722
+#define GL_MODELVIEW3_ARB 0x8723
+#define GL_MODELVIEW4_ARB 0x8724
+#define GL_MODELVIEW5_ARB 0x8725
+#define GL_MODELVIEW6_ARB 0x8726
+#define GL_MODELVIEW7_ARB 0x8727
+#define GL_MODELVIEW8_ARB 0x8728
+#define GL_MODELVIEW9_ARB 0x8729
+#define GL_MODELVIEW10_ARB 0x872A
+#define GL_MODELVIEW11_ARB 0x872B
+#define GL_MODELVIEW12_ARB 0x872C
+#define GL_MODELVIEW13_ARB 0x872D
+#define GL_MODELVIEW14_ARB 0x872E
+#define GL_MODELVIEW15_ARB 0x872F
+#define GL_MODELVIEW16_ARB 0x8730
+#define GL_MODELVIEW17_ARB 0x8731
+#define GL_MODELVIEW18_ARB 0x8732
+#define GL_MODELVIEW19_ARB 0x8733
+#define GL_MODELVIEW20_ARB 0x8734
+#define GL_MODELVIEW21_ARB 0x8735
+#define GL_MODELVIEW22_ARB 0x8736
+#define GL_MODELVIEW23_ARB 0x8737
+#define GL_MODELVIEW24_ARB 0x8738
+#define GL_MODELVIEW25_ARB 0x8739
+#define GL_MODELVIEW26_ARB 0x873A
+#define GL_MODELVIEW27_ARB 0x873B
+#define GL_MODELVIEW28_ARB 0x873C
+#define GL_MODELVIEW29_ARB 0x873D
+#define GL_MODELVIEW30_ARB 0x873E
+#define GL_MODELVIEW31_ARB 0x873F
+typedef void (APIENTRYP PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights);
+typedef void (APIENTRYP PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights);
+typedef void (APIENTRYP PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights);
+typedef void (APIENTRYP PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights);
+typedef void (APIENTRYP PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights);
+typedef void (APIENTRYP PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights);
+typedef void (APIENTRYP PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights);
+typedef void (APIENTRYP PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights);
+typedef void (APIENTRYP PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer);
+typedef void (APIENTRYP PFNGLVERTEXBLENDARBPROC) (GLint count);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glWeightbvARB (GLint size, const GLbyte *weights);
+GLAPI void APIENTRY glWeightsvARB (GLint size, const GLshort *weights);
+GLAPI void APIENTRY glWeightivARB (GLint size, const GLint *weights);
+GLAPI void APIENTRY glWeightfvARB (GLint size, const GLfloat *weights);
+GLAPI void APIENTRY glWeightdvARB (GLint size, const GLdouble *weights);
+GLAPI void APIENTRY glWeightubvARB (GLint size, const GLubyte *weights);
+GLAPI void APIENTRY glWeightusvARB (GLint size, const GLushort *weights);
+GLAPI void APIENTRY glWeightuivARB (GLint size, const GLuint *weights);
+GLAPI void APIENTRY glWeightPointerARB (GLint size, GLenum type, GLsizei stride, const void *pointer);
+GLAPI void APIENTRY glVertexBlendARB (GLint count);
+#endif
+#endif /* GL_ARB_vertex_blend */
+
+#ifndef GL_ARB_vertex_buffer_object
+#define GL_ARB_vertex_buffer_object 1
+typedef ptrdiff_t GLsizeiptrARB;
+typedef ptrdiff_t GLintptrARB;
+#define GL_BUFFER_SIZE_ARB 0x8764
+#define GL_BUFFER_USAGE_ARB 0x8765
+#define GL_ARRAY_BUFFER_ARB 0x8892
+#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893
+#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894
+#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895
+#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896
+#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897
+#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898
+#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899
+#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A
+#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B
+#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C
+#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D
+#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E
+#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F
+#define GL_READ_ONLY_ARB 0x88B8
+#define GL_WRITE_ONLY_ARB 0x88B9
+#define GL_READ_WRITE_ARB 0x88BA
+#define GL_BUFFER_ACCESS_ARB 0x88BB
+#define GL_BUFFER_MAPPED_ARB 0x88BC
+#define GL_BUFFER_MAP_POINTER_ARB 0x88BD
+#define GL_STREAM_DRAW_ARB 0x88E0
+#define GL_STREAM_READ_ARB 0x88E1
+#define GL_STREAM_COPY_ARB 0x88E2
+#define GL_STATIC_DRAW_ARB 0x88E4
+#define GL_STATIC_READ_ARB 0x88E5
+#define GL_STATIC_COPY_ARB 0x88E6
+#define GL_DYNAMIC_DRAW_ARB 0x88E8
+#define GL_DYNAMIC_READ_ARB 0x88E9
+#define GL_DYNAMIC_COPY_ARB 0x88EA
+typedef void (APIENTRYP PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer);
+typedef void (APIENTRYP PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers);
+typedef void (APIENTRYP PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers);
+typedef GLboolean (APIENTRYP PFNGLISBUFFERARBPROC) (GLuint buffer);
+typedef void (APIENTRYP PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage);
+typedef void (APIENTRYP PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data);
+typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data);
+typedef void *(APIENTRYP PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access);
+typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERARBPROC) (GLenum target);
+typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, void **params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBindBufferARB (GLenum target, GLuint buffer);
+GLAPI void APIENTRY glDeleteBuffersARB (GLsizei n, const GLuint *buffers);
+GLAPI void APIENTRY glGenBuffersARB (GLsizei n, GLuint *buffers);
+GLAPI GLboolean APIENTRY glIsBufferARB (GLuint buffer);
+GLAPI void APIENTRY glBufferDataARB (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage);
+GLAPI void APIENTRY glBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data);
+GLAPI void APIENTRY glGetBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data);
+GLAPI void *APIENTRY glMapBufferARB (GLenum target, GLenum access);
+GLAPI GLboolean APIENTRY glUnmapBufferARB (GLenum target);
+GLAPI void APIENTRY glGetBufferParameterivARB (GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetBufferPointervARB (GLenum target, GLenum pname, void **params);
+#endif
+#endif /* GL_ARB_vertex_buffer_object */
+
+#ifndef GL_ARB_vertex_program
+#define GL_ARB_vertex_program 1
+#define GL_COLOR_SUM_ARB 0x8458
+#define GL_VERTEX_PROGRAM_ARB 0x8620
+#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622
+#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623
+#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624
+#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625
+#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626
+#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642
+#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643
+#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645
+#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869
+#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A
+#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0
+#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1
+#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2
+#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
+typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
+typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, void **pointer);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVertexAttrib1dARB (GLuint index, GLdouble x);
+GLAPI void APIENTRY glVertexAttrib1dvARB (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttrib1fARB (GLuint index, GLfloat x);
+GLAPI void APIENTRY glVertexAttrib1fvARB (GLuint index, const GLfloat *v);
+GLAPI void APIENTRY glVertexAttrib1sARB (GLuint index, GLshort x);
+GLAPI void APIENTRY glVertexAttrib1svARB (GLuint index, const GLshort *v);
+GLAPI void APIENTRY glVertexAttrib2dARB (GLuint index, GLdouble x, GLdouble y);
+GLAPI void APIENTRY glVertexAttrib2dvARB (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttrib2fARB (GLuint index, GLfloat x, GLfloat y);
+GLAPI void APIENTRY glVertexAttrib2fvARB (GLuint index, const GLfloat *v);
+GLAPI void APIENTRY glVertexAttrib2sARB (GLuint index, GLshort x, GLshort y);
+GLAPI void APIENTRY glVertexAttrib2svARB (GLuint index, const GLshort *v);
+GLAPI void APIENTRY glVertexAttrib3dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z);
+GLAPI void APIENTRY glVertexAttrib3dvARB (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttrib3fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glVertexAttrib3fvARB (GLuint index, const GLfloat *v);
+GLAPI void APIENTRY glVertexAttrib3sARB (GLuint index, GLshort x, GLshort y, GLshort z);
+GLAPI void APIENTRY glVertexAttrib3svARB (GLuint index, const GLshort *v);
+GLAPI void APIENTRY glVertexAttrib4NbvARB (GLuint index, const GLbyte *v);
+GLAPI void APIENTRY glVertexAttrib4NivARB (GLuint index, const GLint *v);
+GLAPI void APIENTRY glVertexAttrib4NsvARB (GLuint index, const GLshort *v);
+GLAPI void APIENTRY glVertexAttrib4NubARB (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+GLAPI void APIENTRY glVertexAttrib4NubvARB (GLuint index, const GLubyte *v);
+GLAPI void APIENTRY glVertexAttrib4NuivARB (GLuint index, const GLuint *v);
+GLAPI void APIENTRY glVertexAttrib4NusvARB (GLuint index, const GLushort *v);
+GLAPI void APIENTRY glVertexAttrib4bvARB (GLuint index, const GLbyte *v);
+GLAPI void APIENTRY glVertexAttrib4dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GLAPI void APIENTRY glVertexAttrib4dvARB (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttrib4fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GLAPI void APIENTRY glVertexAttrib4fvARB (GLuint index, const GLfloat *v);
+GLAPI void APIENTRY glVertexAttrib4ivARB (GLuint index, const GLint *v);
+GLAPI void APIENTRY glVertexAttrib4sARB (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+GLAPI void APIENTRY glVertexAttrib4svARB (GLuint index, const GLshort *v);
+GLAPI void APIENTRY glVertexAttrib4ubvARB (GLuint index, const GLubyte *v);
+GLAPI void APIENTRY glVertexAttrib4uivARB (GLuint index, const GLuint *v);
+GLAPI void APIENTRY glVertexAttrib4usvARB (GLuint index, const GLushort *v);
+GLAPI void APIENTRY glVertexAttribPointerARB (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
+GLAPI void APIENTRY glEnableVertexAttribArrayARB (GLuint index);
+GLAPI void APIENTRY glDisableVertexAttribArrayARB (GLuint index);
+GLAPI void APIENTRY glGetVertexAttribdvARB (GLuint index, GLenum pname, GLdouble *params);
+GLAPI void APIENTRY glGetVertexAttribfvARB (GLuint index, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetVertexAttribivARB (GLuint index, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetVertexAttribPointervARB (GLuint index, GLenum pname, void **pointer);
+#endif
+#endif /* GL_ARB_vertex_program */
+
+#ifndef GL_ARB_vertex_shader
+#define GL_ARB_vertex_shader 1
+#define GL_VERTEX_SHADER_ARB 0x8B31
+#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A
+#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B
+#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C
+#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D
+#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89
+#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A
+typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name);
+typedef void (APIENTRYP PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
+typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBindAttribLocationARB (GLhandleARB programObj, GLuint index, const GLcharARB *name);
+GLAPI void APIENTRY glGetActiveAttribARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
+GLAPI GLint APIENTRY glGetAttribLocationARB (GLhandleARB programObj, const GLcharARB *name);
+#endif
+#endif /* GL_ARB_vertex_shader */
+
+#ifndef GL_ARB_vertex_type_10f_11f_11f_rev
+#define GL_ARB_vertex_type_10f_11f_11f_rev 1
+#endif /* GL_ARB_vertex_type_10f_11f_11f_rev */
+
+#ifndef GL_ARB_vertex_type_2_10_10_10_rev
+#define GL_ARB_vertex_type_2_10_10_10_rev 1
+#endif /* GL_ARB_vertex_type_2_10_10_10_rev */
+
+#ifndef GL_ARB_viewport_array
+#define GL_ARB_viewport_array 1
+#endif /* GL_ARB_viewport_array */
+
+#ifndef GL_ARB_window_pos
+#define GL_ARB_window_pos 1
+typedef void (APIENTRYP PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y);
+typedef void (APIENTRYP PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y);
+typedef void (APIENTRYP PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y);
+typedef void (APIENTRYP PFNGLWINDOWPOS2IVARBPROC) (const GLint *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y);
+typedef void (APIENTRYP PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z);
+typedef void (APIENTRYP PFNGLWINDOWPOS3IVARBPROC) (const GLint *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRYP PFNGLWINDOWPOS3SVARBPROC) (const GLshort *v);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glWindowPos2dARB (GLdouble x, GLdouble y);
+GLAPI void APIENTRY glWindowPos2dvARB (const GLdouble *v);
+GLAPI void APIENTRY glWindowPos2fARB (GLfloat x, GLfloat y);
+GLAPI void APIENTRY glWindowPos2fvARB (const GLfloat *v);
+GLAPI void APIENTRY glWindowPos2iARB (GLint x, GLint y);
+GLAPI void APIENTRY glWindowPos2ivARB (const GLint *v);
+GLAPI void APIENTRY glWindowPos2sARB (GLshort x, GLshort y);
+GLAPI void APIENTRY glWindowPos2svARB (const GLshort *v);
+GLAPI void APIENTRY glWindowPos3dARB (GLdouble x, GLdouble y, GLdouble z);
+GLAPI void APIENTRY glWindowPos3dvARB (const GLdouble *v);
+GLAPI void APIENTRY glWindowPos3fARB (GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glWindowPos3fvARB (const GLfloat *v);
+GLAPI void APIENTRY glWindowPos3iARB (GLint x, GLint y, GLint z);
+GLAPI void APIENTRY glWindowPos3ivARB (const GLint *v);
+GLAPI void APIENTRY glWindowPos3sARB (GLshort x, GLshort y, GLshort z);
+GLAPI void APIENTRY glWindowPos3svARB (const GLshort *v);
+#endif
+#endif /* GL_ARB_window_pos */
+
+#ifndef GL_KHR_debug
+#define GL_KHR_debug 1
+#endif /* GL_KHR_debug */
+
+#ifndef GL_KHR_texture_compression_astc_hdr
+#define GL_KHR_texture_compression_astc_hdr 1
+#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0
+#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1
+#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2
+#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3
+#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4
+#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5
+#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6
+#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7
+#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8
+#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9
+#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA
+#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB
+#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC
+#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD
+#endif /* GL_KHR_texture_compression_astc_hdr */
+
+#ifndef GL_KHR_texture_compression_astc_ldr
+#define GL_KHR_texture_compression_astc_ldr 1
+#endif /* GL_KHR_texture_compression_astc_ldr */
+
+#ifndef GL_OES_byte_coordinates
+#define GL_OES_byte_coordinates 1
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1BOESPROC) (GLenum texture, GLbyte s);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1BVOESPROC) (GLenum texture, const GLbyte *coords);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2BOESPROC) (GLenum texture, GLbyte s, GLbyte t);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2BVOESPROC) (GLenum texture, const GLbyte *coords);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3BOESPROC) (GLenum texture, GLbyte s, GLbyte t, GLbyte r);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3BVOESPROC) (GLenum texture, const GLbyte *coords);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4BOESPROC) (GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4BVOESPROC) (GLenum texture, const GLbyte *coords);
+typedef void (APIENTRYP PFNGLTEXCOORD1BOESPROC) (GLbyte s);
+typedef void (APIENTRYP PFNGLTEXCOORD1BVOESPROC) (const GLbyte *coords);
+typedef void (APIENTRYP PFNGLTEXCOORD2BOESPROC) (GLbyte s, GLbyte t);
+typedef void (APIENTRYP PFNGLTEXCOORD2BVOESPROC) (const GLbyte *coords);
+typedef void (APIENTRYP PFNGLTEXCOORD3BOESPROC) (GLbyte s, GLbyte t, GLbyte r);
+typedef void (APIENTRYP PFNGLTEXCOORD3BVOESPROC) (const GLbyte *coords);
+typedef void (APIENTRYP PFNGLTEXCOORD4BOESPROC) (GLbyte s, GLbyte t, GLbyte r, GLbyte q);
+typedef void (APIENTRYP PFNGLTEXCOORD4BVOESPROC) (const GLbyte *coords);
+typedef void (APIENTRYP PFNGLVERTEX2BOESPROC) (GLbyte x);
+typedef void (APIENTRYP PFNGLVERTEX2BVOESPROC) (const GLbyte *coords);
+typedef void (APIENTRYP PFNGLVERTEX3BOESPROC) (GLbyte x, GLbyte y);
+typedef void (APIENTRYP PFNGLVERTEX3BVOESPROC) (const GLbyte *coords);
+typedef void (APIENTRYP PFNGLVERTEX4BOESPROC) (GLbyte x, GLbyte y, GLbyte z);
+typedef void (APIENTRYP PFNGLVERTEX4BVOESPROC) (const GLbyte *coords);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glMultiTexCoord1bOES (GLenum texture, GLbyte s);
+GLAPI void APIENTRY glMultiTexCoord1bvOES (GLenum texture, const GLbyte *coords);
+GLAPI void APIENTRY glMultiTexCoord2bOES (GLenum texture, GLbyte s, GLbyte t);
+GLAPI void APIENTRY glMultiTexCoord2bvOES (GLenum texture, const GLbyte *coords);
+GLAPI void APIENTRY glMultiTexCoord3bOES (GLenum texture, GLbyte s, GLbyte t, GLbyte r);
+GLAPI void APIENTRY glMultiTexCoord3bvOES (GLenum texture, const GLbyte *coords);
+GLAPI void APIENTRY glMultiTexCoord4bOES (GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q);
+GLAPI void APIENTRY glMultiTexCoord4bvOES (GLenum texture, const GLbyte *coords);
+GLAPI void APIENTRY glTexCoord1bOES (GLbyte s);
+GLAPI void APIENTRY glTexCoord1bvOES (const GLbyte *coords);
+GLAPI void APIENTRY glTexCoord2bOES (GLbyte s, GLbyte t);
+GLAPI void APIENTRY glTexCoord2bvOES (const GLbyte *coords);
+GLAPI void APIENTRY glTexCoord3bOES (GLbyte s, GLbyte t, GLbyte r);
+GLAPI void APIENTRY glTexCoord3bvOES (const GLbyte *coords);
+GLAPI void APIENTRY glTexCoord4bOES (GLbyte s, GLbyte t, GLbyte r, GLbyte q);
+GLAPI void APIENTRY glTexCoord4bvOES (const GLbyte *coords);
+GLAPI void APIENTRY glVertex2bOES (GLbyte x);
+GLAPI void APIENTRY glVertex2bvOES (const GLbyte *coords);
+GLAPI void APIENTRY glVertex3bOES (GLbyte x, GLbyte y);
+GLAPI void APIENTRY glVertex3bvOES (const GLbyte *coords);
+GLAPI void APIENTRY glVertex4bOES (GLbyte x, GLbyte y, GLbyte z);
+GLAPI void APIENTRY glVertex4bvOES (const GLbyte *coords);
+#endif
+#endif /* GL_OES_byte_coordinates */
+
+#ifndef GL_OES_compressed_paletted_texture
+#define GL_OES_compressed_paletted_texture 1
+#define GL_PALETTE4_RGB8_OES 0x8B90
+#define GL_PALETTE4_RGBA8_OES 0x8B91
+#define GL_PALETTE4_R5_G6_B5_OES 0x8B92
+#define GL_PALETTE4_RGBA4_OES 0x8B93
+#define GL_PALETTE4_RGB5_A1_OES 0x8B94
+#define GL_PALETTE8_RGB8_OES 0x8B95
+#define GL_PALETTE8_RGBA8_OES 0x8B96
+#define GL_PALETTE8_R5_G6_B5_OES 0x8B97
+#define GL_PALETTE8_RGBA4_OES 0x8B98
+#define GL_PALETTE8_RGB5_A1_OES 0x8B99
+#endif /* GL_OES_compressed_paletted_texture */
+
+#ifndef GL_OES_fixed_point
+#define GL_OES_fixed_point 1
+typedef GLint GLfixed;
+#define GL_FIXED_OES 0x140C
+typedef void (APIENTRYP PFNGLALPHAFUNCXOESPROC) (GLenum func, GLfixed ref);
+typedef void (APIENTRYP PFNGLCLEARCOLORXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+typedef void (APIENTRYP PFNGLCLEARDEPTHXOESPROC) (GLfixed depth);
+typedef void (APIENTRYP PFNGLCLIPPLANEXOESPROC) (GLenum plane, const GLfixed *equation);
+typedef void (APIENTRYP PFNGLCOLOR4XOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+typedef void (APIENTRYP PFNGLDEPTHRANGEXOESPROC) (GLfixed n, GLfixed f);
+typedef void (APIENTRYP PFNGLFOGXOESPROC) (GLenum pname, GLfixed param);
+typedef void (APIENTRYP PFNGLFOGXVOESPROC) (GLenum pname, const GLfixed *param);
+typedef void (APIENTRYP PFNGLFRUSTUMXOESPROC) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
+typedef void (APIENTRYP PFNGLGETCLIPPLANEXOESPROC) (GLenum plane, GLfixed *equation);
+typedef void (APIENTRYP PFNGLGETFIXEDVOESPROC) (GLenum pname, GLfixed *params);
+typedef void (APIENTRYP PFNGLGETTEXENVXVOESPROC) (GLenum target, GLenum pname, GLfixed *params);
+typedef void (APIENTRYP PFNGLGETTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params);
+typedef void (APIENTRYP PFNGLLIGHTMODELXOESPROC) (GLenum pname, GLfixed param);
+typedef void (APIENTRYP PFNGLLIGHTMODELXVOESPROC) (GLenum pname, const GLfixed *param);
+typedef void (APIENTRYP PFNGLLIGHTXOESPROC) (GLenum light, GLenum pname, GLfixed param);
+typedef void (APIENTRYP PFNGLLIGHTXVOESPROC) (GLenum light, GLenum pname, const GLfixed *params);
+typedef void (APIENTRYP PFNGLLINEWIDTHXOESPROC) (GLfixed width);
+typedef void (APIENTRYP PFNGLLOADMATRIXXOESPROC) (const GLfixed *m);
+typedef void (APIENTRYP PFNGLMATERIALXOESPROC) (GLenum face, GLenum pname, GLfixed param);
+typedef void (APIENTRYP PFNGLMATERIALXVOESPROC) (GLenum face, GLenum pname, const GLfixed *param);
+typedef void (APIENTRYP PFNGLMULTMATRIXXOESPROC) (const GLfixed *m);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4XOESPROC) (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+typedef void (APIENTRYP PFNGLNORMAL3XOESPROC) (GLfixed nx, GLfixed ny, GLfixed nz);
+typedef void (APIENTRYP PFNGLORTHOXOESPROC) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
+typedef void (APIENTRYP PFNGLPOINTPARAMETERXVOESPROC) (GLenum pname, const GLfixed *params);
+typedef void (APIENTRYP PFNGLPOINTSIZEXOESPROC) (GLfixed size);
+typedef void (APIENTRYP PFNGLPOLYGONOFFSETXOESPROC) (GLfixed factor, GLfixed units);
+typedef void (APIENTRYP PFNGLROTATEXOESPROC) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
+typedef void (APIENTRYP PFNGLSAMPLECOVERAGEOESPROC) (GLfixed value, GLboolean invert);
+typedef void (APIENTRYP PFNGLSCALEXOESPROC) (GLfixed x, GLfixed y, GLfixed z);
+typedef void (APIENTRYP PFNGLTEXENVXOESPROC) (GLenum target, GLenum pname, GLfixed param);
+typedef void (APIENTRYP PFNGLTEXENVXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params);
+typedef void (APIENTRYP PFNGLTEXPARAMETERXOESPROC) (GLenum target, GLenum pname, GLfixed param);
+typedef void (APIENTRYP PFNGLTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params);
+typedef void (APIENTRYP PFNGLTRANSLATEXOESPROC) (GLfixed x, GLfixed y, GLfixed z);
+typedef void (APIENTRYP PFNGLACCUMXOESPROC) (GLenum op, GLfixed value);
+typedef void (APIENTRYP PFNGLBITMAPXOESPROC) (GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte *bitmap);
+typedef void (APIENTRYP PFNGLBLENDCOLORXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+typedef void (APIENTRYP PFNGLCLEARACCUMXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+typedef void (APIENTRYP PFNGLCOLOR3XOESPROC) (GLfixed red, GLfixed green, GLfixed blue);
+typedef void (APIENTRYP PFNGLCOLOR3XVOESPROC) (const GLfixed *components);
+typedef void (APIENTRYP PFNGLCOLOR4XVOESPROC) (const GLfixed *components);
+typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERXOESPROC) (GLenum target, GLenum pname, GLfixed param);
+typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params);
+typedef void (APIENTRYP PFNGLEVALCOORD1XOESPROC) (GLfixed u);
+typedef void (APIENTRYP PFNGLEVALCOORD1XVOESPROC) (const GLfixed *coords);
+typedef void (APIENTRYP PFNGLEVALCOORD2XOESPROC) (GLfixed u, GLfixed v);
+typedef void (APIENTRYP PFNGLEVALCOORD2XVOESPROC) (const GLfixed *coords);
+typedef void (APIENTRYP PFNGLFEEDBACKBUFFERXOESPROC) (GLsizei n, GLenum type, const GLfixed *buffer);
+typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params);
+typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params);
+typedef void (APIENTRYP PFNGLGETLIGHTXOESPROC) (GLenum light, GLenum pname, GLfixed *params);
+typedef void (APIENTRYP PFNGLGETMAPXVOESPROC) (GLenum target, GLenum query, GLfixed *v);
+typedef void (APIENTRYP PFNGLGETMATERIALXOESPROC) (GLenum face, GLenum pname, GLfixed param);
+typedef void (APIENTRYP PFNGLGETPIXELMAPXVPROC) (GLenum map, GLint size, GLfixed *values);
+typedef void (APIENTRYP PFNGLGETTEXGENXVOESPROC) (GLenum coord, GLenum pname, GLfixed *params);
+typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERXVOESPROC) (GLenum target, GLint level, GLenum pname, GLfixed *params);
+typedef void (APIENTRYP PFNGLINDEXXOESPROC) (GLfixed component);
+typedef void (APIENTRYP PFNGLINDEXXVOESPROC) (const GLfixed *component);
+typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXXOESPROC) (const GLfixed *m);
+typedef void (APIENTRYP PFNGLMAP1XOESPROC) (GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points);
+typedef void (APIENTRYP PFNGLMAP2XOESPROC) (GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points);
+typedef void (APIENTRYP PFNGLMAPGRID1XOESPROC) (GLint n, GLfixed u1, GLfixed u2);
+typedef void (APIENTRYP PFNGLMAPGRID2XOESPROC) (GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2);
+typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXXOESPROC) (const GLfixed *m);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1XOESPROC) (GLenum texture, GLfixed s);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1XVOESPROC) (GLenum texture, const GLfixed *coords);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2XOESPROC) (GLenum texture, GLfixed s, GLfixed t);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2XVOESPROC) (GLenum texture, const GLfixed *coords);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3XOESPROC) (GLenum texture, GLfixed s, GLfixed t, GLfixed r);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3XVOESPROC) (GLenum texture, const GLfixed *coords);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4XVOESPROC) (GLenum texture, const GLfixed *coords);
+typedef void (APIENTRYP PFNGLNORMAL3XVOESPROC) (const GLfixed *coords);
+typedef void (APIENTRYP PFNGLPASSTHROUGHXOESPROC) (GLfixed token);
+typedef void (APIENTRYP PFNGLPIXELMAPXPROC) (GLenum map, GLint size, const GLfixed *values);
+typedef void (APIENTRYP PFNGLPIXELSTOREXPROC) (GLenum pname, GLfixed param);
+typedef void (APIENTRYP PFNGLPIXELTRANSFERXOESPROC) (GLenum pname, GLfixed param);
+typedef void (APIENTRYP PFNGLPIXELZOOMXOESPROC) (GLfixed xfactor, GLfixed yfactor);
+typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESXOESPROC) (GLsizei n, const GLuint *textures, const GLfixed *priorities);
+typedef void (APIENTRYP PFNGLRASTERPOS2XOESPROC) (GLfixed x, GLfixed y);
+typedef void (APIENTRYP PFNGLRASTERPOS2XVOESPROC) (const GLfixed *coords);
+typedef void (APIENTRYP PFNGLRASTERPOS3XOESPROC) (GLfixed x, GLfixed y, GLfixed z);
+typedef void (APIENTRYP PFNGLRASTERPOS3XVOESPROC) (const GLfixed *coords);
+typedef void (APIENTRYP PFNGLRASTERPOS4XOESPROC) (GLfixed x, GLfixed y, GLfixed z, GLfixed w);
+typedef void (APIENTRYP PFNGLRASTERPOS4XVOESPROC) (const GLfixed *coords);
+typedef void (APIENTRYP PFNGLRECTXOESPROC) (GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2);
+typedef void (APIENTRYP PFNGLRECTXVOESPROC) (const GLfixed *v1, const GLfixed *v2);
+typedef void (APIENTRYP PFNGLTEXCOORD1XOESPROC) (GLfixed s);
+typedef void (APIENTRYP PFNGLTEXCOORD1XVOESPROC) (const GLfixed *coords);
+typedef void (APIENTRYP PFNGLTEXCOORD2XOESPROC) (GLfixed s, GLfixed t);
+typedef void (APIENTRYP PFNGLTEXCOORD2XVOESPROC) (const GLfixed *coords);
+typedef void (APIENTRYP PFNGLTEXCOORD3XOESPROC) (GLfixed s, GLfixed t, GLfixed r);
+typedef void (APIENTRYP PFNGLTEXCOORD3XVOESPROC) (const GLfixed *coords);
+typedef void (APIENTRYP PFNGLTEXCOORD4XOESPROC) (GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+typedef void (APIENTRYP PFNGLTEXCOORD4XVOESPROC) (const GLfixed *coords);
+typedef void (APIENTRYP PFNGLTEXGENXOESPROC) (GLenum coord, GLenum pname, GLfixed param);
+typedef void (APIENTRYP PFNGLTEXGENXVOESPROC) (GLenum coord, GLenum pname, const GLfixed *params);
+typedef void (APIENTRYP PFNGLVERTEX2XOESPROC) (GLfixed x);
+typedef void (APIENTRYP PFNGLVERTEX2XVOESPROC) (const GLfixed *coords);
+typedef void (APIENTRYP PFNGLVERTEX3XOESPROC) (GLfixed x, GLfixed y);
+typedef void (APIENTRYP PFNGLVERTEX3XVOESPROC) (const GLfixed *coords);
+typedef void (APIENTRYP PFNGLVERTEX4XOESPROC) (GLfixed x, GLfixed y, GLfixed z);
+typedef void (APIENTRYP PFNGLVERTEX4XVOESPROC) (const GLfixed *coords);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glAlphaFuncxOES (GLenum func, GLfixed ref);
+GLAPI void APIENTRY glClearColorxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+GLAPI void APIENTRY glClearDepthxOES (GLfixed depth);
+GLAPI void APIENTRY glClipPlanexOES (GLenum plane, const GLfixed *equation);
+GLAPI void APIENTRY glColor4xOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+GLAPI void APIENTRY glDepthRangexOES (GLfixed n, GLfixed f);
+GLAPI void APIENTRY glFogxOES (GLenum pname, GLfixed param);
+GLAPI void APIENTRY glFogxvOES (GLenum pname, const GLfixed *param);
+GLAPI void APIENTRY glFrustumxOES (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
+GLAPI void APIENTRY glGetClipPlanexOES (GLenum plane, GLfixed *equation);
+GLAPI void APIENTRY glGetFixedvOES (GLenum pname, GLfixed *params);
+GLAPI void APIENTRY glGetTexEnvxvOES (GLenum target, GLenum pname, GLfixed *params);
+GLAPI void APIENTRY glGetTexParameterxvOES (GLenum target, GLenum pname, GLfixed *params);
+GLAPI void APIENTRY glLightModelxOES (GLenum pname, GLfixed param);
+GLAPI void APIENTRY glLightModelxvOES (GLenum pname, const GLfixed *param);
+GLAPI void APIENTRY glLightxOES (GLenum light, GLenum pname, GLfixed param);
+GLAPI void APIENTRY glLightxvOES (GLenum light, GLenum pname, const GLfixed *params);
+GLAPI void APIENTRY glLineWidthxOES (GLfixed width);
+GLAPI void APIENTRY glLoadMatrixxOES (const GLfixed *m);
+GLAPI void APIENTRY glMaterialxOES (GLenum face, GLenum pname, GLfixed param);
+GLAPI void APIENTRY glMaterialxvOES (GLenum face, GLenum pname, const GLfixed *param);
+GLAPI void APIENTRY glMultMatrixxOES (const GLfixed *m);
+GLAPI void APIENTRY glMultiTexCoord4xOES (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+GLAPI void APIENTRY glNormal3xOES (GLfixed nx, GLfixed ny, GLfixed nz);
+GLAPI void APIENTRY glOrthoxOES (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
+GLAPI void APIENTRY glPointParameterxvOES (GLenum pname, const GLfixed *params);
+GLAPI void APIENTRY glPointSizexOES (GLfixed size);
+GLAPI void APIENTRY glPolygonOffsetxOES (GLfixed factor, GLfixed units);
+GLAPI void APIENTRY glRotatexOES (GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
+GLAPI void APIENTRY glSampleCoverageOES (GLfixed value, GLboolean invert);
+GLAPI void APIENTRY glScalexOES (GLfixed x, GLfixed y, GLfixed z);
+GLAPI void APIENTRY glTexEnvxOES (GLenum target, GLenum pname, GLfixed param);
+GLAPI void APIENTRY glTexEnvxvOES (GLenum target, GLenum pname, const GLfixed *params);
+GLAPI void APIENTRY glTexParameterxOES (GLenum target, GLenum pname, GLfixed param);
+GLAPI void APIENTRY glTexParameterxvOES (GLenum target, GLenum pname, const GLfixed *params);
+GLAPI void APIENTRY glTranslatexOES (GLfixed x, GLfixed y, GLfixed z);
+GLAPI void APIENTRY glAccumxOES (GLenum op, GLfixed value);
+GLAPI void APIENTRY glBitmapxOES (GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte *bitmap);
+GLAPI void APIENTRY glBlendColorxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+GLAPI void APIENTRY glClearAccumxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+GLAPI void APIENTRY glColor3xOES (GLfixed red, GLfixed green, GLfixed blue);
+GLAPI void APIENTRY glColor3xvOES (const GLfixed *components);
+GLAPI void APIENTRY glColor4xvOES (const GLfixed *components);
+GLAPI void APIENTRY glConvolutionParameterxOES (GLenum target, GLenum pname, GLfixed param);
+GLAPI void APIENTRY glConvolutionParameterxvOES (GLenum target, GLenum pname, const GLfixed *params);
+GLAPI void APIENTRY glEvalCoord1xOES (GLfixed u);
+GLAPI void APIENTRY glEvalCoord1xvOES (const GLfixed *coords);
+GLAPI void APIENTRY glEvalCoord2xOES (GLfixed u, GLfixed v);
+GLAPI void APIENTRY glEvalCoord2xvOES (const GLfixed *coords);
+GLAPI void APIENTRY glFeedbackBufferxOES (GLsizei n, GLenum type, const GLfixed *buffer);
+GLAPI void APIENTRY glGetConvolutionParameterxvOES (GLenum target, GLenum pname, GLfixed *params);
+GLAPI void APIENTRY glGetHistogramParameterxvOES (GLenum target, GLenum pname, GLfixed *params);
+GLAPI void APIENTRY glGetLightxOES (GLenum light, GLenum pname, GLfixed *params);
+GLAPI void APIENTRY glGetMapxvOES (GLenum target, GLenum query, GLfixed *v);
+GLAPI void APIENTRY glGetMaterialxOES (GLenum face, GLenum pname, GLfixed param);
+GLAPI void APIENTRY glGetPixelMapxv (GLenum map, GLint size, GLfixed *values);
+GLAPI void APIENTRY glGetTexGenxvOES (GLenum coord, GLenum pname, GLfixed *params);
+GLAPI void APIENTRY glGetTexLevelParameterxvOES (GLenum target, GLint level, GLenum pname, GLfixed *params);
+GLAPI void APIENTRY glIndexxOES (GLfixed component);
+GLAPI void APIENTRY glIndexxvOES (const GLfixed *component);
+GLAPI void APIENTRY glLoadTransposeMatrixxOES (const GLfixed *m);
+GLAPI void APIENTRY glMap1xOES (GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points);
+GLAPI void APIENTRY glMap2xOES (GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points);
+GLAPI void APIENTRY glMapGrid1xOES (GLint n, GLfixed u1, GLfixed u2);
+GLAPI void APIENTRY glMapGrid2xOES (GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2);
+GLAPI void APIENTRY glMultTransposeMatrixxOES (const GLfixed *m);
+GLAPI void APIENTRY glMultiTexCoord1xOES (GLenum texture, GLfixed s);
+GLAPI void APIENTRY glMultiTexCoord1xvOES (GLenum texture, const GLfixed *coords);
+GLAPI void APIENTRY glMultiTexCoord2xOES (GLenum texture, GLfixed s, GLfixed t);
+GLAPI void APIENTRY glMultiTexCoord2xvOES (GLenum texture, const GLfixed *coords);
+GLAPI void APIENTRY glMultiTexCoord3xOES (GLenum texture, GLfixed s, GLfixed t, GLfixed r);
+GLAPI void APIENTRY glMultiTexCoord3xvOES (GLenum texture, const GLfixed *coords);
+GLAPI void APIENTRY glMultiTexCoord4xvOES (GLenum texture, const GLfixed *coords);
+GLAPI void APIENTRY glNormal3xvOES (const GLfixed *coords);
+GLAPI void APIENTRY glPassThroughxOES (GLfixed token);
+GLAPI void APIENTRY glPixelMapx (GLenum map, GLint size, const GLfixed *values);
+GLAPI void APIENTRY glPixelStorex (GLenum pname, GLfixed param);
+GLAPI void APIENTRY glPixelTransferxOES (GLenum pname, GLfixed param);
+GLAPI void APIENTRY glPixelZoomxOES (GLfixed xfactor, GLfixed yfactor);
+GLAPI void APIENTRY glPrioritizeTexturesxOES (GLsizei n, const GLuint *textures, const GLfixed *priorities);
+GLAPI void APIENTRY glRasterPos2xOES (GLfixed x, GLfixed y);
+GLAPI void APIENTRY glRasterPos2xvOES (const GLfixed *coords);
+GLAPI void APIENTRY glRasterPos3xOES (GLfixed x, GLfixed y, GLfixed z);
+GLAPI void APIENTRY glRasterPos3xvOES (const GLfixed *coords);
+GLAPI void APIENTRY glRasterPos4xOES (GLfixed x, GLfixed y, GLfixed z, GLfixed w);
+GLAPI void APIENTRY glRasterPos4xvOES (const GLfixed *coords);
+GLAPI void APIENTRY glRectxOES (GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2);
+GLAPI void APIENTRY glRectxvOES (const GLfixed *v1, const GLfixed *v2);
+GLAPI void APIENTRY glTexCoord1xOES (GLfixed s);
+GLAPI void APIENTRY glTexCoord1xvOES (const GLfixed *coords);
+GLAPI void APIENTRY glTexCoord2xOES (GLfixed s, GLfixed t);
+GLAPI void APIENTRY glTexCoord2xvOES (const GLfixed *coords);
+GLAPI void APIENTRY glTexCoord3xOES (GLfixed s, GLfixed t, GLfixed r);
+GLAPI void APIENTRY glTexCoord3xvOES (const GLfixed *coords);
+GLAPI void APIENTRY glTexCoord4xOES (GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+GLAPI void APIENTRY glTexCoord4xvOES (const GLfixed *coords);
+GLAPI void APIENTRY glTexGenxOES (GLenum coord, GLenum pname, GLfixed param);
+GLAPI void APIENTRY glTexGenxvOES (GLenum coord, GLenum pname, const GLfixed *params);
+GLAPI void APIENTRY glVertex2xOES (GLfixed x);
+GLAPI void APIENTRY glVertex2xvOES (const GLfixed *coords);
+GLAPI void APIENTRY glVertex3xOES (GLfixed x, GLfixed y);
+GLAPI void APIENTRY glVertex3xvOES (const GLfixed *coords);
+GLAPI void APIENTRY glVertex4xOES (GLfixed x, GLfixed y, GLfixed z);
+GLAPI void APIENTRY glVertex4xvOES (const GLfixed *coords);
+#endif
+#endif /* GL_OES_fixed_point */
+
+#ifndef GL_OES_query_matrix
+#define GL_OES_query_matrix 1
+typedef GLbitfield (APIENTRYP PFNGLQUERYMATRIXXOESPROC) (GLfixed *mantissa, GLint *exponent);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLbitfield APIENTRY glQueryMatrixxOES (GLfixed *mantissa, GLint *exponent);
+#endif
+#endif /* GL_OES_query_matrix */
+
+#ifndef GL_OES_read_format
+#define GL_OES_read_format 1
+#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A
+#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B
+#endif /* GL_OES_read_format */
+
+#ifndef GL_OES_single_precision
+#define GL_OES_single_precision 1
+typedef void (APIENTRYP PFNGLCLEARDEPTHFOESPROC) (GLclampf depth);
+typedef void (APIENTRYP PFNGLCLIPPLANEFOESPROC) (GLenum plane, const GLfloat *equation);
+typedef void (APIENTRYP PFNGLDEPTHRANGEFOESPROC) (GLclampf n, GLclampf f);
+typedef void (APIENTRYP PFNGLFRUSTUMFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
+typedef void (APIENTRYP PFNGLGETCLIPPLANEFOESPROC) (GLenum plane, GLfloat *equation);
+typedef void (APIENTRYP PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glClearDepthfOES (GLclampf depth);
+GLAPI void APIENTRY glClipPlanefOES (GLenum plane, const GLfloat *equation);
+GLAPI void APIENTRY glDepthRangefOES (GLclampf n, GLclampf f);
+GLAPI void APIENTRY glFrustumfOES (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
+GLAPI void APIENTRY glGetClipPlanefOES (GLenum plane, GLfloat *equation);
+GLAPI void APIENTRY glOrthofOES (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
+#endif
+#endif /* GL_OES_single_precision */
+
+#ifndef GL_3DFX_multisample
+#define GL_3DFX_multisample 1
+#define GL_MULTISAMPLE_3DFX 0x86B2
+#define GL_SAMPLE_BUFFERS_3DFX 0x86B3
+#define GL_SAMPLES_3DFX 0x86B4
+#define GL_MULTISAMPLE_BIT_3DFX 0x20000000
+#endif /* GL_3DFX_multisample */
+
+#ifndef GL_3DFX_tbuffer
+#define GL_3DFX_tbuffer 1
+typedef void (APIENTRYP PFNGLTBUFFERMASK3DFXPROC) (GLuint mask);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTbufferMask3DFX (GLuint mask);
+#endif
+#endif /* GL_3DFX_tbuffer */
+
+#ifndef GL_3DFX_texture_compression_FXT1
+#define GL_3DFX_texture_compression_FXT1 1
+#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0
+#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1
+#endif /* GL_3DFX_texture_compression_FXT1 */
+
+#ifndef GL_AMD_blend_minmax_factor
+#define GL_AMD_blend_minmax_factor 1
+#define GL_FACTOR_MIN_AMD 0x901C
+#define GL_FACTOR_MAX_AMD 0x901D
+#endif /* GL_AMD_blend_minmax_factor */
+
+#ifndef GL_AMD_conservative_depth
+#define GL_AMD_conservative_depth 1
+#endif /* GL_AMD_conservative_depth */
+
+#ifndef GL_AMD_debug_output
+#define GL_AMD_debug_output 1
+typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);
+#define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143
+#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144
+#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145
+#define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146
+#define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147
+#define GL_DEBUG_SEVERITY_LOW_AMD 0x9148
+#define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149
+#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A
+#define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B
+#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C
+#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D
+#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E
+#define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F
+#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150
+typedef void (APIENTRYP PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
+typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf);
+typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, void *userParam);
+typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDebugMessageEnableAMD (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
+GLAPI void APIENTRY glDebugMessageInsertAMD (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf);
+GLAPI void APIENTRY glDebugMessageCallbackAMD (GLDEBUGPROCAMD callback, void *userParam);
+GLAPI GLuint APIENTRY glGetDebugMessageLogAMD (GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message);
+#endif
+#endif /* GL_AMD_debug_output */
+
+#ifndef GL_AMD_depth_clamp_separate
+#define GL_AMD_depth_clamp_separate 1
+#define GL_DEPTH_CLAMP_NEAR_AMD 0x901E
+#define GL_DEPTH_CLAMP_FAR_AMD 0x901F
+#endif /* GL_AMD_depth_clamp_separate */
+
+#ifndef GL_AMD_draw_buffers_blend
+#define GL_AMD_draw_buffers_blend 1
+typedef void (APIENTRYP PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst);
+typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+typedef void (APIENTRYP PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode);
+typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBlendFuncIndexedAMD (GLuint buf, GLenum src, GLenum dst);
+GLAPI void APIENTRY glBlendFuncSeparateIndexedAMD (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+GLAPI void APIENTRY glBlendEquationIndexedAMD (GLuint buf, GLenum mode);
+GLAPI void APIENTRY glBlendEquationSeparateIndexedAMD (GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+#endif
+#endif /* GL_AMD_draw_buffers_blend */
+
+#ifndef GL_AMD_interleaved_elements
+#define GL_AMD_interleaved_elements 1
+#define GL_VERTEX_ELEMENT_SWIZZLE_AMD 0x91A4
+#define GL_VERTEX_ID_SWIZZLE_AMD 0x91A5
+typedef void (APIENTRYP PFNGLVERTEXATTRIBPARAMETERIAMDPROC) (GLuint index, GLenum pname, GLint param);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVertexAttribParameteriAMD (GLuint index, GLenum pname, GLint param);
+#endif
+#endif /* GL_AMD_interleaved_elements */
+
+#ifndef GL_AMD_multi_draw_indirect
+#define GL_AMD_multi_draw_indirect 1
+typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC) (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride);
+typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glMultiDrawArraysIndirectAMD (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride);
+GLAPI void APIENTRY glMultiDrawElementsIndirectAMD (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride);
+#endif
+#endif /* GL_AMD_multi_draw_indirect */
+
+#ifndef GL_AMD_name_gen_delete
+#define GL_AMD_name_gen_delete 1
+#define GL_DATA_BUFFER_AMD 0x9151
+#define GL_PERFORMANCE_MONITOR_AMD 0x9152
+#define GL_QUERY_OBJECT_AMD 0x9153
+#define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154
+#define GL_SAMPLER_OBJECT_AMD 0x9155
+typedef void (APIENTRYP PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint *names);
+typedef void (APIENTRYP PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint *names);
+typedef GLboolean (APIENTRYP PFNGLISNAMEAMDPROC) (GLenum identifier, GLuint name);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glGenNamesAMD (GLenum identifier, GLuint num, GLuint *names);
+GLAPI void APIENTRY glDeleteNamesAMD (GLenum identifier, GLuint num, const GLuint *names);
+GLAPI GLboolean APIENTRY glIsNameAMD (GLenum identifier, GLuint name);
+#endif
+#endif /* GL_AMD_name_gen_delete */
+
+#ifndef GL_AMD_performance_monitor
+#define GL_AMD_performance_monitor 1
+#define GL_COUNTER_TYPE_AMD 0x8BC0
+#define GL_COUNTER_RANGE_AMD 0x8BC1
+#define GL_UNSIGNED_INT64_AMD 0x8BC2
+#define GL_PERCENTAGE_AMD 0x8BC3
+#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4
+#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5
+#define GL_PERFMON_RESULT_AMD 0x8BC6
+typedef void (APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
+typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
+typedef void (APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
+typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
+typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void *data);
+typedef void (APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
+typedef void (APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
+typedef void (APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList);
+typedef void (APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
+typedef void (APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
+typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
+GLAPI void APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
+GLAPI void APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
+GLAPI void APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
+GLAPI void APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, void *data);
+GLAPI void APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors);
+GLAPI void APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors);
+GLAPI void APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList);
+GLAPI void APIENTRY glBeginPerfMonitorAMD (GLuint monitor);
+GLAPI void APIENTRY glEndPerfMonitorAMD (GLuint monitor);
+GLAPI void APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
+#endif
+#endif /* GL_AMD_performance_monitor */
+
+#ifndef GL_AMD_pinned_memory
+#define GL_AMD_pinned_memory 1
+#define GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD 0x9160
+#endif /* GL_AMD_pinned_memory */
+
+#ifndef GL_AMD_query_buffer_object
+#define GL_AMD_query_buffer_object 1
+#define GL_QUERY_BUFFER_AMD 0x9192
+#define GL_QUERY_BUFFER_BINDING_AMD 0x9193
+#define GL_QUERY_RESULT_NO_WAIT_AMD 0x9194
+#endif /* GL_AMD_query_buffer_object */
+
+#ifndef GL_AMD_sample_positions
+#define GL_AMD_sample_positions 1
+#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F
+typedef void (APIENTRYP PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat *val);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glSetMultisamplefvAMD (GLenum pname, GLuint index, const GLfloat *val);
+#endif
+#endif /* GL_AMD_sample_positions */
+
+#ifndef GL_AMD_seamless_cubemap_per_texture
+#define GL_AMD_seamless_cubemap_per_texture 1
+#endif /* GL_AMD_seamless_cubemap_per_texture */
+
+#ifndef GL_AMD_shader_atomic_counter_ops
+#define GL_AMD_shader_atomic_counter_ops 1
+#endif /* GL_AMD_shader_atomic_counter_ops */
+
+#ifndef GL_AMD_shader_stencil_export
+#define GL_AMD_shader_stencil_export 1
+#endif /* GL_AMD_shader_stencil_export */
+
+#ifndef GL_AMD_shader_trinary_minmax
+#define GL_AMD_shader_trinary_minmax 1
+#endif /* GL_AMD_shader_trinary_minmax */
+
+#ifndef GL_AMD_sparse_texture
+#define GL_AMD_sparse_texture 1
+#define GL_VIRTUAL_PAGE_SIZE_X_AMD 0x9195
+#define GL_VIRTUAL_PAGE_SIZE_Y_AMD 0x9196
+#define GL_VIRTUAL_PAGE_SIZE_Z_AMD 0x9197
+#define GL_MAX_SPARSE_TEXTURE_SIZE_AMD 0x9198
+#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD 0x9199
+#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS 0x919A
+#define GL_MIN_SPARSE_LEVEL_AMD 0x919B
+#define GL_MIN_LOD_WARNING_AMD 0x919C
+#define GL_TEXTURE_STORAGE_SPARSE_BIT_AMD 0x00000001
+typedef void (APIENTRYP PFNGLTEXSTORAGESPARSEAMDPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags);
+typedef void (APIENTRYP PFNGLTEXTURESTORAGESPARSEAMDPROC) (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTexStorageSparseAMD (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags);
+GLAPI void APIENTRY glTextureStorageSparseAMD (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags);
+#endif
+#endif /* GL_AMD_sparse_texture */
+
+#ifndef GL_AMD_stencil_operation_extended
+#define GL_AMD_stencil_operation_extended 1
+#define GL_SET_AMD 0x874A
+#define GL_REPLACE_VALUE_AMD 0x874B
+#define GL_STENCIL_OP_VALUE_AMD 0x874C
+#define GL_STENCIL_BACK_OP_VALUE_AMD 0x874D
+typedef void (APIENTRYP PFNGLSTENCILOPVALUEAMDPROC) (GLenum face, GLuint value);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glStencilOpValueAMD (GLenum face, GLuint value);
+#endif
+#endif /* GL_AMD_stencil_operation_extended */
+
+#ifndef GL_AMD_texture_texture4
+#define GL_AMD_texture_texture4 1
+#endif /* GL_AMD_texture_texture4 */
+
+#ifndef GL_AMD_transform_feedback3_lines_triangles
+#define GL_AMD_transform_feedback3_lines_triangles 1
+#endif /* GL_AMD_transform_feedback3_lines_triangles */
+
+#ifndef GL_AMD_vertex_shader_layer
+#define GL_AMD_vertex_shader_layer 1
+#endif /* GL_AMD_vertex_shader_layer */
+
+#ifndef GL_AMD_vertex_shader_tessellator
+#define GL_AMD_vertex_shader_tessellator 1
+#define GL_SAMPLER_BUFFER_AMD 0x9001
+#define GL_INT_SAMPLER_BUFFER_AMD 0x9002
+#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003
+#define GL_TESSELLATION_MODE_AMD 0x9004
+#define GL_TESSELLATION_FACTOR_AMD 0x9005
+#define GL_DISCRETE_AMD 0x9006
+#define GL_CONTINUOUS_AMD 0x9007
+typedef void (APIENTRYP PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor);
+typedef void (APIENTRYP PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTessellationFactorAMD (GLfloat factor);
+GLAPI void APIENTRY glTessellationModeAMD (GLenum mode);
+#endif
+#endif /* GL_AMD_vertex_shader_tessellator */
+
+#ifndef GL_AMD_vertex_shader_viewport_index
+#define GL_AMD_vertex_shader_viewport_index 1
+#endif /* GL_AMD_vertex_shader_viewport_index */
+
+#ifndef GL_APPLE_aux_depth_stencil
+#define GL_APPLE_aux_depth_stencil 1
+#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14
+#endif /* GL_APPLE_aux_depth_stencil */
+
+#ifndef GL_APPLE_client_storage
+#define GL_APPLE_client_storage 1
+#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2
+#endif /* GL_APPLE_client_storage */
+
+#ifndef GL_APPLE_element_array
+#define GL_APPLE_element_array 1
+#define GL_ELEMENT_ARRAY_APPLE 0x8A0C
+#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D
+#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E
+typedef void (APIENTRYP PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const void *pointer);
+typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count);
+typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
+typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
+typedef void (APIENTRYP PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glElementPointerAPPLE (GLenum type, const void *pointer);
+GLAPI void APIENTRY glDrawElementArrayAPPLE (GLenum mode, GLint first, GLsizei count);
+GLAPI void APIENTRY glDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
+GLAPI void APIENTRY glMultiDrawElementArrayAPPLE (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
+GLAPI void APIENTRY glMultiDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount);
+#endif
+#endif /* GL_APPLE_element_array */
+
+#ifndef GL_APPLE_fence
+#define GL_APPLE_fence 1
+#define GL_DRAW_PIXELS_APPLE 0x8A0A
+#define GL_FENCE_APPLE 0x8A0B
+typedef void (APIENTRYP PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint *fences);
+typedef void (APIENTRYP PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint *fences);
+typedef void (APIENTRYP PFNGLSETFENCEAPPLEPROC) (GLuint fence);
+typedef GLboolean (APIENTRYP PFNGLISFENCEAPPLEPROC) (GLuint fence);
+typedef GLboolean (APIENTRYP PFNGLTESTFENCEAPPLEPROC) (GLuint fence);
+typedef void (APIENTRYP PFNGLFINISHFENCEAPPLEPROC) (GLuint fence);
+typedef GLboolean (APIENTRYP PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name);
+typedef void (APIENTRYP PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glGenFencesAPPLE (GLsizei n, GLuint *fences);
+GLAPI void APIENTRY glDeleteFencesAPPLE (GLsizei n, const GLuint *fences);
+GLAPI void APIENTRY glSetFenceAPPLE (GLuint fence);
+GLAPI GLboolean APIENTRY glIsFenceAPPLE (GLuint fence);
+GLAPI GLboolean APIENTRY glTestFenceAPPLE (GLuint fence);
+GLAPI void APIENTRY glFinishFenceAPPLE (GLuint fence);
+GLAPI GLboolean APIENTRY glTestObjectAPPLE (GLenum object, GLuint name);
+GLAPI void APIENTRY glFinishObjectAPPLE (GLenum object, GLint name);
+#endif
+#endif /* GL_APPLE_fence */
+
+#ifndef GL_APPLE_float_pixels
+#define GL_APPLE_float_pixels 1
+#define GL_HALF_APPLE 0x140B
+#define GL_RGBA_FLOAT32_APPLE 0x8814
+#define GL_RGB_FLOAT32_APPLE 0x8815
+#define GL_ALPHA_FLOAT32_APPLE 0x8816
+#define GL_INTENSITY_FLOAT32_APPLE 0x8817
+#define GL_LUMINANCE_FLOAT32_APPLE 0x8818
+#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819
+#define GL_RGBA_FLOAT16_APPLE 0x881A
+#define GL_RGB_FLOAT16_APPLE 0x881B
+#define GL_ALPHA_FLOAT16_APPLE 0x881C
+#define GL_INTENSITY_FLOAT16_APPLE 0x881D
+#define GL_LUMINANCE_FLOAT16_APPLE 0x881E
+#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F
+#define GL_COLOR_FLOAT_APPLE 0x8A0F
+#endif /* GL_APPLE_float_pixels */
+
+#ifndef GL_APPLE_flush_buffer_range
+#define GL_APPLE_flush_buffer_range 1
+#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12
+#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13
+typedef void (APIENTRYP PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBufferParameteriAPPLE (GLenum target, GLenum pname, GLint param);
+GLAPI void APIENTRY glFlushMappedBufferRangeAPPLE (GLenum target, GLintptr offset, GLsizeiptr size);
+#endif
+#endif /* GL_APPLE_flush_buffer_range */
+
+#ifndef GL_APPLE_object_purgeable
+#define GL_APPLE_object_purgeable 1
+#define GL_BUFFER_OBJECT_APPLE 0x85B3
+#define GL_RELEASED_APPLE 0x8A19
+#define GL_VOLATILE_APPLE 0x8A1A
+#define GL_RETAINED_APPLE 0x8A1B
+#define GL_UNDEFINED_APPLE 0x8A1C
+#define GL_PURGEABLE_APPLE 0x8A1D
+typedef GLenum (APIENTRYP PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option);
+typedef GLenum (APIENTRYP PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option);
+typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLenum APIENTRY glObjectPurgeableAPPLE (GLenum objectType, GLuint name, GLenum option);
+GLAPI GLenum APIENTRY glObjectUnpurgeableAPPLE (GLenum objectType, GLuint name, GLenum option);
+GLAPI void APIENTRY glGetObjectParameterivAPPLE (GLenum objectType, GLuint name, GLenum pname, GLint *params);
+#endif
+#endif /* GL_APPLE_object_purgeable */
+
+#ifndef GL_APPLE_rgb_422
+#define GL_APPLE_rgb_422 1
+#define GL_RGB_422_APPLE 0x8A1F
+#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA
+#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB
+#define GL_RGB_RAW_422_APPLE 0x8A51
+#endif /* GL_APPLE_rgb_422 */
+
+#ifndef GL_APPLE_row_bytes
+#define GL_APPLE_row_bytes 1
+#define GL_PACK_ROW_BYTES_APPLE 0x8A15
+#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16
+#endif /* GL_APPLE_row_bytes */
+
+#ifndef GL_APPLE_specular_vector
+#define GL_APPLE_specular_vector 1
+#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0
+#endif /* GL_APPLE_specular_vector */
+
+#ifndef GL_APPLE_texture_range
+#define GL_APPLE_texture_range 1
+#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7
+#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8
+#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC
+#define GL_STORAGE_PRIVATE_APPLE 0x85BD
+#define GL_STORAGE_CACHED_APPLE 0x85BE
+#define GL_STORAGE_SHARED_APPLE 0x85BF
+typedef void (APIENTRYP PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, const void *pointer);
+typedef void (APIENTRYP PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, void **params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTextureRangeAPPLE (GLenum target, GLsizei length, const void *pointer);
+GLAPI void APIENTRY glGetTexParameterPointervAPPLE (GLenum target, GLenum pname, void **params);
+#endif
+#endif /* GL_APPLE_texture_range */
+
+#ifndef GL_APPLE_transform_hint
+#define GL_APPLE_transform_hint 1
+#define GL_TRANSFORM_HINT_APPLE 0x85B1
+#endif /* GL_APPLE_transform_hint */
+
+#ifndef GL_APPLE_vertex_array_object
+#define GL_APPLE_vertex_array_object 1
+#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5
+typedef void (APIENTRYP PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array);
+typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays);
+typedef void (APIENTRYP PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, GLuint *arrays);
+typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBindVertexArrayAPPLE (GLuint array);
+GLAPI void APIENTRY glDeleteVertexArraysAPPLE (GLsizei n, const GLuint *arrays);
+GLAPI void APIENTRY glGenVertexArraysAPPLE (GLsizei n, GLuint *arrays);
+GLAPI GLboolean APIENTRY glIsVertexArrayAPPLE (GLuint array);
+#endif
+#endif /* GL_APPLE_vertex_array_object */
+
+#ifndef GL_APPLE_vertex_array_range
+#define GL_APPLE_vertex_array_range 1
+#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D
+#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E
+#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F
+#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521
+#define GL_STORAGE_CLIENT_APPLE 0x85B4
+typedef void (APIENTRYP PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer);
+typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer);
+typedef void (APIENTRYP PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVertexArrayRangeAPPLE (GLsizei length, void *pointer);
+GLAPI void APIENTRY glFlushVertexArrayRangeAPPLE (GLsizei length, void *pointer);
+GLAPI void APIENTRY glVertexArrayParameteriAPPLE (GLenum pname, GLint param);
+#endif
+#endif /* GL_APPLE_vertex_array_range */
+
+#ifndef GL_APPLE_vertex_program_evaluators
+#define GL_APPLE_vertex_program_evaluators 1
+#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00
+#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01
+#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02
+#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03
+#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04
+#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05
+#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06
+#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07
+#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08
+#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09
+typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname);
+typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname);
+typedef GLboolean (APIENTRYP PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname);
+typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
+typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
+typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
+typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glEnableVertexAttribAPPLE (GLuint index, GLenum pname);
+GLAPI void APIENTRY glDisableVertexAttribAPPLE (GLuint index, GLenum pname);
+GLAPI GLboolean APIENTRY glIsVertexAttribEnabledAPPLE (GLuint index, GLenum pname);
+GLAPI void APIENTRY glMapVertexAttrib1dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
+GLAPI void APIENTRY glMapVertexAttrib1fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
+GLAPI void APIENTRY glMapVertexAttrib2dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
+GLAPI void APIENTRY glMapVertexAttrib2fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
+#endif
+#endif /* GL_APPLE_vertex_program_evaluators */
+
+#ifndef GL_APPLE_ycbcr_422
+#define GL_APPLE_ycbcr_422 1
+#define GL_YCBCR_422_APPLE 0x85B9
+#endif /* GL_APPLE_ycbcr_422 */
+
+#ifndef GL_ATI_draw_buffers
+#define GL_ATI_draw_buffers 1
+#define GL_MAX_DRAW_BUFFERS_ATI 0x8824
+#define GL_DRAW_BUFFER0_ATI 0x8825
+#define GL_DRAW_BUFFER1_ATI 0x8826
+#define GL_DRAW_BUFFER2_ATI 0x8827
+#define GL_DRAW_BUFFER3_ATI 0x8828
+#define GL_DRAW_BUFFER4_ATI 0x8829
+#define GL_DRAW_BUFFER5_ATI 0x882A
+#define GL_DRAW_BUFFER6_ATI 0x882B
+#define GL_DRAW_BUFFER7_ATI 0x882C
+#define GL_DRAW_BUFFER8_ATI 0x882D
+#define GL_DRAW_BUFFER9_ATI 0x882E
+#define GL_DRAW_BUFFER10_ATI 0x882F
+#define GL_DRAW_BUFFER11_ATI 0x8830
+#define GL_DRAW_BUFFER12_ATI 0x8831
+#define GL_DRAW_BUFFER13_ATI 0x8832
+#define GL_DRAW_BUFFER14_ATI 0x8833
+#define GL_DRAW_BUFFER15_ATI 0x8834
+typedef void (APIENTRYP PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDrawBuffersATI (GLsizei n, const GLenum *bufs);
+#endif
+#endif /* GL_ATI_draw_buffers */
+
+#ifndef GL_ATI_element_array
+#define GL_ATI_element_array 1
+#define GL_ELEMENT_ARRAY_ATI 0x8768
+#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769
+#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A
+typedef void (APIENTRYP PFNGLELEMENTPOINTERATIPROC) (GLenum type, const void *pointer);
+typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count);
+typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glElementPointerATI (GLenum type, const void *pointer);
+GLAPI void APIENTRY glDrawElementArrayATI (GLenum mode, GLsizei count);
+GLAPI void APIENTRY glDrawRangeElementArrayATI (GLenum mode, GLuint start, GLuint end, GLsizei count);
+#endif
+#endif /* GL_ATI_element_array */
+
+#ifndef GL_ATI_envmap_bumpmap
+#define GL_ATI_envmap_bumpmap 1
+#define GL_BUMP_ROT_MATRIX_ATI 0x8775
+#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776
+#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777
+#define GL_BUMP_TEX_UNITS_ATI 0x8778
+#define GL_DUDV_ATI 0x8779
+#define GL_DU8DV8_ATI 0x877A
+#define GL_BUMP_ENVMAP_ATI 0x877B
+#define GL_BUMP_TARGET_ATI 0x877C
+typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param);
+typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param);
+typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param);
+typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTexBumpParameterivATI (GLenum pname, const GLint *param);
+GLAPI void APIENTRY glTexBumpParameterfvATI (GLenum pname, const GLfloat *param);
+GLAPI void APIENTRY glGetTexBumpParameterivATI (GLenum pname, GLint *param);
+GLAPI void APIENTRY glGetTexBumpParameterfvATI (GLenum pname, GLfloat *param);
+#endif
+#endif /* GL_ATI_envmap_bumpmap */
+
+#ifndef GL_ATI_fragment_shader
+#define GL_ATI_fragment_shader 1
+#define GL_FRAGMENT_SHADER_ATI 0x8920
+#define GL_REG_0_ATI 0x8921
+#define GL_REG_1_ATI 0x8922
+#define GL_REG_2_ATI 0x8923
+#define GL_REG_3_ATI 0x8924
+#define GL_REG_4_ATI 0x8925
+#define GL_REG_5_ATI 0x8926
+#define GL_REG_6_ATI 0x8927
+#define GL_REG_7_ATI 0x8928
+#define GL_REG_8_ATI 0x8929
+#define GL_REG_9_ATI 0x892A
+#define GL_REG_10_ATI 0x892B
+#define GL_REG_11_ATI 0x892C
+#define GL_REG_12_ATI 0x892D
+#define GL_REG_13_ATI 0x892E
+#define GL_REG_14_ATI 0x892F
+#define GL_REG_15_ATI 0x8930
+#define GL_REG_16_ATI 0x8931
+#define GL_REG_17_ATI 0x8932
+#define GL_REG_18_ATI 0x8933
+#define GL_REG_19_ATI 0x8934
+#define GL_REG_20_ATI 0x8935
+#define GL_REG_21_ATI 0x8936
+#define GL_REG_22_ATI 0x8937
+#define GL_REG_23_ATI 0x8938
+#define GL_REG_24_ATI 0x8939
+#define GL_REG_25_ATI 0x893A
+#define GL_REG_26_ATI 0x893B
+#define GL_REG_27_ATI 0x893C
+#define GL_REG_28_ATI 0x893D
+#define GL_REG_29_ATI 0x893E
+#define GL_REG_30_ATI 0x893F
+#define GL_REG_31_ATI 0x8940
+#define GL_CON_0_ATI 0x8941
+#define GL_CON_1_ATI 0x8942
+#define GL_CON_2_ATI 0x8943
+#define GL_CON_3_ATI 0x8944
+#define GL_CON_4_ATI 0x8945
+#define GL_CON_5_ATI 0x8946
+#define GL_CON_6_ATI 0x8947
+#define GL_CON_7_ATI 0x8948
+#define GL_CON_8_ATI 0x8949
+#define GL_CON_9_ATI 0x894A
+#define GL_CON_10_ATI 0x894B
+#define GL_CON_11_ATI 0x894C
+#define GL_CON_12_ATI 0x894D
+#define GL_CON_13_ATI 0x894E
+#define GL_CON_14_ATI 0x894F
+#define GL_CON_15_ATI 0x8950
+#define GL_CON_16_ATI 0x8951
+#define GL_CON_17_ATI 0x8952
+#define GL_CON_18_ATI 0x8953
+#define GL_CON_19_ATI 0x8954
+#define GL_CON_20_ATI 0x8955
+#define GL_CON_21_ATI 0x8956
+#define GL_CON_22_ATI 0x8957
+#define GL_CON_23_ATI 0x8958
+#define GL_CON_24_ATI 0x8959
+#define GL_CON_25_ATI 0x895A
+#define GL_CON_26_ATI 0x895B
+#define GL_CON_27_ATI 0x895C
+#define GL_CON_28_ATI 0x895D
+#define GL_CON_29_ATI 0x895E
+#define GL_CON_30_ATI 0x895F
+#define GL_CON_31_ATI 0x8960
+#define GL_MOV_ATI 0x8961
+#define GL_ADD_ATI 0x8963
+#define GL_MUL_ATI 0x8964
+#define GL_SUB_ATI 0x8965
+#define GL_DOT3_ATI 0x8966
+#define GL_DOT4_ATI 0x8967
+#define GL_MAD_ATI 0x8968
+#define GL_LERP_ATI 0x8969
+#define GL_CND_ATI 0x896A
+#define GL_CND0_ATI 0x896B
+#define GL_DOT2_ADD_ATI 0x896C
+#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D
+#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E
+#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F
+#define GL_NUM_PASSES_ATI 0x8970
+#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971
+#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972
+#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973
+#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974
+#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975
+#define GL_SWIZZLE_STR_ATI 0x8976
+#define GL_SWIZZLE_STQ_ATI 0x8977
+#define GL_SWIZZLE_STR_DR_ATI 0x8978
+#define GL_SWIZZLE_STQ_DQ_ATI 0x8979
+#define GL_SWIZZLE_STRQ_ATI 0x897A
+#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B
+#define GL_RED_BIT_ATI 0x00000001
+#define GL_GREEN_BIT_ATI 0x00000002
+#define GL_BLUE_BIT_ATI 0x00000004
+#define GL_2X_BIT_ATI 0x00000001
+#define GL_4X_BIT_ATI 0x00000002
+#define GL_8X_BIT_ATI 0x00000004
+#define GL_HALF_BIT_ATI 0x00000008
+#define GL_QUARTER_BIT_ATI 0x00000010
+#define GL_EIGHTH_BIT_ATI 0x00000020
+#define GL_SATURATE_BIT_ATI 0x00000040
+#define GL_COMP_BIT_ATI 0x00000002
+#define GL_NEGATE_BIT_ATI 0x00000004
+#define GL_BIAS_BIT_ATI 0x00000008
+typedef GLuint (APIENTRYP PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range);
+typedef void (APIENTRYP PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id);
+typedef void (APIENTRYP PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id);
+typedef void (APIENTRYP PFNGLBEGINFRAGMENTSHADERATIPROC) (void);
+typedef void (APIENTRYP PFNGLENDFRAGMENTSHADERATIPROC) (void);
+typedef void (APIENTRYP PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle);
+typedef void (APIENTRYP PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle);
+typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
+typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
+typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
+typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
+typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
+typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
+typedef void (APIENTRYP PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat *value);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLuint APIENTRY glGenFragmentShadersATI (GLuint range);
+GLAPI void APIENTRY glBindFragmentShaderATI (GLuint id);
+GLAPI void APIENTRY glDeleteFragmentShaderATI (GLuint id);
+GLAPI void APIENTRY glBeginFragmentShaderATI (void);
+GLAPI void APIENTRY glEndFragmentShaderATI (void);
+GLAPI void APIENTRY glPassTexCoordATI (GLuint dst, GLuint coord, GLenum swizzle);
+GLAPI void APIENTRY glSampleMapATI (GLuint dst, GLuint interp, GLenum swizzle);
+GLAPI void APIENTRY glColorFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
+GLAPI void APIENTRY glColorFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
+GLAPI void APIENTRY glColorFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
+GLAPI void APIENTRY glAlphaFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
+GLAPI void APIENTRY glAlphaFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
+GLAPI void APIENTRY glAlphaFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
+GLAPI void APIENTRY glSetFragmentShaderConstantATI (GLuint dst, const GLfloat *value);
+#endif
+#endif /* GL_ATI_fragment_shader */
+
+#ifndef GL_ATI_map_object_buffer
+#define GL_ATI_map_object_buffer 1
+typedef void *(APIENTRYP PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer);
+typedef void (APIENTRYP PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void *APIENTRY glMapObjectBufferATI (GLuint buffer);
+GLAPI void APIENTRY glUnmapObjectBufferATI (GLuint buffer);
+#endif
+#endif /* GL_ATI_map_object_buffer */
+
+#ifndef GL_ATI_meminfo
+#define GL_ATI_meminfo 1
+#define GL_VBO_FREE_MEMORY_ATI 0x87FB
+#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC
+#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD
+#endif /* GL_ATI_meminfo */
+
+#ifndef GL_ATI_pixel_format_float
+#define GL_ATI_pixel_format_float 1
+#define GL_RGBA_FLOAT_MODE_ATI 0x8820
+#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835
+#endif /* GL_ATI_pixel_format_float */
+
+#ifndef GL_ATI_pn_triangles
+#define GL_ATI_pn_triangles 1
+#define GL_PN_TRIANGLES_ATI 0x87F0
+#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1
+#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2
+#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3
+#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4
+#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5
+#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6
+#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7
+#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8
+typedef void (APIENTRYP PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPNTrianglesiATI (GLenum pname, GLint param);
+GLAPI void APIENTRY glPNTrianglesfATI (GLenum pname, GLfloat param);
+#endif
+#endif /* GL_ATI_pn_triangles */
+
+#ifndef GL_ATI_separate_stencil
+#define GL_ATI_separate_stencil 1
+#define GL_STENCIL_BACK_FUNC_ATI 0x8800
+#define GL_STENCIL_BACK_FAIL_ATI 0x8801
+#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802
+#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803
+typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glStencilOpSeparateATI (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+GLAPI void APIENTRY glStencilFuncSeparateATI (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
+#endif
+#endif /* GL_ATI_separate_stencil */
+
+#ifndef GL_ATI_text_fragment_shader
+#define GL_ATI_text_fragment_shader 1
+#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200
+#endif /* GL_ATI_text_fragment_shader */
+
+#ifndef GL_ATI_texture_env_combine3
+#define GL_ATI_texture_env_combine3 1
+#define GL_MODULATE_ADD_ATI 0x8744
+#define GL_MODULATE_SIGNED_ADD_ATI 0x8745
+#define GL_MODULATE_SUBTRACT_ATI 0x8746
+#endif /* GL_ATI_texture_env_combine3 */
+
+#ifndef GL_ATI_texture_float
+#define GL_ATI_texture_float 1
+#define GL_RGBA_FLOAT32_ATI 0x8814
+#define GL_RGB_FLOAT32_ATI 0x8815
+#define GL_ALPHA_FLOAT32_ATI 0x8816
+#define GL_INTENSITY_FLOAT32_ATI 0x8817
+#define GL_LUMINANCE_FLOAT32_ATI 0x8818
+#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819
+#define GL_RGBA_FLOAT16_ATI 0x881A
+#define GL_RGB_FLOAT16_ATI 0x881B
+#define GL_ALPHA_FLOAT16_ATI 0x881C
+#define GL_INTENSITY_FLOAT16_ATI 0x881D
+#define GL_LUMINANCE_FLOAT16_ATI 0x881E
+#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F
+#endif /* GL_ATI_texture_float */
+
+#ifndef GL_ATI_texture_mirror_once
+#define GL_ATI_texture_mirror_once 1
+#define GL_MIRROR_CLAMP_ATI 0x8742
+#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743
+#endif /* GL_ATI_texture_mirror_once */
+
+#ifndef GL_ATI_vertex_array_object
+#define GL_ATI_vertex_array_object 1
+#define GL_STATIC_ATI 0x8760
+#define GL_DYNAMIC_ATI 0x8761
+#define GL_PRESERVE_ATI 0x8762
+#define GL_DISCARD_ATI 0x8763
+#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764
+#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765
+#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766
+#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767
+typedef GLuint (APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const void *pointer, GLenum usage);
+typedef GLboolean (APIENTRYP PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer);
+typedef void (APIENTRYP PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve);
+typedef void (APIENTRYP PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer);
+typedef void (APIENTRYP PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
+typedef void (APIENTRYP PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
+typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLuint APIENTRY glNewObjectBufferATI (GLsizei size, const void *pointer, GLenum usage);
+GLAPI GLboolean APIENTRY glIsObjectBufferATI (GLuint buffer);
+GLAPI void APIENTRY glUpdateObjectBufferATI (GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve);
+GLAPI void APIENTRY glGetObjectBufferfvATI (GLuint buffer, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetObjectBufferivATI (GLuint buffer, GLenum pname, GLint *params);
+GLAPI void APIENTRY glFreeObjectBufferATI (GLuint buffer);
+GLAPI void APIENTRY glArrayObjectATI (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
+GLAPI void APIENTRY glGetArrayObjectfvATI (GLenum array, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetArrayObjectivATI (GLenum array, GLenum pname, GLint *params);
+GLAPI void APIENTRY glVariantArrayObjectATI (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
+GLAPI void APIENTRY glGetVariantArrayObjectfvATI (GLuint id, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetVariantArrayObjectivATI (GLuint id, GLenum pname, GLint *params);
+#endif
+#endif /* GL_ATI_vertex_array_object */
+
+#ifndef GL_ATI_vertex_attrib_array_object
+#define GL_ATI_vertex_attrib_array_object 1
+typedef void (APIENTRYP PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVertexAttribArrayObjectATI (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset);
+GLAPI void APIENTRY glGetVertexAttribArrayObjectfvATI (GLuint index, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetVertexAttribArrayObjectivATI (GLuint index, GLenum pname, GLint *params);
+#endif
+#endif /* GL_ATI_vertex_attrib_array_object */
+
+#ifndef GL_ATI_vertex_streams
+#define GL_ATI_vertex_streams 1
+#define GL_MAX_VERTEX_STREAMS_ATI 0x876B
+#define GL_VERTEX_STREAM0_ATI 0x876C
+#define GL_VERTEX_STREAM1_ATI 0x876D
+#define GL_VERTEX_STREAM2_ATI 0x876E
+#define GL_VERTEX_STREAM3_ATI 0x876F
+#define GL_VERTEX_STREAM4_ATI 0x8770
+#define GL_VERTEX_STREAM5_ATI 0x8771
+#define GL_VERTEX_STREAM6_ATI 0x8772
+#define GL_VERTEX_STREAM7_ATI 0x8773
+#define GL_VERTEX_SOURCE_ATI 0x8774
+typedef void (APIENTRYP PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRYP PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords);
+typedef void (APIENTRYP PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz);
+typedef void (APIENTRYP PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords);
+typedef void (APIENTRYP PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz);
+typedef void (APIENTRYP PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords);
+typedef void (APIENTRYP PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz);
+typedef void (APIENTRYP PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords);
+typedef void (APIENTRYP PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz);
+typedef void (APIENTRYP PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords);
+typedef void (APIENTRYP PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz);
+typedef void (APIENTRYP PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords);
+typedef void (APIENTRYP PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream);
+typedef void (APIENTRYP PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVertexStream1sATI (GLenum stream, GLshort x);
+GLAPI void APIENTRY glVertexStream1svATI (GLenum stream, const GLshort *coords);
+GLAPI void APIENTRY glVertexStream1iATI (GLenum stream, GLint x);
+GLAPI void APIENTRY glVertexStream1ivATI (GLenum stream, const GLint *coords);
+GLAPI void APIENTRY glVertexStream1fATI (GLenum stream, GLfloat x);
+GLAPI void APIENTRY glVertexStream1fvATI (GLenum stream, const GLfloat *coords);
+GLAPI void APIENTRY glVertexStream1dATI (GLenum stream, GLdouble x);
+GLAPI void APIENTRY glVertexStream1dvATI (GLenum stream, const GLdouble *coords);
+GLAPI void APIENTRY glVertexStream2sATI (GLenum stream, GLshort x, GLshort y);
+GLAPI void APIENTRY glVertexStream2svATI (GLenum stream, const GLshort *coords);
+GLAPI void APIENTRY glVertexStream2iATI (GLenum stream, GLint x, GLint y);
+GLAPI void APIENTRY glVertexStream2ivATI (GLenum stream, const GLint *coords);
+GLAPI void APIENTRY glVertexStream2fATI (GLenum stream, GLfloat x, GLfloat y);
+GLAPI void APIENTRY glVertexStream2fvATI (GLenum stream, const GLfloat *coords);
+GLAPI void APIENTRY glVertexStream2dATI (GLenum stream, GLdouble x, GLdouble y);
+GLAPI void APIENTRY glVertexStream2dvATI (GLenum stream, const GLdouble *coords);
+GLAPI void APIENTRY glVertexStream3sATI (GLenum stream, GLshort x, GLshort y, GLshort z);
+GLAPI void APIENTRY glVertexStream3svATI (GLenum stream, const GLshort *coords);
+GLAPI void APIENTRY glVertexStream3iATI (GLenum stream, GLint x, GLint y, GLint z);
+GLAPI void APIENTRY glVertexStream3ivATI (GLenum stream, const GLint *coords);
+GLAPI void APIENTRY glVertexStream3fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glVertexStream3fvATI (GLenum stream, const GLfloat *coords);
+GLAPI void APIENTRY glVertexStream3dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z);
+GLAPI void APIENTRY glVertexStream3dvATI (GLenum stream, const GLdouble *coords);
+GLAPI void APIENTRY glVertexStream4sATI (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w);
+GLAPI void APIENTRY glVertexStream4svATI (GLenum stream, const GLshort *coords);
+GLAPI void APIENTRY glVertexStream4iATI (GLenum stream, GLint x, GLint y, GLint z, GLint w);
+GLAPI void APIENTRY glVertexStream4ivATI (GLenum stream, const GLint *coords);
+GLAPI void APIENTRY glVertexStream4fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GLAPI void APIENTRY glVertexStream4fvATI (GLenum stream, const GLfloat *coords);
+GLAPI void APIENTRY glVertexStream4dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GLAPI void APIENTRY glVertexStream4dvATI (GLenum stream, const GLdouble *coords);
+GLAPI void APIENTRY glNormalStream3bATI (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz);
+GLAPI void APIENTRY glNormalStream3bvATI (GLenum stream, const GLbyte *coords);
+GLAPI void APIENTRY glNormalStream3sATI (GLenum stream, GLshort nx, GLshort ny, GLshort nz);
+GLAPI void APIENTRY glNormalStream3svATI (GLenum stream, const GLshort *coords);
+GLAPI void APIENTRY glNormalStream3iATI (GLenum stream, GLint nx, GLint ny, GLint nz);
+GLAPI void APIENTRY glNormalStream3ivATI (GLenum stream, const GLint *coords);
+GLAPI void APIENTRY glNormalStream3fATI (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz);
+GLAPI void APIENTRY glNormalStream3fvATI (GLenum stream, const GLfloat *coords);
+GLAPI void APIENTRY glNormalStream3dATI (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz);
+GLAPI void APIENTRY glNormalStream3dvATI (GLenum stream, const GLdouble *coords);
+GLAPI void APIENTRY glClientActiveVertexStreamATI (GLenum stream);
+GLAPI void APIENTRY glVertexBlendEnviATI (GLenum pname, GLint param);
+GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum pname, GLfloat param);
+#endif
+#endif /* GL_ATI_vertex_streams */
+
+#ifndef GL_EXT_422_pixels
+#define GL_EXT_422_pixels 1
+#define GL_422_EXT 0x80CC
+#define GL_422_REV_EXT 0x80CD
+#define GL_422_AVERAGE_EXT 0x80CE
+#define GL_422_REV_AVERAGE_EXT 0x80CF
+#endif /* GL_EXT_422_pixels */
+
+#ifndef GL_EXT_abgr
+#define GL_EXT_abgr 1
+#define GL_ABGR_EXT 0x8000
+#endif /* GL_EXT_abgr */
+
+#ifndef GL_EXT_bgra
+#define GL_EXT_bgra 1
+#define GL_BGR_EXT 0x80E0
+#define GL_BGRA_EXT 0x80E1
+#endif /* GL_EXT_bgra */
+
+#ifndef GL_EXT_bindable_uniform
+#define GL_EXT_bindable_uniform 1
+#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2
+#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3
+#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4
+#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED
+#define GL_UNIFORM_BUFFER_EXT 0x8DEE
+#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF
+typedef void (APIENTRYP PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer);
+typedef GLint (APIENTRYP PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location);
+typedef GLintptr (APIENTRYP PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glUniformBufferEXT (GLuint program, GLint location, GLuint buffer);
+GLAPI GLint APIENTRY glGetUniformBufferSizeEXT (GLuint program, GLint location);
+GLAPI GLintptr APIENTRY glGetUniformOffsetEXT (GLuint program, GLint location);
+#endif
+#endif /* GL_EXT_bindable_uniform */
+
+#ifndef GL_EXT_blend_color
+#define GL_EXT_blend_color 1
+#define GL_CONSTANT_COLOR_EXT 0x8001
+#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002
+#define GL_CONSTANT_ALPHA_EXT 0x8003
+#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004
+#define GL_BLEND_COLOR_EXT 0x8005
+typedef void (APIENTRYP PFNGLBLENDCOLOREXTPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBlendColorEXT (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+#endif
+#endif /* GL_EXT_blend_color */
+
+#ifndef GL_EXT_blend_equation_separate
+#define GL_EXT_blend_equation_separate 1
+#define GL_BLEND_EQUATION_RGB_EXT 0x8009
+#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D
+typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBlendEquationSeparateEXT (GLenum modeRGB, GLenum modeAlpha);
+#endif
+#endif /* GL_EXT_blend_equation_separate */
+
+#ifndef GL_EXT_blend_func_separate
+#define GL_EXT_blend_func_separate 1
+#define GL_BLEND_DST_RGB_EXT 0x80C8
+#define GL_BLEND_SRC_RGB_EXT 0x80C9
+#define GL_BLEND_DST_ALPHA_EXT 0x80CA
+#define GL_BLEND_SRC_ALPHA_EXT 0x80CB
+typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBlendFuncSeparateEXT (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+#endif
+#endif /* GL_EXT_blend_func_separate */
+
+#ifndef GL_EXT_blend_logic_op
+#define GL_EXT_blend_logic_op 1
+#endif /* GL_EXT_blend_logic_op */
+
+#ifndef GL_EXT_blend_minmax
+#define GL_EXT_blend_minmax 1
+#define GL_MIN_EXT 0x8007
+#define GL_MAX_EXT 0x8008
+#define GL_FUNC_ADD_EXT 0x8006
+#define GL_BLEND_EQUATION_EXT 0x8009
+typedef void (APIENTRYP PFNGLBLENDEQUATIONEXTPROC) (GLenum mode);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBlendEquationEXT (GLenum mode);
+#endif
+#endif /* GL_EXT_blend_minmax */
+
+#ifndef GL_EXT_blend_subtract
+#define GL_EXT_blend_subtract 1
+#define GL_FUNC_SUBTRACT_EXT 0x800A
+#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B
+#endif /* GL_EXT_blend_subtract */
+
+#ifndef GL_EXT_clip_volume_hint
+#define GL_EXT_clip_volume_hint 1
+#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0
+#endif /* GL_EXT_clip_volume_hint */
+
+#ifndef GL_EXT_cmyka
+#define GL_EXT_cmyka 1
+#define GL_CMYK_EXT 0x800C
+#define GL_CMYKA_EXT 0x800D
+#define GL_PACK_CMYK_HINT_EXT 0x800E
+#define GL_UNPACK_CMYK_HINT_EXT 0x800F
+#endif /* GL_EXT_cmyka */
+
+#ifndef GL_EXT_color_subtable
+#define GL_EXT_color_subtable 1
+typedef void (APIENTRYP PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data);
+typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glColorSubTableEXT (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data);
+GLAPI void APIENTRY glCopyColorSubTableEXT (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+#endif
+#endif /* GL_EXT_color_subtable */
+
+#ifndef GL_EXT_compiled_vertex_array
+#define GL_EXT_compiled_vertex_array 1
+#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8
+#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9
+typedef void (APIENTRYP PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count);
+typedef void (APIENTRYP PFNGLUNLOCKARRAYSEXTPROC) (void);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glLockArraysEXT (GLint first, GLsizei count);
+GLAPI void APIENTRY glUnlockArraysEXT (void);
+#endif
+#endif /* GL_EXT_compiled_vertex_array */
+
+#ifndef GL_EXT_convolution
+#define GL_EXT_convolution 1
+#define GL_CONVOLUTION_1D_EXT 0x8010
+#define GL_CONVOLUTION_2D_EXT 0x8011
+#define GL_SEPARABLE_2D_EXT 0x8012
+#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013
+#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014
+#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015
+#define GL_REDUCE_EXT 0x8016
+#define GL_CONVOLUTION_FORMAT_EXT 0x8017
+#define GL_CONVOLUTION_WIDTH_EXT 0x8018
+#define GL_CONVOLUTION_HEIGHT_EXT 0x8019
+#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A
+#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B
+#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C
+#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D
+#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E
+#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F
+#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020
+#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021
+#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022
+#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023
+typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image);
+typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image);
+typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params);
+typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params);
+typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *image);
+typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span);
+typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image);
+GLAPI void APIENTRY glConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image);
+GLAPI void APIENTRY glConvolutionParameterfEXT (GLenum target, GLenum pname, GLfloat params);
+GLAPI void APIENTRY glConvolutionParameterfvEXT (GLenum target, GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glConvolutionParameteriEXT (GLenum target, GLenum pname, GLint params);
+GLAPI void APIENTRY glConvolutionParameterivEXT (GLenum target, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glCopyConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+GLAPI void APIENTRY glCopyConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
+GLAPI void APIENTRY glGetConvolutionFilterEXT (GLenum target, GLenum format, GLenum type, void *image);
+GLAPI void APIENTRY glGetConvolutionParameterfvEXT (GLenum target, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetConvolutionParameterivEXT (GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetSeparableFilterEXT (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span);
+GLAPI void APIENTRY glSeparableFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column);
+#endif
+#endif /* GL_EXT_convolution */
+
+#ifndef GL_EXT_coordinate_frame
+#define GL_EXT_coordinate_frame 1
+#define GL_TANGENT_ARRAY_EXT 0x8439
+#define GL_BINORMAL_ARRAY_EXT 0x843A
+#define GL_CURRENT_TANGENT_EXT 0x843B
+#define GL_CURRENT_BINORMAL_EXT 0x843C
+#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E
+#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F
+#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440
+#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441
+#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442
+#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443
+#define GL_MAP1_TANGENT_EXT 0x8444
+#define GL_MAP2_TANGENT_EXT 0x8445
+#define GL_MAP1_BINORMAL_EXT 0x8446
+#define GL_MAP2_BINORMAL_EXT 0x8447
+typedef void (APIENTRYP PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz);
+typedef void (APIENTRYP PFNGLTANGENT3BVEXTPROC) (const GLbyte *v);
+typedef void (APIENTRYP PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz);
+typedef void (APIENTRYP PFNGLTANGENT3DVEXTPROC) (const GLdouble *v);
+typedef void (APIENTRYP PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz);
+typedef void (APIENTRYP PFNGLTANGENT3FVEXTPROC) (const GLfloat *v);
+typedef void (APIENTRYP PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz);
+typedef void (APIENTRYP PFNGLTANGENT3IVEXTPROC) (const GLint *v);
+typedef void (APIENTRYP PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz);
+typedef void (APIENTRYP PFNGLTANGENT3SVEXTPROC) (const GLshort *v);
+typedef void (APIENTRYP PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz);
+typedef void (APIENTRYP PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v);
+typedef void (APIENTRYP PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz);
+typedef void (APIENTRYP PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v);
+typedef void (APIENTRYP PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz);
+typedef void (APIENTRYP PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v);
+typedef void (APIENTRYP PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz);
+typedef void (APIENTRYP PFNGLBINORMAL3IVEXTPROC) (const GLint *v);
+typedef void (APIENTRYP PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz);
+typedef void (APIENTRYP PFNGLBINORMAL3SVEXTPROC) (const GLshort *v);
+typedef void (APIENTRYP PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer);
+typedef void (APIENTRYP PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTangent3bEXT (GLbyte tx, GLbyte ty, GLbyte tz);
+GLAPI void APIENTRY glTangent3bvEXT (const GLbyte *v);
+GLAPI void APIENTRY glTangent3dEXT (GLdouble tx, GLdouble ty, GLdouble tz);
+GLAPI void APIENTRY glTangent3dvEXT (const GLdouble *v);
+GLAPI void APIENTRY glTangent3fEXT (GLfloat tx, GLfloat ty, GLfloat tz);
+GLAPI void APIENTRY glTangent3fvEXT (const GLfloat *v);
+GLAPI void APIENTRY glTangent3iEXT (GLint tx, GLint ty, GLint tz);
+GLAPI void APIENTRY glTangent3ivEXT (const GLint *v);
+GLAPI void APIENTRY glTangent3sEXT (GLshort tx, GLshort ty, GLshort tz);
+GLAPI void APIENTRY glTangent3svEXT (const GLshort *v);
+GLAPI void APIENTRY glBinormal3bEXT (GLbyte bx, GLbyte by, GLbyte bz);
+GLAPI void APIENTRY glBinormal3bvEXT (const GLbyte *v);
+GLAPI void APIENTRY glBinormal3dEXT (GLdouble bx, GLdouble by, GLdouble bz);
+GLAPI void APIENTRY glBinormal3dvEXT (const GLdouble *v);
+GLAPI void APIENTRY glBinormal3fEXT (GLfloat bx, GLfloat by, GLfloat bz);
+GLAPI void APIENTRY glBinormal3fvEXT (const GLfloat *v);
+GLAPI void APIENTRY glBinormal3iEXT (GLint bx, GLint by, GLint bz);
+GLAPI void APIENTRY glBinormal3ivEXT (const GLint *v);
+GLAPI void APIENTRY glBinormal3sEXT (GLshort bx, GLshort by, GLshort bz);
+GLAPI void APIENTRY glBinormal3svEXT (const GLshort *v);
+GLAPI void APIENTRY glTangentPointerEXT (GLenum type, GLsizei stride, const void *pointer);
+GLAPI void APIENTRY glBinormalPointerEXT (GLenum type, GLsizei stride, const void *pointer);
+#endif
+#endif /* GL_EXT_coordinate_frame */
+
+#ifndef GL_EXT_copy_texture
+#define GL_EXT_copy_texture 1
+typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glCopyTexImage1DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+GLAPI void APIENTRY glCopyTexImage2DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+GLAPI void APIENTRY glCopyTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+GLAPI void APIENTRY glCopyTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+GLAPI void APIENTRY glCopyTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+#endif
+#endif /* GL_EXT_copy_texture */
+
+#ifndef GL_EXT_cull_vertex
+#define GL_EXT_cull_vertex 1
+#define GL_CULL_VERTEX_EXT 0x81AA
+#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB
+#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC
+typedef void (APIENTRYP PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params);
+typedef void (APIENTRYP PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glCullParameterdvEXT (GLenum pname, GLdouble *params);
+GLAPI void APIENTRY glCullParameterfvEXT (GLenum pname, GLfloat *params);
+#endif
+#endif /* GL_EXT_cull_vertex */
+
+#ifndef GL_EXT_debug_label
+#define GL_EXT_debug_label 1
+#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F
+#define GL_PROGRAM_OBJECT_EXT 0x8B40
+#define GL_SHADER_OBJECT_EXT 0x8B48
+#define GL_BUFFER_OBJECT_EXT 0x9151
+#define GL_QUERY_OBJECT_EXT 0x9153
+#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154
+typedef void (APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label);
+typedef void (APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label);
+GLAPI void APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
+#endif
+#endif /* GL_EXT_debug_label */
+
+#ifndef GL_EXT_debug_marker
+#define GL_EXT_debug_marker 1
+typedef void (APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker);
+typedef void (APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker);
+typedef void (APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker);
+GLAPI void APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker);
+GLAPI void APIENTRY glPopGroupMarkerEXT (void);
+#endif
+#endif /* GL_EXT_debug_marker */
+
+#ifndef GL_EXT_depth_bounds_test
+#define GL_EXT_depth_bounds_test 1
+#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890
+#define GL_DEPTH_BOUNDS_EXT 0x8891
+typedef void (APIENTRYP PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDepthBoundsEXT (GLclampd zmin, GLclampd zmax);
+#endif
+#endif /* GL_EXT_depth_bounds_test */
+
+#ifndef GL_EXT_direct_state_access
+#define GL_EXT_direct_state_access 1
+#define GL_PROGRAM_MATRIX_EXT 0x8E2D
+#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E
+#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F
+typedef void (APIENTRYP PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m);
+typedef void (APIENTRYP PFNGLMATRIXLOADDEXTPROC) (GLenum mode, const GLdouble *m);
+typedef void (APIENTRYP PFNGLMATRIXMULTFEXTPROC) (GLenum mode, const GLfloat *m);
+typedef void (APIENTRYP PFNGLMATRIXMULTDEXTPROC) (GLenum mode, const GLdouble *m);
+typedef void (APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode);
+typedef void (APIENTRYP PFNGLMATRIXROTATEFEXTPROC) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLMATRIXROTATEDEXTPROC) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNGLMATRIXSCALEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLMATRIXSCALEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNGLMATRIXFRUSTUMEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+typedef void (APIENTRYP PFNGLMATRIXORTHOEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+typedef void (APIENTRYP PFNGLMATRIXPOPEXTPROC) (GLenum mode);
+typedef void (APIENTRYP PFNGLMATRIXPUSHEXTPROC) (GLenum mode);
+typedef void (APIENTRYP PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask);
+typedef void (APIENTRYP PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask);
+typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
+typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
+typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
+typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
+typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
+typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
+typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
+typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture);
+typedef void (APIENTRYP PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer);
+typedef void (APIENTRYP PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param);
+typedef void (APIENTRYP PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params);
+typedef void (APIENTRYP PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
+typedef void (APIENTRYP PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
+typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
+typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
+typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
+typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
+typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
+typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index);
+typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index);
+typedef void (APIENTRYP PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat *data);
+typedef void (APIENTRYP PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble *data);
+typedef void (APIENTRYP PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, void **data);
+typedef void (APIENTRYP PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
+typedef void (APIENTRYP PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
+typedef GLboolean (APIENTRYP PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index);
+typedef void (APIENTRYP PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLint *data);
+typedef void (APIENTRYP PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum target, GLuint index, GLboolean *data);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits);
+typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint lod, void *img);
+typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits);
+typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits);
+typedef void (APIENTRYP PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint lod, void *img);
+typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m);
+typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m);
+typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m);
+typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m);
+typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
+typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
+typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access);
+typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer);
+typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, void **params);
+typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+typedef void (APIENTRYP PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer);
+typedef void (APIENTRYP PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer);
+typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint *params);
+typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint *params);
+typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint *params);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint *params);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint *params);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params);
+typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint *params);
+typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint *params);
+typedef void (APIENTRYP PFNGLENABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index);
+typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index);
+typedef void (APIENTRYP PFNGLGETFLOATI_VEXTPROC) (GLenum pname, GLuint index, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETDOUBLEI_VEXTPROC) (GLenum pname, GLuint index, GLdouble *params);
+typedef void (APIENTRYP PFNGLGETPOINTERI_VEXTPROC) (GLenum pname, GLuint index, void **params);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const void *string);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble *params);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat *params);
+typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble *params);
+typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, void *string);
+typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target);
+typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target);
+typedef void (APIENTRYP PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum *bufs);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode);
+typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
+typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face);
+typedef void (APIENTRYP PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer);
+typedef void (APIENTRYP PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer);
+typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (APIENTRYP PFNGLVERTEXARRAYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (APIENTRYP PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset);
+typedef void (APIENTRYP PFNGLVERTEXARRAYINDEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (APIENTRYP PFNGLVERTEXARRAYNORMALOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (APIENTRYP PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (APIENTRYP PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (APIENTRYP PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (APIENTRYP PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset);
+typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (APIENTRYP PFNGLENABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array);
+typedef void (APIENTRYP PFNGLDISABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array);
+typedef void (APIENTRYP PFNGLENABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index);
+typedef void (APIENTRYP PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index);
+typedef void (APIENTRYP PFNGLGETVERTEXARRAYINTEGERVEXTPROC) (GLuint vaobj, GLenum pname, GLint *param);
+typedef void (APIENTRYP PFNGLGETVERTEXARRAYPOINTERVEXTPROC) (GLuint vaobj, GLenum pname, void **param);
+typedef void (APIENTRYP PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint *param);
+typedef void (APIENTRYP PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, void **param);
+typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
+typedef void (APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length);
+typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
+typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
+typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, GLsizeiptr offset, GLsizeiptr size, const void *data);
+typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC) (GLuint framebuffer, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DEXTPROC) (GLuint program, GLint location, GLdouble x);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+typedef void (APIENTRYP PFNGLTEXTUREBUFFERRANGEEXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
+typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+typedef void (APIENTRYP PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
+typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
+typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex);
+typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor);
+typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (APIENTRYP PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean resident);
+typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC) (GLuint vaobj, GLuint index, GLuint divisor);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glMatrixLoadfEXT (GLenum mode, const GLfloat *m);
+GLAPI void APIENTRY glMatrixLoaddEXT (GLenum mode, const GLdouble *m);
+GLAPI void APIENTRY glMatrixMultfEXT (GLenum mode, const GLfloat *m);
+GLAPI void APIENTRY glMatrixMultdEXT (GLenum mode, const GLdouble *m);
+GLAPI void APIENTRY glMatrixLoadIdentityEXT (GLenum mode);
+GLAPI void APIENTRY glMatrixRotatefEXT (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glMatrixRotatedEXT (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+GLAPI void APIENTRY glMatrixScalefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glMatrixScaledEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z);
+GLAPI void APIENTRY glMatrixTranslatefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glMatrixTranslatedEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z);
+GLAPI void APIENTRY glMatrixFrustumEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLAPI void APIENTRY glMatrixOrthoEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLAPI void APIENTRY glMatrixPopEXT (GLenum mode);
+GLAPI void APIENTRY glMatrixPushEXT (GLenum mode);
+GLAPI void APIENTRY glClientAttribDefaultEXT (GLbitfield mask);
+GLAPI void APIENTRY glPushClientAttribDefaultEXT (GLbitfield mask);
+GLAPI void APIENTRY glTextureParameterfEXT (GLuint texture, GLenum target, GLenum pname, GLfloat param);
+GLAPI void APIENTRY glTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glTextureParameteriEXT (GLuint texture, GLenum target, GLenum pname, GLint param);
+GLAPI void APIENTRY glTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
+GLAPI void APIENTRY glTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
+GLAPI void APIENTRY glTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
+GLAPI void APIENTRY glTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
+GLAPI void APIENTRY glCopyTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+GLAPI void APIENTRY glCopyTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+GLAPI void APIENTRY glCopyTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+GLAPI void APIENTRY glCopyTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+GLAPI void APIENTRY glGetTextureImageEXT (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
+GLAPI void APIENTRY glGetTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetTextureLevelParameterfvEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetTextureLevelParameterivEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params);
+GLAPI void APIENTRY glTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
+GLAPI void APIENTRY glTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
+GLAPI void APIENTRY glCopyTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+GLAPI void APIENTRY glBindMultiTextureEXT (GLenum texunit, GLenum target, GLuint texture);
+GLAPI void APIENTRY glMultiTexCoordPointerEXT (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer);
+GLAPI void APIENTRY glMultiTexEnvfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param);
+GLAPI void APIENTRY glMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glMultiTexEnviEXT (GLenum texunit, GLenum target, GLenum pname, GLint param);
+GLAPI void APIENTRY glMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glMultiTexGendEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble param);
+GLAPI void APIENTRY glMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params);
+GLAPI void APIENTRY glMultiTexGenfEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat param);
+GLAPI void APIENTRY glMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glMultiTexGeniEXT (GLenum texunit, GLenum coord, GLenum pname, GLint param);
+GLAPI void APIENTRY glMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glGetMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params);
+GLAPI void APIENTRY glGetMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, GLint *params);
+GLAPI void APIENTRY glMultiTexParameteriEXT (GLenum texunit, GLenum target, GLenum pname, GLint param);
+GLAPI void APIENTRY glMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glMultiTexParameterfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param);
+GLAPI void APIENTRY glMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
+GLAPI void APIENTRY glMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
+GLAPI void APIENTRY glMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
+GLAPI void APIENTRY glMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
+GLAPI void APIENTRY glCopyMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+GLAPI void APIENTRY glCopyMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+GLAPI void APIENTRY glCopyMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+GLAPI void APIENTRY glCopyMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+GLAPI void APIENTRY glGetMultiTexImageEXT (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
+GLAPI void APIENTRY glGetMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetMultiTexLevelParameterfvEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetMultiTexLevelParameterivEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params);
+GLAPI void APIENTRY glMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
+GLAPI void APIENTRY glMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
+GLAPI void APIENTRY glCopyMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+GLAPI void APIENTRY glEnableClientStateIndexedEXT (GLenum array, GLuint index);
+GLAPI void APIENTRY glDisableClientStateIndexedEXT (GLenum array, GLuint index);
+GLAPI void APIENTRY glGetFloatIndexedvEXT (GLenum target, GLuint index, GLfloat *data);
+GLAPI void APIENTRY glGetDoubleIndexedvEXT (GLenum target, GLuint index, GLdouble *data);
+GLAPI void APIENTRY glGetPointerIndexedvEXT (GLenum target, GLuint index, void **data);
+GLAPI void APIENTRY glEnableIndexedEXT (GLenum target, GLuint index);
+GLAPI void APIENTRY glDisableIndexedEXT (GLenum target, GLuint index);
+GLAPI GLboolean APIENTRY glIsEnabledIndexedEXT (GLenum target, GLuint index);
+GLAPI void APIENTRY glGetIntegerIndexedvEXT (GLenum target, GLuint index, GLint *data);
+GLAPI void APIENTRY glGetBooleanIndexedvEXT (GLenum target, GLuint index, GLboolean *data);
+GLAPI void APIENTRY glCompressedTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits);
+GLAPI void APIENTRY glCompressedTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits);
+GLAPI void APIENTRY glCompressedTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits);
+GLAPI void APIENTRY glCompressedTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits);
+GLAPI void APIENTRY glCompressedTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits);
+GLAPI void APIENTRY glCompressedTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits);
+GLAPI void APIENTRY glGetCompressedTextureImageEXT (GLuint texture, GLenum target, GLint lod, void *img);
+GLAPI void APIENTRY glCompressedMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits);
+GLAPI void APIENTRY glCompressedMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits);
+GLAPI void APIENTRY glCompressedMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits);
+GLAPI void APIENTRY glCompressedMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits);
+GLAPI void APIENTRY glCompressedMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits);
+GLAPI void APIENTRY glCompressedMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits);
+GLAPI void APIENTRY glGetCompressedMultiTexImageEXT (GLenum texunit, GLenum target, GLint lod, void *img);
+GLAPI void APIENTRY glMatrixLoadTransposefEXT (GLenum mode, const GLfloat *m);
+GLAPI void APIENTRY glMatrixLoadTransposedEXT (GLenum mode, const GLdouble *m);
+GLAPI void APIENTRY glMatrixMultTransposefEXT (GLenum mode, const GLfloat *m);
+GLAPI void APIENTRY glMatrixMultTransposedEXT (GLenum mode, const GLdouble *m);
+GLAPI void APIENTRY glNamedBufferDataEXT (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
+GLAPI void APIENTRY glNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
+GLAPI void *APIENTRY glMapNamedBufferEXT (GLuint buffer, GLenum access);
+GLAPI GLboolean APIENTRY glUnmapNamedBufferEXT (GLuint buffer);
+GLAPI void APIENTRY glGetNamedBufferParameterivEXT (GLuint buffer, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetNamedBufferPointervEXT (GLuint buffer, GLenum pname, void **params);
+GLAPI void APIENTRY glGetNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
+GLAPI void APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat v0);
+GLAPI void APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1);
+GLAPI void APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+GLAPI void APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+GLAPI void APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint v0);
+GLAPI void APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint v0, GLint v1);
+GLAPI void APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
+GLAPI void APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+GLAPI void APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
+GLAPI void APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
+GLAPI void APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
+GLAPI void APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value);
+GLAPI void APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniformMatrix2x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniformMatrix3x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniformMatrix2x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniformMatrix4x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniformMatrix3x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
+GLAPI void APIENTRY glTextureBufferEXT (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer);
+GLAPI void APIENTRY glMultiTexBufferEXT (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer);
+GLAPI void APIENTRY glTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, const GLuint *params);
+GLAPI void APIENTRY glGetTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, GLuint *params);
+GLAPI void APIENTRY glMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, const GLuint *params);
+GLAPI void APIENTRY glGetMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, GLuint *params);
+GLAPI void APIENTRY glProgramUniform1uiEXT (GLuint program, GLint location, GLuint v0);
+GLAPI void APIENTRY glProgramUniform2uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1);
+GLAPI void APIENTRY glProgramUniform3uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
+GLAPI void APIENTRY glProgramUniform4uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+GLAPI void APIENTRY glProgramUniform1uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value);
+GLAPI void APIENTRY glProgramUniform2uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value);
+GLAPI void APIENTRY glProgramUniform3uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value);
+GLAPI void APIENTRY glProgramUniform4uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value);
+GLAPI void APIENTRY glNamedProgramLocalParameters4fvEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params);
+GLAPI void APIENTRY glNamedProgramLocalParameterI4iEXT (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
+GLAPI void APIENTRY glNamedProgramLocalParameterI4ivEXT (GLuint program, GLenum target, GLuint index, const GLint *params);
+GLAPI void APIENTRY glNamedProgramLocalParametersI4ivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params);
+GLAPI void APIENTRY glNamedProgramLocalParameterI4uiEXT (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+GLAPI void APIENTRY glNamedProgramLocalParameterI4uivEXT (GLuint program, GLenum target, GLuint index, const GLuint *params);
+GLAPI void APIENTRY glNamedProgramLocalParametersI4uivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params);
+GLAPI void APIENTRY glGetNamedProgramLocalParameterIivEXT (GLuint program, GLenum target, GLuint index, GLint *params);
+GLAPI void APIENTRY glGetNamedProgramLocalParameterIuivEXT (GLuint program, GLenum target, GLuint index, GLuint *params);
+GLAPI void APIENTRY glEnableClientStateiEXT (GLenum array, GLuint index);
+GLAPI void APIENTRY glDisableClientStateiEXT (GLenum array, GLuint index);
+GLAPI void APIENTRY glGetFloati_vEXT (GLenum pname, GLuint index, GLfloat *params);
+GLAPI void APIENTRY glGetDoublei_vEXT (GLenum pname, GLuint index, GLdouble *params);
+GLAPI void APIENTRY glGetPointeri_vEXT (GLenum pname, GLuint index, void **params);
+GLAPI void APIENTRY glNamedProgramStringEXT (GLuint program, GLenum target, GLenum format, GLsizei len, const void *string);
+GLAPI void APIENTRY glNamedProgramLocalParameter4dEXT (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GLAPI void APIENTRY glNamedProgramLocalParameter4dvEXT (GLuint program, GLenum target, GLuint index, const GLdouble *params);
+GLAPI void APIENTRY glNamedProgramLocalParameter4fEXT (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GLAPI void APIENTRY glNamedProgramLocalParameter4fvEXT (GLuint program, GLenum target, GLuint index, const GLfloat *params);
+GLAPI void APIENTRY glGetNamedProgramLocalParameterdvEXT (GLuint program, GLenum target, GLuint index, GLdouble *params);
+GLAPI void APIENTRY glGetNamedProgramLocalParameterfvEXT (GLuint program, GLenum target, GLuint index, GLfloat *params);
+GLAPI void APIENTRY glGetNamedProgramivEXT (GLuint program, GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetNamedProgramStringEXT (GLuint program, GLenum target, GLenum pname, void *string);
+GLAPI void APIENTRY glNamedRenderbufferStorageEXT (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
+GLAPI void APIENTRY glGetNamedRenderbufferParameterivEXT (GLuint renderbuffer, GLenum pname, GLint *params);
+GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleEXT (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleCoverageEXT (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
+GLAPI GLenum APIENTRY glCheckNamedFramebufferStatusEXT (GLuint framebuffer, GLenum target);
+GLAPI void APIENTRY glNamedFramebufferTexture1DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLAPI void APIENTRY glNamedFramebufferTexture2DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLAPI void APIENTRY glNamedFramebufferTexture3DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+GLAPI void APIENTRY glNamedFramebufferRenderbufferEXT (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+GLAPI void APIENTRY glGetNamedFramebufferAttachmentParameterivEXT (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGenerateTextureMipmapEXT (GLuint texture, GLenum target);
+GLAPI void APIENTRY glGenerateMultiTexMipmapEXT (GLenum texunit, GLenum target);
+GLAPI void APIENTRY glFramebufferDrawBufferEXT (GLuint framebuffer, GLenum mode);
+GLAPI void APIENTRY glFramebufferDrawBuffersEXT (GLuint framebuffer, GLsizei n, const GLenum *bufs);
+GLAPI void APIENTRY glFramebufferReadBufferEXT (GLuint framebuffer, GLenum mode);
+GLAPI void APIENTRY glGetFramebufferParameterivEXT (GLuint framebuffer, GLenum pname, GLint *params);
+GLAPI void APIENTRY glNamedCopyBufferSubDataEXT (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+GLAPI void APIENTRY glNamedFramebufferTextureEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
+GLAPI void APIENTRY glNamedFramebufferTextureLayerEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
+GLAPI void APIENTRY glNamedFramebufferTextureFaceEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face);
+GLAPI void APIENTRY glTextureRenderbufferEXT (GLuint texture, GLenum target, GLuint renderbuffer);
+GLAPI void APIENTRY glMultiTexRenderbufferEXT (GLenum texunit, GLenum target, GLuint renderbuffer);
+GLAPI void APIENTRY glVertexArrayVertexOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+GLAPI void APIENTRY glVertexArrayColorOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+GLAPI void APIENTRY glVertexArrayEdgeFlagOffsetEXT (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset);
+GLAPI void APIENTRY glVertexArrayIndexOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
+GLAPI void APIENTRY glVertexArrayNormalOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
+GLAPI void APIENTRY glVertexArrayTexCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+GLAPI void APIENTRY glVertexArrayMultiTexCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+GLAPI void APIENTRY glVertexArrayFogCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
+GLAPI void APIENTRY glVertexArraySecondaryColorOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+GLAPI void APIENTRY glVertexArrayVertexAttribOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset);
+GLAPI void APIENTRY glVertexArrayVertexAttribIOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+GLAPI void APIENTRY glEnableVertexArrayEXT (GLuint vaobj, GLenum array);
+GLAPI void APIENTRY glDisableVertexArrayEXT (GLuint vaobj, GLenum array);
+GLAPI void APIENTRY glEnableVertexArrayAttribEXT (GLuint vaobj, GLuint index);
+GLAPI void APIENTRY glDisableVertexArrayAttribEXT (GLuint vaobj, GLuint index);
+GLAPI void APIENTRY glGetVertexArrayIntegervEXT (GLuint vaobj, GLenum pname, GLint *param);
+GLAPI void APIENTRY glGetVertexArrayPointervEXT (GLuint vaobj, GLenum pname, void **param);
+GLAPI void APIENTRY glGetVertexArrayIntegeri_vEXT (GLuint vaobj, GLuint index, GLenum pname, GLint *param);
+GLAPI void APIENTRY glGetVertexArrayPointeri_vEXT (GLuint vaobj, GLuint index, GLenum pname, void **param);
+GLAPI void *APIENTRY glMapNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
+GLAPI void APIENTRY glFlushMappedNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length);
+GLAPI void APIENTRY glNamedBufferStorageEXT (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
+GLAPI void APIENTRY glClearNamedBufferDataEXT (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
+GLAPI void APIENTRY glClearNamedBufferSubDataEXT (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, GLsizeiptr offset, GLsizeiptr size, const void *data);
+GLAPI void APIENTRY glNamedFramebufferParameteriEXT (GLuint framebuffer, GLenum pname, GLint param);
+GLAPI void APIENTRY glGetNamedFramebufferParameterivEXT (GLuint framebuffer, GLenum pname, GLint *params);
+GLAPI void APIENTRY glProgramUniform1dEXT (GLuint program, GLint location, GLdouble x);
+GLAPI void APIENTRY glProgramUniform2dEXT (GLuint program, GLint location, GLdouble x, GLdouble y);
+GLAPI void APIENTRY glProgramUniform3dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z);
+GLAPI void APIENTRY glProgramUniform4dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GLAPI void APIENTRY glProgramUniform1dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniform2dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniform3dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniform4dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniformMatrix2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniformMatrix3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniformMatrix4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniformMatrix2x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniformMatrix2x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniformMatrix3x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniformMatrix3x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniformMatrix4x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glProgramUniformMatrix4x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
+GLAPI void APIENTRY glTextureBufferRangeEXT (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+GLAPI void APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
+GLAPI void APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+GLAPI void APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+GLAPI void APIENTRY glTextureStorage2DMultisampleEXT (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+GLAPI void APIENTRY glTextureStorage3DMultisampleEXT (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+GLAPI void APIENTRY glVertexArrayBindVertexBufferEXT (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
+GLAPI void APIENTRY glVertexArrayVertexAttribFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
+GLAPI void APIENTRY glVertexArrayVertexAttribIFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+GLAPI void APIENTRY glVertexArrayVertexAttribLFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+GLAPI void APIENTRY glVertexArrayVertexAttribBindingEXT (GLuint vaobj, GLuint attribindex, GLuint bindingindex);
+GLAPI void APIENTRY glVertexArrayVertexBindingDivisorEXT (GLuint vaobj, GLuint bindingindex, GLuint divisor);
+GLAPI void APIENTRY glVertexArrayVertexAttribLOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+GLAPI void APIENTRY glTexturePageCommitmentEXT (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean resident);
+GLAPI void APIENTRY glVertexArrayVertexAttribDivisorEXT (GLuint vaobj, GLuint index, GLuint divisor);
+#endif
+#endif /* GL_EXT_direct_state_access */
+
+#ifndef GL_EXT_draw_buffers2
+#define GL_EXT_draw_buffers2 1
+typedef void (APIENTRYP PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glColorMaskIndexedEXT (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+#endif
+#endif /* GL_EXT_draw_buffers2 */
+
+#ifndef GL_EXT_draw_instanced
+#define GL_EXT_draw_instanced 1
+typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount);
+typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount);
+GLAPI void APIENTRY glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
+#endif
+#endif /* GL_EXT_draw_instanced */
+
+#ifndef GL_EXT_draw_range_elements
+#define GL_EXT_draw_range_elements 1
+#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8
+#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9
+typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDrawRangeElementsEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices);
+#endif
+#endif /* GL_EXT_draw_range_elements */
+
+#ifndef GL_EXT_fog_coord
+#define GL_EXT_fog_coord 1
+#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450
+#define GL_FOG_COORDINATE_EXT 0x8451
+#define GL_FRAGMENT_DEPTH_EXT 0x8452
+#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453
+#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454
+#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455
+#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456
+#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457
+typedef void (APIENTRYP PFNGLFOGCOORDFEXTPROC) (GLfloat coord);
+typedef void (APIENTRYP PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord);
+typedef void (APIENTRYP PFNGLFOGCOORDDEXTPROC) (GLdouble coord);
+typedef void (APIENTRYP PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord);
+typedef void (APIENTRYP PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFogCoordfEXT (GLfloat coord);
+GLAPI void APIENTRY glFogCoordfvEXT (const GLfloat *coord);
+GLAPI void APIENTRY glFogCoorddEXT (GLdouble coord);
+GLAPI void APIENTRY glFogCoorddvEXT (const GLdouble *coord);
+GLAPI void APIENTRY glFogCoordPointerEXT (GLenum type, GLsizei stride, const void *pointer);
+#endif
+#endif /* GL_EXT_fog_coord */
+
+#ifndef GL_EXT_framebuffer_blit
+#define GL_EXT_framebuffer_blit 1
+#define GL_READ_FRAMEBUFFER_EXT 0x8CA8
+#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9
+#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6
+#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA
+typedef void (APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBlitFramebufferEXT (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+#endif
+#endif /* GL_EXT_framebuffer_blit */
+
+#ifndef GL_EXT_framebuffer_multisample
+#define GL_EXT_framebuffer_multisample 1
+#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
+#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
+#define GL_MAX_SAMPLES_EXT 0x8D57
+typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+#endif
+#endif /* GL_EXT_framebuffer_multisample */
+
+#ifndef GL_EXT_framebuffer_multisample_blit_scaled
+#define GL_EXT_framebuffer_multisample_blit_scaled 1
+#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA
+#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB
+#endif /* GL_EXT_framebuffer_multisample_blit_scaled */
+
+#ifndef GL_EXT_framebuffer_object
+#define GL_EXT_framebuffer_object 1
+#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506
+#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8
+#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6
+#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4
+#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
+#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6
+#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7
+#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9
+#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA
+#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB
+#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC
+#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD
+#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
+#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
+#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1
+#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2
+#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3
+#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4
+#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5
+#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6
+#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7
+#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8
+#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9
+#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA
+#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB
+#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC
+#define GL_COLOR_ATTACHMENT13_EXT 0x8CED
+#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE
+#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF
+#define GL_DEPTH_ATTACHMENT_EXT 0x8D00
+#define GL_STENCIL_ATTACHMENT_EXT 0x8D20
+#define GL_FRAMEBUFFER_EXT 0x8D40
+#define GL_RENDERBUFFER_EXT 0x8D41
+#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42
+#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43
+#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44
+#define GL_STENCIL_INDEX1_EXT 0x8D46
+#define GL_STENCIL_INDEX4_EXT 0x8D47
+#define GL_STENCIL_INDEX8_EXT 0x8D48
+#define GL_STENCIL_INDEX16_EXT 0x8D49
+#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50
+#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51
+#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52
+#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53
+#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54
+#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55
+typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer);
+typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer);
+typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers);
+typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers);
+typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
+typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer);
+typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer);
+typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers);
+typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers);
+typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC) (GLenum target);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLboolean APIENTRY glIsRenderbufferEXT (GLuint renderbuffer);
+GLAPI void APIENTRY glBindRenderbufferEXT (GLenum target, GLuint renderbuffer);
+GLAPI void APIENTRY glDeleteRenderbuffersEXT (GLsizei n, const GLuint *renderbuffers);
+GLAPI void APIENTRY glGenRenderbuffersEXT (GLsizei n, GLuint *renderbuffers);
+GLAPI void APIENTRY glRenderbufferStorageEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+GLAPI void APIENTRY glGetRenderbufferParameterivEXT (GLenum target, GLenum pname, GLint *params);
+GLAPI GLboolean APIENTRY glIsFramebufferEXT (GLuint framebuffer);
+GLAPI void APIENTRY glBindFramebufferEXT (GLenum target, GLuint framebuffer);
+GLAPI void APIENTRY glDeleteFramebuffersEXT (GLsizei n, const GLuint *framebuffers);
+GLAPI void APIENTRY glGenFramebuffersEXT (GLsizei n, GLuint *framebuffers);
+GLAPI GLenum APIENTRY glCheckFramebufferStatusEXT (GLenum target);
+GLAPI void APIENTRY glFramebufferTexture1DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLAPI void APIENTRY glFramebufferTexture2DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLAPI void APIENTRY glFramebufferTexture3DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+GLAPI void APIENTRY glFramebufferRenderbufferEXT (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+GLAPI void APIENTRY glGetFramebufferAttachmentParameterivEXT (GLenum target, GLenum attachment, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGenerateMipmapEXT (GLenum target);
+#endif
+#endif /* GL_EXT_framebuffer_object */
+
+#ifndef GL_EXT_framebuffer_sRGB
+#define GL_EXT_framebuffer_sRGB 1
+#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
+#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA
+#endif /* GL_EXT_framebuffer_sRGB */
+
+#ifndef GL_EXT_geometry_shader4
+#define GL_EXT_geometry_shader4 1
+#define GL_GEOMETRY_SHADER_EXT 0x8DD9
+#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA
+#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB
+#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC
+#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
+#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD
+#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE
+#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B
+#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF
+#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
+#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1
+#define GL_LINES_ADJACENCY_EXT 0x000A
+#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B
+#define GL_TRIANGLES_ADJACENCY_EXT 0x000C
+#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9
+#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4
+#define GL_PROGRAM_POINT_SIZE_EXT 0x8642
+typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value);
+#endif
+#endif /* GL_EXT_geometry_shader4 */
+
+#ifndef GL_EXT_gpu_program_parameters
+#define GL_EXT_gpu_program_parameters 1
+typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params);
+typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glProgramEnvParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat *params);
+GLAPI void APIENTRY glProgramLocalParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat *params);
+#endif
+#endif /* GL_EXT_gpu_program_parameters */
+
+#ifndef GL_EXT_gpu_shader4
+#define GL_EXT_gpu_shader4 1
+#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD
+#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0
+#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1
+#define GL_SAMPLER_BUFFER_EXT 0x8DC2
+#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3
+#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4
+#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5
+#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6
+#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7
+#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8
+#define GL_INT_SAMPLER_1D_EXT 0x8DC9
+#define GL_INT_SAMPLER_2D_EXT 0x8DCA
+#define GL_INT_SAMPLER_3D_EXT 0x8DCB
+#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC
+#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD
+#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE
+#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF
+#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0
+#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1
+#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2
+#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3
+#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4
+#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5
+#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6
+#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7
+#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8
+#define GL_MIN_PROGRAM_TEXEL_OFFSET_EXT 0x8904
+#define GL_MAX_PROGRAM_TEXEL_OFFSET_EXT 0x8905
+typedef void (APIENTRYP PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params);
+typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name);
+typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name);
+typedef void (APIENTRYP PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0);
+typedef void (APIENTRYP PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1);
+typedef void (APIENTRYP PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
+typedef void (APIENTRYP PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+typedef void (APIENTRYP PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
+typedef void (APIENTRYP PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glGetUniformuivEXT (GLuint program, GLint location, GLuint *params);
+GLAPI void APIENTRY glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name);
+GLAPI GLint APIENTRY glGetFragDataLocationEXT (GLuint program, const GLchar *name);
+GLAPI void APIENTRY glUniform1uiEXT (GLint location, GLuint v0);
+GLAPI void APIENTRY glUniform2uiEXT (GLint location, GLuint v0, GLuint v1);
+GLAPI void APIENTRY glUniform3uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2);
+GLAPI void APIENTRY glUniform4uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+GLAPI void APIENTRY glUniform1uivEXT (GLint location, GLsizei count, const GLuint *value);
+GLAPI void APIENTRY glUniform2uivEXT (GLint location, GLsizei count, const GLuint *value);
+GLAPI void APIENTRY glUniform3uivEXT (GLint location, GLsizei count, const GLuint *value);
+GLAPI void APIENTRY glUniform4uivEXT (GLint location, GLsizei count, const GLuint *value);
+#endif
+#endif /* GL_EXT_gpu_shader4 */
+
+#ifndef GL_EXT_histogram
+#define GL_EXT_histogram 1
+#define GL_HISTOGRAM_EXT 0x8024
+#define GL_PROXY_HISTOGRAM_EXT 0x8025
+#define GL_HISTOGRAM_WIDTH_EXT 0x8026
+#define GL_HISTOGRAM_FORMAT_EXT 0x8027
+#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028
+#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029
+#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A
+#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B
+#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C
+#define GL_HISTOGRAM_SINK_EXT 0x802D
+#define GL_MINMAX_EXT 0x802E
+#define GL_MINMAX_FORMAT_EXT 0x802F
+#define GL_MINMAX_SINK_EXT 0x8030
+#define GL_TABLE_TOO_LARGE_EXT 0x8031
+typedef void (APIENTRYP PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values);
+typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values);
+typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
+typedef void (APIENTRYP PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink);
+typedef void (APIENTRYP PFNGLRESETHISTOGRAMEXTPROC) (GLenum target);
+typedef void (APIENTRYP PFNGLRESETMINMAXEXTPROC) (GLenum target);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glGetHistogramEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values);
+GLAPI void APIENTRY glGetHistogramParameterfvEXT (GLenum target, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetHistogramParameterivEXT (GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetMinmaxEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values);
+GLAPI void APIENTRY glGetMinmaxParameterfvEXT (GLenum target, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetMinmaxParameterivEXT (GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glHistogramEXT (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
+GLAPI void APIENTRY glMinmaxEXT (GLenum target, GLenum internalformat, GLboolean sink);
+GLAPI void APIENTRY glResetHistogramEXT (GLenum target);
+GLAPI void APIENTRY glResetMinmaxEXT (GLenum target);
+#endif
+#endif /* GL_EXT_histogram */
+
+#ifndef GL_EXT_index_array_formats
+#define GL_EXT_index_array_formats 1
+#define GL_IUI_V2F_EXT 0x81AD
+#define GL_IUI_V3F_EXT 0x81AE
+#define GL_IUI_N3F_V2F_EXT 0x81AF
+#define GL_IUI_N3F_V3F_EXT 0x81B0
+#define GL_T2F_IUI_V2F_EXT 0x81B1
+#define GL_T2F_IUI_V3F_EXT 0x81B2
+#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3
+#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4
+#endif /* GL_EXT_index_array_formats */
+
+#ifndef GL_EXT_index_func
+#define GL_EXT_index_func 1
+#define GL_INDEX_TEST_EXT 0x81B5
+#define GL_INDEX_TEST_FUNC_EXT 0x81B6
+#define GL_INDEX_TEST_REF_EXT 0x81B7
+typedef void (APIENTRYP PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glIndexFuncEXT (GLenum func, GLclampf ref);
+#endif
+#endif /* GL_EXT_index_func */
+
+#ifndef GL_EXT_index_material
+#define GL_EXT_index_material 1
+#define GL_INDEX_MATERIAL_EXT 0x81B8
+#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9
+#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA
+typedef void (APIENTRYP PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glIndexMaterialEXT (GLenum face, GLenum mode);
+#endif
+#endif /* GL_EXT_index_material */
+
+#ifndef GL_EXT_index_texture
+#define GL_EXT_index_texture 1
+#endif /* GL_EXT_index_texture */
+
+#ifndef GL_EXT_light_texture
+#define GL_EXT_light_texture 1
+#define GL_FRAGMENT_MATERIAL_EXT 0x8349
+#define GL_FRAGMENT_NORMAL_EXT 0x834A
+#define GL_FRAGMENT_COLOR_EXT 0x834C
+#define GL_ATTENUATION_EXT 0x834D
+#define GL_SHADOW_ATTENUATION_EXT 0x834E
+#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F
+#define GL_TEXTURE_LIGHT_EXT 0x8350
+#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351
+#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352
+typedef void (APIENTRYP PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode);
+typedef void (APIENTRYP PFNGLTEXTURELIGHTEXTPROC) (GLenum pname);
+typedef void (APIENTRYP PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glApplyTextureEXT (GLenum mode);
+GLAPI void APIENTRY glTextureLightEXT (GLenum pname);
+GLAPI void APIENTRY glTextureMaterialEXT (GLenum face, GLenum mode);
+#endif
+#endif /* GL_EXT_light_texture */
+
+#ifndef GL_EXT_misc_attribute
+#define GL_EXT_misc_attribute 1
+#endif /* GL_EXT_misc_attribute */
+
+#ifndef GL_EXT_multi_draw_arrays
+#define GL_EXT_multi_draw_arrays 1
+typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
+typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glMultiDrawArraysEXT (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
+GLAPI void APIENTRY glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount);
+#endif
+#endif /* GL_EXT_multi_draw_arrays */
+
+#ifndef GL_EXT_multisample
+#define GL_EXT_multisample 1
+#define GL_MULTISAMPLE_EXT 0x809D
+#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F
+#define GL_SAMPLE_MASK_EXT 0x80A0
+#define GL_1PASS_EXT 0x80A1
+#define GL_2PASS_0_EXT 0x80A2
+#define GL_2PASS_1_EXT 0x80A3
+#define GL_4PASS_0_EXT 0x80A4
+#define GL_4PASS_1_EXT 0x80A5
+#define GL_4PASS_2_EXT 0x80A6
+#define GL_4PASS_3_EXT 0x80A7
+#define GL_SAMPLE_BUFFERS_EXT 0x80A8
+#define GL_SAMPLES_EXT 0x80A9
+#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA
+#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB
+#define GL_SAMPLE_PATTERN_EXT 0x80AC
+#define GL_MULTISAMPLE_BIT_EXT 0x20000000
+typedef void (APIENTRYP PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert);
+typedef void (APIENTRYP PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glSampleMaskEXT (GLclampf value, GLboolean invert);
+GLAPI void APIENTRY glSamplePatternEXT (GLenum pattern);
+#endif
+#endif /* GL_EXT_multisample */
+
+#ifndef GL_EXT_packed_depth_stencil
+#define GL_EXT_packed_depth_stencil 1
+#define GL_DEPTH_STENCIL_EXT 0x84F9
+#define GL_UNSIGNED_INT_24_8_EXT 0x84FA
+#define GL_DEPTH24_STENCIL8_EXT 0x88F0
+#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1
+#endif /* GL_EXT_packed_depth_stencil */
+
+#ifndef GL_EXT_packed_float
+#define GL_EXT_packed_float 1
+#define GL_R11F_G11F_B10F_EXT 0x8C3A
+#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B
+#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C
+#endif /* GL_EXT_packed_float */
+
+#ifndef GL_EXT_packed_pixels
+#define GL_EXT_packed_pixels 1
+#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032
+#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033
+#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034
+#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035
+#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036
+#endif /* GL_EXT_packed_pixels */
+
+#ifndef GL_EXT_paletted_texture
+#define GL_EXT_paletted_texture 1
+#define GL_COLOR_INDEX1_EXT 0x80E2
+#define GL_COLOR_INDEX2_EXT 0x80E3
+#define GL_COLOR_INDEX4_EXT 0x80E4
+#define GL_COLOR_INDEX8_EXT 0x80E5
+#define GL_COLOR_INDEX12_EXT 0x80E6
+#define GL_COLOR_INDEX16_EXT 0x80E7
+#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED
+typedef void (APIENTRYP PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *table);
+typedef void (APIENTRYP PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, void *data);
+typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glColorTableEXT (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *table);
+GLAPI void APIENTRY glGetColorTableEXT (GLenum target, GLenum format, GLenum type, void *data);
+GLAPI void APIENTRY glGetColorTableParameterivEXT (GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetColorTableParameterfvEXT (GLenum target, GLenum pname, GLfloat *params);
+#endif
+#endif /* GL_EXT_paletted_texture */
+
+#ifndef GL_EXT_pixel_buffer_object
+#define GL_EXT_pixel_buffer_object 1
+#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB
+#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC
+#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED
+#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF
+#endif /* GL_EXT_pixel_buffer_object */
+
+#ifndef GL_EXT_pixel_transform
+#define GL_EXT_pixel_transform 1
+#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330
+#define GL_PIXEL_MAG_FILTER_EXT 0x8331
+#define GL_PIXEL_MIN_FILTER_EXT 0x8332
+#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333
+#define GL_CUBIC_EXT 0x8334
+#define GL_AVERAGE_EXT 0x8335
+#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336
+#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337
+#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338
+typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPixelTransformParameteriEXT (GLenum target, GLenum pname, GLint param);
+GLAPI void APIENTRY glPixelTransformParameterfEXT (GLenum target, GLenum pname, GLfloat param);
+GLAPI void APIENTRY glPixelTransformParameterivEXT (GLenum target, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glPixelTransformParameterfvEXT (GLenum target, GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glGetPixelTransformParameterivEXT (GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetPixelTransformParameterfvEXT (GLenum target, GLenum pname, GLfloat *params);
+#endif
+#endif /* GL_EXT_pixel_transform */
+
+#ifndef GL_EXT_pixel_transform_color_table
+#define GL_EXT_pixel_transform_color_table 1
+#endif /* GL_EXT_pixel_transform_color_table */
+
+#ifndef GL_EXT_point_parameters
+#define GL_EXT_point_parameters 1
+#define GL_POINT_SIZE_MIN_EXT 0x8126
+#define GL_POINT_SIZE_MAX_EXT 0x8127
+#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128
+#define GL_DISTANCE_ATTENUATION_EXT 0x8129
+typedef void (APIENTRYP PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPointParameterfEXT (GLenum pname, GLfloat param);
+GLAPI void APIENTRY glPointParameterfvEXT (GLenum pname, const GLfloat *params);
+#endif
+#endif /* GL_EXT_point_parameters */
+
+#ifndef GL_EXT_polygon_offset
+#define GL_EXT_polygon_offset 1
+#define GL_POLYGON_OFFSET_EXT 0x8037
+#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038
+#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039
+typedef void (APIENTRYP PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPolygonOffsetEXT (GLfloat factor, GLfloat bias);
+#endif
+#endif /* GL_EXT_polygon_offset */
+
+#ifndef GL_EXT_provoking_vertex
+#define GL_EXT_provoking_vertex 1
+#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C
+#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D
+#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E
+#define GL_PROVOKING_VERTEX_EXT 0x8E4F
+typedef void (APIENTRYP PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glProvokingVertexEXT (GLenum mode);
+#endif
+#endif /* GL_EXT_provoking_vertex */
+
+#ifndef GL_EXT_rescale_normal
+#define GL_EXT_rescale_normal 1
+#define GL_RESCALE_NORMAL_EXT 0x803A
+#endif /* GL_EXT_rescale_normal */
+
+#ifndef GL_EXT_secondary_color
+#define GL_EXT_secondary_color 1
+#define GL_COLOR_SUM_EXT 0x8458
+#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459
+#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A
+#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B
+#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C
+#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D
+#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v);
+typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glSecondaryColor3bEXT (GLbyte red, GLbyte green, GLbyte blue);
+GLAPI void APIENTRY glSecondaryColor3bvEXT (const GLbyte *v);
+GLAPI void APIENTRY glSecondaryColor3dEXT (GLdouble red, GLdouble green, GLdouble blue);
+GLAPI void APIENTRY glSecondaryColor3dvEXT (const GLdouble *v);
+GLAPI void APIENTRY glSecondaryColor3fEXT (GLfloat red, GLfloat green, GLfloat blue);
+GLAPI void APIENTRY glSecondaryColor3fvEXT (const GLfloat *v);
+GLAPI void APIENTRY glSecondaryColor3iEXT (GLint red, GLint green, GLint blue);
+GLAPI void APIENTRY glSecondaryColor3ivEXT (const GLint *v);
+GLAPI void APIENTRY glSecondaryColor3sEXT (GLshort red, GLshort green, GLshort blue);
+GLAPI void APIENTRY glSecondaryColor3svEXT (const GLshort *v);
+GLAPI void APIENTRY glSecondaryColor3ubEXT (GLubyte red, GLubyte green, GLubyte blue);
+GLAPI void APIENTRY glSecondaryColor3ubvEXT (const GLubyte *v);
+GLAPI void APIENTRY glSecondaryColor3uiEXT (GLuint red, GLuint green, GLuint blue);
+GLAPI void APIENTRY glSecondaryColor3uivEXT (const GLuint *v);
+GLAPI void APIENTRY glSecondaryColor3usEXT (GLushort red, GLushort green, GLushort blue);
+GLAPI void APIENTRY glSecondaryColor3usvEXT (const GLushort *v);
+GLAPI void APIENTRY glSecondaryColorPointerEXT (GLint size, GLenum type, GLsizei stride, const void *pointer);
+#endif
+#endif /* GL_EXT_secondary_color */
+
+#ifndef GL_EXT_separate_shader_objects
+#define GL_EXT_separate_shader_objects 1
+#define GL_ACTIVE_PROGRAM_EXT 0x8B8D
+typedef void (APIENTRYP PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program);
+typedef void (APIENTRYP PFNGLACTIVEPROGRAMEXTPROC) (GLuint program);
+typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMEXTPROC) (GLenum type, const GLchar *string);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glUseShaderProgramEXT (GLenum type, GLuint program);
+GLAPI void APIENTRY glActiveProgramEXT (GLuint program);
+GLAPI GLuint APIENTRY glCreateShaderProgramEXT (GLenum type, const GLchar *string);
+#endif
+#endif /* GL_EXT_separate_shader_objects */
+
+#ifndef GL_EXT_separate_specular_color
+#define GL_EXT_separate_specular_color 1
+#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8
+#define GL_SINGLE_COLOR_EXT 0x81F9
+#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA
+#endif /* GL_EXT_separate_specular_color */
+
+#ifndef GL_EXT_shader_image_load_store
+#define GL_EXT_shader_image_load_store 1
+#define GL_MAX_IMAGE_UNITS_EXT 0x8F38
+#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39
+#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A
+#define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B
+#define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C
+#define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D
+#define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E
+#define GL_IMAGE_1D_EXT 0x904C
+#define GL_IMAGE_2D_EXT 0x904D
+#define GL_IMAGE_3D_EXT 0x904E
+#define GL_IMAGE_2D_RECT_EXT 0x904F
+#define GL_IMAGE_CUBE_EXT 0x9050
+#define GL_IMAGE_BUFFER_EXT 0x9051
+#define GL_IMAGE_1D_ARRAY_EXT 0x9052
+#define GL_IMAGE_2D_ARRAY_EXT 0x9053
+#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054
+#define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055
+#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056
+#define GL_INT_IMAGE_1D_EXT 0x9057
+#define GL_INT_IMAGE_2D_EXT 0x9058
+#define GL_INT_IMAGE_3D_EXT 0x9059
+#define GL_INT_IMAGE_2D_RECT_EXT 0x905A
+#define GL_INT_IMAGE_CUBE_EXT 0x905B
+#define GL_INT_IMAGE_BUFFER_EXT 0x905C
+#define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D
+#define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E
+#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F
+#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060
+#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061
+#define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062
+#define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063
+#define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064
+#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065
+#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066
+#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067
+#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068
+#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069
+#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C
+#define GL_MAX_IMAGE_SAMPLES_EXT 0x906D
+#define GL_IMAGE_BINDING_FORMAT_EXT 0x906E
+#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001
+#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002
+#define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004
+#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008
+#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020
+#define GL_COMMAND_BARRIER_BIT_EXT 0x00000040
+#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080
+#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100
+#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200
+#define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400
+#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800
+#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000
+#define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF
+typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format);
+typedef void (APIENTRYP PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBindImageTextureEXT (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format);
+GLAPI void APIENTRY glMemoryBarrierEXT (GLbitfield barriers);
+#endif
+#endif /* GL_EXT_shader_image_load_store */
+
+#ifndef GL_EXT_shader_integer_mix
+#define GL_EXT_shader_integer_mix 1
+#endif /* GL_EXT_shader_integer_mix */
+
+#ifndef GL_EXT_shadow_funcs
+#define GL_EXT_shadow_funcs 1
+#endif /* GL_EXT_shadow_funcs */
+
+#ifndef GL_EXT_shared_texture_palette
+#define GL_EXT_shared_texture_palette 1
+#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB
+#endif /* GL_EXT_shared_texture_palette */
+
+#ifndef GL_EXT_stencil_clear_tag
+#define GL_EXT_stencil_clear_tag 1
+#define GL_STENCIL_TAG_BITS_EXT 0x88F2
+#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3
+typedef void (APIENTRYP PFNGLSTENCILCLEARTAGEXTPROC) (GLsizei stencilTagBits, GLuint stencilClearTag);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glStencilClearTagEXT (GLsizei stencilTagBits, GLuint stencilClearTag);
+#endif
+#endif /* GL_EXT_stencil_clear_tag */
+
+#ifndef GL_EXT_stencil_two_side
+#define GL_EXT_stencil_two_side 1
+#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910
+#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911
+typedef void (APIENTRYP PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glActiveStencilFaceEXT (GLenum face);
+#endif
+#endif /* GL_EXT_stencil_two_side */
+
+#ifndef GL_EXT_stencil_wrap
+#define GL_EXT_stencil_wrap 1
+#define GL_INCR_WRAP_EXT 0x8507
+#define GL_DECR_WRAP_EXT 0x8508
+#endif /* GL_EXT_stencil_wrap */
+
+#ifndef GL_EXT_subtexture
+#define GL_EXT_subtexture 1
+typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
+typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
+GLAPI void APIENTRY glTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
+#endif
+#endif /* GL_EXT_subtexture */
+
+#ifndef GL_EXT_texture
+#define GL_EXT_texture 1
+#define GL_ALPHA4_EXT 0x803B
+#define GL_ALPHA8_EXT 0x803C
+#define GL_ALPHA12_EXT 0x803D
+#define GL_ALPHA16_EXT 0x803E
+#define GL_LUMINANCE4_EXT 0x803F
+#define GL_LUMINANCE8_EXT 0x8040
+#define GL_LUMINANCE12_EXT 0x8041
+#define GL_LUMINANCE16_EXT 0x8042
+#define GL_LUMINANCE4_ALPHA4_EXT 0x8043
+#define GL_LUMINANCE6_ALPHA2_EXT 0x8044
+#define GL_LUMINANCE8_ALPHA8_EXT 0x8045
+#define GL_LUMINANCE12_ALPHA4_EXT 0x8046
+#define GL_LUMINANCE12_ALPHA12_EXT 0x8047
+#define GL_LUMINANCE16_ALPHA16_EXT 0x8048
+#define GL_INTENSITY_EXT 0x8049
+#define GL_INTENSITY4_EXT 0x804A
+#define GL_INTENSITY8_EXT 0x804B
+#define GL_INTENSITY12_EXT 0x804C
+#define GL_INTENSITY16_EXT 0x804D
+#define GL_RGB2_EXT 0x804E
+#define GL_RGB4_EXT 0x804F
+#define GL_RGB5_EXT 0x8050
+#define GL_RGB8_EXT 0x8051
+#define GL_RGB10_EXT 0x8052
+#define GL_RGB12_EXT 0x8053
+#define GL_RGB16_EXT 0x8054
+#define GL_RGBA2_EXT 0x8055
+#define GL_RGBA4_EXT 0x8056
+#define GL_RGB5_A1_EXT 0x8057
+#define GL_RGBA8_EXT 0x8058
+#define GL_RGB10_A2_EXT 0x8059
+#define GL_RGBA12_EXT 0x805A
+#define GL_RGBA16_EXT 0x805B
+#define GL_TEXTURE_RED_SIZE_EXT 0x805C
+#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D
+#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E
+#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F
+#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060
+#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061
+#define GL_REPLACE_EXT 0x8062
+#define GL_PROXY_TEXTURE_1D_EXT 0x8063
+#define GL_PROXY_TEXTURE_2D_EXT 0x8064
+#define GL_TEXTURE_TOO_LARGE_EXT 0x8065
+#endif /* GL_EXT_texture */
+
+#ifndef GL_EXT_texture3D
+#define GL_EXT_texture3D 1
+#define GL_PACK_SKIP_IMAGES_EXT 0x806B
+#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C
+#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D
+#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E
+#define GL_TEXTURE_3D_EXT 0x806F
+#define GL_PROXY_TEXTURE_3D_EXT 0x8070
+#define GL_TEXTURE_DEPTH_EXT 0x8071
+#define GL_TEXTURE_WRAP_R_EXT 0x8072
+#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073
+typedef void (APIENTRYP PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
+typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTexImage3DEXT (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels);
+GLAPI void APIENTRY glTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
+#endif
+#endif /* GL_EXT_texture3D */
+
+#ifndef GL_EXT_texture_array
+#define GL_EXT_texture_array 1
+#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18
+#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19
+#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A
+#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B
+#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C
+#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D
+#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF
+#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E
+#endif /* GL_EXT_texture_array */
+
+#ifndef GL_EXT_texture_buffer_object
+#define GL_EXT_texture_buffer_object 1
+#define GL_TEXTURE_BUFFER_EXT 0x8C2A
+#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B
+#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C
+#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D
+#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E
+typedef void (APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTexBufferEXT (GLenum target, GLenum internalformat, GLuint buffer);
+#endif
+#endif /* GL_EXT_texture_buffer_object */
+
+#ifndef GL_EXT_texture_compression_latc
+#define GL_EXT_texture_compression_latc 1
+#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70
+#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71
+#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72
+#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73
+#endif /* GL_EXT_texture_compression_latc */
+
+#ifndef GL_EXT_texture_compression_rgtc
+#define GL_EXT_texture_compression_rgtc 1
+#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB
+#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC
+#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD
+#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE
+#endif /* GL_EXT_texture_compression_rgtc */
+
+#ifndef GL_EXT_texture_compression_s3tc
+#define GL_EXT_texture_compression_s3tc 1
+#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
+#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
+#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
+#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
+#endif /* GL_EXT_texture_compression_s3tc */
+
+#ifndef GL_EXT_texture_cube_map
+#define GL_EXT_texture_cube_map 1
+#define GL_NORMAL_MAP_EXT 0x8511
+#define GL_REFLECTION_MAP_EXT 0x8512
+#define GL_TEXTURE_CUBE_MAP_EXT 0x8513
+#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A
+#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C
+#endif /* GL_EXT_texture_cube_map */
+
+#ifndef GL_EXT_texture_env_add
+#define GL_EXT_texture_env_add 1
+#endif /* GL_EXT_texture_env_add */
+
+#ifndef GL_EXT_texture_env_combine
+#define GL_EXT_texture_env_combine 1
+#define GL_COMBINE_EXT 0x8570
+#define GL_COMBINE_RGB_EXT 0x8571
+#define GL_COMBINE_ALPHA_EXT 0x8572
+#define GL_RGB_SCALE_EXT 0x8573
+#define GL_ADD_SIGNED_EXT 0x8574
+#define GL_INTERPOLATE_EXT 0x8575
+#define GL_CONSTANT_EXT 0x8576
+#define GL_PRIMARY_COLOR_EXT 0x8577
+#define GL_PREVIOUS_EXT 0x8578
+#define GL_SOURCE0_RGB_EXT 0x8580
+#define GL_SOURCE1_RGB_EXT 0x8581
+#define GL_SOURCE2_RGB_EXT 0x8582
+#define GL_SOURCE0_ALPHA_EXT 0x8588
+#define GL_SOURCE1_ALPHA_EXT 0x8589
+#define GL_SOURCE2_ALPHA_EXT 0x858A
+#define GL_OPERAND0_RGB_EXT 0x8590
+#define GL_OPERAND1_RGB_EXT 0x8591
+#define GL_OPERAND2_RGB_EXT 0x8592
+#define GL_OPERAND0_ALPHA_EXT 0x8598
+#define GL_OPERAND1_ALPHA_EXT 0x8599
+#define GL_OPERAND2_ALPHA_EXT 0x859A
+#endif /* GL_EXT_texture_env_combine */
+
+#ifndef GL_EXT_texture_env_dot3
+#define GL_EXT_texture_env_dot3 1
+#define GL_DOT3_RGB_EXT 0x8740
+#define GL_DOT3_RGBA_EXT 0x8741
+#endif /* GL_EXT_texture_env_dot3 */
+
+#ifndef GL_EXT_texture_filter_anisotropic
+#define GL_EXT_texture_filter_anisotropic 1
+#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
+#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
+#endif /* GL_EXT_texture_filter_anisotropic */
+
+#ifndef GL_EXT_texture_integer
+#define GL_EXT_texture_integer 1
+#define GL_RGBA32UI_EXT 0x8D70
+#define GL_RGB32UI_EXT 0x8D71
+#define GL_ALPHA32UI_EXT 0x8D72
+#define GL_INTENSITY32UI_EXT 0x8D73
+#define GL_LUMINANCE32UI_EXT 0x8D74
+#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75
+#define GL_RGBA16UI_EXT 0x8D76
+#define GL_RGB16UI_EXT 0x8D77
+#define GL_ALPHA16UI_EXT 0x8D78
+#define GL_INTENSITY16UI_EXT 0x8D79
+#define GL_LUMINANCE16UI_EXT 0x8D7A
+#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B
+#define GL_RGBA8UI_EXT 0x8D7C
+#define GL_RGB8UI_EXT 0x8D7D
+#define GL_ALPHA8UI_EXT 0x8D7E
+#define GL_INTENSITY8UI_EXT 0x8D7F
+#define GL_LUMINANCE8UI_EXT 0x8D80
+#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81
+#define GL_RGBA32I_EXT 0x8D82
+#define GL_RGB32I_EXT 0x8D83
+#define GL_ALPHA32I_EXT 0x8D84
+#define GL_INTENSITY32I_EXT 0x8D85
+#define GL_LUMINANCE32I_EXT 0x8D86
+#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87
+#define GL_RGBA16I_EXT 0x8D88
+#define GL_RGB16I_EXT 0x8D89
+#define GL_ALPHA16I_EXT 0x8D8A
+#define GL_INTENSITY16I_EXT 0x8D8B
+#define GL_LUMINANCE16I_EXT 0x8D8C
+#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D
+#define GL_RGBA8I_EXT 0x8D8E
+#define GL_RGB8I_EXT 0x8D8F
+#define GL_ALPHA8I_EXT 0x8D90
+#define GL_INTENSITY8I_EXT 0x8D91
+#define GL_LUMINANCE8I_EXT 0x8D92
+#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93
+#define GL_RED_INTEGER_EXT 0x8D94
+#define GL_GREEN_INTEGER_EXT 0x8D95
+#define GL_BLUE_INTEGER_EXT 0x8D96
+#define GL_ALPHA_INTEGER_EXT 0x8D97
+#define GL_RGB_INTEGER_EXT 0x8D98
+#define GL_RGBA_INTEGER_EXT 0x8D99
+#define GL_BGR_INTEGER_EXT 0x8D9A
+#define GL_BGRA_INTEGER_EXT 0x8D9B
+#define GL_LUMINANCE_INTEGER_EXT 0x8D9C
+#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D
+#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E
+typedef void (APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params);
+typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params);
+typedef void (APIENTRYP PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha);
+typedef void (APIENTRYP PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTexParameterIivEXT (GLenum target, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glTexParameterIuivEXT (GLenum target, GLenum pname, const GLuint *params);
+GLAPI void APIENTRY glGetTexParameterIivEXT (GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetTexParameterIuivEXT (GLenum target, GLenum pname, GLuint *params);
+GLAPI void APIENTRY glClearColorIiEXT (GLint red, GLint green, GLint blue, GLint alpha);
+GLAPI void APIENTRY glClearColorIuiEXT (GLuint red, GLuint green, GLuint blue, GLuint alpha);
+#endif
+#endif /* GL_EXT_texture_integer */
+
+#ifndef GL_EXT_texture_lod_bias
+#define GL_EXT_texture_lod_bias 1
+#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD
+#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500
+#define GL_TEXTURE_LOD_BIAS_EXT 0x8501
+#endif /* GL_EXT_texture_lod_bias */
+
+#ifndef GL_EXT_texture_mirror_clamp
+#define GL_EXT_texture_mirror_clamp 1
+#define GL_MIRROR_CLAMP_EXT 0x8742
+#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743
+#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912
+#endif /* GL_EXT_texture_mirror_clamp */
+
+#ifndef GL_EXT_texture_object
+#define GL_EXT_texture_object 1
+#define GL_TEXTURE_PRIORITY_EXT 0x8066
+#define GL_TEXTURE_RESIDENT_EXT 0x8067
+#define GL_TEXTURE_1D_BINDING_EXT 0x8068
+#define GL_TEXTURE_2D_BINDING_EXT 0x8069
+#define GL_TEXTURE_3D_BINDING_EXT 0x806A
+typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences);
+typedef void (APIENTRYP PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture);
+typedef void (APIENTRYP PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures);
+typedef void (APIENTRYP PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures);
+typedef GLboolean (APIENTRYP PFNGLISTEXTUREEXTPROC) (GLuint texture);
+typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLboolean APIENTRY glAreTexturesResidentEXT (GLsizei n, const GLuint *textures, GLboolean *residences);
+GLAPI void APIENTRY glBindTextureEXT (GLenum target, GLuint texture);
+GLAPI void APIENTRY glDeleteTexturesEXT (GLsizei n, const GLuint *textures);
+GLAPI void APIENTRY glGenTexturesEXT (GLsizei n, GLuint *textures);
+GLAPI GLboolean APIENTRY glIsTextureEXT (GLuint texture);
+GLAPI void APIENTRY glPrioritizeTexturesEXT (GLsizei n, const GLuint *textures, const GLclampf *priorities);
+#endif
+#endif /* GL_EXT_texture_object */
+
+#ifndef GL_EXT_texture_perturb_normal
+#define GL_EXT_texture_perturb_normal 1
+#define GL_PERTURB_EXT 0x85AE
+#define GL_TEXTURE_NORMAL_EXT 0x85AF
+typedef void (APIENTRYP PFNGLTEXTURENORMALEXTPROC) (GLenum mode);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTextureNormalEXT (GLenum mode);
+#endif
+#endif /* GL_EXT_texture_perturb_normal */
+
+#ifndef GL_EXT_texture_sRGB
+#define GL_EXT_texture_sRGB 1
+#define GL_SRGB_EXT 0x8C40
+#define GL_SRGB8_EXT 0x8C41
+#define GL_SRGB_ALPHA_EXT 0x8C42
+#define GL_SRGB8_ALPHA8_EXT 0x8C43
+#define GL_SLUMINANCE_ALPHA_EXT 0x8C44
+#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45
+#define GL_SLUMINANCE_EXT 0x8C46
+#define GL_SLUMINANCE8_EXT 0x8C47
+#define GL_COMPRESSED_SRGB_EXT 0x8C48
+#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49
+#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A
+#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B
+#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
+#endif /* GL_EXT_texture_sRGB */
+
+#ifndef GL_EXT_texture_sRGB_decode
+#define GL_EXT_texture_sRGB_decode 1
+#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48
+#define GL_DECODE_EXT 0x8A49
+#define GL_SKIP_DECODE_EXT 0x8A4A
+#endif /* GL_EXT_texture_sRGB_decode */
+
+#ifndef GL_EXT_texture_shared_exponent
+#define GL_EXT_texture_shared_exponent 1
+#define GL_RGB9_E5_EXT 0x8C3D
+#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E
+#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F
+#endif /* GL_EXT_texture_shared_exponent */
+
+#ifndef GL_EXT_texture_snorm
+#define GL_EXT_texture_snorm 1
+#define GL_ALPHA_SNORM 0x9010
+#define GL_LUMINANCE_SNORM 0x9011
+#define GL_LUMINANCE_ALPHA_SNORM 0x9012
+#define GL_INTENSITY_SNORM 0x9013
+#define GL_ALPHA8_SNORM 0x9014
+#define GL_LUMINANCE8_SNORM 0x9015
+#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016
+#define GL_INTENSITY8_SNORM 0x9017
+#define GL_ALPHA16_SNORM 0x9018
+#define GL_LUMINANCE16_SNORM 0x9019
+#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A
+#define GL_INTENSITY16_SNORM 0x901B
+#define GL_RED_SNORM 0x8F90
+#define GL_RG_SNORM 0x8F91
+#define GL_RGB_SNORM 0x8F92
+#define GL_RGBA_SNORM 0x8F93
+#endif /* GL_EXT_texture_snorm */
+
+#ifndef GL_EXT_texture_swizzle
+#define GL_EXT_texture_swizzle 1
+#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42
+#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43
+#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44
+#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45
+#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46
+#endif /* GL_EXT_texture_swizzle */
+
+#ifndef GL_EXT_timer_query
+#define GL_EXT_timer_query 1
+#define GL_TIME_ELAPSED_EXT 0x88BF
+typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64 *params);
+typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64 *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64 *params);
+GLAPI void APIENTRY glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64 *params);
+#endif
+#endif /* GL_EXT_timer_query */
+
+#ifndef GL_EXT_transform_feedback
+#define GL_EXT_transform_feedback 1
+#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E
+#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84
+#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85
+#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F
+#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C
+#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D
+#define GL_PRIMITIVES_GENERATED_EXT 0x8C87
+#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88
+#define GL_RASTERIZER_DISCARD_EXT 0x8C89
+#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80
+#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83
+#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F
+#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76
+typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode);
+typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void);
+typedef void (APIENTRYP PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
+typedef void (APIENTRYP PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer);
+typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode);
+typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBeginTransformFeedbackEXT (GLenum primitiveMode);
+GLAPI void APIENTRY glEndTransformFeedbackEXT (void);
+GLAPI void APIENTRY glBindBufferRangeEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+GLAPI void APIENTRY glBindBufferOffsetEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
+GLAPI void APIENTRY glBindBufferBaseEXT (GLenum target, GLuint index, GLuint buffer);
+GLAPI void APIENTRY glTransformFeedbackVaryingsEXT (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode);
+GLAPI void APIENTRY glGetTransformFeedbackVaryingEXT (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
+#endif
+#endif /* GL_EXT_transform_feedback */
+
+#ifndef GL_EXT_vertex_array
+#define GL_EXT_vertex_array 1
+#define GL_VERTEX_ARRAY_EXT 0x8074
+#define GL_NORMAL_ARRAY_EXT 0x8075
+#define GL_COLOR_ARRAY_EXT 0x8076
+#define GL_INDEX_ARRAY_EXT 0x8077
+#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078
+#define GL_EDGE_FLAG_ARRAY_EXT 0x8079
+#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A
+#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B
+#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C
+#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D
+#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E
+#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F
+#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080
+#define GL_COLOR_ARRAY_SIZE_EXT 0x8081
+#define GL_COLOR_ARRAY_TYPE_EXT 0x8082
+#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083
+#define GL_COLOR_ARRAY_COUNT_EXT 0x8084
+#define GL_INDEX_ARRAY_TYPE_EXT 0x8085
+#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086
+#define GL_INDEX_ARRAY_COUNT_EXT 0x8087
+#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088
+#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089
+#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A
+#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B
+#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C
+#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D
+#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E
+#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F
+#define GL_COLOR_ARRAY_POINTER_EXT 0x8090
+#define GL_INDEX_ARRAY_POINTER_EXT 0x8091
+#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092
+#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093
+typedef void (APIENTRYP PFNGLARRAYELEMENTEXTPROC) (GLint i);
+typedef void (APIENTRYP PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer);
+typedef void (APIENTRYP PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count);
+typedef void (APIENTRYP PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer);
+typedef void (APIENTRYP PFNGLGETPOINTERVEXTPROC) (GLenum pname, void **params);
+typedef void (APIENTRYP PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer);
+typedef void (APIENTRYP PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer);
+typedef void (APIENTRYP PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer);
+typedef void (APIENTRYP PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glArrayElementEXT (GLint i);
+GLAPI void APIENTRY glColorPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer);
+GLAPI void APIENTRY glDrawArraysEXT (GLenum mode, GLint first, GLsizei count);
+GLAPI void APIENTRY glEdgeFlagPointerEXT (GLsizei stride, GLsizei count, const GLboolean *pointer);
+GLAPI void APIENTRY glGetPointervEXT (GLenum pname, void **params);
+GLAPI void APIENTRY glIndexPointerEXT (GLenum type, GLsizei stride, GLsizei count, const void *pointer);
+GLAPI void APIENTRY glNormalPointerEXT (GLenum type, GLsizei stride, GLsizei count, const void *pointer);
+GLAPI void APIENTRY glTexCoordPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer);
+GLAPI void APIENTRY glVertexPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer);
+#endif
+#endif /* GL_EXT_vertex_array */
+
+#ifndef GL_EXT_vertex_array_bgra
+#define GL_EXT_vertex_array_bgra 1
+#endif /* GL_EXT_vertex_array_bgra */
+
+#ifndef GL_EXT_vertex_attrib_64bit
+#define GL_EXT_vertex_attrib_64bit 1
+#define GL_DOUBLE_VEC2_EXT 0x8FFC
+#define GL_DOUBLE_VEC3_EXT 0x8FFD
+#define GL_DOUBLE_VEC4_EXT 0x8FFE
+#define GL_DOUBLE_MAT2_EXT 0x8F46
+#define GL_DOUBLE_MAT3_EXT 0x8F47
+#define GL_DOUBLE_MAT4_EXT 0x8F48
+#define GL_DOUBLE_MAT2x3_EXT 0x8F49
+#define GL_DOUBLE_MAT2x4_EXT 0x8F4A
+#define GL_DOUBLE_MAT3x2_EXT 0x8F4B
+#define GL_DOUBLE_MAT3x4_EXT 0x8F4C
+#define GL_DOUBLE_MAT4x2_EXT 0x8F4D
+#define GL_DOUBLE_MAT4x3_EXT 0x8F4E
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVertexAttribL1dEXT (GLuint index, GLdouble x);
+GLAPI void APIENTRY glVertexAttribL2dEXT (GLuint index, GLdouble x, GLdouble y);
+GLAPI void APIENTRY glVertexAttribL3dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z);
+GLAPI void APIENTRY glVertexAttribL4dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GLAPI void APIENTRY glVertexAttribL1dvEXT (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttribL2dvEXT (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttribL3dvEXT (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttribL4dvEXT (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttribLPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
+GLAPI void APIENTRY glGetVertexAttribLdvEXT (GLuint index, GLenum pname, GLdouble *params);
+#endif
+#endif /* GL_EXT_vertex_attrib_64bit */
+
+#ifndef GL_EXT_vertex_shader
+#define GL_EXT_vertex_shader 1
+#define GL_VERTEX_SHADER_EXT 0x8780
+#define GL_VERTEX_SHADER_BINDING_EXT 0x8781
+#define GL_OP_INDEX_EXT 0x8782
+#define GL_OP_NEGATE_EXT 0x8783
+#define GL_OP_DOT3_EXT 0x8784
+#define GL_OP_DOT4_EXT 0x8785
+#define GL_OP_MUL_EXT 0x8786
+#define GL_OP_ADD_EXT 0x8787
+#define GL_OP_MADD_EXT 0x8788
+#define GL_OP_FRAC_EXT 0x8789
+#define GL_OP_MAX_EXT 0x878A
+#define GL_OP_MIN_EXT 0x878B
+#define GL_OP_SET_GE_EXT 0x878C
+#define GL_OP_SET_LT_EXT 0x878D
+#define GL_OP_CLAMP_EXT 0x878E
+#define GL_OP_FLOOR_EXT 0x878F
+#define GL_OP_ROUND_EXT 0x8790
+#define GL_OP_EXP_BASE_2_EXT 0x8791
+#define GL_OP_LOG_BASE_2_EXT 0x8792
+#define GL_OP_POWER_EXT 0x8793
+#define GL_OP_RECIP_EXT 0x8794
+#define GL_OP_RECIP_SQRT_EXT 0x8795
+#define GL_OP_SUB_EXT 0x8796
+#define GL_OP_CROSS_PRODUCT_EXT 0x8797
+#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798
+#define GL_OP_MOV_EXT 0x8799
+#define GL_OUTPUT_VERTEX_EXT 0x879A
+#define GL_OUTPUT_COLOR0_EXT 0x879B
+#define GL_OUTPUT_COLOR1_EXT 0x879C
+#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D
+#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E
+#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F
+#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0
+#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1
+#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2
+#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3
+#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4
+#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5
+#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6
+#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7
+#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8
+#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9
+#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA
+#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB
+#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC
+#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD
+#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE
+#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF
+#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0
+#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1
+#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2
+#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3
+#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4
+#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5
+#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6
+#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7
+#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8
+#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9
+#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA
+#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB
+#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC
+#define GL_OUTPUT_FOG_EXT 0x87BD
+#define GL_SCALAR_EXT 0x87BE
+#define GL_VECTOR_EXT 0x87BF
+#define GL_MATRIX_EXT 0x87C0
+#define GL_VARIANT_EXT 0x87C1
+#define GL_INVARIANT_EXT 0x87C2
+#define GL_LOCAL_CONSTANT_EXT 0x87C3
+#define GL_LOCAL_EXT 0x87C4
+#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5
+#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6
+#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7
+#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8
+#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE
+#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF
+#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0
+#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1
+#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2
+#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3
+#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4
+#define GL_X_EXT 0x87D5
+#define GL_Y_EXT 0x87D6
+#define GL_Z_EXT 0x87D7
+#define GL_W_EXT 0x87D8
+#define GL_NEGATIVE_X_EXT 0x87D9
+#define GL_NEGATIVE_Y_EXT 0x87DA
+#define GL_NEGATIVE_Z_EXT 0x87DB
+#define GL_NEGATIVE_W_EXT 0x87DC
+#define GL_ZERO_EXT 0x87DD
+#define GL_ONE_EXT 0x87DE
+#define GL_NEGATIVE_ONE_EXT 0x87DF
+#define GL_NORMALIZED_RANGE_EXT 0x87E0
+#define GL_FULL_RANGE_EXT 0x87E1
+#define GL_CURRENT_VERTEX_EXT 0x87E2
+#define GL_MVP_MATRIX_EXT 0x87E3
+#define GL_VARIANT_VALUE_EXT 0x87E4
+#define GL_VARIANT_DATATYPE_EXT 0x87E5
+#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6
+#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7
+#define GL_VARIANT_ARRAY_EXT 0x87E8
+#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9
+#define GL_INVARIANT_VALUE_EXT 0x87EA
+#define GL_INVARIANT_DATATYPE_EXT 0x87EB
+#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC
+#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED
+typedef void (APIENTRYP PFNGLBEGINVERTEXSHADEREXTPROC) (void);
+typedef void (APIENTRYP PFNGLENDVERTEXSHADEREXTPROC) (void);
+typedef void (APIENTRYP PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id);
+typedef GLuint (APIENTRYP PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range);
+typedef void (APIENTRYP PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id);
+typedef void (APIENTRYP PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1);
+typedef void (APIENTRYP PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2);
+typedef void (APIENTRYP PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);
+typedef void (APIENTRYP PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
+typedef void (APIENTRYP PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
+typedef void (APIENTRYP PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num);
+typedef void (APIENTRYP PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num);
+typedef GLuint (APIENTRYP PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components);
+typedef void (APIENTRYP PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const void *addr);
+typedef void (APIENTRYP PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const void *addr);
+typedef void (APIENTRYP PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr);
+typedef void (APIENTRYP PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr);
+typedef void (APIENTRYP PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr);
+typedef void (APIENTRYP PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr);
+typedef void (APIENTRYP PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr);
+typedef void (APIENTRYP PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr);
+typedef void (APIENTRYP PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr);
+typedef void (APIENTRYP PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr);
+typedef void (APIENTRYP PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const void *addr);
+typedef void (APIENTRYP PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id);
+typedef void (APIENTRYP PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id);
+typedef GLuint (APIENTRYP PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value);
+typedef GLuint (APIENTRYP PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value);
+typedef GLuint (APIENTRYP PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value);
+typedef GLuint (APIENTRYP PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value);
+typedef GLuint (APIENTRYP PFNGLBINDPARAMETEREXTPROC) (GLenum value);
+typedef GLboolean (APIENTRYP PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap);
+typedef void (APIENTRYP PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
+typedef void (APIENTRYP PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
+typedef void (APIENTRYP PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
+typedef void (APIENTRYP PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, void **data);
+typedef void (APIENTRYP PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
+typedef void (APIENTRYP PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
+typedef void (APIENTRYP PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
+typedef void (APIENTRYP PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data);
+typedef void (APIENTRYP PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data);
+typedef void (APIENTRYP PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBeginVertexShaderEXT (void);
+GLAPI void APIENTRY glEndVertexShaderEXT (void);
+GLAPI void APIENTRY glBindVertexShaderEXT (GLuint id);
+GLAPI GLuint APIENTRY glGenVertexShadersEXT (GLuint range);
+GLAPI void APIENTRY glDeleteVertexShaderEXT (GLuint id);
+GLAPI void APIENTRY glShaderOp1EXT (GLenum op, GLuint res, GLuint arg1);
+GLAPI void APIENTRY glShaderOp2EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2);
+GLAPI void APIENTRY glShaderOp3EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);
+GLAPI void APIENTRY glSwizzleEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
+GLAPI void APIENTRY glWriteMaskEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
+GLAPI void APIENTRY glInsertComponentEXT (GLuint res, GLuint src, GLuint num);
+GLAPI void APIENTRY glExtractComponentEXT (GLuint res, GLuint src, GLuint num);
+GLAPI GLuint APIENTRY glGenSymbolsEXT (GLenum datatype, GLenum storagetype, GLenum range, GLuint components);
+GLAPI void APIENTRY glSetInvariantEXT (GLuint id, GLenum type, const void *addr);
+GLAPI void APIENTRY glSetLocalConstantEXT (GLuint id, GLenum type, const void *addr);
+GLAPI void APIENTRY glVariantbvEXT (GLuint id, const GLbyte *addr);
+GLAPI void APIENTRY glVariantsvEXT (GLuint id, const GLshort *addr);
+GLAPI void APIENTRY glVariantivEXT (GLuint id, const GLint *addr);
+GLAPI void APIENTRY glVariantfvEXT (GLuint id, const GLfloat *addr);
+GLAPI void APIENTRY glVariantdvEXT (GLuint id, const GLdouble *addr);
+GLAPI void APIENTRY glVariantubvEXT (GLuint id, const GLubyte *addr);
+GLAPI void APIENTRY glVariantusvEXT (GLuint id, const GLushort *addr);
+GLAPI void APIENTRY glVariantuivEXT (GLuint id, const GLuint *addr);
+GLAPI void APIENTRY glVariantPointerEXT (GLuint id, GLenum type, GLuint stride, const void *addr);
+GLAPI void APIENTRY glEnableVariantClientStateEXT (GLuint id);
+GLAPI void APIENTRY glDisableVariantClientStateEXT (GLuint id);
+GLAPI GLuint APIENTRY glBindLightParameterEXT (GLenum light, GLenum value);
+GLAPI GLuint APIENTRY glBindMaterialParameterEXT (GLenum face, GLenum value);
+GLAPI GLuint APIENTRY glBindTexGenParameterEXT (GLenum unit, GLenum coord, GLenum value);
+GLAPI GLuint APIENTRY glBindTextureUnitParameterEXT (GLenum unit, GLenum value);
+GLAPI GLuint APIENTRY glBindParameterEXT (GLenum value);
+GLAPI GLboolean APIENTRY glIsVariantEnabledEXT (GLuint id, GLenum cap);
+GLAPI void APIENTRY glGetVariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data);
+GLAPI void APIENTRY glGetVariantIntegervEXT (GLuint id, GLenum value, GLint *data);
+GLAPI void APIENTRY glGetVariantFloatvEXT (GLuint id, GLenum value, GLfloat *data);
+GLAPI void APIENTRY glGetVariantPointervEXT (GLuint id, GLenum value, void **data);
+GLAPI void APIENTRY glGetInvariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data);
+GLAPI void APIENTRY glGetInvariantIntegervEXT (GLuint id, GLenum value, GLint *data);
+GLAPI void APIENTRY glGetInvariantFloatvEXT (GLuint id, GLenum value, GLfloat *data);
+GLAPI void APIENTRY glGetLocalConstantBooleanvEXT (GLuint id, GLenum value, GLboolean *data);
+GLAPI void APIENTRY glGetLocalConstantIntegervEXT (GLuint id, GLenum value, GLint *data);
+GLAPI void APIENTRY glGetLocalConstantFloatvEXT (GLuint id, GLenum value, GLfloat *data);
+#endif
+#endif /* GL_EXT_vertex_shader */
+
+#ifndef GL_EXT_vertex_weighting
+#define GL_EXT_vertex_weighting 1
+#define GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3
+#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502
+#define GL_MODELVIEW0_MATRIX_EXT 0x0BA6
+#define GL_MODELVIEW1_MATRIX_EXT 0x8506
+#define GL_VERTEX_WEIGHTING_EXT 0x8509
+#define GL_MODELVIEW0_EXT 0x1700
+#define GL_MODELVIEW1_EXT 0x850A
+#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B
+#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C
+#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D
+#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E
+#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F
+#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510
+typedef void (APIENTRYP PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight);
+typedef void (APIENTRYP PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight);
+typedef void (APIENTRYP PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVertexWeightfEXT (GLfloat weight);
+GLAPI void APIENTRY glVertexWeightfvEXT (const GLfloat *weight);
+GLAPI void APIENTRY glVertexWeightPointerEXT (GLint size, GLenum type, GLsizei stride, const void *pointer);
+#endif
+#endif /* GL_EXT_vertex_weighting */
+
+#ifndef GL_EXT_x11_sync_object
+#define GL_EXT_x11_sync_object 1
+#define GL_SYNC_X11_FENCE_EXT 0x90E1
+typedef GLsync (APIENTRYP PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLsync APIENTRY glImportSyncEXT (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags);
+#endif
+#endif /* GL_EXT_x11_sync_object */
+
+#ifndef GL_GREMEDY_frame_terminator
+#define GL_GREMEDY_frame_terminator 1
+typedef void (APIENTRYP PFNGLFRAMETERMINATORGREMEDYPROC) (void);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFrameTerminatorGREMEDY (void);
+#endif
+#endif /* GL_GREMEDY_frame_terminator */
+
+#ifndef GL_GREMEDY_string_marker
+#define GL_GREMEDY_string_marker 1
+typedef void (APIENTRYP PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const void *string);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glStringMarkerGREMEDY (GLsizei len, const void *string);
+#endif
+#endif /* GL_GREMEDY_string_marker */
+
+#ifndef GL_HP_convolution_border_modes
+#define GL_HP_convolution_border_modes 1
+#define GL_IGNORE_BORDER_HP 0x8150
+#define GL_CONSTANT_BORDER_HP 0x8151
+#define GL_REPLICATE_BORDER_HP 0x8153
+#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154
+#endif /* GL_HP_convolution_border_modes */
+
+#ifndef GL_HP_image_transform
+#define GL_HP_image_transform 1
+#define GL_IMAGE_SCALE_X_HP 0x8155
+#define GL_IMAGE_SCALE_Y_HP 0x8156
+#define GL_IMAGE_TRANSLATE_X_HP 0x8157
+#define GL_IMAGE_TRANSLATE_Y_HP 0x8158
+#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159
+#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A
+#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B
+#define GL_IMAGE_MAG_FILTER_HP 0x815C
+#define GL_IMAGE_MIN_FILTER_HP 0x815D
+#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E
+#define GL_CUBIC_HP 0x815F
+#define GL_AVERAGE_HP 0x8160
+#define GL_IMAGE_TRANSFORM_2D_HP 0x8161
+#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162
+#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163
+typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glImageTransformParameteriHP (GLenum target, GLenum pname, GLint param);
+GLAPI void APIENTRY glImageTransformParameterfHP (GLenum target, GLenum pname, GLfloat param);
+GLAPI void APIENTRY glImageTransformParameterivHP (GLenum target, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glImageTransformParameterfvHP (GLenum target, GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glGetImageTransformParameterivHP (GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetImageTransformParameterfvHP (GLenum target, GLenum pname, GLfloat *params);
+#endif
+#endif /* GL_HP_image_transform */
+
+#ifndef GL_HP_occlusion_test
+#define GL_HP_occlusion_test 1
+#define GL_OCCLUSION_TEST_HP 0x8165
+#define GL_OCCLUSION_TEST_RESULT_HP 0x8166
+#endif /* GL_HP_occlusion_test */
+
+#ifndef GL_HP_texture_lighting
+#define GL_HP_texture_lighting 1
+#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167
+#define GL_TEXTURE_POST_SPECULAR_HP 0x8168
+#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169
+#endif /* GL_HP_texture_lighting */
+
+#ifndef GL_IBM_cull_vertex
+#define GL_IBM_cull_vertex 1
+#define GL_CULL_VERTEX_IBM 103050
+#endif /* GL_IBM_cull_vertex */
+
+#ifndef GL_IBM_multimode_draw_arrays
+#define GL_IBM_multimode_draw_arrays 1
+typedef void (APIENTRYP PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride);
+typedef void (APIENTRYP PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, GLint modestride);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glMultiModeDrawArraysIBM (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride);
+GLAPI void APIENTRY glMultiModeDrawElementsIBM (const GLenum *mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, GLint modestride);
+#endif
+#endif /* GL_IBM_multimode_draw_arrays */
+
+#ifndef GL_IBM_rasterpos_clip
+#define GL_IBM_rasterpos_clip 1
+#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262
+#endif /* GL_IBM_rasterpos_clip */
+
+#ifndef GL_IBM_static_data
+#define GL_IBM_static_data 1
+#define GL_ALL_STATIC_DATA_IBM 103060
+#define GL_STATIC_VERTEX_ARRAY_IBM 103061
+typedef void (APIENTRYP PFNGLFLUSHSTATICDATAIBMPROC) (GLenum target);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFlushStaticDataIBM (GLenum target);
+#endif
+#endif /* GL_IBM_static_data */
+
+#ifndef GL_IBM_texture_mirrored_repeat
+#define GL_IBM_texture_mirrored_repeat 1
+#define GL_MIRRORED_REPEAT_IBM 0x8370
+#endif /* GL_IBM_texture_mirrored_repeat */
+
+#ifndef GL_IBM_vertex_array_lists
+#define GL_IBM_vertex_array_lists 1
+#define GL_VERTEX_ARRAY_LIST_IBM 103070
+#define GL_NORMAL_ARRAY_LIST_IBM 103071
+#define GL_COLOR_ARRAY_LIST_IBM 103072
+#define GL_INDEX_ARRAY_LIST_IBM 103073
+#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074
+#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075
+#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076
+#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077
+#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080
+#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081
+#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082
+#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083
+#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084
+#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085
+#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086
+#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087
+typedef void (APIENTRYP PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride);
+typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride);
+typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean **pointer, GLint ptrstride);
+typedef void (APIENTRYP PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void **pointer, GLint ptrstride);
+typedef void (APIENTRYP PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void **pointer, GLint ptrstride);
+typedef void (APIENTRYP PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void **pointer, GLint ptrstride);
+typedef void (APIENTRYP PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride);
+typedef void (APIENTRYP PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glColorPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride);
+GLAPI void APIENTRY glSecondaryColorPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride);
+GLAPI void APIENTRY glEdgeFlagPointerListIBM (GLint stride, const GLboolean **pointer, GLint ptrstride);
+GLAPI void APIENTRY glFogCoordPointerListIBM (GLenum type, GLint stride, const void **pointer, GLint ptrstride);
+GLAPI void APIENTRY glIndexPointerListIBM (GLenum type, GLint stride, const void **pointer, GLint ptrstride);
+GLAPI void APIENTRY glNormalPointerListIBM (GLenum type, GLint stride, const void **pointer, GLint ptrstride);
+GLAPI void APIENTRY glTexCoordPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride);
+GLAPI void APIENTRY glVertexPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride);
+#endif
+#endif /* GL_IBM_vertex_array_lists */
+
+#ifndef GL_INGR_blend_func_separate
+#define GL_INGR_blend_func_separate 1
+typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+#endif
+#endif /* GL_INGR_blend_func_separate */
+
+#ifndef GL_INGR_color_clamp
+#define GL_INGR_color_clamp 1
+#define GL_RED_MIN_CLAMP_INGR 0x8560
+#define GL_GREEN_MIN_CLAMP_INGR 0x8561
+#define GL_BLUE_MIN_CLAMP_INGR 0x8562
+#define GL_ALPHA_MIN_CLAMP_INGR 0x8563
+#define GL_RED_MAX_CLAMP_INGR 0x8564
+#define GL_GREEN_MAX_CLAMP_INGR 0x8565
+#define GL_BLUE_MAX_CLAMP_INGR 0x8566
+#define GL_ALPHA_MAX_CLAMP_INGR 0x8567
+#endif /* GL_INGR_color_clamp */
+
+#ifndef GL_INGR_interlace_read
+#define GL_INGR_interlace_read 1
+#define GL_INTERLACE_READ_INGR 0x8568
+#endif /* GL_INGR_interlace_read */
+
+#ifndef GL_INTEL_fragment_shader_ordering
+#define GL_INTEL_fragment_shader_ordering 1
+#endif /* GL_INTEL_fragment_shader_ordering */
+
+#ifndef GL_INTEL_map_texture
+#define GL_INTEL_map_texture 1
+#define GL_TEXTURE_MEMORY_LAYOUT_INTEL 0x83FF
+#define GL_LAYOUT_DEFAULT_INTEL 0
+#define GL_LAYOUT_LINEAR_INTEL 1
+#define GL_LAYOUT_LINEAR_CPU_CACHED_INTEL 2
+typedef void (APIENTRYP PFNGLSYNCTEXTUREINTELPROC) (GLuint texture);
+typedef void (APIENTRYP PFNGLUNMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level);
+typedef void *(APIENTRYP PFNGLMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level, GLbitfield access, GLint *stride, GLenum *layout);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glSyncTextureINTEL (GLuint texture);
+GLAPI void APIENTRY glUnmapTexture2DINTEL (GLuint texture, GLint level);
+GLAPI void *APIENTRY glMapTexture2DINTEL (GLuint texture, GLint level, GLbitfield access, GLint *stride, GLenum *layout);
+#endif
+#endif /* GL_INTEL_map_texture */
+
+#ifndef GL_INTEL_parallel_arrays
+#define GL_INTEL_parallel_arrays 1
+#define GL_PARALLEL_ARRAYS_INTEL 0x83F4
+#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5
+#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6
+#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7
+#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8
+typedef void (APIENTRYP PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const void **pointer);
+typedef void (APIENTRYP PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const void **pointer);
+typedef void (APIENTRYP PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const void **pointer);
+typedef void (APIENTRYP PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const void **pointer);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVertexPointervINTEL (GLint size, GLenum type, const void **pointer);
+GLAPI void APIENTRY glNormalPointervINTEL (GLenum type, const void **pointer);
+GLAPI void APIENTRY glColorPointervINTEL (GLint size, GLenum type, const void **pointer);
+GLAPI void APIENTRY glTexCoordPointervINTEL (GLint size, GLenum type, const void **pointer);
+#endif
+#endif /* GL_INTEL_parallel_arrays */
+
+#ifndef GL_MESAX_texture_stack
+#define GL_MESAX_texture_stack 1
+#define GL_TEXTURE_1D_STACK_MESAX 0x8759
+#define GL_TEXTURE_2D_STACK_MESAX 0x875A
+#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B
+#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C
+#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D
+#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E
+#endif /* GL_MESAX_texture_stack */
+
+#ifndef GL_MESA_pack_invert
+#define GL_MESA_pack_invert 1
+#define GL_PACK_INVERT_MESA 0x8758
+#endif /* GL_MESA_pack_invert */
+
+#ifndef GL_MESA_resize_buffers
+#define GL_MESA_resize_buffers 1
+typedef void (APIENTRYP PFNGLRESIZEBUFFERSMESAPROC) (void);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glResizeBuffersMESA (void);
+#endif
+#endif /* GL_MESA_resize_buffers */
+
+#ifndef GL_MESA_window_pos
+#define GL_MESA_window_pos 1
+typedef void (APIENTRYP PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y);
+typedef void (APIENTRYP PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y);
+typedef void (APIENTRYP PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y);
+typedef void (APIENTRYP PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y);
+typedef void (APIENTRYP PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z);
+typedef void (APIENTRYP PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRYP PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRYP PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRYP PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w);
+typedef void (APIENTRYP PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v);
+typedef void (APIENTRYP PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (APIENTRYP PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glWindowPos2dMESA (GLdouble x, GLdouble y);
+GLAPI void APIENTRY glWindowPos2dvMESA (const GLdouble *v);
+GLAPI void APIENTRY glWindowPos2fMESA (GLfloat x, GLfloat y);
+GLAPI void APIENTRY glWindowPos2fvMESA (const GLfloat *v);
+GLAPI void APIENTRY glWindowPos2iMESA (GLint x, GLint y);
+GLAPI void APIENTRY glWindowPos2ivMESA (const GLint *v);
+GLAPI void APIENTRY glWindowPos2sMESA (GLshort x, GLshort y);
+GLAPI void APIENTRY glWindowPos2svMESA (const GLshort *v);
+GLAPI void APIENTRY glWindowPos3dMESA (GLdouble x, GLdouble y, GLdouble z);
+GLAPI void APIENTRY glWindowPos3dvMESA (const GLdouble *v);
+GLAPI void APIENTRY glWindowPos3fMESA (GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glWindowPos3fvMESA (const GLfloat *v);
+GLAPI void APIENTRY glWindowPos3iMESA (GLint x, GLint y, GLint z);
+GLAPI void APIENTRY glWindowPos3ivMESA (const GLint *v);
+GLAPI void APIENTRY glWindowPos3sMESA (GLshort x, GLshort y, GLshort z);
+GLAPI void APIENTRY glWindowPos3svMESA (const GLshort *v);
+GLAPI void APIENTRY glWindowPos4dMESA (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GLAPI void APIENTRY glWindowPos4dvMESA (const GLdouble *v);
+GLAPI void APIENTRY glWindowPos4fMESA (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GLAPI void APIENTRY glWindowPos4fvMESA (const GLfloat *v);
+GLAPI void APIENTRY glWindowPos4iMESA (GLint x, GLint y, GLint z, GLint w);
+GLAPI void APIENTRY glWindowPos4ivMESA (const GLint *v);
+GLAPI void APIENTRY glWindowPos4sMESA (GLshort x, GLshort y, GLshort z, GLshort w);
+GLAPI void APIENTRY glWindowPos4svMESA (const GLshort *v);
+#endif
+#endif /* GL_MESA_window_pos */
+
+#ifndef GL_MESA_ycbcr_texture
+#define GL_MESA_ycbcr_texture 1
+#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA
+#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB
+#define GL_YCBCR_MESA 0x8757
+#endif /* GL_MESA_ycbcr_texture */
+
+#ifndef GL_NVX_conditional_render
+#define GL_NVX_conditional_render 1
+typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERNVXPROC) (GLuint id);
+typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERNVXPROC) (void);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBeginConditionalRenderNVX (GLuint id);
+GLAPI void APIENTRY glEndConditionalRenderNVX (void);
+#endif
+#endif /* GL_NVX_conditional_render */
+
+#ifndef GL_NV_bindless_multi_draw_indirect
+#define GL_NV_bindless_multi_draw_indirect 1
+typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC) (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount);
+typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glMultiDrawArraysIndirectBindlessNV (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount);
+GLAPI void APIENTRY glMultiDrawElementsIndirectBindlessNV (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount);
+#endif
+#endif /* GL_NV_bindless_multi_draw_indirect */
+
+#ifndef GL_NV_bindless_texture
+#define GL_NV_bindless_texture 1
+typedef GLuint64 (APIENTRYP PFNGLGETTEXTUREHANDLENVPROC) (GLuint texture);
+typedef GLuint64 (APIENTRYP PFNGLGETTEXTURESAMPLERHANDLENVPROC) (GLuint texture, GLuint sampler);
+typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle);
+typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC) (GLuint64 handle);
+typedef GLuint64 (APIENTRYP PFNGLGETIMAGEHANDLENVPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
+typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle, GLenum access);
+typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC) (GLuint64 handle);
+typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64NVPROC) (GLint location, GLuint64 value);
+typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64VNVPROC) (GLint location, GLsizei count, const GLuint64 *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC) (GLuint program, GLint location, GLuint64 value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values);
+typedef GLboolean (APIENTRYP PFNGLISTEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle);
+typedef GLboolean (APIENTRYP PFNGLISIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLuint64 APIENTRY glGetTextureHandleNV (GLuint texture);
+GLAPI GLuint64 APIENTRY glGetTextureSamplerHandleNV (GLuint texture, GLuint sampler);
+GLAPI void APIENTRY glMakeTextureHandleResidentNV (GLuint64 handle);
+GLAPI void APIENTRY glMakeTextureHandleNonResidentNV (GLuint64 handle);
+GLAPI GLuint64 APIENTRY glGetImageHandleNV (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
+GLAPI void APIENTRY glMakeImageHandleResidentNV (GLuint64 handle, GLenum access);
+GLAPI void APIENTRY glMakeImageHandleNonResidentNV (GLuint64 handle);
+GLAPI void APIENTRY glUniformHandleui64NV (GLint location, GLuint64 value);
+GLAPI void APIENTRY glUniformHandleui64vNV (GLint location, GLsizei count, const GLuint64 *value);
+GLAPI void APIENTRY glProgramUniformHandleui64NV (GLuint program, GLint location, GLuint64 value);
+GLAPI void APIENTRY glProgramUniformHandleui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64 *values);
+GLAPI GLboolean APIENTRY glIsTextureHandleResidentNV (GLuint64 handle);
+GLAPI GLboolean APIENTRY glIsImageHandleResidentNV (GLuint64 handle);
+#endif
+#endif /* GL_NV_bindless_texture */
+
+#ifndef GL_NV_blend_equation_advanced
+#define GL_NV_blend_equation_advanced 1
+#define GL_BLEND_OVERLAP_NV 0x9281
+#define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280
+#define GL_COLORBURN_NV 0x929A
+#define GL_COLORDODGE_NV 0x9299
+#define GL_CONJOINT_NV 0x9284
+#define GL_CONTRAST_NV 0x92A1
+#define GL_DARKEN_NV 0x9297
+#define GL_DIFFERENCE_NV 0x929E
+#define GL_DISJOINT_NV 0x9283
+#define GL_DST_ATOP_NV 0x928F
+#define GL_DST_IN_NV 0x928B
+#define GL_DST_NV 0x9287
+#define GL_DST_OUT_NV 0x928D
+#define GL_DST_OVER_NV 0x9289
+#define GL_EXCLUSION_NV 0x92A0
+#define GL_HARDLIGHT_NV 0x929B
+#define GL_HARDMIX_NV 0x92A9
+#define GL_HSL_COLOR_NV 0x92AF
+#define GL_HSL_HUE_NV 0x92AD
+#define GL_HSL_LUMINOSITY_NV 0x92B0
+#define GL_HSL_SATURATION_NV 0x92AE
+#define GL_INVERT_OVG_NV 0x92B4
+#define GL_INVERT_RGB_NV 0x92A3
+#define GL_LIGHTEN_NV 0x9298
+#define GL_LINEARBURN_NV 0x92A5
+#define GL_LINEARDODGE_NV 0x92A4
+#define GL_LINEARLIGHT_NV 0x92A7
+#define GL_MINUS_CLAMPED_NV 0x92B3
+#define GL_MINUS_NV 0x929F
+#define GL_MULTIPLY_NV 0x9294
+#define GL_OVERLAY_NV 0x9296
+#define GL_PINLIGHT_NV 0x92A8
+#define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2
+#define GL_PLUS_CLAMPED_NV 0x92B1
+#define GL_PLUS_DARKER_NV 0x9292
+#define GL_PLUS_NV 0x9291
+#define GL_SCREEN_NV 0x9295
+#define GL_SOFTLIGHT_NV 0x929C
+#define GL_SRC_ATOP_NV 0x928E
+#define GL_SRC_IN_NV 0x928A
+#define GL_SRC_NV 0x9286
+#define GL_SRC_OUT_NV 0x928C
+#define GL_SRC_OVER_NV 0x9288
+#define GL_UNCORRELATED_NV 0x9282
+#define GL_VIVIDLIGHT_NV 0x92A6
+typedef void (APIENTRYP PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint value);
+typedef void (APIENTRYP PFNGLBLENDBARRIERNVPROC) (void);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBlendParameteriNV (GLenum pname, GLint value);
+GLAPI void APIENTRY glBlendBarrierNV (void);
+#endif
+#endif /* GL_NV_blend_equation_advanced */
+
+#ifndef GL_NV_blend_equation_advanced_coherent
+#define GL_NV_blend_equation_advanced_coherent 1
+#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285
+#endif /* GL_NV_blend_equation_advanced_coherent */
+
+#ifndef GL_NV_blend_square
+#define GL_NV_blend_square 1
+#endif /* GL_NV_blend_square */
+
+#ifndef GL_NV_compute_program5
+#define GL_NV_compute_program5 1
+#define GL_COMPUTE_PROGRAM_NV 0x90FB
+#define GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV 0x90FC
+#endif /* GL_NV_compute_program5 */
+
+#ifndef GL_NV_conditional_render
+#define GL_NV_conditional_render 1
+#define GL_QUERY_WAIT_NV 0x8E13
+#define GL_QUERY_NO_WAIT_NV 0x8E14
+#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15
+#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16
+typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode);
+typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERNVPROC) (void);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBeginConditionalRenderNV (GLuint id, GLenum mode);
+GLAPI void APIENTRY glEndConditionalRenderNV (void);
+#endif
+#endif /* GL_NV_conditional_render */
+
+#ifndef GL_NV_copy_depth_to_color
+#define GL_NV_copy_depth_to_color 1
+#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E
+#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F
+#endif /* GL_NV_copy_depth_to_color */
+
+#ifndef GL_NV_copy_image
+#define GL_NV_copy_image 1
+typedef void (APIENTRYP PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glCopyImageSubDataNV (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
+#endif
+#endif /* GL_NV_copy_image */
+
+#ifndef GL_NV_deep_texture3D
+#define GL_NV_deep_texture3D 1
+#define GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV 0x90D0
+#define GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV 0x90D1
+#endif /* GL_NV_deep_texture3D */
+
+#ifndef GL_NV_depth_buffer_float
+#define GL_NV_depth_buffer_float 1
+#define GL_DEPTH_COMPONENT32F_NV 0x8DAB
+#define GL_DEPTH32F_STENCIL8_NV 0x8DAC
+#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD
+#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF
+typedef void (APIENTRYP PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar);
+typedef void (APIENTRYP PFNGLCLEARDEPTHDNVPROC) (GLdouble depth);
+typedef void (APIENTRYP PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDepthRangedNV (GLdouble zNear, GLdouble zFar);
+GLAPI void APIENTRY glClearDepthdNV (GLdouble depth);
+GLAPI void APIENTRY glDepthBoundsdNV (GLdouble zmin, GLdouble zmax);
+#endif
+#endif /* GL_NV_depth_buffer_float */
+
+#ifndef GL_NV_depth_clamp
+#define GL_NV_depth_clamp 1
+#define GL_DEPTH_CLAMP_NV 0x864F
+#endif /* GL_NV_depth_clamp */
+
+#ifndef GL_NV_draw_texture
+#define GL_NV_draw_texture 1
+typedef void (APIENTRYP PFNGLDRAWTEXTURENVPROC) (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDrawTextureNV (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1);
+#endif
+#endif /* GL_NV_draw_texture */
+
+#ifndef GL_NV_evaluators
+#define GL_NV_evaluators 1
+#define GL_EVAL_2D_NV 0x86C0
+#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1
+#define GL_MAP_TESSELLATION_NV 0x86C2
+#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3
+#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4
+#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5
+#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6
+#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7
+#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8
+#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9
+#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA
+#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB
+#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC
+#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD
+#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE
+#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF
+#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0
+#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1
+#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2
+#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3
+#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4
+#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5
+#define GL_MAX_MAP_TESSELLATION_NV 0x86D6
+#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7
+typedef void (APIENTRYP PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points);
+typedef void (APIENTRYP PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points);
+typedef void (APIENTRYP PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points);
+GLAPI void APIENTRY glMapParameterivNV (GLenum target, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glMapParameterfvNV (GLenum target, GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glGetMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points);
+GLAPI void APIENTRY glGetMapParameterivNV (GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetMapParameterfvNV (GLenum target, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetMapAttribParameterivNV (GLenum target, GLuint index, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetMapAttribParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glEvalMapsNV (GLenum target, GLenum mode);
+#endif
+#endif /* GL_NV_evaluators */
+
+#ifndef GL_NV_explicit_multisample
+#define GL_NV_explicit_multisample 1
+#define GL_SAMPLE_POSITION_NV 0x8E50
+#define GL_SAMPLE_MASK_NV 0x8E51
+#define GL_SAMPLE_MASK_VALUE_NV 0x8E52
+#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53
+#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54
+#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55
+#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56
+#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57
+#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58
+#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59
+typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat *val);
+typedef void (APIENTRYP PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask);
+typedef void (APIENTRYP PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glGetMultisamplefvNV (GLenum pname, GLuint index, GLfloat *val);
+GLAPI void APIENTRY glSampleMaskIndexedNV (GLuint index, GLbitfield mask);
+GLAPI void APIENTRY glTexRenderbufferNV (GLenum target, GLuint renderbuffer);
+#endif
+#endif /* GL_NV_explicit_multisample */
+
+#ifndef GL_NV_fence
+#define GL_NV_fence 1
+#define GL_ALL_COMPLETED_NV 0x84F2
+#define GL_FENCE_STATUS_NV 0x84F3
+#define GL_FENCE_CONDITION_NV 0x84F4
+typedef void (APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
+typedef void (APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
+typedef GLboolean (APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
+typedef GLboolean (APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
+typedef void (APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
+typedef void (APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDeleteFencesNV (GLsizei n, const GLuint *fences);
+GLAPI void APIENTRY glGenFencesNV (GLsizei n, GLuint *fences);
+GLAPI GLboolean APIENTRY glIsFenceNV (GLuint fence);
+GLAPI GLboolean APIENTRY glTestFenceNV (GLuint fence);
+GLAPI void APIENTRY glGetFenceivNV (GLuint fence, GLenum pname, GLint *params);
+GLAPI void APIENTRY glFinishFenceNV (GLuint fence);
+GLAPI void APIENTRY glSetFenceNV (GLuint fence, GLenum condition);
+#endif
+#endif /* GL_NV_fence */
+
+#ifndef GL_NV_float_buffer
+#define GL_NV_float_buffer 1
+#define GL_FLOAT_R_NV 0x8880
+#define GL_FLOAT_RG_NV 0x8881
+#define GL_FLOAT_RGB_NV 0x8882
+#define GL_FLOAT_RGBA_NV 0x8883
+#define GL_FLOAT_R16_NV 0x8884
+#define GL_FLOAT_R32_NV 0x8885
+#define GL_FLOAT_RG16_NV 0x8886
+#define GL_FLOAT_RG32_NV 0x8887
+#define GL_FLOAT_RGB16_NV 0x8888
+#define GL_FLOAT_RGB32_NV 0x8889
+#define GL_FLOAT_RGBA16_NV 0x888A
+#define GL_FLOAT_RGBA32_NV 0x888B
+#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C
+#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D
+#define GL_FLOAT_RGBA_MODE_NV 0x888E
+#endif /* GL_NV_float_buffer */
+
+#ifndef GL_NV_fog_distance
+#define GL_NV_fog_distance 1
+#define GL_FOG_DISTANCE_MODE_NV 0x855A
+#define GL_EYE_RADIAL_NV 0x855B
+#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C
+#endif /* GL_NV_fog_distance */
+
+#ifndef GL_NV_fragment_program
+#define GL_NV_fragment_program 1
+#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868
+#define GL_FRAGMENT_PROGRAM_NV 0x8870
+#define GL_MAX_TEXTURE_COORDS_NV 0x8871
+#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872
+#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873
+#define GL_PROGRAM_ERROR_STRING_NV 0x8874
+typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v);
+typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v);
+typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glProgramNamedParameter4fNV (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GLAPI void APIENTRY glProgramNamedParameter4fvNV (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v);
+GLAPI void APIENTRY glProgramNamedParameter4dNV (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GLAPI void APIENTRY glProgramNamedParameter4dvNV (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v);
+GLAPI void APIENTRY glGetProgramNamedParameterfvNV (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params);
+GLAPI void APIENTRY glGetProgramNamedParameterdvNV (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params);
+#endif
+#endif /* GL_NV_fragment_program */
+
+#ifndef GL_NV_fragment_program2
+#define GL_NV_fragment_program2 1
+#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4
+#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5
+#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6
+#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7
+#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8
+#endif /* GL_NV_fragment_program2 */
+
+#ifndef GL_NV_fragment_program4
+#define GL_NV_fragment_program4 1
+#endif /* GL_NV_fragment_program4 */
+
+#ifndef GL_NV_fragment_program_option
+#define GL_NV_fragment_program_option 1
+#endif /* GL_NV_fragment_program_option */
+
+#ifndef GL_NV_framebuffer_multisample_coverage
+#define GL_NV_framebuffer_multisample_coverage 1
+#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB
+#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10
+#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11
+#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12
+typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glRenderbufferStorageMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
+#endif
+#endif /* GL_NV_framebuffer_multisample_coverage */
+
+#ifndef GL_NV_geometry_program4
+#define GL_NV_geometry_program4 1
+#define GL_GEOMETRY_PROGRAM_NV 0x8C26
+#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27
+#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28
+typedef void (APIENTRYP PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glProgramVertexLimitNV (GLenum target, GLint limit);
+GLAPI void APIENTRY glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level);
+GLAPI void APIENTRY glFramebufferTextureLayerEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+GLAPI void APIENTRY glFramebufferTextureFaceEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
+#endif
+#endif /* GL_NV_geometry_program4 */
+
+#ifndef GL_NV_geometry_shader4
+#define GL_NV_geometry_shader4 1
+#endif /* GL_NV_geometry_shader4 */
+
+#ifndef GL_NV_gpu_program4
+#define GL_NV_gpu_program4 1
+#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904
+#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905
+#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906
+#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907
+#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908
+#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909
+#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5
+#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6
+typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
+typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params);
+typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params);
+typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params);
+typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params);
+typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
+typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params);
+typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params);
+typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params);
+typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params);
+typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params);
+typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params);
+typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params);
+typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glProgramLocalParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
+GLAPI void APIENTRY glProgramLocalParameterI4ivNV (GLenum target, GLuint index, const GLint *params);
+GLAPI void APIENTRY glProgramLocalParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params);
+GLAPI void APIENTRY glProgramLocalParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+GLAPI void APIENTRY glProgramLocalParameterI4uivNV (GLenum target, GLuint index, const GLuint *params);
+GLAPI void APIENTRY glProgramLocalParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params);
+GLAPI void APIENTRY glProgramEnvParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
+GLAPI void APIENTRY glProgramEnvParameterI4ivNV (GLenum target, GLuint index, const GLint *params);
+GLAPI void APIENTRY glProgramEnvParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params);
+GLAPI void APIENTRY glProgramEnvParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+GLAPI void APIENTRY glProgramEnvParameterI4uivNV (GLenum target, GLuint index, const GLuint *params);
+GLAPI void APIENTRY glProgramEnvParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params);
+GLAPI void APIENTRY glGetProgramLocalParameterIivNV (GLenum target, GLuint index, GLint *params);
+GLAPI void APIENTRY glGetProgramLocalParameterIuivNV (GLenum target, GLuint index, GLuint *params);
+GLAPI void APIENTRY glGetProgramEnvParameterIivNV (GLenum target, GLuint index, GLint *params);
+GLAPI void APIENTRY glGetProgramEnvParameterIuivNV (GLenum target, GLuint index, GLuint *params);
+#endif
+#endif /* GL_NV_gpu_program4 */
+
+#ifndef GL_NV_gpu_program5
+#define GL_NV_gpu_program5 1
+#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A
+#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B
+#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C
+#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D
+#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E
+#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F
+#define GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV 0x8F44
+#define GL_MAX_PROGRAM_SUBROUTINE_NUM_NV 0x8F45
+typedef void (APIENTRYP PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC) (GLenum target, GLsizei count, const GLuint *params);
+typedef void (APIENTRYP PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC) (GLenum target, GLuint index, GLuint *param);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glProgramSubroutineParametersuivNV (GLenum target, GLsizei count, const GLuint *params);
+GLAPI void APIENTRY glGetProgramSubroutineParameteruivNV (GLenum target, GLuint index, GLuint *param);
+#endif
+#endif /* GL_NV_gpu_program5 */
+
+#ifndef GL_NV_gpu_program5_mem_extended
+#define GL_NV_gpu_program5_mem_extended 1
+#endif /* GL_NV_gpu_program5_mem_extended */
+
+#ifndef GL_NV_gpu_shader5
+#define GL_NV_gpu_shader5 1
+typedef int64_t GLint64EXT;
+#define GL_INT64_NV 0x140E
+#define GL_UNSIGNED_INT64_NV 0x140F
+#define GL_INT8_NV 0x8FE0
+#define GL_INT8_VEC2_NV 0x8FE1
+#define GL_INT8_VEC3_NV 0x8FE2
+#define GL_INT8_VEC4_NV 0x8FE3
+#define GL_INT16_NV 0x8FE4
+#define GL_INT16_VEC2_NV 0x8FE5
+#define GL_INT16_VEC3_NV 0x8FE6
+#define GL_INT16_VEC4_NV 0x8FE7
+#define GL_INT64_VEC2_NV 0x8FE9
+#define GL_INT64_VEC3_NV 0x8FEA
+#define GL_INT64_VEC4_NV 0x8FEB
+#define GL_UNSIGNED_INT8_NV 0x8FEC
+#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED
+#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE
+#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF
+#define GL_UNSIGNED_INT16_NV 0x8FF0
+#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1
+#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2
+#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3
+#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5
+#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6
+#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7
+#define GL_FLOAT16_NV 0x8FF8
+#define GL_FLOAT16_VEC2_NV 0x8FF9
+#define GL_FLOAT16_VEC3_NV 0x8FFA
+#define GL_FLOAT16_VEC4_NV 0x8FFB
+typedef void (APIENTRYP PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x);
+typedef void (APIENTRYP PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y);
+typedef void (APIENTRYP PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
+typedef void (APIENTRYP PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
+typedef void (APIENTRYP PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
+typedef void (APIENTRYP PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
+typedef void (APIENTRYP PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
+typedef void (APIENTRYP PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value);
+typedef void (APIENTRYP PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x);
+typedef void (APIENTRYP PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y);
+typedef void (APIENTRYP PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
+typedef void (APIENTRYP PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
+typedef void (APIENTRYP PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
+typedef void (APIENTRYP PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
+typedef void (APIENTRYP PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
+typedef void (APIENTRYP PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
+typedef void (APIENTRYP PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT *params);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glUniform1i64NV (GLint location, GLint64EXT x);
+GLAPI void APIENTRY glUniform2i64NV (GLint location, GLint64EXT x, GLint64EXT y);
+GLAPI void APIENTRY glUniform3i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
+GLAPI void APIENTRY glUniform4i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
+GLAPI void APIENTRY glUniform1i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
+GLAPI void APIENTRY glUniform2i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
+GLAPI void APIENTRY glUniform3i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
+GLAPI void APIENTRY glUniform4i64vNV (GLint location, GLsizei count, const GLint64EXT *value);
+GLAPI void APIENTRY glUniform1ui64NV (GLint location, GLuint64EXT x);
+GLAPI void APIENTRY glUniform2ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y);
+GLAPI void APIENTRY glUniform3ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
+GLAPI void APIENTRY glUniform4ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
+GLAPI void APIENTRY glUniform1ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
+GLAPI void APIENTRY glUniform2ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
+GLAPI void APIENTRY glUniform3ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
+GLAPI void APIENTRY glUniform4ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
+GLAPI void APIENTRY glGetUniformi64vNV (GLuint program, GLint location, GLint64EXT *params);
+GLAPI void APIENTRY glProgramUniform1i64NV (GLuint program, GLint location, GLint64EXT x);
+GLAPI void APIENTRY glProgramUniform2i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
+GLAPI void APIENTRY glProgramUniform3i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
+GLAPI void APIENTRY glProgramUniform4i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
+GLAPI void APIENTRY glProgramUniform1i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
+GLAPI void APIENTRY glProgramUniform2i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
+GLAPI void APIENTRY glProgramUniform3i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
+GLAPI void APIENTRY glProgramUniform4i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
+GLAPI void APIENTRY glProgramUniform1ui64NV (GLuint program, GLint location, GLuint64EXT x);
+GLAPI void APIENTRY glProgramUniform2ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
+GLAPI void APIENTRY glProgramUniform3ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
+GLAPI void APIENTRY glProgramUniform4ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
+GLAPI void APIENTRY glProgramUniform1ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
+GLAPI void APIENTRY glProgramUniform2ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
+GLAPI void APIENTRY glProgramUniform3ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
+GLAPI void APIENTRY glProgramUniform4ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
+#endif
+#endif /* GL_NV_gpu_shader5 */
+
+#ifndef GL_NV_half_float
+#define GL_NV_half_float 1
+typedef unsigned short GLhalfNV;
+#define GL_HALF_FLOAT_NV 0x140B
+typedef void (APIENTRYP PFNGLVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y);
+typedef void (APIENTRYP PFNGLVERTEX2HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z);
+typedef void (APIENTRYP PFNGLVERTEX3HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
+typedef void (APIENTRYP PFNGLVERTEX4HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz);
+typedef void (APIENTRYP PFNGLNORMAL3HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
+typedef void (APIENTRYP PFNGLCOLOR3HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha);
+typedef void (APIENTRYP PFNGLCOLOR4HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLTEXCOORD1HNVPROC) (GLhalfNV s);
+typedef void (APIENTRYP PFNGLTEXCOORD1HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t);
+typedef void (APIENTRYP PFNGLTEXCOORD2HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r);
+typedef void (APIENTRYP PFNGLTEXCOORD3HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
+typedef void (APIENTRYP PFNGLTEXCOORD4HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
+typedef void (APIENTRYP PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLFOGCOORDHNVPROC) (GLhalfNV fog);
+typedef void (APIENTRYP PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
+typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight);
+typedef void (APIENTRYP PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVertex2hNV (GLhalfNV x, GLhalfNV y);
+GLAPI void APIENTRY glVertex2hvNV (const GLhalfNV *v);
+GLAPI void APIENTRY glVertex3hNV (GLhalfNV x, GLhalfNV y, GLhalfNV z);
+GLAPI void APIENTRY glVertex3hvNV (const GLhalfNV *v);
+GLAPI void APIENTRY glVertex4hNV (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
+GLAPI void APIENTRY glVertex4hvNV (const GLhalfNV *v);
+GLAPI void APIENTRY glNormal3hNV (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz);
+GLAPI void APIENTRY glNormal3hvNV (const GLhalfNV *v);
+GLAPI void APIENTRY glColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
+GLAPI void APIENTRY glColor3hvNV (const GLhalfNV *v);
+GLAPI void APIENTRY glColor4hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha);
+GLAPI void APIENTRY glColor4hvNV (const GLhalfNV *v);
+GLAPI void APIENTRY glTexCoord1hNV (GLhalfNV s);
+GLAPI void APIENTRY glTexCoord1hvNV (const GLhalfNV *v);
+GLAPI void APIENTRY glTexCoord2hNV (GLhalfNV s, GLhalfNV t);
+GLAPI void APIENTRY glTexCoord2hvNV (const GLhalfNV *v);
+GLAPI void APIENTRY glTexCoord3hNV (GLhalfNV s, GLhalfNV t, GLhalfNV r);
+GLAPI void APIENTRY glTexCoord3hvNV (const GLhalfNV *v);
+GLAPI void APIENTRY glTexCoord4hNV (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
+GLAPI void APIENTRY glTexCoord4hvNV (const GLhalfNV *v);
+GLAPI void APIENTRY glMultiTexCoord1hNV (GLenum target, GLhalfNV s);
+GLAPI void APIENTRY glMultiTexCoord1hvNV (GLenum target, const GLhalfNV *v);
+GLAPI void APIENTRY glMultiTexCoord2hNV (GLenum target, GLhalfNV s, GLhalfNV t);
+GLAPI void APIENTRY glMultiTexCoord2hvNV (GLenum target, const GLhalfNV *v);
+GLAPI void APIENTRY glMultiTexCoord3hNV (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r);
+GLAPI void APIENTRY glMultiTexCoord3hvNV (GLenum target, const GLhalfNV *v);
+GLAPI void APIENTRY glMultiTexCoord4hNV (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
+GLAPI void APIENTRY glMultiTexCoord4hvNV (GLenum target, const GLhalfNV *v);
+GLAPI void APIENTRY glFogCoordhNV (GLhalfNV fog);
+GLAPI void APIENTRY glFogCoordhvNV (const GLhalfNV *fog);
+GLAPI void APIENTRY glSecondaryColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue);
+GLAPI void APIENTRY glSecondaryColor3hvNV (const GLhalfNV *v);
+GLAPI void APIENTRY glVertexWeighthNV (GLhalfNV weight);
+GLAPI void APIENTRY glVertexWeighthvNV (const GLhalfNV *weight);
+GLAPI void APIENTRY glVertexAttrib1hNV (GLuint index, GLhalfNV x);
+GLAPI void APIENTRY glVertexAttrib1hvNV (GLuint index, const GLhalfNV *v);
+GLAPI void APIENTRY glVertexAttrib2hNV (GLuint index, GLhalfNV x, GLhalfNV y);
+GLAPI void APIENTRY glVertexAttrib2hvNV (GLuint index, const GLhalfNV *v);
+GLAPI void APIENTRY glVertexAttrib3hNV (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z);
+GLAPI void APIENTRY glVertexAttrib3hvNV (GLuint index, const GLhalfNV *v);
+GLAPI void APIENTRY glVertexAttrib4hNV (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
+GLAPI void APIENTRY glVertexAttrib4hvNV (GLuint index, const GLhalfNV *v);
+GLAPI void APIENTRY glVertexAttribs1hvNV (GLuint index, GLsizei n, const GLhalfNV *v);
+GLAPI void APIENTRY glVertexAttribs2hvNV (GLuint index, GLsizei n, const GLhalfNV *v);
+GLAPI void APIENTRY glVertexAttribs3hvNV (GLuint index, GLsizei n, const GLhalfNV *v);
+GLAPI void APIENTRY glVertexAttribs4hvNV (GLuint index, GLsizei n, const GLhalfNV *v);
+#endif
+#endif /* GL_NV_half_float */
+
+#ifndef GL_NV_light_max_exponent
+#define GL_NV_light_max_exponent 1
+#define GL_MAX_SHININESS_NV 0x8504
+#define GL_MAX_SPOT_EXPONENT_NV 0x8505
+#endif /* GL_NV_light_max_exponent */
+
+#ifndef GL_NV_multisample_coverage
+#define GL_NV_multisample_coverage 1
+#define GL_COLOR_SAMPLES_NV 0x8E20
+#endif /* GL_NV_multisample_coverage */
+
+#ifndef GL_NV_multisample_filter_hint
+#define GL_NV_multisample_filter_hint 1
+#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534
+#endif /* GL_NV_multisample_filter_hint */
+
+#ifndef GL_NV_occlusion_query
+#define GL_NV_occlusion_query 1
+#define GL_PIXEL_COUNTER_BITS_NV 0x8864
+#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865
+#define GL_PIXEL_COUNT_NV 0x8866
+#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867
+typedef void (APIENTRYP PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids);
+typedef void (APIENTRYP PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids);
+typedef GLboolean (APIENTRYP PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id);
+typedef void (APIENTRYP PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id);
+typedef void (APIENTRYP PFNGLENDOCCLUSIONQUERYNVPROC) (void);
+typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glGenOcclusionQueriesNV (GLsizei n, GLuint *ids);
+GLAPI void APIENTRY glDeleteOcclusionQueriesNV (GLsizei n, const GLuint *ids);
+GLAPI GLboolean APIENTRY glIsOcclusionQueryNV (GLuint id);
+GLAPI void APIENTRY glBeginOcclusionQueryNV (GLuint id);
+GLAPI void APIENTRY glEndOcclusionQueryNV (void);
+GLAPI void APIENTRY glGetOcclusionQueryivNV (GLuint id, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetOcclusionQueryuivNV (GLuint id, GLenum pname, GLuint *params);
+#endif
+#endif /* GL_NV_occlusion_query */
+
+#ifndef GL_NV_packed_depth_stencil
+#define GL_NV_packed_depth_stencil 1
+#define GL_DEPTH_STENCIL_NV 0x84F9
+#define GL_UNSIGNED_INT_24_8_NV 0x84FA
+#endif /* GL_NV_packed_depth_stencil */
+
+#ifndef GL_NV_parameter_buffer_object
+#define GL_NV_parameter_buffer_object 1
+#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0
+#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1
+#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2
+#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3
+#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4
+typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat *params);
+typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint *params);
+typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glProgramBufferParametersfvNV (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat *params);
+GLAPI void APIENTRY glProgramBufferParametersIivNV (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint *params);
+GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint *params);
+#endif
+#endif /* GL_NV_parameter_buffer_object */
+
+#ifndef GL_NV_parameter_buffer_object2
+#define GL_NV_parameter_buffer_object2 1
+#endif /* GL_NV_parameter_buffer_object2 */
+
+#ifndef GL_NV_path_rendering
+#define GL_NV_path_rendering 1
+#define GL_PATH_FORMAT_SVG_NV 0x9070
+#define GL_PATH_FORMAT_PS_NV 0x9071
+#define GL_STANDARD_FONT_NAME_NV 0x9072
+#define GL_SYSTEM_FONT_NAME_NV 0x9073
+#define GL_FILE_NAME_NV 0x9074
+#define GL_PATH_STROKE_WIDTH_NV 0x9075
+#define GL_PATH_END_CAPS_NV 0x9076
+#define GL_PATH_INITIAL_END_CAP_NV 0x9077
+#define GL_PATH_TERMINAL_END_CAP_NV 0x9078
+#define GL_PATH_JOIN_STYLE_NV 0x9079
+#define GL_PATH_MITER_LIMIT_NV 0x907A
+#define GL_PATH_DASH_CAPS_NV 0x907B
+#define GL_PATH_INITIAL_DASH_CAP_NV 0x907C
+#define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D
+#define GL_PATH_DASH_OFFSET_NV 0x907E
+#define GL_PATH_CLIENT_LENGTH_NV 0x907F
+#define GL_PATH_FILL_MODE_NV 0x9080
+#define GL_PATH_FILL_MASK_NV 0x9081
+#define GL_PATH_FILL_COVER_MODE_NV 0x9082
+#define GL_PATH_STROKE_COVER_MODE_NV 0x9083
+#define GL_PATH_STROKE_MASK_NV 0x9084
+#define GL_COUNT_UP_NV 0x9088
+#define GL_COUNT_DOWN_NV 0x9089
+#define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A
+#define GL_CONVEX_HULL_NV 0x908B
+#define GL_BOUNDING_BOX_NV 0x908D
+#define GL_TRANSLATE_X_NV 0x908E
+#define GL_TRANSLATE_Y_NV 0x908F
+#define GL_TRANSLATE_2D_NV 0x9090
+#define GL_TRANSLATE_3D_NV 0x9091
+#define GL_AFFINE_2D_NV 0x9092
+#define GL_AFFINE_3D_NV 0x9094
+#define GL_TRANSPOSE_AFFINE_2D_NV 0x9096
+#define GL_TRANSPOSE_AFFINE_3D_NV 0x9098
+#define GL_UTF8_NV 0x909A
+#define GL_UTF16_NV 0x909B
+#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C
+#define GL_PATH_COMMAND_COUNT_NV 0x909D
+#define GL_PATH_COORD_COUNT_NV 0x909E
+#define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F
+#define GL_PATH_COMPUTED_LENGTH_NV 0x90A0
+#define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1
+#define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2
+#define GL_SQUARE_NV 0x90A3
+#define GL_ROUND_NV 0x90A4
+#define GL_TRIANGULAR_NV 0x90A5
+#define GL_BEVEL_NV 0x90A6
+#define GL_MITER_REVERT_NV 0x90A7
+#define GL_MITER_TRUNCATE_NV 0x90A8
+#define GL_SKIP_MISSING_GLYPH_NV 0x90A9
+#define GL_USE_MISSING_GLYPH_NV 0x90AA
+#define GL_PATH_ERROR_POSITION_NV 0x90AB
+#define GL_PATH_FOG_GEN_MODE_NV 0x90AC
+#define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD
+#define GL_ADJACENT_PAIRS_NV 0x90AE
+#define GL_FIRST_TO_REST_NV 0x90AF
+#define GL_PATH_GEN_MODE_NV 0x90B0
+#define GL_PATH_GEN_COEFF_NV 0x90B1
+#define GL_PATH_GEN_COLOR_FORMAT_NV 0x90B2
+#define GL_PATH_GEN_COMPONENTS_NV 0x90B3
+#define GL_PATH_STENCIL_FUNC_NV 0x90B7
+#define GL_PATH_STENCIL_REF_NV 0x90B8
+#define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9
+#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD
+#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE
+#define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF
+#define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4
+#define GL_MOVE_TO_RESETS_NV 0x90B5
+#define GL_MOVE_TO_CONTINUES_NV 0x90B6
+#define GL_CLOSE_PATH_NV 0x00
+#define GL_MOVE_TO_NV 0x02
+#define GL_RELATIVE_MOVE_TO_NV 0x03
+#define GL_LINE_TO_NV 0x04
+#define GL_RELATIVE_LINE_TO_NV 0x05
+#define GL_HORIZONTAL_LINE_TO_NV 0x06
+#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07
+#define GL_VERTICAL_LINE_TO_NV 0x08
+#define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09
+#define GL_QUADRATIC_CURVE_TO_NV 0x0A
+#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B
+#define GL_CUBIC_CURVE_TO_NV 0x0C
+#define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D
+#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E
+#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F
+#define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10
+#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11
+#define GL_SMALL_CCW_ARC_TO_NV 0x12
+#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13
+#define GL_SMALL_CW_ARC_TO_NV 0x14
+#define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15
+#define GL_LARGE_CCW_ARC_TO_NV 0x16
+#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17
+#define GL_LARGE_CW_ARC_TO_NV 0x18
+#define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19
+#define GL_RESTART_PATH_NV 0xF0
+#define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2
+#define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4
+#define GL_RECT_NV 0xF6
+#define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8
+#define GL_CIRCULAR_CW_ARC_TO_NV 0xFA
+#define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC
+#define GL_ARC_TO_NV 0xFE
+#define GL_RELATIVE_ARC_TO_NV 0xFF
+#define GL_BOLD_BIT_NV 0x01
+#define GL_ITALIC_BIT_NV 0x02
+#define GL_GLYPH_WIDTH_BIT_NV 0x01
+#define GL_GLYPH_HEIGHT_BIT_NV 0x02
+#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04
+#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08
+#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10
+#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20
+#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40
+#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80
+#define GL_GLYPH_HAS_KERNING_BIT_NV 0x100
+#define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000
+#define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000
+#define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000
+#define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000
+#define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000
+#define GL_FONT_ASCENDER_BIT_NV 0x00200000
+#define GL_FONT_DESCENDER_BIT_NV 0x00400000
+#define GL_FONT_HEIGHT_BIT_NV 0x00800000
+#define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000
+#define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000
+#define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000
+#define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000
+#define GL_FONT_HAS_KERNING_BIT_NV 0x10000000
+#define GL_PRIMARY_COLOR_NV 0x852C
+#define GL_SECONDARY_COLOR_NV 0x852D
+typedef GLuint (APIENTRYP PFNGLGENPATHSNVPROC) (GLsizei range);
+typedef void (APIENTRYP PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range);
+typedef GLboolean (APIENTRYP PFNGLISPATHNVPROC) (GLuint path);
+typedef void (APIENTRYP PFNGLPATHCOMMANDSNVPROC) (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords);
+typedef void (APIENTRYP PFNGLPATHCOORDSNVPROC) (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords);
+typedef void (APIENTRYP PFNGLPATHSUBCOMMANDSNVPROC) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords);
+typedef void (APIENTRYP PFNGLPATHSUBCOORDSNVPROC) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords);
+typedef void (APIENTRYP PFNGLPATHSTRINGNVPROC) (GLuint path, GLenum format, GLsizei length, const void *pathString);
+typedef void (APIENTRYP PFNGLPATHGLYPHSNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
+typedef void (APIENTRYP PFNGLPATHGLYPHRANGENVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
+typedef void (APIENTRYP PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights);
+typedef void (APIENTRYP PFNGLCOPYPATHNVPROC) (GLuint resultPath, GLuint srcPath);
+typedef void (APIENTRYP PFNGLINTERPOLATEPATHSNVPROC) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight);
+typedef void (APIENTRYP PFNGLTRANSFORMPATHNVPROC) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues);
+typedef void (APIENTRYP PFNGLPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, const GLint *value);
+typedef void (APIENTRYP PFNGLPATHPARAMETERINVPROC) (GLuint path, GLenum pname, GLint value);
+typedef void (APIENTRYP PFNGLPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, const GLfloat *value);
+typedef void (APIENTRYP PFNGLPATHPARAMETERFNVPROC) (GLuint path, GLenum pname, GLfloat value);
+typedef void (APIENTRYP PFNGLPATHDASHARRAYNVPROC) (GLuint path, GLsizei dashCount, const GLfloat *dashArray);
+typedef void (APIENTRYP PFNGLPATHSTENCILFUNCNVPROC) (GLenum func, GLint ref, GLuint mask);
+typedef void (APIENTRYP PFNGLPATHSTENCILDEPTHOFFSETNVPROC) (GLfloat factor, GLfloat units);
+typedef void (APIENTRYP PFNGLSTENCILFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask);
+typedef void (APIENTRYP PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask);
+typedef void (APIENTRYP PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues);
+typedef void (APIENTRYP PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues);
+typedef void (APIENTRYP PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum func);
+typedef void (APIENTRYP PFNGLPATHCOLORGENNVPROC) (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs);
+typedef void (APIENTRYP PFNGLPATHTEXGENNVPROC) (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs);
+typedef void (APIENTRYP PFNGLPATHFOGGENNVPROC) (GLenum genMode);
+typedef void (APIENTRYP PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode);
+typedef void (APIENTRYP PFNGLCOVERSTROKEPATHNVPROC) (GLuint path, GLenum coverMode);
+typedef void (APIENTRYP PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
+typedef void (APIENTRYP PFNGLCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
+typedef void (APIENTRYP PFNGLGETPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, GLint *value);
+typedef void (APIENTRYP PFNGLGETPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, GLfloat *value);
+typedef void (APIENTRYP PFNGLGETPATHCOMMANDSNVPROC) (GLuint path, GLubyte *commands);
+typedef void (APIENTRYP PFNGLGETPATHCOORDSNVPROC) (GLuint path, GLfloat *coords);
+typedef void (APIENTRYP PFNGLGETPATHDASHARRAYNVPROC) (GLuint path, GLfloat *dashArray);
+typedef void (APIENTRYP PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics);
+typedef void (APIENTRYP PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics);
+typedef void (APIENTRYP PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing);
+typedef void (APIENTRYP PFNGLGETPATHCOLORGENIVNVPROC) (GLenum color, GLenum pname, GLint *value);
+typedef void (APIENTRYP PFNGLGETPATHCOLORGENFVNVPROC) (GLenum color, GLenum pname, GLfloat *value);
+typedef void (APIENTRYP PFNGLGETPATHTEXGENIVNVPROC) (GLenum texCoordSet, GLenum pname, GLint *value);
+typedef void (APIENTRYP PFNGLGETPATHTEXGENFVNVPROC) (GLenum texCoordSet, GLenum pname, GLfloat *value);
+typedef GLboolean (APIENTRYP PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y);
+typedef GLboolean (APIENTRYP PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y);
+typedef GLfloat (APIENTRYP PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments);
+typedef GLboolean (APIENTRYP PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLuint APIENTRY glGenPathsNV (GLsizei range);
+GLAPI void APIENTRY glDeletePathsNV (GLuint path, GLsizei range);
+GLAPI GLboolean APIENTRY glIsPathNV (GLuint path);
+GLAPI void APIENTRY glPathCommandsNV (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords);
+GLAPI void APIENTRY glPathCoordsNV (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords);
+GLAPI void APIENTRY glPathSubCommandsNV (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords);
+GLAPI void APIENTRY glPathSubCoordsNV (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords);
+GLAPI void APIENTRY glPathStringNV (GLuint path, GLenum format, GLsizei length, const void *pathString);
+GLAPI void APIENTRY glPathGlyphsNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
+GLAPI void APIENTRY glPathGlyphRangeNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
+GLAPI void APIENTRY glWeightPathsNV (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights);
+GLAPI void APIENTRY glCopyPathNV (GLuint resultPath, GLuint srcPath);
+GLAPI void APIENTRY glInterpolatePathsNV (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight);
+GLAPI void APIENTRY glTransformPathNV (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues);
+GLAPI void APIENTRY glPathParameterivNV (GLuint path, GLenum pname, const GLint *value);
+GLAPI void APIENTRY glPathParameteriNV (GLuint path, GLenum pname, GLint value);
+GLAPI void APIENTRY glPathParameterfvNV (GLuint path, GLenum pname, const GLfloat *value);
+GLAPI void APIENTRY glPathParameterfNV (GLuint path, GLenum pname, GLfloat value);
+GLAPI void APIENTRY glPathDashArrayNV (GLuint path, GLsizei dashCount, const GLfloat *dashArray);
+GLAPI void APIENTRY glPathStencilFuncNV (GLenum func, GLint ref, GLuint mask);
+GLAPI void APIENTRY glPathStencilDepthOffsetNV (GLfloat factor, GLfloat units);
+GLAPI void APIENTRY glStencilFillPathNV (GLuint path, GLenum fillMode, GLuint mask);
+GLAPI void APIENTRY glStencilStrokePathNV (GLuint path, GLint reference, GLuint mask);
+GLAPI void APIENTRY glStencilFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues);
+GLAPI void APIENTRY glStencilStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues);
+GLAPI void APIENTRY glPathCoverDepthFuncNV (GLenum func);
+GLAPI void APIENTRY glPathColorGenNV (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs);
+GLAPI void APIENTRY glPathTexGenNV (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs);
+GLAPI void APIENTRY glPathFogGenNV (GLenum genMode);
+GLAPI void APIENTRY glCoverFillPathNV (GLuint path, GLenum coverMode);
+GLAPI void APIENTRY glCoverStrokePathNV (GLuint path, GLenum coverMode);
+GLAPI void APIENTRY glCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
+GLAPI void APIENTRY glCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
+GLAPI void APIENTRY glGetPathParameterivNV (GLuint path, GLenum pname, GLint *value);
+GLAPI void APIENTRY glGetPathParameterfvNV (GLuint path, GLenum pname, GLfloat *value);
+GLAPI void APIENTRY glGetPathCommandsNV (GLuint path, GLubyte *commands);
+GLAPI void APIENTRY glGetPathCoordsNV (GLuint path, GLfloat *coords);
+GLAPI void APIENTRY glGetPathDashArrayNV (GLuint path, GLfloat *dashArray);
+GLAPI void APIENTRY glGetPathMetricsNV (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics);
+GLAPI void APIENTRY glGetPathMetricRangeNV (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics);
+GLAPI void APIENTRY glGetPathSpacingNV (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing);
+GLAPI void APIENTRY glGetPathColorGenivNV (GLenum color, GLenum pname, GLint *value);
+GLAPI void APIENTRY glGetPathColorGenfvNV (GLenum color, GLenum pname, GLfloat *value);
+GLAPI void APIENTRY glGetPathTexGenivNV (GLenum texCoordSet, GLenum pname, GLint *value);
+GLAPI void APIENTRY glGetPathTexGenfvNV (GLenum texCoordSet, GLenum pname, GLfloat *value);
+GLAPI GLboolean APIENTRY glIsPointInFillPathNV (GLuint path, GLuint mask, GLfloat x, GLfloat y);
+GLAPI GLboolean APIENTRY glIsPointInStrokePathNV (GLuint path, GLfloat x, GLfloat y);
+GLAPI GLfloat APIENTRY glGetPathLengthNV (GLuint path, GLsizei startSegment, GLsizei numSegments);
+GLAPI GLboolean APIENTRY glPointAlongPathNV (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY);
+#endif
+#endif /* GL_NV_path_rendering */
+
+#ifndef GL_NV_pixel_data_range
+#define GL_NV_pixel_data_range 1
+#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878
+#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879
+#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A
+#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B
+#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C
+#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D
+typedef void (APIENTRYP PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, const void *pointer);
+typedef void (APIENTRYP PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPixelDataRangeNV (GLenum target, GLsizei length, const void *pointer);
+GLAPI void APIENTRY glFlushPixelDataRangeNV (GLenum target);
+#endif
+#endif /* GL_NV_pixel_data_range */
+
+#ifndef GL_NV_point_sprite
+#define GL_NV_point_sprite 1
+#define GL_POINT_SPRITE_NV 0x8861
+#define GL_COORD_REPLACE_NV 0x8862
+#define GL_POINT_SPRITE_R_MODE_NV 0x8863
+typedef void (APIENTRYP PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPointParameteriNV (GLenum pname, GLint param);
+GLAPI void APIENTRY glPointParameterivNV (GLenum pname, const GLint *params);
+#endif
+#endif /* GL_NV_point_sprite */
+
+#ifndef GL_NV_present_video
+#define GL_NV_present_video 1
+#define GL_FRAME_NV 0x8E26
+#define GL_FIELDS_NV 0x8E27
+#define GL_CURRENT_TIME_NV 0x8E28
+#define GL_NUM_FILL_STREAMS_NV 0x8E29
+#define GL_PRESENT_TIME_NV 0x8E2A
+#define GL_PRESENT_DURATION_NV 0x8E2B
+typedef void (APIENTRYP PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1);
+typedef void (APIENTRYP PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3);
+typedef void (APIENTRYP PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint *params);
+typedef void (APIENTRYP PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT *params);
+typedef void (APIENTRYP PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPresentFrameKeyedNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1);
+GLAPI void APIENTRY glPresentFrameDualFillNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3);
+GLAPI void APIENTRY glGetVideoivNV (GLuint video_slot, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetVideouivNV (GLuint video_slot, GLenum pname, GLuint *params);
+GLAPI void APIENTRY glGetVideoi64vNV (GLuint video_slot, GLenum pname, GLint64EXT *params);
+GLAPI void APIENTRY glGetVideoui64vNV (GLuint video_slot, GLenum pname, GLuint64EXT *params);
+#endif
+#endif /* GL_NV_present_video */
+
+#ifndef GL_NV_primitive_restart
+#define GL_NV_primitive_restart 1
+#define GL_PRIMITIVE_RESTART_NV 0x8558
+#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559
+typedef void (APIENTRYP PFNGLPRIMITIVERESTARTNVPROC) (void);
+typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPrimitiveRestartNV (void);
+GLAPI void APIENTRY glPrimitiveRestartIndexNV (GLuint index);
+#endif
+#endif /* GL_NV_primitive_restart */
+
+#ifndef GL_NV_register_combiners
+#define GL_NV_register_combiners 1
+#define GL_REGISTER_COMBINERS_NV 0x8522
+#define GL_VARIABLE_A_NV 0x8523
+#define GL_VARIABLE_B_NV 0x8524
+#define GL_VARIABLE_C_NV 0x8525
+#define GL_VARIABLE_D_NV 0x8526
+#define GL_VARIABLE_E_NV 0x8527
+#define GL_VARIABLE_F_NV 0x8528
+#define GL_VARIABLE_G_NV 0x8529
+#define GL_CONSTANT_COLOR0_NV 0x852A
+#define GL_CONSTANT_COLOR1_NV 0x852B
+#define GL_SPARE0_NV 0x852E
+#define GL_SPARE1_NV 0x852F
+#define GL_DISCARD_NV 0x8530
+#define GL_E_TIMES_F_NV 0x8531
+#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532
+#define GL_UNSIGNED_IDENTITY_NV 0x8536
+#define GL_UNSIGNED_INVERT_NV 0x8537
+#define GL_EXPAND_NORMAL_NV 0x8538
+#define GL_EXPAND_NEGATE_NV 0x8539
+#define GL_HALF_BIAS_NORMAL_NV 0x853A
+#define GL_HALF_BIAS_NEGATE_NV 0x853B
+#define GL_SIGNED_IDENTITY_NV 0x853C
+#define GL_SIGNED_NEGATE_NV 0x853D
+#define GL_SCALE_BY_TWO_NV 0x853E
+#define GL_SCALE_BY_FOUR_NV 0x853F
+#define GL_SCALE_BY_ONE_HALF_NV 0x8540
+#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541
+#define GL_COMBINER_INPUT_NV 0x8542
+#define GL_COMBINER_MAPPING_NV 0x8543
+#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544
+#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545
+#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546
+#define GL_COMBINER_MUX_SUM_NV 0x8547
+#define GL_COMBINER_SCALE_NV 0x8548
+#define GL_COMBINER_BIAS_NV 0x8549
+#define GL_COMBINER_AB_OUTPUT_NV 0x854A
+#define GL_COMBINER_CD_OUTPUT_NV 0x854B
+#define GL_COMBINER_SUM_OUTPUT_NV 0x854C
+#define GL_MAX_GENERAL_COMBINERS_NV 0x854D
+#define GL_NUM_GENERAL_COMBINERS_NV 0x854E
+#define GL_COLOR_SUM_CLAMP_NV 0x854F
+#define GL_COMBINER0_NV 0x8550
+#define GL_COMBINER1_NV 0x8551
+#define GL_COMBINER2_NV 0x8552
+#define GL_COMBINER3_NV 0x8553
+#define GL_COMBINER4_NV 0x8554
+#define GL_COMBINER5_NV 0x8555
+#define GL_COMBINER6_NV 0x8556
+#define GL_COMBINER7_NV 0x8557
+typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+typedef void (APIENTRYP PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
+typedef void (APIENTRYP PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glCombinerParameterfvNV (GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glCombinerParameterfNV (GLenum pname, GLfloat param);
+GLAPI void APIENTRY glCombinerParameterivNV (GLenum pname, const GLint *params);
+GLAPI void APIENTRY glCombinerParameteriNV (GLenum pname, GLint param);
+GLAPI void APIENTRY glCombinerInputNV (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+GLAPI void APIENTRY glCombinerOutputNV (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
+GLAPI void APIENTRY glFinalCombinerInputNV (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+GLAPI void APIENTRY glGetCombinerInputParameterfvNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetCombinerInputParameterivNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetCombinerOutputParameterfvNV (GLenum stage, GLenum portion, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetCombinerOutputParameterivNV (GLenum stage, GLenum portion, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum variable, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV (GLenum variable, GLenum pname, GLint *params);
+#endif
+#endif /* GL_NV_register_combiners */
+
+#ifndef GL_NV_register_combiners2
+#define GL_NV_register_combiners2 1
+#define GL_PER_STAGE_CONSTANTS_NV 0x8535
+typedef void (APIENTRYP PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glCombinerStageParameterfvNV (GLenum stage, GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum stage, GLenum pname, GLfloat *params);
+#endif
+#endif /* GL_NV_register_combiners2 */
+
+#ifndef GL_NV_shader_atomic_counters
+#define GL_NV_shader_atomic_counters 1
+#endif /* GL_NV_shader_atomic_counters */
+
+#ifndef GL_NV_shader_atomic_float
+#define GL_NV_shader_atomic_float 1
+#endif /* GL_NV_shader_atomic_float */
+
+#ifndef GL_NV_shader_buffer_load
+#define GL_NV_shader_buffer_load 1
+#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D
+#define GL_GPU_ADDRESS_NV 0x8F34
+#define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35
+typedef void (APIENTRYP PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access);
+typedef void (APIENTRYP PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target);
+typedef GLboolean (APIENTRYP PFNGLISBUFFERRESIDENTNVPROC) (GLenum target);
+typedef void (APIENTRYP PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access);
+typedef void (APIENTRYP PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer);
+typedef GLboolean (APIENTRYP PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer);
+typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT *params);
+typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT *params);
+typedef void (APIENTRYP PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT *result);
+typedef void (APIENTRYP PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value);
+typedef void (APIENTRYP PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value);
+typedef void (APIENTRYP PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT *params);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value);
+typedef void (APIENTRYP PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glMakeBufferResidentNV (GLenum target, GLenum access);
+GLAPI void APIENTRY glMakeBufferNonResidentNV (GLenum target);
+GLAPI GLboolean APIENTRY glIsBufferResidentNV (GLenum target);
+GLAPI void APIENTRY glMakeNamedBufferResidentNV (GLuint buffer, GLenum access);
+GLAPI void APIENTRY glMakeNamedBufferNonResidentNV (GLuint buffer);
+GLAPI GLboolean APIENTRY glIsNamedBufferResidentNV (GLuint buffer);
+GLAPI void APIENTRY glGetBufferParameterui64vNV (GLenum target, GLenum pname, GLuint64EXT *params);
+GLAPI void APIENTRY glGetNamedBufferParameterui64vNV (GLuint buffer, GLenum pname, GLuint64EXT *params);
+GLAPI void APIENTRY glGetIntegerui64vNV (GLenum value, GLuint64EXT *result);
+GLAPI void APIENTRY glUniformui64NV (GLint location, GLuint64EXT value);
+GLAPI void APIENTRY glUniformui64vNV (GLint location, GLsizei count, const GLuint64EXT *value);
+GLAPI void APIENTRY glGetUniformui64vNV (GLuint program, GLint location, GLuint64EXT *params);
+GLAPI void APIENTRY glProgramUniformui64NV (GLuint program, GLint location, GLuint64EXT value);
+GLAPI void APIENTRY glProgramUniformui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
+#endif
+#endif /* GL_NV_shader_buffer_load */
+
+#ifndef GL_NV_shader_buffer_store
+#define GL_NV_shader_buffer_store 1
+#define GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV 0x00000010
+#endif /* GL_NV_shader_buffer_store */
+
+#ifndef GL_NV_shader_storage_buffer_object
+#define GL_NV_shader_storage_buffer_object 1
+#endif /* GL_NV_shader_storage_buffer_object */
+
+#ifndef GL_NV_tessellation_program5
+#define GL_NV_tessellation_program5 1
+#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8
+#define GL_TESS_CONTROL_PROGRAM_NV 0x891E
+#define GL_TESS_EVALUATION_PROGRAM_NV 0x891F
+#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74
+#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75
+#endif /* GL_NV_tessellation_program5 */
+
+#ifndef GL_NV_texgen_emboss
+#define GL_NV_texgen_emboss 1
+#define GL_EMBOSS_LIGHT_NV 0x855D
+#define GL_EMBOSS_CONSTANT_NV 0x855E
+#define GL_EMBOSS_MAP_NV 0x855F
+#endif /* GL_NV_texgen_emboss */
+
+#ifndef GL_NV_texgen_reflection
+#define GL_NV_texgen_reflection 1
+#define GL_NORMAL_MAP_NV 0x8511
+#define GL_REFLECTION_MAP_NV 0x8512
+#endif /* GL_NV_texgen_reflection */
+
+#ifndef GL_NV_texture_barrier
+#define GL_NV_texture_barrier 1
+typedef void (APIENTRYP PFNGLTEXTUREBARRIERNVPROC) (void);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTextureBarrierNV (void);
+#endif
+#endif /* GL_NV_texture_barrier */
+
+#ifndef GL_NV_texture_compression_vtc
+#define GL_NV_texture_compression_vtc 1
+#endif /* GL_NV_texture_compression_vtc */
+
+#ifndef GL_NV_texture_env_combine4
+#define GL_NV_texture_env_combine4 1
+#define GL_COMBINE4_NV 0x8503
+#define GL_SOURCE3_RGB_NV 0x8583
+#define GL_SOURCE3_ALPHA_NV 0x858B
+#define GL_OPERAND3_RGB_NV 0x8593
+#define GL_OPERAND3_ALPHA_NV 0x859B
+#endif /* GL_NV_texture_env_combine4 */
+
+#ifndef GL_NV_texture_expand_normal
+#define GL_NV_texture_expand_normal 1
+#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F
+#endif /* GL_NV_texture_expand_normal */
+
+#ifndef GL_NV_texture_multisample
+#define GL_NV_texture_multisample 1
+#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045
+#define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046
+typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
+typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
+typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
+typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
+typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
+typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTexImage2DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
+GLAPI void APIENTRY glTexImage3DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
+GLAPI void APIENTRY glTextureImage2DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
+GLAPI void APIENTRY glTextureImage3DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
+GLAPI void APIENTRY glTextureImage2DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
+GLAPI void APIENTRY glTextureImage3DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
+#endif
+#endif /* GL_NV_texture_multisample */
+
+#ifndef GL_NV_texture_rectangle
+#define GL_NV_texture_rectangle 1
+#define GL_TEXTURE_RECTANGLE_NV 0x84F5
+#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6
+#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8
+#endif /* GL_NV_texture_rectangle */
+
+#ifndef GL_NV_texture_shader
+#define GL_NV_texture_shader 1
+#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C
+#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D
+#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E
+#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9
+#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA
+#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB
+#define GL_DSDT_MAG_INTENSITY_NV 0x86DC
+#define GL_SHADER_CONSISTENT_NV 0x86DD
+#define GL_TEXTURE_SHADER_NV 0x86DE
+#define GL_SHADER_OPERATION_NV 0x86DF
+#define GL_CULL_MODES_NV 0x86E0
+#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1
+#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2
+#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3
+#define GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1
+#define GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2
+#define GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3
+#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4
+#define GL_CONST_EYE_NV 0x86E5
+#define GL_PASS_THROUGH_NV 0x86E6
+#define GL_CULL_FRAGMENT_NV 0x86E7
+#define GL_OFFSET_TEXTURE_2D_NV 0x86E8
+#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9
+#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA
+#define GL_DOT_PRODUCT_NV 0x86EC
+#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED
+#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE
+#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0
+#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1
+#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2
+#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3
+#define GL_HILO_NV 0x86F4
+#define GL_DSDT_NV 0x86F5
+#define GL_DSDT_MAG_NV 0x86F6
+#define GL_DSDT_MAG_VIB_NV 0x86F7
+#define GL_HILO16_NV 0x86F8
+#define GL_SIGNED_HILO_NV 0x86F9
+#define GL_SIGNED_HILO16_NV 0x86FA
+#define GL_SIGNED_RGBA_NV 0x86FB
+#define GL_SIGNED_RGBA8_NV 0x86FC
+#define GL_SIGNED_RGB_NV 0x86FE
+#define GL_SIGNED_RGB8_NV 0x86FF
+#define GL_SIGNED_LUMINANCE_NV 0x8701
+#define GL_SIGNED_LUMINANCE8_NV 0x8702
+#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703
+#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704
+#define GL_SIGNED_ALPHA_NV 0x8705
+#define GL_SIGNED_ALPHA8_NV 0x8706
+#define GL_SIGNED_INTENSITY_NV 0x8707
+#define GL_SIGNED_INTENSITY8_NV 0x8708
+#define GL_DSDT8_NV 0x8709
+#define GL_DSDT8_MAG8_NV 0x870A
+#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B
+#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C
+#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D
+#define GL_HI_SCALE_NV 0x870E
+#define GL_LO_SCALE_NV 0x870F
+#define GL_DS_SCALE_NV 0x8710
+#define GL_DT_SCALE_NV 0x8711
+#define GL_MAGNITUDE_SCALE_NV 0x8712
+#define GL_VIBRANCE_SCALE_NV 0x8713
+#define GL_HI_BIAS_NV 0x8714
+#define GL_LO_BIAS_NV 0x8715
+#define GL_DS_BIAS_NV 0x8716
+#define GL_DT_BIAS_NV 0x8717
+#define GL_MAGNITUDE_BIAS_NV 0x8718
+#define GL_VIBRANCE_BIAS_NV 0x8719
+#define GL_TEXTURE_BORDER_VALUES_NV 0x871A
+#define GL_TEXTURE_HI_SIZE_NV 0x871B
+#define GL_TEXTURE_LO_SIZE_NV 0x871C
+#define GL_TEXTURE_DS_SIZE_NV 0x871D
+#define GL_TEXTURE_DT_SIZE_NV 0x871E
+#define GL_TEXTURE_MAG_SIZE_NV 0x871F
+#endif /* GL_NV_texture_shader */
+
+#ifndef GL_NV_texture_shader2
+#define GL_NV_texture_shader2 1
+#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF
+#endif /* GL_NV_texture_shader2 */
+
+#ifndef GL_NV_texture_shader3
+#define GL_NV_texture_shader3 1
+#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850
+#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851
+#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852
+#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853
+#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854
+#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855
+#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856
+#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857
+#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858
+#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859
+#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A
+#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B
+#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C
+#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D
+#define GL_HILO8_NV 0x885E
+#define GL_SIGNED_HILO8_NV 0x885F
+#define GL_FORCE_BLUE_TO_ONE_NV 0x8860
+#endif /* GL_NV_texture_shader3 */
+
+#ifndef GL_NV_transform_feedback
+#define GL_NV_transform_feedback 1
+#define GL_BACK_PRIMARY_COLOR_NV 0x8C77
+#define GL_BACK_SECONDARY_COLOR_NV 0x8C78
+#define GL_TEXTURE_COORD_NV 0x8C79
+#define GL_CLIP_DISTANCE_NV 0x8C7A
+#define GL_VERTEX_ID_NV 0x8C7B
+#define GL_PRIMITIVE_ID_NV 0x8C7C
+#define GL_GENERIC_ATTRIB_NV 0x8C7D
+#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E
+#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80
+#define GL_ACTIVE_VARYINGS_NV 0x8C81
+#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82
+#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83
+#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84
+#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85
+#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86
+#define GL_PRIMITIVES_GENERATED_NV 0x8C87
+#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88
+#define GL_RASTERIZER_DISCARD_NV 0x8C89
+#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B
+#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C
+#define GL_SEPARATE_ATTRIBS_NV 0x8C8D
+#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E
+#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F
+#define GL_LAYER_NV 0x8DAA
+#define GL_NEXT_BUFFER_NV -2
+#define GL_SKIP_COMPONENTS4_NV -3
+#define GL_SKIP_COMPONENTS3_NV -4
+#define GL_SKIP_COMPONENTS2_NV -5
+#define GL_SKIP_COMPONENTS1_NV -6
+typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode);
+typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKNVPROC) (void);
+typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode);
+typedef void (APIENTRYP PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
+typedef void (APIENTRYP PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer);
+typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode);
+typedef void (APIENTRYP PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name);
+typedef GLint (APIENTRYP PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name);
+typedef void (APIENTRYP PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
+typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location);
+typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC) (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBeginTransformFeedbackNV (GLenum primitiveMode);
+GLAPI void APIENTRY glEndTransformFeedbackNV (void);
+GLAPI void APIENTRY glTransformFeedbackAttribsNV (GLuint count, const GLint *attribs, GLenum bufferMode);
+GLAPI void APIENTRY glBindBufferRangeNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+GLAPI void APIENTRY glBindBufferOffsetNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
+GLAPI void APIENTRY glBindBufferBaseNV (GLenum target, GLuint index, GLuint buffer);
+GLAPI void APIENTRY glTransformFeedbackVaryingsNV (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode);
+GLAPI void APIENTRY glActiveVaryingNV (GLuint program, const GLchar *name);
+GLAPI GLint APIENTRY glGetVaryingLocationNV (GLuint program, const GLchar *name);
+GLAPI void APIENTRY glGetActiveVaryingNV (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
+GLAPI void APIENTRY glGetTransformFeedbackVaryingNV (GLuint program, GLuint index, GLint *location);
+GLAPI void APIENTRY glTransformFeedbackStreamAttribsNV (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode);
+#endif
+#endif /* GL_NV_transform_feedback */
+
+#ifndef GL_NV_transform_feedback2
+#define GL_NV_transform_feedback2 1
+#define GL_TRANSFORM_FEEDBACK_NV 0x8E22
+#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23
+#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24
+#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25
+typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id);
+typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint *ids);
+typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint *ids);
+typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id);
+typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void);
+typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void);
+typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBindTransformFeedbackNV (GLenum target, GLuint id);
+GLAPI void APIENTRY glDeleteTransformFeedbacksNV (GLsizei n, const GLuint *ids);
+GLAPI void APIENTRY glGenTransformFeedbacksNV (GLsizei n, GLuint *ids);
+GLAPI GLboolean APIENTRY glIsTransformFeedbackNV (GLuint id);
+GLAPI void APIENTRY glPauseTransformFeedbackNV (void);
+GLAPI void APIENTRY glResumeTransformFeedbackNV (void);
+GLAPI void APIENTRY glDrawTransformFeedbackNV (GLenum mode, GLuint id);
+#endif
+#endif /* GL_NV_transform_feedback2 */
+
+#ifndef GL_NV_vdpau_interop
+#define GL_NV_vdpau_interop 1
+typedef GLintptr GLvdpauSurfaceNV;
+#define GL_SURFACE_STATE_NV 0x86EB
+#define GL_SURFACE_REGISTERED_NV 0x86FD
+#define GL_SURFACE_MAPPED_NV 0x8700
+#define GL_WRITE_DISCARD_NV 0x88BE
+typedef void (APIENTRYP PFNGLVDPAUINITNVPROC) (const void *vdpDevice, const void *getProcAddress);
+typedef void (APIENTRYP PFNGLVDPAUFININVPROC) (void);
+typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
+typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
+typedef void (APIENTRYP PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface);
+typedef void (APIENTRYP PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface);
+typedef void (APIENTRYP PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
+typedef void (APIENTRYP PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access);
+typedef void (APIENTRYP PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces);
+typedef void (APIENTRYP PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVDPAUInitNV (const void *vdpDevice, const void *getProcAddress);
+GLAPI void APIENTRY glVDPAUFiniNV (void);
+GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterVideoSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
+GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterOutputSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
+GLAPI void APIENTRY glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface);
+GLAPI void APIENTRY glVDPAUUnregisterSurfaceNV (GLvdpauSurfaceNV surface);
+GLAPI void APIENTRY glVDPAUGetSurfaceivNV (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
+GLAPI void APIENTRY glVDPAUSurfaceAccessNV (GLvdpauSurfaceNV surface, GLenum access);
+GLAPI void APIENTRY glVDPAUMapSurfacesNV (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces);
+GLAPI void APIENTRY glVDPAUUnmapSurfacesNV (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces);
+#endif
+#endif /* GL_NV_vdpau_interop */
+
+#ifndef GL_NV_vertex_array_range
+#define GL_NV_vertex_array_range 1
+#define GL_VERTEX_ARRAY_RANGE_NV 0x851D
+#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E
+#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F
+#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520
+#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521
+typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void);
+typedef void (APIENTRYP PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, const void *pointer);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFlushVertexArrayRangeNV (void);
+GLAPI void APIENTRY glVertexArrayRangeNV (GLsizei length, const void *pointer);
+#endif
+#endif /* GL_NV_vertex_array_range */
+
+#ifndef GL_NV_vertex_array_range2
+#define GL_NV_vertex_array_range2 1
+#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533
+#endif /* GL_NV_vertex_array_range2 */
+
+#ifndef GL_NV_vertex_attrib_integer_64bit
+#define GL_NV_vertex_attrib_integer_64bit 1
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT *v);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT *params);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBLFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVertexAttribL1i64NV (GLuint index, GLint64EXT x);
+GLAPI void APIENTRY glVertexAttribL2i64NV (GLuint index, GLint64EXT x, GLint64EXT y);
+GLAPI void APIENTRY glVertexAttribL3i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z);
+GLAPI void APIENTRY glVertexAttribL4i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
+GLAPI void APIENTRY glVertexAttribL1i64vNV (GLuint index, const GLint64EXT *v);
+GLAPI void APIENTRY glVertexAttribL2i64vNV (GLuint index, const GLint64EXT *v);
+GLAPI void APIENTRY glVertexAttribL3i64vNV (GLuint index, const GLint64EXT *v);
+GLAPI void APIENTRY glVertexAttribL4i64vNV (GLuint index, const GLint64EXT *v);
+GLAPI void APIENTRY glVertexAttribL1ui64NV (GLuint index, GLuint64EXT x);
+GLAPI void APIENTRY glVertexAttribL2ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y);
+GLAPI void APIENTRY glVertexAttribL3ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
+GLAPI void APIENTRY glVertexAttribL4ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
+GLAPI void APIENTRY glVertexAttribL1ui64vNV (GLuint index, const GLuint64EXT *v);
+GLAPI void APIENTRY glVertexAttribL2ui64vNV (GLuint index, const GLuint64EXT *v);
+GLAPI void APIENTRY glVertexAttribL3ui64vNV (GLuint index, const GLuint64EXT *v);
+GLAPI void APIENTRY glVertexAttribL4ui64vNV (GLuint index, const GLuint64EXT *v);
+GLAPI void APIENTRY glGetVertexAttribLi64vNV (GLuint index, GLenum pname, GLint64EXT *params);
+GLAPI void APIENTRY glGetVertexAttribLui64vNV (GLuint index, GLenum pname, GLuint64EXT *params);
+GLAPI void APIENTRY glVertexAttribLFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride);
+#endif
+#endif /* GL_NV_vertex_attrib_integer_64bit */
+
+#ifndef GL_NV_vertex_buffer_unified_memory
+#define GL_NV_vertex_buffer_unified_memory 1
+#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E
+#define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F
+#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20
+#define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21
+#define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22
+#define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23
+#define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24
+#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25
+#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26
+#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27
+#define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28
+#define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29
+#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A
+#define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B
+#define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C
+#define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D
+#define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E
+#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F
+#define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30
+#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31
+#define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32
+#define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33
+#define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40
+#define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41
+#define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42
+typedef void (APIENTRYP PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length);
+typedef void (APIENTRYP PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
+typedef void (APIENTRYP PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride);
+typedef void (APIENTRYP PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
+typedef void (APIENTRYP PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride);
+typedef void (APIENTRYP PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
+typedef void (APIENTRYP PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride);
+typedef void (APIENTRYP PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride);
+typedef void (APIENTRYP PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride);
+typedef void (APIENTRYP PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT *result);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBufferAddressRangeNV (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length);
+GLAPI void APIENTRY glVertexFormatNV (GLint size, GLenum type, GLsizei stride);
+GLAPI void APIENTRY glNormalFormatNV (GLenum type, GLsizei stride);
+GLAPI void APIENTRY glColorFormatNV (GLint size, GLenum type, GLsizei stride);
+GLAPI void APIENTRY glIndexFormatNV (GLenum type, GLsizei stride);
+GLAPI void APIENTRY glTexCoordFormatNV (GLint size, GLenum type, GLsizei stride);
+GLAPI void APIENTRY glEdgeFlagFormatNV (GLsizei stride);
+GLAPI void APIENTRY glSecondaryColorFormatNV (GLint size, GLenum type, GLsizei stride);
+GLAPI void APIENTRY glFogCoordFormatNV (GLenum type, GLsizei stride);
+GLAPI void APIENTRY glVertexAttribFormatNV (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride);
+GLAPI void APIENTRY glVertexAttribIFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride);
+GLAPI void APIENTRY glGetIntegerui64i_vNV (GLenum value, GLuint index, GLuint64EXT *result);
+#endif
+#endif /* GL_NV_vertex_buffer_unified_memory */
+
+#ifndef GL_NV_vertex_program
+#define GL_NV_vertex_program 1
+#define GL_VERTEX_PROGRAM_NV 0x8620
+#define GL_VERTEX_STATE_PROGRAM_NV 0x8621
+#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623
+#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624
+#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625
+#define GL_CURRENT_ATTRIB_NV 0x8626
+#define GL_PROGRAM_LENGTH_NV 0x8627
+#define GL_PROGRAM_STRING_NV 0x8628
+#define GL_MODELVIEW_PROJECTION_NV 0x8629
+#define GL_IDENTITY_NV 0x862A
+#define GL_INVERSE_NV 0x862B
+#define GL_TRANSPOSE_NV 0x862C
+#define GL_INVERSE_TRANSPOSE_NV 0x862D
+#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E
+#define GL_MAX_TRACK_MATRICES_NV 0x862F
+#define GL_MATRIX0_NV 0x8630
+#define GL_MATRIX1_NV 0x8631
+#define GL_MATRIX2_NV 0x8632
+#define GL_MATRIX3_NV 0x8633
+#define GL_MATRIX4_NV 0x8634
+#define GL_MATRIX5_NV 0x8635
+#define GL_MATRIX6_NV 0x8636
+#define GL_MATRIX7_NV 0x8637
+#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640
+#define GL_CURRENT_MATRIX_NV 0x8641
+#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642
+#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643
+#define GL_PROGRAM_PARAMETER_NV 0x8644
+#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645
+#define GL_PROGRAM_TARGET_NV 0x8646
+#define GL_PROGRAM_RESIDENT_NV 0x8647
+#define GL_TRACK_MATRIX_NV 0x8648
+#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649
+#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A
+#define GL_PROGRAM_ERROR_POSITION_NV 0x864B
+#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650
+#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651
+#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652
+#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653
+#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654
+#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655
+#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656
+#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657
+#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658
+#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659
+#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A
+#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B
+#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C
+#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D
+#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E
+#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F
+#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660
+#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661
+#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662
+#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663
+#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664
+#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665
+#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666
+#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667
+#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668
+#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669
+#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A
+#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B
+#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C
+#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D
+#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E
+#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F
+#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670
+#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671
+#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672
+#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673
+#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674
+#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675
+#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676
+#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677
+#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678
+#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679
+#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A
+#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B
+#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C
+#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D
+#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E
+#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F
+typedef GLboolean (APIENTRYP PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences);
+typedef void (APIENTRYP PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id);
+typedef void (APIENTRYP PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs);
+typedef void (APIENTRYP PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params);
+typedef void (APIENTRYP PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs);
+typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params);
+typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program);
+typedef void (APIENTRYP PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, void **pointer);
+typedef GLboolean (APIENTRYP PFNGLISPROGRAMNVPROC) (GLuint id);
+typedef void (APIENTRYP PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program);
+typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLdouble *v);
+typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *v);
+typedef void (APIENTRYP PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs);
+typedef void (APIENTRYP PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const void *pointer);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLboolean APIENTRY glAreProgramsResidentNV (GLsizei n, const GLuint *programs, GLboolean *residences);
+GLAPI void APIENTRY glBindProgramNV (GLenum target, GLuint id);
+GLAPI void APIENTRY glDeleteProgramsNV (GLsizei n, const GLuint *programs);
+GLAPI void APIENTRY glExecuteProgramNV (GLenum target, GLuint id, const GLfloat *params);
+GLAPI void APIENTRY glGenProgramsNV (GLsizei n, GLuint *programs);
+GLAPI void APIENTRY glGetProgramParameterdvNV (GLenum target, GLuint index, GLenum pname, GLdouble *params);
+GLAPI void APIENTRY glGetProgramParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetProgramivNV (GLuint id, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetProgramStringNV (GLuint id, GLenum pname, GLubyte *program);
+GLAPI void APIENTRY glGetTrackMatrixivNV (GLenum target, GLuint address, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetVertexAttribdvNV (GLuint index, GLenum pname, GLdouble *params);
+GLAPI void APIENTRY glGetVertexAttribfvNV (GLuint index, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetVertexAttribivNV (GLuint index, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetVertexAttribPointervNV (GLuint index, GLenum pname, void **pointer);
+GLAPI GLboolean APIENTRY glIsProgramNV (GLuint id);
+GLAPI void APIENTRY glLoadProgramNV (GLenum target, GLuint id, GLsizei len, const GLubyte *program);
+GLAPI void APIENTRY glProgramParameter4dNV (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GLAPI void APIENTRY glProgramParameter4dvNV (GLenum target, GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glProgramParameter4fNV (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GLAPI void APIENTRY glProgramParameter4fvNV (GLenum target, GLuint index, const GLfloat *v);
+GLAPI void APIENTRY glProgramParameters4dvNV (GLenum target, GLuint index, GLsizei count, const GLdouble *v);
+GLAPI void APIENTRY glProgramParameters4fvNV (GLenum target, GLuint index, GLsizei count, const GLfloat *v);
+GLAPI void APIENTRY glRequestResidentProgramsNV (GLsizei n, const GLuint *programs);
+GLAPI void APIENTRY glTrackMatrixNV (GLenum target, GLuint address, GLenum matrix, GLenum transform);
+GLAPI void APIENTRY glVertexAttribPointerNV (GLuint index, GLint fsize, GLenum type, GLsizei stride, const void *pointer);
+GLAPI void APIENTRY glVertexAttrib1dNV (GLuint index, GLdouble x);
+GLAPI void APIENTRY glVertexAttrib1dvNV (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttrib1fNV (GLuint index, GLfloat x);
+GLAPI void APIENTRY glVertexAttrib1fvNV (GLuint index, const GLfloat *v);
+GLAPI void APIENTRY glVertexAttrib1sNV (GLuint index, GLshort x);
+GLAPI void APIENTRY glVertexAttrib1svNV (GLuint index, const GLshort *v);
+GLAPI void APIENTRY glVertexAttrib2dNV (GLuint index, GLdouble x, GLdouble y);
+GLAPI void APIENTRY glVertexAttrib2dvNV (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttrib2fNV (GLuint index, GLfloat x, GLfloat y);
+GLAPI void APIENTRY glVertexAttrib2fvNV (GLuint index, const GLfloat *v);
+GLAPI void APIENTRY glVertexAttrib2sNV (GLuint index, GLshort x, GLshort y);
+GLAPI void APIENTRY glVertexAttrib2svNV (GLuint index, const GLshort *v);
+GLAPI void APIENTRY glVertexAttrib3dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z);
+GLAPI void APIENTRY glVertexAttrib3dvNV (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttrib3fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glVertexAttrib3fvNV (GLuint index, const GLfloat *v);
+GLAPI void APIENTRY glVertexAttrib3sNV (GLuint index, GLshort x, GLshort y, GLshort z);
+GLAPI void APIENTRY glVertexAttrib3svNV (GLuint index, const GLshort *v);
+GLAPI void APIENTRY glVertexAttrib4dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GLAPI void APIENTRY glVertexAttrib4dvNV (GLuint index, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttrib4fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GLAPI void APIENTRY glVertexAttrib4fvNV (GLuint index, const GLfloat *v);
+GLAPI void APIENTRY glVertexAttrib4sNV (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+GLAPI void APIENTRY glVertexAttrib4svNV (GLuint index, const GLshort *v);
+GLAPI void APIENTRY glVertexAttrib4ubNV (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+GLAPI void APIENTRY glVertexAttrib4ubvNV (GLuint index, const GLubyte *v);
+GLAPI void APIENTRY glVertexAttribs1dvNV (GLuint index, GLsizei count, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttribs1fvNV (GLuint index, GLsizei count, const GLfloat *v);
+GLAPI void APIENTRY glVertexAttribs1svNV (GLuint index, GLsizei count, const GLshort *v);
+GLAPI void APIENTRY glVertexAttribs2dvNV (GLuint index, GLsizei count, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttribs2fvNV (GLuint index, GLsizei count, const GLfloat *v);
+GLAPI void APIENTRY glVertexAttribs2svNV (GLuint index, GLsizei count, const GLshort *v);
+GLAPI void APIENTRY glVertexAttribs3dvNV (GLuint index, GLsizei count, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttribs3fvNV (GLuint index, GLsizei count, const GLfloat *v);
+GLAPI void APIENTRY glVertexAttribs3svNV (GLuint index, GLsizei count, const GLshort *v);
+GLAPI void APIENTRY glVertexAttribs4dvNV (GLuint index, GLsizei count, const GLdouble *v);
+GLAPI void APIENTRY glVertexAttribs4fvNV (GLuint index, GLsizei count, const GLfloat *v);
+GLAPI void APIENTRY glVertexAttribs4svNV (GLuint index, GLsizei count, const GLshort *v);
+GLAPI void APIENTRY glVertexAttribs4ubvNV (GLuint index, GLsizei count, const GLubyte *v);
+#endif
+#endif /* GL_NV_vertex_program */
+
+#ifndef GL_NV_vertex_program1_1
+#define GL_NV_vertex_program1_1 1
+#endif /* GL_NV_vertex_program1_1 */
+
+#ifndef GL_NV_vertex_program2
+#define GL_NV_vertex_program2 1
+#endif /* GL_NV_vertex_program2 */
+
+#ifndef GL_NV_vertex_program2_option
+#define GL_NV_vertex_program2_option 1
+#endif /* GL_NV_vertex_program2_option */
+
+#ifndef GL_NV_vertex_program3
+#define GL_NV_vertex_program3 1
+#endif /* GL_NV_vertex_program3 */
+
+#ifndef GL_NV_vertex_program4
+#define GL_NV_vertex_program4 1
+#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v);
+typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glVertexAttribI1iEXT (GLuint index, GLint x);
+GLAPI void APIENTRY glVertexAttribI2iEXT (GLuint index, GLint x, GLint y);
+GLAPI void APIENTRY glVertexAttribI3iEXT (GLuint index, GLint x, GLint y, GLint z);
+GLAPI void APIENTRY glVertexAttribI4iEXT (GLuint index, GLint x, GLint y, GLint z, GLint w);
+GLAPI void APIENTRY glVertexAttribI1uiEXT (GLuint index, GLuint x);
+GLAPI void APIENTRY glVertexAttribI2uiEXT (GLuint index, GLuint x, GLuint y);
+GLAPI void APIENTRY glVertexAttribI3uiEXT (GLuint index, GLuint x, GLuint y, GLuint z);
+GLAPI void APIENTRY glVertexAttribI4uiEXT (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+GLAPI void APIENTRY glVertexAttribI1ivEXT (GLuint index, const GLint *v);
+GLAPI void APIENTRY glVertexAttribI2ivEXT (GLuint index, const GLint *v);
+GLAPI void APIENTRY glVertexAttribI3ivEXT (GLuint index, const GLint *v);
+GLAPI void APIENTRY glVertexAttribI4ivEXT (GLuint index, const GLint *v);
+GLAPI void APIENTRY glVertexAttribI1uivEXT (GLuint index, const GLuint *v);
+GLAPI void APIENTRY glVertexAttribI2uivEXT (GLuint index, const GLuint *v);
+GLAPI void APIENTRY glVertexAttribI3uivEXT (GLuint index, const GLuint *v);
+GLAPI void APIENTRY glVertexAttribI4uivEXT (GLuint index, const GLuint *v);
+GLAPI void APIENTRY glVertexAttribI4bvEXT (GLuint index, const GLbyte *v);
+GLAPI void APIENTRY glVertexAttribI4svEXT (GLuint index, const GLshort *v);
+GLAPI void APIENTRY glVertexAttribI4ubvEXT (GLuint index, const GLubyte *v);
+GLAPI void APIENTRY glVertexAttribI4usvEXT (GLuint index, const GLushort *v);
+GLAPI void APIENTRY glVertexAttribIPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
+GLAPI void APIENTRY glGetVertexAttribIivEXT (GLuint index, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetVertexAttribIuivEXT (GLuint index, GLenum pname, GLuint *params);
+#endif
+#endif /* GL_NV_vertex_program4 */
+
+#ifndef GL_NV_video_capture
+#define GL_NV_video_capture 1
+#define GL_VIDEO_BUFFER_NV 0x9020
+#define GL_VIDEO_BUFFER_BINDING_NV 0x9021
+#define GL_FIELD_UPPER_NV 0x9022
+#define GL_FIELD_LOWER_NV 0x9023
+#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024
+#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025
+#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026
+#define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027
+#define GL_VIDEO_BUFFER_PITCH_NV 0x9028
+#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029
+#define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A
+#define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B
+#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C
+#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D
+#define GL_PARTIAL_SUCCESS_NV 0x902E
+#define GL_SUCCESS_NV 0x902F
+#define GL_FAILURE_NV 0x9030
+#define GL_YCBYCR8_422_NV 0x9031
+#define GL_YCBAYCR8A_4224_NV 0x9032
+#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033
+#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034
+#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035
+#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036
+#define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037
+#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038
+#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039
+#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A
+#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B
+#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C
+typedef void (APIENTRYP PFNGLBEGINVIDEOCAPTURENVPROC) (GLuint video_capture_slot);
+typedef void (APIENTRYP PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset);
+typedef void (APIENTRYP PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture);
+typedef void (APIENTRYP PFNGLENDVIDEOCAPTURENVPROC) (GLuint video_capture_slot);
+typedef void (APIENTRYP PFNGLGETVIDEOCAPTUREIVNVPROC) (GLuint video_capture_slot, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params);
+typedef GLenum (APIENTRYP PFNGLVIDEOCAPTURENVPROC) (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time);
+typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glBeginVideoCaptureNV (GLuint video_capture_slot);
+GLAPI void APIENTRY glBindVideoCaptureStreamBufferNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset);
+GLAPI void APIENTRY glBindVideoCaptureStreamTextureNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture);
+GLAPI void APIENTRY glEndVideoCaptureNV (GLuint video_capture_slot);
+GLAPI void APIENTRY glGetVideoCaptureivNV (GLuint video_capture_slot, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetVideoCaptureStreamivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetVideoCaptureStreamfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetVideoCaptureStreamdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params);
+GLAPI GLenum APIENTRY glVideoCaptureNV (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time);
+GLAPI void APIENTRY glVideoCaptureStreamParameterivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glVideoCaptureStreamParameterfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glVideoCaptureStreamParameterdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params);
+#endif
+#endif /* GL_NV_video_capture */
+
+#ifndef GL_OML_interlace
+#define GL_OML_interlace 1
+#define GL_INTERLACE_OML 0x8980
+#define GL_INTERLACE_READ_OML 0x8981
+#endif /* GL_OML_interlace */
+
+#ifndef GL_OML_resample
+#define GL_OML_resample 1
+#define GL_PACK_RESAMPLE_OML 0x8984
+#define GL_UNPACK_RESAMPLE_OML 0x8985
+#define GL_RESAMPLE_REPLICATE_OML 0x8986
+#define GL_RESAMPLE_ZERO_FILL_OML 0x8987
+#define GL_RESAMPLE_AVERAGE_OML 0x8988
+#define GL_RESAMPLE_DECIMATE_OML 0x8989
+#endif /* GL_OML_resample */
+
+#ifndef GL_OML_subsample
+#define GL_OML_subsample 1
+#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982
+#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983
+#endif /* GL_OML_subsample */
+
+#ifndef GL_PGI_misc_hints
+#define GL_PGI_misc_hints 1
+#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8
+#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD
+#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE
+#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202
+#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203
+#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204
+#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C
+#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D
+#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E
+#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F
+#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210
+#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211
+#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216
+#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217
+#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218
+#define GL_FULL_STIPPLE_HINT_PGI 0x1A219
+#define GL_CLIP_NEAR_HINT_PGI 0x1A220
+#define GL_CLIP_FAR_HINT_PGI 0x1A221
+#define GL_WIDE_LINE_HINT_PGI 0x1A222
+#define GL_BACK_NORMALS_HINT_PGI 0x1A223
+typedef void (APIENTRYP PFNGLHINTPGIPROC) (GLenum target, GLint mode);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glHintPGI (GLenum target, GLint mode);
+#endif
+#endif /* GL_PGI_misc_hints */
+
+#ifndef GL_PGI_vertex_hints
+#define GL_PGI_vertex_hints 1
+#define GL_VERTEX_DATA_HINT_PGI 0x1A22A
+#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B
+#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C
+#define GL_MAX_VERTEX_HINT_PGI 0x1A22D
+#define GL_COLOR3_BIT_PGI 0x00010000
+#define GL_COLOR4_BIT_PGI 0x00020000
+#define GL_EDGEFLAG_BIT_PGI 0x00040000
+#define GL_INDEX_BIT_PGI 0x00080000
+#define GL_MAT_AMBIENT_BIT_PGI 0x00100000
+#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000
+#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000
+#define GL_MAT_EMISSION_BIT_PGI 0x00800000
+#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000
+#define GL_MAT_SHININESS_BIT_PGI 0x02000000
+#define GL_MAT_SPECULAR_BIT_PGI 0x04000000
+#define GL_NORMAL_BIT_PGI 0x08000000
+#define GL_TEXCOORD1_BIT_PGI 0x10000000
+#define GL_TEXCOORD2_BIT_PGI 0x20000000
+#define GL_TEXCOORD3_BIT_PGI 0x40000000
+#define GL_TEXCOORD4_BIT_PGI 0x80000000
+#define GL_VERTEX23_BIT_PGI 0x00000004
+#define GL_VERTEX4_BIT_PGI 0x00000008
+#endif /* GL_PGI_vertex_hints */
+
+#ifndef GL_REND_screen_coordinates
+#define GL_REND_screen_coordinates 1
+#define GL_SCREEN_COORDINATES_REND 0x8490
+#define GL_INVERTED_SCREEN_W_REND 0x8491
+#endif /* GL_REND_screen_coordinates */
+
+#ifndef GL_S3_s3tc
+#define GL_S3_s3tc 1
+#define GL_RGB_S3TC 0x83A0
+#define GL_RGB4_S3TC 0x83A1
+#define GL_RGBA_S3TC 0x83A2
+#define GL_RGBA4_S3TC 0x83A3
+#define GL_RGBA_DXT5_S3TC 0x83A4
+#define GL_RGBA4_DXT5_S3TC 0x83A5
+#endif /* GL_S3_s3tc */
+
+#ifndef GL_SGIS_detail_texture
+#define GL_SGIS_detail_texture 1
+#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095
+#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096
+#define GL_LINEAR_DETAIL_SGIS 0x8097
+#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098
+#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099
+#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A
+#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B
+#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C
+typedef void (APIENTRYP PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points);
+typedef void (APIENTRYP PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDetailTexFuncSGIS (GLenum target, GLsizei n, const GLfloat *points);
+GLAPI void APIENTRY glGetDetailTexFuncSGIS (GLenum target, GLfloat *points);
+#endif
+#endif /* GL_SGIS_detail_texture */
+
+#ifndef GL_SGIS_fog_function
+#define GL_SGIS_fog_function 1
+#define GL_FOG_FUNC_SGIS 0x812A
+#define GL_FOG_FUNC_POINTS_SGIS 0x812B
+#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C
+typedef void (APIENTRYP PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points);
+typedef void (APIENTRYP PFNGLGETFOGFUNCSGISPROC) (GLfloat *points);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFogFuncSGIS (GLsizei n, const GLfloat *points);
+GLAPI void APIENTRY glGetFogFuncSGIS (GLfloat *points);
+#endif
+#endif /* GL_SGIS_fog_function */
+
+#ifndef GL_SGIS_generate_mipmap
+#define GL_SGIS_generate_mipmap 1
+#define GL_GENERATE_MIPMAP_SGIS 0x8191
+#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192
+#endif /* GL_SGIS_generate_mipmap */
+
+#ifndef GL_SGIS_multisample
+#define GL_SGIS_multisample 1
+#define GL_MULTISAMPLE_SGIS 0x809D
+#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F
+#define GL_SAMPLE_MASK_SGIS 0x80A0
+#define GL_1PASS_SGIS 0x80A1
+#define GL_2PASS_0_SGIS 0x80A2
+#define GL_2PASS_1_SGIS 0x80A3
+#define GL_4PASS_0_SGIS 0x80A4
+#define GL_4PASS_1_SGIS 0x80A5
+#define GL_4PASS_2_SGIS 0x80A6
+#define GL_4PASS_3_SGIS 0x80A7
+#define GL_SAMPLE_BUFFERS_SGIS 0x80A8
+#define GL_SAMPLES_SGIS 0x80A9
+#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA
+#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB
+#define GL_SAMPLE_PATTERN_SGIS 0x80AC
+typedef void (APIENTRYP PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert);
+typedef void (APIENTRYP PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glSampleMaskSGIS (GLclampf value, GLboolean invert);
+GLAPI void APIENTRY glSamplePatternSGIS (GLenum pattern);
+#endif
+#endif /* GL_SGIS_multisample */
+
+#ifndef GL_SGIS_pixel_texture
+#define GL_SGIS_pixel_texture 1
+#define GL_PIXEL_TEXTURE_SGIS 0x8353
+#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354
+#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355
+#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356
+typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPixelTexGenParameteriSGIS (GLenum pname, GLint param);
+GLAPI void APIENTRY glPixelTexGenParameterivSGIS (GLenum pname, const GLint *params);
+GLAPI void APIENTRY glPixelTexGenParameterfSGIS (GLenum pname, GLfloat param);
+GLAPI void APIENTRY glPixelTexGenParameterfvSGIS (GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS (GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS (GLenum pname, GLfloat *params);
+#endif
+#endif /* GL_SGIS_pixel_texture */
+
+#ifndef GL_SGIS_point_line_texgen
+#define GL_SGIS_point_line_texgen 1
+#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0
+#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1
+#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2
+#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3
+#define GL_EYE_POINT_SGIS 0x81F4
+#define GL_OBJECT_POINT_SGIS 0x81F5
+#define GL_EYE_LINE_SGIS 0x81F6
+#define GL_OBJECT_LINE_SGIS 0x81F7
+#endif /* GL_SGIS_point_line_texgen */
+
+#ifndef GL_SGIS_point_parameters
+#define GL_SGIS_point_parameters 1
+#define GL_POINT_SIZE_MIN_SGIS 0x8126
+#define GL_POINT_SIZE_MAX_SGIS 0x8127
+#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128
+#define GL_DISTANCE_ATTENUATION_SGIS 0x8129
+typedef void (APIENTRYP PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPointParameterfSGIS (GLenum pname, GLfloat param);
+GLAPI void APIENTRY glPointParameterfvSGIS (GLenum pname, const GLfloat *params);
+#endif
+#endif /* GL_SGIS_point_parameters */
+
+#ifndef GL_SGIS_sharpen_texture
+#define GL_SGIS_sharpen_texture 1
+#define GL_LINEAR_SHARPEN_SGIS 0x80AD
+#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE
+#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF
+#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0
+typedef void (APIENTRYP PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points);
+typedef void (APIENTRYP PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glSharpenTexFuncSGIS (GLenum target, GLsizei n, const GLfloat *points);
+GLAPI void APIENTRY glGetSharpenTexFuncSGIS (GLenum target, GLfloat *points);
+#endif
+#endif /* GL_SGIS_sharpen_texture */
+
+#ifndef GL_SGIS_texture4D
+#define GL_SGIS_texture4D 1
+#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130
+#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131
+#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132
+#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133
+#define GL_TEXTURE_4D_SGIS 0x8134
+#define GL_PROXY_TEXTURE_4D_SGIS 0x8135
+#define GL_TEXTURE_4DSIZE_SGIS 0x8136
+#define GL_TEXTURE_WRAP_Q_SGIS 0x8137
+#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138
+#define GL_TEXTURE_4D_BINDING_SGIS 0x814F
+typedef void (APIENTRYP PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const void *pixels);
+typedef void (APIENTRYP PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const void *pixels);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTexImage4DSGIS (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const void *pixels);
+GLAPI void APIENTRY glTexSubImage4DSGIS (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const void *pixels);
+#endif
+#endif /* GL_SGIS_texture4D */
+
+#ifndef GL_SGIS_texture_border_clamp
+#define GL_SGIS_texture_border_clamp 1
+#define GL_CLAMP_TO_BORDER_SGIS 0x812D
+#endif /* GL_SGIS_texture_border_clamp */
+
+#ifndef GL_SGIS_texture_color_mask
+#define GL_SGIS_texture_color_mask 1
+#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF
+typedef void (APIENTRYP PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTextureColorMaskSGIS (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+#endif
+#endif /* GL_SGIS_texture_color_mask */
+
+#ifndef GL_SGIS_texture_edge_clamp
+#define GL_SGIS_texture_edge_clamp 1
+#define GL_CLAMP_TO_EDGE_SGIS 0x812F
+#endif /* GL_SGIS_texture_edge_clamp */
+
+#ifndef GL_SGIS_texture_filter4
+#define GL_SGIS_texture_filter4 1
+#define GL_FILTER4_SGIS 0x8146
+#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147
+typedef void (APIENTRYP PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights);
+typedef void (APIENTRYP PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glGetTexFilterFuncSGIS (GLenum target, GLenum filter, GLfloat *weights);
+GLAPI void APIENTRY glTexFilterFuncSGIS (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights);
+#endif
+#endif /* GL_SGIS_texture_filter4 */
+
+#ifndef GL_SGIS_texture_lod
+#define GL_SGIS_texture_lod 1
+#define GL_TEXTURE_MIN_LOD_SGIS 0x813A
+#define GL_TEXTURE_MAX_LOD_SGIS 0x813B
+#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C
+#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D
+#endif /* GL_SGIS_texture_lod */
+
+#ifndef GL_SGIS_texture_select
+#define GL_SGIS_texture_select 1
+#define GL_DUAL_ALPHA4_SGIS 0x8110
+#define GL_DUAL_ALPHA8_SGIS 0x8111
+#define GL_DUAL_ALPHA12_SGIS 0x8112
+#define GL_DUAL_ALPHA16_SGIS 0x8113
+#define GL_DUAL_LUMINANCE4_SGIS 0x8114
+#define GL_DUAL_LUMINANCE8_SGIS 0x8115
+#define GL_DUAL_LUMINANCE12_SGIS 0x8116
+#define GL_DUAL_LUMINANCE16_SGIS 0x8117
+#define GL_DUAL_INTENSITY4_SGIS 0x8118
+#define GL_DUAL_INTENSITY8_SGIS 0x8119
+#define GL_DUAL_INTENSITY12_SGIS 0x811A
+#define GL_DUAL_INTENSITY16_SGIS 0x811B
+#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C
+#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D
+#define GL_QUAD_ALPHA4_SGIS 0x811E
+#define GL_QUAD_ALPHA8_SGIS 0x811F
+#define GL_QUAD_LUMINANCE4_SGIS 0x8120
+#define GL_QUAD_LUMINANCE8_SGIS 0x8121
+#define GL_QUAD_INTENSITY4_SGIS 0x8122
+#define GL_QUAD_INTENSITY8_SGIS 0x8123
+#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124
+#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125
+#endif /* GL_SGIS_texture_select */
+
+#ifndef GL_SGIX_async
+#define GL_SGIX_async 1
+#define GL_ASYNC_MARKER_SGIX 0x8329
+typedef void (APIENTRYP PFNGLASYNCMARKERSGIXPROC) (GLuint marker);
+typedef GLint (APIENTRYP PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp);
+typedef GLint (APIENTRYP PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp);
+typedef GLuint (APIENTRYP PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range);
+typedef void (APIENTRYP PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range);
+typedef GLboolean (APIENTRYP PFNGLISASYNCMARKERSGIXPROC) (GLuint marker);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glAsyncMarkerSGIX (GLuint marker);
+GLAPI GLint APIENTRY glFinishAsyncSGIX (GLuint *markerp);
+GLAPI GLint APIENTRY glPollAsyncSGIX (GLuint *markerp);
+GLAPI GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei range);
+GLAPI void APIENTRY glDeleteAsyncMarkersSGIX (GLuint marker, GLsizei range);
+GLAPI GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint marker);
+#endif
+#endif /* GL_SGIX_async */
+
+#ifndef GL_SGIX_async_histogram
+#define GL_SGIX_async_histogram 1
+#define GL_ASYNC_HISTOGRAM_SGIX 0x832C
+#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D
+#endif /* GL_SGIX_async_histogram */
+
+#ifndef GL_SGIX_async_pixel
+#define GL_SGIX_async_pixel 1
+#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C
+#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D
+#define GL_ASYNC_READ_PIXELS_SGIX 0x835E
+#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F
+#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360
+#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361
+#endif /* GL_SGIX_async_pixel */
+
+#ifndef GL_SGIX_blend_alpha_minmax
+#define GL_SGIX_blend_alpha_minmax 1
+#define GL_ALPHA_MIN_SGIX 0x8320
+#define GL_ALPHA_MAX_SGIX 0x8321
+#endif /* GL_SGIX_blend_alpha_minmax */
+
+#ifndef GL_SGIX_calligraphic_fragment
+#define GL_SGIX_calligraphic_fragment 1
+#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183
+#endif /* GL_SGIX_calligraphic_fragment */
+
+#ifndef GL_SGIX_clipmap
+#define GL_SGIX_clipmap 1
+#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170
+#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171
+#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172
+#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173
+#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174
+#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175
+#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176
+#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177
+#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178
+#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D
+#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E
+#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F
+#endif /* GL_SGIX_clipmap */
+
+#ifndef GL_SGIX_convolution_accuracy
+#define GL_SGIX_convolution_accuracy 1
+#define GL_CONVOLUTION_HINT_SGIX 0x8316
+#endif /* GL_SGIX_convolution_accuracy */
+
+#ifndef GL_SGIX_depth_pass_instrument
+#define GL_SGIX_depth_pass_instrument 1
+#endif /* GL_SGIX_depth_pass_instrument */
+
+#ifndef GL_SGIX_depth_texture
+#define GL_SGIX_depth_texture 1
+#define GL_DEPTH_COMPONENT16_SGIX 0x81A5
+#define GL_DEPTH_COMPONENT24_SGIX 0x81A6
+#define GL_DEPTH_COMPONENT32_SGIX 0x81A7
+#endif /* GL_SGIX_depth_texture */
+
+#ifndef GL_SGIX_flush_raster
+#define GL_SGIX_flush_raster 1
+typedef void (APIENTRYP PFNGLFLUSHRASTERSGIXPROC) (void);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFlushRasterSGIX (void);
+#endif
+#endif /* GL_SGIX_flush_raster */
+
+#ifndef GL_SGIX_fog_offset
+#define GL_SGIX_fog_offset 1
+#define GL_FOG_OFFSET_SGIX 0x8198
+#define GL_FOG_OFFSET_VALUE_SGIX 0x8199
+#endif /* GL_SGIX_fog_offset */
+
+#ifndef GL_SGIX_fragment_lighting
+#define GL_SGIX_fragment_lighting 1
+#define GL_FRAGMENT_LIGHTING_SGIX 0x8400
+#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401
+#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402
+#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403
+#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404
+#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405
+#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406
+#define GL_LIGHT_ENV_MODE_SGIX 0x8407
+#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408
+#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409
+#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A
+#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B
+#define GL_FRAGMENT_LIGHT0_SGIX 0x840C
+#define GL_FRAGMENT_LIGHT1_SGIX 0x840D
+#define GL_FRAGMENT_LIGHT2_SGIX 0x840E
+#define GL_FRAGMENT_LIGHT3_SGIX 0x840F
+#define GL_FRAGMENT_LIGHT4_SGIX 0x8410
+#define GL_FRAGMENT_LIGHT5_SGIX 0x8411
+#define GL_FRAGMENT_LIGHT6_SGIX 0x8412
+#define GL_FRAGMENT_LIGHT7_SGIX 0x8413
+typedef void (APIENTRYP PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode);
+typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum face, GLenum mode);
+GLAPI void APIENTRY glFragmentLightfSGIX (GLenum light, GLenum pname, GLfloat param);
+GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum light, GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glFragmentLightiSGIX (GLenum light, GLenum pname, GLint param);
+GLAPI void APIENTRY glFragmentLightivSGIX (GLenum light, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum pname, GLfloat param);
+GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum pname, GLint param);
+GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum pname, const GLint *params);
+GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum face, GLenum pname, GLfloat param);
+GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum face, GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum face, GLenum pname, GLint param);
+GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum face, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum light, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum light, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum face, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum face, GLenum pname, GLint *params);
+GLAPI void APIENTRY glLightEnviSGIX (GLenum pname, GLint param);
+#endif
+#endif /* GL_SGIX_fragment_lighting */
+
+#ifndef GL_SGIX_framezoom
+#define GL_SGIX_framezoom 1
+#define GL_FRAMEZOOM_SGIX 0x818B
+#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C
+#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D
+typedef void (APIENTRYP PFNGLFRAMEZOOMSGIXPROC) (GLint factor);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFrameZoomSGIX (GLint factor);
+#endif
+#endif /* GL_SGIX_framezoom */
+
+#ifndef GL_SGIX_igloo_interface
+#define GL_SGIX_igloo_interface 1
+typedef void (APIENTRYP PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const void *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glIglooInterfaceSGIX (GLenum pname, const void *params);
+#endif
+#endif /* GL_SGIX_igloo_interface */
+
+#ifndef GL_SGIX_instruments
+#define GL_SGIX_instruments 1
+#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180
+#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181
+typedef GLint (APIENTRYP PFNGLGETINSTRUMENTSSGIXPROC) (void);
+typedef void (APIENTRYP PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer);
+typedef GLint (APIENTRYP PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p);
+typedef void (APIENTRYP PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker);
+typedef void (APIENTRYP PFNGLSTARTINSTRUMENTSSGIXPROC) (void);
+typedef void (APIENTRYP PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI GLint APIENTRY glGetInstrumentsSGIX (void);
+GLAPI void APIENTRY glInstrumentsBufferSGIX (GLsizei size, GLint *buffer);
+GLAPI GLint APIENTRY glPollInstrumentsSGIX (GLint *marker_p);
+GLAPI void APIENTRY glReadInstrumentsSGIX (GLint marker);
+GLAPI void APIENTRY glStartInstrumentsSGIX (void);
+GLAPI void APIENTRY glStopInstrumentsSGIX (GLint marker);
+#endif
+#endif /* GL_SGIX_instruments */
+
+#ifndef GL_SGIX_interlace
+#define GL_SGIX_interlace 1
+#define GL_INTERLACE_SGIX 0x8094
+#endif /* GL_SGIX_interlace */
+
+#ifndef GL_SGIX_ir_instrument1
+#define GL_SGIX_ir_instrument1 1
+#define GL_IR_INSTRUMENT1_SGIX 0x817F
+#endif /* GL_SGIX_ir_instrument1 */
+
+#ifndef GL_SGIX_list_priority
+#define GL_SGIX_list_priority 1
+#define GL_LIST_PRIORITY_SGIX 0x8182
+typedef void (APIENTRYP PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params);
+typedef void (APIENTRYP PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glGetListParameterfvSGIX (GLuint list, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetListParameterivSGIX (GLuint list, GLenum pname, GLint *params);
+GLAPI void APIENTRY glListParameterfSGIX (GLuint list, GLenum pname, GLfloat param);
+GLAPI void APIENTRY glListParameterfvSGIX (GLuint list, GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glListParameteriSGIX (GLuint list, GLenum pname, GLint param);
+GLAPI void APIENTRY glListParameterivSGIX (GLuint list, GLenum pname, const GLint *params);
+#endif
+#endif /* GL_SGIX_list_priority */
+
+#ifndef GL_SGIX_pixel_texture
+#define GL_SGIX_pixel_texture 1
+#define GL_PIXEL_TEX_GEN_SGIX 0x8139
+#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B
+typedef void (APIENTRYP PFNGLPIXELTEXGENSGIXPROC) (GLenum mode);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glPixelTexGenSGIX (GLenum mode);
+#endif
+#endif /* GL_SGIX_pixel_texture */
+
+#ifndef GL_SGIX_pixel_tiles
+#define GL_SGIX_pixel_tiles 1
+#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E
+#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F
+#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140
+#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141
+#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142
+#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143
+#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144
+#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145
+#endif /* GL_SGIX_pixel_tiles */
+
+#ifndef GL_SGIX_polynomial_ffd
+#define GL_SGIX_polynomial_ffd 1
+#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001
+#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002
+#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194
+#define GL_TEXTURE_DEFORMATION_SGIX 0x8195
+#define GL_DEFORMATIONS_MASK_SGIX 0x8196
+#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197
+typedef void (APIENTRYP PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points);
+typedef void (APIENTRYP PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points);
+typedef void (APIENTRYP PFNGLDEFORMSGIXPROC) (GLbitfield mask);
+typedef void (APIENTRYP PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDeformationMap3dSGIX (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points);
+GLAPI void APIENTRY glDeformationMap3fSGIX (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points);
+GLAPI void APIENTRY glDeformSGIX (GLbitfield mask);
+GLAPI void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield mask);
+#endif
+#endif /* GL_SGIX_polynomial_ffd */
+
+#ifndef GL_SGIX_reference_plane
+#define GL_SGIX_reference_plane 1
+#define GL_REFERENCE_PLANE_SGIX 0x817D
+#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E
+typedef void (APIENTRYP PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glReferencePlaneSGIX (const GLdouble *equation);
+#endif
+#endif /* GL_SGIX_reference_plane */
+
+#ifndef GL_SGIX_resample
+#define GL_SGIX_resample 1
+#define GL_PACK_RESAMPLE_SGIX 0x842C
+#define GL_UNPACK_RESAMPLE_SGIX 0x842D
+#define GL_RESAMPLE_REPLICATE_SGIX 0x842E
+#define GL_RESAMPLE_ZERO_FILL_SGIX 0x842F
+#define GL_RESAMPLE_DECIMATE_SGIX 0x8430
+#endif /* GL_SGIX_resample */
+
+#ifndef GL_SGIX_scalebias_hint
+#define GL_SGIX_scalebias_hint 1
+#define GL_SCALEBIAS_HINT_SGIX 0x8322
+#endif /* GL_SGIX_scalebias_hint */
+
+#ifndef GL_SGIX_shadow
+#define GL_SGIX_shadow 1
+#define GL_TEXTURE_COMPARE_SGIX 0x819A
+#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B
+#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C
+#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D
+#endif /* GL_SGIX_shadow */
+
+#ifndef GL_SGIX_shadow_ambient
+#define GL_SGIX_shadow_ambient 1
+#define GL_SHADOW_AMBIENT_SGIX 0x80BF
+#endif /* GL_SGIX_shadow_ambient */
+
+#ifndef GL_SGIX_sprite
+#define GL_SGIX_sprite 1
+#define GL_SPRITE_SGIX 0x8148
+#define GL_SPRITE_MODE_SGIX 0x8149
+#define GL_SPRITE_AXIS_SGIX 0x814A
+#define GL_SPRITE_TRANSLATION_SGIX 0x814B
+#define GL_SPRITE_AXIAL_SGIX 0x814C
+#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D
+#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E
+typedef void (APIENTRYP PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRYP PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param);
+typedef void (APIENTRYP PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glSpriteParameterfSGIX (GLenum pname, GLfloat param);
+GLAPI void APIENTRY glSpriteParameterfvSGIX (GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glSpriteParameteriSGIX (GLenum pname, GLint param);
+GLAPI void APIENTRY glSpriteParameterivSGIX (GLenum pname, const GLint *params);
+#endif
+#endif /* GL_SGIX_sprite */
+
+#ifndef GL_SGIX_subsample
+#define GL_SGIX_subsample 1
+#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0
+#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1
+#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2
+#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3
+#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4
+#endif /* GL_SGIX_subsample */
+
+#ifndef GL_SGIX_tag_sample_buffer
+#define GL_SGIX_tag_sample_buffer 1
+typedef void (APIENTRYP PFNGLTAGSAMPLEBUFFERSGIXPROC) (void);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glTagSampleBufferSGIX (void);
+#endif
+#endif /* GL_SGIX_tag_sample_buffer */
+
+#ifndef GL_SGIX_texture_add_env
+#define GL_SGIX_texture_add_env 1
+#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE
+#endif /* GL_SGIX_texture_add_env */
+
+#ifndef GL_SGIX_texture_coordinate_clamp
+#define GL_SGIX_texture_coordinate_clamp 1
+#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369
+#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A
+#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B
+#endif /* GL_SGIX_texture_coordinate_clamp */
+
+#ifndef GL_SGIX_texture_lod_bias
+#define GL_SGIX_texture_lod_bias 1
+#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E
+#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F
+#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190
+#endif /* GL_SGIX_texture_lod_bias */
+
+#ifndef GL_SGIX_texture_multi_buffer
+#define GL_SGIX_texture_multi_buffer 1
+#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E
+#endif /* GL_SGIX_texture_multi_buffer */
+
+#ifndef GL_SGIX_texture_scale_bias
+#define GL_SGIX_texture_scale_bias 1
+#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179
+#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A
+#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B
+#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C
+#endif /* GL_SGIX_texture_scale_bias */
+
+#ifndef GL_SGIX_vertex_preclip
+#define GL_SGIX_vertex_preclip 1
+#define GL_VERTEX_PRECLIP_SGIX 0x83EE
+#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF
+#endif /* GL_SGIX_vertex_preclip */
+
+#ifndef GL_SGIX_ycrcb
+#define GL_SGIX_ycrcb 1
+#define GL_YCRCB_422_SGIX 0x81BB
+#define GL_YCRCB_444_SGIX 0x81BC
+#endif /* GL_SGIX_ycrcb */
+
+#ifndef GL_SGIX_ycrcb_subsample
+#define GL_SGIX_ycrcb_subsample 1
+#endif /* GL_SGIX_ycrcb_subsample */
+
+#ifndef GL_SGIX_ycrcba
+#define GL_SGIX_ycrcba 1
+#define GL_YCRCB_SGIX 0x8318
+#define GL_YCRCBA_SGIX 0x8319
+#endif /* GL_SGIX_ycrcba */
+
+#ifndef GL_SGI_color_matrix
+#define GL_SGI_color_matrix 1
+#define GL_COLOR_MATRIX_SGI 0x80B1
+#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2
+#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3
+#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4
+#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5
+#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6
+#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7
+#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8
+#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9
+#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA
+#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB
+#endif /* GL_SGI_color_matrix */
+
+#ifndef GL_SGI_color_table
+#define GL_SGI_color_table 1
+#define GL_COLOR_TABLE_SGI 0x80D0
+#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1
+#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2
+#define GL_PROXY_COLOR_TABLE_SGI 0x80D3
+#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4
+#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5
+#define GL_COLOR_TABLE_SCALE_SGI 0x80D6
+#define GL_COLOR_TABLE_BIAS_SGI 0x80D7
+#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8
+#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9
+#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA
+#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB
+#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC
+#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD
+#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE
+#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF
+typedef void (APIENTRYP PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table);
+typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRYP PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRYP PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, void *table);
+typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glColorTableSGI (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table);
+GLAPI void APIENTRY glColorTableParameterfvSGI (GLenum target, GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glColorTableParameterivSGI (GLenum target, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glCopyColorTableSGI (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+GLAPI void APIENTRY glGetColorTableSGI (GLenum target, GLenum format, GLenum type, void *table);
+GLAPI void APIENTRY glGetColorTableParameterfvSGI (GLenum target, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetColorTableParameterivSGI (GLenum target, GLenum pname, GLint *params);
+#endif
+#endif /* GL_SGI_color_table */
+
+#ifndef GL_SGI_texture_color_table
+#define GL_SGI_texture_color_table 1
+#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC
+#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD
+#endif /* GL_SGI_texture_color_table */
+
+#ifndef GL_SUNX_constant_data
+#define GL_SUNX_constant_data 1
+#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5
+#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6
+typedef void (APIENTRYP PFNGLFINISHTEXTURESUNXPROC) (void);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glFinishTextureSUNX (void);
+#endif
+#endif /* GL_SUNX_constant_data */
+
+#ifndef GL_SUN_convolution_border_modes
+#define GL_SUN_convolution_border_modes 1
+#define GL_WRAP_BORDER_SUN 0x81D4
+#endif /* GL_SUN_convolution_border_modes */
+
+#ifndef GL_SUN_global_alpha
+#define GL_SUN_global_alpha 1
+#define GL_GLOBAL_ALPHA_SUN 0x81D9
+#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA
+typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor);
+typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor);
+typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor);
+typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor);
+typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor);
+typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor);
+typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor);
+typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glGlobalAlphaFactorbSUN (GLbyte factor);
+GLAPI void APIENTRY glGlobalAlphaFactorsSUN (GLshort factor);
+GLAPI void APIENTRY glGlobalAlphaFactoriSUN (GLint factor);
+GLAPI void APIENTRY glGlobalAlphaFactorfSUN (GLfloat factor);
+GLAPI void APIENTRY glGlobalAlphaFactordSUN (GLdouble factor);
+GLAPI void APIENTRY glGlobalAlphaFactorubSUN (GLubyte factor);
+GLAPI void APIENTRY glGlobalAlphaFactorusSUN (GLushort factor);
+GLAPI void APIENTRY glGlobalAlphaFactoruiSUN (GLuint factor);
+#endif
+#endif /* GL_SUN_global_alpha */
+
+#ifndef GL_SUN_mesh_array
+#define GL_SUN_mesh_array 1
+#define GL_QUAD_MESH_SUN 0x8614
+#define GL_TRIANGLE_MESH_SUN 0x8615
+typedef void (APIENTRYP PFNGLDRAWMESHARRAYSSUNPROC) (GLenum mode, GLint first, GLsizei count, GLsizei width);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glDrawMeshArraysSUN (GLenum mode, GLint first, GLsizei count, GLsizei width);
+#endif
+#endif /* GL_SUN_mesh_array */
+
+#ifndef GL_SUN_slice_accum
+#define GL_SUN_slice_accum 1
+#define GL_SLICE_ACCUM_SUN 0x85CC
+#endif /* GL_SUN_slice_accum */
+
+#ifndef GL_SUN_triangle_list
+#define GL_SUN_triangle_list 1
+#define GL_RESTART_SUN 0x0001
+#define GL_REPLACE_MIDDLE_SUN 0x0002
+#define GL_REPLACE_OLDEST_SUN 0x0003
+#define GL_TRIANGLE_LIST_SUN 0x81D7
+#define GL_REPLACEMENT_CODE_SUN 0x81D8
+#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0
+#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1
+#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2
+#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3
+#define GL_R1UI_V3F_SUN 0x85C4
+#define GL_R1UI_C4UB_V3F_SUN 0x85C5
+#define GL_R1UI_C3F_V3F_SUN 0x85C6
+#define GL_R1UI_N3F_V3F_SUN 0x85C7
+#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8
+#define GL_R1UI_T2F_V3F_SUN 0x85C9
+#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA
+#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const void **pointer);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glReplacementCodeuiSUN (GLuint code);
+GLAPI void APIENTRY glReplacementCodeusSUN (GLushort code);
+GLAPI void APIENTRY glReplacementCodeubSUN (GLubyte code);
+GLAPI void APIENTRY glReplacementCodeuivSUN (const GLuint *code);
+GLAPI void APIENTRY glReplacementCodeusvSUN (const GLushort *code);
+GLAPI void APIENTRY glReplacementCodeubvSUN (const GLubyte *code);
+GLAPI void APIENTRY glReplacementCodePointerSUN (GLenum type, GLsizei stride, const void **pointer);
+#endif
+#endif /* GL_SUN_triangle_list */
+
+#ifndef GL_SUN_vertex
+#define GL_SUN_vertex 1
+typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y);
+typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v);
+typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v);
+typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v);
+typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v);
+typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v);
+typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v);
+typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v);
+typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v);
+typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v);
+typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v);
+typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
+typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *v);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint *rc, const GLubyte *c, const GLfloat *v);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *v);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *n, const GLfloat *v);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *v);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glColor4ubVertex2fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y);
+GLAPI void APIENTRY glColor4ubVertex2fvSUN (const GLubyte *c, const GLfloat *v);
+GLAPI void APIENTRY glColor4ubVertex3fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glColor4ubVertex3fvSUN (const GLubyte *c, const GLfloat *v);
+GLAPI void APIENTRY glColor3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glColor3fVertex3fvSUN (const GLfloat *c, const GLfloat *v);
+GLAPI void APIENTRY glNormal3fVertex3fSUN (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glNormal3fVertex3fvSUN (const GLfloat *n, const GLfloat *v);
+GLAPI void APIENTRY glColor4fNormal3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glColor4fNormal3fVertex3fvSUN (const GLfloat *c, const GLfloat *n, const GLfloat *v);
+GLAPI void APIENTRY glTexCoord2fVertex3fSUN (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glTexCoord2fVertex3fvSUN (const GLfloat *tc, const GLfloat *v);
+GLAPI void APIENTRY glTexCoord4fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GLAPI void APIENTRY glTexCoord4fVertex4fvSUN (const GLfloat *tc, const GLfloat *v);
+GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fSUN (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *tc, const GLubyte *c, const GLfloat *v);
+GLAPI void APIENTRY glTexCoord2fColor3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glTexCoord2fColor3fVertex3fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *v);
+GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *tc, const GLfloat *n, const GLfloat *v);
+GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
+GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
+GLAPI void APIENTRY glReplacementCodeuiVertex3fSUN (GLuint rc, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glReplacementCodeuiVertex3fvSUN (const GLuint *rc, const GLfloat *v);
+GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN (const GLuint *rc, const GLubyte *c, const GLfloat *v);
+GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN (const GLuint *rc, const GLfloat *c, const GLfloat *v);
+GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *n, const GLfloat *v);
+GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
+GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *v);
+GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v);
+GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
+#endif
+#endif /* GL_SUN_vertex */
+
+#ifndef GL_WIN_phong_shading
+#define GL_WIN_phong_shading 1
+#define GL_PHONG_WIN 0x80EA
+#define GL_PHONG_HINT_WIN 0x80EB
+#endif /* GL_WIN_phong_shading */
+
+#ifndef GL_WIN_specular_fog
+#define GL_WIN_specular_fog 1
+#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC
+#endif /* GL_WIN_specular_fog */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/gl/glx.h b/gl/glx.h
new file mode 100644
index 000000000..62d0ede9e
--- /dev/null
+++ b/gl/glx.h
@@ -0,0 +1,537 @@
+/*
+ * Mesa 3-D graphics library
+ *
+ * Copyright (C) 1999-2006 Brian Paul 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
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 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.
+ */
+
+
+#ifndef GLX_H
+#define GLX_H
+
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <GL/gl.h>
+
+
+#if defined(USE_MGL_NAMESPACE)
+#include "glx_mangle.h"
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define GLX_VERSION_1_1 1
+#define GLX_VERSION_1_2 1
+#define GLX_VERSION_1_3 1
+#define GLX_VERSION_1_4 1
+
+#define GLX_EXTENSION_NAME "GLX"
+
+
+
+/*
+ * Tokens for glXChooseVisual and glXGetConfig:
+ */
+#define GLX_USE_GL 1
+#define GLX_BUFFER_SIZE 2
+#define GLX_LEVEL 3
+#define GLX_RGBA 4
+#define GLX_DOUBLEBUFFER 5
+#define GLX_STEREO 6
+#define GLX_AUX_BUFFERS 7
+#define GLX_RED_SIZE 8
+#define GLX_GREEN_SIZE 9
+#define GLX_BLUE_SIZE 10
+#define GLX_ALPHA_SIZE 11
+#define GLX_DEPTH_SIZE 12
+#define GLX_STENCIL_SIZE 13
+#define GLX_ACCUM_RED_SIZE 14
+#define GLX_ACCUM_GREEN_SIZE 15
+#define GLX_ACCUM_BLUE_SIZE 16
+#define GLX_ACCUM_ALPHA_SIZE 17
+
+
+/*
+ * Error codes returned by glXGetConfig:
+ */
+#define GLX_BAD_SCREEN 1
+#define GLX_BAD_ATTRIBUTE 2
+#define GLX_NO_EXTENSION 3
+#define GLX_BAD_VISUAL 4
+#define GLX_BAD_CONTEXT 5
+#define GLX_BAD_VALUE 6
+#define GLX_BAD_ENUM 7
+
+
+/*
+ * GLX 1.1 and later:
+ */
+#define GLX_VENDOR 1
+#define GLX_VERSION 2
+#define GLX_EXTENSIONS 3
+
+
+/*
+ * GLX 1.3 and later:
+ */
+#define GLX_CONFIG_CAVEAT 0x20
+#define GLX_DONT_CARE 0xFFFFFFFF
+#define GLX_X_VISUAL_TYPE 0x22
+#define GLX_TRANSPARENT_TYPE 0x23
+#define GLX_TRANSPARENT_INDEX_VALUE 0x24
+#define GLX_TRANSPARENT_RED_VALUE 0x25
+#define GLX_TRANSPARENT_GREEN_VALUE 0x26
+#define GLX_TRANSPARENT_BLUE_VALUE 0x27
+#define GLX_TRANSPARENT_ALPHA_VALUE 0x28
+#define GLX_WINDOW_BIT 0x00000001
+#define GLX_PIXMAP_BIT 0x00000002
+#define GLX_PBUFFER_BIT 0x00000004
+#define GLX_AUX_BUFFERS_BIT 0x00000010
+#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001
+#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002
+#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004
+#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008
+#define GLX_DEPTH_BUFFER_BIT 0x00000020
+#define GLX_STENCIL_BUFFER_BIT 0x00000040
+#define GLX_ACCUM_BUFFER_BIT 0x00000080
+#define GLX_NONE 0x8000
+#define GLX_SLOW_CONFIG 0x8001
+#define GLX_TRUE_COLOR 0x8002
+#define GLX_DIRECT_COLOR 0x8003
+#define GLX_PSEUDO_COLOR 0x8004
+#define GLX_STATIC_COLOR 0x8005
+#define GLX_GRAY_SCALE 0x8006
+#define GLX_STATIC_GRAY 0x8007
+#define GLX_TRANSPARENT_RGB 0x8008
+#define GLX_TRANSPARENT_INDEX 0x8009
+#define GLX_VISUAL_ID 0x800B
+#define GLX_SCREEN 0x800C
+#define GLX_NON_CONFORMANT_CONFIG 0x800D
+#define GLX_DRAWABLE_TYPE 0x8010
+#define GLX_RENDER_TYPE 0x8011
+#define GLX_X_RENDERABLE 0x8012
+#define GLX_FBCONFIG_ID 0x8013
+#define GLX_RGBA_TYPE 0x8014
+#define GLX_COLOR_INDEX_TYPE 0x8015
+#define GLX_MAX_PBUFFER_WIDTH 0x8016
+#define GLX_MAX_PBUFFER_HEIGHT 0x8017
+#define GLX_MAX_PBUFFER_PIXELS 0x8018
+#define GLX_PRESERVED_CONTENTS 0x801B
+#define GLX_LARGEST_PBUFFER 0x801C
+#define GLX_WIDTH 0x801D
+#define GLX_HEIGHT 0x801E
+#define GLX_EVENT_MASK 0x801F
+#define GLX_DAMAGED 0x8020
+#define GLX_SAVED 0x8021
+#define GLX_WINDOW 0x8022
+#define GLX_PBUFFER 0x8023
+#define GLX_PBUFFER_HEIGHT 0x8040
+#define GLX_PBUFFER_WIDTH 0x8041
+#define GLX_RGBA_BIT 0x00000001
+#define GLX_COLOR_INDEX_BIT 0x00000002
+#define GLX_PBUFFER_CLOBBER_MASK 0x08000000
+
+
+/*
+ * GLX 1.4 and later:
+ */
+#define GLX_SAMPLE_BUFFERS 0x186a0 /*100000*/
+#define GLX_SAMPLES 0x186a1 /*100001*/
+
+
+
+typedef struct __GLXcontextRec *GLXContext;
+typedef XID GLXPixmap;
+typedef XID GLXDrawable;
+/* GLX 1.3 and later */
+typedef struct __GLXFBConfigRec *GLXFBConfig;
+typedef XID GLXFBConfigID;
+typedef XID GLXWindow;
+typedef XID GLXPbuffer;
+
+
+/*
+** Events.
+** __GLX_NUMBER_EVENTS is set to 17 to account for the BufferClobberSGIX
+** event - this helps initialization if the server supports the pbuffer
+** extension and the client doesn't.
+*/
+#define GLX_PbufferClobber 0
+#define GLX_BufferSwapComplete 1
+
+#define __GLX_NUMBER_EVENTS 17
+
+extern XVisualInfo* glXChooseVisual( Display *dpy, int screen,
+ int *attribList );
+
+extern GLXContext glXCreateContext( Display *dpy, XVisualInfo *vis,
+ GLXContext shareList, Bool direct );
+
+extern void glXDestroyContext( Display *dpy, GLXContext ctx );
+
+extern Bool glXMakeCurrent( Display *dpy, GLXDrawable drawable,
+ GLXContext ctx);
+
+extern void glXCopyContext( Display *dpy, GLXContext src, GLXContext dst,
+ unsigned long mask );
+
+extern void glXSwapBuffers( Display *dpy, GLXDrawable drawable );
+
+extern GLXPixmap glXCreateGLXPixmap( Display *dpy, XVisualInfo *visual,
+ Pixmap pixmap );
+
+extern void glXDestroyGLXPixmap( Display *dpy, GLXPixmap pixmap );
+
+extern Bool glXQueryExtension( Display *dpy, int *errorb, int *event );
+
+extern Bool glXQueryVersion( Display *dpy, int *maj, int *min );
+
+extern Bool glXIsDirect( Display *dpy, GLXContext ctx );
+
+extern int glXGetConfig( Display *dpy, XVisualInfo *visual,
+ int attrib, int *value );
+
+extern GLXContext glXGetCurrentContext( void );
+
+extern GLXDrawable glXGetCurrentDrawable( void );
+
+extern void glXWaitGL( void );
+
+extern void glXWaitX( void );
+
+extern void glXUseXFont( Font font, int first, int count, int list );
+
+
+
+/* GLX 1.1 and later */
+extern const char *glXQueryExtensionsString( Display *dpy, int screen );
+
+extern const char *glXQueryServerString( Display *dpy, int screen, int name );
+
+extern const char *glXGetClientString( Display *dpy, int name );
+
+
+/* GLX 1.2 and later */
+extern Display *glXGetCurrentDisplay( void );
+
+
+/* GLX 1.3 and later */
+extern GLXFBConfig *glXChooseFBConfig( Display *dpy, int screen,
+ const int *attribList, int *nitems );
+
+extern int glXGetFBConfigAttrib( Display *dpy, GLXFBConfig config,
+ int attribute, int *value );
+
+extern GLXFBConfig *glXGetFBConfigs( Display *dpy, int screen,
+ int *nelements );
+
+extern XVisualInfo *glXGetVisualFromFBConfig( Display *dpy,
+ GLXFBConfig config );
+
+extern GLXWindow glXCreateWindow( Display *dpy, GLXFBConfig config,
+ Window win, const int *attribList );
+
+extern void glXDestroyWindow( Display *dpy, GLXWindow window );
+
+extern GLXPixmap glXCreatePixmap( Display *dpy, GLXFBConfig config,
+ Pixmap pixmap, const int *attribList );
+
+extern void glXDestroyPixmap( Display *dpy, GLXPixmap pixmap );
+
+extern GLXPbuffer glXCreatePbuffer( Display *dpy, GLXFBConfig config,
+ const int *attribList );
+
+extern void glXDestroyPbuffer( Display *dpy, GLXPbuffer pbuf );
+
+extern void glXQueryDrawable( Display *dpy, GLXDrawable draw, int attribute,
+ unsigned int *value );
+
+extern GLXContext glXCreateNewContext( Display *dpy, GLXFBConfig config,
+ int renderType, GLXContext shareList,
+ Bool direct );
+
+extern Bool glXMakeContextCurrent( Display *dpy, GLXDrawable draw,
+ GLXDrawable read, GLXContext ctx );
+
+extern GLXDrawable glXGetCurrentReadDrawable( void );
+
+extern int glXQueryContext( Display *dpy, GLXContext ctx, int attribute,
+ int *value );
+
+extern void glXSelectEvent( Display *dpy, GLXDrawable drawable,
+ unsigned long mask );
+
+extern void glXGetSelectedEvent( Display *dpy, GLXDrawable drawable,
+ unsigned long *mask );
+
+/* GLX 1.3 function pointer typedefs */
+typedef GLXFBConfig * (* PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements);
+typedef GLXFBConfig * (* PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements);
+typedef int (* PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value);
+typedef XVisualInfo * (* PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config);
+typedef GLXWindow (* PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
+typedef void (* PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win);
+typedef GLXPixmap (* PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
+typedef void (* PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap);
+typedef GLXPbuffer (* PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list);
+typedef void (* PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf);
+typedef void (* PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
+typedef GLXContext (* PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
+typedef Bool (* PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
+typedef GLXDrawable (* PFNGLXGETCURRENTREADDRAWABLEPROC) (void);
+typedef Display * (* PFNGLXGETCURRENTDISPLAYPROC) (void);
+typedef int (* PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value);
+typedef void (* PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask);
+typedef void (* PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask);
+
+
+/*
+ * ARB 2. GLX_ARB_get_proc_address
+ */
+#ifndef GLX_ARB_get_proc_address
+#define GLX_ARB_get_proc_address 1
+
+typedef void (*__GLXextFuncPtr)(void);
+extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *);
+
+#endif /* GLX_ARB_get_proc_address */
+
+
+
+/* GLX 1.4 and later */
+extern void (*glXGetProcAddress(const GLubyte *procname))( void );
+
+/* GLX 1.4 function pointer typedefs */
+typedef __GLXextFuncPtr (* PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName);
+
+
+#ifndef GLX_GLXEXT_LEGACY
+
+#include <GL/glxext.h>
+
+#endif /* GLX_GLXEXT_LEGACY */
+
+
+/**
+ ** The following aren't in glxext.h yet.
+ **/
+
+
+/*
+ * ???. GLX_NV_vertex_array_range
+ */
+#ifndef GLX_NV_vertex_array_range
+#define GLX_NV_vertex_array_range
+
+extern void *glXAllocateMemoryNV(GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
+extern void glXFreeMemoryNV(GLvoid *pointer);
+typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
+typedef void ( * PFNGLXFREEMEMORYNVPROC) (GLvoid *pointer);
+
+#endif /* GLX_NV_vertex_array_range */
+
+
+/*
+ * ARB ?. GLX_ARB_render_texture
+ * XXX This was never finalized!
+ */
+#ifndef GLX_ARB_render_texture
+#define GLX_ARB_render_texture 1
+
+extern Bool glXBindTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer);
+extern Bool glXReleaseTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer);
+extern Bool glXDrawableAttribARB(Display *dpy, GLXDrawable draw, const int *attribList);
+
+#endif /* GLX_ARB_render_texture */
+
+
+/*
+ * Remove this when glxext.h is updated.
+ */
+#ifndef GLX_NV_float_buffer
+#define GLX_NV_float_buffer 1
+
+#define GLX_FLOAT_COMPONENTS_NV 0x20B0
+
+#endif /* GLX_NV_float_buffer */
+
+
+
+/*
+ * #?. GLX_MESA_swap_frame_usage
+ */
+#ifndef GLX_MESA_swap_frame_usage
+#define GLX_MESA_swap_frame_usage 1
+
+extern int glXGetFrameUsageMESA(Display *dpy, GLXDrawable drawable, float *usage);
+extern int glXBeginFrameTrackingMESA(Display *dpy, GLXDrawable drawable);
+extern int glXEndFrameTrackingMESA(Display *dpy, GLXDrawable drawable);
+extern int glXQueryFrameTrackingMESA(Display *dpy, GLXDrawable drawable, int64_t *swapCount, int64_t *missedFrames, float *lastMissedUsage);
+
+typedef int (*PFNGLXGETFRAMEUSAGEMESAPROC) (Display *dpy, GLXDrawable drawable, float *usage);
+typedef int (*PFNGLXBEGINFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable);
+typedef int (*PFNGLXENDFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable);
+typedef int (*PFNGLXQUERYFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable, int64_t *swapCount, int64_t *missedFrames, float *lastMissedUsage);
+
+#endif /* GLX_MESA_swap_frame_usage */
+
+
+
+/*
+ * #?. GLX_MESA_swap_control
+ */
+#ifndef GLX_MESA_swap_control
+#define GLX_MESA_swap_control 1
+
+extern int glXSwapIntervalMESA(unsigned int interval);
+extern int glXGetSwapIntervalMESA(void);
+
+typedef int (*PFNGLXSWAPINTERVALMESAPROC)(unsigned int interval);
+typedef int (*PFNGLXGETSWAPINTERVALMESAPROC)(void);
+
+#endif /* GLX_MESA_swap_control */
+
+
+
+/*
+ * #?. GLX_EXT_texture_from_pixmap
+ * XXX not finished?
+ */
+#ifndef GLX_EXT_texture_from_pixmap
+#define GLX_EXT_texture_from_pixmap 1
+
+#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0
+#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1
+#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2
+#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3
+#define GLX_Y_INVERTED_EXT 0x20D4
+
+#define GLX_TEXTURE_FORMAT_EXT 0x20D5
+#define GLX_TEXTURE_TARGET_EXT 0x20D6
+#define GLX_MIPMAP_TEXTURE_EXT 0x20D7
+
+#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8
+#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9
+#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA
+
+#define GLX_TEXTURE_1D_BIT_EXT 0x00000001
+#define GLX_TEXTURE_2D_BIT_EXT 0x00000002
+#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
+
+#define GLX_TEXTURE_1D_EXT 0x20DB
+#define GLX_TEXTURE_2D_EXT 0x20DC
+#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD
+
+#define GLX_FRONT_LEFT_EXT 0x20DE
+#define GLX_FRONT_RIGHT_EXT 0x20DF
+#define GLX_BACK_LEFT_EXT 0x20E0
+#define GLX_BACK_RIGHT_EXT 0x20E1
+#define GLX_FRONT_EXT GLX_FRONT_LEFT_EXT
+#define GLX_BACK_EXT GLX_BACK_LEFT_EXT
+#define GLX_AUX0_EXT 0x20E2
+#define GLX_AUX1_EXT 0x20E3
+#define GLX_AUX2_EXT 0x20E4
+#define GLX_AUX3_EXT 0x20E5
+#define GLX_AUX4_EXT 0x20E6
+#define GLX_AUX5_EXT 0x20E7
+#define GLX_AUX6_EXT 0x20E8
+#define GLX_AUX7_EXT 0x20E9
+#define GLX_AUX8_EXT 0x20EA
+#define GLX_AUX9_EXT 0x20EB
+
+extern void glXBindTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list);
+extern void glXReleaseTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer);
+
+#endif /* GLX_EXT_texture_from_pixmap */
+
+
+#ifndef GLX_MESA_query_renderer
+#define GLX_MESA_query_renderer 1
+
+#define GLX_RENDERER_VENDOR_ID_MESA 0x8183
+#define GLX_RENDERER_DEVICE_ID_MESA 0x8184
+#define GLX_RENDERER_VERSION_MESA 0x8185
+#define GLX_RENDERER_ACCELERATED_MESA 0x8186
+#define GLX_RENDERER_VIDEO_MEMORY_MESA 0x8187
+#define GLX_RENDERER_UNIFIED_MEMORY_ARCHITECTURE_MESA 0x8188
+#define GLX_RENDERER_PREFERRED_PROFILE_MESA 0x8189
+#define GLX_RENDERER_OPENGL_CORE_PROFILE_VERSION_MESA 0x818A
+#define GLX_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_MESA 0x818B
+#define GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA 0x818C
+#define GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA 0x818D
+#define GLX_RENDERER_ID_MESA 0x818E
+
+Bool glXQueryRendererIntegerMESA(Display *dpy, int screen, int renderer, int attribute, unsigned int *value);
+Bool glXQueryCurrentRendererIntegerMESA(int attribute, unsigned int *value);
+const char *glXQueryRendererStringMESA(Display *dpy, int screen, int renderer, int attribute);
+const char *glXQueryCurrentRendererStringMESA(int attribute);
+
+typedef Bool (*PFNGLXQUERYRENDERERINTEGERMESAPROC) (Display *dpy, int screen, int renderer, int attribute, unsigned int *value);
+typedef Bool (*PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC) (int attribute, unsigned int *value);
+typedef const char *(*PFNGLXQUERYRENDERERSTRINGMESAPROC) (Display *dpy, int screen, int renderer, int attribute);
+typedef const char *(*PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC) (int attribute);
+#endif /* GLX_MESA_query_renderer */
+
+/*** Should these go here, or in another header? */
+/*
+** GLX Events
+*/
+typedef struct {
+ int event_type; /* GLX_DAMAGED or GLX_SAVED */
+ int draw_type; /* GLX_WINDOW or GLX_PBUFFER */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came for SendEvent request */
+ Display *display; /* display the event was read from */
+ GLXDrawable drawable; /* XID of Drawable */
+ unsigned int buffer_mask; /* mask indicating which buffers are affected */
+ unsigned int aux_buffer; /* which aux buffer was affected */
+ int x, y;
+ int width, height;
+ int count; /* if nonzero, at least this many more */
+} GLXPbufferClobberEvent;
+
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ GLXDrawable drawable; /* drawable on which event was requested in event mask */
+ int event_type;
+ int64_t ust;
+ int64_t msc;
+ int64_t sbc;
+} GLXBufferSwapComplete;
+
+typedef union __GLXEvent {
+ GLXPbufferClobberEvent glxpbufferclobber;
+ GLXBufferSwapComplete glxbufferswapcomplete;
+ long pad[24];
+} GLXEvent;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/gl/glx_mangle.h b/gl/glx_mangle.h
new file mode 100644
index 000000000..fad6c6a47
--- /dev/null
+++ b/gl/glx_mangle.h
@@ -0,0 +1,82 @@
+/*
+ * Mesa 3-D graphics library
+ *
+ * Copyright (C) 1999-2006 Brian Paul 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
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 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.
+ */
+
+
+#ifndef GLX_MANGLE_H
+#define GLX_MANGLE_H
+
+#define glXChooseVisual mglXChooseVisual
+#define glXCreateContext mglXCreateContext
+#define glXDestroyContext mglXDestroyContext
+#define glXMakeCurrent mglXMakeCurrent
+#define glXCopyContext mglXCopyContext
+#define glXSwapBuffers mglXSwapBuffers
+#define glXCreateGLXPixmap mglXCreateGLXPixmap
+#define glXDestroyGLXPixmap mglXDestroyGLXPixmap
+#define glXQueryExtension mglXQueryExtension
+#define glXQueryVersion mglXQueryVersion
+#define glXIsDirect mglXIsDirect
+#define glXGetConfig mglXGetConfig
+#define glXGetCurrentContext mglXGetCurrentContext
+#define glXGetCurrentDrawable mglXGetCurrentDrawable
+#define glXWaitGL mglXWaitGL
+#define glXWaitX mglXWaitX
+#define glXUseXFont mglXUseXFont
+#define glXQueryExtensionsString mglXQueryExtensionsString
+#define glXQueryServerString mglXQueryServerString
+#define glXGetClientString mglXGetClientString
+#define glXCreateGLXPixmapMESA mglXCreateGLXPixmapMESA
+#define glXReleaseBuffersMESA mglXReleaseBuffersMESA
+#define glXCopySubBufferMESA mglXCopySubBufferMESA
+#define glXGetVideoSyncSGI mglXGetVideoSyncSGI
+#define glXWaitVideoSyncSGI mglXWaitVideoSyncSGI
+
+/* GLX 1.2 */
+#define glXGetCurrentDisplay mglXGetCurrentDisplay
+
+/* GLX 1.3 */
+#define glXChooseFBConfig mglXChooseFBConfig
+#define glXGetFBConfigAttrib mglXGetFBConfigAttrib
+#define glXGetFBConfigs mglXGetFBConfigs
+#define glXGetVisualFromFBConfig mglXGetVisualFromFBConfig
+#define glXCreateWindow mglXCreateWindow
+#define glXDestroyWindow mglXDestroyWindow
+#define glXCreatePixmap mglXCreatePixmap
+#define glXDestroyPixmap mglXDestroyPixmap
+#define glXCreatePbuffer mglXCreatePbuffer
+#define glXDestroyPbuffer mglXDestroyPbuffer
+#define glXQueryDrawable mglXQueryDrawable
+#define glXCreateNewContext mglXCreateNewContext
+#define glXMakeContextCurrent mglXMakeContextCurrent
+#define glXGetCurrentReadDrawable mglXGetCurrentReadDrawable
+#define glXQueryContext mglXQueryContext
+#define glXSelectEvent mglXSelectEvent
+#define glXGetSelectedEvent mglXGetSelectedEvent
+
+/* GLX 1.4 */
+#define glXGetProcAddress mglXGetProcAddress
+#define glXGetProcAddressARB mglXGetProcAddressARB
+
+
+#endif
diff --git a/gl/glxext.h b/gl/glxext.h
new file mode 100644
index 000000000..cfabe8cc3
--- /dev/null
+++ b/gl/glxext.h
@@ -0,0 +1,838 @@
+#ifndef __glxext_h_
+#define __glxext_h_ 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+** Copyright (c) 2013 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE 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
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+/*
+** This header is generated from the Khronos OpenGL / OpenGL ES XML
+** API Registry. The current version of the Registry, generator scripts
+** used to make the header, and the header can be found at
+** http://www.opengl.org/registry/
+**
+** Khronos $Revision: 23422 $ on $Date: 2013-10-08 15:40:45 -0700 (Tue, 08 Oct 2013) $
+*/
+
+#define GLX_GLXEXT_VERSION 20131008
+
+/* Generated C header for:
+ * API: glx
+ * Versions considered: .*
+ * Versions emitted: 1\.[3-9]
+ * Default extensions included: glx
+ * Additional extensions included: _nomatch_^
+ * Extensions removed: _nomatch_^
+ */
+
+#ifndef GLX_VERSION_1_3
+#define GLX_VERSION_1_3 1
+typedef struct __GLXFBConfigRec *GLXFBConfig;
+typedef XID GLXWindow;
+typedef XID GLXPbuffer;
+#define GLX_WINDOW_BIT 0x00000001
+#define GLX_PIXMAP_BIT 0x00000002
+#define GLX_PBUFFER_BIT 0x00000004
+#define GLX_RGBA_BIT 0x00000001
+#define GLX_COLOR_INDEX_BIT 0x00000002
+#define GLX_PBUFFER_CLOBBER_MASK 0x08000000
+#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001
+#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002
+#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004
+#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008
+#define GLX_AUX_BUFFERS_BIT 0x00000010
+#define GLX_DEPTH_BUFFER_BIT 0x00000020
+#define GLX_STENCIL_BUFFER_BIT 0x00000040
+#define GLX_ACCUM_BUFFER_BIT 0x00000080
+#define GLX_CONFIG_CAVEAT 0x20
+#define GLX_X_VISUAL_TYPE 0x22
+#define GLX_TRANSPARENT_TYPE 0x23
+#define GLX_TRANSPARENT_INDEX_VALUE 0x24
+#define GLX_TRANSPARENT_RED_VALUE 0x25
+#define GLX_TRANSPARENT_GREEN_VALUE 0x26
+#define GLX_TRANSPARENT_BLUE_VALUE 0x27
+#define GLX_TRANSPARENT_ALPHA_VALUE 0x28
+#define GLX_DONT_CARE 0xFFFFFFFF
+#define GLX_NONE 0x8000
+#define GLX_SLOW_CONFIG 0x8001
+#define GLX_TRUE_COLOR 0x8002
+#define GLX_DIRECT_COLOR 0x8003
+#define GLX_PSEUDO_COLOR 0x8004
+#define GLX_STATIC_COLOR 0x8005
+#define GLX_GRAY_SCALE 0x8006
+#define GLX_STATIC_GRAY 0x8007
+#define GLX_TRANSPARENT_RGB 0x8008
+#define GLX_TRANSPARENT_INDEX 0x8009
+#define GLX_VISUAL_ID 0x800B
+#define GLX_SCREEN 0x800C
+#define GLX_NON_CONFORMANT_CONFIG 0x800D
+#define GLX_DRAWABLE_TYPE 0x8010
+#define GLX_RENDER_TYPE 0x8011
+#define GLX_X_RENDERABLE 0x8012
+#define GLX_FBCONFIG_ID 0x8013
+#define GLX_RGBA_TYPE 0x8014
+#define GLX_COLOR_INDEX_TYPE 0x8015
+#define GLX_MAX_PBUFFER_WIDTH 0x8016
+#define GLX_MAX_PBUFFER_HEIGHT 0x8017
+#define GLX_MAX_PBUFFER_PIXELS 0x8018
+#define GLX_PRESERVED_CONTENTS 0x801B
+#define GLX_LARGEST_PBUFFER 0x801C
+#define GLX_WIDTH 0x801D
+#define GLX_HEIGHT 0x801E
+#define GLX_EVENT_MASK 0x801F
+#define GLX_DAMAGED 0x8020
+#define GLX_SAVED 0x8021
+#define GLX_WINDOW 0x8022
+#define GLX_PBUFFER 0x8023
+#define GLX_PBUFFER_HEIGHT 0x8040
+#define GLX_PBUFFER_WIDTH 0x8041
+typedef GLXFBConfig *( *PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements);
+typedef GLXFBConfig *( *PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements);
+typedef int ( *PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value);
+typedef XVisualInfo *( *PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config);
+typedef GLXWindow ( *PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
+typedef void ( *PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win);
+typedef GLXPixmap ( *PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
+typedef void ( *PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap);
+typedef GLXPbuffer ( *PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list);
+typedef void ( *PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf);
+typedef void ( *PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
+typedef GLXContext ( *PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
+typedef Bool ( *PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
+typedef GLXDrawable ( *PFNGLXGETCURRENTREADDRAWABLEPROC) (void);
+typedef int ( *PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value);
+typedef void ( *PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask);
+typedef void ( *PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask);
+#ifdef GLX_GLXEXT_PROTOTYPES
+GLXFBConfig *glXGetFBConfigs (Display *dpy, int screen, int *nelements);
+GLXFBConfig *glXChooseFBConfig (Display *dpy, int screen, const int *attrib_list, int *nelements);
+int glXGetFBConfigAttrib (Display *dpy, GLXFBConfig config, int attribute, int *value);
+XVisualInfo *glXGetVisualFromFBConfig (Display *dpy, GLXFBConfig config);
+GLXWindow glXCreateWindow (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
+void glXDestroyWindow (Display *dpy, GLXWindow win);
+GLXPixmap glXCreatePixmap (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
+void glXDestroyPixmap (Display *dpy, GLXPixmap pixmap);
+GLXPbuffer glXCreatePbuffer (Display *dpy, GLXFBConfig config, const int *attrib_list);
+void glXDestroyPbuffer (Display *dpy, GLXPbuffer pbuf);
+void glXQueryDrawable (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
+GLXContext glXCreateNewContext (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
+Bool glXMakeContextCurrent (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
+GLXDrawable glXGetCurrentReadDrawable (void);
+int glXQueryContext (Display *dpy, GLXContext ctx, int attribute, int *value);
+void glXSelectEvent (Display *dpy, GLXDrawable draw, unsigned long event_mask);
+void glXGetSelectedEvent (Display *dpy, GLXDrawable draw, unsigned long *event_mask);
+#endif
+#endif /* GLX_VERSION_1_3 */
+
+#ifndef GLX_VERSION_1_4
+#define GLX_VERSION_1_4 1
+typedef void ( *__GLXextFuncPtr)(void);
+#define GLX_SAMPLE_BUFFERS 100000
+#define GLX_SAMPLES 100001
+typedef __GLXextFuncPtr ( *PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName);
+#ifdef GLX_GLXEXT_PROTOTYPES
+__GLXextFuncPtr glXGetProcAddress (const GLubyte *procName);
+#endif
+#endif /* GLX_VERSION_1_4 */
+
+#ifndef GLX_ARB_create_context
+#define GLX_ARB_create_context 1
+#define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001
+#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
+#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
+#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
+#define GLX_CONTEXT_FLAGS_ARB 0x2094
+typedef GLXContext ( *PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display *dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list);
+#ifdef GLX_GLXEXT_PROTOTYPES
+GLXContext glXCreateContextAttribsARB (Display *dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list);
+#endif
+#endif /* GLX_ARB_create_context */
+
+#ifndef GLX_ARB_create_context_profile
+#define GLX_ARB_create_context_profile 1
+#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
+#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
+#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126
+#endif /* GLX_ARB_create_context_profile */
+
+#ifndef GLX_ARB_create_context_robustness
+#define GLX_ARB_create_context_robustness 1
+#define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
+#define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252
+#define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
+#define GLX_NO_RESET_NOTIFICATION_ARB 0x8261
+#endif /* GLX_ARB_create_context_robustness */
+
+#ifndef GLX_ARB_fbconfig_float
+#define GLX_ARB_fbconfig_float 1
+#define GLX_RGBA_FLOAT_TYPE_ARB 0x20B9
+#define GLX_RGBA_FLOAT_BIT_ARB 0x00000004
+#endif /* GLX_ARB_fbconfig_float */
+
+#ifndef GLX_ARB_framebuffer_sRGB
+#define GLX_ARB_framebuffer_sRGB 1
+#define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2
+#endif /* GLX_ARB_framebuffer_sRGB */
+
+#ifndef GLX_ARB_get_proc_address
+#define GLX_ARB_get_proc_address 1
+typedef __GLXextFuncPtr ( *PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName);
+#ifdef GLX_GLXEXT_PROTOTYPES
+__GLXextFuncPtr glXGetProcAddressARB (const GLubyte *procName);
+#endif
+#endif /* GLX_ARB_get_proc_address */
+
+#ifndef GLX_ARB_multisample
+#define GLX_ARB_multisample 1
+#define GLX_SAMPLE_BUFFERS_ARB 100000
+#define GLX_SAMPLES_ARB 100001
+#endif /* GLX_ARB_multisample */
+
+#ifndef GLX_ARB_robustness_application_isolation
+#define GLX_ARB_robustness_application_isolation 1
+#define GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
+#endif /* GLX_ARB_robustness_application_isolation */
+
+#ifndef GLX_ARB_robustness_share_group_isolation
+#define GLX_ARB_robustness_share_group_isolation 1
+#endif /* GLX_ARB_robustness_share_group_isolation */
+
+#ifndef GLX_ARB_vertex_buffer_object
+#define GLX_ARB_vertex_buffer_object 1
+#define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095
+#endif /* GLX_ARB_vertex_buffer_object */
+
+#ifndef GLX_3DFX_multisample
+#define GLX_3DFX_multisample 1
+#define GLX_SAMPLE_BUFFERS_3DFX 0x8050
+#define GLX_SAMPLES_3DFX 0x8051
+#endif /* GLX_3DFX_multisample */
+
+#ifndef GLX_AMD_gpu_association
+#define GLX_AMD_gpu_association 1
+#define GLX_GPU_VENDOR_AMD 0x1F00
+#define GLX_GPU_RENDERER_STRING_AMD 0x1F01
+#define GLX_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
+#define GLX_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
+#define GLX_GPU_RAM_AMD 0x21A3
+#define GLX_GPU_CLOCK_AMD 0x21A4
+#define GLX_GPU_NUM_PIPES_AMD 0x21A5
+#define GLX_GPU_NUM_SIMD_AMD 0x21A6
+#define GLX_GPU_NUM_RB_AMD 0x21A7
+#define GLX_GPU_NUM_SPI_AMD 0x21A8
+#endif /* GLX_AMD_gpu_association */
+
+#ifndef GLX_EXT_buffer_age
+#define GLX_EXT_buffer_age 1
+#define GLX_BACK_BUFFER_AGE_EXT 0x20F4
+#endif /* GLX_EXT_buffer_age */
+
+#ifndef GLX_EXT_create_context_es2_profile
+#define GLX_EXT_create_context_es2_profile 1
+#define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
+#endif /* GLX_EXT_create_context_es2_profile */
+
+#ifndef GLX_EXT_create_context_es_profile
+#define GLX_EXT_create_context_es_profile 1
+#define GLX_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004
+#endif /* GLX_EXT_create_context_es_profile */
+
+#ifndef GLX_EXT_fbconfig_packed_float
+#define GLX_EXT_fbconfig_packed_float 1
+#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
+#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008
+#endif /* GLX_EXT_fbconfig_packed_float */
+
+#ifndef GLX_EXT_framebuffer_sRGB
+#define GLX_EXT_framebuffer_sRGB 1
+#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2
+#endif /* GLX_EXT_framebuffer_sRGB */
+
+#ifndef GLX_EXT_import_context
+#define GLX_EXT_import_context 1
+typedef XID GLXContextID;
+#define GLX_SHARE_CONTEXT_EXT 0x800A
+#define GLX_VISUAL_ID_EXT 0x800B
+#define GLX_SCREEN_EXT 0x800C
+typedef Display *( *PFNGLXGETCURRENTDISPLAYEXTPROC) (void);
+typedef int ( *PFNGLXQUERYCONTEXTINFOEXTPROC) (Display *dpy, GLXContext context, int attribute, int *value);
+typedef GLXContextID ( *PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context);
+typedef GLXContext ( *PFNGLXIMPORTCONTEXTEXTPROC) (Display *dpy, GLXContextID contextID);
+typedef void ( *PFNGLXFREECONTEXTEXTPROC) (Display *dpy, GLXContext context);
+#ifdef GLX_GLXEXT_PROTOTYPES
+Display *glXGetCurrentDisplayEXT (void);
+int glXQueryContextInfoEXT (Display *dpy, GLXContext context, int attribute, int *value);
+GLXContextID glXGetContextIDEXT (const GLXContext context);
+GLXContext glXImportContextEXT (Display *dpy, GLXContextID contextID);
+void glXFreeContextEXT (Display *dpy, GLXContext context);
+#endif
+#endif /* GLX_EXT_import_context */
+
+#ifndef GLX_EXT_swap_control
+#define GLX_EXT_swap_control 1
+#define GLX_SWAP_INTERVAL_EXT 0x20F1
+#define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2
+typedef void ( *PFNGLXSWAPINTERVALEXTPROC) (Display *dpy, GLXDrawable drawable, int interval);
+#ifdef GLX_GLXEXT_PROTOTYPES
+void glXSwapIntervalEXT (Display *dpy, GLXDrawable drawable, int interval);
+#endif
+#endif /* GLX_EXT_swap_control */
+
+#ifndef GLX_EXT_swap_control_tear
+#define GLX_EXT_swap_control_tear 1
+#define GLX_LATE_SWAPS_TEAR_EXT 0x20F3
+#endif /* GLX_EXT_swap_control_tear */
+
+#ifndef GLX_EXT_texture_from_pixmap
+#define GLX_EXT_texture_from_pixmap 1
+#define GLX_TEXTURE_1D_BIT_EXT 0x00000001
+#define GLX_TEXTURE_2D_BIT_EXT 0x00000002
+#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
+#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0
+#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1
+#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2
+#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3
+#define GLX_Y_INVERTED_EXT 0x20D4
+#define GLX_TEXTURE_FORMAT_EXT 0x20D5
+#define GLX_TEXTURE_TARGET_EXT 0x20D6
+#define GLX_MIPMAP_TEXTURE_EXT 0x20D7
+#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8
+#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9
+#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA
+#define GLX_TEXTURE_1D_EXT 0x20DB
+#define GLX_TEXTURE_2D_EXT 0x20DC
+#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD
+#define GLX_FRONT_LEFT_EXT 0x20DE
+#define GLX_FRONT_RIGHT_EXT 0x20DF
+#define GLX_BACK_LEFT_EXT 0x20E0
+#define GLX_BACK_RIGHT_EXT 0x20E1
+#define GLX_FRONT_EXT 0x20DE
+#define GLX_BACK_EXT 0x20E0
+#define GLX_AUX0_EXT 0x20E2
+#define GLX_AUX1_EXT 0x20E3
+#define GLX_AUX2_EXT 0x20E4
+#define GLX_AUX3_EXT 0x20E5
+#define GLX_AUX4_EXT 0x20E6
+#define GLX_AUX5_EXT 0x20E7
+#define GLX_AUX6_EXT 0x20E8
+#define GLX_AUX7_EXT 0x20E9
+#define GLX_AUX8_EXT 0x20EA
+#define GLX_AUX9_EXT 0x20EB
+typedef void ( *PFNGLXBINDTEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list);
+typedef void ( *PFNGLXRELEASETEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer);
+#ifdef GLX_GLXEXT_PROTOTYPES
+void glXBindTexImageEXT (Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list);
+void glXReleaseTexImageEXT (Display *dpy, GLXDrawable drawable, int buffer);
+#endif
+#endif /* GLX_EXT_texture_from_pixmap */
+
+#ifndef GLX_EXT_visual_info
+#define GLX_EXT_visual_info 1
+#define GLX_X_VISUAL_TYPE_EXT 0x22
+#define GLX_TRANSPARENT_TYPE_EXT 0x23
+#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24
+#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25
+#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26
+#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27
+#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28
+#define GLX_NONE_EXT 0x8000
+#define GLX_TRUE_COLOR_EXT 0x8002
+#define GLX_DIRECT_COLOR_EXT 0x8003
+#define GLX_PSEUDO_COLOR_EXT 0x8004
+#define GLX_STATIC_COLOR_EXT 0x8005
+#define GLX_GRAY_SCALE_EXT 0x8006
+#define GLX_STATIC_GRAY_EXT 0x8007
+#define GLX_TRANSPARENT_RGB_EXT 0x8008
+#define GLX_TRANSPARENT_INDEX_EXT 0x8009
+#endif /* GLX_EXT_visual_info */
+
+#ifndef GLX_EXT_visual_rating
+#define GLX_EXT_visual_rating 1
+#define GLX_VISUAL_CAVEAT_EXT 0x20
+#define GLX_SLOW_VISUAL_EXT 0x8001
+#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D
+#endif /* GLX_EXT_visual_rating */
+
+#ifndef GLX_INTEL_swap_event
+#define GLX_INTEL_swap_event 1
+#define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x04000000
+#define GLX_EXCHANGE_COMPLETE_INTEL 0x8180
+#define GLX_COPY_COMPLETE_INTEL 0x8181
+#define GLX_FLIP_COMPLETE_INTEL 0x8182
+#endif /* GLX_INTEL_swap_event */
+
+#ifndef GLX_MESA_agp_offset
+#define GLX_MESA_agp_offset 1
+typedef unsigned int ( *PFNGLXGETAGPOFFSETMESAPROC) (const void *pointer);
+#ifdef GLX_GLXEXT_PROTOTYPES
+unsigned int glXGetAGPOffsetMESA (const void *pointer);
+#endif
+#endif /* GLX_MESA_agp_offset */
+
+#ifndef GLX_MESA_copy_sub_buffer
+#define GLX_MESA_copy_sub_buffer 1
+typedef void ( *PFNGLXCOPYSUBBUFFERMESAPROC) (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height);
+#ifdef GLX_GLXEXT_PROTOTYPES
+void glXCopySubBufferMESA (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height);
+#endif
+#endif /* GLX_MESA_copy_sub_buffer */
+
+#ifndef GLX_MESA_pixmap_colormap
+#define GLX_MESA_pixmap_colormap 1
+typedef GLXPixmap ( *PFNGLXCREATEGLXPIXMAPMESAPROC) (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap);
+#ifdef GLX_GLXEXT_PROTOTYPES
+GLXPixmap glXCreateGLXPixmapMESA (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap);
+#endif
+#endif /* GLX_MESA_pixmap_colormap */
+
+#ifndef GLX_MESA_release_buffers
+#define GLX_MESA_release_buffers 1
+typedef Bool ( *PFNGLXRELEASEBUFFERSMESAPROC) (Display *dpy, GLXDrawable drawable);
+#ifdef GLX_GLXEXT_PROTOTYPES
+Bool glXReleaseBuffersMESA (Display *dpy, GLXDrawable drawable);
+#endif
+#endif /* GLX_MESA_release_buffers */
+
+#ifndef GLX_MESA_set_3dfx_mode
+#define GLX_MESA_set_3dfx_mode 1
+#define GLX_3DFX_WINDOW_MODE_MESA 0x1
+#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2
+typedef Bool ( *PFNGLXSET3DFXMODEMESAPROC) (int mode);
+#ifdef GLX_GLXEXT_PROTOTYPES
+Bool glXSet3DfxModeMESA (int mode);
+#endif
+#endif /* GLX_MESA_set_3dfx_mode */
+
+#ifndef GLX_NV_copy_image
+#define GLX_NV_copy_image 1
+typedef void ( *PFNGLXCOPYIMAGESUBDATANVPROC) (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
+#ifdef GLX_GLXEXT_PROTOTYPES
+void glXCopyImageSubDataNV (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
+#endif
+#endif /* GLX_NV_copy_image */
+
+#ifndef GLX_NV_float_buffer
+#define GLX_NV_float_buffer 1
+#define GLX_FLOAT_COMPONENTS_NV 0x20B0
+#endif /* GLX_NV_float_buffer */
+
+#ifndef GLX_NV_multisample_coverage
+#define GLX_NV_multisample_coverage 1
+#define GLX_COVERAGE_SAMPLES_NV 100001
+#define GLX_COLOR_SAMPLES_NV 0x20B3
+#endif /* GLX_NV_multisample_coverage */
+
+#ifndef GLX_NV_present_video
+#define GLX_NV_present_video 1
+#define GLX_NUM_VIDEO_SLOTS_NV 0x20F0
+typedef unsigned int *( *PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int screen, int *nelements);
+typedef int ( *PFNGLXBINDVIDEODEVICENVPROC) (Display *dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list);
+#ifdef GLX_GLXEXT_PROTOTYPES
+unsigned int *glXEnumerateVideoDevicesNV (Display *dpy, int screen, int *nelements);
+int glXBindVideoDeviceNV (Display *dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list);
+#endif
+#endif /* GLX_NV_present_video */
+
+#ifndef GLX_NV_swap_group
+#define GLX_NV_swap_group 1
+typedef Bool ( *PFNGLXJOINSWAPGROUPNVPROC) (Display *dpy, GLXDrawable drawable, GLuint group);
+typedef Bool ( *PFNGLXBINDSWAPBARRIERNVPROC) (Display *dpy, GLuint group, GLuint barrier);
+typedef Bool ( *PFNGLXQUERYSWAPGROUPNVPROC) (Display *dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier);
+typedef Bool ( *PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display *dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers);
+typedef Bool ( *PFNGLXQUERYFRAMECOUNTNVPROC) (Display *dpy, int screen, GLuint *count);
+typedef Bool ( *PFNGLXRESETFRAMECOUNTNVPROC) (Display *dpy, int screen);
+#ifdef GLX_GLXEXT_PROTOTYPES
+Bool glXJoinSwapGroupNV (Display *dpy, GLXDrawable drawable, GLuint group);
+Bool glXBindSwapBarrierNV (Display *dpy, GLuint group, GLuint barrier);
+Bool glXQuerySwapGroupNV (Display *dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier);
+Bool glXQueryMaxSwapGroupsNV (Display *dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers);
+Bool glXQueryFrameCountNV (Display *dpy, int screen, GLuint *count);
+Bool glXResetFrameCountNV (Display *dpy, int screen);
+#endif
+#endif /* GLX_NV_swap_group */
+
+#ifndef GLX_NV_video_capture
+#define GLX_NV_video_capture 1
+typedef XID GLXVideoCaptureDeviceNV;
+#define GLX_DEVICE_ID_NV 0x20CD
+#define GLX_UNIQUE_ID_NV 0x20CE
+#define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
+typedef int ( *PFNGLXBINDVIDEOCAPTUREDEVICENVPROC) (Display *dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device);
+typedef GLXVideoCaptureDeviceNV *( *PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display *dpy, int screen, int *nelements);
+typedef void ( *PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC) (Display *dpy, GLXVideoCaptureDeviceNV device);
+typedef int ( *PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display *dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value);
+typedef void ( *PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display *dpy, GLXVideoCaptureDeviceNV device);
+#ifdef GLX_GLXEXT_PROTOTYPES
+int glXBindVideoCaptureDeviceNV (Display *dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device);
+GLXVideoCaptureDeviceNV *glXEnumerateVideoCaptureDevicesNV (Display *dpy, int screen, int *nelements);
+void glXLockVideoCaptureDeviceNV (Display *dpy, GLXVideoCaptureDeviceNV device);
+int glXQueryVideoCaptureDeviceNV (Display *dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value);
+void glXReleaseVideoCaptureDeviceNV (Display *dpy, GLXVideoCaptureDeviceNV device);
+#endif
+#endif /* GLX_NV_video_capture */
+
+#ifndef GLX_NV_video_output
+#define GLX_NV_video_output 1
+typedef unsigned int GLXVideoDeviceNV;
+#define GLX_VIDEO_OUT_COLOR_NV 0x20C3
+#define GLX_VIDEO_OUT_ALPHA_NV 0x20C4
+#define GLX_VIDEO_OUT_DEPTH_NV 0x20C5
+#define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
+#define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
+#define GLX_VIDEO_OUT_FRAME_NV 0x20C8
+#define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9
+#define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA
+#define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB
+#define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC
+typedef int ( *PFNGLXGETVIDEODEVICENVPROC) (Display *dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice);
+typedef int ( *PFNGLXRELEASEVIDEODEVICENVPROC) (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice);
+typedef int ( *PFNGLXBINDVIDEOIMAGENVPROC) (Display *dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer);
+typedef int ( *PFNGLXRELEASEVIDEOIMAGENVPROC) (Display *dpy, GLXPbuffer pbuf);
+typedef int ( *PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display *dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock);
+typedef int ( *PFNGLXGETVIDEOINFONVPROC) (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
+#ifdef GLX_GLXEXT_PROTOTYPES
+int glXGetVideoDeviceNV (Display *dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice);
+int glXReleaseVideoDeviceNV (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice);
+int glXBindVideoImageNV (Display *dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer);
+int glXReleaseVideoImageNV (Display *dpy, GLXPbuffer pbuf);
+int glXSendPbufferToVideoNV (Display *dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock);
+int glXGetVideoInfoNV (Display *dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
+#endif
+#endif /* GLX_NV_video_output */
+
+#ifndef GLX_OML_swap_method
+#define GLX_OML_swap_method 1
+#define GLX_SWAP_METHOD_OML 0x8060
+#define GLX_SWAP_EXCHANGE_OML 0x8061
+#define GLX_SWAP_COPY_OML 0x8062
+#define GLX_SWAP_UNDEFINED_OML 0x8063
+#endif /* GLX_OML_swap_method */
+
+#ifndef GLX_OML_sync_control
+#define GLX_OML_sync_control 1
+#ifndef GLEXT_64_TYPES_DEFINED
+/* This code block is duplicated in glext.h, so must be protected */
+#define GLEXT_64_TYPES_DEFINED
+/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
+/* (as used in the GLX_OML_sync_control extension). */
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#include <inttypes.h>
+#elif defined(__sun__) || defined(__digital__)
+#include <inttypes.h>
+#if defined(__STDC__)
+#if defined(__arch64__) || defined(_LP64)
+typedef long int int64_t;
+typedef unsigned long int uint64_t;
+#else
+typedef long long int int64_t;
+typedef unsigned long long int uint64_t;
+#endif /* __arch64__ */
+#endif /* __STDC__ */
+#elif defined( __VMS ) || defined(__sgi)
+#include <inttypes.h>
+#elif defined(__SCO__) || defined(__USLC__)
+#include <stdint.h>
+#elif defined(__UNIXOS2__) || defined(__SOL64__)
+typedef long int int32_t;
+typedef long long int int64_t;
+typedef unsigned long long int uint64_t;
+#elif defined(_WIN32) && defined(__GNUC__)
+#include <stdint.h>
+#elif defined(_WIN32)
+typedef __int32 int32_t;
+typedef __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+#else
+/* Fallback if nothing above works */
+#include <inttypes.h>
+#endif
+#endif
+typedef Bool ( *PFNGLXGETSYNCVALUESOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc);
+typedef Bool ( *PFNGLXGETMSCRATEOMLPROC) (Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator);
+typedef int64_t ( *PFNGLXSWAPBUFFERSMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
+typedef Bool ( *PFNGLXWAITFORMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc);
+typedef Bool ( *PFNGLXWAITFORSBCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc);
+#ifdef GLX_GLXEXT_PROTOTYPES
+Bool glXGetSyncValuesOML (Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc);
+Bool glXGetMscRateOML (Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator);
+int64_t glXSwapBuffersMscOML (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
+Bool glXWaitForMscOML (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc);
+Bool glXWaitForSbcOML (Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc);
+#endif
+#endif /* GLX_OML_sync_control */
+
+#ifndef GLX_SGIS_blended_overlay
+#define GLX_SGIS_blended_overlay 1
+#define GLX_BLENDED_RGBA_SGIS 0x8025
+#endif /* GLX_SGIS_blended_overlay */
+
+#ifndef GLX_SGIS_multisample
+#define GLX_SGIS_multisample 1
+#define GLX_SAMPLE_BUFFERS_SGIS 100000
+#define GLX_SAMPLES_SGIS 100001
+#endif /* GLX_SGIS_multisample */
+
+#ifndef GLX_SGIS_shared_multisample
+#define GLX_SGIS_shared_multisample 1
+#define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026
+#define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027
+#endif /* GLX_SGIS_shared_multisample */
+
+#ifndef GLX_SGIX_dmbuffer
+#define GLX_SGIX_dmbuffer 1
+typedef XID GLXPbufferSGIX;
+#ifdef _DM_BUFFER_H_
+#define GLX_DIGITAL_MEDIA_PBUFFER_SGIX 0x8024
+typedef Bool ( *PFNGLXASSOCIATEDMPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer);
+#ifdef GLX_GLXEXT_PROTOTYPES
+Bool glXAssociateDMPbufferSGIX (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer);
+#endif
+#endif /* _DM_BUFFER_H_ */
+#endif /* GLX_SGIX_dmbuffer */
+
+#ifndef GLX_SGIX_fbconfig
+#define GLX_SGIX_fbconfig 1
+typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
+#define GLX_WINDOW_BIT_SGIX 0x00000001
+#define GLX_PIXMAP_BIT_SGIX 0x00000002
+#define GLX_RGBA_BIT_SGIX 0x00000001
+#define GLX_COLOR_INDEX_BIT_SGIX 0x00000002
+#define GLX_DRAWABLE_TYPE_SGIX 0x8010
+#define GLX_RENDER_TYPE_SGIX 0x8011
+#define GLX_X_RENDERABLE_SGIX 0x8012
+#define GLX_FBCONFIG_ID_SGIX 0x8013
+#define GLX_RGBA_TYPE_SGIX 0x8014
+#define GLX_COLOR_INDEX_TYPE_SGIX 0x8015
+typedef int ( *PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value);
+typedef GLXFBConfigSGIX *( *PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, int *attrib_list, int *nelements);
+typedef GLXPixmap ( *PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap);
+typedef GLXContext ( *PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct);
+typedef XVisualInfo *( *PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config);
+typedef GLXFBConfigSGIX ( *PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display *dpy, XVisualInfo *vis);
+#ifdef GLX_GLXEXT_PROTOTYPES
+int glXGetFBConfigAttribSGIX (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value);
+GLXFBConfigSGIX *glXChooseFBConfigSGIX (Display *dpy, int screen, int *attrib_list, int *nelements);
+GLXPixmap glXCreateGLXPixmapWithConfigSGIX (Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap);
+GLXContext glXCreateContextWithConfigSGIX (Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct);
+XVisualInfo *glXGetVisualFromFBConfigSGIX (Display *dpy, GLXFBConfigSGIX config);
+GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX (Display *dpy, XVisualInfo *vis);
+#endif
+#endif /* GLX_SGIX_fbconfig */
+
+#ifndef GLX_SGIX_hyperpipe
+#define GLX_SGIX_hyperpipe 1
+typedef struct {
+ char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
+ int networkId;
+} GLXHyperpipeNetworkSGIX;
+typedef struct {
+ char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
+ int channel;
+ unsigned int participationType;
+ int timeSlice;
+} GLXHyperpipeConfigSGIX;
+typedef struct {
+ char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
+ int srcXOrigin, srcYOrigin, srcWidth, srcHeight;
+ int destXOrigin, destYOrigin, destWidth, destHeight;
+} GLXPipeRect;
+typedef struct {
+ char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
+ int XOrigin, YOrigin, maxHeight, maxWidth;
+} GLXPipeRectLimits;
+#define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80
+#define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91
+#define GLX_BAD_HYPERPIPE_SGIX 92
+#define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001
+#define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002
+#define GLX_PIPE_RECT_SGIX 0x00000001
+#define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002
+#define GLX_HYPERPIPE_STEREO_SGIX 0x00000003
+#define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004
+#define GLX_HYPERPIPE_ID_SGIX 0x8030
+typedef GLXHyperpipeNetworkSGIX *( *PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes);
+typedef int ( *PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId);
+typedef GLXHyperpipeConfigSGIX *( *PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes);
+typedef int ( *PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId);
+typedef int ( *PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId);
+typedef int ( *PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList);
+typedef int ( *PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList);
+typedef int ( *PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList);
+#ifdef GLX_GLXEXT_PROTOTYPES
+GLXHyperpipeNetworkSGIX *glXQueryHyperpipeNetworkSGIX (Display *dpy, int *npipes);
+int glXHyperpipeConfigSGIX (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId);
+GLXHyperpipeConfigSGIX *glXQueryHyperpipeConfigSGIX (Display *dpy, int hpId, int *npipes);
+int glXDestroyHyperpipeConfigSGIX (Display *dpy, int hpId);
+int glXBindHyperpipeSGIX (Display *dpy, int hpId);
+int glXQueryHyperpipeBestAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList);
+int glXHyperpipeAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *attribList);
+int glXQueryHyperpipeAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList);
+#endif
+#endif /* GLX_SGIX_hyperpipe */
+
+#ifndef GLX_SGIX_pbuffer
+#define GLX_SGIX_pbuffer 1
+#define GLX_PBUFFER_BIT_SGIX 0x00000004
+#define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000
+#define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001
+#define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002
+#define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004
+#define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008
+#define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010
+#define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020
+#define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040
+#define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080
+#define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100
+#define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016
+#define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017
+#define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018
+#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019
+#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A
+#define GLX_PRESERVED_CONTENTS_SGIX 0x801B
+#define GLX_LARGEST_PBUFFER_SGIX 0x801C
+#define GLX_WIDTH_SGIX 0x801D
+#define GLX_HEIGHT_SGIX 0x801E
+#define GLX_EVENT_MASK_SGIX 0x801F
+#define GLX_DAMAGED_SGIX 0x8020
+#define GLX_SAVED_SGIX 0x8021
+#define GLX_WINDOW_SGIX 0x8022
+#define GLX_PBUFFER_SGIX 0x8023
+typedef GLXPbufferSGIX ( *PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list);
+typedef void ( *PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf);
+typedef int ( *PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value);
+typedef void ( *PFNGLXSELECTEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long mask);
+typedef void ( *PFNGLXGETSELECTEDEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long *mask);
+#ifdef GLX_GLXEXT_PROTOTYPES
+GLXPbufferSGIX glXCreateGLXPbufferSGIX (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list);
+void glXDestroyGLXPbufferSGIX (Display *dpy, GLXPbufferSGIX pbuf);
+int glXQueryGLXPbufferSGIX (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value);
+void glXSelectEventSGIX (Display *dpy, GLXDrawable drawable, unsigned long mask);
+void glXGetSelectedEventSGIX (Display *dpy, GLXDrawable drawable, unsigned long *mask);
+#endif
+#endif /* GLX_SGIX_pbuffer */
+
+#ifndef GLX_SGIX_swap_barrier
+#define GLX_SGIX_swap_barrier 1
+typedef void ( *PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier);
+typedef Bool ( *PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max);
+#ifdef GLX_GLXEXT_PROTOTYPES
+void glXBindSwapBarrierSGIX (Display *dpy, GLXDrawable drawable, int barrier);
+Bool glXQueryMaxSwapBarriersSGIX (Display *dpy, int screen, int *max);
+#endif
+#endif /* GLX_SGIX_swap_barrier */
+
+#ifndef GLX_SGIX_swap_group
+#define GLX_SGIX_swap_group 1
+typedef void ( *PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member);
+#ifdef GLX_GLXEXT_PROTOTYPES
+void glXJoinSwapGroupSGIX (Display *dpy, GLXDrawable drawable, GLXDrawable member);
+#endif
+#endif /* GLX_SGIX_swap_group */
+
+#ifndef GLX_SGIX_video_resize
+#define GLX_SGIX_video_resize 1
+#define GLX_SYNC_FRAME_SGIX 0x00000000
+#define GLX_SYNC_SWAP_SGIX 0x00000001
+typedef int ( *PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display *display, int screen, int channel, Window window);
+typedef int ( *PFNGLXCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int x, int y, int w, int h);
+typedef int ( *PFNGLXQUERYCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh);
+typedef int ( *PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display *display, int screen, int channel, int *x, int *y, int *w, int *h);
+typedef int ( *PFNGLXCHANNELRECTSYNCSGIXPROC) (Display *display, int screen, int channel, GLenum synctype);
+#ifdef GLX_GLXEXT_PROTOTYPES
+int glXBindChannelToWindowSGIX (Display *display, int screen, int channel, Window window);
+int glXChannelRectSGIX (Display *display, int screen, int channel, int x, int y, int w, int h);
+int glXQueryChannelRectSGIX (Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh);
+int glXQueryChannelDeltasSGIX (Display *display, int screen, int channel, int *x, int *y, int *w, int *h);
+int glXChannelRectSyncSGIX (Display *display, int screen, int channel, GLenum synctype);
+#endif
+#endif /* GLX_SGIX_video_resize */
+
+#ifndef GLX_SGIX_video_source
+#define GLX_SGIX_video_source 1
+typedef XID GLXVideoSourceSGIX;
+#ifdef _VL_H
+typedef GLXVideoSourceSGIX ( *PFNGLXCREATEGLXVIDEOSOURCESGIXPROC) (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode);
+typedef void ( *PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSourceSGIX glxvideosource);
+#ifdef GLX_GLXEXT_PROTOTYPES
+GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode);
+void glXDestroyGLXVideoSourceSGIX (Display *dpy, GLXVideoSourceSGIX glxvideosource);
+#endif
+#endif /* _VL_H */
+#endif /* GLX_SGIX_video_source */
+
+#ifndef GLX_SGIX_visual_select_group
+#define GLX_SGIX_visual_select_group 1
+#define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028
+#endif /* GLX_SGIX_visual_select_group */
+
+#ifndef GLX_SGI_cushion
+#define GLX_SGI_cushion 1
+typedef void ( *PFNGLXCUSHIONSGIPROC) (Display *dpy, Window window, float cushion);
+#ifdef GLX_GLXEXT_PROTOTYPES
+void glXCushionSGI (Display *dpy, Window window, float cushion);
+#endif
+#endif /* GLX_SGI_cushion */
+
+#ifndef GLX_SGI_make_current_read
+#define GLX_SGI_make_current_read 1
+typedef Bool ( *PFNGLXMAKECURRENTREADSGIPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
+typedef GLXDrawable ( *PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void);
+#ifdef GLX_GLXEXT_PROTOTYPES
+Bool glXMakeCurrentReadSGI (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
+GLXDrawable glXGetCurrentReadDrawableSGI (void);
+#endif
+#endif /* GLX_SGI_make_current_read */
+
+#ifndef GLX_SGI_swap_control
+#define GLX_SGI_swap_control 1
+typedef int ( *PFNGLXSWAPINTERVALSGIPROC) (int interval);
+#ifdef GLX_GLXEXT_PROTOTYPES
+int glXSwapIntervalSGI (int interval);
+#endif
+#endif /* GLX_SGI_swap_control */
+
+#ifndef GLX_SGI_video_sync
+#define GLX_SGI_video_sync 1
+typedef int ( *PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int *count);
+typedef int ( *PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int *count);
+#ifdef GLX_GLXEXT_PROTOTYPES
+int glXGetVideoSyncSGI (unsigned int *count);
+int glXWaitVideoSyncSGI (int divisor, int remainder, unsigned int *count);
+#endif
+#endif /* GLX_SGI_video_sync */
+
+#ifndef GLX_SUN_get_transparent_index
+#define GLX_SUN_get_transparent_index 1
+typedef Status ( *PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex);
+#ifdef GLX_GLXEXT_PROTOTYPES
+Status glXGetTransparentIndexSUN (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex);
+#endif
+#endif /* GLX_SUN_get_transparent_index */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/gl/internal/dri_interface.h b/gl/internal/dri_interface.h
new file mode 100644
index 000000000..89b559b4e
--- /dev/null
+++ b/gl/internal/dri_interface.h
@@ -0,0 +1,1413 @@
+/*
+ * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+ * Copyright 2007-2008 Red Hat, Inc.
+ * (C) Copyright IBM Corporation 2004
+ * 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
+ * THE COPYRIGHT HOLDERS AND/OR THEIR 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.
+ */
+
+/**
+ * \file dri_interface.h
+ *
+ * This file contains all the types and functions that define the interface
+ * between a DRI driver and driver loader. Currently, the most common driver
+ * loader is the XFree86 libGL.so. However, other loaders do exist, and in
+ * the future the server-side libglx.a will also be a loader.
+ *
+ * \author Kevin E. Martin <kevin@precisioninsight.com>
+ * \author Ian Romanick <idr@us.ibm.com>
+ * \author Kristian Høgsberg <krh@redhat.com>
+ */
+
+#ifndef DRI_INTERFACE_H
+#define DRI_INTERFACE_H
+
+/* For archs with no drm.h */
+#if defined(__APPLE__) || defined(__CYGWIN__) || defined(__GNU__) || defined(_MSC_VER)
+#ifndef __NOT_HAVE_DRM_H
+#define __NOT_HAVE_DRM_H
+#endif
+#endif
+
+#ifndef __NOT_HAVE_DRM_H
+#include <drm.h>
+#else
+typedef unsigned int drm_context_t;
+typedef unsigned int drm_drawable_t;
+typedef struct drm_clip_rect drm_clip_rect_t;
+#endif
+
+#include <stdint.h>
+
+/**
+ * \name DRI interface structures
+ *
+ * The following structures define the interface between the GLX client
+ * side library and the DRI (direct rendering infrastructure).
+ */
+/*@{*/
+typedef struct __DRIdisplayRec __DRIdisplay;
+typedef struct __DRIscreenRec __DRIscreen;
+typedef struct __DRIcontextRec __DRIcontext;
+typedef struct __DRIdrawableRec __DRIdrawable;
+typedef struct __DRIconfigRec __DRIconfig;
+typedef struct __DRIframebufferRec __DRIframebuffer;
+typedef struct __DRIversionRec __DRIversion;
+
+typedef struct __DRIcoreExtensionRec __DRIcoreExtension;
+typedef struct __DRIextensionRec __DRIextension;
+typedef struct __DRIcopySubBufferExtensionRec __DRIcopySubBufferExtension;
+typedef struct __DRIswapControlExtensionRec __DRIswapControlExtension;
+typedef struct __DRIframeTrackingExtensionRec __DRIframeTrackingExtension;
+typedef struct __DRImediaStreamCounterExtensionRec __DRImediaStreamCounterExtension;
+typedef struct __DRItexOffsetExtensionRec __DRItexOffsetExtension;
+typedef struct __DRItexBufferExtensionRec __DRItexBufferExtension;
+typedef struct __DRIlegacyExtensionRec __DRIlegacyExtension;
+typedef struct __DRIswrastExtensionRec __DRIswrastExtension;
+typedef struct __DRIbufferRec __DRIbuffer;
+typedef struct __DRIdri2ExtensionRec __DRIdri2Extension;
+typedef struct __DRIdri2LoaderExtensionRec __DRIdri2LoaderExtension;
+typedef struct __DRI2flushExtensionRec __DRI2flushExtension;
+typedef struct __DRI2throttleExtensionRec __DRI2throttleExtension;
+
+
+typedef struct __DRIimageLoaderExtensionRec __DRIimageLoaderExtension;
+typedef struct __DRIimageDriverExtensionRec __DRIimageDriverExtension;
+
+/*@}*/
+
+
+/**
+ * Extension struct. Drivers 'inherit' from this struct by embedding
+ * it as the first element in the extension struct.
+ *
+ * We never break API in for a DRI extension. If we need to change
+ * the way things work in a non-backwards compatible manner, we
+ * introduce a new extension. During a transition period, we can
+ * leave both the old and the new extension in the driver, which
+ * allows us to move to the new interface without having to update the
+ * loader(s) in lock step.
+ *
+ * However, we can add entry points to an extension over time as long
+ * as we don't break the old ones. As we add entry points to an
+ * extension, we increase the version number. The corresponding
+ * #define can be used to guard code that accesses the new entry
+ * points at compile time and the version field in the extension
+ * struct can be used at run-time to determine how to use the
+ * extension.
+ */
+struct __DRIextensionRec {
+ const char *name;
+ int version;
+};
+
+/**
+ * The first set of extension are the screen extensions, returned by
+ * __DRIcore::getExtensions(). This entry point will return a list of
+ * extensions and the loader can use the ones it knows about by
+ * casting them to more specific extensions and advertising any GLX
+ * extensions the DRI extensions enables.
+ */
+
+/**
+ * Used by drivers to indicate support for setting the read drawable.
+ */
+#define __DRI_READ_DRAWABLE "DRI_ReadDrawable"
+#define __DRI_READ_DRAWABLE_VERSION 1
+
+/**
+ * Used by drivers that implement the GLX_MESA_copy_sub_buffer extension.
+ */
+#define __DRI_COPY_SUB_BUFFER "DRI_CopySubBuffer"
+#define __DRI_COPY_SUB_BUFFER_VERSION 1
+struct __DRIcopySubBufferExtensionRec {
+ __DRIextension base;
+ void (*copySubBuffer)(__DRIdrawable *drawable, int x, int y, int w, int h);
+};
+
+/**
+ * Used by drivers that implement the GLX_SGI_swap_control or
+ * GLX_MESA_swap_control extension.
+ */
+#define __DRI_SWAP_CONTROL "DRI_SwapControl"
+#define __DRI_SWAP_CONTROL_VERSION 1
+struct __DRIswapControlExtensionRec {
+ __DRIextension base;
+ void (*setSwapInterval)(__DRIdrawable *drawable, unsigned int inteval);
+ unsigned int (*getSwapInterval)(__DRIdrawable *drawable);
+};
+
+/**
+ * Used by drivers that implement the GLX_MESA_swap_frame_usage extension.
+ */
+#define __DRI_FRAME_TRACKING "DRI_FrameTracking"
+#define __DRI_FRAME_TRACKING_VERSION 1
+struct __DRIframeTrackingExtensionRec {
+ __DRIextension base;
+
+ /**
+ * Enable or disable frame usage tracking.
+ *
+ * \since Internal API version 20030317.
+ */
+ int (*frameTracking)(__DRIdrawable *drawable, GLboolean enable);
+
+ /**
+ * Retrieve frame usage information.
+ *
+ * \since Internal API version 20030317.
+ */
+ int (*queryFrameTracking)(__DRIdrawable *drawable,
+ int64_t * sbc, int64_t * missedFrames,
+ float * lastMissedUsage, float * usage);
+};
+
+
+/**
+ * Used by drivers that implement the GLX_SGI_video_sync extension.
+ */
+#define __DRI_MEDIA_STREAM_COUNTER "DRI_MediaStreamCounter"
+#define __DRI_MEDIA_STREAM_COUNTER_VERSION 1
+struct __DRImediaStreamCounterExtensionRec {
+ __DRIextension base;
+
+ /**
+ * Wait for the MSC to equal target_msc, or, if that has already passed,
+ * the next time (MSC % divisor) is equal to remainder. If divisor is
+ * zero, the function will return as soon as MSC is greater than or equal
+ * to target_msc.
+ */
+ int (*waitForMSC)(__DRIdrawable *drawable,
+ int64_t target_msc, int64_t divisor, int64_t remainder,
+ int64_t * msc, int64_t * sbc);
+
+ /**
+ * Get the number of vertical refreshes since some point in time before
+ * this function was first called (i.e., system start up).
+ */
+ int (*getDrawableMSC)(__DRIscreen *screen, __DRIdrawable *drawable,
+ int64_t *msc);
+};
+
+
+#define __DRI_TEX_OFFSET "DRI_TexOffset"
+#define __DRI_TEX_OFFSET_VERSION 1
+struct __DRItexOffsetExtensionRec {
+ __DRIextension base;
+
+ /**
+ * Method to override base texture image with a driver specific 'offset'.
+ * The depth passed in allows e.g. to ignore the alpha channel of texture
+ * images where the non-alpha components don't occupy a whole texel.
+ *
+ * For GLX_EXT_texture_from_pixmap with AIGLX.
+ */
+ void (*setTexOffset)(__DRIcontext *pDRICtx, GLint texname,
+ unsigned long long offset, GLint depth, GLuint pitch);
+};
+
+
+/* Valid values for format in the setTexBuffer2 function below. These
+ * values match the GLX tokens for compatibility reasons, but we
+ * define them here since the DRI interface can't depend on GLX. */
+#define __DRI_TEXTURE_FORMAT_NONE 0x20D8
+#define __DRI_TEXTURE_FORMAT_RGB 0x20D9
+#define __DRI_TEXTURE_FORMAT_RGBA 0x20DA
+
+#define __DRI_TEX_BUFFER "DRI_TexBuffer"
+#define __DRI_TEX_BUFFER_VERSION 2
+struct __DRItexBufferExtensionRec {
+ __DRIextension base;
+
+ /**
+ * Method to override base texture image with the contents of a
+ * __DRIdrawable.
+ *
+ * For GLX_EXT_texture_from_pixmap with AIGLX. Deprecated in favor of
+ * setTexBuffer2 in version 2 of this interface
+ */
+ void (*setTexBuffer)(__DRIcontext *pDRICtx,
+ GLint target,
+ __DRIdrawable *pDraw);
+
+ /**
+ * Method to override base texture image with the contents of a
+ * __DRIdrawable, including the required texture format attribute.
+ *
+ * For GLX_EXT_texture_from_pixmap with AIGLX.
+ */
+ void (*setTexBuffer2)(__DRIcontext *pDRICtx,
+ GLint target,
+ GLint format,
+ __DRIdrawable *pDraw);
+ /**
+ * Method to release texture buffer in case some special platform
+ * need this.
+ *
+ * For GLX_EXT_texture_from_pixmap with AIGLX.
+ */
+ void (*releaseTexBuffer)(__DRIcontext *pDRICtx,
+ GLint target,
+ __DRIdrawable *pDraw);
+};
+
+/**
+ * Used by drivers that implement DRI2
+ */
+#define __DRI2_FLUSH "DRI2_Flush"
+#define __DRI2_FLUSH_VERSION 4
+
+#define __DRI2_FLUSH_DRAWABLE (1 << 0) /* the drawable should be flushed. */
+#define __DRI2_FLUSH_CONTEXT (1 << 1) /* glFlush should be called */
+
+enum __DRI2throttleReason {
+ __DRI2_THROTTLE_SWAPBUFFER,
+ __DRI2_THROTTLE_COPYSUBBUFFER,
+ __DRI2_THROTTLE_FLUSHFRONT
+};
+
+struct __DRI2flushExtensionRec {
+ __DRIextension base;
+ void (*flush)(__DRIdrawable *drawable);
+
+ /**
+ * Ask the driver to call getBuffers/getBuffersWithFormat before
+ * it starts rendering again.
+ *
+ * \param drawable the drawable to invalidate
+ *
+ * \since 3
+ */
+ void (*invalidate)(__DRIdrawable *drawable);
+
+ /**
+ * This function reduces the number of flushes in the driver by combining
+ * several operations into one call.
+ *
+ * It can:
+ * - throttle
+ * - flush a drawable
+ * - flush a context
+ *
+ * \param context the context
+ * \param drawable the drawable to flush
+ * \param flags a combination of _DRI2_FLUSH_xxx flags
+ * \param throttle_reason the reason for throttling, 0 = no throttling
+ *
+ * \since 4
+ */
+ void (*flush_with_flags)(__DRIcontext *ctx,
+ __DRIdrawable *drawable,
+ unsigned flags,
+ enum __DRI2throttleReason throttle_reason);
+};
+
+
+/**
+ * Extension that the driver uses to request
+ * throttle callbacks.
+ */
+
+#define __DRI2_THROTTLE "DRI2_Throttle"
+#define __DRI2_THROTTLE_VERSION 1
+
+struct __DRI2throttleExtensionRec {
+ __DRIextension base;
+ void (*throttle)(__DRIcontext *ctx,
+ __DRIdrawable *drawable,
+ enum __DRI2throttleReason reason);
+};
+
+/*@}*/
+
+/**
+ * The following extensions describe loader features that the DRI
+ * driver can make use of. Some of these are mandatory, such as the
+ * getDrawableInfo extension for DRI and the DRI Loader extensions for
+ * DRI2, while others are optional, and if present allow the driver to
+ * expose certain features. The loader pass in a NULL terminated
+ * array of these extensions to the driver in the createNewScreen
+ * constructor.
+ */
+
+typedef struct __DRIgetDrawableInfoExtensionRec __DRIgetDrawableInfoExtension;
+typedef struct __DRIsystemTimeExtensionRec __DRIsystemTimeExtension;
+typedef struct __DRIdamageExtensionRec __DRIdamageExtension;
+typedef struct __DRIloaderExtensionRec __DRIloaderExtension;
+typedef struct __DRIswrastLoaderExtensionRec __DRIswrastLoaderExtension;
+
+
+/**
+ * Callback to getDrawableInfo protocol
+ */
+#define __DRI_GET_DRAWABLE_INFO "DRI_GetDrawableInfo"
+#define __DRI_GET_DRAWABLE_INFO_VERSION 1
+struct __DRIgetDrawableInfoExtensionRec {
+ __DRIextension base;
+
+ /**
+ * This function is used to get information about the position, size, and
+ * clip rects of a drawable.
+ */
+ GLboolean (* getDrawableInfo) ( __DRIdrawable *drawable,
+ unsigned int * index, unsigned int * stamp,
+ int * x, int * y, int * width, int * height,
+ int * numClipRects, drm_clip_rect_t ** pClipRects,
+ int * backX, int * backY,
+ int * numBackClipRects, drm_clip_rect_t ** pBackClipRects,
+ void *loaderPrivate);
+};
+
+typedef int int32_t;
+
+/**
+ * Callback to get system time for media stream counter extensions.
+ */
+#define __DRI_SYSTEM_TIME "DRI_SystemTime"
+#define __DRI_SYSTEM_TIME_VERSION 1
+struct __DRIsystemTimeExtensionRec {
+ __DRIextension base;
+
+ /**
+ * Get the 64-bit unadjusted system time (UST).
+ */
+ int (*getUST)(int64_t * ust);
+
+ /**
+ * Get the media stream counter (MSC) rate.
+ *
+ * Matching the definition in GLX_OML_sync_control, this function returns
+ * the rate of the "media stream counter". In practical terms, this is
+ * the frame refresh rate of the display.
+ */
+ GLboolean (*getMSCRate)(__DRIdrawable *draw,
+ int32_t * numerator, int32_t * denominator,
+ void *loaderPrivate);
+};
+
+/**
+ * Damage reporting
+ */
+#define __DRI_DAMAGE "DRI_Damage"
+#define __DRI_DAMAGE_VERSION 1
+struct __DRIdamageExtensionRec {
+ __DRIextension base;
+
+ /**
+ * Reports areas of the given drawable which have been modified by the
+ * driver.
+ *
+ * \param drawable which the drawing was done to.
+ * \param rects rectangles affected, with the drawable origin as the
+ * origin.
+ * \param x X offset of the drawable within the screen (used in the
+ * front_buffer case)
+ * \param y Y offset of the drawable within the screen.
+ * \param front_buffer boolean flag for whether the drawing to the
+ * drawable was actually done directly to the front buffer (instead
+ * of backing storage, for example)
+ * \param loaderPrivate the data passed in at createNewDrawable time
+ */
+ void (*reportDamage)(__DRIdrawable *draw,
+ int x, int y,
+ drm_clip_rect_t *rects, int num_rects,
+ GLboolean front_buffer,
+ void *loaderPrivate);
+};
+
+#define __DRI_SWRAST_IMAGE_OP_DRAW 1
+#define __DRI_SWRAST_IMAGE_OP_CLEAR 2
+#define __DRI_SWRAST_IMAGE_OP_SWAP 3
+
+/**
+ * SWRast Loader extension.
+ */
+#define __DRI_SWRAST_LOADER "DRI_SWRastLoader"
+#define __DRI_SWRAST_LOADER_VERSION 1
+struct __DRIswrastLoaderExtensionRec {
+ __DRIextension base;
+
+ /*
+ * Drawable position and size
+ */
+ void (*getDrawableInfo)(__DRIdrawable *drawable,
+ int *x, int *y, int *width, int *height,
+ void *loaderPrivate);
+
+ /**
+ * Put image to drawable
+ */
+ void (*putImage)(__DRIdrawable *drawable, int op,
+ int x, int y, int width, int height,
+ char *data, void *loaderPrivate);
+
+ /**
+ * Get image from readable
+ */
+ void (*getImage)(__DRIdrawable *readable,
+ int x, int y, int width, int height,
+ char *data, void *loaderPrivate);
+};
+
+/**
+ * Invalidate loader extension. The presence of this extension
+ * indicates to the DRI driver that the loader will call invalidate in
+ * the __DRI2_FLUSH extension, whenever the needs to query for new
+ * buffers. This means that the DRI driver can drop the polling in
+ * glViewport().
+ *
+ * The extension doesn't provide any functionality, it's only use to
+ * indicate to the driver that it can use the new semantics. A DRI
+ * driver can use this to switch between the different semantics or
+ * just refuse to initialize if this extension isn't present.
+ */
+#define __DRI_USE_INVALIDATE "DRI_UseInvalidate"
+#define __DRI_USE_INVALIDATE_VERSION 1
+
+typedef struct __DRIuseInvalidateExtensionRec __DRIuseInvalidateExtension;
+struct __DRIuseInvalidateExtensionRec {
+ __DRIextension base;
+};
+
+/**
+ * The remaining extensions describe driver extensions, immediately
+ * available interfaces provided by the driver. To start using the
+ * driver, dlsym() for the __DRI_DRIVER_EXTENSIONS symbol and look for
+ * the extension you need in the array.
+ */
+#define __DRI_DRIVER_EXTENSIONS "__driDriverExtensions"
+
+/**
+ * This symbol replaces the __DRI_DRIVER_EXTENSIONS symbol, and will be
+ * suffixed by "_drivername", allowing multiple drivers to be built into one
+ * library, and also giving the driver the chance to return a variable driver
+ * extensions struct depending on the driver name being loaded or any other
+ * system state.
+ *
+ * The function prototype is:
+ *
+ * const __DRIextension **__driDriverGetExtensions_drivername(void);
+ */
+#define __DRI_DRIVER_GET_EXTENSIONS "__driDriverGetExtensions"
+
+/**
+ * Tokens for __DRIconfig attribs. A number of attributes defined by
+ * GLX or EGL standards are not in the table, as they must be provided
+ * by the loader. For example, FBConfig ID or visual ID, drawable type.
+ */
+
+#define __DRI_ATTRIB_BUFFER_SIZE 1
+#define __DRI_ATTRIB_LEVEL 2
+#define __DRI_ATTRIB_RED_SIZE 3
+#define __DRI_ATTRIB_GREEN_SIZE 4
+#define __DRI_ATTRIB_BLUE_SIZE 5
+#define __DRI_ATTRIB_LUMINANCE_SIZE 6
+#define __DRI_ATTRIB_ALPHA_SIZE 7
+#define __DRI_ATTRIB_ALPHA_MASK_SIZE 8
+#define __DRI_ATTRIB_DEPTH_SIZE 9
+#define __DRI_ATTRIB_STENCIL_SIZE 10
+#define __DRI_ATTRIB_ACCUM_RED_SIZE 11
+#define __DRI_ATTRIB_ACCUM_GREEN_SIZE 12
+#define __DRI_ATTRIB_ACCUM_BLUE_SIZE 13
+#define __DRI_ATTRIB_ACCUM_ALPHA_SIZE 14
+#define __DRI_ATTRIB_SAMPLE_BUFFERS 15
+#define __DRI_ATTRIB_SAMPLES 16
+#define __DRI_ATTRIB_RENDER_TYPE 17
+#define __DRI_ATTRIB_CONFIG_CAVEAT 18
+#define __DRI_ATTRIB_CONFORMANT 19
+#define __DRI_ATTRIB_DOUBLE_BUFFER 20
+#define __DRI_ATTRIB_STEREO 21
+#define __DRI_ATTRIB_AUX_BUFFERS 22
+#define __DRI_ATTRIB_TRANSPARENT_TYPE 23
+#define __DRI_ATTRIB_TRANSPARENT_INDEX_VALUE 24
+#define __DRI_ATTRIB_TRANSPARENT_RED_VALUE 25
+#define __DRI_ATTRIB_TRANSPARENT_GREEN_VALUE 26
+#define __DRI_ATTRIB_TRANSPARENT_BLUE_VALUE 27
+#define __DRI_ATTRIB_TRANSPARENT_ALPHA_VALUE 28
+#define __DRI_ATTRIB_FLOAT_MODE 29
+#define __DRI_ATTRIB_RED_MASK 30
+#define __DRI_ATTRIB_GREEN_MASK 31
+#define __DRI_ATTRIB_BLUE_MASK 32
+#define __DRI_ATTRIB_ALPHA_MASK 33
+#define __DRI_ATTRIB_MAX_PBUFFER_WIDTH 34
+#define __DRI_ATTRIB_MAX_PBUFFER_HEIGHT 35
+#define __DRI_ATTRIB_MAX_PBUFFER_PIXELS 36
+#define __DRI_ATTRIB_OPTIMAL_PBUFFER_WIDTH 37
+#define __DRI_ATTRIB_OPTIMAL_PBUFFER_HEIGHT 38
+#define __DRI_ATTRIB_VISUAL_SELECT_GROUP 39
+#define __DRI_ATTRIB_SWAP_METHOD 40
+#define __DRI_ATTRIB_MAX_SWAP_INTERVAL 41
+#define __DRI_ATTRIB_MIN_SWAP_INTERVAL 42
+#define __DRI_ATTRIB_BIND_TO_TEXTURE_RGB 43
+#define __DRI_ATTRIB_BIND_TO_TEXTURE_RGBA 44
+#define __DRI_ATTRIB_BIND_TO_MIPMAP_TEXTURE 45
+#define __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS 46
+#define __DRI_ATTRIB_YINVERTED 47
+#define __DRI_ATTRIB_FRAMEBUFFER_SRGB_CAPABLE 48
+
+/* __DRI_ATTRIB_RENDER_TYPE */
+#define __DRI_ATTRIB_RGBA_BIT 0x01
+#define __DRI_ATTRIB_COLOR_INDEX_BIT 0x02
+#define __DRI_ATTRIB_LUMINANCE_BIT 0x04
+#define __DRI_ATTRIB_FLOAT_BIT 0x08
+#define __DRI_ATTRIB_UNSIGNED_FLOAT_BIT 0x10
+
+/* __DRI_ATTRIB_CONFIG_CAVEAT */
+#define __DRI_ATTRIB_SLOW_BIT 0x01
+#define __DRI_ATTRIB_NON_CONFORMANT_CONFIG 0x02
+
+/* __DRI_ATTRIB_TRANSPARENT_TYPE */
+#define __DRI_ATTRIB_TRANSPARENT_RGB 0x00
+#define __DRI_ATTRIB_TRANSPARENT_INDEX 0x01
+
+/* __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS */
+#define __DRI_ATTRIB_TEXTURE_1D_BIT 0x01
+#define __DRI_ATTRIB_TEXTURE_2D_BIT 0x02
+#define __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT 0x04
+
+/**
+ * This extension defines the core DRI functionality.
+ */
+#define __DRI_CORE "DRI_Core"
+#define __DRI_CORE_VERSION 1
+
+struct __DRIcoreExtensionRec {
+ __DRIextension base;
+
+ __DRIscreen *(*createNewScreen)(int screen, int fd,
+ unsigned int sarea_handle,
+ const __DRIextension **extensions,
+ const __DRIconfig ***driverConfigs,
+ void *loaderPrivate);
+
+ void (*destroyScreen)(__DRIscreen *screen);
+
+ const __DRIextension **(*getExtensions)(__DRIscreen *screen);
+
+ int (*getConfigAttrib)(const __DRIconfig *config,
+ unsigned int attrib,
+ unsigned int *value);
+
+ int (*indexConfigAttrib)(const __DRIconfig *config, int index,
+ unsigned int *attrib, unsigned int *value);
+
+ __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen,
+ const __DRIconfig *config,
+ unsigned int drawable_id,
+ unsigned int head,
+ void *loaderPrivate);
+
+ void (*destroyDrawable)(__DRIdrawable *drawable);
+
+ void (*swapBuffers)(__DRIdrawable *drawable);
+
+ __DRIcontext *(*createNewContext)(__DRIscreen *screen,
+ const __DRIconfig *config,
+ __DRIcontext *shared,
+ void *loaderPrivate);
+
+ int (*copyContext)(__DRIcontext *dest,
+ __DRIcontext *src,
+ unsigned long mask);
+
+ void (*destroyContext)(__DRIcontext *context);
+
+ int (*bindContext)(__DRIcontext *ctx,
+ __DRIdrawable *pdraw,
+ __DRIdrawable *pread);
+
+ int (*unbindContext)(__DRIcontext *ctx);
+};
+
+/**
+ * Stored version of some component (i.e., server-side DRI module, kernel-side
+ * DRM, etc.).
+ *
+ * \todo
+ * There are several data structures that explicitly store a major version,
+ * minor version, and patch level. These structures should be modified to
+ * have a \c __DRIversionRec instead.
+ */
+struct __DRIversionRec {
+ int major; /**< Major version number. */
+ int minor; /**< Minor version number. */
+ int patch; /**< Patch-level. */
+};
+
+/**
+ * Framebuffer information record. Used by libGL to communicate information
+ * about the framebuffer to the driver's \c __driCreateNewScreen function.
+ *
+ * In XFree86, most of this information is derrived from data returned by
+ * calling \c XF86DRIGetDeviceInfo.
+ *
+ * \sa XF86DRIGetDeviceInfo __DRIdisplayRec::createNewScreen
+ * __driUtilCreateNewScreen CallCreateNewScreen
+ *
+ * \bug This structure could be better named.
+ */
+struct __DRIframebufferRec {
+ unsigned char *base; /**< Framebuffer base address in the CPU's
+ * address space. This value is calculated by
+ * calling \c drmMap on the framebuffer handle
+ * returned by \c XF86DRIGetDeviceInfo (or a
+ * similar function).
+ */
+ int size; /**< Framebuffer size, in bytes. */
+ int stride; /**< Number of bytes from one line to the next. */
+ int width; /**< Pixel width of the framebuffer. */
+ int height; /**< Pixel height of the framebuffer. */
+ int dev_priv_size; /**< Size of the driver's dev-priv structure. */
+ void *dev_priv; /**< Pointer to the driver's dev-priv structure. */
+};
+
+
+/**
+ * This extension provides alternative screen, drawable and context
+ * constructors for legacy DRI functionality. This is used in
+ * conjunction with the core extension.
+ */
+#define __DRI_LEGACY "DRI_Legacy"
+#define __DRI_LEGACY_VERSION 1
+
+struct __DRIlegacyExtensionRec {
+ __DRIextension base;
+
+ __DRIscreen *(*createNewScreen)(int screen,
+ const __DRIversion *ddx_version,
+ const __DRIversion *dri_version,
+ const __DRIversion *drm_version,
+ const __DRIframebuffer *frame_buffer,
+ void *pSAREA, int fd,
+ const __DRIextension **extensions,
+ const __DRIconfig ***driver_configs,
+ void *loaderPrivate);
+
+ __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen,
+ const __DRIconfig *config,
+ drm_drawable_t hwDrawable,
+ int renderType, const int *attrs,
+ void *loaderPrivate);
+
+ __DRIcontext *(*createNewContext)(__DRIscreen *screen,
+ const __DRIconfig *config,
+ int render_type,
+ __DRIcontext *shared,
+ drm_context_t hwContext,
+ void *loaderPrivate);
+};
+
+/**
+ * This extension provides alternative screen, drawable and context
+ * constructors for swrast DRI functionality. This is used in
+ * conjunction with the core extension.
+ */
+#define __DRI_SWRAST "DRI_SWRast"
+#define __DRI_SWRAST_VERSION 4
+
+struct __DRIswrastExtensionRec {
+ __DRIextension base;
+
+ __DRIscreen *(*createNewScreen)(int screen,
+ const __DRIextension **extensions,
+ const __DRIconfig ***driver_configs,
+ void *loaderPrivate);
+
+ __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen,
+ const __DRIconfig *config,
+ void *loaderPrivate);
+
+ /* Since version 2 */
+ __DRIcontext *(*createNewContextForAPI)(__DRIscreen *screen,
+ int api,
+ const __DRIconfig *config,
+ __DRIcontext *shared,
+ void *data);
+
+ /**
+ * Create a context for a particular API with a set of attributes
+ *
+ * \since version 3
+ *
+ * \sa __DRIdri2ExtensionRec::createContextAttribs
+ */
+ __DRIcontext *(*createContextAttribs)(__DRIscreen *screen,
+ int api,
+ const __DRIconfig *config,
+ __DRIcontext *shared,
+ unsigned num_attribs,
+ const uint32_t *attribs,
+ unsigned *error,
+ void *loaderPrivate);
+
+ /**
+ * createNewScreen() with the driver extensions passed in.
+ *
+ * \since version 4
+ */
+ __DRIscreen *(*createNewScreen2)(int screen,
+ const __DRIextension **loader_extensions,
+ const __DRIextension **driver_extensions,
+ const __DRIconfig ***driver_configs,
+ void *loaderPrivate);
+
+};
+
+/** Common DRI function definitions, shared among DRI2 and Image extensions
+ */
+
+typedef __DRIscreen *
+(*__DRIcreateNewScreen2Func)(int screen, int fd,
+ const __DRIextension **extensions,
+ const __DRIextension **driver_extensions,
+ const __DRIconfig ***driver_configs,
+ void *loaderPrivate);
+
+typedef __DRIdrawable *
+(*__DRIcreateNewDrawableFunc)(__DRIscreen *screen,
+ const __DRIconfig *config,
+ void *loaderPrivate);
+
+typedef __DRIcontext *
+(*__DRIcreateContextAttribsFunc)(__DRIscreen *screen,
+ int api,
+ const __DRIconfig *config,
+ __DRIcontext *shared,
+ unsigned num_attribs,
+ const uint32_t *attribs,
+ unsigned *error,
+ void *loaderPrivate);
+
+typedef unsigned int
+(*__DRIgetAPIMaskFunc)(__DRIscreen *screen);
+
+/**
+ * DRI2 Loader extension.
+ */
+#define __DRI_BUFFER_FRONT_LEFT 0
+#define __DRI_BUFFER_BACK_LEFT 1
+#define __DRI_BUFFER_FRONT_RIGHT 2
+#define __DRI_BUFFER_BACK_RIGHT 3
+#define __DRI_BUFFER_DEPTH 4
+#define __DRI_BUFFER_STENCIL 5
+#define __DRI_BUFFER_ACCUM 6
+#define __DRI_BUFFER_FAKE_FRONT_LEFT 7
+#define __DRI_BUFFER_FAKE_FRONT_RIGHT 8
+#define __DRI_BUFFER_DEPTH_STENCIL 9 /**< Only available with DRI2 1.1 */
+#define __DRI_BUFFER_HIZ 10
+
+/* Inofficial and for internal use. Increase when adding a new buffer token. */
+#define __DRI_BUFFER_COUNT 11
+
+struct __DRIbufferRec {
+ unsigned int attachment;
+ unsigned int name;
+ unsigned int pitch;
+ unsigned int cpp;
+ unsigned int flags;
+};
+
+#define __DRI_DRI2_LOADER "DRI_DRI2Loader"
+#define __DRI_DRI2_LOADER_VERSION 3
+struct __DRIdri2LoaderExtensionRec {
+ __DRIextension base;
+
+ __DRIbuffer *(*getBuffers)(__DRIdrawable *driDrawable,
+ int *width, int *height,
+ unsigned int *attachments, int count,
+ int *out_count, void *loaderPrivate);
+
+ /**
+ * Flush pending front-buffer rendering
+ *
+ * Any rendering that has been performed to the
+ * \c __DRI_BUFFER_FAKE_FRONT_LEFT will be flushed to the
+ * \c __DRI_BUFFER_FRONT_LEFT.
+ *
+ * \param driDrawable Drawable whose front-buffer is to be flushed
+ * \param loaderPrivate Loader's private data that was previously passed
+ * into __DRIdri2ExtensionRec::createNewDrawable
+ */
+ void (*flushFrontBuffer)(__DRIdrawable *driDrawable, void *loaderPrivate);
+
+
+ /**
+ * Get list of buffers from the server
+ *
+ * Gets a list of buffer for the specified set of attachments. Unlike
+ * \c ::getBuffers, this function takes a list of attachments paired with
+ * opaque \c unsigned \c int value describing the format of the buffer.
+ * It is the responsibility of the caller to know what the service that
+ * allocates the buffers will expect to receive for the format.
+ *
+ * \param driDrawable Drawable whose buffers are being queried.
+ * \param width Output where the width of the buffers is stored.
+ * \param height Output where the height of the buffers is stored.
+ * \param attachments List of pairs of attachment ID and opaque format
+ * requested for the drawable.
+ * \param count Number of attachment / format pairs stored in
+ * \c attachments.
+ * \param loaderPrivate Loader's private data that was previously passed
+ * into __DRIdri2ExtensionRec::createNewDrawable.
+ */
+ __DRIbuffer *(*getBuffersWithFormat)(__DRIdrawable *driDrawable,
+ int *width, int *height,
+ unsigned int *attachments, int count,
+ int *out_count, void *loaderPrivate);
+};
+
+/**
+ * This extension provides alternative screen, drawable and context
+ * constructors for DRI2.
+ */
+#define __DRI_DRI2 "DRI_DRI2"
+#define __DRI_DRI2_VERSION 4
+
+#define __DRI_API_OPENGL 0 /**< OpenGL compatibility profile */
+#define __DRI_API_GLES 1 /**< OpenGL ES 1.x */
+#define __DRI_API_GLES2 2 /**< OpenGL ES 2.x */
+#define __DRI_API_OPENGL_CORE 3 /**< OpenGL 3.2+ core profile */
+#define __DRI_API_GLES3 4 /**< OpenGL ES 3.x */
+
+#define __DRI_CTX_ATTRIB_MAJOR_VERSION 0
+#define __DRI_CTX_ATTRIB_MINOR_VERSION 1
+#define __DRI_CTX_ATTRIB_FLAGS 2
+
+/**
+ * \requires __DRI2_ROBUSTNESS.
+ */
+#define __DRI_CTX_ATTRIB_RESET_STRATEGY 3
+
+#define __DRI_CTX_FLAG_DEBUG 0x00000001
+#define __DRI_CTX_FLAG_FORWARD_COMPATIBLE 0x00000002
+
+/**
+ * \requires __DRI2_ROBUSTNESS.
+ */
+#define __DRI_CTX_FLAG_ROBUST_BUFFER_ACCESS 0x00000004
+
+/**
+ * \name Context reset strategies.
+ */
+/*@{*/
+#define __DRI_CTX_RESET_NO_NOTIFICATION 0
+#define __DRI_CTX_RESET_LOSE_CONTEXT 1
+/*@}*/
+
+/**
+ * \name Reasons that __DRIdri2Extension::createContextAttribs might fail
+ */
+/*@{*/
+/** Success! */
+#define __DRI_CTX_ERROR_SUCCESS 0
+
+/** Memory allocation failure */
+#define __DRI_CTX_ERROR_NO_MEMORY 1
+
+/** Client requested an API (e.g., OpenGL ES 2.0) that the driver can't do. */
+#define __DRI_CTX_ERROR_BAD_API 2
+
+/** Client requested an API version that the driver can't do. */
+#define __DRI_CTX_ERROR_BAD_VERSION 3
+
+/** Client requested a flag or combination of flags the driver can't do. */
+#define __DRI_CTX_ERROR_BAD_FLAG 4
+
+/** Client requested an attribute the driver doesn't understand. */
+#define __DRI_CTX_ERROR_UNKNOWN_ATTRIBUTE 5
+
+/** Client requested a flag the driver doesn't understand. */
+#define __DRI_CTX_ERROR_UNKNOWN_FLAG 6
+/*@}*/
+
+struct __DRIdri2ExtensionRec {
+ __DRIextension base;
+
+ __DRIscreen *(*createNewScreen)(int screen, int fd,
+ const __DRIextension **extensions,
+ const __DRIconfig ***driver_configs,
+ void *loaderPrivate);
+
+ __DRIcreateNewDrawableFunc createNewDrawable;
+ __DRIcontext *(*createNewContext)(__DRIscreen *screen,
+ const __DRIconfig *config,
+ __DRIcontext *shared,
+ void *loaderPrivate);
+
+ /* Since version 2 */
+ __DRIgetAPIMaskFunc getAPIMask;
+
+ __DRIcontext *(*createNewContextForAPI)(__DRIscreen *screen,
+ int api,
+ const __DRIconfig *config,
+ __DRIcontext *shared,
+ void *data);
+
+ __DRIbuffer *(*allocateBuffer)(__DRIscreen *screen,
+ unsigned int attachment,
+ unsigned int format,
+ int width,
+ int height);
+ void (*releaseBuffer)(__DRIscreen *screen,
+ __DRIbuffer *buffer);
+
+ /**
+ * Create a context for a particular API with a set of attributes
+ *
+ * \since version 3
+ *
+ * \sa __DRIswrastExtensionRec::createContextAttribs
+ */
+ __DRIcreateContextAttribsFunc createContextAttribs;
+
+ /**
+ * createNewScreen with the driver's extension list passed in.
+ *
+ * \since version 4
+ */
+ __DRIcreateNewScreen2Func createNewScreen2;
+};
+
+
+/**
+ * This extension provides functionality to enable various EGLImage
+ * extensions.
+ */
+#define __DRI_IMAGE "DRI_IMAGE"
+#define __DRI_IMAGE_VERSION 8
+
+/**
+ * These formats correspond to the similarly named MESA_FORMAT_*
+ * tokens, except in the native endian of the CPU. For example, on
+ * little endian __DRI_IMAGE_FORMAT_XRGB8888 corresponds to
+ * MESA_FORMAT_XRGB8888, but MESA_FORMAT_XRGB8888_REV on big endian.
+ *
+ * __DRI_IMAGE_FORMAT_NONE is for images that aren't directly usable
+ * by the driver (YUV planar formats) but serve as a base image for
+ * creating sub-images for the different planes within the image.
+ *
+ * R8, GR88 and NONE should not be used with createImageFormName or
+ * createImage, and are returned by query from sub images created with
+ * createImageFromNames (NONE, see above) and fromPlane (R8 & GR88).
+ */
+#define __DRI_IMAGE_FORMAT_RGB565 0x1001
+#define __DRI_IMAGE_FORMAT_XRGB8888 0x1002
+#define __DRI_IMAGE_FORMAT_ARGB8888 0x1003
+#define __DRI_IMAGE_FORMAT_ABGR8888 0x1004
+#define __DRI_IMAGE_FORMAT_XBGR8888 0x1005
+#define __DRI_IMAGE_FORMAT_R8 0x1006 /* Since version 5 */
+#define __DRI_IMAGE_FORMAT_GR88 0x1007
+#define __DRI_IMAGE_FORMAT_NONE 0x1008
+#define __DRI_IMAGE_FORMAT_XRGB2101010 0x1009
+#define __DRI_IMAGE_FORMAT_ARGB2101010 0x100a
+#define __DRI_IMAGE_FORMAT_SARGB8 0x100b
+
+#define __DRI_IMAGE_USE_SHARE 0x0001
+#define __DRI_IMAGE_USE_SCANOUT 0x0002
+#define __DRI_IMAGE_USE_CURSOR 0x0004 /* Depricated */
+#define __DRI_IMAGE_USE_LINEAR 0x0008
+
+
+/**
+ * Four CC formats that matches with WL_DRM_FORMAT_* from wayland_drm.h
+ * and GBM_FORMAT_* from gbm.h, used with createImageFromNames.
+ *
+ * \since 5
+ */
+
+#define __DRI_IMAGE_FOURCC_RGB565 0x36314752
+#define __DRI_IMAGE_FOURCC_ARGB8888 0x34325241
+#define __DRI_IMAGE_FOURCC_XRGB8888 0x34325258
+#define __DRI_IMAGE_FOURCC_ABGR8888 0x34324241
+#define __DRI_IMAGE_FOURCC_XBGR8888 0x34324258
+#define __DRI_IMAGE_FOURCC_YUV410 0x39565559
+#define __DRI_IMAGE_FOURCC_YUV411 0x31315559
+#define __DRI_IMAGE_FOURCC_YUV420 0x32315559
+#define __DRI_IMAGE_FOURCC_YUV422 0x36315559
+#define __DRI_IMAGE_FOURCC_YUV444 0x34325559
+#define __DRI_IMAGE_FOURCC_NV12 0x3231564e
+#define __DRI_IMAGE_FOURCC_NV16 0x3631564e
+#define __DRI_IMAGE_FOURCC_YUYV 0x56595559
+
+
+/**
+ * Queryable on images created by createImageFromNames.
+ *
+ * RGB and RGBA are may be usable directly as images but its still
+ * recommended to call fromPlanar with plane == 0.
+ *
+ * Y_U_V, Y_UV and Y_XUXV all requires call to fromPlanar to create
+ * usable sub-images, sampling from images return raw YUV data and
+ * color conversion needs to be done in the shader.
+ *
+ * \since 5
+ */
+
+#define __DRI_IMAGE_COMPONENTS_RGB 0x3001
+#define __DRI_IMAGE_COMPONENTS_RGBA 0x3002
+#define __DRI_IMAGE_COMPONENTS_Y_U_V 0x3003
+#define __DRI_IMAGE_COMPONENTS_Y_UV 0x3004
+#define __DRI_IMAGE_COMPONENTS_Y_XUXV 0x3005
+
+
+/**
+ * queryImage attributes
+ */
+
+#define __DRI_IMAGE_ATTRIB_STRIDE 0x2000
+#define __DRI_IMAGE_ATTRIB_HANDLE 0x2001
+#define __DRI_IMAGE_ATTRIB_NAME 0x2002
+#define __DRI_IMAGE_ATTRIB_FORMAT 0x2003 /* available in versions 3+ */
+#define __DRI_IMAGE_ATTRIB_WIDTH 0x2004 /* available in versions 4+ */
+#define __DRI_IMAGE_ATTRIB_HEIGHT 0x2005
+#define __DRI_IMAGE_ATTRIB_COMPONENTS 0x2006 /* available in versions 5+ */
+#define __DRI_IMAGE_ATTRIB_FD 0x2007 /* available in versions
+ * 7+. Each query will return a
+ * new fd. */
+
+enum __DRIYUVColorSpace {
+ __DRI_YUV_COLOR_SPACE_UNDEFINED = 0,
+ __DRI_YUV_COLOR_SPACE_ITU_REC601 = 0x327F,
+ __DRI_YUV_COLOR_SPACE_ITU_REC709 = 0x3280,
+ __DRI_YUV_COLOR_SPACE_ITU_REC2020 = 0x3281
+};
+
+enum __DRISampleRange {
+ __DRI_YUV_RANGE_UNDEFINED = 0,
+ __DRI_YUV_FULL_RANGE = 0x3282,
+ __DRI_YUV_NARROW_RANGE = 0x3283
+};
+
+enum __DRIChromaSiting {
+ __DRI_YUV_CHROMA_SITING_UNDEFINED = 0,
+ __DRI_YUV_CHROMA_SITING_0 = 0x3284,
+ __DRI_YUV_CHROMA_SITING_0_5 = 0x3285
+};
+
+/**
+ * \name Reasons that __DRIimageExtensionRec::createImageFromTexture might fail
+ */
+/*@{*/
+/** Success! */
+#define __DRI_IMAGE_ERROR_SUCCESS 0
+
+/** Memory allocation failure */
+#define __DRI_IMAGE_ERROR_BAD_ALLOC 1
+
+/** Client requested an invalid attribute for a texture object */
+#define __DRI_IMAGE_ERROR_BAD_MATCH 2
+
+/** Client requested an invalid texture object */
+#define __DRI_IMAGE_ERROR_BAD_PARAMETER 3
+/*@}*/
+
+typedef struct __DRIimageRec __DRIimage;
+typedef struct __DRIimageExtensionRec __DRIimageExtension;
+struct __DRIimageExtensionRec {
+ __DRIextension base;
+
+ __DRIimage *(*createImageFromName)(__DRIscreen *screen,
+ int width, int height, int format,
+ int name, int pitch,
+ void *loaderPrivate);
+
+ __DRIimage *(*createImageFromRenderbuffer)(__DRIcontext *context,
+ int renderbuffer,
+ void *loaderPrivate);
+
+ void (*destroyImage)(__DRIimage *image);
+
+ __DRIimage *(*createImage)(__DRIscreen *screen,
+ int width, int height, int format,
+ unsigned int use,
+ void *loaderPrivate);
+
+ GLboolean (*queryImage)(__DRIimage *image, int attrib, int *value);
+
+ /**
+ * The new __DRIimage will share the content with the old one, see dup(2).
+ */
+ __DRIimage *(*dupImage)(__DRIimage *image, void *loaderPrivate);
+
+ /**
+ * Validate that a __DRIimage can be used a certain way.
+ *
+ * \since 2
+ */
+ GLboolean (*validateUsage)(__DRIimage *image, unsigned int use);
+
+ /**
+ * Unlike createImageFromName __DRI_IMAGE_FORMAT is not but instead
+ * __DRI_IMAGE_FOURCC and strides are in bytes not pixels. Stride is
+ * also per block and not per pixel (for non-RGB, see gallium blocks).
+ *
+ * \since 5
+ */
+ __DRIimage *(*createImageFromNames)(__DRIscreen *screen,
+ int width, int height, int fourcc,
+ int *names, int num_names,
+ int *strides, int *offsets,
+ void *loaderPrivate);
+
+ /**
+ * Create an image out of a sub-region of a parent image. This
+ * entry point lets us create individual __DRIimages for different
+ * planes in a planar buffer (typically yuv), for example. While a
+ * sub-image shares the underlying buffer object with the parent
+ * image and other sibling sub-images, the life times of parent and
+ * sub-images are not dependent. Destroying the parent or a
+ * sub-image doesn't affect other images. The underlying buffer
+ * object is free when no __DRIimage remains that references it.
+ *
+ * Sub-images may overlap, but rendering to overlapping sub-images
+ * is undefined.
+ *
+ * \since 5
+ */
+ __DRIimage *(*fromPlanar)(__DRIimage *image, int plane,
+ void *loaderPrivate);
+
+ /**
+ * Create image from texture.
+ *
+ * \since 6
+ */
+ __DRIimage *(*createImageFromTexture)(__DRIcontext *context,
+ int target,
+ unsigned texture,
+ int depth,
+ int level,
+ unsigned *error,
+ void *loaderPrivate);
+ /**
+ * Like createImageFromNames, but takes a prime fd instead.
+ *
+ * \since 7
+ */
+ __DRIimage *(*createImageFromFds)(__DRIscreen *screen,
+ int width, int height, int fourcc,
+ int *fds, int num_fds,
+ int *strides, int *offsets,
+ void *loaderPrivate);
+
+ /**
+ * Like createImageFromFds, but takes additional attributes.
+ *
+ * For EGL_EXT_image_dma_buf_import.
+ *
+ * \since 8
+ */
+ __DRIimage *(*createImageFromDmaBufs)(__DRIscreen *screen,
+ int width, int height, int fourcc,
+ int *fds, int num_fds,
+ int *strides, int *offsets,
+ enum __DRIYUVColorSpace color_space,
+ enum __DRISampleRange sample_range,
+ enum __DRIChromaSiting horiz_siting,
+ enum __DRIChromaSiting vert_siting,
+ unsigned *error,
+ void *loaderPrivate);
+};
+
+
+/**
+ * This extension must be implemented by the loader and passed to the
+ * driver at screen creation time. The EGLImage entry points in the
+ * various client APIs take opaque EGLImage handles and use this
+ * extension to map them to a __DRIimage. At version 1, this
+ * extensions allows mapping EGLImage pointers to __DRIimage pointers,
+ * but future versions could support other EGLImage-like, opaque types
+ * with new lookup functions.
+ */
+#define __DRI_IMAGE_LOOKUP "DRI_IMAGE_LOOKUP"
+#define __DRI_IMAGE_LOOKUP_VERSION 1
+
+typedef struct __DRIimageLookupExtensionRec __DRIimageLookupExtension;
+struct __DRIimageLookupExtensionRec {
+ __DRIextension base;
+
+ __DRIimage *(*lookupEGLImage)(__DRIscreen *screen, void *image,
+ void *loaderPrivate);
+};
+
+/**
+ * This extension allows for common DRI2 options
+ */
+#define __DRI2_CONFIG_QUERY "DRI_CONFIG_QUERY"
+#define __DRI2_CONFIG_QUERY_VERSION 1
+
+typedef struct __DRI2configQueryExtensionRec __DRI2configQueryExtension;
+struct __DRI2configQueryExtensionRec {
+ __DRIextension base;
+
+ int (*configQueryb)(__DRIscreen *screen, const char *var, GLboolean *val);
+ int (*configQueryi)(__DRIscreen *screen, const char *var, GLint *val);
+ int (*configQueryf)(__DRIscreen *screen, const char *var, GLfloat *val);
+};
+
+/**
+ * Robust context driver extension.
+ *
+ * Existence of this extension means the driver can accept the
+ * \c __DRI_CTX_FLAG_ROBUST_BUFFER_ACCESS flag and the
+ * \c __DRI_CTX_ATTRIB_RESET_STRATEGY attribute in
+ * \c __DRIdri2ExtensionRec::createContextAttribs.
+ */
+#define __DRI2_ROBUSTNESS "DRI_Robustness"
+#define __DRI2_ROBUSTNESS_VERSION 1
+
+typedef struct __DRIrobustnessExtensionRec __DRIrobustnessExtension;
+struct __DRIrobustnessExtensionRec {
+ __DRIextension base;
+};
+
+/**
+ * DRI config options extension.
+ *
+ * This extension provides the XML string containing driver options for use by
+ * the loader in supporting the driconf application.
+ */
+#define __DRI_CONFIG_OPTIONS "DRI_ConfigOptions"
+#define __DRI_CONFIG_OPTIONS_VERSION 1
+
+typedef struct __DRIconfigOptionsExtensionRec {
+ __DRIextension base;
+ const char *xml;
+} __DRIconfigOptionsExtension;
+
+/**
+ * This extension provides a driver vtable to a set of common driver helper
+ * functions (driCoreExtension, driDRI2Extension) within the driver
+ * implementation, as opposed to having to pass them through a global
+ * variable.
+ *
+ * It is not intended to be public API to the actual loader, and the vtable
+ * layout may change at any time.
+ */
+#define __DRI_DRIVER_VTABLE "DRI_DriverVtable"
+#define __DRI_DRIVER_VTABLE_VERSION 1
+
+typedef struct __DRIDriverVtableExtensionRec {
+ __DRIextension base;
+ const struct __DriverAPIRec *vtable;
+} __DRIDriverVtableExtension;
+
+/**
+ * Query renderer driver extension
+ *
+ * This allows the window system layer (either EGL or GLX) to query aspects of
+ * hardware and driver support without creating a context.
+ */
+#define __DRI2_RENDERER_QUERY "DRI_RENDERER_QUERY"
+#define __DRI2_RENDERER_QUERY_VERSION 1
+
+#define __DRI2_RENDERER_VENDOR_ID 0x0000
+#define __DRI2_RENDERER_DEVICE_ID 0x0001
+#define __DRI2_RENDERER_VERSION 0x0002
+#define __DRI2_RENDERER_ACCELERATED 0x0003
+#define __DRI2_RENDERER_VIDEO_MEMORY 0x0004
+#define __DRI2_RENDERER_UNIFIED_MEMORY_ARCHITECTURE 0x0005
+#define __DRI2_RENDERER_PREFERRED_PROFILE 0x0006
+#define __DRI2_RENDERER_OPENGL_CORE_PROFILE_VERSION 0x0007
+#define __DRI2_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION 0x0008
+#define __DRI2_RENDERER_OPENGL_ES_PROFILE_VERSION 0x0009
+#define __DRI2_RENDERER_OPENGL_ES2_PROFILE_VERSION 0x000a
+
+typedef struct __DRI2rendererQueryExtensionRec __DRI2rendererQueryExtension;
+struct __DRI2rendererQueryExtensionRec {
+ __DRIextension base;
+
+ int (*queryInteger)(__DRIscreen *screen, int attribute, unsigned int *val);
+ int (*queryString)(__DRIscreen *screen, int attribute, const char **val);
+};
+
+/**
+ * Image Loader extension. Drivers use this to allocate color buffers
+ */
+
+enum __DRIimageBufferMask {
+ __DRI_IMAGE_BUFFER_BACK = (1 << 0),
+ __DRI_IMAGE_BUFFER_FRONT = (1 << 1)
+};
+
+struct __DRIimageList {
+ uint32_t image_mask;
+ __DRIimage *back;
+ __DRIimage *front;
+};
+
+#define __DRI_IMAGE_LOADER "DRI_IMAGE_LOADER"
+#define __DRI_IMAGE_LOADER_VERSION 1
+
+struct __DRIimageLoaderExtensionRec {
+ __DRIextension base;
+
+ /**
+ * Allocate color buffers.
+ *
+ * \param driDrawable
+ * \param width Width of allocated buffers
+ * \param height Height of allocated buffers
+ * \param format one of __DRI_IMAGE_FORMAT_*
+ * \param stamp Address of variable to be updated when
+ * getBuffers must be called again
+ * \param loaderPrivate The loaderPrivate for driDrawable
+ * \param buffer_mask Set of buffers to allocate
+ * \param buffers Returned buffers
+ */
+ int (*getBuffers)(__DRIdrawable *driDrawable,
+ unsigned int format,
+ uint32_t *stamp,
+ void *loaderPrivate,
+ uint32_t buffer_mask,
+ struct __DRIimageList *buffers);
+
+ /**
+ * Flush pending front-buffer rendering
+ *
+ * Any rendering that has been performed to the
+ * fake front will be flushed to the front
+ *
+ * \param driDrawable Drawable whose front-buffer is to be flushed
+ * \param loaderPrivate Loader's private data that was previously passed
+ * into __DRIdri2ExtensionRec::createNewDrawable
+ */
+ void (*flushFrontBuffer)(__DRIdrawable *driDrawable, void *loaderPrivate);
+};
+
+/**
+ * DRI extension.
+ */
+
+#define __DRI_IMAGE_DRIVER "DRI_IMAGE_DRIVER"
+#define __DRI_IMAGE_DRIVER_VERSION 1
+
+struct __DRIimageDriverExtensionRec {
+ __DRIextension base;
+
+ /* Common DRI functions, shared with DRI2 */
+ __DRIcreateNewScreen2Func createNewScreen2;
+ __DRIcreateNewDrawableFunc createNewDrawable;
+ __DRIcreateContextAttribsFunc createContextAttribs;
+ __DRIgetAPIMaskFunc getAPIMask;
+};
+
+#endif
diff --git a/include/assert.h b/include/assert.h
new file mode 100644
index 000000000..ceb71667a
--- /dev/null
+++ b/include/assert.h
@@ -0,0 +1,26 @@
+#ifndef __ASSERT_H__
+#define __ASSERT_H__
+
+#include <stdio.h>
+
+#ifdef __cplusplus
+extern "C"
+#endif
+__declspec(dllimport) void __stdcall DebugBreak(void);
+
+static __inline void __assert(int Cond)
+{
+#ifdef _DEBUG
+ if (!Cond)
+ {
+ printf("assertion occured.\n");
+ DebugBreak();
+ while (1);
+ }
+#endif
+}
+
+#define assert(Cond) __assert((int)(Cond))
+
+#endif
+
diff --git a/include/byteswap.h b/include/byteswap.h
new file mode 100644
index 000000000..cd5a726d4
--- /dev/null
+++ b/include/byteswap.h
@@ -0,0 +1,39 @@
+/* byteswap.h
+
+Copyright 2005 Red Hat, Inc.
+
+This file is part of Cygwin.
+
+This software is a copyrighted work licensed under the terms of the
+Cygwin license. Please consult the file "CYGWIN_LICENSE" for
+details. */
+
+#ifndef _BYTESWAP_H
+#define _BYTESWAP_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+static __inline unsigned short
+bswap_16 (unsigned short __x)
+{
+ return (__x >> 8) | (__x << 8);
+}
+
+static __inline unsigned int
+bswap_32 (unsigned int __x)
+{
+ return (bswap_16 (__x & 0xffff) << 16) | (bswap_16 (__x >> 16));
+}
+
+static __inline unsigned long long
+bswap_64 (unsigned long long __x)
+{
+ return (((unsigned long long) bswap_32 (__x & 0xffffffffull)) << 32) | (bswap_32 (__x >> 32));
+}
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* _BYTESWAP_H */
diff --git a/include/dirent.h b/include/dirent.h
new file mode 100644
index 000000000..4c0f36b0c
--- /dev/null
+++ b/include/dirent.h
@@ -0,0 +1,440 @@
+/*****************************************************************************
+ * dirent.h - dirent API for Microsoft Visual Studio
+ *
+ * Copyright (C) 2006 Toni Ronkko
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT.
+ * IN NO EVENT SHALL TONI RONKKO 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.
+ *
+ * Aug 11, 2010, Toni Ronkko
+ * Added d_type and d_namlen fields to dirent structure. The former is
+ * especially useful for determining whether directory entry represents a
+ * file or a directory. For more information, see
+ * http://www.delorie.com/gnu/docs/glibc/libc_270.html
+ *
+ * Aug 11, 2010, Toni Ronkko
+ * Improved conformance to the standards. For example, errno is now set
+ * properly on failure and assert() is never used. Thanks to Peter Brockam
+ * for suggestions.
+ *
+ * Aug 11, 2010, Toni Ronkko
+ * Fixed a bug in rewinddir(): when using relative directory names, change
+ * of working directory no longer causes rewinddir() to fail.
+ *
+ * Dec 15, 2009, John Cunningham
+ * Added rewinddir member function
+ *
+ * Jan 18, 2008, Toni Ronkko
+ * Using FindFirstFileA and WIN32_FIND_DATAA to avoid converting string
+ * between multi-byte and unicode representations. This makes the
+ * code simpler and also allows the code to be compiled under MingW. Thanks
+ * to Azriel Fasten for the suggestion.
+ *
+ * Mar 4, 2007, Toni Ronkko
+ * Bug fix: due to the strncpy_s() function this file only compiled in
+ * Visual Studio 2005. Using the new string functions only when the
+ * compiler version allows.
+ *
+ * Nov 2, 2006, Toni Ronkko
+ * Major update: removed support for Watcom C, MS-DOS and Turbo C to
+ * simplify the file, updated the code to compile cleanly on Visual
+ * Studio 2005 with both unicode and multi-byte character strings,
+ * removed rewinddir() as it had a bug.
+ *
+ * Aug 20, 2006, Toni Ronkko
+ * Removed all remarks about MSVC 1.0, which is antiqued now. Simplified
+ * comments by removing SGML tags.
+ *
+ * May 14 2002, Toni Ronkko
+ * Embedded the function definitions directly to the header so that no
+ * source modules need to be included in the Visual Studio project. Removed
+ * all the dependencies to other projects so that this very header can be
+ * used independently.
+ *
+ * May 28 1998, Toni Ronkko
+ * First version.
+ *****************************************************************************/
+#ifndef DIRENT_H
+#define DIRENT_H
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <string.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <errno.h>
+
+/* File type and permission flags for stat() */
+#if defined(_MSC_VER) && !defined(S_IREAD)
+# define S_IFMT _S_IFMT /* file type mask */
+# define S_IFDIR _S_IFDIR /* directory */
+# define S_IFCHR _S_IFCHR /* character device */
+# define S_IFFIFO _S_IFFIFO /* pipe */
+# define S_IFREG _S_IFREG /* regular file */
+# define S_IREAD _S_IREAD /* read permission */
+# define S_IWRITE _S_IWRITE /* write permission */
+# define S_IEXEC _S_IEXEC /* execute permission */
+#endif
+#define S_IFBLK 0 /* block device */
+#define S_IFLNK 0 /* link */
+#define S_IFSOCK 0 /* socket */
+
+#if defined(_MSC_VER)
+# define S_IRUSR S_IREAD /* read, user */
+# define S_IWUSR S_IWRITE /* write, user */
+# define S_IXUSR 0 /* execute, user */
+# define S_IRGRP 0 /* read, group */
+# define S_IWGRP 0 /* write, group */
+# define S_IXGRP 0 /* execute, group */
+# define S_IROTH 0 /* read, others */
+# define S_IWOTH 0 /* write, others */
+# define S_IXOTH 0 /* execute, others */
+#endif
+
+/* Indicates that d_type field is available in dirent structure */
+#define _DIRENT_HAVE_D_TYPE
+
+/* File type flags for d_type */
+#define DT_UNKNOWN 0
+#define DT_REG S_IFREG
+#define DT_DIR S_IFDIR
+#define DT_FIFO S_IFFIFO
+#define DT_SOCK S_IFSOCK
+#define DT_CHR S_IFCHR
+#define DT_BLK S_IFBLK
+
+/* Macros for converting between st_mode and d_type */
+#define IFTODT(mode) ((mode) & S_IFMT)
+#define DTTOIF(type) (type)
+
+/*
+ * File type macros. Note that block devices, sockets and links cannot be
+ * distinguished on Windows and the macros S_ISBLK, S_ISSOCK and S_ISLNK are
+ * only defined for compatibility. These macros should always return false
+ * on Windows.
+ */
+#define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFFIFO)
+#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
+#define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG)
+#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK)
+#define S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK)
+#define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR)
+#define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+typedef struct dirent
+{
+ char d_name[MAX_PATH + 1]; /* File name */
+ size_t d_namlen; /* Length of name without \0 */
+ int d_type; /* File type */
+} dirent;
+
+
+typedef struct DIR
+{
+ dirent curentry; /* Current directory entry */
+ WIN32_FIND_DATAA find_data; /* Private file data */
+ int cached; /* True if data is valid */
+ HANDLE search_handle; /* Win32 search handle */
+ char patt[MAX_PATH + 3]; /* Initial directory name */
+} DIR;
+
+
+/* Forward declarations */
+static DIR *opendir(const char *dirname);
+static struct dirent *readdir(DIR *dirp);
+static int closedir(DIR *dirp);
+static void rewinddir(DIR* dirp);
+
+
+/* Use the new safe string functions introduced in Visual Studio 2005 */
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+# define DIRENT_STRNCPY(dest,src,size) strncpy_s((dest),(size),(src),_TRUNCATE)
+#else
+# define DIRENT_STRNCPY(dest,src,size) strncpy((dest),(src),(size))
+#endif
+
+/* Set errno variable */
+#if defined(_MSC_VER)
+#define DIRENT_SET_ERRNO(x) _set_errno(x)
+#else
+#define DIRENT_SET_ERRNO(x) (errno = (x))
+#endif
+
+
+/*****************************************************************************
+ * Open directory stream DIRNAME for read and return a pointer to the
+ * internal working area that is used to retrieve individual directory
+ * entries.
+ */
+static DIR *opendir(const char *dirname)
+{
+ DIR *dirp;
+
+ /* ensure that the resulting search pattern will be a valid file name */
+ if (dirname == NULL) {
+ DIRENT_SET_ERRNO (ENOENT);
+ return NULL;
+ }
+ if (strlen (dirname) + 3 >= MAX_PATH) {
+ DIRENT_SET_ERRNO (ENAMETOOLONG);
+ return NULL;
+ }
+
+ /* construct new DIR structure */
+ dirp = (DIR*) malloc (sizeof (struct DIR));
+ if (dirp != NULL) {
+ int error;
+
+ /*
+ * Convert relative directory name to an absolute directory one. This
+ * allows rewinddir() to function correctly when the current working
+ * directory is changed between opendir() and rewinddir().
+ */
+ if (GetFullPathNameA (dirname, MAX_PATH, dirp->patt, NULL)) {
+ char *p;
+
+ /* append the search pattern "\\*\0" to the directory name */
+ p = strchr (dirp->patt, '\0');
+ if (dirp->patt < p && *(p-1) != '\\' && *(p-1) != ':') {
+ *p++ = '\\';
+ }
+ *p++ = '*';
+ *p = '\0';
+
+ /* open directory stream and retrieve the first entry */
+ dirp->search_handle = FindFirstFileA (dirp->patt, &dirp->find_data);
+ if (dirp->search_handle != INVALID_HANDLE_VALUE) {
+ /* a directory entry is now waiting in memory */
+ dirp->cached = 1;
+ error = 0;
+ } else {
+ /* search pattern is not a directory name? */
+ DIRENT_SET_ERRNO (ENOENT);
+ error = 1;
+ }
+ } else {
+ /* buffer too small */
+ DIRENT_SET_ERRNO (ENOMEM);
+ error = 1;
+ }
+
+ if (error) {
+ free (dirp);
+ dirp = NULL;
+ }
+ }
+
+ return dirp;
+}
+
+
+/*****************************************************************************
+ * Read a directory entry, and return a pointer to a dirent structure
+ * containing the name of the entry in d_name field. Individual directory
+ * entries returned by this very function include regular files,
+ * sub-directories, pseudo-directories "." and "..", but also volume labels,
+ * hidden files and system files may be returned.
+ */
+static struct dirent *readdir(DIR *dirp)
+{
+ DWORD attr;
+ if (dirp == NULL) {
+ /* directory stream did not open */
+ DIRENT_SET_ERRNO (EBADF);
+ return NULL;
+ }
+
+ /* get next directory entry */
+ if (dirp->cached != 0) {
+ /* a valid directory entry already in memory */
+ dirp->cached = 0;
+ } else {
+ /* get the next directory entry from stream */
+ if (dirp->search_handle == INVALID_HANDLE_VALUE) {
+ return NULL;
+ }
+ if (FindNextFileA (dirp->search_handle, &dirp->find_data) == FALSE) {
+ /* the very last entry has been processed or an error occured */
+ FindClose (dirp->search_handle);
+ dirp->search_handle = INVALID_HANDLE_VALUE;
+ return NULL;
+ }
+ }
+
+ /* copy as a multibyte character string */
+ DIRENT_STRNCPY ( dirp->curentry.d_name,
+ dirp->find_data.cFileName,
+ sizeof(dirp->curentry.d_name) );
+ dirp->curentry.d_name[MAX_PATH] = '\0';
+
+ /* compute the length of name */
+ dirp->curentry.d_namlen = strlen (dirp->curentry.d_name);
+
+ /* determine file type */
+ attr = dirp->find_data.dwFileAttributes;
+ if ((attr & FILE_ATTRIBUTE_DEVICE) != 0) {
+ dirp->curentry.d_type = DT_CHR;
+ } else if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) {
+ dirp->curentry.d_type = DT_DIR;
+ } else {
+ dirp->curentry.d_type = DT_REG;
+ }
+ return &dirp->curentry;
+}
+
+
+/*****************************************************************************
+ * Close directory stream opened by opendir() function. Close of the
+ * directory stream invalidates the DIR structure as well as any previously
+ * read directory entry.
+ */
+static int closedir(DIR *dirp)
+{
+ if (dirp == NULL) {
+ /* invalid directory stream */
+ DIRENT_SET_ERRNO (EBADF);
+ return -1;
+ }
+
+ /* release search handle */
+ if (dirp->search_handle != INVALID_HANDLE_VALUE) {
+ FindClose (dirp->search_handle);
+ dirp->search_handle = INVALID_HANDLE_VALUE;
+ }
+
+ /* release directory structure */
+ free (dirp);
+ return 0;
+}
+
+
+/*****************************************************************************
+ * Resets the position of the directory stream to which dirp refers to the
+ * beginning of the directory. It also causes the directory stream to refer
+ * to the current state of the corresponding directory, as a call to opendir()
+ * would have done. If dirp does not refer to a directory stream, the effect
+ * is undefined.
+ */
+static void rewinddir(DIR* dirp)
+{
+ if (dirp != NULL) {
+ /* release search handle */
+ if (dirp->search_handle != INVALID_HANDLE_VALUE) {
+ FindClose (dirp->search_handle);
+ }
+
+ /* open new search handle and retrieve the first entry */
+ dirp->search_handle = FindFirstFileA (dirp->patt, &dirp->find_data);
+ if (dirp->search_handle != INVALID_HANDLE_VALUE) {
+ /* a directory entry is now waiting in memory */
+ dirp->cached = 1;
+ } else {
+ /* failed to re-open directory: no directory entry in memory */
+ dirp->cached = 0;
+ }
+ }
+}
+
+static int
+scandir (const char *dir,
+ struct dirent ***namelist,
+ int (*select) (const struct dirent *),
+ int (*compar) (const struct dirent **, const struct dirent **))
+{
+ DIR *dirp;
+ struct dirent *ent, *etmp, **nl = NULL, **ntmp;
+ int count = 0;
+ int allocated = 0;
+ int prior_errno;
+
+ if (!(dirp = opendir (dir)))
+ return -1;
+
+ _get_errno(&prior_errno);
+ _set_errno(0);
+
+ while ((ent = readdir (dirp)))
+ {
+ if (!select || select (ent))
+ {
+
+ /* Ignore error from readdir/select. See POSIX specs. */
+ _set_errno(0);
+
+ if (count == allocated)
+ {
+
+ if (allocated == 0)
+ allocated = 10;
+ else
+ allocated *= 2;
+
+ ntmp = (struct dirent **) realloc (nl, allocated * sizeof *nl);
+ if (!ntmp)
+ {
+ _set_errno(ENOMEM);
+ break;
+ }
+ nl = ntmp;
+ }
+
+ if (!(etmp = (struct dirent *) malloc (sizeof *ent)))
+ {
+ _set_errno(ENOMEM);
+ break;
+ }
+ *etmp = *ent;
+ nl[count++] = etmp;
+ }
+ }
+
+ _get_errno(&prior_errno);
+ if (prior_errno != 0)
+ {
+ closedir (dirp);
+ if (nl)
+ {
+ while (count > 0)
+ free (nl[--count]);
+ free (nl);
+ }
+ /* Ignore errors from closedir() and what not else. */
+ _set_errno(prior_errno);
+ return -1;
+ }
+
+ closedir (dirp);
+ _set_errno(prior_errno);
+
+ qsort (nl, count, sizeof *nl, (int (*)(const void *, const void *)) compar);
+ if (namelist)
+ *namelist = nl;
+ return count;
+}
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*DIRENT_H*/
diff --git a/include/dix-config.h b/include/dix-config.h
new file mode 100644
index 000000000..726dfaba9
--- /dev/null
+++ b/include/dix-config.h
@@ -0,0 +1,512 @@
+/* dix-config.h.in: not at all generated. -*- c -*- */
+
+#ifndef _DIX_CONFIG_H_
+#define _DIX_CONFIG_H_
+
+#define _X_UNUSED
+
+#define GLYPHPADBYTES 4
+
+/* Use XCB for low-level protocol implementation */
+#define USE_XCB 1
+
+/* Support BigRequests extension */
+#define BIGREQS 1
+
+/* Builder address */
+#define BUILDERADDR "marha@users.sourceforge.net"
+
+/* Operating System Name */
+#define OSNAME "Win32"
+
+/* Operating System Vendor */
+#define OSVENDOR "Microsoft"
+
+/* Builder string */
+#define BUILDERSTRING ""
+
+/* Default font path */
+#define COMPILEDDEFAULTFONTPATH "fonts/misc/,fonts/TTF/,fonts/OTF,fonts/Type1/,fonts/100dpi/,fonts/75dpi/,fonts/cyrillic/,fonts/Speedo/,fonts/terminus-font/,built-ins"
+
+/* Miscellaneous server configuration files path */
+#define SERVER_MISC_CONFIG_PATH "."
+
+/* Support Composite Extension */
+#define COMPOSITE 1
+
+/* Support Damage extension */
+#define DAMAGE 1
+
+/* Use OsVendorVErrorF */
+#define DDXOSVERRORF 1
+
+/* Use ddxBeforeReset */
+#define DDXBEFORERESET 1
+
+/* Build DPMS extension */
+#define DPMSExtension 1
+
+/* Build DRI3 extension */
+/* #undef DRI3 */
+
+/* Build GLX extension */
+#define GLXEXT
+
+/* Build GLX DRI loader */
+#undef GLX_DRI
+
+/* Path to DRI drivers */
+#define DRI_DRIVER_PATH ""
+
+/* Support XDM-AUTH*-1 */
+#define HASXDMAUTH 1
+
+/* Support SHM */
+#undef HAS_SHM
+
+/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
+ */
+#define HAVE_ALLOCA_H 1
+
+/* Define to 1 if you have the <asm/mtrr.h> header file. */
+#undef HAVE_ASM_MTRR_H
+
+/* Has backtrace support */
+#undef HAVE_BACKTRACE
+
+/* Has libunwind support */
+/* #undef HAVE_LIBUNWIND */
+
+/* Define to 1 if you have the <byteswap.h> header file. */
+#define HAVE_BYTESWAP_H 1
+
+/* Define to 1 if you have the `cbrt' function. */
+#undef HAVE_CBRT
+
+/* Define to 1 if you have the <dbm.h> header file. */
+#undef HAVE_DBM_H
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+ */
+#define HAVE_DIRENT_H 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Have execinfo.h */
+#undef HAVE_EXECINFO_H
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the `ffs' function. */
+#undef HAVE_FFS
+
+/* Define to 1 if you have the `getdtablesize' function. */
+#define HAVE_GETDTABLESIZE 1
+
+/* Define to 1 if you have the `getifaddrs' function. */
+#undef HAVE_GETIFADDRS
+
+/* Define to 1 if you have the `getpeereid' function. */
+#undef HAVE_GETPEEREID
+
+/* Define to 1 if you have the `getpeerucred' function. */
+#undef HAVE_GETPEERUCRED
+
+/* Define to 1 if you have the `getzoneid' function. */
+#undef HAVE_GETZONEID
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Have Quartz */
+#undef XQUARTZ
+
+/* Support application updating through sparkle. */
+#undef XQUARTZ_SPARKLE
+
+/* Prefix to use for bundle identifiers */
+#undef BUNDLE_ID_PREFIX
+
+/* Build a standalone xpbproxy */
+#undef STANDALONE_XPBPROXY
+
+/* Define to 1 if you have the `m' library (-lm). */
+#define HAVE_LIBM 1
+
+/* Define to 1 if you have the libdispatch (GCD) available */
+#undef HAVE_LIBDISPATCH
+
+/* Define to 1 if you have the <linux/agpgart.h> header file. */
+#undef HAVE_LINUX_AGPGART_H
+
+/* Define to 1 if you have the <linux/apm_bios.h> header file. */
+#undef HAVE_LINUX_APM_BIOS_H
+
+/* Define to 1 if you have the <linux/fb.h> header file. */
+#undef HAVE_LINUX_FB_H
+
+/* Define to 1 if you have the `mmap' function. */
+#undef HAVE_MMAP
+
+/* Define to 1 if you have the <ndbm.h> header file. */
+#undef HAVE_NDBM_H
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+#undef HAVE_NDIR_H
+
+/* Define to 1 if you have the <rpcsvc/dbm.h> header file. */
+#undef HAVE_RPCSVC_DBM_H
+
+/* Define to use libc SHA1 functions */
+#undef HAVE_SHA1_IN_LIBC
+
+/* Define to use CommonCrypto SHA1 functions */
+#undef HAVE_SHA1_IN_COMMONCRYPTO
+
+/* Define to use CryptoAPI SHA1 functions */
+#undef HAVE_SHA1_IN_CRYPTOAPI
+
+/* Define to use libmd SHA1 functions */
+#undef HAVE_SHA1_IN_LIBMD
+
+/* Define to use libgcrypt SHA1 functions */
+#undef HAVE_SHA1_IN_LIBGCRYPT
+
+/* Define to use libnettle SHA1 functions */
+#undef HAVE_SHA1_IN_LIBNETTLE
+
+/* Define to use libsha1 for SHA1 */
+#undef HAVE_SHA1_IN_LIBSHA1
+
+/* Define to 1 if you have the `shmctl64' function. */
+#undef HAVE_SHMCTL64
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `strcasecmp' function. */
+#define HAVE_STRCASECMP 1
+
+/* Define to 1 if you have the `strcasestr' function. */
+#undef HAVE_STRCASESTR
+
+/* Define to 1 if you have the `strncasecmp' function. */
+#define HAVE_STRNCASECMP 1
+
+/* Define to 1 if you have the `strlcat' function. */
+#undef HAVE_STRLCAT
+
+/* Define to 1 if you have the `strlcpy' function. */
+#undef HAVE_STRLCPY
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strndup' function. */
+#undef HAVE_STRNDUP
+
+/* Define to 1 if SYSV IPC is available */
+#undef HAVE_SYSV_IPC
+
+/* Define to 1 if you have the <sys/agpio.h> header file. */
+#undef HAVE_SYS_AGPIO_H
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_DIR_H
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_NDIR_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/utsname.h> header file. */
+#undef HAVE_SYS_UTSNAME_H
+
+/* Define to 1 if you have the <tslib.h> header file. */
+#undef HAVE_TSLIB_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if you have the <fnmatch.h> header file. */
+#undef HAVE_FNMATCH_H
+
+/* Have /dev/urandom */
+#undef HAVE_URANDOM
+
+/* Define to 1 if you have the `vasprintf' function. */
+#undef HAVE_VASPRINTF
+
+/* Support IPv6 for TCP connections */
+#define IPv6 1
+
+/* Support os-specific local connections */
+#undef LOCALCONN
+
+/* Support MIT-SHM Extension */
+#undef MITSHM
+
+/* Disable some debugging code */
+#define NDEBUG 1
+
+/* Enable some debugging code */
+#undef DEBUG
+
+/* Name of package */
+#define PACKAGE "xorg-server"
+
+/* Internal define for Xinerama */
+#define PANORAMIX 1
+
+/* Support Present extension */
+#define PRESENT 1
+
+/* Overall prefix */
+#define PROJECTROOT "."
+
+/* Support RANDR extension */
+#define RANDR 1
+
+/* Support Record extension */
+#define XRECORD 1
+
+/* Support RENDER extension */
+#define RENDER 1
+
+/* Support X resource extension */
+#define RES 1
+
+/* Support client ID tracking in X resource extension */
+#define CLIENTIDS 1
+
+/* Support MIT-SCREEN-SAVER extension */
+#define SCREENSAVER 1
+
+/* Support Secure RPC ("SUN-DES-1") authentication for X11 clients */
+#undef SECURE_RPC
+
+/* Support SHAPE extension */
+#define SHAPE 1
+
+/* Define to 1 on systems derived from System V Release 4 */
+#undef SVR4
+
+/* Support TCP socket connections */
+#define TCPCONN 1
+
+/* Enable touchscreen support */
+#undef TOUCHSCREEN
+
+/* Support tslib touchscreen abstraction library */
+#undef TSLIB
+
+/* Support UNIX socket connections */
+#undef UNIXCONN
+
+/* Define to use byteswap macros from <sys/endian.h> */
+#undef USE_SYS_ENDIAN_H
+
+/* unaligned word accesses behave as expected */
+#undef WORKING_UNALIGNED_INT
+
+/* Build X string registry */
+#define XREGISTRY 1
+
+/* Build X-ACE extension */
+#define XACE 1
+
+/* Build SELinux extension */
+#undef XSELINUX
+
+/* Support XCMisc extension */
+#define XCMISC 1
+
+/* Build Security extension */
+#define XCSECURITY 1
+
+/* Support Xdmcp */
+#define XDMCP 1
+
+/* Build XFree86 BigFont extension */
+#define XF86BIGFONT 1
+
+/* Support XFree86 Video Mode extension */
+#undef XF86VIDMODE
+
+/* Support XFixes extension */
+#define XFIXES 1
+
+/* Build XDGA support */
+#undef XFreeXDGA
+
+/* Support Xinerama extension */
+#define XINERAMA 1
+
+/* Support X Input extension */
+#define XINPUT 1
+
+/* Build XKB */
+#define XKB 1
+
+/* Vendor release */
+#undef XORG_RELEASE
+
+/* Current Xorg version */
+#define XORG_VERSION_CURRENT (((1) * 10000000) + ((14) * 100000) + ((3) * 1000) + 0)
+
+/* Xorg release date */
+#define XORG_DATE "10 Sept 2009"
+
+/* Build Xv Extension */
+#undef XvExtension
+
+/* Build XvMC Extension */
+#undef XvMCExtension
+
+/* Support XSync extension */
+#define XSYNC 1
+
+/* Support XTest extension */
+#define XTEST 1
+
+/* Support Xv extension */
+#undef XV
+
+/* Support DRI extension */
+#undef XF86DRI
+
+/* Build DRI2 extension */
+#undef DRI2
+
+/* Build DBE support */
+#define DBE 1
+
+/* Vendor name */
+#define XVENDORNAME "The VcXsrv Project"
+
+/* Endian order */
+#ifndef X_BYTE_ORDER
+
+#define _X_BYTE_ORDER X_LITTLE_ENDIAN
+/* Deal with multiple architecture compiles on Mac OS X */
+#ifndef __APPLE_CC__
+#define X_BYTE_ORDER _X_BYTE_ORDER
+#else
+#ifdef __BIG_ENDIAN__
+#define X_BYTE_ORDER X_BIG_ENDIAN
+#else
+#define X_BYTE_ORDER X_LITTLE_ENDIAN
+#endif
+#endif
+#endif
+
+/* Enable GNU and other extensions to the C environment for GLIBC */
+#undef _GNU_SOURCE
+
+/* Define to empty if `const' does not conform to ANSI C. */
+#undef const
+
+/* Define to `int' if <sys/types.h> does not define. */
+#undef pid_t
+
+/* Build Rootless code */
+#define ROOTLESS 1
+
+/* Define to 1 if unsigned long is 64 bits. */
+#undef _XSERVER64
+
+/* System is BSD-like */
+#undef CSRG_BASED
+
+/* Define to 1 if `struct sockaddr_in' has a `sin_len' member */
+#undef BSD44SOCKETS
+
+/* Support D-Bus */
+#undef HAVE_DBUS
+
+/* Use libudev for input hotplug */
+#undef CONFIG_UDEV
+
+/* Use libudev for kms enumeration */
+#undef CONFIG_UDEV_KMS
+
+/* Use udev_monitor_filter_add_match_tag() */
+#undef HAVE_UDEV_MONITOR_FILTER_ADD_MATCH_TAG
+
+/* Use udev_enumerate_add_match_tag() */
+#undef HAVE_UDEV_ENUMERATE_ADD_MATCH_TAG
+
+/* Use D-Bus for input hotplug */
+#undef CONFIG_NEED_DBUS
+
+/* Support the D-Bus hotplug API */
+#undef CONFIG_DBUS_API
+
+/* Support HAL for hotplug */
+#undef CONFIG_HAL
+
+/* Have a monotonic clock from clock_gettime() */
+#undef MONOTONIC_CLOCK
+
+/* Define to 1 if the DTrace Xserver provider probes should be built in */
+/* #undef XSERVER_DTRACE */
+
+/* Define to 16-bit byteswap macro */
+#undef bswap_16
+
+/* Define to 32-bit byteswap macro */
+#undef bswap_32
+
+/* Define to 64-bit byteswap macro */
+#undef bswap_64
+
+/* Define to 1 if typeof works with your compiler. */
+#undef HAVE_TYPEOF
+
+/* Define to __typeof__ if your compiler spells it that way. */
+#undef typeof
+
+/* The compiler supported TLS storage class, prefering initial-exec if tls_model is supported */
+#undef TLS
+
+/* Correctly set _XSERVER64 for OSX fat binaries */
+#ifdef __APPLE__
+#include "dix-config-apple-verbatim.h"
+#endif
+
+/* Have support for X shared memory fence library (xshmfence) */
+/* #undef HAVE_XSHMFENCE */
+
+#undef HAVE_AVC_NETLINK_ACQUIRE_FD
+
+#include <X11/Xwinsock.h>
+#include <X11/Xwindows.h>
+#if NTDDI_VERSION < NTDDI_VISTA
+int inet_pton(int af, const char *src, void *dst);
+const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt);
+#endif
+#include <assert.h>
+#define strcasecmp _stricmp
+#define strncasecmp _strnicmp
+
+#undef MINSHORT
+#undef MAXSHORT
+
+#define MINSHORT -32768
+#define MAXSHORT 32767
+
+#endif /* _DIX_CONFIG_H_ */
diff --git a/include/dlfcn.h b/include/dlfcn.h
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/include/dlfcn.h
diff --git a/include/iconv.h b/include/iconv.h
new file mode 100644
index 000000000..d484fc871
--- /dev/null
+++ b/include/iconv.h
@@ -0,0 +1,134 @@
+/* Copyright (C) 1999-2003 Free Software Foundation, Inc.
+ This file is part of the GNU LIBICONV Library.
+
+ The GNU LIBICONV Library is free software; you can redistribute it
+ and/or modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ The GNU LIBICONV Library is distributed in the hope that it will be
+ useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ If not, write to the Free Software Foundation, Inc., 59 Temple Place -
+ Suite 330, Boston, MA 02111-1307, USA. */
+
+/* When installed, this file is called "iconv.h". */
+
+#ifndef _LIBICONV_H
+#define _LIBICONV_H
+
+#define _LIBICONV_VERSION 0x0109 /* version number: (major<<8) + minor */
+extern int _libiconv_version; /* Likewise */
+
+/* We would like to #include any system header file which could define
+ iconv_t, 1. in order to eliminate the risk that the user gets compilation
+ errors because some other system header file includes /usr/include/iconv.h
+ which defines iconv_t or declares iconv after this file, 2. when compiling
+ for LIBICONV_PLUG, we need the proper iconv_t type in order to produce
+ binary compatible code.
+ But gcc's #include_next is not portable. Thus, once libiconv's iconv.h
+ has been installed in /usr/local/include, there is no way any more to
+ include the original /usr/include/iconv.h. We simply have to get away
+ without it.
+ Ad 1. The risk that a system header file does
+ #include "iconv.h" or #include_next "iconv.h"
+ is small. They all do #include <iconv.h>.
+ Ad 2. The iconv_t type is a pointer type in all cases I have seen. (It
+ has to be a scalar type because (iconv_t)(-1) is a possible return value
+ from iconv_open().) */
+
+/* Define iconv_t ourselves. */
+#undef iconv_t
+#define iconv_t libiconv_t
+typedef void* iconv_t;
+
+/* Get size_t declaration. */
+#include <stddef.h>
+
+/* Get errno declaration and values. */
+#include <errno.h>
+/* Some systems, like SunOS 4, don't have EILSEQ. Some systems, like BSD/OS,
+ have EILSEQ in a different header. On these systems, define EILSEQ
+ ourselves. */
+#ifndef EILSEQ
+/* Igor: called upon EILSEQ from glibc, since autogeneration of this header
+ on Windows didn't do the job. */
+/* #define EILSEQ @EILSEQ@ */
+#define EILSEQ 84
+#endif
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Allocates descriptor for code conversion from encoding `fromcode' to
+ encoding `tocode'. */
+#ifndef LIBICONV_PLUG
+#define iconv_open libiconv_open
+#endif
+extern iconv_t iconv_open (const char* tocode, const char* fromcode);
+
+/* Converts, using conversion descriptor `cd', at most `*inbytesleft' bytes
+ starting at `*inbuf', writing at most `*outbytesleft' bytes starting at
+ `*outbuf'.
+ Decrements `*inbytesleft' and increments `*inbuf' by the same amount.
+ Decrements `*outbytesleft' and increments `*outbuf' by the same amount. */
+#ifndef LIBICONV_PLUG
+#define iconv libiconv
+#endif
+extern size_t iconv (iconv_t cd, const char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);
+
+/* Frees resources allocated for conversion descriptor `cd'. */
+#ifndef LIBICONV_PLUG
+#define iconv_close libiconv_close
+#endif
+extern int iconv_close (iconv_t cd);
+
+
+#ifndef LIBICONV_PLUG
+
+/* Nonstandard extensions. */
+
+/* Control of attributes. */
+#define iconvctl libiconvctl
+extern int iconvctl (iconv_t cd, int request, void* argument);
+
+/* Requests for iconvctl. */
+#define ICONV_TRIVIALP 0 /* int *argument */
+#define ICONV_GET_TRANSLITERATE 1 /* int *argument */
+#define ICONV_SET_TRANSLITERATE 2 /* const int *argument */
+#define ICONV_GET_DISCARD_ILSEQ 3 /* int *argument */
+#define ICONV_SET_DISCARD_ILSEQ 4 /* const int *argument */
+
+/* Listing of locale independent encodings. */
+#define iconvlist libiconvlist
+extern void iconvlist (int (*do_one) (unsigned int namescount,
+ const char * const * names,
+ void* data),
+ void* data);
+
+/* Support for relocatable packages. */
+
+/* Sets the original and the current installation prefix of the package.
+ Relocation simply replaces a pathname starting with the original prefix
+ by the corresponding pathname with the current prefix instead. Both
+ prefixes should be directory names without trailing slash (i.e. use ""
+ instead of "/"). */
+extern void libiconv_set_relocation_prefix (const char *orig_prefix,
+ const char *curr_prefix);
+
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _LIBICONV_H */
diff --git a/include/inttypes.h b/include/inttypes.h
new file mode 100644
index 000000000..25542771f
--- /dev/null
+++ b/include/inttypes.h
@@ -0,0 +1,305 @@
+// ISO C9x compliant inttypes.h for Microsoft Visual Studio
+// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
+//
+// Copyright (c) 2006 Alexander Chemeris
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// 3. The name of the author may be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _MSC_VER // [
+#error "Use this header only with Microsoft Visual C++ compilers!"
+#endif // _MSC_VER ]
+
+#ifndef _MSC_INTTYPES_H_ // [
+#define _MSC_INTTYPES_H_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif
+
+#include "stdint.h"
+
+// 7.8 Format conversion of integer types
+
+typedef struct {
+ intmax_t quot;
+ intmax_t rem;
+} imaxdiv_t;
+
+// 7.8.1 Macros for format specifiers
+
+#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) // [ See footnote 185 at page 198
+
+// The fprintf macros for signed integers are:
+#define PRId8 "d"
+#define PRIi8 "i"
+#define PRIdLEAST8 "d"
+#define PRIiLEAST8 "i"
+#define PRIdFAST8 "d"
+#define PRIiFAST8 "i"
+
+#define PRId16 "hd"
+#define PRIi16 "hi"
+#define PRIdLEAST16 "hd"
+#define PRIiLEAST16 "hi"
+#define PRIdFAST16 "hd"
+#define PRIiFAST16 "hi"
+
+#define PRId32 "I32d"
+#define PRIi32 "I32i"
+#define PRIdLEAST32 "I32d"
+#define PRIiLEAST32 "I32i"
+#define PRIdFAST32 "I32d"
+#define PRIiFAST32 "I32i"
+
+#define PRId64 "I64d"
+#define PRIi64 "I64i"
+#define PRIdLEAST64 "I64d"
+#define PRIiLEAST64 "I64i"
+#define PRIdFAST64 "I64d"
+#define PRIiFAST64 "I64i"
+
+#define PRIdMAX "I64d"
+#define PRIiMAX "I64i"
+
+#define PRIdPTR "Id"
+#define PRIiPTR "Ii"
+
+// The fprintf macros for unsigned integers are:
+#define PRIo8 "o"
+#define PRIu8 "u"
+#define PRIx8 "x"
+#define PRIX8 "X"
+#define PRIoLEAST8 "o"
+#define PRIuLEAST8 "u"
+#define PRIxLEAST8 "x"
+#define PRIXLEAST8 "X"
+#define PRIoFAST8 "o"
+#define PRIuFAST8 "u"
+#define PRIxFAST8 "x"
+#define PRIXFAST8 "X"
+
+#define PRIo16 "ho"
+#define PRIu16 "hu"
+#define PRIx16 "hx"
+#define PRIX16 "hX"
+#define PRIoLEAST16 "ho"
+#define PRIuLEAST16 "hu"
+#define PRIxLEAST16 "hx"
+#define PRIXLEAST16 "hX"
+#define PRIoFAST16 "ho"
+#define PRIuFAST16 "hu"
+#define PRIxFAST16 "hx"
+#define PRIXFAST16 "hX"
+
+#define PRIo32 "I32o"
+#define PRIu32 "I32u"
+#define PRIx32 "I32x"
+#define PRIX32 "I32X"
+#define PRIoLEAST32 "I32o"
+#define PRIuLEAST32 "I32u"
+#define PRIxLEAST32 "I32x"
+#define PRIXLEAST32 "I32X"
+#define PRIoFAST32 "I32o"
+#define PRIuFAST32 "I32u"
+#define PRIxFAST32 "I32x"
+#define PRIXFAST32 "I32X"
+
+#define PRIo64 "I64o"
+#define PRIu64 "I64u"
+#define PRIx64 "I64x"
+#define PRIX64 "I64X"
+#define PRIoLEAST64 "I64o"
+#define PRIuLEAST64 "I64u"
+#define PRIxLEAST64 "I64x"
+#define PRIXLEAST64 "I64X"
+#define PRIoFAST64 "I64o"
+#define PRIuFAST64 "I64u"
+#define PRIxFAST64 "I64x"
+#define PRIXFAST64 "I64X"
+
+#define PRIoMAX "I64o"
+#define PRIuMAX "I64u"
+#define PRIxMAX "I64x"
+#define PRIXMAX "I64X"
+
+#define PRIoPTR "Io"
+#define PRIuPTR "Iu"
+#define PRIxPTR "Ix"
+#define PRIXPTR "IX"
+
+// The fscanf macros for signed integers are:
+#define SCNd8 "d"
+#define SCNi8 "i"
+#define SCNdLEAST8 "d"
+#define SCNiLEAST8 "i"
+#define SCNdFAST8 "d"
+#define SCNiFAST8 "i"
+
+#define SCNd16 "hd"
+#define SCNi16 "hi"
+#define SCNdLEAST16 "hd"
+#define SCNiLEAST16 "hi"
+#define SCNdFAST16 "hd"
+#define SCNiFAST16 "hi"
+
+#define SCNd32 "ld"
+#define SCNi32 "li"
+#define SCNdLEAST32 "ld"
+#define SCNiLEAST32 "li"
+#define SCNdFAST32 "ld"
+#define SCNiFAST32 "li"
+
+#define SCNd64 "I64d"
+#define SCNi64 "I64i"
+#define SCNdLEAST64 "I64d"
+#define SCNiLEAST64 "I64i"
+#define SCNdFAST64 "I64d"
+#define SCNiFAST64 "I64i"
+
+#define SCNdMAX "I64d"
+#define SCNiMAX "I64i"
+
+#ifdef _WIN64 // [
+# define SCNdPTR "I64d"
+# define SCNiPTR "I64i"
+#else // _WIN64 ][
+# define SCNdPTR "ld"
+# define SCNiPTR "li"
+#endif // _WIN64 ]
+
+// The fscanf macros for unsigned integers are:
+#define SCNo8 "o"
+#define SCNu8 "u"
+#define SCNx8 "x"
+#define SCNX8 "X"
+#define SCNoLEAST8 "o"
+#define SCNuLEAST8 "u"
+#define SCNxLEAST8 "x"
+#define SCNXLEAST8 "X"
+#define SCNoFAST8 "o"
+#define SCNuFAST8 "u"
+#define SCNxFAST8 "x"
+#define SCNXFAST8 "X"
+
+#define SCNo16 "ho"
+#define SCNu16 "hu"
+#define SCNx16 "hx"
+#define SCNX16 "hX"
+#define SCNoLEAST16 "ho"
+#define SCNuLEAST16 "hu"
+#define SCNxLEAST16 "hx"
+#define SCNXLEAST16 "hX"
+#define SCNoFAST16 "ho"
+#define SCNuFAST16 "hu"
+#define SCNxFAST16 "hx"
+#define SCNXFAST16 "hX"
+
+#define SCNo32 "lo"
+#define SCNu32 "lu"
+#define SCNx32 "lx"
+#define SCNX32 "lX"
+#define SCNoLEAST32 "lo"
+#define SCNuLEAST32 "lu"
+#define SCNxLEAST32 "lx"
+#define SCNXLEAST32 "lX"
+#define SCNoFAST32 "lo"
+#define SCNuFAST32 "lu"
+#define SCNxFAST32 "lx"
+#define SCNXFAST32 "lX"
+
+#define SCNo64 "I64o"
+#define SCNu64 "I64u"
+#define SCNx64 "I64x"
+#define SCNX64 "I64X"
+#define SCNoLEAST64 "I64o"
+#define SCNuLEAST64 "I64u"
+#define SCNxLEAST64 "I64x"
+#define SCNXLEAST64 "I64X"
+#define SCNoFAST64 "I64o"
+#define SCNuFAST64 "I64u"
+#define SCNxFAST64 "I64x"
+#define SCNXFAST64 "I64X"
+
+#define SCNoMAX "I64o"
+#define SCNuMAX "I64u"
+#define SCNxMAX "I64x"
+#define SCNXMAX "I64X"
+
+#ifdef _WIN64 // [
+# define SCNoPTR "I64o"
+# define SCNuPTR "I64u"
+# define SCNxPTR "I64x"
+# define SCNXPTR "I64X"
+#else // _WIN64 ][
+# define SCNoPTR "lo"
+# define SCNuPTR "lu"
+# define SCNxPTR "lx"
+# define SCNXPTR "lX"
+#endif // _WIN64 ]
+
+#endif // __STDC_FORMAT_MACROS ]
+
+// 7.8.2 Functions for greatest-width integer types
+
+// 7.8.2.1 The imaxabs function
+#define imaxabs _abs64
+
+// 7.8.2.2 The imaxdiv function
+
+// This is modified version of div() function from Microsoft's div.c found
+// in %MSVC.NET%\crt\src\div.c
+#ifdef STATIC_IMAXDIV // [
+static
+#else // STATIC_IMAXDIV ][
+_inline
+#endif // STATIC_IMAXDIV ]
+imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom)
+{
+ imaxdiv_t result;
+
+ result.quot = numer / denom;
+ result.rem = numer % denom;
+
+ if (numer < 0 && result.rem > 0) {
+ // did division wrong; must fix up
+ ++result.quot;
+ result.rem -= denom;
+ }
+
+ return result;
+}
+
+// 7.8.2.3 The strtoimax and strtoumax functions
+#define strtoimax _strtoi64
+#define strtoumax _strtoui64
+
+// 7.8.2.4 The wcstoimax and wcstoumax functions
+#define wcstoimax _wcstoi64
+#define wcstoumax _wcstoui64
+
+
+#endif // _MSC_INTTYPES_H_ ]
diff --git a/include/kdrive-config.h b/include/kdrive-config.h
new file mode 100644
index 000000000..24178c696
--- /dev/null
+++ b/include/kdrive-config.h
@@ -0,0 +1,40 @@
+/* kdrive-config.h.in: not at all generated. -*- c -*-
+ */
+
+#ifndef _KDRIVE_CONFIG_H_
+#define _KDRIVE_CONFIG_H_
+
+#include <dix-config.h>
+#include <xkb-config.h>
+
+/* Building kdrive server. */
+#define KDRIVESERVER 1
+
+/* Include framebuffer support in X servers */
+/* #undef KDRIVEFBDEV */
+
+/* Enable touchscreen support */
+/* #undef TOUCHSCREEN */
+
+/* Support tslib touchscreen abstraction library */
+/* #undef TSLIB */
+
+/* Support KDrive kbd driver */
+/* #undef KDRIVE_KBD */
+
+/* Support KDrive mouse driver */
+/* #undef KDRIVE_MOUSE */
+
+/* Support KDrive evdev driver */
+/* #undef KDRIVE_EVDEV */
+
+/* Verbose debugging output hilarity */
+/* #undef DEBUG */
+
+/* Have the backtrace() function. */
+/* #undef HAVE_BACKTRACE */
+
+/* Have execinfo.h for backtrace(). */
+/* #undef HAVE_EXECINFO_H */
+
+#endif /* _KDRIVE_CONFIG_H_ */
diff --git a/include/netdb.h b/include/netdb.h
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/include/netdb.h
diff --git a/include/netinet/in.h b/include/netinet/in.h
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/include/netinet/in.h
diff --git a/include/netinet/in_systm.h b/include/netinet/in_systm.h
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/include/netinet/in_systm.h
diff --git a/include/netinet/ip.h b/include/netinet/ip.h
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/include/netinet/ip.h
diff --git a/include/netinet/tcp.h b/include/netinet/tcp.h
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/include/netinet/tcp.h
diff --git a/include/stdbool.h b/include/stdbool.h
new file mode 100644
index 000000000..54b1fbeee
--- /dev/null
+++ b/include/stdbool.h
@@ -0,0 +1,41 @@
+/**************************************************************************
+ *
+ * Copyright 2007-2010 VMware, Inc.
+ * 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 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 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
+ * THE COPYRIGHT HOLDERS, AUTHORS 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.
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ **************************************************************************/
+
+#ifndef _STDBOOL_H_
+#define _STDBOOL_H_
+
+#ifndef __cplusplus
+
+#define false 0
+#define true 1
+#define bool int
+
+#endif /* !__cplusplus */
+
+#define __bool_true_false_are_defined 1
+
+#endif /* !_STDBOOL_H_ */
diff --git a/include/stdint.h b/include/stdint.h
new file mode 100644
index 000000000..4836190c5
--- /dev/null
+++ b/include/stdint.h
@@ -0,0 +1,248 @@
+// ISO C9x compliant stdint.h for Microsoft Visual Studio
+// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
+//
+// Copyright (c) 2006-2008 Alexander Chemeris
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+//
+// 3. The name of the author may be used to endorse or promote products
+// derived from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _MSC_VER // [
+#error "Use this header only with Microsoft Visual C++ compilers!"
+#endif // _MSC_VER ]
+
+#ifndef _MSC_STDINT_H_ // [
+#define _MSC_STDINT_H_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif
+
+#include <limits.h>
+
+// For Visual Studio 6 in C++ mode and for many Visual Studio versions when
+// compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}'
+// or compiler give many errors like this:
+// error C2733: second C linkage of overloaded function 'wmemchr' not allowed
+#ifdef __cplusplus
+extern "C" {
+#endif
+# include <wchar.h>
+#ifdef __cplusplus
+}
+#endif
+
+// Define _W64 macros to mark types changing their size, like intptr_t.
+#ifndef _W64
+# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
+# define _W64 __w64
+# else
+# define _W64
+# endif
+#endif
+
+
+// 7.18.1 Integer types
+
+// 7.18.1.1 Exact-width integer types
+
+// Visual Studio 6 and Embedded Visual C++ 4 doesn't
+// realize that, e.g. char has the same size as __int8
+// so we give up on __intX for them.
+#if (_MSC_VER < 1300)
+ typedef signed char int8_t;
+ typedef signed short int16_t;
+ typedef signed int int32_t;
+ typedef unsigned char uint8_t;
+ typedef unsigned short uint16_t;
+ typedef unsigned int uint32_t;
+#else
+ typedef signed __int8 int8_t;
+ typedef signed __int16 int16_t;
+ typedef signed __int32 int32_t;
+ typedef unsigned __int8 uint8_t;
+ typedef unsigned __int16 uint16_t;
+ typedef unsigned __int32 uint32_t;
+#endif
+typedef signed __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+
+
+// 7.18.1.2 Minimum-width integer types
+typedef int8_t int_least8_t;
+typedef int16_t int_least16_t;
+typedef int32_t int_least32_t;
+typedef int64_t int_least64_t;
+typedef uint8_t uint_least8_t;
+typedef uint16_t uint_least16_t;
+typedef uint32_t uint_least32_t;
+typedef uint64_t uint_least64_t;
+
+// 7.18.1.3 Fastest minimum-width integer types
+typedef int8_t int_fast8_t;
+typedef int16_t int_fast16_t;
+typedef int32_t int_fast32_t;
+typedef int64_t int_fast64_t;
+typedef uint8_t uint_fast8_t;
+typedef uint16_t uint_fast16_t;
+typedef uint32_t uint_fast32_t;
+typedef uint64_t uint_fast64_t;
+
+// 7.18.1.4 Integer types capable of holding object pointers
+#ifdef _WIN64 // [
+ typedef signed __int64 intptr_t;
+ typedef unsigned __int64 uintptr_t;
+#else // _WIN64 ][
+ typedef _W64 signed int intptr_t;
+ typedef _W64 unsigned int uintptr_t;
+#endif // _WIN64 ]
+
+// 7.18.1.5 Greatest-width integer types
+typedef int64_t intmax_t;
+typedef uint64_t uintmax_t;
+
+
+// 7.18.2 Limits of specified-width integer types
+
+#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259
+
+// 7.18.2.1 Limits of exact-width integer types
+#define INT8_MIN ((int8_t)_I8_MIN)
+#define INT8_MAX _I8_MAX
+#define INT16_MIN ((int16_t)_I16_MIN)
+#define INT16_MAX _I16_MAX
+#define INT32_MIN ((int32_t)_I32_MIN)
+#define INT32_MAX _I32_MAX
+#define INT64_MIN ((int64_t)_I64_MIN)
+#define INT64_MAX _I64_MAX
+#define UINT8_MAX _UI8_MAX
+#define UINT16_MAX _UI16_MAX
+#define UINT32_MAX _UI32_MAX
+#define UINT64_MAX _UI64_MAX
+
+// 7.18.2.2 Limits of minimum-width integer types
+#define INT_LEAST8_MIN INT8_MIN
+#define INT_LEAST8_MAX INT8_MAX
+#define INT_LEAST16_MIN INT16_MIN
+#define INT_LEAST16_MAX INT16_MAX
+#define INT_LEAST32_MIN INT32_MIN
+#define INT_LEAST32_MAX INT32_MAX
+#define INT_LEAST64_MIN INT64_MIN
+#define INT_LEAST64_MAX INT64_MAX
+#define UINT_LEAST8_MAX UINT8_MAX
+#define UINT_LEAST16_MAX UINT16_MAX
+#define UINT_LEAST32_MAX UINT32_MAX
+#define UINT_LEAST64_MAX UINT64_MAX
+
+// 7.18.2.3 Limits of fastest minimum-width integer types
+#define INT_FAST8_MIN INT8_MIN
+#define INT_FAST8_MAX INT8_MAX
+#define INT_FAST16_MIN INT16_MIN
+#define INT_FAST16_MAX INT16_MAX
+#define INT_FAST32_MIN INT32_MIN
+#define INT_FAST32_MAX INT32_MAX
+#define INT_FAST64_MIN INT64_MIN
+#define INT_FAST64_MAX INT64_MAX
+#define UINT_FAST8_MAX UINT8_MAX
+#define UINT_FAST16_MAX UINT16_MAX
+#define UINT_FAST32_MAX UINT32_MAX
+#define UINT_FAST64_MAX UINT64_MAX
+
+// 7.18.2.4 Limits of integer types capable of holding object pointers
+#ifdef _WIN64 // [
+# define INTPTR_MIN INT64_MIN
+# define INTPTR_MAX INT64_MAX
+# define UINTPTR_MAX UINT64_MAX
+#else // _WIN64 ][
+# define INTPTR_MIN INT32_MIN
+# define INTPTR_MAX INT32_MAX
+# define UINTPTR_MAX UINT32_MAX
+#endif // _WIN64 ]
+
+// 7.18.2.5 Limits of greatest-width integer types
+#define INTMAX_MIN INT64_MIN
+#define INTMAX_MAX INT64_MAX
+#define UINTMAX_MAX UINT64_MAX
+
+// 7.18.3 Limits of other integer types
+
+#ifdef _WIN64 // [
+# define PTRDIFF_MIN _I64_MIN
+# define PTRDIFF_MAX _I64_MAX
+#else // _WIN64 ][
+# define PTRDIFF_MIN _I32_MIN
+# define PTRDIFF_MAX _I32_MAX
+#endif // _WIN64 ]
+
+#define SIG_ATOMIC_MIN INT_MIN
+#define SIG_ATOMIC_MAX INT_MAX
+
+#ifndef SIZE_MAX // [
+# ifdef _WIN64 // [
+# define SIZE_MAX _UI64_MAX
+# else // _WIN64 ][
+# define SIZE_MAX _UI32_MAX
+# endif // _WIN64 ]
+#endif // SIZE_MAX ]
+
+// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
+#ifndef WCHAR_MIN // [
+# define WCHAR_MIN 0
+#endif // WCHAR_MIN ]
+#ifndef WCHAR_MAX // [
+# define WCHAR_MAX _UI16_MAX
+#endif // WCHAR_MAX ]
+
+#define WINT_MIN 0
+#define WINT_MAX _UI16_MAX
+
+#endif // __STDC_LIMIT_MACROS ]
+
+
+// 7.18.4 Limits of other integer types
+
+#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260
+
+// 7.18.4.1 Macros for minimum-width integer constants
+
+#define INT8_C(val) val##i8
+#define INT16_C(val) val##i16
+#define INT32_C(val) val##i32
+#define INT64_C(val) val##i64
+
+#define UINT8_C(val) val##ui8
+#define UINT16_C(val) val##ui16
+#define UINT32_C(val) val##ui32
+#define UINT64_C(val) val##ui64
+
+// 7.18.4.2 Macros for greatest-width integer constants
+#define INTMAX_C INT64_C
+#define UINTMAX_C UINT64_C
+
+#endif // __STDC_CONSTANT_MACROS ]
+
+typedef int ssize_t;
+
+#endif // _MSC_STDINT_H_ ]
diff --git a/include/strings.h b/include/strings.h
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/include/strings.h
diff --git a/include/sys/dir.h b/include/sys/dir.h
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/include/sys/dir.h
diff --git a/include/sys/ioctl.h b/include/sys/ioctl.h
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/include/sys/ioctl.h
diff --git a/include/sys/param.h b/include/sys/param.h
new file mode 100644
index 000000000..d03021a1e
--- /dev/null
+++ b/include/sys/param.h
@@ -0,0 +1,12 @@
+#ifndef __PARAM_H__
+#define __PARAM_H__
+
+#ifndef MAXPATHLEN
+#ifdef PATH_MAX
+#define MAXPATHLEN PATH_MAX
+#else
+#define MAXPATHLEN 255
+#endif
+#endif
+
+#endif \ No newline at end of file
diff --git a/include/sys/select.h b/include/sys/select.h
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/include/sys/select.h
diff --git a/include/sys/socket.h b/include/sys/socket.h
new file mode 100644
index 000000000..98068952a
--- /dev/null
+++ b/include/sys/socket.h
@@ -0,0 +1,11 @@
+#ifndef __SOCKET_H__
+#define __SOCKET_H__
+
+#include <X11/Xwinsock.h>
+#include <Ws2tcpip.h>
+
+typedef unsigned in_addr_t;
+typedef unsigned short sa_family_t;
+typedef unsigned short in_port_t;
+
+#endif \ No newline at end of file
diff --git a/include/sys/time.h b/include/sys/time.h
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/include/sys/time.h
diff --git a/include/sys/types.h b/include/sys/types.h
new file mode 100644
index 000000000..dabb3902b
--- /dev/null
+++ b/include/sys/types.h
@@ -0,0 +1,101 @@
+/***
+*sys/types.h - types returned by system level calls for file and time info
+*
+* Copyright (c) Microsoft Corporation. All rights reserved.
+*
+*Purpose:
+* This file defines types used in defining values returned by system
+* level calls for file status and time information.
+* [System V]
+*
+* [Public]
+*
+****/
+
+#pragma once
+
+#ifndef _INC_TYPES
+#define _INC_TYPES
+
+#if !defined(_WIN32)
+#error ERROR: Only Win32 target supported!
+#endif
+
+typedef int pid_t;
+typedef long off_t;
+typedef int gid_t;
+typedef int uid_t;
+
+#if !defined(_W64)
+#if !defined(__midl) && (defined(_X86_) || defined(_M_IX86))
+#define _W64 __w64
+#else
+#define _W64
+#endif
+#endif
+
+#ifdef _USE_32BIT_TIME_T
+#ifdef _WIN64
+#include <crtwrn.h>
+#endif
+#endif
+
+#ifndef _TIME32_T_DEFINED
+typedef _W64 long __time32_t; /* 32-bit time value */
+#define _TIME32_T_DEFINED
+#endif
+
+#ifndef _TIME64_T_DEFINED
+typedef __int64 __time64_t; /* 64-bit time value */
+#define _TIME64_T_DEFINED
+#endif
+
+#ifndef _TIME_T_DEFINED
+#ifdef _USE_32BIT_TIME_T
+typedef __time32_t time_t; /* time value */
+#else
+typedef __time64_t time_t; /* time value */
+#endif
+#define _TIME_T_DEFINED /* avoid multiple def's of time_t */
+#endif
+
+
+#ifndef _INO_T_DEFINED
+
+typedef unsigned short _ino_t; /* i-node number (not used on DOS) */
+
+#if !__STDC__
+/* Non-ANSI name for compatibility */
+typedef unsigned short ino_t;
+#endif
+
+#define _INO_T_DEFINED
+#endif
+
+
+#ifndef _DEV_T_DEFINED
+
+typedef unsigned int _dev_t; /* device code */
+
+#if !__STDC__
+/* Non-ANSI name for compatibility */
+typedef unsigned int dev_t;
+#endif
+
+#define _DEV_T_DEFINED
+#endif
+
+
+#ifndef _OFF_T_DEFINED
+
+typedef long _off_t; /* file offset value */
+
+#if !__STDC__
+/* Non-ANSI name for compatibility */
+typedef long off_t;
+#endif
+
+#define _OFF_T_DEFINED
+#endif
+
+#endif /* _INC_TYPES */
diff --git a/include/sys/un.h b/include/sys/un.h
new file mode 100644
index 000000000..b2562b723
--- /dev/null
+++ b/include/sys/un.h
@@ -0,0 +1,11 @@
+#ifndef __UN_H__
+#define __UN_H__
+
+#define UNIX_PATH_MAX 108
+
+struct sockaddr_un {
+ sa_family_t sun_family; /* AF_UNIX */
+ char sun_path[UNIX_PATH_MAX]; /* pathname */
+};
+
+#endif /* __UN_H__ */ \ No newline at end of file
diff --git a/include/sys/wait.h b/include/sys/wait.h
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/include/sys/wait.h
diff --git a/include/unistd.h b/include/unistd.h
new file mode 100644
index 000000000..55e6815f3
--- /dev/null
+++ b/include/unistd.h
@@ -0,0 +1,9 @@
+#ifndef __UNISTD_H__
+#define __UNISTD_H__
+
+#define strcasecmp _stricmp
+#define snprintf _snprintf
+#define strdup _strdup
+
+#include <X11\Xw32defs.h>
+#endif
diff --git a/include/xcb/bigreq.h b/include/xcb/bigreq.h
new file mode 100644
index 000000000..208874bb5
--- /dev/null
+++ b/include/xcb/bigreq.h
@@ -0,0 +1,141 @@
+/*
+ * This file generated automatically from bigreq.xml by c_client.py.
+ * Edit at your peril.
+ */
+
+/**
+ * @defgroup XCB_BigRequests_API XCB BigRequests API
+ * @brief BigRequests XCB Protocol Implementation.
+ * @{
+ **/
+
+#ifndef __BIGREQ_H
+#define __BIGREQ_H
+
+#include "xcb.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define XCB_BIGREQUESTS_MAJOR_VERSION 0
+#define XCB_BIGREQUESTS_MINOR_VERSION 0
+
+XCB_EXTERN xcb_extension_t xcb_big_requests_id;
+
+/**
+ * @brief xcb_big_requests_enable_cookie_t
+ **/
+typedef struct xcb_big_requests_enable_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_big_requests_enable_cookie_t;
+
+/** Opcode for xcb_big_requests_enable. */
+#define XCB_BIG_REQUESTS_ENABLE 0
+
+/**
+ * @brief xcb_big_requests_enable_request_t
+ **/
+typedef struct xcb_big_requests_enable_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+} xcb_big_requests_enable_request_t;
+
+/**
+ * @brief xcb_big_requests_enable_reply_t
+ **/
+typedef struct xcb_big_requests_enable_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint32_t maximum_request_length; /**< */
+} xcb_big_requests_enable_reply_t;
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_big_requests_enable_cookie_t xcb_big_requests_enable
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_big_requests_enable_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_big_requests_enable_cookie_t
+xcb_big_requests_enable (xcb_connection_t *c /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_big_requests_enable_cookie_t xcb_big_requests_enable_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_big_requests_enable_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_big_requests_enable_cookie_t
+xcb_big_requests_enable_unchecked (xcb_connection_t *c /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_big_requests_enable_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_big_requests_enable_reply_t * xcb_big_requests_enable_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_big_requests_enable_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_big_requests_enable_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_big_requests_enable_reply_t *
+xcb_big_requests_enable_reply (xcb_connection_t *c /**< */,
+ xcb_big_requests_enable_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/**
+ * @}
+ */
diff --git a/include/xcb/render.h b/include/xcb/render.h
new file mode 100644
index 000000000..d00b45926
--- /dev/null
+++ b/include/xcb/render.h
@@ -0,0 +1,4513 @@
+/*
+ * This file generated automatically from render.xml by c_client.py.
+ * Edit at your peril.
+ */
+
+/**
+ * @defgroup XCB_Render_API XCB Render API
+ * @brief Render XCB Protocol Implementation.
+ * @{
+ **/
+
+#ifndef __RENDER_H
+#define __RENDER_H
+
+#include "xcb.h"
+#include "xproto.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define XCB_RENDER_MAJOR_VERSION 0
+#define XCB_RENDER_MINOR_VERSION 11
+
+XCB_EXTERN xcb_extension_t xcb_render_id;
+
+typedef enum xcb_render_pict_type_t {
+ XCB_RENDER_PICT_TYPE_INDEXED = 0,
+ XCB_RENDER_PICT_TYPE_DIRECT = 1
+} xcb_render_pict_type_t;
+
+typedef enum xcb_render_picture_enum_t {
+ XCB_RENDER_PICTURE_NONE = 0
+} xcb_render_picture_enum_t;
+
+typedef enum xcb_render_pict_op_t {
+ XCB_RENDER_PICT_OP_CLEAR = 0,
+ XCB_RENDER_PICT_OP_SRC = 1,
+ XCB_RENDER_PICT_OP_DST = 2,
+ XCB_RENDER_PICT_OP_OVER = 3,
+ XCB_RENDER_PICT_OP_OVER_REVERSE = 4,
+ XCB_RENDER_PICT_OP_IN = 5,
+ XCB_RENDER_PICT_OP_IN_REVERSE = 6,
+ XCB_RENDER_PICT_OP_OUT = 7,
+ XCB_RENDER_PICT_OP_OUT_REVERSE = 8,
+ XCB_RENDER_PICT_OP_ATOP = 9,
+ XCB_RENDER_PICT_OP_ATOP_REVERSE = 10,
+ XCB_RENDER_PICT_OP_XOR = 11,
+ XCB_RENDER_PICT_OP_ADD = 12,
+ XCB_RENDER_PICT_OP_SATURATE = 13,
+ XCB_RENDER_PICT_OP_DISJOINT_CLEAR = 16,
+ XCB_RENDER_PICT_OP_DISJOINT_SRC = 17,
+ XCB_RENDER_PICT_OP_DISJOINT_DST = 18,
+ XCB_RENDER_PICT_OP_DISJOINT_OVER = 19,
+ XCB_RENDER_PICT_OP_DISJOINT_OVER_REVERSE = 20,
+ XCB_RENDER_PICT_OP_DISJOINT_IN = 21,
+ XCB_RENDER_PICT_OP_DISJOINT_IN_REVERSE = 22,
+ XCB_RENDER_PICT_OP_DISJOINT_OUT = 23,
+ XCB_RENDER_PICT_OP_DISJOINT_OUT_REVERSE = 24,
+ XCB_RENDER_PICT_OP_DISJOINT_ATOP = 25,
+ XCB_RENDER_PICT_OP_DISJOINT_ATOP_REVERSE = 26,
+ XCB_RENDER_PICT_OP_DISJOINT_XOR = 27,
+ XCB_RENDER_PICT_OP_CONJOINT_CLEAR = 32,
+ XCB_RENDER_PICT_OP_CONJOINT_SRC = 33,
+ XCB_RENDER_PICT_OP_CONJOINT_DST = 34,
+ XCB_RENDER_PICT_OP_CONJOINT_OVER = 35,
+ XCB_RENDER_PICT_OP_CONJOINT_OVER_REVERSE = 36,
+ XCB_RENDER_PICT_OP_CONJOINT_IN = 37,
+ XCB_RENDER_PICT_OP_CONJOINT_IN_REVERSE = 38,
+ XCB_RENDER_PICT_OP_CONJOINT_OUT = 39,
+ XCB_RENDER_PICT_OP_CONJOINT_OUT_REVERSE = 40,
+ XCB_RENDER_PICT_OP_CONJOINT_ATOP = 41,
+ XCB_RENDER_PICT_OP_CONJOINT_ATOP_REVERSE = 42,
+ XCB_RENDER_PICT_OP_CONJOINT_XOR = 43,
+ XCB_RENDER_PICT_OP_MULTIPLY = 48,
+ XCB_RENDER_PICT_OP_SCREEN = 49,
+ XCB_RENDER_PICT_OP_OVERLAY = 50,
+ XCB_RENDER_PICT_OP_DARKEN = 51,
+ XCB_RENDER_PICT_OP_LIGHTEN = 52,
+ XCB_RENDER_PICT_OP_COLOR_DODGE = 53,
+ XCB_RENDER_PICT_OP_COLOR_BURN = 54,
+ XCB_RENDER_PICT_OP_HARD_LIGHT = 55,
+ XCB_RENDER_PICT_OP_SOFT_LIGHT = 56,
+ XCB_RENDER_PICT_OP_DIFFERENCE = 57,
+ XCB_RENDER_PICT_OP_EXCLUSION = 58,
+ XCB_RENDER_PICT_OP_HSL_HUE = 59,
+ XCB_RENDER_PICT_OP_HSL_SATURATION = 60,
+ XCB_RENDER_PICT_OP_HSL_COLOR = 61,
+ XCB_RENDER_PICT_OP_HSL_LUMINOSITY = 62
+} xcb_render_pict_op_t;
+
+typedef enum xcb_render_poly_edge_t {
+ XCB_RENDER_POLY_EDGE_SHARP = 0,
+ XCB_RENDER_POLY_EDGE_SMOOTH = 1
+} xcb_render_poly_edge_t;
+
+typedef enum xcb_render_poly_mode_t {
+ XCB_RENDER_POLY_MODE_PRECISE = 0,
+ XCB_RENDER_POLY_MODE_IMPRECISE = 1
+} xcb_render_poly_mode_t;
+
+typedef enum xcb_render_cp_t {
+ XCB_RENDER_CP_REPEAT = 1,
+ XCB_RENDER_CP_ALPHA_MAP = 2,
+ XCB_RENDER_CP_ALPHA_X_ORIGIN = 4,
+ XCB_RENDER_CP_ALPHA_Y_ORIGIN = 8,
+ XCB_RENDER_CP_CLIP_X_ORIGIN = 16,
+ XCB_RENDER_CP_CLIP_Y_ORIGIN = 32,
+ XCB_RENDER_CP_CLIP_MASK = 64,
+ XCB_RENDER_CP_GRAPHICS_EXPOSURE = 128,
+ XCB_RENDER_CP_SUBWINDOW_MODE = 256,
+ XCB_RENDER_CP_POLY_EDGE = 512,
+ XCB_RENDER_CP_POLY_MODE = 1024,
+ XCB_RENDER_CP_DITHER = 2048,
+ XCB_RENDER_CP_COMPONENT_ALPHA = 4096
+} xcb_render_cp_t;
+
+typedef enum xcb_render_sub_pixel_t {
+ XCB_RENDER_SUB_PIXEL_UNKNOWN = 0,
+ XCB_RENDER_SUB_PIXEL_HORIZONTAL_RGB = 1,
+ XCB_RENDER_SUB_PIXEL_HORIZONTAL_BGR = 2,
+ XCB_RENDER_SUB_PIXEL_VERTICAL_RGB = 3,
+ XCB_RENDER_SUB_PIXEL_VERTICAL_BGR = 4,
+ XCB_RENDER_SUB_PIXEL_NONE = 5
+} xcb_render_sub_pixel_t;
+
+typedef enum xcb_render_repeat_t {
+ XCB_RENDER_REPEAT_NONE = 0,
+ XCB_RENDER_REPEAT_NORMAL = 1,
+ XCB_RENDER_REPEAT_PAD = 2,
+ XCB_RENDER_REPEAT_REFLECT = 3
+} xcb_render_repeat_t;
+
+typedef uint32_t xcb_render_glyph_t;
+
+/**
+ * @brief xcb_render_glyph_iterator_t
+ **/
+typedef struct xcb_render_glyph_iterator_t {
+ xcb_render_glyph_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_glyph_iterator_t;
+
+typedef uint32_t xcb_render_glyphset_t;
+
+/**
+ * @brief xcb_render_glyphset_iterator_t
+ **/
+typedef struct xcb_render_glyphset_iterator_t {
+ xcb_render_glyphset_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_glyphset_iterator_t;
+
+typedef uint32_t xcb_render_picture_t;
+
+/**
+ * @brief xcb_render_picture_iterator_t
+ **/
+typedef struct xcb_render_picture_iterator_t {
+ xcb_render_picture_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_picture_iterator_t;
+
+typedef uint32_t xcb_render_pictformat_t;
+
+/**
+ * @brief xcb_render_pictformat_iterator_t
+ **/
+typedef struct xcb_render_pictformat_iterator_t {
+ xcb_render_pictformat_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_pictformat_iterator_t;
+
+typedef int32_t xcb_render_fixed_t;
+
+/**
+ * @brief xcb_render_fixed_iterator_t
+ **/
+typedef struct xcb_render_fixed_iterator_t {
+ xcb_render_fixed_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_fixed_iterator_t;
+
+/** Opcode for xcb_render_pict_format. */
+#define XCB_RENDER_PICT_FORMAT 0
+
+/**
+ * @brief xcb_render_pict_format_error_t
+ **/
+typedef struct xcb_render_pict_format_error_t {
+ uint8_t response_type; /**< */
+ uint8_t error_code; /**< */
+ uint16_t sequence; /**< */
+} xcb_render_pict_format_error_t;
+
+/** Opcode for xcb_render_picture. */
+#define XCB_RENDER_PICTURE 1
+
+/**
+ * @brief xcb_render_picture_error_t
+ **/
+typedef struct xcb_render_picture_error_t {
+ uint8_t response_type; /**< */
+ uint8_t error_code; /**< */
+ uint16_t sequence; /**< */
+} xcb_render_picture_error_t;
+
+/** Opcode for xcb_render_pict_op. */
+#define XCB_RENDER_PICT_OP 2
+
+/**
+ * @brief xcb_render_pict_op_error_t
+ **/
+typedef struct xcb_render_pict_op_error_t {
+ uint8_t response_type; /**< */
+ uint8_t error_code; /**< */
+ uint16_t sequence; /**< */
+} xcb_render_pict_op_error_t;
+
+/** Opcode for xcb_render_glyph_set. */
+#define XCB_RENDER_GLYPH_SET 3
+
+/**
+ * @brief xcb_render_glyph_set_error_t
+ **/
+typedef struct xcb_render_glyph_set_error_t {
+ uint8_t response_type; /**< */
+ uint8_t error_code; /**< */
+ uint16_t sequence; /**< */
+} xcb_render_glyph_set_error_t;
+
+/** Opcode for xcb_render_glyph. */
+#define XCB_RENDER_GLYPH 4
+
+/**
+ * @brief xcb_render_glyph_error_t
+ **/
+typedef struct xcb_render_glyph_error_t {
+ uint8_t response_type; /**< */
+ uint8_t error_code; /**< */
+ uint16_t sequence; /**< */
+} xcb_render_glyph_error_t;
+
+/**
+ * @brief xcb_render_directformat_t
+ **/
+typedef struct xcb_render_directformat_t {
+ uint16_t red_shift; /**< */
+ uint16_t red_mask; /**< */
+ uint16_t green_shift; /**< */
+ uint16_t green_mask; /**< */
+ uint16_t blue_shift; /**< */
+ uint16_t blue_mask; /**< */
+ uint16_t alpha_shift; /**< */
+ uint16_t alpha_mask; /**< */
+} xcb_render_directformat_t;
+
+/**
+ * @brief xcb_render_directformat_iterator_t
+ **/
+typedef struct xcb_render_directformat_iterator_t {
+ xcb_render_directformat_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_directformat_iterator_t;
+
+/**
+ * @brief xcb_render_pictforminfo_t
+ **/
+typedef struct xcb_render_pictforminfo_t {
+ xcb_render_pictformat_t id; /**< */
+ uint8_t type; /**< */
+ uint8_t depth; /**< */
+ uint8_t pad0[2]; /**< */
+ xcb_render_directformat_t direct; /**< */
+ xcb_colormap_t colormap; /**< */
+} xcb_render_pictforminfo_t;
+
+/**
+ * @brief xcb_render_pictforminfo_iterator_t
+ **/
+typedef struct xcb_render_pictforminfo_iterator_t {
+ xcb_render_pictforminfo_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_pictforminfo_iterator_t;
+
+/**
+ * @brief xcb_render_pictvisual_t
+ **/
+typedef struct xcb_render_pictvisual_t {
+ xcb_visualid_t visual; /**< */
+ xcb_render_pictformat_t format; /**< */
+} xcb_render_pictvisual_t;
+
+/**
+ * @brief xcb_render_pictvisual_iterator_t
+ **/
+typedef struct xcb_render_pictvisual_iterator_t {
+ xcb_render_pictvisual_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_pictvisual_iterator_t;
+
+/**
+ * @brief xcb_render_pictdepth_t
+ **/
+typedef struct xcb_render_pictdepth_t {
+ uint8_t depth; /**< */
+ uint8_t pad0; /**< */
+ uint16_t num_visuals; /**< */
+ uint8_t pad1[4]; /**< */
+} xcb_render_pictdepth_t;
+
+/**
+ * @brief xcb_render_pictdepth_iterator_t
+ **/
+typedef struct xcb_render_pictdepth_iterator_t {
+ xcb_render_pictdepth_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_pictdepth_iterator_t;
+
+/**
+ * @brief xcb_render_pictscreen_t
+ **/
+typedef struct xcb_render_pictscreen_t {
+ uint32_t num_depths; /**< */
+ xcb_render_pictformat_t fallback; /**< */
+} xcb_render_pictscreen_t;
+
+/**
+ * @brief xcb_render_pictscreen_iterator_t
+ **/
+typedef struct xcb_render_pictscreen_iterator_t {
+ xcb_render_pictscreen_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_pictscreen_iterator_t;
+
+/**
+ * @brief xcb_render_indexvalue_t
+ **/
+typedef struct xcb_render_indexvalue_t {
+ uint32_t pixel; /**< */
+ uint16_t red; /**< */
+ uint16_t green; /**< */
+ uint16_t blue; /**< */
+ uint16_t alpha; /**< */
+} xcb_render_indexvalue_t;
+
+/**
+ * @brief xcb_render_indexvalue_iterator_t
+ **/
+typedef struct xcb_render_indexvalue_iterator_t {
+ xcb_render_indexvalue_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_indexvalue_iterator_t;
+
+/**
+ * @brief xcb_render_color_t
+ **/
+typedef struct xcb_render_color_t {
+ uint16_t red; /**< */
+ uint16_t green; /**< */
+ uint16_t blue; /**< */
+ uint16_t alpha; /**< */
+} xcb_render_color_t;
+
+/**
+ * @brief xcb_render_color_iterator_t
+ **/
+typedef struct xcb_render_color_iterator_t {
+ xcb_render_color_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_color_iterator_t;
+
+/**
+ * @brief xcb_render_pointfix_t
+ **/
+typedef struct xcb_render_pointfix_t {
+ xcb_render_fixed_t x; /**< */
+ xcb_render_fixed_t y; /**< */
+} xcb_render_pointfix_t;
+
+/**
+ * @brief xcb_render_pointfix_iterator_t
+ **/
+typedef struct xcb_render_pointfix_iterator_t {
+ xcb_render_pointfix_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_pointfix_iterator_t;
+
+/**
+ * @brief xcb_render_linefix_t
+ **/
+typedef struct xcb_render_linefix_t {
+ xcb_render_pointfix_t p1; /**< */
+ xcb_render_pointfix_t p2; /**< */
+} xcb_render_linefix_t;
+
+/**
+ * @brief xcb_render_linefix_iterator_t
+ **/
+typedef struct xcb_render_linefix_iterator_t {
+ xcb_render_linefix_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_linefix_iterator_t;
+
+/**
+ * @brief xcb_render_triangle_t
+ **/
+typedef struct xcb_render_triangle_t {
+ xcb_render_pointfix_t p1; /**< */
+ xcb_render_pointfix_t p2; /**< */
+ xcb_render_pointfix_t p3; /**< */
+} xcb_render_triangle_t;
+
+/**
+ * @brief xcb_render_triangle_iterator_t
+ **/
+typedef struct xcb_render_triangle_iterator_t {
+ xcb_render_triangle_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_triangle_iterator_t;
+
+/**
+ * @brief xcb_render_trapezoid_t
+ **/
+typedef struct xcb_render_trapezoid_t {
+ xcb_render_fixed_t top; /**< */
+ xcb_render_fixed_t bottom; /**< */
+ xcb_render_linefix_t left; /**< */
+ xcb_render_linefix_t right; /**< */
+} xcb_render_trapezoid_t;
+
+/**
+ * @brief xcb_render_trapezoid_iterator_t
+ **/
+typedef struct xcb_render_trapezoid_iterator_t {
+ xcb_render_trapezoid_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_trapezoid_iterator_t;
+
+/**
+ * @brief xcb_render_glyphinfo_t
+ **/
+typedef struct xcb_render_glyphinfo_t {
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+ int16_t x; /**< */
+ int16_t y; /**< */
+ int16_t x_off; /**< */
+ int16_t y_off; /**< */
+} xcb_render_glyphinfo_t;
+
+/**
+ * @brief xcb_render_glyphinfo_iterator_t
+ **/
+typedef struct xcb_render_glyphinfo_iterator_t {
+ xcb_render_glyphinfo_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_glyphinfo_iterator_t;
+
+/**
+ * @brief xcb_render_query_version_cookie_t
+ **/
+typedef struct xcb_render_query_version_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_render_query_version_cookie_t;
+
+/** Opcode for xcb_render_query_version. */
+#define XCB_RENDER_QUERY_VERSION 0
+
+/**
+ * @brief xcb_render_query_version_request_t
+ **/
+typedef struct xcb_render_query_version_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ uint32_t client_major_version; /**< */
+ uint32_t client_minor_version; /**< */
+} xcb_render_query_version_request_t;
+
+/**
+ * @brief xcb_render_query_version_reply_t
+ **/
+typedef struct xcb_render_query_version_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint32_t major_version; /**< */
+ uint32_t minor_version; /**< */
+ uint8_t pad1[16]; /**< */
+} xcb_render_query_version_reply_t;
+
+/**
+ * @brief xcb_render_query_pict_formats_cookie_t
+ **/
+typedef struct xcb_render_query_pict_formats_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_render_query_pict_formats_cookie_t;
+
+/** Opcode for xcb_render_query_pict_formats. */
+#define XCB_RENDER_QUERY_PICT_FORMATS 1
+
+/**
+ * @brief xcb_render_query_pict_formats_request_t
+ **/
+typedef struct xcb_render_query_pict_formats_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+} xcb_render_query_pict_formats_request_t;
+
+/**
+ * @brief xcb_render_query_pict_formats_reply_t
+ **/
+typedef struct xcb_render_query_pict_formats_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint32_t num_formats; /**< */
+ uint32_t num_screens; /**< */
+ uint32_t num_depths; /**< */
+ uint32_t num_visuals; /**< */
+ uint32_t num_subpixel; /**< */
+ uint8_t pad1[4]; /**< */
+} xcb_render_query_pict_formats_reply_t;
+
+/**
+ * @brief xcb_render_query_pict_index_values_cookie_t
+ **/
+typedef struct xcb_render_query_pict_index_values_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_render_query_pict_index_values_cookie_t;
+
+/** Opcode for xcb_render_query_pict_index_values. */
+#define XCB_RENDER_QUERY_PICT_INDEX_VALUES 2
+
+/**
+ * @brief xcb_render_query_pict_index_values_request_t
+ **/
+typedef struct xcb_render_query_pict_index_values_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_render_pictformat_t format; /**< */
+} xcb_render_query_pict_index_values_request_t;
+
+/**
+ * @brief xcb_render_query_pict_index_values_reply_t
+ **/
+typedef struct xcb_render_query_pict_index_values_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint32_t num_values; /**< */
+ uint8_t pad1[20]; /**< */
+} xcb_render_query_pict_index_values_reply_t;
+
+/** Opcode for xcb_render_create_picture. */
+#define XCB_RENDER_CREATE_PICTURE 4
+
+/**
+ * @brief xcb_render_create_picture_request_t
+ **/
+typedef struct xcb_render_create_picture_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_render_picture_t pid; /**< */
+ xcb_drawable_t drawable; /**< */
+ xcb_render_pictformat_t format; /**< */
+ uint32_t value_mask; /**< */
+} xcb_render_create_picture_request_t;
+
+/** Opcode for xcb_render_change_picture. */
+#define XCB_RENDER_CHANGE_PICTURE 5
+
+/**
+ * @brief xcb_render_change_picture_request_t
+ **/
+typedef struct xcb_render_change_picture_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_render_picture_t picture; /**< */
+ uint32_t value_mask; /**< */
+} xcb_render_change_picture_request_t;
+
+/** Opcode for xcb_render_set_picture_clip_rectangles. */
+#define XCB_RENDER_SET_PICTURE_CLIP_RECTANGLES 6
+
+/**
+ * @brief xcb_render_set_picture_clip_rectangles_request_t
+ **/
+typedef struct xcb_render_set_picture_clip_rectangles_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_render_picture_t picture; /**< */
+ int16_t clip_x_origin; /**< */
+ int16_t clip_y_origin; /**< */
+} xcb_render_set_picture_clip_rectangles_request_t;
+
+/** Opcode for xcb_render_free_picture. */
+#define XCB_RENDER_FREE_PICTURE 7
+
+/**
+ * @brief xcb_render_free_picture_request_t
+ **/
+typedef struct xcb_render_free_picture_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_render_picture_t picture; /**< */
+} xcb_render_free_picture_request_t;
+
+/** Opcode for xcb_render_composite. */
+#define XCB_RENDER_COMPOSITE 8
+
+/**
+ * @brief xcb_render_composite_request_t
+ **/
+typedef struct xcb_render_composite_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ uint8_t op; /**< */
+ uint8_t pad0[3]; /**< */
+ xcb_render_picture_t src; /**< */
+ xcb_render_picture_t mask; /**< */
+ xcb_render_picture_t dst; /**< */
+ int16_t src_x; /**< */
+ int16_t src_y; /**< */
+ int16_t mask_x; /**< */
+ int16_t mask_y; /**< */
+ int16_t dst_x; /**< */
+ int16_t dst_y; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+} xcb_render_composite_request_t;
+
+/** Opcode for xcb_render_trapezoids. */
+#define XCB_RENDER_TRAPEZOIDS 10
+
+/**
+ * @brief xcb_render_trapezoids_request_t
+ **/
+typedef struct xcb_render_trapezoids_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ uint8_t op; /**< */
+ uint8_t pad0[3]; /**< */
+ xcb_render_picture_t src; /**< */
+ xcb_render_picture_t dst; /**< */
+ xcb_render_pictformat_t mask_format; /**< */
+ int16_t src_x; /**< */
+ int16_t src_y; /**< */
+} xcb_render_trapezoids_request_t;
+
+/** Opcode for xcb_render_triangles. */
+#define XCB_RENDER_TRIANGLES 11
+
+/**
+ * @brief xcb_render_triangles_request_t
+ **/
+typedef struct xcb_render_triangles_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ uint8_t op; /**< */
+ uint8_t pad0[3]; /**< */
+ xcb_render_picture_t src; /**< */
+ xcb_render_picture_t dst; /**< */
+ xcb_render_pictformat_t mask_format; /**< */
+ int16_t src_x; /**< */
+ int16_t src_y; /**< */
+} xcb_render_triangles_request_t;
+
+/** Opcode for xcb_render_tri_strip. */
+#define XCB_RENDER_TRI_STRIP 12
+
+/**
+ * @brief xcb_render_tri_strip_request_t
+ **/
+typedef struct xcb_render_tri_strip_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ uint8_t op; /**< */
+ uint8_t pad0[3]; /**< */
+ xcb_render_picture_t src; /**< */
+ xcb_render_picture_t dst; /**< */
+ xcb_render_pictformat_t mask_format; /**< */
+ int16_t src_x; /**< */
+ int16_t src_y; /**< */
+} xcb_render_tri_strip_request_t;
+
+/** Opcode for xcb_render_tri_fan. */
+#define XCB_RENDER_TRI_FAN 13
+
+/**
+ * @brief xcb_render_tri_fan_request_t
+ **/
+typedef struct xcb_render_tri_fan_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ uint8_t op; /**< */
+ uint8_t pad0[3]; /**< */
+ xcb_render_picture_t src; /**< */
+ xcb_render_picture_t dst; /**< */
+ xcb_render_pictformat_t mask_format; /**< */
+ int16_t src_x; /**< */
+ int16_t src_y; /**< */
+} xcb_render_tri_fan_request_t;
+
+/** Opcode for xcb_render_create_glyph_set. */
+#define XCB_RENDER_CREATE_GLYPH_SET 17
+
+/**
+ * @brief xcb_render_create_glyph_set_request_t
+ **/
+typedef struct xcb_render_create_glyph_set_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_render_glyphset_t gsid; /**< */
+ xcb_render_pictformat_t format; /**< */
+} xcb_render_create_glyph_set_request_t;
+
+/** Opcode for xcb_render_reference_glyph_set. */
+#define XCB_RENDER_REFERENCE_GLYPH_SET 18
+
+/**
+ * @brief xcb_render_reference_glyph_set_request_t
+ **/
+typedef struct xcb_render_reference_glyph_set_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_render_glyphset_t gsid; /**< */
+ xcb_render_glyphset_t existing; /**< */
+} xcb_render_reference_glyph_set_request_t;
+
+/** Opcode for xcb_render_free_glyph_set. */
+#define XCB_RENDER_FREE_GLYPH_SET 19
+
+/**
+ * @brief xcb_render_free_glyph_set_request_t
+ **/
+typedef struct xcb_render_free_glyph_set_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_render_glyphset_t glyphset; /**< */
+} xcb_render_free_glyph_set_request_t;
+
+/** Opcode for xcb_render_add_glyphs. */
+#define XCB_RENDER_ADD_GLYPHS 20
+
+/**
+ * @brief xcb_render_add_glyphs_request_t
+ **/
+typedef struct xcb_render_add_glyphs_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_render_glyphset_t glyphset; /**< */
+ uint32_t glyphs_len; /**< */
+} xcb_render_add_glyphs_request_t;
+
+/** Opcode for xcb_render_free_glyphs. */
+#define XCB_RENDER_FREE_GLYPHS 22
+
+/**
+ * @brief xcb_render_free_glyphs_request_t
+ **/
+typedef struct xcb_render_free_glyphs_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_render_glyphset_t glyphset; /**< */
+} xcb_render_free_glyphs_request_t;
+
+/** Opcode for xcb_render_composite_glyphs_8. */
+#define XCB_RENDER_COMPOSITE_GLYPHS_8 23
+
+/**
+ * @brief xcb_render_composite_glyphs_8_request_t
+ **/
+typedef struct xcb_render_composite_glyphs_8_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ uint8_t op; /**< */
+ uint8_t pad0[3]; /**< */
+ xcb_render_picture_t src; /**< */
+ xcb_render_picture_t dst; /**< */
+ xcb_render_pictformat_t mask_format; /**< */
+ xcb_render_glyphset_t glyphset; /**< */
+ int16_t src_x; /**< */
+ int16_t src_y; /**< */
+} xcb_render_composite_glyphs_8_request_t;
+
+/** Opcode for xcb_render_composite_glyphs_16. */
+#define XCB_RENDER_COMPOSITE_GLYPHS_16 24
+
+/**
+ * @brief xcb_render_composite_glyphs_16_request_t
+ **/
+typedef struct xcb_render_composite_glyphs_16_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ uint8_t op; /**< */
+ uint8_t pad0[3]; /**< */
+ xcb_render_picture_t src; /**< */
+ xcb_render_picture_t dst; /**< */
+ xcb_render_pictformat_t mask_format; /**< */
+ xcb_render_glyphset_t glyphset; /**< */
+ int16_t src_x; /**< */
+ int16_t src_y; /**< */
+} xcb_render_composite_glyphs_16_request_t;
+
+/** Opcode for xcb_render_composite_glyphs_32. */
+#define XCB_RENDER_COMPOSITE_GLYPHS_32 25
+
+/**
+ * @brief xcb_render_composite_glyphs_32_request_t
+ **/
+typedef struct xcb_render_composite_glyphs_32_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ uint8_t op; /**< */
+ uint8_t pad0[3]; /**< */
+ xcb_render_picture_t src; /**< */
+ xcb_render_picture_t dst; /**< */
+ xcb_render_pictformat_t mask_format; /**< */
+ xcb_render_glyphset_t glyphset; /**< */
+ int16_t src_x; /**< */
+ int16_t src_y; /**< */
+} xcb_render_composite_glyphs_32_request_t;
+
+/** Opcode for xcb_render_fill_rectangles. */
+#define XCB_RENDER_FILL_RECTANGLES 26
+
+/**
+ * @brief xcb_render_fill_rectangles_request_t
+ **/
+typedef struct xcb_render_fill_rectangles_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ uint8_t op; /**< */
+ uint8_t pad0[3]; /**< */
+ xcb_render_picture_t dst; /**< */
+ xcb_render_color_t color; /**< */
+} xcb_render_fill_rectangles_request_t;
+
+/** Opcode for xcb_render_create_cursor. */
+#define XCB_RENDER_CREATE_CURSOR 27
+
+/**
+ * @brief xcb_render_create_cursor_request_t
+ **/
+typedef struct xcb_render_create_cursor_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_cursor_t cid; /**< */
+ xcb_render_picture_t source; /**< */
+ uint16_t x; /**< */
+ uint16_t y; /**< */
+} xcb_render_create_cursor_request_t;
+
+/**
+ * @brief xcb_render_transform_t
+ **/
+typedef struct xcb_render_transform_t {
+ xcb_render_fixed_t matrix11; /**< */
+ xcb_render_fixed_t matrix12; /**< */
+ xcb_render_fixed_t matrix13; /**< */
+ xcb_render_fixed_t matrix21; /**< */
+ xcb_render_fixed_t matrix22; /**< */
+ xcb_render_fixed_t matrix23; /**< */
+ xcb_render_fixed_t matrix31; /**< */
+ xcb_render_fixed_t matrix32; /**< */
+ xcb_render_fixed_t matrix33; /**< */
+} xcb_render_transform_t;
+
+/**
+ * @brief xcb_render_transform_iterator_t
+ **/
+typedef struct xcb_render_transform_iterator_t {
+ xcb_render_transform_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_transform_iterator_t;
+
+/** Opcode for xcb_render_set_picture_transform. */
+#define XCB_RENDER_SET_PICTURE_TRANSFORM 28
+
+/**
+ * @brief xcb_render_set_picture_transform_request_t
+ **/
+typedef struct xcb_render_set_picture_transform_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_render_picture_t picture; /**< */
+ xcb_render_transform_t transform; /**< */
+} xcb_render_set_picture_transform_request_t;
+
+/**
+ * @brief xcb_render_query_filters_cookie_t
+ **/
+typedef struct xcb_render_query_filters_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_render_query_filters_cookie_t;
+
+/** Opcode for xcb_render_query_filters. */
+#define XCB_RENDER_QUERY_FILTERS 29
+
+/**
+ * @brief xcb_render_query_filters_request_t
+ **/
+typedef struct xcb_render_query_filters_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_drawable_t drawable; /**< */
+} xcb_render_query_filters_request_t;
+
+/**
+ * @brief xcb_render_query_filters_reply_t
+ **/
+typedef struct xcb_render_query_filters_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint32_t num_aliases; /**< */
+ uint32_t num_filters; /**< */
+ uint8_t pad1[16]; /**< */
+} xcb_render_query_filters_reply_t;
+
+/** Opcode for xcb_render_set_picture_filter. */
+#define XCB_RENDER_SET_PICTURE_FILTER 30
+
+/**
+ * @brief xcb_render_set_picture_filter_request_t
+ **/
+typedef struct xcb_render_set_picture_filter_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_render_picture_t picture; /**< */
+ uint16_t filter_len; /**< */
+ uint8_t pad0[2]; /**< */
+} xcb_render_set_picture_filter_request_t;
+
+/**
+ * @brief xcb_render_animcursorelt_t
+ **/
+typedef struct xcb_render_animcursorelt_t {
+ xcb_cursor_t cursor; /**< */
+ uint32_t delay; /**< */
+} xcb_render_animcursorelt_t;
+
+/**
+ * @brief xcb_render_animcursorelt_iterator_t
+ **/
+typedef struct xcb_render_animcursorelt_iterator_t {
+ xcb_render_animcursorelt_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_animcursorelt_iterator_t;
+
+/** Opcode for xcb_render_create_anim_cursor. */
+#define XCB_RENDER_CREATE_ANIM_CURSOR 31
+
+/**
+ * @brief xcb_render_create_anim_cursor_request_t
+ **/
+typedef struct xcb_render_create_anim_cursor_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_cursor_t cid; /**< */
+} xcb_render_create_anim_cursor_request_t;
+
+/**
+ * @brief xcb_render_spanfix_t
+ **/
+typedef struct xcb_render_spanfix_t {
+ xcb_render_fixed_t l; /**< */
+ xcb_render_fixed_t r; /**< */
+ xcb_render_fixed_t y; /**< */
+} xcb_render_spanfix_t;
+
+/**
+ * @brief xcb_render_spanfix_iterator_t
+ **/
+typedef struct xcb_render_spanfix_iterator_t {
+ xcb_render_spanfix_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_spanfix_iterator_t;
+
+/**
+ * @brief xcb_render_trap_t
+ **/
+typedef struct xcb_render_trap_t {
+ xcb_render_spanfix_t top; /**< */
+ xcb_render_spanfix_t bot; /**< */
+} xcb_render_trap_t;
+
+/**
+ * @brief xcb_render_trap_iterator_t
+ **/
+typedef struct xcb_render_trap_iterator_t {
+ xcb_render_trap_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_render_trap_iterator_t;
+
+/** Opcode for xcb_render_add_traps. */
+#define XCB_RENDER_ADD_TRAPS 32
+
+/**
+ * @brief xcb_render_add_traps_request_t
+ **/
+typedef struct xcb_render_add_traps_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_render_picture_t picture; /**< */
+ int16_t x_off; /**< */
+ int16_t y_off; /**< */
+} xcb_render_add_traps_request_t;
+
+/** Opcode for xcb_render_create_solid_fill. */
+#define XCB_RENDER_CREATE_SOLID_FILL 33
+
+/**
+ * @brief xcb_render_create_solid_fill_request_t
+ **/
+typedef struct xcb_render_create_solid_fill_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_render_picture_t picture; /**< */
+ xcb_render_color_t color; /**< */
+} xcb_render_create_solid_fill_request_t;
+
+/** Opcode for xcb_render_create_linear_gradient. */
+#define XCB_RENDER_CREATE_LINEAR_GRADIENT 34
+
+/**
+ * @brief xcb_render_create_linear_gradient_request_t
+ **/
+typedef struct xcb_render_create_linear_gradient_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_render_picture_t picture; /**< */
+ xcb_render_pointfix_t p1; /**< */
+ xcb_render_pointfix_t p2; /**< */
+ uint32_t num_stops; /**< */
+} xcb_render_create_linear_gradient_request_t;
+
+/** Opcode for xcb_render_create_radial_gradient. */
+#define XCB_RENDER_CREATE_RADIAL_GRADIENT 35
+
+/**
+ * @brief xcb_render_create_radial_gradient_request_t
+ **/
+typedef struct xcb_render_create_radial_gradient_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_render_picture_t picture; /**< */
+ xcb_render_pointfix_t inner; /**< */
+ xcb_render_pointfix_t outer; /**< */
+ xcb_render_fixed_t inner_radius; /**< */
+ xcb_render_fixed_t outer_radius; /**< */
+ uint32_t num_stops; /**< */
+} xcb_render_create_radial_gradient_request_t;
+
+/** Opcode for xcb_render_create_conical_gradient. */
+#define XCB_RENDER_CREATE_CONICAL_GRADIENT 36
+
+/**
+ * @brief xcb_render_create_conical_gradient_request_t
+ **/
+typedef struct xcb_render_create_conical_gradient_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_render_picture_t picture; /**< */
+ xcb_render_pointfix_t center; /**< */
+ xcb_render_fixed_t angle; /**< */
+ uint32_t num_stops; /**< */
+} xcb_render_create_conical_gradient_request_t;
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_glyph_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_glyph_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_glyph_next
+ **
+ ** @param xcb_render_glyph_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_glyph_next (xcb_render_glyph_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_glyph_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_glyph_end
+ **
+ ** @param xcb_render_glyph_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_glyph_end (xcb_render_glyph_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_glyphset_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_glyphset_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_glyphset_next
+ **
+ ** @param xcb_render_glyphset_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_glyphset_next (xcb_render_glyphset_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_glyphset_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_glyphset_end
+ **
+ ** @param xcb_render_glyphset_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_glyphset_end (xcb_render_glyphset_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_picture_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_picture_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_picture_next
+ **
+ ** @param xcb_render_picture_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_picture_next (xcb_render_picture_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_picture_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_picture_end
+ **
+ ** @param xcb_render_picture_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_picture_end (xcb_render_picture_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_pictformat_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_pictformat_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_pictformat_next
+ **
+ ** @param xcb_render_pictformat_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_pictformat_next (xcb_render_pictformat_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_pictformat_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_pictformat_end
+ **
+ ** @param xcb_render_pictformat_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_pictformat_end (xcb_render_pictformat_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_fixed_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_fixed_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_fixed_next
+ **
+ ** @param xcb_render_fixed_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_fixed_next (xcb_render_fixed_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_fixed_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_fixed_end
+ **
+ ** @param xcb_render_fixed_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_fixed_end (xcb_render_fixed_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_directformat_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_directformat_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_directformat_next
+ **
+ ** @param xcb_render_directformat_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_directformat_next (xcb_render_directformat_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_directformat_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_directformat_end
+ **
+ ** @param xcb_render_directformat_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_directformat_end (xcb_render_directformat_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_pictforminfo_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_pictforminfo_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_pictforminfo_next
+ **
+ ** @param xcb_render_pictforminfo_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_pictforminfo_next (xcb_render_pictforminfo_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_pictforminfo_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_pictforminfo_end
+ **
+ ** @param xcb_render_pictforminfo_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_pictforminfo_end (xcb_render_pictforminfo_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_pictvisual_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_pictvisual_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_pictvisual_next
+ **
+ ** @param xcb_render_pictvisual_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_pictvisual_next (xcb_render_pictvisual_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_pictvisual_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_pictvisual_end
+ **
+ ** @param xcb_render_pictvisual_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_pictvisual_end (xcb_render_pictvisual_iterator_t i /**< */);
+
+int
+xcb_render_pictdepth_sizeof (const void *_buffer /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_render_pictvisual_t * xcb_render_pictdepth_visuals
+ **
+ ** @param const xcb_render_pictdepth_t *R
+ ** @returns xcb_render_pictvisual_t *
+ **
+ *****************************************************************************/
+
+xcb_render_pictvisual_t *
+xcb_render_pictdepth_visuals (const xcb_render_pictdepth_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_render_pictdepth_visuals_length
+ **
+ ** @param const xcb_render_pictdepth_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_render_pictdepth_visuals_length (const xcb_render_pictdepth_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_render_pictvisual_iterator_t xcb_render_pictdepth_visuals_iterator
+ **
+ ** @param const xcb_render_pictdepth_t *R
+ ** @returns xcb_render_pictvisual_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_render_pictvisual_iterator_t
+xcb_render_pictdepth_visuals_iterator (const xcb_render_pictdepth_t *R /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_pictdepth_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_pictdepth_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_pictdepth_next
+ **
+ ** @param xcb_render_pictdepth_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_pictdepth_next (xcb_render_pictdepth_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_pictdepth_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_pictdepth_end
+ **
+ ** @param xcb_render_pictdepth_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_pictdepth_end (xcb_render_pictdepth_iterator_t i /**< */);
+
+int
+xcb_render_pictscreen_sizeof (const void *_buffer /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_render_pictscreen_depths_length
+ **
+ ** @param const xcb_render_pictscreen_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_render_pictscreen_depths_length (const xcb_render_pictscreen_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_render_pictdepth_iterator_t xcb_render_pictscreen_depths_iterator
+ **
+ ** @param const xcb_render_pictscreen_t *R
+ ** @returns xcb_render_pictdepth_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_render_pictdepth_iterator_t
+xcb_render_pictscreen_depths_iterator (const xcb_render_pictscreen_t *R /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_pictscreen_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_pictscreen_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_pictscreen_next
+ **
+ ** @param xcb_render_pictscreen_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_pictscreen_next (xcb_render_pictscreen_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_pictscreen_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_pictscreen_end
+ **
+ ** @param xcb_render_pictscreen_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_pictscreen_end (xcb_render_pictscreen_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_indexvalue_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_indexvalue_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_indexvalue_next
+ **
+ ** @param xcb_render_indexvalue_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_indexvalue_next (xcb_render_indexvalue_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_indexvalue_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_indexvalue_end
+ **
+ ** @param xcb_render_indexvalue_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_indexvalue_end (xcb_render_indexvalue_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_color_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_color_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_color_next
+ **
+ ** @param xcb_render_color_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_color_next (xcb_render_color_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_color_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_color_end
+ **
+ ** @param xcb_render_color_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_color_end (xcb_render_color_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_pointfix_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_pointfix_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_pointfix_next
+ **
+ ** @param xcb_render_pointfix_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_pointfix_next (xcb_render_pointfix_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_pointfix_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_pointfix_end
+ **
+ ** @param xcb_render_pointfix_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_pointfix_end (xcb_render_pointfix_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_linefix_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_linefix_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_linefix_next
+ **
+ ** @param xcb_render_linefix_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_linefix_next (xcb_render_linefix_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_linefix_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_linefix_end
+ **
+ ** @param xcb_render_linefix_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_linefix_end (xcb_render_linefix_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_triangle_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_triangle_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_triangle_next
+ **
+ ** @param xcb_render_triangle_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_triangle_next (xcb_render_triangle_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_triangle_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_triangle_end
+ **
+ ** @param xcb_render_triangle_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_triangle_end (xcb_render_triangle_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_trapezoid_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_trapezoid_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_trapezoid_next
+ **
+ ** @param xcb_render_trapezoid_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_trapezoid_next (xcb_render_trapezoid_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_trapezoid_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_trapezoid_end
+ **
+ ** @param xcb_render_trapezoid_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_trapezoid_end (xcb_render_trapezoid_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_glyphinfo_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_glyphinfo_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_glyphinfo_next
+ **
+ ** @param xcb_render_glyphinfo_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_glyphinfo_next (xcb_render_glyphinfo_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_glyphinfo_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_glyphinfo_end
+ **
+ ** @param xcb_render_glyphinfo_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_glyphinfo_end (xcb_render_glyphinfo_iterator_t i /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_render_query_version_cookie_t xcb_render_query_version
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint32_t client_major_version
+ ** @param uint32_t client_minor_version
+ ** @returns xcb_render_query_version_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_render_query_version_cookie_t
+xcb_render_query_version (xcb_connection_t *c /**< */,
+ uint32_t client_major_version /**< */,
+ uint32_t client_minor_version /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_render_query_version_cookie_t xcb_render_query_version_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint32_t client_major_version
+ ** @param uint32_t client_minor_version
+ ** @returns xcb_render_query_version_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_render_query_version_cookie_t
+xcb_render_query_version_unchecked (xcb_connection_t *c /**< */,
+ uint32_t client_major_version /**< */,
+ uint32_t client_minor_version /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_render_query_version_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_render_query_version_reply_t * xcb_render_query_version_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_query_version_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_render_query_version_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_render_query_version_reply_t *
+xcb_render_query_version_reply (xcb_connection_t *c /**< */,
+ xcb_render_query_version_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_render_query_pict_formats_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_render_query_pict_formats_cookie_t xcb_render_query_pict_formats
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_render_query_pict_formats_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_render_query_pict_formats_cookie_t
+xcb_render_query_pict_formats (xcb_connection_t *c /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_render_query_pict_formats_cookie_t xcb_render_query_pict_formats_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_render_query_pict_formats_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_render_query_pict_formats_cookie_t
+xcb_render_query_pict_formats_unchecked (xcb_connection_t *c /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_render_pictforminfo_t * xcb_render_query_pict_formats_formats
+ **
+ ** @param const xcb_render_query_pict_formats_reply_t *R
+ ** @returns xcb_render_pictforminfo_t *
+ **
+ *****************************************************************************/
+
+xcb_render_pictforminfo_t *
+xcb_render_query_pict_formats_formats (const xcb_render_query_pict_formats_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_render_query_pict_formats_formats_length
+ **
+ ** @param const xcb_render_query_pict_formats_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_render_query_pict_formats_formats_length (const xcb_render_query_pict_formats_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_render_pictforminfo_iterator_t xcb_render_query_pict_formats_formats_iterator
+ **
+ ** @param const xcb_render_query_pict_formats_reply_t *R
+ ** @returns xcb_render_pictforminfo_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_render_pictforminfo_iterator_t
+xcb_render_query_pict_formats_formats_iterator (const xcb_render_query_pict_formats_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_render_query_pict_formats_screens_length
+ **
+ ** @param const xcb_render_query_pict_formats_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_render_query_pict_formats_screens_length (const xcb_render_query_pict_formats_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_render_pictscreen_iterator_t xcb_render_query_pict_formats_screens_iterator
+ **
+ ** @param const xcb_render_query_pict_formats_reply_t *R
+ ** @returns xcb_render_pictscreen_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_render_pictscreen_iterator_t
+xcb_render_query_pict_formats_screens_iterator (const xcb_render_query_pict_formats_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** uint32_t * xcb_render_query_pict_formats_subpixels
+ **
+ ** @param const xcb_render_query_pict_formats_reply_t *R
+ ** @returns uint32_t *
+ **
+ *****************************************************************************/
+
+uint32_t *
+xcb_render_query_pict_formats_subpixels (const xcb_render_query_pict_formats_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_render_query_pict_formats_subpixels_length
+ **
+ ** @param const xcb_render_query_pict_formats_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_render_query_pict_formats_subpixels_length (const xcb_render_query_pict_formats_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_query_pict_formats_subpixels_end
+ **
+ ** @param const xcb_render_query_pict_formats_reply_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_query_pict_formats_subpixels_end (const xcb_render_query_pict_formats_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_render_query_pict_formats_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_render_query_pict_formats_reply_t * xcb_render_query_pict_formats_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_query_pict_formats_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_render_query_pict_formats_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_render_query_pict_formats_reply_t *
+xcb_render_query_pict_formats_reply (xcb_connection_t *c /**< */,
+ xcb_render_query_pict_formats_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_render_query_pict_index_values_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_render_query_pict_index_values_cookie_t xcb_render_query_pict_index_values
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_pictformat_t format
+ ** @returns xcb_render_query_pict_index_values_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_render_query_pict_index_values_cookie_t
+xcb_render_query_pict_index_values (xcb_connection_t *c /**< */,
+ xcb_render_pictformat_t format /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_render_query_pict_index_values_cookie_t xcb_render_query_pict_index_values_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_pictformat_t format
+ ** @returns xcb_render_query_pict_index_values_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_render_query_pict_index_values_cookie_t
+xcb_render_query_pict_index_values_unchecked (xcb_connection_t *c /**< */,
+ xcb_render_pictformat_t format /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_render_indexvalue_t * xcb_render_query_pict_index_values_values
+ **
+ ** @param const xcb_render_query_pict_index_values_reply_t *R
+ ** @returns xcb_render_indexvalue_t *
+ **
+ *****************************************************************************/
+
+xcb_render_indexvalue_t *
+xcb_render_query_pict_index_values_values (const xcb_render_query_pict_index_values_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_render_query_pict_index_values_values_length
+ **
+ ** @param const xcb_render_query_pict_index_values_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_render_query_pict_index_values_values_length (const xcb_render_query_pict_index_values_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_render_indexvalue_iterator_t xcb_render_query_pict_index_values_values_iterator
+ **
+ ** @param const xcb_render_query_pict_index_values_reply_t *R
+ ** @returns xcb_render_indexvalue_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_render_indexvalue_iterator_t
+xcb_render_query_pict_index_values_values_iterator (const xcb_render_query_pict_index_values_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_render_query_pict_index_values_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_render_query_pict_index_values_reply_t * xcb_render_query_pict_index_values_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_query_pict_index_values_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_render_query_pict_index_values_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_render_query_pict_index_values_reply_t *
+xcb_render_query_pict_index_values_reply (xcb_connection_t *c /**< */,
+ xcb_render_query_pict_index_values_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_render_create_picture_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_create_picture_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t pid
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_render_pictformat_t format
+ ** @param uint32_t value_mask
+ ** @param const uint32_t *value_list
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_create_picture_checked (xcb_connection_t *c /**< */,
+ xcb_render_picture_t pid /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_render_pictformat_t format /**< */,
+ uint32_t value_mask /**< */,
+ const uint32_t *value_list /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_create_picture
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t pid
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_render_pictformat_t format
+ ** @param uint32_t value_mask
+ ** @param const uint32_t *value_list
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_create_picture (xcb_connection_t *c /**< */,
+ xcb_render_picture_t pid /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_render_pictformat_t format /**< */,
+ uint32_t value_mask /**< */,
+ const uint32_t *value_list /**< */);
+
+int
+xcb_render_change_picture_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_change_picture_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @param uint32_t value_mask
+ ** @param const uint32_t *value_list
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_change_picture_checked (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */,
+ uint32_t value_mask /**< */,
+ const uint32_t *value_list /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_change_picture
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @param uint32_t value_mask
+ ** @param const uint32_t *value_list
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_change_picture (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */,
+ uint32_t value_mask /**< */,
+ const uint32_t *value_list /**< */);
+
+int
+xcb_render_set_picture_clip_rectangles_sizeof (const void *_buffer /**< */,
+ uint32_t rectangles_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_set_picture_clip_rectangles_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @param int16_t clip_x_origin
+ ** @param int16_t clip_y_origin
+ ** @param uint32_t rectangles_len
+ ** @param const xcb_rectangle_t *rectangles
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_set_picture_clip_rectangles_checked (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */,
+ int16_t clip_x_origin /**< */,
+ int16_t clip_y_origin /**< */,
+ uint32_t rectangles_len /**< */,
+ const xcb_rectangle_t *rectangles /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_set_picture_clip_rectangles
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @param int16_t clip_x_origin
+ ** @param int16_t clip_y_origin
+ ** @param uint32_t rectangles_len
+ ** @param const xcb_rectangle_t *rectangles
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_set_picture_clip_rectangles (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */,
+ int16_t clip_x_origin /**< */,
+ int16_t clip_y_origin /**< */,
+ uint32_t rectangles_len /**< */,
+ const xcb_rectangle_t *rectangles /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_free_picture_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_free_picture_checked (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_free_picture
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_free_picture (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_composite_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t op
+ ** @param xcb_render_picture_t src
+ ** @param xcb_render_picture_t mask
+ ** @param xcb_render_picture_t dst
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param int16_t mask_x
+ ** @param int16_t mask_y
+ ** @param int16_t dst_x
+ ** @param int16_t dst_y
+ ** @param uint16_t width
+ ** @param uint16_t height
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_composite_checked (xcb_connection_t *c /**< */,
+ uint8_t op /**< */,
+ xcb_render_picture_t src /**< */,
+ xcb_render_picture_t mask /**< */,
+ xcb_render_picture_t dst /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ int16_t mask_x /**< */,
+ int16_t mask_y /**< */,
+ int16_t dst_x /**< */,
+ int16_t dst_y /**< */,
+ uint16_t width /**< */,
+ uint16_t height /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_composite
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t op
+ ** @param xcb_render_picture_t src
+ ** @param xcb_render_picture_t mask
+ ** @param xcb_render_picture_t dst
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param int16_t mask_x
+ ** @param int16_t mask_y
+ ** @param int16_t dst_x
+ ** @param int16_t dst_y
+ ** @param uint16_t width
+ ** @param uint16_t height
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_composite (xcb_connection_t *c /**< */,
+ uint8_t op /**< */,
+ xcb_render_picture_t src /**< */,
+ xcb_render_picture_t mask /**< */,
+ xcb_render_picture_t dst /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ int16_t mask_x /**< */,
+ int16_t mask_y /**< */,
+ int16_t dst_x /**< */,
+ int16_t dst_y /**< */,
+ uint16_t width /**< */,
+ uint16_t height /**< */);
+
+int
+xcb_render_trapezoids_sizeof (const void *_buffer /**< */,
+ uint32_t traps_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_trapezoids_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t op
+ ** @param xcb_render_picture_t src
+ ** @param xcb_render_picture_t dst
+ ** @param xcb_render_pictformat_t mask_format
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param uint32_t traps_len
+ ** @param const xcb_render_trapezoid_t *traps
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_trapezoids_checked (xcb_connection_t *c /**< */,
+ uint8_t op /**< */,
+ xcb_render_picture_t src /**< */,
+ xcb_render_picture_t dst /**< */,
+ xcb_render_pictformat_t mask_format /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ uint32_t traps_len /**< */,
+ const xcb_render_trapezoid_t *traps /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_trapezoids
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t op
+ ** @param xcb_render_picture_t src
+ ** @param xcb_render_picture_t dst
+ ** @param xcb_render_pictformat_t mask_format
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param uint32_t traps_len
+ ** @param const xcb_render_trapezoid_t *traps
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_trapezoids (xcb_connection_t *c /**< */,
+ uint8_t op /**< */,
+ xcb_render_picture_t src /**< */,
+ xcb_render_picture_t dst /**< */,
+ xcb_render_pictformat_t mask_format /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ uint32_t traps_len /**< */,
+ const xcb_render_trapezoid_t *traps /**< */);
+
+int
+xcb_render_triangles_sizeof (const void *_buffer /**< */,
+ uint32_t triangles_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_triangles_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t op
+ ** @param xcb_render_picture_t src
+ ** @param xcb_render_picture_t dst
+ ** @param xcb_render_pictformat_t mask_format
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param uint32_t triangles_len
+ ** @param const xcb_render_triangle_t *triangles
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_triangles_checked (xcb_connection_t *c /**< */,
+ uint8_t op /**< */,
+ xcb_render_picture_t src /**< */,
+ xcb_render_picture_t dst /**< */,
+ xcb_render_pictformat_t mask_format /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ uint32_t triangles_len /**< */,
+ const xcb_render_triangle_t *triangles /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_triangles
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t op
+ ** @param xcb_render_picture_t src
+ ** @param xcb_render_picture_t dst
+ ** @param xcb_render_pictformat_t mask_format
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param uint32_t triangles_len
+ ** @param const xcb_render_triangle_t *triangles
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_triangles (xcb_connection_t *c /**< */,
+ uint8_t op /**< */,
+ xcb_render_picture_t src /**< */,
+ xcb_render_picture_t dst /**< */,
+ xcb_render_pictformat_t mask_format /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ uint32_t triangles_len /**< */,
+ const xcb_render_triangle_t *triangles /**< */);
+
+int
+xcb_render_tri_strip_sizeof (const void *_buffer /**< */,
+ uint32_t points_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_tri_strip_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t op
+ ** @param xcb_render_picture_t src
+ ** @param xcb_render_picture_t dst
+ ** @param xcb_render_pictformat_t mask_format
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param uint32_t points_len
+ ** @param const xcb_render_pointfix_t *points
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_tri_strip_checked (xcb_connection_t *c /**< */,
+ uint8_t op /**< */,
+ xcb_render_picture_t src /**< */,
+ xcb_render_picture_t dst /**< */,
+ xcb_render_pictformat_t mask_format /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ uint32_t points_len /**< */,
+ const xcb_render_pointfix_t *points /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_tri_strip
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t op
+ ** @param xcb_render_picture_t src
+ ** @param xcb_render_picture_t dst
+ ** @param xcb_render_pictformat_t mask_format
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param uint32_t points_len
+ ** @param const xcb_render_pointfix_t *points
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_tri_strip (xcb_connection_t *c /**< */,
+ uint8_t op /**< */,
+ xcb_render_picture_t src /**< */,
+ xcb_render_picture_t dst /**< */,
+ xcb_render_pictformat_t mask_format /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ uint32_t points_len /**< */,
+ const xcb_render_pointfix_t *points /**< */);
+
+int
+xcb_render_tri_fan_sizeof (const void *_buffer /**< */,
+ uint32_t points_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_tri_fan_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t op
+ ** @param xcb_render_picture_t src
+ ** @param xcb_render_picture_t dst
+ ** @param xcb_render_pictformat_t mask_format
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param uint32_t points_len
+ ** @param const xcb_render_pointfix_t *points
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_tri_fan_checked (xcb_connection_t *c /**< */,
+ uint8_t op /**< */,
+ xcb_render_picture_t src /**< */,
+ xcb_render_picture_t dst /**< */,
+ xcb_render_pictformat_t mask_format /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ uint32_t points_len /**< */,
+ const xcb_render_pointfix_t *points /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_tri_fan
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t op
+ ** @param xcb_render_picture_t src
+ ** @param xcb_render_picture_t dst
+ ** @param xcb_render_pictformat_t mask_format
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param uint32_t points_len
+ ** @param const xcb_render_pointfix_t *points
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_tri_fan (xcb_connection_t *c /**< */,
+ uint8_t op /**< */,
+ xcb_render_picture_t src /**< */,
+ xcb_render_picture_t dst /**< */,
+ xcb_render_pictformat_t mask_format /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ uint32_t points_len /**< */,
+ const xcb_render_pointfix_t *points /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_create_glyph_set_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_glyphset_t gsid
+ ** @param xcb_render_pictformat_t format
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_create_glyph_set_checked (xcb_connection_t *c /**< */,
+ xcb_render_glyphset_t gsid /**< */,
+ xcb_render_pictformat_t format /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_create_glyph_set
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_glyphset_t gsid
+ ** @param xcb_render_pictformat_t format
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_create_glyph_set (xcb_connection_t *c /**< */,
+ xcb_render_glyphset_t gsid /**< */,
+ xcb_render_pictformat_t format /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_reference_glyph_set_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_glyphset_t gsid
+ ** @param xcb_render_glyphset_t existing
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_reference_glyph_set_checked (xcb_connection_t *c /**< */,
+ xcb_render_glyphset_t gsid /**< */,
+ xcb_render_glyphset_t existing /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_reference_glyph_set
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_glyphset_t gsid
+ ** @param xcb_render_glyphset_t existing
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_reference_glyph_set (xcb_connection_t *c /**< */,
+ xcb_render_glyphset_t gsid /**< */,
+ xcb_render_glyphset_t existing /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_free_glyph_set_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_glyphset_t glyphset
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_free_glyph_set_checked (xcb_connection_t *c /**< */,
+ xcb_render_glyphset_t glyphset /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_free_glyph_set
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_glyphset_t glyphset
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_free_glyph_set (xcb_connection_t *c /**< */,
+ xcb_render_glyphset_t glyphset /**< */);
+
+int
+xcb_render_add_glyphs_sizeof (const void *_buffer /**< */,
+ uint32_t data_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_add_glyphs_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_glyphset_t glyphset
+ ** @param uint32_t glyphs_len
+ ** @param const uint32_t *glyphids
+ ** @param const xcb_render_glyphinfo_t *glyphs
+ ** @param uint32_t data_len
+ ** @param const uint8_t *data
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_add_glyphs_checked (xcb_connection_t *c /**< */,
+ xcb_render_glyphset_t glyphset /**< */,
+ uint32_t glyphs_len /**< */,
+ const uint32_t *glyphids /**< */,
+ const xcb_render_glyphinfo_t *glyphs /**< */,
+ uint32_t data_len /**< */,
+ const uint8_t *data /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_add_glyphs
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_glyphset_t glyphset
+ ** @param uint32_t glyphs_len
+ ** @param const uint32_t *glyphids
+ ** @param const xcb_render_glyphinfo_t *glyphs
+ ** @param uint32_t data_len
+ ** @param const uint8_t *data
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_add_glyphs (xcb_connection_t *c /**< */,
+ xcb_render_glyphset_t glyphset /**< */,
+ uint32_t glyphs_len /**< */,
+ const uint32_t *glyphids /**< */,
+ const xcb_render_glyphinfo_t *glyphs /**< */,
+ uint32_t data_len /**< */,
+ const uint8_t *data /**< */);
+
+int
+xcb_render_free_glyphs_sizeof (const void *_buffer /**< */,
+ uint32_t glyphs_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_free_glyphs_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_glyphset_t glyphset
+ ** @param uint32_t glyphs_len
+ ** @param const xcb_render_glyph_t *glyphs
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_free_glyphs_checked (xcb_connection_t *c /**< */,
+ xcb_render_glyphset_t glyphset /**< */,
+ uint32_t glyphs_len /**< */,
+ const xcb_render_glyph_t *glyphs /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_free_glyphs
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_glyphset_t glyphset
+ ** @param uint32_t glyphs_len
+ ** @param const xcb_render_glyph_t *glyphs
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_free_glyphs (xcb_connection_t *c /**< */,
+ xcb_render_glyphset_t glyphset /**< */,
+ uint32_t glyphs_len /**< */,
+ const xcb_render_glyph_t *glyphs /**< */);
+
+int
+xcb_render_composite_glyphs_8_sizeof (const void *_buffer /**< */,
+ uint32_t glyphcmds_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_composite_glyphs_8_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t op
+ ** @param xcb_render_picture_t src
+ ** @param xcb_render_picture_t dst
+ ** @param xcb_render_pictformat_t mask_format
+ ** @param xcb_render_glyphset_t glyphset
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param uint32_t glyphcmds_len
+ ** @param const uint8_t *glyphcmds
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_composite_glyphs_8_checked (xcb_connection_t *c /**< */,
+ uint8_t op /**< */,
+ xcb_render_picture_t src /**< */,
+ xcb_render_picture_t dst /**< */,
+ xcb_render_pictformat_t mask_format /**< */,
+ xcb_render_glyphset_t glyphset /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ uint32_t glyphcmds_len /**< */,
+ const uint8_t *glyphcmds /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_composite_glyphs_8
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t op
+ ** @param xcb_render_picture_t src
+ ** @param xcb_render_picture_t dst
+ ** @param xcb_render_pictformat_t mask_format
+ ** @param xcb_render_glyphset_t glyphset
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param uint32_t glyphcmds_len
+ ** @param const uint8_t *glyphcmds
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_composite_glyphs_8 (xcb_connection_t *c /**< */,
+ uint8_t op /**< */,
+ xcb_render_picture_t src /**< */,
+ xcb_render_picture_t dst /**< */,
+ xcb_render_pictformat_t mask_format /**< */,
+ xcb_render_glyphset_t glyphset /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ uint32_t glyphcmds_len /**< */,
+ const uint8_t *glyphcmds /**< */);
+
+int
+xcb_render_composite_glyphs_16_sizeof (const void *_buffer /**< */,
+ uint32_t glyphcmds_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_composite_glyphs_16_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t op
+ ** @param xcb_render_picture_t src
+ ** @param xcb_render_picture_t dst
+ ** @param xcb_render_pictformat_t mask_format
+ ** @param xcb_render_glyphset_t glyphset
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param uint32_t glyphcmds_len
+ ** @param const uint8_t *glyphcmds
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_composite_glyphs_16_checked (xcb_connection_t *c /**< */,
+ uint8_t op /**< */,
+ xcb_render_picture_t src /**< */,
+ xcb_render_picture_t dst /**< */,
+ xcb_render_pictformat_t mask_format /**< */,
+ xcb_render_glyphset_t glyphset /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ uint32_t glyphcmds_len /**< */,
+ const uint8_t *glyphcmds /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_composite_glyphs_16
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t op
+ ** @param xcb_render_picture_t src
+ ** @param xcb_render_picture_t dst
+ ** @param xcb_render_pictformat_t mask_format
+ ** @param xcb_render_glyphset_t glyphset
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param uint32_t glyphcmds_len
+ ** @param const uint8_t *glyphcmds
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_composite_glyphs_16 (xcb_connection_t *c /**< */,
+ uint8_t op /**< */,
+ xcb_render_picture_t src /**< */,
+ xcb_render_picture_t dst /**< */,
+ xcb_render_pictformat_t mask_format /**< */,
+ xcb_render_glyphset_t glyphset /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ uint32_t glyphcmds_len /**< */,
+ const uint8_t *glyphcmds /**< */);
+
+int
+xcb_render_composite_glyphs_32_sizeof (const void *_buffer /**< */,
+ uint32_t glyphcmds_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_composite_glyphs_32_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t op
+ ** @param xcb_render_picture_t src
+ ** @param xcb_render_picture_t dst
+ ** @param xcb_render_pictformat_t mask_format
+ ** @param xcb_render_glyphset_t glyphset
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param uint32_t glyphcmds_len
+ ** @param const uint8_t *glyphcmds
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_composite_glyphs_32_checked (xcb_connection_t *c /**< */,
+ uint8_t op /**< */,
+ xcb_render_picture_t src /**< */,
+ xcb_render_picture_t dst /**< */,
+ xcb_render_pictformat_t mask_format /**< */,
+ xcb_render_glyphset_t glyphset /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ uint32_t glyphcmds_len /**< */,
+ const uint8_t *glyphcmds /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_composite_glyphs_32
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t op
+ ** @param xcb_render_picture_t src
+ ** @param xcb_render_picture_t dst
+ ** @param xcb_render_pictformat_t mask_format
+ ** @param xcb_render_glyphset_t glyphset
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param uint32_t glyphcmds_len
+ ** @param const uint8_t *glyphcmds
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_composite_glyphs_32 (xcb_connection_t *c /**< */,
+ uint8_t op /**< */,
+ xcb_render_picture_t src /**< */,
+ xcb_render_picture_t dst /**< */,
+ xcb_render_pictformat_t mask_format /**< */,
+ xcb_render_glyphset_t glyphset /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ uint32_t glyphcmds_len /**< */,
+ const uint8_t *glyphcmds /**< */);
+
+int
+xcb_render_fill_rectangles_sizeof (const void *_buffer /**< */,
+ uint32_t rects_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_fill_rectangles_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t op
+ ** @param xcb_render_picture_t dst
+ ** @param xcb_render_color_t color
+ ** @param uint32_t rects_len
+ ** @param const xcb_rectangle_t *rects
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_fill_rectangles_checked (xcb_connection_t *c /**< */,
+ uint8_t op /**< */,
+ xcb_render_picture_t dst /**< */,
+ xcb_render_color_t color /**< */,
+ uint32_t rects_len /**< */,
+ const xcb_rectangle_t *rects /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_fill_rectangles
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t op
+ ** @param xcb_render_picture_t dst
+ ** @param xcb_render_color_t color
+ ** @param uint32_t rects_len
+ ** @param const xcb_rectangle_t *rects
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_fill_rectangles (xcb_connection_t *c /**< */,
+ uint8_t op /**< */,
+ xcb_render_picture_t dst /**< */,
+ xcb_render_color_t color /**< */,
+ uint32_t rects_len /**< */,
+ const xcb_rectangle_t *rects /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_create_cursor_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_cursor_t cid
+ ** @param xcb_render_picture_t source
+ ** @param uint16_t x
+ ** @param uint16_t y
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_create_cursor_checked (xcb_connection_t *c /**< */,
+ xcb_cursor_t cid /**< */,
+ xcb_render_picture_t source /**< */,
+ uint16_t x /**< */,
+ uint16_t y /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_create_cursor
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_cursor_t cid
+ ** @param xcb_render_picture_t source
+ ** @param uint16_t x
+ ** @param uint16_t y
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_create_cursor (xcb_connection_t *c /**< */,
+ xcb_cursor_t cid /**< */,
+ xcb_render_picture_t source /**< */,
+ uint16_t x /**< */,
+ uint16_t y /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_transform_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_transform_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_transform_next
+ **
+ ** @param xcb_render_transform_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_transform_next (xcb_render_transform_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_transform_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_transform_end
+ **
+ ** @param xcb_render_transform_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_transform_end (xcb_render_transform_iterator_t i /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_set_picture_transform_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @param xcb_render_transform_t transform
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_set_picture_transform_checked (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */,
+ xcb_render_transform_t transform /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_set_picture_transform
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @param xcb_render_transform_t transform
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_set_picture_transform (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */,
+ xcb_render_transform_t transform /**< */);
+
+int
+xcb_render_query_filters_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_render_query_filters_cookie_t xcb_render_query_filters
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @returns xcb_render_query_filters_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_render_query_filters_cookie_t
+xcb_render_query_filters (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_render_query_filters_cookie_t xcb_render_query_filters_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @returns xcb_render_query_filters_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_render_query_filters_cookie_t
+xcb_render_query_filters_unchecked (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */);
+
+
+/*****************************************************************************
+ **
+ ** uint16_t * xcb_render_query_filters_aliases
+ **
+ ** @param const xcb_render_query_filters_reply_t *R
+ ** @returns uint16_t *
+ **
+ *****************************************************************************/
+
+uint16_t *
+xcb_render_query_filters_aliases (const xcb_render_query_filters_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_render_query_filters_aliases_length
+ **
+ ** @param const xcb_render_query_filters_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_render_query_filters_aliases_length (const xcb_render_query_filters_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_query_filters_aliases_end
+ **
+ ** @param const xcb_render_query_filters_reply_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_query_filters_aliases_end (const xcb_render_query_filters_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_render_query_filters_filters_length
+ **
+ ** @param const xcb_render_query_filters_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_render_query_filters_filters_length (const xcb_render_query_filters_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_str_iterator_t xcb_render_query_filters_filters_iterator
+ **
+ ** @param const xcb_render_query_filters_reply_t *R
+ ** @returns xcb_str_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_str_iterator_t
+xcb_render_query_filters_filters_iterator (const xcb_render_query_filters_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_render_query_filters_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_render_query_filters_reply_t * xcb_render_query_filters_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_query_filters_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_render_query_filters_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_render_query_filters_reply_t *
+xcb_render_query_filters_reply (xcb_connection_t *c /**< */,
+ xcb_render_query_filters_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_render_set_picture_filter_sizeof (const void *_buffer /**< */,
+ uint32_t values_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_set_picture_filter_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @param uint16_t filter_len
+ ** @param const char *filter
+ ** @param uint32_t values_len
+ ** @param const xcb_render_fixed_t *values
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_set_picture_filter_checked (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */,
+ uint16_t filter_len /**< */,
+ const char *filter /**< */,
+ uint32_t values_len /**< */,
+ const xcb_render_fixed_t *values /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_set_picture_filter
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @param uint16_t filter_len
+ ** @param const char *filter
+ ** @param uint32_t values_len
+ ** @param const xcb_render_fixed_t *values
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_set_picture_filter (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */,
+ uint16_t filter_len /**< */,
+ const char *filter /**< */,
+ uint32_t values_len /**< */,
+ const xcb_render_fixed_t *values /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_animcursorelt_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_animcursorelt_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_animcursorelt_next
+ **
+ ** @param xcb_render_animcursorelt_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_animcursorelt_next (xcb_render_animcursorelt_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_animcursorelt_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_animcursorelt_end
+ **
+ ** @param xcb_render_animcursorelt_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_animcursorelt_end (xcb_render_animcursorelt_iterator_t i /**< */);
+
+int
+xcb_render_create_anim_cursor_sizeof (const void *_buffer /**< */,
+ uint32_t cursors_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_create_anim_cursor_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_cursor_t cid
+ ** @param uint32_t cursors_len
+ ** @param const xcb_render_animcursorelt_t *cursors
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_create_anim_cursor_checked (xcb_connection_t *c /**< */,
+ xcb_cursor_t cid /**< */,
+ uint32_t cursors_len /**< */,
+ const xcb_render_animcursorelt_t *cursors /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_create_anim_cursor
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_cursor_t cid
+ ** @param uint32_t cursors_len
+ ** @param const xcb_render_animcursorelt_t *cursors
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_create_anim_cursor (xcb_connection_t *c /**< */,
+ xcb_cursor_t cid /**< */,
+ uint32_t cursors_len /**< */,
+ const xcb_render_animcursorelt_t *cursors /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_spanfix_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_spanfix_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_spanfix_next
+ **
+ ** @param xcb_render_spanfix_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_spanfix_next (xcb_render_spanfix_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_spanfix_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_spanfix_end
+ **
+ ** @param xcb_render_spanfix_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_spanfix_end (xcb_render_spanfix_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_render_trap_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_render_trap_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_render_trap_next
+ **
+ ** @param xcb_render_trap_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_render_trap_next (xcb_render_trap_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_render_trap_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_render_trap_end
+ **
+ ** @param xcb_render_trap_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_render_trap_end (xcb_render_trap_iterator_t i /**< */);
+
+int
+xcb_render_add_traps_sizeof (const void *_buffer /**< */,
+ uint32_t traps_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_add_traps_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @param int16_t x_off
+ ** @param int16_t y_off
+ ** @param uint32_t traps_len
+ ** @param const xcb_render_trap_t *traps
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_add_traps_checked (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */,
+ int16_t x_off /**< */,
+ int16_t y_off /**< */,
+ uint32_t traps_len /**< */,
+ const xcb_render_trap_t *traps /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_add_traps
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @param int16_t x_off
+ ** @param int16_t y_off
+ ** @param uint32_t traps_len
+ ** @param const xcb_render_trap_t *traps
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_add_traps (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */,
+ int16_t x_off /**< */,
+ int16_t y_off /**< */,
+ uint32_t traps_len /**< */,
+ const xcb_render_trap_t *traps /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_create_solid_fill_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @param xcb_render_color_t color
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_create_solid_fill_checked (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */,
+ xcb_render_color_t color /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_create_solid_fill
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @param xcb_render_color_t color
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_create_solid_fill (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */,
+ xcb_render_color_t color /**< */);
+
+int
+xcb_render_create_linear_gradient_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_create_linear_gradient_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @param xcb_render_pointfix_t p1
+ ** @param xcb_render_pointfix_t p2
+ ** @param uint32_t num_stops
+ ** @param const xcb_render_fixed_t *stops
+ ** @param const xcb_render_color_t *colors
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_create_linear_gradient_checked (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */,
+ xcb_render_pointfix_t p1 /**< */,
+ xcb_render_pointfix_t p2 /**< */,
+ uint32_t num_stops /**< */,
+ const xcb_render_fixed_t *stops /**< */,
+ const xcb_render_color_t *colors /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_create_linear_gradient
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @param xcb_render_pointfix_t p1
+ ** @param xcb_render_pointfix_t p2
+ ** @param uint32_t num_stops
+ ** @param const xcb_render_fixed_t *stops
+ ** @param const xcb_render_color_t *colors
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_create_linear_gradient (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */,
+ xcb_render_pointfix_t p1 /**< */,
+ xcb_render_pointfix_t p2 /**< */,
+ uint32_t num_stops /**< */,
+ const xcb_render_fixed_t *stops /**< */,
+ const xcb_render_color_t *colors /**< */);
+
+int
+xcb_render_create_radial_gradient_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_create_radial_gradient_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @param xcb_render_pointfix_t inner
+ ** @param xcb_render_pointfix_t outer
+ ** @param xcb_render_fixed_t inner_radius
+ ** @param xcb_render_fixed_t outer_radius
+ ** @param uint32_t num_stops
+ ** @param const xcb_render_fixed_t *stops
+ ** @param const xcb_render_color_t *colors
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_create_radial_gradient_checked (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */,
+ xcb_render_pointfix_t inner /**< */,
+ xcb_render_pointfix_t outer /**< */,
+ xcb_render_fixed_t inner_radius /**< */,
+ xcb_render_fixed_t outer_radius /**< */,
+ uint32_t num_stops /**< */,
+ const xcb_render_fixed_t *stops /**< */,
+ const xcb_render_color_t *colors /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_create_radial_gradient
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @param xcb_render_pointfix_t inner
+ ** @param xcb_render_pointfix_t outer
+ ** @param xcb_render_fixed_t inner_radius
+ ** @param xcb_render_fixed_t outer_radius
+ ** @param uint32_t num_stops
+ ** @param const xcb_render_fixed_t *stops
+ ** @param const xcb_render_color_t *colors
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_create_radial_gradient (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */,
+ xcb_render_pointfix_t inner /**< */,
+ xcb_render_pointfix_t outer /**< */,
+ xcb_render_fixed_t inner_radius /**< */,
+ xcb_render_fixed_t outer_radius /**< */,
+ uint32_t num_stops /**< */,
+ const xcb_render_fixed_t *stops /**< */,
+ const xcb_render_color_t *colors /**< */);
+
+int
+xcb_render_create_conical_gradient_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_create_conical_gradient_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @param xcb_render_pointfix_t center
+ ** @param xcb_render_fixed_t angle
+ ** @param uint32_t num_stops
+ ** @param const xcb_render_fixed_t *stops
+ ** @param const xcb_render_color_t *colors
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_create_conical_gradient_checked (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */,
+ xcb_render_pointfix_t center /**< */,
+ xcb_render_fixed_t angle /**< */,
+ uint32_t num_stops /**< */,
+ const xcb_render_fixed_t *stops /**< */,
+ const xcb_render_color_t *colors /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_render_create_conical_gradient
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_render_picture_t picture
+ ** @param xcb_render_pointfix_t center
+ ** @param xcb_render_fixed_t angle
+ ** @param uint32_t num_stops
+ ** @param const xcb_render_fixed_t *stops
+ ** @param const xcb_render_color_t *colors
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_render_create_conical_gradient (xcb_connection_t *c /**< */,
+ xcb_render_picture_t picture /**< */,
+ xcb_render_pointfix_t center /**< */,
+ xcb_render_fixed_t angle /**< */,
+ uint32_t num_stops /**< */,
+ const xcb_render_fixed_t *stops /**< */,
+ const xcb_render_color_t *colors /**< */);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/**
+ * @}
+ */
diff --git a/include/xcb/shape.h b/include/xcb/shape.h
new file mode 100644
index 000000000..abb63c166
--- /dev/null
+++ b/include/xcb/shape.h
@@ -0,0 +1,1103 @@
+/*
+ * This file generated automatically from shape.xml by c_client.py.
+ * Edit at your peril.
+ */
+
+/**
+ * @defgroup XCB_Shape_API XCB Shape API
+ * @brief Shape XCB Protocol Implementation.
+ * @{
+ **/
+
+#ifndef __SHAPE_H
+#define __SHAPE_H
+
+#include "xcb.h"
+#include "xproto.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define XCB_SHAPE_MAJOR_VERSION 1
+#define XCB_SHAPE_MINOR_VERSION 1
+
+XCB_EXTERN xcb_extension_t xcb_shape_id;
+
+typedef uint8_t xcb_shape_op_t;
+
+/**
+ * @brief xcb_shape_op_iterator_t
+ **/
+typedef struct xcb_shape_op_iterator_t {
+ xcb_shape_op_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_shape_op_iterator_t;
+
+typedef uint8_t xcb_shape_kind_t;
+
+/**
+ * @brief xcb_shape_kind_iterator_t
+ **/
+typedef struct xcb_shape_kind_iterator_t {
+ xcb_shape_kind_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_shape_kind_iterator_t;
+
+typedef enum xcb_shape_so_t {
+ XCB_SHAPE_SO_SET = 0,
+ XCB_SHAPE_SO_UNION = 1,
+ XCB_SHAPE_SO_INTERSECT = 2,
+ XCB_SHAPE_SO_SUBTRACT = 3,
+ XCB_SHAPE_SO_INVERT = 4
+} xcb_shape_so_t;
+
+typedef enum xcb_shape_sk_t {
+ XCB_SHAPE_SK_BOUNDING = 0,
+ XCB_SHAPE_SK_CLIP = 1,
+ XCB_SHAPE_SK_INPUT = 2
+} xcb_shape_sk_t;
+
+/** Opcode for xcb_shape_notify. */
+#define XCB_SHAPE_NOTIFY 0
+
+/**
+ * @brief xcb_shape_notify_event_t
+ **/
+typedef struct xcb_shape_notify_event_t {
+ uint8_t response_type; /**< */
+ xcb_shape_kind_t shape_kind; /**< */
+ uint16_t sequence; /**< */
+ xcb_window_t affected_window; /**< */
+ int16_t extents_x; /**< */
+ int16_t extents_y; /**< */
+ uint16_t extents_width; /**< */
+ uint16_t extents_height; /**< */
+ xcb_timestamp_t server_time; /**< */
+ uint8_t shaped; /**< */
+ uint8_t pad0[11]; /**< */
+} xcb_shape_notify_event_t;
+
+/**
+ * @brief xcb_shape_query_version_cookie_t
+ **/
+typedef struct xcb_shape_query_version_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_shape_query_version_cookie_t;
+
+/** Opcode for xcb_shape_query_version. */
+#define XCB_SHAPE_QUERY_VERSION 0
+
+/**
+ * @brief xcb_shape_query_version_request_t
+ **/
+typedef struct xcb_shape_query_version_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+} xcb_shape_query_version_request_t;
+
+/**
+ * @brief xcb_shape_query_version_reply_t
+ **/
+typedef struct xcb_shape_query_version_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint16_t major_version; /**< */
+ uint16_t minor_version; /**< */
+} xcb_shape_query_version_reply_t;
+
+/** Opcode for xcb_shape_rectangles. */
+#define XCB_SHAPE_RECTANGLES 1
+
+/**
+ * @brief xcb_shape_rectangles_request_t
+ **/
+typedef struct xcb_shape_rectangles_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_shape_op_t operation; /**< */
+ xcb_shape_kind_t destination_kind; /**< */
+ uint8_t ordering; /**< */
+ uint8_t pad0; /**< */
+ xcb_window_t destination_window; /**< */
+ int16_t x_offset; /**< */
+ int16_t y_offset; /**< */
+} xcb_shape_rectangles_request_t;
+
+/** Opcode for xcb_shape_mask. */
+#define XCB_SHAPE_MASK 2
+
+/**
+ * @brief xcb_shape_mask_request_t
+ **/
+typedef struct xcb_shape_mask_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_shape_op_t operation; /**< */
+ xcb_shape_kind_t destination_kind; /**< */
+ uint8_t pad0[2]; /**< */
+ xcb_window_t destination_window; /**< */
+ int16_t x_offset; /**< */
+ int16_t y_offset; /**< */
+ xcb_pixmap_t source_bitmap; /**< */
+} xcb_shape_mask_request_t;
+
+/** Opcode for xcb_shape_combine. */
+#define XCB_SHAPE_COMBINE 3
+
+/**
+ * @brief xcb_shape_combine_request_t
+ **/
+typedef struct xcb_shape_combine_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_shape_op_t operation; /**< */
+ xcb_shape_kind_t destination_kind; /**< */
+ xcb_shape_kind_t source_kind; /**< */
+ uint8_t pad0; /**< */
+ xcb_window_t destination_window; /**< */
+ int16_t x_offset; /**< */
+ int16_t y_offset; /**< */
+ xcb_window_t source_window; /**< */
+} xcb_shape_combine_request_t;
+
+/** Opcode for xcb_shape_offset. */
+#define XCB_SHAPE_OFFSET 4
+
+/**
+ * @brief xcb_shape_offset_request_t
+ **/
+typedef struct xcb_shape_offset_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_shape_kind_t destination_kind; /**< */
+ uint8_t pad0[3]; /**< */
+ xcb_window_t destination_window; /**< */
+ int16_t x_offset; /**< */
+ int16_t y_offset; /**< */
+} xcb_shape_offset_request_t;
+
+/**
+ * @brief xcb_shape_query_extents_cookie_t
+ **/
+typedef struct xcb_shape_query_extents_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_shape_query_extents_cookie_t;
+
+/** Opcode for xcb_shape_query_extents. */
+#define XCB_SHAPE_QUERY_EXTENTS 5
+
+/**
+ * @brief xcb_shape_query_extents_request_t
+ **/
+typedef struct xcb_shape_query_extents_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_window_t destination_window; /**< */
+} xcb_shape_query_extents_request_t;
+
+/**
+ * @brief xcb_shape_query_extents_reply_t
+ **/
+typedef struct xcb_shape_query_extents_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint8_t bounding_shaped; /**< */
+ uint8_t clip_shaped; /**< */
+ uint8_t pad1[2]; /**< */
+ int16_t bounding_shape_extents_x; /**< */
+ int16_t bounding_shape_extents_y; /**< */
+ uint16_t bounding_shape_extents_width; /**< */
+ uint16_t bounding_shape_extents_height; /**< */
+ int16_t clip_shape_extents_x; /**< */
+ int16_t clip_shape_extents_y; /**< */
+ uint16_t clip_shape_extents_width; /**< */
+ uint16_t clip_shape_extents_height; /**< */
+} xcb_shape_query_extents_reply_t;
+
+/** Opcode for xcb_shape_select_input. */
+#define XCB_SHAPE_SELECT_INPUT 6
+
+/**
+ * @brief xcb_shape_select_input_request_t
+ **/
+typedef struct xcb_shape_select_input_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_window_t destination_window; /**< */
+ uint8_t enable; /**< */
+ uint8_t pad0[3]; /**< */
+} xcb_shape_select_input_request_t;
+
+/**
+ * @brief xcb_shape_input_selected_cookie_t
+ **/
+typedef struct xcb_shape_input_selected_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_shape_input_selected_cookie_t;
+
+/** Opcode for xcb_shape_input_selected. */
+#define XCB_SHAPE_INPUT_SELECTED 7
+
+/**
+ * @brief xcb_shape_input_selected_request_t
+ **/
+typedef struct xcb_shape_input_selected_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_window_t destination_window; /**< */
+} xcb_shape_input_selected_request_t;
+
+/**
+ * @brief xcb_shape_input_selected_reply_t
+ **/
+typedef struct xcb_shape_input_selected_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t enabled; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+} xcb_shape_input_selected_reply_t;
+
+/**
+ * @brief xcb_shape_get_rectangles_cookie_t
+ **/
+typedef struct xcb_shape_get_rectangles_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_shape_get_rectangles_cookie_t;
+
+/** Opcode for xcb_shape_get_rectangles. */
+#define XCB_SHAPE_GET_RECTANGLES 8
+
+/**
+ * @brief xcb_shape_get_rectangles_request_t
+ **/
+typedef struct xcb_shape_get_rectangles_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+ xcb_shape_kind_t source_kind; /**< */
+ uint8_t pad0[3]; /**< */
+} xcb_shape_get_rectangles_request_t;
+
+/**
+ * @brief xcb_shape_get_rectangles_reply_t
+ **/
+typedef struct xcb_shape_get_rectangles_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t ordering; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint32_t rectangles_len; /**< */
+ uint8_t pad0[20]; /**< */
+} xcb_shape_get_rectangles_reply_t;
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_shape_op_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_shape_op_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_shape_op_next
+ **
+ ** @param xcb_shape_op_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_shape_op_next (xcb_shape_op_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_shape_op_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_shape_op_end
+ **
+ ** @param xcb_shape_op_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_shape_op_end (xcb_shape_op_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_shape_kind_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_shape_kind_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_shape_kind_next
+ **
+ ** @param xcb_shape_kind_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_shape_kind_next (xcb_shape_kind_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_shape_kind_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_shape_kind_end
+ **
+ ** @param xcb_shape_kind_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_shape_kind_end (xcb_shape_kind_iterator_t i /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_shape_query_version_cookie_t xcb_shape_query_version
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_shape_query_version_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_shape_query_version_cookie_t
+xcb_shape_query_version (xcb_connection_t *c /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_shape_query_version_cookie_t xcb_shape_query_version_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_shape_query_version_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_shape_query_version_cookie_t
+xcb_shape_query_version_unchecked (xcb_connection_t *c /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_shape_query_version_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_shape_query_version_reply_t * xcb_shape_query_version_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_shape_query_version_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_shape_query_version_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_shape_query_version_reply_t *
+xcb_shape_query_version_reply (xcb_connection_t *c /**< */,
+ xcb_shape_query_version_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_shape_rectangles_sizeof (const void *_buffer /**< */,
+ uint32_t rectangles_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_shape_rectangles_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_shape_op_t operation
+ ** @param xcb_shape_kind_t destination_kind
+ ** @param uint8_t ordering
+ ** @param xcb_window_t destination_window
+ ** @param int16_t x_offset
+ ** @param int16_t y_offset
+ ** @param uint32_t rectangles_len
+ ** @param const xcb_rectangle_t *rectangles
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_shape_rectangles_checked (xcb_connection_t *c /**< */,
+ xcb_shape_op_t operation /**< */,
+ xcb_shape_kind_t destination_kind /**< */,
+ uint8_t ordering /**< */,
+ xcb_window_t destination_window /**< */,
+ int16_t x_offset /**< */,
+ int16_t y_offset /**< */,
+ uint32_t rectangles_len /**< */,
+ const xcb_rectangle_t *rectangles /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_shape_rectangles
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_shape_op_t operation
+ ** @param xcb_shape_kind_t destination_kind
+ ** @param uint8_t ordering
+ ** @param xcb_window_t destination_window
+ ** @param int16_t x_offset
+ ** @param int16_t y_offset
+ ** @param uint32_t rectangles_len
+ ** @param const xcb_rectangle_t *rectangles
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_shape_rectangles (xcb_connection_t *c /**< */,
+ xcb_shape_op_t operation /**< */,
+ xcb_shape_kind_t destination_kind /**< */,
+ uint8_t ordering /**< */,
+ xcb_window_t destination_window /**< */,
+ int16_t x_offset /**< */,
+ int16_t y_offset /**< */,
+ uint32_t rectangles_len /**< */,
+ const xcb_rectangle_t *rectangles /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_shape_mask_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_shape_op_t operation
+ ** @param xcb_shape_kind_t destination_kind
+ ** @param xcb_window_t destination_window
+ ** @param int16_t x_offset
+ ** @param int16_t y_offset
+ ** @param xcb_pixmap_t source_bitmap
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_shape_mask_checked (xcb_connection_t *c /**< */,
+ xcb_shape_op_t operation /**< */,
+ xcb_shape_kind_t destination_kind /**< */,
+ xcb_window_t destination_window /**< */,
+ int16_t x_offset /**< */,
+ int16_t y_offset /**< */,
+ xcb_pixmap_t source_bitmap /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_shape_mask
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_shape_op_t operation
+ ** @param xcb_shape_kind_t destination_kind
+ ** @param xcb_window_t destination_window
+ ** @param int16_t x_offset
+ ** @param int16_t y_offset
+ ** @param xcb_pixmap_t source_bitmap
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_shape_mask (xcb_connection_t *c /**< */,
+ xcb_shape_op_t operation /**< */,
+ xcb_shape_kind_t destination_kind /**< */,
+ xcb_window_t destination_window /**< */,
+ int16_t x_offset /**< */,
+ int16_t y_offset /**< */,
+ xcb_pixmap_t source_bitmap /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_shape_combine_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_shape_op_t operation
+ ** @param xcb_shape_kind_t destination_kind
+ ** @param xcb_shape_kind_t source_kind
+ ** @param xcb_window_t destination_window
+ ** @param int16_t x_offset
+ ** @param int16_t y_offset
+ ** @param xcb_window_t source_window
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_shape_combine_checked (xcb_connection_t *c /**< */,
+ xcb_shape_op_t operation /**< */,
+ xcb_shape_kind_t destination_kind /**< */,
+ xcb_shape_kind_t source_kind /**< */,
+ xcb_window_t destination_window /**< */,
+ int16_t x_offset /**< */,
+ int16_t y_offset /**< */,
+ xcb_window_t source_window /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_shape_combine
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_shape_op_t operation
+ ** @param xcb_shape_kind_t destination_kind
+ ** @param xcb_shape_kind_t source_kind
+ ** @param xcb_window_t destination_window
+ ** @param int16_t x_offset
+ ** @param int16_t y_offset
+ ** @param xcb_window_t source_window
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_shape_combine (xcb_connection_t *c /**< */,
+ xcb_shape_op_t operation /**< */,
+ xcb_shape_kind_t destination_kind /**< */,
+ xcb_shape_kind_t source_kind /**< */,
+ xcb_window_t destination_window /**< */,
+ int16_t x_offset /**< */,
+ int16_t y_offset /**< */,
+ xcb_window_t source_window /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_shape_offset_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_shape_kind_t destination_kind
+ ** @param xcb_window_t destination_window
+ ** @param int16_t x_offset
+ ** @param int16_t y_offset
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_shape_offset_checked (xcb_connection_t *c /**< */,
+ xcb_shape_kind_t destination_kind /**< */,
+ xcb_window_t destination_window /**< */,
+ int16_t x_offset /**< */,
+ int16_t y_offset /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_shape_offset
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_shape_kind_t destination_kind
+ ** @param xcb_window_t destination_window
+ ** @param int16_t x_offset
+ ** @param int16_t y_offset
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_shape_offset (xcb_connection_t *c /**< */,
+ xcb_shape_kind_t destination_kind /**< */,
+ xcb_window_t destination_window /**< */,
+ int16_t x_offset /**< */,
+ int16_t y_offset /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_shape_query_extents_cookie_t xcb_shape_query_extents
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t destination_window
+ ** @returns xcb_shape_query_extents_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_shape_query_extents_cookie_t
+xcb_shape_query_extents (xcb_connection_t *c /**< */,
+ xcb_window_t destination_window /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_shape_query_extents_cookie_t xcb_shape_query_extents_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t destination_window
+ ** @returns xcb_shape_query_extents_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_shape_query_extents_cookie_t
+xcb_shape_query_extents_unchecked (xcb_connection_t *c /**< */,
+ xcb_window_t destination_window /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_shape_query_extents_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_shape_query_extents_reply_t * xcb_shape_query_extents_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_shape_query_extents_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_shape_query_extents_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_shape_query_extents_reply_t *
+xcb_shape_query_extents_reply (xcb_connection_t *c /**< */,
+ xcb_shape_query_extents_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_shape_select_input_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t destination_window
+ ** @param uint8_t enable
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_shape_select_input_checked (xcb_connection_t *c /**< */,
+ xcb_window_t destination_window /**< */,
+ uint8_t enable /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_shape_select_input
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t destination_window
+ ** @param uint8_t enable
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_shape_select_input (xcb_connection_t *c /**< */,
+ xcb_window_t destination_window /**< */,
+ uint8_t enable /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_shape_input_selected_cookie_t xcb_shape_input_selected
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t destination_window
+ ** @returns xcb_shape_input_selected_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_shape_input_selected_cookie_t
+xcb_shape_input_selected (xcb_connection_t *c /**< */,
+ xcb_window_t destination_window /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_shape_input_selected_cookie_t xcb_shape_input_selected_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t destination_window
+ ** @returns xcb_shape_input_selected_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_shape_input_selected_cookie_t
+xcb_shape_input_selected_unchecked (xcb_connection_t *c /**< */,
+ xcb_window_t destination_window /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_shape_input_selected_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_shape_input_selected_reply_t * xcb_shape_input_selected_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_shape_input_selected_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_shape_input_selected_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_shape_input_selected_reply_t *
+xcb_shape_input_selected_reply (xcb_connection_t *c /**< */,
+ xcb_shape_input_selected_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_shape_get_rectangles_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_shape_get_rectangles_cookie_t xcb_shape_get_rectangles
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @param xcb_shape_kind_t source_kind
+ ** @returns xcb_shape_get_rectangles_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_shape_get_rectangles_cookie_t
+xcb_shape_get_rectangles (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */,
+ xcb_shape_kind_t source_kind /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_shape_get_rectangles_cookie_t xcb_shape_get_rectangles_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @param xcb_shape_kind_t source_kind
+ ** @returns xcb_shape_get_rectangles_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_shape_get_rectangles_cookie_t
+xcb_shape_get_rectangles_unchecked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */,
+ xcb_shape_kind_t source_kind /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_rectangle_t * xcb_shape_get_rectangles_rectangles
+ **
+ ** @param const xcb_shape_get_rectangles_reply_t *R
+ ** @returns xcb_rectangle_t *
+ **
+ *****************************************************************************/
+
+xcb_rectangle_t *
+xcb_shape_get_rectangles_rectangles (const xcb_shape_get_rectangles_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_shape_get_rectangles_rectangles_length
+ **
+ ** @param const xcb_shape_get_rectangles_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_shape_get_rectangles_rectangles_length (const xcb_shape_get_rectangles_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_rectangle_iterator_t xcb_shape_get_rectangles_rectangles_iterator
+ **
+ ** @param const xcb_shape_get_rectangles_reply_t *R
+ ** @returns xcb_rectangle_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_rectangle_iterator_t
+xcb_shape_get_rectangles_rectangles_iterator (const xcb_shape_get_rectangles_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_shape_get_rectangles_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_shape_get_rectangles_reply_t * xcb_shape_get_rectangles_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_shape_get_rectangles_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_shape_get_rectangles_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_shape_get_rectangles_reply_t *
+xcb_shape_get_rectangles_reply (xcb_connection_t *c /**< */,
+ xcb_shape_get_rectangles_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/**
+ * @}
+ */
diff --git a/include/xcb/xc_misc.h b/include/xcb/xc_misc.h
new file mode 100644
index 000000000..319db27a1
--- /dev/null
+++ b/include/xcb/xc_misc.h
@@ -0,0 +1,413 @@
+/*
+ * This file generated automatically from xc_misc.xml by c_client.py.
+ * Edit at your peril.
+ */
+
+/**
+ * @defgroup XCB_XCMisc_API XCB XCMisc API
+ * @brief XCMisc XCB Protocol Implementation.
+ * @{
+ **/
+
+#ifndef __XC_MISC_H
+#define __XC_MISC_H
+
+#include "xcb.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define XCB_XCMISC_MAJOR_VERSION 1
+#define XCB_XCMISC_MINOR_VERSION 1
+
+XCB_EXTERN xcb_extension_t xcb_xc_misc_id;
+
+/**
+ * @brief xcb_xc_misc_get_version_cookie_t
+ **/
+typedef struct xcb_xc_misc_get_version_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_xc_misc_get_version_cookie_t;
+
+/** Opcode for xcb_xc_misc_get_version. */
+#define XCB_XC_MISC_GET_VERSION 0
+
+/**
+ * @brief xcb_xc_misc_get_version_request_t
+ **/
+typedef struct xcb_xc_misc_get_version_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ uint16_t client_major_version; /**< */
+ uint16_t client_minor_version; /**< */
+} xcb_xc_misc_get_version_request_t;
+
+/**
+ * @brief xcb_xc_misc_get_version_reply_t
+ **/
+typedef struct xcb_xc_misc_get_version_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint16_t server_major_version; /**< */
+ uint16_t server_minor_version; /**< */
+} xcb_xc_misc_get_version_reply_t;
+
+/**
+ * @brief xcb_xc_misc_get_xid_range_cookie_t
+ **/
+typedef struct xcb_xc_misc_get_xid_range_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_xc_misc_get_xid_range_cookie_t;
+
+/** Opcode for xcb_xc_misc_get_xid_range. */
+#define XCB_XC_MISC_GET_XID_RANGE 1
+
+/**
+ * @brief xcb_xc_misc_get_xid_range_request_t
+ **/
+typedef struct xcb_xc_misc_get_xid_range_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+} xcb_xc_misc_get_xid_range_request_t;
+
+/**
+ * @brief xcb_xc_misc_get_xid_range_reply_t
+ **/
+typedef struct xcb_xc_misc_get_xid_range_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint32_t start_id; /**< */
+ uint32_t count; /**< */
+} xcb_xc_misc_get_xid_range_reply_t;
+
+/**
+ * @brief xcb_xc_misc_get_xid_list_cookie_t
+ **/
+typedef struct xcb_xc_misc_get_xid_list_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_xc_misc_get_xid_list_cookie_t;
+
+/** Opcode for xcb_xc_misc_get_xid_list. */
+#define XCB_XC_MISC_GET_XID_LIST 2
+
+/**
+ * @brief xcb_xc_misc_get_xid_list_request_t
+ **/
+typedef struct xcb_xc_misc_get_xid_list_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ uint32_t count; /**< */
+} xcb_xc_misc_get_xid_list_request_t;
+
+/**
+ * @brief xcb_xc_misc_get_xid_list_reply_t
+ **/
+typedef struct xcb_xc_misc_get_xid_list_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint32_t ids_len; /**< */
+ uint8_t pad1[20]; /**< */
+} xcb_xc_misc_get_xid_list_reply_t;
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xc_misc_get_version_cookie_t xcb_xc_misc_get_version
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint16_t client_major_version
+ ** @param uint16_t client_minor_version
+ ** @returns xcb_xc_misc_get_version_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xc_misc_get_version_cookie_t
+xcb_xc_misc_get_version (xcb_connection_t *c /**< */,
+ uint16_t client_major_version /**< */,
+ uint16_t client_minor_version /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xc_misc_get_version_cookie_t xcb_xc_misc_get_version_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint16_t client_major_version
+ ** @param uint16_t client_minor_version
+ ** @returns xcb_xc_misc_get_version_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xc_misc_get_version_cookie_t
+xcb_xc_misc_get_version_unchecked (xcb_connection_t *c /**< */,
+ uint16_t client_major_version /**< */,
+ uint16_t client_minor_version /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_xc_misc_get_version_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xc_misc_get_version_reply_t * xcb_xc_misc_get_version_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_xc_misc_get_version_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_xc_misc_get_version_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_xc_misc_get_version_reply_t *
+xcb_xc_misc_get_version_reply (xcb_connection_t *c /**< */,
+ xcb_xc_misc_get_version_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xc_misc_get_xid_range_cookie_t xcb_xc_misc_get_xid_range
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_xc_misc_get_xid_range_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xc_misc_get_xid_range_cookie_t
+xcb_xc_misc_get_xid_range (xcb_connection_t *c /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xc_misc_get_xid_range_cookie_t xcb_xc_misc_get_xid_range_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_xc_misc_get_xid_range_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xc_misc_get_xid_range_cookie_t
+xcb_xc_misc_get_xid_range_unchecked (xcb_connection_t *c /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_xc_misc_get_xid_range_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xc_misc_get_xid_range_reply_t * xcb_xc_misc_get_xid_range_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_xc_misc_get_xid_range_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_xc_misc_get_xid_range_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_xc_misc_get_xid_range_reply_t *
+xcb_xc_misc_get_xid_range_reply (xcb_connection_t *c /**< */,
+ xcb_xc_misc_get_xid_range_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_xc_misc_get_xid_list_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xc_misc_get_xid_list_cookie_t xcb_xc_misc_get_xid_list
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint32_t count
+ ** @returns xcb_xc_misc_get_xid_list_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xc_misc_get_xid_list_cookie_t
+xcb_xc_misc_get_xid_list (xcb_connection_t *c /**< */,
+ uint32_t count /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xc_misc_get_xid_list_cookie_t xcb_xc_misc_get_xid_list_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint32_t count
+ ** @returns xcb_xc_misc_get_xid_list_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xc_misc_get_xid_list_cookie_t
+xcb_xc_misc_get_xid_list_unchecked (xcb_connection_t *c /**< */,
+ uint32_t count /**< */);
+
+
+/*****************************************************************************
+ **
+ ** uint32_t * xcb_xc_misc_get_xid_list_ids
+ **
+ ** @param const xcb_xc_misc_get_xid_list_reply_t *R
+ ** @returns uint32_t *
+ **
+ *****************************************************************************/
+
+uint32_t *
+xcb_xc_misc_get_xid_list_ids (const xcb_xc_misc_get_xid_list_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_xc_misc_get_xid_list_ids_length
+ **
+ ** @param const xcb_xc_misc_get_xid_list_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_xc_misc_get_xid_list_ids_length (const xcb_xc_misc_get_xid_list_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_xc_misc_get_xid_list_ids_end
+ **
+ ** @param const xcb_xc_misc_get_xid_list_reply_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_xc_misc_get_xid_list_ids_end (const xcb_xc_misc_get_xid_list_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_xc_misc_get_xid_list_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xc_misc_get_xid_list_reply_t * xcb_xc_misc_get_xid_list_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_xc_misc_get_xid_list_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_xc_misc_get_xid_list_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_xc_misc_get_xid_list_reply_t *
+xcb_xc_misc_get_xid_list_reply (xcb_connection_t *c /**< */,
+ xcb_xc_misc_get_xid_list_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/**
+ * @}
+ */
diff --git a/include/xcb/xcb.h b/include/xcb/xcb.h
new file mode 100644
index 000000000..8cdba0550
--- /dev/null
+++ b/include/xcb/xcb.h
@@ -0,0 +1,543 @@
+/*
+ * Copyright (C) 2001-2006 Bart Massey, Jamey Sharp, and Josh Triplett.
+ * 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
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS 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.
+ *
+ * Except as contained in this notice, the names of the authors or their
+ * institutions shall not be used in advertising or otherwise to promote the
+ * sale, use or other dealings in this Software without prior written
+ * authorization from the authors.
+ */
+
+#ifndef __XCB_H__
+#define __XCB_H__
+#include <sys/types.h>
+
+#if defined(__solaris__)
+#include <inttypes.h>
+#else
+#include <stdint.h>
+#endif
+
+#ifndef _WIN32
+#include <sys/uio.h>
+#define XCB_EXTERN extern
+#else
+#include "xcb_windefs.h"
+#endif
+#include <pthread.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @file xcb.h
+ */
+
+/**
+ * @defgroup XCB_Core_API XCB Core API
+ * @brief Core API of the XCB library.
+ *
+ * @{
+ */
+
+/* Pre-defined constants */
+
+/** Current protocol version */
+#define X_PROTOCOL 11
+
+/** Current minor version */
+#define X_PROTOCOL_REVISION 0
+
+/** X_TCP_PORT + display number = server port for TCP transport */
+#define X_TCP_PORT 6000
+
+/** xcb connection errors because of socket, pipe and other stream errors. */
+#define XCB_CONN_ERROR 1
+
+/** xcb connection shutdown because of extension not supported */
+#define XCB_CONN_CLOSED_EXT_NOTSUPPORTED 2
+
+/** malloc(), calloc() and realloc() error upon failure, for eg ENOMEM */
+#define XCB_CONN_CLOSED_MEM_INSUFFICIENT 3
+
+/** Connection closed, exceeding request length that server accepts. */
+#define XCB_CONN_CLOSED_REQ_LEN_EXCEED 4
+
+/** Connection closed, error during parsing display string. */
+#define XCB_CONN_CLOSED_PARSE_ERR 5
+
+/** Connection closed because the server does not have a screen matching the display. */
+#define XCB_CONN_CLOSED_INVALID_SCREEN 6
+
+/** Connection closed because some FD passing operation failed */
+#define XCB_CONN_CLOSED_FDPASSING_FAILED 7
+
+#define XCB_TYPE_PAD(T,I) (-(I) & (sizeof(T) > 4 ? 3 : sizeof(T) - 1))
+
+/* Opaque structures */
+
+/**
+ * @brief XCB Connection structure.
+ *
+ * A structure that contain all data that XCB needs to communicate with an X server.
+ */
+typedef struct xcb_connection_t xcb_connection_t; /**< Opaque structure containing all data that XCB needs to communicate with an X server. */
+
+
+/* Other types */
+
+/**
+ * @brief Generic iterator.
+ *
+ * A generic iterator structure.
+ */
+typedef struct {
+ void *data; /**< Data of the current iterator */
+ int rem; /**< remaining elements */
+ int index; /**< index of the current iterator */
+} xcb_generic_iterator_t;
+
+/**
+ * @brief Generic reply.
+ *
+ * A generic reply structure.
+ */
+typedef struct {
+ uint8_t response_type; /**< Type of the response */
+ uint8_t pad0; /**< Padding */
+ uint16_t sequence; /**< Sequence number */
+ uint32_t length; /**< Length of the response */
+} xcb_generic_reply_t;
+
+/**
+ * @brief Generic event.
+ *
+ * A generic event structure.
+ */
+typedef struct {
+ uint8_t response_type; /**< Type of the response */
+ uint8_t pad0; /**< Padding */
+ uint16_t sequence; /**< Sequence number */
+ uint32_t pad[7]; /**< Padding */
+ uint32_t full_sequence; /**< full sequence */
+} xcb_generic_event_t;
+
+/**
+ * @brief Generic error.
+ *
+ * A generic error structure.
+ */
+typedef struct {
+ uint8_t response_type; /**< Type of the response */
+ uint8_t error_code; /**< Error code */
+ uint16_t sequence; /**< Sequence number */
+ uint32_t resource_id; /** < Resource ID for requests with side effects only */
+ uint16_t minor_code; /** < Minor opcode of the failed request */
+ uint8_t major_code; /** < Major opcode of the failed request */
+ uint8_t pad0;
+ uint32_t pad[5]; /**< Padding */
+ uint32_t full_sequence; /**< full sequence */
+} xcb_generic_error_t;
+
+/**
+ * @brief Generic cookie.
+ *
+ * A generic cookie structure.
+ */
+typedef struct {
+ unsigned int sequence; /**< Sequence number */
+} xcb_void_cookie_t;
+
+
+/* Include the generated xproto header. */
+#include "xproto.h"
+
+
+/** XCB_NONE is the universal null resource or null atom parameter value for many core X requests */
+#define XCB_NONE 0L
+
+/** XCB_COPY_FROM_PARENT can be used for many xcb_create_window parameters */
+#define XCB_COPY_FROM_PARENT 0L
+
+/** XCB_CURRENT_TIME can be used in most requests that take an xcb_timestamp_t */
+#define XCB_CURRENT_TIME 0L
+
+/** XCB_NO_SYMBOL fills in unused entries in xcb_keysym_t tables */
+#define XCB_NO_SYMBOL 0L
+
+
+/* xcb_auth.c */
+
+/**
+ * @brief Container for authorization information.
+ *
+ * A container for authorization information to be sent to the X server.
+ */
+typedef struct xcb_auth_info_t {
+ int namelen; /**< Length of the string name (as returned by strlen). */
+ char *name; /**< String containing the authentication protocol name, such as "MIT-MAGIC-COOKIE-1" or "XDM-AUTHORIZATION-1". */
+ int datalen; /**< Length of the data member. */
+ char *data; /**< Data interpreted in a protocol-specific manner. */
+} xcb_auth_info_t;
+
+
+/* xcb_out.c */
+
+/**
+ * @brief Forces any buffered output to be written to the server.
+ * @param c: The connection to the X server.
+ * @return > @c 0 on success, <= @c 0 otherwise.
+ *
+ * Forces any buffered output to be written to the server. Blocks
+ * until the write is complete.
+ */
+int xcb_flush(xcb_connection_t *c);
+
+/**
+ * @brief Returns the maximum request length that this server accepts.
+ * @param c: The connection to the X server.
+ * @return The maximum request length field.
+ *
+ * In the absence of the BIG-REQUESTS extension, returns the
+ * maximum request length field from the connection setup data, which
+ * may be as much as 65535. If the server supports BIG-REQUESTS, then
+ * the maximum request length field from the reply to the
+ * BigRequestsEnable request will be returned instead.
+ *
+ * Note that this length is measured in four-byte units, making the
+ * theoretical maximum lengths roughly 256kB without BIG-REQUESTS and
+ * 16GB with.
+ */
+uint32_t xcb_get_maximum_request_length(xcb_connection_t *c);
+
+/**
+ * @brief Prefetch the maximum request length without blocking.
+ * @param c: The connection to the X server.
+ *
+ * Without blocking, does as much work as possible toward computing
+ * the maximum request length accepted by the X server.
+ *
+ * Invoking this function may cause a call to xcb_big_requests_enable,
+ * but will not block waiting for the reply.
+ * xcb_get_maximum_request_length will return the prefetched data
+ * after possibly blocking while the reply is retrieved.
+ *
+ * Note that in order for this function to be fully non-blocking, the
+ * application must previously have called
+ * xcb_prefetch_extension_data(c, &xcb_big_requests_id) and the reply
+ * must have already arrived.
+ */
+void xcb_prefetch_maximum_request_length(xcb_connection_t *c);
+
+
+/* xcb_in.c */
+
+/**
+ * @brief Returns the next event or error from the server.
+ * @param c: The connection to the X server.
+ * @return The next event from the server.
+ *
+ * Returns the next event or error from the server, or returns null in
+ * the event of an I/O error. Blocks until either an event or error
+ * arrive, or an I/O error occurs.
+ */
+xcb_generic_event_t *xcb_wait_for_event(xcb_connection_t *c);
+
+/**
+ * @brief Returns the next event or error from the server.
+ * @param c: The connection to the X server.
+ * @return The next event from the server.
+ *
+ * Returns the next event or error from the server, if one is
+ * available, or returns @c NULL otherwise. If no event is available, that
+ * might be because an I/O error like connection close occurred while
+ * attempting to read the next event, in which case the connection is
+ * shut down when this function returns.
+ */
+xcb_generic_event_t *xcb_poll_for_event(xcb_connection_t *c);
+
+/**
+ * @brief Returns the next event without reading from the connection.
+ * @param c: The connection to the X server.
+ * @return The next already queued event from the server.
+ *
+ * This is a version of xcb_poll_for_event that only examines the
+ * event queue for new events. The function doesn't try to read new
+ * events from the connection if no queued events are found.
+ *
+ * This function is useful for callers that know in advance that all
+ * interesting events have already been read from the connection. For
+ * example, callers might use xcb_wait_for_reply and be interested
+ * only of events that preceded a specific reply.
+ */
+xcb_generic_event_t *xcb_poll_for_queued_event(xcb_connection_t *c);
+
+typedef struct xcb_special_event xcb_special_event_t;
+
+/**
+ * @brief Returns the next event from a special queue
+ */
+xcb_generic_event_t *xcb_poll_for_special_event(xcb_connection_t *c,
+ xcb_special_event_t *se);
+
+/**
+ * @brief Returns the next event from a special queue, blocking until one arrives
+ */
+xcb_generic_event_t *xcb_wait_for_special_event(xcb_connection_t *c,
+ xcb_special_event_t *se);
+/**
+ * @typedef typedef struct xcb_extension_t xcb_extension_t
+ */
+typedef struct xcb_extension_t xcb_extension_t; /**< Opaque structure used as key for xcb_get_extension_data_t. */
+
+
+/**
+ * @brief Listen for a special event
+ */
+xcb_special_event_t *xcb_register_for_special_xge(xcb_connection_t *c,
+ xcb_extension_t *ext,
+ uint32_t eid,
+ uint32_t *stamp);
+
+/**
+ * @brief Stop listening for a special event
+ */
+void xcb_unregister_for_special_event(xcb_connection_t *c,
+ xcb_special_event_t *se);
+
+/**
+ * @brief Return the error for a request, or NULL if none can ever arrive.
+ * @param c: The connection to the X server.
+ * @param cookie: The request cookie.
+ * @return The error for the request, or NULL if none can ever arrive.
+ *
+ * The xcb_void_cookie_t cookie supplied to this function must have resulted
+ * from a call to xcb_[request_name]_checked(). This function will block
+ * until one of two conditions happens. If an error is received, it will be
+ * returned. If a reply to a subsequent request has already arrived, no error
+ * can arrive for this request, so this function will return NULL.
+ *
+ * Note that this function will perform a sync if needed to ensure that the
+ * sequence number will advance beyond that provided in cookie; this is a
+ * convenience to avoid races in determining whether the sync is needed.
+ */
+xcb_generic_error_t *xcb_request_check(xcb_connection_t *c, xcb_void_cookie_t cookie);
+
+/**
+ * @brief Discards the reply for a request.
+ * @param c: The connection to the X server.
+ * @param sequence: The request sequence number from a cookie.
+ *
+ * Discards the reply for a request. Additionally, any error generated
+ * by the request is also discarded (unless it was an _unchecked request
+ * and the error has already arrived).
+ *
+ * This function will not block even if the reply is not yet available.
+ *
+ * Note that the sequence really does have to come from an xcb cookie;
+ * this function is not designed to operate on socket-handoff replies.
+ */
+void xcb_discard_reply(xcb_connection_t *c, unsigned int sequence);
+
+
+/* xcb_ext.c */
+
+/**
+ * @brief Caches reply information from QueryExtension requests.
+ * @param c: The connection.
+ * @param ext: The extension data.
+ * @return A pointer to the xcb_query_extension_reply_t for the extension.
+ *
+ * This function is the primary interface to the "extension cache",
+ * which caches reply information from QueryExtension
+ * requests. Invoking this function may cause a call to
+ * xcb_query_extension to retrieve extension information from the
+ * server, and may block until extension data is received from the
+ * server.
+ *
+ * The result must not be freed. This storage is managed by the cache
+ * itself.
+ */
+const xcb_query_extension_reply_t *xcb_get_extension_data(xcb_connection_t *c, xcb_extension_t *ext);
+
+/**
+ * @brief Prefetch of extension data into the extension cache
+ * @param c: The connection.
+ * @param ext: The extension data.
+ *
+ * This function allows a "prefetch" of extension data into the
+ * extension cache. Invoking the function may cause a call to
+ * xcb_query_extension, but will not block waiting for the
+ * reply. xcb_get_extension_data will return the prefetched data after
+ * possibly blocking while it is retrieved.
+ */
+void xcb_prefetch_extension_data(xcb_connection_t *c, xcb_extension_t *ext);
+
+
+/* xcb_conn.c */
+
+/**
+ * @brief Access the data returned by the server.
+ * @param c: The connection.
+ * @return A pointer to an xcb_setup_t structure.
+ *
+ * Accessor for the data returned by the server when the xcb_connection_t
+ * was initialized. This data includes
+ * - the server's required format for images,
+ * - a list of available visuals,
+ * - a list of available screens,
+ * - the server's maximum request length (in the absence of the
+ * BIG-REQUESTS extension),
+ * - and other assorted information.
+ *
+ * See the X protocol specification for more details.
+ *
+ * The result must not be freed.
+ */
+const xcb_setup_t *xcb_get_setup(xcb_connection_t *c);
+
+/**
+ * @brief Access the file descriptor of the connection.
+ * @param c: The connection.
+ * @return The file descriptor.
+ *
+ * Accessor for the file descriptor that was passed to the
+ * xcb_connect_to_fd call that returned @p c.
+ */
+int xcb_get_file_descriptor(xcb_connection_t *c);
+
+/**
+ * @brief Test whether the connection has shut down due to a fatal error.
+ * @param c: The connection.
+ * @return > 0 if the connection is in an error state; 0 otherwise.
+ *
+ * Some errors that occur in the context of an xcb_connection_t
+ * are unrecoverable. When such an error occurs, the
+ * connection is shut down and further operations on the
+ * xcb_connection_t have no effect.
+ *
+ * @return XCB_CONN_ERROR, because of socket errors, pipe errors or other stream errors.
+ * @return XCB_CONN_CLOSED_EXT_NOTSUPPORTED, when extension not supported.
+ * @return XCB_CONN_CLOSED_MEM_INSUFFICIENT, when memory not available.
+ * @return XCB_CONN_CLOSED_REQ_LEN_EXCEED, exceeding request length that server accepts.
+ * @return XCB_CONN_CLOSED_PARSE_ERR, error during parsing display string.
+ * @return XCB_CONN_CLOSED_INVALID_SCREEN, because the server does not have a screen matching the display.
+ */
+int xcb_connection_has_error(xcb_connection_t *c);
+
+/**
+ * @brief Connects to the X server.
+ * @param fd: The file descriptor.
+ * @param auth_info: Authentication data.
+ * @return A newly allocated xcb_connection_t structure.
+ *
+ * Connects to an X server, given the open socket @p fd and the
+ * xcb_auth_info_t @p auth_info. The file descriptor @p fd is
+ * bidirectionally connected to an X server. If the connection
+ * should be unauthenticated, @p auth_info must be @c
+ * NULL.
+ */
+xcb_connection_t *xcb_connect_to_fd(int fd, xcb_auth_info_t *auth_info);
+
+/**
+ * @brief Closes the connection.
+ * @param c: The connection.
+ *
+ * Closes the file descriptor and frees all memory associated with the
+ * connection @c c.
+ */
+void xcb_disconnect(xcb_connection_t *c);
+
+
+/* xcb_util.c */
+
+/**
+ * @brief Parses a display string name in the form documented by X(7x).
+ * @param name: The name of the display.
+ * @param host: A pointer to a malloc'd copy of the hostname.
+ * @param display: A pointer to the display number.
+ * @param screen: A pointer to the screen number.
+ * @return 0 on failure, non 0 otherwise.
+ *
+ * Parses the display string name @p display_name in the form
+ * documented by X(7x). Has no side effects on failure. If
+ * @p displayname is @c NULL or empty, it uses the environment
+ * variable DISPLAY. @p hostp is a pointer to a newly allocated string
+ * that contain the host name. @p displayp is set to the display
+ * number and @p screenp to the preferred screen number. @p screenp
+ * can be @c NULL. If @p displayname does not contain a screen number,
+ * it is set to @c 0.
+ */
+int xcb_parse_display(const char *name, char **host, int *display, int *screen);
+
+/**
+ * @brief Connects to the X server.
+ * @param displayname: The name of the display.
+ * @param screenp: A pointer to a preferred screen number.
+ * @return A newly allocated xcb_connection_t structure.
+ *
+ * Connects to the X server specified by @p displayname. If @p
+ * displayname is @c NULL, uses the value of the DISPLAY environment
+ * variable. If a particular screen on that server is preferred, the
+ * int pointed to by @p screenp (if not @c NULL) will be set to that
+ * screen; otherwise the screen will be set to 0.
+ */
+xcb_connection_t *xcb_connect(const char *displayname, int *screenp);
+
+/**
+ * @brief Connects to the X server, using an authorization information.
+ * @param display: The name of the display.
+ * @param auth: The authorization information.
+ * @param screen: A pointer to a preferred screen number.
+ * @return A newly allocated xcb_connection_t structure.
+ *
+ * Connects to the X server specified by @p displayname, using the
+ * authorization @p auth. If a particular screen on that server is
+ * preferred, the int pointed to by @p screenp (if not @c NULL) will
+ * be set to that screen; otherwise @p screenp will be set to 0.
+ */
+xcb_connection_t *xcb_connect_to_display_with_auth_info(const char *display, xcb_auth_info_t *auth, int *screen);
+
+
+/* xcb_xid.c */
+
+/**
+ * @brief Allocates an XID for a new object.
+ * @param c: The connection.
+ * @return A newly allocated XID.
+ *
+ * Allocates an XID for a new object. Typically used just prior to
+ * various object creation functions, such as xcb_create_window.
+ */
+uint32_t xcb_generate_id(xcb_connection_t *c);
+
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* __XCB_H__ */
diff --git a/include/xcb/xcb_windefs.h b/include/xcb/xcb_windefs.h
new file mode 100644
index 000000000..5f43c9c96
--- /dev/null
+++ b/include/xcb/xcb_windefs.h
@@ -0,0 +1,58 @@
+/* Copyright (C) 2009 Jatin Golani.
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS 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.
+ *
+ * Except as contained in this notice, the names of the authors or their
+ * institutions shall not be used in advertising or otherwise to promote the
+ * sale, use or other dealings in this Software without prior written
+ * authorization from the authors.
+ */
+
+
+#ifndef _XCB_WINDEFS_H
+#define _XCB_WINDEFS_H
+
+#ifndef WINVER
+#define WINVER 0x0501 /* required for getaddrinfo/freeaddrinfo defined only for WinXP and above */
+#endif
+
+#define INCL_WINSOCK_API_TYPEDEFS 1 /* Needed for LPFN_GETPEERNAME */
+
+#define FD_SETSIZE 1024
+
+#include <X11/Xwinsock.h>
+#include <winsock2.h>
+#include <ws2tcpip.h>
+#include <windef.h>
+
+typedef unsigned char BYTE;
+
+typedef unsigned int in_addr_t;
+
+#define HANDLE void *
+typedef int pid_t;
+
+#define STDERR_FILENO 2
+
+#ifdef LIBXCB_DLL
+#define XCB_EXTERN __declspec(dllexport) extern
+#else
+#define XCB_EXTERN __declspec(dllimport) extern
+#endif
+
+#endif /* xcb_windefs.h */
diff --git a/include/xcb/xcbext.h b/include/xcb/xcbext.h
new file mode 100644
index 000000000..1eb1be77f
--- /dev/null
+++ b/include/xcb/xcbext.h
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2001-2004 Bart Massey and Jamey Sharp.
+ * 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
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS 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.
+ *
+ * Except as contained in this notice, the names of the authors or their
+ * institutions shall not be used in advertising or otherwise to promote the
+ * sale, use or other dealings in this Software without prior written
+ * authorization from the authors.
+ */
+
+#ifndef __XCBEXT_H
+#define __XCBEXT_H
+
+#include "xcb.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* xcb_ext.c */
+
+struct xcb_extension_t {
+ const char *name;
+ int global_id;
+};
+
+
+/* xcb_out.c */
+
+typedef struct {
+ size_t count;
+ xcb_extension_t *ext;
+ uint8_t opcode;
+ uint8_t isvoid;
+} xcb_protocol_request_t;
+
+enum xcb_send_request_flags_t {
+ XCB_REQUEST_CHECKED = 1 << 0,
+ XCB_REQUEST_RAW = 1 << 1,
+ XCB_REQUEST_DISCARD_REPLY = 1 << 2,
+ XCB_REQUEST_REPLY_FDS = 1 << 3
+};
+
+unsigned int xcb_send_request(xcb_connection_t *c, int flags, struct iovec *vector, const xcb_protocol_request_t *request);
+
+void xcb_send_fd(xcb_connection_t *c, int fd);
+
+/* xcb_take_socket allows external code to ask XCB for permission to
+ * take over the write side of the socket and send raw data with
+ * xcb_writev. xcb_take_socket provides the sequence number of the last
+ * request XCB sent. The caller of xcb_take_socket must supply a
+ * callback which XCB can call when it wants the write side of the
+ * socket back to make a request. This callback synchronizes with the
+ * external socket owner and flushes any output queues if appropriate.
+ * The callback might be called from different threads at the same time.
+ * If you are sending requests which won't cause a reply, please note the
+ * comment for xcb_writev which explains some sequence number wrap issues.
+ * */
+int xcb_take_socket(xcb_connection_t *c, void (*return_socket)(void *closure), void *closure, int flags, uint64_t *sent);
+
+/* You must own the write-side of the socket (you've called
+ * xcb_take_socket, and haven't returned from return_socket yet) to call
+ * xcb_writev. Also, the iovec must have at least 1 byte of data in it.
+ * You have to make sure that xcb can detect sequence number wraps correctly.
+ * This means that the first request you send after xcb_take_socket must cause a
+ * reply (e.g. just insert a GetInputFocus request). After every (1 << 16) - 1
+ * requests without a reply, you have to insert a request which will cause a
+ * reply. You can again use GetInputFocus for this. You do not have to wait for
+ * any of the GetInputFocus replies, but can instead handle them via
+ * xcb_discard_reply(). */
+int xcb_writev(xcb_connection_t *c, struct iovec *vector, int count, uint64_t requests);
+
+
+/* xcb_in.c */
+
+void *xcb_wait_for_reply(xcb_connection_t *c, unsigned int request, xcb_generic_error_t **e);
+int xcb_poll_for_reply(xcb_connection_t *c, unsigned int request, void **reply, xcb_generic_error_t **error);
+int *xcb_get_reply_fds(xcb_connection_t *c, void *reply, size_t replylen);
+
+
+/* xcb_util.c */
+
+int xcb_popcount(uint32_t mask);
+int xcb_sumof(uint8_t *list, int len);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/include/xcb/xproto.h b/include/xcb/xproto.h
new file mode 100644
index 000000000..20d20c476
--- /dev/null
+++ b/include/xcb/xproto.h
@@ -0,0 +1,17152 @@
+/*
+ * This file generated automatically from xproto.xml by c_client.py.
+ * Edit at your peril.
+ */
+
+/**
+ * @defgroup XCB__API XCB API
+ * @brief XCB Protocol Implementation.
+ * @{
+ **/
+
+#ifndef __XPROTO_H
+#define __XPROTO_H
+
+#include "xcb.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief xcb_char2b_t
+ **/
+typedef struct xcb_char2b_t {
+ uint8_t byte1; /**< */
+ uint8_t byte2; /**< */
+} xcb_char2b_t;
+
+/**
+ * @brief xcb_char2b_iterator_t
+ **/
+typedef struct xcb_char2b_iterator_t {
+ xcb_char2b_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_char2b_iterator_t;
+
+typedef uint32_t xcb_window_t;
+
+/**
+ * @brief xcb_window_iterator_t
+ **/
+typedef struct xcb_window_iterator_t {
+ xcb_window_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_window_iterator_t;
+
+typedef uint32_t xcb_pixmap_t;
+
+/**
+ * @brief xcb_pixmap_iterator_t
+ **/
+typedef struct xcb_pixmap_iterator_t {
+ xcb_pixmap_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_pixmap_iterator_t;
+
+typedef uint32_t xcb_cursor_t;
+
+/**
+ * @brief xcb_cursor_iterator_t
+ **/
+typedef struct xcb_cursor_iterator_t {
+ xcb_cursor_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_cursor_iterator_t;
+
+typedef uint32_t xcb_font_t;
+
+/**
+ * @brief xcb_font_iterator_t
+ **/
+typedef struct xcb_font_iterator_t {
+ xcb_font_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_font_iterator_t;
+
+typedef uint32_t xcb_gcontext_t;
+
+/**
+ * @brief xcb_gcontext_iterator_t
+ **/
+typedef struct xcb_gcontext_iterator_t {
+ xcb_gcontext_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_gcontext_iterator_t;
+
+typedef uint32_t xcb_colormap_t;
+
+/**
+ * @brief xcb_colormap_iterator_t
+ **/
+typedef struct xcb_colormap_iterator_t {
+ xcb_colormap_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_colormap_iterator_t;
+
+typedef uint32_t xcb_atom_t;
+
+/**
+ * @brief xcb_atom_iterator_t
+ **/
+typedef struct xcb_atom_iterator_t {
+ xcb_atom_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_atom_iterator_t;
+
+typedef uint32_t xcb_drawable_t;
+
+/**
+ * @brief xcb_drawable_iterator_t
+ **/
+typedef struct xcb_drawable_iterator_t {
+ xcb_drawable_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_drawable_iterator_t;
+
+typedef uint32_t xcb_fontable_t;
+
+/**
+ * @brief xcb_fontable_iterator_t
+ **/
+typedef struct xcb_fontable_iterator_t {
+ xcb_fontable_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_fontable_iterator_t;
+
+typedef uint32_t xcb_visualid_t;
+
+/**
+ * @brief xcb_visualid_iterator_t
+ **/
+typedef struct xcb_visualid_iterator_t {
+ xcb_visualid_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_visualid_iterator_t;
+
+typedef uint32_t xcb_timestamp_t;
+
+/**
+ * @brief xcb_timestamp_iterator_t
+ **/
+typedef struct xcb_timestamp_iterator_t {
+ xcb_timestamp_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_timestamp_iterator_t;
+
+typedef uint32_t xcb_keysym_t;
+
+/**
+ * @brief xcb_keysym_iterator_t
+ **/
+typedef struct xcb_keysym_iterator_t {
+ xcb_keysym_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_keysym_iterator_t;
+
+typedef uint8_t xcb_keycode_t;
+
+/**
+ * @brief xcb_keycode_iterator_t
+ **/
+typedef struct xcb_keycode_iterator_t {
+ xcb_keycode_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_keycode_iterator_t;
+
+typedef uint8_t xcb_button_t;
+
+/**
+ * @brief xcb_button_iterator_t
+ **/
+typedef struct xcb_button_iterator_t {
+ xcb_button_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_button_iterator_t;
+
+/**
+ * @brief xcb_point_t
+ **/
+typedef struct xcb_point_t {
+ int16_t x; /**< */
+ int16_t y; /**< */
+} xcb_point_t;
+
+/**
+ * @brief xcb_point_iterator_t
+ **/
+typedef struct xcb_point_iterator_t {
+ xcb_point_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_point_iterator_t;
+
+/**
+ * @brief xcb_rectangle_t
+ **/
+typedef struct xcb_rectangle_t {
+ int16_t x; /**< */
+ int16_t y; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+} xcb_rectangle_t;
+
+/**
+ * @brief xcb_rectangle_iterator_t
+ **/
+typedef struct xcb_rectangle_iterator_t {
+ xcb_rectangle_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_rectangle_iterator_t;
+
+/**
+ * @brief xcb_arc_t
+ **/
+typedef struct xcb_arc_t {
+ int16_t x; /**< */
+ int16_t y; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+ int16_t angle1; /**< */
+ int16_t angle2; /**< */
+} xcb_arc_t;
+
+/**
+ * @brief xcb_arc_iterator_t
+ **/
+typedef struct xcb_arc_iterator_t {
+ xcb_arc_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_arc_iterator_t;
+
+/**
+ * @brief xcb_format_t
+ **/
+typedef struct xcb_format_t {
+ uint8_t depth; /**< */
+ uint8_t bits_per_pixel; /**< */
+ uint8_t scanline_pad; /**< */
+ uint8_t pad0[5]; /**< */
+} xcb_format_t;
+
+/**
+ * @brief xcb_format_iterator_t
+ **/
+typedef struct xcb_format_iterator_t {
+ xcb_format_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_format_iterator_t;
+
+typedef enum xcb_visual_class_t {
+ XCB_VISUAL_CLASS_STATIC_GRAY = 0,
+ XCB_VISUAL_CLASS_GRAY_SCALE = 1,
+ XCB_VISUAL_CLASS_STATIC_COLOR = 2,
+ XCB_VISUAL_CLASS_PSEUDO_COLOR = 3,
+ XCB_VISUAL_CLASS_TRUE_COLOR = 4,
+ XCB_VISUAL_CLASS_DIRECT_COLOR = 5
+} xcb_visual_class_t;
+
+/**
+ * @brief xcb_visualtype_t
+ **/
+typedef struct xcb_visualtype_t {
+ xcb_visualid_t visual_id; /**< */
+ uint8_t _class; /**< */
+ uint8_t bits_per_rgb_value; /**< */
+ uint16_t colormap_entries; /**< */
+ uint32_t red_mask; /**< */
+ uint32_t green_mask; /**< */
+ uint32_t blue_mask; /**< */
+ uint8_t pad0[4]; /**< */
+} xcb_visualtype_t;
+
+/**
+ * @brief xcb_visualtype_iterator_t
+ **/
+typedef struct xcb_visualtype_iterator_t {
+ xcb_visualtype_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_visualtype_iterator_t;
+
+/**
+ * @brief xcb_depth_t
+ **/
+typedef struct xcb_depth_t {
+ uint8_t depth; /**< */
+ uint8_t pad0; /**< */
+ uint16_t visuals_len; /**< */
+ uint8_t pad1[4]; /**< */
+} xcb_depth_t;
+
+/**
+ * @brief xcb_depth_iterator_t
+ **/
+typedef struct xcb_depth_iterator_t {
+ xcb_depth_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_depth_iterator_t;
+
+typedef enum xcb_event_mask_t {
+ XCB_EVENT_MASK_NO_EVENT = 0,
+ XCB_EVENT_MASK_KEY_PRESS = 1,
+ XCB_EVENT_MASK_KEY_RELEASE = 2,
+ XCB_EVENT_MASK_BUTTON_PRESS = 4,
+ XCB_EVENT_MASK_BUTTON_RELEASE = 8,
+ XCB_EVENT_MASK_ENTER_WINDOW = 16,
+ XCB_EVENT_MASK_LEAVE_WINDOW = 32,
+ XCB_EVENT_MASK_POINTER_MOTION = 64,
+ XCB_EVENT_MASK_POINTER_MOTION_HINT = 128,
+ XCB_EVENT_MASK_BUTTON_1_MOTION = 256,
+ XCB_EVENT_MASK_BUTTON_2_MOTION = 512,
+ XCB_EVENT_MASK_BUTTON_3_MOTION = 1024,
+ XCB_EVENT_MASK_BUTTON_4_MOTION = 2048,
+ XCB_EVENT_MASK_BUTTON_5_MOTION = 4096,
+ XCB_EVENT_MASK_BUTTON_MOTION = 8192,
+ XCB_EVENT_MASK_KEYMAP_STATE = 16384,
+ XCB_EVENT_MASK_EXPOSURE = 32768,
+ XCB_EVENT_MASK_VISIBILITY_CHANGE = 65536,
+ XCB_EVENT_MASK_STRUCTURE_NOTIFY = 131072,
+ XCB_EVENT_MASK_RESIZE_REDIRECT = 262144,
+ XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY = 524288,
+ XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT = 1048576,
+ XCB_EVENT_MASK_FOCUS_CHANGE = 2097152,
+ XCB_EVENT_MASK_PROPERTY_CHANGE = 4194304,
+ XCB_EVENT_MASK_COLOR_MAP_CHANGE = 8388608,
+ XCB_EVENT_MASK_OWNER_GRAB_BUTTON = 16777216
+} xcb_event_mask_t;
+
+typedef enum xcb_backing_store_t {
+ XCB_BACKING_STORE_NOT_USEFUL = 0,
+ XCB_BACKING_STORE_WHEN_MAPPED = 1,
+ XCB_BACKING_STORE_ALWAYS = 2
+} xcb_backing_store_t;
+
+/**
+ * @brief xcb_screen_t
+ **/
+typedef struct xcb_screen_t {
+ xcb_window_t root; /**< */
+ xcb_colormap_t default_colormap; /**< */
+ uint32_t white_pixel; /**< */
+ uint32_t black_pixel; /**< */
+ uint32_t current_input_masks; /**< */
+ uint16_t width_in_pixels; /**< */
+ uint16_t height_in_pixels; /**< */
+ uint16_t width_in_millimeters; /**< */
+ uint16_t height_in_millimeters; /**< */
+ uint16_t min_installed_maps; /**< */
+ uint16_t max_installed_maps; /**< */
+ xcb_visualid_t root_visual; /**< */
+ uint8_t backing_stores; /**< */
+ uint8_t save_unders; /**< */
+ uint8_t root_depth; /**< */
+ uint8_t allowed_depths_len; /**< */
+} xcb_screen_t;
+
+/**
+ * @brief xcb_screen_iterator_t
+ **/
+typedef struct xcb_screen_iterator_t {
+ xcb_screen_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_screen_iterator_t;
+
+/**
+ * @brief xcb_setup_request_t
+ **/
+typedef struct xcb_setup_request_t {
+ uint8_t byte_order; /**< */
+ uint8_t pad0; /**< */
+ uint16_t protocol_major_version; /**< */
+ uint16_t protocol_minor_version; /**< */
+ uint16_t authorization_protocol_name_len; /**< */
+ uint16_t authorization_protocol_data_len; /**< */
+ uint8_t pad1[2]; /**< */
+} xcb_setup_request_t;
+
+/**
+ * @brief xcb_setup_request_iterator_t
+ **/
+typedef struct xcb_setup_request_iterator_t {
+ xcb_setup_request_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_setup_request_iterator_t;
+
+/**
+ * @brief xcb_setup_failed_t
+ **/
+typedef struct xcb_setup_failed_t {
+ uint8_t status; /**< */
+ uint8_t reason_len; /**< */
+ uint16_t protocol_major_version; /**< */
+ uint16_t protocol_minor_version; /**< */
+ uint16_t length; /**< */
+} xcb_setup_failed_t;
+
+/**
+ * @brief xcb_setup_failed_iterator_t
+ **/
+typedef struct xcb_setup_failed_iterator_t {
+ xcb_setup_failed_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_setup_failed_iterator_t;
+
+/**
+ * @brief xcb_setup_authenticate_t
+ **/
+typedef struct xcb_setup_authenticate_t {
+ uint8_t status; /**< */
+ uint8_t pad0[5]; /**< */
+ uint16_t length; /**< */
+} xcb_setup_authenticate_t;
+
+/**
+ * @brief xcb_setup_authenticate_iterator_t
+ **/
+typedef struct xcb_setup_authenticate_iterator_t {
+ xcb_setup_authenticate_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_setup_authenticate_iterator_t;
+
+typedef enum xcb_image_order_t {
+ XCB_IMAGE_ORDER_LSB_FIRST = 0,
+ XCB_IMAGE_ORDER_MSB_FIRST = 1
+} xcb_image_order_t;
+
+/**
+ * @brief xcb_setup_t
+ **/
+typedef struct xcb_setup_t {
+ uint8_t status; /**< */
+ uint8_t pad0; /**< */
+ uint16_t protocol_major_version; /**< */
+ uint16_t protocol_minor_version; /**< */
+ uint16_t length; /**< */
+ uint32_t release_number; /**< */
+ uint32_t resource_id_base; /**< */
+ uint32_t resource_id_mask; /**< */
+ uint32_t motion_buffer_size; /**< */
+ uint16_t vendor_len; /**< */
+ uint16_t maximum_request_length; /**< */
+ uint8_t roots_len; /**< */
+ uint8_t pixmap_formats_len; /**< */
+ uint8_t image_byte_order; /**< */
+ uint8_t bitmap_format_bit_order; /**< */
+ uint8_t bitmap_format_scanline_unit; /**< */
+ uint8_t bitmap_format_scanline_pad; /**< */
+ xcb_keycode_t min_keycode; /**< */
+ xcb_keycode_t max_keycode; /**< */
+ uint8_t pad1[4]; /**< */
+} xcb_setup_t;
+
+/**
+ * @brief xcb_setup_iterator_t
+ **/
+typedef struct xcb_setup_iterator_t {
+ xcb_setup_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_setup_iterator_t;
+
+typedef enum xcb_mod_mask_t {
+ XCB_MOD_MASK_SHIFT = 1,
+ XCB_MOD_MASK_LOCK = 2,
+ XCB_MOD_MASK_CONTROL = 4,
+ XCB_MOD_MASK_1 = 8,
+ XCB_MOD_MASK_2 = 16,
+ XCB_MOD_MASK_3 = 32,
+ XCB_MOD_MASK_4 = 64,
+ XCB_MOD_MASK_5 = 128,
+ XCB_MOD_MASK_ANY = 32768
+} xcb_mod_mask_t;
+
+typedef enum xcb_key_but_mask_t {
+ XCB_KEY_BUT_MASK_SHIFT = 1,
+ XCB_KEY_BUT_MASK_LOCK = 2,
+ XCB_KEY_BUT_MASK_CONTROL = 4,
+ XCB_KEY_BUT_MASK_MOD_1 = 8,
+ XCB_KEY_BUT_MASK_MOD_2 = 16,
+ XCB_KEY_BUT_MASK_MOD_3 = 32,
+ XCB_KEY_BUT_MASK_MOD_4 = 64,
+ XCB_KEY_BUT_MASK_MOD_5 = 128,
+ XCB_KEY_BUT_MASK_BUTTON_1 = 256,
+ XCB_KEY_BUT_MASK_BUTTON_2 = 512,
+ XCB_KEY_BUT_MASK_BUTTON_3 = 1024,
+ XCB_KEY_BUT_MASK_BUTTON_4 = 2048,
+ XCB_KEY_BUT_MASK_BUTTON_5 = 4096
+} xcb_key_but_mask_t;
+
+typedef enum xcb_window_enum_t {
+ XCB_WINDOW_NONE = 0
+} xcb_window_enum_t;
+
+/** Opcode for xcb_key_press. */
+#define XCB_KEY_PRESS 2
+
+/**
+ * @brief xcb_key_press_event_t
+ **/
+typedef struct xcb_key_press_event_t {
+ uint8_t response_type; /**< */
+ xcb_keycode_t detail; /**< */
+ uint16_t sequence; /**< */
+ xcb_timestamp_t time; /**< */
+ xcb_window_t root; /**< */
+ xcb_window_t event; /**< */
+ xcb_window_t child; /**< */
+ int16_t root_x; /**< */
+ int16_t root_y; /**< */
+ int16_t event_x; /**< */
+ int16_t event_y; /**< */
+ uint16_t state; /**< */
+ uint8_t same_screen; /**< */
+ uint8_t pad0; /**< */
+} xcb_key_press_event_t;
+
+/** Opcode for xcb_key_release. */
+#define XCB_KEY_RELEASE 3
+
+typedef xcb_key_press_event_t xcb_key_release_event_t;
+
+typedef enum xcb_button_mask_t {
+ XCB_BUTTON_MASK_1 = 256,
+ XCB_BUTTON_MASK_2 = 512,
+ XCB_BUTTON_MASK_3 = 1024,
+ XCB_BUTTON_MASK_4 = 2048,
+ XCB_BUTTON_MASK_5 = 4096,
+ XCB_BUTTON_MASK_ANY = 32768
+} xcb_button_mask_t;
+
+/** Opcode for xcb_button_press. */
+#define XCB_BUTTON_PRESS 4
+
+/**
+ * @brief xcb_button_press_event_t
+ **/
+typedef struct xcb_button_press_event_t {
+ uint8_t response_type; /**< */
+ xcb_button_t detail; /**< */
+ uint16_t sequence; /**< */
+ xcb_timestamp_t time; /**< */
+ xcb_window_t root; /**< */
+ xcb_window_t event; /**< */
+ xcb_window_t child; /**< */
+ int16_t root_x; /**< */
+ int16_t root_y; /**< */
+ int16_t event_x; /**< */
+ int16_t event_y; /**< */
+ uint16_t state; /**< */
+ uint8_t same_screen; /**< */
+ uint8_t pad0; /**< */
+} xcb_button_press_event_t;
+
+/** Opcode for xcb_button_release. */
+#define XCB_BUTTON_RELEASE 5
+
+typedef xcb_button_press_event_t xcb_button_release_event_t;
+
+typedef enum xcb_motion_t {
+ XCB_MOTION_NORMAL = 0,
+ XCB_MOTION_HINT = 1
+} xcb_motion_t;
+
+/** Opcode for xcb_motion_notify. */
+#define XCB_MOTION_NOTIFY 6
+
+/**
+ * @brief xcb_motion_notify_event_t
+ **/
+typedef struct xcb_motion_notify_event_t {
+ uint8_t response_type; /**< */
+ uint8_t detail; /**< */
+ uint16_t sequence; /**< */
+ xcb_timestamp_t time; /**< */
+ xcb_window_t root; /**< */
+ xcb_window_t event; /**< */
+ xcb_window_t child; /**< */
+ int16_t root_x; /**< */
+ int16_t root_y; /**< */
+ int16_t event_x; /**< */
+ int16_t event_y; /**< */
+ uint16_t state; /**< */
+ uint8_t same_screen; /**< */
+ uint8_t pad0; /**< */
+} xcb_motion_notify_event_t;
+
+typedef enum xcb_notify_detail_t {
+ XCB_NOTIFY_DETAIL_ANCESTOR = 0,
+ XCB_NOTIFY_DETAIL_VIRTUAL = 1,
+ XCB_NOTIFY_DETAIL_INFERIOR = 2,
+ XCB_NOTIFY_DETAIL_NONLINEAR = 3,
+ XCB_NOTIFY_DETAIL_NONLINEAR_VIRTUAL = 4,
+ XCB_NOTIFY_DETAIL_POINTER = 5,
+ XCB_NOTIFY_DETAIL_POINTER_ROOT = 6,
+ XCB_NOTIFY_DETAIL_NONE = 7
+} xcb_notify_detail_t;
+
+typedef enum xcb_notify_mode_t {
+ XCB_NOTIFY_MODE_NORMAL = 0,
+ XCB_NOTIFY_MODE_GRAB = 1,
+ XCB_NOTIFY_MODE_UNGRAB = 2,
+ XCB_NOTIFY_MODE_WHILE_GRABBED = 3
+} xcb_notify_mode_t;
+
+/** Opcode for xcb_enter_notify. */
+#define XCB_ENTER_NOTIFY 7
+
+/**
+ * @brief xcb_enter_notify_event_t
+ **/
+typedef struct xcb_enter_notify_event_t {
+ uint8_t response_type; /**< */
+ uint8_t detail; /**< */
+ uint16_t sequence; /**< */
+ xcb_timestamp_t time; /**< */
+ xcb_window_t root; /**< */
+ xcb_window_t event; /**< */
+ xcb_window_t child; /**< */
+ int16_t root_x; /**< */
+ int16_t root_y; /**< */
+ int16_t event_x; /**< */
+ int16_t event_y; /**< */
+ uint16_t state; /**< */
+ uint8_t mode; /**< */
+ uint8_t same_screen_focus; /**< */
+} xcb_enter_notify_event_t;
+
+/** Opcode for xcb_leave_notify. */
+#define XCB_LEAVE_NOTIFY 8
+
+typedef xcb_enter_notify_event_t xcb_leave_notify_event_t;
+
+/** Opcode for xcb_focus_in. */
+#define XCB_FOCUS_IN 9
+
+/**
+ * @brief xcb_focus_in_event_t
+ **/
+typedef struct xcb_focus_in_event_t {
+ uint8_t response_type; /**< */
+ uint8_t detail; /**< */
+ uint16_t sequence; /**< */
+ xcb_window_t event; /**< */
+ uint8_t mode; /**< */
+ uint8_t pad0[3]; /**< */
+} xcb_focus_in_event_t;
+
+/** Opcode for xcb_focus_out. */
+#define XCB_FOCUS_OUT 10
+
+typedef xcb_focus_in_event_t xcb_focus_out_event_t;
+
+/** Opcode for xcb_keymap_notify. */
+#define XCB_KEYMAP_NOTIFY 11
+
+/**
+ * @brief xcb_keymap_notify_event_t
+ **/
+typedef struct xcb_keymap_notify_event_t {
+ uint8_t response_type; /**< */
+ uint8_t keys[31]; /**< */
+} xcb_keymap_notify_event_t;
+
+/** Opcode for xcb_expose. */
+#define XCB_EXPOSE 12
+
+/**
+ * @brief xcb_expose_event_t
+ **/
+typedef struct xcb_expose_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ xcb_window_t window; /**< */
+ uint16_t x; /**< */
+ uint16_t y; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+ uint16_t count; /**< */
+ uint8_t pad1[2]; /**< */
+} xcb_expose_event_t;
+
+/** Opcode for xcb_graphics_exposure. */
+#define XCB_GRAPHICS_EXPOSURE 13
+
+/**
+ * @brief xcb_graphics_exposure_event_t
+ **/
+typedef struct xcb_graphics_exposure_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ xcb_drawable_t drawable; /**< */
+ uint16_t x; /**< */
+ uint16_t y; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+ uint16_t minor_opcode; /**< */
+ uint16_t count; /**< */
+ uint8_t major_opcode; /**< */
+ uint8_t pad1[3]; /**< */
+} xcb_graphics_exposure_event_t;
+
+/** Opcode for xcb_no_exposure. */
+#define XCB_NO_EXPOSURE 14
+
+/**
+ * @brief xcb_no_exposure_event_t
+ **/
+typedef struct xcb_no_exposure_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ xcb_drawable_t drawable; /**< */
+ uint16_t minor_opcode; /**< */
+ uint8_t major_opcode; /**< */
+ uint8_t pad1; /**< */
+} xcb_no_exposure_event_t;
+
+typedef enum xcb_visibility_t {
+ XCB_VISIBILITY_UNOBSCURED = 0,
+ XCB_VISIBILITY_PARTIALLY_OBSCURED = 1,
+ XCB_VISIBILITY_FULLY_OBSCURED = 2
+} xcb_visibility_t;
+
+/** Opcode for xcb_visibility_notify. */
+#define XCB_VISIBILITY_NOTIFY 15
+
+/**
+ * @brief xcb_visibility_notify_event_t
+ **/
+typedef struct xcb_visibility_notify_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ xcb_window_t window; /**< */
+ uint8_t state; /**< */
+ uint8_t pad1[3]; /**< */
+} xcb_visibility_notify_event_t;
+
+/** Opcode for xcb_create_notify. */
+#define XCB_CREATE_NOTIFY 16
+
+/**
+ * @brief xcb_create_notify_event_t
+ **/
+typedef struct xcb_create_notify_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ xcb_window_t parent; /**< */
+ xcb_window_t window; /**< */
+ int16_t x; /**< */
+ int16_t y; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+ uint16_t border_width; /**< */
+ uint8_t override_redirect; /**< */
+ uint8_t pad1; /**< */
+} xcb_create_notify_event_t;
+
+/** Opcode for xcb_destroy_notify. */
+#define XCB_DESTROY_NOTIFY 17
+
+/**
+ * @brief xcb_destroy_notify_event_t
+ **/
+typedef struct xcb_destroy_notify_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ xcb_window_t event; /**< */
+ xcb_window_t window; /**< */
+} xcb_destroy_notify_event_t;
+
+/** Opcode for xcb_unmap_notify. */
+#define XCB_UNMAP_NOTIFY 18
+
+/**
+ * @brief xcb_unmap_notify_event_t
+ **/
+typedef struct xcb_unmap_notify_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ xcb_window_t event; /**< */
+ xcb_window_t window; /**< */
+ uint8_t from_configure; /**< */
+ uint8_t pad1[3]; /**< */
+} xcb_unmap_notify_event_t;
+
+/** Opcode for xcb_map_notify. */
+#define XCB_MAP_NOTIFY 19
+
+/**
+ * @brief xcb_map_notify_event_t
+ **/
+typedef struct xcb_map_notify_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ xcb_window_t event; /**< */
+ xcb_window_t window; /**< */
+ uint8_t override_redirect; /**< */
+ uint8_t pad1[3]; /**< */
+} xcb_map_notify_event_t;
+
+/** Opcode for xcb_map_request. */
+#define XCB_MAP_REQUEST 20
+
+/**
+ * @brief xcb_map_request_event_t
+ **/
+typedef struct xcb_map_request_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ xcb_window_t parent; /**< */
+ xcb_window_t window; /**< */
+} xcb_map_request_event_t;
+
+/** Opcode for xcb_reparent_notify. */
+#define XCB_REPARENT_NOTIFY 21
+
+/**
+ * @brief xcb_reparent_notify_event_t
+ **/
+typedef struct xcb_reparent_notify_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ xcb_window_t event; /**< */
+ xcb_window_t window; /**< */
+ xcb_window_t parent; /**< */
+ int16_t x; /**< */
+ int16_t y; /**< */
+ uint8_t override_redirect; /**< */
+ uint8_t pad1[3]; /**< */
+} xcb_reparent_notify_event_t;
+
+/** Opcode for xcb_configure_notify. */
+#define XCB_CONFIGURE_NOTIFY 22
+
+/**
+ * @brief xcb_configure_notify_event_t
+ **/
+typedef struct xcb_configure_notify_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ xcb_window_t event; /**< */
+ xcb_window_t window; /**< */
+ xcb_window_t above_sibling; /**< */
+ int16_t x; /**< */
+ int16_t y; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+ uint16_t border_width; /**< */
+ uint8_t override_redirect; /**< */
+ uint8_t pad1; /**< */
+} xcb_configure_notify_event_t;
+
+/** Opcode for xcb_configure_request. */
+#define XCB_CONFIGURE_REQUEST 23
+
+/**
+ * @brief xcb_configure_request_event_t
+ **/
+typedef struct xcb_configure_request_event_t {
+ uint8_t response_type; /**< */
+ uint8_t stack_mode; /**< */
+ uint16_t sequence; /**< */
+ xcb_window_t parent; /**< */
+ xcb_window_t window; /**< */
+ xcb_window_t sibling; /**< */
+ int16_t x; /**< */
+ int16_t y; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+ uint16_t border_width; /**< */
+ uint16_t value_mask; /**< */
+} xcb_configure_request_event_t;
+
+/** Opcode for xcb_gravity_notify. */
+#define XCB_GRAVITY_NOTIFY 24
+
+/**
+ * @brief xcb_gravity_notify_event_t
+ **/
+typedef struct xcb_gravity_notify_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ xcb_window_t event; /**< */
+ xcb_window_t window; /**< */
+ int16_t x; /**< */
+ int16_t y; /**< */
+} xcb_gravity_notify_event_t;
+
+/** Opcode for xcb_resize_request. */
+#define XCB_RESIZE_REQUEST 25
+
+/**
+ * @brief xcb_resize_request_event_t
+ **/
+typedef struct xcb_resize_request_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ xcb_window_t window; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+} xcb_resize_request_event_t;
+
+typedef enum xcb_place_t {
+ XCB_PLACE_ON_TOP = 0,
+/**< The window is now on top of all siblings. */
+
+ XCB_PLACE_ON_BOTTOM = 1
+/**< The window is now below all siblings. */
+
+} xcb_place_t;
+
+/** Opcode for xcb_circulate_notify. */
+#define XCB_CIRCULATE_NOTIFY 26
+
+/**
+ * @brief xcb_circulate_notify_event_t
+ **/
+typedef struct xcb_circulate_notify_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ xcb_window_t event; /**< */
+ xcb_window_t window; /**< */
+ uint8_t pad1[4]; /**< */
+ uint8_t place; /**< */
+ uint8_t pad2[3]; /**< */
+} xcb_circulate_notify_event_t;
+
+/** Opcode for xcb_circulate_request. */
+#define XCB_CIRCULATE_REQUEST 27
+
+typedef xcb_circulate_notify_event_t xcb_circulate_request_event_t;
+
+typedef enum xcb_property_t {
+ XCB_PROPERTY_NEW_VALUE = 0,
+ XCB_PROPERTY_DELETE = 1
+} xcb_property_t;
+
+/** Opcode for xcb_property_notify. */
+#define XCB_PROPERTY_NOTIFY 28
+
+/**
+ * @brief xcb_property_notify_event_t
+ **/
+typedef struct xcb_property_notify_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ xcb_window_t window; /**< */
+ xcb_atom_t atom; /**< */
+ xcb_timestamp_t time; /**< */
+ uint8_t state; /**< */
+ uint8_t pad1[3]; /**< */
+} xcb_property_notify_event_t;
+
+/** Opcode for xcb_selection_clear. */
+#define XCB_SELECTION_CLEAR 29
+
+/**
+ * @brief xcb_selection_clear_event_t
+ **/
+typedef struct xcb_selection_clear_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ xcb_timestamp_t time; /**< */
+ xcb_window_t owner; /**< */
+ xcb_atom_t selection; /**< */
+} xcb_selection_clear_event_t;
+
+typedef enum xcb_time_t {
+ XCB_TIME_CURRENT_TIME = 0
+} xcb_time_t;
+
+typedef enum xcb_atom_enum_t {
+ XCB_ATOM_NONE = 0,
+ XCB_ATOM_ANY = 0,
+ XCB_ATOM_PRIMARY = 1,
+ XCB_ATOM_SECONDARY = 2,
+ XCB_ATOM_ARC = 3,
+ XCB_ATOM_ATOM = 4,
+ XCB_ATOM_BITMAP = 5,
+ XCB_ATOM_CARDINAL = 6,
+ XCB_ATOM_COLORMAP = 7,
+ XCB_ATOM_CURSOR = 8,
+ XCB_ATOM_CUT_BUFFER0 = 9,
+ XCB_ATOM_CUT_BUFFER1 = 10,
+ XCB_ATOM_CUT_BUFFER2 = 11,
+ XCB_ATOM_CUT_BUFFER3 = 12,
+ XCB_ATOM_CUT_BUFFER4 = 13,
+ XCB_ATOM_CUT_BUFFER5 = 14,
+ XCB_ATOM_CUT_BUFFER6 = 15,
+ XCB_ATOM_CUT_BUFFER7 = 16,
+ XCB_ATOM_DRAWABLE = 17,
+ XCB_ATOM_FONT = 18,
+ XCB_ATOM_INTEGER = 19,
+ XCB_ATOM_PIXMAP = 20,
+ XCB_ATOM_POINT = 21,
+ XCB_ATOM_RECTANGLE = 22,
+ XCB_ATOM_RESOURCE_MANAGER = 23,
+ XCB_ATOM_RGB_COLOR_MAP = 24,
+ XCB_ATOM_RGB_BEST_MAP = 25,
+ XCB_ATOM_RGB_BLUE_MAP = 26,
+ XCB_ATOM_RGB_DEFAULT_MAP = 27,
+ XCB_ATOM_RGB_GRAY_MAP = 28,
+ XCB_ATOM_RGB_GREEN_MAP = 29,
+ XCB_ATOM_RGB_RED_MAP = 30,
+ XCB_ATOM_STRING = 31,
+ XCB_ATOM_VISUALID = 32,
+ XCB_ATOM_WINDOW = 33,
+ XCB_ATOM_WM_COMMAND = 34,
+ XCB_ATOM_WM_HINTS = 35,
+ XCB_ATOM_WM_CLIENT_MACHINE = 36,
+ XCB_ATOM_WM_ICON_NAME = 37,
+ XCB_ATOM_WM_ICON_SIZE = 38,
+ XCB_ATOM_WM_NAME = 39,
+ XCB_ATOM_WM_NORMAL_HINTS = 40,
+ XCB_ATOM_WM_SIZE_HINTS = 41,
+ XCB_ATOM_WM_ZOOM_HINTS = 42,
+ XCB_ATOM_MIN_SPACE = 43,
+ XCB_ATOM_NORM_SPACE = 44,
+ XCB_ATOM_MAX_SPACE = 45,
+ XCB_ATOM_END_SPACE = 46,
+ XCB_ATOM_SUPERSCRIPT_X = 47,
+ XCB_ATOM_SUPERSCRIPT_Y = 48,
+ XCB_ATOM_SUBSCRIPT_X = 49,
+ XCB_ATOM_SUBSCRIPT_Y = 50,
+ XCB_ATOM_UNDERLINE_POSITION = 51,
+ XCB_ATOM_UNDERLINE_THICKNESS = 52,
+ XCB_ATOM_STRIKEOUT_ASCENT = 53,
+ XCB_ATOM_STRIKEOUT_DESCENT = 54,
+ XCB_ATOM_ITALIC_ANGLE = 55,
+ XCB_ATOM_X_HEIGHT = 56,
+ XCB_ATOM_QUAD_WIDTH = 57,
+ XCB_ATOM_WEIGHT = 58,
+ XCB_ATOM_POINT_SIZE = 59,
+ XCB_ATOM_RESOLUTION = 60,
+ XCB_ATOM_COPYRIGHT = 61,
+ XCB_ATOM_NOTICE = 62,
+ XCB_ATOM_FONT_NAME = 63,
+ XCB_ATOM_FAMILY_NAME = 64,
+ XCB_ATOM_FULL_NAME = 65,
+ XCB_ATOM_CAP_HEIGHT = 66,
+ XCB_ATOM_WM_CLASS = 67,
+ XCB_ATOM_WM_TRANSIENT_FOR = 68
+} xcb_atom_enum_t;
+
+/** Opcode for xcb_selection_request. */
+#define XCB_SELECTION_REQUEST 30
+
+/**
+ * @brief xcb_selection_request_event_t
+ **/
+typedef struct xcb_selection_request_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ xcb_timestamp_t time; /**< */
+ xcb_window_t owner; /**< */
+ xcb_window_t requestor; /**< */
+ xcb_atom_t selection; /**< */
+ xcb_atom_t target; /**< */
+ xcb_atom_t property; /**< */
+} xcb_selection_request_event_t;
+
+/** Opcode for xcb_selection_notify. */
+#define XCB_SELECTION_NOTIFY 31
+
+/**
+ * @brief xcb_selection_notify_event_t
+ **/
+typedef struct xcb_selection_notify_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ xcb_timestamp_t time; /**< */
+ xcb_window_t requestor; /**< */
+ xcb_atom_t selection; /**< */
+ xcb_atom_t target; /**< */
+ xcb_atom_t property; /**< */
+} xcb_selection_notify_event_t;
+
+typedef enum xcb_colormap_state_t {
+ XCB_COLORMAP_STATE_UNINSTALLED = 0,
+/**< The colormap was uninstalled. */
+
+ XCB_COLORMAP_STATE_INSTALLED = 1
+/**< The colormap was installed. */
+
+} xcb_colormap_state_t;
+
+typedef enum xcb_colormap_enum_t {
+ XCB_COLORMAP_NONE = 0
+} xcb_colormap_enum_t;
+
+/** Opcode for xcb_colormap_notify. */
+#define XCB_COLORMAP_NOTIFY 32
+
+/**
+ * @brief xcb_colormap_notify_event_t
+ **/
+typedef struct xcb_colormap_notify_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ xcb_window_t window; /**< */
+ xcb_colormap_t colormap; /**< */
+ uint8_t _new; /**< */
+ uint8_t state; /**< */
+ uint8_t pad1[2]; /**< */
+} xcb_colormap_notify_event_t;
+
+/**
+ * @brief xcb_client_message_data_t
+ **/
+typedef union xcb_client_message_data_t {
+ uint8_t data8[20]; /**< */
+ uint16_t data16[10]; /**< */
+ uint32_t data32[5]; /**< */
+} xcb_client_message_data_t;
+
+/**
+ * @brief xcb_client_message_data_iterator_t
+ **/
+typedef struct xcb_client_message_data_iterator_t {
+ xcb_client_message_data_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_client_message_data_iterator_t;
+
+/** Opcode for xcb_client_message. */
+#define XCB_CLIENT_MESSAGE 33
+
+/**
+ * @brief xcb_client_message_event_t
+ **/
+typedef struct xcb_client_message_event_t {
+ uint8_t response_type; /**< */
+ uint8_t format; /**< */
+ uint16_t sequence; /**< */
+ xcb_window_t window; /**< */
+ xcb_atom_t type; /**< */
+ xcb_client_message_data_t data; /**< */
+} xcb_client_message_event_t;
+
+typedef enum xcb_mapping_t {
+ XCB_MAPPING_MODIFIER = 0,
+ XCB_MAPPING_KEYBOARD = 1,
+ XCB_MAPPING_POINTER = 2
+} xcb_mapping_t;
+
+/** Opcode for xcb_mapping_notify. */
+#define XCB_MAPPING_NOTIFY 34
+
+/**
+ * @brief xcb_mapping_notify_event_t
+ **/
+typedef struct xcb_mapping_notify_event_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint8_t request; /**< */
+ xcb_keycode_t first_keycode; /**< */
+ uint8_t count; /**< */
+ uint8_t pad1; /**< */
+} xcb_mapping_notify_event_t;
+
+/** Opcode for xcb_ge. */
+#define XCB_GE 35
+
+/**
+ * @brief xcb_ge_event_t
+ **/
+typedef struct xcb_ge_event_t {
+ uint8_t response_type; /**< */
+ uint8_t extension; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint16_t event_type; /**< */
+ uint8_t pad0[22]; /**< */
+ uint32_t full_sequence; /**< */
+} xcb_ge_event_t;
+
+/** Opcode for xcb_request. */
+#define XCB_REQUEST 1
+
+/**
+ * @brief xcb_request_error_t
+ **/
+typedef struct xcb_request_error_t {
+ uint8_t response_type; /**< */
+ uint8_t error_code; /**< */
+ uint16_t sequence; /**< */
+ uint32_t bad_value; /**< */
+ uint16_t minor_opcode; /**< */
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+} xcb_request_error_t;
+
+/** Opcode for xcb_value. */
+#define XCB_VALUE 2
+
+/**
+ * @brief xcb_value_error_t
+ **/
+typedef struct xcb_value_error_t {
+ uint8_t response_type; /**< */
+ uint8_t error_code; /**< */
+ uint16_t sequence; /**< */
+ uint32_t bad_value; /**< */
+ uint16_t minor_opcode; /**< */
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+} xcb_value_error_t;
+
+/** Opcode for xcb_window. */
+#define XCB_WINDOW 3
+
+typedef xcb_value_error_t xcb_window_error_t;
+
+/** Opcode for xcb_pixmap. */
+#define XCB_PIXMAP 4
+
+typedef xcb_value_error_t xcb_pixmap_error_t;
+
+/** Opcode for xcb_atom. */
+#define XCB_ATOM 5
+
+typedef xcb_value_error_t xcb_atom_error_t;
+
+/** Opcode for xcb_cursor. */
+#define XCB_CURSOR 6
+
+typedef xcb_value_error_t xcb_cursor_error_t;
+
+/** Opcode for xcb_font. */
+#define XCB_FONT 7
+
+typedef xcb_value_error_t xcb_font_error_t;
+
+/** Opcode for xcb_match. */
+#define XCB_MATCH 8
+
+typedef xcb_request_error_t xcb_match_error_t;
+
+/** Opcode for xcb_drawable. */
+#define XCB_DRAWABLE 9
+
+typedef xcb_value_error_t xcb_drawable_error_t;
+
+/** Opcode for xcb_access. */
+#define XCB_ACCESS 10
+
+typedef xcb_request_error_t xcb_access_error_t;
+
+/** Opcode for xcb_alloc. */
+#define XCB_ALLOC 11
+
+typedef xcb_request_error_t xcb_alloc_error_t;
+
+/** Opcode for xcb_colormap. */
+#define XCB_COLORMAP 12
+
+typedef xcb_value_error_t xcb_colormap_error_t;
+
+/** Opcode for xcb_g_context. */
+#define XCB_G_CONTEXT 13
+
+typedef xcb_value_error_t xcb_g_context_error_t;
+
+/** Opcode for xcb_id_choice. */
+#define XCB_ID_CHOICE 14
+
+typedef xcb_value_error_t xcb_id_choice_error_t;
+
+/** Opcode for xcb_name. */
+#define XCB_NAME 15
+
+typedef xcb_request_error_t xcb_name_error_t;
+
+/** Opcode for xcb_length. */
+#define XCB_LENGTH 16
+
+typedef xcb_request_error_t xcb_length_error_t;
+
+/** Opcode for xcb_implementation. */
+#define XCB_IMPLEMENTATION 17
+
+typedef xcb_request_error_t xcb_implementation_error_t;
+
+typedef enum xcb_window_class_t {
+ XCB_WINDOW_CLASS_COPY_FROM_PARENT = 0,
+ XCB_WINDOW_CLASS_INPUT_OUTPUT = 1,
+ XCB_WINDOW_CLASS_INPUT_ONLY = 2
+} xcb_window_class_t;
+
+typedef enum xcb_cw_t {
+ XCB_CW_BACK_PIXMAP = 1,
+/**< Overrides the default background-pixmap. The background pixmap and window must
+have the same root and same depth. Any size pixmap can be used, although some
+sizes may be faster than others.
+
+If `XCB_BACK_PIXMAP_NONE` is specified, the window has no defined background.
+The server may fill the contents with the previous screen contents or with
+contents of its own choosing.
+
+If `XCB_BACK_PIXMAP_PARENT_RELATIVE` is specified, the parent's background is
+used, but the window must have the same depth as the parent (or a Match error
+results). The parent's background is tracked, and the current version is
+used each time the window background is required. */
+
+ XCB_CW_BACK_PIXEL = 2,
+/**< Overrides `BackPixmap`. A pixmap of undefined size filled with the specified
+background pixel is used for the background. Range-checking is not performed,
+the background pixel is truncated to the appropriate number of bits. */
+
+ XCB_CW_BORDER_PIXMAP = 4,
+/**< Overrides the default border-pixmap. The border pixmap and window must have the
+same root and the same depth. Any size pixmap can be used, although some sizes
+may be faster than others.
+
+The special value `XCB_COPY_FROM_PARENT` means the parent's border pixmap is
+copied (subsequent changes to the parent's border attribute do not affect the
+child), but the window must have the same depth as the parent. */
+
+ XCB_CW_BORDER_PIXEL = 8,
+/**< Overrides `BorderPixmap`. A pixmap of undefined size filled with the specified
+border pixel is used for the border. Range checking is not performed on the
+border-pixel value, it is truncated to the appropriate number of bits. */
+
+ XCB_CW_BIT_GRAVITY = 16,
+/**< Defines which region of the window should be retained if the window is resized. */
+
+ XCB_CW_WIN_GRAVITY = 32,
+/**< Defines how the window should be repositioned if the parent is resized (see
+`ConfigureWindow`). */
+
+ XCB_CW_BACKING_STORE = 64,
+/**< A backing-store of `WhenMapped` advises the server that maintaining contents of
+obscured regions when the window is mapped would be beneficial. A backing-store
+of `Always` advises the server that maintaining contents even when the window
+is unmapped would be beneficial. In this case, the server may generate an
+exposure event when the window is created. A value of `NotUseful` advises the
+server that maintaining contents is unnecessary, although a server may still
+choose to maintain contents while the window is mapped. Note that if the server
+maintains contents, then the server should maintain complete contents not just
+the region within the parent boundaries, even if the window is larger than its
+parent. While the server maintains contents, exposure events will not normally
+be generated, but the server may stop maintaining contents at any time. */
+
+ XCB_CW_BACKING_PLANES = 128,
+/**< The backing-planes indicates (with bits set to 1) which bit planes of the
+window hold dynamic data that must be preserved in backing-stores and during
+save-unders. */
+
+ XCB_CW_BACKING_PIXEL = 256,
+/**< The backing-pixel specifies what value to use in planes not covered by
+backing-planes. The server is free to save only the specified bit planes in the
+backing-store or save-under and regenerate the remaining planes with the
+specified pixel value. Any bits beyond the specified depth of the window in
+these values are simply ignored. */
+
+ XCB_CW_OVERRIDE_REDIRECT = 512,
+/**< The override-redirect specifies whether map and configure requests on this
+window should override a SubstructureRedirect on the parent, typically to
+inform a window manager not to tamper with the window. */
+
+ XCB_CW_SAVE_UNDER = 1024,
+/**< If 1, the server is advised that when this window is mapped, saving the
+contents of windows it obscures would be beneficial. */
+
+ XCB_CW_EVENT_MASK = 2048,
+/**< The event-mask defines which events the client is interested in for this window
+(or for some event types, inferiors of the window). */
+
+ XCB_CW_DONT_PROPAGATE = 4096,
+/**< The do-not-propagate-mask defines which events should not be propagated to
+ancestor windows when no client has the event type selected in this window. */
+
+ XCB_CW_COLORMAP = 8192,
+/**< The colormap specifies the colormap that best reflects the true colors of the window. Servers
+capable of supporting multiple hardware colormaps may use this information, and window man-
+agers may use it for InstallColormap requests. The colormap must have the same visual type
+and root as the window (or a Match error results). If CopyFromParent is specified, the parent's
+colormap is copied (subsequent changes to the parent's colormap attribute do not affect the child).
+However, the window must have the same visual type as the parent (or a Match error results),
+and the parent must not have a colormap of None (or a Match error results). For an explanation
+of None, see FreeColormap request. The colormap is copied by sharing the colormap object
+between the child and the parent, not by making a complete copy of the colormap contents. */
+
+ XCB_CW_CURSOR = 16384
+/**< If a cursor is specified, it will be used whenever the pointer is in the window. If None is speci-
+fied, the parent's cursor will be used when the pointer is in the window, and any change in the
+parent's cursor will cause an immediate change in the displayed cursor. */
+
+} xcb_cw_t;
+
+typedef enum xcb_back_pixmap_t {
+ XCB_BACK_PIXMAP_NONE = 0,
+ XCB_BACK_PIXMAP_PARENT_RELATIVE = 1
+} xcb_back_pixmap_t;
+
+typedef enum xcb_gravity_t {
+ XCB_GRAVITY_BIT_FORGET = 0,
+ XCB_GRAVITY_WIN_UNMAP = 0,
+ XCB_GRAVITY_NORTH_WEST = 1,
+ XCB_GRAVITY_NORTH = 2,
+ XCB_GRAVITY_NORTH_EAST = 3,
+ XCB_GRAVITY_WEST = 4,
+ XCB_GRAVITY_CENTER = 5,
+ XCB_GRAVITY_EAST = 6,
+ XCB_GRAVITY_SOUTH_WEST = 7,
+ XCB_GRAVITY_SOUTH = 8,
+ XCB_GRAVITY_SOUTH_EAST = 9,
+ XCB_GRAVITY_STATIC = 10
+} xcb_gravity_t;
+
+/** Opcode for xcb_create_window. */
+#define XCB_CREATE_WINDOW 1
+
+/**
+ * @brief xcb_create_window_request_t
+ **/
+typedef struct xcb_create_window_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t depth; /**< */
+ uint16_t length; /**< */
+ xcb_window_t wid; /**< */
+ xcb_window_t parent; /**< */
+ int16_t x; /**< */
+ int16_t y; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+ uint16_t border_width; /**< */
+ uint16_t _class; /**< */
+ xcb_visualid_t visual; /**< */
+ uint32_t value_mask; /**< */
+} xcb_create_window_request_t;
+
+/** Opcode for xcb_change_window_attributes. */
+#define XCB_CHANGE_WINDOW_ATTRIBUTES 2
+
+/**
+ * @brief xcb_change_window_attributes_request_t
+ **/
+typedef struct xcb_change_window_attributes_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+ uint32_t value_mask; /**< */
+} xcb_change_window_attributes_request_t;
+
+typedef enum xcb_map_state_t {
+ XCB_MAP_STATE_UNMAPPED = 0,
+ XCB_MAP_STATE_UNVIEWABLE = 1,
+ XCB_MAP_STATE_VIEWABLE = 2
+} xcb_map_state_t;
+
+/**
+ * @brief xcb_get_window_attributes_cookie_t
+ **/
+typedef struct xcb_get_window_attributes_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_get_window_attributes_cookie_t;
+
+/** Opcode for xcb_get_window_attributes. */
+#define XCB_GET_WINDOW_ATTRIBUTES 3
+
+/**
+ * @brief xcb_get_window_attributes_request_t
+ **/
+typedef struct xcb_get_window_attributes_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+} xcb_get_window_attributes_request_t;
+
+/**
+ * @brief xcb_get_window_attributes_reply_t
+ **/
+typedef struct xcb_get_window_attributes_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t backing_store; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ xcb_visualid_t visual; /**< */
+ uint16_t _class; /**< */
+ uint8_t bit_gravity; /**< */
+ uint8_t win_gravity; /**< */
+ uint32_t backing_planes; /**< */
+ uint32_t backing_pixel; /**< */
+ uint8_t save_under; /**< */
+ uint8_t map_is_installed; /**< */
+ uint8_t map_state; /**< */
+ uint8_t override_redirect; /**< */
+ xcb_colormap_t colormap; /**< */
+ uint32_t all_event_masks; /**< */
+ uint32_t your_event_mask; /**< */
+ uint16_t do_not_propagate_mask; /**< */
+ uint8_t pad0[2]; /**< */
+} xcb_get_window_attributes_reply_t;
+
+/** Opcode for xcb_destroy_window. */
+#define XCB_DESTROY_WINDOW 4
+
+/**
+ * @brief xcb_destroy_window_request_t
+ **/
+typedef struct xcb_destroy_window_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+} xcb_destroy_window_request_t;
+
+/** Opcode for xcb_destroy_subwindows. */
+#define XCB_DESTROY_SUBWINDOWS 5
+
+/**
+ * @brief xcb_destroy_subwindows_request_t
+ **/
+typedef struct xcb_destroy_subwindows_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+} xcb_destroy_subwindows_request_t;
+
+typedef enum xcb_set_mode_t {
+ XCB_SET_MODE_INSERT = 0,
+ XCB_SET_MODE_DELETE = 1
+} xcb_set_mode_t;
+
+/** Opcode for xcb_change_save_set. */
+#define XCB_CHANGE_SAVE_SET 6
+
+/**
+ * @brief xcb_change_save_set_request_t
+ **/
+typedef struct xcb_change_save_set_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t mode; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+} xcb_change_save_set_request_t;
+
+/** Opcode for xcb_reparent_window. */
+#define XCB_REPARENT_WINDOW 7
+
+/**
+ * @brief xcb_reparent_window_request_t
+ **/
+typedef struct xcb_reparent_window_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+ xcb_window_t parent; /**< */
+ int16_t x; /**< */
+ int16_t y; /**< */
+} xcb_reparent_window_request_t;
+
+/** Opcode for xcb_map_window. */
+#define XCB_MAP_WINDOW 8
+
+/**
+ * @brief xcb_map_window_request_t
+ **/
+typedef struct xcb_map_window_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+} xcb_map_window_request_t;
+
+/** Opcode for xcb_map_subwindows. */
+#define XCB_MAP_SUBWINDOWS 9
+
+/**
+ * @brief xcb_map_subwindows_request_t
+ **/
+typedef struct xcb_map_subwindows_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+} xcb_map_subwindows_request_t;
+
+/** Opcode for xcb_unmap_window. */
+#define XCB_UNMAP_WINDOW 10
+
+/**
+ * @brief xcb_unmap_window_request_t
+ **/
+typedef struct xcb_unmap_window_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+} xcb_unmap_window_request_t;
+
+/** Opcode for xcb_unmap_subwindows. */
+#define XCB_UNMAP_SUBWINDOWS 11
+
+/**
+ * @brief xcb_unmap_subwindows_request_t
+ **/
+typedef struct xcb_unmap_subwindows_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+} xcb_unmap_subwindows_request_t;
+
+typedef enum xcb_config_window_t {
+ XCB_CONFIG_WINDOW_X = 1,
+ XCB_CONFIG_WINDOW_Y = 2,
+ XCB_CONFIG_WINDOW_WIDTH = 4,
+ XCB_CONFIG_WINDOW_HEIGHT = 8,
+ XCB_CONFIG_WINDOW_BORDER_WIDTH = 16,
+ XCB_CONFIG_WINDOW_SIBLING = 32,
+ XCB_CONFIG_WINDOW_STACK_MODE = 64
+} xcb_config_window_t;
+
+typedef enum xcb_stack_mode_t {
+ XCB_STACK_MODE_ABOVE = 0,
+ XCB_STACK_MODE_BELOW = 1,
+ XCB_STACK_MODE_TOP_IF = 2,
+ XCB_STACK_MODE_BOTTOM_IF = 3,
+ XCB_STACK_MODE_OPPOSITE = 4
+} xcb_stack_mode_t;
+
+/** Opcode for xcb_configure_window. */
+#define XCB_CONFIGURE_WINDOW 12
+
+/**
+ * @brief xcb_configure_window_request_t
+ **/
+typedef struct xcb_configure_window_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+ uint16_t value_mask; /**< */
+ uint8_t pad1[2]; /**< */
+} xcb_configure_window_request_t;
+
+typedef enum xcb_circulate_t {
+ XCB_CIRCULATE_RAISE_LOWEST = 0,
+ XCB_CIRCULATE_LOWER_HIGHEST = 1
+} xcb_circulate_t;
+
+/** Opcode for xcb_circulate_window. */
+#define XCB_CIRCULATE_WINDOW 13
+
+/**
+ * @brief xcb_circulate_window_request_t
+ **/
+typedef struct xcb_circulate_window_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t direction; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+} xcb_circulate_window_request_t;
+
+/**
+ * @brief xcb_get_geometry_cookie_t
+ **/
+typedef struct xcb_get_geometry_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_get_geometry_cookie_t;
+
+/** Opcode for xcb_get_geometry. */
+#define XCB_GET_GEOMETRY 14
+
+/**
+ * @brief xcb_get_geometry_request_t
+ **/
+typedef struct xcb_get_geometry_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_drawable_t drawable; /**< */
+} xcb_get_geometry_request_t;
+
+/**
+ * @brief xcb_get_geometry_reply_t
+ **/
+typedef struct xcb_get_geometry_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t depth; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ xcb_window_t root; /**< */
+ int16_t x; /**< */
+ int16_t y; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+ uint16_t border_width; /**< */
+ uint8_t pad0[2]; /**< */
+} xcb_get_geometry_reply_t;
+
+/**
+ * @brief xcb_query_tree_cookie_t
+ **/
+typedef struct xcb_query_tree_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_query_tree_cookie_t;
+
+/** Opcode for xcb_query_tree. */
+#define XCB_QUERY_TREE 15
+
+/**
+ * @brief xcb_query_tree_request_t
+ **/
+typedef struct xcb_query_tree_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+} xcb_query_tree_request_t;
+
+/**
+ * @brief xcb_query_tree_reply_t
+ **/
+typedef struct xcb_query_tree_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ xcb_window_t root; /**< */
+ xcb_window_t parent; /**< */
+ uint16_t children_len; /**< */
+ uint8_t pad1[14]; /**< */
+} xcb_query_tree_reply_t;
+
+/**
+ * @brief xcb_intern_atom_cookie_t
+ **/
+typedef struct xcb_intern_atom_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_intern_atom_cookie_t;
+
+/** Opcode for xcb_intern_atom. */
+#define XCB_INTERN_ATOM 16
+
+/**
+ * @brief xcb_intern_atom_request_t
+ **/
+typedef struct xcb_intern_atom_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t only_if_exists; /**< */
+ uint16_t length; /**< */
+ uint16_t name_len; /**< */
+ uint8_t pad0[2]; /**< */
+} xcb_intern_atom_request_t;
+
+/**
+ * @brief xcb_intern_atom_reply_t
+ **/
+typedef struct xcb_intern_atom_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ xcb_atom_t atom; /**< */
+} xcb_intern_atom_reply_t;
+
+/**
+ * @brief xcb_get_atom_name_cookie_t
+ **/
+typedef struct xcb_get_atom_name_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_get_atom_name_cookie_t;
+
+/** Opcode for xcb_get_atom_name. */
+#define XCB_GET_ATOM_NAME 17
+
+/**
+ * @brief xcb_get_atom_name_request_t
+ **/
+typedef struct xcb_get_atom_name_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_atom_t atom; /**< */
+} xcb_get_atom_name_request_t;
+
+/**
+ * @brief xcb_get_atom_name_reply_t
+ **/
+typedef struct xcb_get_atom_name_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint16_t name_len; /**< */
+ uint8_t pad1[22]; /**< */
+} xcb_get_atom_name_reply_t;
+
+typedef enum xcb_prop_mode_t {
+ XCB_PROP_MODE_REPLACE = 0,
+/**< Discard the previous property value and store the new data. */
+
+ XCB_PROP_MODE_PREPEND = 1,
+/**< Insert the new data before the beginning of existing data. The `format` must
+match existing property value. If the property is undefined, it is treated as
+defined with the correct type and format with zero-length data. */
+
+ XCB_PROP_MODE_APPEND = 2
+/**< Insert the new data after the beginning of existing data. The `format` must
+match existing property value. If the property is undefined, it is treated as
+defined with the correct type and format with zero-length data. */
+
+} xcb_prop_mode_t;
+
+/** Opcode for xcb_change_property. */
+#define XCB_CHANGE_PROPERTY 18
+
+/**
+ * @brief xcb_change_property_request_t
+ **/
+typedef struct xcb_change_property_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t mode; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+ xcb_atom_t property; /**< */
+ xcb_atom_t type; /**< */
+ uint8_t format; /**< */
+ uint8_t pad0[3]; /**< */
+ uint32_t data_len; /**< */
+} xcb_change_property_request_t;
+
+/** Opcode for xcb_delete_property. */
+#define XCB_DELETE_PROPERTY 19
+
+/**
+ * @brief xcb_delete_property_request_t
+ **/
+typedef struct xcb_delete_property_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+ xcb_atom_t property; /**< */
+} xcb_delete_property_request_t;
+
+typedef enum xcb_get_property_type_t {
+ XCB_GET_PROPERTY_TYPE_ANY = 0
+} xcb_get_property_type_t;
+
+/**
+ * @brief xcb_get_property_cookie_t
+ **/
+typedef struct xcb_get_property_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_get_property_cookie_t;
+
+/** Opcode for xcb_get_property. */
+#define XCB_GET_PROPERTY 20
+
+/**
+ * @brief xcb_get_property_request_t
+ **/
+typedef struct xcb_get_property_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t _delete; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+ xcb_atom_t property; /**< */
+ xcb_atom_t type; /**< */
+ uint32_t long_offset; /**< */
+ uint32_t long_length; /**< */
+} xcb_get_property_request_t;
+
+/**
+ * @brief xcb_get_property_reply_t
+ **/
+typedef struct xcb_get_property_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t format; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ xcb_atom_t type; /**< */
+ uint32_t bytes_after; /**< */
+ uint32_t value_len; /**< */
+ uint8_t pad0[12]; /**< */
+} xcb_get_property_reply_t;
+
+/**
+ * @brief xcb_list_properties_cookie_t
+ **/
+typedef struct xcb_list_properties_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_list_properties_cookie_t;
+
+/** Opcode for xcb_list_properties. */
+#define XCB_LIST_PROPERTIES 21
+
+/**
+ * @brief xcb_list_properties_request_t
+ **/
+typedef struct xcb_list_properties_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+} xcb_list_properties_request_t;
+
+/**
+ * @brief xcb_list_properties_reply_t
+ **/
+typedef struct xcb_list_properties_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint16_t atoms_len; /**< */
+ uint8_t pad1[22]; /**< */
+} xcb_list_properties_reply_t;
+
+/** Opcode for xcb_set_selection_owner. */
+#define XCB_SET_SELECTION_OWNER 22
+
+/**
+ * @brief xcb_set_selection_owner_request_t
+ **/
+typedef struct xcb_set_selection_owner_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t owner; /**< */
+ xcb_atom_t selection; /**< */
+ xcb_timestamp_t time; /**< */
+} xcb_set_selection_owner_request_t;
+
+/**
+ * @brief xcb_get_selection_owner_cookie_t
+ **/
+typedef struct xcb_get_selection_owner_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_get_selection_owner_cookie_t;
+
+/** Opcode for xcb_get_selection_owner. */
+#define XCB_GET_SELECTION_OWNER 23
+
+/**
+ * @brief xcb_get_selection_owner_request_t
+ **/
+typedef struct xcb_get_selection_owner_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_atom_t selection; /**< */
+} xcb_get_selection_owner_request_t;
+
+/**
+ * @brief xcb_get_selection_owner_reply_t
+ **/
+typedef struct xcb_get_selection_owner_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ xcb_window_t owner; /**< */
+} xcb_get_selection_owner_reply_t;
+
+/** Opcode for xcb_convert_selection. */
+#define XCB_CONVERT_SELECTION 24
+
+/**
+ * @brief xcb_convert_selection_request_t
+ **/
+typedef struct xcb_convert_selection_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t requestor; /**< */
+ xcb_atom_t selection; /**< */
+ xcb_atom_t target; /**< */
+ xcb_atom_t property; /**< */
+ xcb_timestamp_t time; /**< */
+} xcb_convert_selection_request_t;
+
+typedef enum xcb_send_event_dest_t {
+ XCB_SEND_EVENT_DEST_POINTER_WINDOW = 0,
+ XCB_SEND_EVENT_DEST_ITEM_FOCUS = 1
+} xcb_send_event_dest_t;
+
+/** Opcode for xcb_send_event. */
+#define XCB_SEND_EVENT 25
+
+/**
+ * @brief xcb_send_event_request_t
+ **/
+typedef struct xcb_send_event_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t propagate; /**< */
+ uint16_t length; /**< */
+ xcb_window_t destination; /**< */
+ uint32_t event_mask; /**< */
+ char event[32]; /**< */
+} xcb_send_event_request_t;
+
+typedef enum xcb_grab_mode_t {
+ XCB_GRAB_MODE_SYNC = 0,
+/**< The state of the keyboard appears to freeze: No further keyboard events are
+generated by the server until the grabbing client issues a releasing
+`AllowEvents` request or until the keyboard grab is released. */
+
+ XCB_GRAB_MODE_ASYNC = 1
+/**< Keyboard event processing continues normally. */
+
+} xcb_grab_mode_t;
+
+typedef enum xcb_grab_status_t {
+ XCB_GRAB_STATUS_SUCCESS = 0,
+ XCB_GRAB_STATUS_ALREADY_GRABBED = 1,
+ XCB_GRAB_STATUS_INVALID_TIME = 2,
+ XCB_GRAB_STATUS_NOT_VIEWABLE = 3,
+ XCB_GRAB_STATUS_FROZEN = 4
+} xcb_grab_status_t;
+
+typedef enum xcb_cursor_enum_t {
+ XCB_CURSOR_NONE = 0
+} xcb_cursor_enum_t;
+
+/**
+ * @brief xcb_grab_pointer_cookie_t
+ **/
+typedef struct xcb_grab_pointer_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_grab_pointer_cookie_t;
+
+/** Opcode for xcb_grab_pointer. */
+#define XCB_GRAB_POINTER 26
+
+/**
+ * @brief xcb_grab_pointer_request_t
+ **/
+typedef struct xcb_grab_pointer_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t owner_events; /**< */
+ uint16_t length; /**< */
+ xcb_window_t grab_window; /**< */
+ uint16_t event_mask; /**< */
+ uint8_t pointer_mode; /**< */
+ uint8_t keyboard_mode; /**< */
+ xcb_window_t confine_to; /**< */
+ xcb_cursor_t cursor; /**< */
+ xcb_timestamp_t time; /**< */
+} xcb_grab_pointer_request_t;
+
+/**
+ * @brief xcb_grab_pointer_reply_t
+ **/
+typedef struct xcb_grab_pointer_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t status; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+} xcb_grab_pointer_reply_t;
+
+/** Opcode for xcb_ungrab_pointer. */
+#define XCB_UNGRAB_POINTER 27
+
+/**
+ * @brief xcb_ungrab_pointer_request_t
+ **/
+typedef struct xcb_ungrab_pointer_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_timestamp_t time; /**< */
+} xcb_ungrab_pointer_request_t;
+
+typedef enum xcb_button_index_t {
+ XCB_BUTTON_INDEX_ANY = 0,
+/**< Any of the following (or none): */
+
+ XCB_BUTTON_INDEX_1 = 1,
+/**< The left mouse button. */
+
+ XCB_BUTTON_INDEX_2 = 2,
+/**< The right mouse button. */
+
+ XCB_BUTTON_INDEX_3 = 3,
+/**< The middle mouse button. */
+
+ XCB_BUTTON_INDEX_4 = 4,
+/**< Scroll wheel. TODO: direction? */
+
+ XCB_BUTTON_INDEX_5 = 5
+/**< Scroll wheel. TODO: direction? */
+
+} xcb_button_index_t;
+
+/** Opcode for xcb_grab_button. */
+#define XCB_GRAB_BUTTON 28
+
+/**
+ * @brief xcb_grab_button_request_t
+ **/
+typedef struct xcb_grab_button_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t owner_events; /**< */
+ uint16_t length; /**< */
+ xcb_window_t grab_window; /**< */
+ uint16_t event_mask; /**< */
+ uint8_t pointer_mode; /**< */
+ uint8_t keyboard_mode; /**< */
+ xcb_window_t confine_to; /**< */
+ xcb_cursor_t cursor; /**< */
+ uint8_t button; /**< */
+ uint8_t pad0; /**< */
+ uint16_t modifiers; /**< */
+} xcb_grab_button_request_t;
+
+/** Opcode for xcb_ungrab_button. */
+#define XCB_UNGRAB_BUTTON 29
+
+/**
+ * @brief xcb_ungrab_button_request_t
+ **/
+typedef struct xcb_ungrab_button_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t button; /**< */
+ uint16_t length; /**< */
+ xcb_window_t grab_window; /**< */
+ uint16_t modifiers; /**< */
+ uint8_t pad0[2]; /**< */
+} xcb_ungrab_button_request_t;
+
+/** Opcode for xcb_change_active_pointer_grab. */
+#define XCB_CHANGE_ACTIVE_POINTER_GRAB 30
+
+/**
+ * @brief xcb_change_active_pointer_grab_request_t
+ **/
+typedef struct xcb_change_active_pointer_grab_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_cursor_t cursor; /**< */
+ xcb_timestamp_t time; /**< */
+ uint16_t event_mask; /**< */
+ uint8_t pad1[2]; /**< */
+} xcb_change_active_pointer_grab_request_t;
+
+/**
+ * @brief xcb_grab_keyboard_cookie_t
+ **/
+typedef struct xcb_grab_keyboard_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_grab_keyboard_cookie_t;
+
+/** Opcode for xcb_grab_keyboard. */
+#define XCB_GRAB_KEYBOARD 31
+
+/**
+ * @brief xcb_grab_keyboard_request_t
+ **/
+typedef struct xcb_grab_keyboard_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t owner_events; /**< */
+ uint16_t length; /**< */
+ xcb_window_t grab_window; /**< */
+ xcb_timestamp_t time; /**< */
+ uint8_t pointer_mode; /**< */
+ uint8_t keyboard_mode; /**< */
+ uint8_t pad0[2]; /**< */
+} xcb_grab_keyboard_request_t;
+
+/**
+ * @brief xcb_grab_keyboard_reply_t
+ **/
+typedef struct xcb_grab_keyboard_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t status; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+} xcb_grab_keyboard_reply_t;
+
+/** Opcode for xcb_ungrab_keyboard. */
+#define XCB_UNGRAB_KEYBOARD 32
+
+/**
+ * @brief xcb_ungrab_keyboard_request_t
+ **/
+typedef struct xcb_ungrab_keyboard_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_timestamp_t time; /**< */
+} xcb_ungrab_keyboard_request_t;
+
+typedef enum xcb_grab_t {
+ XCB_GRAB_ANY = 0
+} xcb_grab_t;
+
+/** Opcode for xcb_grab_key. */
+#define XCB_GRAB_KEY 33
+
+/**
+ * @brief xcb_grab_key_request_t
+ **/
+typedef struct xcb_grab_key_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t owner_events; /**< */
+ uint16_t length; /**< */
+ xcb_window_t grab_window; /**< */
+ uint16_t modifiers; /**< */
+ xcb_keycode_t key; /**< */
+ uint8_t pointer_mode; /**< */
+ uint8_t keyboard_mode; /**< */
+ uint8_t pad0[3]; /**< */
+} xcb_grab_key_request_t;
+
+/** Opcode for xcb_ungrab_key. */
+#define XCB_UNGRAB_KEY 34
+
+/**
+ * @brief xcb_ungrab_key_request_t
+ **/
+typedef struct xcb_ungrab_key_request_t {
+ uint8_t major_opcode; /**< */
+ xcb_keycode_t key; /**< */
+ uint16_t length; /**< */
+ xcb_window_t grab_window; /**< */
+ uint16_t modifiers; /**< */
+ uint8_t pad0[2]; /**< */
+} xcb_ungrab_key_request_t;
+
+typedef enum xcb_allow_t {
+ XCB_ALLOW_ASYNC_POINTER = 0,
+/**< For AsyncPointer, if the pointer is frozen by the client, pointer event
+processing continues normally. If the pointer is frozen twice by the client on
+behalf of two separate grabs, AsyncPointer thaws for both. AsyncPointer has no
+effect if the pointer is not frozen by the client, but the pointer need not be
+grabbed by the client.
+
+TODO: rewrite this in more understandable terms. */
+
+ XCB_ALLOW_SYNC_POINTER = 1,
+/**< For SyncPointer, if the pointer is frozen and actively grabbed by the client,
+pointer event processing continues normally until the next ButtonPress or
+ButtonRelease event is reported to the client, at which time the pointer again
+appears to freeze. However, if the reported event causes the pointer grab to be
+released, then the pointer does not freeze. SyncPointer has no effect if the
+pointer is not frozen by the client or if the pointer is not grabbed by the
+client. */
+
+ XCB_ALLOW_REPLAY_POINTER = 2,
+/**< For ReplayPointer, if the pointer is actively grabbed by the client and is
+frozen as the result of an event having been sent to the client (either from
+the activation of a GrabButton or from a previous AllowEvents with mode
+SyncPointer but not from a GrabPointer), then the pointer grab is released and
+that event is completely reprocessed, this time ignoring any passive grabs at
+or above (towards the root) the grab-window of the grab just released. The
+request has no effect if the pointer is not grabbed by the client or if the
+pointer is not frozen as the result of an event. */
+
+ XCB_ALLOW_ASYNC_KEYBOARD = 3,
+/**< For AsyncKeyboard, if the keyboard is frozen by the client, keyboard event
+processing continues normally. If the keyboard is frozen twice by the client on
+behalf of two separate grabs, AsyncKeyboard thaws for both. AsyncKeyboard has
+no effect if the keyboard is not frozen by the client, but the keyboard need
+not be grabbed by the client. */
+
+ XCB_ALLOW_SYNC_KEYBOARD = 4,
+/**< For SyncKeyboard, if the keyboard is frozen and actively grabbed by the client,
+keyboard event processing continues normally until the next KeyPress or
+KeyRelease event is reported to the client, at which time the keyboard again
+appears to freeze. However, if the reported event causes the keyboard grab to
+be released, then the keyboard does not freeze. SyncKeyboard has no effect if
+the keyboard is not frozen by the client or if the keyboard is not grabbed by
+the client. */
+
+ XCB_ALLOW_REPLAY_KEYBOARD = 5,
+/**< For ReplayKeyboard, if the keyboard is actively grabbed by the client and is
+frozen as the result of an event having been sent to the client (either from
+the activation of a GrabKey or from a previous AllowEvents with mode
+SyncKeyboard but not from a GrabKeyboard), then the keyboard grab is released
+and that event is completely reprocessed, this time ignoring any passive grabs
+at or above (towards the root) the grab-window of the grab just released. The
+request has no effect if the keyboard is not grabbed by the client or if the
+keyboard is not frozen as the result of an event. */
+
+ XCB_ALLOW_ASYNC_BOTH = 6,
+/**< For AsyncBoth, if the pointer and the keyboard are frozen by the client, event
+processing for both devices continues normally. If a device is frozen twice by
+the client on behalf of two separate grabs, AsyncBoth thaws for both. AsyncBoth
+has no effect unless both pointer and keyboard are frozen by the client. */
+
+ XCB_ALLOW_SYNC_BOTH = 7
+/**< For SyncBoth, if both pointer and keyboard are frozen by the client, event
+processing (for both devices) continues normally until the next ButtonPress,
+ButtonRelease, KeyPress, or KeyRelease event is reported to the client for a
+grabbed device (button event for the pointer, key event for the keyboard), at
+which time the devices again appear to freeze. However, if the reported event
+causes the grab to be released, then the devices do not freeze (but if the
+other device is still grabbed, then a subsequent event for it will still cause
+both devices to freeze). SyncBoth has no effect unless both pointer and
+keyboard are frozen by the client. If the pointer or keyboard is frozen twice
+by the client on behalf of two separate grabs, SyncBoth thaws for both (but a
+subsequent freeze for SyncBoth will only freeze each device once). */
+
+} xcb_allow_t;
+
+/** Opcode for xcb_allow_events. */
+#define XCB_ALLOW_EVENTS 35
+
+/**
+ * @brief xcb_allow_events_request_t
+ **/
+typedef struct xcb_allow_events_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t mode; /**< */
+ uint16_t length; /**< */
+ xcb_timestamp_t time; /**< */
+} xcb_allow_events_request_t;
+
+/** Opcode for xcb_grab_server. */
+#define XCB_GRAB_SERVER 36
+
+/**
+ * @brief xcb_grab_server_request_t
+ **/
+typedef struct xcb_grab_server_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+} xcb_grab_server_request_t;
+
+/** Opcode for xcb_ungrab_server. */
+#define XCB_UNGRAB_SERVER 37
+
+/**
+ * @brief xcb_ungrab_server_request_t
+ **/
+typedef struct xcb_ungrab_server_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+} xcb_ungrab_server_request_t;
+
+/**
+ * @brief xcb_query_pointer_cookie_t
+ **/
+typedef struct xcb_query_pointer_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_query_pointer_cookie_t;
+
+/** Opcode for xcb_query_pointer. */
+#define XCB_QUERY_POINTER 38
+
+/**
+ * @brief xcb_query_pointer_request_t
+ **/
+typedef struct xcb_query_pointer_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+} xcb_query_pointer_request_t;
+
+/**
+ * @brief xcb_query_pointer_reply_t
+ **/
+typedef struct xcb_query_pointer_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t same_screen; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ xcb_window_t root; /**< */
+ xcb_window_t child; /**< */
+ int16_t root_x; /**< */
+ int16_t root_y; /**< */
+ int16_t win_x; /**< */
+ int16_t win_y; /**< */
+ uint16_t mask; /**< */
+ uint8_t pad0[2]; /**< */
+} xcb_query_pointer_reply_t;
+
+/**
+ * @brief xcb_timecoord_t
+ **/
+typedef struct xcb_timecoord_t {
+ xcb_timestamp_t time; /**< */
+ int16_t x; /**< */
+ int16_t y; /**< */
+} xcb_timecoord_t;
+
+/**
+ * @brief xcb_timecoord_iterator_t
+ **/
+typedef struct xcb_timecoord_iterator_t {
+ xcb_timecoord_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_timecoord_iterator_t;
+
+/**
+ * @brief xcb_get_motion_events_cookie_t
+ **/
+typedef struct xcb_get_motion_events_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_get_motion_events_cookie_t;
+
+/** Opcode for xcb_get_motion_events. */
+#define XCB_GET_MOTION_EVENTS 39
+
+/**
+ * @brief xcb_get_motion_events_request_t
+ **/
+typedef struct xcb_get_motion_events_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+ xcb_timestamp_t start; /**< */
+ xcb_timestamp_t stop; /**< */
+} xcb_get_motion_events_request_t;
+
+/**
+ * @brief xcb_get_motion_events_reply_t
+ **/
+typedef struct xcb_get_motion_events_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint32_t events_len; /**< */
+ uint8_t pad1[20]; /**< */
+} xcb_get_motion_events_reply_t;
+
+/**
+ * @brief xcb_translate_coordinates_cookie_t
+ **/
+typedef struct xcb_translate_coordinates_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_translate_coordinates_cookie_t;
+
+/** Opcode for xcb_translate_coordinates. */
+#define XCB_TRANSLATE_COORDINATES 40
+
+/**
+ * @brief xcb_translate_coordinates_request_t
+ **/
+typedef struct xcb_translate_coordinates_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t src_window; /**< */
+ xcb_window_t dst_window; /**< */
+ int16_t src_x; /**< */
+ int16_t src_y; /**< */
+} xcb_translate_coordinates_request_t;
+
+/**
+ * @brief xcb_translate_coordinates_reply_t
+ **/
+typedef struct xcb_translate_coordinates_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t same_screen; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ xcb_window_t child; /**< */
+ int16_t dst_x; /**< */
+ int16_t dst_y; /**< */
+} xcb_translate_coordinates_reply_t;
+
+/** Opcode for xcb_warp_pointer. */
+#define XCB_WARP_POINTER 41
+
+/**
+ * @brief xcb_warp_pointer_request_t
+ **/
+typedef struct xcb_warp_pointer_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t src_window; /**< */
+ xcb_window_t dst_window; /**< */
+ int16_t src_x; /**< */
+ int16_t src_y; /**< */
+ uint16_t src_width; /**< */
+ uint16_t src_height; /**< */
+ int16_t dst_x; /**< */
+ int16_t dst_y; /**< */
+} xcb_warp_pointer_request_t;
+
+typedef enum xcb_input_focus_t {
+ XCB_INPUT_FOCUS_NONE = 0,
+/**< The focus reverts to `XCB_NONE`, so no window will have the input focus. */
+
+ XCB_INPUT_FOCUS_POINTER_ROOT = 1,
+/**< The focus reverts to `XCB_POINTER_ROOT` respectively. When the focus reverts,
+FocusIn and FocusOut events are generated, but the last-focus-change time is
+not changed. */
+
+ XCB_INPUT_FOCUS_PARENT = 2,
+/**< The focus reverts to the parent (or closest viewable ancestor) and the new
+revert_to value is `XCB_INPUT_FOCUS_NONE`. */
+
+ XCB_INPUT_FOCUS_FOLLOW_KEYBOARD = 3
+/**< NOT YET DOCUMENTED. Only relevant for the xinput extension. */
+
+} xcb_input_focus_t;
+
+/** Opcode for xcb_set_input_focus. */
+#define XCB_SET_INPUT_FOCUS 42
+
+/**
+ * @brief xcb_set_input_focus_request_t
+ **/
+typedef struct xcb_set_input_focus_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t revert_to; /**< */
+ uint16_t length; /**< */
+ xcb_window_t focus; /**< */
+ xcb_timestamp_t time; /**< */
+} xcb_set_input_focus_request_t;
+
+/**
+ * @brief xcb_get_input_focus_cookie_t
+ **/
+typedef struct xcb_get_input_focus_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_get_input_focus_cookie_t;
+
+/** Opcode for xcb_get_input_focus. */
+#define XCB_GET_INPUT_FOCUS 43
+
+/**
+ * @brief xcb_get_input_focus_request_t
+ **/
+typedef struct xcb_get_input_focus_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+} xcb_get_input_focus_request_t;
+
+/**
+ * @brief xcb_get_input_focus_reply_t
+ **/
+typedef struct xcb_get_input_focus_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t revert_to; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ xcb_window_t focus; /**< */
+} xcb_get_input_focus_reply_t;
+
+/**
+ * @brief xcb_query_keymap_cookie_t
+ **/
+typedef struct xcb_query_keymap_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_query_keymap_cookie_t;
+
+/** Opcode for xcb_query_keymap. */
+#define XCB_QUERY_KEYMAP 44
+
+/**
+ * @brief xcb_query_keymap_request_t
+ **/
+typedef struct xcb_query_keymap_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+} xcb_query_keymap_request_t;
+
+/**
+ * @brief xcb_query_keymap_reply_t
+ **/
+typedef struct xcb_query_keymap_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint8_t keys[32]; /**< */
+} xcb_query_keymap_reply_t;
+
+/** Opcode for xcb_open_font. */
+#define XCB_OPEN_FONT 45
+
+/**
+ * @brief xcb_open_font_request_t
+ **/
+typedef struct xcb_open_font_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_font_t fid; /**< */
+ uint16_t name_len; /**< */
+ uint8_t pad1[2]; /**< */
+} xcb_open_font_request_t;
+
+/** Opcode for xcb_close_font. */
+#define XCB_CLOSE_FONT 46
+
+/**
+ * @brief xcb_close_font_request_t
+ **/
+typedef struct xcb_close_font_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_font_t font; /**< */
+} xcb_close_font_request_t;
+
+typedef enum xcb_font_draw_t {
+ XCB_FONT_DRAW_LEFT_TO_RIGHT = 0,
+ XCB_FONT_DRAW_RIGHT_TO_LEFT = 1
+} xcb_font_draw_t;
+
+/**
+ * @brief xcb_fontprop_t
+ **/
+typedef struct xcb_fontprop_t {
+ xcb_atom_t name; /**< */
+ uint32_t value; /**< */
+} xcb_fontprop_t;
+
+/**
+ * @brief xcb_fontprop_iterator_t
+ **/
+typedef struct xcb_fontprop_iterator_t {
+ xcb_fontprop_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_fontprop_iterator_t;
+
+/**
+ * @brief xcb_charinfo_t
+ **/
+typedef struct xcb_charinfo_t {
+ int16_t left_side_bearing; /**< */
+ int16_t right_side_bearing; /**< */
+ int16_t character_width; /**< */
+ int16_t ascent; /**< */
+ int16_t descent; /**< */
+ uint16_t attributes; /**< */
+} xcb_charinfo_t;
+
+/**
+ * @brief xcb_charinfo_iterator_t
+ **/
+typedef struct xcb_charinfo_iterator_t {
+ xcb_charinfo_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_charinfo_iterator_t;
+
+/**
+ * @brief xcb_query_font_cookie_t
+ **/
+typedef struct xcb_query_font_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_query_font_cookie_t;
+
+/** Opcode for xcb_query_font. */
+#define XCB_QUERY_FONT 47
+
+/**
+ * @brief xcb_query_font_request_t
+ **/
+typedef struct xcb_query_font_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_fontable_t font; /**< */
+} xcb_query_font_request_t;
+
+/**
+ * @brief xcb_query_font_reply_t
+ **/
+typedef struct xcb_query_font_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ xcb_charinfo_t min_bounds; /**< */
+ uint8_t pad1[4]; /**< */
+ xcb_charinfo_t max_bounds; /**< */
+ uint8_t pad2[4]; /**< */
+ uint16_t min_char_or_byte2; /**< */
+ uint16_t max_char_or_byte2; /**< */
+ uint16_t default_char; /**< */
+ uint16_t properties_len; /**< */
+ uint8_t draw_direction; /**< */
+ uint8_t min_byte1; /**< */
+ uint8_t max_byte1; /**< */
+ uint8_t all_chars_exist; /**< */
+ int16_t font_ascent; /**< */
+ int16_t font_descent; /**< */
+ uint32_t char_infos_len; /**< */
+} xcb_query_font_reply_t;
+
+/**
+ * @brief xcb_query_text_extents_cookie_t
+ **/
+typedef struct xcb_query_text_extents_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_query_text_extents_cookie_t;
+
+/** Opcode for xcb_query_text_extents. */
+#define XCB_QUERY_TEXT_EXTENTS 48
+
+/**
+ * @brief xcb_query_text_extents_request_t
+ **/
+typedef struct xcb_query_text_extents_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t odd_length; /**< */
+ uint16_t length; /**< */
+ xcb_fontable_t font; /**< */
+} xcb_query_text_extents_request_t;
+
+/**
+ * @brief xcb_query_text_extents_reply_t
+ **/
+typedef struct xcb_query_text_extents_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t draw_direction; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ int16_t font_ascent; /**< */
+ int16_t font_descent; /**< */
+ int16_t overall_ascent; /**< */
+ int16_t overall_descent; /**< */
+ int32_t overall_width; /**< */
+ int32_t overall_left; /**< */
+ int32_t overall_right; /**< */
+} xcb_query_text_extents_reply_t;
+
+/**
+ * @brief xcb_str_t
+ **/
+typedef struct xcb_str_t {
+ uint8_t name_len; /**< */
+} xcb_str_t;
+
+/**
+ * @brief xcb_str_iterator_t
+ **/
+typedef struct xcb_str_iterator_t {
+ xcb_str_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_str_iterator_t;
+
+/**
+ * @brief xcb_list_fonts_cookie_t
+ **/
+typedef struct xcb_list_fonts_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_list_fonts_cookie_t;
+
+/** Opcode for xcb_list_fonts. */
+#define XCB_LIST_FONTS 49
+
+/**
+ * @brief xcb_list_fonts_request_t
+ **/
+typedef struct xcb_list_fonts_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ uint16_t max_names; /**< */
+ uint16_t pattern_len; /**< */
+} xcb_list_fonts_request_t;
+
+/**
+ * @brief xcb_list_fonts_reply_t
+ **/
+typedef struct xcb_list_fonts_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint16_t names_len; /**< */
+ uint8_t pad1[22]; /**< */
+} xcb_list_fonts_reply_t;
+
+/**
+ * @brief xcb_list_fonts_with_info_cookie_t
+ **/
+typedef struct xcb_list_fonts_with_info_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_list_fonts_with_info_cookie_t;
+
+/** Opcode for xcb_list_fonts_with_info. */
+#define XCB_LIST_FONTS_WITH_INFO 50
+
+/**
+ * @brief xcb_list_fonts_with_info_request_t
+ **/
+typedef struct xcb_list_fonts_with_info_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ uint16_t max_names; /**< */
+ uint16_t pattern_len; /**< */
+} xcb_list_fonts_with_info_request_t;
+
+/**
+ * @brief xcb_list_fonts_with_info_reply_t
+ **/
+typedef struct xcb_list_fonts_with_info_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t name_len; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ xcb_charinfo_t min_bounds; /**< */
+ uint8_t pad0[4]; /**< */
+ xcb_charinfo_t max_bounds; /**< */
+ uint8_t pad1[4]; /**< */
+ uint16_t min_char_or_byte2; /**< */
+ uint16_t max_char_or_byte2; /**< */
+ uint16_t default_char; /**< */
+ uint16_t properties_len; /**< */
+ uint8_t draw_direction; /**< */
+ uint8_t min_byte1; /**< */
+ uint8_t max_byte1; /**< */
+ uint8_t all_chars_exist; /**< */
+ int16_t font_ascent; /**< */
+ int16_t font_descent; /**< */
+ uint32_t replies_hint; /**< */
+} xcb_list_fonts_with_info_reply_t;
+
+/** Opcode for xcb_set_font_path. */
+#define XCB_SET_FONT_PATH 51
+
+/**
+ * @brief xcb_set_font_path_request_t
+ **/
+typedef struct xcb_set_font_path_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ uint16_t font_qty; /**< */
+ uint8_t pad1[2]; /**< */
+} xcb_set_font_path_request_t;
+
+/**
+ * @brief xcb_get_font_path_cookie_t
+ **/
+typedef struct xcb_get_font_path_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_get_font_path_cookie_t;
+
+/** Opcode for xcb_get_font_path. */
+#define XCB_GET_FONT_PATH 52
+
+/**
+ * @brief xcb_get_font_path_request_t
+ **/
+typedef struct xcb_get_font_path_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+} xcb_get_font_path_request_t;
+
+/**
+ * @brief xcb_get_font_path_reply_t
+ **/
+typedef struct xcb_get_font_path_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint16_t path_len; /**< */
+ uint8_t pad1[22]; /**< */
+} xcb_get_font_path_reply_t;
+
+/** Opcode for xcb_create_pixmap. */
+#define XCB_CREATE_PIXMAP 53
+
+/**
+ * @brief xcb_create_pixmap_request_t
+ **/
+typedef struct xcb_create_pixmap_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t depth; /**< */
+ uint16_t length; /**< */
+ xcb_pixmap_t pid; /**< */
+ xcb_drawable_t drawable; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+} xcb_create_pixmap_request_t;
+
+/** Opcode for xcb_free_pixmap. */
+#define XCB_FREE_PIXMAP 54
+
+/**
+ * @brief xcb_free_pixmap_request_t
+ **/
+typedef struct xcb_free_pixmap_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_pixmap_t pixmap; /**< */
+} xcb_free_pixmap_request_t;
+
+typedef enum xcb_gc_t {
+ XCB_GC_FUNCTION = 1,
+/**< TODO: Refer to GX */
+
+ XCB_GC_PLANE_MASK = 2,
+/**< In graphics operations, given a source and destination pixel, the result is
+computed bitwise on corresponding bits of the pixels; that is, a Boolean
+operation is performed in each bit plane. The plane-mask restricts the
+operation to a subset of planes, so the result is:
+
+ ((src FUNC dst) AND plane-mask) OR (dst AND (NOT plane-mask)) */
+
+ XCB_GC_FOREGROUND = 4,
+/**< Foreground colorpixel. */
+
+ XCB_GC_BACKGROUND = 8,
+/**< Background colorpixel. */
+
+ XCB_GC_LINE_WIDTH = 16,
+/**< The line-width is measured in pixels and can be greater than or equal to one, a wide line, or the
+special value zero, a thin line. */
+
+ XCB_GC_LINE_STYLE = 32,
+/**< The line-style defines which sections of a line are drawn:
+Solid The full path of the line is drawn.
+DoubleDash The full path of the line is drawn, but the even dashes are filled differently
+ than the odd dashes (see fill-style), with Butt cap-style used where even and
+ odd dashes meet.
+OnOffDash Only the even dashes are drawn, and cap-style applies to all internal ends of
+ the individual dashes (except NotLast is treated as Butt). */
+
+ XCB_GC_CAP_STYLE = 64,
+/**< The cap-style defines how the endpoints of a path are drawn:
+NotLast The result is equivalent to Butt, except that for a line-width of zero the final
+ endpoint is not drawn.
+Butt The result is square at the endpoint (perpendicular to the slope of the line)
+ with no projection beyond.
+Round The result is a circular arc with its diameter equal to the line-width, centered
+ on the endpoint; it is equivalent to Butt for line-width zero.
+Projecting The result is square at the end, but the path continues beyond the endpoint for
+ a distance equal to half the line-width; it is equivalent to Butt for line-width
+ zero. */
+
+ XCB_GC_JOIN_STYLE = 128,
+/**< The join-style defines how corners are drawn for wide lines:
+Miter The outer edges of the two lines extend to meet at an angle. However, if the
+ angle is less than 11 degrees, a Bevel join-style is used instead.
+Round The result is a circular arc with a diameter equal to the line-width, centered
+ on the joinpoint.
+Bevel The result is Butt endpoint styles, and then the triangular notch is filled. */
+
+ XCB_GC_FILL_STYLE = 256,
+/**< The fill-style defines the contents of the source for line, text, and fill requests. For all text and fill
+requests (for example, PolyText8, PolyText16, PolyFillRectangle, FillPoly, and PolyFillArc)
+as well as for line requests with line-style Solid, (for example, PolyLine, PolySegment,
+PolyRectangle, PolyArc) and for the even dashes for line requests with line-style OnOffDash
+or DoubleDash:
+Solid Foreground
+Tiled Tile
+OpaqueStippled A tile with the same width and height as stipple but with background
+ everywhere stipple has a zero and with foreground everywhere stipple
+ has a one
+Stippled Foreground masked by stipple
+For the odd dashes for line requests with line-style DoubleDash:
+Solid Background
+Tiled Same as for even dashes
+OpaqueStippled Same as for even dashes
+Stippled Background masked by stipple */
+
+ XCB_GC_FILL_RULE = 512,
+/**< */
+
+ XCB_GC_TILE = 1024,
+/**< The tile/stipple represents an infinite two-dimensional plane with the tile/stipple replicated in all
+dimensions. When that plane is superimposed on the drawable for use in a graphics operation,
+the upper-left corner of some instance of the tile/stipple is at the coordinates within the drawable
+specified by the tile/stipple origin. The tile/stipple and clip origins are interpreted relative to the
+origin of whatever destination drawable is specified in a graphics request.
+The tile pixmap must have the same root and depth as the gcontext (or a Match error results).
+The stipple pixmap must have depth one and must have the same root as the gcontext (or a
+Match error results). For fill-style Stippled (but not fill-style
+OpaqueStippled), the stipple pattern is tiled in a single plane and acts as an
+additional clip mask to be ANDed with the clip-mask.
+Any size pixmap can be used for tiling or stippling, although some sizes may be faster to use than
+others. */
+
+ XCB_GC_STIPPLE = 2048,
+/**< The tile/stipple represents an infinite two-dimensional plane with the tile/stipple replicated in all
+dimensions. When that plane is superimposed on the drawable for use in a graphics operation,
+the upper-left corner of some instance of the tile/stipple is at the coordinates within the drawable
+specified by the tile/stipple origin. The tile/stipple and clip origins are interpreted relative to the
+origin of whatever destination drawable is specified in a graphics request.
+The tile pixmap must have the same root and depth as the gcontext (or a Match error results).
+The stipple pixmap must have depth one and must have the same root as the gcontext (or a
+Match error results). For fill-style Stippled (but not fill-style
+OpaqueStippled), the stipple pattern is tiled in a single plane and acts as an
+additional clip mask to be ANDed with the clip-mask.
+Any size pixmap can be used for tiling or stippling, although some sizes may be faster to use than
+others. */
+
+ XCB_GC_TILE_STIPPLE_ORIGIN_X = 4096,
+/**< TODO */
+
+ XCB_GC_TILE_STIPPLE_ORIGIN_Y = 8192,
+/**< TODO */
+
+ XCB_GC_FONT = 16384,
+/**< Which font to use for the `ImageText8` and `ImageText16` requests. */
+
+ XCB_GC_SUBWINDOW_MODE = 32768,
+/**< For ClipByChildren, both source and destination windows are additionally
+clipped by all viewable InputOutput children. For IncludeInferiors, neither
+source nor destination window is
+clipped by inferiors. This will result in including subwindow contents in the source and drawing
+through subwindow boundaries of the destination. The use of IncludeInferiors with a source or
+destination window of one depth with mapped inferiors of differing depth is not illegal, but the
+semantics is undefined by the core protocol. */
+
+ XCB_GC_GRAPHICS_EXPOSURES = 65536,
+/**< Whether ExposureEvents should be generated (1) or not (0).
+
+The default is 1. */
+
+ XCB_GC_CLIP_ORIGIN_X = 131072,
+/**< TODO */
+
+ XCB_GC_CLIP_ORIGIN_Y = 262144,
+/**< TODO */
+
+ XCB_GC_CLIP_MASK = 524288,
+/**< The clip-mask restricts writes to the destination drawable. Only pixels where the clip-mask has
+bits set to 1 are drawn. Pixels are not drawn outside the area covered by the clip-mask or where
+the clip-mask has bits set to 0. The clip-mask affects all graphics requests, but it does not clip
+sources. The clip-mask origin is interpreted relative to the origin of whatever destination drawable is specified in a graphics request. If a pixmap is specified as the clip-mask, it must have
+depth 1 and have the same root as the gcontext (or a Match error results). If clip-mask is None,
+then pixels are always drawn, regardless of the clip origin. The clip-mask can also be set with the
+SetClipRectangles request. */
+
+ XCB_GC_DASH_OFFSET = 1048576,
+/**< TODO */
+
+ XCB_GC_DASH_LIST = 2097152,
+/**< TODO */
+
+ XCB_GC_ARC_MODE = 4194304
+/**< TODO */
+
+} xcb_gc_t;
+
+typedef enum xcb_gx_t {
+ XCB_GX_CLEAR = 0,
+ XCB_GX_AND = 1,
+ XCB_GX_AND_REVERSE = 2,
+ XCB_GX_COPY = 3,
+ XCB_GX_AND_INVERTED = 4,
+ XCB_GX_NOOP = 5,
+ XCB_GX_XOR = 6,
+ XCB_GX_OR = 7,
+ XCB_GX_NOR = 8,
+ XCB_GX_EQUIV = 9,
+ XCB_GX_INVERT = 10,
+ XCB_GX_OR_REVERSE = 11,
+ XCB_GX_COPY_INVERTED = 12,
+ XCB_GX_OR_INVERTED = 13,
+ XCB_GX_NAND = 14,
+ XCB_GX_SET = 15
+} xcb_gx_t;
+
+typedef enum xcb_line_style_t {
+ XCB_LINE_STYLE_SOLID = 0,
+ XCB_LINE_STYLE_ON_OFF_DASH = 1,
+ XCB_LINE_STYLE_DOUBLE_DASH = 2
+} xcb_line_style_t;
+
+typedef enum xcb_cap_style_t {
+ XCB_CAP_STYLE_NOT_LAST = 0,
+ XCB_CAP_STYLE_BUTT = 1,
+ XCB_CAP_STYLE_ROUND = 2,
+ XCB_CAP_STYLE_PROJECTING = 3
+} xcb_cap_style_t;
+
+typedef enum xcb_join_style_t {
+ XCB_JOIN_STYLE_MITER = 0,
+ XCB_JOIN_STYLE_ROUND = 1,
+ XCB_JOIN_STYLE_BEVEL = 2
+} xcb_join_style_t;
+
+typedef enum xcb_fill_style_t {
+ XCB_FILL_STYLE_SOLID = 0,
+ XCB_FILL_STYLE_TILED = 1,
+ XCB_FILL_STYLE_STIPPLED = 2,
+ XCB_FILL_STYLE_OPAQUE_STIPPLED = 3
+} xcb_fill_style_t;
+
+typedef enum xcb_fill_rule_t {
+ XCB_FILL_RULE_EVEN_ODD = 0,
+ XCB_FILL_RULE_WINDING = 1
+} xcb_fill_rule_t;
+
+typedef enum xcb_subwindow_mode_t {
+ XCB_SUBWINDOW_MODE_CLIP_BY_CHILDREN = 0,
+ XCB_SUBWINDOW_MODE_INCLUDE_INFERIORS = 1
+} xcb_subwindow_mode_t;
+
+typedef enum xcb_arc_mode_t {
+ XCB_ARC_MODE_CHORD = 0,
+ XCB_ARC_MODE_PIE_SLICE = 1
+} xcb_arc_mode_t;
+
+/** Opcode for xcb_create_gc. */
+#define XCB_CREATE_GC 55
+
+/**
+ * @brief xcb_create_gc_request_t
+ **/
+typedef struct xcb_create_gc_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_gcontext_t cid; /**< */
+ xcb_drawable_t drawable; /**< */
+ uint32_t value_mask; /**< */
+} xcb_create_gc_request_t;
+
+/** Opcode for xcb_change_gc. */
+#define XCB_CHANGE_GC 56
+
+/**
+ * @brief xcb_change_gc_request_t
+ **/
+typedef struct xcb_change_gc_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_gcontext_t gc; /**< */
+ uint32_t value_mask; /**< */
+} xcb_change_gc_request_t;
+
+/** Opcode for xcb_copy_gc. */
+#define XCB_COPY_GC 57
+
+/**
+ * @brief xcb_copy_gc_request_t
+ **/
+typedef struct xcb_copy_gc_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_gcontext_t src_gc; /**< */
+ xcb_gcontext_t dst_gc; /**< */
+ uint32_t value_mask; /**< */
+} xcb_copy_gc_request_t;
+
+/** Opcode for xcb_set_dashes. */
+#define XCB_SET_DASHES 58
+
+/**
+ * @brief xcb_set_dashes_request_t
+ **/
+typedef struct xcb_set_dashes_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_gcontext_t gc; /**< */
+ uint16_t dash_offset; /**< */
+ uint16_t dashes_len; /**< */
+} xcb_set_dashes_request_t;
+
+typedef enum xcb_clip_ordering_t {
+ XCB_CLIP_ORDERING_UNSORTED = 0,
+ XCB_CLIP_ORDERING_Y_SORTED = 1,
+ XCB_CLIP_ORDERING_YX_SORTED = 2,
+ XCB_CLIP_ORDERING_YX_BANDED = 3
+} xcb_clip_ordering_t;
+
+/** Opcode for xcb_set_clip_rectangles. */
+#define XCB_SET_CLIP_RECTANGLES 59
+
+/**
+ * @brief xcb_set_clip_rectangles_request_t
+ **/
+typedef struct xcb_set_clip_rectangles_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t ordering; /**< */
+ uint16_t length; /**< */
+ xcb_gcontext_t gc; /**< */
+ int16_t clip_x_origin; /**< */
+ int16_t clip_y_origin; /**< */
+} xcb_set_clip_rectangles_request_t;
+
+/** Opcode for xcb_free_gc. */
+#define XCB_FREE_GC 60
+
+/**
+ * @brief xcb_free_gc_request_t
+ **/
+typedef struct xcb_free_gc_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_gcontext_t gc; /**< */
+} xcb_free_gc_request_t;
+
+/** Opcode for xcb_clear_area. */
+#define XCB_CLEAR_AREA 61
+
+/**
+ * @brief xcb_clear_area_request_t
+ **/
+typedef struct xcb_clear_area_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t exposures; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+ int16_t x; /**< */
+ int16_t y; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+} xcb_clear_area_request_t;
+
+/** Opcode for xcb_copy_area. */
+#define XCB_COPY_AREA 62
+
+/**
+ * @brief xcb_copy_area_request_t
+ **/
+typedef struct xcb_copy_area_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_drawable_t src_drawable; /**< */
+ xcb_drawable_t dst_drawable; /**< */
+ xcb_gcontext_t gc; /**< */
+ int16_t src_x; /**< */
+ int16_t src_y; /**< */
+ int16_t dst_x; /**< */
+ int16_t dst_y; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+} xcb_copy_area_request_t;
+
+/** Opcode for xcb_copy_plane. */
+#define XCB_COPY_PLANE 63
+
+/**
+ * @brief xcb_copy_plane_request_t
+ **/
+typedef struct xcb_copy_plane_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_drawable_t src_drawable; /**< */
+ xcb_drawable_t dst_drawable; /**< */
+ xcb_gcontext_t gc; /**< */
+ int16_t src_x; /**< */
+ int16_t src_y; /**< */
+ int16_t dst_x; /**< */
+ int16_t dst_y; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+ uint32_t bit_plane; /**< */
+} xcb_copy_plane_request_t;
+
+typedef enum xcb_coord_mode_t {
+ XCB_COORD_MODE_ORIGIN = 0,
+/**< Treats all coordinates as relative to the origin. */
+
+ XCB_COORD_MODE_PREVIOUS = 1
+/**< Treats all coordinates after the first as relative to the previous coordinate. */
+
+} xcb_coord_mode_t;
+
+/** Opcode for xcb_poly_point. */
+#define XCB_POLY_POINT 64
+
+/**
+ * @brief xcb_poly_point_request_t
+ **/
+typedef struct xcb_poly_point_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t coordinate_mode; /**< */
+ uint16_t length; /**< */
+ xcb_drawable_t drawable; /**< */
+ xcb_gcontext_t gc; /**< */
+} xcb_poly_point_request_t;
+
+/** Opcode for xcb_poly_line. */
+#define XCB_POLY_LINE 65
+
+/**
+ * @brief xcb_poly_line_request_t
+ **/
+typedef struct xcb_poly_line_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t coordinate_mode; /**< */
+ uint16_t length; /**< */
+ xcb_drawable_t drawable; /**< */
+ xcb_gcontext_t gc; /**< */
+} xcb_poly_line_request_t;
+
+/**
+ * @brief xcb_segment_t
+ **/
+typedef struct xcb_segment_t {
+ int16_t x1; /**< */
+ int16_t y1; /**< */
+ int16_t x2; /**< */
+ int16_t y2; /**< */
+} xcb_segment_t;
+
+/**
+ * @brief xcb_segment_iterator_t
+ **/
+typedef struct xcb_segment_iterator_t {
+ xcb_segment_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_segment_iterator_t;
+
+/** Opcode for xcb_poly_segment. */
+#define XCB_POLY_SEGMENT 66
+
+/**
+ * @brief xcb_poly_segment_request_t
+ **/
+typedef struct xcb_poly_segment_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_drawable_t drawable; /**< */
+ xcb_gcontext_t gc; /**< */
+} xcb_poly_segment_request_t;
+
+/** Opcode for xcb_poly_rectangle. */
+#define XCB_POLY_RECTANGLE 67
+
+/**
+ * @brief xcb_poly_rectangle_request_t
+ **/
+typedef struct xcb_poly_rectangle_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_drawable_t drawable; /**< */
+ xcb_gcontext_t gc; /**< */
+} xcb_poly_rectangle_request_t;
+
+/** Opcode for xcb_poly_arc. */
+#define XCB_POLY_ARC 68
+
+/**
+ * @brief xcb_poly_arc_request_t
+ **/
+typedef struct xcb_poly_arc_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_drawable_t drawable; /**< */
+ xcb_gcontext_t gc; /**< */
+} xcb_poly_arc_request_t;
+
+typedef enum xcb_poly_shape_t {
+ XCB_POLY_SHAPE_COMPLEX = 0,
+ XCB_POLY_SHAPE_NONCONVEX = 1,
+ XCB_POLY_SHAPE_CONVEX = 2
+} xcb_poly_shape_t;
+
+/** Opcode for xcb_fill_poly. */
+#define XCB_FILL_POLY 69
+
+/**
+ * @brief xcb_fill_poly_request_t
+ **/
+typedef struct xcb_fill_poly_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_drawable_t drawable; /**< */
+ xcb_gcontext_t gc; /**< */
+ uint8_t shape; /**< */
+ uint8_t coordinate_mode; /**< */
+ uint8_t pad1[2]; /**< */
+} xcb_fill_poly_request_t;
+
+/** Opcode for xcb_poly_fill_rectangle. */
+#define XCB_POLY_FILL_RECTANGLE 70
+
+/**
+ * @brief xcb_poly_fill_rectangle_request_t
+ **/
+typedef struct xcb_poly_fill_rectangle_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_drawable_t drawable; /**< */
+ xcb_gcontext_t gc; /**< */
+} xcb_poly_fill_rectangle_request_t;
+
+/** Opcode for xcb_poly_fill_arc. */
+#define XCB_POLY_FILL_ARC 71
+
+/**
+ * @brief xcb_poly_fill_arc_request_t
+ **/
+typedef struct xcb_poly_fill_arc_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_drawable_t drawable; /**< */
+ xcb_gcontext_t gc; /**< */
+} xcb_poly_fill_arc_request_t;
+
+typedef enum xcb_image_format_t {
+ XCB_IMAGE_FORMAT_XY_BITMAP = 0,
+ XCB_IMAGE_FORMAT_XY_PIXMAP = 1,
+ XCB_IMAGE_FORMAT_Z_PIXMAP = 2
+} xcb_image_format_t;
+
+/** Opcode for xcb_put_image. */
+#define XCB_PUT_IMAGE 72
+
+/**
+ * @brief xcb_put_image_request_t
+ **/
+typedef struct xcb_put_image_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t format; /**< */
+ uint16_t length; /**< */
+ xcb_drawable_t drawable; /**< */
+ xcb_gcontext_t gc; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+ int16_t dst_x; /**< */
+ int16_t dst_y; /**< */
+ uint8_t left_pad; /**< */
+ uint8_t depth; /**< */
+ uint8_t pad0[2]; /**< */
+} xcb_put_image_request_t;
+
+/**
+ * @brief xcb_get_image_cookie_t
+ **/
+typedef struct xcb_get_image_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_get_image_cookie_t;
+
+/** Opcode for xcb_get_image. */
+#define XCB_GET_IMAGE 73
+
+/**
+ * @brief xcb_get_image_request_t
+ **/
+typedef struct xcb_get_image_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t format; /**< */
+ uint16_t length; /**< */
+ xcb_drawable_t drawable; /**< */
+ int16_t x; /**< */
+ int16_t y; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+ uint32_t plane_mask; /**< */
+} xcb_get_image_request_t;
+
+/**
+ * @brief xcb_get_image_reply_t
+ **/
+typedef struct xcb_get_image_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t depth; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ xcb_visualid_t visual; /**< */
+ uint8_t pad0[20]; /**< */
+} xcb_get_image_reply_t;
+
+/** Opcode for xcb_poly_text_8. */
+#define XCB_POLY_TEXT_8 74
+
+/**
+ * @brief xcb_poly_text_8_request_t
+ **/
+typedef struct xcb_poly_text_8_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_drawable_t drawable; /**< */
+ xcb_gcontext_t gc; /**< */
+ int16_t x; /**< */
+ int16_t y; /**< */
+} xcb_poly_text_8_request_t;
+
+/** Opcode for xcb_poly_text_16. */
+#define XCB_POLY_TEXT_16 75
+
+/**
+ * @brief xcb_poly_text_16_request_t
+ **/
+typedef struct xcb_poly_text_16_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_drawable_t drawable; /**< */
+ xcb_gcontext_t gc; /**< */
+ int16_t x; /**< */
+ int16_t y; /**< */
+} xcb_poly_text_16_request_t;
+
+/** Opcode for xcb_image_text_8. */
+#define XCB_IMAGE_TEXT_8 76
+
+/**
+ * @brief xcb_image_text_8_request_t
+ **/
+typedef struct xcb_image_text_8_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t string_len; /**< */
+ uint16_t length; /**< */
+ xcb_drawable_t drawable; /**< */
+ xcb_gcontext_t gc; /**< */
+ int16_t x; /**< */
+ int16_t y; /**< */
+} xcb_image_text_8_request_t;
+
+/** Opcode for xcb_image_text_16. */
+#define XCB_IMAGE_TEXT_16 77
+
+/**
+ * @brief xcb_image_text_16_request_t
+ **/
+typedef struct xcb_image_text_16_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t string_len; /**< */
+ uint16_t length; /**< */
+ xcb_drawable_t drawable; /**< */
+ xcb_gcontext_t gc; /**< */
+ int16_t x; /**< */
+ int16_t y; /**< */
+} xcb_image_text_16_request_t;
+
+typedef enum xcb_colormap_alloc_t {
+ XCB_COLORMAP_ALLOC_NONE = 0,
+ XCB_COLORMAP_ALLOC_ALL = 1
+} xcb_colormap_alloc_t;
+
+/** Opcode for xcb_create_colormap. */
+#define XCB_CREATE_COLORMAP 78
+
+/**
+ * @brief xcb_create_colormap_request_t
+ **/
+typedef struct xcb_create_colormap_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t alloc; /**< */
+ uint16_t length; /**< */
+ xcb_colormap_t mid; /**< */
+ xcb_window_t window; /**< */
+ xcb_visualid_t visual; /**< */
+} xcb_create_colormap_request_t;
+
+/** Opcode for xcb_free_colormap. */
+#define XCB_FREE_COLORMAP 79
+
+/**
+ * @brief xcb_free_colormap_request_t
+ **/
+typedef struct xcb_free_colormap_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_colormap_t cmap; /**< */
+} xcb_free_colormap_request_t;
+
+/** Opcode for xcb_copy_colormap_and_free. */
+#define XCB_COPY_COLORMAP_AND_FREE 80
+
+/**
+ * @brief xcb_copy_colormap_and_free_request_t
+ **/
+typedef struct xcb_copy_colormap_and_free_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_colormap_t mid; /**< */
+ xcb_colormap_t src_cmap; /**< */
+} xcb_copy_colormap_and_free_request_t;
+
+/** Opcode for xcb_install_colormap. */
+#define XCB_INSTALL_COLORMAP 81
+
+/**
+ * @brief xcb_install_colormap_request_t
+ **/
+typedef struct xcb_install_colormap_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_colormap_t cmap; /**< */
+} xcb_install_colormap_request_t;
+
+/** Opcode for xcb_uninstall_colormap. */
+#define XCB_UNINSTALL_COLORMAP 82
+
+/**
+ * @brief xcb_uninstall_colormap_request_t
+ **/
+typedef struct xcb_uninstall_colormap_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_colormap_t cmap; /**< */
+} xcb_uninstall_colormap_request_t;
+
+/**
+ * @brief xcb_list_installed_colormaps_cookie_t
+ **/
+typedef struct xcb_list_installed_colormaps_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_list_installed_colormaps_cookie_t;
+
+/** Opcode for xcb_list_installed_colormaps. */
+#define XCB_LIST_INSTALLED_COLORMAPS 83
+
+/**
+ * @brief xcb_list_installed_colormaps_request_t
+ **/
+typedef struct xcb_list_installed_colormaps_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+} xcb_list_installed_colormaps_request_t;
+
+/**
+ * @brief xcb_list_installed_colormaps_reply_t
+ **/
+typedef struct xcb_list_installed_colormaps_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint16_t cmaps_len; /**< */
+ uint8_t pad1[22]; /**< */
+} xcb_list_installed_colormaps_reply_t;
+
+/**
+ * @brief xcb_alloc_color_cookie_t
+ **/
+typedef struct xcb_alloc_color_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_alloc_color_cookie_t;
+
+/** Opcode for xcb_alloc_color. */
+#define XCB_ALLOC_COLOR 84
+
+/**
+ * @brief xcb_alloc_color_request_t
+ **/
+typedef struct xcb_alloc_color_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_colormap_t cmap; /**< */
+ uint16_t red; /**< */
+ uint16_t green; /**< */
+ uint16_t blue; /**< */
+ uint8_t pad1[2]; /**< */
+} xcb_alloc_color_request_t;
+
+/**
+ * @brief xcb_alloc_color_reply_t
+ **/
+typedef struct xcb_alloc_color_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint16_t red; /**< */
+ uint16_t green; /**< */
+ uint16_t blue; /**< */
+ uint8_t pad1[2]; /**< */
+ uint32_t pixel; /**< */
+} xcb_alloc_color_reply_t;
+
+/**
+ * @brief xcb_alloc_named_color_cookie_t
+ **/
+typedef struct xcb_alloc_named_color_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_alloc_named_color_cookie_t;
+
+/** Opcode for xcb_alloc_named_color. */
+#define XCB_ALLOC_NAMED_COLOR 85
+
+/**
+ * @brief xcb_alloc_named_color_request_t
+ **/
+typedef struct xcb_alloc_named_color_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_colormap_t cmap; /**< */
+ uint16_t name_len; /**< */
+ uint8_t pad1[2]; /**< */
+} xcb_alloc_named_color_request_t;
+
+/**
+ * @brief xcb_alloc_named_color_reply_t
+ **/
+typedef struct xcb_alloc_named_color_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint32_t pixel; /**< */
+ uint16_t exact_red; /**< */
+ uint16_t exact_green; /**< */
+ uint16_t exact_blue; /**< */
+ uint16_t visual_red; /**< */
+ uint16_t visual_green; /**< */
+ uint16_t visual_blue; /**< */
+} xcb_alloc_named_color_reply_t;
+
+/**
+ * @brief xcb_alloc_color_cells_cookie_t
+ **/
+typedef struct xcb_alloc_color_cells_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_alloc_color_cells_cookie_t;
+
+/** Opcode for xcb_alloc_color_cells. */
+#define XCB_ALLOC_COLOR_CELLS 86
+
+/**
+ * @brief xcb_alloc_color_cells_request_t
+ **/
+typedef struct xcb_alloc_color_cells_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t contiguous; /**< */
+ uint16_t length; /**< */
+ xcb_colormap_t cmap; /**< */
+ uint16_t colors; /**< */
+ uint16_t planes; /**< */
+} xcb_alloc_color_cells_request_t;
+
+/**
+ * @brief xcb_alloc_color_cells_reply_t
+ **/
+typedef struct xcb_alloc_color_cells_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint16_t pixels_len; /**< */
+ uint16_t masks_len; /**< */
+ uint8_t pad1[20]; /**< */
+} xcb_alloc_color_cells_reply_t;
+
+/**
+ * @brief xcb_alloc_color_planes_cookie_t
+ **/
+typedef struct xcb_alloc_color_planes_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_alloc_color_planes_cookie_t;
+
+/** Opcode for xcb_alloc_color_planes. */
+#define XCB_ALLOC_COLOR_PLANES 87
+
+/**
+ * @brief xcb_alloc_color_planes_request_t
+ **/
+typedef struct xcb_alloc_color_planes_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t contiguous; /**< */
+ uint16_t length; /**< */
+ xcb_colormap_t cmap; /**< */
+ uint16_t colors; /**< */
+ uint16_t reds; /**< */
+ uint16_t greens; /**< */
+ uint16_t blues; /**< */
+} xcb_alloc_color_planes_request_t;
+
+/**
+ * @brief xcb_alloc_color_planes_reply_t
+ **/
+typedef struct xcb_alloc_color_planes_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint16_t pixels_len; /**< */
+ uint8_t pad1[2]; /**< */
+ uint32_t red_mask; /**< */
+ uint32_t green_mask; /**< */
+ uint32_t blue_mask; /**< */
+ uint8_t pad2[8]; /**< */
+} xcb_alloc_color_planes_reply_t;
+
+/** Opcode for xcb_free_colors. */
+#define XCB_FREE_COLORS 88
+
+/**
+ * @brief xcb_free_colors_request_t
+ **/
+typedef struct xcb_free_colors_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_colormap_t cmap; /**< */
+ uint32_t plane_mask; /**< */
+} xcb_free_colors_request_t;
+
+typedef enum xcb_color_flag_t {
+ XCB_COLOR_FLAG_RED = 1,
+ XCB_COLOR_FLAG_GREEN = 2,
+ XCB_COLOR_FLAG_BLUE = 4
+} xcb_color_flag_t;
+
+/**
+ * @brief xcb_coloritem_t
+ **/
+typedef struct xcb_coloritem_t {
+ uint32_t pixel; /**< */
+ uint16_t red; /**< */
+ uint16_t green; /**< */
+ uint16_t blue; /**< */
+ uint8_t flags; /**< */
+ uint8_t pad0; /**< */
+} xcb_coloritem_t;
+
+/**
+ * @brief xcb_coloritem_iterator_t
+ **/
+typedef struct xcb_coloritem_iterator_t {
+ xcb_coloritem_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_coloritem_iterator_t;
+
+/** Opcode for xcb_store_colors. */
+#define XCB_STORE_COLORS 89
+
+/**
+ * @brief xcb_store_colors_request_t
+ **/
+typedef struct xcb_store_colors_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_colormap_t cmap; /**< */
+} xcb_store_colors_request_t;
+
+/** Opcode for xcb_store_named_color. */
+#define XCB_STORE_NAMED_COLOR 90
+
+/**
+ * @brief xcb_store_named_color_request_t
+ **/
+typedef struct xcb_store_named_color_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t flags; /**< */
+ uint16_t length; /**< */
+ xcb_colormap_t cmap; /**< */
+ uint32_t pixel; /**< */
+ uint16_t name_len; /**< */
+ uint8_t pad0[2]; /**< */
+} xcb_store_named_color_request_t;
+
+/**
+ * @brief xcb_rgb_t
+ **/
+typedef struct xcb_rgb_t {
+ uint16_t red; /**< */
+ uint16_t green; /**< */
+ uint16_t blue; /**< */
+ uint8_t pad0[2]; /**< */
+} xcb_rgb_t;
+
+/**
+ * @brief xcb_rgb_iterator_t
+ **/
+typedef struct xcb_rgb_iterator_t {
+ xcb_rgb_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_rgb_iterator_t;
+
+/**
+ * @brief xcb_query_colors_cookie_t
+ **/
+typedef struct xcb_query_colors_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_query_colors_cookie_t;
+
+/** Opcode for xcb_query_colors. */
+#define XCB_QUERY_COLORS 91
+
+/**
+ * @brief xcb_query_colors_request_t
+ **/
+typedef struct xcb_query_colors_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_colormap_t cmap; /**< */
+} xcb_query_colors_request_t;
+
+/**
+ * @brief xcb_query_colors_reply_t
+ **/
+typedef struct xcb_query_colors_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint16_t colors_len; /**< */
+ uint8_t pad1[22]; /**< */
+} xcb_query_colors_reply_t;
+
+/**
+ * @brief xcb_lookup_color_cookie_t
+ **/
+typedef struct xcb_lookup_color_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_lookup_color_cookie_t;
+
+/** Opcode for xcb_lookup_color. */
+#define XCB_LOOKUP_COLOR 92
+
+/**
+ * @brief xcb_lookup_color_request_t
+ **/
+typedef struct xcb_lookup_color_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_colormap_t cmap; /**< */
+ uint16_t name_len; /**< */
+ uint8_t pad1[2]; /**< */
+} xcb_lookup_color_request_t;
+
+/**
+ * @brief xcb_lookup_color_reply_t
+ **/
+typedef struct xcb_lookup_color_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint16_t exact_red; /**< */
+ uint16_t exact_green; /**< */
+ uint16_t exact_blue; /**< */
+ uint16_t visual_red; /**< */
+ uint16_t visual_green; /**< */
+ uint16_t visual_blue; /**< */
+} xcb_lookup_color_reply_t;
+
+typedef enum xcb_pixmap_enum_t {
+ XCB_PIXMAP_NONE = 0
+} xcb_pixmap_enum_t;
+
+/** Opcode for xcb_create_cursor. */
+#define XCB_CREATE_CURSOR 93
+
+/**
+ * @brief xcb_create_cursor_request_t
+ **/
+typedef struct xcb_create_cursor_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_cursor_t cid; /**< */
+ xcb_pixmap_t source; /**< */
+ xcb_pixmap_t mask; /**< */
+ uint16_t fore_red; /**< */
+ uint16_t fore_green; /**< */
+ uint16_t fore_blue; /**< */
+ uint16_t back_red; /**< */
+ uint16_t back_green; /**< */
+ uint16_t back_blue; /**< */
+ uint16_t x; /**< */
+ uint16_t y; /**< */
+} xcb_create_cursor_request_t;
+
+typedef enum xcb_font_enum_t {
+ XCB_FONT_NONE = 0
+} xcb_font_enum_t;
+
+/** Opcode for xcb_create_glyph_cursor. */
+#define XCB_CREATE_GLYPH_CURSOR 94
+
+/**
+ * @brief xcb_create_glyph_cursor_request_t
+ **/
+typedef struct xcb_create_glyph_cursor_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_cursor_t cid; /**< */
+ xcb_font_t source_font; /**< */
+ xcb_font_t mask_font; /**< */
+ uint16_t source_char; /**< */
+ uint16_t mask_char; /**< */
+ uint16_t fore_red; /**< */
+ uint16_t fore_green; /**< */
+ uint16_t fore_blue; /**< */
+ uint16_t back_red; /**< */
+ uint16_t back_green; /**< */
+ uint16_t back_blue; /**< */
+} xcb_create_glyph_cursor_request_t;
+
+/** Opcode for xcb_free_cursor. */
+#define XCB_FREE_CURSOR 95
+
+/**
+ * @brief xcb_free_cursor_request_t
+ **/
+typedef struct xcb_free_cursor_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_cursor_t cursor; /**< */
+} xcb_free_cursor_request_t;
+
+/** Opcode for xcb_recolor_cursor. */
+#define XCB_RECOLOR_CURSOR 96
+
+/**
+ * @brief xcb_recolor_cursor_request_t
+ **/
+typedef struct xcb_recolor_cursor_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_cursor_t cursor; /**< */
+ uint16_t fore_red; /**< */
+ uint16_t fore_green; /**< */
+ uint16_t fore_blue; /**< */
+ uint16_t back_red; /**< */
+ uint16_t back_green; /**< */
+ uint16_t back_blue; /**< */
+} xcb_recolor_cursor_request_t;
+
+typedef enum xcb_query_shape_of_t {
+ XCB_QUERY_SHAPE_OF_LARGEST_CURSOR = 0,
+ XCB_QUERY_SHAPE_OF_FASTEST_TILE = 1,
+ XCB_QUERY_SHAPE_OF_FASTEST_STIPPLE = 2
+} xcb_query_shape_of_t;
+
+/**
+ * @brief xcb_query_best_size_cookie_t
+ **/
+typedef struct xcb_query_best_size_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_query_best_size_cookie_t;
+
+/** Opcode for xcb_query_best_size. */
+#define XCB_QUERY_BEST_SIZE 97
+
+/**
+ * @brief xcb_query_best_size_request_t
+ **/
+typedef struct xcb_query_best_size_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t _class; /**< */
+ uint16_t length; /**< */
+ xcb_drawable_t drawable; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+} xcb_query_best_size_request_t;
+
+/**
+ * @brief xcb_query_best_size_reply_t
+ **/
+typedef struct xcb_query_best_size_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+} xcb_query_best_size_reply_t;
+
+/**
+ * @brief xcb_query_extension_cookie_t
+ **/
+typedef struct xcb_query_extension_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_query_extension_cookie_t;
+
+/** Opcode for xcb_query_extension. */
+#define XCB_QUERY_EXTENSION 98
+
+/**
+ * @brief xcb_query_extension_request_t
+ **/
+typedef struct xcb_query_extension_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ uint16_t name_len; /**< */
+ uint8_t pad1[2]; /**< */
+} xcb_query_extension_request_t;
+
+/**
+ * @brief xcb_query_extension_reply_t
+ **/
+typedef struct xcb_query_extension_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint8_t present; /**< */
+ uint8_t major_opcode; /**< */
+ uint8_t first_event; /**< */
+ uint8_t first_error; /**< */
+} xcb_query_extension_reply_t;
+
+/**
+ * @brief xcb_list_extensions_cookie_t
+ **/
+typedef struct xcb_list_extensions_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_list_extensions_cookie_t;
+
+/** Opcode for xcb_list_extensions. */
+#define XCB_LIST_EXTENSIONS 99
+
+/**
+ * @brief xcb_list_extensions_request_t
+ **/
+typedef struct xcb_list_extensions_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+} xcb_list_extensions_request_t;
+
+/**
+ * @brief xcb_list_extensions_reply_t
+ **/
+typedef struct xcb_list_extensions_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t names_len; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint8_t pad0[24]; /**< */
+} xcb_list_extensions_reply_t;
+
+/** Opcode for xcb_change_keyboard_mapping. */
+#define XCB_CHANGE_KEYBOARD_MAPPING 100
+
+/**
+ * @brief xcb_change_keyboard_mapping_request_t
+ **/
+typedef struct xcb_change_keyboard_mapping_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t keycode_count; /**< */
+ uint16_t length; /**< */
+ xcb_keycode_t first_keycode; /**< */
+ uint8_t keysyms_per_keycode; /**< */
+ uint8_t pad0[2]; /**< */
+} xcb_change_keyboard_mapping_request_t;
+
+/**
+ * @brief xcb_get_keyboard_mapping_cookie_t
+ **/
+typedef struct xcb_get_keyboard_mapping_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_get_keyboard_mapping_cookie_t;
+
+/** Opcode for xcb_get_keyboard_mapping. */
+#define XCB_GET_KEYBOARD_MAPPING 101
+
+/**
+ * @brief xcb_get_keyboard_mapping_request_t
+ **/
+typedef struct xcb_get_keyboard_mapping_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_keycode_t first_keycode; /**< */
+ uint8_t count; /**< */
+} xcb_get_keyboard_mapping_request_t;
+
+/**
+ * @brief xcb_get_keyboard_mapping_reply_t
+ **/
+typedef struct xcb_get_keyboard_mapping_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t keysyms_per_keycode; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint8_t pad0[24]; /**< */
+} xcb_get_keyboard_mapping_reply_t;
+
+typedef enum xcb_kb_t {
+ XCB_KB_KEY_CLICK_PERCENT = 1,
+ XCB_KB_BELL_PERCENT = 2,
+ XCB_KB_BELL_PITCH = 4,
+ XCB_KB_BELL_DURATION = 8,
+ XCB_KB_LED = 16,
+ XCB_KB_LED_MODE = 32,
+ XCB_KB_KEY = 64,
+ XCB_KB_AUTO_REPEAT_MODE = 128
+} xcb_kb_t;
+
+typedef enum xcb_led_mode_t {
+ XCB_LED_MODE_OFF = 0,
+ XCB_LED_MODE_ON = 1
+} xcb_led_mode_t;
+
+typedef enum xcb_auto_repeat_mode_t {
+ XCB_AUTO_REPEAT_MODE_OFF = 0,
+ XCB_AUTO_REPEAT_MODE_ON = 1,
+ XCB_AUTO_REPEAT_MODE_DEFAULT = 2
+} xcb_auto_repeat_mode_t;
+
+/** Opcode for xcb_change_keyboard_control. */
+#define XCB_CHANGE_KEYBOARD_CONTROL 102
+
+/**
+ * @brief xcb_change_keyboard_control_request_t
+ **/
+typedef struct xcb_change_keyboard_control_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ uint32_t value_mask; /**< */
+} xcb_change_keyboard_control_request_t;
+
+/**
+ * @brief xcb_get_keyboard_control_cookie_t
+ **/
+typedef struct xcb_get_keyboard_control_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_get_keyboard_control_cookie_t;
+
+/** Opcode for xcb_get_keyboard_control. */
+#define XCB_GET_KEYBOARD_CONTROL 103
+
+/**
+ * @brief xcb_get_keyboard_control_request_t
+ **/
+typedef struct xcb_get_keyboard_control_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+} xcb_get_keyboard_control_request_t;
+
+/**
+ * @brief xcb_get_keyboard_control_reply_t
+ **/
+typedef struct xcb_get_keyboard_control_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t global_auto_repeat; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint32_t led_mask; /**< */
+ uint8_t key_click_percent; /**< */
+ uint8_t bell_percent; /**< */
+ uint16_t bell_pitch; /**< */
+ uint16_t bell_duration; /**< */
+ uint8_t pad0[2]; /**< */
+ uint8_t auto_repeats[32]; /**< */
+} xcb_get_keyboard_control_reply_t;
+
+/** Opcode for xcb_bell. */
+#define XCB_BELL 104
+
+/**
+ * @brief xcb_bell_request_t
+ **/
+typedef struct xcb_bell_request_t {
+ uint8_t major_opcode; /**< */
+ int8_t percent; /**< */
+ uint16_t length; /**< */
+} xcb_bell_request_t;
+
+/** Opcode for xcb_change_pointer_control. */
+#define XCB_CHANGE_POINTER_CONTROL 105
+
+/**
+ * @brief xcb_change_pointer_control_request_t
+ **/
+typedef struct xcb_change_pointer_control_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ int16_t acceleration_numerator; /**< */
+ int16_t acceleration_denominator; /**< */
+ int16_t threshold; /**< */
+ uint8_t do_acceleration; /**< */
+ uint8_t do_threshold; /**< */
+} xcb_change_pointer_control_request_t;
+
+/**
+ * @brief xcb_get_pointer_control_cookie_t
+ **/
+typedef struct xcb_get_pointer_control_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_get_pointer_control_cookie_t;
+
+/** Opcode for xcb_get_pointer_control. */
+#define XCB_GET_POINTER_CONTROL 106
+
+/**
+ * @brief xcb_get_pointer_control_request_t
+ **/
+typedef struct xcb_get_pointer_control_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+} xcb_get_pointer_control_request_t;
+
+/**
+ * @brief xcb_get_pointer_control_reply_t
+ **/
+typedef struct xcb_get_pointer_control_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint16_t acceleration_numerator; /**< */
+ uint16_t acceleration_denominator; /**< */
+ uint16_t threshold; /**< */
+ uint8_t pad1[18]; /**< */
+} xcb_get_pointer_control_reply_t;
+
+typedef enum xcb_blanking_t {
+ XCB_BLANKING_NOT_PREFERRED = 0,
+ XCB_BLANKING_PREFERRED = 1,
+ XCB_BLANKING_DEFAULT = 2
+} xcb_blanking_t;
+
+typedef enum xcb_exposures_t {
+ XCB_EXPOSURES_NOT_ALLOWED = 0,
+ XCB_EXPOSURES_ALLOWED = 1,
+ XCB_EXPOSURES_DEFAULT = 2
+} xcb_exposures_t;
+
+/** Opcode for xcb_set_screen_saver. */
+#define XCB_SET_SCREEN_SAVER 107
+
+/**
+ * @brief xcb_set_screen_saver_request_t
+ **/
+typedef struct xcb_set_screen_saver_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ int16_t timeout; /**< */
+ int16_t interval; /**< */
+ uint8_t prefer_blanking; /**< */
+ uint8_t allow_exposures; /**< */
+} xcb_set_screen_saver_request_t;
+
+/**
+ * @brief xcb_get_screen_saver_cookie_t
+ **/
+typedef struct xcb_get_screen_saver_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_get_screen_saver_cookie_t;
+
+/** Opcode for xcb_get_screen_saver. */
+#define XCB_GET_SCREEN_SAVER 108
+
+/**
+ * @brief xcb_get_screen_saver_request_t
+ **/
+typedef struct xcb_get_screen_saver_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+} xcb_get_screen_saver_request_t;
+
+/**
+ * @brief xcb_get_screen_saver_reply_t
+ **/
+typedef struct xcb_get_screen_saver_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint16_t timeout; /**< */
+ uint16_t interval; /**< */
+ uint8_t prefer_blanking; /**< */
+ uint8_t allow_exposures; /**< */
+ uint8_t pad1[18]; /**< */
+} xcb_get_screen_saver_reply_t;
+
+typedef enum xcb_host_mode_t {
+ XCB_HOST_MODE_INSERT = 0,
+ XCB_HOST_MODE_DELETE = 1
+} xcb_host_mode_t;
+
+typedef enum xcb_family_t {
+ XCB_FAMILY_INTERNET = 0,
+ XCB_FAMILY_DECNET = 1,
+ XCB_FAMILY_CHAOS = 2,
+ XCB_FAMILY_SERVER_INTERPRETED = 5,
+ XCB_FAMILY_INTERNET_6 = 6
+} xcb_family_t;
+
+/** Opcode for xcb_change_hosts. */
+#define XCB_CHANGE_HOSTS 109
+
+/**
+ * @brief xcb_change_hosts_request_t
+ **/
+typedef struct xcb_change_hosts_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t mode; /**< */
+ uint16_t length; /**< */
+ uint8_t family; /**< */
+ uint8_t pad0; /**< */
+ uint16_t address_len; /**< */
+} xcb_change_hosts_request_t;
+
+/**
+ * @brief xcb_host_t
+ **/
+typedef struct xcb_host_t {
+ uint8_t family; /**< */
+ uint8_t pad0; /**< */
+ uint16_t address_len; /**< */
+} xcb_host_t;
+
+/**
+ * @brief xcb_host_iterator_t
+ **/
+typedef struct xcb_host_iterator_t {
+ xcb_host_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_host_iterator_t;
+
+/**
+ * @brief xcb_list_hosts_cookie_t
+ **/
+typedef struct xcb_list_hosts_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_list_hosts_cookie_t;
+
+/** Opcode for xcb_list_hosts. */
+#define XCB_LIST_HOSTS 110
+
+/**
+ * @brief xcb_list_hosts_request_t
+ **/
+typedef struct xcb_list_hosts_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+} xcb_list_hosts_request_t;
+
+/**
+ * @brief xcb_list_hosts_reply_t
+ **/
+typedef struct xcb_list_hosts_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t mode; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint16_t hosts_len; /**< */
+ uint8_t pad0[22]; /**< */
+} xcb_list_hosts_reply_t;
+
+typedef enum xcb_access_control_t {
+ XCB_ACCESS_CONTROL_DISABLE = 0,
+ XCB_ACCESS_CONTROL_ENABLE = 1
+} xcb_access_control_t;
+
+/** Opcode for xcb_set_access_control. */
+#define XCB_SET_ACCESS_CONTROL 111
+
+/**
+ * @brief xcb_set_access_control_request_t
+ **/
+typedef struct xcb_set_access_control_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t mode; /**< */
+ uint16_t length; /**< */
+} xcb_set_access_control_request_t;
+
+typedef enum xcb_close_down_t {
+ XCB_CLOSE_DOWN_DESTROY_ALL = 0,
+ XCB_CLOSE_DOWN_RETAIN_PERMANENT = 1,
+ XCB_CLOSE_DOWN_RETAIN_TEMPORARY = 2
+} xcb_close_down_t;
+
+/** Opcode for xcb_set_close_down_mode. */
+#define XCB_SET_CLOSE_DOWN_MODE 112
+
+/**
+ * @brief xcb_set_close_down_mode_request_t
+ **/
+typedef struct xcb_set_close_down_mode_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t mode; /**< */
+ uint16_t length; /**< */
+} xcb_set_close_down_mode_request_t;
+
+typedef enum xcb_kill_t {
+ XCB_KILL_ALL_TEMPORARY = 0
+} xcb_kill_t;
+
+/** Opcode for xcb_kill_client. */
+#define XCB_KILL_CLIENT 113
+
+/**
+ * @brief xcb_kill_client_request_t
+ **/
+typedef struct xcb_kill_client_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ uint32_t resource; /**< */
+} xcb_kill_client_request_t;
+
+/** Opcode for xcb_rotate_properties. */
+#define XCB_ROTATE_PROPERTIES 114
+
+/**
+ * @brief xcb_rotate_properties_request_t
+ **/
+typedef struct xcb_rotate_properties_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+ uint16_t atoms_len; /**< */
+ int16_t delta; /**< */
+} xcb_rotate_properties_request_t;
+
+typedef enum xcb_screen_saver_t {
+ XCB_SCREEN_SAVER_RESET = 0,
+ XCB_SCREEN_SAVER_ACTIVE = 1
+} xcb_screen_saver_t;
+
+/** Opcode for xcb_force_screen_saver. */
+#define XCB_FORCE_SCREEN_SAVER 115
+
+/**
+ * @brief xcb_force_screen_saver_request_t
+ **/
+typedef struct xcb_force_screen_saver_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t mode; /**< */
+ uint16_t length; /**< */
+} xcb_force_screen_saver_request_t;
+
+typedef enum xcb_mapping_status_t {
+ XCB_MAPPING_STATUS_SUCCESS = 0,
+ XCB_MAPPING_STATUS_BUSY = 1,
+ XCB_MAPPING_STATUS_FAILURE = 2
+} xcb_mapping_status_t;
+
+/**
+ * @brief xcb_set_pointer_mapping_cookie_t
+ **/
+typedef struct xcb_set_pointer_mapping_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_set_pointer_mapping_cookie_t;
+
+/** Opcode for xcb_set_pointer_mapping. */
+#define XCB_SET_POINTER_MAPPING 116
+
+/**
+ * @brief xcb_set_pointer_mapping_request_t
+ **/
+typedef struct xcb_set_pointer_mapping_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t map_len; /**< */
+ uint16_t length; /**< */
+} xcb_set_pointer_mapping_request_t;
+
+/**
+ * @brief xcb_set_pointer_mapping_reply_t
+ **/
+typedef struct xcb_set_pointer_mapping_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t status; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+} xcb_set_pointer_mapping_reply_t;
+
+/**
+ * @brief xcb_get_pointer_mapping_cookie_t
+ **/
+typedef struct xcb_get_pointer_mapping_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_get_pointer_mapping_cookie_t;
+
+/** Opcode for xcb_get_pointer_mapping. */
+#define XCB_GET_POINTER_MAPPING 117
+
+/**
+ * @brief xcb_get_pointer_mapping_request_t
+ **/
+typedef struct xcb_get_pointer_mapping_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+} xcb_get_pointer_mapping_request_t;
+
+/**
+ * @brief xcb_get_pointer_mapping_reply_t
+ **/
+typedef struct xcb_get_pointer_mapping_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t map_len; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint8_t pad0[24]; /**< */
+} xcb_get_pointer_mapping_reply_t;
+
+typedef enum xcb_map_index_t {
+ XCB_MAP_INDEX_SHIFT = 0,
+ XCB_MAP_INDEX_LOCK = 1,
+ XCB_MAP_INDEX_CONTROL = 2,
+ XCB_MAP_INDEX_1 = 3,
+ XCB_MAP_INDEX_2 = 4,
+ XCB_MAP_INDEX_3 = 5,
+ XCB_MAP_INDEX_4 = 6,
+ XCB_MAP_INDEX_5 = 7
+} xcb_map_index_t;
+
+/**
+ * @brief xcb_set_modifier_mapping_cookie_t
+ **/
+typedef struct xcb_set_modifier_mapping_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_set_modifier_mapping_cookie_t;
+
+/** Opcode for xcb_set_modifier_mapping. */
+#define XCB_SET_MODIFIER_MAPPING 118
+
+/**
+ * @brief xcb_set_modifier_mapping_request_t
+ **/
+typedef struct xcb_set_modifier_mapping_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t keycodes_per_modifier; /**< */
+ uint16_t length; /**< */
+} xcb_set_modifier_mapping_request_t;
+
+/**
+ * @brief xcb_set_modifier_mapping_reply_t
+ **/
+typedef struct xcb_set_modifier_mapping_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t status; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+} xcb_set_modifier_mapping_reply_t;
+
+/**
+ * @brief xcb_get_modifier_mapping_cookie_t
+ **/
+typedef struct xcb_get_modifier_mapping_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_get_modifier_mapping_cookie_t;
+
+/** Opcode for xcb_get_modifier_mapping. */
+#define XCB_GET_MODIFIER_MAPPING 119
+
+/**
+ * @brief xcb_get_modifier_mapping_request_t
+ **/
+typedef struct xcb_get_modifier_mapping_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+} xcb_get_modifier_mapping_request_t;
+
+/**
+ * @brief xcb_get_modifier_mapping_reply_t
+ **/
+typedef struct xcb_get_modifier_mapping_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t keycodes_per_modifier; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint8_t pad0[24]; /**< */
+} xcb_get_modifier_mapping_reply_t;
+
+/** Opcode for xcb_no_operation. */
+#define XCB_NO_OPERATION 127
+
+/**
+ * @brief xcb_no_operation_request_t
+ **/
+typedef struct xcb_no_operation_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t pad0; /**< */
+ uint16_t length; /**< */
+} xcb_no_operation_request_t;
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_char2b_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_char2b_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_char2b_next
+ **
+ ** @param xcb_char2b_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_char2b_next (xcb_char2b_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_char2b_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_char2b_end
+ **
+ ** @param xcb_char2b_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_char2b_end (xcb_char2b_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_window_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_window_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_window_next
+ **
+ ** @param xcb_window_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_window_next (xcb_window_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_window_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_window_end
+ **
+ ** @param xcb_window_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_window_end (xcb_window_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_pixmap_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_pixmap_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_pixmap_next
+ **
+ ** @param xcb_pixmap_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_pixmap_next (xcb_pixmap_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_pixmap_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_pixmap_end
+ **
+ ** @param xcb_pixmap_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_pixmap_end (xcb_pixmap_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_cursor_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_cursor_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_cursor_next
+ **
+ ** @param xcb_cursor_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_cursor_next (xcb_cursor_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_cursor_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_cursor_end
+ **
+ ** @param xcb_cursor_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_cursor_end (xcb_cursor_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_font_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_font_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_font_next
+ **
+ ** @param xcb_font_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_font_next (xcb_font_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_font_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_font_end
+ **
+ ** @param xcb_font_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_font_end (xcb_font_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_gcontext_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_gcontext_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_gcontext_next
+ **
+ ** @param xcb_gcontext_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_gcontext_next (xcb_gcontext_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_gcontext_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_gcontext_end
+ **
+ ** @param xcb_gcontext_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_gcontext_end (xcb_gcontext_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_colormap_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_colormap_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_colormap_next
+ **
+ ** @param xcb_colormap_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_colormap_next (xcb_colormap_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_colormap_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_colormap_end
+ **
+ ** @param xcb_colormap_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_colormap_end (xcb_colormap_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_atom_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_atom_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_atom_next
+ **
+ ** @param xcb_atom_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_atom_next (xcb_atom_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_atom_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_atom_end
+ **
+ ** @param xcb_atom_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_atom_end (xcb_atom_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_drawable_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_drawable_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_drawable_next
+ **
+ ** @param xcb_drawable_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_drawable_next (xcb_drawable_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_drawable_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_drawable_end
+ **
+ ** @param xcb_drawable_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_drawable_end (xcb_drawable_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_fontable_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_fontable_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_fontable_next
+ **
+ ** @param xcb_fontable_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_fontable_next (xcb_fontable_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_fontable_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_fontable_end
+ **
+ ** @param xcb_fontable_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_fontable_end (xcb_fontable_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_visualid_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_visualid_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_visualid_next
+ **
+ ** @param xcb_visualid_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_visualid_next (xcb_visualid_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_visualid_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_visualid_end
+ **
+ ** @param xcb_visualid_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_visualid_end (xcb_visualid_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_timestamp_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_timestamp_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_timestamp_next
+ **
+ ** @param xcb_timestamp_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_timestamp_next (xcb_timestamp_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_timestamp_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_timestamp_end
+ **
+ ** @param xcb_timestamp_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_timestamp_end (xcb_timestamp_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_keysym_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_keysym_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_keysym_next
+ **
+ ** @param xcb_keysym_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_keysym_next (xcb_keysym_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_keysym_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_keysym_end
+ **
+ ** @param xcb_keysym_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_keysym_end (xcb_keysym_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_keycode_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_keycode_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_keycode_next
+ **
+ ** @param xcb_keycode_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_keycode_next (xcb_keycode_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_keycode_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_keycode_end
+ **
+ ** @param xcb_keycode_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_keycode_end (xcb_keycode_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_button_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_button_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_button_next
+ **
+ ** @param xcb_button_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_button_next (xcb_button_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_button_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_button_end
+ **
+ ** @param xcb_button_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_button_end (xcb_button_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_point_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_point_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_point_next
+ **
+ ** @param xcb_point_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_point_next (xcb_point_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_point_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_point_end
+ **
+ ** @param xcb_point_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_point_end (xcb_point_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_rectangle_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_rectangle_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_rectangle_next
+ **
+ ** @param xcb_rectangle_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_rectangle_next (xcb_rectangle_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_rectangle_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_rectangle_end
+ **
+ ** @param xcb_rectangle_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_rectangle_end (xcb_rectangle_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_arc_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_arc_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_arc_next
+ **
+ ** @param xcb_arc_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_arc_next (xcb_arc_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_arc_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_arc_end
+ **
+ ** @param xcb_arc_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_arc_end (xcb_arc_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_format_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_format_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_format_next
+ **
+ ** @param xcb_format_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_format_next (xcb_format_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_format_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_format_end
+ **
+ ** @param xcb_format_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_format_end (xcb_format_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_visualtype_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_visualtype_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_visualtype_next
+ **
+ ** @param xcb_visualtype_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_visualtype_next (xcb_visualtype_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_visualtype_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_visualtype_end
+ **
+ ** @param xcb_visualtype_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_visualtype_end (xcb_visualtype_iterator_t i /**< */);
+
+int
+xcb_depth_sizeof (const void *_buffer /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_visualtype_t * xcb_depth_visuals
+ **
+ ** @param const xcb_depth_t *R
+ ** @returns xcb_visualtype_t *
+ **
+ *****************************************************************************/
+
+xcb_visualtype_t *
+xcb_depth_visuals (const xcb_depth_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_depth_visuals_length
+ **
+ ** @param const xcb_depth_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_depth_visuals_length (const xcb_depth_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_visualtype_iterator_t xcb_depth_visuals_iterator
+ **
+ ** @param const xcb_depth_t *R
+ ** @returns xcb_visualtype_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_visualtype_iterator_t
+xcb_depth_visuals_iterator (const xcb_depth_t *R /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_depth_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_depth_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_depth_next
+ **
+ ** @param xcb_depth_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_depth_next (xcb_depth_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_depth_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_depth_end
+ **
+ ** @param xcb_depth_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_depth_end (xcb_depth_iterator_t i /**< */);
+
+int
+xcb_screen_sizeof (const void *_buffer /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_screen_allowed_depths_length
+ **
+ ** @param const xcb_screen_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_screen_allowed_depths_length (const xcb_screen_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_depth_iterator_t xcb_screen_allowed_depths_iterator
+ **
+ ** @param const xcb_screen_t *R
+ ** @returns xcb_depth_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_depth_iterator_t
+xcb_screen_allowed_depths_iterator (const xcb_screen_t *R /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_screen_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_screen_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_screen_next
+ **
+ ** @param xcb_screen_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_screen_next (xcb_screen_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_screen_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_screen_end
+ **
+ ** @param xcb_screen_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_screen_end (xcb_screen_iterator_t i /**< */);
+
+int
+xcb_setup_request_sizeof (const void *_buffer /**< */);
+
+
+/*****************************************************************************
+ **
+ ** char * xcb_setup_request_authorization_protocol_name
+ **
+ ** @param const xcb_setup_request_t *R
+ ** @returns char *
+ **
+ *****************************************************************************/
+
+char *
+xcb_setup_request_authorization_protocol_name (const xcb_setup_request_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_setup_request_authorization_protocol_name_length
+ **
+ ** @param const xcb_setup_request_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_setup_request_authorization_protocol_name_length (const xcb_setup_request_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_setup_request_authorization_protocol_name_end
+ **
+ ** @param const xcb_setup_request_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_setup_request_authorization_protocol_name_end (const xcb_setup_request_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** char * xcb_setup_request_authorization_protocol_data
+ **
+ ** @param const xcb_setup_request_t *R
+ ** @returns char *
+ **
+ *****************************************************************************/
+
+char *
+xcb_setup_request_authorization_protocol_data (const xcb_setup_request_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_setup_request_authorization_protocol_data_length
+ **
+ ** @param const xcb_setup_request_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_setup_request_authorization_protocol_data_length (const xcb_setup_request_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_setup_request_authorization_protocol_data_end
+ **
+ ** @param const xcb_setup_request_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_setup_request_authorization_protocol_data_end (const xcb_setup_request_t *R /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_setup_request_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_setup_request_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_setup_request_next
+ **
+ ** @param xcb_setup_request_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_setup_request_next (xcb_setup_request_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_setup_request_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_setup_request_end
+ **
+ ** @param xcb_setup_request_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_setup_request_end (xcb_setup_request_iterator_t i /**< */);
+
+int
+xcb_setup_failed_sizeof (const void *_buffer /**< */);
+
+
+/*****************************************************************************
+ **
+ ** char * xcb_setup_failed_reason
+ **
+ ** @param const xcb_setup_failed_t *R
+ ** @returns char *
+ **
+ *****************************************************************************/
+
+char *
+xcb_setup_failed_reason (const xcb_setup_failed_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_setup_failed_reason_length
+ **
+ ** @param const xcb_setup_failed_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_setup_failed_reason_length (const xcb_setup_failed_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_setup_failed_reason_end
+ **
+ ** @param const xcb_setup_failed_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_setup_failed_reason_end (const xcb_setup_failed_t *R /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_setup_failed_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_setup_failed_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_setup_failed_next
+ **
+ ** @param xcb_setup_failed_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_setup_failed_next (xcb_setup_failed_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_setup_failed_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_setup_failed_end
+ **
+ ** @param xcb_setup_failed_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_setup_failed_end (xcb_setup_failed_iterator_t i /**< */);
+
+int
+xcb_setup_authenticate_sizeof (const void *_buffer /**< */);
+
+
+/*****************************************************************************
+ **
+ ** char * xcb_setup_authenticate_reason
+ **
+ ** @param const xcb_setup_authenticate_t *R
+ ** @returns char *
+ **
+ *****************************************************************************/
+
+char *
+xcb_setup_authenticate_reason (const xcb_setup_authenticate_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_setup_authenticate_reason_length
+ **
+ ** @param const xcb_setup_authenticate_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_setup_authenticate_reason_length (const xcb_setup_authenticate_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_setup_authenticate_reason_end
+ **
+ ** @param const xcb_setup_authenticate_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_setup_authenticate_reason_end (const xcb_setup_authenticate_t *R /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_setup_authenticate_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_setup_authenticate_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_setup_authenticate_next
+ **
+ ** @param xcb_setup_authenticate_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_setup_authenticate_next (xcb_setup_authenticate_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_setup_authenticate_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_setup_authenticate_end
+ **
+ ** @param xcb_setup_authenticate_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_setup_authenticate_end (xcb_setup_authenticate_iterator_t i /**< */);
+
+int
+xcb_setup_sizeof (const void *_buffer /**< */);
+
+
+/*****************************************************************************
+ **
+ ** char * xcb_setup_vendor
+ **
+ ** @param const xcb_setup_t *R
+ ** @returns char *
+ **
+ *****************************************************************************/
+
+char *
+xcb_setup_vendor (const xcb_setup_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_setup_vendor_length
+ **
+ ** @param const xcb_setup_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_setup_vendor_length (const xcb_setup_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_setup_vendor_end
+ **
+ ** @param const xcb_setup_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_setup_vendor_end (const xcb_setup_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_format_t * xcb_setup_pixmap_formats
+ **
+ ** @param const xcb_setup_t *R
+ ** @returns xcb_format_t *
+ **
+ *****************************************************************************/
+
+xcb_format_t *
+xcb_setup_pixmap_formats (const xcb_setup_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_setup_pixmap_formats_length
+ **
+ ** @param const xcb_setup_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_setup_pixmap_formats_length (const xcb_setup_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_format_iterator_t xcb_setup_pixmap_formats_iterator
+ **
+ ** @param const xcb_setup_t *R
+ ** @returns xcb_format_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_format_iterator_t
+xcb_setup_pixmap_formats_iterator (const xcb_setup_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_setup_roots_length
+ **
+ ** @param const xcb_setup_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_setup_roots_length (const xcb_setup_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_screen_iterator_t xcb_setup_roots_iterator
+ **
+ ** @param const xcb_setup_t *R
+ ** @returns xcb_screen_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_screen_iterator_t
+xcb_setup_roots_iterator (const xcb_setup_t *R /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_setup_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_setup_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_setup_next
+ **
+ ** @param xcb_setup_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_setup_next (xcb_setup_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_setup_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_setup_end
+ **
+ ** @param xcb_setup_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_setup_end (xcb_setup_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_client_message_data_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_client_message_data_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_client_message_data_next
+ **
+ ** @param xcb_client_message_data_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_client_message_data_next (xcb_client_message_data_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_client_message_data_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_client_message_data_end
+ **
+ ** @param xcb_client_message_data_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_client_message_data_end (xcb_client_message_data_iterator_t i /**< */);
+
+int
+xcb_create_window_sizeof (const void *_buffer /**< */);
+
+/**
+ * @brief Creates a window
+ *
+ * @param c The connection
+ * @param depth Specifies the new window's depth (TODO: what unit?).
+ * \n
+ * The special value `XCB_COPY_FROM_PARENT` means the depth is taken from the
+ * \a parent window.
+ * @param wid The ID with which you will refer to the new window, created by
+ * `xcb_generate_id`.
+ * @param parent The parent window of the new window.
+ * @param x The X coordinate of the new window.
+ * @param y The Y coordinate of the new window.
+ * @param width The width of the new window.
+ * @param height The height of the new window.
+ * @param border_width TODO:
+ * \n
+ * Must be zero if the `class` is `InputOnly` or a `xcb_match_error_t` occurs.
+ * @param _class A bitmask of #xcb_window_class_t values.
+ * @param _class \n
+ * @param visual Specifies the id for the new window's visual.
+ * \n
+ * The special value `XCB_COPY_FROM_PARENT` means the visual is taken from the
+ * \a parent window.
+ * @param value_mask A bitmask of #xcb_cw_t values.
+ * @return A cookie
+ *
+ * Creates an unmapped window as child of the specified \a parent window. A
+ * CreateNotify event will be generated. The new window is placed on top in the
+ * stacking order with respect to siblings.
+ *
+ * The coordinate system has the X axis horizontal and the Y axis vertical with
+ * the origin [0, 0] at the upper-left corner. Coordinates are integral, in terms
+ * of pixels, and coincide with pixel centers. Each window and pixmap has its own
+ * coordinate system. For a window, the origin is inside the border at the inside,
+ * upper-left corner.
+ *
+ * The created window is not yet displayed (mapped), call `xcb_map_window` to
+ * display it.
+ *
+ * The created window will initially use the same cursor as its parent.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_create_window_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t depth
+ ** @param xcb_window_t wid
+ ** @param xcb_window_t parent
+ ** @param int16_t x
+ ** @param int16_t y
+ ** @param uint16_t width
+ ** @param uint16_t height
+ ** @param uint16_t border_width
+ ** @param uint16_t _class
+ ** @param xcb_visualid_t visual
+ ** @param uint32_t value_mask
+ ** @param const uint32_t *value_list
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_create_window_checked (xcb_connection_t *c /**< */,
+ uint8_t depth /**< */,
+ xcb_window_t wid /**< */,
+ xcb_window_t parent /**< */,
+ int16_t x /**< */,
+ int16_t y /**< */,
+ uint16_t width /**< */,
+ uint16_t height /**< */,
+ uint16_t border_width /**< */,
+ uint16_t _class /**< */,
+ xcb_visualid_t visual /**< */,
+ uint32_t value_mask /**< */,
+ const uint32_t *value_list /**< */);
+
+/**
+ * @brief Creates a window
+ *
+ * @param c The connection
+ * @param depth Specifies the new window's depth (TODO: what unit?).
+ * \n
+ * The special value `XCB_COPY_FROM_PARENT` means the depth is taken from the
+ * \a parent window.
+ * @param wid The ID with which you will refer to the new window, created by
+ * `xcb_generate_id`.
+ * @param parent The parent window of the new window.
+ * @param x The X coordinate of the new window.
+ * @param y The Y coordinate of the new window.
+ * @param width The width of the new window.
+ * @param height The height of the new window.
+ * @param border_width TODO:
+ * \n
+ * Must be zero if the `class` is `InputOnly` or a `xcb_match_error_t` occurs.
+ * @param _class A bitmask of #xcb_window_class_t values.
+ * @param _class \n
+ * @param visual Specifies the id for the new window's visual.
+ * \n
+ * The special value `XCB_COPY_FROM_PARENT` means the visual is taken from the
+ * \a parent window.
+ * @param value_mask A bitmask of #xcb_cw_t values.
+ * @return A cookie
+ *
+ * Creates an unmapped window as child of the specified \a parent window. A
+ * CreateNotify event will be generated. The new window is placed on top in the
+ * stacking order with respect to siblings.
+ *
+ * The coordinate system has the X axis horizontal and the Y axis vertical with
+ * the origin [0, 0] at the upper-left corner. Coordinates are integral, in terms
+ * of pixels, and coincide with pixel centers. Each window and pixmap has its own
+ * coordinate system. For a window, the origin is inside the border at the inside,
+ * upper-left corner.
+ *
+ * The created window is not yet displayed (mapped), call `xcb_map_window` to
+ * display it.
+ *
+ * The created window will initially use the same cursor as its parent.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_create_window
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t depth
+ ** @param xcb_window_t wid
+ ** @param xcb_window_t parent
+ ** @param int16_t x
+ ** @param int16_t y
+ ** @param uint16_t width
+ ** @param uint16_t height
+ ** @param uint16_t border_width
+ ** @param uint16_t _class
+ ** @param xcb_visualid_t visual
+ ** @param uint32_t value_mask
+ ** @param const uint32_t *value_list
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_create_window (xcb_connection_t *c /**< */,
+ uint8_t depth /**< */,
+ xcb_window_t wid /**< */,
+ xcb_window_t parent /**< */,
+ int16_t x /**< */,
+ int16_t y /**< */,
+ uint16_t width /**< */,
+ uint16_t height /**< */,
+ uint16_t border_width /**< */,
+ uint16_t _class /**< */,
+ xcb_visualid_t visual /**< */,
+ uint32_t value_mask /**< */,
+ const uint32_t *value_list /**< */);
+
+int
+xcb_change_window_attributes_sizeof (const void *_buffer /**< */);
+
+/**
+ * @brief change window attributes
+ *
+ * @param c The connection
+ * @param window The window to change.
+ * @param value_mask A bitmask of #xcb_cw_t values.
+ * @param value_mask \n
+ * @param value_list Values for each of the attributes specified in the bitmask \a value_mask. The
+ * order has to correspond to the order of possible \a value_mask bits. See the
+ * example.
+ * @return A cookie
+ *
+ * Changes the attributes specified by \a value_mask for the specified \a window.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_change_window_attributes_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @param uint32_t value_mask
+ ** @param const uint32_t *value_list
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_change_window_attributes_checked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */,
+ uint32_t value_mask /**< */,
+ const uint32_t *value_list /**< */);
+
+/**
+ * @brief change window attributes
+ *
+ * @param c The connection
+ * @param window The window to change.
+ * @param value_mask A bitmask of #xcb_cw_t values.
+ * @param value_mask \n
+ * @param value_list Values for each of the attributes specified in the bitmask \a value_mask. The
+ * order has to correspond to the order of possible \a value_mask bits. See the
+ * example.
+ * @return A cookie
+ *
+ * Changes the attributes specified by \a value_mask for the specified \a window.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_change_window_attributes
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @param uint32_t value_mask
+ ** @param const uint32_t *value_list
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_change_window_attributes (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */,
+ uint32_t value_mask /**< */,
+ const uint32_t *value_list /**< */);
+
+/**
+ * @brief Gets window attributes
+ *
+ * @param c The connection
+ * @param window The window to get the attributes from.
+ * @return A cookie
+ *
+ * Gets the current attributes for the specified \a window.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_window_attributes_cookie_t xcb_get_window_attributes
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_get_window_attributes_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_window_attributes_cookie_t
+xcb_get_window_attributes (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ * @brief Gets window attributes
+ *
+ * @param c The connection
+ * @param window The window to get the attributes from.
+ * @return A cookie
+ *
+ * Gets the current attributes for the specified \a window.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_window_attributes_cookie_t xcb_get_window_attributes_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_get_window_attributes_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_window_attributes_cookie_t
+xcb_get_window_attributes_unchecked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_get_window_attributes_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_window_attributes_reply_t * xcb_get_window_attributes_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_get_window_attributes_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_get_window_attributes_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_get_window_attributes_reply_t *
+xcb_get_window_attributes_reply (xcb_connection_t *c /**< */,
+ xcb_get_window_attributes_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ * @brief Destroys a window
+ *
+ * @param c The connection
+ * @param window The window to destroy.
+ * @return A cookie
+ *
+ * Destroys the specified window and all of its subwindows. A DestroyNotify event
+ * is generated for each destroyed window (a DestroyNotify event is first generated
+ * for any given window's inferiors). If the window was mapped, it will be
+ * automatically unmapped before destroying.
+ *
+ * Calling DestroyWindow on the root window will do nothing.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_destroy_window_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_destroy_window_checked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ * @brief Destroys a window
+ *
+ * @param c The connection
+ * @param window The window to destroy.
+ * @return A cookie
+ *
+ * Destroys the specified window and all of its subwindows. A DestroyNotify event
+ * is generated for each destroyed window (a DestroyNotify event is first generated
+ * for any given window's inferiors). If the window was mapped, it will be
+ * automatically unmapped before destroying.
+ *
+ * Calling DestroyWindow on the root window will do nothing.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_destroy_window
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_destroy_window (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_destroy_subwindows_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_destroy_subwindows_checked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_destroy_subwindows
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_destroy_subwindows (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ * @brief Changes a client's save set
+ *
+ * @param c The connection
+ * @param mode A bitmask of #xcb_set_mode_t values.
+ * @param mode Insert to add the specified window to the save set or Delete to delete it from the save set.
+ * @param window The window to add or delete to/from your save set.
+ * @return A cookie
+ *
+ * TODO: explain what the save set is for.
+ *
+ * This function either adds or removes the specified window to the client's (your
+ * application's) save set.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_change_save_set_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t mode
+ ** @param xcb_window_t window
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_change_save_set_checked (xcb_connection_t *c /**< */,
+ uint8_t mode /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ * @brief Changes a client's save set
+ *
+ * @param c The connection
+ * @param mode A bitmask of #xcb_set_mode_t values.
+ * @param mode Insert to add the specified window to the save set or Delete to delete it from the save set.
+ * @param window The window to add or delete to/from your save set.
+ * @return A cookie
+ *
+ * TODO: explain what the save set is for.
+ *
+ * This function either adds or removes the specified window to the client's (your
+ * application's) save set.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_change_save_set
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t mode
+ ** @param xcb_window_t window
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_change_save_set (xcb_connection_t *c /**< */,
+ uint8_t mode /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ * @brief Reparents a window
+ *
+ * @param c The connection
+ * @param window The window to reparent.
+ * @param parent The new parent of the window.
+ * @param x The X position of the window within its new parent.
+ * @param y The Y position of the window within its new parent.
+ * @return A cookie
+ *
+ * Makes the specified window a child of the specified parent window. If the
+ * window is mapped, it will automatically be unmapped before reparenting and
+ * re-mapped after reparenting. The window is placed in the stacking order on top
+ * with respect to sibling windows.
+ *
+ * After reparenting, a ReparentNotify event is generated.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_reparent_window_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @param xcb_window_t parent
+ ** @param int16_t x
+ ** @param int16_t y
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_reparent_window_checked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */,
+ xcb_window_t parent /**< */,
+ int16_t x /**< */,
+ int16_t y /**< */);
+
+/**
+ * @brief Reparents a window
+ *
+ * @param c The connection
+ * @param window The window to reparent.
+ * @param parent The new parent of the window.
+ * @param x The X position of the window within its new parent.
+ * @param y The Y position of the window within its new parent.
+ * @return A cookie
+ *
+ * Makes the specified window a child of the specified parent window. If the
+ * window is mapped, it will automatically be unmapped before reparenting and
+ * re-mapped after reparenting. The window is placed in the stacking order on top
+ * with respect to sibling windows.
+ *
+ * After reparenting, a ReparentNotify event is generated.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_reparent_window
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @param xcb_window_t parent
+ ** @param int16_t x
+ ** @param int16_t y
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_reparent_window (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */,
+ xcb_window_t parent /**< */,
+ int16_t x /**< */,
+ int16_t y /**< */);
+
+/**
+ * @brief Makes a window visible
+ *
+ * @param c The connection
+ * @param window The window to make visible.
+ * @return A cookie
+ *
+ * Maps the specified window. This means making the window visible (as long as its
+ * parent is visible).
+ *
+ * This MapWindow request will be translated to a MapRequest request if a window
+ * manager is running. The window manager then decides to either map the window or
+ * not. Set the override-redirect window attribute to true if you want to bypass
+ * this mechanism.
+ *
+ * If the window manager decides to map the window (or if no window manager is
+ * running), a MapNotify event is generated.
+ *
+ * If the window becomes viewable and no earlier contents for it are remembered,
+ * the X server tiles the window with its background. If the window's background
+ * is undefined, the existing screen contents are not altered, and the X server
+ * generates zero or more Expose events.
+ *
+ * If the window type is InputOutput, an Expose event will be generated when the
+ * window becomes visible. The normal response to an Expose event should be to
+ * repaint the window.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_map_window_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_map_window_checked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ * @brief Makes a window visible
+ *
+ * @param c The connection
+ * @param window The window to make visible.
+ * @return A cookie
+ *
+ * Maps the specified window. This means making the window visible (as long as its
+ * parent is visible).
+ *
+ * This MapWindow request will be translated to a MapRequest request if a window
+ * manager is running. The window manager then decides to either map the window or
+ * not. Set the override-redirect window attribute to true if you want to bypass
+ * this mechanism.
+ *
+ * If the window manager decides to map the window (or if no window manager is
+ * running), a MapNotify event is generated.
+ *
+ * If the window becomes viewable and no earlier contents for it are remembered,
+ * the X server tiles the window with its background. If the window's background
+ * is undefined, the existing screen contents are not altered, and the X server
+ * generates zero or more Expose events.
+ *
+ * If the window type is InputOutput, an Expose event will be generated when the
+ * window becomes visible. The normal response to an Expose event should be to
+ * repaint the window.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_map_window
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_map_window (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_map_subwindows_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_map_subwindows_checked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_map_subwindows
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_map_subwindows (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ * @brief Makes a window invisible
+ *
+ * @param c The connection
+ * @param window The window to make invisible.
+ * @return A cookie
+ *
+ * Unmaps the specified window. This means making the window invisible (and all
+ * its child windows).
+ *
+ * Unmapping a window leads to the `UnmapNotify` event being generated. Also,
+ * `Expose` events are generated for formerly obscured windows.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_unmap_window_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_unmap_window_checked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ * @brief Makes a window invisible
+ *
+ * @param c The connection
+ * @param window The window to make invisible.
+ * @return A cookie
+ *
+ * Unmaps the specified window. This means making the window invisible (and all
+ * its child windows).
+ *
+ * Unmapping a window leads to the `UnmapNotify` event being generated. Also,
+ * `Expose` events are generated for formerly obscured windows.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_unmap_window
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_unmap_window (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_unmap_subwindows_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_unmap_subwindows_checked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_unmap_subwindows
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_unmap_subwindows (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+int
+xcb_configure_window_sizeof (const void *_buffer /**< */);
+
+/**
+ * @brief Configures window attributes
+ *
+ * @param c The connection
+ * @param window The window to configure.
+ * @param value_mask Bitmask of attributes to change.
+ * @param value_list New values, corresponding to the attributes in value_mask. The order has to
+ * correspond to the order of possible \a value_mask bits. See the example.
+ * @return A cookie
+ *
+ * Configures a window's size, position, border width and stacking order.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_configure_window_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @param uint16_t value_mask
+ ** @param const uint32_t *value_list
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_configure_window_checked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */,
+ uint16_t value_mask /**< */,
+ const uint32_t *value_list /**< */);
+
+/**
+ * @brief Configures window attributes
+ *
+ * @param c The connection
+ * @param window The window to configure.
+ * @param value_mask Bitmask of attributes to change.
+ * @param value_list New values, corresponding to the attributes in value_mask. The order has to
+ * correspond to the order of possible \a value_mask bits. See the example.
+ * @return A cookie
+ *
+ * Configures a window's size, position, border width and stacking order.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_configure_window
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @param uint16_t value_mask
+ ** @param const uint32_t *value_list
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_configure_window (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */,
+ uint16_t value_mask /**< */,
+ const uint32_t *value_list /**< */);
+
+/**
+ * @brief Change window stacking order
+ *
+ * @param c The connection
+ * @param direction A bitmask of #xcb_circulate_t values.
+ * @param direction \n
+ * @param window The window to raise/lower (depending on \a direction).
+ * @return A cookie
+ *
+ * If \a direction is `XCB_CIRCULATE_RAISE_LOWEST`, the lowest mapped child (if
+ * any) will be raised to the top of the stack.
+ *
+ * If \a direction is `XCB_CIRCULATE_LOWER_HIGHEST`, the highest mapped child will
+ * be lowered to the bottom of the stack.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_circulate_window_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t direction
+ ** @param xcb_window_t window
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_circulate_window_checked (xcb_connection_t *c /**< */,
+ uint8_t direction /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ * @brief Change window stacking order
+ *
+ * @param c The connection
+ * @param direction A bitmask of #xcb_circulate_t values.
+ * @param direction \n
+ * @param window The window to raise/lower (depending on \a direction).
+ * @return A cookie
+ *
+ * If \a direction is `XCB_CIRCULATE_RAISE_LOWEST`, the lowest mapped child (if
+ * any) will be raised to the top of the stack.
+ *
+ * If \a direction is `XCB_CIRCULATE_LOWER_HIGHEST`, the highest mapped child will
+ * be lowered to the bottom of the stack.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_circulate_window
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t direction
+ ** @param xcb_window_t window
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_circulate_window (xcb_connection_t *c /**< */,
+ uint8_t direction /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ * @brief Get current window geometry
+ *
+ * @param c The connection
+ * @param drawable The drawable (`Window` or `Pixmap`) of which the geometry will be received.
+ * @return A cookie
+ *
+ * Gets the current geometry of the specified drawable (either `Window` or `Pixmap`).
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_geometry_cookie_t xcb_get_geometry
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @returns xcb_get_geometry_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_geometry_cookie_t
+xcb_get_geometry (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */);
+
+/**
+ * @brief Get current window geometry
+ *
+ * @param c The connection
+ * @param drawable The drawable (`Window` or `Pixmap`) of which the geometry will be received.
+ * @return A cookie
+ *
+ * Gets the current geometry of the specified drawable (either `Window` or `Pixmap`).
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_geometry_cookie_t xcb_get_geometry_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @returns xcb_get_geometry_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_geometry_cookie_t
+xcb_get_geometry_unchecked (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_get_geometry_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_geometry_reply_t * xcb_get_geometry_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_get_geometry_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_get_geometry_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_get_geometry_reply_t *
+xcb_get_geometry_reply (xcb_connection_t *c /**< */,
+ xcb_get_geometry_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_query_tree_sizeof (const void *_buffer /**< */);
+
+/**
+ * @brief query the window tree
+ *
+ * @param c The connection
+ * @param window The \a window to query.
+ * @return A cookie
+ *
+ * Gets the root window ID, parent window ID and list of children windows for the
+ * specified \a window. The children are listed in bottom-to-top stacking order.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_tree_cookie_t xcb_query_tree
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_query_tree_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_query_tree_cookie_t
+xcb_query_tree (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ * @brief query the window tree
+ *
+ * @param c The connection
+ * @param window The \a window to query.
+ * @return A cookie
+ *
+ * Gets the root window ID, parent window ID and list of children windows for the
+ * specified \a window. The children are listed in bottom-to-top stacking order.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_tree_cookie_t xcb_query_tree_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_query_tree_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_query_tree_cookie_t
+xcb_query_tree_unchecked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_window_t * xcb_query_tree_children
+ **
+ ** @param const xcb_query_tree_reply_t *R
+ ** @returns xcb_window_t *
+ **
+ *****************************************************************************/
+
+xcb_window_t *
+xcb_query_tree_children (const xcb_query_tree_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_query_tree_children_length
+ **
+ ** @param const xcb_query_tree_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_query_tree_children_length (const xcb_query_tree_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_query_tree_children_end
+ **
+ ** @param const xcb_query_tree_reply_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_query_tree_children_end (const xcb_query_tree_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_query_tree_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_tree_reply_t * xcb_query_tree_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_query_tree_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_query_tree_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_query_tree_reply_t *
+xcb_query_tree_reply (xcb_connection_t *c /**< */,
+ xcb_query_tree_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_intern_atom_sizeof (const void *_buffer /**< */);
+
+/**
+ * @brief Get atom identifier by name
+ *
+ * @param c The connection
+ * @param only_if_exists Return a valid atom id only if the atom already exists.
+ * @param name_len The length of the following \a name.
+ * @param name The name of the atom.
+ * @return A cookie
+ *
+ * Retrieves the identifier (xcb_atom_t TODO) for the atom with the specified
+ * name. Atoms are used in protocols like EWMH, for example to store window titles
+ * (`_NET_WM_NAME` atom) as property of a window.
+ *
+ * If \a only_if_exists is 0, the atom will be created if it does not already exist.
+ * If \a only_if_exists is 1, `XCB_ATOM_NONE` will be returned if the atom does
+ * not yet exist.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_intern_atom_cookie_t xcb_intern_atom
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t only_if_exists
+ ** @param uint16_t name_len
+ ** @param const char *name
+ ** @returns xcb_intern_atom_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_intern_atom_cookie_t
+xcb_intern_atom (xcb_connection_t *c /**< */,
+ uint8_t only_if_exists /**< */,
+ uint16_t name_len /**< */,
+ const char *name /**< */);
+
+/**
+ * @brief Get atom identifier by name
+ *
+ * @param c The connection
+ * @param only_if_exists Return a valid atom id only if the atom already exists.
+ * @param name_len The length of the following \a name.
+ * @param name The name of the atom.
+ * @return A cookie
+ *
+ * Retrieves the identifier (xcb_atom_t TODO) for the atom with the specified
+ * name. Atoms are used in protocols like EWMH, for example to store window titles
+ * (`_NET_WM_NAME` atom) as property of a window.
+ *
+ * If \a only_if_exists is 0, the atom will be created if it does not already exist.
+ * If \a only_if_exists is 1, `XCB_ATOM_NONE` will be returned if the atom does
+ * not yet exist.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_intern_atom_cookie_t xcb_intern_atom_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t only_if_exists
+ ** @param uint16_t name_len
+ ** @param const char *name
+ ** @returns xcb_intern_atom_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_intern_atom_cookie_t
+xcb_intern_atom_unchecked (xcb_connection_t *c /**< */,
+ uint8_t only_if_exists /**< */,
+ uint16_t name_len /**< */,
+ const char *name /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_intern_atom_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_intern_atom_reply_t * xcb_intern_atom_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_intern_atom_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_intern_atom_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_intern_atom_reply_t *
+xcb_intern_atom_reply (xcb_connection_t *c /**< */,
+ xcb_intern_atom_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_get_atom_name_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_atom_name_cookie_t xcb_get_atom_name
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_atom_t atom
+ ** @returns xcb_get_atom_name_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_atom_name_cookie_t
+xcb_get_atom_name (xcb_connection_t *c /**< */,
+ xcb_atom_t atom /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_atom_name_cookie_t xcb_get_atom_name_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_atom_t atom
+ ** @returns xcb_get_atom_name_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_atom_name_cookie_t
+xcb_get_atom_name_unchecked (xcb_connection_t *c /**< */,
+ xcb_atom_t atom /**< */);
+
+
+/*****************************************************************************
+ **
+ ** char * xcb_get_atom_name_name
+ **
+ ** @param const xcb_get_atom_name_reply_t *R
+ ** @returns char *
+ **
+ *****************************************************************************/
+
+char *
+xcb_get_atom_name_name (const xcb_get_atom_name_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_get_atom_name_name_length
+ **
+ ** @param const xcb_get_atom_name_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_get_atom_name_name_length (const xcb_get_atom_name_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_get_atom_name_name_end
+ **
+ ** @param const xcb_get_atom_name_reply_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_get_atom_name_name_end (const xcb_get_atom_name_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_get_atom_name_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_atom_name_reply_t * xcb_get_atom_name_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_get_atom_name_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_get_atom_name_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_get_atom_name_reply_t *
+xcb_get_atom_name_reply (xcb_connection_t *c /**< */,
+ xcb_get_atom_name_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_change_property_sizeof (const void *_buffer /**< */);
+
+/**
+ * @brief Changes a window property
+ *
+ * @param c The connection
+ * @param mode A bitmask of #xcb_prop_mode_t values.
+ * @param mode \n
+ * @param window The window whose property you want to change.
+ * @param property The property you want to change (an atom).
+ * @param type The type of the property you want to change (an atom).
+ * @param format Specifies whether the data should be viewed as a list of 8-bit, 16-bit or
+ * 32-bit quantities. Possible values are 8, 16 and 32. This information allows
+ * the X server to correctly perform byte-swap operations as necessary.
+ * @param data_len Specifies the number of elements (see \a format).
+ * @param data The property data.
+ * @return A cookie
+ *
+ * Sets or updates a property on the specified \a window. Properties are for
+ * example the window title (`WM_NAME`) or its minimum size (`WM_NORMAL_HINTS`).
+ * Protocols such as EWMH also use properties - for example EWMH defines the
+ * window title, encoded as UTF-8 string, in the `_NET_WM_NAME` property.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_change_property_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t mode
+ ** @param xcb_window_t window
+ ** @param xcb_atom_t property
+ ** @param xcb_atom_t type
+ ** @param uint8_t format
+ ** @param uint32_t data_len
+ ** @param const void *data
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_change_property_checked (xcb_connection_t *c /**< */,
+ uint8_t mode /**< */,
+ xcb_window_t window /**< */,
+ xcb_atom_t property /**< */,
+ xcb_atom_t type /**< */,
+ uint8_t format /**< */,
+ uint32_t data_len /**< */,
+ const void *data /**< */);
+
+/**
+ * @brief Changes a window property
+ *
+ * @param c The connection
+ * @param mode A bitmask of #xcb_prop_mode_t values.
+ * @param mode \n
+ * @param window The window whose property you want to change.
+ * @param property The property you want to change (an atom).
+ * @param type The type of the property you want to change (an atom).
+ * @param format Specifies whether the data should be viewed as a list of 8-bit, 16-bit or
+ * 32-bit quantities. Possible values are 8, 16 and 32. This information allows
+ * the X server to correctly perform byte-swap operations as necessary.
+ * @param data_len Specifies the number of elements (see \a format).
+ * @param data The property data.
+ * @return A cookie
+ *
+ * Sets or updates a property on the specified \a window. Properties are for
+ * example the window title (`WM_NAME`) or its minimum size (`WM_NORMAL_HINTS`).
+ * Protocols such as EWMH also use properties - for example EWMH defines the
+ * window title, encoded as UTF-8 string, in the `_NET_WM_NAME` property.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_change_property
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t mode
+ ** @param xcb_window_t window
+ ** @param xcb_atom_t property
+ ** @param xcb_atom_t type
+ ** @param uint8_t format
+ ** @param uint32_t data_len
+ ** @param const void *data
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_change_property (xcb_connection_t *c /**< */,
+ uint8_t mode /**< */,
+ xcb_window_t window /**< */,
+ xcb_atom_t property /**< */,
+ xcb_atom_t type /**< */,
+ uint8_t format /**< */,
+ uint32_t data_len /**< */,
+ const void *data /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_delete_property_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @param xcb_atom_t property
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_delete_property_checked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */,
+ xcb_atom_t property /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_delete_property
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @param xcb_atom_t property
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_delete_property (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */,
+ xcb_atom_t property /**< */);
+
+int
+xcb_get_property_sizeof (const void *_buffer /**< */);
+
+/**
+ * @brief Gets a window property
+ *
+ * @param c The connection
+ * @param _delete Whether the property should actually be deleted. For deleting a property, the
+ * specified \a type has to match the actual property type.
+ * @param window The window whose property you want to get.
+ * @param property The property you want to get (an atom).
+ * @param type The type of the property you want to get (an atom).
+ * @param long_offset Specifies the offset (in 32-bit multiples) in the specified property where the
+ * data is to be retrieved.
+ * @param long_length Specifies how many 32-bit multiples of data should be retrieved (e.g. if you
+ * set \a long_length to 4, you will receive 16 bytes of data).
+ * @return A cookie
+ *
+ * Gets the specified \a property from the specified \a window. Properties are for
+ * example the window title (`WM_NAME`) or its minimum size (`WM_NORMAL_HINTS`).
+ * Protocols such as EWMH also use properties - for example EWMH defines the
+ * window title, encoded as UTF-8 string, in the `_NET_WM_NAME` property.
+ *
+ * TODO: talk about \a type
+ *
+ * TODO: talk about `delete`
+ *
+ * TODO: talk about the offset/length thing. what's a valid use case?
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_property_cookie_t xcb_get_property
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t _delete
+ ** @param xcb_window_t window
+ ** @param xcb_atom_t property
+ ** @param xcb_atom_t type
+ ** @param uint32_t long_offset
+ ** @param uint32_t long_length
+ ** @returns xcb_get_property_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_property_cookie_t
+xcb_get_property (xcb_connection_t *c /**< */,
+ uint8_t _delete /**< */,
+ xcb_window_t window /**< */,
+ xcb_atom_t property /**< */,
+ xcb_atom_t type /**< */,
+ uint32_t long_offset /**< */,
+ uint32_t long_length /**< */);
+
+/**
+ * @brief Gets a window property
+ *
+ * @param c The connection
+ * @param _delete Whether the property should actually be deleted. For deleting a property, the
+ * specified \a type has to match the actual property type.
+ * @param window The window whose property you want to get.
+ * @param property The property you want to get (an atom).
+ * @param type The type of the property you want to get (an atom).
+ * @param long_offset Specifies the offset (in 32-bit multiples) in the specified property where the
+ * data is to be retrieved.
+ * @param long_length Specifies how many 32-bit multiples of data should be retrieved (e.g. if you
+ * set \a long_length to 4, you will receive 16 bytes of data).
+ * @return A cookie
+ *
+ * Gets the specified \a property from the specified \a window. Properties are for
+ * example the window title (`WM_NAME`) or its minimum size (`WM_NORMAL_HINTS`).
+ * Protocols such as EWMH also use properties - for example EWMH defines the
+ * window title, encoded as UTF-8 string, in the `_NET_WM_NAME` property.
+ *
+ * TODO: talk about \a type
+ *
+ * TODO: talk about `delete`
+ *
+ * TODO: talk about the offset/length thing. what's a valid use case?
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_property_cookie_t xcb_get_property_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t _delete
+ ** @param xcb_window_t window
+ ** @param xcb_atom_t property
+ ** @param xcb_atom_t type
+ ** @param uint32_t long_offset
+ ** @param uint32_t long_length
+ ** @returns xcb_get_property_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_property_cookie_t
+xcb_get_property_unchecked (xcb_connection_t *c /**< */,
+ uint8_t _delete /**< */,
+ xcb_window_t window /**< */,
+ xcb_atom_t property /**< */,
+ xcb_atom_t type /**< */,
+ uint32_t long_offset /**< */,
+ uint32_t long_length /**< */);
+
+
+/*****************************************************************************
+ **
+ ** void * xcb_get_property_value
+ **
+ ** @param const xcb_get_property_reply_t *R
+ ** @returns void *
+ **
+ *****************************************************************************/
+
+void *
+xcb_get_property_value (const xcb_get_property_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_get_property_value_length
+ **
+ ** @param const xcb_get_property_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_get_property_value_length (const xcb_get_property_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_get_property_value_end
+ **
+ ** @param const xcb_get_property_reply_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_get_property_value_end (const xcb_get_property_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_get_property_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_property_reply_t * xcb_get_property_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_get_property_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_get_property_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_get_property_reply_t *
+xcb_get_property_reply (xcb_connection_t *c /**< */,
+ xcb_get_property_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_list_properties_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_list_properties_cookie_t xcb_list_properties
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_list_properties_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_list_properties_cookie_t
+xcb_list_properties (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_list_properties_cookie_t xcb_list_properties_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_list_properties_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_list_properties_cookie_t
+xcb_list_properties_unchecked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_atom_t * xcb_list_properties_atoms
+ **
+ ** @param const xcb_list_properties_reply_t *R
+ ** @returns xcb_atom_t *
+ **
+ *****************************************************************************/
+
+xcb_atom_t *
+xcb_list_properties_atoms (const xcb_list_properties_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_list_properties_atoms_length
+ **
+ ** @param const xcb_list_properties_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_list_properties_atoms_length (const xcb_list_properties_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_list_properties_atoms_end
+ **
+ ** @param const xcb_list_properties_reply_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_list_properties_atoms_end (const xcb_list_properties_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_list_properties_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_list_properties_reply_t * xcb_list_properties_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_list_properties_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_list_properties_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_list_properties_reply_t *
+xcb_list_properties_reply (xcb_connection_t *c /**< */,
+ xcb_list_properties_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ * @brief Sets the owner of a selection
+ *
+ * @param c The connection
+ * @param owner The new owner of the selection.
+ * \n
+ * The special value `XCB_NONE` means that the selection will have no owner.
+ * @param selection The selection.
+ * @param time Timestamp to avoid race conditions when running X over the network.
+ * \n
+ * The selection will not be changed if \a time is earlier than the current
+ * last-change time of the \a selection or is later than the current X server time.
+ * Otherwise, the last-change time is set to the specified time.
+ * \n
+ * The special value `XCB_CURRENT_TIME` will be replaced with the current server
+ * time.
+ * @return A cookie
+ *
+ * Makes `window` the owner of the selection \a selection and updates the
+ * last-change time of the specified selection.
+ *
+ * TODO: briefly explain what a selection is.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_set_selection_owner_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t owner
+ ** @param xcb_atom_t selection
+ ** @param xcb_timestamp_t time
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_set_selection_owner_checked (xcb_connection_t *c /**< */,
+ xcb_window_t owner /**< */,
+ xcb_atom_t selection /**< */,
+ xcb_timestamp_t time /**< */);
+
+/**
+ * @brief Sets the owner of a selection
+ *
+ * @param c The connection
+ * @param owner The new owner of the selection.
+ * \n
+ * The special value `XCB_NONE` means that the selection will have no owner.
+ * @param selection The selection.
+ * @param time Timestamp to avoid race conditions when running X over the network.
+ * \n
+ * The selection will not be changed if \a time is earlier than the current
+ * last-change time of the \a selection or is later than the current X server time.
+ * Otherwise, the last-change time is set to the specified time.
+ * \n
+ * The special value `XCB_CURRENT_TIME` will be replaced with the current server
+ * time.
+ * @return A cookie
+ *
+ * Makes `window` the owner of the selection \a selection and updates the
+ * last-change time of the specified selection.
+ *
+ * TODO: briefly explain what a selection is.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_set_selection_owner
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t owner
+ ** @param xcb_atom_t selection
+ ** @param xcb_timestamp_t time
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_set_selection_owner (xcb_connection_t *c /**< */,
+ xcb_window_t owner /**< */,
+ xcb_atom_t selection /**< */,
+ xcb_timestamp_t time /**< */);
+
+/**
+ * @brief Gets the owner of a selection
+ *
+ * @param c The connection
+ * @param selection The selection.
+ * @return A cookie
+ *
+ * Gets the owner of the specified selection.
+ *
+ * TODO: briefly explain what a selection is.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_selection_owner_cookie_t xcb_get_selection_owner
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_atom_t selection
+ ** @returns xcb_get_selection_owner_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_selection_owner_cookie_t
+xcb_get_selection_owner (xcb_connection_t *c /**< */,
+ xcb_atom_t selection /**< */);
+
+/**
+ * @brief Gets the owner of a selection
+ *
+ * @param c The connection
+ * @param selection The selection.
+ * @return A cookie
+ *
+ * Gets the owner of the specified selection.
+ *
+ * TODO: briefly explain what a selection is.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_selection_owner_cookie_t xcb_get_selection_owner_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_atom_t selection
+ ** @returns xcb_get_selection_owner_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_selection_owner_cookie_t
+xcb_get_selection_owner_unchecked (xcb_connection_t *c /**< */,
+ xcb_atom_t selection /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_get_selection_owner_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_selection_owner_reply_t * xcb_get_selection_owner_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_get_selection_owner_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_get_selection_owner_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_get_selection_owner_reply_t *
+xcb_get_selection_owner_reply (xcb_connection_t *c /**< */,
+ xcb_get_selection_owner_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_convert_selection_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t requestor
+ ** @param xcb_atom_t selection
+ ** @param xcb_atom_t target
+ ** @param xcb_atom_t property
+ ** @param xcb_timestamp_t time
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_convert_selection_checked (xcb_connection_t *c /**< */,
+ xcb_window_t requestor /**< */,
+ xcb_atom_t selection /**< */,
+ xcb_atom_t target /**< */,
+ xcb_atom_t property /**< */,
+ xcb_timestamp_t time /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_convert_selection
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t requestor
+ ** @param xcb_atom_t selection
+ ** @param xcb_atom_t target
+ ** @param xcb_atom_t property
+ ** @param xcb_timestamp_t time
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_convert_selection (xcb_connection_t *c /**< */,
+ xcb_window_t requestor /**< */,
+ xcb_atom_t selection /**< */,
+ xcb_atom_t target /**< */,
+ xcb_atom_t property /**< */,
+ xcb_timestamp_t time /**< */);
+
+/**
+ * @brief send an event
+ *
+ * @param c The connection
+ * @param propagate If \a propagate is true and no clients have selected any event on \a destination,
+ * the destination is replaced with the closest ancestor of \a destination for
+ * which some client has selected a type in \a event_mask and for which no
+ * intervening window has that type in its do-not-propagate-mask. If no such
+ * window exists or if the window is an ancestor of the focus window and
+ * `InputFocus` was originally specified as the destination, the event is not sent
+ * to any clients. Otherwise, the event is reported to every client selecting on
+ * the final destination any of the types specified in \a event_mask.
+ * @param destination The window to send this event to. Every client which selects any event within
+ * \a event_mask on \a destination will get the event.
+ * \n
+ * The special value `XCB_SEND_EVENT_DEST_POINTER_WINDOW` refers to the window
+ * that contains the mouse pointer.
+ * \n
+ * The special value `XCB_SEND_EVENT_DEST_ITEM_FOCUS` refers to the window which
+ * has the keyboard focus.
+ * @param event_mask Event_mask for determining which clients should receive the specified event.
+ * See \a destination and \a propagate.
+ * @param event The event to send to the specified \a destination.
+ * @return A cookie
+ *
+ * Identifies the \a destination window, determines which clients should receive
+ * the specified event and ignores any active grabs.
+ *
+ * The \a event must be one of the core events or an event defined by an extension,
+ * so that the X server can correctly byte-swap the contents as necessary. The
+ * contents of \a event are otherwise unaltered and unchecked except for the
+ * `send_event` field which is forced to 'true'.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_send_event_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t propagate
+ ** @param xcb_window_t destination
+ ** @param uint32_t event_mask
+ ** @param const char *event
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_send_event_checked (xcb_connection_t *c /**< */,
+ uint8_t propagate /**< */,
+ xcb_window_t destination /**< */,
+ uint32_t event_mask /**< */,
+ const char *event /**< */);
+
+/**
+ * @brief send an event
+ *
+ * @param c The connection
+ * @param propagate If \a propagate is true and no clients have selected any event on \a destination,
+ * the destination is replaced with the closest ancestor of \a destination for
+ * which some client has selected a type in \a event_mask and for which no
+ * intervening window has that type in its do-not-propagate-mask. If no such
+ * window exists or if the window is an ancestor of the focus window and
+ * `InputFocus` was originally specified as the destination, the event is not sent
+ * to any clients. Otherwise, the event is reported to every client selecting on
+ * the final destination any of the types specified in \a event_mask.
+ * @param destination The window to send this event to. Every client which selects any event within
+ * \a event_mask on \a destination will get the event.
+ * \n
+ * The special value `XCB_SEND_EVENT_DEST_POINTER_WINDOW` refers to the window
+ * that contains the mouse pointer.
+ * \n
+ * The special value `XCB_SEND_EVENT_DEST_ITEM_FOCUS` refers to the window which
+ * has the keyboard focus.
+ * @param event_mask Event_mask for determining which clients should receive the specified event.
+ * See \a destination and \a propagate.
+ * @param event The event to send to the specified \a destination.
+ * @return A cookie
+ *
+ * Identifies the \a destination window, determines which clients should receive
+ * the specified event and ignores any active grabs.
+ *
+ * The \a event must be one of the core events or an event defined by an extension,
+ * so that the X server can correctly byte-swap the contents as necessary. The
+ * contents of \a event are otherwise unaltered and unchecked except for the
+ * `send_event` field which is forced to 'true'.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_send_event
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t propagate
+ ** @param xcb_window_t destination
+ ** @param uint32_t event_mask
+ ** @param const char *event
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_send_event (xcb_connection_t *c /**< */,
+ uint8_t propagate /**< */,
+ xcb_window_t destination /**< */,
+ uint32_t event_mask /**< */,
+ const char *event /**< */);
+
+/**
+ * @brief Grab the pointer
+ *
+ * @param c The connection
+ * @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
+ * reported to the \a grab_window.
+ * @param grab_window Specifies the window on which the pointer should be grabbed.
+ * @param event_mask Specifies which pointer events are reported to the client.
+ * \n
+ * TODO: which values?
+ * @param pointer_mode A bitmask of #xcb_grab_mode_t values.
+ * @param pointer_mode \n
+ * @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
+ * @param keyboard_mode \n
+ * @param confine_to Specifies the window to confine the pointer in (the user will not be able to
+ * move the pointer out of that window).
+ * \n
+ * The special value `XCB_NONE` means don't confine the pointer.
+ * @param cursor Specifies the cursor that should be displayed or `XCB_NONE` to not change the
+ * cursor.
+ * @param time The time argument allows you to avoid certain circumstances that come up if
+ * applications take a long time to respond or if there are long network delays.
+ * Consider a situation where you have two applications, both of which normally
+ * grab the pointer when clicked on. If both applications specify the timestamp
+ * from the event, the second application may wake up faster and successfully grab
+ * the pointer before the first application. The first application then will get
+ * an indication that the other application grabbed the pointer before its request
+ * was processed.
+ * \n
+ * The special value `XCB_CURRENT_TIME` will be replaced with the current server
+ * time.
+ * @return A cookie
+ *
+ * Actively grabs control of the pointer. Further pointer events are reported only to the grabbing client. Overrides any active pointer grab by this client.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_grab_pointer_cookie_t xcb_grab_pointer
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t owner_events
+ ** @param xcb_window_t grab_window
+ ** @param uint16_t event_mask
+ ** @param uint8_t pointer_mode
+ ** @param uint8_t keyboard_mode
+ ** @param xcb_window_t confine_to
+ ** @param xcb_cursor_t cursor
+ ** @param xcb_timestamp_t time
+ ** @returns xcb_grab_pointer_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_grab_pointer_cookie_t
+xcb_grab_pointer (xcb_connection_t *c /**< */,
+ uint8_t owner_events /**< */,
+ xcb_window_t grab_window /**< */,
+ uint16_t event_mask /**< */,
+ uint8_t pointer_mode /**< */,
+ uint8_t keyboard_mode /**< */,
+ xcb_window_t confine_to /**< */,
+ xcb_cursor_t cursor /**< */,
+ xcb_timestamp_t time /**< */);
+
+/**
+ * @brief Grab the pointer
+ *
+ * @param c The connection
+ * @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
+ * reported to the \a grab_window.
+ * @param grab_window Specifies the window on which the pointer should be grabbed.
+ * @param event_mask Specifies which pointer events are reported to the client.
+ * \n
+ * TODO: which values?
+ * @param pointer_mode A bitmask of #xcb_grab_mode_t values.
+ * @param pointer_mode \n
+ * @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
+ * @param keyboard_mode \n
+ * @param confine_to Specifies the window to confine the pointer in (the user will not be able to
+ * move the pointer out of that window).
+ * \n
+ * The special value `XCB_NONE` means don't confine the pointer.
+ * @param cursor Specifies the cursor that should be displayed or `XCB_NONE` to not change the
+ * cursor.
+ * @param time The time argument allows you to avoid certain circumstances that come up if
+ * applications take a long time to respond or if there are long network delays.
+ * Consider a situation where you have two applications, both of which normally
+ * grab the pointer when clicked on. If both applications specify the timestamp
+ * from the event, the second application may wake up faster and successfully grab
+ * the pointer before the first application. The first application then will get
+ * an indication that the other application grabbed the pointer before its request
+ * was processed.
+ * \n
+ * The special value `XCB_CURRENT_TIME` will be replaced with the current server
+ * time.
+ * @return A cookie
+ *
+ * Actively grabs control of the pointer. Further pointer events are reported only to the grabbing client. Overrides any active pointer grab by this client.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_grab_pointer_cookie_t xcb_grab_pointer_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t owner_events
+ ** @param xcb_window_t grab_window
+ ** @param uint16_t event_mask
+ ** @param uint8_t pointer_mode
+ ** @param uint8_t keyboard_mode
+ ** @param xcb_window_t confine_to
+ ** @param xcb_cursor_t cursor
+ ** @param xcb_timestamp_t time
+ ** @returns xcb_grab_pointer_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_grab_pointer_cookie_t
+xcb_grab_pointer_unchecked (xcb_connection_t *c /**< */,
+ uint8_t owner_events /**< */,
+ xcb_window_t grab_window /**< */,
+ uint16_t event_mask /**< */,
+ uint8_t pointer_mode /**< */,
+ uint8_t keyboard_mode /**< */,
+ xcb_window_t confine_to /**< */,
+ xcb_cursor_t cursor /**< */,
+ xcb_timestamp_t time /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_grab_pointer_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_grab_pointer_reply_t * xcb_grab_pointer_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_grab_pointer_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_grab_pointer_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_grab_pointer_reply_t *
+xcb_grab_pointer_reply (xcb_connection_t *c /**< */,
+ xcb_grab_pointer_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ * @brief release the pointer
+ *
+ * @param c The connection
+ * @param time Timestamp to avoid race conditions when running X over the network.
+ * \n
+ * The pointer will not be released if \a time is earlier than the
+ * last-pointer-grab time or later than the current X server time.
+ * @return A cookie
+ *
+ * Releases the pointer and any queued events if you actively grabbed the pointer
+ * before using `xcb_grab_pointer`, `xcb_grab_button` or within a normal button
+ * press.
+ *
+ * EnterNotify and LeaveNotify events are generated.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_ungrab_pointer_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_timestamp_t time
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_ungrab_pointer_checked (xcb_connection_t *c /**< */,
+ xcb_timestamp_t time /**< */);
+
+/**
+ * @brief release the pointer
+ *
+ * @param c The connection
+ * @param time Timestamp to avoid race conditions when running X over the network.
+ * \n
+ * The pointer will not be released if \a time is earlier than the
+ * last-pointer-grab time or later than the current X server time.
+ * @return A cookie
+ *
+ * Releases the pointer and any queued events if you actively grabbed the pointer
+ * before using `xcb_grab_pointer`, `xcb_grab_button` or within a normal button
+ * press.
+ *
+ * EnterNotify and LeaveNotify events are generated.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_ungrab_pointer
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_timestamp_t time
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_ungrab_pointer (xcb_connection_t *c /**< */,
+ xcb_timestamp_t time /**< */);
+
+/**
+ * @brief Grab pointer button(s)
+ *
+ * @param c The connection
+ * @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
+ * reported to the \a grab_window.
+ * @param grab_window Specifies the window on which the pointer should be grabbed.
+ * @param event_mask Specifies which pointer events are reported to the client.
+ * \n
+ * TODO: which values?
+ * @param pointer_mode A bitmask of #xcb_grab_mode_t values.
+ * @param pointer_mode \n
+ * @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
+ * @param keyboard_mode \n
+ * @param confine_to Specifies the window to confine the pointer in (the user will not be able to
+ * move the pointer out of that window).
+ * \n
+ * The special value `XCB_NONE` means don't confine the pointer.
+ * @param cursor Specifies the cursor that should be displayed or `XCB_NONE` to not change the
+ * cursor.
+ * @param button A bitmask of #xcb_button_index_t values.
+ * @param button \n
+ * @param modifiers The modifiers to grab.
+ * \n
+ * Using the special value `XCB_MOD_MASK_ANY` means grab the pointer with all
+ * possible modifier combinations.
+ * @return A cookie
+ *
+ * This request establishes a passive grab. The pointer is actively grabbed as
+ * described in GrabPointer, the last-pointer-grab time is set to the time at
+ * which the button was pressed (as transmitted in the ButtonPress event), and the
+ * ButtonPress event is reported if all of the following conditions are true:
+ *
+ * The pointer is not grabbed and the specified button is logically pressed when
+ * the specified modifier keys are logically down, and no other buttons or
+ * modifier keys are logically down.
+ *
+ * The grab-window contains the pointer.
+ *
+ * The confine-to window (if any) is viewable.
+ *
+ * A passive grab on the same button/key combination does not exist on any
+ * ancestor of grab-window.
+ *
+ * The interpretation of the remaining arguments is the same as for GrabPointer.
+ * The active grab is terminated automatically when the logical state of the
+ * pointer has all buttons released, independent of the logical state of modifier
+ * keys. Note that the logical state of a device (as seen by means of the
+ * protocol) may lag the physical state if device event processing is frozen. This
+ * request overrides all previous passive grabs by the same client on the same
+ * button/key combinations on the same window. A modifier of AnyModifier is
+ * equivalent to issuing the request for all possible modifier combinations
+ * (including the combination of no modifiers). It is not required that all
+ * specified modifiers have currently assigned keycodes. A button of AnyButton is
+ * equivalent to issuing the request for all possible buttons. Otherwise, it is
+ * not required that the button specified currently be assigned to a physical
+ * button.
+ *
+ * An Access error is generated if some other client has already issued a
+ * GrabButton request with the same button/key combination on the same window.
+ * When using AnyModifier or AnyButton, the request fails completely (no grabs are
+ * established), and an Access error is generated if there is a conflicting grab
+ * for any combination. The request has no effect on an active grab.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_grab_button_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t owner_events
+ ** @param xcb_window_t grab_window
+ ** @param uint16_t event_mask
+ ** @param uint8_t pointer_mode
+ ** @param uint8_t keyboard_mode
+ ** @param xcb_window_t confine_to
+ ** @param xcb_cursor_t cursor
+ ** @param uint8_t button
+ ** @param uint16_t modifiers
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_grab_button_checked (xcb_connection_t *c /**< */,
+ uint8_t owner_events /**< */,
+ xcb_window_t grab_window /**< */,
+ uint16_t event_mask /**< */,
+ uint8_t pointer_mode /**< */,
+ uint8_t keyboard_mode /**< */,
+ xcb_window_t confine_to /**< */,
+ xcb_cursor_t cursor /**< */,
+ uint8_t button /**< */,
+ uint16_t modifiers /**< */);
+
+/**
+ * @brief Grab pointer button(s)
+ *
+ * @param c The connection
+ * @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
+ * reported to the \a grab_window.
+ * @param grab_window Specifies the window on which the pointer should be grabbed.
+ * @param event_mask Specifies which pointer events are reported to the client.
+ * \n
+ * TODO: which values?
+ * @param pointer_mode A bitmask of #xcb_grab_mode_t values.
+ * @param pointer_mode \n
+ * @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
+ * @param keyboard_mode \n
+ * @param confine_to Specifies the window to confine the pointer in (the user will not be able to
+ * move the pointer out of that window).
+ * \n
+ * The special value `XCB_NONE` means don't confine the pointer.
+ * @param cursor Specifies the cursor that should be displayed or `XCB_NONE` to not change the
+ * cursor.
+ * @param button A bitmask of #xcb_button_index_t values.
+ * @param button \n
+ * @param modifiers The modifiers to grab.
+ * \n
+ * Using the special value `XCB_MOD_MASK_ANY` means grab the pointer with all
+ * possible modifier combinations.
+ * @return A cookie
+ *
+ * This request establishes a passive grab. The pointer is actively grabbed as
+ * described in GrabPointer, the last-pointer-grab time is set to the time at
+ * which the button was pressed (as transmitted in the ButtonPress event), and the
+ * ButtonPress event is reported if all of the following conditions are true:
+ *
+ * The pointer is not grabbed and the specified button is logically pressed when
+ * the specified modifier keys are logically down, and no other buttons or
+ * modifier keys are logically down.
+ *
+ * The grab-window contains the pointer.
+ *
+ * The confine-to window (if any) is viewable.
+ *
+ * A passive grab on the same button/key combination does not exist on any
+ * ancestor of grab-window.
+ *
+ * The interpretation of the remaining arguments is the same as for GrabPointer.
+ * The active grab is terminated automatically when the logical state of the
+ * pointer has all buttons released, independent of the logical state of modifier
+ * keys. Note that the logical state of a device (as seen by means of the
+ * protocol) may lag the physical state if device event processing is frozen. This
+ * request overrides all previous passive grabs by the same client on the same
+ * button/key combinations on the same window. A modifier of AnyModifier is
+ * equivalent to issuing the request for all possible modifier combinations
+ * (including the combination of no modifiers). It is not required that all
+ * specified modifiers have currently assigned keycodes. A button of AnyButton is
+ * equivalent to issuing the request for all possible buttons. Otherwise, it is
+ * not required that the button specified currently be assigned to a physical
+ * button.
+ *
+ * An Access error is generated if some other client has already issued a
+ * GrabButton request with the same button/key combination on the same window.
+ * When using AnyModifier or AnyButton, the request fails completely (no grabs are
+ * established), and an Access error is generated if there is a conflicting grab
+ * for any combination. The request has no effect on an active grab.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_grab_button
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t owner_events
+ ** @param xcb_window_t grab_window
+ ** @param uint16_t event_mask
+ ** @param uint8_t pointer_mode
+ ** @param uint8_t keyboard_mode
+ ** @param xcb_window_t confine_to
+ ** @param xcb_cursor_t cursor
+ ** @param uint8_t button
+ ** @param uint16_t modifiers
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_grab_button (xcb_connection_t *c /**< */,
+ uint8_t owner_events /**< */,
+ xcb_window_t grab_window /**< */,
+ uint16_t event_mask /**< */,
+ uint8_t pointer_mode /**< */,
+ uint8_t keyboard_mode /**< */,
+ xcb_window_t confine_to /**< */,
+ xcb_cursor_t cursor /**< */,
+ uint8_t button /**< */,
+ uint16_t modifiers /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_ungrab_button_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t button
+ ** @param xcb_window_t grab_window
+ ** @param uint16_t modifiers
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_ungrab_button_checked (xcb_connection_t *c /**< */,
+ uint8_t button /**< */,
+ xcb_window_t grab_window /**< */,
+ uint16_t modifiers /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_ungrab_button
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t button
+ ** @param xcb_window_t grab_window
+ ** @param uint16_t modifiers
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_ungrab_button (xcb_connection_t *c /**< */,
+ uint8_t button /**< */,
+ xcb_window_t grab_window /**< */,
+ uint16_t modifiers /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_change_active_pointer_grab_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_cursor_t cursor
+ ** @param xcb_timestamp_t time
+ ** @param uint16_t event_mask
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_change_active_pointer_grab_checked (xcb_connection_t *c /**< */,
+ xcb_cursor_t cursor /**< */,
+ xcb_timestamp_t time /**< */,
+ uint16_t event_mask /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_change_active_pointer_grab
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_cursor_t cursor
+ ** @param xcb_timestamp_t time
+ ** @param uint16_t event_mask
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_change_active_pointer_grab (xcb_connection_t *c /**< */,
+ xcb_cursor_t cursor /**< */,
+ xcb_timestamp_t time /**< */,
+ uint16_t event_mask /**< */);
+
+/**
+ * @brief Grab the keyboard
+ *
+ * @param c The connection
+ * @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
+ * reported to the \a grab_window.
+ * @param grab_window Specifies the window on which the pointer should be grabbed.
+ * @param time Timestamp to avoid race conditions when running X over the network.
+ * \n
+ * The special value `XCB_CURRENT_TIME` will be replaced with the current server
+ * time.
+ * @param pointer_mode A bitmask of #xcb_grab_mode_t values.
+ * @param pointer_mode \n
+ * @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
+ * @param keyboard_mode \n
+ * @return A cookie
+ *
+ * Actively grabs control of the keyboard and generates FocusIn and FocusOut
+ * events. Further key events are reported only to the grabbing client.
+ *
+ * Any active keyboard grab by this client is overridden. If the keyboard is
+ * actively grabbed by some other client, `AlreadyGrabbed` is returned. If
+ * \a grab_window is not viewable, `GrabNotViewable` is returned. If the keyboard
+ * is frozen by an active grab of another client, `GrabFrozen` is returned. If the
+ * specified \a time is earlier than the last-keyboard-grab time or later than the
+ * current X server time, `GrabInvalidTime` is returned. Otherwise, the
+ * last-keyboard-grab time is set to the specified time.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_grab_keyboard_cookie_t xcb_grab_keyboard
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t owner_events
+ ** @param xcb_window_t grab_window
+ ** @param xcb_timestamp_t time
+ ** @param uint8_t pointer_mode
+ ** @param uint8_t keyboard_mode
+ ** @returns xcb_grab_keyboard_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_grab_keyboard_cookie_t
+xcb_grab_keyboard (xcb_connection_t *c /**< */,
+ uint8_t owner_events /**< */,
+ xcb_window_t grab_window /**< */,
+ xcb_timestamp_t time /**< */,
+ uint8_t pointer_mode /**< */,
+ uint8_t keyboard_mode /**< */);
+
+/**
+ * @brief Grab the keyboard
+ *
+ * @param c The connection
+ * @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
+ * reported to the \a grab_window.
+ * @param grab_window Specifies the window on which the pointer should be grabbed.
+ * @param time Timestamp to avoid race conditions when running X over the network.
+ * \n
+ * The special value `XCB_CURRENT_TIME` will be replaced with the current server
+ * time.
+ * @param pointer_mode A bitmask of #xcb_grab_mode_t values.
+ * @param pointer_mode \n
+ * @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
+ * @param keyboard_mode \n
+ * @return A cookie
+ *
+ * Actively grabs control of the keyboard and generates FocusIn and FocusOut
+ * events. Further key events are reported only to the grabbing client.
+ *
+ * Any active keyboard grab by this client is overridden. If the keyboard is
+ * actively grabbed by some other client, `AlreadyGrabbed` is returned. If
+ * \a grab_window is not viewable, `GrabNotViewable` is returned. If the keyboard
+ * is frozen by an active grab of another client, `GrabFrozen` is returned. If the
+ * specified \a time is earlier than the last-keyboard-grab time or later than the
+ * current X server time, `GrabInvalidTime` is returned. Otherwise, the
+ * last-keyboard-grab time is set to the specified time.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_grab_keyboard_cookie_t xcb_grab_keyboard_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t owner_events
+ ** @param xcb_window_t grab_window
+ ** @param xcb_timestamp_t time
+ ** @param uint8_t pointer_mode
+ ** @param uint8_t keyboard_mode
+ ** @returns xcb_grab_keyboard_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_grab_keyboard_cookie_t
+xcb_grab_keyboard_unchecked (xcb_connection_t *c /**< */,
+ uint8_t owner_events /**< */,
+ xcb_window_t grab_window /**< */,
+ xcb_timestamp_t time /**< */,
+ uint8_t pointer_mode /**< */,
+ uint8_t keyboard_mode /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_grab_keyboard_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_grab_keyboard_reply_t * xcb_grab_keyboard_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_grab_keyboard_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_grab_keyboard_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_grab_keyboard_reply_t *
+xcb_grab_keyboard_reply (xcb_connection_t *c /**< */,
+ xcb_grab_keyboard_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_ungrab_keyboard_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_timestamp_t time
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_ungrab_keyboard_checked (xcb_connection_t *c /**< */,
+ xcb_timestamp_t time /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_ungrab_keyboard
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_timestamp_t time
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_ungrab_keyboard (xcb_connection_t *c /**< */,
+ xcb_timestamp_t time /**< */);
+
+/**
+ * @brief Grab keyboard key(s)
+ *
+ * @param c The connection
+ * @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
+ * reported to the \a grab_window.
+ * @param grab_window Specifies the window on which the pointer should be grabbed.
+ * @param modifiers The modifiers to grab.
+ * \n
+ * Using the special value `XCB_MOD_MASK_ANY` means grab the pointer with all
+ * possible modifier combinations.
+ * @param key The keycode of the key to grab.
+ * \n
+ * The special value `XCB_GRAB_ANY` means grab any key.
+ * @param pointer_mode A bitmask of #xcb_grab_mode_t values.
+ * @param pointer_mode \n
+ * @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
+ * @param keyboard_mode \n
+ * @return A cookie
+ *
+ * Establishes a passive grab on the keyboard. In the future, the keyboard is
+ * actively grabbed (as for `GrabKeyboard`), the last-keyboard-grab time is set to
+ * the time at which the key was pressed (as transmitted in the KeyPress event),
+ * and the KeyPress event is reported if all of the following conditions are true:
+ *
+ * The keyboard is not grabbed and the specified key (which can itself be a
+ * modifier key) is logically pressed when the specified modifier keys are
+ * logically down, and no other modifier keys are logically down.
+ *
+ * Either the grab_window is an ancestor of (or is) the focus window, or the
+ * grab_window is a descendant of the focus window and contains the pointer.
+ *
+ * A passive grab on the same key combination does not exist on any ancestor of
+ * grab_window.
+ *
+ * The interpretation of the remaining arguments is as for XGrabKeyboard. The active grab is terminated
+ * automatically when the logical state of the keyboard has the specified key released (independent of the
+ * logical state of the modifier keys), at which point a KeyRelease event is reported to the grabbing window.
+ *
+ * Note that the logical state of a device (as seen by client applications) may lag the physical state if
+ * device event processing is frozen.
+ *
+ * A modifiers argument of AnyModifier is equivalent to issuing the request for all possible modifier combinations (including the combination of no modifiers). It is not required that all modifiers specified
+ * have currently assigned KeyCodes. A keycode argument of AnyKey is equivalent to issuing the request for
+ * all possible KeyCodes. Otherwise, the specified keycode must be in the range specified by min_keycode
+ * and max_keycode in the connection setup, or a BadValue error results.
+ *
+ * If some other client has issued a XGrabKey with the same key combination on the same window, a BadAccess
+ * error results. When using AnyModifier or AnyKey, the request fails completely, and a BadAccess error
+ * results (no grabs are established) if there is a conflicting grab for any combination.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_grab_key_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t owner_events
+ ** @param xcb_window_t grab_window
+ ** @param uint16_t modifiers
+ ** @param xcb_keycode_t key
+ ** @param uint8_t pointer_mode
+ ** @param uint8_t keyboard_mode
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_grab_key_checked (xcb_connection_t *c /**< */,
+ uint8_t owner_events /**< */,
+ xcb_window_t grab_window /**< */,
+ uint16_t modifiers /**< */,
+ xcb_keycode_t key /**< */,
+ uint8_t pointer_mode /**< */,
+ uint8_t keyboard_mode /**< */);
+
+/**
+ * @brief Grab keyboard key(s)
+ *
+ * @param c The connection
+ * @param owner_events If 1, the \a grab_window will still get the pointer events. If 0, events are not
+ * reported to the \a grab_window.
+ * @param grab_window Specifies the window on which the pointer should be grabbed.
+ * @param modifiers The modifiers to grab.
+ * \n
+ * Using the special value `XCB_MOD_MASK_ANY` means grab the pointer with all
+ * possible modifier combinations.
+ * @param key The keycode of the key to grab.
+ * \n
+ * The special value `XCB_GRAB_ANY` means grab any key.
+ * @param pointer_mode A bitmask of #xcb_grab_mode_t values.
+ * @param pointer_mode \n
+ * @param keyboard_mode A bitmask of #xcb_grab_mode_t values.
+ * @param keyboard_mode \n
+ * @return A cookie
+ *
+ * Establishes a passive grab on the keyboard. In the future, the keyboard is
+ * actively grabbed (as for `GrabKeyboard`), the last-keyboard-grab time is set to
+ * the time at which the key was pressed (as transmitted in the KeyPress event),
+ * and the KeyPress event is reported if all of the following conditions are true:
+ *
+ * The keyboard is not grabbed and the specified key (which can itself be a
+ * modifier key) is logically pressed when the specified modifier keys are
+ * logically down, and no other modifier keys are logically down.
+ *
+ * Either the grab_window is an ancestor of (or is) the focus window, or the
+ * grab_window is a descendant of the focus window and contains the pointer.
+ *
+ * A passive grab on the same key combination does not exist on any ancestor of
+ * grab_window.
+ *
+ * The interpretation of the remaining arguments is as for XGrabKeyboard. The active grab is terminated
+ * automatically when the logical state of the keyboard has the specified key released (independent of the
+ * logical state of the modifier keys), at which point a KeyRelease event is reported to the grabbing window.
+ *
+ * Note that the logical state of a device (as seen by client applications) may lag the physical state if
+ * device event processing is frozen.
+ *
+ * A modifiers argument of AnyModifier is equivalent to issuing the request for all possible modifier combinations (including the combination of no modifiers). It is not required that all modifiers specified
+ * have currently assigned KeyCodes. A keycode argument of AnyKey is equivalent to issuing the request for
+ * all possible KeyCodes. Otherwise, the specified keycode must be in the range specified by min_keycode
+ * and max_keycode in the connection setup, or a BadValue error results.
+ *
+ * If some other client has issued a XGrabKey with the same key combination on the same window, a BadAccess
+ * error results. When using AnyModifier or AnyKey, the request fails completely, and a BadAccess error
+ * results (no grabs are established) if there is a conflicting grab for any combination.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_grab_key
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t owner_events
+ ** @param xcb_window_t grab_window
+ ** @param uint16_t modifiers
+ ** @param xcb_keycode_t key
+ ** @param uint8_t pointer_mode
+ ** @param uint8_t keyboard_mode
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_grab_key (xcb_connection_t *c /**< */,
+ uint8_t owner_events /**< */,
+ xcb_window_t grab_window /**< */,
+ uint16_t modifiers /**< */,
+ xcb_keycode_t key /**< */,
+ uint8_t pointer_mode /**< */,
+ uint8_t keyboard_mode /**< */);
+
+/**
+ * @brief release a key combination
+ *
+ * @param c The connection
+ * @param key The keycode of the specified key combination.
+ * \n
+ * Using the special value `XCB_GRAB_ANY` means releasing all possible key codes.
+ * @param grab_window The window on which the grabbed key combination will be released.
+ * @param modifiers The modifiers of the specified key combination.
+ * \n
+ * Using the special value `XCB_MOD_MASK_ANY` means releasing the key combination
+ * with every possible modifier combination.
+ * @return A cookie
+ *
+ * Releases the key combination on \a grab_window if you grabbed it using
+ * `xcb_grab_key` before.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_ungrab_key_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_keycode_t key
+ ** @param xcb_window_t grab_window
+ ** @param uint16_t modifiers
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_ungrab_key_checked (xcb_connection_t *c /**< */,
+ xcb_keycode_t key /**< */,
+ xcb_window_t grab_window /**< */,
+ uint16_t modifiers /**< */);
+
+/**
+ * @brief release a key combination
+ *
+ * @param c The connection
+ * @param key The keycode of the specified key combination.
+ * \n
+ * Using the special value `XCB_GRAB_ANY` means releasing all possible key codes.
+ * @param grab_window The window on which the grabbed key combination will be released.
+ * @param modifiers The modifiers of the specified key combination.
+ * \n
+ * Using the special value `XCB_MOD_MASK_ANY` means releasing the key combination
+ * with every possible modifier combination.
+ * @return A cookie
+ *
+ * Releases the key combination on \a grab_window if you grabbed it using
+ * `xcb_grab_key` before.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_ungrab_key
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_keycode_t key
+ ** @param xcb_window_t grab_window
+ ** @param uint16_t modifiers
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_ungrab_key (xcb_connection_t *c /**< */,
+ xcb_keycode_t key /**< */,
+ xcb_window_t grab_window /**< */,
+ uint16_t modifiers /**< */);
+
+/**
+ * @brief release queued events
+ *
+ * @param c The connection
+ * @param mode A bitmask of #xcb_allow_t values.
+ * @param mode \n
+ * @param time Timestamp to avoid race conditions when running X over the network.
+ * \n
+ * The special value `XCB_CURRENT_TIME` will be replaced with the current server
+ * time.
+ * @return A cookie
+ *
+ * Releases queued events if the client has caused a device (pointer/keyboard) to
+ * freeze due to grabbing it actively. This request has no effect if \a time is
+ * earlier than the last-grab time of the most recent active grab for this client
+ * or if \a time is later than the current X server time.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_allow_events_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t mode
+ ** @param xcb_timestamp_t time
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_allow_events_checked (xcb_connection_t *c /**< */,
+ uint8_t mode /**< */,
+ xcb_timestamp_t time /**< */);
+
+/**
+ * @brief release queued events
+ *
+ * @param c The connection
+ * @param mode A bitmask of #xcb_allow_t values.
+ * @param mode \n
+ * @param time Timestamp to avoid race conditions when running X over the network.
+ * \n
+ * The special value `XCB_CURRENT_TIME` will be replaced with the current server
+ * time.
+ * @return A cookie
+ *
+ * Releases queued events if the client has caused a device (pointer/keyboard) to
+ * freeze due to grabbing it actively. This request has no effect if \a time is
+ * earlier than the last-grab time of the most recent active grab for this client
+ * or if \a time is later than the current X server time.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_allow_events
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t mode
+ ** @param xcb_timestamp_t time
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_allow_events (xcb_connection_t *c /**< */,
+ uint8_t mode /**< */,
+ xcb_timestamp_t time /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_grab_server_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_grab_server_checked (xcb_connection_t *c /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_grab_server
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_grab_server (xcb_connection_t *c /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_ungrab_server_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_ungrab_server_checked (xcb_connection_t *c /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_ungrab_server
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_ungrab_server (xcb_connection_t *c /**< */);
+
+/**
+ * @brief get pointer coordinates
+ *
+ * @param c The connection
+ * @param window A window to check if the pointer is on the same screen as \a window (see the
+ * `same_screen` field in the reply).
+ * @return A cookie
+ *
+ * Gets the root window the pointer is logically on and the pointer coordinates
+ * relative to the root window's origin.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_pointer_cookie_t xcb_query_pointer
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_query_pointer_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_query_pointer_cookie_t
+xcb_query_pointer (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ * @brief get pointer coordinates
+ *
+ * @param c The connection
+ * @param window A window to check if the pointer is on the same screen as \a window (see the
+ * `same_screen` field in the reply).
+ * @return A cookie
+ *
+ * Gets the root window the pointer is logically on and the pointer coordinates
+ * relative to the root window's origin.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_pointer_cookie_t xcb_query_pointer_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_query_pointer_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_query_pointer_cookie_t
+xcb_query_pointer_unchecked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_query_pointer_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_pointer_reply_t * xcb_query_pointer_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_query_pointer_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_query_pointer_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_query_pointer_reply_t *
+xcb_query_pointer_reply (xcb_connection_t *c /**< */,
+ xcb_query_pointer_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_timecoord_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_timecoord_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_timecoord_next
+ **
+ ** @param xcb_timecoord_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_timecoord_next (xcb_timecoord_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_timecoord_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_timecoord_end
+ **
+ ** @param xcb_timecoord_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_timecoord_end (xcb_timecoord_iterator_t i /**< */);
+
+int
+xcb_get_motion_events_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_motion_events_cookie_t xcb_get_motion_events
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @param xcb_timestamp_t start
+ ** @param xcb_timestamp_t stop
+ ** @returns xcb_get_motion_events_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_motion_events_cookie_t
+xcb_get_motion_events (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */,
+ xcb_timestamp_t start /**< */,
+ xcb_timestamp_t stop /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_motion_events_cookie_t xcb_get_motion_events_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @param xcb_timestamp_t start
+ ** @param xcb_timestamp_t stop
+ ** @returns xcb_get_motion_events_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_motion_events_cookie_t
+xcb_get_motion_events_unchecked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */,
+ xcb_timestamp_t start /**< */,
+ xcb_timestamp_t stop /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_timecoord_t * xcb_get_motion_events_events
+ **
+ ** @param const xcb_get_motion_events_reply_t *R
+ ** @returns xcb_timecoord_t *
+ **
+ *****************************************************************************/
+
+xcb_timecoord_t *
+xcb_get_motion_events_events (const xcb_get_motion_events_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_get_motion_events_events_length
+ **
+ ** @param const xcb_get_motion_events_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_get_motion_events_events_length (const xcb_get_motion_events_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_timecoord_iterator_t xcb_get_motion_events_events_iterator
+ **
+ ** @param const xcb_get_motion_events_reply_t *R
+ ** @returns xcb_timecoord_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_timecoord_iterator_t
+xcb_get_motion_events_events_iterator (const xcb_get_motion_events_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_get_motion_events_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_motion_events_reply_t * xcb_get_motion_events_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_get_motion_events_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_get_motion_events_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_get_motion_events_reply_t *
+xcb_get_motion_events_reply (xcb_connection_t *c /**< */,
+ xcb_get_motion_events_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_translate_coordinates_cookie_t xcb_translate_coordinates
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t src_window
+ ** @param xcb_window_t dst_window
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @returns xcb_translate_coordinates_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_translate_coordinates_cookie_t
+xcb_translate_coordinates (xcb_connection_t *c /**< */,
+ xcb_window_t src_window /**< */,
+ xcb_window_t dst_window /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_translate_coordinates_cookie_t xcb_translate_coordinates_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t src_window
+ ** @param xcb_window_t dst_window
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @returns xcb_translate_coordinates_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_translate_coordinates_cookie_t
+xcb_translate_coordinates_unchecked (xcb_connection_t *c /**< */,
+ xcb_window_t src_window /**< */,
+ xcb_window_t dst_window /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_translate_coordinates_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_translate_coordinates_reply_t * xcb_translate_coordinates_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_translate_coordinates_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_translate_coordinates_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_translate_coordinates_reply_t *
+xcb_translate_coordinates_reply (xcb_connection_t *c /**< */,
+ xcb_translate_coordinates_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ * @brief move mouse pointer
+ *
+ * @param c The connection
+ * @param src_window If \a src_window is not `XCB_NONE` (TODO), the move will only take place if the
+ * pointer is inside \a src_window and within the rectangle specified by (\a src_x,
+ * \a src_y, \a src_width, \a src_height). The rectangle coordinates are relative to
+ * \a src_window.
+ * @param dst_window If \a dst_window is not `XCB_NONE` (TODO), the pointer will be moved to the
+ * offsets (\a dst_x, \a dst_y) relative to \a dst_window. If \a dst_window is
+ * `XCB_NONE` (TODO), the pointer will be moved by the offsets (\a dst_x, \a dst_y)
+ * relative to the current position of the pointer.
+ * @return A cookie
+ *
+ * Moves the mouse pointer to the specified position.
+ *
+ * If \a src_window is not `XCB_NONE` (TODO), the move will only take place if the
+ * pointer is inside \a src_window and within the rectangle specified by (\a src_x,
+ * \a src_y, \a src_width, \a src_height). The rectangle coordinates are relative to
+ * \a src_window.
+ *
+ * If \a dst_window is not `XCB_NONE` (TODO), the pointer will be moved to the
+ * offsets (\a dst_x, \a dst_y) relative to \a dst_window. If \a dst_window is
+ * `XCB_NONE` (TODO), the pointer will be moved by the offsets (\a dst_x, \a dst_y)
+ * relative to the current position of the pointer.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_warp_pointer_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t src_window
+ ** @param xcb_window_t dst_window
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param uint16_t src_width
+ ** @param uint16_t src_height
+ ** @param int16_t dst_x
+ ** @param int16_t dst_y
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_warp_pointer_checked (xcb_connection_t *c /**< */,
+ xcb_window_t src_window /**< */,
+ xcb_window_t dst_window /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ uint16_t src_width /**< */,
+ uint16_t src_height /**< */,
+ int16_t dst_x /**< */,
+ int16_t dst_y /**< */);
+
+/**
+ * @brief move mouse pointer
+ *
+ * @param c The connection
+ * @param src_window If \a src_window is not `XCB_NONE` (TODO), the move will only take place if the
+ * pointer is inside \a src_window and within the rectangle specified by (\a src_x,
+ * \a src_y, \a src_width, \a src_height). The rectangle coordinates are relative to
+ * \a src_window.
+ * @param dst_window If \a dst_window is not `XCB_NONE` (TODO), the pointer will be moved to the
+ * offsets (\a dst_x, \a dst_y) relative to \a dst_window. If \a dst_window is
+ * `XCB_NONE` (TODO), the pointer will be moved by the offsets (\a dst_x, \a dst_y)
+ * relative to the current position of the pointer.
+ * @return A cookie
+ *
+ * Moves the mouse pointer to the specified position.
+ *
+ * If \a src_window is not `XCB_NONE` (TODO), the move will only take place if the
+ * pointer is inside \a src_window and within the rectangle specified by (\a src_x,
+ * \a src_y, \a src_width, \a src_height). The rectangle coordinates are relative to
+ * \a src_window.
+ *
+ * If \a dst_window is not `XCB_NONE` (TODO), the pointer will be moved to the
+ * offsets (\a dst_x, \a dst_y) relative to \a dst_window. If \a dst_window is
+ * `XCB_NONE` (TODO), the pointer will be moved by the offsets (\a dst_x, \a dst_y)
+ * relative to the current position of the pointer.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_warp_pointer
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t src_window
+ ** @param xcb_window_t dst_window
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param uint16_t src_width
+ ** @param uint16_t src_height
+ ** @param int16_t dst_x
+ ** @param int16_t dst_y
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_warp_pointer (xcb_connection_t *c /**< */,
+ xcb_window_t src_window /**< */,
+ xcb_window_t dst_window /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ uint16_t src_width /**< */,
+ uint16_t src_height /**< */,
+ int16_t dst_x /**< */,
+ int16_t dst_y /**< */);
+
+/**
+ * @brief Sets input focus
+ *
+ * @param c The connection
+ * @param revert_to A bitmask of #xcb_input_focus_t values.
+ * @param revert_to Specifies what happens when the \a focus window becomes unviewable (if \a focus
+ * is neither `XCB_NONE` nor `XCB_POINTER_ROOT`).
+ * @param focus The window to focus. All keyboard events will be reported to this window. The
+ * window must be viewable (TODO), or a `xcb_match_error_t` occurs (TODO).
+ * \n
+ * If \a focus is `XCB_NONE` (TODO), all keyboard events are
+ * discarded until a new focus window is set.
+ * \n
+ * If \a focus is `XCB_POINTER_ROOT` (TODO), focus is on the root window of the
+ * screen on which the pointer is on currently.
+ * @param time Timestamp to avoid race conditions when running X over the network.
+ * \n
+ * The special value `XCB_CURRENT_TIME` will be replaced with the current server
+ * time.
+ * @return A cookie
+ *
+ * Changes the input focus and the last-focus-change time. If the specified \a time
+ * is earlier than the current last-focus-change time, the request is ignored (to
+ * avoid race conditions when running X over the network).
+ *
+ * A FocusIn and FocusOut event is generated when focus is changed.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_set_input_focus_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t revert_to
+ ** @param xcb_window_t focus
+ ** @param xcb_timestamp_t time
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_set_input_focus_checked (xcb_connection_t *c /**< */,
+ uint8_t revert_to /**< */,
+ xcb_window_t focus /**< */,
+ xcb_timestamp_t time /**< */);
+
+/**
+ * @brief Sets input focus
+ *
+ * @param c The connection
+ * @param revert_to A bitmask of #xcb_input_focus_t values.
+ * @param revert_to Specifies what happens when the \a focus window becomes unviewable (if \a focus
+ * is neither `XCB_NONE` nor `XCB_POINTER_ROOT`).
+ * @param focus The window to focus. All keyboard events will be reported to this window. The
+ * window must be viewable (TODO), or a `xcb_match_error_t` occurs (TODO).
+ * \n
+ * If \a focus is `XCB_NONE` (TODO), all keyboard events are
+ * discarded until a new focus window is set.
+ * \n
+ * If \a focus is `XCB_POINTER_ROOT` (TODO), focus is on the root window of the
+ * screen on which the pointer is on currently.
+ * @param time Timestamp to avoid race conditions when running X over the network.
+ * \n
+ * The special value `XCB_CURRENT_TIME` will be replaced with the current server
+ * time.
+ * @return A cookie
+ *
+ * Changes the input focus and the last-focus-change time. If the specified \a time
+ * is earlier than the current last-focus-change time, the request is ignored (to
+ * avoid race conditions when running X over the network).
+ *
+ * A FocusIn and FocusOut event is generated when focus is changed.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_set_input_focus
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t revert_to
+ ** @param xcb_window_t focus
+ ** @param xcb_timestamp_t time
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_set_input_focus (xcb_connection_t *c /**< */,
+ uint8_t revert_to /**< */,
+ xcb_window_t focus /**< */,
+ xcb_timestamp_t time /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_input_focus_cookie_t xcb_get_input_focus
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_get_input_focus_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_input_focus_cookie_t
+xcb_get_input_focus (xcb_connection_t *c /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_input_focus_cookie_t xcb_get_input_focus_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_get_input_focus_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_input_focus_cookie_t
+xcb_get_input_focus_unchecked (xcb_connection_t *c /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_get_input_focus_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_input_focus_reply_t * xcb_get_input_focus_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_get_input_focus_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_get_input_focus_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_get_input_focus_reply_t *
+xcb_get_input_focus_reply (xcb_connection_t *c /**< */,
+ xcb_get_input_focus_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_keymap_cookie_t xcb_query_keymap
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_query_keymap_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_query_keymap_cookie_t
+xcb_query_keymap (xcb_connection_t *c /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_keymap_cookie_t xcb_query_keymap_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_query_keymap_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_query_keymap_cookie_t
+xcb_query_keymap_unchecked (xcb_connection_t *c /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_query_keymap_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_keymap_reply_t * xcb_query_keymap_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_query_keymap_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_query_keymap_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_query_keymap_reply_t *
+xcb_query_keymap_reply (xcb_connection_t *c /**< */,
+ xcb_query_keymap_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_open_font_sizeof (const void *_buffer /**< */);
+
+/**
+ * @brief opens a font
+ *
+ * @param c The connection
+ * @param fid The ID with which you will refer to the font, created by `xcb_generate_id`.
+ * @param name_len Length (in bytes) of \a name.
+ * @param name A pattern describing an X core font.
+ * @return A cookie
+ *
+ * Opens any X core font matching the given \a name (for example "-misc-fixed-*").
+ *
+ * Note that X core fonts are deprecated (but still supported) in favor of
+ * client-side rendering using Xft.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_open_font_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_font_t fid
+ ** @param uint16_t name_len
+ ** @param const char *name
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_open_font_checked (xcb_connection_t *c /**< */,
+ xcb_font_t fid /**< */,
+ uint16_t name_len /**< */,
+ const char *name /**< */);
+
+/**
+ * @brief opens a font
+ *
+ * @param c The connection
+ * @param fid The ID with which you will refer to the font, created by `xcb_generate_id`.
+ * @param name_len Length (in bytes) of \a name.
+ * @param name A pattern describing an X core font.
+ * @return A cookie
+ *
+ * Opens any X core font matching the given \a name (for example "-misc-fixed-*").
+ *
+ * Note that X core fonts are deprecated (but still supported) in favor of
+ * client-side rendering using Xft.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_open_font
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_font_t fid
+ ** @param uint16_t name_len
+ ** @param const char *name
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_open_font (xcb_connection_t *c /**< */,
+ xcb_font_t fid /**< */,
+ uint16_t name_len /**< */,
+ const char *name /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_close_font_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_font_t font
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_close_font_checked (xcb_connection_t *c /**< */,
+ xcb_font_t font /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_close_font
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_font_t font
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_close_font (xcb_connection_t *c /**< */,
+ xcb_font_t font /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_fontprop_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_fontprop_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_fontprop_next
+ **
+ ** @param xcb_fontprop_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_fontprop_next (xcb_fontprop_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_fontprop_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_fontprop_end
+ **
+ ** @param xcb_fontprop_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_fontprop_end (xcb_fontprop_iterator_t i /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_charinfo_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_charinfo_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_charinfo_next
+ **
+ ** @param xcb_charinfo_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_charinfo_next (xcb_charinfo_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_charinfo_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_charinfo_end
+ **
+ ** @param xcb_charinfo_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_charinfo_end (xcb_charinfo_iterator_t i /**< */);
+
+int
+xcb_query_font_sizeof (const void *_buffer /**< */);
+
+/**
+ * @brief query font metrics
+ *
+ * @param c The connection
+ * @param font The fontable (Font or Graphics Context) to query.
+ * @return A cookie
+ *
+ * Queries information associated with the font.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_font_cookie_t xcb_query_font
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_fontable_t font
+ ** @returns xcb_query_font_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_query_font_cookie_t
+xcb_query_font (xcb_connection_t *c /**< */,
+ xcb_fontable_t font /**< */);
+
+/**
+ * @brief query font metrics
+ *
+ * @param c The connection
+ * @param font The fontable (Font or Graphics Context) to query.
+ * @return A cookie
+ *
+ * Queries information associated with the font.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_font_cookie_t xcb_query_font_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_fontable_t font
+ ** @returns xcb_query_font_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_query_font_cookie_t
+xcb_query_font_unchecked (xcb_connection_t *c /**< */,
+ xcb_fontable_t font /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_fontprop_t * xcb_query_font_properties
+ **
+ ** @param const xcb_query_font_reply_t *R
+ ** @returns xcb_fontprop_t *
+ **
+ *****************************************************************************/
+
+xcb_fontprop_t *
+xcb_query_font_properties (const xcb_query_font_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_query_font_properties_length
+ **
+ ** @param const xcb_query_font_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_query_font_properties_length (const xcb_query_font_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_fontprop_iterator_t xcb_query_font_properties_iterator
+ **
+ ** @param const xcb_query_font_reply_t *R
+ ** @returns xcb_fontprop_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_fontprop_iterator_t
+xcb_query_font_properties_iterator (const xcb_query_font_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_charinfo_t * xcb_query_font_char_infos
+ **
+ ** @param const xcb_query_font_reply_t *R
+ ** @returns xcb_charinfo_t *
+ **
+ *****************************************************************************/
+
+xcb_charinfo_t *
+xcb_query_font_char_infos (const xcb_query_font_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_query_font_char_infos_length
+ **
+ ** @param const xcb_query_font_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_query_font_char_infos_length (const xcb_query_font_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_charinfo_iterator_t xcb_query_font_char_infos_iterator
+ **
+ ** @param const xcb_query_font_reply_t *R
+ ** @returns xcb_charinfo_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_charinfo_iterator_t
+xcb_query_font_char_infos_iterator (const xcb_query_font_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_query_font_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_font_reply_t * xcb_query_font_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_query_font_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_query_font_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_query_font_reply_t *
+xcb_query_font_reply (xcb_connection_t *c /**< */,
+ xcb_query_font_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_query_text_extents_sizeof (const void *_buffer /**< */,
+ uint32_t string_len /**< */);
+
+/**
+ * @brief get text extents
+ *
+ * @param c The connection
+ * @param font The \a font to calculate text extents in. You can also pass a graphics context.
+ * @param string_len The number of characters in \a string.
+ * @param string The text to get text extents for.
+ * @return A cookie
+ *
+ * Query text extents from the X11 server. This request returns the bounding box
+ * of the specified 16-bit character string in the specified \a font or the font
+ * contained in the specified graphics context.
+ *
+ * `font_ascent` is set to the maximum of the ascent metrics of all characters in
+ * the string. `font_descent` is set to the maximum of the descent metrics.
+ * `overall_width` is set to the sum of the character-width metrics of all
+ * characters in the string. For each character in the string, let W be the sum of
+ * the character-width metrics of all characters preceding it in the string. Let L
+ * be the left-side-bearing metric of the character plus W. Let R be the
+ * right-side-bearing metric of the character plus W. The lbearing member is set
+ * to the minimum L of all characters in the string. The rbearing member is set to
+ * the maximum R.
+ *
+ * For fonts defined with linear indexing rather than 2-byte matrix indexing, each
+ * `xcb_char2b_t` structure is interpreted as a 16-bit number with byte1 as the
+ * most significant byte. If the font has no defined default character, undefined
+ * characters in the string are taken to have all zero metrics.
+ *
+ * Characters with all zero metrics are ignored. If the font has no defined
+ * default_char, the undefined characters in the string are also ignored.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_text_extents_cookie_t xcb_query_text_extents
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_fontable_t font
+ ** @param uint32_t string_len
+ ** @param const xcb_char2b_t *string
+ ** @returns xcb_query_text_extents_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_query_text_extents_cookie_t
+xcb_query_text_extents (xcb_connection_t *c /**< */,
+ xcb_fontable_t font /**< */,
+ uint32_t string_len /**< */,
+ const xcb_char2b_t *string /**< */);
+
+/**
+ * @brief get text extents
+ *
+ * @param c The connection
+ * @param font The \a font to calculate text extents in. You can also pass a graphics context.
+ * @param string_len The number of characters in \a string.
+ * @param string The text to get text extents for.
+ * @return A cookie
+ *
+ * Query text extents from the X11 server. This request returns the bounding box
+ * of the specified 16-bit character string in the specified \a font or the font
+ * contained in the specified graphics context.
+ *
+ * `font_ascent` is set to the maximum of the ascent metrics of all characters in
+ * the string. `font_descent` is set to the maximum of the descent metrics.
+ * `overall_width` is set to the sum of the character-width metrics of all
+ * characters in the string. For each character in the string, let W be the sum of
+ * the character-width metrics of all characters preceding it in the string. Let L
+ * be the left-side-bearing metric of the character plus W. Let R be the
+ * right-side-bearing metric of the character plus W. The lbearing member is set
+ * to the minimum L of all characters in the string. The rbearing member is set to
+ * the maximum R.
+ *
+ * For fonts defined with linear indexing rather than 2-byte matrix indexing, each
+ * `xcb_char2b_t` structure is interpreted as a 16-bit number with byte1 as the
+ * most significant byte. If the font has no defined default character, undefined
+ * characters in the string are taken to have all zero metrics.
+ *
+ * Characters with all zero metrics are ignored. If the font has no defined
+ * default_char, the undefined characters in the string are also ignored.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_text_extents_cookie_t xcb_query_text_extents_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_fontable_t font
+ ** @param uint32_t string_len
+ ** @param const xcb_char2b_t *string
+ ** @returns xcb_query_text_extents_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_query_text_extents_cookie_t
+xcb_query_text_extents_unchecked (xcb_connection_t *c /**< */,
+ xcb_fontable_t font /**< */,
+ uint32_t string_len /**< */,
+ const xcb_char2b_t *string /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_query_text_extents_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_text_extents_reply_t * xcb_query_text_extents_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_query_text_extents_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_query_text_extents_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_query_text_extents_reply_t *
+xcb_query_text_extents_reply (xcb_connection_t *c /**< */,
+ xcb_query_text_extents_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_str_sizeof (const void *_buffer /**< */);
+
+
+/*****************************************************************************
+ **
+ ** char * xcb_str_name
+ **
+ ** @param const xcb_str_t *R
+ ** @returns char *
+ **
+ *****************************************************************************/
+
+char *
+xcb_str_name (const xcb_str_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_str_name_length
+ **
+ ** @param const xcb_str_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_str_name_length (const xcb_str_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_str_name_end
+ **
+ ** @param const xcb_str_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_str_name_end (const xcb_str_t *R /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_str_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_str_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_str_next
+ **
+ ** @param xcb_str_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_str_next (xcb_str_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_str_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_str_end
+ **
+ ** @param xcb_str_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_str_end (xcb_str_iterator_t i /**< */);
+
+int
+xcb_list_fonts_sizeof (const void *_buffer /**< */);
+
+/**
+ * @brief get matching font names
+ *
+ * @param c The connection
+ * @param max_names The maximum number of fonts to be returned.
+ * @param pattern_len The length (in bytes) of \a pattern.
+ * @param pattern A font pattern, for example "-misc-fixed-*".
+ * \n
+ * The asterisk (*) is a wildcard for any number of characters. The question mark
+ * (?) is a wildcard for a single character. Use of uppercase or lowercase does
+ * not matter.
+ * @return A cookie
+ *
+ * Gets a list of available font names which match the given \a pattern.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_list_fonts_cookie_t xcb_list_fonts
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint16_t max_names
+ ** @param uint16_t pattern_len
+ ** @param const char *pattern
+ ** @returns xcb_list_fonts_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_list_fonts_cookie_t
+xcb_list_fonts (xcb_connection_t *c /**< */,
+ uint16_t max_names /**< */,
+ uint16_t pattern_len /**< */,
+ const char *pattern /**< */);
+
+/**
+ * @brief get matching font names
+ *
+ * @param c The connection
+ * @param max_names The maximum number of fonts to be returned.
+ * @param pattern_len The length (in bytes) of \a pattern.
+ * @param pattern A font pattern, for example "-misc-fixed-*".
+ * \n
+ * The asterisk (*) is a wildcard for any number of characters. The question mark
+ * (?) is a wildcard for a single character. Use of uppercase or lowercase does
+ * not matter.
+ * @return A cookie
+ *
+ * Gets a list of available font names which match the given \a pattern.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_list_fonts_cookie_t xcb_list_fonts_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint16_t max_names
+ ** @param uint16_t pattern_len
+ ** @param const char *pattern
+ ** @returns xcb_list_fonts_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_list_fonts_cookie_t
+xcb_list_fonts_unchecked (xcb_connection_t *c /**< */,
+ uint16_t max_names /**< */,
+ uint16_t pattern_len /**< */,
+ const char *pattern /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_list_fonts_names_length
+ **
+ ** @param const xcb_list_fonts_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_list_fonts_names_length (const xcb_list_fonts_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_str_iterator_t xcb_list_fonts_names_iterator
+ **
+ ** @param const xcb_list_fonts_reply_t *R
+ ** @returns xcb_str_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_str_iterator_t
+xcb_list_fonts_names_iterator (const xcb_list_fonts_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_list_fonts_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_list_fonts_reply_t * xcb_list_fonts_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_list_fonts_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_list_fonts_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_list_fonts_reply_t *
+xcb_list_fonts_reply (xcb_connection_t *c /**< */,
+ xcb_list_fonts_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_list_fonts_with_info_sizeof (const void *_buffer /**< */);
+
+/**
+ * @brief get matching font names and information
+ *
+ * @param c The connection
+ * @param max_names The maximum number of fonts to be returned.
+ * @param pattern_len The length (in bytes) of \a pattern.
+ * @param pattern A font pattern, for example "-misc-fixed-*".
+ * \n
+ * The asterisk (*) is a wildcard for any number of characters. The question mark
+ * (?) is a wildcard for a single character. Use of uppercase or lowercase does
+ * not matter.
+ * @return A cookie
+ *
+ * Gets a list of available font names which match the given \a pattern.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_list_fonts_with_info_cookie_t xcb_list_fonts_with_info
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint16_t max_names
+ ** @param uint16_t pattern_len
+ ** @param const char *pattern
+ ** @returns xcb_list_fonts_with_info_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_list_fonts_with_info_cookie_t
+xcb_list_fonts_with_info (xcb_connection_t *c /**< */,
+ uint16_t max_names /**< */,
+ uint16_t pattern_len /**< */,
+ const char *pattern /**< */);
+
+/**
+ * @brief get matching font names and information
+ *
+ * @param c The connection
+ * @param max_names The maximum number of fonts to be returned.
+ * @param pattern_len The length (in bytes) of \a pattern.
+ * @param pattern A font pattern, for example "-misc-fixed-*".
+ * \n
+ * The asterisk (*) is a wildcard for any number of characters. The question mark
+ * (?) is a wildcard for a single character. Use of uppercase or lowercase does
+ * not matter.
+ * @return A cookie
+ *
+ * Gets a list of available font names which match the given \a pattern.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_list_fonts_with_info_cookie_t xcb_list_fonts_with_info_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint16_t max_names
+ ** @param uint16_t pattern_len
+ ** @param const char *pattern
+ ** @returns xcb_list_fonts_with_info_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_list_fonts_with_info_cookie_t
+xcb_list_fonts_with_info_unchecked (xcb_connection_t *c /**< */,
+ uint16_t max_names /**< */,
+ uint16_t pattern_len /**< */,
+ const char *pattern /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_fontprop_t * xcb_list_fonts_with_info_properties
+ **
+ ** @param const xcb_list_fonts_with_info_reply_t *R
+ ** @returns xcb_fontprop_t *
+ **
+ *****************************************************************************/
+
+xcb_fontprop_t *
+xcb_list_fonts_with_info_properties (const xcb_list_fonts_with_info_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_list_fonts_with_info_properties_length
+ **
+ ** @param const xcb_list_fonts_with_info_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_list_fonts_with_info_properties_length (const xcb_list_fonts_with_info_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_fontprop_iterator_t xcb_list_fonts_with_info_properties_iterator
+ **
+ ** @param const xcb_list_fonts_with_info_reply_t *R
+ ** @returns xcb_fontprop_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_fontprop_iterator_t
+xcb_list_fonts_with_info_properties_iterator (const xcb_list_fonts_with_info_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** char * xcb_list_fonts_with_info_name
+ **
+ ** @param const xcb_list_fonts_with_info_reply_t *R
+ ** @returns char *
+ **
+ *****************************************************************************/
+
+char *
+xcb_list_fonts_with_info_name (const xcb_list_fonts_with_info_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_list_fonts_with_info_name_length
+ **
+ ** @param const xcb_list_fonts_with_info_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_list_fonts_with_info_name_length (const xcb_list_fonts_with_info_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_list_fonts_with_info_name_end
+ **
+ ** @param const xcb_list_fonts_with_info_reply_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_list_fonts_with_info_name_end (const xcb_list_fonts_with_info_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_list_fonts_with_info_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_list_fonts_with_info_reply_t * xcb_list_fonts_with_info_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_list_fonts_with_info_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_list_fonts_with_info_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_list_fonts_with_info_reply_t *
+xcb_list_fonts_with_info_reply (xcb_connection_t *c /**< */,
+ xcb_list_fonts_with_info_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_set_font_path_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_set_font_path_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint16_t font_qty
+ ** @param const xcb_str_t *font
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_set_font_path_checked (xcb_connection_t *c /**< */,
+ uint16_t font_qty /**< */,
+ const xcb_str_t *font /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_set_font_path
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint16_t font_qty
+ ** @param const xcb_str_t *font
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_set_font_path (xcb_connection_t *c /**< */,
+ uint16_t font_qty /**< */,
+ const xcb_str_t *font /**< */);
+
+int
+xcb_get_font_path_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_font_path_cookie_t xcb_get_font_path
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_get_font_path_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_font_path_cookie_t
+xcb_get_font_path (xcb_connection_t *c /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_font_path_cookie_t xcb_get_font_path_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_get_font_path_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_font_path_cookie_t
+xcb_get_font_path_unchecked (xcb_connection_t *c /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_get_font_path_path_length
+ **
+ ** @param const xcb_get_font_path_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_get_font_path_path_length (const xcb_get_font_path_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_str_iterator_t xcb_get_font_path_path_iterator
+ **
+ ** @param const xcb_get_font_path_reply_t *R
+ ** @returns xcb_str_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_str_iterator_t
+xcb_get_font_path_path_iterator (const xcb_get_font_path_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_get_font_path_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_font_path_reply_t * xcb_get_font_path_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_get_font_path_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_get_font_path_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_get_font_path_reply_t *
+xcb_get_font_path_reply (xcb_connection_t *c /**< */,
+ xcb_get_font_path_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ * @brief Creates a pixmap
+ *
+ * @param c The connection
+ * @param depth TODO
+ * @param pid The ID with which you will refer to the new pixmap, created by
+ * `xcb_generate_id`.
+ * @param drawable Drawable to get the screen from.
+ * @param width The width of the new pixmap.
+ * @param height The height of the new pixmap.
+ * @return A cookie
+ *
+ * Creates a pixmap. The pixmap can only be used on the same screen as \a drawable
+ * is on and only with drawables of the same \a depth.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_create_pixmap_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t depth
+ ** @param xcb_pixmap_t pid
+ ** @param xcb_drawable_t drawable
+ ** @param uint16_t width
+ ** @param uint16_t height
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_create_pixmap_checked (xcb_connection_t *c /**< */,
+ uint8_t depth /**< */,
+ xcb_pixmap_t pid /**< */,
+ xcb_drawable_t drawable /**< */,
+ uint16_t width /**< */,
+ uint16_t height /**< */);
+
+/**
+ * @brief Creates a pixmap
+ *
+ * @param c The connection
+ * @param depth TODO
+ * @param pid The ID with which you will refer to the new pixmap, created by
+ * `xcb_generate_id`.
+ * @param drawable Drawable to get the screen from.
+ * @param width The width of the new pixmap.
+ * @param height The height of the new pixmap.
+ * @return A cookie
+ *
+ * Creates a pixmap. The pixmap can only be used on the same screen as \a drawable
+ * is on and only with drawables of the same \a depth.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_create_pixmap
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t depth
+ ** @param xcb_pixmap_t pid
+ ** @param xcb_drawable_t drawable
+ ** @param uint16_t width
+ ** @param uint16_t height
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_create_pixmap (xcb_connection_t *c /**< */,
+ uint8_t depth /**< */,
+ xcb_pixmap_t pid /**< */,
+ xcb_drawable_t drawable /**< */,
+ uint16_t width /**< */,
+ uint16_t height /**< */);
+
+/**
+ * @brief Destroys a pixmap
+ *
+ * @param c The connection
+ * @param pixmap The pixmap to destroy.
+ * @return A cookie
+ *
+ * Deletes the association between the pixmap ID and the pixmap. The pixmap
+ * storage will be freed when there are no more references to it.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_free_pixmap_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_pixmap_t pixmap
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_free_pixmap_checked (xcb_connection_t *c /**< */,
+ xcb_pixmap_t pixmap /**< */);
+
+/**
+ * @brief Destroys a pixmap
+ *
+ * @param c The connection
+ * @param pixmap The pixmap to destroy.
+ * @return A cookie
+ *
+ * Deletes the association between the pixmap ID and the pixmap. The pixmap
+ * storage will be freed when there are no more references to it.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_free_pixmap
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_pixmap_t pixmap
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_free_pixmap (xcb_connection_t *c /**< */,
+ xcb_pixmap_t pixmap /**< */);
+
+int
+xcb_create_gc_sizeof (const void *_buffer /**< */);
+
+/**
+ * @brief Creates a graphics context
+ *
+ * @param c The connection
+ * @param cid The ID with which you will refer to the graphics context, created by
+ * `xcb_generate_id`.
+ * @param drawable Drawable to get the root/depth from.
+ * @return A cookie
+ *
+ * Creates a graphics context. The graphics context can be used with any drawable
+ * that has the same root and depth as the specified drawable.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_create_gc_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_gcontext_t cid
+ ** @param xcb_drawable_t drawable
+ ** @param uint32_t value_mask
+ ** @param const uint32_t *value_list
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_create_gc_checked (xcb_connection_t *c /**< */,
+ xcb_gcontext_t cid /**< */,
+ xcb_drawable_t drawable /**< */,
+ uint32_t value_mask /**< */,
+ const uint32_t *value_list /**< */);
+
+/**
+ * @brief Creates a graphics context
+ *
+ * @param c The connection
+ * @param cid The ID with which you will refer to the graphics context, created by
+ * `xcb_generate_id`.
+ * @param drawable Drawable to get the root/depth from.
+ * @return A cookie
+ *
+ * Creates a graphics context. The graphics context can be used with any drawable
+ * that has the same root and depth as the specified drawable.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_create_gc
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_gcontext_t cid
+ ** @param xcb_drawable_t drawable
+ ** @param uint32_t value_mask
+ ** @param const uint32_t *value_list
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_create_gc (xcb_connection_t *c /**< */,
+ xcb_gcontext_t cid /**< */,
+ xcb_drawable_t drawable /**< */,
+ uint32_t value_mask /**< */,
+ const uint32_t *value_list /**< */);
+
+int
+xcb_change_gc_sizeof (const void *_buffer /**< */);
+
+/**
+ * @brief change graphics context components
+ *
+ * @param c The connection
+ * @param gc The graphics context to change.
+ * @param value_mask A bitmask of #xcb_gc_t values.
+ * @param value_mask \n
+ * @param value_list Values for each of the components specified in the bitmask \a value_mask. The
+ * order has to correspond to the order of possible \a value_mask bits. See the
+ * example.
+ * @return A cookie
+ *
+ * Changes the components specified by \a value_mask for the specified graphics context.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_change_gc_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_gcontext_t gc
+ ** @param uint32_t value_mask
+ ** @param const uint32_t *value_list
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_change_gc_checked (xcb_connection_t *c /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint32_t value_mask /**< */,
+ const uint32_t *value_list /**< */);
+
+/**
+ * @brief change graphics context components
+ *
+ * @param c The connection
+ * @param gc The graphics context to change.
+ * @param value_mask A bitmask of #xcb_gc_t values.
+ * @param value_mask \n
+ * @param value_list Values for each of the components specified in the bitmask \a value_mask. The
+ * order has to correspond to the order of possible \a value_mask bits. See the
+ * example.
+ * @return A cookie
+ *
+ * Changes the components specified by \a value_mask for the specified graphics context.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_change_gc
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_gcontext_t gc
+ ** @param uint32_t value_mask
+ ** @param const uint32_t *value_list
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_change_gc (xcb_connection_t *c /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint32_t value_mask /**< */,
+ const uint32_t *value_list /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_copy_gc_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_gcontext_t src_gc
+ ** @param xcb_gcontext_t dst_gc
+ ** @param uint32_t value_mask
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_copy_gc_checked (xcb_connection_t *c /**< */,
+ xcb_gcontext_t src_gc /**< */,
+ xcb_gcontext_t dst_gc /**< */,
+ uint32_t value_mask /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_copy_gc
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_gcontext_t src_gc
+ ** @param xcb_gcontext_t dst_gc
+ ** @param uint32_t value_mask
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_copy_gc (xcb_connection_t *c /**< */,
+ xcb_gcontext_t src_gc /**< */,
+ xcb_gcontext_t dst_gc /**< */,
+ uint32_t value_mask /**< */);
+
+int
+xcb_set_dashes_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_set_dashes_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_gcontext_t gc
+ ** @param uint16_t dash_offset
+ ** @param uint16_t dashes_len
+ ** @param const uint8_t *dashes
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_set_dashes_checked (xcb_connection_t *c /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint16_t dash_offset /**< */,
+ uint16_t dashes_len /**< */,
+ const uint8_t *dashes /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_set_dashes
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_gcontext_t gc
+ ** @param uint16_t dash_offset
+ ** @param uint16_t dashes_len
+ ** @param const uint8_t *dashes
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_set_dashes (xcb_connection_t *c /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint16_t dash_offset /**< */,
+ uint16_t dashes_len /**< */,
+ const uint8_t *dashes /**< */);
+
+int
+xcb_set_clip_rectangles_sizeof (const void *_buffer /**< */,
+ uint32_t rectangles_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_set_clip_rectangles_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t ordering
+ ** @param xcb_gcontext_t gc
+ ** @param int16_t clip_x_origin
+ ** @param int16_t clip_y_origin
+ ** @param uint32_t rectangles_len
+ ** @param const xcb_rectangle_t *rectangles
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_set_clip_rectangles_checked (xcb_connection_t *c /**< */,
+ uint8_t ordering /**< */,
+ xcb_gcontext_t gc /**< */,
+ int16_t clip_x_origin /**< */,
+ int16_t clip_y_origin /**< */,
+ uint32_t rectangles_len /**< */,
+ const xcb_rectangle_t *rectangles /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_set_clip_rectangles
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t ordering
+ ** @param xcb_gcontext_t gc
+ ** @param int16_t clip_x_origin
+ ** @param int16_t clip_y_origin
+ ** @param uint32_t rectangles_len
+ ** @param const xcb_rectangle_t *rectangles
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_set_clip_rectangles (xcb_connection_t *c /**< */,
+ uint8_t ordering /**< */,
+ xcb_gcontext_t gc /**< */,
+ int16_t clip_x_origin /**< */,
+ int16_t clip_y_origin /**< */,
+ uint32_t rectangles_len /**< */,
+ const xcb_rectangle_t *rectangles /**< */);
+
+/**
+ * @brief Destroys a graphics context
+ *
+ * @param c The connection
+ * @param gc The graphics context to destroy.
+ * @return A cookie
+ *
+ * Destroys the specified \a gc and all associated storage.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_free_gc_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_gcontext_t gc
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_free_gc_checked (xcb_connection_t *c /**< */,
+ xcb_gcontext_t gc /**< */);
+
+/**
+ * @brief Destroys a graphics context
+ *
+ * @param c The connection
+ * @param gc The graphics context to destroy.
+ * @return A cookie
+ *
+ * Destroys the specified \a gc and all associated storage.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_free_gc
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_gcontext_t gc
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_free_gc (xcb_connection_t *c /**< */,
+ xcb_gcontext_t gc /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_clear_area_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t exposures
+ ** @param xcb_window_t window
+ ** @param int16_t x
+ ** @param int16_t y
+ ** @param uint16_t width
+ ** @param uint16_t height
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_clear_area_checked (xcb_connection_t *c /**< */,
+ uint8_t exposures /**< */,
+ xcb_window_t window /**< */,
+ int16_t x /**< */,
+ int16_t y /**< */,
+ uint16_t width /**< */,
+ uint16_t height /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_clear_area
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t exposures
+ ** @param xcb_window_t window
+ ** @param int16_t x
+ ** @param int16_t y
+ ** @param uint16_t width
+ ** @param uint16_t height
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_clear_area (xcb_connection_t *c /**< */,
+ uint8_t exposures /**< */,
+ xcb_window_t window /**< */,
+ int16_t x /**< */,
+ int16_t y /**< */,
+ uint16_t width /**< */,
+ uint16_t height /**< */);
+
+/**
+ * @brief copy areas
+ *
+ * @param c The connection
+ * @param src_drawable The source drawable (Window or Pixmap).
+ * @param dst_drawable The destination drawable (Window or Pixmap).
+ * @param gc The graphics context to use.
+ * @param src_x The source X coordinate.
+ * @param src_y The source Y coordinate.
+ * @param dst_x The destination X coordinate.
+ * @param dst_y The destination Y coordinate.
+ * @param width The width of the area to copy (in pixels).
+ * @param height The height of the area to copy (in pixels).
+ * @return A cookie
+ *
+ * Copies the specified rectangle from \a src_drawable to \a dst_drawable.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_copy_area_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t src_drawable
+ ** @param xcb_drawable_t dst_drawable
+ ** @param xcb_gcontext_t gc
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param int16_t dst_x
+ ** @param int16_t dst_y
+ ** @param uint16_t width
+ ** @param uint16_t height
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_copy_area_checked (xcb_connection_t *c /**< */,
+ xcb_drawable_t src_drawable /**< */,
+ xcb_drawable_t dst_drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ int16_t dst_x /**< */,
+ int16_t dst_y /**< */,
+ uint16_t width /**< */,
+ uint16_t height /**< */);
+
+/**
+ * @brief copy areas
+ *
+ * @param c The connection
+ * @param src_drawable The source drawable (Window or Pixmap).
+ * @param dst_drawable The destination drawable (Window or Pixmap).
+ * @param gc The graphics context to use.
+ * @param src_x The source X coordinate.
+ * @param src_y The source Y coordinate.
+ * @param dst_x The destination X coordinate.
+ * @param dst_y The destination Y coordinate.
+ * @param width The width of the area to copy (in pixels).
+ * @param height The height of the area to copy (in pixels).
+ * @return A cookie
+ *
+ * Copies the specified rectangle from \a src_drawable to \a dst_drawable.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_copy_area
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t src_drawable
+ ** @param xcb_drawable_t dst_drawable
+ ** @param xcb_gcontext_t gc
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param int16_t dst_x
+ ** @param int16_t dst_y
+ ** @param uint16_t width
+ ** @param uint16_t height
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_copy_area (xcb_connection_t *c /**< */,
+ xcb_drawable_t src_drawable /**< */,
+ xcb_drawable_t dst_drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ int16_t dst_x /**< */,
+ int16_t dst_y /**< */,
+ uint16_t width /**< */,
+ uint16_t height /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_copy_plane_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t src_drawable
+ ** @param xcb_drawable_t dst_drawable
+ ** @param xcb_gcontext_t gc
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param int16_t dst_x
+ ** @param int16_t dst_y
+ ** @param uint16_t width
+ ** @param uint16_t height
+ ** @param uint32_t bit_plane
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_copy_plane_checked (xcb_connection_t *c /**< */,
+ xcb_drawable_t src_drawable /**< */,
+ xcb_drawable_t dst_drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ int16_t dst_x /**< */,
+ int16_t dst_y /**< */,
+ uint16_t width /**< */,
+ uint16_t height /**< */,
+ uint32_t bit_plane /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_copy_plane
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t src_drawable
+ ** @param xcb_drawable_t dst_drawable
+ ** @param xcb_gcontext_t gc
+ ** @param int16_t src_x
+ ** @param int16_t src_y
+ ** @param int16_t dst_x
+ ** @param int16_t dst_y
+ ** @param uint16_t width
+ ** @param uint16_t height
+ ** @param uint32_t bit_plane
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_copy_plane (xcb_connection_t *c /**< */,
+ xcb_drawable_t src_drawable /**< */,
+ xcb_drawable_t dst_drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ int16_t src_x /**< */,
+ int16_t src_y /**< */,
+ int16_t dst_x /**< */,
+ int16_t dst_y /**< */,
+ uint16_t width /**< */,
+ uint16_t height /**< */,
+ uint32_t bit_plane /**< */);
+
+int
+xcb_poly_point_sizeof (const void *_buffer /**< */,
+ uint32_t points_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_poly_point_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t coordinate_mode
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param uint32_t points_len
+ ** @param const xcb_point_t *points
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_poly_point_checked (xcb_connection_t *c /**< */,
+ uint8_t coordinate_mode /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint32_t points_len /**< */,
+ const xcb_point_t *points /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_poly_point
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t coordinate_mode
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param uint32_t points_len
+ ** @param const xcb_point_t *points
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_poly_point (xcb_connection_t *c /**< */,
+ uint8_t coordinate_mode /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint32_t points_len /**< */,
+ const xcb_point_t *points /**< */);
+
+int
+xcb_poly_line_sizeof (const void *_buffer /**< */,
+ uint32_t points_len /**< */);
+
+/**
+ * @brief draw lines
+ *
+ * @param c The connection
+ * @param coordinate_mode A bitmask of #xcb_coord_mode_t values.
+ * @param coordinate_mode \n
+ * @param drawable The drawable to draw the line(s) on.
+ * @param gc The graphics context to use.
+ * @param points_len The number of `xcb_point_t` structures in \a points.
+ * @param points An array of points.
+ * @return A cookie
+ *
+ * Draws \a points_len-1 lines between each pair of points (point[i], point[i+1])
+ * in the \a points array. The lines are drawn in the order listed in the array.
+ * They join correctly at all intermediate points, and if the first and last
+ * points coincide, the first and last lines also join correctly. For any given
+ * line, a pixel is not drawn more than once. If thin (zero line-width) lines
+ * intersect, the intersecting pixels are drawn multiple times. If wide lines
+ * intersect, the intersecting pixels are drawn only once, as though the entire
+ * request were a single, filled shape.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_poly_line_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t coordinate_mode
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param uint32_t points_len
+ ** @param const xcb_point_t *points
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_poly_line_checked (xcb_connection_t *c /**< */,
+ uint8_t coordinate_mode /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint32_t points_len /**< */,
+ const xcb_point_t *points /**< */);
+
+/**
+ * @brief draw lines
+ *
+ * @param c The connection
+ * @param coordinate_mode A bitmask of #xcb_coord_mode_t values.
+ * @param coordinate_mode \n
+ * @param drawable The drawable to draw the line(s) on.
+ * @param gc The graphics context to use.
+ * @param points_len The number of `xcb_point_t` structures in \a points.
+ * @param points An array of points.
+ * @return A cookie
+ *
+ * Draws \a points_len-1 lines between each pair of points (point[i], point[i+1])
+ * in the \a points array. The lines are drawn in the order listed in the array.
+ * They join correctly at all intermediate points, and if the first and last
+ * points coincide, the first and last lines also join correctly. For any given
+ * line, a pixel is not drawn more than once. If thin (zero line-width) lines
+ * intersect, the intersecting pixels are drawn multiple times. If wide lines
+ * intersect, the intersecting pixels are drawn only once, as though the entire
+ * request were a single, filled shape.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_poly_line
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t coordinate_mode
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param uint32_t points_len
+ ** @param const xcb_point_t *points
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_poly_line (xcb_connection_t *c /**< */,
+ uint8_t coordinate_mode /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint32_t points_len /**< */,
+ const xcb_point_t *points /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_segment_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_segment_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_segment_next
+ **
+ ** @param xcb_segment_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_segment_next (xcb_segment_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_segment_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_segment_end
+ **
+ ** @param xcb_segment_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_segment_end (xcb_segment_iterator_t i /**< */);
+
+int
+xcb_poly_segment_sizeof (const void *_buffer /**< */,
+ uint32_t segments_len /**< */);
+
+/**
+ * @brief draw lines
+ *
+ * @param c The connection
+ * @param drawable A drawable (Window or Pixmap) to draw on.
+ * @param gc The graphics context to use.
+ * \n
+ * TODO: document which attributes of a gc are used
+ * @param segments_len The number of `xcb_segment_t` structures in \a segments.
+ * @param segments An array of `xcb_segment_t` structures.
+ * @return A cookie
+ *
+ * Draws multiple, unconnected lines. For each segment, a line is drawn between
+ * (x1, y1) and (x2, y2). The lines are drawn in the order listed in the array of
+ * `xcb_segment_t` structures and does not perform joining at coincident
+ * endpoints. For any given line, a pixel is not drawn more than once. If lines
+ * intersect, the intersecting pixels are drawn multiple times.
+ *
+ * TODO: include the xcb_segment_t data structure
+ *
+ * TODO: an example
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_poly_segment_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param uint32_t segments_len
+ ** @param const xcb_segment_t *segments
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_poly_segment_checked (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint32_t segments_len /**< */,
+ const xcb_segment_t *segments /**< */);
+
+/**
+ * @brief draw lines
+ *
+ * @param c The connection
+ * @param drawable A drawable (Window or Pixmap) to draw on.
+ * @param gc The graphics context to use.
+ * \n
+ * TODO: document which attributes of a gc are used
+ * @param segments_len The number of `xcb_segment_t` structures in \a segments.
+ * @param segments An array of `xcb_segment_t` structures.
+ * @return A cookie
+ *
+ * Draws multiple, unconnected lines. For each segment, a line is drawn between
+ * (x1, y1) and (x2, y2). The lines are drawn in the order listed in the array of
+ * `xcb_segment_t` structures and does not perform joining at coincident
+ * endpoints. For any given line, a pixel is not drawn more than once. If lines
+ * intersect, the intersecting pixels are drawn multiple times.
+ *
+ * TODO: include the xcb_segment_t data structure
+ *
+ * TODO: an example
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_poly_segment
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param uint32_t segments_len
+ ** @param const xcb_segment_t *segments
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_poly_segment (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint32_t segments_len /**< */,
+ const xcb_segment_t *segments /**< */);
+
+int
+xcb_poly_rectangle_sizeof (const void *_buffer /**< */,
+ uint32_t rectangles_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_poly_rectangle_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param uint32_t rectangles_len
+ ** @param const xcb_rectangle_t *rectangles
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_poly_rectangle_checked (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint32_t rectangles_len /**< */,
+ const xcb_rectangle_t *rectangles /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_poly_rectangle
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param uint32_t rectangles_len
+ ** @param const xcb_rectangle_t *rectangles
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_poly_rectangle (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint32_t rectangles_len /**< */,
+ const xcb_rectangle_t *rectangles /**< */);
+
+int
+xcb_poly_arc_sizeof (const void *_buffer /**< */,
+ uint32_t arcs_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_poly_arc_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param uint32_t arcs_len
+ ** @param const xcb_arc_t *arcs
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_poly_arc_checked (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint32_t arcs_len /**< */,
+ const xcb_arc_t *arcs /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_poly_arc
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param uint32_t arcs_len
+ ** @param const xcb_arc_t *arcs
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_poly_arc (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint32_t arcs_len /**< */,
+ const xcb_arc_t *arcs /**< */);
+
+int
+xcb_fill_poly_sizeof (const void *_buffer /**< */,
+ uint32_t points_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_fill_poly_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param uint8_t shape
+ ** @param uint8_t coordinate_mode
+ ** @param uint32_t points_len
+ ** @param const xcb_point_t *points
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_fill_poly_checked (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint8_t shape /**< */,
+ uint8_t coordinate_mode /**< */,
+ uint32_t points_len /**< */,
+ const xcb_point_t *points /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_fill_poly
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param uint8_t shape
+ ** @param uint8_t coordinate_mode
+ ** @param uint32_t points_len
+ ** @param const xcb_point_t *points
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_fill_poly (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint8_t shape /**< */,
+ uint8_t coordinate_mode /**< */,
+ uint32_t points_len /**< */,
+ const xcb_point_t *points /**< */);
+
+int
+xcb_poly_fill_rectangle_sizeof (const void *_buffer /**< */,
+ uint32_t rectangles_len /**< */);
+
+/**
+ * @brief Fills rectangles
+ *
+ * @param c The connection
+ * @param drawable The drawable (Window or Pixmap) to draw on.
+ * @param gc The graphics context to use.
+ * \n
+ * The following graphics context components are used: function, plane-mask,
+ * fill-style, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.
+ * \n
+ * The following graphics context mode-dependent components are used:
+ * foreground, background, tile, stipple, tile-stipple-x-origin, and
+ * tile-stipple-y-origin.
+ * @param rectangles_len The number of `xcb_rectangle_t` structures in \a rectangles.
+ * @param rectangles The rectangles to fill.
+ * @return A cookie
+ *
+ * Fills the specified rectangle(s) in the order listed in the array. For any
+ * given rectangle, each pixel is not drawn more than once. If rectangles
+ * intersect, the intersecting pixels are drawn multiple times.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_poly_fill_rectangle_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param uint32_t rectangles_len
+ ** @param const xcb_rectangle_t *rectangles
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_poly_fill_rectangle_checked (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint32_t rectangles_len /**< */,
+ const xcb_rectangle_t *rectangles /**< */);
+
+/**
+ * @brief Fills rectangles
+ *
+ * @param c The connection
+ * @param drawable The drawable (Window or Pixmap) to draw on.
+ * @param gc The graphics context to use.
+ * \n
+ * The following graphics context components are used: function, plane-mask,
+ * fill-style, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.
+ * \n
+ * The following graphics context mode-dependent components are used:
+ * foreground, background, tile, stipple, tile-stipple-x-origin, and
+ * tile-stipple-y-origin.
+ * @param rectangles_len The number of `xcb_rectangle_t` structures in \a rectangles.
+ * @param rectangles The rectangles to fill.
+ * @return A cookie
+ *
+ * Fills the specified rectangle(s) in the order listed in the array. For any
+ * given rectangle, each pixel is not drawn more than once. If rectangles
+ * intersect, the intersecting pixels are drawn multiple times.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_poly_fill_rectangle
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param uint32_t rectangles_len
+ ** @param const xcb_rectangle_t *rectangles
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_poly_fill_rectangle (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint32_t rectangles_len /**< */,
+ const xcb_rectangle_t *rectangles /**< */);
+
+int
+xcb_poly_fill_arc_sizeof (const void *_buffer /**< */,
+ uint32_t arcs_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_poly_fill_arc_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param uint32_t arcs_len
+ ** @param const xcb_arc_t *arcs
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_poly_fill_arc_checked (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint32_t arcs_len /**< */,
+ const xcb_arc_t *arcs /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_poly_fill_arc
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param uint32_t arcs_len
+ ** @param const xcb_arc_t *arcs
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_poly_fill_arc (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint32_t arcs_len /**< */,
+ const xcb_arc_t *arcs /**< */);
+
+int
+xcb_put_image_sizeof (const void *_buffer /**< */,
+ uint32_t data_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_put_image_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t format
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param uint16_t width
+ ** @param uint16_t height
+ ** @param int16_t dst_x
+ ** @param int16_t dst_y
+ ** @param uint8_t left_pad
+ ** @param uint8_t depth
+ ** @param uint32_t data_len
+ ** @param const uint8_t *data
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_put_image_checked (xcb_connection_t *c /**< */,
+ uint8_t format /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint16_t width /**< */,
+ uint16_t height /**< */,
+ int16_t dst_x /**< */,
+ int16_t dst_y /**< */,
+ uint8_t left_pad /**< */,
+ uint8_t depth /**< */,
+ uint32_t data_len /**< */,
+ const uint8_t *data /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_put_image
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t format
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param uint16_t width
+ ** @param uint16_t height
+ ** @param int16_t dst_x
+ ** @param int16_t dst_y
+ ** @param uint8_t left_pad
+ ** @param uint8_t depth
+ ** @param uint32_t data_len
+ ** @param const uint8_t *data
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_put_image (xcb_connection_t *c /**< */,
+ uint8_t format /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ uint16_t width /**< */,
+ uint16_t height /**< */,
+ int16_t dst_x /**< */,
+ int16_t dst_y /**< */,
+ uint8_t left_pad /**< */,
+ uint8_t depth /**< */,
+ uint32_t data_len /**< */,
+ const uint8_t *data /**< */);
+
+int
+xcb_get_image_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_image_cookie_t xcb_get_image
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t format
+ ** @param xcb_drawable_t drawable
+ ** @param int16_t x
+ ** @param int16_t y
+ ** @param uint16_t width
+ ** @param uint16_t height
+ ** @param uint32_t plane_mask
+ ** @returns xcb_get_image_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_image_cookie_t
+xcb_get_image (xcb_connection_t *c /**< */,
+ uint8_t format /**< */,
+ xcb_drawable_t drawable /**< */,
+ int16_t x /**< */,
+ int16_t y /**< */,
+ uint16_t width /**< */,
+ uint16_t height /**< */,
+ uint32_t plane_mask /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_image_cookie_t xcb_get_image_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t format
+ ** @param xcb_drawable_t drawable
+ ** @param int16_t x
+ ** @param int16_t y
+ ** @param uint16_t width
+ ** @param uint16_t height
+ ** @param uint32_t plane_mask
+ ** @returns xcb_get_image_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_image_cookie_t
+xcb_get_image_unchecked (xcb_connection_t *c /**< */,
+ uint8_t format /**< */,
+ xcb_drawable_t drawable /**< */,
+ int16_t x /**< */,
+ int16_t y /**< */,
+ uint16_t width /**< */,
+ uint16_t height /**< */,
+ uint32_t plane_mask /**< */);
+
+
+/*****************************************************************************
+ **
+ ** uint8_t * xcb_get_image_data
+ **
+ ** @param const xcb_get_image_reply_t *R
+ ** @returns uint8_t *
+ **
+ *****************************************************************************/
+
+uint8_t *
+xcb_get_image_data (const xcb_get_image_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_get_image_data_length
+ **
+ ** @param const xcb_get_image_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_get_image_data_length (const xcb_get_image_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_get_image_data_end
+ **
+ ** @param const xcb_get_image_reply_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_get_image_data_end (const xcb_get_image_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_get_image_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_image_reply_t * xcb_get_image_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_get_image_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_get_image_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_get_image_reply_t *
+xcb_get_image_reply (xcb_connection_t *c /**< */,
+ xcb_get_image_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_poly_text_8_sizeof (const void *_buffer /**< */,
+ uint32_t items_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_poly_text_8_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param int16_t x
+ ** @param int16_t y
+ ** @param uint32_t items_len
+ ** @param const uint8_t *items
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_poly_text_8_checked (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ int16_t x /**< */,
+ int16_t y /**< */,
+ uint32_t items_len /**< */,
+ const uint8_t *items /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_poly_text_8
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param int16_t x
+ ** @param int16_t y
+ ** @param uint32_t items_len
+ ** @param const uint8_t *items
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_poly_text_8 (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ int16_t x /**< */,
+ int16_t y /**< */,
+ uint32_t items_len /**< */,
+ const uint8_t *items /**< */);
+
+int
+xcb_poly_text_16_sizeof (const void *_buffer /**< */,
+ uint32_t items_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_poly_text_16_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param int16_t x
+ ** @param int16_t y
+ ** @param uint32_t items_len
+ ** @param const uint8_t *items
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_poly_text_16_checked (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ int16_t x /**< */,
+ int16_t y /**< */,
+ uint32_t items_len /**< */,
+ const uint8_t *items /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_poly_text_16
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param int16_t x
+ ** @param int16_t y
+ ** @param uint32_t items_len
+ ** @param const uint8_t *items
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_poly_text_16 (xcb_connection_t *c /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ int16_t x /**< */,
+ int16_t y /**< */,
+ uint32_t items_len /**< */,
+ const uint8_t *items /**< */);
+
+int
+xcb_image_text_8_sizeof (const void *_buffer /**< */);
+
+/**
+ * @brief Draws text
+ *
+ * @param c The connection
+ * @param string_len The length of the \a string. Note that this parameter limited by 255 due to
+ * using 8 bits!
+ * @param drawable The drawable (Window or Pixmap) to draw text on.
+ * @param gc The graphics context to use.
+ * \n
+ * The following graphics context components are used: plane-mask, foreground,
+ * background, font, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.
+ * @param x The x coordinate of the first character, relative to the origin of \a drawable.
+ * @param y The y coordinate of the first character, relative to the origin of \a drawable.
+ * @param string The string to draw. Only the first 255 characters are relevant due to the data
+ * type of \a string_len.
+ * @return A cookie
+ *
+ * Fills the destination rectangle with the background pixel from \a gc, then
+ * paints the text with the foreground pixel from \a gc. The upper-left corner of
+ * the filled rectangle is at [x, y - font-ascent]. The width is overall-width,
+ * the height is font-ascent + font-descent. The overall-width, font-ascent and
+ * font-descent are as returned by `xcb_query_text_extents` (TODO).
+ *
+ * Note that using X core fonts is deprecated (but still supported) in favor of
+ * client-side rendering using Xft.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_image_text_8_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t string_len
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param int16_t x
+ ** @param int16_t y
+ ** @param const char *string
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_image_text_8_checked (xcb_connection_t *c /**< */,
+ uint8_t string_len /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ int16_t x /**< */,
+ int16_t y /**< */,
+ const char *string /**< */);
+
+/**
+ * @brief Draws text
+ *
+ * @param c The connection
+ * @param string_len The length of the \a string. Note that this parameter limited by 255 due to
+ * using 8 bits!
+ * @param drawable The drawable (Window or Pixmap) to draw text on.
+ * @param gc The graphics context to use.
+ * \n
+ * The following graphics context components are used: plane-mask, foreground,
+ * background, font, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.
+ * @param x The x coordinate of the first character, relative to the origin of \a drawable.
+ * @param y The y coordinate of the first character, relative to the origin of \a drawable.
+ * @param string The string to draw. Only the first 255 characters are relevant due to the data
+ * type of \a string_len.
+ * @return A cookie
+ *
+ * Fills the destination rectangle with the background pixel from \a gc, then
+ * paints the text with the foreground pixel from \a gc. The upper-left corner of
+ * the filled rectangle is at [x, y - font-ascent]. The width is overall-width,
+ * the height is font-ascent + font-descent. The overall-width, font-ascent and
+ * font-descent are as returned by `xcb_query_text_extents` (TODO).
+ *
+ * Note that using X core fonts is deprecated (but still supported) in favor of
+ * client-side rendering using Xft.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_image_text_8
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t string_len
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param int16_t x
+ ** @param int16_t y
+ ** @param const char *string
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_image_text_8 (xcb_connection_t *c /**< */,
+ uint8_t string_len /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ int16_t x /**< */,
+ int16_t y /**< */,
+ const char *string /**< */);
+
+int
+xcb_image_text_16_sizeof (const void *_buffer /**< */);
+
+/**
+ * @brief Draws text
+ *
+ * @param c The connection
+ * @param string_len The length of the \a string in characters. Note that this parameter limited by
+ * 255 due to using 8 bits!
+ * @param drawable The drawable (Window or Pixmap) to draw text on.
+ * @param gc The graphics context to use.
+ * \n
+ * The following graphics context components are used: plane-mask, foreground,
+ * background, font, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.
+ * @param x The x coordinate of the first character, relative to the origin of \a drawable.
+ * @param y The y coordinate of the first character, relative to the origin of \a drawable.
+ * @param string The string to draw. Only the first 255 characters are relevant due to the data
+ * type of \a string_len. Every character uses 2 bytes (hence the 16 in this
+ * request's name).
+ * @return A cookie
+ *
+ * Fills the destination rectangle with the background pixel from \a gc, then
+ * paints the text with the foreground pixel from \a gc. The upper-left corner of
+ * the filled rectangle is at [x, y - font-ascent]. The width is overall-width,
+ * the height is font-ascent + font-descent. The overall-width, font-ascent and
+ * font-descent are as returned by `xcb_query_text_extents` (TODO).
+ *
+ * Note that using X core fonts is deprecated (but still supported) in favor of
+ * client-side rendering using Xft.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_image_text_16_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t string_len
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param int16_t x
+ ** @param int16_t y
+ ** @param const xcb_char2b_t *string
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_image_text_16_checked (xcb_connection_t *c /**< */,
+ uint8_t string_len /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ int16_t x /**< */,
+ int16_t y /**< */,
+ const xcb_char2b_t *string /**< */);
+
+/**
+ * @brief Draws text
+ *
+ * @param c The connection
+ * @param string_len The length of the \a string in characters. Note that this parameter limited by
+ * 255 due to using 8 bits!
+ * @param drawable The drawable (Window or Pixmap) to draw text on.
+ * @param gc The graphics context to use.
+ * \n
+ * The following graphics context components are used: plane-mask, foreground,
+ * background, font, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.
+ * @param x The x coordinate of the first character, relative to the origin of \a drawable.
+ * @param y The y coordinate of the first character, relative to the origin of \a drawable.
+ * @param string The string to draw. Only the first 255 characters are relevant due to the data
+ * type of \a string_len. Every character uses 2 bytes (hence the 16 in this
+ * request's name).
+ * @return A cookie
+ *
+ * Fills the destination rectangle with the background pixel from \a gc, then
+ * paints the text with the foreground pixel from \a gc. The upper-left corner of
+ * the filled rectangle is at [x, y - font-ascent]. The width is overall-width,
+ * the height is font-ascent + font-descent. The overall-width, font-ascent and
+ * font-descent are as returned by `xcb_query_text_extents` (TODO).
+ *
+ * Note that using X core fonts is deprecated (but still supported) in favor of
+ * client-side rendering using Xft.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_image_text_16
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t string_len
+ ** @param xcb_drawable_t drawable
+ ** @param xcb_gcontext_t gc
+ ** @param int16_t x
+ ** @param int16_t y
+ ** @param const xcb_char2b_t *string
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_image_text_16 (xcb_connection_t *c /**< */,
+ uint8_t string_len /**< */,
+ xcb_drawable_t drawable /**< */,
+ xcb_gcontext_t gc /**< */,
+ int16_t x /**< */,
+ int16_t y /**< */,
+ const xcb_char2b_t *string /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_create_colormap_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t alloc
+ ** @param xcb_colormap_t mid
+ ** @param xcb_window_t window
+ ** @param xcb_visualid_t visual
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_create_colormap_checked (xcb_connection_t *c /**< */,
+ uint8_t alloc /**< */,
+ xcb_colormap_t mid /**< */,
+ xcb_window_t window /**< */,
+ xcb_visualid_t visual /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_create_colormap
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t alloc
+ ** @param xcb_colormap_t mid
+ ** @param xcb_window_t window
+ ** @param xcb_visualid_t visual
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_create_colormap (xcb_connection_t *c /**< */,
+ uint8_t alloc /**< */,
+ xcb_colormap_t mid /**< */,
+ xcb_window_t window /**< */,
+ xcb_visualid_t visual /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_free_colormap_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t cmap
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_free_colormap_checked (xcb_connection_t *c /**< */,
+ xcb_colormap_t cmap /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_free_colormap
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t cmap
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_free_colormap (xcb_connection_t *c /**< */,
+ xcb_colormap_t cmap /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_copy_colormap_and_free_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t mid
+ ** @param xcb_colormap_t src_cmap
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_copy_colormap_and_free_checked (xcb_connection_t *c /**< */,
+ xcb_colormap_t mid /**< */,
+ xcb_colormap_t src_cmap /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_copy_colormap_and_free
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t mid
+ ** @param xcb_colormap_t src_cmap
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_copy_colormap_and_free (xcb_connection_t *c /**< */,
+ xcb_colormap_t mid /**< */,
+ xcb_colormap_t src_cmap /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_install_colormap_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t cmap
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_install_colormap_checked (xcb_connection_t *c /**< */,
+ xcb_colormap_t cmap /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_install_colormap
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t cmap
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_install_colormap (xcb_connection_t *c /**< */,
+ xcb_colormap_t cmap /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_uninstall_colormap_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t cmap
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_uninstall_colormap_checked (xcb_connection_t *c /**< */,
+ xcb_colormap_t cmap /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_uninstall_colormap
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t cmap
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_uninstall_colormap (xcb_connection_t *c /**< */,
+ xcb_colormap_t cmap /**< */);
+
+int
+xcb_list_installed_colormaps_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_list_installed_colormaps_cookie_t xcb_list_installed_colormaps
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_list_installed_colormaps_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_list_installed_colormaps_cookie_t
+xcb_list_installed_colormaps (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_list_installed_colormaps_cookie_t xcb_list_installed_colormaps_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_list_installed_colormaps_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_list_installed_colormaps_cookie_t
+xcb_list_installed_colormaps_unchecked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_colormap_t * xcb_list_installed_colormaps_cmaps
+ **
+ ** @param const xcb_list_installed_colormaps_reply_t *R
+ ** @returns xcb_colormap_t *
+ **
+ *****************************************************************************/
+
+xcb_colormap_t *
+xcb_list_installed_colormaps_cmaps (const xcb_list_installed_colormaps_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_list_installed_colormaps_cmaps_length
+ **
+ ** @param const xcb_list_installed_colormaps_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_list_installed_colormaps_cmaps_length (const xcb_list_installed_colormaps_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_list_installed_colormaps_cmaps_end
+ **
+ ** @param const xcb_list_installed_colormaps_reply_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_list_installed_colormaps_cmaps_end (const xcb_list_installed_colormaps_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_list_installed_colormaps_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_list_installed_colormaps_reply_t * xcb_list_installed_colormaps_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_list_installed_colormaps_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_list_installed_colormaps_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_list_installed_colormaps_reply_t *
+xcb_list_installed_colormaps_reply (xcb_connection_t *c /**< */,
+ xcb_list_installed_colormaps_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ * @brief Allocate a color
+ *
+ * @param c The connection
+ * @param cmap TODO
+ * @param red The red value of your color.
+ * @param green The green value of your color.
+ * @param blue The blue value of your color.
+ * @return A cookie
+ *
+ * Allocates a read-only colormap entry corresponding to the closest RGB value
+ * supported by the hardware. If you are using TrueColor, you can take a shortcut
+ * and directly calculate the color pixel value to avoid the round trip. But, for
+ * example, on 16-bit color setups (VNC), you can easily get the closest supported
+ * RGB value to the RGB value you are specifying.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_alloc_color_cookie_t xcb_alloc_color
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t cmap
+ ** @param uint16_t red
+ ** @param uint16_t green
+ ** @param uint16_t blue
+ ** @returns xcb_alloc_color_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_alloc_color_cookie_t
+xcb_alloc_color (xcb_connection_t *c /**< */,
+ xcb_colormap_t cmap /**< */,
+ uint16_t red /**< */,
+ uint16_t green /**< */,
+ uint16_t blue /**< */);
+
+/**
+ * @brief Allocate a color
+ *
+ * @param c The connection
+ * @param cmap TODO
+ * @param red The red value of your color.
+ * @param green The green value of your color.
+ * @param blue The blue value of your color.
+ * @return A cookie
+ *
+ * Allocates a read-only colormap entry corresponding to the closest RGB value
+ * supported by the hardware. If you are using TrueColor, you can take a shortcut
+ * and directly calculate the color pixel value to avoid the round trip. But, for
+ * example, on 16-bit color setups (VNC), you can easily get the closest supported
+ * RGB value to the RGB value you are specifying.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_alloc_color_cookie_t xcb_alloc_color_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t cmap
+ ** @param uint16_t red
+ ** @param uint16_t green
+ ** @param uint16_t blue
+ ** @returns xcb_alloc_color_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_alloc_color_cookie_t
+xcb_alloc_color_unchecked (xcb_connection_t *c /**< */,
+ xcb_colormap_t cmap /**< */,
+ uint16_t red /**< */,
+ uint16_t green /**< */,
+ uint16_t blue /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_alloc_color_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_alloc_color_reply_t * xcb_alloc_color_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_alloc_color_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_alloc_color_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_alloc_color_reply_t *
+xcb_alloc_color_reply (xcb_connection_t *c /**< */,
+ xcb_alloc_color_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_alloc_named_color_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_alloc_named_color_cookie_t xcb_alloc_named_color
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t cmap
+ ** @param uint16_t name_len
+ ** @param const char *name
+ ** @returns xcb_alloc_named_color_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_alloc_named_color_cookie_t
+xcb_alloc_named_color (xcb_connection_t *c /**< */,
+ xcb_colormap_t cmap /**< */,
+ uint16_t name_len /**< */,
+ const char *name /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_alloc_named_color_cookie_t xcb_alloc_named_color_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t cmap
+ ** @param uint16_t name_len
+ ** @param const char *name
+ ** @returns xcb_alloc_named_color_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_alloc_named_color_cookie_t
+xcb_alloc_named_color_unchecked (xcb_connection_t *c /**< */,
+ xcb_colormap_t cmap /**< */,
+ uint16_t name_len /**< */,
+ const char *name /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_alloc_named_color_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_alloc_named_color_reply_t * xcb_alloc_named_color_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_alloc_named_color_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_alloc_named_color_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_alloc_named_color_reply_t *
+xcb_alloc_named_color_reply (xcb_connection_t *c /**< */,
+ xcb_alloc_named_color_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_alloc_color_cells_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_alloc_color_cells_cookie_t xcb_alloc_color_cells
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t contiguous
+ ** @param xcb_colormap_t cmap
+ ** @param uint16_t colors
+ ** @param uint16_t planes
+ ** @returns xcb_alloc_color_cells_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_alloc_color_cells_cookie_t
+xcb_alloc_color_cells (xcb_connection_t *c /**< */,
+ uint8_t contiguous /**< */,
+ xcb_colormap_t cmap /**< */,
+ uint16_t colors /**< */,
+ uint16_t planes /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_alloc_color_cells_cookie_t xcb_alloc_color_cells_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t contiguous
+ ** @param xcb_colormap_t cmap
+ ** @param uint16_t colors
+ ** @param uint16_t planes
+ ** @returns xcb_alloc_color_cells_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_alloc_color_cells_cookie_t
+xcb_alloc_color_cells_unchecked (xcb_connection_t *c /**< */,
+ uint8_t contiguous /**< */,
+ xcb_colormap_t cmap /**< */,
+ uint16_t colors /**< */,
+ uint16_t planes /**< */);
+
+
+/*****************************************************************************
+ **
+ ** uint32_t * xcb_alloc_color_cells_pixels
+ **
+ ** @param const xcb_alloc_color_cells_reply_t *R
+ ** @returns uint32_t *
+ **
+ *****************************************************************************/
+
+uint32_t *
+xcb_alloc_color_cells_pixels (const xcb_alloc_color_cells_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_alloc_color_cells_pixels_length
+ **
+ ** @param const xcb_alloc_color_cells_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_alloc_color_cells_pixels_length (const xcb_alloc_color_cells_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_alloc_color_cells_pixels_end
+ **
+ ** @param const xcb_alloc_color_cells_reply_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_alloc_color_cells_pixels_end (const xcb_alloc_color_cells_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** uint32_t * xcb_alloc_color_cells_masks
+ **
+ ** @param const xcb_alloc_color_cells_reply_t *R
+ ** @returns uint32_t *
+ **
+ *****************************************************************************/
+
+uint32_t *
+xcb_alloc_color_cells_masks (const xcb_alloc_color_cells_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_alloc_color_cells_masks_length
+ **
+ ** @param const xcb_alloc_color_cells_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_alloc_color_cells_masks_length (const xcb_alloc_color_cells_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_alloc_color_cells_masks_end
+ **
+ ** @param const xcb_alloc_color_cells_reply_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_alloc_color_cells_masks_end (const xcb_alloc_color_cells_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_alloc_color_cells_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_alloc_color_cells_reply_t * xcb_alloc_color_cells_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_alloc_color_cells_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_alloc_color_cells_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_alloc_color_cells_reply_t *
+xcb_alloc_color_cells_reply (xcb_connection_t *c /**< */,
+ xcb_alloc_color_cells_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_alloc_color_planes_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_alloc_color_planes_cookie_t xcb_alloc_color_planes
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t contiguous
+ ** @param xcb_colormap_t cmap
+ ** @param uint16_t colors
+ ** @param uint16_t reds
+ ** @param uint16_t greens
+ ** @param uint16_t blues
+ ** @returns xcb_alloc_color_planes_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_alloc_color_planes_cookie_t
+xcb_alloc_color_planes (xcb_connection_t *c /**< */,
+ uint8_t contiguous /**< */,
+ xcb_colormap_t cmap /**< */,
+ uint16_t colors /**< */,
+ uint16_t reds /**< */,
+ uint16_t greens /**< */,
+ uint16_t blues /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_alloc_color_planes_cookie_t xcb_alloc_color_planes_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t contiguous
+ ** @param xcb_colormap_t cmap
+ ** @param uint16_t colors
+ ** @param uint16_t reds
+ ** @param uint16_t greens
+ ** @param uint16_t blues
+ ** @returns xcb_alloc_color_planes_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_alloc_color_planes_cookie_t
+xcb_alloc_color_planes_unchecked (xcb_connection_t *c /**< */,
+ uint8_t contiguous /**< */,
+ xcb_colormap_t cmap /**< */,
+ uint16_t colors /**< */,
+ uint16_t reds /**< */,
+ uint16_t greens /**< */,
+ uint16_t blues /**< */);
+
+
+/*****************************************************************************
+ **
+ ** uint32_t * xcb_alloc_color_planes_pixels
+ **
+ ** @param const xcb_alloc_color_planes_reply_t *R
+ ** @returns uint32_t *
+ **
+ *****************************************************************************/
+
+uint32_t *
+xcb_alloc_color_planes_pixels (const xcb_alloc_color_planes_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_alloc_color_planes_pixels_length
+ **
+ ** @param const xcb_alloc_color_planes_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_alloc_color_planes_pixels_length (const xcb_alloc_color_planes_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_alloc_color_planes_pixels_end
+ **
+ ** @param const xcb_alloc_color_planes_reply_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_alloc_color_planes_pixels_end (const xcb_alloc_color_planes_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_alloc_color_planes_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_alloc_color_planes_reply_t * xcb_alloc_color_planes_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_alloc_color_planes_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_alloc_color_planes_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_alloc_color_planes_reply_t *
+xcb_alloc_color_planes_reply (xcb_connection_t *c /**< */,
+ xcb_alloc_color_planes_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_free_colors_sizeof (const void *_buffer /**< */,
+ uint32_t pixels_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_free_colors_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t cmap
+ ** @param uint32_t plane_mask
+ ** @param uint32_t pixels_len
+ ** @param const uint32_t *pixels
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_free_colors_checked (xcb_connection_t *c /**< */,
+ xcb_colormap_t cmap /**< */,
+ uint32_t plane_mask /**< */,
+ uint32_t pixels_len /**< */,
+ const uint32_t *pixels /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_free_colors
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t cmap
+ ** @param uint32_t plane_mask
+ ** @param uint32_t pixels_len
+ ** @param const uint32_t *pixels
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_free_colors (xcb_connection_t *c /**< */,
+ xcb_colormap_t cmap /**< */,
+ uint32_t plane_mask /**< */,
+ uint32_t pixels_len /**< */,
+ const uint32_t *pixels /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_coloritem_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_coloritem_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_coloritem_next
+ **
+ ** @param xcb_coloritem_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_coloritem_next (xcb_coloritem_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_coloritem_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_coloritem_end
+ **
+ ** @param xcb_coloritem_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_coloritem_end (xcb_coloritem_iterator_t i /**< */);
+
+int
+xcb_store_colors_sizeof (const void *_buffer /**< */,
+ uint32_t items_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_store_colors_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t cmap
+ ** @param uint32_t items_len
+ ** @param const xcb_coloritem_t *items
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_store_colors_checked (xcb_connection_t *c /**< */,
+ xcb_colormap_t cmap /**< */,
+ uint32_t items_len /**< */,
+ const xcb_coloritem_t *items /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_store_colors
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t cmap
+ ** @param uint32_t items_len
+ ** @param const xcb_coloritem_t *items
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_store_colors (xcb_connection_t *c /**< */,
+ xcb_colormap_t cmap /**< */,
+ uint32_t items_len /**< */,
+ const xcb_coloritem_t *items /**< */);
+
+int
+xcb_store_named_color_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_store_named_color_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t flags
+ ** @param xcb_colormap_t cmap
+ ** @param uint32_t pixel
+ ** @param uint16_t name_len
+ ** @param const char *name
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_store_named_color_checked (xcb_connection_t *c /**< */,
+ uint8_t flags /**< */,
+ xcb_colormap_t cmap /**< */,
+ uint32_t pixel /**< */,
+ uint16_t name_len /**< */,
+ const char *name /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_store_named_color
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t flags
+ ** @param xcb_colormap_t cmap
+ ** @param uint32_t pixel
+ ** @param uint16_t name_len
+ ** @param const char *name
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_store_named_color (xcb_connection_t *c /**< */,
+ uint8_t flags /**< */,
+ xcb_colormap_t cmap /**< */,
+ uint32_t pixel /**< */,
+ uint16_t name_len /**< */,
+ const char *name /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_rgb_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_rgb_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_rgb_next
+ **
+ ** @param xcb_rgb_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_rgb_next (xcb_rgb_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_rgb_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_rgb_end
+ **
+ ** @param xcb_rgb_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_rgb_end (xcb_rgb_iterator_t i /**< */);
+
+int
+xcb_query_colors_sizeof (const void *_buffer /**< */,
+ uint32_t pixels_len /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_colors_cookie_t xcb_query_colors
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t cmap
+ ** @param uint32_t pixels_len
+ ** @param const uint32_t *pixels
+ ** @returns xcb_query_colors_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_query_colors_cookie_t
+xcb_query_colors (xcb_connection_t *c /**< */,
+ xcb_colormap_t cmap /**< */,
+ uint32_t pixels_len /**< */,
+ const uint32_t *pixels /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_colors_cookie_t xcb_query_colors_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t cmap
+ ** @param uint32_t pixels_len
+ ** @param const uint32_t *pixels
+ ** @returns xcb_query_colors_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_query_colors_cookie_t
+xcb_query_colors_unchecked (xcb_connection_t *c /**< */,
+ xcb_colormap_t cmap /**< */,
+ uint32_t pixels_len /**< */,
+ const uint32_t *pixels /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_rgb_t * xcb_query_colors_colors
+ **
+ ** @param const xcb_query_colors_reply_t *R
+ ** @returns xcb_rgb_t *
+ **
+ *****************************************************************************/
+
+xcb_rgb_t *
+xcb_query_colors_colors (const xcb_query_colors_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_query_colors_colors_length
+ **
+ ** @param const xcb_query_colors_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_query_colors_colors_length (const xcb_query_colors_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_rgb_iterator_t xcb_query_colors_colors_iterator
+ **
+ ** @param const xcb_query_colors_reply_t *R
+ ** @returns xcb_rgb_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_rgb_iterator_t
+xcb_query_colors_colors_iterator (const xcb_query_colors_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_query_colors_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_colors_reply_t * xcb_query_colors_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_query_colors_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_query_colors_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_query_colors_reply_t *
+xcb_query_colors_reply (xcb_connection_t *c /**< */,
+ xcb_query_colors_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_lookup_color_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_lookup_color_cookie_t xcb_lookup_color
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t cmap
+ ** @param uint16_t name_len
+ ** @param const char *name
+ ** @returns xcb_lookup_color_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_lookup_color_cookie_t
+xcb_lookup_color (xcb_connection_t *c /**< */,
+ xcb_colormap_t cmap /**< */,
+ uint16_t name_len /**< */,
+ const char *name /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_lookup_color_cookie_t xcb_lookup_color_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_colormap_t cmap
+ ** @param uint16_t name_len
+ ** @param const char *name
+ ** @returns xcb_lookup_color_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_lookup_color_cookie_t
+xcb_lookup_color_unchecked (xcb_connection_t *c /**< */,
+ xcb_colormap_t cmap /**< */,
+ uint16_t name_len /**< */,
+ const char *name /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_lookup_color_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_lookup_color_reply_t * xcb_lookup_color_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_lookup_color_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_lookup_color_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_lookup_color_reply_t *
+xcb_lookup_color_reply (xcb_connection_t *c /**< */,
+ xcb_lookup_color_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_create_cursor_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_cursor_t cid
+ ** @param xcb_pixmap_t source
+ ** @param xcb_pixmap_t mask
+ ** @param uint16_t fore_red
+ ** @param uint16_t fore_green
+ ** @param uint16_t fore_blue
+ ** @param uint16_t back_red
+ ** @param uint16_t back_green
+ ** @param uint16_t back_blue
+ ** @param uint16_t x
+ ** @param uint16_t y
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_create_cursor_checked (xcb_connection_t *c /**< */,
+ xcb_cursor_t cid /**< */,
+ xcb_pixmap_t source /**< */,
+ xcb_pixmap_t mask /**< */,
+ uint16_t fore_red /**< */,
+ uint16_t fore_green /**< */,
+ uint16_t fore_blue /**< */,
+ uint16_t back_red /**< */,
+ uint16_t back_green /**< */,
+ uint16_t back_blue /**< */,
+ uint16_t x /**< */,
+ uint16_t y /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_create_cursor
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_cursor_t cid
+ ** @param xcb_pixmap_t source
+ ** @param xcb_pixmap_t mask
+ ** @param uint16_t fore_red
+ ** @param uint16_t fore_green
+ ** @param uint16_t fore_blue
+ ** @param uint16_t back_red
+ ** @param uint16_t back_green
+ ** @param uint16_t back_blue
+ ** @param uint16_t x
+ ** @param uint16_t y
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_create_cursor (xcb_connection_t *c /**< */,
+ xcb_cursor_t cid /**< */,
+ xcb_pixmap_t source /**< */,
+ xcb_pixmap_t mask /**< */,
+ uint16_t fore_red /**< */,
+ uint16_t fore_green /**< */,
+ uint16_t fore_blue /**< */,
+ uint16_t back_red /**< */,
+ uint16_t back_green /**< */,
+ uint16_t back_blue /**< */,
+ uint16_t x /**< */,
+ uint16_t y /**< */);
+
+/**
+ * @brief create cursor
+ *
+ * @param c The connection
+ * @param cid The ID with which you will refer to the cursor, created by `xcb_generate_id`.
+ * @param source_font In which font to look for the cursor glyph.
+ * @param mask_font In which font to look for the mask glyph.
+ * @param source_char The glyph of \a source_font to use.
+ * @param mask_char The glyph of \a mask_font to use as a mask: Pixels which are set to 1 define
+ * which source pixels are displayed. All pixels which are set to 0 are not
+ * displayed.
+ * @param fore_red The red value of the foreground color.
+ * @param fore_green The green value of the foreground color.
+ * @param fore_blue The blue value of the foreground color.
+ * @param back_red The red value of the background color.
+ * @param back_green The green value of the background color.
+ * @param back_blue The blue value of the background color.
+ * @return A cookie
+ *
+ * Creates a cursor from a font glyph. X provides a set of standard cursor shapes
+ * in a special font named cursor. Applications are encouraged to use this
+ * interface for their cursors because the font can be customized for the
+ * individual display type.
+ *
+ * All pixels which are set to 1 in the source will use the foreground color (as
+ * specified by \a fore_red, \a fore_green and \a fore_blue). All pixels set to 0
+ * will use the background color (as specified by \a back_red, \a back_green and
+ * \a back_blue).
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_create_glyph_cursor_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_cursor_t cid
+ ** @param xcb_font_t source_font
+ ** @param xcb_font_t mask_font
+ ** @param uint16_t source_char
+ ** @param uint16_t mask_char
+ ** @param uint16_t fore_red
+ ** @param uint16_t fore_green
+ ** @param uint16_t fore_blue
+ ** @param uint16_t back_red
+ ** @param uint16_t back_green
+ ** @param uint16_t back_blue
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_create_glyph_cursor_checked (xcb_connection_t *c /**< */,
+ xcb_cursor_t cid /**< */,
+ xcb_font_t source_font /**< */,
+ xcb_font_t mask_font /**< */,
+ uint16_t source_char /**< */,
+ uint16_t mask_char /**< */,
+ uint16_t fore_red /**< */,
+ uint16_t fore_green /**< */,
+ uint16_t fore_blue /**< */,
+ uint16_t back_red /**< */,
+ uint16_t back_green /**< */,
+ uint16_t back_blue /**< */);
+
+/**
+ * @brief create cursor
+ *
+ * @param c The connection
+ * @param cid The ID with which you will refer to the cursor, created by `xcb_generate_id`.
+ * @param source_font In which font to look for the cursor glyph.
+ * @param mask_font In which font to look for the mask glyph.
+ * @param source_char The glyph of \a source_font to use.
+ * @param mask_char The glyph of \a mask_font to use as a mask: Pixels which are set to 1 define
+ * which source pixels are displayed. All pixels which are set to 0 are not
+ * displayed.
+ * @param fore_red The red value of the foreground color.
+ * @param fore_green The green value of the foreground color.
+ * @param fore_blue The blue value of the foreground color.
+ * @param back_red The red value of the background color.
+ * @param back_green The green value of the background color.
+ * @param back_blue The blue value of the background color.
+ * @return A cookie
+ *
+ * Creates a cursor from a font glyph. X provides a set of standard cursor shapes
+ * in a special font named cursor. Applications are encouraged to use this
+ * interface for their cursors because the font can be customized for the
+ * individual display type.
+ *
+ * All pixels which are set to 1 in the source will use the foreground color (as
+ * specified by \a fore_red, \a fore_green and \a fore_blue). All pixels set to 0
+ * will use the background color (as specified by \a back_red, \a back_green and
+ * \a back_blue).
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_create_glyph_cursor
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_cursor_t cid
+ ** @param xcb_font_t source_font
+ ** @param xcb_font_t mask_font
+ ** @param uint16_t source_char
+ ** @param uint16_t mask_char
+ ** @param uint16_t fore_red
+ ** @param uint16_t fore_green
+ ** @param uint16_t fore_blue
+ ** @param uint16_t back_red
+ ** @param uint16_t back_green
+ ** @param uint16_t back_blue
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_create_glyph_cursor (xcb_connection_t *c /**< */,
+ xcb_cursor_t cid /**< */,
+ xcb_font_t source_font /**< */,
+ xcb_font_t mask_font /**< */,
+ uint16_t source_char /**< */,
+ uint16_t mask_char /**< */,
+ uint16_t fore_red /**< */,
+ uint16_t fore_green /**< */,
+ uint16_t fore_blue /**< */,
+ uint16_t back_red /**< */,
+ uint16_t back_green /**< */,
+ uint16_t back_blue /**< */);
+
+/**
+ * @brief Deletes a cursor
+ *
+ * @param c The connection
+ * @param cursor The cursor to destroy.
+ * @return A cookie
+ *
+ * Deletes the association between the cursor resource ID and the specified
+ * cursor. The cursor is freed when no other resource references it.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_free_cursor_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_cursor_t cursor
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_free_cursor_checked (xcb_connection_t *c /**< */,
+ xcb_cursor_t cursor /**< */);
+
+/**
+ * @brief Deletes a cursor
+ *
+ * @param c The connection
+ * @param cursor The cursor to destroy.
+ * @return A cookie
+ *
+ * Deletes the association between the cursor resource ID and the specified
+ * cursor. The cursor is freed when no other resource references it.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_free_cursor
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_cursor_t cursor
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_free_cursor (xcb_connection_t *c /**< */,
+ xcb_cursor_t cursor /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_recolor_cursor_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_cursor_t cursor
+ ** @param uint16_t fore_red
+ ** @param uint16_t fore_green
+ ** @param uint16_t fore_blue
+ ** @param uint16_t back_red
+ ** @param uint16_t back_green
+ ** @param uint16_t back_blue
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_recolor_cursor_checked (xcb_connection_t *c /**< */,
+ xcb_cursor_t cursor /**< */,
+ uint16_t fore_red /**< */,
+ uint16_t fore_green /**< */,
+ uint16_t fore_blue /**< */,
+ uint16_t back_red /**< */,
+ uint16_t back_green /**< */,
+ uint16_t back_blue /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_recolor_cursor
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_cursor_t cursor
+ ** @param uint16_t fore_red
+ ** @param uint16_t fore_green
+ ** @param uint16_t fore_blue
+ ** @param uint16_t back_red
+ ** @param uint16_t back_green
+ ** @param uint16_t back_blue
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_recolor_cursor (xcb_connection_t *c /**< */,
+ xcb_cursor_t cursor /**< */,
+ uint16_t fore_red /**< */,
+ uint16_t fore_green /**< */,
+ uint16_t fore_blue /**< */,
+ uint16_t back_red /**< */,
+ uint16_t back_green /**< */,
+ uint16_t back_blue /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_best_size_cookie_t xcb_query_best_size
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t _class
+ ** @param xcb_drawable_t drawable
+ ** @param uint16_t width
+ ** @param uint16_t height
+ ** @returns xcb_query_best_size_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_query_best_size_cookie_t
+xcb_query_best_size (xcb_connection_t *c /**< */,
+ uint8_t _class /**< */,
+ xcb_drawable_t drawable /**< */,
+ uint16_t width /**< */,
+ uint16_t height /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_best_size_cookie_t xcb_query_best_size_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t _class
+ ** @param xcb_drawable_t drawable
+ ** @param uint16_t width
+ ** @param uint16_t height
+ ** @returns xcb_query_best_size_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_query_best_size_cookie_t
+xcb_query_best_size_unchecked (xcb_connection_t *c /**< */,
+ uint8_t _class /**< */,
+ xcb_drawable_t drawable /**< */,
+ uint16_t width /**< */,
+ uint16_t height /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_query_best_size_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_best_size_reply_t * xcb_query_best_size_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_query_best_size_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_query_best_size_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_query_best_size_reply_t *
+xcb_query_best_size_reply (xcb_connection_t *c /**< */,
+ xcb_query_best_size_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_query_extension_sizeof (const void *_buffer /**< */);
+
+/**
+ * @brief check if extension is present
+ *
+ * @param c The connection
+ * @param name_len The length of \a name in bytes.
+ * @param name The name of the extension to query, for example "RANDR". This is case
+ * sensitive!
+ * @return A cookie
+ *
+ * Determines if the specified extension is present on this X11 server.
+ *
+ * Every extension has a unique `major_opcode` to identify requests, the minor
+ * opcodes and request formats are extension-specific. If the extension provides
+ * events and errors, the `first_event` and `first_error` fields in the reply are
+ * set accordingly.
+ *
+ * There should rarely be a need to use this request directly, XCB provides the
+ * `xcb_get_extension_data` function instead.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_extension_cookie_t xcb_query_extension
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint16_t name_len
+ ** @param const char *name
+ ** @returns xcb_query_extension_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_query_extension_cookie_t
+xcb_query_extension (xcb_connection_t *c /**< */,
+ uint16_t name_len /**< */,
+ const char *name /**< */);
+
+/**
+ * @brief check if extension is present
+ *
+ * @param c The connection
+ * @param name_len The length of \a name in bytes.
+ * @param name The name of the extension to query, for example "RANDR". This is case
+ * sensitive!
+ * @return A cookie
+ *
+ * Determines if the specified extension is present on this X11 server.
+ *
+ * Every extension has a unique `major_opcode` to identify requests, the minor
+ * opcodes and request formats are extension-specific. If the extension provides
+ * events and errors, the `first_event` and `first_error` fields in the reply are
+ * set accordingly.
+ *
+ * There should rarely be a need to use this request directly, XCB provides the
+ * `xcb_get_extension_data` function instead.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_extension_cookie_t xcb_query_extension_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint16_t name_len
+ ** @param const char *name
+ ** @returns xcb_query_extension_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_query_extension_cookie_t
+xcb_query_extension_unchecked (xcb_connection_t *c /**< */,
+ uint16_t name_len /**< */,
+ const char *name /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_query_extension_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_query_extension_reply_t * xcb_query_extension_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_query_extension_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_query_extension_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_query_extension_reply_t *
+xcb_query_extension_reply (xcb_connection_t *c /**< */,
+ xcb_query_extension_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_list_extensions_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_list_extensions_cookie_t xcb_list_extensions
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_list_extensions_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_list_extensions_cookie_t
+xcb_list_extensions (xcb_connection_t *c /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_list_extensions_cookie_t xcb_list_extensions_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_list_extensions_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_list_extensions_cookie_t
+xcb_list_extensions_unchecked (xcb_connection_t *c /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_list_extensions_names_length
+ **
+ ** @param const xcb_list_extensions_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_list_extensions_names_length (const xcb_list_extensions_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_str_iterator_t xcb_list_extensions_names_iterator
+ **
+ ** @param const xcb_list_extensions_reply_t *R
+ ** @returns xcb_str_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_str_iterator_t
+xcb_list_extensions_names_iterator (const xcb_list_extensions_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_list_extensions_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_list_extensions_reply_t * xcb_list_extensions_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_list_extensions_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_list_extensions_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_list_extensions_reply_t *
+xcb_list_extensions_reply (xcb_connection_t *c /**< */,
+ xcb_list_extensions_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_change_keyboard_mapping_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_change_keyboard_mapping_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t keycode_count
+ ** @param xcb_keycode_t first_keycode
+ ** @param uint8_t keysyms_per_keycode
+ ** @param const xcb_keysym_t *keysyms
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_change_keyboard_mapping_checked (xcb_connection_t *c /**< */,
+ uint8_t keycode_count /**< */,
+ xcb_keycode_t first_keycode /**< */,
+ uint8_t keysyms_per_keycode /**< */,
+ const xcb_keysym_t *keysyms /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_change_keyboard_mapping
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t keycode_count
+ ** @param xcb_keycode_t first_keycode
+ ** @param uint8_t keysyms_per_keycode
+ ** @param const xcb_keysym_t *keysyms
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_change_keyboard_mapping (xcb_connection_t *c /**< */,
+ uint8_t keycode_count /**< */,
+ xcb_keycode_t first_keycode /**< */,
+ uint8_t keysyms_per_keycode /**< */,
+ const xcb_keysym_t *keysyms /**< */);
+
+int
+xcb_get_keyboard_mapping_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_keyboard_mapping_cookie_t xcb_get_keyboard_mapping
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_keycode_t first_keycode
+ ** @param uint8_t count
+ ** @returns xcb_get_keyboard_mapping_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_keyboard_mapping_cookie_t
+xcb_get_keyboard_mapping (xcb_connection_t *c /**< */,
+ xcb_keycode_t first_keycode /**< */,
+ uint8_t count /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_keyboard_mapping_cookie_t xcb_get_keyboard_mapping_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_keycode_t first_keycode
+ ** @param uint8_t count
+ ** @returns xcb_get_keyboard_mapping_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_keyboard_mapping_cookie_t
+xcb_get_keyboard_mapping_unchecked (xcb_connection_t *c /**< */,
+ xcb_keycode_t first_keycode /**< */,
+ uint8_t count /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_keysym_t * xcb_get_keyboard_mapping_keysyms
+ **
+ ** @param const xcb_get_keyboard_mapping_reply_t *R
+ ** @returns xcb_keysym_t *
+ **
+ *****************************************************************************/
+
+xcb_keysym_t *
+xcb_get_keyboard_mapping_keysyms (const xcb_get_keyboard_mapping_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_get_keyboard_mapping_keysyms_length
+ **
+ ** @param const xcb_get_keyboard_mapping_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_get_keyboard_mapping_keysyms_length (const xcb_get_keyboard_mapping_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_get_keyboard_mapping_keysyms_end
+ **
+ ** @param const xcb_get_keyboard_mapping_reply_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_get_keyboard_mapping_keysyms_end (const xcb_get_keyboard_mapping_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_get_keyboard_mapping_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_keyboard_mapping_reply_t * xcb_get_keyboard_mapping_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_get_keyboard_mapping_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_get_keyboard_mapping_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_get_keyboard_mapping_reply_t *
+xcb_get_keyboard_mapping_reply (xcb_connection_t *c /**< */,
+ xcb_get_keyboard_mapping_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_change_keyboard_control_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_change_keyboard_control_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint32_t value_mask
+ ** @param const uint32_t *value_list
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_change_keyboard_control_checked (xcb_connection_t *c /**< */,
+ uint32_t value_mask /**< */,
+ const uint32_t *value_list /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_change_keyboard_control
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint32_t value_mask
+ ** @param const uint32_t *value_list
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_change_keyboard_control (xcb_connection_t *c /**< */,
+ uint32_t value_mask /**< */,
+ const uint32_t *value_list /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_keyboard_control_cookie_t xcb_get_keyboard_control
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_get_keyboard_control_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_keyboard_control_cookie_t
+xcb_get_keyboard_control (xcb_connection_t *c /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_keyboard_control_cookie_t xcb_get_keyboard_control_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_get_keyboard_control_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_keyboard_control_cookie_t
+xcb_get_keyboard_control_unchecked (xcb_connection_t *c /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_get_keyboard_control_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_keyboard_control_reply_t * xcb_get_keyboard_control_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_get_keyboard_control_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_get_keyboard_control_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_get_keyboard_control_reply_t *
+xcb_get_keyboard_control_reply (xcb_connection_t *c /**< */,
+ xcb_get_keyboard_control_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_bell_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param int8_t percent
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_bell_checked (xcb_connection_t *c /**< */,
+ int8_t percent /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_bell
+ **
+ ** @param xcb_connection_t *c
+ ** @param int8_t percent
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_bell (xcb_connection_t *c /**< */,
+ int8_t percent /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_change_pointer_control_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param int16_t acceleration_numerator
+ ** @param int16_t acceleration_denominator
+ ** @param int16_t threshold
+ ** @param uint8_t do_acceleration
+ ** @param uint8_t do_threshold
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_change_pointer_control_checked (xcb_connection_t *c /**< */,
+ int16_t acceleration_numerator /**< */,
+ int16_t acceleration_denominator /**< */,
+ int16_t threshold /**< */,
+ uint8_t do_acceleration /**< */,
+ uint8_t do_threshold /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_change_pointer_control
+ **
+ ** @param xcb_connection_t *c
+ ** @param int16_t acceleration_numerator
+ ** @param int16_t acceleration_denominator
+ ** @param int16_t threshold
+ ** @param uint8_t do_acceleration
+ ** @param uint8_t do_threshold
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_change_pointer_control (xcb_connection_t *c /**< */,
+ int16_t acceleration_numerator /**< */,
+ int16_t acceleration_denominator /**< */,
+ int16_t threshold /**< */,
+ uint8_t do_acceleration /**< */,
+ uint8_t do_threshold /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_pointer_control_cookie_t xcb_get_pointer_control
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_get_pointer_control_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_pointer_control_cookie_t
+xcb_get_pointer_control (xcb_connection_t *c /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_pointer_control_cookie_t xcb_get_pointer_control_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_get_pointer_control_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_pointer_control_cookie_t
+xcb_get_pointer_control_unchecked (xcb_connection_t *c /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_get_pointer_control_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_pointer_control_reply_t * xcb_get_pointer_control_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_get_pointer_control_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_get_pointer_control_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_get_pointer_control_reply_t *
+xcb_get_pointer_control_reply (xcb_connection_t *c /**< */,
+ xcb_get_pointer_control_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_set_screen_saver_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param int16_t timeout
+ ** @param int16_t interval
+ ** @param uint8_t prefer_blanking
+ ** @param uint8_t allow_exposures
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_set_screen_saver_checked (xcb_connection_t *c /**< */,
+ int16_t timeout /**< */,
+ int16_t interval /**< */,
+ uint8_t prefer_blanking /**< */,
+ uint8_t allow_exposures /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_set_screen_saver
+ **
+ ** @param xcb_connection_t *c
+ ** @param int16_t timeout
+ ** @param int16_t interval
+ ** @param uint8_t prefer_blanking
+ ** @param uint8_t allow_exposures
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_set_screen_saver (xcb_connection_t *c /**< */,
+ int16_t timeout /**< */,
+ int16_t interval /**< */,
+ uint8_t prefer_blanking /**< */,
+ uint8_t allow_exposures /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_screen_saver_cookie_t xcb_get_screen_saver
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_get_screen_saver_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_screen_saver_cookie_t
+xcb_get_screen_saver (xcb_connection_t *c /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_screen_saver_cookie_t xcb_get_screen_saver_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_get_screen_saver_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_screen_saver_cookie_t
+xcb_get_screen_saver_unchecked (xcb_connection_t *c /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_get_screen_saver_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_screen_saver_reply_t * xcb_get_screen_saver_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_get_screen_saver_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_get_screen_saver_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_get_screen_saver_reply_t *
+xcb_get_screen_saver_reply (xcb_connection_t *c /**< */,
+ xcb_get_screen_saver_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_change_hosts_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_change_hosts_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t mode
+ ** @param uint8_t family
+ ** @param uint16_t address_len
+ ** @param const uint8_t *address
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_change_hosts_checked (xcb_connection_t *c /**< */,
+ uint8_t mode /**< */,
+ uint8_t family /**< */,
+ uint16_t address_len /**< */,
+ const uint8_t *address /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_change_hosts
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t mode
+ ** @param uint8_t family
+ ** @param uint16_t address_len
+ ** @param const uint8_t *address
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_change_hosts (xcb_connection_t *c /**< */,
+ uint8_t mode /**< */,
+ uint8_t family /**< */,
+ uint16_t address_len /**< */,
+ const uint8_t *address /**< */);
+
+int
+xcb_host_sizeof (const void *_buffer /**< */);
+
+
+/*****************************************************************************
+ **
+ ** uint8_t * xcb_host_address
+ **
+ ** @param const xcb_host_t *R
+ ** @returns uint8_t *
+ **
+ *****************************************************************************/
+
+uint8_t *
+xcb_host_address (const xcb_host_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_host_address_length
+ **
+ ** @param const xcb_host_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_host_address_length (const xcb_host_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_host_address_end
+ **
+ ** @param const xcb_host_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_host_address_end (const xcb_host_t *R /**< */);
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_host_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_host_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_host_next
+ **
+ ** @param xcb_host_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_host_next (xcb_host_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_host_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_host_end
+ **
+ ** @param xcb_host_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_host_end (xcb_host_iterator_t i /**< */);
+
+int
+xcb_list_hosts_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_list_hosts_cookie_t xcb_list_hosts
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_list_hosts_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_list_hosts_cookie_t
+xcb_list_hosts (xcb_connection_t *c /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_list_hosts_cookie_t xcb_list_hosts_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_list_hosts_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_list_hosts_cookie_t
+xcb_list_hosts_unchecked (xcb_connection_t *c /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_list_hosts_hosts_length
+ **
+ ** @param const xcb_list_hosts_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_list_hosts_hosts_length (const xcb_list_hosts_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_host_iterator_t xcb_list_hosts_hosts_iterator
+ **
+ ** @param const xcb_list_hosts_reply_t *R
+ ** @returns xcb_host_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_host_iterator_t
+xcb_list_hosts_hosts_iterator (const xcb_list_hosts_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_list_hosts_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_list_hosts_reply_t * xcb_list_hosts_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_list_hosts_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_list_hosts_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_list_hosts_reply_t *
+xcb_list_hosts_reply (xcb_connection_t *c /**< */,
+ xcb_list_hosts_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_set_access_control_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t mode
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_set_access_control_checked (xcb_connection_t *c /**< */,
+ uint8_t mode /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_set_access_control
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t mode
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_set_access_control (xcb_connection_t *c /**< */,
+ uint8_t mode /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_set_close_down_mode_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t mode
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_set_close_down_mode_checked (xcb_connection_t *c /**< */,
+ uint8_t mode /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_set_close_down_mode
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t mode
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_set_close_down_mode (xcb_connection_t *c /**< */,
+ uint8_t mode /**< */);
+
+/**
+ * @brief kills a client
+ *
+ * @param c The connection
+ * @param resource Any resource belonging to the client (for example a Window), used to identify
+ * the client connection.
+ * \n
+ * The special value of `XCB_KILL_ALL_TEMPORARY`, the resources of all clients
+ * that have terminated in `RetainTemporary` (TODO) are destroyed.
+ * @return A cookie
+ *
+ * Forces a close down of the client that created the specified \a resource.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_kill_client_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint32_t resource
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_kill_client_checked (xcb_connection_t *c /**< */,
+ uint32_t resource /**< */);
+
+/**
+ * @brief kills a client
+ *
+ * @param c The connection
+ * @param resource Any resource belonging to the client (for example a Window), used to identify
+ * the client connection.
+ * \n
+ * The special value of `XCB_KILL_ALL_TEMPORARY`, the resources of all clients
+ * that have terminated in `RetainTemporary` (TODO) are destroyed.
+ * @return A cookie
+ *
+ * Forces a close down of the client that created the specified \a resource.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_kill_client
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint32_t resource
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_kill_client (xcb_connection_t *c /**< */,
+ uint32_t resource /**< */);
+
+int
+xcb_rotate_properties_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_rotate_properties_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @param uint16_t atoms_len
+ ** @param int16_t delta
+ ** @param const xcb_atom_t *atoms
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_rotate_properties_checked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */,
+ uint16_t atoms_len /**< */,
+ int16_t delta /**< */,
+ const xcb_atom_t *atoms /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_rotate_properties
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @param uint16_t atoms_len
+ ** @param int16_t delta
+ ** @param const xcb_atom_t *atoms
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_rotate_properties (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */,
+ uint16_t atoms_len /**< */,
+ int16_t delta /**< */,
+ const xcb_atom_t *atoms /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_force_screen_saver_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t mode
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_force_screen_saver_checked (xcb_connection_t *c /**< */,
+ uint8_t mode /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_force_screen_saver
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t mode
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_force_screen_saver (xcb_connection_t *c /**< */,
+ uint8_t mode /**< */);
+
+int
+xcb_set_pointer_mapping_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_set_pointer_mapping_cookie_t xcb_set_pointer_mapping
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t map_len
+ ** @param const uint8_t *map
+ ** @returns xcb_set_pointer_mapping_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_set_pointer_mapping_cookie_t
+xcb_set_pointer_mapping (xcb_connection_t *c /**< */,
+ uint8_t map_len /**< */,
+ const uint8_t *map /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_set_pointer_mapping_cookie_t xcb_set_pointer_mapping_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t map_len
+ ** @param const uint8_t *map
+ ** @returns xcb_set_pointer_mapping_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_set_pointer_mapping_cookie_t
+xcb_set_pointer_mapping_unchecked (xcb_connection_t *c /**< */,
+ uint8_t map_len /**< */,
+ const uint8_t *map /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_set_pointer_mapping_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_set_pointer_mapping_reply_t * xcb_set_pointer_mapping_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_set_pointer_mapping_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_set_pointer_mapping_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_set_pointer_mapping_reply_t *
+xcb_set_pointer_mapping_reply (xcb_connection_t *c /**< */,
+ xcb_set_pointer_mapping_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_get_pointer_mapping_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_pointer_mapping_cookie_t xcb_get_pointer_mapping
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_get_pointer_mapping_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_pointer_mapping_cookie_t
+xcb_get_pointer_mapping (xcb_connection_t *c /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_pointer_mapping_cookie_t xcb_get_pointer_mapping_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_get_pointer_mapping_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_pointer_mapping_cookie_t
+xcb_get_pointer_mapping_unchecked (xcb_connection_t *c /**< */);
+
+
+/*****************************************************************************
+ **
+ ** uint8_t * xcb_get_pointer_mapping_map
+ **
+ ** @param const xcb_get_pointer_mapping_reply_t *R
+ ** @returns uint8_t *
+ **
+ *****************************************************************************/
+
+uint8_t *
+xcb_get_pointer_mapping_map (const xcb_get_pointer_mapping_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_get_pointer_mapping_map_length
+ **
+ ** @param const xcb_get_pointer_mapping_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_get_pointer_mapping_map_length (const xcb_get_pointer_mapping_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_get_pointer_mapping_map_end
+ **
+ ** @param const xcb_get_pointer_mapping_reply_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_get_pointer_mapping_map_end (const xcb_get_pointer_mapping_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_get_pointer_mapping_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_pointer_mapping_reply_t * xcb_get_pointer_mapping_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_get_pointer_mapping_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_get_pointer_mapping_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_get_pointer_mapping_reply_t *
+xcb_get_pointer_mapping_reply (xcb_connection_t *c /**< */,
+ xcb_get_pointer_mapping_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_set_modifier_mapping_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_set_modifier_mapping_cookie_t xcb_set_modifier_mapping
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t keycodes_per_modifier
+ ** @param const xcb_keycode_t *keycodes
+ ** @returns xcb_set_modifier_mapping_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_set_modifier_mapping_cookie_t
+xcb_set_modifier_mapping (xcb_connection_t *c /**< */,
+ uint8_t keycodes_per_modifier /**< */,
+ const xcb_keycode_t *keycodes /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_set_modifier_mapping_cookie_t xcb_set_modifier_mapping_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t keycodes_per_modifier
+ ** @param const xcb_keycode_t *keycodes
+ ** @returns xcb_set_modifier_mapping_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_set_modifier_mapping_cookie_t
+xcb_set_modifier_mapping_unchecked (xcb_connection_t *c /**< */,
+ uint8_t keycodes_per_modifier /**< */,
+ const xcb_keycode_t *keycodes /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_set_modifier_mapping_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_set_modifier_mapping_reply_t * xcb_set_modifier_mapping_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_set_modifier_mapping_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_set_modifier_mapping_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_set_modifier_mapping_reply_t *
+xcb_set_modifier_mapping_reply (xcb_connection_t *c /**< */,
+ xcb_set_modifier_mapping_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+int
+xcb_get_modifier_mapping_sizeof (const void *_buffer /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_modifier_mapping_cookie_t xcb_get_modifier_mapping
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_get_modifier_mapping_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_modifier_mapping_cookie_t
+xcb_get_modifier_mapping (xcb_connection_t *c /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_modifier_mapping_cookie_t xcb_get_modifier_mapping_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_get_modifier_mapping_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_get_modifier_mapping_cookie_t
+xcb_get_modifier_mapping_unchecked (xcb_connection_t *c /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_keycode_t * xcb_get_modifier_mapping_keycodes
+ **
+ ** @param const xcb_get_modifier_mapping_reply_t *R
+ ** @returns xcb_keycode_t *
+ **
+ *****************************************************************************/
+
+xcb_keycode_t *
+xcb_get_modifier_mapping_keycodes (const xcb_get_modifier_mapping_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_get_modifier_mapping_keycodes_length
+ **
+ ** @param const xcb_get_modifier_mapping_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_get_modifier_mapping_keycodes_length (const xcb_get_modifier_mapping_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_get_modifier_mapping_keycodes_end
+ **
+ ** @param const xcb_get_modifier_mapping_reply_t *R
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_get_modifier_mapping_keycodes_end (const xcb_get_modifier_mapping_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_get_modifier_mapping_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_get_modifier_mapping_reply_t * xcb_get_modifier_mapping_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_get_modifier_mapping_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_get_modifier_mapping_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_get_modifier_mapping_reply_t *
+xcb_get_modifier_mapping_reply (xcb_connection_t *c /**< */,
+ xcb_get_modifier_mapping_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will not cause
+ * a reply to be generated. Any returned error will be
+ * saved for handling by xcb_request_check().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_no_operation_checked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_no_operation_checked (xcb_connection_t *c /**< */);
+
+/**
+ *
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_void_cookie_t xcb_no_operation
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_void_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_void_cookie_t
+xcb_no_operation (xcb_connection_t *c /**< */);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/**
+ * @}
+ */
diff --git a/libX11/cpprules.mak b/libX11/cpprules.mak
new file mode 100644
index 000000000..9f485ac0d
--- /dev/null
+++ b/libX11/cpprules.mak
@@ -0,0 +1,19 @@
+
+ifdef x11thislocaledir
+
+$(x11thislocaledir)\%: %.pre
+ cl /nologo /EP $< -DXCOMM\#\# > $@
+
+$(x11thislocaledir):
+ $(CREATEDIR)
+
+all: $(x11thislocaledir)
+endif
+
+$(eval $(locales:%=$(X11_LOCALEDATADIR)\%\XLC_LOCALE : %\XLC_LOCALE.pre$n cl /nologo /EP $$< -DXCOMM\#\# > $$@$n))
+
+$(eval $(locales:%=$(X11_LOCALEDATADIR)\%\Compose : %\Compose.pre$n cl /nologo /EP $$< -DXCOMM\#\# > $$@$n))
+
+$(eval $(locales:%=$(X11_LOCALEDATADIR)\%\XI18N_OBJS : $(X11_LOCALEDATADIR)\% %\XI18N_OBJS$n copy %\XI18N_OBJS $$@$n))
+
+$(eval $(locales:%=$(X11_LOCALEDATADIR)\% :$n mkdir $$@$n ))
diff --git a/libX11/include/X11/Xlib.h b/libX11/include/X11/Xlib.h
index 65f253cd4..f29976354 100644
--- a/libX11/include/X11/Xlib.h
+++ b/libX11/include/X11/Xlib.h
@@ -91,8 +91,8 @@ _Xmblen(
typedef char *XPointer;
-#define Bool int
-#define Status int
+typedef int Bool;
+typedef int Status;
#define True 1
#define False 0
diff --git a/libX11/include/X11/Xlibint.h b/libX11/include/X11/Xlibint.h
index 443155964..e7d2487cf 100644
--- a/libX11/include/X11/Xlibint.h
+++ b/libX11/include/X11/Xlibint.h
@@ -273,29 +273,32 @@ struct _XLockPtrs {
);
};
-#if defined(WIN32) && !defined(_XLIBINT_)
-#define _XCreateMutex_fn (*_XCreateMutex_fn_p)
-#define _XFreeMutex_fn (*_XFreeMutex_fn_p)
-#define _XLockMutex_fn (*_XLockMutex_fn_p)
-#define _XUnlockMutex_fn (*_XUnlockMutex_fn_p)
-#define _Xglobal_lock (*_Xglobal_lock_p)
+#ifdef WIN32
+#ifdef LIB11_DLL
+#define X11_EXTERN __declspec(dllexport) extern
+#else
+#define X11_EXTERN __declspec(dllimport) extern
#endif
+#else
+#define X11_EXTERN extern
+#endif
+
/* in XlibInt.c */
-extern void (*_XCreateMutex_fn)(
+X11_EXTERN void (*_XCreateMutex_fn)(
LockInfoPtr /* lock */
);
-extern void (*_XFreeMutex_fn)(
+X11_EXTERN void (*_XFreeMutex_fn)(
LockInfoPtr /* lock */
);
-extern void (*_XLockMutex_fn)(
+X11_EXTERN void (*_XLockMutex_fn)(
LockInfoPtr /* lock */
#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
, char * /* file */
, int /* line */
#endif
);
-extern void (*_XUnlockMutex_fn)(
+X11_EXTERN void (*_XUnlockMutex_fn)(
LockInfoPtr /* lock */
#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
, char * /* file */
@@ -303,7 +306,7 @@ extern void (*_XUnlockMutex_fn)(
#endif
);
-extern LockInfoPtr _Xglobal_lock;
+X11_EXTERN LockInfoPtr _Xglobal_lock;
#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
#define LockDisplay(d) if ((d)->lock_fns) (*(d)->lock_fns->lock_display)((d),__FILE__,__LINE__)
@@ -826,10 +829,10 @@ extern int _XError(
extern int _XIOError(
Display* /* dpy */
) _X_NORETURN;
-extern int (*_XIOErrorFunction)(
+X11_EXTERN int (*_XIOErrorFunction)(
Display* /* dpy */
);
-extern int (*_XErrorFunction)(
+X11_EXTERN int (*_XErrorFunction)(
Display* /* dpy */,
XErrorEvent* /* error_event */
);
diff --git a/libX11/include/X11/Xregion.h b/libX11/include/X11/Xregion.h
index cf10f86df..70caa1a03 100644
--- a/libX11/include/X11/Xregion.h
+++ b/libX11/include/X11/Xregion.h
@@ -58,8 +58,10 @@ typedef struct {
#define TRUE 1
#define FALSE 0
+#ifndef MAXSHORT
#define MAXSHORT 32767
#define MINSHORT -MAXSHORT
+#endif
#ifndef MAX
#define MAX(a,b) (((a) > (b)) ? (a) : (b))
#endif
diff --git a/libX11/libX11.def b/libX11/libX11.def
new file mode 100644
index 000000000..9d2977e93
--- /dev/null
+++ b/libX11/libX11.def
@@ -0,0 +1,360 @@
+LIBRARY libX11
+EXPORTS
+ _XAllocScratch
+ _XAllocTemp
+ _XDeqAsyncHandler
+ _XEatData
+ _XEatDataWords
+ _XFlushGCCache
+ _XFlushIt
+ _XFreeTemp
+ _XGetAsyncReply
+ _XGetBitsPerPixel
+ _XGetRequest
+ _XGetScanlinePad
+ _Xglobal_lock
+ _Xglobal_lock_p
+ _XInitImageFuncPtrs
+ _XIOError
+ _XLockMutex_fn
+ _XLockMutex_fn_p
+ _XRead
+ _XReadPad
+ _XReply
+ _XSend
+ _XSetLastRequestRead
+ _Xsetlocale
+ _XUnlockMutex_fn
+ _XUnlockMutex_fn_p
+ _XVIDtoVisual
+ XAddConnectionWatch
+ XAddExtension
+ XAddHost
+ XAllocColor
+ XAllocColorCells
+ XAllocIconSize
+ XAllocNamedColor
+ XAllocSizeHints
+ XAllocStandardColormap
+ XBell
+ XChangeGC
+ XChangeProperty
+ XChangeWindowAttributes
+ XCheckIfEvent
+ XClearArea
+ XClipBox
+ XCloseDisplay
+ XCloseIM
+ XConfigureWindow
+ XConvertCase
+ XConvertSelection
+ XCopyArea
+ XCopyPlane
+ XCreateBitmapFromData
+ XCreateColormap
+ XCreateFontCursor
+ XCreateFontSet
+ XCreateGC
+ XCreateGlyphCursor
+ XCreateIC
+ XCreateImage
+ XCreatePixmap
+ XCreatePixmapCursor
+ XCreatePixmapFromBitmapData
+ XCreateRegion
+ XCreateSimpleWindow
+ XCreateWindow
+ XDefaultColormap
+ XDefaultDepth
+ XDefaultScreen
+ XDefaultVisual
+ XDefineCursor
+ XDeleteContext
+ XDeleteProperty
+ XDestroyIC
+ XDestroyRegion
+ XDestroyWindow
+ XDisableAccessControl
+ XDisplayKeycodes
+ XDisplayName
+ XDisplayOfIM
+ XDisplayOfScreen
+ XDisplayString
+ XDrawArc
+ XDrawArcs
+ XDrawImageString
+ XDrawLine
+ XDrawLines
+ XDrawPoint
+ XDrawPoints
+ XDrawRectangle
+ XDrawSegments
+ XDrawString
+ XDrawString16
+ XEmptyRegion
+ XEnableAccessControl
+ XEqualRegion
+ XESetCloseDisplay
+ XESetCopyGC
+ XESetCreateFont
+ XESetCreateGC
+ XESetError
+ XESetErrorString
+ XESetEventToWire
+ XESetFlushGC
+ XESetFreeFont
+ XESetFreeGC
+ XESetWireToEvent
+ XEventsQueued
+ XExtentsOfFontSet
+ XFetchBuffer
+ XFetchName
+ XFillArc
+ XFillArcs
+ XFillPolygon
+ XFillRectangle
+ XFillRectangles
+ XFilterEvent
+ XFindContext
+ XFlush
+ XFontsOfFontSet
+ XFree
+ XFreeColormap
+ XFreeColors
+ XFreeCursor
+ XFreeExtensionList
+ XFreeFont
+ XFreeFontSet
+ XFreeGC
+ XFreeModifiermap
+ XFreePixmap
+ XFreeStringList
+ XGContextFromGC
+ XGetAtomName
+ XGetClassHint
+ XGetDefault
+ XGetErrorDatabaseText
+ XGetErrorText
+ XGetFontProperty
+ XGetGCValues
+ XGetGeometry
+ XGetICValues
+ XGetImage
+ XGetIMValues
+ XGetInputFocus
+ XGetKeyboardMapping
+ XGetModifierMapping
+ XGetRGBColormaps
+ XGetSelectionOwner
+ XGetVisualInfo
+ XGetWindowAttributes
+ XGetWindowProperty
+ XGetWMHints
+ XGetWMName
+ XGetWMNormalHints
+ XGetWMProtocols
+ XGrabButton
+ XGrabKey
+ XGrabKeyboard
+ XGrabPointer
+ XGrabServer
+ XIconifyWindow
+ XIfEvent
+ XInitExtension
+ XInitThreads
+ XInternAtom
+ XInternAtoms
+ XIntersectRegion
+ XkbAddGeomColor
+ XkbAddGeomDoodad
+ XkbAddGeomKey
+ XkbAddGeomOutline
+ XkbAddGeomOverlay
+ XkbAddGeomOverlayRow
+ XkbAddGeomProperty
+ XkbAddGeomRow
+ XkbAddGeomSection
+ XkbAddGeomShape
+ XkbAllocClientMap
+ XkbAllocCompatMap
+ XkbAllocControls
+ XkbAllocGeometry
+ XkbAllocGeomKeyAliases
+ XkbAllocIndicatorMaps
+ XkbAllocKeyboard
+ XkbAllocNames
+ XkbAllocServerMap
+ XkbBell
+ XkbBellEvent
+ XkbComputeEffectiveMap
+ XkbComputeSectionBounds
+ XkbComputeShapeBounds
+ XkbGetCompatMap
+ XkbGetControls
+ XkbGetGeometry
+ XkbGetIndicatorMap
+ XkbGetMap
+ XkbGetNames
+ XkbGetUpdatedMap
+ XkbInitCanonicalKeyTypes
+ XkbLibraryVersion
+ XkbLookupKeySym
+ XkbOpenDisplay
+ XkbResizeKeyActions
+ XkbResizeKeySyms
+ XkbSetCompatMap
+ XkbSetGeometry
+ XkbSetIndicatorMap
+ XkbSetMap
+ XkbSetNames
+ XkbVirtualModsToReal
+ XKeysymToString
+ XKillClient
+ XListDepths
+ XListExtensions
+ XListHosts
+ XListPixmapFormats
+ XLoadFont
+ XLoadQueryFont
+ XLookupColor
+ XLookupString
+ XLowerWindow
+ XMapRaised
+ XMapSubwindows
+ XMapWindow
+ XMatchVisualInfo
+ XMaxRequestSize
+ XmbDrawImageString
+ XmbDrawString
+ XmbLookupString
+ XmbTextEscapement
+ XmbTextListToTextProperty
+ XmbTextPropertyToTextList
+ XMoveResizeWindow
+ XNextEvent
+ XNextRequest
+ XOpenDisplay
+ XOpenIM
+ XParseColor
+ XPeekEvent
+ XPeekIfEvent
+ XPending
+ XProcessInternalConnection
+ XPutBackEvent
+ XPutImage
+ XQueryColor
+ XQueryColors
+ XQueryExtension
+ XQueryFont
+ XQueryPointer
+ XQueryTree
+ XRaiseWindow
+ XReadBitmapFileData
+ XRecolorCursor
+ XRectInRegion
+ XRefreshKeyboardMapping
+ XRemoveHost
+ XResourceManagerString
+ XrmCombineDatabase
+ XrmCombineFileDatabase
+ XrmDestroyDatabase
+ XrmEnumerateDatabase
+ XrmGetDatabase
+ XrmGetFileDatabase
+ XrmGetResource
+ XrmGetStringDatabase
+ XrmInitialize
+ XrmMergeDatabases
+ XrmParseCommand
+ XrmPermStringToQuark
+ XrmPutLineResource
+ XrmPutStringResource
+ XrmQGetResource
+ XrmQGetSearchList
+ XrmQGetSearchResource
+ XrmQPutResource
+ XrmQuarkToString
+ XrmSetDatabase
+ XrmStringToBindingQuarkList
+ XrmStringToQuark
+ XrmUniqueQuark
+ XRotateBuffers
+ XSaveContext
+ XScreenNumberOfScreen
+ XScreenResourceString
+ XSelectInput
+ XSendEvent
+ XSetArcMode
+ XSetAuthorization
+ XSetBackground
+ XSetClipMask
+ XSetClipOrigin
+ XSetClipRectangles
+ XSetCloseDownMode
+ XSetCommand
+ XSetDashes
+ XSetErrorHandler
+ XSetFillRule
+ XSetFillStyle
+ XSetFont
+ XSetForeground
+ XSetFunction
+ XSetGraphicsExposures
+ XSetICFocus
+ XSetIconSizes
+ XSetICValues
+ XSetInputFocus
+ XSetIOErrorHandler
+ XSetLocaleModifiers
+ XSetPlaneMask
+ XSetRegion
+ XSetRGBColormaps
+ XSetSelectionOwner
+ XSetStipple
+ XSetSubwindowMode
+ XSetTile
+ XSetTransientForHint
+ XSetTSOrigin
+ XSetWindowBorder
+ XSetWindowBorderPixmap
+ XSetWindowBorderWidth
+ XSetWMHints
+ XSetWMIconName
+ XSetWMName
+ XSetWMNormalHints
+ XSetWMProperties
+ XSetWMProtocols
+ XStoreColors
+ XStoreName
+ XStringToKeysym
+ XSubtractRegion
+ XSupportsLocale
+ XSync
+ XSynchronize
+ XTextWidth
+ XTextWidth16
+ XTranslateCoordinates
+ XUndefineCursor
+ XUngrabButton
+ XUngrabKey
+ XUngrabKeyboard
+ XUngrabPointer
+ XUngrabServer
+ XUnionRectWithRegion
+ XUnionRegion
+ XUnloadFont
+ XUnmapWindow
+ XUnsetICFocus
+ Xutf8TextListToTextProperty
+ Xutf8TextPropertyToTextList
+ XVaCreateNestedList
+ XVisualIDFromVisual
+ XwcDrawImageString
+ XwcDrawString
+ XwcFreeStringList
+ XwcLookupString
+ XwcTextEscapement
+ XwcTextListToTextProperty
+ XwcTextPropertyToTextList
+ XWithdrawWindow
+ XWMGeometry \ No newline at end of file
diff --git a/libX11/makefile b/libX11/makefile
new file mode 100644
index 000000000..e393965e8
--- /dev/null
+++ b/libX11/makefile
@@ -0,0 +1,25 @@
+SHAREDLIB=libX11
+
+INCLUDELIBFILES = \
+ modules\im\ximcp\$(OBJDIR)\libximcp.lib \
+ src\xlibi18n\$(OBJDIR)\libi18n.lib \
+ src\$(OBJDIR)\libx11.lib \
+ src\xcms\$(OBJDIR)\libxcms.lib \
+ src\xkb\$(OBJDIR)\libxkb.lib \
+ modules\om\generic\$(OBJDIR)\libxomGeneric.lib \
+ modules\lc\utf8\$(OBJDIR)\libxlcUTF8Load.lib \
+ modules\lc\def\$(OBJDIR)\libxlcDef.lib \
+ modules\lc\gen\$(OBJDIR)\liblcGenConvLoad.lib \
+ modules\lc\xlocale\$(OBJDIR)\libxlocale.lib \
+ $(MHMAKECONF)\libXau\$(OBJDIR)\libXau.lib \
+ $(MHMAKECONF)\libxcb\src\$(OBJDIR)\libxcb.lib
+
+LIBDIRS=$(dir $(INCLUDELIBFILES))
+
+load_makefile $(LIBDIRS:%$(OBJDIR)\=%makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+LINKLIBS += $(PTHREADLIB)
+
+load_makefile nls\makefile MAKESERVER=0 DEBUG=0
+
+$(OBJDIR)\libX11.lib : $(OBJDIR) nls\all
diff --git a/libX11/modules/im/ximcp/imInt.c b/libX11/modules/im/ximcp/imInt.c
index ee9f45122..aceb5fdf7 100644
--- a/libX11/modules/im/ximcp/imInt.c
+++ b/libX11/modules/im/ximcp/imInt.c
@@ -29,6 +29,7 @@ PERFORMANCE OF THIS SOFTWARE.
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
+#include <unistd.h>
#include <X11/Xatom.h>
#include <X11/Xlib.h>
#include <X11/Xmd.h>
diff --git a/libX11/modules/im/ximcp/imLcLkup.c b/libX11/modules/im/ximcp/imLcLkup.c
index 9e4aec319..c15346746 100644
--- a/libX11/modules/im/ximcp/imLcLkup.c
+++ b/libX11/modules/im/ximcp/imLcLkup.c
@@ -61,7 +61,7 @@ _XimLocalMbLookupString(XIC xic, XKeyEvent *ev, char *buffer, int bytes,
||(ic->private.local.brl_committed != 0))) {
if (ic->private.local.brl_committed != 0) { /* Braille Event */
unsigned char pattern = ic->private.local.brl_committed;
- char mb[XLC_PUBLIC(ic->core.im->core.lcd, mb_cur_max)];
+ char *mb=alloca(XLC_PUBLIC(ic->core.im->core.lcd, mb_cur_max));
ret = _Xlcwctomb(ic->core.im->core.lcd, mb, BRL_UC_ROW | pattern);
if(ret > bytes) {
if(status) *status = XBufferOverflow;
diff --git a/libX11/modules/im/ximcp/imRm.c b/libX11/modules/im/ximcp/imRm.c
index cb9e1b2c5..3e51ceb17 100644
--- a/libX11/modules/im/ximcp/imRm.c
+++ b/libX11/modules/im/ximcp/imRm.c
@@ -34,6 +34,7 @@ PERFORMANCE OF THIS SOFTWARE.
#include <config.h>
#endif
#include <stdio.h>
+#include <unistd.h>
#include <X11/Xlib.h>
#include "Xlibint.h"
#include "Xlcint.h"
diff --git a/libX11/modules/im/ximcp/imTrans.c b/libX11/modules/im/ximcp/imTrans.c
index ae644ab61..5bbd86365 100644
--- a/libX11/modules/im/ximcp/imTrans.c
+++ b/libX11/modules/im/ximcp/imTrans.c
@@ -53,9 +53,11 @@ PERFORMANCE OF THIS SOFTWARE.
#include <config.h>
#endif
#include <stdio.h>
+#include <unistd.h>
#include <X11/Xatom.h>
#include <X11/Xmd.h>
#include "Xlibint.h"
+#include <X11/Xwindows.h>
#include <X11/Xtrans/Xtrans.h>
#include "Xlcint.h"
#include "Ximint.h"
diff --git a/libX11/modules/im/ximcp/makefile b/libX11/modules/im/ximcp/makefile
new file mode 100644
index 000000000..3e7997cad
--- /dev/null
+++ b/libX11/modules/im/ximcp/makefile
@@ -0,0 +1,36 @@
+DEFINES += XIM_t TRANS_CLIENT
+
+LIBRARY=libximcp
+
+DEFINES += LIB11_DLL
+
+CSRCS = \
+ imCallbk.c \
+ imDefFlt.c \
+ imDefIc.c \
+ imDefIm.c \
+ imDefLkup.c \
+ imDispch.c \
+ imEvToWire.c \
+ imExten.c \
+ imImSw.c \
+ imInsClbk.c \
+ imInt.c \
+ imLcFlt.c \
+ imLcGIc.c \
+ imLcIc.c \
+ imLcIm.c \
+ imLcLkup.c \
+ imLcPrs.c \
+ imLcSIc.c \
+ imRmAttr.c \
+ imRm.c \
+ imThaiFlt.c \
+ imThaiIc.c \
+ imThaiIm.c \
+ imTrans.c \
+ imTransR.c \
+ imTrX.c
+
+INCLUDES += ..\..\..\include\X11 ..\..\..\src\xlibi18n ..\..\..\src
+
diff --git a/libX11/modules/lc/Utf8/makefile b/libX11/modules/lc/Utf8/makefile
new file mode 100644
index 000000000..1dd942816
--- /dev/null
+++ b/libX11/modules/lc/Utf8/makefile
@@ -0,0 +1,8 @@
+LIBRARY = libxlcUTF8Load
+
+DEFINES += LIB11_DLL
+
+CSRCS=lcUTF8Load.c
+
+INCLUDES += ..\..\..\include\X11 ..\..\..\src\xlibi18n ..\..\..\src
+
diff --git a/libX11/modules/lc/def/makefile b/libX11/modules/lc/def/makefile
new file mode 100644
index 000000000..10a2f3521
--- /dev/null
+++ b/libX11/modules/lc/def/makefile
@@ -0,0 +1,7 @@
+LIBRARY = libxlcDef
+CSRCS = lcDefConv.c
+
+DEFINES += LIB11_DLL
+
+INCLUDES += ..\..\..\include\X11 ..\..\..\src\xlibi18n ..\..\..\src
+
diff --git a/libX11/modules/lc/gen/makefile b/libX11/modules/lc/gen/makefile
new file mode 100644
index 000000000..a06a39b01
--- /dev/null
+++ b/libX11/modules/lc/gen/makefile
@@ -0,0 +1,8 @@
+LIBRARY = liblcGenConvLoad
+
+DEFINES += LIB11_DLL
+
+CSRCS=lcGenConv.c
+
+INCLUDES += ..\..\..\include\X11 ..\..\..\src\xlibi18n ..\..\..\src
+
diff --git a/libX11/modules/lc/xlocale/makefile b/libX11/modules/lc/xlocale/makefile
new file mode 100644
index 000000000..42ca76b86
--- /dev/null
+++ b/libX11/modules/lc/xlocale/makefile
@@ -0,0 +1,10 @@
+LIBRARY = libxlocale
+
+DEFINES += LIB11_DLL
+
+CSRCS = \
+ lcEuc.c \
+ lcJis.c \
+ lcSjis.c
+
+INCLUDES += ..\..\..\include ..\..\..\include\X11 ..\..\..\src\xlibi18n ..\..\..\src\xkb ..\..\..\src\xcms ..\..\..\src
diff --git a/libX11/modules/om/generic/makefile b/libX11/modules/om/generic/makefile
new file mode 100644
index 000000000..14e7a8119
--- /dev/null
+++ b/libX11/modules/om/generic/makefile
@@ -0,0 +1,17 @@
+LIBRARY = libxomGeneric
+
+DEFINES += LIB11_DLL
+
+CSRCS = \
+ omDefault.c \
+ omGeneric.c \
+ omImText.c \
+ omText.c \
+ omTextEsc.c \
+ omTextExt.c \
+ omTextPer.c \
+ omXChar.c
+
+INCLUDES += ..\..\..\include\X11 ..\..\..\src\xlibi18n ..\..\..\src ..\..\..\src\xlibi18n
+
+
diff --git a/libX11/modules/om/generic/omGeneric.c b/libX11/modules/om/generic/omGeneric.c
index 7122bb762..e263d595e 100644
--- a/libX11/modules/om/generic/omGeneric.c
+++ b/libX11/modules/om/generic/omGeneric.c
@@ -56,6 +56,7 @@
#include <X11/Xos.h>
#include <X11/Xatom.h>
#include <stdio.h>
+#include <unistd.h>
#include <string.h>
#include <ctype.h>
diff --git a/libX11/nls/makefile b/libX11/nls/makefile
new file mode 100644
index 000000000..18cbe1c82
--- /dev/null
+++ b/libX11/nls/makefile
@@ -0,0 +1,38 @@
+X11_LOCALEDATADIR = ..\..\xorg-server\locale
+
+x11localedir = $(X11_LOCALEDATADIR)
+x11locale_DATA = locale.alias locale.dir compose.dir
+
+# Copied from ../configure.ac
+locales = \
+ am_ET.UTF-8 armscii-8 C el_GR.UTF-8 en_US.UTF-8 fi_FI.UTF-8 \
+ georgian-academy georgian-ps ibm-cp1133 iscii-dev isiri-3342 \
+ iso8859-1 iso8859-10 iso8859-11 iso8859-13 iso8859-14 iso8859-15 \
+ iso8859-2 iso8859-3 iso8859-4 iso8859-5 iso8859-6 iso8859-7 \
+ iso8859-8 iso8859-9 iso8859-9e ja ja.JIS ja_JP.UTF-8\
+ ja.SJIS ko koi8-c koi8-r \
+ koi8-u ko_KR.UTF-8 microsoft-cp1251 microsoft-cp1255 \
+ microsoft-cp1256 mulelao-1 nokhchi-1 pt_BR.UTF-8 ru_RU.UTF-8 \
+ tatar-cyr th_TH th_TH.UTF-8 tscii-0 vi_VN.tcvn vi_VN.viscii \
+ zh_CN zh_CN.gb18030 zh_CN.gbk zh_CN.UTF-8 zh_HK.big5 \
+ zh_HK.big5hkscs zh_HK.UTF-8 zh_TW zh_TW.big5 zh_TW.UTF-8
+
+include ../cpprules.mak
+
+
+$(X11_LOCALEDATADIR)\%: %.pre
+ cl /nologo /EP $< -DXCOMM\#\# > $<.l1
+ sed -e "/^[^\#][^ ]*:/s/://" -e "/^[^\#].*[ ].*:/d" < $<.l1 > $<.l2
+ type $<.l2 $<.l1 > $@
+ del $<.l1
+ del $<.l2
+
+# Per-locale data files
+
+nobase_dist_x11locale_DATA = $(locales:%=%\XI18N_OBJS)
+
+nobase_x11locale_DATA = $(locales:%=%\XLC_LOCALE) $(locales:%=%\Compose)
+
+all_DATA = $(nobase_dist_x11locale_DATA) $(nobase_x11locale_DATA) $(x11locale_DATA)
+
+all: $(all_DATA:%=$(X11_LOCALEDATADIR)\%)
diff --git a/libX11/src/ConvSel.c b/libX11/src/ConvSel.c
index fb6e8e338..2dece58b5 100644
--- a/libX11/src/ConvSel.c
+++ b/libX11/src/ConvSel.c
@@ -49,5 +49,5 @@ XConvertSelection(
req->time = time;
UnlockDisplay(dpy);
SyncHandle();
- return 1;
+ return Success;
}
diff --git a/libX11/src/CrBFData.c b/libX11/src/CrBFData.c
index 6708a9b91..b5c4c30b6 100644
--- a/libX11/src/CrBFData.c
+++ b/libX11/src/CrBFData.c
@@ -60,18 +60,18 @@ Pixmap XCreateBitmapFromData(
return (Pixmap) None;
} else {
XImage ximage = {
- .height = height,
- .width = width,
- .depth = 1,
- .bits_per_pixel = 1,
- .xoffset = 0,
- .format = XYPixmap,
- .data = (char *) data,
- .byte_order = LSBFirst,
- .bitmap_unit = 8,
- .bitmap_bit_order = LSBFirst,
- .bitmap_pad = 8,
- .bytes_per_line = (width + 7) / 8,
+ /*.width =*/ width,
+ /*.height =*/ height,
+ /*.xoffset =*/ 0,
+ /*.format =*/ XYPixmap,
+ /*.data =*/ (char *) data,
+ /*.byte_order =*/ LSBFirst,
+ /*.bitmap_unit =*/ 8,
+ /*.bitmap_bit_order =*/ LSBFirst,
+ /*.bitmap_pad =*/ 8,
+ /*.depth =*/ 1,
+ /*.bytes_per_line =*/ (width + 7) / 8,
+ /*.bits_per_pixel =*/ 1
};
XPutImage(display, pix, gc, &ximage, 0, 0, 0, 0, width, height);
XFreeGC(display, gc);
diff --git a/libX11/src/CrGlCur.c b/libX11/src/CrGlCur.c
index 460660f81..510ff5d75 100644
--- a/libX11/src/CrGlCur.c
+++ b/libX11/src/CrGlCur.c
@@ -51,8 +51,14 @@ in this Software without prior written authorization from The Open Group.
#if defined(hpux)
typedef shl_t XModuleType;
#else
+#ifdef _MSC_VER
+#include <X11/XWindows.h>
+typedef HANDLE XModuleType;
+#define dlsym GetProcAddress
+#else
typedef void *XModuleType;
#endif
+#endif
#ifndef LIBXCURSOR
#define LIBXCURSOR "libXcursor.so.1"
@@ -71,8 +77,12 @@ open_library (void)
#if defined(hpux)
module = shl_load(library, BIND_DEFERRED, 0L);
#else
+#ifdef _MSC_VER
+ module = LoadLibrary(library);
+#else
module = dlopen(library, RTLD_LAZY);
#endif
+#endif
if (module)
return module;
dot = strrchr (library, '.');
diff --git a/libX11/src/CrPFBData.c b/libX11/src/CrPFBData.c
index 17d551bb7..a736b9b84 100644
--- a/libX11/src/CrPFBData.c
+++ b/libX11/src/CrPFBData.c
@@ -60,8 +60,10 @@ Pixmap XCreatePixmapFromBitmapData(
{
Pixmap pix = XCreatePixmap(display, d, width, height, depth);
XGCValues gcv = {
- .foreground = fg,
- .background = bg
+ /*.function =*/ 0,
+ /*.plane_mask =*/ 0,
+ /*.foreground =*/ fg,
+ /*.background =*/ bg
};
GC gc = XCreateGC(display, pix, GCForeground|GCBackground, &gcv);
if (gc == NULL) {
@@ -69,18 +71,18 @@ Pixmap XCreatePixmapFromBitmapData(
return (Pixmap) None;
} else {
XImage ximage = {
- .height = height,
- .width = width,
- .depth = 1,
- .bits_per_pixel = 1,
- .xoffset = 0,
- .format = XYBitmap,
- .data = data,
- .byte_order = LSBFirst,
- .bitmap_unit = 8,
- .bitmap_bit_order = LSBFirst,
- .bitmap_pad = 8,
- .bytes_per_line = (width + 7) / 8
+ /*.width =*/ width,
+ /*.height =*/ height,
+ /*.xoffset =*/ 0,
+ /*.format =*/ XYBitmap,
+ /*.data =*/ data,
+ /*.byte_order =*/ LSBFirst,
+ /*.bitmap_unit =*/ 8,
+ /*.bitmap_bit_order =*/ LSBFirst,
+ /*.bitmap_pad =*/ 8,
+ /*.depth =*/ 1,
+ /*.bytes_per_line =*/ (width + 7) / 8,
+ /*.bits_per_pixel =*/ 1
};
XPutImage(display, pix, gc, &ximage, 0, 0, 0, 0, width, height);
XFreeGC(display, gc);
diff --git a/libX11/src/CrWindow.c b/libX11/src/CrWindow.c
index 7b5460186..84101ff9b 100644
--- a/libX11/src/CrWindow.c
+++ b/libX11/src/CrWindow.c
@@ -29,6 +29,10 @@ in this Software without prior written authorization from The Open Group.
#endif
#include "Xlibint.h"
+#ifdef _MSC_VER
+#undef CreateWindow
+#endif
+
Window XCreateSimpleWindow(
register Display *dpy,
Window parent,
diff --git a/libX11/src/ErrDes.c b/libX11/src/ErrDes.c
index ef5edad6c..f5f610fac 100644
--- a/libX11/src/ErrDes.c
+++ b/libX11/src/ErrDes.c
@@ -55,6 +55,7 @@ SOFTWARE.
#include <X11/Xos.h>
#include "Xresource.h"
#include <stdio.h>
+#include <unistd.h>
#ifndef ERRORDB
#ifndef XERRORDB
diff --git a/libX11/src/FSWrap.c b/libX11/src/FSWrap.c
index 12d0406ba..49ec3ff29 100644
--- a/libX11/src/FSWrap.c
+++ b/libX11/src/FSWrap.c
@@ -63,7 +63,7 @@ from The Open Group.
#include "Xlcint.h"
#include <ctype.h>
#include <X11/Xos.h>
-
+#include <unistd.h>
#define XMAXLIST 256
diff --git a/libX11/src/GetDflt.c b/libX11/src/GetDflt.c
index 496253065..68ab4c918 100644
--- a/libX11/src/GetDflt.c
+++ b/libX11/src/GetDflt.c
@@ -63,6 +63,7 @@ SOFTWARE.
#include <X11/Xos_r.h>
#endif
#include <stdio.h>
+#include <unistd.h>
#include <ctype.h>
@@ -137,9 +138,13 @@ InitDefaults(
* ~/.Xdefaults. Next, if there is an XENVIRONMENT environment variable,
* then load that file.
*/
-
+
if (dpy->xdefaults == NULL) {
+ #ifdef _MSC_VER
+ const char *slashDotXdefaults = ".Xdefaults";
+ #else
const char *slashDotXdefaults = "/.Xdefaults";
+ #endif
(void) GetHomeDir (fname, PATH_MAX - strlen (slashDotXdefaults) - 1);
(void) strcat (fname, slashDotXdefaults);
@@ -149,7 +154,11 @@ InitDefaults(
}
if (!(xenv = getenv ("XENVIRONMENT"))) {
+ #ifdef _MSC_VER
+ const char *slashDotXdefaultsDash = ".Xdefaults-";
+ #else
const char *slashDotXdefaultsDash = "/.Xdefaults-";
+ #endif
int len;
(void) GetHomeDir (fname, PATH_MAX - strlen (slashDotXdefaultsDash) - 1);
diff --git a/libX11/src/Host.c b/libX11/src/Host.c
index b07c9c312..cdf079758 100644
--- a/libX11/src/Host.c
+++ b/libX11/src/Host.c
@@ -64,6 +64,10 @@ X Window System is a trademark of The Open Group.
#endif
#include "Xlibint.h"
+#ifdef _MSC_VER
+#define inline __inline
+#endif
+
static inline int
changehost (Display *dpy, XHostAddress *host, BYTE mode)
{
diff --git a/libX11/src/InitExt.c b/libX11/src/InitExt.c
index 0ff3732bf..1d58e879f 100644
--- a/libX11/src/InitExt.c
+++ b/libX11/src/InitExt.c
@@ -32,6 +32,7 @@ from The Open Group.
#include <X11/Xlibint.h>
#include <X11/Xos.h>
#include <stdio.h>
+#include <unistd.h>
/*
* This routine is used to link a extension in so it will be called
diff --git a/libX11/src/KeysymStr.c b/libX11/src/KeysymStr.c
index c7c470468..00483085a 100644
--- a/libX11/src/KeysymStr.c
+++ b/libX11/src/KeysymStr.c
@@ -34,6 +34,7 @@ in this Software without prior written authorization from The Open Group.
#include "Xresinternal.h"
#include <stdio.h> /* sprintf */
+#include <unistd.h> /* snprintf */
#define NEEDVTABLE
#include "ks_tables.h"
diff --git a/libX11/src/OpenDis.c b/libX11/src/OpenDis.c
index 379381489..607b5a077 100644
--- a/libX11/src/OpenDis.c
+++ b/libX11/src/OpenDis.c
@@ -32,6 +32,7 @@ in this Software without prior written authorization from The Open Group.
#include <X11/Xatom.h>
#include <X11/Xresource.h>
#include <stdio.h>
+#include <unistd.h>
#include "Xintconn.h"
#ifdef XKB
diff --git a/libX11/src/QuColors.c b/libX11/src/QuColors.c
index 0b9bc508f..add2376bf 100644
--- a/libX11/src/QuColors.c
+++ b/libX11/src/QuColors.c
@@ -73,8 +73,8 @@ _XQueryColors(
int
XQueryColors(
- register Display * const dpy,
- const Colormap cmap,
+ register Display * dpy,
+ Colormap cmap,
XColor *defs, /* RETURN */
int ncolors)
{
diff --git a/libX11/src/RdBitF.c b/libX11/src/RdBitF.c
index 31bf583c9..7f6750d64 100644
--- a/libX11/src/RdBitF.c
+++ b/libX11/src/RdBitF.c
@@ -54,22 +54,23 @@ from The Open Group.
#define MAX_SIZE 255
/* shared data for the image read/parse logic */
-static const short hexTable[256] = {
- ['0'] = 0, ['1'] = 1,
- ['2'] = 2, ['3'] = 3,
- ['4'] = 4, ['5'] = 5,
- ['6'] = 6, ['7'] = 7,
- ['8'] = 8, ['9'] = 9,
- ['A'] = 10, ['B'] = 11,
- ['C'] = 12, ['D'] = 13,
- ['E'] = 14, ['F'] = 15,
- ['a'] = 10, ['b'] = 11,
- ['c'] = 12, ['d'] = 13,
- ['e'] = 14, ['f'] = 15,
-
- [' '] = -1, [','] = -1,
- ['}'] = -1, ['\n'] = -1,
- ['\t'] = -1
+static const signed char hexTable[256] = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ ,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0
+ , 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0
+ , 0, 10, 11, 12, 13, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ , 0, 10, 11, 12, 13, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};
/*
diff --git a/libX11/src/SetLocale.c b/libX11/src/SetLocale.c
index c49cb2e4e..64166bda0 100644
--- a/libX11/src/SetLocale.c
+++ b/libX11/src/SetLocale.c
@@ -63,6 +63,7 @@ from The Open Group.
#include <X11/Xlocale.h>
#include <X11/Xos.h>
#include "XlcPubI.h"
+#include <unistd.h>
#define MAXLOCALE 64 /* buffer size of locale name */
diff --git a/libX11/src/StrKeysym.c b/libX11/src/StrKeysym.c
index 12fce6872..8b875a328 100644
--- a/libX11/src/StrKeysym.c
+++ b/libX11/src/StrKeysym.c
@@ -39,12 +39,14 @@ in this Software without prior written authorization from The Open Group.
#ifndef KEYSYMDB
#ifndef XKEYSYMDB
-#define KEYSYMDB "/usr/lib/X11/XKeysymDB"
+#define KEYSYMDB "XKeysymDB"
#else
#define KEYSYMDB XKEYSYMDB
#endif
#endif
+#include <unistd.h>
+
static Bool initialized;
static XrmDatabase keysymdb;
static XrmQuark Qkeysym[2];
diff --git a/libX11/src/Window.c b/libX11/src/Window.c
index 85a28f372..341efee0f 100644
--- a/libX11/src/Window.c
+++ b/libX11/src/Window.c
@@ -29,6 +29,10 @@ in this Software without prior written authorization from The Open Group.
#endif
#include "Xlibint.h"
+#ifdef _MSC_VER
+#undef CreateWindow
+#endif
+
void _XProcessWindowAttributes (
register Display *dpy,
xChangeWindowAttributesReq *req,
diff --git a/libX11/src/XlibInt.c b/libX11/src/XlibInt.c
index 7521f12ad..5d8b0eb4b 100644
--- a/libX11/src/XlibInt.c
+++ b/libX11/src/XlibInt.c
@@ -33,6 +33,7 @@ from The Open Group.
#ifdef WIN32
#define _XLIBINT_
+#include <X11\Xw32defs.h>
#endif
#ifdef HAVE_CONFIG_H
#include <config.h>
@@ -42,6 +43,7 @@ from The Open Group.
#include <X11/Xpoll.h>
#include <assert.h>
#include <stdio.h>
+#include <unistd.h>
#ifdef WIN32
#include <direct.h>
#endif
@@ -145,6 +147,19 @@ xthread_t (*_Xthread_self_fn)(void) = NULL;
#define POLLFD_CACHE_SIZE 5
+#if _WIN32_WINNT < _WIN32_WINNT_VISTA
+struct pollfd {
+
+ SOCKET fd;
+ SHORT events;
+ SHORT revents;
+
+};
+#define POLLRDNORM 0x0100
+#define POLLRDBAND 0x0200
+#define POLLIN (POLLRDNORM | POLLRDBAND)
+#endif
+
/* initialize the struct array passed to poll() below */
Bool _XPollfdCacheInit(
Display *dpy)
@@ -198,6 +213,11 @@ void _XPollfdCacheDel(
#endif
}
+#ifdef _MSC_VER
+#undef min
+#define min __min
+#endif
+
static int sync_hazard(Display *dpy)
{
unsigned long span = dpy->request - dpy->last_request_read;
diff --git a/libX11/src/config.h b/libX11/src/config.h
new file mode 100644
index 000000000..abbac6e3b
--- /dev/null
+++ b/libX11/src/config.h
@@ -0,0 +1,243 @@
+/* src/config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define to 1 if `struct sockaddr_in' has a `sin_len' member */
+/* #undef BSD44SOCKETS */
+
+/* Include compose table cache support */
+#define COMPOSECACHE 1
+
+/* Has getresuid() & getresgid() functions */
+/* #undef HASGETRESUID */
+
+/* Has issetugid() function */
+/* #undef HASSETUGID */
+
+/* Has shm*() functions */
+//MH#define HAS_SHM 1
+
+/* Define to 1 if you have the `authdes_create' function. */
+/* #undef HAVE_AUTHDES_CREATE */
+
+/* Define to 1 if you have the `authdes_seccreate' function. */
+/* #undef HAVE_AUTHDES_SECCREATE */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the <endian.h> header file. */
+#define HAVE_ENDIAN_H 1
+
+/* Use dlopen to load shared libraries */
+#define HAVE_DLOPEN 1
+
+/* Define to 1 if you have the <dl.h> header file. */
+/* #undef HAVE_DL_H */
+
+/* Define to 1 if you have the `getpagesize' function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* launchd support available */
+/* #undef HAVE_LAUNCHD */
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the `poll' function. */
+#define HAVE_POLL 1
+
+/* Define to 1 if you have a working `mmap' system call. */
+#define HAVE_MMAP 1
+
+/* Use shl_load to load shared libraries */
+/* #undef HAVE_SHL_LOAD */
+
+/* Define to 1 if the system has the type `socklen_t'. */
+#define HAVE_SOCKLEN_T 0
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/poll.h> header file. */
+#define HAVE_SYS_POLL_H 1
+
+/* Define to 1 if you have the `strtol' function. */
+#define HAVE_STRTOL 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Support IPv6 for TCP connections */
+/* #undef IPv6 */
+
+/* Support dynamically loaded font modules */
+#define LOADABLEFONTS 1
+
+/* Support os-specific local connections */
+/* #undef LOCALCONN */
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#define LT_OBJDIR ".libs/"
+
+/* Disable XLOCALEDIR environment variable */
+#define NO_XLOCALEDIR 1
+
+/* Name of package */
+#define PACKAGE "libX11"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "libX11"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "libX11 1.1.5"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "libX11"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "1.1.5"
+
+/* Major version of this package */
+#define PACKAGE_VERSION_MAJOR 1
+
+/* Minor version of this package */
+#define PACKAGE_VERSION_MINOR 1
+
+/* Patch version of this package */
+#define PACKAGE_VERSION_PATCHLEVEL 5
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+/* #undef RETSIGTYPE */
+
+/* Support Secure RPC ("SUN-DES-1") authentication for X11 clients */
+/* #undef SECURE_RPC */
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Support TCP socket connections */
+#define TCPCONN 1
+
+/* launchd support available */
+/* #undef TRANS_REOPEN */
+
+/* Support UNIX socket connections */
+#define UNIXCONN 1
+
+/* Split some i18n functions into loadable modules */
+/* #undef USE_DYNAMIC_LC */
+
+/* Use the X cursor library to load cursors */
+#define USE_DYNAMIC_XCURSOR 1
+
+/* poll() function is available */
+#define USE_POLL 1
+
+/* Use XCB for low-level protocol implementation */
+#define USE_XCB 1
+
+/* Version number of package */
+#define VERSION "1.1.5"
+
+/* Support bdf format bitmap font files */
+#define XFONT_BDFFORMAT 1
+
+/* Location of libX11 data */
+#define X11_DATADIR "/usr/share/X11"
+
+/* Location of libX11 library data */
+#define X11_LIBDIR "/usr/lib/X11"
+
+/* Include support for XCMS */
+#define XCMS 1
+
+/* Location of error message database */
+#define XERRORDB "XErrorDB"
+
+/* Enable XF86BIGFONT extension */
+/* #undef XF86BIGFONT */
+
+/* Use XKB */
+#define XKB 1
+
+/* Location of keysym database */
+#define XKEYSYMDB "XKeysymDB"
+
+/* support for X Locales */
+#define XLOCALE 1
+
+/* Location of libX11 locale data */
+#define XLOCALEDATADIR "locale"
+
+/* Location of libX11 locale data */
+#define XLOCALEDIR "locale"
+
+/* Location of libX11 locale libraries */
+#define XLOCALELIBDIR "locale"
+
+/* Whether libX11 is compiled with thread support */
+#define XTHREADS /**/
+
+/* Whether libX11 needs to use MT safe API's */
+#define XUSE_MTSAFE_API /**/
+
+/* Enable GNU and other extensions to the C environment for glibc */
+/* #undef _GNU_SOURCE */
+
+/* Support bitmap font files */
+#define XFONT_BITMAP 1
+
+/* Support built-in fonts */
+#define XFONT_BUILTINS 1
+
+/* Support the X Font Services Protocol */
+#define XFONT_FC 1
+
+/* Support fonts in files */
+#define XFONT_FONTFILE 1
+
+/* Support FreeType rasterizer for nearly all font file formats */
+#define XFONT_FREETYPE 1
+
+/* Support pcf format bitmap font files */
+#define XFONT_PCFFORMAT 1
+
+/* Support snf format bitmap font files */
+#define XFONT_SNFFORMAT 1
+
+/* Support Speedo font files */
+#define XFONT_SPEEDO 1
+
+/* Support IBM Type 1 rasterizer for Type1 font files */
+#define XFONT_TYPE1 1
+
+/* Support bzip2 for bitmap fonts */
+/* #undef X_BZIP2_FONT_COMPRESSION */
+
+/* Support gzip for bitmap fonts */
+#define X_GZIP_FONT_COMPRESSION 1
+
+#define INCL_WINSOCK_API_TYPEDEFS 1
+#include <X11/Xwinsock.h>
+#include <X11/Xwindows.h>
diff --git a/libX11/src/genhextable.py b/libX11/src/genhextable.py
new file mode 100644
index 000000000..2a45a9e83
--- /dev/null
+++ b/libX11/src/genhextable.py
@@ -0,0 +1,39 @@
+import sys
+
+HexTable={
+ '0' : 0, '1' : 1,
+ '2' : 2, '3' : 3,
+ '4' : 4, '5' : 5,
+ '6' : 6, '7' : 7,
+ '8' : 8, '9' : 9,
+ 'A' : 10, 'B' : 11,
+ 'C' : 12, 'D' : 13,
+ 'E' : 14, 'F' : 15,
+ 'a' : 10, 'b' : 11,
+ 'c' : 12, 'd' : 13,
+ 'e' : 14, 'f' : 15,
+
+ ' ' : -1, ',' : -1,
+ '}' : -1, '\n' : -1,
+ '\t' : -1
+}
+
+OutHexTable=[0]*256
+
+for Char,Val in HexTable.iteritems():
+ OutHexTable[ord(Char)]=Val
+
+print "static const short hexTable[256] = {"
+i=0
+for Item in OutHexTable:
+ if i==0:
+ PreFix=" "
+ elif i%16 == 0:
+ PreFix="\n ,"
+ else:
+ PreFix=", "
+ i+=1
+ Val="%d"%Item
+ if len(Val)==1: Val = " "+Val
+ sys.stdout.write("%s%s"%(PreFix,Val))
+print "\n};" \ No newline at end of file
diff --git a/libX11/src/makefile b/libX11/src/makefile
new file mode 100644
index 000000000..456ad4895
--- /dev/null
+++ b/libX11/src/makefile
@@ -0,0 +1,277 @@
+LIBRARY=libx11
+
+DEFINES += X11_t TRANS_CLIENT LIB11_DLL
+
+
+CSRCS = \
+ AllCells.c \
+ AllowEv.c \
+ AllPlanes.c \
+ AutoRep.c \
+ Backgnd.c \
+ BdrWidth.c \
+ Bell.c \
+ Border.c \
+ ChAccCon.c \
+ ChActPGb.c \
+ ChClMode.c \
+ ChCmap.c \
+ ChGC.c \
+ ChKeyCon.c \
+ ChkIfEv.c \
+ ChkMaskEv.c \
+ ChkTypEv.c \
+ ChkTypWEv.c \
+ ChkWinEv.c \
+ ChPntCon.c \
+ ChProp.c \
+ ChSaveSet.c \
+ ChWAttrs.c \
+ ChWindow.c \
+ CirWin.c \
+ CirWinDn.c \
+ CirWinUp.c \
+ ClDisplay.c \
+ ClearArea.c \
+ Clear.c \
+ ConfWind.c \
+ Context.c \
+ ConvSel.c \
+ CopyArea.c \
+ CopyCmap.c \
+ CopyGC.c \
+ CopyPlane.c \
+ CrBFData.c \
+ CrCmap.c \
+ CrCursor.c \
+ CrGC.c \
+ CrGlCur.c \
+ CrPFBData.c \
+ CrPixmap.c \
+ CrWindow.c \
+ Cursor.c \
+ DefCursor.c \
+ DelProp.c \
+ Depths.c \
+ DestSubs.c \
+ DestWind.c \
+ DisName.c \
+ DrArc.c \
+ DrArcs.c \
+ DrLine.c \
+ DrLines.c \
+ DrPoint.c \
+ DrPoints.c \
+ DrRect.c \
+ DrRects.c \
+ DrSegs.c \
+ ErrDes.c \
+ ErrHndlr.c \
+ evtomask.c \
+ EvToWire.c \
+ FetchName.c \
+ FillArc.c \
+ FillArcs.c \
+ FillPoly.c \
+ FillRct.c \
+ FillRcts.c \
+ FilterEv.c \
+ Flush.c \
+ Font.c \
+ FontInfo.c \
+ FontNames.c \
+ FreeCmap.c \
+ FreeCols.c \
+ FreeCurs.c \
+ FreeEData.c \
+ FreeEventData.c \
+ FreeGC.c \
+ FreePix.c \
+ FSSaver.c \
+ FSWrap.c \
+ GCMisc.c \
+ Geom.c \
+ GetAtomNm.c \
+ GetColor.c \
+ GetDflt.c \
+ GetEventData.c \
+ GetFPath.c \
+ GetFProp.c \
+ GetGCVals.c \
+ GetGeom.c \
+ GetHColor.c \
+ GetHints.c \
+ GetIFocus.c \
+ GetImage.c \
+ GetKCnt.c \
+ GetMoEv.c \
+ GetNrmHint.c \
+ GetPCnt.c \
+ GetPntMap.c \
+ GetProp.c \
+ GetRGBCMap.c \
+ GetSOwner.c \
+ GetSSaver.c \
+ GetStCmap.c \
+ GetTxtProp.c \
+ GetWAttrs.c \
+ GetWMCMapW.c \
+ GetWMProto.c \
+ globals.c \
+ GrButton.c \
+ GrKeybd.c \
+ GrKey.c \
+ GrPointer.c \
+ GrServer.c \
+ Host.c \
+ Iconify.c \
+ IfEvent.c \
+ imConv.c \
+ ImText16.c \
+ ImText.c \
+ ImUtil.c \
+ InitExt.c \
+ InsCmap.c \
+ IntAtom.c \
+ KeyBind.c \
+ KeysymStr.c \
+ KillCl.c \
+ LiHosts.c \
+ LiICmaps.c \
+ LiProps.c \
+ ListExt.c \
+ LoadFont.c \
+ LockDis.c \
+ locking.c \
+ LookupCol.c \
+ LowerWin.c \
+ Macros.c \
+ MapRaised.c \
+ MapSubs.c \
+ MapWindow.c \
+ MaskEvent.c \
+ Misc.c \
+ ModMap.c \
+ MoveWin.c \
+ NextEvent.c \
+ OCWrap.c \
+ OMWrap.c \
+ OpenDis.c \
+ ParseCmd.c \
+ ParseCol.c \
+ ParseGeom.c \
+ PeekEvent.c \
+ PeekIfEv.c \
+ Pending.c \
+ PixFormats.c \
+ PmapBgnd.c \
+ PmapBord.c \
+ PolyReg.c \
+ PolyTxt16.c \
+ PolyTxt.c \
+ PropAlloc.c \
+ PutBEvent.c \
+ PutImage.c \
+ Quarks.c \
+ QuBest.c \
+ QuColor.c \
+ QuColors.c \
+ QuCurShp.c \
+ QuExt.c \
+ QuKeybd.c \
+ QuPntr.c \
+ QuStipShp.c \
+ QuTextE16.c \
+ QuTextExt.c \
+ QuTileShp.c \
+ QuTree.c \
+ RaiseWin.c \
+ RdBitF.c \
+ RecolorC.c \
+ ReconfWin.c \
+ ReconfWM.c \
+ Region.c \
+ RegstFlt.c \
+ RepWindow.c \
+ RestackWs.c \
+ RotProp.c \
+ ScrResStr.c \
+ SelInput.c \
+ SendEvent.c \
+ SetBack.c \
+ SetClMask.c \
+ SetClOrig.c \
+ SetCRects.c \
+ SetDashes.c \
+ SetFont.c \
+ SetFore.c \
+ SetFPath.c \
+ SetFunc.c \
+ SetHints.c \
+ SetIFocus.c \
+ SetLocale.c \
+ SetLStyle.c \
+ SetNrmHint.c \
+ SetPMask.c \
+ SetPntMap.c \
+ SetRGBCMap.c \
+ SetSOwner.c \
+ SetSSaver.c \
+ SetState.c \
+ SetStCmap.c \
+ SetStip.c \
+ SetTile.c \
+ SetTSOrig.c \
+ SetTxtProp.c \
+ SetWMCMapW.c \
+ SetWMProto.c \
+ StBytes.c \
+ StColor.c \
+ StColors.c \
+ StName.c \
+ StNColor.c \
+ StrKeysym.c \
+ StrToText.c \
+ Sync.c \
+ Synchro.c \
+ Text16.c \
+ Text.c \
+ TextExt16.c \
+ TextExt.c \
+ TextToStr.c \
+ TrCoords.c \
+ UndefCurs.c \
+ UngrabBut.c \
+ UngrabKbd.c \
+ UngrabKey.c \
+ UngrabPtr.c \
+ UngrabSvr.c \
+ UninsCmap.c \
+ UnldFont.c \
+ UnmapSubs.c \
+ UnmapWin.c \
+ VisUtil.c \
+ WarpPtr.c \
+ Window.c \
+ WinEvent.c \
+ Withdraw.c \
+ WMGeom.c \
+ WMProps.c \
+ WrBitF.c \
+ xcb_disp.c \
+ xcb_io.c \
+ XlibAsync.c \
+ XlibInt.c \
+ Xrm.c \
+
+
+INCLUDES := . xcms xlibi18n xkb $(MHMAKECONF)\X11 $(OBJDIR) $(INCLUDES)
+
+KEYSYMDEF = $(MHMAKECONF)/X11/keysymdef.h
+
+load_makefile util\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+
+$(OBJDIR)\ks_tables.h: $(KEYSYMDEF) util\$(OBJDIR)\makekeys.exe
+ util\$(OBJDIR)\makekeys $(relpath $<) > $(relpath $@)
+
+
diff --git a/libX11/src/util/makefile b/libX11/src/util/makefile
new file mode 100644
index 000000000..27da68335
--- /dev/null
+++ b/libX11/src/util/makefile
@@ -0,0 +1,6 @@
+TTYAPP=makekeys
+
+DEFINES += X11_t TRANS_CLIENT
+
+CSRCS = makekeys.c
+
diff --git a/libX11/src/util/makekeys.c b/libX11/src/util/makekeys.c
index 5613e42ff..f1fabaadf 100644
--- a/libX11/src/util/makekeys.c
+++ b/libX11/src/util/makekeys.c
@@ -34,6 +34,7 @@ from The Open Group.
#include <X11/keysymdef.h>
#include <stdio.h>
#include <stdlib.h>
+#include <unistd.h>
#include "../Xresinternal.h"
@@ -158,7 +159,7 @@ main(int argc, char *argv[])
num_found = 0;
for (z = ksnum; z < KTNUM; z++) {
max_rehash = 0;
- for (name = tab, i = z; --i >= 0;)
+ for (name = &tab[0], i = z; --i >= 0;)
*name++ = 0;
for (i = 0; i < ksnum; i++) {
name = info[i].name;
diff --git a/libX11/src/xcb_io.c b/libX11/src/xcb_io.c
index 727c6c79f..26e547ee5 100644
--- a/libX11/src/xcb_io.c
+++ b/libX11/src/xcb_io.c
@@ -23,6 +23,9 @@
#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
#endif
+#include <sys/time.h>
+
+#include <X11/Xtrans/Xtrans.h>
#define xcb_fail_assert(_message, _var) { \
unsigned int _var = 1; \
diff --git a/libX11/src/xcms/config.h b/libX11/src/xcms/config.h
new file mode 100644
index 000000000..5052f74ff
--- /dev/null
+++ b/libX11/src/xcms/config.h
@@ -0,0 +1,5 @@
+#include <string.h>
+#include <unistd.h>
+
+#define XCMSDB "Xcms.txt"
+
diff --git a/libX11/src/xcms/makefile b/libX11/src/xcms/makefile
new file mode 100644
index 000000000..0ba42a246
--- /dev/null
+++ b/libX11/src/xcms/makefile
@@ -0,0 +1,72 @@
+LIBRARY = libxcms
+
+DEFINES += HAVE_CONFIG_H LIB11_DLL
+
+
+CSRCS = \
+ AddDIC.c \
+ AddSF.c \
+ CCC.c \
+ CvColW.c \
+ CvCols.c \
+ HVC.c \
+ HVCGcC.c \
+ HVCGcV.c \
+ HVCGcVC.c \
+ HVCMnV.c \
+ HVCMxC.c \
+ HVCMxV.c \
+ HVCMxVC.c \
+ HVCMxVs.c \
+ HVCWpAj.c \
+ IdOfPr.c \
+ LRGB.c \
+ Lab.c \
+ LabGcC.c \
+ LabGcL.c \
+ LabGcLC.c \
+ LabMnL.c \
+ LabMxC.c \
+ LabMxL.c \
+ LabMxLC.c \
+ LabWpAj.c \
+ Luv.c \
+ LuvGcC.c \
+ LuvGcL.c \
+ LuvGcLC.c \
+ LuvMnL.c \
+ LuvMxC.c \
+ LuvMxL.c \
+ LuvMxLC.c \
+ LuvWpAj.c \
+ OfCCC.c \
+ PrOfId.c \
+ QBlack.c \
+ QBlue.c \
+ QGreen.c \
+ QRed.c \
+ QWhite.c \
+ QuCol.c \
+ QuCols.c \
+ SetCCC.c \
+ SetGetCols.c \
+ StCol.c \
+ StCols.c \
+ UNDEFINED.c \
+ XRGB.c \
+ XYZ.c \
+ cmsAllCol.c \
+ cmsAllNCol.c \
+ cmsCmap.c \
+ cmsColNm.c \
+ cmsGlobls.c \
+ cmsInt.c \
+ cmsLkCol.c \
+ cmsMath.c \
+ cmsProp.c \
+ cmsTrig.c \
+ uvY.c \
+ xyY.c
+
+INCLUDES += ..\..\include\X11 ..\..\src\xlibi18n ..\..\src
+
diff --git a/libX11/src/xkb/Makefile b/libX11/src/xkb/Makefile
new file mode 100644
index 000000000..56aecc880
--- /dev/null
+++ b/libX11/src/xkb/Makefile
@@ -0,0 +1,29 @@
+LIBRARY = libxkb
+
+DEFINES += LIB11_DLL
+
+CSRCS = \
+ XKB.c \
+ XKBBind.c \
+ XKBCompat.c \
+ XKBCtrls.c \
+ XKBCvt.c \
+ XKBGetMap.c \
+ XKBGetByName.c \
+ XKBNames.c \
+ XKBRdBuf.c \
+ XKBSetMap.c \
+ XKBUse.c \
+ XKBleds.c \
+ XKBBell.c \
+ XKBGeom.c \
+ XKBSetGeom.c \
+ XKBExtDev.c \
+ XKBList.c \
+ XKBMisc.c \
+ XKBMAlloc.c \
+ XKBGAlloc.c \
+ XKBAlloc.c
+
+INCLUDES += ..\..\include\X11 ..\..\src\xlibi18n
+
diff --git a/libX11/src/xkb/XKB.c b/libX11/src/xkb/XKB.c
index 8a9795982..7a66b3668 100644
--- a/libX11/src/xkb/XKB.c
+++ b/libX11/src/xkb/XKB.c
@@ -28,6 +28,11 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <config.h>
#endif
#include <stdio.h>
+
+#ifdef XKB_IN_SERVER
+#define XkbVirtualModsToReal SrvXkbVirtualModsToReal
+#endif
+
#include "Xlibint.h"
#include <X11/extensions/XKBproto.h>
#include "XKBlibint.h"
diff --git a/libX11/src/xkb/XKBBind.c b/libX11/src/xkb/XKBBind.c
index 29870b574..b08e9d3ba 100644
--- a/libX11/src/xkb/XKBBind.c
+++ b/libX11/src/xkb/XKBBind.c
@@ -31,6 +31,34 @@ from The Open Group.
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
+
+#ifdef XKB_IN_SERVER
+#define XkbAllocClientMap SrvXkbAllocClientMap
+#define XkbAllocServerMap SrvXkbAllocServerMap
+#define XkbChangeTypesOfKey SrvXkbChangeTypesOfKey
+#define XkbCopyKeyTypes SrvXkbCopyKeyTypes
+#define XkbFreeClientMap SrvXkbFreeClientMap
+#define XkbFreeServerMap SrvXkbFreeServerMap
+#define XkbKeyTypesForCoreSymbols SrvXkbKeyTypesForCoreSymbols
+#define XkbApplyCompatMapToKey SrvXkbApplyCompatMapToKey
+#define XkbResizeKeyActions SrvXkbResizeKeyActions
+#define XkbResizeKeySyms SrvXkbResizeKeySyms
+#define XkbResizeKeyType SrvXkbResizeKeyType
+#define XkbAllocCompatMap SrvXkbAllocCompatMap
+#define XkbAllocControls SrvXkbAllocControls
+#define XkbAllocIndicatorMaps SrvXkbAllocIndicatorMaps
+#define XkbAllocKeyboard SrvXkbAllocKeyboard
+#define XkbAllocNames SrvXkbAllocNames
+#define XkbFreeCompatMap SrvXkbFreeCompatMap
+#define XkbFreeKeyboard SrvXkbFreeKeyboard
+#define XkbFreeNames SrvXkbFreeNames
+#define XkbLatchModifiers SrvXkbLatchModifiers
+#define XkbLatchGroup SrvXkbLatchGroup
+#define XkbVirtualModsToReal SrvXkbVirtualModsToReal
+#define XkbChangeKeycodeRange SrvXkbChangeKeycodeRange
+#define XkbApplyVirtualModChanges SrvXkbApplyVirtualModChanges
+#endif
+
#include "XKBlib.h"
#include <X11/Xlibint.h>
#include <X11/Xutil.h>
diff --git a/libX11/src/xkb/XKBGAlloc.c b/libX11/src/xkb/XKBGAlloc.c
index 63bb2db38..ecac4f33c 100644
--- a/libX11/src/xkb/XKBGAlloc.c
+++ b/libX11/src/xkb/XKBGAlloc.c
@@ -28,8 +28,10 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <config.h>
#endif
-
#include <stdio.h>
+#include <unistd.h>
+
+
#include "Xlibint.h"
#include "XKBlibint.h"
#include <X11/extensions/XKBgeom.h>
diff --git a/libX11/src/xkb/XKBGeom.c b/libX11/src/xkb/XKBGeom.c
index 6a1c74a4f..c3fd27f15 100644
--- a/libX11/src/xkb/XKBGeom.c
+++ b/libX11/src/xkb/XKBGeom.c
@@ -37,12 +37,8 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <X11/extensions/XKBproto.h>
#include "XKBlibint.h"
-#ifndef MINSHORT
#define MINSHORT -32768
-#endif
-#ifndef MAXSHORT
#define MAXSHORT 32767
-#endif
/***====================================================================***/
diff --git a/libX11/src/xkb/XKBGetMap.c b/libX11/src/xkb/XKBGetMap.c
index 2278c7519..0e4c567ee 100644
--- a/libX11/src/xkb/XKBGetMap.c
+++ b/libX11/src/xkb/XKBGetMap.c
@@ -28,6 +28,34 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
+
+#ifdef XKB_IN_SERVER
+#define XkbAllocClientMap SrvXkbAllocClientMap
+#define XkbAllocServerMap SrvXkbAllocServerMap
+#define XkbChangeTypesOfKey SrvXkbChangeTypesOfKey
+#define XkbCopyKeyTypes SrvXkbCopyKeyTypes
+#define XkbFreeClientMap SrvXkbFreeClientMap
+#define XkbFreeServerMap SrvXkbFreeServerMap
+#define XkbKeyTypesForCoreSymbols SrvXkbKeyTypesForCoreSymbols
+#define XkbApplyCompatMapToKey SrvXkbApplyCompatMapToKey
+#define XkbResizeKeyActions SrvXkbResizeKeyActions
+#define XkbResizeKeySyms SrvXkbResizeKeySyms
+#define XkbResizeKeyType SrvXkbResizeKeyType
+#define XkbAllocCompatMap SrvXkbAllocCompatMap
+#define XkbAllocControls SrvXkbAllocControls
+#define XkbAllocIndicatorMaps SrvXkbAllocIndicatorMaps
+#define XkbAllocKeyboard SrvXkbAllocKeyboard
+#define XkbAllocNames SrvXkbAllocNames
+#define XkbFreeCompatMap SrvXkbFreeCompatMap
+#define XkbFreeKeyboard SrvXkbFreeKeyboard
+#define XkbFreeNames SrvXkbFreeNames
+#define XkbLatchModifiers SrvXkbLatchModifiers
+#define XkbLatchGroup SrvXkbLatchGroup
+#define XkbVirtualModsToReal SrvXkbVirtualModsToReal
+#define XkbChangeKeycodeRange SrvXkbChangeKeycodeRange
+#define XkbApplyVirtualModChanges SrvXkbApplyVirtualModChanges
+#endif
+
#include "Xlibint.h"
#include <X11/extensions/XKBproto.h>
#include "XKBlibint.h"
diff --git a/libX11/src/xkb/XKBMisc.c b/libX11/src/xkb/XKBMisc.c
index a6c916c3b..d25aa217b 100644
--- a/libX11/src/xkb/XKBMisc.c
+++ b/libX11/src/xkb/XKBMisc.c
@@ -35,6 +35,9 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <X11/keysym.h>
#include "XKBlibint.h"
+#ifdef XKB_IN_SERVER
+#define XkbVirtualModsToReal SrvXkbVirtualModsToReal
+#endif
/***====================================================================***/
diff --git a/libX11/src/xkb/XKBSetGeom.c b/libX11/src/xkb/XKBSetGeom.c
index 7ac37ca61..7998ad72e 100644
--- a/libX11/src/xkb/XKBSetGeom.c
+++ b/libX11/src/xkb/XKBSetGeom.c
@@ -36,12 +36,8 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <X11/extensions/XKBgeom.h>
#include <X11/extensions/XKBproto.h>
-#ifndef MINSHORT
#define MINSHORT -32768
-#endif
-#ifndef MAXSHORT
#define MAXSHORT 32767
-#endif
/***====================================================================***/
diff --git a/libX11/src/xkb/XKBUse.c b/libX11/src/xkb/XKBUse.c
index 3194137e3..b0a031812 100644
--- a/libX11/src/xkb/XKBUse.c
+++ b/libX11/src/xkb/XKBUse.c
@@ -29,6 +29,34 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#endif
#include <stdio.h>
#include <ctype.h>
+
+#ifdef XKB_IN_SERVER
+#define XkbAllocClientMap SrvXkbAllocClientMap
+#define XkbAllocServerMap SrvXkbAllocServerMap
+#define XkbChangeTypesOfKey SrvXkbChangeTypesOfKey
+#define XkbCopyKeyTypes SrvXkbCopyKeyTypes
+#define XkbFreeClientMap SrvXkbFreeClientMap
+#define XkbFreeServerMap SrvXkbFreeServerMap
+#define XkbKeyTypesForCoreSymbols SrvXkbKeyTypesForCoreSymbols
+#define XkbApplyCompatMapToKey SrvXkbApplyCompatMapToKey
+#define XkbResizeKeyActions SrvXkbResizeKeyActions
+#define XkbResizeKeySyms SrvXkbResizeKeySyms
+#define XkbResizeKeyType SrvXkbResizeKeyType
+#define XkbAllocCompatMap SrvXkbAllocCompatMap
+#define XkbAllocControls SrvXkbAllocControls
+#define XkbAllocIndicatorMaps SrvXkbAllocIndicatorMaps
+#define XkbAllocKeyboard SrvXkbAllocKeyboard
+#define XkbAllocNames SrvXkbAllocNames
+#define XkbFreeCompatMap SrvXkbFreeCompatMap
+#define XkbFreeKeyboard SrvXkbFreeKeyboard
+#define XkbFreeNames SrvXkbFreeNames
+#define XkbLatchModifiers SrvXkbLatchModifiers
+#define XkbLatchGroup SrvXkbLatchGroup
+#define XkbVirtualModsToReal SrvXkbVirtualModsToReal
+#define XkbChangeKeycodeRange SrvXkbChangeKeycodeRange
+#define XkbApplyVirtualModChanges SrvXkbApplyVirtualModChanges
+#endif
+
#include "Xlibint.h"
#include <X11/extensions/XKBproto.h>
#include "XKBlibint.h"
diff --git a/libX11/src/xlibi18n/XDefaultIMIF.c b/libX11/src/xlibi18n/XDefaultIMIF.c
index db0f5d1fa..f271bded1 100644
--- a/libX11/src/xlibi18n/XDefaultIMIF.c
+++ b/libX11/src/xlibi18n/XDefaultIMIF.c
@@ -64,6 +64,7 @@ Sun Microsystems, Inc. or its licensors is granted.
#include <config.h>
#endif
#include <stdio.h>
+#include <unistd.h>
#include "Xlibint.h"
#include "Xlcint.h"
#include "XlcGeneric.h"
diff --git a/libX11/src/xlibi18n/XDefaultOMIF.c b/libX11/src/xlibi18n/XDefaultOMIF.c
index a06f69a1f..2ff6c414c 100644
--- a/libX11/src/xlibi18n/XDefaultOMIF.c
+++ b/libX11/src/xlibi18n/XDefaultOMIF.c
@@ -69,6 +69,8 @@ Sun Microsystems, Inc. or its licensors is granted.
#include <X11/Xos.h>
#include <X11/Xatom.h>
#include <stdio.h>
+#include <unistd.h>
+#include <stdint.h>
#define MAXFONTS 100
diff --git a/libX11/src/xlibi18n/XimProto.h b/libX11/src/xlibi18n/XimProto.h
index 6b0096dd6..9551301a2 100644
--- a/libX11/src/xlibi18n/XimProto.h
+++ b/libX11/src/xlibi18n/XimProto.h
@@ -143,6 +143,13 @@ PERFORMANCE OF THIS SOFTWARE.
/*
* byte order
*/
+#ifdef BIGENDIAN
+#undef BIGENDIAN
+#endif
+#ifdef LITTLEENDIAN
+#undef LITTLEENDIAN
+#endif
+
#define BIGENDIAN (CARD8)0x42 /* MSB first */
#define LITTLEENDIAN (CARD8)0x6c /* LSB first */
diff --git a/libX11/src/xlibi18n/lcDB.c b/libX11/src/xlibi18n/lcDB.c
index fda3ae7e3..fca9758d8 100644
--- a/libX11/src/xlibi18n/lcDB.c
+++ b/libX11/src/xlibi18n/lcDB.c
@@ -48,6 +48,8 @@
#endif /* NOT_X_ENV */
+#include <stdint.h>
+
/* specifying NOT_X_ENV allows users to just use
the database parsing routine. */
/* For UDC/VW */
@@ -63,6 +65,7 @@
#endif
#include <stdio.h>
+#include <unistd.h>
typedef struct _DatabaseRec {
char *category;
diff --git a/libX11/src/xlibi18n/lcDynamic.c b/libX11/src/xlibi18n/lcDynamic.c
index 3821bfff1..a50aa70fa 100644
--- a/libX11/src/xlibi18n/lcDynamic.c
+++ b/libX11/src/xlibi18n/lcDynamic.c
@@ -51,7 +51,7 @@ from The Open Group.
#include "Xlcint.h"
#ifndef XLOCALEDIR
-#define XLOCALEDIR "/usr/lib/X11/locale"
+#define XLOCALEDIR "locale"
#endif
#define LCLIBNAME "xi18n.so"
diff --git a/libX11/src/xlibi18n/lcFile.c b/libX11/src/xlibi18n/lcFile.c
index bf8908458..c3ea02ead 100644
--- a/libX11/src/xlibi18n/lcFile.c
+++ b/libX11/src/xlibi18n/lcFile.c
@@ -192,7 +192,7 @@ _XlcParsePath(
}
#ifndef XLOCALEDIR
-#define XLOCALEDIR "/usr/lib/X11/locale"
+#define XLOCALEDIR "locale"
#endif
void
diff --git a/libX11/src/xlibi18n/lcGeneric.c b/libX11/src/xlibi18n/lcGeneric.c
index 20c455c13..13405a65b 100644
--- a/libX11/src/xlibi18n/lcGeneric.c
+++ b/libX11/src/xlibi18n/lcGeneric.c
@@ -32,6 +32,7 @@
#include <config.h>
#endif
#include <stdio.h>
+#include <unistd.h>
#include "Xlibint.h"
#include "XlcGeneric.h"
diff --git a/libX11/src/xlibi18n/lcPublic.c b/libX11/src/xlibi18n/lcPublic.c
index 39ec0829b..46c652e2b 100644
--- a/libX11/src/xlibi18n/lcPublic.c
+++ b/libX11/src/xlibi18n/lcPublic.c
@@ -27,6 +27,7 @@
#include <config.h>
#endif
#include <stdio.h>
+#include <unistd.h>
#include "Xlibint.h"
#include "XlcPubI.h"
diff --git a/libX11/src/xlibi18n/lcUTF8.c b/libX11/src/xlibi18n/lcUTF8.c
index 0f3d0d2ca..930edcb18 100644
--- a/libX11/src/xlibi18n/lcUTF8.c
+++ b/libX11/src/xlibi18n/lcUTF8.c
@@ -75,6 +75,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <config.h>
#endif
#include <stdio.h>
+#include <unistd.h>
#include "Xlibint.h"
#include "XlcPubI.h"
#include "XlcGeneric.h"
diff --git a/libX11/src/xlibi18n/makefile b/libX11/src/xlibi18n/makefile
new file mode 100644
index 000000000..ec9b946b8
--- /dev/null
+++ b/libX11/src/xlibi18n/makefile
@@ -0,0 +1,80 @@
+#AM_CFLAGS= \
+# -I$(top_srcdir)/include \
+# -I$(top_srcdir)/include/X11 \
+# -I$(top_builddir)/include \
+# -I$(top_builddir)/include/X11 \
+# -I$(top_srcdir)/src/xcms \
+# -I$(top_srcdir)/src/xkb \
+# -I$(top_srcdir)/src/xlibi18n \
+# -I$(top_srcdir)/src \
+# $(X11_CFLAGS) \
+# $(BIGFONT_CFLAGS) \
+# $(XDMCP_CFLAGS) \
+# -D_BSD_SOURCE \
+# $(XMALLOC_ZERO_CFLAGS)
+
+LIBRARY = libi18n
+
+
+#
+# Dynamic loading code for i18n modules
+#
+#if XLIB_LOADABLE_I18N
+#XI18N_DL_SOURCES = \
+# XlcDL.c \
+# XlcSL.c
+#else
+#
+# Static interfaces to input/output methods
+#
+#IM_LIBS = \
+# ${top_builddir}/modules/im/ximcp/libximcp.la
+
+#LC_LIBS = \
+# ${top_builddir}/modules/lc/def/libxlcDef.la \
+# ${top_builddir}/modules/lc/gen/libxlibi18n.la \
+# ${top_builddir}/modules/lc/Utf8/libxlcUTF8Load.la \
+# ${top_builddir}/modules/lc/xlocale/libxlocale.la
+
+#OM_LIBS = \
+# ${top_builddir}/modules/om/generic/libxomGeneric.la
+#endif
+
+#libi18n_la_LIBADD = \
+# $(IM_LIBS) $(LC_LIBS) $(OM_LIBS)
+
+INCLUDES += ..\..\include\X11 ..
+DEFINES += XLOCALELIBDIR="\".\"" LIB11_DLL
+
+CSRCS = \
+ $(XI18N_DL_SOURCES) \
+ XDefaultIMIF.c \
+ XDefaultOMIF.c \
+ xim_trans.c\
+ ICWrap.c\
+ IMWrap.c\
+ imKStoUCS.c\
+ lcCT.c\
+ lcCharSet.c\
+ lcConv.c\
+ lcDB.c\
+ lcDynamic.c\
+ lcFile.c\
+ lcGeneric.c\
+ lcInit.c\
+ lcPrTxt.c\
+ lcPubWrap.c\
+ lcPublic.c\
+ lcRM.c\
+ lcStd.c\
+ lcTxtPr.c\
+ lcUTF8.c\
+ lcUtil.c\
+ lcWrap.c\
+ mbWMProps.c\
+ mbWrap.c\
+ utf8WMProps.c\
+ utf8Wrap.c\
+ wcWrap.c
+
+
diff --git a/libXau/AuFileName.c b/libXau/AuFileName.c
index 7cedfcc5b..e5ad5a372 100644
--- a/libXau/AuFileName.c
+++ b/libXau/AuFileName.c
@@ -30,6 +30,9 @@ in this Software without prior written authorization from The Open Group.
#include <X11/Xauth.h>
#include <X11/Xos.h>
#include <stdlib.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
static char *buf = NULL;
diff --git a/libXau/AuUnlock.c b/libXau/AuUnlock.c
index b81724600..7a0c3a881 100644
--- a/libXau/AuUnlock.c
+++ b/libXau/AuUnlock.c
@@ -27,6 +27,9 @@ in this Software without prior written authorization from The Open Group.
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
#include <X11/Xauth.h>
#include <X11/Xos.h>
diff --git a/libXau/config.h b/libXau/config.h
new file mode 100644
index 000000000..8ce6cdc96
--- /dev/null
+++ b/libXau/config.h
@@ -0,0 +1,7 @@
+#ifndef __COFNIG_H__
+#define __COFNIG_H__
+
+#define HAVE_UNISTD_H 1
+
+#endif
+
diff --git a/libXau/libXau.def b/libXau/libXau.def
new file mode 100644
index 000000000..03762f509
--- /dev/null
+++ b/libXau/libXau.def
@@ -0,0 +1,10 @@
+LIBRARY libXau
+
+EXPORTS
+ XauDisposeAuth
+ XauGetBestAuthByAddr
+ XauReadAuth
+ XauWriteAuth
+ XauUnlockAuth
+ XauLockAuth
+ XauFileName \ No newline at end of file
diff --git a/libXau/makefile b/libXau/makefile
new file mode 100644
index 000000000..2d56f2ac8
--- /dev/null
+++ b/libXau/makefile
@@ -0,0 +1,13 @@
+SHAREDLIB = libXau
+
+DEFINES += HAVE_CONFIG_H
+
+CSRCS = AuDispose.c \
+ AuFileName.c \
+ AuGetAddr.c \
+ AuGetBest.c \
+ AuLock.c \
+ AuRead.c \
+ AuUnlock.c \
+ AuWrite.c
+
diff --git a/libXaw/config.h b/libXaw/config.h
new file mode 100644
index 000000000..b72e9888a
--- /dev/null
+++ b/libXaw/config.h
@@ -0,0 +1,76 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define to 1 if you have the <wchar.h> header file. */
+#undef HAS_WCHAR_H
+
+/* Define to 1 if you have the <wctype.h> header file. */
+#undef HAS_WCTYPE_H
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the `iswalnum' function. */
+#undef HAVE_ISWALNUM
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you DO NOT have the <widec.h> header file. */
+#undef NO_WIDEC_H
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Major version of this package */
+#undef PACKAGE_VERSION_MAJOR
+
+/* Minor version of this package */
+#undef PACKAGE_VERSION_MINOR
+
+/* Patch version of this package */
+#undef PACKAGE_VERSION_PATCHLEVEL
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Version number of package */
+#undef VERSION
diff --git a/libXaw/src/AsciiSrc.c b/libXaw/src/AsciiSrc.c
index a37b6a1ff..bf2c42bc3 100644
--- a/libXaw/src/AsciiSrc.c
+++ b/libXaw/src/AsciiSrc.c
@@ -1486,7 +1486,7 @@ InitStringOrFile(AsciiSrcObject src, Bool newString)
if (!src->ascii_src.is_tempfile) {
if ((fd = open(src->ascii_src.string, open_mode, 0666)) != -1) {
- if ((file = fdopen(fd, fdopen_mode))) {
+ if ((file = _fdopen(fd, fdopen_mode))) {
(void)fseek(file, 0, SEEK_END);
src->ascii_src.length = (XawTextPosition)ftell(file);
return (file);
diff --git a/libXaw/src/Label.c b/libXaw/src/Label.c
index 024d01aa8..664bbc6b5 100644
--- a/libXaw/src/Label.c
+++ b/libXaw/src/Label.c
@@ -616,7 +616,7 @@ _Reposition(LabelWidget lw, unsigned int width, unsigned int height,
*dx = newPos - lw->label.label_x;
lw->label.label_x = newPos;
- newPos = (height - lw->label.label_height) >> 1;
+ newPos = ((int)(height - lw->label.label_height)) >> 1;
*dy = newPos - lw->label.label_y;
lw->label.label_y = newPos;
}
diff --git a/libXaw/src/MultiSrc.c b/libXaw/src/MultiSrc.c
index efa08b081..712b7e068 100644
--- a/libXaw/src/MultiSrc.c
+++ b/libXaw/src/MultiSrc.c
@@ -1258,7 +1258,7 @@ InitStringOrFile(MultiSrcObject src, Bool newString)
if (!src->multi_src.is_tempfile) {
if ((fd = open((char *)src->multi_src.string, open_mode, 0666)) != -1) {
- if ((file = fdopen(fd, fdopen_mode)) != NULL) {
+ if ((file = _fdopen(fd, fdopen_mode)) != NULL) {
(void)fseek(file, 0, SEEK_END);
src->multi_src.length = (XawTextPosition)ftell(file);
return(file);
diff --git a/libXaw/src/Pixmap.c b/libXaw/src/Pixmap.c
index d2fa1ef02..1c5a8c5ed 100644
--- a/libXaw/src/Pixmap.c
+++ b/libXaw/src/Pixmap.c
@@ -745,7 +745,11 @@ BitmapLoader(XawParams *params, Screen *screen, Colormap colormap, int depth,
if (params->name[0] != '/' && params->name[0] != '.')
{
if (!sub[0].substitution)
+ #ifdef _MSC_VER
+ sub[0].substitution = ".";
+ #else
sub[0].substitution = getenv("HOME");
+ #endif
sub[1].substitution = params->name;
if (pixmap_path == NULL)
GetResourcePixmapPath(DisplayOfScreen(screen));
diff --git a/libXaw/src/Private.h b/libXaw/src/Private.h
index ca70d5f30..7ae465a3d 100644
--- a/libXaw/src/Private.h
+++ b/libXaw/src/Private.h
@@ -28,6 +28,8 @@
#ifndef _XawPrivate_h
#define _XawPrivate_h
+#include <unistd.h>
+
#define XawMax(a, b) ((a) > (b) ? (a) : (b))
#define XawMin(a, b) ((a) < (b) ? (a) : (b))
#define XawAbs(a) ((a) < 0 ? -(a) : (a))
diff --git a/libXaw/src/TextAction.c b/libXaw/src/TextAction.c
index 74446d68c..52e0640a3 100644
--- a/libXaw/src/TextAction.c
+++ b/libXaw/src/TextAction.c
@@ -36,6 +36,7 @@ in this Software without prior written authorization from The Open Group.
#include <X11/Xatom.h>
#include <X11/Xfuncs.h>
#include <X11/Xutil.h>
+#include <X11/Xwinsock.h>
#include <X11/Xmu/Atoms.h>
#include <X11/Xmu/Misc.h>
#include <X11/Xmu/StdSel.h>
@@ -64,6 +65,9 @@ in this Software without prior written authorization from The Open Group.
#define XawTextActionMaxHexChars 100
+#ifdef _MSC_VER
+#define usleep(time) Sleep(time)
+#endif
/*
* Prototypes
*/
diff --git a/libXaw/src/Vendor.c b/libXaw/src/Vendor.c
index b8797f59d..a2554daff 100644
--- a/libXaw/src/Vendor.c
+++ b/libXaw/src/Vendor.c
@@ -111,7 +111,7 @@ static XtResource resources[] = {
*
***************************************************************************/
-#if defined(__CYGWIN__) || defined(__MINGW32__)
+#if defined(__CYGWIN__) || defined(__MINGW32__) && !defined(_MSC_VER)
/* to fix the EditRes problem because of wrong linker semantics */
extern WidgetClass vendorShellWidgetClass; /* from Xt/Vendor.c */
extern VendorShellClassRec _XawVendorShellClassRec;
diff --git a/libXaw/src/XawI18n.h b/libXaw/src/XawI18n.h
index d50171cfb..132bbb49e 100644
--- a/libXaw/src/XawI18n.h
+++ b/libXaw/src/XawI18n.h
@@ -62,6 +62,7 @@ int _Xaw_iswspace
#endif
#include <stdlib.h>
+#include <unistd.h>
#ifdef USE_XWCHAR_STRING
int _Xwcslen
diff --git a/libXaw/src/makefile b/libXaw/src/makefile
new file mode 100644
index 000000000..b0dde1df9
--- /dev/null
+++ b/libXaw/src/makefile
@@ -0,0 +1,53 @@
+LIBRARY = libXaw
+INCLUDES := .. ../include ../include/X11 $(INCLUDES)
+
+DEFINES += XT_NO_SM
+
+CSRCS = \
+ Actions.c \
+ AllWidgets.c \
+ AsciiSink.c \
+ AsciiSrc.c \
+ AsciiText.c \
+ Box.c \
+ Command.c \
+ Converters.c \
+ Dialog.c \
+ DisplayList.c \
+ Form.c \
+ Grip.c \
+ Label.c \
+ List.c \
+ MenuButton.c \
+ MultiSrc.c \
+ MultiSink.c \
+ OS.c \
+ Paned.c \
+ Panner.c \
+ Pixmap.c \
+ Porthole.c \
+ Repeater.c \
+ Scrollbar.c \
+ Simple.c \
+ SimpleMenu.c \
+ Sme.c \
+ SmeBSB.c \
+ SmeLine.c \
+ StripChart.c \
+ Text.c \
+ TextSink.c \
+ TextSrc.c \
+ TextAction.c \
+ TextPop.c \
+ TextTr.c \
+ Toggle.c \
+ Tree.c \
+ Vendor.c \
+ Viewport.c \
+ XawIm.c \
+ XawInit.c \
+ XawI18n.c \
+ Tip.c
+
+
+DEFINES += XAW7
diff --git a/libXdmcp/Key.c b/libXdmcp/Key.c
index a09b316f4..bdefe2b71 100644
--- a/libXdmcp/Key.c
+++ b/libXdmcp/Key.c
@@ -55,12 +55,6 @@ getbits (long data, unsigned char *dst)
#define srandom srand48
#define random lrand48
#endif
-#ifdef WIN32
-#include <process.h>
-#define srandom srand
-#define random rand
-#define getpid(x) _getpid(x)
-#endif
void
XdmcpGenerateKey (XdmAuthKeyPtr key)
diff --git a/libXdmcp/Write.c b/libXdmcp/Write.c
index 8eb9c5043..4222ce490 100644
--- a/libXdmcp/Write.c
+++ b/libXdmcp/Write.c
@@ -99,7 +99,7 @@ XdmcpWriteARRAY32 (XdmcpBufferPtr buffer, const ARRAY32Ptr array)
}
int
-XdmcpWriteARRAYofARRAY8 (XdmcpBufferPtr buffer, ARRAYofARRAY8Ptr array)
+XdmcpWriteARRAYofARRAY8 (XdmcpBufferPtr buffer, const ARRAYofARRAY8Ptr array)
{
int i;
diff --git a/libXdmcp/config.h b/libXdmcp/config.h
new file mode 100644
index 000000000..01a75ec0d
--- /dev/null
+++ b/libXdmcp/config.h
@@ -0,0 +1,248 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Has Wraphelp.c needed for XDM AUTH protocols */
+#define HASXDMAUTH 1
+
+/* Define to 1 if `struct sockaddr_in' has a `sin_len' member */
+/* #undef BSD44SOCKETS */
+
+/* Include compose table cache support */
+#define COMPOSECACHE 1
+
+/* Has getresuid() & getresgid() functions */
+/* #undef HASGETRESUID */
+
+/* Has issetugid() function */
+/* #undef HASSETUGID */
+
+/* Has shm*() functions */
+//MH#define HAS_SHM 1
+
+/* Define to 1 if you have the `authdes_create' function. */
+/* #undef HAVE_AUTHDES_CREATE */
+
+/* Define to 1 if you have the `authdes_seccreate' function. */
+/* #undef HAVE_AUTHDES_SECCREATE */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the <endian.h> header file. */
+#define HAVE_ENDIAN_H 1
+
+/* Use dlopen to load shared libraries */
+#define HAVE_DLOPEN 1
+
+/* Define to 1 if you have the <dl.h> header file. */
+/* #undef HAVE_DL_H */
+
+/* Define to 1 if you have the `getpagesize' function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* launchd support available */
+/* #undef HAVE_LAUNCHD */
+
+/* Define to 1 if you have the `lrand48' function. */
+#undef HAVE_LRAND48
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the `srand48' function. */
+#undef HAVE_SRAND48
+
+/* Define to 1 if you have the `poll' function. */
+#define HAVE_POLL 1
+
+/* Define to 1 if you have a working `mmap' system call. */
+#define HAVE_MMAP 1
+
+/* Use shl_load to load shared libraries */
+/* #undef HAVE_SHL_LOAD */
+
+/* Define to 1 if the system has the type `socklen_t'. */
+#define HAVE_SOCKLEN_T 0
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/poll.h> header file. */
+#define HAVE_SYS_POLL_H 1
+
+/* Define to 1 if you have the `strtol' function. */
+#define HAVE_STRTOL 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Support IPv6 for TCP connections */
+/* #undef IPv6 */
+
+/* Support dynamically loaded font modules */
+#define LOADABLEFONTS 1
+
+/* Support os-specific local connections */
+/* #undef LOCALCONN */
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#define LT_OBJDIR ".libs/"
+
+/* Disable XLOCALEDIR environment variable */
+#define NO_XLOCALEDIR 1
+
+/* Name of package */
+#define PACKAGE "libXdmcp"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "libXdmcp"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "libXdmcp 1.0.3"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "libXdmcp"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "1.0.3"
+
+/* Major version of this package */
+#define PACKAGE_VERSION_MAJOR 1
+
+/* Minor version of this package */
+#define PACKAGE_VERSION_MINOR 0
+
+/* Patch version of this package */
+#define PACKAGE_VERSION_PATCHLEVEL 3
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+/* #undef RETSIGTYPE */
+
+/* Support Secure RPC ("SUN-DES-1") authentication for X11 clients */
+/* #undef SECURE_RPC */
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Support TCP socket connections */
+#define TCPCONN 1
+
+/* launchd support available */
+/* #undef TRANS_REOPEN */
+
+/* Support UNIX socket connections */
+#define UNIXCONN 1
+
+/* Split some i18n functions into loadable modules */
+/* #undef USE_DYNAMIC_LC */
+
+/* Use the X cursor library to load cursors */
+#define USE_DYNAMIC_XCURSOR 1
+
+/* poll() function is available */
+#define USE_POLL 1
+
+/* Use XCB for low-level protocol implementation */
+#define USE_XCB 1
+
+/* Version number of package */
+#define VERSION "1.0.3"
+
+/* Support bdf format bitmap font files */
+#define XFONT_BDFFORMAT 1
+
+/* Location of libX11 data */
+#define X11_DATADIR "/usr/share/X11"
+
+/* Location of libX11 library data */
+#define X11_LIBDIR "/usr/lib/X11"
+
+/* Include support for XCMS */
+#define XCMS 1
+
+/* Location of error message database */
+#define XERRORDB "XErrorDB"
+
+/* Enable XF86BIGFONT extension */
+/* #undef XF86BIGFONT */
+
+/* Use XKB */
+#define XKB 1
+
+/* Location of keysym database */
+#define XKEYSYMDB "XKeysymDB"
+
+/* support for X Locales */
+#define XLOCALE 1
+
+/* Location of libX11 locale data */
+#define XLOCALEDATADIR "locale"
+
+/* Location of libX11 locale data */
+#define XLOCALEDIR "locale"
+
+/* Location of libX11 locale libraries */
+#define XLOCALELIBDIR "locale"
+
+/* Whether libX11 is compiled with thread support */
+#define XTHREADS /**/
+
+/* Whether libX11 needs to use MT safe API's */
+#define XUSE_MTSAFE_API /**/
+
+/* Enable GNU and other extensions to the C environment for glibc */
+/* #undef _GNU_SOURCE */
+
+/* Support bitmap font files */
+#define XFONT_BITMAP 1
+
+/* Support built-in fonts */
+#define XFONT_BUILTINS 1
+
+/* Support the X Font Services Protocol */
+#define XFONT_FC 1
+
+/* Support fonts in files */
+#define XFONT_FONTFILE 1
+
+/* Support FreeType rasterizer for nearly all font file formats */
+#define XFONT_FREETYPE 1
+
+/* Support pcf format bitmap font files */
+#define XFONT_PCFFORMAT 1
+
+/* Support snf format bitmap font files */
+#define XFONT_SNFFORMAT 1
+
+/* Support Speedo font files */
+#define XFONT_SPEEDO 1
+
+/* Support IBM Type 1 rasterizer for Type1 font files */
+#define XFONT_TYPE1 1
+
+/* Support bzip2 for bitmap fonts */
+/* #undef X_BZIP2_FONT_COMPRESSION */
+
+/* Support gzip for bitmap fonts */
+#define X_GZIP_FONT_COMPRESSION 1
diff --git a/libXdmcp/makefile b/libXdmcp/makefile
new file mode 100644
index 000000000..d1ca6f54f
--- /dev/null
+++ b/libXdmcp/makefile
@@ -0,0 +1,15 @@
+LIBRARY = libXdmcp
+
+INCLUDES := $(MHMAKECONF)\xdmcp\build $(INCLUDES)
+
+CSRCS = \
+ Array.c \
+ Fill.c \
+ Flush.c \
+ Key.c \
+ Read.c \
+ Unwrap.c \
+ Wrap.c \
+ Wraphelp.c \
+ Write.c
+
diff --git a/libXext/include/X11/extensions/extutil.h b/libXext/include/X11/extensions/extutil.h
index b22843068..074cc183a 100644
--- a/libXext/include/X11/extensions/extutil.h
+++ b/libXext/include/X11/extensions/extutil.h
@@ -34,6 +34,7 @@ in this Software without prior written authorization from The Open Group.
#ifndef _EXTUTIL_H_
#define _EXTUTIL_H_
+#include <unistd.h>
#include <X11/extensions/Xext.h>
/*
diff --git a/libXext/src/XAppgroup.c b/libXext/src/XAppgroup.c
index b5642f3ba..b1c6fd1f8 100644
--- a/libXext/src/XAppgroup.c
+++ b/libXext/src/XAppgroup.c
@@ -337,7 +337,7 @@ Bool
XagCreateAssociation(Display* dpy, Window* window_return, void* system_window)
{
#ifdef WIN32
- long tmp = *(HWND*) system_window;
+ HWND tmp = *(HWND*) system_window;
XExtDisplayInfo *info = find_display (dpy);
xXagCreateAssocReq *req;
@@ -350,7 +350,7 @@ XagCreateAssociation(Display* dpy, Window* window_return, void* system_window)
*window_return = req->window = XAllocID(dpy);
req->window_type = XagWindowTypeWin32;
req->system_window_len = sizeof(HWND);
- Data32 (dpy, (long*) tmp, 1L);
+ Data32 (dpy, (HWND*) tmp, sizeof(HWND)/4);
req->length++;
UnlockDisplay(dpy);
SyncHandle();
diff --git a/libXext/src/libXext.def b/libXext/src/libXext.def
new file mode 100644
index 000000000..ceb636cf9
--- /dev/null
+++ b/libXext/src/libXext.def
@@ -0,0 +1,8 @@
+LIBRARY libXext
+EXPORTS
+ XSecurityGenerateAuthorization
+ XSecurityFreeXauth
+ XSecurityQueryExtension
+ XSecurityAllocXauth
+ XShapeCombineMask
+ XShapeQueryExtension \ No newline at end of file
diff --git a/libXext/src/makefile b/libXext/src/makefile
new file mode 100644
index 000000000..23d2a0946
--- /dev/null
+++ b/libXext/src/makefile
@@ -0,0 +1,30 @@
+SHAREDLIB = libXext
+
+INCLUDES := ..\include $(INCLUDES)
+
+INCLUDELIBFILES = \
+ $(MHMAKECONF)\libX11\$(OBJDIR)\libX11.lib
+
+LIBDIRS=$(dir $(INCLUDELIBFILES))
+
+load_makefile $(LIBDIRS:%$(OBJDIR)\=%makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+
+CSRCS = \
+ DPMS.c \
+ MITMisc.c \
+ XAppgroup.c \
+ XEVI.c \
+ XLbx.c \
+ XMultibuf.c \
+ XSecurity.c \
+ XShape.c \
+ XShm.c \
+ XSync.c \
+ XTestExt1.c \
+ Xcup.c \
+ Xdbe.c \
+ Xge.c \
+ extutil.c \
+ globals.c
+
diff --git a/libXfont/config.h b/libXfont/config.h
new file mode 100644
index 000000000..2f66903bc
--- /dev/null
+++ b/libXfont/config.h
@@ -0,0 +1,31 @@
+/* Support bdf format bitmap font files */
+#define XFONT_BDFFORMAT 1
+
+/* Support bitmap font files */
+#define XFONT_BITMAP 1
+
+/* Support built-in fonts */
+#define XFONT_BUILTINS 1
+
+/* Support the X Font Services Protocol */
+#define XFONT_FC 1
+
+/* Support fonts in files */
+#define XFONT_FONTFILE 1
+
+/* Support FreeType rasterizer for nearly all font file formats */
+#define XFONT_FREETYPE 1
+
+/* Support pcf format bitmap font files */
+#define XFONT_PCFFORMAT 1
+
+/* Support snf format bitmap font files */
+#define XFONT_SNFFORMAT 1
+
+/* Support bzip2 for bitmap fonts */
+#undef X_BZIP2_FONT_COMPRESSION
+
+/* Support gzip for bitmap fonts */
+#define X_GZIP_FONT_COMPRESSION 1
+
+#include <dix-config.h>
diff --git a/libXfont/src/FreeType/ftenc.c b/libXfont/src/FreeType/ftenc.c
index 9e31d7529..08e206c2a 100644
--- a/libXfont/src/FreeType/ftenc.c
+++ b/libXfont/src/FreeType/ftenc.c
@@ -31,7 +31,7 @@ THE SOFTWARE.
#include <X11/fonts/fontmisc.h>
#include <X11/fonts/fontenc.h>
-#include <ft2build.h>
+#include <config/ftheader.h>
#include FT_FREETYPE_H
#include FT_TRUETYPE_IDS_H
#include FT_TRUETYPE_TABLES_H
diff --git a/libXfont/src/FreeType/ftfuncs.c b/libXfont/src/FreeType/ftfuncs.c
index 918e3f37e..95873fa07 100644
--- a/libXfont/src/FreeType/ftfuncs.c
+++ b/libXfont/src/FreeType/ftfuncs.c
@@ -34,6 +34,7 @@ THE SOFTWARE.
#include <string.h>
#include <math.h>
#include <ctype.h>
+#include <unistd.h>
#include <X11/fonts/fntfilst.h>
#include <X11/fonts/fontutil.h>
@@ -130,6 +131,9 @@ sfnt_get_ushort( FT_Face face,
#define sfnt_get_short(f,t,o) ((FT_Short)sfnt_get_ushort((f),(t),(o)))
+#ifdef _MSC_VER
+#define hypot _hypot
+#endif
static int ftypeInitP = 0; /* is the engine initialised? */
FT_Library ftypeLibrary;
@@ -1465,7 +1469,7 @@ FreeTypeRasteriseGlyph(unsigned idx, int flags, CharInfoPtr tgp,
current_raster[j]|=current_buffer[jj]>>mod_dx0;
j++; prev_jj++; jj++;
for( ; j<bpr ; j++,prev_jj++,jj++ ){
- current_raster[j]|=current_buffer[prev_jj]<<mod_dx1;
+ current_raster[j]|=(current_buffer[prev_jj]<<mod_dx1)&0xff;
if( bitmap->pitch <= jj ) break;
current_raster[j]|=current_buffer[jj]>>mod_dx0;
}
diff --git a/libXfont/src/FreeType/fttools.c b/libXfont/src/FreeType/fttools.c
index bc75b7e4f..a0e34d021 100644
--- a/libXfont/src/FreeType/fttools.c
+++ b/libXfont/src/FreeType/fttools.c
@@ -40,6 +40,13 @@
#define MSBFirst 1
#endif
+#ifdef LOBYTE
+#undef LOBYTE
+#endif
+#ifdef HIBYTE
+#undef HIBYTE
+#endif
+
#define LOBYTE(s,byte) ((byte)==LSBFirst?*(char*)(s):*((char*)(s)+1))
#define HIBYTE(s,byte) ((byte)==LSBFirst?*((char*)(s)+1):*(char*)(s))
diff --git a/libXfont/src/FreeType/makefile b/libXfont/src/FreeType/makefile
new file mode 100644
index 000000000..8d4fee2b6
--- /dev/null
+++ b/libXfont/src/FreeType/makefile
@@ -0,0 +1,15 @@
+LIBRARY = libft
+
+CSRCS = \
+ ftenc.c \
+ ftfuncs.c \
+ fttools.c \
+ xttcap.c
+
+INCLUDES += $(MHMAKECONF)\freetype\include\freetype $(MHMAKECONF)\freetype\include
+
+DEFINES += strcasecmp=_stricmp
+
+INCLUDES := ../.. $(INCLUDES)
+
+
diff --git a/libXfont/src/bitmap/bitmapfunc.c b/libXfont/src/bitmap/bitmapfunc.c
index 47ce488d0..653ff5d55 100644
--- a/libXfont/src/bitmap/bitmapfunc.c
+++ b/libXfont/src/bitmap/bitmapfunc.c
@@ -101,6 +101,7 @@ static BitmapFileFunctionsRec readers[] = {
{ bdfReadFont, bdfReadFontInfo} ,
# endif
#endif
+ { NULL, NULL }
};
@@ -229,9 +230,10 @@ static FontRendererRec renderers[] = {
CAPABILITIES },
# endif
#endif
+ { NULL, 0, NULL, 0, NULL, NULL, 0, 0 }
};
-#define numRenderers (sizeof renderers / sizeof renderers[0])
+#define numRenderers (sizeof renderers / sizeof renderers[0] - 1)
void
BitmapRegisterFontFileFunctions (void)
diff --git a/libXfont/src/bitmap/bitmaputil.c b/libXfont/src/bitmap/bitmaputil.c
index 0a1c87e73..7ac94b3fb 100644
--- a/libXfont/src/bitmap/bitmaputil.c
+++ b/libXfont/src/bitmap/bitmaputil.c
@@ -34,13 +34,9 @@ from The Open Group.
#include <X11/fonts/bitmap.h>
#include <X11/fonts/bdfint.h>
-#ifndef MAXSHORT
#define MAXSHORT 32767
-#endif
-#ifndef MINSHORT
#define MINSHORT -32768
-#endif
static xCharInfo initMinMetrics = {
MAXSHORT, MAXSHORT, MAXSHORT, MAXSHORT, MAXSHORT, 0xFFFF};
diff --git a/libXfont/src/bitmap/bitscale.c b/libXfont/src/bitmap/bitscale.c
index e89ba7ce0..130dffd86 100644
--- a/libXfont/src/bitmap/bitscale.c
+++ b/libXfont/src/bitmap/bitscale.c
@@ -59,6 +59,10 @@ from The Open Group.
#define MAX(a,b) (((a)>(b)) ? a : b)
#endif
+#ifdef _MSC_VER
+#define hypot _hypot
+#endif
+
/* Should get this from elsewhere */
extern unsigned long serverGeneration;
diff --git a/libXfont/src/bitmap/makefile b/libXfont/src/bitmap/makefile
new file mode 100644
index 000000000..f7ea10fdc
--- /dev/null
+++ b/libXfont/src/bitmap/makefile
@@ -0,0 +1,16 @@
+LIBRARY = libbitmap
+
+CSRCS = \
+ bdfread.c \
+ bdfutils.c \
+ bitmap.c \
+ bitmapfunc.c \
+ bitmaputil.c \
+ bitscale.c \
+ fontink.c \
+ pcfread.c \
+ pcfwrite.c \
+ snfread.c
+
+INCLUDES := ../.. $(INCLUDES)
+
diff --git a/libXfont/src/builtins/dir.c b/libXfont/src/builtins/dir.c
index bf351b147..cd50cef56 100644
--- a/libXfont/src/builtins/dir.c
+++ b/libXfont/src/builtins/dir.c
@@ -25,6 +25,7 @@
#include <config.h>
#endif
#include "builtin.h"
+#include <unistd.h>
static BuiltinDirPtr
BuiltinDirsDup (const BuiltinDirPtr a_dirs,
diff --git a/libXfont/src/builtins/makefile b/libXfont/src/builtins/makefile
new file mode 100644
index 000000000..dac4fcf8c
--- /dev/null
+++ b/libXfont/src/builtins/makefile
@@ -0,0 +1,10 @@
+LIBRARY = libbuiltins
+
+CSRCS = dir.c \
+ file.c \
+ fonts.c \
+ fpe.c \
+ render.c
+
+INCLUDES := ../.. $(INCLUDES)
+
diff --git a/libXfont/src/fc/fsio.c b/libXfont/src/fc/fsio.c
index 4deab8876..3d2aa502d 100644
--- a/libXfont/src/fc/fsio.c
+++ b/libXfont/src/fc/fsio.c
@@ -32,6 +32,7 @@
#ifdef WIN32
#define _WILLWINSOCK_
+#include "X11/Xwinsock.h"
#include "X11/Xwindows.h"
#endif
@@ -57,6 +58,7 @@
#endif
#include <errno.h>
#ifdef WIN32
+#undef EWOULDBLOCK
#define EWOULDBLOCK WSAEWOULDBLOCK
#undef EINTR
#define EINTR WSAEINTR
diff --git a/libXfont/src/fc/fstrans.c b/libXfont/src/fc/fstrans.c
index c334c2504..74a884e63 100644
--- a/libXfont/src/fc/fstrans.c
+++ b/libXfont/src/fc/fstrans.c
@@ -22,6 +22,7 @@
#ifdef HAVE_CONFIG_H
#include <config.h>
+#include <dix-config.h>
#endif
#define FONT_t
#define TRANS_CLIENT
diff --git a/libXfont/src/fc/makefile b/libXfont/src/fc/makefile
new file mode 100644
index 000000000..a4b105d26
--- /dev/null
+++ b/libXfont/src/fc/makefile
@@ -0,0 +1,10 @@
+
+INCLUDES := ../.. $(INCLUDES)
+
+LIBRARY = libfc
+
+CSRCS =\
+ fsconvert.c \
+ fserve.c \
+ fsio.c \
+ fstrans.c
diff --git a/libXfont/src/fontfile/catalogue.c b/libXfont/src/fontfile/catalogue.c
index 09ca2ae8a..75eb4e3a3 100644
--- a/libXfont/src/fontfile/catalogue.c
+++ b/libXfont/src/fontfile/catalogue.c
@@ -27,6 +27,7 @@
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
+#include <X11/Xwindows.h>
#ifdef HAVE_READLINK
#include <X11/fonts/fntfilst.h>
@@ -142,7 +143,7 @@ CatalogueRescan (FontPathElementPtr fpe, Bool forceScan)
int pathlen;
path = fpe->name + strlen(CataloguePrefix);
- if (stat(path, &statbuf) < 0 || !S_ISDIR(statbuf.st_mode))
+ if (stat(path, &statbuf) < 0 || (statbuf.st_mode&_S_IFDIR))
return BadFontPath;
if ((forceScan == FALSE) && (statbuf.st_mtime <= cat->mtime))
@@ -156,6 +157,7 @@ CatalogueRescan (FontPathElementPtr fpe, Bool forceScan)
}
CatalogueUnrefFPEs (fpe);
+ #ifndef _MSC_VER
while (entry = readdir(dir), entry != NULL)
{
snprintf(link, sizeof link, "%s/%s", path, entry->d_name);
@@ -220,6 +222,7 @@ CatalogueRescan (FontPathElementPtr fpe, Bool forceScan)
continue;
}
}
+ #endif
closedir(dir);
diff --git a/libXfont/src/fontfile/fontfile.c b/libXfont/src/fontfile/fontfile.c
index eb37a8705..7372d3ece 100644
--- a/libXfont/src/fontfile/fontfile.c
+++ b/libXfont/src/fontfile/fontfile.c
@@ -36,6 +36,12 @@ in this Software without prior written authorization from The Open Group.
#ifdef WIN32
#include <ctype.h>
#endif
+#ifdef _MSC_VER
+#define BOOL W32BOOL
+#include <windows.h>
+#undef _X_HIDDEN
+#define _X_HIDDEN static
+#endif
static unsigned char
ISOLatin1ToLower(unsigned char source)
@@ -49,7 +55,7 @@ ISOLatin1ToLower(unsigned char source)
return source;
}
-_X_HIDDEN void
+void
CopyISOLatin1Lowered(char *dest, char *source, int length)
{
int i;
@@ -71,6 +77,32 @@ static int FontFileOpenBitmapNCF (FontPathElementPtr fpe, FontPtr *pFont,
int
FontFileNameCheck (char *name)
{
+#ifdef _MSC_VER
+ WIN32_FIND_DATA FindData;
+ HANDLE hFind;
+ char Tmp;
+ int LenName=strlen(name)-1;
+ Tmp=name[LenName];
+ if (Tmp=='/')
+ name[LenName]=0;
+ hFind=FindFirstFile(name,&FindData);
+ name[LenName]=Tmp;
+
+ if (hFind==INVALID_HANDLE_VALUE)
+ {
+ return 0;
+ }
+ else
+ {
+ FindClose(hFind);
+ if (FindData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
+ {
+ return 1;
+ }
+ return 0;
+ }
+
+#else
#ifndef NCD
#if defined(WIN32)
/* OS/2 uses D:/... as a path name for fonts, so accept this as a valid
@@ -83,6 +115,7 @@ FontFileNameCheck (char *name)
#else
return ((strcmp(name, "built-ins") == 0) || (*name == '/'));
#endif
+#endif
}
int
diff --git a/libXfont/src/fontfile/fontscale.c b/libXfont/src/fontfile/fontscale.c
index 55aca298a..eb8d0bb58 100644
--- a/libXfont/src/fontfile/fontscale.c
+++ b/libXfont/src/fontfile/fontscale.c
@@ -34,6 +34,10 @@ in this Software without prior written authorization from The Open Group.
#include <X11/fonts/fntfilst.h>
#include <math.h>
+#ifdef _MSC_VER
+#define hypot _hypot
+#endif
+
Bool
FontFileAddScaledInstance (FontEntryPtr entry, FontScalablePtr vals,
FontPtr pFont, char *bitmapName)
diff --git a/libXfont/src/fontfile/makefile b/libXfont/src/fontfile/makefile
new file mode 100644
index 000000000..619cdbdbb
--- /dev/null
+++ b/libXfont/src/fontfile/makefile
@@ -0,0 +1,24 @@
+
+LIBRARY = libfontfile
+
+DEFINES += X_GZIP_FONT_COMPRESSION
+
+CSRCS = bitsource.c \
+ bufio.c \
+ decompress.c \
+ defaults.c \
+ dirfile.c \
+ fileio.c \
+ filewr.c \
+ fontdir.c \
+ fontencc.c \
+ fontfile.c \
+ fontscale.c \
+ gunzip.c \
+ register.c \
+ renderers.c \
+ catalogue.c
+
+INCLUDES := ../.. $(INCLUDES)
+
+
diff --git a/libXfont/src/fontfile/renderers.c b/libXfont/src/fontfile/renderers.c
index a9e4bef53..e17d6a77e 100644
--- a/libXfont/src/fontfile/renderers.c
+++ b/libXfont/src/fontfile/renderers.c
@@ -32,6 +32,7 @@ in this Software without prior written authorization from The Open Group.
#include <config.h>
#endif
#include <X11/fonts/fntfilst.h>
+#include <unistd.h>
extern void ErrorF(const char *f, ...);
static FontRenderersRec renderers;
diff --git a/libXfont/src/stubs/makefile b/libXfont/src/stubs/makefile
new file mode 100644
index 000000000..e028dd5db
--- /dev/null
+++ b/libXfont/src/stubs/makefile
@@ -0,0 +1,26 @@
+LIBRARY = libstubs
+
+CSRCS = \
+ cauthgen.c \
+ csignal.c \
+ delfntcid.c \
+ errorf.c \
+ fatalerror.c \
+ findoldfnt.c \
+ getcres.c \
+ getdefptsize.c \
+ getnewfntcid.c \
+ gettime.c \
+ initfshdl.c \
+ regfpefunc.c \
+ rmfshdl.c \
+ servclient.c \
+ setfntauth.c \
+ stfntcfnt.c \
+ stubs.h
+
+CSRCS:=$(filter-out %.h,$(CSRCS))
+
+INCLUDES := ../.. $(INCLUDES)
+
+
diff --git a/libXfont/src/util/fontxlfd.c b/libXfont/src/util/fontxlfd.c
index 974128ee3..ace87809b 100644
--- a/libXfont/src/util/fontxlfd.c
+++ b/libXfont/src/util/fontxlfd.c
@@ -33,6 +33,7 @@ from The Open Group.
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
+#include <float.h>
#include <X11/fonts/fontmisc.h>
#include <X11/fonts/fontstruct.h>
#include <X11/fonts/fontxlfd.h>
@@ -194,7 +195,6 @@ xlfd_round_double(double x)
defined(__hppa__) || \
defined(__amd64__) || defined(__amd64) || \
defined(sgi)
-#include <float.h>
/* if we have IEEE 754 fp, we can round to binary digits... */
@@ -234,7 +234,7 @@ xlfd_round_double(double x)
j = 1 << ((DBL_MANT_DIG-XLFD_NDIGITS_2) & 0x07);
for (; i<7; i++) {
k = d.b[i] + j;
- d.b[i] = k;
+ d.b[i] = k&0xff;
if (k & 0x100) j = 1;
else break;
}
diff --git a/libXfont/src/util/makefile b/libXfont/src/util/makefile
new file mode 100644
index 000000000..53b5560a3
--- /dev/null
+++ b/libXfont/src/util/makefile
@@ -0,0 +1,17 @@
+LIBRARY = libutil
+
+INCLUDES += ../stubs
+
+INCLUDES := ../.. $(INCLUDES)
+
+CSRCS = \
+ atom.c \
+ fontaccel.c \
+ fontnames.c \
+ fontutil.c \
+ fontxlfd.c \
+ format.c \
+ miscutil.c \
+ patcache.c \
+ private.c \
+ utilbitmap.c
diff --git a/libXft/.gitignore b/libXft/.gitignore
deleted file mode 100644
index 467810868..000000000
--- a/libXft/.gitignore
+++ /dev/null
@@ -1,78 +0,0 @@
-#
-# X.Org module default exclusion patterns
-# The next section if for module specific patterns
-#
-# Do not edit the following section
-# GNU Build System (Autotools)
-aclocal.m4
-autom4te.cache/
-autoscan.log
-ChangeLog
-compile
-config.guess
-config.h
-config.h.in
-config.log
-config-ml.in
-config.py
-config.status
-config.status.lineno
-config.sub
-configure
-configure.scan
-depcomp
-.deps/
-INSTALL
-install-sh
-.libs/
-libtool
-libtool.m4
-ltmain.sh
-lt~obsolete.m4
-ltoptions.m4
-ltsugar.m4
-ltversion.m4
-Makefile
-Makefile.in
-mdate-sh
-missing
-mkinstalldirs
-*.pc
-py-compile
-stamp-h?
-symlink-tree
-texinfo.tex
-ylwrap
-
-# Do not edit the following section
-# Edit Compile Debug Document Distribute
-*~
-*.[0-9]
-*.[0-9]x
-*.bak
-*.bin
-core
-*.dll
-*.exe
-*-ISO*.bdf
-*-JIS*.bdf
-*-KOI8*.bdf
-*.kld
-*.ko
-*.ko.cmd
-*.lai
-*.l[oa]
-*.[oa]
-*.obj
-*.patch
-*.so
-*.pcf.gz
-*.pdb
-*.tar.bz2
-*.tar.gz
-#
-# Add & Override patterns for libXft
-#
-# Edit the following section as needed
-# For example, !report.pc overrides *.pc. See 'man gitignore'
-#
diff --git a/libXft/include/X11/Xft/.gitignore b/libXft/include/X11/Xft/.gitignore
deleted file mode 100644
index 2aa4925cb..000000000
--- a/libXft/include/X11/Xft/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-# Add & Override for this directory and it's subdirectories
-Xft.h
diff --git a/libXft/include/X11/Xft/Xft.h b/libXft/include/X11/Xft/Xft.h
new file mode 100644
index 000000000..f79cc593c
--- /dev/null
+++ b/libXft/include/X11/Xft/Xft.h
@@ -0,0 +1,617 @@
+/*
+ * Copyright © 2000 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 Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. Keith Packard makes no
+ * representations about the suitability of this software for any purpose. It
+ * is provided "as is" without express or implied warranty.
+ *
+ * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL KEITH PACKARD 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.
+ */
+
+#ifndef _XFT_H_
+#define _XFT_H_
+
+/*
+ * Current Xft version number, set from version in the Xft configure.ac file.
+ */
+/* #undef will be substituted by configure */
+#define XFT_MAJOR 2
+#define XFT_MINOR 2
+#define XFT_REVISION 0
+
+#define XFT_VERSION ((XFT_MAJOR * 10000) + (XFT_MINOR * 100) + (XFT_REVISION))
+#define XftVersion XFT_VERSION
+
+#include <stdarg.h>
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include <fontconfig/fontconfig.h>
+#include <X11/extensions/Xrender.h>
+
+#include <X11/Xfuncproto.h>
+/* #include <X11/Xosdefs.h>*/
+#ifndef _X_SENTINEL
+# define _X_SENTINEL(x)
+#endif
+
+#ifndef _XFT_NO_COMPAT_
+#include <X11/Xft/XftCompat.h>
+#endif
+
+#define XFT_CORE "core"
+#define XFT_RENDER "render"
+#define XFT_XLFD "xlfd"
+#define XFT_MAX_GLYPH_MEMORY "maxglyphmemory"
+#define XFT_MAX_UNREF_FONTS "maxunreffonts"
+
+extern FT_Library _XftFTlibrary;
+
+typedef struct _XftFontInfo XftFontInfo;
+
+typedef struct _XftFont {
+ int ascent;
+ int descent;
+ int height;
+ int max_advance_width;
+ FcCharSet *charset;
+ FcPattern *pattern;
+} XftFont;
+
+typedef struct _XftDraw XftDraw;
+
+typedef struct _XftColor {
+ unsigned long pixel;
+ XRenderColor color;
+} XftColor;
+
+typedef struct _XftCharSpec {
+ FcChar32 ucs4;
+ short x;
+ short y;
+} XftCharSpec;
+
+typedef struct _XftCharFontSpec {
+ XftFont *font;
+ FcChar32 ucs4;
+ short x;
+ short y;
+} XftCharFontSpec;
+
+typedef struct _XftGlyphSpec {
+ FT_UInt glyph;
+ short x;
+ short y;
+} XftGlyphSpec;
+
+typedef struct _XftGlyphFontSpec {
+ XftFont *font;
+ FT_UInt glyph;
+ short x;
+ short y;
+} XftGlyphFontSpec;
+
+_XFUNCPROTOBEGIN
+
+
+/* xftcolor.c */
+Bool
+XftColorAllocName (Display *dpy,
+ _Xconst Visual *visual,
+ Colormap cmap,
+ _Xconst char *name,
+ XftColor *result);
+
+Bool
+XftColorAllocValue (Display *dpy,
+ Visual *visual,
+ Colormap cmap,
+ _Xconst XRenderColor *color,
+ XftColor *result);
+
+void
+XftColorFree (Display *dpy,
+ Visual *visual,
+ Colormap cmap,
+ XftColor *color);
+
+/* xftdpy.c */
+Bool
+XftDefaultHasRender (Display *dpy);
+
+Bool
+XftDefaultSet (Display *dpy, FcPattern *defaults);
+
+void
+XftDefaultSubstitute (Display *dpy, int screen, FcPattern *pattern);
+
+/* xftdraw.c */
+
+XftDraw *
+XftDrawCreate (Display *dpy,
+ Drawable drawable,
+ Visual *visual,
+ Colormap colormap);
+
+XftDraw *
+XftDrawCreateBitmap (Display *dpy,
+ Pixmap bitmap);
+
+XftDraw *
+XftDrawCreateAlpha (Display *dpy,
+ Pixmap pixmap,
+ int depth);
+
+void
+XftDrawChange (XftDraw *draw,
+ Drawable drawable);
+
+Display *
+XftDrawDisplay (XftDraw *draw);
+
+Drawable
+XftDrawDrawable (XftDraw *draw);
+
+Colormap
+XftDrawColormap (XftDraw *draw);
+
+Visual *
+XftDrawVisual (XftDraw *draw);
+
+void
+XftDrawDestroy (XftDraw *draw);
+
+Picture
+XftDrawPicture (XftDraw *draw);
+
+Picture
+XftDrawSrcPicture (XftDraw *draw, _Xconst XftColor *color);
+
+void
+XftDrawGlyphs (XftDraw *draw,
+ _Xconst XftColor *color,
+ XftFont *pub,
+ int x,
+ int y,
+ _Xconst FT_UInt *glyphs,
+ int nglyphs);
+
+void
+XftDrawString8 (XftDraw *draw,
+ _Xconst XftColor *color,
+ XftFont *pub,
+ int x,
+ int y,
+ _Xconst FcChar8 *string,
+ int len);
+
+void
+XftDrawString16 (XftDraw *draw,
+ _Xconst XftColor *color,
+ XftFont *pub,
+ int x,
+ int y,
+ _Xconst FcChar16 *string,
+ int len);
+
+void
+XftDrawString32 (XftDraw *draw,
+ _Xconst XftColor *color,
+ XftFont *pub,
+ int x,
+ int y,
+ _Xconst FcChar32 *string,
+ int len);
+
+void
+XftDrawStringUtf8 (XftDraw *draw,
+ _Xconst XftColor *color,
+ XftFont *pub,
+ int x,
+ int y,
+ _Xconst FcChar8 *string,
+ int len);
+
+void
+XftDrawStringUtf16 (XftDraw *draw,
+ _Xconst XftColor *color,
+ XftFont *pub,
+ int x,
+ int y,
+ _Xconst FcChar8 *string,
+ FcEndian endian,
+ int len);
+
+void
+XftDrawCharSpec (XftDraw *draw,
+ _Xconst XftColor *color,
+ XftFont *pub,
+ _Xconst XftCharSpec *chars,
+ int len);
+
+void
+XftDrawCharFontSpec (XftDraw *draw,
+ _Xconst XftColor *color,
+ _Xconst XftCharFontSpec *chars,
+ int len);
+
+void
+XftDrawGlyphSpec (XftDraw *draw,
+ _Xconst XftColor *color,
+ XftFont *pub,
+ _Xconst XftGlyphSpec *glyphs,
+ int len);
+
+void
+XftDrawGlyphFontSpec (XftDraw *draw,
+ _Xconst XftColor *color,
+ _Xconst XftGlyphFontSpec *glyphs,
+ int len);
+
+void
+XftDrawRect (XftDraw *draw,
+ _Xconst XftColor *color,
+ int x,
+ int y,
+ unsigned int width,
+ unsigned int height);
+
+
+Bool
+XftDrawSetClip (XftDraw *draw,
+ Region r);
+
+
+Bool
+XftDrawSetClipRectangles (XftDraw *draw,
+ int xOrigin,
+ int yOrigin,
+ _Xconst XRectangle *rects,
+ int n);
+
+void
+XftDrawSetSubwindowMode (XftDraw *draw,
+ int mode);
+
+/* xftextent.c */
+
+void
+XftGlyphExtents (Display *dpy,
+ XftFont *pub,
+ _Xconst FT_UInt *glyphs,
+ int nglyphs,
+ XGlyphInfo *extents);
+
+void
+XftTextExtents8 (Display *dpy,
+ XftFont *pub,
+ _Xconst FcChar8 *string,
+ int len,
+ XGlyphInfo *extents);
+
+void
+XftTextExtents16 (Display *dpy,
+ XftFont *pub,
+ _Xconst FcChar16 *string,
+ int len,
+ XGlyphInfo *extents);
+
+void
+XftTextExtents32 (Display *dpy,
+ XftFont *pub,
+ _Xconst FcChar32 *string,
+ int len,
+ XGlyphInfo *extents);
+
+void
+XftTextExtentsUtf8 (Display *dpy,
+ XftFont *pub,
+ _Xconst FcChar8 *string,
+ int len,
+ XGlyphInfo *extents);
+
+void
+XftTextExtentsUtf16 (Display *dpy,
+ XftFont *pub,
+ _Xconst FcChar8 *string,
+ FcEndian endian,
+ int len,
+ XGlyphInfo *extents);
+
+/* xftfont.c */
+FcPattern *
+XftFontMatch (Display *dpy,
+ int screen,
+ _Xconst FcPattern *pattern,
+ FcResult *result);
+
+XftFont *
+XftFontOpen (Display *dpy, int screen, ...) _X_SENTINEL(0);
+
+XftFont *
+XftFontOpenName (Display *dpy, int screen, _Xconst char *name);
+
+XftFont *
+XftFontOpenXlfd (Display *dpy, int screen, _Xconst char *xlfd);
+
+/* xftfreetype.c */
+
+FT_Face
+XftLockFace (XftFont *pub);
+
+void
+XftUnlockFace (XftFont *pub);
+
+XftFontInfo *
+XftFontInfoCreate (Display *dpy, _Xconst FcPattern *pattern);
+
+void
+XftFontInfoDestroy (Display *dpy, XftFontInfo *fi);
+
+FcChar32
+XftFontInfoHash (_Xconst XftFontInfo *fi);
+
+FcBool
+XftFontInfoEqual (_Xconst XftFontInfo *a, _Xconst XftFontInfo *b);
+
+XftFont *
+XftFontOpenInfo (Display *dpy,
+ FcPattern *pattern,
+ XftFontInfo *fi);
+
+XftFont *
+XftFontOpenPattern (Display *dpy, FcPattern *pattern);
+
+XftFont *
+XftFontCopy (Display *dpy, XftFont *pub);
+
+void
+XftFontClose (Display *dpy, XftFont *pub);
+
+FcBool
+XftInitFtLibrary(void);
+
+/* xftglyphs.c */
+void
+XftFontLoadGlyphs (Display *dpy,
+ XftFont *pub,
+ FcBool need_bitmaps,
+ _Xconst FT_UInt *glyphs,
+ int nglyph);
+
+void
+XftFontUnloadGlyphs (Display *dpy,
+ XftFont *pub,
+ _Xconst FT_UInt *glyphs,
+ int nglyph);
+
+#define XFT_NMISSING 256
+
+FcBool
+XftFontCheckGlyph (Display *dpy,
+ XftFont *pub,
+ FcBool need_bitmaps,
+ FT_UInt glyph,
+ FT_UInt *missing,
+ int *nmissing);
+
+FcBool
+XftCharExists (Display *dpy,
+ XftFont *pub,
+ FcChar32 ucs4);
+
+FT_UInt
+XftCharIndex (Display *dpy,
+ XftFont *pub,
+ FcChar32 ucs4);
+
+/* xftinit.c */
+FcBool
+XftInit (_Xconst char *config);
+
+int
+XftGetVersion (void);
+
+/* xftlist.c */
+
+FcFontSet *
+XftListFonts (Display *dpy,
+ int screen,
+ ...) _X_SENTINEL(0);
+
+/* xftname.c */
+FcPattern
+*XftNameParse (_Xconst char *name);
+
+/* xftrender.c */
+void
+XftGlyphRender (Display *dpy,
+ int op,
+ Picture src,
+ XftFont *pub,
+ Picture dst,
+ int srcx,
+ int srcy,
+ int x,
+ int y,
+ _Xconst FT_UInt *glyphs,
+ int nglyphs);
+
+void
+XftGlyphSpecRender (Display *dpy,
+ int op,
+ Picture src,
+ XftFont *pub,
+ Picture dst,
+ int srcx,
+ int srcy,
+ _Xconst XftGlyphSpec *glyphs,
+ int nglyphs);
+
+void
+XftCharSpecRender (Display *dpy,
+ int op,
+ Picture src,
+ XftFont *pub,
+ Picture dst,
+ int srcx,
+ int srcy,
+ _Xconst XftCharSpec *chars,
+ int len);
+
+void
+XftGlyphFontSpecRender (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ int srcx,
+ int srcy,
+ _Xconst XftGlyphFontSpec *glyphs,
+ int nglyphs);
+
+void
+XftCharFontSpecRender (Display *dpy,
+ int op,
+ Picture src,
+ Picture dst,
+ int srcx,
+ int srcy,
+ _Xconst XftCharFontSpec *chars,
+ int len);
+
+void
+XftTextRender8 (Display *dpy,
+ int op,
+ Picture src,
+ XftFont *pub,
+ Picture dst,
+ int srcx,
+ int srcy,
+ int x,
+ int y,
+ _Xconst FcChar8 *string,
+ int len);
+
+void
+XftTextRender16 (Display *dpy,
+ int op,
+ Picture src,
+ XftFont *pub,
+ Picture dst,
+ int srcx,
+ int srcy,
+ int x,
+ int y,
+ _Xconst FcChar16 *string,
+ int len);
+
+void
+XftTextRender16BE (Display *dpy,
+ int op,
+ Picture src,
+ XftFont *pub,
+ Picture dst,
+ int srcx,
+ int srcy,
+ int x,
+ int y,
+ _Xconst FcChar8 *string,
+ int len);
+
+void
+XftTextRender16LE (Display *dpy,
+ int op,
+ Picture src,
+ XftFont *pub,
+ Picture dst,
+ int srcx,
+ int srcy,
+ int x,
+ int y,
+ _Xconst FcChar8 *string,
+ int len);
+
+void
+XftTextRender32 (Display *dpy,
+ int op,
+ Picture src,
+ XftFont *pub,
+ Picture dst,
+ int srcx,
+ int srcy,
+ int x,
+ int y,
+ _Xconst FcChar32 *string,
+ int len);
+
+void
+XftTextRender32BE (Display *dpy,
+ int op,
+ Picture src,
+ XftFont *pub,
+ Picture dst,
+ int srcx,
+ int srcy,
+ int x,
+ int y,
+ _Xconst FcChar8 *string,
+ int len);
+
+void
+XftTextRender32LE (Display *dpy,
+ int op,
+ Picture src,
+ XftFont *pub,
+ Picture dst,
+ int srcx,
+ int srcy,
+ int x,
+ int y,
+ _Xconst FcChar8 *string,
+ int len);
+
+void
+XftTextRenderUtf8 (Display *dpy,
+ int op,
+ Picture src,
+ XftFont *pub,
+ Picture dst,
+ int srcx,
+ int srcy,
+ int x,
+ int y,
+ _Xconst FcChar8 *string,
+ int len);
+
+void
+XftTextRenderUtf16 (Display *dpy,
+ int op,
+ Picture src,
+ XftFont *pub,
+ Picture dst,
+ int srcx,
+ int srcy,
+ int x,
+ int y,
+ _Xconst FcChar8 *string,
+ FcEndian endian,
+ int len);
+
+/* xftxlfd.c */
+FcPattern *
+XftXlfdParse (_Xconst char *xlfd_orig, Bool ignore_scalable, Bool complete);
+
+_XFUNCPROTOEND
+
+#endif /* _XFT_H_ */
diff --git a/libXft/src/makefile b/libXft/src/makefile
new file mode 100644
index 000000000..39693fd19
--- /dev/null
+++ b/libXft/src/makefile
@@ -0,0 +1,23 @@
+INCLUDES += ..\include\X11\Xft
+
+LIBRARY = libXft
+
+CSRCS = \
+ xftcolor.c \
+ xftcore.c \
+ xftdbg.c \
+ xftdpy.c \
+ xftdraw.c \
+ xftextent.c \
+ xftfont.c \
+ xftfreetype.c \
+ xftglyphs.c \
+ xftinit.c \
+ xftlist.c \
+ xftname.c \
+ xftrender.c \
+ xftstr.c \
+ xftswap.c \
+ xftxlfd.c
+
+INCLUDES += $(MHMAKECONF)\freetype\include $(MHMAKECONF)\fontconfig
diff --git a/libXinerama/src/Xinerama.c b/libXinerama/src/Xinerama.c
index 67a35b578..1680b9886 100644
--- a/libXinerama/src/Xinerama.c
+++ b/libXinerama/src/Xinerama.c
@@ -39,6 +39,10 @@ Equipment Corporation.
#include <X11/Xmd.h> /* for LONG64 on 64-bit platforms */
#include <limits.h>
+#ifdef _MSC_VER
+#define inline __inline
+#endif
+
static inline void _XEatDataWords(Display *dpy, unsigned long n)
{
# ifndef LONG64
diff --git a/libXinerama/src/makefile b/libXinerama/src/makefile
new file mode 100644
index 000000000..88215e8a1
--- /dev/null
+++ b/libXinerama/src/makefile
@@ -0,0 +1,5 @@
+LIBRARY = libXinerama
+
+CSRCS = \
+ Xinerama.c
+
diff --git a/libXmu/src/RdBitF.c b/libXmu/src/RdBitF.c
index 02159c651..58b90a8aa 100644
--- a/libXmu/src/RdBitF.c
+++ b/libXmu/src/RdBitF.c
@@ -269,7 +269,7 @@ XmuReadBitmapData(FILE *fstream, unsigned int *width, unsigned int *height,
#if defined(WIN32)
static int
-access_file(char *path, char *pathbuf, int len_pathbuf, char **pathret)
+access_file(_Xconst char *path, char *pathbuf, int len_pathbuf, char **pathret)
{
if (access (path, F_OK) == 0) {
if (strlen (path) < len_pathbuf)
@@ -285,7 +285,7 @@ access_file(char *path, char *pathbuf, int len_pathbuf, char **pathret)
}
static int
-AccessFile(char *path, char *pathbuf, int len_pathbuf, char **pathret)
+AccessFile(_Xconst char *path, char *pathbuf, int len_pathbuf, char **pathret)
{
#ifndef MAX_PATH
#define MAX_PATH 512
@@ -353,10 +353,10 @@ AccessFile(char *path, char *pathbuf, int len_pathbuf, char **pathret)
}
FILE *
-fopen_file(char *path, char *mode)
+fopen_file(_Xconst char *path, char *mode)
{
char buf[MAX_PATH];
- char* bufp;
+ char* bufp=buf;
void* ret = NULL;
UINT olderror = SetErrorMode (SEM_FAILCRITICALERRORS);
diff --git a/libXmu/src/StrToCurs.c b/libXmu/src/StrToCurs.c
index 6930e8213..714b004ee 100644
--- a/libXmu/src/StrToCurs.c
+++ b/libXmu/src/StrToCurs.c
@@ -57,6 +57,7 @@ SOFTWARE.
#include <X11/Xmu/Drawing.h>
#include <X11/Xmu/CurUtil.h>
#include <X11/Xmu/CharSet.h>
+#include <unistd.h>
#ifndef X_NOT_POSIX
#include <stdlib.h>
diff --git a/libXmu/src/WidgetNode.c b/libXmu/src/WidgetNode.c
index 037eb0cdf..1ab8199ca 100644
--- a/libXmu/src/WidgetNode.c
+++ b/libXmu/src/WidgetNode.c
@@ -53,7 +53,7 @@ static void mark_resource_owner(XmuWidgetNode*);
*/
static char *
binsearch(char *key, char *base, int nelems, int elemsize,
- int compar(_Xconst void*, _Xconst void*))
+ int (*compar)(_Xconst void*, _Xconst void*))
/*
* key - template of object to find
* base - beginning of array
diff --git a/libXmu/src/config.h b/libXmu/src/config.h
new file mode 100644
index 000000000..7206ebebd
--- /dev/null
+++ b/libXmu/src/config.h
@@ -0,0 +1 @@
+#define HAS_SNPRINTF \ No newline at end of file
diff --git a/libXmu/src/libXmu.def b/libXmu/src/libXmu.def
new file mode 100644
index 000000000..6e369d6c3
--- /dev/null
+++ b/libXmu/src/libXmu.def
@@ -0,0 +1,44 @@
+LIBRARY libXmu
+EXPORTS
+ _XA_CHARACTER_POSITION
+ _XA_COMPOUND_TEXT
+ _XA_DELETE
+ _XA_LENGTH
+ _XA_LIST_LENGTH
+ _XA_NULL
+ _XA_SPAN
+ _XA_TARGETS
+ _XA_TEXT
+ _XA_UTF8_STRING
+ _XEditResCheckMessages
+ XmuAreaOrXor
+ XmuCompareISOLatin1
+ XmuConvertStandardSelection
+ XmuCreateStippledPixmap
+ XmuCvtBackingStoreToString
+ XmuCvtJustifyToString
+ XmuCvtOrientationToString
+ XmuCvtShapeStyleToString
+ XmuCvtStringToBackingStore
+ XmuCvtStringToBitmap
+ XmuCvtStringToColorCursor
+ XmuCvtStringToCursor
+ XmuCvtStringToJustify
+ XmuCvtStringToOrientation
+ XmuCvtStringToShapeStyle
+ XmuCvtWidgetToString
+ XmuDestroyScanlineList
+ XmuDestroySegmentList
+ XmuGetHostname
+ XmuInternAtom
+ XmuNCopyISOLatin1Lowered
+ XmuNewArea
+ XmuNewCvtStringToWidget
+ XmuNewScanline
+ XmuOptimizeScanline
+ XmuPrintDefaultErrorMessage
+ XmuRegisterExternalAgent
+ XmuReleaseStippledPixmap
+ XmuReshapeWidget
+ XmuScanlineOrSegment
+ XmuScanlineXor \ No newline at end of file
diff --git a/libXmu/src/makefile b/libXmu/src/makefile
new file mode 100644
index 000000000..2b94eed65
--- /dev/null
+++ b/libXmu/src/makefile
@@ -0,0 +1,63 @@
+SHAREDLIB = libXmu
+
+INCLUDES := ..\include ..\include\X11\Xmu $(INCLUDES)
+
+DEFINES += XT_NO_SM BITMAPDIR="""bitmaps"""
+
+INCLUDELIBFILES = \
+ $(MHMAKECONF)\libX11\$(OBJDIR)\libX11.lib \
+ $(MHMAKECONF)\libXext\src\$(OBJDIR)\libXext.lib \
+ $(MHMAKECONF)\libXt\src\$(OBJDIR)\libXt.lib
+
+LIBDIRS=$(dir $(INCLUDELIBFILES))
+
+load_makefile $(LIBDIRS:%$(OBJDIR)\=%makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+
+CSRCS = \
+ ClientWin.c \
+ CursorName.c \
+ DefErrMsg.c \
+ GetHost.c \
+ Lower.c \
+ AllCmap.c \
+ Atoms.c \
+ Clip.c \
+ CloseHook.c \
+ CmapAlloc.c \
+ CrCmap.c \
+ CrPixFBit.c \
+ CvtCache.c \
+ CvtStdSel.c \
+ DelCmap.c \
+ DisplayQue.c \
+ Distinct.c \
+ DrawLogo.c \
+ DrRndRect.c \
+ EditresCom.c \
+ ExtAgent.c \
+ FToCback.c \
+ GrayPixmap.c \
+ Initer.c \
+ LocBitmap.c \
+ Lookup.c \
+ LookupCmap.c \
+ RdBitF.c \
+ ScrOfWin.c \
+ ShapeWidg.c \
+ StdCmap.c \
+ StrToBS.c \
+ StrToBmap.c \
+ StrToCurs.c \
+ StrToGrav.c \
+ StrToJust.c \
+ StrToLong.c \
+ StrToOrnt.c \
+ StrToShap.c \
+ StrToWidg.c \
+ UpdMapHint.c \
+ VisCmap.c \
+ WidgetNode.c \
+ Xct.c \
+ sharedlib.c
+
diff --git a/libXpm/src/RdFToBuf.c b/libXpm/src/RdFToBuf.c
index 7f8ebee61..0594972a6 100644
--- a/libXpm/src/RdFToBuf.c
+++ b/libXpm/src/RdFToBuf.c
@@ -52,9 +52,9 @@
#endif
#if defined(FOR_MSW) || defined(WIN32)
#include <io.h>
+typedef long off_t;
#define stat _stat
#define fstat _fstat
-#define fdopen _fdopen
#define O_RDONLY _O_RDONLY
#endif
@@ -83,7 +83,7 @@ XpmReadFileToBuffer(
close(fd);
return XpmOpenFailed;
}
- fp = fdopen(fd, "r");
+ fp = _fdopen(fd, "r");
if (!fp) {
close(fd);
return XpmOpenFailed;
diff --git a/libXpm/src/RdFToI.c b/libXpm/src/RdFToI.c
index bd09611b1..49fb2ed61 100644
--- a/libXpm/src/RdFToI.c
+++ b/libXpm/src/RdFToI.c
@@ -43,6 +43,7 @@
#include <errno.h>
#include <sys/types.h>
#include <sys/wait.h>
+typedef int pid_t;
#else
#ifdef FOR_MSW
#include <fcntl.h>
@@ -246,7 +247,7 @@ OpenReadFile(
#endif /* z-files */
{
mdata->type = XPMFILE;
- mdata->stream.file = fdopen(fd, "r");
+ mdata->stream.file = _fdopen(fd, "r");
}
if (!mdata->stream.file)
{
diff --git a/libXpm/src/WrFFrI.c b/libXpm/src/WrFFrI.c
index 067c96b3a..e05ff9855 100644
--- a/libXpm/src/WrFFrI.c
+++ b/libXpm/src/WrFFrI.c
@@ -344,7 +344,7 @@ OpenWriteFile(
} else
#endif
{
- mdata->stream.file = fdopen(fd, "w");
+ mdata->stream.file = _fdopen(fd, "w");
mdata->type = XPMFILE;
}
if (!mdata->stream.file) {
diff --git a/libXpm/src/amigax.h b/libXpm/src/amigax.h
index 213ed7619..b8f6ac4b7 100644
--- a/libXpm/src/amigax.h
+++ b/libXpm/src/amigax.h
@@ -48,8 +48,8 @@
/* really never used */
#define ZPixmap 2
-#define Bool int
-#define Status int
+typedef int Bool;
+typedef int Status;
#define True 1
#define False 0
diff --git a/libXpm/src/config.h b/libXpm/src/config.h
new file mode 100644
index 000000000..c22e05936
--- /dev/null
+++ b/libXpm/src/config.h
@@ -0,0 +1,3 @@
+#include <unistd.h>
+
+#define NO_ZPIPE
diff --git a/libXpm/src/makefile b/libXpm/src/makefile
new file mode 100644
index 000000000..cfd21c66b
--- /dev/null
+++ b/libXpm/src/makefile
@@ -0,0 +1,34 @@
+LIBRARY=libXpm
+
+INCLUDES += ..\include\X11
+
+CSRCS = \
+ Attrib.c \
+ CrBufFrI.c \
+ CrBufFrP.c \
+ CrDatFrI.c \
+ CrDatFrP.c \
+ CrIFrBuf.c \
+ CrIFrDat.c \
+ CrIFrP.c \
+ CrPFrBuf.c \
+ CrPFrDat.c \
+ CrPFrI.c \
+ Image.c \
+ Info.c \
+ RdFToBuf.c \
+ RdFToDat.c \
+ RdFToI.c \
+ RdFToP.c \
+ WrFFrBuf.c \
+ WrFFrDat.c \
+ WrFFrI.c \
+ WrFFrP.c \
+ create.c \
+ data.c \
+ hashtab.c \
+ misc.c \
+ parse.c \
+ rgb.c \
+ scan.c
+
diff --git a/libXrender/src/Xrenderint.h b/libXrender/src/Xrenderint.h
index daaa6fe10..aca5d4f8d 100644
--- a/libXrender/src/Xrenderint.h
+++ b/libXrender/src/Xrenderint.h
@@ -113,6 +113,10 @@ XRenderFindDisplay (Display *dpy);
#include <X11/Xmd.h> /* for LONG64 on 64-bit platforms */
#include <limits.h>
+#ifdef _MSC_VER
+#define inline __inline
+#endif
+
static inline void _XEatDataWords(Display *dpy, unsigned long n)
{
# ifndef LONG64
diff --git a/libXrender/src/makefile b/libXrender/src/makefile
new file mode 100644
index 000000000..dc83848e5
--- /dev/null
+++ b/libXrender/src/makefile
@@ -0,0 +1,18 @@
+INCLUDES += ..\include\X11\extensions
+
+LIBRARY = libXrender
+
+CSRCS = AddTrap.c \
+ Color.c \
+ Composite.c \
+ Cursor.c \
+ FillRect.c \
+ FillRects.c \
+ Filter.c \
+ Glyph.c \
+ Picture.c \
+ Poly.c \
+ Trap.c \
+ Tri.c \
+ Xrender.c \
+
diff --git a/libXt/config.h b/libXt/config.h
new file mode 100644
index 000000000..5de127910
--- /dev/null
+++ b/libXt/config.h
@@ -0,0 +1,85 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the `ws2_32' library (-lws2_32). */
+#undef HAVE_LIBWS2_32
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if Xalloca.h should include <alloca.h> */
+#undef INCLUDE_ALLOCA_H
+
+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
+#undef NO_MINUS_C_MINUS_O
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Major version of this package */
+#undef PACKAGE_VERSION_MAJOR
+
+/* Minor version of this package */
+#undef PACKAGE_VERSION_MINOR
+
+/* Patch version of this package */
+#undef PACKAGE_VERSION_PATCHLEVEL
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define to 1 if you have the "poll" function. */
+#undef USE_POLL
+
+/* Define to 1 if you have the "snprintf" function. */
+#undef USE_SNPRINTF
+
+/* Version number of package */
+#undef VERSION
+
+/* Define to 1 to use XKB for keysym resolution. */
+#define XKB 1
+
+/* app default data directory */
+#undef appdefaultdir
diff --git a/libXt/include/X11/.gitignore b/libXt/include/X11/.gitignore
new file mode 100644
index 000000000..e482dd956
--- /dev/null
+++ b/libXt/include/X11/.gitignore
@@ -0,0 +1,2 @@
+Shell.h
+StringDefs.h \ No newline at end of file
diff --git a/libXt/include/X11/Intrinsic.h b/libXt/include/X11/Intrinsic.h
index d09acad54..44a1b360a 100644
--- a/libXt/include/X11/Intrinsic.h
+++ b/libXt/include/X11/Intrinsic.h
@@ -1,2595 +1,2595 @@
-/***********************************************************
-Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-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 Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL 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.
-
-******************************************************************/
-
-/*
-
-Copyright 1987, 1988, 1994, 1998 The Open Group
-
-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.
-
-The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP 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.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-
-#ifndef _XtIntrinsic_h
-#define _XtIntrinsic_h
-
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <X11/Xresource.h>
-#include <X11/Xfuncproto.h>
-#ifdef XT_BC
-#include <X11/Xos.h> /* for R4 compatibility */
-#else
-#include <X11/Xosdefs.h>
-#include <string.h> /* for XtNewString */
-#endif /* XT_BC else */
-
-#define XtSpecificationRelease 6
-
-typedef char *String;
-
-/* We do this in order to get "const" declarations to work right. We
- * use _XtString instead of String so that C++ applications can
- * #define String to something else if they choose, to avoid conflicts
- * with other C++ libraries.
- */
-#define _XtString char*
-
-/* _Xt names are private to Xt implementation, do not use in client code */
-#if NeedWidePrototypes
-#define _XtBoolean int
-#define _XtDimension unsigned int
-#define _XtKeyCode unsigned int
-#define _XtPosition int
-#define _XtXtEnum unsigned int
-#else
-#define _XtBoolean Boolean
-#define _XtDimension Dimension
-#define _XtKeyCode KeyCode
-#define _XtPosition Position
-#define _XtXtEnum XtEnum
-#endif /* NeedWidePrototypes */
-
-#include <stddef.h>
-
-#ifdef VMS
-#define externalref globalref
-#define externaldef(psect) globaldef {"psect"} noshare
-#else
-#define externalref extern
-#define externaldef(psect)
-#endif /* VMS */
-
-#ifndef FALSE
-#define FALSE 0
-#define TRUE 1
-#endif
-
-#define XtNumber(arr) ((Cardinal) (sizeof(arr) / sizeof(arr[0])))
-
-typedef struct _WidgetRec *Widget;
-typedef Widget *WidgetList;
-typedef struct _WidgetClassRec *WidgetClass;
-typedef struct _CompositeRec *CompositeWidget;
-typedef struct _XtActionsRec *XtActionList;
-typedef struct _XtEventRec *XtEventTable;
-
-typedef struct _XtAppStruct *XtAppContext;
-typedef unsigned long XtValueMask;
-typedef unsigned long XtIntervalId;
-typedef unsigned long XtInputId;
-typedef unsigned long XtWorkProcId;
-typedef unsigned long XtSignalId;
-typedef unsigned int XtGeometryMask;
-typedef unsigned long XtGCMask; /* Mask of values that are used by widget*/
-typedef unsigned long Pixel; /* Index into colormap */
-typedef int XtCacheType;
-#define XtCacheNone 0x001
-#define XtCacheAll 0x002
-#define XtCacheByDisplay 0x003
-#define XtCacheRefCount 0x100
-
-/****************************************************************
- *
- * System Dependent Definitions; see spec for specific range
- * requirements. Do not assume every implementation uses the
- * same base types!
- *
- *
- * XtArgVal ought to be a union of XtPointer, char *, long, int *, and proc *
- * but casting to union types is not really supported.
- *
- * So the typedef for XtArgVal should be chosen such that
- *
- * sizeof (XtArgVal) >= sizeof(XtPointer)
- * sizeof(char *)
- * sizeof(long)
- * sizeof(int *)
- * sizeof(proc *)
- *
- * ArgLists rely heavily on the above typedef.
- *
- ****************************************************************/
-#ifdef CRAY
-typedef long Boolean;
-typedef char* XtArgVal;
-typedef long XtEnum;
-#else
-typedef char Boolean;
-typedef long XtArgVal;
-typedef unsigned char XtEnum;
-#endif
-
-typedef unsigned int Cardinal;
-typedef unsigned short Dimension; /* Size in pixels */
-typedef short Position; /* Offset from 0 coordinate */
-
-typedef void* XtPointer;
-
-/* The type Opaque is NOT part of the Xt standard, do NOT use it. */
-/* (It remains here only for backward compatibility.) */
-typedef XtPointer Opaque;
-
-#include <X11/Core.h>
-#include <X11/Composite.h>
-#include <X11/Constraint.h>
-#include <X11/Object.h>
-#include <X11/RectObj.h>
-
-typedef struct _TranslationData *XtTranslations;
-typedef struct _TranslationData *XtAccelerators;
-typedef unsigned int Modifiers;
-
-typedef void (*XtActionProc)(
- Widget /* widget */,
- XEvent* /* event */,
- String* /* params */,
- Cardinal* /* num_params */
-);
-
-typedef XtActionProc* XtBoundActions;
-
-typedef struct _XtActionsRec{
- String string;
- XtActionProc proc;
-} XtActionsRec;
-
-typedef enum {
-/* address mode parameter representation */
-/* ------------ ------------------------ */
- XtAddress, /* address */
- XtBaseOffset, /* offset */
- XtImmediate, /* constant */
- XtResourceString, /* resource name string */
- XtResourceQuark, /* resource name quark */
- XtWidgetBaseOffset, /* offset from ancestor */
- XtProcedureArg /* procedure to invoke */
-} XtAddressMode;
-
-typedef struct {
- XtAddressMode address_mode;
- XtPointer address_id;
- Cardinal size;
-} XtConvertArgRec, *XtConvertArgList;
-
-typedef void (*XtConvertArgProc)(
- Widget /* widget */,
- Cardinal* /* size */,
- XrmValue* /* value */
-);
-
-typedef struct {
- XtGeometryMask request_mode;
- Position x, y;
- Dimension width, height, border_width;
- Widget sibling;
- int stack_mode; /* Above, Below, TopIf, BottomIf, Opposite, DontChange */
-} XtWidgetGeometry;
-
-/* Additions to Xlib geometry requests: ask what would happen, don't do it */
-#define XtCWQueryOnly (1 << 7)
-
-/* Additions to Xlib stack modes: don't change stack order */
-#define XtSMDontChange 5
-
-typedef void (*XtConverter)( /* obsolete */
- XrmValue* /* args */,
- Cardinal* /* num_args */,
- XrmValue* /* from */,
- XrmValue* /* to */
-);
-
-typedef Boolean (*XtTypeConverter)(
- Display* /* dpy */,
- XrmValue* /* args */,
- Cardinal* /* num_args */,
- XrmValue* /* from */,
- XrmValue* /* to */,
- XtPointer* /* converter_data */
-);
-
-typedef void (*XtDestructor)(
- XtAppContext /* app */,
- XrmValue* /* to */,
- XtPointer /* converter_data */,
- XrmValue* /* args */,
- Cardinal* /* num_args */
-);
-
-typedef Opaque XtCacheRef;
-
-typedef Opaque XtActionHookId;
-
-typedef void (*XtActionHookProc)(
- Widget /* w */,
- XtPointer /* client_data */,
- String /* action_name */,
- XEvent* /* event */,
- String* /* params */,
- Cardinal* /* num_params */
-);
-
-typedef unsigned long XtBlockHookId;
-
-typedef void (*XtBlockHookProc)(
- XtPointer /* client_data */
-);
-
-typedef void (*XtKeyProc)(
- Display* /* dpy */,
- _XtKeyCode /* keycode */,
- Modifiers /* modifiers */,
- Modifiers* /* modifiers_return */,
- KeySym* /* keysym_return */
-);
-
-typedef void (*XtCaseProc)(
- Display* /* display */,
- KeySym /* keysym */,
- KeySym* /* lower_return */,
- KeySym* /* upper_return */
-);
-
-typedef void (*XtEventHandler)(
- Widget /* widget */,
- XtPointer /* closure */,
- XEvent* /* event */,
- Boolean* /* continue_to_dispatch */
-);
-typedef unsigned long EventMask;
-
-typedef enum {XtListHead, XtListTail } XtListPosition;
-
-typedef unsigned long XtInputMask;
-#define XtInputNoneMask 0L
-#define XtInputReadMask (1L<<0)
-#define XtInputWriteMask (1L<<1)
-#define XtInputExceptMask (1L<<2)
-
-typedef void (*XtTimerCallbackProc)(
- XtPointer /* closure */,
- XtIntervalId* /* id */
-);
-
-typedef void (*XtInputCallbackProc)(
- XtPointer /* closure */,
- int* /* source */,
- XtInputId* /* id */
-);
-
-typedef void (*XtSignalCallbackProc)(
- XtPointer /* closure */,
- XtSignalId* /* id */
-);
-
-typedef struct {
- String name;
- XtArgVal value;
-} Arg, *ArgList;
-
-typedef XtPointer XtVarArgsList;
-
-typedef void (*XtCallbackProc)(
- Widget /* widget */,
- XtPointer /* closure */, /* data the application registered */
- XtPointer /* call_data */ /* callback specific data */
-);
-
-typedef struct _XtCallbackRec {
- XtCallbackProc callback;
- XtPointer closure;
-} XtCallbackRec, *XtCallbackList;
-
-typedef enum {
- XtCallbackNoList,
- XtCallbackHasNone,
- XtCallbackHasSome
-} XtCallbackStatus;
-
-typedef enum {
- XtGeometryYes, /* Request accepted. */
- XtGeometryNo, /* Request denied. */
- XtGeometryAlmost, /* Request denied, but willing to take replyBox. */
- XtGeometryDone /* Request accepted and done. */
-} XtGeometryResult;
-
-typedef enum {XtGrabNone, XtGrabNonexclusive, XtGrabExclusive} XtGrabKind;
-
-typedef struct {
- Widget shell_widget;
- Widget enable_widget;
-} XtPopdownIDRec, *XtPopdownID;
-
-typedef struct _XtResource {
- String resource_name; /* Resource name */
- String resource_class; /* Resource class */
- String resource_type; /* Representation type desired */
- Cardinal resource_size; /* Size in bytes of representation */
- Cardinal resource_offset;/* Offset from base to put resource value */
- String default_type; /* representation type of specified default */
- XtPointer default_addr; /* Address of default resource */
-} XtResource, *XtResourceList;
-
-typedef void (*XtResourceDefaultProc)(
- Widget /* widget */,
- int /* offset */,
- XrmValue* /* value */
-);
-
-typedef String (*XtLanguageProc)(
- Display* /* dpy */,
- String /* xnl */,
- XtPointer /* client_data */
-);
-
-typedef void (*XtErrorMsgHandler)(
- String /* name */,
- String /* type */,
- String /* class */,
- String /* default */,
- String* /* params */,
- Cardinal* /* num_params */
-);
-
-typedef void (*XtErrorHandler)(
- String /* msg */
-);
-
-typedef void (*XtCreatePopupChildProc)(
- Widget /* shell */
-);
-
-typedef Boolean (*XtWorkProc)(
- XtPointer /* closure */ /* data the application registered */
-);
-
-typedef struct {
- char match;
- String substitution;
-} SubstitutionRec, *Substitution;
-
-typedef Boolean (*XtFilePredicate)(
- String /* filename */
-);
-
-typedef XtPointer XtRequestId;
-
-typedef Boolean (*XtConvertSelectionProc)(
- Widget /* widget */,
- Atom* /* selection */,
- Atom* /* target */,
- Atom* /* type_return */,
- XtPointer* /* value_return */,
- unsigned long* /* length_return */,
- int* /* format_return */
-);
-
-typedef void (*XtLoseSelectionProc)(
- Widget /* widget */,
- Atom* /* selection */
-);
-
-typedef void (*XtSelectionDoneProc)(
- Widget /* widget */,
- Atom* /* selection */,
- Atom* /* target */
-);
-
-typedef void (*XtSelectionCallbackProc)(
- Widget /* widget */,
- XtPointer /* closure */,
- Atom* /* selection */,
- Atom* /* type */,
- XtPointer /* value */,
- unsigned long* /* length */,
- int* /* format */
-);
-
-typedef void (*XtLoseSelectionIncrProc)(
- Widget /* widget */,
- Atom* /* selection */,
- XtPointer /* client_data */
-);
-
-typedef void (*XtSelectionDoneIncrProc)(
- Widget /* widget */,
- Atom* /* selection */,
- Atom* /* target */,
- XtRequestId* /* receiver_id */,
- XtPointer /* client_data */
-);
-
-typedef Boolean (*XtConvertSelectionIncrProc)(
- Widget /* widget */,
- Atom* /* selection */,
- Atom* /* target */,
- Atom* /* type */,
- XtPointer* /* value */,
- unsigned long* /* length */,
- int* /* format */,
- unsigned long* /* max_length */,
- XtPointer /* client_data */,
- XtRequestId* /* receiver_id */
-);
-
-typedef void (*XtCancelConvertSelectionProc)(
- Widget /* widget */,
- Atom* /* selection */,
- Atom* /* target */,
- XtRequestId* /* receiver_id */,
- XtPointer /* client_data */
-);
-
-typedef Boolean (*XtEventDispatchProc)(
- XEvent* /* event */
-);
-
-typedef void (*XtExtensionSelectProc)(
- Widget /* widget */,
- int* /* event_types */,
- XtPointer* /* select_data */,
- int /* count */,
- XtPointer /* client_data */
-);
-
-/***************************************************************
- *
- * Exported Interfaces
- *
- ****************************************************************/
-
-_XFUNCPROTOBEGIN
-
-extern Boolean XtConvertAndStore(
- Widget /* widget */,
- _Xconst _XtString /* from_type */,
- XrmValue* /* from */,
- _Xconst _XtString /* to_type */,
- XrmValue* /* to_in_out */
-);
-
-extern Boolean XtCallConverter(
- Display* /* dpy */,
- XtTypeConverter /* converter */,
- XrmValuePtr /* args */,
- Cardinal /* num_args */,
- XrmValuePtr /* from */,
- XrmValue* /* to_in_out */,
- XtCacheRef* /* cache_ref_return */
-);
-
-extern Boolean XtDispatchEvent(
- XEvent* /* event */
-);
-
-extern Boolean XtCallAcceptFocus(
- Widget /* widget */,
- Time* /* time */
-);
-
-extern Boolean XtPeekEvent( /* obsolete */
- XEvent* /* event_return */
-);
-
-extern Boolean XtAppPeekEvent(
- XtAppContext /* app_context */,
- XEvent* /* event_return */
-);
-
-extern Boolean XtIsSubclass(
- Widget /* widget */,
- WidgetClass /* widgetClass */
-);
-
-extern Boolean XtIsObject(
- Widget /* object */
-);
-
-extern Boolean _XtCheckSubclassFlag( /* implementation-private */
- Widget /* object */,
- _XtXtEnum /* type_flag */
-);
-
-extern Boolean _XtIsSubclassOf( /* implementation-private */
- Widget /* object */,
- WidgetClass /* widget_class */,
- WidgetClass /* flag_class */,
- _XtXtEnum /* type_flag */
-);
-
-extern Boolean XtIsManaged(
- Widget /* rectobj */
-);
-
-extern Boolean XtIsRealized(
- Widget /* widget */
-);
-
-extern Boolean XtIsSensitive(
- Widget /* widget */
-);
-
-extern Boolean XtOwnSelection(
- Widget /* widget */,
- Atom /* selection */,
- Time /* time */,
- XtConvertSelectionProc /* convert */,
- XtLoseSelectionProc /* lose */,
- XtSelectionDoneProc /* done */
-);
-
-extern Boolean XtOwnSelectionIncremental(
- Widget /* widget */,
- Atom /* selection */,
- Time /* time */,
- XtConvertSelectionIncrProc /* convert_callback */,
- XtLoseSelectionIncrProc /* lose_callback */,
- XtSelectionDoneIncrProc /* done_callback */,
- XtCancelConvertSelectionProc /* cancel_callback */,
- XtPointer /* client_data */
-);
-
-extern XtGeometryResult XtMakeResizeRequest(
- Widget /* widget */,
- _XtDimension /* width */,
- _XtDimension /* height */,
- Dimension* /* width_return */,
- Dimension* /* height_return */
-);
-
-extern void XtTranslateCoords(
- Widget /* widget */,
- _XtPosition /* x */,
- _XtPosition /* y */,
- Position* /* rootx_return */,
- Position* /* rooty_return */
-);
-
-extern KeySym* XtGetKeysymTable(
- Display* /* dpy */,
- KeyCode* /* min_keycode_return */,
- int* /* keysyms_per_keycode_return */
-);
-
-extern void XtKeysymToKeycodeList(
- Display* /* dpy */,
- KeySym /* keysym */,
- KeyCode** /* keycodes_return */,
- Cardinal* /* keycount_return */
-);
-
-extern void XtStringConversionWarning( /* obsolete */
- _Xconst _XtString /* from_value */,
- _Xconst _XtString /* to_type */
-);
-
-extern void XtDisplayStringConversionWarning(
- Display* /* dpy */,
- _Xconst _XtString /* from_value */,
- _Xconst _XtString /* to_type */
-);
-
-externalref XtConvertArgRec const colorConvertArgs[];
-externalref XtConvertArgRec const screenConvertArg[];
-
-extern void XtAppAddConverter( /* obsolete */
- XtAppContext /* app_context */,
- _Xconst _XtString /* from_type */,
- _Xconst _XtString /* to_type */,
- XtConverter /* converter */,
- XtConvertArgList /* convert_args */,
- Cardinal /* num_args */
-);
-
-extern void XtAddConverter( /* obsolete */
- _Xconst _XtString /* from_type */,
- _Xconst _XtString /* to_type */,
- XtConverter /* converter */,
- XtConvertArgList /* convert_args */,
- Cardinal /* num_args */
-);
-
-extern void XtSetTypeConverter(
- _Xconst _XtString /* from_type */,
- _Xconst _XtString /* to_type */,
- XtTypeConverter /* converter */,
- XtConvertArgList /* convert_args */,
- Cardinal /* num_args */,
- XtCacheType /* cache_type */,
- XtDestructor /* destructor */
-);
-
-extern void XtAppSetTypeConverter(
- XtAppContext /* app_context */,
- _Xconst _XtString /* from_type */,
- _Xconst _XtString /* to_type */,
- XtTypeConverter /* converter */,
- XtConvertArgList /* convert_args */,
- Cardinal /* num_args */,
- XtCacheType /* cache_type */,
- XtDestructor /* destructor */
-);
-
-extern void XtConvert( /* obsolete */
- Widget /* widget */,
- _Xconst _XtString /* from_type */,
- XrmValue* /* from */,
- _Xconst _XtString /* to_type */,
- XrmValue* /* to_return */
-);
-
-extern void XtDirectConvert( /* obsolete */
- XtConverter /* converter */,
- XrmValuePtr /* args */,
- Cardinal /* num_args */,
- XrmValuePtr /* from */,
- XrmValue* /* to_return */
-);
-
-/****************************************************************
- *
- * Translation Management
- *
- ****************************************************************/
-
-extern XtTranslations XtParseTranslationTable(
- _Xconst _XtString /* table */
-);
-
-extern XtAccelerators XtParseAcceleratorTable(
- _Xconst _XtString /* source */
-);
-
-extern void XtOverrideTranslations(
- Widget /* widget */,
- XtTranslations /* translations */
-);
-
-extern void XtAugmentTranslations(
- Widget /* widget */,
- XtTranslations /* translations */
-);
-
-extern void XtInstallAccelerators(
- Widget /* destination */,
- Widget /* source */
-);
-
-extern void XtInstallAllAccelerators(
- Widget /* destination */,
- Widget /* source */
-);
-
-extern void XtUninstallTranslations(
- Widget /* widget */
-);
-
-extern void XtAppAddActions(
- XtAppContext /* app_context */,
- XtActionList /* actions */,
- Cardinal /* num_actions */
-);
-
-extern void XtAddActions( /* obsolete */
- XtActionList /* actions */,
- Cardinal /* num_actions */
-);
-
-extern XtActionHookId XtAppAddActionHook(
- XtAppContext /* app_context */,
- XtActionHookProc /* proc */,
- XtPointer /* client_data */
-);
-
-extern void XtRemoveActionHook(
- XtActionHookId /* id */
-);
-
-extern void XtGetActionList(
- WidgetClass /* widget_class */,
- XtActionList* /* actions_return */,
- Cardinal* /* num_actions_return */
-);
-
-extern void XtCallActionProc(
- Widget /* widget */,
- _Xconst _XtString /* action */,
- XEvent* /* event */,
- String* /* params */,
- Cardinal /* num_params */
-);
-
-extern void XtRegisterGrabAction(
- XtActionProc /* action_proc */,
- _XtBoolean /* owner_events */,
- unsigned int /* event_mask */,
- int /* pointer_mode */,
- int /* keyboard_mode */
-);
-
-extern void XtSetMultiClickTime(
- Display* /* dpy */,
- int /* milliseconds */
-);
-
-extern int XtGetMultiClickTime(
- Display* /* dpy */
-);
-
-extern KeySym XtGetActionKeysym(
- XEvent* /* event */,
- Modifiers* /* modifiers_return */
-);
-
-/***************************************************************
- *
- * Keycode and Keysym procedures for translation management
- *
- ****************************************************************/
-
-extern void XtTranslateKeycode(
- Display* /* dpy */,
- _XtKeyCode /* keycode */,
- Modifiers /* modifiers */,
- Modifiers* /* modifiers_return */,
- KeySym* /* keysym_return */
-);
-
-extern void XtTranslateKey(
- Display* /* dpy */,
- _XtKeyCode /* keycode */,
- Modifiers /* modifiers */,
- Modifiers* /* modifiers_return */,
- KeySym* /* keysym_return */
-);
-
-extern void XtSetKeyTranslator(
- Display* /* dpy */,
- XtKeyProc /* proc */
-);
-
-extern void XtRegisterCaseConverter(
- Display* /* dpy */,
- XtCaseProc /* proc */,
- KeySym /* start */,
- KeySym /* stop */
-);
-
-extern void XtConvertCase(
- Display* /* dpy */,
- KeySym /* keysym */,
- KeySym* /* lower_return */,
- KeySym* /* upper_return */
-);
-
-/****************************************************************
- *
- * Event Management
- *
- ****************************************************************/
-
-/* XtAllEvents is valid only for XtRemoveEventHandler and
- * XtRemoveRawEventHandler; don't use it to select events!
- */
-#define XtAllEvents ((EventMask) -1L)
-
-extern void XtAddEventHandler(
- Widget /* widget */,
- EventMask /* event_mask */,
- _XtBoolean /* nonmaskable */,
- XtEventHandler /* proc */,
- XtPointer /* closure */
-);
-
-extern void XtRemoveEventHandler(
- Widget /* widget */,
- EventMask /* event_mask */,
- _XtBoolean /* nonmaskable */,
- XtEventHandler /* proc */,
- XtPointer /* closure */
-);
-
-extern void XtAddRawEventHandler(
- Widget /* widget */,
- EventMask /* event_mask */,
- _XtBoolean /* nonmaskable */,
- XtEventHandler /* proc */,
- XtPointer /* closure */
-);
-
-extern void XtRemoveRawEventHandler(
- Widget /* widget */,
- EventMask /* event_mask */,
- _XtBoolean /* nonmaskable */,
- XtEventHandler /* proc */,
- XtPointer /* closure */
-);
-
-extern void XtInsertEventHandler(
- Widget /* widget */,
- EventMask /* event_mask */,
- _XtBoolean /* nonmaskable */,
- XtEventHandler /* proc */,
- XtPointer /* closure */,
- XtListPosition /* position */
-);
-
-extern void XtInsertRawEventHandler(
- Widget /* widget */,
- EventMask /* event_mask */,
- _XtBoolean /* nonmaskable */,
- XtEventHandler /* proc */,
- XtPointer /* closure */,
- XtListPosition /* position */
-);
-
-extern XtEventDispatchProc XtSetEventDispatcher(
- Display* /* dpy */,
- int /* event_type */,
- XtEventDispatchProc /* proc */
-);
-
-extern Boolean XtDispatchEventToWidget(
- Widget /* widget */,
- XEvent* /* event */
-);
-
-extern void XtInsertEventTypeHandler(
- Widget /* widget */,
- int /* type */,
- XtPointer /* select_data */,
- XtEventHandler /* proc */,
- XtPointer /* closure */,
- XtListPosition /* position */
-);
-
-extern void XtRemoveEventTypeHandler(
- Widget /* widget */,
- int /* type */,
- XtPointer /* select_data */,
- XtEventHandler /* proc */,
- XtPointer /* closure */
-);
-
-extern EventMask XtBuildEventMask(
- Widget /* widget */
-);
-
-extern void XtRegisterExtensionSelector(
- Display* /* dpy */,
- int /* min_event_type */,
- int /* max_event_type */,
- XtExtensionSelectProc /* proc */,
- XtPointer /* client_data */
-);
-
-extern void XtAddGrab(
- Widget /* widget */,
- _XtBoolean /* exclusive */,
- _XtBoolean /* spring_loaded */
-);
-
-extern void XtRemoveGrab(
- Widget /* widget */
-);
-
-extern void XtProcessEvent( /* obsolete */
- XtInputMask /* mask */
-);
-
-extern void XtAppProcessEvent(
- XtAppContext /* app_context */,
- XtInputMask /* mask */
-);
-
-extern void XtMainLoop( /* obsolete */
- void
-);
-
-extern void XtAppMainLoop(
- XtAppContext /* app_context */
-);
-
-extern void XtAddExposureToRegion(
- XEvent* /* event */,
- Region /* region */
-);
-
-extern void XtSetKeyboardFocus(
- Widget /* subtree */,
- Widget /* descendent */
-);
-
-extern Widget XtGetKeyboardFocusWidget(
- Widget /* widget */
-);
-
-extern XEvent* XtLastEventProcessed(
- Display* /* dpy */
-);
-
-extern Time XtLastTimestampProcessed(
- Display* /* dpy */
-);
-
-/****************************************************************
- *
- * Event Gathering Routines
- *
- ****************************************************************/
-
-extern XtIntervalId XtAddTimeOut( /* obsolete */
- unsigned long /* interval */,
- XtTimerCallbackProc /* proc */,
- XtPointer /* closure */
-);
-
-extern XtIntervalId XtAppAddTimeOut(
- XtAppContext /* app_context */,
- unsigned long /* interval */,
- XtTimerCallbackProc /* proc */,
- XtPointer /* closure */
-);
-
-extern void XtRemoveTimeOut(
- XtIntervalId /* timer */
-);
-
-extern XtInputId XtAddInput( /* obsolete */
- int /* source */,
- XtPointer /* condition */,
- XtInputCallbackProc /* proc */,
- XtPointer /* closure */
-);
-
-extern XtInputId XtAppAddInput(
- XtAppContext /* app_context */,
- int /* source */,
- XtPointer /* condition */,
- XtInputCallbackProc /* proc */,
- XtPointer /* closure */
-);
-
-extern void XtRemoveInput(
- XtInputId /* id */
-);
-
-extern XtSignalId XtAddSignal(
- XtSignalCallbackProc /* proc */,
- XtPointer /* closure */);
-
-extern XtSignalId XtAppAddSignal(
- XtAppContext /* app_context */,
- XtSignalCallbackProc /* proc */,
- XtPointer /* closure */
-);
-
-extern void XtRemoveSignal(
- XtSignalId /* id */
-);
-
-extern void XtNoticeSignal(
- XtSignalId /* id */
-);
-
-extern void XtNextEvent( /* obsolete */
- XEvent* /* event */
-);
-
-extern void XtAppNextEvent(
- XtAppContext /* app_context */,
- XEvent* /* event_return */
-);
-
-#define XtIMXEvent 1
-#define XtIMTimer 2
-#define XtIMAlternateInput 4
-#define XtIMSignal 8
-#define XtIMAll (XtIMXEvent | XtIMTimer | XtIMAlternateInput | XtIMSignal)
-
-extern Boolean XtPending( /* obsolete */
- void
-);
-
-extern XtInputMask XtAppPending(
- XtAppContext /* app_context */
-);
-
-extern XtBlockHookId XtAppAddBlockHook(
- XtAppContext /* app_context */,
- XtBlockHookProc /* proc */,
- XtPointer /* client_data */
-);
-
-extern void XtRemoveBlockHook(
- XtBlockHookId /* id */
-);
-
-/****************************************************************
- *
- * Random utility routines
- *
- ****************************************************************/
-
-#define XtIsRectObj(object) (_XtCheckSubclassFlag(object, (XtEnum)0x02))
-#define XtIsWidget(object) (_XtCheckSubclassFlag(object, (XtEnum)0x04))
-#define XtIsComposite(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x08))
-#define XtIsConstraint(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x10))
-#define XtIsShell(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x20))
-
-#undef XtIsOverrideShell
-extern Boolean XtIsOverrideShell(Widget /* object */);
-#define XtIsOverrideShell(widget) \
- (_XtIsSubclassOf(widget, (WidgetClass)overrideShellWidgetClass, \
- (WidgetClass)shellWidgetClass, (XtEnum)0x20))
-
-#define XtIsWMShell(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x40))
-
-#undef XtIsVendorShell
-extern Boolean XtIsVendorShell(Widget /* object */);
-#define XtIsVendorShell(widget) \
- (_XtIsSubclassOf(widget, (WidgetClass)vendorShellWidgetClass, \
- (WidgetClass)wmShellWidgetClass, (XtEnum)0x40))
-
-#undef XtIsTransientShell
-extern Boolean XtIsTransientShell(Widget /* object */);
-#define XtIsTransientShell(widget) \
- (_XtIsSubclassOf(widget, (WidgetClass)transientShellWidgetClass, \
- (WidgetClass)wmShellWidgetClass, (XtEnum)0x40))
-#define XtIsTopLevelShell(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x80))
-
-#undef XtIsApplicationShell
-extern Boolean XtIsApplicationShell(Widget /* object */);
-#define XtIsApplicationShell(widget) \
- (_XtIsSubclassOf(widget, (WidgetClass)applicationShellWidgetClass, \
- (WidgetClass)topLevelShellWidgetClass, (XtEnum)0x80))
-
-#undef XtIsSessionShell
-extern Boolean XtIsSessionShell(Widget /* object */);
-#define XtIsSessionShell(widget) \
- (_XtIsSubclassOf(widget, (WidgetClass)sessionShellWidgetClass, \
- (WidgetClass)topLevelShellWidgetClass, (XtEnum)0x80))
-
-extern void XtRealizeWidget(
- Widget /* widget */
-);
-
-void XtUnrealizeWidget(
- Widget /* widget */
-);
-
-extern void XtDestroyWidget(
- Widget /* widget */
-);
-
-extern void XtSetSensitive(
- Widget /* widget */,
- _XtBoolean /* sensitive */
-);
-
-extern void XtSetMappedWhenManaged(
- Widget /* widget */,
- _XtBoolean /* mapped_when_managed */
-);
-
-extern Widget XtNameToWidget(
- Widget /* reference */,
- _Xconst _XtString /* names */
-);
-
-extern Widget XtWindowToWidget(
- Display* /* display */,
- Window /* window */
-);
-
-extern XtPointer XtGetClassExtension(
- WidgetClass /* object_class */,
- Cardinal /* byte_offset */,
- XrmQuark /* type */,
- long /* version */,
- Cardinal /* record_size */
-);
-
-/***************************************************************
- *
- * Arg lists
- *
- ****************************************************************/
-
-
-#define XtSetArg(arg, n, d) \
- ((void)( (arg).name = (n), (arg).value = (XtArgVal)(d) ))
-
-extern ArgList XtMergeArgLists(
- ArgList /* args1 */,
- Cardinal /* num_args1 */,
- ArgList /* args2 */,
- Cardinal /* num_args2 */
-);
-
-/***************************************************************
- *
- * Vararg lists
- *
- ****************************************************************/
-
-#define XtVaNestedList "XtVaNestedList"
-#define XtVaTypedArg "XtVaTypedArg"
-
-extern XtVarArgsList XtVaCreateArgsList(
- XtPointer /*unused*/, ...
-) _X_SENTINEL(0);
-
-/*************************************************************
- *
- * Information routines
- *
- ************************************************************/
-
-#ifndef _XtIntrinsicP_h
-
-/* We're not included from the private file, so define these */
-
-extern Display *XtDisplay(
- Widget /* widget */
-);
-
-extern Display *XtDisplayOfObject(
- Widget /* object */
-);
-
-extern Screen *XtScreen(
- Widget /* widget */
-);
-
-extern Screen *XtScreenOfObject(
- Widget /* object */
-);
-
-extern Window XtWindow(
- Widget /* widget */
-);
-
-extern Window XtWindowOfObject(
- Widget /* object */
-);
-
-extern String XtName(
- Widget /* object */
-);
-
-extern WidgetClass XtSuperclass(
- Widget /* object */
-);
-
-extern WidgetClass XtClass(
- Widget /* object */
-);
-
-extern Widget XtParent(
- Widget /* widget */
-);
-
-#endif /*_XtIntrinsicP_h*/
-
-#undef XtMapWidget
-extern void XtMapWidget(Widget /* w */);
-#define XtMapWidget(widget) XMapWindow(XtDisplay(widget), XtWindow(widget))
-
-#undef XtUnmapWidget
-extern void XtUnmapWidget(Widget /* w */);
-#define XtUnmapWidget(widget) \
- XUnmapWindow(XtDisplay(widget), XtWindow(widget))
-
-extern void XtAddCallback(
- Widget /* widget */,
- _Xconst _XtString /* callback_name */,
- XtCallbackProc /* callback */,
- XtPointer /* closure */
-);
-
-extern void XtRemoveCallback(
- Widget /* widget */,
- _Xconst _XtString /* callback_name */,
- XtCallbackProc /* callback */,
- XtPointer /* closure */
-);
-
-extern void XtAddCallbacks(
- Widget /* widget */,
- _Xconst _XtString /* callback_name */,
- XtCallbackList /* callbacks */
-);
-
-extern void XtRemoveCallbacks(
- Widget /* widget */,
- _Xconst _XtString /* callback_name */,
- XtCallbackList /* callbacks */
-);
-
-extern void XtRemoveAllCallbacks(
- Widget /* widget */,
- _Xconst _XtString /* callback_name */
-);
-
-
-extern void XtCallCallbacks(
- Widget /* widget */,
- _Xconst _XtString /* callback_name */,
- XtPointer /* call_data */
-);
-
-extern void XtCallCallbackList(
- Widget /* widget */,
- XtCallbackList /* callbacks */,
- XtPointer /* call_data */
-);
-
-extern XtCallbackStatus XtHasCallbacks(
- Widget /* widget */,
- _Xconst _XtString /* callback_name */
-);
-
-/****************************************************************
- *
- * Geometry Management
- *
- ****************************************************************/
-
-
-extern XtGeometryResult XtMakeGeometryRequest(
- Widget /* widget */,
- XtWidgetGeometry* /* request */,
- XtWidgetGeometry* /* reply_return */
-);
-
-extern XtGeometryResult XtQueryGeometry(
- Widget /* widget */,
- XtWidgetGeometry* /* intended */,
- XtWidgetGeometry* /* preferred_return */
-);
-
-extern Widget XtCreatePopupShell(
- _Xconst _XtString /* name */,
- WidgetClass /* widgetClass */,
- Widget /* parent */,
- ArgList /* args */,
- Cardinal /* num_args */
-);
-
-extern Widget XtVaCreatePopupShell(
- _Xconst _XtString /* name */,
- WidgetClass /* widgetClass */,
- Widget /* parent */,
- ...
-) _X_SENTINEL(0);
-
-extern void XtPopup(
- Widget /* popup_shell */,
- XtGrabKind /* grab_kind */
-);
-
-extern void XtPopupSpringLoaded(
- Widget /* popup_shell */
-);
-
-extern void XtCallbackNone(
- Widget /* widget */,
- XtPointer /* closure */,
- XtPointer /* call_data */
-);
-
-extern void XtCallbackNonexclusive(
- Widget /* widget */,
- XtPointer /* closure */,
- XtPointer /* call_data */
-);
-
-extern void XtCallbackExclusive(
- Widget /* widget */,
- XtPointer /* closure */,
- XtPointer /* call_data */
-);
-
-extern void XtPopdown(
- Widget /* popup_shell */
-);
-
-extern void XtCallbackPopdown(
- Widget /* widget */,
- XtPointer /* closure */,
- XtPointer /* call_data */
-);
-
-extern void XtMenuPopupAction(
- Widget /* widget */,
- XEvent* /* event */,
- String* /* params */,
- Cardinal* /* num_params */
-);
-
-extern Widget XtCreateWidget(
- _Xconst _XtString /* name */,
- WidgetClass /* widget_class */,
- Widget /* parent */,
- ArgList /* args */,
- Cardinal /* num_args */
-);
-
-extern Widget XtCreateManagedWidget(
- _Xconst _XtString /* name */,
- WidgetClass /* widget_class */,
- Widget /* parent */,
- ArgList /* args */,
- Cardinal /* num_args */
-);
-
-extern Widget XtVaCreateWidget(
- _Xconst _XtString /* name */,
- WidgetClass /* widget */,
- Widget /* parent */,
- ...
-) _X_SENTINEL(0);
-
-extern Widget XtVaCreateManagedWidget(
- _Xconst _XtString /* name */,
- WidgetClass /* widget_class */,
- Widget /* parent */,
- ...
-) _X_SENTINEL(0);
-
-extern Widget XtCreateApplicationShell( /* obsolete */
- _Xconst _XtString /* name */,
- WidgetClass /* widget_class */,
- ArgList /* args */,
- Cardinal /* num_args */
-);
-
-extern Widget XtAppCreateShell(
- _Xconst _XtString /* application_name */,
- _Xconst _XtString /* application_class */,
- WidgetClass /* widget_class */,
- Display* /* display */,
- ArgList /* args */,
- Cardinal /* num_args */
-);
-
-extern Widget XtVaAppCreateShell(
- _Xconst _XtString /* application_name */,
- _Xconst _XtString /* application_class */,
- WidgetClass /* widget_class */,
- Display* /* display */,
- ...
-) _X_SENTINEL(0);
-
-/****************************************************************
- *
- * Toolkit initialization
- *
- ****************************************************************/
-
-extern void XtToolkitInitialize(
- void
-);
-
-extern XtLanguageProc XtSetLanguageProc(
- XtAppContext /* app_context */,
- XtLanguageProc /* proc */,
- XtPointer /* client_data */
-);
-
-extern void XtDisplayInitialize(
- XtAppContext /* app_context */,
- Display* /* dpy */,
- _Xconst _XtString /* application_name */,
- _Xconst _XtString /* application_class */,
- XrmOptionDescRec* /* options */,
- Cardinal /* num_options */,
- int* /* argc */,
- char** /* argv */
-);
-
-extern Widget XtOpenApplication(
- XtAppContext* /* app_context_return */,
- _Xconst _XtString /* application_class */,
- XrmOptionDescList /* options */,
- Cardinal /* num_options */,
- int* /* argc_in_out */,
- String* /* argv_in_out */,
- String* /* fallback_resources */,
- WidgetClass /* widget_class */,
- ArgList /* args */,
- Cardinal /* num_args */
-);
-
-extern Widget XtVaOpenApplication(
- XtAppContext* /* app_context_return */,
- _Xconst _XtString /* application_class */,
- XrmOptionDescList /* options */,
- Cardinal /* num_options */,
- int* /* argc_in_out */,
- String* /* argv_in_out */,
- String* /* fallback_resources */,
- WidgetClass /* widget_class */,
- ...
-) _X_SENTINEL(0);
-
-extern Widget XtAppInitialize( /* obsolete */
- XtAppContext* /* app_context_return */,
- _Xconst _XtString /* application_class */,
- XrmOptionDescList /* options */,
- Cardinal /* num_options */,
- int* /* argc_in_out */,
- String* /* argv_in_out */,
- String* /* fallback_resources */,
- ArgList /* args */,
- Cardinal /* num_args */
-);
-
-extern Widget XtVaAppInitialize( /* obsolete */
- XtAppContext* /* app_context_return */,
- _Xconst _XtString /* application_class */,
- XrmOptionDescList /* options */,
- Cardinal /* num_options */,
- int* /* argc_in_out */,
- String* /* argv_in_out */,
- String* /* fallback_resources */,
- ...
-) _X_SENTINEL(0);
-
-extern Widget XtInitialize( /* obsolete */
- _Xconst _XtString /* shell_name */,
- _Xconst _XtString /* application_class */,
- XrmOptionDescRec* /* options */,
- Cardinal /* num_options */,
- int* /* argc */,
- char** /* argv */
-);
-
-extern Display *XtOpenDisplay(
- XtAppContext /* app_context */,
- _Xconst _XtString /* display_string */,
- _Xconst _XtString /* application_name */,
- _Xconst _XtString /* application_class */,
- XrmOptionDescRec* /* options */,
- Cardinal /* num_options */,
- int* /* argc */,
- char** /* argv */
-);
-
-extern XtAppContext XtCreateApplicationContext(
- void
-);
-
-extern void XtAppSetFallbackResources(
- XtAppContext /* app_context */,
- String* /* specification_list */
-);
-
-extern void XtDestroyApplicationContext(
- XtAppContext /* app_context */
-);
-
-extern void XtInitializeWidgetClass(
- WidgetClass /* widget_class */
-);
-
-extern XtAppContext XtWidgetToApplicationContext(
- Widget /* widget */
-);
-
-extern XtAppContext XtDisplayToApplicationContext(
- Display* /* dpy */
-);
-
-extern XrmDatabase XtDatabase(
- Display* /* dpy */
-);
-
-extern XrmDatabase XtScreenDatabase(
- Screen* /* screen */
-);
-
-extern void XtCloseDisplay(
- Display* /* dpy */
-);
-
-extern void XtGetApplicationResources(
- Widget /* widget */,
- XtPointer /* base */,
- XtResourceList /* resources */,
- Cardinal /* num_resources */,
- ArgList /* args */,
- Cardinal /* num_args */
-);
-
-extern void XtVaGetApplicationResources(
- Widget /* widget */,
- XtPointer /* base */,
- XtResourceList /* resources */,
- Cardinal /* num_resources */,
- ...
-) _X_SENTINEL(0);
-
-extern void XtGetSubresources(
- Widget /* widget */,
- XtPointer /* base */,
- _Xconst _XtString /* name */,
- _Xconst _XtString /* class */,
- XtResourceList /* resources */,
- Cardinal /* num_resources */,
- ArgList /* args */,
- Cardinal /* num_args */
-);
-
-extern void XtVaGetSubresources(
- Widget /* widget */,
- XtPointer /* base */,
- _Xconst _XtString /* name */,
- _Xconst _XtString /* class */,
- XtResourceList /* resources */,
- Cardinal /* num_resources */,
- ...
-) _X_SENTINEL(0);
-
-extern void XtSetValues(
- Widget /* widget */,
- ArgList /* args */,
- Cardinal /* num_args */
-);
-
-extern void XtVaSetValues(
- Widget /* widget */,
- ...
-) _X_SENTINEL(0);
-
-extern void XtGetValues(
- Widget /* widget */,
- ArgList /* args */,
- Cardinal /* num_args */
-);
-
-extern void XtVaGetValues(
- Widget /* widget */,
- ...
-) _X_SENTINEL(0);
-
-extern void XtSetSubvalues(
- XtPointer /* base */,
- XtResourceList /* resources */,
- Cardinal /* num_resources */,
- ArgList /* args */,
- Cardinal /* num_args */
-);
-
-extern void XtVaSetSubvalues(
- XtPointer /* base */,
- XtResourceList /* resources */,
- Cardinal /* num_resources */,
- ...
-) _X_SENTINEL(0);
-
-extern void XtGetSubvalues(
- XtPointer /* base */,
- XtResourceList /* resources */,
- Cardinal /* num_resources */,
- ArgList /* args */,
- Cardinal /* num_args */
-);
-
-extern void XtVaGetSubvalues(
- XtPointer /* base */,
- XtResourceList /* resources */,
- Cardinal /* num_resources */,
- ...
-) _X_SENTINEL(0);
-
-extern void XtGetResourceList(
- WidgetClass /* widget_class */,
- XtResourceList* /* resources_return */,
- Cardinal* /* num_resources_return */
-);
-
-extern void XtGetConstraintResourceList(
- WidgetClass /* widget_class */,
- XtResourceList* /* resources_return */,
- Cardinal* /* num_resources_return */
-);
-
-#define XtUnspecifiedPixmap ((Pixmap)2)
-#define XtUnspecifiedShellInt (-1)
-#define XtUnspecifiedWindow ((Window)2)
-#define XtUnspecifiedWindowGroup ((Window)3)
-#define XtCurrentDirectory "XtCurrentDirectory"
-#define XtDefaultForeground "XtDefaultForeground"
-#define XtDefaultBackground "XtDefaultBackground"
-#define XtDefaultFont "XtDefaultFont"
-#define XtDefaultFontSet "XtDefaultFontSet"
-
-#if defined(CRAY)
-#define XtOffset(p_type,field) _Offsetof(p_type,field)
-#else /* ! CRAY */
-#define XtOffset(p_type,field) \
- ((Cardinal) (((char *) (&(((p_type)NULL)->field))) - ((char *) NULL)))
-#endif /* !CRAY */
-
-#ifdef offsetof
-#define XtOffsetOf(s_type,field) offsetof(s_type,field)
-#else
-#define XtOffsetOf(s_type,field) XtOffset(s_type*,field)
-#endif
-
-/*************************************************************
- *
- * Session Management
- *
- ************************************************************/
-
-typedef struct _XtCheckpointTokenRec {
- int save_type;
- int interact_style;
- Boolean shutdown;
- Boolean fast;
- Boolean cancel_shutdown;
- int phase;
- int interact_dialog_type; /* return */
- Boolean request_cancel; /* return */
- Boolean request_next_phase; /* return */
- Boolean save_success; /* return */
- int type; /* implementation private */
- Widget widget; /* implementation private */
-} XtCheckpointTokenRec, *XtCheckpointToken;
-
-XtCheckpointToken XtSessionGetToken(
- Widget /* widget */
-);
-
-void XtSessionReturnToken(
- XtCheckpointToken /* token */
-);
-
-/*************************************************************
- *
- * Error Handling
- *
- ************************************************************/
-
-extern XtErrorMsgHandler XtAppSetErrorMsgHandler(
- XtAppContext /* app_context */,
- XtErrorMsgHandler /* handler */
-);
-
-extern void XtSetErrorMsgHandler( /* obsolete */
- XtErrorMsgHandler /* handler */
-);
-
-extern XtErrorMsgHandler XtAppSetWarningMsgHandler(
- XtAppContext /* app_context */,
- XtErrorMsgHandler /* handler */
-);
-
-extern void XtSetWarningMsgHandler( /* obsolete */
- XtErrorMsgHandler /* handler */
-);
-
-extern void XtAppErrorMsg(
- XtAppContext /* app_context */,
- _Xconst _XtString /* name */,
- _Xconst _XtString /* type */,
- _Xconst _XtString /* class */,
- _Xconst _XtString /* default */,
- String* /* params */,
- Cardinal* /* num_params */
-);
-
-extern void XtErrorMsg( /* obsolete */
- _Xconst _XtString /* name */,
- _Xconst _XtString /* type */,
- _Xconst _XtString /* class */,
- _Xconst _XtString /* default */,
- String* /* params */,
- Cardinal* /* num_params */
-);
-
-extern void XtAppWarningMsg(
- XtAppContext /* app_context */,
- _Xconst _XtString /* name */,
- _Xconst _XtString /* type */,
- _Xconst _XtString /* class */,
- _Xconst _XtString /* default */,
- String* /* params */,
- Cardinal* /* num_params */
-);
-
-extern void XtWarningMsg( /* obsolete */
- _Xconst _XtString /* name */,
- _Xconst _XtString /* type */,
- _Xconst _XtString /* class */,
- _Xconst _XtString /* default */,
- String* /* params */,
- Cardinal* /* num_params */
-);
-
-extern XtErrorHandler XtAppSetErrorHandler(
- XtAppContext /* app_context */,
- XtErrorHandler /* handler */
-);
-
-extern void XtSetErrorHandler( /* obsolete */
- XtErrorHandler /* handler */
-);
-
-extern XtErrorHandler XtAppSetWarningHandler(
- XtAppContext /* app_context */,
- XtErrorHandler /* handler */
-);
-
-extern void XtSetWarningHandler( /* obsolete */
- XtErrorHandler /* handler */
-);
-
-extern void XtAppError(
- XtAppContext /* app_context */,
- _Xconst _XtString /* message */
-);
-
-extern void XtError( /* obsolete */
- _Xconst _XtString /* message */
-);
-
-extern void XtAppWarning(
- XtAppContext /* app_context */,
- _Xconst _XtString /* message */
-);
-
-extern void XtWarning( /* obsolete */
- _Xconst _XtString /* message */
-);
-
-extern XrmDatabase *XtAppGetErrorDatabase(
- XtAppContext /* app_context */
-);
-
-extern XrmDatabase *XtGetErrorDatabase( /* obsolete */
- void
-);
-
-extern void XtAppGetErrorDatabaseText(
- XtAppContext /* app_context */,
- _Xconst _XtString /* name */,
- _Xconst _XtString /* type */,
- _Xconst _XtString /* class */,
- _Xconst _XtString /* default */,
- String /* buffer_return */,
- int /* nbytes */,
- XrmDatabase /* database */
-);
-
-extern void XtGetErrorDatabaseText( /* obsolete */
- _Xconst _XtString /* name */,
- _Xconst _XtString /* type */,
- _Xconst _XtString /* class */,
- _Xconst _XtString /* default */,
- String /* buffer_return */,
- int /* nbytes */
-);
-
-/****************************************************************
- *
- * Memory Management
- *
- ****************************************************************/
-
-extern char *XtMalloc(
- Cardinal /* size */
-);
-
-extern char *XtCalloc(
- Cardinal /* num */,
- Cardinal /* size */
-);
-
-extern char *XtRealloc(
- char* /* ptr */,
- Cardinal /* num */
-);
-
-extern void XtFree(
- char* /* ptr */
-);
-
-#ifndef _X_RESTRICT_KYWD
-# define _X_RESTRICT_KYWD
-#endif
-extern Cardinal XtAsprintf(
- String *new_string,
- _Xconst char * _X_RESTRICT_KYWD format,
- ...
-) _X_ATTRIBUTE_PRINTF(2,3);
-
-#ifdef XTTRACEMEMORY
-
-extern char *_XtMalloc( /* implementation-private */
- Cardinal /* size */,
- char * /* file */,
- int /* line */
-);
-
-extern char *_XtRealloc( /* implementation-private */
- char * /* ptr */,
- Cardinal /* size */,
- char * /* file */,
- int /* line */
-);
-
-extern char *_XtCalloc( /* implementation-private */
- Cardinal /* num */,
- Cardinal /* size */,
- char * /* file */,
- int /* line */
-);
-
-extern void _XtFree( /* implementation-private */
- char * /* ptr */
-);
-
-#define XtMalloc(size) _XtMalloc(size, __FILE__, __LINE__)
-#define XtRealloc(ptr,size) _XtRealloc(ptr, size, __FILE__, __LINE__)
-#define XtCalloc(num,size) _XtCalloc(num, size, __FILE__, __LINE__)
-#define XtFree(ptr) _XtFree(ptr)
-
-#endif /* ifdef XTTRACEMEMORY */
-
-#define XtNew(type) ((type *) XtMalloc((unsigned) sizeof(type)))
-
-#undef XtNewString
-extern String XtNewString(String /* str */);
-#define XtNewString(str) \
- ((str) != NULL ? (strcpy(XtMalloc((unsigned)strlen(str) + 1), str)) : NULL)
-
-/*************************************************************
- *
- * Work procs
- *
- **************************************************************/
-
-extern XtWorkProcId XtAddWorkProc( /* obsolete */
- XtWorkProc /* proc */,
- XtPointer /* closure */
-);
-
-extern XtWorkProcId XtAppAddWorkProc(
- XtAppContext /* app_context */,
- XtWorkProc /* proc */,
- XtPointer /* closure */
-);
-
-extern void XtRemoveWorkProc(
- XtWorkProcId /* id */
-);
-
-
-/****************************************************************
- *
- * Graphic Context Management
- *****************************************************************/
-
-extern GC XtGetGC(
- Widget /* widget */,
- XtGCMask /* valueMask */,
- XGCValues* /* values */
-);
-
-extern GC XtAllocateGC(
- Widget /* widget */,
- Cardinal /* depth */,
- XtGCMask /* valueMask */,
- XGCValues* /* values */,
- XtGCMask /* dynamicMask */,
- XtGCMask /* unusedMask */
-);
-
-/* This implementation of XtDestroyGC differs from the formal specification
- * for historic backwards compatibility reasons. As other implementations
- * may conform to the spec, use of XtReleaseGC is strongly encouraged.
- */
-extern void XtDestroyGC( /* obsolete */
- GC /* gc */
-);
-
-extern void XtReleaseGC(
- Widget /* object */,
- GC /* gc */
-);
-
-
-
-extern void XtAppReleaseCacheRefs(
- XtAppContext /* app_context */,
- XtCacheRef* /* cache_ref */
-);
-
-extern void XtCallbackReleaseCacheRef(
- Widget /* widget */,
- XtPointer /* closure */, /* XtCacheRef */
- XtPointer /* call_data */
-);
-
-extern void XtCallbackReleaseCacheRefList(
- Widget /* widget */,
- XtPointer /* closure */, /* XtCacheRef* */
- XtPointer /* call_data */
-);
-
-extern void XtSetWMColormapWindows(
- Widget /* widget */,
- Widget* /* list */,
- Cardinal /* count */
-);
-
-extern String XtFindFile(
- _Xconst _XtString /* path */,
- Substitution /* substitutions */,
- Cardinal /* num_substitutions */,
- XtFilePredicate /* predicate */
-);
-
-extern String XtResolvePathname(
- Display* /* dpy */,
- _Xconst _XtString /* type */,
- _Xconst _XtString /* filename */,
- _Xconst _XtString /* suffix */,
- _Xconst _XtString /* path */,
- Substitution /* substitutions */,
- Cardinal /* num_substitutions */,
- XtFilePredicate /* predicate */
-);
-
-/****************************************************************
- *
- * Selections
- *
- *****************************************************************/
-
-#define XT_CONVERT_FAIL (Atom)0x80000001
-
-extern void XtDisownSelection(
- Widget /* widget */,
- Atom /* selection */,
- Time /* time */
-);
-
-extern void XtGetSelectionValue(
- Widget /* widget */,
- Atom /* selection */,
- Atom /* target */,
- XtSelectionCallbackProc /* callback */,
- XtPointer /* closure */,
- Time /* time */
-);
-
-extern void XtGetSelectionValues(
- Widget /* widget */,
- Atom /* selection */,
- Atom* /* targets */,
- int /* count */,
- XtSelectionCallbackProc /* callback */,
- XtPointer* /* closures */,
- Time /* time */
-);
-
-extern void XtAppSetSelectionTimeout(
- XtAppContext /* app_context */,
- unsigned long /* timeout */
-);
-
-extern void XtSetSelectionTimeout( /* obsolete */
- unsigned long /* timeout */
-);
-
-extern unsigned long XtAppGetSelectionTimeout(
- XtAppContext /* app_context */
-);
-
-extern unsigned long XtGetSelectionTimeout( /* obsolete */
- void
-);
-
-extern XSelectionRequestEvent *XtGetSelectionRequest(
- Widget /* widget */,
- Atom /* selection */,
- XtRequestId /* request_id */
-);
-
-extern void XtGetSelectionValueIncremental(
- Widget /* widget */,
- Atom /* selection */,
- Atom /* target */,
- XtSelectionCallbackProc /* selection_callback */,
- XtPointer /* client_data */,
- Time /* time */
-);
-
-extern void XtGetSelectionValuesIncremental(
- Widget /* widget */,
- Atom /* selection */,
- Atom* /* targets */,
- int /* count */,
- XtSelectionCallbackProc /* callback */,
- XtPointer* /* client_data */,
- Time /* time */
-);
-
-extern void XtSetSelectionParameters(
- Widget /* requestor */,
- Atom /* selection */,
- Atom /* type */,
- XtPointer /* value */,
- unsigned long /* length */,
- int /* format */
-);
-
-extern void XtGetSelectionParameters(
- Widget /* owner */,
- Atom /* selection */,
- XtRequestId /* request_id */,
- Atom* /* type_return */,
- XtPointer* /* value_return */,
- unsigned long* /* length_return */,
- int* /* format_return */
-);
-
-extern void XtCreateSelectionRequest(
- Widget /* requestor */,
- Atom /* selection */
-);
-
-extern void XtSendSelectionRequest(
- Widget /* requestor */,
- Atom /* selection */,
- Time /* time */
-);
-
-extern void XtCancelSelectionRequest(
- Widget /* requestor */,
- Atom /* selection */
-);
-
-extern Atom XtReservePropertyAtom(
- Widget /* widget */
-);
-
-extern void XtReleasePropertyAtom(
- Widget /* widget */,
- Atom /* selection */
-);
-
-extern void XtGrabKey(
- Widget /* widget */,
- _XtKeyCode /* keycode */,
- Modifiers /* modifiers */,
- _XtBoolean /* owner_events */,
- int /* pointer_mode */,
- int /* keyboard_mode */
-);
-
-extern void XtUngrabKey(
- Widget /* widget */,
- _XtKeyCode /* keycode */,
- Modifiers /* modifiers */
-);
-
-extern int XtGrabKeyboard(
- Widget /* widget */,
- _XtBoolean /* owner_events */,
- int /* pointer_mode */,
- int /* keyboard_mode */,
- Time /* time */
-);
-
-extern void XtUngrabKeyboard(
- Widget /* widget */,
- Time /* time */
-);
-
-extern void XtGrabButton(
- Widget /* widget */,
- int /* button */,
- Modifiers /* modifiers */,
- _XtBoolean /* owner_events */,
- unsigned int /* event_mask */,
- int /* pointer_mode */,
- int /* keyboard_mode */,
- Window /* confine_to */,
- Cursor /* cursor */
-);
-
-extern void XtUngrabButton(
- Widget /* widget */,
- unsigned int /* button */,
- Modifiers /* modifiers */
-);
-
-extern int XtGrabPointer(
- Widget /* widget */,
- _XtBoolean /* owner_events */,
- unsigned int /* event_mask */,
- int /* pointer_mode */,
- int /* keyboard_mode */,
- Window /* confine_to */,
- Cursor /* cursor */,
- Time /* time */
-);
-
-extern void XtUngrabPointer(
- Widget /* widget */,
- Time /* time */
-);
-
-extern void XtGetApplicationNameAndClass(
- Display* /* dpy */,
- String* /* name_return */,
- String* /* class_return */
-);
-
-extern void XtRegisterDrawable(
- Display* /* dpy */,
- Drawable /* drawable */,
- Widget /* widget */
-);
-
-extern void XtUnregisterDrawable(
- Display* /* dpy */,
- Drawable /* drawable */
-);
-
-extern Widget XtHooksOfDisplay(
- Display* /* dpy */
-);
-
-typedef struct {
- String type;
- Widget widget;
- ArgList args;
- Cardinal num_args;
-} XtCreateHookDataRec, *XtCreateHookData;
-
-typedef struct {
- String type;
- Widget widget;
- XtPointer event_data;
- Cardinal num_event_data;
-} XtChangeHookDataRec, *XtChangeHookData;
-
-typedef struct {
- Widget old, req;
- ArgList args;
- Cardinal num_args;
-} XtChangeHookSetValuesDataRec, *XtChangeHookSetValuesData;
-
-typedef struct {
- String type;
- Widget widget;
- XtGeometryMask changeMask;
- XWindowChanges changes;
-} XtConfigureHookDataRec, *XtConfigureHookData;
-
-typedef struct {
- String type;
- Widget widget;
- XtWidgetGeometry* request;
- XtWidgetGeometry* reply;
- XtGeometryResult result;
-} XtGeometryHookDataRec, *XtGeometryHookData;
-
-typedef struct {
- String type;
- Widget widget;
-} XtDestroyHookDataRec, *XtDestroyHookData;
-
-extern void XtGetDisplays(
- XtAppContext /* app_context */,
- Display*** /* dpy_return */,
- Cardinal* /* num_dpy_return */
-);
-
-extern Boolean XtToolkitThreadInitialize(
- void
-);
-
-extern void XtAppSetExitFlag(
- XtAppContext /* app_context */
-);
-
-extern Boolean XtAppGetExitFlag(
- XtAppContext /* app_context */
-);
-
-extern void XtAppLock(
- XtAppContext /* app_context */
-);
-
-extern void XtAppUnlock(
- XtAppContext /* app_context */
-);
-
-/*
- * Predefined Resource Converters
- */
-
-
-/* String converters */
-
-extern Boolean XtCvtStringToAcceleratorTable(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToAtom(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* Display */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToBool(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToBoolean(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToCommandArgArray(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToCursor(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* Display */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToDimension(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToDirectoryString(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToDisplay(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToFile(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToFloat(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToFont(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* Display */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToFontSet(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* Display, locale */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToFontStruct(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* Display */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToGravity(
- Display* /* dpy */,
- XrmValuePtr /* args */,
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToInitialState(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToInt(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToPixel(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* Screen, Colormap */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-#define XtCvtStringToPosition XtCvtStringToShort
-
-extern Boolean XtCvtStringToRestartStyle(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToShort(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToTranslationTable(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToUnsignedChar(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtStringToVisual(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* Screen, depth */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-/* int converters */
-
-extern Boolean XtCvtIntToBool(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtIntToBoolean(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtIntToColor(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* Screen, Colormap */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-#define XtCvtIntToDimension XtCvtIntToShort
-
-extern Boolean XtCvtIntToFloat(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtIntToFont(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtIntToPixel(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtIntToPixmap(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-#define XtCvtIntToPosition XtCvtIntToShort
-
-extern Boolean XtCvtIntToShort(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-extern Boolean XtCvtIntToUnsignedChar(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-/* Color converter */
-
-extern Boolean XtCvtColorToPixel(
- Display* /* dpy */,
- XrmValuePtr /* args */, /* none */
- Cardinal* /* num_args */,
- XrmValuePtr /* fromVal */,
- XrmValuePtr /* toVal */,
- XtPointer* /* closure_ret */
-);
-
-/* Pixel converter */
-
-#define XtCvtPixelToColor XtCvtIntToColor
-
-
-_XFUNCPROTOEND
-
-#endif /*_XtIntrinsic_h*/
-/* DON'T ADD STUFF AFTER THIS #endif */
+/***********************************************************
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+******************************************************************/
+
+/*
+
+Copyright 1987, 1988, 1994, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+*/
+
+#ifndef _XtIntrinsic_h
+#define _XtIntrinsic_h
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/Xresource.h>
+#include <X11/Xfuncproto.h>
+#ifdef XT_BC
+#include <X11/Xos.h> /* for R4 compatibility */
+#else
+#include <X11/Xosdefs.h>
+#include <string.h> /* for XtNewString */
+#endif /* XT_BC else */
+
+#define XtSpecificationRelease 6
+
+typedef char *String;
+
+/* We do this in order to get "const" declarations to work right. We
+ * use _XtString instead of String so that C++ applications can
+ * #define String to something else if they choose, to avoid conflicts
+ * with other C++ libraries.
+ */
+#define _XtString char*
+
+/* _Xt names are private to Xt implementation, do not use in client code */
+#if NeedWidePrototypes
+#define _XtBoolean int
+#define _XtDimension unsigned int
+#define _XtKeyCode unsigned int
+#define _XtPosition int
+#define _XtXtEnum unsigned int
+#else
+#define _XtBoolean Boolean
+#define _XtDimension Dimension
+#define _XtKeyCode KeyCode
+#define _XtPosition Position
+#define _XtXtEnum XtEnum
+#endif /* NeedWidePrototypes */
+
+#include <stddef.h>
+
+#ifdef VMS
+#define externalref globalref
+#define externaldef(psect) globaldef {"psect"} noshare
+#else
+#define externalref extern
+#define externaldef(psect)
+#endif /* VMS */
+
+#ifndef FALSE
+#define FALSE 0
+#define TRUE 1
+#endif
+
+#define XtNumber(arr) ((Cardinal) (sizeof(arr) / sizeof(arr[0])))
+
+typedef struct _WidgetRec *Widget;
+typedef Widget *WidgetList;
+typedef struct _WidgetClassRec *WidgetClass;
+typedef struct _CompositeRec *CompositeWidget;
+typedef struct _XtActionsRec *XtActionList;
+typedef struct _XtEventRec *XtEventTable;
+
+typedef struct _XtAppStruct *XtAppContext;
+typedef unsigned long XtValueMask;
+typedef unsigned long XtIntervalId;
+typedef unsigned long XtInputId;
+typedef unsigned long XtWorkProcId;
+typedef unsigned long XtSignalId;
+typedef unsigned int XtGeometryMask;
+typedef unsigned long XtGCMask; /* Mask of values that are used by widget*/
+typedef unsigned long Pixel; /* Index into colormap */
+typedef int XtCacheType;
+#define XtCacheNone 0x001
+#define XtCacheAll 0x002
+#define XtCacheByDisplay 0x003
+#define XtCacheRefCount 0x100
+
+/****************************************************************
+ *
+ * System Dependent Definitions; see spec for specific range
+ * requirements. Do not assume every implementation uses the
+ * same base types!
+ *
+ *
+ * XtArgVal ought to be a union of XtPointer, char *, long, int *, and proc *
+ * but casting to union types is not really supported.
+ *
+ * So the typedef for XtArgVal should be chosen such that
+ *
+ * sizeof (XtArgVal) >= sizeof(XtPointer)
+ * sizeof(char *)
+ * sizeof(long)
+ * sizeof(int *)
+ * sizeof(proc *)
+ *
+ * ArgLists rely heavily on the above typedef.
+ *
+ ****************************************************************/
+#ifdef CRAY
+typedef long Boolean;
+typedef char* XtArgVal;
+typedef long XtEnum;
+#else
+typedef char Boolean;
+typedef intptr_t XtArgVal;
+typedef unsigned char XtEnum;
+#endif
+
+typedef unsigned int Cardinal;
+typedef unsigned short Dimension; /* Size in pixels */
+typedef short Position; /* Offset from 0 coordinate */
+
+typedef void* XtPointer;
+
+/* The type Opaque is NOT part of the Xt standard, do NOT use it. */
+/* (It remains here only for backward compatibility.) */
+typedef XtPointer Opaque;
+
+#include <X11/Core.h>
+#include <X11/Composite.h>
+#include <X11/Constraint.h>
+#include <X11/Object.h>
+#include <X11/RectObj.h>
+
+typedef struct _TranslationData *XtTranslations;
+typedef struct _TranslationData *XtAccelerators;
+typedef unsigned int Modifiers;
+
+typedef void (*XtActionProc)(
+ Widget /* widget */,
+ XEvent* /* event */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+typedef XtActionProc* XtBoundActions;
+
+typedef struct _XtActionsRec{
+ String string;
+ XtActionProc proc;
+} XtActionsRec;
+
+typedef enum {
+/* address mode parameter representation */
+/* ------------ ------------------------ */
+ XtAddress, /* address */
+ XtBaseOffset, /* offset */
+ XtImmediate, /* constant */
+ XtResourceString, /* resource name string */
+ XtResourceQuark, /* resource name quark */
+ XtWidgetBaseOffset, /* offset from ancestor */
+ XtProcedureArg /* procedure to invoke */
+} XtAddressMode;
+
+typedef struct {
+ XtAddressMode address_mode;
+ XtPointer address_id;
+ Cardinal size;
+} XtConvertArgRec, *XtConvertArgList;
+
+typedef void (*XtConvertArgProc)(
+ Widget /* widget */,
+ Cardinal* /* size */,
+ XrmValue* /* value */
+);
+
+typedef struct {
+ XtGeometryMask request_mode;
+ Position x, y;
+ Dimension width, height, border_width;
+ Widget sibling;
+ int stack_mode; /* Above, Below, TopIf, BottomIf, Opposite, DontChange */
+} XtWidgetGeometry;
+
+/* Additions to Xlib geometry requests: ask what would happen, don't do it */
+#define XtCWQueryOnly (1 << 7)
+
+/* Additions to Xlib stack modes: don't change stack order */
+#define XtSMDontChange 5
+
+typedef void (*XtConverter)( /* obsolete */
+ XrmValue* /* args */,
+ Cardinal* /* num_args */,
+ XrmValue* /* from */,
+ XrmValue* /* to */
+);
+
+typedef Boolean (*XtTypeConverter)(
+ Display* /* dpy */,
+ XrmValue* /* args */,
+ Cardinal* /* num_args */,
+ XrmValue* /* from */,
+ XrmValue* /* to */,
+ XtPointer* /* converter_data */
+);
+
+typedef void (*XtDestructor)(
+ XtAppContext /* app */,
+ XrmValue* /* to */,
+ XtPointer /* converter_data */,
+ XrmValue* /* args */,
+ Cardinal* /* num_args */
+);
+
+typedef Opaque XtCacheRef;
+
+typedef Opaque XtActionHookId;
+
+typedef void (*XtActionHookProc)(
+ Widget /* w */,
+ XtPointer /* client_data */,
+ String /* action_name */,
+ XEvent* /* event */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+typedef unsigned long XtBlockHookId;
+
+typedef void (*XtBlockHookProc)(
+ XtPointer /* client_data */
+);
+
+typedef void (*XtKeyProc)(
+ Display* /* dpy */,
+ _XtKeyCode /* keycode */,
+ Modifiers /* modifiers */,
+ Modifiers* /* modifiers_return */,
+ KeySym* /* keysym_return */
+);
+
+typedef void (*XtCaseProc)(
+ Display* /* display */,
+ KeySym /* keysym */,
+ KeySym* /* lower_return */,
+ KeySym* /* upper_return */
+);
+
+typedef void (*XtEventHandler)(
+ Widget /* widget */,
+ XtPointer /* closure */,
+ XEvent* /* event */,
+ Boolean* /* continue_to_dispatch */
+);
+typedef unsigned long EventMask;
+
+typedef enum {XtListHead, XtListTail } XtListPosition;
+
+typedef unsigned long XtInputMask;
+#define XtInputNoneMask 0L
+#define XtInputReadMask (1L<<0)
+#define XtInputWriteMask (1L<<1)
+#define XtInputExceptMask (1L<<2)
+
+typedef void (*XtTimerCallbackProc)(
+ XtPointer /* closure */,
+ XtIntervalId* /* id */
+);
+
+typedef void (*XtInputCallbackProc)(
+ XtPointer /* closure */,
+ int* /* source */,
+ XtInputId* /* id */
+);
+
+typedef void (*XtSignalCallbackProc)(
+ XtPointer /* closure */,
+ XtSignalId* /* id */
+);
+
+typedef struct {
+ String name;
+ XtArgVal value;
+} Arg, *ArgList;
+
+typedef XtPointer XtVarArgsList;
+
+typedef void (*XtCallbackProc)(
+ Widget /* widget */,
+ XtPointer /* closure */, /* data the application registered */
+ XtPointer /* call_data */ /* callback specific data */
+);
+
+typedef struct _XtCallbackRec {
+ XtCallbackProc callback;
+ XtPointer closure;
+} XtCallbackRec, *XtCallbackList;
+
+typedef enum {
+ XtCallbackNoList,
+ XtCallbackHasNone,
+ XtCallbackHasSome
+} XtCallbackStatus;
+
+typedef enum {
+ XtGeometryYes, /* Request accepted. */
+ XtGeometryNo, /* Request denied. */
+ XtGeometryAlmost, /* Request denied, but willing to take replyBox. */
+ XtGeometryDone /* Request accepted and done. */
+} XtGeometryResult;
+
+typedef enum {XtGrabNone, XtGrabNonexclusive, XtGrabExclusive} XtGrabKind;
+
+typedef struct {
+ Widget shell_widget;
+ Widget enable_widget;
+} XtPopdownIDRec, *XtPopdownID;
+
+typedef struct _XtResource {
+ String resource_name; /* Resource name */
+ String resource_class; /* Resource class */
+ String resource_type; /* Representation type desired */
+ Cardinal resource_size; /* Size in bytes of representation */
+ Cardinal resource_offset;/* Offset from base to put resource value */
+ String default_type; /* representation type of specified default */
+ XtPointer default_addr; /* Address of default resource */
+} XtResource, *XtResourceList;
+
+typedef void (*XtResourceDefaultProc)(
+ Widget /* widget */,
+ int /* offset */,
+ XrmValue* /* value */
+);
+
+typedef String (*XtLanguageProc)(
+ Display* /* dpy */,
+ String /* xnl */,
+ XtPointer /* client_data */
+);
+
+typedef void (*XtErrorMsgHandler)(
+ String /* name */,
+ String /* type */,
+ String /* class */,
+ String /* default */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+typedef void (*XtErrorHandler)(
+ String /* msg */
+);
+
+typedef void (*XtCreatePopupChildProc)(
+ Widget /* shell */
+);
+
+typedef Boolean (*XtWorkProc)(
+ XtPointer /* closure */ /* data the application registered */
+);
+
+typedef struct {
+ char match;
+ String substitution;
+} SubstitutionRec, *Substitution;
+
+typedef Boolean (*XtFilePredicate)(
+ String /* filename */
+);
+
+typedef XtPointer XtRequestId;
+
+typedef Boolean (*XtConvertSelectionProc)(
+ Widget /* widget */,
+ Atom* /* selection */,
+ Atom* /* target */,
+ Atom* /* type_return */,
+ XtPointer* /* value_return */,
+ unsigned long* /* length_return */,
+ int* /* format_return */
+);
+
+typedef void (*XtLoseSelectionProc)(
+ Widget /* widget */,
+ Atom* /* selection */
+);
+
+typedef void (*XtSelectionDoneProc)(
+ Widget /* widget */,
+ Atom* /* selection */,
+ Atom* /* target */
+);
+
+typedef void (*XtSelectionCallbackProc)(
+ Widget /* widget */,
+ XtPointer /* closure */,
+ Atom* /* selection */,
+ Atom* /* type */,
+ XtPointer /* value */,
+ unsigned long* /* length */,
+ int* /* format */
+);
+
+typedef void (*XtLoseSelectionIncrProc)(
+ Widget /* widget */,
+ Atom* /* selection */,
+ XtPointer /* client_data */
+);
+
+typedef void (*XtSelectionDoneIncrProc)(
+ Widget /* widget */,
+ Atom* /* selection */,
+ Atom* /* target */,
+ XtRequestId* /* receiver_id */,
+ XtPointer /* client_data */
+);
+
+typedef Boolean (*XtConvertSelectionIncrProc)(
+ Widget /* widget */,
+ Atom* /* selection */,
+ Atom* /* target */,
+ Atom* /* type */,
+ XtPointer* /* value */,
+ unsigned long* /* length */,
+ int* /* format */,
+ unsigned long* /* max_length */,
+ XtPointer /* client_data */,
+ XtRequestId* /* receiver_id */
+);
+
+typedef void (*XtCancelConvertSelectionProc)(
+ Widget /* widget */,
+ Atom* /* selection */,
+ Atom* /* target */,
+ XtRequestId* /* receiver_id */,
+ XtPointer /* client_data */
+);
+
+typedef Boolean (*XtEventDispatchProc)(
+ XEvent* /* event */
+);
+
+typedef void (*XtExtensionSelectProc)(
+ Widget /* widget */,
+ int* /* event_types */,
+ XtPointer* /* select_data */,
+ int /* count */,
+ XtPointer /* client_data */
+);
+
+/***************************************************************
+ *
+ * Exported Interfaces
+ *
+ ****************************************************************/
+
+_XFUNCPROTOBEGIN
+
+extern Boolean XtConvertAndStore(
+ Widget /* widget */,
+ _Xconst _XtString /* from_type */,
+ XrmValue* /* from */,
+ _Xconst _XtString /* to_type */,
+ XrmValue* /* to_in_out */
+);
+
+extern Boolean XtCallConverter(
+ Display* /* dpy */,
+ XtTypeConverter /* converter */,
+ XrmValuePtr /* args */,
+ Cardinal /* num_args */,
+ XrmValuePtr /* from */,
+ XrmValue* /* to_in_out */,
+ XtCacheRef* /* cache_ref_return */
+);
+
+extern Boolean XtDispatchEvent(
+ XEvent* /* event */
+);
+
+extern Boolean XtCallAcceptFocus(
+ Widget /* widget */,
+ Time* /* time */
+);
+
+extern Boolean XtPeekEvent( /* obsolete */
+ XEvent* /* event_return */
+);
+
+extern Boolean XtAppPeekEvent(
+ XtAppContext /* app_context */,
+ XEvent* /* event_return */
+);
+
+extern Boolean XtIsSubclass(
+ Widget /* widget */,
+ WidgetClass /* widgetClass */
+);
+
+extern Boolean XtIsObject(
+ Widget /* object */
+);
+
+extern Boolean _XtCheckSubclassFlag( /* implementation-private */
+ Widget /* object */,
+ _XtXtEnum /* type_flag */
+);
+
+extern Boolean _XtIsSubclassOf( /* implementation-private */
+ Widget /* object */,
+ WidgetClass /* widget_class */,
+ WidgetClass /* flag_class */,
+ _XtXtEnum /* type_flag */
+);
+
+extern Boolean XtIsManaged(
+ Widget /* rectobj */
+);
+
+extern Boolean XtIsRealized(
+ Widget /* widget */
+);
+
+extern Boolean XtIsSensitive(
+ Widget /* widget */
+);
+
+extern Boolean XtOwnSelection(
+ Widget /* widget */,
+ Atom /* selection */,
+ Time /* time */,
+ XtConvertSelectionProc /* convert */,
+ XtLoseSelectionProc /* lose */,
+ XtSelectionDoneProc /* done */
+);
+
+extern Boolean XtOwnSelectionIncremental(
+ Widget /* widget */,
+ Atom /* selection */,
+ Time /* time */,
+ XtConvertSelectionIncrProc /* convert_callback */,
+ XtLoseSelectionIncrProc /* lose_callback */,
+ XtSelectionDoneIncrProc /* done_callback */,
+ XtCancelConvertSelectionProc /* cancel_callback */,
+ XtPointer /* client_data */
+);
+
+extern XtGeometryResult XtMakeResizeRequest(
+ Widget /* widget */,
+ _XtDimension /* width */,
+ _XtDimension /* height */,
+ Dimension* /* width_return */,
+ Dimension* /* height_return */
+);
+
+extern void XtTranslateCoords(
+ Widget /* widget */,
+ _XtPosition /* x */,
+ _XtPosition /* y */,
+ Position* /* rootx_return */,
+ Position* /* rooty_return */
+);
+
+extern KeySym* XtGetKeysymTable(
+ Display* /* dpy */,
+ KeyCode* /* min_keycode_return */,
+ int* /* keysyms_per_keycode_return */
+);
+
+extern void XtKeysymToKeycodeList(
+ Display* /* dpy */,
+ KeySym /* keysym */,
+ KeyCode** /* keycodes_return */,
+ Cardinal* /* keycount_return */
+);
+
+extern void XtStringConversionWarning( /* obsolete */
+ _Xconst _XtString /* from_value */,
+ _Xconst _XtString /* to_type */
+);
+
+extern void XtDisplayStringConversionWarning(
+ Display* /* dpy */,
+ _Xconst _XtString /* from_value */,
+ _Xconst _XtString /* to_type */
+);
+
+externalref XtConvertArgRec const colorConvertArgs[];
+externalref XtConvertArgRec const screenConvertArg[];
+
+extern void XtAppAddConverter( /* obsolete */
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* from_type */,
+ _Xconst _XtString /* to_type */,
+ XtConverter /* converter */,
+ XtConvertArgList /* convert_args */,
+ Cardinal /* num_args */
+);
+
+extern void XtAddConverter( /* obsolete */
+ _Xconst _XtString /* from_type */,
+ _Xconst _XtString /* to_type */,
+ XtConverter /* converter */,
+ XtConvertArgList /* convert_args */,
+ Cardinal /* num_args */
+);
+
+extern void XtSetTypeConverter(
+ _Xconst _XtString /* from_type */,
+ _Xconst _XtString /* to_type */,
+ XtTypeConverter /* converter */,
+ XtConvertArgList /* convert_args */,
+ Cardinal /* num_args */,
+ XtCacheType /* cache_type */,
+ XtDestructor /* destructor */
+);
+
+extern void XtAppSetTypeConverter(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* from_type */,
+ _Xconst _XtString /* to_type */,
+ XtTypeConverter /* converter */,
+ XtConvertArgList /* convert_args */,
+ Cardinal /* num_args */,
+ XtCacheType /* cache_type */,
+ XtDestructor /* destructor */
+);
+
+extern void XtConvert( /* obsolete */
+ Widget /* widget */,
+ _Xconst _XtString /* from_type */,
+ XrmValue* /* from */,
+ _Xconst _XtString /* to_type */,
+ XrmValue* /* to_return */
+);
+
+extern void XtDirectConvert( /* obsolete */
+ XtConverter /* converter */,
+ XrmValuePtr /* args */,
+ Cardinal /* num_args */,
+ XrmValuePtr /* from */,
+ XrmValue* /* to_return */
+);
+
+/****************************************************************
+ *
+ * Translation Management
+ *
+ ****************************************************************/
+
+extern XtTranslations XtParseTranslationTable(
+ _Xconst _XtString /* table */
+);
+
+extern XtAccelerators XtParseAcceleratorTable(
+ _Xconst _XtString /* source */
+);
+
+extern void XtOverrideTranslations(
+ Widget /* widget */,
+ XtTranslations /* translations */
+);
+
+extern void XtAugmentTranslations(
+ Widget /* widget */,
+ XtTranslations /* translations */
+);
+
+extern void XtInstallAccelerators(
+ Widget /* destination */,
+ Widget /* source */
+);
+
+extern void XtInstallAllAccelerators(
+ Widget /* destination */,
+ Widget /* source */
+);
+
+extern void XtUninstallTranslations(
+ Widget /* widget */
+);
+
+extern void XtAppAddActions(
+ XtAppContext /* app_context */,
+ XtActionList /* actions */,
+ Cardinal /* num_actions */
+);
+
+extern void XtAddActions( /* obsolete */
+ XtActionList /* actions */,
+ Cardinal /* num_actions */
+);
+
+extern XtActionHookId XtAppAddActionHook(
+ XtAppContext /* app_context */,
+ XtActionHookProc /* proc */,
+ XtPointer /* client_data */
+);
+
+extern void XtRemoveActionHook(
+ XtActionHookId /* id */
+);
+
+extern void XtGetActionList(
+ WidgetClass /* widget_class */,
+ XtActionList* /* actions_return */,
+ Cardinal* /* num_actions_return */
+);
+
+extern void XtCallActionProc(
+ Widget /* widget */,
+ _Xconst _XtString /* action */,
+ XEvent* /* event */,
+ String* /* params */,
+ Cardinal /* num_params */
+);
+
+extern void XtRegisterGrabAction(
+ XtActionProc /* action_proc */,
+ _XtBoolean /* owner_events */,
+ unsigned int /* event_mask */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */
+);
+
+extern void XtSetMultiClickTime(
+ Display* /* dpy */,
+ int /* milliseconds */
+);
+
+extern int XtGetMultiClickTime(
+ Display* /* dpy */
+);
+
+extern KeySym XtGetActionKeysym(
+ XEvent* /* event */,
+ Modifiers* /* modifiers_return */
+);
+
+/***************************************************************
+ *
+ * Keycode and Keysym procedures for translation management
+ *
+ ****************************************************************/
+
+extern void XtTranslateKeycode(
+ Display* /* dpy */,
+ _XtKeyCode /* keycode */,
+ Modifiers /* modifiers */,
+ Modifiers* /* modifiers_return */,
+ KeySym* /* keysym_return */
+);
+
+extern void XtTranslateKey(
+ Display* /* dpy */,
+ _XtKeyCode /* keycode */,
+ Modifiers /* modifiers */,
+ Modifiers* /* modifiers_return */,
+ KeySym* /* keysym_return */
+);
+
+extern void XtSetKeyTranslator(
+ Display* /* dpy */,
+ XtKeyProc /* proc */
+);
+
+extern void XtRegisterCaseConverter(
+ Display* /* dpy */,
+ XtCaseProc /* proc */,
+ KeySym /* start */,
+ KeySym /* stop */
+);
+
+extern void XtConvertCase(
+ Display* /* dpy */,
+ KeySym /* keysym */,
+ KeySym* /* lower_return */,
+ KeySym* /* upper_return */
+);
+
+/****************************************************************
+ *
+ * Event Management
+ *
+ ****************************************************************/
+
+/* XtAllEvents is valid only for XtRemoveEventHandler and
+ * XtRemoveRawEventHandler; don't use it to select events!
+ */
+#define XtAllEvents ((EventMask) -1L)
+
+extern void XtAddEventHandler(
+ Widget /* widget */,
+ EventMask /* event_mask */,
+ _XtBoolean /* nonmaskable */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveEventHandler(
+ Widget /* widget */,
+ EventMask /* event_mask */,
+ _XtBoolean /* nonmaskable */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtAddRawEventHandler(
+ Widget /* widget */,
+ EventMask /* event_mask */,
+ _XtBoolean /* nonmaskable */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveRawEventHandler(
+ Widget /* widget */,
+ EventMask /* event_mask */,
+ _XtBoolean /* nonmaskable */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtInsertEventHandler(
+ Widget /* widget */,
+ EventMask /* event_mask */,
+ _XtBoolean /* nonmaskable */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */,
+ XtListPosition /* position */
+);
+
+extern void XtInsertRawEventHandler(
+ Widget /* widget */,
+ EventMask /* event_mask */,
+ _XtBoolean /* nonmaskable */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */,
+ XtListPosition /* position */
+);
+
+extern XtEventDispatchProc XtSetEventDispatcher(
+ Display* /* dpy */,
+ int /* event_type */,
+ XtEventDispatchProc /* proc */
+);
+
+extern Boolean XtDispatchEventToWidget(
+ Widget /* widget */,
+ XEvent* /* event */
+);
+
+extern void XtInsertEventTypeHandler(
+ Widget /* widget */,
+ int /* type */,
+ XtPointer /* select_data */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */,
+ XtListPosition /* position */
+);
+
+extern void XtRemoveEventTypeHandler(
+ Widget /* widget */,
+ int /* type */,
+ XtPointer /* select_data */,
+ XtEventHandler /* proc */,
+ XtPointer /* closure */
+);
+
+extern EventMask XtBuildEventMask(
+ Widget /* widget */
+);
+
+extern void XtRegisterExtensionSelector(
+ Display* /* dpy */,
+ int /* min_event_type */,
+ int /* max_event_type */,
+ XtExtensionSelectProc /* proc */,
+ XtPointer /* client_data */
+);
+
+extern void XtAddGrab(
+ Widget /* widget */,
+ _XtBoolean /* exclusive */,
+ _XtBoolean /* spring_loaded */
+);
+
+extern void XtRemoveGrab(
+ Widget /* widget */
+);
+
+extern void XtProcessEvent( /* obsolete */
+ XtInputMask /* mask */
+);
+
+extern void XtAppProcessEvent(
+ XtAppContext /* app_context */,
+ XtInputMask /* mask */
+);
+
+extern void XtMainLoop( /* obsolete */
+ void
+);
+
+extern void XtAppMainLoop(
+ XtAppContext /* app_context */
+);
+
+extern void XtAddExposureToRegion(
+ XEvent* /* event */,
+ Region /* region */
+);
+
+extern void XtSetKeyboardFocus(
+ Widget /* subtree */,
+ Widget /* descendent */
+);
+
+extern Widget XtGetKeyboardFocusWidget(
+ Widget /* widget */
+);
+
+extern XEvent* XtLastEventProcessed(
+ Display* /* dpy */
+);
+
+extern Time XtLastTimestampProcessed(
+ Display* /* dpy */
+);
+
+/****************************************************************
+ *
+ * Event Gathering Routines
+ *
+ ****************************************************************/
+
+extern XtIntervalId XtAddTimeOut( /* obsolete */
+ unsigned long /* interval */,
+ XtTimerCallbackProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern XtIntervalId XtAppAddTimeOut(
+ XtAppContext /* app_context */,
+ unsigned long /* interval */,
+ XtTimerCallbackProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveTimeOut(
+ XtIntervalId /* timer */
+);
+
+extern XtInputId XtAddInput( /* obsolete */
+ int /* source */,
+ XtPointer /* condition */,
+ XtInputCallbackProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern XtInputId XtAppAddInput(
+ XtAppContext /* app_context */,
+ int /* source */,
+ XtPointer /* condition */,
+ XtInputCallbackProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveInput(
+ XtInputId /* id */
+);
+
+extern XtSignalId XtAddSignal(
+ XtSignalCallbackProc /* proc */,
+ XtPointer /* closure */);
+
+extern XtSignalId XtAppAddSignal(
+ XtAppContext /* app_context */,
+ XtSignalCallbackProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveSignal(
+ XtSignalId /* id */
+);
+
+extern void XtNoticeSignal(
+ XtSignalId /* id */
+);
+
+extern void XtNextEvent( /* obsolete */
+ XEvent* /* event */
+);
+
+extern void XtAppNextEvent(
+ XtAppContext /* app_context */,
+ XEvent* /* event_return */
+);
+
+#define XtIMXEvent 1
+#define XtIMTimer 2
+#define XtIMAlternateInput 4
+#define XtIMSignal 8
+#define XtIMAll (XtIMXEvent | XtIMTimer | XtIMAlternateInput | XtIMSignal)
+
+extern Boolean XtPending( /* obsolete */
+ void
+);
+
+extern XtInputMask XtAppPending(
+ XtAppContext /* app_context */
+);
+
+extern XtBlockHookId XtAppAddBlockHook(
+ XtAppContext /* app_context */,
+ XtBlockHookProc /* proc */,
+ XtPointer /* client_data */
+);
+
+extern void XtRemoveBlockHook(
+ XtBlockHookId /* id */
+);
+
+/****************************************************************
+ *
+ * Random utility routines
+ *
+ ****************************************************************/
+
+#define XtIsRectObj(object) (_XtCheckSubclassFlag(object, (XtEnum)0x02))
+#define XtIsWidget(object) (_XtCheckSubclassFlag(object, (XtEnum)0x04))
+#define XtIsComposite(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x08))
+#define XtIsConstraint(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x10))
+#define XtIsShell(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x20))
+
+#undef XtIsOverrideShell
+extern Boolean XtIsOverrideShell(Widget /* object */);
+#define XtIsOverrideShell(widget) \
+ (_XtIsSubclassOf(widget, (WidgetClass)overrideShellWidgetClass, \
+ (WidgetClass)shellWidgetClass, (XtEnum)0x20))
+
+#define XtIsWMShell(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x40))
+
+#undef XtIsVendorShell
+extern Boolean XtIsVendorShell(Widget /* object */);
+#define XtIsVendorShell(widget) \
+ (_XtIsSubclassOf(widget, (WidgetClass)vendorShellWidgetClass, \
+ (WidgetClass)wmShellWidgetClass, (XtEnum)0x40))
+
+#undef XtIsTransientShell
+extern Boolean XtIsTransientShell(Widget /* object */);
+#define XtIsTransientShell(widget) \
+ (_XtIsSubclassOf(widget, (WidgetClass)transientShellWidgetClass, \
+ (WidgetClass)wmShellWidgetClass, (XtEnum)0x40))
+#define XtIsTopLevelShell(widget) (_XtCheckSubclassFlag(widget, (XtEnum)0x80))
+
+#undef XtIsApplicationShell
+extern Boolean XtIsApplicationShell(Widget /* object */);
+#define XtIsApplicationShell(widget) \
+ (_XtIsSubclassOf(widget, (WidgetClass)applicationShellWidgetClass, \
+ (WidgetClass)topLevelShellWidgetClass, (XtEnum)0x80))
+
+#undef XtIsSessionShell
+extern Boolean XtIsSessionShell(Widget /* object */);
+#define XtIsSessionShell(widget) \
+ (_XtIsSubclassOf(widget, (WidgetClass)sessionShellWidgetClass, \
+ (WidgetClass)topLevelShellWidgetClass, (XtEnum)0x80))
+
+extern void XtRealizeWidget(
+ Widget /* widget */
+);
+
+void XtUnrealizeWidget(
+ Widget /* widget */
+);
+
+extern void XtDestroyWidget(
+ Widget /* widget */
+);
+
+extern void XtSetSensitive(
+ Widget /* widget */,
+ _XtBoolean /* sensitive */
+);
+
+extern void XtSetMappedWhenManaged(
+ Widget /* widget */,
+ _XtBoolean /* mapped_when_managed */
+);
+
+extern Widget XtNameToWidget(
+ Widget /* reference */,
+ _Xconst _XtString /* names */
+);
+
+extern Widget XtWindowToWidget(
+ Display* /* display */,
+ Window /* window */
+);
+
+extern XtPointer XtGetClassExtension(
+ WidgetClass /* object_class */,
+ Cardinal /* byte_offset */,
+ XrmQuark /* type */,
+ long /* version */,
+ Cardinal /* record_size */
+);
+
+/***************************************************************
+ *
+ * Arg lists
+ *
+ ****************************************************************/
+
+
+#define XtSetArg(arg, n, d) \
+ ((void)( (arg).name = (n), (arg).value = (XtArgVal)(d) ))
+
+extern ArgList XtMergeArgLists(
+ ArgList /* args1 */,
+ Cardinal /* num_args1 */,
+ ArgList /* args2 */,
+ Cardinal /* num_args2 */
+);
+
+/***************************************************************
+ *
+ * Vararg lists
+ *
+ ****************************************************************/
+
+#define XtVaNestedList "XtVaNestedList"
+#define XtVaTypedArg "XtVaTypedArg"
+
+extern XtVarArgsList XtVaCreateArgsList(
+ XtPointer /*unused*/, ...
+) _X_SENTINEL(0);
+
+/*************************************************************
+ *
+ * Information routines
+ *
+ ************************************************************/
+
+#ifndef _XtIntrinsicP_h
+
+/* We're not included from the private file, so define these */
+
+extern Display *XtDisplay(
+ Widget /* widget */
+);
+
+extern Display *XtDisplayOfObject(
+ Widget /* object */
+);
+
+extern Screen *XtScreen(
+ Widget /* widget */
+);
+
+extern Screen *XtScreenOfObject(
+ Widget /* object */
+);
+
+extern Window XtWindow(
+ Widget /* widget */
+);
+
+extern Window XtWindowOfObject(
+ Widget /* object */
+);
+
+extern String XtName(
+ Widget /* object */
+);
+
+extern WidgetClass XtSuperclass(
+ Widget /* object */
+);
+
+extern WidgetClass XtClass(
+ Widget /* object */
+);
+
+extern Widget XtParent(
+ Widget /* widget */
+);
+
+#endif /*_XtIntrinsicP_h*/
+
+#undef XtMapWidget
+extern void XtMapWidget(Widget /* w */);
+#define XtMapWidget(widget) XMapWindow(XtDisplay(widget), XtWindow(widget))
+
+#undef XtUnmapWidget
+extern void XtUnmapWidget(Widget /* w */);
+#define XtUnmapWidget(widget) \
+ XUnmapWindow(XtDisplay(widget), XtWindow(widget))
+
+extern void XtAddCallback(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */,
+ XtCallbackProc /* callback */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveCallback(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */,
+ XtCallbackProc /* callback */,
+ XtPointer /* closure */
+);
+
+extern void XtAddCallbacks(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */,
+ XtCallbackList /* callbacks */
+);
+
+extern void XtRemoveCallbacks(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */,
+ XtCallbackList /* callbacks */
+);
+
+extern void XtRemoveAllCallbacks(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */
+);
+
+
+extern void XtCallCallbacks(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */,
+ XtPointer /* call_data */
+);
+
+extern void XtCallCallbackList(
+ Widget /* widget */,
+ XtCallbackList /* callbacks */,
+ XtPointer /* call_data */
+);
+
+extern XtCallbackStatus XtHasCallbacks(
+ Widget /* widget */,
+ _Xconst _XtString /* callback_name */
+);
+
+/****************************************************************
+ *
+ * Geometry Management
+ *
+ ****************************************************************/
+
+
+extern XtGeometryResult XtMakeGeometryRequest(
+ Widget /* widget */,
+ XtWidgetGeometry* /* request */,
+ XtWidgetGeometry* /* reply_return */
+);
+
+extern XtGeometryResult XtQueryGeometry(
+ Widget /* widget */,
+ XtWidgetGeometry* /* intended */,
+ XtWidgetGeometry* /* preferred_return */
+);
+
+extern Widget XtCreatePopupShell(
+ _Xconst _XtString /* name */,
+ WidgetClass /* widgetClass */,
+ Widget /* parent */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtVaCreatePopupShell(
+ _Xconst _XtString /* name */,
+ WidgetClass /* widgetClass */,
+ Widget /* parent */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtPopup(
+ Widget /* popup_shell */,
+ XtGrabKind /* grab_kind */
+);
+
+extern void XtPopupSpringLoaded(
+ Widget /* popup_shell */
+);
+
+extern void XtCallbackNone(
+ Widget /* widget */,
+ XtPointer /* closure */,
+ XtPointer /* call_data */
+);
+
+extern void XtCallbackNonexclusive(
+ Widget /* widget */,
+ XtPointer /* closure */,
+ XtPointer /* call_data */
+);
+
+extern void XtCallbackExclusive(
+ Widget /* widget */,
+ XtPointer /* closure */,
+ XtPointer /* call_data */
+);
+
+extern void XtPopdown(
+ Widget /* popup_shell */
+);
+
+extern void XtCallbackPopdown(
+ Widget /* widget */,
+ XtPointer /* closure */,
+ XtPointer /* call_data */
+);
+
+extern void XtMenuPopupAction(
+ Widget /* widget */,
+ XEvent* /* event */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+extern Widget XtCreateWidget(
+ _Xconst _XtString /* name */,
+ WidgetClass /* widget_class */,
+ Widget /* parent */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtCreateManagedWidget(
+ _Xconst _XtString /* name */,
+ WidgetClass /* widget_class */,
+ Widget /* parent */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtVaCreateWidget(
+ _Xconst _XtString /* name */,
+ WidgetClass /* widget */,
+ Widget /* parent */,
+ ...
+) _X_SENTINEL(0);
+
+extern Widget XtVaCreateManagedWidget(
+ _Xconst _XtString /* name */,
+ WidgetClass /* widget_class */,
+ Widget /* parent */,
+ ...
+) _X_SENTINEL(0);
+
+extern Widget XtCreateApplicationShell( /* obsolete */
+ _Xconst _XtString /* name */,
+ WidgetClass /* widget_class */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtAppCreateShell(
+ _Xconst _XtString /* application_name */,
+ _Xconst _XtString /* application_class */,
+ WidgetClass /* widget_class */,
+ Display* /* display */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtVaAppCreateShell(
+ _Xconst _XtString /* application_name */,
+ _Xconst _XtString /* application_class */,
+ WidgetClass /* widget_class */,
+ Display* /* display */,
+ ...
+) _X_SENTINEL(0);
+
+/****************************************************************
+ *
+ * Toolkit initialization
+ *
+ ****************************************************************/
+
+extern void XtToolkitInitialize(
+ void
+);
+
+extern XtLanguageProc XtSetLanguageProc(
+ XtAppContext /* app_context */,
+ XtLanguageProc /* proc */,
+ XtPointer /* client_data */
+);
+
+extern void XtDisplayInitialize(
+ XtAppContext /* app_context */,
+ Display* /* dpy */,
+ _Xconst _XtString /* application_name */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescRec* /* options */,
+ Cardinal /* num_options */,
+ int* /* argc */,
+ char** /* argv */
+);
+
+extern Widget XtOpenApplication(
+ XtAppContext* /* app_context_return */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescList /* options */,
+ Cardinal /* num_options */,
+ int* /* argc_in_out */,
+ String* /* argv_in_out */,
+ String* /* fallback_resources */,
+ WidgetClass /* widget_class */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtVaOpenApplication(
+ XtAppContext* /* app_context_return */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescList /* options */,
+ Cardinal /* num_options */,
+ int* /* argc_in_out */,
+ String* /* argv_in_out */,
+ String* /* fallback_resources */,
+ WidgetClass /* widget_class */,
+ ...
+) _X_SENTINEL(0);
+
+extern Widget XtAppInitialize( /* obsolete */
+ XtAppContext* /* app_context_return */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescList /* options */,
+ Cardinal /* num_options */,
+ int* /* argc_in_out */,
+ String* /* argv_in_out */,
+ String* /* fallback_resources */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern Widget XtVaAppInitialize( /* obsolete */
+ XtAppContext* /* app_context_return */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescList /* options */,
+ Cardinal /* num_options */,
+ int* /* argc_in_out */,
+ String* /* argv_in_out */,
+ String* /* fallback_resources */,
+ ...
+) _X_SENTINEL(0);
+
+extern Widget XtInitialize( /* obsolete */
+ _Xconst _XtString /* shell_name */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescRec* /* options */,
+ Cardinal /* num_options */,
+ int* /* argc */,
+ char** /* argv */
+);
+
+extern Display *XtOpenDisplay(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* display_string */,
+ _Xconst _XtString /* application_name */,
+ _Xconst _XtString /* application_class */,
+ XrmOptionDescRec* /* options */,
+ Cardinal /* num_options */,
+ int* /* argc */,
+ char** /* argv */
+);
+
+extern XtAppContext XtCreateApplicationContext(
+ void
+);
+
+extern void XtAppSetFallbackResources(
+ XtAppContext /* app_context */,
+ String* /* specification_list */
+);
+
+extern void XtDestroyApplicationContext(
+ XtAppContext /* app_context */
+);
+
+extern void XtInitializeWidgetClass(
+ WidgetClass /* widget_class */
+);
+
+extern XtAppContext XtWidgetToApplicationContext(
+ Widget /* widget */
+);
+
+extern XtAppContext XtDisplayToApplicationContext(
+ Display* /* dpy */
+);
+
+extern XrmDatabase XtDatabase(
+ Display* /* dpy */
+);
+
+extern XrmDatabase XtScreenDatabase(
+ Screen* /* screen */
+);
+
+extern void XtCloseDisplay(
+ Display* /* dpy */
+);
+
+extern void XtGetApplicationResources(
+ Widget /* widget */,
+ XtPointer /* base */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern void XtVaGetApplicationResources(
+ Widget /* widget */,
+ XtPointer /* base */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtGetSubresources(
+ Widget /* widget */,
+ XtPointer /* base */,
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* class */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern void XtVaGetSubresources(
+ Widget /* widget */,
+ XtPointer /* base */,
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* class */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtSetValues(
+ Widget /* widget */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern void XtVaSetValues(
+ Widget /* widget */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtGetValues(
+ Widget /* widget */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern void XtVaGetValues(
+ Widget /* widget */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtSetSubvalues(
+ XtPointer /* base */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern void XtVaSetSubvalues(
+ XtPointer /* base */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtGetSubvalues(
+ XtPointer /* base */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ArgList /* args */,
+ Cardinal /* num_args */
+);
+
+extern void XtVaGetSubvalues(
+ XtPointer /* base */,
+ XtResourceList /* resources */,
+ Cardinal /* num_resources */,
+ ...
+) _X_SENTINEL(0);
+
+extern void XtGetResourceList(
+ WidgetClass /* widget_class */,
+ XtResourceList* /* resources_return */,
+ Cardinal* /* num_resources_return */
+);
+
+extern void XtGetConstraintResourceList(
+ WidgetClass /* widget_class */,
+ XtResourceList* /* resources_return */,
+ Cardinal* /* num_resources_return */
+);
+
+#define XtUnspecifiedPixmap ((Pixmap)2)
+#define XtUnspecifiedShellInt (-1)
+#define XtUnspecifiedWindow ((Window)2)
+#define XtUnspecifiedWindowGroup ((Window)3)
+#define XtCurrentDirectory "XtCurrentDirectory"
+#define XtDefaultForeground "XtDefaultForeground"
+#define XtDefaultBackground "XtDefaultBackground"
+#define XtDefaultFont "XtDefaultFont"
+#define XtDefaultFontSet "XtDefaultFontSet"
+
+#if defined(CRAY)
+#define XtOffset(p_type,field) _Offsetof(p_type,field)
+#else /* ! CRAY */
+#define XtOffset(p_type,field) \
+ ((Cardinal) (((char *) (&(((p_type)NULL)->field))) - ((char *) NULL)))
+#endif /* !CRAY */
+
+#ifdef offsetof
+#define XtOffsetOf(s_type,field) offsetof(s_type,field)
+#else
+#define XtOffsetOf(s_type,field) XtOffset(s_type*,field)
+#endif
+
+/*************************************************************
+ *
+ * Session Management
+ *
+ ************************************************************/
+
+typedef struct _XtCheckpointTokenRec {
+ int save_type;
+ int interact_style;
+ Boolean shutdown;
+ Boolean fast;
+ Boolean cancel_shutdown;
+ int phase;
+ int interact_dialog_type; /* return */
+ Boolean request_cancel; /* return */
+ Boolean request_next_phase; /* return */
+ Boolean save_success; /* return */
+ int type; /* implementation private */
+ Widget widget; /* implementation private */
+} XtCheckpointTokenRec, *XtCheckpointToken;
+
+XtCheckpointToken XtSessionGetToken(
+ Widget /* widget */
+);
+
+void XtSessionReturnToken(
+ XtCheckpointToken /* token */
+);
+
+/*************************************************************
+ *
+ * Error Handling
+ *
+ ************************************************************/
+
+extern XtErrorMsgHandler XtAppSetErrorMsgHandler(
+ XtAppContext /* app_context */,
+ XtErrorMsgHandler /* handler */
+);
+
+extern void XtSetErrorMsgHandler( /* obsolete */
+ XtErrorMsgHandler /* handler */
+);
+
+extern XtErrorMsgHandler XtAppSetWarningMsgHandler(
+ XtAppContext /* app_context */,
+ XtErrorMsgHandler /* handler */
+);
+
+extern void XtSetWarningMsgHandler( /* obsolete */
+ XtErrorMsgHandler /* handler */
+);
+
+extern void XtAppErrorMsg(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* class */,
+ _Xconst _XtString /* default */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+extern void XtErrorMsg( /* obsolete */
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* class */,
+ _Xconst _XtString /* default */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+extern void XtAppWarningMsg(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* class */,
+ _Xconst _XtString /* default */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+extern void XtWarningMsg( /* obsolete */
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* class */,
+ _Xconst _XtString /* default */,
+ String* /* params */,
+ Cardinal* /* num_params */
+);
+
+extern XtErrorHandler XtAppSetErrorHandler(
+ XtAppContext /* app_context */,
+ XtErrorHandler /* handler */
+);
+
+extern void XtSetErrorHandler( /* obsolete */
+ XtErrorHandler /* handler */
+);
+
+extern XtErrorHandler XtAppSetWarningHandler(
+ XtAppContext /* app_context */,
+ XtErrorHandler /* handler */
+);
+
+extern void XtSetWarningHandler( /* obsolete */
+ XtErrorHandler /* handler */
+);
+
+extern void XtAppError(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* message */
+);
+
+extern void XtError( /* obsolete */
+ _Xconst _XtString /* message */
+);
+
+extern void XtAppWarning(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* message */
+);
+
+extern void XtWarning( /* obsolete */
+ _Xconst _XtString /* message */
+);
+
+extern XrmDatabase *XtAppGetErrorDatabase(
+ XtAppContext /* app_context */
+);
+
+extern XrmDatabase *XtGetErrorDatabase( /* obsolete */
+ void
+);
+
+extern void XtAppGetErrorDatabaseText(
+ XtAppContext /* app_context */,
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* class */,
+ _Xconst _XtString /* default */,
+ String /* buffer_return */,
+ int /* nbytes */,
+ XrmDatabase /* database */
+);
+
+extern void XtGetErrorDatabaseText( /* obsolete */
+ _Xconst _XtString /* name */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* class */,
+ _Xconst _XtString /* default */,
+ String /* buffer_return */,
+ int /* nbytes */
+);
+
+/****************************************************************
+ *
+ * Memory Management
+ *
+ ****************************************************************/
+
+extern char *XtMalloc(
+ Cardinal /* size */
+);
+
+extern char *XtCalloc(
+ Cardinal /* num */,
+ Cardinal /* size */
+);
+
+extern char *XtRealloc(
+ char* /* ptr */,
+ Cardinal /* num */
+);
+
+extern void XtFree(
+ char* /* ptr */
+);
+
+#ifndef _X_RESTRICT_KYWD
+# define _X_RESTRICT_KYWD
+#endif
+extern Cardinal XtAsprintf(
+ String *new_string,
+ _Xconst char * _X_RESTRICT_KYWD format,
+ ...
+) _X_ATTRIBUTE_PRINTF(2,3);
+
+#ifdef XTTRACEMEMORY
+
+extern char *_XtMalloc( /* implementation-private */
+ Cardinal /* size */,
+ char * /* file */,
+ int /* line */
+);
+
+extern char *_XtRealloc( /* implementation-private */
+ char * /* ptr */,
+ Cardinal /* size */,
+ char * /* file */,
+ int /* line */
+);
+
+extern char *_XtCalloc( /* implementation-private */
+ Cardinal /* num */,
+ Cardinal /* size */,
+ char * /* file */,
+ int /* line */
+);
+
+extern void _XtFree( /* implementation-private */
+ char * /* ptr */
+);
+
+#define XtMalloc(size) _XtMalloc(size, __FILE__, __LINE__)
+#define XtRealloc(ptr,size) _XtRealloc(ptr, size, __FILE__, __LINE__)
+#define XtCalloc(num,size) _XtCalloc(num, size, __FILE__, __LINE__)
+#define XtFree(ptr) _XtFree(ptr)
+
+#endif /* ifdef XTTRACEMEMORY */
+
+#define XtNew(type) ((type *) XtMalloc((unsigned) sizeof(type)))
+
+#undef XtNewString
+extern String XtNewString(String /* str */);
+#define XtNewString(str) \
+ ((str) != NULL ? (strcpy(XtMalloc((unsigned)strlen(str) + 1), str)) : NULL)
+
+/*************************************************************
+ *
+ * Work procs
+ *
+ **************************************************************/
+
+extern XtWorkProcId XtAddWorkProc( /* obsolete */
+ XtWorkProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern XtWorkProcId XtAppAddWorkProc(
+ XtAppContext /* app_context */,
+ XtWorkProc /* proc */,
+ XtPointer /* closure */
+);
+
+extern void XtRemoveWorkProc(
+ XtWorkProcId /* id */
+);
+
+
+/****************************************************************
+ *
+ * Graphic Context Management
+ *****************************************************************/
+
+extern GC XtGetGC(
+ Widget /* widget */,
+ XtGCMask /* valueMask */,
+ XGCValues* /* values */
+);
+
+extern GC XtAllocateGC(
+ Widget /* widget */,
+ Cardinal /* depth */,
+ XtGCMask /* valueMask */,
+ XGCValues* /* values */,
+ XtGCMask /* dynamicMask */,
+ XtGCMask /* unusedMask */
+);
+
+/* This implementation of XtDestroyGC differs from the formal specification
+ * for historic backwards compatibility reasons. As other implementations
+ * may conform to the spec, use of XtReleaseGC is strongly encouraged.
+ */
+extern void XtDestroyGC( /* obsolete */
+ GC /* gc */
+);
+
+extern void XtReleaseGC(
+ Widget /* object */,
+ GC /* gc */
+);
+
+
+
+extern void XtAppReleaseCacheRefs(
+ XtAppContext /* app_context */,
+ XtCacheRef* /* cache_ref */
+);
+
+extern void XtCallbackReleaseCacheRef(
+ Widget /* widget */,
+ XtPointer /* closure */, /* XtCacheRef */
+ XtPointer /* call_data */
+);
+
+extern void XtCallbackReleaseCacheRefList(
+ Widget /* widget */,
+ XtPointer /* closure */, /* XtCacheRef* */
+ XtPointer /* call_data */
+);
+
+extern void XtSetWMColormapWindows(
+ Widget /* widget */,
+ Widget* /* list */,
+ Cardinal /* count */
+);
+
+extern String XtFindFile(
+ _Xconst _XtString /* path */,
+ Substitution /* substitutions */,
+ Cardinal /* num_substitutions */,
+ XtFilePredicate /* predicate */
+);
+
+extern String XtResolvePathname(
+ Display* /* dpy */,
+ _Xconst _XtString /* type */,
+ _Xconst _XtString /* filename */,
+ _Xconst _XtString /* suffix */,
+ _Xconst _XtString /* path */,
+ Substitution /* substitutions */,
+ Cardinal /* num_substitutions */,
+ XtFilePredicate /* predicate */
+);
+
+/****************************************************************
+ *
+ * Selections
+ *
+ *****************************************************************/
+
+#define XT_CONVERT_FAIL (Atom)0x80000001
+
+extern void XtDisownSelection(
+ Widget /* widget */,
+ Atom /* selection */,
+ Time /* time */
+);
+
+extern void XtGetSelectionValue(
+ Widget /* widget */,
+ Atom /* selection */,
+ Atom /* target */,
+ XtSelectionCallbackProc /* callback */,
+ XtPointer /* closure */,
+ Time /* time */
+);
+
+extern void XtGetSelectionValues(
+ Widget /* widget */,
+ Atom /* selection */,
+ Atom* /* targets */,
+ int /* count */,
+ XtSelectionCallbackProc /* callback */,
+ XtPointer* /* closures */,
+ Time /* time */
+);
+
+extern void XtAppSetSelectionTimeout(
+ XtAppContext /* app_context */,
+ unsigned long /* timeout */
+);
+
+extern void XtSetSelectionTimeout( /* obsolete */
+ unsigned long /* timeout */
+);
+
+extern unsigned long XtAppGetSelectionTimeout(
+ XtAppContext /* app_context */
+);
+
+extern unsigned long XtGetSelectionTimeout( /* obsolete */
+ void
+);
+
+extern XSelectionRequestEvent *XtGetSelectionRequest(
+ Widget /* widget */,
+ Atom /* selection */,
+ XtRequestId /* request_id */
+);
+
+extern void XtGetSelectionValueIncremental(
+ Widget /* widget */,
+ Atom /* selection */,
+ Atom /* target */,
+ XtSelectionCallbackProc /* selection_callback */,
+ XtPointer /* client_data */,
+ Time /* time */
+);
+
+extern void XtGetSelectionValuesIncremental(
+ Widget /* widget */,
+ Atom /* selection */,
+ Atom* /* targets */,
+ int /* count */,
+ XtSelectionCallbackProc /* callback */,
+ XtPointer* /* client_data */,
+ Time /* time */
+);
+
+extern void XtSetSelectionParameters(
+ Widget /* requestor */,
+ Atom /* selection */,
+ Atom /* type */,
+ XtPointer /* value */,
+ unsigned long /* length */,
+ int /* format */
+);
+
+extern void XtGetSelectionParameters(
+ Widget /* owner */,
+ Atom /* selection */,
+ XtRequestId /* request_id */,
+ Atom* /* type_return */,
+ XtPointer* /* value_return */,
+ unsigned long* /* length_return */,
+ int* /* format_return */
+);
+
+extern void XtCreateSelectionRequest(
+ Widget /* requestor */,
+ Atom /* selection */
+);
+
+extern void XtSendSelectionRequest(
+ Widget /* requestor */,
+ Atom /* selection */,
+ Time /* time */
+);
+
+extern void XtCancelSelectionRequest(
+ Widget /* requestor */,
+ Atom /* selection */
+);
+
+extern Atom XtReservePropertyAtom(
+ Widget /* widget */
+);
+
+extern void XtReleasePropertyAtom(
+ Widget /* widget */,
+ Atom /* selection */
+);
+
+extern void XtGrabKey(
+ Widget /* widget */,
+ _XtKeyCode /* keycode */,
+ Modifiers /* modifiers */,
+ _XtBoolean /* owner_events */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */
+);
+
+extern void XtUngrabKey(
+ Widget /* widget */,
+ _XtKeyCode /* keycode */,
+ Modifiers /* modifiers */
+);
+
+extern int XtGrabKeyboard(
+ Widget /* widget */,
+ _XtBoolean /* owner_events */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */,
+ Time /* time */
+);
+
+extern void XtUngrabKeyboard(
+ Widget /* widget */,
+ Time /* time */
+);
+
+extern void XtGrabButton(
+ Widget /* widget */,
+ int /* button */,
+ Modifiers /* modifiers */,
+ _XtBoolean /* owner_events */,
+ unsigned int /* event_mask */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */,
+ Window /* confine_to */,
+ Cursor /* cursor */
+);
+
+extern void XtUngrabButton(
+ Widget /* widget */,
+ unsigned int /* button */,
+ Modifiers /* modifiers */
+);
+
+extern int XtGrabPointer(
+ Widget /* widget */,
+ _XtBoolean /* owner_events */,
+ unsigned int /* event_mask */,
+ int /* pointer_mode */,
+ int /* keyboard_mode */,
+ Window /* confine_to */,
+ Cursor /* cursor */,
+ Time /* time */
+);
+
+extern void XtUngrabPointer(
+ Widget /* widget */,
+ Time /* time */
+);
+
+extern void XtGetApplicationNameAndClass(
+ Display* /* dpy */,
+ String* /* name_return */,
+ String* /* class_return */
+);
+
+extern void XtRegisterDrawable(
+ Display* /* dpy */,
+ Drawable /* drawable */,
+ Widget /* widget */
+);
+
+extern void XtUnregisterDrawable(
+ Display* /* dpy */,
+ Drawable /* drawable */
+);
+
+extern Widget XtHooksOfDisplay(
+ Display* /* dpy */
+);
+
+typedef struct {
+ String type;
+ Widget widget;
+ ArgList args;
+ Cardinal num_args;
+} XtCreateHookDataRec, *XtCreateHookData;
+
+typedef struct {
+ String type;
+ Widget widget;
+ XtPointer event_data;
+ Cardinal num_event_data;
+} XtChangeHookDataRec, *XtChangeHookData;
+
+typedef struct {
+ Widget old, req;
+ ArgList args;
+ Cardinal num_args;
+} XtChangeHookSetValuesDataRec, *XtChangeHookSetValuesData;
+
+typedef struct {
+ String type;
+ Widget widget;
+ XtGeometryMask changeMask;
+ XWindowChanges changes;
+} XtConfigureHookDataRec, *XtConfigureHookData;
+
+typedef struct {
+ String type;
+ Widget widget;
+ XtWidgetGeometry* request;
+ XtWidgetGeometry* reply;
+ XtGeometryResult result;
+} XtGeometryHookDataRec, *XtGeometryHookData;
+
+typedef struct {
+ String type;
+ Widget widget;
+} XtDestroyHookDataRec, *XtDestroyHookData;
+
+extern void XtGetDisplays(
+ XtAppContext /* app_context */,
+ Display*** /* dpy_return */,
+ Cardinal* /* num_dpy_return */
+);
+
+extern Boolean XtToolkitThreadInitialize(
+ void
+);
+
+extern void XtAppSetExitFlag(
+ XtAppContext /* app_context */
+);
+
+extern Boolean XtAppGetExitFlag(
+ XtAppContext /* app_context */
+);
+
+extern void XtAppLock(
+ XtAppContext /* app_context */
+);
+
+extern void XtAppUnlock(
+ XtAppContext /* app_context */
+);
+
+/*
+ * Predefined Resource Converters
+ */
+
+
+/* String converters */
+
+extern Boolean XtCvtStringToAcceleratorTable(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToAtom(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Display */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToBool(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToBoolean(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToCommandArgArray(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToCursor(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Display */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToDimension(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToDirectoryString(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToDisplay(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToFile(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToFloat(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToFont(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Display */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToFontSet(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Display, locale */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToFontStruct(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Display */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToGravity(
+ Display* /* dpy */,
+ XrmValuePtr /* args */,
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToInitialState(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToInt(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToPixel(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Screen, Colormap */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+#define XtCvtStringToPosition XtCvtStringToShort
+
+extern Boolean XtCvtStringToRestartStyle(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToShort(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToTranslationTable(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToUnsignedChar(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtStringToVisual(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Screen, depth */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+/* int converters */
+
+extern Boolean XtCvtIntToBool(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtIntToBoolean(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtIntToColor(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* Screen, Colormap */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+#define XtCvtIntToDimension XtCvtIntToShort
+
+extern Boolean XtCvtIntToFloat(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtIntToFont(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtIntToPixel(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtIntToPixmap(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+#define XtCvtIntToPosition XtCvtIntToShort
+
+extern Boolean XtCvtIntToShort(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+extern Boolean XtCvtIntToUnsignedChar(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+/* Color converter */
+
+extern Boolean XtCvtColorToPixel(
+ Display* /* dpy */,
+ XrmValuePtr /* args */, /* none */
+ Cardinal* /* num_args */,
+ XrmValuePtr /* fromVal */,
+ XrmValuePtr /* toVal */,
+ XtPointer* /* closure_ret */
+);
+
+/* Pixel converter */
+
+#define XtCvtPixelToColor XtCvtIntToColor
+
+
+_XFUNCPROTOEND
+
+#endif /*_XtIntrinsic_h*/
+/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/libXt/include/X11/IntrinsicP.h b/libXt/include/X11/IntrinsicP.h
index bb6570bbf..d3007ee07 100644
--- a/libXt/include/X11/IntrinsicP.h
+++ b/libXt/include/X11/IntrinsicP.h
@@ -52,16 +52,16 @@ SOFTWARE.
/*
* Field sizes and offsets of XrmResource must match those of XtResource.
- * Type long is used instead of XrmQuark here because XrmQuark and String
+ * Type intptr_t is used instead of XrmQuark here because XrmQuark and String
* are not the same size on all systems.
*/
typedef struct {
- long xrm_name; /* Resource name quark */
- long xrm_class; /* Resource class quark */
- long xrm_type; /* Resource representation type quark */
+ intptr_t xrm_name; /* Resource name quark */
+ intptr_t xrm_class; /* Resource class quark */
+ intptr_t xrm_type; /* Resource representation type quark */
Cardinal xrm_size; /* Size in bytes of representation */
int xrm_offset; /* -offset-1 */
- long xrm_default_type; /* Default representation type quark */
+ intptr_t xrm_default_type; /* Default representation type quark */
XtPointer xrm_default_addr; /* Default resource address */
} XrmResource, *XrmResourceList;
diff --git a/libXt/include/X11/ShellP.h b/libXt/include/X11/ShellP.h
index 07d96669b..58ce1b405 100644
--- a/libXt/include/X11/ShellP.h
+++ b/libXt/include/X11/ShellP.h
@@ -375,7 +375,9 @@ typedef struct _XtSaveYourselfRec *XtSaveYourself; /* implementation-private */
/* New fields for the session shell widget */
typedef struct {
+#ifndef XT_NO_SM
SmcConn connection;
+#endif
String session_id;
String* restart_command;
String* clone_command;
diff --git a/libXt/src/.gitignore b/libXt/src/.gitignore
new file mode 100644
index 000000000..3f48856d3
--- /dev/null
+++ b/libXt/src/.gitignore
@@ -0,0 +1 @@
+StringDefs.c \ No newline at end of file
diff --git a/libXt/src/Convert.c b/libXt/src/Convert.c
index cea8fd3ed..f8dc4016e 100644
--- a/libXt/src/Convert.c
+++ b/libXt/src/Convert.c
@@ -640,7 +640,7 @@ void XtDirectConvert(
LOCK_PROCESS;
/* Try to find cache entry for conversion */
- hash = ((long) converter >> 2) + from->size + *((char *) from->addr);
+ hash = (long)((( ((long)((intptr_t)converter&0xffffffff)) >> 2) + from->size + *((char *) from->addr))&0xffffffff);
if (from->size > 1) hash += ((char *) from->addr)[1];
for (p = cacheHashTable[hash & CACHEHASHMASK]; p; p = p->next) {
@@ -737,7 +737,7 @@ CallConverter(
LOCK_PROCESS;
/* Try to find cache entry for conversion */
- hash = ((long)(converter) >> 2) + from->size + *((char *) from->addr);
+ hash = (long)(((((long)( (intptr_t)converter&0xffffffff)) >> 2) + from->size + *((char *) from->addr))&0xffffffff);
if (from->size > 1) hash += ((char *) from->addr)[1];
if (cP->cache_type != XtCacheNone) {
diff --git a/libXt/src/Converters.c b/libXt/src/Converters.c
index 76498028f..6be3ba61d 100644
--- a/libXt/src/Converters.c
+++ b/libXt/src/Converters.c
@@ -1616,6 +1616,7 @@ Boolean XtCvtStringToRestartStyle(
"String to RestartStyle conversion needs no extra arguments",
(String *)NULL, (Cardinal *)NULL);
+#ifndef XT_NO_SM
if (CompareISOLatin1(str, "RestartIfRunning") == 0)
donestr(unsigned char, SmRestartIfRunning, XtRRestartStyle);
if (CompareISOLatin1(str, "RestartAnyway") == 0)
@@ -1624,6 +1625,7 @@ Boolean XtCvtStringToRestartStyle(
donestr(unsigned char, SmRestartImmediately, XtRRestartStyle);
if (CompareISOLatin1(str, "RestartNever") == 0)
donestr(unsigned char, SmRestartNever, XtRRestartStyle);
+#endif
XtDisplayStringConversionWarning(dpy, str, XtRRestartStyle);
return False;
}
diff --git a/libXt/src/Error.c b/libXt/src/Error.c
index fc9b11a84..1d6f158d8 100644
--- a/libXt/src/Error.c
+++ b/libXt/src/Error.c
@@ -74,6 +74,7 @@ in this Software without prior written authorization from The Open Group.
#include "IntrinsicI.h"
#include <stdio.h>
#include <stdlib.h>
+#include <unistd.h>
/* The error handlers in the application context aren't used since we can't
come up with a uniform way of using them. If you can, define
diff --git a/libXt/src/Initialize.c b/libXt/src/Initialize.c
index 9783debf5..d023a3f53 100644
--- a/libXt/src/Initialize.c
+++ b/libXt/src/Initialize.c
@@ -196,7 +196,7 @@ void _XtInherit(void)
#endif
-#if defined (WIN32) || defined(__CYGWIN__)
+#if (defined (WIN32) || defined(__CYGWIN__)) && !defined(_MSC_VER)
/*
* The Symbol _XtInherit is used in two different manners.
* First it could be used as a generic function and second
@@ -384,22 +384,26 @@ static void CombineAppUserDefaults(
Boolean deallocate = False;
if (!(path = getenv("XUSERFILESEARCHPATH"))) {
+ char *old_path=NULL;
+ char homedir[PATH_MAX]=".";
#if !defined(WIN32) || !defined(__MINGW32__)
- char *old_path;
- char homedir[PATH_MAX];
GetRootDirName(homedir, PATH_MAX);
- if (!(old_path = getenv("XAPPLRESDIR"))) {
+ if (!(old_path = getenv("XAPPLRESDIR")))
+#endif
+ {
XtAsprintf(&path,
"%s/%%L/%%N%%C:%s/%%l/%%N%%C:%s/%%N%%C:%s/%%L/%%N:%s/%%l/%%N:%s/%%N",
- homedir, homedir, homedir, homedir, homedir, homedir);
- } else {
+ homedir, homedir, homedir, homedir, homedir, homedir );
+ }
+#if !defined(WIN32) || !defined(__MINGW32__)
+ else
+ {
XtAsprintf(&path,
"%s/%%L/%%N%%C:%s/%%l/%%N%%C:%s/%%N%%C:%s/%%N%%C:%s/%%L/%%N:%s/%%l/%%N:%s/%%N:%s/%%N",
- old_path, old_path, old_path, homedir,
- old_path, old_path, old_path, homedir);
+ old_path, old_path, old_path, homedir );
}
- deallocate = True;
#endif
+ deallocate = True;
}
filename = XtResolvePathname(dpy, NULL, NULL, NULL, path, NULL, 0, NULL);
@@ -416,20 +420,28 @@ static void CombineUserDefaults(
Display *dpy,
XrmDatabase *pdb)
{
+#ifdef _MSC_VER
+ char *slashDotXdefaults = ".Xdefaults";
+#else
#ifdef __MINGW32__
const char *slashDotXdefaults = "/Xdefaults";
#else
const char *slashDotXdefaults = "/.Xdefaults";
#endif
+#endif
char *dpy_defaults = XResourceManagerString(dpy);
if (dpy_defaults) {
XrmCombineDatabase(XrmGetStringDatabase(dpy_defaults), pdb, False);
} else {
char filename[PATH_MAX];
+#ifndef _MSC_VER
(void) GetRootDirName(filename,
PATH_MAX - strlen (slashDotXdefaults) - 1);
(void) strcat(filename, slashDotXdefaults);
+#else
+ strcpy(filename, slashDotXdefaults);
+#endif
(void)XrmCombineFileDatabase(filename, pdb, False);
}
}
@@ -558,15 +570,24 @@ XrmDatabase XtScreenDatabase(
if (!(filename = getenv("XENVIRONMENT"))) {
int len;
+#ifdef _MSC_VER
+ char *slashDotXdefaultsDash = "Xdefaults-";
+#else
#ifdef __MINGW32__
const char *slashDotXdefaultsDash = "/Xdefaults-";
#else
const char *slashDotXdefaultsDash = "/.Xdefaults-";
#endif
+#endif
+#ifndef _MSC_VER
(void) GetRootDirName(filename = filenamebuf,
PATH_MAX - strlen (slashDotXdefaultsDash) - 1);
(void) strcat(filename, slashDotXdefaultsDash);
+#else
+ filename = filenamebuf;
+ strcpy(filename, slashDotXdefaultsDash);
+#endif
len = strlen(filename);
GetHostname (filename+len, PATH_MAX-len);
}
diff --git a/libXt/src/Intrinsic.c b/libXt/src/Intrinsic.c
index 3df035873..901f3d7c2 100644
--- a/libXt/src/Intrinsic.c
+++ b/libXt/src/Intrinsic.c
@@ -1324,7 +1324,7 @@ static void FillInLangSubs(
static const char *implementation_default_path(void)
{
#if defined(WIN32)
- static char xfilesearchpath[] = "";
+ static char xfilesearchpath[] = ":";
return xfilesearchpath;
#elif defined(__UNIXOS2__)
diff --git a/libXt/src/ResConfig.c b/libXt/src/ResConfig.c
index 68da5364c..21ea14292 100644
--- a/libXt/src/ResConfig.c
+++ b/libXt/src/ResConfig.c
@@ -913,7 +913,7 @@ _XtResourceConfigurationEH (
fprintf (stderr, "in _XtResourceConfiguationEH atom = %d\n",event->xproperty.atom);
fprintf (stderr, " window = %x\n", XtWindow (w));
if (XtIsWidget (w))
- fprintf (stderr, " widget = %x name = %s\n", w, w->core.name);
+ fprintf (stderr, " widget = %p name = %s\n", w, w->core.name);
#endif
pd = _XtGetPerDisplay (XtDisplay (w));
diff --git a/libXt/src/Selection.c b/libXt/src/Selection.c
index f35cb440c..49e683ad4 100644
--- a/libXt/src/Selection.c
+++ b/libXt/src/Selection.c
@@ -76,6 +76,7 @@ in this Software without prior written authorization from The Open Group.
#include "SelectionI.h"
#include <X11/Xatom.h>
#include <stdio.h>
+#include <unistd.h>
void _XtSetDefaultSelectionTimeout(
unsigned long *timeout)
diff --git a/libXt/src/Shell.c b/libXt/src/Shell.c
index 8a44651d1..b78b62af6 100644
--- a/libXt/src/Shell.c
+++ b/libXt/src/Shell.c
@@ -84,9 +84,12 @@ in this Software without prior written authorization from The Open Group.
#include "VendorP.h"
#include <X11/Xatom.h>
#include <X11/Xlocale.h>
+#ifndef _MSC_VER
#include <X11/ICE/ICElib.h>
+#endif
#include <stdio.h>
#include <stdlib.h>
+#include <unistd.h>
#ifdef EDITRES
#include <X11/Xmu/Editres.h>
@@ -718,9 +721,11 @@ static XtResource sessionResources[]=
Offset(session.current_dir), XtRString, (XtPointer) NULL},
{XtNprogramPath, XtCProgramPath, XtRString, sizeof(String),
Offset(session.program_path), XtRString, (XtPointer) NULL},
+#ifndef XT_NO_SM
{XtNrestartStyle, XtCRestartStyle, XtRRestartStyle, sizeof(unsigned char),
Offset(session.restart_style), XtRImmediate,
(XtPointer) SmRestartIfRunning},
+#endif
{XtNjoinSession, XtCJoinSession, XtRBoolean, sizeof(Boolean),
Offset(session.join_session), XtRImmediate, (XtPointer) True},
{XtNsaveCallback, XtCCallback, XtRCallback, sizeof(XtPointer),
@@ -1103,7 +1108,9 @@ static void ApplicationInitialize(
static void JoinSession(SessionShellWidget);
static void SetSessionProperties(SessionShellWidget, Boolean, unsigned long, unsigned long);
+#ifndef XT_NO_SM
static void StopManagingSession(SessionShellWidget, SmcConn);
+#endif
typedef struct _XtSaveYourselfRec {
XtSaveYourself next;
@@ -2655,7 +2662,6 @@ static Boolean SessionSetValues(
if ((cw->session.join_session && !nw->session.join_session) ||
(cw->session.connection && !nw->session.connection))
StopManagingSession(nw, nw->session.connection);
-#endif /* !XT_NO_SM */
if (cw->wm.client_leader != nw->wm.client_leader ||
cw->session.session_id != nw->session.session_id) {
@@ -2678,6 +2684,7 @@ static Boolean SessionSetValues(
strlen(nw->session.session_id));
}
}
+#endif /* !XT_NO_SM */
return False;
}
@@ -2764,10 +2771,12 @@ static String *EditCommand(String, String *, String *);
static Boolean ExamineToken(XtPointer);
static void GetIceEvent(XtPointer, int *, XtInputId *);
static XtCheckpointToken GetToken(Widget, int);
+#ifndef XT_NO_SM
static void XtCallCancelCallbacks(SmcConn, SmPointer);
static void XtCallDieCallbacks(SmcConn, SmPointer);
static void XtCallSaveCallbacks(SmcConn, SmPointer, int, Bool, int, Bool);
static void XtCallSaveCompleteCallbacks(SmcConn, SmPointer);
+#endif /* !XT_NO_SM */
#ifndef XT_NO_SM
static void StopManagingSession(
diff --git a/libXt/src/Vendor.c b/libXt/src/Vendor.c
index e4fd24fa5..e4b350867 100644
--- a/libXt/src/Vendor.c
+++ b/libXt/src/Vendor.c
@@ -64,7 +64,7 @@ SOFTWARE.
*
***************************************************************************/
-#if defined(__UNIXOS2__) || defined(__CYGWIN__) || defined(__MINGW32__)
+#if defined(__UNIXOS2__) || defined(__CYGWIN__) || defined(__MINGW32__) && !defined(_MSC_VER)
/* to fix the EditRes problem because of wrong linker semantics */
extern WidgetClass vendorShellWidgetClass;
@@ -150,7 +150,7 @@ externaldef(vendorshellclassrec) VendorShellClassRec vendorShellClassRec = {
}
};
-#if !defined(AIXSHLIB) || !defined(SHAREDCODE)
+#if (!defined(AIXSHLIB) || !defined(SHAREDCODE)) && !defined(_MSC_VER)
externaldef(vendorshellwidgetclass) WidgetClass vendorShellWidgetClass =
(WidgetClass) (&vendorShellClassRec);
#endif
diff --git a/libXt/src/makefile b/libXt/src/makefile
new file mode 100644
index 000000000..6f9d1b071
--- /dev/null
+++ b/libXt/src/makefile
@@ -0,0 +1,79 @@
+LIBRARY = libXt
+
+INCLUDES := .. ../include ../include/X11 $(INCLUDES)
+
+DEFINES += XT_NO_SM ERRORDB="""XtErrorDB"""
+
+CSRCS = \
+ ActionHook.c \
+ Alloc.c \
+ ArgList.c \
+ Callback.c \
+ ClickTime.c \
+ Composite.c \
+ Constraint.c \
+ Convert.c \
+ Converters.c \
+ Core.c \
+ Create.c \
+ Destroy.c \
+ Display.c \
+ Error.c \
+ Event.c \
+ EventUtil.c \
+ Functions.c \
+ GCManager.c \
+ Geometry.c \
+ GetActKey.c \
+ GetResList.c \
+ GetValues.c \
+ HookObj.c \
+ Hooks.c \
+ Initialize.c \
+ Intrinsic.c \
+ Keyboard.c \
+ Manage.c \
+ NextEvent.c \
+ Object.c \
+ PassivGrab.c \
+ Pointer.c \
+ Popup.c \
+ PopupCB.c \
+ RectObj.c \
+ ResConfig.c \
+ Resources.c \
+ Selection.c \
+ SetSens.c \
+ SetValues.c \
+ SetWMCW.c \
+ Shell.c \
+ TMaction.c \
+ TMgrab.c \
+ TMkey.c \
+ TMparse.c \
+ TMprint.c \
+ TMstate.c \
+ Threads.c \
+ VarCreate.c \
+ VarGet.c \
+ Varargs.c \
+ Vendor.c \
+ StringDefs.c
+
+BUILT_SOURCE = StringDefs.c
+BUILT_HEADER = ../include/X11/StringDefs.h ../include/X11/Shell.h
+BUILT_FILES = $(BUILT_SOURCE) $(BUILT_HEADER)
+
+STRING_LIST = ../util/string.list
+
+$(BUILT_HEADER): $(BUILT_SOURCE)
+
+load_makefile ../util/makefile MAKESERVER=0 DEBUG=$(DEBUG)
+
+$(BUILT_SOURCE) $(BUILT_HEADER) : ../util/$(OBJDIR)/makestrs.exe $(STRING_LIST) ../util/StrDefs.ht ../util/StrDefs.ct ../util/Shell.ht
+ ../util/$(OBJDIR)/makestrs -i .. $(STRINGSABIOPTIONS) < $(STRING_LIST) > StringDefs.c
+ move StringDefs.h ..\include\X11
+ touch ..\include\X11\StringDefs.h
+ move Shell.h ..\include\X11
+ touch ..\include\X11\Shell.h
+
diff --git a/libXt/util/Shell.ht b/libXt/util/Shell.ht
index fc78678f3..c6e25b0fd 100644
--- a/libXt/util/Shell.ht
+++ b/libXt/util/Shell.ht
@@ -48,7 +48,9 @@ SOFTWARE.
#ifndef _XtShell_h
#define _XtShell_h
+#ifndef XT_NO_SM
#include <X11/SM/SMlib.h>
+#endif
#include <X11/Intrinsic.h>
/***********************************************************************
diff --git a/libXt/util/makefile b/libXt/util/makefile
new file mode 100644
index 000000000..52ce89702
--- /dev/null
+++ b/libXt/util/makefile
@@ -0,0 +1,4 @@
+TTYAPP = makestrs
+
+CSRCS = makestrs.c
+
diff --git a/libfontenc/src/encparse.c b/libfontenc/src/encparse.c
index ee18b3f96..bf7de5fc4 100644
--- a/libfontenc/src/encparse.c
+++ b/libfontenc/src/encparse.c
@@ -32,6 +32,7 @@ THE SOFTWARE.
#include <stdio.h>
#include <stdlib.h>
+#include <unistd.h>
#include "zlib.h"
typedef gzFile FontFilePtr;
diff --git a/libfontenc/src/fontenc.c b/libfontenc/src/fontenc.c
index 4cfa1e59b..7d0ddc589 100644
--- a/libfontenc/src/fontenc.c
+++ b/libfontenc/src/fontenc.c
@@ -25,6 +25,7 @@ THE SOFTWARE.
#include <string.h>
#include <strings.h>
#include <stdlib.h>
+#include <unistd.h>
#define FALSE 0
#define TRUE 1
diff --git a/libfontenc/src/makefile b/libfontenc/src/makefile
new file mode 100644
index 000000000..161c9961f
--- /dev/null
+++ b/libfontenc/src/makefile
@@ -0,0 +1,13 @@
+LIBRARY = libfontenc
+
+CSRCS = \
+ encparse.c \
+ fontenc.c
+
+#FONTENCDIR=@ENCODINGSDIR@
+DEFINES += FONT_ENCODINGS_DIRECTORY="\"encodings.dir\"" strcasecmp=_stricmp
+
+#INCLUDES = -I$(top_srcdir)/include -DFONTENC_NO_LIBFONT $(FONTENCDEFS)
+
+
+
diff --git a/libwinmain/makefile b/libwinmain/makefile
new file mode 100644
index 000000000..80292d3d3
--- /dev/null
+++ b/libwinmain/makefile
@@ -0,0 +1,3 @@
+LIBRARY = libwinmain
+
+CSRCS = winmain.c
diff --git a/libwinmain/winmain.c b/libwinmain/winmain.c
new file mode 100644
index 000000000..65c6e7919
--- /dev/null
+++ b/libwinmain/winmain.c
@@ -0,0 +1,156 @@
+#include <windows.h>
+
+#include <stdio.h>
+#include <fcntl.h>
+#include <io.h>
+
+#define MAX_CONSOLE_LINES 500
+
+int main(int argc, char *argv[], char *penv[]);
+
+/* Ignore control c and control break signals */
+static BOOL WINAPI IgnoreControlC(DWORD dwCtrlType)
+{
+ if (dwCtrlType==CTRL_C_EVENT || dwCtrlType==CTRL_BREAK_EVENT)
+ return TRUE;
+ return FALSE;
+}
+
+static void CreateConsole(void)
+{
+ static int ConsoleCreated=0;
+ if (!ConsoleCreated)
+ {
+ int hConHandle;
+ HANDLE lStdHandle;
+ CONSOLE_SCREEN_BUFFER_INFO coninfo;
+
+ FILE *fp;
+ ConsoleCreated=1;
+ if (!AttachConsole(ATTACH_PARENT_PROCESS))
+ AllocConsole();
+ else
+ SetConsoleCtrlHandler(IgnoreControlC,TRUE); // Only allow control C interrupt the program when a console was created
+
+
+ // set the screen buffer to be big enough to let us scroll text
+ GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo);
+ if (coninfo.dwSize.Y < MAX_CONSOLE_LINES)
+ {
+ coninfo.dwSize.Y = MAX_CONSOLE_LINES;
+ SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize);
+ }
+
+ // redirect unbuffered STDOUT to the console
+ lStdHandle = GetStdHandle(STD_OUTPUT_HANDLE);
+ hConHandle = _open_osfhandle((intptr_t)lStdHandle, _O_TEXT);
+ if (hConHandle==-1) // error occured, so return
+ return;
+ fp = _fdopen( hConHandle, "w" );
+ *stdout = *fp;
+ setvbuf( stdout, NULL, _IONBF, 0 );
+
+ // redirect unbuffered STDIN to the console
+ lStdHandle = GetStdHandle(STD_INPUT_HANDLE);
+ hConHandle = _open_osfhandle((intptr_t)lStdHandle, _O_TEXT);
+ fp = _fdopen( hConHandle, "r" );
+ *stdin = *fp;
+ setvbuf( stdin, NULL, _IONBF, 0 );
+
+ // redirect unbuffered STDERR to the console
+ lStdHandle = GetStdHandle(STD_ERROR_HANDLE);
+ hConHandle = _open_osfhandle((intptr_t)lStdHandle, _O_TEXT);
+ fp = _fdopen( hConHandle, "w" );
+ *stderr = *fp;
+ setvbuf( stderr, NULL, _IONBF, 0 );
+ }
+}
+
+int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
+{
+ int argc=1;
+ char ProgramName[255];
+ #define MAXNRARGS 100
+ char *argv[MAXNRARGS];
+ char *pTmp;
+ char *pProgramName;
+ char **penv;
+ int Ret;
+ LPTCH pEnvStrings;
+
+ hInstance=hInstance;
+ nCmdShow=nCmdShow;
+ hPrevInstance=hPrevInstance;
+
+ if (!strncmp(lpCmdLine,"-console",8))
+ {
+ CreateConsole();
+ lpCmdLine+=9;
+ }
+ else
+ {
+ SetConsoleCtrlHandler(IgnoreControlC,TRUE);
+ }
+
+ GetModuleFileName(NULL,ProgramName,255);
+ pTmp=strrchr(ProgramName,'\\');
+ if (pTmp)
+ pProgramName=pTmp+1;
+ else
+ pProgramName=ProgramName;
+ pTmp=strrchr(pProgramName,'.');
+ if (pTmp)
+ *pTmp=0;
+ argv[0]=pProgramName;
+
+ pTmp=lpCmdLine;
+ while (*pTmp && argc<MAXNRARGS-1)
+ {
+ char *pEnd;
+ if (*pTmp=='"')
+ {
+ pTmp++;
+ pEnd=strchr(pTmp,'"');
+ }
+ else if (*pTmp!=' ')
+ {
+ pEnd=strchr(pTmp,' ');
+ }
+ else
+ {
+ pTmp++;
+ continue;
+ }
+ if (pEnd)
+ {
+ *pEnd=0;
+ argv[argc++]=pTmp;
+ pTmp=pEnd+1;
+ }
+ else
+ {
+ argv[argc++]=pTmp;
+ break;
+ }
+ }
+
+ {
+ LPTCH pTmp=GetEnvironmentStrings();
+ int NrEnv=0;
+ pEnvStrings=pTmp;
+ penv=malloc(sizeof(*penv));
+ while (*pTmp)
+ {
+ penv=realloc(penv,(NrEnv+2)*sizeof(*penv));
+ penv[NrEnv++]=pTmp;
+ while (*pTmp) pTmp++;
+ pTmp++;
+ }
+ penv[NrEnv]=NULL;
+ }
+
+ Ret = main(argc,argv,penv);
+ free(penv);
+ FreeEnvironmentStrings(pEnvStrings);
+ return Ret;
+}
diff --git a/libxcb/src/.gitignore b/libxcb/src/.gitignore
index a2a901006..e948124ad 100644..100755
--- a/libxcb/src/.gitignore
+++ b/libxcb/src/.gitignore
@@ -1,31 +1,60 @@
-bigreq.*
-composite.*
-damage.*
-dpms.*
-dri2.*
-dri3.*
-glx.*
-present.*
-randr.*
-record.*
-render.*
-res.*
-screensaver.*
-shape.*
-shm.*
-sync.*
-xc_misc.*
-xevie.*
-xf86dri.*
-xfixes.*
-xinerama.*
-xinput.*
-xkb.*
-xprint.*
-xselinux.*
-xtest.*
-xv.*
-xvmc.*
-xproto.*
-xcb_des.c
-X11
+dri3.c
+dri3.h
+present.c
+present.h
+bigreq.c
+bigreq.h
+composite.c
+composite.h
+damage.c
+damage.h
+dpms.c
+dpms.h
+dri2.c
+dri2.h
+ge.c
+ge.h
+glx.c
+glx.h
+randr.c
+randr.h
+record.c
+record.h
+render.c
+render.h
+res.c
+res.h
+screensaver.c
+screensaver.h
+shape.c
+shape.h
+shm.c
+shm.h
+sync.c
+sync.h
+xc_misc.c
+xc_misc.h
+xevie.c
+xevie.h
+xf86dri.c
+xf86dri.h
+xf86vidmode.c
+xf86vidmode.h
+xfixes.c
+xfixes.h
+xinerama.c
+xinerama.h
+xinput.c
+xinput.h
+xprint.c
+xprint.h
+xproto.c
+xproto.h
+xselinux.c
+xselinux.h
+xtest.c
+xtest.h
+xv.c
+xv.h
+xvmc.c
+xvmc.h
diff --git a/libxcb/src/c_client.py b/libxcb/src/c_client.py
index 72800045e..3f7c00859 100644
--- a/libxcb/src/c_client.py
+++ b/libxcb/src/c_client.py
@@ -185,6 +185,7 @@ def c_open(self):
_c('#include <stddef.h> /* for offsetof() */')
_c('#include "xcbext.h"')
_c('#include "%s.h"', _ns.header)
+ _c('#include <X11/Xtrans/Xtrans.h>')
_c('')
_c('#define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member)')
@@ -203,7 +204,7 @@ def c_open(self):
_h('#define XCB_%s_MAJOR_VERSION %s', _ns.ext_name.upper(), _ns.major_version)
_h('#define XCB_%s_MINOR_VERSION %s', _ns.ext_name.upper(), _ns.minor_version)
_h(' ') #XXX
- _h('extern xcb_extension_t %s;', _ns.c_ext_global_name)
+ _h('XCB_EXTERN xcb_extension_t %s;', _ns.c_ext_global_name)
_c('')
_c('xcb_extension_t %s = { "%s", 0 };', _ns.c_ext_global_name, _ns.ext_xname)
diff --git a/libxcb/src/config.h b/libxcb/src/config.h
new file mode 100644
index 000000000..6c701936c
--- /dev/null
+++ b/libxcb/src/config.h
@@ -0,0 +1,80 @@
+/* src/config.h.in. Generated from configure.ac by autoheader. */
+
+/* Defined if GCC supports the visibility feature */
+#undef GCC_HAS_VISIBILITY
+
+/* Has Wraphelp.c needed for XDM AUTH protocols */
+#undef HASXDMAUTH
+
+/* Define if your platform supports abstract sockets */
+#undef HAVE_ABSTRACT_SOCKETS
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* launchd support available */
+#undef HAVE_LAUNCHD
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Have the sockaddr_un.sun_len member. */
+#undef HAVE_SOCKADDR_SUN_LEN
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#undef LT_OBJDIR
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* poll() function is available */
+#undef USE_POLL
+
+/* Version number of package */
+#undef VERSION
+
+/* XCB buffer queue size */
+#define XCB_QUEUE_BUFFER_SIZE 4096
diff --git a/libxcb/src/dummyin6.h b/libxcb/src/dummyin6.h
new file mode 100644
index 000000000..b86b250e4
--- /dev/null
+++ b/libxcb/src/dummyin6.h
@@ -0,0 +1,168 @@
+/*
+ * Copyright (c) 2001, 2003 Motoyuki Kasahara
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef DUMMYIN6_H
+#define DUMMYIN6_H
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <sys/types.h>
+
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netdb.h>
+
+#ifndef AF_INET6
+#define AF_INET6 (AF_INET + 1)
+#endif
+
+#ifndef PF_INET6
+#define PF_INET6 (PF_INET + 1)
+#endif
+
+#ifndef AF_UNSPEC
+#define AF_UNSPEC AF_INET
+#endif
+
+#ifndef PF_UNSPEC
+#define PF_UNSPEC PF_INET
+#endif
+
+#ifndef INET6_ADDRSTRLEN
+#define INET6_ADDRSTRLEN 46
+#endif
+
+#ifndef INET_ADDRSTRLEN
+#define INET_ADDRSTRLEN 16
+#endif
+
+#ifndef HAVE_STRUCT_IN6_ADDR
+struct in6_addr {
+ unsigned char s6_addr[16];
+};
+#endif
+
+#ifndef HAVE_STRUCT_SOCKADDR_IN6
+struct sockaddr_in6 {
+ sa_family_t sin6_family;
+ in_port_t sin6_port;
+ unsigned long sin6_flowinfo;
+ struct in6_addr sin6_addr;
+ unsigned long sin6_scope_id;
+};
+#endif
+
+#if !defined(HAVE_STRUCT_SOCKADDR_STORAGE) && !defined(sockaddr_storage)
+#define sockaddr_storage sockaddr_in
+#endif
+
+#ifndef IN6ADDR_ANY_DECLARED
+extern const struct in6_addr in6addr_any;
+#endif
+
+#ifndef IN6ADDR_LOOPBACK_DECLARED
+extern const struct in6_addr in6addr_loopback;
+#endif
+
+#ifndef IN6ADDR_ANY_INIT
+#define IN6ADDR_ANY_INIT \
+ {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}
+#endif
+
+#ifndef IN6ADDR_LOOPBACK_INIT
+#define IN6ADDR_LOOPBACK_INIT \
+ {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}}
+#endif
+
+#ifndef IN6_IS_ADDR_UNSPECIFIED
+#define IN6_IS_ADDR_UNSPECIFIED(a) \
+ ( (a)->s6_addr[ 0] == 0 && (a)->s6_addr[ 1] == 0 \
+ && (a)->s6_addr[ 2] == 0 && (a)->s6_addr[ 3] == 0 \
+ && (a)->s6_addr[ 4] == 0 && (a)->s6_addr[ 5] == 0 \
+ && (a)->s6_addr[ 6] == 0 && (a)->s6_addr[ 7] == 0 \
+ && (a)->s6_addr[ 8] == 0 && (a)->s6_addr[ 9] == 0 \
+ && (a)->s6_addr[10] == 0 && (a)->s6_addr[11] == 0 \
+ && (a)->s6_addr[12] == 0 && (a)->s6_addr[13] == 0 \
+ && (a)->s6_addr[14] == 0 && (a)->s6_addr[15] == 0)
+#endif
+
+#ifndef IN6_IS_ADDR_LOOPBACK
+#define IN6_IS_ADDR_LOOPBACK(a) \
+ ( (a)->s6_addr[ 0] == 0 && (a)->s6_addr[ 1] == 0 \
+ && (a)->s6_addr[ 2] == 0 && (a)->s6_addr[ 3] == 0 \
+ && (a)->s6_addr[ 4] == 0 && (a)->s6_addr[ 5] == 0 \
+ && (a)->s6_addr[ 6] == 0 && (a)->s6_addr[ 7] == 0 \
+ && (a)->s6_addr[ 8] == 0 && (a)->s6_addr[ 9] == 0 \
+ && (a)->s6_addr[10] == 0 && (a)->s6_addr[11] == 0 \
+ && (a)->s6_addr[12] == 0 && (a)->s6_addr[13] == 0 \
+ && (a)->s6_addr[14] == 0 && (a)->s6_addr[15] == 1)
+#endif
+
+#ifndef IN6_IS_ADDR_MULTICAST
+#define IN6_IS_ADDR_MULTICAST(a) \
+ ((a)->s6_addr[0] == 0xff)
+#endif
+
+#ifndef IN6_IS_ADDR_LINKLOCAL
+#define IN6_IS_ADDR_LINKLOCAL(a) \
+ (((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0x80))
+#endif
+
+#ifndef IN6_IS_ADDR_SITELOCAL
+#define IN6_IS_ADDR_SITELOCAL(a) \
+ (((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0xc0))
+#endif
+
+#ifndef IN6_IS_ADDR_V4MAPPED
+#define IN6_IS_ADDR_V4MAPPED(a) \
+ ( (a)->s6_addr[ 0] == 0 && (a)->s6_addr[ 1] == 0 \
+ && (a)->s6_addr[ 2] == 0 && (a)->s6_addr[ 3] == 0 \
+ && (a)->s6_addr[ 4] == 0 && (a)->s6_addr[ 5] == 0 \
+ && (a)->s6_addr[ 6] == 0 && (a)->s6_addr[ 7] == 0 \
+ && (a)->s6_addr[ 8] == 0 && (a)->s6_addr[ 9] == 0 \
+ && (a)->s6_addr[10] == 0xff && (a)->s6_addr[11] == 0xff)
+#endif
+
+#ifndef IN6_IS_ADDR_V4COMPAT
+#define IN6_IS_ADDR_V4COMPAT(a) \
+ ( (a)->s6_addr[ 0] == 0 && (a)->s6_addr[ 1] == 0 \
+ && (a)->s6_addr[ 2] == 0 && (a)->s6_addr[ 3] == 0 \
+ && (a)->s6_addr[ 4] == 0 && (a)->s6_addr[ 5] == 0 \
+ && (a)->s6_addr[ 6] == 0 && (a)->s6_addr[ 7] == 0 \
+ && (a)->s6_addr[ 8] == 0 && (a)->s6_addr[ 9] == 0 \
+ && (a)->s6_addr[10] == 0 && (a)->s6_addr[11] == 0 \
+ && ((a)->s6_addr[12] != 0 || (a)->s6_addr[13] != 0 \
+ || (a)->s6_addr[14] != 0 \
+ || ((a)->s6_addr[15] != 0 && (a)->s6_addr[15] != 1)))
+#endif
+
+#endif /* not DUMMYIN6_H */
diff --git a/libxcb/src/libxcb.def b/libxcb/src/libxcb.def
new file mode 100644
index 000000000..1d9e1bbef
--- /dev/null
+++ b/libxcb/src/libxcb.def
@@ -0,0 +1,58 @@
+LIBRARY libxcb
+EXPORTS
+ InitWSA
+ xcb_allow_events
+ xcb_connect
+ xcb_connect_to_display_with_auth_info
+ xcb_connection_has_error
+ xcb_create_glyph_cursor
+ xcb_depth_next
+ xcb_depth_visuals_iterator
+ xcb_discard_reply
+ xcb_disconnect
+ xcb_flush
+ xcb_generate_id
+ xcb_get_atom_name
+ xcb_get_atom_name_name
+ xcb_get_atom_name_name_length
+ xcb_get_atom_name_reply
+ xcb_get_extension_data
+ xcb_get_file_descriptor
+ xcb_get_geometry
+ xcb_get_geometry_reply
+ xcb_get_maximum_request_length
+ xcb_get_property
+ xcb_get_property_reply
+ xcb_get_property_value
+ xcb_get_property_value_length
+ xcb_get_setup
+ xcb_get_window_attributes
+ xcb_get_window_attributes_reply
+ xcb_grab_pointer
+ xcb_grab_pointer_reply
+ xcb_intern_atom
+ xcb_intern_atom_reply
+ xcb_open_font
+ xcb_parse_display
+ xcb_poll_for_event
+ xcb_poll_for_reply
+ xcb_query_pointer
+ xcb_query_pointer_reply
+ xcb_query_tree
+ xcb_query_tree_children
+ xcb_query_tree_children_length
+ xcb_query_tree_reply
+ xcb_screen_allowed_depths_iterator
+ xcb_screen_next
+ xcb_setup_roots_iterator
+ xcb_setup_roots_length
+ xcb_shape_query_extents
+ xcb_shape_query_extents_reply
+ xcb_take_socket
+ xcb_translate_coordinates
+ xcb_translate_coordinates_reply
+ xcb_ungrab_pointer
+ xcb_visualtype_next
+ xcb_wait_for_event
+ xcb_wait_for_reply
+ xcb_writev
diff --git a/libxcb/src/makefile b/libxcb/src/makefile
new file mode 100644
index 000000000..d76306138
--- /dev/null
+++ b/libxcb/src/makefile
@@ -0,0 +1,30 @@
+SHAREDLIB=libxcb
+
+CSRCS = \
+ xcb_conn.c xcb_out.c xcb_in.c xcb_ext.c xcb_xid.c \
+ xcb_list.c xcb_util.c xcb_auth.c
+
+DEFINES += PTW32_STATIC_LIB HAVE_GETADDRINFO LIBXCB_DLL
+
+INCLUDELIBFILES = \
+ $(MHMAKECONF)\libXau\$(OBJDIR)\libXau.lib
+
+LIBDIRS=$(dir $(INCLUDELIBFILES))
+
+load_makefile $(LIBDIRS:%$(OBJDIR)\=%makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+LINKLIBS += $(PTHREADLIB)
+
+XCBPROTO_XCBINCLUDEDIR = ..\xcb-proto\src
+
+XMLFILES := $(notdir $(wildcard $(XCBPROTO_XCBINCLUDEDIR)\*.xml))
+XMLFILES := $(filter-out xkb.xml, $(XMLFILES))
+
+EXTSOURCES := $(XMLFILES:%.xml=%.c)
+CSRCS += $(EXTSOURCES)
+
+EXTHEADERS = $(XMLFILES:%.xml=%.h)
+
+$(EXTHEADERS) $(EXTSOURCES): c_client.py
+
+load_makefile NORELDBG=1 makefile.srcs
diff --git a/libxcb/src/makefile.srcs b/libxcb/src/makefile.srcs
new file mode 100644
index 000000000..d91835aeb
--- /dev/null
+++ b/libxcb/src/makefile.srcs
@@ -0,0 +1,15 @@
+ifneq ($(NORELDBG),1)
+$(error NORELDBG should have been set to 1)
+endif
+
+XCBPROTO_XCBPYTHONDIR = ..\xcb-proto
+XCBPROTO_XCBINCLUDEDIR = ..\xcb-proto\src
+
+%.h: $(XCBPROTO_XCBINCLUDEDIR)\%.xml
+ python c_client.py -p $(XCBPROTO_XCBPYTHONDIR) $<
+
+%.c: $(XCBPROTO_XCBINCLUDEDIR)\%.xml
+ python c_client.py -p $(XCBPROTO_XCBPYTHONDIR) $<
+
+CLEANRULEPOSTFIX=noobjs
+
diff --git a/libxcb/src/xcb.h b/libxcb/src/xcb.h
index 63864dc37..8cdba0550 100644
--- a/libxcb/src/xcb.h
+++ b/libxcb/src/xcb.h
@@ -37,6 +37,7 @@
#ifndef _WIN32
#include <sys/uio.h>
+#define XCB_EXTERN extern
#else
#include "xcb_windefs.h"
#endif
diff --git a/libxcb/src/xcb_auth.c b/libxcb/src/xcb_auth.c
index a5b730c0c..0514a77e7 100644
--- a/libxcb/src/xcb_auth.c
+++ b/libxcb/src/xcb_auth.c
@@ -265,13 +265,14 @@ static int compute_auth(xcb_auth_info_t *info, Xauth *authptr, struct sockaddr *
/* `sockaddr_un.sun_path' typical size usually ranges between 92 and 108 */
#define INITIAL_SOCKNAME_SLACK 108
+#ifndef WIN32
+typedef int (*LPFN_GETPEERNAME)(int,struct sockaddr *,socklen_t *);
+#endif
/* Return a dynamically allocated socket address structure according
to the value returned by either getpeername() or getsockname()
(according to POSIX, applications should not assume a particular
length for `sockaddr_un.sun_path') */
-static struct sockaddr *get_peer_sock_name(int (*socket_func)(int,
- struct sockaddr *,
- socklen_t *),
+static struct sockaddr *get_peer_sock_name(LPFN_GETPEERNAME socket_func,
int fd)
{
socklen_t socknamelen = sizeof(struct sockaddr) + INITIAL_SOCKNAME_SLACK;
diff --git a/libxcb/src/xcb_conn.c b/libxcb/src/xcb_conn.c
index 46390e1da..72c4af7c2 100644
--- a/libxcb/src/xcb_conn.c
+++ b/libxcb/src/xcb_conn.c
@@ -53,6 +53,12 @@
#include <netinet/in.h>
#endif /* _WIN32 */
+#include <X11/Xtrans/Xtrans.h>
+
+#ifdef _MSC_VER
+#define _close(fd) closesocket(fd)
+#endif
+
/* SHUT_RDWR is fairly recent and is not available on all platforms */
#if !defined(SHUT_RDWR)
#define SHUT_RDWR 2
@@ -75,7 +81,7 @@ static int set_fd_flags(const int fd)
#ifdef _WIN32
u_long iMode = 1; /* non-zero puts it in non-blocking mode, 0 in blocking mode */
- int ret = 0;
+ int ret;
ret = ioctlsocket(fd, FIONBIO, &iMode);
if(ret != 0)
@@ -115,7 +121,7 @@ static int write_setup(xcb_connection_t *c, xcb_auth_info_t *auth_info)
out.authorization_protocol_name_len = 0;
out.authorization_protocol_data_len = 0;
parts[count].iov_len = sizeof(xcb_setup_request_t);
- parts[count++].iov_base = &out;
+ parts[count++].iov_base = (caddr_t) &out;
parts[count].iov_len = XCB_PAD(sizeof(xcb_setup_request_t));
parts[count++].iov_base = (char *) pad;
@@ -183,33 +189,48 @@ static int read_setup(xcb_connection_t *c)
static int write_vec(xcb_connection_t *c, struct iovec **vector, int *count)
{
int n;
- assert(!c->out.queue_len);
#ifdef _WIN32
int i = 0;
- int ret = 0,err = 0;
+ int cnt=*count;
struct iovec *vec;
n = 0;
+ assert(!c->out.queue_len);
/* Could use the WSASend win32 function for scatter/gather i/o but setting up the WSABUF struct from
an iovec would require more work and I'm not sure of the benefit....works for now */
vec = *vector;
- while(i < *count)
+ while(i < cnt)
{
- ret = send(c->fd,vec->iov_base,vec->iov_len,0);
+ char *p= vec->iov_base;
+ size_t l= vec->iov_len;
+ while (l > 0)
+ {
+ int ret = send(c->fd, p, l, 0);
if(ret == SOCKET_ERROR)
{
- err = WSAGetLastError();
+ int err = WSAGetLastError();
if(err == WSAEWOULDBLOCK)
{
- return 1;
+ if (n)
+ {
+ /* already return the data */
+ i=cnt;
+ break;
+ }
+ else
+ return 1;
}
}
+ p += ret;
+ l -= ret;
n += ret;
- *vec++;
- i++;
+ }
+ vec++;
+ i++;
}
#else
+ assert(!c->out.queue_len);
n = *count;
if (n > IOV_MAX)
n = IOV_MAX;
@@ -454,6 +475,13 @@ int _xcb_conn_wait(xcb_connection_t *c, pthread_cond_t *cond, struct iovec **vec
}
#else
ret = select(c->fd + 1, &rfds, &wfds, 0, 0);
+ if (ret==SOCKET_ERROR)
+ {
+ ret=-1;
+ errno = WSAGetLastError();
+ if (errno == WSAEINTR)
+ errno=EINTR;
+ }
#endif
} while (ret == -1 && errno == EINTR);
if(ret < 0)
diff --git a/libxcb/src/xcb_ext.c b/libxcb/src/xcb_ext.c
index 831f28381..990c67a96 100644
--- a/libxcb/src/xcb_ext.c
+++ b/libxcb/src/xcb_ext.c
@@ -123,6 +123,8 @@ int _xcb_ext_init(xcb_connection_t *c)
void _xcb_ext_destroy(xcb_connection_t *c)
{
+ if (!c->ext.lock)
+ return; /* mutex is not initialised */
pthread_mutex_destroy(&c->ext.lock);
while(c->ext.extensions_size-- > 0)
if(c->ext.extensions[c->ext.extensions_size].tag == LAZY_FORCED)
diff --git a/libxcb/src/xcb_in.c b/libxcb/src/xcb_in.c
index fd6c2efd2..5506e3088 100644
--- a/libxcb/src/xcb_in.c
+++ b/libxcb/src/xcb_in.c
@@ -55,6 +55,7 @@
#define XCB_REPLY 1
#define XCB_XGE_EVENT 35
+
struct event_list {
xcb_generic_event_t *event;
struct event_list *next;
diff --git a/libxcb/src/xcb_out.c b/libxcb/src/xcb_out.c
index 18bb5f912..f11e2966f 100644
--- a/libxcb/src/xcb_out.c
+++ b/libxcb/src/xcb_out.c
@@ -33,13 +33,14 @@
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
+#include <X11/Xtrans/Xtrans.h>
#include "xcb.h"
#include "xcbext.h"
#include "xcbint.h"
#include "bigreq.h"
-static inline void send_request(xcb_connection_t *c, int isvoid, enum workarounds workaround, int flags, struct iovec *vector, int count)
+static __inline void send_request(xcb_connection_t *c, int isvoid, enum workarounds workaround, int flags, struct iovec *vector, int count)
{
if(c->has_error)
return;
@@ -217,10 +218,10 @@ unsigned int xcb_send_request(xcb_connection_t *c, int flags, struct iovec *vect
{
prefix[0] = ((uint32_t *) vector[0].iov_base)[0];
prefix[1] = ++longlen;
- vector[0].iov_base = (uint32_t *) vector[0].iov_base + 1;
+ vector[0].iov_base = (caddr_t)((uint32_t *) vector[0].iov_base + 1);
vector[0].iov_len -= sizeof(uint32_t);
--vector, ++veclen;
- vector[0].iov_base = prefix;
+ vector[0].iov_base = (caddr_t)prefix;
vector[0].iov_len = sizeof(prefix);
}
}
diff --git a/libxcb/src/xcb_util.c b/libxcb/src/xcb_util.c
index 466dc23bc..bfb6fca83 100644
--- a/libxcb/src/xcb_util.c
+++ b/libxcb/src/xcb_util.c
@@ -60,6 +60,13 @@
# include <sys/stat.h>
#endif
+#ifdef _MSC_VER
+#ifdef close
+#undef close
+#endif
+#define close(fd) closesocket(fd)
+#endif
+
int xcb_popcount(uint32_t mask)
{
uint32_t y;
@@ -272,7 +279,7 @@ static int _xcb_socket(int family, int type, int proto)
static int _xcb_do_connect(int fd, const struct sockaddr* addr, int addrlen) {
- int on = 1;
+ char on = 1;
if(fd < 0)
return -1;
@@ -283,6 +290,23 @@ static int _xcb_do_connect(int fd, const struct sockaddr* addr, int addrlen) {
return connect(fd, addr, addrlen);
}
+#ifdef WIN32
+int InitWSA(void)
+{
+ static WSADATA wsadata;
+
+ if (!wsadata.wVersion)
+ {
+ ptw32_processInitialize();
+ if (WSAStartup(0x0202, &wsadata))
+ return -1;
+ }
+ return 0;
+}
+#else
+#define InitWSA()
+#endif
+
static int _xcb_open_tcp(const char *host, char *protocol, const unsigned short port)
{
int fd = -1;
@@ -322,6 +346,11 @@ static int _xcb_open_tcp(const char *host, char *protocol, const unsigned short
}
#endif
+#ifdef WIN32
+ if (InitWSA()<0)
+ return -1;
+#endif
+
snprintf(service, sizeof(service), "%hu", port);
if(getaddrinfo(host, service, &hints, &results))
/* FIXME: use gai_strerror, and fill in error connection */
diff --git a/libxcb/src/xcb_windefs.h b/libxcb/src/xcb_windefs.h
index d6c732940..dd92b7257 100644
--- a/libxcb/src/xcb_windefs.h
+++ b/libxcb/src/xcb_windefs.h
@@ -31,15 +31,28 @@
#define WINVER 0x0501 /* required for getaddrinfo/freeaddrinfo defined only for WinXP and above */
#endif
+#define INCL_WINSOCK_API_TYPEDEFS 1 /* Needed for LPFN_GETPEERNAME */
+
+#define FD_SETSIZE 1024
+
+#include <X11/Xwinsock.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <windef.h>
-struct iovec {
- void *iov_base; /* Pointer to data. */
- int iov_len; /* Length of data. */
-};
+typedef unsigned char BYTE;
typedef unsigned int in_addr_t;
+#define HANDLE void *
+typedef int pid_t;
+
+#define STDERR_FILENO 2
+
+#ifdef LIBXCB_DLL
+#define XCB_EXTERN __declspec(dllexport) extern
+#else
+#define XCB_EXTERN __declspec(dllimport) extern
+#endif
+
#endif /* xcb_windefs.h */
diff --git a/libxcb/src/xcb_xid.c b/libxcb/src/xcb_xid.c
index 79a9a27de..7d9fc621b 100644
--- a/libxcb/src/xcb_xid.c
+++ b/libxcb/src/xcb_xid.c
@@ -97,5 +97,7 @@ int _xcb_xid_init(xcb_connection_t *c)
void _xcb_xid_destroy(xcb_connection_t *c)
{
+ if (!c->xid.lock)
+ return; /* mutex was not initialised yet */
pthread_mutex_destroy(&c->xid.lock);
}
diff --git a/libxkbfile/include/X11/extensions/XKBrules.h b/libxkbfile/include/X11/extensions/XKBrules.h
index 59d11cd88..f898da8d9 100644
--- a/libxkbfile/include/X11/extensions/XKBrules.h
+++ b/libxkbfile/include/X11/extensions/XKBrules.h
@@ -179,7 +179,7 @@ extern void XkbRF_Free(
#define _XKB_RF_NAMES_PROP_MAXLEN 1024
#ifndef XKB_IN_SERVER
-
+#ifndef _MSC_VER
extern Bool XkbRF_GetNamesProp(
Display * /* dpy */,
char ** /* rules_file_rtrn */,
@@ -193,6 +193,7 @@ extern Bool XkbRF_SetNamesProp(
);
#endif
+#endif
_XFUNCPROTOEND
diff --git a/libxkbfile/src/XKBfileInt.h b/libxkbfile/src/XKBfileInt.h
index e810e6131..ef188095d 100644
--- a/libxkbfile/src/XKBfileInt.h
+++ b/libxkbfile/src/XKBfileInt.h
@@ -61,6 +61,11 @@
#endif
+#include <unistd.h>
+#ifdef _MSC_VER
+#define inline __inline
+#endif
+
_XFUNCPROTOBEGIN
static inline
diff --git a/libxkbfile/src/config.h b/libxkbfile/src/config.h
new file mode 100644
index 000000000..6cd15164b
--- /dev/null
+++ b/libxkbfile/src/config.h
@@ -0,0 +1,4 @@
+#ifndef __CONFIG_H__
+#define __CONFIG_H__
+
+#endif
diff --git a/libxkbfile/src/makefile b/libxkbfile/src/makefile
new file mode 100644
index 000000000..5c76670f4
--- /dev/null
+++ b/libxkbfile/src/makefile
@@ -0,0 +1,18 @@
+LIBRARY = libxkbfile
+
+CSRCS = cout.c \
+ maprules.c \
+ srvmisc.c \
+ xkbatom.c \
+ xkbbells.c \
+ xkbconfig.c \
+ xkbdraw.c \
+ xkberrs.c \
+ xkbmisc.c \
+ xkbout.c \
+ xkbtext.c \
+ xkmout.c \
+ xkmread.c
+
+INCLUDES := . $(MHMAKECONF)\X11\extensions $(MHMAKECONF) $(MHMAKECONF)\include
+
diff --git a/libxkbfile/src/xkmout.c b/libxkbfile/src/xkmout.c
index 79d86efe1..91e66f400 100644
--- a/libxkbfile/src/xkmout.c
+++ b/libxkbfile/src/xkmout.c
@@ -1316,7 +1316,7 @@ int (*getTOC)(
XkbFileInfo * /* result */,
XkmInfo * /* info */,
int /* max_to */,
- xkmSectionInfo */* toc_rtrn */
+ xkmSectionInfo * /* toc_rtrn */
);
switch (result->type) {
diff --git a/libxkbfile/src/xkmread.c b/libxkbfile/src/xkmread.c
index ae056617b..e5127c910 100644
--- a/libxkbfile/src/xkmread.c
+++ b/libxkbfile/src/xkmread.c
@@ -1213,6 +1213,8 @@ char name[100];
return _XkbDupString(name);
break;
default:
+ fseek(file,toc->offset,SEEK_SET);
+ fread(&tmpTOC,SIZEOF(xkmSectionInfo),1,file);
_XkbLibError(_XkbErrBadImplementation,
XkbConfigText(tmpTOC.type,XkbMessage),0);
break;
diff --git a/libxml2/bin/libgcc_s_sjlj-1.dll b/libxml2/bin/libgcc_s_sjlj-1.dll
new file mode 100755
index 000000000..c3d351f34
--- /dev/null
+++ b/libxml2/bin/libgcc_s_sjlj-1.dll
Binary files differ
diff --git a/libxml2/bin/libiconv-2.dll b/libxml2/bin/libiconv-2.dll
new file mode 100755
index 000000000..1c23ac4db
--- /dev/null
+++ b/libxml2/bin/libiconv-2.dll
Binary files differ
diff --git a/libxml2/bin/libwinpthread-1.dll b/libxml2/bin/libwinpthread-1.dll
new file mode 100755
index 000000000..a8eed3ff5
--- /dev/null
+++ b/libxml2/bin/libwinpthread-1.dll
Binary files differ
diff --git a/libxml2/bin/libxml2-2.dll b/libxml2/bin/libxml2-2.dll
new file mode 100755
index 000000000..d4e2b1d9e
--- /dev/null
+++ b/libxml2/bin/libxml2-2.dll
Binary files differ
diff --git a/libxml2/bin64/libgcc_s_sjlj-1.dll b/libxml2/bin64/libgcc_s_sjlj-1.dll
new file mode 100755
index 000000000..df1acf837
--- /dev/null
+++ b/libxml2/bin64/libgcc_s_sjlj-1.dll
Binary files differ
diff --git a/libxml2/bin64/libiconv-2.dll b/libxml2/bin64/libiconv-2.dll
new file mode 100755
index 000000000..a586995c4
--- /dev/null
+++ b/libxml2/bin64/libiconv-2.dll
Binary files differ
diff --git a/libxml2/bin64/libwinpthread-1.dll b/libxml2/bin64/libwinpthread-1.dll
new file mode 100755
index 000000000..c9560bbd3
--- /dev/null
+++ b/libxml2/bin64/libwinpthread-1.dll
Binary files differ
diff --git a/libxml2/bin64/libxml2-2.dll b/libxml2/bin64/libxml2-2.dll
new file mode 100755
index 000000000..4525db99a
--- /dev/null
+++ b/libxml2/bin64/libxml2-2.dll
Binary files differ
diff --git a/libxml2/createimplib.txt b/libxml2/createimplib.txt
new file mode 100644
index 000000000..efc11f4d9
--- /dev/null
+++ b/libxml2/createimplib.txt
@@ -0,0 +1,19 @@
+echo LIBRARY libxml2-2 > lib64/libxml2-2.def
+echo EXPORTS >> lib64/libxml2-2.def
+dumpbin /exports bin64/libxml2-2.dll >> lib64/libxml2-2.def
+dos2unix lib64/libxml2-2.def
+
+# edit def file to remove unnecessary balast
+
+lib /def:lib64/libxml2-2.def /out:lib64/libxml2-2.lib /machine:X64
+
+# for the 32-bit version
+
+echo LIBRARY libxml2-2 > lib/libxml2-2.def
+echo EXPORTS >> lib/libxml2-2.def
+dumpbin /exports bin/libxml2-2.dll >> lib/libxml2-2.def
+dos2unix lib/libxml2-2.def
+
+# edit def file to remove unnecessary balast
+
+lib /def:lib/libxml2-2.def /out:lib/libxml2-2.lib /machine:X86
diff --git a/libxml2/include/libxml/DOCBparser.h b/libxml2/include/libxml/DOCBparser.h
new file mode 100644
index 000000000..9394fa71b
--- /dev/null
+++ b/libxml2/include/libxml/DOCBparser.h
@@ -0,0 +1,96 @@
+/*
+ * Summary: old DocBook SGML parser
+ * Description: interface for a DocBook SGML non-verifying parser
+ * This code is DEPRECATED, and should not be used anymore.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __DOCB_PARSER_H__
+#define __DOCB_PARSER_H__
+#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_DOCB_ENABLED
+
+#include <libxml/parser.h>
+#include <libxml/parserInternals.h>
+
+#ifndef IN_LIBXML
+#ifdef __GNUC__
+#warning "The DOCBparser module has been deprecated in libxml2-2.6.0"
+#endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Most of the back-end structures from XML and SGML are shared.
+ */
+typedef xmlParserCtxt docbParserCtxt;
+typedef xmlParserCtxtPtr docbParserCtxtPtr;
+typedef xmlSAXHandler docbSAXHandler;
+typedef xmlSAXHandlerPtr docbSAXHandlerPtr;
+typedef xmlParserInput docbParserInput;
+typedef xmlParserInputPtr docbParserInputPtr;
+typedef xmlDocPtr docbDocPtr;
+
+/*
+ * There is only few public functions.
+ */
+XMLPUBFUN int XMLCALL
+ docbEncodeEntities(unsigned char *out,
+ int *outlen,
+ const unsigned char *in,
+ int *inlen, int quoteChar);
+
+XMLPUBFUN docbDocPtr XMLCALL
+ docbSAXParseDoc (xmlChar *cur,
+ const char *encoding,
+ docbSAXHandlerPtr sax,
+ void *userData);
+XMLPUBFUN docbDocPtr XMLCALL
+ docbParseDoc (xmlChar *cur,
+ const char *encoding);
+XMLPUBFUN docbDocPtr XMLCALL
+ docbSAXParseFile (const char *filename,
+ const char *encoding,
+ docbSAXHandlerPtr sax,
+ void *userData);
+XMLPUBFUN docbDocPtr XMLCALL
+ docbParseFile (const char *filename,
+ const char *encoding);
+
+/**
+ * Interfaces for the Push mode.
+ */
+XMLPUBFUN void XMLCALL
+ docbFreeParserCtxt (docbParserCtxtPtr ctxt);
+XMLPUBFUN docbParserCtxtPtr XMLCALL
+ docbCreatePushParserCtxt(docbSAXHandlerPtr sax,
+ void *user_data,
+ const char *chunk,
+ int size,
+ const char *filename,
+ xmlCharEncoding enc);
+XMLPUBFUN int XMLCALL
+ docbParseChunk (docbParserCtxtPtr ctxt,
+ const char *chunk,
+ int size,
+ int terminate);
+XMLPUBFUN docbParserCtxtPtr XMLCALL
+ docbCreateFileParserCtxt(const char *filename,
+ const char *encoding);
+XMLPUBFUN int XMLCALL
+ docbParseDocument (docbParserCtxtPtr ctxt);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_DOCB_ENABLED */
+
+#endif /* __DOCB_PARSER_H__ */
diff --git a/libxml2/include/libxml/HTMLparser.h b/libxml2/include/libxml/HTMLparser.h
new file mode 100644
index 000000000..551186cb0
--- /dev/null
+++ b/libxml2/include/libxml/HTMLparser.h
@@ -0,0 +1,306 @@
+/*
+ * Summary: interface for an HTML 4.0 non-verifying parser
+ * Description: this module implements an HTML 4.0 non-verifying parser
+ * with API compatible with the XML parser ones. It should
+ * be able to parse "real world" HTML, even if severely
+ * broken from a specification point of view.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __HTML_PARSER_H__
+#define __HTML_PARSER_H__
+#include <libxml/xmlversion.h>
+#include <libxml/parser.h>
+
+#ifdef LIBXML_HTML_ENABLED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Most of the back-end structures from XML and HTML are shared.
+ */
+typedef xmlParserCtxt htmlParserCtxt;
+typedef xmlParserCtxtPtr htmlParserCtxtPtr;
+typedef xmlParserNodeInfo htmlParserNodeInfo;
+typedef xmlSAXHandler htmlSAXHandler;
+typedef xmlSAXHandlerPtr htmlSAXHandlerPtr;
+typedef xmlParserInput htmlParserInput;
+typedef xmlParserInputPtr htmlParserInputPtr;
+typedef xmlDocPtr htmlDocPtr;
+typedef xmlNodePtr htmlNodePtr;
+
+/*
+ * Internal description of an HTML element, representing HTML 4.01
+ * and XHTML 1.0 (which share the same structure).
+ */
+typedef struct _htmlElemDesc htmlElemDesc;
+typedef htmlElemDesc *htmlElemDescPtr;
+struct _htmlElemDesc {
+ const char *name; /* The tag name */
+ char startTag; /* Whether the start tag can be implied */
+ char endTag; /* Whether the end tag can be implied */
+ char saveEndTag; /* Whether the end tag should be saved */
+ char empty; /* Is this an empty element ? */
+ char depr; /* Is this a deprecated element ? */
+ char dtd; /* 1: only in Loose DTD, 2: only Frameset one */
+ char isinline; /* is this a block 0 or inline 1 element */
+ const char *desc; /* the description */
+
+/* NRK Jan.2003
+ * New fields encapsulating HTML structure
+ *
+ * Bugs:
+ * This is a very limited representation. It fails to tell us when
+ * an element *requires* subelements (we only have whether they're
+ * allowed or not), and it doesn't tell us where CDATA and PCDATA
+ * are allowed. Some element relationships are not fully represented:
+ * these are flagged with the word MODIFIER
+ */
+ const char** subelts; /* allowed sub-elements of this element */
+ const char* defaultsubelt; /* subelement for suggested auto-repair
+ if necessary or NULL */
+ const char** attrs_opt; /* Optional Attributes */
+ const char** attrs_depr; /* Additional deprecated attributes */
+ const char** attrs_req; /* Required attributes */
+};
+
+/*
+ * Internal description of an HTML entity.
+ */
+typedef struct _htmlEntityDesc htmlEntityDesc;
+typedef htmlEntityDesc *htmlEntityDescPtr;
+struct _htmlEntityDesc {
+ unsigned int value; /* the UNICODE value for the character */
+ const char *name; /* The entity name */
+ const char *desc; /* the description */
+};
+
+/*
+ * There is only few public functions.
+ */
+XMLPUBFUN const htmlElemDesc * XMLCALL
+ htmlTagLookup (const xmlChar *tag);
+XMLPUBFUN const htmlEntityDesc * XMLCALL
+ htmlEntityLookup(const xmlChar *name);
+XMLPUBFUN const htmlEntityDesc * XMLCALL
+ htmlEntityValueLookup(unsigned int value);
+
+XMLPUBFUN int XMLCALL
+ htmlIsAutoClosed(htmlDocPtr doc,
+ htmlNodePtr elem);
+XMLPUBFUN int XMLCALL
+ htmlAutoCloseTag(htmlDocPtr doc,
+ const xmlChar *name,
+ htmlNodePtr elem);
+XMLPUBFUN const htmlEntityDesc * XMLCALL
+ htmlParseEntityRef(htmlParserCtxtPtr ctxt,
+ const xmlChar **str);
+XMLPUBFUN int XMLCALL
+ htmlParseCharRef(htmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ htmlParseElement(htmlParserCtxtPtr ctxt);
+
+XMLPUBFUN htmlParserCtxtPtr XMLCALL
+ htmlNewParserCtxt(void);
+
+XMLPUBFUN htmlParserCtxtPtr XMLCALL
+ htmlCreateMemoryParserCtxt(const char *buffer,
+ int size);
+
+XMLPUBFUN int XMLCALL
+ htmlParseDocument(htmlParserCtxtPtr ctxt);
+XMLPUBFUN htmlDocPtr XMLCALL
+ htmlSAXParseDoc (xmlChar *cur,
+ const char *encoding,
+ htmlSAXHandlerPtr sax,
+ void *userData);
+XMLPUBFUN htmlDocPtr XMLCALL
+ htmlParseDoc (xmlChar *cur,
+ const char *encoding);
+XMLPUBFUN htmlDocPtr XMLCALL
+ htmlSAXParseFile(const char *filename,
+ const char *encoding,
+ htmlSAXHandlerPtr sax,
+ void *userData);
+XMLPUBFUN htmlDocPtr XMLCALL
+ htmlParseFile (const char *filename,
+ const char *encoding);
+XMLPUBFUN int XMLCALL
+ UTF8ToHtml (unsigned char *out,
+ int *outlen,
+ const unsigned char *in,
+ int *inlen);
+XMLPUBFUN int XMLCALL
+ htmlEncodeEntities(unsigned char *out,
+ int *outlen,
+ const unsigned char *in,
+ int *inlen, int quoteChar);
+XMLPUBFUN int XMLCALL
+ htmlIsScriptAttribute(const xmlChar *name);
+XMLPUBFUN int XMLCALL
+ htmlHandleOmittedElem(int val);
+
+#ifdef LIBXML_PUSH_ENABLED
+/**
+ * Interfaces for the Push mode.
+ */
+XMLPUBFUN htmlParserCtxtPtr XMLCALL
+ htmlCreatePushParserCtxt(htmlSAXHandlerPtr sax,
+ void *user_data,
+ const char *chunk,
+ int size,
+ const char *filename,
+ xmlCharEncoding enc);
+XMLPUBFUN int XMLCALL
+ htmlParseChunk (htmlParserCtxtPtr ctxt,
+ const char *chunk,
+ int size,
+ int terminate);
+#endif /* LIBXML_PUSH_ENABLED */
+
+XMLPUBFUN void XMLCALL
+ htmlFreeParserCtxt (htmlParserCtxtPtr ctxt);
+
+/*
+ * New set of simpler/more flexible APIs
+ */
+/**
+ * xmlParserOption:
+ *
+ * This is the set of XML parser options that can be passed down
+ * to the xmlReadDoc() and similar calls.
+ */
+typedef enum {
+ HTML_PARSE_RECOVER = 1<<0, /* Relaxed parsing */
+ HTML_PARSE_NODEFDTD = 1<<2, /* do not default a doctype if not found */
+ HTML_PARSE_NOERROR = 1<<5, /* suppress error reports */
+ HTML_PARSE_NOWARNING= 1<<6, /* suppress warning reports */
+ HTML_PARSE_PEDANTIC = 1<<7, /* pedantic error reporting */
+ HTML_PARSE_NOBLANKS = 1<<8, /* remove blank nodes */
+ HTML_PARSE_NONET = 1<<11,/* Forbid network access */
+ HTML_PARSE_NOIMPLIED= 1<<13,/* Do not add implied html/body... elements */
+ HTML_PARSE_COMPACT = 1<<16,/* compact small text nodes */
+ HTML_PARSE_IGNORE_ENC=1<<21 /* ignore internal document encoding hint */
+} htmlParserOption;
+
+XMLPUBFUN void XMLCALL
+ htmlCtxtReset (htmlParserCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL
+ htmlCtxtUseOptions (htmlParserCtxtPtr ctxt,
+ int options);
+XMLPUBFUN htmlDocPtr XMLCALL
+ htmlReadDoc (const xmlChar *cur,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN htmlDocPtr XMLCALL
+ htmlReadFile (const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN htmlDocPtr XMLCALL
+ htmlReadMemory (const char *buffer,
+ int size,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN htmlDocPtr XMLCALL
+ htmlReadFd (int fd,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN htmlDocPtr XMLCALL
+ htmlReadIO (xmlInputReadCallback ioread,
+ xmlInputCloseCallback ioclose,
+ void *ioctx,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN htmlDocPtr XMLCALL
+ htmlCtxtReadDoc (xmlParserCtxtPtr ctxt,
+ const xmlChar *cur,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN htmlDocPtr XMLCALL
+ htmlCtxtReadFile (xmlParserCtxtPtr ctxt,
+ const char *filename,
+ const char *encoding,
+ int options);
+XMLPUBFUN htmlDocPtr XMLCALL
+ htmlCtxtReadMemory (xmlParserCtxtPtr ctxt,
+ const char *buffer,
+ int size,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN htmlDocPtr XMLCALL
+ htmlCtxtReadFd (xmlParserCtxtPtr ctxt,
+ int fd,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN htmlDocPtr XMLCALL
+ htmlCtxtReadIO (xmlParserCtxtPtr ctxt,
+ xmlInputReadCallback ioread,
+ xmlInputCloseCallback ioclose,
+ void *ioctx,
+ const char *URL,
+ const char *encoding,
+ int options);
+
+/* NRK/Jan2003: further knowledge of HTML structure
+ */
+typedef enum {
+ HTML_NA = 0 , /* something we don't check at all */
+ HTML_INVALID = 0x1 ,
+ HTML_DEPRECATED = 0x2 ,
+ HTML_VALID = 0x4 ,
+ HTML_REQUIRED = 0xc /* VALID bit set so ( & HTML_VALID ) is TRUE */
+} htmlStatus ;
+
+/* Using htmlElemDesc rather than name here, to emphasise the fact
+ that otherwise there's a lookup overhead
+*/
+XMLPUBFUN htmlStatus XMLCALL htmlAttrAllowed(const htmlElemDesc*, const xmlChar*, int) ;
+XMLPUBFUN int XMLCALL htmlElementAllowedHere(const htmlElemDesc*, const xmlChar*) ;
+XMLPUBFUN htmlStatus XMLCALL htmlElementStatusHere(const htmlElemDesc*, const htmlElemDesc*) ;
+XMLPUBFUN htmlStatus XMLCALL htmlNodeStatus(const htmlNodePtr, int) ;
+/**
+ * htmlDefaultSubelement:
+ * @elt: HTML element
+ *
+ * Returns the default subelement for this element
+ */
+#define htmlDefaultSubelement(elt) elt->defaultsubelt
+/**
+ * htmlElementAllowedHereDesc:
+ * @parent: HTML parent element
+ * @elt: HTML element
+ *
+ * Checks whether an HTML element description may be a
+ * direct child of the specified element.
+ *
+ * Returns 1 if allowed; 0 otherwise.
+ */
+#define htmlElementAllowedHereDesc(parent,elt) \
+ htmlElementAllowedHere((parent), (elt)->name)
+/**
+ * htmlRequiredAttrs:
+ * @elt: HTML element
+ *
+ * Returns the attributes required for the specified element.
+ */
+#define htmlRequiredAttrs(elt) (elt)->attrs_req
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_HTML_ENABLED */
+#endif /* __HTML_PARSER_H__ */
diff --git a/libxml2/include/libxml/HTMLtree.h b/libxml2/include/libxml/HTMLtree.h
new file mode 100644
index 000000000..c0e110330
--- /dev/null
+++ b/libxml2/include/libxml/HTMLtree.h
@@ -0,0 +1,147 @@
+/*
+ * Summary: specific APIs to process HTML tree, especially serialization
+ * Description: this module implements a few function needed to process
+ * tree in an HTML specific way.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __HTML_TREE_H__
+#define __HTML_TREE_H__
+
+#include <stdio.h>
+#include <libxml/xmlversion.h>
+#include <libxml/tree.h>
+#include <libxml/HTMLparser.h>
+
+#ifdef LIBXML_HTML_ENABLED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * HTML_TEXT_NODE:
+ *
+ * Macro. A text node in a HTML document is really implemented
+ * the same way as a text node in an XML document.
+ */
+#define HTML_TEXT_NODE XML_TEXT_NODE
+/**
+ * HTML_ENTITY_REF_NODE:
+ *
+ * Macro. An entity reference in a HTML document is really implemented
+ * the same way as an entity reference in an XML document.
+ */
+#define HTML_ENTITY_REF_NODE XML_ENTITY_REF_NODE
+/**
+ * HTML_COMMENT_NODE:
+ *
+ * Macro. A comment in a HTML document is really implemented
+ * the same way as a comment in an XML document.
+ */
+#define HTML_COMMENT_NODE XML_COMMENT_NODE
+/**
+ * HTML_PRESERVE_NODE:
+ *
+ * Macro. A preserved node in a HTML document is really implemented
+ * the same way as a CDATA section in an XML document.
+ */
+#define HTML_PRESERVE_NODE XML_CDATA_SECTION_NODE
+/**
+ * HTML_PI_NODE:
+ *
+ * Macro. A processing instruction in a HTML document is really implemented
+ * the same way as a processing instruction in an XML document.
+ */
+#define HTML_PI_NODE XML_PI_NODE
+
+XMLPUBFUN htmlDocPtr XMLCALL
+ htmlNewDoc (const xmlChar *URI,
+ const xmlChar *ExternalID);
+XMLPUBFUN htmlDocPtr XMLCALL
+ htmlNewDocNoDtD (const xmlChar *URI,
+ const xmlChar *ExternalID);
+XMLPUBFUN const xmlChar * XMLCALL
+ htmlGetMetaEncoding (htmlDocPtr doc);
+XMLPUBFUN int XMLCALL
+ htmlSetMetaEncoding (htmlDocPtr doc,
+ const xmlChar *encoding);
+#ifdef LIBXML_OUTPUT_ENABLED
+XMLPUBFUN void XMLCALL
+ htmlDocDumpMemory (xmlDocPtr cur,
+ xmlChar **mem,
+ int *size);
+XMLPUBFUN void XMLCALL
+ htmlDocDumpMemoryFormat (xmlDocPtr cur,
+ xmlChar **mem,
+ int *size,
+ int format);
+XMLPUBFUN int XMLCALL
+ htmlDocDump (FILE *f,
+ xmlDocPtr cur);
+XMLPUBFUN int XMLCALL
+ htmlSaveFile (const char *filename,
+ xmlDocPtr cur);
+XMLPUBFUN int XMLCALL
+ htmlNodeDump (xmlBufferPtr buf,
+ xmlDocPtr doc,
+ xmlNodePtr cur);
+XMLPUBFUN void XMLCALL
+ htmlNodeDumpFile (FILE *out,
+ xmlDocPtr doc,
+ xmlNodePtr cur);
+XMLPUBFUN int XMLCALL
+ htmlNodeDumpFileFormat (FILE *out,
+ xmlDocPtr doc,
+ xmlNodePtr cur,
+ const char *encoding,
+ int format);
+XMLPUBFUN int XMLCALL
+ htmlSaveFileEnc (const char *filename,
+ xmlDocPtr cur,
+ const char *encoding);
+XMLPUBFUN int XMLCALL
+ htmlSaveFileFormat (const char *filename,
+ xmlDocPtr cur,
+ const char *encoding,
+ int format);
+
+XMLPUBFUN void XMLCALL
+ htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf,
+ xmlDocPtr doc,
+ xmlNodePtr cur,
+ const char *encoding,
+ int format);
+XMLPUBFUN void XMLCALL
+ htmlDocContentDumpOutput(xmlOutputBufferPtr buf,
+ xmlDocPtr cur,
+ const char *encoding);
+XMLPUBFUN void XMLCALL
+ htmlDocContentDumpFormatOutput(xmlOutputBufferPtr buf,
+ xmlDocPtr cur,
+ const char *encoding,
+ int format);
+XMLPUBFUN void XMLCALL
+ htmlNodeDumpOutput (xmlOutputBufferPtr buf,
+ xmlDocPtr doc,
+ xmlNodePtr cur,
+ const char *encoding);
+
+#endif /* LIBXML_OUTPUT_ENABLED */
+
+XMLPUBFUN int XMLCALL
+ htmlIsBooleanAttr (const xmlChar *name);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_HTML_ENABLED */
+
+#endif /* __HTML_TREE_H__ */
+
diff --git a/libxml2/include/libxml/SAX.h b/libxml2/include/libxml/SAX.h
new file mode 100644
index 000000000..20093ceb6
--- /dev/null
+++ b/libxml2/include/libxml/SAX.h
@@ -0,0 +1,173 @@
+/*
+ * Summary: Old SAX version 1 handler, deprecated
+ * Description: DEPRECATED set of SAX version 1 interfaces used to
+ * build the DOM tree.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+
+#ifndef __XML_SAX_H__
+#define __XML_SAX_H__
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <libxml/xmlversion.h>
+#include <libxml/parser.h>
+#include <libxml/xlink.h>
+
+#ifdef LIBXML_LEGACY_ENABLED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+XMLPUBFUN const xmlChar * XMLCALL
+ getPublicId (void *ctx);
+XMLPUBFUN const xmlChar * XMLCALL
+ getSystemId (void *ctx);
+XMLPUBFUN void XMLCALL
+ setDocumentLocator (void *ctx,
+ xmlSAXLocatorPtr loc);
+
+XMLPUBFUN int XMLCALL
+ getLineNumber (void *ctx);
+XMLPUBFUN int XMLCALL
+ getColumnNumber (void *ctx);
+
+XMLPUBFUN int XMLCALL
+ isStandalone (void *ctx);
+XMLPUBFUN int XMLCALL
+ hasInternalSubset (void *ctx);
+XMLPUBFUN int XMLCALL
+ hasExternalSubset (void *ctx);
+
+XMLPUBFUN void XMLCALL
+ internalSubset (void *ctx,
+ const xmlChar *name,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+XMLPUBFUN void XMLCALL
+ externalSubset (void *ctx,
+ const xmlChar *name,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+XMLPUBFUN xmlEntityPtr XMLCALL
+ getEntity (void *ctx,
+ const xmlChar *name);
+XMLPUBFUN xmlEntityPtr XMLCALL
+ getParameterEntity (void *ctx,
+ const xmlChar *name);
+XMLPUBFUN xmlParserInputPtr XMLCALL
+ resolveEntity (void *ctx,
+ const xmlChar *publicId,
+ const xmlChar *systemId);
+
+XMLPUBFUN void XMLCALL
+ entityDecl (void *ctx,
+ const xmlChar *name,
+ int type,
+ const xmlChar *publicId,
+ const xmlChar *systemId,
+ xmlChar *content);
+XMLPUBFUN void XMLCALL
+ attributeDecl (void *ctx,
+ const xmlChar *elem,
+ const xmlChar *fullname,
+ int type,
+ int def,
+ const xmlChar *defaultValue,
+ xmlEnumerationPtr tree);
+XMLPUBFUN void XMLCALL
+ elementDecl (void *ctx,
+ const xmlChar *name,
+ int type,
+ xmlElementContentPtr content);
+XMLPUBFUN void XMLCALL
+ notationDecl (void *ctx,
+ const xmlChar *name,
+ const xmlChar *publicId,
+ const xmlChar *systemId);
+XMLPUBFUN void XMLCALL
+ unparsedEntityDecl (void *ctx,
+ const xmlChar *name,
+ const xmlChar *publicId,
+ const xmlChar *systemId,
+ const xmlChar *notationName);
+
+XMLPUBFUN void XMLCALL
+ startDocument (void *ctx);
+XMLPUBFUN void XMLCALL
+ endDocument (void *ctx);
+XMLPUBFUN void XMLCALL
+ attribute (void *ctx,
+ const xmlChar *fullname,
+ const xmlChar *value);
+XMLPUBFUN void XMLCALL
+ startElement (void *ctx,
+ const xmlChar *fullname,
+ const xmlChar **atts);
+XMLPUBFUN void XMLCALL
+ endElement (void *ctx,
+ const xmlChar *name);
+XMLPUBFUN void XMLCALL
+ reference (void *ctx,
+ const xmlChar *name);
+XMLPUBFUN void XMLCALL
+ characters (void *ctx,
+ const xmlChar *ch,
+ int len);
+XMLPUBFUN void XMLCALL
+ ignorableWhitespace (void *ctx,
+ const xmlChar *ch,
+ int len);
+XMLPUBFUN void XMLCALL
+ processingInstruction (void *ctx,
+ const xmlChar *target,
+ const xmlChar *data);
+XMLPUBFUN void XMLCALL
+ globalNamespace (void *ctx,
+ const xmlChar *href,
+ const xmlChar *prefix);
+XMLPUBFUN void XMLCALL
+ setNamespace (void *ctx,
+ const xmlChar *name);
+XMLPUBFUN xmlNsPtr XMLCALL
+ getNamespace (void *ctx);
+XMLPUBFUN int XMLCALL
+ checkNamespace (void *ctx,
+ xmlChar *nameSpace);
+XMLPUBFUN void XMLCALL
+ namespaceDecl (void *ctx,
+ const xmlChar *href,
+ const xmlChar *prefix);
+XMLPUBFUN void XMLCALL
+ comment (void *ctx,
+ const xmlChar *value);
+XMLPUBFUN void XMLCALL
+ cdataBlock (void *ctx,
+ const xmlChar *value,
+ int len);
+
+#ifdef LIBXML_SAX1_ENABLED
+XMLPUBFUN void XMLCALL
+ initxmlDefaultSAXHandler (xmlSAXHandlerV1 *hdlr,
+ int warning);
+#ifdef LIBXML_HTML_ENABLED
+XMLPUBFUN void XMLCALL
+ inithtmlDefaultSAXHandler (xmlSAXHandlerV1 *hdlr);
+#endif
+#ifdef LIBXML_DOCB_ENABLED
+XMLPUBFUN void XMLCALL
+ initdocbDefaultSAXHandler (xmlSAXHandlerV1 *hdlr);
+#endif
+#endif /* LIBXML_SAX1_ENABLED */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_LEGACY_ENABLED */
+
+#endif /* __XML_SAX_H__ */
diff --git a/libxml2/include/libxml/SAX2.h b/libxml2/include/libxml/SAX2.h
new file mode 100644
index 000000000..daafd17ef
--- /dev/null
+++ b/libxml2/include/libxml/SAX2.h
@@ -0,0 +1,176 @@
+/*
+ * Summary: SAX2 parser interface used to build the DOM tree
+ * Description: those are the default SAX2 interfaces used by
+ * the library when building DOM tree.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+
+#ifndef __XML_SAX2_H__
+#define __XML_SAX2_H__
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <libxml/xmlversion.h>
+#include <libxml/parser.h>
+#include <libxml/xlink.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlSAX2GetPublicId (void *ctx);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlSAX2GetSystemId (void *ctx);
+XMLPUBFUN void XMLCALL
+ xmlSAX2SetDocumentLocator (void *ctx,
+ xmlSAXLocatorPtr loc);
+
+XMLPUBFUN int XMLCALL
+ xmlSAX2GetLineNumber (void *ctx);
+XMLPUBFUN int XMLCALL
+ xmlSAX2GetColumnNumber (void *ctx);
+
+XMLPUBFUN int XMLCALL
+ xmlSAX2IsStandalone (void *ctx);
+XMLPUBFUN int XMLCALL
+ xmlSAX2HasInternalSubset (void *ctx);
+XMLPUBFUN int XMLCALL
+ xmlSAX2HasExternalSubset (void *ctx);
+
+XMLPUBFUN void XMLCALL
+ xmlSAX2InternalSubset (void *ctx,
+ const xmlChar *name,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+XMLPUBFUN void XMLCALL
+ xmlSAX2ExternalSubset (void *ctx,
+ const xmlChar *name,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+XMLPUBFUN xmlEntityPtr XMLCALL
+ xmlSAX2GetEntity (void *ctx,
+ const xmlChar *name);
+XMLPUBFUN xmlEntityPtr XMLCALL
+ xmlSAX2GetParameterEntity (void *ctx,
+ const xmlChar *name);
+XMLPUBFUN xmlParserInputPtr XMLCALL
+ xmlSAX2ResolveEntity (void *ctx,
+ const xmlChar *publicId,
+ const xmlChar *systemId);
+
+XMLPUBFUN void XMLCALL
+ xmlSAX2EntityDecl (void *ctx,
+ const xmlChar *name,
+ int type,
+ const xmlChar *publicId,
+ const xmlChar *systemId,
+ xmlChar *content);
+XMLPUBFUN void XMLCALL
+ xmlSAX2AttributeDecl (void *ctx,
+ const xmlChar *elem,
+ const xmlChar *fullname,
+ int type,
+ int def,
+ const xmlChar *defaultValue,
+ xmlEnumerationPtr tree);
+XMLPUBFUN void XMLCALL
+ xmlSAX2ElementDecl (void *ctx,
+ const xmlChar *name,
+ int type,
+ xmlElementContentPtr content);
+XMLPUBFUN void XMLCALL
+ xmlSAX2NotationDecl (void *ctx,
+ const xmlChar *name,
+ const xmlChar *publicId,
+ const xmlChar *systemId);
+XMLPUBFUN void XMLCALL
+ xmlSAX2UnparsedEntityDecl (void *ctx,
+ const xmlChar *name,
+ const xmlChar *publicId,
+ const xmlChar *systemId,
+ const xmlChar *notationName);
+
+XMLPUBFUN void XMLCALL
+ xmlSAX2StartDocument (void *ctx);
+XMLPUBFUN void XMLCALL
+ xmlSAX2EndDocument (void *ctx);
+#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)
+XMLPUBFUN void XMLCALL
+ xmlSAX2StartElement (void *ctx,
+ const xmlChar *fullname,
+ const xmlChar **atts);
+XMLPUBFUN void XMLCALL
+ xmlSAX2EndElement (void *ctx,
+ const xmlChar *name);
+#endif /* LIBXML_SAX1_ENABLED or LIBXML_HTML_ENABLED */
+XMLPUBFUN void XMLCALL
+ xmlSAX2StartElementNs (void *ctx,
+ const xmlChar *localname,
+ const xmlChar *prefix,
+ const xmlChar *URI,
+ int nb_namespaces,
+ const xmlChar **namespaces,
+ int nb_attributes,
+ int nb_defaulted,
+ const xmlChar **attributes);
+XMLPUBFUN void XMLCALL
+ xmlSAX2EndElementNs (void *ctx,
+ const xmlChar *localname,
+ const xmlChar *prefix,
+ const xmlChar *URI);
+XMLPUBFUN void XMLCALL
+ xmlSAX2Reference (void *ctx,
+ const xmlChar *name);
+XMLPUBFUN void XMLCALL
+ xmlSAX2Characters (void *ctx,
+ const xmlChar *ch,
+ int len);
+XMLPUBFUN void XMLCALL
+ xmlSAX2IgnorableWhitespace (void *ctx,
+ const xmlChar *ch,
+ int len);
+XMLPUBFUN void XMLCALL
+ xmlSAX2ProcessingInstruction (void *ctx,
+ const xmlChar *target,
+ const xmlChar *data);
+XMLPUBFUN void XMLCALL
+ xmlSAX2Comment (void *ctx,
+ const xmlChar *value);
+XMLPUBFUN void XMLCALL
+ xmlSAX2CDataBlock (void *ctx,
+ const xmlChar *value,
+ int len);
+
+#ifdef LIBXML_SAX1_ENABLED
+XMLPUBFUN int XMLCALL
+ xmlSAXDefaultVersion (int version);
+#endif /* LIBXML_SAX1_ENABLED */
+
+XMLPUBFUN int XMLCALL
+ xmlSAXVersion (xmlSAXHandler *hdlr,
+ int version);
+XMLPUBFUN void XMLCALL
+ xmlSAX2InitDefaultSAXHandler (xmlSAXHandler *hdlr,
+ int warning);
+#ifdef LIBXML_HTML_ENABLED
+XMLPUBFUN void XMLCALL
+ xmlSAX2InitHtmlDefaultSAXHandler(xmlSAXHandler *hdlr);
+XMLPUBFUN void XMLCALL
+ htmlDefaultSAXHandlerInit (void);
+#endif
+#ifdef LIBXML_DOCB_ENABLED
+XMLPUBFUN void XMLCALL
+ xmlSAX2InitDocbDefaultSAXHandler(xmlSAXHandler *hdlr);
+XMLPUBFUN void XMLCALL
+ docbDefaultSAXHandlerInit (void);
+#endif
+XMLPUBFUN void XMLCALL
+ xmlDefaultSAXHandlerInit (void);
+#ifdef __cplusplus
+}
+#endif
+#endif /* __XML_SAX2_H__ */
diff --git a/libxml2/include/libxml/c14n.h b/libxml2/include/libxml/c14n.h
new file mode 100644
index 000000000..b8971d920
--- /dev/null
+++ b/libxml2/include/libxml/c14n.h
@@ -0,0 +1,126 @@
+/*
+ * Summary: Provide Canonical XML and Exclusive XML Canonicalization
+ * Description: the c14n modules provides a
+ *
+ * "Canonical XML" implementation
+ * http://www.w3.org/TR/xml-c14n
+ *
+ * and an
+ *
+ * "Exclusive XML Canonicalization" implementation
+ * http://www.w3.org/TR/xml-exc-c14n
+
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Aleksey Sanin <aleksey@aleksey.com>
+ */
+#ifndef __XML_C14N_H__
+#define __XML_C14N_H__
+#ifdef LIBXML_C14N_ENABLED
+#ifdef LIBXML_OUTPUT_ENABLED
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <libxml/xmlversion.h>
+#include <libxml/tree.h>
+#include <libxml/xpath.h>
+
+/*
+ * XML Canonicazation
+ * http://www.w3.org/TR/xml-c14n
+ *
+ * Exclusive XML Canonicazation
+ * http://www.w3.org/TR/xml-exc-c14n
+ *
+ * Canonical form of an XML document could be created if and only if
+ * a) default attributes (if any) are added to all nodes
+ * b) all character and parsed entity references are resolved
+ * In order to achive this in libxml2 the document MUST be loaded with
+ * following global setings:
+ *
+ * xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
+ * xmlSubstituteEntitiesDefault(1);
+ *
+ * or corresponding parser context setting:
+ * xmlParserCtxtPtr ctxt;
+ *
+ * ...
+ * ctxt->loadsubset = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
+ * ctxt->replaceEntities = 1;
+ * ...
+ */
+
+/*
+ * xmlC14NMode:
+ *
+ * Predefined values for C14N modes
+ *
+ */
+typedef enum {
+ XML_C14N_1_0 = 0, /* Origianal C14N 1.0 spec */
+ XML_C14N_EXCLUSIVE_1_0 = 1, /* Exclusive C14N 1.0 spec */
+ XML_C14N_1_1 = 2 /* C14N 1.1 spec */
+} xmlC14NMode;
+
+XMLPUBFUN int XMLCALL
+ xmlC14NDocSaveTo (xmlDocPtr doc,
+ xmlNodeSetPtr nodes,
+ int mode, /* a xmlC14NMode */
+ xmlChar **inclusive_ns_prefixes,
+ int with_comments,
+ xmlOutputBufferPtr buf);
+
+XMLPUBFUN int XMLCALL
+ xmlC14NDocDumpMemory (xmlDocPtr doc,
+ xmlNodeSetPtr nodes,
+ int mode, /* a xmlC14NMode */
+ xmlChar **inclusive_ns_prefixes,
+ int with_comments,
+ xmlChar **doc_txt_ptr);
+
+XMLPUBFUN int XMLCALL
+ xmlC14NDocSave (xmlDocPtr doc,
+ xmlNodeSetPtr nodes,
+ int mode, /* a xmlC14NMode */
+ xmlChar **inclusive_ns_prefixes,
+ int with_comments,
+ const char* filename,
+ int compression);
+
+
+/**
+ * This is the core C14N function
+ */
+/**
+ * xmlC14NIsVisibleCallback:
+ * @user_data: user data
+ * @node: the curent node
+ * @parent: the parent node
+ *
+ * Signature for a C14N callback on visible nodes
+ *
+ * Returns 1 if the node should be included
+ */
+typedef int (*xmlC14NIsVisibleCallback) (void* user_data,
+ xmlNodePtr node,
+ xmlNodePtr parent);
+
+XMLPUBFUN int XMLCALL
+ xmlC14NExecute (xmlDocPtr doc,
+ xmlC14NIsVisibleCallback is_visible_callback,
+ void* user_data,
+ int mode, /* a xmlC14NMode */
+ xmlChar **inclusive_ns_prefixes,
+ int with_comments,
+ xmlOutputBufferPtr buf);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* LIBXML_OUTPUT_ENABLED */
+#endif /* LIBXML_C14N_ENABLED */
+#endif /* __XML_C14N_H__ */
+
diff --git a/libxml2/include/libxml/catalog.h b/libxml2/include/libxml/catalog.h
new file mode 100644
index 000000000..5a13f51b6
--- /dev/null
+++ b/libxml2/include/libxml/catalog.h
@@ -0,0 +1,182 @@
+/**
+ * Summary: interfaces to the Catalog handling system
+ * Description: the catalog module implements the support for
+ * XML Catalogs and SGML catalogs
+ *
+ * SGML Open Technical Resolution TR9401:1997.
+ * http://www.jclark.com/sp/catalog.htm
+ *
+ * XML Catalogs Working Draft 06 August 2001
+ * http://www.oasis-open.org/committees/entity/spec-2001-08-06.html
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_CATALOG_H__
+#define __XML_CATALOG_H__
+
+#include <stdio.h>
+
+#include <libxml/xmlversion.h>
+#include <libxml/xmlstring.h>
+#include <libxml/tree.h>
+
+#ifdef LIBXML_CATALOG_ENABLED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * XML_CATALOGS_NAMESPACE:
+ *
+ * The namespace for the XML Catalogs elements.
+ */
+#define XML_CATALOGS_NAMESPACE \
+ (const xmlChar *) "urn:oasis:names:tc:entity:xmlns:xml:catalog"
+/**
+ * XML_CATALOG_PI:
+ *
+ * The specific XML Catalog Processing Instuction name.
+ */
+#define XML_CATALOG_PI \
+ (const xmlChar *) "oasis-xml-catalog"
+
+/*
+ * The API is voluntarily limited to general cataloging.
+ */
+typedef enum {
+ XML_CATA_PREFER_NONE = 0,
+ XML_CATA_PREFER_PUBLIC = 1,
+ XML_CATA_PREFER_SYSTEM
+} xmlCatalogPrefer;
+
+typedef enum {
+ XML_CATA_ALLOW_NONE = 0,
+ XML_CATA_ALLOW_GLOBAL = 1,
+ XML_CATA_ALLOW_DOCUMENT = 2,
+ XML_CATA_ALLOW_ALL = 3
+} xmlCatalogAllow;
+
+typedef struct _xmlCatalog xmlCatalog;
+typedef xmlCatalog *xmlCatalogPtr;
+
+/*
+ * Operations on a given catalog.
+ */
+XMLPUBFUN xmlCatalogPtr XMLCALL
+ xmlNewCatalog (int sgml);
+XMLPUBFUN xmlCatalogPtr XMLCALL
+ xmlLoadACatalog (const char *filename);
+XMLPUBFUN xmlCatalogPtr XMLCALL
+ xmlLoadSGMLSuperCatalog (const char *filename);
+XMLPUBFUN int XMLCALL
+ xmlConvertSGMLCatalog (xmlCatalogPtr catal);
+XMLPUBFUN int XMLCALL
+ xmlACatalogAdd (xmlCatalogPtr catal,
+ const xmlChar *type,
+ const xmlChar *orig,
+ const xmlChar *replace);
+XMLPUBFUN int XMLCALL
+ xmlACatalogRemove (xmlCatalogPtr catal,
+ const xmlChar *value);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlACatalogResolve (xmlCatalogPtr catal,
+ const xmlChar *pubID,
+ const xmlChar *sysID);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlACatalogResolveSystem(xmlCatalogPtr catal,
+ const xmlChar *sysID);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlACatalogResolvePublic(xmlCatalogPtr catal,
+ const xmlChar *pubID);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlACatalogResolveURI (xmlCatalogPtr catal,
+ const xmlChar *URI);
+#ifdef LIBXML_OUTPUT_ENABLED
+XMLPUBFUN void XMLCALL
+ xmlACatalogDump (xmlCatalogPtr catal,
+ FILE *out);
+#endif /* LIBXML_OUTPUT_ENABLED */
+XMLPUBFUN void XMLCALL
+ xmlFreeCatalog (xmlCatalogPtr catal);
+XMLPUBFUN int XMLCALL
+ xmlCatalogIsEmpty (xmlCatalogPtr catal);
+
+/*
+ * Global operations.
+ */
+XMLPUBFUN void XMLCALL
+ xmlInitializeCatalog (void);
+XMLPUBFUN int XMLCALL
+ xmlLoadCatalog (const char *filename);
+XMLPUBFUN void XMLCALL
+ xmlLoadCatalogs (const char *paths);
+XMLPUBFUN void XMLCALL
+ xmlCatalogCleanup (void);
+#ifdef LIBXML_OUTPUT_ENABLED
+XMLPUBFUN void XMLCALL
+ xmlCatalogDump (FILE *out);
+#endif /* LIBXML_OUTPUT_ENABLED */
+XMLPUBFUN xmlChar * XMLCALL
+ xmlCatalogResolve (const xmlChar *pubID,
+ const xmlChar *sysID);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlCatalogResolveSystem (const xmlChar *sysID);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlCatalogResolvePublic (const xmlChar *pubID);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlCatalogResolveURI (const xmlChar *URI);
+XMLPUBFUN int XMLCALL
+ xmlCatalogAdd (const xmlChar *type,
+ const xmlChar *orig,
+ const xmlChar *replace);
+XMLPUBFUN int XMLCALL
+ xmlCatalogRemove (const xmlChar *value);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlParseCatalogFile (const char *filename);
+XMLPUBFUN int XMLCALL
+ xmlCatalogConvert (void);
+
+/*
+ * Strictly minimal interfaces for per-document catalogs used
+ * by the parser.
+ */
+XMLPUBFUN void XMLCALL
+ xmlCatalogFreeLocal (void *catalogs);
+XMLPUBFUN void * XMLCALL
+ xmlCatalogAddLocal (void *catalogs,
+ const xmlChar *URL);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlCatalogLocalResolve (void *catalogs,
+ const xmlChar *pubID,
+ const xmlChar *sysID);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlCatalogLocalResolveURI(void *catalogs,
+ const xmlChar *URI);
+/*
+ * Preference settings.
+ */
+XMLPUBFUN int XMLCALL
+ xmlCatalogSetDebug (int level);
+XMLPUBFUN xmlCatalogPrefer XMLCALL
+ xmlCatalogSetDefaultPrefer(xmlCatalogPrefer prefer);
+XMLPUBFUN void XMLCALL
+ xmlCatalogSetDefaults (xmlCatalogAllow allow);
+XMLPUBFUN xmlCatalogAllow XMLCALL
+ xmlCatalogGetDefaults (void);
+
+
+/* DEPRECATED interfaces */
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlCatalogGetSystem (const xmlChar *sysID);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlCatalogGetPublic (const xmlChar *pubID);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* LIBXML_CATALOG_ENABLED */
+#endif /* __XML_CATALOG_H__ */
diff --git a/libxml2/include/libxml/chvalid.h b/libxml2/include/libxml/chvalid.h
new file mode 100644
index 000000000..fb4301698
--- /dev/null
+++ b/libxml2/include/libxml/chvalid.h
@@ -0,0 +1,230 @@
+/*
+ * Summary: Unicode character range checking
+ * Description: this module exports interfaces for the character
+ * range validation APIs
+ *
+ * This file is automatically generated from the cvs source
+ * definition files using the genChRanges.py Python script
+ *
+ * Generation date: Mon Mar 27 11:09:48 2006
+ * Sources: chvalid.def
+ * Author: William Brack <wbrack@mmm.com.hk>
+ */
+
+#ifndef __XML_CHVALID_H__
+#define __XML_CHVALID_H__
+
+#include <libxml/xmlversion.h>
+#include <libxml/xmlstring.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Define our typedefs and structures
+ *
+ */
+typedef struct _xmlChSRange xmlChSRange;
+typedef xmlChSRange *xmlChSRangePtr;
+struct _xmlChSRange {
+ unsigned short low;
+ unsigned short high;
+};
+
+typedef struct _xmlChLRange xmlChLRange;
+typedef xmlChLRange *xmlChLRangePtr;
+struct _xmlChLRange {
+ unsigned int low;
+ unsigned int high;
+};
+
+typedef struct _xmlChRangeGroup xmlChRangeGroup;
+typedef xmlChRangeGroup *xmlChRangeGroupPtr;
+struct _xmlChRangeGroup {
+ int nbShortRange;
+ int nbLongRange;
+ const xmlChSRange *shortRange; /* points to an array of ranges */
+ const xmlChLRange *longRange;
+};
+
+/**
+ * Range checking routine
+ */
+XMLPUBFUN int XMLCALL
+ xmlCharInRange(unsigned int val, const xmlChRangeGroup *group);
+
+
+/**
+ * xmlIsBaseChar_ch:
+ * @c: char to validate
+ *
+ * Automatically generated by genChRanges.py
+ */
+#define xmlIsBaseChar_ch(c) (((0x41 <= (c)) && ((c) <= 0x5a)) || \
+ ((0x61 <= (c)) && ((c) <= 0x7a)) || \
+ ((0xc0 <= (c)) && ((c) <= 0xd6)) || \
+ ((0xd8 <= (c)) && ((c) <= 0xf6)) || \
+ (0xf8 <= (c)))
+
+/**
+ * xmlIsBaseCharQ:
+ * @c: char to validate
+ *
+ * Automatically generated by genChRanges.py
+ */
+#define xmlIsBaseCharQ(c) (((c) < 0x100) ? \
+ xmlIsBaseChar_ch((c)) : \
+ xmlCharInRange((c), &xmlIsBaseCharGroup))
+
+XMLPUBVAR const xmlChRangeGroup xmlIsBaseCharGroup;
+
+/**
+ * xmlIsBlank_ch:
+ * @c: char to validate
+ *
+ * Automatically generated by genChRanges.py
+ */
+#define xmlIsBlank_ch(c) (((c) == 0x20) || \
+ ((0x9 <= (c)) && ((c) <= 0xa)) || \
+ ((c) == 0xd))
+
+/**
+ * xmlIsBlankQ:
+ * @c: char to validate
+ *
+ * Automatically generated by genChRanges.py
+ */
+#define xmlIsBlankQ(c) (((c) < 0x100) ? \
+ xmlIsBlank_ch((c)) : 0)
+
+
+/**
+ * xmlIsChar_ch:
+ * @c: char to validate
+ *
+ * Automatically generated by genChRanges.py
+ */
+#define xmlIsChar_ch(c) (((0x9 <= (c)) && ((c) <= 0xa)) || \
+ ((c) == 0xd) || \
+ (0x20 <= (c)))
+
+/**
+ * xmlIsCharQ:
+ * @c: char to validate
+ *
+ * Automatically generated by genChRanges.py
+ */
+#define xmlIsCharQ(c) (((c) < 0x100) ? \
+ xmlIsChar_ch((c)) :\
+ (((0x100 <= (c)) && ((c) <= 0xd7ff)) || \
+ ((0xe000 <= (c)) && ((c) <= 0xfffd)) || \
+ ((0x10000 <= (c)) && ((c) <= 0x10ffff))))
+
+XMLPUBVAR const xmlChRangeGroup xmlIsCharGroup;
+
+/**
+ * xmlIsCombiningQ:
+ * @c: char to validate
+ *
+ * Automatically generated by genChRanges.py
+ */
+#define xmlIsCombiningQ(c) (((c) < 0x100) ? \
+ 0 : \
+ xmlCharInRange((c), &xmlIsCombiningGroup))
+
+XMLPUBVAR const xmlChRangeGroup xmlIsCombiningGroup;
+
+/**
+ * xmlIsDigit_ch:
+ * @c: char to validate
+ *
+ * Automatically generated by genChRanges.py
+ */
+#define xmlIsDigit_ch(c) (((0x30 <= (c)) && ((c) <= 0x39)))
+
+/**
+ * xmlIsDigitQ:
+ * @c: char to validate
+ *
+ * Automatically generated by genChRanges.py
+ */
+#define xmlIsDigitQ(c) (((c) < 0x100) ? \
+ xmlIsDigit_ch((c)) : \
+ xmlCharInRange((c), &xmlIsDigitGroup))
+
+XMLPUBVAR const xmlChRangeGroup xmlIsDigitGroup;
+
+/**
+ * xmlIsExtender_ch:
+ * @c: char to validate
+ *
+ * Automatically generated by genChRanges.py
+ */
+#define xmlIsExtender_ch(c) (((c) == 0xb7))
+
+/**
+ * xmlIsExtenderQ:
+ * @c: char to validate
+ *
+ * Automatically generated by genChRanges.py
+ */
+#define xmlIsExtenderQ(c) (((c) < 0x100) ? \
+ xmlIsExtender_ch((c)) : \
+ xmlCharInRange((c), &xmlIsExtenderGroup))
+
+XMLPUBVAR const xmlChRangeGroup xmlIsExtenderGroup;
+
+/**
+ * xmlIsIdeographicQ:
+ * @c: char to validate
+ *
+ * Automatically generated by genChRanges.py
+ */
+#define xmlIsIdeographicQ(c) (((c) < 0x100) ? \
+ 0 :\
+ (((0x4e00 <= (c)) && ((c) <= 0x9fa5)) || \
+ ((c) == 0x3007) || \
+ ((0x3021 <= (c)) && ((c) <= 0x3029))))
+
+XMLPUBVAR const xmlChRangeGroup xmlIsIdeographicGroup;
+XMLPUBVAR const unsigned char xmlIsPubidChar_tab[256];
+
+/**
+ * xmlIsPubidChar_ch:
+ * @c: char to validate
+ *
+ * Automatically generated by genChRanges.py
+ */
+#define xmlIsPubidChar_ch(c) (xmlIsPubidChar_tab[(c)])
+
+/**
+ * xmlIsPubidCharQ:
+ * @c: char to validate
+ *
+ * Automatically generated by genChRanges.py
+ */
+#define xmlIsPubidCharQ(c) (((c) < 0x100) ? \
+ xmlIsPubidChar_ch((c)) : 0)
+
+XMLPUBFUN int XMLCALL
+ xmlIsBaseChar(unsigned int ch);
+XMLPUBFUN int XMLCALL
+ xmlIsBlank(unsigned int ch);
+XMLPUBFUN int XMLCALL
+ xmlIsChar(unsigned int ch);
+XMLPUBFUN int XMLCALL
+ xmlIsCombining(unsigned int ch);
+XMLPUBFUN int XMLCALL
+ xmlIsDigit(unsigned int ch);
+XMLPUBFUN int XMLCALL
+ xmlIsExtender(unsigned int ch);
+XMLPUBFUN int XMLCALL
+ xmlIsIdeographic(unsigned int ch);
+XMLPUBFUN int XMLCALL
+ xmlIsPubidChar(unsigned int ch);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* __XML_CHVALID_H__ */
diff --git a/libxml2/include/libxml/debugXML.h b/libxml2/include/libxml/debugXML.h
new file mode 100644
index 000000000..5b3be13d8
--- /dev/null
+++ b/libxml2/include/libxml/debugXML.h
@@ -0,0 +1,217 @@
+/*
+ * Summary: Tree debugging APIs
+ * Description: Interfaces to a set of routines used for debugging the tree
+ * produced by the XML parser.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __DEBUG_XML__
+#define __DEBUG_XML__
+#include <stdio.h>
+#include <libxml/xmlversion.h>
+#include <libxml/tree.h>
+
+#ifdef LIBXML_DEBUG_ENABLED
+
+#include <libxml/xpath.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * The standard Dump routines.
+ */
+XMLPUBFUN void XMLCALL
+ xmlDebugDumpString (FILE *output,
+ const xmlChar *str);
+XMLPUBFUN void XMLCALL
+ xmlDebugDumpAttr (FILE *output,
+ xmlAttrPtr attr,
+ int depth);
+XMLPUBFUN void XMLCALL
+ xmlDebugDumpAttrList (FILE *output,
+ xmlAttrPtr attr,
+ int depth);
+XMLPUBFUN void XMLCALL
+ xmlDebugDumpOneNode (FILE *output,
+ xmlNodePtr node,
+ int depth);
+XMLPUBFUN void XMLCALL
+ xmlDebugDumpNode (FILE *output,
+ xmlNodePtr node,
+ int depth);
+XMLPUBFUN void XMLCALL
+ xmlDebugDumpNodeList (FILE *output,
+ xmlNodePtr node,
+ int depth);
+XMLPUBFUN void XMLCALL
+ xmlDebugDumpDocumentHead(FILE *output,
+ xmlDocPtr doc);
+XMLPUBFUN void XMLCALL
+ xmlDebugDumpDocument (FILE *output,
+ xmlDocPtr doc);
+XMLPUBFUN void XMLCALL
+ xmlDebugDumpDTD (FILE *output,
+ xmlDtdPtr dtd);
+XMLPUBFUN void XMLCALL
+ xmlDebugDumpEntities (FILE *output,
+ xmlDocPtr doc);
+
+/****************************************************************
+ * *
+ * Checking routines *
+ * *
+ ****************************************************************/
+
+XMLPUBFUN int XMLCALL
+ xmlDebugCheckDocument (FILE * output,
+ xmlDocPtr doc);
+
+/****************************************************************
+ * *
+ * XML shell helpers *
+ * *
+ ****************************************************************/
+
+XMLPUBFUN void XMLCALL
+ xmlLsOneNode (FILE *output, xmlNodePtr node);
+XMLPUBFUN int XMLCALL
+ xmlLsCountNode (xmlNodePtr node);
+
+XMLPUBFUN const char * XMLCALL
+ xmlBoolToText (int boolval);
+
+/****************************************************************
+ * *
+ * The XML shell related structures and functions *
+ * *
+ ****************************************************************/
+
+#ifdef LIBXML_XPATH_ENABLED
+/**
+ * xmlShellReadlineFunc:
+ * @prompt: a string prompt
+ *
+ * This is a generic signature for the XML shell input function.
+ *
+ * Returns a string which will be freed by the Shell.
+ */
+typedef char * (* xmlShellReadlineFunc)(char *prompt);
+
+/**
+ * xmlShellCtxt:
+ *
+ * A debugging shell context.
+ * TODO: add the defined function tables.
+ */
+typedef struct _xmlShellCtxt xmlShellCtxt;
+typedef xmlShellCtxt *xmlShellCtxtPtr;
+struct _xmlShellCtxt {
+ char *filename;
+ xmlDocPtr doc;
+ xmlNodePtr node;
+ xmlXPathContextPtr pctxt;
+ int loaded;
+ FILE *output;
+ xmlShellReadlineFunc input;
+};
+
+/**
+ * xmlShellCmd:
+ * @ctxt: a shell context
+ * @arg: a string argument
+ * @node: a first node
+ * @node2: a second node
+ *
+ * This is a generic signature for the XML shell functions.
+ *
+ * Returns an int, negative returns indicating errors.
+ */
+typedef int (* xmlShellCmd) (xmlShellCtxtPtr ctxt,
+ char *arg,
+ xmlNodePtr node,
+ xmlNodePtr node2);
+
+XMLPUBFUN void XMLCALL
+ xmlShellPrintXPathError (int errorType,
+ const char *arg);
+XMLPUBFUN void XMLCALL
+ xmlShellPrintXPathResult(xmlXPathObjectPtr list);
+XMLPUBFUN int XMLCALL
+ xmlShellList (xmlShellCtxtPtr ctxt,
+ char *arg,
+ xmlNodePtr node,
+ xmlNodePtr node2);
+XMLPUBFUN int XMLCALL
+ xmlShellBase (xmlShellCtxtPtr ctxt,
+ char *arg,
+ xmlNodePtr node,
+ xmlNodePtr node2);
+XMLPUBFUN int XMLCALL
+ xmlShellDir (xmlShellCtxtPtr ctxt,
+ char *arg,
+ xmlNodePtr node,
+ xmlNodePtr node2);
+XMLPUBFUN int XMLCALL
+ xmlShellLoad (xmlShellCtxtPtr ctxt,
+ char *filename,
+ xmlNodePtr node,
+ xmlNodePtr node2);
+#ifdef LIBXML_OUTPUT_ENABLED
+XMLPUBFUN void XMLCALL
+ xmlShellPrintNode (xmlNodePtr node);
+XMLPUBFUN int XMLCALL
+ xmlShellCat (xmlShellCtxtPtr ctxt,
+ char *arg,
+ xmlNodePtr node,
+ xmlNodePtr node2);
+XMLPUBFUN int XMLCALL
+ xmlShellWrite (xmlShellCtxtPtr ctxt,
+ char *filename,
+ xmlNodePtr node,
+ xmlNodePtr node2);
+XMLPUBFUN int XMLCALL
+ xmlShellSave (xmlShellCtxtPtr ctxt,
+ char *filename,
+ xmlNodePtr node,
+ xmlNodePtr node2);
+#endif /* LIBXML_OUTPUT_ENABLED */
+#ifdef LIBXML_VALID_ENABLED
+XMLPUBFUN int XMLCALL
+ xmlShellValidate (xmlShellCtxtPtr ctxt,
+ char *dtd,
+ xmlNodePtr node,
+ xmlNodePtr node2);
+#endif /* LIBXML_VALID_ENABLED */
+XMLPUBFUN int XMLCALL
+ xmlShellDu (xmlShellCtxtPtr ctxt,
+ char *arg,
+ xmlNodePtr tree,
+ xmlNodePtr node2);
+XMLPUBFUN int XMLCALL
+ xmlShellPwd (xmlShellCtxtPtr ctxt,
+ char *buffer,
+ xmlNodePtr node,
+ xmlNodePtr node2);
+
+/*
+ * The Shell interface.
+ */
+XMLPUBFUN void XMLCALL
+ xmlShell (xmlDocPtr doc,
+ char *filename,
+ xmlShellReadlineFunc input,
+ FILE *output);
+
+#endif /* LIBXML_XPATH_ENABLED */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_DEBUG_ENABLED */
+#endif /* __DEBUG_XML__ */
diff --git a/libxml2/include/libxml/dict.h b/libxml2/include/libxml/dict.h
new file mode 100644
index 000000000..7022ec8be
--- /dev/null
+++ b/libxml2/include/libxml/dict.h
@@ -0,0 +1,80 @@
+/*
+ * Summary: string dictionnary
+ * Description: dictionary of reusable strings, just used to avoid allocation
+ * and freeing operations.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_DICT_H__
+#define __XML_DICT_H__
+
+#include <limits.h>
+#include <libxml/xmlversion.h>
+#include <libxml/tree.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * The dictionnary.
+ */
+typedef struct _xmlDict xmlDict;
+typedef xmlDict *xmlDictPtr;
+
+/*
+ * Initializer
+ */
+XMLPUBFUN int XMLCALL xmlInitializeDict(void);
+
+/*
+ * Constructor and destructor.
+ */
+XMLPUBFUN xmlDictPtr XMLCALL
+ xmlDictCreate (void);
+XMLPUBFUN size_t XMLCALL
+ xmlDictSetLimit (xmlDictPtr dict,
+ size_t limit);
+XMLPUBFUN size_t XMLCALL
+ xmlDictGetUsage (xmlDictPtr dict);
+XMLPUBFUN xmlDictPtr XMLCALL
+ xmlDictCreateSub(xmlDictPtr sub);
+XMLPUBFUN int XMLCALL
+ xmlDictReference(xmlDictPtr dict);
+XMLPUBFUN void XMLCALL
+ xmlDictFree (xmlDictPtr dict);
+
+/*
+ * Lookup of entry in the dictionnary.
+ */
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlDictLookup (xmlDictPtr dict,
+ const xmlChar *name,
+ int len);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlDictExists (xmlDictPtr dict,
+ const xmlChar *name,
+ int len);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlDictQLookup (xmlDictPtr dict,
+ const xmlChar *prefix,
+ const xmlChar *name);
+XMLPUBFUN int XMLCALL
+ xmlDictOwns (xmlDictPtr dict,
+ const xmlChar *str);
+XMLPUBFUN int XMLCALL
+ xmlDictSize (xmlDictPtr dict);
+
+/*
+ * Cleanup function
+ */
+XMLPUBFUN void XMLCALL
+ xmlDictCleanup (void);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* ! __XML_DICT_H__ */
diff --git a/libxml2/include/libxml/encoding.h b/libxml2/include/libxml/encoding.h
new file mode 100644
index 000000000..7967cc66a
--- /dev/null
+++ b/libxml2/include/libxml/encoding.h
@@ -0,0 +1,240 @@
+/*
+ * Summary: interface for the encoding conversion functions
+ * Description: interface for the encoding conversion functions needed for
+ * XML basic encoding and iconv() support.
+ *
+ * Related specs are
+ * rfc2044 (UTF-8 and UTF-16) F. Yergeau Alis Technologies
+ * [ISO-10646] UTF-8 and UTF-16 in Annexes
+ * [ISO-8859-1] ISO Latin-1 characters codes.
+ * [UNICODE] The Unicode Consortium, "The Unicode Standard --
+ * Worldwide Character Encoding -- Version 1.0", Addison-
+ * Wesley, Volume 1, 1991, Volume 2, 1992. UTF-8 is
+ * described in Unicode Technical Report #4.
+ * [US-ASCII] Coded Character Set--7-bit American Standard Code for
+ * Information Interchange, ANSI X3.4-1986.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_CHAR_ENCODING_H__
+#define __XML_CHAR_ENCODING_H__
+
+#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_ICONV_ENABLED
+#include <iconv.h>
+#endif
+#ifdef LIBXML_ICU_ENABLED
+#include <unicode/ucnv.h>
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * xmlCharEncoding:
+ *
+ * Predefined values for some standard encodings.
+ * Libxml does not do beforehand translation on UTF8 and ISOLatinX.
+ * It also supports ASCII, ISO-8859-1, and UTF16 (LE and BE) by default.
+ *
+ * Anything else would have to be translated to UTF8 before being
+ * given to the parser itself. The BOM for UTF16 and the encoding
+ * declaration are looked at and a converter is looked for at that
+ * point. If not found the parser stops here as asked by the XML REC. A
+ * converter can be registered by the user using xmlRegisterCharEncodingHandler
+ * but the current form doesn't allow stateful transcoding (a serious
+ * problem agreed !). If iconv has been found it will be used
+ * automatically and allow stateful transcoding, the simplest is then
+ * to be sure to enable iconv and to provide iconv libs for the encoding
+ * support needed.
+ *
+ * Note that the generic "UTF-16" is not a predefined value. Instead, only
+ * the specific UTF-16LE and UTF-16BE are present.
+ */
+typedef enum {
+ XML_CHAR_ENCODING_ERROR= -1, /* No char encoding detected */
+ XML_CHAR_ENCODING_NONE= 0, /* No char encoding detected */
+ XML_CHAR_ENCODING_UTF8= 1, /* UTF-8 */
+ XML_CHAR_ENCODING_UTF16LE= 2, /* UTF-16 little endian */
+ XML_CHAR_ENCODING_UTF16BE= 3, /* UTF-16 big endian */
+ XML_CHAR_ENCODING_UCS4LE= 4, /* UCS-4 little endian */
+ XML_CHAR_ENCODING_UCS4BE= 5, /* UCS-4 big endian */
+ XML_CHAR_ENCODING_EBCDIC= 6, /* EBCDIC uh! */
+ XML_CHAR_ENCODING_UCS4_2143=7, /* UCS-4 unusual ordering */
+ XML_CHAR_ENCODING_UCS4_3412=8, /* UCS-4 unusual ordering */
+ XML_CHAR_ENCODING_UCS2= 9, /* UCS-2 */
+ XML_CHAR_ENCODING_8859_1= 10,/* ISO-8859-1 ISO Latin 1 */
+ XML_CHAR_ENCODING_8859_2= 11,/* ISO-8859-2 ISO Latin 2 */
+ XML_CHAR_ENCODING_8859_3= 12,/* ISO-8859-3 */
+ XML_CHAR_ENCODING_8859_4= 13,/* ISO-8859-4 */
+ XML_CHAR_ENCODING_8859_5= 14,/* ISO-8859-5 */
+ XML_CHAR_ENCODING_8859_6= 15,/* ISO-8859-6 */
+ XML_CHAR_ENCODING_8859_7= 16,/* ISO-8859-7 */
+ XML_CHAR_ENCODING_8859_8= 17,/* ISO-8859-8 */
+ XML_CHAR_ENCODING_8859_9= 18,/* ISO-8859-9 */
+ XML_CHAR_ENCODING_2022_JP= 19,/* ISO-2022-JP */
+ XML_CHAR_ENCODING_SHIFT_JIS=20,/* Shift_JIS */
+ XML_CHAR_ENCODING_EUC_JP= 21,/* EUC-JP */
+ XML_CHAR_ENCODING_ASCII= 22 /* pure ASCII */
+} xmlCharEncoding;
+
+/**
+ * xmlCharEncodingInputFunc:
+ * @out: a pointer to an array of bytes to store the UTF-8 result
+ * @outlen: the length of @out
+ * @in: a pointer to an array of chars in the original encoding
+ * @inlen: the length of @in
+ *
+ * Take a block of chars in the original encoding and try to convert
+ * it to an UTF-8 block of chars out.
+ *
+ * Returns the number of bytes written, -1 if lack of space, or -2
+ * if the transcoding failed.
+ * The value of @inlen after return is the number of octets consumed
+ * if the return value is positive, else unpredictiable.
+ * The value of @outlen after return is the number of octets consumed.
+ */
+typedef int (* xmlCharEncodingInputFunc)(unsigned char *out, int *outlen,
+ const unsigned char *in, int *inlen);
+
+
+/**
+ * xmlCharEncodingOutputFunc:
+ * @out: a pointer to an array of bytes to store the result
+ * @outlen: the length of @out
+ * @in: a pointer to an array of UTF-8 chars
+ * @inlen: the length of @in
+ *
+ * Take a block of UTF-8 chars in and try to convert it to another
+ * encoding.
+ * Note: a first call designed to produce heading info is called with
+ * in = NULL. If stateful this should also initialize the encoder state.
+ *
+ * Returns the number of bytes written, -1 if lack of space, or -2
+ * if the transcoding failed.
+ * The value of @inlen after return is the number of octets consumed
+ * if the return value is positive, else unpredictiable.
+ * The value of @outlen after return is the number of octets produced.
+ */
+typedef int (* xmlCharEncodingOutputFunc)(unsigned char *out, int *outlen,
+ const unsigned char *in, int *inlen);
+
+
+/*
+ * Block defining the handlers for non UTF-8 encodings.
+ * If iconv is supported, there are two extra fields.
+ */
+#ifdef LIBXML_ICU_ENABLED
+struct _uconv_t {
+ UConverter *uconv; /* for conversion between an encoding and UTF-16 */
+ UConverter *utf8; /* for conversion between UTF-8 and UTF-16 */
+};
+typedef struct _uconv_t uconv_t;
+#endif
+
+typedef struct _xmlCharEncodingHandler xmlCharEncodingHandler;
+typedef xmlCharEncodingHandler *xmlCharEncodingHandlerPtr;
+struct _xmlCharEncodingHandler {
+ char *name;
+ xmlCharEncodingInputFunc input;
+ xmlCharEncodingOutputFunc output;
+#ifdef LIBXML_ICONV_ENABLED
+ iconv_t iconv_in;
+ iconv_t iconv_out;
+#endif /* LIBXML_ICONV_ENABLED */
+#ifdef LIBXML_ICU_ENABLED
+ uconv_t *uconv_in;
+ uconv_t *uconv_out;
+#endif /* LIBXML_ICU_ENABLED */
+};
+
+#ifdef __cplusplus
+}
+#endif
+#include <libxml/tree.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Interfaces for encoding handlers.
+ */
+XMLPUBFUN void XMLCALL
+ xmlInitCharEncodingHandlers (void);
+XMLPUBFUN void XMLCALL
+ xmlCleanupCharEncodingHandlers (void);
+XMLPUBFUN void XMLCALL
+ xmlRegisterCharEncodingHandler (xmlCharEncodingHandlerPtr handler);
+XMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL
+ xmlGetCharEncodingHandler (xmlCharEncoding enc);
+XMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL
+ xmlFindCharEncodingHandler (const char *name);
+XMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL
+ xmlNewCharEncodingHandler (const char *name,
+ xmlCharEncodingInputFunc input,
+ xmlCharEncodingOutputFunc output);
+
+/*
+ * Interfaces for encoding names and aliases.
+ */
+XMLPUBFUN int XMLCALL
+ xmlAddEncodingAlias (const char *name,
+ const char *alias);
+XMLPUBFUN int XMLCALL
+ xmlDelEncodingAlias (const char *alias);
+XMLPUBFUN const char * XMLCALL
+ xmlGetEncodingAlias (const char *alias);
+XMLPUBFUN void XMLCALL
+ xmlCleanupEncodingAliases (void);
+XMLPUBFUN xmlCharEncoding XMLCALL
+ xmlParseCharEncoding (const char *name);
+XMLPUBFUN const char * XMLCALL
+ xmlGetCharEncodingName (xmlCharEncoding enc);
+
+/*
+ * Interfaces directly used by the parsers.
+ */
+XMLPUBFUN xmlCharEncoding XMLCALL
+ xmlDetectCharEncoding (const unsigned char *in,
+ int len);
+
+XMLPUBFUN int XMLCALL
+ xmlCharEncOutFunc (xmlCharEncodingHandler *handler,
+ xmlBufferPtr out,
+ xmlBufferPtr in);
+
+XMLPUBFUN int XMLCALL
+ xmlCharEncInFunc (xmlCharEncodingHandler *handler,
+ xmlBufferPtr out,
+ xmlBufferPtr in);
+XMLPUBFUN int XMLCALL
+ xmlCharEncFirstLine (xmlCharEncodingHandler *handler,
+ xmlBufferPtr out,
+ xmlBufferPtr in);
+XMLPUBFUN int XMLCALL
+ xmlCharEncCloseFunc (xmlCharEncodingHandler *handler);
+
+/*
+ * Export a few useful functions
+ */
+#ifdef LIBXML_OUTPUT_ENABLED
+XMLPUBFUN int XMLCALL
+ UTF8Toisolat1 (unsigned char *out,
+ int *outlen,
+ const unsigned char *in,
+ int *inlen);
+#endif /* LIBXML_OUTPUT_ENABLED */
+XMLPUBFUN int XMLCALL
+ isolat1ToUTF8 (unsigned char *out,
+ int *outlen,
+ const unsigned char *in,
+ int *inlen);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_CHAR_ENCODING_H__ */
diff --git a/libxml2/include/libxml/entities.h b/libxml2/include/libxml/entities.h
new file mode 100644
index 000000000..1e9118975
--- /dev/null
+++ b/libxml2/include/libxml/entities.h
@@ -0,0 +1,151 @@
+/*
+ * Summary: interface for the XML entities handling
+ * Description: this module provides some of the entity API needed
+ * for the parser and applications.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_ENTITIES_H__
+#define __XML_ENTITIES_H__
+
+#include <libxml/xmlversion.h>
+#include <libxml/tree.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * The different valid entity types.
+ */
+typedef enum {
+ XML_INTERNAL_GENERAL_ENTITY = 1,
+ XML_EXTERNAL_GENERAL_PARSED_ENTITY = 2,
+ XML_EXTERNAL_GENERAL_UNPARSED_ENTITY = 3,
+ XML_INTERNAL_PARAMETER_ENTITY = 4,
+ XML_EXTERNAL_PARAMETER_ENTITY = 5,
+ XML_INTERNAL_PREDEFINED_ENTITY = 6
+} xmlEntityType;
+
+/*
+ * An unit of storage for an entity, contains the string, the value
+ * and the linkind data needed for the linking in the hash table.
+ */
+
+struct _xmlEntity {
+ void *_private; /* application data */
+ xmlElementType type; /* XML_ENTITY_DECL, must be second ! */
+ const xmlChar *name; /* Entity name */
+ struct _xmlNode *children; /* First child link */
+ struct _xmlNode *last; /* Last child link */
+ struct _xmlDtd *parent; /* -> DTD */
+ struct _xmlNode *next; /* next sibling link */
+ struct _xmlNode *prev; /* previous sibling link */
+ struct _xmlDoc *doc; /* the containing document */
+
+ xmlChar *orig; /* content without ref substitution */
+ xmlChar *content; /* content or ndata if unparsed */
+ int length; /* the content length */
+ xmlEntityType etype; /* The entity type */
+ const xmlChar *ExternalID; /* External identifier for PUBLIC */
+ const xmlChar *SystemID; /* URI for a SYSTEM or PUBLIC Entity */
+
+ struct _xmlEntity *nexte; /* unused */
+ const xmlChar *URI; /* the full URI as computed */
+ int owner; /* does the entity own the childrens */
+ int checked; /* was the entity content checked */
+ /* this is also used to count entites
+ * references done from that entity
+ * and if it contains '<' */
+};
+
+/*
+ * All entities are stored in an hash table.
+ * There is 2 separate hash tables for global and parameter entities.
+ */
+
+typedef struct _xmlHashTable xmlEntitiesTable;
+typedef xmlEntitiesTable *xmlEntitiesTablePtr;
+
+/*
+ * External functions:
+ */
+
+#ifdef LIBXML_LEGACY_ENABLED
+XMLPUBFUN void XMLCALL
+ xmlInitializePredefinedEntities (void);
+#endif /* LIBXML_LEGACY_ENABLED */
+
+XMLPUBFUN xmlEntityPtr XMLCALL
+ xmlNewEntity (xmlDocPtr doc,
+ const xmlChar *name,
+ int type,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID,
+ const xmlChar *content);
+XMLPUBFUN xmlEntityPtr XMLCALL
+ xmlAddDocEntity (xmlDocPtr doc,
+ const xmlChar *name,
+ int type,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID,
+ const xmlChar *content);
+XMLPUBFUN xmlEntityPtr XMLCALL
+ xmlAddDtdEntity (xmlDocPtr doc,
+ const xmlChar *name,
+ int type,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID,
+ const xmlChar *content);
+XMLPUBFUN xmlEntityPtr XMLCALL
+ xmlGetPredefinedEntity (const xmlChar *name);
+XMLPUBFUN xmlEntityPtr XMLCALL
+ xmlGetDocEntity (xmlDocPtr doc,
+ const xmlChar *name);
+XMLPUBFUN xmlEntityPtr XMLCALL
+ xmlGetDtdEntity (xmlDocPtr doc,
+ const xmlChar *name);
+XMLPUBFUN xmlEntityPtr XMLCALL
+ xmlGetParameterEntity (xmlDocPtr doc,
+ const xmlChar *name);
+#ifdef LIBXML_LEGACY_ENABLED
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlEncodeEntities (xmlDocPtr doc,
+ const xmlChar *input);
+#endif /* LIBXML_LEGACY_ENABLED */
+XMLPUBFUN xmlChar * XMLCALL
+ xmlEncodeEntitiesReentrant(xmlDocPtr doc,
+ const xmlChar *input);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlEncodeSpecialChars (xmlDocPtr doc,
+ const xmlChar *input);
+XMLPUBFUN xmlEntitiesTablePtr XMLCALL
+ xmlCreateEntitiesTable (void);
+#ifdef LIBXML_TREE_ENABLED
+XMLPUBFUN xmlEntitiesTablePtr XMLCALL
+ xmlCopyEntitiesTable (xmlEntitiesTablePtr table);
+#endif /* LIBXML_TREE_ENABLED */
+XMLPUBFUN void XMLCALL
+ xmlFreeEntitiesTable (xmlEntitiesTablePtr table);
+#ifdef LIBXML_OUTPUT_ENABLED
+XMLPUBFUN void XMLCALL
+ xmlDumpEntitiesTable (xmlBufferPtr buf,
+ xmlEntitiesTablePtr table);
+XMLPUBFUN void XMLCALL
+ xmlDumpEntityDecl (xmlBufferPtr buf,
+ xmlEntityPtr ent);
+#endif /* LIBXML_OUTPUT_ENABLED */
+#ifdef LIBXML_LEGACY_ENABLED
+XMLPUBFUN void XMLCALL
+ xmlCleanupPredefinedEntities(void);
+#endif /* LIBXML_LEGACY_ENABLED */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+# endif /* __XML_ENTITIES_H__ */
diff --git a/libxml2/include/libxml/globals.h b/libxml2/include/libxml/globals.h
new file mode 100644
index 000000000..9d688e0d3
--- /dev/null
+++ b/libxml2/include/libxml/globals.h
@@ -0,0 +1,502 @@
+/*
+ * Summary: interface for all global variables of the library
+ * Description: all the global variables and thread handling for
+ * those variables is handled by this module.
+ *
+ * The bottom of this file is automatically generated by build_glob.py
+ * based on the description file global.data
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Gary Pennington <Gary.Pennington@uk.sun.com>, Daniel Veillard
+ */
+
+#ifndef __XML_GLOBALS_H
+#define __XML_GLOBALS_H
+
+#include <libxml/xmlversion.h>
+#include <libxml/parser.h>
+#include <libxml/xmlerror.h>
+#include <libxml/SAX.h>
+#include <libxml/SAX2.h>
+#include <libxml/xmlmemory.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+XMLPUBFUN void XMLCALL xmlInitGlobals(void);
+XMLPUBFUN void XMLCALL xmlCleanupGlobals(void);
+
+/**
+ * xmlParserInputBufferCreateFilenameFunc:
+ * @URI: the URI to read from
+ * @enc: the requested source encoding
+ *
+ * Signature for the function doing the lookup for a suitable input method
+ * corresponding to an URI.
+ *
+ * Returns the new xmlParserInputBufferPtr in case of success or NULL if no
+ * method was found.
+ */
+typedef xmlParserInputBufferPtr (*xmlParserInputBufferCreateFilenameFunc) (const char *URI, xmlCharEncoding enc);
+
+/**
+ * xmlOutputBufferCreateFilenameFunc:
+ * @URI: the URI to write to
+ * @enc: the requested target encoding
+ *
+ * Signature for the function doing the lookup for a suitable output method
+ * corresponding to an URI.
+ *
+ * Returns the new xmlOutputBufferPtr in case of success or NULL if no
+ * method was found.
+ */
+typedef xmlOutputBufferPtr (*xmlOutputBufferCreateFilenameFunc) (const char *URI, xmlCharEncodingHandlerPtr encoder, int compression);
+
+XMLPUBFUN xmlParserInputBufferCreateFilenameFunc
+XMLCALL xmlParserInputBufferCreateFilenameDefault (xmlParserInputBufferCreateFilenameFunc func);
+XMLPUBFUN xmlOutputBufferCreateFilenameFunc
+XMLCALL xmlOutputBufferCreateFilenameDefault (xmlOutputBufferCreateFilenameFunc func);
+
+/*
+ * Externally global symbols which need to be protected for backwards
+ * compatibility support.
+ */
+
+#undef docbDefaultSAXHandler
+#undef htmlDefaultSAXHandler
+#undef oldXMLWDcompatibility
+#undef xmlBufferAllocScheme
+#undef xmlDefaultBufferSize
+#undef xmlDefaultSAXHandler
+#undef xmlDefaultSAXLocator
+#undef xmlDoValidityCheckingDefaultValue
+#undef xmlFree
+#undef xmlGenericError
+#undef xmlStructuredError
+#undef xmlGenericErrorContext
+#undef xmlStructuredErrorContext
+#undef xmlGetWarningsDefaultValue
+#undef xmlIndentTreeOutput
+#undef xmlTreeIndentString
+#undef xmlKeepBlanksDefaultValue
+#undef xmlLineNumbersDefaultValue
+#undef xmlLoadExtDtdDefaultValue
+#undef xmlMalloc
+#undef xmlMallocAtomic
+#undef xmlMemStrdup
+#undef xmlParserDebugEntities
+#undef xmlParserVersion
+#undef xmlPedanticParserDefaultValue
+#undef xmlRealloc
+#undef xmlSaveNoEmptyTags
+#undef xmlSubstituteEntitiesDefaultValue
+#undef xmlRegisterNodeDefaultValue
+#undef xmlDeregisterNodeDefaultValue
+#undef xmlLastError
+#undef xmlParserInputBufferCreateFilenameValue
+#undef xmlOutputBufferCreateFilenameValue
+
+/**
+ * xmlRegisterNodeFunc:
+ * @node: the current node
+ *
+ * Signature for the registration callback of a created node
+ */
+typedef void (*xmlRegisterNodeFunc) (xmlNodePtr node);
+/**
+ * xmlDeregisterNodeFunc:
+ * @node: the current node
+ *
+ * Signature for the deregistration callback of a discarded node
+ */
+typedef void (*xmlDeregisterNodeFunc) (xmlNodePtr node);
+
+typedef struct _xmlGlobalState xmlGlobalState;
+typedef xmlGlobalState *xmlGlobalStatePtr;
+struct _xmlGlobalState
+{
+ const char *xmlParserVersion;
+
+ xmlSAXLocator xmlDefaultSAXLocator;
+ xmlSAXHandlerV1 xmlDefaultSAXHandler;
+ xmlSAXHandlerV1 docbDefaultSAXHandler;
+ xmlSAXHandlerV1 htmlDefaultSAXHandler;
+
+ xmlFreeFunc xmlFree;
+ xmlMallocFunc xmlMalloc;
+ xmlStrdupFunc xmlMemStrdup;
+ xmlReallocFunc xmlRealloc;
+
+ xmlGenericErrorFunc xmlGenericError;
+ xmlStructuredErrorFunc xmlStructuredError;
+ void *xmlGenericErrorContext;
+
+ int oldXMLWDcompatibility;
+
+ xmlBufferAllocationScheme xmlBufferAllocScheme;
+ int xmlDefaultBufferSize;
+
+ int xmlSubstituteEntitiesDefaultValue;
+ int xmlDoValidityCheckingDefaultValue;
+ int xmlGetWarningsDefaultValue;
+ int xmlKeepBlanksDefaultValue;
+ int xmlLineNumbersDefaultValue;
+ int xmlLoadExtDtdDefaultValue;
+ int xmlParserDebugEntities;
+ int xmlPedanticParserDefaultValue;
+
+ int xmlSaveNoEmptyTags;
+ int xmlIndentTreeOutput;
+ const char *xmlTreeIndentString;
+
+ xmlRegisterNodeFunc xmlRegisterNodeDefaultValue;
+ xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue;
+
+ xmlMallocFunc xmlMallocAtomic;
+ xmlError xmlLastError;
+
+ xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue;
+ xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue;
+
+ void *xmlStructuredErrorContext;
+};
+
+#ifdef __cplusplus
+}
+#endif
+#include <libxml/threads.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+XMLPUBFUN void XMLCALL xmlInitializeGlobalState(xmlGlobalStatePtr gs);
+
+XMLPUBFUN void XMLCALL xmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler);
+
+XMLPUBFUN void XMLCALL xmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler);
+
+XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlRegisterNodeDefault(xmlRegisterNodeFunc func);
+XMLPUBFUN xmlRegisterNodeFunc XMLCALL xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func);
+XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlDeregisterNodeDefault(xmlDeregisterNodeFunc func);
+XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func);
+
+XMLPUBFUN xmlOutputBufferCreateFilenameFunc XMLCALL
+ xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func);
+XMLPUBFUN xmlParserInputBufferCreateFilenameFunc XMLCALL
+ xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func);
+
+/** DOC_DISABLE */
+/*
+ * In general the memory allocation entry points are not kept
+ * thread specific but this can be overridden by LIBXML_THREAD_ALLOC_ENABLED
+ * - xmlMalloc
+ * - xmlMallocAtomic
+ * - xmlRealloc
+ * - xmlMemStrdup
+ * - xmlFree
+ */
+
+#ifdef LIBXML_THREAD_ALLOC_ENABLED
+#ifdef LIBXML_THREAD_ENABLED
+XMLPUBFUN xmlMallocFunc * XMLCALL __xmlMalloc(void);
+#define xmlMalloc \
+(*(__xmlMalloc()))
+#else
+XMLPUBVAR xmlMallocFunc xmlMalloc;
+#endif
+
+#ifdef LIBXML_THREAD_ENABLED
+XMLPUBFUN xmlMallocFunc * XMLCALL __xmlMallocAtomic(void);
+#define xmlMallocAtomic \
+(*(__xmlMallocAtomic()))
+#else
+XMLPUBVAR xmlMallocFunc xmlMallocAtomic;
+#endif
+
+#ifdef LIBXML_THREAD_ENABLED
+XMLPUBFUN xmlReallocFunc * XMLCALL __xmlRealloc(void);
+#define xmlRealloc \
+(*(__xmlRealloc()))
+#else
+XMLPUBVAR xmlReallocFunc xmlRealloc;
+#endif
+
+#ifdef LIBXML_THREAD_ENABLED
+XMLPUBFUN xmlFreeFunc * XMLCALL __xmlFree(void);
+#define xmlFree \
+(*(__xmlFree()))
+#else
+XMLPUBVAR xmlFreeFunc xmlFree;
+#endif
+
+#ifdef LIBXML_THREAD_ENABLED
+XMLPUBFUN xmlStrdupFunc * XMLCALL __xmlMemStrdup(void);
+#define xmlMemStrdup \
+(*(__xmlMemStrdup()))
+#else
+XMLPUBVAR xmlStrdupFunc xmlMemStrdup;
+#endif
+
+#else /* !LIBXML_THREAD_ALLOC_ENABLED */
+XMLPUBVAR xmlMallocFunc xmlMalloc;
+XMLPUBVAR xmlMallocFunc xmlMallocAtomic;
+XMLPUBVAR xmlReallocFunc xmlRealloc;
+XMLPUBVAR xmlFreeFunc xmlFree;
+XMLPUBVAR xmlStrdupFunc xmlMemStrdup;
+#endif /* LIBXML_THREAD_ALLOC_ENABLED */
+
+#ifdef LIBXML_DOCB_ENABLED
+XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __docbDefaultSAXHandler(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define docbDefaultSAXHandler \
+(*(__docbDefaultSAXHandler()))
+#else
+XMLPUBVAR xmlSAXHandlerV1 docbDefaultSAXHandler;
+#endif
+#endif
+
+#ifdef LIBXML_HTML_ENABLED
+XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __htmlDefaultSAXHandler(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define htmlDefaultSAXHandler \
+(*(__htmlDefaultSAXHandler()))
+#else
+XMLPUBVAR xmlSAXHandlerV1 htmlDefaultSAXHandler;
+#endif
+#endif
+
+XMLPUBFUN xmlError * XMLCALL __xmlLastError(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlLastError \
+(*(__xmlLastError()))
+#else
+XMLPUBVAR xmlError xmlLastError;
+#endif
+
+/*
+ * Everything starting from the line below is
+ * Automatically generated by build_glob.py.
+ * Do not modify the previous line.
+ */
+
+
+XMLPUBFUN int * XMLCALL __oldXMLWDcompatibility(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define oldXMLWDcompatibility \
+(*(__oldXMLWDcompatibility()))
+#else
+XMLPUBVAR int oldXMLWDcompatibility;
+#endif
+
+XMLPUBFUN xmlBufferAllocationScheme * XMLCALL __xmlBufferAllocScheme(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlBufferAllocScheme \
+(*(__xmlBufferAllocScheme()))
+#else
+XMLPUBVAR xmlBufferAllocationScheme xmlBufferAllocScheme;
+#endif
+XMLPUBFUN xmlBufferAllocationScheme XMLCALL xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v);
+
+XMLPUBFUN int * XMLCALL __xmlDefaultBufferSize(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlDefaultBufferSize \
+(*(__xmlDefaultBufferSize()))
+#else
+XMLPUBVAR int xmlDefaultBufferSize;
+#endif
+XMLPUBFUN int XMLCALL xmlThrDefDefaultBufferSize(int v);
+
+XMLPUBFUN xmlSAXHandlerV1 * XMLCALL __xmlDefaultSAXHandler(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlDefaultSAXHandler \
+(*(__xmlDefaultSAXHandler()))
+#else
+XMLPUBVAR xmlSAXHandlerV1 xmlDefaultSAXHandler;
+#endif
+
+XMLPUBFUN xmlSAXLocator * XMLCALL __xmlDefaultSAXLocator(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlDefaultSAXLocator \
+(*(__xmlDefaultSAXLocator()))
+#else
+XMLPUBVAR xmlSAXLocator xmlDefaultSAXLocator;
+#endif
+
+XMLPUBFUN int * XMLCALL __xmlDoValidityCheckingDefaultValue(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlDoValidityCheckingDefaultValue \
+(*(__xmlDoValidityCheckingDefaultValue()))
+#else
+XMLPUBVAR int xmlDoValidityCheckingDefaultValue;
+#endif
+XMLPUBFUN int XMLCALL xmlThrDefDoValidityCheckingDefaultValue(int v);
+
+XMLPUBFUN xmlGenericErrorFunc * XMLCALL __xmlGenericError(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlGenericError \
+(*(__xmlGenericError()))
+#else
+XMLPUBVAR xmlGenericErrorFunc xmlGenericError;
+#endif
+
+XMLPUBFUN xmlStructuredErrorFunc * XMLCALL __xmlStructuredError(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlStructuredError \
+(*(__xmlStructuredError()))
+#else
+XMLPUBVAR xmlStructuredErrorFunc xmlStructuredError;
+#endif
+
+XMLPUBFUN void * * XMLCALL __xmlGenericErrorContext(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlGenericErrorContext \
+(*(__xmlGenericErrorContext()))
+#else
+XMLPUBVAR void * xmlGenericErrorContext;
+#endif
+
+XMLPUBFUN void * * XMLCALL __xmlStructuredErrorContext(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlStructuredErrorContext \
+(*(__xmlStructuredErrorContext()))
+#else
+XMLPUBVAR void * xmlStructuredErrorContext;
+#endif
+
+XMLPUBFUN int * XMLCALL __xmlGetWarningsDefaultValue(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlGetWarningsDefaultValue \
+(*(__xmlGetWarningsDefaultValue()))
+#else
+XMLPUBVAR int xmlGetWarningsDefaultValue;
+#endif
+XMLPUBFUN int XMLCALL xmlThrDefGetWarningsDefaultValue(int v);
+
+XMLPUBFUN int * XMLCALL __xmlIndentTreeOutput(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlIndentTreeOutput \
+(*(__xmlIndentTreeOutput()))
+#else
+XMLPUBVAR int xmlIndentTreeOutput;
+#endif
+XMLPUBFUN int XMLCALL xmlThrDefIndentTreeOutput(int v);
+
+XMLPUBFUN const char * * XMLCALL __xmlTreeIndentString(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlTreeIndentString \
+(*(__xmlTreeIndentString()))
+#else
+XMLPUBVAR const char * xmlTreeIndentString;
+#endif
+XMLPUBFUN const char * XMLCALL xmlThrDefTreeIndentString(const char * v);
+
+XMLPUBFUN int * XMLCALL __xmlKeepBlanksDefaultValue(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlKeepBlanksDefaultValue \
+(*(__xmlKeepBlanksDefaultValue()))
+#else
+XMLPUBVAR int xmlKeepBlanksDefaultValue;
+#endif
+XMLPUBFUN int XMLCALL xmlThrDefKeepBlanksDefaultValue(int v);
+
+XMLPUBFUN int * XMLCALL __xmlLineNumbersDefaultValue(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlLineNumbersDefaultValue \
+(*(__xmlLineNumbersDefaultValue()))
+#else
+XMLPUBVAR int xmlLineNumbersDefaultValue;
+#endif
+XMLPUBFUN int XMLCALL xmlThrDefLineNumbersDefaultValue(int v);
+
+XMLPUBFUN int * XMLCALL __xmlLoadExtDtdDefaultValue(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlLoadExtDtdDefaultValue \
+(*(__xmlLoadExtDtdDefaultValue()))
+#else
+XMLPUBVAR int xmlLoadExtDtdDefaultValue;
+#endif
+XMLPUBFUN int XMLCALL xmlThrDefLoadExtDtdDefaultValue(int v);
+
+XMLPUBFUN int * XMLCALL __xmlParserDebugEntities(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlParserDebugEntities \
+(*(__xmlParserDebugEntities()))
+#else
+XMLPUBVAR int xmlParserDebugEntities;
+#endif
+XMLPUBFUN int XMLCALL xmlThrDefParserDebugEntities(int v);
+
+XMLPUBFUN const char * * XMLCALL __xmlParserVersion(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlParserVersion \
+(*(__xmlParserVersion()))
+#else
+XMLPUBVAR const char * xmlParserVersion;
+#endif
+
+XMLPUBFUN int * XMLCALL __xmlPedanticParserDefaultValue(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlPedanticParserDefaultValue \
+(*(__xmlPedanticParserDefaultValue()))
+#else
+XMLPUBVAR int xmlPedanticParserDefaultValue;
+#endif
+XMLPUBFUN int XMLCALL xmlThrDefPedanticParserDefaultValue(int v);
+
+XMLPUBFUN int * XMLCALL __xmlSaveNoEmptyTags(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlSaveNoEmptyTags \
+(*(__xmlSaveNoEmptyTags()))
+#else
+XMLPUBVAR int xmlSaveNoEmptyTags;
+#endif
+XMLPUBFUN int XMLCALL xmlThrDefSaveNoEmptyTags(int v);
+
+XMLPUBFUN int * XMLCALL __xmlSubstituteEntitiesDefaultValue(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlSubstituteEntitiesDefaultValue \
+(*(__xmlSubstituteEntitiesDefaultValue()))
+#else
+XMLPUBVAR int xmlSubstituteEntitiesDefaultValue;
+#endif
+XMLPUBFUN int XMLCALL xmlThrDefSubstituteEntitiesDefaultValue(int v);
+
+XMLPUBFUN xmlRegisterNodeFunc * XMLCALL __xmlRegisterNodeDefaultValue(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlRegisterNodeDefaultValue \
+(*(__xmlRegisterNodeDefaultValue()))
+#else
+XMLPUBVAR xmlRegisterNodeFunc xmlRegisterNodeDefaultValue;
+#endif
+
+XMLPUBFUN xmlDeregisterNodeFunc * XMLCALL __xmlDeregisterNodeDefaultValue(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlDeregisterNodeDefaultValue \
+(*(__xmlDeregisterNodeDefaultValue()))
+#else
+XMLPUBVAR xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue;
+#endif
+
+XMLPUBFUN xmlParserInputBufferCreateFilenameFunc * XMLCALL __xmlParserInputBufferCreateFilenameValue(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlParserInputBufferCreateFilenameValue \
+(*(__xmlParserInputBufferCreateFilenameValue()))
+#else
+XMLPUBVAR xmlParserInputBufferCreateFilenameFunc xmlParserInputBufferCreateFilenameValue;
+#endif
+
+XMLPUBFUN xmlOutputBufferCreateFilenameFunc * XMLCALL __xmlOutputBufferCreateFilenameValue(void);
+#ifdef LIBXML_THREAD_ENABLED
+#define xmlOutputBufferCreateFilenameValue \
+(*(__xmlOutputBufferCreateFilenameValue()))
+#else
+XMLPUBVAR xmlOutputBufferCreateFilenameFunc xmlOutputBufferCreateFilenameValue;
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_GLOBALS_H */
diff --git a/libxml2/include/libxml/hash.h b/libxml2/include/libxml/hash.h
new file mode 100644
index 000000000..dc8ab7ec5
--- /dev/null
+++ b/libxml2/include/libxml/hash.h
@@ -0,0 +1,233 @@
+/*
+ * Summary: Chained hash tables
+ * Description: This module implements the hash table support used in
+ * various places in the library.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Bjorn Reese <bjorn.reese@systematic.dk>
+ */
+
+#ifndef __XML_HASH_H__
+#define __XML_HASH_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * The hash table.
+ */
+typedef struct _xmlHashTable xmlHashTable;
+typedef xmlHashTable *xmlHashTablePtr;
+
+#ifdef __cplusplus
+}
+#endif
+
+#include <libxml/xmlversion.h>
+#include <libxml/parser.h>
+#include <libxml/dict.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Recent version of gcc produce a warning when a function pointer is assigned
+ * to an object pointer, or vice versa. The following macro is a dirty hack
+ * to allow suppression of the warning. If your architecture has function
+ * pointers which are a different size than a void pointer, there may be some
+ * serious trouble within the library.
+ */
+/**
+ * XML_CAST_FPTR:
+ * @fptr: pointer to a function
+ *
+ * Macro to do a casting from an object pointer to a
+ * function pointer without encountering a warning from
+ * gcc
+ *
+ * #define XML_CAST_FPTR(fptr) (*(void **)(&fptr))
+ * This macro violated ISO C aliasing rules (gcc4 on s390 broke)
+ * so it is disabled now
+ */
+
+#define XML_CAST_FPTR(fptr) fptr
+
+
+/*
+ * function types:
+ */
+/**
+ * xmlHashDeallocator:
+ * @payload: the data in the hash
+ * @name: the name associated
+ *
+ * Callback to free data from a hash.
+ */
+typedef void (*xmlHashDeallocator)(void *payload, xmlChar *name);
+/**
+ * xmlHashCopier:
+ * @payload: the data in the hash
+ * @name: the name associated
+ *
+ * Callback to copy data from a hash.
+ *
+ * Returns a copy of the data or NULL in case of error.
+ */
+typedef void *(*xmlHashCopier)(void *payload, xmlChar *name);
+/**
+ * xmlHashScanner:
+ * @payload: the data in the hash
+ * @data: extra scannner data
+ * @name: the name associated
+ *
+ * Callback when scanning data in a hash with the simple scanner.
+ */
+typedef void (*xmlHashScanner)(void *payload, void *data, xmlChar *name);
+/**
+ * xmlHashScannerFull:
+ * @payload: the data in the hash
+ * @data: extra scannner data
+ * @name: the name associated
+ * @name2: the second name associated
+ * @name3: the third name associated
+ *
+ * Callback when scanning data in a hash with the full scanner.
+ */
+typedef void (*xmlHashScannerFull)(void *payload, void *data,
+ const xmlChar *name, const xmlChar *name2,
+ const xmlChar *name3);
+
+/*
+ * Constructor and destructor.
+ */
+XMLPUBFUN xmlHashTablePtr XMLCALL
+ xmlHashCreate (int size);
+XMLPUBFUN xmlHashTablePtr XMLCALL
+ xmlHashCreateDict(int size,
+ xmlDictPtr dict);
+XMLPUBFUN void XMLCALL
+ xmlHashFree (xmlHashTablePtr table,
+ xmlHashDeallocator f);
+
+/*
+ * Add a new entry to the hash table.
+ */
+XMLPUBFUN int XMLCALL
+ xmlHashAddEntry (xmlHashTablePtr table,
+ const xmlChar *name,
+ void *userdata);
+XMLPUBFUN int XMLCALL
+ xmlHashUpdateEntry(xmlHashTablePtr table,
+ const xmlChar *name,
+ void *userdata,
+ xmlHashDeallocator f);
+XMLPUBFUN int XMLCALL
+ xmlHashAddEntry2(xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *name2,
+ void *userdata);
+XMLPUBFUN int XMLCALL
+ xmlHashUpdateEntry2(xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *name2,
+ void *userdata,
+ xmlHashDeallocator f);
+XMLPUBFUN int XMLCALL
+ xmlHashAddEntry3(xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *name2,
+ const xmlChar *name3,
+ void *userdata);
+XMLPUBFUN int XMLCALL
+ xmlHashUpdateEntry3(xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *name2,
+ const xmlChar *name3,
+ void *userdata,
+ xmlHashDeallocator f);
+
+/*
+ * Remove an entry from the hash table.
+ */
+XMLPUBFUN int XMLCALL
+ xmlHashRemoveEntry(xmlHashTablePtr table, const xmlChar *name,
+ xmlHashDeallocator f);
+XMLPUBFUN int XMLCALL
+ xmlHashRemoveEntry2(xmlHashTablePtr table, const xmlChar *name,
+ const xmlChar *name2, xmlHashDeallocator f);
+XMLPUBFUN int XMLCALL
+ xmlHashRemoveEntry3(xmlHashTablePtr table, const xmlChar *name,
+ const xmlChar *name2, const xmlChar *name3,
+ xmlHashDeallocator f);
+
+/*
+ * Retrieve the userdata.
+ */
+XMLPUBFUN void * XMLCALL
+ xmlHashLookup (xmlHashTablePtr table,
+ const xmlChar *name);
+XMLPUBFUN void * XMLCALL
+ xmlHashLookup2 (xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *name2);
+XMLPUBFUN void * XMLCALL
+ xmlHashLookup3 (xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *name2,
+ const xmlChar *name3);
+XMLPUBFUN void * XMLCALL
+ xmlHashQLookup (xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *prefix);
+XMLPUBFUN void * XMLCALL
+ xmlHashQLookup2 (xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *prefix,
+ const xmlChar *name2,
+ const xmlChar *prefix2);
+XMLPUBFUN void * XMLCALL
+ xmlHashQLookup3 (xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *prefix,
+ const xmlChar *name2,
+ const xmlChar *prefix2,
+ const xmlChar *name3,
+ const xmlChar *prefix3);
+
+/*
+ * Helpers.
+ */
+XMLPUBFUN xmlHashTablePtr XMLCALL
+ xmlHashCopy (xmlHashTablePtr table,
+ xmlHashCopier f);
+XMLPUBFUN int XMLCALL
+ xmlHashSize (xmlHashTablePtr table);
+XMLPUBFUN void XMLCALL
+ xmlHashScan (xmlHashTablePtr table,
+ xmlHashScanner f,
+ void *data);
+XMLPUBFUN void XMLCALL
+ xmlHashScan3 (xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *name2,
+ const xmlChar *name3,
+ xmlHashScanner f,
+ void *data);
+XMLPUBFUN void XMLCALL
+ xmlHashScanFull (xmlHashTablePtr table,
+ xmlHashScannerFull f,
+ void *data);
+XMLPUBFUN void XMLCALL
+ xmlHashScanFull3(xmlHashTablePtr table,
+ const xmlChar *name,
+ const xmlChar *name2,
+ const xmlChar *name3,
+ xmlHashScannerFull f,
+ void *data);
+#ifdef __cplusplus
+}
+#endif
+#endif /* ! __XML_HASH_H__ */
diff --git a/libxml2/include/libxml/list.h b/libxml2/include/libxml/list.h
new file mode 100644
index 000000000..0504e0cff
--- /dev/null
+++ b/libxml2/include/libxml/list.h
@@ -0,0 +1,137 @@
+/*
+ * Summary: lists interfaces
+ * Description: this module implement the list support used in
+ * various place in the library.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Gary Pennington <Gary.Pennington@uk.sun.com>
+ */
+
+#ifndef __XML_LINK_INCLUDE__
+#define __XML_LINK_INCLUDE__
+
+#include <libxml/xmlversion.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _xmlLink xmlLink;
+typedef xmlLink *xmlLinkPtr;
+
+typedef struct _xmlList xmlList;
+typedef xmlList *xmlListPtr;
+
+/**
+ * xmlListDeallocator:
+ * @lk: the data to deallocate
+ *
+ * Callback function used to free data from a list.
+ */
+typedef void (*xmlListDeallocator) (xmlLinkPtr lk);
+/**
+ * xmlListDataCompare:
+ * @data0: the first data
+ * @data1: the second data
+ *
+ * Callback function used to compare 2 data.
+ *
+ * Returns 0 is equality, -1 or 1 otherwise depending on the ordering.
+ */
+typedef int (*xmlListDataCompare) (const void *data0, const void *data1);
+/**
+ * xmlListWalker:
+ * @data: the data found in the list
+ * @user: extra user provided data to the walker
+ *
+ * Callback function used when walking a list with xmlListWalk().
+ *
+ * Returns 0 to stop walking the list, 1 otherwise.
+ */
+typedef int (*xmlListWalker) (const void *data, const void *user);
+
+/* Creation/Deletion */
+XMLPUBFUN xmlListPtr XMLCALL
+ xmlListCreate (xmlListDeallocator deallocator,
+ xmlListDataCompare compare);
+XMLPUBFUN void XMLCALL
+ xmlListDelete (xmlListPtr l);
+
+/* Basic Operators */
+XMLPUBFUN void * XMLCALL
+ xmlListSearch (xmlListPtr l,
+ void *data);
+XMLPUBFUN void * XMLCALL
+ xmlListReverseSearch (xmlListPtr l,
+ void *data);
+XMLPUBFUN int XMLCALL
+ xmlListInsert (xmlListPtr l,
+ void *data) ;
+XMLPUBFUN int XMLCALL
+ xmlListAppend (xmlListPtr l,
+ void *data) ;
+XMLPUBFUN int XMLCALL
+ xmlListRemoveFirst (xmlListPtr l,
+ void *data);
+XMLPUBFUN int XMLCALL
+ xmlListRemoveLast (xmlListPtr l,
+ void *data);
+XMLPUBFUN int XMLCALL
+ xmlListRemoveAll (xmlListPtr l,
+ void *data);
+XMLPUBFUN void XMLCALL
+ xmlListClear (xmlListPtr l);
+XMLPUBFUN int XMLCALL
+ xmlListEmpty (xmlListPtr l);
+XMLPUBFUN xmlLinkPtr XMLCALL
+ xmlListFront (xmlListPtr l);
+XMLPUBFUN xmlLinkPtr XMLCALL
+ xmlListEnd (xmlListPtr l);
+XMLPUBFUN int XMLCALL
+ xmlListSize (xmlListPtr l);
+
+XMLPUBFUN void XMLCALL
+ xmlListPopFront (xmlListPtr l);
+XMLPUBFUN void XMLCALL
+ xmlListPopBack (xmlListPtr l);
+XMLPUBFUN int XMLCALL
+ xmlListPushFront (xmlListPtr l,
+ void *data);
+XMLPUBFUN int XMLCALL
+ xmlListPushBack (xmlListPtr l,
+ void *data);
+
+/* Advanced Operators */
+XMLPUBFUN void XMLCALL
+ xmlListReverse (xmlListPtr l);
+XMLPUBFUN void XMLCALL
+ xmlListSort (xmlListPtr l);
+XMLPUBFUN void XMLCALL
+ xmlListWalk (xmlListPtr l,
+ xmlListWalker walker,
+ const void *user);
+XMLPUBFUN void XMLCALL
+ xmlListReverseWalk (xmlListPtr l,
+ xmlListWalker walker,
+ const void *user);
+XMLPUBFUN void XMLCALL
+ xmlListMerge (xmlListPtr l1,
+ xmlListPtr l2);
+XMLPUBFUN xmlListPtr XMLCALL
+ xmlListDup (const xmlListPtr old);
+XMLPUBFUN int XMLCALL
+ xmlListCopy (xmlListPtr cur,
+ const xmlListPtr old);
+/* Link operators */
+XMLPUBFUN void * XMLCALL
+ xmlLinkGetData (xmlLinkPtr lk);
+
+/* xmlListUnique() */
+/* xmlListSwap */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_LINK_INCLUDE__ */
diff --git a/libxml2/include/libxml/nanoftp.h b/libxml2/include/libxml/nanoftp.h
new file mode 100644
index 000000000..abb4bf714
--- /dev/null
+++ b/libxml2/include/libxml/nanoftp.h
@@ -0,0 +1,163 @@
+/*
+ * Summary: minimal FTP implementation
+ * Description: minimal FTP implementation allowing to fetch resources
+ * like external subset.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __NANO_FTP_H__
+#define __NANO_FTP_H__
+
+#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_FTP_ENABLED
+
+/* Needed for portability to Windows 64 bits */
+#if defined(__MINGW32__) || defined(_WIN32_WCE)
+#include <winsock2.h>
+#else
+/**
+ * SOCKET:
+ *
+ * macro used to provide portability of code to windows sockets
+ */
+#define SOCKET int
+/**
+ * INVALID_SOCKET:
+ *
+ * macro used to provide portability of code to windows sockets
+ * the value to be used when the socket is not valid
+ */
+#undef INVALID_SOCKET
+#define INVALID_SOCKET (-1)
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * ftpListCallback:
+ * @userData: user provided data for the callback
+ * @filename: the file name (including "->" when links are shown)
+ * @attrib: the attribute string
+ * @owner: the owner string
+ * @group: the group string
+ * @size: the file size
+ * @links: the link count
+ * @year: the year
+ * @month: the month
+ * @day: the day
+ * @hour: the hour
+ * @minute: the minute
+ *
+ * A callback for the xmlNanoFTPList command.
+ * Note that only one of year and day:minute are specified.
+ */
+typedef void (*ftpListCallback) (void *userData,
+ const char *filename, const char *attrib,
+ const char *owner, const char *group,
+ unsigned long size, int links, int year,
+ const char *month, int day, int hour,
+ int minute);
+/**
+ * ftpDataCallback:
+ * @userData: the user provided context
+ * @data: the data received
+ * @len: its size in bytes
+ *
+ * A callback for the xmlNanoFTPGet command.
+ */
+typedef void (*ftpDataCallback) (void *userData,
+ const char *data,
+ int len);
+
+/*
+ * Init
+ */
+XMLPUBFUN void XMLCALL
+ xmlNanoFTPInit (void);
+XMLPUBFUN void XMLCALL
+ xmlNanoFTPCleanup (void);
+
+/*
+ * Creating/freeing contexts.
+ */
+XMLPUBFUN void * XMLCALL
+ xmlNanoFTPNewCtxt (const char *URL);
+XMLPUBFUN void XMLCALL
+ xmlNanoFTPFreeCtxt (void * ctx);
+XMLPUBFUN void * XMLCALL
+ xmlNanoFTPConnectTo (const char *server,
+ int port);
+/*
+ * Opening/closing session connections.
+ */
+XMLPUBFUN void * XMLCALL
+ xmlNanoFTPOpen (const char *URL);
+XMLPUBFUN int XMLCALL
+ xmlNanoFTPConnect (void *ctx);
+XMLPUBFUN int XMLCALL
+ xmlNanoFTPClose (void *ctx);
+XMLPUBFUN int XMLCALL
+ xmlNanoFTPQuit (void *ctx);
+XMLPUBFUN void XMLCALL
+ xmlNanoFTPScanProxy (const char *URL);
+XMLPUBFUN void XMLCALL
+ xmlNanoFTPProxy (const char *host,
+ int port,
+ const char *user,
+ const char *passwd,
+ int type);
+XMLPUBFUN int XMLCALL
+ xmlNanoFTPUpdateURL (void *ctx,
+ const char *URL);
+
+/*
+ * Rather internal commands.
+ */
+XMLPUBFUN int XMLCALL
+ xmlNanoFTPGetResponse (void *ctx);
+XMLPUBFUN int XMLCALL
+ xmlNanoFTPCheckResponse (void *ctx);
+
+/*
+ * CD/DIR/GET handlers.
+ */
+XMLPUBFUN int XMLCALL
+ xmlNanoFTPCwd (void *ctx,
+ const char *directory);
+XMLPUBFUN int XMLCALL
+ xmlNanoFTPDele (void *ctx,
+ const char *file);
+
+XMLPUBFUN SOCKET XMLCALL
+ xmlNanoFTPGetConnection (void *ctx);
+XMLPUBFUN int XMLCALL
+ xmlNanoFTPCloseConnection(void *ctx);
+XMLPUBFUN int XMLCALL
+ xmlNanoFTPList (void *ctx,
+ ftpListCallback callback,
+ void *userData,
+ const char *filename);
+XMLPUBFUN SOCKET XMLCALL
+ xmlNanoFTPGetSocket (void *ctx,
+ const char *filename);
+XMLPUBFUN int XMLCALL
+ xmlNanoFTPGet (void *ctx,
+ ftpDataCallback callback,
+ void *userData,
+ const char *filename);
+XMLPUBFUN int XMLCALL
+ xmlNanoFTPRead (void *ctx,
+ void *dest,
+ int len);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* LIBXML_FTP_ENABLED */
+#endif /* __NANO_FTP_H__ */
diff --git a/libxml2/include/libxml/nanohttp.h b/libxml2/include/libxml/nanohttp.h
new file mode 100644
index 000000000..22b8fb433
--- /dev/null
+++ b/libxml2/include/libxml/nanohttp.h
@@ -0,0 +1,81 @@
+/*
+ * Summary: minimal HTTP implementation
+ * Description: minimal HTTP implementation allowing to fetch resources
+ * like external subset.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __NANO_HTTP_H__
+#define __NANO_HTTP_H__
+
+#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_HTTP_ENABLED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+XMLPUBFUN void XMLCALL
+ xmlNanoHTTPInit (void);
+XMLPUBFUN void XMLCALL
+ xmlNanoHTTPCleanup (void);
+XMLPUBFUN void XMLCALL
+ xmlNanoHTTPScanProxy (const char *URL);
+XMLPUBFUN int XMLCALL
+ xmlNanoHTTPFetch (const char *URL,
+ const char *filename,
+ char **contentType);
+XMLPUBFUN void * XMLCALL
+ xmlNanoHTTPMethod (const char *URL,
+ const char *method,
+ const char *input,
+ char **contentType,
+ const char *headers,
+ int ilen);
+XMLPUBFUN void * XMLCALL
+ xmlNanoHTTPMethodRedir (const char *URL,
+ const char *method,
+ const char *input,
+ char **contentType,
+ char **redir,
+ const char *headers,
+ int ilen);
+XMLPUBFUN void * XMLCALL
+ xmlNanoHTTPOpen (const char *URL,
+ char **contentType);
+XMLPUBFUN void * XMLCALL
+ xmlNanoHTTPOpenRedir (const char *URL,
+ char **contentType,
+ char **redir);
+XMLPUBFUN int XMLCALL
+ xmlNanoHTTPReturnCode (void *ctx);
+XMLPUBFUN const char * XMLCALL
+ xmlNanoHTTPAuthHeader (void *ctx);
+XMLPUBFUN const char * XMLCALL
+ xmlNanoHTTPRedir (void *ctx);
+XMLPUBFUN int XMLCALL
+ xmlNanoHTTPContentLength( void * ctx );
+XMLPUBFUN const char * XMLCALL
+ xmlNanoHTTPEncoding (void *ctx);
+XMLPUBFUN const char * XMLCALL
+ xmlNanoHTTPMimeType (void *ctx);
+XMLPUBFUN int XMLCALL
+ xmlNanoHTTPRead (void *ctx,
+ void *dest,
+ int len);
+#ifdef LIBXML_OUTPUT_ENABLED
+XMLPUBFUN int XMLCALL
+ xmlNanoHTTPSave (void *ctxt,
+ const char *filename);
+#endif /* LIBXML_OUTPUT_ENABLED */
+XMLPUBFUN void XMLCALL
+ xmlNanoHTTPClose (void *ctx);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_HTTP_ENABLED */
+#endif /* __NANO_HTTP_H__ */
diff --git a/libxml2/include/libxml/parser.h b/libxml2/include/libxml/parser.h
new file mode 100644
index 000000000..3f5730dc6
--- /dev/null
+++ b/libxml2/include/libxml/parser.h
@@ -0,0 +1,1241 @@
+/*
+ * Summary: the core parser module
+ * Description: Interfaces, constants and types related to the XML parser
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_PARSER_H__
+#define __XML_PARSER_H__
+
+#include <stdarg.h>
+
+#include <libxml/xmlversion.h>
+#include <libxml/tree.h>
+#include <libxml/dict.h>
+#include <libxml/hash.h>
+#include <libxml/valid.h>
+#include <libxml/entities.h>
+#include <libxml/xmlerror.h>
+#include <libxml/xmlstring.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * XML_DEFAULT_VERSION:
+ *
+ * The default version of XML used: 1.0
+ */
+#define XML_DEFAULT_VERSION "1.0"
+
+/**
+ * xmlParserInput:
+ *
+ * An xmlParserInput is an input flow for the XML processor.
+ * Each entity parsed is associated an xmlParserInput (except the
+ * few predefined ones). This is the case both for internal entities
+ * - in which case the flow is already completely in memory - or
+ * external entities - in which case we use the buf structure for
+ * progressive reading and I18N conversions to the internal UTF-8 format.
+ */
+
+/**
+ * xmlParserInputDeallocate:
+ * @str: the string to deallocate
+ *
+ * Callback for freeing some parser input allocations.
+ */
+typedef void (* xmlParserInputDeallocate)(xmlChar *str);
+
+struct _xmlParserInput {
+ /* Input buffer */
+ xmlParserInputBufferPtr buf; /* UTF-8 encoded buffer */
+
+ const char *filename; /* The file analyzed, if any */
+ const char *directory; /* the directory/base of the file */
+ const xmlChar *base; /* Base of the array to parse */
+ const xmlChar *cur; /* Current char being parsed */
+ const xmlChar *end; /* end of the array to parse */
+ int length; /* length if known */
+ int line; /* Current line */
+ int col; /* Current column */
+ /*
+ * NOTE: consumed is only tested for equality in the parser code,
+ * so even if there is an overflow this should not give troubles
+ * for parsing very large instances.
+ */
+ unsigned long consumed; /* How many xmlChars already consumed */
+ xmlParserInputDeallocate free; /* function to deallocate the base */
+ const xmlChar *encoding; /* the encoding string for entity */
+ const xmlChar *version; /* the version string for entity */
+ int standalone; /* Was that entity marked standalone */
+ int id; /* an unique identifier for the entity */
+};
+
+/**
+ * xmlParserNodeInfo:
+ *
+ * The parser can be asked to collect Node informations, i.e. at what
+ * place in the file they were detected.
+ * NOTE: This is off by default and not very well tested.
+ */
+typedef struct _xmlParserNodeInfo xmlParserNodeInfo;
+typedef xmlParserNodeInfo *xmlParserNodeInfoPtr;
+
+struct _xmlParserNodeInfo {
+ const struct _xmlNode* node;
+ /* Position & line # that text that created the node begins & ends on */
+ unsigned long begin_pos;
+ unsigned long begin_line;
+ unsigned long end_pos;
+ unsigned long end_line;
+};
+
+typedef struct _xmlParserNodeInfoSeq xmlParserNodeInfoSeq;
+typedef xmlParserNodeInfoSeq *xmlParserNodeInfoSeqPtr;
+struct _xmlParserNodeInfoSeq {
+ unsigned long maximum;
+ unsigned long length;
+ xmlParserNodeInfo* buffer;
+};
+
+/**
+ * xmlParserInputState:
+ *
+ * The parser is now working also as a state based parser.
+ * The recursive one use the state info for entities processing.
+ */
+typedef enum {
+ XML_PARSER_EOF = -1, /* nothing is to be parsed */
+ XML_PARSER_START = 0, /* nothing has been parsed */
+ XML_PARSER_MISC, /* Misc* before int subset */
+ XML_PARSER_PI, /* Within a processing instruction */
+ XML_PARSER_DTD, /* within some DTD content */
+ XML_PARSER_PROLOG, /* Misc* after internal subset */
+ XML_PARSER_COMMENT, /* within a comment */
+ XML_PARSER_START_TAG, /* within a start tag */
+ XML_PARSER_CONTENT, /* within the content */
+ XML_PARSER_CDATA_SECTION, /* within a CDATA section */
+ XML_PARSER_END_TAG, /* within a closing tag */
+ XML_PARSER_ENTITY_DECL, /* within an entity declaration */
+ XML_PARSER_ENTITY_VALUE, /* within an entity value in a decl */
+ XML_PARSER_ATTRIBUTE_VALUE, /* within an attribute value */
+ XML_PARSER_SYSTEM_LITERAL, /* within a SYSTEM value */
+ XML_PARSER_EPILOG, /* the Misc* after the last end tag */
+ XML_PARSER_IGNORE, /* within an IGNORED section */
+ XML_PARSER_PUBLIC_LITERAL /* within a PUBLIC value */
+} xmlParserInputState;
+
+/**
+ * XML_DETECT_IDS:
+ *
+ * Bit in the loadsubset context field to tell to do ID/REFs lookups.
+ * Use it to initialize xmlLoadExtDtdDefaultValue.
+ */
+#define XML_DETECT_IDS 2
+
+/**
+ * XML_COMPLETE_ATTRS:
+ *
+ * Bit in the loadsubset context field to tell to do complete the
+ * elements attributes lists with the ones defaulted from the DTDs.
+ * Use it to initialize xmlLoadExtDtdDefaultValue.
+ */
+#define XML_COMPLETE_ATTRS 4
+
+/**
+ * XML_SKIP_IDS:
+ *
+ * Bit in the loadsubset context field to tell to not do ID/REFs registration.
+ * Used to initialize xmlLoadExtDtdDefaultValue in some special cases.
+ */
+#define XML_SKIP_IDS 8
+
+/**
+ * xmlParserMode:
+ *
+ * A parser can operate in various modes
+ */
+typedef enum {
+ XML_PARSE_UNKNOWN = 0,
+ XML_PARSE_DOM = 1,
+ XML_PARSE_SAX = 2,
+ XML_PARSE_PUSH_DOM = 3,
+ XML_PARSE_PUSH_SAX = 4,
+ XML_PARSE_READER = 5
+} xmlParserMode;
+
+/**
+ * xmlParserCtxt:
+ *
+ * The parser context.
+ * NOTE This doesn't completely define the parser state, the (current ?)
+ * design of the parser uses recursive function calls since this allow
+ * and easy mapping from the production rules of the specification
+ * to the actual code. The drawback is that the actual function call
+ * also reflect the parser state. However most of the parsing routines
+ * takes as the only argument the parser context pointer, so migrating
+ * to a state based parser for progressive parsing shouldn't be too hard.
+ */
+struct _xmlParserCtxt {
+ struct _xmlSAXHandler *sax; /* The SAX handler */
+ void *userData; /* For SAX interface only, used by DOM build */
+ xmlDocPtr myDoc; /* the document being built */
+ int wellFormed; /* is the document well formed */
+ int replaceEntities; /* shall we replace entities ? */
+ const xmlChar *version; /* the XML version string */
+ const xmlChar *encoding; /* the declared encoding, if any */
+ int standalone; /* standalone document */
+ int html; /* an HTML(1)/Docbook(2) document
+ * 3 is HTML after <head>
+ * 10 is HTML after <body>
+ */
+
+ /* Input stream stack */
+ xmlParserInputPtr input; /* Current input stream */
+ int inputNr; /* Number of current input streams */
+ int inputMax; /* Max number of input streams */
+ xmlParserInputPtr *inputTab; /* stack of inputs */
+
+ /* Node analysis stack only used for DOM building */
+ xmlNodePtr node; /* Current parsed Node */
+ int nodeNr; /* Depth of the parsing stack */
+ int nodeMax; /* Max depth of the parsing stack */
+ xmlNodePtr *nodeTab; /* array of nodes */
+
+ int record_info; /* Whether node info should be kept */
+ xmlParserNodeInfoSeq node_seq; /* info about each node parsed */
+
+ int errNo; /* error code */
+
+ int hasExternalSubset; /* reference and external subset */
+ int hasPErefs; /* the internal subset has PE refs */
+ int external; /* are we parsing an external entity */
+
+ int valid; /* is the document valid */
+ int validate; /* shall we try to validate ? */
+ xmlValidCtxt vctxt; /* The validity context */
+
+ xmlParserInputState instate; /* current type of input */
+ int token; /* next char look-ahead */
+
+ char *directory; /* the data directory */
+
+ /* Node name stack */
+ const xmlChar *name; /* Current parsed Node */
+ int nameNr; /* Depth of the parsing stack */
+ int nameMax; /* Max depth of the parsing stack */
+ const xmlChar * *nameTab; /* array of nodes */
+
+ long nbChars; /* number of xmlChar processed */
+ long checkIndex; /* used by progressive parsing lookup */
+ int keepBlanks; /* ugly but ... */
+ int disableSAX; /* SAX callbacks are disabled */
+ int inSubset; /* Parsing is in int 1/ext 2 subset */
+ const xmlChar * intSubName; /* name of subset */
+ xmlChar * extSubURI; /* URI of external subset */
+ xmlChar * extSubSystem; /* SYSTEM ID of external subset */
+
+ /* xml:space values */
+ int * space; /* Should the parser preserve spaces */
+ int spaceNr; /* Depth of the parsing stack */
+ int spaceMax; /* Max depth of the parsing stack */
+ int * spaceTab; /* array of space infos */
+
+ int depth; /* to prevent entity substitution loops */
+ xmlParserInputPtr entity; /* used to check entities boundaries */
+ int charset; /* encoding of the in-memory content
+ actually an xmlCharEncoding */
+ int nodelen; /* Those two fields are there to */
+ int nodemem; /* Speed up large node parsing */
+ int pedantic; /* signal pedantic warnings */
+ void *_private; /* For user data, libxml won't touch it */
+
+ int loadsubset; /* should the external subset be loaded */
+ int linenumbers; /* set line number in element content */
+ void *catalogs; /* document's own catalog */
+ int recovery; /* run in recovery mode */
+ int progressive; /* is this a progressive parsing */
+ xmlDictPtr dict; /* dictionnary for the parser */
+ const xmlChar * *atts; /* array for the attributes callbacks */
+ int maxatts; /* the size of the array */
+ int docdict; /* use strings from dict to build tree */
+
+ /*
+ * pre-interned strings
+ */
+ const xmlChar *str_xml;
+ const xmlChar *str_xmlns;
+ const xmlChar *str_xml_ns;
+
+ /*
+ * Everything below is used only by the new SAX mode
+ */
+ int sax2; /* operating in the new SAX mode */
+ int nsNr; /* the number of inherited namespaces */
+ int nsMax; /* the size of the arrays */
+ const xmlChar * *nsTab; /* the array of prefix/namespace name */
+ int *attallocs; /* which attribute were allocated */
+ void * *pushTab; /* array of data for push */
+ xmlHashTablePtr attsDefault; /* defaulted attributes if any */
+ xmlHashTablePtr attsSpecial; /* non-CDATA attributes if any */
+ int nsWellFormed; /* is the document XML Nanespace okay */
+ int options; /* Extra options */
+
+ /*
+ * Those fields are needed only for treaming parsing so far
+ */
+ int dictNames; /* Use dictionary names for the tree */
+ int freeElemsNr; /* number of freed element nodes */
+ xmlNodePtr freeElems; /* List of freed element nodes */
+ int freeAttrsNr; /* number of freed attributes nodes */
+ xmlAttrPtr freeAttrs; /* List of freed attributes nodes */
+
+ /*
+ * the complete error informations for the last error.
+ */
+ xmlError lastError;
+ xmlParserMode parseMode; /* the parser mode */
+ unsigned long nbentities; /* number of entities references */
+ unsigned long sizeentities; /* size of parsed entities */
+
+ /* for use by HTML non-recursive parser */
+ xmlParserNodeInfo *nodeInfo; /* Current NodeInfo */
+ int nodeInfoNr; /* Depth of the parsing stack */
+ int nodeInfoMax; /* Max depth of the parsing stack */
+ xmlParserNodeInfo *nodeInfoTab; /* array of nodeInfos */
+
+ int input_id; /* we need to label inputs */
+ unsigned long sizeentcopy; /* volume of entity copy */
+};
+
+/**
+ * xmlSAXLocator:
+ *
+ * A SAX Locator.
+ */
+struct _xmlSAXLocator {
+ const xmlChar *(*getPublicId)(void *ctx);
+ const xmlChar *(*getSystemId)(void *ctx);
+ int (*getLineNumber)(void *ctx);
+ int (*getColumnNumber)(void *ctx);
+};
+
+/**
+ * xmlSAXHandler:
+ *
+ * A SAX handler is bunch of callbacks called by the parser when processing
+ * of the input generate data or structure informations.
+ */
+
+/**
+ * resolveEntitySAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @publicId: The public ID of the entity
+ * @systemId: The system ID of the entity
+ *
+ * Callback:
+ * The entity loader, to control the loading of external entities,
+ * the application can either:
+ * - override this resolveEntity() callback in the SAX block
+ * - or better use the xmlSetExternalEntityLoader() function to
+ * set up it's own entity resolution routine
+ *
+ * Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour.
+ */
+typedef xmlParserInputPtr (*resolveEntitySAXFunc) (void *ctx,
+ const xmlChar *publicId,
+ const xmlChar *systemId);
+/**
+ * internalSubsetSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: the root element name
+ * @ExternalID: the external ID
+ * @SystemID: the SYSTEM ID (e.g. filename or URL)
+ *
+ * Callback on internal subset declaration.
+ */
+typedef void (*internalSubsetSAXFunc) (void *ctx,
+ const xmlChar *name,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+/**
+ * externalSubsetSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: the root element name
+ * @ExternalID: the external ID
+ * @SystemID: the SYSTEM ID (e.g. filename or URL)
+ *
+ * Callback on external subset declaration.
+ */
+typedef void (*externalSubsetSAXFunc) (void *ctx,
+ const xmlChar *name,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+/**
+ * getEntitySAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: The entity name
+ *
+ * Get an entity by name.
+ *
+ * Returns the xmlEntityPtr if found.
+ */
+typedef xmlEntityPtr (*getEntitySAXFunc) (void *ctx,
+ const xmlChar *name);
+/**
+ * getParameterEntitySAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: The entity name
+ *
+ * Get a parameter entity by name.
+ *
+ * Returns the xmlEntityPtr if found.
+ */
+typedef xmlEntityPtr (*getParameterEntitySAXFunc) (void *ctx,
+ const xmlChar *name);
+/**
+ * entityDeclSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: the entity name
+ * @type: the entity type
+ * @publicId: The public ID of the entity
+ * @systemId: The system ID of the entity
+ * @content: the entity value (without processing).
+ *
+ * An entity definition has been parsed.
+ */
+typedef void (*entityDeclSAXFunc) (void *ctx,
+ const xmlChar *name,
+ int type,
+ const xmlChar *publicId,
+ const xmlChar *systemId,
+ xmlChar *content);
+/**
+ * notationDeclSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: The name of the notation
+ * @publicId: The public ID of the entity
+ * @systemId: The system ID of the entity
+ *
+ * What to do when a notation declaration has been parsed.
+ */
+typedef void (*notationDeclSAXFunc)(void *ctx,
+ const xmlChar *name,
+ const xmlChar *publicId,
+ const xmlChar *systemId);
+/**
+ * attributeDeclSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @elem: the name of the element
+ * @fullname: the attribute name
+ * @type: the attribute type
+ * @def: the type of default value
+ * @defaultValue: the attribute default value
+ * @tree: the tree of enumerated value set
+ *
+ * An attribute definition has been parsed.
+ */
+typedef void (*attributeDeclSAXFunc)(void *ctx,
+ const xmlChar *elem,
+ const xmlChar *fullname,
+ int type,
+ int def,
+ const xmlChar *defaultValue,
+ xmlEnumerationPtr tree);
+/**
+ * elementDeclSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: the element name
+ * @type: the element type
+ * @content: the element value tree
+ *
+ * An element definition has been parsed.
+ */
+typedef void (*elementDeclSAXFunc)(void *ctx,
+ const xmlChar *name,
+ int type,
+ xmlElementContentPtr content);
+/**
+ * unparsedEntityDeclSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: The name of the entity
+ * @publicId: The public ID of the entity
+ * @systemId: The system ID of the entity
+ * @notationName: the name of the notation
+ *
+ * What to do when an unparsed entity declaration is parsed.
+ */
+typedef void (*unparsedEntityDeclSAXFunc)(void *ctx,
+ const xmlChar *name,
+ const xmlChar *publicId,
+ const xmlChar *systemId,
+ const xmlChar *notationName);
+/**
+ * setDocumentLocatorSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @loc: A SAX Locator
+ *
+ * Receive the document locator at startup, actually xmlDefaultSAXLocator.
+ * Everything is available on the context, so this is useless in our case.
+ */
+typedef void (*setDocumentLocatorSAXFunc) (void *ctx,
+ xmlSAXLocatorPtr loc);
+/**
+ * startDocumentSAXFunc:
+ * @ctx: the user data (XML parser context)
+ *
+ * Called when the document start being processed.
+ */
+typedef void (*startDocumentSAXFunc) (void *ctx);
+/**
+ * endDocumentSAXFunc:
+ * @ctx: the user data (XML parser context)
+ *
+ * Called when the document end has been detected.
+ */
+typedef void (*endDocumentSAXFunc) (void *ctx);
+/**
+ * startElementSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: The element name, including namespace prefix
+ * @atts: An array of name/value attributes pairs, NULL terminated
+ *
+ * Called when an opening tag has been processed.
+ */
+typedef void (*startElementSAXFunc) (void *ctx,
+ const xmlChar *name,
+ const xmlChar **atts);
+/**
+ * endElementSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: The element name
+ *
+ * Called when the end of an element has been detected.
+ */
+typedef void (*endElementSAXFunc) (void *ctx,
+ const xmlChar *name);
+/**
+ * attributeSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: The attribute name, including namespace prefix
+ * @value: The attribute value
+ *
+ * Handle an attribute that has been read by the parser.
+ * The default handling is to convert the attribute into an
+ * DOM subtree and past it in a new xmlAttr element added to
+ * the element.
+ */
+typedef void (*attributeSAXFunc) (void *ctx,
+ const xmlChar *name,
+ const xmlChar *value);
+/**
+ * referenceSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @name: The entity name
+ *
+ * Called when an entity reference is detected.
+ */
+typedef void (*referenceSAXFunc) (void *ctx,
+ const xmlChar *name);
+/**
+ * charactersSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @ch: a xmlChar string
+ * @len: the number of xmlChar
+ *
+ * Receiving some chars from the parser.
+ */
+typedef void (*charactersSAXFunc) (void *ctx,
+ const xmlChar *ch,
+ int len);
+/**
+ * ignorableWhitespaceSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @ch: a xmlChar string
+ * @len: the number of xmlChar
+ *
+ * Receiving some ignorable whitespaces from the parser.
+ * UNUSED: by default the DOM building will use characters.
+ */
+typedef void (*ignorableWhitespaceSAXFunc) (void *ctx,
+ const xmlChar *ch,
+ int len);
+/**
+ * processingInstructionSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @target: the target name
+ * @data: the PI data's
+ *
+ * A processing instruction has been parsed.
+ */
+typedef void (*processingInstructionSAXFunc) (void *ctx,
+ const xmlChar *target,
+ const xmlChar *data);
+/**
+ * commentSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @value: the comment content
+ *
+ * A comment has been parsed.
+ */
+typedef void (*commentSAXFunc) (void *ctx,
+ const xmlChar *value);
+/**
+ * cdataBlockSAXFunc:
+ * @ctx: the user data (XML parser context)
+ * @value: The pcdata content
+ * @len: the block length
+ *
+ * Called when a pcdata block has been parsed.
+ */
+typedef void (*cdataBlockSAXFunc) (
+ void *ctx,
+ const xmlChar *value,
+ int len);
+/**
+ * warningSAXFunc:
+ * @ctx: an XML parser context
+ * @msg: the message to display/transmit
+ * @...: extra parameters for the message display
+ *
+ * Display and format a warning messages, callback.
+ */
+typedef void (XMLCDECL *warningSAXFunc) (void *ctx,
+ const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
+/**
+ * errorSAXFunc:
+ * @ctx: an XML parser context
+ * @msg: the message to display/transmit
+ * @...: extra parameters for the message display
+ *
+ * Display and format an error messages, callback.
+ */
+typedef void (XMLCDECL *errorSAXFunc) (void *ctx,
+ const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
+/**
+ * fatalErrorSAXFunc:
+ * @ctx: an XML parser context
+ * @msg: the message to display/transmit
+ * @...: extra parameters for the message display
+ *
+ * Display and format fatal error messages, callback.
+ * Note: so far fatalError() SAX callbacks are not used, error()
+ * get all the callbacks for errors.
+ */
+typedef void (XMLCDECL *fatalErrorSAXFunc) (void *ctx,
+ const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
+/**
+ * isStandaloneSAXFunc:
+ * @ctx: the user data (XML parser context)
+ *
+ * Is this document tagged standalone?
+ *
+ * Returns 1 if true
+ */
+typedef int (*isStandaloneSAXFunc) (void *ctx);
+/**
+ * hasInternalSubsetSAXFunc:
+ * @ctx: the user data (XML parser context)
+ *
+ * Does this document has an internal subset.
+ *
+ * Returns 1 if true
+ */
+typedef int (*hasInternalSubsetSAXFunc) (void *ctx);
+
+/**
+ * hasExternalSubsetSAXFunc:
+ * @ctx: the user data (XML parser context)
+ *
+ * Does this document has an external subset?
+ *
+ * Returns 1 if true
+ */
+typedef int (*hasExternalSubsetSAXFunc) (void *ctx);
+
+/************************************************************************
+ * *
+ * The SAX version 2 API extensions *
+ * *
+ ************************************************************************/
+/**
+ * XML_SAX2_MAGIC:
+ *
+ * Special constant found in SAX2 blocks initialized fields
+ */
+#define XML_SAX2_MAGIC 0xDEEDBEAF
+
+/**
+ * startElementNsSAX2Func:
+ * @ctx: the user data (XML parser context)
+ * @localname: the local name of the element
+ * @prefix: the element namespace prefix if available
+ * @URI: the element namespace name if available
+ * @nb_namespaces: number of namespace definitions on that node
+ * @namespaces: pointer to the array of prefix/URI pairs namespace definitions
+ * @nb_attributes: the number of attributes on that node
+ * @nb_defaulted: the number of defaulted attributes. The defaulted
+ * ones are at the end of the array
+ * @attributes: pointer to the array of (localname/prefix/URI/value/end)
+ * attribute values.
+ *
+ * SAX2 callback when an element start has been detected by the parser.
+ * It provides the namespace informations for the element, as well as
+ * the new namespace declarations on the element.
+ */
+
+typedef void (*startElementNsSAX2Func) (void *ctx,
+ const xmlChar *localname,
+ const xmlChar *prefix,
+ const xmlChar *URI,
+ int nb_namespaces,
+ const xmlChar **namespaces,
+ int nb_attributes,
+ int nb_defaulted,
+ const xmlChar **attributes);
+
+/**
+ * endElementNsSAX2Func:
+ * @ctx: the user data (XML parser context)
+ * @localname: the local name of the element
+ * @prefix: the element namespace prefix if available
+ * @URI: the element namespace name if available
+ *
+ * SAX2 callback when an element end has been detected by the parser.
+ * It provides the namespace informations for the element.
+ */
+
+typedef void (*endElementNsSAX2Func) (void *ctx,
+ const xmlChar *localname,
+ const xmlChar *prefix,
+ const xmlChar *URI);
+
+
+struct _xmlSAXHandler {
+ internalSubsetSAXFunc internalSubset;
+ isStandaloneSAXFunc isStandalone;
+ hasInternalSubsetSAXFunc hasInternalSubset;
+ hasExternalSubsetSAXFunc hasExternalSubset;
+ resolveEntitySAXFunc resolveEntity;
+ getEntitySAXFunc getEntity;
+ entityDeclSAXFunc entityDecl;
+ notationDeclSAXFunc notationDecl;
+ attributeDeclSAXFunc attributeDecl;
+ elementDeclSAXFunc elementDecl;
+ unparsedEntityDeclSAXFunc unparsedEntityDecl;
+ setDocumentLocatorSAXFunc setDocumentLocator;
+ startDocumentSAXFunc startDocument;
+ endDocumentSAXFunc endDocument;
+ startElementSAXFunc startElement;
+ endElementSAXFunc endElement;
+ referenceSAXFunc reference;
+ charactersSAXFunc characters;
+ ignorableWhitespaceSAXFunc ignorableWhitespace;
+ processingInstructionSAXFunc processingInstruction;
+ commentSAXFunc comment;
+ warningSAXFunc warning;
+ errorSAXFunc error;
+ fatalErrorSAXFunc fatalError; /* unused error() get all the errors */
+ getParameterEntitySAXFunc getParameterEntity;
+ cdataBlockSAXFunc cdataBlock;
+ externalSubsetSAXFunc externalSubset;
+ unsigned int initialized;
+ /* The following fields are extensions available only on version 2 */
+ void *_private;
+ startElementNsSAX2Func startElementNs;
+ endElementNsSAX2Func endElementNs;
+ xmlStructuredErrorFunc serror;
+};
+
+/*
+ * SAX Version 1
+ */
+typedef struct _xmlSAXHandlerV1 xmlSAXHandlerV1;
+typedef xmlSAXHandlerV1 *xmlSAXHandlerV1Ptr;
+struct _xmlSAXHandlerV1 {
+ internalSubsetSAXFunc internalSubset;
+ isStandaloneSAXFunc isStandalone;
+ hasInternalSubsetSAXFunc hasInternalSubset;
+ hasExternalSubsetSAXFunc hasExternalSubset;
+ resolveEntitySAXFunc resolveEntity;
+ getEntitySAXFunc getEntity;
+ entityDeclSAXFunc entityDecl;
+ notationDeclSAXFunc notationDecl;
+ attributeDeclSAXFunc attributeDecl;
+ elementDeclSAXFunc elementDecl;
+ unparsedEntityDeclSAXFunc unparsedEntityDecl;
+ setDocumentLocatorSAXFunc setDocumentLocator;
+ startDocumentSAXFunc startDocument;
+ endDocumentSAXFunc endDocument;
+ startElementSAXFunc startElement;
+ endElementSAXFunc endElement;
+ referenceSAXFunc reference;
+ charactersSAXFunc characters;
+ ignorableWhitespaceSAXFunc ignorableWhitespace;
+ processingInstructionSAXFunc processingInstruction;
+ commentSAXFunc comment;
+ warningSAXFunc warning;
+ errorSAXFunc error;
+ fatalErrorSAXFunc fatalError; /* unused error() get all the errors */
+ getParameterEntitySAXFunc getParameterEntity;
+ cdataBlockSAXFunc cdataBlock;
+ externalSubsetSAXFunc externalSubset;
+ unsigned int initialized;
+};
+
+
+/**
+ * xmlExternalEntityLoader:
+ * @URL: The System ID of the resource requested
+ * @ID: The Public ID of the resource requested
+ * @context: the XML parser context
+ *
+ * External entity loaders types.
+ *
+ * Returns the entity input parser.
+ */
+typedef xmlParserInputPtr (*xmlExternalEntityLoader) (const char *URL,
+ const char *ID,
+ xmlParserCtxtPtr context);
+
+#ifdef __cplusplus
+}
+#endif
+
+#include <libxml/encoding.h>
+#include <libxml/xmlIO.h>
+#include <libxml/globals.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/*
+ * Init/Cleanup
+ */
+XMLPUBFUN void XMLCALL
+ xmlInitParser (void);
+XMLPUBFUN void XMLCALL
+ xmlCleanupParser (void);
+
+/*
+ * Input functions
+ */
+XMLPUBFUN int XMLCALL
+ xmlParserInputRead (xmlParserInputPtr in,
+ int len);
+XMLPUBFUN int XMLCALL
+ xmlParserInputGrow (xmlParserInputPtr in,
+ int len);
+
+/*
+ * Basic parsing Interfaces
+ */
+#ifdef LIBXML_SAX1_ENABLED
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlParseDoc (const xmlChar *cur);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlParseFile (const char *filename);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlParseMemory (const char *buffer,
+ int size);
+#endif /* LIBXML_SAX1_ENABLED */
+XMLPUBFUN int XMLCALL
+ xmlSubstituteEntitiesDefault(int val);
+XMLPUBFUN int XMLCALL
+ xmlKeepBlanksDefault (int val);
+XMLPUBFUN void XMLCALL
+ xmlStopParser (xmlParserCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL
+ xmlPedanticParserDefault(int val);
+XMLPUBFUN int XMLCALL
+ xmlLineNumbersDefault (int val);
+
+#ifdef LIBXML_SAX1_ENABLED
+/*
+ * Recovery mode
+ */
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlRecoverDoc (const xmlChar *cur);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlRecoverMemory (const char *buffer,
+ int size);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlRecoverFile (const char *filename);
+#endif /* LIBXML_SAX1_ENABLED */
+
+/*
+ * Less common routines and SAX interfaces
+ */
+XMLPUBFUN int XMLCALL
+ xmlParseDocument (xmlParserCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL
+ xmlParseExtParsedEnt (xmlParserCtxtPtr ctxt);
+#ifdef LIBXML_SAX1_ENABLED
+XMLPUBFUN int XMLCALL
+ xmlSAXUserParseFile (xmlSAXHandlerPtr sax,
+ void *user_data,
+ const char *filename);
+XMLPUBFUN int XMLCALL
+ xmlSAXUserParseMemory (xmlSAXHandlerPtr sax,
+ void *user_data,
+ const char *buffer,
+ int size);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlSAXParseDoc (xmlSAXHandlerPtr sax,
+ const xmlChar *cur,
+ int recovery);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlSAXParseMemory (xmlSAXHandlerPtr sax,
+ const char *buffer,
+ int size,
+ int recovery);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlSAXParseMemoryWithData (xmlSAXHandlerPtr sax,
+ const char *buffer,
+ int size,
+ int recovery,
+ void *data);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlSAXParseFile (xmlSAXHandlerPtr sax,
+ const char *filename,
+ int recovery);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlSAXParseFileWithData (xmlSAXHandlerPtr sax,
+ const char *filename,
+ int recovery,
+ void *data);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlSAXParseEntity (xmlSAXHandlerPtr sax,
+ const char *filename);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlParseEntity (const char *filename);
+#endif /* LIBXML_SAX1_ENABLED */
+
+#ifdef LIBXML_VALID_ENABLED
+XMLPUBFUN xmlDtdPtr XMLCALL
+ xmlSAXParseDTD (xmlSAXHandlerPtr sax,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+XMLPUBFUN xmlDtdPtr XMLCALL
+ xmlParseDTD (const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+XMLPUBFUN xmlDtdPtr XMLCALL
+ xmlIOParseDTD (xmlSAXHandlerPtr sax,
+ xmlParserInputBufferPtr input,
+ xmlCharEncoding enc);
+#endif /* LIBXML_VALID_ENABLE */
+#ifdef LIBXML_SAX1_ENABLED
+XMLPUBFUN int XMLCALL
+ xmlParseBalancedChunkMemory(xmlDocPtr doc,
+ xmlSAXHandlerPtr sax,
+ void *user_data,
+ int depth,
+ const xmlChar *string,
+ xmlNodePtr *lst);
+#endif /* LIBXML_SAX1_ENABLED */
+XMLPUBFUN xmlParserErrors XMLCALL
+ xmlParseInNodeContext (xmlNodePtr node,
+ const char *data,
+ int datalen,
+ int options,
+ xmlNodePtr *lst);
+#ifdef LIBXML_SAX1_ENABLED
+XMLPUBFUN int XMLCALL
+ xmlParseBalancedChunkMemoryRecover(xmlDocPtr doc,
+ xmlSAXHandlerPtr sax,
+ void *user_data,
+ int depth,
+ const xmlChar *string,
+ xmlNodePtr *lst,
+ int recover);
+XMLPUBFUN int XMLCALL
+ xmlParseExternalEntity (xmlDocPtr doc,
+ xmlSAXHandlerPtr sax,
+ void *user_data,
+ int depth,
+ const xmlChar *URL,
+ const xmlChar *ID,
+ xmlNodePtr *lst);
+#endif /* LIBXML_SAX1_ENABLED */
+XMLPUBFUN int XMLCALL
+ xmlParseCtxtExternalEntity(xmlParserCtxtPtr ctx,
+ const xmlChar *URL,
+ const xmlChar *ID,
+ xmlNodePtr *lst);
+
+/*
+ * Parser contexts handling.
+ */
+XMLPUBFUN xmlParserCtxtPtr XMLCALL
+ xmlNewParserCtxt (void);
+XMLPUBFUN int XMLCALL
+ xmlInitParserCtxt (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlClearParserCtxt (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlFreeParserCtxt (xmlParserCtxtPtr ctxt);
+#ifdef LIBXML_SAX1_ENABLED
+XMLPUBFUN void XMLCALL
+ xmlSetupParserForBuffer (xmlParserCtxtPtr ctxt,
+ const xmlChar* buffer,
+ const char *filename);
+#endif /* LIBXML_SAX1_ENABLED */
+XMLPUBFUN xmlParserCtxtPtr XMLCALL
+ xmlCreateDocParserCtxt (const xmlChar *cur);
+
+#ifdef LIBXML_LEGACY_ENABLED
+/*
+ * Reading/setting optional parsing features.
+ */
+XMLPUBFUN int XMLCALL
+ xmlGetFeaturesList (int *len,
+ const char **result);
+XMLPUBFUN int XMLCALL
+ xmlGetFeature (xmlParserCtxtPtr ctxt,
+ const char *name,
+ void *result);
+XMLPUBFUN int XMLCALL
+ xmlSetFeature (xmlParserCtxtPtr ctxt,
+ const char *name,
+ void *value);
+#endif /* LIBXML_LEGACY_ENABLED */
+
+#ifdef LIBXML_PUSH_ENABLED
+/*
+ * Interfaces for the Push mode.
+ */
+XMLPUBFUN xmlParserCtxtPtr XMLCALL
+ xmlCreatePushParserCtxt(xmlSAXHandlerPtr sax,
+ void *user_data,
+ const char *chunk,
+ int size,
+ const char *filename);
+XMLPUBFUN int XMLCALL
+ xmlParseChunk (xmlParserCtxtPtr ctxt,
+ const char *chunk,
+ int size,
+ int terminate);
+#endif /* LIBXML_PUSH_ENABLED */
+
+/*
+ * Special I/O mode.
+ */
+
+XMLPUBFUN xmlParserCtxtPtr XMLCALL
+ xmlCreateIOParserCtxt (xmlSAXHandlerPtr sax,
+ void *user_data,
+ xmlInputReadCallback ioread,
+ xmlInputCloseCallback ioclose,
+ void *ioctx,
+ xmlCharEncoding enc);
+
+XMLPUBFUN xmlParserInputPtr XMLCALL
+ xmlNewIOInputStream (xmlParserCtxtPtr ctxt,
+ xmlParserInputBufferPtr input,
+ xmlCharEncoding enc);
+
+/*
+ * Node infos.
+ */
+XMLPUBFUN const xmlParserNodeInfo* XMLCALL
+ xmlParserFindNodeInfo (const xmlParserCtxtPtr ctxt,
+ const xmlNodePtr node);
+XMLPUBFUN void XMLCALL
+ xmlInitNodeInfoSeq (xmlParserNodeInfoSeqPtr seq);
+XMLPUBFUN void XMLCALL
+ xmlClearNodeInfoSeq (xmlParserNodeInfoSeqPtr seq);
+XMLPUBFUN unsigned long XMLCALL
+ xmlParserFindNodeInfoIndex(const xmlParserNodeInfoSeqPtr seq,
+ const xmlNodePtr node);
+XMLPUBFUN void XMLCALL
+ xmlParserAddNodeInfo (xmlParserCtxtPtr ctxt,
+ const xmlParserNodeInfoPtr info);
+
+/*
+ * External entities handling actually implemented in xmlIO.
+ */
+
+XMLPUBFUN void XMLCALL
+ xmlSetExternalEntityLoader(xmlExternalEntityLoader f);
+XMLPUBFUN xmlExternalEntityLoader XMLCALL
+ xmlGetExternalEntityLoader(void);
+XMLPUBFUN xmlParserInputPtr XMLCALL
+ xmlLoadExternalEntity (const char *URL,
+ const char *ID,
+ xmlParserCtxtPtr ctxt);
+
+/*
+ * Index lookup, actually implemented in the encoding module
+ */
+XMLPUBFUN long XMLCALL
+ xmlByteConsumed (xmlParserCtxtPtr ctxt);
+
+/*
+ * New set of simpler/more flexible APIs
+ */
+/**
+ * xmlParserOption:
+ *
+ * This is the set of XML parser options that can be passed down
+ * to the xmlReadDoc() and similar calls.
+ */
+typedef enum {
+ XML_PARSE_RECOVER = 1<<0, /* recover on errors */
+ XML_PARSE_NOENT = 1<<1, /* substitute entities */
+ XML_PARSE_DTDLOAD = 1<<2, /* load the external subset */
+ XML_PARSE_DTDATTR = 1<<3, /* default DTD attributes */
+ XML_PARSE_DTDVALID = 1<<4, /* validate with the DTD */
+ XML_PARSE_NOERROR = 1<<5, /* suppress error reports */
+ XML_PARSE_NOWARNING = 1<<6, /* suppress warning reports */
+ XML_PARSE_PEDANTIC = 1<<7, /* pedantic error reporting */
+ XML_PARSE_NOBLANKS = 1<<8, /* remove blank nodes */
+ XML_PARSE_SAX1 = 1<<9, /* use the SAX1 interface internally */
+ XML_PARSE_XINCLUDE = 1<<10,/* Implement XInclude substitition */
+ XML_PARSE_NONET = 1<<11,/* Forbid network access */
+ XML_PARSE_NODICT = 1<<12,/* Do not reuse the context dictionnary */
+ XML_PARSE_NSCLEAN = 1<<13,/* remove redundant namespaces declarations */
+ XML_PARSE_NOCDATA = 1<<14,/* merge CDATA as text nodes */
+ XML_PARSE_NOXINCNODE= 1<<15,/* do not generate XINCLUDE START/END nodes */
+ XML_PARSE_COMPACT = 1<<16,/* compact small text nodes; no modification of
+ the tree allowed afterwards (will possibly
+ crash if you try to modify the tree) */
+ XML_PARSE_OLD10 = 1<<17,/* parse using XML-1.0 before update 5 */
+ XML_PARSE_NOBASEFIX = 1<<18,/* do not fixup XINCLUDE xml:base uris */
+ XML_PARSE_HUGE = 1<<19,/* relax any hardcoded limit from the parser */
+ XML_PARSE_OLDSAX = 1<<20,/* parse using SAX2 interface before 2.7.0 */
+ XML_PARSE_IGNORE_ENC= 1<<21,/* ignore internal document encoding hint */
+ XML_PARSE_BIG_LINES = 1<<22 /* Store big lines numbers in text PSVI field */
+} xmlParserOption;
+
+XMLPUBFUN void XMLCALL
+ xmlCtxtReset (xmlParserCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL
+ xmlCtxtResetPush (xmlParserCtxtPtr ctxt,
+ const char *chunk,
+ int size,
+ const char *filename,
+ const char *encoding);
+XMLPUBFUN int XMLCALL
+ xmlCtxtUseOptions (xmlParserCtxtPtr ctxt,
+ int options);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlReadDoc (const xmlChar *cur,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlReadFile (const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlReadMemory (const char *buffer,
+ int size,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlReadFd (int fd,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlReadIO (xmlInputReadCallback ioread,
+ xmlInputCloseCallback ioclose,
+ void *ioctx,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlCtxtReadDoc (xmlParserCtxtPtr ctxt,
+ const xmlChar *cur,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlCtxtReadFile (xmlParserCtxtPtr ctxt,
+ const char *filename,
+ const char *encoding,
+ int options);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlCtxtReadMemory (xmlParserCtxtPtr ctxt,
+ const char *buffer,
+ int size,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlCtxtReadFd (xmlParserCtxtPtr ctxt,
+ int fd,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlCtxtReadIO (xmlParserCtxtPtr ctxt,
+ xmlInputReadCallback ioread,
+ xmlInputCloseCallback ioclose,
+ void *ioctx,
+ const char *URL,
+ const char *encoding,
+ int options);
+
+/*
+ * Library wide options
+ */
+/**
+ * xmlFeature:
+ *
+ * Used to examine the existance of features that can be enabled
+ * or disabled at compile-time.
+ * They used to be called XML_FEATURE_xxx but this clashed with Expat
+ */
+typedef enum {
+ XML_WITH_THREAD = 1,
+ XML_WITH_TREE = 2,
+ XML_WITH_OUTPUT = 3,
+ XML_WITH_PUSH = 4,
+ XML_WITH_READER = 5,
+ XML_WITH_PATTERN = 6,
+ XML_WITH_WRITER = 7,
+ XML_WITH_SAX1 = 8,
+ XML_WITH_FTP = 9,
+ XML_WITH_HTTP = 10,
+ XML_WITH_VALID = 11,
+ XML_WITH_HTML = 12,
+ XML_WITH_LEGACY = 13,
+ XML_WITH_C14N = 14,
+ XML_WITH_CATALOG = 15,
+ XML_WITH_XPATH = 16,
+ XML_WITH_XPTR = 17,
+ XML_WITH_XINCLUDE = 18,
+ XML_WITH_ICONV = 19,
+ XML_WITH_ISO8859X = 20,
+ XML_WITH_UNICODE = 21,
+ XML_WITH_REGEXP = 22,
+ XML_WITH_AUTOMATA = 23,
+ XML_WITH_EXPR = 24,
+ XML_WITH_SCHEMAS = 25,
+ XML_WITH_SCHEMATRON = 26,
+ XML_WITH_MODULES = 27,
+ XML_WITH_DEBUG = 28,
+ XML_WITH_DEBUG_MEM = 29,
+ XML_WITH_DEBUG_RUN = 30,
+ XML_WITH_ZLIB = 31,
+ XML_WITH_ICU = 32,
+ XML_WITH_LZMA = 33,
+ XML_WITH_NONE = 99999 /* just to be sure of allocation size */
+} xmlFeature;
+
+XMLPUBFUN int XMLCALL
+ xmlHasFeature (xmlFeature feature);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* __XML_PARSER_H__ */
diff --git a/libxml2/include/libxml/parserInternals.h b/libxml2/include/libxml/parserInternals.h
new file mode 100644
index 000000000..6065320eb
--- /dev/null
+++ b/libxml2/include/libxml/parserInternals.h
@@ -0,0 +1,644 @@
+/*
+ * Summary: internals routines and limits exported by the parser.
+ * Description: this module exports a number of internal parsing routines
+ * they are not really all intended for applications but
+ * can prove useful doing low level processing.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_PARSER_INTERNALS_H__
+#define __XML_PARSER_INTERNALS_H__
+
+#include <libxml/xmlversion.h>
+#include <libxml/parser.h>
+#include <libxml/HTMLparser.h>
+#include <libxml/chvalid.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * xmlParserMaxDepth:
+ *
+ * arbitrary depth limit for the XML documents that we allow to
+ * process. This is not a limitation of the parser but a safety
+ * boundary feature, use XML_PARSE_HUGE option to override it.
+ */
+XMLPUBVAR unsigned int xmlParserMaxDepth;
+
+/**
+ * XML_MAX_TEXT_LENGTH:
+ *
+ * Maximum size allowed for a single text node when building a tree.
+ * This is not a limitation of the parser but a safety boundary feature,
+ * use XML_PARSE_HUGE option to override it.
+ * Introduced in 2.9.0
+ */
+#define XML_MAX_TEXT_LENGTH 10000000
+
+/**
+ * XML_MAX_NAME_LENGTH:
+ *
+ * Maximum size allowed for a markup identitier
+ * This is not a limitation of the parser but a safety boundary feature,
+ * use XML_PARSE_HUGE option to override it.
+ * Note that with the use of parsing dictionaries overriding the limit
+ * may result in more runtime memory usage in face of "unfriendly' content
+ * Introduced in 2.9.0
+ */
+#define XML_MAX_NAME_LENGTH 50000
+
+/**
+ * XML_MAX_DICTIONARY_LIMIT:
+ *
+ * Maximum size allowed by the parser for a dictionary by default
+ * This is not a limitation of the parser but a safety boundary feature,
+ * use XML_PARSE_HUGE option to override it.
+ * Introduced in 2.9.0
+ */
+#define XML_MAX_DICTIONARY_LIMIT 10000000
+
+/**
+ * XML_MAX_LOOKUP_LIMIT:
+ *
+ * Maximum size allowed by the parser for ahead lookup
+ * This is an upper boundary enforced by the parser to avoid bad
+ * behaviour on "unfriendly' content
+ * Introduced in 2.9.0
+ */
+#define XML_MAX_LOOKUP_LIMIT 10000000
+
+/**
+ * XML_MAX_NAMELEN:
+ *
+ * Identifiers can be longer, but this will be more costly
+ * at runtime.
+ */
+#define XML_MAX_NAMELEN 100
+
+/**
+ * INPUT_CHUNK:
+ *
+ * The parser tries to always have that amount of input ready.
+ * One of the point is providing context when reporting errors.
+ */
+#define INPUT_CHUNK 250
+
+/************************************************************************
+ * *
+ * UNICODE version of the macros. *
+ * *
+ ************************************************************************/
+/**
+ * IS_BYTE_CHAR:
+ * @c: an byte value (int)
+ *
+ * Macro to check the following production in the XML spec:
+ *
+ * [2] Char ::= #x9 | #xA | #xD | [#x20...]
+ * any byte character in the accepted range
+ */
+#define IS_BYTE_CHAR(c) xmlIsChar_ch(c)
+
+/**
+ * IS_CHAR:
+ * @c: an UNICODE value (int)
+ *
+ * Macro to check the following production in the XML spec:
+ *
+ * [2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD]
+ * | [#x10000-#x10FFFF]
+ * any Unicode character, excluding the surrogate blocks, FFFE, and FFFF.
+ */
+#define IS_CHAR(c) xmlIsCharQ(c)
+
+/**
+ * IS_CHAR_CH:
+ * @c: an xmlChar (usually an unsigned char)
+ *
+ * Behaves like IS_CHAR on single-byte value
+ */
+#define IS_CHAR_CH(c) xmlIsChar_ch(c)
+
+/**
+ * IS_BLANK:
+ * @c: an UNICODE value (int)
+ *
+ * Macro to check the following production in the XML spec:
+ *
+ * [3] S ::= (#x20 | #x9 | #xD | #xA)+
+ */
+#define IS_BLANK(c) xmlIsBlankQ(c)
+
+/**
+ * IS_BLANK_CH:
+ * @c: an xmlChar value (normally unsigned char)
+ *
+ * Behaviour same as IS_BLANK
+ */
+#define IS_BLANK_CH(c) xmlIsBlank_ch(c)
+
+/**
+ * IS_BASECHAR:
+ * @c: an UNICODE value (int)
+ *
+ * Macro to check the following production in the XML spec:
+ *
+ * [85] BaseChar ::= ... long list see REC ...
+ */
+#define IS_BASECHAR(c) xmlIsBaseCharQ(c)
+
+/**
+ * IS_DIGIT:
+ * @c: an UNICODE value (int)
+ *
+ * Macro to check the following production in the XML spec:
+ *
+ * [88] Digit ::= ... long list see REC ...
+ */
+#define IS_DIGIT(c) xmlIsDigitQ(c)
+
+/**
+ * IS_DIGIT_CH:
+ * @c: an xmlChar value (usually an unsigned char)
+ *
+ * Behaves like IS_DIGIT but with a single byte argument
+ */
+#define IS_DIGIT_CH(c) xmlIsDigit_ch(c)
+
+/**
+ * IS_COMBINING:
+ * @c: an UNICODE value (int)
+ *
+ * Macro to check the following production in the XML spec:
+ *
+ * [87] CombiningChar ::= ... long list see REC ...
+ */
+#define IS_COMBINING(c) xmlIsCombiningQ(c)
+
+/**
+ * IS_COMBINING_CH:
+ * @c: an xmlChar (usually an unsigned char)
+ *
+ * Always false (all combining chars > 0xff)
+ */
+#define IS_COMBINING_CH(c) 0
+
+/**
+ * IS_EXTENDER:
+ * @c: an UNICODE value (int)
+ *
+ * Macro to check the following production in the XML spec:
+ *
+ *
+ * [89] Extender ::= #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 |
+ * #x0E46 | #x0EC6 | #x3005 | [#x3031-#x3035] |
+ * [#x309D-#x309E] | [#x30FC-#x30FE]
+ */
+#define IS_EXTENDER(c) xmlIsExtenderQ(c)
+
+/**
+ * IS_EXTENDER_CH:
+ * @c: an xmlChar value (usually an unsigned char)
+ *
+ * Behaves like IS_EXTENDER but with a single-byte argument
+ */
+#define IS_EXTENDER_CH(c) xmlIsExtender_ch(c)
+
+/**
+ * IS_IDEOGRAPHIC:
+ * @c: an UNICODE value (int)
+ *
+ * Macro to check the following production in the XML spec:
+ *
+ *
+ * [86] Ideographic ::= [#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029]
+ */
+#define IS_IDEOGRAPHIC(c) xmlIsIdeographicQ(c)
+
+/**
+ * IS_LETTER:
+ * @c: an UNICODE value (int)
+ *
+ * Macro to check the following production in the XML spec:
+ *
+ *
+ * [84] Letter ::= BaseChar | Ideographic
+ */
+#define IS_LETTER(c) (IS_BASECHAR(c) || IS_IDEOGRAPHIC(c))
+
+/**
+ * IS_LETTER_CH:
+ * @c: an xmlChar value (normally unsigned char)
+ *
+ * Macro behaves like IS_LETTER, but only check base chars
+ *
+ */
+#define IS_LETTER_CH(c) xmlIsBaseChar_ch(c)
+
+/**
+ * IS_ASCII_LETTER:
+ * @c: an xmlChar value
+ *
+ * Macro to check [a-zA-Z]
+ *
+ */
+#define IS_ASCII_LETTER(c) (((0x41 <= (c)) && ((c) <= 0x5a)) || \
+ ((0x61 <= (c)) && ((c) <= 0x7a)))
+
+/**
+ * IS_ASCII_DIGIT:
+ * @c: an xmlChar value
+ *
+ * Macro to check [0-9]
+ *
+ */
+#define IS_ASCII_DIGIT(c) ((0x30 <= (c)) && ((c) <= 0x39))
+
+/**
+ * IS_PUBIDCHAR:
+ * @c: an UNICODE value (int)
+ *
+ * Macro to check the following production in the XML spec:
+ *
+ *
+ * [13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]
+ */
+#define IS_PUBIDCHAR(c) xmlIsPubidCharQ(c)
+
+/**
+ * IS_PUBIDCHAR_CH:
+ * @c: an xmlChar value (normally unsigned char)
+ *
+ * Same as IS_PUBIDCHAR but for single-byte value
+ */
+#define IS_PUBIDCHAR_CH(c) xmlIsPubidChar_ch(c)
+
+/**
+ * SKIP_EOL:
+ * @p: and UTF8 string pointer
+ *
+ * Skips the end of line chars.
+ */
+#define SKIP_EOL(p) \
+ if (*(p) == 0x13) { p++ ; if (*(p) == 0x10) p++; } \
+ if (*(p) == 0x10) { p++ ; if (*(p) == 0x13) p++; }
+
+/**
+ * MOVETO_ENDTAG:
+ * @p: and UTF8 string pointer
+ *
+ * Skips to the next '>' char.
+ */
+#define MOVETO_ENDTAG(p) \
+ while ((*p) && (*(p) != '>')) (p)++
+
+/**
+ * MOVETO_STARTTAG:
+ * @p: and UTF8 string pointer
+ *
+ * Skips to the next '<' char.
+ */
+#define MOVETO_STARTTAG(p) \
+ while ((*p) && (*(p) != '<')) (p)++
+
+/**
+ * Global variables used for predefined strings.
+ */
+XMLPUBVAR const xmlChar xmlStringText[];
+XMLPUBVAR const xmlChar xmlStringTextNoenc[];
+XMLPUBVAR const xmlChar xmlStringComment[];
+
+/*
+ * Function to finish the work of the macros where needed.
+ */
+XMLPUBFUN int XMLCALL xmlIsLetter (int c);
+
+/**
+ * Parser context.
+ */
+XMLPUBFUN xmlParserCtxtPtr XMLCALL
+ xmlCreateFileParserCtxt (const char *filename);
+XMLPUBFUN xmlParserCtxtPtr XMLCALL
+ xmlCreateURLParserCtxt (const char *filename,
+ int options);
+XMLPUBFUN xmlParserCtxtPtr XMLCALL
+ xmlCreateMemoryParserCtxt(const char *buffer,
+ int size);
+XMLPUBFUN xmlParserCtxtPtr XMLCALL
+ xmlCreateEntityParserCtxt(const xmlChar *URL,
+ const xmlChar *ID,
+ const xmlChar *base);
+XMLPUBFUN int XMLCALL
+ xmlSwitchEncoding (xmlParserCtxtPtr ctxt,
+ xmlCharEncoding enc);
+XMLPUBFUN int XMLCALL
+ xmlSwitchToEncoding (xmlParserCtxtPtr ctxt,
+ xmlCharEncodingHandlerPtr handler);
+XMLPUBFUN int XMLCALL
+ xmlSwitchInputEncoding (xmlParserCtxtPtr ctxt,
+ xmlParserInputPtr input,
+ xmlCharEncodingHandlerPtr handler);
+
+#ifdef IN_LIBXML
+/* internal error reporting */
+XMLPUBFUN void XMLCALL
+ __xmlErrEncoding (xmlParserCtxtPtr ctxt,
+ xmlParserErrors xmlerr,
+ const char *msg,
+ const xmlChar * str1,
+ const xmlChar * str2);
+#endif
+
+/**
+ * Input Streams.
+ */
+XMLPUBFUN xmlParserInputPtr XMLCALL
+ xmlNewStringInputStream (xmlParserCtxtPtr ctxt,
+ const xmlChar *buffer);
+XMLPUBFUN xmlParserInputPtr XMLCALL
+ xmlNewEntityInputStream (xmlParserCtxtPtr ctxt,
+ xmlEntityPtr entity);
+XMLPUBFUN int XMLCALL
+ xmlPushInput (xmlParserCtxtPtr ctxt,
+ xmlParserInputPtr input);
+XMLPUBFUN xmlChar XMLCALL
+ xmlPopInput (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlFreeInputStream (xmlParserInputPtr input);
+XMLPUBFUN xmlParserInputPtr XMLCALL
+ xmlNewInputFromFile (xmlParserCtxtPtr ctxt,
+ const char *filename);
+XMLPUBFUN xmlParserInputPtr XMLCALL
+ xmlNewInputStream (xmlParserCtxtPtr ctxt);
+
+/**
+ * Namespaces.
+ */
+XMLPUBFUN xmlChar * XMLCALL
+ xmlSplitQName (xmlParserCtxtPtr ctxt,
+ const xmlChar *name,
+ xmlChar **prefix);
+
+/**
+ * Generic production rules.
+ */
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlParseName (xmlParserCtxtPtr ctxt);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlParseNmtoken (xmlParserCtxtPtr ctxt);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlParseEntityValue (xmlParserCtxtPtr ctxt,
+ xmlChar **orig);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlParseAttValue (xmlParserCtxtPtr ctxt);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlParseSystemLiteral (xmlParserCtxtPtr ctxt);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlParsePubidLiteral (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlParseCharData (xmlParserCtxtPtr ctxt,
+ int cdata);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlParseExternalID (xmlParserCtxtPtr ctxt,
+ xmlChar **publicID,
+ int strict);
+XMLPUBFUN void XMLCALL
+ xmlParseComment (xmlParserCtxtPtr ctxt);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlParsePITarget (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlParsePI (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlParseNotationDecl (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlParseEntityDecl (xmlParserCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL
+ xmlParseDefaultDecl (xmlParserCtxtPtr ctxt,
+ xmlChar **value);
+XMLPUBFUN xmlEnumerationPtr XMLCALL
+ xmlParseNotationType (xmlParserCtxtPtr ctxt);
+XMLPUBFUN xmlEnumerationPtr XMLCALL
+ xmlParseEnumerationType (xmlParserCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL
+ xmlParseEnumeratedType (xmlParserCtxtPtr ctxt,
+ xmlEnumerationPtr *tree);
+XMLPUBFUN int XMLCALL
+ xmlParseAttributeType (xmlParserCtxtPtr ctxt,
+ xmlEnumerationPtr *tree);
+XMLPUBFUN void XMLCALL
+ xmlParseAttributeListDecl(xmlParserCtxtPtr ctxt);
+XMLPUBFUN xmlElementContentPtr XMLCALL
+ xmlParseElementMixedContentDecl
+ (xmlParserCtxtPtr ctxt,
+ int inputchk);
+XMLPUBFUN xmlElementContentPtr XMLCALL
+ xmlParseElementChildrenContentDecl
+ (xmlParserCtxtPtr ctxt,
+ int inputchk);
+XMLPUBFUN int XMLCALL
+ xmlParseElementContentDecl(xmlParserCtxtPtr ctxt,
+ const xmlChar *name,
+ xmlElementContentPtr *result);
+XMLPUBFUN int XMLCALL
+ xmlParseElementDecl (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlParseMarkupDecl (xmlParserCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL
+ xmlParseCharRef (xmlParserCtxtPtr ctxt);
+XMLPUBFUN xmlEntityPtr XMLCALL
+ xmlParseEntityRef (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlParseReference (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlParsePEReference (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlParseDocTypeDecl (xmlParserCtxtPtr ctxt);
+#ifdef LIBXML_SAX1_ENABLED
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlParseAttribute (xmlParserCtxtPtr ctxt,
+ xmlChar **value);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlParseStartTag (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlParseEndTag (xmlParserCtxtPtr ctxt);
+#endif /* LIBXML_SAX1_ENABLED */
+XMLPUBFUN void XMLCALL
+ xmlParseCDSect (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlParseContent (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlParseElement (xmlParserCtxtPtr ctxt);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlParseVersionNum (xmlParserCtxtPtr ctxt);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlParseVersionInfo (xmlParserCtxtPtr ctxt);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlParseEncName (xmlParserCtxtPtr ctxt);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlParseEncodingDecl (xmlParserCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL
+ xmlParseSDDecl (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlParseXMLDecl (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlParseTextDecl (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlParseMisc (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlParseExternalSubset (xmlParserCtxtPtr ctxt,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+/**
+ * XML_SUBSTITUTE_NONE:
+ *
+ * If no entities need to be substituted.
+ */
+#define XML_SUBSTITUTE_NONE 0
+/**
+ * XML_SUBSTITUTE_REF:
+ *
+ * Whether general entities need to be substituted.
+ */
+#define XML_SUBSTITUTE_REF 1
+/**
+ * XML_SUBSTITUTE_PEREF:
+ *
+ * Whether parameter entities need to be substituted.
+ */
+#define XML_SUBSTITUTE_PEREF 2
+/**
+ * XML_SUBSTITUTE_BOTH:
+ *
+ * Both general and parameter entities need to be substituted.
+ */
+#define XML_SUBSTITUTE_BOTH 3
+
+XMLPUBFUN xmlChar * XMLCALL
+ xmlStringDecodeEntities (xmlParserCtxtPtr ctxt,
+ const xmlChar *str,
+ int what,
+ xmlChar end,
+ xmlChar end2,
+ xmlChar end3);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlStringLenDecodeEntities (xmlParserCtxtPtr ctxt,
+ const xmlChar *str,
+ int len,
+ int what,
+ xmlChar end,
+ xmlChar end2,
+ xmlChar end3);
+
+/*
+ * Generated by MACROS on top of parser.c c.f. PUSH_AND_POP.
+ */
+XMLPUBFUN int XMLCALL nodePush (xmlParserCtxtPtr ctxt,
+ xmlNodePtr value);
+XMLPUBFUN xmlNodePtr XMLCALL nodePop (xmlParserCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL inputPush (xmlParserCtxtPtr ctxt,
+ xmlParserInputPtr value);
+XMLPUBFUN xmlParserInputPtr XMLCALL inputPop (xmlParserCtxtPtr ctxt);
+XMLPUBFUN const xmlChar * XMLCALL namePop (xmlParserCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL namePush (xmlParserCtxtPtr ctxt,
+ const xmlChar *value);
+
+/*
+ * other commodities shared between parser.c and parserInternals.
+ */
+XMLPUBFUN int XMLCALL xmlSkipBlankChars (xmlParserCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL xmlStringCurrentChar (xmlParserCtxtPtr ctxt,
+ const xmlChar *cur,
+ int *len);
+XMLPUBFUN void XMLCALL xmlParserHandlePEReference(xmlParserCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL xmlCheckLanguageID (const xmlChar *lang);
+
+/*
+ * Really core function shared with HTML parser.
+ */
+XMLPUBFUN int XMLCALL xmlCurrentChar (xmlParserCtxtPtr ctxt,
+ int *len);
+XMLPUBFUN int XMLCALL xmlCopyCharMultiByte (xmlChar *out,
+ int val);
+XMLPUBFUN int XMLCALL xmlCopyChar (int len,
+ xmlChar *out,
+ int val);
+XMLPUBFUN void XMLCALL xmlNextChar (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL xmlParserInputShrink (xmlParserInputPtr in);
+
+#ifdef LIBXML_HTML_ENABLED
+/*
+ * Actually comes from the HTML parser but launched from the init stuff.
+ */
+XMLPUBFUN void XMLCALL htmlInitAutoClose (void);
+XMLPUBFUN htmlParserCtxtPtr XMLCALL htmlCreateFileParserCtxt(const char *filename,
+ const char *encoding);
+#endif
+
+/*
+ * Specific function to keep track of entities references
+ * and used by the XSLT debugger.
+ */
+#ifdef LIBXML_LEGACY_ENABLED
+/**
+ * xmlEntityReferenceFunc:
+ * @ent: the entity
+ * @firstNode: the fist node in the chunk
+ * @lastNode: the last nod in the chunk
+ *
+ * Callback function used when one needs to be able to track back the
+ * provenance of a chunk of nodes inherited from an entity replacement.
+ */
+typedef void (*xmlEntityReferenceFunc) (xmlEntityPtr ent,
+ xmlNodePtr firstNode,
+ xmlNodePtr lastNode);
+
+XMLPUBFUN void XMLCALL xmlSetEntityReferenceFunc (xmlEntityReferenceFunc func);
+
+XMLPUBFUN xmlChar * XMLCALL
+ xmlParseQuotedString (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlParseNamespace (xmlParserCtxtPtr ctxt);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlNamespaceParseNSDef (xmlParserCtxtPtr ctxt);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlScanName (xmlParserCtxtPtr ctxt);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlNamespaceParseNCName (xmlParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL xmlParserHandleReference(xmlParserCtxtPtr ctxt);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlNamespaceParseQName (xmlParserCtxtPtr ctxt,
+ xmlChar **prefix);
+/**
+ * Entities
+ */
+XMLPUBFUN xmlChar * XMLCALL
+ xmlDecodeEntities (xmlParserCtxtPtr ctxt,
+ int len,
+ int what,
+ xmlChar end,
+ xmlChar end2,
+ xmlChar end3);
+XMLPUBFUN void XMLCALL
+ xmlHandleEntity (xmlParserCtxtPtr ctxt,
+ xmlEntityPtr entity);
+
+#endif /* LIBXML_LEGACY_ENABLED */
+
+#ifdef IN_LIBXML
+/*
+ * internal only
+ */
+XMLPUBFUN void XMLCALL
+ xmlErrMemory (xmlParserCtxtPtr ctxt,
+ const char *extra);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* __XML_PARSER_INTERNALS_H__ */
diff --git a/libxml2/include/libxml/pattern.h b/libxml2/include/libxml/pattern.h
new file mode 100644
index 000000000..97d2cd2bc
--- /dev/null
+++ b/libxml2/include/libxml/pattern.h
@@ -0,0 +1,100 @@
+/*
+ * Summary: pattern expression handling
+ * Description: allows to compile and test pattern expressions for nodes
+ * either in a tree or based on a parser state.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_PATTERN_H__
+#define __XML_PATTERN_H__
+
+#include <libxml/xmlversion.h>
+#include <libxml/tree.h>
+#include <libxml/dict.h>
+
+#ifdef LIBXML_PATTERN_ENABLED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * xmlPattern:
+ *
+ * A compiled (XPath based) pattern to select nodes
+ */
+typedef struct _xmlPattern xmlPattern;
+typedef xmlPattern *xmlPatternPtr;
+
+/**
+ * xmlPatternFlags:
+ *
+ * This is the set of options affecting the behaviour of pattern
+ * matching with this module
+ *
+ */
+typedef enum {
+ XML_PATTERN_DEFAULT = 0, /* simple pattern match */
+ XML_PATTERN_XPATH = 1<<0, /* standard XPath pattern */
+ XML_PATTERN_XSSEL = 1<<1, /* XPath subset for schema selector */
+ XML_PATTERN_XSFIELD = 1<<2 /* XPath subset for schema field */
+} xmlPatternFlags;
+
+XMLPUBFUN void XMLCALL
+ xmlFreePattern (xmlPatternPtr comp);
+
+XMLPUBFUN void XMLCALL
+ xmlFreePatternList (xmlPatternPtr comp);
+
+XMLPUBFUN xmlPatternPtr XMLCALL
+ xmlPatterncompile (const xmlChar *pattern,
+ xmlDict *dict,
+ int flags,
+ const xmlChar **namespaces);
+XMLPUBFUN int XMLCALL
+ xmlPatternMatch (xmlPatternPtr comp,
+ xmlNodePtr node);
+
+/* streaming interfaces */
+typedef struct _xmlStreamCtxt xmlStreamCtxt;
+typedef xmlStreamCtxt *xmlStreamCtxtPtr;
+
+XMLPUBFUN int XMLCALL
+ xmlPatternStreamable (xmlPatternPtr comp);
+XMLPUBFUN int XMLCALL
+ xmlPatternMaxDepth (xmlPatternPtr comp);
+XMLPUBFUN int XMLCALL
+ xmlPatternMinDepth (xmlPatternPtr comp);
+XMLPUBFUN int XMLCALL
+ xmlPatternFromRoot (xmlPatternPtr comp);
+XMLPUBFUN xmlStreamCtxtPtr XMLCALL
+ xmlPatternGetStreamCtxt (xmlPatternPtr comp);
+XMLPUBFUN void XMLCALL
+ xmlFreeStreamCtxt (xmlStreamCtxtPtr stream);
+XMLPUBFUN int XMLCALL
+ xmlStreamPushNode (xmlStreamCtxtPtr stream,
+ const xmlChar *name,
+ const xmlChar *ns,
+ int nodeType);
+XMLPUBFUN int XMLCALL
+ xmlStreamPush (xmlStreamCtxtPtr stream,
+ const xmlChar *name,
+ const xmlChar *ns);
+XMLPUBFUN int XMLCALL
+ xmlStreamPushAttr (xmlStreamCtxtPtr stream,
+ const xmlChar *name,
+ const xmlChar *ns);
+XMLPUBFUN int XMLCALL
+ xmlStreamPop (xmlStreamCtxtPtr stream);
+XMLPUBFUN int XMLCALL
+ xmlStreamWantsAnyNode (xmlStreamCtxtPtr stream);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_PATTERN_ENABLED */
+
+#endif /* __XML_PATTERN_H__ */
diff --git a/libxml2/include/libxml/relaxng.h b/libxml2/include/libxml/relaxng.h
new file mode 100644
index 000000000..bdb0a7d37
--- /dev/null
+++ b/libxml2/include/libxml/relaxng.h
@@ -0,0 +1,213 @@
+/*
+ * Summary: implementation of the Relax-NG validation
+ * Description: implementation of the Relax-NG validation
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_RELAX_NG__
+#define __XML_RELAX_NG__
+
+#include <libxml/xmlversion.h>
+#include <libxml/hash.h>
+#include <libxml/xmlstring.h>
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _xmlRelaxNG xmlRelaxNG;
+typedef xmlRelaxNG *xmlRelaxNGPtr;
+
+
+/**
+ * xmlRelaxNGValidityErrorFunc:
+ * @ctx: the validation context
+ * @msg: the message
+ * @...: extra arguments
+ *
+ * Signature of an error callback from a Relax-NG validation
+ */
+typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
+
+/**
+ * xmlRelaxNGValidityWarningFunc:
+ * @ctx: the validation context
+ * @msg: the message
+ * @...: extra arguments
+ *
+ * Signature of a warning callback from a Relax-NG validation
+ */
+typedef void (XMLCDECL *xmlRelaxNGValidityWarningFunc) (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
+
+/**
+ * A schemas validation context
+ */
+typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;
+typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr;
+
+typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;
+typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr;
+
+/*
+ * xmlRelaxNGValidErr:
+ *
+ * List of possible Relax NG validation errors
+ */
+typedef enum {
+ XML_RELAXNG_OK = 0,
+ XML_RELAXNG_ERR_MEMORY,
+ XML_RELAXNG_ERR_TYPE,
+ XML_RELAXNG_ERR_TYPEVAL,
+ XML_RELAXNG_ERR_DUPID,
+ XML_RELAXNG_ERR_TYPECMP,
+ XML_RELAXNG_ERR_NOSTATE,
+ XML_RELAXNG_ERR_NODEFINE,
+ XML_RELAXNG_ERR_LISTEXTRA,
+ XML_RELAXNG_ERR_LISTEMPTY,
+ XML_RELAXNG_ERR_INTERNODATA,
+ XML_RELAXNG_ERR_INTERSEQ,
+ XML_RELAXNG_ERR_INTEREXTRA,
+ XML_RELAXNG_ERR_ELEMNAME,
+ XML_RELAXNG_ERR_ATTRNAME,
+ XML_RELAXNG_ERR_ELEMNONS,
+ XML_RELAXNG_ERR_ATTRNONS,
+ XML_RELAXNG_ERR_ELEMWRONGNS,
+ XML_RELAXNG_ERR_ATTRWRONGNS,
+ XML_RELAXNG_ERR_ELEMEXTRANS,
+ XML_RELAXNG_ERR_ATTREXTRANS,
+ XML_RELAXNG_ERR_ELEMNOTEMPTY,
+ XML_RELAXNG_ERR_NOELEM,
+ XML_RELAXNG_ERR_NOTELEM,
+ XML_RELAXNG_ERR_ATTRVALID,
+ XML_RELAXNG_ERR_CONTENTVALID,
+ XML_RELAXNG_ERR_EXTRACONTENT,
+ XML_RELAXNG_ERR_INVALIDATTR,
+ XML_RELAXNG_ERR_DATAELEM,
+ XML_RELAXNG_ERR_VALELEM,
+ XML_RELAXNG_ERR_LISTELEM,
+ XML_RELAXNG_ERR_DATATYPE,
+ XML_RELAXNG_ERR_VALUE,
+ XML_RELAXNG_ERR_LIST,
+ XML_RELAXNG_ERR_NOGRAMMAR,
+ XML_RELAXNG_ERR_EXTRADATA,
+ XML_RELAXNG_ERR_LACKDATA,
+ XML_RELAXNG_ERR_INTERNAL,
+ XML_RELAXNG_ERR_ELEMWRONG,
+ XML_RELAXNG_ERR_TEXTWRONG
+} xmlRelaxNGValidErr;
+
+/*
+ * xmlRelaxNGParserFlags:
+ *
+ * List of possible Relax NG Parser flags
+ */
+typedef enum {
+ XML_RELAXNGP_NONE = 0,
+ XML_RELAXNGP_FREE_DOC = 1,
+ XML_RELAXNGP_CRNG = 2
+} xmlRelaxNGParserFlag;
+
+XMLPUBFUN int XMLCALL
+ xmlRelaxNGInitTypes (void);
+XMLPUBFUN void XMLCALL
+ xmlRelaxNGCleanupTypes (void);
+
+/*
+ * Interfaces for parsing.
+ */
+XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
+ xmlRelaxNGNewParserCtxt (const char *URL);
+XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
+ xmlRelaxNGNewMemParserCtxt (const char *buffer,
+ int size);
+XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
+ xmlRelaxNGNewDocParserCtxt (xmlDocPtr doc);
+
+XMLPUBFUN int XMLCALL
+ xmlRelaxParserSetFlag (xmlRelaxNGParserCtxtPtr ctxt,
+ int flag);
+
+XMLPUBFUN void XMLCALL
+ xmlRelaxNGFreeParserCtxt (xmlRelaxNGParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
+ xmlRelaxNGValidityErrorFunc err,
+ xmlRelaxNGValidityWarningFunc warn,
+ void *ctx);
+XMLPUBFUN int XMLCALL
+ xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
+ xmlRelaxNGValidityErrorFunc *err,
+ xmlRelaxNGValidityWarningFunc *warn,
+ void **ctx);
+XMLPUBFUN void XMLCALL
+ xmlRelaxNGSetParserStructuredErrors(
+ xmlRelaxNGParserCtxtPtr ctxt,
+ xmlStructuredErrorFunc serror,
+ void *ctx);
+XMLPUBFUN xmlRelaxNGPtr XMLCALL
+ xmlRelaxNGParse (xmlRelaxNGParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlRelaxNGFree (xmlRelaxNGPtr schema);
+#ifdef LIBXML_OUTPUT_ENABLED
+XMLPUBFUN void XMLCALL
+ xmlRelaxNGDump (FILE *output,
+ xmlRelaxNGPtr schema);
+XMLPUBFUN void XMLCALL
+ xmlRelaxNGDumpTree (FILE * output,
+ xmlRelaxNGPtr schema);
+#endif /* LIBXML_OUTPUT_ENABLED */
+/*
+ * Interfaces for validating
+ */
+XMLPUBFUN void XMLCALL
+ xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
+ xmlRelaxNGValidityErrorFunc err,
+ xmlRelaxNGValidityWarningFunc warn,
+ void *ctx);
+XMLPUBFUN int XMLCALL
+ xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
+ xmlRelaxNGValidityErrorFunc *err,
+ xmlRelaxNGValidityWarningFunc *warn,
+ void **ctx);
+XMLPUBFUN void XMLCALL
+ xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt,
+ xmlStructuredErrorFunc serror, void *ctx);
+XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL
+ xmlRelaxNGNewValidCtxt (xmlRelaxNGPtr schema);
+XMLPUBFUN void XMLCALL
+ xmlRelaxNGFreeValidCtxt (xmlRelaxNGValidCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL
+ xmlRelaxNGValidateDoc (xmlRelaxNGValidCtxtPtr ctxt,
+ xmlDocPtr doc);
+/*
+ * Interfaces for progressive validation when possible
+ */
+XMLPUBFUN int XMLCALL
+ xmlRelaxNGValidatePushElement (xmlRelaxNGValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNodePtr elem);
+XMLPUBFUN int XMLCALL
+ xmlRelaxNGValidatePushCData (xmlRelaxNGValidCtxtPtr ctxt,
+ const xmlChar *data,
+ int len);
+XMLPUBFUN int XMLCALL
+ xmlRelaxNGValidatePopElement (xmlRelaxNGValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNodePtr elem);
+XMLPUBFUN int XMLCALL
+ xmlRelaxNGValidateFullElement (xmlRelaxNGValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNodePtr elem);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_SCHEMAS_ENABLED */
+
+#endif /* __XML_RELAX_NG__ */
diff --git a/libxml2/include/libxml/schemasInternals.h b/libxml2/include/libxml/schemasInternals.h
new file mode 100644
index 000000000..4f0ca9a1f
--- /dev/null
+++ b/libxml2/include/libxml/schemasInternals.h
@@ -0,0 +1,958 @@
+/*
+ * Summary: internal interfaces for XML Schemas
+ * Description: internal interfaces for the XML Schemas handling
+ * and schema validity checking
+ * The Schemas development is a Work In Progress.
+ * Some of those interfaces are not garanteed to be API or ABI stable !
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+
+#ifndef __XML_SCHEMA_INTERNALS_H__
+#define __XML_SCHEMA_INTERNALS_H__
+
+#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+
+#include <libxml/xmlregexp.h>
+#include <libxml/hash.h>
+#include <libxml/dict.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+ XML_SCHEMAS_UNKNOWN = 0,
+ XML_SCHEMAS_STRING,
+ XML_SCHEMAS_NORMSTRING,
+ XML_SCHEMAS_DECIMAL,
+ XML_SCHEMAS_TIME,
+ XML_SCHEMAS_GDAY,
+ XML_SCHEMAS_GMONTH,
+ XML_SCHEMAS_GMONTHDAY,
+ XML_SCHEMAS_GYEAR,
+ XML_SCHEMAS_GYEARMONTH,
+ XML_SCHEMAS_DATE,
+ XML_SCHEMAS_DATETIME,
+ XML_SCHEMAS_DURATION,
+ XML_SCHEMAS_FLOAT,
+ XML_SCHEMAS_DOUBLE,
+ XML_SCHEMAS_BOOLEAN,
+ XML_SCHEMAS_TOKEN,
+ XML_SCHEMAS_LANGUAGE,
+ XML_SCHEMAS_NMTOKEN,
+ XML_SCHEMAS_NMTOKENS,
+ XML_SCHEMAS_NAME,
+ XML_SCHEMAS_QNAME,
+ XML_SCHEMAS_NCNAME,
+ XML_SCHEMAS_ID,
+ XML_SCHEMAS_IDREF,
+ XML_SCHEMAS_IDREFS,
+ XML_SCHEMAS_ENTITY,
+ XML_SCHEMAS_ENTITIES,
+ XML_SCHEMAS_NOTATION,
+ XML_SCHEMAS_ANYURI,
+ XML_SCHEMAS_INTEGER,
+ XML_SCHEMAS_NPINTEGER,
+ XML_SCHEMAS_NINTEGER,
+ XML_SCHEMAS_NNINTEGER,
+ XML_SCHEMAS_PINTEGER,
+ XML_SCHEMAS_INT,
+ XML_SCHEMAS_UINT,
+ XML_SCHEMAS_LONG,
+ XML_SCHEMAS_ULONG,
+ XML_SCHEMAS_SHORT,
+ XML_SCHEMAS_USHORT,
+ XML_SCHEMAS_BYTE,
+ XML_SCHEMAS_UBYTE,
+ XML_SCHEMAS_HEXBINARY,
+ XML_SCHEMAS_BASE64BINARY,
+ XML_SCHEMAS_ANYTYPE,
+ XML_SCHEMAS_ANYSIMPLETYPE
+} xmlSchemaValType;
+
+/*
+ * XML Schemas defines multiple type of types.
+ */
+typedef enum {
+ XML_SCHEMA_TYPE_BASIC = 1, /* A built-in datatype */
+ XML_SCHEMA_TYPE_ANY,
+ XML_SCHEMA_TYPE_FACET,
+ XML_SCHEMA_TYPE_SIMPLE,
+ XML_SCHEMA_TYPE_COMPLEX,
+ XML_SCHEMA_TYPE_SEQUENCE = 6,
+ XML_SCHEMA_TYPE_CHOICE,
+ XML_SCHEMA_TYPE_ALL,
+ XML_SCHEMA_TYPE_SIMPLE_CONTENT,
+ XML_SCHEMA_TYPE_COMPLEX_CONTENT,
+ XML_SCHEMA_TYPE_UR,
+ XML_SCHEMA_TYPE_RESTRICTION,
+ XML_SCHEMA_TYPE_EXTENSION,
+ XML_SCHEMA_TYPE_ELEMENT,
+ XML_SCHEMA_TYPE_ATTRIBUTE,
+ XML_SCHEMA_TYPE_ATTRIBUTEGROUP,
+ XML_SCHEMA_TYPE_GROUP,
+ XML_SCHEMA_TYPE_NOTATION,
+ XML_SCHEMA_TYPE_LIST,
+ XML_SCHEMA_TYPE_UNION,
+ XML_SCHEMA_TYPE_ANY_ATTRIBUTE,
+ XML_SCHEMA_TYPE_IDC_UNIQUE,
+ XML_SCHEMA_TYPE_IDC_KEY,
+ XML_SCHEMA_TYPE_IDC_KEYREF,
+ XML_SCHEMA_TYPE_PARTICLE = 25,
+ XML_SCHEMA_TYPE_ATTRIBUTE_USE,
+ XML_SCHEMA_FACET_MININCLUSIVE = 1000,
+ XML_SCHEMA_FACET_MINEXCLUSIVE,
+ XML_SCHEMA_FACET_MAXINCLUSIVE,
+ XML_SCHEMA_FACET_MAXEXCLUSIVE,
+ XML_SCHEMA_FACET_TOTALDIGITS,
+ XML_SCHEMA_FACET_FRACTIONDIGITS,
+ XML_SCHEMA_FACET_PATTERN,
+ XML_SCHEMA_FACET_ENUMERATION,
+ XML_SCHEMA_FACET_WHITESPACE,
+ XML_SCHEMA_FACET_LENGTH,
+ XML_SCHEMA_FACET_MAXLENGTH,
+ XML_SCHEMA_FACET_MINLENGTH,
+ XML_SCHEMA_EXTRA_QNAMEREF = 2000,
+ XML_SCHEMA_EXTRA_ATTR_USE_PROHIB
+} xmlSchemaTypeType;
+
+typedef enum {
+ XML_SCHEMA_CONTENT_UNKNOWN = 0,
+ XML_SCHEMA_CONTENT_EMPTY = 1,
+ XML_SCHEMA_CONTENT_ELEMENTS,
+ XML_SCHEMA_CONTENT_MIXED,
+ XML_SCHEMA_CONTENT_SIMPLE,
+ XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS, /* Obsolete */
+ XML_SCHEMA_CONTENT_BASIC,
+ XML_SCHEMA_CONTENT_ANY
+} xmlSchemaContentType;
+
+typedef struct _xmlSchemaVal xmlSchemaVal;
+typedef xmlSchemaVal *xmlSchemaValPtr;
+
+typedef struct _xmlSchemaType xmlSchemaType;
+typedef xmlSchemaType *xmlSchemaTypePtr;
+
+typedef struct _xmlSchemaFacet xmlSchemaFacet;
+typedef xmlSchemaFacet *xmlSchemaFacetPtr;
+
+/**
+ * Annotation
+ */
+typedef struct _xmlSchemaAnnot xmlSchemaAnnot;
+typedef xmlSchemaAnnot *xmlSchemaAnnotPtr;
+struct _xmlSchemaAnnot {
+ struct _xmlSchemaAnnot *next;
+ xmlNodePtr content; /* the annotation */
+};
+
+/**
+ * XML_SCHEMAS_ANYATTR_SKIP:
+ *
+ * Skip unknown attribute from validation
+ * Obsolete, not used anymore.
+ */
+#define XML_SCHEMAS_ANYATTR_SKIP 1
+/**
+ * XML_SCHEMAS_ANYATTR_LAX:
+ *
+ * Ignore validation non definition on attributes
+ * Obsolete, not used anymore.
+ */
+#define XML_SCHEMAS_ANYATTR_LAX 2
+/**
+ * XML_SCHEMAS_ANYATTR_STRICT:
+ *
+ * Apply strict validation rules on attributes
+ * Obsolete, not used anymore.
+ */
+#define XML_SCHEMAS_ANYATTR_STRICT 3
+/**
+ * XML_SCHEMAS_ANY_SKIP:
+ *
+ * Skip unknown attribute from validation
+ */
+#define XML_SCHEMAS_ANY_SKIP 1
+/**
+ * XML_SCHEMAS_ANY_LAX:
+ *
+ * Used by wildcards.
+ * Validate if type found, don't worry if not found
+ */
+#define XML_SCHEMAS_ANY_LAX 2
+/**
+ * XML_SCHEMAS_ANY_STRICT:
+ *
+ * Used by wildcards.
+ * Apply strict validation rules
+ */
+#define XML_SCHEMAS_ANY_STRICT 3
+/**
+ * XML_SCHEMAS_ATTR_USE_PROHIBITED:
+ *
+ * Used by wildcards.
+ * The attribute is prohibited.
+ */
+#define XML_SCHEMAS_ATTR_USE_PROHIBITED 0
+/**
+ * XML_SCHEMAS_ATTR_USE_REQUIRED:
+ *
+ * The attribute is required.
+ */
+#define XML_SCHEMAS_ATTR_USE_REQUIRED 1
+/**
+ * XML_SCHEMAS_ATTR_USE_OPTIONAL:
+ *
+ * The attribute is optional.
+ */
+#define XML_SCHEMAS_ATTR_USE_OPTIONAL 2
+/**
+ * XML_SCHEMAS_ATTR_GLOBAL:
+ *
+ * allow elements in no namespace
+ */
+#define XML_SCHEMAS_ATTR_GLOBAL 1 << 0
+/**
+ * XML_SCHEMAS_ATTR_NSDEFAULT:
+ *
+ * allow elements in no namespace
+ */
+#define XML_SCHEMAS_ATTR_NSDEFAULT 1 << 7
+/**
+ * XML_SCHEMAS_ATTR_INTERNAL_RESOLVED:
+ *
+ * this is set when the "type" and "ref" references
+ * have been resolved.
+ */
+#define XML_SCHEMAS_ATTR_INTERNAL_RESOLVED 1 << 8
+/**
+ * XML_SCHEMAS_ATTR_FIXED:
+ *
+ * the attribute has a fixed value
+ */
+#define XML_SCHEMAS_ATTR_FIXED 1 << 9
+
+/**
+ * xmlSchemaAttribute:
+ * An attribute definition.
+ */
+
+typedef struct _xmlSchemaAttribute xmlSchemaAttribute;
+typedef xmlSchemaAttribute *xmlSchemaAttributePtr;
+struct _xmlSchemaAttribute {
+ xmlSchemaTypeType type;
+ struct _xmlSchemaAttribute *next; /* the next attribute (not used?) */
+ const xmlChar *name; /* the name of the declaration */
+ const xmlChar *id; /* Deprecated; not used */
+ const xmlChar *ref; /* Deprecated; not used */
+ const xmlChar *refNs; /* Deprecated; not used */
+ const xmlChar *typeName; /* the local name of the type definition */
+ const xmlChar *typeNs; /* the ns URI of the type definition */
+ xmlSchemaAnnotPtr annot;
+
+ xmlSchemaTypePtr base; /* Deprecated; not used */
+ int occurs; /* Deprecated; not used */
+ const xmlChar *defValue; /* The initial value of the value constraint */
+ xmlSchemaTypePtr subtypes; /* the type definition */
+ xmlNodePtr node;
+ const xmlChar *targetNamespace;
+ int flags;
+ const xmlChar *refPrefix; /* Deprecated; not used */
+ xmlSchemaValPtr defVal; /* The compiled value constraint */
+ xmlSchemaAttributePtr refDecl; /* Deprecated; not used */
+};
+
+/**
+ * xmlSchemaAttributeLink:
+ * Used to build a list of attribute uses on complexType definitions.
+ * WARNING: Deprecated; not used.
+ */
+typedef struct _xmlSchemaAttributeLink xmlSchemaAttributeLink;
+typedef xmlSchemaAttributeLink *xmlSchemaAttributeLinkPtr;
+struct _xmlSchemaAttributeLink {
+ struct _xmlSchemaAttributeLink *next;/* the next attribute link ... */
+ struct _xmlSchemaAttribute *attr;/* the linked attribute */
+};
+
+/**
+ * XML_SCHEMAS_WILDCARD_COMPLETE:
+ *
+ * If the wildcard is complete.
+ */
+#define XML_SCHEMAS_WILDCARD_COMPLETE 1 << 0
+
+/**
+ * xmlSchemaCharValueLink:
+ * Used to build a list of namespaces on wildcards.
+ */
+typedef struct _xmlSchemaWildcardNs xmlSchemaWildcardNs;
+typedef xmlSchemaWildcardNs *xmlSchemaWildcardNsPtr;
+struct _xmlSchemaWildcardNs {
+ struct _xmlSchemaWildcardNs *next;/* the next constraint link ... */
+ const xmlChar *value;/* the value */
+};
+
+/**
+ * xmlSchemaWildcard.
+ * A wildcard.
+ */
+typedef struct _xmlSchemaWildcard xmlSchemaWildcard;
+typedef xmlSchemaWildcard *xmlSchemaWildcardPtr;
+struct _xmlSchemaWildcard {
+ xmlSchemaTypeType type; /* The kind of type */
+ const xmlChar *id; /* Deprecated; not used */
+ xmlSchemaAnnotPtr annot;
+ xmlNodePtr node;
+ int minOccurs; /* Deprecated; not used */
+ int maxOccurs; /* Deprecated; not used */
+ int processContents;
+ int any; /* Indicates if the ns constraint is of ##any */
+ xmlSchemaWildcardNsPtr nsSet; /* The list of allowed namespaces */
+ xmlSchemaWildcardNsPtr negNsSet; /* The negated namespace */
+ int flags;
+};
+
+/**
+ * XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED:
+ *
+ * The attribute wildcard has been already builded.
+ */
+#define XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED 1 << 0
+/**
+ * XML_SCHEMAS_ATTRGROUP_GLOBAL:
+ *
+ * The attribute wildcard has been already builded.
+ */
+#define XML_SCHEMAS_ATTRGROUP_GLOBAL 1 << 1
+/**
+ * XML_SCHEMAS_ATTRGROUP_MARKED:
+ *
+ * Marks the attr group as marked; used for circular checks.
+ */
+#define XML_SCHEMAS_ATTRGROUP_MARKED 1 << 2
+
+/**
+ * XML_SCHEMAS_ATTRGROUP_REDEFINED:
+ *
+ * The attr group was redefined.
+ */
+#define XML_SCHEMAS_ATTRGROUP_REDEFINED 1 << 3
+/**
+ * XML_SCHEMAS_ATTRGROUP_HAS_REFS:
+ *
+ * Whether this attr. group contains attr. group references.
+ */
+#define XML_SCHEMAS_ATTRGROUP_HAS_REFS 1 << 4
+
+/**
+ * An attribute group definition.
+ *
+ * xmlSchemaAttribute and xmlSchemaAttributeGroup start of structures
+ * must be kept similar
+ */
+typedef struct _xmlSchemaAttributeGroup xmlSchemaAttributeGroup;
+typedef xmlSchemaAttributeGroup *xmlSchemaAttributeGroupPtr;
+struct _xmlSchemaAttributeGroup {
+ xmlSchemaTypeType type; /* The kind of type */
+ struct _xmlSchemaAttribute *next;/* the next attribute if in a group ... */
+ const xmlChar *name;
+ const xmlChar *id;
+ const xmlChar *ref; /* Deprecated; not used */
+ const xmlChar *refNs; /* Deprecated; not used */
+ xmlSchemaAnnotPtr annot;
+
+ xmlSchemaAttributePtr attributes; /* Deprecated; not used */
+ xmlNodePtr node;
+ int flags;
+ xmlSchemaWildcardPtr attributeWildcard;
+ const xmlChar *refPrefix; /* Deprecated; not used */
+ xmlSchemaAttributeGroupPtr refItem; /* Deprecated; not used */
+ const xmlChar *targetNamespace;
+ void *attrUses;
+};
+
+/**
+ * xmlSchemaTypeLink:
+ * Used to build a list of types (e.g. member types of
+ * simpleType with variety "union").
+ */
+typedef struct _xmlSchemaTypeLink xmlSchemaTypeLink;
+typedef xmlSchemaTypeLink *xmlSchemaTypeLinkPtr;
+struct _xmlSchemaTypeLink {
+ struct _xmlSchemaTypeLink *next;/* the next type link ... */
+ xmlSchemaTypePtr type;/* the linked type */
+};
+
+/**
+ * xmlSchemaFacetLink:
+ * Used to build a list of facets.
+ */
+typedef struct _xmlSchemaFacetLink xmlSchemaFacetLink;
+typedef xmlSchemaFacetLink *xmlSchemaFacetLinkPtr;
+struct _xmlSchemaFacetLink {
+ struct _xmlSchemaFacetLink *next;/* the next facet link ... */
+ xmlSchemaFacetPtr facet;/* the linked facet */
+};
+
+/**
+ * XML_SCHEMAS_TYPE_MIXED:
+ *
+ * the element content type is mixed
+ */
+#define XML_SCHEMAS_TYPE_MIXED 1 << 0
+/**
+ * XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION:
+ *
+ * the simple or complex type has a derivation method of "extension".
+ */
+#define XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION 1 << 1
+/**
+ * XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION:
+ *
+ * the simple or complex type has a derivation method of "restriction".
+ */
+#define XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION 1 << 2
+/**
+ * XML_SCHEMAS_TYPE_GLOBAL:
+ *
+ * the type is global
+ */
+#define XML_SCHEMAS_TYPE_GLOBAL 1 << 3
+/**
+ * XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD:
+ *
+ * the complexType owns an attribute wildcard, i.e.
+ * it can be freed by the complexType
+ */
+#define XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD 1 << 4 /* Obsolete. */
+/**
+ * XML_SCHEMAS_TYPE_VARIETY_ABSENT:
+ *
+ * the simpleType has a variety of "absent".
+ * TODO: Actually not necessary :-/, since if
+ * none of the variety flags occur then it's
+ * automatically absent.
+ */
+#define XML_SCHEMAS_TYPE_VARIETY_ABSENT 1 << 5
+/**
+ * XML_SCHEMAS_TYPE_VARIETY_LIST:
+ *
+ * the simpleType has a variety of "list".
+ */
+#define XML_SCHEMAS_TYPE_VARIETY_LIST 1 << 6
+/**
+ * XML_SCHEMAS_TYPE_VARIETY_UNION:
+ *
+ * the simpleType has a variety of "union".
+ */
+#define XML_SCHEMAS_TYPE_VARIETY_UNION 1 << 7
+/**
+ * XML_SCHEMAS_TYPE_VARIETY_ATOMIC:
+ *
+ * the simpleType has a variety of "union".
+ */
+#define XML_SCHEMAS_TYPE_VARIETY_ATOMIC 1 << 8
+/**
+ * XML_SCHEMAS_TYPE_FINAL_EXTENSION:
+ *
+ * the complexType has a final of "extension".
+ */
+#define XML_SCHEMAS_TYPE_FINAL_EXTENSION 1 << 9
+/**
+ * XML_SCHEMAS_TYPE_FINAL_RESTRICTION:
+ *
+ * the simpleType/complexType has a final of "restriction".
+ */
+#define XML_SCHEMAS_TYPE_FINAL_RESTRICTION 1 << 10
+/**
+ * XML_SCHEMAS_TYPE_FINAL_LIST:
+ *
+ * the simpleType has a final of "list".
+ */
+#define XML_SCHEMAS_TYPE_FINAL_LIST 1 << 11
+/**
+ * XML_SCHEMAS_TYPE_FINAL_UNION:
+ *
+ * the simpleType has a final of "union".
+ */
+#define XML_SCHEMAS_TYPE_FINAL_UNION 1 << 12
+/**
+ * XML_SCHEMAS_TYPE_FINAL_DEFAULT:
+ *
+ * the simpleType has a final of "default".
+ */
+#define XML_SCHEMAS_TYPE_FINAL_DEFAULT 1 << 13
+/**
+ * XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE:
+ *
+ * Marks the item as a builtin primitive.
+ */
+#define XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE 1 << 14
+/**
+ * XML_SCHEMAS_TYPE_MARKED:
+ *
+ * Marks the item as marked; used for circular checks.
+ */
+#define XML_SCHEMAS_TYPE_MARKED 1 << 16
+/**
+ * XML_SCHEMAS_TYPE_BLOCK_DEFAULT:
+ *
+ * the complexType did not specify 'block' so use the default of the
+ * <schema> item.
+ */
+#define XML_SCHEMAS_TYPE_BLOCK_DEFAULT 1 << 17
+/**
+ * XML_SCHEMAS_TYPE_BLOCK_EXTENSION:
+ *
+ * the complexType has a 'block' of "extension".
+ */
+#define XML_SCHEMAS_TYPE_BLOCK_EXTENSION 1 << 18
+/**
+ * XML_SCHEMAS_TYPE_BLOCK_RESTRICTION:
+ *
+ * the complexType has a 'block' of "restriction".
+ */
+#define XML_SCHEMAS_TYPE_BLOCK_RESTRICTION 1 << 19
+/**
+ * XML_SCHEMAS_TYPE_ABSTRACT:
+ *
+ * the simple/complexType is abstract.
+ */
+#define XML_SCHEMAS_TYPE_ABSTRACT 1 << 20
+/**
+ * XML_SCHEMAS_TYPE_FACETSNEEDVALUE:
+ *
+ * indicates if the facets need a computed value
+ */
+#define XML_SCHEMAS_TYPE_FACETSNEEDVALUE 1 << 21
+/**
+ * XML_SCHEMAS_TYPE_INTERNAL_RESOLVED:
+ *
+ * indicates that the type was typefixed
+ */
+#define XML_SCHEMAS_TYPE_INTERNAL_RESOLVED 1 << 22
+/**
+ * XML_SCHEMAS_TYPE_INTERNAL_INVALID:
+ *
+ * indicates that the type is invalid
+ */
+#define XML_SCHEMAS_TYPE_INTERNAL_INVALID 1 << 23
+/**
+ * XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE:
+ *
+ * a whitespace-facet value of "preserve"
+ */
+#define XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE 1 << 24
+/**
+ * XML_SCHEMAS_TYPE_WHITESPACE_REPLACE:
+ *
+ * a whitespace-facet value of "replace"
+ */
+#define XML_SCHEMAS_TYPE_WHITESPACE_REPLACE 1 << 25
+/**
+ * XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE:
+ *
+ * a whitespace-facet value of "collapse"
+ */
+#define XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE 1 << 26
+/**
+ * XML_SCHEMAS_TYPE_HAS_FACETS:
+ *
+ * has facets
+ */
+#define XML_SCHEMAS_TYPE_HAS_FACETS 1 << 27
+/**
+ * XML_SCHEMAS_TYPE_NORMVALUENEEDED:
+ *
+ * indicates if the facets (pattern) need a normalized value
+ */
+#define XML_SCHEMAS_TYPE_NORMVALUENEEDED 1 << 28
+
+/**
+ * XML_SCHEMAS_TYPE_FIXUP_1:
+ *
+ * First stage of fixup was done.
+ */
+#define XML_SCHEMAS_TYPE_FIXUP_1 1 << 29
+
+/**
+ * XML_SCHEMAS_TYPE_REDEFINED:
+ *
+ * The type was redefined.
+ */
+#define XML_SCHEMAS_TYPE_REDEFINED 1 << 30
+/**
+ * XML_SCHEMAS_TYPE_REDEFINING:
+ *
+ * The type redefines an other type.
+ */
+/* #define XML_SCHEMAS_TYPE_REDEFINING 1 << 31 */
+
+/**
+ * _xmlSchemaType:
+ *
+ * Schemas type definition.
+ */
+struct _xmlSchemaType {
+ xmlSchemaTypeType type; /* The kind of type */
+ struct _xmlSchemaType *next; /* the next type if in a sequence ... */
+ const xmlChar *name;
+ const xmlChar *id ; /* Deprecated; not used */
+ const xmlChar *ref; /* Deprecated; not used */
+ const xmlChar *refNs; /* Deprecated; not used */
+ xmlSchemaAnnotPtr annot;
+ xmlSchemaTypePtr subtypes;
+ xmlSchemaAttributePtr attributes; /* Deprecated; not used */
+ xmlNodePtr node;
+ int minOccurs; /* Deprecated; not used */
+ int maxOccurs; /* Deprecated; not used */
+
+ int flags;
+ xmlSchemaContentType contentType;
+ const xmlChar *base; /* Base type's local name */
+ const xmlChar *baseNs; /* Base type's target namespace */
+ xmlSchemaTypePtr baseType; /* The base type component */
+ xmlSchemaFacetPtr facets; /* Local facets */
+ struct _xmlSchemaType *redef; /* Deprecated; not used */
+ int recurse; /* Obsolete */
+ xmlSchemaAttributeLinkPtr *attributeUses; /* Deprecated; not used */
+ xmlSchemaWildcardPtr attributeWildcard;
+ int builtInType; /* Type of built-in types. */
+ xmlSchemaTypeLinkPtr memberTypes; /* member-types if a union type. */
+ xmlSchemaFacetLinkPtr facetSet; /* All facets (incl. inherited) */
+ const xmlChar *refPrefix; /* Deprecated; not used */
+ xmlSchemaTypePtr contentTypeDef; /* Used for the simple content of complex types.
+ Could we use @subtypes for this? */
+ xmlRegexpPtr contModel; /* Holds the automaton of the content model */
+ const xmlChar *targetNamespace;
+ void *attrUses;
+};
+
+/*
+ * xmlSchemaElement:
+ * An element definition.
+ *
+ * xmlSchemaType, xmlSchemaFacet and xmlSchemaElement start of
+ * structures must be kept similar
+ */
+/**
+ * XML_SCHEMAS_ELEM_NILLABLE:
+ *
+ * the element is nillable
+ */
+#define XML_SCHEMAS_ELEM_NILLABLE 1 << 0
+/**
+ * XML_SCHEMAS_ELEM_GLOBAL:
+ *
+ * the element is global
+ */
+#define XML_SCHEMAS_ELEM_GLOBAL 1 << 1
+/**
+ * XML_SCHEMAS_ELEM_DEFAULT:
+ *
+ * the element has a default value
+ */
+#define XML_SCHEMAS_ELEM_DEFAULT 1 << 2
+/**
+ * XML_SCHEMAS_ELEM_FIXED:
+ *
+ * the element has a fixed value
+ */
+#define XML_SCHEMAS_ELEM_FIXED 1 << 3
+/**
+ * XML_SCHEMAS_ELEM_ABSTRACT:
+ *
+ * the element is abstract
+ */
+#define XML_SCHEMAS_ELEM_ABSTRACT 1 << 4
+/**
+ * XML_SCHEMAS_ELEM_TOPLEVEL:
+ *
+ * the element is top level
+ * obsolete: use XML_SCHEMAS_ELEM_GLOBAL instead
+ */
+#define XML_SCHEMAS_ELEM_TOPLEVEL 1 << 5
+/**
+ * XML_SCHEMAS_ELEM_REF:
+ *
+ * the element is a reference to a type
+ */
+#define XML_SCHEMAS_ELEM_REF 1 << 6
+/**
+ * XML_SCHEMAS_ELEM_NSDEFAULT:
+ *
+ * allow elements in no namespace
+ * Obsolete, not used anymore.
+ */
+#define XML_SCHEMAS_ELEM_NSDEFAULT 1 << 7
+/**
+ * XML_SCHEMAS_ELEM_INTERNAL_RESOLVED:
+ *
+ * this is set when "type", "ref", "substitutionGroup"
+ * references have been resolved.
+ */
+#define XML_SCHEMAS_ELEM_INTERNAL_RESOLVED 1 << 8
+ /**
+ * XML_SCHEMAS_ELEM_CIRCULAR:
+ *
+ * a helper flag for the search of circular references.
+ */
+#define XML_SCHEMAS_ELEM_CIRCULAR 1 << 9
+/**
+ * XML_SCHEMAS_ELEM_BLOCK_ABSENT:
+ *
+ * the "block" attribute is absent
+ */
+#define XML_SCHEMAS_ELEM_BLOCK_ABSENT 1 << 10
+/**
+ * XML_SCHEMAS_ELEM_BLOCK_EXTENSION:
+ *
+ * disallowed substitutions are absent
+ */
+#define XML_SCHEMAS_ELEM_BLOCK_EXTENSION 1 << 11
+/**
+ * XML_SCHEMAS_ELEM_BLOCK_RESTRICTION:
+ *
+ * disallowed substitutions: "restriction"
+ */
+#define XML_SCHEMAS_ELEM_BLOCK_RESTRICTION 1 << 12
+/**
+ * XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION:
+ *
+ * disallowed substitutions: "substituion"
+ */
+#define XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION 1 << 13
+/**
+ * XML_SCHEMAS_ELEM_FINAL_ABSENT:
+ *
+ * substitution group exclusions are absent
+ */
+#define XML_SCHEMAS_ELEM_FINAL_ABSENT 1 << 14
+/**
+ * XML_SCHEMAS_ELEM_FINAL_EXTENSION:
+ *
+ * substitution group exclusions: "extension"
+ */
+#define XML_SCHEMAS_ELEM_FINAL_EXTENSION 1 << 15
+/**
+ * XML_SCHEMAS_ELEM_FINAL_RESTRICTION:
+ *
+ * substitution group exclusions: "restriction"
+ */
+#define XML_SCHEMAS_ELEM_FINAL_RESTRICTION 1 << 16
+/**
+ * XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD:
+ *
+ * the declaration is a substitution group head
+ */
+#define XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD 1 << 17
+/**
+ * XML_SCHEMAS_ELEM_INTERNAL_CHECKED:
+ *
+ * this is set when the elem decl has been checked against
+ * all constraints
+ */
+#define XML_SCHEMAS_ELEM_INTERNAL_CHECKED 1 << 18
+
+typedef struct _xmlSchemaElement xmlSchemaElement;
+typedef xmlSchemaElement *xmlSchemaElementPtr;
+struct _xmlSchemaElement {
+ xmlSchemaTypeType type; /* The kind of type */
+ struct _xmlSchemaType *next; /* Not used? */
+ const xmlChar *name;
+ const xmlChar *id; /* Deprecated; not used */
+ const xmlChar *ref; /* Deprecated; not used */
+ const xmlChar *refNs; /* Deprecated; not used */
+ xmlSchemaAnnotPtr annot;
+ xmlSchemaTypePtr subtypes; /* the type definition */
+ xmlSchemaAttributePtr attributes;
+ xmlNodePtr node;
+ int minOccurs; /* Deprecated; not used */
+ int maxOccurs; /* Deprecated; not used */
+
+ int flags;
+ const xmlChar *targetNamespace;
+ const xmlChar *namedType;
+ const xmlChar *namedTypeNs;
+ const xmlChar *substGroup;
+ const xmlChar *substGroupNs;
+ const xmlChar *scope;
+ const xmlChar *value; /* The original value of the value constraint. */
+ struct _xmlSchemaElement *refDecl; /* This will now be used for the
+ substitution group affiliation */
+ xmlRegexpPtr contModel; /* Obsolete for WXS, maybe used for RelaxNG */
+ xmlSchemaContentType contentType;
+ const xmlChar *refPrefix; /* Deprecated; not used */
+ xmlSchemaValPtr defVal; /* The compiled value contraint. */
+ void *idcs; /* The identity-constraint defs */
+};
+
+/*
+ * XML_SCHEMAS_FACET_UNKNOWN:
+ *
+ * unknown facet handling
+ */
+#define XML_SCHEMAS_FACET_UNKNOWN 0
+/*
+ * XML_SCHEMAS_FACET_PRESERVE:
+ *
+ * preserve the type of the facet
+ */
+#define XML_SCHEMAS_FACET_PRESERVE 1
+/*
+ * XML_SCHEMAS_FACET_REPLACE:
+ *
+ * replace the type of the facet
+ */
+#define XML_SCHEMAS_FACET_REPLACE 2
+/*
+ * XML_SCHEMAS_FACET_COLLAPSE:
+ *
+ * collapse the types of the facet
+ */
+#define XML_SCHEMAS_FACET_COLLAPSE 3
+/**
+ * A facet definition.
+ */
+struct _xmlSchemaFacet {
+ xmlSchemaTypeType type; /* The kind of type */
+ struct _xmlSchemaFacet *next;/* the next type if in a sequence ... */
+ const xmlChar *value; /* The original value */
+ const xmlChar *id; /* Obsolete */
+ xmlSchemaAnnotPtr annot;
+ xmlNodePtr node;
+ int fixed; /* XML_SCHEMAS_FACET_PRESERVE, etc. */
+ int whitespace;
+ xmlSchemaValPtr val; /* The compiled value */
+ xmlRegexpPtr regexp; /* The regex for patterns */
+};
+
+/**
+ * A notation definition.
+ */
+typedef struct _xmlSchemaNotation xmlSchemaNotation;
+typedef xmlSchemaNotation *xmlSchemaNotationPtr;
+struct _xmlSchemaNotation {
+ xmlSchemaTypeType type; /* The kind of type */
+ const xmlChar *name;
+ xmlSchemaAnnotPtr annot;
+ const xmlChar *identifier;
+ const xmlChar *targetNamespace;
+};
+
+/*
+* TODO: Actually all those flags used for the schema should sit
+* on the schema parser context, since they are used only
+* during parsing an XML schema document, and not available
+* on the component level as per spec.
+*/
+/**
+ * XML_SCHEMAS_QUALIF_ELEM:
+ *
+ * Reflects elementFormDefault == qualified in
+ * an XML schema document.
+ */
+#define XML_SCHEMAS_QUALIF_ELEM 1 << 0
+/**
+ * XML_SCHEMAS_QUALIF_ATTR:
+ *
+ * Reflects attributeFormDefault == qualified in
+ * an XML schema document.
+ */
+#define XML_SCHEMAS_QUALIF_ATTR 1 << 1
+/**
+ * XML_SCHEMAS_FINAL_DEFAULT_EXTENSION:
+ *
+ * the schema has "extension" in the set of finalDefault.
+ */
+#define XML_SCHEMAS_FINAL_DEFAULT_EXTENSION 1 << 2
+/**
+ * XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION:
+ *
+ * the schema has "restriction" in the set of finalDefault.
+ */
+#define XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION 1 << 3
+/**
+ * XML_SCHEMAS_FINAL_DEFAULT_LIST:
+ *
+ * the cshema has "list" in the set of finalDefault.
+ */
+#define XML_SCHEMAS_FINAL_DEFAULT_LIST 1 << 4
+/**
+ * XML_SCHEMAS_FINAL_DEFAULT_UNION:
+ *
+ * the schema has "union" in the set of finalDefault.
+ */
+#define XML_SCHEMAS_FINAL_DEFAULT_UNION 1 << 5
+/**
+ * XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION:
+ *
+ * the schema has "extension" in the set of blockDefault.
+ */
+#define XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION 1 << 6
+/**
+ * XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION:
+ *
+ * the schema has "restriction" in the set of blockDefault.
+ */
+#define XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION 1 << 7
+/**
+ * XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION:
+ *
+ * the schema has "substitution" in the set of blockDefault.
+ */
+#define XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION 1 << 8
+/**
+ * XML_SCHEMAS_INCLUDING_CONVERT_NS:
+ *
+ * the schema is currently including an other schema with
+ * no target namespace.
+ */
+#define XML_SCHEMAS_INCLUDING_CONVERT_NS 1 << 9
+/**
+ * _xmlSchema:
+ *
+ * A Schemas definition
+ */
+struct _xmlSchema {
+ const xmlChar *name; /* schema name */
+ const xmlChar *targetNamespace; /* the target namespace */
+ const xmlChar *version;
+ const xmlChar *id; /* Obsolete */
+ xmlDocPtr doc;
+ xmlSchemaAnnotPtr annot;
+ int flags;
+
+ xmlHashTablePtr typeDecl;
+ xmlHashTablePtr attrDecl;
+ xmlHashTablePtr attrgrpDecl;
+ xmlHashTablePtr elemDecl;
+ xmlHashTablePtr notaDecl;
+
+ xmlHashTablePtr schemasImports;
+
+ void *_private; /* unused by the library for users or bindings */
+ xmlHashTablePtr groupDecl;
+ xmlDictPtr dict;
+ void *includes; /* the includes, this is opaque for now */
+ int preserve; /* whether to free the document */
+ int counter; /* used to give ononymous components unique names */
+ xmlHashTablePtr idcDef; /* All identity-constraint defs. */
+ void *volatiles; /* Obsolete */
+};
+
+XMLPUBFUN void XMLCALL xmlSchemaFreeType (xmlSchemaTypePtr type);
+XMLPUBFUN void XMLCALL xmlSchemaFreeWildcard(xmlSchemaWildcardPtr wildcard);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_SCHEMAS_ENABLED */
+#endif /* __XML_SCHEMA_INTERNALS_H__ */
diff --git a/libxml2/include/libxml/schematron.h b/libxml2/include/libxml/schematron.h
new file mode 100644
index 000000000..364eaecde
--- /dev/null
+++ b/libxml2/include/libxml/schematron.h
@@ -0,0 +1,142 @@
+/*
+ * Summary: XML Schemastron implementation
+ * Description: interface to the XML Schematron validity checking.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+
+#ifndef __XML_SCHEMATRON_H__
+#define __XML_SCHEMATRON_H__
+
+#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_SCHEMATRON_ENABLED
+
+#include <libxml/tree.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+ XML_SCHEMATRON_OUT_QUIET = 1 << 0, /* quiet no report */
+ XML_SCHEMATRON_OUT_TEXT = 1 << 1, /* build a textual report */
+ XML_SCHEMATRON_OUT_XML = 1 << 2, /* output SVRL */
+ XML_SCHEMATRON_OUT_ERROR = 1 << 3, /* output via xmlStructuredErrorFunc */
+ XML_SCHEMATRON_OUT_FILE = 1 << 8, /* output to a file descriptor */
+ XML_SCHEMATRON_OUT_BUFFER = 1 << 9, /* output to a buffer */
+ XML_SCHEMATRON_OUT_IO = 1 << 10 /* output to I/O mechanism */
+} xmlSchematronValidOptions;
+
+/**
+ * The schemas related types are kept internal
+ */
+typedef struct _xmlSchematron xmlSchematron;
+typedef xmlSchematron *xmlSchematronPtr;
+
+/**
+ * xmlSchematronValidityErrorFunc:
+ * @ctx: the validation context
+ * @msg: the message
+ * @...: extra arguments
+ *
+ * Signature of an error callback from a Schematron validation
+ */
+typedef void (*xmlSchematronValidityErrorFunc) (void *ctx, const char *msg, ...);
+
+/**
+ * xmlSchematronValidityWarningFunc:
+ * @ctx: the validation context
+ * @msg: the message
+ * @...: extra arguments
+ *
+ * Signature of a warning callback from a Schematron validation
+ */
+typedef void (*xmlSchematronValidityWarningFunc) (void *ctx, const char *msg, ...);
+
+/**
+ * A schemas validation context
+ */
+typedef struct _xmlSchematronParserCtxt xmlSchematronParserCtxt;
+typedef xmlSchematronParserCtxt *xmlSchematronParserCtxtPtr;
+
+typedef struct _xmlSchematronValidCtxt xmlSchematronValidCtxt;
+typedef xmlSchematronValidCtxt *xmlSchematronValidCtxtPtr;
+
+/*
+ * Interfaces for parsing.
+ */
+XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL
+ xmlSchematronNewParserCtxt (const char *URL);
+XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL
+ xmlSchematronNewMemParserCtxt(const char *buffer,
+ int size);
+XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL
+ xmlSchematronNewDocParserCtxt(xmlDocPtr doc);
+XMLPUBFUN void XMLCALL
+ xmlSchematronFreeParserCtxt (xmlSchematronParserCtxtPtr ctxt);
+/*****
+XMLPUBFUN void XMLCALL
+ xmlSchematronSetParserErrors(xmlSchematronParserCtxtPtr ctxt,
+ xmlSchematronValidityErrorFunc err,
+ xmlSchematronValidityWarningFunc warn,
+ void *ctx);
+XMLPUBFUN int XMLCALL
+ xmlSchematronGetParserErrors(xmlSchematronParserCtxtPtr ctxt,
+ xmlSchematronValidityErrorFunc * err,
+ xmlSchematronValidityWarningFunc * warn,
+ void **ctx);
+XMLPUBFUN int XMLCALL
+ xmlSchematronIsValid (xmlSchematronValidCtxtPtr ctxt);
+ *****/
+XMLPUBFUN xmlSchematronPtr XMLCALL
+ xmlSchematronParse (xmlSchematronParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlSchematronFree (xmlSchematronPtr schema);
+/*
+ * Interfaces for validating
+ */
+XMLPUBFUN void XMLCALL
+ xmlSchematronSetValidStructuredErrors(
+ xmlSchematronValidCtxtPtr ctxt,
+ xmlStructuredErrorFunc serror,
+ void *ctx);
+/******
+XMLPUBFUN void XMLCALL
+ xmlSchematronSetValidErrors (xmlSchematronValidCtxtPtr ctxt,
+ xmlSchematronValidityErrorFunc err,
+ xmlSchematronValidityWarningFunc warn,
+ void *ctx);
+XMLPUBFUN int XMLCALL
+ xmlSchematronGetValidErrors (xmlSchematronValidCtxtPtr ctxt,
+ xmlSchematronValidityErrorFunc *err,
+ xmlSchematronValidityWarningFunc *warn,
+ void **ctx);
+XMLPUBFUN int XMLCALL
+ xmlSchematronSetValidOptions(xmlSchematronValidCtxtPtr ctxt,
+ int options);
+XMLPUBFUN int XMLCALL
+ xmlSchematronValidCtxtGetOptions(xmlSchematronValidCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL
+ xmlSchematronValidateOneElement (xmlSchematronValidCtxtPtr ctxt,
+ xmlNodePtr elem);
+ *******/
+
+XMLPUBFUN xmlSchematronValidCtxtPtr XMLCALL
+ xmlSchematronNewValidCtxt (xmlSchematronPtr schema,
+ int options);
+XMLPUBFUN void XMLCALL
+ xmlSchematronFreeValidCtxt (xmlSchematronValidCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL
+ xmlSchematronValidateDoc (xmlSchematronValidCtxtPtr ctxt,
+ xmlDocPtr instance);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_SCHEMATRON_ENABLED */
+#endif /* __XML_SCHEMATRON_H__ */
diff --git a/libxml2/include/libxml/threads.h b/libxml2/include/libxml/threads.h
new file mode 100644
index 000000000..d31f16acb
--- /dev/null
+++ b/libxml2/include/libxml/threads.h
@@ -0,0 +1,84 @@
+/**
+ * Summary: interfaces for thread handling
+ * Description: set of generic threading related routines
+ * should work with pthreads, Windows native or TLS threads
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_THREADS_H__
+#define __XML_THREADS_H__
+
+#include <libxml/xmlversion.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * xmlMutex are a simple mutual exception locks.
+ */
+typedef struct _xmlMutex xmlMutex;
+typedef xmlMutex *xmlMutexPtr;
+
+/*
+ * xmlRMutex are reentrant mutual exception locks.
+ */
+typedef struct _xmlRMutex xmlRMutex;
+typedef xmlRMutex *xmlRMutexPtr;
+
+#ifdef __cplusplus
+}
+#endif
+#include <libxml/globals.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+XMLPUBFUN xmlMutexPtr XMLCALL
+ xmlNewMutex (void);
+XMLPUBFUN void XMLCALL
+ xmlMutexLock (xmlMutexPtr tok);
+XMLPUBFUN void XMLCALL
+ xmlMutexUnlock (xmlMutexPtr tok);
+XMLPUBFUN void XMLCALL
+ xmlFreeMutex (xmlMutexPtr tok);
+
+XMLPUBFUN xmlRMutexPtr XMLCALL
+ xmlNewRMutex (void);
+XMLPUBFUN void XMLCALL
+ xmlRMutexLock (xmlRMutexPtr tok);
+XMLPUBFUN void XMLCALL
+ xmlRMutexUnlock (xmlRMutexPtr tok);
+XMLPUBFUN void XMLCALL
+ xmlFreeRMutex (xmlRMutexPtr tok);
+
+/*
+ * Library wide APIs.
+ */
+XMLPUBFUN void XMLCALL
+ xmlInitThreads (void);
+XMLPUBFUN void XMLCALL
+ xmlLockLibrary (void);
+XMLPUBFUN void XMLCALL
+ xmlUnlockLibrary(void);
+XMLPUBFUN int XMLCALL
+ xmlGetThreadId (void);
+XMLPUBFUN int XMLCALL
+ xmlIsMainThread (void);
+XMLPUBFUN void XMLCALL
+ xmlCleanupThreads(void);
+XMLPUBFUN xmlGlobalStatePtr XMLCALL
+ xmlGetGlobalState(void);
+
+#if defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && defined(LIBXML_STATIC_FOR_DLL)
+int XMLCALL xmlDllMain(void *hinstDLL, unsigned long fdwReason, void *lpvReserved);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* __XML_THREADS_H__ */
diff --git a/libxml2/include/libxml/tree.h b/libxml2/include/libxml/tree.h
new file mode 100644
index 000000000..7e06686af
--- /dev/null
+++ b/libxml2/include/libxml/tree.h
@@ -0,0 +1,1303 @@
+/*
+ * Summary: interfaces for tree manipulation
+ * Description: this module describes the structures found in an tree resulting
+ * from an XML or HTML parsing, as well as the API provided for
+ * various processing on that tree
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_TREE_H__
+#define __XML_TREE_H__
+
+#include <stdio.h>
+#include <limits.h>
+#include <libxml/xmlversion.h>
+#include <libxml/xmlstring.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Some of the basic types pointer to structures:
+ */
+/* xmlIO.h */
+typedef struct _xmlParserInputBuffer xmlParserInputBuffer;
+typedef xmlParserInputBuffer *xmlParserInputBufferPtr;
+
+typedef struct _xmlOutputBuffer xmlOutputBuffer;
+typedef xmlOutputBuffer *xmlOutputBufferPtr;
+
+/* parser.h */
+typedef struct _xmlParserInput xmlParserInput;
+typedef xmlParserInput *xmlParserInputPtr;
+
+typedef struct _xmlParserCtxt xmlParserCtxt;
+typedef xmlParserCtxt *xmlParserCtxtPtr;
+
+typedef struct _xmlSAXLocator xmlSAXLocator;
+typedef xmlSAXLocator *xmlSAXLocatorPtr;
+
+typedef struct _xmlSAXHandler xmlSAXHandler;
+typedef xmlSAXHandler *xmlSAXHandlerPtr;
+
+/* entities.h */
+typedef struct _xmlEntity xmlEntity;
+typedef xmlEntity *xmlEntityPtr;
+
+/**
+ * BASE_BUFFER_SIZE:
+ *
+ * default buffer size 4000.
+ */
+#define BASE_BUFFER_SIZE 4096
+
+/**
+ * LIBXML_NAMESPACE_DICT:
+ *
+ * Defines experimental behaviour:
+ * 1) xmlNs gets an additional field @context (a xmlDoc)
+ * 2) when creating a tree, xmlNs->href is stored in the dict of xmlDoc.
+ */
+/* #define LIBXML_NAMESPACE_DICT */
+
+/**
+ * xmlBufferAllocationScheme:
+ *
+ * A buffer allocation scheme can be defined to either match exactly the
+ * need or double it's allocated size each time it is found too small.
+ */
+
+typedef enum {
+ XML_BUFFER_ALLOC_DOUBLEIT, /* double each time one need to grow */
+ XML_BUFFER_ALLOC_EXACT, /* grow only to the minimal size */
+ XML_BUFFER_ALLOC_IMMUTABLE, /* immutable buffer */
+ XML_BUFFER_ALLOC_IO, /* special allocation scheme used for I/O */
+ XML_BUFFER_ALLOC_HYBRID /* exact up to a threshold, and doubleit thereafter */
+} xmlBufferAllocationScheme;
+
+/**
+ * xmlBuffer:
+ *
+ * A buffer structure, this old construct is limited to 2GB and
+ * is being deprecated, use API with xmlBuf instead
+ */
+typedef struct _xmlBuffer xmlBuffer;
+typedef xmlBuffer *xmlBufferPtr;
+struct _xmlBuffer {
+ xmlChar *content; /* The buffer content UTF8 */
+ unsigned int use; /* The buffer size used */
+ unsigned int size; /* The buffer size */
+ xmlBufferAllocationScheme alloc; /* The realloc method */
+ xmlChar *contentIO; /* in IO mode we may have a different base */
+};
+
+/**
+ * xmlBuf:
+ *
+ * A buffer structure, new one, the actual structure internals are not public
+ */
+
+typedef struct _xmlBuf xmlBuf;
+
+/**
+ * xmlBufPtr:
+ *
+ * A pointer to a buffer structure, the actual structure internals are not
+ * public
+ */
+
+typedef xmlBuf *xmlBufPtr;
+
+/*
+ * A few public routines for xmlBuf. As those are expected to be used
+ * mostly internally the bulk of the routines are internal in buf.h
+ */
+XMLPUBFUN xmlChar* XMLCALL xmlBufContent (const xmlBufPtr buf);
+XMLPUBFUN xmlChar* XMLCALL xmlBufEnd (const xmlBufPtr buf);
+XMLPUBFUN size_t XMLCALL xmlBufUse (const xmlBufPtr buf);
+XMLPUBFUN size_t XMLCALL xmlBufShrink (xmlBufPtr buf, size_t len);
+
+/*
+ * LIBXML2_NEW_BUFFER:
+ *
+ * Macro used to express that the API use the new buffers for
+ * xmlParserInputBuffer and xmlOutputBuffer. The change was
+ * introduced in 2.9.0.
+ */
+#define LIBXML2_NEW_BUFFER
+
+/**
+ * XML_XML_NAMESPACE:
+ *
+ * This is the namespace for the special xml: prefix predefined in the
+ * XML Namespace specification.
+ */
+#define XML_XML_NAMESPACE \
+ (const xmlChar *) "http://www.w3.org/XML/1998/namespace"
+
+/**
+ * XML_XML_ID:
+ *
+ * This is the name for the special xml:id attribute
+ */
+#define XML_XML_ID (const xmlChar *) "xml:id"
+
+/*
+ * The different element types carried by an XML tree.
+ *
+ * NOTE: This is synchronized with DOM Level1 values
+ * See http://www.w3.org/TR/REC-DOM-Level-1/
+ *
+ * Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should
+ * be deprecated to use an XML_DTD_NODE.
+ */
+typedef enum {
+ XML_ELEMENT_NODE= 1,
+ XML_ATTRIBUTE_NODE= 2,
+ XML_TEXT_NODE= 3,
+ XML_CDATA_SECTION_NODE= 4,
+ XML_ENTITY_REF_NODE= 5,
+ XML_ENTITY_NODE= 6,
+ XML_PI_NODE= 7,
+ XML_COMMENT_NODE= 8,
+ XML_DOCUMENT_NODE= 9,
+ XML_DOCUMENT_TYPE_NODE= 10,
+ XML_DOCUMENT_FRAG_NODE= 11,
+ XML_NOTATION_NODE= 12,
+ XML_HTML_DOCUMENT_NODE= 13,
+ XML_DTD_NODE= 14,
+ XML_ELEMENT_DECL= 15,
+ XML_ATTRIBUTE_DECL= 16,
+ XML_ENTITY_DECL= 17,
+ XML_NAMESPACE_DECL= 18,
+ XML_XINCLUDE_START= 19,
+ XML_XINCLUDE_END= 20
+#ifdef LIBXML_DOCB_ENABLED
+ ,XML_DOCB_DOCUMENT_NODE= 21
+#endif
+} xmlElementType;
+
+
+/**
+ * xmlNotation:
+ *
+ * A DTD Notation definition.
+ */
+
+typedef struct _xmlNotation xmlNotation;
+typedef xmlNotation *xmlNotationPtr;
+struct _xmlNotation {
+ const xmlChar *name; /* Notation name */
+ const xmlChar *PublicID; /* Public identifier, if any */
+ const xmlChar *SystemID; /* System identifier, if any */
+};
+
+/**
+ * xmlAttributeType:
+ *
+ * A DTD Attribute type definition.
+ */
+
+typedef enum {
+ XML_ATTRIBUTE_CDATA = 1,
+ XML_ATTRIBUTE_ID,
+ XML_ATTRIBUTE_IDREF ,
+ XML_ATTRIBUTE_IDREFS,
+ XML_ATTRIBUTE_ENTITY,
+ XML_ATTRIBUTE_ENTITIES,
+ XML_ATTRIBUTE_NMTOKEN,
+ XML_ATTRIBUTE_NMTOKENS,
+ XML_ATTRIBUTE_ENUMERATION,
+ XML_ATTRIBUTE_NOTATION
+} xmlAttributeType;
+
+/**
+ * xmlAttributeDefault:
+ *
+ * A DTD Attribute default definition.
+ */
+
+typedef enum {
+ XML_ATTRIBUTE_NONE = 1,
+ XML_ATTRIBUTE_REQUIRED,
+ XML_ATTRIBUTE_IMPLIED,
+ XML_ATTRIBUTE_FIXED
+} xmlAttributeDefault;
+
+/**
+ * xmlEnumeration:
+ *
+ * List structure used when there is an enumeration in DTDs.
+ */
+
+typedef struct _xmlEnumeration xmlEnumeration;
+typedef xmlEnumeration *xmlEnumerationPtr;
+struct _xmlEnumeration {
+ struct _xmlEnumeration *next; /* next one */
+ const xmlChar *name; /* Enumeration name */
+};
+
+/**
+ * xmlAttribute:
+ *
+ * An Attribute declaration in a DTD.
+ */
+
+typedef struct _xmlAttribute xmlAttribute;
+typedef xmlAttribute *xmlAttributePtr;
+struct _xmlAttribute {
+ void *_private; /* application data */
+ xmlElementType type; /* XML_ATTRIBUTE_DECL, must be second ! */
+ const xmlChar *name; /* Attribute name */
+ struct _xmlNode *children; /* NULL */
+ struct _xmlNode *last; /* NULL */
+ struct _xmlDtd *parent; /* -> DTD */
+ struct _xmlNode *next; /* next sibling link */
+ struct _xmlNode *prev; /* previous sibling link */
+ struct _xmlDoc *doc; /* the containing document */
+
+ struct _xmlAttribute *nexth; /* next in hash table */
+ xmlAttributeType atype; /* The attribute type */
+ xmlAttributeDefault def; /* the default */
+ const xmlChar *defaultValue; /* or the default value */
+ xmlEnumerationPtr tree; /* or the enumeration tree if any */
+ const xmlChar *prefix; /* the namespace prefix if any */
+ const xmlChar *elem; /* Element holding the attribute */
+};
+
+/**
+ * xmlElementContentType:
+ *
+ * Possible definitions of element content types.
+ */
+typedef enum {
+ XML_ELEMENT_CONTENT_PCDATA = 1,
+ XML_ELEMENT_CONTENT_ELEMENT,
+ XML_ELEMENT_CONTENT_SEQ,
+ XML_ELEMENT_CONTENT_OR
+} xmlElementContentType;
+
+/**
+ * xmlElementContentOccur:
+ *
+ * Possible definitions of element content occurrences.
+ */
+typedef enum {
+ XML_ELEMENT_CONTENT_ONCE = 1,
+ XML_ELEMENT_CONTENT_OPT,
+ XML_ELEMENT_CONTENT_MULT,
+ XML_ELEMENT_CONTENT_PLUS
+} xmlElementContentOccur;
+
+/**
+ * xmlElementContent:
+ *
+ * An XML Element content as stored after parsing an element definition
+ * in a DTD.
+ */
+
+typedef struct _xmlElementContent xmlElementContent;
+typedef xmlElementContent *xmlElementContentPtr;
+struct _xmlElementContent {
+ xmlElementContentType type; /* PCDATA, ELEMENT, SEQ or OR */
+ xmlElementContentOccur ocur; /* ONCE, OPT, MULT or PLUS */
+ const xmlChar *name; /* Element name */
+ struct _xmlElementContent *c1; /* first child */
+ struct _xmlElementContent *c2; /* second child */
+ struct _xmlElementContent *parent; /* parent */
+ const xmlChar *prefix; /* Namespace prefix */
+};
+
+/**
+ * xmlElementTypeVal:
+ *
+ * The different possibilities for an element content type.
+ */
+
+typedef enum {
+ XML_ELEMENT_TYPE_UNDEFINED = 0,
+ XML_ELEMENT_TYPE_EMPTY = 1,
+ XML_ELEMENT_TYPE_ANY,
+ XML_ELEMENT_TYPE_MIXED,
+ XML_ELEMENT_TYPE_ELEMENT
+} xmlElementTypeVal;
+
+#ifdef __cplusplus
+}
+#endif
+#include <libxml/xmlregexp.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * xmlElement:
+ *
+ * An XML Element declaration from a DTD.
+ */
+
+typedef struct _xmlElement xmlElement;
+typedef xmlElement *xmlElementPtr;
+struct _xmlElement {
+ void *_private; /* application data */
+ xmlElementType type; /* XML_ELEMENT_DECL, must be second ! */
+ const xmlChar *name; /* Element name */
+ struct _xmlNode *children; /* NULL */
+ struct _xmlNode *last; /* NULL */
+ struct _xmlDtd *parent; /* -> DTD */
+ struct _xmlNode *next; /* next sibling link */
+ struct _xmlNode *prev; /* previous sibling link */
+ struct _xmlDoc *doc; /* the containing document */
+
+ xmlElementTypeVal etype; /* The type */
+ xmlElementContentPtr content; /* the allowed element content */
+ xmlAttributePtr attributes; /* List of the declared attributes */
+ const xmlChar *prefix; /* the namespace prefix if any */
+#ifdef LIBXML_REGEXP_ENABLED
+ xmlRegexpPtr contModel; /* the validating regexp */
+#else
+ void *contModel;
+#endif
+};
+
+
+/**
+ * XML_LOCAL_NAMESPACE:
+ *
+ * A namespace declaration node.
+ */
+#define XML_LOCAL_NAMESPACE XML_NAMESPACE_DECL
+typedef xmlElementType xmlNsType;
+
+/**
+ * xmlNs:
+ *
+ * An XML namespace.
+ * Note that prefix == NULL is valid, it defines the default namespace
+ * within the subtree (until overridden).
+ *
+ * xmlNsType is unified with xmlElementType.
+ */
+
+typedef struct _xmlNs xmlNs;
+typedef xmlNs *xmlNsPtr;
+struct _xmlNs {
+ struct _xmlNs *next; /* next Ns link for this node */
+ xmlNsType type; /* global or local */
+ const xmlChar *href; /* URL for the namespace */
+ const xmlChar *prefix; /* prefix for the namespace */
+ void *_private; /* application data */
+ struct _xmlDoc *context; /* normally an xmlDoc */
+};
+
+/**
+ * xmlDtd:
+ *
+ * An XML DTD, as defined by <!DOCTYPE ... There is actually one for
+ * the internal subset and for the external subset.
+ */
+typedef struct _xmlDtd xmlDtd;
+typedef xmlDtd *xmlDtdPtr;
+struct _xmlDtd {
+ void *_private; /* application data */
+ xmlElementType type; /* XML_DTD_NODE, must be second ! */
+ const xmlChar *name; /* Name of the DTD */
+ struct _xmlNode *children; /* the value of the property link */
+ struct _xmlNode *last; /* last child link */
+ struct _xmlDoc *parent; /* child->parent link */
+ struct _xmlNode *next; /* next sibling link */
+ struct _xmlNode *prev; /* previous sibling link */
+ struct _xmlDoc *doc; /* the containing document */
+
+ /* End of common part */
+ void *notations; /* Hash table for notations if any */
+ void *elements; /* Hash table for elements if any */
+ void *attributes; /* Hash table for attributes if any */
+ void *entities; /* Hash table for entities if any */
+ const xmlChar *ExternalID; /* External identifier for PUBLIC DTD */
+ const xmlChar *SystemID; /* URI for a SYSTEM or PUBLIC DTD */
+ void *pentities; /* Hash table for param entities if any */
+};
+
+/**
+ * xmlAttr:
+ *
+ * An attribute on an XML node.
+ */
+typedef struct _xmlAttr xmlAttr;
+typedef xmlAttr *xmlAttrPtr;
+struct _xmlAttr {
+ void *_private; /* application data */
+ xmlElementType type; /* XML_ATTRIBUTE_NODE, must be second ! */
+ const xmlChar *name; /* the name of the property */
+ struct _xmlNode *children; /* the value of the property */
+ struct _xmlNode *last; /* NULL */
+ struct _xmlNode *parent; /* child->parent link */
+ struct _xmlAttr *next; /* next sibling link */
+ struct _xmlAttr *prev; /* previous sibling link */
+ struct _xmlDoc *doc; /* the containing document */
+ xmlNs *ns; /* pointer to the associated namespace */
+ xmlAttributeType atype; /* the attribute type if validating */
+ void *psvi; /* for type/PSVI informations */
+};
+
+/**
+ * xmlID:
+ *
+ * An XML ID instance.
+ */
+
+typedef struct _xmlID xmlID;
+typedef xmlID *xmlIDPtr;
+struct _xmlID {
+ struct _xmlID *next; /* next ID */
+ const xmlChar *value; /* The ID name */
+ xmlAttrPtr attr; /* The attribute holding it */
+ const xmlChar *name; /* The attribute if attr is not available */
+ int lineno; /* The line number if attr is not available */
+ struct _xmlDoc *doc; /* The document holding the ID */
+};
+
+/**
+ * xmlRef:
+ *
+ * An XML IDREF instance.
+ */
+
+typedef struct _xmlRef xmlRef;
+typedef xmlRef *xmlRefPtr;
+struct _xmlRef {
+ struct _xmlRef *next; /* next Ref */
+ const xmlChar *value; /* The Ref name */
+ xmlAttrPtr attr; /* The attribute holding it */
+ const xmlChar *name; /* The attribute if attr is not available */
+ int lineno; /* The line number if attr is not available */
+};
+
+/**
+ * xmlNode:
+ *
+ * A node in an XML tree.
+ */
+typedef struct _xmlNode xmlNode;
+typedef xmlNode *xmlNodePtr;
+struct _xmlNode {
+ void *_private; /* application data */
+ xmlElementType type; /* type number, must be second ! */
+ const xmlChar *name; /* the name of the node, or the entity */
+ struct _xmlNode *children; /* parent->childs link */
+ struct _xmlNode *last; /* last child link */
+ struct _xmlNode *parent; /* child->parent link */
+ struct _xmlNode *next; /* next sibling link */
+ struct _xmlNode *prev; /* previous sibling link */
+ struct _xmlDoc *doc; /* the containing document */
+
+ /* End of common part */
+ xmlNs *ns; /* pointer to the associated namespace */
+ xmlChar *content; /* the content */
+ struct _xmlAttr *properties;/* properties list */
+ xmlNs *nsDef; /* namespace definitions on this node */
+ void *psvi; /* for type/PSVI informations */
+ unsigned short line; /* line number */
+ unsigned short extra; /* extra data for XPath/XSLT */
+};
+
+/**
+ * XML_GET_CONTENT:
+ *
+ * Macro to extract the content pointer of a node.
+ */
+#define XML_GET_CONTENT(n) \
+ ((n)->type == XML_ELEMENT_NODE ? NULL : (n)->content)
+
+/**
+ * XML_GET_LINE:
+ *
+ * Macro to extract the line number of an element node.
+ */
+#define XML_GET_LINE(n) \
+ (xmlGetLineNo(n))
+
+/**
+ * xmlDocProperty
+ *
+ * Set of properties of the document as found by the parser
+ * Some of them are linked to similary named xmlParserOption
+ */
+typedef enum {
+ XML_DOC_WELLFORMED = 1<<0, /* document is XML well formed */
+ XML_DOC_NSVALID = 1<<1, /* document is Namespace valid */
+ XML_DOC_OLD10 = 1<<2, /* parsed with old XML-1.0 parser */
+ XML_DOC_DTDVALID = 1<<3, /* DTD validation was successful */
+ XML_DOC_XINCLUDE = 1<<4, /* XInclude substitution was done */
+ XML_DOC_USERBUILT = 1<<5, /* Document was built using the API
+ and not by parsing an instance */
+ XML_DOC_INTERNAL = 1<<6, /* built for internal processing */
+ XML_DOC_HTML = 1<<7 /* parsed or built HTML document */
+} xmlDocProperties;
+
+/**
+ * xmlDoc:
+ *
+ * An XML document.
+ */
+typedef struct _xmlDoc xmlDoc;
+typedef xmlDoc *xmlDocPtr;
+struct _xmlDoc {
+ void *_private; /* application data */
+ xmlElementType type; /* XML_DOCUMENT_NODE, must be second ! */
+ char *name; /* name/filename/URI of the document */
+ struct _xmlNode *children; /* the document tree */
+ struct _xmlNode *last; /* last child link */
+ struct _xmlNode *parent; /* child->parent link */
+ struct _xmlNode *next; /* next sibling link */
+ struct _xmlNode *prev; /* previous sibling link */
+ struct _xmlDoc *doc; /* autoreference to itself */
+
+ /* End of common part */
+ int compression;/* level of zlib compression */
+ int standalone; /* standalone document (no external refs)
+ 1 if standalone="yes"
+ 0 if standalone="no"
+ -1 if there is no XML declaration
+ -2 if there is an XML declaration, but no
+ standalone attribute was specified */
+ struct _xmlDtd *intSubset; /* the document internal subset */
+ struct _xmlDtd *extSubset; /* the document external subset */
+ struct _xmlNs *oldNs; /* Global namespace, the old way */
+ const xmlChar *version; /* the XML version string */
+ const xmlChar *encoding; /* external initial encoding, if any */
+ void *ids; /* Hash table for ID attributes if any */
+ void *refs; /* Hash table for IDREFs attributes if any */
+ const xmlChar *URL; /* The URI for that document */
+ int charset; /* encoding of the in-memory content
+ actually an xmlCharEncoding */
+ struct _xmlDict *dict; /* dict used to allocate names or NULL */
+ void *psvi; /* for type/PSVI informations */
+ int parseFlags; /* set of xmlParserOption used to parse the
+ document */
+ int properties; /* set of xmlDocProperties for this document
+ set at the end of parsing */
+};
+
+
+typedef struct _xmlDOMWrapCtxt xmlDOMWrapCtxt;
+typedef xmlDOMWrapCtxt *xmlDOMWrapCtxtPtr;
+
+/**
+ * xmlDOMWrapAcquireNsFunction:
+ * @ctxt: a DOM wrapper context
+ * @node: the context node (element or attribute)
+ * @nsName: the requested namespace name
+ * @nsPrefix: the requested namespace prefix
+ *
+ * A function called to acquire namespaces (xmlNs) from the wrapper.
+ *
+ * Returns an xmlNsPtr or NULL in case of an error.
+ */
+typedef xmlNsPtr (*xmlDOMWrapAcquireNsFunction) (xmlDOMWrapCtxtPtr ctxt,
+ xmlNodePtr node,
+ const xmlChar *nsName,
+ const xmlChar *nsPrefix);
+
+/**
+ * xmlDOMWrapCtxt:
+ *
+ * Context for DOM wrapper-operations.
+ */
+struct _xmlDOMWrapCtxt {
+ void * _private;
+ /*
+ * The type of this context, just in case we need specialized
+ * contexts in the future.
+ */
+ int type;
+ /*
+ * Internal namespace map used for various operations.
+ */
+ void * namespaceMap;
+ /*
+ * Use this one to acquire an xmlNsPtr intended for node->ns.
+ * (Note that this is not intended for elem->nsDef).
+ */
+ xmlDOMWrapAcquireNsFunction getNsForNodeFunc;
+};
+
+/**
+ * xmlChildrenNode:
+ *
+ * Macro for compatibility naming layer with libxml1. Maps
+ * to "children."
+ */
+#ifndef xmlChildrenNode
+#define xmlChildrenNode children
+#endif
+
+/**
+ * xmlRootNode:
+ *
+ * Macro for compatibility naming layer with libxml1. Maps
+ * to "children".
+ */
+#ifndef xmlRootNode
+#define xmlRootNode children
+#endif
+
+/*
+ * Variables.
+ */
+
+/*
+ * Some helper functions
+ */
+#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)
+XMLPUBFUN int XMLCALL
+ xmlValidateNCName (const xmlChar *value,
+ int space);
+#endif
+
+#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
+XMLPUBFUN int XMLCALL
+ xmlValidateQName (const xmlChar *value,
+ int space);
+XMLPUBFUN int XMLCALL
+ xmlValidateName (const xmlChar *value,
+ int space);
+XMLPUBFUN int XMLCALL
+ xmlValidateNMToken (const xmlChar *value,
+ int space);
+#endif
+
+XMLPUBFUN xmlChar * XMLCALL
+ xmlBuildQName (const xmlChar *ncname,
+ const xmlChar *prefix,
+ xmlChar *memory,
+ int len);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlSplitQName2 (const xmlChar *name,
+ xmlChar **prefix);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlSplitQName3 (const xmlChar *name,
+ int *len);
+
+/*
+ * Handling Buffers, the old ones see @xmlBuf for the new ones.
+ */
+
+XMLPUBFUN void XMLCALL
+ xmlSetBufferAllocationScheme(xmlBufferAllocationScheme scheme);
+XMLPUBFUN xmlBufferAllocationScheme XMLCALL
+ xmlGetBufferAllocationScheme(void);
+
+XMLPUBFUN xmlBufferPtr XMLCALL
+ xmlBufferCreate (void);
+XMLPUBFUN xmlBufferPtr XMLCALL
+ xmlBufferCreateSize (size_t size);
+XMLPUBFUN xmlBufferPtr XMLCALL
+ xmlBufferCreateStatic (void *mem,
+ size_t size);
+XMLPUBFUN int XMLCALL
+ xmlBufferResize (xmlBufferPtr buf,
+ unsigned int size);
+XMLPUBFUN void XMLCALL
+ xmlBufferFree (xmlBufferPtr buf);
+XMLPUBFUN int XMLCALL
+ xmlBufferDump (FILE *file,
+ xmlBufferPtr buf);
+XMLPUBFUN int XMLCALL
+ xmlBufferAdd (xmlBufferPtr buf,
+ const xmlChar *str,
+ int len);
+XMLPUBFUN int XMLCALL
+ xmlBufferAddHead (xmlBufferPtr buf,
+ const xmlChar *str,
+ int len);
+XMLPUBFUN int XMLCALL
+ xmlBufferCat (xmlBufferPtr buf,
+ const xmlChar *str);
+XMLPUBFUN int XMLCALL
+ xmlBufferCCat (xmlBufferPtr buf,
+ const char *str);
+XMLPUBFUN int XMLCALL
+ xmlBufferShrink (xmlBufferPtr buf,
+ unsigned int len);
+XMLPUBFUN int XMLCALL
+ xmlBufferGrow (xmlBufferPtr buf,
+ unsigned int len);
+XMLPUBFUN void XMLCALL
+ xmlBufferEmpty (xmlBufferPtr buf);
+XMLPUBFUN const xmlChar* XMLCALL
+ xmlBufferContent (const xmlBufferPtr buf);
+XMLPUBFUN xmlChar* XMLCALL
+ xmlBufferDetach (xmlBufferPtr buf);
+XMLPUBFUN void XMLCALL
+ xmlBufferSetAllocationScheme(xmlBufferPtr buf,
+ xmlBufferAllocationScheme scheme);
+XMLPUBFUN int XMLCALL
+ xmlBufferLength (const xmlBufferPtr buf);
+
+/*
+ * Creating/freeing new structures.
+ */
+XMLPUBFUN xmlDtdPtr XMLCALL
+ xmlCreateIntSubset (xmlDocPtr doc,
+ const xmlChar *name,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+XMLPUBFUN xmlDtdPtr XMLCALL
+ xmlNewDtd (xmlDocPtr doc,
+ const xmlChar *name,
+ const xmlChar *ExternalID,
+ const xmlChar *SystemID);
+XMLPUBFUN xmlDtdPtr XMLCALL
+ xmlGetIntSubset (xmlDocPtr doc);
+XMLPUBFUN void XMLCALL
+ xmlFreeDtd (xmlDtdPtr cur);
+#ifdef LIBXML_LEGACY_ENABLED
+XMLPUBFUN xmlNsPtr XMLCALL
+ xmlNewGlobalNs (xmlDocPtr doc,
+ const xmlChar *href,
+ const xmlChar *prefix);
+#endif /* LIBXML_LEGACY_ENABLED */
+XMLPUBFUN xmlNsPtr XMLCALL
+ xmlNewNs (xmlNodePtr node,
+ const xmlChar *href,
+ const xmlChar *prefix);
+XMLPUBFUN void XMLCALL
+ xmlFreeNs (xmlNsPtr cur);
+XMLPUBFUN void XMLCALL
+ xmlFreeNsList (xmlNsPtr cur);
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlNewDoc (const xmlChar *version);
+XMLPUBFUN void XMLCALL
+ xmlFreeDoc (xmlDocPtr cur);
+XMLPUBFUN xmlAttrPtr XMLCALL
+ xmlNewDocProp (xmlDocPtr doc,
+ const xmlChar *name,
+ const xmlChar *value);
+#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
+ defined(LIBXML_SCHEMAS_ENABLED)
+XMLPUBFUN xmlAttrPtr XMLCALL
+ xmlNewProp (xmlNodePtr node,
+ const xmlChar *name,
+ const xmlChar *value);
+#endif
+XMLPUBFUN xmlAttrPtr XMLCALL
+ xmlNewNsProp (xmlNodePtr node,
+ xmlNsPtr ns,
+ const xmlChar *name,
+ const xmlChar *value);
+XMLPUBFUN xmlAttrPtr XMLCALL
+ xmlNewNsPropEatName (xmlNodePtr node,
+ xmlNsPtr ns,
+ xmlChar *name,
+ const xmlChar *value);
+XMLPUBFUN void XMLCALL
+ xmlFreePropList (xmlAttrPtr cur);
+XMLPUBFUN void XMLCALL
+ xmlFreeProp (xmlAttrPtr cur);
+XMLPUBFUN xmlAttrPtr XMLCALL
+ xmlCopyProp (xmlNodePtr target,
+ xmlAttrPtr cur);
+XMLPUBFUN xmlAttrPtr XMLCALL
+ xmlCopyPropList (xmlNodePtr target,
+ xmlAttrPtr cur);
+#ifdef LIBXML_TREE_ENABLED
+XMLPUBFUN xmlDtdPtr XMLCALL
+ xmlCopyDtd (xmlDtdPtr dtd);
+#endif /* LIBXML_TREE_ENABLED */
+#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlCopyDoc (xmlDocPtr doc,
+ int recursive);
+#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */
+/*
+ * Creating new nodes.
+ */
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNewDocNode (xmlDocPtr doc,
+ xmlNsPtr ns,
+ const xmlChar *name,
+ const xmlChar *content);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNewDocNodeEatName (xmlDocPtr doc,
+ xmlNsPtr ns,
+ xmlChar *name,
+ const xmlChar *content);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNewNode (xmlNsPtr ns,
+ const xmlChar *name);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNewNodeEatName (xmlNsPtr ns,
+ xmlChar *name);
+#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNewChild (xmlNodePtr parent,
+ xmlNsPtr ns,
+ const xmlChar *name,
+ const xmlChar *content);
+#endif
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNewDocText (xmlDocPtr doc,
+ const xmlChar *content);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNewText (const xmlChar *content);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNewDocPI (xmlDocPtr doc,
+ const xmlChar *name,
+ const xmlChar *content);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNewPI (const xmlChar *name,
+ const xmlChar *content);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNewDocTextLen (xmlDocPtr doc,
+ const xmlChar *content,
+ int len);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNewTextLen (const xmlChar *content,
+ int len);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNewDocComment (xmlDocPtr doc,
+ const xmlChar *content);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNewComment (const xmlChar *content);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNewCDataBlock (xmlDocPtr doc,
+ const xmlChar *content,
+ int len);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNewCharRef (xmlDocPtr doc,
+ const xmlChar *name);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNewReference (xmlDocPtr doc,
+ const xmlChar *name);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlCopyNode (const xmlNodePtr node,
+ int recursive);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlDocCopyNode (const xmlNodePtr node,
+ xmlDocPtr doc,
+ int recursive);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlDocCopyNodeList (xmlDocPtr doc,
+ const xmlNodePtr node);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlCopyNodeList (const xmlNodePtr node);
+#ifdef LIBXML_TREE_ENABLED
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNewTextChild (xmlNodePtr parent,
+ xmlNsPtr ns,
+ const xmlChar *name,
+ const xmlChar *content);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNewDocRawNode (xmlDocPtr doc,
+ xmlNsPtr ns,
+ const xmlChar *name,
+ const xmlChar *content);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNewDocFragment (xmlDocPtr doc);
+#endif /* LIBXML_TREE_ENABLED */
+
+/*
+ * Navigating.
+ */
+XMLPUBFUN long XMLCALL
+ xmlGetLineNo (xmlNodePtr node);
+#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED)
+XMLPUBFUN xmlChar * XMLCALL
+ xmlGetNodePath (xmlNodePtr node);
+#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) */
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlDocGetRootElement (xmlDocPtr doc);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlGetLastChild (xmlNodePtr parent);
+XMLPUBFUN int XMLCALL
+ xmlNodeIsText (xmlNodePtr node);
+XMLPUBFUN int XMLCALL
+ xmlIsBlankNode (xmlNodePtr node);
+
+/*
+ * Changing the structure.
+ */
+#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlDocSetRootElement (xmlDocPtr doc,
+ xmlNodePtr root);
+#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */
+#ifdef LIBXML_TREE_ENABLED
+XMLPUBFUN void XMLCALL
+ xmlNodeSetName (xmlNodePtr cur,
+ const xmlChar *name);
+#endif /* LIBXML_TREE_ENABLED */
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlAddChild (xmlNodePtr parent,
+ xmlNodePtr cur);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlAddChildList (xmlNodePtr parent,
+ xmlNodePtr cur);
+#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlReplaceNode (xmlNodePtr old,
+ xmlNodePtr cur);
+#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */
+#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
+ defined(LIBXML_SCHEMAS_ENABLED)
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlAddPrevSibling (xmlNodePtr cur,
+ xmlNodePtr elem);
+#endif /* LIBXML_TREE_ENABLED || LIBXML_HTML_ENABLED || LIBXML_SCHEMAS_ENABLED */
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlAddSibling (xmlNodePtr cur,
+ xmlNodePtr elem);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlAddNextSibling (xmlNodePtr cur,
+ xmlNodePtr elem);
+XMLPUBFUN void XMLCALL
+ xmlUnlinkNode (xmlNodePtr cur);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlTextMerge (xmlNodePtr first,
+ xmlNodePtr second);
+XMLPUBFUN int XMLCALL
+ xmlTextConcat (xmlNodePtr node,
+ const xmlChar *content,
+ int len);
+XMLPUBFUN void XMLCALL
+ xmlFreeNodeList (xmlNodePtr cur);
+XMLPUBFUN void XMLCALL
+ xmlFreeNode (xmlNodePtr cur);
+XMLPUBFUN void XMLCALL
+ xmlSetTreeDoc (xmlNodePtr tree,
+ xmlDocPtr doc);
+XMLPUBFUN void XMLCALL
+ xmlSetListDoc (xmlNodePtr list,
+ xmlDocPtr doc);
+/*
+ * Namespaces.
+ */
+XMLPUBFUN xmlNsPtr XMLCALL
+ xmlSearchNs (xmlDocPtr doc,
+ xmlNodePtr node,
+ const xmlChar *nameSpace);
+XMLPUBFUN xmlNsPtr XMLCALL
+ xmlSearchNsByHref (xmlDocPtr doc,
+ xmlNodePtr node,
+ const xmlChar *href);
+#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
+XMLPUBFUN xmlNsPtr * XMLCALL
+ xmlGetNsList (xmlDocPtr doc,
+ xmlNodePtr node);
+#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) */
+
+XMLPUBFUN void XMLCALL
+ xmlSetNs (xmlNodePtr node,
+ xmlNsPtr ns);
+XMLPUBFUN xmlNsPtr XMLCALL
+ xmlCopyNamespace (xmlNsPtr cur);
+XMLPUBFUN xmlNsPtr XMLCALL
+ xmlCopyNamespaceList (xmlNsPtr cur);
+
+/*
+ * Changing the content.
+ */
+#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED)
+XMLPUBFUN xmlAttrPtr XMLCALL
+ xmlSetProp (xmlNodePtr node,
+ const xmlChar *name,
+ const xmlChar *value);
+XMLPUBFUN xmlAttrPtr XMLCALL
+ xmlSetNsProp (xmlNodePtr node,
+ xmlNsPtr ns,
+ const xmlChar *name,
+ const xmlChar *value);
+#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */
+XMLPUBFUN xmlChar * XMLCALL
+ xmlGetNoNsProp (xmlNodePtr node,
+ const xmlChar *name);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlGetProp (xmlNodePtr node,
+ const xmlChar *name);
+XMLPUBFUN xmlAttrPtr XMLCALL
+ xmlHasProp (xmlNodePtr node,
+ const xmlChar *name);
+XMLPUBFUN xmlAttrPtr XMLCALL
+ xmlHasNsProp (xmlNodePtr node,
+ const xmlChar *name,
+ const xmlChar *nameSpace);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlGetNsProp (xmlNodePtr node,
+ const xmlChar *name,
+ const xmlChar *nameSpace);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlStringGetNodeList (xmlDocPtr doc,
+ const xmlChar *value);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlStringLenGetNodeList (xmlDocPtr doc,
+ const xmlChar *value,
+ int len);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlNodeListGetString (xmlDocPtr doc,
+ xmlNodePtr list,
+ int inLine);
+#ifdef LIBXML_TREE_ENABLED
+XMLPUBFUN xmlChar * XMLCALL
+ xmlNodeListGetRawString (xmlDocPtr doc,
+ xmlNodePtr list,
+ int inLine);
+#endif /* LIBXML_TREE_ENABLED */
+XMLPUBFUN void XMLCALL
+ xmlNodeSetContent (xmlNodePtr cur,
+ const xmlChar *content);
+#ifdef LIBXML_TREE_ENABLED
+XMLPUBFUN void XMLCALL
+ xmlNodeSetContentLen (xmlNodePtr cur,
+ const xmlChar *content,
+ int len);
+#endif /* LIBXML_TREE_ENABLED */
+XMLPUBFUN void XMLCALL
+ xmlNodeAddContent (xmlNodePtr cur,
+ const xmlChar *content);
+XMLPUBFUN void XMLCALL
+ xmlNodeAddContentLen (xmlNodePtr cur,
+ const xmlChar *content,
+ int len);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlNodeGetContent (xmlNodePtr cur);
+
+XMLPUBFUN int XMLCALL
+ xmlNodeBufGetContent (xmlBufferPtr buffer,
+ xmlNodePtr cur);
+XMLPUBFUN int XMLCALL
+ xmlBufGetNodeContent (xmlBufPtr buf,
+ xmlNodePtr cur);
+
+XMLPUBFUN xmlChar * XMLCALL
+ xmlNodeGetLang (xmlNodePtr cur);
+XMLPUBFUN int XMLCALL
+ xmlNodeGetSpacePreserve (xmlNodePtr cur);
+#ifdef LIBXML_TREE_ENABLED
+XMLPUBFUN void XMLCALL
+ xmlNodeSetLang (xmlNodePtr cur,
+ const xmlChar *lang);
+XMLPUBFUN void XMLCALL
+ xmlNodeSetSpacePreserve (xmlNodePtr cur,
+ int val);
+#endif /* LIBXML_TREE_ENABLED */
+XMLPUBFUN xmlChar * XMLCALL
+ xmlNodeGetBase (xmlDocPtr doc,
+ xmlNodePtr cur);
+#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)
+XMLPUBFUN void XMLCALL
+ xmlNodeSetBase (xmlNodePtr cur,
+ const xmlChar *uri);
+#endif
+
+/*
+ * Removing content.
+ */
+XMLPUBFUN int XMLCALL
+ xmlRemoveProp (xmlAttrPtr cur);
+#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
+XMLPUBFUN int XMLCALL
+ xmlUnsetNsProp (xmlNodePtr node,
+ xmlNsPtr ns,
+ const xmlChar *name);
+XMLPUBFUN int XMLCALL
+ xmlUnsetProp (xmlNodePtr node,
+ const xmlChar *name);
+#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */
+
+/*
+ * Internal, don't use.
+ */
+XMLPUBFUN void XMLCALL
+ xmlBufferWriteCHAR (xmlBufferPtr buf,
+ const xmlChar *string);
+XMLPUBFUN void XMLCALL
+ xmlBufferWriteChar (xmlBufferPtr buf,
+ const char *string);
+XMLPUBFUN void XMLCALL
+ xmlBufferWriteQuotedString(xmlBufferPtr buf,
+ const xmlChar *string);
+
+#ifdef LIBXML_OUTPUT_ENABLED
+XMLPUBFUN void xmlAttrSerializeTxtContent(xmlBufferPtr buf,
+ xmlDocPtr doc,
+ xmlAttrPtr attr,
+ const xmlChar *string);
+#endif /* LIBXML_OUTPUT_ENABLED */
+
+#ifdef LIBXML_TREE_ENABLED
+/*
+ * Namespace handling.
+ */
+XMLPUBFUN int XMLCALL
+ xmlReconciliateNs (xmlDocPtr doc,
+ xmlNodePtr tree);
+#endif
+
+#ifdef LIBXML_OUTPUT_ENABLED
+/*
+ * Saving.
+ */
+XMLPUBFUN void XMLCALL
+ xmlDocDumpFormatMemory (xmlDocPtr cur,
+ xmlChar **mem,
+ int *size,
+ int format);
+XMLPUBFUN void XMLCALL
+ xmlDocDumpMemory (xmlDocPtr cur,
+ xmlChar **mem,
+ int *size);
+XMLPUBFUN void XMLCALL
+ xmlDocDumpMemoryEnc (xmlDocPtr out_doc,
+ xmlChar **doc_txt_ptr,
+ int * doc_txt_len,
+ const char *txt_encoding);
+XMLPUBFUN void XMLCALL
+ xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc,
+ xmlChar **doc_txt_ptr,
+ int * doc_txt_len,
+ const char *txt_encoding,
+ int format);
+XMLPUBFUN int XMLCALL
+ xmlDocFormatDump (FILE *f,
+ xmlDocPtr cur,
+ int format);
+XMLPUBFUN int XMLCALL
+ xmlDocDump (FILE *f,
+ xmlDocPtr cur);
+XMLPUBFUN void XMLCALL
+ xmlElemDump (FILE *f,
+ xmlDocPtr doc,
+ xmlNodePtr cur);
+XMLPUBFUN int XMLCALL
+ xmlSaveFile (const char *filename,
+ xmlDocPtr cur);
+XMLPUBFUN int XMLCALL
+ xmlSaveFormatFile (const char *filename,
+ xmlDocPtr cur,
+ int format);
+XMLPUBFUN size_t XMLCALL
+ xmlBufNodeDump (xmlBufPtr buf,
+ xmlDocPtr doc,
+ xmlNodePtr cur,
+ int level,
+ int format);
+XMLPUBFUN int XMLCALL
+ xmlNodeDump (xmlBufferPtr buf,
+ xmlDocPtr doc,
+ xmlNodePtr cur,
+ int level,
+ int format);
+
+XMLPUBFUN int XMLCALL
+ xmlSaveFileTo (xmlOutputBufferPtr buf,
+ xmlDocPtr cur,
+ const char *encoding);
+XMLPUBFUN int XMLCALL
+ xmlSaveFormatFileTo (xmlOutputBufferPtr buf,
+ xmlDocPtr cur,
+ const char *encoding,
+ int format);
+XMLPUBFUN void XMLCALL
+ xmlNodeDumpOutput (xmlOutputBufferPtr buf,
+ xmlDocPtr doc,
+ xmlNodePtr cur,
+ int level,
+ int format,
+ const char *encoding);
+
+XMLPUBFUN int XMLCALL
+ xmlSaveFormatFileEnc (const char *filename,
+ xmlDocPtr cur,
+ const char *encoding,
+ int format);
+
+XMLPUBFUN int XMLCALL
+ xmlSaveFileEnc (const char *filename,
+ xmlDocPtr cur,
+ const char *encoding);
+
+#endif /* LIBXML_OUTPUT_ENABLED */
+/*
+ * XHTML
+ */
+XMLPUBFUN int XMLCALL
+ xmlIsXHTML (const xmlChar *systemID,
+ const xmlChar *publicID);
+
+/*
+ * Compression.
+ */
+XMLPUBFUN int XMLCALL
+ xmlGetDocCompressMode (xmlDocPtr doc);
+XMLPUBFUN void XMLCALL
+ xmlSetDocCompressMode (xmlDocPtr doc,
+ int mode);
+XMLPUBFUN int XMLCALL
+ xmlGetCompressMode (void);
+XMLPUBFUN void XMLCALL
+ xmlSetCompressMode (int mode);
+
+/*
+* DOM-wrapper helper functions.
+*/
+XMLPUBFUN xmlDOMWrapCtxtPtr XMLCALL
+ xmlDOMWrapNewCtxt (void);
+XMLPUBFUN void XMLCALL
+ xmlDOMWrapFreeCtxt (xmlDOMWrapCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL
+ xmlDOMWrapReconcileNamespaces(xmlDOMWrapCtxtPtr ctxt,
+ xmlNodePtr elem,
+ int options);
+XMLPUBFUN int XMLCALL
+ xmlDOMWrapAdoptNode (xmlDOMWrapCtxtPtr ctxt,
+ xmlDocPtr sourceDoc,
+ xmlNodePtr node,
+ xmlDocPtr destDoc,
+ xmlNodePtr destParent,
+ int options);
+XMLPUBFUN int XMLCALL
+ xmlDOMWrapRemoveNode (xmlDOMWrapCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNodePtr node,
+ int options);
+XMLPUBFUN int XMLCALL
+ xmlDOMWrapCloneNode (xmlDOMWrapCtxtPtr ctxt,
+ xmlDocPtr sourceDoc,
+ xmlNodePtr node,
+ xmlNodePtr *clonedNode,
+ xmlDocPtr destDoc,
+ xmlNodePtr destParent,
+ int deep,
+ int options);
+
+#ifdef LIBXML_TREE_ENABLED
+/*
+ * 5 interfaces from DOM ElementTraversal, but different in entities
+ * traversal.
+ */
+XMLPUBFUN unsigned long XMLCALL
+ xmlChildElementCount (xmlNodePtr parent);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlNextElementSibling (xmlNodePtr node);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlFirstElementChild (xmlNodePtr parent);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlLastElementChild (xmlNodePtr parent);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlPreviousElementSibling (xmlNodePtr node);
+#endif
+#ifdef __cplusplus
+}
+#endif
+#ifndef __XML_PARSER_H__
+#include <libxml/xmlmemory.h>
+#endif
+
+#endif /* __XML_TREE_H__ */
+
diff --git a/libxml2/include/libxml/uri.h b/libxml2/include/libxml/uri.h
new file mode 100644
index 000000000..db48262b1
--- /dev/null
+++ b/libxml2/include/libxml/uri.h
@@ -0,0 +1,94 @@
+/**
+ * Summary: library of generic URI related routines
+ * Description: library of generic URI related routines
+ * Implements RFC 2396
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_URI_H__
+#define __XML_URI_H__
+
+#include <libxml/xmlversion.h>
+#include <libxml/tree.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * xmlURI:
+ *
+ * A parsed URI reference. This is a struct containing the various fields
+ * as described in RFC 2396 but separated for further processing.
+ *
+ * Note: query is a deprecated field which is incorrectly unescaped.
+ * query_raw takes precedence over query if the former is set.
+ * See: http://mail.gnome.org/archives/xml/2007-April/thread.html#00127
+ */
+typedef struct _xmlURI xmlURI;
+typedef xmlURI *xmlURIPtr;
+struct _xmlURI {
+ char *scheme; /* the URI scheme */
+ char *opaque; /* opaque part */
+ char *authority; /* the authority part */
+ char *server; /* the server part */
+ char *user; /* the user part */
+ int port; /* the port number */
+ char *path; /* the path string */
+ char *query; /* the query string (deprecated - use with caution) */
+ char *fragment; /* the fragment identifier */
+ int cleanup; /* parsing potentially unclean URI */
+ char *query_raw; /* the query string (as it appears in the URI) */
+};
+
+/*
+ * This function is in tree.h:
+ * xmlChar * xmlNodeGetBase (xmlDocPtr doc,
+ * xmlNodePtr cur);
+ */
+XMLPUBFUN xmlURIPtr XMLCALL
+ xmlCreateURI (void);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlBuildURI (const xmlChar *URI,
+ const xmlChar *base);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlBuildRelativeURI (const xmlChar *URI,
+ const xmlChar *base);
+XMLPUBFUN xmlURIPtr XMLCALL
+ xmlParseURI (const char *str);
+XMLPUBFUN xmlURIPtr XMLCALL
+ xmlParseURIRaw (const char *str,
+ int raw);
+XMLPUBFUN int XMLCALL
+ xmlParseURIReference (xmlURIPtr uri,
+ const char *str);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlSaveUri (xmlURIPtr uri);
+XMLPUBFUN void XMLCALL
+ xmlPrintURI (FILE *stream,
+ xmlURIPtr uri);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlURIEscapeStr (const xmlChar *str,
+ const xmlChar *list);
+XMLPUBFUN char * XMLCALL
+ xmlURIUnescapeString (const char *str,
+ int len,
+ char *target);
+XMLPUBFUN int XMLCALL
+ xmlNormalizeURIPath (char *path);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlURIEscape (const xmlChar *str);
+XMLPUBFUN void XMLCALL
+ xmlFreeURI (xmlURIPtr uri);
+XMLPUBFUN xmlChar* XMLCALL
+ xmlCanonicPath (const xmlChar *path);
+XMLPUBFUN xmlChar* XMLCALL
+ xmlPathToURI (const xmlChar *path);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* __XML_URI_H__ */
diff --git a/libxml2/include/libxml/valid.h b/libxml2/include/libxml/valid.h
new file mode 100644
index 000000000..2bc7b380c
--- /dev/null
+++ b/libxml2/include/libxml/valid.h
@@ -0,0 +1,458 @@
+/*
+ * Summary: The DTD validation
+ * Description: API for the DTD handling and the validity checking
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+
+#ifndef __XML_VALID_H__
+#define __XML_VALID_H__
+
+#include <libxml/xmlversion.h>
+#include <libxml/xmlerror.h>
+#include <libxml/tree.h>
+#include <libxml/list.h>
+#include <libxml/xmlautomata.h>
+#include <libxml/xmlregexp.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Validation state added for non-determinist content model.
+ */
+typedef struct _xmlValidState xmlValidState;
+typedef xmlValidState *xmlValidStatePtr;
+
+/**
+ * xmlValidityErrorFunc:
+ * @ctx: usually an xmlValidCtxtPtr to a validity error context,
+ * but comes from ctxt->userData (which normally contains such
+ * a pointer); ctxt->userData can be changed by the user.
+ * @msg: the string to format *printf like vararg
+ * @...: remaining arguments to the format
+ *
+ * Callback called when a validity error is found. This is a message
+ * oriented function similar to an *printf function.
+ */
+typedef void (XMLCDECL *xmlValidityErrorFunc) (void *ctx,
+ const char *msg,
+ ...) LIBXML_ATTR_FORMAT(2,3);
+
+/**
+ * xmlValidityWarningFunc:
+ * @ctx: usually an xmlValidCtxtPtr to a validity error context,
+ * but comes from ctxt->userData (which normally contains such
+ * a pointer); ctxt->userData can be changed by the user.
+ * @msg: the string to format *printf like vararg
+ * @...: remaining arguments to the format
+ *
+ * Callback called when a validity warning is found. This is a message
+ * oriented function similar to an *printf function.
+ */
+typedef void (XMLCDECL *xmlValidityWarningFunc) (void *ctx,
+ const char *msg,
+ ...) LIBXML_ATTR_FORMAT(2,3);
+
+#ifdef IN_LIBXML
+/**
+ * XML_CTXT_FINISH_DTD_0:
+ *
+ * Special value for finishDtd field when embedded in an xmlParserCtxt
+ */
+#define XML_CTXT_FINISH_DTD_0 0xabcd1234
+/**
+ * XML_CTXT_FINISH_DTD_1:
+ *
+ * Special value for finishDtd field when embedded in an xmlParserCtxt
+ */
+#define XML_CTXT_FINISH_DTD_1 0xabcd1235
+#endif
+
+/*
+ * xmlValidCtxt:
+ * An xmlValidCtxt is used for error reporting when validating.
+ */
+typedef struct _xmlValidCtxt xmlValidCtxt;
+typedef xmlValidCtxt *xmlValidCtxtPtr;
+struct _xmlValidCtxt {
+ void *userData; /* user specific data block */
+ xmlValidityErrorFunc error; /* the callback in case of errors */
+ xmlValidityWarningFunc warning; /* the callback in case of warning */
+
+ /* Node analysis stack used when validating within entities */
+ xmlNodePtr node; /* Current parsed Node */
+ int nodeNr; /* Depth of the parsing stack */
+ int nodeMax; /* Max depth of the parsing stack */
+ xmlNodePtr *nodeTab; /* array of nodes */
+
+ unsigned int finishDtd; /* finished validating the Dtd ? */
+ xmlDocPtr doc; /* the document */
+ int valid; /* temporary validity check result */
+
+ /* state state used for non-determinist content validation */
+ xmlValidState *vstate; /* current state */
+ int vstateNr; /* Depth of the validation stack */
+ int vstateMax; /* Max depth of the validation stack */
+ xmlValidState *vstateTab; /* array of validation states */
+
+#ifdef LIBXML_REGEXP_ENABLED
+ xmlAutomataPtr am; /* the automata */
+ xmlAutomataStatePtr state; /* used to build the automata */
+#else
+ void *am;
+ void *state;
+#endif
+};
+
+/*
+ * ALL notation declarations are stored in a table.
+ * There is one table per DTD.
+ */
+
+typedef struct _xmlHashTable xmlNotationTable;
+typedef xmlNotationTable *xmlNotationTablePtr;
+
+/*
+ * ALL element declarations are stored in a table.
+ * There is one table per DTD.
+ */
+
+typedef struct _xmlHashTable xmlElementTable;
+typedef xmlElementTable *xmlElementTablePtr;
+
+/*
+ * ALL attribute declarations are stored in a table.
+ * There is one table per DTD.
+ */
+
+typedef struct _xmlHashTable xmlAttributeTable;
+typedef xmlAttributeTable *xmlAttributeTablePtr;
+
+/*
+ * ALL IDs attributes are stored in a table.
+ * There is one table per document.
+ */
+
+typedef struct _xmlHashTable xmlIDTable;
+typedef xmlIDTable *xmlIDTablePtr;
+
+/*
+ * ALL Refs attributes are stored in a table.
+ * There is one table per document.
+ */
+
+typedef struct _xmlHashTable xmlRefTable;
+typedef xmlRefTable *xmlRefTablePtr;
+
+/* Notation */
+XMLPUBFUN xmlNotationPtr XMLCALL
+ xmlAddNotationDecl (xmlValidCtxtPtr ctxt,
+ xmlDtdPtr dtd,
+ const xmlChar *name,
+ const xmlChar *PublicID,
+ const xmlChar *SystemID);
+#ifdef LIBXML_TREE_ENABLED
+XMLPUBFUN xmlNotationTablePtr XMLCALL
+ xmlCopyNotationTable (xmlNotationTablePtr table);
+#endif /* LIBXML_TREE_ENABLED */
+XMLPUBFUN void XMLCALL
+ xmlFreeNotationTable (xmlNotationTablePtr table);
+#ifdef LIBXML_OUTPUT_ENABLED
+XMLPUBFUN void XMLCALL
+ xmlDumpNotationDecl (xmlBufferPtr buf,
+ xmlNotationPtr nota);
+XMLPUBFUN void XMLCALL
+ xmlDumpNotationTable (xmlBufferPtr buf,
+ xmlNotationTablePtr table);
+#endif /* LIBXML_OUTPUT_ENABLED */
+
+/* Element Content */
+/* the non Doc version are being deprecated */
+XMLPUBFUN xmlElementContentPtr XMLCALL
+ xmlNewElementContent (const xmlChar *name,
+ xmlElementContentType type);
+XMLPUBFUN xmlElementContentPtr XMLCALL
+ xmlCopyElementContent (xmlElementContentPtr content);
+XMLPUBFUN void XMLCALL
+ xmlFreeElementContent (xmlElementContentPtr cur);
+/* the new versions with doc argument */
+XMLPUBFUN xmlElementContentPtr XMLCALL
+ xmlNewDocElementContent (xmlDocPtr doc,
+ const xmlChar *name,
+ xmlElementContentType type);
+XMLPUBFUN xmlElementContentPtr XMLCALL
+ xmlCopyDocElementContent(xmlDocPtr doc,
+ xmlElementContentPtr content);
+XMLPUBFUN void XMLCALL
+ xmlFreeDocElementContent(xmlDocPtr doc,
+ xmlElementContentPtr cur);
+XMLPUBFUN void XMLCALL
+ xmlSnprintfElementContent(char *buf,
+ int size,
+ xmlElementContentPtr content,
+ int englob);
+#ifdef LIBXML_OUTPUT_ENABLED
+/* DEPRECATED */
+XMLPUBFUN void XMLCALL
+ xmlSprintfElementContent(char *buf,
+ xmlElementContentPtr content,
+ int englob);
+#endif /* LIBXML_OUTPUT_ENABLED */
+/* DEPRECATED */
+
+/* Element */
+XMLPUBFUN xmlElementPtr XMLCALL
+ xmlAddElementDecl (xmlValidCtxtPtr ctxt,
+ xmlDtdPtr dtd,
+ const xmlChar *name,
+ xmlElementTypeVal type,
+ xmlElementContentPtr content);
+#ifdef LIBXML_TREE_ENABLED
+XMLPUBFUN xmlElementTablePtr XMLCALL
+ xmlCopyElementTable (xmlElementTablePtr table);
+#endif /* LIBXML_TREE_ENABLED */
+XMLPUBFUN void XMLCALL
+ xmlFreeElementTable (xmlElementTablePtr table);
+#ifdef LIBXML_OUTPUT_ENABLED
+XMLPUBFUN void XMLCALL
+ xmlDumpElementTable (xmlBufferPtr buf,
+ xmlElementTablePtr table);
+XMLPUBFUN void XMLCALL
+ xmlDumpElementDecl (xmlBufferPtr buf,
+ xmlElementPtr elem);
+#endif /* LIBXML_OUTPUT_ENABLED */
+
+/* Enumeration */
+XMLPUBFUN xmlEnumerationPtr XMLCALL
+ xmlCreateEnumeration (const xmlChar *name);
+XMLPUBFUN void XMLCALL
+ xmlFreeEnumeration (xmlEnumerationPtr cur);
+#ifdef LIBXML_TREE_ENABLED
+XMLPUBFUN xmlEnumerationPtr XMLCALL
+ xmlCopyEnumeration (xmlEnumerationPtr cur);
+#endif /* LIBXML_TREE_ENABLED */
+
+/* Attribute */
+XMLPUBFUN xmlAttributePtr XMLCALL
+ xmlAddAttributeDecl (xmlValidCtxtPtr ctxt,
+ xmlDtdPtr dtd,
+ const xmlChar *elem,
+ const xmlChar *name,
+ const xmlChar *ns,
+ xmlAttributeType type,
+ xmlAttributeDefault def,
+ const xmlChar *defaultValue,
+ xmlEnumerationPtr tree);
+#ifdef LIBXML_TREE_ENABLED
+XMLPUBFUN xmlAttributeTablePtr XMLCALL
+ xmlCopyAttributeTable (xmlAttributeTablePtr table);
+#endif /* LIBXML_TREE_ENABLED */
+XMLPUBFUN void XMLCALL
+ xmlFreeAttributeTable (xmlAttributeTablePtr table);
+#ifdef LIBXML_OUTPUT_ENABLED
+XMLPUBFUN void XMLCALL
+ xmlDumpAttributeTable (xmlBufferPtr buf,
+ xmlAttributeTablePtr table);
+XMLPUBFUN void XMLCALL
+ xmlDumpAttributeDecl (xmlBufferPtr buf,
+ xmlAttributePtr attr);
+#endif /* LIBXML_OUTPUT_ENABLED */
+
+/* IDs */
+XMLPUBFUN xmlIDPtr XMLCALL
+ xmlAddID (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ const xmlChar *value,
+ xmlAttrPtr attr);
+XMLPUBFUN void XMLCALL
+ xmlFreeIDTable (xmlIDTablePtr table);
+XMLPUBFUN xmlAttrPtr XMLCALL
+ xmlGetID (xmlDocPtr doc,
+ const xmlChar *ID);
+XMLPUBFUN int XMLCALL
+ xmlIsID (xmlDocPtr doc,
+ xmlNodePtr elem,
+ xmlAttrPtr attr);
+XMLPUBFUN int XMLCALL
+ xmlRemoveID (xmlDocPtr doc,
+ xmlAttrPtr attr);
+
+/* IDREFs */
+XMLPUBFUN xmlRefPtr XMLCALL
+ xmlAddRef (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ const xmlChar *value,
+ xmlAttrPtr attr);
+XMLPUBFUN void XMLCALL
+ xmlFreeRefTable (xmlRefTablePtr table);
+XMLPUBFUN int XMLCALL
+ xmlIsRef (xmlDocPtr doc,
+ xmlNodePtr elem,
+ xmlAttrPtr attr);
+XMLPUBFUN int XMLCALL
+ xmlRemoveRef (xmlDocPtr doc,
+ xmlAttrPtr attr);
+XMLPUBFUN xmlListPtr XMLCALL
+ xmlGetRefs (xmlDocPtr doc,
+ const xmlChar *ID);
+
+/**
+ * The public function calls related to validity checking.
+ */
+#ifdef LIBXML_VALID_ENABLED
+/* Allocate/Release Validation Contexts */
+XMLPUBFUN xmlValidCtxtPtr XMLCALL
+ xmlNewValidCtxt(void);
+XMLPUBFUN void XMLCALL
+ xmlFreeValidCtxt(xmlValidCtxtPtr);
+
+XMLPUBFUN int XMLCALL
+ xmlValidateRoot (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc);
+XMLPUBFUN int XMLCALL
+ xmlValidateElementDecl (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlElementPtr elem);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlValidNormalizeAttributeValue(xmlDocPtr doc,
+ xmlNodePtr elem,
+ const xmlChar *name,
+ const xmlChar *value);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlValidCtxtNormalizeAttributeValue(xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNodePtr elem,
+ const xmlChar *name,
+ const xmlChar *value);
+XMLPUBFUN int XMLCALL
+ xmlValidateAttributeDecl(xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlAttributePtr attr);
+XMLPUBFUN int XMLCALL
+ xmlValidateAttributeValue(xmlAttributeType type,
+ const xmlChar *value);
+XMLPUBFUN int XMLCALL
+ xmlValidateNotationDecl (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNotationPtr nota);
+XMLPUBFUN int XMLCALL
+ xmlValidateDtd (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlDtdPtr dtd);
+XMLPUBFUN int XMLCALL
+ xmlValidateDtdFinal (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc);
+XMLPUBFUN int XMLCALL
+ xmlValidateDocument (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc);
+XMLPUBFUN int XMLCALL
+ xmlValidateElement (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNodePtr elem);
+XMLPUBFUN int XMLCALL
+ xmlValidateOneElement (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNodePtr elem);
+XMLPUBFUN int XMLCALL
+ xmlValidateOneAttribute (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNodePtr elem,
+ xmlAttrPtr attr,
+ const xmlChar *value);
+XMLPUBFUN int XMLCALL
+ xmlValidateOneNamespace (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNodePtr elem,
+ const xmlChar *prefix,
+ xmlNsPtr ns,
+ const xmlChar *value);
+XMLPUBFUN int XMLCALL
+ xmlValidateDocumentFinal(xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc);
+#endif /* LIBXML_VALID_ENABLED */
+
+#if defined(LIBXML_VALID_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
+XMLPUBFUN int XMLCALL
+ xmlValidateNotationUse (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ const xmlChar *notationName);
+#endif /* LIBXML_VALID_ENABLED or LIBXML_SCHEMAS_ENABLED */
+
+XMLPUBFUN int XMLCALL
+ xmlIsMixedElement (xmlDocPtr doc,
+ const xmlChar *name);
+XMLPUBFUN xmlAttributePtr XMLCALL
+ xmlGetDtdAttrDesc (xmlDtdPtr dtd,
+ const xmlChar *elem,
+ const xmlChar *name);
+XMLPUBFUN xmlAttributePtr XMLCALL
+ xmlGetDtdQAttrDesc (xmlDtdPtr dtd,
+ const xmlChar *elem,
+ const xmlChar *name,
+ const xmlChar *prefix);
+XMLPUBFUN xmlNotationPtr XMLCALL
+ xmlGetDtdNotationDesc (xmlDtdPtr dtd,
+ const xmlChar *name);
+XMLPUBFUN xmlElementPtr XMLCALL
+ xmlGetDtdQElementDesc (xmlDtdPtr dtd,
+ const xmlChar *name,
+ const xmlChar *prefix);
+XMLPUBFUN xmlElementPtr XMLCALL
+ xmlGetDtdElementDesc (xmlDtdPtr dtd,
+ const xmlChar *name);
+
+#ifdef LIBXML_VALID_ENABLED
+
+XMLPUBFUN int XMLCALL
+ xmlValidGetPotentialChildren(xmlElementContent *ctree,
+ const xmlChar **names,
+ int *len,
+ int max);
+
+XMLPUBFUN int XMLCALL
+ xmlValidGetValidElements(xmlNode *prev,
+ xmlNode *next,
+ const xmlChar **names,
+ int max);
+XMLPUBFUN int XMLCALL
+ xmlValidateNameValue (const xmlChar *value);
+XMLPUBFUN int XMLCALL
+ xmlValidateNamesValue (const xmlChar *value);
+XMLPUBFUN int XMLCALL
+ xmlValidateNmtokenValue (const xmlChar *value);
+XMLPUBFUN int XMLCALL
+ xmlValidateNmtokensValue(const xmlChar *value);
+
+#ifdef LIBXML_REGEXP_ENABLED
+/*
+ * Validation based on the regexp support
+ */
+XMLPUBFUN int XMLCALL
+ xmlValidBuildContentModel(xmlValidCtxtPtr ctxt,
+ xmlElementPtr elem);
+
+XMLPUBFUN int XMLCALL
+ xmlValidatePushElement (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNodePtr elem,
+ const xmlChar *qname);
+XMLPUBFUN int XMLCALL
+ xmlValidatePushCData (xmlValidCtxtPtr ctxt,
+ const xmlChar *data,
+ int len);
+XMLPUBFUN int XMLCALL
+ xmlValidatePopElement (xmlValidCtxtPtr ctxt,
+ xmlDocPtr doc,
+ xmlNodePtr elem,
+ const xmlChar *qname);
+#endif /* LIBXML_REGEXP_ENABLED */
+#endif /* LIBXML_VALID_ENABLED */
+#ifdef __cplusplus
+}
+#endif
+#endif /* __XML_VALID_H__ */
diff --git a/libxml2/include/libxml/xinclude.h b/libxml2/include/libxml/xinclude.h
new file mode 100644
index 000000000..863ab25ad
--- /dev/null
+++ b/libxml2/include/libxml/xinclude.h
@@ -0,0 +1,129 @@
+/*
+ * Summary: implementation of XInclude
+ * Description: API to handle XInclude processing,
+ * implements the
+ * World Wide Web Consortium Last Call Working Draft 10 November 2003
+ * http://www.w3.org/TR/2003/WD-xinclude-20031110
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XINCLUDE_H__
+#define __XML_XINCLUDE_H__
+
+#include <libxml/xmlversion.h>
+#include <libxml/tree.h>
+
+#ifdef LIBXML_XINCLUDE_ENABLED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * XINCLUDE_NS:
+ *
+ * Macro defining the Xinclude namespace: http://www.w3.org/2003/XInclude
+ */
+#define XINCLUDE_NS (const xmlChar *) "http://www.w3.org/2003/XInclude"
+/**
+ * XINCLUDE_OLD_NS:
+ *
+ * Macro defining the draft Xinclude namespace: http://www.w3.org/2001/XInclude
+ */
+#define XINCLUDE_OLD_NS (const xmlChar *) "http://www.w3.org/2001/XInclude"
+/**
+ * XINCLUDE_NODE:
+ *
+ * Macro defining "include"
+ */
+#define XINCLUDE_NODE (const xmlChar *) "include"
+/**
+ * XINCLUDE_FALLBACK:
+ *
+ * Macro defining "fallback"
+ */
+#define XINCLUDE_FALLBACK (const xmlChar *) "fallback"
+/**
+ * XINCLUDE_HREF:
+ *
+ * Macro defining "href"
+ */
+#define XINCLUDE_HREF (const xmlChar *) "href"
+/**
+ * XINCLUDE_PARSE:
+ *
+ * Macro defining "parse"
+ */
+#define XINCLUDE_PARSE (const xmlChar *) "parse"
+/**
+ * XINCLUDE_PARSE_XML:
+ *
+ * Macro defining "xml"
+ */
+#define XINCLUDE_PARSE_XML (const xmlChar *) "xml"
+/**
+ * XINCLUDE_PARSE_TEXT:
+ *
+ * Macro defining "text"
+ */
+#define XINCLUDE_PARSE_TEXT (const xmlChar *) "text"
+/**
+ * XINCLUDE_PARSE_ENCODING:
+ *
+ * Macro defining "encoding"
+ */
+#define XINCLUDE_PARSE_ENCODING (const xmlChar *) "encoding"
+/**
+ * XINCLUDE_PARSE_XPOINTER:
+ *
+ * Macro defining "xpointer"
+ */
+#define XINCLUDE_PARSE_XPOINTER (const xmlChar *) "xpointer"
+
+typedef struct _xmlXIncludeCtxt xmlXIncludeCtxt;
+typedef xmlXIncludeCtxt *xmlXIncludeCtxtPtr;
+
+/*
+ * standalone processing
+ */
+XMLPUBFUN int XMLCALL
+ xmlXIncludeProcess (xmlDocPtr doc);
+XMLPUBFUN int XMLCALL
+ xmlXIncludeProcessFlags (xmlDocPtr doc,
+ int flags);
+XMLPUBFUN int XMLCALL
+ xmlXIncludeProcessFlagsData(xmlDocPtr doc,
+ int flags,
+ void *data);
+XMLPUBFUN int XMLCALL
+ xmlXIncludeProcessTreeFlagsData(xmlNodePtr tree,
+ int flags,
+ void *data);
+XMLPUBFUN int XMLCALL
+ xmlXIncludeProcessTree (xmlNodePtr tree);
+XMLPUBFUN int XMLCALL
+ xmlXIncludeProcessTreeFlags(xmlNodePtr tree,
+ int flags);
+/*
+ * contextual processing
+ */
+XMLPUBFUN xmlXIncludeCtxtPtr XMLCALL
+ xmlXIncludeNewContext (xmlDocPtr doc);
+XMLPUBFUN int XMLCALL
+ xmlXIncludeSetFlags (xmlXIncludeCtxtPtr ctxt,
+ int flags);
+XMLPUBFUN void XMLCALL
+ xmlXIncludeFreeContext (xmlXIncludeCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL
+ xmlXIncludeProcessNode (xmlXIncludeCtxtPtr ctxt,
+ xmlNodePtr tree);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_XINCLUDE_ENABLED */
+
+#endif /* __XML_XINCLUDE_H__ */
diff --git a/libxml2/include/libxml/xlink.h b/libxml2/include/libxml/xlink.h
new file mode 100644
index 000000000..a209a9976
--- /dev/null
+++ b/libxml2/include/libxml/xlink.h
@@ -0,0 +1,189 @@
+/*
+ * Summary: unfinished XLink detection module
+ * Description: unfinished XLink detection module
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XLINK_H__
+#define __XML_XLINK_H__
+
+#include <libxml/xmlversion.h>
+#include <libxml/tree.h>
+
+#ifdef LIBXML_XPTR_ENABLED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Various defines for the various Link properties.
+ *
+ * NOTE: the link detection layer will try to resolve QName expansion
+ * of namespaces. If "foo" is the prefix for "http://foo.com/"
+ * then the link detection layer will expand role="foo:myrole"
+ * to "http://foo.com/:myrole".
+ * NOTE: the link detection layer will expand URI-Refences found on
+ * href attributes by using the base mechanism if found.
+ */
+typedef xmlChar *xlinkHRef;
+typedef xmlChar *xlinkRole;
+typedef xmlChar *xlinkTitle;
+
+typedef enum {
+ XLINK_TYPE_NONE = 0,
+ XLINK_TYPE_SIMPLE,
+ XLINK_TYPE_EXTENDED,
+ XLINK_TYPE_EXTENDED_SET
+} xlinkType;
+
+typedef enum {
+ XLINK_SHOW_NONE = 0,
+ XLINK_SHOW_NEW,
+ XLINK_SHOW_EMBED,
+ XLINK_SHOW_REPLACE
+} xlinkShow;
+
+typedef enum {
+ XLINK_ACTUATE_NONE = 0,
+ XLINK_ACTUATE_AUTO,
+ XLINK_ACTUATE_ONREQUEST
+} xlinkActuate;
+
+/**
+ * xlinkNodeDetectFunc:
+ * @ctx: user data pointer
+ * @node: the node to check
+ *
+ * This is the prototype for the link detection routine.
+ * It calls the default link detection callbacks upon link detection.
+ */
+typedef void (*xlinkNodeDetectFunc) (void *ctx, xmlNodePtr node);
+
+/*
+ * The link detection module interact with the upper layers using
+ * a set of callback registered at parsing time.
+ */
+
+/**
+ * xlinkSimpleLinkFunk:
+ * @ctx: user data pointer
+ * @node: the node carrying the link
+ * @href: the target of the link
+ * @role: the role string
+ * @title: the link title
+ *
+ * This is the prototype for a simple link detection callback.
+ */
+typedef void
+(*xlinkSimpleLinkFunk) (void *ctx,
+ xmlNodePtr node,
+ const xlinkHRef href,
+ const xlinkRole role,
+ const xlinkTitle title);
+
+/**
+ * xlinkExtendedLinkFunk:
+ * @ctx: user data pointer
+ * @node: the node carrying the link
+ * @nbLocators: the number of locators detected on the link
+ * @hrefs: pointer to the array of locator hrefs
+ * @roles: pointer to the array of locator roles
+ * @nbArcs: the number of arcs detected on the link
+ * @from: pointer to the array of source roles found on the arcs
+ * @to: pointer to the array of target roles found on the arcs
+ * @show: array of values for the show attributes found on the arcs
+ * @actuate: array of values for the actuate attributes found on the arcs
+ * @nbTitles: the number of titles detected on the link
+ * @title: array of titles detected on the link
+ * @langs: array of xml:lang values for the titles
+ *
+ * This is the prototype for a extended link detection callback.
+ */
+typedef void
+(*xlinkExtendedLinkFunk)(void *ctx,
+ xmlNodePtr node,
+ int nbLocators,
+ const xlinkHRef *hrefs,
+ const xlinkRole *roles,
+ int nbArcs,
+ const xlinkRole *from,
+ const xlinkRole *to,
+ xlinkShow *show,
+ xlinkActuate *actuate,
+ int nbTitles,
+ const xlinkTitle *titles,
+ const xmlChar **langs);
+
+/**
+ * xlinkExtendedLinkSetFunk:
+ * @ctx: user data pointer
+ * @node: the node carrying the link
+ * @nbLocators: the number of locators detected on the link
+ * @hrefs: pointer to the array of locator hrefs
+ * @roles: pointer to the array of locator roles
+ * @nbTitles: the number of titles detected on the link
+ * @title: array of titles detected on the link
+ * @langs: array of xml:lang values for the titles
+ *
+ * This is the prototype for a extended link set detection callback.
+ */
+typedef void
+(*xlinkExtendedLinkSetFunk) (void *ctx,
+ xmlNodePtr node,
+ int nbLocators,
+ const xlinkHRef *hrefs,
+ const xlinkRole *roles,
+ int nbTitles,
+ const xlinkTitle *titles,
+ const xmlChar **langs);
+
+/**
+ * This is the structure containing a set of Links detection callbacks.
+ *
+ * There is no default xlink callbacks, if one want to get link
+ * recognition activated, those call backs must be provided before parsing.
+ */
+typedef struct _xlinkHandler xlinkHandler;
+typedef xlinkHandler *xlinkHandlerPtr;
+struct _xlinkHandler {
+ xlinkSimpleLinkFunk simple;
+ xlinkExtendedLinkFunk extended;
+ xlinkExtendedLinkSetFunk set;
+};
+
+/*
+ * The default detection routine, can be overridden, they call the default
+ * detection callbacks.
+ */
+
+XMLPUBFUN xlinkNodeDetectFunc XMLCALL
+ xlinkGetDefaultDetect (void);
+XMLPUBFUN void XMLCALL
+ xlinkSetDefaultDetect (xlinkNodeDetectFunc func);
+
+/*
+ * Routines to set/get the default handlers.
+ */
+XMLPUBFUN xlinkHandlerPtr XMLCALL
+ xlinkGetDefaultHandler (void);
+XMLPUBFUN void XMLCALL
+ xlinkSetDefaultHandler (xlinkHandlerPtr handler);
+
+/*
+ * Link detection module itself.
+ */
+XMLPUBFUN xlinkType XMLCALL
+ xlinkIsLink (xmlDocPtr doc,
+ xmlNodePtr node);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_XPTR_ENABLED */
+
+#endif /* __XML_XLINK_H__ */
diff --git a/libxml2/include/libxml/xmlIO.h b/libxml2/include/libxml/xmlIO.h
new file mode 100644
index 000000000..6c241a8dd
--- /dev/null
+++ b/libxml2/include/libxml/xmlIO.h
@@ -0,0 +1,366 @@
+/*
+ * Summary: interface for the I/O interfaces used by the parser
+ * Description: interface for the I/O interfaces used by the parser
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_IO_H__
+#define __XML_IO_H__
+
+#include <stdio.h>
+#include <libxml/xmlversion.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Those are the functions and datatypes for the parser input
+ * I/O structures.
+ */
+
+/**
+ * xmlInputMatchCallback:
+ * @filename: the filename or URI
+ *
+ * Callback used in the I/O Input API to detect if the current handler
+ * can provide input fonctionnalities for this resource.
+ *
+ * Returns 1 if yes and 0 if another Input module should be used
+ */
+typedef int (XMLCALL *xmlInputMatchCallback) (char const *filename);
+/**
+ * xmlInputOpenCallback:
+ * @filename: the filename or URI
+ *
+ * Callback used in the I/O Input API to open the resource
+ *
+ * Returns an Input context or NULL in case or error
+ */
+typedef void * (XMLCALL *xmlInputOpenCallback) (char const *filename);
+/**
+ * xmlInputReadCallback:
+ * @context: an Input context
+ * @buffer: the buffer to store data read
+ * @len: the length of the buffer in bytes
+ *
+ * Callback used in the I/O Input API to read the resource
+ *
+ * Returns the number of bytes read or -1 in case of error
+ */
+typedef int (XMLCALL *xmlInputReadCallback) (void * context, char * buffer, int len);
+/**
+ * xmlInputCloseCallback:
+ * @context: an Input context
+ *
+ * Callback used in the I/O Input API to close the resource
+ *
+ * Returns 0 or -1 in case of error
+ */
+typedef int (XMLCALL *xmlInputCloseCallback) (void * context);
+
+#ifdef LIBXML_OUTPUT_ENABLED
+/*
+ * Those are the functions and datatypes for the library output
+ * I/O structures.
+ */
+
+/**
+ * xmlOutputMatchCallback:
+ * @filename: the filename or URI
+ *
+ * Callback used in the I/O Output API to detect if the current handler
+ * can provide output fonctionnalities for this resource.
+ *
+ * Returns 1 if yes and 0 if another Output module should be used
+ */
+typedef int (XMLCALL *xmlOutputMatchCallback) (char const *filename);
+/**
+ * xmlOutputOpenCallback:
+ * @filename: the filename or URI
+ *
+ * Callback used in the I/O Output API to open the resource
+ *
+ * Returns an Output context or NULL in case or error
+ */
+typedef void * (XMLCALL *xmlOutputOpenCallback) (char const *filename);
+/**
+ * xmlOutputWriteCallback:
+ * @context: an Output context
+ * @buffer: the buffer of data to write
+ * @len: the length of the buffer in bytes
+ *
+ * Callback used in the I/O Output API to write to the resource
+ *
+ * Returns the number of bytes written or -1 in case of error
+ */
+typedef int (XMLCALL *xmlOutputWriteCallback) (void * context, const char * buffer,
+ int len);
+/**
+ * xmlOutputCloseCallback:
+ * @context: an Output context
+ *
+ * Callback used in the I/O Output API to close the resource
+ *
+ * Returns 0 or -1 in case of error
+ */
+typedef int (XMLCALL *xmlOutputCloseCallback) (void * context);
+#endif /* LIBXML_OUTPUT_ENABLED */
+
+#ifdef __cplusplus
+}
+#endif
+
+#include <libxml/globals.h>
+#include <libxml/tree.h>
+#include <libxml/parser.h>
+#include <libxml/encoding.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+struct _xmlParserInputBuffer {
+ void* context;
+ xmlInputReadCallback readcallback;
+ xmlInputCloseCallback closecallback;
+
+ xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
+
+ xmlBufPtr buffer; /* Local buffer encoded in UTF-8 */
+ xmlBufPtr raw; /* if encoder != NULL buffer for raw input */
+ int compressed; /* -1=unknown, 0=not compressed, 1=compressed */
+ int error;
+ unsigned long rawconsumed;/* amount consumed from raw */
+};
+
+
+#ifdef LIBXML_OUTPUT_ENABLED
+struct _xmlOutputBuffer {
+ void* context;
+ xmlOutputWriteCallback writecallback;
+ xmlOutputCloseCallback closecallback;
+
+ xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
+
+ xmlBufPtr buffer; /* Local buffer encoded in UTF-8 or ISOLatin */
+ xmlBufPtr conv; /* if encoder != NULL buffer for output */
+ int written; /* total number of byte written */
+ int error;
+};
+#endif /* LIBXML_OUTPUT_ENABLED */
+
+/*
+ * Interfaces for input
+ */
+XMLPUBFUN void XMLCALL
+ xmlCleanupInputCallbacks (void);
+
+XMLPUBFUN int XMLCALL
+ xmlPopInputCallbacks (void);
+
+XMLPUBFUN void XMLCALL
+ xmlRegisterDefaultInputCallbacks (void);
+XMLPUBFUN xmlParserInputBufferPtr XMLCALL
+ xmlAllocParserInputBuffer (xmlCharEncoding enc);
+
+XMLPUBFUN xmlParserInputBufferPtr XMLCALL
+ xmlParserInputBufferCreateFilename (const char *URI,
+ xmlCharEncoding enc);
+XMLPUBFUN xmlParserInputBufferPtr XMLCALL
+ xmlParserInputBufferCreateFile (FILE *file,
+ xmlCharEncoding enc);
+XMLPUBFUN xmlParserInputBufferPtr XMLCALL
+ xmlParserInputBufferCreateFd (int fd,
+ xmlCharEncoding enc);
+XMLPUBFUN xmlParserInputBufferPtr XMLCALL
+ xmlParserInputBufferCreateMem (const char *mem, int size,
+ xmlCharEncoding enc);
+XMLPUBFUN xmlParserInputBufferPtr XMLCALL
+ xmlParserInputBufferCreateStatic (const char *mem, int size,
+ xmlCharEncoding enc);
+XMLPUBFUN xmlParserInputBufferPtr XMLCALL
+ xmlParserInputBufferCreateIO (xmlInputReadCallback ioread,
+ xmlInputCloseCallback ioclose,
+ void *ioctx,
+ xmlCharEncoding enc);
+XMLPUBFUN int XMLCALL
+ xmlParserInputBufferRead (xmlParserInputBufferPtr in,
+ int len);
+XMLPUBFUN int XMLCALL
+ xmlParserInputBufferGrow (xmlParserInputBufferPtr in,
+ int len);
+XMLPUBFUN int XMLCALL
+ xmlParserInputBufferPush (xmlParserInputBufferPtr in,
+ int len,
+ const char *buf);
+XMLPUBFUN void XMLCALL
+ xmlFreeParserInputBuffer (xmlParserInputBufferPtr in);
+XMLPUBFUN char * XMLCALL
+ xmlParserGetDirectory (const char *filename);
+
+XMLPUBFUN int XMLCALL
+ xmlRegisterInputCallbacks (xmlInputMatchCallback matchFunc,
+ xmlInputOpenCallback openFunc,
+ xmlInputReadCallback readFunc,
+ xmlInputCloseCallback closeFunc);
+
+xmlParserInputBufferPtr
+ __xmlParserInputBufferCreateFilename(const char *URI,
+ xmlCharEncoding enc);
+
+#ifdef LIBXML_OUTPUT_ENABLED
+/*
+ * Interfaces for output
+ */
+XMLPUBFUN void XMLCALL
+ xmlCleanupOutputCallbacks (void);
+XMLPUBFUN void XMLCALL
+ xmlRegisterDefaultOutputCallbacks(void);
+XMLPUBFUN xmlOutputBufferPtr XMLCALL
+ xmlAllocOutputBuffer (xmlCharEncodingHandlerPtr encoder);
+
+XMLPUBFUN xmlOutputBufferPtr XMLCALL
+ xmlOutputBufferCreateFilename (const char *URI,
+ xmlCharEncodingHandlerPtr encoder,
+ int compression);
+
+XMLPUBFUN xmlOutputBufferPtr XMLCALL
+ xmlOutputBufferCreateFile (FILE *file,
+ xmlCharEncodingHandlerPtr encoder);
+
+XMLPUBFUN xmlOutputBufferPtr XMLCALL
+ xmlOutputBufferCreateBuffer (xmlBufferPtr buffer,
+ xmlCharEncodingHandlerPtr encoder);
+
+XMLPUBFUN xmlOutputBufferPtr XMLCALL
+ xmlOutputBufferCreateFd (int fd,
+ xmlCharEncodingHandlerPtr encoder);
+
+XMLPUBFUN xmlOutputBufferPtr XMLCALL
+ xmlOutputBufferCreateIO (xmlOutputWriteCallback iowrite,
+ xmlOutputCloseCallback ioclose,
+ void *ioctx,
+ xmlCharEncodingHandlerPtr encoder);
+
+/* Couple of APIs to get the output without digging into the buffers */
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlOutputBufferGetContent (xmlOutputBufferPtr out);
+XMLPUBFUN size_t XMLCALL
+ xmlOutputBufferGetSize (xmlOutputBufferPtr out);
+
+XMLPUBFUN int XMLCALL
+ xmlOutputBufferWrite (xmlOutputBufferPtr out,
+ int len,
+ const char *buf);
+XMLPUBFUN int XMLCALL
+ xmlOutputBufferWriteString (xmlOutputBufferPtr out,
+ const char *str);
+XMLPUBFUN int XMLCALL
+ xmlOutputBufferWriteEscape (xmlOutputBufferPtr out,
+ const xmlChar *str,
+ xmlCharEncodingOutputFunc escaping);
+
+XMLPUBFUN int XMLCALL
+ xmlOutputBufferFlush (xmlOutputBufferPtr out);
+XMLPUBFUN int XMLCALL
+ xmlOutputBufferClose (xmlOutputBufferPtr out);
+
+XMLPUBFUN int XMLCALL
+ xmlRegisterOutputCallbacks (xmlOutputMatchCallback matchFunc,
+ xmlOutputOpenCallback openFunc,
+ xmlOutputWriteCallback writeFunc,
+ xmlOutputCloseCallback closeFunc);
+
+xmlOutputBufferPtr
+ __xmlOutputBufferCreateFilename(const char *URI,
+ xmlCharEncodingHandlerPtr encoder,
+ int compression);
+
+#ifdef LIBXML_HTTP_ENABLED
+/* This function only exists if HTTP support built into the library */
+XMLPUBFUN void XMLCALL
+ xmlRegisterHTTPPostCallbacks (void );
+#endif /* LIBXML_HTTP_ENABLED */
+
+#endif /* LIBXML_OUTPUT_ENABLED */
+
+XMLPUBFUN xmlParserInputPtr XMLCALL
+ xmlCheckHTTPInput (xmlParserCtxtPtr ctxt,
+ xmlParserInputPtr ret);
+
+/*
+ * A predefined entity loader disabling network accesses
+ */
+XMLPUBFUN xmlParserInputPtr XMLCALL
+ xmlNoNetExternalEntityLoader (const char *URL,
+ const char *ID,
+ xmlParserCtxtPtr ctxt);
+
+/*
+ * xmlNormalizeWindowsPath is obsolete, don't use it.
+ * Check xmlCanonicPath in uri.h for a better alternative.
+ */
+XMLPUBFUN xmlChar * XMLCALL
+ xmlNormalizeWindowsPath (const xmlChar *path);
+
+XMLPUBFUN int XMLCALL
+ xmlCheckFilename (const char *path);
+/**
+ * Default 'file://' protocol callbacks
+ */
+XMLPUBFUN int XMLCALL
+ xmlFileMatch (const char *filename);
+XMLPUBFUN void * XMLCALL
+ xmlFileOpen (const char *filename);
+XMLPUBFUN int XMLCALL
+ xmlFileRead (void * context,
+ char * buffer,
+ int len);
+XMLPUBFUN int XMLCALL
+ xmlFileClose (void * context);
+
+/**
+ * Default 'http://' protocol callbacks
+ */
+#ifdef LIBXML_HTTP_ENABLED
+XMLPUBFUN int XMLCALL
+ xmlIOHTTPMatch (const char *filename);
+XMLPUBFUN void * XMLCALL
+ xmlIOHTTPOpen (const char *filename);
+#ifdef LIBXML_OUTPUT_ENABLED
+XMLPUBFUN void * XMLCALL
+ xmlIOHTTPOpenW (const char * post_uri,
+ int compression );
+#endif /* LIBXML_OUTPUT_ENABLED */
+XMLPUBFUN int XMLCALL
+ xmlIOHTTPRead (void * context,
+ char * buffer,
+ int len);
+XMLPUBFUN int XMLCALL
+ xmlIOHTTPClose (void * context);
+#endif /* LIBXML_HTTP_ENABLED */
+
+/**
+ * Default 'ftp://' protocol callbacks
+ */
+#ifdef LIBXML_FTP_ENABLED
+XMLPUBFUN int XMLCALL
+ xmlIOFTPMatch (const char *filename);
+XMLPUBFUN void * XMLCALL
+ xmlIOFTPOpen (const char *filename);
+XMLPUBFUN int XMLCALL
+ xmlIOFTPRead (void * context,
+ char * buffer,
+ int len);
+XMLPUBFUN int XMLCALL
+ xmlIOFTPClose (void * context);
+#endif /* LIBXML_FTP_ENABLED */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_IO_H__ */
diff --git a/libxml2/include/libxml/xmlautomata.h b/libxml2/include/libxml/xmlautomata.h
new file mode 100644
index 000000000..bf1b131c6
--- /dev/null
+++ b/libxml2/include/libxml/xmlautomata.h
@@ -0,0 +1,146 @@
+/*
+ * Summary: API to build regexp automata
+ * Description: the API to build regexp automata
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_AUTOMATA_H__
+#define __XML_AUTOMATA_H__
+
+#include <libxml/xmlversion.h>
+#include <libxml/tree.h>
+
+#ifdef LIBXML_REGEXP_ENABLED
+#ifdef LIBXML_AUTOMATA_ENABLED
+#include <libxml/xmlregexp.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * xmlAutomataPtr:
+ *
+ * A libxml automata description, It can be compiled into a regexp
+ */
+typedef struct _xmlAutomata xmlAutomata;
+typedef xmlAutomata *xmlAutomataPtr;
+
+/**
+ * xmlAutomataStatePtr:
+ *
+ * A state int the automata description,
+ */
+typedef struct _xmlAutomataState xmlAutomataState;
+typedef xmlAutomataState *xmlAutomataStatePtr;
+
+/*
+ * Building API
+ */
+XMLPUBFUN xmlAutomataPtr XMLCALL
+ xmlNewAutomata (void);
+XMLPUBFUN void XMLCALL
+ xmlFreeAutomata (xmlAutomataPtr am);
+
+XMLPUBFUN xmlAutomataStatePtr XMLCALL
+ xmlAutomataGetInitState (xmlAutomataPtr am);
+XMLPUBFUN int XMLCALL
+ xmlAutomataSetFinalState (xmlAutomataPtr am,
+ xmlAutomataStatePtr state);
+XMLPUBFUN xmlAutomataStatePtr XMLCALL
+ xmlAutomataNewState (xmlAutomataPtr am);
+XMLPUBFUN xmlAutomataStatePtr XMLCALL
+ xmlAutomataNewTransition (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ const xmlChar *token,
+ void *data);
+XMLPUBFUN xmlAutomataStatePtr XMLCALL
+ xmlAutomataNewTransition2 (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ const xmlChar *token,
+ const xmlChar *token2,
+ void *data);
+XMLPUBFUN xmlAutomataStatePtr XMLCALL
+ xmlAutomataNewNegTrans (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ const xmlChar *token,
+ const xmlChar *token2,
+ void *data);
+
+XMLPUBFUN xmlAutomataStatePtr XMLCALL
+ xmlAutomataNewCountTrans (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ const xmlChar *token,
+ int min,
+ int max,
+ void *data);
+XMLPUBFUN xmlAutomataStatePtr XMLCALL
+ xmlAutomataNewCountTrans2 (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ const xmlChar *token,
+ const xmlChar *token2,
+ int min,
+ int max,
+ void *data);
+XMLPUBFUN xmlAutomataStatePtr XMLCALL
+ xmlAutomataNewOnceTrans (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ const xmlChar *token,
+ int min,
+ int max,
+ void *data);
+XMLPUBFUN xmlAutomataStatePtr XMLCALL
+ xmlAutomataNewOnceTrans2 (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ const xmlChar *token,
+ const xmlChar *token2,
+ int min,
+ int max,
+ void *data);
+XMLPUBFUN xmlAutomataStatePtr XMLCALL
+ xmlAutomataNewAllTrans (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ int lax);
+XMLPUBFUN xmlAutomataStatePtr XMLCALL
+ xmlAutomataNewEpsilon (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to);
+XMLPUBFUN xmlAutomataStatePtr XMLCALL
+ xmlAutomataNewCountedTrans (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ int counter);
+XMLPUBFUN xmlAutomataStatePtr XMLCALL
+ xmlAutomataNewCounterTrans (xmlAutomataPtr am,
+ xmlAutomataStatePtr from,
+ xmlAutomataStatePtr to,
+ int counter);
+XMLPUBFUN int XMLCALL
+ xmlAutomataNewCounter (xmlAutomataPtr am,
+ int min,
+ int max);
+
+XMLPUBFUN xmlRegexpPtr XMLCALL
+ xmlAutomataCompile (xmlAutomataPtr am);
+XMLPUBFUN int XMLCALL
+ xmlAutomataIsDeterminist (xmlAutomataPtr am);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_AUTOMATA_ENABLED */
+#endif /* LIBXML_REGEXP_ENABLED */
+
+#endif /* __XML_AUTOMATA_H__ */
diff --git a/libxml2/include/libxml/xmlerror.h b/libxml2/include/libxml/xmlerror.h
new file mode 100644
index 000000000..537a396c6
--- /dev/null
+++ b/libxml2/include/libxml/xmlerror.h
@@ -0,0 +1,945 @@
+/*
+ * Summary: error handling
+ * Description: the API used to report errors
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#include <libxml/parser.h>
+
+#ifndef __XML_ERROR_H__
+#define __XML_ERROR_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * xmlErrorLevel:
+ *
+ * Indicates the level of an error
+ */
+typedef enum {
+ XML_ERR_NONE = 0,
+ XML_ERR_WARNING = 1, /* A simple warning */
+ XML_ERR_ERROR = 2, /* A recoverable error */
+ XML_ERR_FATAL = 3 /* A fatal error */
+} xmlErrorLevel;
+
+/**
+ * xmlErrorDomain:
+ *
+ * Indicates where an error may have come from
+ */
+typedef enum {
+ XML_FROM_NONE = 0,
+ XML_FROM_PARSER, /* The XML parser */
+ XML_FROM_TREE, /* The tree module */
+ XML_FROM_NAMESPACE, /* The XML Namespace module */
+ XML_FROM_DTD, /* The XML DTD validation with parser context*/
+ XML_FROM_HTML, /* The HTML parser */
+ XML_FROM_MEMORY, /* The memory allocator */
+ XML_FROM_OUTPUT, /* The serialization code */
+ XML_FROM_IO, /* The Input/Output stack */
+ XML_FROM_FTP, /* The FTP module */
+ XML_FROM_HTTP, /* The HTTP module */
+ XML_FROM_XINCLUDE, /* The XInclude processing */
+ XML_FROM_XPATH, /* The XPath module */
+ XML_FROM_XPOINTER, /* The XPointer module */
+ XML_FROM_REGEXP, /* The regular expressions module */
+ XML_FROM_DATATYPE, /* The W3C XML Schemas Datatype module */
+ XML_FROM_SCHEMASP, /* The W3C XML Schemas parser module */
+ XML_FROM_SCHEMASV, /* The W3C XML Schemas validation module */
+ XML_FROM_RELAXNGP, /* The Relax-NG parser module */
+ XML_FROM_RELAXNGV, /* The Relax-NG validator module */
+ XML_FROM_CATALOG, /* The Catalog module */
+ XML_FROM_C14N, /* The Canonicalization module */
+ XML_FROM_XSLT, /* The XSLT engine from libxslt */
+ XML_FROM_VALID, /* The XML DTD validation with valid context */
+ XML_FROM_CHECK, /* The error checking module */
+ XML_FROM_WRITER, /* The xmlwriter module */
+ XML_FROM_MODULE, /* The dynamically loaded module module*/
+ XML_FROM_I18N, /* The module handling character conversion */
+ XML_FROM_SCHEMATRONV,/* The Schematron validator module */
+ XML_FROM_BUFFER, /* The buffers module */
+ XML_FROM_URI /* The URI module */
+} xmlErrorDomain;
+
+/**
+ * xmlError:
+ *
+ * An XML Error instance.
+ */
+
+typedef struct _xmlError xmlError;
+typedef xmlError *xmlErrorPtr;
+struct _xmlError {
+ int domain; /* What part of the library raised this error */
+ int code; /* The error code, e.g. an xmlParserError */
+ char *message;/* human-readable informative error message */
+ xmlErrorLevel level;/* how consequent is the error */
+ char *file; /* the filename */
+ int line; /* the line number if available */
+ char *str1; /* extra string information */
+ char *str2; /* extra string information */
+ char *str3; /* extra string information */
+ int int1; /* extra number information */
+ int int2; /* column number of the error or 0 if N/A (todo: rename this field when we would break ABI) */
+ void *ctxt; /* the parser context if available */
+ void *node; /* the node in the tree */
+};
+
+/**
+ * xmlParserError:
+ *
+ * This is an error that the XML (or HTML) parser can generate
+ */
+typedef enum {
+ XML_ERR_OK = 0,
+ XML_ERR_INTERNAL_ERROR, /* 1 */
+ XML_ERR_NO_MEMORY, /* 2 */
+ XML_ERR_DOCUMENT_START, /* 3 */
+ XML_ERR_DOCUMENT_EMPTY, /* 4 */
+ XML_ERR_DOCUMENT_END, /* 5 */
+ XML_ERR_INVALID_HEX_CHARREF, /* 6 */
+ XML_ERR_INVALID_DEC_CHARREF, /* 7 */
+ XML_ERR_INVALID_CHARREF, /* 8 */
+ XML_ERR_INVALID_CHAR, /* 9 */
+ XML_ERR_CHARREF_AT_EOF, /* 10 */
+ XML_ERR_CHARREF_IN_PROLOG, /* 11 */
+ XML_ERR_CHARREF_IN_EPILOG, /* 12 */
+ XML_ERR_CHARREF_IN_DTD, /* 13 */
+ XML_ERR_ENTITYREF_AT_EOF, /* 14 */
+ XML_ERR_ENTITYREF_IN_PROLOG, /* 15 */
+ XML_ERR_ENTITYREF_IN_EPILOG, /* 16 */
+ XML_ERR_ENTITYREF_IN_DTD, /* 17 */
+ XML_ERR_PEREF_AT_EOF, /* 18 */
+ XML_ERR_PEREF_IN_PROLOG, /* 19 */
+ XML_ERR_PEREF_IN_EPILOG, /* 20 */
+ XML_ERR_PEREF_IN_INT_SUBSET, /* 21 */
+ XML_ERR_ENTITYREF_NO_NAME, /* 22 */
+ XML_ERR_ENTITYREF_SEMICOL_MISSING, /* 23 */
+ XML_ERR_PEREF_NO_NAME, /* 24 */
+ XML_ERR_PEREF_SEMICOL_MISSING, /* 25 */
+ XML_ERR_UNDECLARED_ENTITY, /* 26 */
+ XML_WAR_UNDECLARED_ENTITY, /* 27 */
+ XML_ERR_UNPARSED_ENTITY, /* 28 */
+ XML_ERR_ENTITY_IS_EXTERNAL, /* 29 */
+ XML_ERR_ENTITY_IS_PARAMETER, /* 30 */
+ XML_ERR_UNKNOWN_ENCODING, /* 31 */
+ XML_ERR_UNSUPPORTED_ENCODING, /* 32 */
+ XML_ERR_STRING_NOT_STARTED, /* 33 */
+ XML_ERR_STRING_NOT_CLOSED, /* 34 */
+ XML_ERR_NS_DECL_ERROR, /* 35 */
+ XML_ERR_ENTITY_NOT_STARTED, /* 36 */
+ XML_ERR_ENTITY_NOT_FINISHED, /* 37 */
+ XML_ERR_LT_IN_ATTRIBUTE, /* 38 */
+ XML_ERR_ATTRIBUTE_NOT_STARTED, /* 39 */
+ XML_ERR_ATTRIBUTE_NOT_FINISHED, /* 40 */
+ XML_ERR_ATTRIBUTE_WITHOUT_VALUE, /* 41 */
+ XML_ERR_ATTRIBUTE_REDEFINED, /* 42 */
+ XML_ERR_LITERAL_NOT_STARTED, /* 43 */
+ XML_ERR_LITERAL_NOT_FINISHED, /* 44 */
+ XML_ERR_COMMENT_NOT_FINISHED, /* 45 */
+ XML_ERR_PI_NOT_STARTED, /* 46 */
+ XML_ERR_PI_NOT_FINISHED, /* 47 */
+ XML_ERR_NOTATION_NOT_STARTED, /* 48 */
+ XML_ERR_NOTATION_NOT_FINISHED, /* 49 */
+ XML_ERR_ATTLIST_NOT_STARTED, /* 50 */
+ XML_ERR_ATTLIST_NOT_FINISHED, /* 51 */
+ XML_ERR_MIXED_NOT_STARTED, /* 52 */
+ XML_ERR_MIXED_NOT_FINISHED, /* 53 */
+ XML_ERR_ELEMCONTENT_NOT_STARTED, /* 54 */
+ XML_ERR_ELEMCONTENT_NOT_FINISHED, /* 55 */
+ XML_ERR_XMLDECL_NOT_STARTED, /* 56 */
+ XML_ERR_XMLDECL_NOT_FINISHED, /* 57 */
+ XML_ERR_CONDSEC_NOT_STARTED, /* 58 */
+ XML_ERR_CONDSEC_NOT_FINISHED, /* 59 */
+ XML_ERR_EXT_SUBSET_NOT_FINISHED, /* 60 */
+ XML_ERR_DOCTYPE_NOT_FINISHED, /* 61 */
+ XML_ERR_MISPLACED_CDATA_END, /* 62 */
+ XML_ERR_CDATA_NOT_FINISHED, /* 63 */
+ XML_ERR_RESERVED_XML_NAME, /* 64 */
+ XML_ERR_SPACE_REQUIRED, /* 65 */
+ XML_ERR_SEPARATOR_REQUIRED, /* 66 */
+ XML_ERR_NMTOKEN_REQUIRED, /* 67 */
+ XML_ERR_NAME_REQUIRED, /* 68 */
+ XML_ERR_PCDATA_REQUIRED, /* 69 */
+ XML_ERR_URI_REQUIRED, /* 70 */
+ XML_ERR_PUBID_REQUIRED, /* 71 */
+ XML_ERR_LT_REQUIRED, /* 72 */
+ XML_ERR_GT_REQUIRED, /* 73 */
+ XML_ERR_LTSLASH_REQUIRED, /* 74 */
+ XML_ERR_EQUAL_REQUIRED, /* 75 */
+ XML_ERR_TAG_NAME_MISMATCH, /* 76 */
+ XML_ERR_TAG_NOT_FINISHED, /* 77 */
+ XML_ERR_STANDALONE_VALUE, /* 78 */
+ XML_ERR_ENCODING_NAME, /* 79 */
+ XML_ERR_HYPHEN_IN_COMMENT, /* 80 */
+ XML_ERR_INVALID_ENCODING, /* 81 */
+ XML_ERR_EXT_ENTITY_STANDALONE, /* 82 */
+ XML_ERR_CONDSEC_INVALID, /* 83 */
+ XML_ERR_VALUE_REQUIRED, /* 84 */
+ XML_ERR_NOT_WELL_BALANCED, /* 85 */
+ XML_ERR_EXTRA_CONTENT, /* 86 */
+ XML_ERR_ENTITY_CHAR_ERROR, /* 87 */
+ XML_ERR_ENTITY_PE_INTERNAL, /* 88 */
+ XML_ERR_ENTITY_LOOP, /* 89 */
+ XML_ERR_ENTITY_BOUNDARY, /* 90 */
+ XML_ERR_INVALID_URI, /* 91 */
+ XML_ERR_URI_FRAGMENT, /* 92 */
+ XML_WAR_CATALOG_PI, /* 93 */
+ XML_ERR_NO_DTD, /* 94 */
+ XML_ERR_CONDSEC_INVALID_KEYWORD, /* 95 */
+ XML_ERR_VERSION_MISSING, /* 96 */
+ XML_WAR_UNKNOWN_VERSION, /* 97 */
+ XML_WAR_LANG_VALUE, /* 98 */
+ XML_WAR_NS_URI, /* 99 */
+ XML_WAR_NS_URI_RELATIVE, /* 100 */
+ XML_ERR_MISSING_ENCODING, /* 101 */
+ XML_WAR_SPACE_VALUE, /* 102 */
+ XML_ERR_NOT_STANDALONE, /* 103 */
+ XML_ERR_ENTITY_PROCESSING, /* 104 */
+ XML_ERR_NOTATION_PROCESSING, /* 105 */
+ XML_WAR_NS_COLUMN, /* 106 */
+ XML_WAR_ENTITY_REDEFINED, /* 107 */
+ XML_ERR_UNKNOWN_VERSION, /* 108 */
+ XML_ERR_VERSION_MISMATCH, /* 109 */
+ XML_ERR_NAME_TOO_LONG, /* 110 */
+ XML_ERR_USER_STOP, /* 111 */
+ XML_NS_ERR_XML_NAMESPACE = 200,
+ XML_NS_ERR_UNDEFINED_NAMESPACE, /* 201 */
+ XML_NS_ERR_QNAME, /* 202 */
+ XML_NS_ERR_ATTRIBUTE_REDEFINED, /* 203 */
+ XML_NS_ERR_EMPTY, /* 204 */
+ XML_NS_ERR_COLON, /* 205 */
+ XML_DTD_ATTRIBUTE_DEFAULT = 500,
+ XML_DTD_ATTRIBUTE_REDEFINED, /* 501 */
+ XML_DTD_ATTRIBUTE_VALUE, /* 502 */
+ XML_DTD_CONTENT_ERROR, /* 503 */
+ XML_DTD_CONTENT_MODEL, /* 504 */
+ XML_DTD_CONTENT_NOT_DETERMINIST, /* 505 */
+ XML_DTD_DIFFERENT_PREFIX, /* 506 */
+ XML_DTD_ELEM_DEFAULT_NAMESPACE, /* 507 */
+ XML_DTD_ELEM_NAMESPACE, /* 508 */
+ XML_DTD_ELEM_REDEFINED, /* 509 */
+ XML_DTD_EMPTY_NOTATION, /* 510 */
+ XML_DTD_ENTITY_TYPE, /* 511 */
+ XML_DTD_ID_FIXED, /* 512 */
+ XML_DTD_ID_REDEFINED, /* 513 */
+ XML_DTD_ID_SUBSET, /* 514 */
+ XML_DTD_INVALID_CHILD, /* 515 */
+ XML_DTD_INVALID_DEFAULT, /* 516 */
+ XML_DTD_LOAD_ERROR, /* 517 */
+ XML_DTD_MISSING_ATTRIBUTE, /* 518 */
+ XML_DTD_MIXED_CORRUPT, /* 519 */
+ XML_DTD_MULTIPLE_ID, /* 520 */
+ XML_DTD_NO_DOC, /* 521 */
+ XML_DTD_NO_DTD, /* 522 */
+ XML_DTD_NO_ELEM_NAME, /* 523 */
+ XML_DTD_NO_PREFIX, /* 524 */
+ XML_DTD_NO_ROOT, /* 525 */
+ XML_DTD_NOTATION_REDEFINED, /* 526 */
+ XML_DTD_NOTATION_VALUE, /* 527 */
+ XML_DTD_NOT_EMPTY, /* 528 */
+ XML_DTD_NOT_PCDATA, /* 529 */
+ XML_DTD_NOT_STANDALONE, /* 530 */
+ XML_DTD_ROOT_NAME, /* 531 */
+ XML_DTD_STANDALONE_WHITE_SPACE, /* 532 */
+ XML_DTD_UNKNOWN_ATTRIBUTE, /* 533 */
+ XML_DTD_UNKNOWN_ELEM, /* 534 */
+ XML_DTD_UNKNOWN_ENTITY, /* 535 */
+ XML_DTD_UNKNOWN_ID, /* 536 */
+ XML_DTD_UNKNOWN_NOTATION, /* 537 */
+ XML_DTD_STANDALONE_DEFAULTED, /* 538 */
+ XML_DTD_XMLID_VALUE, /* 539 */
+ XML_DTD_XMLID_TYPE, /* 540 */
+ XML_DTD_DUP_TOKEN, /* 541 */
+ XML_HTML_STRUCURE_ERROR = 800,
+ XML_HTML_UNKNOWN_TAG, /* 801 */
+ XML_RNGP_ANYNAME_ATTR_ANCESTOR = 1000,
+ XML_RNGP_ATTR_CONFLICT, /* 1001 */
+ XML_RNGP_ATTRIBUTE_CHILDREN, /* 1002 */
+ XML_RNGP_ATTRIBUTE_CONTENT, /* 1003 */
+ XML_RNGP_ATTRIBUTE_EMPTY, /* 1004 */
+ XML_RNGP_ATTRIBUTE_NOOP, /* 1005 */
+ XML_RNGP_CHOICE_CONTENT, /* 1006 */
+ XML_RNGP_CHOICE_EMPTY, /* 1007 */
+ XML_RNGP_CREATE_FAILURE, /* 1008 */
+ XML_RNGP_DATA_CONTENT, /* 1009 */
+ XML_RNGP_DEF_CHOICE_AND_INTERLEAVE, /* 1010 */
+ XML_RNGP_DEFINE_CREATE_FAILED, /* 1011 */
+ XML_RNGP_DEFINE_EMPTY, /* 1012 */
+ XML_RNGP_DEFINE_MISSING, /* 1013 */
+ XML_RNGP_DEFINE_NAME_MISSING, /* 1014 */
+ XML_RNGP_ELEM_CONTENT_EMPTY, /* 1015 */
+ XML_RNGP_ELEM_CONTENT_ERROR, /* 1016 */
+ XML_RNGP_ELEMENT_EMPTY, /* 1017 */
+ XML_RNGP_ELEMENT_CONTENT, /* 1018 */
+ XML_RNGP_ELEMENT_NAME, /* 1019 */
+ XML_RNGP_ELEMENT_NO_CONTENT, /* 1020 */
+ XML_RNGP_ELEM_TEXT_CONFLICT, /* 1021 */
+ XML_RNGP_EMPTY, /* 1022 */
+ XML_RNGP_EMPTY_CONSTRUCT, /* 1023 */
+ XML_RNGP_EMPTY_CONTENT, /* 1024 */
+ XML_RNGP_EMPTY_NOT_EMPTY, /* 1025 */
+ XML_RNGP_ERROR_TYPE_LIB, /* 1026 */
+ XML_RNGP_EXCEPT_EMPTY, /* 1027 */
+ XML_RNGP_EXCEPT_MISSING, /* 1028 */
+ XML_RNGP_EXCEPT_MULTIPLE, /* 1029 */
+ XML_RNGP_EXCEPT_NO_CONTENT, /* 1030 */
+ XML_RNGP_EXTERNALREF_EMTPY, /* 1031 */
+ XML_RNGP_EXTERNAL_REF_FAILURE, /* 1032 */
+ XML_RNGP_EXTERNALREF_RECURSE, /* 1033 */
+ XML_RNGP_FORBIDDEN_ATTRIBUTE, /* 1034 */
+ XML_RNGP_FOREIGN_ELEMENT, /* 1035 */
+ XML_RNGP_GRAMMAR_CONTENT, /* 1036 */
+ XML_RNGP_GRAMMAR_EMPTY, /* 1037 */
+ XML_RNGP_GRAMMAR_MISSING, /* 1038 */
+ XML_RNGP_GRAMMAR_NO_START, /* 1039 */
+ XML_RNGP_GROUP_ATTR_CONFLICT, /* 1040 */
+ XML_RNGP_HREF_ERROR, /* 1041 */
+ XML_RNGP_INCLUDE_EMPTY, /* 1042 */
+ XML_RNGP_INCLUDE_FAILURE, /* 1043 */
+ XML_RNGP_INCLUDE_RECURSE, /* 1044 */
+ XML_RNGP_INTERLEAVE_ADD, /* 1045 */
+ XML_RNGP_INTERLEAVE_CREATE_FAILED, /* 1046 */
+ XML_RNGP_INTERLEAVE_EMPTY, /* 1047 */
+ XML_RNGP_INTERLEAVE_NO_CONTENT, /* 1048 */
+ XML_RNGP_INVALID_DEFINE_NAME, /* 1049 */
+ XML_RNGP_INVALID_URI, /* 1050 */
+ XML_RNGP_INVALID_VALUE, /* 1051 */
+ XML_RNGP_MISSING_HREF, /* 1052 */
+ XML_RNGP_NAME_MISSING, /* 1053 */
+ XML_RNGP_NEED_COMBINE, /* 1054 */
+ XML_RNGP_NOTALLOWED_NOT_EMPTY, /* 1055 */
+ XML_RNGP_NSNAME_ATTR_ANCESTOR, /* 1056 */
+ XML_RNGP_NSNAME_NO_NS, /* 1057 */
+ XML_RNGP_PARAM_FORBIDDEN, /* 1058 */
+ XML_RNGP_PARAM_NAME_MISSING, /* 1059 */
+ XML_RNGP_PARENTREF_CREATE_FAILED, /* 1060 */
+ XML_RNGP_PARENTREF_NAME_INVALID, /* 1061 */
+ XML_RNGP_PARENTREF_NO_NAME, /* 1062 */
+ XML_RNGP_PARENTREF_NO_PARENT, /* 1063 */
+ XML_RNGP_PARENTREF_NOT_EMPTY, /* 1064 */
+ XML_RNGP_PARSE_ERROR, /* 1065 */
+ XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME, /* 1066 */
+ XML_RNGP_PAT_ATTR_ATTR, /* 1067 */
+ XML_RNGP_PAT_ATTR_ELEM, /* 1068 */
+ XML_RNGP_PAT_DATA_EXCEPT_ATTR, /* 1069 */
+ XML_RNGP_PAT_DATA_EXCEPT_ELEM, /* 1070 */
+ XML_RNGP_PAT_DATA_EXCEPT_EMPTY, /* 1071 */
+ XML_RNGP_PAT_DATA_EXCEPT_GROUP, /* 1072 */
+ XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE, /* 1073 */
+ XML_RNGP_PAT_DATA_EXCEPT_LIST, /* 1074 */
+ XML_RNGP_PAT_DATA_EXCEPT_ONEMORE, /* 1075 */
+ XML_RNGP_PAT_DATA_EXCEPT_REF, /* 1076 */
+ XML_RNGP_PAT_DATA_EXCEPT_TEXT, /* 1077 */
+ XML_RNGP_PAT_LIST_ATTR, /* 1078 */
+ XML_RNGP_PAT_LIST_ELEM, /* 1079 */
+ XML_RNGP_PAT_LIST_INTERLEAVE, /* 1080 */
+ XML_RNGP_PAT_LIST_LIST, /* 1081 */
+ XML_RNGP_PAT_LIST_REF, /* 1082 */
+ XML_RNGP_PAT_LIST_TEXT, /* 1083 */
+ XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME, /* 1084 */
+ XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME, /* 1085 */
+ XML_RNGP_PAT_ONEMORE_GROUP_ATTR, /* 1086 */
+ XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR, /* 1087 */
+ XML_RNGP_PAT_START_ATTR, /* 1088 */
+ XML_RNGP_PAT_START_DATA, /* 1089 */
+ XML_RNGP_PAT_START_EMPTY, /* 1090 */
+ XML_RNGP_PAT_START_GROUP, /* 1091 */
+ XML_RNGP_PAT_START_INTERLEAVE, /* 1092 */
+ XML_RNGP_PAT_START_LIST, /* 1093 */
+ XML_RNGP_PAT_START_ONEMORE, /* 1094 */
+ XML_RNGP_PAT_START_TEXT, /* 1095 */
+ XML_RNGP_PAT_START_VALUE, /* 1096 */
+ XML_RNGP_PREFIX_UNDEFINED, /* 1097 */
+ XML_RNGP_REF_CREATE_FAILED, /* 1098 */
+ XML_RNGP_REF_CYCLE, /* 1099 */
+ XML_RNGP_REF_NAME_INVALID, /* 1100 */
+ XML_RNGP_REF_NO_DEF, /* 1101 */
+ XML_RNGP_REF_NO_NAME, /* 1102 */
+ XML_RNGP_REF_NOT_EMPTY, /* 1103 */
+ XML_RNGP_START_CHOICE_AND_INTERLEAVE, /* 1104 */
+ XML_RNGP_START_CONTENT, /* 1105 */
+ XML_RNGP_START_EMPTY, /* 1106 */
+ XML_RNGP_START_MISSING, /* 1107 */
+ XML_RNGP_TEXT_EXPECTED, /* 1108 */
+ XML_RNGP_TEXT_HAS_CHILD, /* 1109 */
+ XML_RNGP_TYPE_MISSING, /* 1110 */
+ XML_RNGP_TYPE_NOT_FOUND, /* 1111 */
+ XML_RNGP_TYPE_VALUE, /* 1112 */
+ XML_RNGP_UNKNOWN_ATTRIBUTE, /* 1113 */
+ XML_RNGP_UNKNOWN_COMBINE, /* 1114 */
+ XML_RNGP_UNKNOWN_CONSTRUCT, /* 1115 */
+ XML_RNGP_UNKNOWN_TYPE_LIB, /* 1116 */
+ XML_RNGP_URI_FRAGMENT, /* 1117 */
+ XML_RNGP_URI_NOT_ABSOLUTE, /* 1118 */
+ XML_RNGP_VALUE_EMPTY, /* 1119 */
+ XML_RNGP_VALUE_NO_CONTENT, /* 1120 */
+ XML_RNGP_XMLNS_NAME, /* 1121 */
+ XML_RNGP_XML_NS, /* 1122 */
+ XML_XPATH_EXPRESSION_OK = 1200,
+ XML_XPATH_NUMBER_ERROR, /* 1201 */
+ XML_XPATH_UNFINISHED_LITERAL_ERROR, /* 1202 */
+ XML_XPATH_START_LITERAL_ERROR, /* 1203 */
+ XML_XPATH_VARIABLE_REF_ERROR, /* 1204 */
+ XML_XPATH_UNDEF_VARIABLE_ERROR, /* 1205 */
+ XML_XPATH_INVALID_PREDICATE_ERROR, /* 1206 */
+ XML_XPATH_EXPR_ERROR, /* 1207 */
+ XML_XPATH_UNCLOSED_ERROR, /* 1208 */
+ XML_XPATH_UNKNOWN_FUNC_ERROR, /* 1209 */
+ XML_XPATH_INVALID_OPERAND, /* 1210 */
+ XML_XPATH_INVALID_TYPE, /* 1211 */
+ XML_XPATH_INVALID_ARITY, /* 1212 */
+ XML_XPATH_INVALID_CTXT_SIZE, /* 1213 */
+ XML_XPATH_INVALID_CTXT_POSITION, /* 1214 */
+ XML_XPATH_MEMORY_ERROR, /* 1215 */
+ XML_XPTR_SYNTAX_ERROR, /* 1216 */
+ XML_XPTR_RESOURCE_ERROR, /* 1217 */
+ XML_XPTR_SUB_RESOURCE_ERROR, /* 1218 */
+ XML_XPATH_UNDEF_PREFIX_ERROR, /* 1219 */
+ XML_XPATH_ENCODING_ERROR, /* 1220 */
+ XML_XPATH_INVALID_CHAR_ERROR, /* 1221 */
+ XML_TREE_INVALID_HEX = 1300,
+ XML_TREE_INVALID_DEC, /* 1301 */
+ XML_TREE_UNTERMINATED_ENTITY, /* 1302 */
+ XML_TREE_NOT_UTF8, /* 1303 */
+ XML_SAVE_NOT_UTF8 = 1400,
+ XML_SAVE_CHAR_INVALID, /* 1401 */
+ XML_SAVE_NO_DOCTYPE, /* 1402 */
+ XML_SAVE_UNKNOWN_ENCODING, /* 1403 */
+ XML_REGEXP_COMPILE_ERROR = 1450,
+ XML_IO_UNKNOWN = 1500,
+ XML_IO_EACCES, /* 1501 */
+ XML_IO_EAGAIN, /* 1502 */
+ XML_IO_EBADF, /* 1503 */
+ XML_IO_EBADMSG, /* 1504 */
+ XML_IO_EBUSY, /* 1505 */
+ XML_IO_ECANCELED, /* 1506 */
+ XML_IO_ECHILD, /* 1507 */
+ XML_IO_EDEADLK, /* 1508 */
+ XML_IO_EDOM, /* 1509 */
+ XML_IO_EEXIST, /* 1510 */
+ XML_IO_EFAULT, /* 1511 */
+ XML_IO_EFBIG, /* 1512 */
+ XML_IO_EINPROGRESS, /* 1513 */
+ XML_IO_EINTR, /* 1514 */
+ XML_IO_EINVAL, /* 1515 */
+ XML_IO_EIO, /* 1516 */
+ XML_IO_EISDIR, /* 1517 */
+ XML_IO_EMFILE, /* 1518 */
+ XML_IO_EMLINK, /* 1519 */
+ XML_IO_EMSGSIZE, /* 1520 */
+ XML_IO_ENAMETOOLONG, /* 1521 */
+ XML_IO_ENFILE, /* 1522 */
+ XML_IO_ENODEV, /* 1523 */
+ XML_IO_ENOENT, /* 1524 */
+ XML_IO_ENOEXEC, /* 1525 */
+ XML_IO_ENOLCK, /* 1526 */
+ XML_IO_ENOMEM, /* 1527 */
+ XML_IO_ENOSPC, /* 1528 */
+ XML_IO_ENOSYS, /* 1529 */
+ XML_IO_ENOTDIR, /* 1530 */
+ XML_IO_ENOTEMPTY, /* 1531 */
+ XML_IO_ENOTSUP, /* 1532 */
+ XML_IO_ENOTTY, /* 1533 */
+ XML_IO_ENXIO, /* 1534 */
+ XML_IO_EPERM, /* 1535 */
+ XML_IO_EPIPE, /* 1536 */
+ XML_IO_ERANGE, /* 1537 */
+ XML_IO_EROFS, /* 1538 */
+ XML_IO_ESPIPE, /* 1539 */
+ XML_IO_ESRCH, /* 1540 */
+ XML_IO_ETIMEDOUT, /* 1541 */
+ XML_IO_EXDEV, /* 1542 */
+ XML_IO_NETWORK_ATTEMPT, /* 1543 */
+ XML_IO_ENCODER, /* 1544 */
+ XML_IO_FLUSH, /* 1545 */
+ XML_IO_WRITE, /* 1546 */
+ XML_IO_NO_INPUT, /* 1547 */
+ XML_IO_BUFFER_FULL, /* 1548 */
+ XML_IO_LOAD_ERROR, /* 1549 */
+ XML_IO_ENOTSOCK, /* 1550 */
+ XML_IO_EISCONN, /* 1551 */
+ XML_IO_ECONNREFUSED, /* 1552 */
+ XML_IO_ENETUNREACH, /* 1553 */
+ XML_IO_EADDRINUSE, /* 1554 */
+ XML_IO_EALREADY, /* 1555 */
+ XML_IO_EAFNOSUPPORT, /* 1556 */
+ XML_XINCLUDE_RECURSION=1600,
+ XML_XINCLUDE_PARSE_VALUE, /* 1601 */
+ XML_XINCLUDE_ENTITY_DEF_MISMATCH, /* 1602 */
+ XML_XINCLUDE_NO_HREF, /* 1603 */
+ XML_XINCLUDE_NO_FALLBACK, /* 1604 */
+ XML_XINCLUDE_HREF_URI, /* 1605 */
+ XML_XINCLUDE_TEXT_FRAGMENT, /* 1606 */
+ XML_XINCLUDE_TEXT_DOCUMENT, /* 1607 */
+ XML_XINCLUDE_INVALID_CHAR, /* 1608 */
+ XML_XINCLUDE_BUILD_FAILED, /* 1609 */
+ XML_XINCLUDE_UNKNOWN_ENCODING, /* 1610 */
+ XML_XINCLUDE_MULTIPLE_ROOT, /* 1611 */
+ XML_XINCLUDE_XPTR_FAILED, /* 1612 */
+ XML_XINCLUDE_XPTR_RESULT, /* 1613 */
+ XML_XINCLUDE_INCLUDE_IN_INCLUDE, /* 1614 */
+ XML_XINCLUDE_FALLBACKS_IN_INCLUDE, /* 1615 */
+ XML_XINCLUDE_FALLBACK_NOT_IN_INCLUDE, /* 1616 */
+ XML_XINCLUDE_DEPRECATED_NS, /* 1617 */
+ XML_XINCLUDE_FRAGMENT_ID, /* 1618 */
+ XML_CATALOG_MISSING_ATTR = 1650,
+ XML_CATALOG_ENTRY_BROKEN, /* 1651 */
+ XML_CATALOG_PREFER_VALUE, /* 1652 */
+ XML_CATALOG_NOT_CATALOG, /* 1653 */
+ XML_CATALOG_RECURSION, /* 1654 */
+ XML_SCHEMAP_PREFIX_UNDEFINED = 1700,
+ XML_SCHEMAP_ATTRFORMDEFAULT_VALUE, /* 1701 */
+ XML_SCHEMAP_ATTRGRP_NONAME_NOREF, /* 1702 */
+ XML_SCHEMAP_ATTR_NONAME_NOREF, /* 1703 */
+ XML_SCHEMAP_COMPLEXTYPE_NONAME_NOREF, /* 1704 */
+ XML_SCHEMAP_ELEMFORMDEFAULT_VALUE, /* 1705 */
+ XML_SCHEMAP_ELEM_NONAME_NOREF, /* 1706 */
+ XML_SCHEMAP_EXTENSION_NO_BASE, /* 1707 */
+ XML_SCHEMAP_FACET_NO_VALUE, /* 1708 */
+ XML_SCHEMAP_FAILED_BUILD_IMPORT, /* 1709 */
+ XML_SCHEMAP_GROUP_NONAME_NOREF, /* 1710 */
+ XML_SCHEMAP_IMPORT_NAMESPACE_NOT_URI, /* 1711 */
+ XML_SCHEMAP_IMPORT_REDEFINE_NSNAME, /* 1712 */
+ XML_SCHEMAP_IMPORT_SCHEMA_NOT_URI, /* 1713 */
+ XML_SCHEMAP_INVALID_BOOLEAN, /* 1714 */
+ XML_SCHEMAP_INVALID_ENUM, /* 1715 */
+ XML_SCHEMAP_INVALID_FACET, /* 1716 */
+ XML_SCHEMAP_INVALID_FACET_VALUE, /* 1717 */
+ XML_SCHEMAP_INVALID_MAXOCCURS, /* 1718 */
+ XML_SCHEMAP_INVALID_MINOCCURS, /* 1719 */
+ XML_SCHEMAP_INVALID_REF_AND_SUBTYPE, /* 1720 */
+ XML_SCHEMAP_INVALID_WHITE_SPACE, /* 1721 */
+ XML_SCHEMAP_NOATTR_NOREF, /* 1722 */
+ XML_SCHEMAP_NOTATION_NO_NAME, /* 1723 */
+ XML_SCHEMAP_NOTYPE_NOREF, /* 1724 */
+ XML_SCHEMAP_REF_AND_SUBTYPE, /* 1725 */
+ XML_SCHEMAP_RESTRICTION_NONAME_NOREF, /* 1726 */
+ XML_SCHEMAP_SIMPLETYPE_NONAME, /* 1727 */
+ XML_SCHEMAP_TYPE_AND_SUBTYPE, /* 1728 */
+ XML_SCHEMAP_UNKNOWN_ALL_CHILD, /* 1729 */
+ XML_SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD, /* 1730 */
+ XML_SCHEMAP_UNKNOWN_ATTR_CHILD, /* 1731 */
+ XML_SCHEMAP_UNKNOWN_ATTRGRP_CHILD, /* 1732 */
+ XML_SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP, /* 1733 */
+ XML_SCHEMAP_UNKNOWN_BASE_TYPE, /* 1734 */
+ XML_SCHEMAP_UNKNOWN_CHOICE_CHILD, /* 1735 */
+ XML_SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD, /* 1736 */
+ XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD, /* 1737 */
+ XML_SCHEMAP_UNKNOWN_ELEM_CHILD, /* 1738 */
+ XML_SCHEMAP_UNKNOWN_EXTENSION_CHILD, /* 1739 */
+ XML_SCHEMAP_UNKNOWN_FACET_CHILD, /* 1740 */
+ XML_SCHEMAP_UNKNOWN_FACET_TYPE, /* 1741 */
+ XML_SCHEMAP_UNKNOWN_GROUP_CHILD, /* 1742 */
+ XML_SCHEMAP_UNKNOWN_IMPORT_CHILD, /* 1743 */
+ XML_SCHEMAP_UNKNOWN_LIST_CHILD, /* 1744 */
+ XML_SCHEMAP_UNKNOWN_NOTATION_CHILD, /* 1745 */
+ XML_SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD, /* 1746 */
+ XML_SCHEMAP_UNKNOWN_REF, /* 1747 */
+ XML_SCHEMAP_UNKNOWN_RESTRICTION_CHILD, /* 1748 */
+ XML_SCHEMAP_UNKNOWN_SCHEMAS_CHILD, /* 1749 */
+ XML_SCHEMAP_UNKNOWN_SEQUENCE_CHILD, /* 1750 */
+ XML_SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD, /* 1751 */
+ XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD, /* 1752 */
+ XML_SCHEMAP_UNKNOWN_TYPE, /* 1753 */
+ XML_SCHEMAP_UNKNOWN_UNION_CHILD, /* 1754 */
+ XML_SCHEMAP_ELEM_DEFAULT_FIXED, /* 1755 */
+ XML_SCHEMAP_REGEXP_INVALID, /* 1756 */
+ XML_SCHEMAP_FAILED_LOAD, /* 1757 */
+ XML_SCHEMAP_NOTHING_TO_PARSE, /* 1758 */
+ XML_SCHEMAP_NOROOT, /* 1759 */
+ XML_SCHEMAP_REDEFINED_GROUP, /* 1760 */
+ XML_SCHEMAP_REDEFINED_TYPE, /* 1761 */
+ XML_SCHEMAP_REDEFINED_ELEMENT, /* 1762 */
+ XML_SCHEMAP_REDEFINED_ATTRGROUP, /* 1763 */
+ XML_SCHEMAP_REDEFINED_ATTR, /* 1764 */
+ XML_SCHEMAP_REDEFINED_NOTATION, /* 1765 */
+ XML_SCHEMAP_FAILED_PARSE, /* 1766 */
+ XML_SCHEMAP_UNKNOWN_PREFIX, /* 1767 */
+ XML_SCHEMAP_DEF_AND_PREFIX, /* 1768 */
+ XML_SCHEMAP_UNKNOWN_INCLUDE_CHILD, /* 1769 */
+ XML_SCHEMAP_INCLUDE_SCHEMA_NOT_URI, /* 1770 */
+ XML_SCHEMAP_INCLUDE_SCHEMA_NO_URI, /* 1771 */
+ XML_SCHEMAP_NOT_SCHEMA, /* 1772 */
+ XML_SCHEMAP_UNKNOWN_MEMBER_TYPE, /* 1773 */
+ XML_SCHEMAP_INVALID_ATTR_USE, /* 1774 */
+ XML_SCHEMAP_RECURSIVE, /* 1775 */
+ XML_SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE, /* 1776 */
+ XML_SCHEMAP_INVALID_ATTR_COMBINATION, /* 1777 */
+ XML_SCHEMAP_INVALID_ATTR_INLINE_COMBINATION, /* 1778 */
+ XML_SCHEMAP_MISSING_SIMPLETYPE_CHILD, /* 1779 */
+ XML_SCHEMAP_INVALID_ATTR_NAME, /* 1780 */
+ XML_SCHEMAP_REF_AND_CONTENT, /* 1781 */
+ XML_SCHEMAP_CT_PROPS_CORRECT_1, /* 1782 */
+ XML_SCHEMAP_CT_PROPS_CORRECT_2, /* 1783 */
+ XML_SCHEMAP_CT_PROPS_CORRECT_3, /* 1784 */
+ XML_SCHEMAP_CT_PROPS_CORRECT_4, /* 1785 */
+ XML_SCHEMAP_CT_PROPS_CORRECT_5, /* 1786 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1, /* 1787 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1, /* 1788 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2, /* 1789 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2, /* 1790 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3, /* 1791 */
+ XML_SCHEMAP_WILDCARD_INVALID_NS_MEMBER, /* 1792 */
+ XML_SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE, /* 1793 */
+ XML_SCHEMAP_UNION_NOT_EXPRESSIBLE, /* 1794 */
+ XML_SCHEMAP_SRC_IMPORT_3_1, /* 1795 */
+ XML_SCHEMAP_SRC_IMPORT_3_2, /* 1796 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_1, /* 1797 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2, /* 1798 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_3, /* 1799 */
+ XML_SCHEMAP_COS_CT_EXTENDS_1_3, /* 1800 */
+ XML_SCHEMAV_NOROOT = 1801,
+ XML_SCHEMAV_UNDECLAREDELEM, /* 1802 */
+ XML_SCHEMAV_NOTTOPLEVEL, /* 1803 */
+ XML_SCHEMAV_MISSING, /* 1804 */
+ XML_SCHEMAV_WRONGELEM, /* 1805 */
+ XML_SCHEMAV_NOTYPE, /* 1806 */
+ XML_SCHEMAV_NOROLLBACK, /* 1807 */
+ XML_SCHEMAV_ISABSTRACT, /* 1808 */
+ XML_SCHEMAV_NOTEMPTY, /* 1809 */
+ XML_SCHEMAV_ELEMCONT, /* 1810 */
+ XML_SCHEMAV_HAVEDEFAULT, /* 1811 */
+ XML_SCHEMAV_NOTNILLABLE, /* 1812 */
+ XML_SCHEMAV_EXTRACONTENT, /* 1813 */
+ XML_SCHEMAV_INVALIDATTR, /* 1814 */
+ XML_SCHEMAV_INVALIDELEM, /* 1815 */
+ XML_SCHEMAV_NOTDETERMINIST, /* 1816 */
+ XML_SCHEMAV_CONSTRUCT, /* 1817 */
+ XML_SCHEMAV_INTERNAL, /* 1818 */
+ XML_SCHEMAV_NOTSIMPLE, /* 1819 */
+ XML_SCHEMAV_ATTRUNKNOWN, /* 1820 */
+ XML_SCHEMAV_ATTRINVALID, /* 1821 */
+ XML_SCHEMAV_VALUE, /* 1822 */
+ XML_SCHEMAV_FACET, /* 1823 */
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_1, /* 1824 */
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_2, /* 1825 */
+ XML_SCHEMAV_CVC_DATATYPE_VALID_1_2_3, /* 1826 */
+ XML_SCHEMAV_CVC_TYPE_3_1_1, /* 1827 */
+ XML_SCHEMAV_CVC_TYPE_3_1_2, /* 1828 */
+ XML_SCHEMAV_CVC_FACET_VALID, /* 1829 */
+ XML_SCHEMAV_CVC_LENGTH_VALID, /* 1830 */
+ XML_SCHEMAV_CVC_MINLENGTH_VALID, /* 1831 */
+ XML_SCHEMAV_CVC_MAXLENGTH_VALID, /* 1832 */
+ XML_SCHEMAV_CVC_MININCLUSIVE_VALID, /* 1833 */
+ XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID, /* 1834 */
+ XML_SCHEMAV_CVC_MINEXCLUSIVE_VALID, /* 1835 */
+ XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID, /* 1836 */
+ XML_SCHEMAV_CVC_TOTALDIGITS_VALID, /* 1837 */
+ XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID, /* 1838 */
+ XML_SCHEMAV_CVC_PATTERN_VALID, /* 1839 */
+ XML_SCHEMAV_CVC_ENUMERATION_VALID, /* 1840 */
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_2_1, /* 1841 */
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_2_2, /* 1842 */
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_2_3, /* 1843 */
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_2_4, /* 1844 */
+ XML_SCHEMAV_CVC_ELT_1, /* 1845 */
+ XML_SCHEMAV_CVC_ELT_2, /* 1846 */
+ XML_SCHEMAV_CVC_ELT_3_1, /* 1847 */
+ XML_SCHEMAV_CVC_ELT_3_2_1, /* 1848 */
+ XML_SCHEMAV_CVC_ELT_3_2_2, /* 1849 */
+ XML_SCHEMAV_CVC_ELT_4_1, /* 1850 */
+ XML_SCHEMAV_CVC_ELT_4_2, /* 1851 */
+ XML_SCHEMAV_CVC_ELT_4_3, /* 1852 */
+ XML_SCHEMAV_CVC_ELT_5_1_1, /* 1853 */
+ XML_SCHEMAV_CVC_ELT_5_1_2, /* 1854 */
+ XML_SCHEMAV_CVC_ELT_5_2_1, /* 1855 */
+ XML_SCHEMAV_CVC_ELT_5_2_2_1, /* 1856 */
+ XML_SCHEMAV_CVC_ELT_5_2_2_2_1, /* 1857 */
+ XML_SCHEMAV_CVC_ELT_5_2_2_2_2, /* 1858 */
+ XML_SCHEMAV_CVC_ELT_6, /* 1859 */
+ XML_SCHEMAV_CVC_ELT_7, /* 1860 */
+ XML_SCHEMAV_CVC_ATTRIBUTE_1, /* 1861 */
+ XML_SCHEMAV_CVC_ATTRIBUTE_2, /* 1862 */
+ XML_SCHEMAV_CVC_ATTRIBUTE_3, /* 1863 */
+ XML_SCHEMAV_CVC_ATTRIBUTE_4, /* 1864 */
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_3_1, /* 1865 */
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_1, /* 1866 */
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_3_2_2, /* 1867 */
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_4, /* 1868 */
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1, /* 1869 */
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_5_2, /* 1870 */
+ XML_SCHEMAV_ELEMENT_CONTENT, /* 1871 */
+ XML_SCHEMAV_DOCUMENT_ELEMENT_MISSING, /* 1872 */
+ XML_SCHEMAV_CVC_COMPLEX_TYPE_1, /* 1873 */
+ XML_SCHEMAV_CVC_AU, /* 1874 */
+ XML_SCHEMAV_CVC_TYPE_1, /* 1875 */
+ XML_SCHEMAV_CVC_TYPE_2, /* 1876 */
+ XML_SCHEMAV_CVC_IDC, /* 1877 */
+ XML_SCHEMAV_CVC_WILDCARD, /* 1878 */
+ XML_SCHEMAV_MISC, /* 1879 */
+ XML_XPTR_UNKNOWN_SCHEME = 1900,
+ XML_XPTR_CHILDSEQ_START, /* 1901 */
+ XML_XPTR_EVAL_FAILED, /* 1902 */
+ XML_XPTR_EXTRA_OBJECTS, /* 1903 */
+ XML_C14N_CREATE_CTXT = 1950,
+ XML_C14N_REQUIRES_UTF8, /* 1951 */
+ XML_C14N_CREATE_STACK, /* 1952 */
+ XML_C14N_INVALID_NODE, /* 1953 */
+ XML_C14N_UNKNOW_NODE, /* 1954 */
+ XML_C14N_RELATIVE_NAMESPACE, /* 1955 */
+ XML_FTP_PASV_ANSWER = 2000,
+ XML_FTP_EPSV_ANSWER, /* 2001 */
+ XML_FTP_ACCNT, /* 2002 */
+ XML_FTP_URL_SYNTAX, /* 2003 */
+ XML_HTTP_URL_SYNTAX = 2020,
+ XML_HTTP_USE_IP, /* 2021 */
+ XML_HTTP_UNKNOWN_HOST, /* 2022 */
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_1 = 3000,
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_2, /* 3001 */
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_3, /* 3002 */
+ XML_SCHEMAP_SRC_SIMPLE_TYPE_4, /* 3003 */
+ XML_SCHEMAP_SRC_RESOLVE, /* 3004 */
+ XML_SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE, /* 3005 */
+ XML_SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE, /* 3006 */
+ XML_SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES, /* 3007 */
+ XML_SCHEMAP_ST_PROPS_CORRECT_1, /* 3008 */
+ XML_SCHEMAP_ST_PROPS_CORRECT_2, /* 3009 */
+ XML_SCHEMAP_ST_PROPS_CORRECT_3, /* 3010 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_1_1, /* 3011 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_1_2, /* 3012 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_1_3_1, /* 3013 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_1_3_2, /* 3014 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_1, /* 3015 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_1, /* 3016 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_1_2, /* 3017 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_1, /* 3018 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_2, /* 3019 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_3, /* 3020 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4, /* 3021 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_5, /* 3022 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_1, /* 3023 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1, /* 3024 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_1_2, /* 3025 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_2, /* 3026 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_1, /* 3027 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_3, /* 3028 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_4, /* 3029 */
+ XML_SCHEMAP_COS_ST_RESTRICTS_3_3_2_5, /* 3030 */
+ XML_SCHEMAP_COS_ST_DERIVED_OK_2_1, /* 3031 */
+ XML_SCHEMAP_COS_ST_DERIVED_OK_2_2, /* 3032 */
+ XML_SCHEMAP_S4S_ELEM_NOT_ALLOWED, /* 3033 */
+ XML_SCHEMAP_S4S_ELEM_MISSING, /* 3034 */
+ XML_SCHEMAP_S4S_ATTR_NOT_ALLOWED, /* 3035 */
+ XML_SCHEMAP_S4S_ATTR_MISSING, /* 3036 */
+ XML_SCHEMAP_S4S_ATTR_INVALID_VALUE, /* 3037 */
+ XML_SCHEMAP_SRC_ELEMENT_1, /* 3038 */
+ XML_SCHEMAP_SRC_ELEMENT_2_1, /* 3039 */
+ XML_SCHEMAP_SRC_ELEMENT_2_2, /* 3040 */
+ XML_SCHEMAP_SRC_ELEMENT_3, /* 3041 */
+ XML_SCHEMAP_P_PROPS_CORRECT_1, /* 3042 */
+ XML_SCHEMAP_P_PROPS_CORRECT_2_1, /* 3043 */
+ XML_SCHEMAP_P_PROPS_CORRECT_2_2, /* 3044 */
+ XML_SCHEMAP_E_PROPS_CORRECT_2, /* 3045 */
+ XML_SCHEMAP_E_PROPS_CORRECT_3, /* 3046 */
+ XML_SCHEMAP_E_PROPS_CORRECT_4, /* 3047 */
+ XML_SCHEMAP_E_PROPS_CORRECT_5, /* 3048 */
+ XML_SCHEMAP_E_PROPS_CORRECT_6, /* 3049 */
+ XML_SCHEMAP_SRC_INCLUDE, /* 3050 */
+ XML_SCHEMAP_SRC_ATTRIBUTE_1, /* 3051 */
+ XML_SCHEMAP_SRC_ATTRIBUTE_2, /* 3052 */
+ XML_SCHEMAP_SRC_ATTRIBUTE_3_1, /* 3053 */
+ XML_SCHEMAP_SRC_ATTRIBUTE_3_2, /* 3054 */
+ XML_SCHEMAP_SRC_ATTRIBUTE_4, /* 3055 */
+ XML_SCHEMAP_NO_XMLNS, /* 3056 */
+ XML_SCHEMAP_NO_XSI, /* 3057 */
+ XML_SCHEMAP_COS_VALID_DEFAULT_1, /* 3058 */
+ XML_SCHEMAP_COS_VALID_DEFAULT_2_1, /* 3059 */
+ XML_SCHEMAP_COS_VALID_DEFAULT_2_2_1, /* 3060 */
+ XML_SCHEMAP_COS_VALID_DEFAULT_2_2_2, /* 3061 */
+ XML_SCHEMAP_CVC_SIMPLE_TYPE, /* 3062 */
+ XML_SCHEMAP_COS_CT_EXTENDS_1_1, /* 3063 */
+ XML_SCHEMAP_SRC_IMPORT_1_1, /* 3064 */
+ XML_SCHEMAP_SRC_IMPORT_1_2, /* 3065 */
+ XML_SCHEMAP_SRC_IMPORT_2, /* 3066 */
+ XML_SCHEMAP_SRC_IMPORT_2_1, /* 3067 */
+ XML_SCHEMAP_SRC_IMPORT_2_2, /* 3068 */
+ XML_SCHEMAP_INTERNAL, /* 3069 non-W3C */
+ XML_SCHEMAP_NOT_DETERMINISTIC, /* 3070 non-W3C */
+ XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_1, /* 3071 */
+ XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_2, /* 3072 */
+ XML_SCHEMAP_SRC_ATTRIBUTE_GROUP_3, /* 3073 */
+ XML_SCHEMAP_MG_PROPS_CORRECT_1, /* 3074 */
+ XML_SCHEMAP_MG_PROPS_CORRECT_2, /* 3075 */
+ XML_SCHEMAP_SRC_CT_1, /* 3076 */
+ XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3, /* 3077 */
+ XML_SCHEMAP_AU_PROPS_CORRECT_2, /* 3078 */
+ XML_SCHEMAP_A_PROPS_CORRECT_2, /* 3079 */
+ XML_SCHEMAP_C_PROPS_CORRECT, /* 3080 */
+ XML_SCHEMAP_SRC_REDEFINE, /* 3081 */
+ XML_SCHEMAP_SRC_IMPORT, /* 3082 */
+ XML_SCHEMAP_WARN_SKIP_SCHEMA, /* 3083 */
+ XML_SCHEMAP_WARN_UNLOCATED_SCHEMA, /* 3084 */
+ XML_SCHEMAP_WARN_ATTR_REDECL_PROH, /* 3085 */
+ XML_SCHEMAP_WARN_ATTR_POINTLESS_PROH, /* 3085 */
+ XML_SCHEMAP_AG_PROPS_CORRECT, /* 3086 */
+ XML_SCHEMAP_COS_CT_EXTENDS_1_2, /* 3087 */
+ XML_SCHEMAP_AU_PROPS_CORRECT, /* 3088 */
+ XML_SCHEMAP_A_PROPS_CORRECT_3, /* 3089 */
+ XML_SCHEMAP_COS_ALL_LIMITED, /* 3090 */
+ XML_SCHEMATRONV_ASSERT = 4000, /* 4000 */
+ XML_SCHEMATRONV_REPORT,
+ XML_MODULE_OPEN = 4900, /* 4900 */
+ XML_MODULE_CLOSE, /* 4901 */
+ XML_CHECK_FOUND_ELEMENT = 5000,
+ XML_CHECK_FOUND_ATTRIBUTE, /* 5001 */
+ XML_CHECK_FOUND_TEXT, /* 5002 */
+ XML_CHECK_FOUND_CDATA, /* 5003 */
+ XML_CHECK_FOUND_ENTITYREF, /* 5004 */
+ XML_CHECK_FOUND_ENTITY, /* 5005 */
+ XML_CHECK_FOUND_PI, /* 5006 */
+ XML_CHECK_FOUND_COMMENT, /* 5007 */
+ XML_CHECK_FOUND_DOCTYPE, /* 5008 */
+ XML_CHECK_FOUND_FRAGMENT, /* 5009 */
+ XML_CHECK_FOUND_NOTATION, /* 5010 */
+ XML_CHECK_UNKNOWN_NODE, /* 5011 */
+ XML_CHECK_ENTITY_TYPE, /* 5012 */
+ XML_CHECK_NO_PARENT, /* 5013 */
+ XML_CHECK_NO_DOC, /* 5014 */
+ XML_CHECK_NO_NAME, /* 5015 */
+ XML_CHECK_NO_ELEM, /* 5016 */
+ XML_CHECK_WRONG_DOC, /* 5017 */
+ XML_CHECK_NO_PREV, /* 5018 */
+ XML_CHECK_WRONG_PREV, /* 5019 */
+ XML_CHECK_NO_NEXT, /* 5020 */
+ XML_CHECK_WRONG_NEXT, /* 5021 */
+ XML_CHECK_NOT_DTD, /* 5022 */
+ XML_CHECK_NOT_ATTR, /* 5023 */
+ XML_CHECK_NOT_ATTR_DECL, /* 5024 */
+ XML_CHECK_NOT_ELEM_DECL, /* 5025 */
+ XML_CHECK_NOT_ENTITY_DECL, /* 5026 */
+ XML_CHECK_NOT_NS_DECL, /* 5027 */
+ XML_CHECK_NO_HREF, /* 5028 */
+ XML_CHECK_WRONG_PARENT,/* 5029 */
+ XML_CHECK_NS_SCOPE, /* 5030 */
+ XML_CHECK_NS_ANCESTOR, /* 5031 */
+ XML_CHECK_NOT_UTF8, /* 5032 */
+ XML_CHECK_NO_DICT, /* 5033 */
+ XML_CHECK_NOT_NCNAME, /* 5034 */
+ XML_CHECK_OUTSIDE_DICT, /* 5035 */
+ XML_CHECK_WRONG_NAME, /* 5036 */
+ XML_CHECK_NAME_NOT_NULL, /* 5037 */
+ XML_I18N_NO_NAME = 6000,
+ XML_I18N_NO_HANDLER, /* 6001 */
+ XML_I18N_EXCESS_HANDLER, /* 6002 */
+ XML_I18N_CONV_FAILED, /* 6003 */
+ XML_I18N_NO_OUTPUT, /* 6004 */
+ XML_BUF_OVERFLOW = 7000
+} xmlParserErrors;
+
+/**
+ * xmlGenericErrorFunc:
+ * @ctx: a parsing context
+ * @msg: the message
+ * @...: the extra arguments of the varags to format the message
+ *
+ * Signature of the function to use when there is an error and
+ * no parsing or validity context available .
+ */
+typedef void (XMLCDECL *xmlGenericErrorFunc) (void *ctx,
+ const char *msg,
+ ...) LIBXML_ATTR_FORMAT(2,3);
+/**
+ * xmlStructuredErrorFunc:
+ * @userData: user provided data for the error callback
+ * @error: the error being raised.
+ *
+ * Signature of the function to use when there is an error and
+ * the module handles the new error reporting mechanism.
+ */
+typedef void (XMLCALL *xmlStructuredErrorFunc) (void *userData, xmlErrorPtr error);
+
+/*
+ * Use the following function to reset the two global variables
+ * xmlGenericError and xmlGenericErrorContext.
+ */
+XMLPUBFUN void XMLCALL
+ xmlSetGenericErrorFunc (void *ctx,
+ xmlGenericErrorFunc handler);
+XMLPUBFUN void XMLCALL
+ initGenericErrorDefaultFunc (xmlGenericErrorFunc *handler);
+
+XMLPUBFUN void XMLCALL
+ xmlSetStructuredErrorFunc (void *ctx,
+ xmlStructuredErrorFunc handler);
+/*
+ * Default message routines used by SAX and Valid context for error
+ * and warning reporting.
+ */
+XMLPUBFUN void XMLCDECL
+ xmlParserError (void *ctx,
+ const char *msg,
+ ...) LIBXML_ATTR_FORMAT(2,3);
+XMLPUBFUN void XMLCDECL
+ xmlParserWarning (void *ctx,
+ const char *msg,
+ ...) LIBXML_ATTR_FORMAT(2,3);
+XMLPUBFUN void XMLCDECL
+ xmlParserValidityError (void *ctx,
+ const char *msg,
+ ...) LIBXML_ATTR_FORMAT(2,3);
+XMLPUBFUN void XMLCDECL
+ xmlParserValidityWarning (void *ctx,
+ const char *msg,
+ ...) LIBXML_ATTR_FORMAT(2,3);
+XMLPUBFUN void XMLCALL
+ xmlParserPrintFileInfo (xmlParserInputPtr input);
+XMLPUBFUN void XMLCALL
+ xmlParserPrintFileContext (xmlParserInputPtr input);
+
+/*
+ * Extended error information routines
+ */
+XMLPUBFUN xmlErrorPtr XMLCALL
+ xmlGetLastError (void);
+XMLPUBFUN void XMLCALL
+ xmlResetLastError (void);
+XMLPUBFUN xmlErrorPtr XMLCALL
+ xmlCtxtGetLastError (void *ctx);
+XMLPUBFUN void XMLCALL
+ xmlCtxtResetLastError (void *ctx);
+XMLPUBFUN void XMLCALL
+ xmlResetError (xmlErrorPtr err);
+XMLPUBFUN int XMLCALL
+ xmlCopyError (xmlErrorPtr from,
+ xmlErrorPtr to);
+
+#ifdef IN_LIBXML
+/*
+ * Internal callback reporting routine
+ */
+XMLPUBFUN void XMLCALL
+ __xmlRaiseError (xmlStructuredErrorFunc schannel,
+ xmlGenericErrorFunc channel,
+ void *data,
+ void *ctx,
+ void *node,
+ int domain,
+ int code,
+ xmlErrorLevel level,
+ const char *file,
+ int line,
+ const char *str1,
+ const char *str2,
+ const char *str3,
+ int int1,
+ int col,
+ const char *msg,
+ ...) LIBXML_ATTR_FORMAT(16,17);
+XMLPUBFUN void XMLCALL
+ __xmlSimpleError (int domain,
+ int code,
+ xmlNodePtr node,
+ const char *msg,
+ const char *extra);
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif /* __XML_ERROR_H__ */
diff --git a/libxml2/include/libxml/xmlexports.h b/libxml2/include/libxml/xmlexports.h
new file mode 100644
index 000000000..2c79f814b
--- /dev/null
+++ b/libxml2/include/libxml/xmlexports.h
@@ -0,0 +1,162 @@
+/*
+ * Summary: macros for marking symbols as exportable/importable.
+ * Description: macros for marking symbols as exportable/importable.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Igor Zlatovic <igor@zlatkovic.com>
+ */
+
+#ifndef __XML_EXPORTS_H__
+#define __XML_EXPORTS_H__
+
+/**
+ * XMLPUBFUN, XMLPUBVAR, XMLCALL
+ *
+ * Macros which declare an exportable function, an exportable variable and
+ * the calling convention used for functions.
+ *
+ * Please use an extra block for every platform/compiler combination when
+ * modifying this, rather than overlong #ifdef lines. This helps
+ * readability as well as the fact that different compilers on the same
+ * platform might need different definitions.
+ */
+
+/**
+ * XMLPUBFUN:
+ *
+ * Macros which declare an exportable function
+ */
+#define XMLPUBFUN
+/**
+ * XMLPUBVAR:
+ *
+ * Macros which declare an exportable variable
+ */
+#define XMLPUBVAR extern
+/**
+ * XMLCALL:
+ *
+ * Macros which declare the called convention for exported functions
+ */
+#define XMLCALL
+/**
+ * XMLCDECL:
+ *
+ * Macro which declares the calling convention for exported functions that
+ * use '...'.
+ */
+#define XMLCDECL
+
+/** DOC_DISABLE */
+
+/* Windows platform with MS compiler */
+#if defined(_WIN32) && defined(_MSC_VER)
+ #undef XMLPUBFUN
+ #undef XMLPUBVAR
+ #undef XMLCALL
+ #undef XMLCDECL
+ #if defined(IN_LIBXML) && !defined(LIBXML_STATIC)
+ #define XMLPUBFUN __declspec(dllexport)
+ #define XMLPUBVAR __declspec(dllexport)
+ #else
+ #define XMLPUBFUN
+ #if !defined(LIBXML_STATIC)
+ #define XMLPUBVAR __declspec(dllimport) extern
+ #else
+ #define XMLPUBVAR extern
+ #endif
+ #endif
+ #if defined(LIBXML_FASTCALL)
+ #define XMLCALL __fastcall
+ #else
+ #define XMLCALL __cdecl
+ #endif
+ #define XMLCDECL __cdecl
+ #if !defined _REENTRANT
+ #define _REENTRANT
+ #endif
+#endif
+
+/* Windows platform with Borland compiler */
+#if defined(_WIN32) && defined(__BORLANDC__)
+ #undef XMLPUBFUN
+ #undef XMLPUBVAR
+ #undef XMLCALL
+ #undef XMLCDECL
+ #if defined(IN_LIBXML) && !defined(LIBXML_STATIC)
+ #define XMLPUBFUN __declspec(dllexport)
+ #define XMLPUBVAR __declspec(dllexport) extern
+ #else
+ #define XMLPUBFUN
+ #if !defined(LIBXML_STATIC)
+ #define XMLPUBVAR __declspec(dllimport) extern
+ #else
+ #define XMLPUBVAR extern
+ #endif
+ #endif
+ #define XMLCALL __cdecl
+ #define XMLCDECL __cdecl
+ #if !defined _REENTRANT
+ #define _REENTRANT
+ #endif
+#endif
+
+/* Windows platform with GNU compiler (Mingw) */
+#if defined(_WIN32) && defined(__MINGW32__)
+ #undef XMLPUBFUN
+ #undef XMLPUBVAR
+ #undef XMLCALL
+ #undef XMLCDECL
+ /*
+ * if defined(IN_LIBXML) this raises problems on mingw with msys
+ * _imp__xmlFree listed as missing. Try to workaround the problem
+ * by also making that declaration when compiling client code.
+ */
+ #if defined(IN_LIBXML) && !defined(LIBXML_STATIC)
+ #define XMLPUBFUN __declspec(dllexport)
+ #define XMLPUBVAR __declspec(dllexport) extern
+ #else
+ #define XMLPUBFUN
+ #if !defined(LIBXML_STATIC)
+ #define XMLPUBVAR __declspec(dllimport) extern
+ #else
+ #define XMLPUBVAR extern
+ #endif
+ #endif
+ #define XMLCALL __cdecl
+ #define XMLCDECL __cdecl
+ #if !defined _REENTRANT
+ #define _REENTRANT
+ #endif
+#endif
+
+/* Cygwin platform, GNU compiler */
+#if defined(_WIN32) && defined(__CYGWIN__)
+ #undef XMLPUBFUN
+ #undef XMLPUBVAR
+ #undef XMLCALL
+ #undef XMLCDECL
+ #if defined(IN_LIBXML) && !defined(LIBXML_STATIC)
+ #define XMLPUBFUN __declspec(dllexport)
+ #define XMLPUBVAR __declspec(dllexport)
+ #else
+ #define XMLPUBFUN
+ #if !defined(LIBXML_STATIC)
+ #define XMLPUBVAR __declspec(dllimport) extern
+ #else
+ #define XMLPUBVAR
+ #endif
+ #endif
+ #define XMLCALL __cdecl
+ #define XMLCDECL __cdecl
+#endif
+
+/* Compatibility */
+#if !defined(LIBXML_DLL_IMPORT)
+#define LIBXML_DLL_IMPORT XMLPUBVAR
+#endif
+
+#endif /* __XML_EXPORTS_H__ */
+
+
diff --git a/libxml2/include/libxml/xmlmemory.h b/libxml2/include/libxml/xmlmemory.h
new file mode 100644
index 000000000..17e375a3c
--- /dev/null
+++ b/libxml2/include/libxml/xmlmemory.h
@@ -0,0 +1,224 @@
+/*
+ * Summary: interface for the memory allocator
+ * Description: provides interfaces for the memory allocator,
+ * including debugging capabilities.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+
+#ifndef __DEBUG_MEMORY_ALLOC__
+#define __DEBUG_MEMORY_ALLOC__
+
+#include <stdio.h>
+#include <libxml/xmlversion.h>
+
+/**
+ * DEBUG_MEMORY:
+ *
+ * DEBUG_MEMORY replaces the allocator with a collect and debug
+ * shell to the libc allocator.
+ * DEBUG_MEMORY should only be activated when debugging
+ * libxml i.e. if libxml has been configured with --with-debug-mem too.
+ */
+/* #define DEBUG_MEMORY_FREED */
+/* #define DEBUG_MEMORY_LOCATION */
+
+#ifdef DEBUG
+#ifndef DEBUG_MEMORY
+#define DEBUG_MEMORY
+#endif
+#endif
+
+/**
+ * DEBUG_MEMORY_LOCATION:
+ *
+ * DEBUG_MEMORY_LOCATION should be activated only when debugging
+ * libxml i.e. if libxml has been configured with --with-debug-mem too.
+ */
+#ifdef DEBUG_MEMORY_LOCATION
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * The XML memory wrapper support 4 basic overloadable functions.
+ */
+/**
+ * xmlFreeFunc:
+ * @mem: an already allocated block of memory
+ *
+ * Signature for a free() implementation.
+ */
+typedef void (XMLCALL *xmlFreeFunc)(void *mem);
+/**
+ * xmlMallocFunc:
+ * @size: the size requested in bytes
+ *
+ * Signature for a malloc() implementation.
+ *
+ * Returns a pointer to the newly allocated block or NULL in case of error.
+ */
+typedef void *(LIBXML_ATTR_ALLOC_SIZE(1) XMLCALL *xmlMallocFunc)(size_t size);
+
+/**
+ * xmlReallocFunc:
+ * @mem: an already allocated block of memory
+ * @size: the new size requested in bytes
+ *
+ * Signature for a realloc() implementation.
+ *
+ * Returns a pointer to the newly reallocated block or NULL in case of error.
+ */
+typedef void *(XMLCALL *xmlReallocFunc)(void *mem, size_t size);
+
+/**
+ * xmlStrdupFunc:
+ * @str: a zero terminated string
+ *
+ * Signature for an strdup() implementation.
+ *
+ * Returns the copy of the string or NULL in case of error.
+ */
+typedef char *(XMLCALL *xmlStrdupFunc)(const char *str);
+
+/*
+ * The 4 interfaces used for all memory handling within libxml.
+LIBXML_DLL_IMPORT xmlFreeFunc xmlFree;
+LIBXML_DLL_IMPORT xmlMallocFunc xmlMalloc;
+LIBXML_DLL_IMPORT xmlMallocFunc xmlMallocAtomic;
+LIBXML_DLL_IMPORT xmlReallocFunc xmlRealloc;
+LIBXML_DLL_IMPORT xmlStrdupFunc xmlMemStrdup;
+ */
+
+/*
+ * The way to overload the existing functions.
+ * The xmlGc function have an extra entry for atomic block
+ * allocations useful for garbage collected memory allocators
+ */
+XMLPUBFUN int XMLCALL
+ xmlMemSetup (xmlFreeFunc freeFunc,
+ xmlMallocFunc mallocFunc,
+ xmlReallocFunc reallocFunc,
+ xmlStrdupFunc strdupFunc);
+XMLPUBFUN int XMLCALL
+ xmlMemGet (xmlFreeFunc *freeFunc,
+ xmlMallocFunc *mallocFunc,
+ xmlReallocFunc *reallocFunc,
+ xmlStrdupFunc *strdupFunc);
+XMLPUBFUN int XMLCALL
+ xmlGcMemSetup (xmlFreeFunc freeFunc,
+ xmlMallocFunc mallocFunc,
+ xmlMallocFunc mallocAtomicFunc,
+ xmlReallocFunc reallocFunc,
+ xmlStrdupFunc strdupFunc);
+XMLPUBFUN int XMLCALL
+ xmlGcMemGet (xmlFreeFunc *freeFunc,
+ xmlMallocFunc *mallocFunc,
+ xmlMallocFunc *mallocAtomicFunc,
+ xmlReallocFunc *reallocFunc,
+ xmlStrdupFunc *strdupFunc);
+
+/*
+ * Initialization of the memory layer.
+ */
+XMLPUBFUN int XMLCALL
+ xmlInitMemory (void);
+
+/*
+ * Cleanup of the memory layer.
+ */
+XMLPUBFUN void XMLCALL
+ xmlCleanupMemory (void);
+/*
+ * These are specific to the XML debug memory wrapper.
+ */
+XMLPUBFUN int XMLCALL
+ xmlMemUsed (void);
+XMLPUBFUN int XMLCALL
+ xmlMemBlocks (void);
+XMLPUBFUN void XMLCALL
+ xmlMemDisplay (FILE *fp);
+XMLPUBFUN void XMLCALL
+ xmlMemDisplayLast(FILE *fp, long nbBytes);
+XMLPUBFUN void XMLCALL
+ xmlMemShow (FILE *fp, int nr);
+XMLPUBFUN void XMLCALL
+ xmlMemoryDump (void);
+XMLPUBFUN void * XMLCALL
+ xmlMemMalloc (size_t size) LIBXML_ATTR_ALLOC_SIZE(1);
+XMLPUBFUN void * XMLCALL
+ xmlMemRealloc (void *ptr,size_t size);
+XMLPUBFUN void XMLCALL
+ xmlMemFree (void *ptr);
+XMLPUBFUN char * XMLCALL
+ xmlMemoryStrdup (const char *str);
+XMLPUBFUN void * XMLCALL
+ xmlMallocLoc (size_t size, const char *file, int line) LIBXML_ATTR_ALLOC_SIZE(1);
+XMLPUBFUN void * XMLCALL
+ xmlReallocLoc (void *ptr, size_t size, const char *file, int line);
+XMLPUBFUN void * XMLCALL
+ xmlMallocAtomicLoc (size_t size, const char *file, int line) LIBXML_ATTR_ALLOC_SIZE(1);
+XMLPUBFUN char * XMLCALL
+ xmlMemStrdupLoc (const char *str, const char *file, int line);
+
+
+#ifdef DEBUG_MEMORY_LOCATION
+/**
+ * xmlMalloc:
+ * @size: number of bytes to allocate
+ *
+ * Wrapper for the malloc() function used in the XML library.
+ *
+ * Returns the pointer to the allocated area or NULL in case of error.
+ */
+#define xmlMalloc(size) xmlMallocLoc((size), __FILE__, __LINE__)
+/**
+ * xmlMallocAtomic:
+ * @size: number of bytes to allocate
+ *
+ * Wrapper for the malloc() function used in the XML library for allocation
+ * of block not containing pointers to other areas.
+ *
+ * Returns the pointer to the allocated area or NULL in case of error.
+ */
+#define xmlMallocAtomic(size) xmlMallocAtomicLoc((size), __FILE__, __LINE__)
+/**
+ * xmlRealloc:
+ * @ptr: pointer to the existing allocated area
+ * @size: number of bytes to allocate
+ *
+ * Wrapper for the realloc() function used in the XML library.
+ *
+ * Returns the pointer to the allocated area or NULL in case of error.
+ */
+#define xmlRealloc(ptr, size) xmlReallocLoc((ptr), (size), __FILE__, __LINE__)
+/**
+ * xmlMemStrdup:
+ * @str: pointer to the existing string
+ *
+ * Wrapper for the strdup() function, xmlStrdup() is usually preferred.
+ *
+ * Returns the pointer to the allocated area or NULL in case of error.
+ */
+#define xmlMemStrdup(str) xmlMemStrdupLoc((str), __FILE__, __LINE__)
+
+#endif /* DEBUG_MEMORY_LOCATION */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#ifndef __XML_GLOBALS_H
+#ifndef __XML_THREADS_H__
+#include <libxml/threads.h>
+#include <libxml/globals.h>
+#endif
+#endif
+
+#endif /* __DEBUG_MEMORY_ALLOC__ */
+
diff --git a/libxml2/include/libxml/xmlmodule.h b/libxml2/include/libxml/xmlmodule.h
new file mode 100644
index 000000000..966782007
--- /dev/null
+++ b/libxml2/include/libxml/xmlmodule.h
@@ -0,0 +1,57 @@
+/*
+ * Summary: dynamic module loading
+ * Description: basic API for dynamic module loading, used by
+ * libexslt added in 2.6.17
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Joel W. Reed
+ */
+
+#ifndef __XML_MODULE_H__
+#define __XML_MODULE_H__
+
+#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_MODULES_ENABLED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * xmlModulePtr:
+ *
+ * A handle to a dynamically loaded module
+ */
+typedef struct _xmlModule xmlModule;
+typedef xmlModule *xmlModulePtr;
+
+/**
+ * xmlModuleOption:
+ *
+ * enumeration of options that can be passed down to xmlModuleOpen()
+ */
+typedef enum {
+ XML_MODULE_LAZY = 1, /* lazy binding */
+ XML_MODULE_LOCAL= 2 /* local binding */
+} xmlModuleOption;
+
+XMLPUBFUN xmlModulePtr XMLCALL xmlModuleOpen (const char *filename,
+ int options);
+
+XMLPUBFUN int XMLCALL xmlModuleSymbol (xmlModulePtr module,
+ const char* name,
+ void **result);
+
+XMLPUBFUN int XMLCALL xmlModuleClose (xmlModulePtr module);
+
+XMLPUBFUN int XMLCALL xmlModuleFree (xmlModulePtr module);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_MODULES_ENABLED */
+
+#endif /*__XML_MODULE_H__ */
diff --git a/libxml2/include/libxml/xmlreader.h b/libxml2/include/libxml/xmlreader.h
new file mode 100644
index 000000000..2c99e3a76
--- /dev/null
+++ b/libxml2/include/libxml/xmlreader.h
@@ -0,0 +1,428 @@
+/*
+ * Summary: the XMLReader implementation
+ * Description: API of the XML streaming API based on C# interfaces.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XMLREADER_H__
+#define __XML_XMLREADER_H__
+
+#include <libxml/xmlversion.h>
+#include <libxml/tree.h>
+#include <libxml/xmlIO.h>
+#ifdef LIBXML_SCHEMAS_ENABLED
+#include <libxml/relaxng.h>
+#include <libxml/xmlschemas.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * xmlParserSeverities:
+ *
+ * How severe an error callback is when the per-reader error callback API
+ * is used.
+ */
+typedef enum {
+ XML_PARSER_SEVERITY_VALIDITY_WARNING = 1,
+ XML_PARSER_SEVERITY_VALIDITY_ERROR = 2,
+ XML_PARSER_SEVERITY_WARNING = 3,
+ XML_PARSER_SEVERITY_ERROR = 4
+} xmlParserSeverities;
+
+#ifdef LIBXML_READER_ENABLED
+
+/**
+ * xmlTextReaderMode:
+ *
+ * Internal state values for the reader.
+ */
+typedef enum {
+ XML_TEXTREADER_MODE_INITIAL = 0,
+ XML_TEXTREADER_MODE_INTERACTIVE = 1,
+ XML_TEXTREADER_MODE_ERROR = 2,
+ XML_TEXTREADER_MODE_EOF =3,
+ XML_TEXTREADER_MODE_CLOSED = 4,
+ XML_TEXTREADER_MODE_READING = 5
+} xmlTextReaderMode;
+
+/**
+ * xmlParserProperties:
+ *
+ * Some common options to use with xmlTextReaderSetParserProp, but it
+ * is better to use xmlParserOption and the xmlReaderNewxxx and
+ * xmlReaderForxxx APIs now.
+ */
+typedef enum {
+ XML_PARSER_LOADDTD = 1,
+ XML_PARSER_DEFAULTATTRS = 2,
+ XML_PARSER_VALIDATE = 3,
+ XML_PARSER_SUBST_ENTITIES = 4
+} xmlParserProperties;
+
+/**
+ * xmlReaderTypes:
+ *
+ * Predefined constants for the different types of nodes.
+ */
+typedef enum {
+ XML_READER_TYPE_NONE = 0,
+ XML_READER_TYPE_ELEMENT = 1,
+ XML_READER_TYPE_ATTRIBUTE = 2,
+ XML_READER_TYPE_TEXT = 3,
+ XML_READER_TYPE_CDATA = 4,
+ XML_READER_TYPE_ENTITY_REFERENCE = 5,
+ XML_READER_TYPE_ENTITY = 6,
+ XML_READER_TYPE_PROCESSING_INSTRUCTION = 7,
+ XML_READER_TYPE_COMMENT = 8,
+ XML_READER_TYPE_DOCUMENT = 9,
+ XML_READER_TYPE_DOCUMENT_TYPE = 10,
+ XML_READER_TYPE_DOCUMENT_FRAGMENT = 11,
+ XML_READER_TYPE_NOTATION = 12,
+ XML_READER_TYPE_WHITESPACE = 13,
+ XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14,
+ XML_READER_TYPE_END_ELEMENT = 15,
+ XML_READER_TYPE_END_ENTITY = 16,
+ XML_READER_TYPE_XML_DECLARATION = 17
+} xmlReaderTypes;
+
+/**
+ * xmlTextReader:
+ *
+ * Structure for an xmlReader context.
+ */
+typedef struct _xmlTextReader xmlTextReader;
+
+/**
+ * xmlTextReaderPtr:
+ *
+ * Pointer to an xmlReader context.
+ */
+typedef xmlTextReader *xmlTextReaderPtr;
+
+/*
+ * Constructors & Destructor
+ */
+XMLPUBFUN xmlTextReaderPtr XMLCALL
+ xmlNewTextReader (xmlParserInputBufferPtr input,
+ const char *URI);
+XMLPUBFUN xmlTextReaderPtr XMLCALL
+ xmlNewTextReaderFilename(const char *URI);
+
+XMLPUBFUN void XMLCALL
+ xmlFreeTextReader (xmlTextReaderPtr reader);
+
+XMLPUBFUN int XMLCALL
+ xmlTextReaderSetup(xmlTextReaderPtr reader,
+ xmlParserInputBufferPtr input, const char *URL,
+ const char *encoding, int options);
+
+/*
+ * Iterators
+ */
+XMLPUBFUN int XMLCALL
+ xmlTextReaderRead (xmlTextReaderPtr reader);
+
+#ifdef LIBXML_WRITER_ENABLED
+XMLPUBFUN xmlChar * XMLCALL
+ xmlTextReaderReadInnerXml(xmlTextReaderPtr reader);
+
+XMLPUBFUN xmlChar * XMLCALL
+ xmlTextReaderReadOuterXml(xmlTextReaderPtr reader);
+#endif
+
+XMLPUBFUN xmlChar * XMLCALL
+ xmlTextReaderReadString (xmlTextReaderPtr reader);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderReadAttributeValue(xmlTextReaderPtr reader);
+
+/*
+ * Attributes of the node
+ */
+XMLPUBFUN int XMLCALL
+ xmlTextReaderAttributeCount(xmlTextReaderPtr reader);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderDepth (xmlTextReaderPtr reader);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderHasAttributes(xmlTextReaderPtr reader);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderHasValue(xmlTextReaderPtr reader);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderIsDefault (xmlTextReaderPtr reader);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderNodeType (xmlTextReaderPtr reader);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderQuoteChar (xmlTextReaderPtr reader);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderReadState (xmlTextReaderPtr reader);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader);
+
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlTextReaderConstBaseUri (xmlTextReaderPtr reader);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlTextReaderConstLocalName (xmlTextReaderPtr reader);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlTextReaderConstName (xmlTextReaderPtr reader);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlTextReaderConstNamespaceUri(xmlTextReaderPtr reader);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlTextReaderConstPrefix (xmlTextReaderPtr reader);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlTextReaderConstXmlLang (xmlTextReaderPtr reader);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlTextReaderConstString (xmlTextReaderPtr reader,
+ const xmlChar *str);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlTextReaderConstValue (xmlTextReaderPtr reader);
+
+/*
+ * use the Const version of the routine for
+ * better performance and simpler code
+ */
+XMLPUBFUN xmlChar * XMLCALL
+ xmlTextReaderBaseUri (xmlTextReaderPtr reader);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlTextReaderLocalName (xmlTextReaderPtr reader);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlTextReaderName (xmlTextReaderPtr reader);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlTextReaderNamespaceUri(xmlTextReaderPtr reader);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlTextReaderPrefix (xmlTextReaderPtr reader);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlTextReaderXmlLang (xmlTextReaderPtr reader);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlTextReaderValue (xmlTextReaderPtr reader);
+
+/*
+ * Methods of the XmlTextReader
+ */
+XMLPUBFUN int XMLCALL
+ xmlTextReaderClose (xmlTextReaderPtr reader);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlTextReaderGetAttributeNo (xmlTextReaderPtr reader,
+ int no);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlTextReaderGetAttribute (xmlTextReaderPtr reader,
+ const xmlChar *name);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlTextReaderGetAttributeNs (xmlTextReaderPtr reader,
+ const xmlChar *localName,
+ const xmlChar *namespaceURI);
+XMLPUBFUN xmlParserInputBufferPtr XMLCALL
+ xmlTextReaderGetRemainder (xmlTextReaderPtr reader);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlTextReaderLookupNamespace(xmlTextReaderPtr reader,
+ const xmlChar *prefix);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderMoveToAttributeNo(xmlTextReaderPtr reader,
+ int no);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderMoveToAttribute(xmlTextReaderPtr reader,
+ const xmlChar *name);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderMoveToAttributeNs(xmlTextReaderPtr reader,
+ const xmlChar *localName,
+ const xmlChar *namespaceURI);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderMoveToFirstAttribute(xmlTextReaderPtr reader);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderMoveToNextAttribute(xmlTextReaderPtr reader);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderMoveToElement (xmlTextReaderPtr reader);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderNormalization (xmlTextReaderPtr reader);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlTextReaderConstEncoding (xmlTextReaderPtr reader);
+
+/*
+ * Extensions
+ */
+XMLPUBFUN int XMLCALL
+ xmlTextReaderSetParserProp (xmlTextReaderPtr reader,
+ int prop,
+ int value);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderGetParserProp (xmlTextReaderPtr reader,
+ int prop);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlTextReaderCurrentNode (xmlTextReaderPtr reader);
+
+XMLPUBFUN int XMLCALL
+ xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader);
+
+XMLPUBFUN int XMLCALL
+ xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader);
+
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlTextReaderPreserve (xmlTextReaderPtr reader);
+#ifdef LIBXML_PATTERN_ENABLED
+XMLPUBFUN int XMLCALL
+ xmlTextReaderPreservePattern(xmlTextReaderPtr reader,
+ const xmlChar *pattern,
+ const xmlChar **namespaces);
+#endif /* LIBXML_PATTERN_ENABLED */
+XMLPUBFUN xmlDocPtr XMLCALL
+ xmlTextReaderCurrentDoc (xmlTextReaderPtr reader);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlTextReaderExpand (xmlTextReaderPtr reader);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderNext (xmlTextReaderPtr reader);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderNextSibling (xmlTextReaderPtr reader);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderIsValid (xmlTextReaderPtr reader);
+#ifdef LIBXML_SCHEMAS_ENABLED
+XMLPUBFUN int XMLCALL
+ xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader,
+ const char *rng);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderRelaxNGValidateCtxt(xmlTextReaderPtr reader,
+ xmlRelaxNGValidCtxtPtr ctxt,
+ int options);
+
+XMLPUBFUN int XMLCALL
+ xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader,
+ xmlRelaxNGPtr schema);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderSchemaValidate (xmlTextReaderPtr reader,
+ const char *xsd);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderSchemaValidateCtxt(xmlTextReaderPtr reader,
+ xmlSchemaValidCtxtPtr ctxt,
+ int options);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderSetSchema (xmlTextReaderPtr reader,
+ xmlSchemaPtr schema);
+#endif
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderStandalone (xmlTextReaderPtr reader);
+
+
+/*
+ * Index lookup
+ */
+XMLPUBFUN long XMLCALL
+ xmlTextReaderByteConsumed (xmlTextReaderPtr reader);
+
+/*
+ * New more complete APIs for simpler creation and reuse of readers
+ */
+XMLPUBFUN xmlTextReaderPtr XMLCALL
+ xmlReaderWalker (xmlDocPtr doc);
+XMLPUBFUN xmlTextReaderPtr XMLCALL
+ xmlReaderForDoc (const xmlChar * cur,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN xmlTextReaderPtr XMLCALL
+ xmlReaderForFile (const char *filename,
+ const char *encoding,
+ int options);
+XMLPUBFUN xmlTextReaderPtr XMLCALL
+ xmlReaderForMemory (const char *buffer,
+ int size,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN xmlTextReaderPtr XMLCALL
+ xmlReaderForFd (int fd,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN xmlTextReaderPtr XMLCALL
+ xmlReaderForIO (xmlInputReadCallback ioread,
+ xmlInputCloseCallback ioclose,
+ void *ioctx,
+ const char *URL,
+ const char *encoding,
+ int options);
+
+XMLPUBFUN int XMLCALL
+ xmlReaderNewWalker (xmlTextReaderPtr reader,
+ xmlDocPtr doc);
+XMLPUBFUN int XMLCALL
+ xmlReaderNewDoc (xmlTextReaderPtr reader,
+ const xmlChar * cur,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN int XMLCALL
+ xmlReaderNewFile (xmlTextReaderPtr reader,
+ const char *filename,
+ const char *encoding,
+ int options);
+XMLPUBFUN int XMLCALL
+ xmlReaderNewMemory (xmlTextReaderPtr reader,
+ const char *buffer,
+ int size,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN int XMLCALL
+ xmlReaderNewFd (xmlTextReaderPtr reader,
+ int fd,
+ const char *URL,
+ const char *encoding,
+ int options);
+XMLPUBFUN int XMLCALL
+ xmlReaderNewIO (xmlTextReaderPtr reader,
+ xmlInputReadCallback ioread,
+ xmlInputCloseCallback ioclose,
+ void *ioctx,
+ const char *URL,
+ const char *encoding,
+ int options);
+/*
+ * Error handling extensions
+ */
+typedef void * xmlTextReaderLocatorPtr;
+
+/**
+ * xmlTextReaderErrorFunc:
+ * @arg: the user argument
+ * @msg: the message
+ * @severity: the severity of the error
+ * @locator: a locator indicating where the error occured
+ *
+ * Signature of an error callback from a reader parser
+ */
+typedef void (XMLCALL *xmlTextReaderErrorFunc)(void *arg,
+ const char *msg,
+ xmlParserSeverities severity,
+ xmlTextReaderLocatorPtr locator);
+XMLPUBFUN int XMLCALL
+ xmlTextReaderLocatorLineNumber(xmlTextReaderLocatorPtr locator);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlTextReaderLocatorBaseURI (xmlTextReaderLocatorPtr locator);
+XMLPUBFUN void XMLCALL
+ xmlTextReaderSetErrorHandler(xmlTextReaderPtr reader,
+ xmlTextReaderErrorFunc f,
+ void *arg);
+XMLPUBFUN void XMLCALL
+ xmlTextReaderSetStructuredErrorHandler(xmlTextReaderPtr reader,
+ xmlStructuredErrorFunc f,
+ void *arg);
+XMLPUBFUN void XMLCALL
+ xmlTextReaderGetErrorHandler(xmlTextReaderPtr reader,
+ xmlTextReaderErrorFunc *f,
+ void **arg);
+
+#endif /* LIBXML_READER_ENABLED */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_XMLREADER_H__ */
+
diff --git a/libxml2/include/libxml/xmlregexp.h b/libxml2/include/libxml/xmlregexp.h
new file mode 100644
index 000000000..7009645a9
--- /dev/null
+++ b/libxml2/include/libxml/xmlregexp.h
@@ -0,0 +1,222 @@
+/*
+ * Summary: regular expressions handling
+ * Description: basic API for libxml regular expressions handling used
+ * for XML Schemas and validation.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_REGEXP_H__
+#define __XML_REGEXP_H__
+
+#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_REGEXP_ENABLED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * xmlRegexpPtr:
+ *
+ * A libxml regular expression, they can actually be far more complex
+ * thank the POSIX regex expressions.
+ */
+typedef struct _xmlRegexp xmlRegexp;
+typedef xmlRegexp *xmlRegexpPtr;
+
+/**
+ * xmlRegExecCtxtPtr:
+ *
+ * A libxml progressive regular expression evaluation context
+ */
+typedef struct _xmlRegExecCtxt xmlRegExecCtxt;
+typedef xmlRegExecCtxt *xmlRegExecCtxtPtr;
+
+#ifdef __cplusplus
+}
+#endif
+#include <libxml/tree.h>
+#include <libxml/dict.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * The POSIX like API
+ */
+XMLPUBFUN xmlRegexpPtr XMLCALL
+ xmlRegexpCompile (const xmlChar *regexp);
+XMLPUBFUN void XMLCALL xmlRegFreeRegexp(xmlRegexpPtr regexp);
+XMLPUBFUN int XMLCALL
+ xmlRegexpExec (xmlRegexpPtr comp,
+ const xmlChar *value);
+XMLPUBFUN void XMLCALL
+ xmlRegexpPrint (FILE *output,
+ xmlRegexpPtr regexp);
+XMLPUBFUN int XMLCALL
+ xmlRegexpIsDeterminist(xmlRegexpPtr comp);
+
+/**
+ * xmlRegExecCallbacks:
+ * @exec: the regular expression context
+ * @token: the current token string
+ * @transdata: transition data
+ * @inputdata: input data
+ *
+ * Callback function when doing a transition in the automata
+ */
+typedef void (*xmlRegExecCallbacks) (xmlRegExecCtxtPtr exec,
+ const xmlChar *token,
+ void *transdata,
+ void *inputdata);
+
+/*
+ * The progressive API
+ */
+XMLPUBFUN xmlRegExecCtxtPtr XMLCALL
+ xmlRegNewExecCtxt (xmlRegexpPtr comp,
+ xmlRegExecCallbacks callback,
+ void *data);
+XMLPUBFUN void XMLCALL
+ xmlRegFreeExecCtxt (xmlRegExecCtxtPtr exec);
+XMLPUBFUN int XMLCALL
+ xmlRegExecPushString(xmlRegExecCtxtPtr exec,
+ const xmlChar *value,
+ void *data);
+XMLPUBFUN int XMLCALL
+ xmlRegExecPushString2(xmlRegExecCtxtPtr exec,
+ const xmlChar *value,
+ const xmlChar *value2,
+ void *data);
+
+XMLPUBFUN int XMLCALL
+ xmlRegExecNextValues(xmlRegExecCtxtPtr exec,
+ int *nbval,
+ int *nbneg,
+ xmlChar **values,
+ int *terminal);
+XMLPUBFUN int XMLCALL
+ xmlRegExecErrInfo (xmlRegExecCtxtPtr exec,
+ const xmlChar **string,
+ int *nbval,
+ int *nbneg,
+ xmlChar **values,
+ int *terminal);
+#ifdef LIBXML_EXPR_ENABLED
+/*
+ * Formal regular expression handling
+ * Its goal is to do some formal work on content models
+ */
+
+/* expressions are used within a context */
+typedef struct _xmlExpCtxt xmlExpCtxt;
+typedef xmlExpCtxt *xmlExpCtxtPtr;
+
+XMLPUBFUN void XMLCALL
+ xmlExpFreeCtxt (xmlExpCtxtPtr ctxt);
+XMLPUBFUN xmlExpCtxtPtr XMLCALL
+ xmlExpNewCtxt (int maxNodes,
+ xmlDictPtr dict);
+
+XMLPUBFUN int XMLCALL
+ xmlExpCtxtNbNodes(xmlExpCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL
+ xmlExpCtxtNbCons(xmlExpCtxtPtr ctxt);
+
+/* Expressions are trees but the tree is opaque */
+typedef struct _xmlExpNode xmlExpNode;
+typedef xmlExpNode *xmlExpNodePtr;
+
+typedef enum {
+ XML_EXP_EMPTY = 0,
+ XML_EXP_FORBID = 1,
+ XML_EXP_ATOM = 2,
+ XML_EXP_SEQ = 3,
+ XML_EXP_OR = 4,
+ XML_EXP_COUNT = 5
+} xmlExpNodeType;
+
+/*
+ * 2 core expressions shared by all for the empty language set
+ * and for the set with just the empty token
+ */
+XMLPUBVAR xmlExpNodePtr forbiddenExp;
+XMLPUBVAR xmlExpNodePtr emptyExp;
+
+/*
+ * Expressions are reference counted internally
+ */
+XMLPUBFUN void XMLCALL
+ xmlExpFree (xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr expr);
+XMLPUBFUN void XMLCALL
+ xmlExpRef (xmlExpNodePtr expr);
+
+/*
+ * constructors can be either manual or from a string
+ */
+XMLPUBFUN xmlExpNodePtr XMLCALL
+ xmlExpParse (xmlExpCtxtPtr ctxt,
+ const char *expr);
+XMLPUBFUN xmlExpNodePtr XMLCALL
+ xmlExpNewAtom (xmlExpCtxtPtr ctxt,
+ const xmlChar *name,
+ int len);
+XMLPUBFUN xmlExpNodePtr XMLCALL
+ xmlExpNewOr (xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr left,
+ xmlExpNodePtr right);
+XMLPUBFUN xmlExpNodePtr XMLCALL
+ xmlExpNewSeq (xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr left,
+ xmlExpNodePtr right);
+XMLPUBFUN xmlExpNodePtr XMLCALL
+ xmlExpNewRange (xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr subset,
+ int min,
+ int max);
+/*
+ * The really interesting APIs
+ */
+XMLPUBFUN int XMLCALL
+ xmlExpIsNillable(xmlExpNodePtr expr);
+XMLPUBFUN int XMLCALL
+ xmlExpMaxToken (xmlExpNodePtr expr);
+XMLPUBFUN int XMLCALL
+ xmlExpGetLanguage(xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr expr,
+ const xmlChar**langList,
+ int len);
+XMLPUBFUN int XMLCALL
+ xmlExpGetStart (xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr expr,
+ const xmlChar**tokList,
+ int len);
+XMLPUBFUN xmlExpNodePtr XMLCALL
+ xmlExpStringDerive(xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr expr,
+ const xmlChar *str,
+ int len);
+XMLPUBFUN xmlExpNodePtr XMLCALL
+ xmlExpExpDerive (xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr expr,
+ xmlExpNodePtr sub);
+XMLPUBFUN int XMLCALL
+ xmlExpSubsume (xmlExpCtxtPtr ctxt,
+ xmlExpNodePtr expr,
+ xmlExpNodePtr sub);
+XMLPUBFUN void XMLCALL
+ xmlExpDump (xmlBufferPtr buf,
+ xmlExpNodePtr expr);
+#endif /* LIBXML_EXPR_ENABLED */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_REGEXP_ENABLED */
+
+#endif /*__XML_REGEXP_H__ */
diff --git a/libxml2/include/libxml/xmlsave.h b/libxml2/include/libxml/xmlsave.h
new file mode 100644
index 000000000..fb329b22d
--- /dev/null
+++ b/libxml2/include/libxml/xmlsave.h
@@ -0,0 +1,88 @@
+/*
+ * Summary: the XML document serializer
+ * Description: API to save document or subtree of document
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XMLSAVE_H__
+#define __XML_XMLSAVE_H__
+
+#include <libxml/xmlversion.h>
+#include <libxml/tree.h>
+#include <libxml/encoding.h>
+#include <libxml/xmlIO.h>
+
+#ifdef LIBXML_OUTPUT_ENABLED
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * xmlSaveOption:
+ *
+ * This is the set of XML save options that can be passed down
+ * to the xmlSaveToFd() and similar calls.
+ */
+typedef enum {
+ XML_SAVE_FORMAT = 1<<0, /* format save output */
+ XML_SAVE_NO_DECL = 1<<1, /* drop the xml declaration */
+ XML_SAVE_NO_EMPTY = 1<<2, /* no empty tags */
+ XML_SAVE_NO_XHTML = 1<<3, /* disable XHTML1 specific rules */
+ XML_SAVE_XHTML = 1<<4, /* force XHTML1 specific rules */
+ XML_SAVE_AS_XML = 1<<5, /* force XML serialization on HTML doc */
+ XML_SAVE_AS_HTML = 1<<6, /* force HTML serialization on XML doc */
+ XML_SAVE_WSNONSIG = 1<<7 /* format with non-significant whitespace */
+} xmlSaveOption;
+
+
+typedef struct _xmlSaveCtxt xmlSaveCtxt;
+typedef xmlSaveCtxt *xmlSaveCtxtPtr;
+
+XMLPUBFUN xmlSaveCtxtPtr XMLCALL
+ xmlSaveToFd (int fd,
+ const char *encoding,
+ int options);
+XMLPUBFUN xmlSaveCtxtPtr XMLCALL
+ xmlSaveToFilename (const char *filename,
+ const char *encoding,
+ int options);
+
+XMLPUBFUN xmlSaveCtxtPtr XMLCALL
+ xmlSaveToBuffer (xmlBufferPtr buffer,
+ const char *encoding,
+ int options);
+
+XMLPUBFUN xmlSaveCtxtPtr XMLCALL
+ xmlSaveToIO (xmlOutputWriteCallback iowrite,
+ xmlOutputCloseCallback ioclose,
+ void *ioctx,
+ const char *encoding,
+ int options);
+
+XMLPUBFUN long XMLCALL
+ xmlSaveDoc (xmlSaveCtxtPtr ctxt,
+ xmlDocPtr doc);
+XMLPUBFUN long XMLCALL
+ xmlSaveTree (xmlSaveCtxtPtr ctxt,
+ xmlNodePtr node);
+
+XMLPUBFUN int XMLCALL
+ xmlSaveFlush (xmlSaveCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL
+ xmlSaveClose (xmlSaveCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL
+ xmlSaveSetEscape (xmlSaveCtxtPtr ctxt,
+ xmlCharEncodingOutputFunc escape);
+XMLPUBFUN int XMLCALL
+ xmlSaveSetAttrEscape (xmlSaveCtxtPtr ctxt,
+ xmlCharEncodingOutputFunc escape);
+#ifdef __cplusplus
+}
+#endif
+#endif /* LIBXML_OUTPUT_ENABLED */
+#endif /* __XML_XMLSAVE_H__ */
+
+
diff --git a/libxml2/include/libxml/xmlschemas.h b/libxml2/include/libxml/xmlschemas.h
new file mode 100644
index 000000000..97930c7c3
--- /dev/null
+++ b/libxml2/include/libxml/xmlschemas.h
@@ -0,0 +1,246 @@
+/*
+ * Summary: incomplete XML Schemas structure implementation
+ * Description: interface to the XML Schemas handling and schema validity
+ * checking, it is incomplete right now.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+
+#ifndef __XML_SCHEMA_H__
+#define __XML_SCHEMA_H__
+
+#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+
+#include <libxml/tree.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * This error codes are obsolete; not used any more.
+ */
+typedef enum {
+ XML_SCHEMAS_ERR_OK = 0,
+ XML_SCHEMAS_ERR_NOROOT = 1,
+ XML_SCHEMAS_ERR_UNDECLAREDELEM,
+ XML_SCHEMAS_ERR_NOTTOPLEVEL,
+ XML_SCHEMAS_ERR_MISSING,
+ XML_SCHEMAS_ERR_WRONGELEM,
+ XML_SCHEMAS_ERR_NOTYPE,
+ XML_SCHEMAS_ERR_NOROLLBACK,
+ XML_SCHEMAS_ERR_ISABSTRACT,
+ XML_SCHEMAS_ERR_NOTEMPTY,
+ XML_SCHEMAS_ERR_ELEMCONT,
+ XML_SCHEMAS_ERR_HAVEDEFAULT,
+ XML_SCHEMAS_ERR_NOTNILLABLE,
+ XML_SCHEMAS_ERR_EXTRACONTENT,
+ XML_SCHEMAS_ERR_INVALIDATTR,
+ XML_SCHEMAS_ERR_INVALIDELEM,
+ XML_SCHEMAS_ERR_NOTDETERMINIST,
+ XML_SCHEMAS_ERR_CONSTRUCT,
+ XML_SCHEMAS_ERR_INTERNAL,
+ XML_SCHEMAS_ERR_NOTSIMPLE,
+ XML_SCHEMAS_ERR_ATTRUNKNOWN,
+ XML_SCHEMAS_ERR_ATTRINVALID,
+ XML_SCHEMAS_ERR_VALUE,
+ XML_SCHEMAS_ERR_FACET,
+ XML_SCHEMAS_ERR_,
+ XML_SCHEMAS_ERR_XXX
+} xmlSchemaValidError;
+
+/*
+* ATTENTION: Change xmlSchemaSetValidOptions's check
+* for invalid values, if adding to the validation
+* options below.
+*/
+/**
+ * xmlSchemaValidOption:
+ *
+ * This is the set of XML Schema validation options.
+ */
+typedef enum {
+ XML_SCHEMA_VAL_VC_I_CREATE = 1<<0
+ /* Default/fixed: create an attribute node
+ * or an element's text node on the instance.
+ */
+} xmlSchemaValidOption;
+
+/*
+ XML_SCHEMA_VAL_XSI_ASSEMBLE = 1<<1,
+ * assemble schemata using
+ * xsi:schemaLocation and
+ * xsi:noNamespaceSchemaLocation
+*/
+
+/**
+ * The schemas related types are kept internal
+ */
+typedef struct _xmlSchema xmlSchema;
+typedef xmlSchema *xmlSchemaPtr;
+
+/**
+ * xmlSchemaValidityErrorFunc:
+ * @ctx: the validation context
+ * @msg: the message
+ * @...: extra arguments
+ *
+ * Signature of an error callback from an XSD validation
+ */
+typedef void (XMLCDECL *xmlSchemaValidityErrorFunc)
+ (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
+
+/**
+ * xmlSchemaValidityWarningFunc:
+ * @ctx: the validation context
+ * @msg: the message
+ * @...: extra arguments
+ *
+ * Signature of a warning callback from an XSD validation
+ */
+typedef void (XMLCDECL *xmlSchemaValidityWarningFunc)
+ (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
+
+/**
+ * A schemas validation context
+ */
+typedef struct _xmlSchemaParserCtxt xmlSchemaParserCtxt;
+typedef xmlSchemaParserCtxt *xmlSchemaParserCtxtPtr;
+
+typedef struct _xmlSchemaValidCtxt xmlSchemaValidCtxt;
+typedef xmlSchemaValidCtxt *xmlSchemaValidCtxtPtr;
+
+/**
+ * xmlSchemaValidityLocatorFunc:
+ * @ctx: user provided context
+ * @file: returned file information
+ * @line: returned line information
+ *
+ * A schemas validation locator, a callback called by the validator.
+ * This is used when file or node informations are not available
+ * to find out what file and line number are affected
+ *
+ * Returns: 0 in case of success and -1 in case of error
+ */
+
+typedef int (XMLCDECL *xmlSchemaValidityLocatorFunc) (void *ctx,
+ const char **file, unsigned long *line);
+
+/*
+ * Interfaces for parsing.
+ */
+XMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL
+ xmlSchemaNewParserCtxt (const char *URL);
+XMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL
+ xmlSchemaNewMemParserCtxt (const char *buffer,
+ int size);
+XMLPUBFUN xmlSchemaParserCtxtPtr XMLCALL
+ xmlSchemaNewDocParserCtxt (xmlDocPtr doc);
+XMLPUBFUN void XMLCALL
+ xmlSchemaFreeParserCtxt (xmlSchemaParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlSchemaSetParserErrors (xmlSchemaParserCtxtPtr ctxt,
+ xmlSchemaValidityErrorFunc err,
+ xmlSchemaValidityWarningFunc warn,
+ void *ctx);
+XMLPUBFUN void XMLCALL
+ xmlSchemaSetParserStructuredErrors(xmlSchemaParserCtxtPtr ctxt,
+ xmlStructuredErrorFunc serror,
+ void *ctx);
+XMLPUBFUN int XMLCALL
+ xmlSchemaGetParserErrors(xmlSchemaParserCtxtPtr ctxt,
+ xmlSchemaValidityErrorFunc * err,
+ xmlSchemaValidityWarningFunc * warn,
+ void **ctx);
+XMLPUBFUN int XMLCALL
+ xmlSchemaIsValid (xmlSchemaValidCtxtPtr ctxt);
+
+XMLPUBFUN xmlSchemaPtr XMLCALL
+ xmlSchemaParse (xmlSchemaParserCtxtPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlSchemaFree (xmlSchemaPtr schema);
+#ifdef LIBXML_OUTPUT_ENABLED
+XMLPUBFUN void XMLCALL
+ xmlSchemaDump (FILE *output,
+ xmlSchemaPtr schema);
+#endif /* LIBXML_OUTPUT_ENABLED */
+/*
+ * Interfaces for validating
+ */
+XMLPUBFUN void XMLCALL
+ xmlSchemaSetValidErrors (xmlSchemaValidCtxtPtr ctxt,
+ xmlSchemaValidityErrorFunc err,
+ xmlSchemaValidityWarningFunc warn,
+ void *ctx);
+XMLPUBFUN void XMLCALL
+ xmlSchemaSetValidStructuredErrors(xmlSchemaValidCtxtPtr ctxt,
+ xmlStructuredErrorFunc serror,
+ void *ctx);
+XMLPUBFUN int XMLCALL
+ xmlSchemaGetValidErrors (xmlSchemaValidCtxtPtr ctxt,
+ xmlSchemaValidityErrorFunc *err,
+ xmlSchemaValidityWarningFunc *warn,
+ void **ctx);
+XMLPUBFUN int XMLCALL
+ xmlSchemaSetValidOptions (xmlSchemaValidCtxtPtr ctxt,
+ int options);
+XMLPUBFUN void XMLCALL
+ xmlSchemaValidateSetFilename(xmlSchemaValidCtxtPtr vctxt,
+ const char *filename);
+XMLPUBFUN int XMLCALL
+ xmlSchemaValidCtxtGetOptions(xmlSchemaValidCtxtPtr ctxt);
+
+XMLPUBFUN xmlSchemaValidCtxtPtr XMLCALL
+ xmlSchemaNewValidCtxt (xmlSchemaPtr schema);
+XMLPUBFUN void XMLCALL
+ xmlSchemaFreeValidCtxt (xmlSchemaValidCtxtPtr ctxt);
+XMLPUBFUN int XMLCALL
+ xmlSchemaValidateDoc (xmlSchemaValidCtxtPtr ctxt,
+ xmlDocPtr instance);
+XMLPUBFUN int XMLCALL
+ xmlSchemaValidateOneElement (xmlSchemaValidCtxtPtr ctxt,
+ xmlNodePtr elem);
+XMLPUBFUN int XMLCALL
+ xmlSchemaValidateStream (xmlSchemaValidCtxtPtr ctxt,
+ xmlParserInputBufferPtr input,
+ xmlCharEncoding enc,
+ xmlSAXHandlerPtr sax,
+ void *user_data);
+XMLPUBFUN int XMLCALL
+ xmlSchemaValidateFile (xmlSchemaValidCtxtPtr ctxt,
+ const char * filename,
+ int options);
+
+XMLPUBFUN xmlParserCtxtPtr XMLCALL
+ xmlSchemaValidCtxtGetParserCtxt(xmlSchemaValidCtxtPtr ctxt);
+
+/*
+ * Interface to insert Schemas SAX validation in a SAX stream
+ */
+typedef struct _xmlSchemaSAXPlug xmlSchemaSAXPlugStruct;
+typedef xmlSchemaSAXPlugStruct *xmlSchemaSAXPlugPtr;
+
+XMLPUBFUN xmlSchemaSAXPlugPtr XMLCALL
+ xmlSchemaSAXPlug (xmlSchemaValidCtxtPtr ctxt,
+ xmlSAXHandlerPtr *sax,
+ void **user_data);
+XMLPUBFUN int XMLCALL
+ xmlSchemaSAXUnplug (xmlSchemaSAXPlugPtr plug);
+
+
+XMLPUBFUN void XMLCALL
+ xmlSchemaValidateSetLocator (xmlSchemaValidCtxtPtr vctxt,
+ xmlSchemaValidityLocatorFunc f,
+ void *ctxt);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_SCHEMAS_ENABLED */
+#endif /* __XML_SCHEMA_H__ */
diff --git a/libxml2/include/libxml/xmlschemastypes.h b/libxml2/include/libxml/xmlschemastypes.h
new file mode 100644
index 000000000..35d48d414
--- /dev/null
+++ b/libxml2/include/libxml/xmlschemastypes.h
@@ -0,0 +1,151 @@
+/*
+ * Summary: implementation of XML Schema Datatypes
+ * Description: module providing the XML Schema Datatypes implementation
+ * both definition and validity checking
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+
+#ifndef __XML_SCHEMA_TYPES_H__
+#define __XML_SCHEMA_TYPES_H__
+
+#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_SCHEMAS_ENABLED
+
+#include <libxml/schemasInternals.h>
+#include <libxml/xmlschemas.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+ XML_SCHEMA_WHITESPACE_UNKNOWN = 0,
+ XML_SCHEMA_WHITESPACE_PRESERVE = 1,
+ XML_SCHEMA_WHITESPACE_REPLACE = 2,
+ XML_SCHEMA_WHITESPACE_COLLAPSE = 3
+} xmlSchemaWhitespaceValueType;
+
+XMLPUBFUN void XMLCALL
+ xmlSchemaInitTypes (void);
+XMLPUBFUN void XMLCALL
+ xmlSchemaCleanupTypes (void);
+XMLPUBFUN xmlSchemaTypePtr XMLCALL
+ xmlSchemaGetPredefinedType (const xmlChar *name,
+ const xmlChar *ns);
+XMLPUBFUN int XMLCALL
+ xmlSchemaValidatePredefinedType (xmlSchemaTypePtr type,
+ const xmlChar *value,
+ xmlSchemaValPtr *val);
+XMLPUBFUN int XMLCALL
+ xmlSchemaValPredefTypeNode (xmlSchemaTypePtr type,
+ const xmlChar *value,
+ xmlSchemaValPtr *val,
+ xmlNodePtr node);
+XMLPUBFUN int XMLCALL
+ xmlSchemaValidateFacet (xmlSchemaTypePtr base,
+ xmlSchemaFacetPtr facet,
+ const xmlChar *value,
+ xmlSchemaValPtr val);
+XMLPUBFUN int XMLCALL
+ xmlSchemaValidateFacetWhtsp (xmlSchemaFacetPtr facet,
+ xmlSchemaWhitespaceValueType fws,
+ xmlSchemaValType valType,
+ const xmlChar *value,
+ xmlSchemaValPtr val,
+ xmlSchemaWhitespaceValueType ws);
+XMLPUBFUN void XMLCALL
+ xmlSchemaFreeValue (xmlSchemaValPtr val);
+XMLPUBFUN xmlSchemaFacetPtr XMLCALL
+ xmlSchemaNewFacet (void);
+XMLPUBFUN int XMLCALL
+ xmlSchemaCheckFacet (xmlSchemaFacetPtr facet,
+ xmlSchemaTypePtr typeDecl,
+ xmlSchemaParserCtxtPtr ctxt,
+ const xmlChar *name);
+XMLPUBFUN void XMLCALL
+ xmlSchemaFreeFacet (xmlSchemaFacetPtr facet);
+XMLPUBFUN int XMLCALL
+ xmlSchemaCompareValues (xmlSchemaValPtr x,
+ xmlSchemaValPtr y);
+XMLPUBFUN xmlSchemaTypePtr XMLCALL
+ xmlSchemaGetBuiltInListSimpleTypeItemType (xmlSchemaTypePtr type);
+XMLPUBFUN int XMLCALL
+ xmlSchemaValidateListSimpleTypeFacet (xmlSchemaFacetPtr facet,
+ const xmlChar *value,
+ unsigned long actualLen,
+ unsigned long *expectedLen);
+XMLPUBFUN xmlSchemaTypePtr XMLCALL
+ xmlSchemaGetBuiltInType (xmlSchemaValType type);
+XMLPUBFUN int XMLCALL
+ xmlSchemaIsBuiltInTypeFacet (xmlSchemaTypePtr type,
+ int facetType);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlSchemaCollapseString (const xmlChar *value);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlSchemaWhiteSpaceReplace (const xmlChar *value);
+XMLPUBFUN unsigned long XMLCALL
+ xmlSchemaGetFacetValueAsULong (xmlSchemaFacetPtr facet);
+XMLPUBFUN int XMLCALL
+ xmlSchemaValidateLengthFacet (xmlSchemaTypePtr type,
+ xmlSchemaFacetPtr facet,
+ const xmlChar *value,
+ xmlSchemaValPtr val,
+ unsigned long *length);
+XMLPUBFUN int XMLCALL
+ xmlSchemaValidateLengthFacetWhtsp(xmlSchemaFacetPtr facet,
+ xmlSchemaValType valType,
+ const xmlChar *value,
+ xmlSchemaValPtr val,
+ unsigned long *length,
+ xmlSchemaWhitespaceValueType ws);
+XMLPUBFUN int XMLCALL
+ xmlSchemaValPredefTypeNodeNoNorm(xmlSchemaTypePtr type,
+ const xmlChar *value,
+ xmlSchemaValPtr *val,
+ xmlNodePtr node);
+XMLPUBFUN int XMLCALL
+ xmlSchemaGetCanonValue (xmlSchemaValPtr val,
+ const xmlChar **retValue);
+XMLPUBFUN int XMLCALL
+ xmlSchemaGetCanonValueWhtsp (xmlSchemaValPtr val,
+ const xmlChar **retValue,
+ xmlSchemaWhitespaceValueType ws);
+XMLPUBFUN int XMLCALL
+ xmlSchemaValueAppend (xmlSchemaValPtr prev,
+ xmlSchemaValPtr cur);
+XMLPUBFUN xmlSchemaValPtr XMLCALL
+ xmlSchemaValueGetNext (xmlSchemaValPtr cur);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlSchemaValueGetAsString (xmlSchemaValPtr val);
+XMLPUBFUN int XMLCALL
+ xmlSchemaValueGetAsBoolean (xmlSchemaValPtr val);
+XMLPUBFUN xmlSchemaValPtr XMLCALL
+ xmlSchemaNewStringValue (xmlSchemaValType type,
+ const xmlChar *value);
+XMLPUBFUN xmlSchemaValPtr XMLCALL
+ xmlSchemaNewNOTATIONValue (const xmlChar *name,
+ const xmlChar *ns);
+XMLPUBFUN xmlSchemaValPtr XMLCALL
+ xmlSchemaNewQNameValue (const xmlChar *namespaceName,
+ const xmlChar *localName);
+XMLPUBFUN int XMLCALL
+ xmlSchemaCompareValuesWhtsp (xmlSchemaValPtr x,
+ xmlSchemaWhitespaceValueType xws,
+ xmlSchemaValPtr y,
+ xmlSchemaWhitespaceValueType yws);
+XMLPUBFUN xmlSchemaValPtr XMLCALL
+ xmlSchemaCopyValue (xmlSchemaValPtr val);
+XMLPUBFUN xmlSchemaValType XMLCALL
+ xmlSchemaGetValType (xmlSchemaValPtr val);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_SCHEMAS_ENABLED */
+#endif /* __XML_SCHEMA_TYPES_H__ */
diff --git a/libxml2/include/libxml/xmlstring.h b/libxml2/include/libxml/xmlstring.h
new file mode 100644
index 000000000..203623658
--- /dev/null
+++ b/libxml2/include/libxml/xmlstring.h
@@ -0,0 +1,140 @@
+/*
+ * Summary: set of routines to process strings
+ * Description: type and interfaces needed for the internal string handling
+ * of the library, especially UTF8 processing.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_STRING_H__
+#define __XML_STRING_H__
+
+#include <stdarg.h>
+#include <libxml/xmlversion.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * xmlChar:
+ *
+ * This is a basic byte in an UTF-8 encoded string.
+ * It's unsigned allowing to pinpoint case where char * are assigned
+ * to xmlChar * (possibly making serialization back impossible).
+ */
+typedef unsigned char xmlChar;
+
+/**
+ * BAD_CAST:
+ *
+ * Macro to cast a string to an xmlChar * when one know its safe.
+ */
+#define BAD_CAST (xmlChar *)
+
+/*
+ * xmlChar handling
+ */
+XMLPUBFUN xmlChar * XMLCALL
+ xmlStrdup (const xmlChar *cur);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlStrndup (const xmlChar *cur,
+ int len);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlCharStrndup (const char *cur,
+ int len);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlCharStrdup (const char *cur);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlStrsub (const xmlChar *str,
+ int start,
+ int len);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlStrchr (const xmlChar *str,
+ xmlChar val);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlStrstr (const xmlChar *str,
+ const xmlChar *val);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlStrcasestr (const xmlChar *str,
+ const xmlChar *val);
+XMLPUBFUN int XMLCALL
+ xmlStrcmp (const xmlChar *str1,
+ const xmlChar *str2);
+XMLPUBFUN int XMLCALL
+ xmlStrncmp (const xmlChar *str1,
+ const xmlChar *str2,
+ int len);
+XMLPUBFUN int XMLCALL
+ xmlStrcasecmp (const xmlChar *str1,
+ const xmlChar *str2);
+XMLPUBFUN int XMLCALL
+ xmlStrncasecmp (const xmlChar *str1,
+ const xmlChar *str2,
+ int len);
+XMLPUBFUN int XMLCALL
+ xmlStrEqual (const xmlChar *str1,
+ const xmlChar *str2);
+XMLPUBFUN int XMLCALL
+ xmlStrQEqual (const xmlChar *pref,
+ const xmlChar *name,
+ const xmlChar *str);
+XMLPUBFUN int XMLCALL
+ xmlStrlen (const xmlChar *str);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlStrcat (xmlChar *cur,
+ const xmlChar *add);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlStrncat (xmlChar *cur,
+ const xmlChar *add,
+ int len);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlStrncatNew (const xmlChar *str1,
+ const xmlChar *str2,
+ int len);
+XMLPUBFUN int XMLCALL
+ xmlStrPrintf (xmlChar *buf,
+ int len,
+ const xmlChar *msg,
+ ...);
+XMLPUBFUN int XMLCALL
+ xmlStrVPrintf (xmlChar *buf,
+ int len,
+ const xmlChar *msg,
+ va_list ap);
+
+XMLPUBFUN int XMLCALL
+ xmlGetUTF8Char (const unsigned char *utf,
+ int *len);
+XMLPUBFUN int XMLCALL
+ xmlCheckUTF8 (const unsigned char *utf);
+XMLPUBFUN int XMLCALL
+ xmlUTF8Strsize (const xmlChar *utf,
+ int len);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlUTF8Strndup (const xmlChar *utf,
+ int len);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlUTF8Strpos (const xmlChar *utf,
+ int pos);
+XMLPUBFUN int XMLCALL
+ xmlUTF8Strloc (const xmlChar *utf,
+ const xmlChar *utfchar);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlUTF8Strsub (const xmlChar *utf,
+ int start,
+ int len);
+XMLPUBFUN int XMLCALL
+ xmlUTF8Strlen (const xmlChar *utf);
+XMLPUBFUN int XMLCALL
+ xmlUTF8Size (const xmlChar *utf);
+XMLPUBFUN int XMLCALL
+ xmlUTF8Charcmp (const xmlChar *utf1,
+ const xmlChar *utf2);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* __XML_STRING_H__ */
diff --git a/libxml2/include/libxml/xmlunicode.h b/libxml2/include/libxml/xmlunicode.h
new file mode 100644
index 000000000..01ac8b61f
--- /dev/null
+++ b/libxml2/include/libxml/xmlunicode.h
@@ -0,0 +1,202 @@
+/*
+ * Summary: Unicode character APIs
+ * Description: API for the Unicode character APIs
+ *
+ * This file is automatically generated from the
+ * UCS description files of the Unicode Character Database
+ * http://www.unicode.org/Public/4.0-Update1/UCD-4.0.1.html
+ * using the genUnicode.py Python script.
+ *
+ * Generation date: Mon Mar 27 11:09:52 2006
+ * Sources: Blocks-4.0.1.txt UnicodeData-4.0.1.txt
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_UNICODE_H__
+#define __XML_UNICODE_H__
+
+#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_UNICODE_ENABLED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+XMLPUBFUN int XMLCALL xmlUCSIsAegeanNumbers (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsAlphabeticPresentationForms (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsArabic (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsArabicPresentationFormsA (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsArabicPresentationFormsB (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsArmenian (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsArrows (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsBasicLatin (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsBengali (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsBlockElements (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsBopomofo (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsBopomofoExtended (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsBoxDrawing (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsBraillePatterns (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsBuhid (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsByzantineMusicalSymbols (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCJKCompatibility (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCJKCompatibilityForms (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCJKCompatibilityIdeographs (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCJKCompatibilityIdeographsSupplement (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCJKRadicalsSupplement (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCJKSymbolsandPunctuation (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCJKUnifiedIdeographs (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCJKUnifiedIdeographsExtensionA (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCJKUnifiedIdeographsExtensionB (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCherokee (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCombiningDiacriticalMarks (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCombiningDiacriticalMarksforSymbols (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCombiningHalfMarks (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCombiningMarksforSymbols (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsControlPictures (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCurrencySymbols (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCypriotSyllabary (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCyrillic (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCyrillicSupplement (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsDeseret (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsDevanagari (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsDingbats (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsEnclosedAlphanumerics (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsEnclosedCJKLettersandMonths (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsEthiopic (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsGeneralPunctuation (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsGeometricShapes (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsGeorgian (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsGothic (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsGreek (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsGreekExtended (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsGreekandCoptic (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsGujarati (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsGurmukhi (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsHalfwidthandFullwidthForms (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsHangulCompatibilityJamo (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsHangulJamo (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsHangulSyllables (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsHanunoo (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsHebrew (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsHighPrivateUseSurrogates (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsHighSurrogates (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsHiragana (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsIPAExtensions (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsIdeographicDescriptionCharacters (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsKanbun (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsKangxiRadicals (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsKannada (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsKatakana (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsKatakanaPhoneticExtensions (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsKhmer (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsKhmerSymbols (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsLao (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsLatin1Supplement (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsLatinExtendedA (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsLatinExtendedB (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsLatinExtendedAdditional (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsLetterlikeSymbols (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsLimbu (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsLinearBIdeograms (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsLinearBSyllabary (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsLowSurrogates (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsMalayalam (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsMathematicalAlphanumericSymbols (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsMathematicalOperators (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsMiscellaneousMathematicalSymbolsA (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsMiscellaneousMathematicalSymbolsB (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsMiscellaneousSymbols (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsMiscellaneousSymbolsandArrows (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsMiscellaneousTechnical (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsMongolian (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsMusicalSymbols (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsMyanmar (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsNumberForms (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsOgham (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsOldItalic (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsOpticalCharacterRecognition (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsOriya (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsOsmanya (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsPhoneticExtensions (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsPrivateUse (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsPrivateUseArea (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsRunic (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsShavian (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsSinhala (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsSmallFormVariants (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsSpacingModifierLetters (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsSpecials (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsSuperscriptsandSubscripts (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsSupplementalArrowsA (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsSupplementalArrowsB (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsSupplementalMathematicalOperators (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsSupplementaryPrivateUseAreaA (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsSupplementaryPrivateUseAreaB (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsSyriac (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsTagalog (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsTagbanwa (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsTags (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsTaiLe (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsTaiXuanJingSymbols (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsTamil (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsTelugu (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsThaana (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsThai (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsTibetan (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsUgaritic (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsUnifiedCanadianAboriginalSyllabics (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsVariationSelectors (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsVariationSelectorsSupplement (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsYiRadicals (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsYiSyllables (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsYijingHexagramSymbols (int code);
+
+XMLPUBFUN int XMLCALL xmlUCSIsBlock (int code, const char *block);
+
+XMLPUBFUN int XMLCALL xmlUCSIsCatC (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatCc (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatCf (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatCo (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatCs (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatL (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatLl (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatLm (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatLo (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatLt (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatLu (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatM (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatMc (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatMe (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatMn (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatN (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatNd (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatNl (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatNo (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatP (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatPc (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatPd (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatPe (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatPf (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatPi (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatPo (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatPs (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatS (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatSc (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatSk (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatSm (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatSo (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatZ (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatZl (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatZp (int code);
+XMLPUBFUN int XMLCALL xmlUCSIsCatZs (int code);
+
+XMLPUBFUN int XMLCALL xmlUCSIsCat (int code, const char *cat);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_UNICODE_ENABLED */
+
+#endif /* __XML_UNICODE_H__ */
diff --git a/libxml2/include/libxml/xmlversion.h b/libxml2/include/libxml/xmlversion.h
new file mode 100644
index 000000000..c7af2c075
--- /dev/null
+++ b/libxml2/include/libxml/xmlversion.h
@@ -0,0 +1,489 @@
+/*
+ * Summary: compile-time version informations
+ * Description: compile-time version informations for the XML library
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_VERSION_H__
+#define __XML_VERSION_H__
+
+#include <libxml/xmlexports.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * use those to be sure nothing nasty will happen if
+ * your library and includes mismatch
+ */
+#ifndef LIBXML2_COMPILING_MSCCDEF
+XMLPUBFUN void XMLCALL xmlCheckVersion(int version);
+#endif /* LIBXML2_COMPILING_MSCCDEF */
+
+/**
+ * LIBXML_DOTTED_VERSION:
+ *
+ * the version string like "1.2.3"
+ */
+#define LIBXML_DOTTED_VERSION "2.9.1"
+
+/**
+ * LIBXML_VERSION:
+ *
+ * the version number: 1.2.3 value is 10203
+ */
+#define LIBXML_VERSION 20901
+
+/**
+ * LIBXML_VERSION_STRING:
+ *
+ * the version number string, 1.2.3 value is "10203"
+ */
+#define LIBXML_VERSION_STRING "20901"
+
+/**
+ * LIBXML_VERSION_EXTRA:
+ *
+ * extra version information, used to show a CVS compilation
+ */
+#define LIBXML_VERSION_EXTRA ""
+
+/**
+ * LIBXML_TEST_VERSION:
+ *
+ * Macro to check that the libxml version in use is compatible with
+ * the version the software has been compiled against
+ */
+#define LIBXML_TEST_VERSION xmlCheckVersion(20901);
+
+#ifndef VMS
+#if 0
+/**
+ * WITH_TRIO:
+ *
+ * defined if the trio support need to be configured in
+ */
+#define WITH_TRIO
+#else
+/**
+ * WITHOUT_TRIO:
+ *
+ * defined if the trio support should not be configured in
+ */
+#define WITHOUT_TRIO
+#endif
+#else /* VMS */
+/**
+ * WITH_TRIO:
+ *
+ * defined if the trio support need to be configured in
+ */
+#define WITH_TRIO 1
+#endif /* VMS */
+
+/**
+ * LIBXML_THREAD_ENABLED:
+ *
+ * Whether the thread support is configured in
+ */
+#if 1
+#if defined(_REENTRANT) || defined(__MT__) || \
+ (defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE - 0 >= 199506L))
+#define LIBXML_THREAD_ENABLED
+#endif
+#endif
+
+/**
+ * LIBXML_THREAD_ALLOC_ENABLED:
+ *
+ * Whether the allocation hooks are per-thread
+ */
+#if 0
+#define LIBXML_THREAD_ALLOC_ENABLED
+#endif
+
+/**
+ * LIBXML_TREE_ENABLED:
+ *
+ * Whether the DOM like tree manipulation API support is configured in
+ */
+#if 1
+#define LIBXML_TREE_ENABLED
+#endif
+
+/**
+ * LIBXML_OUTPUT_ENABLED:
+ *
+ * Whether the serialization/saving support is configured in
+ */
+#if 1
+#define LIBXML_OUTPUT_ENABLED
+#endif
+
+/**
+ * LIBXML_PUSH_ENABLED:
+ *
+ * Whether the push parsing interfaces are configured in
+ */
+#if 1
+#define LIBXML_PUSH_ENABLED
+#endif
+
+/**
+ * LIBXML_READER_ENABLED:
+ *
+ * Whether the xmlReader parsing interface is configured in
+ */
+#if 1
+#define LIBXML_READER_ENABLED
+#endif
+
+/**
+ * LIBXML_PATTERN_ENABLED:
+ *
+ * Whether the xmlPattern node selection interface is configured in
+ */
+#if 1
+#define LIBXML_PATTERN_ENABLED
+#endif
+
+/**
+ * LIBXML_WRITER_ENABLED:
+ *
+ * Whether the xmlWriter saving interface is configured in
+ */
+#if 1
+#define LIBXML_WRITER_ENABLED
+#endif
+
+/**
+ * LIBXML_SAX1_ENABLED:
+ *
+ * Whether the older SAX1 interface is configured in
+ */
+#if 1
+#define LIBXML_SAX1_ENABLED
+#endif
+
+/**
+ * LIBXML_FTP_ENABLED:
+ *
+ * Whether the FTP support is configured in
+ */
+#if 1
+#define LIBXML_FTP_ENABLED
+#endif
+
+/**
+ * LIBXML_HTTP_ENABLED:
+ *
+ * Whether the HTTP support is configured in
+ */
+#if 1
+#define LIBXML_HTTP_ENABLED
+#endif
+
+/**
+ * LIBXML_VALID_ENABLED:
+ *
+ * Whether the DTD validation support is configured in
+ */
+#if 1
+#define LIBXML_VALID_ENABLED
+#endif
+
+/**
+ * LIBXML_HTML_ENABLED:
+ *
+ * Whether the HTML support is configured in
+ */
+#if 1
+#define LIBXML_HTML_ENABLED
+#endif
+
+/**
+ * LIBXML_LEGACY_ENABLED:
+ *
+ * Whether the deprecated APIs are compiled in for compatibility
+ */
+#if 1
+#define LIBXML_LEGACY_ENABLED
+#endif
+
+/**
+ * LIBXML_C14N_ENABLED:
+ *
+ * Whether the Canonicalization support is configured in
+ */
+#if 1
+#define LIBXML_C14N_ENABLED
+#endif
+
+/**
+ * LIBXML_CATALOG_ENABLED:
+ *
+ * Whether the Catalog support is configured in
+ */
+#if 1
+#define LIBXML_CATALOG_ENABLED
+#endif
+
+/**
+ * LIBXML_DOCB_ENABLED:
+ *
+ * Whether the SGML Docbook support is configured in
+ */
+#if 1
+#define LIBXML_DOCB_ENABLED
+#endif
+
+/**
+ * LIBXML_XPATH_ENABLED:
+ *
+ * Whether XPath is configured in
+ */
+#if 1
+#define LIBXML_XPATH_ENABLED
+#endif
+
+/**
+ * LIBXML_XPTR_ENABLED:
+ *
+ * Whether XPointer is configured in
+ */
+#if 1
+#define LIBXML_XPTR_ENABLED
+#endif
+
+/**
+ * LIBXML_XINCLUDE_ENABLED:
+ *
+ * Whether XInclude is configured in
+ */
+#if 1
+#define LIBXML_XINCLUDE_ENABLED
+#endif
+
+/**
+ * LIBXML_ICONV_ENABLED:
+ *
+ * Whether iconv support is available
+ */
+#if 1
+#define LIBXML_ICONV_ENABLED
+#endif
+
+/**
+ * LIBXML_ICU_ENABLED:
+ *
+ * Whether icu support is available
+ */
+#if 0
+#define LIBXML_ICU_ENABLED
+#endif
+
+/**
+ * LIBXML_ISO8859X_ENABLED:
+ *
+ * Whether ISO-8859-* support is made available in case iconv is not
+ */
+#if 1
+#define LIBXML_ISO8859X_ENABLED
+#endif
+
+/**
+ * LIBXML_DEBUG_ENABLED:
+ *
+ * Whether Debugging module is configured in
+ */
+#if 1
+#define LIBXML_DEBUG_ENABLED
+#endif
+
+/**
+ * DEBUG_MEMORY_LOCATION:
+ *
+ * Whether the memory debugging is configured in
+ */
+#if 0
+#define DEBUG_MEMORY_LOCATION
+#endif
+
+/**
+ * LIBXML_DEBUG_RUNTIME:
+ *
+ * Whether the runtime debugging is configured in
+ */
+#if 0
+#define LIBXML_DEBUG_RUNTIME
+#endif
+
+/**
+ * LIBXML_UNICODE_ENABLED:
+ *
+ * Whether the Unicode related interfaces are compiled in
+ */
+#if 1
+#define LIBXML_UNICODE_ENABLED
+#endif
+
+/**
+ * LIBXML_REGEXP_ENABLED:
+ *
+ * Whether the regular expressions interfaces are compiled in
+ */
+#if 1
+#define LIBXML_REGEXP_ENABLED
+#endif
+
+/**
+ * LIBXML_AUTOMATA_ENABLED:
+ *
+ * Whether the automata interfaces are compiled in
+ */
+#if 1
+#define LIBXML_AUTOMATA_ENABLED
+#endif
+
+/**
+ * LIBXML_EXPR_ENABLED:
+ *
+ * Whether the formal expressions interfaces are compiled in
+ */
+#if 1
+#define LIBXML_EXPR_ENABLED
+#endif
+
+/**
+ * LIBXML_SCHEMAS_ENABLED:
+ *
+ * Whether the Schemas validation interfaces are compiled in
+ */
+#if 1
+#define LIBXML_SCHEMAS_ENABLED
+#endif
+
+/**
+ * LIBXML_SCHEMATRON_ENABLED:
+ *
+ * Whether the Schematron validation interfaces are compiled in
+ */
+#if 1
+#define LIBXML_SCHEMATRON_ENABLED
+#endif
+
+/**
+ * LIBXML_MODULES_ENABLED:
+ *
+ * Whether the module interfaces are compiled in
+ */
+#if 1
+#define LIBXML_MODULES_ENABLED
+/**
+ * LIBXML_MODULE_EXTENSION:
+ *
+ * the string suffix used by dynamic modules (usually shared libraries)
+ */
+#define LIBXML_MODULE_EXTENSION ".dll"
+#endif
+
+/**
+ * LIBXML_ZLIB_ENABLED:
+ *
+ * Whether the Zlib support is compiled in
+ */
+#if 1
+#define LIBXML_ZLIB_ENABLED
+#endif
+
+/**
+ * LIBXML_LZMA_ENABLED:
+ *
+ * Whether the Lzma support is compiled in
+ */
+#if 0
+#define LIBXML_LZMA_ENABLED
+#endif
+
+#ifdef __GNUC__
+#ifdef HAVE_ANSIDECL_H
+#include <ansidecl.h>
+#endif
+
+/**
+ * ATTRIBUTE_UNUSED:
+ *
+ * Macro used to signal to GCC unused function parameters
+ */
+
+#ifndef ATTRIBUTE_UNUSED
+# if ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)))
+# define ATTRIBUTE_UNUSED __attribute__((unused))
+# else
+# define ATTRIBUTE_UNUSED
+# endif
+#endif
+
+/**
+ * LIBXML_ATTR_ALLOC_SIZE:
+ *
+ * Macro used to indicate to GCC this is an allocator function
+ */
+
+#ifndef LIBXML_ATTR_ALLOC_SIZE
+# if ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
+# define LIBXML_ATTR_ALLOC_SIZE(x) __attribute__((alloc_size(x)))
+# else
+# define LIBXML_ATTR_ALLOC_SIZE(x)
+# endif
+#else
+# define LIBXML_ATTR_ALLOC_SIZE(x)
+#endif
+
+/**
+ * LIBXML_ATTR_FORMAT:
+ *
+ * Macro used to indicate to GCC the parameter are printf like
+ */
+
+#ifndef LIBXML_ATTR_FORMAT
+# if ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)))
+# define LIBXML_ATTR_FORMAT(fmt,args) __attribute__((__format__(__printf__,fmt,args)))
+# else
+# define LIBXML_ATTR_FORMAT(fmt,args)
+# endif
+#else
+# define LIBXML_ATTR_FORMAT(fmt,args)
+#endif
+
+#else /* ! __GNUC__ */
+/**
+ * ATTRIBUTE_UNUSED:
+ *
+ * Macro used to signal to GCC unused function parameters
+ */
+#define ATTRIBUTE_UNUSED
+/**
+ * LIBXML_ATTR_ALLOC_SIZE:
+ *
+ * Macro used to indicate to GCC this is an allocator function
+ */
+#define LIBXML_ATTR_ALLOC_SIZE(x)
+/**
+ * LIBXML_ATTR_FORMAT:
+ *
+ * Macro used to indicate to GCC the parameter are printf like
+ */
+#define LIBXML_ATTR_FORMAT(fmt,args)
+#endif /* __GNUC__ */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif
+
+
diff --git a/libxml2/include/libxml/xmlwriter.h b/libxml2/include/libxml/xmlwriter.h
new file mode 100644
index 000000000..dd5add341
--- /dev/null
+++ b/libxml2/include/libxml/xmlwriter.h
@@ -0,0 +1,488 @@
+/*
+ * Summary: text writing API for XML
+ * Description: text writing API for XML
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Alfred Mickautsch <alfred@mickautsch.de>
+ */
+
+#ifndef __XML_XMLWRITER_H__
+#define __XML_XMLWRITER_H__
+
+#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_WRITER_ENABLED
+
+#include <stdarg.h>
+#include <libxml/xmlIO.h>
+#include <libxml/list.h>
+#include <libxml/xmlstring.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ typedef struct _xmlTextWriter xmlTextWriter;
+ typedef xmlTextWriter *xmlTextWriterPtr;
+
+/*
+ * Constructors & Destructor
+ */
+ XMLPUBFUN xmlTextWriterPtr XMLCALL
+ xmlNewTextWriter(xmlOutputBufferPtr out);
+ XMLPUBFUN xmlTextWriterPtr XMLCALL
+ xmlNewTextWriterFilename(const char *uri, int compression);
+ XMLPUBFUN xmlTextWriterPtr XMLCALL
+ xmlNewTextWriterMemory(xmlBufferPtr buf, int compression);
+ XMLPUBFUN xmlTextWriterPtr XMLCALL
+ xmlNewTextWriterPushParser(xmlParserCtxtPtr ctxt, int compression);
+ XMLPUBFUN xmlTextWriterPtr XMLCALL
+ xmlNewTextWriterDoc(xmlDocPtr * doc, int compression);
+ XMLPUBFUN xmlTextWriterPtr XMLCALL
+ xmlNewTextWriterTree(xmlDocPtr doc, xmlNodePtr node,
+ int compression);
+ XMLPUBFUN void XMLCALL xmlFreeTextWriter(xmlTextWriterPtr writer);
+
+/*
+ * Functions
+ */
+
+
+/*
+ * Document
+ */
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterStartDocument(xmlTextWriterPtr writer,
+ const char *version,
+ const char *encoding,
+ const char *standalone);
+ XMLPUBFUN int XMLCALL xmlTextWriterEndDocument(xmlTextWriterPtr
+ writer);
+
+/*
+ * Comments
+ */
+ XMLPUBFUN int XMLCALL xmlTextWriterStartComment(xmlTextWriterPtr
+ writer);
+ XMLPUBFUN int XMLCALL xmlTextWriterEndComment(xmlTextWriterPtr writer);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteFormatComment(xmlTextWriterPtr writer,
+ const char *format, ...)
+ LIBXML_ATTR_FORMAT(2,3);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteVFormatComment(xmlTextWriterPtr writer,
+ const char *format,
+ va_list argptr)
+ LIBXML_ATTR_FORMAT(2,0);
+ XMLPUBFUN int XMLCALL xmlTextWriterWriteComment(xmlTextWriterPtr
+ writer,
+ const xmlChar *
+ content);
+
+/*
+ * Elements
+ */
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterStartElement(xmlTextWriterPtr writer,
+ const xmlChar * name);
+ XMLPUBFUN int XMLCALL xmlTextWriterStartElementNS(xmlTextWriterPtr
+ writer,
+ const xmlChar *
+ prefix,
+ const xmlChar * name,
+ const xmlChar *
+ namespaceURI);
+ XMLPUBFUN int XMLCALL xmlTextWriterEndElement(xmlTextWriterPtr writer);
+ XMLPUBFUN int XMLCALL xmlTextWriterFullEndElement(xmlTextWriterPtr
+ writer);
+
+/*
+ * Elements conveniency functions
+ */
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteFormatElement(xmlTextWriterPtr writer,
+ const xmlChar * name,
+ const char *format, ...)
+ LIBXML_ATTR_FORMAT(3,4);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteVFormatElement(xmlTextWriterPtr writer,
+ const xmlChar * name,
+ const char *format,
+ va_list argptr)
+ LIBXML_ATTR_FORMAT(3,0);
+ XMLPUBFUN int XMLCALL xmlTextWriterWriteElement(xmlTextWriterPtr
+ writer,
+ const xmlChar * name,
+ const xmlChar *
+ content);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteFormatElementNS(xmlTextWriterPtr writer,
+ const xmlChar * prefix,
+ const xmlChar * name,
+ const xmlChar * namespaceURI,
+ const char *format, ...)
+ LIBXML_ATTR_FORMAT(5,6);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteVFormatElementNS(xmlTextWriterPtr writer,
+ const xmlChar * prefix,
+ const xmlChar * name,
+ const xmlChar * namespaceURI,
+ const char *format,
+ va_list argptr)
+ LIBXML_ATTR_FORMAT(5,0);
+ XMLPUBFUN int XMLCALL xmlTextWriterWriteElementNS(xmlTextWriterPtr
+ writer,
+ const xmlChar *
+ prefix,
+ const xmlChar * name,
+ const xmlChar *
+ namespaceURI,
+ const xmlChar *
+ content);
+
+/*
+ * Text
+ */
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteFormatRaw(xmlTextWriterPtr writer,
+ const char *format, ...)
+ LIBXML_ATTR_FORMAT(2,3);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteVFormatRaw(xmlTextWriterPtr writer,
+ const char *format, va_list argptr)
+ LIBXML_ATTR_FORMAT(2,0);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteRawLen(xmlTextWriterPtr writer,
+ const xmlChar * content, int len);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteRaw(xmlTextWriterPtr writer,
+ const xmlChar * content);
+ XMLPUBFUN int XMLCALL xmlTextWriterWriteFormatString(xmlTextWriterPtr
+ writer,
+ const char
+ *format, ...)
+ LIBXML_ATTR_FORMAT(2,3);
+ XMLPUBFUN int XMLCALL xmlTextWriterWriteVFormatString(xmlTextWriterPtr
+ writer,
+ const char
+ *format,
+ va_list argptr)
+ LIBXML_ATTR_FORMAT(2,0);
+ XMLPUBFUN int XMLCALL xmlTextWriterWriteString(xmlTextWriterPtr writer,
+ const xmlChar *
+ content);
+ XMLPUBFUN int XMLCALL xmlTextWriterWriteBase64(xmlTextWriterPtr writer,
+ const char *data,
+ int start, int len);
+ XMLPUBFUN int XMLCALL xmlTextWriterWriteBinHex(xmlTextWriterPtr writer,
+ const char *data,
+ int start, int len);
+
+/*
+ * Attributes
+ */
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterStartAttribute(xmlTextWriterPtr writer,
+ const xmlChar * name);
+ XMLPUBFUN int XMLCALL xmlTextWriterStartAttributeNS(xmlTextWriterPtr
+ writer,
+ const xmlChar *
+ prefix,
+ const xmlChar *
+ name,
+ const xmlChar *
+ namespaceURI);
+ XMLPUBFUN int XMLCALL xmlTextWriterEndAttribute(xmlTextWriterPtr
+ writer);
+
+/*
+ * Attributes conveniency functions
+ */
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteFormatAttribute(xmlTextWriterPtr writer,
+ const xmlChar * name,
+ const char *format, ...)
+ LIBXML_ATTR_FORMAT(3,4);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteVFormatAttribute(xmlTextWriterPtr writer,
+ const xmlChar * name,
+ const char *format,
+ va_list argptr)
+ LIBXML_ATTR_FORMAT(3,0);
+ XMLPUBFUN int XMLCALL xmlTextWriterWriteAttribute(xmlTextWriterPtr
+ writer,
+ const xmlChar * name,
+ const xmlChar *
+ content);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteFormatAttributeNS(xmlTextWriterPtr writer,
+ const xmlChar * prefix,
+ const xmlChar * name,
+ const xmlChar * namespaceURI,
+ const char *format, ...)
+ LIBXML_ATTR_FORMAT(5,6);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteVFormatAttributeNS(xmlTextWriterPtr writer,
+ const xmlChar * prefix,
+ const xmlChar * name,
+ const xmlChar * namespaceURI,
+ const char *format,
+ va_list argptr)
+ LIBXML_ATTR_FORMAT(5,0);
+ XMLPUBFUN int XMLCALL xmlTextWriterWriteAttributeNS(xmlTextWriterPtr
+ writer,
+ const xmlChar *
+ prefix,
+ const xmlChar *
+ name,
+ const xmlChar *
+ namespaceURI,
+ const xmlChar *
+ content);
+
+/*
+ * PI's
+ */
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterStartPI(xmlTextWriterPtr writer,
+ const xmlChar * target);
+ XMLPUBFUN int XMLCALL xmlTextWriterEndPI(xmlTextWriterPtr writer);
+
+/*
+ * PI conveniency functions
+ */
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteFormatPI(xmlTextWriterPtr writer,
+ const xmlChar * target,
+ const char *format, ...)
+ LIBXML_ATTR_FORMAT(3,4);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteVFormatPI(xmlTextWriterPtr writer,
+ const xmlChar * target,
+ const char *format, va_list argptr)
+ LIBXML_ATTR_FORMAT(3,0);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWritePI(xmlTextWriterPtr writer,
+ const xmlChar * target,
+ const xmlChar * content);
+
+/**
+ * xmlTextWriterWriteProcessingInstruction:
+ *
+ * This macro maps to xmlTextWriterWritePI
+ */
+#define xmlTextWriterWriteProcessingInstruction xmlTextWriterWritePI
+
+/*
+ * CDATA
+ */
+ XMLPUBFUN int XMLCALL xmlTextWriterStartCDATA(xmlTextWriterPtr writer);
+ XMLPUBFUN int XMLCALL xmlTextWriterEndCDATA(xmlTextWriterPtr writer);
+
+/*
+ * CDATA conveniency functions
+ */
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteFormatCDATA(xmlTextWriterPtr writer,
+ const char *format, ...)
+ LIBXML_ATTR_FORMAT(2,3);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteVFormatCDATA(xmlTextWriterPtr writer,
+ const char *format, va_list argptr)
+ LIBXML_ATTR_FORMAT(2,0);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteCDATA(xmlTextWriterPtr writer,
+ const xmlChar * content);
+
+/*
+ * DTD
+ */
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterStartDTD(xmlTextWriterPtr writer,
+ const xmlChar * name,
+ const xmlChar * pubid,
+ const xmlChar * sysid);
+ XMLPUBFUN int XMLCALL xmlTextWriterEndDTD(xmlTextWriterPtr writer);
+
+/*
+ * DTD conveniency functions
+ */
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteFormatDTD(xmlTextWriterPtr writer,
+ const xmlChar * name,
+ const xmlChar * pubid,
+ const xmlChar * sysid,
+ const char *format, ...)
+ LIBXML_ATTR_FORMAT(5,6);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteVFormatDTD(xmlTextWriterPtr writer,
+ const xmlChar * name,
+ const xmlChar * pubid,
+ const xmlChar * sysid,
+ const char *format, va_list argptr)
+ LIBXML_ATTR_FORMAT(5,0);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteDTD(xmlTextWriterPtr writer,
+ const xmlChar * name,
+ const xmlChar * pubid,
+ const xmlChar * sysid,
+ const xmlChar * subset);
+
+/**
+ * xmlTextWriterWriteDocType:
+ *
+ * this macro maps to xmlTextWriterWriteDTD
+ */
+#define xmlTextWriterWriteDocType xmlTextWriterWriteDTD
+
+/*
+ * DTD element definition
+ */
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterStartDTDElement(xmlTextWriterPtr writer,
+ const xmlChar * name);
+ XMLPUBFUN int XMLCALL xmlTextWriterEndDTDElement(xmlTextWriterPtr
+ writer);
+
+/*
+ * DTD element definition conveniency functions
+ */
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteFormatDTDElement(xmlTextWriterPtr writer,
+ const xmlChar * name,
+ const char *format, ...)
+ LIBXML_ATTR_FORMAT(3,4);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteVFormatDTDElement(xmlTextWriterPtr writer,
+ const xmlChar * name,
+ const char *format,
+ va_list argptr)
+ LIBXML_ATTR_FORMAT(3,0);
+ XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDElement(xmlTextWriterPtr
+ writer,
+ const xmlChar *
+ name,
+ const xmlChar *
+ content);
+
+/*
+ * DTD attribute list definition
+ */
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterStartDTDAttlist(xmlTextWriterPtr writer,
+ const xmlChar * name);
+ XMLPUBFUN int XMLCALL xmlTextWriterEndDTDAttlist(xmlTextWriterPtr
+ writer);
+
+/*
+ * DTD attribute list definition conveniency functions
+ */
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteFormatDTDAttlist(xmlTextWriterPtr writer,
+ const xmlChar * name,
+ const char *format, ...)
+ LIBXML_ATTR_FORMAT(3,4);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteVFormatDTDAttlist(xmlTextWriterPtr writer,
+ const xmlChar * name,
+ const char *format,
+ va_list argptr)
+ LIBXML_ATTR_FORMAT(3,0);
+ XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDAttlist(xmlTextWriterPtr
+ writer,
+ const xmlChar *
+ name,
+ const xmlChar *
+ content);
+
+/*
+ * DTD entity definition
+ */
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterStartDTDEntity(xmlTextWriterPtr writer,
+ int pe, const xmlChar * name);
+ XMLPUBFUN int XMLCALL xmlTextWriterEndDTDEntity(xmlTextWriterPtr
+ writer);
+
+/*
+ * DTD entity definition conveniency functions
+ */
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteFormatDTDInternalEntity(xmlTextWriterPtr writer,
+ int pe,
+ const xmlChar * name,
+ const char *format, ...)
+ LIBXML_ATTR_FORMAT(4,5);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteVFormatDTDInternalEntity(xmlTextWriterPtr writer,
+ int pe,
+ const xmlChar * name,
+ const char *format,
+ va_list argptr)
+ LIBXML_ATTR_FORMAT(4,0);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteDTDInternalEntity(xmlTextWriterPtr writer,
+ int pe,
+ const xmlChar * name,
+ const xmlChar * content);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteDTDExternalEntity(xmlTextWriterPtr writer,
+ int pe,
+ const xmlChar * name,
+ const xmlChar * pubid,
+ const xmlChar * sysid,
+ const xmlChar * ndataid);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteDTDExternalEntityContents(xmlTextWriterPtr
+ writer,
+ const xmlChar * pubid,
+ const xmlChar * sysid,
+ const xmlChar *
+ ndataid);
+ XMLPUBFUN int XMLCALL xmlTextWriterWriteDTDEntity(xmlTextWriterPtr
+ writer, int pe,
+ const xmlChar * name,
+ const xmlChar *
+ pubid,
+ const xmlChar *
+ sysid,
+ const xmlChar *
+ ndataid,
+ const xmlChar *
+ content);
+
+/*
+ * DTD notation definition
+ */
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterWriteDTDNotation(xmlTextWriterPtr writer,
+ const xmlChar * name,
+ const xmlChar * pubid,
+ const xmlChar * sysid);
+
+/*
+ * Indentation
+ */
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterSetIndent(xmlTextWriterPtr writer, int indent);
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterSetIndentString(xmlTextWriterPtr writer,
+ const xmlChar * str);
+
+ XMLPUBFUN int XMLCALL
+ xmlTextWriterSetQuoteChar(xmlTextWriterPtr writer, xmlChar quotechar);
+
+
+/*
+ * misc
+ */
+ XMLPUBFUN int XMLCALL xmlTextWriterFlush(xmlTextWriterPtr writer);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_WRITER_ENABLED */
+
+#endif /* __XML_XMLWRITER_H__ */
diff --git a/libxml2/include/libxml/xpath.h b/libxml2/include/libxml/xpath.h
new file mode 100644
index 000000000..d96776c51
--- /dev/null
+++ b/libxml2/include/libxml/xpath.h
@@ -0,0 +1,557 @@
+/*
+ * Summary: XML Path Language implementation
+ * Description: API for the XML Path Language implementation
+ *
+ * XML Path Language implementation
+ * XPath is a language for addressing parts of an XML document,
+ * designed to be used by both XSLT and XPointer
+ * http://www.w3.org/TR/xpath
+ *
+ * Implements
+ * W3C Recommendation 16 November 1999
+ * http://www.w3.org/TR/1999/REC-xpath-19991116
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XPATH_H__
+#define __XML_XPATH_H__
+
+#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_XPATH_ENABLED
+
+#include <libxml/xmlerror.h>
+#include <libxml/tree.h>
+#include <libxml/hash.h>
+#endif /* LIBXML_XPATH_ENABLED */
+
+#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
+#ifdef __cplusplus
+extern "C" {
+#endif
+#endif /* LIBXML_XPATH_ENABLED or LIBXML_SCHEMAS_ENABLED */
+
+#ifdef LIBXML_XPATH_ENABLED
+
+typedef struct _xmlXPathContext xmlXPathContext;
+typedef xmlXPathContext *xmlXPathContextPtr;
+typedef struct _xmlXPathParserContext xmlXPathParserContext;
+typedef xmlXPathParserContext *xmlXPathParserContextPtr;
+
+/**
+ * The set of XPath error codes.
+ */
+
+typedef enum {
+ XPATH_EXPRESSION_OK = 0,
+ XPATH_NUMBER_ERROR,
+ XPATH_UNFINISHED_LITERAL_ERROR,
+ XPATH_START_LITERAL_ERROR,
+ XPATH_VARIABLE_REF_ERROR,
+ XPATH_UNDEF_VARIABLE_ERROR,
+ XPATH_INVALID_PREDICATE_ERROR,
+ XPATH_EXPR_ERROR,
+ XPATH_UNCLOSED_ERROR,
+ XPATH_UNKNOWN_FUNC_ERROR,
+ XPATH_INVALID_OPERAND,
+ XPATH_INVALID_TYPE,
+ XPATH_INVALID_ARITY,
+ XPATH_INVALID_CTXT_SIZE,
+ XPATH_INVALID_CTXT_POSITION,
+ XPATH_MEMORY_ERROR,
+ XPTR_SYNTAX_ERROR,
+ XPTR_RESOURCE_ERROR,
+ XPTR_SUB_RESOURCE_ERROR,
+ XPATH_UNDEF_PREFIX_ERROR,
+ XPATH_ENCODING_ERROR,
+ XPATH_INVALID_CHAR_ERROR,
+ XPATH_INVALID_CTXT,
+ XPATH_STACK_ERROR,
+ XPATH_FORBID_VARIABLE_ERROR
+} xmlXPathError;
+
+/*
+ * A node-set (an unordered collection of nodes without duplicates).
+ */
+typedef struct _xmlNodeSet xmlNodeSet;
+typedef xmlNodeSet *xmlNodeSetPtr;
+struct _xmlNodeSet {
+ int nodeNr; /* number of nodes in the set */
+ int nodeMax; /* size of the array as allocated */
+ xmlNodePtr *nodeTab; /* array of nodes in no particular order */
+ /* @@ with_ns to check wether namespace nodes should be looked at @@ */
+};
+
+/*
+ * An expression is evaluated to yield an object, which
+ * has one of the following four basic types:
+ * - node-set
+ * - boolean
+ * - number
+ * - string
+ *
+ * @@ XPointer will add more types !
+ */
+
+typedef enum {
+ XPATH_UNDEFINED = 0,
+ XPATH_NODESET = 1,
+ XPATH_BOOLEAN = 2,
+ XPATH_NUMBER = 3,
+ XPATH_STRING = 4,
+ XPATH_POINT = 5,
+ XPATH_RANGE = 6,
+ XPATH_LOCATIONSET = 7,
+ XPATH_USERS = 8,
+ XPATH_XSLT_TREE = 9 /* An XSLT value tree, non modifiable */
+} xmlXPathObjectType;
+
+typedef struct _xmlXPathObject xmlXPathObject;
+typedef xmlXPathObject *xmlXPathObjectPtr;
+struct _xmlXPathObject {
+ xmlXPathObjectType type;
+ xmlNodeSetPtr nodesetval;
+ int boolval;
+ double floatval;
+ xmlChar *stringval;
+ void *user;
+ int index;
+ void *user2;
+ int index2;
+};
+
+/**
+ * xmlXPathConvertFunc:
+ * @obj: an XPath object
+ * @type: the number of the target type
+ *
+ * A conversion function is associated to a type and used to cast
+ * the new type to primitive values.
+ *
+ * Returns -1 in case of error, 0 otherwise
+ */
+typedef int (*xmlXPathConvertFunc) (xmlXPathObjectPtr obj, int type);
+
+/*
+ * Extra type: a name and a conversion function.
+ */
+
+typedef struct _xmlXPathType xmlXPathType;
+typedef xmlXPathType *xmlXPathTypePtr;
+struct _xmlXPathType {
+ const xmlChar *name; /* the type name */
+ xmlXPathConvertFunc func; /* the conversion function */
+};
+
+/*
+ * Extra variable: a name and a value.
+ */
+
+typedef struct _xmlXPathVariable xmlXPathVariable;
+typedef xmlXPathVariable *xmlXPathVariablePtr;
+struct _xmlXPathVariable {
+ const xmlChar *name; /* the variable name */
+ xmlXPathObjectPtr value; /* the value */
+};
+
+/**
+ * xmlXPathEvalFunc:
+ * @ctxt: an XPath parser context
+ * @nargs: the number of arguments passed to the function
+ *
+ * An XPath evaluation function, the parameters are on the XPath context stack.
+ */
+
+typedef void (*xmlXPathEvalFunc)(xmlXPathParserContextPtr ctxt,
+ int nargs);
+
+/*
+ * Extra function: a name and a evaluation function.
+ */
+
+typedef struct _xmlXPathFunct xmlXPathFunct;
+typedef xmlXPathFunct *xmlXPathFuncPtr;
+struct _xmlXPathFunct {
+ const xmlChar *name; /* the function name */
+ xmlXPathEvalFunc func; /* the evaluation function */
+};
+
+/**
+ * xmlXPathAxisFunc:
+ * @ctxt: the XPath interpreter context
+ * @cur: the previous node being explored on that axis
+ *
+ * An axis traversal function. To traverse an axis, the engine calls
+ * the first time with cur == NULL and repeat until the function returns
+ * NULL indicating the end of the axis traversal.
+ *
+ * Returns the next node in that axis or NULL if at the end of the axis.
+ */
+
+typedef xmlXPathObjectPtr (*xmlXPathAxisFunc) (xmlXPathParserContextPtr ctxt,
+ xmlXPathObjectPtr cur);
+
+/*
+ * Extra axis: a name and an axis function.
+ */
+
+typedef struct _xmlXPathAxis xmlXPathAxis;
+typedef xmlXPathAxis *xmlXPathAxisPtr;
+struct _xmlXPathAxis {
+ const xmlChar *name; /* the axis name */
+ xmlXPathAxisFunc func; /* the search function */
+};
+
+/**
+ * xmlXPathFunction:
+ * @ctxt: the XPath interprestation context
+ * @nargs: the number of arguments
+ *
+ * An XPath function.
+ * The arguments (if any) are popped out from the context stack
+ * and the result is pushed on the stack.
+ */
+
+typedef void (*xmlXPathFunction) (xmlXPathParserContextPtr ctxt, int nargs);
+
+/*
+ * Function and Variable Lookup.
+ */
+
+/**
+ * xmlXPathVariableLookupFunc:
+ * @ctxt: an XPath context
+ * @name: name of the variable
+ * @ns_uri: the namespace name hosting this variable
+ *
+ * Prototype for callbacks used to plug variable lookup in the XPath
+ * engine.
+ *
+ * Returns the XPath object value or NULL if not found.
+ */
+typedef xmlXPathObjectPtr (*xmlXPathVariableLookupFunc) (void *ctxt,
+ const xmlChar *name,
+ const xmlChar *ns_uri);
+
+/**
+ * xmlXPathFuncLookupFunc:
+ * @ctxt: an XPath context
+ * @name: name of the function
+ * @ns_uri: the namespace name hosting this function
+ *
+ * Prototype for callbacks used to plug function lookup in the XPath
+ * engine.
+ *
+ * Returns the XPath function or NULL if not found.
+ */
+typedef xmlXPathFunction (*xmlXPathFuncLookupFunc) (void *ctxt,
+ const xmlChar *name,
+ const xmlChar *ns_uri);
+
+/**
+ * xmlXPathFlags:
+ * Flags for XPath engine compilation and runtime
+ */
+/**
+ * XML_XPATH_CHECKNS:
+ *
+ * check namespaces at compilation
+ */
+#define XML_XPATH_CHECKNS (1<<0)
+/**
+ * XML_XPATH_NOVAR:
+ *
+ * forbid variables in expression
+ */
+#define XML_XPATH_NOVAR (1<<1)
+
+/**
+ * xmlXPathContext:
+ *
+ * Expression evaluation occurs with respect to a context.
+ * he context consists of:
+ * - a node (the context node)
+ * - a node list (the context node list)
+ * - a set of variable bindings
+ * - a function library
+ * - the set of namespace declarations in scope for the expression
+ * Following the switch to hash tables, this need to be trimmed up at
+ * the next binary incompatible release.
+ * The node may be modified when the context is passed to libxml2
+ * for an XPath evaluation so you may need to initialize it again
+ * before the next call.
+ */
+
+struct _xmlXPathContext {
+ xmlDocPtr doc; /* The current document */
+ xmlNodePtr node; /* The current node */
+
+ int nb_variables_unused; /* unused (hash table) */
+ int max_variables_unused; /* unused (hash table) */
+ xmlHashTablePtr varHash; /* Hash table of defined variables */
+
+ int nb_types; /* number of defined types */
+ int max_types; /* max number of types */
+ xmlXPathTypePtr types; /* Array of defined types */
+
+ int nb_funcs_unused; /* unused (hash table) */
+ int max_funcs_unused; /* unused (hash table) */
+ xmlHashTablePtr funcHash; /* Hash table of defined funcs */
+
+ int nb_axis; /* number of defined axis */
+ int max_axis; /* max number of axis */
+ xmlXPathAxisPtr axis; /* Array of defined axis */
+
+ /* the namespace nodes of the context node */
+ xmlNsPtr *namespaces; /* Array of namespaces */
+ int nsNr; /* number of namespace in scope */
+ void *user; /* function to free */
+
+ /* extra variables */
+ int contextSize; /* the context size */
+ int proximityPosition; /* the proximity position */
+
+ /* extra stuff for XPointer */
+ int xptr; /* is this an XPointer context? */
+ xmlNodePtr here; /* for here() */
+ xmlNodePtr origin; /* for origin() */
+
+ /* the set of namespace declarations in scope for the expression */
+ xmlHashTablePtr nsHash; /* The namespaces hash table */
+ xmlXPathVariableLookupFunc varLookupFunc;/* variable lookup func */
+ void *varLookupData; /* variable lookup data */
+
+ /* Possibility to link in an extra item */
+ void *extra; /* needed for XSLT */
+
+ /* The function name and URI when calling a function */
+ const xmlChar *function;
+ const xmlChar *functionURI;
+
+ /* function lookup function and data */
+ xmlXPathFuncLookupFunc funcLookupFunc;/* function lookup func */
+ void *funcLookupData; /* function lookup data */
+
+ /* temporary namespace lists kept for walking the namespace axis */
+ xmlNsPtr *tmpNsList; /* Array of namespaces */
+ int tmpNsNr; /* number of namespaces in scope */
+
+ /* error reporting mechanism */
+ void *userData; /* user specific data block */
+ xmlStructuredErrorFunc error; /* the callback in case of errors */
+ xmlError lastError; /* the last error */
+ xmlNodePtr debugNode; /* the source node XSLT */
+
+ /* dictionary */
+ xmlDictPtr dict; /* dictionary if any */
+
+ int flags; /* flags to control compilation */
+
+ /* Cache for reusal of XPath objects */
+ void *cache;
+};
+
+/*
+ * The structure of a compiled expression form is not public.
+ */
+
+typedef struct _xmlXPathCompExpr xmlXPathCompExpr;
+typedef xmlXPathCompExpr *xmlXPathCompExprPtr;
+
+/**
+ * xmlXPathParserContext:
+ *
+ * An XPath parser context. It contains pure parsing informations,
+ * an xmlXPathContext, and the stack of objects.
+ */
+struct _xmlXPathParserContext {
+ const xmlChar *cur; /* the current char being parsed */
+ const xmlChar *base; /* the full expression */
+
+ int error; /* error code */
+
+ xmlXPathContextPtr context; /* the evaluation context */
+ xmlXPathObjectPtr value; /* the current value */
+ int valueNr; /* number of values stacked */
+ int valueMax; /* max number of values stacked */
+ xmlXPathObjectPtr *valueTab; /* stack of values */
+
+ xmlXPathCompExprPtr comp; /* the precompiled expression */
+ int xptr; /* it this an XPointer expression */
+ xmlNodePtr ancestor; /* used for walking preceding axis */
+
+ int valueFrame; /* used to limit Pop on the stack */
+};
+
+/************************************************************************
+ * *
+ * Public API *
+ * *
+ ************************************************************************/
+
+/**
+ * Objects and Nodesets handling
+ */
+
+XMLPUBVAR double xmlXPathNAN;
+XMLPUBVAR double xmlXPathPINF;
+XMLPUBVAR double xmlXPathNINF;
+
+/* These macros may later turn into functions */
+/**
+ * xmlXPathNodeSetGetLength:
+ * @ns: a node-set
+ *
+ * Implement a functionality similar to the DOM NodeList.length.
+ *
+ * Returns the number of nodes in the node-set.
+ */
+#define xmlXPathNodeSetGetLength(ns) ((ns) ? (ns)->nodeNr : 0)
+/**
+ * xmlXPathNodeSetItem:
+ * @ns: a node-set
+ * @index: index of a node in the set
+ *
+ * Implements a functionality similar to the DOM NodeList.item().
+ *
+ * Returns the xmlNodePtr at the given @index in @ns or NULL if
+ * @index is out of range (0 to length-1)
+ */
+#define xmlXPathNodeSetItem(ns, index) \
+ ((((ns) != NULL) && \
+ ((index) >= 0) && ((index) < (ns)->nodeNr)) ? \
+ (ns)->nodeTab[(index)] \
+ : NULL)
+/**
+ * xmlXPathNodeSetIsEmpty:
+ * @ns: a node-set
+ *
+ * Checks whether @ns is empty or not.
+ *
+ * Returns %TRUE if @ns is an empty node-set.
+ */
+#define xmlXPathNodeSetIsEmpty(ns) \
+ (((ns) == NULL) || ((ns)->nodeNr == 0) || ((ns)->nodeTab == NULL))
+
+
+XMLPUBFUN void XMLCALL
+ xmlXPathFreeObject (xmlXPathObjectPtr obj);
+XMLPUBFUN xmlNodeSetPtr XMLCALL
+ xmlXPathNodeSetCreate (xmlNodePtr val);
+XMLPUBFUN void XMLCALL
+ xmlXPathFreeNodeSetList (xmlXPathObjectPtr obj);
+XMLPUBFUN void XMLCALL
+ xmlXPathFreeNodeSet (xmlNodeSetPtr obj);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathObjectCopy (xmlXPathObjectPtr val);
+XMLPUBFUN int XMLCALL
+ xmlXPathCmpNodes (xmlNodePtr node1,
+ xmlNodePtr node2);
+/**
+ * Conversion functions to basic types.
+ */
+XMLPUBFUN int XMLCALL
+ xmlXPathCastNumberToBoolean (double val);
+XMLPUBFUN int XMLCALL
+ xmlXPathCastStringToBoolean (const xmlChar * val);
+XMLPUBFUN int XMLCALL
+ xmlXPathCastNodeSetToBoolean(xmlNodeSetPtr ns);
+XMLPUBFUN int XMLCALL
+ xmlXPathCastToBoolean (xmlXPathObjectPtr val);
+
+XMLPUBFUN double XMLCALL
+ xmlXPathCastBooleanToNumber (int val);
+XMLPUBFUN double XMLCALL
+ xmlXPathCastStringToNumber (const xmlChar * val);
+XMLPUBFUN double XMLCALL
+ xmlXPathCastNodeToNumber (xmlNodePtr node);
+XMLPUBFUN double XMLCALL
+ xmlXPathCastNodeSetToNumber (xmlNodeSetPtr ns);
+XMLPUBFUN double XMLCALL
+ xmlXPathCastToNumber (xmlXPathObjectPtr val);
+
+XMLPUBFUN xmlChar * XMLCALL
+ xmlXPathCastBooleanToString (int val);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlXPathCastNumberToString (double val);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlXPathCastNodeToString (xmlNodePtr node);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlXPathCastNodeSetToString (xmlNodeSetPtr ns);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlXPathCastToString (xmlXPathObjectPtr val);
+
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathConvertBoolean (xmlXPathObjectPtr val);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathConvertNumber (xmlXPathObjectPtr val);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathConvertString (xmlXPathObjectPtr val);
+
+/**
+ * Context handling.
+ */
+XMLPUBFUN xmlXPathContextPtr XMLCALL
+ xmlXPathNewContext (xmlDocPtr doc);
+XMLPUBFUN void XMLCALL
+ xmlXPathFreeContext (xmlXPathContextPtr ctxt);
+XMLPUBFUN int XMLCALL
+ xmlXPathContextSetCache(xmlXPathContextPtr ctxt,
+ int active,
+ int value,
+ int options);
+/**
+ * Evaluation functions.
+ */
+XMLPUBFUN long XMLCALL
+ xmlXPathOrderDocElems (xmlDocPtr doc);
+XMLPUBFUN int XMLCALL
+ xmlXPathSetContextNode (xmlNodePtr node,
+ xmlXPathContextPtr ctx);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathNodeEval (xmlNodePtr node,
+ const xmlChar *str,
+ xmlXPathContextPtr ctx);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathEval (const xmlChar *str,
+ xmlXPathContextPtr ctx);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathEvalExpression (const xmlChar *str,
+ xmlXPathContextPtr ctxt);
+XMLPUBFUN int XMLCALL
+ xmlXPathEvalPredicate (xmlXPathContextPtr ctxt,
+ xmlXPathObjectPtr res);
+/**
+ * Separate compilation/evaluation entry points.
+ */
+XMLPUBFUN xmlXPathCompExprPtr XMLCALL
+ xmlXPathCompile (const xmlChar *str);
+XMLPUBFUN xmlXPathCompExprPtr XMLCALL
+ xmlXPathCtxtCompile (xmlXPathContextPtr ctxt,
+ const xmlChar *str);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathCompiledEval (xmlXPathCompExprPtr comp,
+ xmlXPathContextPtr ctx);
+XMLPUBFUN int XMLCALL
+ xmlXPathCompiledEvalToBoolean(xmlXPathCompExprPtr comp,
+ xmlXPathContextPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlXPathFreeCompExpr (xmlXPathCompExprPtr comp);
+#endif /* LIBXML_XPATH_ENABLED */
+#if defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
+XMLPUBFUN void XMLCALL
+ xmlXPathInit (void);
+XMLPUBFUN int XMLCALL
+ xmlXPathIsNaN (double val);
+XMLPUBFUN int XMLCALL
+ xmlXPathIsInf (double val);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_XPATH_ENABLED or LIBXML_SCHEMAS_ENABLED*/
+#endif /* ! __XML_XPATH_H__ */
diff --git a/libxml2/include/libxml/xpathInternals.h b/libxml2/include/libxml/xpathInternals.h
new file mode 100644
index 000000000..70c9db96f
--- /dev/null
+++ b/libxml2/include/libxml/xpathInternals.h
@@ -0,0 +1,632 @@
+/*
+ * Summary: internal interfaces for XML Path Language implementation
+ * Description: internal interfaces for XML Path Language implementation
+ * used to build new modules on top of XPath like XPointer and
+ * XSLT
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XPATH_INTERNALS_H__
+#define __XML_XPATH_INTERNALS_H__
+
+#include <libxml/xmlversion.h>
+#include <libxml/xpath.h>
+
+#ifdef LIBXML_XPATH_ENABLED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/************************************************************************
+ * *
+ * Helpers *
+ * *
+ ************************************************************************/
+
+/*
+ * Many of these macros may later turn into functions. They
+ * shouldn't be used in #ifdef's preprocessor instructions.
+ */
+/**
+ * xmlXPathSetError:
+ * @ctxt: an XPath parser context
+ * @err: an xmlXPathError code
+ *
+ * Raises an error.
+ */
+#define xmlXPathSetError(ctxt, err) \
+ { xmlXPatherror((ctxt), __FILE__, __LINE__, (err)); \
+ if ((ctxt) != NULL) (ctxt)->error = (err); }
+
+/**
+ * xmlXPathSetArityError:
+ * @ctxt: an XPath parser context
+ *
+ * Raises an XPATH_INVALID_ARITY error.
+ */
+#define xmlXPathSetArityError(ctxt) \
+ xmlXPathSetError((ctxt), XPATH_INVALID_ARITY)
+
+/**
+ * xmlXPathSetTypeError:
+ * @ctxt: an XPath parser context
+ *
+ * Raises an XPATH_INVALID_TYPE error.
+ */
+#define xmlXPathSetTypeError(ctxt) \
+ xmlXPathSetError((ctxt), XPATH_INVALID_TYPE)
+
+/**
+ * xmlXPathGetError:
+ * @ctxt: an XPath parser context
+ *
+ * Get the error code of an XPath context.
+ *
+ * Returns the context error.
+ */
+#define xmlXPathGetError(ctxt) ((ctxt)->error)
+
+/**
+ * xmlXPathCheckError:
+ * @ctxt: an XPath parser context
+ *
+ * Check if an XPath error was raised.
+ *
+ * Returns true if an error has been raised, false otherwise.
+ */
+#define xmlXPathCheckError(ctxt) ((ctxt)->error != XPATH_EXPRESSION_OK)
+
+/**
+ * xmlXPathGetDocument:
+ * @ctxt: an XPath parser context
+ *
+ * Get the document of an XPath context.
+ *
+ * Returns the context document.
+ */
+#define xmlXPathGetDocument(ctxt) ((ctxt)->context->doc)
+
+/**
+ * xmlXPathGetContextNode:
+ * @ctxt: an XPath parser context
+ *
+ * Get the context node of an XPath context.
+ *
+ * Returns the context node.
+ */
+#define xmlXPathGetContextNode(ctxt) ((ctxt)->context->node)
+
+XMLPUBFUN int XMLCALL
+ xmlXPathPopBoolean (xmlXPathParserContextPtr ctxt);
+XMLPUBFUN double XMLCALL
+ xmlXPathPopNumber (xmlXPathParserContextPtr ctxt);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlXPathPopString (xmlXPathParserContextPtr ctxt);
+XMLPUBFUN xmlNodeSetPtr XMLCALL
+ xmlXPathPopNodeSet (xmlXPathParserContextPtr ctxt);
+XMLPUBFUN void * XMLCALL
+ xmlXPathPopExternal (xmlXPathParserContextPtr ctxt);
+
+/**
+ * xmlXPathReturnBoolean:
+ * @ctxt: an XPath parser context
+ * @val: a boolean
+ *
+ * Pushes the boolean @val on the context stack.
+ */
+#define xmlXPathReturnBoolean(ctxt, val) \
+ valuePush((ctxt), xmlXPathNewBoolean(val))
+
+/**
+ * xmlXPathReturnTrue:
+ * @ctxt: an XPath parser context
+ *
+ * Pushes true on the context stack.
+ */
+#define xmlXPathReturnTrue(ctxt) xmlXPathReturnBoolean((ctxt), 1)
+
+/**
+ * xmlXPathReturnFalse:
+ * @ctxt: an XPath parser context
+ *
+ * Pushes false on the context stack.
+ */
+#define xmlXPathReturnFalse(ctxt) xmlXPathReturnBoolean((ctxt), 0)
+
+/**
+ * xmlXPathReturnNumber:
+ * @ctxt: an XPath parser context
+ * @val: a double
+ *
+ * Pushes the double @val on the context stack.
+ */
+#define xmlXPathReturnNumber(ctxt, val) \
+ valuePush((ctxt), xmlXPathNewFloat(val))
+
+/**
+ * xmlXPathReturnString:
+ * @ctxt: an XPath parser context
+ * @str: a string
+ *
+ * Pushes the string @str on the context stack.
+ */
+#define xmlXPathReturnString(ctxt, str) \
+ valuePush((ctxt), xmlXPathWrapString(str))
+
+/**
+ * xmlXPathReturnEmptyString:
+ * @ctxt: an XPath parser context
+ *
+ * Pushes an empty string on the stack.
+ */
+#define xmlXPathReturnEmptyString(ctxt) \
+ valuePush((ctxt), xmlXPathNewCString(""))
+
+/**
+ * xmlXPathReturnNodeSet:
+ * @ctxt: an XPath parser context
+ * @ns: a node-set
+ *
+ * Pushes the node-set @ns on the context stack.
+ */
+#define xmlXPathReturnNodeSet(ctxt, ns) \
+ valuePush((ctxt), xmlXPathWrapNodeSet(ns))
+
+/**
+ * xmlXPathReturnEmptyNodeSet:
+ * @ctxt: an XPath parser context
+ *
+ * Pushes an empty node-set on the context stack.
+ */
+#define xmlXPathReturnEmptyNodeSet(ctxt) \
+ valuePush((ctxt), xmlXPathNewNodeSet(NULL))
+
+/**
+ * xmlXPathReturnExternal:
+ * @ctxt: an XPath parser context
+ * @val: user data
+ *
+ * Pushes user data on the context stack.
+ */
+#define xmlXPathReturnExternal(ctxt, val) \
+ valuePush((ctxt), xmlXPathWrapExternal(val))
+
+/**
+ * xmlXPathStackIsNodeSet:
+ * @ctxt: an XPath parser context
+ *
+ * Check if the current value on the XPath stack is a node set or
+ * an XSLT value tree.
+ *
+ * Returns true if the current object on the stack is a node-set.
+ */
+#define xmlXPathStackIsNodeSet(ctxt) \
+ (((ctxt)->value != NULL) \
+ && (((ctxt)->value->type == XPATH_NODESET) \
+ || ((ctxt)->value->type == XPATH_XSLT_TREE)))
+
+/**
+ * xmlXPathStackIsExternal:
+ * @ctxt: an XPath parser context
+ *
+ * Checks if the current value on the XPath stack is an external
+ * object.
+ *
+ * Returns true if the current object on the stack is an external
+ * object.
+ */
+#define xmlXPathStackIsExternal(ctxt) \
+ ((ctxt->value != NULL) && (ctxt->value->type == XPATH_USERS))
+
+/**
+ * xmlXPathEmptyNodeSet:
+ * @ns: a node-set
+ *
+ * Empties a node-set.
+ */
+#define xmlXPathEmptyNodeSet(ns) \
+ { while ((ns)->nodeNr > 0) (ns)->nodeTab[(ns)->nodeNr--] = NULL; }
+
+/**
+ * CHECK_ERROR:
+ *
+ * Macro to return from the function if an XPath error was detected.
+ */
+#define CHECK_ERROR \
+ if (ctxt->error != XPATH_EXPRESSION_OK) return
+
+/**
+ * CHECK_ERROR0:
+ *
+ * Macro to return 0 from the function if an XPath error was detected.
+ */
+#define CHECK_ERROR0 \
+ if (ctxt->error != XPATH_EXPRESSION_OK) return(0)
+
+/**
+ * XP_ERROR:
+ * @X: the error code
+ *
+ * Macro to raise an XPath error and return.
+ */
+#define XP_ERROR(X) \
+ { xmlXPathErr(ctxt, X); return; }
+
+/**
+ * XP_ERROR0:
+ * @X: the error code
+ *
+ * Macro to raise an XPath error and return 0.
+ */
+#define XP_ERROR0(X) \
+ { xmlXPathErr(ctxt, X); return(0); }
+
+/**
+ * CHECK_TYPE:
+ * @typeval: the XPath type
+ *
+ * Macro to check that the value on top of the XPath stack is of a given
+ * type.
+ */
+#define CHECK_TYPE(typeval) \
+ if ((ctxt->value == NULL) || (ctxt->value->type != typeval)) \
+ XP_ERROR(XPATH_INVALID_TYPE)
+
+/**
+ * CHECK_TYPE0:
+ * @typeval: the XPath type
+ *
+ * Macro to check that the value on top of the XPath stack is of a given
+ * type. Return(0) in case of failure
+ */
+#define CHECK_TYPE0(typeval) \
+ if ((ctxt->value == NULL) || (ctxt->value->type != typeval)) \
+ XP_ERROR0(XPATH_INVALID_TYPE)
+
+/**
+ * CHECK_ARITY:
+ * @x: the number of expected args
+ *
+ * Macro to check that the number of args passed to an XPath function matches.
+ */
+#define CHECK_ARITY(x) \
+ if (ctxt == NULL) return; \
+ if (nargs != (x)) \
+ XP_ERROR(XPATH_INVALID_ARITY); \
+ if (ctxt->valueNr < ctxt->valueFrame + (x)) \
+ XP_ERROR(XPATH_STACK_ERROR);
+
+/**
+ * CAST_TO_STRING:
+ *
+ * Macro to try to cast the value on the top of the XPath stack to a string.
+ */
+#define CAST_TO_STRING \
+ if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_STRING)) \
+ xmlXPathStringFunction(ctxt, 1);
+
+/**
+ * CAST_TO_NUMBER:
+ *
+ * Macro to try to cast the value on the top of the XPath stack to a number.
+ */
+#define CAST_TO_NUMBER \
+ if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_NUMBER)) \
+ xmlXPathNumberFunction(ctxt, 1);
+
+/**
+ * CAST_TO_BOOLEAN:
+ *
+ * Macro to try to cast the value on the top of the XPath stack to a boolean.
+ */
+#define CAST_TO_BOOLEAN \
+ if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_BOOLEAN)) \
+ xmlXPathBooleanFunction(ctxt, 1);
+
+/*
+ * Variable Lookup forwarding.
+ */
+
+XMLPUBFUN void XMLCALL
+ xmlXPathRegisterVariableLookup (xmlXPathContextPtr ctxt,
+ xmlXPathVariableLookupFunc f,
+ void *data);
+
+/*
+ * Function Lookup forwarding.
+ */
+
+XMLPUBFUN void XMLCALL
+ xmlXPathRegisterFuncLookup (xmlXPathContextPtr ctxt,
+ xmlXPathFuncLookupFunc f,
+ void *funcCtxt);
+
+/*
+ * Error reporting.
+ */
+XMLPUBFUN void XMLCALL
+ xmlXPatherror (xmlXPathParserContextPtr ctxt,
+ const char *file,
+ int line,
+ int no);
+
+XMLPUBFUN void XMLCALL
+ xmlXPathErr (xmlXPathParserContextPtr ctxt,
+ int error);
+
+#ifdef LIBXML_DEBUG_ENABLED
+XMLPUBFUN void XMLCALL
+ xmlXPathDebugDumpObject (FILE *output,
+ xmlXPathObjectPtr cur,
+ int depth);
+XMLPUBFUN void XMLCALL
+ xmlXPathDebugDumpCompExpr(FILE *output,
+ xmlXPathCompExprPtr comp,
+ int depth);
+#endif
+/**
+ * NodeSet handling.
+ */
+XMLPUBFUN int XMLCALL
+ xmlXPathNodeSetContains (xmlNodeSetPtr cur,
+ xmlNodePtr val);
+XMLPUBFUN xmlNodeSetPtr XMLCALL
+ xmlXPathDifference (xmlNodeSetPtr nodes1,
+ xmlNodeSetPtr nodes2);
+XMLPUBFUN xmlNodeSetPtr XMLCALL
+ xmlXPathIntersection (xmlNodeSetPtr nodes1,
+ xmlNodeSetPtr nodes2);
+
+XMLPUBFUN xmlNodeSetPtr XMLCALL
+ xmlXPathDistinctSorted (xmlNodeSetPtr nodes);
+XMLPUBFUN xmlNodeSetPtr XMLCALL
+ xmlXPathDistinct (xmlNodeSetPtr nodes);
+
+XMLPUBFUN int XMLCALL
+ xmlXPathHasSameNodes (xmlNodeSetPtr nodes1,
+ xmlNodeSetPtr nodes2);
+
+XMLPUBFUN xmlNodeSetPtr XMLCALL
+ xmlXPathNodeLeadingSorted (xmlNodeSetPtr nodes,
+ xmlNodePtr node);
+XMLPUBFUN xmlNodeSetPtr XMLCALL
+ xmlXPathLeadingSorted (xmlNodeSetPtr nodes1,
+ xmlNodeSetPtr nodes2);
+XMLPUBFUN xmlNodeSetPtr XMLCALL
+ xmlXPathNodeLeading (xmlNodeSetPtr nodes,
+ xmlNodePtr node);
+XMLPUBFUN xmlNodeSetPtr XMLCALL
+ xmlXPathLeading (xmlNodeSetPtr nodes1,
+ xmlNodeSetPtr nodes2);
+
+XMLPUBFUN xmlNodeSetPtr XMLCALL
+ xmlXPathNodeTrailingSorted (xmlNodeSetPtr nodes,
+ xmlNodePtr node);
+XMLPUBFUN xmlNodeSetPtr XMLCALL
+ xmlXPathTrailingSorted (xmlNodeSetPtr nodes1,
+ xmlNodeSetPtr nodes2);
+XMLPUBFUN xmlNodeSetPtr XMLCALL
+ xmlXPathNodeTrailing (xmlNodeSetPtr nodes,
+ xmlNodePtr node);
+XMLPUBFUN xmlNodeSetPtr XMLCALL
+ xmlXPathTrailing (xmlNodeSetPtr nodes1,
+ xmlNodeSetPtr nodes2);
+
+
+/**
+ * Extending a context.
+ */
+
+XMLPUBFUN int XMLCALL
+ xmlXPathRegisterNs (xmlXPathContextPtr ctxt,
+ const xmlChar *prefix,
+ const xmlChar *ns_uri);
+XMLPUBFUN const xmlChar * XMLCALL
+ xmlXPathNsLookup (xmlXPathContextPtr ctxt,
+ const xmlChar *prefix);
+XMLPUBFUN void XMLCALL
+ xmlXPathRegisteredNsCleanup (xmlXPathContextPtr ctxt);
+
+XMLPUBFUN int XMLCALL
+ xmlXPathRegisterFunc (xmlXPathContextPtr ctxt,
+ const xmlChar *name,
+ xmlXPathFunction f);
+XMLPUBFUN int XMLCALL
+ xmlXPathRegisterFuncNS (xmlXPathContextPtr ctxt,
+ const xmlChar *name,
+ const xmlChar *ns_uri,
+ xmlXPathFunction f);
+XMLPUBFUN int XMLCALL
+ xmlXPathRegisterVariable (xmlXPathContextPtr ctxt,
+ const xmlChar *name,
+ xmlXPathObjectPtr value);
+XMLPUBFUN int XMLCALL
+ xmlXPathRegisterVariableNS (xmlXPathContextPtr ctxt,
+ const xmlChar *name,
+ const xmlChar *ns_uri,
+ xmlXPathObjectPtr value);
+XMLPUBFUN xmlXPathFunction XMLCALL
+ xmlXPathFunctionLookup (xmlXPathContextPtr ctxt,
+ const xmlChar *name);
+XMLPUBFUN xmlXPathFunction XMLCALL
+ xmlXPathFunctionLookupNS (xmlXPathContextPtr ctxt,
+ const xmlChar *name,
+ const xmlChar *ns_uri);
+XMLPUBFUN void XMLCALL
+ xmlXPathRegisteredFuncsCleanup (xmlXPathContextPtr ctxt);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathVariableLookup (xmlXPathContextPtr ctxt,
+ const xmlChar *name);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathVariableLookupNS (xmlXPathContextPtr ctxt,
+ const xmlChar *name,
+ const xmlChar *ns_uri);
+XMLPUBFUN void XMLCALL
+ xmlXPathRegisteredVariablesCleanup(xmlXPathContextPtr ctxt);
+
+/**
+ * Utilities to extend XPath.
+ */
+XMLPUBFUN xmlXPathParserContextPtr XMLCALL
+ xmlXPathNewParserContext (const xmlChar *str,
+ xmlXPathContextPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlXPathFreeParserContext (xmlXPathParserContextPtr ctxt);
+
+/* TODO: remap to xmlXPathValuePop and Push. */
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ valuePop (xmlXPathParserContextPtr ctxt);
+XMLPUBFUN int XMLCALL
+ valuePush (xmlXPathParserContextPtr ctxt,
+ xmlXPathObjectPtr value);
+
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathNewString (const xmlChar *val);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathNewCString (const char *val);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathWrapString (xmlChar *val);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathWrapCString (char * val);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathNewFloat (double val);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathNewBoolean (int val);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathNewNodeSet (xmlNodePtr val);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathNewValueTree (xmlNodePtr val);
+XMLPUBFUN int XMLCALL
+ xmlXPathNodeSetAdd (xmlNodeSetPtr cur,
+ xmlNodePtr val);
+XMLPUBFUN int XMLCALL
+ xmlXPathNodeSetAddUnique (xmlNodeSetPtr cur,
+ xmlNodePtr val);
+XMLPUBFUN int XMLCALL
+ xmlXPathNodeSetAddNs (xmlNodeSetPtr cur,
+ xmlNodePtr node,
+ xmlNsPtr ns);
+XMLPUBFUN void XMLCALL
+ xmlXPathNodeSetSort (xmlNodeSetPtr set);
+
+XMLPUBFUN void XMLCALL
+ xmlXPathRoot (xmlXPathParserContextPtr ctxt);
+XMLPUBFUN void XMLCALL
+ xmlXPathEvalExpr (xmlXPathParserContextPtr ctxt);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlXPathParseName (xmlXPathParserContextPtr ctxt);
+XMLPUBFUN xmlChar * XMLCALL
+ xmlXPathParseNCName (xmlXPathParserContextPtr ctxt);
+
+/*
+ * Existing functions.
+ */
+XMLPUBFUN double XMLCALL
+ xmlXPathStringEvalNumber (const xmlChar *str);
+XMLPUBFUN int XMLCALL
+ xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt,
+ xmlXPathObjectPtr res);
+XMLPUBFUN void XMLCALL
+ xmlXPathRegisterAllFunctions (xmlXPathContextPtr ctxt);
+XMLPUBFUN xmlNodeSetPtr XMLCALL
+ xmlXPathNodeSetMerge (xmlNodeSetPtr val1,
+ xmlNodeSetPtr val2);
+XMLPUBFUN void XMLCALL
+ xmlXPathNodeSetDel (xmlNodeSetPtr cur,
+ xmlNodePtr val);
+XMLPUBFUN void XMLCALL
+ xmlXPathNodeSetRemove (xmlNodeSetPtr cur,
+ int val);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathNewNodeSetList (xmlNodeSetPtr val);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathWrapNodeSet (xmlNodeSetPtr val);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPathWrapExternal (void *val);
+
+XMLPUBFUN int XMLCALL xmlXPathEqualValues(xmlXPathParserContextPtr ctxt);
+XMLPUBFUN int XMLCALL xmlXPathNotEqualValues(xmlXPathParserContextPtr ctxt);
+XMLPUBFUN int XMLCALL xmlXPathCompareValues(xmlXPathParserContextPtr ctxt, int inf, int strict);
+XMLPUBFUN void XMLCALL xmlXPathValueFlipSign(xmlXPathParserContextPtr ctxt);
+XMLPUBFUN void XMLCALL xmlXPathAddValues(xmlXPathParserContextPtr ctxt);
+XMLPUBFUN void XMLCALL xmlXPathSubValues(xmlXPathParserContextPtr ctxt);
+XMLPUBFUN void XMLCALL xmlXPathMultValues(xmlXPathParserContextPtr ctxt);
+XMLPUBFUN void XMLCALL xmlXPathDivValues(xmlXPathParserContextPtr ctxt);
+XMLPUBFUN void XMLCALL xmlXPathModValues(xmlXPathParserContextPtr ctxt);
+
+XMLPUBFUN int XMLCALL xmlXPathIsNodeType(const xmlChar *name);
+
+/*
+ * Some of the axis navigation routines.
+ */
+XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextSelf(xmlXPathParserContextPtr ctxt,
+ xmlNodePtr cur);
+XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextChild(xmlXPathParserContextPtr ctxt,
+ xmlNodePtr cur);
+XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendant(xmlXPathParserContextPtr ctxt,
+ xmlNodePtr cur);
+XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendantOrSelf(xmlXPathParserContextPtr ctxt,
+ xmlNodePtr cur);
+XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextParent(xmlXPathParserContextPtr ctxt,
+ xmlNodePtr cur);
+XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestorOrSelf(xmlXPathParserContextPtr ctxt,
+ xmlNodePtr cur);
+XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowingSibling(xmlXPathParserContextPtr ctxt,
+ xmlNodePtr cur);
+XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt,
+ xmlNodePtr cur);
+XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextNamespace(xmlXPathParserContextPtr ctxt,
+ xmlNodePtr cur);
+XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAttribute(xmlXPathParserContextPtr ctxt,
+ xmlNodePtr cur);
+XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt,
+ xmlNodePtr cur);
+XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestor(xmlXPathParserContextPtr ctxt,
+ xmlNodePtr cur);
+XMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPrecedingSibling(xmlXPathParserContextPtr ctxt,
+ xmlNodePtr cur);
+/*
+ * The official core of XPath functions.
+ */
+XMLPUBFUN void XMLCALL xmlXPathLastFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathPositionFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathCountFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathIdFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathLocalNameFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathNamespaceURIFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathStringFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathStringLengthFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathConcatFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathContainsFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathStartsWithFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathSubstringFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathSubstringBeforeFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathSubstringAfterFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathNormalizeFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathNotFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathTrueFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathFalseFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathLangFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathNumberFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathSumFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt, int nargs);
+XMLPUBFUN void XMLCALL xmlXPathBooleanFunction(xmlXPathParserContextPtr ctxt, int nargs);
+
+/**
+ * Really internal functions
+ */
+XMLPUBFUN void XMLCALL xmlXPathNodeSetFreeNs(xmlNsPtr ns);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_XPATH_ENABLED */
+#endif /* ! __XML_XPATH_INTERNALS_H__ */
diff --git a/libxml2/include/libxml/xpointer.h b/libxml2/include/libxml/xpointer.h
new file mode 100644
index 000000000..b99112b87
--- /dev/null
+++ b/libxml2/include/libxml/xpointer.h
@@ -0,0 +1,114 @@
+/*
+ * Summary: API to handle XML Pointers
+ * Description: API to handle XML Pointers
+ * Base implementation was made accordingly to
+ * W3C Candidate Recommendation 7 June 2000
+ * http://www.w3.org/TR/2000/CR-xptr-20000607
+ *
+ * Added support for the element() scheme described in:
+ * W3C Proposed Recommendation 13 November 2002
+ * http://www.w3.org/TR/2002/PR-xptr-element-20021113/
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Daniel Veillard
+ */
+
+#ifndef __XML_XPTR_H__
+#define __XML_XPTR_H__
+
+#include <libxml/xmlversion.h>
+
+#ifdef LIBXML_XPTR_ENABLED
+
+#include <libxml/tree.h>
+#include <libxml/xpath.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * A Location Set
+ */
+typedef struct _xmlLocationSet xmlLocationSet;
+typedef xmlLocationSet *xmlLocationSetPtr;
+struct _xmlLocationSet {
+ int locNr; /* number of locations in the set */
+ int locMax; /* size of the array as allocated */
+ xmlXPathObjectPtr *locTab;/* array of locations */
+};
+
+/*
+ * Handling of location sets.
+ */
+
+XMLPUBFUN xmlLocationSetPtr XMLCALL
+ xmlXPtrLocationSetCreate (xmlXPathObjectPtr val);
+XMLPUBFUN void XMLCALL
+ xmlXPtrFreeLocationSet (xmlLocationSetPtr obj);
+XMLPUBFUN xmlLocationSetPtr XMLCALL
+ xmlXPtrLocationSetMerge (xmlLocationSetPtr val1,
+ xmlLocationSetPtr val2);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPtrNewRange (xmlNodePtr start,
+ int startindex,
+ xmlNodePtr end,
+ int endindex);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPtrNewRangePoints (xmlXPathObjectPtr start,
+ xmlXPathObjectPtr end);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPtrNewRangeNodePoint (xmlNodePtr start,
+ xmlXPathObjectPtr end);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPtrNewRangePointNode (xmlXPathObjectPtr start,
+ xmlNodePtr end);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPtrNewRangeNodes (xmlNodePtr start,
+ xmlNodePtr end);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPtrNewLocationSetNodes (xmlNodePtr start,
+ xmlNodePtr end);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPtrNewLocationSetNodeSet(xmlNodeSetPtr set);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPtrNewRangeNodeObject (xmlNodePtr start,
+ xmlXPathObjectPtr end);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPtrNewCollapsedRange (xmlNodePtr start);
+XMLPUBFUN void XMLCALL
+ xmlXPtrLocationSetAdd (xmlLocationSetPtr cur,
+ xmlXPathObjectPtr val);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPtrWrapLocationSet (xmlLocationSetPtr val);
+XMLPUBFUN void XMLCALL
+ xmlXPtrLocationSetDel (xmlLocationSetPtr cur,
+ xmlXPathObjectPtr val);
+XMLPUBFUN void XMLCALL
+ xmlXPtrLocationSetRemove (xmlLocationSetPtr cur,
+ int val);
+
+/*
+ * Functions.
+ */
+XMLPUBFUN xmlXPathContextPtr XMLCALL
+ xmlXPtrNewContext (xmlDocPtr doc,
+ xmlNodePtr here,
+ xmlNodePtr origin);
+XMLPUBFUN xmlXPathObjectPtr XMLCALL
+ xmlXPtrEval (const xmlChar *str,
+ xmlXPathContextPtr ctx);
+XMLPUBFUN void XMLCALL
+ xmlXPtrRangeToFunction (xmlXPathParserContextPtr ctxt,
+ int nargs);
+XMLPUBFUN xmlNodePtr XMLCALL
+ xmlXPtrBuildNodeList (xmlXPathObjectPtr obj);
+XMLPUBFUN void XMLCALL
+ xmlXPtrEvalRangePredicate (xmlXPathParserContextPtr ctxt);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LIBXML_XPTR_ENABLED */
+#endif /* __XML_XPTR_H__ */
diff --git a/libxml2/lib/libxml2-2.def b/libxml2/lib/libxml2-2.def
new file mode 100644
index 000000000..9f282df8b
--- /dev/null
+++ b/libxml2/lib/libxml2-2.def
@@ -0,0 +1,1666 @@
+LIBRARY libxml2-2
+EXPORTS
+ UTF8ToHtml
+ UTF8Toisolat1
+ __docbDefaultSAXHandler
+ __htmlDefaultSAXHandler
+ __oldXMLWDcompatibility
+ __xmlBufferAllocScheme
+ __xmlDefaultBufferSize
+ __xmlDefaultSAXHandler
+ __xmlDefaultSAXLocator
+ __xmlDeregisterNodeDefaultValue
+ __xmlDoValidityCheckingDefaultValue
+ __xmlErrEncoding
+ __xmlGenericError
+ __xmlGenericErrorContext
+ __xmlGetWarningsDefaultValue
+ __xmlIndentTreeOutput = _xmlC14NErrRelativeNamespace
+ __xmlKeepBlanksDefaultValue
+ __xmlLastError
+ __xmlLineNumbersDefaultValue
+ __xmlLoadExtDtdDefaultValue
+ __xmlOutputBufferCreateFilenameValue = _xmlExcC14NVisibleNsStackFind.isra.0
+ __xmlParserDebugEntities
+ __xmlParserInputBufferCreateFilenameValue
+ __xmlParserVersion
+ __xmlPedanticParserDefaultValue
+ __xmlRaiseError
+ __xmlRegisterNodeDefaultValue
+ __xmlSaveNoEmptyTags
+ __xmlSimpleError
+ __xmlStructuredError
+ __xmlStructuredErrorContext
+ __xmlSubstituteEntitiesDefaultValue
+ __xmlTreeIndentString
+ attribute
+ attributeDecl
+ cdataBlock
+ characters
+ checkNamespace
+ comment
+ docbDefaultSAXHandlerInit
+ elementDecl
+ emptyExp
+ endDocument
+ endElement
+ entityDecl
+ externalSubset
+ forbiddenExp
+ getColumnNumber
+ getEntity
+ getLineNumber
+ getNamespace
+ getParameterEntity
+ getPublicId
+ getSystemId = _xmlFreeStreamComp
+ globalNamespace
+ hasExternalSubset
+ hasInternalSubset
+ htmlAttrAllowed
+ htmlAutoCloseTag
+ htmlCreateFileParserCtxt
+ htmlCreateMemoryParserCtxt
+ htmlCreatePushParserCtxt
+ htmlCtxtReadDoc
+ htmlCtxtReadFd
+ htmlCtxtReadFile
+ htmlCtxtReadIO
+ htmlCtxtReadMemory
+ htmlCtxtReset
+ htmlCtxtUseOptions
+ htmlDefaultSAXHandlerInit
+ htmlDocContentDumpFormatOutput
+ htmlDocContentDumpOutput
+ htmlDocDump
+ htmlDocDumpMemory
+ htmlDocDumpMemoryFormat
+ htmlElementAllowedHere
+ htmlElementStatusHere
+ htmlEncodeEntities
+ htmlEntityLookup
+ htmlEntityValueLookup
+ htmlFreeParserCtxt
+ htmlGetMetaEncoding
+ htmlHandleOmittedElem
+ htmlInitAutoClose
+ htmlIsAutoClosed
+ htmlIsBooleanAttr
+ htmlIsScriptAttribute
+ htmlNewDoc
+ htmlNewDocNoDtD
+ htmlNewParserCtxt
+ htmlNodeDump = _xmlCtxtCheckName
+ htmlNodeDumpFile
+ htmlNodeDumpFileFormat
+ htmlNodeDumpFormatOutput
+ htmlNodeDumpOutput
+ htmlNodeStatus
+ htmlParseCharRef
+ htmlParseChunk
+ htmlParseDoc
+ htmlParseDocument
+ htmlParseElement
+ htmlParseEntityRef
+ htmlParseFile
+ htmlReadDoc
+ htmlReadFd
+ htmlReadFile
+ htmlReadIO
+ htmlReadMemory
+ htmlSAXParseDoc = _htmlCtxtReadFd
+ htmlSAXParseFile
+ htmlSaveFile
+ htmlSaveFileEnc
+ htmlSaveFileFormat
+ htmlSetMetaEncoding
+ htmlTagLookup
+ ignorableWhitespace
+ initGenericErrorDefaultFunc
+ initdocbDefaultSAXHandler
+ inithtmlDefaultSAXHandler
+ initxmlDefaultSAXHandler
+ inputPop
+ inputPush
+ internalSubset
+ isStandalone
+ isolat1ToUTF8
+ namePop
+ namePush
+ namespaceDecl
+ nodePop
+ nodePush
+ notationDecl
+ processingInstruction
+ reference
+ resolveEntity
+ setDocumentLocator
+ setNamespace
+ startDocument
+ startElement
+ unparsedEntityDecl
+ valuePop
+ valuePush
+ xlinkGetDefaultDetect
+ xlinkGetDefaultHandler
+ xlinkIsLink
+ xlinkSetDefaultDetect
+ xlinkSetDefaultHandler
+ xmlACatalogAdd
+ xmlACatalogDump
+ xmlACatalogRemove
+ xmlACatalogResolve
+ xmlACatalogResolvePublic
+ xmlACatalogResolveSystem
+ xmlACatalogResolveURI
+ xmlAddAttributeDecl
+ xmlAddChild
+ xmlAddChildList
+ xmlAddDocEntity
+ xmlAddDtdEntity
+ xmlAddElementDecl
+ xmlAddEncodingAlias
+ xmlAddID
+ xmlAddNextSibling
+ xmlAddNotationDecl
+ xmlAddPrevSibling
+ xmlAddRef
+ xmlAddSibling
+ xmlAllocOutputBuffer
+ xmlAllocParserInputBuffer
+ xmlAttrSerializeTxtContent = _snprintf.constprop.3
+ xmlAutomataCompile
+ xmlAutomataGetInitState
+ xmlAutomataIsDeterminist
+ xmlAutomataNewAllTrans
+ xmlAutomataNewCountTrans
+ xmlAutomataNewCountTrans2
+ xmlAutomataNewCountedTrans
+ xmlAutomataNewCounter = _xmlExpParseSeq
+ xmlAutomataNewCounterTrans
+ xmlAutomataNewEpsilon
+ xmlAutomataNewNegTrans
+ xmlAutomataNewOnceTrans
+ xmlAutomataNewOnceTrans2
+ xmlAutomataNewState
+ xmlAutomataNewTransition
+ xmlAutomataNewTransition2
+ xmlAutomataSetFinalState
+ xmlBoolToText
+ xmlBufContent
+ xmlBufEnd
+ xmlBufGetNodeContent
+ xmlBufNodeDump
+ xmlBufShrink
+ xmlBufUse
+ xmlBufferAdd
+ xmlBufferAddHead
+ xmlBufferCCat
+ xmlBufferCat
+ xmlBufferContent
+ xmlBufferCreate
+ xmlBufferCreateSize
+ xmlBufferCreateStatic
+ xmlBufferDetach
+ xmlBufferDump
+ xmlBufferEmpty
+ xmlBufferFree
+ xmlBufferGrow
+ xmlBufferLength
+ xmlBufferResize
+ xmlBufferSetAllocationScheme
+ xmlBufferShrink
+ xmlBufferWriteCHAR
+ xmlBufferWriteChar
+ xmlBufferWriteQuotedString
+ xmlBuildQName
+ xmlBuildRelativeURI
+ xmlBuildURI = _xmlErrValidNode
+ xmlByteConsumed
+ xmlC14NDocDumpMemory
+ xmlC14NDocSave
+ xmlC14NDocSaveTo
+ xmlC14NExecute
+ xmlCanonicPath
+ xmlCatalogAdd
+ xmlCatalogAddLocal
+ xmlCatalogCleanup
+ xmlCatalogConvert
+ xmlCatalogDump
+ xmlCatalogFreeLocal = ___xmlDeregisterNodeDefaultValue
+ xmlCatalogGetDefaults = ___xmlPedanticParserDefaultValue
+ xmlCatalogGetPublic
+ xmlCatalogGetSystem
+ xmlCatalogIsEmpty
+ xmlCatalogLocalResolve
+ xmlCatalogLocalResolveURI = _xmlNewRMutex
+ xmlCatalogRemove
+ xmlCatalogResolve
+ xmlCatalogResolvePublic
+ xmlCatalogResolveSystem = _xmlThrDefIndentTreeOutput
+ xmlCatalogResolveURI
+ xmlCatalogSetDebug
+ xmlCatalogSetDefaultPrefer = ___xmlSubstituteEntitiesDefaultValue
+ xmlCatalogSetDefaults
+ xmlCharEncCloseFunc
+ xmlCharEncFirstLine
+ xmlCharEncInFunc
+ xmlCharEncOutFunc
+ xmlCharInRange
+ xmlCharStrdup
+ xmlCharStrndup
+ xmlCheckFilename
+ xmlCheckHTTPInput
+ xmlCheckLanguageID
+ xmlCheckUTF8
+ xmlCheckVersion
+ xmlChildElementCount
+ xmlCleanupCharEncodingHandlers
+ xmlCleanupEncodingAliases
+ xmlCleanupGlobals
+ xmlCleanupInputCallbacks
+ xmlCleanupMemory
+ xmlCleanupOutputCallbacks
+ xmlCleanupParser
+ xmlCleanupPredefinedEntities
+ xmlCleanupThreads
+ xmlClearNodeInfoSeq
+ xmlClearParserCtxt
+ xmlConvertSGMLCatalog
+ xmlCopyAttributeTable
+ xmlCopyChar
+ xmlCopyCharMultiByte
+ xmlCopyDoc
+ xmlCopyDocElementContent
+ xmlCopyDtd
+ xmlCopyElementContent
+ xmlCopyElementTable
+ xmlCopyEntitiesTable
+ xmlCopyEnumeration
+ xmlCopyError
+ xmlCopyNamespace
+ xmlCopyNamespaceList
+ xmlCopyNode
+ xmlCopyNodeList
+ xmlCopyNotationTable
+ xmlCopyProp
+ xmlCopyPropList
+ xmlCreateDocParserCtxt
+ xmlCreateEntitiesTable
+ xmlCreateEntityParserCtxt
+ xmlCreateEnumeration
+ xmlCreateFileParserCtxt
+ xmlCreateIOParserCtxt
+ xmlCreateIntSubset
+ xmlCreateMemoryParserCtxt
+ xmlCreatePushParserCtxt
+ xmlCreateURI
+ xmlCreateURLParserCtxt
+ xmlCtxtGetLastError
+ xmlCtxtReadDoc
+ xmlCtxtReadFd
+ xmlCtxtReadFile
+ xmlCtxtReadIO
+ xmlCtxtReadMemory
+ xmlCtxtReset
+ xmlCtxtResetLastError
+ xmlCtxtResetPush
+ xmlCtxtUseOptions
+ xmlCurrentChar
+ xmlDOMWrapAdoptNode
+ xmlDOMWrapCloneNode
+ xmlDOMWrapFreeCtxt
+ xmlDOMWrapNewCtxt
+ xmlDOMWrapReconcileNamespaces
+ xmlDOMWrapRemoveNode
+ xmlDebugCheckDocument
+ xmlDebugDumpAttr
+ xmlDebugDumpAttrList
+ xmlDebugDumpDTD
+ xmlDebugDumpDocument
+ xmlDebugDumpDocumentHead
+ xmlDebugDumpEntities
+ xmlDebugDumpNode
+ xmlDebugDumpNodeList
+ xmlDebugDumpOneNode
+ xmlDebugDumpString = _xmlShellDir
+ xmlDecodeEntities
+ xmlDefaultSAXHandlerInit
+ xmlDelEncodingAlias
+ xmlDeregisterNodeDefault
+ xmlDetectCharEncoding
+ xmlDictCleanup
+ xmlDictCreate
+ xmlDictCreateSub
+ xmlDictExists
+ xmlDictFree
+ xmlDictGetUsage
+ xmlDictLookup
+ xmlDictOwns
+ xmlDictQLookup
+ xmlDictReference
+ xmlDictSetLimit
+ xmlDictSize
+ xmlDocCopyNode
+ xmlDocCopyNodeList
+ xmlDocDump
+ xmlDocDumpFormatMemory
+ xmlDocDumpFormatMemoryEnc
+ xmlDocDumpMemory
+ xmlDocDumpMemoryEnc = _xmlSchematronPErr.constprop.5
+ xmlDocFormatDump
+ xmlDocGetRootElement
+ xmlDocSetRootElement
+ xmlDumpAttributeDecl
+ xmlDumpAttributeTable
+ xmlDumpElementDecl
+ xmlDumpElementTable
+ xmlDumpEntitiesTable
+ xmlDumpEntityDecl
+ xmlDumpNotationDecl
+ xmlDumpNotationTable
+ xmlElemDump
+ xmlEncodeEntities
+ xmlEncodeEntitiesReentrant
+ xmlEncodeSpecialChars
+ xmlErrMemory
+ xmlExpCtxtNbCons
+ xmlExpCtxtNbNodes
+ xmlExpDump
+ xmlExpExpDerive
+ xmlExpFree
+ xmlExpFreeCtxt
+ xmlExpGetLanguage
+ xmlExpGetStart
+ xmlExpIsNillable
+ xmlExpMaxToken
+ xmlExpNewAtom
+ xmlExpNewCtxt
+ xmlExpNewOr
+ xmlExpNewRange
+ xmlExpNewSeq
+ xmlExpParse
+ xmlExpRef
+ xmlExpStringDerive = _xmlSchemaGetComponentQName
+ xmlExpSubsume
+ xmlFileClose
+ xmlFileMatch
+ xmlFileOpen
+ xmlFileRead
+ xmlFindCharEncodingHandler
+ xmlFirstElementChild
+ xmlFree
+ xmlFreeAttributeTable
+ xmlFreeAutomata
+ xmlFreeCatalog
+ xmlFreeDoc
+ xmlFreeDocElementContent
+ xmlFreeDtd
+ xmlFreeElementContent
+ xmlFreeElementTable
+ xmlFreeEntitiesTable
+ xmlFreeEnumeration
+ xmlFreeIDTable
+ xmlFreeInputStream
+ xmlFreeMutex
+ xmlFreeNode
+ xmlFreeNodeList
+ xmlFreeNotationTable
+ xmlFreeNs
+ xmlFreeNsList
+ xmlFreeParserCtxt = _xmlValidityError
+ xmlFreeParserInputBuffer
+ xmlFreePattern
+ xmlFreePatternList
+ xmlFreeProp
+ xmlFreePropList
+ xmlFreeRMutex = _xmlC14NAttrsCompare
+ xmlFreeRefTable
+ xmlFreeStreamCtxt
+ xmlFreeTextReader
+ xmlFreeTextWriter
+ xmlFreeURI
+ xmlFreeValidCtxt
+ xmlGcMemGet
+ xmlGcMemSetup
+ xmlGetBufferAllocationScheme
+ xmlGetCharEncodingHandler
+ xmlGetCharEncodingName
+ xmlGetCompressMode
+ xmlGetDocCompressMode
+ xmlGetDocEntity
+ xmlGetDtdAttrDesc
+ xmlGetDtdElementDesc = _xmlValidateAttributeDecl
+ xmlGetDtdEntity
+ xmlGetDtdNotationDesc = _xmlValidateOneAttribute
+ xmlGetDtdQAttrDesc
+ xmlGetDtdQElementDesc
+ xmlGetEncodingAlias
+ xmlGetExternalEntityLoader
+ xmlGetFeature
+ xmlGetFeaturesList
+ xmlGetGlobalState
+ xmlGetID
+ xmlGetIntSubset
+ xmlGetLastChild
+ xmlGetLastError
+ xmlGetLineNo
+ xmlGetNoNsProp
+ xmlGetNodePath
+ xmlGetNsList
+ xmlGetNsProp
+ xmlGetParameterEntity
+ xmlGetPredefinedEntity
+ xmlGetProp
+ xmlGetRefs
+ xmlGetThreadId
+ xmlGetUTF8Char
+ xmlHandleEntity = _xmlIsIdeographic
+ xmlHasFeature
+ xmlHasNsProp
+ xmlHasProp
+ xmlHashAddEntry
+ xmlHashAddEntry2
+ xmlHashAddEntry3
+ xmlHashCopy
+ xmlHashCreate
+ xmlHashCreateDict
+ xmlHashFree
+ xmlHashLookup
+ xmlHashLookup2 = _xmlListCopy
+ xmlHashLookup3 = _xmlLinkGetData
+ xmlHashQLookup
+ xmlHashQLookup2 = _xmlIOFTPMatch
+ xmlHashQLookup3
+ xmlHashRemoveEntry
+ xmlHashRemoveEntry2
+ xmlHashRemoveEntry3
+ xmlHashScan = _xmlIOFTPRead
+ xmlHashScan3
+ xmlHashScanFull = _xmlIOHTTPOpen
+ xmlHashScanFull3 = _xmlGzfileOpenW
+ xmlHashSize = _xmlWrapStatUtf8
+ xmlHashUpdateEntry
+ xmlHashUpdateEntry2
+ xmlHashUpdateEntry3
+ xmlIOFTPClose
+ xmlIOFTPMatch
+ xmlIOFTPOpen
+ xmlIOFTPRead
+ xmlIOHTTPClose = _xmlGzfileWrite
+ xmlIOHTTPMatch
+ xmlIOHTTPOpen
+ xmlIOHTTPOpenW
+ xmlIOHTTPRead
+ xmlIOParseDTD
+ xmlInitCharEncodingHandlers
+ xmlInitGlobals
+ xmlInitMemory
+ xmlInitNodeInfoSeq
+ xmlInitParser
+ xmlInitParserCtxt
+ xmlInitThreads
+ xmlInitializeCatalog = ___xmlLastError
+ xmlInitializeDict = _xmlSAX2SetDocumentLocator
+ xmlInitializeGlobalState
+ xmlInitializePredefinedEntities
+ xmlIsBaseChar
+ xmlIsBaseCharGroup
+ xmlIsBlank
+ xmlIsBlankNode
+ xmlIsChar
+ xmlIsCharGroup
+ xmlIsCombining
+ xmlIsCombiningGroup
+ xmlIsDigit
+ xmlIsDigitGroup
+ xmlIsExtender
+ xmlIsExtenderGroup
+ xmlIsID
+ xmlIsIdeographic
+ xmlIsIdeographicGroup
+ xmlIsLetter
+ xmlIsMainThread
+ xmlIsMixedElement
+ xmlIsPubidChar
+ xmlIsPubidChar_tab
+ xmlIsRef
+ xmlIsXHTML
+ xmlKeepBlanksDefault
+ xmlLastElementChild
+ xmlLineNumbersDefault
+ xmlLinkGetData = _xmlCreateZMemBuff
+ xmlListAppend
+ xmlListClear
+ xmlListCopy
+ xmlListCreate
+ xmlListDelete
+ xmlListDup
+ xmlListEmpty
+ xmlListEnd
+ xmlListFront
+ xmlListInsert
+ xmlListMerge
+ xmlListPopBack
+ xmlListPopFront
+ xmlListPushBack
+ xmlListPushFront
+ xmlListRemoveAll
+ xmlListRemoveFirst
+ xmlListRemoveLast
+ xmlListReverse
+ xmlListReverseSearch
+ xmlListReverseWalk
+ xmlListSearch
+ xmlListSize
+ xmlListSort
+ xmlListWalk
+ xmlLoadACatalog
+ xmlLoadCatalog
+ xmlLoadCatalogs
+ xmlLoadExternalEntity
+ xmlLoadSGMLSuperCatalog = _xmlCatalogResolvePublic
+ xmlLockLibrary
+ xmlLsCountNode
+ xmlLsOneNode
+ xmlMalloc
+ xmlMallocAtomic
+ xmlMallocAtomicLoc
+ xmlMallocLoc
+ xmlMemBlocks
+ xmlMemDisplay
+ xmlMemDisplayLast
+ xmlMemFree
+ xmlMemGet
+ xmlMemMalloc
+ xmlMemRealloc
+ xmlMemSetup
+ xmlMemShow
+ xmlMemStrdup
+ xmlMemStrdupLoc
+ xmlMemUsed
+ xmlMemoryDump
+ xmlMemoryStrdup
+ xmlModuleClose
+ xmlModuleFree = _xmlSchematronParse
+ xmlModuleOpen
+ xmlModuleSymbol
+ xmlMutexLock
+ xmlMutexUnlock
+ xmlNamespaceParseNCName
+ xmlNamespaceParseNSDef = _xmlIsBlank
+ xmlNamespaceParseQName
+ xmlNanoFTPCheckResponse
+ xmlNanoFTPCleanup
+ xmlNanoFTPClose
+ xmlNanoFTPCloseConnection
+ xmlNanoFTPConnect
+ xmlNanoFTPConnectTo
+ xmlNanoFTPCwd
+ xmlNanoFTPDele
+ xmlNanoFTPFreeCtxt
+ xmlNanoFTPGet
+ xmlNanoFTPGetConnection
+ xmlNanoFTPGetResponse
+ xmlNanoFTPGetSocket
+ xmlNanoFTPInit
+ xmlNanoFTPList
+ xmlNanoFTPNewCtxt
+ xmlNanoFTPOpen
+ xmlNanoFTPProxy
+ xmlNanoFTPQuit
+ xmlNanoFTPRead
+ xmlNanoFTPScanProxy
+ xmlNanoFTPUpdateURL
+ xmlNanoHTTPAuthHeader
+ xmlNanoHTTPCleanup
+ xmlNanoHTTPClose
+ xmlNanoHTTPContentLength
+ xmlNanoHTTPEncoding
+ xmlNanoHTTPFetch
+ xmlNanoHTTPInit
+ xmlNanoHTTPMethod
+ xmlNanoHTTPMethodRedir
+ xmlNanoHTTPMimeType
+ xmlNanoHTTPOpen
+ xmlNanoHTTPOpenRedir
+ xmlNanoHTTPRead
+ xmlNanoHTTPRedir
+ xmlNanoHTTPReturnCode
+ xmlNanoHTTPSave
+ xmlNanoHTTPScanProxy
+ xmlNewAutomata
+ xmlNewCDataBlock
+ xmlNewCatalog
+ xmlNewCharEncodingHandler
+ xmlNewCharRef
+ xmlNewChild
+ xmlNewComment
+ xmlNewDoc
+ xmlNewDocComment
+ xmlNewDocElementContent
+ xmlNewDocFragment
+ xmlNewDocNode
+ xmlNewDocNodeEatName
+ xmlNewDocPI
+ xmlNewDocProp
+ xmlNewDocRawNode
+ xmlNewDocText
+ xmlNewDocTextLen
+ xmlNewDtd
+ xmlNewElementContent
+ xmlNewEntity
+ xmlNewEntityInputStream
+ xmlNewGlobalNs = _xmlIsPubidChar
+ xmlNewIOInputStream
+ xmlNewInputFromFile
+ xmlNewInputStream = _xmlKeepBlanksDefault
+ xmlNewMutex
+ xmlNewNode
+ xmlNewNodeEatName
+ xmlNewNs
+ xmlNewNsProp
+ xmlNewNsPropEatName
+ xmlNewPI
+ xmlNewParserCtxt
+ xmlNewProp
+ xmlNewRMutex
+ xmlNewReference
+ xmlNewStringInputStream
+ xmlNewText
+ xmlNewTextChild
+ xmlNewTextLen
+ xmlNewTextReader
+ xmlNewTextReaderFilename
+ xmlNewTextWriter
+ xmlNewTextWriterDoc
+ xmlNewTextWriterFilename
+ xmlNewTextWriterMemory
+ xmlNewTextWriterPushParser
+ xmlNewTextWriterTree
+ xmlNewValidCtxt
+ xmlNextChar
+ xmlNextElementSibling
+ xmlNoNetExternalEntityLoader = _xmlURIErrMemory
+ xmlNodeAddContent
+ xmlNodeAddContentLen
+ xmlNodeBufGetContent
+ xmlNodeDump
+ xmlNodeDumpOutput
+ xmlNodeGetBase = _xmlBufferAddHead
+ xmlNodeGetContent
+ xmlNodeGetLang
+ xmlNodeGetSpacePreserve
+ xmlNodeIsText
+ xmlNodeListGetRawString
+ xmlNodeListGetString
+ xmlNodeSetBase
+ xmlNodeSetContent
+ xmlNodeSetContentLen
+ xmlNodeSetLang
+ xmlNodeSetName
+ xmlNodeSetSpacePreserve
+ xmlNormalizeURIPath
+ xmlNormalizeWindowsPath
+ xmlOutputBufferClose = _xmlMemShow
+ xmlOutputBufferCreateBuffer
+ xmlOutputBufferCreateFd
+ xmlOutputBufferCreateFile
+ xmlOutputBufferCreateFilename
+ xmlOutputBufferCreateFilenameDefault
+ xmlOutputBufferCreateIO
+ xmlOutputBufferFlush
+ xmlOutputBufferGetContent
+ xmlOutputBufferGetSize
+ xmlOutputBufferWrite
+ xmlOutputBufferWriteEscape
+ xmlOutputBufferWriteString
+ xmlParseAttValue
+ xmlParseAttribute
+ xmlParseAttributeListDecl
+ xmlParseAttributeType
+ xmlParseBalancedChunkMemory
+ xmlParseBalancedChunkMemoryRecover
+ xmlParseCDSect
+ xmlParseCatalogFile
+ xmlParseCharData
+ xmlParseCharEncoding
+ xmlParseCharRef
+ xmlParseChunk
+ xmlParseComment
+ xmlParseContent
+ xmlParseCtxtExternalEntity
+ xmlParseDTD = _xmlParseContent
+ xmlParseDefaultDecl
+ xmlParseDoc
+ xmlParseDocTypeDecl
+ xmlParseDocument
+ xmlParseElement
+ xmlParseElementChildrenContentDecl
+ xmlParseElementContentDecl
+ xmlParseElementDecl
+ xmlParseElementMixedContentDecl
+ xmlParseEncName
+ xmlParseEncodingDecl
+ xmlParseEndTag
+ xmlParseEntity
+ xmlParseEntityDecl
+ xmlParseEntityRef
+ xmlParseEntityValue
+ xmlParseEnumeratedType
+ xmlParseEnumerationType
+ xmlParseExtParsedEnt
+ xmlParseExternalEntity
+ xmlParseExternalID
+ xmlParseExternalSubset
+ xmlParseFile
+ xmlParseInNodeContext
+ xmlParseMarkupDecl
+ xmlParseMemory
+ xmlParseMisc
+ xmlParseName
+ xmlParseNamespace
+ xmlParseNmtoken
+ xmlParseNotationDecl
+ xmlParseNotationType
+ xmlParsePEReference
+ xmlParsePI
+ xmlParsePITarget
+ xmlParsePubidLiteral
+ xmlParseQuotedString
+ xmlParseReference
+ xmlParseSDDecl
+ xmlParseStartTag
+ xmlParseSystemLiteral
+ xmlParseTextDecl
+ xmlParseURI
+ xmlParseURIRaw
+ xmlParseURIReference
+ xmlParseVersionInfo
+ xmlParseVersionNum
+ xmlParseXMLDecl
+ xmlParserAddNodeInfo
+ xmlParserError
+ xmlParserFindNodeInfo = _xmlFatalErr
+ xmlParserFindNodeInfoIndex
+ xmlParserGetDirectory
+ xmlParserHandlePEReference
+ xmlParserHandleReference = _xmlIsExtender
+ xmlParserInputBufferCreateFd
+ xmlParserInputBufferCreateFile
+ xmlParserInputBufferCreateFilename
+ xmlParserInputBufferCreateFilenameDefault
+ xmlParserInputBufferCreateIO
+ xmlParserInputBufferCreateMem
+ xmlParserInputBufferCreateStatic
+ xmlParserInputBufferGrow
+ xmlParserInputBufferPush
+ xmlParserInputBufferRead
+ xmlParserInputGrow
+ xmlParserInputRead
+ xmlParserInputShrink
+ xmlParserMaxDepth
+ xmlParserPrintFileContext
+ xmlParserPrintFileInfo
+ xmlParserValidityError
+ xmlParserValidityWarning
+ xmlParserWarning
+ xmlPathToURI
+ xmlPatternFromRoot
+ xmlPatternGetStreamCtxt
+ xmlPatternMatch
+ xmlPatternMaxDepth
+ xmlPatternMinDepth
+ xmlPatternStreamable
+ xmlPatterncompile
+ xmlPedanticParserDefault
+ xmlPopInput
+ xmlPopInputCallbacks
+ xmlPreviousElementSibling
+ xmlPrintURI
+ xmlPushInput
+ xmlRMutexLock
+ xmlRMutexUnlock
+ xmlReadDoc
+ xmlReadFd
+ xmlReadFile
+ xmlReadIO
+ xmlReadMemory
+ xmlReaderForDoc
+ xmlReaderForFd
+ xmlReaderForFile
+ xmlReaderForIO = _xmlRelaxNGGetElements
+ xmlReaderForMemory
+ xmlReaderNewDoc
+ xmlReaderNewFd
+ xmlReaderNewFile = _xmlRngPErr
+ xmlReaderNewIO = _xmlRelaxNGSchemaFreeValue
+ xmlReaderNewMemory
+ xmlReaderNewWalker
+ xmlReaderWalker
+ xmlRealloc
+ xmlReallocLoc
+ xmlReconciliateNs
+ xmlRecoverDoc
+ xmlRecoverFile
+ xmlRecoverMemory
+ xmlRegExecErrInfo
+ xmlRegExecNextValues
+ xmlRegExecPushString
+ xmlRegExecPushString2
+ xmlRegFreeExecCtxt
+ xmlRegFreeRegexp
+ xmlRegNewExecCtxt
+ xmlRegexpCompile
+ xmlRegexpExec
+ xmlRegexpIsDeterminist
+ xmlRegexpPrint
+ xmlRegisterCharEncodingHandler
+ xmlRegisterDefaultInputCallbacks
+ xmlRegisterDefaultOutputCallbacks
+ xmlRegisterHTTPPostCallbacks
+ xmlRegisterInputCallbacks
+ xmlRegisterNodeDefault
+ xmlRegisterOutputCallbacks
+ xmlRelaxNGCleanupTypes
+ xmlRelaxNGDump
+ xmlRelaxNGDumpTree
+ xmlRelaxNGFree
+ xmlRelaxNGFreeParserCtxt
+ xmlRelaxNGFreeValidCtxt
+ xmlRelaxNGGetParserErrors
+ xmlRelaxNGGetValidErrors
+ xmlRelaxNGInitTypes
+ xmlRelaxNGNewDocParserCtxt
+ xmlRelaxNGNewMemParserCtxt
+ xmlRelaxNGNewParserCtxt
+ xmlRelaxNGNewValidCtxt
+ xmlRelaxNGParse
+ xmlRelaxNGSetParserErrors
+ xmlRelaxNGSetParserStructuredErrors
+ xmlRelaxNGSetValidErrors
+ xmlRelaxNGSetValidStructuredErrors
+ xmlRelaxNGValidateDoc
+ xmlRelaxNGValidateFullElement
+ xmlRelaxNGValidatePopElement
+ xmlRelaxNGValidatePushCData
+ xmlRelaxNGValidatePushElement
+ xmlRelaxParserSetFlag
+ xmlRemoveID
+ xmlRemoveProp
+ xmlRemoveRef
+ xmlReplaceNode
+ xmlResetError
+ xmlResetLastError
+ xmlSAX2AttributeDecl
+ xmlSAX2CDataBlock
+ xmlSAX2Characters
+ xmlSAX2Comment
+ xmlSAX2ElementDecl
+ xmlSAX2EndDocument
+ xmlSAX2EndElement
+ xmlSAX2EndElementNs
+ xmlSAX2EntityDecl
+ xmlSAX2ExternalSubset
+ xmlSAX2GetColumnNumber
+ xmlSAX2GetEntity
+ xmlSAX2GetLineNumber
+ xmlSAX2GetParameterEntity
+ xmlSAX2GetPublicId
+ xmlSAX2GetSystemId
+ xmlSAX2HasExternalSubset
+ xmlSAX2HasInternalSubset
+ xmlSAX2IgnorableWhitespace
+ xmlSAX2InitDefaultSAXHandler
+ xmlSAX2InitDocbDefaultSAXHandler
+ xmlSAX2InitHtmlDefaultSAXHandler
+ xmlSAX2InternalSubset
+ xmlSAX2IsStandalone
+ xmlSAX2NotationDecl
+ xmlSAX2ProcessingInstruction
+ xmlSAX2Reference
+ xmlSAX2ResolveEntity
+ xmlSAX2SetDocumentLocator
+ xmlSAX2StartDocument
+ xmlSAX2StartElement
+ xmlSAX2StartElementNs
+ xmlSAX2UnparsedEntityDecl
+ xmlSAXDefaultVersion
+ xmlSAXParseDTD
+ xmlSAXParseDoc
+ xmlSAXParseEntity
+ xmlSAXParseFile
+ xmlSAXParseFileWithData
+ xmlSAXParseMemory
+ xmlSAXParseMemoryWithData
+ xmlSAXUserParseFile
+ xmlSAXUserParseMemory
+ xmlSAXVersion
+ xmlSaveClose
+ xmlSaveDoc
+ xmlSaveFile = _xmlSchematronNewParserCtxt
+ xmlSaveFileEnc
+ xmlSaveFileTo
+ xmlSaveFlush
+ xmlSaveFormatFile
+ xmlSaveFormatFileEnc
+ xmlSaveFormatFileTo
+ xmlSaveSetAttrEscape
+ xmlSaveSetEscape
+ xmlSaveToBuffer
+ xmlSaveToFd
+ xmlSaveToFilename
+ xmlSaveToIO
+ xmlSaveTree
+ xmlSaveUri
+ xmlScanName = _xmlIsDigit
+ xmlSchemaCheckFacet
+ xmlSchemaCleanupTypes
+ xmlSchemaCollapseString
+ xmlSchemaCompareValues
+ xmlSchemaCompareValuesWhtsp
+ xmlSchemaCopyValue
+ xmlSchemaDump
+ xmlSchemaFree
+ xmlSchemaFreeFacet
+ xmlSchemaFreeParserCtxt
+ xmlSchemaFreeType
+ xmlSchemaFreeValidCtxt
+ xmlSchemaFreeValue
+ xmlSchemaFreeWildcard
+ xmlSchemaGetBuiltInListSimpleTypeItemType
+ xmlSchemaGetBuiltInType
+ xmlSchemaGetCanonValue = _xmlUCSIsCJKUnifiedIdeographsExtensionB
+ xmlSchemaGetCanonValueWhtsp
+ xmlSchemaGetFacetValueAsULong
+ xmlSchemaGetParserErrors
+ xmlSchemaGetPredefinedType
+ xmlSchemaGetValType = _xmlUCSIsYijingHexagramSymbols
+ xmlSchemaGetValidErrors
+ xmlSchemaInitTypes
+ xmlSchemaIsBuiltInTypeFacet
+ xmlSchemaIsValid
+ xmlSchemaNewDocParserCtxt
+ xmlSchemaNewFacet
+ xmlSchemaNewMemParserCtxt
+ xmlSchemaNewNOTATIONValue
+ xmlSchemaNewParserCtxt
+ xmlSchemaNewQNameValue
+ xmlSchemaNewStringValue
+ xmlSchemaNewValidCtxt
+ xmlSchemaParse
+ xmlSchemaSAXPlug
+ xmlSchemaSAXUnplug
+ xmlSchemaSetParserErrors
+ xmlSchemaSetParserStructuredErrors
+ xmlSchemaSetValidErrors
+ xmlSchemaSetValidOptions
+ xmlSchemaSetValidStructuredErrors
+ xmlSchemaValPredefTypeNode
+ xmlSchemaValPredefTypeNodeNoNorm
+ xmlSchemaValidCtxtGetOptions
+ xmlSchemaValidCtxtGetParserCtxt
+ xmlSchemaValidateDoc
+ xmlSchemaValidateFacet = _xmlUCSIsBraillePatterns
+ xmlSchemaValidateFacetWhtsp
+ xmlSchemaValidateFile
+ xmlSchemaValidateLengthFacet
+ xmlSchemaValidateLengthFacetWhtsp
+ xmlSchemaValidateListSimpleTypeFacet = _xmlUCSIsCJKCompatibility
+ xmlSchemaValidateOneElement
+ xmlSchemaValidatePredefinedType
+ xmlSchemaValidateSetFilename
+ xmlSchemaValidateSetLocator
+ xmlSchemaValidateStream
+ xmlSchemaValueAppend
+ xmlSchemaValueGetAsBoolean
+ xmlSchemaValueGetAsString
+ xmlSchemaValueGetNext
+ xmlSchemaWhiteSpaceReplace
+ xmlSchematronFree
+ xmlSchematronFreeParserCtxt
+ xmlSchematronFreeValidCtxt
+ xmlSchematronNewDocParserCtxt
+ xmlSchematronNewMemParserCtxt
+ xmlSchematronNewParserCtxt
+ xmlSchematronNewValidCtxt
+ xmlSchematronParse
+ xmlSchematronSetValidStructuredErrors
+ xmlSchematronValidateDoc = _mingw_onexit
+ xmlSearchNs
+ xmlSearchNsByHref
+ xmlSetBufferAllocationScheme
+ xmlSetCompressMode
+ xmlSetDocCompressMode
+ xmlSetEntityReferenceFunc
+ xmlSetExternalEntityLoader
+ xmlSetFeature
+ xmlSetGenericErrorFunc
+ xmlSetListDoc
+ xmlSetNs
+ xmlSetNsProp
+ xmlSetProp
+ xmlSetStructuredErrorFunc
+ xmlSetTreeDoc
+ xmlSetupParserForBuffer
+ xmlShell
+ xmlShellBase
+ xmlShellCat
+ xmlShellDir
+ xmlShellDu
+ xmlShellList
+ xmlShellLoad
+ xmlShellPrintNode
+ xmlShellPrintXPathError
+ xmlShellPrintXPathResult
+ xmlShellPwd
+ xmlShellSave
+ xmlShellValidate
+ xmlShellWrite
+ xmlSkipBlankChars
+ xmlSnprintfElementContent
+ xmlSplitQName
+ xmlSplitQName2
+ xmlSplitQName3
+ xmlSprintfElementContent
+ xmlStopParser
+ xmlStrEqual
+ xmlStrPrintf = _xmlBufContent
+ xmlStrQEqual = _xmlBufCreateSize
+ xmlStrVPrintf
+ xmlStrcasecmp = _xmlBufDetach
+ xmlStrcasestr
+ xmlStrcat
+ xmlStrchr
+ xmlStrcmp = _xmlBufCreate
+ xmlStrdup
+ xmlStreamPop
+ xmlStreamPush
+ xmlStreamPushAttr
+ xmlStreamPushNode
+ xmlStreamWantsAnyNode
+ xmlStringComment
+ xmlStringCurrentChar
+ xmlStringDecodeEntities
+ xmlStringGetNodeList
+ xmlStringLenDecodeEntities
+ xmlStringLenGetNodeList
+ xmlStringText
+ xmlStringTextNoenc
+ xmlStrlen
+ xmlStrncasecmp
+ xmlStrncat
+ xmlStrncatNew
+ xmlStrncmp
+ xmlStrndup
+ xmlStrstr
+ xmlStrsub
+ xmlSubstituteEntitiesDefault
+ xmlSwitchEncoding
+ xmlSwitchInputEncoding
+ xmlSwitchToEncoding
+ xmlTextConcat
+ xmlTextMerge
+ xmlTextReaderAttributeCount
+ xmlTextReaderBaseUri
+ xmlTextReaderByteConsumed
+ xmlTextReaderClose
+ xmlTextReaderConstBaseUri
+ xmlTextReaderConstEncoding
+ xmlTextReaderConstLocalName
+ xmlTextReaderConstName
+ xmlTextReaderConstNamespaceUri
+ xmlTextReaderConstPrefix
+ xmlTextReaderConstString
+ xmlTextReaderConstValue
+ xmlTextReaderConstXmlLang
+ xmlTextReaderConstXmlVersion
+ xmlTextReaderCurrentDoc
+ xmlTextReaderCurrentNode
+ xmlTextReaderDepth
+ xmlTextReaderExpand
+ xmlTextReaderGetAttribute
+ xmlTextReaderGetAttributeNo
+ xmlTextReaderGetAttributeNs
+ xmlTextReaderGetErrorHandler
+ xmlTextReaderGetParserColumnNumber
+ xmlTextReaderGetParserLineNumber
+ xmlTextReaderGetParserProp
+ xmlTextReaderGetRemainder
+ xmlTextReaderHasAttributes
+ xmlTextReaderHasValue
+ xmlTextReaderIsDefault
+ xmlTextReaderIsEmptyElement
+ xmlTextReaderIsNamespaceDecl
+ xmlTextReaderIsValid
+ xmlTextReaderLocalName
+ xmlTextReaderLocatorBaseURI
+ xmlTextReaderLocatorLineNumber
+ xmlTextReaderLookupNamespace
+ xmlTextReaderMoveToAttribute
+ xmlTextReaderMoveToAttributeNo
+ xmlTextReaderMoveToAttributeNs
+ xmlTextReaderMoveToElement
+ xmlTextReaderMoveToFirstAttribute
+ xmlTextReaderMoveToNextAttribute
+ xmlTextReaderName
+ xmlTextReaderNamespaceUri
+ xmlTextReaderNext
+ xmlTextReaderNextSibling
+ xmlTextReaderNodeType
+ xmlTextReaderNormalization
+ xmlTextReaderPrefix
+ xmlTextReaderPreserve
+ xmlTextReaderPreservePattern
+ xmlTextReaderQuoteChar
+ xmlTextReaderRead
+ xmlTextReaderReadAttributeValue
+ xmlTextReaderReadInnerXml
+ xmlTextReaderReadOuterXml
+ xmlTextReaderReadState
+ xmlTextReaderReadString
+ xmlTextReaderRelaxNGSetSchema = _xmlReaderForDoc
+ xmlTextReaderRelaxNGValidate
+ xmlTextReaderRelaxNGValidateCtxt
+ xmlTextReaderSchemaValidate
+ xmlTextReaderSchemaValidateCtxt
+ xmlTextReaderSetErrorHandler
+ xmlTextReaderSetParserProp
+ xmlTextReaderSetSchema
+ xmlTextReaderSetStructuredErrorHandler
+ xmlTextReaderSetup
+ xmlTextReaderStandalone
+ xmlTextReaderValue
+ xmlTextReaderXmlLang
+ xmlTextWriterEndAttribute
+ xmlTextWriterEndCDATA
+ xmlTextWriterEndComment
+ xmlTextWriterEndDTD
+ xmlTextWriterEndDTDAttlist
+ xmlTextWriterEndDTDElement
+ xmlTextWriterEndDTDEntity
+ xmlTextWriterEndDocument
+ xmlTextWriterEndElement
+ xmlTextWriterEndPI
+ xmlTextWriterFlush
+ xmlTextWriterFullEndElement = _xmlTextWriterWriteFormatPI
+ xmlTextWriterSetIndent
+ xmlTextWriterSetIndentString
+ xmlTextWriterSetQuoteChar
+ xmlTextWriterStartAttribute
+ xmlTextWriterStartAttributeNS
+ xmlTextWriterStartCDATA
+ xmlTextWriterStartComment
+ xmlTextWriterStartDTD
+ xmlTextWriterStartDTDAttlist = _xmlTextWriterSetQuoteChar
+ xmlTextWriterStartDTDElement
+ xmlTextWriterStartDTDEntity
+ xmlTextWriterStartDocument
+ xmlTextWriterStartElement = _xmlTextWriterWriteVFormatElement
+ xmlTextWriterStartElementNS
+ xmlTextWriterStartPI
+ xmlTextWriterWriteAttribute
+ xmlTextWriterWriteAttributeNS
+ xmlTextWriterWriteBase64
+ xmlTextWriterWriteBinHex
+ xmlTextWriterWriteCDATA
+ xmlTextWriterWriteComment
+ xmlTextWriterWriteDTD
+ xmlTextWriterWriteDTDAttlist
+ xmlTextWriterWriteDTDElement
+ xmlTextWriterWriteDTDEntity
+ xmlTextWriterWriteDTDExternalEntity
+ xmlTextWriterWriteDTDExternalEntityContents
+ xmlTextWriterWriteDTDInternalEntity
+ xmlTextWriterWriteDTDNotation
+ xmlTextWriterWriteElement
+ xmlTextWriterWriteElementNS
+ xmlTextWriterWriteFormatAttribute
+ xmlTextWriterWriteFormatAttributeNS = _xmlTextWriterWriteDTDAttlist
+ xmlTextWriterWriteFormatCDATA
+ xmlTextWriterWriteFormatComment
+ xmlTextWriterWriteFormatDTD
+ xmlTextWriterWriteFormatDTDAttlist
+ xmlTextWriterWriteFormatDTDElement
+ xmlTextWriterWriteFormatDTDInternalEntity
+ xmlTextWriterWriteFormatElement
+ xmlTextWriterWriteFormatElementNS
+ xmlTextWriterWriteFormatPI
+ xmlTextWriterWriteFormatRaw
+ xmlTextWriterWriteFormatString = _xmlTextWriterStartDTDElement
+ xmlTextWriterWritePI
+ xmlTextWriterWriteRaw
+ xmlTextWriterWriteRawLen
+ xmlTextWriterWriteString
+ xmlTextWriterWriteVFormatAttribute
+ xmlTextWriterWriteVFormatAttributeNS
+ xmlTextWriterWriteVFormatCDATA
+ xmlTextWriterWriteVFormatComment
+ xmlTextWriterWriteVFormatDTD
+ xmlTextWriterWriteVFormatDTDAttlist
+ xmlTextWriterWriteVFormatDTDElement = _xmlTextWriterSetIndent
+ xmlTextWriterWriteVFormatDTDInternalEntity = _xmlSetFeature
+ xmlTextWriterWriteVFormatElement
+ xmlTextWriterWriteVFormatElementNS
+ xmlTextWriterWriteVFormatPI = _xmlTextWriterWriteVFormatDTD
+ xmlTextWriterWriteVFormatRaw
+ xmlTextWriterWriteVFormatString
+ xmlThrDefBufferAllocScheme
+ xmlThrDefDefaultBufferSize
+ xmlThrDefDeregisterNodeDefault
+ xmlThrDefDoValidityCheckingDefaultValue
+ xmlThrDefGetWarningsDefaultValue
+ xmlThrDefIndentTreeOutput
+ xmlThrDefKeepBlanksDefaultValue
+ xmlThrDefLineNumbersDefaultValue
+ xmlThrDefLoadExtDtdDefaultValue
+ xmlThrDefOutputBufferCreateFilenameDefault
+ xmlThrDefParserDebugEntities
+ xmlThrDefParserInputBufferCreateFilenameDefault
+ xmlThrDefPedanticParserDefaultValue
+ xmlThrDefRegisterNodeDefault = _xmlC14NErrParam
+ xmlThrDefSaveNoEmptyTags
+ xmlThrDefSetGenericErrorFunc
+ xmlThrDefSetStructuredErrorFunc
+ xmlThrDefSubstituteEntitiesDefaultValue
+ xmlThrDefTreeIndentString
+ xmlUCSIsAegeanNumbers = _xmlUCSIsCatCc
+ xmlUCSIsAlphabeticPresentationForms = _xmlUCSIsCatCo
+ xmlUCSIsArabic
+ xmlUCSIsArabicPresentationFormsA
+ xmlUCSIsArabicPresentationFormsB
+ xmlUCSIsArmenian
+ xmlUCSIsArrows
+ xmlUCSIsBasicLatin
+ xmlUCSIsBengali = _xmlUCSIsCatNl
+ xmlUCSIsBlock
+ xmlUCSIsBlockElements
+ xmlUCSIsBopomofo
+ xmlUCSIsBopomofoExtended = _xmlUCSIsCatPc
+ xmlUCSIsBoxDrawing
+ xmlUCSIsBraillePatterns
+ xmlUCSIsBuhid = _xmlUCSIsCatPf
+ xmlUCSIsByzantineMusicalSymbols
+ xmlUCSIsCJKCompatibility
+ xmlUCSIsCJKCompatibilityForms
+ xmlUCSIsCJKCompatibilityIdeographs = _xmlUCSIsCatZp
+ xmlUCSIsCJKCompatibilityIdeographsSupplement
+ xmlUCSIsCJKRadicalsSupplement
+ xmlUCSIsCJKSymbolsandPunctuation
+ xmlUCSIsCJKUnifiedIdeographs
+ xmlUCSIsCJKUnifiedIdeographsExtensionA
+ xmlUCSIsCJKUnifiedIdeographsExtensionB
+ xmlUCSIsCat
+ xmlUCSIsCatC
+ xmlUCSIsCatCc
+ xmlUCSIsCatCf
+ xmlUCSIsCatCo
+ xmlUCSIsCatCs
+ xmlUCSIsCatL
+ xmlUCSIsCatLl
+ xmlUCSIsCatLm
+ xmlUCSIsCatLo
+ xmlUCSIsCatLt
+ xmlUCSIsCatLu
+ xmlUCSIsCatM
+ xmlUCSIsCatMc
+ xmlUCSIsCatMe
+ xmlUCSIsCatMn
+ xmlUCSIsCatN
+ xmlUCSIsCatNd
+ xmlUCSIsCatNl
+ xmlUCSIsCatNo
+ xmlUCSIsCatP
+ xmlUCSIsCatPc
+ xmlUCSIsCatPd
+ xmlUCSIsCatPe
+ xmlUCSIsCatPf
+ xmlUCSIsCatPi
+ xmlUCSIsCatPo
+ xmlUCSIsCatPs
+ xmlUCSIsCatS
+ xmlUCSIsCatSc
+ xmlUCSIsCatSk
+ xmlUCSIsCatSm
+ xmlUCSIsCatSo
+ xmlUCSIsCatZ
+ xmlUCSIsCatZl
+ xmlUCSIsCatZp
+ xmlUCSIsCatZs
+ xmlUCSIsCherokee
+ xmlUCSIsCombiningDiacriticalMarks
+ xmlUCSIsCombiningDiacriticalMarksforSymbols
+ xmlUCSIsCombiningHalfMarks
+ xmlUCSIsCombiningMarksforSymbols
+ xmlUCSIsControlPictures
+ xmlUCSIsCurrencySymbols
+ xmlUCSIsCypriotSyllabary
+ xmlUCSIsCyrillic
+ xmlUCSIsCyrillicSupplement
+ xmlUCSIsDeseret
+ xmlUCSIsDevanagari
+ xmlUCSIsDingbats
+ xmlUCSIsEnclosedAlphanumerics
+ xmlUCSIsEnclosedCJKLettersandMonths
+ xmlUCSIsEthiopic
+ xmlUCSIsGeneralPunctuation
+ xmlUCSIsGeometricShapes
+ xmlUCSIsGeorgian
+ xmlUCSIsGothic
+ xmlUCSIsGreek
+ xmlUCSIsGreekExtended
+ xmlUCSIsGreekandCoptic
+ xmlUCSIsGujarati
+ xmlUCSIsGurmukhi
+ xmlUCSIsHalfwidthandFullwidthForms
+ xmlUCSIsHangulCompatibilityJamo
+ xmlUCSIsHangulJamo = _xmlUCSIsCat
+ xmlUCSIsHangulSyllables
+ xmlUCSIsHanunoo
+ xmlUCSIsHebrew
+ xmlUCSIsHighPrivateUseSurrogates
+ xmlUCSIsHighSurrogates
+ xmlUCSIsHiragana
+ xmlUCSIsIPAExtensions
+ xmlUCSIsIdeographicDescriptionCharacters = _xmlTextReaderEndElement
+ xmlUCSIsKanbun = _xmlTextReaderStartElementNs
+ xmlUCSIsKangxiRadicals
+ xmlUCSIsKannada
+ xmlUCSIsKatakana
+ xmlUCSIsKatakanaPhoneticExtensions
+ xmlUCSIsKhmer = _xmlTextReaderEndElementNs
+ xmlUCSIsKhmerSymbols
+ xmlUCSIsLao
+ xmlUCSIsLatin1Supplement = _xmlTextReaderCDataBlock
+ xmlUCSIsLatinExtendedA
+ xmlUCSIsLatinExtendedAdditional
+ xmlUCSIsLatinExtendedB
+ xmlUCSIsLetterlikeSymbols
+ xmlUCSIsLimbu = _xmlTextReaderPushData
+ xmlUCSIsLinearBIdeograms
+ xmlUCSIsLinearBSyllabary
+ xmlUCSIsLowSurrogates
+ xmlUCSIsMalayalam
+ xmlUCSIsMathematicalAlphanumericSymbols
+ xmlUCSIsMathematicalOperators
+ xmlUCSIsMiscellaneousMathematicalSymbolsA
+ xmlUCSIsMiscellaneousMathematicalSymbolsB
+ xmlUCSIsMiscellaneousSymbols
+ xmlUCSIsMiscellaneousSymbolsandArrows
+ xmlUCSIsMiscellaneousTechnical
+ xmlUCSIsMongolian
+ xmlUCSIsMusicalSymbols
+ xmlUCSIsMyanmar
+ xmlUCSIsNumberForms
+ xmlUCSIsOgham
+ xmlUCSIsOldItalic
+ xmlUCSIsOpticalCharacterRecognition
+ xmlUCSIsOriya
+ xmlUCSIsOsmanya = _xmlTextReaderDoExpand
+ xmlUCSIsPhoneticExtensions
+ xmlUCSIsPrivateUse
+ xmlUCSIsPrivateUseArea
+ xmlUCSIsRunic = _xmlTextReaderValidatePop
+ xmlUCSIsShavian
+ xmlUCSIsSinhala
+ xmlUCSIsSmallFormVariants
+ xmlUCSIsSpacingModifierLetters
+ xmlUCSIsSpecials
+ xmlUCSIsSuperscriptsandSubscripts
+ xmlUCSIsSupplementalArrowsA
+ xmlUCSIsSupplementalArrowsB
+ xmlUCSIsSupplementalMathematicalOperators
+ xmlUCSIsSupplementaryPrivateUseAreaA
+ xmlUCSIsSupplementaryPrivateUseAreaB
+ xmlUCSIsSyriac
+ xmlUCSIsTagalog
+ xmlUCSIsTagbanwa
+ xmlUCSIsTags
+ xmlUCSIsTaiLe
+ xmlUCSIsTaiXuanJingSymbols
+ xmlUCSIsTamil
+ xmlUCSIsTelugu
+ xmlUCSIsThaana
+ xmlUCSIsThai
+ xmlUCSIsTibetan
+ xmlUCSIsUgaritic
+ xmlUCSIsUnifiedCanadianAboriginalSyllabics
+ xmlUCSIsVariationSelectors
+ xmlUCSIsVariationSelectorsSupplement
+ xmlUCSIsYiRadicals
+ xmlUCSIsYiSyllables
+ xmlUCSIsYijingHexagramSymbols
+ xmlURIEscape = _xmlValidateAttributeIdCallback
+ xmlURIEscapeStr
+ xmlURIUnescapeString = _xmlParseURI
+ xmlUTF8Charcmp
+ xmlUTF8Size
+ xmlUTF8Strlen
+ xmlUTF8Strloc
+ xmlUTF8Strndup
+ xmlUTF8Strpos
+ xmlUTF8Strsize
+ xmlUTF8Strsub
+ xmlUnlinkNode
+ xmlUnlockLibrary
+ xmlUnsetNsProp = _xmlBufferWriteQuotedString
+ xmlUnsetProp = _xmlBufferWriteCHAR
+ xmlValidBuildContentModel
+ xmlValidCtxtNormalizeAttributeValue
+ xmlValidGetPotentialChildren
+ xmlValidGetValidElements
+ xmlValidNormalizeAttributeValue
+ xmlValidateAttributeDecl
+ xmlValidateAttributeValue
+ xmlValidateDocument
+ xmlValidateDocumentFinal
+ xmlValidateDtd
+ xmlValidateDtdFinal = _htmlNodeInfoPush
+ xmlValidateElement
+ xmlValidateElementDecl
+ xmlValidateNCName
+ xmlValidateNMToken
+ xmlValidateName
+ xmlValidateNameValue
+ xmlValidateNamesValue
+ xmlValidateNmtokenValue
+ xmlValidateNmtokensValue
+ xmlValidateNotationDecl
+ xmlValidateNotationUse
+ xmlValidateOneAttribute
+ xmlValidateOneElement
+ xmlValidateOneNamespace
+ xmlValidatePopElement
+ xmlValidatePushCData
+ xmlValidatePushElement
+ xmlValidateQName = _xmlDOMWrapNSNormDeclareNsForced
+ xmlValidateRoot
+ xmlXIncludeFreeContext
+ xmlXIncludeNewContext
+ xmlXIncludeProcess
+ xmlXIncludeProcessFlags
+ xmlXIncludeProcessFlagsData
+ xmlXIncludeProcessNode
+ xmlXIncludeProcessTree
+ xmlXIncludeProcessTreeFlags
+ xmlXIncludeProcessTreeFlagsData
+ xmlXIncludeSetFlags
+ xmlXPathAddValues
+ xmlXPathBooleanFunction
+ xmlXPathCastBooleanToNumber
+ xmlXPathCastBooleanToString
+ xmlXPathCastNodeSetToBoolean
+ xmlXPathCastNodeSetToNumber
+ xmlXPathCastNodeSetToString
+ xmlXPathCastNodeToNumber
+ xmlXPathCastNodeToString
+ xmlXPathCastNumberToBoolean
+ xmlXPathCastNumberToString
+ xmlXPathCastStringToBoolean
+ xmlXPathCastStringToNumber
+ xmlXPathCastToBoolean
+ xmlXPathCastToNumber
+ xmlXPathCastToString
+ xmlXPathCeilingFunction
+ xmlXPathCmpNodes
+ xmlXPathCompareValues
+ xmlXPathCompile
+ xmlXPathCompiledEval
+ xmlXPathCompiledEvalToBoolean
+ xmlXPathConcatFunction
+ xmlXPathContainsFunction
+ xmlXPathContextSetCache
+ xmlXPathConvertBoolean
+ xmlXPathConvertNumber
+ xmlXPathConvertString
+ xmlXPathCountFunction
+ xmlXPathCtxtCompile
+ xmlXPathDebugDumpCompExpr
+ xmlXPathDebugDumpObject
+ xmlXPathDifference
+ xmlXPathDistinct
+ xmlXPathDistinctSorted
+ xmlXPathDivValues
+ xmlXPathEqualValues
+ xmlXPathErr
+ xmlXPathEval
+ xmlXPathEvalExpr = _xmlXPtrNewRangeNodePoint
+ xmlXPathEvalExpression
+ xmlXPathEvalPredicate
+ xmlXPathEvaluatePredicateResult
+ xmlXPathFalseFunction
+ xmlXPathFloorFunction
+ xmlXPathFreeCompExpr
+ xmlXPathFreeContext
+ xmlXPathFreeNodeSet
+ xmlXPathFreeNodeSetList
+ xmlXPathFreeObject
+ xmlXPathFreeParserContext
+ xmlXPathFunctionLookup = _xmlXPathWrapExternal
+ xmlXPathFunctionLookupNS
+ xmlXPathHasSameNodes = _xmlXPathNewCString
+ xmlXPathIdFunction = _xmlXPathPopString
+ xmlXPathInit
+ xmlXPathIntersection
+ xmlXPathIsInf
+ xmlXPathIsNaN
+ xmlXPathIsNodeType
+ xmlXPathLangFunction
+ xmlXPathLastFunction
+ xmlXPathLeading
+ xmlXPathLeadingSorted
+ xmlXPathLocalNameFunction
+ xmlXPathModValues
+ xmlXPathMultValues
+ xmlXPathNAN
+ xmlXPathNINF
+ xmlXPathNamespaceURIFunction
+ xmlXPathNewBoolean
+ xmlXPathNewCString
+ xmlXPathNewContext
+ xmlXPathNewFloat
+ xmlXPathNewNodeSet = _xmlXPathRegisterNs
+ xmlXPathNewNodeSetList
+ xmlXPathNewParserContext
+ xmlXPathNewString
+ xmlXPathNewValueTree
+ xmlXPathNextAncestor
+ xmlXPathNextAncestorOrSelf = _xmlXPathCompExprAdd
+ xmlXPathNextAttribute
+ xmlXPathNextChild
+ xmlXPathNextDescendant
+ xmlXPathNextDescendantOrSelf
+ xmlXPathNextFollowing
+ xmlXPathNextFollowingSibling
+ xmlXPathNextNamespace
+ xmlXPathNextParent
+ xmlXPathNextPreceding
+ xmlXPathNextPrecedingSibling
+ xmlXPathNextSelf
+ xmlXPathNodeEval
+ xmlXPathNodeLeading
+ xmlXPathNodeLeadingSorted
+ xmlXPathNodeSetAdd
+ xmlXPathNodeSetAddNs
+ xmlXPathNodeSetAddUnique
+ xmlXPathNodeSetContains
+ xmlXPathNodeSetCreate
+ xmlXPathNodeSetDel
+ xmlXPathNodeSetFreeNs
+ xmlXPathNodeSetMerge
+ xmlXPathNodeSetRemove
+ xmlXPathNodeSetSort
+ xmlXPathNodeTrailing
+ xmlXPathNodeTrailingSorted
+ xmlXPathNormalizeFunction
+ xmlXPathNotEqualValues
+ xmlXPathNotFunction
+ xmlXPathNsLookup
+ xmlXPathNumberFunction
+ xmlXPathObjectCopy
+ xmlXPathOrderDocElems
+ xmlXPathPINF
+ xmlXPathParseNCName
+ xmlXPathParseName
+ xmlXPathPopBoolean
+ xmlXPathPopExternal
+ xmlXPathPopNodeSet
+ xmlXPathPopNumber
+ xmlXPathPopString
+ xmlXPathPositionFunction
+ xmlXPathRegisterAllFunctions
+ xmlXPathRegisterFunc
+ xmlXPathRegisterFuncLookup
+ xmlXPathRegisterFuncNS
+ xmlXPathRegisterNs
+ xmlXPathRegisterVariable
+ xmlXPathRegisterVariableLookup
+ xmlXPathRegisterVariableNS = _xmlXPathObjectCopy
+ xmlXPathRegisteredFuncsCleanup
+ xmlXPathRegisteredNsCleanup = _xmlXPathVariableLookup
+ xmlXPathRegisteredVariablesCleanup
+ xmlXPathRoot
+ xmlXPathRoundFunction
+ xmlXPathSetContextNode
+ xmlXPathStartsWithFunction
+ xmlXPathStringEvalNumber
+ xmlXPathStringFunction
+ xmlXPathStringLengthFunction
+ xmlXPathSubValues
+ xmlXPathSubstringAfterFunction
+ xmlXPathSubstringBeforeFunction
+ xmlXPathSubstringFunction
+ xmlXPathSumFunction
+ xmlXPathTrailing = _xmlXPathNameFunction
+ xmlXPathTrailingSorted
+ xmlXPathTranslateFunction
+ xmlXPathTrueFunction = _xmlXPathDistinctSorted
+ xmlXPathValueFlipSign
+ xmlXPathVariableLookup
+ xmlXPathVariableLookupNS
+ xmlXPathWrapCString
+ xmlXPathWrapExternal
+ xmlXPathWrapNodeSet
+ xmlXPathWrapString
+ xmlXPatherror
+ xmlXPtrBuildNodeList
+ xmlXPtrEval
+ xmlXPtrEvalRangePredicate
+ xmlXPtrFreeLocationSet
+ xmlXPtrLocationSetAdd
+ xmlXPtrLocationSetCreate
+ xmlXPtrLocationSetDel
+ xmlXPtrLocationSetMerge
+ xmlXPtrLocationSetRemove
+ xmlXPtrNewCollapsedRange
+ xmlXPtrNewContext
+ xmlXPtrNewLocationSetNodeSet
+ xmlXPtrNewLocationSetNodes
+ xmlXPtrNewRange
+ xmlXPtrNewRangeNodeObject
+ xmlXPtrNewRangeNodePoint
+ xmlXPtrNewRangeNodes
+ xmlXPtrNewRangePointNode
+ xmlXPtrNewRangePoints
+ xmlXPtrRangeToFunction
+ xmlXPtrWrapLocationSet
diff --git a/libxml2/lib/libxml2-2.lib b/libxml2/lib/libxml2-2.lib
new file mode 100644
index 000000000..c759cda24
--- /dev/null
+++ b/libxml2/lib/libxml2-2.lib
Binary files differ
diff --git a/libxml2/lib64/libxml2-2.def b/libxml2/lib64/libxml2-2.def
new file mode 100644
index 000000000..7f20ef9f7
--- /dev/null
+++ b/libxml2/lib64/libxml2-2.def
@@ -0,0 +1,1666 @@
+LIBRARY libxml2-2
+EXPORTS
+ UTF8ToHtml
+ UTF8Toisolat1
+ __docbDefaultSAXHandler
+ __htmlDefaultSAXHandler
+ __oldXMLWDcompatibility
+ __xmlBufferAllocScheme
+ __xmlDefaultBufferSize = xmlC11NNormalizeString
+ __xmlDefaultSAXHandler
+ __xmlDefaultSAXLocator
+ __xmlDeregisterNodeDefaultValue
+ __xmlDoValidityCheckingDefaultValue
+ __xmlErrEncoding
+ __xmlGenericError
+ __xmlGenericErrorContext
+ __xmlGetWarningsDefaultValue
+ __xmlIndentTreeOutput
+ __xmlKeepBlanksDefaultValue
+ __xmlLastError
+ __xmlLineNumbersDefaultValue
+ __xmlLoadExtDtdDefaultValue
+ __xmlOutputBufferCreateFilenameValue
+ __xmlParserDebugEntities
+ __xmlParserInputBufferCreateFilenameValue
+ __xmlParserVersion
+ __xmlPedanticParserDefaultValue = xmlC14NFreeCtx
+ __xmlRaiseError
+ __xmlRegisterNodeDefaultValue
+ __xmlSaveNoEmptyTags
+ __xmlSimpleError
+ __xmlStructuredError
+ __xmlStructuredErrorContext
+ __xmlSubstituteEntitiesDefaultValue
+ __xmlTreeIndentString = xmlC14NErrRelativeNamespace
+ attribute
+ attributeDecl
+ cdataBlock
+ characters
+ checkNamespace
+ comment = xmlPatScanName.isra.2
+ docbDefaultSAXHandlerInit
+ elementDecl
+ emptyExp
+ endDocument
+ endElement
+ entityDecl
+ externalSubset
+ forbiddenExp
+ getColumnNumber
+ getEntity
+ getLineNumber
+ getNamespace
+ getParameterEntity
+ getPublicId
+ getSystemId
+ globalNamespace
+ hasExternalSubset
+ hasInternalSubset
+ htmlAttrAllowed
+ htmlAutoCloseTag
+ htmlCreateFileParserCtxt
+ htmlCreateMemoryParserCtxt
+ htmlCreatePushParserCtxt
+ htmlCtxtReadDoc
+ htmlCtxtReadFd
+ htmlCtxtReadFile
+ htmlCtxtReadIO
+ htmlCtxtReadMemory
+ htmlCtxtReset
+ htmlCtxtUseOptions
+ htmlDefaultSAXHandlerInit
+ htmlDocContentDumpFormatOutput = xmlCtxtDumpDocumentHead
+ htmlDocContentDumpOutput
+ htmlDocDump
+ htmlDocDumpMemory
+ htmlDocDumpMemoryFormat
+ htmlElementAllowedHere
+ htmlElementStatusHere
+ htmlEncodeEntities
+ htmlEntityLookup
+ htmlEntityValueLookup
+ htmlFreeParserCtxt
+ htmlGetMetaEncoding
+ htmlHandleOmittedElem
+ htmlInitAutoClose
+ htmlIsAutoClosed
+ htmlIsBooleanAttr
+ htmlIsScriptAttribute
+ htmlNewDoc
+ htmlNewDocNoDtD
+ htmlNewParserCtxt
+ htmlNodeDump
+ htmlNodeDumpFile
+ htmlNodeDumpFileFormat
+ htmlNodeDumpFormatOutput
+ htmlNodeDumpOutput
+ htmlNodeStatus
+ htmlParseCharRef
+ htmlParseChunk
+ htmlParseDoc
+ htmlParseDocument
+ htmlParseElement
+ htmlParseEntityRef
+ htmlParseFile
+ htmlReadDoc
+ htmlReadFd
+ htmlReadFile
+ htmlReadIO
+ htmlReadMemory
+ htmlSAXParseDoc
+ htmlSAXParseFile
+ htmlSaveFile
+ htmlSaveFileEnc
+ htmlSaveFileFormat
+ htmlSetMetaEncoding
+ htmlTagLookup
+ ignorableWhitespace
+ initGenericErrorDefaultFunc
+ initdocbDefaultSAXHandler
+ inithtmlDefaultSAXHandler
+ initxmlDefaultSAXHandler
+ inputPop = xmlParseEncodingDecl
+ inputPush
+ internalSubset
+ isStandalone
+ isolat1ToUTF8
+ namePop
+ namePush
+ namespaceDecl
+ nodePop
+ nodePush
+ notationDecl
+ processingInstruction
+ reference
+ resolveEntity
+ setDocumentLocator
+ setNamespace
+ startDocument
+ startElement
+ unparsedEntityDecl
+ valuePop
+ valuePush
+ xlinkGetDefaultDetect
+ xlinkGetDefaultHandler
+ xlinkIsLink
+ xlinkSetDefaultDetect
+ xlinkSetDefaultHandler
+ xmlACatalogAdd
+ xmlACatalogDump = xmlCatalogAddLocal
+ xmlACatalogRemove
+ xmlACatalogResolve = xmlCatalogSetDefaults
+ xmlACatalogResolvePublic
+ xmlACatalogResolveSystem
+ xmlACatalogResolveURI
+ xmlAddAttributeDecl
+ xmlAddChild
+ xmlAddChildList
+ xmlAddDocEntity
+ xmlAddDtdEntity
+ xmlAddElementDecl
+ xmlAddEncodingAlias
+ xmlAddID
+ xmlAddNextSibling
+ xmlAddNotationDecl = xmlIsRef
+ xmlAddPrevSibling = xmlNodeGetLang
+ xmlAddRef
+ xmlAddSibling
+ xmlAllocOutputBuffer
+ xmlAllocParserInputBuffer = xmlOutputBufferWriteEscape
+ xmlAttrSerializeTxtContent
+ xmlAutomataCompile
+ xmlAutomataGetInitState
+ xmlAutomataIsDeterminist
+ xmlAutomataNewAllTrans
+ xmlAutomataNewCountTrans
+ xmlAutomataNewCountTrans2
+ xmlAutomataNewCountedTrans
+ xmlAutomataNewCounter
+ xmlAutomataNewCounterTrans
+ xmlAutomataNewEpsilon
+ xmlAutomataNewNegTrans
+ xmlAutomataNewOnceTrans
+ xmlAutomataNewOnceTrans2
+ xmlAutomataNewState
+ xmlAutomataNewTransition
+ xmlAutomataNewTransition2
+ xmlAutomataSetFinalState
+ xmlBoolToText
+ xmlBufContent
+ xmlBufEnd
+ xmlBufGetNodeContent
+ xmlBufNodeDump
+ xmlBufShrink
+ xmlBufUse
+ xmlBufferAdd
+ xmlBufferAddHead
+ xmlBufferCCat
+ xmlBufferCat
+ xmlBufferContent
+ xmlBufferCreate
+ xmlBufferCreateSize
+ xmlBufferCreateStatic
+ xmlBufferDetach
+ xmlBufferDump
+ xmlBufferEmpty
+ xmlBufferFree
+ xmlBufferGrow
+ xmlBufferLength
+ xmlBufferResize
+ xmlBufferSetAllocationScheme
+ xmlBufferShrink
+ xmlBufferWriteCHAR
+ xmlBufferWriteChar
+ xmlBufferWriteQuotedString
+ xmlBuildQName
+ xmlBuildRelativeURI
+ xmlBuildURI
+ xmlByteConsumed
+ xmlC14NDocDumpMemory
+ xmlC14NDocSave
+ xmlC14NDocSaveTo
+ xmlC14NExecute
+ xmlCanonicPath
+ xmlCatalogAdd
+ xmlCatalogAddLocal
+ xmlCatalogCleanup
+ xmlCatalogConvert
+ xmlCatalogDump = xmlThrDefIndentTreeOutput
+ xmlCatalogFreeLocal
+ xmlCatalogGetDefaults
+ xmlCatalogGetPublic
+ xmlCatalogGetSystem = xmlFreeRMutex
+ xmlCatalogIsEmpty
+ xmlCatalogLocalResolve = __xmlOutputBufferCreateFilenameValue
+ xmlCatalogLocalResolveURI
+ xmlCatalogRemove
+ xmlCatalogResolve = xmlThrDefGetWarningsDefaultValue
+ xmlCatalogResolvePublic = __xmlGetWarningsDefaultValue
+ xmlCatalogResolveSystem = __xmlStructuredErrorContext
+ xmlCatalogResolveURI = __xmlIndentTreeOutput
+ xmlCatalogSetDebug = xmlThrDefSaveNoEmptyTags
+ xmlCatalogSetDefaultPrefer
+ xmlCatalogSetDefaults
+ xmlCharEncCloseFunc
+ xmlCharEncFirstLine
+ xmlCharEncInFunc
+ xmlCharEncOutFunc
+ xmlCharInRange
+ xmlCharStrdup
+ xmlCharStrndup
+ xmlCheckFilename
+ xmlCheckHTTPInput
+ xmlCheckLanguageID
+ xmlCheckUTF8 = xmlBufLength
+ xmlCheckVersion
+ xmlChildElementCount
+ xmlCleanupCharEncodingHandlers
+ xmlCleanupEncodingAliases
+ xmlCleanupGlobals
+ xmlCleanupInputCallbacks
+ xmlCleanupMemory
+ xmlCleanupOutputCallbacks
+ xmlCleanupParser
+ xmlCleanupPredefinedEntities
+ xmlCleanupThreads
+ xmlClearNodeInfoSeq
+ xmlClearParserCtxt
+ xmlConvertSGMLCatalog
+ xmlCopyAttributeTable
+ xmlCopyChar
+ xmlCopyCharMultiByte
+ xmlCopyDoc
+ xmlCopyDocElementContent
+ xmlCopyDtd
+ xmlCopyElementContent
+ xmlCopyElementTable
+ xmlCopyEntitiesTable
+ xmlCopyEnumeration
+ xmlCopyError
+ xmlCopyNamespace
+ xmlCopyNamespaceList
+ xmlCopyNode
+ xmlCopyNodeList
+ xmlCopyNotationTable
+ xmlCopyProp
+ xmlCopyPropList = xmlNodeIsText
+ xmlCreateDocParserCtxt
+ xmlCreateEntitiesTable
+ xmlCreateEntityParserCtxt
+ xmlCreateEnumeration
+ xmlCreateFileParserCtxt
+ xmlCreateIOParserCtxt
+ xmlCreateIntSubset
+ xmlCreateMemoryParserCtxt
+ xmlCreatePushParserCtxt
+ xmlCreateURI
+ xmlCreateURLParserCtxt
+ xmlCtxtGetLastError
+ xmlCtxtReadDoc
+ xmlCtxtReadFd
+ xmlCtxtReadFile
+ xmlCtxtReadIO
+ xmlCtxtReadMemory
+ xmlCtxtReset
+ xmlCtxtResetLastError
+ xmlCtxtResetPush
+ xmlCtxtUseOptions
+ xmlCurrentChar
+ xmlDOMWrapAdoptNode
+ xmlDOMWrapCloneNode
+ xmlDOMWrapFreeCtxt
+ xmlDOMWrapNewCtxt
+ xmlDOMWrapReconcileNamespaces
+ xmlDOMWrapRemoveNode
+ xmlDebugCheckDocument
+ xmlDebugDumpAttr = xmlShellDu
+ xmlDebugDumpAttrList
+ xmlDebugDumpDTD
+ xmlDebugDumpDocument
+ xmlDebugDumpDocumentHead
+ xmlDebugDumpEntities
+ xmlDebugDumpNode
+ xmlDebugDumpNodeList
+ xmlDebugDumpOneNode
+ xmlDebugDumpString
+ xmlDecodeEntities
+ xmlDefaultSAXHandlerInit
+ xmlDelEncodingAlias
+ xmlDeregisterNodeDefault
+ xmlDetectCharEncoding
+ xmlDictCleanup
+ xmlDictCreate = xmlErrValid
+ xmlDictCreateSub
+ xmlDictExists
+ xmlDictFree
+ xmlDictGetUsage
+ xmlDictLookup
+ xmlDictOwns
+ xmlDictQLookup
+ xmlDictReference
+ xmlDictSetLimit
+ xmlDictSize
+ xmlDocCopyNode
+ xmlDocCopyNodeList
+ xmlDocDump
+ xmlDocDumpFormatMemory
+ xmlDocDumpFormatMemoryEnc = xmlSchematronRunTest
+ xmlDocDumpMemory
+ xmlDocDumpMemoryEnc
+ xmlDocFormatDump
+ xmlDocGetRootElement
+ xmlDocSetRootElement
+ xmlDumpAttributeDecl
+ xmlDumpAttributeTable
+ xmlDumpElementDecl
+ xmlDumpElementTable
+ xmlDumpEntitiesTable
+ xmlDumpEntityDecl
+ xmlDumpNotationDecl
+ xmlDumpNotationTable
+ xmlElemDump
+ xmlEncodeEntities = xmlStreamCtxtAddState
+ xmlEncodeEntitiesReentrant
+ xmlEncodeSpecialChars
+ xmlErrMemory
+ xmlExpCtxtNbCons
+ xmlExpCtxtNbNodes
+ xmlExpDump
+ xmlExpExpDerive
+ xmlExpFree
+ xmlExpFreeCtxt
+ xmlExpGetLanguage = xmlSchemaFormatQName
+ xmlExpGetStart
+ xmlExpIsNillable
+ xmlExpMaxToken
+ xmlExpNewAtom
+ xmlExpNewCtxt
+ xmlExpNewOr
+ xmlExpNewRange
+ xmlExpNewSeq
+ xmlExpParse
+ xmlExpRef = xmlSchemaItemListAdd
+ xmlExpStringDerive = xmlSchemaContentModelDump
+ xmlExpSubsume
+ xmlFileClose
+ xmlFileMatch
+ xmlFileOpen
+ xmlFileRead
+ xmlFindCharEncodingHandler
+ xmlFirstElementChild
+ xmlFree
+ xmlFreeAttributeTable = xmlGetDtdAttrDesc
+ xmlFreeAutomata
+ xmlFreeCatalog
+ xmlFreeDoc
+ xmlFreeDocElementContent
+ xmlFreeDtd
+ xmlFreeElementContent
+ xmlFreeElementTable = xmlDumpNotationTable
+ xmlFreeEntitiesTable
+ xmlFreeEnumeration
+ xmlFreeIDTable
+ xmlFreeInputStream
+ xmlFreeMutex
+ xmlFreeNode
+ xmlFreeNodeList
+ xmlFreeNotationTable
+ xmlFreeNs
+ xmlFreeNsList
+ xmlFreeParserCtxt
+ xmlFreeParserInputBuffer
+ xmlFreePattern
+ xmlFreePatternList
+ xmlFreeProp
+ xmlFreePropList
+ xmlFreeRMutex
+ xmlFreeRefTable
+ xmlFreeStreamCtxt
+ xmlFreeTextReader
+ xmlFreeTextWriter
+ xmlFreeURI
+ xmlFreeValidCtxt
+ xmlGcMemGet
+ xmlGcMemSetup
+ xmlGetBufferAllocationScheme
+ xmlGetCharEncodingHandler
+ xmlGetCharEncodingName
+ xmlGetCompressMode
+ xmlGetDocCompressMode
+ xmlGetDocEntity
+ xmlGetDtdAttrDesc
+ xmlGetDtdElementDesc
+ xmlGetDtdEntity
+ xmlGetDtdNotationDesc
+ xmlGetDtdQAttrDesc
+ xmlGetDtdQElementDesc
+ xmlGetEncodingAlias
+ xmlGetExternalEntityLoader
+ xmlGetFeature
+ xmlGetFeaturesList
+ xmlGetGlobalState
+ xmlGetID
+ xmlGetIntSubset
+ xmlGetLastChild
+ xmlGetLastError
+ xmlGetLineNo
+ xmlGetNoNsProp
+ xmlGetNodePath
+ xmlGetNsList
+ xmlGetNsProp
+ xmlGetParameterEntity
+ xmlGetPredefinedEntity
+ xmlGetProp
+ xmlGetRefs
+ xmlGetThreadId
+ xmlGetUTF8Char
+ xmlHandleEntity
+ xmlHasFeature
+ xmlHasNsProp
+ xmlHasProp
+ xmlHashAddEntry
+ xmlHashAddEntry2
+ xmlHashAddEntry3
+ xmlHashCopy
+ xmlHashCreate
+ xmlHashCreateDict = xmlHashScan3
+ xmlHashFree
+ xmlHashLookup
+ xmlHashLookup2 = xmlListCopy
+ xmlHashLookup3
+ xmlHashQLookup = xmlIOHTTPMatch
+ xmlHashQLookup2 = xmlIOFTPMatch
+ xmlHashQLookup3
+ xmlHashRemoveEntry
+ xmlHashRemoveEntry2
+ xmlHashRemoveEntry3
+ xmlHashScan
+ xmlHashScan3
+ xmlHashScanFull = xmlWrapOpenNative
+ xmlHashScanFull3
+ xmlHashSize
+ xmlHashUpdateEntry
+ xmlHashUpdateEntry2
+ xmlHashUpdateEntry3
+ xmlIOFTPClose
+ xmlIOFTPMatch
+ xmlIOFTPOpen
+ xmlIOFTPRead
+ xmlIOHTTPClose
+ xmlIOHTTPMatch
+ xmlIOHTTPOpen = xmlFileWrite
+ xmlIOHTTPOpenW
+ xmlIOHTTPRead
+ xmlIOParseDTD
+ xmlInitCharEncodingHandlers
+ xmlInitGlobals
+ xmlInitMemory
+ xmlInitNodeInfoSeq
+ xmlInitParser
+ xmlInitParserCtxt
+ xmlInitThreads
+ xmlInitializeCatalog
+ xmlInitializeDict
+ xmlInitializeGlobalState
+ xmlInitializePredefinedEntities
+ xmlIsBaseChar
+ xmlIsBaseCharGroup
+ xmlIsBlank
+ xmlIsBlankNode
+ xmlIsChar
+ xmlIsCharGroup
+ xmlIsCombining
+ xmlIsCombiningGroup
+ xmlIsDigit
+ xmlIsDigitGroup
+ xmlIsExtender
+ xmlIsExtenderGroup
+ xmlIsID
+ xmlIsIdeographic
+ xmlIsIdeographicGroup
+ xmlIsLetter
+ xmlIsMainThread
+ xmlIsMixedElement = xmlValidateOneNamespace
+ xmlIsPubidChar
+ xmlIsPubidChar_tab
+ xmlIsRef
+ xmlIsXHTML
+ xmlKeepBlanksDefault
+ xmlLastElementChild
+ xmlLineNumbersDefault
+ xmlLinkGetData
+ xmlListAppend
+ xmlListClear
+ xmlListCopy
+ xmlListCreate
+ xmlListDelete
+ xmlListDup
+ xmlListEmpty
+ xmlListEnd
+ xmlListFront
+ xmlListInsert
+ xmlListMerge
+ xmlListPopBack
+ xmlListPopFront
+ xmlListPushBack
+ xmlListPushFront
+ xmlListRemoveAll
+ xmlListRemoveFirst
+ xmlListRemoveLast
+ xmlListReverse
+ xmlListReverseSearch
+ xmlListReverseWalk = xmlFileClose
+ xmlListSearch
+ xmlListSize
+ xmlListSort
+ xmlListWalk
+ xmlLoadACatalog = xmlCatalogResolve
+ xmlLoadCatalog
+ xmlLoadCatalogs = xmlThrDefDefaultBufferSize
+ xmlLoadExternalEntity
+ xmlLoadSGMLSuperCatalog
+ xmlLockLibrary
+ xmlLsCountNode
+ xmlLsOneNode
+ xmlMalloc
+ xmlMallocAtomic
+ xmlMallocAtomicLoc
+ xmlMallocLoc
+ xmlMemBlocks
+ xmlMemDisplay
+ xmlMemDisplayLast
+ xmlMemFree
+ xmlMemGet
+ xmlMemMalloc
+ xmlMemRealloc
+ xmlMemSetup
+ xmlMemShow
+ xmlMemStrdup
+ xmlMemStrdupLoc
+ xmlMemUsed
+ xmlMemoryDump
+ xmlMemoryStrdup
+ xmlModuleClose
+ xmlModuleFree
+ xmlModuleOpen
+ xmlModuleSymbol
+ xmlMutexLock = xmlC14NNsCompare
+ xmlMutexUnlock
+ xmlNamespaceParseNCName = xmlIsBlank
+ xmlNamespaceParseNSDef
+ xmlNamespaceParseQName
+ xmlNanoFTPCheckResponse = xmlNanoFTPList
+ xmlNanoFTPCleanup
+ xmlNanoFTPClose
+ xmlNanoFTPCloseConnection
+ xmlNanoFTPConnect
+ xmlNanoFTPConnectTo
+ xmlNanoFTPCwd
+ xmlNanoFTPDele
+ xmlNanoFTPFreeCtxt
+ xmlNanoFTPGet = xmlParseXMLCatalogNodeList
+ xmlNanoFTPGetConnection
+ xmlNanoFTPGetResponse
+ xmlNanoFTPGetSocket
+ xmlNanoFTPInit
+ xmlNanoFTPList
+ xmlNanoFTPNewCtxt
+ xmlNanoFTPOpen
+ xmlNanoFTPProxy
+ xmlNanoFTPQuit
+ xmlNanoFTPRead
+ xmlNanoFTPScanProxy
+ xmlNanoFTPUpdateURL
+ xmlNanoHTTPAuthHeader
+ xmlNanoHTTPCleanup = xmlNanoHTTPOpenRedir
+ xmlNanoHTTPClose
+ xmlNanoHTTPContentLength
+ xmlNanoHTTPEncoding
+ xmlNanoHTTPFetch
+ xmlNanoHTTPInit
+ xmlNanoHTTPMethod
+ xmlNanoHTTPMethodRedir
+ xmlNanoHTTPMimeType
+ xmlNanoHTTPOpen
+ xmlNanoHTTPOpenRedir
+ xmlNanoHTTPRead
+ xmlNanoHTTPRedir
+ xmlNanoHTTPReturnCode
+ xmlNanoHTTPSave
+ xmlNanoHTTPScanProxy
+ xmlNewAutomata
+ xmlNewCDataBlock
+ xmlNewCatalog
+ xmlNewCharEncodingHandler
+ xmlNewCharRef
+ xmlNewChild
+ xmlNewComment
+ xmlNewDoc
+ xmlNewDocComment
+ xmlNewDocElementContent
+ xmlNewDocFragment
+ xmlNewDocNode
+ xmlNewDocNodeEatName
+ xmlNewDocPI
+ xmlNewDocProp
+ xmlNewDocRawNode
+ xmlNewDocText
+ xmlNewDocTextLen
+ xmlNewDtd
+ xmlNewElementContent
+ xmlNewEntity
+ xmlNewEntityInputStream
+ xmlNewGlobalNs
+ xmlNewIOInputStream
+ xmlNewInputFromFile
+ xmlNewInputStream
+ xmlNewMutex
+ xmlNewNode
+ xmlNewNodeEatName
+ xmlNewNs
+ xmlNewNsProp
+ xmlNewNsPropEatName
+ xmlNewPI
+ xmlNewParserCtxt
+ xmlNewProp
+ xmlNewRMutex
+ xmlNewReference
+ xmlNewStringInputStream
+ xmlNewText
+ xmlNewTextChild
+ xmlNewTextLen
+ xmlNewTextReader
+ xmlNewTextReaderFilename
+ xmlNewTextWriter
+ xmlNewTextWriterDoc
+ xmlNewTextWriterFilename
+ xmlNewTextWriterMemory
+ xmlNewTextWriterPushParser = xmlTextWriterEndElement
+ xmlNewTextWriterTree
+ xmlNewValidCtxt
+ xmlNextChar
+ xmlNextElementSibling
+ xmlNoNetExternalEntityLoader = xmlURIErrMemory
+ xmlNodeAddContent
+ xmlNodeAddContentLen
+ xmlNodeBufGetContent
+ xmlNodeDump
+ xmlNodeDumpOutput
+ xmlNodeGetBase
+ xmlNodeGetContent
+ xmlNodeGetLang
+ xmlNodeGetSpacePreserve
+ xmlNodeIsText
+ xmlNodeListGetRawString
+ xmlNodeListGetString = xmlGetLastChild
+ xmlNodeSetBase
+ xmlNodeSetContent
+ xmlNodeSetContentLen
+ xmlNodeSetLang
+ xmlNodeSetName
+ xmlNodeSetSpacePreserve
+ xmlNormalizeURIPath
+ xmlNormalizeWindowsPath = xmlOutputBufferCreateFd
+ xmlOutputBufferClose
+ xmlOutputBufferCreateBuffer
+ xmlOutputBufferCreateFd
+ xmlOutputBufferCreateFile
+ xmlOutputBufferCreateFilename
+ xmlOutputBufferCreateFilenameDefault
+ xmlOutputBufferCreateIO
+ xmlOutputBufferFlush
+ xmlOutputBufferGetContent
+ xmlOutputBufferGetSize
+ xmlOutputBufferWrite
+ xmlOutputBufferWriteEscape
+ xmlOutputBufferWriteString
+ xmlParseAttValue
+ xmlParseAttribute
+ xmlParseAttributeListDecl
+ xmlParseAttributeType
+ xmlParseBalancedChunkMemory
+ xmlParseBalancedChunkMemoryRecover
+ xmlParseCDSect
+ xmlParseCatalogFile
+ xmlParseCharData
+ xmlParseCharEncoding
+ xmlParseCharRef
+ xmlParseChunk = xmlParseDocument
+ xmlParseComment
+ xmlParseContent
+ xmlParseCtxtExternalEntity
+ xmlParseDTD
+ xmlParseDefaultDecl
+ xmlParseDoc
+ xmlParseDocTypeDecl
+ xmlParseDocument
+ xmlParseElement
+ xmlParseElementChildrenContentDecl
+ xmlParseElementContentDecl
+ xmlParseElementDecl
+ xmlParseElementMixedContentDecl
+ xmlParseEncName
+ xmlParseEncodingDecl
+ xmlParseEndTag
+ xmlParseEntity
+ xmlParseEntityDecl
+ xmlParseEntityRef
+ xmlParseEntityValue
+ xmlParseEnumeratedType
+ xmlParseEnumerationType
+ xmlParseExtParsedEnt
+ xmlParseExternalEntity
+ xmlParseExternalID
+ xmlParseExternalSubset
+ xmlParseFile
+ xmlParseInNodeContext
+ xmlParseMarkupDecl
+ xmlParseMemory
+ xmlParseMisc
+ xmlParseName
+ xmlParseNamespace
+ xmlParseNmtoken
+ xmlParseNotationDecl
+ xmlParseNotationType
+ xmlParsePEReference
+ xmlParsePI
+ xmlParsePITarget
+ xmlParsePubidLiteral
+ xmlParseQuotedString
+ xmlParseReference
+ xmlParseSDDecl
+ xmlParseStartTag
+ xmlParseSystemLiteral
+ xmlParseTextDecl
+ xmlParseURI
+ xmlParseURIRaw
+ xmlParseURIReference
+ xmlParseVersionInfo
+ xmlParseVersionNum
+ xmlParseXMLDecl
+ xmlParserAddNodeInfo
+ xmlParserError
+ xmlParserFindNodeInfo
+ xmlParserFindNodeInfoIndex
+ xmlParserGetDirectory
+ xmlParserHandlePEReference
+ xmlParserHandleReference
+ xmlParserInputBufferCreateFd
+ xmlParserInputBufferCreateFile
+ xmlParserInputBufferCreateFilename = xmlOutputBufferClose
+ xmlParserInputBufferCreateFilenameDefault
+ xmlParserInputBufferCreateIO
+ xmlParserInputBufferCreateMem
+ xmlParserInputBufferCreateStatic
+ xmlParserInputBufferGrow
+ xmlParserInputBufferPush
+ xmlParserInputBufferRead
+ xmlParserInputGrow = xmlSwitchToEncoding
+ xmlParserInputRead = xmlSwitchInputEncoding
+ xmlParserInputShrink
+ xmlParserMaxDepth
+ xmlParserPrintFileContext
+ xmlParserPrintFileInfo
+ xmlParserValidityError
+ xmlParserValidityWarning
+ xmlParserWarning
+ xmlPathToURI
+ xmlPatternFromRoot
+ xmlPatternGetStreamCtxt
+ xmlPatternMatch
+ xmlPatternMaxDepth
+ xmlPatternMinDepth
+ xmlPatternStreamable
+ xmlPatterncompile
+ xmlPedanticParserDefault
+ xmlPopInput
+ xmlPopInputCallbacks
+ xmlPreviousElementSibling
+ xmlPrintURI
+ xmlPushInput
+ xmlRMutexLock
+ xmlRMutexUnlock
+ xmlReadDoc
+ xmlReadFd
+ xmlReadFile
+ xmlReadIO
+ xmlReadMemory
+ xmlReaderForDoc
+ xmlReaderForFd
+ xmlReaderForFile
+ xmlReaderForIO
+ xmlReaderForMemory
+ xmlReaderNewDoc
+ xmlReaderNewFd
+ xmlReaderNewFile
+ xmlReaderNewIO
+ xmlReaderNewMemory
+ xmlReaderNewWalker
+ xmlReaderWalker
+ xmlRealloc
+ xmlReallocLoc
+ xmlReconciliateNs
+ xmlRecoverDoc
+ xmlRecoverFile
+ xmlRecoverMemory
+ xmlRegExecErrInfo
+ xmlRegExecNextValues
+ xmlRegExecPushString
+ xmlRegExecPushString2
+ xmlRegFreeExecCtxt
+ xmlRegFreeRegexp
+ xmlRegNewExecCtxt
+ xmlRegexpCompile
+ xmlRegexpExec
+ xmlRegexpIsDeterminist
+ xmlRegexpPrint
+ xmlRegisterCharEncodingHandler
+ xmlRegisterDefaultInputCallbacks
+ xmlRegisterDefaultOutputCallbacks
+ xmlRegisterHTTPPostCallbacks
+ xmlRegisterInputCallbacks
+ xmlRegisterNodeDefault
+ xmlRegisterOutputCallbacks
+ xmlRelaxNGCleanupTypes
+ xmlRelaxNGDump
+ xmlRelaxNGDumpTree
+ xmlRelaxNGFree
+ xmlRelaxNGFreeParserCtxt
+ xmlRelaxNGFreeValidCtxt
+ xmlRelaxNGGetParserErrors
+ xmlRelaxNGGetValidErrors
+ xmlRelaxNGInitTypes
+ xmlRelaxNGNewDocParserCtxt
+ xmlRelaxNGNewMemParserCtxt
+ xmlRelaxNGNewParserCtxt
+ xmlRelaxNGNewValidCtxt
+ xmlRelaxNGParse
+ xmlRelaxNGSetParserErrors
+ xmlRelaxNGSetParserStructuredErrors
+ xmlRelaxNGSetValidErrors
+ xmlRelaxNGSetValidStructuredErrors
+ xmlRelaxNGValidateDoc
+ xmlRelaxNGValidateFullElement
+ xmlRelaxNGValidatePopElement
+ xmlRelaxNGValidatePushCData
+ xmlRelaxNGValidatePushElement
+ xmlRelaxParserSetFlag
+ xmlRemoveID
+ xmlRemoveProp
+ xmlRemoveRef
+ xmlReplaceNode
+ xmlResetError
+ xmlResetLastError = xmlCheckVersion
+ xmlSAX2AttributeDecl
+ xmlSAX2CDataBlock
+ xmlSAX2Characters
+ xmlSAX2Comment
+ xmlSAX2ElementDecl
+ xmlSAX2EndDocument
+ xmlSAX2EndElement
+ xmlSAX2EndElementNs
+ xmlSAX2EntityDecl
+ xmlSAX2ExternalSubset
+ xmlSAX2GetColumnNumber
+ xmlSAX2GetEntity
+ xmlSAX2GetLineNumber
+ xmlSAX2GetParameterEntity
+ xmlSAX2GetPublicId
+ xmlSAX2GetSystemId
+ xmlSAX2HasExternalSubset
+ xmlSAX2HasInternalSubset
+ xmlSAX2IgnorableWhitespace
+ xmlSAX2InitDefaultSAXHandler
+ xmlSAX2InitDocbDefaultSAXHandler
+ xmlSAX2InitHtmlDefaultSAXHandler
+ xmlSAX2InternalSubset
+ xmlSAX2IsStandalone
+ xmlSAX2NotationDecl
+ xmlSAX2ProcessingInstruction
+ xmlSAX2Reference
+ xmlSAX2ResolveEntity
+ xmlSAX2SetDocumentLocator
+ xmlSAX2StartDocument
+ xmlSAX2StartElement
+ xmlSAX2StartElementNs
+ xmlSAX2UnparsedEntityDecl
+ xmlSAXDefaultVersion
+ xmlSAXParseDTD
+ xmlSAXParseDoc
+ xmlSAXParseEntity
+ xmlSAXParseFile = xmlDOMWrapNSNormAddNsMapItem2
+ xmlSAXParseFileWithData
+ xmlSAXParseMemory
+ xmlSAXParseMemoryWithData
+ xmlSAXUserParseFile
+ xmlSAXUserParseMemory
+ xmlSAXVersion
+ xmlSaveClose
+ xmlSaveDoc
+ xmlSaveFile
+ xmlSaveFileEnc = xmlSchematronNewParserCtxt
+ xmlSaveFileTo
+ xmlSaveFlush
+ xmlSaveFormatFile
+ xmlSaveFormatFileEnc
+ xmlSaveFormatFileTo
+ xmlSaveSetAttrEscape
+ xmlSaveSetEscape
+ xmlSaveToBuffer
+ xmlSaveToFd
+ xmlSaveToFilename
+ xmlSaveToIO
+ xmlSaveTree
+ xmlSaveUri
+ xmlScanName
+ xmlSchemaCheckFacet
+ xmlSchemaCleanupTypes
+ xmlSchemaCollapseString
+ xmlSchemaCompareValues
+ xmlSchemaCompareValuesWhtsp = xmlUCSIsCJKCompatibilityIdeographsSupplement
+ xmlSchemaCopyValue
+ xmlSchemaDump
+ xmlSchemaFree
+ xmlSchemaFreeFacet
+ xmlSchemaFreeParserCtxt
+ xmlSchemaFreeType
+ xmlSchemaFreeValidCtxt
+ xmlSchemaFreeValue
+ xmlSchemaFreeWildcard
+ xmlSchemaGetBuiltInListSimpleTypeItemType
+ xmlSchemaGetBuiltInType
+ xmlSchemaGetCanonValue = xmlUCSIsGeometricShapes
+ xmlSchemaGetCanonValueWhtsp = xmlUCSIsCatM
+ xmlSchemaGetFacetValueAsULong
+ xmlSchemaGetParserErrors
+ xmlSchemaGetPredefinedType
+ xmlSchemaGetValType
+ xmlSchemaGetValidErrors
+ xmlSchemaInitTypes
+ xmlSchemaIsBuiltInTypeFacet
+ xmlSchemaIsValid
+ xmlSchemaNewDocParserCtxt
+ xmlSchemaNewFacet
+ xmlSchemaNewMemParserCtxt
+ xmlSchemaNewNOTATIONValue
+ xmlSchemaNewParserCtxt
+ xmlSchemaNewQNameValue
+ xmlSchemaNewStringValue
+ xmlSchemaNewValidCtxt
+ xmlSchemaParse
+ xmlSchemaSAXPlug
+ xmlSchemaSAXUnplug
+ xmlSchemaSetParserErrors
+ xmlSchemaSetParserStructuredErrors
+ xmlSchemaSetValidErrors
+ xmlSchemaSetValidOptions
+ xmlSchemaSetValidStructuredErrors
+ xmlSchemaValPredefTypeNode
+ xmlSchemaValPredefTypeNodeNoNorm
+ xmlSchemaValidCtxtGetOptions
+ xmlSchemaValidCtxtGetParserCtxt
+ xmlSchemaValidateDoc
+ xmlSchemaValidateFacet = xmlUCSIsCombiningDiacriticalMarksforSymbols
+ xmlSchemaValidateFacetWhtsp = xmlUCSIsGeneralPunctuation
+ xmlSchemaValidateFile
+ xmlSchemaValidateLengthFacet
+ xmlSchemaValidateLengthFacetWhtsp = xmlUCSIsCombiningDiacriticalMarks
+ xmlSchemaValidateListSimpleTypeFacet
+ xmlSchemaValidateOneElement
+ xmlSchemaValidatePredefinedType
+ xmlSchemaValidateSetFilename
+ xmlSchemaValidateSetLocator
+ xmlSchemaValidateStream
+ xmlSchemaValueAppend
+ xmlSchemaValueGetAsBoolean
+ xmlSchemaValueGetAsString
+ xmlSchemaValueGetNext
+ xmlSchemaWhiteSpaceReplace
+ xmlSchematronFree
+ xmlSchematronFreeParserCtxt
+ xmlSchematronFreeValidCtxt
+ xmlSchematronNewDocParserCtxt
+ xmlSchematronNewMemParserCtxt
+ xmlSchematronNewParserCtxt
+ xmlSchematronNewValidCtxt
+ xmlSchematronParse
+ xmlSchematronSetValidStructuredErrors
+ xmlSchematronValidateDoc
+ xmlSearchNs
+ xmlSearchNsByHref
+ xmlSetBufferAllocationScheme
+ xmlSetCompressMode
+ xmlSetDocCompressMode
+ xmlSetEntityReferenceFunc
+ xmlSetExternalEntityLoader
+ xmlSetFeature
+ xmlSetGenericErrorFunc
+ xmlSetListDoc
+ xmlSetNs
+ xmlSetNsProp
+ xmlSetProp
+ xmlSetStructuredErrorFunc
+ xmlSetTreeDoc
+ xmlSetupParserForBuffer
+ xmlShell
+ xmlShellBase
+ xmlShellCat
+ xmlShellDir
+ xmlShellDu
+ xmlShellList
+ xmlShellLoad
+ xmlShellPrintNode
+ xmlShellPrintXPathError
+ xmlShellPrintXPathResult
+ xmlShellPwd
+ xmlShellSave
+ xmlShellValidate
+ xmlShellWrite
+ xmlSkipBlankChars
+ xmlSnprintfElementContent
+ xmlSplitQName
+ xmlSplitQName2
+ xmlSplitQName3
+ xmlSprintfElementContent
+ xmlStopParser
+ xmlStrEqual
+ xmlStrPrintf
+ xmlStrQEqual = xmlBufCreate
+ xmlStrVPrintf
+ xmlStrcasecmp
+ xmlStrcasestr = xmlBufFree
+ xmlStrcat
+ xmlStrchr
+ xmlStrcmp
+ xmlStrdup
+ xmlStreamPop
+ xmlStreamPush
+ xmlStreamPushAttr
+ xmlStreamPushNode
+ xmlStreamWantsAnyNode
+ xmlStringComment
+ xmlStringCurrentChar
+ xmlStringDecodeEntities
+ xmlStringGetNodeList
+ xmlStringLenDecodeEntities
+ xmlStringLenGetNodeList
+ xmlStringText
+ xmlStringTextNoenc
+ xmlStrlen
+ xmlStrncasecmp
+ xmlStrncat
+ xmlStrncatNew
+ xmlStrncmp
+ xmlStrndup
+ xmlStrstr
+ xmlStrsub = xmlBufCreateStatic
+ xmlSubstituteEntitiesDefault
+ xmlSwitchEncoding
+ xmlSwitchInputEncoding
+ xmlSwitchToEncoding
+ xmlTextConcat
+ xmlTextMerge
+ xmlTextReaderAttributeCount
+ xmlTextReaderBaseUri
+ xmlTextReaderByteConsumed
+ xmlTextReaderClose
+ xmlTextReaderConstBaseUri
+ xmlTextReaderConstEncoding
+ xmlTextReaderConstLocalName
+ xmlTextReaderConstName
+ xmlTextReaderConstNamespaceUri
+ xmlTextReaderConstPrefix
+ xmlTextReaderConstString = xmlTextReaderPreservePattern
+ xmlTextReaderConstValue
+ xmlTextReaderConstXmlLang
+ xmlTextReaderConstXmlVersion = xmlReaderNewIO
+ xmlTextReaderCurrentDoc
+ xmlTextReaderCurrentNode
+ xmlTextReaderDepth
+ xmlTextReaderExpand
+ xmlTextReaderGetAttribute
+ xmlTextReaderGetAttributeNo
+ xmlTextReaderGetAttributeNs
+ xmlTextReaderGetErrorHandler
+ xmlTextReaderGetParserColumnNumber
+ xmlTextReaderGetParserLineNumber
+ xmlTextReaderGetParserProp = xmlTextReaderCurrentDoc
+ xmlTextReaderGetRemainder
+ xmlTextReaderHasAttributes
+ xmlTextReaderHasValue
+ xmlTextReaderIsDefault
+ xmlTextReaderIsEmptyElement
+ xmlTextReaderIsNamespaceDecl
+ xmlTextReaderIsValid
+ xmlTextReaderLocalName
+ xmlTextReaderLocatorBaseURI
+ xmlTextReaderLocatorLineNumber = xmlRelaxNGValidErrorPop
+ xmlTextReaderLookupNamespace
+ xmlTextReaderMoveToAttribute = xmlTextReaderConstString
+ xmlTextReaderMoveToAttributeNo = xmlTextReaderXmlLang
+ xmlTextReaderMoveToAttributeNs
+ xmlTextReaderMoveToElement
+ xmlTextReaderMoveToFirstAttribute
+ xmlTextReaderMoveToNextAttribute
+ xmlTextReaderName
+ xmlTextReaderNamespaceUri
+ xmlTextReaderNext
+ xmlTextReaderNextSibling
+ xmlTextReaderNodeType
+ xmlTextReaderNormalization
+ xmlTextReaderPrefix
+ xmlTextReaderPreserve
+ xmlTextReaderPreservePattern
+ xmlTextReaderQuoteChar
+ xmlTextReaderRead
+ xmlTextReaderReadAttributeValue
+ xmlTextReaderReadInnerXml
+ xmlTextReaderReadOuterXml
+ xmlTextReaderReadState
+ xmlTextReaderReadString = xmlTextReaderReadAttributeValue
+ xmlTextReaderRelaxNGSetSchema
+ xmlTextReaderRelaxNGValidate
+ xmlTextReaderRelaxNGValidateCtxt
+ xmlTextReaderSchemaValidate
+ xmlTextReaderSchemaValidateCtxt = xmlReaderNewFd
+ xmlTextReaderSetErrorHandler
+ xmlTextReaderSetParserProp
+ xmlTextReaderSetSchema
+ xmlTextReaderSetStructuredErrorHandler
+ xmlTextReaderSetup
+ xmlTextReaderStandalone
+ xmlTextReaderValue
+ xmlTextReaderXmlLang = xmlTextReaderNext
+ xmlTextWriterEndAttribute
+ xmlTextWriterEndCDATA
+ xmlTextWriterEndComment
+ xmlTextWriterEndDTD
+ xmlTextWriterEndDTDAttlist
+ xmlTextWriterEndDTDElement
+ xmlTextWriterEndDTDEntity
+ xmlTextWriterEndDocument
+ xmlTextWriterEndElement
+ xmlTextWriterEndPI
+ xmlTextWriterFlush
+ xmlTextWriterFullEndElement
+ xmlTextWriterSetIndent
+ xmlTextWriterSetIndentString
+ xmlTextWriterSetQuoteChar
+ xmlTextWriterStartAttribute = xmlTextWriterWriteBase64
+ xmlTextWriterStartAttributeNS
+ xmlTextWriterStartCDATA = xmlTextWriterWriteDTDInternalEntity
+ xmlTextWriterStartComment
+ xmlTextWriterStartDTD
+ xmlTextWriterStartDTDAttlist = xmlInitializePredefinedEntities
+ xmlTextWriterStartDTDElement
+ xmlTextWriterStartDTDEntity
+ xmlTextWriterStartDocument
+ xmlTextWriterStartElement
+ xmlTextWriterStartElementNS = xmlTextWriterStartPI
+ xmlTextWriterStartPI
+ xmlTextWriterWriteAttribute
+ xmlTextWriterWriteAttributeNS
+ xmlTextWriterWriteBase64
+ xmlTextWriterWriteBinHex = xmlTextWriterWriteVFormatDTDElement
+ xmlTextWriterWriteCDATA
+ xmlTextWriterWriteComment
+ xmlTextWriterWriteDTD
+ xmlTextWriterWriteDTDAttlist
+ xmlTextWriterWriteDTDElement = xmlTextWriterSetIndent
+ xmlTextWriterWriteDTDEntity
+ xmlTextWriterWriteDTDExternalEntity
+ xmlTextWriterWriteDTDExternalEntityContents
+ xmlTextWriterWriteDTDInternalEntity
+ xmlTextWriterWriteDTDNotation
+ xmlTextWriterWriteElement = xmlTextWriterWriteVFormatDTDAttlist
+ xmlTextWriterWriteElementNS
+ xmlTextWriterWriteFormatAttribute
+ xmlTextWriterWriteFormatAttributeNS
+ xmlTextWriterWriteFormatCDATA
+ xmlTextWriterWriteFormatComment
+ xmlTextWriterWriteFormatDTD
+ xmlTextWriterWriteFormatDTDAttlist
+ xmlTextWriterWriteFormatDTDElement
+ xmlTextWriterWriteFormatDTDInternalEntity
+ xmlTextWriterWriteFormatElement
+ xmlTextWriterWriteFormatElementNS
+ xmlTextWriterWriteFormatPI
+ xmlTextWriterWriteFormatRaw
+ xmlTextWriterWriteFormatString
+ xmlTextWriterWritePI
+ xmlTextWriterWriteRaw
+ xmlTextWriterWriteRawLen
+ xmlTextWriterWriteString
+ xmlTextWriterWriteVFormatAttribute
+ xmlTextWriterWriteVFormatAttributeNS
+ xmlTextWriterWriteVFormatCDATA
+ xmlTextWriterWriteVFormatComment
+ xmlTextWriterWriteVFormatDTD
+ xmlTextWriterWriteVFormatDTDAttlist
+ xmlTextWriterWriteVFormatDTDElement
+ xmlTextWriterWriteVFormatDTDInternalEntity
+ xmlTextWriterWriteVFormatElement
+ xmlTextWriterWriteVFormatElementNS
+ xmlTextWriterWriteVFormatPI
+ xmlTextWriterWriteVFormatRaw
+ xmlTextWriterWriteVFormatString
+ xmlThrDefBufferAllocScheme
+ xmlThrDefDefaultBufferSize
+ xmlThrDefDeregisterNodeDefault
+ xmlThrDefDoValidityCheckingDefaultValue
+ xmlThrDefGetWarningsDefaultValue
+ xmlThrDefIndentTreeOutput
+ xmlThrDefKeepBlanksDefaultValue
+ xmlThrDefLineNumbersDefaultValue
+ xmlThrDefLoadExtDtdDefaultValue
+ xmlThrDefOutputBufferCreateFilenameDefault
+ xmlThrDefParserDebugEntities
+ xmlThrDefParserInputBufferCreateFilenameDefault = xmlC14NVisibleNsStackFind
+ xmlThrDefPedanticParserDefaultValue
+ xmlThrDefRegisterNodeDefault
+ xmlThrDefSaveNoEmptyTags
+ xmlThrDefSetGenericErrorFunc
+ xmlThrDefSetStructuredErrorFunc
+ xmlThrDefSubstituteEntitiesDefaultValue
+ xmlThrDefTreeIndentString
+ xmlUCSIsAegeanNumbers
+ xmlUCSIsAlphabeticPresentationForms
+ xmlUCSIsArabic
+ xmlUCSIsArabicPresentationFormsA
+ xmlUCSIsArabicPresentationFormsB = xmlTextReaderStartElement
+ xmlUCSIsArmenian
+ xmlUCSIsArrows
+ xmlUCSIsBasicLatin
+ xmlUCSIsBengali
+ xmlUCSIsBlock = xmlTextReaderFreeDoc
+ xmlUCSIsBlockElements
+ xmlUCSIsBopomofo = xmlTextReaderEndElement
+ xmlUCSIsBopomofoExtended
+ xmlUCSIsBoxDrawing
+ xmlUCSIsBraillePatterns = xmlTextReaderStartElementNs
+ xmlUCSIsBuhid
+ xmlUCSIsByzantineMusicalSymbols
+ xmlUCSIsCJKCompatibility
+ xmlUCSIsCJKCompatibilityForms
+ xmlUCSIsCJKCompatibilityIdeographs
+ xmlUCSIsCJKCompatibilityIdeographsSupplement
+ xmlUCSIsCJKRadicalsSupplement
+ xmlUCSIsCJKSymbolsandPunctuation
+ xmlUCSIsCJKUnifiedIdeographs = xmlTextReaderCharacters
+ xmlUCSIsCJKUnifiedIdeographsExtensionA
+ xmlUCSIsCJKUnifiedIdeographsExtensionB
+ xmlUCSIsCat
+ xmlUCSIsCatC
+ xmlUCSIsCatCc
+ xmlUCSIsCatCf
+ xmlUCSIsCatCo
+ xmlUCSIsCatCs
+ xmlUCSIsCatL
+ xmlUCSIsCatLl
+ xmlUCSIsCatLm
+ xmlUCSIsCatLo
+ xmlUCSIsCatLt
+ xmlUCSIsCatLu
+ xmlUCSIsCatM
+ xmlUCSIsCatMc
+ xmlUCSIsCatMe
+ xmlUCSIsCatMn
+ xmlUCSIsCatN
+ xmlUCSIsCatNd
+ xmlUCSIsCatNl
+ xmlUCSIsCatNo
+ xmlUCSIsCatP = xmlTextReaderCollectSiblings
+ xmlUCSIsCatPc
+ xmlUCSIsCatPd
+ xmlUCSIsCatPe
+ xmlUCSIsCatPf
+ xmlUCSIsCatPi
+ xmlUCSIsCatPo
+ xmlUCSIsCatPs
+ xmlUCSIsCatS
+ xmlUCSIsCatSc
+ xmlUCSIsCatSk
+ xmlUCSIsCatSm
+ xmlUCSIsCatSo
+ xmlUCSIsCatZ
+ xmlUCSIsCatZl
+ xmlUCSIsCatZp
+ xmlUCSIsCatZs
+ xmlUCSIsCherokee = xmlTextReaderGenericError
+ xmlUCSIsCombiningDiacriticalMarks
+ xmlUCSIsCombiningDiacriticalMarksforSymbols
+ xmlUCSIsCombiningHalfMarks
+ xmlUCSIsCombiningMarksforSymbols
+ xmlUCSIsControlPictures = xmlTextReaderStructuredError
+ xmlUCSIsCurrencySymbols
+ xmlUCSIsCypriotSyllabary
+ xmlUCSIsCyrillic = xmlTextReaderPushData
+ xmlUCSIsCyrillicSupplement
+ xmlUCSIsDeseret
+ xmlUCSIsDevanagari
+ xmlUCSIsDingbats
+ xmlUCSIsEnclosedAlphanumerics
+ xmlUCSIsEnclosedCJKLettersandMonths
+ xmlUCSIsEthiopic
+ xmlUCSIsGeneralPunctuation
+ xmlUCSIsGeometricShapes
+ xmlUCSIsGeorgian
+ xmlUCSIsGothic
+ xmlUCSIsGreek
+ xmlUCSIsGreekExtended
+ xmlUCSIsGreekandCoptic
+ xmlUCSIsGujarati
+ xmlUCSIsGurmukhi
+ xmlUCSIsHalfwidthandFullwidthForms
+ xmlUCSIsHangulCompatibilityJamo
+ xmlUCSIsHangulJamo
+ xmlUCSIsHangulSyllables
+ xmlUCSIsHanunoo
+ xmlUCSIsHebrew
+ xmlUCSIsHighPrivateUseSurrogates
+ xmlUCSIsHighSurrogates
+ xmlUCSIsHiragana
+ xmlUCSIsIPAExtensions
+ xmlUCSIsIdeographicDescriptionCharacters
+ xmlUCSIsKanbun = xmlTextReaderDoExpand
+ xmlUCSIsKangxiRadicals
+ xmlUCSIsKannada
+ xmlUCSIsKatakana
+ xmlUCSIsKatakanaPhoneticExtensions
+ xmlUCSIsKhmer
+ xmlUCSIsKhmerSymbols
+ xmlUCSIsLao
+ xmlUCSIsLatin1Supplement
+ xmlUCSIsLatinExtendedA = xmlTextReaderValidatePop
+ xmlUCSIsLatinExtendedAdditional
+ xmlUCSIsLatinExtendedB
+ xmlUCSIsLetterlikeSymbols
+ xmlUCSIsLimbu
+ xmlUCSIsLinearBIdeograms
+ xmlUCSIsLinearBSyllabary
+ xmlUCSIsLowSurrogates
+ xmlUCSIsMalayalam
+ xmlUCSIsMathematicalAlphanumericSymbols
+ xmlUCSIsMathematicalOperators
+ xmlUCSIsMiscellaneousMathematicalSymbolsA
+ xmlUCSIsMiscellaneousMathematicalSymbolsB
+ xmlUCSIsMiscellaneousSymbols
+ xmlUCSIsMiscellaneousSymbolsandArrows
+ xmlUCSIsMiscellaneousTechnical
+ xmlUCSIsMongolian
+ xmlUCSIsMusicalSymbols
+ xmlUCSIsMyanmar = xmlTextReaderFreeNodeList
+ xmlUCSIsNumberForms
+ xmlUCSIsOgham
+ xmlUCSIsOldItalic
+ xmlUCSIsOpticalCharacterRecognition
+ xmlUCSIsOriya
+ xmlUCSIsOsmanya
+ xmlUCSIsPhoneticExtensions
+ xmlUCSIsPrivateUse
+ xmlUCSIsPrivateUseArea
+ xmlUCSIsRunic
+ xmlUCSIsShavian
+ xmlUCSIsSinhala
+ xmlUCSIsSmallFormVariants
+ xmlUCSIsSpacingModifierLetters
+ xmlUCSIsSpecials
+ xmlUCSIsSuperscriptsandSubscripts
+ xmlUCSIsSupplementalArrowsA
+ xmlUCSIsSupplementalArrowsB
+ xmlUCSIsSupplementalMathematicalOperators
+ xmlUCSIsSupplementaryPrivateUseAreaA
+ xmlUCSIsSupplementaryPrivateUseAreaB
+ xmlUCSIsSyriac
+ xmlUCSIsTagalog
+ xmlUCSIsTagbanwa
+ xmlUCSIsTags
+ xmlUCSIsTaiLe
+ xmlUCSIsTaiXuanJingSymbols
+ xmlUCSIsTamil
+ xmlUCSIsTelugu
+ xmlUCSIsThaana
+ xmlUCSIsThai = xmlTextReaderFreeProp
+ xmlUCSIsTibetan
+ xmlUCSIsUgaritic
+ xmlUCSIsUnifiedCanadianAboriginalSyllabics
+ xmlUCSIsVariationSelectors
+ xmlUCSIsVariationSelectorsSupplement
+ xmlUCSIsYiRadicals
+ xmlUCSIsYiSyllables
+ xmlUCSIsYijingHexagramSymbols
+ xmlURIEscape = xmlFreeNotation
+ xmlURIEscapeStr
+ xmlURIUnescapeString
+ xmlUTF8Charcmp
+ xmlUTF8Size = xmlBufDump
+ xmlUTF8Strlen
+ xmlUTF8Strloc
+ xmlUTF8Strndup
+ xmlUTF8Strpos
+ xmlUTF8Strsize
+ xmlUTF8Strsub
+ xmlUnlinkNode
+ xmlUnlockLibrary = xmlC14NFindHiddenParentAttr.isra.6.constprop.10
+ xmlUnsetNsProp = xmlBufferWriteQuotedString
+ xmlUnsetProp = xmlBufferWriteCHAR
+ xmlValidBuildContentModel = xmlFreeAttribute
+ xmlValidCtxtNormalizeAttributeValue
+ xmlValidGetPotentialChildren
+ xmlValidGetValidElements
+ xmlValidNormalizeAttributeValue
+ xmlValidateAttributeDecl
+ xmlValidateAttributeValue
+ xmlValidateDocument
+ xmlValidateDocumentFinal
+ xmlValidateDtd
+ xmlValidateDtdFinal
+ xmlValidateElement
+ xmlValidateElementDecl
+ xmlValidateNCName
+ xmlValidateNMToken
+ xmlValidateName
+ xmlValidateNameValue
+ xmlValidateNamesValue
+ xmlValidateNmtokenValue
+ xmlValidateNmtokensValue
+ xmlValidateNotationDecl
+ xmlValidateNotationUse
+ xmlValidateOneAttribute
+ xmlValidateOneElement = xmlValidateDocument
+ xmlValidateOneNamespace
+ xmlValidatePopElement
+ xmlValidatePushCData = xmlValidateDocumentFinal
+ xmlValidatePushElement
+ xmlValidateQName
+ xmlValidateRoot
+ xmlXIncludeFreeContext
+ xmlXIncludeNewContext
+ xmlXIncludeProcess
+ xmlXIncludeProcessFlags
+ xmlXIncludeProcessFlagsData = xmlNanoHTTPMethodRedir
+ xmlXIncludeProcessNode
+ xmlXIncludeProcessTree
+ xmlXIncludeProcessTreeFlags
+ xmlXIncludeProcessTreeFlagsData
+ xmlXIncludeSetFlags
+ xmlXPathAddValues
+ xmlXPathBooleanFunction
+ xmlXPathCastBooleanToNumber
+ xmlXPathCastBooleanToString
+ xmlXPathCastNodeSetToBoolean = xmlXPathCastNodeSetToNumber
+ xmlXPathCastNodeSetToNumber
+ xmlXPathCastNodeSetToString
+ xmlXPathCastNodeToNumber
+ xmlXPathCastNodeToString
+ xmlXPathCastNumberToBoolean
+ xmlXPathCastNumberToString
+ xmlXPathCastStringToBoolean
+ xmlXPathCastStringToNumber
+ xmlXPathCastToBoolean
+ xmlXPathCastToNumber
+ xmlXPathCastToString
+ xmlXPathCeilingFunction
+ xmlXPathCmpNodes
+ xmlXPathCompareValues
+ xmlXPathCompile
+ xmlXPathCompiledEval
+ xmlXPathCompiledEvalToBoolean
+ xmlXPathConcatFunction
+ xmlXPathContainsFunction
+ xmlXPathContextSetCache
+ xmlXPathConvertBoolean
+ xmlXPathConvertNumber
+ xmlXPathConvertString
+ xmlXPathCountFunction
+ xmlXPathCtxtCompile
+ xmlXPathDebugDumpCompExpr
+ xmlXPathDebugDumpObject
+ xmlXPathDifference
+ xmlXPathDistinct
+ xmlXPathDistinctSorted
+ xmlXPathDivValues
+ xmlXPathEqualValues
+ xmlXPathErr
+ xmlXPathEval
+ xmlXPathEvalExpr
+ xmlXPathEvalExpression
+ xmlXPathEvalPredicate
+ xmlXPathEvaluatePredicateResult
+ xmlXPathFalseFunction
+ xmlXPathFloorFunction
+ xmlXPathFreeCompExpr
+ xmlXPathFreeContext
+ xmlXPathFreeNodeSet
+ xmlXPathFreeNodeSetList
+ xmlXPathFreeObject
+ xmlXPathFreeParserContext
+ xmlXPathFunctionLookup
+ xmlXPathFunctionLookupNS = xmlXPathWrapExternal
+ xmlXPathHasSameNodes
+ xmlXPathIdFunction
+ xmlXPathInit
+ xmlXPathIntersection
+ xmlXPathIsInf
+ xmlXPathIsNaN
+ xmlXPathIsNodeType
+ xmlXPathLangFunction
+ xmlXPathLastFunction
+ xmlXPathLeading
+ xmlXPathLeadingSorted = xmlXPathLocalNameFunction
+ xmlXPathLocalNameFunction
+ xmlXPathModValues
+ xmlXPathMultValues
+ xmlXPathNAN
+ xmlXPathNINF
+ xmlXPathNamespaceURIFunction
+ xmlXPathNewBoolean
+ xmlXPathNewCString
+ xmlXPathNewContext
+ xmlXPathNewFloat
+ xmlXPathNewNodeSet
+ xmlXPathNewNodeSetList
+ xmlXPathNewParserContext
+ xmlXPathNewString
+ xmlXPathNewValueTree
+ xmlXPathNextAncestor
+ xmlXPathNextAncestorOrSelf
+ xmlXPathNextAttribute
+ xmlXPathNextChild
+ xmlXPathNextDescendant
+ xmlXPathNextDescendantOrSelf
+ xmlXPathNextFollowing
+ xmlXPathNextFollowingSibling
+ xmlXPathNextNamespace
+ xmlXPathNextParent
+ xmlXPathNextPreceding
+ xmlXPathNextPrecedingSibling
+ xmlXPathNextSelf
+ xmlXPathNodeEval
+ xmlXPathNodeLeading
+ xmlXPathNodeLeadingSorted
+ xmlXPathNodeSetAdd
+ xmlXPathNodeSetAddNs
+ xmlXPathNodeSetAddUnique
+ xmlXPathNodeSetContains
+ xmlXPathNodeSetCreate
+ xmlXPathNodeSetDel
+ xmlXPathNodeSetFreeNs
+ xmlXPathNodeSetMerge
+ xmlXPathNodeSetRemove
+ xmlXPathNodeSetSort
+ xmlXPathNodeTrailing
+ xmlXPathNodeTrailingSorted
+ xmlXPathNormalizeFunction
+ xmlXPathNotEqualValues
+ xmlXPathNotFunction
+ xmlXPathNsLookup
+ xmlXPathNumberFunction
+ xmlXPathObjectCopy
+ xmlXPathOrderDocElems
+ xmlXPathPINF
+ xmlXPathParseNCName
+ xmlXPathParseName
+ xmlXPathPopBoolean
+ xmlXPathPopExternal
+ xmlXPathPopNodeSet
+ xmlXPathPopNumber = xmlXPathValueFlipSign
+ xmlXPathPopString
+ xmlXPathPositionFunction
+ xmlXPathRegisterAllFunctions
+ xmlXPathRegisterFunc
+ xmlXPathRegisterFuncLookup
+ xmlXPathRegisterFuncNS
+ xmlXPathRegisterNs
+ xmlXPathRegisterVariable
+ xmlXPathRegisterVariableLookup
+ xmlXPathRegisterVariableNS
+ xmlXPathRegisteredFuncsCleanup
+ xmlXPathRegisteredNsCleanup
+ xmlXPathRegisteredVariablesCleanup = xmlXPathCacheObjectCopy
+ xmlXPathRoot
+ xmlXPathRoundFunction
+ xmlXPathSetContextNode
+ xmlXPathStartsWithFunction
+ xmlXPathStringEvalNumber
+ xmlXPathStringFunction = xmlXPathCastBooleanToNumber
+ xmlXPathStringLengthFunction
+ xmlXPathSubValues
+ xmlXPathSubstringAfterFunction
+ xmlXPathSubstringBeforeFunction
+ xmlXPathSubstringFunction
+ xmlXPathSumFunction
+ xmlXPathTrailing
+ xmlXPathTrailingSorted
+ xmlXPathTranslateFunction
+ xmlXPathTrueFunction
+ xmlXPathValueFlipSign
+ xmlXPathVariableLookup
+ xmlXPathVariableLookupNS
+ xmlXPathWrapCString
+ xmlXPathWrapExternal
+ xmlXPathWrapNodeSet
+ xmlXPathWrapString
+ xmlXPatherror
+ xmlXPtrBuildNodeList
+ xmlXPtrEval
+ xmlXPtrEvalRangePredicate
+ xmlXPtrFreeLocationSet
+ xmlXPtrLocationSetAdd
+ xmlXPtrLocationSetCreate
+ xmlXPtrLocationSetDel
+ xmlXPtrLocationSetMerge
+ xmlXPtrLocationSetRemove
+ xmlXPtrNewCollapsedRange
+ xmlXPtrNewContext
+ xmlXPtrNewLocationSetNodeSet
+ xmlXPtrNewLocationSetNodes
+ xmlXPtrNewRange
+ xmlXPtrNewRangeNodeObject = xmlXPtrRangeToFunction
+ xmlXPtrNewRangeNodePoint
+ xmlXPtrNewRangeNodes
+ xmlXPtrNewRangePointNode
+ xmlXPtrNewRangePoints = xmlXPtrRangeFunction
+ xmlXPtrRangeToFunction
+ xmlXPtrWrapLocationSet
diff --git a/libxml2/lib64/libxml2-2.lib b/libxml2/lib64/libxml2-2.lib
new file mode 100644
index 000000000..6f648db67
--- /dev/null
+++ b/libxml2/lib64/libxml2-2.lib
Binary files differ
diff --git a/makefile.after b/makefile.after
new file mode 100644
index 000000000..41bac41fa
--- /dev/null
+++ b/makefile.after
@@ -0,0 +1,138 @@
+OBJS+=$(CSRCS:%.c=$(OBJDIR)$/%$(OBJEXT))
+OBJS:=$(OBJS:%.cc=$(OBJDIR)$/%$(OBJEXT))
+
+RESOBJS:=$(RESOURCES:%.rc=$(OBJDIR)$/%.res)
+
+ifdef SUBDIRS
+load_makefile $(SUBDIRS:%=%\makefile MAKESERVER=$(MAKESERVER) DEBUG=$(DEBUG);)
+all: $(SUBDIRS:%=%\all)
+endif
+
+
+### Static library stuff ###
+ifdef LIBRARY
+LIBRARY_DIR := $(LIBRARY:%=$(OBJDIR)\%.lib)
+PDB := $(LIBRARY_DIR:%.lib=%.pdb)
+
+all: $(LIBRARY_DIR)
+
+$(LIBRARY_DIR) : $(OBJS)
+ $(AR) /OUT:$(relpath $@) $(OBJS)
+
+endif # End static library stuff
+
+ifdef SHAREDLIB
+DEFFILE ?= $(SHAREDLIB:%=%.def)
+LIBRARYS := $(SHAREDLIB:%=$(OBJDIR)\%.dll) $(SHAREDLIB:%=$(OBJDIR)\%.lib)
+PDB := $(SHAREDLIB:%=$(OBJDIR)\%.pdb)
+LINKFLAGS += /DLL /DEF:$(DEFFILE)
+
+all: $(LIBRARYS)
+
+$(LIBRARYS) : $(OBJS) $(INCLUDELIBFILES) $(RESOBJS) $(DEFFILE)
+ $(LINK) $(LINKFLAGS) /OUT:$(relpath $(basename $@)).dll $(INCLUDELIBFILES) $(SYSTEMLIBS) $(LINKLIBS) $(OBJS)
+
+endif
+
+### WINAPP/TTYAPP stuff ###
+ifeq (1,$(call OR, $(call NE,$(WINAPP)_,_) $(call NE,$(TTYAPP)_,_)))
+
+ifdef WINAPP
+
+load_makefile $(MHMAKECONF)\libwinmain\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+EXTRALIB := $(MHMAKECONF)\libwinmain\$(NOSERVOBJDIR)\libwinmain.lib
+
+EXE := $(WINAPP:%=$(OBJDIR)\%.exe)
+LINKFLAGS += /SUBSYSTEM:WINDOWS
+else
+EXE := $(TTYAPP:%=$(OBJDIR)\%.exe)
+LINKFLAGS += /SUBSYSTEM:CONSOLE
+endif
+
+PDB := $(EXE:%.exe=%.pdb)
+
+ifdef VS2008
+
+MANIFESTFILE:=$(OBJDIR)\runtime.manifest
+
+$(MANIFESTFILE):
+ $(MHMAKECONF)/tools/genruntimemanifest $@ $(DEBUG)
+
+endif
+
+all: $(EXE)
+
+$(EXE) : $(OBJS) $(INCLUDELIBFILES) $(INCLUDENOSERVLIBFILES) $(RESOBJS) $(MANIFESTFILE) $(EXTRALIB)
+ifndef VS2008
+ $(LINK) $(LINKFLAGS) /MAP:$(EXE:%.exe=%.map) /OUT:$(relpath $@) $(INCLUDELIBFILES) $(INCLUDENOSERVLIBFILES) $(SYSTEMLIBS) $(LINKLIBS) $(EXTRALIB) $(OBJS) $(RESOBJS)
+else
+ $(LINK) $(LINKFLAGS) /MANIFEST:NO /OUT:$(relpath $@) $(INCLUDELIBFILES) $(INCLUDENOSERVLIBFILES) $(SYSTEMLIBS) $(LINKLIBS) $(EXTRALIB) $(OBJS) $(RESOBJS)
+ mt -nologo -manifest $(MANIFESTFILE) -outputresource:$(relpath $@);\#1
+endif
+
+endif # End WINAPP or TTYAPP stuff
+
+ifeq ($(DEBUG),1)
+COMMONCFLAGS += $(DEFINES:%=-D%) $(INCLUDES:%=-I%) -Fo$(relpath $@) -Fd"$(PDB)" $<
+else
+COMMONCFLAGS += $(DEFINES:%=-D%) $(INCLUDES:%=-I%) -Fo$(relpath $@) -Fd"$(PDB)" $<
+#PDB= # There is no PDB file generated in a release build
+endif
+
+ifndef CLEANRULEPOSTFIX
+ifeq ($(OBJDIRPREFIX),)
+ifeq ($(DEBUG),1)
+CLEANRULEPOSTFIX=debug
+else
+CLEANRULEPOSTFIX=release
+endif
+else
+CLEANRULEPOSTFIX=$(OBJDIRPREFIX)
+endif
+endif
+
+.PHONY: all cleanall clean clean$(CLEANRULEPOSTFIX)
+
+### Implicit rules ###
+CREATEDIR=mkdir $@
+
+$(OBJDIR) :
+ $(CREATEDIR)
+
+clean: clean$(CLEANRULEPOSTFIX)
+
+clean$(CLEANRULEPOSTFIX):
+ del -e $(OBJDIR)
+
+$(OBJDIR)\%$(OBJEXT) : %.c
+ $(CC) $(CCFLAGS) $(COMMONCFLAGS)
+
+$(OBJDIR)\%$(OBJEXT) : $(OBJDIR)\%.c
+ $(CC) $(CCFLAGS) $(COMMONCFLAGS)
+
+$(OBJDIR)\%$(OBJEXT) : %.cc
+ $(CC) $(CCFLAGS) /EHsc $(COMMONCFLAGS)
+
+$(OBJDIR)\%.res : %.rc
+ $(RC) $(RCFLAGS) $(RCDEFINES:%=-d "%") $(RCINCLUDES:%=-i %) -Fo$(relpath $@) $<
+
+ifdef INC_BDF_RULES
+load_makefile $(MHMAKECONF)\bdftopcf\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+load_makefile $(MHMAKECONF)\mkfontscale\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+
+#bdftopcf is dependent on zlib1.dll, so we need to add the directory of the zlib dll to the path env variable
+PATH:=$(relpath $(MHMAKECONF)\zlib\$(NOSERVOBJDIR))\;$(PATH)
+export PATH
+
+$(DESTDIR)\%.pcf.gz: %.bdf
+ @del -e $@
+ $(BDFTOPCF) -t $< | gzip > $@
+
+$(DESTDIR)\%.enc.gz: %.enc
+ gzip -c < $< > $@
+endif
+
+ifdef DESTDIR
+$(DESTDIR):
+ $(CREATEDIR)
+endif
diff --git a/makefile.before b/makefile.before
new file mode 100644
index 000000000..a3bde8af0
--- /dev/null
+++ b/makefile.before
@@ -0,0 +1,104 @@
+ifndef DEBUG
+DEBUG=0
+endif
+ifndef MAKESERVER
+MAKESERVER=0
+endif
+
+default: all
+.PHONY : default
+
+#define some gnu make functions used in conditional compilation
+EQ =$(if $(subst $(1)_,,$(2)_),0,1)
+NE =$(if $(subst $(1)_,,$(2)_),1,0)
+OR =$(subst 10,1,$(findstring 1,$(1))0)
+AND=$(subst 01,0,$(findstring 0,$(1))1)
+NOT=$(if $(findstring 0,$(1)),1,0)
+
+CC ?= cl /nologo
+CPP ?= $(CC)
+CCFLAGS += -c -GF -Gy -FS #-Wall
+
+#CCFLAGS += -wd4996 -wd4738
+LINK ?= link /nologo
+LINKFLAGS += /INCREMENTAL:NO
+ifdef IS64
+LINKFLAGS += /MACHINE:X64
+OBJDIREXTRA=64
+SSLSUFFIX=64
+else
+LINKFLAGS += /MACHINE:X86
+SSLSUFFIX=32
+endif
+AR ?= lib /nologo
+RC ?= rc
+RCFLAGS ?= /l 0x409
+
+SKIPHEADERS=string map stdlib.h stddef.h string.h stdio.h windows.h stdarg.h
+
+ifeq ($(MAKESERVER),1)
+OBJDIRPREFIX=serv
+DEFINES += XKB_IN_SERVER XFree86Server HAVE_DIX_CONFIG_H
+else
+DEFINES += XKB
+endif
+
+ifeq ($(NORELDBG),1)
+# This all is here to avoid unnecessary rebuilds when switching between release and debug and MAKESERVER
+OBJDIR?=obj$(OBJDIREXTRA)
+DEBUG=0
+MAKESERVER=0
+endif
+
+ifeq ($(DEBUG),1)
+CCFLAGS += -MDd -RTCc -RTC1 -Od -GS -GR -Zi
+LINKFLAGS += /DEBUG
+OBJDIR ?= obj$(OBJDIREXTRA)\$(OBJDIRPREFIX)debug
+NOSERVOBJDIR ?= obj$(OBJDIREXTRA)\debug
+SERVOBJDIR ?= obj$(OBJDIREXTRA)\servdebug
+DEFINES += _DEBUG DEBUG
+RCFLAGS += -d "_DEBUG"
+else
+CCFLAGS += -MD -O2 -Ob2 -Oi -Ox -Oy -Ot -Zi -GL
+DEFINES += NDEBUG
+LINKFLAGS += /OPT:REF /OPT:ICF /DEBUG /LTCG:STATUS
+OBJDIR ?= obj$(OBJDIREXTRA)\$(OBJDIRPREFIX)release
+NOSERVOBJDIR ?= obj$(OBJDIREXTRA)\release
+SERVOBJDIR ?= obj$(OBJDIREXTRA)\servrelease
+RCFLAGS += -d "NDEBUG"
+AR += /LTCG
+endif
+
+
+
+DEFINES += WIN32 _WIN32 _WINDOWS WINDOWS _MBCS __i386__ __MINGW32__ _POSIX_ X_NOT_POSIX _TIMEVAL_DEFINED mode_t=int __STDC__ X_LOCALE
+DEFINES += FAKEIT HAVE_CONFIG_H _BSD_SOURCE _WIN32_WINNT=_WIN32_WINNT_WINXP
+
+TOPSRCDIR=$(MHMAKECONF)\xorg-server
+
+INCLUDES += . $(MHMAKECONF)\openssl\inc32 $(MHMAKECONF) $(MHMAKECONF)\pixman-1 $(MHMAKECONF)\pthreads
+INCLUDES += $(TOPSRCDIR)\include $(TOPSRCDIR)\mi $(TOPSRCDIR)\mfb $(TOPSRCDIR)\hw\xfree86\common $(TOPSRCDIR)\render $(TOPSRCDIR)\miext\damage
+INCLUDES += $(TOPSRCDIR)\damageext $(TOPSRCDIR)\randr $(TOPSRCDIR)\xfixes $(TOPSRCDIR)\Xi $(TOPSRCDIR)\fb $(TOPSRCDIR)\miext\cw
+INCLUDES += $(TOPSRCDIR)\miext\shadow $(TOPSRCDIR)\miext\sync $(MHMAKECONF)\zlib
+INCLUDES += $(MHMAKECONF)\include $(TOPSRCDIR)\Xext $(MHMAKECONF)\pixman\pixman $(TOPSRCDIR)\present
+
+SYSTEMLIBS ?= odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib shlwapi.lib \
+ oleaut32.lib uuid.lib odbc32.lib odbccp32.lib setupapi.lib winmm.lib ws2_32.lib wmcodecdspuuid.lib comctl32.lib opengl32.lib
+
+CPPFLAGS ?= $(CCFLAGS) -EHa
+
+BDFTOPCF=$(MHMAKECONF)\bdftopcf\$(OBJDIR)\bdftopcf.exe
+MKFONTSCALE=$(MHMAKECONF)\mkfontscale\$(OBJDIR)\mkfontscale.exe
+
+all: $(OBJDIR)
+
+ifeq ($(DEBUG),1)
+PTHREADLIB:=$(MHMAKECONF)\pthreads\pthreadVC2d$(OBJDIREXTRA).lib
+FREETYPELIB:=$(MHMAKECONF)\freetype\lib$(OBJDIREXTRA)\freetype2501MT_D.lib
+OPENSSLLIB:=$(MHMAKECONF)\openssl\out$(SSLSUFFIX)_d\libeay32.lib
+else
+PTHREADLIB:=$(MHMAKECONF)\pthreads\pthreadVC2$(OBJDIREXTRA).lib
+FREETYPELIB:=$(MHMAKECONF)\freetype\lib$(OBJDIREXTRA)\freetype2501MT.lib
+OPENSSLLIB:=$(MHMAKECONF)\openssl\out$(SSLSUFFIX)\libeay32.lib
+endif
+LIBXMLLIB:=$(MHMAKECONF)\libxml2\lib$(OBJDIREXTRA)\libxml2-2.lib
diff --git a/mesalib/include/GL/glext.h b/mesalib/include/GL/glext.h
index fea9e1f57..e70266447 100644
--- a/mesalib/include/GL/glext.h
+++ b/mesalib/include/GL/glext.h
@@ -33,7 +33,7 @@ extern "C" {
** used to make the header, and the header can be found at
** http://www.opengl.org/registry/
**
-** Khronos $Revision: 23422 $ on $Date: 2013-10-08 15:40:45 -0700 (Tue, 08 Oct 2013) $
+** Khronos $Revision: 23855 $ on $Date: 2013-11-02 22:54:48 -0700 (Sat, 02 Nov 2013) $
*/
#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
@@ -53,7 +53,7 @@ extern "C" {
#define GLAPI extern
#endif
-#define GL_GLEXT_VERSION 20131008
+#define GL_GLEXT_VERSION 20131102
/* Generated C header for:
* API: gl
@@ -1477,7 +1477,7 @@ typedef GLboolean (APIENTRYP PFNGLISSYNCPROC) (GLsync sync);
typedef void (APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync);
typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
typedef void (APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout);
-typedef void (APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *params);
+typedef void (APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data);
typedef void (APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data);
typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params);
@@ -1497,7 +1497,7 @@ GLAPI GLboolean APIENTRY glIsSync (GLsync sync);
GLAPI void APIENTRY glDeleteSync (GLsync sync);
GLAPI GLenum APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout);
GLAPI void APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout);
-GLAPI void APIENTRY glGetInteger64v (GLenum pname, GLint64 *params);
+GLAPI void APIENTRY glGetInteger64v (GLenum pname, GLint64 *data);
GLAPI void APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
GLAPI void APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data);
GLAPI void APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params);
@@ -5900,6 +5900,34 @@ GLAPI void APIENTRY glCullParameterfvEXT (GLenum pname, GLfloat *params);
#endif
#endif /* GL_EXT_cull_vertex */
+#ifndef GL_EXT_debug_label
+#define GL_EXT_debug_label 1
+#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F
+#define GL_PROGRAM_OBJECT_EXT 0x8B40
+#define GL_SHADER_OBJECT_EXT 0x8B48
+#define GL_BUFFER_OBJECT_EXT 0x9151
+#define GL_QUERY_OBJECT_EXT 0x9153
+#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154
+typedef void (APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label);
+typedef void (APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label);
+GLAPI void APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
+#endif
+#endif /* GL_EXT_debug_label */
+
+#ifndef GL_EXT_debug_marker
+#define GL_EXT_debug_marker 1
+typedef void (APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker);
+typedef void (APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker);
+typedef void (APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void);
+#ifdef GL_GLEXT_PROTOTYPES
+GLAPI void APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker);
+GLAPI void APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker);
+GLAPI void APIENTRY glPopGroupMarkerEXT (void);
+#endif
+#endif /* GL_EXT_debug_marker */
+
#ifndef GL_EXT_depth_bounds_test
#define GL_EXT_depth_bounds_test 1
#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890
@@ -8041,6 +8069,10 @@ GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum sfactorRGB, GLenum dfactorRG
#define GL_INTERLACE_READ_INGR 0x8568
#endif /* GL_INGR_interlace_read */
+#ifndef GL_INTEL_fragment_shader_ordering
+#define GL_INTEL_fragment_shader_ordering 1
+#endif /* GL_INTEL_fragment_shader_ordering */
+
#ifndef GL_INTEL_map_texture
#define GL_INTEL_map_texture 1
#define GL_TEXTURE_MEMORY_LAYOUT_INTEL 0x83FF
@@ -8214,7 +8246,6 @@ GLAPI GLboolean APIENTRY glIsImageHandleResidentNV (GLuint64 handle);
#ifndef GL_NV_blend_equation_advanced
#define GL_NV_blend_equation_advanced 1
-#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285
#define GL_BLEND_OVERLAP_NV 0x9281
#define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280
#define GL_COLORBURN_NV 0x929A
@@ -8270,6 +8301,7 @@ GLAPI void APIENTRY glBlendBarrierNV (void);
#ifndef GL_NV_blend_equation_advanced_coherent
#define GL_NV_blend_equation_advanced_coherent 1
+#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285
#endif /* GL_NV_blend_equation_advanced_coherent */
#ifndef GL_NV_blend_square
diff --git a/mesalib/include/GL/internal/dri_interface.h b/mesalib/include/GL/internal/dri_interface.h
index b012570ae..89b559b4e 100644
--- a/mesalib/include/GL/internal/dri_interface.h
+++ b/mesalib/include/GL/internal/dri_interface.h
@@ -41,7 +41,7 @@
#define DRI_INTERFACE_H
/* For archs with no drm.h */
-#if defined(__APPLE__) || defined(__CYGWIN__) || defined(__GNU__)
+#if defined(__APPLE__) || defined(__CYGWIN__) || defined(__GNU__) || defined(_MSC_VER)
#ifndef __NOT_HAVE_DRM_H
#define __NOT_HAVE_DRM_H
#endif
@@ -55,6 +55,8 @@ typedef unsigned int drm_drawable_t;
typedef struct drm_clip_rect drm_clip_rect_t;
#endif
+#include <stdint.h>
+
/**
* \name DRI interface structures
*
@@ -374,6 +376,8 @@ struct __DRIgetDrawableInfoExtensionRec {
void *loaderPrivate);
};
+typedef int int32_t;
+
/**
* Callback to get system time for media stream counter extensions.
*/
diff --git a/mesalib/include/GL/wglext.h b/mesalib/include/GL/wglext.h
index e60c6527d..dc73a01aa 100644
--- a/mesalib/include/GL/wglext.h
+++ b/mesalib/include/GL/wglext.h
@@ -1,13 +1,13 @@
#ifndef __wglext_h_
-#define __wglext_h_
+#define __wglext_h_ 1
#ifdef __cplusplus
extern "C" {
#endif
/*
-** Copyright (c) 2007-2010 The Khronos Group Inc.
-**
+** Copyright (c) 2013 The Khronos Group Inc.
+**
** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the
** "Materials"), to deal in the Materials without restriction, including
@@ -15,10 +15,10 @@ extern "C" {
** distribute, sublicense, and/or sell copies of the Materials, and to
** permit persons to whom the Materials are furnished to do so, subject to
** the following conditions:
-**
+**
** The above copyright notice and this permission notice shall be included
** in all copies or substantial portions of the Materials.
-**
+**
** THE MATERIALS ARE 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.
@@ -27,676 +27,515 @@ extern "C" {
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
*/
-
-/* Function declaration macros - to move into glplatform.h */
+/*
+** This header is generated from the Khronos OpenGL / OpenGL ES XML
+** API Registry. The current version of the Registry, generator scripts
+** used to make the header, and the header can be found at
+** http://www.opengl.org/registry/
+**
+** Khronos $Revision: 23649 $ on $Date: 2013-10-23 00:21:49 -0700 (Wed, 23 Oct 2013) $
+*/
#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
#define WIN32_LEAN_AND_MEAN 1
#include <windows.h>
#endif
-#ifndef APIENTRY
-#define APIENTRY
-#endif
-#ifndef APIENTRYP
-#define APIENTRYP APIENTRY *
-#endif
-#ifndef GLAPI
-#define GLAPI extern
-#endif
-
-/*************************************************************/
+#define WGL_WGLEXT_VERSION 20130916
-/* Header file version number */
-/* wglext.h last updated 2010/08/06 */
-/* Current version at http://www.opengl.org/registry/ */
-#define WGL_WGLEXT_VERSION 22
+/* Generated C header for:
+ * API: wgl
+ * Versions considered: .*
+ * Versions emitted: _nomatch_^
+ * Default extensions included: wgl
+ * Additional extensions included: _nomatch_^
+ * Extensions removed: _nomatch_^
+ */
#ifndef WGL_ARB_buffer_region
-#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001
-#define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002
-#define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004
-#define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008
-#endif
-
-#ifndef WGL_ARB_multisample
-#define WGL_SAMPLE_BUFFERS_ARB 0x2041
-#define WGL_SAMPLES_ARB 0x2042
-#endif
-
-#ifndef WGL_ARB_extensions_string
-#endif
-
-#ifndef WGL_ARB_pixel_format
-#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
-#define WGL_DRAW_TO_WINDOW_ARB 0x2001
-#define WGL_DRAW_TO_BITMAP_ARB 0x2002
-#define WGL_ACCELERATION_ARB 0x2003
-#define WGL_NEED_PALETTE_ARB 0x2004
-#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
-#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
-#define WGL_SWAP_METHOD_ARB 0x2007
-#define WGL_NUMBER_OVERLAYS_ARB 0x2008
-#define WGL_NUMBER_UNDERLAYS_ARB 0x2009
-#define WGL_TRANSPARENT_ARB 0x200A
-#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
-#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
-#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
-#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
-#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
-#define WGL_SHARE_DEPTH_ARB 0x200C
-#define WGL_SHARE_STENCIL_ARB 0x200D
-#define WGL_SHARE_ACCUM_ARB 0x200E
-#define WGL_SUPPORT_GDI_ARB 0x200F
-#define WGL_SUPPORT_OPENGL_ARB 0x2010
-#define WGL_DOUBLE_BUFFER_ARB 0x2011
-#define WGL_STEREO_ARB 0x2012
-#define WGL_PIXEL_TYPE_ARB 0x2013
-#define WGL_COLOR_BITS_ARB 0x2014
-#define WGL_RED_BITS_ARB 0x2015
-#define WGL_RED_SHIFT_ARB 0x2016
-#define WGL_GREEN_BITS_ARB 0x2017
-#define WGL_GREEN_SHIFT_ARB 0x2018
-#define WGL_BLUE_BITS_ARB 0x2019
-#define WGL_BLUE_SHIFT_ARB 0x201A
-#define WGL_ALPHA_BITS_ARB 0x201B
-#define WGL_ALPHA_SHIFT_ARB 0x201C
-#define WGL_ACCUM_BITS_ARB 0x201D
-#define WGL_ACCUM_RED_BITS_ARB 0x201E
-#define WGL_ACCUM_GREEN_BITS_ARB 0x201F
-#define WGL_ACCUM_BLUE_BITS_ARB 0x2020
-#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
-#define WGL_DEPTH_BITS_ARB 0x2022
-#define WGL_STENCIL_BITS_ARB 0x2023
-#define WGL_AUX_BUFFERS_ARB 0x2024
-#define WGL_NO_ACCELERATION_ARB 0x2025
-#define WGL_GENERIC_ACCELERATION_ARB 0x2026
-#define WGL_FULL_ACCELERATION_ARB 0x2027
-#define WGL_SWAP_EXCHANGE_ARB 0x2028
-#define WGL_SWAP_COPY_ARB 0x2029
-#define WGL_SWAP_UNDEFINED_ARB 0x202A
-#define WGL_TYPE_RGBA_ARB 0x202B
-#define WGL_TYPE_COLORINDEX_ARB 0x202C
-#endif
-
-#ifndef WGL_ARB_make_current_read
-#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
-#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
-#endif
-
-#ifndef WGL_ARB_pbuffer
-#define WGL_DRAW_TO_PBUFFER_ARB 0x202D
-#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E
-#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F
-#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030
-#define WGL_PBUFFER_LARGEST_ARB 0x2033
-#define WGL_PBUFFER_WIDTH_ARB 0x2034
-#define WGL_PBUFFER_HEIGHT_ARB 0x2035
-#define WGL_PBUFFER_LOST_ARB 0x2036
-#endif
-
-#ifndef WGL_ARB_render_texture
-#define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070
-#define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071
-#define WGL_TEXTURE_FORMAT_ARB 0x2072
-#define WGL_TEXTURE_TARGET_ARB 0x2073
-#define WGL_MIPMAP_TEXTURE_ARB 0x2074
-#define WGL_TEXTURE_RGB_ARB 0x2075
-#define WGL_TEXTURE_RGBA_ARB 0x2076
-#define WGL_NO_TEXTURE_ARB 0x2077
-#define WGL_TEXTURE_CUBE_MAP_ARB 0x2078
-#define WGL_TEXTURE_1D_ARB 0x2079
-#define WGL_TEXTURE_2D_ARB 0x207A
-#define WGL_MIPMAP_LEVEL_ARB 0x207B
-#define WGL_CUBE_MAP_FACE_ARB 0x207C
-#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D
-#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E
-#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F
-#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080
-#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081
-#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082
-#define WGL_FRONT_LEFT_ARB 0x2083
-#define WGL_FRONT_RIGHT_ARB 0x2084
-#define WGL_BACK_LEFT_ARB 0x2085
-#define WGL_BACK_RIGHT_ARB 0x2086
-#define WGL_AUX0_ARB 0x2087
-#define WGL_AUX1_ARB 0x2088
-#define WGL_AUX2_ARB 0x2089
-#define WGL_AUX3_ARB 0x208A
-#define WGL_AUX4_ARB 0x208B
-#define WGL_AUX5_ARB 0x208C
-#define WGL_AUX6_ARB 0x208D
-#define WGL_AUX7_ARB 0x208E
-#define WGL_AUX8_ARB 0x208F
-#define WGL_AUX9_ARB 0x2090
-#endif
-
-#ifndef WGL_ARB_pixel_format_float
-#define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0
-#endif
-
-#ifndef WGL_ARB_framebuffer_sRGB
-#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9
+#define WGL_ARB_buffer_region 1
+#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001
+#define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002
+#define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004
+#define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008
+typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType);
+typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion);
+typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height);
+typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
+#ifdef WGL_WGLEXT_PROTOTYPES
+HANDLE WINAPI wglCreateBufferRegionARB (HDC hDC, int iLayerPlane, UINT uType);
+VOID WINAPI wglDeleteBufferRegionARB (HANDLE hRegion);
+BOOL WINAPI wglSaveBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height);
+BOOL WINAPI wglRestoreBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
#endif
+#endif /* WGL_ARB_buffer_region */
#ifndef WGL_ARB_create_context
-#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001
+#define WGL_ARB_create_context 1
+#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001
#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
-#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
-#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
-#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
-#define WGL_CONTEXT_FLAGS_ARB 0x2094
-#define ERROR_INVALID_VERSION_ARB 0x2095
+#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
+#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
+#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
+#define WGL_CONTEXT_FLAGS_ARB 0x2094
+#define ERROR_INVALID_VERSION_ARB 0x2095
+typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int *attribList);
+#ifdef WGL_WGLEXT_PROTOTYPES
+HGLRC WINAPI wglCreateContextAttribsARB (HDC hDC, HGLRC hShareContext, const int *attribList);
#endif
+#endif /* WGL_ARB_create_context */
#ifndef WGL_ARB_create_context_profile
-#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
-#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
+#define WGL_ARB_create_context_profile 1
+#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
+#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
-#define ERROR_INVALID_PROFILE_ARB 0x2096
-#endif
+#define ERROR_INVALID_PROFILE_ARB 0x2096
+#endif /* WGL_ARB_create_context_profile */
#ifndef WGL_ARB_create_context_robustness
+#define WGL_ARB_create_context_robustness 1
#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
-#define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
+#define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
-#define WGL_NO_RESET_NOTIFICATION_ARB 0x8261
-#endif
-
-#ifndef WGL_EXT_make_current_read
-#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043
-#endif
-
-#ifndef WGL_EXT_pixel_format
-#define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000
-#define WGL_DRAW_TO_WINDOW_EXT 0x2001
-#define WGL_DRAW_TO_BITMAP_EXT 0x2002
-#define WGL_ACCELERATION_EXT 0x2003
-#define WGL_NEED_PALETTE_EXT 0x2004
-#define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005
-#define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006
-#define WGL_SWAP_METHOD_EXT 0x2007
-#define WGL_NUMBER_OVERLAYS_EXT 0x2008
-#define WGL_NUMBER_UNDERLAYS_EXT 0x2009
-#define WGL_TRANSPARENT_EXT 0x200A
-#define WGL_TRANSPARENT_VALUE_EXT 0x200B
-#define WGL_SHARE_DEPTH_EXT 0x200C
-#define WGL_SHARE_STENCIL_EXT 0x200D
-#define WGL_SHARE_ACCUM_EXT 0x200E
-#define WGL_SUPPORT_GDI_EXT 0x200F
-#define WGL_SUPPORT_OPENGL_EXT 0x2010
-#define WGL_DOUBLE_BUFFER_EXT 0x2011
-#define WGL_STEREO_EXT 0x2012
-#define WGL_PIXEL_TYPE_EXT 0x2013
-#define WGL_COLOR_BITS_EXT 0x2014
-#define WGL_RED_BITS_EXT 0x2015
-#define WGL_RED_SHIFT_EXT 0x2016
-#define WGL_GREEN_BITS_EXT 0x2017
-#define WGL_GREEN_SHIFT_EXT 0x2018
-#define WGL_BLUE_BITS_EXT 0x2019
-#define WGL_BLUE_SHIFT_EXT 0x201A
-#define WGL_ALPHA_BITS_EXT 0x201B
-#define WGL_ALPHA_SHIFT_EXT 0x201C
-#define WGL_ACCUM_BITS_EXT 0x201D
-#define WGL_ACCUM_RED_BITS_EXT 0x201E
-#define WGL_ACCUM_GREEN_BITS_EXT 0x201F
-#define WGL_ACCUM_BLUE_BITS_EXT 0x2020
-#define WGL_ACCUM_ALPHA_BITS_EXT 0x2021
-#define WGL_DEPTH_BITS_EXT 0x2022
-#define WGL_STENCIL_BITS_EXT 0x2023
-#define WGL_AUX_BUFFERS_EXT 0x2024
-#define WGL_NO_ACCELERATION_EXT 0x2025
-#define WGL_GENERIC_ACCELERATION_EXT 0x2026
-#define WGL_FULL_ACCELERATION_EXT 0x2027
-#define WGL_SWAP_EXCHANGE_EXT 0x2028
-#define WGL_SWAP_COPY_EXT 0x2029
-#define WGL_SWAP_UNDEFINED_EXT 0x202A
-#define WGL_TYPE_RGBA_EXT 0x202B
-#define WGL_TYPE_COLORINDEX_EXT 0x202C
-#endif
-
-#ifndef WGL_EXT_pbuffer
-#define WGL_DRAW_TO_PBUFFER_EXT 0x202D
-#define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E
-#define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F
-#define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030
-#define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031
-#define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032
-#define WGL_PBUFFER_LARGEST_EXT 0x2033
-#define WGL_PBUFFER_WIDTH_EXT 0x2034
-#define WGL_PBUFFER_HEIGHT_EXT 0x2035
-#endif
-
-#ifndef WGL_EXT_depth_float
-#define WGL_DEPTH_FLOAT_EXT 0x2040
-#endif
-
-#ifndef WGL_3DFX_multisample
-#define WGL_SAMPLE_BUFFERS_3DFX 0x2060
-#define WGL_SAMPLES_3DFX 0x2061
-#endif
-
-#ifndef WGL_EXT_multisample
-#define WGL_SAMPLE_BUFFERS_EXT 0x2041
-#define WGL_SAMPLES_EXT 0x2042
-#endif
-
-#ifndef WGL_I3D_digital_video_control
-#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050
-#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051
-#define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052
-#define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053
-#endif
-
-#ifndef WGL_I3D_gamma
-#define WGL_GAMMA_TABLE_SIZE_I3D 0x204E
-#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F
-#endif
-
-#ifndef WGL_I3D_genlock
-#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044
-#define WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D 0x2045
-#define WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D 0x2046
-#define WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D 0x2047
-#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048
-#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049
-#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A
-#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B
-#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C
-#endif
-
-#ifndef WGL_I3D_image_buffer
-#define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001
-#define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002
-#endif
-
-#ifndef WGL_I3D_swap_frame_lock
-#endif
-
-#ifndef WGL_NV_render_depth_texture
-#define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4
-#define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5
-#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6
-#define WGL_DEPTH_COMPONENT_NV 0x20A7
-#endif
-
-#ifndef WGL_NV_render_texture_rectangle
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1
-#define WGL_TEXTURE_RECTANGLE_NV 0x20A2
-#endif
-
-#ifndef WGL_ATI_pixel_format_float
-#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0
-#endif
-
-#ifndef WGL_NV_float_buffer
-#define WGL_FLOAT_COMPONENTS_NV 0x20B0
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4
-#define WGL_TEXTURE_FLOAT_R_NV 0x20B5
-#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6
-#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7
-#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8
-#endif
-
-#ifndef WGL_3DL_stereo_control
-#define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055
-#define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056
-#define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057
-#define WGL_STEREO_POLARITY_INVERT_3DL 0x2058
-#endif
-
-#ifndef WGL_EXT_pixel_format_packed_float
-#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8
-#endif
-
-#ifndef WGL_EXT_framebuffer_sRGB
-#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9
-#endif
-
-#ifndef WGL_NV_present_video
-#define WGL_NUM_VIDEO_SLOTS_NV 0x20F0
-#endif
-
-#ifndef WGL_NV_video_out
-#define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0
-#define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1
-#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2
-#define WGL_VIDEO_OUT_COLOR_NV 0x20C3
-#define WGL_VIDEO_OUT_ALPHA_NV 0x20C4
-#define WGL_VIDEO_OUT_DEPTH_NV 0x20C5
-#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
-#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
-#define WGL_VIDEO_OUT_FRAME 0x20C8
-#define WGL_VIDEO_OUT_FIELD_1 0x20C9
-#define WGL_VIDEO_OUT_FIELD_2 0x20CA
-#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB
-#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC
-#endif
-
-#ifndef WGL_NV_swap_group
-#endif
-
-#ifndef WGL_NV_gpu_affinity
-#define WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0
-#define WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1
-#endif
-
-#ifndef WGL_AMD_gpu_association
-#define WGL_GPU_VENDOR_AMD 0x1F00
-#define WGL_GPU_RENDERER_STRING_AMD 0x1F01
-#define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
-#define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
-#define WGL_GPU_RAM_AMD 0x21A3
-#define WGL_GPU_CLOCK_AMD 0x21A4
-#define WGL_GPU_NUM_PIPES_AMD 0x21A5
-#define WGL_GPU_NUM_SIMD_AMD 0x21A6
-#define WGL_GPU_NUM_RB_AMD 0x21A7
-#define WGL_GPU_NUM_SPI_AMD 0x21A8
-#endif
-
-#ifndef WGL_NV_video_capture
-#define WGL_UNIQUE_ID_NV 0x20CE
-#define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
-#endif
-
-#ifndef WGL_NV_copy_image
-#endif
-
-#ifndef WGL_NV_multisample_coverage
-#define WGL_COVERAGE_SAMPLES_NV 0x2042
-#define WGL_COLOR_SAMPLES_NV 0x20B9
-#endif
-
-#ifndef WGL_EXT_create_context_es2_profile
-#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
-#endif
-
-
-/*************************************************************/
-
-#ifndef WGL_ARB_pbuffer
-DECLARE_HANDLE(HPBUFFERARB);
-#endif
-#ifndef WGL_EXT_pbuffer
-DECLARE_HANDLE(HPBUFFEREXT);
-#endif
-#ifndef WGL_NV_present_video
-DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
-#endif
-#ifndef WGL_NV_video_output
-DECLARE_HANDLE(HPVIDEODEV);
-#endif
-#ifndef WGL_NV_gpu_affinity
-DECLARE_HANDLE(HPGPUNV);
-DECLARE_HANDLE(HGPUNV);
-
-typedef struct _GPU_DEVICE {
- DWORD cb;
- CHAR DeviceName[32];
- CHAR DeviceString[128];
- DWORD Flags;
- RECT rcVirtualScreen;
-} GPU_DEVICE, *PGPU_DEVICE;
-#endif
-#ifndef WGL_NV_video_capture
-DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
-#endif
-
-#ifndef WGL_ARB_buffer_region
-#define WGL_ARB_buffer_region 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern HANDLE WINAPI wglCreateBufferRegionARB (HDC hDC, int iLayerPlane, UINT uType);
-extern VOID WINAPI wglDeleteBufferRegionARB (HANDLE hRegion);
-extern BOOL WINAPI wglSaveBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height);
-extern BOOL WINAPI wglRestoreBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType);
-typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion);
-typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height);
-typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
-#endif
-
-#ifndef WGL_ARB_multisample
-#define WGL_ARB_multisample 1
-#endif
+#define WGL_NO_RESET_NOTIFICATION_ARB 0x8261
+#endif /* WGL_ARB_create_context_robustness */
#ifndef WGL_ARB_extensions_string
#define WGL_ARB_extensions_string 1
+typedef const char *(WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc);
#ifdef WGL_WGLEXT_PROTOTYPES
-extern const char * WINAPI wglGetExtensionsStringARB (HDC hdc);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc);
+const char *WINAPI wglGetExtensionsStringARB (HDC hdc);
#endif
+#endif /* WGL_ARB_extensions_string */
-#ifndef WGL_ARB_pixel_format
-#define WGL_ARB_pixel_format 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglGetPixelFormatAttribivARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
-extern BOOL WINAPI wglGetPixelFormatAttribfvARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
-extern BOOL WINAPI wglChoosePixelFormatARB (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
-typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
-typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
-#endif
+#ifndef WGL_ARB_framebuffer_sRGB
+#define WGL_ARB_framebuffer_sRGB 1
+#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9
+#endif /* WGL_ARB_framebuffer_sRGB */
#ifndef WGL_ARB_make_current_read
#define WGL_ARB_make_current_read 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglMakeContextCurrentARB (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
-extern HDC WINAPI wglGetCurrentReadDCARB (void);
-#endif /* WGL_WGLEXT_PROTOTYPES */
+#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
+#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (void);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglMakeContextCurrentARB (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+HDC WINAPI wglGetCurrentReadDCARB (void);
#endif
+#endif /* WGL_ARB_make_current_read */
+
+#ifndef WGL_ARB_multisample
+#define WGL_ARB_multisample 1
+#define WGL_SAMPLE_BUFFERS_ARB 0x2041
+#define WGL_SAMPLES_ARB 0x2042
+#endif /* WGL_ARB_multisample */
#ifndef WGL_ARB_pbuffer
#define WGL_ARB_pbuffer 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern HPBUFFERARB WINAPI wglCreatePbufferARB (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
-extern HDC WINAPI wglGetPbufferDCARB (HPBUFFERARB hPbuffer);
-extern int WINAPI wglReleasePbufferDCARB (HPBUFFERARB hPbuffer, HDC hDC);
-extern BOOL WINAPI wglDestroyPbufferARB (HPBUFFERARB hPbuffer);
-extern BOOL WINAPI wglQueryPbufferARB (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
-#endif /* WGL_WGLEXT_PROTOTYPES */
+DECLARE_HANDLE(HPBUFFERARB);
+#define WGL_DRAW_TO_PBUFFER_ARB 0x202D
+#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E
+#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F
+#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030
+#define WGL_PBUFFER_LARGEST_ARB 0x2033
+#define WGL_PBUFFER_WIDTH_ARB 0x2034
+#define WGL_PBUFFER_HEIGHT_ARB 0x2035
+#define WGL_PBUFFER_LOST_ARB 0x2036
typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer);
typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC);
typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer);
typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
+#ifdef WGL_WGLEXT_PROTOTYPES
+HPBUFFERARB WINAPI wglCreatePbufferARB (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
+HDC WINAPI wglGetPbufferDCARB (HPBUFFERARB hPbuffer);
+int WINAPI wglReleasePbufferDCARB (HPBUFFERARB hPbuffer, HDC hDC);
+BOOL WINAPI wglDestroyPbufferARB (HPBUFFERARB hPbuffer);
+BOOL WINAPI wglQueryPbufferARB (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
+#endif
+#endif /* WGL_ARB_pbuffer */
+
+#ifndef WGL_ARB_pixel_format
+#define WGL_ARB_pixel_format 1
+#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
+#define WGL_DRAW_TO_WINDOW_ARB 0x2001
+#define WGL_DRAW_TO_BITMAP_ARB 0x2002
+#define WGL_ACCELERATION_ARB 0x2003
+#define WGL_NEED_PALETTE_ARB 0x2004
+#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
+#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
+#define WGL_SWAP_METHOD_ARB 0x2007
+#define WGL_NUMBER_OVERLAYS_ARB 0x2008
+#define WGL_NUMBER_UNDERLAYS_ARB 0x2009
+#define WGL_TRANSPARENT_ARB 0x200A
+#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
+#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
+#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
+#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
+#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
+#define WGL_SHARE_DEPTH_ARB 0x200C
+#define WGL_SHARE_STENCIL_ARB 0x200D
+#define WGL_SHARE_ACCUM_ARB 0x200E
+#define WGL_SUPPORT_GDI_ARB 0x200F
+#define WGL_SUPPORT_OPENGL_ARB 0x2010
+#define WGL_DOUBLE_BUFFER_ARB 0x2011
+#define WGL_STEREO_ARB 0x2012
+#define WGL_PIXEL_TYPE_ARB 0x2013
+#define WGL_COLOR_BITS_ARB 0x2014
+#define WGL_RED_BITS_ARB 0x2015
+#define WGL_RED_SHIFT_ARB 0x2016
+#define WGL_GREEN_BITS_ARB 0x2017
+#define WGL_GREEN_SHIFT_ARB 0x2018
+#define WGL_BLUE_BITS_ARB 0x2019
+#define WGL_BLUE_SHIFT_ARB 0x201A
+#define WGL_ALPHA_BITS_ARB 0x201B
+#define WGL_ALPHA_SHIFT_ARB 0x201C
+#define WGL_ACCUM_BITS_ARB 0x201D
+#define WGL_ACCUM_RED_BITS_ARB 0x201E
+#define WGL_ACCUM_GREEN_BITS_ARB 0x201F
+#define WGL_ACCUM_BLUE_BITS_ARB 0x2020
+#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
+#define WGL_DEPTH_BITS_ARB 0x2022
+#define WGL_STENCIL_BITS_ARB 0x2023
+#define WGL_AUX_BUFFERS_ARB 0x2024
+#define WGL_NO_ACCELERATION_ARB 0x2025
+#define WGL_GENERIC_ACCELERATION_ARB 0x2026
+#define WGL_FULL_ACCELERATION_ARB 0x2027
+#define WGL_SWAP_EXCHANGE_ARB 0x2028
+#define WGL_SWAP_COPY_ARB 0x2029
+#define WGL_SWAP_UNDEFINED_ARB 0x202A
+#define WGL_TYPE_RGBA_ARB 0x202B
+#define WGL_TYPE_COLORINDEX_ARB 0x202C
+typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
+typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
+typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglGetPixelFormatAttribivARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
+BOOL WINAPI wglGetPixelFormatAttribfvARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
+BOOL WINAPI wglChoosePixelFormatARB (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
#endif
+#endif /* WGL_ARB_pixel_format */
+
+#ifndef WGL_ARB_pixel_format_float
+#define WGL_ARB_pixel_format_float 1
+#define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0
+#endif /* WGL_ARB_pixel_format_float */
#ifndef WGL_ARB_render_texture
#define WGL_ARB_render_texture 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglBindTexImageARB (HPBUFFERARB hPbuffer, int iBuffer);
-extern BOOL WINAPI wglReleaseTexImageARB (HPBUFFERARB hPbuffer, int iBuffer);
-extern BOOL WINAPI wglSetPbufferAttribARB (HPBUFFERARB hPbuffer, const int *piAttribList);
-#endif /* WGL_WGLEXT_PROTOTYPES */
+#define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070
+#define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071
+#define WGL_TEXTURE_FORMAT_ARB 0x2072
+#define WGL_TEXTURE_TARGET_ARB 0x2073
+#define WGL_MIPMAP_TEXTURE_ARB 0x2074
+#define WGL_TEXTURE_RGB_ARB 0x2075
+#define WGL_TEXTURE_RGBA_ARB 0x2076
+#define WGL_NO_TEXTURE_ARB 0x2077
+#define WGL_TEXTURE_CUBE_MAP_ARB 0x2078
+#define WGL_TEXTURE_1D_ARB 0x2079
+#define WGL_TEXTURE_2D_ARB 0x207A
+#define WGL_MIPMAP_LEVEL_ARB 0x207B
+#define WGL_CUBE_MAP_FACE_ARB 0x207C
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082
+#define WGL_FRONT_LEFT_ARB 0x2083
+#define WGL_FRONT_RIGHT_ARB 0x2084
+#define WGL_BACK_LEFT_ARB 0x2085
+#define WGL_BACK_RIGHT_ARB 0x2086
+#define WGL_AUX0_ARB 0x2087
+#define WGL_AUX1_ARB 0x2088
+#define WGL_AUX2_ARB 0x2089
+#define WGL_AUX3_ARB 0x208A
+#define WGL_AUX4_ARB 0x208B
+#define WGL_AUX5_ARB 0x208C
+#define WGL_AUX6_ARB 0x208D
+#define WGL_AUX7_ARB 0x208E
+#define WGL_AUX8_ARB 0x208F
+#define WGL_AUX9_ARB 0x2090
typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int *piAttribList);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglBindTexImageARB (HPBUFFERARB hPbuffer, int iBuffer);
+BOOL WINAPI wglReleaseTexImageARB (HPBUFFERARB hPbuffer, int iBuffer);
+BOOL WINAPI wglSetPbufferAttribARB (HPBUFFERARB hPbuffer, const int *piAttribList);
#endif
+#endif /* WGL_ARB_render_texture */
-#ifndef WGL_ARB_pixel_format_float
-#define WGL_ARB_pixel_format_float 1
-#endif
+#ifndef WGL_ARB_robustness_application_isolation
+#define WGL_ARB_robustness_application_isolation 1
+#define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
+#endif /* WGL_ARB_robustness_application_isolation */
-#ifndef WGL_ARB_framebuffer_sRGB
-#define WGL_ARB_framebuffer_sRGB 1
-#endif
+#ifndef WGL_ARB_robustness_share_group_isolation
+#define WGL_ARB_robustness_share_group_isolation 1
+#endif /* WGL_ARB_robustness_share_group_isolation */
-#ifndef WGL_ARB_create_context
-#define WGL_ARB_create_context 1
+#ifndef WGL_3DFX_multisample
+#define WGL_3DFX_multisample 1
+#define WGL_SAMPLE_BUFFERS_3DFX 0x2060
+#define WGL_SAMPLES_3DFX 0x2061
+#endif /* WGL_3DFX_multisample */
+
+#ifndef WGL_3DL_stereo_control
+#define WGL_3DL_stereo_control 1
+#define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055
+#define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056
+#define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057
+#define WGL_STEREO_POLARITY_INVERT_3DL 0x2058
+typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState);
#ifdef WGL_WGLEXT_PROTOTYPES
-extern HGLRC WINAPI wglCreateContextAttribsARB (HDC hDC, HGLRC hShareContext, const int *attribList);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int *attribList);
+BOOL WINAPI wglSetStereoEmitterState3DL (HDC hDC, UINT uState);
#endif
+#endif /* WGL_3DL_stereo_control */
-#ifndef WGL_ARB_create_context_profile
-#define WGL_ARB_create_context_profile 1
-#endif
+#ifndef WGL_AMD_gpu_association
+#define WGL_AMD_gpu_association 1
+#define WGL_GPU_VENDOR_AMD 0x1F00
+#define WGL_GPU_RENDERER_STRING_AMD 0x1F01
+#define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
+#define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
+#define WGL_GPU_RAM_AMD 0x21A3
+#define WGL_GPU_CLOCK_AMD 0x21A4
+#define WGL_GPU_NUM_PIPES_AMD 0x21A5
+#define WGL_GPU_NUM_SIMD_AMD 0x21A6
+#define WGL_GPU_NUM_RB_AMD 0x21A7
+#define WGL_GPU_NUM_SPI_AMD 0x21A8
+typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT *ids);
+typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, int property, GLenum dataType, UINT size, void *data);
+typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc);
+typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) (UINT id);
+typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UINT id, HGLRC hShareContext, const int *attribList);
+typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc);
+typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc);
+typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void);
+typedef VOID (WINAPI * PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC) (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+#ifdef WGL_WGLEXT_PROTOTYPES
+UINT WINAPI wglGetGPUIDsAMD (UINT maxCount, UINT *ids);
+INT WINAPI wglGetGPUInfoAMD (UINT id, int property, GLenum dataType, UINT size, void *data);
+UINT WINAPI wglGetContextGPUIDAMD (HGLRC hglrc);
+HGLRC WINAPI wglCreateAssociatedContextAMD (UINT id);
+HGLRC WINAPI wglCreateAssociatedContextAttribsAMD (UINT id, HGLRC hShareContext, const int *attribList);
+BOOL WINAPI wglDeleteAssociatedContextAMD (HGLRC hglrc);
+BOOL WINAPI wglMakeAssociatedContextCurrentAMD (HGLRC hglrc);
+HGLRC WINAPI wglGetCurrentAssociatedContextAMD (void);
+VOID WINAPI wglBlitContextFramebufferAMD (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+#endif
+#endif /* WGL_AMD_gpu_association */
-#ifndef WGL_ARB_create_context_robustness
-#define WGL_ARB_create_context_robustness 1
-#endif
+#ifndef WGL_ATI_pixel_format_float
+#define WGL_ATI_pixel_format_float 1
+#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0
+#endif /* WGL_ATI_pixel_format_float */
+
+#ifndef WGL_EXT_create_context_es2_profile
+#define WGL_EXT_create_context_es2_profile 1
+#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
+#endif /* WGL_EXT_create_context_es2_profile */
+
+#ifndef WGL_EXT_create_context_es_profile
+#define WGL_EXT_create_context_es_profile 1
+#define WGL_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004
+#endif /* WGL_EXT_create_context_es_profile */
+
+#ifndef WGL_EXT_depth_float
+#define WGL_EXT_depth_float 1
+#define WGL_DEPTH_FLOAT_EXT 0x2040
+#endif /* WGL_EXT_depth_float */
#ifndef WGL_EXT_display_color_table
#define WGL_EXT_display_color_table 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern GLboolean WINAPI wglCreateDisplayColorTableEXT (GLushort id);
-extern GLboolean WINAPI wglLoadDisplayColorTableEXT (const GLushort *table, GLuint length);
-extern GLboolean WINAPI wglBindDisplayColorTableEXT (GLushort id);
-extern VOID WINAPI wglDestroyDisplayColorTableEXT (GLushort id);
-#endif /* WGL_WGLEXT_PROTOTYPES */
typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id);
typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (const GLushort *table, GLuint length);
typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id);
typedef VOID (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id);
+#ifdef WGL_WGLEXT_PROTOTYPES
+GLboolean WINAPI wglCreateDisplayColorTableEXT (GLushort id);
+GLboolean WINAPI wglLoadDisplayColorTableEXT (const GLushort *table, GLuint length);
+GLboolean WINAPI wglBindDisplayColorTableEXT (GLushort id);
+VOID WINAPI wglDestroyDisplayColorTableEXT (GLushort id);
#endif
+#endif /* WGL_EXT_display_color_table */
#ifndef WGL_EXT_extensions_string
#define WGL_EXT_extensions_string 1
+typedef const char *(WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void);
#ifdef WGL_WGLEXT_PROTOTYPES
-extern const char * WINAPI wglGetExtensionsStringEXT (void);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void);
+const char *WINAPI wglGetExtensionsStringEXT (void);
#endif
+#endif /* WGL_EXT_extensions_string */
+
+#ifndef WGL_EXT_framebuffer_sRGB
+#define WGL_EXT_framebuffer_sRGB 1
+#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9
+#endif /* WGL_EXT_framebuffer_sRGB */
#ifndef WGL_EXT_make_current_read
#define WGL_EXT_make_current_read 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglMakeContextCurrentEXT (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
-extern HDC WINAPI wglGetCurrentReadDCEXT (void);
-#endif /* WGL_WGLEXT_PROTOTYPES */
+#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043
typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (void);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglMakeContextCurrentEXT (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+HDC WINAPI wglGetCurrentReadDCEXT (void);
#endif
+#endif /* WGL_EXT_make_current_read */
+
+#ifndef WGL_EXT_multisample
+#define WGL_EXT_multisample 1
+#define WGL_SAMPLE_BUFFERS_EXT 0x2041
+#define WGL_SAMPLES_EXT 0x2042
+#endif /* WGL_EXT_multisample */
#ifndef WGL_EXT_pbuffer
#define WGL_EXT_pbuffer 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern HPBUFFEREXT WINAPI wglCreatePbufferEXT (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
-extern HDC WINAPI wglGetPbufferDCEXT (HPBUFFEREXT hPbuffer);
-extern int WINAPI wglReleasePbufferDCEXT (HPBUFFEREXT hPbuffer, HDC hDC);
-extern BOOL WINAPI wglDestroyPbufferEXT (HPBUFFEREXT hPbuffer);
-extern BOOL WINAPI wglQueryPbufferEXT (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue);
-#endif /* WGL_WGLEXT_PROTOTYPES */
+DECLARE_HANDLE(HPBUFFEREXT);
+#define WGL_DRAW_TO_PBUFFER_EXT 0x202D
+#define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E
+#define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F
+#define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030
+#define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031
+#define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032
+#define WGL_PBUFFER_LARGEST_EXT 0x2033
+#define WGL_PBUFFER_WIDTH_EXT 0x2034
+#define WGL_PBUFFER_HEIGHT_EXT 0x2035
typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer);
typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC);
typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer);
typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue);
+#ifdef WGL_WGLEXT_PROTOTYPES
+HPBUFFEREXT WINAPI wglCreatePbufferEXT (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
+HDC WINAPI wglGetPbufferDCEXT (HPBUFFEREXT hPbuffer);
+int WINAPI wglReleasePbufferDCEXT (HPBUFFEREXT hPbuffer, HDC hDC);
+BOOL WINAPI wglDestroyPbufferEXT (HPBUFFEREXT hPbuffer);
+BOOL WINAPI wglQueryPbufferEXT (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue);
#endif
+#endif /* WGL_EXT_pbuffer */
#ifndef WGL_EXT_pixel_format
#define WGL_EXT_pixel_format 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglGetPixelFormatAttribivEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues);
-extern BOOL WINAPI wglGetPixelFormatAttribfvEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues);
-extern BOOL WINAPI wglChoosePixelFormatEXT (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
-#endif /* WGL_WGLEXT_PROTOTYPES */
+#define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000
+#define WGL_DRAW_TO_WINDOW_EXT 0x2001
+#define WGL_DRAW_TO_BITMAP_EXT 0x2002
+#define WGL_ACCELERATION_EXT 0x2003
+#define WGL_NEED_PALETTE_EXT 0x2004
+#define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005
+#define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006
+#define WGL_SWAP_METHOD_EXT 0x2007
+#define WGL_NUMBER_OVERLAYS_EXT 0x2008
+#define WGL_NUMBER_UNDERLAYS_EXT 0x2009
+#define WGL_TRANSPARENT_EXT 0x200A
+#define WGL_TRANSPARENT_VALUE_EXT 0x200B
+#define WGL_SHARE_DEPTH_EXT 0x200C
+#define WGL_SHARE_STENCIL_EXT 0x200D
+#define WGL_SHARE_ACCUM_EXT 0x200E
+#define WGL_SUPPORT_GDI_EXT 0x200F
+#define WGL_SUPPORT_OPENGL_EXT 0x2010
+#define WGL_DOUBLE_BUFFER_EXT 0x2011
+#define WGL_STEREO_EXT 0x2012
+#define WGL_PIXEL_TYPE_EXT 0x2013
+#define WGL_COLOR_BITS_EXT 0x2014
+#define WGL_RED_BITS_EXT 0x2015
+#define WGL_RED_SHIFT_EXT 0x2016
+#define WGL_GREEN_BITS_EXT 0x2017
+#define WGL_GREEN_SHIFT_EXT 0x2018
+#define WGL_BLUE_BITS_EXT 0x2019
+#define WGL_BLUE_SHIFT_EXT 0x201A
+#define WGL_ALPHA_BITS_EXT 0x201B
+#define WGL_ALPHA_SHIFT_EXT 0x201C
+#define WGL_ACCUM_BITS_EXT 0x201D
+#define WGL_ACCUM_RED_BITS_EXT 0x201E
+#define WGL_ACCUM_GREEN_BITS_EXT 0x201F
+#define WGL_ACCUM_BLUE_BITS_EXT 0x2020
+#define WGL_ACCUM_ALPHA_BITS_EXT 0x2021
+#define WGL_DEPTH_BITS_EXT 0x2022
+#define WGL_STENCIL_BITS_EXT 0x2023
+#define WGL_AUX_BUFFERS_EXT 0x2024
+#define WGL_NO_ACCELERATION_EXT 0x2025
+#define WGL_GENERIC_ACCELERATION_EXT 0x2026
+#define WGL_FULL_ACCELERATION_EXT 0x2027
+#define WGL_SWAP_EXCHANGE_EXT 0x2028
+#define WGL_SWAP_COPY_EXT 0x2029
+#define WGL_SWAP_UNDEFINED_EXT 0x202A
+#define WGL_TYPE_RGBA_EXT 0x202B
+#define WGL_TYPE_COLORINDEX_EXT 0x202C
typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues);
typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues);
typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglGetPixelFormatAttribivEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues);
+BOOL WINAPI wglGetPixelFormatAttribfvEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues);
+BOOL WINAPI wglChoosePixelFormatEXT (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
#endif
+#endif /* WGL_EXT_pixel_format */
+
+#ifndef WGL_EXT_pixel_format_packed_float
+#define WGL_EXT_pixel_format_packed_float 1
+#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8
+#endif /* WGL_EXT_pixel_format_packed_float */
#ifndef WGL_EXT_swap_control
#define WGL_EXT_swap_control 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglSwapIntervalEXT (int interval);
-extern int WINAPI wglGetSwapIntervalEXT (void);
-#endif /* WGL_WGLEXT_PROTOTYPES */
typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval);
typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void);
-#endif
-
-#ifndef WGL_EXT_depth_float
-#define WGL_EXT_depth_float 1
-#endif
-
-#ifndef WGL_NV_vertex_array_range
-#define WGL_NV_vertex_array_range 1
#ifdef WGL_WGLEXT_PROTOTYPES
-extern void* WINAPI wglAllocateMemoryNV (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
-extern void WINAPI wglFreeMemoryNV (void *pointer);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef void* (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
-typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer);
-#endif
-
-#ifndef WGL_3DFX_multisample
-#define WGL_3DFX_multisample 1
-#endif
-
-#ifndef WGL_EXT_multisample
-#define WGL_EXT_multisample 1
+BOOL WINAPI wglSwapIntervalEXT (int interval);
+int WINAPI wglGetSwapIntervalEXT (void);
#endif
+#endif /* WGL_EXT_swap_control */
-#ifndef WGL_OML_sync_control
-#define WGL_OML_sync_control 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglGetSyncValuesOML (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
-extern BOOL WINAPI wglGetMscRateOML (HDC hdc, INT32 *numerator, INT32 *denominator);
-extern INT64 WINAPI wglSwapBuffersMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
-extern INT64 WINAPI wglSwapLayerBuffersMscOML (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
-extern BOOL WINAPI wglWaitForMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
-extern BOOL WINAPI wglWaitForSbcOML (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
-typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32 *numerator, INT32 *denominator);
-typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
-typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
-typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
-typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
-#endif
+#ifndef WGL_EXT_swap_control_tear
+#define WGL_EXT_swap_control_tear 1
+#endif /* WGL_EXT_swap_control_tear */
#ifndef WGL_I3D_digital_video_control
#define WGL_I3D_digital_video_control 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglGetDigitalVideoParametersI3D (HDC hDC, int iAttribute, int *piValue);
-extern BOOL WINAPI wglSetDigitalVideoParametersI3D (HDC hDC, int iAttribute, const int *piValue);
-#endif /* WGL_WGLEXT_PROTOTYPES */
+#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050
+#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051
+#define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052
+#define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053
typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue);
typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglGetDigitalVideoParametersI3D (HDC hDC, int iAttribute, int *piValue);
+BOOL WINAPI wglSetDigitalVideoParametersI3D (HDC hDC, int iAttribute, const int *piValue);
#endif
+#endif /* WGL_I3D_digital_video_control */
#ifndef WGL_I3D_gamma
#define WGL_I3D_gamma 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglGetGammaTableParametersI3D (HDC hDC, int iAttribute, int *piValue);
-extern BOOL WINAPI wglSetGammaTableParametersI3D (HDC hDC, int iAttribute, const int *piValue);
-extern BOOL WINAPI wglGetGammaTableI3D (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue);
-extern BOOL WINAPI wglSetGammaTableI3D (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue);
-#endif /* WGL_WGLEXT_PROTOTYPES */
+#define WGL_GAMMA_TABLE_SIZE_I3D 0x204E
+#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F
typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue);
typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue);
typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue);
typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglGetGammaTableParametersI3D (HDC hDC, int iAttribute, int *piValue);
+BOOL WINAPI wglSetGammaTableParametersI3D (HDC hDC, int iAttribute, const int *piValue);
+BOOL WINAPI wglGetGammaTableI3D (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue);
+BOOL WINAPI wglSetGammaTableI3D (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue);
#endif
+#endif /* WGL_I3D_gamma */
#ifndef WGL_I3D_genlock
#define WGL_I3D_genlock 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglEnableGenlockI3D (HDC hDC);
-extern BOOL WINAPI wglDisableGenlockI3D (HDC hDC);
-extern BOOL WINAPI wglIsEnabledGenlockI3D (HDC hDC, BOOL *pFlag);
-extern BOOL WINAPI wglGenlockSourceI3D (HDC hDC, UINT uSource);
-extern BOOL WINAPI wglGetGenlockSourceI3D (HDC hDC, UINT *uSource);
-extern BOOL WINAPI wglGenlockSourceEdgeI3D (HDC hDC, UINT uEdge);
-extern BOOL WINAPI wglGetGenlockSourceEdgeI3D (HDC hDC, UINT *uEdge);
-extern BOOL WINAPI wglGenlockSampleRateI3D (HDC hDC, UINT uRate);
-extern BOOL WINAPI wglGetGenlockSampleRateI3D (HDC hDC, UINT *uRate);
-extern BOOL WINAPI wglGenlockSourceDelayI3D (HDC hDC, UINT uDelay);
-extern BOOL WINAPI wglGetGenlockSourceDelayI3D (HDC hDC, UINT *uDelay);
-extern BOOL WINAPI wglQueryGenlockMaxSourceDelayI3D (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay);
-#endif /* WGL_WGLEXT_PROTOTYPES */
+#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044
+#define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045
+#define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046
+#define WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D 0x2047
+#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048
+#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049
+#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A
+#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B
+#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C
typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC);
typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC);
typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL *pFlag);
@@ -709,190 +548,283 @@ typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT *uRate)
typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay);
typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT *uDelay);
typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay);
-#endif
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglEnableGenlockI3D (HDC hDC);
+BOOL WINAPI wglDisableGenlockI3D (HDC hDC);
+BOOL WINAPI wglIsEnabledGenlockI3D (HDC hDC, BOOL *pFlag);
+BOOL WINAPI wglGenlockSourceI3D (HDC hDC, UINT uSource);
+BOOL WINAPI wglGetGenlockSourceI3D (HDC hDC, UINT *uSource);
+BOOL WINAPI wglGenlockSourceEdgeI3D (HDC hDC, UINT uEdge);
+BOOL WINAPI wglGetGenlockSourceEdgeI3D (HDC hDC, UINT *uEdge);
+BOOL WINAPI wglGenlockSampleRateI3D (HDC hDC, UINT uRate);
+BOOL WINAPI wglGetGenlockSampleRateI3D (HDC hDC, UINT *uRate);
+BOOL WINAPI wglGenlockSourceDelayI3D (HDC hDC, UINT uDelay);
+BOOL WINAPI wglGetGenlockSourceDelayI3D (HDC hDC, UINT *uDelay);
+BOOL WINAPI wglQueryGenlockMaxSourceDelayI3D (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay);
+#endif
+#endif /* WGL_I3D_genlock */
#ifndef WGL_I3D_image_buffer
#define WGL_I3D_image_buffer 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern LPVOID WINAPI wglCreateImageBufferI3D (HDC hDC, DWORD dwSize, UINT uFlags);
-extern BOOL WINAPI wglDestroyImageBufferI3D (HDC hDC, LPVOID pAddress);
-extern BOOL WINAPI wglAssociateImageBufferEventsI3D (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count);
-extern BOOL WINAPI wglReleaseImageBufferEventsI3D (HDC hDC, const LPVOID *pAddress, UINT count);
-#endif /* WGL_WGLEXT_PROTOTYPES */
+#define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001
+#define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002
typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags);
typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress);
typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count);
typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const LPVOID *pAddress, UINT count);
+#ifdef WGL_WGLEXT_PROTOTYPES
+LPVOID WINAPI wglCreateImageBufferI3D (HDC hDC, DWORD dwSize, UINT uFlags);
+BOOL WINAPI wglDestroyImageBufferI3D (HDC hDC, LPVOID pAddress);
+BOOL WINAPI wglAssociateImageBufferEventsI3D (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count);
+BOOL WINAPI wglReleaseImageBufferEventsI3D (HDC hDC, const LPVOID *pAddress, UINT count);
#endif
+#endif /* WGL_I3D_image_buffer */
#ifndef WGL_I3D_swap_frame_lock
#define WGL_I3D_swap_frame_lock 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglEnableFrameLockI3D (void);
-extern BOOL WINAPI wglDisableFrameLockI3D (void);
-extern BOOL WINAPI wglIsEnabledFrameLockI3D (BOOL *pFlag);
-extern BOOL WINAPI wglQueryFrameLockMasterI3D (BOOL *pFlag);
-#endif /* WGL_WGLEXT_PROTOTYPES */
typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (void);
typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (void);
typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL *pFlag);
typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL *pFlag);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglEnableFrameLockI3D (void);
+BOOL WINAPI wglDisableFrameLockI3D (void);
+BOOL WINAPI wglIsEnabledFrameLockI3D (BOOL *pFlag);
+BOOL WINAPI wglQueryFrameLockMasterI3D (BOOL *pFlag);
#endif
+#endif /* WGL_I3D_swap_frame_lock */
#ifndef WGL_I3D_swap_frame_usage
#define WGL_I3D_swap_frame_usage 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglGetFrameUsageI3D (float *pUsage);
-extern BOOL WINAPI wglBeginFrameTrackingI3D (void);
-extern BOOL WINAPI wglEndFrameTrackingI3D (void);
-extern BOOL WINAPI wglQueryFrameTrackingI3D (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
-#endif /* WGL_WGLEXT_PROTOTYPES */
typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float *pUsage);
typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void);
typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void);
typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglGetFrameUsageI3D (float *pUsage);
+BOOL WINAPI wglBeginFrameTrackingI3D (void);
+BOOL WINAPI wglEndFrameTrackingI3D (void);
+BOOL WINAPI wglQueryFrameTrackingI3D (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
+#endif
+#endif /* WGL_I3D_swap_frame_usage */
+
+#ifndef WGL_NV_DX_interop
+#define WGL_NV_DX_interop 1
+#define WGL_ACCESS_READ_ONLY_NV 0x00000000
+#define WGL_ACCESS_READ_WRITE_NV 0x00000001
+#define WGL_ACCESS_WRITE_DISCARD_NV 0x00000002
+typedef BOOL (WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC) (void *dxObject, HANDLE shareHandle);
+typedef HANDLE (WINAPI * PFNWGLDXOPENDEVICENVPROC) (void *dxDevice);
+typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice);
+typedef HANDLE (WINAPI * PFNWGLDXREGISTEROBJECTNVPROC) (HANDLE hDevice, void *dxObject, GLuint name, GLenum type, GLenum access);
+typedef BOOL (WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC) (HANDLE hDevice, HANDLE hObject);
+typedef BOOL (WINAPI * PFNWGLDXOBJECTACCESSNVPROC) (HANDLE hObject, GLenum access);
+typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE *hObjects);
+typedef BOOL (WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE *hObjects);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglDXSetResourceShareHandleNV (void *dxObject, HANDLE shareHandle);
+HANDLE WINAPI wglDXOpenDeviceNV (void *dxDevice);
+BOOL WINAPI wglDXCloseDeviceNV (HANDLE hDevice);
+HANDLE WINAPI wglDXRegisterObjectNV (HANDLE hDevice, void *dxObject, GLuint name, GLenum type, GLenum access);
+BOOL WINAPI wglDXUnregisterObjectNV (HANDLE hDevice, HANDLE hObject);
+BOOL WINAPI wglDXObjectAccessNV (HANDLE hObject, GLenum access);
+BOOL WINAPI wglDXLockObjectsNV (HANDLE hDevice, GLint count, HANDLE *hObjects);
+BOOL WINAPI wglDXUnlockObjectsNV (HANDLE hDevice, GLint count, HANDLE *hObjects);
#endif
+#endif /* WGL_NV_DX_interop */
-#ifndef WGL_ATI_pixel_format_float
-#define WGL_ATI_pixel_format_float 1
-#endif
+#ifndef WGL_NV_DX_interop2
+#define WGL_NV_DX_interop2 1
+#endif /* WGL_NV_DX_interop2 */
-#ifndef WGL_NV_float_buffer
-#define WGL_NV_float_buffer 1
+#ifndef WGL_NV_copy_image
+#define WGL_NV_copy_image 1
+typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglCopyImageSubDataNV (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
#endif
+#endif /* WGL_NV_copy_image */
-#ifndef WGL_3DL_stereo_control
-#define WGL_3DL_stereo_control 1
+#ifndef WGL_NV_delay_before_swap
+#define WGL_NV_delay_before_swap 1
+typedef BOOL (WINAPI * PFNWGLDELAYBEFORESWAPNVPROC) (HDC hDC, GLfloat seconds);
#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglSetStereoEmitterState3DL (HDC hDC, UINT uState);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState);
+BOOL WINAPI wglDelayBeforeSwapNV (HDC hDC, GLfloat seconds);
#endif
+#endif /* WGL_NV_delay_before_swap */
-#ifndef WGL_EXT_pixel_format_packed_float
-#define WGL_EXT_pixel_format_packed_float 1
-#endif
+#ifndef WGL_NV_float_buffer
+#define WGL_NV_float_buffer 1
+#define WGL_FLOAT_COMPONENTS_NV 0x20B0
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4
+#define WGL_TEXTURE_FLOAT_R_NV 0x20B5
+#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6
+#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7
+#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8
+#endif /* WGL_NV_float_buffer */
-#ifndef WGL_EXT_framebuffer_sRGB
-#define WGL_EXT_framebuffer_sRGB 1
+#ifndef WGL_NV_gpu_affinity
+#define WGL_NV_gpu_affinity 1
+DECLARE_HANDLE(HGPUNV);
+struct _GPU_DEVICE {
+ DWORD cb;
+ CHAR DeviceName[32];
+ CHAR DeviceString[128];
+ DWORD Flags;
+ RECT rcVirtualScreen;
+};
+typedef struct _GPU_DEVICE *PGPU_DEVICE;
+#define ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0
+#define ERROR_MISSING_AFFINITY_MASK_NV 0x20D1
+typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu);
+typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
+typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList);
+typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
+typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglEnumGpusNV (UINT iGpuIndex, HGPUNV *phGpu);
+BOOL WINAPI wglEnumGpuDevicesNV (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
+HDC WINAPI wglCreateAffinityDCNV (const HGPUNV *phGpuList);
+BOOL WINAPI wglEnumGpusFromAffinityDCNV (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
+BOOL WINAPI wglDeleteDCNV (HDC hdc);
#endif
+#endif /* WGL_NV_gpu_affinity */
+
+#ifndef WGL_NV_multisample_coverage
+#define WGL_NV_multisample_coverage 1
+#define WGL_COVERAGE_SAMPLES_NV 0x2042
+#define WGL_COLOR_SAMPLES_NV 0x20B9
+#endif /* WGL_NV_multisample_coverage */
#ifndef WGL_NV_present_video
#define WGL_NV_present_video 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern int WINAPI wglEnumerateVideoDevicesNV (HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList);
-extern BOOL WINAPI wglBindVideoDeviceNV (HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList);
-extern BOOL WINAPI wglQueryCurrentContextNV (int iAttribute, int *piValue);
-#endif /* WGL_WGLEXT_PROTOTYPES */
+DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
+#define WGL_NUM_VIDEO_SLOTS_NV 0x20F0
typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList);
typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList);
typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int *piValue);
-#endif
-
-#ifndef WGL_NV_video_output
-#define WGL_NV_video_output 1
#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglGetVideoDeviceNV (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice);
-extern BOOL WINAPI wglReleaseVideoDeviceNV (HPVIDEODEV hVideoDevice);
-extern BOOL WINAPI wglBindVideoImageNV (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
-extern BOOL WINAPI wglReleaseVideoImageNV (HPBUFFERARB hPbuffer, int iVideoBuffer);
-extern BOOL WINAPI wglSendPbufferToVideoNV (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock);
-extern BOOL WINAPI wglGetVideoInfoNV (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice);
-typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice);
-typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
-typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer);
-typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock);
-typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
+int WINAPI wglEnumerateVideoDevicesNV (HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList);
+BOOL WINAPI wglBindVideoDeviceNV (HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList);
+BOOL WINAPI wglQueryCurrentContextNV (int iAttribute, int *piValue);
#endif
+#endif /* WGL_NV_present_video */
+
+#ifndef WGL_NV_render_depth_texture
+#define WGL_NV_render_depth_texture 1
+#define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4
+#define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5
+#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6
+#define WGL_DEPTH_COMPONENT_NV 0x20A7
+#endif /* WGL_NV_render_depth_texture */
+
+#ifndef WGL_NV_render_texture_rectangle
+#define WGL_NV_render_texture_rectangle 1
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1
+#define WGL_TEXTURE_RECTANGLE_NV 0x20A2
+#endif /* WGL_NV_render_texture_rectangle */
#ifndef WGL_NV_swap_group
#define WGL_NV_swap_group 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglJoinSwapGroupNV (HDC hDC, GLuint group);
-extern BOOL WINAPI wglBindSwapBarrierNV (GLuint group, GLuint barrier);
-extern BOOL WINAPI wglQuerySwapGroupNV (HDC hDC, GLuint *group, GLuint *barrier);
-extern BOOL WINAPI wglQueryMaxSwapGroupsNV (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers);
-extern BOOL WINAPI wglQueryFrameCountNV (HDC hDC, GLuint *count);
-extern BOOL WINAPI wglResetFrameCountNV (HDC hDC);
-#endif /* WGL_WGLEXT_PROTOTYPES */
typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group);
typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier);
typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint *group, GLuint *barrier);
typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers);
typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint *count);
typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC);
-#endif
-
-#ifndef WGL_NV_gpu_affinity
-#define WGL_NV_gpu_affinity 1
#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglEnumGpusNV (UINT iGpuIndex, HGPUNV *phGpu);
-extern BOOL WINAPI wglEnumGpuDevicesNV (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
-extern HDC WINAPI wglCreateAffinityDCNV (const HGPUNV *phGpuList);
-extern BOOL WINAPI wglEnumGpusFromAffinityDCNV (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
-extern BOOL WINAPI wglDeleteDCNV (HDC hdc);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu);
-typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
-typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList);
-typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
-typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc);
+BOOL WINAPI wglJoinSwapGroupNV (HDC hDC, GLuint group);
+BOOL WINAPI wglBindSwapBarrierNV (GLuint group, GLuint barrier);
+BOOL WINAPI wglQuerySwapGroupNV (HDC hDC, GLuint *group, GLuint *barrier);
+BOOL WINAPI wglQueryMaxSwapGroupsNV (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers);
+BOOL WINAPI wglQueryFrameCountNV (HDC hDC, GLuint *count);
+BOOL WINAPI wglResetFrameCountNV (HDC hDC);
#endif
+#endif /* WGL_NV_swap_group */
-#ifndef WGL_AMD_gpu_association
-#define WGL_AMD_gpu_association 1
+#ifndef WGL_NV_vertex_array_range
+#define WGL_NV_vertex_array_range 1
+typedef void *(WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
+typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer);
#ifdef WGL_WGLEXT_PROTOTYPES
-extern UINT WINAPI wglGetGPUIDsAMD (UINT maxCount, UINT *ids);
-extern INT WINAPI wglGetGPUInfoAMD (UINT id, int property, GLenum dataType, UINT size, void *data);
-extern UINT WINAPI wglGetContextGPUIDAMD (HGLRC hglrc);
-extern HGLRC WINAPI wglCreateAssociatedContextAMD (UINT id);
-extern HGLRC WINAPI wglCreateAssociatedContextAttribsAMD (UINT id, HGLRC hShareContext, const int *attribList);
-extern BOOL WINAPI wglDeleteAssociatedContextAMD (HGLRC hglrc);
-extern BOOL WINAPI wglMakeAssociatedContextCurrentAMD (HGLRC hglrc);
-extern HGLRC WINAPI wglGetCurrentAssociatedContextAMD (void);
-extern VOID WINAPI wglBlitContextFramebufferAMD (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT *ids);
-typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, int property, GLenum dataType, UINT size, void *data);
-typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc);
-typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) (UINT id);
-typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UINT id, HGLRC hShareContext, const int *attribList);
-typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc);
-typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc);
-typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void);
-typedef VOID (WINAPI * PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC) (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+void *WINAPI wglAllocateMemoryNV (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
+void WINAPI wglFreeMemoryNV (void *pointer);
#endif
+#endif /* WGL_NV_vertex_array_range */
#ifndef WGL_NV_video_capture
#define WGL_NV_video_capture 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglBindVideoCaptureDeviceNV (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
-extern UINT WINAPI wglEnumerateVideoCaptureDevicesNV (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList);
-extern BOOL WINAPI wglLockVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
-extern BOOL WINAPI wglQueryVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue);
-extern BOOL WINAPI wglReleaseVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
-#endif /* WGL_WGLEXT_PROTOTYPES */
+DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
+#define WGL_UNIQUE_ID_NV 0x20CE
+#define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList);
typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue);
typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
-#endif
-
-#ifndef WGL_NV_copy_image
-#define WGL_NV_copy_image 1
#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglCopyImageSubDataNV (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
+BOOL WINAPI wglBindVideoCaptureDeviceNV (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
+UINT WINAPI wglEnumerateVideoCaptureDevicesNV (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList);
+BOOL WINAPI wglLockVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
+BOOL WINAPI wglQueryVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue);
+BOOL WINAPI wglReleaseVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
#endif
+#endif /* WGL_NV_video_capture */
-#ifndef WGL_NV_multisample_coverage
-#define WGL_NV_multisample_coverage 1
+#ifndef WGL_NV_video_output
+#define WGL_NV_video_output 1
+DECLARE_HANDLE(HPVIDEODEV);
+#define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0
+#define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1
+#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2
+#define WGL_VIDEO_OUT_COLOR_NV 0x20C3
+#define WGL_VIDEO_OUT_ALPHA_NV 0x20C4
+#define WGL_VIDEO_OUT_DEPTH_NV 0x20C5
+#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
+#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
+#define WGL_VIDEO_OUT_FRAME 0x20C8
+#define WGL_VIDEO_OUT_FIELD_1 0x20C9
+#define WGL_VIDEO_OUT_FIELD_2 0x20CA
+#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB
+#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC
+typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice);
+typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice);
+typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
+typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer);
+typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock);
+typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglGetVideoDeviceNV (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice);
+BOOL WINAPI wglReleaseVideoDeviceNV (HPVIDEODEV hVideoDevice);
+BOOL WINAPI wglBindVideoImageNV (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
+BOOL WINAPI wglReleaseVideoImageNV (HPBUFFERARB hPbuffer, int iVideoBuffer);
+BOOL WINAPI wglSendPbufferToVideoNV (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock);
+BOOL WINAPI wglGetVideoInfoNV (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
#endif
+#endif /* WGL_NV_video_output */
+#ifndef WGL_OML_sync_control
+#define WGL_OML_sync_control 1
+typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
+typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32 *numerator, INT32 *denominator);
+typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
+typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
+typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
+typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglGetSyncValuesOML (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
+BOOL WINAPI wglGetMscRateOML (HDC hdc, INT32 *numerator, INT32 *denominator);
+INT64 WINAPI wglSwapBuffersMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
+INT64 WINAPI wglSwapLayerBuffersMscOML (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
+BOOL WINAPI wglWaitForMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
+BOOL WINAPI wglWaitForSbcOML (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
+#endif
+#endif /* WGL_OML_sync_control */
#ifdef __cplusplus
}
diff --git a/mesalib/include/getopt.h b/mesalib/include/getopt.h
new file mode 100644
index 000000000..695f89061
--- /dev/null
+++ b/mesalib/include/getopt.h
@@ -0,0 +1,128 @@
+/* Declarations for getopt.
+ Copyright (C) 1989, 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option) any
+ later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+#ifndef _GETOPT_H
+#define _GETOPT_H 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* For communication from `getopt' to the caller.
+ When `getopt' finds an option that takes an argument,
+ the argument value is returned here.
+ Also, when `ordering' is RETURN_IN_ORDER,
+ each non-option ARGV-element is returned here. */
+
+extern char *optarg;
+
+/* Index in ARGV of the next element to be scanned.
+ This is used for communication to and from the caller
+ and for communication between successive calls to `getopt'.
+
+ On entry to `getopt', zero means this is the first call; initialize.
+
+ When `getopt' returns EOF, this is the index of the first of the
+ non-option elements that the caller should itself scan.
+
+ Otherwise, `optind' communicates from one call to the next
+ how much of ARGV has been scanned so far. */
+
+extern int optind;
+
+/* Callers store zero here to inhibit the error message `getopt' prints
+ for unrecognized options. */
+
+extern int opterr;
+
+ /* Set to an option character which was unrecognized. */
+
+ extern int optopt;
+
+/* Describe the long-named options requested by the application.
+ The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
+ of `struct option' terminated by an element containing a name which is
+ zero.
+
+ The field `has_arg' is:
+ no_argument (or 0) if the option does not take an argument,
+ required_argument (or 1) if the option requires an argument,
+ optional_argument (or 2) if the option takes an optional argument.
+
+ If the field `flag' is not NULL, it points to a variable that is set
+ to the value given in the field `val' when the option is found, but
+ left unchanged if the option is not found.
+
+ To have a long-named option do something other than set an `int' to
+ a compiled-in constant, such as set a value from `optarg', set the
+ option's `flag' field to zero and its `val' field to a nonzero
+ value (the equivalent single-letter option character, if there is
+ one). For long options that have a zero `flag' field, `getopt'
+ returns the contents of the `val' field. */
+
+struct option
+{
+#if __STDC__
+ const char *name;
+#else
+ char *name;
+#endif
+ /* has_arg can't be an enum because some compilers complain about
+ type mismatches in all the code that assumes it is an int. */
+ int has_arg;
+ int *flag;
+ int val;
+};
+
+/* Names for the values of the `has_arg' field of `struct option'. */
+
+#define no_argument 0
+#define required_argument 1
+#define optional_argument 2
+
+#if __STDC__
+#if defined(__GNU_LIBRARY__)
+/* Many other libraries have conflicting prototypes for getopt, with
+ differences in the consts, in stdlib.h. To avoid compilation
+ errors, only prototype getopt for the GNU C library. */
+extern int getopt (int argc, char *const *argv, const char *shortopts);
+#else /* not __GNU_LIBRARY__ */
+extern int getopt ();
+#endif /* not __GNU_LIBRARY__ */
+extern int getopt_long (int argc, char *const *argv, const char *shortopts,
+ const struct option *longopts, int *longind);
+extern int getopt_long_only (int argc, char *const *argv,
+ const char *shortopts,
+ const struct option *longopts, int *longind);
+
+/* Internal only. Users should not call this directly. */
+extern int _getopt_internal (int argc, char *const *argv,
+ const char *shortopts,
+ const struct option *longopts, int *longind,
+ int long_only);
+#else /* not __STDC__ */
+extern int getopt ();
+extern int getopt_long ();
+extern int getopt_long_only ();
+
+extern int _getopt_internal ();
+#endif /* not __STDC__ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GETOPT_H */
diff --git a/mesalib/src/glsl/.gitignore b/mesalib/src/glsl/.gitignore
index 43720f60b..d9b4adce5 100644
--- a/mesalib/src/glsl/.gitignore
+++ b/mesalib/src/glsl/.gitignore
@@ -1,6 +1,6 @@
-glsl_compiler
-glsl_lexer.cpp
-glsl_parser.cpp
-glsl_parser.h
-glsl_parser.output
-glsl_test
+glsl_compiler
+glsl_lexer.cpp
+glsl_parser.cpp
+glsl_parser.h
+glsl_parser.output
+glsl_test
diff --git a/mesalib/src/glsl/ast.h b/mesalib/src/glsl/ast.h
index 5c214b604..9c43920a4 100644
--- a/mesalib/src/glsl/ast.h
+++ b/mesalib/src/glsl/ast.h
@@ -50,6 +50,10 @@ struct YYLTYPE;
class ast_node {
public:
DECLARE_RALLOC_CXX_OPERATORS(ast_node);
+ static void operator delete(void *table, void *ctx)
+ {
+ ralloc_free(table);
+ }
/**
* Print an AST node in something approximating the original GLSL code
diff --git a/mesalib/src/glsl/builtin_functions.cpp b/mesalib/src/glsl/builtin_functions.cpp
index 8cb75e5ad..a45de091b 100644
--- a/mesalib/src/glsl/builtin_functions.cpp
+++ b/mesalib/src/glsl/builtin_functions.cpp
@@ -558,7 +558,7 @@ private:
B1(bitCount)
B1(findLSB)
B1(findMSB)
- B1(fma)
+ B1(fma_mesa)
B2(ldexp)
B2(frexp)
B1(uaddCarry)
@@ -2053,7 +2053,7 @@ builtin_builder::create_builtins()
IU(bitCount)
IU(findLSB)
IU(findMSB)
- F(fma)
+ F(fma_mesa)
add_function("ldexp",
_ldexp(glsl_type::float_type, glsl_type::int_type),
@@ -3857,14 +3857,14 @@ builtin_builder::_findMSB(const glsl_type *type)
}
ir_function_signature *
-builtin_builder::_fma(const glsl_type *type)
+builtin_builder::_fma_mesa(const glsl_type *type)
{
ir_variable *a = in_var(type, "a");
ir_variable *b = in_var(type, "b");
ir_variable *c = in_var(type, "c");
MAKE_SIG(type, gpu_shader5, 3, a, b, c);
- body.emit(ret(fma(a, b, c)));
+ body.emit(ret(fma_mesa(a, b, c)));
return sig;
}
diff --git a/mesalib/src/glsl/doflexbison.bat b/mesalib/src/glsl/doflexbison.bat
new file mode 100644
index 000000000..28cf2706b
--- /dev/null
+++ b/mesalib/src/glsl/doflexbison.bat
@@ -0,0 +1,21 @@
+@echo off
+setlocal
+
+cd "%~dp0"
+
+set M4=..\..\..\tools\mhmake\m4.exe
+set BISON_PKGDATADIR=../../../tools/mhmake/src/bisondata
+
+set path=..\..\..\tools\mhmake;%path%
+
+..\..\..\tools\mhmake\bison.exe -v -o glsl_parser.cpp -p "_mesa_glsl_" --defines=glsl_parser.h glsl_parser.yy
+
+..\..\..\tools\mhmake\bison.exe -v -o glcpp/glcpp-parse.c -d -p "glcpp_parser_" --defines=glcpp/glcpp-parse.h glcpp/glcpp-parse.y
+
+copy "..\..\..\tools\mhmake\flex++.exe" flex.exe
+flex.exe --nounistd -oglsl_lexer.cpp glsl_lexer.ll
+flex.exe --nounistd -oglcpp/glcpp-lex.c glcpp/glcpp-lex.l
+del flex.exe
+
+endlocal
+
diff --git a/mesalib/src/glsl/getopt.cpp b/mesalib/src/glsl/getopt.cpp
new file mode 100644
index 000000000..ea5dd3927
--- /dev/null
+++ b/mesalib/src/glsl/getopt.cpp
@@ -0,0 +1,552 @@
+/* $OpenBSD: getopt_long.c,v 1.20 2005/10/25 15:49:37 jmc Exp $ */
+/* $NetBSD: getopt_long.c,v 1.15 2002/01/31 22:43:40 tv Exp $ */
+// Adapted for Box Backup by Chris Wilson <chris+boxbackup@qwirx.com>
+
+/*
+ * Copyright (c) 2002 Todd C. Miller <Todd.Miller@courtesan.com>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, 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.
+ *
+ * Sponsored in part by the Defense Advanced Research Projects
+ * Agency (DARPA) and Air Force Research Laboratory, Air Force
+ * Materiel Command, USAF, under agreement number F39502-99-1-0512.
+ */
+/*-
+ * Copyright (c) 2000 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Dieter Baron and Thomas Klausner.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the NetBSD
+ * Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// #include "Box.h"
+
+#include <errno.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#define __STDC__ 1
+
+#include "getopt.h"
+
+#if defined _MSC_VER || defined __MINGW32__
+#define REPLACE_GETOPT /* use this getopt as the system getopt(3) */
+
+#ifdef REPLACE_GETOPT
+int opterr = 1; /* if error message should be printed */
+int optind = 1; /* index into parent argv vector */
+int optopt = '?'; /* character checked for validity */
+int optreset; /* reset getopt */
+char *optarg; /* argument associated with option */
+#endif
+
+#define PRINT_ERROR ((opterr) && (*options != ':'))
+
+#define FLAG_PERMUTE 0x01 /* permute non-options to the end of argv */
+#define FLAG_ALLARGS 0x02 /* treat non-options as args to option "-1" */
+#define FLAG_LONGONLY 0x04 /* operate as getopt_long_only */
+
+/* return values */
+#define BADCH (int)'?'
+#define BADARG ((*options == ':') ? (int)':' : (int)'?')
+#define INORDER (int)1
+
+#define EMSG ""
+
+static void warnx(const char* fmt, ...)
+{
+ va_list ap;
+ va_start(ap, fmt);
+ vfprintf(stderr, fmt, ap);
+ va_end(ap);
+ fprintf(stderr, "\n");
+ }
+
+ static int getopt_internal(int, char * const *, const char *,
+ const struct option *, int *, int);
+ static int parse_long_options(char * const *, const char *,
+ const struct option *, int *, int);
+ static int gcd(int, int);
+ static void permute_args(int, int, int, char * const *);
+
+ static char *place = EMSG; /* option letter processing */
+
+ /* XXX: set optreset to 1 rather than these two */
+ static int nonopt_start = -1; /* first non option argument (for permute) */
+ static int nonopt_end = -1; /* first option after non options (for permute) */
+
+ /* Error messages */
+ static const char recargchar[] = "option requires an argument -- %c";
+ static const char recargstring[] = "option requires an argument -- %s";
+ static const char ambig[] = "ambiguous option -- %.*s";
+ static const char noarg[] = "option doesn't take an argument -- %.*s";
+ static const char illoptchar[] = "unknown option -- %c";
+ static const char illoptstring[] = "unknown option -- %s";
+
+ /*
+ * Compute the greatest common divisor of a and b.
+ */
+ static int
+ gcd(int a, int b)
+ {
+ int c;
+
+ c = a % b;
+ while (c != 0) {
+ a = b;
+ b = c;
+ c = a % b;
+ }
+
+ return (b);
+ }
+
+ /*
+ * Exchange the block from nonopt_start to nonopt_end with the block
+ * from nonopt_end to opt_end (keeping the same order of arguments
+ * in each block).
+ */
+ static void
+ permute_args(int panonopt_start, int panonopt_end, int opt_end,
+ char * const *nargv)
+ {
+ int cstart, cyclelen, i, j, ncycle, nnonopts, nopts, pos;
+ char *swap;
+
+ /*
+ * compute lengths of blocks and number and size of cycles
+ */
+ nnonopts = panonopt_end - panonopt_start;
+ nopts = opt_end - panonopt_end;
+ ncycle = gcd(nnonopts, nopts);
+ cyclelen = (opt_end - panonopt_start) / ncycle;
+
+ for (i = 0; i < ncycle; i++) {
+ cstart = panonopt_end+i;
+ pos = cstart;
+ for (j = 0; j < cyclelen; j++) {
+ if (pos >= panonopt_end)
+ pos -= nnonopts;
+ else
+ pos += nopts;
+ swap = nargv[pos];
+ /* LINTED const cast */
+ ((char **) nargv)[pos] = nargv[cstart];
+ /* LINTED const cast */
+ ((char **)nargv)[cstart] = swap;
+ }
+ }
+ }
+
+ /*
+ * parse_long_options --
+ * Parse long options in argc/argv argument vector.
+ * Returns -1 if short_too is set and the option does not match long_options.
+ */
+ static int
+ parse_long_options(char * const *nargv, const char *options,
+ const struct option *long_options, int *idx, int short_too)
+ {
+ char *current_argv, *has_equal;
+ size_t current_argv_len;
+ int i, match;
+
+ current_argv = place;
+ match = -1;
+
+ optind++;
+
+ if ((has_equal = strchr(current_argv, '=')) != NULL) {
+ /* argument found (--option=arg) */
+ current_argv_len = has_equal - current_argv;
+ has_equal++;
+ } else
+ current_argv_len = strlen(current_argv);
+
+ for (i = 0; long_options[i].name; i++) {
+ /* find matching long option */
+ if (strncmp(current_argv, long_options[i].name,
+ current_argv_len))
+ continue;
+
+ if (strlen(long_options[i].name) == current_argv_len) {
+ /* exact match */
+ match = i;
+ break;
+ }
+ /*
+ * If this is a known short option, don't allow
+ * a partial match of a single character.
+ */
+ if (short_too && current_argv_len == 1)
+ continue;
+
+ if (match == -1) /* partial match */
+ match = i;
+ else {
+ /* ambiguous abbreviation */
+ if (PRINT_ERROR)
+ warnx(ambig, (int)current_argv_len,
+ current_argv);
+ optopt = 0;
+ return (BADCH);
+ }
+ }
+ if (match != -1) { /* option found */
+ if (long_options[match].has_arg == no_argument
+ && has_equal) {
+ if (PRINT_ERROR)
+ warnx(noarg, (int)current_argv_len,
+ current_argv);
+ /*
+ * XXX: GNU sets optopt to val regardless of flag
+ */
+ if (long_options[match].flag == NULL)
+ optopt = long_options[match].val;
+ else
+ optopt = 0;
+ return (BADARG);
+ }
+ if (long_options[match].has_arg == required_argument ||
+ long_options[match].has_arg == optional_argument) {
+ if (has_equal)
+ optarg = has_equal;
+ else if (long_options[match].has_arg ==
+ required_argument) {
+ /*
+ * optional argument doesn't use next nargv
+ */
+ optarg = nargv[optind++];
+ }
+ }
+ if ((long_options[match].has_arg == required_argument)
+ && (optarg == NULL)) {
+ /*
+ * Missing argument; leading ':' indicates no error
+ * should be generated.
+ */
+ if (PRINT_ERROR)
+ warnx(recargstring,
+ current_argv);
+ /*
+ * XXX: GNU sets optopt to val regardless of flag
+ */
+ if (long_options[match].flag == NULL)
+ optopt = long_options[match].val;
+ else
+ optopt = 0;
+ --optind;
+ return (BADARG);
+ }
+ } else { /* unknown option */
+ if (short_too) {
+ --optind;
+ return (-1);
+ }
+ if (PRINT_ERROR)
+ warnx(illoptstring, current_argv);
+ optopt = 0;
+ return (BADCH);
+ }
+ if (idx)
+ *idx = match;
+ if (long_options[match].flag) {
+ *long_options[match].flag = long_options[match].val;
+ return (0);
+ } else
+ return (long_options[match].val);
+ }
+
+ /*
+ * getopt_internal --
+ * Parse argc/argv argument vector. Called by user level routines.
+ */
+ static int
+ getopt_internal(int nargc, char * const *nargv, const char *options,
+ const struct option *long_options, int *idx, int flags)
+ {
+ const char * oli; /* option letter list index */
+ int optchar, short_too;
+ static int posixly_correct = -1;
+
+ if (options == NULL)
+ return (-1);
+
+ /*
+ * Disable GNU extensions if POSIXLY_CORRECT is set or options
+ * string begins with a '+'.
+ */
+ if (posixly_correct == -1)
+ posixly_correct = (getenv("POSIXLY_CORRECT") != NULL);
+ if (posixly_correct || *options == '+')
+ flags &= ~FLAG_PERMUTE;
+ else if (*options == '-')
+ flags |= FLAG_ALLARGS;
+ if (*options == '+' || *options == '-')
+ options++;
+
+ /*
+ * XXX Some GNU programs (like cvs) set optind to 0 instead of
+ * XXX using optreset. Work around this braindamage.
+ */
+ if (optind == 0)
+ optind = optreset = 1;
+
+ optarg = NULL;
+ if (optreset)
+ nonopt_start = nonopt_end = -1;
+ start:
+ if (optreset || !*place) { /* update scanning pointer */
+ optreset = 0;
+ if (optind >= nargc) { /* end of argument vector */
+ place = EMSG;
+ if (nonopt_end != -1) {
+ /* do permutation, if we have to */
+ permute_args(nonopt_start, nonopt_end,
+ optind, nargv);
+ optind -= nonopt_end - nonopt_start;
+ }
+ else if (nonopt_start != -1) {
+ /*
+ * If we skipped non-options, set optind
+ * to the first of them.
+ */
+ optind = nonopt_start;
+ }
+ nonopt_start = nonopt_end = -1;
+ return (-1);
+ }
+ if (*(place = nargv[optind]) != '-' ||
+ (place[1] == '\0' && strchr(options, '-') == NULL)) {
+ place = EMSG; /* found non-option */
+ if (flags & FLAG_ALLARGS) {
+ /*
+ * GNU extension:
+ * return non-option as argument to option 1
+ */
+ optarg = nargv[optind++];
+ return (INORDER);
+ }
+ if (!(flags & FLAG_PERMUTE)) {
+ /*
+ * If no permutation wanted, stop parsing
+ * at first non-option.
+ */
+ return (-1);
+ }
+ /* do permutation */
+ if (nonopt_start == -1)
+ nonopt_start = optind;
+ else if (nonopt_end != -1) {
+ permute_args(nonopt_start, nonopt_end,
+ optind, nargv);
+ nonopt_start = optind -
+ (nonopt_end - nonopt_start);
+ nonopt_end = -1;
+ }
+ optind++;
+ /* process next argument */
+ goto start;
+ }
+ if (nonopt_start != -1 && nonopt_end == -1)
+ nonopt_end = optind;
+
+ /*
+ * If we have "-" do nothing, if "--" we are done.
+ */
+ if (place[1] != '\0' && *++place == '-' && place[1] == '\0') {
+ optind++;
+ place = EMSG;
+ /*
+ * We found an option (--), so if we skipped
+ * non-options, we have to permute.
+ */
+ if (nonopt_end != -1) {
+ permute_args(nonopt_start, nonopt_end,
+ optind, nargv);
+ optind -= nonopt_end - nonopt_start;
+ }
+ nonopt_start = nonopt_end = -1;
+ return (-1);
+ }
+ }
+
+ /*
+ * Check long options if:
+ * 1) we were passed some
+ * 2) the arg is not just "-"
+ * 3) either the arg starts with -- we are getopt_long_only()
+ */
+ if (long_options != NULL && place != nargv[optind] &&
+ (*place == '-' || (flags & FLAG_LONGONLY))) {
+ short_too = 0;
+ if (*place == '-')
+ place++; /* --foo long option */
+ else if (*place != ':' && strchr(options, *place) != NULL)
+ short_too = 1; /* could be short option too */
+
+ optchar = parse_long_options(nargv, options, long_options,
+ idx, short_too);
+ if (optchar != -1) {
+ place = EMSG;
+ return (optchar);
+ }
+ }
+
+ if ((optchar = (int)*place++) == (int)':' ||
+ optchar == (int)'-' && *place != '\0' ||
+ (oli = strchr(options, optchar)) == NULL) {
+ /*
+ * If the user specified "-" and '-' isn't listed in
+ * options, return -1 (non-option) as per POSIX.
+ * Otherwise, it is an unknown option character (or ':').
+ */
+ if (optchar == (int)'-' && *place == '\0')
+ return (-1);
+ if (!*place)
+ ++optind;
+ if (PRINT_ERROR)
+ warnx(illoptchar, optchar);
+ optopt = optchar;
+ return (BADCH);
+ }
+ if (long_options != NULL && optchar == 'W' && oli[1] == ';') {
+ /* -W long-option */
+ if (*place) /* no space */
+ /* NOTHING */;
+ else if (++optind >= nargc) { /* no arg */
+ place = EMSG;
+ if (PRINT_ERROR)
+ warnx(recargchar, optchar);
+ optopt = optchar;
+ return (BADARG);
+ } else /* white space */
+ place = nargv[optind];
+ optchar = parse_long_options(nargv, options, long_options,
+ idx, 0);
+ place = EMSG;
+ return (optchar);
+ }
+ if (*++oli != ':') { /* doesn't take argument */
+ if (!*place)
+ ++optind;
+ } else { /* takes (optional) argument */
+ optarg = NULL;
+ if (*place) /* no white space */
+ optarg = place;
+ /* XXX: disable test for :: if PC? (GNU doesn't) */
+ else if (oli[1] != ':') { /* arg not optional */
+ if (++optind >= nargc) { /* no arg */
+ place = EMSG;
+ if (PRINT_ERROR)
+ warnx(recargchar, optchar);
+ optopt = optchar;
+ return (BADARG);
+ } else
+ optarg = nargv[optind];
+ } else if (!(flags & FLAG_PERMUTE)) {
+ /*
+ * If permutation is disabled, we can accept an
+ * optional arg separated by whitespace so long
+ * as it does not start with a dash (-).
+ */
+ if (optind + 1 < nargc && *nargv[optind + 1] != '-')
+ optarg = nargv[++optind];
+ }
+ place = EMSG;
+ ++optind;
+ }
+ /* dump back option letter */
+ return (optchar);
+ }
+
+ #ifdef REPLACE_GETOPT
+ /*
+ * getopt --
+ * Parse argc/argv argument vector.
+ *
+ * [eventually this will replace the BSD getopt]
+ */
+ int
+ getopt(int nargc, char * const *nargv, const char *options)
+ {
+
+ /*
+ * We don't pass FLAG_PERMUTE to getopt_internal() since
+ * the BSD getopt(3) (unlike GNU) has never done this.
+ *
+ * Furthermore, since many privileged programs call getopt()
+ * before dropping privileges it makes sense to keep things
+ * as simple (and bug-free) as possible.
+ */
+ return (getopt_internal(nargc, nargv, options, NULL, NULL, 0));
+ }
+ #endif /* REPLACE_GETOPT */
+
+ /*
+ * getopt_long --
+ * Parse argc/argv argument vector.
+ */
+ int
+ getopt_long(int nargc, char * const *nargv, const char *options,
+ const struct option *long_options, int *idx)
+ {
+
+ return (getopt_internal(nargc, nargv, options, long_options, idx,
+ FLAG_PERMUTE));
+ }
+
+ /*
+ * getopt_long_only --
+ * Parse argc/argv argument vector.
+ */
+ int
+ getopt_long_only(int nargc, char * const *nargv, const char *options,
+ const struct option *long_options, int *idx)
+ {
+
+ return (getopt_internal(nargc, nargv, options, long_options, idx,
+ FLAG_PERMUTE|FLAG_LONGONLY));
+ }
+
+#endif // defined _MSC_VER || defined __MINGW32__ \ No newline at end of file
diff --git a/mesalib/src/glsl/glcpp/.gitignore b/mesalib/src/glsl/glcpp/.gitignore
index 24a7119ca..9f7e0cc3e 100644..100755
--- a/mesalib/src/glsl/glcpp/.gitignore
+++ b/mesalib/src/glsl/glcpp/.gitignore
@@ -1,6 +1,6 @@
-glcpp
-glcpp-lex.c
-glcpp-parse.output
-glcpp-parse.c
-glcpp-parse.h
-tests/*.out
+glcpp
+glcpp-lex.c
+glcpp-parse.output
+glcpp-parse.c
+glcpp-parse.h
+tests/*.out
diff --git a/mesalib/src/glsl/glcpp/glcpp.c b/mesalib/src/glsl/glcpp/glcpp.c
index 6994d7bb9..13a32fd7d 100644
--- a/mesalib/src/glsl/glcpp/glcpp.c
+++ b/mesalib/src/glsl/glcpp/glcpp.c
@@ -30,6 +30,14 @@
#include "main/mtypes.h"
#include "main/shaderobj.h"
+#ifdef _MSC_VER
+#include <io.h>
+#define STDIN_FILENO 0
+#define read _read
+#define open _open
+#define close _close
+#endif
+
extern int yydebug;
void
diff --git a/mesalib/src/glsl/glsl_parser.yy b/mesalib/src/glsl/glsl_parser.yy
index ada3690f6..8ad7484fb 100644
--- a/mesalib/src/glsl/glsl_parser.yy
+++ b/mesalib/src/glsl/glsl_parser.yy
@@ -23,6 +23,7 @@
*/
#include <stdio.h>
#include <stdlib.h>
+#include <unistd.h>
#include <string.h>
#include <assert.h>
diff --git a/mesalib/src/glsl/glsl_parser_extras.h b/mesalib/src/glsl/glsl_parser_extras.h
index d232bb3f6..cb998d80e 100644
--- a/mesalib/src/glsl/glsl_parser_extras.h
+++ b/mesalib/src/glsl/glsl_parser_extras.h
@@ -78,6 +78,10 @@ struct _mesa_glsl_parse_state {
void *mem_ctx);
DECLARE_RALLOC_CXX_OPERATORS(_mesa_glsl_parse_state);
+ static void operator delete(void *mem, void *ctx)
+ {
+ ralloc_free(mem);
+ }
/**
* Generate a string representing the GLSL version currently being compiled
diff --git a/mesalib/src/glsl/glsl_symbol_table.cpp b/mesalib/src/glsl/glsl_symbol_table.cpp
index 11569f47e..6ec4f534b 100644..100755
--- a/mesalib/src/glsl/glsl_symbol_table.cpp
+++ b/mesalib/src/glsl/glsl_symbol_table.cpp
@@ -27,6 +27,10 @@
class symbol_table_entry {
public:
DECLARE_RALLOC_CXX_OPERATORS(symbol_table_entry);
+ static void operator delete(void *entry, void *ctx)
+ {
+ ralloc_free(entry);
+ }
bool add_interface(const glsl_type *i, enum ir_variable_mode mode)
{
diff --git a/mesalib/src/glsl/glsl_symbol_table.h b/mesalib/src/glsl/glsl_symbol_table.h
index 0e62448e2..89d832125 100644
--- a/mesalib/src/glsl/glsl_symbol_table.h
+++ b/mesalib/src/glsl/glsl_symbol_table.h
@@ -68,6 +68,11 @@ public:
/* If the user *does* call delete, that's OK, we will just
* ralloc_free in that case. Here, C++ will have already called the
* destructor so tell ralloc not to do that again. */
+ static void operator delete(void *table, void *ctx)
+ {
+ ralloc_set_destructor(table, NULL);
+ ralloc_free(table);
+ }
static void operator delete(void *table)
{
ralloc_set_destructor(table, NULL);
diff --git a/mesalib/src/glsl/ir.cpp b/mesalib/src/glsl/ir.cpp
index 1b4973612..9715a203e 100644
--- a/mesalib/src/glsl/ir.cpp
+++ b/mesalib/src/glsl/ir.cpp
@@ -560,7 +560,7 @@ static const char *const operator_strs[] = {
"ubo_load",
"ldexp",
"vector_extract",
- "fma",
+ "fma_mesa",
"lrp",
"csel",
"bfi",
diff --git a/mesalib/src/glsl/ir_builder.cpp b/mesalib/src/glsl/ir_builder.cpp
index 6c49734be..6fd58de0e 100644
--- a/mesalib/src/glsl/ir_builder.cpp
+++ b/mesalib/src/glsl/ir_builder.cpp
@@ -496,7 +496,7 @@ b2f(operand a)
}
ir_expression *
-fma(operand a, operand b, operand c)
+fma_mesa(operand a, operand b, operand c)
{
return expr(ir_triop_fma, a, b, c);
}
diff --git a/mesalib/src/glsl/ir_builder.h b/mesalib/src/glsl/ir_builder.h
index 1f0778870..52cc2168f 100644
--- a/mesalib/src/glsl/ir_builder.h
+++ b/mesalib/src/glsl/ir_builder.h
@@ -184,7 +184,7 @@ ir_expression *i2b(operand a);
ir_expression *f2b(operand a);
ir_expression *b2f(operand a);
-ir_expression *fma(operand a, operand b, operand c);
+ir_expression *fma_mesa(operand a, operand b, operand c);
ir_expression *lrp(operand x, operand y, operand a);
ir_expression *csel(operand a, operand b, operand c);
ir_expression *bitfield_insert(operand a, operand b, operand c, operand d);
diff --git a/mesalib/src/glsl/ir_constant_expression.cpp b/mesalib/src/glsl/ir_constant_expression.cpp
index 0efd1d5b3..54bfe5832 100644..100755
--- a/mesalib/src/glsl/ir_constant_expression.cpp
+++ b/mesalib/src/glsl/ir_constant_expression.cpp
@@ -53,13 +53,6 @@ static int isnormal(double x)
}
#endif
-#if defined(_MSC_VER)
-static double copysign(double x, double y)
-{
- return _copysign(x, y);
-}
-#endif
-
static float
dot(ir_constant *op0, ir_constant *op1)
{
@@ -1402,7 +1395,7 @@ ir_expression::constant_expression_value(struct hash_table *variable_context)
data.f[c] = ldexp(op[0]->value.f[c], op[1]->value.i[c]);
/* Flush subnormal values to zero. */
if (!isnormal(data.f[c]))
- data.f[c] = copysign(0.0, op[0]->value.f[c]);
+ data.f[c] = copysign(0.0f, op[0]->value.f[c]);
}
break;
diff --git a/mesalib/src/glsl/link_uniforms.cpp b/mesalib/src/glsl/link_uniforms.cpp
index 0a15739c2..95e75d73d 100644
--- a/mesalib/src/glsl/link_uniforms.cpp
+++ b/mesalib/src/glsl/link_uniforms.cpp
@@ -855,7 +855,6 @@ link_assign_uniform_locations(struct gl_shader_program *prog)
for (unsigned i = 0; i < num_user_uniforms; i++) {
assert(uniforms[i].storage != NULL);
}
-
assert(parcel.values == data_end);
#endif
diff --git a/mesalib/src/glsl/list.h b/mesalib/src/glsl/list.h
index 5ac17cb37..2934539fe 100644
--- a/mesalib/src/glsl/list.h
+++ b/mesalib/src/glsl/list.h
@@ -77,6 +77,10 @@ struct exec_node {
#ifdef __cplusplus
DECLARE_RALLOC_CXX_OPERATORS(exec_node)
+ static void operator delete(void *node, void *ctx)
+ {
+ ralloc_free(node);
+ }
exec_node() : next(NULL), prev(NULL)
{
@@ -269,6 +273,10 @@ struct exec_list {
#ifdef __cplusplus
DECLARE_RALLOC_CXX_OPERATORS(exec_list)
+ static void operator delete(void *node, void *ctx)
+ {
+ ralloc_free(node);
+ }
exec_list()
{
diff --git a/mesalib/src/glsl/main.cpp b/mesalib/src/glsl/main.cpp
index aa188b1f1..4a5570608 100644
--- a/mesalib/src/glsl/main.cpp
+++ b/mesalib/src/glsl/main.cpp
@@ -20,7 +20,18 @@
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
+#include <io.h>
+
+#ifdef _MSC_VER
+#define __STDC__ 1
#include <getopt.h>
+#define open _open
+#define read _read
+#define fstat _fstat
+#define stat _stat
+#define close _close
+#define O_RDONLY _O_RDONLY
+#endif
/** @file main.cpp
*
diff --git a/mesalib/src/mapi/glapi/gen/.gitignore b/mesalib/src/mapi/glapi/gen/.gitignore
new file mode 100644
index 000000000..023e2856d
--- /dev/null
+++ b/mesalib/src/mapi/glapi/gen/.gitignore
@@ -0,0 +1,17 @@
+dispatch.h
+enums.c
+indirect.c
+indirect.h
+indirect_dispatch.c
+indirect_dispatch.h
+indirect_dispatch_swap.c
+indirect_init.c
+indirect_reqsize.c
+indirect_reqsize.h
+indirect_size.c
+indirect_size.h
+indirect_size_get.c
+indirect_size_get.h
+indirect_table.c
+mapi_abi.py
+remap_helper.h
diff --git a/mesalib/src/mapi/glapi/gen/GL3x.xml b/mesalib/src/mapi/glapi/gen/GL3x.xml
index 5078f7b6d..11c5a186c 100644
--- a/mesalib/src/mapi/glapi/gen/GL3x.xml
+++ b/mesalib/src/mapi/glapi/gen/GL3x.xml
@@ -30,8 +30,12 @@
<enum name="RGB16F" value="0x881B"/>
<enum name="VERTEX_ATTRIB_ARRAY_INTEGER" value="0x88FD"/>
<enum name="MAX_ARRAY_TEXTURE_LAYERS" value="0x88FF"/>
- <enum name="MIN_PROGRAM_TEXEL_OFFSET" value="0x8904"/>
- <enum name="MAX_PROGRAM_TEXEL_OFFSET" value="0x8905"/>
+ <enum name="MIN_PROGRAM_TEXEL_OFFSET" value="0x8904">
+ <size name="Get" mode="get"/>
+ </enum>
+ <enum name="MAX_PROGRAM_TEXEL_OFFSET" value="0x8905">
+ <size name="Get" mode="get"/>
+ </enum>
<enum name="CLAMP_VERTEX_COLOR" value="0x891A"/>
<enum name="CLAMP_FRAGMENT_COLOR" value="0x891B"/>
<enum name="CLAMP_READ_COLOR" value="0x891C"/>
diff --git a/mesalib/src/mapi/glapi/gen/gen.bat b/mesalib/src/mapi/glapi/gen/gen.bat
new file mode 100644
index 000000000..aec698a80
--- /dev/null
+++ b/mesalib/src/mapi/glapi/gen/gen.bat
@@ -0,0 +1,26 @@
+echo on
+glx_server_table.py -f gl_and_glX_API.xml > indirect_table.c
+glx_proto_size.py -m size_h --only-set -h _INDIRECT_SIZE_H_ > indirect_size.h
+glx_proto_size.py -m size_c --only-set > indirect_size.c
+glx_proto_size.py -m size_h --only-get -h _INDIRECT_SIZE_GET_H_ > indirect_size_get.h
+glx_proto_size.py -m size_c --only-get > indirect_size_get.c
+glx_proto_size.py -m reqsize_c > indirect_reqsize.c
+glx_proto_size.py -m reqsize_h --only-get -h _INDIRECT_SIZE_GET_H_ > indirect_reqsize.h
+glx_proto_recv.py -m dispatch_c > indirect_dispatch.c
+glx_proto_recv.py -m dispatch_c -s > indirect_dispatch_swap.c
+glx_proto_recv.py -m dispatch_h -f gl_and_glX_API.xml -s > indirect_dispatch.h
+gl_table.py -f gl_and_es_API.xml > glapitable.h
+gl_gentable.py -f gl_and_es_API.xml > glapi_gentable.c
+gl_table.py -f gl_and_es_API.xml -m remap_table > dispatch.h
+rem gl_offsets.py > glapioffsets.h
+gl_apitemp.py -f gl_and_es_API.xml > glapitemp.h
+gl_procs.py -f gl_and_es_API.xml > glprocs.h
+
+glX_proto_send.py -m proto > indirect.c
+glX_proto_send.py -m init_h > indirect.h
+glX_proto_send.py -m init_c > indirect_init.c
+
+gl_enums.py -f gl_and_es_API.xml > enums.c
+remap_helper.py -f gl_and_es_API.xml > remap_helper.h
+copy ..\..\mapi_abi.py
+mapi_abi.py --printer glapi --mode lib gl_and_es_API.xml > glapi_mapi_tmp.h
diff --git a/mesalib/src/mapi/glapi/gen/gen.sh b/mesalib/src/mapi/glapi/gen/gen.sh
new file mode 100755
index 000000000..1c50f2c5c
--- /dev/null
+++ b/mesalib/src/mapi/glapi/gen/gen.sh
@@ -0,0 +1,26 @@
+./glX_server_table.py -f gl_and_glX_API.xml > indirect_table.c
+./glX_proto_size.py -m size_h --only-set -h _INDIRECT_SIZE_H_ > indirect_size.h
+./glX_proto_size.py -m size_c --only-set > indirect_size.c
+./glX_proto_size.py -m size_h --only-get -h _INDIRECT_SIZE_GET_H_ > indirect_size_get.h
+./glX_proto_size.py -m size_c --only-get > indirect_size_get.c
+./glX_proto_size.py -m reqsize_c > indirect_reqsize.c
+./glX_proto_size.py -m reqsize_h --only-get -h _INDIRECT_SIZE_GET_H_ > indirect_reqsize.h
+./glX_proto_recv.py -m dispatch_c > indirect_dispatch.c
+./glX_proto_recv.py -m dispatch_c -s > indirect_dispatch_swap.c
+./glX_proto_recv.py -m dispatch_h -f gl_and_glX_API.xml -s > indirect_dispatch.h
+./gl_table.py -f gl_and_es_API.xml > glapitable.h
+./gl_gentable.py -f gl_and_es_API.xml > glapi_gentable.c
+./gl_table.py -f gl_and_es_API.xml -m remap_table > dispatch.h
+# ./gl_offsets.py > glapioffsets.h
+./gl_apitemp.py -f gl_and_es_API.xml > glapitemp.h
+./gl_procs.py -f gl_and_es_API.xml > glprocs.h
+
+./glX_proto_send.py -m proto > indirect.c
+./glX_proto_send.py -m init_h > indirect.h
+./glX_proto_send.py -m init_c > indirect_init.c
+
+./gl_enums.py -f gl_and_es_API.xml > enums.c
+./remap_helper.py -f gl_and_es_API.xml > remap_helper.h
+cp ../../mapi_abi.py .
+./mapi_abi.py --printer glapi --mode lib gl_and_es_API.xml > glapi_mapi_tmp.h
+
diff --git a/mesalib/src/mapi/glapi/gen/glX_API.xml b/mesalib/src/mapi/glapi/gen/glX_API.xml
index 926d8791b..62ad9ebbd 100644
--- a/mesalib/src/mapi/glapi/gen/glX_API.xml
+++ b/mesalib/src/mapi/glapi/gen/glX_API.xml
@@ -217,18 +217,4 @@
</function>
</category>
-<category name="GLX_ARB_create_context" number="56" window_system="glX">
- <function name="SetClientInfoARB">
- <glx sop="33"/>
- </function>
-
- <function name="CreateContextAttribsARB">
- <glx sop="34"/>
- </function>
-
- <function name="SetClientInfo2ARB">
- <glx sop="35"/>
- </function>
-</category>
-
</OpenGLAPI>
diff --git a/mesalib/src/mapi/glapi/gen/glX_proto_recv.py b/mesalib/src/mapi/glapi/gen/glX_proto_recv.py
index 42b85a525..84526581a 100644..100755
--- a/mesalib/src/mapi/glapi/gen/glX_proto_recv.py
+++ b/mesalib/src/mapi/glapi/gen/glX_proto_recv.py
@@ -78,6 +78,11 @@ class PrintGlxDispatchFunctions(glX_proto_common.glx_print_proto):
def printRealHeader(self):
+ print '#ifdef HAVE_DIX_CONFIG_H'
+ print '#include <dix-config.h>'
+ print '#endif'
+ print '#include "glheader.h"'
+ print ''
print '#include <X11/Xmd.h>'
print '#include <GL/gl.h>'
print '#include <GL/glxproto.h>'
@@ -278,7 +283,10 @@ class PrintGlxDispatchFunctions(glX_proto_common.glx_print_proto):
if param.is_image():
offset = f.offset_of( param.name )
- print '%s %s const %s = (%s) (%s(pc + %s));' % (indent, type_string, param.name, type_string, cond, offset)
+ if cond:
+ print '%s %s const %s = (%s) (%s(pc + %s));' % (indent, type_string, param.name, type_string, cond, offset)
+ else:
+ print '%s %s const %s = (%s) (pc + %s);' % (indent, type_string, param.name, type_string, offset)
if param.depth:
print '%s __GLXpixel3DHeader * const hdr = (__GLXpixel3DHeader *)(pc);' % (indent)
@@ -365,8 +373,9 @@ class PrintGlxDispatchFunctions(glX_proto_common.glx_print_proto):
else:
for param in f.parameterIterateGlxSend():
if param.count_parameter_list:
- print '%s %s = (%s) (pc + %s);' % (indent, param.name, param.type_string(), param.offset)
- need_blank = 1
+ if param.size() != 1 or self.do_swap:
+ print '%s %s = (%s) (pc + %s);' % (indent, param.name, param.type_string(), param.offset)
+ need_blank = 1
if need_blank:
diff --git a/mesalib/src/mapi/glapi/gen/glX_proto_send.py b/mesalib/src/mapi/glapi/gen/glX_proto_send.py
index f4d519f14..f4d519f14 100644..100755
--- a/mesalib/src/mapi/glapi/gen/glX_proto_send.py
+++ b/mesalib/src/mapi/glapi/gen/glX_proto_send.py
diff --git a/mesalib/src/mapi/glapi/gen/glX_proto_size.py b/mesalib/src/mapi/glapi/gen/glX_proto_size.py
index fdb355d4d..d4cc6e365 100644..100755
--- a/mesalib/src/mapi/glapi/gen/glX_proto_size.py
+++ b/mesalib/src/mapi/glapi/gen/glX_proto_size.py
@@ -313,7 +313,14 @@ class PrintGlxSizeStubs_common(gl_XML.gl_print_base):
class PrintGlxSizeStubs_c(PrintGlxSizeStubs_common):
def printRealHeader(self):
print ''
- print '#include <X11/Xfuncproto.h>'
+ print '#ifdef HAVE_DIX_CONFIG_H'
+ print '#include <dix-config.h>'
+ print '#else'
+ print ''
+ print '#include "glheader.h"'
+ print ''
+ print '#endif'
+ print ''
print '#include <GL/gl.h>'
if self.emit_get:
print '#include "indirect_size_get.h"'
@@ -444,6 +451,14 @@ class PrintGlxReqSize_c(PrintGlxReqSize_common):
def printRealHeader(self):
print ''
+ print '#ifdef HAVE_DIX_CONFIG_H'
+ print '#include <dix-config.h>'
+ print '#else'
+ print ''
+ print '#include "glheader.h"'
+ print ''
+ print '#endif'
+ print ''
print '#include <GL/gl.h>'
print '#include "glxserver.h"'
print '#include "glxbyteorder.h"'
diff --git a/mesalib/src/mapi/glapi/gen/glX_server_table.py b/mesalib/src/mapi/glapi/gen/glX_server_table.py
index 47aa11116..fa2036ffa 100644..100755
--- a/mesalib/src/mapi/glapi/gen/glX_server_table.py
+++ b/mesalib/src/mapi/glapi/gen/glX_server_table.py
@@ -357,6 +357,10 @@ class PrintGlxDispatchTables(glX_proto_common.glx_print_proto):
def printRealHeader(self):
+ print '#ifndef HAVE_DIX_CONFIG_H'
+ print '#include "glheader.h"'
+ print '#endif'
+ print ''
print '#include <inttypes.h>'
print '#include "glxserver.h"'
print '#include "glxext.h"'
diff --git a/mesalib/src/mapi/glapi/gen/gl_API.xml b/mesalib/src/mapi/glapi/gen/gl_API.xml
index a2d914ac4..45536793f 100644..100755
--- a/mesalib/src/mapi/glapi/gen/gl_API.xml
+++ b/mesalib/src/mapi/glapi/gen/gl_API.xml
@@ -183,18 +183,18 @@
<size name="Get" mode="get"/>
</enum>
<enum name="LIGHT_MODEL_LOCAL_VIEWER" count="1" value="0x0B51">
- <size name="LightModelfv"/>
- <size name="LightModeliv"/>
+ <size name="LightModelfv" mode="get"/>
+ <size name="LightModeliv" mode="get"/>
<size name="Get" mode="get"/>
</enum>
<enum name="LIGHT_MODEL_TWO_SIDE" count="1" value="0x0B52">
- <size name="LightModelfv"/>
- <size name="LightModeliv"/>
+ <size name="LightModelfv" mode="get"/>
+ <size name="LightModeliv" mode="get"/>
<size name="Get" mode="get"/>
</enum>
<enum name="LIGHT_MODEL_AMBIENT" count="4" value="0x0B53">
- <size name="LightModelfv"/>
- <size name="LightModeliv"/>
+ <size name="LightModelfv" mode="get"/>
+ <size name="LightModeliv" mode="get"/>
<size name="Get" mode="get"/>
</enum>
<enum name="SHADE_MODEL" count="1" value="0x0B54">
@@ -213,33 +213,33 @@
<size name="Get" mode="get"/>
</enum>
<enum name="FOG_INDEX" count="1" value="0x0B61">
- <size name="Fogfv"/>
- <size name="Fogiv"/>
+ <size name="Fogfv" mode="get"/>
+ <size name="Fogiv" mode="get"/>
<size name="Get" mode="get"/>
</enum>
<enum name="FOG_DENSITY" count="1" value="0x0B62">
- <size name="Fogfv"/>
- <size name="Fogiv"/>
+ <size name="Fogfv" mode="get"/>
+ <size name="Fogiv" mode="get"/>
<size name="Get" mode="get"/>
</enum>
<enum name="FOG_START" count="1" value="0x0B63">
- <size name="Fogfv"/>
- <size name="Fogiv"/>
+ <size name="Fogfv" mode="get"/>
+ <size name="Fogiv" mode="get"/>
<size name="Get" mode="get"/>
</enum>
<enum name="FOG_END" count="1" value="0x0B64">
- <size name="Fogfv"/>
- <size name="Fogiv"/>
+ <size name="Fogfv" mode="get"/>
+ <size name="Fogiv" mode="get"/>
<size name="Get" mode="get"/>
</enum>
<enum name="FOG_MODE" count="1" value="0x0B65">
- <size name="Fogfv"/>
- <size name="Fogiv"/>
+ <size name="Fogfv" mode="get"/>
+ <size name="Fogiv" mode="get"/>
<size name="Get" mode="get"/>
</enum>
<enum name="FOG_COLOR" count="4" value="0x0B66">
- <size name="Fogfv"/>
- <size name="Fogiv"/>
+ <size name="Fogfv" mode="get"/>
+ <size name="Fogiv" mode="get"/>
<size name="Get" mode="get"/>
</enum>
<enum name="DEPTH_RANGE" count="2" value="0x0B70">
@@ -531,8 +531,8 @@
<size name="Get" mode="get"/>
</enum>
<enum name="ALPHA_SCALE" count="1" value="0x0D1C">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
<size name="Get" mode="get"/>
@@ -625,93 +625,93 @@
<size name="Get" mode="get"/>
</enum>
<enum name="MAP1_COLOR_4" count="4" value="0x0D90">
- <size name="Map1d"/>
- <size name="Map1f"/>
+ <size name="Map1d" mode="get"/>
+ <size name="Map1f" mode="get"/>
<size name="Get" count="1" mode="get"/>
</enum>
<enum name="MAP1_INDEX" count="1" value="0x0D91">
- <size name="Map1d"/>
- <size name="Map1f"/>
+ <size name="Map1d" mode="get"/>
+ <size name="Map1f" mode="get"/>
<size name="Get" count="1" mode="get"/>
</enum>
<enum name="MAP1_NORMAL" count="3" value="0x0D92">
- <size name="Map1d"/>
- <size name="Map1f"/>
+ <size name="Map1d" mode="get"/>
+ <size name="Map1f" mode="get"/>
<size name="Get" count="1" mode="get"/>
</enum>
<enum name="MAP1_TEXTURE_COORD_1" count="1" value="0x0D93">
- <size name="Map1d"/>
- <size name="Map1f"/>
+ <size name="Map1d" mode="get"/>
+ <size name="Map1f" mode="get"/>
<size name="Get" count="1" mode="get"/>
</enum>
<enum name="MAP1_TEXTURE_COORD_2" count="2" value="0x0D94">
- <size name="Map1d"/>
- <size name="Map1f"/>
+ <size name="Map1d" mode="get"/>
+ <size name="Map1f" mode="get"/>
<size name="Get" count="1" mode="get"/>
</enum>
<enum name="MAP1_TEXTURE_COORD_3" count="3" value="0x0D95">
- <size name="Map1d"/>
- <size name="Map1f"/>
+ <size name="Map1d" mode="get"/>
+ <size name="Map1f" mode="get"/>
<size name="Get" count="1" mode="get"/>
</enum>
<enum name="MAP1_TEXTURE_COORD_4" count="4" value="0x0D96">
- <size name="Map1d"/>
- <size name="Map1f"/>
+ <size name="Map1d" mode="get"/>
+ <size name="Map1f" mode="get"/>
<size name="Get" count="1" mode="get"/>
</enum>
<enum name="MAP1_VERTEX_3" count="3" value="0x0D97">
- <size name="Map1d"/>
- <size name="Map1f"/>
+ <size name="Map1d" mode="get"/>
+ <size name="Map1f" mode="get"/>
<size name="Get" count="1" mode="get"/>
</enum>
<enum name="MAP1_VERTEX_4" count="4" value="0x0D98">
- <size name="Map1d"/>
- <size name="Map1f"/>
+ <size name="Map1d" mode="get"/>
+ <size name="Map1f" mode="get"/>
<size name="Get" count="1" mode="get"/>
</enum>
<enum name="MAP2_COLOR_4" count="4" value="0x0DB0">
- <size name="Map2d"/>
- <size name="Map2f"/>
+ <size name="Map2d" mode="get"/>
+ <size name="Map2f" mode="get"/>
<size name="Get" count="1" mode="get"/>
</enum>
<enum name="MAP2_INDEX" count="1" value="0x0DB1">
- <size name="Map2d"/>
- <size name="Map2f"/>
+ <size name="Map2d" mode="get"/>
+ <size name="Map2f" mode="get"/>
<size name="Get" count="1" mode="get"/>
</enum>
<enum name="MAP2_NORMAL" count="3" value="0x0DB2">
- <size name="Map2d"/>
- <size name="Map2f"/>
+ <size name="Map2d" mode="get"/>
+ <size name="Map2f" mode="get"/>
<size name="Get" count="1" mode="get"/>
</enum>
<enum name="MAP2_TEXTURE_COORD_1" count="1" value="0x0DB3">
- <size name="Map2d"/>
- <size name="Map2f"/>
+ <size name="Map2d" mode="get"/>
+ <size name="Map2f" mode="get"/>
<size name="Get" count="1" mode="get"/>
</enum>
<enum name="MAP2_TEXTURE_COORD_2" count="2" value="0x0DB4">
- <size name="Map2d"/>
- <size name="Map2f"/>
+ <size name="Map2d" mode="get"/>
+ <size name="Map2f" mode="get"/>
<size name="Get" count="1" mode="get"/>
</enum>
<enum name="MAP2_TEXTURE_COORD_3" count="3" value="0x0DB5">
- <size name="Map2d"/>
- <size name="Map2f"/>
+ <size name="Map2d" mode="get"/>
+ <size name="Map2f" mode="get"/>
<size name="Get" count="1" mode="get"/>
</enum>
<enum name="MAP2_TEXTURE_COORD_4" count="4" value="0x0DB6">
- <size name="Map2d"/>
- <size name="Map2f"/>
+ <size name="Map2d" mode="get"/>
+ <size name="Map2f" mode="get"/>
<size name="Get" count="1" mode="get"/>
</enum>
<enum name="MAP2_VERTEX_3" count="3" value="0x0DB7">
- <size name="Map2d"/>
- <size name="Map2f"/>
+ <size name="Map2d" mode="get"/>
+ <size name="Map2f" mode="get"/>
<size name="Get" count="1" mode="get"/>
</enum>
<enum name="MAP2_VERTEX_4" count="4" value="0x0DB8">
- <size name="Map2d"/>
- <size name="Map2f"/>
+ <size name="Map2d" mode="get"/>
+ <size name="Map2f" mode="get"/>
<size name="Get" count="1" mode="get"/>
</enum>
<enum name="MAP1_GRID_DOMAIN" count="2" value="0x0DD0">
@@ -754,8 +754,8 @@
<size name="GetTexLevelParameteriv" mode="get"/>
</enum>
<enum name="TEXTURE_BORDER_COLOR" count="4" value="0x1004">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
@@ -763,111 +763,111 @@
<enum name="FASTEST" value="0x1101"/>
<enum name="NICEST" value="0x1102"/>
<enum name="AMBIENT" count="4" value="0x1200">
- <size name="Materialfv"/>
- <size name="Materialiv"/>
- <size name="Lightfv"/>
- <size name="Lightiv"/>
+ <size name="Materialfv" mode="get"/>
+ <size name="Materialiv" mode="get"/>
+ <size name="Lightfv" mode="get"/>
+ <size name="Lightiv" mode="get"/>
<size name="GetMaterialfv" mode="get"/>
<size name="GetMaterialiv" mode="get"/>
<size name="GetLightfv" mode="get"/>
<size name="GetLightiv" mode="get"/>
</enum>
<enum name="DIFFUSE" count="4" value="0x1201">
- <size name="Materialfv"/>
- <size name="Materialiv"/>
- <size name="Lightfv"/>
- <size name="Lightiv"/>
+ <size name="Materialfv" mode="get"/>
+ <size name="Materialiv" mode="get"/>
+ <size name="Lightfv" mode="get"/>
+ <size name="Lightiv" mode="get"/>
<size name="GetMaterialfv" mode="get"/>
<size name="GetMaterialiv" mode="get"/>
<size name="GetLightfv" mode="get"/>
<size name="GetLightiv" mode="get"/>
</enum>
<enum name="SPECULAR" count="4" value="0x1202">
- <size name="Materialfv"/>
- <size name="Materialiv"/>
- <size name="Lightfv"/>
- <size name="Lightiv"/>
+ <size name="Materialfv" mode="get"/>
+ <size name="Materialiv" mode="get"/>
+ <size name="Lightfv" mode="get"/>
+ <size name="Lightiv" mode="get"/>
<size name="GetMaterialfv" mode="get"/>
<size name="GetMaterialiv" mode="get"/>
<size name="GetLightfv" mode="get"/>
<size name="GetLightiv" mode="get"/>
</enum>
<enum name="POSITION" count="4" value="0x1203">
- <size name="Lightfv"/>
- <size name="Lightiv"/>
+ <size name="Lightfv" mode="get"/>
+ <size name="Lightiv" mode="get"/>
<size name="GetLightfv" mode="get"/>
<size name="GetLightiv" mode="get"/>
</enum>
<enum name="SPOT_DIRECTION" count="3" value="0x1204">
- <size name="Lightfv"/>
- <size name="Lightiv"/>
+ <size name="Lightfv" mode="get"/>
+ <size name="Lightiv" mode="get"/>
<size name="GetLightfv" mode="get"/>
<size name="GetLightiv" mode="get"/>
</enum>
<enum name="SPOT_EXPONENT" count="1" value="0x1205">
- <size name="Lightfv"/>
- <size name="Lightiv"/>
+ <size name="Lightfv" mode="get"/>
+ <size name="Lightiv" mode="get"/>
<size name="GetLightfv" mode="get"/>
<size name="GetLightiv" mode="get"/>
</enum>
<enum name="SPOT_CUTOFF" count="1" value="0x1206">
- <size name="Lightfv"/>
- <size name="Lightiv"/>
+ <size name="Lightfv" mode="get"/>
+ <size name="Lightiv" mode="get"/>
<size name="GetLightfv" mode="get"/>
<size name="GetLightiv" mode="get"/>
</enum>
<enum name="CONSTANT_ATTENUATION" count="1" value="0x1207">
- <size name="Lightfv"/>
- <size name="Lightiv"/>
+ <size name="Lightfv" mode="get"/>
+ <size name="Lightiv" mode="get"/>
<size name="GetLightfv" mode="get"/>
<size name="GetLightiv" mode="get"/>
</enum>
<enum name="LINEAR_ATTENUATION" count="1" value="0x1208">
- <size name="Lightfv"/>
- <size name="Lightiv"/>
+ <size name="Lightfv" mode="get"/>
+ <size name="Lightiv" mode="get"/>
<size name="GetLightfv" mode="get"/>
<size name="GetLightiv" mode="get"/>
</enum>
<enum name="QUADRATIC_ATTENUATION" count="1" value="0x1209">
- <size name="Lightfv"/>
- <size name="Lightiv"/>
+ <size name="Lightfv" mode="get"/>
+ <size name="Lightiv" mode="get"/>
<size name="GetLightfv" mode="get"/>
<size name="GetLightiv" mode="get"/>
</enum>
<enum name="COMPILE" value="0x1300"/>
<enum name="COMPILE_AND_EXECUTE" value="0x1301"/>
<enum name="BYTE" count="1" value="0x1400">
- <size name="CallLists"/>
+ <size name="CallLists" mode="get"/>
</enum>
<enum name="UNSIGNED_BYTE" count="1" value="0x1401">
- <size name="CallLists"/>
+ <size name="CallLists" mode="get"/>
</enum>
<enum name="SHORT" count="2" value="0x1402">
- <size name="CallLists"/>
+ <size name="CallLists" mode="get"/>
</enum>
<enum name="UNSIGNED_SHORT" count="2" value="0x1403">
- <size name="CallLists"/>
+ <size name="CallLists" mode="get"/>
</enum>
<enum name="INT" count="4" value="0x1404">
- <size name="CallLists"/>
+ <size name="CallLists" mode="get"/>
</enum>
<enum name="UNSIGNED_INT" count="4" value="0x1405">
- <size name="CallLists"/>
+ <size name="CallLists" mode="get"/>
</enum>
<enum name="FLOAT" count="4" value="0x1406">
- <size name="CallLists"/>
+ <size name="CallLists" mode="get"/>
</enum>
<enum name="2_BYTES" count="2" value="0x1407">
- <size name="CallLists"/>
+ <size name="CallLists" mode="get"/>
</enum>
<enum name="3_BYTES" count="3" value="0x1408">
- <size name="CallLists"/>
+ <size name="CallLists" mode="get"/>
</enum>
<enum name="4_BYTES" count="4" value="0x1409">
- <size name="CallLists"/>
+ <size name="CallLists" mode="get"/>
</enum>
<enum name="HALF_FLOAT" count="2" value="0x140B">
- <size name="CallLists"/>
+ <size name="CallLists" mode="get"/>
</enum>
<enum name="CLEAR" value="0x1500"/>
<enum name="AND" value="0x1501"/>
@@ -886,26 +886,26 @@
<enum name="NAND" value="0x150E"/>
<enum name="SET" value="0x150F"/>
<enum name="EMISSION" count="4" value="0x1600">
- <size name="Materialfv"/>
- <size name="Materialiv"/>
+ <size name="Materialfv" mode="get"/>
+ <size name="Materialiv" mode="get"/>
<size name="GetMaterialfv" mode="get"/>
<size name="GetMaterialiv" mode="get"/>
</enum>
<enum name="SHININESS" count="1" value="0x1601">
- <size name="Materialfv"/>
- <size name="Materialiv"/>
+ <size name="Materialfv" mode="get"/>
+ <size name="Materialiv" mode="get"/>
<size name="GetMaterialfv" mode="get"/>
<size name="GetMaterialiv" mode="get"/>
</enum>
<enum name="AMBIENT_AND_DIFFUSE" count="4" value="0x1602">
- <size name="Materialfv"/>
- <size name="Materialiv"/>
+ <size name="Materialfv" mode="get"/>
+ <size name="Materialiv" mode="get"/>
<size name="GetMaterialfv" mode="get"/>
<size name="GetMaterialiv" mode="get"/>
</enum>
<enum name="COLOR_INDEXES" count="3" value="0x1603">
- <size name="Materialfv"/>
- <size name="Materialiv"/>
+ <size name="Materialfv" mode="get"/>
+ <size name="Materialiv" mode="get"/>
<size name="GetMaterialfv" mode="get"/>
<size name="GetMaterialiv" mode="get"/>
</enum>
@@ -950,14 +950,14 @@
<enum name="MODULATE" value="0x2100"/>
<enum name="DECAL" value="0x2101"/>
<enum name="TEXTURE_ENV_MODE" count="1" value="0x2200">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
<enum name="TEXTURE_ENV_COLOR" count="4" value="0x2201">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
@@ -966,25 +966,25 @@
<enum name="OBJECT_LINEAR" value="0x2401"/>
<enum name="SPHERE_MAP" value="0x2402"/>
<enum name="TEXTURE_GEN_MODE" count="1" value="0x2500">
- <size name="TexGendv"/>
- <size name="TexGenfv"/>
- <size name="TexGeniv"/>
+ <size name="TexGendv" mode="get"/>
+ <size name="TexGenfv" mode="get"/>
+ <size name="TexGeniv" mode="get"/>
<size name="GetTexGendv" mode="get"/>
<size name="GetTexGenfv" mode="get"/>
<size name="GetTexGeniv" mode="get"/>
</enum>
<enum name="OBJECT_PLANE" count="4" value="0x2501">
- <size name="TexGendv"/>
- <size name="TexGenfv"/>
- <size name="TexGeniv"/>
+ <size name="TexGendv" mode="get"/>
+ <size name="TexGenfv" mode="get"/>
+ <size name="TexGeniv" mode="get"/>
<size name="GetTexGendv" mode="get"/>
<size name="GetTexGenfv" mode="get"/>
<size name="GetTexGeniv" mode="get"/>
</enum>
<enum name="EYE_PLANE" count="4" value="0x2502">
- <size name="TexGendv"/>
- <size name="TexGenfv"/>
- <size name="TexGeniv"/>
+ <size name="TexGendv" mode="get"/>
+ <size name="TexGenfv" mode="get"/>
+ <size name="TexGeniv" mode="get"/>
<size name="GetTexGendv" mode="get"/>
<size name="GetTexGenfv" mode="get"/>
<size name="GetTexGeniv" mode="get"/>
@@ -996,26 +996,26 @@
<enum name="NEAREST_MIPMAP_LINEAR" value="0x2702"/>
<enum name="LINEAR_MIPMAP_LINEAR" value="0x2703"/>
<enum name="TEXTURE_MAG_FILTER" count="1" value="0x2800">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
<enum name="TEXTURE_MIN_FILTER" count="1" value="0x2801">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
<enum name="TEXTURE_WRAP_S" count="1" value="0x2802">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
<enum name="TEXTURE_WRAP_T" count="1" value="0x2803">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
@@ -3121,8 +3121,8 @@
<enum name="PROXY_TEXTURE_1D" value="0x8063"/>
<enum name="PROXY_TEXTURE_2D" value="0x8064"/>
<enum name="TEXTURE_PRIORITY" count="1" value="0x8066">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
@@ -3467,8 +3467,8 @@
<size name="GetTexLevelParameteriv" mode="get"/>
</enum>
<enum name="TEXTURE_WRAP_R" count="1" value="0x8072">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
@@ -3492,32 +3492,32 @@
</enum>
<enum name="CLAMP_TO_EDGE" value="0x812F"/>
<enum name="TEXTURE_MIN_LOD" count="1" value="0x813A">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
<enum name="TEXTURE_MAX_LOD" count="1" value="0x813B">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
<enum name="TEXTURE_BASE_LEVEL" count="1" value="0x813C">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
<enum name="TEXTURE_MAX_LEVEL" count="1" value="0x813D">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
<enum name="LIGHT_MODEL_COLOR_CONTROL" count="1" value="0x81F8">
- <size name="LightModelfv"/>
- <size name="LightModeliv"/>
+ <size name="LightModelfv" mode="get"/>
+ <size name="LightModeliv" mode="get"/>
<size name="Get" mode="get"/>
</enum>
<enum name="SINGLE_COLOR" value="0x81F9"/>
@@ -3569,26 +3569,26 @@
</enum>
<enum name="CONVOLUTION_BORDER_MODE" count="1" value="0x8013">
- <size name="ConvolutionParameterfv"/>
- <size name="ConvolutionParameteriv"/>
+ <size name="ConvolutionParameterfv" mode="get"/>
+ <size name="ConvolutionParameteriv" mode="get"/>
<size name="GetConvolutionParameterfv" mode="get"/>
<size name="GetConvolutionParameteriv" mode="get"/>
</enum>
<enum name="CONVOLUTION_BORDER_COLOR" count="4" value="0x8154">
- <size name="ConvolutionParameterfv"/>
- <size name="ConvolutionParameteriv"/>
+ <size name="ConvolutionParameterfv" mode="get"/>
+ <size name="ConvolutionParameteriv" mode="get"/>
<size name="GetConvolutionParameterfv" mode="get"/>
<size name="GetConvolutionParameteriv" mode="get"/>
</enum>
<enum name="CONVOLUTION_FILTER_SCALE" count="4" value="0x8014">
- <size name="ConvolutionParameterfv"/>
- <size name="ConvolutionParameteriv"/>
+ <size name="ConvolutionParameterfv" mode="get"/>
+ <size name="ConvolutionParameteriv" mode="get"/>
<size name="GetConvolutionParameterfv" mode="get"/>
<size name="GetConvolutionParameteriv" mode="get"/>
</enum>
<enum name="CONVOLUTION_FILTER_BIAS" count="4" value="0x8015">
- <size name="ConvolutionParameterfv"/>
- <size name="ConvolutionParameteriv"/>
+ <size name="ConvolutionParameterfv" mode="get"/>
+ <size name="ConvolutionParameteriv" mode="get"/>
<size name="GetConvolutionParameterfv" mode="get"/>
<size name="GetConvolutionParameteriv" mode="get"/>
</enum>
@@ -3736,14 +3736,14 @@
<enum name="PROXY_POST_COLOR_MATRIX_COLOR_TABLE" value="0x80D5"/>
<enum name="COLOR_TABLE_SCALE" count="4" value="0x80D6">
- <size name="ColorTableParameterfv"/>
- <size name="ColorTableParameteriv"/>
+ <size name="ColorTableParameterfv" mode="get"/>
+ <size name="ColorTableParameteriv" mode="get"/>
<size name="GetColorTableParameterfv" mode="get"/>
<size name="GetColorTableParameteriv" mode="get"/>
</enum>
<enum name="COLOR_TABLE_BIAS" count="4" value="0x80D7">
- <size name="ColorTableParameterfv"/>
- <size name="ColorTableParameteriv"/>
+ <size name="ColorTableParameterfv" mode="get"/>
+ <size name="ColorTableParameteriv" mode="get"/>
<size name="GetColorTableParameterfv" mode="get"/>
<size name="GetColorTableParameteriv" mode="get"/>
</enum>
@@ -4221,92 +4221,92 @@
<enum name="CLAMP_TO_BORDER" value="0x812D"/>
<enum name="COMBINE" value="0x8570"/>
<enum name="COMBINE_RGB" count="1" value="0x8571">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
<enum name="COMBINE_ALPHA" count="1" value="0x8572">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
<enum name="SOURCE0_RGB" count="1" value="0x8580">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
<enum name="SOURCE1_RGB" count="1" value="0x8581">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
<enum name="SOURCE2_RGB" count="1" value="0x8582">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
<enum name="SOURCE0_ALPHA" count="1" value="0x8588">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
<enum name="SOURCE1_ALPHA" count="1" value="0x8589">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
<enum name="SOURCE2_ALPHA" count="1" value="0x858A">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
<enum name="OPERAND0_RGB" count="1" value="0x8590">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
<enum name="OPERAND1_RGB" count="1" value="0x8591">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
<enum name="OPERAND2_RGB" count="1" value="0x8592">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
<enum name="OPERAND0_ALPHA" count="1" value="0x8598">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
<enum name="OPERAND1_ALPHA" count="1" value="0x8599">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
<enum name="OPERAND2_ALPHA" count="1" value="0x859A">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
<enum name="RGB_SCALE" count="1" value="0x8573">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
@@ -4689,24 +4689,24 @@
<size name="Get" mode="get"/>
</enum>
<enum name="POINT_SIZE_MIN" count="1" value="0x8126">
- <size name="PointParameterfv"/>
+ <size name="PointParameterfv" mode="get"/>
<size name="Get" mode="get"/>
</enum>
<enum name="POINT_SIZE_MAX" count="1" value="0x8127">
- <size name="PointParameterfv"/>
+ <size name="PointParameterfv" mode="get"/>
<size name="Get" mode="get"/>
</enum>
<enum name="POINT_FADE_THRESHOLD_SIZE" count="1" value="0x8128">
- <size name="PointParameterfv"/>
+ <size name="PointParameterfv" mode="get"/>
<size name="Get" mode="get"/>
</enum>
<enum name="POINT_DISTANCE_ATTENUATION" count="3" value="0x8129">
- <size name="PointParameterfv"/>
+ <size name="PointParameterfv" mode="get"/>
<size name="Get" mode="get"/>
</enum>
<enum name="GENERATE_MIPMAP" count="1" value="0x8191">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
@@ -4755,10 +4755,10 @@
</enum>
<enum name="TEXTURE_FILTER_CONTROL" value="0x8500"/>
<enum name="TEXTURE_LOD_BIAS" count="1" value="0x8501">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
@@ -4771,20 +4771,20 @@
<size name="GetTexLevelParameteriv" mode="get"/>
</enum>
<enum name="DEPTH_TEXTURE_MODE" count="1" value="0x884B">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
<enum name="TEXTURE_COMPARE_MODE" count="1" value="0x884C">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
<enum name="TEXTURE_COMPARE_FUNC" count="1" value="0x884D">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
@@ -5347,8 +5347,8 @@
<enum name="SHADING_LANGUAGE_VERSION" value="0x8B8C"/>
<enum name="CURRENT_PROGRAM" value="0x8B8D"/>
<enum name="POINT_SPRITE_COORD_ORIGIN" count="1" value="0x8CA0">
- <size name="PointParameterfv"/>
- <size name="PointParameteriv"/>
+ <size name="PointParameterfv" mode="get"/>
+ <size name="PointParameteriv" mode="get"/>
</enum>
<enum name="LOWER_LEFT" value="0x8CA1"/>
<enum name="UPPER_LEFT" value="0x8CA2"/>
@@ -6508,16 +6508,16 @@
<category name="GL_ARB_point_parameters" number="14">
<enum name="POINT_SIZE_MIN_ARB" count="1" value="0x8126">
- <size name="PointParameterfv"/>
+ <size name="PointParameterfv" mode="get"/>
</enum>
<enum name="POINT_SIZE_MAX_ARB" count="1" value="0x8127">
- <size name="PointParameterfv"/>
+ <size name="PointParameterfv" mode="get"/>
</enum>
<enum name="POINT_FADE_THRESHOLD_SIZE_ARB" count="1" value="0x8128">
- <size name="PointParameterfv"/>
+ <size name="PointParameterfv" mode="get"/>
</enum>
<enum name="POINT_DISTANCE_ATTENUATION_ARB" count="3" value="0x8129">
- <size name="PointParameterfv"/>
+ <size name="PointParameterfv" mode="get"/>
</enum>
<function name="PointParameterfARB" alias="PointParameterf">
@@ -6823,8 +6823,8 @@
<size name="GetTexLevelParameteriv" mode="get"/>
</enum>
<enum name="DEPTH_TEXTURE_MODE_ARB" count="1" value="0x884B">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
@@ -6832,14 +6832,14 @@
<category name="GL_ARB_shadow" number="23">
<enum name="TEXTURE_COMPARE_MODE_ARB" count="1" value="0x884C">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
<enum name="TEXTURE_COMPARE_FUNC_ARB" count="1" value="0x884D">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
@@ -6848,8 +6848,8 @@
<category name="GL_ARB_shadow_ambient" number="24">
<enum name="TEXTURE_COMPARE_FAIL_VALUE_ARB" count="1" value="0x80BF">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
@@ -8100,8 +8100,8 @@
<size name="Get" mode="get"/>
</enum>
<enum name="COORD_REPLACE_ARB" count="1" value="0x8862">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
@@ -8819,20 +8819,20 @@
<category name="GL_EXT_convolution" number="12">
<enum name="CONVOLUTION_BORDER_MODE_EXT" count="1" value="0x8013">
- <size name="ConvolutionParameterfv"/>
- <size name="ConvolutionParameteriv"/>
+ <size name="ConvolutionParameterfv" mode="get"/>
+ <size name="ConvolutionParameteriv" mode="get"/>
<size name="GetConvolutionParameterfv" mode="get"/>
<size name="GetConvolutionParameteriv" mode="get"/>
</enum>
<enum name="CONVOLUTION_FILTER_SCALE_EXT" count="4" value="0x8014">
- <size name="ConvolutionParameterfv"/>
- <size name="ConvolutionParameteriv"/>
+ <size name="ConvolutionParameterfv" mode="get"/>
+ <size name="ConvolutionParameteriv" mode="get"/>
<size name="GetConvolutionParameterfv" mode="get"/>
<size name="GetConvolutionParameteriv" mode="get"/>
</enum>
<enum name="CONVOLUTION_FILTER_BIAS_EXT" count="4" value="0x8015">
- <size name="ConvolutionParameterfv"/>
- <size name="ConvolutionParameteriv"/>
+ <size name="ConvolutionParameterfv" mode="get"/>
+ <size name="ConvolutionParameteriv" mode="get"/>
<size name="GetConvolutionParameterfv" mode="get"/>
<size name="GetConvolutionParameteriv" mode="get"/>
</enum>
@@ -9353,8 +9353,8 @@
<category name="GL_SGIS_generate_mipmap" number="32">
<enum name="GENERATE_MIPMAP_SGIS" count="1" value="0x8191">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
@@ -9364,26 +9364,26 @@
<category name="GL_SGIX_clipmap" number="33">
<enum name="LINEAR_CLIPMAP_LINEAR_SGIX" value="0x8170"/>
<enum name="TEXTURE_CLIPMAP_CENTER_SGIX" count="2" value="0x8171">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
<enum name="TEXTURE_CLIPMAP_FRAME_SGIX" count="1" value="0x8172">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
<enum name="TEXTURE_CLIPMAP_OFFSET_SGIX" count="2" value="0x8173">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
<enum name="TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX" count="3" value="0x8174">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
@@ -9398,14 +9398,14 @@
<category name="GL_SGIX_shadow" number="34">
<enum name="TEXTURE_COMPARE_SGIX" count="1" value="0x819A">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
<enum name="TEXTURE_COMPARE_OPERATOR_SGIX" count="1" value="0x819B">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
@@ -9482,16 +9482,16 @@
<category name="GL_EXT_point_parameters" number="54">
<enum name="POINT_SIZE_MIN_EXT" count="1" value="0x8126">
- <size name="PointParameterfv"/>
+ <size name="PointParameterfv" mode="get"/>
</enum>
<enum name="POINT_SIZE_MAX_EXT" count="1" value="0x8127">
- <size name="PointParameterfv"/>
+ <size name="PointParameterfv" mode="get"/>
</enum>
<enum name="POINT_FADE_THRESHOLD_SIZE_EXT" count="1" value="0x8128">
- <size name="PointParameterfv"/>
+ <size name="PointParameterfv" mode="get"/>
</enum>
<enum name="POINT_DISTANCE_ATTENUATION_EXT" count="3" value="0x8129">
- <size name="PointParameterfv"/>
+ <size name="PointParameterfv" mode="get"/>
</enum>
<function name="PointParameterfEXT" alias="PointParameterf">
@@ -9540,14 +9540,14 @@
<category name="GL_SGIX_texture_scale_bias" number="56">
<enum name="POST_TEXTURE_FILTER_BIAS_SGIX" count="4" value="0x8179">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
<enum name="POST_TEXTURE_FILTER_SCALE_SGIX" count="4" value="0x817A">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
@@ -9607,8 +9607,8 @@
<category name="GL_SGIX_fog_offset" number="65">
<enum name="FOG_OFFSET_SGIX" value="0x8198"/>
<enum name="FOG_OFFSET_VALUE_SGIX" count="1" value="0x8199">
- <size name="Fogfv"/>
- <size name="Fogiv"/>
+ <size name="Fogfv" mode="get"/>
+ <size name="Fogiv" mode="get"/>
</enum>
</category>
@@ -9655,8 +9655,8 @@
<enum name="CONSTANT_BORDER_HP" value="0x8151"/>
<enum name="REPLICATE_BORDER_HP" value="0x8153"/>
<enum name="CONVOLUTION_BORDER_COLOR_HP" count="4" value="0x8154">
- <size name="ConvolutionParameterfv"/>
- <size name="ConvolutionParameteriv"/>
+ <size name="ConvolutionParameterfv" mode="get"/>
+ <size name="ConvolutionParameteriv" mode="get"/>
<size name="GetConvolutionParameterfv" mode="get"/>
<size name="GetConvolutionParameteriv" mode="get"/>
</enum>
@@ -9822,20 +9822,20 @@
<category name="GL_SGIX_texture_lod_bias" number="84">
<enum name="TEXTURE_LOD_BIAS_S_SGIX" count="1" value="0x818E">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
<enum name="TEXTURE_LOD_BIAS_T_SGIX" count="1" value="0x818F">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
<enum name="TEXTURE_LOD_BIAS_R_SGIX" count="1" value="0x8190">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
@@ -9850,8 +9850,8 @@
<category name="GL_SGIX_shadow_ambient" number="90">
<enum name="SHADOW_AMBIENT_SGIX" count="1" value="0x80BF">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
@@ -10198,8 +10198,8 @@
<category name="GL_EXT_separate_specular_color" number="144">
<enum name="LIGHT_MODEL_COLOR_CONTROL_EXT" count="1" value="0x81F8">
- <size name="LightModelfv"/>
- <size name="LightModeliv"/>
+ <size name="LightModelfv" mode="get"/>
+ <size name="LightModeliv" mode="get"/>
</enum>
<enum name="SINGLE_COLOR_EXT" value="0x81F9"/>
<enum name="SEPARATE_SPECULAR_COLOR_EXT" value="0x81FA"/>
@@ -10975,8 +10975,8 @@
<category name="GL_EXT_texture_lod_bias" number="186">
<enum name="TEXTURE_LOD_BIAS_EXT" count="1" value="0x8501">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
@@ -10984,8 +10984,8 @@
<category name="GL_EXT_texture_filter_anisotropic" number="187">
<enum name="TEXTURE_MAX_ANISOTROPY_EXT" count="1" value="0x84FE">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
@@ -11144,8 +11144,8 @@
<category name="GL_NV_fog_distance" number="192">
<enum name="FOG_DISTANCE_MODE_NV" count="1" value="0x855A">
- <size name="Fogfv"/>
- <size name="Fogiv"/>
+ <size name="Fogfv" mode="get"/>
+ <size name="Fogiv" mode="get"/>
<size name="Get" mode="get"/>
</enum>
<enum name="EYE_RADIAL_NV" value="0x855B"/>
@@ -11159,26 +11159,26 @@
<category name="GL_NV_texture_env_combine4" number="195">
<enum name="COMBINE4_NV" value="0x8503"/>
<enum name="SOURCE3_RGB_NV" count="1" value="0x8583">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
<enum name="SOURCE3_ALPHA_NV" count="1" value="0x858B">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
<enum name="OPERAND3_RGB_NV" count="1" value="0x8593">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
<enum name="OPERAND3_ALPHA_NV" count="1" value="0x859B">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
@@ -12216,20 +12216,20 @@
<category name="GL_SGIX_texture_coordinate_clamp" number="235">
<enum name="TEXTURE_MAX_CLAMP_S_SGIX" count="1" value="0x8369">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
<enum name="TEXTURE_MAX_CLAMP_T_SGIX" count="1" value="0x836A">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
<enum name="TEXTURE_MAX_CLAMP_R_SGIX" count="1" value="0x836B">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
@@ -12268,8 +12268,8 @@
<enum name="DU8DV8_ATI" value="0x877A"/>
<enum name="BUMP_ENVMAP_ATI" value="0x877B"/>
<enum name="BUMP_TARGET_ATI" count="1" value="0x877C">
- <size name="TexEnviv"/>
- <size name="TexEnvfv"/>
+ <size name="TexEnviv" mode="get"/>
+ <size name="TexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
</enum>
@@ -12574,30 +12574,30 @@
added for this extension. -->
<enum name="POINT_SIZE_MIN_EXT" count="1" value="0x8126">
- <size name="PointParameteriv"/>
+ <size name="PointParameteriv" mode="get"/>
</enum>
<enum name="POINT_SIZE_MAX_EXT" count="1" value="0x8127">
- <size name="PointParameteriv"/>
+ <size name="PointParameteriv" mode="get"/>
</enum>
<enum name="POINT_FADE_THRESHOLD_SIZE_EXT" count="1" value="0x8128">
- <size name="PointParameteriv"/>
+ <size name="PointParameteriv" mode="get"/>
</enum>
<enum name="POINT_DISTANCE_ATTENUATION_EXT" count="3" value="0x8129">
- <size name="PointParameteriv"/>
+ <size name="PointParameteriv" mode="get"/>
</enum>
<enum name="POINT_SPRITE_NV" count="1" value="0x8861">
<size name="Get" mode="get"/>
</enum>
<enum name="COORD_REPLACE_NV" count="1" value="0x8862">
- <size name="TexEnvfv"/>
- <size name="TexEnviv"/>
+ <size name="TexEnvfv" mode="get"/>
+ <size name="TexEnviv" mode="get"/>
<size name="GetTexEnvfv" mode="get"/>
<size name="GetTexEnviv" mode="get"/>
</enum>
<enum name="POINT_SPRITE_R_MODE_NV" count="1" value="0x8863">
- <size name="PointParameterfv"/>
- <size name="PointParameteriv"/>
+ <size name="PointParameterfv" mode="get"/>
+ <size name="PointParameteriv" mode="get"/>
<size name="Get" mode="get"/>
</enum>
@@ -12731,8 +12731,8 @@
<category name="GL_NV_texture_expand_normal" number="286">
<enum name="TEXTURE_UNSIGNED_REMAP_MODE_NV" count="1" value="0x888F">
- <size name="TexParameterfv"/>
- <size name="TexParameteriv"/>
+ <size name="TexParameterfv" mode="get"/>
+ <size name="TexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
</enum>
@@ -12900,22 +12900,22 @@
<category name="GL_APPLE_texture_range" number="367">
<enum name="TEXTURE_STORAGE_HINT_APPLE" count="1" value="0x85BC">
- <size name="TexParameteriv"/>
- <size name="TexParameterfv"/>
+ <size name="TexParameteriv" mode="get"/>
+ <size name="TexParameterfv" mode="get"/>
<size name="GetTexParameteriv" mode="get"/>
<size name="GetTexParameterfv" mode="get"/>
</enum>
<enum name="STORAGE_PRIVATE_APPLE" count="1" value="0x85BD">
- <size name="TexParameteriv"/>
- <size name="TexParameterfv"/>
+ <size name="TexParameteriv" mode="get"/>
+ <size name="TexParameterfv" mode="get"/>
</enum>
<enum name="STORAGE_CACHED_APPLE" count="1" value="0x85BE">
- <size name="TexParameteriv"/>
- <size name="TexParameterfv"/>
+ <size name="TexParameteriv" mode="get"/>
+ <size name="TexParameterfv" mode="get"/>
</enum>
<enum name="STORAGE_SHARED_APPLE" count="1" value="0x85BF">
- <size name="TexParameteriv"/>
- <size name="TexParameterfv"/>
+ <size name="TexParameteriv" mode="get"/>
+ <size name="TexParameterfv" mode="get"/>
</enum>
<enum name="TEXTURE_RANGE_LENGTH_APPLE" count="1" value="0x85B7">
<size name="GetTexParameteriv" mode="get"/>
@@ -13035,16 +13035,16 @@
<category name="GL_SGIS_point_parameters">
<enum name="POINT_SIZE_MIN_SGIS" count="1" value="0x8126">
- <size name="PointParameterfv"/>
+ <size name="PointParameterfv" mode="get"/>
</enum>
<enum name="POINT_SIZE_MAX_SGIS" count="1" value="0x8127">
- <size name="PointParameterfv"/>
+ <size name="PointParameterfv" mode="get"/>
</enum>
<enum name="POINT_FADE_THRESHOLD_SIZE_SGIS" count="1" value="0x8128">
- <size name="PointParameterfv"/>
+ <size name="PointParameterfv" mode="get"/>
</enum>
<enum name="POINT_DISTANCE_ATTENUATION_SGIS" count="3" value="0x8129">
- <size name="PointParameterfv"/>
+ <size name="PointParameterfv" mode="get"/>
</enum>
<function name="PointParameterfSGIS" alias="PointParameterf" static_dispatch="false">
diff --git a/mesalib/src/mapi/glapi/gen/gl_apitemp.py b/mesalib/src/mapi/glapi/gen/gl_apitemp.py
index 4157032c5..4157032c5 100644..100755
--- a/mesalib/src/mapi/glapi/gen/gl_apitemp.py
+++ b/mesalib/src/mapi/glapi/gen/gl_apitemp.py
diff --git a/mesalib/src/mapi/glapi/gen/gl_enums.py b/mesalib/src/mapi/glapi/gen/gl_enums.py
index 0214932b6..1ff03fbe1 100644..100755
--- a/mesalib/src/mapi/glapi/gen/gl_enums.py
+++ b/mesalib/src/mapi/glapi/gen/gl_enums.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/env python
# -*- Mode: Python; py-indent-offset: 8 -*-
# (C) Copyright Zack Rusin 2005
diff --git a/mesalib/src/mapi/glapi/gen/gl_gentable.py b/mesalib/src/mapi/glapi/gen/gl_gentable.py
index fa9626825..fb0228939 100644..100755
--- a/mesalib/src/mapi/glapi/gen/gl_gentable.py
+++ b/mesalib/src/mapi/glapi/gen/gl_gentable.py
@@ -54,7 +54,7 @@ header = """/* GLXEXT is the define used in the xserver when the GLX extension i
#include <stdlib.h>
#include <stdio.h>
-#include "main/glheader.h"
+#include "glheader.h"
#include "glapi.h"
#include "glapitable.h"
@@ -111,7 +111,7 @@ __glapi_gentable_set_remaining_noop(struct _glapi_table *disp) {
struct _glapi_table *
_glapi_create_table_from_handle(void *handle, const char *symbol_prefix) {
- struct _glapi_table *disp = calloc(1, sizeof(struct _glapi_table));
+ struct _glapi_table *disp = calloc(_glapi_get_dispatch_table_size(), sizeof(void*));
char symboln[512];
if(!disp)
diff --git a/mesalib/src/mapi/glapi/gen/gl_procs.py b/mesalib/src/mapi/glapi/gen/gl_procs.py
index f139c58ea..f139c58ea 100644..100755
--- a/mesalib/src/mapi/glapi/gen/gl_procs.py
+++ b/mesalib/src/mapi/glapi/gen/gl_procs.py
diff --git a/mesalib/src/mapi/glapi/gen/gl_table.py b/mesalib/src/mapi/glapi/gen/gl_table.py
index fd384689f..0c9c0b8a1 100644..100755
--- a/mesalib/src/mapi/glapi/gen/gl_table.py
+++ b/mesalib/src/mapi/glapi/gen/gl_table.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/env python
# (C) Copyright IBM Corporation 2004
# All Rights Reserved.
@@ -87,6 +87,7 @@ class PrintRemapTable(gl_XML.gl_print_base):
def printRealHeader(self):
print """
+#include "glapitable.h"
/**
* \\file main/dispatch.h
* Macros for handling GL dispatch tables.
@@ -101,6 +102,11 @@ class PrintRemapTable(gl_XML.gl_print_base):
return
def printBody(self, api):
+ print '#ifdef _MSC_VER'
+ print '#ifndef INLINE'
+ print '#define INLINE __inline'
+ print '#endif'
+ print '#endif'
print '#define CALL_by_offset(disp, cast, offset, parameters) \\'
print ' (*(cast (GET_by_offset(disp, offset)))) parameters'
print '#define GET_by_offset(disp, offset) \\'
@@ -151,7 +157,7 @@ class PrintRemapTable(gl_XML.gl_print_base):
remap_table = "driDispatchRemapTable"
print '#define %s_size %u' % (remap_table, count)
- print 'extern int %s[ %s_size ];' % (remap_table, remap_table)
+ print 'SERVEXTERN int %s[ %s_size ];' % (remap_table, remap_table)
print ''
for f, index in functions:
@@ -170,11 +176,11 @@ class PrintRemapTable(gl_XML.gl_print_base):
print 'typedef %s (GLAPIENTRYP _glptr_%s)(%s);' % (f.return_type, f.name, arg_string)
print '#define CALL_%s(disp, parameters) \\' % (f.name)
print ' (* GET_%s(disp)) parameters' % (f.name)
- print 'static inline _glptr_%s GET_%s(struct _glapi_table *disp) {' % (f.name, f.name)
+ print 'static INLINE _glptr_%s GET_%s(struct _glapi_table *disp) {' % (f.name, f.name)
print ' return (_glptr_%s) (GET_by_offset(disp, _gloffset_%s));' % (f.name, f.name)
print '}'
print
- print 'static inline void SET_%s(struct _glapi_table *disp, %s (GLAPIENTRYP fn)(%s)) {' % (f.name, f.return_type, arg_string)
+ print 'static INLINE void SET_%s(struct _glapi_table *disp, %s (GLAPIENTRYP fn)(%s)) {' % (f.name, f.return_type, arg_string)
print ' SET_by_offset(disp, _gloffset_%s, fn);' % (f.name)
print '}'
print
diff --git a/mesalib/src/mapi/glapi/gen/remap_helper.py b/mesalib/src/mapi/glapi/gen/remap_helper.py
index e1a13d0b3..8ac047ccc 100644..100755
--- a/mesalib/src/mapi/glapi/gen/remap_helper.py
+++ b/mesalib/src/mapi/glapi/gen/remap_helper.py
@@ -64,8 +64,8 @@ class PrintGlRemap(gl_XML.gl_print_base):
def printRealHeader(self):
- print '#include "main/dispatch.h"'
- print '#include "main/remap.h"'
+ print '#include "dispatch.h"'
+ print '#include "remap.h"'
print ''
return
diff --git a/mesalib/src/mapi/glapi/glapi.h b/mesalib/src/mapi/glapi/glapi.h
index c764271b0..b10f19a63 100644
--- a/mesalib/src/mapi/glapi/glapi.h
+++ b/mesalib/src/mapi/glapi/glapi.h
@@ -44,14 +44,13 @@
#ifndef _GLAPI_H
#define _GLAPI_H
-#include "glapi/glthread.h"
+#include "glthread.h"
#ifdef __cplusplus
extern "C" {
#endif
-
#ifdef _GLAPI_NO_EXPORTS
# define _GLAPI_EXPORT
#else /* _GLAPI_NO_EXPORTS */
@@ -68,123 +67,124 @@ extern "C" {
# endif
#endif /* _GLAPI_NO_EXPORTS */
+#include "GL/gl.h"
+#include "GL/glext.h"
+#include "glthread.h"
+
+
+struct _glapi_table;
+
+typedef void (*_glapi_proc)(void); /* generic function pointer */
+
+typedef void (*_glapi_warning_func)(void *ctx, const char *str, ...);
-/* Is this needed? It is incomplete anyway. */
-#ifdef USE_MGL_NAMESPACE
+
+#if defined(USE_MGL_NAMESPACE)
#define _glapi_set_dispatch _mglapi_set_dispatch
#define _glapi_get_dispatch _mglapi_get_dispatch
#define _glapi_set_context _mglapi_set_context
#define _glapi_get_context _mglapi_get_context
-#define _glapi_Dispatch _mglapi_Dispatch
#define _glapi_Context _mglapi_Context
+#define _glapi_Dispatch _mglapi_Dispatch
#endif
-typedef void (*_glapi_proc)(void);
-struct _glapi_table;
+/*
+ * Number of extension functions which we can dynamically add at runtime.
+ */
+#define MAX_EXTENSION_FUNCS 300
+/**
+ ** Define the GET_CURRENT_CONTEXT() macro.
+ ** \param C local variable which will hold the current context.
+ **/
#if defined (GLX_USE_TLS)
-_GLAPI_EXPORT extern __thread struct _glapi_table * _glapi_tls_Dispatch
- __attribute__((tls_model("initial-exec")));
-
-_GLAPI_EXPORT extern __thread void * _glapi_tls_Context
- __attribute__((tls_model("initial-exec")));
+_GLAPI_EXPORT extern __thread struct _glapi_table * _glapi_tls_Dispatch;
-_GLAPI_EXPORT extern const struct _glapi_table *_glapi_Dispatch;
_GLAPI_EXPORT extern const void *_glapi_Context;
+_GLAPI_EXPORT extern const struct _glapi_table *_glapi_Dispatch;
+
+_GLAPI_EXPORT extern __thread void * _glapi_tls_Context;
# define GET_DISPATCH() _glapi_tls_Dispatch
# define GET_CURRENT_CONTEXT(C) struct gl_context *C = (struct gl_context *) _glapi_tls_Context
#else
-_GLAPI_EXPORT extern struct _glapi_table *_glapi_Dispatch;
-_GLAPI_EXPORT extern void *_glapi_Context;
+#ifdef INSERVER
+#define SERVEXTERN _declspec(dllimport)
+#else
+#define SERVEXTERN _declspec(dllexport)
+#endif
+
+SERVEXTERN void *_glapi_Context;
+SERVEXTERN struct _glapi_table *_glapi_Dispatch;
# ifdef THREADS
# define GET_DISPATCH() \
(likely(_glapi_Dispatch) ? _glapi_Dispatch : _glapi_get_dispatch())
+
# define GET_CURRENT_CONTEXT(C) struct gl_context *C = (struct gl_context *) \
(likely(_glapi_Context) ? _glapi_Context : _glapi_get_context())
-
# else
-
# define GET_DISPATCH() _glapi_Dispatch
# define GET_CURRENT_CONTEXT(C) struct gl_context *C = (struct gl_context *) _glapi_Context
-
# endif
#endif /* defined (GLX_USE_TLS) */
-void
-_glapi_destroy_multithread(void);
-
+/**
+ ** GL API public functions
+ **/
-_GLAPI_EXPORT void
+SERVEXTERN void
_glapi_check_multithread(void);
-_GLAPI_EXPORT void
+SERVEXTERN void
_glapi_set_context(void *context);
-_GLAPI_EXPORT void *
+SERVEXTERN void *
_glapi_get_context(void);
-_GLAPI_EXPORT void
+SERVEXTERN void
_glapi_set_dispatch(struct _glapi_table *dispatch);
-_GLAPI_EXPORT struct _glapi_table *
+SERVEXTERN struct _glapi_table *
_glapi_get_dispatch(void);
+SERVEXTERN int
+_glapi_begin_dispatch_override(struct _glapi_table *override);
+
+SERVEXTERN void
+_glapi_end_dispatch_override(int layer);
+
+struct _glapi_table *
+_glapi_get_override_dispatch(int layer);
-_GLAPI_EXPORT unsigned int
+SERVEXTERN GLuint
_glapi_get_dispatch_table_size(void);
-_GLAPI_EXPORT int
+SERVEXTERN int
_glapi_add_dispatch( const char * const * function_names,
const char * parameter_signature );
-_GLAPI_EXPORT int
-_glapi_get_proc_offset(const char *funcName);
-
-
_GLAPI_EXPORT _glapi_proc
_glapi_get_proc_address(const char *funcName);
-
-_GLAPI_EXPORT const char *
-_glapi_get_proc_name(unsigned int offset);
-
-
-_GLAPI_EXPORT struct _glapi_table *
+extern struct _glapi_table *
_glapi_create_table_from_handle(void *handle, const char *symbol_prefix);
-
-_GLAPI_EXPORT unsigned long
-_glthread_GetID(void);
-
-
-/*
- * These stubs are kept so that the old DRI drivers still load.
- */
-_GLAPI_EXPORT void
-_glapi_noop_enable_warnings(unsigned char enable);
-
-
-_GLAPI_EXPORT void
-_glapi_set_warning_func(_glapi_proc func);
-
+#endif
#ifdef __cplusplus
}
#endif
-
-#endif /* _GLAPI_H */
diff --git a/mesalib/src/mapi/glapi/glapi_getproc.c b/mesalib/src/mapi/glapi/glapi_getproc.c
index bfde92cf2..d52b26450 100644
--- a/mesalib/src/mapi/glapi/glapi_getproc.c
+++ b/mesalib/src/mapi/glapi/glapi_getproc.c
@@ -369,6 +369,7 @@ set_entry_info( struct _glapi_function * entry, const char * signature, unsigned
* the parameter signature of a static function.
*/
+#ifndef INSERVER
int
_glapi_add_dispatch( const char * const * function_names,
const char * parameter_signature )
@@ -478,12 +479,12 @@ _glapi_add_dispatch( const char * const * function_names,
return offset;
}
-
+#endif
/**
* Return offset of entrypoint for named function within dispatch table.
*/
-GLint
+GLint _GLAPI_EXPORT
_glapi_get_proc_offset(const char *funcName)
{
GLint offset;
@@ -504,7 +505,7 @@ _glapi_get_proc_offset(const char *funcName)
* in the name of static functions, try generating a new API entrypoint on
* the fly with assembly language.
*/
-_glapi_proc
+_glapi_proc _GLAPI_EXPORT
_glapi_get_proc_address(const char *funcName)
{
_glapi_proc func;
@@ -545,7 +546,7 @@ _glapi_get_proc_address(const char *funcName)
* Return the name of the function at the given dispatch offset.
* This is only intended for debugging.
*/
-const char *
+const char * _GLAPI_EXPORT
_glapi_get_proc_name(GLuint offset)
{
const char * n;
@@ -571,7 +572,7 @@ _glapi_get_proc_name(GLuint offset)
* Return size of dispatch table struct as number of functions (or
* slots).
*/
-GLuint
+GLuint _GLAPI_EXPORT
_glapi_get_dispatch_table_size(void)
{
/*
diff --git a/mesalib/src/mapi/glapi/glapi_nop.c b/mesalib/src/mapi/glapi/glapi_nop.c
index 2597c8cb8..77873684c 100644
--- a/mesalib/src/mapi/glapi/glapi_nop.c
+++ b/mesalib/src/mapi/glapi/glapi_nop.c
@@ -41,12 +41,12 @@
#include "glapi/glapi_priv.h"
-void
+void _GLAPI_EXPORT
_glapi_noop_enable_warnings(unsigned char enable)
{
}
-void
+void _GLAPI_EXPORT
_glapi_set_warning_func(_glapi_proc func)
{
}
diff --git a/mesalib/src/mapi/glapi/glapi_priv.h b/mesalib/src/mapi/glapi/glapi_priv.h
index 92925faac..5b894d8f6 100644
--- a/mesalib/src/mapi/glapi/glapi_priv.h
+++ b/mesalib/src/mapi/glapi/glapi_priv.h
@@ -100,15 +100,4 @@ get_entrypoint_address(unsigned int functionOffset);
#endif
-/**
- * Number of extension functions which we can dynamically add at runtime.
- *
- * Number of extension functions is also subject to the size of backing exec
- * mem we allocate. For the common case of dispatch stubs with size 16 bytes,
- * the two limits will be hit simultaneously. For larger dispatch function
- * sizes, MAX_EXTENSION_FUNCS is effectively reduced.
- */
-#define MAX_EXTENSION_FUNCS 256
-
-
#endif
diff --git a/mesalib/src/mapi/glapi/glthread.c b/mesalib/src/mapi/glapi/glthread.c
index 00915380f..239090ecf 100644
--- a/mesalib/src/mapi/glapi/glthread.c
+++ b/mesalib/src/mapi/glapi/glthread.c
@@ -1,6 +1,6 @@
#include "glapi/glapi.h"
-unsigned long
+unsigned long _GLAPI_EXPORT
_glthread_GetID(void)
{
return u_thread_self();
diff --git a/mesalib/src/mapi/mapi_abi.py b/mesalib/src/mapi/mapi_abi.py
index f5ff8d843..f5ff8d843 100644..100755
--- a/mesalib/src/mapi/mapi_abi.py
+++ b/mesalib/src/mapi/mapi_abi.py
diff --git a/mesalib/src/mesa/drivers/dri/common/dri_util.c b/mesalib/src/mesa/drivers/dri/common/dri_util.c
index 44e47f94f..6ca75f41d 100644
--- a/mesalib/src/mesa/drivers/dri/common/dri_util.c
+++ b/mesalib/src/mesa/drivers/dri/common/dri_util.c
@@ -115,6 +115,8 @@ driCreateNewScreen2(int scrn, int fd,
{
static const __DRIextension *emptyExtensionList[] = { NULL };
__DRIscreen *psp;
+ int gl_version_override;
+ int i;
psp = calloc(1, sizeof(*psp));
if (!psp)
@@ -127,7 +129,7 @@ driCreateNewScreen2(int scrn, int fd,
* (megadrivers), use that instead.
*/
if (driver_extensions) {
- for (int i = 0; driver_extensions[i]; i++) {
+ for (i = 0; driver_extensions[i]; i++) {
if (strcmp(driver_extensions[i]->name, __DRI_DRIVER_VTABLE) == 0) {
psp->driver =
((__DRIDriverVtableExtension *)driver_extensions[i])->vtable;
@@ -161,7 +163,7 @@ driCreateNewScreen2(int scrn, int fd,
return NULL;
}
- int gl_version_override = _mesa_get_gl_version_override();
+ gl_version_override = _mesa_get_gl_version_override();
if (gl_version_override >= 31) {
psp->max_gl_core_version = MAX2(psp->max_gl_core_version,
gl_version_override);
@@ -309,6 +311,8 @@ driCreateContextAttribs(__DRIscreen *screen, int api,
unsigned minor_version = 0;
uint32_t flags = 0;
bool notify_reset = false;
+ unsigned i;
+ struct gl_context *ctx;
assert((num_attribs == 0) || (attribs != NULL));
@@ -336,7 +340,7 @@ driCreateContextAttribs(__DRIscreen *screen, int api,
return NULL;
}
- for (unsigned i = 0; i < num_attribs; i++) {
+ for (i = 0; i < num_attribs; i++) {
switch (attribs[i * 2]) {
case __DRI_CTX_ATTRIB_MAJOR_VERSION:
major_version = attribs[i * 2 + 1];
@@ -436,7 +440,7 @@ driCreateContextAttribs(__DRIscreen *screen, int api,
return NULL;
}
- struct gl_context *ctx = context->driverPrivate;
+ ctx = context->driverPrivate;
if ((flags & __DRI_CTX_FLAG_FORWARD_COMPATIBLE) != 0)
ctx->Const.ContextFlags |= GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT;
if ((flags & __DRI_CTX_FLAG_DEBUG) != 0) {
@@ -726,36 +730,36 @@ driSwapBuffers(__DRIdrawable *pdp)
/** Core interface */
const __DRIcoreExtension driCoreExtension = {
- .base = { __DRI_CORE, __DRI_CORE_VERSION },
-
- .createNewScreen = NULL,
- .destroyScreen = driDestroyScreen,
- .getExtensions = driGetExtensions,
- .getConfigAttrib = driGetConfigAttrib,
- .indexConfigAttrib = driIndexConfigAttrib,
- .createNewDrawable = NULL,
- .destroyDrawable = driDestroyDrawable,
- .swapBuffers = driSwapBuffers, /* swrast */
- .createNewContext = driCreateNewContext, /* swrast */
- .copyContext = driCopyContext,
- .destroyContext = driDestroyContext,
- .bindContext = driBindContext,
- .unbindContext = driUnbindContext
+ /*.base =*/ { __DRI_CORE, __DRI_CORE_VERSION },
+
+ /*.createNewScreen =*/ NULL,
+ /*.destroyScreen =*/ driDestroyScreen,
+ /*.getExtensions =*/ driGetExtensions,
+ /*.getConfigAttrib =*/ driGetConfigAttrib,
+ /*.indexConfigAttrib =*/ driIndexConfigAttrib,
+ /*.createNewDrawable =*/ NULL,
+ /*.destroyDrawable =*/ driDestroyDrawable,
+ /*.swapBuffers =*/ driSwapBuffers, /* swrast */
+ /*.createNewContext =*/ driCreateNewContext, /* swrast */
+ /*.copyContext =*/ driCopyContext,
+ /*.destroyContext =*/ driDestroyContext,
+ /*.bindContext =*/ driBindContext,
+ /*.unbindContext =*/ driUnbindContext
};
/** DRI2 interface */
const __DRIdri2Extension driDRI2Extension = {
- .base = { __DRI_DRI2, 4 },
-
- .createNewScreen = dri2CreateNewScreen,
- .createNewDrawable = driCreateNewDrawable,
- .createNewContext = driCreateNewContext,
- .getAPIMask = driGetAPIMask,
- .createNewContextForAPI = driCreateNewContextForAPI,
- .allocateBuffer = dri2AllocateBuffer,
- .releaseBuffer = dri2ReleaseBuffer,
- .createContextAttribs = driCreateContextAttribs,
- .createNewScreen2 = driCreateNewScreen2,
+ /*.base =*/ { __DRI_DRI2, 4 },
+
+ /*.createNewScreen =*/ dri2CreateNewScreen,
+ /*.createNewDrawable =*/ driCreateNewDrawable,
+ /*.createNewContext =*/ driCreateNewContext,
+ /*.getAPIMask =*/ driGetAPIMask,
+ /*.createNewContextForAPI =*/ driCreateNewContextForAPI,
+ /*.allocateBuffer =*/ dri2AllocateBuffer,
+ /*.releaseBuffer =*/ dri2ReleaseBuffer,
+ /*.createContextAttribs =*/ driCreateContextAttribs,
+ /*.createNewScreen2 =*/ driCreateNewScreen2,
};
const __DRIswrastExtension driSWRastExtension = {
@@ -768,11 +772,11 @@ const __DRIswrastExtension driSWRastExtension = {
};
const __DRI2configQueryExtension dri2ConfigQueryExtension = {
- .base = { __DRI2_CONFIG_QUERY, __DRI2_CONFIG_QUERY_VERSION },
+ /*.base =*/ { __DRI2_CONFIG_QUERY, __DRI2_CONFIG_QUERY_VERSION },
- .configQueryb = dri2ConfigQueryb,
- .configQueryi = dri2ConfigQueryi,
- .configQueryf = dri2ConfigQueryf,
+ /*.configQueryb =*/ dri2ConfigQueryb,
+ /*.configQueryi =*/ dri2ConfigQueryi,
+ /*.configQueryf =*/ dri2ConfigQueryf,
};
void
@@ -864,10 +868,10 @@ driImageFormatToGLFormat(uint32_t image_format)
/** Image driver interface */
const __DRIimageDriverExtension driImageDriverExtension = {
- .base = { __DRI_IMAGE_DRIVER, __DRI_IMAGE_DRIVER_VERSION },
+ /*.base = */{ __DRI_IMAGE_DRIVER, __DRI_IMAGE_DRIVER_VERSION },
- .createNewScreen2 = driCreateNewScreen2,
- .createNewDrawable = driCreateNewDrawable,
- .getAPIMask = driGetAPIMask,
- .createContextAttribs = driCreateContextAttribs,
+ /*.createNewScreen2 =*/ driCreateNewScreen2,
+ /*.createNewDrawable =*/ driCreateNewDrawable,
+ /*.createContextAttribs =*/ driCreateContextAttribs,
+ /*.getAPIMask =*/ driGetAPIMask,
};
diff --git a/mesalib/src/mesa/drivers/dri/common/megadriver_stub.c b/mesalib/src/mesa/drivers/dri/common/megadriver_stub.c
index 6bf5d7327..3a33d74ab 100644
--- a/mesalib/src/mesa/drivers/dri/common/megadriver_stub.c
+++ b/mesalib/src/mesa/drivers/dri/common/megadriver_stub.c
@@ -37,5 +37,5 @@ __DRIconfig **stub_error_init_screen(__DRIscreen *psp)
* never be used.
*/
const struct __DriverAPIRec driDriverAPI = {
- .InitScreen = stub_error_init_screen,
+ /*.InitScreen = */stub_error_init_screen,
};
diff --git a/mesalib/src/mesa/drivers/dri/common/xmlconfig.c b/mesalib/src/mesa/drivers/dri/common/xmlconfig.c
index b95e452f1..cce47c753 100644
--- a/mesalib/src/mesa/drivers/dri/common/xmlconfig.c
+++ b/mesalib/src/mesa/drivers/dri/common/xmlconfig.c
@@ -101,7 +101,11 @@ static const char *__getProgramName () {
# define GET_PROGRAM_NAME() __getProgramName()
# else
# define GET_PROGRAM_NAME() ""
+# ifdef _MSC_VER
+# pragma message("Per application configuration won't work with your OS version.")
+# else
# warning "Per application configuration won't work with your OS version."
+# endif
# endif
#endif
@@ -438,11 +442,11 @@ __driUtilMessage(const char *f, ...)
(int) XML_GetCurrentLineNumber(data->parser), \
(int) XML_GetCurrentColumnNumber(data->parser)); \
} while (0)
-#define XML_WARNING(msg,args...) do { \
+#define XML_WARNING(msg, ...) do { \
__driUtilMessage ("Warning in %s line %d, column %d: "msg, data->name, \
(int) XML_GetCurrentLineNumber(data->parser), \
(int) XML_GetCurrentColumnNumber(data->parser), \
- args); \
+ __VA_ARGS__); \
} while (0)
/** \brief Output an error message. */
#define XML_ERROR1(msg) do { \
@@ -450,11 +454,11 @@ __driUtilMessage(const char *f, ...)
(int) XML_GetCurrentLineNumber(data->parser), \
(int) XML_GetCurrentColumnNumber(data->parser)); \
} while (0)
-#define XML_ERROR(msg,args...) do { \
+#define XML_ERROR(msg, ...) do { \
__driUtilMessage ("Error in %s line %d, column %d: "msg, data->name, \
(int) XML_GetCurrentLineNumber(data->parser), \
(int) XML_GetCurrentColumnNumber(data->parser), \
- args); \
+ __VA_ARGS__); \
} while (0)
/** \brief Output a fatal error message and abort. */
#define XML_FATAL1(msg) do { \
@@ -464,12 +468,12 @@ __driUtilMessage(const char *f, ...)
(int) XML_GetCurrentColumnNumber(data->parser)); \
abort();\
} while (0)
-#define XML_FATAL(msg,args...) do { \
+#define XML_FATAL(msg, ...) do { \
fprintf (stderr, "Fatal error in %s line %d, column %d: "msg"\n", \
data->name, \
(int) XML_GetCurrentLineNumber(data->parser), \
(int) XML_GetCurrentColumnNumber(data->parser), \
- args); \
+ __VA_ARGS__); \
abort();\
} while (0)
diff --git a/mesalib/src/mesa/drivers/dri/swrast/swrast.c b/mesalib/src/mesa/drivers/dri/swrast/swrast.c
index 73dc5c4c0..d0ca80fa7 100644..100755
--- a/mesalib/src/mesa/drivers/dri/swrast/swrast.c
+++ b/mesalib/src/mesa/drivers/dri/swrast/swrast.c
@@ -32,6 +32,11 @@
* The back-buffer is allocated by the driver and is private.
*/
+#ifdef _MSC_VER
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+#endif
+
#include "main/api_exec.h"
#include "main/context.h"
#include "main/extensions.h"
@@ -59,7 +64,7 @@
#include "swrast_priv.h"
#include "swrast/s_context.h"
-const __DRIextension **__driDriverGetExtensions_swrast(void);
+PUBLIC const __DRIextension **__driDriverGetExtensions_swrast(void);
/**
* Screen and config-related functions
@@ -78,7 +83,7 @@ static void swrastSetTexBuffer2(__DRIcontext *pDRICtx, GLint target,
uint32_t internalFormat;
gl_format texFormat;
- dri_ctx = pDRICtx->driverPrivate;
+ dri_ctx = (struct dri_context *)pDRICtx->driverPrivate;
internalFormat = (texture_format == __DRI_TEXTURE_FORMAT_RGB ? 3 : 4);
@@ -175,7 +180,7 @@ swrastFillInModes(__DRIscreen *psp,
format = MESA_FORMAT_ARGB8888;
break;
default:
- fprintf(stderr, "[%s:%u] bad depth %d\n", __func__, __LINE__,
+ fprintf(stderr, "[%s:%u] bad depth %d\n", __FUNCTION__, __LINE__,
pixel_bits);
return NULL;
}
@@ -186,7 +191,7 @@ swrastFillInModes(__DRIscreen *psp,
back_buffer_factor, msaa_samples_array, 1,
GL_TRUE);
if (configs == NULL) {
- fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __func__,
+ fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __FUNCTION__,
__LINE__);
return NULL;
}
@@ -310,7 +315,7 @@ swrast_alloc_back_storage(struct gl_context *ctx, struct gl_renderbuffer *rb,
swrast_alloc_front_storage(ctx, rb, internalFormat, width, height);
- xrb->Base.Buffer = malloc(height * xrb->pitch);
+ xrb->Base.Buffer = (GLubyte*)malloc(height * xrb->pitch);
return GL_TRUE;
}
@@ -319,7 +324,7 @@ static struct dri_swrast_renderbuffer *
swrast_new_renderbuffer(const struct gl_config *visual, __DRIdrawable *dPriv,
GLboolean front)
{
- struct dri_swrast_renderbuffer *xrb = calloc(1, sizeof *xrb);
+ struct dri_swrast_renderbuffer *xrb = (struct dri_swrast_renderbuffer *)calloc(1, sizeof *xrb);
struct gl_renderbuffer *rb;
GLuint pixel_format;
@@ -400,7 +405,7 @@ swrast_map_renderbuffer(struct gl_context *ctx,
xrb->map_h = h;
stride = w * cpp;
- xrb->Base.Buffer = malloc(h * stride);
+ xrb->Base.Buffer = (GLubyte*)malloc(h * stride);
sPriv->swrast_loader->getImage(dPriv, x, y, w, h,
(char *) xrb->Base.Buffer,
@@ -469,7 +474,7 @@ dri_create_buffer(__DRIscreen * sPriv,
dPriv->driverPrivate = drawable;
drawable->dPriv = dPriv;
- drawable->row = malloc(SWRAST_MAX_WIDTH * 4);
+ drawable->row = (char*)malloc(SWRAST_MAX_WIDTH * 4);
if (drawable->row == NULL)
goto drawable_fail;
@@ -822,20 +827,22 @@ dri_unbind_context(__DRIcontext * cPriv)
static const struct __DriverAPIRec swrast_driver_api = {
- .InitScreen = dri_init_screen,
- .DestroyScreen = dri_destroy_screen,
- .CreateContext = dri_create_context,
- .DestroyContext = dri_destroy_context,
- .CreateBuffer = dri_create_buffer,
- .DestroyBuffer = dri_destroy_buffer,
- .SwapBuffers = dri_swap_buffers,
- .MakeCurrent = dri_make_current,
- .UnbindContext = dri_unbind_context,
+ /*.InitScreen = */dri_init_screen,
+ /*.DestroyScreen = */dri_destroy_screen,
+ /*.CreateContext = */dri_create_context,
+ /*.DestroyContext = */dri_destroy_context,
+ /*.CreateBuffer = */dri_create_buffer,
+ /*.DestroyBuffer = */dri_destroy_buffer,
+ /*.SwapBuffers = */dri_swap_buffers,
+ /*.MakeCurrent = */dri_make_current,
+ /*.UnbindContext = */dri_unbind_context,
+ /*.AllocateBuffer = */NULL,
+ /*.ReleaseBuffer = */NULL
};
static const struct __DRIDriverVtableExtensionRec swrast_vtable = {
- .base = { __DRI_DRIVER_VTABLE, 1 },
- .vtable = &swrast_driver_api,
+ /*.base = */{ __DRI_DRIVER_VTABLE, 1 },
+ /*.vtable = */&swrast_driver_api,
};
static const __DRIextension *swrast_driver_extensions[] = {
diff --git a/mesalib/src/mesa/drivers/dri/swrast/swrast_priv.h b/mesalib/src/mesa/drivers/dri/swrast/swrast_priv.h
index 535f6fe59..339e4502f 100644
--- a/mesalib/src/mesa/drivers/dri/swrast/swrast_priv.h
+++ b/mesalib/src/mesa/drivers/dri/swrast/swrast_priv.h
@@ -33,6 +33,13 @@
#include "dri_util.h"
#include "swrast/s_context.h"
+#ifdef _MSC_VER
+#ifdef PUBLIC
+#undef PUBLIC
+#endif
+#define PUBLIC __declspec(dllexport)
+#endif
+
/**
* Debugging
diff --git a/mesalib/src/mesa/main/.gitignore b/mesalib/src/mesa/main/.gitignore
index 837f49036..b1b83f102 100644
--- a/mesalib/src/mesa/main/.gitignore
+++ b/mesalib/src/mesa/main/.gitignore
@@ -1,10 +1,11 @@
-api_exec.c
-dispatch.h
-enums.c
-get_es1.c
-get_es2.c
-git_sha1.h
-git_sha1.h.tmp
-remap_helper.h
-get_hash.h
-get_hash.h.tmp
+api_exec.c
+dispatch.h
+enums.c
+get_es1.c
+get_es2.c
+git_sha1.h
+git_sha1.h.tmp
+remap_helper.h
+get_hash.h
+get_hash.h.tmp
+glapitable.h
diff --git a/mesalib/src/mesa/main/bufferobj.c b/mesalib/src/mesa/main/bufferobj.c
index b27f592e8..351934433 100644
--- a/mesalib/src/mesa/main/bufferobj.c
+++ b/mesalib/src/mesa/main/bufferobj.c
@@ -239,7 +239,7 @@ buffer_object_subdata_range_good( struct gl_context * ctx, GLenum target,
*
* Default callback for the \c dd_function_table::NewBufferObject() hook.
*/
-static struct gl_buffer_object *
+struct gl_buffer_object *
_mesa_new_buffer_object( struct gl_context *ctx, GLuint name, GLenum target )
{
struct gl_buffer_object *obj;
@@ -257,7 +257,7 @@ _mesa_new_buffer_object( struct gl_context *ctx, GLuint name, GLenum target )
*
* Default callback for the \c dd_function_table::DeleteBuffer() hook.
*/
-static void
+void
_mesa_delete_buffer_object(struct gl_context *ctx,
struct gl_buffer_object *bufObj)
{
@@ -409,7 +409,7 @@ _mesa_total_buffer_object_memory(struct gl_context *ctx)
* \return GL_TRUE for success, GL_FALSE for failure
* \sa glBufferDataARB, dd_function_table::BufferData.
*/
-static GLboolean
+GLboolean
_mesa_buffer_data( struct gl_context *ctx, GLenum target, GLsizeiptrARB size,
const GLvoid * data, GLenum usage,
struct gl_buffer_object * bufObj )
@@ -452,7 +452,7 @@ _mesa_buffer_data( struct gl_context *ctx, GLenum target, GLsizeiptrARB size,
*
* \sa glBufferSubDataARB, dd_function_table::BufferSubData.
*/
-static void
+void
_mesa_buffer_subdata( struct gl_context *ctx, GLintptrARB offset,
GLsizeiptrARB size, const GLvoid * data,
struct gl_buffer_object * bufObj )
@@ -485,7 +485,7 @@ _mesa_buffer_subdata( struct gl_context *ctx, GLintptrARB offset,
*
* \sa glBufferGetSubDataARB, dd_function_table::GetBufferSubData.
*/
-static void
+void
_mesa_buffer_get_subdata( struct gl_context *ctx, GLintptrARB offset,
GLsizeiptrARB size, GLvoid * data,
struct gl_buffer_object * bufObj )
@@ -542,7 +542,7 @@ _mesa_buffer_flush_mapped_range( struct gl_context *ctx,
*
* \sa glUnmapBufferARB, dd_function_table::UnmapBuffer
*/
-static GLboolean
+GLboolean
_mesa_buffer_unmap( struct gl_context *ctx, struct gl_buffer_object *bufObj )
{
(void) ctx;
diff --git a/mesalib/src/mesa/main/config.h b/mesalib/src/mesa/main/config.h
index 22bbfa0cf..ebf99c24b 100644
--- a/mesalib/src/mesa/main/config.h
+++ b/mesalib/src/mesa/main/config.h
@@ -32,6 +32,10 @@
#define MESA_CONFIG_H_INCLUDED
+#define PACKAGE_VERSION "9.2-devel"
+#define PACKAGE_BUGREPORT "https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa"
+
+
/**
* \name OpenGL implementation limits
*/
diff --git a/mesalib/src/mesa/main/context.c b/mesalib/src/mesa/main/context.c
index 8cbc9352a..e0aee7a35 100644
--- a/mesalib/src/mesa/main/context.c
+++ b/mesalib/src/mesa/main/context.c
@@ -1102,7 +1102,7 @@ _mesa_initialize_context(struct gl_context *ctx,
fail:
_mesa_reference_shared_state(ctx, &ctx->Shared, NULL);
free(ctx->BeginEnd);
- free(ctx->Exec);
+ free(ctx->OutsideBeginEnd);
free(ctx->Save);
return GL_FALSE;
}
@@ -1202,7 +1202,7 @@ _mesa_free_context_data( struct gl_context *ctx )
/* free dispatch tables */
free(ctx->BeginEnd);
- free(ctx->Exec);
+ free(ctx->OutsideBeginEnd);
free(ctx->Save);
/* Shared context state (display lists, textures, etc) */
diff --git a/mesalib/src/mesa/main/dlopen.h b/mesalib/src/mesa/main/dlopen.h
index 55a56f0d7..b060cdbac 100644
--- a/mesalib/src/mesa/main/dlopen.h
+++ b/mesalib/src/mesa/main/dlopen.h
@@ -52,7 +52,7 @@ _mesa_dlopen(const char *libname, int flags)
#elif defined(HAVE_DLOPEN)
flags = RTLD_LAZY | RTLD_GLOBAL; /* Overriding flags at this time */
return dlopen(libname, flags);
-#elif defined(__MINGW32__)
+#elif defined(__MINGW32__) || defined(_WIN32)
return LoadLibraryA(libname);
#else
return NULL;
@@ -82,7 +82,7 @@ _mesa_dlsym(void *handle, const char *fname)
u.v = dlsym(handle, fname2);
#elif defined(HAVE_DLOPEN)
u.v = dlsym(handle, fname);
-#elif defined(__MINGW32__)
+#elif defined(__MINGW32__) || defined(_WIN32)
u.v = (void *) GetProcAddress(handle, fname);
#else
u.v = NULL;
@@ -100,7 +100,7 @@ _mesa_dlclose(void *handle)
(void) handle;
#elif defined(HAVE_DLOPEN)
dlclose(handle);
-#elif defined(__MINGW32__)
+#elif defined(__MINGW32__) || defined(_WIN32)
FreeLibrary(handle);
#else
(void) handle;
diff --git a/mesalib/src/mesa/main/imports.h b/mesalib/src/mesa/main/imports.h
index d79e2a339..53e40b445 100644
--- a/mesalib/src/mesa/main/imports.h
+++ b/mesalib/src/mesa/main/imports.h
@@ -141,7 +141,6 @@ static inline float acoshf(float x) { return logf(x + sqrtf(x * x - 1.0f)); }
static inline float atanhf(float x) { return (logf(1.0f + x) - logf(1.0f - x)) / 2.0f; }
static inline int isblank(int ch) { return ch == ' ' || ch == '\t'; }
#define strtoll(p, e, b) _strtoi64(p, e, b)
-#define strcasecmp(s1, s2) _stricmp(s1, s2)
#endif
/*@}*/
diff --git a/mesalib/src/mesa/main/queryobj.c b/mesalib/src/mesa/main/queryobj.c
index 86e7c3ad0..b411eae50 100644
--- a/mesalib/src/mesa/main/queryobj.c
+++ b/mesalib/src/mesa/main/queryobj.c
@@ -40,7 +40,7 @@
* \param id - the new object's ID
* \return pointer to new query_object object or NULL if out of memory.
*/
-static struct gl_query_object *
+struct gl_query_object *
_mesa_new_query_object(struct gl_context *ctx, GLuint id)
{
struct gl_query_object *q = CALLOC_STRUCT(gl_query_object);
@@ -72,7 +72,7 @@ _mesa_new_query_object(struct gl_context *ctx, GLuint id)
* Begin a query. Software driver fallback.
* Called via ctx->Driver.BeginQuery().
*/
-static void
+void
_mesa_begin_query(struct gl_context *ctx, struct gl_query_object *q)
{
ctx->NewState |= _NEW_DEPTH; /* for swrast */
@@ -83,7 +83,7 @@ _mesa_begin_query(struct gl_context *ctx, struct gl_query_object *q)
* End a query. Software driver fallback.
* Called via ctx->Driver.EndQuery().
*/
-static void
+void
_mesa_end_query(struct gl_context *ctx, struct gl_query_object *q)
{
ctx->NewState |= _NEW_DEPTH; /* for swrast */
@@ -95,7 +95,7 @@ _mesa_end_query(struct gl_context *ctx, struct gl_query_object *q)
* Wait for query to complete. Software driver fallback.
* Called via ctx->Driver.WaitQuery().
*/
-static void
+void
_mesa_wait_query(struct gl_context *ctx, struct gl_query_object *q)
{
/* For software drivers, _mesa_end_query() should have completed the query.
@@ -123,7 +123,7 @@ _mesa_check_query(struct gl_context *ctx, struct gl_query_object *q)
* Delete a query object. Called via ctx->Driver.DeleteQuery().
* Not removed from hash table here.
*/
-static void
+void
_mesa_delete_query(struct gl_context *ctx, struct gl_query_object *q)
{
free(q->Label);
diff --git a/mesalib/src/mesa/main/remap.c b/mesalib/src/mesa/main/remap.c
index 4a881865a..02365f76e 100644
--- a/mesalib/src/mesa/main/remap.c
+++ b/mesalib/src/mesa/main/remap.c
@@ -35,9 +35,9 @@
* a dynamic entry, or the corresponding static entry, in glapi.
*/
+#include "glapi/glapi.h"
#include "remap.h"
#include "imports.h"
-#include "glapi/glapi.h"
#define MAX_ENTRY_POINTS 16
@@ -46,7 +46,7 @@
/* this is global for quick access */
-int driDispatchRemapTable[driDispatchRemapTable_size];
+SERVEXTERN int driDispatchRemapTable[driDispatchRemapTable_size];
/**
diff --git a/mesalib/src/mesa/main/remap.h b/mesalib/src/mesa/main/remap.h
index 7199169d3..f6e856c64 100644
--- a/mesalib/src/mesa/main/remap.h
+++ b/mesalib/src/mesa/main/remap.h
@@ -40,7 +40,7 @@ struct gl_function_remap {
};
-extern int
+SERVEXTERN int
driDispatchRemapTable[];
extern const char *
diff --git a/mesalib/src/mesa/main/syncobj.c b/mesalib/src/mesa/main/syncobj.c
index ad21f3b67..ae49db2e4 100644
--- a/mesalib/src/mesa/main/syncobj.c
+++ b/mesalib/src/mesa/main/syncobj.c
@@ -127,7 +127,7 @@ _mesa_wait_sync(struct gl_context *ctx, struct gl_sync_object *syncObj,
}
-void
+void GLAPIENTRY
_mesa_init_sync_object_functions(struct dd_function_table *driver)
{
driver->NewSyncObject = _mesa_new_sync_object;
@@ -144,7 +144,7 @@ _mesa_init_sync_object_functions(struct dd_function_table *driver)
/**
* Allocate/init the context state related to sync objects.
*/
-void
+void GLAPIENTRY
_mesa_init_sync(struct gl_context *ctx)
{
(void) ctx;
@@ -154,7 +154,7 @@ _mesa_init_sync(struct gl_context *ctx)
/**
* Free the context state related to sync objects.
*/
-void
+void GLAPIENTRY
_mesa_free_sync_data(struct gl_context *ctx)
{
(void) ctx;
@@ -181,7 +181,7 @@ _mesa_validate_sync(struct gl_context *ctx,
}
-void
+void GLAPIENTRY
_mesa_ref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj)
{
_glthread_LOCK_MUTEX(ctx->Shared->Mutex);
@@ -190,7 +190,7 @@ _mesa_ref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj)
}
-void
+void GLAPIENTRY
_mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj)
{
struct set_entry *entry;
diff --git a/mesalib/src/mesa/main/syncobj.h b/mesalib/src/mesa/main/syncobj.h
index 5d510e873..1dbb7b14a 100644
--- a/mesalib/src/mesa/main/syncobj.h
+++ b/mesalib/src/mesa/main/syncobj.h
@@ -38,19 +38,19 @@ struct dd_function_table;
struct gl_context;
struct gl_sync_object;
-extern void
+extern void GLAPIENTRY
_mesa_init_sync_object_functions(struct dd_function_table *driver);
-extern void
+extern void GLAPIENTRY
_mesa_init_sync(struct gl_context *);
-extern void
+extern void GLAPIENTRY
_mesa_free_sync_data(struct gl_context *);
-extern void
+extern void GLAPIENTRY
_mesa_ref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj);
-extern void
+extern void GLAPIENTRY
_mesa_unref_sync_object(struct gl_context *ctx, struct gl_sync_object *syncObj);
extern bool
diff --git a/mesalib/src/mesa/main/version.c b/mesalib/src/mesa/main/version.c
index 55411faf8..ee77947b4 100644
--- a/mesalib/src/mesa/main/version.c
+++ b/mesalib/src/mesa/main/version.c
@@ -26,7 +26,7 @@
#include "imports.h"
#include "mtypes.h"
#include "version.h"
-#include "git_sha1.h"
+/*#include "git_sha1.h"*/
/**
* Scans 'string' to see if it ends with 'ending'.
diff --git a/mesalib/src/mesa/program/.gitignore b/mesalib/src/mesa/program/.gitignore
index 4c20872e1..2f1601fcc 100644..100755
--- a/mesalib/src/mesa/program/.gitignore
+++ b/mesalib/src/mesa/program/.gitignore
@@ -1,4 +1,4 @@
-program_parse.output
-lex.yy.c
-program_parse.tab.c
-program_parse.tab.h
+lex.yy.c
+program_parse.output
+program_parse.tab.c
+program_parse.tab.h \ No newline at end of file
diff --git a/mesalib/src/mesa/program/doflexbison.bat b/mesalib/src/mesa/program/doflexbison.bat
new file mode 100644
index 000000000..b39b53cf8
--- /dev/null
+++ b/mesalib/src/mesa/program/doflexbison.bat
@@ -0,0 +1,18 @@
+@echo off
+setlocal
+
+cd "%~dp0"
+
+set M4=..\..\..\..\tools\mhmake\m4.exe
+set BISON_PKGDATADIR=../../../../tools/mhmake/src/bisondata
+
+set path=..\..\..\..\tools\mhmake;%path%
+
+..\..\..\..\tools\mhmake\bison.exe -v -d -p "_mesa_program_" --output=program_parse.tab.c program_parse.y
+
+copy "..\..\..\..\tools\mhmake\flex++.exe" flex.exe
+flex.exe --never-interactive --outfile=lex.yy.c program_lexer.l
+del flex.exe
+
+endlocal
+
diff --git a/mesalib/src/mesa/program/hash_table.h b/mesalib/src/mesa/program/hash_table.h
index e95fc4982..b814497a6 100644
--- a/mesalib/src/mesa/program/hash_table.h
+++ b/mesalib/src/mesa/program/hash_table.h
@@ -37,6 +37,7 @@
#include <stdint.h>
#include <limits.h>
#include <assert.h>
+#include <unistd.h>
struct string_to_uint_map;
diff --git a/mesalib/windows/VC8/mesa/.gitignore b/mesalib/windows/VC8/mesa/.gitignore
new file mode 100644
index 000000000..2647b8950
--- /dev/null
+++ b/mesalib/windows/VC8/mesa/.gitignore
@@ -0,0 +1,2 @@
+ipch
+*.opensdf
diff --git a/mesalib/windows/VC8/mesa/glsl_apps_compile/glsl_apps_compile.vcxproj b/mesalib/windows/VC8/mesa/glsl_apps_compile/glsl_apps_compile.vcxproj
new file mode 100644
index 000000000..a27071af0
--- /dev/null
+++ b/mesalib/windows/VC8/mesa/glsl_apps_compile/glsl_apps_compile.vcxproj
@@ -0,0 +1,298 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{98AB3D51-1820-4D14-9195-75FCA6997784}</ProjectGuid>
+ <RootNamespace>glsl_apps_compile</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">compile</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">compile</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">compile</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">compile</TargetName>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;INSERVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\src\mesa;..\..\..\..\src\glsl;..\..\..\..\src\mapi;..\..\..\..\..\include;..\..\..\..\..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>_DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;INSERVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\src\mesa;..\..\..\..\src\glsl;..\..\..\..\src\mapi;..\..\..\..\..\include;..\..\..\..\..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;INSERVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\src\mesa;..\..\..\..\src\glsl;..\..\..\..\src\mapi;..\..\..\..\..\include;..\..\..\..\..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;INSERVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\src\mesa;..\..\..\..\src\glsl;..\..\..\..\src\mapi;..\..\..\..\..\include;..\..\..\..\..</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\src\glsl\ast_array_index.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ast_expr.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ast_function.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ast_to_hir.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ast_type.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\builtin_functions.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\builtin_types.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\getopt.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\glcpp\glcpp-lex.c" />
+ <ClCompile Include="..\..\..\..\src\glsl\glcpp\glcpp-parse.c" />
+ <ClCompile Include="..\..\..\..\src\glsl\glcpp\pp.c" />
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_lexer.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_parser.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_parser_extras.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_symbol_table.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_types.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\hir_field_selection.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_basic_block.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_builder.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_clone.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_constant_expression.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_equals.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_expression_flattening.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_function.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_function_can_inline.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_function_detect_recursion.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_hierarchical_visitor.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_hv_accept.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_import_prototypes.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_print_visitor.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_reader.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_rvalue_visitor.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_set_program_inouts.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_validate.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\builtin_variables.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_variable_refcount.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\linker.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\link_atomics.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\link_functions.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\link_interface_blocks.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\link_uniforms.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\link_uniform_blocks.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\link_uniform_block_active_visitor.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\link_uniform_initializers.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\link_varyings.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\loop_analysis.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\loop_controls.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\loop_unroll.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_discard.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_discard_flow.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_if_to_cond_assign.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_instructions.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_jumps.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_clip_distance.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_mat_op_to_vec.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_named_interface_blocks.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_noise.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_packed_varyings.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_texture_projection.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_variable_index_to_cond_assign.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_vector.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_vector_insert.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_vec_index_to_cond_assign.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_vec_index_to_swizzle.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\main.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_algebraic.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_array_splitting.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_constant_folding.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_constant_propagation.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_constant_variable.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_copy_propagation.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_copy_propagation_elements.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_cse.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_dead_builtin_varyings.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_dead_code.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_dead_code_local.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_dead_functions.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_flatten_nested_if_blocks.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_flip_matrices.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_function_inlining.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_if_simplification.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_noop_swizzle.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_redundant_jumps.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_structure_splitting.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_swizzle_swizzle.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_tree_grafting.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\standalone_scaffolding.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ralloc.c" />
+ <ClCompile Include="..\..\..\..\src\glsl\strtod.c" />
+ <ClCompile Include="..\..\..\..\src\glsl\s_expression.cpp" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\hash_table.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\imports.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_hash_table.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\symbol_table.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\src\glsl\strtod.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\..\..\src\glsl\glsl_lexer.ll">
+ <FileType>Document</FileType>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\..\src\glsl\doflexbison.bat</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\..\src\glsl\doflexbison.bat</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\..\src\glsl\glsl_lexer.cpp;..\..\..\..\src\glsl\glcpp\glcpp-lex.c;..\..\..\..\src\glsl\glsl_parser.cpp;..\..\..\..\src\glsl\glsl_parser.h;..\..\..\..\src\glsl\glcpp\glcpp-parse.c;..\..\..\..\src\glsl\glcpp\glcpp-parse.h</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\..\src\glsl\glsl_lexer.cpp;..\..\..\..\src\glsl\glcpp\glcpp-lex.c;..\..\..\..\src\glsl\glsl_parser.cpp;..\..\..\..\src\glsl\glsl_parser.h;..\..\..\..\src\glsl\glcpp\glcpp-parse.c;..\..\..\..\src\glsl\glcpp\glcpp-parse.h</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\..\src\glsl\doflexbison.bat</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\..\src\glsl\doflexbison.bat</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\..\src\glsl\glsl_lexer.cpp;..\..\..\..\src\glsl\glcpp\glcpp-lex.c;..\..\..\..\src\glsl\glsl_parser.cpp;..\..\..\..\src\glsl\glsl_parser.h;..\..\..\..\src\glsl\glcpp\glcpp-parse.c;..\..\..\..\src\glsl\glcpp\glcpp-parse.h</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\..\src\glsl\glsl_lexer.cpp;..\..\..\..\src\glsl\glcpp\glcpp-lex.c;..\..\..\..\src\glsl\glsl_parser.cpp;..\..\..\..\src\glsl\glsl_parser.h;..\..\..\..\src\glsl\glcpp\glcpp-parse.c;..\..\..\..\src\glsl\glcpp\glcpp-parse.h</Outputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\..\src\glsl\glsl_parser.yy;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\..\src\glsl\glsl_parser.yy;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\..\src\glsl\glsl_parser.yy;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\..\src\glsl\glsl_parser.yy;%(AdditionalInputs)</AdditionalInputs>
+ </CustomBuild>
+ <None Include="..\..\..\..\src\glsl\glsl_parser.yy">
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\..\src\glsl\dobison.bat</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\..\src\glsl\dobison.bat</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\..\src\glsl\glsl_parser.cpp;..\..\..\..\src\glsl\glsl_parser.h;..\..\..\..\src\glsl\glcpp\glcpp-parse.c;..\..\..\..\src\glsl\glcpp\glcpp-parse.h</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\..\src\glsl\glsl_parser.cpp;..\..\..\..\src\glsl\glsl_parser.h;..\..\..\..\src\glsl\glcpp\glcpp-parse.c;..\..\..\..\src\glsl\glcpp\glcpp-parse.h</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\..\src\glsl\dobison.bat</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\..\src\glsl\dobison.bat</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\..\src\glsl\glsl_parser.cpp;..\..\..\..\src\glsl\glsl_parser.h;..\..\..\..\src\glsl\glcpp\glcpp-parse.c;..\..\..\..\src\glsl\glcpp\glcpp-parse.h</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\..\src\glsl\glsl_parser.cpp;..\..\..\..\src\glsl\glsl_parser.h;..\..\..\..\src\glsl\glcpp\glcpp-parse.c;..\..\..\..\src\glsl\glcpp\glcpp-parse.h</Outputs>
+ <FileType>Document</FileType>
+ </None>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/mesalib/windows/VC8/mesa/glsl_apps_compile/glsl_apps_compile.vcxproj.filters b/mesalib/windows/VC8/mesa/glsl_apps_compile/glsl_apps_compile.vcxproj.filters
new file mode 100644
index 000000000..56f3ed290
--- /dev/null
+++ b/mesalib/windows/VC8/mesa/glsl_apps_compile/glsl_apps_compile.vcxproj.filters
@@ -0,0 +1,319 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\src\glsl\ast_expr.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ast_function.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ast_to_hir.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ast_type.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_lexer.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_parser.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_parser_extras.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_symbol_table.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_types.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\hir_field_selection.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_basic_block.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_clone.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_constant_expression.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_expression_flattening.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_function.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_function_can_inline.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_function_detect_recursion.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_hierarchical_visitor.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_hv_accept.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_import_prototypes.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_print_visitor.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_reader.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_rvalue_visitor.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_set_program_inouts.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_validate.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\builtin_variables.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_variable_refcount.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\link_functions.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\link_uniforms.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\linker.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\loop_analysis.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\loop_controls.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\loop_unroll.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_noise.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_variable_index_to_cond_assign.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_redundant_jumps.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ralloc.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\s_expression.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\symbol_table.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\glcpp\pp.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\glcpp\glcpp-lex.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\glcpp\glcpp-parse.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\getopt.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_vec_index_to_swizzle.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_constant_folding.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_structure_splitting.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_constant_variable.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_algebraic.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_if_simplification.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_instructions.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_dead_code_local.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_vec_index_to_cond_assign.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_function_inlining.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_texture_projection.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_dead_functions.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_vector.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\strtod.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_copy_propagation.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_dead_code.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_discard.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_mat_op_to_vec.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_tree_grafting.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\standalone_scaffolding.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_noop_swizzle.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_jumps.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_clip_distance.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_constant_propagation.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_if_to_cond_assign.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_swizzle_swizzle.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_copy_propagation_elements.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_array_splitting.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_builder.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_discard_flow.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\link_uniform_initializers.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_hash_table.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\hash_table.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_packed_varyings.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\link_varyings.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\link_uniform_blocks.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\imports.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\link_uniform_block_active_visitor.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_flatten_nested_if_blocks.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ast_array_index.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_vector_insert.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_flip_matrices.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_named_interface_blocks.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\link_interface_blocks.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\builtin_types.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_dead_builtin_varyings.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\builtin_functions.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_cse.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\link_atomics.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_equals.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\src\glsl\strtod.h">
+ <Filter>Source Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\..\..\src\glsl\glsl_lexer.ll">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="..\..\..\..\src\glsl\glsl_parser.yy">
+ <Filter>Source Files</Filter>
+ </None>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/mesalib/windows/VC8/mesa/makefile b/mesalib/windows/VC8/mesa/makefile
new file mode 100644
index 000000000..c5896231d
--- /dev/null
+++ b/mesalib/windows/VC8/mesa/makefile
@@ -0,0 +1,92 @@
+MHMAKESLNFILE=mesavc10.sln
+BUILDCMD=MSBuild.exe $(MHMAKESLNFILE) /t:Build
+
+ifdef IS64
+TARGETDIR=x64
+else
+TARGETDIR=Win32
+endif
+DBGBUILDCMD=$(BUILDCMD) /p:Configuration=Debug /p:Platform=$(TARGETDIR)
+RELBUILDCMD=$(BUILDCMD) /p:Configuration=Release /p:Platform=$(TARGETDIR)
+
+
+DEPS:=$(wildcard ..\..\..\src\mesa\swrast\*.c) \
+ $(wildcard ..\..\..\src\mesa\swrast\*.h) \
+ $(wildcard ..\..\..\src\mesa\swrast_setup\*.c) \
+ $(wildcard ..\..\..\src\mesa\swrast_setup\*.h) \
+ $(wildcard ..\..\..\src\mesa\main\*.c) \
+ $(wildcard ..\..\..\src\mesa\main\*.h) \
+ $(wildcard ..\..\..\src\mesa\math\*.c) \
+ $(wildcard ..\..\..\src\mesa\math\*.h) \
+ $(wildcard ..\..\..\src\mesa\program\*.c) \
+ $(wildcard ..\..\..\src\mesa\program\*.cpp) \
+ $(wildcard ..\..\..\src\mesa\program\*.h) \
+ $(wildcard ..\..\..\src\mesa\shader\*.c) \
+ $(wildcard ..\..\..\src\mesa\shader\*.h) \
+ $(wildcard ..\..\..\src\mesa\shader\slang\*.c) \
+ $(wildcard ..\..\..\src\mesa\shader\slang\*.h) \
+ $(wildcard ..\..\..\src\mesa\shader\slang\library\*.c) \
+ $(wildcard ..\..\..\src\mesa\shader\slang\library\*.h) \
+ $(wildcard ..\..\..\src\mesa\glapi\*.c) \
+ $(wildcard ..\..\..\src\mesa\glapi\*.h) \
+ $(wildcard ..\..\..\src\mesa\math\*.c) \
+ $(wildcard ..\..\..\src\mesa\math\*.h) \
+ $(wildcard ..\..\..\src\mesa\tnl\*.c) \
+ $(wildcard ..\..\..\src\mesa\tnl\*.h) \
+ $(wildcard ..\..\..\src\mesa\vbo\*.c) \
+ $(wildcard ..\..\..\src\mesa\vbo\*.h) \
+ $(wildcard ..\..\..\src\glsl\glcpp\*.c) \
+ $(wildcard ..\..\..\src\glsl\glcpp\*.h) \
+ $(wildcard ..\..\..\src\glsl\*.c) \
+ $(wildcard ..\..\..\src\glsl\*.h) \
+ $(wildcard ..\..\..\src\glsl\*.cpp) \
+ $(wildcard ..\..\..\src\mesa\drivers\dri\swrast\*.c) \
+ $(wildcard ..\..\..\src\mesa\drivers\dri\swrast\*.h) \
+ $(wildcard ..\..\..\src\mesa\drivers\dri\common\*.c) \
+ $(wildcard ..\..\..\src\mesa\drivers\dri\common\*.h) \
+ $(wildcard ..\..\..\src\mesa\drivers\common\*.c) \
+ $(wildcard ..\..\..\src\mesa\drivers\common\*.h) \
+ ..\..\..\src\mesa\main\dispatch.h \
+ ..\..\..\src\mesa\main\glapitable.h \
+ ..\..\..\src\mesa\main\enums.c \
+ ..\..\..\src\mesa\main\api_exec.c \
+ ..\..\..\src\mesa\main\get_hash.h \
+ ..\..\..\src\mesa\main\remap_helper.h \
+ ..\..\..\src\mesa\drivers\dri\common\xmlpool\options.h
+
+all: $(TARGETDIR)\Release\swrast_dri.dll $(TARGETDIR)\Debug\swrast_dri.dll
+
+..\..\..\src\mesa\drivers\dri\common\xmlpool\options.h: ..\..\..\src\mesa\drivers\dri\common\xmlpool\t_options.h ..\..\..\src\mesa\drivers\dri\common\xmlpool\gen_xmlpool.py
+ cd ..\..\..\src\mesa\drivers\dri\common\xmlpool & python gen_xmlpool.py t_options.h . > options.h
+
+..\..\..\src\mesa\main\dispatch.h: $(wildcard ..\..\..\src\mapi\glapi\gen\*.xml) ..\..\..\src\mapi\glapi\gen\gl_table.py
+ cd ..\..\..\src\mapi\glapi\gen & python gl_table.py -f gl_and_es_API.xml -m remap_table > ..\..\..\mesa\main\dispatch.h
+
+..\..\..\src\mesa\main\glapitable.h: $(wildcard ..\..\..\src\mapi\glapi\gen\*.xml) ..\..\..\src\mapi\glapi\gen\gl_table.py
+ cd ..\..\..\src\mapi\glapi\gen & python gl_table.py -f gl_and_es_API.xml > ..\..\..\mesa\main\glapitable.h
+
+..\..\..\src\mesa\main\enums.c: $(wildcard ..\..\..\src\mapi\glapi\gen\*.xml) ..\..\..\src\mapi\glapi\gen\gl_enums.py
+ cd ..\..\..\src\mapi\glapi\gen & python gl_enums.py -f gl_and_es_API.xml > ..\..\..\mesa\main\enums.c
+
+..\..\..\src\mesa\main\api_exec.c: $(wildcard ..\..\..\src\mapi\glapi\gen\*.xml) ..\..\..\src\mapi\glapi\gen\gl_genexec.py
+ cd ..\..\..\src\mapi\glapi\gen & python gl_genexec.py -f gl_and_es_API.xml > ..\..\..\mesa\main\api_exec.c
+
+GET_HASH_GEN = ..\..\..\src\mesa\main\get_hash_generator.py
+..\..\..\src\mesa\main\get_hash.h: ..\..\..\src\mapi\glapi\gen\gl_and_es_API.xml ..\..\..\src\mesa\main\get_hash_params.py $(GET_HASH_GEN)
+ python $(GET_HASH_GEN) -f $< > $@
+
+REMAP_HELPER = ..\..\..\src\mapi\glapi\gen\remap_helper.py
+..\..\..\src\mesa\main\remap_helper.h: ..\..\..\src\mapi\glapi\gen\gl_and_es_API.xml $(REMAP_HELPER)
+ python $(REMAP_HELPER) -f $< > $@
+
+$(TARGETDIR)\Debug\swrast_dri.dll: $(DEPS)
+ $(DBGBUILDCMD)
+
+$(TARGETDIR)\Release\swrast_dri.dll: $(DEPS)
+ $(RELBUILDCMD)
+
+clean: cleanthis
+
+cleanthis:
+ del -e Debug
+ del -e Release
diff --git a/mesalib/windows/VC8/mesa/mesa/mesa.vcxproj b/mesalib/windows/VC8/mesa/mesa/mesa.vcxproj
new file mode 100644
index 000000000..0a41643c6
--- /dev/null
+++ b/mesalib/windows/VC8/mesa/mesa/mesa.vcxproj
@@ -0,0 +1,497 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{2120C974-2717-4709-B44F-D6E6D0A56448}</ProjectGuid>
+ <RootNamespace>mesa</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <PreBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PreBuildEventUseInBuild>
+ <PreBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</PreBuildEventUseInBuild>
+ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</PreLinkEventUseInBuild>
+ <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</PreLinkEventUseInBuild>
+ <PostBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</PostBuildEventUseInBuild>
+ <PostBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</PostBuildEventUseInBuild>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>../../../../include;../../../../src/mesa;../../../../src/glsl;../../../../src/mapi;../../../../src/mesa/main;../../../../src/mesa/shader;../../../../src/mesa/shader/slang;../../../../../include;../../../../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_LIB;_DLL;_GDI32_;BUILD_GL32;WIN32_THREADS;MESA_MINWARN;_CRT_SECURE_NO_DEPRECATE;INSERVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <ForcedIncludeFiles>../../../../src/mesa/main/compiler.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>../../../../include;../../../../src/mesa;../../../../src/glsl;../../../../src/mapi;../../../../src/mesa/main;../../../../src/mesa/shader;../../../../src/mesa/shader/slang;../../../../../include;../../../../..;../../../../src/gallium/auxiliary;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_LIB;_DLL;_GDI32_;BUILD_GL32;WIN32_THREADS;MESA_MINWARN;_CRT_SECURE_NO_DEPRECATE;INSERVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <ForcedIncludeFiles>../../../../src/mesa/main/compiler.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../include;../../../../src/mesa;../../../../src/glsl;../../../../src/mapi;../../../../src/mesa/main;../../../../src/mesa/shader;../../../../src/mesa/shader/slang;../../../../../include;../../../../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;DEBUG;WIN32;_LIB;_DLL;_GDI32_;BUILD_GL32;WIN32_THREADS;MESA_MINWARN;_CRT_SECURE_NO_DEPRECATE;INSERVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <ForcedIncludeFiles>../../../../src/mesa/main/compiler.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../include;../../../../src/mesa;../../../../src/glsl;../../../../src/mapi;../../../../src/mesa/main;../../../../src/mesa/shader;../../../../src/mesa/shader/slang;../../../../../include;../../../../..;../../../../src/gallium/auxiliary;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;DEBUG;WIN32;_LIB;_DLL;_GDI32_;BUILD_GL32;WIN32_THREADS;MESA_MINWARN;_CRT_SECURE_NO_DEPRECATE;INSERVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <ForcedIncludeFiles>../../../../src/mesa/main/compiler.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\glsl_apps_compile\glsl_apps_compile.vcxproj">
+ <Project>{98ab3d51-1820-4d14-9195-75fca6997784}</Project>
+ <CopyLocalSatelliteAssemblies>true</CopyLocalSatelliteAssemblies>
+ <ReferenceOutputAssembly>true</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\src\glsl\ast_array_index.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ast_expr.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ast_function.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ast_to_hir.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ast_type.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\builtin_functions.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\builtin_types.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\glcpp\glcpp-lex.c" />
+ <ClCompile Include="..\..\..\..\src\glsl\glcpp\glcpp-parse.c" />
+ <ClCompile Include="..\..\..\..\src\glsl\glcpp\pp.c" />
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_lexer.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_parser.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_parser_extras.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_symbol_table.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_types.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\hir_field_selection.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_basic_block.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_builder.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_clone.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_constant_expression.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_equals.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_expression_flattening.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_function.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_function_can_inline.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_function_detect_recursion.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_hierarchical_visitor.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_hv_accept.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_import_prototypes.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_print_visitor.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_reader.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_rvalue_visitor.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_set_program_inouts.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ir_validate.cpp">
+ <ForcedIncludeFiles Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ </ForcedIncludeFiles>
+ <ForcedIncludeFiles Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ </ForcedIncludeFiles>
+ <ForcedIncludeFiles Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ </ForcedIncludeFiles>
+ <ForcedIncludeFiles Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ </ForcedIncludeFiles>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\builtin_variables.cpp">
+ <ForcedIncludeFiles Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ </ForcedIncludeFiles>
+ <ForcedIncludeFiles Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ </ForcedIncludeFiles>
+ <ForcedIncludeFiles Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ </ForcedIncludeFiles>
+ <ForcedIncludeFiles Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ </ForcedIncludeFiles>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_variable_refcount.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\linker.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\link_atomics.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\link_functions.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\link_interface_blocks.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\link_uniforms.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\link_uniform_blocks.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\link_uniform_block_active_visitor.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\link_uniform_initializers.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\link_varyings.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\loop_analysis.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\loop_controls.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\loop_unroll.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_discard.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_discard_flow.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_if_to_cond_assign.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_instructions.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_jumps.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_clip_distance.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_mat_op_to_vec.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_named_interface_blocks.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_noise.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_packed_varyings.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_texture_projection.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_variable_index_to_cond_assign.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_vector.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_vector_insert.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_vec_index_to_cond_assign.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\lower_vec_index_to_swizzle.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_algebraic.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_array_splitting.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_constant_folding.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_constant_propagation.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_constant_variable.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_copy_propagation.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_copy_propagation_elements.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_cse.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_dead_builtin_varyings.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_dead_code.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_dead_code_local.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_dead_functions.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_flatten_nested_if_blocks.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_flip_matrices.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_function_inlining.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_if_simplification.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_noop_swizzle.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_redundant_jumps.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_structure_splitting.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_swizzle_swizzle.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\opt_tree_grafting.cpp" />
+ <ClCompile Include="..\..\..\..\src\glsl\ralloc.c" />
+ <ClCompile Include="..\..\..\..\src\glsl\strtod.c" />
+ <ClCompile Include="..\..\..\..\src\glsl\s_expression.cpp" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\accum.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\api_arrayelt.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\api_exec.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\api_loopback.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\api_validate.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\arbprogram.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\atifragshader.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\drawtex.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\errors.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\es1_conversion.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\formatquery.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\format_pack.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\glformats.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\hash_table.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\objectlabel.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\pack.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\performance_monitor.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\pixeltransfer.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\querymatrix.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\remap.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\set.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\shaderapi.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\shaderobj.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\shader_query.cpp" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\texcompress_cpal.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\texstorage.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\uniform_query.cpp" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\transformfeedback.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\uniforms.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\vdpau.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\arbprogparse.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\arrayobj.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\attrib.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\blend.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\bufferobj.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\buffers.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\ff_fragment_shader.cpp" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\clear.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\clip.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\colortab.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\condrender.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\context.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\convolve.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\cpuinfo.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\debug.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\depth.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\dlist.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\drawpix.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\enable.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\enums.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\eval.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\execmem.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\extensions.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\texturebarrier.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\fbobject.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\feedback.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\ffvertex_prog.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\fog.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\formats.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\format_unpack.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\framebuffer.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\get.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\getstring.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\hash.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\ir_to_mesa.cpp" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_hash_table.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\string_to_uint_map.cpp" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\lex.yy.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\program.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\programopt.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\program_parse.tab.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\program_parse_extra.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_cache.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_execute.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_instruction.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_noise.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_optimize.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_opt_constant_fold.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_parameter.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_parameter_layout.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_print.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_statevars.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\register_allocate.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\sampler.cpp" />
+ <ClCompile Include="..\..\..\..\src\mesa\program\symbol_table.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\hint.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\histogram.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\image.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\imports.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\light.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\lines.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\math\m_eval.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\math\m_matrix.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\math\m_translate.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\math\m_vector.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\math\m_xform.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\matrix.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\mipmap.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\mm.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\multisample.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\pbo.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\pixel.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\pixelstore.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\points.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\polygon.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\queryobj.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\rastpos.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\readpix.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\renderbuffer.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\scissor.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\shared.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\state.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\stencil.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\syncobj.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_context.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_draw.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_pipeline.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_rasterpos.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vb_fog.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vb_light.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vb_normals.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vb_points.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vb_program.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vb_render.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vb_texgen.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vb_texmat.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vb_vertex.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vertex.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vertex_generic.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vp_build.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\texcompress.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\texcompress_fxt1.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\texcompress_rgtc.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\texcompress_s3tc.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\texcompress_etc.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\texenv.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\samplerobj.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\texformat.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\texgen.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\texgetimage.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\teximage.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\texobj.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\texparam.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\texstate.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\texstore.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\varray.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_noop.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_context.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_exec.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_exec_api.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_exec_array.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_exec_draw.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_exec_eval.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_primitive_restart.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_rebase.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_save.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_save_api.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_save_draw.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_save_loopback.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_split.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_split_copy.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_split_inplace.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\version.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\viewport.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\main\vtxfmt.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\src\glsl\strtod.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\..\..\src\mesa\program\program_lexer.l">
+ <FileType>Document</FileType>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\..\src\mesa\program\doflexbison.bat</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\..\src\mesa\program\doflexbison.bat</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\..\src\mesa\program\lex.yy.c;..\..\..\..\src\mesa\program\program_parse.tab.c;..\..\..\..\src\mesa\program\program_parse.tab.h;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\..\src\mesa\program\lex.yy.c;..\..\..\..\src\mesa\program\program_parse.tab.c;..\..\..\..\src\mesa\program\program_parse.tab.h;%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\..\src\mesa\program\doflexbison.bat</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\..\src\mesa\program\doflexbison.bat</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\..\src\mesa\program\lex.yy.c;..\..\..\..\src\mesa\program\program_parse.tab.c;..\..\..\..\src\mesa\program\program_parse.tab.h;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\..\src\mesa\program\lex.yy.c;..\..\..\..\src\mesa\program\program_parse.tab.c;..\..\..\..\src\mesa\program\program_parse.tab.h;%(Outputs)</Outputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\..\src\mesa\program\program_parse.y;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\..\src\mesa\program\program_parse.y;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\..\src\mesa\program\program_parse.y;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\..\src\mesa\program\program_parse.y;%(AdditionalInputs)</AdditionalInputs>
+ </CustomBuild>
+ <None Include="..\..\..\..\src\mesa\program\program_parse.y">
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\..\src\mesa\program\dobison.bat</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\..\src\mesa\program\dobison.bat</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\..\src\mesa\program\program_parse.tab.c;..\..\..\..\src\mesa\program\program_parse.tab.h;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\..\src\mesa\program\program_parse.tab.c;..\..\..\..\src\mesa\program\program_parse.tab.h;%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\..\src\mesa\program\dobison.bat</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\..\src\mesa\program\dobison.bat</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\..\src\mesa\program\program_parse.tab.c;..\..\..\..\src\mesa\program\program_parse.tab.h;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\..\src\mesa\program\program_parse.tab.c;..\..\..\..\src\mesa\program\program_parse.tab.h;%(Outputs)</Outputs>
+ <FileType>Document</FileType>
+ </None>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/mesalib/windows/VC8/mesa/mesa/mesa.vcxproj.filters b/mesalib/windows/VC8/mesa/mesa/mesa.vcxproj.filters
new file mode 100644
index 000000000..db2776af9
--- /dev/null
+++ b/mesalib/windows/VC8/mesa/mesa/mesa.vcxproj.filters
@@ -0,0 +1,789 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{8411a2f0-9621-4bb9-9aec-30713df37794}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{82940400-de84-4aa3-8c90-a68fc32ae059}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\src\mesa\main\api_arrayelt.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\api_exec.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\api_loopback.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\api_validate.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\arrayobj.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\attrib.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\blend.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\bufferobj.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\ff_fragment_shader.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\buffers.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\clear.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\clip.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\colortab.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\condrender.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\context.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\convolve.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\cpuinfo.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\debug.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\depth.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\dlist.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\drawpix.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\enable.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\enums.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\eval.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\execmem.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\extensions.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\texturebarrier.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\fbobject.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\feedback.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\ffvertex_prog.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\fog.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\formats.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\format_unpack.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\framebuffer.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\get.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\getstring.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\hash.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\hint.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\histogram.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\image.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\imports.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\light.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\lines.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\math\m_eval.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\math\m_matrix.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\math\m_translate.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\math\m_vector.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\math\m_xform.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\matrix.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\mipmap.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\mm.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\multisample.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\pixel.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\pixelstore.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\points.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\polygon.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\queryobj.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\rastpos.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\readpix.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\renderbuffer.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\scissor.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\shared.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\state.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\stencil.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\syncobj.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_context.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_draw.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_pipeline.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_rasterpos.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vb_fog.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vb_light.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vb_normals.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vb_points.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vb_program.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vb_render.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vb_texgen.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vb_texmat.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vb_vertex.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vertex.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vertex_generic.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\tnl\t_vp_build.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\texcompress.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\texcompress_fxt1.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\texcompress_s3tc.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\texcompress_etc.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\texenv.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\samplerobj.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\texformat.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\texgen.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\texgetimage.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\teximage.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\texobj.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\texparam.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\texstate.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\texstore.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\varray.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_noop.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_context.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_exec.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_exec_api.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_exec_array.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_exec_draw.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_exec_eval.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_rebase.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_save.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_save_api.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_save_draw.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_save_loopback.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_split.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_split_copy.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_split_inplace.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\version.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\viewport.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\vtxfmt.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\arbprogparse.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\arbprogram.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\atifragshader.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\symbol_table.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\programopt.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\program.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\program_parse_extra.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_cache.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_execute.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_instruction.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_noise.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_optimize.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_opt_constant_fold.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_parameter.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_parameter_layout.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_print.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_statevars.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\lex.yy.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\program_parse.tab.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\transformfeedback.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\shaderobj.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\shader_query.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\uniform_query.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\shaderapi.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\accum.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\querymatrix.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\uniforms.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\ir_to_mesa.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\string_to_uint_map.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ralloc.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_variable_index_to_cond_assign.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_hierarchical_visitor.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_types.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\builtin_variables.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_function.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_function_can_inline.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_function_detect_recursion.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_rvalue_visitor.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_hv_accept.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_symbol_table.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_constant_expression.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_clone.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\linker.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_parser_extras.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_variable_refcount.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_basic_block.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\loop_analysis.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\loop_controls.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_expression_flattening.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_import_prototypes.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\link_functions.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\link_uniforms.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\loop_unroll.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_redundant_jumps.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ast_to_hir.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ast_expr.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\hir_field_selection.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_lexer.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ast_type.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\glcpp\pp.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\glcpp\glcpp-parse.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\glcpp\glcpp-lex.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_reader.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\glsl_parser.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_print_visitor.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_validate.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_set_program_inouts.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_noise.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ast_function.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\s_expression.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\pack.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\pixeltransfer.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\register_allocate.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_vec_index_to_swizzle.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_constant_folding.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_structure_splitting.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_constant_variable.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_algebraic.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_if_simplification.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_instructions.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_dead_code_local.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_vec_index_to_cond_assign.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_function_inlining.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_texture_projection.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_dead_functions.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_vector.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\strtod.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_copy_propagation.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_dead_code.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_discard.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_mat_op_to_vec.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_tree_grafting.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_noop_swizzle.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_jumps.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_clip_distance.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_constant_propagation.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_if_to_cond_assign.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_swizzle_swizzle.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\sampler.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_copy_propagation_elements.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\pbo.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\texcompress_rgtc.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\texstorage.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\format_pack.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\errors.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_array_splitting.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_builder.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_discard_flow.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\vbo\vbo_primitive_restart.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\link_uniform_initializers.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\glformats.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\texcompress_cpal.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\es1_conversion.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\drawtex.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\hash_table.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\program\prog_hash_table.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\set.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_packed_varyings.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\link_varyings.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\formatquery.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\link_uniform_blocks.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\link_uniform_block_active_visitor.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_flatten_nested_if_blocks.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\remap.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_vector_insert.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\lower_named_interface_blocks.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\link_interface_blocks.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_flip_matrices.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ast_array_index.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\builtin_types.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_dead_builtin_varyings.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\objectlabel.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\builtin_functions.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\performance_monitor.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\main\vdpau.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\opt_cse.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\link_atomics.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\glsl\ir_equals.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\src\glsl\strtod.h">
+ <Filter>Source Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\..\..\src\mesa\program\program_lexer.l">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="..\..\..\..\src\mesa\program\program_parse.y">
+ <Filter>Source Files</Filter>
+ </None>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/mesalib/windows/VC8/mesa/mesavc10.sln b/mesalib/windows/VC8/mesa/mesavc10.sln
new file mode 100644
index 000000000..ab63a128a
--- /dev/null
+++ b/mesalib/windows/VC8/mesa/mesavc10.sln
@@ -0,0 +1,45 @@
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mesa", "mesa\mesa.vcxproj", "{2120C974-2717-4709-B44F-D6E6D0A56448}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glsl_apps_compile", "glsl_apps_compile\glsl_apps_compile.vcxproj", "{98AB3D51-1820-4D14-9195-75FCA6997784}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "swrast_dri", "swrast_dri\swrast_dri.vcxproj", "{FEF62E6F-A7E0-47BE-99A0-2494717DBDB7}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {2120C974-2717-4709-B44F-D6E6D0A56448}.Debug|Win32.ActiveCfg = Debug|Win32
+ {2120C974-2717-4709-B44F-D6E6D0A56448}.Debug|Win32.Build.0 = Debug|Win32
+ {2120C974-2717-4709-B44F-D6E6D0A56448}.Debug|x64.ActiveCfg = Debug|x64
+ {2120C974-2717-4709-B44F-D6E6D0A56448}.Debug|x64.Build.0 = Debug|x64
+ {2120C974-2717-4709-B44F-D6E6D0A56448}.Release|Win32.ActiveCfg = Release|Win32
+ {2120C974-2717-4709-B44F-D6E6D0A56448}.Release|Win32.Build.0 = Release|Win32
+ {2120C974-2717-4709-B44F-D6E6D0A56448}.Release|x64.ActiveCfg = Release|x64
+ {2120C974-2717-4709-B44F-D6E6D0A56448}.Release|x64.Build.0 = Release|x64
+ {98AB3D51-1820-4D14-9195-75FCA6997784}.Debug|Win32.ActiveCfg = Debug|Win32
+ {98AB3D51-1820-4D14-9195-75FCA6997784}.Debug|Win32.Build.0 = Debug|Win32
+ {98AB3D51-1820-4D14-9195-75FCA6997784}.Debug|x64.ActiveCfg = Debug|x64
+ {98AB3D51-1820-4D14-9195-75FCA6997784}.Debug|x64.Build.0 = Debug|x64
+ {98AB3D51-1820-4D14-9195-75FCA6997784}.Release|Win32.ActiveCfg = Release|Win32
+ {98AB3D51-1820-4D14-9195-75FCA6997784}.Release|Win32.Build.0 = Release|Win32
+ {98AB3D51-1820-4D14-9195-75FCA6997784}.Release|x64.ActiveCfg = Release|x64
+ {98AB3D51-1820-4D14-9195-75FCA6997784}.Release|x64.Build.0 = Release|x64
+ {FEF62E6F-A7E0-47BE-99A0-2494717DBDB7}.Debug|Win32.ActiveCfg = Debug|Win32
+ {FEF62E6F-A7E0-47BE-99A0-2494717DBDB7}.Debug|Win32.Build.0 = Debug|Win32
+ {FEF62E6F-A7E0-47BE-99A0-2494717DBDB7}.Debug|x64.ActiveCfg = Debug|x64
+ {FEF62E6F-A7E0-47BE-99A0-2494717DBDB7}.Debug|x64.Build.0 = Debug|x64
+ {FEF62E6F-A7E0-47BE-99A0-2494717DBDB7}.Release|Win32.ActiveCfg = Release|Win32
+ {FEF62E6F-A7E0-47BE-99A0-2494717DBDB7}.Release|Win32.Build.0 = Release|Win32
+ {FEF62E6F-A7E0-47BE-99A0-2494717DBDB7}.Release|x64.ActiveCfg = Release|x64
+ {FEF62E6F-A7E0-47BE-99A0-2494717DBDB7}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/mesalib/windows/VC8/mesa/swrast_dri/swrast_dri.vcxproj b/mesalib/windows/VC8/mesa/swrast_dri/swrast_dri.vcxproj
new file mode 100644
index 000000000..47d154794
--- /dev/null
+++ b/mesalib/windows/VC8/mesa/swrast_dri/swrast_dri.vcxproj
@@ -0,0 +1,294 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{FEF62E6F-A7E0-47BE-99A0-2494717DBDB7}</ProjectGuid>
+ <RootNamespace>swrast_dri</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC70.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Platform)\$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Platform)\$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>.\Debug/swrast_dri.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../include;../../../../src/mesa;../../../../src/glsl;../../../../src/mapi;../../../../src/mesa/main;../../../../src/mesa/shader;../../../../src/mesa/shader/slang;../../../../../include;../../../../src/mesa/drivers/dri/common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;DEBUG;WIN32;_DLL;SWRAST_DRI_EXPORTS;_GDI32_;BUILD_GL32;WIN32_THREADS;MESA_MINWARN;_CRT_SECURE_NO_DEPRECATE;INSERVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>Default</CompileAs>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>gdi32.lib;user32.lib;vcxsrv.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)swrast_dri.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <AdditionalLibraryDirectories>$(TargetDir);..\..\..\..\..\xorg-server\obj\servdebug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(TargetDir)swrast_dri.pdb</ProgramDatabaseFile>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TypeLibraryName>.\Debug/swrast_dri.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../include;../../../../src/mesa;../../../../src/glsl;../../../../src/mapi;../../../../src/mesa/main;../../../../src/mesa/shader;../../../../src/mesa/shader/slang;../../../../../include;../../../../src/mesa/drivers/dri/common;../../../../../expat/lib;../../../../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;DEBUG;WIN32;_DLL;SWRAST_DRI_EXPORTS;_GDI32_;BUILD_GL32;WIN32_THREADS;MESA_MINWARN;_CRT_SECURE_NO_DEPRECATE;INSERVER;__NOT_HAVE_DRM_H;XML_STATIC;COMPILED_FROM_DSP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>Default</CompileAs>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>gdi32.lib;user32.lib;vcxsrv.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)swrast_dri.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <AdditionalLibraryDirectories>$(TargetDir);..\..\..\..\..\xorg-server\obj64\servdebug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(TargetDir)swrast_dri.pdb</ProgramDatabaseFile>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>.\Release/swrast_dri.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>../../../../include;../../../../src/mesa;../../../../src/glsl;../../../../src/mapi;../../../../src/mesa/main;../../../../src/mesa/shader;../../../../src/mesa/shader/slang;../../../../../include;../../../../src/mesa/drivers/dri/common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_DLL;SWRAST_DRI_EXPORTS;_GDI32_;BUILD_GL32;WIN32_THREADS;MESA_MINWARN;_CRT_SECURE_NO_DEPRECATE;INSERVER;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <PrecompiledHeaderOutputFile>.\Release/swrast_dri.pch</PrecompiledHeaderOutputFile>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <CompileAs>Default</CompileAs>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>gdi32.lib;user32.lib;vcxsrv.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)swrast_dri.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <AdditionalLibraryDirectories>$(TargetDir);..\..\..\..\..\xorg-server\obj\servrelease;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ProgramDatabaseFile>$(TargetDir)swrast_dri.pdb</ProgramDatabaseFile>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TypeLibraryName>.\Release/swrast_dri.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>../../../../include;../../../../src/mesa;../../../../src/glsl;../../../../src/mapi;../../../../src/mesa/main;../../../../src/mesa/shader;../../../../src/mesa/shader/slang;../../../../../include;../../../../src/mesa/drivers/dri/common;../../../../../expat/lib;../../../../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_DLL;SWRAST_DRI_EXPORTS;_GDI32_;BUILD_GL32;WIN32_THREADS;MESA_MINWARN;_CRT_SECURE_NO_DEPRECATE;INSERVER;__NOT_HAVE_DRM_H;XML_STATIC;COMPILED_FROM_DSP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <PrecompiledHeaderOutputFile>.\Release/swrast_dri.pch</PrecompiledHeaderOutputFile>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <CompileAs>Default</CompileAs>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>gdi32.lib;user32.lib;vcxsrv.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)swrast_dri.dll</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <AdditionalLibraryDirectories>$(TargetDir);..\..\..\..\..\xorg-server\obj64\servrelease;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ProgramDatabaseFile>$(TargetDir)swrast_dri.pdb</ProgramDatabaseFile>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\..\expat\lib\xmlparse.c" />
+ <ClCompile Include="..\..\..\..\..\expat\lib\xmlrole.c" />
+ <ClCompile Include="..\..\..\..\..\expat\lib\xmltok.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\drivers\common\driverfuncs.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\drivers\common\meta.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\drivers\dri\common\dri_util.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\drivers\dri\common\megadriver_stub.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\drivers\dri\common\xmlconfig.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\drivers\dri\swrast\swrast.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\drivers\dri\common\utils.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_aaline.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_aatriangle.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_alpha.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_atifragshader.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_bitmap.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_blend.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_blit.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_clear.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_context.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_copypix.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_depth.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_drawpix.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_feedback.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_fog.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_fragprog.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_lines.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_logic.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_masking.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_points.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_renderbuffer.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_span.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_stencil.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_texcombine.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_texrender.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_texfetch.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_texfilter.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_texture.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_triangle.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_zoom.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast_setup\ss_context.c" />
+ <ClCompile Include="..\..\..\..\src\mesa\swrast_setup\ss_triangle.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\src\mesa\drivers\dri\swrast\swrast_priv.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\mesa\mesa.vcxproj">
+ <Project>{2120c974-2717-4709-b44f-d6e6d0a56448}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/mesalib/windows/VC8/mesa/swrast_dri/swrast_dri.vcxproj.filters b/mesalib/windows/VC8/mesa/swrast_dri/swrast_dri.vcxproj.filters
new file mode 100644
index 000000000..f8f5c991e
--- /dev/null
+++ b/mesalib/windows/VC8/mesa/swrast_dri/swrast_dri.vcxproj.filters
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{3f55ce52-2780-4f28-bb1f-06759ea15ba4}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{b64ef3e4-df7d-40b7-8ecd-4805cbbdc8b8}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{aaf2266b-a56e-474d-926c-d8a91f25992f}</UniqueIdentifier>
+ <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\src\mesa\drivers\common\driverfuncs.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\drivers\common\meta.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\drivers\dri\swrast\swrast.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\drivers\dri\common\utils.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast_setup\ss_context.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_context.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_lines.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_bitmap.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_clear.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_copypix.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_drawpix.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_zoom.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast_setup\ss_triangle.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_masking.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_aaline.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_points.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_feedback.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_triangle.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_depth.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_texfilter.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_texture.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_aatriangle.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_alpha.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_atifragshader.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_blend.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_blit.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_fog.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_fragprog.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_logic.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_span.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_stencil.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_texcombine.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_texfetch.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_texrender.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\swrast\s_renderbuffer.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\drivers\dri\common\dri_util.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\drivers\dri\common\xmlconfig.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\..\expat\lib\xmlparse.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\..\expat\lib\xmltok.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\..\expat\lib\xmlrole.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\src\mesa\drivers\dri\common\megadriver_stub.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\src\mesa\drivers\dri\swrast\swrast_priv.h">
+ <Filter>Source Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/mkfontscale/hash.h b/mkfontscale/hash.h
index 9aa94a6cb..df0feeb71 100644
--- a/mkfontscale/hash.h
+++ b/mkfontscale/hash.h
@@ -23,6 +23,10 @@
#ifndef _MKS_HASH_H_
#define _MKS_HASH_H_ 1
+#ifdef _MSC_VER
+#define strcasecmp _stricmp
+#endif
+
typedef struct _HashBucket {
char *key;
char *value;
diff --git a/mkfontscale/makefile b/mkfontscale/makefile
new file mode 100644
index 000000000..8373534e0
--- /dev/null
+++ b/mkfontscale/makefile
@@ -0,0 +1,23 @@
+TTYAPP = mkfontscale
+
+DEFINES += _BSD_SOURCE
+
+INCLUDES += $(MHMAKECONF)\freetype\include
+
+INCLUDELIBFILES = \
+ $(MHMAKECONF)\zlib\$(OBJDIR)\zlib1.lib \
+ $(MHMAKECONF)\libXfont\src\fontfile\$(OBJDIR)\libfontfile.lib \
+ $(MHMAKECONF)\libXfont\src\util\$(OBJDIR)\libutil.lib \
+ $(MHMAKECONF)\libfontenc\src\$(OBJDIR)\libfontenc.lib
+
+LIBDIRS=$(dir $(INCLUDELIBFILES))
+
+load_makefile $(LIBDIRS:%$(OBJDIR)\=%makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+CSRCS = hash.c \
+ ident.c \
+ list.c \
+ mkfontscale.c
+
+LINKLIBS += $(FREETYPELIB)
+
diff --git a/mkfontscale/mkfontscale.c b/mkfontscale/mkfontscale.c
index a67f28338..e605cf9bd 100644
--- a/mkfontscale/mkfontscale.c
+++ b/mkfontscale/mkfontscale.c
@@ -851,10 +851,12 @@ doDirectory(const char *dirname_given, int numEncodings, ListPtr encodingsToDo)
#endif
#ifdef S_ISLNK
{
+#ifndef WIN32
if (lstat(filename, &f_stat))
goto done;
if (S_ISLNK(f_stat.st_mode))
tprio = 0;
+#endif
}
#else
;
diff --git a/openssl/.gitignore b/openssl/.gitignore
new file mode 100644
index 000000000..b9ac127b1
--- /dev/null
+++ b/openssl/.gitignore
@@ -0,0 +1,11 @@
+MINFO
+Makefile
+inc32
+out32_d
+tmp32
+tmp32_d
+NUL
+out64
+out64_d
+tmp64
+tmp64_d
diff --git a/openssl/Configure b/openssl/Configure
index 9c803dc06..9677b3543 100644
--- a/openssl/Configure
+++ b/openssl/Configure
@@ -518,15 +518,15 @@ my %table=(
# Visual C targets
#
# Win64 targets, WIN64I denotes IA-64 and WIN64A - AMD64
-"VC-WIN64I","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o ia64-mont.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ghash-ia64.o::ias:win32",
-"VC-WIN64A","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:".eval{my $asm=$x86_64_asm;$asm=~s/x86_64-gcc\.o/bn_asm.o/;$asm}.":auto:win32",
-"debug-VC-WIN64I","cl:-W3 -Gs0 -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ghash-ia64.o::ias:win32",
-"debug-VC-WIN64A","cl:-W3 -Gs0 -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:".eval{my $asm=$x86_64_asm;$asm=~s/x86_64-gcc\.o/bn_asm.o/;$asm}.":auto:win32",
+"VC-WIN64I","cl:-W3 -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o ia64-mont.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ghash-ia64.o::ias:win32",
+"VC-WIN64A","cl:-W3 -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:".eval{my $asm=$x86_64_asm;$asm=~s/x86_64-gcc\.o/bn_asm.o/;$asm}.":auto:win32",
+"debug-VC-WIN64I","cl:-W3 -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ghash-ia64.o::ias:win32",
+"debug-VC-WIN64A","cl:-W3 -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:".eval{my $asm=$x86_64_asm;$asm=~s/x86_64-gcc\.o/bn_asm.o/;$asm}.":auto:win32",
# x86 Win32 target defaults to ANSI API, if you want UNICODE, complement
# 'perl Configure VC-WIN32' with '-DUNICODE -D_UNICODE'
-"VC-WIN32","cl:-W3 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32",
+"VC-WIN32","cl:-W3 -GF -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32",
# Unified CE target
-"debug-VC-WIN32","cl:-W3 -WX -Gs0 -GF -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32",
+"debug-VC-WIN32","cl:-W3 -GF -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE:::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${x86_asm}:win32n:win32",
"VC-CE","cl::::WINCE::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}:${no_asm}:win32",
# Borland C++ 4.5
@@ -1792,7 +1792,7 @@ print OUT "#ifdef OPENSSL_ALGORITHM_DEFINES\n";
print OUT $openssl_algorithm_defines_trans;
print OUT "#endif\n\n";
-print OUT "#define OPENSSL_CPUID_OBJ\n\n" if ($cpuid_obj ne "mem_clr.o");
+print OUT "#ifndef OPENSSL_CPUID_OBJ\n#define OPENSSL_CPUID_OBJ\n#endif\n\n" if ($cpuid_obj ne "mem_clr.o");
while (<IN>)
{
diff --git a/openssl/Makefile b/openssl/Makefile
deleted file mode 100644
index 54e354161..000000000
--- a/openssl/Makefile
+++ /dev/null
@@ -1,685 +0,0 @@
-### Generated automatically from Makefile.org by Configure.
-
-##
-## Makefile for OpenSSL
-##
-
-VERSION=1.0.1e
-MAJOR=1
-MINOR=0.1
-SHLIB_VERSION_NUMBER=1.0.0
-SHLIB_VERSION_HISTORY=
-SHLIB_MAJOR=1
-SHLIB_MINOR=0.0
-SHLIB_EXT=
-PLATFORM=dist
-OPTIONS= no-ec_nistp_64_gcc_128 no-gmp no-jpake no-krb5 no-md2 no-rc5 no-rfc3779 no-sctp no-shared no-store no-zlib no-zlib-dynamic static-engine
-CONFIGURE_ARGS=dist
-SHLIB_TARGET=
-
-# HERE indicates where this Makefile lives. This can be used to indicate
-# where sub-Makefiles are expected to be. Currently has very limited usage,
-# and should probably not be bothered with at all.
-HERE=.
-
-# INSTALL_PREFIX is for package builders so that they can configure
-# for, say, /usr/ and yet have everything installed to /tmp/somedir/usr/.
-# Normally it is left empty.
-INSTALL_PREFIX=
-INSTALLTOP=/usr/local/ssl
-
-# Do not edit this manually. Use Configure --openssldir=DIR do change this!
-OPENSSLDIR=/usr/local/ssl
-
-# NO_IDEA - Define to build without the IDEA algorithm
-# NO_RC4 - Define to build without the RC4 algorithm
-# NO_RC2 - Define to build without the RC2 algorithm
-# THREADS - Define when building with threads, you will probably also need any
-# system defines as well, i.e. _REENTERANT for Solaris 2.[34]
-# TERMIO - Define the termio terminal subsystem, needed if sgtty is missing.
-# TERMIOS - Define the termios terminal subsystem, Silicon Graphics.
-# LONGCRYPT - Define to use HPUX 10.x's long password modification to crypt(3).
-# DEVRANDOM - Give this the value of the 'random device' if your OS supports
-# one. 32 bytes will be read from this when the random
-# number generator is initalised.
-# SSL_FORBID_ENULL - define if you want the server to be not able to use the
-# NULL encryption ciphers.
-#
-# LOCK_DEBUG - turns on lots of lock debug output :-)
-# REF_CHECK - turn on some xyz_free() assertions.
-# REF_PRINT - prints some stuff on structure free.
-# CRYPTO_MDEBUG - turns on my 'memory leak' detecting stuff
-# MFUNC - Make all Malloc/Free/Realloc calls call
-# CRYPTO_malloc/CRYPTO_free/CRYPTO_realloc which can be setup to
-# call application defined callbacks via CRYPTO_set_mem_functions()
-# MD5_ASM needs to be defined to use the x86 assembler for MD5
-# SHA1_ASM needs to be defined to use the x86 assembler for SHA1
-# RMD160_ASM needs to be defined to use the x86 assembler for RIPEMD160
-# Do not define B_ENDIAN or L_ENDIAN if 'unsigned long' == 8. It must
-# equal 4.
-# PKCS1_CHECK - pkcs1 tests.
-
-CC= cc
-CFLAG= -O
-DEPFLAG= -DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_STORE
-PEX_LIBS=
-EX_LIBS=
-EXE_EXT=
-ARFLAGS=
-AR= ar $(ARFLAGS) r
-RANLIB= /usr/bin/ranlib
-NM= nm
-PERL= /usr/bin/perl
-TAR= tar
-TARFLAGS= --no-recursion --record-size=10240
-MAKEDEPPROG=makedepend
-LIBDIR=lib
-
-# We let the C compiler driver to take care of .s files. This is done in
-# order to be excused from maintaining a separate set of architecture
-# dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC
-# gcc, then the driver will automatically translate it to -xarch=v8plus
-# and pass it down to assembler.
-AS=$(CC) -c
-ASFLAG=$(CFLAG)
-
-# For x86 assembler: Set PROCESSOR to 386 if you want to support
-# the 80386.
-PROCESSOR=
-
-# CPUID module collects small commonly used assembler snippets
-CPUID_OBJ= mem_clr.o
-BN_ASM= bn_asm.o
-DES_ENC= des_enc.o fcrypt_b.o
-AES_ENC= aes_core.o aes_cbc.o
-BF_ENC= bf_enc.o
-CAST_ENC= c_enc.o
-RC4_ENC= rc4_enc.o rc4_skey.o
-RC5_ENC= rc5_enc.o
-MD5_ASM_OBJ=
-SHA1_ASM_OBJ=
-RMD160_ASM_OBJ=
-WP_ASM_OBJ= wp_block.o
-CMLL_ENC= camellia.o cmll_misc.o cmll_cbc.o
-MODES_ASM_OBJ=
-ENGINES_ASM_OBJ=
-PERLASM_SCHEME=
-
-# KRB5 stuff
-KRB5_INCLUDES=
-LIBKRB5=
-
-# Zlib stuff
-ZLIB_INCLUDE=
-LIBZLIB=
-
-# TOP level FIPS install directory.
-FIPSDIR=/usr/local/ssl/fips-2.0
-
-# This is the location of fipscanister.o and friends.
-# The FIPS module build will place it $(INSTALLTOP)/lib
-# but since $(INSTALLTOP) can only take the default value
-# when the module is built it will be in /usr/local/ssl/lib
-# $(INSTALLTOP) for this build may be different so hard
-# code the path.
-
-FIPSLIBDIR=
-
-# The location of the library which contains fipscanister.o
-# normally it will be libcrypto unless fipsdso is set in which
-# case it will be libfips. If not compiling in FIPS mode at all
-# this is empty making it a useful test for a FIPS compile.
-
-FIPSCANLIB=
-
-# Shared library base address. Currently only used on Windows.
-#
-
-BASEADDR=0xFB00000
-
-DIRS= crypto ssl engines apps test tools
-ENGDIRS= ccgost
-SHLIBDIRS= crypto ssl
-
-# dirs in crypto to build
-SDIRS= \
- objects \
- md4 md5 sha mdc2 hmac ripemd whrlpool \
- des aes rc2 rc4 idea bf cast camellia seed modes \
- bn ec rsa dsa ecdsa dh ecdh dso engine \
- buffer bio stack lhash rand err \
- evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 \
- cms pqueue ts srp cmac
-# keep in mind that the above list is adjusted by ./Configure
-# according to no-xxx arguments...
-
-# tests to perform. "alltests" is a special word indicating that all tests
-# should be performed.
-TESTS = alltests
-
-MAKEFILE= Makefile
-
-MANDIR=$(OPENSSLDIR)/man
-MAN1=1
-MAN3=3
-MANSUFFIX=
-HTMLSUFFIX=html
-HTMLDIR=$(OPENSSLDIR)/html
-SHELL=/bin/sh
-
-TOP= .
-ONEDIRS=out tmp
-EDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep VMS
-WDIRS= windows
-LIBS= libcrypto.a libssl.a
-SHARED_CRYPTO=libcrypto$(SHLIB_EXT)
-SHARED_SSL=libssl$(SHLIB_EXT)
-SHARED_LIBS=
-SHARED_LIBS_LINK_EXTS=
-SHARED_LDFLAGS=
-
-GENERAL= Makefile
-BASENAME= openssl
-NAME= $(BASENAME)-$(VERSION)
-TARFILE= $(NAME).tar
-WTARFILE= $(NAME)-win.tar
-EXHEADER= e_os2.h
-HEADER= e_os.h
-
-all: Makefile build_all openssl.pc libssl.pc libcrypto.pc
-
-# as we stick to -e, CLEARENV ensures that local variables in lower
-# Makefiles remain local and variable. $${VAR+VAR} is tribute to Korn
-# shell, which [annoyingly enough] terminates unset with error if VAR
-# is not present:-( TOP= && unset TOP is tribute to HP-UX /bin/sh,
-# which terminates unset with error if no variable was present:-(
-CLEARENV= TOP= && unset TOP $${LIB+LIB} $${LIBS+LIBS} \
- $${INCLUDE+INCLUDE} $${INCLUDES+INCLUDES} \
- $${DIR+DIR} $${DIRS+DIRS} $${SRC+SRC} \
- $${LIBSRC+LIBSRC} $${LIBOBJ+LIBOBJ} $${ALL+ALL} \
- $${EXHEADER+EXHEADER} $${HEADER+HEADER} \
- $${GENERAL+GENERAL} $${CFLAGS+CFLAGS} \
- $${ASFLAGS+ASFLAGS} $${AFLAGS+AFLAGS} \
- $${LDCMD+LDCMD} $${LDFLAGS+LDFLAGS} $${SCRIPTS+SCRIPTS} \
- $${SHAREDCMD+SHAREDCMD} $${SHAREDFLAGS+SHAREDFLAGS} \
- $${SHARED_LIB+SHARED_LIB} $${LIBEXTRAS+LIBEXTRAS}
-
-BUILDENV= PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)' \
- CC='$(CC)' CFLAG='$(CFLAG)' \
- AS='$(CC)' ASFLAG='$(CFLAG) -c' \
- AR='$(AR)' NM='$(NM)' RANLIB='$(RANLIB)' \
- CROSS_COMPILE='$(CROSS_COMPILE)' \
- PERL='$(PERL)' ENGDIRS='$(ENGDIRS)' \
- SDIRS='$(SDIRS)' LIBRPATH='$(INSTALLTOP)/$(LIBDIR)' \
- INSTALL_PREFIX='$(INSTALL_PREFIX)' \
- INSTALLTOP='$(INSTALLTOP)' OPENSSLDIR='$(OPENSSLDIR)' \
- LIBDIR='$(LIBDIR)' \
- MAKEDEPEND='$$$${TOP}/util/domd $$$${TOP} -MD $(MAKEDEPPROG)' \
- DEPFLAG='-DOPENSSL_NO_DEPRECATED $(DEPFLAG)' \
- MAKEDEPPROG='$(MAKEDEPPROG)' \
- SHARED_LDFLAGS='$(SHARED_LDFLAGS)' \
- KRB5_INCLUDES='$(KRB5_INCLUDES)' LIBKRB5='$(LIBKRB5)' \
- ZLIB_INCLUDE='$(ZLIB_INCLUDE)' LIBZLIB='$(LIBZLIB)' \
- EXE_EXT='$(EXE_EXT)' SHARED_LIBS='$(SHARED_LIBS)' \
- SHLIB_EXT='$(SHLIB_EXT)' SHLIB_TARGET='$(SHLIB_TARGET)' \
- PEX_LIBS='$(PEX_LIBS)' EX_LIBS='$(EX_LIBS)' \
- CPUID_OBJ='$(CPUID_OBJ)' \
- BN_ASM='$(BN_ASM)' DES_ENC='$(DES_ENC)' \
- AES_ENC='$(AES_ENC)' CMLL_ENC='$(CMLL_ENC)' \
- BF_ENC='$(BF_ENC)' CAST_ENC='$(CAST_ENC)' \
- RC4_ENC='$(RC4_ENC)' RC5_ENC='$(RC5_ENC)' \
- SHA1_ASM_OBJ='$(SHA1_ASM_OBJ)' \
- MD5_ASM_OBJ='$(MD5_ASM_OBJ)' \
- RMD160_ASM_OBJ='$(RMD160_ASM_OBJ)' \
- WP_ASM_OBJ='$(WP_ASM_OBJ)' \
- MODES_ASM_OBJ='$(MODES_ASM_OBJ)' \
- ENGINES_ASM_OBJ='$(ENGINES_ASM_OBJ)' \
- PERLASM_SCHEME='$(PERLASM_SCHEME)' \
- FIPSLIBDIR='${FIPSLIBDIR}' \
- FIPSDIR='${FIPSDIR}' \
- FIPSCANLIB="$${FIPSCANLIB:-$(FIPSCANLIB)}" \
- THIS=$${THIS:-$@} MAKEFILE=Makefile MAKEOVERRIDES=
-# MAKEOVERRIDES= effectively "equalizes" GNU-ish and SysV-ish make flavors,
-# which in turn eliminates ambiguities in variable treatment with -e.
-
-# BUILD_CMD is a generic macro to build a given target in a given
-# subdirectory. The target must be given through the shell variable
-# `target' and the subdirectory to build in must be given through `dir'.
-# This macro shouldn't be used directly, use RECURSIVE_BUILD_CMD or
-# BUILD_ONE_CMD instead.
-#
-# BUILD_ONE_CMD is a macro to build a given target in a given
-# subdirectory if that subdirectory is part of $(DIRS). It requires
-# exactly the same shell variables as BUILD_CMD.
-#
-# RECURSIVE_BUILD_CMD is a macro to build a given target in all
-# subdirectories defined in $(DIRS). It requires that the target
-# is given through the shell variable `target'.
-BUILD_CMD= if [ -d "$$dir" ]; then \
- ( cd $$dir && echo "making $$target in $$dir..." && \
- $(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. DIR=$$dir $$target \
- ) || exit 1; \
- fi
-RECURSIVE_BUILD_CMD=for dir in $(DIRS); do $(BUILD_CMD); done
-BUILD_ONE_CMD=\
- if expr " $(DIRS) " : ".* $$dir " >/dev/null 2>&1; then \
- $(BUILD_CMD); \
- fi
-
-reflect:
- @[ -n "$(THIS)" ] && $(CLEARENV) && $(MAKE) $(THIS) -e $(BUILDENV)
-
-sub_all: build_all
-build_all: build_libs build_apps build_tests build_tools
-
-build_libs: build_crypto build_ssl build_engines
-
-build_crypto:
- @dir=crypto; target=all; $(BUILD_ONE_CMD)
-build_ssl:
- @dir=ssl; target=all; $(BUILD_ONE_CMD)
-build_engines:
- @dir=engines; target=all; $(BUILD_ONE_CMD)
-build_apps:
- @dir=apps; target=all; $(BUILD_ONE_CMD)
-build_tests:
- @dir=test; target=all; $(BUILD_ONE_CMD)
-build_tools:
- @dir=tools; target=all; $(BUILD_ONE_CMD)
-
-all_testapps: build_libs build_testapps
-build_testapps:
- @dir=crypto; target=testapps; $(BUILD_ONE_CMD)
-
-fips_premain_dso$(EXE_EXT): libcrypto.a
- [ -z "$(FIPSCANLIB)" ] || $(CC) $(CFLAG) -Iinclude \
- -DFINGERPRINT_PREMAIN_DSO_LOAD -o $@ \
- $(FIPSLIBDIR)fips_premain.c $(FIPSLIBDIR)fipscanister.o \
- libcrypto.a $(EX_LIBS)
-
-libcrypto$(SHLIB_EXT): libcrypto.a fips_premain_dso$(EXE_EXT)
- @if [ "$(SHLIB_TARGET)" != "" ]; then \
- if [ "$(FIPSCANLIB)" = "libcrypto" ]; then \
- FIPSLD_LIBCRYPTO=libcrypto.a ; \
- FIPSLD_CC="$(CC)"; CC=$(FIPSDIR)/bin/fipsld; \
- export CC FIPSLD_CC FIPSLD_LIBCRYPTO; \
- fi; \
- $(MAKE) -e SHLIBDIRS=crypto build-shared; \
- else \
- echo "There's no support for shared libraries on this platform" >&2; \
- exit 1; \
- fi
-
-libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
- @if [ "$(SHLIB_TARGET)" != "" ]; then \
- $(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \
- else \
- echo "There's no support for shared libraries on this platform" >&2; \
- exit 1; \
- fi
-
-clean-shared:
- @set -e; for i in $(SHLIBDIRS); do \
- if [ -n "$(SHARED_LIBS_LINK_EXTS)" ]; then \
- tmp="$(SHARED_LIBS_LINK_EXTS)"; \
- for j in $${tmp:-x}; do \
- ( set -x; rm -f lib$$i$$j ); \
- done; \
- fi; \
- ( set -x; rm -f lib$$i$(SHLIB_EXT) ); \
- if [ "$(PLATFORM)" = "Cygwin" ]; then \
- ( set -x; rm -f cyg$$i$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \
- fi; \
- done
-
-link-shared:
- @ set -e; for i in $(SHLIBDIRS); do \
- $(MAKE) -f $(HERE)/Makefile.shared -e $(BUILDENV) \
- LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \
- LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \
- symlink.$(SHLIB_TARGET); \
- libs="$$libs -l$$i"; \
- done
-
-build-shared: do_$(SHLIB_TARGET) link-shared
-
-do_$(SHLIB_TARGET):
- @ set -e; libs='-L. $(SHLIBDEPS)'; for i in $(SHLIBDIRS); do \
- if [ "$$i" = "ssl" -a -n "$(LIBKRB5)" ]; then \
- libs="$(LIBKRB5) $$libs"; \
- fi; \
- $(CLEARENV) && $(MAKE) -f Makefile.shared -e $(BUILDENV) \
- LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \
- LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \
- LIBDEPS="$$libs $(EX_LIBS)" \
- link_a.$(SHLIB_TARGET); \
- libs="-l$$i $$libs"; \
- done
-
-libcrypto.pc: Makefile
- @ ( echo 'prefix=$(INSTALLTOP)'; \
- echo 'exec_prefix=$${prefix}'; \
- echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
- echo 'includedir=$${prefix}/include'; \
- echo ''; \
- echo 'Name: OpenSSL-libcrypto'; \
- echo 'Description: OpenSSL cryptography library'; \
- echo 'Version: '$(VERSION); \
- echo 'Requires: '; \
- echo 'Libs: -L$${libdir} -lcrypto'; \
- echo 'Libs.private: $(EX_LIBS)'; \
- echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libcrypto.pc
-
-libssl.pc: Makefile
- @ ( echo 'prefix=$(INSTALLTOP)'; \
- echo 'exec_prefix=$${prefix}'; \
- echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
- echo 'includedir=$${prefix}/include'; \
- echo ''; \
- echo 'Name: OpenSSL'; \
- echo 'Description: Secure Sockets Layer and cryptography libraries'; \
- echo 'Version: '$(VERSION); \
- echo 'Requires: '; \
- echo 'Libs: -L$${libdir} -lssl -lcrypto'; \
- echo 'Libs.private: $(EX_LIBS)'; \
- echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > libssl.pc
-
-openssl.pc: Makefile
- @ ( echo 'prefix=$(INSTALLTOP)'; \
- echo 'exec_prefix=$${prefix}'; \
- echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
- echo 'includedir=$${prefix}/include'; \
- echo ''; \
- echo 'Name: OpenSSL'; \
- echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \
- echo 'Version: '$(VERSION); \
- echo 'Requires: '; \
- echo 'Libs: -L$${libdir} -lssl -lcrypto'; \
- echo 'Libs.private: $(EX_LIBS)'; \
- echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc
-
-Makefile: Makefile.org Configure config
- @echo "Makefile is older than Makefile.org, Configure or config."
- @echo "Reconfigure the source tree (via './config' or 'perl Configure'), please."
- @false
-
-libclean:
- rm -f *.map *.so *.so.* *.dylib *.dll engines/*.so engines/*.dll engines/*.dylib *.a engines/*.a */lib */*/lib
-
-clean: libclean
- rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c
- @set -e; target=clean; $(RECURSIVE_BUILD_CMD)
- rm -f $(LIBS)
- rm -f openssl.pc libssl.pc libcrypto.pc
- rm -f speed.* .pure
- rm -f $(TARFILE)
- @set -e; for i in $(ONEDIRS) ;\
- do \
- rm -fr $$i/*; \
- done
-
-makefile.one: files
- $(PERL) util/mk1mf.pl >makefile.one; \
- sh util/do_ms.sh
-
-files:
- $(PERL) $(TOP)/util/files.pl Makefile > $(TOP)/MINFO
- @set -e; target=files; $(RECURSIVE_BUILD_CMD)
-
-links:
- @$(PERL) $(TOP)/util/mkdir-p.pl include/openssl
- @$(PERL) $(TOP)/util/mklink.pl include/openssl $(EXHEADER)
- @set -e; target=links; $(RECURSIVE_BUILD_CMD)
-
-gentests:
- @(cd test && echo "generating dummy tests (if needed)..." && \
- $(CLEARENV) && $(MAKE) -e $(BUILDENV) TESTS='$(TESTS)' OPENSSL_DEBUG_MEMORY=on generate );
-
-dclean:
- rm -rf *.bak include/openssl certs/.0
- @set -e; target=dclean; $(RECURSIVE_BUILD_CMD)
-
-rehash: rehash.time
-rehash.time: certs apps
- @if [ -z "$(CROSS_COMPILE)" ]; then \
- (OPENSSL="`pwd`/util/opensslwrap.sh"; \
- [ -x "apps/openssl.exe" ] && OPENSSL="apps/openssl.exe" || :; \
- OPENSSL_DEBUG_MEMORY=on; \
- export OPENSSL OPENSSL_DEBUG_MEMORY; \
- $(PERL) tools/c_rehash certs/demo) && \
- touch rehash.time; \
- else :; fi
-
-test: tests
-
-tests: rehash
- @(cd test && echo "testing..." && \
- $(CLEARENV) && $(MAKE) -e $(BUILDENV) TOP=.. TESTS='$(TESTS)' OPENSSL_DEBUG_MEMORY=on OPENSSL_CONF=../apps/openssl.cnf tests );
- OPENSSL_CONF=apps/openssl.cnf util/opensslwrap.sh version -a
-
-report:
- @$(PERL) util/selftest.pl
-
-depend:
- @set -e; target=depend; $(RECURSIVE_BUILD_CMD)
-
-lint:
- @set -e; target=lint; $(RECURSIVE_BUILD_CMD)
-
-tags:
- rm -f TAGS
- find . -name '[^.]*.[ch]' | xargs etags -a
-
-errors:
- $(PERL) util/ck_errf.pl -strict */*.c */*/*.c
- $(PERL) util/mkerr.pl -recurse -write
- (cd engines; $(MAKE) PERL=$(PERL) errors)
-
-stacks:
- $(PERL) util/mkstack.pl -write
-
-util/libeay.num::
- $(PERL) util/mkdef.pl crypto update
-
-util/ssleay.num::
- $(PERL) util/mkdef.pl ssl update
-
-crypto/objects/obj_dat.h: crypto/objects/obj_dat.pl crypto/objects/obj_mac.h
- $(PERL) crypto/objects/obj_dat.pl crypto/objects/obj_mac.h crypto/objects/obj_dat.h
-crypto/objects/obj_mac.h: crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num
- $(PERL) crypto/objects/objects.pl crypto/objects/objects.txt crypto/objects/obj_mac.num crypto/objects/obj_mac.h
-crypto/objects/obj_xref.h: crypto/objects/objxref.pl crypto/objects/obj_xref.txt crypto/objects/obj_mac.num
- $(PERL) crypto/objects/objxref.pl crypto/objects/obj_mac.num crypto/objects/obj_xref.txt >crypto/objects/obj_xref.h
-
-apps/openssl-vms.cnf: apps/openssl.cnf
- $(PERL) VMS/VMSify-conf.pl < apps/openssl.cnf > apps/openssl-vms.cnf
-
-crypto/bn/bn_prime.h: crypto/bn/bn_prime.pl
- $(PERL) crypto/bn/bn_prime.pl >crypto/bn/bn_prime.h
-
-
-TABLE: Configure
- (echo 'Output of `Configure TABLE'"':"; \
- $(PERL) Configure TABLE) > TABLE
-
-update: errors stacks util/libeay.num util/ssleay.num crypto/objects/obj_dat.h crypto/objects/obj_xref.h apps/openssl-vms.cnf crypto/bn/bn_prime.h TABLE depend
-
-# Build distribution tar-file. As the list of files returned by "find" is
-# pretty long, on several platforms a "too many arguments" error or similar
-# would occur. Therefore the list of files is temporarily stored into a file
-# and read directly, requiring GNU-Tar. Call "make TAR=gtar dist" if the normal
-# tar does not support the --files-from option.
-tar:
- find . -type d -print | xargs chmod 755
- find . -type f -print | xargs chmod a+r
- find . -type f -perm -0100 -print | xargs chmod a+x
- find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE | sort > ../$(TARFILE).list; \
- $(TAR) $(TARFLAGS) --files-from ../$(TARFILE).list -cvf - | \
- tardy --user_number=0 --user_name=openssl \
- --group_number=0 --group_name=openssl \
- --prefix=openssl-$(VERSION) - |\
- gzip --best >../$(TARFILE).gz; \
- rm -f ../$(TARFILE).list; \
- ls -l ../$(TARFILE).gz
-
-tar-snap:
- @$(TAR) $(TARFLAGS) -cvf - \
- `find * \! -path CVS/\* \! -path \*/CVS/\* \! -name CVS \! -name .cvsignore \! -name STATUS \! -name TABLE \! -name '*.o' \! -name '*.a' \! -name '*.so' \! -name '*.so.*' \! -name 'openssl' \! -name '*test' \! -name '.#*' \! -name '*~' | sort` |\
- tardy --user_number=0 --user_name=openssl \
- --group_number=0 --group_name=openssl \
- --prefix=openssl-$(VERSION) - > ../$(TARFILE);\
- ls -l ../$(TARFILE)
-
-dist:
- $(PERL) Configure dist
- @$(MAKE) dist_pem_h
- @$(MAKE) SDIRS='$(SDIRS)' clean
- @$(MAKE) TAR='$(TAR)' TARFLAGS='$(TARFLAGS)' tar
-
-dist_pem_h:
- (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean)
-
-install: all install_docs install_sw
-
-install_sw:
- @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
- $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \
- $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \
- $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig \
- $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \
- $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
- $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \
- $(INSTALL_PREFIX)$(OPENSSLDIR)/private
- @set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;\
- do \
- (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
- chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
- done;
- @set -e; target=install; $(RECURSIVE_BUILD_CMD)
- @set -e; liblist="$(LIBS)"; for i in $$liblist ;\
- do \
- if [ -f "$$i" ]; then \
- ( echo installing $$i; \
- cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
- $(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
- chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i ); \
- fi; \
- done;
- @set -e; if [ -n "$(SHARED_LIBS)" ]; then \
- tmp="$(SHARED_LIBS)"; \
- for i in $${tmp:-x}; \
- do \
- if [ -f "$$i" -o -f "$$i.a" ]; then \
- ( echo installing $$i; \
- if [ "$(PLATFORM)" != "Cygwin" ]; then \
- cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
- else \
- c=`echo $$i | sed 's/^lib\(.*\)\.dll\.a/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \
- cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
- chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
- cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
- chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
- fi ); \
- if expr $(PLATFORM) : 'mingw' > /dev/null; then \
- ( case $$i in \
- *crypto*) i=libeay32.dll;; \
- *ssl*) i=ssleay32.dll;; \
- esac; \
- echo installing $$i; \
- cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
- chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \
- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i ); \
- fi; \
- fi; \
- done; \
- ( here="`pwd`"; \
- cd $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR); \
- $(MAKE) -f $$here/Makefile HERE="$$here" link-shared ); \
- if [ "$(INSTALLTOP)" != "/usr" ]; then \
- echo 'OpenSSL shared libraries have been installed in:'; \
- echo ' $(INSTALLTOP)'; \
- echo ''; \
- sed -e '1,/^$$/d' doc/openssl-shared.txt; \
- fi; \
- fi
- cp libcrypto.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
- chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libcrypto.pc
- cp libssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
- chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/libssl.pc
- cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig
- chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/pkgconfig/openssl.pc
-
-install_html_docs:
- here="`pwd`"; \
- for subdir in apps crypto ssl; do \
- mkdir -p $(INSTALL_PREFIX)$(HTMLDIR)/$$subdir; \
- for i in doc/$$subdir/*.pod; do \
- fn=`basename $$i .pod`; \
- echo "installing html/$$fn.$(HTMLSUFFIX)"; \
- cat $$i \
- | sed -r 's/L<([^)]*)(\([0-9]\))?\|([^)]*)(\([0-9]\))?>/L<\1|\3>/g' \
- | pod2html --podroot=doc --htmlroot=.. --podpath=apps:crypto:ssl \
- | sed -r 's/<!DOCTYPE.*//g' \
- > $(INSTALL_PREFIX)$(HTMLDIR)/$$subdir/$$fn.$(HTMLSUFFIX); \
- $(PERL) util/extract-names.pl < $$i | \
- grep -v $$filecase "^$$fn\$$" | \
- (cd $(INSTALL_PREFIX)$(HTMLDIR)/$$subdir; \
- while read n; do \
- PLATFORM=$(PLATFORM) $$here/util/point.sh $$fn.$(HTMLSUFFIX) "$$n".$(HTMLSUFFIX); \
- done); \
- done; \
- done
-
-install_docs:
- @$(PERL) $(TOP)/util/mkdir-p.pl \
- $(INSTALL_PREFIX)$(MANDIR)/man1 \
- $(INSTALL_PREFIX)$(MANDIR)/man3 \
- $(INSTALL_PREFIX)$(MANDIR)/man5 \
- $(INSTALL_PREFIX)$(MANDIR)/man7
- @pod2man="`cd ./util; ./pod2mantest $(PERL)`"; \
- here="`pwd`"; \
- filecase=; \
- if [ "$(PLATFORM)" = "DJGPP" -o "$(PLATFORM)" = "Cygwin" -o "$(PLATFORM)" = "mingw" ]; then \
- filecase=-i; \
- fi; \
- set -e; for i in doc/apps/*.pod; do \
- fn=`basename $$i .pod`; \
- sec=`$(PERL) util/extract-section.pl 1 < $$i`; \
- echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
- (cd `$(PERL) util/dirname.pl $$i`; \
- sh -c "$$pod2man \
- --section=$$sec --center=OpenSSL \
- --release=$(VERSION) `basename $$i`") \
- > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
- $(PERL) util/extract-names.pl < $$i | \
- (grep -v $$filecase "^$$fn\$$"; true) | \
- (grep -v "[ ]"; true) | \
- (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
- while read n; do \
- PLATFORM=$(PLATFORM) $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
- done); \
- done; \
- set -e; for i in doc/crypto/*.pod doc/ssl/*.pod; do \
- fn=`basename $$i .pod`; \
- sec=`$(PERL) util/extract-section.pl 3 < $$i`; \
- echo "installing man$$sec/$$fn.$${sec}$(MANSUFFIX)"; \
- (cd `$(PERL) util/dirname.pl $$i`; \
- sh -c "$$pod2man \
- --section=$$sec --center=OpenSSL \
- --release=$(VERSION) `basename $$i`") \
- > $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
- $(PERL) util/extract-names.pl < $$i | \
- (grep -v $$filecase "^$$fn\$$"; true) | \
- (grep -v "[ ]"; true) | \
- (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
- while read n; do \
- PLATFORM=$(PLATFORM) $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
- done); \
- done
-
-# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/openssl/crypto/.gitignore b/openssl/crypto/.gitignore
new file mode 100644
index 000000000..966fd5d48
--- /dev/null
+++ b/openssl/crypto/.gitignore
@@ -0,0 +1,2 @@
+buildinf.h
+opensslconf.h \ No newline at end of file
diff --git a/openssl/crypto/cryptlib.c b/openssl/crypto/cryptlib.c
index 304c6b706..da3949fa1 100644
--- a/openssl/crypto/cryptlib.c
+++ b/openssl/crypto/cryptlib.c
@@ -710,7 +710,7 @@ void OPENSSL_cpuid_setup(void)
* was initialized already... This is to avoid interference
* with cpuid snippets in ELF .init segment.
*/
- OPENSSL_ia32cap_P[0] = (unsigned int)vec|(1<<10);
+ OPENSSL_ia32cap_P[0] = (unsigned int)((vec|(1<<10))&0xffffffff);
OPENSSL_ia32cap_P[1] = (unsigned int)(vec>>32);
}
#endif
diff --git a/openssl/crypto/opensslconf.h b/openssl/crypto/opensslconf.h
deleted file mode 100644
index b18f4da49..000000000
--- a/openssl/crypto/opensslconf.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/* opensslconf.h */
-/* WARNING: Generated automatically from opensslconf.h.in by Configure. */
-
-/* OpenSSL was configured with the following options: */
-#ifndef OPENSSL_DOING_MAKEDEPEND
-
-
-#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128
-# define OPENSSL_NO_EC_NISTP_64_GCC_128
-#endif
-#ifndef OPENSSL_NO_GMP
-# define OPENSSL_NO_GMP
-#endif
-#ifndef OPENSSL_NO_JPAKE
-# define OPENSSL_NO_JPAKE
-#endif
-#ifndef OPENSSL_NO_KRB5
-# define OPENSSL_NO_KRB5
-#endif
-#ifndef OPENSSL_NO_MD2
-# define OPENSSL_NO_MD2
-#endif
-#ifndef OPENSSL_NO_RC5
-# define OPENSSL_NO_RC5
-#endif
-#ifndef OPENSSL_NO_RFC3779
-# define OPENSSL_NO_RFC3779
-#endif
-#ifndef OPENSSL_NO_SCTP
-# define OPENSSL_NO_SCTP
-#endif
-#ifndef OPENSSL_NO_STORE
-# define OPENSSL_NO_STORE
-#endif
-
-#endif /* OPENSSL_DOING_MAKEDEPEND */
-
-#ifndef OPENSSL_NO_DYNAMIC_ENGINE
-# define OPENSSL_NO_DYNAMIC_ENGINE
-#endif
-
-/* The OPENSSL_NO_* macros are also defined as NO_* if the application
- asks for it. This is a transient feature that is provided for those
- who haven't had the time to do the appropriate changes in their
- applications. */
-#ifdef OPENSSL_ALGORITHM_DEFINES
-# if defined(OPENSSL_NO_EC_NISTP_64_GCC_128) && !defined(NO_EC_NISTP_64_GCC_128)
-# define NO_EC_NISTP_64_GCC_128
-# endif
-# if defined(OPENSSL_NO_GMP) && !defined(NO_GMP)
-# define NO_GMP
-# endif
-# if defined(OPENSSL_NO_JPAKE) && !defined(NO_JPAKE)
-# define NO_JPAKE
-# endif
-# if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5)
-# define NO_KRB5
-# endif
-# if defined(OPENSSL_NO_MD2) && !defined(NO_MD2)
-# define NO_MD2
-# endif
-# if defined(OPENSSL_NO_RC5) && !defined(NO_RC5)
-# define NO_RC5
-# endif
-# if defined(OPENSSL_NO_RFC3779) && !defined(NO_RFC3779)
-# define NO_RFC3779
-# endif
-# if defined(OPENSSL_NO_SCTP) && !defined(NO_SCTP)
-# define NO_SCTP
-# endif
-# if defined(OPENSSL_NO_STORE) && !defined(NO_STORE)
-# define NO_STORE
-# endif
-#endif
-
-/* crypto/opensslconf.h.in */
-
-/* Generate 80386 code? */
-#undef I386_ONLY
-
-#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
-#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
-#define ENGINESDIR "/usr/local/ssl/lib/engines"
-#define OPENSSLDIR "/usr/local/ssl"
-#endif
-#endif
-
-#undef OPENSSL_UNISTD
-#define OPENSSL_UNISTD <unistd.h>
-
-#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
-
-#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
-#define IDEA_INT unsigned int
-#endif
-
-#if defined(HEADER_MD2_H) && !defined(MD2_INT)
-#define MD2_INT unsigned int
-#endif
-
-#if defined(HEADER_RC2_H) && !defined(RC2_INT)
-/* I need to put in a mod for the alpha - eay */
-#define RC2_INT unsigned int
-#endif
-
-#if defined(HEADER_RC4_H)
-#if !defined(RC4_INT)
-/* using int types make the structure larger but make the code faster
- * on most boxes I have tested - up to %20 faster. */
-/*
- * I don't know what does "most" mean, but declaring "int" is a must on:
- * - Intel P6 because partial register stalls are very expensive;
- * - elder Alpha because it lacks byte load/store instructions;
- */
-#define RC4_INT unsigned int
-#endif
-#if !defined(RC4_CHUNK)
-/*
- * This enables code handling data aligned at natural CPU word
- * boundary. See crypto/rc4/rc4_enc.c for further details.
- */
-#undef RC4_CHUNK
-#endif
-#endif
-
-#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
-/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
- * %20 speed up (longs are 8 bytes, int's are 4). */
-#ifndef DES_LONG
-#define DES_LONG unsigned long
-#endif
-#endif
-
-#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
-#define CONFIG_HEADER_BN_H
-#undef BN_LLONG
-
-/* Should we define BN_DIV2W here? */
-
-/* Only one for the following should be defined */
-#undef SIXTY_FOUR_BIT_LONG
-#undef SIXTY_FOUR_BIT
-#define THIRTY_TWO_BIT
-#endif
-
-#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H)
-#define CONFIG_HEADER_RC4_LOCL_H
-/* if this is defined data[i] is used instead of *data, this is a %20
- * speedup on x86 */
-#undef RC4_INDEX
-#endif
-
-#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
-#define CONFIG_HEADER_BF_LOCL_H
-#undef BF_PTR
-#endif /* HEADER_BF_LOCL_H */
-
-#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
-#define CONFIG_HEADER_DES_LOCL_H
-#ifndef DES_DEFAULT_OPTIONS
-/* the following is tweaked from a config script, that is why it is a
- * protected undef/define */
-#ifndef DES_PTR
-#undef DES_PTR
-#endif
-
-/* This helps C compiler generate the correct code for multiple functional
- * units. It reduces register dependancies at the expense of 2 more
- * registers */
-#ifndef DES_RISC1
-#undef DES_RISC1
-#endif
-
-#ifndef DES_RISC2
-#undef DES_RISC2
-#endif
-
-#if defined(DES_RISC1) && defined(DES_RISC2)
-YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
-#endif
-
-/* Unroll the inner loop, this sometimes helps, sometimes hinders.
- * Very mucy CPU dependant */
-#ifndef DES_UNROLL
-#undef DES_UNROLL
-#endif
-
-/* These default values were supplied by
- * Peter Gutman <pgut001@cs.auckland.ac.nz>
- * They are only used if nothing else has been defined */
-#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
-/* Special defines which change the way the code is built depending on the
- CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
- even newer MIPS CPU's, but at the moment one size fits all for
- optimization options. Older Sparc's work better with only UNROLL, but
- there's no way to tell at compile time what it is you're running on */
-
-#if defined( sun ) /* Newer Sparc's */
-# define DES_PTR
-# define DES_RISC1
-# define DES_UNROLL
-#elif defined( __ultrix ) /* Older MIPS */
-# define DES_PTR
-# define DES_RISC2
-# define DES_UNROLL
-#elif defined( __osf1__ ) /* Alpha */
-# define DES_PTR
-# define DES_RISC2
-#elif defined ( _AIX ) /* RS6000 */
- /* Unknown */
-#elif defined( __hpux ) /* HP-PA */
- /* Unknown */
-#elif defined( __aux ) /* 68K */
- /* Unknown */
-#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
-# define DES_UNROLL
-#elif defined( __sgi ) /* Newer MIPS */
-# define DES_PTR
-# define DES_RISC2
-# define DES_UNROLL
-#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
-# define DES_PTR
-# define DES_RISC1
-# define DES_UNROLL
-#endif /* Systems-specific speed defines */
-#endif
-
-#endif /* DES_DEFAULT_OPTIONS */
-#endif /* HEADER_DES_LOCL_H */
diff --git a/openssl/ms/.gitignore b/openssl/ms/.gitignore
new file mode 100644
index 000000000..565a468cd
--- /dev/null
+++ b/openssl/ms/.gitignore
@@ -0,0 +1,8 @@
+bcb.mak
+libeay32.def
+nt.mak
+ntdll.mak
+ssleay32.def
+version32.rc
+uptable.asm
+uptable.obj
diff --git a/openssl/ms/do_nasm.bat b/openssl/ms/do_nasm.bat
index 7b3f3edbf..7f4325b3f 100644..100755
--- a/openssl/ms/do_nasm.bat
+++ b/openssl/ms/do_nasm.bat
@@ -1,8 +1,8 @@
-perl util\mkfiles.pl >MINFO
-perl util\mk1mf.pl nasm VC-WIN32 >ms\nt.mak
-perl util\mk1mf.pl dll nasm VC-WIN32 >ms\ntdll.mak
-perl util\mk1mf.pl nasm BC-NT >ms\bcb.mak
+perl util/mkfiles.pl >MINFO
+perl util/mk1mf.pl nasm VC-WIN32 >ms/nt.mak
+perl util/mk1mf.pl dll nasm VC-WIN32 >ms/ntdll.mak
+perl util/mk1mf.pl nasm BC-NT >ms/bcb.mak
-perl util\mkdef.pl 32 libeay > ms\libeay32.def
-perl util\mkdef.pl 32 ssleay > ms\ssleay32.def
+perl util/mkdef.pl 32 libeay > ms/libeay32.def
+perl util/mkdef.pl 32 ssleay > ms/ssleay32.def
diff --git a/openssl/ms/do_win64a.bat b/openssl/ms/do_win64a.bat
index ff8b19ccf..be87fffee 100644..100755
--- a/openssl/ms/do_win64a.bat
+++ b/openssl/ms/do_win64a.bat
@@ -3,17 +3,17 @@ perl util\mkfiles.pl >MINFO
cmd /c "nasm -f win64 -v" >NUL: 2>&1
if %errorlevel% neq 0 goto ml64
-perl ms\uplink-x86_64.pl nasm > ms\uptable.asm
-nasm -f win64 -o ms\uptable.obj ms\uptable.asm
+perl ms/uplink-x86_64.pl nasm > ms/uptable.asm
+nasm -f win64 -o ms/uptable.obj ms/uptable.asm
goto proceed
:ml64
-perl ms\uplink-x86_64.pl masm > ms\uptable.asm
-ml64 -c -Foms\uptable.obj ms\uptable.asm
+perl ms/uplink-x86_64.pl masm > ms/uptable.asm
+ml64 -c -Foms/uptable.obj ms/uptable.asm
:proceed
-perl util\mk1mf.pl VC-WIN64A >ms\nt.mak
-perl util\mk1mf.pl dll VC-WIN64A >ms\ntdll.mak
+perl util/mk1mf.pl VC-WIN64A >ms/nt.mak
+perl util/mk1mf.pl dll VC-WIN64A >ms/ntdll.mak
-perl util\mkdef.pl 32 libeay > ms\libeay32.def
-perl util\mkdef.pl 32 ssleay > ms\ssleay32.def
+perl util/mkdef.pl 32 libeay > ms/libeay32.def
+perl util/mkdef.pl 32 ssleay > ms/ssleay32.def
diff --git a/openssl/util/mk1mf.pl b/openssl/util/mk1mf.pl
index 72fa089f6..e7534c75e 100644
--- a/openssl/util/mk1mf.pl
+++ b/openssl/util/mk1mf.pl
@@ -242,55 +242,98 @@ $inc_dir=(defined($VARS{'INC'}))?$VARS{'INC'}:$inc_def;
$bin_dir=$bin_dir.$o unless ((substr($bin_dir,-1,1) eq $o) || ($bin_dir eq ''));
$cflags= "$xcflags$cflags" if $xcflags ne "";
+$cdflags= "$xcflags$cflags" if $xcdflags ne "";
$cflags.=" -DOPENSSL_NO_IDEA" if $no_idea;
+$cdflags.=" -DOPENSSL_NO_IDEA" if $no_idea;
$cflags.=" -DOPENSSL_NO_AES" if $no_aes;
+$cdflags.=" -DOPENSSL_NO_AES" if $no_aes;
$cflags.=" -DOPENSSL_NO_CAMELLIA" if $no_camellia;
+$cdflags.=" -DOPENSSL_NO_CAMELLIA" if $no_camellia;
$cflags.=" -DOPENSSL_NO_SEED" if $no_seed;
+$cdflags.=" -DOPENSSL_NO_SEED" if $no_seed;
$cflags.=" -DOPENSSL_NO_RC2" if $no_rc2;
+$cdflags.=" -DOPENSSL_NO_RC2" if $no_rc2;
$cflags.=" -DOPENSSL_NO_RC4" if $no_rc4;
+$cdflags.=" -DOPENSSL_NO_RC4" if $no_rc4;
$cflags.=" -DOPENSSL_NO_RC5" if $no_rc5;
+$cdflags.=" -DOPENSSL_NO_RC5" if $no_rc5;
$cflags.=" -DOPENSSL_NO_MD2" if $no_md2;
+$cdflags.=" -DOPENSSL_NO_MD2" if $no_md2;
$cflags.=" -DOPENSSL_NO_MD4" if $no_md4;
+$cdflags.=" -DOPENSSL_NO_MD4" if $no_md4;
$cflags.=" -DOPENSSL_NO_MD5" if $no_md5;
+$cdflags.=" -DOPENSSL_NO_MD5" if $no_md5;
$cflags.=" -DOPENSSL_NO_SHA" if $no_sha;
+$cdflags.=" -DOPENSSL_NO_SHA" if $no_sha;
$cflags.=" -DOPENSSL_NO_SHA1" if $no_sha1;
+$cdflags.=" -DOPENSSL_NO_SHA1" if $no_sha1;
$cflags.=" -DOPENSSL_NO_RIPEMD" if $no_ripemd;
+$cdflags.=" -DOPENSSL_NO_RIPEMD" if $no_ripemd;
$cflags.=" -DOPENSSL_NO_MDC2" if $no_mdc2;
+$cdflags.=" -DOPENSSL_NO_MDC2" if $no_mdc2;
$cflags.=" -DOPENSSL_NO_BF" if $no_bf;
+$cdflags.=" -DOPENSSL_NO_BF" if $no_bf;
$cflags.=" -DOPENSSL_NO_CAST" if $no_cast;
+$cdflags.=" -DOPENSSL_NO_CAST" if $no_cast;
$cflags.=" -DOPENSSL_NO_DES" if $no_des;
+$cdflags.=" -DOPENSSL_NO_DES" if $no_des;
$cflags.=" -DOPENSSL_NO_RSA" if $no_rsa;
+$cdflags.=" -DOPENSSL_NO_RSA" if $no_rsa;
$cflags.=" -DOPENSSL_NO_DSA" if $no_dsa;
+$cdflags.=" -DOPENSSL_NO_DSA" if $no_dsa;
$cflags.=" -DOPENSSL_NO_DH" if $no_dh;
+$cdflags.=" -DOPENSSL_NO_DH" if $no_dh;
$cflags.=" -DOPENSSL_NO_WHIRLPOOL" if $no_whirlpool;
+$cdflags.=" -DOPENSSL_NO_WHIRLPOOL" if $no_whirlpool;
$cflags.=" -DOPENSSL_NO_SOCK" if $no_sock;
+$cdflags.=" -DOPENSSL_NO_SOCK" if $no_sock;
$cflags.=" -DOPENSSL_NO_SSL2" if $no_ssl2;
+$cdflags.=" -DOPENSSL_NO_SSL2" if $no_ssl2;
$cflags.=" -DOPENSSL_NO_SSL3" if $no_ssl3;
+$cdflags.=" -DOPENSSL_NO_SSL3" if $no_ssl3;
$cflags.=" -DOPENSSL_NO_TLSEXT" if $no_tlsext;
+$cdflags.=" -DOPENSSL_NO_TLSEXT" if $no_tlsext;
$cflags.=" -DOPENSSL_NO_SRP" if $no_srp;
+$cdflags.=" -DOPENSSL_NO_SRP" if $no_srp;
$cflags.=" -DOPENSSL_NO_CMS" if $no_cms;
+$cdflags.=" -DOPENSSL_NO_CMS" if $no_cms;
$cflags.=" -DOPENSSL_NO_ERR" if $no_err;
+$cdflags.=" -DOPENSSL_NO_ERR" if $no_err;
$cflags.=" -DOPENSSL_NO_KRB5" if $no_krb5;
+$cdflags.=" -DOPENSSL_NO_KRB5" if $no_krb5;
$cflags.=" -DOPENSSL_NO_EC" if $no_ec;
+$cdflags.=" -DOPENSSL_NO_EC" if $no_ec;
$cflags.=" -DOPENSSL_NO_ECDSA" if $no_ecdsa;
+$cdflags.=" -DOPENSSL_NO_ECDSA" if $no_ecdsa;
$cflags.=" -DOPENSSL_NO_ECDH" if $no_ecdh;
+$cdflags.=" -DOPENSSL_NO_ECDH" if $no_ecdh;
$cflags.=" -DOPENSSL_NO_GOST" if $no_gost;
+$cdflags.=" -DOPENSSL_NO_GOST" if $no_gost;
$cflags.=" -DOPENSSL_NO_ENGINE" if $no_engine;
+$cdflags.=" -DOPENSSL_NO_ENGINE" if $no_engine;
$cflags.=" -DOPENSSL_NO_HW" if $no_hw;
+$cdflags.=" -DOPENSSL_NO_HW" if $no_hw;
$cflags.=" -DOPENSSL_FIPS" if $fips;
+$cdflags.=" -DOPENSSL_FIPS" if $fips;
$cflags.=" -DOPENSSL_NO_JPAKE" if $no_jpake;
+$cdflags.=" -DOPENSSL_NO_JPAKE" if $no_jpake;
$cflags.=" -DOPENSSL_NO_EC2M" if $no_ec2m;
+$cdflags.=" -DOPENSSL_NO_EC2M" if $no_ec2m;
$cflags.= " -DZLIB" if $zlib_opt;
+$cdflags.= " -DZLIB" if $zlib_opt;
$cflags.= " -DZLIB_SHARED" if $zlib_opt == 2;
+$cdflags.= " -DZLIB_SHARED" if $zlib_opt == 2;
if ($no_static_engine)
{
$cflags .= " -DOPENSSL_NO_STATIC_ENGINE";
+ $cdflags .= " -DOPENSSL_NO_STATIC_ENGINE";
}
else
{
$cflags .= " -DOPENSSL_NO_DYNAMIC_ENGINE";
+ $cdflags .= " -DOPENSSL_NO_DYNAMIC_ENGINE";
}
#$cflags.=" -DRSAref" if $rsaref ne "";
@@ -443,10 +486,44 @@ $defs.= <<"EOF";
INSTALLTOP=$INSTALLTOP
OPENSSLDIR=$OPENSSLDIR
+!ifdef IS64
+
+!ifdef DEBUG
+# The output directory for everything intersting
+OUT_D=out64_d
+# The output directory for all the temporary muck
+TMP_D=tmp64_d
+!else
+# The output directory for everything intersting
+OUT_D=out64
+# The output directory for all the temporary muck
+TMP_D=tmp64
+!endif
+
+!else
+
+!ifdef DEBUG
+# The output directory for everything intersting
+OUT_D=out32_d
+# The output directory for all the temporary muck
+TMP_D=tmp32_d
+!else
+# The output directory for everything intersting
+OUT_D=out32
+# The output directory for all the temporary muck
+TMP_D=tmp32
+!endif
+
+!endif
+
# Set your compiler options
PLATFORM=$platform
CC=$bin_dir${cc}
+!ifdef DEBUG
+CFLAG=$cdflags
+!else
CFLAG=$cflags
+!endif
APP_CFLAG=$app_cflag
LIB_CFLAG=$lib_cflag
SHLIB_CFLAG=$shl_cflag
@@ -460,13 +537,13 @@ EX_LIBS=$ex_libs
SRC_D=$src_dir
LINK=$link
+!ifdef DEBUG
+LFLAGS=$lflagsd
+!else
LFLAGS=$lflags
+!endif
RSC=$rsc
-# The output directory for everything intersting
-OUT_D=$out_dir
-# The output directory for all the temporary muck
-TMP_D=$tmp_dir
# The output directory for the header files
INC_D=$inc_dir
INCO_D=$inc_dir${o}openssl
@@ -476,7 +553,11 @@ CP=$cp
RM=$rm
RANLIB=$ranlib
MKDIR=$mkdir
+!ifdef DEBUG
+MKLIB=$bin_dir$mklibd
+!else
MKLIB=$bin_dir$mklib
+!endif
MLFLAGS=$mlflags
ASM=$bin_dir$asm
diff --git a/openssl/util/pl/VC-32.pl b/openssl/util/pl/VC-32.pl
index 6c550f54a..ed5fea90d 100644..100755
--- a/openssl/util/pl/VC-32.pl
+++ b/openssl/util/pl/VC-32.pl
@@ -16,7 +16,7 @@ else
$crypto="libeay32";
}
-$o='\\';
+$o='/';
$cp='$(PERL) util/copy.pl';
$mkdir='$(PERL) util/mkdir-p.pl';
$rm='del /Q';
@@ -43,11 +43,12 @@ if ($FLAVOR =~ /WIN64/)
# considered safe to ignore.
#
$base_cflags= " $mf_cflag";
- my $f = $shlib || $fips ?' /MD':' /MT';
+ my $f = ' /MD';
$lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib
- $opt_cflags=$f.' /Ox';
- $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
- $lflags="/nologo /subsystem:console /opt:ref";
+ $opt_cflags=$f.' /O2 /Ob2 /Oi /Ox /Oy /Ot /GL /Gy /GF /Zi';
+ $dbg_cflags=$f.'d /RTCc /RTC1 /Od /GS /GR /Gy /GF /Zi';
+ $lflags="/NOLOGO /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG:STATUS";
+ $lflagsd="/NOLOGO /SUBSYSTEM:CONSOLE";
*::perlasm_compile_target = sub {
my ($target,$source,$bname)=@_;
@@ -119,22 +120,25 @@ elsif ($FLAVOR =~ /CE/)
$base_cflags.=' -I$(PORTSDK_LIBPATH)/../../include' if (defined($ENV{'PORTSDK_LIBPATH'}));
$opt_cflags=' /MC /O1i'; # optimize for space, but with intrinsics...
$dbg_cflags=' /MC /Od -DDEBUG -D_DEBUG';
- $lflags="/nologo /opt:ref $wcelflag";
+ $lflags="/NOLOGO /OPT:REF /OPT:ICF /LTCG:STATUS $wcelflag";
+ $lflagsd="/NOLOGO $wcelflag";
}
else # Win32
{
$base_cflags= " $mf_cflag";
- my $f = $shlib || $fips ?' /MD':' /MT';
+
+ my $f = ' /MD';
$lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib
- $opt_cflags=$f.' /Ox /O2 /Ob2';
- $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
- $lflags="/nologo /subsystem:console /opt:ref";
+ $opt_cflags=$f.' /O2 /Ob2 /Oi /Ox /Oy /Ot /GL /Gy /GF /Zi';
+ $dbg_cflags=$f.'d /RTCc /RTC1 /Od /GS /GR /Gy /GF /Zi';
+ $lflags="/NOLOGO /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG:STATUS";
+ $lflagsd="/NOLOGO /SUBSYSTEM:CONSOLE";
}
$mlflags='';
-$out_def ="out32"; $out_def.="dll" if ($shlib);
+$out_def ="\$(OUT_D)"; $out_def.="dll" if ($shlib);
$out_def.='_$(TARGETCPU)' if ($FLAVOR =~ /CE/);
-$tmp_def ="tmp32"; $tmp_def.="dll" if ($shlib);
+$tmp_def ="\$(TMP_D)"; $tmp_def.="dll" if ($shlib);
$tmp_def.='_$(TARGETCPU)' if ($FLAVOR =~ /CE/);
$inc_def="inc32";
@@ -145,12 +149,14 @@ if ($debug)
else
{
$cflags=$opt_cflags.$base_cflags;
+ $cdflags=$dbg_cflags.$base_cflags;
}
# generate symbols.pdb unconditionally
$app_cflag.=" /Zi /Fd\$(TMP_D)/app";
$lib_cflag.=" /Zi /Fd\$(TMP_D)/lib";
-$lflags.=" /debug";
+$lflags.=" /DEBUG";
+$lflagsd.=" /DEBUG";
$obj='.obj';
$asm_suffix='.asm';
@@ -180,8 +186,10 @@ else
$ex_libs="unicows.lib $ex_libs" if ($FLAVOR =~ /WIN32/ and $cflags =~ /\-DUNICODE/);
}
+ $cdflags.=" -DOPENSSL_SYSNAME_WINNT -DUNICODE -D_UNICODE";
# static library stuff
-$mklib='lib /nologo';
+$mklib='lib /nologo /LTCG';
+$mklibd='lib /nologo';
$ranlib='';
$plib="";
$libp=".lib";
@@ -236,11 +244,16 @@ if (!$no_asm)
win32_import_asm($mf_wp_asm, "whrlpool", \$whirlpool_asm_obj, \$whirlpool_asm_src);
win32_import_asm($mf_cpuid_asm, "", \$cpuid_asm_obj, \$cpuid_asm_src);
$perl_asm = 1;
+ if ($FLAVOR =~ /WIN64A/) {
+ $cdflags.=" -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DAES_ASM -DBN_ASM -DOPENSSL_BN_ASM_MONT -DMD5_ASM -DSHA1_ASM -DRMD160_ASM";
+ } else {
+ $cdflags.=" -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DAES_ASM -DBN_ASM -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_BN_ASM_MONT -DMD5_ASM -DSHA1_ASM -DRMD160_ASM";
+ }
}
if ($shlib && $FLAVOR !~ /CE/)
{
- $mlflags.=" $lflags /dll";
+ $mlflags.=" $lflags /DLL";
$lib_cflag.=" -D_WINDLL";
#
# Engage Applink...
@@ -269,8 +282,8 @@ ___
}
elsif ($shlib && $FLAVOR =~ /CE/)
{
- $mlflags.=" $lflags /dll";
- $lflags.=' /entry:mainCRTstartup' if(defined($ENV{'PORTSDK_LIBPATH'}));
+ $mlflags.=" $lflags /DLL";
+ $lflags.=' /ENTRY:mainCRTstartup' if(defined($ENV{'PORTSDK_LIBPATH'}));
$lib_cflag.=" -D_WINDLL -D_DLL";
}
diff --git a/pixman/pixman/config.h b/pixman/pixman/config.h
new file mode 100644
index 000000000..ee9aef828
--- /dev/null
+++ b/pixman/pixman/config.h
@@ -0,0 +1,229 @@
+/* config.h. Generated from config.h.in by configure. */
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define if building universal (internal helper macro) */
+#undef AC_APPLE_UNIVERSAL_BUILD
+
+/* Include compose table cache support */
+#define COMPOSECACHE 1
+
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the <endian.h> header file. */
+#define HAVE_ENDIAN_H 1
+
+/* Use dlopen to load shared libraries */
+#define HAVE_DLOPEN 1
+
+
+/* Define to 1 if you have the `getpagesize' function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* launchd support available */
+/* #undef HAVE_LAUNCHD */
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the `poll' function. */
+#define HAVE_POLL 1
+
+/* Define to 1 if you have a working `mmap' system call. */
+#define HAVE_MMAP 1
+
+/* Use shl_load to load shared libraries */
+/* #undef HAVE_SHL_LOAD */
+
+/* Define to 1 if the system has the type `socklen_t'. */
+#define HAVE_SOCKLEN_T 0
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/poll.h> header file. */
+#define HAVE_SYS_POLL_H 1
+
+/* Define to 1 if you have the `strtol' function. */
+#define HAVE_STRTOL 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Support IPv6 for TCP connections */
+/* #undef IPv6 */
+
+/* Support dynamically loaded font modules */
+#define LOADABLEFONTS 1
+
+/* Support os-specific local connections */
+/* #undef LOCALCONN */
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#define LT_OBJDIR ".libs/"
+
+/* Disable XLOCALEDIR environment variable */
+#define NO_XLOCALEDIR 1
+
+/* Name of package */
+#define PACKAGE "pixman"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT ""sandmann@daimi.au.dk""
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "pixman"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "pixman 0.19.1"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "pixman"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "0.19.1"
+
+/* Major version of this package */
+#define PACKAGE_VERSION_MAJOR 0
+
+/* Minor version of this package */
+#define PACKAGE_VERSION_MINOR 19
+
+/* Patch version of this package */
+#define PACKAGE_VERSION_PATCHLEVEL 1
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Support TCP socket connections */
+#define TCPCONN 1
+
+/* launchd support available */
+/* #undef TRANS_REOPEN */
+
+/* use MMX compiler intrinsics */
+/*#define USE_X86_MMX 1*/
+
+/* Support UNIX socket connections */
+#define UNIXCONN 1
+
+/* Split some i18n functions into loadable modules */
+/* #undef USE_DYNAMIC_LC */
+
+/* Use the X cursor library to load cursors */
+#define USE_DYNAMIC_XCURSOR 1
+
+/* use SSE2 compiler intrinsics */
+/*#define USE_SSE2 1*/
+
+/* use VMX compiler intrinsics */
+#undef USE_VMX
+
+/* poll() function is available */
+#define USE_POLL 1
+
+/* Use XCB for low-level protocol implementation */
+#define USE_XCB 1
+
+/* Version number of package */
+#define VERSION "0.15.18"
+
+/* Support bdf format bitmap font files */
+#define XFONT_BDFFORMAT 1
+
+/* Location of libX11 data */
+#define X11_DATADIR "/usr/share/X11"
+
+/* Location of libX11 library data */
+#define X11_LIBDIR "/usr/lib/X11"
+
+/* Include support for XCMS */
+#define XCMS 1
+
+/* Location of error message database */
+#define XERRORDB "XErrorDB"
+
+/* Enable XF86BIGFONT extension */
+/* #undef XF86BIGFONT */
+
+/* Use XKB */
+#define XKB 1
+
+/* Location of keysym database */
+#define XKEYSYMDB "XKeysymDB"
+
+/* support for X Locales */
+#define XLOCALE 1
+
+/* Location of libX11 locale data */
+#define XLOCALEDATADIR "locale"
+
+/* Location of libX11 locale data */
+#define XLOCALEDIR "locale"
+
+/* Location of libX11 locale libraries */
+#define XLOCALELIBDIR "locale"
+
+/* Whether libX11 is compiled with thread support */
+#define XTHREADS /**/
+
+/* Whether libX11 needs to use MT safe API's */
+#define XUSE_MTSAFE_API /**/
+
+/* Enable GNU and other extensions to the C environment for glibc */
+/* #undef _GNU_SOURCE */
+
+/* Support bitmap font files */
+#define XFONT_BITMAP 1
+
+/* Support built-in fonts */
+#define XFONT_BUILTINS 1
+
+/* Support the X Font Services Protocol */
+#define XFONT_FC 1
+
+/* Support fonts in files */
+#define XFONT_FONTFILE 1
+
+/* Support FreeType rasterizer for nearly all font file formats */
+#define XFONT_FREETYPE 1
+
+/* Support pcf format bitmap font files */
+#define XFONT_PCFFORMAT 1
+
+/* Support snf format bitmap font files */
+#define XFONT_SNFFORMAT 1
+
+/* Support Speedo font files */
+#define XFONT_SPEEDO 1
+
+/* Support IBM Type 1 rasterizer for Type1 font files */
+#define XFONT_TYPE1 1
+
+/* Support bzip2 for bitmap fonts */
+/* #undef X_BZIP2_FONT_COMPRESSION */
+
+/* Support gzip for bitmap fonts */
+#define X_GZIP_FONT_COMPRESSION 1
+
+#define __inline__ __inline
diff --git a/pixman/pixman/makefile b/pixman/pixman/makefile
new file mode 100644
index 000000000..f971e5167
--- /dev/null
+++ b/pixman/pixman/makefile
@@ -0,0 +1,46 @@
+LIBRARY = libpixman-1
+
+INCLUDES += $(OBJDIR)
+
+CSRCS = \
+ pixman.c \
+ pixman-access.c \
+ pixman-access-accessors.c \
+ pixman-bits-image.c \
+ pixman-combine32.c \
+ pixman-combine-float.c \
+ pixman-conical-gradient.c \
+ pixman-x86.c \
+ pixman-mips.c \
+ pixman-arm.c \
+ pixman-ppc.c \
+ pixman-edge.c \
+ pixman-edge-accessors.c \
+ pixman-fast-path.c \
+ pixman-glyph.c \
+ pixman-general.c \
+ pixman-gradient-walker.c \
+ pixman-image.c \
+ pixman-implementation.c \
+ pixman-linear-gradient.c \
+ pixman-matrix.c \
+ pixman-noop.c \
+ pixman-radial-gradient.c \
+ pixman-region16.c \
+ pixman-region32.c \
+ pixman-solid-fill.c \
+ pixman-timer.c \
+ pixman-trap.c \
+ pixman-utils.c \
+ $(NULL)
+
+## mmx code
+ifndef IS64
+CSRCS += pixman-mmx.c
+DEFINES+=USE_X86_MMX
+endif
+
+# sse2 code
+CSRCS += pixman-sse2.c
+DEFINES+=USE_SSE2
+
diff --git a/pixman/pixman/pixman-compiler.h b/pixman/pixman/pixman-compiler.h
index 2489adc38..938ebc21a 100644
--- a/pixman/pixman/pixman-compiler.h
+++ b/pixman/pixman/pixman-compiler.h
@@ -122,6 +122,9 @@
# define _NO_W32_PSEUDO_MODIFIERS
# include <windows.h>
+#ifdef IN
+#undef IN
+#endif
# define PIXMAN_DEFINE_THREAD_LOCAL(type, name) \
static volatile int tls_ ## name ## _initialized = 0; \
diff --git a/pixman/pixman/pixman-glyph.c b/pixman/pixman/pixman-glyph.c
index 96a349ab4..60eb10914 100644
--- a/pixman/pixman/pixman-glyph.c
+++ b/pixman/pixman/pixman-glyph.c
@@ -88,7 +88,7 @@ hash (const void *font_key, const void *glyph_key)
key = key + (key << 3) + (key << 11);
key = key ^ (key >> 16);
- return key;
+ return key&0xffffffff;
}
static glyph_t *
diff --git a/pixman/pixman/pixman-implementation.c b/pixman/pixman/pixman-implementation.c
index 588405451..f82c915dc 100644
--- a/pixman/pixman/pixman-implementation.c
+++ b/pixman/pixman/pixman-implementation.c
@@ -33,7 +33,7 @@ _pixman_implementation_create (pixman_implementation_t *fallback,
{
pixman_implementation_t *imp;
- assert (fast_paths);
+ assert (fast_paths!=NULL);
if ((imp = malloc (sizeof (pixman_implementation_t))))
{
diff --git a/pixman/pixman/pixman-mmx.c b/pixman/pixman/pixman-mmx.c
index f9a92ce09..d16dfc692 100644
--- a/pixman/pixman/pixman-mmx.c
+++ b/pixman/pixman/pixman-mmx.c
@@ -1911,7 +1911,7 @@ mmx_composite_over_8888_0565 (pixman_implementation_t *imp,
vdest = pack_565 (
over (vsrc, expand_alpha (vsrc), vdest), vdest, 0);
- *dst = to_uint64 (vdest);
+ *dst = to_uint64 (vdest)&0xffff;
w--;
dst++;
@@ -1955,7 +1955,7 @@ mmx_composite_over_8888_0565 (pixman_implementation_t *imp,
vdest = pack_565 (over (vsrc, expand_alpha (vsrc), vdest), vdest, 0);
- *dst = to_uint64 (vdest);
+ *dst = to_uint64 (vdest) & 0xffff;
w--;
dst++;
@@ -2157,7 +2157,7 @@ mmx_fill (pixman_implementation_t *imp,
if (w >= 2 && ((uintptr_t)d & 3))
{
- *(uint16_t *)d = filler;
+ *(uint16_t *)d = (filler & 0xffff);
w -= 2;
d += 2;
}
@@ -2210,7 +2210,7 @@ mmx_fill (pixman_implementation_t *imp,
}
if (w >= 2)
{
- *(uint16_t *)d = filler;
+ *(uint16_t *)d = (filler & 0xffff);
w -= 2;
d += 2;
}
@@ -2494,7 +2494,7 @@ mmx_composite_over_n_8_0565 (pixman_implementation_t *imp,
vm3 = to_m64 (m3);
v3 = in_over (vsrc, vsrca, expand_alpha_rev (vm3), v3);
- *(__m64 *)dst = pack_4x565 (v0, v1, v2, v3);;
+ *(__m64 *)dst = pack_4x565 (v0, v1, v2, v3);
}
w -= 4;
@@ -3579,13 +3579,14 @@ do { \
__m64 b_lo = _mm_mullo_pi16 (_mm_unpacklo_pi8 (b, mm_zero), mm_wb); \
__m64 hi = _mm_add_pi16 (t_hi, b_hi); \
__m64 lo = _mm_add_pi16 (t_lo, b_lo); \
+ __m64 mm_wh,p,q;\
/* calculate horizontal weights */ \
- __m64 mm_wh = _mm_add_pi16 (mm_addc7, _mm_xor_si64 (mm_xorc7, \
+ mm_wh = _mm_add_pi16 (mm_addc7, _mm_xor_si64 (mm_xorc7, \
_mm_srli_pi16 (mm_x, \
16 - BILINEAR_INTERPOLATION_BITS))); \
/* horizontal interpolation */ \
- __m64 p = _mm_unpacklo_pi16 (lo, hi); \
- __m64 q = _mm_unpackhi_pi16 (lo, hi); \
+ p = _mm_unpacklo_pi16 (lo, hi); \
+ q = _mm_unpackhi_pi16 (lo, hi); \
vx += unit_x; \
lo = _mm_madd_pi16 (p, mm_wh); \
hi = _mm_madd_pi16 (q, mm_wh); \
diff --git a/pixman/pixman/pixman-sse2.c b/pixman/pixman/pixman-sse2.c
index a6e780815..4e64ff94e 100644
--- a/pixman/pixman/pixman-sse2.c
+++ b/pixman/pixman/pixman-sse2.c
@@ -3377,14 +3377,14 @@ sse2_fill (pixman_implementation_t *imp,
if (w >= 1 && ((uintptr_t)d & 1))
{
- *(uint8_t *)d = filler;
+ *(uint8_t *)d = filler&0xff;
w -= 1;
d += 1;
}
while (w >= 2 && ((uintptr_t)d & 3))
{
- *(uint16_t *)d = filler;
+ *(uint16_t *)d = filler&0xffff;
w -= 2;
d += 2;
}
@@ -3450,14 +3450,14 @@ sse2_fill (pixman_implementation_t *imp,
if (w >= 2)
{
- *(uint16_t *)d = filler;
+ *(uint16_t *)d = filler&0xffff;
w -= 2;
d += 2;
}
if (w >= 1)
{
- *(uint8_t *)d = filler;
+ *(uint8_t *)d = filler&0xff;
w -= 1;
d += 1;
}
@@ -5565,12 +5565,12 @@ FAST_NEAREST_MAINLOOP_COMMON (sse2_8888_n_8888_normal_OVER,
const __m128i xmm_wt = _mm_set_epi16 (wt, wt, wt, wt, wt, wt, wt, wt); \
const __m128i xmm_wb = _mm_set_epi16 (wb, wb, wb, wb, wb, wb, wb, wb); \
const __m128i xmm_addc = _mm_set_epi16 (0, 1, 0, 1, 0, 1, 0, 1); \
- const __m128i xmm_ux1 = _mm_set_epi16 (unit_x, -unit_x, unit_x, -unit_x, \
- unit_x, -unit_x, unit_x, -unit_x); \
- const __m128i xmm_ux4 = _mm_set_epi16 (unit_x * 4, -unit_x * 4, \
- unit_x * 4, -unit_x * 4, \
- unit_x * 4, -unit_x * 4, \
- unit_x * 4, -unit_x * 4); \
+ const __m128i xmm_ux1 = _mm_set_epi16 ((unit_x)&0xffff, (-unit_x)&0xffff, (unit_x)&0xffff, (-unit_x)&0xffff, \
+ (unit_x)&0xffff, (-unit_x)&0xffff, (unit_x)&0xffff, (-unit_x)&0xffff); \
+ const __m128i xmm_ux4 = _mm_set_epi16 ((unit_x * 4)&0xffff, (-unit_x * 4)&0xffff, \
+ (unit_x * 4)&0xffff, (-unit_x * 4)&0xffff, \
+ (unit_x * 4)&0xffff, (-unit_x * 4)&0xffff, \
+ (unit_x * 4)&0xffff, (-unit_x * 4)&0xffff); \
const __m128i xmm_zero = _mm_setzero_si128 (); \
__m128i xmm_x = _mm_set_epi16 (vx + unit_x * 3, -(vx + 1) - unit_x * 3, \
vx + unit_x * 2, -(vx + 1) - unit_x * 2, \
@@ -5620,8 +5620,8 @@ do { \
unit_x * 4, -unit_x * 4, \
unit_x * 4, -unit_x * 4); \
const __m128i xmm_zero = _mm_setzero_si128 (); \
- __m128i xmm_x = _mm_set_epi16 (vx, -(vx + 1), vx, -(vx + 1), \
- vx, -(vx + 1), vx, -(vx + 1))
+ __m128i xmm_x = _mm_set_epi16 (vx&0xffff, (-(vx + 1))&0xffff, vx&0xffff, (-(vx + 1))&0xffff, \
+ vx&0xffff, (-(vx + 1))&0xffff, vx&0xffff, (-(vx + 1))&0xffff)
#define BILINEAR_INTERPOLATE_ONE_PIXEL_HELPER(pix, phase) \
do { \
diff --git a/pixman/pixman/pixman-trap.c b/pixman/pixman/pixman-trap.c
index 91766fdbf..7ccf91be3 100644
--- a/pixman/pixman/pixman-trap.c
+++ b/pixman/pixman/pixman-trap.c
@@ -138,7 +138,7 @@ _pixman_edge_multi_init (pixman_edge_t * e,
if (ne > 0)
{
- int nx = ne / e->dy;
+ pixman_fixed_48_16_t nx = ne / e->dy;
ne -= nx * (pixman_fixed_48_16_t)e->dy;
stepx += nx * e->signdx;
}
diff --git a/pixman/pixman/pixman-version.h b/pixman/pixman/pixman-version.h
new file mode 100644
index 000000000..70642e961
--- /dev/null
+++ b/pixman/pixman/pixman-version.h
@@ -0,0 +1,50 @@
+/*
+ * Copyright © 2008 Red Hat, Inc.
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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
+ * 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.
+ *
+ * Author: Carl D. Worth <cworth@cworth.org>
+ */
+
+#ifndef PIXMAN_VERSION_H__
+#define PIXMAN_VERSION_H__
+
+#ifndef PIXMAN_H__
+# error pixman-version.h should only be included by pixman.h
+#endif
+
+#define PIXMAN_VERSION_MAJOR 0
+#define PIXMAN_VERSION_MINOR 19
+#define PIXMAN_VERSION_MICRO 1
+
+#define PIXMAN_VERSION_STRING "0.19.1"
+
+#define PIXMAN_VERSION_ENCODE(major, minor, micro) ( \
+ ((major) * 10000) \
+ + ((minor) * 100) \
+ + ((micro) * 1))
+
+#define PIXMAN_VERSION PIXMAN_VERSION_ENCODE( \
+ PIXMAN_VERSION_MAJOR, \
+ PIXMAN_VERSION_MINOR, \
+ PIXMAN_VERSION_MICRO)
+
+#endif /* PIXMAN_VERSION_H__ */
diff --git a/pthreads/.gitignore b/pthreads/.gitignore
new file mode 100644
index 000000000..e258bf9d0
--- /dev/null
+++ b/pthreads/.gitignore
@@ -0,0 +1,3 @@
+pthreadVC2.inlined_static_stamp
+pthreadVC2d.inlined_static_stamp
+
diff --git a/pthreads/Makefile b/pthreads/Makefile
index e13341751..bd8e82662 100644..100755
--- a/pthreads/Makefile
+++ b/pthreads/Makefile
@@ -26,9 +26,10 @@ SMALL_STATIC_STAMPS = pthreadVCE$(DLL_VER).small_static_stamp pthreadVSE$(DLL_V
CC = cl
CPPFLAGS = /I. /DHAVE_CONFIG_H
-XCFLAGS = /W3 /MD /nologo
-CFLAGS = /O2 /Ob2 $(XCFLAGS)
-CFLAGSD = /Z7 $(XCFLAGS)
+XCFLAGS = /W3 /Zi /Gy /GF /nologo
+CFLAGS = /O2 /Ob2 /Oi /Ox /Oy /Ot /MD /GL $(XCFLAGS)
+CFLAGSD = /MDd $(XCFLAGS)
+
# Uncomment this if config.h defines RETAIN_WSALASTERROR
#XLIBS = wsock32.lib
@@ -50,7 +51,7 @@ VCFLAGSD = $(CPPFLAGS) $(CFLAGSD)
OBJEXT = obj
RESEXT = res
-
+
include common.mk
DLL_OBJS = $(DLL_OBJS) $(RESOURCE_OBJS)
@@ -176,7 +177,7 @@ VC-static:
@ $(MAKE) /E /nologo EHFLAGS="$(VCFLAGS) /DPTW32_STATIC_LIB /DPTW32_BUILD_INLINED" CLEANUP=__CLEANUP_C pthreadVC$(DLL_VER).inlined_static_stamp
VC-static-debug:
- @ $(MAKE) /E /nologo EHFLAGS="$(VCFLAGSD) /DPTW32_STATIC_LIB /DPTW32_BUILD_INLINED" CLEANUP=__CLEANUP_C pthreadVC$(DLL_VERD).inlined_static_stamp
+ @ $(MAKE) /E /nologo DEBUG=1 EHFLAGS="$(VCFLAGSD) /DPTW32_STATIC_LIB /DPTW32_BUILD_INLINED" CLEANUP=__CLEANUP_C pthreadVC$(DLL_VERD).inlined_static_stamp
realclean: clean
@@ -219,19 +220,25 @@ install:
$(DLLS): $(DLL_OBJS)
$(CC) /LDd /Zi /nologo $(DLL_OBJS) /link /implib:$*.lib $(XLIBS) /out:$@
-$(INLINED_STATIC_STAMPS): $(DLL_OBJS)
+$(INLINED_STATIC_STAMPS): $(OUTDIR) $(DLL_OBJS)
if exist $*.lib del $*.lib
- lib $(DLL_OBJS) /out:$*.lib
+ lib /LTCG $(DLL_OBJS) /out:$*$(SUFFIX).lib
echo. >$@
-$(SMALL_STATIC_STAMPS): $(STATIC_OBJS)
+$(SMALL_STATIC_STAMPS): $(OUTDIR) $(STATIC_OBJS)
if exist $*.lib del $*.lib
- lib $(STATIC_OBJS) /out:$*.lib
+ lib /LTCG $(STATIC_OBJS) /out:$*$(SUFFIX).lib
echo. >$@
+$(OUTDIR):
+ mkdir $(OUTDIR)
+
.c.obj:
$(CC) $(EHFLAGS) /D$(CLEANUP) -c $<
+.c{$(OUTDIR)}.obj:
+ $(CC) $(EHFLAGS) /D$(CLEANUP) -Fo"$@" -c $<
+
# TARGET_CPU is an environment variable set by Visual Studio Command Prompt
# as provided by the SDK
.rc.res:
diff --git a/pthreads/common.mk b/pthreads/common.mk
index da26f719e..86ac3f706 100755
--- a/pthreads/common.mk
+++ b/pthreads/common.mk
@@ -1,11 +1,22 @@
# Common makefile definitions
+!ifdef IS64
+SUFFIX=64
+!else
+SUFFIX=
+!endif
+
+!ifdef DEBUG
+OUTDIR=obj$(SUFFIX)_d
+!else
+OUTDIR=obj$(SUFFIX)
+!endif
RESOURCE_OBJS = \
version.$(RESEXT)
# pthread.c aggregates all source into a single compilation unit for inlinability
DLL_OBJS = \
- pthread.$(OBJEXT)
+ $(OUTDIR)\pthread.$(OBJEXT)
# Separate modules for minimising the size of statically linked images
STATIC_OBJS = \
diff --git a/pthreads/pthread_setaffinity.c b/pthreads/pthread_setaffinity.c
index 62fc4945a..62fc4945a 100755..100644
--- a/pthreads/pthread_setaffinity.c
+++ b/pthreads/pthread_setaffinity.c
diff --git a/pthreads/pthread_timedjoin_np.c b/pthreads/pthread_timedjoin_np.c
index 827b6f675..827b6f675 100755..100644
--- a/pthreads/pthread_timedjoin_np.c
+++ b/pthreads/pthread_timedjoin_np.c
diff --git a/pthreads/pthread_tryjoin_np.c b/pthreads/pthread_tryjoin_np.c
index e9fe1dae6..e9fe1dae6 100755..100644
--- a/pthreads/pthread_tryjoin_np.c
+++ b/pthreads/pthread_tryjoin_np.c
diff --git a/pthreads/sched_setaffinity.c b/pthreads/sched_setaffinity.c
index 07b0fb4f4..07b0fb4f4 100755..100644
--- a/pthreads/sched_setaffinity.c
+++ b/pthreads/sched_setaffinity.c
diff --git a/pthreads/tests/affinity1.c b/pthreads/tests/affinity1.c
index 7014d8875..7014d8875 100755..100644
--- a/pthreads/tests/affinity1.c
+++ b/pthreads/tests/affinity1.c
diff --git a/pthreads/tests/affinity2.c b/pthreads/tests/affinity2.c
index 225840cf1..225840cf1 100755..100644
--- a/pthreads/tests/affinity2.c
+++ b/pthreads/tests/affinity2.c
diff --git a/pthreads/tests/affinity3.c b/pthreads/tests/affinity3.c
index 065dd21a4..065dd21a4 100755..100644
--- a/pthreads/tests/affinity3.c
+++ b/pthreads/tests/affinity3.c
diff --git a/pthreads/tests/affinity4.c b/pthreads/tests/affinity4.c
index 31aad46c2..31aad46c2 100755..100644
--- a/pthreads/tests/affinity4.c
+++ b/pthreads/tests/affinity4.c
diff --git a/pthreads/tests/affinity5.c b/pthreads/tests/affinity5.c
index 8957e28f0..8957e28f0 100755..100644
--- a/pthreads/tests/affinity5.c
+++ b/pthreads/tests/affinity5.c
diff --git a/pthreads/tests/context2.c b/pthreads/tests/context2.c
index 154948a4f..154948a4f 100755..100644
--- a/pthreads/tests/context2.c
+++ b/pthreads/tests/context2.c
diff --git a/pthreads/tests/create3.c b/pthreads/tests/create3.c
index 5063d0ba7..5063d0ba7 100755..100644
--- a/pthreads/tests/create3.c
+++ b/pthreads/tests/create3.c
diff --git a/pthreads/tests/exception3_0.c b/pthreads/tests/exception3_0.c
index bc06bf335..bc06bf335 100755..100644
--- a/pthreads/tests/exception3_0.c
+++ b/pthreads/tests/exception3_0.c
diff --git a/pthreads/tests/join4.c b/pthreads/tests/join4.c
index cbe96d29a..cbe96d29a 100755..100644
--- a/pthreads/tests/join4.c
+++ b/pthreads/tests/join4.c
diff --git a/python.bat b/python.bat
new file mode 100755
index 000000000..189eda246
--- /dev/null
+++ b/python.bat
@@ -0,0 +1,2 @@
+@"c:\cygwin\bin\python2.7.exe" %*
+
diff --git a/releasenotes/README b/releasenotes/README
new file mode 100644
index 000000000..bb9a9ba35
--- /dev/null
+++ b/releasenotes/README
@@ -0,0 +1,4 @@
+This version is not compatible with Windows XP.
+It will install successfully but the installed executables will give an error upon execution.
+On Windows XP install an older version.
+
diff --git a/releasenotes/releasenote_1.0.1.txt b/releasenotes/releasenote_1.0.1.txt
new file mode 100644
index 000000000..ce87e7bf7
--- /dev/null
+++ b/releasenotes/releasenote_1.0.1.txt
@@ -0,0 +1,9 @@
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swicth to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.0.2.txt b/releasenotes/releasenote_1.0.2.txt
new file mode 100644
index 000000000..98c14ad92
--- /dev/null
+++ b/releasenotes/releasenote_1.0.2.txt
@@ -0,0 +1,18 @@
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swicth to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.1.0.txt b/releasenotes/releasenote_1.1.0.txt
new file mode 100644
index 000000000..36f66e8d3
--- /dev/null
+++ b/releasenotes/releasenote_1.1.0.txt
@@ -0,0 +1,38 @@
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swicth to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.1.1.txt b/releasenotes/releasenote_1.1.1.txt
new file mode 100644
index 000000000..03eb367de
--- /dev/null
+++ b/releasenotes/releasenote_1.1.1.txt
@@ -0,0 +1,54 @@
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swicth to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.1.2.txt b/releasenotes/releasenote_1.1.2.txt
new file mode 100644
index 000000000..c60978b69
--- /dev/null
+++ b/releasenotes/releasenote_1.1.2.txt
@@ -0,0 +1,66 @@
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.10.0.0.txt b/releasenotes/releasenote_1.10.0.0.txt
new file mode 100644
index 000000000..3710d9836
--- /dev/null
+++ b/releasenotes/releasenote_1.10.0.0.txt
@@ -0,0 +1,528 @@
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.10.0.1.txt b/releasenotes/releasenote_1.10.0.1.txt
new file mode 100644
index 000000000..a83eb0f6f
--- /dev/null
+++ b/releasenotes/releasenote_1.10.0.1.txt
@@ -0,0 +1,600 @@
+Changes in 1.10.0.1
+-------------------
+- Update the following packages:
+ xserver git update until 29/3/2011
+ mesa git update until 29/3/2011
+ xkeyboard-config git update until 29/3/2011
+ libX11 git update until 29/3/2011
+ pixman git update until 29/3/2011
+ libxcb git update until 29/3/2011
+ fontconfig git update until 29/3/2011
+ glproto git update until 29/3/2011
+ libXau git update until 29/3/2011
+ libXft git update until 29/3/2011
+ libXmu git update until 29/3/2011
+ libfontenc git update until 29/3/2011
+ mkfontscale git update until 29/3/2011
+ randrproto git update until 29/3/2011
+ xtrans git update until 29/3/2011
+ xwininfo git update until 29/3/2011
+ xproto-7.0.21 git update until 29/3/2011
+ xineramaproto-1.2.1
+ libXt-1.1.1
+ libxkbfile-1.0.7
+ libXpm-3.5.9
+ libXfont-1.4.3
+ libXaw-1.0.9
+ bdftopcf-1.0.3
+ encodings-1.0.4
+ fixesproto-5.0
+ font-adobe-100dpi-1.0.3
+ font-adobe-75dpi-1.0.3
+ font-adobe-utopia-100dpi-1.0.4
+ font-adobe-utopia-75dpi-1.0.4
+ font-adobe-utopia-type1-1.0.4
+ font-alias-1.0.3
+ font-arabic-misc-1.0.3
+ font-bh-100dpi-1.0.3
+ font-bh-75dpi-1.0.3
+ font-bh-lucidatypewriter-100dpi-1.0.3
+ font-bh-lucidatypewriter-75dpi-1.0.3
+ font-bh-ttf-1.0.3
+ font-bh-type1-1.0.3
+ font-bitstream-100dpi-1.0.3
+ font-bitstream-75dpi-1.0.3
+ font-bitstream-speedo-1.0.2
+ font-bitstream-type1-1.0.3
+ font-cronyx-cyrillic-1.0.3
+ font-cursor-misc-1.0.3
+ font-daewoo-misc-1.0.3
+ font-dec-misc-1.0.3
+ font-ibm-type1-1.0.3
+ font-isas-misc-1.0.3
+ font-jis-misc-1.0.3
+ font-micro-misc-1.0.3
+ font-misc-cyrillic-1.0.3
+ font-misc-ethiopic-1.0.3
+ font-misc-meltho-1.0.3
+ font-misc-misc-1.1.2
+ font-mutt-misc-1.0.3
+ font-schumacher-misc-1.1.2
+ font-screen-cyrillic-1.0.4
+ font-sony-misc-1.0.3
+ font-sun-misc-1.0.3
+ font-util-1.2.0
+ font-winitzki-cyrillic-1.0.3
+ font-xfree86-type1-1.0.4
+- Added ipv6 support
+- Solved past problem in windows when used with x2goclient (with -clipboard)
+- Solved problem of GetKeyState not always returning the correct state in WM_SETFOCUS
+- Delay calling winInitializeModeKeyStates until the keyboard device has been started
+- Solved possible crash due to NULL pointer access
+
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.10.1.0.txt b/releasenotes/releasenote_1.10.1.0.txt
new file mode 100644
index 000000000..300a072f8
--- /dev/null
+++ b/releasenotes/releasenote_1.10.1.0.txt
@@ -0,0 +1,620 @@
+Changes in 1.10.1.0
+-------------------
+- Update the following packages:
+ mesa git update until 5/5/2011
+ xserver git update until 5/5/2011
+ xkeyboard-config git update until 5/5/2011
+ libxcb git update until 5/5/2011
+ xkbcomp git update until 5/5/2011
+ libXext git update until 5/5/2011
+ libXmu git update until 5/5/2011
+ libX11 git update until 5/5/2011
+ libXdmcp git update until 5/5/2011
+ xextproto git update until 5/5/2011
+ libxtrans git update until 5/5/2011
+ pixman git update until 5/5/2011
+ glproto git update until 5/5/2011
+ openssl-1.0.0d
+- wgl; Solved crash because of pointer usages after memory has been freed.
+
+
+Changes in 1.10.0.1
+-------------------
+- Update the following packages:
+ xserver git update until 29/3/2011
+ mesa git update until 29/3/2011
+ xkeyboard-config git update until 29/3/2011
+ libX11 git update until 29/3/2011
+ pixman git update until 29/3/2011
+ libxcb git update until 29/3/2011
+ fontconfig git update until 29/3/2011
+ glproto git update until 29/3/2011
+ libXau git update until 29/3/2011
+ libXft git update until 29/3/2011
+ libXmu git update until 29/3/2011
+ libfontenc git update until 29/3/2011
+ mkfontscale git update until 29/3/2011
+ randrproto git update until 29/3/2011
+ xtrans git update until 29/3/2011
+ xwininfo git update until 29/3/2011
+ xproto-7.0.21 git update until 29/3/2011
+ xineramaproto-1.2.1
+ libXt-1.1.1
+ libxkbfile-1.0.7
+ libXpm-3.5.9
+ libXfont-1.4.3
+ libXaw-1.0.9
+ bdftopcf-1.0.3
+ encodings-1.0.4
+ fixesproto-5.0
+ font-adobe-100dpi-1.0.3
+ font-adobe-75dpi-1.0.3
+ font-adobe-utopia-100dpi-1.0.4
+ font-adobe-utopia-75dpi-1.0.4
+ font-adobe-utopia-type1-1.0.4
+ font-alias-1.0.3
+ font-arabic-misc-1.0.3
+ font-bh-100dpi-1.0.3
+ font-bh-75dpi-1.0.3
+ font-bh-lucidatypewriter-100dpi-1.0.3
+ font-bh-lucidatypewriter-75dpi-1.0.3
+ font-bh-ttf-1.0.3
+ font-bh-type1-1.0.3
+ font-bitstream-100dpi-1.0.3
+ font-bitstream-75dpi-1.0.3
+ font-bitstream-speedo-1.0.2
+ font-bitstream-type1-1.0.3
+ font-cronyx-cyrillic-1.0.3
+ font-cursor-misc-1.0.3
+ font-daewoo-misc-1.0.3
+ font-dec-misc-1.0.3
+ font-ibm-type1-1.0.3
+ font-isas-misc-1.0.3
+ font-jis-misc-1.0.3
+ font-micro-misc-1.0.3
+ font-misc-cyrillic-1.0.3
+ font-misc-ethiopic-1.0.3
+ font-misc-meltho-1.0.3
+ font-misc-misc-1.1.2
+ font-mutt-misc-1.0.3
+ font-schumacher-misc-1.1.2
+ font-screen-cyrillic-1.0.4
+ font-sony-misc-1.0.3
+ font-sun-misc-1.0.3
+ font-util-1.2.0
+ font-winitzki-cyrillic-1.0.3
+ font-xfree86-type1-1.0.4
+- Added ipv6 support
+- Solved past problem in windows when used with x2goclient (with -clipboard)
+- Solved problem of GetKeyState not always returning the correct state in WM_SETFOCUS
+- Delay calling winInitializeModeKeyStates until the keyboard device has been started
+- Solved possible crash due to NULL pointer access
+
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.10.1.1.txt b/releasenotes/releasenote_1.10.1.1.txt
new file mode 100644
index 000000000..7559f4ed3
--- /dev/null
+++ b/releasenotes/releasenote_1.10.1.1.txt
@@ -0,0 +1,635 @@
+Changes in 1.10.1.1
+-------------------
+- Update the following packages:
+ glproto git update until 24/5/2011
+ libfontenc git update until 24/5/2011
+ libxcb git update until 24/5/2011
+ pixman git update until 24/5/2011
+ xkeyboard-config git update until 24/5/2011
+ mesa git update until 24/5/2011
+ xserver git update until 24/5/2011
+ xcb-proto git update until 24/5/2011
+ mkfontscale git update until 24/5/2011
+- xkeyboard-config: Solved problem with Alt Gr key on some keyboards (e.g. belgian)
+
+
+Changes in 1.10.1.0
+-------------------
+- Update the following packages:
+ mesa git update until 5/5/2011
+ xserver git update until 5/5/2011
+ xkeyboard-config git update until 5/5/2011
+ libxcb git update until 5/5/2011
+ xkbcomp git update until 5/5/2011
+ libXext git update until 5/5/2011
+ libXmu git update until 5/5/2011
+ libX11 git update until 5/5/2011
+ libXdmcp git update until 5/5/2011
+ xextproto git update until 5/5/2011
+ libxtrans git update until 5/5/2011
+ pixman git update until 5/5/2011
+ glproto git update until 5/5/2011
+ openssl-1.0.0d
+- wgl; Solved crash because of pointer usages after memory has been freed.
+
+
+Changes in 1.10.0.1
+-------------------
+- Update the following packages:
+ xserver git update until 29/3/2011
+ mesa git update until 29/3/2011
+ xkeyboard-config git update until 29/3/2011
+ libX11 git update until 29/3/2011
+ pixman git update until 29/3/2011
+ libxcb git update until 29/3/2011
+ fontconfig git update until 29/3/2011
+ glproto git update until 29/3/2011
+ libXau git update until 29/3/2011
+ libXft git update until 29/3/2011
+ libXmu git update until 29/3/2011
+ libfontenc git update until 29/3/2011
+ mkfontscale git update until 29/3/2011
+ randrproto git update until 29/3/2011
+ xtrans git update until 29/3/2011
+ xwininfo git update until 29/3/2011
+ xproto-7.0.21 git update until 29/3/2011
+ xineramaproto-1.2.1
+ libXt-1.1.1
+ libxkbfile-1.0.7
+ libXpm-3.5.9
+ libXfont-1.4.3
+ libXaw-1.0.9
+ bdftopcf-1.0.3
+ encodings-1.0.4
+ fixesproto-5.0
+ font-adobe-100dpi-1.0.3
+ font-adobe-75dpi-1.0.3
+ font-adobe-utopia-100dpi-1.0.4
+ font-adobe-utopia-75dpi-1.0.4
+ font-adobe-utopia-type1-1.0.4
+ font-alias-1.0.3
+ font-arabic-misc-1.0.3
+ font-bh-100dpi-1.0.3
+ font-bh-75dpi-1.0.3
+ font-bh-lucidatypewriter-100dpi-1.0.3
+ font-bh-lucidatypewriter-75dpi-1.0.3
+ font-bh-ttf-1.0.3
+ font-bh-type1-1.0.3
+ font-bitstream-100dpi-1.0.3
+ font-bitstream-75dpi-1.0.3
+ font-bitstream-speedo-1.0.2
+ font-bitstream-type1-1.0.3
+ font-cronyx-cyrillic-1.0.3
+ font-cursor-misc-1.0.3
+ font-daewoo-misc-1.0.3
+ font-dec-misc-1.0.3
+ font-ibm-type1-1.0.3
+ font-isas-misc-1.0.3
+ font-jis-misc-1.0.3
+ font-micro-misc-1.0.3
+ font-misc-cyrillic-1.0.3
+ font-misc-ethiopic-1.0.3
+ font-misc-meltho-1.0.3
+ font-misc-misc-1.1.2
+ font-mutt-misc-1.0.3
+ font-schumacher-misc-1.1.2
+ font-screen-cyrillic-1.0.4
+ font-sony-misc-1.0.3
+ font-sun-misc-1.0.3
+ font-util-1.2.0
+ font-winitzki-cyrillic-1.0.3
+ font-xfree86-type1-1.0.4
+- Added ipv6 support
+- Solved past problem in windows when used with x2goclient (with -clipboard)
+- Solved problem of GetKeyState not always returning the correct state in WM_SETFOCUS
+- Delay calling winInitializeModeKeyStates until the keyboard device has been started
+- Solved possible crash due to NULL pointer access
+
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.10.3.0.txt b/releasenotes/releasenote_1.10.3.0.txt
new file mode 100644
index 000000000..2f3945bf5
--- /dev/null
+++ b/releasenotes/releasenote_1.10.3.0.txt
@@ -0,0 +1,656 @@
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 11/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ mkfontscale
+ xkeyboard-config
+ libX11
+ libXext
+ libXmu
+ xkbcomp
+ libXdmcp
+ libxtrans
+ x11proto
+ fontconfig
+ xwininfo
+- Increased number of clients to 1024
+- Also show the cursor in the main window when the xdmcp host selection dialog is shown
+
+Changes in 1.10.1.1
+-------------------
+- Update the following packages:
+ glproto git update until 24/5/2011
+ libfontenc git update until 24/5/2011
+ libxcb git update until 24/5/2011
+ pixman git update until 24/5/2011
+ xkeyboard-config git update until 24/5/2011
+ mesa git update until 24/5/2011
+ xserver git update until 24/5/2011
+ xcb-proto git update until 24/5/2011
+ mkfontscale git update until 24/5/2011
+- xkeyboard-config: Solved problem with Alt Gr key on some keyboards (e.g. belgian)
+
+
+Changes in 1.10.1.0
+-------------------
+- Update the following packages:
+ mesa git update until 5/5/2011
+ xserver git update until 5/5/2011
+ xkeyboard-config git update until 5/5/2011
+ libxcb git update until 5/5/2011
+ xkbcomp git update until 5/5/2011
+ libXext git update until 5/5/2011
+ libXmu git update until 5/5/2011
+ libX11 git update until 5/5/2011
+ libXdmcp git update until 5/5/2011
+ xextproto git update until 5/5/2011
+ libxtrans git update until 5/5/2011
+ pixman git update until 5/5/2011
+ glproto git update until 5/5/2011
+ openssl-1.0.0d
+- wgl; Solved crash because of pointer usages after memory has been freed.
+
+
+Changes in 1.10.0.1
+-------------------
+- Update the following packages:
+ xserver git update until 29/3/2011
+ mesa git update until 29/3/2011
+ xkeyboard-config git update until 29/3/2011
+ libX11 git update until 29/3/2011
+ pixman git update until 29/3/2011
+ libxcb git update until 29/3/2011
+ fontconfig git update until 29/3/2011
+ glproto git update until 29/3/2011
+ libXau git update until 29/3/2011
+ libXft git update until 29/3/2011
+ libXmu git update until 29/3/2011
+ libfontenc git update until 29/3/2011
+ mkfontscale git update until 29/3/2011
+ randrproto git update until 29/3/2011
+ xtrans git update until 29/3/2011
+ xwininfo git update until 29/3/2011
+ xproto-7.0.21 git update until 29/3/2011
+ xineramaproto-1.2.1
+ libXt-1.1.1
+ libxkbfile-1.0.7
+ libXpm-3.5.9
+ libXfont-1.4.3
+ libXaw-1.0.9
+ bdftopcf-1.0.3
+ encodings-1.0.4
+ fixesproto-5.0
+ font-adobe-100dpi-1.0.3
+ font-adobe-75dpi-1.0.3
+ font-adobe-utopia-100dpi-1.0.4
+ font-adobe-utopia-75dpi-1.0.4
+ font-adobe-utopia-type1-1.0.4
+ font-alias-1.0.3
+ font-arabic-misc-1.0.3
+ font-bh-100dpi-1.0.3
+ font-bh-75dpi-1.0.3
+ font-bh-lucidatypewriter-100dpi-1.0.3
+ font-bh-lucidatypewriter-75dpi-1.0.3
+ font-bh-ttf-1.0.3
+ font-bh-type1-1.0.3
+ font-bitstream-100dpi-1.0.3
+ font-bitstream-75dpi-1.0.3
+ font-bitstream-speedo-1.0.2
+ font-bitstream-type1-1.0.3
+ font-cronyx-cyrillic-1.0.3
+ font-cursor-misc-1.0.3
+ font-daewoo-misc-1.0.3
+ font-dec-misc-1.0.3
+ font-ibm-type1-1.0.3
+ font-isas-misc-1.0.3
+ font-jis-misc-1.0.3
+ font-micro-misc-1.0.3
+ font-misc-cyrillic-1.0.3
+ font-misc-ethiopic-1.0.3
+ font-misc-meltho-1.0.3
+ font-misc-misc-1.1.2
+ font-mutt-misc-1.0.3
+ font-schumacher-misc-1.1.2
+ font-screen-cyrillic-1.0.4
+ font-sony-misc-1.0.3
+ font-sun-misc-1.0.3
+ font-util-1.2.0
+ font-winitzki-cyrillic-1.0.3
+ font-xfree86-type1-1.0.4
+- Added ipv6 support
+- Solved past problem in windows when used with x2goclient (with -clipboard)
+- Solved problem of GetKeyState not always returning the correct state in WM_SETFOCUS
+- Delay calling winInitializeModeKeyStates until the keyboard device has been started
+- Solved possible crash due to NULL pointer access
+
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.10.3.1.txt b/releasenotes/releasenote_1.10.3.1.txt
new file mode 100644
index 000000000..9b1bdc75c
--- /dev/null
+++ b/releasenotes/releasenote_1.10.3.1.txt
@@ -0,0 +1,672 @@
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 18/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libX11
+ freetype 2.4.5
+ inputproto-2.0.2
+ xproto-7.0.22
+ resourceproto-1.2.0
+ pthreads cvs version until 18/7/2011
+
+- Fixed regression in wgl implementation in multi-window mode
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 11/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ mkfontscale
+ xkeyboard-config
+ libX11
+ libXext
+ libXmu
+ xkbcomp
+ libXdmcp
+ libxtrans
+ x11proto
+ fontconfig
+ xwininfo
+- Increased number of clients to 1024
+- Also show the cursor in the main window when the xdmcp host selection dialog is shown
+
+Changes in 1.10.1.1
+-------------------
+- Update the following packages:
+ glproto git update until 24/5/2011
+ libfontenc git update until 24/5/2011
+ libxcb git update until 24/5/2011
+ pixman git update until 24/5/2011
+ xkeyboard-config git update until 24/5/2011
+ mesa git update until 24/5/2011
+ xserver git update until 24/5/2011
+ xcb-proto git update until 24/5/2011
+ mkfontscale git update until 24/5/2011
+- xkeyboard-config: Solved problem with Alt Gr key on some keyboards (e.g. belgian)
+
+
+Changes in 1.10.1.0
+-------------------
+- Update the following packages:
+ mesa git update until 5/5/2011
+ xserver git update until 5/5/2011
+ xkeyboard-config git update until 5/5/2011
+ libxcb git update until 5/5/2011
+ xkbcomp git update until 5/5/2011
+ libXext git update until 5/5/2011
+ libXmu git update until 5/5/2011
+ libX11 git update until 5/5/2011
+ libXdmcp git update until 5/5/2011
+ xextproto git update until 5/5/2011
+ libxtrans git update until 5/5/2011
+ pixman git update until 5/5/2011
+ glproto git update until 5/5/2011
+ openssl-1.0.0d
+- wgl; Solved crash because of pointer usages after memory has been freed.
+
+
+Changes in 1.10.0.1
+-------------------
+- Update the following packages:
+ xserver git update until 29/3/2011
+ mesa git update until 29/3/2011
+ xkeyboard-config git update until 29/3/2011
+ libX11 git update until 29/3/2011
+ pixman git update until 29/3/2011
+ libxcb git update until 29/3/2011
+ fontconfig git update until 29/3/2011
+ glproto git update until 29/3/2011
+ libXau git update until 29/3/2011
+ libXft git update until 29/3/2011
+ libXmu git update until 29/3/2011
+ libfontenc git update until 29/3/2011
+ mkfontscale git update until 29/3/2011
+ randrproto git update until 29/3/2011
+ xtrans git update until 29/3/2011
+ xwininfo git update until 29/3/2011
+ xproto-7.0.21 git update until 29/3/2011
+ xineramaproto-1.2.1
+ libXt-1.1.1
+ libxkbfile-1.0.7
+ libXpm-3.5.9
+ libXfont-1.4.3
+ libXaw-1.0.9
+ bdftopcf-1.0.3
+ encodings-1.0.4
+ fixesproto-5.0
+ font-adobe-100dpi-1.0.3
+ font-adobe-75dpi-1.0.3
+ font-adobe-utopia-100dpi-1.0.4
+ font-adobe-utopia-75dpi-1.0.4
+ font-adobe-utopia-type1-1.0.4
+ font-alias-1.0.3
+ font-arabic-misc-1.0.3
+ font-bh-100dpi-1.0.3
+ font-bh-75dpi-1.0.3
+ font-bh-lucidatypewriter-100dpi-1.0.3
+ font-bh-lucidatypewriter-75dpi-1.0.3
+ font-bh-ttf-1.0.3
+ font-bh-type1-1.0.3
+ font-bitstream-100dpi-1.0.3
+ font-bitstream-75dpi-1.0.3
+ font-bitstream-speedo-1.0.2
+ font-bitstream-type1-1.0.3
+ font-cronyx-cyrillic-1.0.3
+ font-cursor-misc-1.0.3
+ font-daewoo-misc-1.0.3
+ font-dec-misc-1.0.3
+ font-ibm-type1-1.0.3
+ font-isas-misc-1.0.3
+ font-jis-misc-1.0.3
+ font-micro-misc-1.0.3
+ font-misc-cyrillic-1.0.3
+ font-misc-ethiopic-1.0.3
+ font-misc-meltho-1.0.3
+ font-misc-misc-1.1.2
+ font-mutt-misc-1.0.3
+ font-schumacher-misc-1.1.2
+ font-screen-cyrillic-1.0.4
+ font-sony-misc-1.0.3
+ font-sun-misc-1.0.3
+ font-util-1.2.0
+ font-winitzki-cyrillic-1.0.3
+ font-xfree86-type1-1.0.4
+- Added ipv6 support
+- Solved past problem in windows when used with x2goclient (with -clipboard)
+- Solved problem of GetKeyState not always returning the correct state in WM_SETFOCUS
+- Delay calling winInitializeModeKeyStates until the keyboard device has been started
+- Solved possible crash due to NULL pointer access
+
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.11.0.0.txt b/releasenotes/releasenote_1.11.0.0.txt
new file mode 100644
index 000000000..3012edaed
--- /dev/null
+++ b/releasenotes/releasenote_1.11.0.0.txt
@@ -0,0 +1,694 @@
+Changes in 1.11.0.0
+-------------------
+- Update the following packages:
+ git updates until 5/9/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ pixman
+ xkeyboard-config
+ randrproto
+ xwininfo
+ libXmu
+ libXfont-1.4.4
+ freetype 2.4.6
+- Installer: installation of fonts is optional now
+- xserver: Use AllocDevicePair for create the mouse and keyboard devices
+- xserver: Solved problem of window not taking the default window position when
+ created.
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 18/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libX11
+ freetype 2.4.5
+ inputproto-2.0.2
+ xproto-7.0.22
+ resourceproto-1.2.0
+ pthreads cvs version until 18/7/2011
+
+- Fixed regression in wgl implementation in multi-window mode
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 11/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ mkfontscale
+ xkeyboard-config
+ libX11
+ libXext
+ libXmu
+ xkbcomp
+ libXdmcp
+ libxtrans
+ x11proto
+ fontconfig
+ xwininfo
+- Increased number of clients to 1024
+- Also show the cursor in the main window when the xdmcp host selection dialog is shown
+
+Changes in 1.10.1.1
+-------------------
+- Update the following packages:
+ glproto git update until 24/5/2011
+ libfontenc git update until 24/5/2011
+ libxcb git update until 24/5/2011
+ pixman git update until 24/5/2011
+ xkeyboard-config git update until 24/5/2011
+ mesa git update until 24/5/2011
+ xserver git update until 24/5/2011
+ xcb-proto git update until 24/5/2011
+ mkfontscale git update until 24/5/2011
+- xkeyboard-config: Solved problem with Alt Gr key on some keyboards (e.g. belgian)
+
+
+Changes in 1.10.1.0
+-------------------
+- Update the following packages:
+ mesa git update until 5/5/2011
+ xserver git update until 5/5/2011
+ xkeyboard-config git update until 5/5/2011
+ libxcb git update until 5/5/2011
+ xkbcomp git update until 5/5/2011
+ libXext git update until 5/5/2011
+ libXmu git update until 5/5/2011
+ libX11 git update until 5/5/2011
+ libXdmcp git update until 5/5/2011
+ xextproto git update until 5/5/2011
+ libxtrans git update until 5/5/2011
+ pixman git update until 5/5/2011
+ glproto git update until 5/5/2011
+ openssl-1.0.0d
+- wgl; Solved crash because of pointer usages after memory has been freed.
+
+
+Changes in 1.10.0.1
+-------------------
+- Update the following packages:
+ xserver git update until 29/3/2011
+ mesa git update until 29/3/2011
+ xkeyboard-config git update until 29/3/2011
+ libX11 git update until 29/3/2011
+ pixman git update until 29/3/2011
+ libxcb git update until 29/3/2011
+ fontconfig git update until 29/3/2011
+ glproto git update until 29/3/2011
+ libXau git update until 29/3/2011
+ libXft git update until 29/3/2011
+ libXmu git update until 29/3/2011
+ libfontenc git update until 29/3/2011
+ mkfontscale git update until 29/3/2011
+ randrproto git update until 29/3/2011
+ xtrans git update until 29/3/2011
+ xwininfo git update until 29/3/2011
+ xproto-7.0.21 git update until 29/3/2011
+ xineramaproto-1.2.1
+ libXt-1.1.1
+ libxkbfile-1.0.7
+ libXpm-3.5.9
+ libXfont-1.4.3
+ libXaw-1.0.9
+ bdftopcf-1.0.3
+ encodings-1.0.4
+ fixesproto-5.0
+ font-adobe-100dpi-1.0.3
+ font-adobe-75dpi-1.0.3
+ font-adobe-utopia-100dpi-1.0.4
+ font-adobe-utopia-75dpi-1.0.4
+ font-adobe-utopia-type1-1.0.4
+ font-alias-1.0.3
+ font-arabic-misc-1.0.3
+ font-bh-100dpi-1.0.3
+ font-bh-75dpi-1.0.3
+ font-bh-lucidatypewriter-100dpi-1.0.3
+ font-bh-lucidatypewriter-75dpi-1.0.3
+ font-bh-ttf-1.0.3
+ font-bh-type1-1.0.3
+ font-bitstream-100dpi-1.0.3
+ font-bitstream-75dpi-1.0.3
+ font-bitstream-speedo-1.0.2
+ font-bitstream-type1-1.0.3
+ font-cronyx-cyrillic-1.0.3
+ font-cursor-misc-1.0.3
+ font-daewoo-misc-1.0.3
+ font-dec-misc-1.0.3
+ font-ibm-type1-1.0.3
+ font-isas-misc-1.0.3
+ font-jis-misc-1.0.3
+ font-micro-misc-1.0.3
+ font-misc-cyrillic-1.0.3
+ font-misc-ethiopic-1.0.3
+ font-misc-meltho-1.0.3
+ font-misc-misc-1.1.2
+ font-mutt-misc-1.0.3
+ font-schumacher-misc-1.1.2
+ font-screen-cyrillic-1.0.4
+ font-sony-misc-1.0.3
+ font-sun-misc-1.0.3
+ font-util-1.2.0
+ font-winitzki-cyrillic-1.0.3
+ font-xfree86-type1-1.0.4
+- Added ipv6 support
+- Solved past problem in windows when used with x2goclient (with -clipboard)
+- Solved problem of GetKeyState not always returning the correct state in WM_SETFOCUS
+- Delay calling winInitializeModeKeyStates until the keyboard device has been started
+- Solved possible crash due to NULL pointer access
+
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.11.2.0.txt b/releasenotes/releasenote_1.11.2.0.txt
new file mode 100644
index 000000000..2a398d382
--- /dev/null
+++ b/releasenotes/releasenote_1.11.2.0.txt
@@ -0,0 +1,719 @@
+Changes in 1.11.2.0
+-------------------
+- Update the following packages:
+ git updates until 18/11/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ libXmu
+ libxtrans
+ libXdmcp
+ libXau
+ libXft
+ libXinerama
+ libfontenc
+ xwininfo
+ libXmu
+ mkfontscale
+ fontconfig
+ freetype 2.4.8
+ openssl-1.0.0e
+ inputproto-2.1.99.1
+
+Changes in 1.11.0.0
+-------------------
+- Update the following packages:
+ git updates until 5/9/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ randrproto
+ xwininfo
+ libXmu
+ libXfont-1.4.4
+ freetype 2.4.6
+- Installer: installation of fonts is optional now
+- xserver: Use AllocDevicePair for create the mouse and keyboard devices
+- xserver: Solved problem of window not taking the default window position when
+ created.
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 18/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libX11
+ freetype 2.4.5
+ inputproto-2.0.2
+ xproto-7.0.22
+ resourceproto-1.2.0
+ pthreads cvs version until 18/7/2011
+
+- Fixed regression in wgl implementation in multi-window mode
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 11/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ mkfontscale
+ xkeyboard-config
+ libX11
+ libXext
+ libXmu
+ xkbcomp
+ libXdmcp
+ libxtrans
+ x11proto
+ fontconfig
+ xwininfo
+- Increased number of clients to 1024
+- Also show the cursor in the main window when the xdmcp host selection dialog is shown
+
+Changes in 1.10.1.1
+-------------------
+- Update the following packages:
+ glproto git update until 24/5/2011
+ libfontenc git update until 24/5/2011
+ libxcb git update until 24/5/2011
+ pixman git update until 24/5/2011
+ xkeyboard-config git update until 24/5/2011
+ mesa git update until 24/5/2011
+ xserver git update until 24/5/2011
+ xcb-proto git update until 24/5/2011
+ mkfontscale git update until 24/5/2011
+- xkeyboard-config: Solved problem with Alt Gr key on some keyboards (e.g. belgian)
+
+
+Changes in 1.10.1.0
+-------------------
+- Update the following packages:
+ mesa git update until 5/5/2011
+ xserver git update until 5/5/2011
+ xkeyboard-config git update until 5/5/2011
+ libxcb git update until 5/5/2011
+ xkbcomp git update until 5/5/2011
+ libXext git update until 5/5/2011
+ libXmu git update until 5/5/2011
+ libX11 git update until 5/5/2011
+ libXdmcp git update until 5/5/2011
+ xextproto git update until 5/5/2011
+ libxtrans git update until 5/5/2011
+ pixman git update until 5/5/2011
+ glproto git update until 5/5/2011
+ openssl-1.0.0d
+- wgl; Solved crash because of pointer usages after memory has been freed.
+
+
+Changes in 1.10.0.1
+-------------------
+- Update the following packages:
+ xserver git update until 29/3/2011
+ mesa git update until 29/3/2011
+ xkeyboard-config git update until 29/3/2011
+ libX11 git update until 29/3/2011
+ pixman git update until 29/3/2011
+ libxcb git update until 29/3/2011
+ fontconfig git update until 29/3/2011
+ glproto git update until 29/3/2011
+ libXau git update until 29/3/2011
+ libXft git update until 29/3/2011
+ libXmu git update until 29/3/2011
+ libfontenc git update until 29/3/2011
+ mkfontscale git update until 29/3/2011
+ randrproto git update until 29/3/2011
+ xtrans git update until 29/3/2011
+ xwininfo git update until 29/3/2011
+ xproto-7.0.21 git update until 29/3/2011
+ xineramaproto-1.2.1
+ libXt-1.1.1
+ libxkbfile-1.0.7
+ libXpm-3.5.9
+ libXfont-1.4.3
+ libXaw-1.0.9
+ bdftopcf-1.0.3
+ encodings-1.0.4
+ fixesproto-5.0
+ font-adobe-100dpi-1.0.3
+ font-adobe-75dpi-1.0.3
+ font-adobe-utopia-100dpi-1.0.4
+ font-adobe-utopia-75dpi-1.0.4
+ font-adobe-utopia-type1-1.0.4
+ font-alias-1.0.3
+ font-arabic-misc-1.0.3
+ font-bh-100dpi-1.0.3
+ font-bh-75dpi-1.0.3
+ font-bh-lucidatypewriter-100dpi-1.0.3
+ font-bh-lucidatypewriter-75dpi-1.0.3
+ font-bh-ttf-1.0.3
+ font-bh-type1-1.0.3
+ font-bitstream-100dpi-1.0.3
+ font-bitstream-75dpi-1.0.3
+ font-bitstream-speedo-1.0.2
+ font-bitstream-type1-1.0.3
+ font-cronyx-cyrillic-1.0.3
+ font-cursor-misc-1.0.3
+ font-daewoo-misc-1.0.3
+ font-dec-misc-1.0.3
+ font-ibm-type1-1.0.3
+ font-isas-misc-1.0.3
+ font-jis-misc-1.0.3
+ font-micro-misc-1.0.3
+ font-misc-cyrillic-1.0.3
+ font-misc-ethiopic-1.0.3
+ font-misc-meltho-1.0.3
+ font-misc-misc-1.1.2
+ font-mutt-misc-1.0.3
+ font-schumacher-misc-1.1.2
+ font-screen-cyrillic-1.0.4
+ font-sony-misc-1.0.3
+ font-sun-misc-1.0.3
+ font-util-1.2.0
+ font-winitzki-cyrillic-1.0.3
+ font-xfree86-type1-1.0.4
+- Added ipv6 support
+- Solved past problem in windows when used with x2goclient (with -clipboard)
+- Solved problem of GetKeyState not always returning the correct state in WM_SETFOCUS
+- Delay calling winInitializeModeKeyStates until the keyboard device has been started
+- Solved possible crash due to NULL pointer access
+
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.11.3.0.txt b/releasenotes/releasenote_1.11.3.0.txt
new file mode 100644
index 000000000..3e50c70e7
--- /dev/null
+++ b/releasenotes/releasenote_1.11.3.0.txt
@@ -0,0 +1,734 @@
+Changes in 1.11.3.0
+-------------------
+- Update the following packages:
+ git updates until 17/12/2011 of the following packages
+ mesa
+ xserver
+ libxtrans
+ libX11
+ pixman
+ libxcb
+ glproto
+ xkeyboard-config
+
+- Added -parentprocessid command line option
+
+Changes in 1.11.2.0
+-------------------
+- Update the following packages:
+ git updates until 18/11/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ libXmu
+ libxtrans
+ libXdmcp
+ libXau
+ libXft
+ libXinerama
+ libfontenc
+ xwininfo
+ libXmu
+ mkfontscale
+ fontconfig
+ freetype 2.4.8
+ openssl-1.0.0e
+ inputproto-2.1.99.1
+
+Changes in 1.11.0.0
+-------------------
+- Update the following packages:
+ git updates until 5/9/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ randrproto
+ xwininfo
+ libXmu
+ libXfont-1.4.4
+ freetype 2.4.6
+- Installer: installation of fonts is optional now
+- xserver: Use AllocDevicePair for create the mouse and keyboard devices
+- xserver: Solved problem of window not taking the default window position when
+ created.
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 18/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libX11
+ freetype 2.4.5
+ inputproto-2.0.2
+ xproto-7.0.22
+ resourceproto-1.2.0
+ pthreads cvs version until 18/7/2011
+
+- Fixed regression in wgl implementation in multi-window mode
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 11/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ mkfontscale
+ xkeyboard-config
+ libX11
+ libXext
+ libXmu
+ xkbcomp
+ libXdmcp
+ libxtrans
+ x11proto
+ fontconfig
+ xwininfo
+- Increased number of clients to 1024
+- Also show the cursor in the main window when the xdmcp host selection dialog is shown
+
+Changes in 1.10.1.1
+-------------------
+- Update the following packages:
+ glproto git update until 24/5/2011
+ libfontenc git update until 24/5/2011
+ libxcb git update until 24/5/2011
+ pixman git update until 24/5/2011
+ xkeyboard-config git update until 24/5/2011
+ mesa git update until 24/5/2011
+ xserver git update until 24/5/2011
+ xcb-proto git update until 24/5/2011
+ mkfontscale git update until 24/5/2011
+- xkeyboard-config: Solved problem with Alt Gr key on some keyboards (e.g. belgian)
+
+
+Changes in 1.10.1.0
+-------------------
+- Update the following packages:
+ mesa git update until 5/5/2011
+ xserver git update until 5/5/2011
+ xkeyboard-config git update until 5/5/2011
+ libxcb git update until 5/5/2011
+ xkbcomp git update until 5/5/2011
+ libXext git update until 5/5/2011
+ libXmu git update until 5/5/2011
+ libX11 git update until 5/5/2011
+ libXdmcp git update until 5/5/2011
+ xextproto git update until 5/5/2011
+ libxtrans git update until 5/5/2011
+ pixman git update until 5/5/2011
+ glproto git update until 5/5/2011
+ openssl-1.0.0d
+- wgl; Solved crash because of pointer usages after memory has been freed.
+
+
+Changes in 1.10.0.1
+-------------------
+- Update the following packages:
+ xserver git update until 29/3/2011
+ mesa git update until 29/3/2011
+ xkeyboard-config git update until 29/3/2011
+ libX11 git update until 29/3/2011
+ pixman git update until 29/3/2011
+ libxcb git update until 29/3/2011
+ fontconfig git update until 29/3/2011
+ glproto git update until 29/3/2011
+ libXau git update until 29/3/2011
+ libXft git update until 29/3/2011
+ libXmu git update until 29/3/2011
+ libfontenc git update until 29/3/2011
+ mkfontscale git update until 29/3/2011
+ randrproto git update until 29/3/2011
+ xtrans git update until 29/3/2011
+ xwininfo git update until 29/3/2011
+ xproto-7.0.21 git update until 29/3/2011
+ xineramaproto-1.2.1
+ libXt-1.1.1
+ libxkbfile-1.0.7
+ libXpm-3.5.9
+ libXfont-1.4.3
+ libXaw-1.0.9
+ bdftopcf-1.0.3
+ encodings-1.0.4
+ fixesproto-5.0
+ font-adobe-100dpi-1.0.3
+ font-adobe-75dpi-1.0.3
+ font-adobe-utopia-100dpi-1.0.4
+ font-adobe-utopia-75dpi-1.0.4
+ font-adobe-utopia-type1-1.0.4
+ font-alias-1.0.3
+ font-arabic-misc-1.0.3
+ font-bh-100dpi-1.0.3
+ font-bh-75dpi-1.0.3
+ font-bh-lucidatypewriter-100dpi-1.0.3
+ font-bh-lucidatypewriter-75dpi-1.0.3
+ font-bh-ttf-1.0.3
+ font-bh-type1-1.0.3
+ font-bitstream-100dpi-1.0.3
+ font-bitstream-75dpi-1.0.3
+ font-bitstream-speedo-1.0.2
+ font-bitstream-type1-1.0.3
+ font-cronyx-cyrillic-1.0.3
+ font-cursor-misc-1.0.3
+ font-daewoo-misc-1.0.3
+ font-dec-misc-1.0.3
+ font-ibm-type1-1.0.3
+ font-isas-misc-1.0.3
+ font-jis-misc-1.0.3
+ font-micro-misc-1.0.3
+ font-misc-cyrillic-1.0.3
+ font-misc-ethiopic-1.0.3
+ font-misc-meltho-1.0.3
+ font-misc-misc-1.1.2
+ font-mutt-misc-1.0.3
+ font-schumacher-misc-1.1.2
+ font-screen-cyrillic-1.0.4
+ font-sony-misc-1.0.3
+ font-sun-misc-1.0.3
+ font-util-1.2.0
+ font-winitzki-cyrillic-1.0.3
+ font-xfree86-type1-1.0.4
+- Added ipv6 support
+- Solved past problem in windows when used with x2goclient (with -clipboard)
+- Solved problem of GetKeyState not always returning the correct state in WM_SETFOCUS
+- Delay calling winInitializeModeKeyStates until the keyboard device has been started
+- Solved possible crash due to NULL pointer access
+
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.11.4.0.txt b/releasenotes/releasenote_1.11.4.0.txt
new file mode 100644
index 000000000..eec72d83b
--- /dev/null
+++ b/releasenotes/releasenote_1.11.4.0.txt
@@ -0,0 +1,760 @@
+Changes in 1.11.4.0
+-------------------
+- Update the following packages:
+ git updates until 30/1/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ xwininfo
+ mkfontscale
+ libxtrans
+ libXdmcp
+ plink svn update until 30/1/2012
+ inputproto-2.1.99.5
+ xf86bigfontproto-1.2.0
+ openssl-1.0.0g
+- Added xhost-1.0.4 application
+- Added xauth-1.0.6 application
+- Implemented Implemented prgrbs ungrab clsgrb and prwins keyboard actions
+- Enable the keyboard options grab:break_actions by default
+- Enabled XFree86 BigFont extension
+- Solved possible crash in multiwindow mode
+- glx: added safety against the use of a null pointer
+
+Changes in 1.11.3.0
+-------------------
+- Update the following packages:
+ git updates until 17/12/2011 of the following packages
+ mesa
+ xserver
+ libxtrans
+ libX11
+ pixman
+ libxcb
+ glproto
+ xkeyboard-config
+
+- Added -parentprocessid command line option
+
+Changes in 1.11.2.0
+-------------------
+- Update the following packages:
+ git updates until 18/11/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ libXmu
+ libxtrans
+ libXdmcp
+ libXau
+ libXft
+ libXinerama
+ libfontenc
+ xwininfo
+ libXmu
+ mkfontscale
+ fontconfig
+ freetype 2.4.8
+ openssl-1.0.0e
+ inputproto-2.1.99.1
+
+Changes in 1.11.0.0
+-------------------
+- Update the following packages:
+ git updates until 5/9/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ randrproto
+ xwininfo
+ libXmu
+ libXfont-1.4.4
+ freetype 2.4.6
+- Installer: installation of fonts is optional now
+- xserver: Use AllocDevicePair for create the mouse and keyboard devices
+- xserver: Solved problem of window not taking the default window position when
+ created.
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 18/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libX11
+ freetype 2.4.5
+ inputproto-2.0.2
+ xproto-7.0.22
+ resourceproto-1.2.0
+ pthreads cvs version until 18/7/2011
+
+- Fixed regression in wgl implementation in multi-window mode
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 11/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ mkfontscale
+ xkeyboard-config
+ libX11
+ libXext
+ libXmu
+ xkbcomp
+ libXdmcp
+ libxtrans
+ x11proto
+ fontconfig
+ xwininfo
+- Increased number of clients to 1024
+- Also show the cursor in the main window when the xdmcp host selection dialog is shown
+
+Changes in 1.10.1.1
+-------------------
+- Update the following packages:
+ glproto git update until 24/5/2011
+ libfontenc git update until 24/5/2011
+ libxcb git update until 24/5/2011
+ pixman git update until 24/5/2011
+ xkeyboard-config git update until 24/5/2011
+ mesa git update until 24/5/2011
+ xserver git update until 24/5/2011
+ xcb-proto git update until 24/5/2011
+ mkfontscale git update until 24/5/2011
+- xkeyboard-config: Solved problem with Alt Gr key on some keyboards (e.g. belgian)
+
+
+Changes in 1.10.1.0
+-------------------
+- Update the following packages:
+ mesa git update until 5/5/2011
+ xserver git update until 5/5/2011
+ xkeyboard-config git update until 5/5/2011
+ libxcb git update until 5/5/2011
+ xkbcomp git update until 5/5/2011
+ libXext git update until 5/5/2011
+ libXmu git update until 5/5/2011
+ libX11 git update until 5/5/2011
+ libXdmcp git update until 5/5/2011
+ xextproto git update until 5/5/2011
+ libxtrans git update until 5/5/2011
+ pixman git update until 5/5/2011
+ glproto git update until 5/5/2011
+ openssl-1.0.0d
+- wgl; Solved crash because of pointer usages after memory has been freed.
+
+
+Changes in 1.10.0.1
+-------------------
+- Update the following packages:
+ xserver git update until 29/3/2011
+ mesa git update until 29/3/2011
+ xkeyboard-config git update until 29/3/2011
+ libX11 git update until 29/3/2011
+ pixman git update until 29/3/2011
+ libxcb git update until 29/3/2011
+ fontconfig git update until 29/3/2011
+ glproto git update until 29/3/2011
+ libXau git update until 29/3/2011
+ libXft git update until 29/3/2011
+ libXmu git update until 29/3/2011
+ libfontenc git update until 29/3/2011
+ mkfontscale git update until 29/3/2011
+ randrproto git update until 29/3/2011
+ xtrans git update until 29/3/2011
+ xwininfo git update until 29/3/2011
+ xproto-7.0.21 git update until 29/3/2011
+ xineramaproto-1.2.1
+ libXt-1.1.1
+ libxkbfile-1.0.7
+ libXpm-3.5.9
+ libXfont-1.4.3
+ libXaw-1.0.9
+ bdftopcf-1.0.3
+ encodings-1.0.4
+ fixesproto-5.0
+ font-adobe-100dpi-1.0.3
+ font-adobe-75dpi-1.0.3
+ font-adobe-utopia-100dpi-1.0.4
+ font-adobe-utopia-75dpi-1.0.4
+ font-adobe-utopia-type1-1.0.4
+ font-alias-1.0.3
+ font-arabic-misc-1.0.3
+ font-bh-100dpi-1.0.3
+ font-bh-75dpi-1.0.3
+ font-bh-lucidatypewriter-100dpi-1.0.3
+ font-bh-lucidatypewriter-75dpi-1.0.3
+ font-bh-ttf-1.0.3
+ font-bh-type1-1.0.3
+ font-bitstream-100dpi-1.0.3
+ font-bitstream-75dpi-1.0.3
+ font-bitstream-speedo-1.0.2
+ font-bitstream-type1-1.0.3
+ font-cronyx-cyrillic-1.0.3
+ font-cursor-misc-1.0.3
+ font-daewoo-misc-1.0.3
+ font-dec-misc-1.0.3
+ font-ibm-type1-1.0.3
+ font-isas-misc-1.0.3
+ font-jis-misc-1.0.3
+ font-micro-misc-1.0.3
+ font-misc-cyrillic-1.0.3
+ font-misc-ethiopic-1.0.3
+ font-misc-meltho-1.0.3
+ font-misc-misc-1.1.2
+ font-mutt-misc-1.0.3
+ font-schumacher-misc-1.1.2
+ font-screen-cyrillic-1.0.4
+ font-sony-misc-1.0.3
+ font-sun-misc-1.0.3
+ font-util-1.2.0
+ font-winitzki-cyrillic-1.0.3
+ font-xfree86-type1-1.0.4
+- Added ipv6 support
+- Solved past problem in windows when used with x2goclient (with -clipboard)
+- Solved problem of GetKeyState not always returning the correct state in WM_SETFOCUS
+- Delay calling winInitializeModeKeyStates until the keyboard device has been started
+- Solved possible crash due to NULL pointer access
+
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.12.0.0.txt b/releasenotes/releasenote_1.12.0.0.txt
new file mode 100644
index 000000000..969c7f26c
--- /dev/null
+++ b/releasenotes/releasenote_1.12.0.0.txt
@@ -0,0 +1,792 @@
+Changes in 1.12.0.0
+-------------------
+- Update the following packages:
+ git updates until 30/3/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ fontconfig
+ mkfontscale
+ xkbcomp
+ mesa
+ libXau
+ libXdmcp
+ libXext
+ libXft
+ libXinerama
+ libXmu
+ font-util-1.3.0
+ xclock-1.0.6
+ libXfont-1.4.5
+ inputproto-2.2
+ freetype-2.4.9
+
+- Remove unused WindowExposuresProcPtr storage in screen privates
+- Return error when bitsperpixel is less then 24
+- Added taskbar grouping for windows 7
+- Solved possible crashes when drawable cannot be created.
+
+
+Changes in 1.11.4.0
+-------------------
+- Update the following packages:
+ git updates until 30/1/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ xwininfo
+ mkfontscale
+ libxtrans
+ libXdmcp
+ plink svn update until 30/1/2012
+ inputproto-2.1.99.5
+ xf86bigfontproto-1.2.0
+ openssl-1.0.0g
+- Added xhost-1.0.4 application
+- Added xauth-1.0.6 application
+- Implemented Implemented prgrbs ungrab clsgrb and prwins keyboard actions
+- Enable the keyboard options grab:break_actions by default
+- Enabled XFree86 BigFont extension
+- Solved possible crash in multiwindow mode
+- glx: added safety against the use of a null pointer
+
+Changes in 1.11.3.0
+-------------------
+- Update the following packages:
+ git updates until 17/12/2011 of the following packages
+ mesa
+ xserver
+ libxtrans
+ libX11
+ pixman
+ libxcb
+ glproto
+ xkeyboard-config
+
+- Added -parentprocessid command line option
+
+Changes in 1.11.2.0
+-------------------
+- Update the following packages:
+ git updates until 18/11/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ libXmu
+ libxtrans
+ libXdmcp
+ libXau
+ libXft
+ libXinerama
+ libfontenc
+ xwininfo
+ libXmu
+ mkfontscale
+ fontconfig
+ freetype 2.4.8
+ openssl-1.0.0e
+ inputproto-2.1.99.1
+
+Changes in 1.11.0.0
+-------------------
+- Update the following packages:
+ git updates until 5/9/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ randrproto
+ xwininfo
+ libXmu
+ libXfont-1.4.4
+ freetype 2.4.6
+- Installer: installation of fonts is optional now
+- xserver: Use AllocDevicePair for create the mouse and keyboard devices
+- xserver: Solved problem of window not taking the default window position when
+ created.
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 18/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libX11
+ freetype 2.4.5
+ inputproto-2.0.2
+ xproto-7.0.22
+ resourceproto-1.2.0
+ pthreads cvs version until 18/7/2011
+
+- Fixed regression in wgl implementation in multi-window mode
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 11/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ mkfontscale
+ xkeyboard-config
+ libX11
+ libXext
+ libXmu
+ xkbcomp
+ libXdmcp
+ libxtrans
+ x11proto
+ fontconfig
+ xwininfo
+- Increased number of clients to 1024
+- Also show the cursor in the main window when the xdmcp host selection dialog is shown
+
+Changes in 1.10.1.1
+-------------------
+- Update the following packages:
+ glproto git update until 24/5/2011
+ libfontenc git update until 24/5/2011
+ libxcb git update until 24/5/2011
+ pixman git update until 24/5/2011
+ xkeyboard-config git update until 24/5/2011
+ mesa git update until 24/5/2011
+ xserver git update until 24/5/2011
+ xcb-proto git update until 24/5/2011
+ mkfontscale git update until 24/5/2011
+- xkeyboard-config: Solved problem with Alt Gr key on some keyboards (e.g. belgian)
+
+
+Changes in 1.10.1.0
+-------------------
+- Update the following packages:
+ mesa git update until 5/5/2011
+ xserver git update until 5/5/2011
+ xkeyboard-config git update until 5/5/2011
+ libxcb git update until 5/5/2011
+ xkbcomp git update until 5/5/2011
+ libXext git update until 5/5/2011
+ libXmu git update until 5/5/2011
+ libX11 git update until 5/5/2011
+ libXdmcp git update until 5/5/2011
+ xextproto git update until 5/5/2011
+ libxtrans git update until 5/5/2011
+ pixman git update until 5/5/2011
+ glproto git update until 5/5/2011
+ openssl-1.0.0d
+- wgl; Solved crash because of pointer usages after memory has been freed.
+
+
+Changes in 1.10.0.1
+-------------------
+- Update the following packages:
+ xserver git update until 29/3/2011
+ mesa git update until 29/3/2011
+ xkeyboard-config git update until 29/3/2011
+ libX11 git update until 29/3/2011
+ pixman git update until 29/3/2011
+ libxcb git update until 29/3/2011
+ fontconfig git update until 29/3/2011
+ glproto git update until 29/3/2011
+ libXau git update until 29/3/2011
+ libXft git update until 29/3/2011
+ libXmu git update until 29/3/2011
+ libfontenc git update until 29/3/2011
+ mkfontscale git update until 29/3/2011
+ randrproto git update until 29/3/2011
+ xtrans git update until 29/3/2011
+ xwininfo git update until 29/3/2011
+ xproto-7.0.21 git update until 29/3/2011
+ xineramaproto-1.2.1
+ libXt-1.1.1
+ libxkbfile-1.0.7
+ libXpm-3.5.9
+ libXfont-1.4.3
+ libXaw-1.0.9
+ bdftopcf-1.0.3
+ encodings-1.0.4
+ fixesproto-5.0
+ font-adobe-100dpi-1.0.3
+ font-adobe-75dpi-1.0.3
+ font-adobe-utopia-100dpi-1.0.4
+ font-adobe-utopia-75dpi-1.0.4
+ font-adobe-utopia-type1-1.0.4
+ font-alias-1.0.3
+ font-arabic-misc-1.0.3
+ font-bh-100dpi-1.0.3
+ font-bh-75dpi-1.0.3
+ font-bh-lucidatypewriter-100dpi-1.0.3
+ font-bh-lucidatypewriter-75dpi-1.0.3
+ font-bh-ttf-1.0.3
+ font-bh-type1-1.0.3
+ font-bitstream-100dpi-1.0.3
+ font-bitstream-75dpi-1.0.3
+ font-bitstream-speedo-1.0.2
+ font-bitstream-type1-1.0.3
+ font-cronyx-cyrillic-1.0.3
+ font-cursor-misc-1.0.3
+ font-daewoo-misc-1.0.3
+ font-dec-misc-1.0.3
+ font-ibm-type1-1.0.3
+ font-isas-misc-1.0.3
+ font-jis-misc-1.0.3
+ font-micro-misc-1.0.3
+ font-misc-cyrillic-1.0.3
+ font-misc-ethiopic-1.0.3
+ font-misc-meltho-1.0.3
+ font-misc-misc-1.1.2
+ font-mutt-misc-1.0.3
+ font-schumacher-misc-1.1.2
+ font-screen-cyrillic-1.0.4
+ font-sony-misc-1.0.3
+ font-sun-misc-1.0.3
+ font-util-1.2.0
+ font-winitzki-cyrillic-1.0.3
+ font-xfree86-type1-1.0.4
+- Added ipv6 support
+- Solved past problem in windows when used with x2goclient (with -clipboard)
+- Solved problem of GetKeyState not always returning the correct state in WM_SETFOCUS
+- Delay calling winInitializeModeKeyStates until the keyboard device has been started
+- Solved possible crash due to NULL pointer access
+
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.12.0.1.txt b/releasenotes/releasenote_1.12.0.1.txt
new file mode 100644
index 000000000..195eaa29d
--- /dev/null
+++ b/releasenotes/releasenote_1.12.0.1.txt
@@ -0,0 +1,821 @@
+Changes in 1.12.0.1
+-------------------
+- Update the following packages:
+ git updates until 10/4/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ openssl-1.0.1
+ bigreqsproto-1.1.2
+ fontsproto-2.1.2
+ recordproto-1.14.2
+ scrnsaverproto-1.2.2
+ xcmiscproto-1.2.2
+ libXt-1.1.3
+ xhost-1.0.5
+ kbproto-1.0.6
+ libXrender-0.9.7
+ libxkbfile-1.0.8
+ freetype-2.4.9
+ libXaw-1.0.10
+ libXpm-3.5.10
+ xproto-7.0.23
+
+- Solved problem when specifying -fullscreen on command line because default
+ resizing behaviour was changed to resize (which is not allowed in
+ fullscreen)
+
+Changes in 1.12.0.0
+-------------------
+- Update the following packages:
+ git updates until 30/3/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ fontconfig
+ mkfontscale
+ xkbcomp
+ mesa
+ libXau
+ libXdmcp
+ libXext
+ libXft
+ libXinerama
+ libXmu
+ font-util-1.3.0
+ xclock-1.0.6
+ libXfont-1.4.5
+ inputproto-2.2
+ freetype-2.4.9
+
+- Remove unused WindowExposuresProcPtr storage in screen privates
+- Return error when bitsperpixel is less then 24
+- Added taskbar grouping for windows 7
+- Solved possible crashes when drawable cannot be created.
+
+
+Changes in 1.11.4.0
+-------------------
+- Update the following packages:
+ git updates until 30/1/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ xwininfo
+ mkfontscale
+ libxtrans
+ libXdmcp
+ plink svn update until 30/1/2012
+ inputproto-2.1.99.5
+ xf86bigfontproto-1.2.0
+ openssl-1.0.0g
+- Added xhost-1.0.4 application
+- Added xauth-1.0.6 application
+- Implemented Implemented prgrbs ungrab clsgrb and prwins keyboard actions
+- Enable the keyboard options grab:break_actions by default
+- Enabled XFree86 BigFont extension
+- Solved possible crash in multiwindow mode
+- glx: added safety against the use of a null pointer
+
+Changes in 1.11.3.0
+-------------------
+- Update the following packages:
+ git updates until 17/12/2011 of the following packages
+ mesa
+ xserver
+ libxtrans
+ libX11
+ pixman
+ libxcb
+ glproto
+ xkeyboard-config
+
+- Added -parentprocessid command line option
+
+Changes in 1.11.2.0
+-------------------
+- Update the following packages:
+ git updates until 18/11/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ libXmu
+ libxtrans
+ libXdmcp
+ libXau
+ libXft
+ libXinerama
+ libfontenc
+ xwininfo
+ libXmu
+ mkfontscale
+ fontconfig
+ freetype 2.4.8
+ openssl-1.0.0e
+ inputproto-2.1.99.1
+
+Changes in 1.11.0.0
+-------------------
+- Update the following packages:
+ git updates until 5/9/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ randrproto
+ xwininfo
+ libXmu
+ libXfont-1.4.4
+ freetype 2.4.6
+- Installer: installation of fonts is optional now
+- xserver: Use AllocDevicePair for create the mouse and keyboard devices
+- xserver: Solved problem of window not taking the default window position when
+ created.
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 18/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libX11
+ freetype 2.4.5
+ inputproto-2.0.2
+ xproto-7.0.22
+ resourceproto-1.2.0
+ pthreads cvs version until 18/7/2011
+
+- Fixed regression in wgl implementation in multi-window mode
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 11/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ mkfontscale
+ xkeyboard-config
+ libX11
+ libXext
+ libXmu
+ xkbcomp
+ libXdmcp
+ libxtrans
+ x11proto
+ fontconfig
+ xwininfo
+- Increased number of clients to 1024
+- Also show the cursor in the main window when the xdmcp host selection dialog is shown
+
+Changes in 1.10.1.1
+-------------------
+- Update the following packages:
+ glproto git update until 24/5/2011
+ libfontenc git update until 24/5/2011
+ libxcb git update until 24/5/2011
+ pixman git update until 24/5/2011
+ xkeyboard-config git update until 24/5/2011
+ mesa git update until 24/5/2011
+ xserver git update until 24/5/2011
+ xcb-proto git update until 24/5/2011
+ mkfontscale git update until 24/5/2011
+- xkeyboard-config: Solved problem with Alt Gr key on some keyboards (e.g. belgian)
+
+
+Changes in 1.10.1.0
+-------------------
+- Update the following packages:
+ mesa git update until 5/5/2011
+ xserver git update until 5/5/2011
+ xkeyboard-config git update until 5/5/2011
+ libxcb git update until 5/5/2011
+ xkbcomp git update until 5/5/2011
+ libXext git update until 5/5/2011
+ libXmu git update until 5/5/2011
+ libX11 git update until 5/5/2011
+ libXdmcp git update until 5/5/2011
+ xextproto git update until 5/5/2011
+ libxtrans git update until 5/5/2011
+ pixman git update until 5/5/2011
+ glproto git update until 5/5/2011
+ openssl-1.0.0d
+- wgl; Solved crash because of pointer usages after memory has been freed.
+
+
+Changes in 1.10.0.1
+-------------------
+- Update the following packages:
+ xserver git update until 29/3/2011
+ mesa git update until 29/3/2011
+ xkeyboard-config git update until 29/3/2011
+ libX11 git update until 29/3/2011
+ pixman git update until 29/3/2011
+ libxcb git update until 29/3/2011
+ fontconfig git update until 29/3/2011
+ glproto git update until 29/3/2011
+ libXau git update until 29/3/2011
+ libXft git update until 29/3/2011
+ libXmu git update until 29/3/2011
+ libfontenc git update until 29/3/2011
+ mkfontscale git update until 29/3/2011
+ randrproto git update until 29/3/2011
+ xtrans git update until 29/3/2011
+ xwininfo git update until 29/3/2011
+ xproto-7.0.21 git update until 29/3/2011
+ xineramaproto-1.2.1
+ libXt-1.1.1
+ libxkbfile-1.0.7
+ libXpm-3.5.9
+ libXfont-1.4.3
+ libXaw-1.0.9
+ bdftopcf-1.0.3
+ encodings-1.0.4
+ fixesproto-5.0
+ font-adobe-100dpi-1.0.3
+ font-adobe-75dpi-1.0.3
+ font-adobe-utopia-100dpi-1.0.4
+ font-adobe-utopia-75dpi-1.0.4
+ font-adobe-utopia-type1-1.0.4
+ font-alias-1.0.3
+ font-arabic-misc-1.0.3
+ font-bh-100dpi-1.0.3
+ font-bh-75dpi-1.0.3
+ font-bh-lucidatypewriter-100dpi-1.0.3
+ font-bh-lucidatypewriter-75dpi-1.0.3
+ font-bh-ttf-1.0.3
+ font-bh-type1-1.0.3
+ font-bitstream-100dpi-1.0.3
+ font-bitstream-75dpi-1.0.3
+ font-bitstream-speedo-1.0.2
+ font-bitstream-type1-1.0.3
+ font-cronyx-cyrillic-1.0.3
+ font-cursor-misc-1.0.3
+ font-daewoo-misc-1.0.3
+ font-dec-misc-1.0.3
+ font-ibm-type1-1.0.3
+ font-isas-misc-1.0.3
+ font-jis-misc-1.0.3
+ font-micro-misc-1.0.3
+ font-misc-cyrillic-1.0.3
+ font-misc-ethiopic-1.0.3
+ font-misc-meltho-1.0.3
+ font-misc-misc-1.1.2
+ font-mutt-misc-1.0.3
+ font-schumacher-misc-1.1.2
+ font-screen-cyrillic-1.0.4
+ font-sony-misc-1.0.3
+ font-sun-misc-1.0.3
+ font-util-1.2.0
+ font-winitzki-cyrillic-1.0.3
+ font-xfree86-type1-1.0.4
+- Added ipv6 support
+- Solved past problem in windows when used with x2goclient (with -clipboard)
+- Solved problem of GetKeyState not always returning the correct state in WM_SETFOCUS
+- Delay calling winInitializeModeKeyStates until the keyboard device has been started
+- Solved possible crash due to NULL pointer access
+
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.12.2.0.txt b/releasenotes/releasenote_1.12.2.0.txt
new file mode 100644
index 000000000..9c4ef49a6
--- /dev/null
+++ b/releasenotes/releasenote_1.12.2.0.txt
@@ -0,0 +1,842 @@
+Changes in 1.12.2.0
+-------------------
+- Update the following packages:
+ git updates until 15/6/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libX11
+ libXau
+ libXext
+ libxcb
+ libfontenc
+ glproto
+ freetype-2.4.10
+ libXaw-1.0.11
+ openssl-1.0.1c
+- xserver: added support for -displayfd option
+- xserver: made sure that the maximum number of clients is back at 1024
+
+Changes in 1.12.0.1
+-------------------
+- Update the following packages:
+ git updates until 10/4/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ openssl-1.0.1
+ bigreqsproto-1.1.2
+ fontsproto-2.1.2
+ recordproto-1.14.2
+ scrnsaverproto-1.2.2
+ xcmiscproto-1.2.2
+ libXt-1.1.3
+ xhost-1.0.5
+ kbproto-1.0.6
+ libXrender-0.9.7
+ libxkbfile-1.0.8
+ freetype-2.4.9
+ libXaw-1.0.10
+ libXpm-3.5.10
+ xproto-7.0.23
+
+- Solved problem when specifying -fullscreen on command line because default
+ resizing behaviour was changed to resize (which is not allowed in
+ fullscreen)
+
+Changes in 1.12.0.0
+-------------------
+- Update the following packages:
+ git updates until 30/3/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ fontconfig
+ mkfontscale
+ xkbcomp
+ mesa
+ libXau
+ libXdmcp
+ libXext
+ libXft
+ libXinerama
+ libXmu
+ font-util-1.3.0
+ xclock-1.0.6
+ libXfont-1.4.5
+ inputproto-2.2
+ freetype-2.4.9
+
+- Remove unused WindowExposuresProcPtr storage in screen privates
+- Return error when bitsperpixel is less then 24
+- Added taskbar grouping for windows 7
+- Solved possible crashes when drawable cannot be created.
+
+
+Changes in 1.11.4.0
+-------------------
+- Update the following packages:
+ git updates until 30/1/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ xwininfo
+ mkfontscale
+ libxtrans
+ libXdmcp
+ plink svn update until 30/1/2012
+ inputproto-2.1.99.5
+ xf86bigfontproto-1.2.0
+ openssl-1.0.0g
+- Added xhost-1.0.4 application
+- Added xauth-1.0.6 application
+- Implemented Implemented prgrbs ungrab clsgrb and prwins keyboard actions
+- Enable the keyboard options grab:break_actions by default
+- Enabled XFree86 BigFont extension
+- Solved possible crash in multiwindow mode
+- glx: added safety against the use of a null pointer
+
+Changes in 1.11.3.0
+-------------------
+- Update the following packages:
+ git updates until 17/12/2011 of the following packages
+ mesa
+ xserver
+ libxtrans
+ libX11
+ pixman
+ libxcb
+ glproto
+ xkeyboard-config
+
+- Added -parentprocessid command line option
+
+Changes in 1.11.2.0
+-------------------
+- Update the following packages:
+ git updates until 18/11/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ libXmu
+ libxtrans
+ libXdmcp
+ libXau
+ libXft
+ libXinerama
+ libfontenc
+ xwininfo
+ libXmu
+ mkfontscale
+ fontconfig
+ freetype 2.4.8
+ openssl-1.0.0e
+ inputproto-2.1.99.1
+
+Changes in 1.11.0.0
+-------------------
+- Update the following packages:
+ git updates until 5/9/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ randrproto
+ xwininfo
+ libXmu
+ libXfont-1.4.4
+ freetype 2.4.6
+- Installer: installation of fonts is optional now
+- xserver: Use AllocDevicePair for create the mouse and keyboard devices
+- xserver: Solved problem of window not taking the default window position when
+ created.
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 18/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libX11
+ freetype 2.4.5
+ inputproto-2.0.2
+ xproto-7.0.22
+ resourceproto-1.2.0
+ pthreads cvs version until 18/7/2011
+
+- Fixed regression in wgl implementation in multi-window mode
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 11/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ mkfontscale
+ xkeyboard-config
+ libX11
+ libXext
+ libXmu
+ xkbcomp
+ libXdmcp
+ libxtrans
+ x11proto
+ fontconfig
+ xwininfo
+- Increased number of clients to 1024
+- Also show the cursor in the main window when the xdmcp host selection dialog is shown
+
+Changes in 1.10.1.1
+-------------------
+- Update the following packages:
+ glproto git update until 24/5/2011
+ libfontenc git update until 24/5/2011
+ libxcb git update until 24/5/2011
+ pixman git update until 24/5/2011
+ xkeyboard-config git update until 24/5/2011
+ mesa git update until 24/5/2011
+ xserver git update until 24/5/2011
+ xcb-proto git update until 24/5/2011
+ mkfontscale git update until 24/5/2011
+- xkeyboard-config: Solved problem with Alt Gr key on some keyboards (e.g. belgian)
+
+
+Changes in 1.10.1.0
+-------------------
+- Update the following packages:
+ mesa git update until 5/5/2011
+ xserver git update until 5/5/2011
+ xkeyboard-config git update until 5/5/2011
+ libxcb git update until 5/5/2011
+ xkbcomp git update until 5/5/2011
+ libXext git update until 5/5/2011
+ libXmu git update until 5/5/2011
+ libX11 git update until 5/5/2011
+ libXdmcp git update until 5/5/2011
+ xextproto git update until 5/5/2011
+ libxtrans git update until 5/5/2011
+ pixman git update until 5/5/2011
+ glproto git update until 5/5/2011
+ openssl-1.0.0d
+- wgl; Solved crash because of pointer usages after memory has been freed.
+
+
+Changes in 1.10.0.1
+-------------------
+- Update the following packages:
+ xserver git update until 29/3/2011
+ mesa git update until 29/3/2011
+ xkeyboard-config git update until 29/3/2011
+ libX11 git update until 29/3/2011
+ pixman git update until 29/3/2011
+ libxcb git update until 29/3/2011
+ fontconfig git update until 29/3/2011
+ glproto git update until 29/3/2011
+ libXau git update until 29/3/2011
+ libXft git update until 29/3/2011
+ libXmu git update until 29/3/2011
+ libfontenc git update until 29/3/2011
+ mkfontscale git update until 29/3/2011
+ randrproto git update until 29/3/2011
+ xtrans git update until 29/3/2011
+ xwininfo git update until 29/3/2011
+ xproto-7.0.21 git update until 29/3/2011
+ xineramaproto-1.2.1
+ libXt-1.1.1
+ libxkbfile-1.0.7
+ libXpm-3.5.9
+ libXfont-1.4.3
+ libXaw-1.0.9
+ bdftopcf-1.0.3
+ encodings-1.0.4
+ fixesproto-5.0
+ font-adobe-100dpi-1.0.3
+ font-adobe-75dpi-1.0.3
+ font-adobe-utopia-100dpi-1.0.4
+ font-adobe-utopia-75dpi-1.0.4
+ font-adobe-utopia-type1-1.0.4
+ font-alias-1.0.3
+ font-arabic-misc-1.0.3
+ font-bh-100dpi-1.0.3
+ font-bh-75dpi-1.0.3
+ font-bh-lucidatypewriter-100dpi-1.0.3
+ font-bh-lucidatypewriter-75dpi-1.0.3
+ font-bh-ttf-1.0.3
+ font-bh-type1-1.0.3
+ font-bitstream-100dpi-1.0.3
+ font-bitstream-75dpi-1.0.3
+ font-bitstream-speedo-1.0.2
+ font-bitstream-type1-1.0.3
+ font-cronyx-cyrillic-1.0.3
+ font-cursor-misc-1.0.3
+ font-daewoo-misc-1.0.3
+ font-dec-misc-1.0.3
+ font-ibm-type1-1.0.3
+ font-isas-misc-1.0.3
+ font-jis-misc-1.0.3
+ font-micro-misc-1.0.3
+ font-misc-cyrillic-1.0.3
+ font-misc-ethiopic-1.0.3
+ font-misc-meltho-1.0.3
+ font-misc-misc-1.1.2
+ font-mutt-misc-1.0.3
+ font-schumacher-misc-1.1.2
+ font-screen-cyrillic-1.0.4
+ font-sony-misc-1.0.3
+ font-sun-misc-1.0.3
+ font-util-1.2.0
+ font-winitzki-cyrillic-1.0.3
+ font-xfree86-type1-1.0.4
+- Added ipv6 support
+- Solved past problem in windows when used with x2goclient (with -clipboard)
+- Solved problem of GetKeyState not always returning the correct state in WM_SETFOCUS
+- Delay calling winInitializeModeKeyStates until the keyboard device has been started
+- Solved possible crash due to NULL pointer access
+
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.12.99.0.txt b/releasenotes/releasenote_1.12.99.0.txt
new file mode 100644
index 000000000..c9021bd90
--- /dev/null
+++ b/releasenotes/releasenote_1.12.99.0.txt
@@ -0,0 +1,874 @@
+Changes in 1.12.99.0
+-------------------
+- Update the following packages:
+ git updates until 22/8/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libxcb
+ randrproto
+ libX11
+ libXext
+ zlib-1.2.7
+- Compiled the following modules as dlls:
+ zlib
+ libX11
+ libXau
+ libxcb
+ libXmu
+ libXext
+- Installer: Make installing debug version optional
+- Solved problem of using wrong name for log file when -displayfd is used
+- Fixed problem in Win32TempDir of returning NULL in case TEMP env variable
+ is not defined and TMP is
+- winProcessXEventsTimeout: improved accuracy of timeout
+- winUpdateWindowPosition: do not assume WS_EX_APPWINDOW style
+- multiwindow: do not ignore the windows key. Now the windows key can
+ be used as the meta key in emacs
+- Solved possible crash in winMultiWindowGetClassHint because second
+ string is not always null terminated
+
+Changes in 1.12.2.0
+-------------------
+- Update the following packages:
+ git updates until 15/6/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libX11
+ libXau
+ libXext
+ libxcb
+ libfontenc
+ glproto
+ freetype-2.4.10
+ libXaw-1.0.11
+ openssl-1.0.1c
+- xserver: added support for -displayfd option
+- xserver: made sure that the maximum number of clients is back at 1024
+
+Changes in 1.12.0.1
+-------------------
+- Update the following packages:
+ git updates until 10/4/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ openssl-1.0.1
+ bigreqsproto-1.1.2
+ fontsproto-2.1.2
+ recordproto-1.14.2
+ scrnsaverproto-1.2.2
+ xcmiscproto-1.2.2
+ libXt-1.1.3
+ xhost-1.0.5
+ kbproto-1.0.6
+ libXrender-0.9.7
+ libxkbfile-1.0.8
+ freetype-2.4.9
+ libXaw-1.0.10
+ libXpm-3.5.10
+ xproto-7.0.23
+
+- Solved problem when specifying -fullscreen on command line because default
+ resizing behaviour was changed to resize (which is not allowed in
+ fullscreen)
+
+Changes in 1.12.0.0
+-------------------
+- Update the following packages:
+ git updates until 30/3/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ fontconfig
+ mkfontscale
+ xkbcomp
+ mesa
+ libXau
+ libXdmcp
+ libXext
+ libXft
+ libXinerama
+ libXmu
+ font-util-1.3.0
+ xclock-1.0.6
+ libXfont-1.4.5
+ inputproto-2.2
+ freetype-2.4.9
+
+- Remove unused WindowExposuresProcPtr storage in screen privates
+- Return error when bitsperpixel is less then 24
+- Added taskbar grouping for windows 7
+- Solved possible crashes when drawable cannot be created.
+
+
+Changes in 1.11.4.0
+-------------------
+- Update the following packages:
+ git updates until 30/1/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ xwininfo
+ mkfontscale
+ libxtrans
+ libXdmcp
+ plink svn update until 30/1/2012
+ inputproto-2.1.99.5
+ xf86bigfontproto-1.2.0
+ openssl-1.0.0g
+- Added xhost-1.0.4 application
+- Added xauth-1.0.6 application
+- Implemented Implemented prgrbs ungrab clsgrb and prwins keyboard actions
+- Enable the keyboard options grab:break_actions by default
+- Enabled XFree86 BigFont extension
+- Solved possible crash in multiwindow mode
+- glx: added safety against the use of a null pointer
+
+Changes in 1.11.3.0
+-------------------
+- Update the following packages:
+ git updates until 17/12/2011 of the following packages
+ mesa
+ xserver
+ libxtrans
+ libX11
+ pixman
+ libxcb
+ glproto
+ xkeyboard-config
+
+- Added -parentprocessid command line option
+
+Changes in 1.11.2.0
+-------------------
+- Update the following packages:
+ git updates until 18/11/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ libXmu
+ libxtrans
+ libXdmcp
+ libXau
+ libXft
+ libXinerama
+ libfontenc
+ xwininfo
+ libXmu
+ mkfontscale
+ fontconfig
+ freetype 2.4.8
+ openssl-1.0.0e
+ inputproto-2.1.99.1
+
+Changes in 1.11.0.0
+-------------------
+- Update the following packages:
+ git updates until 5/9/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ randrproto
+ xwininfo
+ libXmu
+ libXfont-1.4.4
+ freetype 2.4.6
+- Installer: installation of fonts is optional now
+- xserver: Use AllocDevicePair for create the mouse and keyboard devices
+- xserver: Solved problem of window not taking the default window position when
+ created.
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 18/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libX11
+ freetype 2.4.5
+ inputproto-2.0.2
+ xproto-7.0.22
+ resourceproto-1.2.0
+ pthreads cvs version until 18/7/2011
+
+- Fixed regression in wgl implementation in multi-window mode
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 11/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ mkfontscale
+ xkeyboard-config
+ libX11
+ libXext
+ libXmu
+ xkbcomp
+ libXdmcp
+ libxtrans
+ x11proto
+ fontconfig
+ xwininfo
+- Increased number of clients to 1024
+- Also show the cursor in the main window when the xdmcp host selection dialog is shown
+
+Changes in 1.10.1.1
+-------------------
+- Update the following packages:
+ glproto git update until 24/5/2011
+ libfontenc git update until 24/5/2011
+ libxcb git update until 24/5/2011
+ pixman git update until 24/5/2011
+ xkeyboard-config git update until 24/5/2011
+ mesa git update until 24/5/2011
+ xserver git update until 24/5/2011
+ xcb-proto git update until 24/5/2011
+ mkfontscale git update until 24/5/2011
+- xkeyboard-config: Solved problem with Alt Gr key on some keyboards (e.g. belgian)
+
+
+Changes in 1.10.1.0
+-------------------
+- Update the following packages:
+ mesa git update until 5/5/2011
+ xserver git update until 5/5/2011
+ xkeyboard-config git update until 5/5/2011
+ libxcb git update until 5/5/2011
+ xkbcomp git update until 5/5/2011
+ libXext git update until 5/5/2011
+ libXmu git update until 5/5/2011
+ libX11 git update until 5/5/2011
+ libXdmcp git update until 5/5/2011
+ xextproto git update until 5/5/2011
+ libxtrans git update until 5/5/2011
+ pixman git update until 5/5/2011
+ glproto git update until 5/5/2011
+ openssl-1.0.0d
+- wgl; Solved crash because of pointer usages after memory has been freed.
+
+
+Changes in 1.10.0.1
+-------------------
+- Update the following packages:
+ xserver git update until 29/3/2011
+ mesa git update until 29/3/2011
+ xkeyboard-config git update until 29/3/2011
+ libX11 git update until 29/3/2011
+ pixman git update until 29/3/2011
+ libxcb git update until 29/3/2011
+ fontconfig git update until 29/3/2011
+ glproto git update until 29/3/2011
+ libXau git update until 29/3/2011
+ libXft git update until 29/3/2011
+ libXmu git update until 29/3/2011
+ libfontenc git update until 29/3/2011
+ mkfontscale git update until 29/3/2011
+ randrproto git update until 29/3/2011
+ xtrans git update until 29/3/2011
+ xwininfo git update until 29/3/2011
+ xproto-7.0.21 git update until 29/3/2011
+ xineramaproto-1.2.1
+ libXt-1.1.1
+ libxkbfile-1.0.7
+ libXpm-3.5.9
+ libXfont-1.4.3
+ libXaw-1.0.9
+ bdftopcf-1.0.3
+ encodings-1.0.4
+ fixesproto-5.0
+ font-adobe-100dpi-1.0.3
+ font-adobe-75dpi-1.0.3
+ font-adobe-utopia-100dpi-1.0.4
+ font-adobe-utopia-75dpi-1.0.4
+ font-adobe-utopia-type1-1.0.4
+ font-alias-1.0.3
+ font-arabic-misc-1.0.3
+ font-bh-100dpi-1.0.3
+ font-bh-75dpi-1.0.3
+ font-bh-lucidatypewriter-100dpi-1.0.3
+ font-bh-lucidatypewriter-75dpi-1.0.3
+ font-bh-ttf-1.0.3
+ font-bh-type1-1.0.3
+ font-bitstream-100dpi-1.0.3
+ font-bitstream-75dpi-1.0.3
+ font-bitstream-speedo-1.0.2
+ font-bitstream-type1-1.0.3
+ font-cronyx-cyrillic-1.0.3
+ font-cursor-misc-1.0.3
+ font-daewoo-misc-1.0.3
+ font-dec-misc-1.0.3
+ font-ibm-type1-1.0.3
+ font-isas-misc-1.0.3
+ font-jis-misc-1.0.3
+ font-micro-misc-1.0.3
+ font-misc-cyrillic-1.0.3
+ font-misc-ethiopic-1.0.3
+ font-misc-meltho-1.0.3
+ font-misc-misc-1.1.2
+ font-mutt-misc-1.0.3
+ font-schumacher-misc-1.1.2
+ font-screen-cyrillic-1.0.4
+ font-sony-misc-1.0.3
+ font-sun-misc-1.0.3
+ font-util-1.2.0
+ font-winitzki-cyrillic-1.0.3
+ font-xfree86-type1-1.0.4
+- Added ipv6 support
+- Solved past problem in windows when used with x2goclient (with -clipboard)
+- Solved problem of GetKeyState not always returning the correct state in WM_SETFOCUS
+- Delay calling winInitializeModeKeyStates until the keyboard device has been started
+- Solved possible crash due to NULL pointer access
+
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.13.0.0.txt b/releasenotes/releasenote_1.13.0.0.txt
new file mode 100644
index 000000000..02b371b81
--- /dev/null
+++ b/releasenotes/releasenote_1.13.0.0.txt
@@ -0,0 +1,900 @@
+Changes in 1.13.0.0
+-------------------
+- Update the following packages:
+ git updates until 22/10/2012 of the following packages
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libX11
+ xwininfo
+ fontconfig
+ libXau
+ libXext
+ libxcb
+ randrproto
+- Reverted xorg commit bafbd99080be49a17be97d2cc758fbe623369945
+ Gave problems in vcsrv on multiple monitors
+- Removed printing milli-seconds in log file
+- Changed fatal error message
+- Initialize the log file a little bit earlier in the startup process
+- Too long env variables: Instead of giving a fatal error just remove
+ the env variables that are too long
+- Solved problem of finding valid open socket in case ipv6 is not installed
+ and display number -1 is passed.
+- Make sure that version info is print to log file
+
+Changes in 1.12.99.0
+-------------------
+- Update the following packages:
+ git updates until 22/8/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libxcb
+ randrproto
+ libX11
+ libXext
+ zlib-1.2.7
+- Compiled the following modules as dlls:
+ zlib
+ libX11
+ libXau
+ libxcb
+ libXmu
+ libXext
+- Installer: Make installing debug version optional
+- Solved problem of using wrong name for log file when -displayfd is used
+- Fixed problem in Win32TempDir of returning NULL in case TEMP env variable
+ is not defined and TMP is
+- winProcessXEventsTimeout: improved accuracy of timeout
+- winUpdateWindowPosition: do not assume WS_EX_APPWINDOW style
+- multiwindow: do not ignore the windows key. Now the windows key can
+ be used as the meta key in emacs
+- Solved possible crash in winMultiWindowGetClassHint because second
+ string is not always null terminated
+
+Changes in 1.12.2.0
+-------------------
+- Update the following packages:
+ git updates until 15/6/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libX11
+ libXau
+ libXext
+ libxcb
+ libfontenc
+ glproto
+ freetype-2.4.10
+ libXaw-1.0.11
+ openssl-1.0.1c
+- xserver: added support for -displayfd option
+- xserver: made sure that the maximum number of clients is back at 1024
+
+Changes in 1.12.0.1
+-------------------
+- Update the following packages:
+ git updates until 10/4/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ openssl-1.0.1
+ bigreqsproto-1.1.2
+ fontsproto-2.1.2
+ recordproto-1.14.2
+ scrnsaverproto-1.2.2
+ xcmiscproto-1.2.2
+ libXt-1.1.3
+ xhost-1.0.5
+ kbproto-1.0.6
+ libXrender-0.9.7
+ libxkbfile-1.0.8
+ freetype-2.4.9
+ libXaw-1.0.10
+ libXpm-3.5.10
+ xproto-7.0.23
+
+- Solved problem when specifying -fullscreen on command line because default
+ resizing behaviour was changed to resize (which is not allowed in
+ fullscreen)
+
+Changes in 1.12.0.0
+-------------------
+- Update the following packages:
+ git updates until 30/3/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ fontconfig
+ mkfontscale
+ xkbcomp
+ mesa
+ libXau
+ libXdmcp
+ libXext
+ libXft
+ libXinerama
+ libXmu
+ font-util-1.3.0
+ xclock-1.0.6
+ libXfont-1.4.5
+ inputproto-2.2
+ freetype-2.4.9
+
+- Remove unused WindowExposuresProcPtr storage in screen privates
+- Return error when bitsperpixel is less then 24
+- Added taskbar grouping for windows 7
+- Solved possible crashes when drawable cannot be created.
+
+
+Changes in 1.11.4.0
+-------------------
+- Update the following packages:
+ git updates until 30/1/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ xwininfo
+ mkfontscale
+ libxtrans
+ libXdmcp
+ plink svn update until 30/1/2012
+ inputproto-2.1.99.5
+ xf86bigfontproto-1.2.0
+ openssl-1.0.0g
+- Added xhost-1.0.4 application
+- Added xauth-1.0.6 application
+- Implemented Implemented prgrbs ungrab clsgrb and prwins keyboard actions
+- Enable the keyboard options grab:break_actions by default
+- Enabled XFree86 BigFont extension
+- Solved possible crash in multiwindow mode
+- glx: added safety against the use of a null pointer
+
+Changes in 1.11.3.0
+-------------------
+- Update the following packages:
+ git updates until 17/12/2011 of the following packages
+ mesa
+ xserver
+ libxtrans
+ libX11
+ pixman
+ libxcb
+ glproto
+ xkeyboard-config
+
+- Added -parentprocessid command line option
+
+Changes in 1.11.2.0
+-------------------
+- Update the following packages:
+ git updates until 18/11/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ libXmu
+ libxtrans
+ libXdmcp
+ libXau
+ libXft
+ libXinerama
+ libfontenc
+ xwininfo
+ libXmu
+ mkfontscale
+ fontconfig
+ freetype 2.4.8
+ openssl-1.0.0e
+ inputproto-2.1.99.1
+
+Changes in 1.11.0.0
+-------------------
+- Update the following packages:
+ git updates until 5/9/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ randrproto
+ xwininfo
+ libXmu
+ libXfont-1.4.4
+ freetype 2.4.6
+- Installer: installation of fonts is optional now
+- xserver: Use AllocDevicePair for create the mouse and keyboard devices
+- xserver: Solved problem of window not taking the default window position when
+ created.
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 18/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libX11
+ freetype 2.4.5
+ inputproto-2.0.2
+ xproto-7.0.22
+ resourceproto-1.2.0
+ pthreads cvs version until 18/7/2011
+
+- Fixed regression in wgl implementation in multi-window mode
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 11/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ mkfontscale
+ xkeyboard-config
+ libX11
+ libXext
+ libXmu
+ xkbcomp
+ libXdmcp
+ libxtrans
+ x11proto
+ fontconfig
+ xwininfo
+- Increased number of clients to 1024
+- Also show the cursor in the main window when the xdmcp host selection dialog is shown
+
+Changes in 1.10.1.1
+-------------------
+- Update the following packages:
+ glproto git update until 24/5/2011
+ libfontenc git update until 24/5/2011
+ libxcb git update until 24/5/2011
+ pixman git update until 24/5/2011
+ xkeyboard-config git update until 24/5/2011
+ mesa git update until 24/5/2011
+ xserver git update until 24/5/2011
+ xcb-proto git update until 24/5/2011
+ mkfontscale git update until 24/5/2011
+- xkeyboard-config: Solved problem with Alt Gr key on some keyboards (e.g. belgian)
+
+
+Changes in 1.10.1.0
+-------------------
+- Update the following packages:
+ mesa git update until 5/5/2011
+ xserver git update until 5/5/2011
+ xkeyboard-config git update until 5/5/2011
+ libxcb git update until 5/5/2011
+ xkbcomp git update until 5/5/2011
+ libXext git update until 5/5/2011
+ libXmu git update until 5/5/2011
+ libX11 git update until 5/5/2011
+ libXdmcp git update until 5/5/2011
+ xextproto git update until 5/5/2011
+ libxtrans git update until 5/5/2011
+ pixman git update until 5/5/2011
+ glproto git update until 5/5/2011
+ openssl-1.0.0d
+- wgl; Solved crash because of pointer usages after memory has been freed.
+
+
+Changes in 1.10.0.1
+-------------------
+- Update the following packages:
+ xserver git update until 29/3/2011
+ mesa git update until 29/3/2011
+ xkeyboard-config git update until 29/3/2011
+ libX11 git update until 29/3/2011
+ pixman git update until 29/3/2011
+ libxcb git update until 29/3/2011
+ fontconfig git update until 29/3/2011
+ glproto git update until 29/3/2011
+ libXau git update until 29/3/2011
+ libXft git update until 29/3/2011
+ libXmu git update until 29/3/2011
+ libfontenc git update until 29/3/2011
+ mkfontscale git update until 29/3/2011
+ randrproto git update until 29/3/2011
+ xtrans git update until 29/3/2011
+ xwininfo git update until 29/3/2011
+ xproto-7.0.21 git update until 29/3/2011
+ xineramaproto-1.2.1
+ libXt-1.1.1
+ libxkbfile-1.0.7
+ libXpm-3.5.9
+ libXfont-1.4.3
+ libXaw-1.0.9
+ bdftopcf-1.0.3
+ encodings-1.0.4
+ fixesproto-5.0
+ font-adobe-100dpi-1.0.3
+ font-adobe-75dpi-1.0.3
+ font-adobe-utopia-100dpi-1.0.4
+ font-adobe-utopia-75dpi-1.0.4
+ font-adobe-utopia-type1-1.0.4
+ font-alias-1.0.3
+ font-arabic-misc-1.0.3
+ font-bh-100dpi-1.0.3
+ font-bh-75dpi-1.0.3
+ font-bh-lucidatypewriter-100dpi-1.0.3
+ font-bh-lucidatypewriter-75dpi-1.0.3
+ font-bh-ttf-1.0.3
+ font-bh-type1-1.0.3
+ font-bitstream-100dpi-1.0.3
+ font-bitstream-75dpi-1.0.3
+ font-bitstream-speedo-1.0.2
+ font-bitstream-type1-1.0.3
+ font-cronyx-cyrillic-1.0.3
+ font-cursor-misc-1.0.3
+ font-daewoo-misc-1.0.3
+ font-dec-misc-1.0.3
+ font-ibm-type1-1.0.3
+ font-isas-misc-1.0.3
+ font-jis-misc-1.0.3
+ font-micro-misc-1.0.3
+ font-misc-cyrillic-1.0.3
+ font-misc-ethiopic-1.0.3
+ font-misc-meltho-1.0.3
+ font-misc-misc-1.1.2
+ font-mutt-misc-1.0.3
+ font-schumacher-misc-1.1.2
+ font-screen-cyrillic-1.0.4
+ font-sony-misc-1.0.3
+ font-sun-misc-1.0.3
+ font-util-1.2.0
+ font-winitzki-cyrillic-1.0.3
+ font-xfree86-type1-1.0.4
+- Added ipv6 support
+- Solved past problem in windows when used with x2goclient (with -clipboard)
+- Solved problem of GetKeyState not always returning the correct state in WM_SETFOCUS
+- Delay calling winInitializeModeKeyStates until the keyboard device has been started
+- Solved possible crash due to NULL pointer access
+
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.13.1.0.txt b/releasenotes/releasenote_1.13.1.0.txt
new file mode 100644
index 000000000..b42e37f13
--- /dev/null
+++ b/releasenotes/releasenote_1.13.1.0.txt
@@ -0,0 +1,929 @@
+Changes in 1.13.1.0
+-------------------
+- Update the following packages:
+ git updates until 05/12/2012 of the following packages
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ xkbcomp
+ libX11
+ libXdmcp
+ libxcb
+ xkeyboard-config
+ fontconfig
+
+- Solved problem of dxtn.dll not loaded anymore
+- xlaunch: Allow specifying a key file in putty format when starting a
+ remote program. When the private key is password protected a
+ terminal window will pop up where this password can be entered
+ (except when a password is specified in the xlaunch config file)
+- xlaunch: when no password specified, a password can be entered in
+ the console window that will popup when the plink asks for a password
+- Now plink is a real console application in the release build (no -console
+ option anymore)
+- Added buildscript to compile from cygwin terminal
+- plink: when writing to stderr, flush immediately so that the error
+ output is seen immediately instead of at the end of the program
+
+
+Changes in 1.13.0.0
+-------------------
+- Update the following packages:
+ git updates until 22/10/2012 of the following packages
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libX11
+ xwininfo
+ fontconfig
+ libXau
+ libXext
+ libxcb
+ randrproto
+- Reverted xorg commit bafbd99080be49a17be97d2cc758fbe623369945
+ Gave problems in vcsrv on multiple monitors
+- Removed printing milli-seconds in log file
+- Changed fatal error message
+- Initialize the log file a little bit earlier in the startup process
+- Too long env variables: Instead of giving a fatal error just remove
+ the env variables that are too long
+- Solved problem of finding valid open socket in case ipv6 is not installed
+ and display number -1 is passed.
+- Make sure that version info is print to log file
+
+Changes in 1.12.99.0
+-------------------
+- Update the following packages:
+ git updates until 22/8/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libxcb
+ randrproto
+ libX11
+ libXext
+ zlib-1.2.7
+- Compiled the following modules as dlls:
+ zlib
+ libX11
+ libXau
+ libxcb
+ libXmu
+ libXext
+- Installer: Make installing debug version optional
+- Solved problem of using wrong name for log file when -displayfd is used
+- Fixed problem in Win32TempDir of returning NULL in case TEMP env variable
+ is not defined and TMP is
+- winProcessXEventsTimeout: improved accuracy of timeout
+- winUpdateWindowPosition: do not assume WS_EX_APPWINDOW style
+- multiwindow: do not ignore the windows key. Now the windows key can
+ be used as the meta key in emacs
+- Solved possible crash in winMultiWindowGetClassHint because second
+ string is not always null terminated
+
+Changes in 1.12.2.0
+-------------------
+- Update the following packages:
+ git updates until 15/6/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libX11
+ libXau
+ libXext
+ libxcb
+ libfontenc
+ glproto
+ freetype-2.4.10
+ libXaw-1.0.11
+ openssl-1.0.1c
+- xserver: added support for -displayfd option
+- xserver: made sure that the maximum number of clients is back at 1024
+
+Changes in 1.12.0.1
+-------------------
+- Update the following packages:
+ git updates until 10/4/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ openssl-1.0.1
+ bigreqsproto-1.1.2
+ fontsproto-2.1.2
+ recordproto-1.14.2
+ scrnsaverproto-1.2.2
+ xcmiscproto-1.2.2
+ libXt-1.1.3
+ xhost-1.0.5
+ kbproto-1.0.6
+ libXrender-0.9.7
+ libxkbfile-1.0.8
+ freetype-2.4.9
+ libXaw-1.0.10
+ libXpm-3.5.10
+ xproto-7.0.23
+
+- Solved problem when specifying -fullscreen on command line because default
+ resizing behaviour was changed to resize (which is not allowed in
+ fullscreen)
+
+Changes in 1.12.0.0
+-------------------
+- Update the following packages:
+ git updates until 30/3/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ fontconfig
+ mkfontscale
+ xkbcomp
+ mesa
+ libXau
+ libXdmcp
+ libXext
+ libXft
+ libXinerama
+ libXmu
+ font-util-1.3.0
+ xclock-1.0.6
+ libXfont-1.4.5
+ inputproto-2.2
+ freetype-2.4.9
+
+- Remove unused WindowExposuresProcPtr storage in screen privates
+- Return error when bitsperpixel is less then 24
+- Added taskbar grouping for windows 7
+- Solved possible crashes when drawable cannot be created.
+
+
+Changes in 1.11.4.0
+-------------------
+- Update the following packages:
+ git updates until 30/1/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ xwininfo
+ mkfontscale
+ libxtrans
+ libXdmcp
+ plink svn update until 30/1/2012
+ inputproto-2.1.99.5
+ xf86bigfontproto-1.2.0
+ openssl-1.0.0g
+- Added xhost-1.0.4 application
+- Added xauth-1.0.6 application
+- Implemented Implemented prgrbs ungrab clsgrb and prwins keyboard actions
+- Enable the keyboard options grab:break_actions by default
+- Enabled XFree86 BigFont extension
+- Solved possible crash in multiwindow mode
+- glx: added safety against the use of a null pointer
+
+Changes in 1.11.3.0
+-------------------
+- Update the following packages:
+ git updates until 17/12/2011 of the following packages
+ mesa
+ xserver
+ libxtrans
+ libX11
+ pixman
+ libxcb
+ glproto
+ xkeyboard-config
+
+- Added -parentprocessid command line option
+
+Changes in 1.11.2.0
+-------------------
+- Update the following packages:
+ git updates until 18/11/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ libXmu
+ libxtrans
+ libXdmcp
+ libXau
+ libXft
+ libXinerama
+ libfontenc
+ xwininfo
+ libXmu
+ mkfontscale
+ fontconfig
+ freetype 2.4.8
+ openssl-1.0.0e
+ inputproto-2.1.99.1
+
+Changes in 1.11.0.0
+-------------------
+- Update the following packages:
+ git updates until 5/9/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ randrproto
+ xwininfo
+ libXmu
+ libXfont-1.4.4
+ freetype 2.4.6
+- Installer: installation of fonts is optional now
+- xserver: Use AllocDevicePair for create the mouse and keyboard devices
+- xserver: Solved problem of window not taking the default window position when
+ created.
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 18/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libX11
+ freetype 2.4.5
+ inputproto-2.0.2
+ xproto-7.0.22
+ resourceproto-1.2.0
+ pthreads cvs version until 18/7/2011
+
+- Fixed regression in wgl implementation in multi-window mode
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 11/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ mkfontscale
+ xkeyboard-config
+ libX11
+ libXext
+ libXmu
+ xkbcomp
+ libXdmcp
+ libxtrans
+ x11proto
+ fontconfig
+ xwininfo
+- Increased number of clients to 1024
+- Also show the cursor in the main window when the xdmcp host selection dialog is shown
+
+Changes in 1.10.1.1
+-------------------
+- Update the following packages:
+ glproto git update until 24/5/2011
+ libfontenc git update until 24/5/2011
+ libxcb git update until 24/5/2011
+ pixman git update until 24/5/2011
+ xkeyboard-config git update until 24/5/2011
+ mesa git update until 24/5/2011
+ xserver git update until 24/5/2011
+ xcb-proto git update until 24/5/2011
+ mkfontscale git update until 24/5/2011
+- xkeyboard-config: Solved problem with Alt Gr key on some keyboards (e.g. belgian)
+
+
+Changes in 1.10.1.0
+-------------------
+- Update the following packages:
+ mesa git update until 5/5/2011
+ xserver git update until 5/5/2011
+ xkeyboard-config git update until 5/5/2011
+ libxcb git update until 5/5/2011
+ xkbcomp git update until 5/5/2011
+ libXext git update until 5/5/2011
+ libXmu git update until 5/5/2011
+ libX11 git update until 5/5/2011
+ libXdmcp git update until 5/5/2011
+ xextproto git update until 5/5/2011
+ libxtrans git update until 5/5/2011
+ pixman git update until 5/5/2011
+ glproto git update until 5/5/2011
+ openssl-1.0.0d
+- wgl; Solved crash because of pointer usages after memory has been freed.
+
+
+Changes in 1.10.0.1
+-------------------
+- Update the following packages:
+ xserver git update until 29/3/2011
+ mesa git update until 29/3/2011
+ xkeyboard-config git update until 29/3/2011
+ libX11 git update until 29/3/2011
+ pixman git update until 29/3/2011
+ libxcb git update until 29/3/2011
+ fontconfig git update until 29/3/2011
+ glproto git update until 29/3/2011
+ libXau git update until 29/3/2011
+ libXft git update until 29/3/2011
+ libXmu git update until 29/3/2011
+ libfontenc git update until 29/3/2011
+ mkfontscale git update until 29/3/2011
+ randrproto git update until 29/3/2011
+ xtrans git update until 29/3/2011
+ xwininfo git update until 29/3/2011
+ xproto-7.0.21 git update until 29/3/2011
+ xineramaproto-1.2.1
+ libXt-1.1.1
+ libxkbfile-1.0.7
+ libXpm-3.5.9
+ libXfont-1.4.3
+ libXaw-1.0.9
+ bdftopcf-1.0.3
+ encodings-1.0.4
+ fixesproto-5.0
+ font-adobe-100dpi-1.0.3
+ font-adobe-75dpi-1.0.3
+ font-adobe-utopia-100dpi-1.0.4
+ font-adobe-utopia-75dpi-1.0.4
+ font-adobe-utopia-type1-1.0.4
+ font-alias-1.0.3
+ font-arabic-misc-1.0.3
+ font-bh-100dpi-1.0.3
+ font-bh-75dpi-1.0.3
+ font-bh-lucidatypewriter-100dpi-1.0.3
+ font-bh-lucidatypewriter-75dpi-1.0.3
+ font-bh-ttf-1.0.3
+ font-bh-type1-1.0.3
+ font-bitstream-100dpi-1.0.3
+ font-bitstream-75dpi-1.0.3
+ font-bitstream-speedo-1.0.2
+ font-bitstream-type1-1.0.3
+ font-cronyx-cyrillic-1.0.3
+ font-cursor-misc-1.0.3
+ font-daewoo-misc-1.0.3
+ font-dec-misc-1.0.3
+ font-ibm-type1-1.0.3
+ font-isas-misc-1.0.3
+ font-jis-misc-1.0.3
+ font-micro-misc-1.0.3
+ font-misc-cyrillic-1.0.3
+ font-misc-ethiopic-1.0.3
+ font-misc-meltho-1.0.3
+ font-misc-misc-1.1.2
+ font-mutt-misc-1.0.3
+ font-schumacher-misc-1.1.2
+ font-screen-cyrillic-1.0.4
+ font-sony-misc-1.0.3
+ font-sun-misc-1.0.3
+ font-util-1.2.0
+ font-winitzki-cyrillic-1.0.3
+ font-xfree86-type1-1.0.4
+- Added ipv6 support
+- Solved past problem in windows when used with x2goclient (with -clipboard)
+- Solved problem of GetKeyState not always returning the correct state in WM_SETFOCUS
+- Delay calling winInitializeModeKeyStates until the keyboard device has been started
+- Solved possible crash due to NULL pointer access
+
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.13.2.0.txt b/releasenotes/releasenote_1.13.2.0.txt
new file mode 100644
index 000000000..ce46d23eb
--- /dev/null
+++ b/releasenotes/releasenote_1.13.2.0.txt
@@ -0,0 +1,963 @@
+Changes in 1.13.2.0
+-------------------
+- Update the following packages:
+ git updates until 13/02/2013 of the following packages
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ fontconfig
+ libX11
+ libXft
+ libXau
+ xkbcomp
+ mkfontscale
+ libXdmcp
+ libXmu
+ xwininfo
+ libxtrans
+ libXinerama
+ libfontenc
+ libXext
+ glproto
+ libxcb
+ cvs update until 13/02/2013 of pthreads
+ inputproto 2.2.99.1
+ bdftopcf 1.0.4
+ xcalc 1.0.5
+ openssl-1.0.1e
+ freetype-2.4.11
+
+- xlaunch: solved problem of prompt not being shown in xp
+- Use fonts.conf file in fontconfig
+- xlaunch: Use dialog for prompting for password input instead of console
+
+Changes in 1.13.1.0
+-------------------
+- Update the following packages:
+ git updates until 05/12/2012 of the following packages
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ xkbcomp
+ libX11
+ libXdmcp
+ libxcb
+ xkeyboard-config
+ fontconfig
+
+- Solved problem of dxtn.dll not loaded anymore
+- xlaunch: Allow specifying a key file in putty format when starting a
+ remote program. When the private key is password protected a
+ terminal window will pop up where this password can be entered
+ (except when a password is specified in the xlaunch config file)
+- xlaunch: when no password specified, a password can be entered in
+ the console window that will popup when the plink asks for a password
+- Now plink is a real console application in the release build (no -console
+ option anymore)
+- Added buildscript to compile from cygwin terminal
+- plink: when writing to stderr, flush immediately so that the error
+ output is seen immediately instead of at the end of the program
+
+
+Changes in 1.13.0.0
+-------------------
+- Update the following packages:
+ git updates until 22/10/2012 of the following packages
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libX11
+ xwininfo
+ fontconfig
+ libXau
+ libXext
+ libxcb
+ randrproto
+- Reverted xorg commit bafbd99080be49a17be97d2cc758fbe623369945
+ Gave problems in vcsrv on multiple monitors
+- Removed printing milli-seconds in log file
+- Changed fatal error message
+- Initialize the log file a little bit earlier in the startup process
+- Too long env variables: Instead of giving a fatal error just remove
+ the env variables that are too long
+- Solved problem of finding valid open socket in case ipv6 is not installed
+ and display number -1 is passed.
+- Make sure that version info is print to log file
+
+Changes in 1.12.99.0
+-------------------
+- Update the following packages:
+ git updates until 22/8/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libxcb
+ randrproto
+ libX11
+ libXext
+ zlib-1.2.7
+- Compiled the following modules as dlls:
+ zlib
+ libX11
+ libXau
+ libxcb
+ libXmu
+ libXext
+- Installer: Make installing debug version optional
+- Solved problem of using wrong name for log file when -displayfd is used
+- Fixed problem in Win32TempDir of returning NULL in case TEMP env variable
+ is not defined and TMP is
+- winProcessXEventsTimeout: improved accuracy of timeout
+- winUpdateWindowPosition: do not assume WS_EX_APPWINDOW style
+- multiwindow: do not ignore the windows key. Now the windows key can
+ be used as the meta key in emacs
+- Solved possible crash in winMultiWindowGetClassHint because second
+ string is not always null terminated
+
+Changes in 1.12.2.0
+-------------------
+- Update the following packages:
+ git updates until 15/6/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libX11
+ libXau
+ libXext
+ libxcb
+ libfontenc
+ glproto
+ freetype-2.4.10
+ libXaw-1.0.11
+ openssl-1.0.1c
+- xserver: added support for -displayfd option
+- xserver: made sure that the maximum number of clients is back at 1024
+
+Changes in 1.12.0.1
+-------------------
+- Update the following packages:
+ git updates until 10/4/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ openssl-1.0.1
+ bigreqsproto-1.1.2
+ fontsproto-2.1.2
+ recordproto-1.14.2
+ scrnsaverproto-1.2.2
+ xcmiscproto-1.2.2
+ libXt-1.1.3
+ xhost-1.0.5
+ kbproto-1.0.6
+ libXrender-0.9.7
+ libxkbfile-1.0.8
+ freetype-2.4.9
+ libXaw-1.0.10
+ libXpm-3.5.10
+ xproto-7.0.23
+
+- Solved problem when specifying -fullscreen on command line because default
+ resizing behaviour was changed to resize (which is not allowed in
+ fullscreen)
+
+Changes in 1.12.0.0
+-------------------
+- Update the following packages:
+ git updates until 30/3/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ fontconfig
+ mkfontscale
+ xkbcomp
+ mesa
+ libXau
+ libXdmcp
+ libXext
+ libXft
+ libXinerama
+ libXmu
+ font-util-1.3.0
+ xclock-1.0.6
+ libXfont-1.4.5
+ inputproto-2.2
+ freetype-2.4.9
+
+- Remove unused WindowExposuresProcPtr storage in screen privates
+- Return error when bitsperpixel is less then 24
+- Added taskbar grouping for windows 7
+- Solved possible crashes when drawable cannot be created.
+
+
+Changes in 1.11.4.0
+-------------------
+- Update the following packages:
+ git updates until 30/1/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ xwininfo
+ mkfontscale
+ libxtrans
+ libXdmcp
+ plink svn update until 30/1/2012
+ inputproto-2.1.99.5
+ xf86bigfontproto-1.2.0
+ openssl-1.0.0g
+- Added xhost-1.0.4 application
+- Added xauth-1.0.6 application
+- Implemented Implemented prgrbs ungrab clsgrb and prwins keyboard actions
+- Enable the keyboard options grab:break_actions by default
+- Enabled XFree86 BigFont extension
+- Solved possible crash in multiwindow mode
+- glx: added safety against the use of a null pointer
+
+Changes in 1.11.3.0
+-------------------
+- Update the following packages:
+ git updates until 17/12/2011 of the following packages
+ mesa
+ xserver
+ libxtrans
+ libX11
+ pixman
+ libxcb
+ glproto
+ xkeyboard-config
+
+- Added -parentprocessid command line option
+
+Changes in 1.11.2.0
+-------------------
+- Update the following packages:
+ git updates until 18/11/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ libXmu
+ libxtrans
+ libXdmcp
+ libXau
+ libXft
+ libXinerama
+ libfontenc
+ xwininfo
+ libXmu
+ mkfontscale
+ fontconfig
+ freetype 2.4.8
+ openssl-1.0.0e
+ inputproto-2.1.99.1
+
+Changes in 1.11.0.0
+-------------------
+- Update the following packages:
+ git updates until 5/9/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ randrproto
+ xwininfo
+ libXmu
+ libXfont-1.4.4
+ freetype 2.4.6
+- Installer: installation of fonts is optional now
+- xserver: Use AllocDevicePair for create the mouse and keyboard devices
+- xserver: Solved problem of window not taking the default window position when
+ created.
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 18/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libX11
+ freetype 2.4.5
+ inputproto-2.0.2
+ xproto-7.0.22
+ resourceproto-1.2.0
+ pthreads cvs version until 18/7/2011
+
+- Fixed regression in wgl implementation in multi-window mode
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 11/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ mkfontscale
+ xkeyboard-config
+ libX11
+ libXext
+ libXmu
+ xkbcomp
+ libXdmcp
+ libxtrans
+ x11proto
+ fontconfig
+ xwininfo
+- Increased number of clients to 1024
+- Also show the cursor in the main window when the xdmcp host selection dialog is shown
+
+Changes in 1.10.1.1
+-------------------
+- Update the following packages:
+ glproto git update until 24/5/2011
+ libfontenc git update until 24/5/2011
+ libxcb git update until 24/5/2011
+ pixman git update until 24/5/2011
+ xkeyboard-config git update until 24/5/2011
+ mesa git update until 24/5/2011
+ xserver git update until 24/5/2011
+ xcb-proto git update until 24/5/2011
+ mkfontscale git update until 24/5/2011
+- xkeyboard-config: Solved problem with Alt Gr key on some keyboards (e.g. belgian)
+
+
+Changes in 1.10.1.0
+-------------------
+- Update the following packages:
+ mesa git update until 5/5/2011
+ xserver git update until 5/5/2011
+ xkeyboard-config git update until 5/5/2011
+ libxcb git update until 5/5/2011
+ xkbcomp git update until 5/5/2011
+ libXext git update until 5/5/2011
+ libXmu git update until 5/5/2011
+ libX11 git update until 5/5/2011
+ libXdmcp git update until 5/5/2011
+ xextproto git update until 5/5/2011
+ libxtrans git update until 5/5/2011
+ pixman git update until 5/5/2011
+ glproto git update until 5/5/2011
+ openssl-1.0.0d
+- wgl; Solved crash because of pointer usages after memory has been freed.
+
+
+Changes in 1.10.0.1
+-------------------
+- Update the following packages:
+ xserver git update until 29/3/2011
+ mesa git update until 29/3/2011
+ xkeyboard-config git update until 29/3/2011
+ libX11 git update until 29/3/2011
+ pixman git update until 29/3/2011
+ libxcb git update until 29/3/2011
+ fontconfig git update until 29/3/2011
+ glproto git update until 29/3/2011
+ libXau git update until 29/3/2011
+ libXft git update until 29/3/2011
+ libXmu git update until 29/3/2011
+ libfontenc git update until 29/3/2011
+ mkfontscale git update until 29/3/2011
+ randrproto git update until 29/3/2011
+ xtrans git update until 29/3/2011
+ xwininfo git update until 29/3/2011
+ xproto-7.0.21 git update until 29/3/2011
+ xineramaproto-1.2.1
+ libXt-1.1.1
+ libxkbfile-1.0.7
+ libXpm-3.5.9
+ libXfont-1.4.3
+ libXaw-1.0.9
+ bdftopcf-1.0.3
+ encodings-1.0.4
+ fixesproto-5.0
+ font-adobe-100dpi-1.0.3
+ font-adobe-75dpi-1.0.3
+ font-adobe-utopia-100dpi-1.0.4
+ font-adobe-utopia-75dpi-1.0.4
+ font-adobe-utopia-type1-1.0.4
+ font-alias-1.0.3
+ font-arabic-misc-1.0.3
+ font-bh-100dpi-1.0.3
+ font-bh-75dpi-1.0.3
+ font-bh-lucidatypewriter-100dpi-1.0.3
+ font-bh-lucidatypewriter-75dpi-1.0.3
+ font-bh-ttf-1.0.3
+ font-bh-type1-1.0.3
+ font-bitstream-100dpi-1.0.3
+ font-bitstream-75dpi-1.0.3
+ font-bitstream-speedo-1.0.2
+ font-bitstream-type1-1.0.3
+ font-cronyx-cyrillic-1.0.3
+ font-cursor-misc-1.0.3
+ font-daewoo-misc-1.0.3
+ font-dec-misc-1.0.3
+ font-ibm-type1-1.0.3
+ font-isas-misc-1.0.3
+ font-jis-misc-1.0.3
+ font-micro-misc-1.0.3
+ font-misc-cyrillic-1.0.3
+ font-misc-ethiopic-1.0.3
+ font-misc-meltho-1.0.3
+ font-misc-misc-1.1.2
+ font-mutt-misc-1.0.3
+ font-schumacher-misc-1.1.2
+ font-screen-cyrillic-1.0.4
+ font-sony-misc-1.0.3
+ font-sun-misc-1.0.3
+ font-util-1.2.0
+ font-winitzki-cyrillic-1.0.3
+ font-xfree86-type1-1.0.4
+- Added ipv6 support
+- Solved past problem in windows when used with x2goclient (with -clipboard)
+- Solved problem of GetKeyState not always returning the correct state in WM_SETFOCUS
+- Delay calling winInitializeModeKeyStates until the keyboard device has been started
+- Solved possible crash due to NULL pointer access
+
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.14.2.0.txt b/releasenotes/releasenote_1.14.2.0.txt
new file mode 100644
index 000000000..9b236711f
--- /dev/null
+++ b/releasenotes/releasenote_1.14.2.0.txt
@@ -0,0 +1,989 @@
+Changes in 1.14.2.0
+-------------------
+- Update the following packages:
+ git updates until 21/06/2013 of the following packages
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libX11
+ mkfontscale
+ libXmu
+ xwininfo
+ fontconfig
+ libxcb
+ libxcb/xcb-proto
+ libXau
+ libfontenc
+ libXext
+ libXinerama
+ xkbcomp
+ libXdmcp
+ xrdb
+ freetype-2.5.0.1
+- wgl: do not use transparent windows for the opengl windows
+- Solved problem of logverbosity parameter not taking into account
+
+Changes in 1.13.2.0
+-------------------
+- Update the following packages:
+ git updates until 13/02/2013 of the following packages
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ fontconfig
+ libX11
+ libXft
+ libXau
+ xkbcomp
+ mkfontscale
+ libXdmcp
+ libXmu
+ xwininfo
+ libxtrans
+ libXinerama
+ libfontenc
+ libXext
+ glproto
+ libxcb
+ cvs update until 13/02/2013 of pthreads
+ inputproto 2.2.99.1
+ bdftopcf 1.0.4
+ xcalc 1.0.5
+ openssl-1.0.1e
+ freetype-2.4.11
+
+- xlaunch: solved problem of prompt not being shown in xp
+- Use fonts.conf file in fontconfig
+- xlaunch: Use dialog for prompting for password input instead of console
+
+Changes in 1.13.1.0
+-------------------
+- Update the following packages:
+ git updates until 05/12/2012 of the following packages
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ xkbcomp
+ libX11
+ libXdmcp
+ libxcb
+ xkeyboard-config
+ fontconfig
+
+- Solved problem of dxtn.dll not loaded anymore
+- xlaunch: Allow specifying a key file in putty format when starting a
+ remote program. When the private key is password protected a
+ terminal window will pop up where this password can be entered
+ (except when a password is specified in the xlaunch config file)
+- xlaunch: when no password specified, a password can be entered in
+ the console window that will popup when the plink asks for a password
+- Now plink is a real console application in the release build (no -console
+ option anymore)
+- Added buildscript to compile from cygwin terminal
+- plink: when writing to stderr, flush immediately so that the error
+ output is seen immediately instead of at the end of the program
+
+
+Changes in 1.13.0.0
+-------------------
+- Update the following packages:
+ git updates until 22/10/2012 of the following packages
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libX11
+ xwininfo
+ fontconfig
+ libXau
+ libXext
+ libxcb
+ randrproto
+- Reverted xorg commit bafbd99080be49a17be97d2cc758fbe623369945
+ Gave problems in vcsrv on multiple monitors
+- Removed printing milli-seconds in log file
+- Changed fatal error message
+- Initialize the log file a little bit earlier in the startup process
+- Too long env variables: Instead of giving a fatal error just remove
+ the env variables that are too long
+- Solved problem of finding valid open socket in case ipv6 is not installed
+ and display number -1 is passed.
+- Make sure that version info is print to log file
+
+Changes in 1.12.99.0
+-------------------
+- Update the following packages:
+ git updates until 22/8/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libxcb
+ randrproto
+ libX11
+ libXext
+ zlib-1.2.7
+- Compiled the following modules as dlls:
+ zlib
+ libX11
+ libXau
+ libxcb
+ libXmu
+ libXext
+- Installer: Make installing debug version optional
+- Solved problem of using wrong name for log file when -displayfd is used
+- Fixed problem in Win32TempDir of returning NULL in case TEMP env variable
+ is not defined and TMP is
+- winProcessXEventsTimeout: improved accuracy of timeout
+- winUpdateWindowPosition: do not assume WS_EX_APPWINDOW style
+- multiwindow: do not ignore the windows key. Now the windows key can
+ be used as the meta key in emacs
+- Solved possible crash in winMultiWindowGetClassHint because second
+ string is not always null terminated
+
+Changes in 1.12.2.0
+-------------------
+- Update the following packages:
+ git updates until 15/6/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libX11
+ libXau
+ libXext
+ libxcb
+ libfontenc
+ glproto
+ freetype-2.4.10
+ libXaw-1.0.11
+ openssl-1.0.1c
+- xserver: added support for -displayfd option
+- xserver: made sure that the maximum number of clients is back at 1024
+
+Changes in 1.12.0.1
+-------------------
+- Update the following packages:
+ git updates until 10/4/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ openssl-1.0.1
+ bigreqsproto-1.1.2
+ fontsproto-2.1.2
+ recordproto-1.14.2
+ scrnsaverproto-1.2.2
+ xcmiscproto-1.2.2
+ libXt-1.1.3
+ xhost-1.0.5
+ kbproto-1.0.6
+ libXrender-0.9.7
+ libxkbfile-1.0.8
+ freetype-2.4.9
+ libXaw-1.0.10
+ libXpm-3.5.10
+ xproto-7.0.23
+
+- Solved problem when specifying -fullscreen on command line because default
+ resizing behaviour was changed to resize (which is not allowed in
+ fullscreen)
+
+Changes in 1.12.0.0
+-------------------
+- Update the following packages:
+ git updates until 30/3/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ fontconfig
+ mkfontscale
+ xkbcomp
+ mesa
+ libXau
+ libXdmcp
+ libXext
+ libXft
+ libXinerama
+ libXmu
+ font-util-1.3.0
+ xclock-1.0.6
+ libXfont-1.4.5
+ inputproto-2.2
+ freetype-2.4.9
+
+- Remove unused WindowExposuresProcPtr storage in screen privates
+- Return error when bitsperpixel is less then 24
+- Added taskbar grouping for windows 7
+- Solved possible crashes when drawable cannot be created.
+
+
+Changes in 1.11.4.0
+-------------------
+- Update the following packages:
+ git updates until 30/1/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ xwininfo
+ mkfontscale
+ libxtrans
+ libXdmcp
+ plink svn update until 30/1/2012
+ inputproto-2.1.99.5
+ xf86bigfontproto-1.2.0
+ openssl-1.0.0g
+- Added xhost-1.0.4 application
+- Added xauth-1.0.6 application
+- Implemented Implemented prgrbs ungrab clsgrb and prwins keyboard actions
+- Enable the keyboard options grab:break_actions by default
+- Enabled XFree86 BigFont extension
+- Solved possible crash in multiwindow mode
+- glx: added safety against the use of a null pointer
+
+Changes in 1.11.3.0
+-------------------
+- Update the following packages:
+ git updates until 17/12/2011 of the following packages
+ mesa
+ xserver
+ libxtrans
+ libX11
+ pixman
+ libxcb
+ glproto
+ xkeyboard-config
+
+- Added -parentprocessid command line option
+
+Changes in 1.11.2.0
+-------------------
+- Update the following packages:
+ git updates until 18/11/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ libXmu
+ libxtrans
+ libXdmcp
+ libXau
+ libXft
+ libXinerama
+ libfontenc
+ xwininfo
+ libXmu
+ mkfontscale
+ fontconfig
+ freetype 2.4.8
+ openssl-1.0.0e
+ inputproto-2.1.99.1
+
+Changes in 1.11.0.0
+-------------------
+- Update the following packages:
+ git updates until 5/9/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ randrproto
+ xwininfo
+ libXmu
+ libXfont-1.4.4
+ freetype 2.4.6
+- Installer: installation of fonts is optional now
+- xserver: Use AllocDevicePair for create the mouse and keyboard devices
+- xserver: Solved problem of window not taking the default window position when
+ created.
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 18/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libX11
+ freetype 2.4.5
+ inputproto-2.0.2
+ xproto-7.0.22
+ resourceproto-1.2.0
+ pthreads cvs version until 18/7/2011
+
+- Fixed regression in wgl implementation in multi-window mode
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 11/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ mkfontscale
+ xkeyboard-config
+ libX11
+ libXext
+ libXmu
+ xkbcomp
+ libXdmcp
+ libxtrans
+ x11proto
+ fontconfig
+ xwininfo
+- Increased number of clients to 1024
+- Also show the cursor in the main window when the xdmcp host selection dialog is shown
+
+Changes in 1.10.1.1
+-------------------
+- Update the following packages:
+ glproto git update until 24/5/2011
+ libfontenc git update until 24/5/2011
+ libxcb git update until 24/5/2011
+ pixman git update until 24/5/2011
+ xkeyboard-config git update until 24/5/2011
+ mesa git update until 24/5/2011
+ xserver git update until 24/5/2011
+ xcb-proto git update until 24/5/2011
+ mkfontscale git update until 24/5/2011
+- xkeyboard-config: Solved problem with Alt Gr key on some keyboards (e.g. belgian)
+
+
+Changes in 1.10.1.0
+-------------------
+- Update the following packages:
+ mesa git update until 5/5/2011
+ xserver git update until 5/5/2011
+ xkeyboard-config git update until 5/5/2011
+ libxcb git update until 5/5/2011
+ xkbcomp git update until 5/5/2011
+ libXext git update until 5/5/2011
+ libXmu git update until 5/5/2011
+ libX11 git update until 5/5/2011
+ libXdmcp git update until 5/5/2011
+ xextproto git update until 5/5/2011
+ libxtrans git update until 5/5/2011
+ pixman git update until 5/5/2011
+ glproto git update until 5/5/2011
+ openssl-1.0.0d
+- wgl; Solved crash because of pointer usages after memory has been freed.
+
+
+Changes in 1.10.0.1
+-------------------
+- Update the following packages:
+ xserver git update until 29/3/2011
+ mesa git update until 29/3/2011
+ xkeyboard-config git update until 29/3/2011
+ libX11 git update until 29/3/2011
+ pixman git update until 29/3/2011
+ libxcb git update until 29/3/2011
+ fontconfig git update until 29/3/2011
+ glproto git update until 29/3/2011
+ libXau git update until 29/3/2011
+ libXft git update until 29/3/2011
+ libXmu git update until 29/3/2011
+ libfontenc git update until 29/3/2011
+ mkfontscale git update until 29/3/2011
+ randrproto git update until 29/3/2011
+ xtrans git update until 29/3/2011
+ xwininfo git update until 29/3/2011
+ xproto-7.0.21 git update until 29/3/2011
+ xineramaproto-1.2.1
+ libXt-1.1.1
+ libxkbfile-1.0.7
+ libXpm-3.5.9
+ libXfont-1.4.3
+ libXaw-1.0.9
+ bdftopcf-1.0.3
+ encodings-1.0.4
+ fixesproto-5.0
+ font-adobe-100dpi-1.0.3
+ font-adobe-75dpi-1.0.3
+ font-adobe-utopia-100dpi-1.0.4
+ font-adobe-utopia-75dpi-1.0.4
+ font-adobe-utopia-type1-1.0.4
+ font-alias-1.0.3
+ font-arabic-misc-1.0.3
+ font-bh-100dpi-1.0.3
+ font-bh-75dpi-1.0.3
+ font-bh-lucidatypewriter-100dpi-1.0.3
+ font-bh-lucidatypewriter-75dpi-1.0.3
+ font-bh-ttf-1.0.3
+ font-bh-type1-1.0.3
+ font-bitstream-100dpi-1.0.3
+ font-bitstream-75dpi-1.0.3
+ font-bitstream-speedo-1.0.2
+ font-bitstream-type1-1.0.3
+ font-cronyx-cyrillic-1.0.3
+ font-cursor-misc-1.0.3
+ font-daewoo-misc-1.0.3
+ font-dec-misc-1.0.3
+ font-ibm-type1-1.0.3
+ font-isas-misc-1.0.3
+ font-jis-misc-1.0.3
+ font-micro-misc-1.0.3
+ font-misc-cyrillic-1.0.3
+ font-misc-ethiopic-1.0.3
+ font-misc-meltho-1.0.3
+ font-misc-misc-1.1.2
+ font-mutt-misc-1.0.3
+ font-schumacher-misc-1.1.2
+ font-screen-cyrillic-1.0.4
+ font-sony-misc-1.0.3
+ font-sun-misc-1.0.3
+ font-util-1.2.0
+ font-winitzki-cyrillic-1.0.3
+ font-xfree86-type1-1.0.4
+- Added ipv6 support
+- Solved past problem in windows when used with x2goclient (with -clipboard)
+- Solved problem of GetKeyState not always returning the correct state in WM_SETFOCUS
+- Delay calling winInitializeModeKeyStates until the keyboard device has been started
+- Solved possible crash due to NULL pointer access
+
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.14.2.1.txt b/releasenotes/releasenote_1.14.2.1.txt
new file mode 100644
index 000000000..898ef211e
--- /dev/null
+++ b/releasenotes/releasenote_1.14.2.1.txt
@@ -0,0 +1,1008 @@
+Changes in 1.14.2.1
+-------------------
+- Update the following packages:
+ git updates until 26/07/2013 of the following packages
+ xserver
+ mesa
+ libxcb
+ libxcb/xcb-proto
+ fontconfig
+ libXext
+ libX11
+ libxtrans
+ xkbcomp
+ mkfontscale
+ libXmu
+ libxml 2.9.1
+- gen_gl_wrappers: now use the opengl xml specification files as input
+- Now also release 64-bit version
+
+Changes in 1.14.2.0
+-------------------
+- Update the following packages:
+ git updates until 21/06/2013 of the following packages
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libX11
+ mkfontscale
+ libXmu
+ xwininfo
+ fontconfig
+ libxcb
+ libxcb/xcb-proto
+ libXau
+ libfontenc
+ libXext
+ libXinerama
+ xkbcomp
+ libXdmcp
+ xrdb
+ freetype-2.5.0.1
+- wgl: do not use transparent windows for the opengl windows
+- Solved problem of logverbosity parameter not taking into account
+
+Changes in 1.13.2.0
+-------------------
+- Update the following packages:
+ git updates until 13/02/2013 of the following packages
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ fontconfig
+ libX11
+ libXft
+ libXau
+ xkbcomp
+ mkfontscale
+ libXdmcp
+ libXmu
+ xwininfo
+ libxtrans
+ libXinerama
+ libfontenc
+ libXext
+ glproto
+ libxcb
+ cvs update until 13/02/2013 of pthreads
+ inputproto 2.2.99.1
+ bdftopcf 1.0.4
+ xcalc 1.0.5
+ openssl-1.0.1e
+ freetype-2.4.11
+
+- xlaunch: solved problem of prompt not being shown in xp
+- Use fonts.conf file in fontconfig
+- xlaunch: Use dialog for prompting for password input instead of console
+
+Changes in 1.13.1.0
+-------------------
+- Update the following packages:
+ git updates until 05/12/2012 of the following packages
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ xkbcomp
+ libX11
+ libXdmcp
+ libxcb
+ xkeyboard-config
+ fontconfig
+
+- Solved problem of dxtn.dll not loaded anymore
+- xlaunch: Allow specifying a key file in putty format when starting a
+ remote program. When the private key is password protected a
+ terminal window will pop up where this password can be entered
+ (except when a password is specified in the xlaunch config file)
+- xlaunch: when no password specified, a password can be entered in
+ the console window that will popup when the plink asks for a password
+- Now plink is a real console application in the release build (no -console
+ option anymore)
+- Added buildscript to compile from cygwin terminal
+- plink: when writing to stderr, flush immediately so that the error
+ output is seen immediately instead of at the end of the program
+
+
+Changes in 1.13.0.0
+-------------------
+- Update the following packages:
+ git updates until 22/10/2012 of the following packages
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libX11
+ xwininfo
+ fontconfig
+ libXau
+ libXext
+ libxcb
+ randrproto
+- Reverted xorg commit bafbd99080be49a17be97d2cc758fbe623369945
+ Gave problems in vcsrv on multiple monitors
+- Removed printing milli-seconds in log file
+- Changed fatal error message
+- Initialize the log file a little bit earlier in the startup process
+- Too long env variables: Instead of giving a fatal error just remove
+ the env variables that are too long
+- Solved problem of finding valid open socket in case ipv6 is not installed
+ and display number -1 is passed.
+- Make sure that version info is print to log file
+
+Changes in 1.12.99.0
+-------------------
+- Update the following packages:
+ git updates until 22/8/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libxcb
+ randrproto
+ libX11
+ libXext
+ zlib-1.2.7
+- Compiled the following modules as dlls:
+ zlib
+ libX11
+ libXau
+ libxcb
+ libXmu
+ libXext
+- Installer: Make installing debug version optional
+- Solved problem of using wrong name for log file when -displayfd is used
+- Fixed problem in Win32TempDir of returning NULL in case TEMP env variable
+ is not defined and TMP is
+- winProcessXEventsTimeout: improved accuracy of timeout
+- winUpdateWindowPosition: do not assume WS_EX_APPWINDOW style
+- multiwindow: do not ignore the windows key. Now the windows key can
+ be used as the meta key in emacs
+- Solved possible crash in winMultiWindowGetClassHint because second
+ string is not always null terminated
+
+Changes in 1.12.2.0
+-------------------
+- Update the following packages:
+ git updates until 15/6/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libX11
+ libXau
+ libXext
+ libxcb
+ libfontenc
+ glproto
+ freetype-2.4.10
+ libXaw-1.0.11
+ openssl-1.0.1c
+- xserver: added support for -displayfd option
+- xserver: made sure that the maximum number of clients is back at 1024
+
+Changes in 1.12.0.1
+-------------------
+- Update the following packages:
+ git updates until 10/4/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ openssl-1.0.1
+ bigreqsproto-1.1.2
+ fontsproto-2.1.2
+ recordproto-1.14.2
+ scrnsaverproto-1.2.2
+ xcmiscproto-1.2.2
+ libXt-1.1.3
+ xhost-1.0.5
+ kbproto-1.0.6
+ libXrender-0.9.7
+ libxkbfile-1.0.8
+ freetype-2.4.9
+ libXaw-1.0.10
+ libXpm-3.5.10
+ xproto-7.0.23
+
+- Solved problem when specifying -fullscreen on command line because default
+ resizing behaviour was changed to resize (which is not allowed in
+ fullscreen)
+
+Changes in 1.12.0.0
+-------------------
+- Update the following packages:
+ git updates until 30/3/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ fontconfig
+ mkfontscale
+ xkbcomp
+ mesa
+ libXau
+ libXdmcp
+ libXext
+ libXft
+ libXinerama
+ libXmu
+ font-util-1.3.0
+ xclock-1.0.6
+ libXfont-1.4.5
+ inputproto-2.2
+ freetype-2.4.9
+
+- Remove unused WindowExposuresProcPtr storage in screen privates
+- Return error when bitsperpixel is less then 24
+- Added taskbar grouping for windows 7
+- Solved possible crashes when drawable cannot be created.
+
+
+Changes in 1.11.4.0
+-------------------
+- Update the following packages:
+ git updates until 30/1/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ xwininfo
+ mkfontscale
+ libxtrans
+ libXdmcp
+ plink svn update until 30/1/2012
+ inputproto-2.1.99.5
+ xf86bigfontproto-1.2.0
+ openssl-1.0.0g
+- Added xhost-1.0.4 application
+- Added xauth-1.0.6 application
+- Implemented Implemented prgrbs ungrab clsgrb and prwins keyboard actions
+- Enable the keyboard options grab:break_actions by default
+- Enabled XFree86 BigFont extension
+- Solved possible crash in multiwindow mode
+- glx: added safety against the use of a null pointer
+
+Changes in 1.11.3.0
+-------------------
+- Update the following packages:
+ git updates until 17/12/2011 of the following packages
+ mesa
+ xserver
+ libxtrans
+ libX11
+ pixman
+ libxcb
+ glproto
+ xkeyboard-config
+
+- Added -parentprocessid command line option
+
+Changes in 1.11.2.0
+-------------------
+- Update the following packages:
+ git updates until 18/11/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ libXmu
+ libxtrans
+ libXdmcp
+ libXau
+ libXft
+ libXinerama
+ libfontenc
+ xwininfo
+ libXmu
+ mkfontscale
+ fontconfig
+ freetype 2.4.8
+ openssl-1.0.0e
+ inputproto-2.1.99.1
+
+Changes in 1.11.0.0
+-------------------
+- Update the following packages:
+ git updates until 5/9/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ randrproto
+ xwininfo
+ libXmu
+ libXfont-1.4.4
+ freetype 2.4.6
+- Installer: installation of fonts is optional now
+- xserver: Use AllocDevicePair for create the mouse and keyboard devices
+- xserver: Solved problem of window not taking the default window position when
+ created.
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 18/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libX11
+ freetype 2.4.5
+ inputproto-2.0.2
+ xproto-7.0.22
+ resourceproto-1.2.0
+ pthreads cvs version until 18/7/2011
+
+- Fixed regression in wgl implementation in multi-window mode
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 11/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ mkfontscale
+ xkeyboard-config
+ libX11
+ libXext
+ libXmu
+ xkbcomp
+ libXdmcp
+ libxtrans
+ x11proto
+ fontconfig
+ xwininfo
+- Increased number of clients to 1024
+- Also show the cursor in the main window when the xdmcp host selection dialog is shown
+
+Changes in 1.10.1.1
+-------------------
+- Update the following packages:
+ glproto git update until 24/5/2011
+ libfontenc git update until 24/5/2011
+ libxcb git update until 24/5/2011
+ pixman git update until 24/5/2011
+ xkeyboard-config git update until 24/5/2011
+ mesa git update until 24/5/2011
+ xserver git update until 24/5/2011
+ xcb-proto git update until 24/5/2011
+ mkfontscale git update until 24/5/2011
+- xkeyboard-config: Solved problem with Alt Gr key on some keyboards (e.g. belgian)
+
+
+Changes in 1.10.1.0
+-------------------
+- Update the following packages:
+ mesa git update until 5/5/2011
+ xserver git update until 5/5/2011
+ xkeyboard-config git update until 5/5/2011
+ libxcb git update until 5/5/2011
+ xkbcomp git update until 5/5/2011
+ libXext git update until 5/5/2011
+ libXmu git update until 5/5/2011
+ libX11 git update until 5/5/2011
+ libXdmcp git update until 5/5/2011
+ xextproto git update until 5/5/2011
+ libxtrans git update until 5/5/2011
+ pixman git update until 5/5/2011
+ glproto git update until 5/5/2011
+ openssl-1.0.0d
+- wgl; Solved crash because of pointer usages after memory has been freed.
+
+
+Changes in 1.10.0.1
+-------------------
+- Update the following packages:
+ xserver git update until 29/3/2011
+ mesa git update until 29/3/2011
+ xkeyboard-config git update until 29/3/2011
+ libX11 git update until 29/3/2011
+ pixman git update until 29/3/2011
+ libxcb git update until 29/3/2011
+ fontconfig git update until 29/3/2011
+ glproto git update until 29/3/2011
+ libXau git update until 29/3/2011
+ libXft git update until 29/3/2011
+ libXmu git update until 29/3/2011
+ libfontenc git update until 29/3/2011
+ mkfontscale git update until 29/3/2011
+ randrproto git update until 29/3/2011
+ xtrans git update until 29/3/2011
+ xwininfo git update until 29/3/2011
+ xproto-7.0.21 git update until 29/3/2011
+ xineramaproto-1.2.1
+ libXt-1.1.1
+ libxkbfile-1.0.7
+ libXpm-3.5.9
+ libXfont-1.4.3
+ libXaw-1.0.9
+ bdftopcf-1.0.3
+ encodings-1.0.4
+ fixesproto-5.0
+ font-adobe-100dpi-1.0.3
+ font-adobe-75dpi-1.0.3
+ font-adobe-utopia-100dpi-1.0.4
+ font-adobe-utopia-75dpi-1.0.4
+ font-adobe-utopia-type1-1.0.4
+ font-alias-1.0.3
+ font-arabic-misc-1.0.3
+ font-bh-100dpi-1.0.3
+ font-bh-75dpi-1.0.3
+ font-bh-lucidatypewriter-100dpi-1.0.3
+ font-bh-lucidatypewriter-75dpi-1.0.3
+ font-bh-ttf-1.0.3
+ font-bh-type1-1.0.3
+ font-bitstream-100dpi-1.0.3
+ font-bitstream-75dpi-1.0.3
+ font-bitstream-speedo-1.0.2
+ font-bitstream-type1-1.0.3
+ font-cronyx-cyrillic-1.0.3
+ font-cursor-misc-1.0.3
+ font-daewoo-misc-1.0.3
+ font-dec-misc-1.0.3
+ font-ibm-type1-1.0.3
+ font-isas-misc-1.0.3
+ font-jis-misc-1.0.3
+ font-micro-misc-1.0.3
+ font-misc-cyrillic-1.0.3
+ font-misc-ethiopic-1.0.3
+ font-misc-meltho-1.0.3
+ font-misc-misc-1.1.2
+ font-mutt-misc-1.0.3
+ font-schumacher-misc-1.1.2
+ font-screen-cyrillic-1.0.4
+ font-sony-misc-1.0.3
+ font-sun-misc-1.0.3
+ font-util-1.2.0
+ font-winitzki-cyrillic-1.0.3
+ font-xfree86-type1-1.0.4
+- Added ipv6 support
+- Solved past problem in windows when used with x2goclient (with -clipboard)
+- Solved problem of GetKeyState not always returning the correct state in WM_SETFOCUS
+- Delay calling winInitializeModeKeyStates until the keyboard device has been started
+- Solved possible crash due to NULL pointer access
+
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.14.3.txt b/releasenotes/releasenote_1.14.3.txt
new file mode 100644
index 000000000..c76478b8d
--- /dev/null
+++ b/releasenotes/releasenote_1.14.3.txt
@@ -0,0 +1,1026 @@
+Changes in 1.14.3
+-----------------
+- Update the following packages:
+ git updates until 19/09/2013 of the following packages
+ xserver
+ mesa
+ pixman
+ libXmu
+ xkeyboard-config
+ libX11
+ xkbcomp
+ fontconfig
+ libxcb
+ libxcb/xcb-proto
+ libXdmcp
+ libXext
+- Now compiled with Visual Studio 2012 Express Edition
+
+Changes in 1.14.2.1
+-------------------
+- Update the following packages:
+ git updates until 26/07/2013 of the following packages
+ xserver
+ mesa
+ libxcb
+ libxcb/xcb-proto
+ fontconfig
+ libXext
+ libX11
+ libxtrans
+ xkbcomp
+ mkfontscale
+ libXmu
+ libxml 2.9.1
+- gen_gl_wrappers: now use the opengl xml specification files as input
+- Now also release 64-bit version
+
+Changes in 1.14.2.0
+-------------------
+- Update the following packages:
+ git updates until 21/06/2013 of the following packages
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libX11
+ mkfontscale
+ libXmu
+ xwininfo
+ fontconfig
+ libxcb
+ libxcb/xcb-proto
+ libXau
+ libfontenc
+ libXext
+ libXinerama
+ xkbcomp
+ libXdmcp
+ xrdb
+ freetype-2.5.0.1
+- wgl: do not use transparent windows for the opengl windows
+- Solved problem of logverbosity parameter not taking into account
+
+Changes in 1.13.2.0
+-------------------
+- Update the following packages:
+ git updates until 13/02/2013 of the following packages
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ fontconfig
+ libX11
+ libXft
+ libXau
+ xkbcomp
+ mkfontscale
+ libXdmcp
+ libXmu
+ xwininfo
+ libxtrans
+ libXinerama
+ libfontenc
+ libXext
+ glproto
+ libxcb
+ cvs update until 13/02/2013 of pthreads
+ inputproto 2.2.99.1
+ bdftopcf 1.0.4
+ xcalc 1.0.5
+ openssl-1.0.1e
+ freetype-2.4.11
+
+- xlaunch: solved problem of prompt not being shown in xp
+- Use fonts.conf file in fontconfig
+- xlaunch: Use dialog for prompting for password input instead of console
+
+Changes in 1.13.1.0
+-------------------
+- Update the following packages:
+ git updates until 05/12/2012 of the following packages
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ xkbcomp
+ libX11
+ libXdmcp
+ libxcb
+ xkeyboard-config
+ fontconfig
+
+- Solved problem of dxtn.dll not loaded anymore
+- xlaunch: Allow specifying a key file in putty format when starting a
+ remote program. When the private key is password protected a
+ terminal window will pop up where this password can be entered
+ (except when a password is specified in the xlaunch config file)
+- xlaunch: when no password specified, a password can be entered in
+ the console window that will popup when the plink asks for a password
+- Now plink is a real console application in the release build (no -console
+ option anymore)
+- Added buildscript to compile from cygwin terminal
+- plink: when writing to stderr, flush immediately so that the error
+ output is seen immediately instead of at the end of the program
+
+
+Changes in 1.13.0.0
+-------------------
+- Update the following packages:
+ git updates until 22/10/2012 of the following packages
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libX11
+ xwininfo
+ fontconfig
+ libXau
+ libXext
+ libxcb
+ randrproto
+- Reverted xorg commit bafbd99080be49a17be97d2cc758fbe623369945
+ Gave problems in vcsrv on multiple monitors
+- Removed printing milli-seconds in log file
+- Changed fatal error message
+- Initialize the log file a little bit earlier in the startup process
+- Too long env variables: Instead of giving a fatal error just remove
+ the env variables that are too long
+- Solved problem of finding valid open socket in case ipv6 is not installed
+ and display number -1 is passed.
+- Make sure that version info is print to log file
+
+Changes in 1.12.99.0
+-------------------
+- Update the following packages:
+ git updates until 22/8/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libxcb
+ randrproto
+ libX11
+ libXext
+ zlib-1.2.7
+- Compiled the following modules as dlls:
+ zlib
+ libX11
+ libXau
+ libxcb
+ libXmu
+ libXext
+- Installer: Make installing debug version optional
+- Solved problem of using wrong name for log file when -displayfd is used
+- Fixed problem in Win32TempDir of returning NULL in case TEMP env variable
+ is not defined and TMP is
+- winProcessXEventsTimeout: improved accuracy of timeout
+- winUpdateWindowPosition: do not assume WS_EX_APPWINDOW style
+- multiwindow: do not ignore the windows key. Now the windows key can
+ be used as the meta key in emacs
+- Solved possible crash in winMultiWindowGetClassHint because second
+ string is not always null terminated
+
+Changes in 1.12.2.0
+-------------------
+- Update the following packages:
+ git updates until 15/6/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ libX11
+ libXau
+ libXext
+ libxcb
+ libfontenc
+ glproto
+ freetype-2.4.10
+ libXaw-1.0.11
+ openssl-1.0.1c
+- xserver: added support for -displayfd option
+- xserver: made sure that the maximum number of clients is back at 1024
+
+Changes in 1.12.0.1
+-------------------
+- Update the following packages:
+ git updates until 10/4/2012 of the following packages
+ fontconfig
+ mesa
+ xkeyboard-config
+ xserver
+ pixman
+ openssl-1.0.1
+ bigreqsproto-1.1.2
+ fontsproto-2.1.2
+ recordproto-1.14.2
+ scrnsaverproto-1.2.2
+ xcmiscproto-1.2.2
+ libXt-1.1.3
+ xhost-1.0.5
+ kbproto-1.0.6
+ libXrender-0.9.7
+ libxkbfile-1.0.8
+ freetype-2.4.9
+ libXaw-1.0.10
+ libXpm-3.5.10
+ xproto-7.0.23
+
+- Solved problem when specifying -fullscreen on command line because default
+ resizing behaviour was changed to resize (which is not allowed in
+ fullscreen)
+
+Changes in 1.12.0.0
+-------------------
+- Update the following packages:
+ git updates until 30/3/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ fontconfig
+ mkfontscale
+ xkbcomp
+ mesa
+ libXau
+ libXdmcp
+ libXext
+ libXft
+ libXinerama
+ libXmu
+ font-util-1.3.0
+ xclock-1.0.6
+ libXfont-1.4.5
+ inputproto-2.2
+ freetype-2.4.9
+
+- Remove unused WindowExposuresProcPtr storage in screen privates
+- Return error when bitsperpixel is less then 24
+- Added taskbar grouping for windows 7
+- Solved possible crashes when drawable cannot be created.
+
+
+Changes in 1.11.4.0
+-------------------
+- Update the following packages:
+ git updates until 30/1/2012 of the following packages
+ mesa
+ xserver
+ libxcb
+ libX11
+ pixman
+ xkeyboard-config
+ xwininfo
+ mkfontscale
+ libxtrans
+ libXdmcp
+ plink svn update until 30/1/2012
+ inputproto-2.1.99.5
+ xf86bigfontproto-1.2.0
+ openssl-1.0.0g
+- Added xhost-1.0.4 application
+- Added xauth-1.0.6 application
+- Implemented Implemented prgrbs ungrab clsgrb and prwins keyboard actions
+- Enable the keyboard options grab:break_actions by default
+- Enabled XFree86 BigFont extension
+- Solved possible crash in multiwindow mode
+- glx: added safety against the use of a null pointer
+
+Changes in 1.11.3.0
+-------------------
+- Update the following packages:
+ git updates until 17/12/2011 of the following packages
+ mesa
+ xserver
+ libxtrans
+ libX11
+ pixman
+ libxcb
+ glproto
+ xkeyboard-config
+
+- Added -parentprocessid command line option
+
+Changes in 1.11.2.0
+-------------------
+- Update the following packages:
+ git updates until 18/11/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ libXmu
+ libxtrans
+ libXdmcp
+ libXau
+ libXft
+ libXinerama
+ libfontenc
+ xwininfo
+ libXmu
+ mkfontscale
+ fontconfig
+ freetype 2.4.8
+ openssl-1.0.0e
+ inputproto-2.1.99.1
+
+Changes in 1.11.0.0
+-------------------
+- Update the following packages:
+ git updates until 5/9/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libxcb
+ libX11
+ libXext
+ xkeyboard-config
+ randrproto
+ xwininfo
+ libXmu
+ libXfont-1.4.4
+ freetype 2.4.6
+- Installer: installation of fonts is optional now
+- xserver: Use AllocDevicePair for create the mouse and keyboard devices
+- xserver: Solved problem of window not taking the default window position when
+ created.
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 18/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ libX11
+ freetype 2.4.5
+ inputproto-2.0.2
+ xproto-7.0.22
+ resourceproto-1.2.0
+ pthreads cvs version until 18/7/2011
+
+- Fixed regression in wgl implementation in multi-window mode
+
+Changes in 1.10.3.0
+-------------------
+- Update the following packages:
+ git updates until 11/7/2011 of the following packages
+ mesa
+ xserver
+ pixman
+ mkfontscale
+ xkeyboard-config
+ libX11
+ libXext
+ libXmu
+ xkbcomp
+ libXdmcp
+ libxtrans
+ x11proto
+ fontconfig
+ xwininfo
+- Increased number of clients to 1024
+- Also show the cursor in the main window when the xdmcp host selection dialog is shown
+
+Changes in 1.10.1.1
+-------------------
+- Update the following packages:
+ glproto git update until 24/5/2011
+ libfontenc git update until 24/5/2011
+ libxcb git update until 24/5/2011
+ pixman git update until 24/5/2011
+ xkeyboard-config git update until 24/5/2011
+ mesa git update until 24/5/2011
+ xserver git update until 24/5/2011
+ xcb-proto git update until 24/5/2011
+ mkfontscale git update until 24/5/2011
+- xkeyboard-config: Solved problem with Alt Gr key on some keyboards (e.g. belgian)
+
+
+Changes in 1.10.1.0
+-------------------
+- Update the following packages:
+ mesa git update until 5/5/2011
+ xserver git update until 5/5/2011
+ xkeyboard-config git update until 5/5/2011
+ libxcb git update until 5/5/2011
+ xkbcomp git update until 5/5/2011
+ libXext git update until 5/5/2011
+ libXmu git update until 5/5/2011
+ libX11 git update until 5/5/2011
+ libXdmcp git update until 5/5/2011
+ xextproto git update until 5/5/2011
+ libxtrans git update until 5/5/2011
+ pixman git update until 5/5/2011
+ glproto git update until 5/5/2011
+ openssl-1.0.0d
+- wgl; Solved crash because of pointer usages after memory has been freed.
+
+
+Changes in 1.10.0.1
+-------------------
+- Update the following packages:
+ xserver git update until 29/3/2011
+ mesa git update until 29/3/2011
+ xkeyboard-config git update until 29/3/2011
+ libX11 git update until 29/3/2011
+ pixman git update until 29/3/2011
+ libxcb git update until 29/3/2011
+ fontconfig git update until 29/3/2011
+ glproto git update until 29/3/2011
+ libXau git update until 29/3/2011
+ libXft git update until 29/3/2011
+ libXmu git update until 29/3/2011
+ libfontenc git update until 29/3/2011
+ mkfontscale git update until 29/3/2011
+ randrproto git update until 29/3/2011
+ xtrans git update until 29/3/2011
+ xwininfo git update until 29/3/2011
+ xproto-7.0.21 git update until 29/3/2011
+ xineramaproto-1.2.1
+ libXt-1.1.1
+ libxkbfile-1.0.7
+ libXpm-3.5.9
+ libXfont-1.4.3
+ libXaw-1.0.9
+ bdftopcf-1.0.3
+ encodings-1.0.4
+ fixesproto-5.0
+ font-adobe-100dpi-1.0.3
+ font-adobe-75dpi-1.0.3
+ font-adobe-utopia-100dpi-1.0.4
+ font-adobe-utopia-75dpi-1.0.4
+ font-adobe-utopia-type1-1.0.4
+ font-alias-1.0.3
+ font-arabic-misc-1.0.3
+ font-bh-100dpi-1.0.3
+ font-bh-75dpi-1.0.3
+ font-bh-lucidatypewriter-100dpi-1.0.3
+ font-bh-lucidatypewriter-75dpi-1.0.3
+ font-bh-ttf-1.0.3
+ font-bh-type1-1.0.3
+ font-bitstream-100dpi-1.0.3
+ font-bitstream-75dpi-1.0.3
+ font-bitstream-speedo-1.0.2
+ font-bitstream-type1-1.0.3
+ font-cronyx-cyrillic-1.0.3
+ font-cursor-misc-1.0.3
+ font-daewoo-misc-1.0.3
+ font-dec-misc-1.0.3
+ font-ibm-type1-1.0.3
+ font-isas-misc-1.0.3
+ font-jis-misc-1.0.3
+ font-micro-misc-1.0.3
+ font-misc-cyrillic-1.0.3
+ font-misc-ethiopic-1.0.3
+ font-misc-meltho-1.0.3
+ font-misc-misc-1.1.2
+ font-mutt-misc-1.0.3
+ font-schumacher-misc-1.1.2
+ font-screen-cyrillic-1.0.4
+ font-sony-misc-1.0.3
+ font-sun-misc-1.0.3
+ font-util-1.2.0
+ font-winitzki-cyrillic-1.0.3
+ font-xfree86-type1-1.0.4
+- Added ipv6 support
+- Solved past problem in windows when used with x2goclient (with -clipboard)
+- Solved problem of GetKeyState not always returning the correct state in WM_SETFOCUS
+- Delay calling winInitializeModeKeyStates until the keyboard device has been started
+- Solved possible crash due to NULL pointer access
+
+Changes in 1.10.0.0
+-------------------
+- Update the following packages:
+ xserver git update until 8/3/2011
+ xkeyboard-config git update until 8/3/2011
+ pixman git update until 8/3/2011
+ libX11 git update until 8/3/2011
+ mesa git update until 8/3/2011
+ randrproto git update until 8/3/2011
+ Xextproto git update until 8/3/2011
+ libxcb git update until 8/3/2011
+- Solved errors when used with xmodmap
+- xlaunch:
+ . removed dependency on msxml 4.0
+ libxml2 is now used for parsing the xml input file
+ . added possibility to only map the CLIPBOARD selection to the-RECORD-extension
+ windows clipboard
+ . fixed problems when starting a client (local and remote)
+ . added option to set disable access control
+ . added option to terminate vcxsrv on server reset (xdmcp)
+- xserver: Made winOverrideStyle thread safe
+- xserver: Synchronize Xserver glx/rensize.c with mesa src/glx/compsize.c
+- native glx: Handle failure to get any fbconfigs more gracefully
+- vcxsrv: added -[no]clipboardprimary. Can be used to only map the CLIPBOARD
+ selection to the windows clipboard
+
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.7.0.1.txt b/releasenotes/releasenote_1.7.0.1.txt
new file mode 100644
index 000000000..53c88e092
--- /dev/null
+++ b/releasenotes/releasenote_1.7.0.1.txt
@@ -0,0 +1,142 @@
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.7.0.txt b/releasenotes/releasenote_1.7.0.txt
new file mode 100644
index 000000000..9bc3ca755
--- /dev/null
+++ b/releasenotes/releasenote_1.7.0.txt
@@ -0,0 +1,96 @@
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.7.99.1.txt b/releasenotes/releasenote_1.7.99.1.txt
new file mode 100644
index 000000000..92229a28a
--- /dev/null
+++ b/releasenotes/releasenote_1.7.99.1.txt
@@ -0,0 +1,155 @@
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.7.99.2.txt b/releasenotes/releasenote_1.7.99.2.txt
new file mode 100644
index 000000000..3700d6e38
--- /dev/null
+++ b/releasenotes/releasenote_1.7.99.2.txt
@@ -0,0 +1,171 @@
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.7.99.3.txt b/releasenotes/releasenote_1.7.99.3.txt
new file mode 100644
index 000000000..6cb07c24d
--- /dev/null
+++ b/releasenotes/releasenote_1.7.99.3.txt
@@ -0,0 +1,187 @@
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.7.99.4.txt b/releasenotes/releasenote_1.7.99.4.txt
new file mode 100644
index 000000000..473c31ead
--- /dev/null
+++ b/releasenotes/releasenote_1.7.99.4.txt
@@ -0,0 +1,197 @@
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.7.99.5.txt b/releasenotes/releasenote_1.7.99.5.txt
new file mode 100644
index 000000000..516df0b74
--- /dev/null
+++ b/releasenotes/releasenote_1.7.99.5.txt
@@ -0,0 +1,208 @@
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.7.99.6.txt b/releasenotes/releasenote_1.7.99.6.txt
new file mode 100644
index 000000000..534ee349f
--- /dev/null
+++ b/releasenotes/releasenote_1.7.99.6.txt
@@ -0,0 +1,222 @@
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.7.99.901.txt b/releasenotes/releasenote_1.7.99.901.txt
new file mode 100644
index 000000000..eb3b339f2
--- /dev/null
+++ b/releasenotes/releasenote_1.7.99.901.txt
@@ -0,0 +1,236 @@
+Changes in 1.7.99.901
+-------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.7.99.902.txt b/releasenotes/releasenote_1.7.99.902.txt
new file mode 100644
index 000000000..94caf8cf3
--- /dev/null
+++ b/releasenotes/releasenote_1.7.99.902.txt
@@ -0,0 +1,253 @@
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.8.0.txt b/releasenotes/releasenote_1.8.0.txt
new file mode 100644
index 000000000..eab17db9f
--- /dev/null
+++ b/releasenotes/releasenote_1.8.0.txt
@@ -0,0 +1,263 @@
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.8.1.1.txt b/releasenotes/releasenote_1.8.1.1.txt
new file mode 100644
index 000000000..ff4ec6995
--- /dev/null
+++ b/releasenotes/releasenote_1.8.1.1.txt
@@ -0,0 +1,287 @@
+Changes in 1.8.1.1
+------------------
+- Update the following packages:
+ xserver git update until 27/5/2010
+ libfontenc git update until 27/5/2010
+ libXext git update until 27/5/2010
+ libXdmcp git update until 27/5/2010
+ xkeyboard-config git update until 27/5/2010
+ libX11 git update until 27/5/2010
+ pixman-0.18.2
+- Solved a memory overwrite problem
+- Solved some crashes when closing down
+- Multiwindow: solved potential problem calling XSetInputFocus when the window is not
+ realized yet
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.8.1.txt b/releasenotes/releasenote_1.8.1.txt
new file mode 100644
index 000000000..9694c6fb6
--- /dev/null
+++ b/releasenotes/releasenote_1.8.1.txt
@@ -0,0 +1,272 @@
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.8.99.901.txt b/releasenotes/releasenote_1.8.99.901.txt
new file mode 100644
index 000000000..7d7dc817b
--- /dev/null
+++ b/releasenotes/releasenote_1.8.99.901.txt
@@ -0,0 +1,283 @@
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.8.99.904.txt b/releasenotes/releasenote_1.8.99.904.txt
new file mode 100644
index 000000000..e22ca98e4
--- /dev/null
+++ b/releasenotes/releasenote_1.8.99.904.txt
@@ -0,0 +1,296 @@
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.8.99.906.txt b/releasenotes/releasenote_1.8.99.906.txt
new file mode 100644
index 000000000..45c3383ea
--- /dev/null
+++ b/releasenotes/releasenote_1.8.99.906.txt
@@ -0,0 +1,323 @@
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.9.0.0.txt b/releasenotes/releasenote_1.9.0.0.txt
new file mode 100644
index 000000000..171c7c4cc
--- /dev/null
+++ b/releasenotes/releasenote_1.9.0.0.txt
@@ -0,0 +1,336 @@
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.9.0.1.txt b/releasenotes/releasenote_1.9.0.1.txt
new file mode 100644
index 000000000..e995f02f8
--- /dev/null
+++ b/releasenotes/releasenote_1.9.0.1.txt
@@ -0,0 +1,345 @@
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.9.0.2.txt b/releasenotes/releasenote_1.9.0.2.txt
new file mode 100644
index 000000000..fb79110af
--- /dev/null
+++ b/releasenotes/releasenote_1.9.0.2.txt
@@ -0,0 +1,357 @@
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.9.0.902.txt b/releasenotes/releasenote_1.9.0.902.txt
new file mode 100644
index 000000000..3e35e38fb
--- /dev/null
+++ b/releasenotes/releasenote_1.9.0.902.txt
@@ -0,0 +1,380 @@
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.9.2.0.txt b/releasenotes/releasenote_1.9.2.0.txt
new file mode 100644
index 000000000..b2fb06791
--- /dev/null
+++ b/releasenotes/releasenote_1.9.2.0.txt
@@ -0,0 +1,394 @@
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.9.3.0.txt b/releasenotes/releasenote_1.9.3.0.txt
new file mode 100644
index 000000000..a0adbd93f
--- /dev/null
+++ b/releasenotes/releasenote_1.9.3.0.txt
@@ -0,0 +1,426 @@
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.9.3.1.txt b/releasenotes/releasenote_1.9.3.1.txt
new file mode 100644
index 000000000..2d74bbb1e
--- /dev/null
+++ b/releasenotes/releasenote_1.9.3.1.txt
@@ -0,0 +1,472 @@
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.9.4.0.txt b/releasenotes/releasenote_1.9.4.0.txt
new file mode 100644
index 000000000..1bcf2ba68
--- /dev/null
+++ b/releasenotes/releasenote_1.9.4.0.txt
@@ -0,0 +1,486 @@
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/releasenotes/releasenote_1.9.4.1.txt b/releasenotes/releasenote_1.9.4.1.txt
new file mode 100644
index 000000000..d5d291b8a
--- /dev/null
+++ b/releasenotes/releasenote_1.9.4.1.txt
@@ -0,0 +1,502 @@
+Changes in 1.9.4.1
+------------------
+- Update the following packages:
+ xkeyboard-config git update until 16/2/2011
+ pixman git update until 16/2/2011
+ xkbcomp git update until 16/2/2011
+ mesa git update until 16/2/2011
+- Solved problem of wrongly generated error message in vcxsrv_dbg
+- Solved problem of a window being created with an Y coordinate of 0x8000000.
+- xdmcp: Solved display problem when multiple monitor setup changes
+- When XDMCP -from is specified, only register the requested address
+- Only call XSupportsLocale in one place. Switch to a known locale when it fails
+- Type cast width to short to avoid type cast exception in debug version when width is negative.
+- multiwindow; Solved possible crash because the pixmap buffer was not
+ correct anymore after moving a window
+
+Changes in 1.9.4.0
+------------------
+- Update the following packages:
+ xserver git update until 10/2/2011
+ libXext
+ libXau
+ libX11
+ pixman
+ mesa
+ libfontenc
+ libXinerama
+- xdmcp: add host connected to in the title of the main window
+- Solved a crash in multiwindow mode due to a stack overflow (possible endless recursion)
+
+Changes in 1.9.3.1
+------------------
+- Update the following packages:
+ xserver git update until 2/2/2011
+ pixman git update until 2/2/2011
+ libX11 git update until 2/2/2011
+ xkeyboard-config git update until 2/2/2011
+ libxcb git update until 2/2/2011
+ mesa git update until 2/2/2011
+ xkbcomp git update until 2/2/2011
+ libfontenc git update until 2/2/2011
+ libXau git update until 2/2/2011
+ libXinerama git update until 2/2/2011
+ libXdmcp git update until 2/2/2011
+ plink: updated to putty revision 9080
+ freetype 2.4.4
+ openssl-1.0.0c
+ cvs update pthreads
+- Added following packages
+ xbitmaps-1.1.1
+ libXft-2.2.0
+ fontconfig-2.8.0
+ libXrender-0.9.6
+ windowswmproto-1.0.4
+- Prevent crash with remote font servers
+- Use winUpdateFBPointer() in winshaddd.c rather than duplicating it inline
+- VS2008 is not actively supported anymore
+- Search for bitmaps in the current directory in stead of the HOME directory on windows
+- Search for XtErrorDB in current directory
+- added XtErrorDB file
+- Added xclock application files
+- Do not include dllmain for static library
+- Solved possible crash due to not initialised pointer
+- Use other default bitmap dir
+- Solved problem of app icon not being loaded
+- Enabled XRENDER in xclock
+- Use .Xdefaults file in current directory
+- Also install xclock and xclock-color
+- solved problem of -resize not working when window was maximised
+- Xlaunch: solved problem of Wgl setting not being saved in configuration file
+- Enabled ROOTLESS option in dix
+- Solved problem of using an unitialised variable.
+- release build: main should also pass the penv argument
+- Enabled global optimisation in release build: linker is a lot slower but it should give better performance
+- Added host selection menu in case -broadcast is given on the command line
+
+Changes in 1.9.3.0
+------------------
+- Update the following packages:
+ xserver git update until 9/1/2011
+ pixman git update until 9/1/2011
+ libX11 git update until 9/1/2011
+ libXext git update until 9/1/2011
+ xkeyboard-config git update until 9/1/2011
+ libxcb git update until 9/1/2011
+ libfontenc update until 9/1/2011
+ xextproto git update until 9/1/2011
+ libXdmcp git update until 9/1/2011
+ randrproto git update until 9/1/2011
+ mesa git update until 9/1/2011
+ bigreqsproto-1.1.1
+ compositeproto-0.4.2
+ damageproto-1.2.1
+ fixesproto-4.1.2
+ fontsproto-2.1.1
+ inputproto-2.0.1
+ randrproto-1.3.2
+ recordproto-1.14.1
+ scrnsaverproto-1.2.1
+ xcmiscproto-1.2.1
+ xproto-7.0.20
+ xtrans 1.2.6
+ xcalc-1.0.4.1
+
+- updated to 9025 of putty
+- Added dxtn.dll (compression functions used in mesa)
+- mesa: solved opengl problem whan opengl is enabled in java
+
+Changes in 1.9.2.0
+------------------
+- Update the following packages:
+ xserver git update until 4/11/2010
+ libxcb git update until 4/11/2010
+ libfontenc git update until 4/11/2010
+ pixman git update until 4/11/2010
+ xcb-proto git update until 4/11/2010
+ libX11 git update until 4/11/2010
+ libXdmcp git update until 4/11/2010
+ xkbcomp git update until 4/11/2010
+- Fixed regression in libxcb introduced in 1.9.0.0
+- Give clipboard window a name
+
+Changes in 1.9.0.902
+--------------------
+- Update the following packages:
+ xserver git update until 18/10/2010
+ xkeyboard-config git update until 18/10/2010
+ pixman git update until 18/10/2010
+ libX11 git update until 18/10/2010
+ libXau git update until 18/10/2010
+ libXinerama git update until 18/10/2010
+ glproto-1.4.12
+ kbproto-1.0.5
+ renderproto-0.11.1
+ xclock-1.0.5
+ xextproto-7.1.2
+ xproto-7.0.18
+ xwininfo-1.1.0
+ font-mutt-misc-1.0.2
+ font-sun-misc-1.0.2
+- Cleaned ddraw code and solved problem of screen disappearing when monitor setup changes
+- Solved problem when having multiple netword cards
+- multiwindow: only make the window visible when it is not inputonly
+- Update gl.spec
+
+Changes in 1.9.0.2
+------------------
+- Update the following packages:
+ xserver git update until 21/9/2010
+ pixman git update until 21/9/2010
+ libX11 git update until 21/9/2010
+- Solved a number of problems with native opengl mode (-wgl)
+- Native opengl: updated to the latest opengl spec files
+- glx: synchronised with version of mesa currently used
+- Implemented smart schedule timer
+- Solved possible lockup when closing down
+
+Changes in 1.9.0.1
+------------------
+- Update the following packages:
+ xserver git update until 11/9/2010
+ pixman git update until 11/9/2010
+ libX11 git update until 11/9/2010
+- Solved regression swrast_dri.dll not working anymore
+- xlaunch: Make sure xdmcp is never selected in multiwindow mode
+
+Changes in 1.9.0.0
+------------------
+- Update the following packages:
+ xserver git update until 4/9/2010
+ xkeyboard-config
+ libX11
+ pixman
+ libxcb
+ xkeyboard-config
+- synchronised glx with mesa version
+- make sure process exits when clipboard thread or multiwindow thread closes
+- added support for some multimedia keys
+
+Changes in 1.8.99.906
+---------------------
+- Update the following packages:
+ mesa-7.8.2
+ freetype 2.4.2
+ libX11 git update until 20/8/2010
+ libXdmcp git update until 20/8/2010
+ libXext git update until 20/8/2010
+ libXau
+ pixman
+ libxcb git update until 20/8/2010
+ xserver git update until 20/8/2010
+ xkeyboard-config git update until 20/8/2010
+ libXinerama git update until 20/8/2010
+- Fix a GDI bitmap resource leak of window icons
+- Internal WM workaround for Java AWT bug
+- Add a keycode mapping for VK_OEM_8 which can be issued by Canadian Multilingual
+ Standard layout
+- Update mapping for Canadian keyboard layouts
+ 0x00000c0c "Canadian French (legacy)" => layout ca variant fr-legacy
+ 0x00001009 "Canadian French" => layout ca variant fr
+ 0x00011009 "Canadian Multilingual Standard" => layout ca variant multix
+- Cleanup in rootless code
+- xkbcomp: avoid needless recompilation when switching between debug and release
+- fixed wrong library name for freetype library
+
+
+Changes in 1.8.99.904
+---------------------
+- Update the following packages:
+ libXfont-1.4.2
+ libX11 git update until 11/7/2010
+ libXext git update until 11/7/2010
+ libxcb git update until 11/7/2010
+ xserver git update until 11/7/2010
+ xkeyboard-config git update until 11/7/2010
+ libXinerama git update until 11/7/2010
+- Solved possible dead-lock when exiting vcxsrv (when x-selection active)
+- Solved possible crash in _XReadEvents function
+
+Changes in 1.8.99.901
+---------------------
+- Update the following packages:
+ openssl-1.0.0a
+ mesa-7.8.1
+ xserver git update until 17/6/2010
+ libxcb git update until 17/6/2010
+ libXext git update until 17/6/2010
+ libX11 git update until 17/6/2010
+ xkeyboard-config git update until 17/6/2010
+
+Changes in 1.8.1
+----------------
+- Update the following packages:
+ xserver git update until 12/5/2010 (1.8.1)
+ Updated to xproto-7.0.17
+ xkeyboard-config git update until 17/5/2010
+ libxcb git update until 17/5/2010
+ Made it possible to compile with VS2010
+
+Changes in 1.8.0
+----------------
+- Update the following packages:
+ pixman-0.18.0
+ xorg-server-1.8.0
+ xkeyboard-config git update till 1/4/2010
+ mesa 7.8
+ freetype-2.3.12
+ openssl 1.0.0
+
+Changes in 1.7.99.902
+---------------------
+- Update the following packages:
+ pixman-0.17.10
+ xserver git update till 16/3/2010
+ xkeyboard-config git update till 16/3/2010
+ mesa 7.7
+ libXt-1.0.8
+- Added terminus-font-4.30
+- libwinmain: Make sure that control C only kills the process when a new console is created.
+- Solved problem when path environment variable was larger then 1024 bytes
+- Solved possible crash of accessing a null pointer
+- Enabled XCSECURITY
+- Solved 'ceil' undefined warning
+- Solved '_XSERVTransWSAStartup' undefined warning
+- Solved problem of some windows not being sizeable in multiwindow mode
+
+Changes in 1.7.99.901
+---------------------
+- Update the following packages:
+ pixman-0.17.6
+ xorg-server-1.7.99.901
+ xserver git update till 15/2/2010
+- Solved .xlaunch file extension registry problem in vista
+- Added opengl option in xlaunch
+- Added showin of log file in menu
+- Removed NATIVEGDI compilation (is currently not working)
+- Solved problem of certain windows not being sizeable in multiwindow mode
+- Also handle MappingNotify event in clipboard thread
+
+
+Changes in 1.7.99.6
+-------------------
+- Update the following packages:
+ libX11-1.3.3
+ pixman-0.17.4
+ glproto-1.4.11
+ xserver git update till 25/1/2010
+- Added patches for bug http://bugs.freedesktop.org/show_bug.cgi?id=20500
+ 0001-dix-EventToCore-needs-to-copy-the-root-window-too.patch
+ 0001-Re-enable-the-RECORD-extension.patch
+- Solved a possible crash in closing down the screen due to use on an uninitialised pointer.
+- Solved problem in drawing of wide lines. Occured when plotting in octave.
+
+
+Changes in 1.7.99.5
+-------------------
+- Update the following packages:
+ freetype-2.3.11
+ mesa_7_6_1_rc1
+ xserver git update till 5/1/2010
+- Fixed problem of clipboard client being shutdown when connecting through xdmcp.
+- Always use screen 0 to start windows clients.
+- Multiwindow: solved problem of window not having the correct size.
+
+
+Changes in 1.7.99.4
+-------------------
+- Update the following packages:
+ libxcb-1.5
+ xcb-proto-1.6
+ xserver git update till 17/12/2009
+- Use swrast_dri_dbg.dll when running vcxsrv_dbg.exe
+- Added native opengl with the -wgl option
+
+
+Changes in 1.7.99.3
+-------------------
+- Update the following packages:
+ pixman-0.17.2
+
+- Switch to the git master branch for xserver
+- Added cygwin-aiglx branch of git://anongit.freedesktop.org/~jturney/xserver
+ to have native opengl rendering. Only working with -multiwindow and
+ when export LIBGL_ALWAYS_INDIRECT
+- vcxsrv.exe: When the first parameter is -console, the output is also written
+ to the console.
+- xinerama: solved endless loop problem when moving the cursor from one screen to there
+ other.
+- vcxsrv.exe: Set the current directory always to the directory where vcxsrv.exe is
+ installed, so the fonts are always found.
+
+Changes in 1.7.99.2
+-------------------
+- Added the following packages:
+ xwininfo-1.0.5
+ xcalc-1.0.2
+ xclock-1.0.4
+ libXmu-1.0.5
+ libXaw-1.0.7
+ libXpm-3.5.8
+ libXext-1.1.1
+ libXt-1.0.7
+- Solved some building problems in the makefiles when building from cmd.exe
+- Do not open command window when running release build
+- Solved incorrect behaviour of writev in case the first send succeeded and the second returned with an error.
+- Solved crash in dix\colormap.c because wrong map was adjusted when the number of visuals was reallocated.
+
+Changes in 1.7.99.1
+-------------------
+- Updated to the following packages
+ libX11-1.3.2
+ xorg-server-1.7.99.1
+ xtrans-1.2.5
+ font-util-1.1.1
+- Now complete locale directory is build and packaged.
+- solved possible problem in xcb: Make sure the winsock library
+ and pthread library are initialised.
+- Solved problem of local fonts not being registered. This caused certain
+ application not to start (like xcalc)
+
+Changes in 1.7.0.1
+------------------
+- Updated to the following packages
+ encodings-1.0.3
+ font-adobe-75dpi-1.0.1
+ font-adobe-100dpi-1.0.1
+ font-adobe-utopia-75dpi-1.0.2
+ font-adobe-utopia-100dpi-1.0.2
+ font-adobe-utopia-type1-1.0.2
+ font-alias-1.0.2
+ font-arabic-misc-1.0.1
+ font-bh-75dpi-1.0.1
+ font-bh-100dpi-1.0.1
+ font-bh-lucidatypewriter-75dpi-1.0.1
+ font-bh-lucidatypewriter-100dpi-1.0.1
+ font-bh-ttf-1.0.1
+ font-bh-type1-1.0.1
+ font-bitstream-75dpi-1.0.1
+ font-bitstream-100dpi-1.0.1
+ font-bitstream-speedo-1.0.1
+ font-bitstream-type1-1.0.1
+ font-cronyx-cyrillic-1.0.1
+ font-cursor-misc-1.0.1
+ font-daewoo-misc-1.0.1
+ font-dec-misc-1.0.1
+ font-ibm-type1-1.0.1
+ font-isas-misc-1.0.1
+ font-jis-misc-1.0.1
+ font-micro-misc-1.0.1
+ font-misc-cyrillic-1.0.1
+ font-misc-ethiopic-1.0.1
+ font-misc-meltho-1.0.1
+ font-misc-misc-1.1.0
+ font-mutt-misc-1.0.1
+ font-schumacher-misc-1.1.0
+ font-screen-cyrillic-1.0.2
+ font-sony-misc-1.0.1
+ font-sun-misc-1.0.1
+ font-util-1.1.0
+ font-winitzki-cyrillic-1.0.1
+ font-xfree86-type1-1.0.2
+ libXfont-1.4.1
+ mkfontscale-1.0.7
+- Added mesa 7.6. Opengl is working now.
+- Bug fix in miClipPictureSrc function.
+
+Changes in 1.7.0
+----------------
+- Updated to the following packages:
+ fixesproto-4.1.1
+ randrproto-1.3.1
+ libxkbfile-1.0.6
+ xkeyboard-config-1.7
+ pixman-0.16.2
+ libX11-1.3
+ libXinerama-1.1
+ xkbcomp-1.1.1
+ recordproto-1.14
+ xineramaproto-1.2
+ inputproto-2.0
+ compositeproto-0.4.1
+ xorg-server-1.7.0
+- Removed most tracing in release version. Use vcxsrv_dbg when you want a log of tracing.
+- Also install xerrordb file.
+- Make sure the temporary file gets deleted after keyboard compilation.
+- Take for the log file the same verbosity as for the screen.
+- Change trace buffer from static to local to avoid problems in multithreaded tracing.
+- Print some more information in X error handler.
+- Solved run-time downcast errors in debug version.
+- Solved error: XSetWindowBorderWidth can only be called if the window class is different from InputOnly
+- Make it possible to overrule XSERVER_DTRACE in the makefiles
+- Call XSelectInput when a window is mapped and not when it is created.
+ (There seems to be windows which created and destroyed soon without being
+ mapped to real windows. This was causing some errors.)
+
+
+Changes in 1.1.2
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.902
+ xproto-7.0.16
+ libXdmcp-1.0.3
+ bdftopcf-1.0.2
+- Solved endless looping when clipboardthread is restarted due to winioerrhandler.
+ Caused an unexpected exit of the server when the -clipboard option was specified.
+- Solved possible crash upon server restart because some global pointers
+ were not initialised back to 0
+
+Changes in 1.1.1
+----------------
+- Updated to the following packages:
+ xorg-server-1.6.99.901
+ xkeyboard-config-1.6.99
+- Enabled support for xinerama
+- Rewritten part of the clipboard code (sometimes clipboard was
+ not working as expected)
+ One problem remains (clipboard thread exiting at startup.). This
+ one is hard to solve since no known recipy to reproduce.
+- Now also install the debug version of the executable (vcxsrv_dbg).
+ This version has some more logging and error checking.
+- Solved stack corruption in QueryMonitor. Now use multimon.h
+- Bug solved in xcb_conn.c: use closesocket instead of close.
+- Also display the number of active clients in the tray icon tooltip text.
+
+Changes in 1.1.0
+----------------
+- Updated to the following packages:
+ libX11-1.2.99.901.tar.gz
+ xtrans-1.2.4.tar.gz
+ fontsproto-2.1.0.tar.gz
+ damageproto-1.2.0.tar.gz
+ xcmiscproto-1.2.0.tar.gz
+ bigreqsproto-1.1.0.tar.gz
+ scrnsaverproto-1.2.0.tar.gz
+ resourceproto-1.1.0.tar.gz
+ xextproto-7.1.1.tar.gz
+ recordproto-1.13.99.1.tar.gz
+ inputproto-1.9.99.902.tar.gz
+ font-util-1.0.2.tar.gz
+ xorg-server-1.6.99.900.tar.gz
+- Make sure clipboard thread is cleaned up correctly on error.
+ Solved clipboard thread exits causing the clipboard not to be working.
+- Solved some errors in the fonts directory due to makefile problems
+
+Changes in 1.0.2
+----------------
+
+- installer: Do not show details by default
+- xlaunch: show message box when display number is nto filled in.
+- BUG: Solved right mouse button not working in multi window mode.
+- Added plink tool in installation.
+- Xlaunch is now a windows application in stead of a console application
+
+Changes in 1.0.1
+----------------
+
+- installer: make sure the latest version of the installed MSVC run-time is used.
+- BUG: Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
+- locale: swith to the version of libX11/nls/C/makefile
+- clipboard: solved paste problem from X to windows (in Vista)
+- xkbcomp/listing.c: Solved uninitialised variable error in WIN32
+- xkbdata.src/symbols/level3: Removed warning when compiling for be keyboard.
diff --git a/setvcenv.sh b/setvcenv.sh
new file mode 100644
index 000000000..a016d89c5
--- /dev/null
+++ b/setvcenv.sh
@@ -0,0 +1,9 @@
+export MHMAKECONF=`cygpath -da .`
+
+export VCINSTALLDIR="c:\Program Files\Microsoft Visual Studio 10.0\VC\\"
+export VS100COMNTOOLS="C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\\"
+export VSINSTALLDIR="C:\Program Files\Microsoft Visual Studio 10.0\\"
+export WindowsSdkDir="C:\Program Files\Microsoft SDKs\Windows\v7.0A\\"
+export LIB="c:\Program Files\Microsoft Visual Studio 10.0\VC\lib;c:\Program Files\Microsoft SDKs\Windows\v7.0A\lib"
+export INCLUDE="c:\Program Files\Microsoft Visual Studio 10.0\VC\include;c:\Program Files\Microsoft SDKs\Windows\v7.0A\Include"
+export PATH="/vcxsrv:/cygdrive/c/Program Files/Microsoft Visual Studio 10.0/VC/bin:/cygdrive/c/Program Files/Microsoft Visual Studio 10.0/Common7/IDE:/cygdrive/c/Program Files/Microsoft SDKs/Windows/v7.0A/bin:$PATH"
diff --git a/tools/bison++/Makefile b/tools/bison++/Makefile
index b7a87d09f..7538b76a1 100644
--- a/tools/bison++/Makefile
+++ b/tools/bison++/Makefile
@@ -1,627 +1,33 @@
-# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+TTYAPP = bison++
+
+CSRCS = closure.cc \
+ derives.cc \
+ getargs.cc \
+ getopt1.cc \
+ lalr.cc \
+ lr0.cc \
+ nullable.cc \
+ print.cc \
+ reduce.cc \
+ version.cc \
+ warshall.cc \
+ allocate.cc \
+ conflict.cc \
+ files.cc \
+ getopt.cc \
+ gram.cc \
+ lex.cc \
+ main.cc \
+ output.cc \
+ reader.cc \
+ symtab.cc\
+ old.c
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = /bin/sh
-
-srcdir = .
-top_srcdir = .
-
-prefix = /usr
-exec_prefix = ${prefix}
-
-bindir = ${exec_prefix}/bin
-sbindir = ${exec_prefix}/sbin
-libexecdir = ${exec_prefix}/libexec
-datadir = ${prefix}/share
-sysconfdir = ${prefix}/etc
-sharedstatedir = ${prefix}/com
-localstatedir = ${prefix}/var
-libdir = ${exec_prefix}/lib
-infodir = ${prefix}/share/info
-mandir = ${prefix}/share/man
-includedir = ${prefix}/include
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/bison++
-pkglibdir = $(libdir)/bison++
-pkgincludedir = $(includedir)/bison++
-
-top_builddir = .
-
-ACLOCAL = aclocal
-AUTOCONF = autoconf
-AUTOMAKE = automake
-AUTOHEADER = autoheader
-
-INSTALL = /usr/bin/install -c
-INSTALL_PROGRAM = ${INSTALL} $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_SCRIPT = ${INSTALL}
-transform = s,x,x,
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-AWK = mawk
-CC = gcc
-LN_S = ln -s
-MAKEINFO = makeinfo
-PACKAGE = bison++
-VERSION = 2.21.5
-
-bin_PROGRAMS = bison++
-AUTOMAKE_OPTIONS = foreign
-
-bison___SOURCES = closure.cc derives.cc getargs.cc getopt1.cc lalr.cc lr0.cc nullable.cc print.cc reduce.cc version.cc warshall.cc allocate.cc conflict.cc files.cc getopt.cc gram.cc lex.cc main.cc output.cc reader.cc symtab.cc old.c
-
-
-info_TEXINFOS = bison.texinfo
-man_MANS = bison++.1 bison.1 bison++.yacc.1
-pkgdata_DATA = bison.cc bison.hairy bison.h Example
-CXX = g++
PFILE = bison.cc
PFILE1 = bison.hairy
HFILE = bison.h
-INCLUDES = -DXPFILE=\"$(datadir)/bison++/$(PFILE)\" -DXHFILE=\"$(datadir)/bison++/$(HFILE)\" -DXPFILE1=\"$(datadir)/bison++/$(PFILE1)\"
-
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_CLEAN_FILES =
-PROGRAMS = $(bin_PROGRAMS)
-
-
-DEFS = -DPACKAGE_NAME=\"FULL-PACKAGE-NAME\" -DPACKAGE_TARNAME=\"full-package-name\" -DPACKAGE_VERSION=\"VERSION\" -DPACKAGE_STRING=\"FULL-PACKAGE-NAME\ VERSION\" -DPACKAGE_BUGREPORT=\"BUG-REPORT-ADDRESS\" -DPACKAGE=\"bison++\" -DVERSION=\"2.21.5\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_ALLOCA_H=1 -DHAVE_MALLOC_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STDDEF_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_STRINGS_H=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_STDLIB_H=1 -DHAVE_MALLOC=1 -I. -I$(srcdir)
-CPPFLAGS =
-LDFLAGS =
-LIBS =
-bison___OBJECTS = closure.o derives.o getargs.o getopt1.o lalr.o lr0.o \
-nullable.o print.o reduce.o version.o warshall.o allocate.o conflict.o \
-files.o getopt.o gram.o lex.o main.o output.o reader.o symtab.o old.o
-bison___LDADD = $(LDADD)
-bison___DEPENDENCIES =
-bison___LDFLAGS =
-CXXFLAGS = -g -O2
-CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
-CFLAGS = -g -O2
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-TEXI2DVI = texi2dvi
-INFO_DEPS = bison.info
-DVIS = bison.dvi
-TEXINFOS = bison.texinfo
-man1dir = $(mandir)/man1
-MANS = $(man_MANS)
-
-NROFF = nroff
-DATA = $(pkgdata_DATA)
-
-DIST_COMMON = COPYING ChangeLog INSTALL Makefile.am Makefile.in \
-aclocal.m4 configure configure.in install-sh mdate-sh missing \
-mkinstalldirs stamp-vti texinfo.tex version.texi
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-DEP_FILES = .deps/allocate.P .deps/closure.P .deps/conflict.P \
-.deps/derives.P .deps/files.P .deps/getargs.P .deps/getopt.P \
-.deps/getopt1.P .deps/gram.P .deps/lalr.P .deps/lex.P .deps/lr0.P \
-.deps/main.P .deps/nullable.P .deps/old.P .deps/output.P .deps/print.P \
-.deps/reader.P .deps/reduce.P .deps/symtab.P .deps/version.P \
-.deps/warshall.P
-SOURCES = $(bison___SOURCES)
-OBJECTS = $(bison___OBJECTS)
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .cc .dvi .info .o .ps .s .texi .texinfo .txi
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
- cd $(top_builddir) \
- && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-$(ACLOCAL_M4): configure.in
- cd $(srcdir) && $(ACLOCAL)
-
-config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
- cd $(srcdir) && $(AUTOCONF)
-
-mostlyclean-binPROGRAMS:
-
-clean-binPROGRAMS:
- -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-
-distclean-binPROGRAMS:
-
-maintainer-clean-binPROGRAMS:
-
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(bindir)
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
- if test -f $$p; then \
- echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
- $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
- else :; fi; \
- done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- list='$(bin_PROGRAMS)'; for p in $$list; do \
- rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
- done
-
-.s.o:
- $(COMPILE) -c $<
-
-.S.o:
- $(COMPILE) -c $<
-
-mostlyclean-compile:
- -rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
- -rm -f *.tab.c
-
-maintainer-clean-compile:
-
-bison++: $(bison___OBJECTS) $(bison___DEPENDENCIES)
- @rm -f bison++
- $(CXXLINK) $(bison___LDFLAGS) $(bison___OBJECTS) $(bison___LDADD) $(LIBS)
-.cc.o:
- $(CXXCOMPILE) -c $<
-
-$(srcdir)/version.texi: stamp-vti
- @:
-
-$(srcdir)/stamp-vti: bison.texinfo $(top_srcdir)/configure.in
- @echo "@set UPDATED `$(SHELL) $(srcdir)/mdate-sh $(srcdir)/bison.texinfo`" > vti.tmp
- @echo "@set EDITION $(VERSION)" >> vti.tmp
- @echo "@set VERSION $(VERSION)" >> vti.tmp
- @cmp -s vti.tmp $(srcdir)/version.texi \
- || (echo "Updating $(srcdir)/version.texi"; \
- cp vti.tmp $(srcdir)/version.texi)
- -@rm -f vti.tmp
- @cp $(srcdir)/version.texi $@
-
-mostlyclean-vti:
- -rm -f vti.tmp
-
-clean-vti:
-
-distclean-vti:
-
-maintainer-clean-vti:
- -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
-
-bison.info: bison.texinfo version.texi
-bison.dvi: bison.texinfo version.texi
-
-
-DVIPS = dvips
-
-.texi.info:
- @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
- cd $(srcdir) \
- && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.texi.dvi:
- TEXINPUTS=.:$$TEXINPUTS \
- MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.texi:
- @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
- cd $(srcdir) \
- && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.texinfo.info:
- @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
- cd $(srcdir) \
- && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.texinfo:
- @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
- cd $(srcdir) \
- && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.texinfo.dvi:
- TEXINPUTS=.:$$TEXINPUTS \
- MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.txi.info:
- @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
- cd $(srcdir) \
- && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.txi.dvi:
- TEXINPUTS=.:$$TEXINPUTS \
- MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.txi:
- @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
- cd $(srcdir) \
- && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-.dvi.ps:
- $(DVIPS) $< -o $@
-
-install-info-am: $(INFO_DEPS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(infodir)
- @list='$(INFO_DEPS)'; \
- for file in $$list; do \
- d=$(srcdir); \
- for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
- if test -f $$d/$$ifile; then \
- echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
- $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
- else : ; fi; \
- done; \
- done
- @$(POST_INSTALL)
- @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
- list='$(INFO_DEPS)'; \
- for file in $$list; do \
- echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
- install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
- done; \
- else : ; fi
-
-uninstall-info:
- $(PRE_UNINSTALL)
- @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
- ii=yes; \
- else ii=; fi; \
- list='$(INFO_DEPS)'; \
- for file in $$list; do \
- test -z "$$ii" \
- || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
- done
- @$(NORMAL_UNINSTALL)
- list='$(INFO_DEPS)'; \
- for file in $$list; do \
- (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
- done
-
-dist-info: $(INFO_DEPS)
- list='$(INFO_DEPS)'; \
- for base in $$list; do \
- d=$(srcdir); \
- for file in `cd $$d && eval echo $$base*`; do \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file; \
- done; \
- done
-
-mostlyclean-aminfo:
- -rm -f bison.aux bison.cp bison.cps bison.dvi bison.fn bison.fns \
- bison.ky bison.kys bison.ps bison.log bison.pg bison.toc \
- bison.tp bison.tps bison.vr bison.vrs bison.op bison.tr \
- bison.cv bison.cn
-
-clean-aminfo:
-
-distclean-aminfo:
-
-maintainer-clean-aminfo:
- cd $(srcdir) && for i in $(INFO_DEPS); do \
- rm -f $$i; \
- if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
- rm -f $$i-[0-9]*; \
- fi; \
- done
-
-install-man1:
- $(mkinstalldirs) $(DESTDIR)$(man1dir)
- @list='$(man1_MANS)'; \
- l2='$(man_MANS)'; for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
- else file=$$i; fi; \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
- $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
- done
-
-uninstall-man1:
- @list='$(man1_MANS)'; \
- l2='$(man_MANS)'; for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
- rm -f $(DESTDIR)$(man1dir)/$$inst; \
- done
-install-man: $(MANS)
- @$(NORMAL_INSTALL)
- $(MAKE) $(AM_MAKEFLAGS) install-man1
-uninstall-man:
- @$(NORMAL_UNINSTALL)
- $(MAKE) $(AM_MAKEFLAGS) uninstall-man1
-
-install-pkgdataDATA: $(pkgdata_DATA)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
- @list='$(pkgdata_DATA)'; for p in $$list; do \
- if test -f $(srcdir)/$$p; then \
- echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p"; \
- $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgdatadir)/$$p; \
- else if test -f $$p; then \
- echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p"; \
- $(INSTALL_DATA) $$p $(DESTDIR)$(pkgdatadir)/$$p; \
- fi; fi; \
- done
-
-uninstall-pkgdataDATA:
- @$(NORMAL_UNINSTALL)
- list='$(pkgdata_DATA)'; for p in $$list; do \
- rm -f $(DESTDIR)$(pkgdatadir)/$$p; \
- done
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
- || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP))
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
- -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- -rm -rf $(distdir)
- GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
- mkdir $(distdir)/=build
- mkdir $(distdir)/=inst
- dc_install_base=`cd $(distdir)/=inst && pwd`; \
- cd $(distdir)/=build \
- && ../configure --srcdir=.. --prefix=$$dc_install_base \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) dist
- -rm -rf $(distdir)
- @banner="$(distdir).tar.gz is ready for distribution"; \
- dashes=`echo "$$banner" | sed s/./=/g`; \
- echo "$$dashes"; \
- echo "$$banner"; \
- echo "$$dashes"
-dist: distdir
- -chmod -R a+r $(distdir)
- GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
- -rm -rf $(distdir)
-dist-all: distdir
- -chmod -R a+r $(distdir)
- GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
- -rm -rf $(distdir)
-distdir: $(DISTFILES)
- -rm -rf $(distdir)
- mkdir $(distdir)
- -chmod 777 $(distdir)
- here=`cd $(top_builddir) && pwd`; \
- top_distdir=`cd $(distdir) && pwd`; \
- distdir=`cd $(distdir) && pwd`; \
- cd $(top_srcdir) \
- && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --foreign Makefile
- @for file in $(DISTFILES); do \
- d=$(srcdir); \
- if test -d $$d/$$file; then \
- cp -pr $$d/$$file $(distdir)/$$file; \
- else \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
- fi; \
- done
- $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
-
-DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-
--include $(DEP_FILES)
-
-mostlyclean-depend:
-
-clean-depend:
-
-distclean-depend:
- -rm -rf .deps
-
-maintainer-clean-depend:
-
-%.o: %.c
- @echo '$(COMPILE) -c $<'; \
- $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
- @-cp .deps/$(*F).pp .deps/$(*F).P; \
- tr ' ' '\012' < .deps/$(*F).pp \
- | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
- >> .deps/$(*F).P; \
- rm .deps/$(*F).pp
-
-%.lo: %.c
- @echo '$(LTCOMPILE) -c $<'; \
- $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
- @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
- < .deps/$(*F).pp > .deps/$(*F).P; \
- tr ' ' '\012' < .deps/$(*F).pp \
- | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
- >> .deps/$(*F).P; \
- rm -f .deps/$(*F).pp
-
-%.o: %.cc
- @echo '$(CXXCOMPILE) -c $<'; \
- $(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
- @-cp .deps/$(*F).pp .deps/$(*F).P; \
- tr ' ' '\012' < .deps/$(*F).pp \
- | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
- >> .deps/$(*F).P; \
- rm .deps/$(*F).pp
-
-%.lo: %.cc
- @echo '$(LTCXXCOMPILE) -c $<'; \
- $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
- @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
- < .deps/$(*F).pp > .deps/$(*F).P; \
- tr ' ' '\012' < .deps/$(*F).pp \
- | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
- >> .deps/$(*F).P; \
- rm -f .deps/$(*F).pp
-info-am: $(INFO_DEPS)
-info: info-am
-dvi-am: $(DVIS)
-dvi: dvi-am
-check-am: all-am
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am: install-binPROGRAMS
- @$(NORMAL_INSTALL)
- $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
-install-exec: install-exec-am
-
-install-data-am: install-info-am install-man install-pkgdataDATA
-install-data: install-data-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am: uninstall-binPROGRAMS uninstall-info uninstall-man \
- uninstall-pkgdataDATA
-uninstall: uninstall-am
-all-am: Makefile $(INFO_DEPS) $(PROGRAMS) $(MANS) $(DATA)
-all-redirect: all-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
- $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(infodir) \
- $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(pkgdatadir)
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \
- mostlyclean-vti mostlyclean-aminfo mostlyclean-tags \
- mostlyclean-depend mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am: clean-binPROGRAMS clean-compile clean-vti clean-aminfo \
- clean-tags clean-depend clean-generic mostlyclean-am
-
-clean: clean-am
-
-distclean-am: distclean-binPROGRAMS distclean-compile distclean-vti \
- distclean-aminfo distclean-tags distclean-depend \
- distclean-generic clean-am
-
-distclean: distclean-am
- -rm -f config.status
-
-maintainer-clean-am: maintainer-clean-binPROGRAMS \
- maintainer-clean-compile maintainer-clean-vti \
- maintainer-clean-aminfo maintainer-clean-tags \
- maintainer-clean-depend maintainer-clean-generic \
- distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
- -rm -f config.status
-
-.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
-maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile mostlyclean-vti distclean-vti clean-vti \
-maintainer-clean-vti install-info-am uninstall-info mostlyclean-aminfo \
-distclean-aminfo clean-aminfo maintainer-clean-aminfo install-man1 \
-uninstall-man1 install-man uninstall-man uninstall-pkgdataDATA \
-install-pkgdataDATA tags mostlyclean-tags distclean-tags clean-tags \
-maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
-clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
-check-am installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
-
-install-exec-hook:
- cp bison $(bindir)
- cp bison++.yacc $(bindir)
+DEFINES += HAVE_STDLIB_H HAVE_STRING_H XPFILE="""$(PFILE)""" XHFILE="""$(HFILE)""" XPFILE1="""$(PFILE1)"""
-uninstall-hook:
- rm $(bindir)/bison++.yacc
- rm $(bindir)/bison
+CCFLAGS := $(subst -MD,-MT,$(CCFLAGS)) # to have static linking
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/tools/bison++/closure.cc b/tools/bison++/closure.cc
index 0a3a68446..bcaf5d836 100644
--- a/tools/bison++/closure.cc
+++ b/tools/bison++/closure.cc
@@ -54,6 +54,11 @@ Frees itemset, ruleset and internal data.
#include "new.h"
#include "gram.h"
+#ifdef DEBUG
+static void print_fderives(void);
+static void print_firsts(void);
+static void print_closure(int n);
+#endif
extern short **derives;
extern char **tags;
@@ -290,7 +295,7 @@ finalize_closure()
#ifdef DEBUG
-print_closure(int n)
+void print_closure(int n)
{
register short *isp;
@@ -301,7 +306,7 @@ print_closure(int n)
-print_firsts()
+void print_firsts(void)
{
register int i;
register int j;
@@ -323,7 +328,7 @@ print_firsts()
-print_fderives()
+void print_fderives(void)
{
register int i;
register int j;
diff --git a/tools/bison++/conflict.cc b/tools/bison++/conflict.cc
index a8989b776..8a3cd4902 100644
--- a/tools/bison++/conflict.cc
+++ b/tools/bison++/conflict.cc
@@ -46,7 +46,12 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#endif /* ndef alloca */
#else /* not msdos */
+#ifdef _MSC_VER
+#include <malloc.h>
+#define alloca _alloca
+#else
char *alloca ();
+#endif
#endif /* msdos ? */
diff --git a/tools/bison++/derives.cc b/tools/bison++/derives.cc
index f7dfaf736..17b9ec5ff 100644
--- a/tools/bison++/derives.cc
+++ b/tools/bison++/derives.cc
@@ -29,6 +29,9 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "types.h"
#include "gram.h"
+#ifdef DEBUG
+static void print_derives(void);
+#endif
short **derives;
@@ -92,7 +95,7 @@ free_derives()
#ifdef DEBUG
-print_derives()
+void print_derives(void)
{
register int i;
register short *sp;
diff --git a/tools/genruntimemanifest.py b/tools/genruntimemanifest.py
new file mode 100644
index 000000000..ba0352525
--- /dev/null
+++ b/tools/genruntimemanifest.py
@@ -0,0 +1,53 @@
+Template=r"""<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
+<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel level='asInvoker' uiAccess='false' />
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type="win32" name="Microsoft.VC90.<DEBUG>CRT" version="9.0.<VERSION>" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b" />
+ </dependentAssembly>
+ </dependency>
+</assembly>
+"""
+
+import glob,re,sys
+
+if len(sys.argv)==3 and sys.argv[2]=="1":
+ Files=glob.glob(r"c:\windows\winsxs\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.*")
+ SearchRe=re.compile(r"c:\\windows\\winsxs\\x86_Microsoft\.VC90\.DebugCRT_1fc8b3b9a1e18e3b_9\.0\.([0-9]+)\.([0-9]+)_",re.I)
+else:
+ Files=glob.glob(r"c:\windows\winsxs\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.*")
+ SearchRe=re.compile(r"c:\\windows\\winsxs\\x86_Microsoft\.VC90\.CRT_1fc8b3b9a1e18e3b_9\.0\.([0-9]+)\.([0-9]+)_",re.I)
+
+
+MajorVersion=0
+MinorVersion=0
+LatestFile=None
+#Now Select the one with the latest version
+for File in Files:
+ # Extract version
+ Search=SearchRe.search(File)
+ Major=int(Search.group(1))
+ Minor=int(Search.group(2))
+ if Major>MajorVersion:
+ MajorVersion=Major
+ MinorVersion=Minor
+ LatestFile=File
+ elif Major==MajorVersion and Minor>MinorVersion:
+ MinorVersion=Minor
+ LatestFile=File
+
+
+Template=re.sub("<VERSION>","%d.%d"%(MajorVersion,MinorVersion),Template)
+
+if len(sys.argv)==3 and sys.argv[2]=="1":
+ Template=re.sub("<DEBUG>","Debug",Template)
+else:
+ Template=re.sub("<DEBUG>","",Template)
+
+open(sys.argv[1],"w").write(Template)
diff --git a/tools/mhmake/.gitignore b/tools/mhmake/.gitignore
new file mode 100644
index 000000000..d24abb6c4
--- /dev/null
+++ b/tools/mhmake/.gitignore
@@ -0,0 +1,2 @@
+Debug64
+Release64
diff --git a/tools/mhmake/CMakeLists.txt b/tools/mhmake/CMakeLists.txt
new file mode 100644
index 000000000..887dc2601
--- /dev/null
+++ b/tools/mhmake/CMakeLists.txt
@@ -0,0 +1,52 @@
+cmake_minimum_required(VERSION 2.8)
+
+IF(CMAKE_BUILD_TYPE MATCHES "Release")
+SET(PROGRAM_NAME mhmake)
+ELSE(CMAKE_BUILD_TYPE MATCHES "Release")
+SET(PROGRAM_NAME mhmake_dbg)
+ENDIF(CMAKE_BUILD_TYPE MATCHES "Release")
+
+PROJECT(${PROGRAM_NAME})
+
+SET( CMAKE_CXX_FLAGS_DEBUG "-g -D _DEBUG")
+
+ADD_CUSTOM_COMMAND(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/mhmakelexer.cpp ${CMAKE_CURRENT_BINARY_DIR}/FlexLexer.h
+ COMMAND flex++ -S${CMAKE_CURRENT_SOURCE_DIR}/src/flex.skl -o${CMAKE_CURRENT_BINARY_DIR}/mhmakelexer.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/mhmakelexer.l
+ COMMAND mv ${CMAKE_CURRENT_BINARY_DIR}/mhmakelexer.cpp ${CMAKE_CURRENT_BINARY_DIR}/temp1234.456
+ COMMAND echo '\#include \"stdafx.h\"' > ${CMAKE_CURRENT_BINARY_DIR}/mhmakelexer.cpp
+ COMMAND cat ${CMAKE_CURRENT_BINARY_DIR}/temp1234.456 >> ${CMAKE_CURRENT_BINARY_DIR}/mhmakelexer.cpp
+ COMMAND rm ${CMAKE_CURRENT_BINARY_DIR}/temp1234.456
+ COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/src/flexlexer.h ${CMAKE_CURRENT_BINARY_DIR}/FlexLexer.h
+
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/mhmakelexer.l ${CMAKE_CURRENT_SOURCE_DIR}/src/flex.skl ${CMAKE_CURRENT_BINARY_DIR}/mhmakeparser.hpp ${CMAKE_CURRENT_SOURCE_DIR}/src/flexlexer.h
+)
+ADD_CUSTOM_COMMAND(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/mhmakeparser.cpp ${CMAKE_CURRENT_BINARY_DIR}/mhmakeparser.hpp ${CMAKE_CURRENT_BINARY_DIR}/location.hh ${CMAKE_CURRENT_BINARY_DIR}/position.hh ${CMAKE_CURRENT_BINARY_DIR}/stack.hh
+ COMMAND BISON_PKGDATADIR=${CMAKE_CURRENT_SOURCE_DIR}/src/bisondata bison -d -ra -S${CMAKE_CURRENT_SOURCE_DIR}/src/bisondata/lalr1.cc -o${CMAKE_CURRENT_BINARY_DIR}/mhmakeparser.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/mhmakeparser.y
+ COMMAND mv ${CMAKE_CURRENT_BINARY_DIR}/mhmakeparser.cpp temp1234.456
+ COMMAND echo '\#include \"stdafx.h\"' > ${CMAKE_CURRENT_BINARY_DIR}/mhmakeparser.cpp
+ COMMAND cat temp1234.456 >> ${CMAKE_CURRENT_BINARY_DIR}/mhmakeparser.cpp
+ COMMAND rm temp1234.456
+
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/mhmakeparser.y ${CMAKE_CURRENT_SOURCE_DIR}/src/bisondata/lalr1.cc
+)
+INCLUDE_DIRECTORIES(src ${CMAKE_CURRENT_BINARY_DIR})
+LINK_LIBRARIES(/usr/lib/libpopt.a)
+
+ADD_EXECUTABLE(${PROGRAM_NAME}
+ ${CMAKE_CURRENT_BINARY_DIR}/mhmakeparser.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/mhmakelexer.cpp
+ src/mhmake.cpp
+ src/mhmakefileparser.cpp
+ src/util.cpp
+ src/functions.cpp
+ src/fileinfo.cpp
+ src/rule.cpp
+ src/md5.cpp
+ src/build.cpp
+ src/curdir.cpp
+ src/commandqueue.cpp
+ )
+
+INSTALL_TARGETS( /bin ${PROGRAM_NAME} )
diff --git a/tools/mhmake/MHMake extensions to GNU make.url b/tools/mhmake/MHMake extensions to GNU make.url
new file mode 100644
index 000000000..ebd1a729c
--- /dev/null
+++ b/tools/mhmake/MHMake extensions to GNU make.url
@@ -0,0 +1,3 @@
+[InternetShortcut]
+URL=http://dspbeast/mydms/out/out.ViewDocument.php?folderdocid=385
+Modified=00A348C8283BC301DA
diff --git a/tools/mhmake/addstdafxh.py b/tools/mhmake/addstdafxh.py
new file mode 100755
index 000000000..45413a474
--- /dev/null
+++ b/tools/mhmake/addstdafxh.py
@@ -0,0 +1,33 @@
+import sys,re,os
+
+try:
+ InputFile=sys.argv[1]
+except:
+ print "No input file specified"
+ sys.exit(1)
+
+try:
+ InputFile=sys.argv[1]
+ pIN=open(InputFile,"r")
+ data=pIN.read()
+ pIN.close()
+except:
+ print "Error reading input file",InputFile
+ sys.exit(1)
+
+try:
+ pOUT=open(InputFile,"w")
+except:
+ print "Error opening",InputFile,"for writing"
+ sys.exit(1)
+
+pOUT.write("""#include "stdafx.h"\n""")
+#since we are going to add one line we need to update all line statements
+def IncrementLine(matchobj):
+ return "#line %d%s"%(int(matchobj.group(1))+1,matchobj.group(2))
+
+data=re.sub(r"#\s*line\s+(\d+)(.*%s)"%os.path.split(InputFile)[1],IncrementLine,data)
+
+pOUT.write(data)
+pOUT.close()
+
diff --git a/tools/mhmake/bison.exe b/tools/mhmake/bison.exe
new file mode 100755
index 000000000..a56f1cb36
--- /dev/null
+++ b/tools/mhmake/bison.exe
Binary files differ
diff --git a/tools/mhmake/config.guess b/tools/mhmake/config.guess
new file mode 100644
index 000000000..5145e3571
--- /dev/null
+++ b/tools/mhmake/config.guess
@@ -0,0 +1,1363 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002 Free Software Foundation, Inc.
+
+timestamp='2002-10-21'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Per Bothner <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub. If it succeeds, it prints the system name on stdout, and
+# exits with 0. Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit 0 ;;
+ --version | -v )
+ echo "$version" ; exit 0 ;;
+ --help | --h* | -h )
+ echo "$usage"; exit 0 ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# This shell variable is my proudest work .. or something. --bje
+
+set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ;
+(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old)
+ || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ;
+dummy=$tmpdir/dummy ;
+files="$dummy.c $dummy.o $dummy.rel $dummy" ;
+trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
+ for c in cc gcc c89 c99 ; do
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ rm -f $files ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac ;
+unset files'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently, or will in the future.
+ case "${UNAME_MACHINE_ARCH}" in
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep __ELF__ >/dev/null
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # The OS release
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit 0 ;;
+ amiga:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ arc:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ hp300:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mac68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ macppc:OpenBSD:*:*)
+ echo powerpc-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme88k:OpenBSD:*:*)
+ echo m88k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvmeppc:OpenBSD:*:*)
+ echo powerpc-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ pmax:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sgi:OpenBSD:*:*)
+ echo mipseb-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sun3:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ wgrisc:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ *:OpenBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ alpha:OSF1:*:*)
+ if test $UNAME_RELEASE = "V4.0"; then
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ fi
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ eval $set_cc_for_build
+ cat <<EOF >$dummy.s
+ .data
+\$Lformat:
+ .byte 37,100,45,37,120,10,0 # "%d-%x\n"
+
+ .text
+ .globl main
+ .align 4
+ .ent main
+main:
+ .frame \$30,16,\$26,0
+ ldgp \$29,0(\$27)
+ .prologue 1
+ .long 0x47e03d80 # implver \$0
+ lda \$2,-1
+ .long 0x47e20c21 # amask \$2,\$1
+ lda \$16,\$Lformat
+ mov \$0,\$17
+ not \$1,\$18
+ jsr \$26,printf
+ ldgp \$29,0(\$26)
+ mov 0,\$16
+ jsr \$26,exit
+ .end main
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null
+ if test "$?" = 0 ; then
+ case `$dummy` in
+ 0-0)
+ UNAME_MACHINE="alpha"
+ ;;
+ 1-0)
+ UNAME_MACHINE="alphaev5"
+ ;;
+ 1-1)
+ UNAME_MACHINE="alphaev56"
+ ;;
+ 1-101)
+ UNAME_MACHINE="alphapca56"
+ ;;
+ 2-303)
+ UNAME_MACHINE="alphaev6"
+ ;;
+ 2-307)
+ UNAME_MACHINE="alphaev67"
+ ;;
+ 2-1307)
+ UNAME_MACHINE="alphaev68"
+ ;;
+ 3-1307)
+ UNAME_MACHINE="alphaev7"
+ ;;
+ esac
+ fi
+ rm -f $dummy.s $dummy && rmdir $tmpdir
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ exit 0 ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+ exit 0 ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit 0 ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+ exit 0;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-amigaos
+ exit 0 ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-morphos
+ exit 0 ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit 0 ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit 0;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit 0;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit 0 ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit 0 ;;
+ DRS?6000:UNIX_SV:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7 && exit 0 ;;
+ esac ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ i86pc:SunOS:5.*:*)
+ echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ exit 0 ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit 0 ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ ;;
+ sun4)
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+ exit 0 ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+ exit 0 ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit 0 ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit 0 ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit 0 ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+ exit 0 ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+ exit 0 ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+ exit 0 ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c \
+ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+ && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+ rm -f $dummy.c $dummy && rmdir $tmpdir
+ echo mips-mips-riscos${UNAME_RELEASE}
+ exit 0 ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+ exit 0 ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+ exit 0 ;;
+ Night_Hawk:*:*:PowerMAX_OS)
+ echo powerpc-harris-powermax
+ exit 0 ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit 0 ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+ exit 0 ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+ exit 0 ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+ exit 0 ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ then
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
+ then
+ echo m88k-dg-dgux${UNAME_RELEASE}
+ else
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ fi
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit 0 ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+ exit 0 ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+ exit 0 ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+ exit 0 ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ exit 0 ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+ exit 0 ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ exit 0 ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <sys/systemcfg.h>
+
+ main()
+ {
+ if (!__power_pc())
+ exit(1);
+ puts("powerpc-ibm-aix3.2.5");
+ exit(0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+ rm -f $dummy.c $dummy && rmdir $tmpdir
+ echo rs6000-ibm-aix3.2.5
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+ exit 0 ;;
+ *:AIX:*:[45])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ exit 0 ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+ exit 0 ;;
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+ exit 0 ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ exit 0 ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+ exit 0 ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+ exit 0 ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+ exit 0 ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit 0 ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/[678][0-9][0-9])
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
+EOF
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
+ rm -f $dummy.c $dummy && rmdir $tmpdir
+ fi ;;
+ esac
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ exit 0 ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
+ exit 0 ;;
+ 3050*:HI-UX:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <unistd.h>
+ int
+ main ()
+ {
+ long cpu = sysconf (_SC_CPU_VERSION);
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
+ results, however. */
+ if (CPU_IS_PA_RISC (cpu))
+ {
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
+ }
+ }
+ else if (CPU_IS_HP_MC68K (cpu))
+ puts ("m68k-hitachi-hiuxwe2");
+ else puts ("unknown-hitachi-hiuxwe2");
+ exit (0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+ rm -f $dummy.c $dummy && rmdir $tmpdir
+ echo unknown-hitachi-hiuxwe2
+ exit 0 ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ echo hppa1.1-hp-bsd
+ exit 0 ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit 0 ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+ exit 0 ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+ exit 0 ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+ exit 0 ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-unknown-osf1mk
+ else
+ echo ${UNAME_MACHINE}-unknown-osf1
+ fi
+ exit 0 ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+ exit 0 ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+ exit 0 ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit 0 ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+ exit 0 ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+ exit 0 ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+ exit 0 ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*T3D:*:*:*)
+ echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit 0 ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ *:FreeBSD:*:*)
+ # Determine whether the default compiler uses glibc.
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <features.h>
+ #if __GLIBC__ >= 2
+ LIBC=gnu
+ #else
+ LIBC=
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+ rm -f $dummy.c && rmdir $tmpdir
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
+ exit 0 ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit 0 ;;
+ i*:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit 0 ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+ exit 0 ;;
+ x86:Interix*:3*)
+ echo i386-pc-interix3
+ exit 0 ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i386-pc-interix
+ exit 0 ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+ exit 0 ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-unknown-cygwin
+ exit 0 ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ *:GNU:*:*)
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit 0 ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ exit 0 ;;
+ arm*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ mips:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef mips
+ #undef mipsel
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=mipsel
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=mips
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+ rm -f $dummy.c && rmdir $tmpdir
+ test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
+ ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-gnu
+ exit 0 ;;
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-gnu
+ exit 0 ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ exit 0 ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ PA7*) echo hppa1.1-unknown-linux-gnu ;;
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ *) echo hppa-unknown-linux-gnu ;;
+ esac
+ exit 0 ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-gnu
+ exit 0 ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux
+ exit 0 ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ x86_64:Linux:*:*)
+ echo x86_64-unknown-linux-gnu
+ exit 0 ;;
+ i*86:Linux:*:*)
+ # The BFD linker knows what the default object file format is, so
+ # first see if it will tell us. cd to the root directory to prevent
+ # problems with other programs or directories called `ld' in the path.
+ # Set LC_ALL=C to ensure ld outputs messages in English.
+ ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+ | sed -ne '/supported targets:/!d
+ s/[ ][ ]*/ /g
+ s/.*supported targets: *//
+ s/ .*//
+ p'`
+ case "$ld_supported_targets" in
+ elf32-i386)
+ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+ ;;
+ a.out-i386-linux)
+ echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+ exit 0 ;;
+ coff-i386)
+ echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+ exit 0 ;;
+ "")
+ # Either a pre-BFD a.out linker (linux-gnuoldld) or
+ # one that does not give us useful --help.
+ echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+ exit 0 ;;
+ esac
+ # Determine whether the default compiler is a.out or elf
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <features.h>
+ #ifdef __ELF__
+ # ifdef __GLIBC__
+ # if __GLIBC__ >= 2
+ LIBC=gnu
+ # else
+ LIBC=gnulibc1
+ # endif
+ # else
+ LIBC=gnulibc1
+ # endif
+ #else
+ #ifdef __INTEL_COMPILER
+ LIBC=gnu
+ #else
+ LIBC=gnuaout
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+ rm -f $dummy.c && rmdir $tmpdir
+ test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
+ test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+ ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
+ echo i386-sequent-sysv4
+ exit 0 ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit 0 ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+ exit 0 ;;
+ i*86:*:5:[78]*)
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ exit 0 ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ else
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+ exit 0 ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ exit 0 ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i386.
+ echo i386-pc-msdosdjgpp
+ exit 0 ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit 0 ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+ exit 0 ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ fi
+ exit 0 ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+ exit 0 ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+ exit 0 ;;
+ M68*:*:R3V[567]*:*)
+ test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+ 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4 && exit 0 ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit 0 ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+ exit 0 ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ echo ${UNAME_MACHINE}-sni-sysv4
+ else
+ echo ns32k-sni-sysv
+ fi
+ exit 0 ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit 0 ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+ exit 0 ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ echo i860-stratus-sysv4
+ exit 0 ;;
+ *:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo hppa1.1-stratus-vos
+ exit 0 ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+ exit 0 ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+ exit 0 ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit 0 ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+ exit 0 ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+ exit 0 ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ exit 0 ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ exit 0 ;;
+ *:Darwin:*:*)
+ echo `uname -p`-apple-darwin${UNAME_RELEASE}
+ exit 0 ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = "x86"; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ exit 0 ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit 0 ;;
+ NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+ exit 0 ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+ exit 0 ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+ exit 0 ;;
+ DS/*:UNIX_System_V:*:*)
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ exit 0 ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+ if test "$cputype" = "386"; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+ fi
+ echo ${UNAME_MACHINE}-unknown-plan9
+ exit 0 ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+ exit 0 ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+ exit 0 ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+ exit 0 ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+ exit 0 ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+ exit 0 ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+ exit 0 ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+ exit 0 ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-unknown-stop
+ exit 0 ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-unknown-atheos
+ exit 0 ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+ printf ("arm-acorn-riscix"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+ printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+# include <sys/param.h>
+# if defined (BSD)
+# if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+# else
+# if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# endif
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# else
+ printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+rm -f $dummy.c $dummy && rmdir $tmpdir
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+ case `getsysinfo -f cpu_type` in
+ c1*)
+ echo c1-convex-bsd
+ exit 0 ;;
+ c2*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit 0 ;;
+ c34*)
+ echo c34-convex-bsd
+ exit 0 ;;
+ c38*)
+ echo c38-convex-bsd
+ exit 0 ;;
+ c4*)
+ echo c4-convex-bsd
+ exit 0 ;;
+ esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+ ftp://ftp.gnu.org/pub/gnu/config/
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo = `(hostinfo) 2>/dev/null`
+/bin/universe = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/tools/mhmake/cygwin1.dll b/tools/mhmake/cygwin1.dll
new file mode 100755
index 000000000..116037f1b
--- /dev/null
+++ b/tools/mhmake/cygwin1.dll
Binary files differ
diff --git a/tools/mhmake/flex++.exe b/tools/mhmake/flex++.exe
new file mode 100755
index 000000000..14da34eb0
--- /dev/null
+++ b/tools/mhmake/flex++.exe
Binary files differ
diff --git a/tools/mhmake/genkdev4.sh b/tools/mhmake/genkdev4.sh
new file mode 100755
index 000000000..c3b1cbaa5
--- /dev/null
+++ b/tools/mhmake/genkdev4.sh
@@ -0,0 +1,12 @@
+[ ! -d build ] && mkdir build
+cd build
+cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release ..
+cd ..
+[ ! -d build.dbg ] && mkdir build.dbg
+cd build.dbg
+cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Debug ..
+cd ..
+[ ! -d .kdev4 ] && mkdir .kdev4
+echo [CMake] > .kdev4/mhmake.kdev4
+echo BuildDirs[\$e]=$PWD/build,$PWD/build.dbg >> .kdev4/mhmake.kdev4
+
diff --git a/tools/mhmake/libiconv2.dll b/tools/mhmake/libiconv2.dll
new file mode 100755
index 000000000..544dd92f5
--- /dev/null
+++ b/tools/mhmake/libiconv2.dll
Binary files differ
diff --git a/tools/mhmake/libintl3.dll b/tools/mhmake/libintl3.dll
new file mode 100755
index 000000000..ec11e6b19
--- /dev/null
+++ b/tools/mhmake/libintl3.dll
Binary files differ
diff --git a/tools/mhmake/m4.exe b/tools/mhmake/m4.exe
new file mode 100755
index 000000000..20bb51625
--- /dev/null
+++ b/tools/mhmake/m4.exe
Binary files differ
diff --git a/tools/mhmake/makebison.bat b/tools/mhmake/makebison.bat
new file mode 100755
index 000000000..fa23090e5
--- /dev/null
+++ b/tools/mhmake/makebison.bat
@@ -0,0 +1,10 @@
+@echo off
+setlocal
+
+set M4=.\m4.exe
+set BISON_PKGDATADIR=src/bisondata
+
+bison -d -ra -Ssrc/bisondata/lalr1.cc -o%1/mhmakeparser.cpp src\mhmakeParser.y
+python addstdafxh.py %1\mhmakeparser.cpp
+
+endlocal
diff --git a/tools/mhmake/makefile b/tools/mhmake/makefile
new file mode 100644
index 000000000..f6a5a8ded
--- /dev/null
+++ b/tools/mhmake/makefile
@@ -0,0 +1,31 @@
+ifdef VS2008
+MHMAKESLNFILE=mhmake.sln
+BUILDCMD=vcbuild $(MHMAKESLNFILE)
+else
+MHMAKESLNFILE=mhmakevc10.sln
+BUILDCMD=devenv.com $(MHMAKESLNFILE) /build
+endif
+
+ifdef IS64
+SUBCONF=|x64
+SUBCONFDIR=64
+else
+SUBCONF=|Win32
+endif
+.PHONY: all mhmake_dbg mhmake cleanthis
+
+all: debug$(SUBCONFDIR)\mhmake_dbg.exe release$(SUBCONFDIR)\mhmake.exe
+
+DEPS=$(wildcard src\*)
+
+debug$(SUBCONFDIR)\mhmake_dbg.exe: $(DEPS)
+ $(BUILDCMD) "Debug$(SUBCONF)"
+
+release$(SUBCONFDIR)\mhmake.exe: $(DEPS)
+ $(BUILDCMD) "Release$(SUBCONF)"
+
+clean: cleanthis
+
+cleanthis:
+ del -e Debug
+ del -e Release
diff --git a/tools/mhmake/makelex.bat b/tools/mhmake/makelex.bat
new file mode 100755
index 000000000..66d9255fa
--- /dev/null
+++ b/tools/mhmake/makelex.bat
@@ -0,0 +1,11 @@
+@echo off
+setlocal
+
+set M4=.\m4.exe
+
+"flex++" --nounistd -Ssrc/flex.skl -o%1/mhmakelexer.cpp src/mhmakelexer.l
+
+python addstdafxh.py %1\mhmakelexer.cpp
+
+endlocal
+
diff --git a/tools/mhmake/mhmake.kdev4 b/tools/mhmake/mhmake.kdev4
new file mode 100644
index 000000000..4eef88a1e
--- /dev/null
+++ b/tools/mhmake/mhmake.kdev4
@@ -0,0 +1,4 @@
+[Project]
+Name=mhmake
+Manager=KDevCMakeManager
+VersionControl=
diff --git a/tools/mhmake/mhmake.sln b/tools/mhmake/mhmake.sln
new file mode 100644
index 000000000..7121b8286
--- /dev/null
+++ b/tools/mhmake/mhmake.sln
@@ -0,0 +1,31 @@
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mhmake", "mhmake.vcproj", "{7F1669C8-7974-45DF-9B71-0E2A8DC44C06}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Profile|Win32 = Profile|Win32
+ Profile|x64 = Profile|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Debug|Win32.Build.0 = Debug|Win32
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Debug|x64.ActiveCfg = Debug|x64
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Debug|x64.Build.0 = Debug|x64
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Profile|Win32.ActiveCfg = Profile|Win32
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Profile|Win32.Build.0 = Profile|Win32
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Profile|x64.ActiveCfg = Profile|x64
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Profile|x64.Build.0 = Profile|x64
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Release|Win32.ActiveCfg = Release|Win32
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Release|Win32.Build.0 = Release|Win32
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Release|x64.ActiveCfg = Release|x64
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/tools/mhmake/mhmake.vcproj b/tools/mhmake/mhmake.vcproj
new file mode 100644
index 000000000..9d8ad1db2
--- /dev/null
+++ b/tools/mhmake/mhmake.vcproj
@@ -0,0 +1,1012 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="mhmake"
+ ProjectGUID="{7F1669C8-7974-45DF-9B71-0E2A8DC44C06}"
+ RootNamespace="mhmake"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\Release/mhmake.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="2"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories=".,src,$(OutDir)"
+ PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE"
+ StringPooling="true"
+ ExceptionHandling="2"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="false"
+ EnableEnhancedInstructionSet="1"
+ RuntimeTypeInfo="false"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="stdafx.h"
+ AssemblerListingLocation="$(IntDir)"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ CallingConvention="1"
+ CompileAs="0"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ProgramDatabaseFile=""
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|x64"
+ OutputDirectory="Release64"
+ IntermediateDirectory="Release64"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ TypeLibraryName=".\Release/mhmake.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="2"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories=".,src,$(OutDir)"
+ PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE"
+ StringPooling="true"
+ ExceptionHandling="2"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="false"
+ EnableEnhancedInstructionSet="0"
+ RuntimeTypeInfo="false"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="stdafx.h"
+ AssemblerListingLocation="$(IntDir)"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ CallingConvention="1"
+ CompileAs="0"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\Debug/mhmake.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=".,src,$(OutDir)"
+ PreprocessorDefinitions="_DEBUG;_CRTDBG_MAP_ALLOC;WIN32;_CONSOLE"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="stdafx.h"
+ AssemblerListingLocation="$(IntDir)"
+ XMLDocumentationFileName="$(IntDir)"
+ BrowseInformation="1"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="0"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="$(ConfigurationName)/mhmake_dbg.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|x64"
+ OutputDirectory="Debug64"
+ IntermediateDirectory="Debug64"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ TypeLibraryName=".\Debug/mhmake.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=".,src,$(OutDir)"
+ PreprocessorDefinitions="_DEBUG;_CRTDBG_MAP_ALLOC;WIN32;_CONSOLE"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="stdafx.h"
+ AssemblerListingLocation="$(IntDir)"
+ XMLDocumentationFileName="$(IntDir)"
+ BrowseInformation="1"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="0"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="$(ConfigurationName)/mhmake_dbg.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile=".\Debug/mhmake.pdb"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Profile|Win32"
+ OutputDirectory="$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\Release/mhmake.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="2"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories=".,src,$(OutDir)"
+ PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="false"
+ EnableEnhancedInstructionSet="1"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="stdafx.h"
+ PrecompiledHeaderFile="$(ConfigurationName)/mhmake.pch"
+ ProgramDataBaseFileName="$(IntDir)/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CallingConvention="1"
+ CompileAs="0"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="$(ConfigurationName)/mhmake.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
+ GenerateMapFile="true"
+ MapExports="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ FixedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Profile|x64"
+ OutputDirectory="Profile64"
+ IntermediateDirectory="Profile64"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ TypeLibraryName=".\Release/mhmake.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="2"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="1"
+ OmitFramePointers="true"
+ AdditionalIncludeDirectories=".,src,$(OutDir)"
+ PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="false"
+ EnableEnhancedInstructionSet="1"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="stdafx.h"
+ PrecompiledHeaderFile="$(ConfigurationName)/mhmake.pch"
+ ProgramDataBaseFileName="$(IntDir)/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CallingConvention="1"
+ CompileAs="0"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="$(ConfigurationName)/mhmake.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
+ GenerateMapFile="true"
+ MapExports="true"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ FixedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath=".\src\build.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\src\commandqueue.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\src\curdir.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\src\fileinfo.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\src\functions.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\src\md5.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\src\mhmake.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\src\mhmakefileparser.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\src\rule.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\src\stdafx.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Profile|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Profile|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug 64|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug 64|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release 64|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release 64|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\src\util.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath=".\src\commandqueue.h"
+ >
+ </File>
+ <File
+ RelativePath=".\src\curdir.h"
+ >
+ </File>
+ <File
+ RelativePath=".\src\fileinfo.h"
+ >
+ </File>
+ <File
+ RelativePath=".\src\md5.h"
+ >
+ </File>
+ <File
+ RelativePath=".\src\mhmakefileparser.h"
+ >
+ </File>
+ <File
+ RelativePath=".\src\refptr.h"
+ >
+ </File>
+ <File
+ RelativePath=".\src\rule.h"
+ >
+ </File>
+ <File
+ RelativePath=".\src\stdafx.h"
+ >
+ </File>
+ <File
+ RelativePath=".\src\util.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Parser Files"
+ Filter="l;y;cpp;h"
+ >
+ <File
+ RelativePath=".\src\mhmakeLexer.l"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makelex.bat Release&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\flexint.h;.\src\flex.skl;.\src\flexlexer.h;"
+ Outputs="$(OutDir)\$(InputName).cpp"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makelex.bat Release64&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\flexint.h;.\src\flex.skl;.\src\flexlexer.h;"
+ Outputs="$(OutDir)\$(InputName).cpp"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makelex.bat Debug&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\flexint.h;.\src\flex.skl;.\src\flexlexer.h;"
+ Outputs="$(OutDir)\$(InputName).cpp"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makelex.bat Debug64&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\flexint.h;.\src\flex.skl;.\src\flexlexer.h;"
+ Outputs="$(OutDir)\$(InputName).cpp"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Profile|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makelex.bat Profile&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\flexint.h;.\src\flex.skl;.\src\flexlexer.h;"
+ Outputs="$(OutDir)\$(InputName).cpp"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Profile|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makelex.bat Profile64&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\flexint.h;.\src\flex.skl;.\src\flexlexer.h;"
+ Outputs="$(OutDir)\$(InputName).cpp"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug 64|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makelex.bat Debug64&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\flexint.h;.\src\flex.skl;.\src\flexlexer.h;"
+ Outputs="$(OutDir)\$(InputName).cpp"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug 64|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makelex.bat Debug64&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\flexint.h;.\src\flex.skl;.\src\flexlexer.h;"
+ Outputs="$(OutDir)\$(InputName).cpp"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release 64|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makelex.bat Release64&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\flexint.h;.\src\flex.skl;.\src\flexlexer.h;"
+ Outputs="$(OutDir)\$(InputName).cpp"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release 64|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makelex.bat Release64&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\flexint.h;.\src\flex.skl;.\src\flexlexer.h;"
+ Outputs="$(OutDir)\$(InputName).cpp"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\src\mhmakeParser.y"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makebison.bat Release&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\bison.cc;.\src\bison.h;"
+ Outputs="$(OutDir)\$(InputName).cpp;$(OutDir)\$(InputName).h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makebison.bat Release64&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\bison.cc;.\src\bison.h;"
+ Outputs="$(OutDir)\$(InputName).cpp;$(OutDir)\$(InputName).h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makebison.bat Debug&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\bison.cc;.\src\bison.h;"
+ Outputs="$(OutDir)\$(InputName).cpp;$(OutDir)\$(InputName).h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makebison.bat Debug64&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\bison.cc;.\src\bison.h;"
+ Outputs="$(OutDir)\$(InputName).cpp;$(OutDir)\$(InputName).h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Profile|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makebison.bat Profile&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\bison.cc;.\src\bison.h;"
+ Outputs="$(OutDir)\$(InputName).cpp;$(OutDir)\$(InputName).h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Profile|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makebison.bat Profile64&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\bison.cc;.\src\bison.h;"
+ Outputs="$(OutDir)\$(InputName).cpp;$(OutDir)\$(InputName).h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug 64|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makebison.bat Debug64&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\bison.cc;.\src\bison.h;"
+ Outputs="$(OutDir)\$(InputName).cpp;$(OutDir)\$(InputName).h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug 64|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makebison.bat Debug64&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\bison.cc;.\src\bison.h;"
+ Outputs="$(OutDir)\$(InputName).cpp;$(OutDir)\$(InputName).h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release 64|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makebison.bat Release64&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\bison.cc;.\src\bison.h;"
+ Outputs="$(OutDir)\$(InputName).cpp;$(OutDir)\$(InputName).h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release 64|x64"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="cmd.exe /c makebison.bat Release64&#x0D;&#x0A;"
+ AdditionalDependencies=".\src\bison.cc;.\src\bison.h;"
+ Outputs="$(OutDir)\$(InputName).cpp;$(OutDir)\$(InputName).h"
+ />
+ </FileConfiguration>
+ </File>
+ <Filter
+ Name="Auto"
+ Filter="cpp;h"
+ >
+ <File
+ RelativePath="$(OutDir)\mhmakelexer.cpp"
+ >
+ </File>
+ <File
+ RelativePath="$(OutDir)\mhmakeparser.cpp"
+ >
+ </File>
+ <File
+ RelativePath="$(OutDir)\mhmakeparser.h"
+ >
+ </File>
+ </Filter>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ <File
+ RelativePath=".\src\bison.h"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/tools/mhmake/mhmake.vcxproj b/tools/mhmake/mhmake.vcxproj
new file mode 100644
index 000000000..be7544606
--- /dev/null
+++ b/tools/mhmake/mhmake.vcxproj
@@ -0,0 +1,478 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Profile|Win32">
+ <Configuration>Profile</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Profile|x64">
+ <Configuration>Profile</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{7F1669C8-7974-45DF-9B71-0E2A8DC44C06}</ProjectGuid>
+ <RootNamespace>mhmake</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Release64\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Release64\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Debug64\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Debug64\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Profile|x64'">Profile64\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|x64'">Profile64\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Profile|x64'">false</LinkIncremental>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">mhmake_dbg</TargetName>
+ <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">mhmake_dbg</TargetName>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</GenerateManifest>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <TypeLibraryName>.\Release/mhmake.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>.;src;$(OutDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
+ <RuntimeTypeInfo>false</RuntimeTypeInfo>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <CallingConvention>FastCall</CallingConvention>
+ <CompileAs>Default</CompileAs>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ <TypeLibraryName>.\Release/mhmake.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>.;src;$(OutDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>Async</ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
+ <RuntimeTypeInfo>false</RuntimeTypeInfo>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <CallingConvention>FastCall</CallingConvention>
+ <CompileAs>Default</CompileAs>
+ <DisableSpecificWarnings>4267;4996;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <TypeLibraryName>.\Debug/mhmake.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>.;src;$(OutDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CRTDBG_MAP_ALLOC;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>Default</CompileAs>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ <TypeLibraryName>.\Debug/mhmake.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>.;src;$(OutDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CRTDBG_MAP_ALLOC;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>Default</CompileAs>
+ <DisableSpecificWarnings>4267;4996;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(OutDir)\mhmake_dbg.exe</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
+ <Midl>
+ <TypeLibraryName>.\Release/mhmake.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>.;src;$(OutDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderOutputFile>$(Configuration)/mhmake.pch</PrecompiledHeaderOutputFile>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CallingConvention>FastCall</CallingConvention>
+ <CompileAs>Default</CompileAs>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <FixedBaseAddress>false</FixedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ <TypeLibraryName>.\Release/mhmake.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>.;src;$(OutDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;WIN32;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderOutputFile>$(Configuration)/mhmake.pch</PrecompiledHeaderOutputFile>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CallingConvention>FastCall</CallingConvention>
+ <CompileAs>Default</CompileAs>
+ <DisableSpecificWarnings>4267;4996;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(Configuration)/mhmake.exe</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <FixedBaseAddress>false</FixedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="src\build.cpp" />
+ <ClCompile Include="src\commandqueue.cpp" />
+ <ClCompile Include="src\curdir.cpp" />
+ <ClCompile Include="src\fileinfo.cpp" />
+ <ClCompile Include="src\functions.cpp" />
+ <ClCompile Include="src\md5.cpp" />
+ <ClCompile Include="src\mhmake.cpp" />
+ <ClCompile Include="src\mhmakefileparser.cpp" />
+ <ClCompile Include="src\rule.cpp" />
+ <ClCompile Include="src\stdafx.cpp">
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|x64'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
+ </ClCompile>
+ <ClCompile Include="src\util.cpp" />
+ <ClCompile Include="$(OutDir)\mhmakelexer.cpp" />
+ <ClCompile Include="$(OutDir)\mhmakeparser.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="src\commandqueue.h" />
+ <ClInclude Include="src\curdir.h" />
+ <ClInclude Include="src\fileinfo.h" />
+ <ClInclude Include="src\flexint.h" />
+ <ClInclude Include="src\flexlexer.h" />
+ <ClInclude Include="src\md5.h" />
+ <ClInclude Include="src\mhmakefileparser.h" />
+ <ClInclude Include="src\refptr.h" />
+ <ClInclude Include="src\rule.h" />
+ <ClInclude Include="src\stdafx.h" />
+ <ClInclude Include="src\util.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="src\mhmakeLexer.l">
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cmd.exe /c makelex.bat Debug
+</Command>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(RelativeDir)flex.skl</AdditionalInputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename).cpp</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">cmd.exe /c makelex.bat Debug64
+</Command>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\src\flexint.h;.\src\flex.skl;.\src\flexlexer.h;%(AdditionalInputs)</AdditionalInputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(OutDir)%(Filename).cpp;%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">cmd.exe /c makelex.bat Profile
+</Command>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">%(RelativeDir)flex.skl</AdditionalInputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(IntDir)%(Filename).cpp</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Profile|x64'">cmd.exe /c makelex.bat Profile64
+</Command>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Profile|x64'">.\src\flexint.h;.\src\flex.skl;.\src\flexlexer.h;%(AdditionalInputs)</AdditionalInputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Profile|x64'">$(OutDir)%(Filename).cpp;%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">cmd.exe /c makelex.bat Release
+</Command>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(RelativeDir)flex.skl</AdditionalInputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename).cpp</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">cmd.exe /c makelex.bat Release64</Command>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\src\flexint.h;.\src\flex.skl;.\src\flexlexer.h;%(AdditionalInputs)</AdditionalInputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(OutDir)%(Filename).cpp;%(Outputs)</Outputs>
+ </CustomBuild>
+ <CustomBuild Include="src\mhmakeParser.y">
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cmd.exe /c makebison.bat Debug
+</Command>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(RelativeDir)bisondata/bison.m4;%(RelativeDir)bisondata/lalr1.cc;%(RelativeDir)bisondata/c++.m4;%(RelativeDir)bisondata/c.m4;%(RelativeDir)bisondata/location.cc</AdditionalInputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename).cpp;$(IntDir)%(Filename).hpp;$(IntDir)location.hh;$(IntDir)position.hh;$(IntDir)stack.hh</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">cmd.exe /c makebison.bat Debug64
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(OutDir)%(Filename).cpp;$(OutDir)%(Filename).h;%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">cmd.exe /c makebison.bat Profile
+</Command>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">%(RelativeDir)bisondata/bison.m4;%(RelativeDir)bisondata/lalr1.cc;%(RelativeDir)bisondata/c++.m4;%(RelativeDir)bisondata/c.m4;%(RelativeDir)bisondata/location.cc</AdditionalInputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(IntDir)%(Filename).cpp;$(IntDir)%(Filename).hpp;$(IntDir)location.hh;$(IntDir)position.hh;$(IntDir)stack.hh</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Profile|x64'">cmd.exe /c makebison.bat Profile64</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Profile|x64'">$(OutDir)%(Filename).cpp;$(OutDir)%(Filename).h;%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">cmd.exe /c makebison.bat Release
+</Command>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(RelativeDir)bisondata/bison.m4;%(RelativeDir)bisondata/lalr1.cc;%(RelativeDir)bisondata/c++.m4;%(RelativeDir)bisondata/c.m4;%(RelativeDir)bisondata/location.cc</AdditionalInputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename).cpp;$(IntDir)%(Filename).hpp;$(IntDir)location.hh;$(IntDir)position.hh;$(IntDir)stack.hh</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">cmd.exe /c makebison.bat Release64</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(OutDir)%(Filename).cpp;$(OutDir)%(Filename).h;%(Outputs)</Outputs>
+ </CustomBuild>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/tools/mhmake/mhmake.vcxproj.filters b/tools/mhmake/mhmake.vcxproj.filters
new file mode 100644
index 000000000..0ec28f785
--- /dev/null
+++ b/tools/mhmake/mhmake.vcxproj.filters
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{bafa54b0-cf70-4114-a02b-5950c0d4d6e3}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{a92d61c8-68ae-49f8-b843-a793ac9bb6c6}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ <Filter Include="Parser Files">
+ <UniqueIdentifier>{a793606c-0dbc-4f42-9ad8-a61cf7773455}</UniqueIdentifier>
+ <Extensions>l;y;cpp;h</Extensions>
+ </Filter>
+ <Filter Include="Parser Files\Auto">
+ <UniqueIdentifier>{e31daf7b-6a21-4a06-ac86-07625e21fd87}</UniqueIdentifier>
+ <Extensions>cpp;h</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{bd4cf27c-0b86-4d5c-8dae-963cc3953cbb}</UniqueIdentifier>
+ <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="src\build.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\commandqueue.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\curdir.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\fileinfo.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\functions.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\md5.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mhmake.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\mhmakefileparser.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\rule.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\stdafx.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\util.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="$(OutDir)\mhmakelexer.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="$(OutDir)\mhmakeparser.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="src\commandqueue.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\curdir.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\fileinfo.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\md5.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\mhmakefileparser.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\refptr.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\rule.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\stdafx.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\util.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\flexlexer.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\flexint.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="src\mhmakeLexer.l">
+ <Filter>Parser Files</Filter>
+ </CustomBuild>
+ <CustomBuild Include="src\mhmakeParser.y">
+ <Filter>Parser Files</Filter>
+ </CustomBuild>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/tools/mhmake/mhmakevc10.sln b/tools/mhmake/mhmakevc10.sln
new file mode 100644
index 000000000..aa927ed5f
--- /dev/null
+++ b/tools/mhmake/mhmakevc10.sln
@@ -0,0 +1,31 @@
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mhmake", "mhmake.vcxproj", "{7F1669C8-7974-45DF-9B71-0E2A8DC44C06}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Profile|Win32 = Profile|Win32
+ Profile|x64 = Profile|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Debug|Win32.Build.0 = Debug|Win32
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Debug|x64.ActiveCfg = Debug|x64
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Debug|x64.Build.0 = Debug|x64
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Profile|Win32.ActiveCfg = Profile|Win32
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Profile|Win32.Build.0 = Profile|Win32
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Profile|x64.ActiveCfg = Profile|x64
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Profile|x64.Build.0 = Profile|x64
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Release|Win32.ActiveCfg = Release|Win32
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Release|Win32.Build.0 = Release|Win32
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Release|x64.ActiveCfg = Release|x64
+ {7F1669C8-7974-45DF-9B71-0E2A8DC44C06}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/tools/mhmake/readme.txt b/tools/mhmake/readme.txt
new file mode 100644
index 000000000..4c0f3558d
--- /dev/null
+++ b/tools/mhmake/readme.txt
@@ -0,0 +1,27 @@
+To build this tool you first need to install Visaul C++ Studio .NET 2003,
+Visual Studio 2008 or Visual Studio 2010.
+
+Open the mhmake.sln, mhmakevc6.sln or mhmakevc10.sln file in Visual Studio
+depending on the version of Visual Studio and compile for Debug and for
+Release.
+2 executables are generated by this process:
+- Release\mhmake.exe : gnu make compatible make program with some specific
+ extension is make the build process faster.
+
+- Debug\mhmake_dbg.exe : Has the same functionality but does extra
+ error checking on makefiles and has extra debugging options. This one
+ is advised to be used when creating makefiles. When the makefiles are
+ fully debugging mhmake.exe is a better choise because here the build
+ process will be faster. mhmake.exe is more likely to crash when badly
+ written makefiles are passed as input.
+
+To build with kdevelop4 on linux
+- run genkdev4.sh
+
+- run 'make' and 'make install' in the build and build.dbg directories
+
+or
+
+- open mhmake.kdev4 and build configuration build and build.dbg
+- run 'make install' in the build and build.dbg directories (as root)
+
diff --git a/tools/mhmake/src/Makefile.am b/tools/mhmake/src/Makefile.am
new file mode 100644
index 000000000..0478f1645
--- /dev/null
+++ b/tools/mhmake/src/Makefile.am
@@ -0,0 +1,62 @@
+SRCS = mhmakeparser.y mhmakelexer.l mhmake.cpp mhmakefileparser.cpp util.cpp \
+ functions.cpp fileinfo.cpp rule.cpp md5.c build.cpp curdir.cpp \
+ commandqueue.cpp
+
+if DEBUG
+bin_PROGRAMS=mhmake_dbg
+mhmake_dbg_SOURCES = $(SRCS)
+else
+bin_PROGRAMS=mhmake
+mhmake_SOURCES = $(SRCS)
+endif
+
+LEX=flex++
+AM_LFLAGS=-8
+
+YACC=bison++
+AM_YFLAGS=-d
+
+mhmakelexer.o: mhmakelexer.cpp mhmakelexer.h
+mhmakelexer.cpp: mhmakelexer.l
+mhmakelexer.h: mhmakelexer.l
+
+mhmakeparser.o: mhmakeparser.cpp mhmakeparser.h
+mhmakeparser.cpp: mhmakeparser.y
+mhmakeparser.h: mhmakeparser.y
+
+.l.cpp:
+ $(LEXCOMPILE) -S$(srcdir)/flexskel.cc -H$(srcdir)/flexskel.h -h$(@:%.cpp=%.h) -otemp1234.456 $<
+ echo '#include "stdafx.h"' > $@
+ cat temp1234.456 >> $@
+ rm temp1234.456
+
+.y.cpp:
+ $(YACCCOMPILE) -S$(srcdir)/bison.cc -H$(srcdir)/bison.h -h$(@:%.cpp=%.h) -otemp1234.456 $<
+ echo '#include "stdafx.h"' > $@
+ cat temp1234.456 >> $@
+ rm temp1234.456
+
+
+.l.h:
+ $(LEXCOMPILE) -S$(srcdir)/flexskel.cc -H$(srcdir)/flexskel.h -h$@ -otemp1234.456 $<
+ echo '#include "stdafx.h"' > $(@:%.h=%.cpp)
+ cat temp1234.456 >> $(@:%.h=%.cpp)
+ rm temp1234.456
+
+.y.h:
+ $(YACCCOMPILE) -S$(srcdir)/bison.cc -H$(srcdir)/bison.h -h$@ -otemp1234.456 $<
+ echo '#include "stdafx.h"' > $(@:%.h=%.cpp)
+ cat temp1234.456 >> $(@:%.h=%.cpp)
+ rm temp1234.456
+
+# set the include path found by configure
+INCLUDES= $(all_includes)
+
+LDADD = /usr/lib/libpopt.a
+
+# the library search path.
+if DEBUG
+mhmake_dbg_LDFLAGS = $(all_libraries)
+else
+mhmake_LDFLAGS = $(all_libraries)
+endif
diff --git a/tools/mhmake/src/bisondata/bison.m4 b/tools/mhmake/src/bisondata/bison.m4
new file mode 100644
index 000000000..af7c8f7a7
--- /dev/null
+++ b/tools/mhmake/src/bisondata/bison.m4
@@ -0,0 +1,556 @@
+ -*- Autoconf -*-
+
+# Language-independent M4 Macros for Bison.
+# Copyright (C) 2002, 2004, 2005, 2006, 2007, 2008 Free Software Foundation,
+# Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+## ---------------- ##
+## Identification. ##
+## ---------------- ##
+
+# b4_copyright(TITLE, YEARS)
+# --------------------------
+m4_define([b4_copyright],
+[b4_comment([A Bison parser, made by GNU Bison b4_version.])
+
+b4_comment([$1
+
+m4_text_wrap([Copyright (C) $2 Free Software Foundation, Inc.], [ ])
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.])
+
+b4_comment([As a special exception, you may create a larger work that contains
+part or all of the Bison parser skeleton and distribute that work
+under terms of your choice, so long as that work isn't itself a
+parser generator using the skeleton or a modified version thereof
+as a parser skeleton. Alternatively, if you modify or redistribute
+the parser skeleton itself, you may (at your option) remove this
+special exception, which will cause the skeleton and the resulting
+Bison output files to be licensed under the GNU General Public
+License without this special exception.
+
+This special exception was added by the Free Software Foundation in
+version 2.2 of Bison.])])
+
+
+## ---------------- ##
+## Error handling. ##
+## ---------------- ##
+
+# The following error handling macros print error directives that should not
+# become arguments of other macro invocations since they would likely then be
+# mangled. Thus, they print to stdout directly.
+
+# b4_cat(TEXT)
+# ------------
+# Write TEXT to stdout. Precede the final newline with an @ so that it's
+# escaped. For example:
+#
+# b4_cat([[@complain(invalid input@)]])
+m4_define([b4_cat],
+[m4_syscmd([cat <<'_m4eof'
+]m4_bpatsubst(m4_dquote($1), [_m4eof], [_m4@`eof])[@
+_m4eof
+])dnl
+m4_if(m4_sysval, [0], [], [m4_fatal([$0: cannot write to stdout])])])
+
+# b4_error(KIND, FORMAT, [ARG1], [ARG2], ...)
+# -------------------------------------------
+# Write @KIND(FORMAT@,ARG1@,ARG2@,...@) to stdout.
+#
+# For example:
+#
+# b4_error([[warn]], [[invalid value for `%s': %s]], [[foo]], [[3]])
+m4_define([b4_error],
+[b4_cat([[@]$1[(]$2[]]dnl
+[m4_if([$#], [2], [],
+ [m4_foreach([b4_arg],
+ m4_dquote(m4_shift(m4_shift($@))),
+ [[@,]b4_arg])])[@)]])])
+
+# b4_error_at(KIND, START, END, FORMAT, [ARG1], [ARG2], ...)
+# ----------------------------------------------------------
+# Write @KIND_at(START@,END@,FORMAT@,ARG1@,ARG2@,...@) to stdout.
+#
+# For example:
+#
+# b4_error_at([[complain]], [[input.y:2.3]], [[input.y:5.4]],
+# [[invalid %s]], [[foo]])
+m4_define([b4_error_at],
+[b4_cat([[@]$1[_at(]$2[@,]$3[@,]$4[]]dnl
+[m4_if([$#], [4], [],
+ [m4_foreach([b4_arg],
+ m4_dquote(m4_shift(m4_shift(m4_shift(m4_shift($@))))),
+ [[@,]b4_arg])])[@)]])])
+
+# b4_warn(FORMAT, [ARG1], [ARG2], ...)
+# ------------------------------------
+# Write @warn(FORMAT@,ARG1@,ARG2@,...@) to stdout.
+#
+# For example:
+#
+# b4_warn([[invalid value for `%s': %s]], [[foo]], [[3]])
+#
+# As a simple test suite, this:
+#
+# m4_divert(-1)
+# m4_define([asdf], [ASDF])
+# m4_define([fsa], [FSA])
+# m4_define([fdsa], [FDSA])
+# b4_warn([[[asdf), asdf]]], [[[fsa), fsa]]], [[[fdsa), fdsa]]])
+# b4_warn([[asdf), asdf]], [[fsa), fsa]], [[fdsa), fdsa]])
+# b4_warn()
+# b4_warn(1)
+# b4_warn(1, 2)
+#
+# Should produce this without newlines:
+#
+# @warn([asdf), asdf]@,[fsa), fsa]@,[fdsa), fdsa]@)
+# @warn(asdf), asdf@,fsa), fsa@,fdsa), fdsa@)
+# @warn(@)
+# @warn(1@)
+# @warn(1@,2@)
+m4_define([b4_warn],
+[b4_error([[warn]], $@)])
+
+# b4_warn_at(START, END, FORMAT, [ARG1], [ARG2], ...)
+# ---------------------------------------------------
+# Write @warn(START@,END@,FORMAT@,ARG1@,ARG2@,...@) to stdout.
+#
+# For example:
+#
+# b4_warn_at([[input.y:2.3]], [[input.y:5.4]], [[invalid %s]], [[foo]])
+m4_define([b4_warn_at],
+[b4_error_at([[warn]], $@)])
+
+# b4_complain(FORMAT, [ARG1], [ARG2], ...)
+# ----------------------------------------
+# Write @complain(FORMAT@,ARG1@,ARG2@,...@) to stdout.
+#
+# See b4_warn example.
+m4_define([b4_complain],
+[b4_error([[complain]], $@)])
+
+# b4_complain_at(START, END, FORMAT, [ARG1], [ARG2], ...)
+# -------------------------------------------------------
+# Write @complain(START@,END@,FORMAT@,ARG1@,ARG2@,...@) to stdout.
+#
+# See b4_warn_at example.
+m4_define([b4_complain_at],
+[b4_error_at([[complain]], $@)])
+
+# b4_fatal(FORMAT, [ARG1], [ARG2], ...)
+# -------------------------------------
+# Write @fatal(FORMAT@,ARG1@,ARG2@,...@) to stdout and exit.
+#
+# See b4_warn example.
+m4_define([b4_fatal],
+[b4_error([[fatal]], $@)dnl
+m4_exit(1)])
+
+# b4_fatal_at(START, END, FORMAT, [ARG1], [ARG2], ...)
+# ----------------------------------------------------
+# Write @fatal(START@,END@,FORMAT@,ARG1@,ARG2@,...@) to stdout and exit.
+#
+# See b4_warn_at example.
+m4_define([b4_fatal_at],
+[b4_error_at([[fatal]], $@)dnl
+m4_exit(1)])
+
+
+## ---------------- ##
+## Default values. ##
+## ---------------- ##
+
+# m4_define_default([b4_lex_param], []) dnl breaks other skeletons
+m4_define_default([b4_pre_prologue], [])
+m4_define_default([b4_post_prologue], [])
+m4_define_default([b4_epilogue], [])
+m4_define_default([b4_parse_param], [])
+
+# The initial column and line.
+m4_define_default([b4_location_initial_column], [1])
+m4_define_default([b4_location_initial_line], [1])
+
+
+## ------------ ##
+## Data Types. ##
+## ------------ ##
+
+# b4_ints_in(INT1, INT2, LOW, HIGH)
+# ---------------------------------
+# Return 1 iff both INT1 and INT2 are in [LOW, HIGH], 0 otherwise.
+m4_define([b4_ints_in],
+[m4_eval([$3 <= $1 && $1 <= $4 && $3 <= $2 && $2 <= $4])])
+
+
+
+## ------------------ ##
+## Decoding options. ##
+## ------------------ ##
+
+# b4_flag_if(FLAG, IF-TRUE, IF-FALSE)
+# -----------------------------------
+# Run IF-TRUE if b4_FLAG_flag is 1, IF-FALSE if FLAG is 0, otherwise fail.
+m4_define([b4_flag_if],
+[m4_case(b4_$1_flag,
+ [0], [$3],
+ [1], [$2],
+ [m4_fatal([invalid $1 value: ]$1)])])
+
+
+# b4_define_flag_if(FLAG)
+# -----------------------
+# Define "b4_FLAG_if(IF-TRUE, IF-FALSE)" that depends on the
+# value of the Boolean FLAG.
+m4_define([b4_define_flag_if],
+[_b4_define_flag_if($[1], $[2], [$1])])
+
+# _b4_define_flag_if($1, $2, FLAG)
+# --------------------------------
+# This macro works around the impossibility to define macros
+# inside macros, because issuing `[$1]' is not possible in M4 :(.
+# This sucks hard, GNU M4 should really provide M5 like $$1.
+m4_define([_b4_define_flag_if],
+[m4_if([$1$2], $[1]$[2], [],
+ [m4_fatal([$0: Invalid arguments: $@])])dnl
+m4_define([b4_$3_if],
+ [b4_flag_if([$3], [$1], [$2])])])
+
+
+# b4_FLAG_if(IF-TRUE, IF-FALSE)
+# -----------------------------
+# Expand IF-TRUE, if FLAG is true, IF-FALSE otherwise.
+b4_define_flag_if([defines]) # Whether headers are requested.
+b4_define_flag_if([error_verbose]) # Whether error are verbose.
+b4_define_flag_if([glr]) # Whether a GLR parser is requested.
+b4_define_flag_if([locations]) # Whether locations are tracked.
+b4_define_flag_if([nondeterministic]) # Whether conflicts should be handled.
+b4_define_flag_if([yacc]) # Whether POSIX Yacc is emulated.
+
+
+## ------------------------- ##
+## Assigning token numbers. ##
+## ------------------------- ##
+
+
+## ----------- ##
+## Synclines. ##
+## ----------- ##
+
+# b4_basename(NAME)
+# -----------------
+# Similar to POSIX basename; the differences don't matter here.
+# Beware that NAME is not evaluated.
+m4_define([b4_basename],
+[m4_bpatsubst([$1], [^.*/\([^/]+\)/*$], [\1])])
+
+
+# b4_syncline(LINE, FILE)
+# -----------------------
+m4_define([b4_syncline],
+[b4_flag_if([synclines], [
+b4_sync_end([__line__], [b4_basename(m4_quote(__file__))])
+b4_sync_start([$1], [$2])])])
+
+m4_define([b4_sync_end], [b4_comment([Line $1 of $2])])
+m4_define([b4_sync_start], [b4_comment([Line $1 of $2])])
+
+# b4_user_code(USER-CODE)
+# -----------------------
+# Emit code from the user, ending it with synclines.
+m4_define([b4_user_code],
+[$1
+b4_syncline([@oline@], [@ofile@])])
+
+
+# b4_define_user_code(MACRO)
+# --------------------------
+# From b4_MACRO, build b4_user_MACRO that includes the synclines.
+m4_define([b4_define_user_code],
+[m4_define([b4_user_$1],
+[b4_user_code([b4_$1])])])
+
+
+# b4_user_actions
+# b4_user_initial_action
+# b4_user_post_prologue
+# b4_user_pre_prologue
+# b4_user_stype
+# ----------------------
+# Macros that issue user code, ending with synclines.
+b4_define_user_code([actions])
+b4_define_user_code([initial_action])
+b4_define_user_code([post_prologue])
+b4_define_user_code([pre_prologue])
+b4_define_user_code([stype])
+
+
+# b4_check_user_names(WHAT, USER-LIST, BISON-NAMESPACE)
+# --------------------------------------------------------
+# Warn if any name of type WHAT is used by the user (as recorded in USER-LIST)
+# but is not used by Bison (as recorded by macros in the namespace
+# BISON-NAMESPACE).
+#
+# USER-LIST must expand to a list specifying all grammar occurrences of all
+# names of type WHAT. Each item in the list must be a triplet specifying one
+# occurrence: name, start boundary, and end boundary. Empty string names are
+# fine. An empty list is fine.
+#
+# For example, to define b4_foo_user_names to be used for USER-LIST with three
+# name occurrences and with correct quoting:
+#
+# m4_define([b4_foo_user_names],
+# [[[[[[bar]], [[parser.y:1.7]], [[parser.y:1.16]]]],
+# [[[[bar]], [[parser.y:5.7]], [[parser.y:5.16]]]],
+# [[[[baz]], [[parser.y:8.7]], [[parser.y:8.16]]]]]])
+#
+# The macro BISON-NAMESPACE(bar) must be defined iff the name bar of type WHAT
+# is used by Bison (in the front-end or in the skeleton). Empty string names
+# are fine, but it would be ugly for Bison to actually use one.
+#
+# For example, to use b4_foo_bison_names for BISON-NAMESPACE and define that
+# the names bar and baz are used by Bison:
+#
+# m4_define([b4_foo_bison_names(bar)])
+# m4_define([b4_foo_bison_names(baz)])
+#
+# To invoke b4_check_user_names with TYPE foo, with USER-LIST
+# b4_foo_user_names, with BISON-NAMESPACE b4_foo_bison_names, and with correct
+# quoting:
+#
+# b4_check_user_names([[foo]], [b4_foo_user_names],
+# [[b4_foo_bison_names]])
+m4_define([b4_check_user_names],
+[m4_foreach([b4_occurrence], $2,
+[m4_pushdef([b4_occurrence], b4_occurrence)dnl
+m4_pushdef([b4_user_name], m4_car(b4_occurrence))dnl
+m4_pushdef([b4_start], m4_car(m4_shift(b4_occurrence)))dnl
+m4_pushdef([b4_end], m4_shift(m4_shift(b4_occurrence)))dnl
+m4_ifndef($3[(]m4_quote(b4_user_name)[)],
+ [b4_warn_at([b4_start], [b4_end],
+ [[%s `%s' is not used]],
+ [$1], [b4_user_name])])[]dnl
+m4_popdef([b4_occurrence])dnl
+m4_popdef([b4_user_name])dnl
+m4_popdef([b4_start])dnl
+m4_popdef([b4_end])dnl
+])])
+
+# b4_percent_define_get(VARIABLE)
+# -------------------------------
+# Mimic muscle_percent_define_get in ../src/muscle_tab.h exactly. That is, if
+# the %define variable VARIABLE is defined, emit its value. Also, record
+# Bison's usage of VARIABLE by defining
+# b4_percent_define_bison_variables(VARIABLE).
+#
+# For example:
+#
+# b4_percent_define_get([[foo]])
+m4_define([b4_percent_define_get],
+[m4_define([b4_percent_define_bison_variables(]$1[)])dnl
+m4_ifdef([b4_percent_define(]$1[)], [m4_indir([b4_percent_define(]$1[)])])])
+
+# b4_percent_define_get_loc(VARIABLE)
+# -----------------------------------
+# Mimic muscle_percent_define_get_loc in ../src/muscle_tab.h exactly. That is,
+# if the %define variable VARIABLE is undefined, complain fatally since that's
+# a Bison or skeleton error. Otherwise, return its definition location in a
+# form approriate for the first two arguments of b4_warn_at, b4_complain_at, or
+# b4_fatal_at. Don't record this as a Bison usage of VARIABLE as there's no
+# reason to suspect that the user-supplied value has yet influenced the output.
+#
+# For example:
+#
+# b4_complain_at(b4_percent_define_get_loc([[foo]]), [[invalid foo]])
+m4_define([b4_percent_define_get_loc],
+[m4_ifdef([b4_percent_define_loc(]$1[)],
+ [m4_pushdef([b4_loc], m4_indir([b4_percent_define_loc(]$1[)]))dnl
+b4_loc[]dnl
+m4_popdef([b4_loc])],
+ [b4_fatal([[undefined %%define variable `%s' passed to b4_percent_define_get_loc]], [$1])])])
+
+# b4_percent_define_get_syncline(VARIABLE)
+# ----------------------------------------
+# Mimic muscle_percent_define_get_syncline in ../src/muscle_tab.h exactly.
+# That is, if the %define variable VARIABLE is undefined, complain fatally
+# since that's a Bison or skeleton error. Otherwise, return its definition
+# location as a b4_syncline invocation. Don't record this as a Bison usage of
+# VARIABLE as there's no reason to suspect that the user-supplied value has yet
+# influenced the output.
+#
+# For example:
+#
+# b4_percent_define_get_syncline([[foo]])
+m4_define([b4_percent_define_get_syncline],
+[m4_ifdef([b4_percent_define_syncline(]$1[)],
+ [m4_indir([b4_percent_define_syncline(]$1[)])],
+ [b4_fatal([[undefined %%define variable `%s' passed to b4_percent_define_get_syncline]], [$1])])])
+
+# b4_percent_define_ifdef(VARIABLE, IF-TRUE, [IF-FALSE])
+# ------------------------------------------------------
+# Mimic muscle_percent_define_ifdef in ../src/muscle_tab.h exactly. That is,
+# if the %define variable VARIABLE is defined, expand IF-TRUE, else expand
+# IF-FALSE. Also, record Bison's usage of VARIABLE by defining
+# b4_percent_define_bison_variables(VARIABLE).
+#
+# For example:
+#
+# b4_percent_define_ifdef([[foo]], [[it's defined]], [[it's undefined]])
+m4_define([b4_percent_define_ifdef],
+[m4_ifdef([b4_percent_define(]$1[)],
+ [m4_define([b4_percent_define_bison_variables(]$1[)])$2],
+ [$3])])
+
+# b4_percent_define_flag_if(VARIABLE, IF-TRUE, [IF-FALSE])
+# --------------------------------------------------------
+# Mimic muscle_percent_define_flag_if in ../src/muscle_tab.h exactly. That is,
+# if the %define variable VARIABLE is defined to "" or "true", expand IF-TRUE.
+# If it is defined to "false", expand IF-FALSE. Complain if it is undefined
+# (a Bison or skeleton error since the default value should have been set
+# already) or defined to any other value (possibly a user error). Also, record
+# Bison's usage of VARIABLE by defining
+# b4_percent_define_bison_variables(VARIABLE).
+#
+# For example:
+#
+# b4_percent_define_flag_if([[foo]], [[it's true]], [[it's false]])
+m4_define([b4_percent_define_flag_if],
+[b4_percent_define_ifdef([$1],
+ [m4_case(b4_percent_define_get([$1]),
+ [], [$2], [true], [$2], [false], [$3],
+ [m4_expand_once([b4_complain_at(b4_percent_define_get_loc([$1]),
+ [[invalid value for %%define Boolean variable `%s']],
+ [$1])],
+ [[b4_percent_define_flag_if($1)]])])],
+ [b4_fatal([[undefined %%define variable `%s' passed to b4_percent_define_flag_if]], [$1])])])
+
+# b4_percent_define_default(VARIABLE, DEFAULT)
+# --------------------------------------------
+# Mimic muscle_percent_define_default in ../src/muscle_tab.h exactly. That is,
+# if the %define variable VARIABLE is undefined, set its value to DEFAULT.
+# Don't record this as a Bison usage of VARIABLE as there's no reason to
+# suspect that the value has yet influenced the output.
+#
+# For example:
+#
+# b4_percent_define_default([[foo]], [[default value]])
+m4_define([b4_percent_define_default],
+[m4_ifndef([b4_percent_define(]$1[)],
+ [m4_define([b4_percent_define(]$1[)], [$2])dnl
+ m4_define([b4_percent_define_loc(]$1[)],
+ [[[[[Bison:b4_percent_define_default]:1.0]], [[[Bison:b4_percent_define_default]:1.0]]]])dnl
+ m4_define([b4_percent_define_syncline(]$1[)],
+ [[]b4_syncline(1, [["[Bison:b4_percent_define_default]"]])[
+]])])])
+
+# b4_percent_define_check_values(VALUES)
+# --------------------------------------
+# Mimic muscle_percent_define_check_values in ../src/muscle_tab.h exactly
+# except that the VALUES structure is more appropriate for M4. That is, VALUES
+# is a list of sublists of strings. For each sublist, the first string is the
+# name of a %define variable, and all remaining strings in that sublist are the
+# valid values for that variable. Complain if such a variable is undefined (a
+# Bison error since the default value should have been set already) or defined
+# to any other value (possibly a user error). Don't record this as a Bison
+# usage of the variable as there's no reason to suspect that the value has yet
+# influenced the output.
+#
+# For example:
+#
+# b4_percent_define_check_values([[[[foo]], [[foo-value1]], [[foo-value2]]]],
+# [[[[bar]], [[bar-value1]]]])
+m4_define([b4_percent_define_check_values],
+[m4_foreach([b4_sublist], m4_quote($@),
+ [_b4_percent_define_check_values(b4_sublist)])])
+
+m4_define([_b4_percent_define_check_values],
+[m4_ifdef([b4_percent_define(]$1[)],
+ [m4_pushdef([b4_good_value], [0])dnl
+ m4_if($#, 1, [],
+ [m4_foreach([b4_value], m4_dquote(m4_shift($@)),
+ [m4_if(m4_indir([b4_percent_define(]$1[)]), b4_value,
+ [m4_define([b4_good_value], [1])])])])dnl
+ m4_if(b4_good_value, [0],
+ [b4_complain_at(b4_percent_define_get_loc([$1]),
+ [[invalid value for %%define variable `%s': `%s']],
+ [$1],
+ m4_dquote(m4_indir([b4_percent_define(]$1[)])))])dnl
+ m4_popdef([b4_good_value])],
+ [b4_fatal([[undefined %%define variable `%s' passed to b4_percent_define_check_values]], [$1])])])
+
+# b4_percent_code_get([QUALIFIER])
+# --------------------------------
+# If any %code blocks for QUALIFIER are defined, emit them beginning with a
+# comment and ending with synclines and a newline. If QUALIFIER is not
+# specified or empty, do this for the unqualified %code blocks. Also, record
+# Bison's usage of QUALIFIER (if specified) by defining
+# b4_percent_code_bison_qualifiers(QUALIFIER).
+#
+# For example, to emit any unqualified %code blocks followed by any %code
+# blocks for the qualifier foo:
+#
+# b4_percent_code_get
+# b4_percent_code_get([[foo]])
+m4_define([b4_percent_code_get],
+[m4_pushdef([b4_macro_name], [[b4_percent_code(]$1[)]])dnl
+m4_ifval([$1], [m4_define([b4_percent_code_bison_qualifiers(]$1[)])])dnl
+m4_ifdef(b4_macro_name,
+[b4_comment([m4_if([$#], [0], [[Unqualified %code]],
+ [["%code ]$1["]])[ blocks.]])
+b4_user_code([m4_indir(b4_macro_name)])
+])dnl
+m4_popdef([b4_macro_name])])
+
+# b4_percent_code_ifdef(QUALIFIER, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------
+# If any %code blocks for QUALIFIER (or unqualified %code blocks if
+# QUALIFIER is empty) are defined, expand IF-TRUE, else expand IF-FALSE.
+# Also, record Bison's usage of QUALIFIER (if specified) by defining
+# b4_percent_code_bison_qualifiers(QUALIFIER).
+m4_define([b4_percent_code_ifdef],
+[m4_ifdef([b4_percent_code(]$1[)],
+ [m4_ifval([$1], [m4_define([b4_percent_code_bison_qualifiers(]$1[)])])$2],
+ [$3])])
+
+
+## ----------------------------------------------------------- ##
+## After processing the skeletons, check that all the user's ##
+## %define variables and %code qualifiers were used by Bison. ##
+## ----------------------------------------------------------- ##
+
+m4_define([b4_check_user_names_wrap],
+[m4_ifdef([b4_percent_]$1[_user_]$2[s],
+ [b4_check_user_names([[%]$1 $2],
+ [b4_percent_]$1[_user_]$2[s],
+ [[b4_percent_]$1[_bison_]$2[s]])])])
+
+m4_wrap_lifo([
+b4_check_user_names_wrap([[define]], [[variable]])
+b4_check_user_names_wrap([[code]], [[qualifier]])
+])
diff --git a/tools/mhmake/src/bisondata/c++.m4 b/tools/mhmake/src/bisondata/c++.m4
new file mode 100644
index 000000000..a27064d7b
--- /dev/null
+++ b/tools/mhmake/src/bisondata/c++.m4
@@ -0,0 +1,170 @@
+ -*- Autoconf -*-
+
+# C++ skeleton for Bison
+
+# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation,
+# Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+m4_include(b4_pkgdatadir/[c.m4])
+
+## ---------------- ##
+## Default values. ##
+## ---------------- ##
+
+# Default parser class name.
+b4_percent_define_default([[parser_class_name]], [[parser]])
+b4_percent_define_default([[location_type]], [[location]])
+b4_percent_define_default([[filename_type]], [[std::string]])
+b4_percent_define_default([[namespace]], m4_defn([b4_prefix]))
+b4_percent_define_default([[global_tokens_and_yystype]], [[false]])
+b4_percent_define_default([[define_location_comparison]],
+ [m4_if(b4_percent_define_get([[filename_type]]),
+ [std::string], [[true]], [[false]])])
+
+
+## ----------- ##
+## Namespace. ##
+## ----------- ##
+
+m4_define([b4_namespace_ref], [b4_percent_define_get([[namespace]])])
+
+# Don't permit an empty b4_namespace_ref. Any `::parser::foo' appended to it
+# would compile as an absolute reference with `parser' in the global namespace.
+# b4_namespace_open would open an anonymous namespace and thus establish
+# internal linkage. This would compile. However, it's cryptic, and internal
+# linkage for the parser would be specified in all translation units that
+# include the header, which is always generated. If we ever need to permit
+# internal linkage somehow, surely we can find a cleaner approach.
+m4_if(m4_bregexp(b4_namespace_ref, [^[ ]*$]), [-1], [],
+[b4_complain_at(b4_percent_define_get_loc([[namespace]]),
+ [[namespace reference is empty]])])
+
+# Instead of assuming the C++ compiler will do it, Bison should reject any
+# invalid b4_namepsace_ref that would be converted to a valid
+# b4_namespace_open. The problem is that Bison doesn't always output
+# b4_namespace_ref to uncommented code but should reserve the ability to do so
+# in future releases without risking breaking any existing user grammars.
+# Specifically, don't allow empty names as b4_namespace_open would just convert
+# those into anonymous namespaces, and that might tempt some users.
+m4_if(m4_bregexp(b4_namespace_ref, [::[ ]*::]), [-1], [],
+[b4_complain_at(b4_percent_define_get_loc([[namespace]]),
+ [[namespace reference has consecutive "::"]])])
+m4_if(m4_bregexp(b4_namespace_ref, [::[ ]*$]), [-1], [],
+[b4_complain_at(b4_percent_define_get_loc([[namespace]]),
+ [[namespace reference has a trailing "::"]])])
+
+m4_define([b4_namespace_open],
+[b4_user_code([b4_percent_define_get_syncline([[namespace]])
+[namespace ]m4_bpatsubst(m4_dquote(m4_bpatsubst(m4_dquote(b4_namespace_ref),
+ [^\(.\)[ ]*::], [\1])),
+ [::], [ { namespace ])[ {]])])
+
+m4_define([b4_namespace_close],
+[b4_user_code([b4_percent_define_get_syncline([[namespace]])
+m4_bpatsubst(m4_dquote(m4_bpatsubst(m4_dquote(b4_namespace_ref),
+ [^\(.\)[ ]*\(::\)?\([^][:]\|:[^][:]\)*],
+ [\1])),
+ [::\([^][:]\|:[^][:]\)*], [} ])[} // ]b4_namespace_ref])])
+
+
+# b4_token_enums(LIST-OF-PAIRS-TOKEN-NAME-TOKEN-NUMBER)
+# -----------------------------------------------------
+# Output the definition of the tokens as enums.
+m4_define([b4_token_enums],
+[/* Tokens. */
+ enum yytokentype {
+m4_map_sep([ b4_token_enum], [,
+],
+ [$@])
+ };
+])
+
+
+## ----------------- ##
+## Semantic Values. ##
+## ----------------- ##
+
+
+# b4_lhs_value([TYPE])
+# --------------------
+# Expansion of $<TYPE>$.
+m4_define([b4_lhs_value],
+[(yyval[]m4_ifval([$1], [.$1]))])
+
+
+# b4_rhs_value(RULE-LENGTH, NUM, [TYPE])
+# --------------------------------------
+# Expansion of $<TYPE>NUM, where the current rule has RULE-LENGTH
+# symbols on RHS.
+m4_define([b4_rhs_value],
+[(yysemantic_stack_@{($1) - ($2)@}m4_ifval([$3], [.$3]))])
+
+# b4_lhs_location()
+# -----------------
+# Expansion of @$.
+m4_define([b4_lhs_location],
+[(yyloc)])
+
+
+# b4_rhs_location(RULE-LENGTH, NUM)
+# ---------------------------------
+# Expansion of @NUM, where the current rule has RULE-LENGTH symbols
+# on RHS.
+m4_define([b4_rhs_location],
+[(yylocation_stack_@{($1) - ($2)@})])
+
+
+# b4_parse_param_decl
+# -------------------
+# Extra formal arguments of the constructor.
+# Change the parameter names from "foo" into "foo_yyarg", so that
+# there is no collision bw the user chosen attribute name, and the
+# argument name in the constructor.
+m4_define([b4_parse_param_decl],
+[m4_ifset([b4_parse_param],
+ [m4_map_sep([b4_parse_param_decl_1], [, ], [b4_parse_param])])])
+
+m4_define([b4_parse_param_decl_1],
+[$1_yyarg])
+
+
+
+# b4_parse_param_cons
+# -------------------
+# Extra initialisations of the constructor.
+m4_define([b4_parse_param_cons],
+ [m4_ifset([b4_parse_param],
+ [
+ b4_cc_constructor_calls(b4_parse_param)])])
+m4_define([b4_cc_constructor_calls],
+ [m4_map_sep([b4_cc_constructor_call], [,
+ ], [$@])])
+m4_define([b4_cc_constructor_call],
+ [$2 ($2_yyarg)])
+
+# b4_parse_param_vars
+# -------------------
+# Extra instance variables.
+m4_define([b4_parse_param_vars],
+ [m4_ifset([b4_parse_param],
+ [
+ /* User arguments. */
+b4_cc_var_decls(b4_parse_param)])])
+m4_define([b4_cc_var_decls],
+ [m4_map_sep([b4_cc_var_decl], [
+], [$@])])
+m4_define([b4_cc_var_decl],
+ [ $1;])
diff --git a/tools/mhmake/src/bisondata/c-skel.m4 b/tools/mhmake/src/bisondata/c-skel.m4
new file mode 100644
index 000000000..91f3c2052
--- /dev/null
+++ b/tools/mhmake/src/bisondata/c-skel.m4
@@ -0,0 +1,25 @@
+ -*- Autoconf -*-
+
+# C skeleton dispatching for Bison.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+b4_glr_if( [m4_define([b4_used_skeleton], [b4_pkgdatadir/[glr.c]])])
+b4_nondeterministic_if([m4_define([b4_used_skeleton], [b4_pkgdatadir/[glr.c]])])
+
+m4_define_default([b4_used_skeleton], [b4_pkgdatadir/[yacc.c]])
+m4_define_default([b4_skeleton], ["b4_basename(b4_used_skeleton)"])
+
+m4_include(b4_used_skeleton)
diff --git a/tools/mhmake/src/bisondata/c.m4 b/tools/mhmake/src/bisondata/c.m4
new file mode 100644
index 000000000..2b44b7e49
--- /dev/null
+++ b/tools/mhmake/src/bisondata/c.m4
@@ -0,0 +1,477 @@
+ -*- Autoconf -*-
+
+# C M4 Macros for Bison.
+# Copyright (C) 2002, 2004, 2005, 2006, 2007, 2008 Free Software
+# Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+## ---------------- ##
+## Identification. ##
+## ---------------- ##
+
+# b4_comment(TEXT)
+# ----------------
+m4_define([b4_comment], [/* m4_bpatsubst([$1], [
+], [
+ ]) */])
+
+# b4_identification
+# -----------------
+# Depends on individual skeletons to define b4_pure_flag, b4_push_flag, or
+# b4_pull_flag if they use the values of the %define variables api.pure or
+# api.push_pull.
+m4_define([b4_identification],
+[[/* Identify Bison output. */
+#define YYBISON 1
+
+/* Bison version. */
+#define YYBISON_VERSION "]b4_version["
+
+/* Skeleton name. */
+#define YYSKELETON_NAME ]b4_skeleton[]m4_ifdef([b4_pure_flag], [[
+
+/* Pure parsers. */
+#define YYPURE ]b4_pure_flag])[]m4_ifdef([b4_push_flag], [[
+
+/* Push parsers. */
+#define YYPUSH ]b4_push_flag])[]m4_ifdef([b4_pull_flag], [[
+
+/* Pull parsers. */
+#define YYPULL ]b4_pull_flag])[
+
+/* Using locations. */
+#define YYLSP_NEEDED ]b4_locations_flag[
+]])
+
+
+## ---------------- ##
+## Default values. ##
+## ---------------- ##
+
+# If the %union is not named, its name is YYSTYPE.
+m4_define_default([b4_union_name], [YYSTYPE])
+
+# If the %name-prefix is not given, it is yy.
+m4_define_default([b4_prefix], [yy])
+
+## ------------------------ ##
+## Pure/impure interfaces. ##
+## ------------------------ ##
+
+# b4_user_args
+# ------------
+m4_define([b4_user_args],
+[m4_ifset([b4_parse_param], [, b4_c_args(b4_parse_param)])])
+
+
+# b4_parse_param
+# --------------
+# If defined, b4_parse_param arrives double quoted, but below we prefer
+# it to be single quoted.
+m4_define([b4_parse_param],
+b4_parse_param)
+
+
+# b4_parse_param_for(DECL, FORMAL, BODY)
+# ---------------------------------------
+# Iterate over the user parameters, binding the declaration to DECL,
+# the formal name to FORMAL, and evaluating the BODY.
+m4_define([b4_parse_param_for],
+[m4_foreach([$1_$2], m4_defn([b4_parse_param]),
+[m4_pushdef([$1], m4_unquote(m4_car($1_$2)))dnl
+m4_pushdef([$2], m4_shift($1_$2))dnl
+$3[]dnl
+m4_popdef([$2])dnl
+m4_popdef([$1])dnl
+])])
+
+# b4_parse_param_use
+# ------------------
+# `YYUSE' all the parse-params.
+m4_define([b4_parse_param_use],
+[b4_parse_param_for([Decl], [Formal], [ YYUSE (Formal);
+])dnl
+])
+
+
+## ------------ ##
+## Data Types. ##
+## ------------ ##
+
+# b4_int_type(MIN, MAX)
+# ---------------------
+# Return the smallest int type able to handle numbers ranging from
+# MIN to MAX (included).
+m4_define([b4_int_type],
+[m4_if(b4_ints_in($@, [0], [255]), [1], [unsigned char],
+ b4_ints_in($@, [-128], [127]), [1], [signed char],
+
+ b4_ints_in($@, [0], [65535]), [1], [unsigned short int],
+ b4_ints_in($@, [-32768], [32767]), [1], [short int],
+
+ m4_eval([0 <= $1]), [1], [unsigned int],
+
+ [int])])
+
+
+# b4_int_type_for(NAME)
+# ---------------------
+# Return the smallest int type able to handle numbers ranging from
+# `NAME_min' to `NAME_max' (included).
+m4_define([b4_int_type_for],
+[b4_int_type($1_min, $1_max)])
+
+
+
+## ---------##
+## Values. ##
+## ---------##
+
+# b4_null
+---------
+# Return a null pointer constant. NULL infringes on the user name
+# space in C, so use 0 rather than NULL.
+m4_define([b4_null], [0])
+
+
+
+
+## ------------------------- ##
+## Assigning token numbers. ##
+## ------------------------- ##
+
+# b4_token_define(TOKEN-NAME, TOKEN-NUMBER)
+# -----------------------------------------
+# Output the definition of this token as #define.
+m4_define([b4_token_define],
+[#define $1 $2
+])
+
+
+# b4_token_defines(LIST-OF-PAIRS-TOKEN-NAME-TOKEN-NUMBER)
+# -------------------------------------------------------
+# Output the definition of the tokens (if there are) as #defines.
+m4_define([b4_token_defines],
+[m4_if([$#$1], [1], [],
+[/* Tokens. */
+m4_map([b4_token_define], [$@])])
+])
+
+
+# b4_token_enum(TOKEN-NAME, TOKEN-NUMBER)
+# ---------------------------------------
+# Output the definition of this token as an enum.
+m4_define([b4_token_enum],
+[$1 = $2])
+
+
+# b4_token_enums(LIST-OF-PAIRS-TOKEN-NAME-TOKEN-NUMBER)
+# -----------------------------------------------------
+# Output the definition of the tokens (if there are) as enums.
+m4_define([b4_token_enums],
+[m4_if([$#$1], [1], [],
+[/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+m4_map_sep([ b4_token_enum], [,
+],
+ [$@])
+ };
+#endif
+])])
+
+
+# b4_token_enums_defines(LIST-OF-PAIRS-TOKEN-NAME-TOKEN-NUMBER)
+# -------------------------------------------------------------
+# Output the definition of the tokens (if there are any) as enums and, if POSIX
+# Yacc is enabled, as #defines.
+m4_define([b4_token_enums_defines],
+[b4_token_enums($@)b4_yacc_if([b4_token_defines($@)], [])
+])
+
+
+
+## --------------------------------------------- ##
+## Defining C functions in both K&R and ANSI-C. ##
+## --------------------------------------------- ##
+
+
+# b4_modern_c
+# -----------
+# A predicate useful in #if to determine whether C is ancient or modern.
+#
+# If __STDC__ is defined, the compiler is modern. IBM xlc 7.0 when run
+# as 'cc' doesn't define __STDC__ (or __STDC_VERSION__) for pedantic
+# reasons, but it defines __C99__FUNC__ so check that as well.
+# Microsoft C normally doesn't define these macros, but it defines _MSC_VER.
+# Consider a C++ compiler to be modern if it defines __cplusplus.
+#
+m4_define([b4_c_modern],
+ [[(defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)]])
+
+# b4_c_function_def(NAME, RETURN-VALUE, [DECL1, NAME1], ...)
+# ----------------------------------------------------------
+# Declare the function NAME.
+m4_define([b4_c_function_def],
+[#if b4_c_modern
+b4_c_ansi_function_def($@)
+#else
+$2
+$1 (b4_c_knr_formal_names(m4_shift2($@)))
+b4_c_knr_formal_decls(m4_shift2($@))
+#endif[]dnl
+])
+
+
+# b4_c_ansi_function_def(NAME, RETURN-VALUE, [DECL1, NAME1], ...)
+# ---------------------------------------------------------------
+# Declare the function NAME in ANSI.
+m4_define([b4_c_ansi_function_def],
+[$2
+$1 (b4_c_ansi_formals(m4_shift2($@)))[]dnl
+])
+
+
+# b4_c_ansi_formals([DECL1, NAME1], ...)
+# --------------------------------------
+# Output the arguments ANSI-C definition.
+m4_define([b4_c_ansi_formals],
+[m4_if([$#], [0], [void],
+ [$#$1], [1], [void],
+ [m4_map_sep([b4_c_ansi_formal], [, ], [$@])])])
+
+m4_define([b4_c_ansi_formal],
+[$1])
+
+
+# b4_c_knr_formal_names([DECL1, NAME1], ...)
+# ------------------------------------------
+# Output the argument names.
+m4_define([b4_c_knr_formal_names],
+[m4_map_sep([b4_c_knr_formal_name], [, ], [$@])])
+
+m4_define([b4_c_knr_formal_name],
+[$2])
+
+
+# b4_c_knr_formal_decls([DECL1, NAME1], ...)
+# ------------------------------------------
+# Output the K&R argument declarations.
+m4_define([b4_c_knr_formal_decls],
+[m4_map_sep([b4_c_knr_formal_decl],
+ [
+],
+ [$@])])
+
+m4_define([b4_c_knr_formal_decl],
+[ $1;])
+
+
+
+## ------------------------------------------------------------ ##
+## Declaring (prototyping) C functions in both K&R and ANSI-C. ##
+## ------------------------------------------------------------ ##
+
+
+# b4_c_function_decl(NAME, RETURN-VALUE, [DECL1, NAME1], ...)
+# -----------------------------------------------------------
+# Declare the function NAME.
+m4_define([b4_c_function_decl],
+[#if defined __STDC__ || defined __cplusplus
+b4_c_ansi_function_decl($@)
+#else
+$2 $1 ();
+#endif[]dnl
+])
+
+
+# b4_c_ansi_function_decl(NAME, RETURN-VALUE, [DECL1, NAME1], ...)
+# ----------------------------------------------------------------
+# Declare the function NAME.
+m4_define([b4_c_ansi_function_decl],
+[$2 $1 (b4_c_ansi_formals(m4_shift2($@)));[]dnl
+])
+
+
+
+
+## --------------------- ##
+## Calling C functions. ##
+## --------------------- ##
+
+
+# b4_c_function_call(NAME, RETURN-VALUE, [DECL1, NAME1], ...)
+# -----------------------------------------------------------
+# Call the function NAME with arguments NAME1, NAME2 etc.
+m4_define([b4_c_function_call],
+[$1 (b4_c_args(m4_shift2($@)))[]dnl
+])
+
+
+# b4_c_args([DECL1, NAME1], ...)
+# ------------------------------
+# Output the arguments NAME1, NAME2...
+m4_define([b4_c_args],
+[m4_map_sep([b4_c_arg], [, ], [$@])])
+
+m4_define([b4_c_arg],
+[$2])
+
+
+## ----------- ##
+## Synclines. ##
+## ----------- ##
+
+# b4_sync_start(LINE, FILE)
+# -----------------------
+m4_define([b4_sync_start], [[#]line $1 $2])
+
+
+## -------------- ##
+## User actions. ##
+## -------------- ##
+
+# b4_case(LABEL, STATEMENTS)
+# --------------------------
+m4_define([b4_case],
+[ case $1:
+$2
+ break;])
+
+# b4_symbol_actions(FILENAME, LINENO,
+# SYMBOL-TAG, SYMBOL-NUM,
+# SYMBOL-ACTION, SYMBOL-TYPENAME)
+# -------------------------------------------------
+m4_define([b4_symbol_actions],
+[m4_pushdef([b4_dollar_dollar],
+ [m4_ifval([$6], [(yyvaluep->$6)], [(*yyvaluep)])])dnl
+m4_pushdef([b4_at_dollar], [(*yylocationp)])dnl
+ case $4: /* $3 */
+b4_syncline([$2], [$1])
+ $5;
+b4_syncline([@oline@], [@ofile@])
+ break;
+m4_popdef([b4_at_dollar])dnl
+m4_popdef([b4_dollar_dollar])dnl
+])
+
+
+# b4_yydestruct_generate(FUNCTION-DECLARATOR)
+# -------------------------------------------
+# Generate the "yydestruct" function, which declaration is issued using
+# FUNCTION-DECLARATOR, which may be "b4_c_ansi_function_def" for ISO C
+# or "b4_c_function_def" for K&R.
+m4_define_default([b4_yydestruct_generate],
+[[/*-----------------------------------------------.
+| Release the memory associated to this symbol. |
+`-----------------------------------------------*/
+
+/*ARGSUSED*/
+]$1([yydestruct],
+ [static void],
+ [[const char *yymsg], [yymsg]],
+ [[int yytype], [yytype]],
+ [[YYSTYPE *yyvaluep], [yyvaluep]][]dnl
+b4_locations_if( [, [[YYLTYPE *yylocationp], [yylocationp]]])[]dnl
+m4_ifset([b4_parse_param], [, b4_parse_param]))[
+{
+ YYUSE (yyvaluep);
+]b4_locations_if([ YYUSE (yylocationp);
+])dnl
+b4_parse_param_use[]dnl
+[
+ if (!yymsg)
+ yymsg = "Deleting";
+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+ switch (yytype)
+ {
+]m4_map([b4_symbol_actions], m4_defn([b4_symbol_destructors]))[
+ default:
+ break;
+ }
+}]dnl
+])
+
+
+# b4_yy_symbol_print_generate(FUNCTION-DECLARATOR)
+# ------------------------------------------------
+# Generate the "yy_symbol_print" function, which declaration is issued using
+# FUNCTION-DECLARATOR, which may be "b4_c_ansi_function_def" for ISO C
+# or "b4_c_function_def" for K&R.
+m4_define_default([b4_yy_symbol_print_generate],
+[[
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+/*ARGSUSED*/
+]$1([yy_symbol_value_print],
+ [static void],
+ [[FILE *yyoutput], [yyoutput]],
+ [[int yytype], [yytype]],
+ [[YYSTYPE const * const yyvaluep], [yyvaluep]][]dnl
+b4_locations_if([, [[YYLTYPE const * const yylocationp], [yylocationp]]])[]dnl
+m4_ifset([b4_parse_param], [, b4_parse_param]))[
+{
+ if (!yyvaluep)
+ return;
+]b4_locations_if([ YYUSE (yylocationp);
+])dnl
+b4_parse_param_use[]dnl
+[# ifdef YYPRINT
+ if (yytype < YYNTOKENS)
+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# else
+ YYUSE (yyoutput);
+# endif
+ switch (yytype)
+ {
+]m4_map([b4_symbol_actions], m4_defn([b4_symbol_printers]))dnl
+[ default:
+ break;
+ }
+}
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+]$1([yy_symbol_print],
+ [static void],
+ [[FILE *yyoutput], [yyoutput]],
+ [[int yytype], [yytype]],
+ [[YYSTYPE const * const yyvaluep], [yyvaluep]][]dnl
+b4_locations_if([, [[YYLTYPE const * const yylocationp], [yylocationp]]])[]dnl
+m4_ifset([b4_parse_param], [, b4_parse_param]))[
+{
+ if (yytype < YYNTOKENS)
+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+ else
+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+]b4_locations_if([ YY_LOCATION_PRINT (yyoutput, *yylocationp);
+ YYFPRINTF (yyoutput, ": ");
+])dnl
+[ yy_symbol_value_print (yyoutput, yytype, yyvaluep]dnl
+b4_locations_if([, yylocationp])[]b4_user_args[);
+ YYFPRINTF (yyoutput, ")");
+}]dnl
+])
diff --git a/tools/mhmake/src/bisondata/lalr1.cc b/tools/mhmake/src/bisondata/lalr1.cc
new file mode 100644
index 000000000..fdc033a1d
--- /dev/null
+++ b/tools/mhmake/src/bisondata/lalr1.cc
@@ -0,0 +1,1174 @@
+# C++ skeleton for Bison
+
+# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008
+# Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+m4_include(b4_pkgdatadir/[c++.m4])
+
+m4_define([b4_parser_class_name],
+ [b4_percent_define_get([[parser_class_name]])])
+
+m4_define([b4_parser_base_class_name],
+ [b4_percent_define_get([[parser_base_class_name]])])
+
+m4_define([b4_parser_class_constructor_init],
+ [b4_percent_define_get([[parser_class_constructor_init]])])
+
+m4_define([b4_parser_class_constructor_param],
+ [b4_percent_define_get([[parser_class_constructor_param]])])
+
+# The header is mandatory.
+b4_defines_if([],
+ [b4_fatal([b4_skeleton[: using %%defines is mandatory]])])
+
+# Backward compatibility.
+m4_define([b4_location_constructors])
+m4_include(b4_pkgdatadir/[location.cc])
+
+# We do want M4 expansion after # for CPP macros.
+m4_changecom()
+m4_divert_push(0)dnl
+b4_defines_if(
+[@output(b4_spec_defines_file@)
+b4_copyright([Skeleton interface for Bison LALR(1) parsers in C++],
+ [2002, 2003, 2004, 2005, 2006, 2007, 2008])
+dnl FIXME: This is wrong, we want computed header guards.
+[
+/* C++ LALR(1) parser skeleton written by Akim Demaille. */
+
+#ifndef PARSER_HEADER_H
+# define PARSER_HEADER_H
+
+]b4_percent_code_get([[requires]])[
+
+#include <string>
+#include <iostream>
+#include "stack.hh"
+
+]b4_namespace_open[
+ class position;
+ class location;
+]b4_namespace_close[
+
+#include "location.hh"
+
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG ]b4_debug_flag[
+#endif
+
+/* Enabling verbose error messages. */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE ]b4_error_verbose_flag[
+#endif
+
+/* Enabling the token table. */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE ]b4_token_table[
+#endif
+
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+ If N is 0, then set CURRENT to the empty location which ends
+ the previous symbol: RHS[0] (always defined). */
+
+#ifndef YYLLOC_DEFAULT
+# define YYLLOC_DEFAULT(Current, Rhs, N) \
+do { \
+ if (N) \
+ { \
+ (Current).begin = (Rhs)[1].begin; \
+ (Current).end = (Rhs)[N].end; \
+ } \
+ else \
+ { \
+ (Current).begin = (Current).end = (Rhs)[0].end; \
+ } \
+} while (false)
+#endif
+
+]b4_namespace_open[
+
+ /// A Bison parser.
+ class ]b4_parser_class_name[ : public ]b4_parser_base_class_name[
+ {
+ public:
+ /// Symbol semantic values.
+#ifndef YYSTYPE
+]m4_ifdef([b4_stype],
+[ union semantic_type
+ {
+b4_user_stype
+ };],
+[m4_if(b4_tag_seen_flag, 0,
+[[ typedef int semantic_type;]],
+[[ typedef YYSTYPE semantic_type;]])])[
+#else
+ typedef YYSTYPE semantic_type;
+#endif
+ /// Symbol locations.
+ typedef ]b4_percent_define_get([[location_type]])[ location_type;
+ /// Tokens.
+ struct token
+ {
+ ]b4_token_enums(b4_tokens)[
+ };
+ /// Token type.
+ typedef token::yytokentype token_type;
+
+ /// Build a parser object.
+ ]b4_parser_class_name[ (]b4_parse_param_decl[ ]b4_parser_class_constructor_param[ );
+ virtual ~]b4_parser_class_name[ ();
+
+ /// Parse.
+ /// \returns 0 iff parsing succeeded.
+ virtual int parse ();
+
+#if YYDEBUG
+ /// The current debugging stream.
+ std::ostream& debug_stream () const;
+ /// Set the current debugging stream.
+ void set_debug_stream (std::ostream &);
+
+ /// Type for debugging levels.
+ typedef int debug_level_type;
+ /// The current debugging level.
+ debug_level_type debug_level () const;
+ /// Set the current debugging level.
+ void set_debug_level (debug_level_type l);
+#endif
+
+ position *GetCurPos(void)
+ {
+ return &yylocation_stack_[1].begin;
+ }
+
+ private:
+ /// Report a syntax error.
+ /// \param loc where the syntax error is found.
+ /// \param msg a description of the syntax error.
+ virtual void error (const location_type& loc, const std::string& msg);
+
+ /// Generate an error message.
+ /// \param state the state where the error occurred.
+ /// \param tok the lookahead token.
+ virtual std::string yysyntax_error_ (int yystate]dnl
+b4_error_verbose_if([, int tok])[);
+
+#if YYDEBUG
+ /// \brief Report a symbol value on the debug stream.
+ /// \param yytype The token type.
+ /// \param yyvaluep Its semantic value.
+ /// \param yylocationp Its location.
+ virtual void yy_symbol_value_print_ (int yytype,
+ const semantic_type* yyvaluep,
+ const location_type* yylocationp);
+ /// \brief Report a symbol on the debug stream.
+ /// \param yytype The token type.
+ /// \param yyvaluep Its semantic value.
+ /// \param yylocationp Its location.
+ virtual void yy_symbol_print_ (int yytype,
+ const semantic_type* yyvaluep,
+ const location_type* yylocationp);
+#endif
+
+
+ /// State numbers.
+ typedef int state_type;
+ /// State stack type.
+ typedef stack<state_type> state_stack_type;
+ /// Semantic value stack type.
+ typedef stack<semantic_type> semantic_stack_type;
+ /// location stack type.
+ typedef stack<location_type> location_stack_type;
+
+ /// The state stack.
+ state_stack_type yystate_stack_;
+ /// The semantic value stack.
+ semantic_stack_type yysemantic_stack_;
+ /// The location stack.
+ location_stack_type yylocation_stack_;
+
+ /// Internal symbol numbers.
+ typedef ]b4_int_type_for([b4_translate])[ token_number_type;
+ /* Tables. */
+ /// For a state, the index in \a yytable_ of its portion.
+ static const ]b4_int_type_for([b4_pact])[ yypact_[];
+ static const ]b4_int_type(b4_pact_ninf, b4_pact_ninf)[ yypact_ninf_;
+
+ /// For a state, default rule to reduce.
+ /// Unless\a yytable_ specifies something else to do.
+ /// Zero means the default is an error.
+ static const ]b4_int_type_for([b4_defact])[ yydefact_[];
+
+ static const ]b4_int_type_for([b4_pgoto])[ yypgoto_[];
+ static const ]b4_int_type_for([b4_defgoto])[ yydefgoto_[];
+
+ /// What to do in a state.
+ /// \a yytable_[yypact_[s]]: what to do in state \a s.
+ /// - if positive, shift that token.
+ /// - if negative, reduce the rule which number is the opposite.
+ /// - if zero, do what YYDEFACT says.
+ static const ]b4_int_type_for([b4_table])[ yytable_[];
+ static const ]b4_int_type(b4_table_ninf, b4_table_ninf)[ yytable_ninf_;
+
+ static const ]b4_int_type_for([b4_check])[ yycheck_[];
+
+ /// For a state, its accessing symbol.
+ static const ]b4_int_type_for([b4_stos])[ yystos_[];
+
+ /// For a rule, its LHS.
+ static const ]b4_int_type_for([b4_r1])[ yyr1_[];
+ /// For a rule, its RHS length.
+ static const ]b4_int_type_for([b4_r2])[ yyr2_[];
+
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+ /// For a symbol, its name in clear.
+ static const char* const yytname_[];
+#endif
+
+#if YYERROR_VERBOSE
+ /// Convert the symbol name \a n to a form suitable for a diagnostic.
+ virtual std::string yytnamerr_ (const char *n);
+#endif
+
+#if YYDEBUG
+ /// A type to store symbol numbers and -1.
+ typedef ]b4_int_type_for([b4_rhs])[ rhs_number_type;
+ /// A `-1'-separated list of the rules' RHS.
+ static const rhs_number_type yyrhs_[];
+ /// For each rule, the index of the first RHS symbol in \a yyrhs_.
+ static const ]b4_int_type_for([b4_prhs])[ yyprhs_[];
+ /// For each rule, its source line number.
+ static const ]b4_int_type_for([b4_rline])[ yyrline_[];
+ /// For each scanner token number, its symbol number.
+ static const ]b4_int_type_for([b4_toknum])[ yytoken_number_[];
+ /// Report on the debug stream that the rule \a r is going to be reduced.
+ virtual void yy_reduce_print_ (int r);
+ /// Print the state stack on the debug stream.
+ virtual void yystack_print_ ();
+
+ /* Debugging. */
+ int yydebug_;
+ std::ostream* yycdebug_;
+#endif
+
+ /// Convert a scanner token number \a t to a symbol number.
+ token_number_type yytranslate_ (int t);
+
+ /// \brief Reclaim the memory associated to a symbol.
+ /// \param yymsg Why this token is reclaimed.
+ /// \param yytype The symbol type.
+ /// \param yyvaluep Its semantic value.
+ /// \param yylocationp Its location.
+ inline void yydestruct_ (const char* yymsg,
+ int yytype,
+ semantic_type* yyvaluep,
+ location_type* yylocationp);
+
+ /// Pop \a n symbols the three stacks.
+ inline void yypop_ (unsigned int n = 1);
+
+ /* Constants. */
+ static const int yyeof_;
+ /* LAST_ -- Last index in TABLE_. */
+ static const int yylast_;
+ static const int yynnts_;
+ static const int yyempty_;
+ static const int yyfinal_;
+ static const int yyterror_;
+ static const int yyerrcode_;
+ static const int yyntokens_;
+ static const unsigned int yyuser_token_number_max_;
+ static const token_number_type yyundef_token_;
+]b4_parse_param_vars[
+ };
+]b4_namespace_close[
+
+]b4_percent_define_flag_if([[global_tokens_and_yystype]],
+[b4_token_defines(b4_tokens)
+
+#ifndef YYSTYPE
+ /* Redirection for backward compatibility. */
+# define YYSTYPE b4_namespace_ref::b4_parser_class_name::semantic_type
+#endif
+])
+b4_percent_code_get([[provides]])[]dnl
+
+[#endif /* ! defined PARSER_HEADER_H */]
+])dnl
+@output(b4_parser_file_name@)
+b4_copyright([Skeleton implementation for Bison LALR(1) parsers in C++],
+ [2002, 2003, 2004, 2005, 2006, 2007, 2008])
+b4_percent_code_get([[top]])[]dnl
+m4_if(b4_prefix, [yy], [],
+[
+// Take the name prefix into account.
+#define yylex b4_prefix[]lex])[
+
+/* First part of user declarations. */
+]b4_user_pre_prologue
+
+b4_defines_if([[
+#include "@basename(]b4_spec_defines_file[@)"]])[
+
+/* User implementation prologue. */
+]b4_user_post_prologue
+b4_percent_code_get[]dnl
+
+[#ifndef YY_
+# if YYENABLE_NLS
+# if ENABLE_NLS
+# include <libintl.h> /* FIXME: INFRINGES ON USER NAME SPACE */
+# define YY_(msgid) dgettext ("bison-runtime", msgid)
+# endif
+# endif
+# ifndef YY_
+# define YY_(msgid) msgid
+# endif
+#endif
+
+/* Suppress unused-variable warnings by "using" E. */
+#define YYUSE(e) ((void) (e))
+
+/* Enable debugging if requested. */
+#if YYDEBUG
+
+/* A pseudo ostream that takes yydebug_ into account. */
+# define YYCDEBUG if (yydebug_) (*yycdebug_)
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
+do { \
+ if (yydebug_) \
+ { \
+ *yycdebug_ << Title << ' '; \
+ yy_symbol_print_ ((Type), (Value), (Location)); \
+ *yycdebug_ << std::endl; \
+ } \
+} while (false)
+
+# define YY_REDUCE_PRINT(Rule) \
+do { \
+ if (yydebug_) \
+ yy_reduce_print_ (Rule); \
+} while (false)
+
+# define YY_STACK_PRINT() \
+do { \
+ if (yydebug_) \
+ yystack_print_ (); \
+} while (false)
+
+#else /* !YYDEBUG */
+
+# define YYCDEBUG if (false) std::cerr
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+# define YY_REDUCE_PRINT(Rule)
+# define YY_STACK_PRINT()
+
+#endif /* !YYDEBUG */
+
+#define yyerrok (yyerrstatus_ = 0)
+#define yyclearin (yychar = yyempty_)
+
+#define YYACCEPT goto yyacceptlab
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrorlab
+#define YYRECOVERING() (!!yyerrstatus_)
+
+]b4_namespace_open[
+#if YYERROR_VERBOSE
+
+ /* Return YYSTR after stripping away unnecessary quotes and
+ backslashes, so that it's suitable for yyerror. The heuristic is
+ that double-quoting is unnecessary unless the string contains an
+ apostrophe, a comma, or backslash (other than backslash-backslash).
+ YYSTR is taken from yytname. */
+ std::string
+ ]b4_parser_class_name[::yytnamerr_ (const char *yystr)
+ {
+ if (*yystr == '"')
+ {
+ std::string yyr = "";
+ char const *yyp = yystr;
+
+ for (;;)
+ switch (*++yyp)
+ {
+ case '\'':
+ case ',':
+ goto do_not_strip_quotes;
+
+ case '\\':
+ if (*++yyp != '\\')
+ goto do_not_strip_quotes;
+ /* Fall through. */
+ default:
+ yyr += *yyp;
+ break;
+
+ case '"':
+ return yyr;
+ }
+ do_not_strip_quotes: ;
+ }
+
+ return yystr;
+ }
+
+#endif
+
+ /// Build a parser object.
+ ]b4_parser_class_name::b4_parser_class_name[ (]b4_parse_param_decl[ ]b4_parser_class_constructor_param[) ]b4_parser_class_constructor_init[ ]m4_ifset([b4_parse_param], [
+ :])[
+
+#if YYDEBUG
+ ]m4_ifset([b4_parse_param], [ ], [ :])[yydebug_ (false),
+ yycdebug_ (&std::cerr)]m4_ifset([b4_parse_param], [,])[
+#endif]b4_parse_param_cons[
+ {
+ }
+
+ ]b4_parser_class_name::~b4_parser_class_name[ ()
+ {
+ }
+
+#if YYDEBUG
+ /*--------------------------------.
+ | Print this symbol on YYOUTPUT. |
+ `--------------------------------*/
+
+ inline void
+ ]b4_parser_class_name[::yy_symbol_value_print_ (int yytype,
+ const semantic_type* yyvaluep, const location_type* yylocationp)
+ {
+ YYUSE (yylocationp);
+ YYUSE (yyvaluep);
+ switch (yytype)
+ {
+ ]m4_map([b4_symbol_actions], m4_defn([b4_symbol_printers]))dnl
+[ default:
+ break;
+ }
+ }
+
+
+ void
+ ]b4_parser_class_name[::yy_symbol_print_ (int yytype,
+ const semantic_type* yyvaluep, const location_type* yylocationp)
+ {
+ *yycdebug_ << (yytype < yyntokens_ ? "token" : "nterm")
+ << ' ' << yytname_[yytype] << " ("
+ << *yylocationp << ": ";
+ yy_symbol_value_print_ (yytype, yyvaluep, yylocationp);
+ *yycdebug_ << ')';
+ }
+#endif
+
+ void
+ ]b4_parser_class_name[::yydestruct_ (const char* yymsg,
+ int yytype, semantic_type* yyvaluep, location_type* yylocationp)
+ {
+ YYUSE (yylocationp);
+ YYUSE (yymsg);
+ YYUSE (yyvaluep);
+
+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+]m4_ifset([b4_symbol_actions], [ ], [
+ switch (yytype)
+ {
+ ]m4_map([b4_symbol_actions], m4_defn([b4_symbol_destructors]))[
+ default:
+ break;
+ }
+ ])[
+ }
+
+ void
+ ]b4_parser_class_name[::yypop_ (unsigned int n)
+ {
+ yystate_stack_.pop (n);
+ yysemantic_stack_.pop (n);
+ yylocation_stack_.pop (n);
+ }
+
+#if YYDEBUG
+ std::ostream&
+ ]b4_parser_class_name[::debug_stream () const
+ {
+ return *yycdebug_;
+ }
+
+ void
+ ]b4_parser_class_name[::set_debug_stream (std::ostream& o)
+ {
+ yycdebug_ = &o;
+ }
+
+
+ ]b4_parser_class_name[::debug_level_type
+ ]b4_parser_class_name[::debug_level () const
+ {
+ return yydebug_;
+ }
+
+ void
+ ]b4_parser_class_name[::set_debug_level (debug_level_type l)
+ {
+ yydebug_ = l;
+ }
+#endif
+
+ int
+ ]b4_parser_class_name[::parse ()
+ {
+ /// Lookahead and lookahead in internal form.
+ int yychar = yyempty_;
+ int yytoken = 0;
+
+ /* State. */
+ int yyn;
+ int yylen = 0;
+ int yystate = 0;
+
+ /* Error handling. */
+ int yynerrs_ = 0;
+ int yyerrstatus_ = 0;
+
+ /// Semantic value of the lookahead.
+ semantic_type yylval;
+ /// Location of the lookahead.
+ location_type yylloc;
+ /// The locations where the error started and ended.
+ location_type yyerror_range[2];
+
+ /// $$.
+ semantic_type yyval;
+ /// @@$.
+ location_type yyloc;
+
+ int yyresult;
+
+ YYCDEBUG << "Starting parse" << std::endl;
+
+]m4_ifdef([b4_initial_action], [
+m4_pushdef([b4_at_dollar], [yylloc])dnl
+m4_pushdef([b4_dollar_dollar], [yylval])dnl
+ /* User initialization code. */
+ b4_user_initial_action
+m4_popdef([b4_dollar_dollar])dnl
+m4_popdef([b4_at_dollar])])dnl
+
+ [ /* Initialize the stacks. The initial state will be pushed in
+ yynewstate, since the latter expects the semantical and the
+ location values to have been already stored, initialize these
+ stacks with a primary value. */
+ yystate_stack_ = state_stack_type (0);
+ yysemantic_stack_ = semantic_stack_type (0);
+ yylocation_stack_ = location_stack_type (0);
+ yysemantic_stack_.push (yylval);
+ yylocation_stack_.push (yylloc);
+
+ /* New state. */
+ yynewstate:
+ yystate_stack_.push (yystate);
+ YYCDEBUG << "Entering state " << yystate << std::endl;
+
+ /* Accept? */
+ if (yystate == yyfinal_)
+ goto yyacceptlab;
+
+ goto yybackup;
+
+ /* Backup. */
+ yybackup:
+
+ /* Try to take a decision without lookahead. */
+ yyn = yypact_[yystate];
+ if (yyn == yypact_ninf_)
+ goto yydefault;
+
+ /* Read a lookahead token. */
+ if (yychar == yyempty_)
+ {
+ YYCDEBUG << "Reading a token: ";
+ yychar = ]b4_c_function_call([yylex], [int],
+ [[YYSTYPE*], [&yylval]][]dnl
+b4_locations_if([, [[location*], [&yylloc]]])dnl
+m4_ifdef([b4_lex_param], [, ]b4_lex_param))[;
+ }
+
+
+ /* Convert token to internal form. */
+ if (yychar <= yyeof_)
+ {
+ yychar = yytoken = yyeof_;
+ YYCDEBUG << "Now at end of input." << std::endl;
+ }
+ else
+ {
+ yytoken = yytranslate_ (yychar);
+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+ }
+
+ /* If the proper action on seeing token YYTOKEN is to reduce or to
+ detect an error, take that action. */
+ yyn += yytoken;
+ if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yytoken)
+ goto yydefault;
+
+ /* Reduce or error. */
+ yyn = yytable_[yyn];
+ if (yyn <= 0)
+ {
+ if (yyn == 0 || yyn == yytable_ninf_)
+ goto yyerrlab;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+
+ /* Shift the lookahead token. */
+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
+
+ /* Discard the token being shifted. */
+ yychar = yyempty_;
+
+ yysemantic_stack_.push (yylval);
+ yylocation_stack_.push (yylloc);
+
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus_)
+ --yyerrstatus_;
+
+ yystate = yyn;
+ goto yynewstate;
+
+ /*-----------------------------------------------------------.
+ | yydefault -- do the default action for the current state. |
+ `-----------------------------------------------------------*/
+ yydefault:
+ yyn = yydefact_[yystate];
+ if (yyn == 0)
+ goto yyerrlab;
+ goto yyreduce;
+
+ /*-----------------------------.
+ | yyreduce -- Do a reduction. |
+ `-----------------------------*/
+ yyreduce:
+ yylen = yyr2_[yyn];
+ /* If YYLEN is nonzero, implement the default value of the action:
+ `$$ = $1'. Otherwise, use the top of the stack.
+
+ Otherwise, the following line sets YYVAL to garbage.
+ This behavior is undocumented and Bison
+ users should not rely upon it. */
+ if (yylen)
+ yyval = yysemantic_stack_[yylen - 1];
+ else
+ yyval = yysemantic_stack_[0];
+
+ {
+ slice<location_type, location_stack_type> slice (yylocation_stack_, yylen);
+ YYLLOC_DEFAULT (yyloc, slice, yylen);
+ }
+ YY_REDUCE_PRINT (yyn);
+ switch (yyn)
+ {
+ ]b4_user_actions[
+ default:
+ break;
+ }
+ YY_SYMBOL_PRINT ("-> $$ =", yyr1_[yyn], &yyval, &yyloc);
+
+ yypop_ (yylen);
+ yylen = 0;
+ YY_STACK_PRINT ();
+
+ yysemantic_stack_.push (yyval);
+ yylocation_stack_.push (yyloc);
+
+ /* Shift the result of the reduction. */
+ yyn = yyr1_[yyn];
+ yystate = yypgoto_[yyn - yyntokens_] + yystate_stack_[0];
+ if (0 <= yystate && yystate <= yylast_
+ && yycheck_[yystate] == yystate_stack_[0])
+ yystate = yytable_[yystate];
+ else
+ yystate = yydefgoto_[yyn - yyntokens_];
+ goto yynewstate;
+
+ /*------------------------------------.
+ | yyerrlab -- here on detecting error |
+ `------------------------------------*/
+ yyerrlab:
+ /* If not already recovering from an error, report this error. */
+ if (!yyerrstatus_)
+ {
+ ++yynerrs_;
+ error (yylloc, yysyntax_error_ (yystate]dnl
+b4_error_verbose_if([, yytoken])[));
+ }
+
+ yyerror_range[0] = yylloc;
+ if (yyerrstatus_ == 3)
+ {
+ /* If just tried and failed to reuse lookahead token after an
+ error, discard it. */
+
+ if (yychar <= yyeof_)
+ {
+ /* Return failure if at end of input. */
+ if (yychar == yyeof_)
+ YYABORT;
+ }
+ else
+ {
+ yydestruct_ ("Error: discarding", yytoken, &yylval, &yylloc);
+ yychar = yyempty_;
+ }
+ }
+
+ /* Else will try to reuse lookahead token after shifting the error
+ token. */
+ goto yyerrlab1;
+
+
+ /*---------------------------------------------------.
+ | yyerrorlab -- error raised explicitly by YYERROR. |
+ `---------------------------------------------------*/
+ yyerrorlab:
+
+ /* Pacify compilers like GCC when the user code never invokes
+ YYERROR and the label yyerrorlab therefore never appears in user
+ code. */
+ if (false)
+ goto yyerrorlab;
+
+ yyerror_range[0] = yylocation_stack_[yylen - 1];
+ /* Do not reclaim the symbols of the rule which action triggered
+ this YYERROR. */
+ yypop_ (yylen);
+ yylen = 0;
+ yystate = yystate_stack_[0];
+ goto yyerrlab1;
+
+ /*-------------------------------------------------------------.
+ | yyerrlab1 -- common code for both syntax error and YYERROR. |
+ `-------------------------------------------------------------*/
+ yyerrlab1:
+ yyerrstatus_ = 3; /* Each real token shifted decrements this. */
+
+ for (;;)
+ {
+ yyn = yypact_[yystate];
+ if (yyn != yypact_ninf_)
+ {
+ yyn += yyterror_;
+ if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_)
+ {
+ yyn = yytable_[yyn];
+ if (0 < yyn)
+ break;
+ }
+ }
+
+ /* Pop the current state because it cannot handle the error token. */
+ if (yystate_stack_.height () == 1)
+ YYABORT;
+
+ yyerror_range[0] = yylocation_stack_[0];
+ yydestruct_ ("Error: popping",
+ yystos_[yystate],
+ &yysemantic_stack_[0], &yylocation_stack_[0]);
+ yypop_ ();
+ yystate = yystate_stack_[0];
+ YY_STACK_PRINT ();
+ }
+
+ yyerror_range[1] = yylloc;
+ // Using YYLLOC is tempting, but would change the location of
+ // the lookahead. YYLOC is available though.
+ YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
+ yysemantic_stack_.push (yylval);
+ yylocation_stack_.push (yyloc);
+
+ /* Shift the error token. */
+ YY_SYMBOL_PRINT ("Shifting", yystos_[yyn],
+ &yysemantic_stack_[0], &yylocation_stack_[0]);
+
+ yystate = yyn;
+ goto yynewstate;
+
+ /* Accept. */
+ yyacceptlab:
+ yyresult = 0;
+ goto yyreturn;
+
+ /* Abort. */
+ yyabortlab:
+ yyresult = 1;
+ goto yyreturn;
+
+ yyreturn:
+ if (yychar != yyempty_)
+ yydestruct_ ("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc);
+
+ /* Do not reclaim the symbols of the rule which action triggered
+ this YYABORT or YYACCEPT. */
+ yypop_ (yylen);
+ while (yystate_stack_.height () != 1)
+ {
+ yydestruct_ ("Cleanup: popping",
+ yystos_[yystate_stack_[0]],
+ &yysemantic_stack_[0],
+ &yylocation_stack_[0]);
+ yypop_ ();
+ }
+
+ return yyresult;
+ }
+
+ // Generate an error message.
+ std::string
+ ]b4_parser_class_name[::yysyntax_error_ (int yystate]dnl
+b4_error_verbose_if([, int tok])[)
+ {
+ std::string res;
+ YYUSE (yystate);
+#if YYERROR_VERBOSE
+ int yyn = yypact_[yystate];
+ if (yypact_ninf_ < yyn && yyn <= yylast_)
+ {
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = yylast_ - yyn + 1;
+ int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_;
+ int count = 0;
+ for (int x = yyxbegin; x < yyxend; ++x)
+ if (yycheck_[x + yyn] == x && x != yyterror_)
+ ++count;
+
+ // FIXME: This method of building the message is not compatible
+ // with internationalization. It should work like yacc.c does it.
+ // That is, first build a string that looks like this:
+ // "syntax error, unexpected %s or %s or %s"
+ // Then, invoke YY_ on this string.
+ // Finally, use the string as a format to output
+ // yytname_[tok], etc.
+ // Until this gets fixed, this message appears in English only.
+ res = "syntax error, unexpected ";
+ res += yytnamerr_ (yytname_[tok]);
+ if (count < 5)
+ {
+ count = 0;
+ for (int x = yyxbegin; x < yyxend; ++x)
+ if (yycheck_[x + yyn] == x && x != yyterror_)
+ {
+ res += (!count++) ? ", expecting " : " or ";
+ res += yytnamerr_ (yytname_[x]);
+ }
+ }
+ }
+ else
+#endif
+ res = YY_("syntax error");
+ return res;
+ }
+
+
+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+ const ]b4_int_type(b4_pact_ninf, b4_pact_ninf) b4_parser_class_name::yypact_ninf_ = b4_pact_ninf[;
+ const ]b4_int_type_for([b4_pact])[
+ ]b4_parser_class_name[::yypact_[] =
+ {
+ ]b4_pact[
+ };
+
+ /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
+ doesn't specify something else to do. Zero means the default is an
+ error. */
+ const ]b4_int_type_for([b4_defact])[
+ ]b4_parser_class_name[::yydefact_[] =
+ {
+ ]b4_defact[
+ };
+
+ /* YYPGOTO[NTERM-NUM]. */
+ const ]b4_int_type_for([b4_pgoto])[
+ ]b4_parser_class_name[::yypgoto_[] =
+ {
+ ]b4_pgoto[
+ };
+
+ /* YYDEFGOTO[NTERM-NUM]. */
+ const ]b4_int_type_for([b4_defgoto])[
+ ]b4_parser_class_name[::yydefgoto_[] =
+ {
+ ]b4_defgoto[
+ };
+
+ /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
+ positive, shift that token. If negative, reduce the rule which
+ number is the opposite. If zero, do what YYDEFACT says. */
+ const ]b4_int_type(b4_table_ninf, b4_table_ninf) b4_parser_class_name::yytable_ninf_ = b4_table_ninf[;
+ const ]b4_int_type_for([b4_table])[
+ ]b4_parser_class_name[::yytable_[] =
+ {
+ ]b4_table[
+ };
+
+ /* YYCHECK. */
+ const ]b4_int_type_for([b4_check])[
+ ]b4_parser_class_name[::yycheck_[] =
+ {
+ ]b4_check[
+ };
+
+ /* STOS_[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+ const ]b4_int_type_for([b4_stos])[
+ ]b4_parser_class_name[::yystos_[] =
+ {
+ ]b4_stos[
+ };
+
+#if YYDEBUG
+ /* TOKEN_NUMBER_[YYLEX-NUM] -- Internal symbol number corresponding
+ to YYLEX-NUM. */
+ const ]b4_int_type_for([b4_toknum])[
+ ]b4_parser_class_name[::yytoken_number_[] =
+ {
+ ]b4_toknum[
+ };
+#endif
+
+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+ const ]b4_int_type_for([b4_r1])[
+ ]b4_parser_class_name[::yyr1_[] =
+ {
+ ]b4_r1[
+ };
+
+ /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+ const ]b4_int_type_for([b4_r2])[
+ ]b4_parser_class_name[::yyr2_[] =
+ {
+ ]b4_r2[
+ };
+
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+ /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+ First, the terminals, then, starting at \a yyntokens_, nonterminals. */
+ const char*
+ const ]b4_parser_class_name[::yytname_[] =
+ {
+ ]b4_tname[
+ };
+#endif
+
+#if YYDEBUG
+ /* YYRHS -- A `-1'-separated list of the rules' RHS. */
+ const ]b4_parser_class_name[::rhs_number_type
+ ]b4_parser_class_name[::yyrhs_[] =
+ {
+ ]b4_rhs[
+ };
+
+ /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+ const ]b4_int_type_for([b4_prhs])[
+ ]b4_parser_class_name[::yyprhs_[] =
+ {
+ ]b4_prhs[
+ };
+
+ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
+ const ]b4_int_type_for([b4_rline])[
+ ]b4_parser_class_name[::yyrline_[] =
+ {
+ ]b4_rline[
+ };
+
+ // Print the state stack on the debug stream.
+ void
+ ]b4_parser_class_name[::yystack_print_ ()
+ {
+ *yycdebug_ << "Stack now";
+ for (state_stack_type::const_iterator i = yystate_stack_.begin ();
+ i != yystate_stack_.end (); ++i)
+ *yycdebug_ << ' ' << *i;
+ *yycdebug_ << std::endl;
+ }
+
+ // Report on the debug stream that the rule \a yyrule is going to be reduced.
+ void
+ ]b4_parser_class_name[::yy_reduce_print_ (int yyrule)
+ {
+ unsigned int yylno = yyrline_[yyrule];
+ int yynrhs = yyr2_[yyrule];
+ /* Print the symbols being reduced, and their result. */
+ *yycdebug_ << "Reducing stack by rule " << yyrule - 1
+ << " (line " << yylno << "):" << std::endl;
+ /* The symbols being reduced. */
+ for (int yyi = 0; yyi < yynrhs; yyi++)
+ YY_SYMBOL_PRINT (" $" << yyi + 1 << " =",
+ yyrhs_[yyprhs_[yyrule] + yyi],
+ &]b4_rhs_value(yynrhs, yyi + 1)[,
+ &]b4_rhs_location(yynrhs, yyi + 1)[);
+ }
+#endif // YYDEBUG
+
+ /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+ ]b4_parser_class_name[::token_number_type
+ ]b4_parser_class_name[::yytranslate_ (int t)
+ {
+ static
+ const token_number_type
+ translate_table[] =
+ {
+ ]b4_translate[
+ };
+ if ((unsigned int) t <= yyuser_token_number_max_)
+ return translate_table[t];
+ else
+ return yyundef_token_;
+ }
+
+ const int ]b4_parser_class_name[::yyeof_ = 0;
+ const int ]b4_parser_class_name[::yylast_ = ]b4_last[;
+ const int ]b4_parser_class_name[::yynnts_ = ]b4_nterms_number[;
+ const int ]b4_parser_class_name[::yyempty_ = -2;
+ const int ]b4_parser_class_name[::yyfinal_ = ]b4_final_state_number[;
+ const int ]b4_parser_class_name[::yyterror_ = 1;
+ const int ]b4_parser_class_name[::yyerrcode_ = 256;
+ const int ]b4_parser_class_name[::yyntokens_ = ]b4_tokens_number[;
+
+ const unsigned int ]b4_parser_class_name[::yyuser_token_number_max_ = ]b4_user_token_number_max[;
+ const ]b4_parser_class_name[::token_number_type ]b4_parser_class_name[::yyundef_token_ = ]b4_undef_token_number[;
+
+]b4_namespace_close[
+
+]b4_epilogue
+dnl
+@output(b4_dir_prefix[]stack.hh@)
+b4_copyright([Stack handling for Bison parsers in C++],
+ [2002, 2003, 2004, 2005, 2006, 2007, 2008])[
+
+#ifndef BISON_STACK_HH
+# define BISON_STACK_HH
+
+#include <deque>
+
+]b4_namespace_open[
+ template <class T, class S = std::deque<T> >
+ class stack
+ {
+ public:
+
+ // Hide our reversed order.
+ typedef typename S::reverse_iterator iterator;
+ typedef typename S::const_reverse_iterator const_iterator;
+
+ stack () : seq_ ()
+ {
+ }
+
+ stack (unsigned int n) : seq_ (n)
+ {
+ }
+
+ inline
+ T&
+ operator [] (unsigned int i)
+ {
+ return seq_[i];
+ }
+
+ inline
+ const T&
+ operator [] (unsigned int i) const
+ {
+ return seq_[i];
+ }
+
+ inline
+ void
+ push (const T& t)
+ {
+ seq_.push_front (t);
+ }
+
+ inline
+ void
+ pop (unsigned int n = 1)
+ {
+ for (; n; --n)
+ seq_.pop_front ();
+ }
+
+ inline
+ unsigned int
+ height () const
+ {
+ return seq_.size ();
+ }
+
+ inline const_iterator begin () const { return seq_.rbegin (); }
+ inline const_iterator end () const { return seq_.rend (); }
+
+ private:
+
+ S seq_;
+ };
+
+ /// Present a slice of the top of a stack.
+ template <class T, class S = stack<T> >
+ class slice
+ {
+ public:
+
+ slice (const S& stack,
+ unsigned int range) : stack_ (stack),
+ range_ (range)
+ {
+ }
+
+ inline
+ const T&
+ operator [] (unsigned int i) const
+ {
+ return stack_[range_ - i];
+ }
+
+ private:
+
+ const S& stack_;
+ unsigned int range_;
+ };
+]b4_namespace_close[
+
+#endif // not BISON_STACK_HH[]dnl
+]
+m4_divert_pop(0)
diff --git a/tools/mhmake/src/bisondata/location.cc b/tools/mhmake/src/bisondata/location.cc
new file mode 100644
index 000000000..e142e5115
--- /dev/null
+++ b/tools/mhmake/src/bisondata/location.cc
@@ -0,0 +1,279 @@
+# C++ skeleton for Bison
+
+# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation,
+# Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# We do want M4 expansion after # for CPP macros.
+m4_changecom()
+m4_divert_push(0)dnl
+@output(b4_dir_prefix[]position.hh@)
+b4_copyright([Positions for Bison parsers in C++],
+ [2002, 2003, 2004, 2005, 2006])[
+
+/**
+ ** \file position.hh
+ ** Define the ]b4_namespace_ref[::position class.
+ */
+
+#ifndef BISON_POSITION_HH
+# define BISON_POSITION_HH
+
+# include <iostream>
+# include <string>
+# include <algorithm>
+
+]b4_namespace_open[
+ /// Abstract a position.
+ class position
+ {
+ public:
+]m4_ifdef([b4_location_constructors], [
+ /// Construct a position.
+ position ()
+ : filename (0), line (]b4_location_initial_line[), column (]b4_location_initial_column[)
+ {
+ }
+
+])[
+ /// Initialization.
+ inline void initialize (]b4_percent_define_get([[filename_type]])[* fn)
+ {
+ filename = fn;
+ line = ]b4_location_initial_line[;
+ column = ]b4_location_initial_column[;
+ }
+
+ /** \name Line and Column related manipulators
+ ** \{ */
+ public:
+ /// (line related) Advance to the COUNT next lines.
+ inline void lines (int count = 1)
+ {
+ column = ]b4_location_initial_column[;
+ line += count;
+ }
+ /// (column related) Advance to the COUNT next columns.
+ inline void columns (int count = 1)
+ {
+ column = std::max (]b4_location_initial_column[u, column + count);
+ }
+ /** \} */
+
+ public:
+ /// File name to which this position refers.
+ ]b4_percent_define_get([[filename_type]])[* filename;
+ /// Current line number.
+ unsigned int line;
+ /// Current column number.
+ unsigned int column;
+ };
+
+ /// Add and assign a position.
+ inline const position&
+ operator+= (position& res, const int width)
+ {
+ res.columns (width);
+ return res;
+ }
+
+ /// Add two position objects.
+ inline const position
+ operator+ (const position& begin, const int width)
+ {
+ position res = begin;
+ return res += width;
+ }
+
+ /// Add and assign a position.
+ inline const position&
+ operator-= (position& res, const int width)
+ {
+ return res += -width;
+ }
+
+ /// Add two position objects.
+ inline const position
+ operator- (const position& begin, const int width)
+ {
+ return begin + -width;
+ }
+]b4_percent_define_flag_if([[define_location_comparison]], [[
+ /// Compare two position objects.
+ inline bool
+ operator== (const position& pos1, const position& pos2)
+ {
+ return
+ (pos1.filename == pos2.filename
+ || pos1.filename && pos2.filename && *pos1.filename == *pos2.filename)
+ && pos1.line == pos2.line && pos1.column == pos2.column;
+ }
+
+ /// Compare two position objects.
+ inline bool
+ operator!= (const position& pos1, const position& pos2)
+ {
+ return !(pos1 == pos2);
+ }
+]])[
+ /** \brief Intercept output stream redirection.
+ ** \param ostr the destination output stream
+ ** \param pos a reference to the position to redirect
+ */
+ inline std::ostream&
+ operator<< (std::ostream& ostr, const position& pos)
+ {
+ if (pos.filename)
+ ostr << *pos.filename << ':';
+ return ostr << pos.line << '.' << pos.column;
+ }
+
+]b4_namespace_close[
+#endif // not BISON_POSITION_HH]
+@output(b4_dir_prefix[]location.hh@)
+b4_copyright([Locations for Bison parsers in C++],
+ [2002, 2003, 2004, 2005, 2006])[
+
+/**
+ ** \file location.hh
+ ** Define the ]b4_namespace_ref[::location class.
+ */
+
+#ifndef BISON_LOCATION_HH
+# define BISON_LOCATION_HH
+
+# include <iostream>
+# include <string>
+# include "position.hh"
+
+]b4_namespace_open[
+
+ /// Abstract a location.
+ class location
+ {
+ public:
+]m4_ifdef([b4_location_constructors], [
+ /// Construct a location.
+ location ()
+ : begin (), end ()
+ {
+ }
+
+])[
+ /// Initialization.
+ inline void initialize (]b4_percent_define_get([[filename_type]])[* fn)
+ {
+ begin.initialize (fn);
+ end = begin;
+ }
+
+ /** \name Line and Column related manipulators
+ ** \{ */
+ public:
+ /// Reset initial location to final location.
+ inline void step ()
+ {
+ begin = end;
+ }
+
+ /// Extend the current location to the COUNT next columns.
+ inline void columns (unsigned int count = 1)
+ {
+ end += count;
+ }
+
+ /// Extend the current location to the COUNT next lines.
+ inline void lines (unsigned int count = 1)
+ {
+ end.lines (count);
+ }
+ inline void incline ()
+ {
+ lines(1);
+ step();
+ }
+ /** \} */
+
+
+ public:
+ /// Beginning of the located region.
+ position begin;
+ /// End of the located region.
+ position end;
+ };
+
+ /// Join two location objects to create a location.
+ inline const location operator+ (const location& begin, const location& end)
+ {
+ location res = begin;
+ res.end = end.end;
+ return res;
+ }
+
+ /// Add two location objects.
+ inline const location operator+ (const location& begin, unsigned int width)
+ {
+ location res = begin;
+ res.columns (width);
+ return res;
+ }
+
+ /// Add and assign a location.
+ inline location& operator+= (location& res, unsigned int width)
+ {
+ res.columns (width);
+ return res;
+ }
+]b4_percent_define_flag_if([[define_location_comparison]], [[
+ /// Compare two location objects.
+ inline bool
+ operator== (const location& loc1, const location& loc2)
+ {
+ return loc1.begin == loc2.begin && loc1.end == loc2.end;
+ }
+
+ /// Compare two location objects.
+ inline bool
+ operator!= (const location& loc1, const location& loc2)
+ {
+ return !(loc1 == loc2);
+ }
+]])[
+ /** \brief Intercept output stream redirection.
+ ** \param ostr the destination output stream
+ ** \param loc a reference to the location to redirect
+ **
+ ** Avoid duplicate information.
+ */
+ inline std::ostream& operator<< (std::ostream& ostr, const location& loc)
+ {
+ position last = loc.end - 1;
+ ostr << loc.begin;
+ if (last.filename
+ && (!loc.begin.filename
+ || *loc.begin.filename != *last.filename))
+ ostr << '-' << last;
+ else if (loc.begin.line != last.line)
+ ostr << '-' << last.line << '.' << last.column;
+ else if (loc.begin.column != last.column)
+ ostr << '-' << last.column;
+ return ostr;
+ }
+
+]b4_namespace_close[
+
+#endif // not BISON_LOCATION_HH]
+m4_divert_pop(0)
+m4_changecom([#])
diff --git a/tools/mhmake/src/bisondata/m4sugar/foreach.m4 b/tools/mhmake/src/bisondata/m4sugar/foreach.m4
new file mode 100644
index 000000000..f6b724d77
--- /dev/null
+++ b/tools/mhmake/src/bisondata/m4sugar/foreach.m4
@@ -0,0 +1,400 @@
+# -*- Autoconf -*-
+# This file is part of Autoconf.
+# foreach-based replacements for recursive functions.
+# Speeds up GNU M4 1.4.x by avoiding quadratic $@ recursion, but penalizes
+# GNU M4 1.6 by requiring more memory and macro expansions.
+#
+# Copyright (C) 2008 Free Software Foundation, Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception, the Free Software Foundation gives unlimited
+# permission to copy, distribute and modify the configure scripts that
+# are the output of Autoconf. You need not follow the terms of the GNU
+# General Public License when using or distributing such scripts, even
+# though portions of the text of Autoconf appear in them. The GNU
+# General Public License (GPL) does govern all other use of the material
+# that constitutes the Autoconf program.
+#
+# Certain portions of the Autoconf source text are designed to be copied
+# (in certain cases, depending on the input) into the output of
+# Autoconf. We call these the "data" portions. The rest of the Autoconf
+# source text consists of comments plus executable code that decides which
+# of the data portions to output in any given case. We call these
+# comments and executable code the "non-data" portions. Autoconf never
+# copies any of the non-data portions into its output.
+#
+# This special exception to the GPL applies to versions of Autoconf
+# released by the Free Software Foundation. When you make and
+# distribute a modified version of Autoconf, you may extend this special
+# exception to the GPL to apply to your modified version as well, *unless*
+# your modified version has the potential to copy into its output some
+# of the text that was the non-data portion of the version that you started
+# with. (In other words, unless your change moves or copies text from
+# the non-data portions to the data portions.) If your modification has
+# such potential, you must delete any notice of this special exception
+# to the GPL from your modified version.
+#
+# Written by Eric Blake.
+#
+
+# In M4 1.4.x, every byte of $@ is rescanned. This means that an
+# algorithm on n arguments that recurses with one less argument each
+# iteration will scan n * (n + 1) / 2 arguments, for O(n^2) time. In
+# M4 1.6, this was fixed so that $@ is only scanned once, then
+# back-references are made to information stored about the scan.
+# Thus, n iterations need only scan n arguments, for O(n) time.
+# Additionally, in M4 1.4.x, recursive algorithms did not clean up
+# memory very well, requiring O(n^2) memory rather than O(n) for n
+# iterations.
+#
+# This file is designed to overcome the quadratic nature of $@
+# recursion by writing a variant of m4_foreach that uses m4_for rather
+# than $@ recursion to operate on the list. This involves more macro
+# expansions, but avoids the need to rescan a quadratic number of
+# arguments, making these replacements very attractive for M4 1.4.x.
+# On the other hand, in any version of M4, expanding additional macros
+# costs additional time; therefore, in M4 1.6, where $@ recursion uses
+# fewer macros, these replacements actually pessimize performance.
+# Additionally, the use of $10 to mean the tenth argument violates
+# POSIX; although all versions of m4 1.4.x support this meaning, a
+# future m4 version may switch to take it as the first argument
+# concatenated with a literal 0, so the implementations in this file
+# are not future-proof. Thus, this file is conditionally included as
+# part of m4_init(), only when it is detected that M4 probably has
+# quadratic behavior (ie. it lacks the macro __m4_version__).
+#
+# Please keep this file in sync with m4sugar.m4.
+
+# m4_foreach(VARIABLE, LIST, EXPRESSION)
+# --------------------------------------
+# Expand EXPRESSION assigning each value of the LIST to VARIABLE.
+# LIST should have the form `item_1, item_2, ..., item_n', i.e. the
+# whole list must *quoted*. Quote members too if you don't want them
+# to be expanded.
+#
+# This version minimizes the number of times that $@ is evaluated by
+# using m4_for to generate a boilerplate into VARIABLE then passing $@
+# to that temporary macro. Thus, the recursion is done in m4_for
+# without reparsing any user input, and is not quadratic. For an idea
+# of how this works, note that m4_foreach(i,[1,2],[i]) defines i to be
+# m4_define([$1],[$3])$2[]m4_define([$1],[$4])$2[]m4_popdef([i])
+# then calls i([i],[i],[1],[2]).
+m4_define([m4_foreach],
+[m4_if([$2], [], [], [_$0([$1], [$3], $2)])])
+
+m4_define([_m4_foreach],
+[m4_define([$1], m4_pushdef([$1])_m4_for([$1], [3], [$#], [1],
+ [$0_([1], [2], _m4_defn([$1]))])[m4_popdef([$1])])m4_indir([$1], $@)])
+
+m4_define([_m4_foreach_],
+[[m4_define([$$1], [$$3])$$2[]]])
+
+# m4_case(SWITCH, VAL1, IF-VAL1, VAL2, IF-VAL2, ..., DEFAULT)
+# -----------------------------------------------------------
+# Find the first VAL that SWITCH matches, and expand the corresponding
+# IF-VAL. If there are no matches, expand DEFAULT.
+#
+# Use m4_for to create a temporary macro in terms of a boilerplate
+# m4_if with final cleanup. If $# is even, we have DEFAULT; if it is
+# odd, then rounding the last $# up in the temporary macro is
+# harmless. For example, both m4_case(1,2,3,4,5) and
+# m4_case(1,2,3,4,5,6) result in the intermediate _m4_case being
+# m4_if([$1],[$2],[$3],[$1],[$4],[$5],_m4_popdef([_m4_case])[$6])
+m4_define([m4_case],
+[m4_if(m4_eval([$# <= 2]), [1], [$2],
+[m4_pushdef([_$0], [m4_if(]m4_for([_m4_count], [2], m4_decr([$#]), [2],
+ [_$0_([1], _m4_count, m4_incr(_m4_count))])[_m4_popdef(
+ [_$0])]m4_dquote($m4_eval([($# + 1) & ~1]))[)])_$0($@)])])
+
+m4_define([_m4_case_],
+[[[$$1],[$$2],[$$3],]])
+
+# m4_bmatch(SWITCH, RE1, VAL1, RE2, VAL2, ..., DEFAULT)
+# -----------------------------------------------------
+# m4 equivalent of
+#
+# if (SWITCH =~ RE1)
+# VAL1;
+# elif (SWITCH =~ RE2)
+# VAL2;
+# elif ...
+# ...
+# else
+# DEFAULT
+#
+# We build the temporary macro _m4_b:
+# m4_define([_m4_b], _m4_defn([_m4_bmatch]))_m4_b([$1], [$2], [$3])...
+# _m4_b([$1], [$m-1], [$m])_m4_b([], [], [$m+1]_m4_popdef([_m4_b]))
+# then invoke m4_unquote(_m4_b($@)), for concatenation with later text.
+m4_define([m4_bmatch],
+[m4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])],
+ [$#], 1, [m4_fatal([$0: too few arguments: $#: $1])],
+ [$#], 2, [$2],
+ [m4_define([_m4_b], m4_pushdef([_m4_b])[m4_define([_m4_b],
+ _m4_defn([_$0]))]_m4_for([_m4_b], [3], m4_eval([($# + 1) / 2 * 2 - 1]),
+ [2], [_$0_([1], m4_decr(_m4_b), _m4_b)])[_m4_b([], [],]m4_dquote(
+ [$]m4_incr(_m4_b))[_m4_popdef([_m4_b]))])m4_unquote(_m4_b($@))])])
+
+m4_define([_m4_bmatch],
+[m4_if(m4_bregexp([$1], [$2]), [-1], [], [[$3]m4_define([$0])])])
+
+m4_define([_m4_bmatch_],
+[[_m4_b([$$1], [$$2], [$$3])]])
+
+
+# m4_cond(TEST1, VAL1, IF-VAL1, TEST2, VAL2, IF-VAL2, ..., [DEFAULT])
+# -------------------------------------------------------------------
+# Similar to m4_if, except that each TEST is expanded when encountered.
+# If the expansion of TESTn matches the string VALn, the result is IF-VALn.
+# The result is DEFAULT if no tests passed. This macro allows
+# short-circuiting of expensive tests, where it pays to arrange quick
+# filter tests to run first.
+#
+# m4_cond already guarantees either 3*n or 3*n + 1 arguments, 1 <= n.
+# We only have to speed up _m4_cond, by building the temporary _m4_c:
+# m4_define([_m4_c], _m4_defn([m4_unquote]))_m4_c([m4_if(($1), [($2)],
+# [[$3]m4_define([_m4_c])])])_m4_c([m4_if(($4), [($5)],
+# [[$6]m4_define([_m4_c])])])..._m4_c([m4_if(($m-2), [($m-1)],
+# [[$m]m4_define([_m4_c])])])_m4_c([[$m+1]]_m4_popdef([_m4_c]))
+# We invoke m4_unquote(_m4_c($@)), for concatenation with later text.
+m4_define([_m4_cond],
+[m4_define([_m4_c], m4_pushdef([_m4_c])[m4_define([_m4_c],
+ _m4_defn([m4_unquote]))]_m4_for([_m4_c], [2], m4_eval([$# / 3 * 3 - 1]), [3],
+ [$0_(m4_decr(_m4_c), _m4_c, m4_incr(_m4_c))])[_m4_c(]m4_dquote(m4_dquote(
+ [$]m4_eval([$# / 3 * 3 + 1])))[_m4_popdef([_m4_c]))])m4_unquote(_m4_c($@))])
+
+m4_define([_m4_cond_],
+[[_m4_c([m4_if(($$1), [($$2)], [[$$3]m4_define([_m4_c])])])]])
+
+# m4_bpatsubsts(STRING, RE1, SUBST1, RE2, SUBST2, ...)
+# ----------------------------------------------------
+# m4 equivalent of
+#
+# $_ = STRING;
+# s/RE1/SUBST1/g;
+# s/RE2/SUBST2/g;
+# ...
+#
+# m4_bpatsubsts already validated an odd number of arguments; we only
+# need to speed up _m4_bpatsubsts. To avoid nesting, we build the
+# temporary _m4_p:
+# m4_define([_m4_p], [$1])m4_define([_m4_p],
+# m4_bpatsubst(m4_dquote(_m4_defn([_m4_p])), [$2], [$3]))m4_define([_m4_p],
+# m4_bpatsubst(m4_dquote(_m4_defn([_m4_p])), [$4], [$5]))m4_define([_m4_p],...
+# m4_bpatsubst(m4_dquote(_m4_defn([_m4_p])), [$m-1], [$m]))m4_unquote(
+# _m4_defn([_m4_p])_m4_popdef([_m4_p]))
+m4_define([_m4_bpatsubsts],
+[m4_define([_m4_p], m4_pushdef([_m4_p])[m4_define([_m4_p],
+ ]m4_dquote([$]1)[)]_m4_for([_m4_p], [3], [$#], [2], [$0_(m4_decr(_m4_p),
+ _m4_p)])[m4_unquote(_m4_defn([_m4_p])_m4_popdef([_m4_p]))])_m4_p($@)])
+
+m4_define([_m4_bpatsubsts_],
+[[m4_define([_m4_p],
+m4_bpatsubst(m4_dquote(_m4_defn([_m4_p])), [$$1], [$$2]))]])
+
+# m4_shiftn(N, ...)
+# -----------------
+# Returns ... shifted N times. Useful for recursive "varargs" constructs.
+#
+# m4_shiftn already validated arguments; we only need to speed up
+# _m4_shiftn. If N is 3, then we build the temporary _m4_s, defined as
+# ,[$5],[$6],...,[$m]_m4_popdef([_m4_s])
+# before calling m4_shift(_m4_s($@)).
+m4_define([_m4_shiftn],
+[m4_if(m4_incr([$1]), [$#], [], [m4_define([_m4_s],
+ m4_pushdef([_m4_s])_m4_for([_m4_s], m4_eval([$1 + 2]), [$#], [1],
+ [[,]m4_dquote([$]_m4_s)])[_m4_popdef([_m4_s])])m4_shift(_m4_s($@))])])
+
+# m4_do(STRING, ...)
+# ------------------
+# This macro invokes all its arguments (in sequence, of course). It is
+# useful for making your macros more structured and readable by dropping
+# unnecessary dnl's and have the macros indented properly.
+#
+# Here, we use the temporary macro _m4_do, defined as
+# $1[]$2[]...[]$n[]_m4_popdef([_m4_do])
+m4_define([m4_do],
+[m4_if([$#], [0], [],
+ [m4_define([_$0], m4_pushdef([_$0])_m4_for([_$0], [1], [$#], [1],
+ [$_$0[[]]])[_m4_popdef([_$0])])_$0($@)])])
+
+# m4_dquote_elt(ARGS)
+# -------------------
+# Return ARGS as an unquoted list of double-quoted arguments.
+#
+# m4_foreach to the rescue. It's easier to shift off the leading comma.
+m4_define([m4_dquote_elt],
+[m4_shift(m4_foreach([_m4_elt], [$@], [,m4_dquote(_m4_defn([_m4_elt]))]))])
+
+# m4_reverse(ARGS)
+# ----------------
+# Output ARGS in reverse order.
+#
+# Invoke _m4_r($@) with the temporary _m4_r built as
+# [$m], [$m-1], ..., [$2], [$1]_m4_popdef([_m4_r])
+m4_define([m4_reverse],
+[m4_if([$#], [0], [], [$#], [1], [[$1]],
+[m4_define([_m4_r], m4_dquote([$$#])m4_pushdef([_m4_r])_m4_for([_m4_r],
+ m4_decr([$#]), [1], [-1],
+ [[, ]m4_dquote([$]_m4_r)])[_m4_popdef([_m4_r])])_m4_r($@)])])
+
+
+# m4_map(MACRO, LIST)
+# -------------------
+# Invoke MACRO($1), MACRO($2) etc. where $1, $2... are the elements
+# of LIST. $1, $2... must in turn be lists, appropriate for m4_apply.
+#
+# m4_map/m4_map_sep only execute once; the speedup comes in fixing
+# _m4_map. The mismatch in () is intentional, since $1 supplies the
+# opening `(' (but it sure looks odd!). Build the temporary _m4_m:
+# $1, [$3])$1, [$4])...$1, [$m])_m4_popdef([_m4_m])
+m4_define([_m4_map],
+[m4_if([$#], [2], [],
+ [m4_define([_m4_m], m4_pushdef([_m4_m])_m4_for([_m4_m], [3], [$#], [1],
+ [$0_([1], _m4_m)])[_m4_popdef([_m4_m])])_m4_m($@)])])
+
+m4_define([_m4_map_],
+[[$$1, [$$2])]])
+
+# m4_transform(EXPRESSION, ARG...)
+# --------------------------------
+# Expand EXPRESSION([ARG]) for each argument. More efficient than
+# m4_foreach([var], [ARG...], [EXPRESSION(m4_defn([var]))])
+#
+# Invoke the temporary macro _m4_transform, defined as:
+# $1([$2])[]$1([$3])[]...$1([$m])[]_m4_popdef([_m4_transform])
+m4_define([m4_transform],
+[m4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])],
+ [$#], [1], [],
+ [m4_define([_$0], m4_pushdef([_$0])_m4_for([_$0], [2], [$#], [1],
+ [_$0_([1], _$0)])[_m4_popdef([_$0])])_$0($@)])])
+
+m4_define([_m4_transform_],
+[[$$1([$$2])[]]])
+
+# m4_transform_pair(EXPRESSION, [END-EXPR = EXPRESSION], ARG...)
+# --------------------------------------------------------------
+# Perform a pairwise grouping of consecutive ARGs, by expanding
+# EXPRESSION([ARG1], [ARG2]). If there are an odd number of ARGs, the
+# final argument is expanded with END-EXPR([ARGn]).
+#
+# Build the temporary macro _m4_transform_pair, with the $2([$m+1])
+# only output if $# is odd:
+# $1([$3], [$4])[]$1([$5], [$6])[]...$1([$m-1],
+# [$m])[]m4_default([$2], [$1])([$m+1])[]_m4_popdef([_m4_transform_pair])
+m4_define([m4_transform_pair],
+[m4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])],
+ [$#], [1], [m4_fatal([$0: too few arguments: $#: $1])],
+ [$#], [2], [],
+ [$#], [3], [m4_default([$2], [$1])([$3])[]],
+ [m4_define([_$0], m4_pushdef([_$0])_m4_for([_$0], [3],
+ m4_eval([$# / 2 * 2 - 1]), [2], [_$0_([1], _$0, m4_incr(_$0))])_$0_end(
+ [1], [2], [$#])[_m4_popdef([_$0])])_$0($@)])])
+
+m4_define([_m4_transform_pair_],
+[[$$1([$$2], [$$3])[]]])
+
+m4_define([_m4_transform_pair_end],
+[m4_if(m4_eval([$3 & 1]), [1], [[m4_default([$$2], [$$1])([$$3])[]]])])
+
+# m4_join(SEP, ARG1, ARG2...)
+# ---------------------------
+# Produce ARG1SEPARG2...SEPARGn. Avoid back-to-back SEP when a given ARG
+# is the empty string. No expansion is performed on SEP or ARGs.
+#
+# Use a self-modifying separator, since we don't know how many
+# arguments might be skipped before a separator is first printed, but
+# be careful if the separator contains $. m4_foreach to the rescue.
+m4_define([m4_join],
+[m4_pushdef([_m4_sep], [m4_define([_m4_sep], _m4_defn([m4_echo]))])]dnl
+[m4_foreach([_m4_arg], [m4_shift($@)],
+ [m4_ifset([_m4_arg], [_m4_sep([$1])_m4_defn([_m4_arg])])])]dnl
+[_m4_popdef([_m4_sep])])
+
+# m4_joinall(SEP, ARG1, ARG2...)
+# ------------------------------
+# Produce ARG1SEPARG2...SEPARGn. An empty ARG results in back-to-back SEP.
+# No expansion is performed on SEP or ARGs.
+#
+# A bit easier than m4_join. m4_foreach to the rescue.
+m4_define([m4_joinall],
+[[$2]m4_if(m4_eval([$# <= 2]), [1], [],
+ [m4_foreach([_m4_arg], [m4_shift2($@)],
+ [[$1]_m4_defn([_m4_arg])])])])
+
+# m4_list_cmp(A, B)
+# -----------------
+# Compare the two lists of integer expressions A and B.
+#
+# m4_list_cmp takes care of any side effects; we only override
+# _m4_list_cmp_raw, where we can safely expand lists multiple times.
+# First, insert padding so that both lists are the same length; the
+# trailing +0 is necessary to handle a missing list. Next, create a
+# temporary macro to perform pairwise comparisons until an inequality
+# is found. For example, m4_list_cmp([1], [1,2]) creates _m4_cmp as
+# m4_if(m4_eval([($1) != ($3)]), [1], [m4_cmp([$1], [$3])],
+# m4_eval([($2) != ($4)]), [1], [m4_cmp([$2], [$4])],
+# [0]_m4_popdef([_m4_cmp], [_m4_size]))
+# then calls _m4_cmp([1+0], [0], [1], [2+0])
+m4_define([_m4_list_cmp_raw],
+[m4_if([$1], [$2], 0, [m4_pushdef(
+ [_m4_size])_m4_list_cmp($1+0_m4_list_pad(m4_count($1), m4_count($2)),
+ $2+0_m4_list_pad(m4_count($2), m4_count($1)))])])
+
+m4_define([_m4_list_pad],
+[m4_if(m4_eval($1 < $2), [1],
+ [_m4_for([_m4_size], m4_incr([$1]), [$2], [1], [,0])])])
+
+m4_define([_m4_list_cmp],
+[m4_define([_m4_size], m4_eval([$# >> 1]))]dnl
+[m4_define([_m4_cmp], m4_pushdef([_m4_cmp])[m4_if(]_m4_for([_m4_cmp],
+ [1], _m4_size, [1], [$0_(_m4_cmp, m4_eval(_m4_cmp + _m4_size))])[
+ [0]_m4_popdef([_m4_cmp], [_m4_size]))])_m4_cmp($@)])
+
+m4_define([_m4_list_cmp_],
+[[m4_eval([($$1) != ($$2)]), [1], [m4_cmp([$$1], [$$2])],
+]])
+
+# m4_max(EXPR, ...)
+# m4_min(EXPR, ...)
+# -----------------
+# Return the decimal value of the maximum (or minimum) in a series of
+# integer expressions.
+#
+# m4_foreach to the rescue; we only need to replace _m4_minmax. Here,
+# we need a temporary macro to track the best answer so far, so that
+# the foreach expression is tractable.
+m4_define([_m4_minmax],
+[m4_pushdef([_m4_best], m4_eval([$2]))m4_foreach([_m4_arg], [m4_shift2($@)],
+ [m4_define([_m4_best], $1(_m4_best, _m4_defn([_m4_arg])))])]dnl
+[_m4_best[]_m4_popdef([_m4_best])])
+
+# m4_set_add_all(SET, VALUE...)
+# -----------------------------
+# Add each VALUE into SET. This is O(n) in the number of VALUEs, and
+# can be faster than calling m4_set_add for each VALUE.
+#
+# m4_foreach to the rescue. If no deletions have occurred, then avoid
+# the speed penalty of m4_set_add.
+m4_define([m4_set_add_all],
+[m4_if([$#], [0], [], [$#], [1], [],
+ [m4_define([_m4_set_size($1)], m4_eval(m4_set_size([$1])
+ + m4_len(m4_foreach([_m4_arg], [m4_shift($@)],
+ m4_ifdef([_m4_set_cleanup($1)],
+ [[m4_set_add([$1], _m4_defn([_m4_arg]))]],
+ [[m4_ifdef([_m4_set([$1],]_m4_defn([_m4_arg])[)], [],
+ [m4_define([_m4_set([$1],]_m4_defn([_m4_arg])[)],
+ [1])m4_pushdef([_m4_set([$1])],
+ _m4_defn([_m4_arg]))-])]])))))])])
diff --git a/tools/mhmake/src/bisondata/m4sugar/m4sugar.m4 b/tools/mhmake/src/bisondata/m4sugar/m4sugar.m4
new file mode 100644
index 000000000..291267c33
--- /dev/null
+++ b/tools/mhmake/src/bisondata/m4sugar/m4sugar.m4
@@ -0,0 +1,2789 @@
+divert(-1)# -*- Autoconf -*-
+# This file is part of Autoconf.
+# Base M4 layer.
+# Requires GNU M4.
+#
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
+# 2008 Free Software Foundation, Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception, the Free Software Foundation gives unlimited
+# permission to copy, distribute and modify the configure scripts that
+# are the output of Autoconf. You need not follow the terms of the GNU
+# General Public License when using or distributing such scripts, even
+# though portions of the text of Autoconf appear in them. The GNU
+# General Public License (GPL) does govern all other use of the material
+# that constitutes the Autoconf program.
+#
+# Certain portions of the Autoconf source text are designed to be copied
+# (in certain cases, depending on the input) into the output of
+# Autoconf. We call these the "data" portions. The rest of the Autoconf
+# source text consists of comments plus executable code that decides which
+# of the data portions to output in any given case. We call these
+# comments and executable code the "non-data" portions. Autoconf never
+# copies any of the non-data portions into its output.
+#
+# This special exception to the GPL applies to versions of Autoconf
+# released by the Free Software Foundation. When you make and
+# distribute a modified version of Autoconf, you may extend this special
+# exception to the GPL to apply to your modified version as well, *unless*
+# your modified version has the potential to copy into its output some
+# of the text that was the non-data portion of the version that you started
+# with. (In other words, unless your change moves or copies text from
+# the non-data portions to the data portions.) If your modification has
+# such potential, you must delete any notice of this special exception
+# to the GPL from your modified version.
+#
+# Written by Akim Demaille.
+#
+
+# Set the quotes, whatever the current quoting system.
+changequote()
+changequote([, ])
+
+# Some old m4's don't support m4exit. But they provide
+# equivalent functionality by core dumping because of the
+# long macros we define.
+ifdef([__gnu__], ,
+[errprint(M4sugar requires GNU M4. Install it before installing M4sugar or
+set the M4 environment variable to its absolute file name.)
+m4exit(2)])
+
+
+## ------------------------------- ##
+## 1. Simulate --prefix-builtins. ##
+## ------------------------------- ##
+
+# m4_define
+# m4_defn
+# m4_undefine
+define([m4_define], defn([define]))
+define([m4_defn], defn([defn]))
+define([m4_undefine], defn([undefine]))
+
+m4_undefine([define])
+m4_undefine([defn])
+m4_undefine([undefine])
+
+
+# m4_copy(SRC, DST)
+# -----------------
+# Define DST as the definition of SRC.
+# What's the difference between:
+# 1. m4_copy([from], [to])
+# 2. m4_define([to], [from($@)])
+# Well, obviously 1 is more expensive in space. Maybe 2 is more expensive
+# in time, but because of the space cost of 1, it's not that obvious.
+# Nevertheless, one huge difference is the handling of `$0'. If `from'
+# uses `$0', then with 1, `to''s `$0' is `to', while it is `from' in 2.
+# The user would certainly prefer to see `to'.
+m4_define([m4_copy],
+[m4_define([$2], m4_defn([$1]))])
+
+
+# m4_rename(SRC, DST)
+# -------------------
+# Rename the macro SRC to DST.
+m4_define([m4_rename],
+[m4_copy([$1], [$2])m4_undefine([$1])])
+
+
+# m4_rename_m4(MACRO-NAME)
+# ------------------------
+# Rename MACRO-NAME to m4_MACRO-NAME.
+m4_define([m4_rename_m4],
+[m4_rename([$1], [m4_$1])])
+
+
+# m4_copy_unm4(m4_MACRO-NAME)
+# ---------------------------
+# Copy m4_MACRO-NAME to MACRO-NAME.
+m4_define([m4_copy_unm4],
+[m4_copy([$1], m4_bpatsubst([$1], [^m4_\(.*\)], [[\1]]))])
+
+
+# Some m4 internals have names colliding with tokens we might use.
+# Rename them a` la `m4 --prefix-builtins'. Conditionals first, since
+# some subsequent renames are conditional.
+m4_rename_m4([ifdef])
+m4_rename([ifelse], [m4_if])
+
+m4_rename_m4([builtin])
+m4_rename_m4([changecom])
+m4_rename_m4([changequote])
+m4_ifdef([changeword],dnl conditionally available in 1.4.x
+[m4_undefine([changeword])])
+m4_rename_m4([debugfile])
+m4_rename_m4([debugmode])
+m4_rename_m4([decr])
+m4_undefine([divert])
+m4_rename_m4([divnum])
+m4_rename_m4([dumpdef])
+m4_rename_m4([errprint])
+m4_rename_m4([esyscmd])
+m4_rename_m4([eval])
+m4_rename_m4([format])
+m4_undefine([include])
+m4_rename_m4([incr])
+m4_rename_m4([index])
+m4_rename_m4([indir])
+m4_rename_m4([len])
+m4_rename([m4exit], [m4_exit])
+m4_undefine([m4wrap])
+m4_ifdef([mkstemp],dnl added in M4 1.4.8
+[m4_rename_m4([mkstemp])
+m4_copy([m4_mkstemp], [m4_maketemp])
+m4_undefine([maketemp])],
+[m4_rename_m4([maketemp])
+m4_copy([m4_maketemp], [m4_mkstemp])])
+m4_rename([patsubst], [m4_bpatsubst])
+m4_rename_m4([popdef])
+m4_rename_m4([pushdef])
+m4_rename([regexp], [m4_bregexp])
+m4_rename_m4([shift])
+m4_undefine([sinclude])
+m4_rename_m4([substr])
+m4_ifdef([symbols],dnl present only in alpha-quality 1.4o
+[m4_rename_m4([symbols])])
+m4_rename_m4([syscmd])
+m4_rename_m4([sysval])
+m4_rename_m4([traceoff])
+m4_rename_m4([traceon])
+m4_rename_m4([translit])
+m4_undefine([undivert])
+
+
+## ------------------- ##
+## 2. Error messages. ##
+## ------------------- ##
+
+
+# m4_location
+# -----------
+m4_define([m4_location],
+[__file__:__line__])
+
+
+# m4_errprintn(MSG)
+# -----------------
+# Same as `errprint', but with the missing end of line.
+m4_define([m4_errprintn],
+[m4_errprint([$1
+])])
+
+
+# m4_warning(MSG)
+# ---------------
+# Warn the user.
+m4_define([m4_warning],
+[m4_errprintn(m4_location[: warning: $1])])
+
+
+# m4_fatal(MSG, [EXIT-STATUS])
+# ----------------------------
+# Fatal the user. :)
+m4_define([m4_fatal],
+[m4_errprintn(m4_location[: error: $1])dnl
+m4_expansion_stack_dump()dnl
+m4_exit(m4_if([$2],, 1, [$2]))])
+
+
+# m4_assert(EXPRESSION, [EXIT-STATUS = 1])
+# ----------------------------------------
+# This macro ensures that EXPRESSION evaluates to true, and exits if
+# EXPRESSION evaluates to false.
+m4_define([m4_assert],
+[m4_if(m4_eval([$1]), 0,
+ [m4_fatal([assert failed: $1], [$2])])])
+
+
+
+## ------------- ##
+## 3. Warnings. ##
+## ------------- ##
+
+
+# _m4_warn(CATEGORY, MESSAGE, STACK-TRACE)
+# ----------------------------------------
+# Report a MESSAGE to the user if the CATEGORY of warnings is enabled.
+# This is for traces only.
+# The STACK-TRACE is a \n-separated list of "LOCATION: MESSAGE".
+#
+# Within m4, the macro is a no-op. This macro really matters
+# when autom4te post-processes the trace output.
+m4_define([_m4_warn], [])
+
+
+# m4_warn(CATEGORY, MESSAGE)
+# --------------------------
+# Report a MESSAGE to the user if the CATEGORY of warnings is enabled.
+m4_define([m4_warn],
+[_m4_warn([$1], [$2],
+m4_ifdef([m4_expansion_stack],
+ [_m4_defn([m4_expansion_stack])
+m4_location[: the top level]]))dnl
+])
+
+
+
+## ------------------- ##
+## 4. File inclusion. ##
+## ------------------- ##
+
+
+# We also want to neutralize include (and sinclude for symmetry),
+# but we want to extend them slightly: warn when a file is included
+# several times. This is, in general, a dangerous operation, because
+# too many people forget to quote the first argument of m4_define.
+#
+# For instance in the following case:
+# m4_define(foo, [bar])
+# then a second reading will turn into
+# m4_define(bar, [bar])
+# which is certainly not what was meant.
+
+# m4_include_unique(FILE)
+# -----------------------
+# Declare that the FILE was loading; and warn if it has already
+# been included.
+m4_define([m4_include_unique],
+[m4_ifdef([m4_include($1)],
+ [m4_warn([syntax], [file `$1' included several times])])dnl
+m4_define([m4_include($1)])])
+
+
+# m4_include(FILE)
+# ----------------
+# Like the builtin include, but warns against multiple inclusions.
+m4_define([m4_include],
+[m4_include_unique([$1])dnl
+m4_builtin([include], [$1])])
+
+
+# m4_sinclude(FILE)
+# -----------------
+# Like the builtin sinclude, but warns against multiple inclusions.
+m4_define([m4_sinclude],
+[m4_include_unique([$1])dnl
+m4_builtin([sinclude], [$1])])
+
+
+
+## ------------------------------------ ##
+## 5. Additional branching constructs. ##
+## ------------------------------------ ##
+
+# Both `m4_ifval' and `m4_ifset' tests against the empty string. The
+# difference is that `m4_ifset' is specialized on macros.
+#
+# In case of arguments of macros, eg. $1, it makes little difference.
+# In the case of a macro `FOO', you don't want to check `m4_ifval(FOO,
+# TRUE)', because if `FOO' expands with commas, there is a shifting of
+# the arguments. So you want to run `m4_ifval([FOO])', but then you just
+# compare the *string* `FOO' against `', which, of course fails.
+#
+# So you want the variation `m4_ifset' that expects a macro name as $1.
+# If this macro is both defined and defined to a non empty value, then
+# it runs TRUE, etc.
+
+
+# m4_ifval(COND, [IF-TRUE], [IF-FALSE])
+# -------------------------------------
+# If COND is not the empty string, expand IF-TRUE, otherwise IF-FALSE.
+# Comparable to m4_ifdef.
+m4_define([m4_ifval],
+[m4_if([$1], [], [$3], [$2])])
+
+
+# m4_n(TEXT)
+# ----------
+# If TEXT is not empty, return TEXT and a new line, otherwise nothing.
+m4_define([m4_n],
+[m4_if([$1],
+ [], [],
+ [$1
+])])
+
+
+# m4_ifvaln(COND, [IF-TRUE], [IF-FALSE])
+# --------------------------------------
+# Same as `m4_ifval', but add an extra newline to IF-TRUE or IF-FALSE
+# unless that argument is empty.
+m4_define([m4_ifvaln],
+[m4_if([$1],
+ [], [m4_n([$3])],
+ [m4_n([$2])])])
+
+
+# m4_ifset(MACRO, [IF-TRUE], [IF-FALSE])
+# --------------------------------------
+# If MACRO has no definition, or of its definition is the empty string,
+# expand IF-FALSE, otherwise IF-TRUE.
+m4_define([m4_ifset],
+[m4_ifdef([$1],
+ [m4_ifval(_m4_defn([$1]), [$2], [$3])],
+ [$3])])
+
+
+# m4_ifndef(NAME, [IF-NOT-DEFINED], [IF-DEFINED])
+# -----------------------------------------------
+m4_define([m4_ifndef],
+[m4_ifdef([$1], [$3], [$2])])
+
+
+# m4_case(SWITCH, VAL1, IF-VAL1, VAL2, IF-VAL2, ..., DEFAULT)
+# -----------------------------------------------------------
+# m4 equivalent of
+# switch (SWITCH)
+# {
+# case VAL1:
+# IF-VAL1;
+# break;
+# case VAL2:
+# IF-VAL2;
+# break;
+# ...
+# default:
+# DEFAULT;
+# break;
+# }.
+# All the values are optional, and the macro is robust to active
+# symbols properly quoted.
+#
+# Please keep foreach.m4 in sync with any adjustments made here.
+m4_define([m4_case],
+[m4_if([$#], 0, [],
+ [$#], 1, [],
+ [$#], 2, [$2],
+ [$1], [$2], [$3],
+ [$0([$1], m4_shift3($@))])])
+
+
+# m4_bmatch(SWITCH, RE1, VAL1, RE2, VAL2, ..., DEFAULT)
+# -----------------------------------------------------
+# m4 equivalent of
+#
+# if (SWITCH =~ RE1)
+# VAL1;
+# elif (SWITCH =~ RE2)
+# VAL2;
+# elif ...
+# ...
+# else
+# DEFAULT
+#
+# All the values are optional, and the macro is robust to active symbols
+# properly quoted.
+#
+# Please keep foreach.m4 in sync with any adjustments made here.
+m4_define([m4_bmatch],
+[m4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])],
+ [$#], 1, [m4_fatal([$0: too few arguments: $#: $1])],
+ [$#], 2, [$2],
+ [m4_if(m4_bregexp([$1], [$2]), -1, [$0([$1], m4_shift3($@))],
+ [$3])])])
+
+
+# m4_car(LIST)
+# m4_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+m4_define([m4_car], [[$1]])
+m4_define([m4_cdr],
+[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
+ [$#], 1, [],
+ [m4_dquote(m4_shift($@))])])
+
+# _m4_cdr(LIST)
+# -------------
+# Like m4_cdr, except include a leading comma unless only one element
+# remains. Why? Because comparing a large list against [] is more
+# expensive in expansion time than comparing the number of arguments; so
+# _m4_cdr can be used to reduce the number of arguments when it is time
+# to end recursion.
+m4_define([_m4_cdr],
+[m4_if([$#], 1, [],
+ [, m4_dquote(m4_shift($@))])])
+
+
+
+# m4_cond(TEST1, VAL1, IF-VAL1, TEST2, VAL2, IF-VAL2, ..., [DEFAULT])
+# -------------------------------------------------------------------
+# Similar to m4_if, except that each TEST is expanded when encountered.
+# If the expansion of TESTn matches the string VALn, the result is IF-VALn.
+# The result is DEFAULT if no tests passed. This macro allows
+# short-circuiting of expensive tests, where it pays to arrange quick
+# filter tests to run first.
+#
+# For an example, consider a previous implementation of _AS_QUOTE_IFELSE:
+#
+# m4_if(m4_index([$1], [\]), [-1], [$2],
+# m4_eval(m4_index([$1], [\\]) >= 0), [1], [$2],
+# m4_eval(m4_index([$1], [\$]) >= 0), [1], [$2],
+# m4_eval(m4_index([$1], [\`]) >= 0), [1], [$3],
+# m4_eval(m4_index([$1], [\"]) >= 0), [1], [$3],
+# [$2])
+#
+# Here, m4_index is computed 5 times, and m4_eval 4, even if $1 contains
+# no backslash. It is more efficient to do:
+#
+# m4_cond([m4_index([$1], [\])], [-1], [$2],
+# [m4_eval(m4_index([$1], [\\]) >= 0)], [1], [$2],
+# [m4_eval(m4_index([$1], [\$]) >= 0)], [1], [$2],
+# [m4_eval(m4_index([$1], [\`]) >= 0)], [1], [$3],
+# [m4_eval(m4_index([$1], [\"]) >= 0)], [1], [$3],
+# [$2])
+#
+# In the common case of $1 with no backslash, only one m4_index expansion
+# occurs, and m4_eval is avoided altogether.
+#
+# Please keep foreach.m4 in sync with any adjustments made here.
+m4_define([m4_cond],
+[m4_if([$#], [0], [m4_fatal([$0: cannot be called without arguments])],
+ [$#], [1], [$1],
+ m4_eval([$# % 3]), [2], [m4_fatal([$0: missing an argument])],
+ [_$0($@)])])
+
+m4_define([_m4_cond],
+[m4_if(($1), [($2)], [$3],
+ [$#], [3], [],
+ [$#], [4], [$4],
+ [$0(m4_shift3($@))])])
+
+
+## ---------------------------------------- ##
+## 6. Enhanced version of some primitives. ##
+## ---------------------------------------- ##
+
+# m4_bpatsubsts(STRING, RE1, SUBST1, RE2, SUBST2, ...)
+# ----------------------------------------------------
+# m4 equivalent of
+#
+# $_ = STRING;
+# s/RE1/SUBST1/g;
+# s/RE2/SUBST2/g;
+# ...
+#
+# All the values are optional, and the macro is robust to active symbols
+# properly quoted.
+#
+# I would have liked to name this macro `m4_bpatsubst', unfortunately,
+# due to quotation problems, I need to double quote $1 below, therefore
+# the anchors are broken :( I can't let users be trapped by that.
+#
+# Recall that m4_shift3 always results in an argument. Hence, we need
+# to distinguish between a final deletion vs. ending recursion.
+#
+# Please keep foreach.m4 in sync with any adjustments made here.
+m4_define([m4_bpatsubsts],
+[m4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])],
+ [$#], 1, [m4_fatal([$0: too few arguments: $#: $1])],
+ [$#], 2, [m4_unquote(m4_builtin([patsubst], [[$1]], [$2]))],
+ [$#], 3, [m4_unquote(m4_builtin([patsubst], [[$1]], [$2], [$3]))],
+ [_$0($@m4_if(m4_eval($# & 1), 0, [,]))])])
+m4_define([_m4_bpatsubsts],
+[m4_if([$#], 2, [$1],
+ [$0(m4_builtin([patsubst], [[$1]], [$2], [$3]),
+ m4_shift3($@))])])
+
+
+# m4_define_default(MACRO, VALUE)
+# -------------------------------
+# If MACRO is undefined, set it to VALUE.
+m4_define([m4_define_default],
+[m4_ifndef([$1], [m4_define($@)])])
+
+
+# m4_default(EXP1, EXP2)
+# ----------------------
+# Returns EXP1 if non empty, otherwise EXP2.
+#
+# This macro is called on hot paths, so inline the contents of m4_ifval,
+# for one less round of expansion.
+m4_define([m4_default],
+[m4_if([$1], [], [$2], [$1])])
+
+
+# m4_defn(NAME)
+# -------------
+# Like the original, except guarantee a warning when using something which is
+# undefined (unlike M4 1.4.x). This replacement is not a full-featured
+# replacement: if any of the defined macros contain unbalanced quoting, but
+# when pasted together result in a well-quoted string, then only native m4
+# support is able to get it correct. But that's where quadrigraphs come in
+# handy, if you really need unbalanced quotes inside your macros.
+#
+# This macro is called frequently, so minimize the amount of additional
+# expansions by skipping m4_ifndef. Better yet, if __m4_version__ exists,
+# (added in M4 1.6), then let m4 do the job for us (see m4_init).
+#
+# _m4_defn is for internal use only - it bypasses the wrapper, so it
+# must only be used on one argument at a time, and only on macros
+# known to be defined. Make sure this still works if the user renames
+# m4_defn but not _m4_defn.
+m4_copy([m4_defn], [_m4_defn])
+m4_define([m4_defn],
+[m4_if([$#], [0], [[$0]],
+ [$#], [1], [m4_ifdef([$1], [_m4_defn([$1])],
+ [m4_fatal([$0: undefined macro: $1])])],
+ [m4_foreach([_m4_macro], [$@], [$0(_m4_defn([_m4_macro]))])])])
+
+
+# _m4_dumpdefs_up(NAME)
+# ---------------------
+m4_define([_m4_dumpdefs_up],
+[m4_ifdef([$1],
+ [m4_pushdef([_m4_dumpdefs], _m4_defn([$1]))dnl
+m4_dumpdef([$1])dnl
+_m4_popdef([$1])dnl
+_m4_dumpdefs_up([$1])])])
+
+
+# _m4_dumpdefs_down(NAME)
+# -----------------------
+m4_define([_m4_dumpdefs_down],
+[m4_ifdef([_m4_dumpdefs],
+ [m4_pushdef([$1], _m4_defn([_m4_dumpdefs]))dnl
+_m4_popdef([_m4_dumpdefs])dnl
+_m4_dumpdefs_down([$1])])])
+
+
+# m4_dumpdefs(NAME)
+# -----------------
+# Similar to `m4_dumpdef(NAME)', but if NAME was m4_pushdef'ed, display its
+# value stack (most recent displayed first).
+m4_define([m4_dumpdefs],
+[_m4_dumpdefs_up([$1])dnl
+_m4_dumpdefs_down([$1])])
+
+
+# m4_popdef(NAME)
+# ---------------
+# Like the original, except guarantee a warning when using something which is
+# undefined (unlike M4 1.4.x).
+#
+# This macro is called frequently, so minimize the amount of additional
+# expansions by skipping m4_ifndef. Better yet, if __m4_version__ exists,
+# (added in M4 1.6), then let m4 do the job for us (see m4_init).
+#
+# _m4_popdef is for internal use only - it bypasses the wrapper, so it
+# must only be used on macros known to be defined. Make sure this
+# still works if the user renames m4_popdef but not _m4_popdef.
+m4_copy([m4_popdef], [_m4_popdef])
+m4_define([m4_popdef],
+[m4_if([$#], [0], [[$0]],
+ [$#], [1], [m4_ifdef([$1], [_m4_popdef([$1])],
+ [m4_fatal([$0: undefined macro: $1])])],
+ [m4_foreach([_m4_macro], [$@], [$0(_m4_defn([_m4_macro]))])])])
+
+
+# m4_shiftn(N, ...)
+# -----------------
+# Returns ... shifted N times. Useful for recursive "varargs" constructs.
+#
+# Autoconf does not use this macro, because it is inherently slower than
+# calling the common cases of m4_shift2 or m4_shift3 directly. But it
+# might as well be fast for other clients, such as Libtool. One way to
+# do this is to expand $@ only once in _m4_shiftn (otherwise, for long
+# lists, the expansion of m4_if takes twice as much memory as what the
+# list itself occupies, only to throw away the unused branch). The end
+# result is strictly equivalent to
+# m4_if([$1], 1, [m4_shift(,m4_shift(m4_shift($@)))],
+# [_m4_shiftn(m4_decr([$1]), m4_shift(m4_shift($@)))])
+# but with the final `m4_shift(m4_shift($@)))' shared between the two
+# paths. The first leg uses a no-op m4_shift(,$@) to balance out the ().
+#
+# Please keep foreach.m4 in sync with any adjustments made here.
+m4_define([m4_shiftn],
+[m4_assert(0 < $1 && $1 < $#)_$0($@)])
+
+m4_define([_m4_shiftn],
+[m4_if([$1], 1, [m4_shift(],
+ [$0(m4_decr([$1])]), m4_shift(m4_shift($@)))])
+
+# m4_shift2(...)
+# m4_shift3(...)
+# -----------------
+# Returns ... shifted twice, and three times. Faster than m4_shiftn.
+m4_define([m4_shift2], [m4_shift(m4_shift($@))])
+m4_define([m4_shift3], [m4_shift(m4_shift(m4_shift($@)))])
+
+# _m4_shift2(...)
+# _m4_shift3(...)
+# ---------------
+# Like m4_shift2 or m4_shift3, except include a leading comma unless shifting
+# consumes all arguments. Why? Because in recursion, it is nice to
+# distinguish between 1 element left and 0 elements left, based on how many
+# arguments this shift expands to.
+m4_define([_m4_shift2],
+[m4_if([$#], [2], [],
+ [, m4_shift(m4_shift($@))])])
+m4_define([_m4_shift3],
+[m4_if([$#], [3], [],
+ [, m4_shift(m4_shift(m4_shift($@)))])])
+
+
+# m4_undefine(NAME)
+# -----------------
+# Like the original, except guarantee a warning when using something which is
+# undefined (unlike M4 1.4.x).
+#
+# This macro is called frequently, so minimize the amount of additional
+# expansions by skipping m4_ifndef. Better yet, if __m4_version__ exists,
+# (added in M4 1.6), then let m4 do the job for us (see m4_init).
+#
+# _m4_undefine is for internal use only - it bypasses the wrapper, so
+# it must only be used on macros known to be defined. Make sure this
+# still works if the user renames m4_undefine but not _m4_undefine.
+m4_copy([m4_undefine], [_m4_undefine])
+m4_define([m4_undefine],
+[m4_if([$#], [0], [[$0]],
+ [$#], [1], [m4_ifdef([$1], [_m4_undefine([$1])],
+ [m4_fatal([$0: undefined macro: $1])])],
+ [m4_foreach([_m4_macro], [$@], [$0(_m4_defn([_m4_macro]))])])])
+
+# _m4_wrap(PRE, POST)
+# -------------------
+# Helper macro for m4_wrap and m4_wrap_lifo. Allows nested calls to
+# m4_wrap within wrapped text. Use _m4_defn and _m4_popdef for speed.
+m4_define([_m4_wrap],
+[m4_ifdef([$0_text],
+ [m4_define([$0_text], [$1]_m4_defn([$0_text])[$2])],
+ [m4_builtin([m4wrap], [m4_unquote(
+ _m4_defn([$0_text])_m4_popdef([$0_text]))])m4_define([$0_text], [$1$2])])])
+
+# m4_wrap(TEXT)
+# -------------
+# Append TEXT to the list of hooks to be executed at the end of input.
+# Whereas the order of the original may be LIFO in the underlying m4,
+# this version is always FIFO.
+m4_define([m4_wrap],
+[_m4_wrap([], [$1[]])])
+
+# m4_wrap_lifo(TEXT)
+# ------------------
+# Prepend TEXT to the list of hooks to be executed at the end of input.
+# Whereas the order of m4_wrap may be FIFO in the underlying m4, this
+# version is always LIFO.
+m4_define([m4_wrap_lifo],
+[_m4_wrap([$1[]])])
+
+## ------------------------- ##
+## 7. Quoting manipulation. ##
+## ------------------------- ##
+
+
+# m4_apply(MACRO, LIST)
+# ---------------------
+# Invoke MACRO, with arguments provided from the quoted list of
+# comma-separated quoted arguments. If LIST is empty, invoke MACRO
+# without arguments. The expansion will not be concatenated with
+# subsequent text.
+m4_define([m4_apply],
+[m4_if([$2], [], [$1], [$1($2)])[]])
+
+# _m4_apply(MACRO, LIST)
+# ----------------------
+# Like m4_apply, except do nothing if LIST is empty.
+m4_define([_m4_apply],
+[m4_if([$2], [], [], [$1($2)[]])])
+
+
+# m4_count(ARGS)
+# --------------
+# Return a count of how many ARGS are present.
+m4_define([m4_count], [$#])
+
+
+# m4_do(STRING, ...)
+# ------------------
+# This macro invokes all its arguments (in sequence, of course). It is
+# useful for making your macros more structured and readable by dropping
+# unnecessary dnl's and have the macros indented properly. No concatenation
+# occurs after a STRING; use m4_unquote(m4_join(,STRING)) for that.
+#
+# Please keep foreach.m4 in sync with any adjustments made here.
+m4_define([m4_do],
+[m4_if([$#], 0, [],
+ [$#], 1, [$1[]],
+ [$1[]$0(m4_shift($@))])])
+
+
+# m4_dquote(ARGS)
+# ---------------
+# Return ARGS as a quoted list of quoted arguments.
+m4_define([m4_dquote], [[$@]])
+
+
+# m4_dquote_elt(ARGS)
+# -------------------
+# Return ARGS as an unquoted list of double-quoted arguments.
+#
+# Please keep foreach.m4 in sync with any adjustments made here.
+m4_define([m4_dquote_elt],
+[m4_if([$#], [0], [],
+ [$#], [1], [[[$1]]],
+ [[[$1]],$0(m4_shift($@))])])
+
+
+# m4_echo(ARGS)
+# -------------
+# Return the ARGS, with the same level of quoting. Whitespace after
+# unquoted commas are consumed.
+m4_define([m4_echo], [$@])
+
+
+# m4_expand(ARG)
+# --------------
+# Return the expansion of ARG as a single string. Unlike m4_quote($1), this
+# correctly preserves whitespace following single-quoted commas that appeared
+# within ARG.
+#
+# m4_define([active], [ACT, IVE])
+# m4_define([active2], [[ACT, IVE]])
+# m4_quote(active, active2)
+# => ACT,IVE,ACT, IVE
+# m4_expand([active, active2])
+# => ACT, IVE, ACT, IVE
+#
+# Unfortunately, due to limitations in m4, ARG must expand to something
+# with balanced quotes (use quadrigraphs to get around this). The input
+# is not likely to have unbalanced -=<{(/)}>=- quotes, and it is possible
+# to have unbalanced (), provided it was specified with proper [] quotes.
+#
+# Exploit that extra () will group unquoted commas and the following
+# whitespace, then convert () to []. m4_bpatsubst can't handle newlines
+# inside $1, and m4_substr strips quoting. So we (ab)use m4_changequote.
+m4_define([m4_expand], [_$0(-=<{($1)}>=-)])
+m4_define([_m4_expand],
+[m4_changequote([-=<{(], [)}>=-])$1m4_changequote([, ])])
+
+
+# m4_ignore(ARGS)
+# ---------------
+# Expands to nothing. Useful for conditionally ignoring an arbitrary
+# number of arguments (see _m4_list_cmp for an example).
+m4_define([m4_ignore])
+
+
+# m4_make_list(ARGS)
+# ------------------
+# Similar to m4_dquote, this creates a quoted list of quoted ARGS. This
+# version is less efficient than m4_dquote, but separates each argument
+# with a comma and newline, rather than just comma, for readability.
+# When developing an m4sugar algorithm, you could temporarily use
+# m4_pushdef([m4_dquote],m4_defn([m4_make_list]))
+# around your code to make debugging easier.
+m4_define([m4_make_list], [m4_join([,
+], m4_dquote_elt($@))])
+
+
+# m4_noquote(STRING)
+# ------------------
+# Return the result of ignoring all quotes in STRING and invoking the
+# macros it contains. Amongst other things, this is useful for enabling
+# macro invocations inside strings with [] blocks (for instance regexps
+# and help-strings). On the other hand, since all quotes are disabled,
+# any macro expanded during this time that relies on nested [] quoting
+# will likely crash and burn. This macro is seldom useful; consider
+# m4_unquote or m4_expand instead.
+m4_define([m4_noquote],
+[m4_changequote([-=<{(],[)}>=-])$1-=<{()}>=-m4_changequote([,])])
+
+
+# m4_quote(ARGS)
+# --------------
+# Return ARGS as a single argument. Any whitespace after unquoted commas
+# is stripped. There is always output, even when there were no arguments.
+#
+# It is important to realize the difference between `m4_quote(exp)' and
+# `[exp]': in the first case you obtain the quoted *result* of the
+# expansion of EXP, while in the latter you just obtain the string
+# `exp'.
+m4_define([m4_quote], [[$*]])
+
+
+# _m4_quote(ARGS)
+# ---------------
+# Like m4_quote, except that when there are no arguments, there is no
+# output. For conditional scenarios (such as passing _m4_quote as the
+# macro name in m4_mapall), this feature can be used to distinguish between
+# one argument of the empty string vs. no arguments. However, in the
+# normal case with arguments present, this is less efficient than m4_quote.
+m4_define([_m4_quote],
+[m4_if([$#], [0], [], [[$*]])])
+
+
+# m4_reverse(ARGS)
+# ----------------
+# Output ARGS in reverse order.
+#
+# Please keep foreach.m4 in sync with any adjustments made here.
+m4_define([m4_reverse],
+[m4_if([$#], [0], [], [$#], [1], [[$1]],
+ [$0(m4_shift($@)), [$1]])])
+
+
+# m4_unquote(ARGS)
+# ----------------
+# Remove one layer of quotes from each ARG, performing one level of
+# expansion. For one argument, m4_unquote([arg]) is more efficient than
+# m4_do([arg]), but for multiple arguments, the difference is that
+# m4_unquote separates arguments with commas while m4_do concatenates.
+# Follow this macro with [] if concatenation with subsequent text is
+# undesired.
+m4_define([m4_unquote], [$*])
+
+
+## -------------------------- ##
+## 8. Implementing m4 loops. ##
+## -------------------------- ##
+
+
+# m4_for(VARIABLE, FIRST, LAST, [STEP = +/-1], EXPRESSION)
+# --------------------------------------------------------
+# Expand EXPRESSION defining VARIABLE to FROM, FROM + 1, ..., TO with
+# increments of STEP. Both limits are included, and bounds are
+# checked for consistency. The algorithm is robust to indirect
+# VARIABLE names. Changing VARIABLE inside EXPRESSION will not impact
+# the number of iterations.
+#
+# Uses _m4_defn for speed, and avoid dnl in the macro body.
+m4_define([m4_for],
+[m4_pushdef([$1], m4_eval([$2]))]dnl
+[m4_cond([m4_eval(([$3]) > ([$2]))], 1,
+ [m4_pushdef([_m4_step], m4_eval(m4_default([$4],
+ 1)))m4_assert(_m4_step > 0)_$0([$1], _m4_defn([$1]),
+ m4_eval((([$3]) - ([$2])) / _m4_step * _m4_step + ([$2])),
+ _m4_step, [$5])],
+ [m4_eval(([$3]) < ([$2]))], 1,
+ [m4_pushdef([_m4_step], m4_eval(m4_default([$4],
+ -1)))m4_assert(_m4_step < 0)_$0([$1], _m4_defn([$1]),
+ m4_eval((([$2]) - ([$3])) / -(_m4_step) * _m4_step + ([$2])),
+ _m4_step, [$5])],
+ [m4_pushdef([_m4_step])$5])[]]dnl
+[m4_popdef([_m4_step], [$1])])
+
+
+# _m4_for(VARIABLE, COUNT, LAST, STEP, EXPRESSION)
+# ------------------------------------------------
+# Core of the loop, no consistency checks, all arguments are plain
+# numbers. Define VARIABLE to COUNT, expand EXPRESSION, then alter
+# COUNT by STEP and iterate if COUNT is not LAST.
+m4_define([_m4_for],
+[m4_define([$1], [$2])$5[]m4_if([$2], [$3], [],
+ [$0([$1], m4_eval([$2 + $4]), [$3], [$4], [$5])])])
+
+
+# Implementing `foreach' loops in m4 is much more tricky than it may
+# seem. For example, the old M4 1.4.4 manual had an incorrect example,
+# which looked like this (when translated to m4sugar):
+#
+# | # foreach(VAR, (LIST), STMT)
+# | m4_define([foreach],
+# | [m4_pushdef([$1])_foreach([$1], [$2], [$3])m4_popdef([$1])])
+# | m4_define([_arg1], [$1])
+# | m4_define([_foreach],
+# | [m4_if([$2], [()], ,
+# | [m4_define([$1], _arg1$2)$3[]_foreach([$1], (m4_shift$2), [$3])])])
+#
+# But then if you run
+#
+# | m4_define(a, 1)
+# | m4_define(b, 2)
+# | m4_define(c, 3)
+# | foreach([f], [([a], [(b], [c)])], [echo f
+# | ])
+#
+# it gives
+#
+# => echo 1
+# => echo (2,3)
+#
+# which is not what is expected.
+#
+# Of course the problem is that many quotes are missing. So you add
+# plenty of quotes at random places, until you reach the expected
+# result. Alternatively, if you are a quoting wizard, you directly
+# reach the following implementation (but if you really did, then
+# apply to the maintenance of m4sugar!).
+#
+# | # foreach(VAR, (LIST), STMT)
+# | m4_define([foreach], [m4_pushdef([$1])_foreach($@)m4_popdef([$1])])
+# | m4_define([_arg1], [[$1]])
+# | m4_define([_foreach],
+# | [m4_if($2, [()], ,
+# | [m4_define([$1], [_arg1$2])$3[]_foreach([$1], [(m4_shift$2)], [$3])])])
+#
+# which this time answers
+#
+# => echo a
+# => echo (b
+# => echo c)
+#
+# Bingo!
+#
+# Well, not quite.
+#
+# With a better look, you realize that the parens are more a pain than
+# a help: since anyway you need to quote properly the list, you end up
+# with always using an outermost pair of parens and an outermost pair
+# of quotes. Rejecting the parens both eases the implementation, and
+# simplifies the use:
+#
+# | # foreach(VAR, (LIST), STMT)
+# | m4_define([foreach], [m4_pushdef([$1])_foreach($@)m4_popdef([$1])])
+# | m4_define([_arg1], [$1])
+# | m4_define([_foreach],
+# | [m4_if($2, [], ,
+# | [m4_define([$1], [_arg1($2)])$3[]_foreach([$1], [m4_shift($2)], [$3])])])
+#
+#
+# Now, just replace the `$2' with `m4_quote($2)' in the outer `m4_if'
+# to improve robustness, and you come up with a nice implementation
+# that doesn't require extra parentheses in the user's LIST.
+#
+# But wait - now the algorithm is quadratic, because every recursion of
+# the algorithm keeps the entire LIST and merely adds another m4_shift to
+# the quoted text. If the user has a lot of elements in LIST, you can
+# bring the system to its knees with the memory m4 then requires, or trip
+# the m4 --nesting-limit recursion factor. The only way to avoid
+# quadratic growth is ensure m4_shift is expanded prior to the recursion.
+# Hence the design below.
+#
+# The M4 manual now includes a chapter devoted to this issue, with
+# the lessons learned from m4sugar. And still, this design is only
+# optimal for M4 1.6; see foreach.m4 for yet more comments on why
+# M4 1.4.x uses yet another implementation.
+
+
+# m4_foreach(VARIABLE, LIST, EXPRESSION)
+# --------------------------------------
+#
+# Expand EXPRESSION assigning each value of the LIST to VARIABLE.
+# LIST should have the form `item_1, item_2, ..., item_n', i.e. the
+# whole list must *quoted*. Quote members too if you don't want them
+# to be expanded.
+#
+# This macro is robust to active symbols:
+# | m4_define(active, [ACT, IVE])
+# | m4_foreach(Var, [active, active], [-Var-])
+# => -ACT--IVE--ACT--IVE-
+#
+# | m4_foreach(Var, [[active], [active]], [-Var-])
+# => -ACT, IVE--ACT, IVE-
+#
+# | m4_foreach(Var, [[[active]], [[active]]], [-Var-])
+# => -active--active-
+#
+# This macro is called frequently, so avoid extra expansions such as
+# m4_ifval and dnl. Also, since $2 might be quite large, try to use it
+# as little as possible in _m4_foreach; each extra use requires that much
+# more memory for expansion. So, rather than directly compare $2 against
+# [] and use m4_car/m4_cdr for recursion, we instead unbox the list (which
+# requires swapping the argument order in the helper), insert an ignored
+# third argument, and use m4_shift3 to detect when recursion is complete.
+#
+# Please keep foreach.m4 in sync with any adjustments made here.
+m4_define([m4_foreach],
+[m4_if([$2], [], [],
+ [m4_pushdef([$1])_$0([$1], [$3], [], $2)m4_popdef([$1])])])
+
+m4_define([_m4_foreach],
+[m4_if([$#], [3], [],
+ [m4_define([$1], [$4])$2[]$0([$1], [$2], m4_shift3($@))])])
+
+
+# m4_foreach_w(VARIABLE, LIST, EXPRESSION)
+# ----------------------------------------
+#
+# Like m4_foreach, but the list is whitespace separated.
+#
+# This macro is robust to active symbols:
+# m4_foreach_w([Var], [ active
+# b act\
+# ive ], [-Var-])end
+# => -active--b--active-end
+#
+m4_define([m4_foreach_w],
+[m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])
+
+
+# m4_map(MACRO, LIST)
+# m4_mapall(MACRO, LIST)
+# ----------------------
+# Invoke MACRO($1), MACRO($2) etc. where $1, $2... are the elements of
+# LIST. $1, $2... must in turn be lists, appropriate for m4_apply.
+# If LIST contains an empty sublist, m4_map skips the expansion of
+# MACRO, while m4_mapall expands MACRO with no arguments.
+#
+# Since LIST may be quite large, we want to minimize how often it
+# appears in the expansion. Rather than use m4_car/m4_cdr iteration,
+# we unbox the list, ignore the second argument, and use m4_shift2 to
+# detect the end of recursion. The mismatch in () is intentional; see
+# _m4_map. For m4_map, an empty list behaves like an empty sublist
+# and gets ignored; for m4_mapall, we must special-case the empty
+# list.
+#
+# Please keep foreach.m4 in sync with any adjustments made here.
+m4_define([m4_map],
+[_m4_map([_m4_apply([$1]], [], $2)])
+
+m4_define([m4_mapall],
+[m4_if([$2], [], [],
+ [_m4_map([m4_apply([$1]], [], $2)])])
+
+
+# m4_map_sep(MACRO, SEPARATOR, LIST)
+# m4_mapall_sep(MACRO, SEPARATOR, LIST)
+# -------------------------------------
+# Invoke MACRO($1), SEPARATOR, MACRO($2), ..., MACRO($N) where $1,
+# $2... $N are the elements of LIST, and are in turn lists appropriate
+# for m4_apply. SEPARATOR is expanded, in order to allow the creation
+# of a list of arguments by using a single-quoted comma as the
+# separator. For each empty sublist, m4_map_sep skips the expansion
+# of MACRO and SEPARATOR, while m4_mapall_sep expands MACRO with no
+# arguments.
+#
+# For m4_mapall_sep, merely expand the first iteration without the
+# separator, then include separator as part of subsequent recursion;
+# but avoid extra expansion of LIST's side-effects via a helper macro.
+# For m4_map_sep, things are trickier - we don't know if the first
+# list element is an empty sublist, so we must define a self-modifying
+# helper macro and use that as the separator instead.
+m4_define([m4_map_sep],
+[m4_pushdef([m4_Sep], [m4_define([m4_Sep], _m4_defn([m4_unquote]))])]dnl
+[_m4_map([_m4_apply([m4_Sep([$2])[]$1]], [], $3)m4_popdef([m4_Sep])])
+
+m4_define([m4_mapall_sep],
+[m4_if([$3], [], [], [_$0([$1], [$2], $3)])])
+
+m4_define([_m4_mapall_sep],
+[m4_apply([$1], [$3])_m4_map([m4_apply([$2[]$1]], m4_shift2($@))])
+
+# _m4_map(PREFIX, IGNORED, SUBLIST, ...)
+# --------------------------------------
+# Common implementation for all four m4_map variants. The mismatch in
+# the number of () is intentional. PREFIX must supply a form of
+# m4_apply, the open `(', and the MACRO to be applied. Each iteration
+# then appends `,', the current SUBLIST and the closing `)', then
+# recurses to the next SUBLIST. IGNORED is an aid to ending recursion
+# efficiently.
+#
+# Please keep foreach.m4 in sync with any adjustments made here.
+m4_define([_m4_map],
+[m4_if([$#], [2], [],
+ [$1, [$3])$0([$1], m4_shift2($@))])])
+
+# m4_transform(EXPRESSION, ARG...)
+# --------------------------------
+# Expand EXPRESSION([ARG]) for each argument. More efficient than
+# m4_foreach([var], [ARG...], [EXPRESSION(m4_defn([var]))])
+#
+# Please keep foreach.m4 in sync with any adjustments made here.
+m4_define([m4_transform],
+[m4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])],
+ [$#], [1], [],
+ [$#], [2], [$1([$2])[]],
+ [$1([$2])[]$0([$1], m4_shift2($@))])])
+
+
+# m4_transform_pair(EXPRESSION, [END-EXPR = EXPRESSION], ARG...)
+# --------------------------------------------------------------
+# Perform a pairwise grouping of consecutive ARGs, by expanding
+# EXPRESSION([ARG1], [ARG2]). If there are an odd number of ARGs, the
+# final argument is expanded with END-EXPR([ARGn]).
+#
+# For example:
+# m4_define([show], [($*)m4_newline])dnl
+# m4_transform_pair([show], [], [a], [b], [c], [d], [e])dnl
+# => (a,b)
+# => (c,d)
+# => (e)
+#
+# Please keep foreach.m4 in sync with any adjustments made here.
+m4_define([m4_transform_pair],
+[m4_if([$#], [0], [m4_fatal([$0: too few arguments: $#])],
+ [$#], [1], [m4_fatal([$0: too few arguments: $#: $1])],
+ [$#], [2], [],
+ [$#], [3], [m4_default([$2], [$1])([$3])[]],
+ [$#], [4], [$1([$3], [$4])[]],
+ [$1([$3], [$4])[]$0([$1], [$2], m4_shift(m4_shift3($@)))])])
+
+
+## --------------------------- ##
+## 9. More diversion support. ##
+## --------------------------- ##
+
+
+# _m4_divert(DIVERSION-NAME or NUMBER)
+# ------------------------------------
+# If DIVERSION-NAME is the name of a diversion, return its number,
+# otherwise if it is a NUMBER return it.
+m4_define([_m4_divert],
+[m4_ifdef([_m4_divert($1)],
+ [m4_indir([_m4_divert($1)])],
+ [$1])])
+
+# KILL is only used to suppress output.
+m4_define([_m4_divert(KILL)], -1)
+
+# The empty diversion name is a synonym for 0.
+m4_define([_m4_divert()], 0)
+
+
+# _m4_divert_n_stack
+# ------------------
+# Print m4_divert_stack with newline prepended, if it's nonempty.
+m4_define([_m4_divert_n_stack],
+[m4_ifdef([m4_divert_stack], [
+_m4_defn([m4_divert_stack])])])
+
+
+# m4_divert(DIVERSION-NAME)
+# -------------------------
+# Change the diversion stream to DIVERSION-NAME.
+m4_define([m4_divert],
+[m4_define([m4_divert_stack], m4_location[: $0: $1]_m4_divert_n_stack)]dnl
+[m4_builtin([divert], _m4_divert([$1]))])
+
+
+# m4_divert_push(DIVERSION-NAME)
+# ------------------------------
+# Change the diversion stream to DIVERSION-NAME, while stacking old values.
+m4_define([m4_divert_push],
+[m4_pushdef([m4_divert_stack], m4_location[: $0: $1]_m4_divert_n_stack)]dnl
+[m4_pushdef([_m4_divert_diversion], [$1])]dnl
+[m4_builtin([divert], _m4_divert([$1]))])
+
+
+# m4_divert_pop([DIVERSION-NAME])
+# -------------------------------
+# Change the diversion stream to its previous value, unstacking it.
+# If specified, verify we left DIVERSION-NAME.
+# When we pop the last value from the stack, we divert to -1.
+m4_define([m4_divert_pop],
+[m4_ifndef([_m4_divert_diversion],
+ [m4_fatal([too many m4_divert_pop])])]dnl
+[m4_if([$1], [], [],
+ [$1], _m4_defn([_m4_divert_diversion]), [],
+ [m4_fatal([$0($1): diversion mismatch: ]_m4_divert_n_stack)])]dnl
+[_m4_popdef([m4_divert_stack], [_m4_divert_diversion])]dnl
+[m4_builtin([divert],
+ m4_ifdef([_m4_divert_diversion],
+ [_m4_divert(_m4_defn([_m4_divert_diversion]))],
+ -1))])
+
+
+# m4_divert_text(DIVERSION-NAME, CONTENT)
+# ---------------------------------------
+# Output CONTENT into DIVERSION-NAME (which may be a number actually).
+# An end of line is appended for free to CONTENT.
+m4_define([m4_divert_text],
+[m4_divert_push([$1])$2
+m4_divert_pop([$1])])
+
+
+# m4_divert_once(DIVERSION-NAME, CONTENT)
+# ---------------------------------------
+# Output CONTENT into DIVERSION-NAME once, if not already there.
+# An end of line is appended for free to CONTENT.
+m4_define([m4_divert_once],
+[m4_expand_once([m4_divert_text([$1], [$2])])])
+
+
+# m4_undivert(DIVERSION-NAME)
+# ---------------------------
+# Undivert DIVERSION-NAME. Unlike the M4 version, this only takes a single
+# diversion identifier, and should not be used to undivert files.
+m4_define([m4_undivert],
+[m4_builtin([undivert], _m4_divert([$1]))])
+
+
+## --------------------------------------------- ##
+## 10. Defining macros with bells and whistles. ##
+## --------------------------------------------- ##
+
+# `m4_defun' is basically `m4_define' but it equips the macro with the
+# needed machinery for `m4_require'. A macro must be m4_defun'd if
+# either it is m4_require'd, or it m4_require's.
+#
+# Two things deserve attention and are detailed below:
+# 1. Implementation of m4_require
+# 2. Keeping track of the expansion stack
+#
+# 1. Implementation of m4_require
+# ===============================
+#
+# Of course m4_defun AC_PROVIDE's the macro, so that a macro which has
+# been expanded is not expanded again when m4_require'd, but the
+# difficult part is the proper expansion of macros when they are
+# m4_require'd.
+#
+# The implementation is based on two ideas, (i) using diversions to
+# prepare the expansion of the macro and its dependencies (by Franc,ois
+# Pinard), and (ii) expand the most recently m4_require'd macros _after_
+# the previous macros (by Axel Thimm).
+#
+#
+# The first idea: why use diversions?
+# -----------------------------------
+#
+# When a macro requires another, the other macro is expanded in new
+# diversion, GROW. When the outer macro is fully expanded, we first
+# undivert the most nested diversions (GROW - 1...), and finally
+# undivert GROW. To understand why we need several diversions,
+# consider the following example:
+#
+# | m4_defun([TEST1], [Test...REQUIRE([TEST2])1])
+# | m4_defun([TEST2], [Test...REQUIRE([TEST3])2])
+# | m4_defun([TEST3], [Test...3])
+#
+# Because m4_require is not required to be first in the outer macros, we
+# must keep the expansions of the various levels of m4_require separated.
+# Right before executing the epilogue of TEST1, we have:
+#
+# GROW - 2: Test...3
+# GROW - 1: Test...2
+# GROW: Test...1
+# BODY:
+#
+# Finally the epilogue of TEST1 undiverts GROW - 2, GROW - 1, and
+# GROW into the regular flow, BODY.
+#
+# GROW - 2:
+# GROW - 1:
+# GROW:
+# BODY: Test...3; Test...2; Test...1
+#
+# (The semicolons are here for clarification, but of course are not
+# emitted.) This is what Autoconf 2.0 (I think) to 2.13 (I'm sure)
+# implement.
+#
+#
+# The second idea: first required first out
+# -----------------------------------------
+#
+# The natural implementation of the idea above is buggy and produces
+# very surprising results in some situations. Let's consider the
+# following example to explain the bug:
+#
+# | m4_defun([TEST1], [REQUIRE([TEST2a])REQUIRE([TEST2b])])
+# | m4_defun([TEST2a], [])
+# | m4_defun([TEST2b], [REQUIRE([TEST3])])
+# | m4_defun([TEST3], [REQUIRE([TEST2a])])
+# |
+# | AC_INIT
+# | TEST1
+#
+# The dependencies between the macros are:
+#
+# 3 --- 2b
+# / \ is m4_require'd by
+# / \ left -------------------- right
+# 2a ------------ 1
+#
+# If you strictly apply the rules given in the previous section you get:
+#
+# GROW - 2: TEST3
+# GROW - 1: TEST2a; TEST2b
+# GROW: TEST1
+# BODY:
+#
+# (TEST2a, although required by TEST3 is not expanded in GROW - 3
+# because is has already been expanded before in GROW - 1, so it has
+# been AC_PROVIDE'd, so it is not expanded again) so when you undivert
+# the stack of diversions, you get:
+#
+# GROW - 2:
+# GROW - 1:
+# GROW:
+# BODY: TEST3; TEST2a; TEST2b; TEST1
+#
+# i.e., TEST2a is expanded after TEST3 although the latter required the
+# former.
+#
+# Starting from 2.50, we use an implementation provided by Axel Thimm.
+# The idea is simple: the order in which macros are emitted must be the
+# same as the one in which macros are expanded. (The bug above can
+# indeed be described as: a macro has been AC_PROVIDE'd before its
+# dependent, but it is emitted after: the lack of correlation between
+# emission and expansion order is guilty).
+#
+# How to do that? You keep the stack of diversions to elaborate the
+# macros, but each time a macro is fully expanded, emit it immediately.
+#
+# In the example above, when TEST2a is expanded, but it's epilogue is
+# not run yet, you have:
+#
+# GROW - 2:
+# GROW - 1: TEST2a
+# GROW: Elaboration of TEST1
+# BODY:
+#
+# The epilogue of TEST2a emits it immediately:
+#
+# GROW - 2:
+# GROW - 1:
+# GROW: Elaboration of TEST1
+# BODY: TEST2a
+#
+# TEST2b then requires TEST3, so right before the epilogue of TEST3, you
+# have:
+#
+# GROW - 2: TEST3
+# GROW - 1: Elaboration of TEST2b
+# GROW: Elaboration of TEST1
+# BODY: TEST2a
+#
+# The epilogue of TEST3 emits it:
+#
+# GROW - 2:
+# GROW - 1: Elaboration of TEST2b
+# GROW: Elaboration of TEST1
+# BODY: TEST2a; TEST3
+#
+# TEST2b is now completely expanded, and emitted:
+#
+# GROW - 2:
+# GROW - 1:
+# GROW: Elaboration of TEST1
+# BODY: TEST2a; TEST3; TEST2b
+#
+# and finally, TEST1 is finished and emitted:
+#
+# GROW - 2:
+# GROW - 1:
+# GROW:
+# BODY: TEST2a; TEST3; TEST2b: TEST1
+#
+# The idea is simple, but the implementation is a bit evolved. If you
+# are like me, you will want to see the actual functioning of this
+# implementation to be convinced. The next section gives the full
+# details.
+#
+#
+# The Axel Thimm implementation at work
+# -------------------------------------
+#
+# We consider the macros above, and this configure.ac:
+#
+# AC_INIT
+# TEST1
+#
+# You should keep the definitions of _m4_defun_pro, _m4_defun_epi, and
+# m4_require at hand to follow the steps.
+#
+# This implements tries not to assume that the current diversion is
+# BODY, so as soon as a macro (m4_defun'd) is expanded, we first
+# record the current diversion under the name _m4_divert_dump (denoted
+# DUMP below for short). This introduces an important difference with
+# the previous versions of Autoconf: you cannot use m4_require if you
+# are not inside an m4_defun'd macro, and especially, you cannot
+# m4_require directly from the top level.
+#
+# We have not tried to simulate the old behavior (better yet, we
+# diagnose it), because it is too dangerous: a macro m4_require'd from
+# the top level is expanded before the body of `configure', i.e., before
+# any other test was run. I let you imagine the result of requiring
+# AC_STDC_HEADERS for instance, before AC_PROG_CC was actually run....
+#
+# After AC_INIT was run, the current diversion is BODY.
+# * AC_INIT was run
+# DUMP: undefined
+# diversion stack: BODY |-
+#
+# * TEST1 is expanded
+# The prologue of TEST1 sets _m4_divert_dump, which is the diversion
+# where the current elaboration will be dumped, to the current
+# diversion. It also m4_divert_push to GROW, where the full
+# expansion of TEST1 and its dependencies will be elaborated.
+# DUMP: BODY
+# BODY: empty
+# diversions: GROW, BODY |-
+#
+# * TEST1 requires TEST2a
+# _m4_require_call m4_divert_pushes another temporary diversion,
+# GROW - 1, and expands TEST2a in there.
+# DUMP: BODY
+# BODY: empty
+# GROW - 1: TEST2a
+# diversions: GROW - 1, GROW, BODY |-
+# Than the content of the temporary diversion is moved to DUMP and the
+# temporary diversion is popped.
+# DUMP: BODY
+# BODY: TEST2a
+# diversions: GROW, BODY |-
+#
+# * TEST1 requires TEST2b
+# Again, _m4_require_call pushes GROW - 1 and heads to expand TEST2b.
+# DUMP: BODY
+# BODY: TEST2a
+# diversions: GROW - 1, GROW, BODY |-
+#
+# * TEST2b requires TEST3
+# _m4_require_call pushes GROW - 2 and expands TEST3 here.
+# (TEST3 requires TEST2a, but TEST2a has already been m4_provide'd, so
+# nothing happens.)
+# DUMP: BODY
+# BODY: TEST2a
+# GROW - 2: TEST3
+# diversions: GROW - 2, GROW - 1, GROW, BODY |-
+# Than the diversion is appended to DUMP, and popped.
+# DUMP: BODY
+# BODY: TEST2a; TEST3
+# diversions: GROW - 1, GROW, BODY |-
+#
+# * TEST1 requires TEST2b (contd.)
+# The content of TEST2b is expanded...
+# DUMP: BODY
+# BODY: TEST2a; TEST3
+# GROW - 1: TEST2b,
+# diversions: GROW - 1, GROW, BODY |-
+# ... and moved to DUMP.
+# DUMP: BODY
+# BODY: TEST2a; TEST3; TEST2b
+# diversions: GROW, BODY |-
+#
+# * TEST1 is expanded: epilogue
+# TEST1's own content is in GROW...
+# DUMP: BODY
+# BODY: TEST2a; TEST3; TEST2b
+# GROW: TEST1
+# diversions: BODY |-
+# ... and it's epilogue moves it to DUMP and then undefines DUMP.
+# DUMP: undefined
+# BODY: TEST2a; TEST3; TEST2b; TEST1
+# diversions: BODY |-
+#
+#
+# 2. Keeping track of the expansion stack
+# =======================================
+#
+# When M4 expansion goes wrong it is often extremely hard to find the
+# path amongst macros that drove to the failure. What is needed is
+# the stack of macro `calls'. One could imagine that GNU M4 would
+# maintain a stack of macro expansions, unfortunately it doesn't, so
+# we do it by hand. This is of course extremely costly, but the help
+# this stack provides is worth it. Nevertheless to limit the
+# performance penalty this is implemented only for m4_defun'd macros,
+# not for define'd macros.
+#
+# The scheme is simplistic: each time we enter an m4_defun'd macros,
+# we prepend its name in m4_expansion_stack, and when we exit the
+# macro, we remove it (thanks to pushdef/popdef).
+#
+# In addition, we want to detect circular m4_require dependencies.
+# Each time we expand a macro FOO we define _m4_expanding(FOO); and
+# m4_require(BAR) simply checks whether _m4_expanding(BAR) is defined.
+
+
+# m4_expansion_stack_push(TEXT)
+# -----------------------------
+m4_define([m4_expansion_stack_push],
+[m4_pushdef([m4_expansion_stack],
+ [$1]m4_ifdef([m4_expansion_stack], [
+_m4_defn([m4_expansion_stack])]))])
+
+
+# m4_expansion_stack_pop
+# ----------------------
+m4_define([m4_expansion_stack_pop],
+[m4_popdef([m4_expansion_stack])])
+
+
+# m4_expansion_stack_dump
+# -----------------------
+# Dump the expansion stack.
+m4_define([m4_expansion_stack_dump],
+[m4_ifdef([m4_expansion_stack],
+ [m4_errprintn(_m4_defn([m4_expansion_stack]))])dnl
+m4_errprintn(m4_location[: the top level])])
+
+
+# _m4_divert(GROW)
+# ----------------
+# This diversion is used by the m4_defun/m4_require machinery. It is
+# important to keep room before GROW because for each nested
+# AC_REQUIRE we use an additional diversion (i.e., two m4_require's
+# will use GROW - 2. More than 3 levels has never seemed to be
+# needed.)
+#
+# ...
+# - GROW - 2
+# m4_require'd code, 2 level deep
+# - GROW - 1
+# m4_require'd code, 1 level deep
+# - GROW
+# m4_defun'd macros are elaborated here.
+
+m4_define([_m4_divert(GROW)], 10000)
+
+
+# _m4_defun_pro(MACRO-NAME)
+# -------------------------
+# The prologue for Autoconf macros.
+#
+# This is called frequently, so minimize the number of macro invocations
+# by avoiding dnl and m4_defn overhead.
+m4_define([_m4_defun_pro],
+m4_do([[m4_ifdef([m4_expansion_stack], [], [_m4_defun_pro_outer[]])]],
+ [[m4_expansion_stack_push(_m4_defn(
+ [m4_location($1)])[: $1 is expanded from...])]],
+ [[m4_pushdef([_m4_expanding($1)])]]))
+
+m4_define([_m4_defun_pro_outer],
+[m4_copy([_m4_divert_diversion], [_m4_divert_dump])m4_divert_push([GROW])])
+
+# _m4_defun_epi(MACRO-NAME)
+# -------------------------
+# The Epilogue for Autoconf macros. MACRO-NAME only helps tracing
+# the PRO/EPI pairs.
+#
+# This is called frequently, so minimize the number of macro invocations
+# by avoiding dnl and m4_popdef overhead.
+m4_define([_m4_defun_epi],
+m4_do([[_m4_popdef([_m4_expanding($1)])]],
+ [[m4_expansion_stack_pop()]],
+ [[m4_ifdef([m4_expansion_stack], [], [_m4_defun_epi_outer[]])]],
+ [[m4_provide([$1])]]))
+
+m4_define([_m4_defun_epi_outer],
+[_m4_undefine([_m4_divert_dump])m4_divert_pop([GROW])m4_undivert([GROW])])
+
+
+# m4_defun(NAME, EXPANSION)
+# -------------------------
+# Define a macro which automatically provides itself. Add machinery
+# so the macro automatically switches expansion to the diversion
+# stack if it is not already using it. In this case, once finished,
+# it will bring back all the code accumulated in the diversion stack.
+# This, combined with m4_require, achieves the topological ordering of
+# macros. We don't use this macro to define some frequently called
+# macros that are not involved in ordering constraints, to save m4
+# processing.
+m4_define([m4_defun],
+[m4_define([m4_location($1)], m4_location)dnl
+m4_define([$1],
+ [_m4_defun_pro([$1])$2[]_m4_defun_epi([$1])])])
+
+
+# m4_defun_once(NAME, EXPANSION)
+# ------------------------------
+# As m4_defun, but issues the EXPANSION only once, and warns if used
+# several times.
+m4_define([m4_defun_once],
+[m4_define([m4_location($1)], m4_location)dnl
+m4_define([$1],
+ [m4_provide_if([$1],
+ [m4_warn([syntax], [$1 invoked multiple times])],
+ [_m4_defun_pro([$1])$2[]_m4_defun_epi([$1])])])])
+
+
+# m4_pattern_forbid(ERE, [WHY])
+# -----------------------------
+# Declare that no token matching the forbidden extended regular
+# expression ERE should be seen in the output unless...
+m4_define([m4_pattern_forbid], [])
+
+
+# m4_pattern_allow(ERE)
+# ---------------------
+# ... that token also matches the allowed extended regular expression ERE.
+# Both used via traces.
+m4_define([m4_pattern_allow], [])
+
+
+## --------------------------------- ##
+## 11. Dependencies between macros. ##
+## --------------------------------- ##
+
+
+# m4_before(THIS-MACRO-NAME, CALLED-MACRO-NAME)
+# ---------------------------------------------
+# Issue a warning if CALLED-MACRO-NAME was called before THIS-MACRO-NAME.
+m4_define([m4_before],
+[m4_provide_if([$2],
+ [m4_warn([syntax], [$2 was called before $1])])])
+
+
+# m4_require(NAME-TO-CHECK, [BODY-TO-EXPAND = NAME-TO-CHECK])
+# -----------------------------------------------------------
+# If NAME-TO-CHECK has never been expanded (actually, if it is not
+# m4_provide'd), expand BODY-TO-EXPAND *before* the current macro
+# expansion. Once expanded, emit it in _m4_divert_dump. Keep track
+# of the m4_require chain in m4_expansion_stack.
+#
+# The normal cases are:
+#
+# - NAME-TO-CHECK == BODY-TO-EXPAND
+# Which you can use for regular macros with or without arguments, e.g.,
+# m4_require([AC_PROG_CC], [AC_PROG_CC])
+# m4_require([AC_CHECK_HEADERS(limits.h)], [AC_CHECK_HEADERS(limits.h)])
+# which is just the same as
+# m4_require([AC_PROG_CC])
+# m4_require([AC_CHECK_HEADERS(limits.h)])
+#
+# - BODY-TO-EXPAND == m4_indir([NAME-TO-CHECK])
+# In the case of macros with irregular names. For instance:
+# m4_require([AC_LANG_COMPILER(C)], [indir([AC_LANG_COMPILER(C)])])
+# which means `if the macro named `AC_LANG_COMPILER(C)' (the parens are
+# part of the name, it is not an argument) has not been run, then
+# call it.'
+# Had you used
+# m4_require([AC_LANG_COMPILER(C)], [AC_LANG_COMPILER(C)])
+# then m4_require would have tried to expand `AC_LANG_COMPILER(C)', i.e.,
+# call the macro `AC_LANG_COMPILER' with `C' as argument.
+#
+# You could argue that `AC_LANG_COMPILER', when it receives an argument
+# such as `C' should dispatch the call to `AC_LANG_COMPILER(C)'. But this
+# `extension' prevents `AC_LANG_COMPILER' from having actual arguments that
+# it passes to `AC_LANG_COMPILER(C)'.
+#
+# This is called frequently, so minimize the number of macro invocations
+# by avoiding dnl and other overhead on the common path.
+m4_define([m4_require],
+m4_do([[m4_ifdef([_m4_expanding($1)],
+ [m4_fatal([$0: circular dependency of $1])])]],
+ [[m4_ifdef([_m4_divert_dump], [],
+ [m4_fatal([$0($1): cannot be used outside of an ]dnl
+m4_bmatch([$0], [^AC_], [[AC_DEFUN]], [[m4_defun]])['d macro])])]],
+ [[m4_provide_if([$1],
+ [],
+ [_m4_require_call([$1], [$2])])]]))
+
+
+# _m4_require_call(NAME-TO-CHECK, [BODY-TO-EXPAND = NAME-TO-CHECK])
+# -----------------------------------------------------------------
+# If m4_require decides to expand the body, it calls this macro.
+#
+# This is called frequently, so minimize the number of macro invocations
+# by avoiding dnl and other overhead on the common path.
+m4_define([_m4_require_call],
+m4_do([[m4_define([_m4_divert_grow], m4_decr(_m4_divert_grow))]],
+ [[m4_divert_push(_m4_divert_grow)]],
+ [[m4_default([$2], [$1])
+m4_provide_if([$1],
+ [],
+ [m4_warn([syntax],
+ [$1 is m4_require'd but not m4_defun'd])])]],
+ [[m4_divert(_m4_defn([_m4_divert_dump]))]],
+ [[m4_undivert(_m4_divert_grow)]],
+ [[m4_divert_pop(_m4_divert_grow)]],
+ [[m4_define([_m4_divert_grow], m4_incr(_m4_divert_grow))]]))
+
+
+# _m4_divert_grow
+# ---------------
+# The counter for _m4_require_call.
+m4_define([_m4_divert_grow], _m4_divert([GROW]))
+
+
+# m4_expand_once(TEXT, [WITNESS = TEXT])
+# --------------------------------------
+# If TEXT has never been expanded, expand it *here*. Use WITNESS as
+# as a memory that TEXT has already been expanded.
+m4_define([m4_expand_once],
+[m4_provide_if(m4_ifval([$2], [[$2]], [[$1]]),
+ [],
+ [m4_provide(m4_ifval([$2], [[$2]], [[$1]]))[]$1])])
+
+
+# m4_provide(MACRO-NAME)
+# ----------------------
+m4_define([m4_provide],
+[m4_define([m4_provide($1)])])
+
+
+# m4_provide_if(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -------------------------------------------------------
+# If MACRO-NAME is provided do IF-PROVIDED, else IF-NOT-PROVIDED.
+# The purpose of this macro is to provide the user with a means to
+# check macros which are provided without letting her know how the
+# information is coded.
+m4_define([m4_provide_if],
+[m4_ifdef([m4_provide($1)],
+ [$2], [$3])])
+
+
+## --------------------- ##
+## 12. Text processing. ##
+## --------------------- ##
+
+
+# m4_cr_letters
+# m4_cr_LETTERS
+# m4_cr_Letters
+# -------------
+m4_define([m4_cr_letters], [abcdefghijklmnopqrstuvwxyz])
+m4_define([m4_cr_LETTERS], [ABCDEFGHIJKLMNOPQRSTUVWXYZ])
+m4_define([m4_cr_Letters],
+m4_defn([m4_cr_letters])dnl
+m4_defn([m4_cr_LETTERS])dnl
+)
+
+
+# m4_cr_digits
+# ------------
+m4_define([m4_cr_digits], [0123456789])
+
+
+# m4_cr_alnum
+# -----------
+m4_define([m4_cr_alnum],
+m4_defn([m4_cr_Letters])dnl
+m4_defn([m4_cr_digits])dnl
+)
+
+
+# m4_cr_symbols1
+# m4_cr_symbols2
+# -------------------------------
+m4_define([m4_cr_symbols1],
+m4_defn([m4_cr_Letters])dnl
+_)
+
+m4_define([m4_cr_symbols2],
+m4_defn([m4_cr_symbols1])dnl
+m4_defn([m4_cr_digits])dnl
+)
+
+# m4_cr_all
+# ---------
+# The character range representing everything, with `-' as the last
+# character, since it is special to m4_translit. Use with care, because
+# it contains characters special to M4 (fortunately, both ASCII and EBCDIC
+# have [] in order, so m4_defn([m4_cr_all]) remains a valid string). It
+# also contains characters special to terminals, so it should never be
+# displayed in an error message. Also, attempts to map [ and ] to other
+# characters via m4_translit must deal with the fact that m4_translit does
+# not add quotes to the output.
+#
+# It is mainly useful in generating inverted character range maps, for use
+# in places where m4_translit is faster than an equivalent m4_bpatsubst;
+# the regex `[^a-z]' is equivalent to:
+# m4_translit(m4_dquote(m4_defn([m4_cr_all])), [a-z])
+m4_define([m4_cr_all],
+m4_translit(m4_dquote(m4_format(m4_dquote(m4_for(
+ ,1,255,,[[%c]]))m4_for([i],1,255,,[,i]))), [-])-)
+
+
+# _m4_define_cr_not(CATEGORY)
+# ---------------------------
+# Define m4_cr_not_CATEGORY as the inverse of m4_cr_CATEGORY.
+m4_define([_m4_define_cr_not],
+[m4_define([m4_cr_not_$1],
+ m4_translit(m4_dquote(m4_defn([m4_cr_all])),
+ m4_defn([m4_cr_$1])))])
+
+
+# m4_cr_not_letters
+# m4_cr_not_LETTERS
+# m4_cr_not_Letters
+# m4_cr_not_digits
+# m4_cr_not_alnum
+# m4_cr_not_symbols1
+# m4_cr_not_symbols2
+# ------------------
+# Inverse character sets
+_m4_define_cr_not([letters])
+_m4_define_cr_not([LETTERS])
+_m4_define_cr_not([Letters])
+_m4_define_cr_not([digits])
+_m4_define_cr_not([alnum])
+_m4_define_cr_not([symbols1])
+_m4_define_cr_not([symbols2])
+
+
+# m4_newline
+# ----------
+# Expands to a newline. Exists for formatting reasons.
+m4_define([m4_newline], [
+])
+
+
+# m4_re_escape(STRING)
+# --------------------
+# Escape RE active characters in STRING.
+m4_define([m4_re_escape],
+[m4_bpatsubst([$1],
+ [[][*+.?\^$]], [\\\&])])
+
+
+# m4_re_string
+# ------------
+# Regexp for `[a-zA-Z_0-9]*'
+# m4_dquote provides literal [] for the character class.
+m4_define([m4_re_string],
+m4_dquote(m4_defn([m4_cr_symbols2]))dnl
+[*]dnl
+)
+
+
+# m4_re_word
+# ----------
+# Regexp for `[a-zA-Z_][a-zA-Z_0-9]*'
+m4_define([m4_re_word],
+m4_dquote(m4_defn([m4_cr_symbols1]))dnl
+m4_defn([m4_re_string])dnl
+)
+
+
+# m4_tolower(STRING)
+# m4_toupper(STRING)
+# ------------------
+# These macros convert STRING to lowercase or uppercase.
+#
+# Rather than expand the m4_defn each time, we inline them up front.
+m4_define([m4_tolower],
+[m4_translit([$1], ]m4_dquote(m4_defn([m4_cr_LETTERS]))[,
+ ]m4_dquote(m4_defn([m4_cr_letters]))[)])
+m4_define([m4_toupper],
+[m4_translit([$1], ]m4_dquote(m4_defn([m4_cr_letters]))[,
+ ]m4_dquote(m4_defn([m4_cr_LETTERS]))[)])
+
+
+# m4_split(STRING, [REGEXP])
+# --------------------------
+#
+# Split STRING into an m4 list of quoted elements. The elements are
+# quoted with [ and ]. Beginning spaces and end spaces *are kept*.
+# Use m4_strip to remove them.
+#
+# REGEXP specifies where to split. Default is [\t ]+.
+#
+# If STRING is empty, the result is an empty list.
+#
+# Pay attention to the m4_changequotes. When m4 reads the definition of
+# m4_split, it still has quotes set to [ and ]. Luckily, these are matched
+# in the macro body, so the definition is stored correctly. Use the same
+# alternate quotes as m4_noquote; it must be unlikely to appear in $1.
+#
+# Also, notice that $1 is quoted twice, since we want the result to
+# be quoted. Then you should understand that the argument of
+# patsubst is -=<{(STRING)}>=- (i.e., with additional -=<{( and )}>=-).
+#
+# This macro is safe on active symbols, i.e.:
+# m4_define(active, ACTIVE)
+# m4_split([active active ])end
+# => [active], [active], []end
+#
+# Optimize on regex of ` ' (space), since m4_foreach_w already guarantees
+# that the list contains single space separators, and a common case is
+# splitting a single-element list. This macro is called frequently,
+# so avoid unnecessary dnl inside the definition.
+m4_define([m4_split],
+[m4_if([$1], [], [],
+ [$2], [ ], [m4_if(m4_index([$1], [ ]), [-1], [[[$1]]], [_$0($@)])],
+ [$2], [], [_$0([$1], [[ ]+])],
+ [_$0($@)])])
+
+m4_define([_m4_split],
+[m4_changequote([-=<{(],[)}>=-])]dnl
+[[m4_bpatsubst(-=<{(-=<{($1)}>=-)}>=-, -=<{($2)}>=-,
+ -=<{(], [)}>=-)]m4_changequote([, ])])
+
+
+
+# m4_flatten(STRING)
+# ------------------
+# If STRING contains end of lines, replace them with spaces. If there
+# are backslashed end of lines, remove them. This macro is safe with
+# active symbols.
+# m4_define(active, ACTIVE)
+# m4_flatten([active
+# act\
+# ive])end
+# => active activeend
+#
+# In m4, m4_bpatsubst is expensive, so first check for a newline.
+m4_define([m4_flatten],
+[m4_if(m4_index([$1], [
+]), [-1], [[$1]],
+ [m4_translit(m4_bpatsubst([[[$1]]], [\\
+]), [
+], [ ])])])
+
+
+# m4_strip(STRING)
+# ----------------
+# Expands into STRING with tabs and spaces singled out into a single
+# space, and removing leading and trailing spaces.
+#
+# This macro is robust to active symbols.
+# m4_define(active, ACTIVE)
+# m4_strip([ active <tab> <tab>active ])end
+# => active activeend
+#
+# First, notice that we guarantee trailing space. Why? Because regular
+# expressions are greedy, and `.* ?' would always group the space into the
+# .* portion. The algorithm is simpler by avoiding `?' at the end. The
+# algorithm correctly strips everything if STRING is just ` '.
+#
+# Then notice the second pattern: it is in charge of removing the
+# leading/trailing spaces. Why not just `[^ ]'? Because they are
+# applied to over-quoted strings, i.e. more or less [STRING], due
+# to the limitations of m4_bpatsubsts. So the leading space in STRING
+# is the *second* character; equally for the trailing space.
+m4_define([m4_strip],
+[m4_bpatsubsts([$1 ],
+ [[ ]+], [ ],
+ [^. ?\(.*\) .$], [[[\1]]])])
+
+
+# m4_normalize(STRING)
+# --------------------
+# Apply m4_flatten and m4_strip to STRING.
+#
+# The argument is quoted, so that the macro is robust to active symbols:
+#
+# m4_define(active, ACTIVE)
+# m4_normalize([ act\
+# ive
+# active ])end
+# => active activeend
+
+m4_define([m4_normalize],
+[m4_strip(m4_flatten([$1]))])
+
+
+
+# m4_join(SEP, ARG1, ARG2...)
+# ---------------------------
+# Produce ARG1SEPARG2...SEPARGn. Avoid back-to-back SEP when a given ARG
+# is the empty string. No expansion is performed on SEP or ARGs.
+#
+# Since the number of arguments to join can be arbitrarily long, we
+# want to avoid having more than one $@ in the macro definition;
+# otherwise, the expansion would require twice the memory of the already
+# long list. Hence, m4_join merely looks for the first non-empty element,
+# and outputs just that element; while _m4_join looks for all non-empty
+# elements, and outputs them following a separator. The final trick to
+# note is that we decide between recursing with $0 or _$0 based on the
+# nested m4_if ending with `_'.
+#
+# Please keep foreach.m4 in sync with any adjustments made here.
+m4_define([m4_join],
+[m4_if([$#], [1], [],
+ [$#], [2], [[$2]],
+ [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift2($@))])])
+m4_define([_m4_join],
+[m4_if([$#$2], [2], [],
+ [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift2($@))])])
+
+# m4_joinall(SEP, ARG1, ARG2...)
+# ------------------------------
+# Produce ARG1SEPARG2...SEPARGn. An empty ARG results in back-to-back SEP.
+# No expansion is performed on SEP or ARGs.
+#
+# Please keep foreach.m4 in sync with any adjustments made here.
+m4_define([m4_joinall], [[$2]_$0([$1], m4_shift($@))])
+m4_define([_m4_joinall],
+[m4_if([$#], [2], [], [[$1$3]$0([$1], m4_shift2($@))])])
+
+# m4_combine([SEPARATOR], PREFIX-LIST, [INFIX], SUFFIX...)
+# --------------------------------------------------------
+# Produce the pairwise combination of every element in the quoted,
+# comma-separated PREFIX-LIST with every element from the SUFFIX arguments.
+# Each pair is joined with INFIX, and pairs are separated by SEPARATOR.
+# No expansion occurs on SEPARATOR, INFIX, or elements of either list.
+#
+# For example:
+# m4_combine([, ], [[a], [b], [c]], [-], [1], [2], [3])
+# => a-1, a-2, a-3, b-1, b-2, b-3, c-1, c-2, c-3
+#
+# In order to have the correct number of SEPARATORs, we use a temporary
+# variable that redefines itself after the first use. We must use defn
+# rather than overquoting in case PREFIX or SUFFIX contains $1, but use
+# _m4_defn for speed. Likewise, we compute the m4_shift3 only once,
+# rather than in each iteration of the outer m4_foreach.
+m4_define([m4_combine],
+[m4_if(m4_eval([$# > 3]), [1],
+ [m4_pushdef([m4_Separator], [m4_define([m4_Separator],
+ _m4_defn([m4_echo]))])]]dnl
+[[m4_foreach([m4_Prefix], [$2],
+ [m4_foreach([m4_Suffix], ]m4_dquote(m4_dquote(m4_shift3($@)))[,
+ [m4_Separator([$1])[]_m4_defn([m4_Prefix])[$3]_m4_defn(
+ [m4_Suffix])])])]]dnl
+[[_m4_popdef([m4_Separator])])])
+
+
+# m4_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus `SEPARATOR`'STRING'
+# at the end. It is valid to use this macro with MACRO-NAME undefined,
+# in which case no SEPARATOR is added. Be aware that the criterion is
+# `not being defined', and not `not being empty'.
+#
+# Note that neither STRING nor SEPARATOR are expanded here; rather, when
+# you expand MACRO-NAME, they will be expanded at that point in time.
+#
+# This macro is robust to active symbols. It can be used to grow
+# strings.
+#
+# | m4_define(active, ACTIVE)dnl
+# | m4_append([sentence], [This is an])dnl
+# | m4_append([sentence], [ active ])dnl
+# | m4_append([sentence], [symbol.])dnl
+# | sentence
+# | m4_undefine([active])dnl
+# | sentence
+# => This is an ACTIVE symbol.
+# => This is an active symbol.
+#
+# It can be used to define hooks.
+#
+# | m4_define(active, ACTIVE)dnl
+# | m4_append([hooks], [m4_define([act1], [act2])])dnl
+# | m4_append([hooks], [m4_define([act2], [active])])dnl
+# | m4_undefine([active])dnl
+# | act1
+# | hooks
+# | act1
+# => act1
+# =>
+# => active
+#
+# It can also be used to create lists, although this particular usage was
+# broken prior to autoconf 2.62.
+# | m4_append([list], [one], [, ])dnl
+# | m4_append([list], [two], [, ])dnl
+# | m4_append([list], [three], [, ])dnl
+# | list
+# | m4_dquote(list)
+# => one, two, three
+# => [one],[two],[three]
+#
+# Note that m4_append can benefit from amortized O(n) m4 behavior, if
+# the underlying m4 implementation is smart enough to avoid copying existing
+# contents when enlarging a macro's definition into any pre-allocated storage
+# (m4 1.4.x unfortunately does not implement this optimization). We do
+# not implement m4_prepend, since it is inherently O(n^2) (pre-allocated
+# storage only occurs at the end of a macro, so the existing contents must
+# always be moved).
+#
+# Use _m4_defn for speed.
+m4_define([m4_append],
+[m4_define([$1], m4_ifdef([$1], [_m4_defn([$1])[$3]])[$2])])
+
+
+# m4_append_uniq(MACRO-NAME, STRING, [SEPARATOR], [IF-UNIQ], [IF-DUP])
+# --------------------------------------------------------------------
+# Like `m4_append', but append only if not yet present. Additionally,
+# expand IF-UNIQ if STRING was appended, or IF-DUP if STRING was already
+# present. Also, warn if SEPARATOR is not empty and occurs within STRING,
+# as the algorithm no longer guarantees uniqueness.
+#
+# Note that while m4_append can be O(n) (depending on the quality of the
+# underlying M4 implementation), m4_append_uniq is inherently O(n^2)
+# because each append operation searches the entire string.
+m4_define([m4_append_uniq],
+[m4_ifval([$3], [m4_if(m4_index([$2], [$3]), [-1], [],
+ [m4_warn([syntax],
+ [$0: `$2' contains `$3'])])])_$0($@)])
+m4_define([_m4_append_uniq],
+[m4_ifdef([$1],
+ [m4_if(m4_index([$3]_m4_defn([$1])[$3], [$3$2$3]), [-1],
+ [m4_append([$1], [$2], [$3])$4], [$5])],
+ [m4_define([$1], [$2])$4])])
+
+# m4_append_uniq_w(MACRO-NAME, STRINGS)
+# -------------------------------------
+# For each of the words in the whitespace separated list STRINGS, append
+# only the unique strings to the definition of MACRO-NAME.
+#
+# Use _m4_defn for speed.
+m4_define([m4_append_uniq_w],
+[m4_foreach_w([m4_Word], [$2],
+ [_m4_append_uniq([$1], _m4_defn([m4_Word]), [ ])])])
+
+
+# m4_text_wrap(STRING, [PREFIX], [FIRST-PREFIX], [WIDTH])
+# -------------------------------------------------------
+# Expands into STRING wrapped to hold in WIDTH columns (default = 79).
+# If PREFIX is given, each line is prefixed with it. If FIRST-PREFIX is
+# specified, then the first line is prefixed with it. As a special case,
+# if the length of FIRST-PREFIX is greater than that of PREFIX, then
+# FIRST-PREFIX will be left alone on the first line.
+#
+# No expansion occurs on the contents STRING, PREFIX, or FIRST-PREFIX,
+# although quadrigraphs are correctly recognized.
+#
+# Typical outputs are:
+#
+# m4_text_wrap([Short string */], [ ], [/* ], 20)
+# => /* Short string */
+#
+# m4_text_wrap([Much longer string */], [ ], [/* ], 20)
+# => /* Much longer
+# => string */
+#
+# m4_text_wrap([Short doc.], [ ], [ --short ], 30)
+# => --short Short doc.
+#
+# m4_text_wrap([Short doc.], [ ], [ --too-wide ], 30)
+# => --too-wide
+# => Short doc.
+#
+# m4_text_wrap([Super long documentation.], [ ], [ --too-wide ], 30)
+# => --too-wide
+# => Super long
+# => documentation.
+#
+# FIXME: there is no checking of a longer PREFIX than WIDTH, but do
+# we really want to bother with people trying each single corner
+# of a software?
+#
+# This macro does not leave a trailing space behind the last word of a line,
+# which complicates it a bit. The algorithm is otherwise stupid and simple:
+# all the words are preceded by m4_Separator which is defined to empty for
+# the first word, and then ` ' (single space) for all the others.
+#
+# The algorithm uses a helper that uses $2 through $4 directly, rather than
+# using local variables, to avoid m4_defn overhead, or expansion swallowing
+# any $. It also bypasses m4_popdef overhead with _m4_popdef since no user
+# macro expansion occurs in the meantime. Also, the definition is written
+# with m4_do, to avoid time wasted on dnl during expansion (since this is
+# already a time-consuming macro).
+m4_define([m4_text_wrap],
+[_$0([$1], [$2], m4_if([$3], [], [[$2]], [[$3]]),
+ m4_if([$4], [], [79], [[$4]]))])
+m4_define([_m4_text_wrap],
+m4_do(dnl set up local variables, to avoid repeated calculations
+[[m4_pushdef([m4_Indent], m4_qlen([$2]))]],
+[[m4_pushdef([m4_Cursor], m4_qlen([$3]))]],
+[[m4_pushdef([m4_Separator], [m4_define([m4_Separator], [ ])])]],
+dnl expand the first prefix, then check its length vs. regular prefix
+dnl same length: nothing special
+dnl prefix1 longer: output on line by itself, and reset cursor
+dnl prefix1 shorter: pad to length of prefix, and reset cursor
+[[[$3]m4_cond([m4_Cursor], m4_Indent, [],
+ [m4_eval(m4_Cursor > m4_Indent)], [1], [
+[$2]m4_define([m4_Cursor], m4_Indent)],
+ [m4_format([%*s], m4_max([0],
+ m4_eval(m4_Indent - m4_Cursor)), [])m4_define([m4_Cursor], m4_Indent)])]],
+dnl now, for each word, compute the curser after the word is output, then
+dnl check if the cursor would exceed the wrap column
+dnl if so, reset cursor, and insert newline and prefix
+dnl if not, insert the separator (usually a space)
+dnl either way, insert the word
+[[m4_foreach_w([m4_Word], [$1],
+ [m4_define([m4_Cursor],
+ m4_eval(m4_Cursor + m4_qlen(_m4_defn([m4_Word]))
+ + 1))m4_if(m4_eval(m4_Cursor > ([$4])),
+ [1], [m4_define([m4_Cursor],
+ m4_eval(m4_Indent + m4_qlen(_m4_defn([m4_Word])) + 1))
+[$2]],
+ [m4_Separator[]])_m4_defn([m4_Word])])]],
+dnl finally, clean up the local variabls
+[[_m4_popdef([m4_Separator], [m4_Cursor], [m4_Indent])]]))
+
+
+# m4_text_box(MESSAGE, [FRAME-CHARACTER = `-'])
+# ---------------------------------------------
+# Turn MESSAGE into:
+# ## ------- ##
+# ## MESSAGE ##
+# ## ------- ##
+# using FRAME-CHARACTER in the border.
+m4_define([m4_text_box],
+[m4_pushdef([m4_Border],
+ m4_translit(m4_format([%*s], m4_qlen(m4_expand([$1])), []),
+ [ ], m4_if([$2], [], [[-]], [[$2]])))dnl
+@%:@@%:@ m4_Border @%:@@%:@
+@%:@@%:@ $1 @%:@@%:@
+@%:@@%:@ m4_Border @%:@@%:@_m4_popdef([m4_Border])dnl
+])
+
+
+# m4_qlen(STRING)
+# ---------------
+# Expands to the length of STRING after autom4te converts all quadrigraphs.
+#
+# Avoid bpatsubsts for the common case of no quadrigraphs.
+m4_define([m4_qlen],
+[m4_if(m4_index([$1], [@]), [-1], [m4_len([$1])],
+ [m4_len(m4_bpatsubst([[$1]],
+ [@\(\(<:\|:>\|S|\|%:\|\{:\|:\}\)\(@\)\|&t@\)],
+ [\3]))])])
+
+
+# m4_qdelta(STRING)
+# -----------------
+# Expands to the net change in the length of STRING from autom4te converting the
+# quadrigraphs in STRING. This number is always negative or zero.
+m4_define([m4_qdelta],
+[m4_eval(m4_qlen([$1]) - m4_len([$1]))])
+
+
+
+## ----------------------- ##
+## 13. Number processing. ##
+## ----------------------- ##
+
+# m4_cmp(A, B)
+# ------------
+# Compare two integer expressions.
+# A < B -> -1
+# A = B -> 0
+# A > B -> 1
+m4_define([m4_cmp],
+[m4_eval((([$1]) > ([$2])) - (([$1]) < ([$2])))])
+
+
+# m4_list_cmp(A, B)
+# -----------------
+#
+# Compare the two lists of integer expressions A and B. For instance:
+# m4_list_cmp([1, 0], [1]) -> 0
+# m4_list_cmp([1, 0], [1, 0]) -> 0
+# m4_list_cmp([1, 2], [1, 0]) -> 1
+# m4_list_cmp([1, 2, 3], [1, 2]) -> 1
+# m4_list_cmp([1, 2, -3], [1, 2]) -> -1
+# m4_list_cmp([1, 0], [1, 2]) -> -1
+# m4_list_cmp([1], [1, 2]) -> -1
+# m4_define([xa], [oops])dnl
+# m4_list_cmp([[0xa]], [5+5]) -> 0
+#
+# Rather than face the overhead of m4_case, we use a helper function whose
+# expansion includes the name of the macro to invoke on the tail, either
+# m4_ignore or m4_unquote. This is particularly useful when comparing
+# long lists, since less text is being expanded for deciding when to end
+# recursion. The recursion is between a pair of macros that alternate
+# which list is trimmed by one element; this is more efficient than
+# calling m4_cdr on both lists from a single macro. Guarantee exactly
+# one expansion of both lists' side effects.
+#
+# Please keep foreach.m4 in sync with any adjustments made here.
+m4_define([m4_list_cmp],
+[_$0_raw(m4_dquote($1), m4_dquote($2))])
+
+m4_define([_m4_list_cmp_raw],
+[m4_if([$1], [$2], [0], [_m4_list_cmp_1([$1], $2)])])
+
+m4_define([_m4_list_cmp],
+[m4_if([$1], [], [0m4_ignore], [$2], [0], [m4_unquote], [$2m4_ignore])])
+
+m4_define([_m4_list_cmp_1],
+[_m4_list_cmp_2([$2], [m4_shift2($@)], $1)])
+
+m4_define([_m4_list_cmp_2],
+[_m4_list_cmp([$1$3], m4_cmp([$3+0], [$1+0]))(
+ [_m4_list_cmp_1(m4_dquote(m4_shift3($@)), $2)])])
+
+# m4_max(EXPR, ...)
+# m4_min(EXPR, ...)
+# -----------------
+# Return the decimal value of the maximum (or minimum) in a series of
+# integer expressions.
+#
+# M4 1.4.x doesn't provide ?:. Hence this huge m4_eval. Avoid m4_eval
+# if both arguments are identical, but be aware of m4_max(0xa, 10) (hence
+# the use of <=, not just <, in the second multiply).
+#
+# Please keep foreach.m4 in sync with any adjustments made here.
+m4_define([m4_max],
+[m4_if([$#], [0], [m4_fatal([too few arguments to $0])],
+ [$#], [1], [m4_eval([$1])],
+ [$#$1], [2$2], [m4_eval([$1])],
+ [$#], [2], [_$0($@)],
+ [_m4_minmax([_$0], $@)])])
+
+m4_define([_m4_max],
+[m4_eval((([$1]) > ([$2])) * ([$1]) + (([$1]) <= ([$2])) * ([$2]))])
+
+m4_define([m4_min],
+[m4_if([$#], [0], [m4_fatal([too few arguments to $0])],
+ [$#], [1], [m4_eval([$1])],
+ [$#$1], [2$2], [m4_eval([$1])],
+ [$#], [2], [_$0($@)],
+ [_m4_minmax([_$0], $@)])])
+
+m4_define([_m4_min],
+[m4_eval((([$1]) < ([$2])) * ([$1]) + (([$1]) >= ([$2])) * ([$2]))])
+
+# _m4_minmax(METHOD, ARG1, ARG2...)
+# ---------------------------------
+# Common recursion code for m4_max and m4_min. METHOD must be _m4_max
+# or _m4_min, and there must be at least two arguments to combine.
+#
+# Please keep foreach.m4 in sync with any adjustments made here.
+m4_define([_m4_minmax],
+[m4_if([$#], [3], [$1([$2], [$3])],
+ [$0([$1], $1([$2], [$3]), m4_shift3($@))])])
+
+
+# m4_sign(A)
+# ----------
+# The sign of the integer expression A.
+m4_define([m4_sign],
+[m4_eval((([$1]) > 0) - (([$1]) < 0))])
+
+
+
+## ------------------------ ##
+## 14. Version processing. ##
+## ------------------------ ##
+
+
+# m4_version_unletter(VERSION)
+# ----------------------------
+# Normalize beta version numbers with letters to numeric expressions, which
+# can then be handed to m4_eval for the purpose of comparison.
+#
+# Nl -> (N+1).-1.(l#)
+#
+# for example:
+# [2.14a] -> [2.14+1.-1.[0r36:a]] -> 2.15.-1.10
+# [2.14b] -> [2.15+1.-1.[0r36:b]] -> 2.15.-1.11
+# [2.61aa.b] -> [2.61+1.-1.[0r36:aa],+1.-1.[0r36:b]] -> 2.62.-1.370.1.-1.11
+#
+# This macro expects reasonable version numbers, but can handle double
+# letters and does not expand any macros. Original version strings can
+# use both `.' and `-' separators.
+#
+# Inline constant expansions, to avoid m4_defn overhead.
+# _m4_version_unletter is the real workhorse used by m4_version_compare,
+# but since [0r36:a] is less readable than 10, we provide a wrapper for
+# human use.
+m4_define([m4_version_unletter],
+[m4_map_sep([m4_eval], [.],
+ m4_dquote(m4_dquote_elt(m4_unquote(_$0([$1])))))])
+m4_define([_m4_version_unletter],
+[m4_bpatsubst(m4_translit([[[$1]]], [.-], [,,]),]dnl
+m4_dquote(m4_dquote(m4_defn([m4_cr_Letters])))[[+],
+ [+1,-1,[0r36:\&]])])
+
+
+# m4_version_compare(VERSION-1, VERSION-2)
+# ----------------------------------------
+# Compare the two version numbers and expand into
+# -1 if VERSION-1 < VERSION-2
+# 0 if =
+# 1 if >
+#
+# Since _m4_version_unletter does not output side effects, we can
+# safely bypass the overhead of m4_version_cmp.
+m4_define([m4_version_compare],
+[_m4_list_cmp_raw(_m4_version_unletter([$1]), _m4_version_unletter([$2]))])
+
+
+# m4_PACKAGE_NAME
+# m4_PACKAGE_TARNAME
+# m4_PACKAGE_VERSION
+# m4_PACKAGE_STRING
+# m4_PACKAGE_BUGREPORT
+# --------------------
+# If m4sugar/version.m4 is present, then define version strings. This
+# file is optional, provided by Autoconf but absent in Bison.
+m4_sinclude([m4sugar/version.m4])
+
+
+# m4_version_prereq(VERSION, [IF-OK], [IF-NOT = FAIL])
+# ----------------------------------------------------
+# Check this Autoconf version against VERSION.
+m4_define([m4_version_prereq],
+m4_ifdef([m4_PACKAGE_VERSION],
+[[m4_if(m4_version_compare(]m4_dquote(m4_defn([m4_PACKAGE_VERSION]))[, [$1]),
+ [-1],
+ [m4_default([$3],
+ [m4_fatal([Autoconf version $1 or higher is required],
+ [63])])],
+ [$2])]],
+[[m4_fatal([m4sugar/version.m4 not found])]]))
+
+
+## ------------------ ##
+## 15. Set handling. ##
+## ------------------ ##
+
+# Autoconf likes to create arbitrarily large sets; for example, as of
+# this writing, the configure.ac for coreutils tracks a set of more
+# than 400 AC_SUBST. How do we track all of these set members,
+# without introducing duplicates? We could use m4_append_uniq, with
+# the set NAME residing in the contents of the macro NAME.
+# Unfortunately, m4_append_uniq is quadratic for set creation, because
+# it costs O(n) to search the string for each of O(n) insertions; not
+# to mention that with m4 1.4.x, even using m4_append is slow, costing
+# O(n) rather than O(1) per insertion. Other set operations, not used
+# by Autoconf but still possible by manipulation of the definition
+# tracked in macro NAME, include O(n) deletion of one element and O(n)
+# computation of set size. Because the set is exposed to the user via
+# the definition of a single macro, we cannot cache any data about the
+# set without risking the cache being invalidated by the user
+# redefining NAME.
+#
+# Can we do better? Yes, because m4 gives us an O(1) search function
+# for free: ifdef. Additionally, even m4 1.4.x gives us an O(1)
+# insert operation for free: pushdef. But to use these, we must
+# represent the set via a group of macros; to keep the set consistent,
+# we must hide the set so that the user can only manipulate it through
+# accessor macros. The contents of the set are maintained through two
+# access points; _m4_set([name]) is a pushdef stack of values in the
+# set, useful for O(n) traversal of the set contents; while the
+# existence of _m4_set([name],value) with no particular value is
+# useful for O(1) querying of set membership. And since the user
+# cannot externally manipulate the set, we are free to add additional
+# caching macros for other performance improvements. Deletion can be
+# O(1) per element rather than O(n), by reworking the definition of
+# _m4_set([name],value) to be 0 or 1 based on current membership, and
+# adding _m4_set_cleanup(name) to defer the O(n) cleanup of
+# _m4_set([name]) until we have another reason to do an O(n)
+# traversal. The existence of _m4_set_cleanup(name) can then be used
+# elsewhere to determine if we must dereference _m4_set([name],value),
+# or assume that definition implies set membership. Finally, size can
+# be tracked in an O(1) fashion with _m4_set_size(name).
+#
+# The quoting in _m4_set([name],value) is chosen so that there is no
+# ambiguity with a set whose name contains a comma, and so that we can
+# supply the value via _m4_defn([_m4_set([name])]) without needing any
+# quote manipulation.
+
+# m4_set_add(SET, VALUE, [IF-UNIQ], [IF-DUP])
+# -------------------------------------------
+# Add VALUE as an element of SET. Expand IF-UNIQ on the first
+# addition, and IF-DUP if it is already in the set. Addition of one
+# element is O(1), such that overall set creation is O(n).
+#
+# We do not want to add a duplicate for a previously deleted but
+# unpruned element, but it is just as easy to check existence directly
+# as it is to query _m4_set_cleanup($1).
+m4_define([m4_set_add],
+[m4_ifdef([_m4_set([$1],$2)],
+ [m4_if(m4_indir([_m4_set([$1],$2)]), [0],
+ [m4_define([_m4_set([$1],$2)],
+ [1])_m4_set_size([$1], [m4_incr])$3], [$4])],
+ [m4_define([_m4_set([$1],$2)],
+ [1])m4_pushdef([_m4_set([$1])],
+ [$2])_m4_set_size([$1], [m4_incr])$3])])
+
+# m4_set_add_all(SET, VALUE...)
+# -----------------------------
+# Add each VALUE into SET. This is O(n) in the number of VALUEs, and
+# can be faster than calling m4_set_add for each VALUE.
+#
+# Implement two recursion helpers; the check variant is slower but
+# handles the case where an element has previously been removed but
+# not pruned. The recursion helpers ignore their second argument, so
+# that we can use the faster m4_shift2 and 2 arguments, rather than
+# _m4_shift2 and one argument, as the signal to end recursion.
+#
+# Please keep foreach.m4 in sync with any adjustments made here.
+m4_define([m4_set_add_all],
+[m4_define([_m4_set_size($1)], m4_eval(m4_set_size([$1])
+ + m4_len(m4_ifdef([_m4_set_cleanup($1)], [_$0_check], [_$0])([$1], $@))))])
+
+m4_define([_m4_set_add_all],
+[m4_if([$#], [2], [],
+ [m4_ifdef([_m4_set([$1],$3)], [],
+ [m4_define([_m4_set([$1],$3)], [1])m4_pushdef([_m4_set([$1])],
+ [$3])-])$0([$1], m4_shift2($@))])])
+
+m4_define([_m4_set_add_all_check],
+[m4_if([$#], [2], [],
+ [m4_set_add([$1], [$3])$0([$1], m4_shift2($@))])])
+
+# m4_set_contains(SET, VALUE, [IF-PRESENT], [IF-ABSENT])
+# ------------------------------------------------------
+# Expand IF-PRESENT if SET contains VALUE, otherwise expand IF-ABSENT.
+# This is always O(1).
+m4_define([m4_set_contains],
+[m4_ifdef([_m4_set_cleanup($1)],
+ [m4_if(m4_ifdef([_m4_set([$1],$2)],
+ [m4_indir([_m4_set([$1],$2)])], [0]), [1], [$3], [$4])],
+ [m4_ifdef([_m4_set([$1],$2)], [$3], [$4])])])
+
+# m4_set_contents(SET, [SEP])
+# ---------------------------
+# Expand to a single string containing all the elements in SET,
+# separated by SEP, without modifying SET. No provision is made for
+# disambiguating set elements that contain non-empty SEP as a
+# sub-string, or for recognizing a set that contains only the empty
+# string. Order of the output is not guaranteed. If any elements
+# have been previously removed from the set, this action will prune
+# the unused memory. This is O(n) in the size of the set before
+# pruning.
+#
+# Use _m4_popdef for speed. The existence of _m4_set_cleanup($1)
+# determines which version of _1 helper we use.
+m4_define([m4_set_contents],
+[m4_ifdef([_m4_set_cleanup($1)], [_$0_1c], [_$0_1])([$1])_$0_2([$1],
+ [_m4_defn([_m4_set_($1)])], [[$2]])])
+
+# _m4_set_contents_1(SET)
+# _m4_set_contents_1c(SET)
+# _m4_set_contents_2(SET, SEP, PREP)
+# ----------------------------------
+# Expand to a list of quoted elements currently in the set, separated
+# by SEP, and moving PREP in front of SEP on recursion. To avoid
+# nesting limit restrictions, the algorithm must be broken into two
+# parts; _1 destructively copies the stack in reverse into
+# _m4_set_($1), producing no output; then _2 destructively copies
+# _m4_set_($1) back into the stack in reverse. SEP is expanded while
+# _m4_set_($1) contains the current element, so a SEP containing
+# _m4_defn([_m4_set_($1)]) can produce output in the order the set was
+# created. Behavior is undefined if SEP tries to recursively list or
+# modify SET in any way other than calling m4_set_remove on the
+# current element. Use _1 if all entries in the stack are guaranteed
+# to be in the set, and _1c to prune removed entries. Uses _m4_defn
+# and _m4_popdef for speed.
+m4_define([_m4_set_contents_1],
+[m4_ifdef([_m4_set([$1])], [m4_pushdef([_m4_set_($1)],
+ _m4_defn([_m4_set([$1])]))_m4_popdef([_m4_set([$1])])$0([$1])])])
+
+m4_define([_m4_set_contents_1c],
+[m4_ifdef([_m4_set([$1])],
+ [m4_set_contains([$1], _m4_defn([_m4_set([$1])]),
+ [m4_pushdef([_m4_set_($1)], _m4_defn([_m4_set([$1])]))],
+ [_m4_popdef([_m4_set([$1],]_m4_defn(
+ [_m4_set([$1])])[)])])_m4_popdef([_m4_set([$1])])$0([$1])],
+ [_m4_popdef([_m4_set_cleanup($1)])])])
+
+m4_define([_m4_set_contents_2],
+[m4_ifdef([_m4_set_($1)], [m4_pushdef([_m4_set([$1])],
+ _m4_defn([_m4_set_($1)]))$2[]_m4_popdef([_m4_set_($1)])$0([$1], [$3$2])])])
+
+# m4_set_delete(SET)
+# ------------------
+# Delete all elements in SET, and reclaim any memory occupied by the
+# set. This is O(n) in the set size.
+#
+# Use _m4_defn and _m4_popdef for speed.
+m4_define([m4_set_delete],
+[m4_ifdef([_m4_set([$1])],
+ [_m4_popdef([_m4_set([$1],]_m4_defn([_m4_set([$1])])[)],
+ [_m4_set([$1])])$0([$1])],
+ [m4_ifdef([_m4_set_cleanup($1)],
+ [_m4_popdef([_m4_set_cleanup($1)])])m4_ifdef(
+ [_m4_set_size($1)],
+ [_m4_popdef([_m4_set_size($1)])])])])
+
+# m4_set_difference(SET1, SET2)
+# -----------------------------
+# Produce a LIST of quoted elements that occur in SET1 but not SET2.
+# Output a comma prior to any elements, to distinguish the empty
+# string from no elements. This can be directly used as a series of
+# arguments, such as for m4_join, or wrapped inside quotes for use in
+# m4_foreach. Order of the output is not guaranteed.
+#
+# Short-circuit the idempotence relation. Use _m4_defn for speed.
+m4_define([m4_set_difference],
+[m4_if([$1], [$2], [],
+ [m4_set_foreach([$1], [_m4_element],
+ [m4_set_contains([$2], _m4_defn([_m4_element]), [],
+ [,_m4_defn([_m4_element])])])])])
+
+# m4_set_dump(SET, [SEP])
+# -----------------------
+# Expand to a single string containing all the elements in SET,
+# separated by SEP, then delete SET. In general, if you only need to
+# list the contents once, this is faster than m4_set_contents. No
+# provision is made for disambiguating set elements that contain
+# non-empty SEP as a sub-string. Order of the output is not
+# guaranteed. This is O(n) in the size of the set before pruning.
+#
+# Use _m4_popdef for speed. Use existence of _m4_set_cleanup($1) to
+# decide if more expensive recursion is needed.
+m4_define([m4_set_dump],
+[m4_ifdef([_m4_set_size($1)],
+ [_m4_popdef([_m4_set_size($1)])])m4_ifdef([_m4_set_cleanup($1)],
+ [_$0_check], [_$0])([$1], [], [$2])])
+
+# _m4_set_dump(SET, SEP, PREP)
+# _m4_set_dump_check(SET, SEP, PREP)
+# ----------------------------------
+# Print SEP and the current element, then delete the element and
+# recurse with empty SEP changed to PREP. The check variant checks
+# whether the element has been previously removed. Use _m4_defn and
+# _m4_popdef for speed.
+m4_define([_m4_set_dump],
+[m4_ifdef([_m4_set([$1])],
+ [[$2]_m4_defn([_m4_set([$1])])_m4_popdef([_m4_set([$1],]_m4_defn(
+ [_m4_set([$1])])[)], [_m4_set([$1])])$0([$1], [$2$3])])])
+
+m4_define([_m4_set_dump_check],
+[m4_ifdef([_m4_set([$1])],
+ [m4_set_contains([$1], _m4_defn([_m4_set([$1])]),
+ [[$2]_m4_defn([_m4_set([$1])])])_m4_popdef(
+ [_m4_set([$1],]_m4_defn([_m4_set([$1])])[)],
+ [_m4_set([$1])])$0([$1], [$2$3])],
+ [_m4_popdef([_m4_set_cleanup($1)])])])
+
+# m4_set_empty(SET, [IF-EMPTY], [IF-ELEMENTS])
+# --------------------------------------------
+# Expand IF-EMPTY if SET has no elements, otherwise IF-ELEMENTS.
+m4_define([m4_set_empty],
+[m4_ifdef([_m4_set_size($1)],
+ [m4_if(m4_indir([_m4_set_size($1)]), [0], [$2], [$3])], [$2])])
+
+# m4_set_foreach(SET, VAR, ACTION)
+# --------------------------------
+# For each element of SET, define VAR to the element and expand
+# ACTION. ACTION should not recursively list SET's contents, add
+# elements to SET, nor delete any element from SET except the one
+# currently in VAR. The order that the elements are visited in is not
+# guaranteed. This is faster than the corresponding m4_foreach([VAR],
+# m4_indir([m4_dquote]m4_set_listc([SET])), [ACTION])
+m4_define([m4_set_foreach],
+[m4_pushdef([$2])m4_ifdef([_m4_set_cleanup($1)],
+ [_m4_set_contents_1c], [_m4_set_contents_1])([$1])_m4_set_contents_2([$1],
+ [m4_define([$2], _m4_defn([_m4_set_($1)]))$3[]])m4_popdef([$2])])
+
+# m4_set_intersection(SET1, SET2)
+# -------------------------------
+# Produce a LIST of quoted elements that occur in both SET1 or SET2.
+# Output a comma prior to any elements, to distinguish the empty
+# string from no elements. This can be directly used as a series of
+# arguments, such as for m4_join, or wrapped inside quotes for use in
+# m4_foreach. Order of the output is not guaranteed.
+#
+# Iterate over the smaller set, and short-circuit the idempotence
+# relation. Use _m4_defn for speed.
+m4_define([m4_set_intersection],
+[m4_if([$1], [$2], [m4_set_listc([$1])],
+ m4_eval(m4_set_size([$2]) < m4_set_size([$1])), [1], [$0([$2], [$1])],
+ [m4_set_foreach([$1], [_m4_element],
+ [m4_set_contains([$2], _m4_defn([_m4_element]),
+ [,_m4_defn([_m4_element])])])])])
+
+# m4_set_list(SET)
+# m4_set_listc(SET)
+# -----------------
+# Produce a LIST of quoted elements of SET. This can be directly used
+# as a series of arguments, such as for m4_join or m4_set_add_all, or
+# wrapped inside quotes for use in m4_foreach or m4_map. With
+# m4_set_list, there is no way to distinguish an empty set from a set
+# containing only the empty string; with m4_set_listc, a leading comma
+# is output if there are any elements.
+m4_define([m4_set_list],
+[m4_ifdef([_m4_set_cleanup($1)], [_m4_set_contents_1c],
+ [_m4_set_contents_1])([$1])_m4_set_contents_2([$1],
+ [_m4_defn([_m4_set_($1)])], [,])])
+
+m4_define([m4_set_listc],
+[m4_ifdef([_m4_set_cleanup($1)], [_m4_set_contents_1c],
+ [_m4_set_contents_1])([$1])_m4_set_contents_2([$1],
+ [,_m4_defn([_m4_set_($1)])])])
+
+# m4_set_remove(SET, VALUE, [IF-PRESENT], [IF-ABSENT])
+# ----------------------------------------------------
+# If VALUE is an element of SET, delete it and expand IF-PRESENT.
+# Otherwise expand IF-ABSENT. Deleting a single value is O(1),
+# although it leaves memory occupied until the next O(n) traversal of
+# the set which will compact the set.
+#
+# Optimize if the element being removed is the most recently added,
+# since defining _m4_set_cleanup($1) slows down so many other macros.
+# In particular, this plays well with m4_set_foreach.
+m4_define([m4_set_remove],
+[m4_set_contains([$1], [$2], [_m4_set_size([$1],
+ [m4_decr])m4_if(_m4_defn([_m4_set([$1])]), [$2],
+ [_m4_popdef([_m4_set([$1],$2)], [_m4_set([$1])])],
+ [m4_define([_m4_set_cleanup($1)])m4_define(
+ [_m4_set([$1],$2)], [0])])$3], [$4])])
+
+# m4_set_size(SET)
+# ----------------
+# Expand to the number of elements currently in SET. This operation
+# is O(1), and thus more efficient than m4_count(m4_set_list([SET])).
+m4_define([m4_set_size],
+[m4_ifdef([_m4_set_size($1)], [m4_indir([_m4_set_size($1)])], [0])])
+
+# _m4_set_size(SET, ACTION)
+# -------------------------
+# ACTION must be either m4_incr or m4_decr, and the size of SET is
+# changed accordingly. If the set is empty, ACTION must not be
+# m4_decr.
+m4_define([_m4_set_size],
+[m4_define([_m4_set_size($1)],
+ m4_ifdef([_m4_set_size($1)], [$2(m4_indir([_m4_set_size($1)]))],
+ [1]))])
+
+# m4_set_union(SET1, SET2)
+# ------------------------
+# Produce a LIST of double quoted elements that occur in either SET1
+# or SET2, without duplicates. Output a comma prior to any elements,
+# to distinguish the empty string from no elements. This can be
+# directly used as a series of arguments, such as for m4_join, or
+# wrapped inside quotes for use in m4_foreach. Order of the output is
+# not guaranteed.
+#
+# We can rely on the fact that m4_set_listc prunes SET1, so we don't
+# need to check _m4_set([$1],element) for 0. Use _m4_defn for speed.
+# Short-circuit the idempotence relation.
+m4_define([m4_set_union],
+[m4_set_listc([$1])m4_if([$1], [$2], [], [m4_set_foreach([$2], [_m4_element],
+ [m4_ifdef([_m4_set([$1],]_m4_defn([_m4_element])[)], [],
+ [,_m4_defn([_m4_element])])])])])
+
+
+## ------------------- ##
+## 16. File handling. ##
+## ------------------- ##
+
+
+# It is a real pity that M4 comes with no macros to bind a diversion
+# to a file. So we have to deal without, which makes us a lot more
+# fragile than we should.
+
+
+# m4_file_append(FILE-NAME, CONTENT)
+# ----------------------------------
+m4_define([m4_file_append],
+[m4_syscmd([cat >>$1 <<_m4eof
+$2
+_m4eof
+])
+m4_if(m4_sysval, [0], [],
+ [m4_fatal([$0: cannot write: $1])])])
+
+
+
+## ------------------------ ##
+## 17. Setting M4sugar up. ##
+## ------------------------ ##
+
+
+# m4_init
+# -------
+# Initialize the m4sugar language.
+m4_define([m4_init],
+[# All the M4sugar macros start with `m4_', except `dnl' kept as is
+# for sake of simplicity.
+m4_pattern_forbid([^_?m4_])
+m4_pattern_forbid([^dnl$])
+
+# If __m4_version__ is defined, we assume that we are being run by M4
+# 1.6 or newer, and thus that $@ recursion is linear and debugmode(d)
+# is available for faster checks of dereferencing undefined macros.
+# But if it is missing, we assume we are being run by M4 1.4.x, that
+# $@ recursion is quadratic, and that we need foreach-based
+# replacement macros. Use the raw builtin to avoid tripping up
+# include tracing.
+m4_ifdef([__m4_version__],
+[m4_debugmode([+d])
+m4_copy([_m4_defn], [m4_defn])
+m4_copy([_m4_popdef], [m4_popdef])
+m4_copy([_m4_undefine], [m4_undefine])],
+[m4_builtin([include], [m4sugar/foreach.m4])])
+
+# _m4_divert_diversion should be defined:
+m4_divert_push([KILL])
+
+# Check the divert push/pop perfect balance.
+m4_wrap([m4_divert_pop([])
+ m4_ifdef([_m4_divert_diversion],
+ [m4_fatal([$0: unbalanced m4_divert_push:]_m4_divert_n_stack)])[]])
+])
diff --git a/tools/mhmake/src/bisondata/yacc.c b/tools/mhmake/src/bisondata/yacc.c
new file mode 100644
index 000000000..19f77a5fb
--- /dev/null
+++ b/tools/mhmake/src/bisondata/yacc.c
@@ -0,0 +1,1741 @@
+ -*- C -*-
+
+# Yacc compatible skeleton for Bison
+
+# Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+# 2007, 2008 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Check the value of %define api.push_pull.
+b4_percent_define_default([[api.push_pull]], [[pull]])
+b4_percent_define_check_values([[[[api.push_pull]],
+ [[pull]], [[push]], [[both]]]])
+b4_define_flag_if([pull]) m4_define([b4_pull_flag], [[1]])
+b4_define_flag_if([push]) m4_define([b4_push_flag], [[1]])
+m4_case(b4_percent_define_get([[api.push_pull]]),
+ [pull], [m4_define([b4_push_flag], [[0]])],
+ [push], [m4_define([b4_pull_flag], [[0]])])
+
+# Handle BISON_USE_PUSH_FOR_PULL for the test suite. So that push parsing
+# tests function as written, don't let BISON_USE_PUSH_FOR_PULL modify Bison's
+# behavior at all when push parsing is already requested.
+b4_define_flag_if([use_push_for_pull])
+b4_use_push_for_pull_if([
+ b4_push_if([m4_define([b4_use_push_for_pull_flag], [[0]])],
+ [m4_define([b4_push_flag], [[1]])])])
+
+m4_include(b4_pkgdatadir/[c.m4])
+
+## ---------------- ##
+## Default values. ##
+## ---------------- ##
+
+# Stack parameters.
+m4_define_default([b4_stack_depth_max], [10000])
+m4_define_default([b4_stack_depth_init], [200])
+
+
+## ------------------------ ##
+## Pure/impure interfaces. ##
+## ------------------------ ##
+
+b4_percent_define_default([[api.pure]], [[false]])
+b4_define_flag_if([pure])
+m4_define([b4_pure_flag],
+ [b4_percent_define_flag_if([[api.pure]], [[1]], [[0]])])
+
+# b4_yacc_pure_if(IF-TRUE, IF-FALSE)
+# ----------------------------------
+# Expand IF-TRUE, if %pure-parser and %parse-param, IF-FALSE otherwise.
+m4_define([b4_yacc_pure_if],
+[b4_pure_if([m4_ifset([b4_parse_param],
+ [$1], [$2])],
+ [$2])])
+
+
+# b4_yyerror_args
+# ---------------
+# Arguments passed to yyerror: user args plus yylloc.
+m4_define([b4_yyerror_args],
+[b4_yacc_pure_if([b4_locations_if([&yylloc, ])])dnl
+m4_ifset([b4_parse_param], [b4_c_args(b4_parse_param), ])])
+
+
+# b4_lex_param
+# ------------
+# Accumulate in b4_lex_param all the yylex arguments.
+# b4_lex_param arrives quoted twice, but we want to keep only one level.
+m4_define([b4_lex_param],
+m4_dquote(b4_pure_if([[[[YYSTYPE *]], [[&yylval]]][]dnl
+b4_locations_if([, [[YYLTYPE *], [&yylloc]]])m4_ifdef([b4_lex_param], [, ])])dnl
+m4_ifdef([b4_lex_param], b4_lex_param)))
+
+
+## ------------ ##
+## Data Types. ##
+## ------------ ##
+
+# b4_int_type(MIN, MAX)
+# ---------------------
+# Return the smallest int type able to handle numbers ranging from
+# MIN to MAX (included). Overwrite the version from c.m4, which
+# uses only C89 types, so that the user can override the shorter
+# types, and so that pre-C89 compilers are handled correctly.
+m4_define([b4_int_type],
+[m4_if(b4_ints_in($@, [0], [255]), [1], [yytype_uint8],
+ b4_ints_in($@, [-128], [127]), [1], [yytype_int8],
+
+ b4_ints_in($@, [0], [65535]), [1], [yytype_uint16],
+ b4_ints_in($@, [-32768], [32767]), [1], [yytype_int16],
+
+ m4_eval([0 <= $1]), [1], [unsigned int],
+
+ [int])])
+
+
+## ----------------- ##
+## Semantic Values. ##
+## ----------------- ##
+
+
+# b4_lhs_value([TYPE])
+# --------------------
+# Expansion of $<TYPE>$.
+m4_define([b4_lhs_value],
+[(yyval[]m4_ifval([$1], [.$1]))])
+
+
+# b4_rhs_value(RULE-LENGTH, NUM, [TYPE])
+# --------------------------------------
+# Expansion of $<TYPE>NUM, where the current rule has RULE-LENGTH
+# symbols on RHS.
+m4_define([b4_rhs_value],
+[(yyvsp@{($2) - ($1)@}m4_ifval([$3], [.$3]))])
+
+
+
+## ----------- ##
+## Locations. ##
+## ----------- ##
+
+# b4_lhs_location()
+# -----------------
+# Expansion of @$.
+m4_define([b4_lhs_location],
+[(yyloc)])
+
+
+# b4_rhs_location(RULE-LENGTH, NUM)
+# ---------------------------------
+# Expansion of @NUM, where the current rule has RULE-LENGTH symbols
+# on RHS.
+m4_define([b4_rhs_location],
+[(yylsp@{($2) - ($1)@})])
+
+
+
+## --------------------------------------------------------- ##
+## Defining symbol actions, e.g., printers and destructors. ##
+## --------------------------------------------------------- ##
+
+# We do want M4 expansion after # for CPP macros.
+m4_changecom()
+m4_divert_push(0)dnl
+@output(b4_parser_file_name@)
+b4_copyright([Skeleton implementation for Bison's Yacc-like parsers in C],dnl '
+ [1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006])[
+
+/* C LALR(1) parser skeleton written by Richard Stallman, by
+ simplifying the original so-called "semantic" parser. */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+ variables, as they might otherwise be expanded by user macros.
+ There are some unavoidable exceptions within include files to
+ define necessary library symbols; they are noted "INFRINGES ON
+ USER NAME SPACE" below. */
+
+]b4_identification
+b4_percent_code_get([[top]])[]dnl
+m4_if(b4_prefix, [yy], [],
+[[/* Substitute the variable and function names. */
+]b4_pull_if([[#define yyparse ]b4_prefix[parse
+]])b4_push_if([[#define yypush_parse ]b4_prefix[push_parse
+]b4_pull_if([[#define yypull_parse ]b4_prefix[pull_parse
+]])[#define yypstate_new ]b4_prefix[pstate_new
+#define yypstate_delete ]b4_prefix[pstate_delete
+#define yypstate ]b4_prefix[pstate
+]])[#define yylex ]b4_prefix[lex
+#define yyerror ]b4_prefix[error
+#define yylval ]b4_prefix[lval
+#define yychar ]b4_prefix[char
+#define yydebug ]b4_prefix[debug
+#define yynerrs ]b4_prefix[nerrs
+]b4_locations_if([[#define yylloc ]b4_prefix[lloc]])])[
+
+/* Copy the first part of user declarations. */
+]b4_user_pre_prologue[
+
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG ]b4_debug_flag[
+#endif
+
+/* Enabling verbose error messages. */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE ]b4_error_verbose_flag[
+#endif
+
+/* Enabling the token table. */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE ]b4_token_table[
+#endif
+
+]b4_percent_code_get([[requires]])[]dnl
+
+b4_token_enums_defines(b4_tokens)[
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+]m4_ifdef([b4_stype],
+[[typedef union ]b4_union_name[
+{
+]b4_user_stype[
+} YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1]],
+[m4_if(b4_tag_seen_flag, 0,
+[[typedef int YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1]])])[
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+#endif]b4_locations_if([[
+
+#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
+typedef struct YYLTYPE
+{
+ int first_line;
+ int first_column;
+ int last_line;
+ int last_column;
+} YYLTYPE;
+# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
+# define YYLTYPE_IS_DECLARED 1
+# define YYLTYPE_IS_TRIVIAL 1
+#endif]])b4_push_if([[
+
+#ifndef YYPUSH_DECLS
+# define YYPUSH_DECLS
+struct yypstate;
+typedef struct yypstate yypstate;
+enum { YYPUSH_MORE = 4 };
+
+]b4_pull_if([b4_c_function_decl([[yyparse]], [[int]], b4_parse_param)
+])b4_c_function_decl([[yypush_parse]], [[int]],
+ [[[yypstate *yyps]], [[yyps]]]b4_pure_if([,
+ [[[int yypushed_char]], [[yypushed_char]]],
+ [[[YYSTYPE const *yypushed_val]], [[yypushed_val]]]b4_locations_if([,
+ [[[YYLTYPE const *yypushed_loc]], [[yypushed_loc]]]])])m4_ifset([b4_parse_param], [,
+ b4_parse_param]))
+b4_pull_if([b4_c_function_decl([[yypull_parse]], [[int]],
+ [[[yypstate *yyps]], [[yyps]]]m4_ifset([b4_parse_param], [,
+ b4_parse_param]))])
+b4_c_function_decl([[yypstate_new]], [[yypstate *]], [[[void]], []])
+b4_c_function_decl([[yypstate_delete]], [[void]],
+ [[[yypstate *yyps]], [[yyps]]])[
+#endif]])
+
+b4_percent_code_get([[provides]])[]dnl
+
+[/* Copy the second part of user declarations. */
+]b4_user_post_prologue
+b4_percent_code_get[]dnl
+
+[#ifdef short
+# undef short
+#endif
+
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
+#else
+typedef unsigned char yytype_uint8;
+#endif
+
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
+#elif ]b4_c_modern[
+typedef signed char yytype_int8;
+#else
+typedef short int yytype_int8;
+#endif
+
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
+#else
+typedef unsigned short int yytype_uint16;
+#endif
+
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
+#else
+typedef short int yytype_int16;
+#endif
+
+#ifndef YYSIZE_T
+# ifdef __SIZE_TYPE__
+# define YYSIZE_T __SIZE_TYPE__
+# elif defined size_t
+# define YYSIZE_T size_t
+# elif ! defined YYSIZE_T && ]b4_c_modern[
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+# else
+# define YYSIZE_T unsigned int
+# endif
+#endif
+
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+
+#ifndef YY_
+# if YYENABLE_NLS
+# if ENABLE_NLS
+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+# define YY_(msgid) dgettext ("bison-runtime", msgid)
+# endif
+# endif
+# ifndef YY_
+# define YY_(msgid) msgid
+# endif
+#endif
+
+/* Suppress unused-variable warnings by "using" E. */
+#if ! defined lint || defined __GNUC__
+# define YYUSE(e) ((void) (e))
+#else
+# define YYUSE(e) /* empty */
+#endif
+
+/* Identity function, used to suppress warnings about constant conditions. */
+#ifndef lint
+# define YYID(n) (n)
+#else
+]b4_c_function_def([YYID], [static int], [[int yyi], [yyi]])[
+{
+ return yyi;
+}
+#endif
+
+#if ! defined yyoverflow || YYERROR_VERBOSE
+
+]b4_push_if([],
+[[/* The parser invokes alloca or malloc; define the necessary symbols. */
+
+# ifdef YYSTACK_USE_ALLOCA
+# if YYSTACK_USE_ALLOCA
+# ifdef __GNUC__
+# define YYSTACK_ALLOC __builtin_alloca
+# elif defined __BUILTIN_VA_ARG_INCR
+# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
+# elif defined _AIX
+# define YYSTACK_ALLOC __alloca
+# elif defined _MSC_VER
+# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
+# define alloca _alloca
+# else
+# define YYSTACK_ALLOC alloca
+# if ! defined _ALLOCA_H && ! defined _STDLIB_H && ]b4_c_modern[
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# ifndef _STDLIB_H
+# define _STDLIB_H 1
+# endif
+# endif
+# endif
+# endif
+# endif
+
+]])dnl
+[# ifdef YYSTACK_ALLOC
+ /* Pacify GCC's `empty if-body' warning. */
+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+# ifndef YYSTACK_ALLOC_MAXIMUM
+ /* The OS might guarantee only one guard page at the bottom of the stack,
+ and a page size can be as small as 4096 bytes. So we cannot safely
+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
+ to allow for a few compiler-allocated temporary stack slots. */
+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+# endif
+# else
+# define YYSTACK_ALLOC YYMALLOC
+# define YYSTACK_FREE YYFREE
+# ifndef YYSTACK_ALLOC_MAXIMUM
+# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
+# endif
+# if (defined __cplusplus && ! defined _STDLIB_H \
+ && ! ((defined YYMALLOC || defined malloc) \
+ && (defined YYFREE || defined free)))
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# ifndef _STDLIB_H
+# define _STDLIB_H 1
+# endif
+# endif
+# ifndef YYMALLOC
+# define YYMALLOC malloc
+# if ! defined malloc && ! defined _STDLIB_H && ]b4_c_modern[
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# ifndef YYFREE
+# define YYFREE free
+# if ! defined free && ! defined _STDLIB_H && ]b4_c_modern[
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# endif
+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+#if (! defined yyoverflow \
+ && (! defined __cplusplus \
+ || (]b4_locations_if([[defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
+ && ]])[defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member. */
+union yyalloc
+{
+ yytype_int16 yyss_alloc;
+ YYSTYPE yyvs_alloc;]b4_locations_if([
+ YYLTYPE yyls_alloc;])[
+};
+
+/* The size of the maximum gap between one aligned stack and the next. */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+]b4_locations_if(
+[# define YYSTACK_BYTES(N) \
+ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
+ + 2 * YYSTACK_GAP_MAXIMUM)],
+[# define YYSTACK_BYTES(N) \
+ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ + YYSTACK_GAP_MAXIMUM)])[
+
+/* Copy COUNT objects from FROM to TO. The source and destination do
+ not overlap. */
+# ifndef YYCOPY
+# if defined __GNUC__ && 1 < __GNUC__
+# define YYCOPY(To, From, Count) \
+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+# else
+# define YYCOPY(To, From, Count) \
+ do \
+ { \
+ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+ while (YYID (0))
+# endif
+# endif
+
+/* Relocate STACK from its old location to the new one. The
+ local variables YYSIZE and YYSTACKSIZE give the old and new number of
+ elements in the stack, and YYPTR gives the new location of the
+ stack. Advance YYPTR to a properly aligned location for the next
+ stack. */
+# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
+ do \
+ { \
+ YYSIZE_T yynewbytes; \
+ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
+ Stack = &yyptr->Stack_alloc; \
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+ while (YYID (0))
+
+#endif
+
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL ]b4_final_state_number[
+/* YYLAST -- Last index in YYTABLE. */
+#define YYLAST ]b4_last[
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS ]b4_tokens_number[
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS ]b4_nterms_number[
+/* YYNRULES -- Number of rules. */
+#define YYNRULES ]b4_rules_number[
+/* YYNRULES -- Number of states. */
+#define YYNSTATES ]b4_states_number[
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+#define YYUNDEFTOK ]b4_undef_token_number[
+#define YYMAXUTOK ]b4_user_token_number_max[
+
+#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+static const ]b4_int_type_for([b4_translate])[ yytranslate[] =
+{
+ ]b4_translate[
+};
+
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+static const ]b4_int_type_for([b4_prhs])[ yyprhs[] =
+{
+ ]b4_prhs[
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const ]b4_int_type_for([b4_rhs])[ yyrhs[] =
+{
+ ]b4_rhs[
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+static const ]b4_int_type_for([b4_rline])[ yyrline[] =
+{
+ ]b4_rline[
+};
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+static const char *const yytname[] =
+{
+ ]b4_tname[
+};
+#endif
+
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+static const ]b4_int_type_for([b4_toknum])[ yytoknum[] =
+{
+ ]b4_toknum[
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const ]b4_int_type_for([b4_r1])[ yyr1[] =
+{
+ ]b4_r1[
+};
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+static const ]b4_int_type_for([b4_r2])[ yyr2[] =
+{
+ ]b4_r2[
+};
+
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+ means the default is an error. */
+static const ]b4_int_type_for([b4_defact])[ yydefact[] =
+{
+ ]b4_defact[
+};
+
+/* YYDEFGOTO[NTERM-NUM]. */
+static const ]b4_int_type_for([b4_defgoto])[ yydefgoto[] =
+{
+ ]b4_defgoto[
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+#define YYPACT_NINF ]b4_pact_ninf[
+static const ]b4_int_type_for([b4_pact])[ yypact[] =
+{
+ ]b4_pact[
+};
+
+/* YYPGOTO[NTERM-NUM]. */
+static const ]b4_int_type_for([b4_pgoto])[ yypgoto[] =
+{
+ ]b4_pgoto[
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
+ positive, shift that token. If negative, reduce the rule which
+ number is the opposite. If zero, do what YYDEFACT says.
+ If YYTABLE_NINF, syntax error. */
+#define YYTABLE_NINF ]b4_table_ninf[
+static const ]b4_int_type_for([b4_table])[ yytable[] =
+{
+ ]b4_table[
+};
+
+static const ]b4_int_type_for([b4_check])[ yycheck[] =
+{
+ ]b4_check[
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+static const ]b4_int_type_for([b4_stos])[ yystos[] =
+{
+ ]b4_stos[
+};
+
+#define yyerrok (yyerrstatus = 0)
+#define yyclearin (yychar = YYEMPTY)
+#define YYEMPTY (-2)
+#define YYEOF 0
+
+#define YYACCEPT goto yyacceptlab
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrorlab
+
+
+/* Like YYERROR except do call yyerror. This remains here temporarily
+ to ease the transition to the new meaning of YYERROR, for GCC.
+ Once GCC version 2 has supplanted version 1, this can go. */
+
+#define YYFAIL goto yyerrlab
+
+#define YYRECOVERING() (!!yyerrstatus)
+
+#define YYBACKUP(Token, Value) \
+do \
+ if (yychar == YYEMPTY && yylen == 1) \
+ { \
+ yychar = (Token); \
+ yylval = (Value); \
+ yytoken = YYTRANSLATE (yychar); \
+ YYPOPSTACK (1); \
+ goto yybackup; \
+ } \
+ else \
+ { \
+ yyerror (]b4_yyerror_args[YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+while (YYID (0))
+
+
+#define YYTERROR 1
+#define YYERRCODE 256
+
+
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+ If N is 0, then set CURRENT to the empty location which ends
+ the previous symbol: RHS[0] (always defined). */
+
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+#ifndef YYLLOC_DEFAULT
+# define YYLLOC_DEFAULT(Current, Rhs, N) \
+ do \
+ if (YYID (N)) \
+ { \
+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
+ } \
+ else \
+ { \
+ (Current).first_line = (Current).last_line = \
+ YYRHSLOC (Rhs, 0).last_line; \
+ (Current).first_column = (Current).last_column = \
+ YYRHSLOC (Rhs, 0).last_column; \
+ } \
+ while (YYID (0))
+#endif
+
+
+/* YY_LOCATION_PRINT -- Print the location on the stream.
+ This macro was not mandated originally: define only if we know
+ we won't break user code: when these are the locations we know. */
+
+#ifndef YY_LOCATION_PRINT
+# if YYLTYPE_IS_TRIVIAL
+# define YY_LOCATION_PRINT(File, Loc) \
+ fprintf (File, "%d.%d-%d.%d", \
+ (Loc).first_line, (Loc).first_column, \
+ (Loc).last_line, (Loc).last_column)
+# else
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
+#endif
+
+
+/* YYLEX -- calling `yylex' with the right arguments. */
+
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (]b4_pure_if([&yylval[]b4_locations_if([, &yylloc]), ])[YYLEX_PARAM)
+#else
+# define YYLEX ]b4_c_function_call([yylex], [int], b4_lex_param)[
+#endif
+
+/* Enable debugging if requested. */
+#if YYDEBUG
+
+# ifndef YYFPRINTF
+# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+# define YYFPRINTF fprintf
+# endif
+
+# define YYDPRINTF(Args) \
+do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+} while (YYID (0))
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
+do { \
+ if (yydebug) \
+ { \
+ YYFPRINTF (stderr, "%s ", Title); \
+ yy_symbol_print (stderr, \
+ Type, Value]b4_locations_if([, Location])[]b4_user_args[); \
+ YYFPRINTF (stderr, "\n"); \
+ } \
+} while (YYID (0))
+
+]b4_yy_symbol_print_generate([b4_c_function_def])[
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (included). |
+`------------------------------------------------------------------*/
+
+]b4_c_function_def([yy_stack_print], [static void],
+ [[yytype_int16 *yybottom], [yybottom]],
+ [[yytype_int16 *yytop], [yytop]])[
+{
+ YYFPRINTF (stderr, "Stack now");
+ for (; yybottom <= yytop; yybottom++)
+ {
+ int yybot = *yybottom;
+ YYFPRINTF (stderr, " %d", yybot);
+ }
+ YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top) \
+do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+} while (YYID (0))
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced. |
+`------------------------------------------------*/
+
+]b4_c_function_def([yy_reduce_print], [static void],
+ [[YYSTYPE *yyvsp], [yyvsp]],
+ b4_locations_if([[[YYLTYPE *yylsp], [yylsp]],
+ ])[[int yyrule], [yyrule]]m4_ifset([b4_parse_param], [,
+ b4_parse_param]))[
+{
+ int yynrhs = yyr2[yyrule];
+ int yyi;
+ unsigned long int yylno = yyrline[yyrule];
+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+ yyrule - 1, yylno);
+ /* The symbols being reduced. */
+ for (yyi = 0; yyi < yynrhs; yyi++)
+ {
+ YYFPRINTF (stderr, " $%d = ", yyi + 1);
+ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
+ &]b4_rhs_value(yynrhs, yyi + 1)[
+ ]b4_locations_if([, &]b4_rhs_location(yynrhs, yyi + 1))[]dnl
+ b4_user_args[);
+ YYFPRINTF (stderr, "\n");
+ }
+}
+
+# define YY_REDUCE_PRINT(Rule) \
+do { \
+ if (yydebug) \
+ yy_reduce_print (yyvsp, ]b4_locations_if([yylsp, ])[Rule]b4_user_args[); \
+} while (YYID (0))
+
+/* Nonzero means print parse trace. It is left uninitialized so that
+ multiple parsers can coexist. */
+int yydebug;
+#else /* !YYDEBUG */
+# define YYDPRINTF(Args)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
+#endif /* !YYDEBUG */
+
+
+/* YYINITDEPTH -- initial size of the parser's stacks. */
+#ifndef YYINITDEPTH
+# define YYINITDEPTH ]b4_stack_depth_init[
+#endif
+
+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
+ if the built-in stack extension method is used).
+
+ Do not make this value too large; the results are undefined if
+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+ evaluated with infinite-precision integer arithmetic. */
+
+#ifndef YYMAXDEPTH
+# define YYMAXDEPTH ]b4_stack_depth_max[
+#endif
+
+
+
+#if YYERROR_VERBOSE
+
+# ifndef yystrlen
+# if defined __GLIBC__ && defined _STRING_H
+# define yystrlen strlen
+# else
+/* Return the length of YYSTR. */
+]b4_c_function_def([yystrlen], [static YYSIZE_T],
+ [[const char *yystr], [yystr]])[
+{
+ YYSIZE_T yylen;
+ for (yylen = 0; yystr[yylen]; yylen++)
+ continue;
+ return yylen;
+}
+# endif
+# endif
+
+# ifndef yystpcpy
+# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+# define yystpcpy stpcpy
+# else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+ YYDEST. */
+]b4_c_function_def([yystpcpy], [static char *],
+ [[char *yydest], [yydest]], [[const char *yysrc], [yysrc]])[
+{
+ char *yyd = yydest;
+ const char *yys = yysrc;
+
+ while ((*yyd++ = *yys++) != '\0')
+ continue;
+
+ return yyd - 1;
+}
+# endif
+# endif
+
+# ifndef yytnamerr
+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+ quotes and backslashes, so that it's suitable for yyerror. The
+ heuristic is that double-quoting is unnecessary unless the string
+ contains an apostrophe, a comma, or backslash (other than
+ backslash-backslash). YYSTR is taken from yytname. If YYRES is
+ null, do not copy; instead, return the length of what the result
+ would have been. */
+static YYSIZE_T
+yytnamerr (char *yyres, const char *yystr)
+{
+ if (*yystr == '"')
+ {
+ YYSIZE_T yyn = 0;
+ char const *yyp = yystr;
+
+ for (;;)
+ switch (*++yyp)
+ {
+ case '\'':
+ case ',':
+ goto do_not_strip_quotes;
+
+ case '\\':
+ if (*++yyp != '\\')
+ goto do_not_strip_quotes;
+ /* Fall through. */
+ default:
+ if (yyres)
+ yyres[yyn] = *yyp;
+ yyn++;
+ break;
+
+ case '"':
+ if (yyres)
+ yyres[yyn] = '\0';
+ return yyn;
+ }
+ do_not_strip_quotes: ;
+ }
+
+ if (! yyres)
+ return yystrlen (yystr);
+
+ return yystpcpy (yyres, yystr) - yyres;
+}
+# endif
+
+/* Copy into YYRESULT an error message about the unexpected token
+ YYCHAR while in state YYSTATE. Return the number of bytes copied,
+ including the terminating null byte. If YYRESULT is null, do not
+ copy anything; just return the number of bytes that would be
+ copied. As a special case, return 0 if an ordinary "syntax error"
+ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
+ size calculation. */
+static YYSIZE_T
+yysyntax_error (char *yyresult, int yystate, int yychar)
+{
+ int yyn = yypact[yystate];
+
+ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
+ return 0;
+ else
+ {
+ int yytype = YYTRANSLATE (yychar);
+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
+ YYSIZE_T yysize = yysize0;
+ YYSIZE_T yysize1;
+ int yysize_overflow = 0;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ int yyx;
+
+# if 0
+ /* This is so xgettext sees the translatable formats that are
+ constructed on the fly. */
+ YY_("syntax error, unexpected %s");
+ YY_("syntax error, unexpected %s, expecting %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+# endif
+ char *yyfmt;
+ char const *yyf;
+ static char const yyunexpected[] = "syntax error, unexpected %s";
+ static char const yyexpecting[] = ", expecting %s";
+ static char const yyor[] = " or %s";
+ char yyformat[sizeof yyunexpected
+ + sizeof yyexpecting - 1
+ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
+ * (sizeof yyor - 1))];
+ char const *yyprefix = yyexpecting;
+
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn + 1;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yycount = 1;
+
+ yyarg[0] = yytname[yytype];
+ yyfmt = yystpcpy (yyformat, yyunexpected);
+
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ yyformat[sizeof yyunexpected - 1] = '\0';
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+ yysize_overflow |= (yysize1 < yysize);
+ yysize = yysize1;
+ yyfmt = yystpcpy (yyfmt, yyprefix);
+ yyprefix = yyor;
+ }
+
+ yyf = YY_(yyformat);
+ yysize1 = yysize + yystrlen (yyf);
+ yysize_overflow |= (yysize1 < yysize);
+ yysize = yysize1;
+
+ if (yysize_overflow)
+ return YYSIZE_MAXIMUM;
+
+ if (yyresult)
+ {
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ char *yyp = yyresult;
+ int yyi = 0;
+ while ((*yyp = *yyf) != '\0')
+ {
+ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyf += 2;
+ }
+ else
+ {
+ yyp++;
+ yyf++;
+ }
+ }
+ }
+ return yysize;
+ }
+}
+#endif /* YYERROR_VERBOSE */
+
+
+]b4_yydestruct_generate([b4_c_function_def])[
+
+]b4_push_if([],
+[[/* Prevent warnings from -Wmissing-prototypes. */
+#ifdef YYPARSE_PARAM
+]b4_c_function_decl([yyparse], [int],
+ [[void *YYPARSE_PARAM], [YYPARSE_PARAM]])[
+#else /* ! YYPARSE_PARAM */
+]b4_c_function_decl([yyparse], [int], b4_parse_param)[
+#endif /* ! YYPARSE_PARAM */]])
+
+m4_divert_push([KILL])# ======================== M4 code.
+# b4_declare_scanner_communication_variables
+# ------------------------------------------
+# Declare the variables that are global, or local to YYPARSE if
+# pure-parser.
+m4_define([b4_declare_scanner_communication_variables],
+[[/* The lookahead symbol. */
+int yychar;
+
+/* The semantic value of the lookahead symbol. */
+YYSTYPE yylval;
+]b4_locations_if([[
+/* Location data for the lookahead symbol. */
+YYLTYPE yylloc;
+]])b4_pure_if([], [[
+/* Number of syntax errors so far. */
+int yynerrs;
+]])])
+
+# b4_declare_parser_state_variables
+# ---------------------------------
+# Declare all the variables that are needed to maintain the parser state
+# between calls to yypush_parse.
+m4_define([b4_declare_parser_state_variables],
+[b4_pure_if([[ /* Number of syntax errors so far. */
+ int yynerrs;
+]])[
+ int yystate;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+
+ /* The stacks and their tools:
+ `yyss': related to states.
+ `yyvs': related to semantic values.]b4_locations_if([[
+ `yyls': related to locations.]])[
+
+ Refer to the stacks thru separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+ yytype_int16 yyssa[YYINITDEPTH];
+ yytype_int16 *yyss;
+ yytype_int16 *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs;
+ YYSTYPE *yyvsp;
+]b4_locations_if([[
+ /* The location stack. */
+ YYLTYPE yylsa[YYINITDEPTH];
+ YYLTYPE *yyls;
+ YYLTYPE *yylsp;
+
+ /* The locations where the error started and ended. */
+ YYLTYPE yyerror_range[2];
+]])[
+ YYSIZE_T yystacksize;
+]])
+
+m4_divert_pop([KILL])dnl# ====================== End of M4 code.
+
+b4_pure_if([], [b4_declare_scanner_communication_variables])
+
+b4_push_if(
+[[struct yypstate
+ {
+ ]b4_declare_parser_state_variables[
+ /* Used to determine if this is the first time this instance has
+ been used. */
+ int yynew;
+ };]b4_pure_if([], [[
+
+static char yypstate_allocated = 0;]])b4_pull_if([
+
+b4_c_function_def([[yyparse]], [[int]], b4_parse_param)[
+{
+ return yypull_parse (0]m4_ifset([b4_parse_param],
+ [[, ]b4_c_args(b4_parse_param)])[);
+}
+
+]b4_c_function_def([[yypull_parse]], [[int]],
+ [[[yypstate *yyps]], [[yyps]]]m4_ifset([b4_parse_param], [,
+ b4_parse_param]))[
+{
+ int yystatus;
+ yypstate *yyps_local;]b4_pure_if([[
+ int yychar;
+ YYSTYPE yylval;]b4_locations_if([[
+ YYLTYPE yylloc;]])])[
+ if (yyps == 0)
+ {
+ yyps_local = yypstate_new ();
+ if (!yyps_local)
+ {]b4_pure_if([[
+ yyerror (]b4_yyerror_args[YY_("memory exhausted"));]], [[
+ if (!yypstate_allocated)
+ yyerror (]b4_yyerror_args[YY_("memory exhausted"));]])[
+ return 2;
+ }
+ }
+ else
+ yyps_local = yyps;
+ do {
+ yychar = YYLEX;
+ yystatus =
+ yypush_parse (yyps_local]b4_pure_if([[, yychar, &yylval]b4_locations_if([[, &yylloc]])])m4_ifset([b4_parse_param], [, b4_c_args(b4_parse_param)])[);
+ } while (yystatus == YYPUSH_MORE);
+ if (yyps == 0)
+ yypstate_delete (yyps_local);
+ return yystatus;
+}]])[
+
+/* Initialize the parser data structure. */
+]b4_c_function_def([[yypstate_new]], [[yypstate *]])[
+{
+ yypstate *yyps;]b4_pure_if([], [[
+ if (yypstate_allocated)
+ return 0;]])[
+ yyps = (yypstate *) malloc (sizeof *yyps);
+ if (!yyps)
+ return 0;
+ yyps->yynew = 1;]b4_pure_if([], [[
+ yypstate_allocated = 1;]])[
+ return yyps;
+}
+
+]b4_c_function_def([[yypstate_delete]], [[void]],
+ [[[yypstate *yyps]], [[yyps]]])[
+{
+#ifndef yyoverflow
+ /* If the stack was reallocated but the parse did not complete, then the
+ stack still needs to be freed. */
+ if (!yyps->yynew && yyps->yyss != yyps->yyssa)
+ YYSTACK_FREE (yyps->yyss);
+#endif
+ free (yyps);]b4_pure_if([], [[
+ yypstate_allocated = 0;]])[
+}
+
+]b4_pure_if([[#define ]b4_prefix[nerrs yyps->]b4_prefix[nerrs
+]])[#define yystate yyps->yystate
+#define yyerrstatus yyps->yyerrstatus
+#define yyssa yyps->yyssa
+#define yyss yyps->yyss
+#define yyssp yyps->yyssp
+#define yyvsa yyps->yyvsa
+#define yyvs yyps->yyvs
+#define yyvsp yyps->yyvsp
+]b4_locations_if([[#define yylsa yyps->yylsa
+#define yyls yyps->yyls
+#define yylsp yyps->yylsp
+#define yyerror_range yyps->yyerror_range
+]])[#define yystacksize yyps->yystacksize
+]])[
+/*-------------------------.
+| yyparse or yypush_parse. |
+`-------------------------*/
+]b4_push_if([
+b4_c_function_def([[yypush_parse]], [[int]],
+ [[[yypstate *yyps]], [[yyps]]]b4_pure_if([,
+ [[[int yypushed_char]], [[yypushed_char]]],
+ [[[YYSTYPE const *yypushed_val]], [[yypushed_val]]]b4_locations_if([,
+ [[[YYLTYPE const *yypushed_loc]], [[yypushed_loc]]]])])m4_ifset([b4_parse_param], [,
+ b4_parse_param]))], [
+#ifdef YYPARSE_PARAM
+b4_c_function_def([yyparse], [int], [[void *YYPARSE_PARAM], [YYPARSE_PARAM]])
+#else /* ! YYPARSE_PARAM */
+b4_c_function_def([yyparse], [int], b4_parse_param)
+#endif])[
+{
+]b4_pure_if([b4_declare_scanner_communication_variables])
+b4_push_if([b4_pure_if([], [[ int yypushed_char = yychar;
+ YYSTYPE yypushed_val = yylval;
+ ]b4_locations_if([[YYLTYPE yypushed_loc = yylloc;
+]])])],
+ [b4_declare_parser_state_variables])[
+ int yyn;
+ int yyresult;
+ /* Lookahead token as an internal (translated) token number. */
+ int yytoken;
+ /* The variables used to return semantic value and location from the
+ action routines. */
+ YYSTYPE yyval;]b4_locations_if([[
+ YYLTYPE yyloc;]])[
+
+#if YYERROR_VERBOSE
+ /* Buffer for error messages, and its allocated size. */
+ char yymsgbuf[128];
+ char *yymsg = yymsgbuf;
+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)]b4_locations_if([, yylsp -= (N)])[)
+
+ /* The number of symbols on the RHS of the reduced rule.
+ Keep to zero when no symbol should be popped. */
+ int yylen = 0;]b4_push_if([[
+
+ if (!yyps->yynew)
+ {
+ yyn = yypact[yystate];
+ goto yyread_pushed_token;
+ }]])[
+
+ yytoken = 0;
+ yyss = yyssa;
+ yyvs = yyvsa;]b4_locations_if([[
+ yyls = yylsa;]])[
+ yystacksize = YYINITDEPTH;
+
+ YYDPRINTF ((stderr, "Starting parse\n"));
+
+ yystate = 0;
+ yyerrstatus = 0;
+ yynerrs = 0;
+ yychar = YYEMPTY; /* Cause a token to be read. */
+
+ /* Initialize stack pointers.
+ Waste one element of value and location stack
+ so that they stay on the same level as the state stack.
+ The wasted elements are never initialized. */
+ yyssp = yyss;
+ yyvsp = yyvs;]b4_locations_if([[
+ yylsp = yyls;
+
+#if YYLTYPE_IS_TRIVIAL
+ /* Initialize the default location before parsing starts. */
+ yylloc.first_line = yylloc.last_line = ]b4_location_initial_line[;
+ yylloc.first_column = yylloc.last_column = ]b4_location_initial_column[;
+#endif]])
+m4_ifdef([b4_initial_action],[
+m4_pushdef([b4_at_dollar], [m4_define([b4_at_dollar_used])yylloc])dnl
+m4_pushdef([b4_dollar_dollar], [m4_define([b4_dollar_dollar_used])yylval])dnl
+/* User initialization code. */
+b4_user_initial_action
+m4_popdef([b4_dollar_dollar])dnl
+m4_popdef([b4_at_dollar])])dnl
+m4_ifdef([b4_dollar_dollar_used],[[ yyvsp[0] = yylval;
+]])dnl
+m4_ifdef([b4_at_dollar_used], [[ yylsp[0] = yylloc;
+]])[
+ goto yysetstate;
+
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate. |
+`------------------------------------------------------------*/
+ yynewstate:
+ /* In all cases, when you get here, the value and location stacks
+ have just been pushed. So pushing a state here evens the stacks. */
+ yyssp++;
+
+ yysetstate:
+ *yyssp = yystate;
+
+ if (yyss + yystacksize - 1 <= yyssp)
+ {
+ /* Get the current used size of the three stacks, in elements. */
+ YYSIZE_T yysize = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+ {
+ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ yytype_int16 *yyss1 = yyss;]b4_locations_if([
+ YYLTYPE *yyls1 = yyls;])[
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+ yyoverflow (YY_("memory exhausted"),
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),]b4_locations_if([
+ &yyls1, yysize * sizeof (*yylsp),])[
+ &yystacksize);
+]b4_locations_if([
+ yyls = yyls1;])[
+ yyss = yyss1;
+ yyvs = yyvs1;
+ }
+#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+ goto yyexhaustedlab;
+# else
+ /* Extend the stack our own way. */
+ if (YYMAXDEPTH <= yystacksize)
+ goto yyexhaustedlab;
+ yystacksize *= 2;
+ if (YYMAXDEPTH < yystacksize)
+ yystacksize = YYMAXDEPTH;
+
+ {
+ yytype_int16 *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+ goto yyexhaustedlab;
+ YYSTACK_RELOCATE (yyss_alloc, yyss);
+ YYSTACK_RELOCATE (yyvs_alloc, yyvs);]b4_locations_if([
+ YYSTACK_RELOCATE (yyls_alloc, yyls);])[
+# undef YYSTACK_RELOCATE
+ if (yyss1 != yyssa)
+ YYSTACK_FREE (yyss1);
+ }
+# endif
+#endif /* no yyoverflow */
+
+ yyssp = yyss + yysize - 1;
+ yyvsp = yyvs + yysize - 1;]b4_locations_if([
+ yylsp = yyls + yysize - 1;])[
+
+ YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+ (unsigned long int) yystacksize));
+
+ if (yyss + yystacksize - 1 <= yyssp)
+ YYABORT;
+ }
+
+ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+
+ if (yystate == YYFINAL)
+ YYACCEPT;
+
+ goto yybackup;
+
+/*-----------.
+| yybackup. |
+`-----------*/
+yybackup:
+
+ /* Do appropriate processing given the current state. Read a
+ lookahead token if we need one and don't already have one. */
+
+ /* First try to decide what to do without reference to lookahead token. */
+ yyn = yypact[yystate];
+ if (yyn == YYPACT_NINF)
+ goto yydefault;
+
+ /* Not known => get a lookahead token if don't already have one. */
+
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
+ if (yychar == YYEMPTY)
+ {]b4_push_if([[
+ if (!yyps->yynew)
+ {]b4_use_push_for_pull_if([], [[
+ YYDPRINTF ((stderr, "Return for a new token:\n"));]])[
+ yyresult = YYPUSH_MORE;
+ goto yypushreturn;
+ }
+ yyps->yynew = 0;]b4_pure_if([], [[
+ /* Restoring the pushed token is only necessary for the first
+ yypush_parse invocation since subsequent invocations don't overwrite
+ it before jumping to yyread_pushed_token. */
+ yychar = yypushed_char;
+ yylval = yypushed_val;]b4_locations_if([[
+ yylloc = yypushed_loc;]])])[
+yyread_pushed_token:]])[
+ YYDPRINTF ((stderr, "Reading a token: "));]b4_push_if([b4_pure_if([[
+ yychar = yypushed_char;
+ if (yypushed_val)
+ yylval = *yypushed_val;]b4_locations_if([[
+ if (yypushed_loc)
+ yylloc = *yypushed_loc;]])])], [[
+ yychar = YYLEX;]])[
+ }
+
+ if (yychar <= YYEOF)
+ {
+ yychar = yytoken = YYEOF;
+ YYDPRINTF ((stderr, "Now at end of input.\n"));
+ }
+ else
+ {
+ yytoken = YYTRANSLATE (yychar);
+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+ }
+
+ /* If the proper action on seeing token YYTOKEN is to reduce or to
+ detect an error, take that action. */
+ yyn += yytoken;
+ if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+ goto yydefault;
+ yyn = yytable[yyn];
+ if (yyn <= 0)
+ {
+ if (yyn == 0 || yyn == YYTABLE_NINF)
+ goto yyerrlab;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
+
+ /* Shift the lookahead token. */
+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
+
+ /* Discard the shifted token. */
+ yychar = YYEMPTY;
+
+ yystate = yyn;
+ *++yyvsp = yylval;
+]b4_locations_if([ *++yylsp = yylloc;])[
+ goto yynewstate;
+
+
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state. |
+`-----------------------------------------------------------*/
+yydefault:
+ yyn = yydefact[yystate];
+ if (yyn == 0)
+ goto yyerrlab;
+ goto yyreduce;
+
+
+/*-----------------------------.
+| yyreduce -- Do a reduction. |
+`-----------------------------*/
+yyreduce:
+ /* yyn is the number of a rule to reduce with. */
+ yylen = yyr2[yyn];
+
+ /* If YYLEN is nonzero, implement the default value of the action:
+ `$$ = $1'.
+
+ Otherwise, the following line sets YYVAL to garbage.
+ This behavior is undocumented and Bison
+ users should not rely upon it. Assigning to YYVAL
+ unconditionally makes the parser a bit smaller, and it avoids a
+ GCC warning that YYVAL may be used uninitialized. */
+ yyval = yyvsp[1-yylen];
+
+]b4_locations_if(
+[[ /* Default location. */
+ YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);]])[
+ YY_REDUCE_PRINT (yyn);
+ switch (yyn)
+ {
+ ]b4_user_actions[
+ default: break;
+ }
+ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+
+ YYPOPSTACK (yylen);
+ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+
+ *++yyvsp = yyval;]b4_locations_if([
+ *++yylsp = yyloc;])[
+
+ /* Now `shift' the result of the reduction. Determine what state
+ that goes to, based on the state we popped back to and the rule
+ number reduced by. */
+
+ yyn = yyr1[yyn];
+
+ yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+ if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yytable[yystate];
+ else
+ yystate = yydefgoto[yyn - YYNTOKENS];
+
+ goto yynewstate;
+
+
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
+yyerrlab:
+ /* If not already recovering from an error, report this error. */
+ if (!yyerrstatus)
+ {
+ ++yynerrs;
+#if ! YYERROR_VERBOSE
+ yyerror (]b4_yyerror_args[YY_("syntax error"));
+#else
+ {
+ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
+ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
+ {
+ YYSIZE_T yyalloc = 2 * yysize;
+ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
+ yyalloc = YYSTACK_ALLOC_MAXIMUM;
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
+ if (yymsg)
+ yymsg_alloc = yyalloc;
+ else
+ {
+ yymsg = yymsgbuf;
+ yymsg_alloc = sizeof yymsgbuf;
+ }
+ }
+
+ if (0 < yysize && yysize <= yymsg_alloc)
+ {
+ (void) yysyntax_error (yymsg, yystate, yychar);
+ yyerror (]b4_yyerror_args[yymsg);
+ }
+ else
+ {
+ yyerror (]b4_yyerror_args[YY_("syntax error"));
+ if (yysize != 0)
+ goto yyexhaustedlab;
+ }
+ }
+#endif
+ }
+
+]b4_locations_if([[ yyerror_range[0] = yylloc;]])[
+
+ if (yyerrstatus == 3)
+ {
+ /* If just tried and failed to reuse lookahead token after an
+ error, discard it. */
+
+ if (yychar <= YYEOF)
+ {
+ /* Return failure if at end of input. */
+ if (yychar == YYEOF)
+ YYABORT;
+ }
+ else
+ {
+ yydestruct ("Error: discarding",
+ yytoken, &yylval]b4_locations_if([, &yylloc])[]b4_user_args[);
+ yychar = YYEMPTY;
+ }
+ }
+
+ /* Else will try to reuse lookahead token after shifting the error
+ token. */
+ goto yyerrlab1;
+
+
+/*---------------------------------------------------.
+| yyerrorlab -- error raised explicitly by YYERROR. |
+`---------------------------------------------------*/
+yyerrorlab:
+
+ /* Pacify compilers like GCC when the user code never invokes
+ YYERROR and the label yyerrorlab therefore never appears in user
+ code. */
+ if (/*CONSTCOND*/ 0)
+ goto yyerrorlab;
+
+]b4_locations_if([[ yyerror_range[0] = yylsp[1-yylen];
+]])[ /* Do not reclaim the symbols of the rule which action triggered
+ this YYERROR. */
+ YYPOPSTACK (yylen);
+ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+ yystate = *yyssp;
+ goto yyerrlab1;
+
+
+/*-------------------------------------------------------------.
+| yyerrlab1 -- common code for both syntax error and YYERROR. |
+`-------------------------------------------------------------*/
+yyerrlab1:
+ yyerrstatus = 3; /* Each real token shifted decrements this. */
+
+ for (;;)
+ {
+ yyn = yypact[yystate];
+ if (yyn != YYPACT_NINF)
+ {
+ yyn += YYTERROR;
+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+ {
+ yyn = yytable[yyn];
+ if (0 < yyn)
+ break;
+ }
+ }
+
+ /* Pop the current state because it cannot handle the error token. */
+ if (yyssp == yyss)
+ YYABORT;
+
+]b4_locations_if([[ yyerror_range[0] = *yylsp;]])[
+ yydestruct ("Error: popping",
+ yystos[yystate], yyvsp]b4_locations_if([, yylsp])[]b4_user_args[);
+ YYPOPSTACK (1);
+ yystate = *yyssp;
+ YY_STACK_PRINT (yyss, yyssp);
+ }
+
+ *++yyvsp = yylval;
+]b4_locations_if([[
+ yyerror_range[1] = yylloc;
+ /* Using YYLLOC is tempting, but would change the location of
+ the lookahead. YYLOC is available though. */
+ YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
+ *++yylsp = yyloc;]])[
+
+ /* Shift the error token. */
+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+
+ yystate = yyn;
+ goto yynewstate;
+
+
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here. |
+`-------------------------------------*/
+yyacceptlab:
+ yyresult = 0;
+ goto yyreturn;
+
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here. |
+`-----------------------------------*/
+yyabortlab:
+ yyresult = 1;
+ goto yyreturn;
+
+#if !defined(yyoverflow) || YYERROR_VERBOSE
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here. |
+`-------------------------------------------------*/
+yyexhaustedlab:
+ yyerror (]b4_yyerror_args[YY_("memory exhausted"));
+ yyresult = 2;
+ /* Fall through. */
+#endif
+
+yyreturn:
+ if (yychar != YYEMPTY)
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval]b4_locations_if([, &yylloc])[]b4_user_args[);
+ /* Do not reclaim the symbols of the rule which action triggered
+ this YYABORT or YYACCEPT. */
+ YYPOPSTACK (yylen);
+ YY_STACK_PRINT (yyss, yyssp);
+ while (yyssp != yyss)
+ {
+ yydestruct ("Cleanup: popping",
+ yystos[*yyssp], yyvsp]b4_locations_if([, yylsp])[]b4_user_args[);
+ YYPOPSTACK (1);
+ }
+#ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
+#endif
+]b4_push_if([[ yyps->yynew = 1;
+
+yypushreturn:
+]])[#if YYERROR_VERBOSE
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+#endif
+ /* Make sure YYID is used. */
+ return YYID (yyresult);
+}
+
+
+]b4_epilogue
+b4_defines_if(
+[@output(b4_spec_defines_file@)
+b4_copyright([Skeleton interface for Bison's Yacc-like parsers in C],dnl '
+ [1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006])
+
+b4_percent_code_get([[requires]])[]dnl
+
+b4_token_enums_defines(b4_tokens)
+
+[#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+]m4_ifdef([b4_stype],
+[[typedef union ]b4_union_name[
+{
+]b4_user_stype[
+} YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1]],
+[m4_if(b4_tag_seen_flag, 0,
+[[typedef int YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1]])])[
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+#endif
+
+]b4_pure_if([], [[extern YYSTYPE ]b4_prefix[lval;]])
+
+b4_locations_if(
+[#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
+typedef struct YYLTYPE
+{
+ int first_line;
+ int first_column;
+ int last_line;
+ int last_column;
+} YYLTYPE;
+# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
+# define YYLTYPE_IS_DECLARED 1
+# define YYLTYPE_IS_TRIVIAL 1
+#endif
+
+]b4_pure_if([], [[extern YYLTYPE ]b4_prefix[lloc;]])
+)dnl b4_locations_if
+b4_push_if([[
+#ifndef YYPUSH_DECLS
+# define YYPUSH_DECLS
+struct ]b4_prefix[pstate;
+typedef struct ]b4_prefix[pstate ]b4_prefix[pstate;
+enum { YYPUSH_MORE = 4 };
+]b4_pull_if([b4_c_function_decl([b4_prefix[parse]], [[int]], b4_parse_param)
+])b4_c_function_decl([b4_prefix[push_parse]], [[int]],
+ [[b4_prefix[pstate *yyps]], [[yyps]]]b4_pure_if([,
+ [[[int yypushed_char]], [[yypushed_char]]],
+ [[[YYSTYPE const *yypushed_val]], [[yypushed_val]]]b4_locations_if([,
+ [[[YYLTYPE const *yypushed_loc]], [[yypushed_loc]]]])])m4_ifset([b4_parse_param], [,
+ b4_parse_param]))
+b4_pull_if([b4_c_function_decl([b4_prefix[pull_parse]], [[int]],
+ [[b4_prefix[pstate *yyps]], [[yyps]]]m4_ifset([b4_parse_param], [,
+ b4_parse_param]))])
+b4_c_function_decl([b4_prefix[pstate_new]], [b4_prefix[pstate *]],
+ [[[void]], []])
+b4_c_function_decl([b4_prefix[pstate_delete]], [[void]],
+ [[b4_prefix[pstate *yyps]], [[yyps]]])[
+#endif
+]])
+b4_percent_code_get([[provides]])[]dnl
+])dnl b4_defines_if
+m4_divert_pop(0)
diff --git a/tools/mhmake/src/build.cpp b/tools/mhmake/src/build.cpp
new file mode 100644
index 000000000..46e4f4916
--- /dev/null
+++ b/tools/mhmake/src/build.cpp
@@ -0,0 +1,1710 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+#include "stdafx.h"
+
+#include "mhmakefileparser.h"
+#include "rule.h"
+#include "util.h"
+
+/*****************************************************************************/
+int mhmakefileparser::SearchPath(const char *szCommand, const char *pExt, size_t Len, char *szFullCommand,char **pFilePart) const
+{
+ static vector< fileinfo* > vSearchPath;
+
+ string Command(szCommand);
+ if (pExt)
+ Command+=pExt;
+ vector< fileinfo* >::iterator It;
+ vector< fileinfo* >::iterator ItEnd;
+
+ fileinfo* pCommandFile=GetFileInfo(Command,m_MakeDir);
+ if (pCommandFile->Exists())
+ {
+ goto found;
+ }
+ pCommandFile->InvalidateDate(); // It could be created in the makefile later
+ if (!vSearchPath.size())
+ {
+ char *pPath=getenv(PATH);
+ if (!pPath)
+ return 0;
+ char *Path=strdup(pPath); // To be able to use strtok
+ char *pTok=strtok(Path,OSPATHENVSEPSTR);
+ while (pTok)
+ {
+ vSearchPath.push_back(GetFileInfo(pTok,m_MakeDir));
+ pTok=strtok(NULL,OSPATHENVSEPSTR);
+ }
+ free(Path);
+ }
+ It=vSearchPath.begin();
+ ItEnd=vSearchPath.end();
+ while (It!=ItEnd)
+ {
+ pCommandFile=GetFileInfo(Command,*It);
+ if (pCommandFile->Exists())
+ goto found;
+ It++;
+ }
+
+ return 0;
+
+found:
+ string FullCommand=pCommandFile->GetFullFileName();
+ size_t CommandLen=FullCommand.size();
+ if (CommandLen>Len-1)
+ {
+ throw string("Command to long: ") + FullCommand;
+ }
+ strcpy(szFullCommand,FullCommand.c_str());
+ return 1;
+}
+
+/*****************************************************************************/
+string mhmakefileparser::SearchCommand(const string &Command, const string &Extension) const
+{
+ char FullCommand[MAX_PATH]="";
+ unsigned long Size=sizeof(FullCommand);
+ const char *pExt;
+ if (Extension.empty())
+ pExt=NULL;
+ else
+ pExt=Extension.c_str();
+ if (SearchPath(UnquoteFileName(Command).c_str(),pExt,MAX_PATH,FullCommand,NULL))
+ return FullCommand;
+#ifdef WIN32
+ /* See if we have a path for python.exe in the registry */
+ HKEY hKey;
+ string RegEntry=Command;
+ if (pExt)
+ {
+ RegEntry+=Extension;
+ }
+ string KeyName=string("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\")+RegEntry;
+ if (ERROR_SUCCESS!=RegOpenKey(HKEY_LOCAL_MACHINE,KeyName.c_str(),&hKey))
+ return FullCommand;
+
+ RegQueryValueEx(hKey,NULL,NULL,NULL,(LPBYTE)FullCommand,&Size);
+
+ RegCloseKey(hKey);
+#endif
+
+ return FullCommand;
+}
+
+/*****************************************************************************/
+/* Deletes a complete directory or files with wildcard. It can be assumed that the Directory passed does exist */
+static bool DeleteDir(const string &Dir,const string WildSearch="*",bool bRemoveDir=true)
+{
+ bool Error=false;
+ string Pattern=Dir+OSPATHSEP+WildSearch;
+#ifdef WIN32
+ WIN32_FIND_DATA FindData;
+ mh_pid_t hFind=FindFirstFile(Pattern.c_str(),&FindData);
+ if (hFind==INVALID_HANDLE_VALUE)
+ {
+ return Error;
+ }
+
+ do
+ {
+ /* Only handle items which are not . and .. */
+ if (FindData.cFileName[0]!='.' || (FindData.cFileName[1] && (FindData.cFileName[1]!='.' || FindData.cFileName[2])) )
+ {
+ string FileName=Dir+OSPATHSEP+FindData.cFileName;
+ if (FindData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
+ {
+ Error = DeleteDir(FileName);
+ }
+ else
+ {
+ Error = (-1==remove(FileName.c_str()));
+ }
+ }
+ } while (FindNextFile(hFind,&FindData));
+
+ FindClose(hFind);
+
+ if (bRemoveDir)
+ Error = (0==RemoveDirectory(Dir.c_str()));
+#else
+ glob_t Res;
+ if (glob (Pattern.c_str(), GLOB_ERR|GLOB_NOSORT|GLOB_MARK, NULL, &Res))
+ return Error;
+
+ for (int i=0; i<Res.gl_pathc; i++)
+ {
+ int Len=strlen(Res.gl_pathv[i])-1;
+ if (Res.gl_pathv[i][Len]=='/')
+ {
+ Res.gl_pathv[i][Len]=0;
+ Error = DeleteDir(Res.gl_pathv[i]);
+ }
+ else
+ {
+ Error = (-1==remove(Res.gl_pathv[i]));
+ }
+ }
+
+ globfree(&Res);
+
+ if (bRemoveDir)
+ Error = (-1==remove(Dir.c_str()));
+#endif
+
+ return Error;
+}
+
+/*****************************************************************************/
+mh_pid_t mhmakefileparser::DeleteFiles(const string &Params) const
+{
+ bool IgnoreError=false;
+ vector<fileinfo*> Files;
+
+ // First check if the first parameter is -e meaning don't give an error when file does not exist
+ if (Params[1]=='-')
+ {
+ if (Params[2]=='e')
+ {
+ IgnoreError=true;
+ SplitToItems(Params.substr(4),Files);
+ }
+ else
+ {
+ cerr << "Invalid option "<<Params[1]<<" in del statement\n";
+ return (mh_pid_t)-1;
+ }
+ }
+ else
+ {
+ SplitToItems(Params,Files);
+ }
+
+ vector<fileinfo*>::const_iterator It=Files.begin();
+ while (It!=Files.end())
+ {
+ fileinfo* pFile=*It++;
+ string DirSearch="*";
+ bool bRemoveDir=true;
+
+ /* Now check if there is a wildcard */
+ if (pFile->GetFullFileName().find('*')!=string::npos)
+ {
+ DirSearch=pFile->GetName();
+ pFile=pFile->GetDir();
+ bRemoveDir=false;
+ }
+
+ pFile->InvalidateDate();
+ if (IgnoreError && !pFile->Exists() && !pFile->IsDir())
+ {
+ continue;
+ }
+
+ const string &FileName=pFile->GetFullFileName();
+ if (pFile->IsDir())
+ {
+ if (DeleteDir(FileName,DirSearch,bRemoveDir) && !IgnoreError)
+ {
+ cerr << "Error deleting "<<FileName<<endl;
+ return (mh_pid_t)-1;
+ }
+ }
+ else
+ {
+ if (-1==remove(FileName.c_str()) && !IgnoreError)
+ {
+ cerr << "Error deleting "<<FileName<<endl;
+ return (mh_pid_t)-1;
+ }
+ }
+ }
+ return (mh_pid_t)0;
+}
+
+/*****************************************************************************/
+/* pDest can be a directory or a file */
+static bool CopyFile(fileinfo* pSrc, fileinfo* pDest)
+{
+ if (pDest->IsDir())
+ {
+ pDest=GetFileInfo(pSrc->GetName(),pDest);
+ }
+ string SrcFileName=pSrc->GetFullFileName();
+ string DestFileName=pDest->GetFullFileName();
+
+ /* Now copy the file */
+ FILE *pSrcFile=fopen(SrcFileName.c_str(),"rb");
+ if (!pSrcFile)
+ {
+ cerr << "copy: error opening file "<<SrcFileName<<endl;
+ return false;
+ }
+ FILE *pDestFile=fopen(DestFileName.c_str(),"wb");
+ if (!pDestFile)
+ {
+ cerr << "copy: error creating file "<<DestFileName<<endl;
+ return false;
+ }
+ char Buf[4096];
+ size_t Ret;
+
+ while ( (Ret=fread(Buf,1,sizeof(Buf),pSrcFile)) > 0)
+ {
+ fwrite(Buf,1,Ret,pDestFile);
+ }
+ fclose(pSrcFile);
+ fclose(pDestFile);
+ pDest->InvalidateDate();
+ return true;
+}
+
+/*****************************************************************************/
+/* Copies a complete directory to a destination (currenlty not recursive */
+static bool CopyDir(fileinfo* pDir, fileinfo* pDest,const string WildSearch="*")
+{
+ bool Error=true;
+ string Pattern=pDir->GetFullFileName()+OSPATHSEP+WildSearch;
+#ifdef WIN32
+ WIN32_FIND_DATA FindData;
+ mh_pid_t hFind=FindFirstFile(Pattern.c_str(),&FindData);
+ if (hFind==INVALID_HANDLE_VALUE)
+ {
+ return false;
+ }
+
+ do
+ {
+ /* Only handle items which are not . and .. */
+ if (FindData.cFileName[0]!='.' || (FindData.cFileName[1] && (FindData.cFileName[1]!='.' || FindData.cFileName[2])) )
+ {
+ if (FindData.dwFileAttributes&FILE_ATTRIBUTE_HIDDEN)
+ continue;
+ fileinfo* pSrc=GetFileInfo(FindData.cFileName,pDir);
+
+ if (pSrc->IsDir())
+ {
+ fileinfo* pNewDest=GetFileInfo(FindData.cFileName,pDest);
+ if (!pNewDest->IsDir())
+ {
+ if (pNewDest->Exists())
+ {
+ cerr << pNewDest->GetFullFileName() << " exists and is not a directory.\n";
+ Error = false;
+ goto exit;
+ }
+ if (!CreateDirectory(pNewDest->GetFullFileName().c_str(),NULL))
+ {
+ cerr << "Error creating directory " << pNewDest->GetFullFileName() << endl;
+ Error = false;
+ goto exit;
+ }
+ pNewDest->InvalidateDate();
+ }
+ Error = CopyDir(pSrc,pNewDest);
+ if (!Error) goto exit;
+ }
+ else
+ {
+ Error = CopyFile(pSrc,pDest);
+ if (!Error) goto exit;
+ }
+ }
+ } while (FindNextFile(hFind,&FindData));
+
+exit:
+ FindClose(hFind);
+#else
+ glob_t Res;
+ if (glob (Pattern.c_str(), GLOB_ERR|GLOB_NOSORT|GLOB_MARK, NULL, &Res))
+ return Error;
+
+ for (int i=0; i<Res.gl_pathc; i++)
+ {
+ fileinfo* pSrc=GetFileInfo(Res.gl_pathv[i],pDir);
+ if (pSrc->IsDir())
+ {
+ *(strrchr(Res.gl_pathv[i],'/'))='\0';
+ const char *SrcDirName=strrchr(Res.gl_pathv[i],'/')+1;
+
+ if (SrcDirName[0]=='.')
+ continue;
+
+ fileinfo* pNewDest=GetFileInfo(SrcDirName,pDest);
+ if (!pNewDest->IsDir())
+ {
+ if (pNewDest->Exists())
+ {
+ cerr << pNewDest->GetQuotedFullFileName() << " exists and is not a directory.\n";
+ Error = false;
+ goto exit;
+ }
+ struct stat statbuf;
+ if ( (-1==stat(pDest->GetFullFileName().c_str(),&statbuf)) ||
+ (-1==mkdir(pNewDest->GetFullFileName().c_str(),statbuf.st_mode))
+ )
+ {
+ cerr << "Error creating directory " << pNewDest->GetQuotedFullFileName() << endl;
+ Error = false;
+ goto exit;
+ }
+ pNewDest->InvalidateDate();
+ }
+ Error = CopyDir(pSrc,pNewDest);
+ if (!Error) goto exit;
+ }
+ else
+ {
+ Error = CopyFile(GetFileInfo(Res.gl_pathv[i],pDir),pDest);
+ if (!Error) goto exit;
+ }
+ }
+
+exit:
+ globfree(&Res);
+#endif
+
+ return Error;
+}
+
+/*****************************************************************************/
+mh_pid_t mhmakefileparser::MakeDirsCommand(const string &Params) const
+{
+ vector<fileinfo*> Dirs;
+
+ SplitToItems(Params,Dirs);
+
+ size_t NrDirs=Dirs.size();
+ for (size_t i=0; i<NrDirs; i++)
+ {
+ fileinfo* pDir=Dirs[i];
+ if (pDir->GetName()=="-p")
+ continue;
+ if (!MakeDirs(pDir))
+ return (mh_pid_t)-1;
+ }
+ return (mh_pid_t)0;
+}
+
+/*****************************************************************************/
+static string RemoveQuotes(const string &StrIn)
+{
+ char FirstChar=StrIn[0];
+ string Ret=StrIn;
+ if (FirstChar=='"')
+ {
+ int Len=Ret.length()-1;
+ if (Ret[Len]=='"')
+ Ret=Ret.substr(1,Len-1);
+ }
+ else if (FirstChar=='\'')
+ {
+ int Len=Ret.length()-1;
+ if (Ret[Len]=='\'')
+ Ret=Ret.substr(1,Len-1);
+ }
+ return Ret;
+}
+mh_pid_t mhmakefileparser::EchoCommand(const string &ParamsIn) const
+{
+ string Params=f_strip(ParamsIn);
+ // Find the first > character
+ size_t Pos=Params.find_first_of('>');
+ if (Pos==string::npos)
+ {
+ // Just echo it
+ cout << RemoveQuotes(Params) << endl;
+ }
+ else
+ {
+ FILE *pfFile;
+ /* Extra the filename */
+ string Filename;
+ if (Params[Pos+1]=='>')
+ {
+ NextItem(Params.substr(Pos+2).c_str(),Filename);
+ fileinfo* pFile=GetFileInfo(Filename,m_MakeDir);
+ // Open file in append
+ pfFile=fopen(pFile->GetFullFileName().c_str(),"a");
+ }
+ else
+ {
+ NextItem(Params.substr(Pos+1).c_str(),Filename);
+ fileinfo* pFile=GetFileInfo(Filename,m_MakeDir);
+ pfFile=fopen(pFile->GetFullFileName().c_str(),"w");
+ }
+ if (!pfFile)
+ {
+ cerr << "Error opening file "<<Filename<<endl;
+ return (mh_pid_t)-1;
+ }
+ string EchoStr=RemoveQuotes(Params.substr(0,Pos))+"\n";
+ if (EchoStr.length()!=fwrite(EchoStr.c_str(),1,EchoStr.length(),pfFile))
+ {
+ cerr << "Error writing file "<<Filename<<endl;
+ return (mh_pid_t)-1;
+ }
+ fclose(pfFile);
+ }
+ return (mh_pid_t)0;
+}
+
+/*****************************************************************************/
+mh_pid_t mhmakefileparser::CopyFiles(const string &Params) const
+{
+ vector<fileinfo*> Files;
+
+ SplitToItems(Params,Files);
+
+ size_t NrSrcs=Files.size()-1;
+
+ if (NrSrcs<1)
+ {
+ cerr << "Wrong number of arguments in copy: "<<Params<<endl;
+ return (mh_pid_t)-1;
+ }
+
+ fileinfo* pDest=Files[NrSrcs];
+ if (NrSrcs>1 && !pDest->IsDir())
+ {
+ cerr << "copy: Destination must be a directory when more then one source : "<<Params<<endl;
+ return (mh_pid_t)-1;
+ }
+
+ for (size_t i=0; i<NrSrcs; i++)
+ {
+ fileinfo* pSrc=Files[i];
+
+ string SrcFileName=pSrc->GetFullFileName();
+
+ if (pSrc->IsDir())
+ {
+ SrcFileName+=OSPATHSEPSTR "*";
+ pSrc=GetFileInfo(SrcFileName,m_MakeDir);
+ }
+
+ //cerr << "copy "<<pSrc->GetFullFileName()<<" "<<pDest->GetFullFileName()<<endl;
+ /* Now check if there is a wildcard */
+ if (SrcFileName.find('*')!=string::npos)
+ {
+ if (!CopyDir(pSrc->GetDir(), pDest, pSrc->GetName()))
+ {
+ cerr << "copy: Error copying directory: " << Params << endl;
+ return (mh_pid_t)-1;
+ }
+ }
+ else
+ {
+ if (!CopyFile(pSrc,pDest))
+ {
+ cerr << "copy: Error copying file: " << Params << endl;
+ return (mh_pid_t)-1;
+ }
+ }
+ }
+
+ return (mh_pid_t)0;
+
+}
+
+/*****************************************************************************/
+mh_pid_t mhmakefileparser::TouchFiles(const string &Params) const
+{
+ vector<fileinfo*> Files;
+
+ SplitToItems(Params,Files);
+
+ vector<fileinfo*>::const_iterator It=Files.begin();
+ while (It!=Files.end())
+ {
+ fileinfo* pFile=*It++;
+ const string &FileName=pFile->GetFullFileName();
+
+ /* Since this can be part of a list of commands for a certain rule, and it is possible that the file
+ * was generated by one on the previous commands, we first need the invalidate the date so that the
+ * existance checking is done again */
+ pFile->InvalidateDate();
+
+ if (pFile->IsDir())
+ {
+ cerr << "touch: Cannot touch a directory: " << FileName << endl;
+ return (mh_pid_t)-1;
+ }
+ if (pFile->Exists())
+ {
+ int fd;
+ char c;
+ int status = 0;
+ struct stat st;
+ int Ret;
+ int saved_errno = 0;
+
+ fd = open (FileName.c_str(), O_RDWR);
+ if (fd<0)
+ {
+ st.st_size=0;
+ }
+ else
+ {
+ if (fstat (fd, &st) < 0)
+ {
+ cerr << "touch: Cannot stat file " << FileName << endl;
+ return (mh_pid_t)-1;
+ }
+ }
+
+ if (st.st_size == 0)
+ {
+ FILE *pFile;
+ if (fd>=0 && close(fd) < 0)
+ {
+ cerr << "touch: Error closing file " << FileName << endl;
+ return (mh_pid_t)-1;
+ }
+ /*Re-Create an empty file */
+ pFile=fopen(FileName.c_str(),"wb");
+ if (!pFile)
+ {
+ cerr << "touch: Cannot create file: " << FileName << endl;
+ return (mh_pid_t)-1;
+ }
+ fclose(pFile);
+ }
+ else
+ {
+ Ret=read (fd, &c, sizeof(c));
+ if (Ret!=sizeof(c) && Ret!=EOF)
+ {
+ cerr << "touch: Cannot read file " << FileName << ": "<<Ret<<endl;
+ return (mh_pid_t)-1;
+ }
+ if (lseek (fd, (off_t) 0, SEEK_SET) < 0)
+ {
+ cerr << "touch: Error changing file pointer " << FileName << endl;
+ return (mh_pid_t)-1;
+ }
+ if (write (fd, &c, sizeof c) != sizeof(c))
+ {
+ cerr << "touch: Error writing file " << FileName << endl;
+ return (mh_pid_t)-1;
+ }
+ if (close (fd) < 0)
+ {
+ cerr << "touch: Error closing file " << FileName << endl;
+ return (mh_pid_t)-1;
+ }
+ }
+ }
+ else
+ {
+ /* Create an empty file */
+ FILE *pFile=fopen(FileName.c_str(),"wb");
+ if (!pFile)
+ {
+ cerr << "touch: Cannot create file: " << FileName << endl;
+ return (mh_pid_t)-1;
+ }
+ fclose(pFile);
+ }
+ pFile->InvalidateDate();
+ }
+ return (mh_pid_t)0;
+}
+
+/*****************************************************************************/
+const string &mhmakefileparser::GetPythonExe() const
+{
+ static string PythonExe;
+ if (PythonExe.empty())
+ {
+ string FullCommand=SearchCommand(PYTHONEXE);
+ if (!FullCommand.empty())
+ {
+ PythonExe=QuoteFileName(FullCommand)+" ";
+ }
+ else
+ {
+ cerr<<"python executable not found in path and registry.\n";
+ exit(1);
+ }
+ }
+ return PythonExe;
+}
+
+/*****************************************************************************/
+static const string &GetComspec()
+{
+ static string Comspec;
+ if (Comspec.empty())
+ {
+ const char *pComspec=getenv(COMSPEC);
+ if (pComspec)
+ {
+ Comspec=pComspec;
+ #ifdef WIN32
+ Comspec+=" /c ";
+ #else
+ Comspec+=" -c \"";
+ #endif
+ }
+ else
+ {
+ #ifdef WIN32
+ Comspec="cmd.exe /c ";
+ #else
+ Comspec="sh -c \"";
+ #endif
+ }
+ }
+ return Comspec;
+}
+
+/*****************************************************************************/
+static string GetExecutableFromCommand(const string &FullCommand)
+{
+ string Ret;
+ FILE *pFile=fopen(FullCommand.c_str(),"r");
+ if (!pFile)
+ return Ret;
+ char Line[MAX_PATH];
+ if (fgets(Line,MAX_PATH,pFile) && Line[0]=='#' && Line[1]=='!')
+ {
+ Ret=Line+2;
+ Ret.resize(Ret.length()-1);
+ Ret=QuoteFileName(Ret)+" ";
+ }
+ fclose(pFile);
+ return Ret;
+}
+
+/*****************************************************************************/
+string mhmakefileparser::GetFullCommand(const string &CommandIn)
+{
+ map<string,string>::iterator pFound=m_CommandCache.find(CommandIn);
+ string Command=CommandIn;
+ if (pFound==m_CommandCache.end())
+ {
+ bool Found=false;
+ // Not found in the stack, search in the environment path
+ // Check if an extension is specified
+ const char *pBeg=Command.c_str();
+ const char *pEnd=pBeg+Command.length()-1;
+ bool HasExt=false;
+ while (pEnd>pBeg && *pEnd!='\\' && *pEnd!='/')
+ {
+ if (*pEnd=='.')
+ {
+ HasExt=true;
+ break;
+ }
+ pEnd--;
+ }
+ if (HasExt)
+ {
+ string FullCommand=SearchCommand(Command);
+ if (!FullCommand.empty())
+ {
+ Found=true;
+ Command=QuoteFileName(FullCommand);
+ }
+ }
+ else
+ {
+ /* First check for special internal commands */
+ if (CommandIn=="del")
+ {
+ m_CommandCache[CommandIn]="del";
+ return Command;
+ }
+ // Try with different extensions
+ string FullCommand=SearchCommand(Command,EXEEXT);
+ if (!FullCommand.empty())
+ {
+ Found=true;
+ Command=QuoteFileName(FullCommand);
+ }
+ else
+ {
+ FullCommand=SearchCommand(Command,".py");
+ if (!FullCommand.empty())
+ {
+ Found=true;
+ Command=GetPythonExe()+QuoteFileName(FullCommand);
+ }
+ else
+ {
+ // also search without extension, if found look inside the file if we find an executable to use
+ FullCommand=SearchCommand(Command);
+ if (!FullCommand.empty())
+ {
+ Found=true;
+ Command=GetExecutableFromCommand(FullCommand)+QuoteFileName(FullCommand);
+ }
+ }
+ }
+ }
+ if (!Found)
+ {
+ Command=GetComspec()+QuoteFileName(Command);
+ }
+ m_CommandCache[CommandIn]=Command;
+ return Command;
+ }
+ return pFound->second;
+}
+
+static void CommandSep(const string &Command, unsigned &EndPos, unsigned &NextBegin)
+{
+ while (1)
+ {
+ EndPos=Command.find('&',NextBegin);
+ if (EndPos==(unsigned)string::npos || !EndPos)
+ {
+ // When there is only one command return that command, so we run %comspec% commands
+ // always via a temporary batch file. This is to avoid problems when quotes and pipe
+ // characters in parameters when using cmd /c
+ return;
+ }
+ EndPos--;
+ char C=Command[EndPos];
+ NextBegin=EndPos+2;
+ if (strchr("|<>",C))
+ {
+ continue;
+ }
+ if (NextBegin<Command.length())
+ {
+ C=Command[NextBegin];
+ if (strchr("|<>",C))
+ {
+ continue;
+ }
+ while (strchr(" \t|<>",Command[NextBegin])) NextBegin++;
+ }
+ while (strchr(" \t|<>",Command[EndPos])) EndPos--;
+ break;
+ };
+
+}
+
+mh_pid_t mhmakefileparser::OsExeCommand(const string &Command, const string &Params, bool IgnoreError, string *pOutput) const
+{
+ string FullCommandLine;
+ string ComSpec=GetComspec();
+#ifdef WIN32
+ STARTUPINFO StartupInfo;
+ memset(&StartupInfo,0,sizeof(StartupInfo));
+ StartupInfo.cb=sizeof(STARTUPINFO);
+ PROCESS_INFORMATION ProcessInfo;
+
+ if (Command.substr(0,ComSpec.size())==ComSpec)
+ {
+ static char Filename[MAX_PATH];
+ static char *pFilenameOffset;
+
+ if (pFilenameOffset==NULL)
+ {
+ const char *pDir=getenv("TEMP");
+ if (!pDir)
+ pDir=getenv("TMP");
+ if (!pDir)
+ pDir=m_MakeDir->GetFullFileName().c_str();
+ sprintf(Filename, "%s\\tmp%d_", pDir, GetCurrentProcessId());
+ pFilenameOffset=Filename+strlen(Filename);
+ }
+
+ string tmpCommand=Command.substr(ComSpec.size(),Command.size());
+ FullCommandLine=ComSpec;
+
+ string ComspecCommandLine=tmpCommand+Params;
+ unsigned NextBegin=0;
+ unsigned EndPos=0;
+ CommandSep(ComspecCommandLine,EndPos,NextBegin);
+
+ // We have multiple commands so create an temporary batch file
+ FILE *pFile;
+ while (1)
+ {
+ sprintf(pFilenameOffset,"%d.bat",rand());
+ pFile=fopen(Filename,"r");
+ if (!pFile)
+ break;
+ fclose(pFile);
+ }
+ pFile=fopen(Filename,"w");
+ fprintf(pFile,"@echo off\n");
+ unsigned PrevPos=0;
+ while (EndPos!=(unsigned)string::npos)
+ {
+ string SubCommand=ComspecCommandLine.substr(PrevPos,EndPos-PrevPos+1);
+ fprintf(pFile,"%s\n",SubCommand.c_str());
+ PrevPos=NextBegin;
+ CommandSep(ComspecCommandLine,EndPos,NextBegin);
+ }
+ string SubCommand=ComspecCommandLine.substr(PrevPos);
+ fprintf(pFile,"%s\n",SubCommand.c_str());
+ fclose(pFile);
+ FullCommandLine+=QuoteFileName(Filename);
+ ((mhmakefileparser*)this)->m_FilesToRemoveAtEnd.push_back(string(Filename));
+ }
+ else
+ {
+ FullCommandLine=Command+Params;
+ }
+ char *pFullCommand=new char[FullCommandLine.length()+1];
+ strcpy(pFullCommand,FullCommandLine.c_str());
+
+ if (pOutput || g_Quiet)
+ {
+ mh_pid_t hChildStdinRd;
+ mh_pid_t hChildStdinWr;
+ mh_pid_t hChildStdoutRd;
+ mh_pid_t hChildStdoutWr;
+ mh_pid_t hChildStdinWrDup;
+ mh_pid_t hChildStdoutRdDup;
+ SECURITY_ATTRIBUTES saAttr;
+ BOOL fSuccess;
+
+ saAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
+ saAttr.bInheritHandle = TRUE;
+ saAttr.lpSecurityDescriptor = NULL;
+
+ if (!CreatePipe(&hChildStdinRd, &hChildStdinWr, &saAttr, 0))
+ return (mh_pid_t)-1;
+
+ /* Create new output read handle and the input write handle. Set
+ * the inheritance properties to FALSE. Otherwise, the child inherits
+ * the these handles; resulting in non-closeable handles to the pipes
+ * being created. */
+ fSuccess = DuplicateHandle(GetCurrentProcess(), hChildStdinWr,
+ GetCurrentProcess(), &hChildStdinWrDup, 0,
+ FALSE, DUPLICATE_SAME_ACCESS);
+ if (!fSuccess) return (mh_pid_t)-1;
+ /* Close the inheritable version of ChildStdin that we're using. */
+ CloseHandle(hChildStdinWr);
+
+ if (!CreatePipe(&hChildStdoutRd, &hChildStdoutWr, &saAttr, 0))
+ return (mh_pid_t)-1;
+
+ fSuccess = DuplicateHandle(GetCurrentProcess(), hChildStdoutRd,
+ GetCurrentProcess(), &hChildStdoutRdDup, 0,
+ FALSE, DUPLICATE_SAME_ACCESS);
+ if (!fSuccess) return (mh_pid_t)-1;
+ CloseHandle(hChildStdoutRd);
+
+ int hStdIn = _open_osfhandle((long)hChildStdinWrDup, _O_WRONLY|_O_TEXT);
+ FILE *pStdIn = _fdopen(hStdIn, "w");
+ int hStdOut = _open_osfhandle((long)hChildStdoutRdDup, _O_RDONLY|_O_TEXT);
+ FILE *pStdOut = _fdopen(hStdOut, "r");
+
+ StartupInfo.dwFlags = STARTF_USESTDHANDLES;
+ StartupInfo.hStdInput = hChildStdinRd;
+ StartupInfo.hStdOutput = hChildStdoutWr;
+ StartupInfo.hStdError = hChildStdoutWr;
+
+ if (!CreateProcess(NULL,pFullCommand,NULL,NULL,TRUE,CREATE_NO_WINDOW,m_pEnv,m_MakeDir->GetFullFileName().c_str(),&StartupInfo,&ProcessInfo))
+ {
+ delete[] pFullCommand;
+ string ErrorMessage=string("Error starting command: ") + FullCommandLine + " : " + stringify(GetLastError());
+ if (IgnoreError)
+ cerr << ErrorMessage << endl;
+ else
+ throw ErrorMessage;
+ }
+ delete[] pFullCommand;
+ if (!CloseHandle(hChildStdinRd)) return (mh_pid_t)-1;
+ if (!CloseHandle(hChildStdoutWr)) return (mh_pid_t)-1;
+
+ CloseHandle(ProcessInfo.hThread);
+ char Buf[256];
+ size_t Nbr;
+ while ( (Nbr=fread(Buf,1,sizeof(Buf)-1,pStdOut)) > 0)
+ {
+ if (pOutput)
+ {
+ Buf[Nbr]=0;
+ *pOutput+=Buf;
+ }
+ }
+ WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
+ fclose(pStdIn);
+ fclose(pStdOut);
+
+ DWORD ExitCode=0;
+ if (!GetExitCodeProcess(ProcessInfo.hProcess,&ExitCode) || ExitCode)
+ {
+ if (IgnoreError)
+ {
+ cerr << "Error running command: "<<Command<<", but ignoring error\n";
+ return (mh_pid_t)0; // Ignore error
+ }
+ else
+ return (mh_pid_t)-1;
+ }
+ CloseHandle(ProcessInfo.hProcess);
+ return (mh_pid_t)0;
+ }
+ else
+ {
+ if (!CreateProcess(NULL,pFullCommand,NULL,NULL,TRUE,0,m_pEnv,m_MakeDir->GetFullFileName().c_str(),&StartupInfo,&ProcessInfo))
+ {
+ delete[] pFullCommand;
+ string ErrorMessage=string("Error starting command: ") + Command + " : " + stringify(GetLastError());
+ if (IgnoreError)
+ cerr << ErrorMessage << endl;
+ else
+ throw ErrorMessage;
+ }
+ delete[] pFullCommand;
+ CloseHandle(ProcessInfo.hThread);
+ return ProcessInfo.hProcess;
+ }
+#else
+ if (Command.substr(0,ComSpec.size())==ComSpec)
+ {
+ string tmpCommand=Command.substr(ComSpec.size(),Command.size());
+ FullCommandLine=ComSpec;
+ FullCommandLine+=QuoteFileName(tmpCommand)+Params;
+ }
+ else
+ {
+ FullCommandLine=Command+Params;
+ }
+
+ if (pOutput || g_Quiet)
+ {
+ int pipeto[2]; /* pipe to feed the exec'ed program input */
+ int pipefrom[2]; /* pipe to get the exec'ed program output */
+
+ if ( (-1==pipe(pipeto)) || (-1==pipe(pipefrom)) )
+ {
+ if (IgnoreError)
+ {
+ cerr << "Error creating pipe for : "<<Command<<", but ignoring error\n";
+ return (mh_pid_t)0; // Ignore error
+ }
+ else
+ return (mh_pid_t)-1;
+ }
+
+ pid_t ID=vfork();
+ if (ID==-1)
+ {
+ if (IgnoreError)
+ {
+ cerr << "Error forking when try to run command: "<<Command<<", but ignoring error\n";
+ return (mh_pid_t)0; // Ignore error
+ }
+ else
+ return (mh_pid_t)-1;
+ }
+ else if (ID==0)
+ {
+ int argc;
+ const char **pargv;
+
+ dup2( pipeto[0], STDIN_FILENO );
+ dup2( pipefrom[1], STDOUT_FILENO );
+ /* close unnecessary pipe descriptors for a clean environment */
+ close( pipeto[0] );
+ close( pipeto[1] );
+ close( pipefrom[0] );
+ close( pipefrom[1] );
+
+ poptParseArgvString(FullCommandLine.c_str(), &argc, &pargv);
+ if (-1==chdir(m_MakeDir->GetFullFileName().c_str()))
+ throw string("Error changing current directory to ")+m_MakeDir->GetFullFileName();
+ if (m_pEnv)
+ execve(pargv[0],(char *const*)pargv,m_pEnv);
+ else
+ execv(pargv[0],(char *const*)pargv);
+ free(pargv);
+ _exit (EXIT_FAILURE);
+ }
+ else
+ {
+ /* Close unused pipe ends. This is especially important for the
+ * pipefrom[1] write descriptor, otherwise readFromPipe will never
+ * get an EOF. */
+ close( pipeto[0] );
+ close( pipefrom[1] );
+
+ pid_t ID2=vfork();
+ if (ID2==-1)
+ {
+ if (IgnoreError)
+ {
+ cerr << "Error forking when try to run command: "<<Command<<", but ignoring error\n";
+ return (mh_pid_t)0; // Ignore error
+ }
+ else
+ return (mh_pid_t)-1;
+ }
+ else if (ID2==0)
+ {
+ /* Close pipe write descriptor, or we will never know when the
+ * writer process closes its end of the pipe and stops feeding the
+ * exec'ed program. */
+ close( pipeto[1] );
+ char Buf[256];
+ int Nbr;
+ while ( (Nbr=read(pipefrom[0],Buf,sizeof(Buf)-1)) > 0)
+ {
+ if (pOutput)
+ {
+ Buf[Nbr]=0;
+ *pOutput+=Buf;
+ }
+ }
+ close( pipefrom[0]);
+ _exit (EXIT_FAILURE);
+ }
+ else
+ {
+ /* close unused pipe end */
+ close( pipefrom[0] );
+ close( pipeto[1] );
+
+ int Status;
+ waitpid(ID2,&Status,0); // Wait until the reading of the output is finished
+ }
+
+ int Status;
+ int Ret=waitpid(ID,&Status,0);
+ if (Ret!=ID || Status)
+ {
+ if (IgnoreError)
+ {
+ cerr << "Error running command: "<<Command<<", but ignoring error\n";
+ return (mh_pid_t)0; // Ignore error
+ }
+ else
+ return (mh_pid_t)-1;
+ }
+ }
+ }
+ else
+ { // No pOutput
+ pid_t ID=fork();
+ if (ID==-1)
+ {
+ if (IgnoreError)
+ {
+ cerr << "Error forking when try to run command: "<<Command<<", but ignoring error\n";
+ return (mh_pid_t)0; // Ignore error
+ }
+ else
+ return (mh_pid_t)-1;
+ }
+ else if (ID==0)
+ {
+ int argc;
+ const char **pargv;
+
+ poptParseArgvString(FullCommandLine.c_str(), &argc, &pargv);
+ if (-1==chdir(m_MakeDir->GetFullFileName().c_str()))
+ throw string("Error changing current directory to ")+m_MakeDir->GetFullFileName();
+ if (m_pEnv)
+ execve(pargv[0],(char *const*)pargv,m_pEnv);
+ else
+ execv(pargv[0],(char *const*)pargv);
+ free(pargv);
+ _exit (EXIT_FAILURE);
+ }
+ else
+ {
+ return (mh_pid_t)ID;
+ }
+ }
+
+ return (mh_pid_t)0;
+#endif
+}
+
+///////////////////////////////////////////////////////////////////////////////
+#ifndef WIN32
+string EscapeQuotes(const string &Params)
+{
+ int OldPos=0;
+ int Pos;
+ string Quote("\\\"");
+ string SemiColon(" ; ");
+ string Ret;
+
+ while (1)
+ {
+ int Pos=Params.find_first_of('"',OldPos);
+ int Pos2=Params.find(" & ",OldPos);
+ string ToReplace(Quote);
+ int Inc=1;
+
+ if (Pos==(int)string::npos)
+ {
+ if (Pos2==(int)string::npos)
+ break;
+ Pos=Pos2;
+ ToReplace=SemiColon;
+ Inc=3;
+ }
+ else
+ {
+ if (Pos2!=(int)string::npos && Pos2<Pos)
+ {
+ Pos=Pos2;
+ ToReplace=SemiColon;
+ Inc=3;
+ }
+ }
+ Ret+=Params.substr(OldPos,Pos-OldPos);
+ Ret+=ToReplace;
+ OldPos=Pos+Inc;
+ }
+ Ret+=Params.substr(OldPos);
+ return Ret;
+}
+#endif
+
+///////////////////////////////////////////////////////////////////////////////
+static bool NeedsShell(const string &Params)
+{
+ unsigned i;
+ int Detect=1;
+ for (i=0; i<Params.size(); i++)
+ {
+ char Char=Params[i];
+ if (Char=='"')
+ {
+ Detect=1-Detect;
+ }
+ else if (Detect)
+ {
+ if (strchr("<>|&",Char))
+ {
+ break;
+ }
+ }
+ }
+ return i!=Params.size();
+}
+
+///////////////////////////////////////////////////////////////////////////////
+mh_pid_t mhmakefileparser::ExecuteCommand(string Command, bool &IgnoreError, string *pOutput)
+{
+ bool Echo=true;
+ IgnoreError=false;
+ while (Command.length())
+ {
+ if (Command[0]=='@')
+ {
+ Echo=false;
+ Command=Command.substr(1);
+ continue;
+ }
+ if (Command[0]=='-')
+ {
+ IgnoreError=true;
+ Command=Command.substr(1);
+ continue;
+ }
+ break;
+ }
+ if (!Command.length())
+ return (mh_pid_t)0;
+ string InCommand=Command;
+ if (g_Quiet)
+ Echo=false;
+
+ const char *pCom=Command.c_str();
+ int StartCommandPos;
+ int EndCommandPos;
+ int BeginParamPos;
+ if (*pCom=='"')
+ {
+ StartCommandPos=1;
+ EndCommandPos=1;
+ while (pCom[EndCommandPos]!='"') EndCommandPos++;
+ }
+ else
+ {
+ StartCommandPos=0;
+ EndCommandPos=0;
+ }
+ while (!strchr(" \t",pCom[EndCommandPos])) EndCommandPos++;
+ BeginParamPos=EndCommandPos;
+ string Params=Command.substr(BeginParamPos);
+ Command=Command.substr(StartCommandPos,EndCommandPos-StartCommandPos);
+
+ // If we have special characters in the params we always call the command via the shell
+ if (!NeedsShell(Params))
+ {
+ if (Command!="del" && Command!="touch" && Command!="copy" && Command!="echo" && Command!="mkdir")
+ Command=GetFullCommand(Command);
+#ifndef WIN32
+ if (Command.substr(0,GetComspec().size())==GetComspec())
+ {
+ Params=EscapeQuotes(Params);
+ Params+="\"";
+ }
+#endif
+ }
+ else
+ {
+ if (Command!="echo" || strchr(Params.c_str(),'|')) // the EchoCommand(Params) does not implement piping, only redirecting (>)
+ {
+ string FullCommand=GetFullCommand(Command);
+ string ComSpec=GetComspec();
+ if (FullCommand.substr(0,ComSpec.size())!=ComSpec)
+ Command=FullCommand; // Only use FullCommand when it was found and not prepending by the comspec.
+ Command=ComSpec+Command;
+#ifndef WIN32
+ Params=EscapeQuotes(Params);
+ Params+="\"";
+#endif
+ }
+ }
+ if (Echo
+ #ifdef _DEBUG
+ || g_DoNotExecute
+ #endif
+ )
+ {
+ #ifdef _DEBUG
+ if (g_PrintAdditionalInfo)
+ cout << Command << Params << endl;
+ else
+ cout << InCommand << endl;
+ #endif
+ }
+
+ /* first we check special internal commands */
+ #ifdef _DEBUG
+ if (pOutput || !g_DoNotExecute)
+ {
+ #endif
+ if (Command=="del")
+ {
+ return DeleteFiles(Params);
+ }
+ else if (Command=="touch")
+ {
+ return TouchFiles(Params);
+ }
+ else if (Command=="copy")
+ {
+ return CopyFiles(Params);
+ }
+ else if (Command=="echo")
+ {
+ return EchoCommand(Params);
+ }
+ else if (Command=="mkdir")
+ {
+ return MakeDirsCommand(Params);
+ }
+
+ return OsExeCommand(Command,Params,IgnoreError,pOutput);
+ #ifdef _DEBUG
+ }
+ #endif
+ return (mh_pid_t)0; /* No Error */
+}
+
+///////////////////////////////////////////////////////////////////////////////
+void mhmakefileparser::BuildDependencies(const refptr<rule> &pRule, fileinfo* pTarget, mh_time_t TargetDate, mh_time_t &YoungestDate, bool &MakeTarget)
+{
+
+ vector<fileinfo*> &Deps=pTarget->GetDeps();
+ vector<fileinfo*>::iterator pDepIt=Deps.begin();
+ while (pDepIt!=Deps.end())
+ {
+ StartBuildTarget(*pDepIt);
+ pDepIt++;
+ }
+ pDepIt=Deps.begin();
+ while (pDepIt!=Deps.end())
+ {
+ mh_time_t DepDate=WaitBuildTarget(*pDepIt);
+ #ifdef _DEBUG
+ if (!DepDate.DoesExist()&&!(*pDepIt)->IsPhony())
+ {
+ if (!(*pDepIt)->GetDir()->GetDate().DoesExist())
+ cout << "Building of "<<(*pDepIt)->GetFullFileName()<<" failed because directory does not exist (rule defined to create it?)\n";
+ else
+ cout << "Does not known how to create "<<(*pDepIt)->GetFullFileName()<<".\n";
+ }
+ #endif
+ if (DepDate.IsNewer(YoungestDate))
+ YoungestDate=DepDate;
+ if (DepDate.IsNewer(TargetDate))
+ {
+ #ifdef _DEBUG
+ if (pRule&&g_pPrintDependencyCheck && DepDate.IsExistingFile() && TargetDate.IsExistingFile())
+ cout<<"Going to build "<<pTarget->GetQuotedFullFileName()<<" because "<<(*pDepIt)->GetQuotedFullFileName()<<" is more recent\n";
+ #endif
+ MakeTarget=true;
+ }
+ pDepIt++;
+ }
+}
+
+///////////////////////////////////////////////////////////////////////////////
+mh_time_t mhmakefileparser::StartBuildTarget(fileinfo* pTarget,bool bCheckTargetDir)
+{
+ #ifdef _DEBUG
+ if (g_CheckCircularDeps)
+ {
+ deque<fileinfo*>::const_iterator pFind=find(m_TargetStack.begin(),m_TargetStack.end(),pTarget);
+ if (pFind!=m_TargetStack.end())
+ {
+ cout << "Circular dependency detected.\n"<<pTarget->GetQuotedFullFileName()<<" depending on itself.\n";
+ cout << "Dependency stack:\n";
+ deque<fileinfo*>::const_iterator pIt=m_TargetStack.begin();
+ while (pIt!=m_TargetStack.end())
+ {
+ cout << " " << (*pIt)->GetQuotedFullFileName() << endl;
+ pIt++;
+ }
+ }
+ if (!pTarget->IsBuildStarted()) m_TargetStack.push_back(pTarget);
+ }
+ #endif
+
+ #ifdef _DEBUG
+ static int Indent;
+ #endif
+
+ if (g_StopCompiling)
+ {
+ throw string("Compilation Interrupted by user.");
+ }
+
+ if (pTarget->IsBuild())
+ {
+ #ifdef _DEBUG
+ if (g_pPrintDependencyCheck)
+ {
+ for (int i=0; i<Indent; i++)
+ cout<<" ";
+ cout<<" Already build "<<pTarget->GetQuotedFullFileName()<<" : "<<pTarget->GetDate()<<endl;
+ }
+ #endif
+ return pTarget->GetDate();
+ }
+ if (pTarget->IsBuilding())
+ return mh_time_t(); // pTarget is still building, so we have to wait
+
+ #ifdef _DEBUG
+ if (g_GenProjectTree)
+ cout << pTarget->GetQuotedFullFileName() << endl;
+
+ Indent++;
+ if (g_pPrintDependencyCheck)
+ {
+ for (int i=0; i<Indent; i++)
+ cout<<" ";
+ cout<<"Building dependencies of "<<pTarget->GetQuotedFullFileName()<<endl;
+ }
+ #endif
+
+ pTarget->SetBuild();
+
+ /* Optimisation: do not build target when target dir does not exist,
+ but first build the target dir, in case there exists a rule for it*/
+ refptr<rule> pRule=pTarget->GetRule();
+
+ if (!pRule && bCheckTargetDir)
+ {
+ fileinfo *pTargetDir=pTarget->GetDir();
+ mh_time_t TargetDirDate=BuildTarget(pTargetDir,false);
+
+ if (!pTargetDir->Exists())
+ {
+ #ifdef _DEBUG
+ Indent--;
+ if (g_CheckCircularDeps)
+ {
+ m_TargetStack.pop_back();
+ }
+ #endif
+ return TargetDirDate;
+ }
+ }
+
+ mh_time_t TargetDate=pTarget->GetDate();
+ mh_time_t YoungestDate=TargetDate;
+ bool MakeTarget=!TargetDate.DoesExist(); // When the target does not exist, always build when a rule is found. This also makes sure the autodepscan will be done in case the target does not exist yet
+
+ if (!pRule || !pRule->GetCommands().size())
+ {
+ implicitruledep_t Result;
+
+ IMPLICITRULE::SearchImplicitRule(pTarget,Result);
+
+ implicitruledep_t::iterator ResultIt=Result.begin();
+ while (ResultIt!=Result.end())
+ {
+ if (ResultIt->first.empty())
+ {
+ pRule=ResultIt->second;
+ pTarget->SetRule(pRule);
+ #ifdef _DEBUG
+ if (g_PrintAdditionalInfo)
+ {
+ cout<<"Found implicit rule for "<<pTarget->GetQuotedFullFileName()<<endl;
+ pRule->PrintCommands(pTarget);
+ }
+ #endif
+ break;
+ }
+ else if (!IMPLICITRULE::PushRule(ResultIt->second))
+ {
+ /* We have to check all the implicitrule dependencies, only when they all can be build,
+ the implicit rule matches */
+ #ifdef _DEBUG
+ fileinfo *pYoungestTarget;
+ m_ImplicitSearch++;
+ #endif
+ mh_time_t ThisYoungestDate=YoungestDate;
+ vector<fileinfo*>::iterator ImplicitRuleDepsIt=ResultIt->first.begin();
+ while (ImplicitRuleDepsIt!=ResultIt->first.end())
+ {
+ fileinfo *pNewTarget=*ImplicitRuleDepsIt;
+ mh_time_t DepDate=BuildTarget(pNewTarget);
+ if (!DepDate.DoesExist())
+ {
+ pNewTarget=ResultIt->second->GetMakefile()->SearchvPath(pNewTarget);
+ if (pNewTarget!=NULL)
+ {
+ *ImplicitRuleDepsIt=pNewTarget; /* The file was elsewere so we have to update the dependencies */
+ DepDate=pNewTarget->GetDate();
+ }
+ }
+ if (!DepDate.DoesExist())
+ break;
+ if (DepDate.IsNewer(ThisYoungestDate))
+ {
+ ThisYoungestDate=DepDate;
+ #ifdef _DEBUG
+ pYoungestTarget=pNewTarget;
+ #endif
+ }
+ ImplicitRuleDepsIt++;
+ }
+
+ IMPLICITRULE::PopRule(ResultIt->second);
+ #ifdef _DEBUG
+ m_ImplicitSearch--;
+ #endif
+ if (ImplicitRuleDepsIt==ResultIt->first.end()) // All deps exists
+ {
+ YoungestDate=ThisYoungestDate;
+ pRule=ResultIt->second;
+ pTarget->InsertDeps(ResultIt->first);
+ pTarget->SetRule(pRule); /* This is an implicit rule so do not add the target */
+ #ifdef _DEBUG
+ if (g_PrintAdditionalInfo)
+ {
+ cout<<"Found implicit rule for "<<pTarget->GetQuotedFullFileName()<<". Dependents:\n";
+ vector<fileinfo*>::iterator ImplicitRuleDepsIt=ResultIt->first.begin();
+ while (ImplicitRuleDepsIt!=ResultIt->first.end())
+ {
+ cout<<" "<<(*ImplicitRuleDepsIt)->GetQuotedFullFileName()<<endl;
+ ImplicitRuleDepsIt++;
+ }
+ pRule->PrintCommands(pTarget);
+ }
+ #endif
+ if (ThisYoungestDate.IsNewer(TargetDate))
+ {
+ #ifdef _DEBUG
+ if (pRule,g_pPrintDependencyCheck && ThisYoungestDate.IsExistingFile() && TargetDate.IsExistingFile())
+ cout<<"Going to build "<<pTarget->GetQuotedFullFileName()<<" because "<<pYoungestTarget->GetQuotedFullFileName()<<" is more recent\n";
+ #endif
+ MakeTarget=true;
+ }
+ break;
+ }
+ }
+ #ifdef _DEBUG
+ else if (g_PrintAdditionalInfo)
+ {
+ cout << "Stopping implicit search of "<<pTarget->GetFullFileName()<<" because of implicit rule recursion detected.\n";
+ }
+ #endif
+ ResultIt++;
+ }
+ if (pRule)
+ {
+ #ifdef _DEBUG
+ pTarget->SetBuilding();
+ pTarget->SetRule(pRule);
+ pTarget->ClearBuilding();
+ #else
+ pTarget->SetRule(pRule);
+ #endif
+ }
+ }
+
+ mhmakefileparser *pMakefile=NULL;
+ if (pRule)
+ {
+ pMakefile=pRule->GetMakefile();
+ if (pMakefile->ForceAutoDepRescan()||MakeTarget==true)
+ pMakefile->UpdateAutomaticDependencies(pTarget);
+ }
+ else if (pTarget->GetAutoDepsMakefile())
+ pTarget->GetAutoDepsMakefile()->UpdateNoRuleAutomaticDependencies(pTarget);
+
+ BuildDependencies(pRule,pTarget,TargetDate,YoungestDate,MakeTarget);
+
+ if (pRule)
+ {
+ #ifdef _DEBUG
+ if (g_pPrintDependencyCheck)
+ {
+ for (int i=0; i<Indent; i++)
+ cout<<" ";
+ cout<<"Building "<<pTarget->GetQuotedFullFileName()<<endl;
+ }
+ #endif
+ if (!MakeTarget)
+ {
+ if (!TargetDate.DoesExist() || ( (g_RebuildAll || pMakefile->m_RebuildAll) && TargetDate.IsOlder(m_sBuildTime)))
+ {
+ #ifdef _DEBUG
+ if (g_pPrintDependencyCheck)
+ {
+ if (!TargetDate.DoesExist())
+ {
+ if (!m_ImplicitSearch && !pTarget->IsPhony())
+ cout<<"Building "<<pTarget->GetQuotedFullFileName()<<" because it does not exist yet\n";
+ }
+ else if (TargetDate.IsOlder(m_sBuildTime))
+ {
+ cout<<"Building "<<pTarget->GetQuotedFullFileName()<<" because need to rebuild all (-a)\n";
+ }
+ }
+ #endif
+ MakeTarget=true;
+ }
+ }
+
+ // Now execute the commands
+ vector<string> &Commands=pRule->GetCommands();
+
+ if (!MakeTarget)
+ {
+ vector<string>::iterator CommandIt=Commands.begin();
+
+ md5_context ctx;
+ md5_starts( &ctx );
+ while (CommandIt!=Commands.end())
+ {
+ pMakefile->SetRuleThatIsBuild(pTarget); // Make sure that the command expension is correct
+ string Command=pMakefile->ExpandExpression(*CommandIt);
+ pMakefile->ClearRuleThatIsBuild(); /* Make sure that further expansion is not taking this rule into account.*/
+ md5_update( &ctx, (uint8 *)Command.c_str(), (unsigned long)Command.size());
+ CommandIt++;
+ }
+
+ uint32 Md5_32=md5_finish32( &ctx);
+ if (!pTarget->CompareMd5_32(Md5_32))
+ {
+ if (TargetDate.IsNewerOrSame(m_sBuildTime) || TargetDate.IsDir())
+ {
+ // Only rebuild if it is not yet rebuild in this current run. This may happen for implicit rules that have multiple targets (implicit rules that build more then one target at the same time
+ pTarget->SetCommandsMd5_32(Md5_32);
+ pMakefile->AddTarget(pTarget);
+ pMakefile->SetAutoDepsDirty(); /* We need to update the autodeps file if the md5 has been changed */
+ }
+ else
+ {
+ #ifdef _DEBUG
+ if (!g_GenProjectTree)
+ cout << "Md5 is different for " << pTarget->GetQuotedFullFileName() << " Old:"<<hex<<pTarget->GetCommandsMd5_32()<<", New: "<<Md5_32<<". Commandline must have been changed so recompiling\n";
+ #endif
+
+ #ifdef _DEBUG
+ Indent--;
+ if (g_CheckCircularDeps)
+ {
+ m_TargetStack.pop_back();
+ }
+ #endif
+
+ MakeTarget=true;
+ }
+ }
+ }
+ if (MakeTarget)
+ {
+ // Queue for execution
+ if (sm_CommandQueue.QueueTarget(pTarget))
+ return mh_time_t();
+ mh_time_t NewDate=pTarget->GetDate();
+ if (NewDate.IsNewer(YoungestDate))
+ YoungestDate=NewDate;
+ }
+ }
+
+ #ifdef _DEBUG
+ if (g_pPrintDependencyCheck)
+ {
+ for (int i=0; i<Indent; i++)
+ cout<<" ";
+ cout<<"Building "<<pTarget->GetQuotedFullFileName()<<" finished : "<< YoungestDate << endl;
+ }
+ Indent--;
+ if (g_CheckCircularDeps)
+ {
+ m_TargetStack.pop_back();
+ }
+
+ if (!m_ImplicitSearch && !pTarget->Exists() && !pTarget->IsPhony() && !g_DoNotExecute && !g_GenProjectTree)
+ {
+ // This is only a warning for phony messages
+ cout<<"Warning: don't know how to make "<<pTarget->GetQuotedFullFileName()<<"\nMake the rule a phony rule to avoid this warning (but only do it when it is really phony).\n";;
+ }
+ #endif
+ pTarget->SetDate(YoungestDate); /* This is especially needed for phony targets in between real targets */
+ return YoungestDate;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+mh_time_t mhmakefileparser::WaitBuildTarget(fileinfo* pTarget)
+{
+ return sm_CommandQueue.WaitForTarget(pTarget);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+void mhmakefileparser::BuildIncludedMakefiles()
+{
+ vector<fileinfo*>::iterator MakefileIt=m_IncludedMakefiles.begin();
+ while (MakefileIt!=m_IncludedMakefiles.end())
+ {
+ #ifdef _DEBUG
+ if (g_PrintAdditionalInfo)
+ cout<<"Building include file "<<(*MakefileIt)->GetQuotedFullFileName()<<endl;
+ #endif
+ BuildTarget(*MakefileIt);
+ MakefileIt++;
+ }
+}
diff --git a/tools/mhmake/src/commandqueue.cpp b/tools/mhmake/src/commandqueue.cpp
new file mode 100644
index 000000000..c8f823b39
--- /dev/null
+++ b/tools/mhmake/src/commandqueue.cpp
@@ -0,0 +1,410 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+#include "stdafx.h"
+
+#include "commandqueue.h"
+#include "mhmakefileparser.h"
+
+#ifndef WIN32
+
+#define INFINITE 0
+#define FALSE 0
+
+static int Status;
+unsigned WaitForMultipleObjects(int Nbr, mh_pid_t *phProcesses, int, int)
+{
+ mh_pid_t ID=waitpid(0,&Status,0);
+ for (int i=0; i<Nbr; i++)
+ {
+ if (ID==phProcesses[i])
+ return i;
+ }
+ return -1;
+}
+
+typedef unsigned DWORD;
+
+int GetExitCodeProcess(mh_pid_t hProcess, DWORD *pExitCode)
+{
+ *pExitCode=Status;
+ return true;
+}
+
+#define CloseHandle(Handle)
+
+#endif
+
+
+commandqueue::commandqueue() :
+ m_NrActiveEntries(0)
+{
+#ifdef WIN32
+ SYSTEM_INFO SysInfo;
+ GetSystemInfo(&SysInfo);
+ m_MaxNrCommandsInParallel=SysInfo.dwNumberOfProcessors;
+
+ m_DummyWaitHandle=(mh_pid_t)CreateEvent(NULL,TRUE,FALSE,NULL);
+#else
+ FILE *pFile=fopen("/proc/cpuinfo","r");
+ const char szProc[]="processor";
+ int cur=0;
+ int NrProcs=0;
+ while (!feof(pFile))
+ {
+ char In=fgetc(pFile);
+ if (In=='\n')
+ {
+ cur=0;
+ }
+ else
+ {
+ if (cur<=sizeof(szProc) && In==szProc[cur])
+ {
+ if (!szProc[cur+1])
+ {
+ NrProcs++;
+ }
+ }
+ cur++;
+ }
+ }
+
+ m_MaxNrCommandsInParallel=NrProcs;
+ m_DummyWaitHandle=(mh_pid_t)-1;
+
+#endif
+
+ m_pActiveProcesses=new mh_pid_t[m_MaxNrCommandsInParallel];
+ m_pActiveEntries= new refptr<activeentry>[m_MaxNrCommandsInParallel];
+}
+
+commandqueue::~commandqueue()
+{
+ delete [] m_pActiveProcesses;
+ delete [] m_pActiveEntries;
+ #ifdef WIN32
+ CloseHandle(m_DummyWaitHandle);
+ #endif
+}
+
+void commandqueue::SetNrParallelBuilds(unsigned NrParallelBuilds)
+{
+ if (m_NrActiveEntries)
+ throw("Changing of number of parallel builds is only allowed when no commands are executing");
+ NrParallelBuilds=max(1u,NrParallelBuilds);
+ m_MaxNrCommandsInParallel=NrParallelBuilds;
+ delete [] m_pActiveProcesses;
+ delete [] m_pActiveEntries;
+ m_pActiveProcesses=new mh_pid_t[NrParallelBuilds];
+ m_pActiveEntries= new refptr<activeentry>[NrParallelBuilds];
+}
+
+void commandqueue::ThrowCommandExecutionError(refptr<activeentry> pActiveEntry)
+{
+ fileinfo* pTarget=pActiveEntry->pTarget;
+ const string &Command=pActiveEntry->Command;
+ mhmakefileparser *pMakefile=pTarget->GetRule()->GetMakefile();
+
+ string ErrorMessage = string("Error running command: ")+ Command +"\n";
+ ErrorMessage += "Command defined in makefile: " + pMakefile->GetMakeDir()->GetQuotedFullFileName();
+ pTarget->SetCommandsMd5_32(0); /* Clear the md5 to make sure that the target is rebuild the next time mhmake is ran */
+ pMakefile->SetAutoDepsDirty(); /* We need to update the autodeps file if the md5 has been changed */
+ throw ErrorMessage;
+}
+
+refptr<commandqueue::activeentry> commandqueue::CreateActiveEntry(void)
+{
+ refptr<activeentry> pRet=new activeentry;
+ m_pActiveEntries[m_NrActiveEntries]=pRet;
+ m_pActiveProcesses[m_NrActiveEntries]=this->m_DummyWaitHandle;
+ m_NrActiveEntries++;
+ return pRet;
+}
+
+unsigned commandqueue::GetActiveEntryId(const refptr<activeentry> pActiveEntry) const
+{
+ unsigned i=0;
+ for (i=0; i<m_NrActiveEntries; i++)
+ if (m_pActiveEntries[i]==pActiveEntry)
+ return i;
+ throw("ActiveEntry not found for "+ pActiveEntry->pTarget->GetFullFileName());
+}
+
+void commandqueue::RemoveActiveEntry(unsigned Entry)
+{
+//cout << "Remove entry "<<Entry<<" of "<<m_NrActiveEntries<<" from queue:"<<m_pActiveEntries[Entry].pTarget->GetQuotedFullFileName()<<<<" ("<<m_pActiveEntries[Entry]<<")\n";
+ unsigned NrToMove=m_NrActiveEntries-Entry-1;
+ if (NrToMove)
+ {
+ for (unsigned i=0; i<NrToMove; i++)
+ {
+ unsigned EntryP1=Entry+1;
+ m_pActiveEntries[Entry]=m_pActiveEntries[EntryP1];
+ m_pActiveProcesses[Entry]=m_pActiveProcesses[EntryP1];
+ Entry=EntryP1;
+ }
+ }
+ m_pActiveEntries[Entry]=NULL;
+ m_pActiveProcesses[Entry]=0;
+ m_NrActiveEntries--;
+}
+
+/* Start to execute next command, return true when command is completely executed
+ upon return */
+bool commandqueue::StartExecuteNextCommand(refptr<activeentry> pActiveEntry, mh_pid_t *pActiveProcess)
+{
+ fileinfo* pTarget=pActiveEntry->pTarget;
+ mhmakefileparser *pMakefile=pTarget->GetRule()->GetMakefile();
+
+ pMakefile->SetRuleThatIsBuild(pTarget); // Make sure that the command expension is correct
+ string Command=pMakefile->ExpandExpression(*pActiveEntry->CurrentCommandIt);
+ pMakefile->ClearRuleThatIsBuild(); /* Make sure that further expansion is not taking this rule into account.*/
+ md5_update( &pActiveEntry->md5ctx, (uint8 *)Command.c_str(), (unsigned long)Command.size());
+
+ pActiveEntry->Command=Command;
+
+ #ifdef _DEBUG
+ if (g_pPrintDependencyCheck)
+ {
+ cout<<"-> "<<Command<<endl;
+ }
+ if (!g_GenProjectTree)
+ {
+ #endif
+ mh_pid_t hProcess=pMakefile->ExecuteCommand(Command,pActiveEntry->IgnoreError);
+ if (hProcess==(mh_pid_t)-1)
+ {
+ ThrowCommandExecutionError(pActiveEntry);
+ }
+ else if (!hProcess)
+ {
+ // Command already finished, so execute next command
+ return true;
+ }
+ else
+ {
+ // Command still executing, so add it to the list of handles to wait for
+ *pActiveProcess=hProcess;
+ return false;
+ }
+ #ifdef _DEBUG
+ }
+ #endif
+ return true;
+}
+
+void commandqueue::TargetBuildFinished(refptr<activeentry> pActiveEntry)
+{
+ fileinfo* pTarget=pActiveEntry->pTarget;
+
+ // Building of this target finished
+ uint32 Md5_32=md5_finish32( &pActiveEntry->md5ctx);
+ #ifdef _DEBUG
+ if (g_DoNotExecute||g_GenProjectTree)
+ pTarget->SetDateToNow();
+ else
+ #endif
+ pTarget->InvalidateDate();
+
+ pTarget->SetCommandsMd5_32(Md5_32); /* If the rule of the target was added with an implicit rule the targets in the rule is empty */
+
+ refptr<rule> pRule=pTarget->GetRule();
+ mhmakefileparser *pMakefile=pRule->GetMakefile();
+
+ pMakefile->AddTarget(pTarget);
+ pMakefile->SetAutoDepsDirty();
+ pRule->SetTargetsIsBuild(Md5_32);
+
+ #ifdef _DEBUG
+ if (g_pPrintDependencyCheck)
+ {
+ cout<<"Building "<<pTarget->GetQuotedFullFileName()<<" finished : "<< pTarget->GetDate() << endl;
+ }
+
+ if (!pMakefile->ImplicitSearch() && !pTarget->Exists() && !pTarget->IsPhony() && !g_DoNotExecute && !g_GenProjectTree)
+ {
+ // This is only a warning for phony messages
+ cout<<"Warning: don't know how to make "<<pTarget->GetQuotedFullFileName()<<"\nMake the rule a phony rule to avoid this warning (but only do it when it is really phony).\n";;
+ }
+ #endif
+
+ pTarget->ClearBuilding();
+}
+
+/* Start executing the commands of a target
+*/
+bool commandqueue::StartExecuteCommands(fileinfo* pTarget)
+{
+ cout << "Building " << pTarget->GetQuotedFullFileName()<<endl;
+ // We do not have to put it in the queue, we can start executing directly
+ refptr<rule> pRule=pTarget->GetRule();
+ mhmakefileparser *pMakefile=pRule->GetMakefile();
+ vector<string>::iterator CommandIt=pRule->GetCommands().begin();
+
+ refptr<activeentry> pActiveEntry=CreateActiveEntry();
+ mh_pid_t ActiveProcess;
+
+ md5_starts( &pActiveEntry->md5ctx );
+
+ pActiveEntry->pTarget=pTarget;
+ pActiveEntry->CurrentCommandIt=CommandIt;
+
+ while (pActiveEntry->CurrentCommandIt!=pRule->GetCommands().end())
+ {
+ if (StartExecuteNextCommand(pActiveEntry, &ActiveProcess))
+ {
+ pActiveEntry->CurrentCommandIt++;
+ }
+ else
+ {
+ m_pActiveProcesses[GetActiveEntryId(pActiveEntry)]=ActiveProcess; // We use GetActiveEntryId to avoid reentrancy problems
+ return false;
+ }
+ }
+ TargetBuildFinished(pActiveEntry);
+ RemoveActiveEntry(pActiveEntry);
+ return true;
+}
+
+
+/* put the target in the execution queue or start executing immediately
+*/
+bool commandqueue::QueueTarget(fileinfo* pTarget)
+{
+ pTarget->SetBuilding();
+ // First check if there is place in the active entries
+ if (m_NrActiveEntries==m_MaxNrCommandsInParallel)
+ {
+ // commands cannot be started yet
+ m_Queue.push(pTarget);
+ return true;
+ }
+ else
+ {
+ return !StartExecuteCommands(pTarget);
+ }
+}
+
+/* Wait for all the commands being executed of a target. In the mean time also continue
+ executing all other commands in the queue
+*/
+mh_time_t commandqueue::WaitForTarget(fileinfo *pTarget)
+{
+ if (!pTarget->IsBuilding())
+ return pTarget->GetDate();
+
+ while (1)
+ {
+ // First wait until one of the processes that are running is finished
+ if (m_NrActiveEntries==1 && m_pActiveProcesses[0]==this->m_DummyWaitHandle)
+ {
+ #ifdef _DEBUG
+ if (pTarget!=m_pActiveEntries[0]->pTarget)
+ throw("Wrong assumption: waiting for target " + pTarget->GetFullFileName() + " but in wait list is " + m_pActiveEntries[0]->pTarget->GetFullFileName());
+ #endif
+ pTarget->SetDateToNow();
+ return pTarget->GetDate(); // This is a reentrancy problem, assume that the target is just build
+ }
+ unsigned Ret=WaitForMultipleObjects(m_NrActiveEntries,m_pActiveProcesses,FALSE,INFINITE);
+ if (Ret>=m_NrActiveEntries)
+ #ifdef WIN32
+ throw("fatal error: unexpected return value of WaitForMultipleObjects " + stringify(Ret) + " " + stringify(GetLastError()));
+ #else
+ throw("fatal error: unexpected return value of WaitForMultipleObjects " + stringify(Ret));
+ #endif
+ refptr<activeentry> pActiveEntry=m_pActiveEntries[Ret];
+ fileinfo* pCurrentTarget=pActiveEntry->pTarget;
+ refptr<rule> pRule=pCurrentTarget->GetRule();
+
+ // First check the error code of the command
+ DWORD ExitCode=0;
+ mh_pid_t hProcess=m_pActiveProcesses[Ret];
+ if (!GetExitCodeProcess(hProcess,&ExitCode) || ExitCode)
+ {
+ if (pActiveEntry->IgnoreError)
+ {
+ cerr << "Error running command: "<<pActiveEntry->Command<<", but ignoring error\n";
+ }
+ else
+ ThrowCommandExecutionError(pActiveEntry);
+ }
+ CloseHandle(hProcess);
+
+ // Now check if we have to execute more commands for this target
+ pActiveEntry->CurrentCommandIt++;
+ while (pActiveEntry->CurrentCommandIt!=pRule->GetCommands().end())
+ {
+ if (!StartExecuteNextCommand(pActiveEntry, &m_pActiveProcesses[Ret]))
+ break; // We have to wait for end of command execution
+ pActiveEntry->CurrentCommandIt++;
+ }
+
+ if (pActiveEntry->CurrentCommandIt==pRule->GetCommands().end())
+ {
+ TargetBuildFinished(pActiveEntry);
+ // Target building finished, so remove it from the list of active entries
+ RemoveActiveEntry(Ret);
+
+ bool Return=false;
+ if (pTarget==pCurrentTarget)
+ {
+ Return = true;
+ }
+ // Check if we have other entries in the queue to start
+ while (1)
+ {
+ if (m_Queue.empty())
+ {
+ // There should still be active entries, otherwise this is a serious bug
+ if (!m_NrActiveEntries && !Return)
+ {
+ // This may happen when having multiple target rules and pTarget was build when on of the other targets
+ // was build. so first check if the pTarget was not build in the mean time. If so, this is not an error
+ if (pTarget->IsBuild())
+ {
+ Return=true;
+ break;
+ }
+ else
+ throw("Fatal error: WaitForTarget "+pTarget->GetQuotedFullFileName()+": no active targets anymore.");
+ }
+ else
+ break;
+ }
+ else
+ {
+ fileinfo* pNewTarget=m_Queue.front();
+ m_Queue.pop();
+ if (StartExecuteCommands(pNewTarget))
+ {
+ if (pNewTarget==pTarget)
+ Return=true;
+ }
+ else
+ break;
+ }
+ }
+ if (Return)
+ return pTarget->GetDate();
+ }
+ }
+
+}
diff --git a/tools/mhmake/src/commandqueue.h b/tools/mhmake/src/commandqueue.h
new file mode 100644
index 000000000..815dba643
--- /dev/null
+++ b/tools/mhmake/src/commandqueue.h
@@ -0,0 +1,73 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+#ifndef __COMMANDQUEUE_H__
+#define __COMMANDQUEUE_H__
+
+#include "fileinfo.h"
+
+#ifdef WIN32
+typedef HANDLE mh_pid_t;
+#else
+typedef pid_t mh_pid_t;
+#endif
+
+class commandqueue
+{
+ struct activeentry : public refbase
+ {
+ fileinfo* pTarget;
+ vector<string>::const_iterator CurrentCommandIt;
+ string Command;
+ md5_context md5ctx;
+ bool IgnoreError;
+ };
+private:
+ queue<fileinfo*> m_Queue;
+ unsigned m_MaxNrCommandsInParallel;
+ mh_pid_t *m_pActiveProcesses;
+ refptr<activeentry> *m_pActiveEntries;
+ unsigned m_NrActiveEntries;
+ mh_pid_t m_DummyWaitHandle;
+
+private:
+ void ThrowCommandExecutionError(refptr<activeentry> pActiveEntry);
+ refptr<activeentry> CreateActiveEntry(void);
+ unsigned GetActiveEntryId(const refptr<activeentry> pActiveEntry) const;
+ void RemoveActiveEntry(unsigned Entry);
+ void RemoveActiveEntry(refptr<activeentry> pActiveEntry)
+ {
+ RemoveActiveEntry(GetActiveEntryId(pActiveEntry));
+ }
+ bool StartExecuteCommands(fileinfo *pTarget);
+ bool StartExecuteNextCommand(refptr<activeentry> pActiveEntry, mh_pid_t *pActiveProcess);
+ void TargetBuildFinished(refptr<activeentry> pActiveEntry);
+
+public:
+ commandqueue();
+ ~commandqueue();
+
+ bool QueueTarget(fileinfo *pTarget); // Returns true if target has been queued, false when commands are executed upon return
+ mh_time_t WaitForTarget(fileinfo *pTarget);
+ void SetNrParallelBuilds(unsigned NrParallelBuilds);
+};
+
+
+#endif
diff --git a/tools/mhmake/src/curdir.cpp b/tools/mhmake/src/curdir.cpp
new file mode 100644
index 000000000..d2b43ab52
--- /dev/null
+++ b/tools/mhmake/src/curdir.cpp
@@ -0,0 +1,41 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+#include "stdafx.h"
+
+#include "fileinfo.h"
+#include "curdir.h"
+#include "util.h"
+#include "mhmakeparser.hpp"
+
+fileinfos g_FileInfos; // declare here since it is important that it is constructed before m_pcurrentdir
+curdir::initcurdir curdir::m_pCurrentDir;
+loadedmakefile::loadedmakefile_statics loadedmakefile::sm_Statics; // Declare this here because this constructor is using g_FileInfos and m_pCurrentDir
+LOADEDMAKEFILES g_LoadedMakefiles; // Declare it here otherwize problems in the destructor (still using items from g_FileInfos)
+
+///////////////////////////////////////////////////////////////////////////////
+curdir::initcurdir::initcurdir()
+{
+ char CurDir[MAX_PATH];
+ if (!getcwd(CurDir,MAX_PATH))
+ throw string("Error getting current directory.");
+ string strCurDir=CurDir;
+ m_pDir=GetAbsFileInfo(NormalizePathName(strCurDir));
+}
diff --git a/tools/mhmake/src/curdir.h b/tools/mhmake/src/curdir.h
new file mode 100644
index 000000000..138f8f45a
--- /dev/null
+++ b/tools/mhmake/src/curdir.h
@@ -0,0 +1,47 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+#ifndef __CURDIR_H
+#define __CURDIR_H
+
+class fileinfo;
+
+class curdir
+{
+public:
+ class initcurdir
+ {
+ friend class curdir;
+ const fileinfo *m_pDir;
+ public:
+ initcurdir();
+ };
+private:
+ static initcurdir m_pCurrentDir;
+
+public:
+ static const fileinfo* GetCurDir()
+ {
+ return m_pCurrentDir.m_pDir;
+ }
+};
+
+#endif
+
diff --git a/tools/mhmake/src/fileinfo.cpp b/tools/mhmake/src/fileinfo.cpp
new file mode 100644
index 000000000..d9d16c1e3
--- /dev/null
+++ b/tools/mhmake/src/fileinfo.cpp
@@ -0,0 +1,386 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+#include "stdafx.h"
+
+#include "fileinfo.h"
+#include "rule.h"
+#include "util.h"
+#include "mhmakefileparser.h"
+
+#ifndef S_ISDIR
+#define S_ISDIR(val) ((val)&_S_IFDIR)
+#endif
+
+///////////////////////////////////////////////////////////////////////////////
+string QuoteFileName(const string &Filename)
+{
+ string Ret(Filename);
+#if OSPATHSEP=='\\'
+ /* Put quotes around the string if there are spaces in it */
+ if (Ret.find_first_of(' ')!=string::npos && Ret[0]!='"')
+ {
+ Ret=g_QuoteString+Ret+g_QuoteString;
+ }
+#else
+ int Pos=0;
+ /* Escape the spaces with a backslash */
+ while ((Pos=Ret.find_first_of(' ',Pos))!=(int)string::npos)
+ {
+ Ret=Ret.replace(Pos,1,"\\ ");
+ Pos+=2;
+ }
+#endif
+ return Ret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string UnquoteFileName(const string &Filename)
+{
+ size_t Pos=0;
+ string Name(Filename);
+#if OSPATHSEP=='\\'
+ /* Remove all the quotes from the filename */
+ while ((Pos=Name.find_first_of('"',Pos))!=string::npos)
+ {
+ Name=Name.replace(Pos,1,"");
+ }
+#else
+ /* Remove the escaped spaces */
+ while ((Pos=Name.find_first_of("\\",Pos))!=string::npos)
+ {
+ if (Name[Pos+1]==' ')
+ Name=Name.replace(Pos,2," ");
+ Pos+=1;
+ }
+#endif
+ return Name;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+fileinfo* fileinfo::GetDir() const
+{
+ string Dir=m_AbsFileName.substr(0,m_AbsFileName.find_last_of(OSPATHSEP));
+ #ifdef WIN32
+ if (Dir.length()==2 && Dir[1]==':')
+ #else
+ if (Dir.empty())
+ #endif
+ Dir+=OSPATHSEP;
+ return GetAbsFileInfo(Dir);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string fileinfo::GetName() const
+{
+ return m_AbsFileName.substr(m_AbsFileName.find_last_of(OSPATHSEP)+1);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+mh_time_t fileinfo::realGetDate() const
+{
+#ifdef WIN32
+ WIN32_FILE_ATTRIBUTE_DATA Attr;
+ BOOL Ret=GetFileAttributesEx(m_AbsFileName.c_str(), GetFileExInfoStandard, &Attr);
+ if (!Ret)
+ ((fileinfo*)this)->m_Date.SetNotExist();
+ else if (Attr.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
+ ((fileinfo*)this)->m_Date.SetDir();
+ else
+ ((fileinfo*)this)->m_Date=*(mh_basetime_t*)&Attr.ftLastWriteTime;
+#else
+ struct stat Buf;
+ if (-1==stat(m_AbsFileName.c_str(),&Buf))
+ ((fileinfo*)this)->m_Date.SetNotExist();
+ else if (S_ISDIR(Buf.st_mode))
+ ((fileinfo*)this)->m_Date.SetDir();
+ else
+ ((fileinfo*)this)->m_Date=Buf.st_mtime;
+#endif
+ return m_Date;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+bool fileinfo::IsDir() const
+{
+#ifdef WIN32
+ WIN32_FIND_DATA FindData;
+ HANDLE hFind=FindFirstFile(m_AbsFileName.c_str(),&FindData);
+ if (hFind==INVALID_HANDLE_VALUE)
+ {
+ return false;
+ }
+ else
+ {
+ FindClose(hFind);
+ if (FindData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+#else
+ struct stat Buf;
+ if (-1==stat(m_AbsFileName.c_str(),&Buf))
+ return false; // File does not exist, so consider this as not a directory
+ else
+ return 0!=S_ISDIR (Buf.st_mode);
+ return true;
+#endif
+}
+
+///////////////////////////////////////////////////////////////////////////////
+void fileinfo::SetDateToNow()
+{
+#ifdef WIN32
+ FILETIME ft;
+ GetSystemTimeAsFileTime(&ft);
+ m_Date=*(mh_basetime_t*)&ft;
+#else
+ m_Date=time(NULL);
+#endif
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string fileinfo::GetPrerequisits() const
+{
+ // Build a string with all prerequisits, but make sure that every dependency
+ // is only in there once (we do this be building a set in parallel
+ vector<fileinfo*>::const_iterator DepIt=m_Deps.begin();
+ deps_t Deps;
+ bool first=true;
+ string Ret=g_EmptyString;
+ while (DepIt!=m_Deps.end())
+ {
+ deps_t::iterator pFound=Deps.find(*DepIt);
+ if (pFound==Deps.end())
+ {
+ if (first)
+ {
+ first=false;
+ }
+ else
+ {
+ Ret+=g_SpaceString;
+ }
+ Ret+=(*DepIt)->GetQuotedFullFileName();
+ }
+ Deps.insert(*DepIt);
+ DepIt++;
+ }
+ return Ret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+void fileinfo::AddDeps(vector<fileinfo*> &Deps)
+{
+ vector<fileinfo*>::iterator It=Deps.begin();
+ vector<fileinfo*>::iterator ItEnd=Deps.end();
+ while (It!=ItEnd)
+ {
+ AddDep(*It++);
+ }
+}
+
+///////////////////////////////////////////////////////////////////////////////
+bool fileinfo::IsAutoDepExtention(void) const
+{
+ const char *pName=GetFullFileName().c_str();
+ const char *pExt=strrchr(pName,'.');
+ if (!pExt)
+ return false;
+ pExt++;
+ if (m_pRule)
+ {
+ string ObjExt=m_pRule->GetMakefile()->ExpandVar(OBJEXTVAR);
+ return ((0==strcmp(pExt,ObjExt.c_str()+1)) || (0==strcmp(pExt,"h")));
+ }
+ else
+ return ((0==strcmp(pExt,"obj")) || (0==strcmp(pExt,"doj")) || (0==strcmp(pExt,"o")) || (0==strcmp(pExt,"h")));
+}
+
+#ifdef _DEBUG
+///////////////////////////////////////////////////////////////////////////////
+string fileinfo::GetErrorMessageDuplicateRule(const refptr<rule>&pRule)
+{
+ string Ret;
+ Ret = GetQuotedFullFileName() + ": rule is defined multiple times\n";
+ Ret += "First (" + m_pRule->GetMakefile()->GetMakeDir()->GetQuotedFullFileName() + ") :\n";
+
+ vector<string>::const_iterator It=m_pRule->GetCommands().begin();
+ while (It!=m_pRule->GetCommands().end())
+ {
+ Ret+= " " + m_pRule->GetMakefile()->ExpandExpression(*It) + "\n";
+ It++;
+ }
+ Ret += "Second (" + pRule->GetMakefile()->GetMakeDir()->GetQuotedFullFileName() + ") :\n";
+ It=pRule->GetCommands().begin();
+ while (It!=pRule->GetCommands().end())
+ {
+ Ret += " " + pRule->GetMakefile()->ExpandExpression(*It) +"\n";
+ It++;
+ }
+ return Ret;
+}
+#endif
+
+///////////////////////////////////////////////////////////////////////////////
+string &NormalizePathName(string &Name)
+{
+ const char *pPtr=Name.c_str();
+ const char *pBeg=pPtr;
+ const char *pLastSlash=NULL;
+ char *pWr=(char*)pBeg;
+ char Char=*pPtr++;
+
+ while (Char)
+ {
+ if (Char=='\\' || Char=='/')
+ {
+ char Char2=pPtr[0];
+ if (Char2=='.')
+ {
+ if (pPtr[1]=='.')
+ {
+ pPtr+=2;
+ while ((pPtr[0]=='\\' || pPtr[0]=='/') && pPtr[1]=='.' && pPtr[2]=='.')
+ {
+ pLastSlash--;
+ while (pLastSlash>pBeg && *pLastSlash!='\\' && *pLastSlash!='/') pLastSlash--; // Be dure to not go further then the beginning of the file name
+ pPtr+=3;
+ }
+ if (pLastSlash)
+ {
+ if (pLastSlash<pBeg)
+ pWr=(char*)pBeg;
+ else
+ pWr=(char*)pLastSlash;
+ }
+ }
+ else
+ {
+ if (pPtr[1]=='\\' || pPtr[1]=='/')
+ {
+ pPtr++;
+ }
+ else
+ {
+ pLastSlash=pWr;
+ *pWr++ = OSPATHSEP;
+ }
+ }
+ }
+ else if (Char2=='\\' || Char2=='/')
+ {
+ }
+ else
+ {
+ pLastSlash=pWr;
+ *pWr++ = OSPATHSEP;
+ }
+ }
+ else
+ {
+ *pWr++ = Char;
+ }
+ Char=*pPtr++;
+ }
+ *pWr=0;
+ Name.resize(pWr-pBeg);
+
+ return Name;
+}
+
+
+///////////////////////////////////////////////////////////////////////////////
+fileinfo* GetFileInfo(const string &NameIn,const fileinfo* pRelDir)
+{
+ string Name=UnquoteFileName(NameIn);
+ bool DoesExist=true;
+
+ //Only concatenate if szName is not already a full name
+#ifdef WIN32
+ if (!Name.empty() && (Name.length()==1 || Name[1]!=':'))
+#endif
+ {
+ if (Name[0]!=OSPATHSEP)
+ {
+ Name=pRelDir->GetFullFileName()+OSPATHSEPSTR+Name;
+ if (!pRelDir->Exists()) /* if the directory does not exist, the file will not exist either */
+ DoesExist=false;
+ }
+ #ifdef WIN32
+ else
+ {
+ /* The filename is absolute but does not contain a driver letter. So add it (only on windows) */
+ Name=pRelDir->GetFullFileName().substr(0,2)+Name;
+ }
+ #endif
+ }
+ fileinfo* pRet=GetAbsFileInfo(NormalizePathName(Name));
+ if (!DoesExist)
+ pRet->SetNotExist();
+ return pRet;
+}
+
+#ifdef _DEBUG
+///////////////////////////////////////////////////////////////////////////////
+void PrintFileInfos()
+{
+ fileinfos::iterator pIt=g_FileInfos.begin();
+ while (pIt!=g_FileInfos.end())
+ {
+ cout<<(*pIt)->GetQuotedFullFileName()<<" :";
+ if ((*pIt)->IsPhony())
+ cout<<" (phony)";
+ vector<fileinfo*> &Deps=(*pIt)->GetDeps();
+ vector<fileinfo*>::iterator pDepIt=Deps.begin();
+ while (pDepIt!=Deps.end())
+ {
+ cout<<g_SpaceString<<(*pDepIt)->GetQuotedFullFileName();
+ pDepIt++;
+ }
+ cout<<endl;
+ // Write the commands
+ refptr<rule> pRule=(*pIt)->GetRule();
+ if (pRule)
+ {
+ cout<<g_SpaceString<<"Run in: "<<pRule->GetMakefile()->GetMakeDir()->GetQuotedFullFileName()<<endl;
+ pRule->PrintCommands();
+ }
+ pIt++;
+ }
+
+}
+#endif
+
+///////////////////////////////////////////////////////////////////////////////
+fileinfos::~fileinfos()
+{
+ fileinfos::iterator It=begin();
+ while (It!=end())
+ {
+ delete (*It);
+ It++;
+ }
+}
diff --git a/tools/mhmake/src/fileinfo.h b/tools/mhmake/src/fileinfo.h
new file mode 100644
index 000000000..f504a3cf3
--- /dev/null
+++ b/tools/mhmake/src/fileinfo.h
@@ -0,0 +1,448 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+#ifndef __FILEINFO_H
+#define __FILEINFO_H
+
+#include "curdir.h"
+#include "rule.h"
+#include "md5.h"
+
+#ifdef WIN32
+#define OSPATHSEP '\\'
+#define OSPATHSEPSTR "\\"
+#define OSPATHENVSEP ';'
+#define OSPATHENVSEPSTR ";"
+#else
+#define OSPATHSEP '/'
+#define OSPATHSEPSTR "/"
+#define OSPATHENVSEP ':'
+#define OSPATHENVSEPSTR ":"
+#endif
+
+extern bool g_DumpOnError;
+extern bool g_PrintVarsAndRules;
+extern bool g_DoNotExecute;
+extern bool g_GenProjectTree;
+extern bool g_Quiet;
+extern bool g_RebuildAll;
+extern bool g_PrintAdditionalInfo;
+extern bool g_pPrintDependencyCheck;
+extern bool g_CheckCircularDeps;
+extern bool g_ForceAutoDepRescan;
+extern bool g_PrintLexYacc;
+extern bool g_Clean;
+extern bool g_StopCompiling;
+extern bool g_PrintMultipleDefinedRules;
+
+extern const string g_EmptyString;
+extern const string g_SpaceString;
+extern const string g_QuoteString;
+
+string QuoteFileName(const string &Filename);
+string UnquoteFileName(const string &Filename);
+
+template<typename T>
+inline string stringify(const T& x)
+{
+ ostringstream o;
+ o << x;
+ return o.str();
+}
+
+#ifdef WIN32
+typedef unsigned _int64 mh_basetime_t;
+#else
+typedef unsigned long mh_basetime_t;
+#endif
+
+#define TIMESAFETY 3
+class mh_time
+{
+ enum
+ {
+ DATENOTVALID=0,
+ NOTEXISTTIME=1,
+ DIRTIME =2+TIMESAFETY
+ };
+ mh_basetime_t m_Time;
+
+ bool operator < (const mh_time &Src);
+public:
+ mh_time(){m_Time=DATENOTVALID;}
+ mh_time(time_t Time) : m_Time((mh_basetime_t)Time) {}
+ mh_time(mh_basetime_t Time) : m_Time(Time) {}
+ mh_time(const mh_time &Time) : m_Time(Time.m_Time) {}
+
+ void SetDir(void)
+ {
+ m_Time=DIRTIME;
+ }
+ bool IsDir(void) const
+ {
+ return m_Time==DIRTIME;
+ }
+ void SetNotExist(void)
+ {
+ m_Time=NOTEXISTTIME;
+ }
+ bool IsExistingFile(void) const
+ {
+ return m_Time>DIRTIME;
+ }
+ bool DoesExist(void) const
+ {
+ return m_Time!=NOTEXISTTIME;
+ }
+ void Invalidate(void)
+ {
+ m_Time=DATENOTVALID;
+ }
+ bool IsDateValid(void) const
+ {
+ return m_Time!=DATENOTVALID;
+ }
+ friend ostream& operator<<(ostream& out,const mh_time &Src);
+
+ mh_time &operator = (const mh_time &Src) { m_Time=Src.m_Time; return *this;}
+
+ bool IsOlder(const mh_time &Src) const { return m_Time<Src.m_Time-TIMESAFETY; }
+
+ bool IsNewer(const mh_time &Src) const { return m_Time>Src.m_Time+TIMESAFETY; }
+ bool IsNewerOrSame(const mh_time &Src) const { return m_Time>=Src.m_Time-TIMESAFETY; }
+};
+typedef mh_time mh_time_t;
+
+inline ostream& operator<<(ostream& out,const mh_time &Src)
+{
+ out << hex << (unsigned long)Src.m_Time;
+ return out;
+}
+
+class fileinfo
+{
+ string m_AbsFileName;
+ bool m_IsPhony;
+ int m_BuildStatus; /* Bit 0 means the target built is started, Bit 1 means the target is still building */
+ refptr<rule> m_pRule;
+ mhmakefileparser *m_pAutoDepsMakefile;
+ vector<fileinfo*> m_Deps;
+ mh_time_t m_Date;
+ uint32 m_CommandsMd5_32; // 32-bit Md5 checksum of commands to build this target
+
+ fileinfo(const fileinfo &Src);
+ fileinfo(void);
+
+ void init(const string &AbsFileName,uint32 Md5_32)
+ {
+ m_IsPhony=false;
+ m_pAutoDepsMakefile=NULL;
+ m_BuildStatus=0;
+ m_AbsFileName=UnquoteFileName(AbsFileName);
+ InvalidateDate();
+ m_CommandsMd5_32=Md5_32;
+ #ifdef _DEBUG
+ if (g_PrintAdditionalInfo)
+ cout << "Initialising Md5 of "<<GetQuotedFullFileName().c_str()<<" to 0x"<<hex<<Md5_32<<endl;
+ #endif
+ }
+ fileinfo &operator = (const fileinfo &Src); // Do not allow copying
+public:
+ fileinfo(const string &AbsFileName,uint32 Md5_32)
+ {
+ init(AbsFileName,Md5_32);
+ }
+ fileinfo(const string &AbsFileName)
+ {
+ init(AbsFileName,0);
+ }
+ /* The following constructor is only used for name comparisons, and should only be used for that */
+ fileinfo(int Dummy,const string &AbsFileName)
+ {
+ m_AbsFileName=UnquoteFileName(AbsFileName);
+ }
+
+ fileinfo(const char *szFile)
+ {
+ init(szFile,0);
+ }
+ fileinfo(const char *szFile,uint32 Md5_32)
+ {
+ init(szFile,Md5_32);
+ }
+ const string &GetFullFileName(void) const
+ {
+ return m_AbsFileName;
+ }
+ string GetQuotedFullFileName(void) const
+ {
+ return QuoteFileName(m_AbsFileName);
+ }
+#ifdef WIN32
+#define MINPATHLENGTH 3 // The smallest dir name in windows is 3, e.g. "c:\"
+#else
+#define MINPATHLENGTH 1 // The smallest dir name in linux is 1, e.g. "/"
+#endif
+ void SetFullFileName(const string &strAbsName)
+ {
+ m_AbsFileName=UnquoteFileName(strAbsName);
+ // If the last char is path sep strip it, except for the smallest dir name
+ if (m_AbsFileName.length()>MINPATHLENGTH && m_AbsFileName[m_AbsFileName.length()-1]==OSPATHSEP)
+ m_AbsFileName.resize(m_AbsFileName.length()-1);
+ }
+
+ fileinfo* GetDir(void) const;
+ string GetName() const;
+ bool IsDir() const;
+
+ string GetErrorMessageDuplicateRule(const refptr<rule> &pRule);
+
+ void SetRule(refptr<rule> &pRule)
+ {
+ #if defined(_DEBUG) && defined(_MSC_VER)
+ if (m_pRule && m_pRule->GetCommands().size() && !IsBuilding()) {
+ DebugBreak();
+ }
+ #endif
+ m_pRule=pRule;
+ }
+
+ void SetRuleIfNotExist(refptr<rule> &pRule)
+ {
+ if (pRule)
+ {
+ if (!m_pRule)
+ {
+ SetRule(pRule);
+ pRule->AddTarget(this);
+ }
+ #ifdef _DEBUG
+ else
+ {
+ if (*m_pRule!=*pRule)
+ {
+ throw(GetErrorMessageDuplicateRule(pRule));
+ }
+ else if (g_PrintMultipleDefinedRules)
+ {
+ cerr<<GetErrorMessageDuplicateRule(pRule);
+ }
+ }
+ #endif
+ }
+ }
+
+ refptr<rule> GetRule(void) const
+ {
+ return m_pRule;
+ }
+ void AddDep(fileinfo *pDep)
+ {
+ if (&*pDep==this)
+ {
+ #ifdef _DEBUG
+ cout << GetQuotedFullFileName()<<" is directly dependent on itself\n";
+ #endif
+ return;
+ }
+ m_Deps.push_back(pDep);
+ }
+ void AddDeps(vector<fileinfo*> &Deps);
+
+ void InsertDeps(vector<fileinfo*> &Deps)
+ {
+ #ifdef _DEBUG
+ vector<fileinfo*> NewDeps;
+ vector<fileinfo*>::const_iterator It=Deps.begin();
+ vector<fileinfo*>::const_iterator ItEnd=Deps.end();
+ while (It!=ItEnd)
+ {
+ if (&**It==this)
+ {
+ #ifdef _DEBUG
+ cout << GetQuotedFullFileName()<<" is directly dependent on itself\n";
+ #endif
+ }
+ else
+ NewDeps.push_back(*It);
+ It++;
+ }
+ if (NewDeps.size())
+ m_Deps.insert(m_Deps.begin(),NewDeps.begin(),NewDeps.end());
+ #else
+ m_Deps.insert(m_Deps.begin(),Deps.begin(),Deps.end());
+ #endif
+ }
+ vector<fileinfo*> &GetDeps(void)
+ {
+ return m_Deps;
+ }
+ string GetPrerequisits(void) const;
+ void SetAutoDepsScan(mhmakefileparser *pMakefile)
+ {
+ #ifdef _DEBUG
+ if (m_pAutoDepsMakefile)
+ throw(string(".AUTODEPS can only defined ones for rule ")+GetFullFileName());
+ #endif
+ m_pAutoDepsMakefile=pMakefile;
+ }
+ mhmakefileparser *GetAutoDepsMakefile(void) const
+ {
+ return m_pAutoDepsMakefile;
+ }
+ void SetPhony(void)
+ {
+ m_IsPhony=true;
+ m_Date.SetNotExist(); // This will sure that this target will always be build (even if a corresponding file exists)
+ }
+ bool IsPhony(void) const
+ {
+ return m_IsPhony;
+ }
+ mh_time_t realGetDate(void) const;
+ void SetDateToNow(void);
+
+ void SetDate(mh_time_t Date)
+ {
+ m_Date=Date;
+ }
+
+ bool IsDateValid() const
+ {
+ return m_Date.IsDateValid();
+ }
+ void InvalidateDate(void)
+ {
+ m_Date.Invalidate();
+ }
+
+ mh_time_t GetDate(void) const
+ {
+ if (m_Date.IsDateValid())
+ return m_Date;
+ else
+ return realGetDate();
+ }
+ void SetNotExist(void)
+ { // this is used to make sure that this item is rebuild, even if it really exists
+ m_Date.SetNotExist();
+ }
+ bool Exists(void) const
+ {
+ return GetDate().DoesExist();
+ }
+ bool IsBuildStarted(void) const
+ {
+ return (m_BuildStatus&1)==1;
+ }
+ bool IsBuild(void) const
+ {
+ return m_BuildStatus==1;
+ }
+ void SetBuild(void)
+ {
+ m_BuildStatus=1;
+ }
+ bool IsBuilding(void) const
+ {
+ return (m_BuildStatus&2)==2;
+ }
+ void SetBuilding(bool Others=true)
+ {
+ m_BuildStatus|=2;
+ /* Check if there are targets build by the rule attached to this target, if so set them also to building */
+ if (Others && m_pRule)
+ {
+ m_pRule->SetTargetsIsBuilding(this);
+ }
+ }
+ void ClearBuilding(void)
+ {
+ m_BuildStatus&=~2;
+ }
+ bool IsAutoDepExtention(void) const;
+
+ void SetCommandsMd5_32(uint32 Md5_32)
+ {
+ #ifdef _DEBUG
+ if (g_PrintAdditionalInfo)
+ cout << "Setting Md5 of "<<GetQuotedFullFileName()<<" to 0x"<<hex<<Md5_32<<endl;
+ #endif
+ m_CommandsMd5_32=Md5_32;
+ }
+#ifdef _DEBUG
+ uint32 GetCommandsMd5_32(void) const
+ {
+ return m_CommandsMd5_32;
+ }
+#endif
+ bool CompareMd5_32(uint32 Md5_32) const
+ {
+ return m_CommandsMd5_32==Md5_32;
+ }
+ void WriteMd5_32(FILE *pFile) const
+ {
+ fwrite(&m_CommandsMd5_32,sizeof(m_CommandsMd5_32),1,pFile);
+ }
+};
+
+struct less_fileinfo : public binary_function <const fileinfo*, const fileinfo*, bool>
+{
+ bool operator()(const fileinfo *_Left, const fileinfo *_Right) const
+ {
+ return less<string>().operator ()(_Left->GetFullFileName(),_Right->GetFullFileName());
+ }
+};
+
+fileinfo *GetFileInfo(const string &szName,const fileinfo* pRelDir);
+
+class fileinfos : public set<fileinfo*,less_fileinfo>
+{
+ public:
+ ~fileinfos();
+};
+
+extern fileinfos g_FileInfos;
+
+inline fileinfo *GetAbsFileInfo(const string &strAbsName)
+{
+ static fileinfo SearchFileInfo("");
+ SearchFileInfo.SetFullFileName(strAbsName);
+ /* Using find is just an optimalisation, you could use insert immediately */
+ fileinfos::const_iterator pFind=g_FileInfos.find(&SearchFileInfo);
+ if (pFind==g_FileInfos.end())
+ {
+ pair <fileinfos::iterator, bool> pPair=g_FileInfos.insert(new fileinfo(SearchFileInfo.GetFullFileName()));
+ return *(pPair.first);
+ }
+ else
+ return *pFind;
+}
+
+inline fileinfo *GetFileInfo(const char *szName,const fileinfo* pRelDir)
+{
+ return GetFileInfo(string(szName),pRelDir);
+}
+
+string &NormalizePathName(string &Name);
+void PrintFileInfos();
+
+#endif
+
diff --git a/tools/mhmake/src/flex.skl b/tools/mhmake/src/flex.skl
new file mode 100644
index 000000000..6db7e1c5c
--- /dev/null
+++ b/tools/mhmake/src/flex.skl
@@ -0,0 +1,3425 @@
+%# -*-C-*- vi: set ft=c:
+%# This file is processed in several stages.
+%# Here are the stages, as best as I can describe:
+%#
+%# 1. flex.skl is processed through GNU m4 during the
+%# pre-compilation stage of flex. Only macros starting
+%# with `m4preproc_' are processed, and quoting is normal.
+%#
+%# 2. The preprocessed skeleton is translated verbatim into a
+%# C array, saved as "skel.c" and compiled into the flex binary.
+%#
+%# 3. At runtime, the skeleton is generated and filtered (again)
+%# through m4. Macros beginning with `m4_' will be processed.
+%# The quoting is "[[" and "]]" so we don't interfere with
+%# user code.
+%#
+%# All generate macros for the m4 stage contain the text "m4" or "M4"
+%# in them. This is to distinguish them from CPP macros.
+%# The exception to this rule is YY_G, which is an m4 macro,
+%# but it needs to be remain short because it is used everywhere.
+%#
+/* A lexical scanner generated by flex */
+
+%# Macros for preproc stage.
+
+%# Macros for runtime processing stage.
+m4_changecom
+m4_changequote
+m4_changequote([[, ]])
+
+%#
+%# Lines in this skeleton starting with a "%" character are "control lines"
+%# and affect the generation of the scanner. The possible control codes are
+%# listed and processed in misc.c.
+%#
+%# %# - A comment. The current line is omitted from the generated scanner.
+%# %if-c++-only - The following lines are printed for C++ scanners ONLY.
+%# %if-c-only - The following lines are NOT printed for C++ scanners.
+%# %if-c-or-c++ - The following lines are printed in BOTH C and C++ scanners.
+%# %if-reentrant - Print for reentrant scanners.(push)
+%# %if-not-reentrant - Print for non-reentrant scanners. (push)
+%# %if-bison-bridge - Print for bison-bridge. (push)
+%# %if-not-bison-bridge - Print for non-bison-bridge. (push)
+%# %endif - pop from the previous if code.
+%# %% - A stop-point, where code is inserted by flex.
+%# Each stop-point is numbered here and also in the code generator.
+%# (See gen.c, etc. for details.)
+%# %not-for-header - Begin code that should NOT appear in a ".h" file.
+%# %ok-for-header - %c and %e are used for building a header file.
+%# %if-tables-serialization
+%#
+%# All control-lines EXCEPT comment lines ("%#") will be inserted into
+%# the generated scanner as a C-style comment. This is to aid those who
+%# edit the skeleton.
+%#
+
+%not-for-header
+%if-c-only
+%if-not-reentrant
+m4_ifelse(M4_YY_PREFIX,yy,,
+#define yy_create_buffer M4_YY_PREFIX[[_create_buffer]]
+#define yy_delete_buffer M4_YY_PREFIX[[_delete_buffer]]
+#define yy_flex_debug M4_YY_PREFIX[[_flex_debug]]
+#define yy_init_buffer M4_YY_PREFIX[[_init_buffer]]
+#define yy_flush_buffer M4_YY_PREFIX[[_flush_buffer]]
+#define yy_load_buffer_state M4_YY_PREFIX[[_load_buffer_state]]
+#define yy_switch_to_buffer M4_YY_PREFIX[[_switch_to_buffer]]
+#define yyin M4_YY_PREFIX[[in]]
+#define yyleng M4_YY_PREFIX[[leng]]
+#define yylex M4_YY_PREFIX[[lex]]
+#define yylineno M4_YY_PREFIX[[lineno]]
+#define yyout M4_YY_PREFIX[[out]]
+#define yyrestart M4_YY_PREFIX[[restart]]
+#define yytext M4_YY_PREFIX[[text]]
+#define yywrap M4_YY_PREFIX[[wrap]]
+#define yyalloc M4_YY_PREFIX[[alloc]]
+#define yyrealloc M4_YY_PREFIX[[realloc]]
+#define yyfree M4_YY_PREFIX[[free]]
+)
+%endif
+%endif
+%ok-for-header
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION FLEX_MAJOR_VERSION
+#define YY_FLEX_MINOR_VERSION FLEX_MINOR_VERSION
+#define YY_FLEX_SUBMINOR_VERSION FLEX_SUBMINOR_VERSION
+#if YY_FLEX_SUBMINOR_VERSION > 0
+#define FLEX_BETA
+#endif
+
+%# Some negated symbols
+m4_ifdef( [[M4_YY_IN_HEADER]], , [[m4_define([[M4_YY_NOT_IN_HEADER]], [[]])]])
+m4_ifdef( [[M4_YY_REENTRANT]], , [[m4_define([[M4_YY_NOT_REENTRANT]], [[]])]])
+
+%# This is the m4 way to say "(stack_used || is_reentrant)
+m4_ifdef( [[M4_YY_STACK_USED]], [[m4_define([[M4_YY_HAS_START_STACK_VARS]])]])
+m4_ifdef( [[M4_YY_REENTRANT]], [[m4_define([[M4_YY_HAS_START_STACK_VARS]])]])
+
+%# Prefixes.
+%# The complexity here is necessary so that m4 preserves
+%# the argument lists to each C function.
+
+
+m4_ifdef( [[M4_YY_PREFIX]],, [[m4_define([[M4_YY_PREFIX]], [[yy]])]])
+
+%if-c++-only
+ /* The c++ scanner is a mess. The FlexLexer.h header file relies on the
+ * following macro. This is required in order to pass the c++-multiple-scanners
+ * test in the regression suite. We get reports that it breaks inheritance.
+ * We will address this in a future release of flex, or omit the C++ scanner
+ * altogether.
+ */
+ #define yyFlexLexer M4_YY_PREFIX[[FlexLexer]]
+%endif
+
+%if-c-only
+ M4_GEN_PREFIX(`_create_buffer')
+ M4_GEN_PREFIX(`_delete_buffer')
+ M4_GEN_PREFIX(`_scan_buffer')
+ M4_GEN_PREFIX(`_scan_string')
+ M4_GEN_PREFIX(`_scan_bytes')
+ M4_GEN_PREFIX(`_init_buffer')
+ M4_GEN_PREFIX(`_flush_buffer')
+ M4_GEN_PREFIX(`_load_buffer_state')
+ M4_GEN_PREFIX(`_switch_to_buffer')
+ M4_GEN_PREFIX(`push_buffer_state')
+ M4_GEN_PREFIX(`pop_buffer_state')
+ M4_GEN_PREFIX(`ensure_buffer_stack')
+ M4_GEN_PREFIX(`lex')
+ M4_GEN_PREFIX(`restart')
+ M4_GEN_PREFIX(`lex_init')
+ M4_GEN_PREFIX(`lex_init_extra')
+ M4_GEN_PREFIX(`lex_destroy')
+ M4_GEN_PREFIX(`get_debug')
+ M4_GEN_PREFIX(`set_debug')
+ M4_GEN_PREFIX(`get_extra')
+ M4_GEN_PREFIX(`set_extra')
+ M4_GEN_PREFIX(`get_in')
+ M4_GEN_PREFIX(`set_in')
+ M4_GEN_PREFIX(`get_out')
+ M4_GEN_PREFIX(`set_out')
+ M4_GEN_PREFIX(`get_leng')
+ M4_GEN_PREFIX(`get_text')
+ M4_GEN_PREFIX(`get_lineno')
+ M4_GEN_PREFIX(`set_lineno')
+ m4_ifdef( [[M4_YY_REENTRANT]],
+ [[
+ M4_GEN_PREFIX(`get_column')
+ M4_GEN_PREFIX(`set_column')
+ ]])
+ M4_GEN_PREFIX(`wrap')
+%endif
+
+m4_ifdef( [[M4_YY_BISON_LVAL]],
+[[
+ M4_GEN_PREFIX(`get_lval')
+ M4_GEN_PREFIX(`set_lval')
+]])
+
+m4_ifdef( [[<M4_YY_BISON_LLOC>]],
+[[
+ M4_GEN_PREFIX(`get_lloc')
+ M4_GEN_PREFIX(`set_lloc')
+]])
+
+%if-c-only
+m4_ifdef( [[M4_YY_NOT_REENTRANT]],
+[[
+ M4_GEN_PREFIX(`text')
+ M4_GEN_PREFIX(`leng')
+ M4_GEN_PREFIX(`in')
+ M4_GEN_PREFIX(`out')
+ M4_GEN_PREFIX(`_flex_debug')
+ M4_GEN_PREFIX(`lineno')
+]])
+%endif
+
+
+m4_ifdef( [[M4_YY_TABLES_EXTERNAL]],
+[[
+ M4_GEN_PREFIX(`tables_fload')
+ M4_GEN_PREFIX(`tables_destroy')
+ M4_GEN_PREFIX(`TABLES_NAME')
+]])
+
+/* First, we deal with platform-specific or compiler-specific issues. */
+
+/* begin standard C headers. */
+%if-c-only
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+%endif
+
+%if-tables-serialization
+#include <sys/types.h>
+#include <netinet/in.h>
+%endif
+/* end standard C headers. */
+
+%if-c-or-c++
+#include <flexint.h>
+%endif
+
+%if-c++-only
+/* begin standard C++ headers. */
+#include <iostream>
+#include <errno.h>
+#include <cstdlib>
+#include <cstring>
+/* end standard C++ headers. */
+%endif
+
+#ifdef __cplusplus
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else /* ! __cplusplus */
+
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
+
+#define YY_USE_CONST
+
+#endif /* defined (__STDC__) */
+#endif /* ! __cplusplus */
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+%# For compilers that can not handle prototypes.
+%# e.g.,
+%# The function prototype
+%# int foo(int x, char* y);
+%#
+%# ...should be written as
+%# int foo M4_YY_PARAMS(int x, char* y);
+%#
+%# ...which could possibly generate
+%# int foo ();
+%#
+m4_ifdef( [[M4_YY_NO_ANSI_FUNC_PROTOS]],
+[[
+ m4_define( [[M4_YY_PARAMS]], [[()]])
+]],
+[[
+ m4_define( [[M4_YY_PARAMS]], [[($*)]])
+]])
+
+%not-for-header
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+%ok-for-header
+
+%not-for-header
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index. If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+%ok-for-header
+
+
+
+%if-reentrant
+
+/* An opaque pointer. */
+#ifndef YY_TYPEDEF_YY_SCANNER_T
+#define YY_TYPEDEF_YY_SCANNER_T
+typedef void* yyscan_t;
+#endif
+
+%# Declare yyguts variable
+m4_define( [[M4_YY_DECL_GUTS_VAR]], [[struct yyguts_t * yyg = (struct yyguts_t*)yyscanner]])
+%# For use wherever a Global is accessed or assigned.
+m4_define( [[YY_G]], [[yyg->$1]])
+
+%# For use in function prototypes to append the additional argument.
+m4_define( [[M4_YY_PROTO_LAST_ARG]], [[, yyscan_t yyscanner]])
+m4_define( [[M4_YY_PROTO_ONLY_ARG]], [[yyscan_t yyscanner]])
+
+%# For use in function definitions to append the additional argument.
+m4_ifdef( [[M4_YY_NO_ANSI_FUNC_DEFS]],
+[[
+ m4_define( [[M4_YY_DEF_LAST_ARG]], [[, yyscanner]])
+ m4_define( [[M4_YY_DEF_ONLY_ARG]], [[yyscanner]])
+]],
+[[
+ m4_define( [[M4_YY_DEF_LAST_ARG]], [[, yyscan_t yyscanner]])
+ m4_define( [[M4_YY_DEF_ONLY_ARG]], [[yyscan_t yyscanner]])
+]])
+m4_define( [[M4_YY_DECL_LAST_ARG]], [[yyscan_t yyscanner;]])
+
+%# For use in function calls to pass the additional argument.
+m4_define( [[M4_YY_CALL_LAST_ARG]], [[, yyscanner]])
+m4_define( [[M4_YY_CALL_ONLY_ARG]], [[yyscanner]])
+
+%# For use in function documentation to adjust for additional argument.
+m4_define( [[M4_YY_DOC_PARAM]], [[@param yyscanner The scanner object.]])
+
+/* For convenience, these vars (plus the bison vars far below)
+ are macros in the reentrant scanner. */
+#define yyin YY_G(yyin_r)
+#define yyout YY_G(yyout_r)
+#define yyextra YY_G(yyextra_r)
+#define yyleng YY_G(yyleng_r)
+#define yytext YY_G(yytext_r)
+#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
+#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
+#define yy_flex_debug YY_G(yy_flex_debug_r)
+
+m4_define( [[M4_YY_INCR_LINENO]],
+[[
+ do{ yylineno++;
+ yycolumn=0;
+ }while(0)
+]])
+
+%endif
+
+
+
+%if-not-reentrant
+
+m4_define( [[M4_YY_INCR_LINENO]],
+[[
+ yylineno++;
+]])
+
+%# Define these macros to be no-ops.
+m4_define( [[M4_YY_DECL_GUTS_VAR]], [[m4_dnl]])
+m4_define( [[YY_G]], [[($1)]])
+m4_define( [[M4_YY_PROTO_LAST_ARG]])
+m4_define( [[M4_YY_PROTO_ONLY_ARG]], [[void]])
+m4_define( [[M4_YY_DEF_LAST_ARG]])
+
+m4_ifdef( [[M4_YY_NO_ANSI_FUNC_DEFS]],
+[[
+ m4_define( [[M4_YY_DEF_ONLY_ARG]])
+]],
+[[
+ m4_define( [[M4_YY_DEF_ONLY_ARG]], [[void]])
+]])
+m4_define([[M4_YY_DECL_LAST_ARG]])
+m4_define([[M4_YY_CALL_LAST_ARG]])
+m4_define([[M4_YY_CALL_ONLY_ARG]])
+m4_define( [[M4_YY_DOC_PARAM]], [[]])
+
+%endif
+
+
+m4_ifdef( [[M4_YY_NO_ANSI_FUNC_DEFS]],
+[[
+%# For compilers that need traditional function definitions.
+%# e.g.,
+%# The function prototype taking 2 arguments
+%# int foo (int x, char* y)
+%#
+%# ...should be written as
+%# int foo YYFARGS2(int,x, char*,y)
+%#
+%# ...which could possibly generate
+%# int foo (x,y,yyscanner)
+%# int x;
+%# char * y;
+%# yyscan_t yyscanner;
+%#
+%# Generate traditional function defs
+ m4_define( [[YYFARGS0]], [[(M4_YY_DEF_ONLY_ARG) [[\]]
+ M4_YY_DECL_LAST_ARG]])
+ m4_define( [[YYFARGS1]], [[($2 M4_YY_DEF_LAST_ARG) [[\]]
+ $1 $2; [[\]]
+ M4_YY_DECL_LAST_ARG]])
+ m4_define( [[YYFARGS2]], [[($2,$4 M4_YY_DEF_LAST_ARG) [[\]]
+ $1 $2; [[\]]
+ $3 $4; [[\]]
+ M4_YY_DECL_LAST_ARG]])
+ m4_define( [[YYFARGS3]], [[($2,$4,$6 M4_YY_DEF_LAST_ARG) [[\]]
+ $1 $2; [[\]]
+ $3 $4; [[\]]
+ $5 $6; [[\]]
+ M4_YY_DECL_LAST_ARG]])
+]],
+[[
+%# Generate C99 function defs.
+ m4_define( [[YYFARGS0]], [[(M4_YY_DEF_ONLY_ARG)]])
+ m4_define( [[YYFARGS1]], [[($1 $2 M4_YY_DEF_LAST_ARG)]])
+ m4_define( [[YYFARGS2]], [[($1 $2, $3 $4 M4_YY_DEF_LAST_ARG)]])
+ m4_define( [[YYFARGS3]], [[($1 $2, $3 $4, $5 $6 M4_YY_DEF_LAST_ARG)]])
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+/* Enter a start condition. This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN YY_G(yy_start) = 1 + 2 *
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state. The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START ((YY_G(yy_start) - 1) / 2)
+#define YYSTATE YY_START
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart( yyin M4_YY_CALL_LAST_ARG )
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+#define YY_END_OF_BUFFER_CHAR 0
+]])
+
+/* Size of default input buffer. */
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
+]])
+
+
+#ifndef YY_TYPEDEF_YY_BUFFER_STATE
+#define YY_TYPEDEF_YY_BUFFER_STATE
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+#endif
+
+%if-not-reentrant
+extern int yyleng;
+%endif
+
+%if-c-only
+%if-not-reentrant
+extern FILE *yyin, *yyout;
+%endif
+%endif
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+ m4_ifdef( [[M4_YY_USE_LINENO]],
+ [[
+ /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
+ * access to the local variable yy_act. Since yyless() is a macro, it would break
+ * existing scanners that call yyless() from OUTSIDE yylex.
+ * One obvious solution it to make yy_act a global. I tried that, and saw
+ * a 5% performance hit in a non-yylineno scanner, because yy_act is
+ * normally declared as a register variable-- so it is not worth it.
+ */
+ #define YY_LESS_LINENO(n) \
+ do { \
+ int yyl;\
+ for ( yyl = n; yyl < yyleng; ++yyl )\
+ if ( yytext[yyl] == '\n' )\
+ --yylineno;\
+ }while(0)
+ ]],
+ [[
+ #define YY_LESS_LINENO(n)
+ ]])
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+/* Return all but the first "n" matched characters back to the input stream. */
+#define yyless(n) \
+ do \
+ { \
+ /* Undo effects of setting up yytext. */ \
+ int yyless_macro_arg = (n); \
+ YY_LESS_LINENO(yyless_macro_arg);\
+ *yy_cp = YY_G(yy_hold_char); \
+ YY_RESTORE_YY_MORE_OFFSET \
+ YY_G(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+ YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+ } \
+ while ( 0 )
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+#define unput(c) yyunput( c, YY_G(yytext_ptr) M4_YY_CALL_LAST_ARG )
+]])
+
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+#ifndef YY_STRUCT_YY_BUFFER_STATE
+#define YY_STRUCT_YY_BUFFER_STATE
+struct yy_buffer_state
+ {
+%if-c-only
+ FILE *yy_input_file;
+%endif
+
+%if-c++-only
+ std::istream* yy_input_file;
+%endif
+
+
+ char *yy_ch_buf; /* input buffer */
+ char *yy_buf_pos; /* current position in input buffer */
+
+ /* Size of input buffer in bytes, not including room for EOB
+ * characters.
+ */
+ yy_size_t yy_buf_size;
+
+ /* Number of characters read into yy_ch_buf, not including EOB
+ * characters.
+ */
+ int yy_n_chars;
+
+ /* Whether we "own" the buffer - i.e., we know we created it,
+ * and can realloc() it to grow it, and should free() it to
+ * delete it.
+ */
+ int yy_is_our_buffer;
+
+ /* Whether this is an "interactive" input source; if so, and
+ * if we're using stdio for input, then we want to use getc()
+ * instead of fread(), to make sure we stop fetching input after
+ * each newline.
+ */
+ int yy_is_interactive;
+
+ /* Whether we're considered to be at the beginning of a line.
+ * If so, '^' rules will be active on the next match, otherwise
+ * not.
+ */
+ int yy_at_bol;
+
+ int yy_bs_lineno; /**< The line count. */
+ int yy_bs_column; /**< The column count. */
+
+
+ /* Whether to try to fill the input buffer when we reach the
+ * end of it.
+ */
+ int yy_fill_buffer;
+
+ int yy_buffer_status;
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+ /* When an EOF's been seen but there's still some text to process
+ * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+ * shouldn't try reading from the input source any more. We might
+ * still have a bunch of tokens to match, though, because of
+ * possible backing-up.
+ *
+ * When we actually see the EOF, we change the status to "new"
+ * (via yyrestart()), so that the user can continue scanning by
+ * just pointing yyin at a new input file.
+ */
+#define YY_BUFFER_EOF_PENDING 2
+]])
+ };
+#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+
+%if-c-only Standard (non-C++) definition
+%not-for-header
+%if-not-reentrant
+
+/* Stack of input buffers. */
+static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
+static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
+static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+%endif
+%ok-for-header
+%endif
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
+ */
+#define YY_CURRENT_BUFFER ( YY_G(yy_buffer_stack) \
+ ? YY_G(yy_buffer_stack)[YY_G(yy_buffer_stack_top)] \
+ : NULL)
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+/* Same as previous macro, but useful when we know that the buffer stack is not
+ * NULL or when we need an lvalue. For internal use only.
+ */
+#define YY_CURRENT_BUFFER_LVALUE YY_G(yy_buffer_stack)[YY_G(yy_buffer_stack_top)]
+]])
+
+%if-c-only Standard (non-C++) definition
+
+%if-not-reentrant
+%not-for-header
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+static int yy_n_chars; /* number of characters read into yy_ch_buf */
+int yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 0; /* whether we need to initialize */
+static int yy_start = 0; /* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin. A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+%ok-for-header
+%endif
+
+void yyrestart M4_YY_PARAMS( FILE *input_file M4_YY_PROTO_LAST_ARG );
+void yy_switch_to_buffer M4_YY_PARAMS( YY_BUFFER_STATE new_buffer M4_YY_PROTO_LAST_ARG );
+YY_BUFFER_STATE yy_create_buffer M4_YY_PARAMS( FILE *file, int size M4_YY_PROTO_LAST_ARG );
+void yy_delete_buffer M4_YY_PARAMS( YY_BUFFER_STATE b M4_YY_PROTO_LAST_ARG );
+void yy_flush_buffer M4_YY_PARAMS( YY_BUFFER_STATE b M4_YY_PROTO_LAST_ARG );
+void yypush_buffer_state M4_YY_PARAMS( YY_BUFFER_STATE new_buffer M4_YY_PROTO_LAST_ARG );
+void yypop_buffer_state M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+static void yyensure_buffer_stack M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+static void yy_load_buffer_state M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+static void yy_init_buffer M4_YY_PARAMS( YY_BUFFER_STATE b, FILE *file M4_YY_PROTO_LAST_ARG );
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER M4_YY_CALL_LAST_ARG)
+]])
+
+YY_BUFFER_STATE yy_scan_buffer M4_YY_PARAMS( char *base, yy_size_t size M4_YY_PROTO_LAST_ARG );
+YY_BUFFER_STATE yy_scan_string M4_YY_PARAMS( yyconst char *yy_str M4_YY_PROTO_LAST_ARG );
+YY_BUFFER_STATE yy_scan_bytes M4_YY_PARAMS( yyconst char *bytes, int len M4_YY_PROTO_LAST_ARG );
+
+%endif
+
+void *yyalloc M4_YY_PARAMS( yy_size_t M4_YY_PROTO_LAST_ARG );
+void *yyrealloc M4_YY_PARAMS( void *, yy_size_t M4_YY_PROTO_LAST_ARG );
+void yyfree M4_YY_PARAMS( void * M4_YY_PROTO_LAST_ARG );
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+#define yy_new_buffer yy_create_buffer
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+#define yy_set_interactive(is_interactive) \
+ { \
+ if ( ! YY_CURRENT_BUFFER ){ \
+ yyensure_buffer_stack (M4_YY_CALL_ONLY_ARG); \
+ YY_CURRENT_BUFFER_LVALUE = \
+ yy_create_buffer( yyin, YY_BUF_SIZE M4_YY_CALL_LAST_ARG); \
+ } \
+ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+ }
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+#define yy_set_bol(at_bol) \
+ { \
+ if ( ! YY_CURRENT_BUFFER ){\
+ yyensure_buffer_stack (M4_YY_CALL_ONLY_ARG); \
+ YY_CURRENT_BUFFER_LVALUE = \
+ yy_create_buffer( yyin, YY_BUF_SIZE M4_YY_CALL_LAST_ARG); \
+ } \
+ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+ }
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+]])
+
+%% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here
+
+%if-c-only Standard (non-C++) definition
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+static yy_state_type yy_get_previous_state M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+static yy_state_type yy_try_NUL_trans M4_YY_PARAMS( yy_state_type current_state M4_YY_PROTO_LAST_ARG);
+static int yy_get_next_buffer M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+static void yy_fatal_error M4_YY_PARAMS( yyconst char msg[] M4_YY_PROTO_LAST_ARG );
+]])
+
+%endif
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+ YY_G(yytext_ptr) = yy_bp; \
+%% [2.0] code to fiddle yytext and yyleng for yymore() goes here \
+ YY_G(yy_hold_char) = *yy_cp; \
+ *yy_cp = '\0'; \
+%% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \
+ YY_G(yy_c_buf_p) = yy_cp;
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+%% [4.0] data tables for the DFA and the user's section 1 definitions go here
+]])
+
+m4_ifdef( [[M4_YY_IN_HEADER]], [[#ifdef YY_HEADER_EXPORT_START_CONDITIONS]])
+M4_YY_SC_DEFS
+m4_ifdef( [[M4_YY_IN_HEADER]], [[#endif]])
+
+m4_ifdef( [[M4_YY_NO_UNISTD_H]],,
+[[
+#ifndef YY_NO_UNISTD_H
+/* Special case for "unistd.h", since it is non-ANSI. We include it way
+ * down here because we want the user's section 1 to have been scanned first.
+ * The user has a chance to override it with an option.
+ */
+%if-c-only
+#include <unistd.h>
+%endif
+%if-c++-only
+#include <unistd.h>
+%endif
+#endif
+]])
+
+m4_ifdef( [[M4_EXTRA_TYPE_DEFS]],
+[[
+#define YY_EXTRA_TYPE M4_EXTRA_TYPE_DEFS
+]],
+[[
+#ifndef YY_EXTRA_TYPE
+#define YY_EXTRA_TYPE void *
+#endif
+]]
+)
+
+%if-c-only Reentrant structure and macros (non-C++).
+%if-reentrant
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+/* Holds the entire state of the reentrant scanner. */
+struct yyguts_t
+ {
+
+ /* User-defined. Not touched by flex. */
+ YY_EXTRA_TYPE yyextra_r;
+
+ /* The rest are the same as the globals declared in the non-reentrant scanner. */
+ FILE *yyin_r, *yyout_r;
+ size_t yy_buffer_stack_top; /**< index of top of stack. */
+ size_t yy_buffer_stack_max; /**< capacity of stack. */
+ YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
+ char yy_hold_char;
+ int yy_n_chars;
+ int yyleng_r;
+ char *yy_c_buf_p;
+ int yy_init;
+ int yy_start;
+ int yy_did_buffer_switch_on_eof;
+ int yy_start_stack_ptr;
+ int yy_start_stack_depth;
+ int *yy_start_stack;
+ yy_state_type yy_last_accepting_state;
+ char* yy_last_accepting_cpos;
+
+ int yylineno_r;
+ int yy_flex_debug_r;
+
+m4_ifdef( [[M4_YY_USES_REJECT]],
+[[
+ yy_state_type *yy_state_buf;
+ yy_state_type *yy_state_ptr;
+ char *yy_full_match;
+ int yy_lp;
+
+ /* These are only needed for trailing context rules,
+ * but there's no conditional variable for that yet. */
+ int yy_looking_for_trail_begin;
+ int yy_full_lp;
+ int *yy_full_state;
+]])
+
+m4_ifdef( [[M4_YY_TEXT_IS_ARRAY]],
+[[
+ char yytext_r[YYLMAX];
+ char *yytext_ptr;
+ int yy_more_offset;
+ int yy_prev_more_offset;
+]],
+[[
+ char *yytext_r;
+ int yy_more_flag;
+ int yy_more_len;
+]])
+
+m4_ifdef( [[M4_YY_BISON_LVAL]],
+[[
+ YYSTYPE * yylval_r;
+]])
+
+m4_ifdef( [[<M4_YY_BISON_LLOC>]],
+[[
+ YYLTYPE * yylloc_r;
+]])
+
+ }; /* end struct yyguts_t */
+]])
+
+
+%if-c-only
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+static int yy_init_globals M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+]])
+%endif
+
+%if-reentrant
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+ m4_ifdef( [[M4_YY_BISON_LVAL]],
+ [[
+ /* This must go here because YYSTYPE and YYLTYPE are included
+ * from bison output in section 1.*/
+ # define yylval YY_G(yylval_r)
+ ]])
+
+ m4_ifdef( [[<M4_YY_BISON_LLOC>]],
+ [[
+ # define yylloc YY_G(yylloc_r)
+ ]])
+]])
+
+int yylex_init M4_YY_PARAMS(yyscan_t* scanner);
+
+int yylex_init_extra M4_YY_PARAMS( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);
+
+%endif
+
+%endif End reentrant structures and macros.
+
+/* Accessor methods to globals.
+ These are made visible to non-reentrant scanners for convenience. */
+
+m4_ifdef( [[M4_YY_NO_DESTROY]],,
+[[
+int yylex_destroy M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+]])
+
+m4_ifdef( [[M4_YY_NO_GET_DEBUG]],,
+[[
+int yyget_debug M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+]])
+
+m4_ifdef( [[M4_YY_NO_SET_DEBUG]],,
+[[
+void yyset_debug M4_YY_PARAMS( int debug_flag M4_YY_PROTO_LAST_ARG );
+]])
+
+m4_ifdef( [[M4_YY_NO_GET_EXTRA]],,
+[[
+YY_EXTRA_TYPE yyget_extra M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+]])
+
+m4_ifdef( [[M4_YY_NO_SET_EXTRA]],,
+[[
+void yyset_extra M4_YY_PARAMS( YY_EXTRA_TYPE user_defined M4_YY_PROTO_LAST_ARG );
+]])
+
+m4_ifdef( [[M4_YY_NO_GET_IN]],,
+[[
+FILE *yyget_in M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+]])
+
+m4_ifdef( [[M4_YY_NO_SET_IN]],,
+[[
+void yyset_in M4_YY_PARAMS( FILE * in_str M4_YY_PROTO_LAST_ARG );
+]])
+
+m4_ifdef( [[M4_YY_NO_GET_OUT]],,
+[[
+FILE *yyget_out M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+]])
+
+m4_ifdef( [[M4_YY_NO_SET_OUT]],,
+[[
+void yyset_out M4_YY_PARAMS( FILE * out_str M4_YY_PROTO_LAST_ARG );
+]])
+
+m4_ifdef( [[M4_YY_NO_GET_LENG]],,
+[[
+int yyget_leng M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+]])
+
+m4_ifdef( [[M4_YY_NO_GET_TEXT]],,
+[[
+char *yyget_text M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+]])
+
+m4_ifdef( [[M4_YY_NO_GET_LINENO]],,
+[[
+int yyget_lineno M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+]])
+
+m4_ifdef( [[M4_YY_NO_SET_LINENO]],,
+[[
+void yyset_lineno M4_YY_PARAMS( int line_number M4_YY_PROTO_LAST_ARG );
+]])
+
+%if-bison-bridge
+m4_ifdef( [[M4_YY_NO_GET_LVAL]],,
+[[
+YYSTYPE * yyget_lval M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+]])
+
+void yyset_lval M4_YY_PARAMS( YYSTYPE * yylval_param M4_YY_PROTO_LAST_ARG );
+
+m4_ifdef( [[<M4_YY_BISON_LLOC>]],
+[[
+ m4_ifdef( [[M4_YY_NO_GET_LLOC]],,
+ [[
+ YYLTYPE *yyget_lloc M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+ ]])
+
+ m4_ifdef( [[M4_YY_NO_SET_LLOC]],,
+ [[
+ void yyset_lloc M4_YY_PARAMS( YYLTYPE * yylloc_param M4_YY_PROTO_LAST_ARG );
+ ]])
+]])
+%endif
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+#else
+extern int yywrap M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+#endif
+#endif
+
+%not-for-header
+ m4_ifdef( [[M4_YY_NO_UNPUT]],,
+ [[
+ static void yyunput M4_YY_PARAMS( int c, char *buf_ptr M4_YY_PROTO_LAST_ARG);
+ ]])
+%ok-for-header
+%endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy M4_YY_PARAMS( char *, yyconst char *, int M4_YY_PROTO_LAST_ARG);
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen M4_YY_PARAMS( yyconst char * M4_YY_PROTO_LAST_ARG);
+#endif
+
+#ifndef YY_NO_INPUT
+%if-c-only Standard (non-C++) definition
+%not-for-header
+#ifdef __cplusplus
+static int yyinput M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+#else
+static int input M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+#endif
+%ok-for-header
+%endif
+#endif
+
+
+%if-c-only
+%# TODO: This is messy.
+m4_ifdef( [[M4_YY_STACK_USED]],
+[[
+
+m4_ifdef( [[M4_YY_NOT_REENTRANT]],
+[[
+ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+ [[
+ static int yy_start_stack_ptr = 0;
+ static int yy_start_stack_depth = 0;
+ static int *yy_start_stack = NULL;
+ ]])
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+ m4_ifdef( [[M4_YY_NO_PUSH_STATE]],,
+ [[
+ static void yy_push_state M4_YY_PARAMS( int new_state M4_YY_PROTO_LAST_ARG);
+ ]])
+ m4_ifdef( [[M4_YY_NO_POP_STATE]],,
+ [[
+ static void yy_pop_state M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+ ]])
+ m4_ifdef( [[M4_YY_NO_TOP_STATE]],,
+ [[
+ static int yy_top_state M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+ ]])
+]])
+
+]],
+[[
+m4_define( [[M4_YY_NO_PUSH_STATE]])
+m4_define( [[M4_YY_NO_POP_STATE]])
+m4_define( [[M4_YY_NO_TOP_STATE]])
+]])
+%endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+/* Copy whatever the last rule matched to the standard output. */
+#ifndef ECHO
+%if-c-only Standard (non-C++) definition
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO fwrite( yytext, yyleng, 1, yyout )
+%endif
+%if-c++-only C++ definition
+#define ECHO LexerOutput( yytext, yyleng )
+%endif
+#endif
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+%% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \
+\
+%if-c++-only C++ definition \
+ if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \
+ YY_FATAL_ERROR( "input in flex scanner failed" );
+%endif
+
+#endif
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+]])
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+%if-c-only
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg M4_YY_CALL_LAST_ARG)
+%endif
+%if-c++-only
+#define YY_FATAL_ERROR(msg) LexerError( msg )
+%endif
+#endif
+]])
+
+%if-tables-serialization structures and prototypes
+m4preproc_include(`tables_shared.h')
+
+/* Load the DFA tables from the given stream. */
+int yytables_fload M4_YY_PARAMS(FILE * fp M4_YY_PROTO_LAST_ARG);
+
+/* Unload the tables from memory. */
+int yytables_destroy M4_YY_PARAMS(M4_YY_PROTO_ONLY_ARG);
+%not-for-header
+
+/** Describes a mapping from a serialized table id to its deserialized state in
+ * this scanner. This is the bridge between our "generic" deserialization code
+ * and the specifics of this scanner.
+ */
+struct yytbl_dmap {
+ enum yytbl_id dm_id;/**< table identifier */
+ void **dm_arr; /**< address of pointer to store the deserialized table. */
+ size_t dm_sz; /**< local sizeof() each element in table. */
+};
+
+/** A {0,0,0}-terminated list of structs, forming the map */
+static struct yytbl_dmap yydmap[] =
+{
+%tables-yydmap generated elements
+ {0,0,0}
+};
+
+/** A tables-reader object to maintain some state in the read. */
+struct yytbl_reader {
+ FILE * fp; /**< input stream */
+ flex_uint32_t bread; /**< bytes read since beginning of current tableset */
+};
+
+%endif
+/* end tables serialization structures and prototypes */
+
+%ok-for-header
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+%if-c-only Standard (non-C++) definition
+
+
+m4_define( [[M4_YY_LEX_PROTO]], [[M4_YY_PARAMS(M4_YY_PROTO_ONLY_ARG)]])
+m4_define( [[M4_YY_LEX_DECLARATION]], [[YYFARGS0(void)]])
+
+m4_ifdef( [[M4_YY_BISON_LVAL]],
+[[
+ m4_dnl The bison pure parser is used. Redefine yylex to
+ m4_dnl accept the lval parameter.
+
+ m4_define( [[M4_YY_LEX_PROTO]], [[\]]
+ [[M4_YY_PARAMS(YYSTYPE * yylval_param M4_YY_PROTO_LAST_ARG)]])
+ m4_define( [[M4_YY_LEX_DECLARATION]], [[\]]
+ [[YYFARGS1(YYSTYPE *,yylval_param)]])
+]])
+
+m4_ifdef( [[<M4_YY_BISON_LLOC>]],
+[[
+ m4_dnl Locations are used. yylex should also accept the ylloc parameter.
+
+ m4_define( [[M4_YY_LEX_PROTO]], [[\]]
+ [[M4_YY_PARAMS(YYSTYPE * yylval_param, YYLTYPE * yylloc_param M4_YY_PROTO_LAST_ARG)]])
+ m4_define( [[M4_YY_LEX_DECLARATION]], [[\]]
+ [[YYFARGS2(YYSTYPE *,yylval_param, YYLTYPE *,yylloc_param)]])
+]])
+
+extern int yylex M4_YY_LEX_PROTO;
+
+#define YY_DECL int yylex M4_YY_LEX_DECLARATION
+%endif
+%if-c++-only C++ definition
+#define YY_DECL int yyFlexLexer::yylex()
+%endif
+#endif /* !YY_DECL */
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+%% [6.0] YY_RULE_SETUP definition goes here
+]])
+
+%not-for-header
+/** The main scanner function which does all the work.
+ */
+YY_DECL
+{
+ register yy_state_type yy_current_state;
+ register char *yy_cp, *yy_bp;
+ register int yy_act;
+ M4_YY_DECL_GUTS_VAR();
+
+m4_ifdef( [[M4_YY_NOT_REENTRANT]],
+[[
+ m4_ifdef( [[M4_YY_BISON_LVAL]],
+ [[
+ YYSTYPE * yylval;
+ ]])
+ m4_ifdef( [[<M4_YY_BISON_LLOC>]],
+ [[
+ YYLTYPE * yylloc;
+ ]])
+]])
+
+%% [7.0] user's declarations go here
+
+m4_ifdef( [[M4_YY_BISON_LVAL]],
+[[
+ yylval = yylval_param;
+]])
+
+m4_ifdef( [[<M4_YY_BISON_LLOC>]],
+[[
+ yylloc = yylloc_param;
+]])
+
+ if ( !YY_G(yy_init) )
+ {
+ YY_G(yy_init) = 1;
+
+#ifdef YY_USER_INIT
+ YY_USER_INIT;
+#endif
+
+m4_ifdef( [[M4_YY_USES_REJECT]],
+[[
+ /* Create the reject buffer large enough to save one state per allowed character. */
+ if ( ! YY_G(yy_state_buf) )
+ YY_G(yy_state_buf) = (yy_state_type *)yyalloc(YY_STATE_BUF_SIZE M4_YY_CALL_LAST_ARG);
+ if ( ! YY_G(yy_state_buf) )
+ YY_FATAL_ERROR( "out of dynamic memory in yylex()" );
+]])
+
+ if ( ! YY_G(yy_start) )
+ YY_G(yy_start) = 1; /* first start state */
+
+ if ( ! yyin )
+%if-c-only
+ yyin = stdin;
+%endif
+%if-c++-only
+ yyin = & std::cin;
+%endif
+
+ if ( ! yyout )
+%if-c-only
+ yyout = stdout;
+%endif
+%if-c++-only
+ yyout = & std::cout;
+%endif
+
+ if ( ! YY_CURRENT_BUFFER ) {
+ yyensure_buffer_stack (M4_YY_CALL_ONLY_ARG);
+ YY_CURRENT_BUFFER_LVALUE =
+ yy_create_buffer( yyin, YY_BUF_SIZE M4_YY_CALL_LAST_ARG);
+ }
+
+ yy_load_buffer_state( M4_YY_CALL_ONLY_ARG );
+ }
+
+ while ( 1 ) /* loops until end-of-file is reached */
+ {
+%% [8.0] yymore()-related code goes here
+ yy_cp = YY_G(yy_c_buf_p);
+
+ /* Support of yytext. */
+ *yy_cp = YY_G(yy_hold_char);
+
+ /* yy_bp points to the position in yy_ch_buf of the start of
+ * the current run.
+ */
+ yy_bp = yy_cp;
+
+%% [9.0] code to set up and find next match goes here
+
+yy_find_action:
+%% [10.0] code to find the action number goes here
+
+ YY_DO_BEFORE_ACTION;
+
+%% [11.0] code for yylineno update goes here
+
+do_action: /* This label is used only to access EOF actions. */
+
+%% [12.0] debug code goes here
+
+ switch ( yy_act )
+ { /* beginning of action switch */
+%% [13.0] actions go here
+
+ case YY_END_OF_BUFFER:
+ {
+ /* Amount of text matched not including the EOB char. */
+ int yy_amount_of_matched_text = (int) (yy_cp - YY_G(yytext_ptr)) - 1;
+
+ /* Undo the effects of YY_DO_BEFORE_ACTION. */
+ *yy_cp = YY_G(yy_hold_char);
+ YY_RESTORE_YY_MORE_OFFSET
+
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+ {
+ /* We're scanning a new file or input source. It's
+ * possible that this happened because the user
+ * just pointed yyin at a new source and called
+ * yylex(). If so, then we have to assure
+ * consistency between YY_CURRENT_BUFFER and our
+ * globals. Here is the right place to do so, because
+ * this is the first action (other than possibly a
+ * back-up) that will match for the new input source.
+ */
+ YY_G(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+ YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+ }
+
+ /* Note that here we test for yy_c_buf_p "<=" to the position
+ * of the first EOB in the buffer, since yy_c_buf_p will
+ * already have been incremented past the NUL character
+ * (since all states make transitions on EOB to the
+ * end-of-buffer state). Contrast this with the test
+ * in input().
+ */
+ if ( YY_G(yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[YY_G(yy_n_chars)] )
+ { /* This was really a NUL. */
+ yy_state_type yy_next_state;
+
+ YY_G(yy_c_buf_p) = YY_G(yytext_ptr) + yy_amount_of_matched_text;
+
+ yy_current_state = yy_get_previous_state( M4_YY_CALL_ONLY_ARG );
+
+ /* Okay, we're now positioned to make the NUL
+ * transition. We couldn't have
+ * yy_get_previous_state() go ahead and do it
+ * for us because it doesn't know how to deal
+ * with the possibility of jamming (and we don't
+ * want to build jamming into it because then it
+ * will run more slowly).
+ */
+
+ yy_next_state = yy_try_NUL_trans( yy_current_state M4_YY_CALL_LAST_ARG);
+
+ yy_bp = YY_G(yytext_ptr) + YY_MORE_ADJ;
+
+ if ( yy_next_state )
+ {
+ /* Consume the NUL. */
+ yy_cp = ++YY_G(yy_c_buf_p);
+ yy_current_state = yy_next_state;
+ goto yy_match;
+ }
+
+ else
+ {
+%% [14.0] code to do back-up for compressed tables and set up yy_cp goes here
+ goto yy_find_action;
+ }
+ }
+
+ else switch ( yy_get_next_buffer( M4_YY_CALL_ONLY_ARG ) )
+ {
+ case EOB_ACT_END_OF_FILE:
+ {
+ YY_G(yy_did_buffer_switch_on_eof) = 0;
+
+ if ( yywrap( M4_YY_CALL_ONLY_ARG ) )
+ {
+ /* Note: because we've taken care in
+ * yy_get_next_buffer() to have set up
+ * yytext, we can now set up
+ * yy_c_buf_p so that if some total
+ * hoser (like flex itself) wants to
+ * call the scanner after we return the
+ * YY_NULL, it'll still work - another
+ * YY_NULL will get returned.
+ */
+ YY_G(yy_c_buf_p) = YY_G(yytext_ptr) + YY_MORE_ADJ;
+
+ yy_act = YY_STATE_EOF(YY_START);
+ goto do_action;
+ }
+
+ else
+ {
+ if ( ! YY_G(yy_did_buffer_switch_on_eof) )
+ YY_NEW_FILE;
+ }
+ break;
+ }
+
+ case EOB_ACT_CONTINUE_SCAN:
+ YY_G(yy_c_buf_p) =
+ YY_G(yytext_ptr) + yy_amount_of_matched_text;
+
+ yy_current_state = yy_get_previous_state( M4_YY_CALL_ONLY_ARG );
+
+ yy_cp = YY_G(yy_c_buf_p);
+ yy_bp = YY_G(yytext_ptr) + YY_MORE_ADJ;
+ goto yy_match;
+
+ case EOB_ACT_LAST_MATCH:
+ YY_G(yy_c_buf_p) =
+ &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[YY_G(yy_n_chars)];
+
+ yy_current_state = yy_get_previous_state( M4_YY_CALL_ONLY_ARG );
+
+ yy_cp = YY_G(yy_c_buf_p);
+ yy_bp = YY_G(yytext_ptr) + YY_MORE_ADJ;
+ goto yy_find_action;
+ }
+ break;
+ }
+
+ default:
+ YY_FATAL_ERROR(
+ "fatal flex scanner internal error--no action found" );
+ } /* end of action switch */
+ } /* end of scanning one token */
+} /* end of yylex */
+%ok-for-header
+
+%if-c++-only
+%not-for-header
+/* The contents of this function are C++ specific, so the YY_G macro is not used.
+ */
+yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout )
+{
+ yyin = arg_yyin;
+ yyout = arg_yyout;
+ yy_c_buf_p = 0;
+ yy_init = 0;
+ yy_start = 0;
+ yy_flex_debug = 0;
+
+ yy_did_buffer_switch_on_eof = 0;
+
+ yy_looking_for_trail_begin = 0;
+ yy_more_flag = 0;
+ yy_more_len = 0;
+ yy_more_offset = yy_prev_more_offset = 0;
+
+ yy_start_stack_ptr = yy_start_stack_depth = 0;
+ yy_start_stack = NULL;
+
+ yy_buffer_stack = 0;
+ yy_buffer_stack_top = 0;
+ yy_buffer_stack_max = 0;
+
+
+m4_ifdef( [[M4_YY_USES_REJECT]],
+[[
+ yy_state_buf = new yy_state_type[YY_STATE_BUF_SIZE];
+]],
+[[
+ yy_state_buf = 0;
+]])
+}
+
+/* The contents of this function are C++ specific, so the YY_G macro is not used.
+ */
+yyFlexLexer::~yyFlexLexer()
+{
+ mystack::iterator It=m_IncludeStack.begin();
+ while (It!=m_IncludeStack.end())
+ {
+ yy_delete_buffer((*It)->m_BufferState); /* When the stack is deleted, the lexer is not run anymore, so we have to clean up the buffers ourself */
+ It++;
+ }
+ delete [] yy_state_buf;
+ yyfree( yy_start_stack M4_YY_CALL_LAST_ARG );
+ yy_delete_buffer( YY_CURRENT_BUFFER M4_YY_CALL_LAST_ARG);
+ yyfree( yy_buffer_stack M4_YY_CALL_LAST_ARG );
+}
+
+/* The contents of this function are C++ specific, so the YY_G macro is not used.
+ */
+void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out )
+{
+ if ( new_in )
+ {
+ yy_delete_buffer( YY_CURRENT_BUFFER M4_YY_CALL_LAST_ARG);
+ yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE M4_YY_CALL_LAST_ARG) M4_YY_CALL_LAST_ARG);
+ }
+
+ if ( new_out )
+ yyout = new_out;
+}
+
+#ifdef YY_INTERACTIVE
+int yyFlexLexer::LexerInput( char* buf, int /* max_size */ )
+#else
+int yyFlexLexer::LexerInput( char* buf, int max_size )
+#endif
+{
+ if ( yyin->eof() || yyin->fail() )
+ return 0;
+
+#ifdef YY_INTERACTIVE
+ yyin->get( buf[0] );
+
+ if ( yyin->eof() )
+ return 0;
+
+ if ( yyin->bad() )
+ return -1;
+
+ return 1;
+
+#else
+ (void) yyin->read( buf, max_size );
+
+ if ( yyin->bad() )
+ return -1;
+ else
+ return (int)yyin->gcount();
+#endif
+}
+
+void yyFlexLexer::LexerOutput( const char* buf, int size )
+{
+ (void) yyout->write( buf, size );
+}
+%ok-for-header
+%endif
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ * EOB_ACT_LAST_MATCH -
+ * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ * EOB_ACT_END_OF_FILE - end of file
+ */
+%if-c-only
+static int yy_get_next_buffer YYFARGS0(void)
+%endif
+%if-c++-only
+int yyFlexLexer::yy_get_next_buffer()
+%endif
+{
+ M4_YY_DECL_GUTS_VAR();
+ register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+ register char *source = YY_G(yytext_ptr);
+ register int number_to_move, i;
+ int ret_val;
+
+ if ( YY_G(yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[YY_G(yy_n_chars) + 1] )
+ YY_FATAL_ERROR(
+ "fatal flex scanner internal error--end of buffer missed" );
+
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+ { /* Don't try to fill the buffer, so this is an EOF. */
+ if ( YY_G(yy_c_buf_p) - YY_G(yytext_ptr) - YY_MORE_ADJ == 1 )
+ {
+ /* We matched a single character, the EOB, so
+ * treat this as a final EOF.
+ */
+ return EOB_ACT_END_OF_FILE;
+ }
+
+ else
+ {
+ /* We matched some text prior to the EOB, first
+ * process it.
+ */
+ return EOB_ACT_LAST_MATCH;
+ }
+ }
+
+ /* Try to read more data. */
+
+ /* First move last chars to start of buffer. */
+ number_to_move = (int) (YY_G(yy_c_buf_p) - YY_G(yytext_ptr)) - 1;
+
+ for ( i = 0; i < number_to_move; ++i )
+ *(dest++) = *(source++);
+
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+ /* don't do the read, it's not guaranteed to return an EOF,
+ * just force an EOF
+ */
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = YY_G(yy_n_chars) = 0;
+
+ else
+ {
+ int num_to_read =
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+ while ( num_to_read <= 0 )
+ { /* Not enough room in the buffer - grow it. */
+m4_ifdef( [[M4_YY_USES_REJECT]],
+[[
+ YY_FATAL_ERROR(
+"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
+]],
+[[
+ /* just a shorter name for the current buffer */
+ YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
+
+ int yy_c_buf_p_offset =
+ (int) (YY_G(yy_c_buf_p) - b->yy_ch_buf);
+
+ if ( b->yy_is_our_buffer )
+ {
+ int new_size = b->yy_buf_size * 2;
+
+ if ( new_size <= 0 )
+ b->yy_buf_size += b->yy_buf_size / 8;
+ else
+ b->yy_buf_size *= 2;
+
+ b->yy_ch_buf = (char *)
+ /* Include room in for 2 EOB chars. */
+ yyrealloc( (void *) b->yy_ch_buf,
+ b->yy_buf_size + 2 M4_YY_CALL_LAST_ARG );
+ }
+ else
+ /* Can't grow it, we don't own it. */
+ b->yy_ch_buf = 0;
+
+ if ( ! b->yy_ch_buf )
+ YY_FATAL_ERROR(
+ "fatal error - scanner input buffer overflow" );
+
+ YY_G(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+ num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+ number_to_move - 1;
+]])
+ }
+
+ if ( num_to_read > YY_READ_BUF_SIZE )
+ num_to_read = YY_READ_BUF_SIZE;
+
+ /* Read in more data. */
+ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+ YY_G(yy_n_chars), (size_t) num_to_read );
+
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = YY_G(yy_n_chars);
+ }
+
+ if ( YY_G(yy_n_chars) == 0 )
+ {
+ if ( number_to_move == YY_MORE_ADJ )
+ {
+ ret_val = EOB_ACT_END_OF_FILE;
+ yyrestart( yyin M4_YY_CALL_LAST_ARG);
+ }
+
+ else
+ {
+ ret_val = EOB_ACT_LAST_MATCH;
+ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+ YY_BUFFER_EOF_PENDING;
+ }
+ }
+
+ else
+ ret_val = EOB_ACT_CONTINUE_SCAN;
+
+ if ((yy_size_t) (YY_G(yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+ /* Extend the array by 50%, plus the number we really need. */
+ yy_size_t new_size = YY_G(yy_n_chars) + number_to_move + (YY_G(yy_n_chars) >> 1);
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
+ (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, new_size M4_YY_CALL_LAST_ARG );
+ if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+ }
+
+ YY_G(yy_n_chars) += number_to_move;
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[YY_G(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[YY_G(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+
+ YY_G(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+
+ return ret_val;
+}
+]])
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+%if-c-only
+%not-for-header
+ static yy_state_type yy_get_previous_state YYFARGS0(void)
+%endif
+%if-c++-only
+ yy_state_type yyFlexLexer::yy_get_previous_state()
+%endif
+{
+ register yy_state_type yy_current_state;
+ register char *yy_cp;
+ M4_YY_DECL_GUTS_VAR();
+
+%% [15.0] code to get the start state into yy_current_state goes here
+
+ for ( yy_cp = YY_G(yytext_ptr) + YY_MORE_ADJ; yy_cp < YY_G(yy_c_buf_p); ++yy_cp )
+ {
+%% [16.0] code to find the next state goes here
+ }
+
+ return yy_current_state;
+}
+
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ * next_state = yy_try_NUL_trans( current_state );
+ */
+%if-c-only
+ static yy_state_type yy_try_NUL_trans YYFARGS1( yy_state_type, yy_current_state)
+%endif
+%if-c++-only
+ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state )
+%endif
+{
+ register int yy_is_jam;
+ M4_YY_DECL_GUTS_VAR(); /* This var may be unused depending upon options. */
+%% [17.0] code to find the next state, and perhaps do backing up, goes here
+
+ return yy_is_jam ? 0 : yy_current_state;
+}
+
+
+%if-c-only
+m4_ifdef( [[M4_YY_NO_UNPUT]],,
+[[
+ static void yyunput YYFARGS2( int,c, register char *,yy_bp)
+%endif
+%if-c++-only
+ void yyFlexLexer::yyunput( int c, register char* yy_bp)
+%endif
+{
+ register char *yy_cp;
+ M4_YY_DECL_GUTS_VAR();
+
+ yy_cp = YY_G(yy_c_buf_p);
+
+ /* undo effects of setting up yytext */
+ *yy_cp = YY_G(yy_hold_char);
+
+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+ { /* need to shift things up to make room */
+ /* +2 for EOB chars. */
+ register int number_to_move = YY_G(yy_n_chars) + 2;
+ register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
+ register char *source =
+ &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
+
+ while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+ *--dest = *--source;
+
+ yy_cp += (int) (dest - source);
+ yy_bp += (int) (dest - source);
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
+ YY_G(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
+
+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+ YY_FATAL_ERROR( "flex scanner push-back overflow" );
+ }
+
+ *--yy_cp = (char) c;
+
+%% [18.0] update yylineno here
+m4_ifdef( [[M4_YY_USE_LINENO]],
+[[
+ if ( c == '\n' ){
+ --yylineno;
+ }
+]])
+
+ YY_G(yytext_ptr) = yy_bp;
+ YY_G(yy_hold_char) = *yy_cp;
+ YY_G(yy_c_buf_p) = yy_cp;
+}
+%if-c-only
+]])
+%endif
+
+%if-c-only
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+ static int yyinput YYFARGS0(void)
+#else
+ static int input YYFARGS0(void)
+#endif
+
+%endif
+%if-c++-only
+ int yyFlexLexer::yyinput()
+%endif
+{
+ int c;
+ M4_YY_DECL_GUTS_VAR();
+
+ *YY_G(yy_c_buf_p) = YY_G(yy_hold_char);
+
+ if ( *YY_G(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+ {
+ /* yy_c_buf_p now points to the character we want to return.
+ * If this occurs *before* the EOB characters, then it's a
+ * valid NUL; if not, then we've hit the end of the buffer.
+ */
+ if ( YY_G(yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[YY_G(yy_n_chars)] )
+ /* This was really a NUL. */
+ *YY_G(yy_c_buf_p) = '\0';
+
+ else
+ { /* need more input */
+ int offset = YY_G(yy_c_buf_p) - YY_G(yytext_ptr);
+ ++YY_G(yy_c_buf_p);
+
+ switch ( yy_get_next_buffer( M4_YY_CALL_ONLY_ARG ) )
+ {
+ case EOB_ACT_LAST_MATCH:
+ /* This happens because yy_g_n_b()
+ * sees that we've accumulated a
+ * token and flags that we need to
+ * try matching the token before
+ * proceeding. But for input(),
+ * there's no matching to consider.
+ * So convert the EOB_ACT_LAST_MATCH
+ * to EOB_ACT_END_OF_FILE.
+ */
+
+ /* Reset buffer status. */
+ yyrestart( yyin M4_YY_CALL_LAST_ARG);
+
+ /*FALLTHROUGH*/
+
+ case EOB_ACT_END_OF_FILE:
+ {
+ if ( yywrap( M4_YY_CALL_ONLY_ARG ) )
+ return EOF;
+
+ if ( ! YY_G(yy_did_buffer_switch_on_eof) )
+ YY_NEW_FILE;
+#ifdef __cplusplus
+ return yyinput(M4_YY_CALL_ONLY_ARG);
+#else
+ return input(M4_YY_CALL_ONLY_ARG);
+#endif
+ }
+
+ case EOB_ACT_CONTINUE_SCAN:
+ YY_G(yy_c_buf_p) = YY_G(yytext_ptr) + offset;
+ break;
+ }
+ }
+ }
+
+ c = *(unsigned char *) YY_G(yy_c_buf_p); /* cast for 8-bit char's */
+ *YY_G(yy_c_buf_p) = '\0'; /* preserve yytext */
+ YY_G(yy_hold_char) = *++YY_G(yy_c_buf_p);
+
+%% [19.0] update BOL and yylineno
+
+ return c;
+}
+%if-c-only
+#endif /* ifndef YY_NO_INPUT */
+%endif
+
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ * M4_YY_DOC_PARAM
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+%if-c-only
+ void yyrestart YYFARGS1( FILE *,input_file)
+%endif
+%if-c++-only
+ void yyFlexLexer::yyrestart( std::istream* input_file )
+%endif
+{
+ M4_YY_DECL_GUTS_VAR();
+
+ if ( ! YY_CURRENT_BUFFER ){
+ yyensure_buffer_stack (M4_YY_CALL_ONLY_ARG);
+ YY_CURRENT_BUFFER_LVALUE =
+ yy_create_buffer( yyin, YY_BUF_SIZE M4_YY_CALL_LAST_ARG);
+ }
+
+ yy_init_buffer( YY_CURRENT_BUFFER, input_file M4_YY_CALL_LAST_ARG);
+ yy_load_buffer_state( M4_YY_CALL_ONLY_ARG );
+}
+
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ * M4_YY_DOC_PARAM
+ */
+%if-c-only
+ void yy_switch_to_buffer YYFARGS1( YY_BUFFER_STATE ,new_buffer)
+%endif
+%if-c++-only
+ void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
+%endif
+{
+ M4_YY_DECL_GUTS_VAR();
+
+ /* TODO. We should be able to replace this entire function body
+ * with
+ * yypop_buffer_state();
+ * yypush_buffer_state(new_buffer);
+ */
+ yyensure_buffer_stack (M4_YY_CALL_ONLY_ARG);
+ if ( YY_CURRENT_BUFFER == new_buffer )
+ return;
+
+ if ( YY_CURRENT_BUFFER )
+ {
+ /* Flush out information for old buffer. */
+ *YY_G(yy_c_buf_p) = YY_G(yy_hold_char);
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = YY_G(yy_c_buf_p);
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = YY_G(yy_n_chars);
+ }
+
+ YY_CURRENT_BUFFER_LVALUE = new_buffer;
+ yy_load_buffer_state( M4_YY_CALL_ONLY_ARG );
+
+ /* We don't actually know whether we did this switch during
+ * EOF (yywrap()) processing, but the only time this flag
+ * is looked at is after yywrap() is called, so it's safe
+ * to go ahead and always set it.
+ */
+ YY_G(yy_did_buffer_switch_on_eof) = 1;
+}
+
+
+%if-c-only
+static void yy_load_buffer_state YYFARGS0(void)
+%endif
+%if-c++-only
+ void yyFlexLexer::yy_load_buffer_state()
+%endif
+{
+ M4_YY_DECL_GUTS_VAR();
+ YY_G(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+ YY_G(yytext_ptr) = YY_G(yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+ yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+ YY_G(yy_hold_char) = *YY_G(yy_c_buf_p);
+}
+
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * M4_YY_DOC_PARAM
+ * @return the allocated buffer state.
+ */
+%if-c-only
+ YY_BUFFER_STATE yy_create_buffer YYFARGS2( FILE *,file, int ,size)
+%endif
+%if-c++-only
+ YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size )
+%endif
+{
+ YY_BUFFER_STATE b;
+ m4_dnl M4_YY_DECL_GUTS_VAR();
+
+ b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) M4_YY_CALL_LAST_ARG );
+ if ( ! b )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+ b->yy_buf_size = size;
+
+ /* yy_ch_buf has to be 2 characters longer than the size given because
+ * we need to put in 2 end-of-buffer characters.
+ */
+ b->yy_ch_buf = (char *) yyalloc( b->yy_buf_size + 2 M4_YY_CALL_LAST_ARG );
+ if ( ! b->yy_ch_buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+ b->yy_is_our_buffer = 1;
+
+ yy_init_buffer( b, file M4_YY_CALL_LAST_ARG);
+
+ return b;
+}
+
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ * M4_YY_DOC_PARAM
+ */
+%if-c-only
+ void yy_delete_buffer YYFARGS1( YY_BUFFER_STATE ,b)
+%endif
+%if-c++-only
+ void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b )
+%endif
+{
+ M4_YY_DECL_GUTS_VAR();
+
+ if ( ! b )
+ return;
+
+ if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+
+ if ( b->yy_is_our_buffer )
+ yyfree( (void *) b->yy_ch_buf M4_YY_CALL_LAST_ARG );
+
+ yyfree( (void *) b M4_YY_CALL_LAST_ARG );
+}
+
+
+%if-c-only
+m4_ifdef( [[M4_YY_ALWAYS_INTERACTIVE]],,
+[[
+ m4_ifdef( [[M4_YY_NEVER_INTERACTIVE]],,
+ [[
+#ifndef __cplusplus
+extern int isatty M4_YY_PARAMS( int );
+#endif /* __cplusplus */
+ ]])
+]])
+%endif
+
+%if-c++-only
+m4_ifdef( [[M4_YY_NEVER_INTERACTIVE]],,
+[[
+]])
+%endif
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+%if-c-only
+ static void yy_init_buffer YYFARGS2( YY_BUFFER_STATE ,b, FILE *,file)
+%endif
+%if-c++-only
+ void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file )
+%endif
+
+{
+ int oerrno = errno;
+ M4_YY_DECL_GUTS_VAR();
+
+ yy_flush_buffer( b M4_YY_CALL_LAST_ARG);
+
+ b->yy_input_file = file;
+ b->yy_fill_buffer = 1;
+
+ /* If b is the current buffer, then yy_init_buffer was _probably_
+ * called from yyrestart() or through yy_get_next_buffer.
+ * In that case, we don't want to reset the lineno or column.
+ */
+ if (b != YY_CURRENT_BUFFER){
+ b->yy_bs_lineno = 1;
+ b->yy_bs_column = 0;
+ }
+
+%if-c-only
+m4_ifdef( [[M4_YY_ALWAYS_INTERACTIVE]],
+[[
+ b->yy_is_interactive = 1;
+]],
+[[
+ m4_ifdef( [[M4_YY_NEVER_INTERACTIVE]],
+ [[
+ b->yy_is_interactive = 0;
+ ]],
+ [[
+ b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+ ]])
+]])
+%endif
+%if-c++-only
+ b->yy_is_interactive = 0;
+%endif
+ errno = oerrno;
+}
+
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ * M4_YY_DOC_PARAM
+ */
+%if-c-only
+ void yy_flush_buffer YYFARGS1( YY_BUFFER_STATE ,b)
+%endif
+%if-c++-only
+ void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b )
+%endif
+{
+ M4_YY_DECL_GUTS_VAR();
+ if ( ! b )
+ return;
+
+ b->yy_n_chars = 0;
+
+ /* We always need two end-of-buffer characters. The first causes
+ * a transition to the end-of-buffer state. The second causes
+ * a jam in that state.
+ */
+ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+ b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+ b->yy_buf_pos = &b->yy_ch_buf[0];
+
+ b->yy_at_bol = 1;
+ b->yy_buffer_status = YY_BUFFER_NEW;
+
+ if ( b == YY_CURRENT_BUFFER )
+ yy_load_buffer_state( M4_YY_CALL_ONLY_ARG );
+}
+
+%if-c-or-c++
+/** Pushes the new state onto the stack. The new state becomes
+ * the current state. This function will allocate the stack
+ * if necessary.
+ * @param new_buffer The new state.
+ * M4_YY_DOC_PARAM
+ */
+%if-c-only
+void yypush_buffer_state YYFARGS1(YY_BUFFER_STATE,new_buffer)
+%endif
+%if-c++-only
+void yyFlexLexer::yypush_buffer_state (YY_BUFFER_STATE new_buffer)
+%endif
+{
+ M4_YY_DECL_GUTS_VAR();
+ if (new_buffer == NULL)
+ return;
+
+ yyensure_buffer_stack(M4_YY_CALL_ONLY_ARG);
+
+ /* This block is copied from yy_switch_to_buffer. */
+ if ( YY_CURRENT_BUFFER )
+ {
+ /* Flush out information for old buffer. */
+ *YY_G(yy_c_buf_p) = YY_G(yy_hold_char);
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = YY_G(yy_c_buf_p);
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = YY_G(yy_n_chars);
+ }
+
+ /* Only push if top exists. Otherwise, replace top. */
+ if (YY_CURRENT_BUFFER)
+ YY_G(yy_buffer_stack_top)++;
+ YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+ /* copied from yy_switch_to_buffer. */
+ yy_load_buffer_state( M4_YY_CALL_ONLY_ARG );
+ YY_G(yy_did_buffer_switch_on_eof) = 1;
+}
+%endif
+
+
+%if-c-or-c++
+/** Removes and deletes the top of the stack, if present.
+ * The next element becomes the new top.
+ * M4_YY_DOC_PARAM
+ */
+%if-c-only
+void yypop_buffer_state YYFARGS0(void)
+%endif
+%if-c++-only
+void yyFlexLexer::yypop_buffer_state (void)
+%endif
+{
+ M4_YY_DECL_GUTS_VAR();
+ if (!YY_CURRENT_BUFFER)
+ return;
+
+ yy_delete_buffer(YY_CURRENT_BUFFER M4_YY_CALL_LAST_ARG);
+ YY_CURRENT_BUFFER_LVALUE = NULL;
+ if (YY_G(yy_buffer_stack_top) > 0)
+ --YY_G(yy_buffer_stack_top);
+
+ if (YY_CURRENT_BUFFER) {
+ yy_load_buffer_state( M4_YY_CALL_ONLY_ARG );
+ YY_G(yy_did_buffer_switch_on_eof) = 1;
+ }
+}
+%endif
+
+
+%if-c-or-c++
+/* Allocates the stack if it does not exist.
+ * Guarantees space for at least one push.
+ */
+%if-c-only
+static void yyensure_buffer_stack YYFARGS0(void)
+%endif
+%if-c++-only
+void yyFlexLexer::yyensure_buffer_stack(void)
+%endif
+{
+ int num_to_alloc;
+ M4_YY_DECL_GUTS_VAR();
+
+ if (!YY_G(yy_buffer_stack)) {
+
+ /* First allocation is just for 2 elements, since we don't know if this
+ * scanner will even need a stack. We use 2 instead of 1 to avoid an
+ * immediate realloc on the next call.
+ */
+ num_to_alloc = 1;
+ YY_G(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+ (num_to_alloc * sizeof(struct yy_buffer_state*)
+ M4_YY_CALL_LAST_ARG);
+ if ( ! YY_G(yy_buffer_stack) )
+ YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+
+ memset(YY_G(yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+
+ YY_G(yy_buffer_stack_max) = num_to_alloc;
+ YY_G(yy_buffer_stack_top) = 0;
+ return;
+ }
+
+ if (YY_G(yy_buffer_stack_top) >= (YY_G(yy_buffer_stack_max)) - 1){
+
+ /* Increase the buffer to prepare for a possible push. */
+ int grow_size = 8 /* arbitrary grow size */;
+
+ num_to_alloc = YY_G(yy_buffer_stack_max) + grow_size;
+ YY_G(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+ (YY_G(yy_buffer_stack),
+ num_to_alloc * sizeof(struct yy_buffer_state*)
+ M4_YY_CALL_LAST_ARG);
+ if ( ! YY_G(yy_buffer_stack) )
+ YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+ /* zero only the new slots.*/
+ memset(YY_G(yy_buffer_stack) + YY_G(yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+ YY_G(yy_buffer_stack_max) = num_to_alloc;
+ }
+}
+%endif
+
+
+
+
+m4_ifdef( [[M4_YY_NO_SCAN_BUFFER]],,
+[[
+%if-c-only
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ * M4_YY_DOC_PARAM
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_buffer YYFARGS2( char *,base, yy_size_t ,size)
+{
+ YY_BUFFER_STATE b;
+ m4_dnl M4_YY_DECL_GUTS_VAR();
+
+ if ( size < 2 ||
+ base[size-2] != YY_END_OF_BUFFER_CHAR ||
+ base[size-1] != YY_END_OF_BUFFER_CHAR )
+ /* They forgot to leave room for the EOB's. */
+ return 0;
+
+ b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) M4_YY_CALL_LAST_ARG );
+ if ( ! b )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+ b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
+ b->yy_buf_pos = b->yy_ch_buf = base;
+ b->yy_is_our_buffer = 0;
+ b->yy_input_file = 0;
+ b->yy_n_chars = b->yy_buf_size;
+ b->yy_is_interactive = 0;
+ b->yy_at_bol = 1;
+ b->yy_fill_buffer = 0;
+ b->yy_buffer_status = YY_BUFFER_NEW;
+
+ yy_switch_to_buffer( b M4_YY_CALL_LAST_ARG );
+
+ return b;
+}
+%endif
+]])
+
+
+m4_ifdef( [[M4_YY_NO_SCAN_STRING]],,
+[[
+%if-c-only
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ * M4_YY_DOC_PARAM
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ * yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string YYFARGS1( yyconst char *, yystr)
+{
+ m4_dnl M4_YY_DECL_GUTS_VAR();
+
+ return yy_scan_bytes( yystr, strlen(yystr) M4_YY_CALL_LAST_ARG);
+}
+%endif
+]])
+
+
+m4_ifdef( [[M4_YY_NO_SCAN_BYTES]],,
+[[
+%if-c-only
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
+ * M4_YY_DOC_PARAM
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes YYFARGS2( yyconst char *,yybytes, int ,_yybytes_len)
+{
+ YY_BUFFER_STATE b;
+ char *buf;
+ yy_size_t n;
+ int i;
+ m4_dnl M4_YY_DECL_GUTS_VAR();
+
+ /* Get memory for full buffer, including space for trailing EOB's. */
+ n = _yybytes_len + 2;
+ buf = (char *) yyalloc( n M4_YY_CALL_LAST_ARG );
+ if ( ! buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+ for ( i = 0; i < _yybytes_len; ++i )
+ buf[i] = yybytes[i];
+
+ buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+
+ b = yy_scan_buffer( buf, n M4_YY_CALL_LAST_ARG);
+ if ( ! b )
+ YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+ /* It's okay to grow etc. this buffer, and we should throw it
+ * away when we're done.
+ */
+ b->yy_is_our_buffer = 1;
+
+ return b;
+}
+%endif
+]])
+
+
+m4_ifdef( [[M4_YY_NO_PUSH_STATE]],,
+[[
+%if-c-only
+ static void yy_push_state YYFARGS1( int ,new_state)
+%endif
+%if-c++-only
+ void yyFlexLexer::yy_push_state( int new_state )
+%endif
+{
+ M4_YY_DECL_GUTS_VAR();
+ if ( YY_G(yy_start_stack_ptr) >= YY_G(yy_start_stack_depth) )
+ {
+ yy_size_t new_size;
+
+ YY_G(yy_start_stack_depth) += YY_START_STACK_INCR;
+ new_size = YY_G(yy_start_stack_depth) * sizeof( int );
+
+ if ( ! YY_G(yy_start_stack) )
+ YY_G(yy_start_stack) = (int *) yyalloc( new_size M4_YY_CALL_LAST_ARG );
+
+ else
+ YY_G(yy_start_stack) = (int *) yyrealloc(
+ (void *) YY_G(yy_start_stack), new_size M4_YY_CALL_LAST_ARG );
+
+ if ( ! YY_G(yy_start_stack) )
+ YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
+ }
+
+ YY_G(yy_start_stack)[YY_G(yy_start_stack_ptr)++] = YY_START;
+
+ BEGIN(new_state);
+}
+]])
+
+
+m4_ifdef( [[M4_YY_NO_POP_STATE]],,
+[[
+%if-c-only
+ static void yy_pop_state YYFARGS0(void)
+%endif
+%if-c++-only
+ void yyFlexLexer::yy_pop_state()
+%endif
+{
+ M4_YY_DECL_GUTS_VAR();
+ if ( --YY_G(yy_start_stack_ptr) < 0 )
+ YY_FATAL_ERROR( "start-condition stack underflow" );
+
+ BEGIN(YY_G(yy_start_stack)[YY_G(yy_start_stack_ptr)]);
+}
+]])
+
+
+m4_ifdef( [[M4_YY_NO_TOP_STATE]],,
+[[
+%if-c-only
+ static int yy_top_state YYFARGS0(void)
+%endif
+%if-c++-only
+ int yyFlexLexer::yy_top_state()
+%endif
+{
+ M4_YY_DECL_GUTS_VAR();
+ return YY_G(yy_start_stack)[YY_G(yy_start_stack_ptr) - 1];
+}
+]])
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+%if-c-only
+static void yy_fatal_error YYFARGS1(yyconst char*, msg)
+{
+ m4_dnl M4_YY_DECL_GUTS_VAR();
+ (void) fprintf( stderr, "%s\n", msg );
+ exit( YY_EXIT_FAILURE );
+}
+%endif
+%if-c++-only
+void yyFlexLexer::LexerError( yyconst char msg[] )
+{
+ M4_YY_DECL_GUTS_VAR();
+ std::cerr << msg << std::endl;
+ exit( YY_EXIT_FAILURE );
+}
+%endif
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+ do \
+ { \
+ /* Undo effects of setting up yytext. */ \
+ int yyless_macro_arg = (n); \
+ YY_LESS_LINENO(yyless_macro_arg);\
+ yytext[yyleng] = YY_G(yy_hold_char); \
+ YY_G(yy_c_buf_p) = yytext + yyless_macro_arg; \
+ YY_G(yy_hold_char) = *YY_G(yy_c_buf_p); \
+ *YY_G(yy_c_buf_p) = '\0'; \
+ yyleng = yyless_macro_arg; \
+ } \
+ while ( 0 )
+
+
+
+/* Accessor methods (get/set functions) to struct members. */
+
+%if-c-only
+%if-reentrant
+m4_ifdef( [[M4_YY_NO_GET_EXTRA]],,
+[[
+/** Get the user-defined data for this scanner.
+ * M4_YY_DOC_PARAM
+ */
+YY_EXTRA_TYPE yyget_extra YYFARGS0(void)
+{
+ M4_YY_DECL_GUTS_VAR();
+ return yyextra;
+}
+]])
+%endif
+
+m4_ifdef( [[M4_YY_NO_GET_LINENO]],,
+[[
+/** Get the current line number.
+ * M4_YY_DOC_PARAM
+ */
+int yyget_lineno YYFARGS0(void)
+{
+ M4_YY_DECL_GUTS_VAR();
+
+ m4_ifdef( [[M4_YY_REENTRANT]],
+ [[
+ if (! YY_CURRENT_BUFFER)
+ return 0;
+ ]])
+ return yylineno;
+}
+]])
+
+m4_ifdef( [[M4_YY_REENTRANT]],
+[[
+m4_ifdef( [[M4_YY_NO_GET_COLUMN]],,
+[[
+/** Get the current column number.
+ * M4_YY_DOC_PARAM
+ */
+int yyget_column YYFARGS0(void)
+{
+ M4_YY_DECL_GUTS_VAR();
+
+ m4_ifdef( [[M4_YY_REENTRANT]],
+ [[
+ if (! YY_CURRENT_BUFFER)
+ return 0;
+ ]])
+ return yycolumn;
+}
+]])
+]])
+
+m4_ifdef( [[M4_YY_NO_GET_IN]],,
+[[
+/** Get the input stream.
+ * M4_YY_DOC_PARAM
+ */
+FILE *yyget_in YYFARGS0(void)
+{
+ M4_YY_DECL_GUTS_VAR();
+ return yyin;
+}
+]])
+
+m4_ifdef( [[M4_YY_NO_GET_OUT]],,
+[[
+/** Get the output stream.
+ * M4_YY_DOC_PARAM
+ */
+FILE *yyget_out YYFARGS0(void)
+{
+ M4_YY_DECL_GUTS_VAR();
+ return yyout;
+}
+]])
+
+m4_ifdef( [[M4_YY_NO_GET_LENG]],,
+[[
+/** Get the length of the current token.
+ * M4_YY_DOC_PARAM
+ */
+int yyget_leng YYFARGS0(void)
+{
+ M4_YY_DECL_GUTS_VAR();
+ return yyleng;
+}
+]])
+
+/** Get the current token.
+ * M4_YY_DOC_PARAM
+ */
+m4_ifdef( [[M4_YY_NO_GET_TEXT]],,
+[[
+char *yyget_text YYFARGS0(void)
+{
+ M4_YY_DECL_GUTS_VAR();
+ return yytext;
+}
+]])
+
+%if-reentrant
+m4_ifdef( [[M4_YY_NO_SET_EXTRA]],,
+[[
+/** Set the user-defined data. This data is never touched by the scanner.
+ * @param user_defined The data to be associated with this scanner.
+ * M4_YY_DOC_PARAM
+ */
+void yyset_extra YYFARGS1( YY_EXTRA_TYPE ,user_defined)
+{
+ M4_YY_DECL_GUTS_VAR();
+ yyextra = user_defined ;
+}
+]])
+%endif
+
+m4_ifdef( [[M4_YY_NO_SET_LINENO]],,
+[[
+/** Set the current line number.
+ * @param line_number
+ * M4_YY_DOC_PARAM
+ */
+void yyset_lineno YYFARGS1( int ,line_number)
+{
+ M4_YY_DECL_GUTS_VAR();
+
+ m4_ifdef( [[M4_YY_REENTRANT]],
+ [[
+ /* lineno is only valid if an input buffer exists. */
+ if (! YY_CURRENT_BUFFER )
+ yy_fatal_error( "yyset_lineno called with no buffer" M4_YY_CALL_LAST_ARG);
+ ]])
+ yylineno = line_number;
+}
+]])
+
+m4_ifdef( [[M4_YY_REENTRANT]],
+[[
+m4_ifdef( [[M4_YY_NO_SET_COLUMN]],,
+[[
+/** Set the current column.
+ * @param line_number
+ * M4_YY_DOC_PARAM
+ */
+void yyset_column YYFARGS1( int , column_no)
+{
+ M4_YY_DECL_GUTS_VAR();
+
+ m4_ifdef( [[M4_YY_REENTRANT]],
+ [[
+ /* column is only valid if an input buffer exists. */
+ if (! YY_CURRENT_BUFFER )
+ yy_fatal_error( "yyset_column called with no buffer" M4_YY_CALL_LAST_ARG);
+ ]])
+ yycolumn = column_no;
+}
+]])
+]])
+
+
+m4_ifdef( [[M4_YY_NO_SET_IN]],,
+[[
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ * M4_YY_DOC_PARAM
+ * @see yy_switch_to_buffer
+ */
+void yyset_in YYFARGS1( FILE * ,in_str)
+{
+ M4_YY_DECL_GUTS_VAR();
+ yyin = in_str ;
+}
+]])
+
+m4_ifdef( [[M4_YY_NO_SET_OUT]],,
+[[
+void yyset_out YYFARGS1( FILE * ,out_str)
+{
+ M4_YY_DECL_GUTS_VAR();
+ yyout = out_str ;
+}
+]])
+
+
+m4_ifdef( [[M4_YY_NO_GET_DEBUG]],,
+[[
+int yyget_debug YYFARGS0(void)
+{
+ M4_YY_DECL_GUTS_VAR();
+ return yy_flex_debug;
+}
+]])
+
+m4_ifdef( [[M4_YY_NO_SET_DEBUG]],,
+[[
+void yyset_debug YYFARGS1( int ,bdebug)
+{
+ M4_YY_DECL_GUTS_VAR();
+ yy_flex_debug = bdebug ;
+}
+]])
+%endif
+
+%if-reentrant
+/* Accessor methods for yylval and yylloc */
+
+%if-bison-bridge
+m4_ifdef( [[M4_YY_NO_GET_LVAL]],,
+[[
+YYSTYPE * yyget_lval YYFARGS0(void)
+{
+ M4_YY_DECL_GUTS_VAR();
+ return yylval;
+}
+]])
+
+m4_ifdef( [[M4_YY_NO_SET_LVAL]],,
+[[
+void yyset_lval YYFARGS1( YYSTYPE * ,yylval_param)
+{
+ M4_YY_DECL_GUTS_VAR();
+ yylval = yylval_param;
+}
+]])
+
+m4_ifdef( [[<M4_YY_BISON_LLOC>]],
+[[
+ m4_ifdef( [[M4_YY_NO_GET_LLOC]],,
+ [[
+YYLTYPE *yyget_lloc YYFARGS0(void)
+{
+ M4_YY_DECL_GUTS_VAR();
+ return yylloc;
+}
+ ]])
+
+ m4_ifdef( [[M4_YY_NO_SET_LLOC]],,
+ [[
+void yyset_lloc YYFARGS1( YYLTYPE * ,yylloc_param)
+{
+ M4_YY_DECL_GUTS_VAR();
+ yylloc = yylloc_param;
+}
+ ]])
+]])
+
+%endif
+
+
+/* User-visible API */
+
+/* yylex_init is special because it creates the scanner itself, so it is
+ * the ONLY reentrant function that doesn't take the scanner as the last argument.
+ * That's why we explicitly handle the declaration, instead of using our macros.
+ */
+m4_ifdef( [[M4_YY_NO_ANSI_FUNC_DEFS]],
+[[
+int yylex_init( ptr_yy_globals )
+ yyscan_t* ptr_yy_globals;
+]],
+[[
+int yylex_init(yyscan_t* ptr_yy_globals)
+]])
+{
+ if (ptr_yy_globals == NULL){
+ errno = EINVAL;
+ return 1;
+ }
+
+ *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL );
+
+ if (*ptr_yy_globals == NULL){
+ errno = ENOMEM;
+ return 1;
+ }
+
+ /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
+ memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
+
+ return yy_init_globals ( *ptr_yy_globals );
+}
+
+
+/* yylex_init_extra has the same functionality as yylex_init, but follows the
+ * convention of taking the scanner as the last argument. Note however, that
+ * this is a *pointer* to a scanner, as it will be allocated by this call (and
+ * is the reason, too, why this function also must handle its own declaration).
+ * The user defined value in the first argument will be available to yyalloc in
+ * the yyextra field.
+ */
+m4_ifdef( [[M4_YY_NO_ANSI_FUNC_DEFS]],
+[[
+int yylex_init_extra( yy_user_defined, ptr_yy_globals )
+ YY_EXTRA_TYPE yy_user_defined;
+ yyscan_t* ptr_yy_globals;
+]],
+[[
+int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals )
+]])
+{
+ struct yyguts_t dummy_yyguts;
+
+ yyset_extra (yy_user_defined, &dummy_yyguts);
+
+ if (ptr_yy_globals == NULL){
+ errno = EINVAL;
+ return 1;
+ }
+
+ *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
+
+ if (*ptr_yy_globals == NULL){
+ errno = ENOMEM;
+ return 1;
+ }
+
+ /* By setting to 0xAA, we expose bugs in
+ yy_init_globals. Leave at 0x00 for releases. */
+ memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
+
+ yyset_extra (yy_user_defined, *ptr_yy_globals);
+
+ return yy_init_globals ( *ptr_yy_globals );
+}
+
+%endif if-c-only
+
+
+%if-c-only
+static int yy_init_globals YYFARGS0(void)
+{
+ M4_YY_DECL_GUTS_VAR();
+ /* Initialization is the same as for the non-reentrant scanner.
+ * This function is called from yylex_destroy(), so don't allocate here.
+ */
+
+m4_ifdef( [[M4_YY_USE_LINENO]],
+[[
+ m4_ifdef( [[M4_YY_NOT_REENTRANT]],
+ [[
+ /* We do not touch yylineno unless the option is enabled. */
+ yylineno = 1;
+ ]])
+]])
+ YY_G(yy_buffer_stack) = 0;
+ YY_G(yy_buffer_stack_top) = 0;
+ YY_G(yy_buffer_stack_max) = 0;
+ YY_G(yy_c_buf_p) = (char *) 0;
+ YY_G(yy_init) = 0;
+ YY_G(yy_start) = 0;
+
+m4_ifdef( [[M4_YY_HAS_START_STACK_VARS]],
+[[
+ YY_G(yy_start_stack_ptr) = 0;
+ YY_G(yy_start_stack_depth) = 0;
+ YY_G(yy_start_stack) = NULL;
+]])
+
+m4_ifdef( [[M4_YY_USES_REJECT]],
+[[
+ YY_G(yy_state_buf) = 0;
+ YY_G(yy_state_ptr) = 0;
+ YY_G(yy_full_match) = 0;
+ YY_G(yy_lp) = 0;
+]])
+
+m4_ifdef( [[M4_YY_TEXT_IS_ARRAY]],
+[[
+ YY_G(yytext_ptr) = 0;
+ YY_G(yy_more_offset) = 0;
+ YY_G(yy_prev_more_offset) = 0;
+]])
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+ yyin = stdin;
+ yyout = stdout;
+#else
+ yyin = (FILE *) 0;
+ yyout = (FILE *) 0;
+#endif
+
+ /* For future reference: Set errno on error, since we are called by
+ * yylex_init()
+ */
+ return 0;
+}
+%endif
+
+
+%if-c-only SNIP! this currently causes conflicts with the c++ scanner
+/* yylex_destroy is for both reentrant and non-reentrant scanners. */
+int yylex_destroy YYFARGS0(void)
+{
+ M4_YY_DECL_GUTS_VAR();
+
+ /* Pop the buffer stack, destroying each element. */
+ while(YY_CURRENT_BUFFER){
+ yy_delete_buffer( YY_CURRENT_BUFFER M4_YY_CALL_LAST_ARG );
+ YY_CURRENT_BUFFER_LVALUE = NULL;
+ yypop_buffer_state(M4_YY_CALL_ONLY_ARG);
+ }
+
+ /* Destroy the stack itself. */
+ yyfree(YY_G(yy_buffer_stack) M4_YY_CALL_LAST_ARG);
+ YY_G(yy_buffer_stack) = NULL;
+
+m4_ifdef( [[M4_YY_HAS_START_STACK_VARS]],
+[[
+ /* Destroy the start condition stack. */
+ yyfree( YY_G(yy_start_stack) M4_YY_CALL_LAST_ARG );
+ YY_G(yy_start_stack) = NULL;
+]])
+
+m4_ifdef( [[M4_YY_USES_REJECT]],
+[[
+ yyfree ( YY_G(yy_state_buf) M4_YY_CALL_LAST_ARG);
+ YY_G(yy_state_buf) = NULL;
+]])
+
+ /* Reset the globals. This is important in a non-reentrant scanner so the next time
+ * yylex() is called, initialization will occur. */
+ yy_init_globals( M4_YY_CALL_ONLY_ARG);
+
+%if-reentrant
+ /* Destroy the main struct (reentrant only). */
+ yyfree ( yyscanner M4_YY_CALL_LAST_ARG );
+ yyscanner = NULL;
+%endif
+ return 0;
+}
+%endif
+
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+/*
+ * Internal utility routines.
+ */
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+#ifndef yytext_ptr
+static void yy_flex_strncpy YYFARGS3( char*,s1, yyconst char *,s2, int,n)
+{
+ register int i;
+ for ( i = 0; i < n; ++i )
+ s1[i] = s2[i];
+}
+#endif
+]])
+
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen YYFARGS1( yyconst char *,s)
+{
+ register int n;
+ for ( n = 0; s[n]; ++n )
+ ;
+
+ return n;
+}
+#endif
+]])
+
+m4_ifdef( [[M4_YY_NO_FLEX_ALLOC]],,
+[[
+void *yyalloc YYFARGS1( yy_size_t ,size)
+{
+ return (void *) malloc( size );
+}
+]])
+
+m4_ifdef( [[M4_YY_NO_FLEX_REALLOC]],,
+[[
+void *yyrealloc YYFARGS2( void *,ptr, yy_size_t ,size)
+{
+ /* The cast to (char *) in the following accommodates both
+ * implementations that use char* generic pointers, and those
+ * that use void* generic pointers. It works with the latter
+ * because both ANSI C and C++ allow castless assignment from
+ * any pointer type to void*, and deal with argument conversions
+ * as though doing an assignment.
+ */
+ return (void *) realloc( (char *) ptr, size );
+}
+]])
+
+m4_ifdef( [[M4_YY_NO_FLEX_FREE]],,
+[[
+void yyfree YYFARGS1( void *,ptr)
+{
+ free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
+}
+]])
+
+%if-tables-serialization definitions
+m4preproc_include(`tables_shared.c')
+
+static int yytbl_read8 (void *v, struct yytbl_reader * rd)
+{
+ errno = 0;
+ if (fread (v, sizeof (flex_uint8_t), 1, rd->fp) != 1){
+ errno = EIO;
+ return -1;
+ }
+ rd->bread += sizeof(flex_uint8_t);
+ return 0;
+}
+
+static int yytbl_read16 (void *v, struct yytbl_reader * rd)
+{
+ errno = 0;
+ if (fread (v, sizeof (flex_uint16_t), 1, rd->fp) != 1){
+ errno = EIO;
+ return -1;
+ }
+ *((flex_uint16_t *) v) = ntohs (*((flex_uint16_t *) v));
+ rd->bread += sizeof(flex_uint16_t);
+ return 0;
+}
+
+static int yytbl_read32 (void *v, struct yytbl_reader * rd)
+{
+ errno = 0;
+ if (fread (v, sizeof (flex_uint32_t), 1, rd->fp) != 1){
+ errno = EIO;
+ return -1;
+ }
+ *((flex_uint32_t *) v) = ntohl (*((flex_uint32_t *) v));
+ rd->bread += sizeof(flex_uint32_t);
+ return 0;
+}
+
+/** Read the header */
+static int yytbl_hdr_read YYFARGS2(struct yytbl_hdr *, th, struct yytbl_reader *, rd)
+{
+ int bytes;
+ memset (th, 0, sizeof (struct yytbl_hdr));
+
+ if (yytbl_read32 (&(th->th_magic), rd) != 0)
+ return -1;
+
+ if (th->th_magic != YYTBL_MAGIC){
+ yy_fatal_error("bad magic number" /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);
+ return -1;
+ }
+
+ if (yytbl_read32 (&(th->th_hsize), rd) != 0
+ || yytbl_read32 (&(th->th_ssize), rd) != 0
+ || yytbl_read16 (&(th->th_flags), rd) != 0)
+ return -1;
+
+ /* Sanity check on header size. Greater than 1k suggests some funny business. */
+ if (th->th_hsize < 16 || th->th_hsize > 1024){
+ yy_fatal_error("insane header size detected" /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);
+ return -1;
+ }
+
+ /* Allocate enough space for the version and name fields */
+ bytes = th->th_hsize - 14;
+ th->th_version = (char *) yyalloc (bytes M4_YY_CALL_LAST_ARG);
+ if ( ! th->th_version )
+ YY_FATAL_ERROR( "out of dynamic memory in yytbl_hdr_read()" );
+
+ /* we read it all into th_version, and point th_name into that data */
+ if (fread (th->th_version, 1, bytes, rd->fp) != bytes){
+ errno = EIO;
+ yyfree(th->th_version M4_YY_CALL_LAST_ARG);
+ th->th_version = NULL;
+ return -1;
+ }
+ else
+ rd->bread += bytes;
+
+ th->th_name = th->th_version + strlen (th->th_version) + 1;
+ return 0;
+}
+
+/** lookup id in the dmap list.
+ * @param dmap pointer to first element in list
+ * @return NULL if not found.
+ */
+static struct yytbl_dmap *yytbl_dmap_lookup YYFARGS2(struct yytbl_dmap *, dmap,
+ int, id)
+{
+ while (dmap->dm_id)
+ if (dmap->dm_id == id)
+ return dmap;
+ else
+ dmap++;
+ return NULL;
+}
+
+/** Read a table while mapping its contents to the local array.
+ * @param dmap used to performing mapping
+ * @return 0 on success
+ */
+static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_reader*, rd)
+{
+ struct yytbl_data td;
+ struct yytbl_dmap *transdmap=0;
+ int len, i, rv, inner_loop_count;
+ void *p=0;
+
+ memset (&td, 0, sizeof (struct yytbl_data));
+
+ if (yytbl_read16 (&td.td_id, rd) != 0
+ || yytbl_read16 (&td.td_flags, rd) != 0
+ || yytbl_read32 (&td.td_hilen, rd) != 0
+ || yytbl_read32 (&td.td_lolen, rd) != 0)
+ return -1;
+
+ /* Lookup the map for the transition table so we have it in case we need it
+ * inside the loop below. This scanner might not even have a transition
+ * table, which is ok.
+ */
+ transdmap = yytbl_dmap_lookup (dmap, YYTD_ID_TRANSITION M4_YY_CALL_LAST_ARG);
+
+ if ((dmap = yytbl_dmap_lookup (dmap, td.td_id M4_YY_CALL_LAST_ARG)) == NULL){
+ yy_fatal_error("table id not found in map." /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);
+ return -1;
+ }
+
+ /* Allocate space for table.
+ * The --full yy_transition table is a special case, since we
+ * need the dmap.dm_sz entry to tell us the sizeof the individual
+ * struct members.
+ */
+ {
+ size_t bytes;
+
+ if ((td.td_flags & YYTD_STRUCT))
+ bytes = sizeof(struct yy_trans_info) * td.td_lolen * (td.td_hilen ? td.td_hilen : 1);
+ else
+ bytes = td.td_lolen * (td.td_hilen ? td.td_hilen : 1) * dmap->dm_sz;
+
+ if(M4_YY_TABLES_VERIFY)
+ /* We point to the array itself */
+ p = dmap->dm_arr;
+ else
+ /* We point to the address of a pointer. */
+ *dmap->dm_arr = p = (void *) yyalloc (bytes M4_YY_CALL_LAST_ARG);
+ if ( ! p )
+ YY_FATAL_ERROR( "out of dynamic memory in yytbl_data_load()" );
+ }
+
+ /* If it's a struct, we read 2 integers to get one element */
+ if ((td.td_flags & YYTD_STRUCT) != 0)
+ inner_loop_count = 2;
+ else
+ inner_loop_count = 1;
+
+ /* read and map each element.
+ * This loop iterates once for each element of the td_data array.
+ * Notice that we increment 'i' in the inner loop.
+ */
+ len = yytbl_calc_total_len (&td);
+ for (i = 0; i < len; ){
+ int j;
+
+
+ /* This loop really executes exactly 1 or 2 times.
+ * The second time is to handle the second member of the
+ * YYTD_STRUCT for the yy_transition array.
+ */
+ for (j = 0; j < inner_loop_count; j++, i++) {
+ flex_int32_t t32;
+
+ /* read into t32 no matter what the real size is. */
+ {
+ flex_int16_t t16;
+ flex_int8_t t8;
+
+ switch (YYTDFLAGS2BYTES (td.td_flags)) {
+ case sizeof (flex_int32_t):
+ rv = yytbl_read32 (&t32, rd);
+ break;
+ case sizeof (flex_int16_t):
+ rv = yytbl_read16 (&t16, rd);
+ t32 = t16;
+ break;
+ case sizeof (flex_int8_t):
+ rv = yytbl_read8 (&t8, rd);
+ t32 = t8;
+ break;
+ default:
+ yy_fatal_error("invalid td_flags" /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);
+ return -1;
+ }
+ }
+ if (rv != 0)
+ return -1;
+
+ /* copy into the deserialized array... */
+
+ if ((td.td_flags & YYTD_STRUCT)) {
+ /* t32 is the j'th member of a two-element struct. */
+ void *v;
+
+ v = j == 0 ? &(((struct yy_trans_info *) p)->yy_verify)
+ : &(((struct yy_trans_info *) p)->yy_nxt);
+
+ switch (dmap->dm_sz) {
+ case sizeof (flex_int32_t):
+ if (M4_YY_TABLES_VERIFY){
+ if( ((flex_int32_t *) v)[0] != (flex_int32_t) t32)
+ yy_fatal_error("tables verification failed at YYTD_STRUCT flex_int32_t" M4_YY_CALL_LAST_ARG);
+ }else
+ ((flex_int32_t *) v)[0] = (flex_int32_t) t32;
+ break;
+ case sizeof (flex_int16_t):
+ if (M4_YY_TABLES_VERIFY ){
+ if(((flex_int16_t *) v)[0] != (flex_int16_t) t32)
+ yy_fatal_error("tables verification failed at YYTD_STRUCT flex_int16_t" M4_YY_CALL_LAST_ARG);
+ }else
+ ((flex_int16_t *) v)[0] = (flex_int16_t) t32;
+ break;
+ case sizeof(flex_int8_t):
+ if (M4_YY_TABLES_VERIFY ){
+ if( ((flex_int8_t *) v)[0] != (flex_int8_t) t32)
+ yy_fatal_error("tables verification failed at YYTD_STRUCT flex_int8_t" M4_YY_CALL_LAST_ARG);
+ }else
+ ((flex_int8_t *) v)[0] = (flex_int8_t) t32;
+ break;
+ default:
+ yy_fatal_error("invalid dmap->dm_sz for struct" /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);
+ return -1;
+ }
+
+ /* if we're done with j, increment p */
+ if (j == 1)
+ p = (struct yy_trans_info *) p + 1;
+ }
+ else if ((td.td_flags & YYTD_PTRANS)) {
+ /* t32 is an index into the transition array. */
+ struct yy_trans_info *v;
+
+
+ if (!transdmap){
+ yy_fatal_error("transition table not found" /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);
+ return -1;
+ }
+
+ if( M4_YY_TABLES_VERIFY)
+ v = &(((struct yy_trans_info *) (transdmap->dm_arr))[t32]);
+ else
+ v = &((*((struct yy_trans_info **) (transdmap->dm_arr)))[t32]);
+
+ if(M4_YY_TABLES_VERIFY ){
+ if( ((struct yy_trans_info **) p)[0] != v)
+ yy_fatal_error("tables verification failed at YYTD_PTRANS" M4_YY_CALL_LAST_ARG);
+ }else
+ ((struct yy_trans_info **) p)[0] = v;
+
+ /* increment p */
+ p = (struct yy_trans_info **) p + 1;
+ }
+ else {
+ /* t32 is a plain int. copy data, then incrememnt p. */
+ switch (dmap->dm_sz) {
+ case sizeof (flex_int32_t):
+ if(M4_YY_TABLES_VERIFY ){
+ if( ((flex_int32_t *) p)[0] != (flex_int32_t) t32)
+ yy_fatal_error("tables verification failed at flex_int32_t" M4_YY_CALL_LAST_ARG);
+ }else
+ ((flex_int32_t *) p)[0] = (flex_int32_t) t32;
+ p = ((flex_int32_t *) p) + 1;
+ break;
+ case sizeof (flex_int16_t):
+ if(M4_YY_TABLES_VERIFY ){
+ if( ((flex_int16_t *) p)[0] != (flex_int16_t) t32)
+ yy_fatal_error("tables verification failed at flex_int16_t" M4_YY_CALL_LAST_ARG);
+ }else
+ ((flex_int16_t *) p)[0] = (flex_int16_t) t32;
+ p = ((flex_int16_t *) p) + 1;
+ break;
+ case sizeof (flex_int8_t):
+ if(M4_YY_TABLES_VERIFY ){
+ if( ((flex_int8_t *) p)[0] != (flex_int8_t) t32)
+ yy_fatal_error("tables verification failed at flex_int8_t" M4_YY_CALL_LAST_ARG);
+ }else
+ ((flex_int8_t *) p)[0] = (flex_int8_t) t32;
+ p = ((flex_int8_t *) p) + 1;
+ break;
+ default:
+ yy_fatal_error("invalid dmap->dm_sz for plain int" /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);
+ return -1;
+ }
+ }
+ }
+
+ }
+
+ /* Now eat padding. */
+ {
+ int pad;
+ pad = yypad64(rd->bread);
+ while(--pad >= 0){
+ flex_int8_t t8;
+ if(yytbl_read8(&t8,rd) != 0)
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+%define-yytables The name for this specific scanner's tables.
+
+/* Find the key and load the DFA tables from the given stream. */
+static int yytbl_fload YYFARGS2(FILE *, fp, const char *, key)
+{
+ int rv=0;
+ struct yytbl_hdr th;
+ struct yytbl_reader rd;
+
+ rd.fp = fp;
+ th.th_version = NULL;
+
+ /* Keep trying until we find the right set of tables or end of file. */
+ while (!feof(rd.fp)) {
+ rd.bread = 0;
+ if (yytbl_hdr_read (&th, &rd M4_YY_CALL_LAST_ARG) != 0){
+ rv = -1;
+ goto return_rv;
+ }
+
+ /* A NULL key means choose the first set of tables. */
+ if (key == NULL)
+ break;
+
+ if (strcmp(th.th_name,key) != 0){
+ /* Skip ahead to next set */
+ fseek(rd.fp, th.th_ssize - th.th_hsize, SEEK_CUR);
+ yyfree(th.th_version M4_YY_CALL_LAST_ARG);
+ th.th_version = NULL;
+ }
+ else
+ break;
+ }
+
+ while (rd.bread < th.th_ssize){
+ /* Load the data tables */
+ if(yytbl_data_load (yydmap,&rd M4_YY_CALL_LAST_ARG) != 0){
+ rv = -1;
+ goto return_rv;
+ }
+ }
+
+return_rv:
+ if(th.th_version){
+ yyfree(th.th_version M4_YY_CALL_LAST_ARG);
+ th.th_version = NULL;
+ }
+
+ return rv;
+}
+
+/** Load the DFA tables for this scanner from the given stream. */
+int yytables_fload YYFARGS1(FILE *, fp)
+{
+
+ if( yytbl_fload(fp, YYTABLES_NAME M4_YY_CALL_LAST_ARG) != 0)
+ return -1;
+ return 0;
+}
+
+/** Destroy the loaded tables, freeing memory, etc.. */
+int yytables_destroy YYFARGS0(void)
+{
+ struct yytbl_dmap *dmap=0;
+
+ if(!M4_YY_TABLES_VERIFY){
+ /* Walk the dmap, freeing the pointers */
+ for(dmap=yydmap; dmap->dm_id; dmap++) {
+ void * v;
+ v = dmap->dm_arr;
+ if(v && *(char**)v){
+ yyfree(*(char**)v M4_YY_CALL_LAST_ARG);
+ *(char**)v = NULL;
+ }
+ }
+ }
+
+ return 0;
+}
+
+/* end table serialization code definitions */
+%endif
+
+
+m4_ifdef([[M4_YY_MAIN]], [[
+int main M4_YY_PARAMS(void);
+
+int main ()
+{
+
+%if-reentrant
+ yyscan_t lexer;
+ yylex_init(&lexer);
+ yylex( lexer );
+ yylex_destroy( lexer);
+
+%endif
+%if-not-reentrant
+ yylex();
+%endif
+
+ return 0;
+}
+]])
+
+%ok-for-header
+m4_ifdef( [[M4_YY_IN_HEADER]],
+[[
+#undef YY_NEW_FILE
+#undef YY_FLUSH_BUFFER
+#undef yy_set_bol
+#undef yy_new_buffer
+#undef yy_set_interactive
+#undef YY_DO_BEFORE_ACTION
+
+#ifdef YY_DECL_IS_OURS
+#undef YY_DECL_IS_OURS
+#undef YY_DECL
+#endif
+]])
diff --git a/tools/mhmake/src/flexint.h b/tools/mhmake/src/flexint.h
new file mode 100644
index 000000000..673aa1757
--- /dev/null
+++ b/tools/mhmake/src/flexint.h
@@ -0,0 +1,63 @@
+/* flex integer type definitions */
+
+#ifndef FLEXINT_H
+#define FLEXINT_H
+
+/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
+
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types.
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
+#include <inttypes.h>
+typedef int8_t flex_int8_t;
+typedef uint8_t flex_uint8_t;
+typedef int16_t flex_int16_t;
+typedef uint16_t flex_uint16_t;
+typedef int32_t flex_int32_t;
+typedef uint32_t flex_uint32_t;
+#else
+typedef signed char flex_int8_t;
+typedef short int flex_int16_t;
+typedef int flex_int32_t;
+typedef unsigned char flex_uint8_t;
+typedef unsigned short int flex_uint16_t;
+typedef unsigned int flex_uint32_t;
+#endif /* ! C99 */
+
+/* Limits of integral types. */
+#ifndef INT8_MIN
+#define INT8_MIN (-128)
+#endif
+#ifndef INT16_MIN
+#define INT16_MIN (-32767-1)
+#endif
+#ifndef INT32_MIN
+#define INT32_MIN (-2147483647-1)
+#endif
+#ifndef INT8_MAX
+#define INT8_MAX (127)
+#endif
+#ifndef INT16_MAX
+#define INT16_MAX (32767)
+#endif
+#ifndef INT32_MAX
+#define INT32_MAX (2147483647)
+#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX (255U)
+#endif
+#ifndef UINT16_MAX
+#define UINT16_MAX (65535U)
+#endif
+#ifndef UINT32_MAX
+#define UINT32_MAX (4294967295U)
+#endif
+
+
+#endif /* ! FLEXINT_H */
diff --git a/tools/mhmake/src/flexlexer.h b/tools/mhmake/src/flexlexer.h
new file mode 100644
index 000000000..33132dc93
--- /dev/null
+++ b/tools/mhmake/src/flexlexer.h
@@ -0,0 +1,271 @@
+// -*-C++-*-
+// FlexLexer.h -- define interfaces for lexical analyzer classes generated
+// by flex
+
+// Copyright (c) 1993 The Regents of the University of California.
+// All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Kent Williams and Tom Epperly.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+
+// Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+
+// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+// IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE.
+
+// This file defines FlexLexer, an abstract class which specifies the
+// external interface provided to flex C++ lexer objects, and yyFlexLexer,
+// which defines a particular lexer class.
+//
+// If you want to create multiple lexer classes, you use the -P flag
+// to rename each yyFlexLexer to some other xxFlexLexer. You then
+// include <FlexLexer.h> in your other sources once per lexer class:
+//
+// #undef yyFlexLexer
+// #define yyFlexLexer xxFlexLexer
+// #include <FlexLexer.h>
+//
+// #undef yyFlexLexer
+// #define yyFlexLexer zzFlexLexer
+// #include <FlexLexer.h>
+// ...
+
+#ifndef __FLEX_LEXER_H
+// Never included before - need to define base class.
+#define __FLEX_LEXER_H
+class mhmakefileparser;
+
+#include "refptr.h"
+
+struct YYSTYPE
+{
+ string theString;
+ int ival;
+};
+typedef struct YYSTYPE YYSTYPE;
+
+#include "location.hh"
+
+#include <iostream>
+# ifndef FLEX_STD
+# define FLEX_STD std::
+# endif
+
+extern "C++" {
+
+struct yy_buffer_state;
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+typedef int yy_state_type;
+
+class FlexLexer {
+public:
+ FlexLexer() : m_BraceIndent(0) {}
+ virtual ~FlexLexer() { }
+
+ const char* YYText() const { return yytext; }
+ int YYLeng() const { return yyleng; }
+
+ virtual void
+ yy_switch_to_buffer( struct yy_buffer_state* new_buffer ) = 0;
+ virtual struct yy_buffer_state*
+ yy_create_buffer( FLEX_STD istream* s, int size ) = 0;
+ virtual void yy_delete_buffer( struct yy_buffer_state* b ) = 0;
+ virtual void yyrestart( FLEX_STD istream* s ) = 0;
+
+ virtual int yylex(YYSTYPE *yylval, yy::location* yylloc) = 0;
+
+ // Switch to new input/output streams. A nil stream pointer
+ // indicates "keep the current one".
+ virtual void switch_streams( FLEX_STD istream* new_in = 0,
+ FLEX_STD ostream* new_out = 0 ) = 0;
+
+ int debug() const { return yy_flex_debug; }
+ void set_debug( int flag ) { yy_flex_debug = flag; }
+
+protected:
+ char* yytext;
+ int yyleng;
+ int yy_flex_debug; // only has effect with -d or "%option debug"
+
+public:
+
+ struct INSTACK
+ {
+ YY_BUFFER_STATE m_BufferState;
+ ifstream m_Stream;
+ string m_FileName;
+ yy::location yylloc;
+ INSTACK(YY_BUFFER_STATE BufferState, const string &FileToOpen, const string &PrevFileName, yy::location *pLocInfo) :
+ m_BufferState(BufferState),
+ m_FileName(PrevFileName),
+ yylloc(*pLocInfo),
+ m_Stream(FileToOpen.c_str(), ios_base::in)
+ {
+ }
+ bool fail() const
+ {
+ return m_Stream.fail();
+ }
+ ifstream *GetStream()
+ {
+ return &m_Stream;
+ }
+ };
+ class mystack: public iterstack<INSTACK*>
+ {
+ public:
+ ~mystack()
+ {
+ iterator It=begin();
+ while (It!=end())
+ {
+ delete *It;
+ It++;
+ }
+ }
+ void pop()
+ {
+ INSTACK *pToRemove=top();
+ iterstack<INSTACK*>::pop();
+ delete pToRemove; /* Buffer does not need to be deleted because the lexer does this when it calls the pop */
+ }
+ };
+ int m_BraceIndent;
+ size_t m_IndentSkip;
+ iterstack<int> m_IndentStack;
+ bool m_IgnoreIncludeError;
+ string m_InputFileName;
+ string m_curtoken;
+ mystack m_IncludeStack;
+ mhmakefileparser *m_pMakefileParser;
+ mhmakefileparser *GetParser(void)
+ {
+ return m_pMakefileParser;
+ }
+public:
+ string &GetInputFilename(void)
+ {
+ return m_InputFileName;
+ }
+};
+
+}
+
+#if defined(yyFlexLexer) || ! defined(yyFlexLexerOnce)
+// Either this is the first time through (yyFlexLexerOnce not defined),
+// or this is a repeated include to define a different flavor of
+// yyFlexLexer, as discussed in the flex manual.
+#define yyFlexLexerOnce
+
+extern "C++" {
+
+class mhmakeFlexLexer : public FlexLexer {
+public:
+ // arg_yyin and arg_yyout default to the cin and cout, but we
+ // only make that assignment when initializing in yylex().
+ mhmakeFlexLexer( FLEX_STD istream* arg_yyin = 0, FLEX_STD ostream* arg_yyout = 0 );
+
+ virtual ~mhmakeFlexLexer();
+
+ void yy_switch_to_buffer( struct yy_buffer_state* new_buffer );
+ struct yy_buffer_state* yy_create_buffer( FLEX_STD istream* s, int size );
+ void yy_delete_buffer( struct yy_buffer_state* b );
+ void yyrestart( FLEX_STD istream* s );
+
+ void yypush_buffer_state( struct yy_buffer_state* new_buffer );
+ void yypop_buffer_state();
+
+ virtual int yylex(YYSTYPE* yylval, yy::location* yylloc);
+ virtual void switch_streams( FLEX_STD istream* new_in, FLEX_STD ostream* new_out = 0 );
+
+protected:
+ virtual int LexerInput( char* buf, int max_size );
+ virtual void LexerOutput( const char* buf, int size );
+ virtual void LexerError( const char* msg );
+
+ void yyunput( int c, char* buf_ptr );
+ int yyinput();
+ int yywrap();
+
+ void yy_load_buffer_state();
+ void yy_init_buffer( struct yy_buffer_state* b, FLEX_STD istream* s );
+ void yy_flush_buffer( struct yy_buffer_state* b );
+
+ int yy_start_stack_ptr;
+ int yy_start_stack_depth;
+ int* yy_start_stack;
+
+ void yy_push_state( int new_state );
+ void yy_pop_state();
+ int yy_top_state();
+
+ yy_state_type yy_get_previous_state();
+ yy_state_type yy_try_NUL_trans( yy_state_type current_state );
+ int yy_get_next_buffer();
+
+ FLEX_STD istream* yyin; // input source for default LexerInput
+ FLEX_STD ostream* yyout; // output sink for default LexerOutput
+
+ // yy_hold_char holds the character lost when yytext is formed.
+ char yy_hold_char;
+
+ // Number of characters read into yy_ch_buf.
+ int yy_n_chars;
+
+ // Points to current character in buffer.
+ char* yy_c_buf_p;
+
+ int yy_init; // whether we need to initialize
+ int yy_start; // start state number
+
+ // Flag which is used to allow yywrap()'s to do buffer switches
+ // instead of setting up a fresh yyin. A bit of a hack ...
+ int yy_did_buffer_switch_on_eof;
+
+
+ size_t yy_buffer_stack_top; /**< index of top of stack. */
+ size_t yy_buffer_stack_max; /**< capacity of stack. */
+ struct yy_buffer_state ** yy_buffer_stack; /**< Stack as an array. */
+ void yyensure_buffer_stack(void);
+
+ // The following are not always needed, but may be depending
+ // on use of certain flex features (like REJECT or yymore()).
+
+ yy_state_type yy_last_accepting_state;
+ char* yy_last_accepting_cpos;
+
+ yy_state_type* yy_state_buf;
+ yy_state_type* yy_state_ptr;
+
+ char* yy_full_match;
+ int* yy_full_state;
+ int yy_full_lp;
+
+ int yy_lp;
+ int yy_looking_for_trail_begin;
+
+ int yy_more_flag;
+ int yy_more_len;
+ int yy_more_offset;
+ int yy_prev_more_offset;
+};
+
+}
+
+#endif // yyFlexLexer || ! yyFlexLexerOnce
+
+#endif // FLEXLEXER_H
diff --git a/tools/mhmake/src/functions.cpp b/tools/mhmake/src/functions.cpp
new file mode 100644
index 000000000..cd08dd957
--- /dev/null
+++ b/tools/mhmake/src/functions.cpp
@@ -0,0 +1,1002 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+#include "stdafx.h"
+
+#include "util.h"
+#include "mhmakefileparser.h"
+#include "rule.h"
+
+static const string s_QuoteString("\"");
+
+funcdef mhmakefileparser::m_FunctionsDef[]= {
+ {"filter", &mhmakefileparser::f_filter}
+ ,{"call", &mhmakefileparser::f_call}
+ ,{"subst", &mhmakefileparser::f_subst}
+ ,{"patsubst", &mhmakefileparser::f_patsubst}
+ ,{"concat", &mhmakefileparser::f_concat}
+ ,{"if", &mhmakefileparser::f_if}
+ ,{"findstring", &mhmakefileparser::f_findstring}
+ ,{"firstword", &mhmakefileparser::f_firstword}
+ ,{"wildcard", &mhmakefileparser::f_wildcard}
+ ,{"basename", &mhmakefileparser::f_basename}
+ ,{"notdir", &mhmakefileparser::f_notdir}
+ ,{"dir", &mhmakefileparser::f_dir}
+ ,{"shell", &mhmakefileparser::f_shell}
+ ,{"relpath", &mhmakefileparser::f_relpath}
+ ,{"realpath", &mhmakefileparser::f_realpath}
+ ,{"toupper", &mhmakefileparser::f_toupper}
+ ,{"tolower", &mhmakefileparser::f_tolower}
+ ,{"exist", &mhmakefileparser::f_exist}
+ ,{"filesindirs",&mhmakefileparser::f_filesindirs}
+ ,{"fullname" ,&mhmakefileparser::f_fullname}
+ ,{"addprefix" ,&mhmakefileparser::f_addprefix}
+ ,{"addsuffix" ,&mhmakefileparser::f_addsuffix}
+ ,{"filter-out" ,&mhmakefileparser::f_filterout}
+ ,{"word" ,&mhmakefileparser::f_word}
+ ,{"words" ,&mhmakefileparser::f_words}
+ ,{"strip" ,&mhmakefileparser::f_strip}
+ ,{"which" ,&mhmakefileparser::f_which}
+ ,{"foreach" ,&mhmakefileparser::f_foreach}
+ ,{"eval" ,&mhmakefileparser::f_eval}
+ ,{"sort" ,&mhmakefileparser::f_sort}
+ ,{"error" ,&mhmakefileparser::f_error}
+ ,{"info" ,&mhmakefileparser::f_info}
+ ,{"warning" ,&mhmakefileparser::f_warning}
+};
+
+map<string,function_f> mhmakefileparser::m_Functions;
+
+bool mhmakefileparser::m_FunctionsInitialised;
+
+inline const char *NextCharExprItem(const char *pTmp,string &Output,char Char)
+{
+ const char *pStart=pTmp;
+ while (*pTmp)
+ {
+ char CurChar=*pTmp;
+ if (CurChar==Char)
+ break;
+ pTmp++;
+ if (CurChar=='$' && *pTmp!='$')
+ pTmp=SkipMakeExpr(pTmp);
+ }
+
+ const char *pStop=pTmp;
+ if (*pTmp) pTmp++;
+
+ while (pStart<pStop && (*pStart==' ' || *pStart == '\t')) pStart++;
+ pStop--;
+ while (pStart<=pStop && (*pStop==' ' || *pStop == '\t')) pStop--;
+ pStop++;
+
+ Output=string(pStart,pStop);
+ return pTmp;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Loop over a list of filenames
+static string IterList(const string &List,string (*iterFunc)(const string &FileName,void *pArg), void *pArg=NULL)
+{
+ const char *pTmp=List.c_str();
+ string Ret=g_EmptyString;
+ bool first=true;
+ while (*pTmp)
+ {
+ if (!first)
+ {
+ Ret+=g_SpaceString;
+ }
+ else
+ {
+ first=false;
+ }
+ string Item;
+ pTmp=NextItem(pTmp,Item);
+ Item=iterFunc(Item,pArg);
+ if (Item.empty())
+ first=true; // Do not add space the next iteration
+ else
+ Ret+=Item;
+ }
+
+ return Ret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+void mhmakefileparser::InitFuncs(void)
+{
+ for (int i=0; i<sizeof(m_FunctionsDef)/sizeof(funcdef); i++)
+ m_Functions[m_FunctionsDef[i].szFuncName]=m_FunctionsDef[i].pFunc;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+static string TrimString(const string &Input)
+{
+ unsigned Start=0;
+ const char *pInput=Input.c_str();
+ while (strchr(" \t",pInput[Start])) Start++;
+ if (Start>=Input.size())
+ return g_EmptyString;
+ size_t Stop=Input.size()-1;
+ while (strchr(" \t",pInput[Stop])) Stop--;
+ return Input.substr(Start,Stop-Start+1);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+static string filter(const string &FileName, void *pvFilter)
+{
+ string *pFilter=(string*)pvFilter;
+ if (PercentMatchList(UnquoteFileName(FileName),*pFilter))
+ return FileName;
+ else
+ return g_EmptyString;
+}
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_filter(const string & ArgIn) const
+{
+ string Arg=ExpandExpression(ArgIn);
+ size_t ipos=Arg.find(',');
+ #ifdef _DEBUG
+ if (ipos==string::npos) {
+ throw string("filter func should have 2 arguments: ")+Arg;
+ }
+ #endif
+ string Str=TrimString(Arg.substr(0,ipos));
+ string List=Arg.substr(ipos+1);
+
+ if (Str.empty())
+ return Str;
+
+ return IterList(List,filter,(void*)&Str);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_filterout(const string & ArgIn) const
+{
+ string Arg=ExpandExpression(ArgIn);
+ size_t ipos=Arg.find(',');
+ #ifdef _DEBUG
+ if (ipos==string::npos) {
+ throw string("filter func should have 2 arguments: ")+Arg;
+ }
+ #endif
+ string Str=TrimString(Arg.substr(0,ipos));
+ string List=Arg.substr(ipos+1);
+
+ if (Str.empty())
+ return Str;
+
+ bool First=true;
+ string Ret;
+ char *pTok=strtok((char*)List.c_str()," \t"); // doing this is changing string, so this is very dangerous
+ while (pTok)
+ {
+ string Item(pTok);
+ if (!PercentMatchList(Item,Str))
+ {
+ if (First)
+ {
+ Ret=Item;
+ First=false;
+ }
+ else
+ {
+ Ret+=g_SpaceString;
+ Ret+=Item;
+ }
+ }
+ pTok=strtok(NULL," \t");
+ }
+ return Ret;
+}
+
+class varstack_t : public vector< pair<bool,string> >
+{
+ mhmakefileparser *m_pMakefileParser;
+public:
+ varstack_t(mhmakefileparser *pMakefileParser)
+ : m_pMakefileParser(pMakefileParser)
+ {
+ }
+ void PushArg(int ArgNr, const string &Value)
+ {
+ char szVarName[10];
+ ::sprintf(szVarName,"%d",ArgNr);
+ string VarName(szVarName);
+ string VarVal;
+ if (m_pMakefileParser->GetVariable(VarName,VarVal))
+ vector< pair<bool,string> >::push_back(pair<bool,string>(true, VarVal));
+ else
+ vector< pair<bool,string> >::push_back(pair<bool,string>(false,g_EmptyString));
+ m_pMakefileParser->SetVariable(VarName,Value);
+ }
+ void RestoreArgs()
+ {
+ vector< pair<bool,string> >::iterator It=begin();
+ int ArgNr=0;
+ while (It!=end())
+ {
+ char szVarName[10];
+ ::sprintf(szVarName,"%d",ArgNr);
+ string VarName(szVarName);
+ if (It->first)
+ m_pMakefileParser->SetVariable(VarName, It->second);
+ else
+ {
+ m_pMakefileParser->DeleteVariable(VarName);
+ }
+ It++;
+ ArgNr++;
+ }
+ }
+};
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_call(const string & ArgIn) const
+{
+ string Arg=ExpandExpression(ArgIn);
+ varstack_t VarStack((mhmakefileparser*)this);
+ const char *pTmp=Arg.c_str();
+
+ bool LastCharIsComma=Arg[Arg.length()-1]==',';
+
+ string Func;
+ pTmp=NextCharItem(pTmp,Func,',');
+ map<string,string>::const_iterator pFunc=m_Variables.find(Func);
+ #ifdef _DEBUG
+ if (pFunc==m_Variables.end())
+ {
+ throw string("call to non existing function ")+Func;
+ }
+ #endif
+ // the 0 argument is the function itself
+ VarStack.PushArg(0,Func);
+
+ Func=pFunc->second;
+ int i=0;
+ while (*pTmp || LastCharIsComma) {
+ if (!*pTmp)
+ LastCharIsComma=false; /* To stop the loop */
+ string Repl;
+ pTmp=NextCharItem(pTmp,Repl,',');
+ i++;
+ VarStack.PushArg(i,Repl);
+ }
+
+ string Ret=ExpandExpression(Func);
+
+ VarStack.RestoreArgs();
+
+ return Ret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_subst(const string & ArgIn) const
+{
+ string Arg=ExpandExpression(ArgIn);
+ const char *pTmp=Arg.c_str();
+
+ string FromString;
+ pTmp=NextCharItem(pTmp,FromString,',');
+ #ifdef _DEBUG
+ if (!*pTmp) {
+ throw string("Wrong number of arguments in function subst");
+ }
+ #endif
+
+ string ToString;
+ pTmp=NextCharItem(pTmp,ToString,',');
+ string Text;
+ NextCharItem(pTmp,Text,',');
+
+ if (FromString.empty())
+ return Text;
+
+ string Ret;
+ size_t Pos=Text.find(FromString);
+ size_t PrevPos=0;
+ while (Pos!=string::npos)
+ {
+ Ret+=Text.substr(PrevPos,Pos-PrevPos);
+ Ret+=ToString;
+ PrevPos=Pos+FromString.length();
+ Pos=Text.find(FromString,PrevPos);
+ }
+ Ret+=Text.substr(PrevPos);
+
+ return Ret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_patsubst(const string & ArgIn) const
+{
+ string Arg=ExpandExpression(ArgIn);
+ const char *pTmp=Arg.c_str();
+
+ string FromString;
+ pTmp=NextCharItem(pTmp,FromString,',');
+ #ifdef _DEBUG
+ if (!*pTmp) {
+ throw string("Wrong number of arguments in function subst");
+ }
+ #endif
+
+ string ToString;
+ pTmp=NextCharItem(pTmp,ToString,',');
+ string Text;
+ NextCharItem(pTmp,Text,',');
+
+ if (FromString.empty())
+ return Text;
+
+ return Substitute(Text,FromString,ToString);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_concat(const string & ArgIn) const
+{
+ string Arg=ExpandExpression(ArgIn);
+ const char *pTmp=Arg.c_str();
+
+ string JoinString;
+ pTmp=NextCharItem(pTmp,JoinString,',');
+
+ string List;
+ pTmp=NextCharItem(pTmp,List,',');
+
+ if (JoinString.empty() && List.empty())
+ {
+ /* assume as $(concat ,,items) construct */
+ JoinString=",";
+ pTmp=NextCharItem(pTmp,List,',');
+ }
+
+ bool First=true;
+ string Ret;
+ char *pTok=strtok((char*)List.c_str()," \t"); // doing this is changing string, so this is very dangerous
+ while (pTok)
+ {
+ if (First)
+ {
+ First=false;
+ }
+ else
+ {
+ Ret+=JoinString;
+ }
+ Ret+=pTok;
+ pTok=strtok(NULL," \t");
+ }
+ return Ret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Make sure to only expand the expression which the condition is true for
+string mhmakefileparser::f_if(const string & Arg) const
+{
+ const char *pTmp=Arg.c_str();
+
+ string Cond;
+ pTmp=NextCharExprItem(pTmp,Cond,',');
+ Cond=ExpandExpression(Cond);
+ string Ret;
+ if (Cond.empty())
+ {
+ pTmp=NextCharExprItem(pTmp,Ret,',');
+ }
+ NextCharExprItem(pTmp,Ret,',');
+ return ExpandExpression(Ret);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_findstring(const string & ArgIn) const
+{
+ string Arg=ExpandExpression(ArgIn);
+ const char *pTmp=Arg.c_str();
+ string find;
+ pTmp=NextCharItem(pTmp,find,',');
+ string instr;
+ NextCharItem(pTmp,instr,',');
+
+ if (instr.find(find) != instr.npos)
+ return find;
+ else
+ return g_EmptyString;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_firstword(const string & ArgIn) const
+{
+ string Arg=ExpandExpression(ArgIn);
+ string FirstWord;
+ NextItem(Arg.c_str(),FirstWord);
+ return FirstWord;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+static string wildcard(const string &Arg, void *pvVar)
+{
+ mhmakefileparser *pParser=(mhmakefileparser*)pvVar;
+
+ fileinfo *pFileSpec=GetFileInfo(Arg,pParser->GetMakeDir()); /* Use GetFileInfo to make the relative path absolute */
+ fileinfo *pDir=pFileSpec->GetDir();
+#ifdef WIN32
+ struct _finddata_t FileInfo;
+ intptr_t hFile=_findfirst(pFileSpec->GetFullFileName().c_str(),&FileInfo);
+ if (hFile==-1)
+ return g_EmptyString;
+
+ string Ret=g_EmptyString;
+
+ /* We have to verify with percentmatch since the find functions *.ext also matches the functions *.extbrol */
+ string CheckSpec=pFileSpec->GetName();
+ if (PercentMatchNoCase(FileInfo.name,CheckSpec,NULL,'*'))
+ {
+ Ret=GetFileInfo(FileInfo.name,pDir)->GetQuotedFullFileName();
+ }
+ while (-1!=_findnext(hFile,&FileInfo))
+ {
+ if (PercentMatchNoCase(FileInfo.name,CheckSpec,NULL,'*'))
+ {
+ Ret+=g_SpaceString;
+ Ret+=GetFileInfo(FileInfo.name,pDir)->GetQuotedFullFileName();
+ }
+ }
+ _findclose(hFile);
+#else
+ glob_t Res;
+ if (glob (pFileSpec->GetFullFileName().c_str(), GLOB_ERR|GLOB_NOSORT|GLOB_MARK, NULL, &Res))
+ return g_EmptyString;
+
+ string Ret=g_EmptyString;
+ string SepStr=g_EmptyString;
+ string CheckSpec=pFileSpec->GetName();
+ for (int i=0; i<Res.gl_pathc; i++)
+ {
+ if (PercentMatch(Res.gl_pathv[i],CheckSpec,NULL,'*'))
+ {
+ Ret+=SepStr;
+ Ret+=GetFileInfo(Res.gl_pathv[i],pDir)->GetQuotedFullFileName();
+ SepStr=g_SpaceString;
+ }
+ }
+
+ globfree(&Res);
+#endif
+ return Ret;
+}
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_wildcard(const string & Arg) const
+{
+ return IterList(ExpandExpression(Arg), wildcard, (void*)this);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_exist(const string & Arg) const
+{
+ string File=TrimString(ExpandExpression(Arg));
+ fileinfo *pFile=GetFileInfo(File,m_MakeDir);
+ if (pFile->Exists())
+ {
+ return string("1");
+ }
+ else
+ return g_EmptyString;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_filesindirs(const string & ArgIn) const
+{
+ string Arg=ExpandExpression(ArgIn);
+ const char *pTmp=Arg.c_str();
+
+ string strFiles;
+ pTmp=NextCharItem(pTmp,strFiles,',');
+ #ifdef _DEBUG
+ if (!*pTmp) {
+ throw string("Wrong number of arguments in function filesindirs");
+ }
+ #endif
+ string strDirs;
+ NextCharItem(pTmp,strDirs,',');
+
+ vector<fileinfo*> Dirs;
+ SplitToItems(strDirs,Dirs);
+
+ pTmp=strFiles.c_str();
+ string Ret=g_EmptyString;
+ bool first=true;
+ while (*pTmp)
+ {
+ string File;
+ fileinfo *pFile;
+ pTmp=NextItem(pTmp,File);
+
+ vector<fileinfo*>::iterator It=Dirs.begin();
+ vector<fileinfo*>::iterator ItEnd=Dirs.end();
+ while (It!=ItEnd)
+ {
+ pFile=GetFileInfo(File,*It++);
+ if (pFile->Exists())
+ {
+ break;
+ }
+ pFile=NULL;
+ }
+ if (!pFile)
+ continue;
+
+ if (!first)
+ {
+ Ret+=g_SpaceString;
+ }
+ else
+ {
+ first=false;
+ }
+ Ret+=pFile->GetQuotedFullFileName();
+ }
+
+ return Ret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_fullname(const string & Arg) const
+{
+ string File=TrimString(ExpandExpression(Arg));
+ fileinfo *pFile=GetFileInfo(File,m_MakeDir);
+ return pFile->GetQuotedFullFileName();
+}
+
+///////////////////////////////////////////////////////////////////////////////
+static string basename(const string &FileName,void*)
+{
+ string Ret=UnquoteFileName(FileName);
+ Ret=Ret.substr(0,Ret.find_last_of('.'));
+ return QuoteFileName(Ret);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_basename(const string & FileNames) const
+{
+ return IterList(ExpandExpression(FileNames),basename);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+static string notdir(const string &FileName,void*)
+{
+ string Ret=UnquoteFileName(FileName);
+ size_t Pos=Ret.find_last_of(OSPATHSEP);
+ if (Pos==string::npos)
+ {
+ return FileName;
+ }
+ else
+ {
+ Ret=Ret.substr(Pos+1);
+ return QuoteFileName(Ret);
+ }
+
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_notdir(const string & FileNames) const
+{
+ return IterList(ExpandExpression(FileNames),notdir);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+static string addprefix(const string &FileName,void *pPrefix)
+{
+ return *(const string *)pPrefix+FileName;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_addprefix(const string & ArgIn) const
+{
+ string Arg=ExpandExpression(ArgIn);
+ const char *pTmp=Arg.c_str();
+ string PreFix;
+ pTmp=NextCharItem(pTmp,PreFix,',');
+ #ifdef _DEBUG
+ if (g_PrintAdditionalInfo && PreFix.empty()) {
+ cout << "Warning: empty prefix in expression: " << ArgIn << endl;
+ }
+ #endif
+ string FileNames;
+ pTmp=NextCharItem(pTmp,FileNames,',');
+ return IterList(FileNames,addprefix,&PreFix);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+static string addsuffix(const string &FileName,void *pSuffix)
+{
+ return FileName+*(const string *)pSuffix;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_addsuffix(const string & ArgIn) const
+{
+ string Arg=ExpandExpression(ArgIn);
+ const char *pTmp=Arg.c_str();
+ string SufFix;
+ pTmp=NextCharItem(pTmp,SufFix,',');
+ #ifdef _DEBUG
+ if (!*pTmp) {
+ throw string("Wrong number of arguments in function addsuffix");
+ }
+ #endif
+ string FileNames;
+ pTmp=NextCharItem(pTmp,FileNames,',');
+ return IterList(FileNames,addsuffix,&SufFix);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Returns the n-th word number
+string mhmakefileparser::f_word(const string & ArgIn) const
+{
+ string Arg=ExpandExpression(ArgIn);
+ const char *pTmp=Arg.c_str();
+
+ string strNum;
+ pTmp=NextCharItem(pTmp,strNum,',');
+
+ int WordNbr=atoi(strNum.c_str());
+
+ #ifdef _DEBUG
+ if (!WordNbr)
+ {
+ if (!WordNbr) {
+ throw string ("Expecting a number bigger then 0 for the word function");
+ }
+ }
+ #endif
+
+ int CurWord=0;
+ while (*pTmp)
+ {
+ string Word;
+ pTmp=NextItem(pTmp,Word);
+ CurWord++;
+ if (CurWord==WordNbr)
+ return Word;
+ }
+
+ return g_EmptyString;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Returns the number of words
+string mhmakefileparser::f_words(const string & ArgIn) const
+{
+ string Arg=ExpandExpression(ArgIn);
+ const char *pTmp=Arg.c_str();
+ int NrWords=0;
+ char szNumber[10];
+ while (*pTmp)
+ {
+ string Word;
+ pTmp=NextItem(pTmp,Word);
+ NrWords++;
+ }
+ sprintf(szNumber,"%d",NrWords);
+
+ return szNumber;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Search for a command in the enivornment path
+string mhmakefileparser::f_which(const string & Arg) const
+{
+ return SearchCommand(ExpandExpression(Arg));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Removes leading and trailing space
+string mhmakefileparser::f_strip(const string & ArgIn) const
+{
+ string Arg=ExpandExpression(ArgIn);
+ string::const_iterator pFirst=Arg.begin();
+ string::const_iterator pLast=Arg.end();
+ while (strchr(" \t\r\n",*pFirst) && pFirst!=pLast) pFirst++;
+ if (pFirst==pLast)
+ return "";
+ while (strchr(" \t\r\n",*(--pLast)));
+ pLast++;
+ return Arg.substr(pFirst-Arg.begin(),pLast-pFirst);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+static string dir(const string &FileName, void *)
+{
+ size_t Pos=FileName.find_last_of(OSPATHSEP);
+ if (Pos==string::npos)
+ {
+ #ifdef _WIN32
+ Pos=FileName.find_last_of('/');
+ if (Pos==string::npos)
+ #endif
+ return g_EmptyString;
+ }
+
+ string Ret=g_EmptyString;
+ Ret+=FileName.substr(0,Pos+1);
+ if (FileName[0]=='"' && FileName.end()[-1]=='"')
+ Ret+=s_QuoteString;
+ return Ret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_dir(const string & FileNames) const
+{
+ return IterList(ExpandExpression(FileNames),dir);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_shell(const string & CommandIn) const
+{
+ string Command=ExpandExpression(CommandIn);
+ string Output;
+
+#ifdef _DEBUG
+ if (g_PrintAdditionalInfo)
+ cout << "shell: executing: Command '"<<Command<<"'"<<endl;
+#endif
+
+ ((mhmakefileparser*)this)->ExecuteCommand(string("@")+Command,&Output); // Make sure that the command is not echoed
+#ifdef _DEBUG
+ if (g_PrintAdditionalInfo)
+ cout << "shell returned '"<<Output<<"'"<<endl;
+#endif
+ return Output;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+static string relpath(const string &FileName,void *pvDir)
+{
+ const fileinfo *pDir=*(const fileinfo **)pvDir;
+ const fileinfo *pPath=GetFileInfo(FileName,pDir);
+ const char *pCur=pDir->GetFullFileName().c_str();
+ const char *pszPath=pPath->GetFullFileName().c_str();
+
+ const char *pLast=pszPath;
+ while (*pCur==*pszPath)
+ {
+ char Char=*pszPath;
+ if (!Char)
+ {
+ return "."; // Means that FileName is the same as the current directory
+ }
+ if (Char==OSPATHSEP)
+ pLast=pszPath+1;
+ pCur++;
+ pszPath++;
+ }
+ if (*pszPath==OSPATHSEP && !*pCur)
+ pLast=pszPath+1;
+ string retPath;
+ if (*pCur==OSPATHSEP) {
+ bool first=true;
+ pCur++;
+ retPath="..";
+ while (*pCur)
+ {
+ if (*pCur==OSPATHSEP)
+ retPath+=OSPATHSEPSTR "..";
+ pCur++;
+ }
+ if (pszPath)
+ retPath=retPath+OSPATHSEPSTR+pLast;
+ }
+ else
+ {
+ if (*pCur)
+ retPath=".." OSPATHSEPSTR;
+ while (*pCur)
+ {
+ if (*pCur==OSPATHSEP)
+ retPath+=".." OSPATHSEPSTR;
+ pCur++;
+ }
+ retPath+=pLast;
+ }
+ return QuoteFileName(retPath);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Make a path name relative to the current directory
+string mhmakefileparser::f_relpath(const string & FileNames) const
+{
+ return IterList(ExpandExpression(FileNames),relpath,(void*)&m_MakeDir);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+static string realpath(const string &FileName,void *pvDir)
+{
+ const fileinfo *pDir=*(const fileinfo **)pvDir;
+ const fileinfo *pPath=GetFileInfo(FileName,pDir);
+ if (pPath->Exists())
+ return pPath->GetQuotedFullFileName();
+ else
+ return "";
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Make a path name relative to the current directory
+string mhmakefileparser::f_realpath(const string & FileNames) const
+{
+ return IterList(ExpandExpression(FileNames),realpath,(void*)&m_MakeDir);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+static string makeupper(const string &FileName,void *)
+{
+ string Ret=FileName;
+ string::const_iterator pSrc=FileName.begin();
+ string::iterator pDest=Ret.begin();
+ while (pSrc!=FileName.end())
+ {
+ *pDest++ = toupper(*pSrc++);
+ }
+ return Ret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_toupper(const string & FileNames) const
+{
+ return IterList(ExpandExpression(FileNames),makeupper);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+static string makelower(const string &FileName, void *)
+{
+ string Ret=FileName;
+ string::const_iterator pSrc=FileName.begin();
+ string::iterator pDest=Ret.begin();
+ while (pSrc!=FileName.end())
+ {
+ *pDest++ = tolower(*pSrc++);
+ }
+ return Ret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_tolower(const string & FileNames) const
+{
+ return IterList(ExpandExpression(FileNames),makelower);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+struct expanedexpr_arg
+{
+ string Var;
+ mhmakefileparser *pParser;
+ string Expr;
+};
+
+static string expandexpr(const string &VarVal, void *pvVar)
+{
+ expanedexpr_arg *pArg=(expanedexpr_arg*)pvVar;
+ pArg->pParser->SetVariable(pArg->Var,VarVal);
+ return pArg->pParser->ExpandExpression(pArg->Expr);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_foreach(const string & Arg) const
+{
+ const char *pTmp=Arg.c_str();
+
+ expanedexpr_arg Args;
+ Args.pParser=(mhmakefileparser*)this;
+ pTmp=NextCharExprItem(pTmp,Args.Var,',');
+ Args.Var=ExpandExpression(Args.Var);
+
+ if (Args.Var.empty())
+ throw(string("Wrong syntax in foreach instruction: '")+Arg+"'. Variable may not be empty.");
+
+ string Items;
+ pTmp=NextCharExprItem(pTmp,Items,',');
+ Items=ExpandExpression(Items);
+
+ if (Items.empty())
+ return g_EmptyString; /* No items specified, so nothing needs to be done */
+
+ pTmp=NextCharExprItem(pTmp,Args.Expr,',');
+
+ /* Save the variable to be able to restore it after the foreach expansion */
+ string VarVal;
+ map<string,string>::const_iterator pVal=m_Variables.find(Args.Var);
+ if (pVal!=m_Variables.end())
+ VarVal=pVal->second;
+
+ string Ret=IterList(Items,expandexpr,(void*)&Args);
+
+ /* Restore the variable to it's original value */
+ if (pVal!=m_Variables.end())
+ Args.pParser->SetVariable(Args.Var,VarVal);
+ else
+ Args.pParser->DeleteVariable(Args.Var);
+
+ return Ret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_eval(const string & Arg) const
+{
+ ((mhmakefileparser*)this)->ParseString(ExpandExpression(Arg)+"\n");
+ return g_EmptyString;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+static string AddToList(const string &String, void *pvList)
+{
+ vector<string> *pList=(vector<string>*)pvList;
+ pList->push_back(String);
+ return g_EmptyString;
+}
+
+string mhmakefileparser::f_sort(const string & Arg) const
+{
+ string ExpandedArg=ExpandExpression(Arg);
+ vector<string> List;
+ IterList(ExpandedArg, AddToList, (void*)&List);
+ sort(List.begin(),List.end());
+ string Prev;
+ vector<string>::iterator It=List.begin();
+ string Ret;
+ bool First=true;
+ while (It!=List.end())
+ {
+ string This=*It++;
+ if (This!=Prev)
+ {
+ Prev=This;
+ if (!First)
+ Ret+=" ";
+ else
+ First=false;
+ Ret+=This;
+ }
+ }
+ return Ret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_error(const string & Arg) const
+{
+ throw(GetFileNameLineNo()+ExpandExpression(Arg));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_warning(const string & Arg) const
+{
+ cout << GetFileNameLineNo() << ExpandExpression(Arg) << endl;
+ return g_EmptyString;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::f_info(const string & Arg) const
+{
+ cout << ExpandExpression(Arg) << endl;
+ return g_EmptyString;
+}
+
diff --git a/tools/mhmake/src/md5.cpp b/tools/mhmake/src/md5.cpp
new file mode 100644
index 000000000..df3a006cb
--- /dev/null
+++ b/tools/mhmake/src/md5.cpp
@@ -0,0 +1,455 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+/*
+ * RFC 1321 compliant MD5 implementation
+ *
+ * Copyright (C) 2001-2003 Christophe Devine
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include "stdafx.h"
+#include "md5.h"
+
+#ifdef _MSC_VER
+#pragma warning (disable:4005) /* macro redefinition */
+#endif
+
+#ifdef _DEBUG
+map<uint32,string> g_Md5Database;
+#endif
+
+#define GET_UINT32(n,b,i) \
+{ \
+ (n) = ( (uint32) (b)[(i) ] ) \
+ | ( (uint32) (b)[(i) + 1] << 8 ) \
+ | ( (uint32) (b)[(i) + 2] << 16 ) \
+ | ( (uint32) (b)[(i) + 3] << 24 ); \
+}
+
+#define PUT_UINT32(n,b,i) \
+{ \
+ (b)[(i) ] = (uint8) ( (n) ); \
+ (b)[(i) + 1] = (uint8) ( (n) >> 8 ); \
+ (b)[(i) + 2] = (uint8) ( (n) >> 16 ); \
+ (b)[(i) + 3] = (uint8) ( (n) >> 24 ); \
+}
+
+void md5_starts( md5_context *ctx )
+{
+ ctx->total[0] = 0;
+ ctx->total[1] = 0;
+
+ ctx->state[0] = 0x67452301;
+ ctx->state[1] = 0xEFCDAB89;
+ ctx->state[2] = 0x98BADCFE;
+ ctx->state[3] = 0x10325476;
+#ifdef _DEBUG
+ if (g_BuildMd5Db) ctx->Data="";
+#endif
+}
+
+void md5_process( md5_context *ctx, uint8 data[64] )
+{
+ uint32 X[16], A, B, C, D;
+
+ GET_UINT32( X[0], data, 0 );
+ GET_UINT32( X[1], data, 4 );
+ GET_UINT32( X[2], data, 8 );
+ GET_UINT32( X[3], data, 12 );
+ GET_UINT32( X[4], data, 16 );
+ GET_UINT32( X[5], data, 20 );
+ GET_UINT32( X[6], data, 24 );
+ GET_UINT32( X[7], data, 28 );
+ GET_UINT32( X[8], data, 32 );
+ GET_UINT32( X[9], data, 36 );
+ GET_UINT32( X[10], data, 40 );
+ GET_UINT32( X[11], data, 44 );
+ GET_UINT32( X[12], data, 48 );
+ GET_UINT32( X[13], data, 52 );
+ GET_UINT32( X[14], data, 56 );
+ GET_UINT32( X[15], data, 60 );
+
+#define S(x,n) ((x << n) | ((x & 0xFFFFFFFF) >> (32 - n)))
+
+#define P(a,b,c,d,k,s,t) \
+{ \
+ a += F(b,c,d) + X[k] + t; a = S(a,s) + b; \
+}
+
+ A = ctx->state[0];
+ B = ctx->state[1];
+ C = ctx->state[2];
+ D = ctx->state[3];
+
+#define F(x,y,z) (z ^ (x & (y ^ z)))
+
+ P( A, B, C, D, 0, 7, 0xD76AA478 );
+ P( D, A, B, C, 1, 12, 0xE8C7B756 );
+ P( C, D, A, B, 2, 17, 0x242070DB );
+ P( B, C, D, A, 3, 22, 0xC1BDCEEE );
+ P( A, B, C, D, 4, 7, 0xF57C0FAF );
+ P( D, A, B, C, 5, 12, 0x4787C62A );
+ P( C, D, A, B, 6, 17, 0xA8304613 );
+ P( B, C, D, A, 7, 22, 0xFD469501 );
+ P( A, B, C, D, 8, 7, 0x698098D8 );
+ P( D, A, B, C, 9, 12, 0x8B44F7AF );
+ P( C, D, A, B, 10, 17, 0xFFFF5BB1 );
+ P( B, C, D, A, 11, 22, 0x895CD7BE );
+ P( A, B, C, D, 12, 7, 0x6B901122 );
+ P( D, A, B, C, 13, 12, 0xFD987193 );
+ P( C, D, A, B, 14, 17, 0xA679438E );
+ P( B, C, D, A, 15, 22, 0x49B40821 );
+
+#undef F
+
+#define F(x,y,z) (y ^ (z & (x ^ y)))
+
+ P( A, B, C, D, 1, 5, 0xF61E2562 );
+ P( D, A, B, C, 6, 9, 0xC040B340 );
+ P( C, D, A, B, 11, 14, 0x265E5A51 );
+ P( B, C, D, A, 0, 20, 0xE9B6C7AA );
+ P( A, B, C, D, 5, 5, 0xD62F105D );
+ P( D, A, B, C, 10, 9, 0x02441453 );
+ P( C, D, A, B, 15, 14, 0xD8A1E681 );
+ P( B, C, D, A, 4, 20, 0xE7D3FBC8 );
+ P( A, B, C, D, 9, 5, 0x21E1CDE6 );
+ P( D, A, B, C, 14, 9, 0xC33707D6 );
+ P( C, D, A, B, 3, 14, 0xF4D50D87 );
+ P( B, C, D, A, 8, 20, 0x455A14ED );
+ P( A, B, C, D, 13, 5, 0xA9E3E905 );
+ P( D, A, B, C, 2, 9, 0xFCEFA3F8 );
+ P( C, D, A, B, 7, 14, 0x676F02D9 );
+ P( B, C, D, A, 12, 20, 0x8D2A4C8A );
+
+#undef F
+
+#define F(x,y,z) (x ^ y ^ z)
+
+ P( A, B, C, D, 5, 4, 0xFFFA3942 );
+ P( D, A, B, C, 8, 11, 0x8771F681 );
+ P( C, D, A, B, 11, 16, 0x6D9D6122 );
+ P( B, C, D, A, 14, 23, 0xFDE5380C );
+ P( A, B, C, D, 1, 4, 0xA4BEEA44 );
+ P( D, A, B, C, 4, 11, 0x4BDECFA9 );
+ P( C, D, A, B, 7, 16, 0xF6BB4B60 );
+ P( B, C, D, A, 10, 23, 0xBEBFBC70 );
+ P( A, B, C, D, 13, 4, 0x289B7EC6 );
+ P( D, A, B, C, 0, 11, 0xEAA127FA );
+ P( C, D, A, B, 3, 16, 0xD4EF3085 );
+ P( B, C, D, A, 6, 23, 0x04881D05 );
+ P( A, B, C, D, 9, 4, 0xD9D4D039 );
+ P( D, A, B, C, 12, 11, 0xE6DB99E5 );
+ P( C, D, A, B, 15, 16, 0x1FA27CF8 );
+ P( B, C, D, A, 2, 23, 0xC4AC5665 );
+
+#undef F
+
+#define F(x,y,z) (y ^ (x | ~z))
+
+ P( A, B, C, D, 0, 6, 0xF4292244 );
+ P( D, A, B, C, 7, 10, 0x432AFF97 );
+ P( C, D, A, B, 14, 15, 0xAB9423A7 );
+ P( B, C, D, A, 5, 21, 0xFC93A039 );
+ P( A, B, C, D, 12, 6, 0x655B59C3 );
+ P( D, A, B, C, 3, 10, 0x8F0CCC92 );
+ P( C, D, A, B, 10, 15, 0xFFEFF47D );
+ P( B, C, D, A, 1, 21, 0x85845DD1 );
+ P( A, B, C, D, 8, 6, 0x6FA87E4F );
+ P( D, A, B, C, 15, 10, 0xFE2CE6E0 );
+ P( C, D, A, B, 6, 15, 0xA3014314 );
+ P( B, C, D, A, 13, 21, 0x4E0811A1 );
+ P( A, B, C, D, 4, 6, 0xF7537E82 );
+ P( D, A, B, C, 11, 10, 0xBD3AF235 );
+ P( C, D, A, B, 2, 15, 0x2AD7D2BB );
+ P( B, C, D, A, 9, 21, 0xEB86D391 );
+
+#undef F
+
+ ctx->state[0] += A;
+ ctx->state[1] += B;
+ ctx->state[2] += C;
+ ctx->state[3] += D;
+}
+
+static uint8 md5_padding[64] =
+{
+ 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+void md5_update( md5_context *ctx, uint8 *input, size_t length )
+{
+ uint32 left, fill;
+
+ if( ! length ) return;
+
+#ifdef _DEBUG
+ if (g_BuildMd5Db && md5_padding!=input && ctx->msglen!=input)
+ ctx->Data+=string((char*)input,length);
+#endif
+
+ left = ctx->total[0] & 0x3F;
+ fill = 64 - left;
+
+ ctx->total[0] = (uint32)((ctx->total[0] + length)& 0xFFFFFFFF);
+
+ if( ctx->total[0] < length )
+ ctx->total[1]++;
+
+ if( left && length >= fill )
+ {
+ memcpy( (void *) (ctx->buffer + left),
+ (void *) input, fill );
+ md5_process( ctx, ctx->buffer );
+ length -= fill;
+ input += fill;
+ left = 0;
+ }
+
+ while( length >= 64 )
+ {
+ md5_process( ctx, input );
+ length -= 64;
+ input += 64;
+ }
+
+ if( length )
+ {
+ memcpy( (void *) (ctx->buffer + left),
+ (void *) input, length );
+ }
+}
+
+uint32 *md5_finishbin( md5_context *ctx)
+{
+ uint32 last, padn;
+ uint32 high, low;
+
+ high = ( ctx->total[0] >> 29 )
+ | ( ctx->total[1] << 3 );
+ low = ( ctx->total[0] << 3 );
+
+ PUT_UINT32( low, ctx->msglen, 0 );
+ PUT_UINT32( high, ctx->msglen, 4 );
+
+ last = ctx->total[0] & 0x3F;
+ padn = ( last < 56 ) ? ( 56 - last ) : ( 120 - last );
+
+ md5_update( ctx, md5_padding, padn );
+ md5_update( ctx, ctx->msglen, 8 );
+
+ return ctx->state;
+}
+
+void md5_finish( md5_context *ctx, uint8 digest[16] )
+{
+ md5_finishbin( ctx);
+ PUT_UINT32( ctx->state[0], digest, 0 );
+ PUT_UINT32( ctx->state[1], digest, 4 );
+ PUT_UINT32( ctx->state[2], digest, 8 );
+ PUT_UINT32( ctx->state[3], digest, 12 );
+}
+
+uint32 md5_finish32( md5_context *ctx)
+{
+ md5_finishbin( ctx);
+ uint32 Md5_32=ctx->state[0]+ctx->state[1]+ctx->state[2]+ctx->state[3];
+#ifdef _DEBUG
+ if (g_BuildMd5Db) g_Md5Database[Md5_32]=ctx->Data;
+#endif
+ return Md5_32;
+}
+
+#ifdef _DEBUG
+struct WRITEMD5DB
+{
+ ~WRITEMD5DB()
+ {
+ if (g_BuildMd5Db)
+ {
+ FILE *pFile=fopen("Md5.database","wb");
+ map<uint32,string>::const_iterator It=g_Md5Database.begin();
+ while (It!=g_Md5Database.end())
+ {
+ fprintf(pFile,"%08lx: ",It->first);
+ fwrite(It->second.c_str(),It->second.length(),1,pFile);
+ fprintf(pFile,"\n");
+ It++;
+ }
+ fclose(pFile);
+ }
+ }
+};
+static WRITEMD5DB WriteMd5Db;
+#endif
+
+
+#ifdef TEST
+
+#include <stdlib.h>
+#include <stdio.h>
+
+/*
+ * those are the standard RFC 1321 test vectors
+ */
+
+static char *msg[] =
+{
+ "",
+ "a",
+ "abc",
+ "message digest",
+ "abcdefghijklmnopqrstuvwxyz",
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+ "12345678901234567890123456789012345678901234567890123456789012" \
+ "345678901234567890"
+};
+
+static char *val[] =
+{
+ "d41d8cd98f00b204e9800998ecf8427e",
+ "0cc175b9c0f1b6a831c399e269772661",
+ "900150983cd24fb0d6963f7d28e17f72",
+ "f96b697d7cb7938d525a2f31aaf161d0",
+ "c3fcd3d76192e4007dfb496cca67e13b",
+ "d174ab98d277d9f5a5611c2c9f419d9f",
+ "57edf4a22be3c955ac49da2e2107b67a"
+};
+
+int main( int argc, char *argv[] )
+{
+ FILE *f;
+ int i, j;
+ char output[33];
+ md5_context ctx;
+ unsigned char buf[1000];
+ unsigned char md5sum[16];
+
+ if( argc < 2 )
+ {
+ printf( "\n MD5 Validation Tests:\n\n" );
+
+ for( i = 0; i < 7; i++ )
+ {
+ printf( " Test %d ", i + 1 );
+
+ md5_starts( &ctx );
+ md5_update( &ctx, (uint8 *) msg[i], strlen( msg[i] ) );
+ md5_finish( &ctx, md5sum );
+
+ for( j = 0; j < 16; j++ )
+ {
+ sprintf( output + j * 2, "%02x", md5sum[j] );
+ }
+
+ if( memcmp( output, val[i], 32 ) )
+ {
+ printf( "failed!\n" );
+ return( 1 );
+ }
+
+ printf( "passed.\n" );
+ }
+
+ printf( "\n" );
+ }
+ else
+ {
+ if( ! ( f = fopen( argv[1], "rb" ) ) )
+ {
+ perror( "fopen" );
+ return( 1 );
+ }
+
+ md5_starts( &ctx );
+
+ while( ( i = fread( buf, 1, sizeof( buf ), f ) ) > 0 )
+ {
+ md5_update( &ctx, buf, i );
+ }
+
+ md5_finish( &ctx, md5sum );
+
+ for( j = 0; j < 16; j++ )
+ {
+ printf( "%02x", md5sum[j] );
+ }
+
+ printf( " %s\n", argv[1] );
+ }
+
+ return( 0 );
+}
+
+#endif
+
+//#define APP
+#ifdef APP
+#include <stdio.h>
+
+int main( int argc, char *argv[] )
+{
+ unsigned j;
+ unsigned char md5sum[16];
+ md5_context ctx;
+ FILE *pFile=fopen(argv[1],"r");
+
+ if (!pFile)
+ {
+ printf("Error opening file.\n");
+ return 1;
+ }
+
+ md5_starts( &ctx );
+
+ while (1)
+ {
+ char Buf[1024];
+ size_t Ret=fread(Buf,1,sizeof(Buf),pFile);
+ if (!Ret)
+ break;
+ md5_update( &ctx, (uint8 *) Buf, Ret);
+ }
+ md5_finish( &ctx, md5sum );
+
+ for( j = 0; j < 16; j++ )
+ {
+ printf("%02x", md5sum[j] );
+ }
+
+}
+#endif
+
diff --git a/tools/mhmake/src/md5.h b/tools/mhmake/src/md5.h
new file mode 100644
index 000000000..f16c9bd19
--- /dev/null
+++ b/tools/mhmake/src/md5.h
@@ -0,0 +1,58 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+#ifndef _MD5_H
+#define _MD5_H
+
+#ifndef uint8
+#define uint8 unsigned char
+#endif
+
+#ifndef uint32
+#define uint32 unsigned long int
+#endif
+
+typedef struct
+{
+ uint32 total[2];
+ uint32 state[4];
+ uint8 buffer[64];
+ uint8 msglen[8];
+#ifdef _DEBUG
+ string Data;
+#endif
+}
+md5_context;
+
+typedef uint32 md5_val[4];
+
+void md5_starts( md5_context *ctx );
+void md5_update( md5_context *ctx, uint8 *input, size_t length );
+void md5_finish( md5_context *ctx, uint8 digest[16] );
+uint32 *md5_finishbin( md5_context *ctx);
+uint32 md5_finish32( md5_context *ctx);
+
+#ifdef _DEBUG
+extern bool g_BuildMd5Db;
+#endif
+
+#endif /* md5.h */
+
+
diff --git a/tools/mhmake/src/mhmake.cpp b/tools/mhmake/src/mhmake.cpp
new file mode 100644
index 000000000..735453af6
--- /dev/null
+++ b/tools/mhmake/src/mhmake.cpp
@@ -0,0 +1,161 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+#include "stdafx.h"
+#include "fileinfo.h"
+#include "mhmakefileparser.h"
+#include "rule.h"
+#include "util.h"
+
+bool g_Clean=false;
+bool g_StopCompiling=false;
+
+#ifdef WIN32
+BOOL WINAPI ControlCHandler(DWORD dwCtrlType)
+{
+ g_StopCompiling=true;
+ return TRUE;
+}
+#endif
+
+int __CDECL main(int argc, char* argv[])
+{
+ //__int64 Freq;
+ //__int64 Start;
+
+ //QueryPerformanceFrequency((LARGE_INTEGER*)&Freq);
+ //QueryPerformanceCounter((LARGE_INTEGER*)&Start);
+
+ #if defined(_DEBUG) && defined(_MSC_VER)
+ int tmpFlag = _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG );
+
+ // Turn on leak-checking bit
+ tmpFlag |= _CRTDBG_LEAK_CHECK_DF;
+ // Turn on defer freeing
+ //tmpFlag |= _CRTDBG_DELAY_FREE_MEM_DF;
+ // Turn on heap checking
+ //tmpFlag |= _CRTDBG_CHECK_ALWAYS_DF;
+
+ // Set flag to the new value
+ _CrtSetDbgFlag( tmpFlag );
+
+ //_CrtSetBreakAlloc(44);
+ #endif
+
+ #ifdef WIN32
+ /* Remove the VS_UNICODE_OUTPUT environment variable. This variable is set when running from
+ * the Visual Studio IDE and is causing the output of cl.exe to send the output directly to the IDE instead
+ * of sending it to stdout. This is causing all scripts that are calling cl.exe and intercept the
+ * output to fail.
+ */
+ putenv("VS_UNICODE_OUTPUT=");
+
+ SetConsoleCtrlHandler(ControlCHandler, TRUE);
+
+ #endif
+
+ try
+ {
+ mhmakefileparser::InitBuildTime();
+
+ if (!getenv("Platform"))
+ {
+ char PlatformEnv[]="PLATFORM="PLATFORM;
+ putenv(PlatformEnv);
+ }
+
+ vector<string> CmdLineArgs;
+ for (int i=1; i<argc; i++)
+ {
+ CmdLineArgs.push_back(argv[i]);
+ }
+
+ refptr<loadedmakefile> pFirstMakefile(new loadedmakefile(curdir::GetCurDir(),CmdLineArgs,"makefile"));
+ // For the first makefile we add the defines passed on the command line to the
+ // environment so that the other load_makefile see the same variables
+ pFirstMakefile->AddCommandLineVarsToEnvironment();
+
+ g_LoadedMakefiles.push_back(pFirstMakefile);
+
+ pFirstMakefile->LoadMakefile();
+
+ #ifdef _DEBUG
+ if (g_PrintVarsAndRules)
+ {
+ DumpVarsAndRules();
+ }
+ #endif
+
+ // Make sure that the included makefiles that have rules are build
+
+ LOADEDMAKEFILES::iterator LoadMakIt=g_LoadedMakefiles.begin();
+ while (LoadMakIt!=g_LoadedMakefiles.end())
+ {
+ (*LoadMakIt)->m_pMakefileParser->BuildIncludedMakefiles();
+ (*LoadMakIt)->m_pMakefileParser->ParseBuildedIncludeFiles();
+ (*LoadMakIt)->m_pMakefileParser->CheckEnv();
+ LoadMakIt++;
+ }
+
+ if (pFirstMakefile->m_CommandLineTargets.size())
+ {
+ vector<string>::iterator It=pFirstMakefile->m_CommandLineTargets.begin();
+ while (It!=pFirstMakefile->m_CommandLineTargets.end())
+ {
+ if (*It=="clean" || *It=="cleanall")
+ {
+ g_Clean=true;
+ }
+ fileinfo *pTarget=GetFileInfo(*It,pFirstMakefile->m_MakeDir);
+ pFirstMakefile->m_pMakefileParser->BuildTarget(pTarget);
+ It++;
+ }
+ }
+ else
+ {
+ fileinfo *pFirstTarget=pFirstMakefile->m_pMakefileParser->GetFirstTarget();
+ if (pFirstTarget)
+ {
+ pFirstMakefile->m_pMakefileParser->BuildTarget(pFirstTarget);
+ }
+ else
+ cout << "Warning: no targets in makefile. Nothing to be build.\nMHMAKECONF defined?\n";
+ }
+
+ }
+ catch (string Message)
+ {
+ cerr << "*** Error -> " << Message << endl;
+ #ifdef _DEBUG
+ if (g_DumpOnError)
+ {
+ DumpVarsAndRules();
+ }
+ #endif
+ return 1;
+ }
+
+ //__int64 Stop;
+ //QueryPerformanceCounter((LARGE_INTEGER*)&Stop);
+ //cout << (Stop-Start)*1000/Freq << endl;
+
+ return 0;
+}
+
diff --git a/tools/mhmake/src/mhmakefileparser.cpp b/tools/mhmake/src/mhmakefileparser.cpp
new file mode 100644
index 000000000..0731d1ce9
--- /dev/null
+++ b/tools/mhmake/src/mhmakefileparser.cpp
@@ -0,0 +1,1445 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+#include "stdafx.h"
+#include "util.h"
+#include "md5.h"
+
+#include "mhmakefileparser.h"
+#include "rule.h"
+#include "flexlexer.h"
+#include "mhmakeparser.hpp"
+
+commandqueue mhmakefileparser::sm_CommandQueue;
+stack<yy::mhmakeparser*> mhmakefileparser::sm_ParserStack; // Keeps track of the currently active parser
+
+string mhmakefileparser::GetFileNameLineNo(void)
+{
+ if (!sm_ParserStack.empty())
+ {
+ yy::mhmakeparser* pParser=sm_ParserStack.top();
+ yy::position *pPos=pParser->GetCurPos();
+ return pParser->GetInputFilename()+":"+stringify(pPos->line)+" ";
+ }
+ else
+ return g_EmptyString; // Currently not parsing, this is a run-time error after parsing
+}
+
+///////////////////////////////////////////////////////////////////////////////
+int mhmakefileparser::ParseFile(const fileinfo *pFileInfo, const fileinfo *pMakeDir)
+{
+ if (pMakeDir)
+ {
+ m_MakeDir=pMakeDir;
+ m_Variables[CURDIR]=m_MakeDir->GetQuotedFullFileName();
+ }
+
+ ifstream yyin(pFileInfo->GetFullFileName().c_str(),ios_base::in);
+ if (yyin.fail())
+ {
+ cerr << "Error opening makefile: "<<pFileInfo->GetQuotedFullFileName()<<endl;
+ return 1;
+ }
+
+ mhmakeFlexLexer theLexer(&yyin);
+
+ theLexer.m_InputFileName=pFileInfo->GetFullFileName();
+ theLexer.m_pMakefileParser=this;
+
+ yy::mhmakeparser Parser(this,&theLexer);
+ sm_ParserStack.push(&Parser);
+ int Ret=Parser.parse();
+ sm_ParserStack.pop();
+ return Ret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+int mhmakefileparser::ParseString(const string &StringIn)
+{
+ basic_istringstream<char> yyin(StringIn.c_str());
+
+ mhmakeFlexLexer theLexer(&yyin);
+
+ theLexer.m_InputFileName=string("eval(")+StringIn+")";
+ theLexer.m_pMakefileParser=this;
+
+ yy::mhmakeparser Parser(this,&theLexer);
+ sm_ParserStack.push(&Parser);
+ int Ret=Parser.parse();
+ sm_ParserStack.pop();
+ return Ret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+bool mhmakefileparser::IsDefined(const string &Var) const
+{
+ bool Ret = m_Variables.find(Var)!=m_Variables.end();
+ if (!Ret)
+ {
+ GetFromEnv(Var, &Ret);
+ }
+ return Ret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+static inline size_t SkipUntilQuote(const string &Expr,size_t i,char Char)
+{
+ while (Expr[i++]!=Char) ;
+ return i;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Splits expression on the Item, but the item may not occur within
+// a macro or quoted string
+static pair<string,string> SplitExpr(const string &Expr,char Item)
+{
+ size_t i=0;
+ char Char=Expr[i++];
+ while (Char!=Item)
+ {
+ if (Char=='"' || Char=='\'')
+ {
+ i=SkipUntilQuote(Expr,i,Char);
+ }
+ else if (Char=='$')
+ {
+ i=SkipMakeExpr(Expr,i);
+ }
+ Char=Expr[i++];
+ }
+ return pair<string,string>(Expr.substr(0,i-1),Expr.substr(i));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+bool mhmakefileparser::IsEqual(const string &EqualExpr) const
+{
+ string Expr=ExpandExpression(EqualExpr);
+ const char *pStr=Expr.c_str();
+ const char *pTmp=pStr;
+ while (*pTmp && *pTmp!=',') pTmp++;
+ ptrdiff_t Pos=pTmp-pStr;
+ size_t Size=Expr.size();
+ pTmp=pStr+Size-1;
+ while (pTmp>pStr && strchr(" \t",*pTmp))
+ {
+ pTmp--;
+ }
+ if (2*Pos != pTmp-pStr)
+ {
+ return false;
+ }
+ pTmp=pStr;
+ const char *pTmp2=pTmp+Pos+1;
+ if (*pTmp=='(')
+ {
+ pTmp++;
+ Pos--;
+ }
+ for (int i=0; i<Pos; i++)
+ {
+ if (pTmp[i]!=pTmp2[i])
+ {
+ return false;
+ }
+ }
+ return true;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+inline string mhmakefileparser::ExpandExpression(const string &ExprIn) const
+{
+ bool Recurse=true;
+ string Ret(ExprIn);
+ while (Recurse)
+ {
+ Recurse=false;
+ string Expr(Ret);
+ Ret.clear();
+
+ size_t i=0;
+ size_t Length=Expr.size();
+ string ToAdd;
+ while (i<Length)
+ {
+ char Char=Expr[i++];
+ if (Char=='$')
+ {
+ size_t inew=SkipMakeExpr(Expr,i);
+ i++;
+ if (inew>i)
+ {
+ ToAdd=ExpandMacro(Expr.substr(i,inew-i-1));
+ i=inew;
+ }
+ else
+ {
+ // This is a single character expression
+ ToAdd=ExpandMacro(string(1,Expr[i-1]));
+ }
+ if (ToAdd.find('$')!=string::npos && ToAdd.length()!=1)
+ {
+ Recurse=true;
+ }
+ Ret+=ToAdd;
+ }
+ else
+ {
+ Ret+=Char;
+ }
+ }
+ }
+ return Ret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::ExpandMacro(const string &Expr) const
+{
+ const char *pTmp=Expr.c_str();
+ /* First remove leading spaces */
+ while (*pTmp==' ' || *pTmp=='\t') pTmp++;
+ const char *pVar=pTmp;
+ while (*pTmp && *pTmp!=' ' && *pTmp!='\t' && *pTmp!=':')
+ {
+ if (*pTmp=='$' && pTmp[1]) // We have a macro expansion inside a macro expansion, so recurse Do not consider isolated $ (This was a $$)
+ {
+ return ExpandMacro(ExpandExpression(Expr));
+ }
+ pTmp++;
+ }
+ const char *pVarEnd=pTmp;
+ char Type=*pTmp++;
+ while (*pTmp && (*pTmp==' ' || *pTmp=='\t')) pTmp++;
+ if (Type&&*pTmp)
+ { // We have a match for the regular expression ^([^ \\t:]+)([: \\t])[ \\t]*(.+)
+ if (Type==':')
+ {
+ #ifdef WIN32
+ bool IsFileName=false;
+ if (pVarEnd-pVar == 1 && (*pVar=='<' || *pVar =='@'))
+ IsFileName=true;
+ #endif
+ string ToSubst=ExpandExpression(ExpandVar(string(pVar,pVarEnd)));
+ const char *pSrc=pTmp;
+ const char *pStop=pSrc;
+ while (*pStop!='=') pStop++;
+ const char *pTo=pStop+1;
+ string SrcStr(ExpandExpression(string(pSrc,pStop)));
+ string ToStr(pTo); // Do not expand yet to be able to use % inside a macro
+ #ifdef WIN32
+ if (IsFileName)
+ {
+ matchres Res;
+ string FileName(UnquoteFileName(ToSubst));
+ if (PercentMatch(FileName,UnquoteFileName(SrcStr),&Res))
+ {
+ FileName=ReplaceWithStem(UnquoteFileName(ToStr),Res.m_Stem);
+ }
+ return QuoteFileName(FileName);
+ }
+ #endif
+ return Substitute(ToSubst,SrcStr,ToStr);
+ }
+ else if (Type==' ' || Type == '\t')
+ {
+ string Arg(pTmp);
+ string Func(pVar,pVarEnd);
+ function_f pFunc=m_Functions[Func];
+ #ifdef _DEBUG
+ if (pFunc)
+ {
+ return (this->*pFunc)(Arg);
+ }
+ else
+ {
+ throw GetFileNameLineNo() + "Unknown function specified in macro: "+Func;
+ }
+ #else
+ return (this->*pFunc)(Arg);
+ #endif
+ }
+ else
+ {
+ #ifdef _DEBUG
+ throw string("Fatal error in ExpandMacro (bug in mhmake ? ? ?)");
+ #else
+ return g_EmptyString;
+ #endif
+ }
+ }
+ else
+ {
+ #ifdef _DEBUG
+ if (Expr.find('$')!=string::npos && Expr.length()!=1)
+ throw(string("Bug in mhmake: wasn't expecting a $ sign in: ")+Expr);
+ #endif
+ string Ret=ExpandVar(Expr);
+ if (Ret.length()>1)
+ return ExpandExpression(Ret);
+ else
+ return Ret;
+ }
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string mhmakefileparser::ExpandVar(const string &Var) const
+{
+ map<string,string>::const_iterator pIt=m_Variables.find(Var);
+ if (pIt==m_Variables.end())
+ {
+ if (Var.size()==1)
+ {
+ char Char=Var[0];
+ if (m_RuleThatIsBuild)
+ {
+ switch (Char)
+ {
+ case '<': // return first prerequisit
+#ifdef _DEBUG
+ if (!m_RuleThatIsBuild->GetDeps().size())
+ {
+ return "<No Dependencies defined.>";
+ }
+#endif
+ return m_RuleThatIsBuild->GetDeps()[0]->GetQuotedFullFileName();
+ case '@': // return full target file name
+ return m_RuleThatIsBuild->GetQuotedFullFileName();
+ case '*': // return stem
+ return m_RuleThatIsBuild->GetRule()->GetStem();
+ case '^': // return all prerequisits
+ return m_RuleThatIsBuild->GetPrerequisits();
+ case '/':
+ return OSPATHSEPSTR;
+ case '$':
+ return Var;
+ case 'n':
+ return "\n";
+ default:
+ break;
+ }
+ }
+ else
+ {
+ switch (Char)
+ {
+ case '<': // return first prerequisit
+ case '@': // return full target file name
+ case '*': // return stem
+ case '^': // return all prerequisits
+ case '$': // $$ expansion
+ return Var; // To make comparing of rules more accurate
+ case '/':
+ return OSPATHSEPSTR;
+ case 'n':
+ return "\n";
+ default:
+ break;
+ }
+ }
+ }
+ string Env=GetFromEnv(Var);
+ if (Env.empty())
+ {
+ #ifdef _DEBUG
+ if (g_PrintAdditionalInfo)
+ {
+ cout<<"Warning: Variable "<<Var<<" not found\n";
+ }
+ #endif
+ return g_EmptyString;
+ }
+ else
+ return Env;
+ }
+ else
+ return pIt->second;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+void mhmakefileparser::SplitToItems(const string &String,vector<fileinfo*> &Items) const
+{
+ const char *pTmp=String.c_str();
+ while (*pTmp)
+ {
+ string Item;
+ pTmp=NextItem(pTmp,Item);
+ if (!Item.empty() && Item!="|")
+ {
+ Items.push_back(GetFileInfo(Item,m_MakeDir));
+ }
+ }
+}
+
+///////////////////////////////////////////////////////////////////////////////
+void mhmakefileparser::ParseBuildedIncludeFiles()
+{
+ vector<string>::iterator It=m_ToBeIncludeAfterBuild.begin();
+ while (It!=m_ToBeIncludeAfterBuild.end())
+ {
+ int result=ParseFile(GetFileInfo(*It,m_MakeDir));
+ if (result)
+ {
+ throw string("Error parsing ")+*It;
+ }
+ It++;
+ }
+}
+
+#ifdef _DEBUG
+///////////////////////////////////////////////////////////////////////////////
+void mhmakefileparser::PrintVariables(bool Expand) const
+{
+ map<string,string>::const_iterator It=m_Variables.begin();
+ while (It!=m_Variables.end())
+ {
+ if (Expand)
+ {
+ try
+ {
+ cout<<It->first<<" : "<<ExpandExpression(It->second)<<endl;
+ }
+ catch (...)
+ {
+ cout<<endl;
+ }
+ }
+ else
+ {
+ cout<<It->first<<" : "<<It->second<<endl;
+ }
+ It++;
+ }
+ if (m_pEnv)
+ {
+ cout << "Environment overruled:\n";
+#ifdef WIN32
+ char *pEnv=m_pEnv;
+ while (*pEnv)
+ {
+ cout<<pEnv<<endl;
+ pEnv+=strlen(pEnv)+1;
+ }
+#else
+ char **pEnv=m_pEnv;
+ while (*pEnv)
+ {
+ cout<<*pEnv<<endl;
+ pEnv++;
+ }
+#endif
+ }
+}
+#endif
+
+//#define PAGETOSTRING(Nr) #Nr
+//#define PAGETONBR(Nr) PAGETOSTRING(##Nr)
+//#pragma message("ar=" PAGETONBR(NULL) ";")
+
+///////////////////////////////////////////////////////////////////////////////
+void mhmakefileparser::AddRule()
+{
+ fileinfoarray::iterator pIt=m_pCurrentItems->begin();
+ while (pIt!=m_pCurrentItems->end())
+ {
+ if ((*pIt)->GetFullFileName().find('%')!=string::npos)
+ {
+ IMPLICITRULE::AddImplicitRule(*pIt,*m_pCurrentDeps,m_pCurrentRule);
+ }
+ else
+ {
+ // If we had a double colon we must make sure that the target is always build
+ if (m_DoubleColonRule)
+ {
+ (*pIt)->SetNotExist();
+ }
+ (*pIt)->SetRuleIfNotExist(m_pCurrentRule);
+ if (!m_pCurrentRule)
+ (*pIt)->AddDeps(*m_pCurrentDeps);
+ else
+ (*pIt)->InsertDeps(*m_pCurrentDeps);
+ if (!m_FirstTarget)
+ { // Only check this if the rule is not an implicit rule
+ m_FirstTarget=(*m_pCurrentItems)[0];
+ }
+ }
+ pIt++;
+ }
+ m_pCurrentItems=NULL;
+ m_pCurrentRule=NullRule;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+void mhmakefileparser::GetAutoDeps(const fileinfo *pFirstDep, deps_t &Autodeps)
+{
+ /* Here we have to scan only c/c++ headers so skip certain extensions */
+ const char *pFullName=pFirstDep->GetFullFileName().c_str();
+ const char *pExt=strrchr(pFullName,'.');
+ bool bPython=false;
+ if (pExt)
+ {
+ if (!_stricmp(pExt+1,"py"))
+ bPython=true;
+ }
+
+ FILE *pIn=fopen(pFullName,"r");
+ if (!pIn)
+ return;
+
+ char IncludeList[255];
+ int PrevRet=0;
+ int Ret=fgetc(pIn);
+ while(Ret!=EOF)
+ {
+ char Type[2];
+ bool bFound=false;
+ if (bPython)
+ {
+ Type[0]='"';
+ if (Ret=='i')
+ {
+ Ret=fscanf(pIn,"mport%*[ \t]%254[^\"\n]",IncludeList);
+ if (Ret==1)
+ {
+ if (IncludeList[0]!='*')
+ bFound=true;
+ }
+ }
+ }
+ else
+ {
+ if (PrevRet=='/')
+ {
+ if (Ret=='/')
+ {
+ /* This is a C++ command so read until the next line-feed */
+ do
+ {
+ Ret=fgetc(pIn);
+ } while (Ret!='\n' && Ret!=EOF);
+ }
+ else if (Ret=='*')
+ {
+ /* This is a standard C comment, so read until then end of the command */
+ do
+ {
+ PrevRet=Ret;
+ Ret=fgetc(pIn);
+ } while ((PrevRet!='*' || Ret!='/') && Ret!=EOF);
+ }
+ }
+ else if (Ret=='#' || Ret=='.')
+ {
+ if (Ret=='#')
+ {
+ Ret=fscanf(pIn,"%*[ \t]");
+ Ret=fscanf(pIn,"include%*[ \t]%1[\"<]%254[^>\"]%*[\">]",(char*)&Type,IncludeList);
+ }
+ else
+ Ret=fscanf(pIn,"import%*[ \t]%1[\"<]%254[^>\"]%*[\">]",(char*)&Type,IncludeList);
+ if (Ret==2)
+ {
+ bFound=true;
+ }
+ }
+ }
+ if (bFound)
+ {
+ const char *pTmp=IncludeList;
+ while (*pTmp)
+ {
+ string IncludeFile;
+ pTmp=NextItem(pTmp,IncludeFile," \t,");
+ if (bPython)
+ IncludeFile+=".py";
+
+ if (SkipHeaderFile(IncludeFile))
+ continue;
+ #ifdef _DEBUG
+ m_ImplicitSearch++; // This is to avoid warnings of targets that does not exist
+ #endif
+ if (Type[0]=='"')
+ {
+ fileinfo *pInclude=GetFileInfo(IncludeFile,pFirstDep->GetDir());
+ /* Add the dependency when the file alrady exist or there is a rule available to be build */
+ mh_time_t Date=BuildTarget(pInclude);
+ if (Date.DoesExist()) // Try to build the target, and add it if it exists after building
+ {
+ deps_t::const_iterator pFind=Autodeps.find(pInclude);
+ if (pFind==Autodeps.end())
+ {
+ Autodeps.insert(pInclude);
+ GetAutoDepsIfNeeded(pInclude,pInclude);
+ }
+ }
+ }
+ const refptr<fileinfoarray> IncludeDirs=GetIncludeDirs();
+ fileinfoarray::const_iterator It=IncludeDirs->begin();
+ while (It<IncludeDirs->end())
+ {
+ fileinfo *pInclude=GetFileInfo(IncludeFile,*It);
+ mh_time_t Date=BuildTarget(pInclude);
+ if (Date.DoesExist()) // Try to build the target, and add it if it exists after building
+ {
+ deps_t::const_iterator pFind=Autodeps.find(pInclude);
+ if (pFind==Autodeps.end())
+ {
+ Autodeps.insert(pInclude);
+ GetAutoDepsIfNeeded(pInclude,pInclude);
+ }
+ break;
+ }
+ It++;
+ }
+ #ifdef _DEBUG
+ m_ImplicitSearch--;
+ #endif
+ }
+ }
+ PrevRet=Ret;
+ Ret=fgetc(pIn);
+ }
+ fclose(pIn);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+void mhmakefileparser::GetAutoDepsIfNeeded(fileinfo *pTarget, const fileinfo *pFirstDep)
+{
+ autodeps_entry_t &Autodeps=m_AutoDeps[pTarget];
+ if (!Autodeps.first)
+ {
+ Autodeps.first=true;
+ /* We are going to rescan, so throw away the old. */
+ Autodeps.second.clear();
+ GetAutoDeps(pFirstDep,Autodeps.second);
+ // Now add these dependencies also to the rules
+ deps_t::iterator It=Autodeps.second.begin();
+ while (It!=Autodeps.second.end())
+ {
+ pTarget->AddDep(*It);
+ It++;
+ }
+ }
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+void mhmakefileparser::UpdateAutomaticDependencies(fileinfo *pTarget)
+{
+ if (pTarget->IsAutoDepExtention())
+ {
+ // we have to search for the include files in the first dependency of Target
+ vector<fileinfo*> &Deps=pTarget->GetDeps();
+ if (!Deps.size())
+ return; // There is no first dep
+ fileinfo *pFirstDep=Deps[0];
+ GetAutoDepsIfNeeded(pTarget,pFirstDep);
+ SetAutoDepsDirty();
+ }
+}
+
+///////////////////////////////////////////////////////////////////////////////
+void mhmakefileparser::UpdateNoRuleAutomaticDependencies(fileinfo *pTarget)
+{
+ // we have to search for the include files in the Target
+ deps_t Autodeps;
+ GetAutoDeps(pTarget,Autodeps);
+ // Now add these dependencies also to the rules
+ deps_t::iterator It=Autodeps.begin();
+ while (It!=Autodeps.end())
+ {
+ pTarget->AddDep(*It);
+ It++;
+ }
+}
+
+///////////////////////////////////////////////////////////////////////////////
+const refptr<fileinfoarray> mhmakefileparser::GetIncludeDirs() const
+{
+ string Includes=ExpandExpression("$(INCLUDES)");
+ if (!m_pIncludeDirs || Includes != m_IncludeDirs)
+ {
+ ((mhmakefileparser*)this)->m_IncludeDirs=Includes;
+ ((mhmakefileparser*)this)->m_pIncludeDirs=refptr<fileinfoarray>(new fileinfoarray);
+ if (Includes.empty()) // If not defined try a default path
+ Includes="include inc .." OSPATHSEPSTR "include .." OSPATHSEPSTR "inc";
+ const char *pTmp=Includes.c_str();
+ while (*pTmp)
+ {
+ string Item;
+ pTmp=NextItem(pTmp,Item);
+ fileinfo *pIncDir=GetFileInfo(Item,m_MakeDir);
+ if (pIncDir->Exists() || pIncDir->GetRule())
+ ((mhmakefileparser*)this)->m_pIncludeDirs->push_back(pIncDir);
+ }
+ }
+ return m_pIncludeDirs;
+}
+
+static void ReadStr(FILE *pFile,char *Str)
+{
+ int i=0;
+ while (1)
+ {
+ Str[i]=fgetc(pFile);
+#ifdef _DEBUG
+ if (Str[i]==EOF)
+ {
+ cout<<"Premature end of depency file.\n";
+ Str[i]=0;
+ return;
+ }
+#endif
+ if (Str[i]=='\n')
+ break;
+ i++;
+ }
+ Str[i]='\0';
+}
+
+void mhmakefileparser::LoadAutoDepsFile(fileinfo *pDepFile)
+{
+ if (m_AutoDepFileLoaded && m_AutoDepFileLoaded==pDepFile)
+ return; /* This autodep file is already loaded. */
+
+ m_AutoDepFileLoaded=pDepFile;
+
+ FILE *pIn=fopen(pDepFile->GetFullFileName().c_str(),"rb");
+ if (!pIn)
+ {
+ cerr << "Error opening autodep file "<<pDepFile->GetQuotedFullFileName()<<endl;
+ return;
+ }
+ if (1!=fread(&m_EnvMd5_32,sizeof(m_EnvMd5_32),1,pIn))
+ {
+ cerr << "Wrong format of autodep file "<<pDepFile->GetQuotedFullFileName()<<endl;
+ fclose(pIn);
+ return;
+ }
+#ifdef _DEBUG
+ if (g_PrintAdditionalInfo)
+ cout << "Reading Env Md5 from "<<pDepFile->GetQuotedFullFileName()<<": "<<hex<<m_EnvMd5_32<<endl;
+#endif
+ char UsedEnvVars[1024];
+ ReadStr(pIn,UsedEnvVars);
+ SetVariable(USED_ENVVARS,UsedEnvVars);
+
+ char FileName[MAX_PATH];
+ ReadStr(pIn,FileName);
+ while (FileName[0])
+ {
+ fileinfo *pTarget=GetFileInfo(FileName,m_MakeDir);
+ autodeps_entry_t &Autodeps=m_AutoDeps[pTarget];
+ ReadStr(pIn,FileName);
+ while (FileName[0])
+ {
+ if (!g_ForceAutoDepRescan) /* If we are forcing the autodepscan we do not have to load the dependencies. */
+ {
+ fileinfo *pDep=GetFileInfo(FileName,m_MakeDir);
+ Autodeps.second.insert(pDep);
+ pTarget->AddDep(pDep);
+ }
+ ReadStr(pIn,FileName);
+ }
+ ReadStr(pIn,FileName);
+ }
+
+ uint32 Md5_32;
+ bool MakeNotDirty=true;
+ while (fread(&Md5_32,sizeof(Md5_32),1,pIn))
+ {
+ ReadStr(pIn,FileName);
+
+ fileinfo *pTarget=GetAbsFileInfo(FileName);
+
+ if (!pTarget->CompareMd5_32(0) && !pTarget->CompareMd5_32(Md5_32))
+ {
+ MakeNotDirty=false; /* BuildTarget had set the dirty flag, but since the md5 did not change it was a false dirty. This is for BuildTargets called before this routine */
+ #ifdef _DEBUG
+ cout << "Warning: trying to set to different md5's for Target "<<pTarget->GetQuotedFullFileName()<<" Old: "<<hex<<pTarget->GetCommandsMd5_32()<<" New: "<<Md5_32<<endl;
+ #endif
+ }
+ #ifdef _DEBUG
+ if (g_PrintAdditionalInfo)
+ cout << "Setting Md5 for Target "<<pTarget->GetQuotedFullFileName()<<" to "<<hex<<Md5_32<<endl;
+ #endif
+ pTarget->SetCommandsMd5_32(Md5_32); // If it was already there, just update the md5 value
+
+ AddTarget(pTarget);
+ }
+ if (MakeNotDirty)
+ ClearAutoDepsDirty();
+
+ fclose(pIn);
+}
+
+void mhmakefileparser::SaveAutoDepsFile()
+{
+ if (!IsAutoDepsDirty())
+ return;
+
+ if (g_Clean
+#ifdef _DEBUG
+ || g_DoNotExecute || g_GenProjectTree
+#endif
+ )
+ return; // do not save on clean or if no commands are executed
+
+ string DepFile=ExpandVar(AUTODEPFILE);
+ if (!DepFile.size())
+ {
+ return;
+ }
+ fileinfo *pDepFile=GetFileInfo(DepFile,m_MakeDir);
+
+#ifdef _DEBUG
+ if (g_PrintAdditionalInfo)
+ cout<<"Saving automatic dependency file "<<DepFile<<endl;
+#endif
+
+ FILE *pOut=fopen(pDepFile->GetFullFileName().c_str(),"wb");
+ if (!pOut)
+ {
+ /* Maybe it is because the directory does not exist, so try to create this first */
+ if (!MakeDirs(pDepFile->GetDir()))
+ {
+ #ifdef _DEBUG
+ if (!g_DoNotExecute)
+ #endif
+ cerr << "Error creating dir "<<pDepFile->GetDir()->GetFullFileName()<<endl;
+ return;
+ }
+ pOut=fopen(pDepFile->GetFullFileName().c_str(),"wb");
+
+ if (!pOut)
+ {
+ #ifdef _DEBUG
+ if (!g_DoNotExecute)
+ #endif
+ cerr << "Error creating file "<<DepFile<<endl;
+ return;
+ }
+ }
+ // First update the USER_ENVVARS variable and then save it to the dep file together with the md5 string
+ CreateUSED_ENVVARS();
+ uint32 Md5_32=CreateEnvMd5_32();
+ fwrite(&Md5_32,sizeof(Md5_32),1,pOut);
+ fprintf(pOut,"%s\n",m_Variables[USED_ENVVARS].c_str());
+
+ autodeps_t::const_iterator It=m_AutoDeps.begin();
+ while (It!=m_AutoDeps.end())
+ {
+ if (!It->second.second.empty())
+ {
+ fprintf(pOut,"%s\n",It->first->GetFullFileName().c_str());
+ deps_t::const_iterator DepIt=It->second.second.begin();
+ while (DepIt!=It->second.second.end())
+ {
+ fprintf(pOut,"%s\n",(*DepIt)->GetFullFileName().c_str());
+ DepIt++;
+ }
+ fprintf(pOut,"\n");
+ }
+ It++;
+ }
+ /* Now save the Md5 strings */
+ fprintf(pOut,"\n");
+
+ set<const fileinfo *>::iterator pIt=m_Targets.begin();
+ while (pIt!=m_Targets.end())
+ {
+ if (!(*pIt)->CompareMd5_32(0))
+ {
+ (*pIt)->WriteMd5_32(pOut);
+ string FileName=(*pIt)->GetFullFileName();
+ fwrite(FileName.c_str(),FileName.size(),1,pOut);
+ fputc('\n',pOut);
+ }
+ pIt++;
+ }
+
+ fclose(pOut);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Uses the SKIPHEADERS variable to check if we have to skip the header in
+// the automatic dependency scanning
+
+bool mhmakefileparser::SkipHeaderFile(const string &FileName)
+{
+ if (!m_SkipHeadersInitialized)
+ {
+ m_SkipHeadersInitialized=true;
+ string HeadersToSkip=ExpandVar(SKIPHEADERS);
+ const char *pTmp=HeadersToSkip.c_str();
+ while (*pTmp)
+ {
+ string Item;
+ pTmp=NextItem(pTmp,Item);
+ if (Item.find('%')==string::npos)
+ {
+ m_SkipHeaders.insert(Item);
+ }
+ else
+ {
+ m_PercentHeaders.push_back(Item);
+ }
+ }
+ }
+ if (m_SkipHeaders.find(FileName)!=m_SkipHeaders.end())
+ return true;
+
+ vector<string>::const_iterator It=m_PercentHeaders.begin();
+ vector<string>::const_iterator ItEnd=m_PercentHeaders.end();
+ while (It!=ItEnd)
+ {
+ if (PercentMatch(FileName,*It++))
+ return true;
+ }
+
+ return false;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+void mhmakefileparser::SetExport(const string &Var, const string &Val)
+{
+ m_Exports.insert(Var);
+#ifdef WIN32
+ if (!m_pEnv)
+ {
+ /* Environment not created yet, so create one */
+ char *pEnv=GetEnvironmentStrings();
+ char *pEnd=pEnv;
+ while (*pEnd)
+ {
+ while (*pEnd++);
+ }
+ size_t Len=pEnd-pEnv+1;
+ m_pEnv=(char*)malloc(Len);
+ memcpy(m_pEnv,pEnv,Len);
+ m_EnvLen=Len;
+ FreeEnvironmentStrings(pEnv);
+ }
+ /* First check if the variable is in the environment, if so remove it first */
+ char *pEnv=m_pEnv;
+ while (*pEnv)
+ {
+ const char *pVar=Var.c_str();
+ char *pStart=pEnv;
+ while (*pEnv!='=' && tolower(*pEnv)==tolower(*pVar))
+ {
+ pEnv++; pVar++;
+ }
+ if (*pEnv=='=' && !*pVar)
+ {
+ /* Variable found, remove it */
+ while (*pEnv++);
+ m_EnvLen-=pEnv-pStart;
+ while (*pEnv)
+ {
+ while (*pEnv)
+ {
+ *pStart=*pEnv++;
+ pStart++;
+ }
+ *pStart=*pEnv++;
+ pStart++;
+ }
+ *pStart=*pEnv;
+ break;
+ }
+ while (*pEnv++);
+ }
+ size_t VarLen=Var.length();
+ size_t ValLen=Val.length();
+ size_t Extra=VarLen+ValLen+2;
+ /* Add the variable at the end */
+ m_pEnv=(char*)realloc(m_pEnv,m_EnvLen+Extra);
+ pEnv=m_pEnv+m_EnvLen-1;
+ memcpy(pEnv,Var.c_str(),VarLen);
+ pEnv+=VarLen;
+ *pEnv++='=';
+ memcpy(pEnv,Val.c_str(),ValLen);
+ pEnv+=ValLen;
+ *pEnv++='\0';
+ *pEnv++='\0';
+ m_EnvLen+=Extra;
+#else
+ if (!m_pEnv)
+ {
+ /* Environment not created yet, so create one */
+ char **pEnv=environ;
+ char **pEnd=pEnv;
+ int Len=1;
+ while (*pEnd)
+ {
+ Len++;
+ pEnd++;
+ }
+ m_EnvLen=Len;
+ m_pEnv=(char**)malloc(Len*sizeof(pEnv));
+ int i=0;
+ while (*pEnv)
+ {
+ m_pEnv[i]=strdup(*pEnv);
+ i++;
+ pEnv++;
+ }
+ m_pEnv[i]=NULL;
+ }
+ /* First check if the variable is in the environment, if so replace it */
+ char **pEnv=m_pEnv;
+ while (*pEnv)
+ {
+ const char *pVar=Var.c_str();
+ char *pStart=*pEnv;
+ char *pTmp=pStart;
+ while (*pTmp!='=' && *pTmp==*pVar)
+ {
+ pTmp++; pVar++;
+ }
+ if (*pTmp=='=' && !*pVar)
+ {
+ free(*pEnv);
+ *pEnv=strdup((Var+"="+Val).c_str());
+ break;
+ }
+ pEnv++;
+ }
+ if (!*pEnv)
+ {
+ // Add it at the end of the list
+ m_pEnv=(char**)realloc(m_pEnv,(m_EnvLen+1)*sizeof(*pEnv));
+ m_pEnv[m_EnvLen-1]=strdup((Var+"="+Val).c_str());
+ m_pEnv[m_EnvLen++]=NULL;
+ }
+
+#endif
+}
+
+///////////////////////////////////////////////////////////////////////////////
+void mhmakefileparser::SetvPath(const string &Pattern, const string &Path)
+{
+ // First create the array of directory from the Path parameter. For now all entries need to
+ // be valid directories (extra checking). This could be improved by checking if there
+ // is a rule for creating the directory entry, but like first said, not for now.
+ refptr<fileinfoarray> pDirArray=new fileinfoarray;
+
+ const char *pTmp=Path.c_str();
+ while (*pTmp)
+ {
+ string Item;
+ pTmp=NextItem(pTmp,Item," \t:;");
+ if (!Item.empty())
+ {
+ fileinfo *pDir=GetFileInfo(Item,m_MakeDir);
+ if (!pDir->IsDir())
+ {
+ #ifdef WIN32
+ // On windows this could happen if a full pathname was specified, so we try together
+ // with the next item to check if this is not a valid directories
+ // but only if the the length of the item was 1 namely the driver letter
+ if (Item.length()==1)
+ {
+ string Rest;
+ pTmp=NextItem(pTmp,Rest," \t:;");
+ pDir=GetFileInfo(Item+":"+Rest,m_MakeDir);
+ #ifdef _DEBUG
+ if (g_PrintAdditionalInfo && !pDir->IsDir())
+ throw(pDir->GetFullFileName()+" is not a valid directory.");
+ #endif
+ }
+ #ifdef _DEBUG
+ else if (g_PrintAdditionalInfo)
+ cout << pDir->GetFullFileName() << " is not a valid directory.\n";
+ #endif
+ #else
+ #ifdef _DEBUG
+ if (g_PrintAdditionalInfo)
+ cout << pDir->GetFullFileName() << " is not a valid directory.\n";
+ #endif
+ #endif
+ }
+ pDirArray->push_back(pDir);
+ }
+ }
+ m_vPath.push_back(pair<string, refptr<fileinfoarray> >(Pattern,pDirArray));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// Search for the target using the vPath
+fileinfo* mhmakefileparser::SearchvPath(const fileinfo* pTarget)
+{
+ string TargetName=pTarget->GetName();
+ vector< pair< string, refptr<fileinfoarray> > >::iterator vPathIt=m_vPath.begin();
+ while (vPathIt!=m_vPath.end())
+ {
+ matchres Res;
+
+ if (PercentMatch(TargetName,vPathIt->first,&Res))
+ {
+ fileinfoarray::iterator pIt=vPathIt->second->begin();
+ while (pIt!=vPathIt->second->end())
+ {
+ fileinfo* pNewTarget=GetFileInfo(TargetName,*pIt);
+ mh_time_t TargetDate=StartBuildTarget(pNewTarget,false);
+ if (!TargetDate.IsDateValid())
+ TargetDate=WaitBuildTarget(pNewTarget);
+ if (pNewTarget->GetDate().DoesExist())
+ return pNewTarget;
+ pIt++;
+ }
+ }
+ vPathIt++;
+ }
+ return NULL;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//
+//Checks if the variables retreived from the environment or command-line have been
+//changed. Do this at late as possible because they can also be changed in theLexer
+//makefiles.
+//
+void mhmakefileparser::CheckEnv(void)
+{
+ if (CompareEnv())
+ {
+ #ifdef _DEBUG
+ if (!g_GenProjectTree)
+ cout << "Rebuilding everything of "<< m_MakeDir->GetQuotedFullFileName() <<" because environment and/or command-line variables have been changed.\n";
+ #endif
+ SetRebuildAll();
+ }
+
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//
+//Create a Md5 string from m_GlobalCommandLineVars and USED_ENVVARS
+//
+
+
+#define SkipVar(Var) (m_EnvVarsToIgnore.find(Var)!=m_EnvVarsToIgnore.end())
+
+#define DBGOUT(stuff)
+
+uint32 mhmakefileparser::CreateEnvMd5_32() const
+{
+ md5_context ctx;
+ string Md5;
+ string EnvVars=ExpandVar(USED_ENVVARS);
+ const char *pTmp=EnvVars.c_str();
+
+ // Now create the md5 string
+ md5_starts( &ctx );
+
+ DBGOUT(cout << "MD5 of " << m_MakeDir->GetQuotedFullFileName() << endl);
+
+ while (*pTmp)
+ {
+ string Var;
+ pTmp=NextItem(pTmp,Var,";");
+ if (!SkipVar(Var))
+ {
+ string Val=ExpandVar(Var);
+ transform(Val.begin(),Val.end(),Val.begin(),(int(__CDECL *)(int))toupper);
+ DBGOUT(cout << GetMakeDir()->GetQuotedFullFileName() << " -> Setting GetFromEnv var " << Var << " to " << Val << endl);
+ md5_update( &ctx, (uint8 *) Var.c_str(), (unsigned long)Var.size());
+ md5_update( &ctx, (uint8 *) "=", 1);
+ md5_update( &ctx, (uint8 *) Val.c_str(), (unsigned long)Val.size());
+ }
+ }
+
+ return md5_finish32( &ctx);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Makes sure that the makefile exports are set in the environment
+
+bool mhmakefileparser::CompareEnv() const
+{
+ uint32 Md5_32=CreateEnvMd5_32();
+#ifdef _DEBUG
+ if (!g_GenProjectTree && Md5_32!=m_EnvMd5_32)
+ cout << "Environment has been changed: "<<hex<<m_EnvMd5_32<<" to "<<Md5_32<<endl;
+#endif
+ return Md5_32!=m_EnvMd5_32;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Makes sure that the makefile exports are set in the environment
+mh_time_t mhmakefileparser::m_sBuildTime;
+
+void mhmakefileparser::InitBuildTime()
+{
+#ifdef WIN32
+ FILETIME ft;
+ GetSystemTimeAsFileTime(&ft);
+ m_sBuildTime=*(mh_basetime_t*)&ft;
+#else
+ m_sBuildTime=time(NULL);
+#endif
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Returns a variable from the environment or from the command line and adds it the m_UsedEnvVars
+string mhmakefileparser::GetFromEnv(const string &Var, bool *pDefined) const
+{
+ /* First we look into the command line variables, before we are looking in the environment */
+ map<string,string>::const_iterator pLineFind=m_CommandLineVars.find(Var);
+ if (pLineFind!=m_CommandLineVars.end())
+ {
+ ((mhmakefileparser*)this)->m_UsedEnvVars.insert(Var);
+ ((mhmakefileparser*)this)->m_Variables[Var]=pLineFind->second;
+ if (pDefined) *pDefined=true;
+ return pLineFind->second;
+ }
+
+ const char *pEnv=getenv(Var.c_str());
+ if (!pEnv)
+ {
+ if (pDefined) *pDefined=false;
+ return g_EmptyString;
+ }
+ ((mhmakefileparser*)this)->m_UsedEnvVars.insert(Var);
+
+ ((mhmakefileparser*)this)->m_Variables[Var]=pEnv;
+ if (pDefined) *pDefined=true;
+ return pEnv;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Creates the variable USED_ENVVARS to be saved in the autodeps file
+//
+
+void mhmakefileparser::CreateUSED_ENVVARS()
+{
+
+ set<string> Variables;
+
+ set<string>::const_iterator It=m_UsedEnvVars.begin();
+ set<string>::const_iterator ItEnd=m_UsedEnvVars.end();
+
+ while (It!=ItEnd)
+ {
+ string Var=*It;
+ if (!SkipVar(Var))
+ {
+ transform(Var.begin(),Var.end(),Var.begin(),(int(__CDECL *)(int))toupper);
+ Variables.insert(Var);
+ }
+ It++;
+ }
+
+ It=m_Exports.begin();
+ ItEnd=m_Exports.end();
+
+ while (It!=ItEnd)
+ {
+ string Var=*It;
+ if (!SkipVar(Var))
+ {
+ transform(Var.begin(),Var.end(),Var.begin(),(int(__CDECL *)(int))toupper);
+ Variables.insert(Var);
+ }
+ It++;
+ }
+
+ map<string,string>::const_iterator CLItEnd=loadedmakefile::sm_Statics.m_GlobalCommandLineVars.end();
+ map<string,string>::const_iterator CLIt=loadedmakefile::sm_Statics.m_GlobalCommandLineVars.begin();
+ while (CLIt!=CLItEnd)
+ {
+ string Var=CLIt->first;
+ if (!SkipVar(Var))
+ {
+ transform(Var.begin(),Var.end(),Var.begin(),(int(__CDECL *)(int))toupper);
+ Variables.insert(Var);
+ }
+ CLIt++;
+ }
+
+ It=Variables.begin();
+ ItEnd=Variables.end();
+ string Val;
+ while (It!=ItEnd)
+ {
+ Val+=*It;
+ Val+=";";
+ It++;
+ }
+
+ m_Variables[USED_ENVVARS]=Val;
+}
+
+static string s_TrueString("1");
+static string s_FalseString("0");
+
+static string AndExpression(const string &First, const string &Second)
+{
+ if (First.empty() || First==s_FalseString)
+ {
+ return g_EmptyString;
+ }
+ else
+ {
+ return Second.empty() || Second==s_FalseString ? g_EmptyString : s_TrueString;
+ }
+}
+
+static string OrExpression(const string &First, const string &Second)
+{
+ if (First.empty() || First==s_FalseString)
+ {
+ return Second.empty() || Second==s_FalseString ? g_EmptyString : s_TrueString;
+ }
+ else
+ {
+ return s_TrueString;
+ }
+}
+
+string mhmakefileparser::ResolveExpression(const string &InExpr,string &Rest) const
+{
+ unsigned i=0;
+ string Ret;
+ string Expr=InExpr;
+
+ Rest=g_EmptyString;
+
+ while (i<Expr.length())
+ {
+ while (strchr(" \t\r",Expr[i])) i++;
+ switch (Expr[i])
+ {
+ case '!':
+ if (i==Expr.length()-1)
+ {
+ i++; // to break out of the loop
+ Ret=s_TrueString; /* the input was ! which means true */
+ }
+ else if (Expr[i+1]!='=')
+ {
+ Ret=ResolveExpression(Expr.substr(i+1),Expr);
+ Ret = Ret.empty() || Ret==s_FalseString ? s_TrueString : g_EmptyString;
+ i=0;
+ }
+ else
+ {
+ Ret = Ret!=ResolveExpression(Expr.substr(i+2),Expr) ? s_TrueString : g_EmptyString;
+ i=0;
+ }
+ break;
+ case '&':
+ #ifdef _DEBUG
+ if (i==Expr.length()-1)
+ {
+ throw(string("Error in expression near ")+Expr[i]+": "+InExpr);
+ } else
+ #endif
+ if (Expr[i+1]!='&')
+ {
+ Ret+=Expr[i++];
+ }
+ else
+ {
+ Ret=AndExpression(Ret,ResolveExpression(Expr.substr(i+2),Expr));
+ i=0;
+ }
+ break;
+ case '|':
+ #ifdef _DEBUG
+ if (i==Expr.length()-1)
+ {
+ throw(string("Error in expression near ")+Expr[i]+": "+InExpr);
+ } else
+ #endif
+ if (Expr[i+1]!='|')
+ {
+ Ret+=Expr[i++];
+ }
+ else
+ {
+ Ret=OrExpression(Ret,ResolveExpression(Expr.substr(i+2),Expr));
+ i=0;
+ }
+ break;
+ case '(':
+ if (Ret=="defined")
+ {
+ Ret=IsDefined(ResolveExpression(Expr.substr(i+1),Expr)) ? s_TrueString : g_EmptyString;
+ }
+ else
+ {
+ Ret+=ResolveExpression(Expr.substr(i+1),Expr);
+ }
+ i=0;
+ break;
+ case ')':
+ Rest=Expr.substr(i+1);
+ return Ret;
+ break;
+ case '"':
+ {
+ i++;
+ while (i<Expr.length())
+ {
+ char Char=Expr[i++];
+ if (Char=='"')
+ break;
+ Ret+=Char;
+ }
+ }
+ break;
+ case '=':
+ if (i==Expr.length()-1)
+ {
+ i++; // To break out of the loop
+ }
+ else
+ if (Expr[i+1]!='=')
+ {
+ Ret+=Expr[i++];
+ }
+ else
+ {
+ Ret = Ret==ResolveExpression(Expr.substr(i+2),Expr) ? s_TrueString : g_EmptyString;
+ i=0;
+ }
+ break;
+ default:
+ Ret+=Expr[i++];
+ break;
+ }
+ }
+ return Ret;
+}
+///////////////////////////////////////////////////////////////////////////////
+bool mhmakefileparser::IsExprTrue(const string &EqualExpr) const
+{
+ string Expr=ExpandExpression(EqualExpr);
+ string Rest;
+ Expr=ResolveExpression(Expr,Rest);
+ if (Expr.empty() || Expr==s_FalseString)
+ return false;
+ else
+ return true;
+}
+
diff --git a/tools/mhmake/src/mhmakefileparser.h b/tools/mhmake/src/mhmakefileparser.h
new file mode 100644
index 000000000..848329226
--- /dev/null
+++ b/tools/mhmake/src/mhmakefileparser.h
@@ -0,0 +1,436 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+#ifndef __MHMAKEFILE_PARSER__
+#define __MHMAKEFILE_PARSER__
+
+#include "fileinfo.h"
+#include "util.h"
+#include "commandqueue.h"
+
+class rule;
+
+#include "flexlexer.h"
+
+class mhmakefileparser;
+typedef string (mhmakefileparser::*function_f)(const string &) const;
+
+struct funcdef
+{
+ const char *szFuncName;
+ function_f pFunc;
+};
+
+class fileinfoarray : public refbase,public vector<fileinfo*>
+{
+};
+
+typedef set<fileinfo*> deps_t;
+typedef pair< bool, deps_t > autodeps_entry_t;
+typedef map<fileinfo*, autodeps_entry_t > autodeps_t;
+
+namespace yy
+{
+ class location;
+ class mhmakeparser;
+}
+
+class mhmakefileparser : public refbase
+{
+ friend class yy::mhmakeparser;
+
+private:
+ static commandqueue sm_CommandQueue;
+ static stack<yy::mhmakeparser*> sm_ParserStack; // Keeps track of the currently active parser
+private:
+ fileinfo *m_RuleThatIsBuild;
+ vector<string> m_ToBeIncludeAfterBuild;
+ vector<string> m_MakefilesToLoad;
+ fileinfo* m_AutoDepFileLoaded;
+ mh_time_t m_Date;
+ uint32 m_EnvMd5_32; /* Cached Md5_32 value of the userd environment variables */
+#ifdef _DEBUG
+ int m_ImplicitSearch;
+#endif
+ map<string,string> m_CommandCache;
+
+protected:
+ map<string,string> m_Variables;
+ map<string,string> m_CommandLineVars;
+ const fileinfo *m_MakeDir;
+ refptr<rule> m_pCurrentRule;
+ refptr<fileinfoarray> m_pCurrentItems;
+ refptr<fileinfoarray> m_pCurrentDeps;
+ fileinfo* m_FirstTarget;
+ fileinfoarray m_IncludedMakefiles;
+ refptr<fileinfoarray> m_pIncludeDirs;
+ string m_IncludeDirs;
+
+ bool m_DoubleColonRule;
+ bool m_AutoDepsDirty;
+ bool m_ForceAutoDepRescan;
+ set<string> m_SkipHeaders; // Headers to skip
+ vector<string> m_PercentHeaders; // Percent specification of headers to skip
+ bool m_SkipHeadersInitialized; // true when previous 2 variables are initialized
+
+ bool m_RebuildAll; /* true when to rebuild all targets of this makefile */
+
+ set<string> m_UsedEnvVars; // Array containing a list of variables that are taken from the environment (This is used for rebuild checking)
+ set<string> m_EnvVarsToIgnore; // List of env vars that do not have to be taken into account for rebuild checking
+ set<string> m_Exports; // Array containing a list of exported variables in the makefile (This is used for rebuild checking)
+ vector< pair< string, refptr<fileinfoarray> > > m_vPath;
+#ifdef WIN32
+ char *m_pEnv; // New environment in case the makefile exports variables
+#else
+ char **m_pEnv; // New environment in case the makefile exports variables
+#endif
+ size_t m_EnvLen; // Current length of m_pEnv
+
+ autodeps_t m_AutoDeps;
+ set< const fileinfo* > m_Targets; // List of targets that are build by this makefile
+
+ vector<string> m_FilesToRemoveAtEnd;
+
+ static mh_time_t m_sBuildTime;
+private:
+ string ResolveExpression(const string &InExpr,string &Rest) const;
+
+public:
+#ifdef _DEBUG
+ deque<fileinfo*> m_TargetStack; /* Used to detect circular dependencies */
+#endif
+
+ mhmakefileparser(const map<string,string> &CommandLineVars)
+ : m_CommandLineVars(CommandLineVars)
+ ,m_AutoDepsDirty(false)
+ ,m_ForceAutoDepRescan(false)
+ ,m_SkipHeadersInitialized(false)
+ ,m_RebuildAll(false)
+ ,m_EnvMd5_32(0)
+ ,m_pEnv(NULL)
+ ,m_FirstTarget(NULL)
+ ,m_RuleThatIsBuild(NULL)
+ ,m_AutoDepFileLoaded(NULL)
+ #ifdef _DEBUG
+ ,m_ImplicitSearch(0)
+ #endif
+ {
+ if (!m_FunctionsInitialised) InitFuncs();
+ SetVariable("MAKE_VERSION",MHMAKEVER);
+ SetVariable(OBJEXTVAR,OBJEXT);
+ SetVariable(EXEEXTVAR,EXEEXT);
+ m_EnvVarsToIgnore.insert(WC_REVISION);
+ m_EnvVarsToIgnore.insert(WC_URL);
+ m_EnvVarsToIgnore.insert(MAKE);
+ }
+
+ /* Needed if you only want to use the searchcommand and execommand functions */
+ mhmakefileparser(const fileinfo *pMakeDir) :
+ m_MakeDir(pMakeDir)
+ , m_AutoDepsDirty(false)
+ , m_pEnv(NULL)
+ {}
+
+ static void SetNrParallelBuilds(int NrParallelBuilds)
+ {
+ sm_CommandQueue.SetNrParallelBuilds(NrParallelBuilds);
+ }
+
+ bool CompareEnv() const;
+ uint32 CreateEnvMd5_32() const;
+ string GetFromEnv(const string &Var, bool *pDefined=NULL) const;
+ void CreateUSED_ENVVARS();
+
+ void SetExport(const string & Var, const string & Val);
+ void SetvPath(const string & Pattern, const string & Path);
+
+ void CheckEnv(void);
+
+ #ifdef _DEBUG
+ int ImplicitSearch() const
+ {
+ return m_ImplicitSearch;
+ }
+ #endif
+
+ void SetAutoDepsDirty()
+ {
+ m_AutoDepsDirty=true;
+ }
+
+ void ClearAutoDepsDirty()
+ {
+ m_AutoDepsDirty=false;
+ }
+ bool IsAutoDepsDirty() const
+ {
+ return m_AutoDepsDirty;
+ }
+
+ void SetRebuildAll()
+ {
+ m_RebuildAll=true;
+ SetAutoDepsDirty(); /* This is to be sure that all new calculated md5 strings are saved. */
+ }
+
+ void SetVariable(const string &Var, const string &Val)
+ {
+ m_Variables[Var]=Val;
+ }
+ void DeleteVariable(const string &Var)
+ {
+ m_Variables.erase(Var);
+ }
+ bool GetVariable(const string &Var, string &Val)
+ {
+ map<string,string>::const_iterator pIt=m_Variables.find(Var);
+ if (pIt==m_Variables.end())
+ {
+ return false;
+ }
+ else
+ {
+ Val = pIt->second;
+ return true;
+ }
+ }
+
+ void EnableAutoDepRescan(void)
+ {
+ m_ForceAutoDepRescan=true;
+ SetAutoDepsDirty();
+ }
+ bool ForceAutoDepRescan(void)
+ {
+ return m_ForceAutoDepRescan;
+ }
+ void SetRuleThatIsBuild(fileinfo *pTarget)
+ {
+ m_RuleThatIsBuild=pTarget;
+ }
+ void ClearRuleThatIsBuild()
+ {
+ m_RuleThatIsBuild=NULL;
+ }
+ void GetAutoDepsIfNeeded(fileinfo *pTarget, const fileinfo *pFirstDep);
+ void UpdateAutomaticDependencies(fileinfo *pTarget);
+ void UpdateNoRuleAutomaticDependencies(fileinfo *pTarget);
+ const refptr<fileinfoarray> GetIncludeDirs() const;
+ void GetAutoDeps(const fileinfo *pFirstDep, deps_t &Autodeps);
+ void SaveAutoDepsFile();
+ void LoadAutoDepsFile(fileinfo *pDepFile);
+ bool SkipHeaderFile(const string &FileName);
+ void InitEnv() const;
+
+ virtual ~mhmakefileparser() /* virtual to be sure the correct destructor is called when we delete with a pointer to this class which in reality is a pointer to a derived class */
+ {
+ SaveAutoDepsFile();
+ /* remove generated temporary batch files */
+ vector<string>::const_iterator It=m_FilesToRemoveAtEnd.begin();
+ while (It!=m_FilesToRemoveAtEnd.end())
+ {
+ remove(It->c_str());
+ It++;
+ }
+#ifndef WIN32
+ char **pEnv=m_pEnv;
+ if (pEnv)
+ while (*pEnv) free(*pEnv++);
+#endif
+ free(m_pEnv);
+ }
+
+ virtual int parse()
+ {
+ throw("Please derive if you want to execute yyparse.");
+ }
+
+ int ParseFile(const fileinfo *pFileInfo,const fileinfo *pMakeDir=NULL);
+ int ParseString(const string &StringIn);
+
+ /* Functions to handle variables */
+ bool IsDefined(const string &Var) const;
+ bool IsEqual(const string &EqualExpr) const;
+ bool IsExprTrue(const string &EqualExpr) const;
+ string ExpandExpression(const string &Expr) const;
+ string ExpandMacro(const string &Expr) const;
+ string ExpandVar(const string &Var) const;
+
+ void PrintVariables(bool Expand=false) const;
+
+ /* Functions for macro functions */
+ static funcdef m_FunctionsDef[];
+ static map<string,function_f> m_Functions;
+ static bool m_FunctionsInitialised;
+ static void InitFuncs(void);
+ string f_filter(const string &) const;
+ string f_call(const string &) const;
+ string f_if(const string &) const;
+ string f_findstring(const string &) const;
+ string f_firstword(const string &) const;
+ string f_wildcard(const string &) const;
+ string f_subst(const string &) const;
+ string f_patsubst(const string &) const;
+ string f_concat(const string &) const;
+ string f_basename(const string & Arg) const;
+ string f_notdir(const string & Arg) const;
+ string f_dir(const string & Arg) const;
+ string f_shell(const string & Arg) const;
+ string f_relpath(const string & Arg) const;
+ string f_realpath(const string & Arg) const;
+ string f_toupper(const string & Arg) const;
+ string f_tolower(const string & Arg) const;
+ string f_exist(const string & Arg) const;
+ string f_filesindirs(const string & Arg) const;
+ string f_fullname(const string & Arg) const;
+ string f_addprefix(const string & Arg) const;
+ string f_addsuffix(const string & Arg) const;
+ string f_filterout(const string & Arg) const;
+ string f_word(const string & Arg) const;
+ string f_words(const string & Arg) const;
+ string f_strip(const string & Arg) const;
+ string f_which(const string & Arg) const;
+ string f_foreach(const string & Arg) const;
+ string f_eval(const string & Arg) const;
+ string f_sort(const string & Arg) const;
+ string f_error(const string & Arg) const;
+ string f_info(const string & Arg) const;
+ string f_warning(const string & Arg) const;
+
+ fileinfo* GetFirstTarget() const
+ {
+ return m_FirstTarget;
+ }
+
+ const fileinfo *GetMakeDir() const
+ {
+ return m_MakeDir;
+ }
+
+ mh_time_t GetDate(void) const
+ {
+ return m_Date;
+ }
+
+ void UpdateDate(mh_time_t Date)
+ {
+ if (Date.IsNewer(m_Date))
+ m_Date=Date;
+ }
+
+ void AddTarget(const fileinfo* pTarget)
+ {
+ m_Targets.insert(pTarget);
+ }
+ /* Starts building the target,
+ returns 0 when target build is not finished,
+ returns the date of the target when target is build, especially important for phony rules, since this will be the youngest date of all dependencies */
+ mh_time_t StartBuildTarget(fileinfo* pTarget, bool bCheckTargetDir=true);
+ /* Waits for the target being build, returns the date of the target. Not needed to be cald when StartBuildTarget returned a value different from zero */
+ mh_time_t WaitBuildTarget(fileinfo* pTarget);
+
+ fileinfo* SearchvPath(const fileinfo* pTarget); /* Search for the target using the vPath */
+
+ /* Use the following command when you want to wait for the target is built */
+ mh_time_t BuildTarget(fileinfo* pTarget, bool bCheckTargetDir=true)
+ {
+ mh_time_t TargetDate=StartBuildTarget(pTarget,bCheckTargetDir);
+ if (!TargetDate.IsDateValid())
+ TargetDate=WaitBuildTarget(pTarget);
+ return TargetDate;
+ }
+
+ void BuildDependencies(const refptr<rule> &pRule, fileinfo* pTarget, mh_time_t TargetDate, mh_time_t &YoungestDate, bool &MakeTarget);
+
+ void BuildIncludedMakefiles();
+
+ void AddIncludedMakefile(fileinfo* pMakeInfo)
+ {
+ UpdateDate(pMakeInfo->GetDate());
+ m_IncludedMakefiles.push_back(pMakeInfo);
+ }
+ fileinfoarray &GetIncludedMakefiles()
+ {
+ return m_IncludedMakefiles;
+ }
+
+ void IncludeAfterBuild(const string &IncludeFile)
+ {
+ m_ToBeIncludeAfterBuild.push_back(IncludeFile);
+ }
+ void ParseBuildedIncludeFiles();
+
+ void AddMakefileToMakefilesToLoad(const string &Makefile)
+ {
+ m_MakefilesToLoad.push_back(Makefile);
+ }
+ vector<string>& GetMakefilesToLoad()
+ {
+ return m_MakefilesToLoad;
+ }
+ void AddRule();
+
+ mh_pid_t ExecuteCommand(string Command, bool &IgnoreError, string *pOutput=NULL);
+ mh_pid_t ExecuteCommand(string Command, string *pOutput=NULL)
+ {
+ bool IgnoreError;
+ return ExecuteCommand(Command, IgnoreError, pOutput);
+ }
+ string GetFullCommand(const string &Command);
+
+ static void InitBuildTime();
+
+ void SplitToItems(const string &String, vector<fileinfo*> &Items) const;
+ mh_pid_t DeleteFiles(const string &Params) const;
+ mh_pid_t CopyFiles(const string &Params) const;
+ mh_pid_t TouchFiles(const string &Params) const;
+ mh_pid_t EchoCommand(const string &Params) const;
+ mh_pid_t MakeDirsCommand(const string &Params) const;
+ string SearchCommand(const string &Command, const string &Extension="") const;
+ const string &GetPythonExe() const;
+ int SearchPath(const char *szCommand, const char *pExt, size_t Len, char *szFullCommand,char **pFilePart) const;
+ mh_pid_t OsExeCommand(const string &Command, const string &Params, bool IgnoreError, string *pOutput) const;
+
+ static string GetFileNameLineNo(void);
+};
+
+class mhmakeparserbase
+{
+protected:
+ mhmakefileparser *m_pMakefile;
+ mhmakeFlexLexer *m_ptheLexer;
+public:
+ mhmakeparserbase(mhmakefileparser *pMakefile, mhmakeFlexLexer *pLexer)
+ : m_pMakefile(pMakefile), m_ptheLexer(pLexer)
+ {
+ }
+ int yylex (YYSTYPE* yylval, yy::location* yylloc)
+ {
+ return m_ptheLexer->yylex(yylval,yylloc);
+ }
+ string &GetInputFilename(void) const
+ {
+ return m_ptheLexer->GetInputFilename();
+ }
+
+};
+
+#endif
+
diff --git a/tools/mhmake/src/mhmakelexer.l b/tools/mhmake/src/mhmakelexer.l
new file mode 100644
index 000000000..e336fefbf
--- /dev/null
+++ b/tools/mhmake/src/mhmakelexer.l
@@ -0,0 +1,955 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+/* -------------- declaration section -------------- */
+%{
+
+#include "fileinfo.h"
+#include "rule.h"
+#include "util.h"
+
+static uint32 LoadMakMd5(fileinfo *pTarget)
+{
+ uint32 Md5_32=0;
+ string FileName=pTarget->GetFullFileName();
+ FileName+=".md5_32";
+ FILE *pFile=fopen(FileName.c_str(),"rb");
+ if (!pFile)
+ return Md5_32;
+ if (1!=fread(&Md5_32,sizeof(Md5_32),1,pFile))
+ {
+ fclose(pFile);
+ return Md5_32;
+ }
+ pTarget->SetCommandsMd5_32(Md5_32);
+ fclose(pFile);
+ return Md5_32;
+}
+
+static void SaveMakMd5(fileinfo *pTarget)
+{
+ string FileName=pTarget->GetFullFileName();
+ FileName+=".md5_32";
+ FILE *pFile=fopen(FileName.c_str(),"wb");
+ if (!pFile)
+ {
+ throw string("Error creating file ")+FileName;
+ }
+ pTarget->WriteMd5_32(pFile);
+ fclose(pFile);
+}
+
+static void ReplaceCurlyBraces(string &String)
+{
+ int Pos=String.find_first_of('{',0);
+ if (Pos!=(int)string::npos)
+ {
+ /* if not { found, } will not be there eather (or it is a valid syntax, so it may generate an error) */
+ do
+ {
+ String.replace(Pos,1,1,'(');
+ Pos=String.find_first_of('{',Pos);
+ }
+ while (Pos!=(int)string::npos);
+ Pos=0;
+ while ((Pos=String.find_first_of('}',Pos))!=(int)string::npos)
+ String.replace(Pos,1,1,')');
+ }
+}
+
+#include "mhmakeparser.hpp"
+
+#define YY_DECL int mhmakeFlexLexer::yylex(yy::mhmakeparser::semantic_type* yylval, yy::mhmakeparser::location_type* yylloc)
+
+/* By default yylex returns int, we use token_type.
+ Unfortunately yyterminate by default returns 0, which is
+ not of token_type. */
+#define yyterminate() return yy::mhmakeparser::token::END
+
+%}
+
+%option prefix="mhmake"
+%option never-interactive
+%option 8bit
+%option c++
+%option full
+%option noyywrap
+%option warn
+
+/* -------------- rules section -------------- */
+%x INCLUDE IFDEF IF IFNDEF SKIPUNTILELSEORENDIF QUOTE MAKEEXPRES SINGLEQUOTE COMMANDPARSE
+%x IFEQ IFNEQ LOAD_MAKEFILE
+%x DEFINE
+
+%{
+# define YY_USER_ACTION yylloc->columns (yyleng);
+
+#define inclineno() yylloc->incline()
+#define lineno() yylloc->end.line
+#define colno() yylloc->end.column
+
+
+%}
+%%
+%{
+ yylloc->step ();
+%}
+
+ /*---------------------------------------------------------------------------*/
+[ \t\r]*\n[ ][ \t]* {
+ yy_set_bol(1); // Make sure the next rule also matches the ^
+ inclineno();
+ return yy::mhmakeparser::token::NEWLINE;
+}
+
+[ \t\r]*\n {
+ PRINTF(("%s %d: NEWLINE:\n",m_InputFileName.c_str(),lineno()));
+ inclineno();
+ return yy::mhmakeparser::token::NEWLINE;
+}
+
+ /*---------------------------------------------------------------------------*/
+^[s\-]?include {
+ PRINTF(("%s %d: INCLUDE: ",m_InputFileName.c_str(),lineno()));
+ BEGIN(INCLUDE);
+ unsigned i=0;
+ while (strchr(" \t",yytext[i])) i++;
+ if (strchr("-s",yytext[i]))
+ m_IgnoreIncludeError=true;
+ else
+ m_IgnoreIncludeError=false;
+ return yy::mhmakeparser::token::INCLUDEMAK; // Return a newline to be sure that the previous line is completely parse by yacc (in case it is a variable definition)
+}
+
+ /*****************************************************************************/
+<INCLUDE>[ \t]* /* eat the whitespace */
+ /*---------------------------------------------------------------------------*/
+<INCLUDE>[^\r\n]+ { /* got the include file name */
+ mhmakefileparser *pParser=GetParser();
+
+ /* replace the {} by () before expanding */
+ string IncludeFileNames(yytext);
+ ReplaceCurlyBraces(IncludeFileNames);
+ IncludeFileNames=pParser->ExpandExpression(IncludeFileNames);
+ PRINTF(("%s -> %s\n",yytext,IncludeFileNames.c_str()));
+
+ const char *pTmp=IncludeFileNames.c_str();
+ while (*pTmp)
+ {
+ string IncludeFileName;
+ pTmp=NextItem(pTmp,IncludeFileName);
+ if (!IncludeFileName.empty())
+ {
+ PRINTF(("%s -> %s\n",yytext,IncludeFileName.c_str()));
+ fileinfo *pInclude=GetFileInfo(IncludeFileName,pParser->GetMakeDir());
+ /* Already build the include file, in case we already have a rule for it. */
+ if (pInclude->GetRule())
+ {
+ uint32 Md5_32=LoadMakMd5(pInclude);
+ pParser->BuildTarget(pInclude);
+ if (!pInclude->CompareMd5_32(Md5_32))
+ SaveMakMd5(pInclude);
+ }
+
+ pParser->AddIncludedMakefile(pInclude);
+
+ string strToInclude=pInclude->GetFullFileName();
+ INSTACK *pStackElem=new INSTACK(YY_CURRENT_BUFFER, strToInclude, m_InputFileName, yylloc);
+ if ( pStackElem->fail() )
+ {
+ delete pStackElem;
+ if (!m_IgnoreIncludeError)
+ {
+ mystack::reverse_iterator StackIt=m_IncludeStack.rbegin();
+ while (StackIt!=m_IncludeStack.rend())
+ {
+ cout<<" in "<<(*StackIt)->m_FileName<<" ("<<(*StackIt)->yylloc<<")";
+ StackIt++;
+ }
+ cout<<endl;
+ cout<<"Warning error opening file "<<strToInclude<<" in "<<m_InputFileName<<" ("<<lineno()<<")\n";
+ pParser->IncludeAfterBuild(strToInclude);
+ }
+ else
+ pInclude->SetPhony(); /* To be sure that no message is printed when mhmake is trying to build the file later */
+ }
+ else
+ {
+ m_IncludeStack.push(pStackElem);
+
+ m_InputFileName=strToInclude;
+ yylloc->initialize(&m_InputFileName);
+
+ yypush_buffer_state(yy_create_buffer( pStackElem->GetStream(), YY_BUF_SIZE ));
+ yyrestart(pStackElem->GetStream());
+ }
+
+ }
+ }
+
+ BEGIN(INITIAL);
+}
+
+ /*---------------------------------------------------------------------------*/
+load_makefile {
+ PRINTF(("%s %d: LOAD_MAKEFILE:\n",m_InputFileName.c_str(),lineno()));
+ BEGIN(LOAD_MAKEFILE);
+ return yy::mhmakeparser::token::NEWLINE; // Return a newline to be sure that the previous line is completely parse by yacc (in case it is a variable definition)
+}
+
+ /*****************************************************************************/
+<LOAD_MAKEFILE>[^\r\n]+ {
+ string ListOfMakefiles((const char*)yytext);
+ ReplaceCurlyBraces(ListOfMakefiles);
+ ListOfMakefiles=GetParser()->ExpandExpression(ListOfMakefiles);
+ PRINTF(("%s %d: LOAD_MAKEFILE: '%s'\n",m_InputFileName.c_str(),lineno(),ListOfMakefiles.c_str()));
+
+ const char *pTmp=ListOfMakefiles.c_str();
+ while (*pTmp)
+ {
+ string Item;
+ pTmp=NextCharItem(pTmp,Item,';');
+ if (Item.empty())
+ {
+ throw m_InputFileName + "(" + stringify(lineno()) + "): Error in load_makefile statement";
+ }
+ GetParser()->AddMakefileToMakefilesToLoad(Item);
+ }
+
+}
+ /*---------------------------------------------------------------------------*/
+<LOAD_MAKEFILE>\r?\n {
+ inclineno();
+ BEGIN(INITIAL);
+ return yy::mhmakeparser::token::NEWLINE;
+}
+
+ /*---------------------------------------------------------------------------*/
+[ \t]+ {
+ PRINTF(("%s %d: SPACE:\n",m_InputFileName.c_str(),lineno()));
+ return yy::mhmakeparser::token::SPACE;
+}
+
+ /*---------------------------------------------------------------------------*/
+[ \t]*override[ \t]* {
+ // override is not supported by mhmake, it is the default behavior
+ PRINTF(("%s %d: SPACE (ignoring override):\n",m_InputFileName.c_str(),lineno()));
+ return yy::mhmakeparser::token::SPACE;
+}
+
+ /*---------------------------------------------------------------------------*/
+[ \t]*\|[ \t]*\\[ \t\r]*\n[ \t]* {
+ PRINTF(("%s %d: EQUAL: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ inclineno();
+ yylval->theString=" | ";
+ return yy::mhmakeparser::token::PIPE;
+}
+
+[ \t]*\|[ \t]* {
+ PRINTF(("%s %d: EQUAL: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ yylval->theString=" | ";
+ return yy::mhmakeparser::token::PIPE;
+}
+
+ /*---------------------------------------------------------------------------*/
+[ \t]*=[ \t]*\\[ \t\r]*\n[ \t]* {
+ PRINTF(("%s %d: EQUAL: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ inclineno();
+ yylval->theString=(const char *)yytext;
+ return yy::mhmakeparser::token::EQUAL;
+}
+
+[ \t]*=[ \t]* {
+ PRINTF(("%s %d: EQUAL: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ yylval->theString=(const char *)yytext;
+ return yy::mhmakeparser::token::EQUAL;
+}
+
+ /*---------------------------------------------------------------------------*/
+[ \t]*:=[ \t]*\\[ \t\r]*\n[ \t]* {
+ inclineno();
+ PRINTF(("%s %d: IMEQUAL: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ return yy::mhmakeparser::token::IMEQUAL;
+}
+
+[ \t]*:=[ \t]* {
+ PRINTF(("%s %d: IMEQUAL: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ return yy::mhmakeparser::token::IMEQUAL;
+}
+
+ /*---------------------------------------------------------------------------*/
+[ \t]*\?=[ \t]*\\[ \t\r]*\n[ \t]* {
+ inclineno();
+ PRINTF(("%s %d: OPTEQUAL: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ return yy::mhmakeparser::token::OPTEQUAL;
+}
+
+[ \t]*\?=[ \t]* {
+ PRINTF(("%s %d: OPTEQUAL: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ return yy::mhmakeparser::token::OPTEQUAL;
+}
+
+ /*---------------------------------------------------------------------------*/
+[ \t]*\+=[ \t]*\\[ \t\r]*\n[ \t]* {
+ PRINTF(("%s %d: PEQUAL: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ inclineno();
+ return yy::mhmakeparser::token::PEQUAL;
+}
+
+[ \t]*\+=[ \t]* {
+ PRINTF(("%s %d: PEQUAL: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ return yy::mhmakeparser::token::PEQUAL;
+}
+
+ /*---------------------------------------------------------------------------*/
+\\; {
+ PRINTF(("%s %d: -Escaped SEMICOLON (STRING): %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ yylval->theString=(const char *)yytext+1;
+ return yy::mhmakeparser::token::STRING;
+}
+ /*---------------------------------------------------------------------------*/
+[ \t]*;[ \t]*\\[ \t\r]*\n[ \t]* {
+ PRINTF(("%s %d: -SEMICOLON (NEWLINE): %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ m_curtoken=g_EmptyString;
+ inclineno();
+ BEGIN(COMMANDPARSE);
+ return yy::mhmakeparser::token::NEWLINE;
+}
+
+[ \t]*;[ \t]* {
+ PRINTF(("%s %d: -SEMICOLON (NEWLINE): %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ m_curtoken=g_EmptyString;
+ BEGIN(COMMANDPARSE);
+ return yy::mhmakeparser::token::NEWLINE;
+}
+
+ /*---------------------------------------------------------------------------*/
+[ \t]*::[ \t]*\\[ \t\r]*\n[ \t]* {
+ PRINTF(("%s %d: DOUBLECOLON: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ inclineno();
+ yylval->theString=(const char *)yytext;
+ return yy::mhmakeparser::token::DOUBLECOLON;
+}
+
+[ \t]*::[ \t]* {
+ PRINTF(("%s %d: DOUBLECOLON: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ yylval->theString=(const char *)yytext;
+ return yy::mhmakeparser::token::DOUBLECOLON;
+}
+
+ /*---------------------------------------------------------------------------*/
+[ \t]*:[ \t]*\\[ \t\r]*\n[ \t]* {
+ PRINTF(("%s %d: COLON: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ inclineno();
+ yylval->theString=(const char *)yytext;
+ return yy::mhmakeparser::token::COLON;
+}
+
+[ \t]*:[ \t]* {
+ PRINTF(("%s %d: COLON: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ yylval->theString=(const char *)yytext;
+ return yy::mhmakeparser::token::COLON;
+}
+
+ /*---------------------------------------------------------------------------*/
+, {
+ PRINTF(("%s %d: COMMA: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ yylval->theString=(const char *)yytext;
+ return yy::mhmakeparser::token::COMMA;
+}
+
+ /*---------------------------------------------------------------------------*/
+^endif {
+ if (m_IndentStack.size())
+ {
+ m_IndentStack.pop();
+ PRINTF(("%s %d: %s: depth %d\n",m_InputFileName.c_str(),lineno(),yytext,m_IndentStack.size()));
+ }
+ else
+ {
+ throw string("Unexpected endif at line ") + stringify(lineno()) + " of " + m_InputFileName;
+ }
+}
+
+ /*---------------------------------------------------------------------------*/
+^ifdef[ \t]*\\[ \t\r]*\n[ \t]* {
+ BEGIN(IFDEF);
+ inclineno();
+ return yy::mhmakeparser::token::NEWLINE;
+}
+
+^ifdef[ \t]+ {
+ BEGIN(IFDEF);
+ return yy::mhmakeparser::token::NEWLINE;
+}
+
+ /*---------------------------------------------------------------------------*/
+^if[ \t]*\\[ \t\r]*\n[ \t]* {
+ BEGIN(IF);
+ inclineno();
+ m_curtoken=g_EmptyString;
+ return yy::mhmakeparser::token::NEWLINE;
+}
+
+^if[ \t]+ {
+ BEGIN(IF);
+ m_curtoken=g_EmptyString;
+ return yy::mhmakeparser::token::NEWLINE;
+}
+
+ /*---------------------------------------------------------------------------*/
+^ifndef[ \t]*\\[ \t\r]*\n[ \t]* {
+ BEGIN(IFNDEF);
+ inclineno();
+ return yy::mhmakeparser::token::NEWLINE;
+}
+
+^ifndef[ \t]+ {
+ BEGIN(IFNDEF);
+ return yy::mhmakeparser::token::NEWLINE;
+}
+
+ /*---------------------------------------------------------------------------*/
+^ifeq[ \t]*\\[ \t\r]*\n[ \t]* {
+ BEGIN(IFEQ);
+ m_curtoken=g_EmptyString;
+ inclineno();
+ return yy::mhmakeparser::token::NEWLINE;
+}
+
+^ifeq[ \t]+ {
+ BEGIN(IFEQ);
+ m_curtoken=g_EmptyString;
+ return yy::mhmakeparser::token::NEWLINE;
+}
+
+ /*---------------------------------------------------------------------------*/
+^ifneq[ \t]*\\[ \t\r]*\n[ \t]* {
+ BEGIN(IFNEQ);
+ m_curtoken=g_EmptyString;
+ inclineno();
+ return yy::mhmakeparser::token::NEWLINE;
+}
+
+^ifneq[ \t]+ {
+ BEGIN(IFNEQ);
+ m_curtoken=g_EmptyString;
+ return yy::mhmakeparser::token::NEWLINE;
+}
+
+ /*---------------------------------------------------------------------------*/
+^else[ \t]* {
+ if (m_IndentStack.size() && (!m_IndentStack.top()))
+ {
+ PRINTF(("%s %d: skipping else: depth %d\n",m_InputFileName.c_str(),lineno(),m_IndentStack.size()));
+ m_IndentSkip=m_IndentStack.size();
+ m_IndentStack.top()=1;
+ BEGIN(SKIPUNTILELSEORENDIF);
+ }
+ else
+ {
+ throw string("Unexpected else at line ") + stringify(lineno()) + " of file " + m_InputFileName;
+ }
+}
+
+ /*****************************************************************************/
+<IFEQ>\n {
+ yyless(0);
+ m_IndentStack.push(0);
+ if (GetParser()->IsEqual(m_curtoken))
+ {
+ PRINTF(("%s %d: Not Skipping ifeq %s: depth %d\n",m_InputFileName.c_str(),lineno(),m_curtoken.c_str(),m_IndentStack.size()));
+ BEGIN(INITIAL);
+ }
+ else
+ {
+ PRINTF(("%s %d: Skipping ifeq %s: depth %d\n",m_InputFileName.c_str(),lineno(),m_curtoken.c_str(),m_IndentStack.size()));
+ m_IndentSkip=m_IndentStack.size();
+ BEGIN(SKIPUNTILELSEORENDIF);
+ }
+}
+
+<IF,IFEQ,IFNEQ>[ \t]*\\[ \t\r]*\n[ \t]* { inclineno(); m_curtoken += g_SpaceString;}
+
+<IF,IFEQ,IFNEQ>\r /* skip */
+
+<IF,IFEQ,IFNEQ>[^\\\r\n\$#]+ |
+<IF,IFEQ,IFNEQ>[\\\$] { m_curtoken += (const char *)yytext; }
+
+ /*****************************************************************************/
+<IFNEQ>\n {
+ yyless(0);
+ m_IndentStack.push(0);
+ if (!GetParser()->IsEqual(m_curtoken))
+ {
+ PRINTF(("%s %d: Not Skipping ifneq %s: depth %d\n",m_InputFileName.c_str(),lineno(),m_curtoken.c_str(),m_IndentStack.size()));
+ BEGIN(INITIAL);
+ }
+ else
+ {
+ PRINTF(("%s %d: Skipping ifneq %s: depth %d\n",m_InputFileName.c_str(),lineno(),m_curtoken.c_str(),m_IndentStack.size()));
+ m_IndentSkip=m_IndentStack.size();
+ BEGIN(SKIPUNTILELSEORENDIF);
+ }
+}
+
+ /*****************************************************************************/
+<IF>[ \t\r]*[a-zA-Z0-9_]+[ \t\r]*\n {
+ yyless(yyleng-1);
+ m_IndentStack.push(0);
+#ifndef WIN32
+ int lastidx=yyleng-1;
+ if (yytext[lastidx]=='\r')
+ yytext[lastidx]='\0';
+#endif
+ string Val=GetParser()->ExpandVar((const char *)yytext);
+ if (Val.empty() || Val=="0")
+ {
+ PRINTF(("%s %d: Skipping if %s: depth %d\n",m_InputFileName.c_str(),lineno(),yytext,m_IndentStack.size()));
+ m_IndentSkip=m_IndentStack.size();
+ BEGIN(SKIPUNTILELSEORENDIF);
+ }
+ else
+ {
+ PRINTF(("%s %d: Not Skipping if %s: depth %d\n",m_InputFileName.c_str(),lineno(),yytext,m_IndentStack.size()));
+ BEGIN(INITIAL);
+ }
+}
+
+ /*---------------------------------------------------------------------------*/
+<IF>\n {
+ yyless(0);
+ m_IndentStack.push(0);
+ if (GetParser()->IsExprTrue(m_curtoken))
+ {
+ PRINTF(("%s %d: Not Skipping ifeq %s: depth %d\n",m_InputFileName.c_str(),lineno(),m_curtoken.c_str(),m_IndentStack.size()));
+ BEGIN(INITIAL);
+ }
+ else
+ {
+ PRINTF(("%s %d: Skipping ifeq %s: depth %d\n",m_InputFileName.c_str(),lineno(),m_curtoken.c_str(),m_IndentStack.size()));
+ m_IndentSkip=m_IndentStack.size();
+ BEGIN(SKIPUNTILELSEORENDIF);
+ }
+}
+
+ /*****************************************************************************/
+<IFDEF,IFNDEF>[ \t\r]* /* skip */
+
+ /*---------------------------------------------------------------------------*/
+<IFDEF>[a-zA-Z0-9_]+ {
+ m_IndentStack.push(0);
+ if (GetParser()->IsDefined((const char *)yytext))
+ {
+ PRINTF(("%s %d: Not Skipping ifdef %s: depth %d\n",m_InputFileName.c_str(),lineno(),yytext,m_IndentStack.size()));
+ BEGIN(INITIAL);
+ }
+ else
+ {
+ PRINTF(("%s %d: Skipping ifdef %s: depth %d\n",m_InputFileName.c_str(),lineno(),yytext,m_IndentStack.size()));
+ m_IndentSkip=m_IndentStack.size();
+ BEGIN(SKIPUNTILELSEORENDIF);
+ }
+}
+
+ /*****************************************************************************/
+<IFNDEF>[a-zA-Z0-9_]+ {
+ m_IndentStack.push(0);
+ if (!GetParser()->IsDefined((const char *)yytext)) {
+ PRINTF(("%s %d: Not Skipping ifndef %s: depth %d\n",m_InputFileName.c_str(),lineno(),yytext,m_IndentStack.size()));
+ BEGIN(INITIAL);
+ }
+ else
+ {
+ PRINTF(("%s %d: Skipping ifndef %s: depth %d\n",m_InputFileName.c_str(),lineno(),yytext,m_IndentStack.size()));
+ m_IndentSkip=m_IndentStack.size();
+ BEGIN(SKIPUNTILELSEORENDIF);
+ }
+}
+
+ /*****************************************************************************/
+<SKIPUNTILELSEORENDIF>\n[ ]*endif {
+ inclineno();
+ if (!m_IndentStack.size())
+ {
+ throw string("Unexpected endif at line ") + stringify(lineno()) + " of " + m_InputFileName;
+ }
+ else
+ {
+ m_IndentStack.pop();
+ PRINTF(("%s %d: endif: depth %d\n",m_InputFileName.c_str(),lineno(),m_IndentStack.size()));
+ if (m_IndentStack.size()==m_IndentSkip-1) BEGIN(INITIAL);
+ }
+}
+
+ /*---------------------------------------------------------------------------*/
+<SKIPUNTILELSEORENDIF>\n[ ]*else {
+ inclineno();
+ PRINTF(("%s %d: else: depth %d\n",m_InputFileName.c_str(),lineno(),m_IndentStack.size()));
+ if (m_IndentStack.top())
+ {
+ throw string("Unexpected else at line ") + stringify(lineno()) + " of file " + m_InputFileName;
+ }
+ m_IndentStack.top()=1;
+ if (m_IndentStack.size()==m_IndentSkip)
+ {
+ BEGIN(INITIAL);
+ }
+}
+
+ /*---------------------------------------------------------------------------*/
+<SKIPUNTILELSEORENDIF>\n[ ]*if(def|ndef|eq|neq)? {
+ inclineno();
+ m_IndentStack.push(0);
+ PRINTF(("%s %d: %s: depth %d\n",m_InputFileName.c_str(),lineno(),yytext+1,m_IndentStack.size()));
+}
+
+ /*---------------------------------------------------------------------------*/
+<SKIPUNTILELSEORENDIF>[a-zA-Z]+ /* skip */
+ /*---------------------------------------------------------------------------*/
+<SKIPUNTILELSEORENDIF>[^a-zA-Z\n]+ /* skip */
+ /*---------------------------------------------------------------------------*/
+<SKIPUNTILELSEORENDIF>\n[ ]*[a-zA-Z]+ {
+ inclineno();
+}
+ /*---------------------------------------------------------------------------*/
+<SKIPUNTILELSEORENDIF>\n {
+ inclineno();
+}
+
+ /*---------------------------------------------------------------------------*/
+<INITIAL,COMMANDPARSE,IF,IFEQ,IFNEQ>[ \t]*#[^\n]* {
+ PRINTF(("%s %d: -COMMENT: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+}
+
+ /*---------------------------------------------------------------------------*/
+[ \t]*\\[ \t\r]*\n[ \t]* {
+ PRINTF(("%s %d: SPACE:\n",m_InputFileName.c_str(),lineno()));
+ inclineno();
+ return yy::mhmakeparser::token::SPACE;
+}
+
+ /*---------------------------------------------------------------------------*/
+\.PHONY {
+ PRINTF(("%s %d: .PHONY: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ return yy::mhmakeparser::token::PHONY;
+}
+
+ /*---------------------------------------------------------------------------*/
+\.AUTODEPS {
+ PRINTF(("%s %d: .AUTODEPS: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ return yy::mhmakeparser::token::AUTODEPS;
+}
+
+ /*---------------------------------------------------------------------------*/
+\.ENVVARS_TOIGNORE {
+ PRINTF(("%s %d: .ENVVARS_TOIGNORE: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ return yy::mhmakeparser::token::ENVVARS_TOIGNORE;
+}
+
+ /*---------------------------------------------------------------------------*/
+export {
+ PRINTF(("%s %d: export: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ return yy::mhmakeparser::token::EXPORT;
+}
+
+ /*---------------------------------------------------------------------------*/
+^vpath {
+ PRINTF(("%s %d: vpath\n",m_InputFileName.c_str(),lineno()));
+ return yy::mhmakeparser::token::VPATH;
+}
+
+ /*---------------------------------------------------------------------------*/
+[a-zA-Z]:[a-zA-Z0-9\\\._\~\-%\@<&/]+\\[ \t\r]*\n {
+ size_t EndIndex=yyleng;
+ while (strchr(" \t\r\n\\",yytext[--EndIndex]));
+ yyless(EndIndex+1);
+
+ PRINTF(("%s %d: STRING: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ yylval->theString=(const char *)yytext;
+ return yy::mhmakeparser::token::STRING;
+}
+
+[a-zA-Z]:[a-zA-Z0-9\\\._\~\-%\@<&/]+ {
+ PRINTF(("%s %d: STRING: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ yylval->theString=(const char *)yytext;
+ return yy::mhmakeparser::token::STRING;
+}
+
+ /*---------------------------------------------------------------------------*/
+([a-zA-Z0-9\\\._\~\-\+%\@<&;/\*]|\\\ |\\#|\\\"|\|)+\\[ \t\r]*\n {
+ size_t EndIndex=yyleng;
+ while (strchr(" \t\r\n\\",yytext[--EndIndex]));
+ yyless(EndIndex+1);
+
+ PRINTF(("%s %d: STRING: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ yylval->theString=(const char *)yytext;
+ return yy::mhmakeparser::token::STRING;
+}
+
+([a-zA-Z0-9\\\._\~\-\+%\@<&;/\*]|\\\ |\\#|\\\"|\|)+\+= {
+ PRINTF(("%s %d: STRING: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ yyless(yyleng-2);
+ yylval->theString=(const char *)yytext;
+ return yy::mhmakeparser::token::STRING;
+}
+
+([a-zA-Z0-9\\\._\~\-\+%\@<&;/\*\[\]]|\\\ |\\#|\\\"|\|)+ {
+ PRINTF(("%s %d: STRING: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ yylval->theString=(const char *)yytext;
+ return yy::mhmakeparser::token::STRING;
+}
+
+^define[ \t]+[a-zA-Z0-9_\.]+[ \t]*\n {
+ const char *pVar=(const char *)yytext;
+ while (strchr(" \t",*pVar)) pVar++;
+ pVar+=6;
+ yylval->theString=pVar;
+ BEGIN(DEFINE);
+ m_curtoken=g_EmptyString;
+ PRINTF(("%s %d: VARDEF: %s\n",m_InputFileName.c_str(),lineno(),m_curtoken.c_str()));
+ inclineno();
+ return yy::mhmakeparser::token::VARDEF;
+}
+
+<DEFINE>[ \t]*\\[ \t\r]*\n[ \t]* {
+ inclineno();
+ m_curtoken+=g_SpaceString;
+}
+
+<DEFINE>\n {
+ inclineno();
+ m_curtoken+=(const char *)yytext;
+}
+
+<DEFINE>. {
+ m_curtoken+=(const char *)yytext;
+}
+
+<DEFINE>[ \t]*\n[ \t]*endef {
+ inclineno();
+ yylval->theString=m_curtoken;
+ PRINTF(("%s %d: VARVAL: %s\n",m_InputFileName.c_str(),lineno(),m_curtoken.c_str()));
+ BEGIN(INITIAL);
+ return yy::mhmakeparser::token::VARVAL;
+}
+
+ /*---------------------------------------------------------------------------*/
+\" {
+ BEGIN(QUOTE);
+ yymore();
+}
+
+ /*---------------------------------------------------------------------------*/
+\' {
+ BEGIN(SINGLEQUOTE);
+ yymore();
+}
+
+ /*---------------------------------------------------------------------------*/
+\$[\(\{] {
+ m_BraceIndent++;
+ PRINTF(("%s %d: BEGIN MACRO $(: %d\n",m_InputFileName.c_str(),lineno(),m_BraceIndent));
+ BEGIN(MAKEEXPRES);
+ m_curtoken=(const char *)yytext;
+}
+
+ /*---------------------------------------------------------------------------*/
+\$[<@/$] {
+ PRINTF(("%s %d: DOLLAREXPR: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ yylval->theString=(const char *)yytext;
+ return yy::mhmakeparser::token::DOLLAREXPR;
+}
+
+ /*---------------------------------------------------------------------------*/
+[ \t\r]*\n\t[ \t]* {
+ /* token newline */
+ PRINTF(("%s %d: NEWLINE\n",m_InputFileName.c_str(),lineno()));
+ inclineno();
+ m_curtoken=g_EmptyString;
+ BEGIN(COMMANDPARSE);
+ return yy::mhmakeparser::token::NEWLINE;
+}
+
+ /*---------------------------------------------------------------------------*/
+[\(\)\{\}] {
+ yylval->theString=(const char *)yytext;
+ return yy::mhmakeparser::token::STRING;
+}
+
+ /*---------------------------------------------------------------------------*/
+[^\n] {
+ PRINTF(("%s %d: ANYCHAR: %d: %s\n",m_InputFileName.c_str(),lineno(),lineno(),yytext));
+ throw string("Unexpected character '")+yytext+"' in makefile '" + m_InputFileName + "' at line "+stringify(lineno()) + ", column " + stringify(colno()-1);
+}
+
+ /*****************************************************************************/
+
+<COMMANDPARSE>[ \t\r]*\n {
+ PRINTF(("%s %d: COMMAND: %d: %s\n",m_InputFileName.c_str(),lineno(),lineno(),m_curtoken.c_str()));
+ yylval->theString=m_curtoken;
+ inclineno();
+ BEGIN(INITIAL);
+ return yy::mhmakeparser::token::COMMAND;
+}
+
+ /*---------------------------------------------------------------------------*/
+<COMMANDPARSE>[ \t\r]*\n\t[ \t]* {
+ PRINTF(("%s %d: COMMAND: %s\n",m_InputFileName.c_str(),lineno(),m_curtoken.c_str()));
+ yylval->theString=m_curtoken;
+ inclineno();
+ m_curtoken=g_EmptyString;
+ return yy::mhmakeparser::token::COMMAND;
+}
+
+ /*---------------------------------------------------------------------------*/
+<COMMANDPARSE>[ \t]*\\[ \t\r]*\n[ \t]* {
+ inclineno();
+ m_curtoken+=g_SpaceString;
+}
+
+ /*---------------------------------------------------------------------------*/
+<COMMANDPARSE>[ ]+ {
+ m_curtoken+=g_SpaceString;
+}
+
+ /*---------------------------------------------------------------------------*/
+<COMMANDPARSE>[^ \r\n#\\$]+ |
+<COMMANDPARSE>[\\\$] {
+ m_curtoken+=(const char *)yytext;
+}
+
+ /*---------------------------------------------------------------------------*/
+<COMMANDPARSE>[ \t]*\\#[^\n]* {
+ int nChars=(int)((strchr((const char *)yytext,'#')-(char*)yytext))+1;
+ yyless(nChars);
+ m_curtoken+=string(yytext,nChars-2);
+ m_curtoken+='#';
+}
+
+ /*****************************************************************************/
+<QUOTE>\" {
+ PRINTF(("%s %d: QUOTEDSTRING: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ BEGIN(INITIAL);
+ yylval->theString=(const char *)yytext;
+ return yy::mhmakeparser::token::STRING;
+}
+
+ /*---------------------------------------------------------------------------*/
+<QUOTE>\r /* skip */
+
+<QUOTE>[^\\\"\r\n$]+ |
+<QUOTE>[\\\$] |
+<QUOTE>\\\" |
+<QUOTE>\\# {
+ yymore();
+}
+
+ /*****************************************************************************/
+<SINGLEQUOTE>\' {
+ PRINTF(("%s %d: QUOTEDSTRING: %s\n",m_InputFileName.c_str(),lineno(),yytext));
+ BEGIN(INITIAL);
+ yylval->theString=(const char *)yytext;
+ return yy::mhmakeparser::token::STRING;
+}
+
+ /*---------------------------------------------------------------------------*/
+<SINGLEQUOTE>\r /* skip */
+
+<SINGLEQUOTE>[^\\\'\r\n$]+ |
+<SINGLEQUOTE>[\\\$] |
+<SINGLEQUOTE>\\\' |
+<SINGLEQUOTE>\\# {
+ yymore();
+}
+
+ /*****************************************************************************/
+<MAKEEXPRES>[\)\}] {
+ m_BraceIndent--;
+ PRINTF(("%s %d: CLOSE BRACE MAKEEXPRES MACRO ): %d\n",m_InputFileName.c_str(),lineno(),m_BraceIndent));
+ if (!m_BraceIndent)
+ {
+ BEGIN(INITIAL);
+ m_curtoken+=(const char *)yytext;
+ yylval->theString=m_curtoken;
+ PRINTF(("%s %d: DOLLAREXPR: %s\n",m_InputFileName.c_str(),lineno(),m_curtoken.c_str()));
+ return yy::mhmakeparser::token::DOLLAREXPR;
+ }
+ else
+ {
+ m_curtoken+=(const char *)yytext;
+ }
+}
+
+ /*---------------------------------------------------------------------------*/
+<MAKEEXPRES>\$[\(\{] {
+ m_BraceIndent++;
+ PRINTF(("%s %d: MACRO extra $(: %d\n",m_InputFileName.c_str(),lineno(),m_BraceIndent));
+ m_curtoken+=(const char *)yytext;
+}
+
+ /*---------------------------------------------------------------------------*/
+<MAKEEXPRES>[\(\{] {
+ m_BraceIndent++;
+ m_curtoken+=(const char *)yytext;
+}
+
+ /*---------------------------------------------------------------------------*/
+<MAKEEXPRES>[^$\(\)\{\}\r\n\\]+ |
+<MAKEEXPRES>[\(\$\\\{] {
+ m_curtoken+=(const char *)yytext;
+}
+<MAKEEXPRES>[ \t\r]*\\[ \t\r]*\n[ \t\r]* {
+ inclineno();
+ m_curtoken+=g_SpaceString;
+}
+
+<MAKEEXPRES>\n {
+ throw m_InputFileName + "(" + stringify(lineno()) + "): End of line inside macro is not allowed";
+}
+
+<SKIPUNTILELSEORENDIF><<EOF>> {
+ throw string("Missing endif or else statement. #else or #endif used?");
+}
+
+<<EOF>> {
+ if (m_BraceIndent)
+ {
+ throw string("Missing closing ) or } of macro usage in ") + m_InputFileName;
+ }
+ if (!m_IncludeStack.size())
+ {
+ if (m_IndentStack.size())
+ {
+ throw string("Missing endif or else statement in ") + m_InputFileName + ". #else or #endif used";
+ }
+ yyterminate();
+ }
+ else
+ {
+ INSTACK *pInStack=m_IncludeStack.top();
+ yypop_buffer_state();
+ m_InputFileName=pInStack->m_FileName;
+ *yylloc=pInStack->yylloc;
+ m_IncludeStack.pop();
+ }
+}
+%%
+
diff --git a/tools/mhmake/src/mhmakeparser.y b/tools/mhmake/src/mhmakeparser.y
new file mode 100644
index 000000000..f9042f780
--- /dev/null
+++ b/tools/mhmake/src/mhmakeparser.y
@@ -0,0 +1,306 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+/* -------------- declaration section -------------- */
+
+%require "2.4.1"
+%defines
+%define parser_class_name "mhmakeparser"
+%define parser_base_class_name "mhmakeparserbase"
+%define parser_class_constructor_init ": mhmakeparserbase(pMakefile,pLexer)"
+%define parser_class_constructor_param "mhmakefileparser *pMakefile, mhmakeFlexLexer *pLexer"
+%error-verbose
+
+%code requires {
+#include "mhmakefileparser.h"
+}
+
+%code provides {
+const char Test[]="dit is een test";
+}
+
+%{
+#include "mhmakefileparser.h"
+#include "rule.h"
+#include "util.h"
+%}
+
+%locations
+%initial-action
+{
+ // Initialize the initial location.
+ @$.initialize(&m_ptheLexer->GetInputFilename());
+};
+
+%token END 0 "end of file"
+%token <theString> COMMAND
+%token <theString> COMMA
+%token <theString> STRING DOLLAREXPR PIPE EQUAL COLON DOUBLECOLON VARDEF VARVAL
+%token IMEQUAL PEQUAL OPTEQUAL PHONY AUTODEPS EXPORT NEWLINE INCLUDEMAK SPACE VPATH ENVVARS_TOIGNORE
+
+%type <theString> expression nonspaceexpression simpleexpression
+%type <theString> maybeemptyexpression
+%type <theString> expression_nocolorequal simpleexpression_nocolorequal nonspaceexpression_nocolorequal
+%type <ival> rulecolon
+
+%start file
+
+/* -------------- rules section -------------- */
+/* Sample parser. Does count Chars in a line, and lines in file */
+%%
+file : statements
+ {
+ if (m_pMakefile->m_pCurrentItems)
+ {
+ PRINTF(("Adding rule : %s\n",(*m_pMakefile->m_pCurrentItems)[0]->GetQuotedFullFileName().c_str()));
+ m_pMakefile->AddRule();
+ }
+ }
+;
+
+statements :
+ | statements statement
+;
+
+space : SPACE |
+ space SPACE
+;
+
+statement: NEWLINE |
+ SPACE |
+ DOLLAREXPR NEWLINE {
+ m_pMakefile->ExpandExpression($1);
+ } |
+ includemak |
+ ruledef |
+ phonyrule |
+ autodepsrule |
+ envvarstoignorerule |
+ varassignment |
+ imvarassignment |
+ pvarassignment |
+ optvarassignment |
+ exportrule |
+ vpathrule |
+ COMMAND
+ {
+ if (!m_pMakefile->m_pCurrentRule)
+ {
+ m_pMakefile->m_pCurrentRule=refptr<rule>(new rule(m_pMakefile));
+ }
+ m_pMakefile->m_pCurrentRule->AddCommand($1);
+ PRINTF(("Adding command : %s\n",$1.c_str()));
+ }
+;
+
+includemak:
+ {
+ if (m_pMakefile->m_pCurrentItems)
+ {
+ PRINTF(("Adding rule : %s\n",(*m_pMakefile->m_pCurrentItems)[0]->GetQuotedFullFileName().c_str()));
+ m_pMakefile->AddRule();
+ }
+ } INCLUDEMAK
+;
+
+ruledef: expression_nocolorequal rulecolon maybeemptyexpression
+ {
+ if (m_pMakefile->m_pCurrentItems)
+ {
+ PRINTF(("Adding rule : %s\n",(*m_pMakefile->m_pCurrentItems)[0]->GetQuotedFullFileName().c_str()));
+ m_pMakefile->AddRule();
+ }
+
+ m_pMakefile->m_pCurrentItems=new fileinfoarray;
+ m_pMakefile->m_pCurrentDeps=new fileinfoarray;
+ #ifdef _DEBUG
+ if (!m_pMakefile->ExpandExpression($1).size())
+ {
+ throw string("Empty left hand side in rule: ") + $1 + " : " + $3;
+ }
+ #endif
+ m_pMakefile->SplitToItems(m_pMakefile->ExpandExpression($1), *m_pMakefile->m_pCurrentItems);
+ m_pMakefile->SplitToItems(m_pMakefile->ExpandExpression($3), *m_pMakefile->m_pCurrentDeps);
+ m_pMakefile->m_DoubleColonRule= ($2==1) ;
+ PRINTF(("Defining rule %s : %s\n",$1.c_str(),$3.c_str()));
+ PRINTF((" Expanded to %s : %s\n",m_pMakefile->ExpandExpression($1).c_str(),m_pMakefile->ExpandExpression($3).c_str()));
+ }
+;
+
+rulecolon: COLON {$$=0;} |
+ DOUBLECOLON {$$=1;}
+;
+
+phonyrule: PHONY COLON expression
+ {
+ vector<fileinfo*> Items;
+ m_pMakefile->SplitToItems(m_pMakefile->ExpandExpression($3),Items);
+ vector<fileinfo*>::iterator pIt=Items.begin();
+ while (pIt!=Items.end())
+ {
+ (*pIt)->SetPhony();
+ pIt++;
+ }
+ PRINTF(("Defining phony rule : %s\n",$3.c_str()));
+ PRINTF((" Expanded to : %s\n",m_pMakefile->ExpandExpression($3).c_str()));
+ }
+ NEWLINE
+;
+
+autodepsrule: AUTODEPS COLON expression
+ {
+ vector<fileinfo*> Items;
+ m_pMakefile->SplitToItems(m_pMakefile->ExpandExpression($3),Items);
+ vector<fileinfo*>::iterator pIt=Items.begin();
+ while (pIt!=Items.end())
+ {
+ (*pIt)->SetAutoDepsScan(m_pMakefile);
+ pIt++;
+ }
+ PRINTF(("Defining autodeps rule : %s\n",$3.c_str()));
+ PRINTF((" Expanded to : %s\n",m_pMakefile->ExpandExpression($3).c_str()));
+ }
+ NEWLINE
+;
+
+envvarstoignorerule: ENVVARS_TOIGNORE COLON expression
+ {
+ string VarsStr=m_pMakefile->ExpandExpression($3);
+ PRINTF(("Defining envvarstoignore rule : %s\n",$3.c_str()));
+ PRINTF((" Expanded to : %s\n",m_pMakefile->ExpandExpression($3).c_str()));
+ const char *pTmp=VarsStr.c_str();
+ while (*pTmp)
+ {
+ string Var;
+ pTmp=NextItem(pTmp,Var);
+ if (!Var.empty())
+ { // Add it to the list of env vars to ignore
+ m_pMakefile->m_EnvVarsToIgnore.insert(Var);
+ }
+ }
+ }
+ NEWLINE
+;
+
+
+exportrule: EXPORT space exportstrings NEWLINE |
+ EXPORT space STRING EQUAL maybeemptyexpression
+ {
+ string Val=m_pMakefile->ExpandExpression($5);
+ m_pMakefile->SetVariable($3,Val);
+ m_pMakefile->SetExport($3,Val);
+ PRINTF(("Exporting %s : %s\n",$3.c_str(), Val.c_str()));
+ }
+;
+
+exportstrings : exportstring |
+ exportstring space exportstrings
+;
+
+exportstring : STRING
+ {
+ m_pMakefile->SetExport($1,m_pMakefile->ExpandExpression(m_pMakefile->ExpandVar($1)));
+ PRINTF(("Exporting %s : %s\n",$1.c_str(),m_pMakefile->ExpandExpression(m_pMakefile->ExpandVar($1)).c_str()));
+ }
+;
+
+vpathrule: VPATH space nonspaceexpression space expression NEWLINE
+ {
+ m_pMakefile->SetvPath(m_pMakefile->ExpandExpression($3),m_pMakefile->ExpandExpression($5));
+ PRINTF(("Setting vpath %s to %s\n",$3.c_str(),m_pMakefile->ExpandExpression($5).c_str()));
+ }
+;
+
+varassignment: VARDEF VARVAL
+ {
+ m_pMakefile->m_Variables[m_pMakefile->f_strip($1)]=$2;
+ PRINTF(("Defining variable %s to %s\n",m_pMakefile->f_strip($1).c_str(), $2.c_str()));
+ }
+ | STRING EQUAL maybeemptyexpression
+ {
+ m_pMakefile->m_Variables[$1]=$3;
+ PRINTF(("Setting variable %s to %s\n",$1.c_str(), $3.c_str()));
+ }
+;
+
+imvarassignment: STRING IMEQUAL maybeemptyexpression
+ {
+ m_pMakefile->m_Variables[$1]=m_pMakefile->ExpandExpression($3);
+ PRINTF(("Setting variable %s to %s\n",$1.c_str(), m_pMakefile->m_Variables[$1].c_str()));
+ }
+;
+
+pvarassignment: STRING PEQUAL maybeemptyexpression
+ {
+ m_pMakefile->m_Variables[$1]=m_pMakefile->ExpandVar($1)+g_SpaceString+$3;
+ PRINTF(("Adding to variable %s: %s\n",$1.c_str(), $3.c_str()));
+ }
+;
+
+optvarassignment: STRING OPTEQUAL maybeemptyexpression
+ {
+ if (!m_pMakefile->IsDefined($1))
+ {
+ m_pMakefile->m_Variables[$1]=$3;
+ PRINTF(("Setting variable %s to %s\n",$1.c_str(), $3.c_str()));
+ }
+ }
+;
+
+maybeemptyexpression: NEWLINE {$$=g_EmptyString;} |
+ expression NEWLINE |
+ expression space NEWLINE
+;
+
+expression: nonspaceexpression |
+ expression space nonspaceexpression {$$=$1+g_SpaceString+$3;}
+;
+
+expression_nocolorequal: nonspaceexpression_nocolorequal |
+ expression_nocolorequal space nonspaceexpression_nocolorequal {$$=$1+g_SpaceString+$3;}
+;
+
+nonspaceexpression: simpleexpression |
+ nonspaceexpression simpleexpression {$$=$1+$2;}
+;
+
+nonspaceexpression_nocolorequal: simpleexpression_nocolorequal |
+ nonspaceexpression_nocolorequal simpleexpression_nocolorequal {$$=$1+$2;}
+;
+
+simpleexpression: simpleexpression_nocolorequal |
+ PIPE |
+ EQUAL |
+ COLON |
+ DOUBLECOLON |
+ COMMA
+;
+
+simpleexpression_nocolorequal: STRING |
+ DOLLAREXPR
+;
+
+%%
+/* -------------- body section -------------- */
+
+void yy::mhmakeparser::error (const yy::mhmakeparser::location_type& l, const std::string& m)
+{
+ cerr << l << " -> "<<m<<endl;
+}
diff --git a/tools/mhmake/src/refptr.h b/tools/mhmake/src/refptr.h
new file mode 100644
index 000000000..7223090f9
--- /dev/null
+++ b/tools/mhmake/src/refptr.h
@@ -0,0 +1,124 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+#ifndef __REFPTR_H__
+#define __REFPTR_H__
+
+#ifdef _DEBUG
+#define PRINTF(arg) if (g_PrintLexYacc) printf arg
+#else
+#define PRINTF(arg)
+#endif
+
+template <class T> class iterstack: public stack<T>
+{
+ public:
+ typedef typename deque<T>::iterator iterator;
+ typedef typename deque<T>::reverse_iterator reverse_iterator;
+
+ iterator begin()
+ {
+ return stack<T>::c.begin();
+ }
+ iterator end()
+ {
+ return stack<T>::c.end();
+ }
+ reverse_iterator rbegin()
+ {
+ return stack<T>::c.rbegin();
+ }
+ reverse_iterator rend()
+ {
+ return stack<T>::c.rend();
+ }
+};
+
+struct refbase
+{
+ int m_Count;
+ refbase()
+ {
+ m_Count=1;
+ }
+};
+
+// Template class T needs to be derived from refbase;
+template <class T> class refptr
+{
+ T *m_RefPtr;
+public:
+ refptr()
+ {
+ m_RefPtr=NULL;
+ }
+ refptr(T *Ptr) {
+ m_RefPtr=Ptr;
+ }
+ refptr(const refptr<T> &RefPtr)
+ {
+ m_RefPtr=RefPtr.m_RefPtr;
+ if (m_RefPtr)
+ m_RefPtr->m_Count++;
+ }
+ ~refptr()
+ {
+ if (m_RefPtr && !--m_RefPtr->m_Count)
+ {
+ delete m_RefPtr;
+ }
+ }
+ refptr<T> &operator=(const refptr<T>& Src)
+ {
+ if (Src.m_RefPtr!=m_RefPtr)
+ {
+ this->~refptr();
+ new (this) refptr<T>(Src);
+ }
+ return *this;
+ }
+
+ refptr<T> &operator=(T *pPtr) // Assumes that T has reference count 1 and has no other users
+ {
+ #if defined(_DEBUG) && defined(_MSC_VER)
+ if (pPtr && pPtr->m_Count!=1)
+ DebugBreak();
+ #endif
+ this->~refptr();
+ m_RefPtr=pPtr;
+ return *this;
+ }
+
+ T & operator*() const
+ {
+ return *m_RefPtr;
+ }
+ T * operator->() const
+ {
+ return m_RefPtr;
+ }
+ operator T*() const
+ {
+ return m_RefPtr;
+ }
+};
+
+#endif
+
diff --git a/tools/mhmake/src/rule.cpp b/tools/mhmake/src/rule.cpp
new file mode 100644
index 000000000..b3f682e95
--- /dev/null
+++ b/tools/mhmake/src/rule.cpp
@@ -0,0 +1,300 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+#include "stdafx.h"
+
+#include "fileinfo.h"
+#include "rule.h"
+#include "util.h"
+#include "mhmakefileparser.h"
+
+refptr<rule> NullRule;
+
+set<rule*> IMPLICITRULE::m_ImplicitRuleRecurseDetStack;
+vector<implicitrule_t> IMPLICITRULE::m_ImplicitRules;
+
+makecommand g_MakeCommand; // Order is important since sm_Statics is using g_MakeCommand
+const string g_QuoteString("\""); // Order is important since sm_Statics is using g_QuoteString
+
+///////////////////////////////////////////////////////////////////////////////
+static bool FindDep(fileinfo *pTarget, implicitruledep_t *pImplicitRule,refptr<rule> &Rule)
+{
+ implicitruledep_t::iterator SecIt=pImplicitRule->begin();
+ while (SecIt!=pImplicitRule->end())
+ {
+ if (SecIt->first.empty())
+ {
+ #ifdef _DEBUG
+ // Check if the rule has the same commands
+ vector<string> &OldCommands=SecIt->second->GetCommands();
+ vector<string> &NewCommands=Rule->GetCommands();
+
+ bool bCommandsDifferent=OldCommands.size()!=NewCommands.size();
+ if (g_PrintMultipleDefinedRules || bCommandsDifferent)
+ {
+ string ErrorMessage;
+ if (bCommandsDifferent)
+ ErrorMessage += "Implicit Rule '"+ pTarget->GetFullFileName() + "' defined twice with different commands\n";
+ else
+ ErrorMessage += "Implicit Rule '"+ pTarget->GetFullFileName() + "' defined twice with same commands\n";
+ ErrorMessage += "Command 1: makedir = " + SecIt->second->GetMakefile()->GetMakeDir()->GetQuotedFullFileName()+ "\n";
+
+ vector<string>::const_iterator It;
+ if (bCommandsDifferent)
+ {
+ It=OldCommands.begin();
+ while (It!=OldCommands.end())
+ {
+ ErrorMessage += " " + *It + "\n";
+ }
+ }
+ cerr << "Command 2: makedir = "+ Rule->GetMakefile()->GetMakeDir()->GetQuotedFullFileName()+ "\n";
+ if (bCommandsDifferent)
+ {
+ It=NewCommands.begin();
+ while (It!=NewCommands.end())
+ {
+ ErrorMessage += " " + *It + "\n";
+ }
+ throw ErrorMessage;
+ }
+ else
+ cerr << ErrorMessage << endl;
+ }
+ mhmakefileparser *pOldMakefile=SecIt->second->GetMakefile();
+ mhmakefileparser *pNewMakefile=Rule->GetMakefile();
+ vector<string>::iterator OldIt=OldCommands.begin();
+ vector<string>::iterator NewIt=NewCommands.begin();
+ while (OldIt!=OldCommands.end())
+ {
+ if (pOldMakefile->ExpandExpression(*OldIt)!=pNewMakefile->ExpandExpression(*NewIt))
+ {
+ string ErrorMessage = string("Implicit Rule '") + pTarget->GetFullFileName() + "' defined twice with different commands\n";
+ ErrorMessage += "Command 1: makedir = " + pOldMakefile->GetMakeDir()->GetQuotedFullFileName()+ "\n";
+ ErrorMessage += " " + pOldMakefile->ExpandExpression(*OldIt) + "\n";
+ ErrorMessage += "Command 2: makedir = " + pNewMakefile->GetMakeDir()->GetQuotedFullFileName()+ "\n";
+ ErrorMessage += " " + pNewMakefile->ExpandExpression(*NewIt);
+ throw ErrorMessage;
+ }
+ OldIt++;
+ NewIt++;
+ }
+ #endif
+ return true;
+ }
+ SecIt++;
+ }
+ return false;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+void IMPLICITRULE::AddImplicitRule(fileinfo *pTarget,const vector<fileinfo*> &Deps,refptr<rule> Rule)
+{
+ if (!Rule)
+ {
+ #ifdef _DEBUG
+ if (g_PrintAdditionalInfo)
+ cout << "No commands defined for implicit rule " << pTarget->GetFullFileName()<<endl;
+ #endif
+ return;
+ }
+ // first search if there is already the same target in the current list of implicit rules
+ implicitruledep_t* pImplicitRule=NULL;
+ vector<implicitrule_t>::iterator RuleIt=m_ImplicitRules.begin();
+ while (RuleIt!=m_ImplicitRules.end())
+ {
+ if (pTarget==RuleIt->first)
+ {
+ pImplicitRule=&(RuleIt->second);
+ }
+ RuleIt++;
+ }
+ if (!pImplicitRule)
+ {
+ // Add a new entry
+ m_ImplicitRules.push_back(implicitrule_t(pTarget,implicitruledep_t()));
+ pImplicitRule=&((m_ImplicitRules.end()-1)->second);
+ }
+
+ if (Deps.size())
+ {
+ #ifdef _DEBUG
+ vector<fileinfo*>::const_iterator DepIt=Deps.begin();
+ while (DepIt!=Deps.end())
+ {
+ if (*DepIt==pTarget)
+ throw(string("Implicit rule : ")+pTarget->GetFullFileName()+" is directly dependent on itself. This is not allowed.");
+ DepIt++;
+ }
+ #endif
+ pImplicitRule->push_back(pair<vector<fileinfo*>,refptr<rule> >(Deps,Rule));
+ }
+ else
+ {
+ if (!FindDep(pTarget,pImplicitRule,Rule))
+ pImplicitRule->push_back(pair<vector<fileinfo*>, refptr<rule> >(vector<fileinfo*>(), Rule));
+ }
+}
+
+///////////////////////////////////////////////////////////////////////////////
+void IMPLICITRULE::SearchImplicitRule(const fileinfo *pTarget, implicitruledep_t &Result)
+{
+ string TargetFileName=pTarget->GetFullFileName();
+
+ vector<implicitrule_t>::iterator ImpRegExIt=m_ImplicitRules.begin();
+ while (ImpRegExIt!=m_ImplicitRules.end())
+ {
+ matchres Res;
+
+ if (PercentMatch(TargetFileName,ImpRegExIt->first->GetFullFileName(),&Res))
+ {
+ implicitruledep_t::iterator ResIt=ImpRegExIt->second.begin();
+ while (ResIt!=ImpRegExIt->second.end())
+ {
+#ifdef _DEBUG
+ if (!ResIt->second)
+ {
+ throw string("No commands for implicit rule : ") + ImpRegExIt->first->GetFullFileName();
+ }
+#endif
+ ResIt->second->SetStem(Res.m_Stem);
+ vector<fileinfo*> Deps;
+ const fileinfo *pMakeDir=ResIt->second->GetMakefile()->GetMakeDir();
+ vector<fileinfo*>::iterator It=ResIt->first.begin();
+ while (It!=ResIt->first.end())
+ {
+ string Dependent=ReplaceWithStem((*It)->GetFullFileName(),Res.m_Stem);
+ #ifdef _DEBUG
+ if (Dependent.length()>MAX_PATH)
+ {
+ /* File name is getting too long, this is most probable an infinit loop */
+ throw(string("Filename too long in implicit rule search: ")+Dependent+"\nProbably some infinit loop in the implicit rules search.\n");
+ }
+ #endif
+ Deps.push_back(GetFileInfo(Dependent,pMakeDir));
+ It++;
+ }
+ Result.push_back(pair<vector<fileinfo*>,refptr<rule> >(Deps, ResIt->second));
+ ResIt++;
+ }
+ }
+ ImpRegExIt++;
+ }
+ return;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+bool rule::operator != (const rule &Other)
+{
+ if (m_Commands.size()!=Other.m_Commands.size())
+ return true;
+
+ vector<string>::const_iterator It=m_Commands.begin();
+ vector<string>::const_iterator OtherIt=Other.m_Commands.begin();
+ while (It!=m_Commands.end())
+ {
+ if (m_pMakefile->ExpandExpression(*It)!=Other.m_pMakefile->ExpandExpression(*OtherIt))
+ return true;
+ It++;
+ OtherIt++;
+ }
+ return false;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+void rule::SetTargetsIsBuild(uint32 Md5_32)
+{
+ vector< fileinfo* >::iterator It=m_Targets.begin();
+ while (It!=m_Targets.end())
+ {
+ (*It)->SetCommandsMd5_32(Md5_32);
+ (*It)->SetBuild();
+ m_pMakefile->AddTarget(*It);
+ It++;
+ }
+}
+///////////////////////////////////////////////////////////////////////////////
+void rule::SetTargetsIsBuilding(const fileinfo *pSrc)
+{
+ vector< fileinfo* >::iterator It=m_Targets.begin();
+ while (It!=m_Targets.end())
+ {
+ if ((*It)!=pSrc)
+ (*It)->SetBuilding(false);
+ It++;
+ }
+}
+
+
+#ifdef _DEBUG
+///////////////////////////////////////////////////////////////////////////////
+void IMPLICITRULE::PrintImplicitRules()
+{
+ vector<implicitrule_t>::iterator ImpRegExIt=m_ImplicitRules.begin();
+ while (ImpRegExIt!=m_ImplicitRules.end())
+ {
+ implicitruledep_t::iterator SecIt=ImpRegExIt->second.begin();
+ cout << ImpRegExIt->first->GetFullFileName() << " :\n";
+ while (SecIt!=ImpRegExIt->second.end())
+ {
+ cout << " :";
+ vector<fileinfo*>::iterator DepIt=SecIt->first.begin();
+ while (DepIt!=SecIt->first.end())
+ {
+ cout << " " << (*DepIt)->GetQuotedFullFileName() <<endl;
+ DepIt++;
+ }
+ cout << endl;
+ if (SecIt->second)
+ {
+ SecIt->second->PrintCommands();
+ }
+ else
+ {
+ cout << " No rhs\n";
+ }
+ SecIt++;
+ }
+ ImpRegExIt++;
+ }
+ return;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+void rule::PrintCommands(fileinfo *pTarget) const
+{
+ if (pTarget)
+ m_pMakefile->SetRuleThatIsBuild(pTarget);
+
+ vector<string>::const_iterator pCommandIt=m_Commands.begin();
+ while (pCommandIt!=m_Commands.end())
+ {
+ cout<<g_SpaceString<<*pCommandIt<<endl;
+ if (pTarget)
+ {
+ cout<<" ("<<m_pMakefile->ExpandExpression(*pCommandIt)<<")\n";
+ }
+ pCommandIt++;
+ }
+}
+
+#endif
+
+
diff --git a/tools/mhmake/src/rule.h b/tools/mhmake/src/rule.h
new file mode 100644
index 000000000..04827b129
--- /dev/null
+++ b/tools/mhmake/src/rule.h
@@ -0,0 +1,110 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+#ifndef __RULE_H__
+#define __RULE_H__
+
+#include "refptr.h"
+#include "md5.h"
+class mhmakefileparser;
+class fileinfo;
+
+class rule: public refbase
+{
+ vector<string> m_Commands;
+ string m_Stem; // Contains the stem in case the rule is part of an implicit rule (filled in in the implicit search)
+ mhmakefileparser* m_pMakefile;
+ vector< fileinfo* > m_Targets; /* Targets that are build with this rule, do not use refptr here because otherwise we get circular references */
+public:
+ rule(mhmakefileparser *pMakefile): m_pMakefile(pMakefile)
+ {
+ }
+
+ void AddCommand(const string &Command)
+ {
+ if (!Command.empty())
+ m_Commands.push_back(Command);
+ }
+ vector<string>& GetCommands()
+ {
+ return m_Commands;
+ }
+ void PrintCommands(fileinfo *pTarget=NULL) const;
+
+ void SetStem(const string &Stem)
+ {
+ m_Stem=Stem;
+ }
+ const string &GetStem() const
+ {
+ return m_Stem;
+ }
+ void SetMakefile(mhmakefileparser *pMakefile)
+ {
+ m_pMakefile=pMakefile;
+ }
+ mhmakefileparser *GetMakefile()
+ {
+ return m_pMakefile;
+ }
+ bool operator != (const rule &Rule);
+
+ void AddTarget(fileinfo *pTarget)
+ {
+ m_Targets.push_back(pTarget);
+ }
+ void SetTargetsIsBuild(uint32 Md5_32);
+ void SetTargetsIsBuilding(const fileinfo *pSrc);
+};
+
+typedef vector<pair<vector<fileinfo*>,refptr<rule> > > implicitruledep_t;
+typedef pair<fileinfo *, implicitruledep_t > implicitrule_t;
+
+class IMPLICITRULE
+{
+ static set<rule*> m_ImplicitRuleRecurseDetStack;
+ static vector<implicitrule_t> m_ImplicitRules; // Use a vector and not a map because the order of the implicit rules is important
+public:
+ static void AddImplicitRule(fileinfo *pTarget,const vector<fileinfo*> &Deps,refptr<rule> pRule);
+ static void SearchImplicitRule(const fileinfo *pTarget, implicitruledep_t &Result);
+ static void PrintImplicitRules();
+ static bool PushRule(rule *pRule)
+ {
+ set<rule*>::iterator pFound=m_ImplicitRuleRecurseDetStack.find(pRule);
+ if (pFound==m_ImplicitRuleRecurseDetStack.end())
+ {
+ m_ImplicitRuleRecurseDetStack.insert(pRule);
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+ static void PopRule(rule *pRule)
+ {
+ m_ImplicitRuleRecurseDetStack.erase(pRule);
+ }
+};
+
+extern refptr<rule> NullRule;
+
+#endif
+
diff --git a/tools/mhmake/src/stdafx.cpp b/tools/mhmake/src/stdafx.cpp
new file mode 100644
index 000000000..b2168250b
--- /dev/null
+++ b/tools/mhmake/src/stdafx.cpp
@@ -0,0 +1,24 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+// This file is only used to generate the pre-compiled header files. The stdafx.h file
+// should only contain includes of headers that will not be likely to change (like system header files)
+
+#include "stdafx.h"
diff --git a/tools/mhmake/src/stdafx.h b/tools/mhmake/src/stdafx.h
new file mode 100644
index 000000000..e586ebb6b
--- /dev/null
+++ b/tools/mhmake/src/stdafx.h
@@ -0,0 +1,92 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently, but
+// are changed infrequently
+//
+
+#if !defined(AFX_STDAFX_H__CDC9F92E_2B83_4EFC_92B5_44861521ED45__INCLUDED_)
+#define AFX_STDAFX_H__CDC9F92E_2B83_4EFC_92B5_44861521ED45__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#pragma warning (disable:4786)
+#pragma warning (disable:4503)
+#pragma warning (disable:4530)
+#endif // _MSC_VER > 1000
+
+#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
+
+#include <iostream>
+#include <fstream>
+#include <string>
+#include <vector>
+#include <queue>
+#include <map>
+#include <set>
+#include <stack>
+#include <algorithm>
+#include <sstream>
+
+#ifdef _MSC_VER
+#include <io.h>
+#define __CDECL __cdecl
+#else
+#define __CDECL
+#define _stricmp strcasecmp
+#define _strnicmp strncasecmp
+#define MAX_PATH 255
+#include <sys/wait.h>
+#include <popt.h>
+#include <glob.h>
+#endif
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <malloc.h>
+#ifdef _MSC_VER
+#include <crtdbg.h>
+#endif
+#include <string.h>
+#ifdef _MSC_VER
+#include <direct.h>
+#define mkdir(name,mode) _mkdir(name)
+#endif
+#include <time.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#ifdef WIN32
+#include <windows.h>
+#ifdef max
+#undef max
+#endif
+#ifdef min
+#undef min
+#endif
+#endif
+
+using namespace std;
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
+
+#endif // !defined(AFX_STDAFX_H__CDC9F92E_2B83_4EFC_92B5_44861521ED45__INCLUDED_)
+
diff --git a/tools/mhmake/src/util.cpp b/tools/mhmake/src/util.cpp
new file mode 100644
index 000000000..e1fcf0d27
--- /dev/null
+++ b/tools/mhmake/src/util.cpp
@@ -0,0 +1,803 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+#include "stdafx.h"
+
+#include "rule.h"
+#include "util.h"
+#include "mhmakeparser.hpp"
+
+#ifdef WIN32
+
+#include <WinIoCtl.h>
+
+#define REPARSE_MOUNTPOINT_HEADER_SIZE 8
+
+typedef struct {
+ DWORD ReparseTag;
+ DWORD ReparseDataLength;
+ WORD Reserved;
+ WORD ReparseTargetLength;
+ WORD ReparseTargetMaximumLength;
+ WORD Reserved1;
+ WCHAR ReparseTarget[1];
+} REPARSE_MOUNTPOINT_DATA_BUFFER, *PREPARSE_MOUNTPOINT_DATA_BUFFER;
+#endif
+
+static char s_UsageString[]=
+"\
+Usage: mhmake [-f <Makefile>] [-[c|C] <RunDir>] [<Var>=<Value>]\n\
+ [-a] [-q] [-s] [-S] [-v] [-P <Nr Parallel Builds>] [targets]+\n"
+#ifdef _DEBUG
+"\
+ [-p] [-n] [-e] [-l] [-w] [-d] [-CD] [-m] [-b]\n"
+#endif
+"\n\
+ <Makefile> : Makefile to load (if not specified 'makefile' is used\n\
+ <RunDir> : Make is setting the current directory to this directory at the\n\
+ start.\n\
+ <Var> : Defines a variable\n\
+ <Value> : Value of the variable\n\
+ -a : Rebuild all targets\n\
+ -s : Rescan automatic dependencies\n\
+ -S : SKip checking if mhmake is started in a subdirectory of the\n\
+ %MHMAKECONF dir \n\
+ -v : Print version information\n\
+ -q : Quiet. Disable all output \n\
+ -P <Nr Parallel Builds> :\n\
+ Number of parallel build commands executed at the \n\
+ same time. Default is this the number of processor \n\
+ cores. 1 disables parallel builds.\n"
+#ifdef _DEBUG
+"\n\
+ The following options are additional options in mhmake_dbg which are not\n\
+ available in mhmake. These are mainly options for debugging purposes.\n\
+ -e : Dump Vars and Rules on error\n\
+ -w : Print additional information\n\
+ -p : Prints the variables and the rules before building\n\
+ -n : Only prints the commands, but does not execute them\n\
+ -l : Print parser debug information\n\
+ -d : Print the dependency checking\n\
+ -CD : Do circular dependency checking (targets depending on itself)\n\
+ -m : Create md5 database in md5.database in start directory. \n\
+ -b : Print build tree. \n\
+ -D : Print all double defined rules (even if commands are the same) \n\
+"
+#else
+"\
+\n\
+It is adviced during creation of makefiles to use mhmake_dbg. It has additional\n\
+debugging options and does some extra error checking.\n\
+For a description of the additional options: run mhmake_dbg -h\n\
+"
+#endif
+;
+
+#ifdef _DEBUG
+bool g_PrintVarsAndRules=false;
+bool g_DoNotExecute=false;
+bool g_BuildMd5Db=false;
+bool g_GenProjectTree=false;
+bool g_DumpOnError=false;
+bool g_PrintAdditionalInfo=false;
+bool g_pPrintDependencyCheck=false;
+bool g_CheckCircularDeps=false;
+bool g_PrintLexYacc=false;
+bool g_PrintMultipleDefinedRules=false;
+#endif
+
+bool g_Quiet=false;
+bool g_RebuildAll=false;
+bool g_ForceAutoDepRescan=false;
+bool g_SkipMhMakeConfDirCheck=false;
+
+const string g_EmptyString;
+const string g_SpaceString(" ");
+
+///////////////////////////////////////////////////////////////////////////////
+void PrintVersionInfo(void)
+{
+ static const char VersionStr[]="\
+mhmake : GNU compatible make tool with extensions\n\
+version: "MHMAKEVER"\n\
+Remarks and bug reports -> marha@sourceforge.net\n\
+";
+ cerr << VersionStr;
+ exit(1);
+}
+///////////////////////////////////////////////////////////////////////////////
+makecommand::makecommand()
+{
+ char ExeName[MAX_PATH];
+#ifdef WIN32
+ GetModuleFileName(NULL,ExeName,sizeof(ExeName));
+ m_BuildCommand=ExeName;
+ transform(m_BuildCommand.begin(),m_BuildCommand.end(),m_BuildCommand.begin(),(int(__CDECL *)(int))tolower);
+#else
+ int NrChars=readlink ("/proc/self/exe", ExeName, sizeof(ExeName));
+ ExeName[NrChars]=0;
+ m_BuildCommand=ExeName;
+#endif
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string Substitute(const string &ToSubst,const string &iSrcStr,const string &iToStr)
+{
+ string Ret=g_EmptyString;
+ matchres Res;
+ string SrcStr=iSrcStr;
+ string ToStr=iToStr;
+
+ if (string::npos==SrcStr.find('%'))
+ {
+ string PerStr("%");
+ SrcStr=PerStr+SrcStr;
+ ToStr=PerStr+ToStr;
+ }
+ const char *pTmp=ToSubst.c_str();
+ bool first=true;
+ while (*pTmp)
+ {
+ if (!first)
+ {
+ Ret+=g_SpaceString;
+ }
+ else
+ {
+ first=false;
+ }
+ string Item;
+ pTmp=NextItem(pTmp,Item);
+
+ if (PercentMatch(Item,SrcStr,&Res))
+ {
+ Ret+=ReplaceWithStem(ToStr,Res.m_Stem);
+ }
+ else
+ {
+ Ret+=Item;
+ }
+ }
+
+ return Ret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+bool PercentMatch(const string &String,const string &Expr,matchres *pRes,const char Char)
+{
+ const char *pFirst=String.c_str();
+ const char *pFirstExpr=Expr.c_str();
+ while (*pFirstExpr && *pFirstExpr!=Char)
+ {
+ if (*pFirst!=*pFirstExpr)
+ return false;
+ pFirst++;
+ pFirstExpr++;
+ }
+
+ if (!*pFirstExpr)
+ {
+ if (!*pFirst)
+ {
+ if (pRes)
+ {
+ pRes->m_First=String;
+ pRes->m_Stem=pRes->m_Last=g_EmptyString;
+ }
+ return true;
+ } else
+ return false;
+ }
+ else if (!*pFirst)
+ return false;
+
+ const char *pEnd=pFirst+strlen(pFirst);
+
+ const char *pLast=pEnd;
+ const char *pLastExpr=pFirstExpr+strlen(pFirstExpr)-1;
+ if (pLastExpr!=pFirstExpr)
+ {
+ pLast--;
+
+ while (pLastExpr>pFirstExpr)
+ {
+ if (*pLastExpr!=*pLast)
+ return false;
+ pLastExpr--;
+ pLast--;
+ }
+ pLast++;
+ }
+ string Stem=string(pFirst,pLast-pFirst);
+
+ if (pRes)
+ {
+ pRes->m_First=string(String.c_str(),pFirst-String.c_str());
+
+ pRes->m_Stem=Stem;
+
+ pRes->m_Last=string(pLast,pEnd-pLast);
+ }
+ return true;
+}
+///////////////////////////////////////////////////////////////////////////////
+bool PercentMatchNoCase(const string &String,const string &Expr,matchres *pRes,const char Char)
+{
+ const char *pFirst=String.c_str();
+ const char *pFirstExpr=Expr.c_str();
+ while (*pFirstExpr && *pFirstExpr!=Char)
+ {
+ if (tolower(*pFirst)!=tolower(*pFirstExpr))
+ return false;
+ pFirst++;
+ pFirstExpr++;
+ }
+
+ if (!*pFirstExpr)
+ {
+ if (!*pFirst)
+ {
+ if (pRes)
+ {
+ pRes->m_First=String;
+ pRes->m_Stem=pRes->m_Last=g_EmptyString;
+ }
+ return true;
+ } else
+ return false;
+ }
+ else if (!*pFirst)
+ return false;
+
+ const char *pEnd=pFirst+strlen(pFirst);
+
+ const char *pLast=pEnd;
+ const char *pLastExpr=pFirstExpr+strlen(pFirstExpr)-1;
+ if (pLastExpr!=pFirstExpr)
+ {
+ pLast--;
+
+ while (pLastExpr>pFirstExpr)
+ {
+ if (tolower(*pLastExpr)!=tolower(*pLast))
+ return false;
+ pLastExpr--;
+ pLast--;
+ }
+ pLast++;
+ }
+ string Stem=string(pFirst,pLast-pFirst);
+
+ if (pRes)
+ {
+ pRes->m_First=string(String.c_str(),pFirst-String.c_str());
+
+ pRes->m_Stem=Stem;
+
+ pRes->m_Last=string(pLast,pEnd-pLast);
+ }
+ return true;
+}
+///////////////////////////////////////////////////////////////////////////////
+bool PercentMatchList(const string &String,const string &ExprList,matchres *pRes)
+{
+ const char *pTmp=ExprList.c_str();
+ while (*pTmp)
+ {
+ string Expr;
+ pTmp=NextItem(pTmp,Expr);
+ if (PercentMatch(String,Expr,pRes))
+ return true;
+ }
+ return false;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+string ReplaceWithStem(const string &String,const string &Stem)
+{
+ string Ret=String;
+ size_t Pos=Ret.find('%');
+ while (Pos!=string::npos)
+ {
+ Ret=Ret.substr(0,Pos)+Stem+Ret.substr(Pos+1);
+ Pos=Ret.find('%');
+ }
+ return Ret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+refptr<loadedmakefile> LOADEDMAKEFILES::find(const loadedmakefile &ToSearch)
+{
+ vector<refptr<loadedmakefile> >::const_iterator It=begin();
+ while (It!=end())
+ {
+ if (*(*It)==ToSearch)
+ return *It;
+ It++;
+ }
+ return refptr<loadedmakefile>();
+}
+
+///////////////////////////////////////////////////////////////////////////////
+bool loadedmakefile::loadedmakefile_statics::GetSvnRevision(void)
+{
+ // Get the revision of the working copy
+ // We do it with the svn info command (do it without path arguments, only current directory, to avoid problems with path names and junctions/links
+
+ string Output;
+ try
+ {
+ mhmakefileparser Dummy(m_MhMakeConf);
+ string SvnCommand=Dummy.SearchCommand("svn",EXEEXT);
+ Dummy.OsExeCommand(SvnCommand,string(" info"),false,&Output);
+ }
+ catch (string Message)
+ {
+ #ifdef _DEBUG
+ cerr << "Exception: " << Message << endl;
+ #endif
+ }
+
+ char *pTok=strtok((char*)Output.c_str(),"\n"); // doing this is changing string, so this is very dangerous !!!
+ while (pTok)
+ {
+ if (!strncmp(pTok,"URL: ",5))
+ {
+ m_GlobalCommandLineVars[WC_URL]=pTok+5+7;
+ }
+ else if (!strncmp(pTok,"Revision: ",10))
+ {
+ m_GlobalCommandLineVars[WC_REVISION]=pTok+10;
+ return true;
+ }
+ pTok=strtok(NULL,"\n");
+ }
+ return false;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+bool loadedmakefile::loadedmakefile_statics::GetGitSvnRevision(void)
+{
+ // Get the revision of the working copy
+ // We do it with the svn info command
+
+ string Output;
+ try
+ {
+ mhmakefileparser Dummy(m_MhMakeConf);
+ string GitCommand=Dummy.SearchCommand("git",EXEEXT);
+ Dummy.OsExeCommand(GitCommand,string(" svn info ."), false, &Output);
+ }
+ catch (string Message)
+ {
+ #ifdef _DEBUG
+ cerr << "Exception: " << Message << endl;
+ #endif
+ }
+
+ char *pTok=strtok((char*)Output.c_str(),"\n"); // doing this is changing string, so this is very dangerous !!!
+ while (pTok)
+ {
+ if (!strncmp(pTok,"URL: ",5))
+ {
+ m_GlobalCommandLineVars[WC_URL]=pTok+5+7;
+ }
+ else if (!strncmp(pTok,"Revision: ",10))
+ {
+ m_GlobalCommandLineVars[WC_REVISION]=pTok+10;
+ return true;
+ }
+ pTok=strtok(NULL,"\n");
+ }
+ return false;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+loadedmakefile::loadedmakefile_statics::loadedmakefile_statics()
+{
+ m_GlobalCommandLineVars[MAKE]=g_MakeCommand;
+ const char *pEnv=getenv(MHMAKECONF);
+ if (pEnv)
+ {
+ m_MhMakeConf=GetAbsFileInfo(pEnv);
+ m_GlobalCommandLineVars[MHMAKECONF]=QuoteFileName(m_MhMakeConf->GetFullFileName());
+
+ if (!GetSvnRevision())
+ GetGitSvnRevision();
+ }
+}
+
+///////////////////////////////////////////////////////////////////////////////
+loadedmakefile::loadedmakefile(const fileinfo *pDir, vector<string> &Args,const string&Makefile)
+{
+ m_Makefile=NULL;
+ m_CommandLineVars=sm_Statics.m_GlobalCommandLineVars;
+
+ m_MakeDir=NULL;
+ vector<string>::iterator ArgIt=Args.begin();
+ while (ArgIt!=Args.end())
+ {
+ size_t EqPos=ArgIt->find('=');
+ if (EqPos!=string::npos)
+ {
+ string Var=ArgIt->substr(0,EqPos);
+ string Val=ArgIt->substr(EqPos+1);
+ m_CommandLineVars[Var]=Val;
+ }
+ else if ((*ArgIt)[0]=='-')
+ {
+ switch ((*ArgIt)[1])
+ {
+ case 'f':
+ if (ArgIt->size()>2)
+ {
+ if (!m_MakeDir)
+ {
+ m_Makefile=GetFileInfo(ArgIt->substr(2),pDir);
+ }
+ else
+ {
+ m_Makefile=GetFileInfo(ArgIt->substr(2),m_MakeDir);
+ }
+ }
+ else
+ {
+ ArgIt++;
+ if (!m_MakeDir)
+ {
+ m_Makefile=GetFileInfo(*ArgIt,pDir);
+ }
+ else
+ {
+ m_Makefile=GetFileInfo(*ArgIt,m_MakeDir);
+ }
+ }
+ break;
+ case 'C':
+#ifdef _DEBUG
+ if (ArgIt->size()>2 && (*ArgIt)[2]=='D')
+ {
+ g_CheckCircularDeps=true;
+ break;
+ }
+#endif
+ /* Fall through */
+ case 'c':
+ if (ArgIt->size()>2)
+ m_MakeDir=GetFileInfo(ArgIt->substr(2),pDir);
+ else
+ {
+ ArgIt++;
+ m_MakeDir=GetFileInfo(*ArgIt,pDir);
+ }
+ break;
+ case 'a':
+ g_RebuildAll=true;
+ break;
+ case 'q':
+ g_Quiet=true;
+ break;
+ case 's':
+ g_ForceAutoDepRescan=true;
+ break;
+ case 'S':
+ g_SkipMhMakeConfDirCheck=true;
+ break;
+ case 'v':
+ PrintVersionInfo();
+ break;
+ case 'P':
+ if (ArgIt->size()>2)
+ mhmakefileparser::SetNrParallelBuilds(atoi(ArgIt->substr(2).c_str()));
+ else
+ {
+ ArgIt++;
+ mhmakefileparser::SetNrParallelBuilds(atoi((*ArgIt).c_str()));
+ }
+ break;
+#ifdef _DEBUG
+ case 'p':
+ g_PrintVarsAndRules=true;
+ break;
+ case 'n':
+ g_DoNotExecute=true;
+ break;
+ case 'w':
+ g_PrintAdditionalInfo=true;
+ break;
+ case 'd':
+ g_pPrintDependencyCheck=true;
+ break;
+ case 'D':
+ g_PrintMultipleDefinedRules=true;
+ break;
+ case 'l':
+ g_PrintLexYacc=true;
+ break;
+ case 'e':
+ g_DumpOnError=true;
+ break;
+ case 'm':
+ g_BuildMd5Db=true;
+ break;
+ case 'b':
+ g_GenProjectTree=true;
+ break;
+#endif
+ default:
+ throw string("\nUnknown option: ")+*ArgIt+"\n\n"+ s_UsageString;
+ }
+ }
+ else
+ {
+ m_CommandLineTargets.push_back(*ArgIt);
+ }
+ ArgIt++;
+ }
+ if (!m_Makefile)
+ {
+ if (!Makefile.empty())
+ {
+ if (!m_MakeDir)
+ m_Makefile=GetFileInfo(Makefile,pDir);
+ else
+ m_Makefile=GetFileInfo(Makefile,m_MakeDir);
+ }
+ }
+ if (!m_Makefile)
+ {
+ if (!m_MakeDir)
+ m_Makefile=GetFileInfo(m_CommandLineTargets[0],pDir);
+ else
+ m_Makefile=GetFileInfo(m_CommandLineTargets[0],m_MakeDir);
+
+ m_CommandLineTargets.erase(m_CommandLineTargets.begin());
+ }
+ if (!m_MakeDir)
+ {
+ if (Makefile==g_EmptyString)
+ m_MakeDir=m_Makefile->GetDir(); /* This is one from load_makefile, so we take the directory of the makefile itself. */
+ else
+ m_MakeDir=curdir::GetCurDir(); /* This means that this is the main makefile given on the command line, so we take the current directory */
+ }
+
+ if (!g_SkipMhMakeConfDirCheck)
+ {
+ if (loadedmakefile::sm_Statics.m_MhMakeConf)
+ {
+ const string &RootDir=loadedmakefile::sm_Statics.m_MhMakeConf->GetFullFileName();
+ string MakeDir=m_MakeDir->GetFullFileName();
+ if (RootDir.length()>MakeDir.length() || strncmp(RootDir.c_str(),MakeDir.c_str(),RootDir.length()))
+ {
+ cerr<<"mhmake needs to run in a directory that is a subdirectory of the directory specified with %MHMAKECONF : "<<RootDir<<", make dir : "<<m_MakeDir->GetFullFileName()<<"\nComparison is case sensitive!\n";
+ exit(1);
+ }
+ }
+ }
+}
+
+///////////////////////////////////////////////////////////////////////////////
+void loadedmakefile::LoadMakefile()
+{
+ #ifdef _DEBUG
+ if (g_PrintAdditionalInfo)
+ cout << "Loading makefile "<<m_Makefile->GetQuotedFullFileName()<<endl;
+ #endif
+
+ m_pMakefileParser=refptr<mhmakefileparser>(new mhmakefileparser(m_CommandLineVars));
+
+ // Add the MAKECMDGOALS environment variable
+ string MakeCmdGoals;
+ bool First=true;
+ vector<string>::iterator TarIt=m_CommandLineTargets.begin();
+ while (TarIt!=m_CommandLineTargets.end())
+ {
+ if (First)
+ First=false;
+ else
+ MakeCmdGoals+=g_SpaceString;
+ MakeCmdGoals+=*TarIt;
+ TarIt++;
+ }
+ m_pMakefileParser->SetVariable("MAKECMDGOALS",MakeCmdGoals);
+
+ string BaseAutoMak;
+
+ // First parse the makefile.before makefile which is in the directory $(MHMAKECONF) environment variable
+ fileinfo *pDepFile;
+ if (sm_Statics.m_MhMakeConf)
+ {
+ BaseAutoMak=m_pMakefileParser->ExpandVar(BASEAUTOMAK);
+ if (BaseAutoMak.empty())
+ {
+ BaseAutoMak="makefile";
+ m_pMakefileParser->SetVariable(BASEAUTOMAK,BaseAutoMak);
+ }
+ const fileinfo *pBeforeMakefile=GetFileInfo(BaseAutoMak+".before",sm_Statics.m_MhMakeConf);
+
+ int result=m_pMakefileParser->ParseFile(pBeforeMakefile,m_MakeDir);
+ if (result)
+ {
+ throw string("Error parsing ")+pBeforeMakefile->GetQuotedFullFileName();
+ }
+ m_pMakefileParser->UpdateDate(pBeforeMakefile->GetDate());
+
+ // Now parse the automaticly generated dependency file, which needs to be in the objdir directory
+ string ObjDirName=m_pMakefileParser->ExpandExpression("$(OBJDIR)");
+ if (!ObjDirName.size())
+ {
+ throw string("When making use of MHMAKECONF, you have to define OBJDIR in makefile.before");
+ }
+ pDepFile=GetFileInfo(ObjDirName+OSPATHSEPSTR "." + m_Makefile->GetName()+ ".dep",m_MakeDir);
+ m_pMakefileParser->SetVariable(AUTODEPFILE,pDepFile->GetQuotedFullFileName());
+ }
+ else
+ {
+ pDepFile=GetFileInfo(string(".") + m_Makefile->GetName()+ ".dep",m_MakeDir);
+ m_pMakefileParser->SetVariable(AUTODEPFILE,pDepFile->GetQuotedFullFileName());
+ }
+
+ if (pDepFile->Exists())
+ m_pMakefileParser->LoadAutoDepsFile(pDepFile); /* Already load this autodep file before parsing of the makefile to avoid needless rebuilds. */
+
+ //m_pMakefileParser->yydebug=1;
+ int result=m_pMakefileParser->ParseFile(m_Makefile,m_MakeDir);
+ if (result)
+ {
+ throw string("Error parsing ")+m_Makefile->GetQuotedFullFileName();
+ }
+
+ fileinfo *pMaybeNewDepFile=GetFileInfo(m_pMakefileParser->ExpandVar(AUTODEPFILE),m_MakeDir);
+ #ifdef _DEBUG
+ /* Check if the makefile has changed the AUTODEPFILE variable, if so generate a warning that a
+ * rebuild could happen for the rules defined for making included makefiles */
+ if (pMaybeNewDepFile!=pDepFile)
+ {
+ cout << "\n\nWARNING:\n makefile '"<< m_Makefile->GetQuotedFullFileName() <<"' re-defines AUTODEPFILE\n from '"<< pDepFile->GetQuotedFullFileName() <<"'\n to '"<<
+ m_pMakefileParser->ExpandVar(AUTODEPFILE) << "'\n (may cause needless rebuilds when having rules for included makefiles!!!!!)\n\n\n";
+ }
+
+ if (g_PrintAdditionalInfo)
+ {
+ if (m_pMakefileParser->GetFirstTarget())
+ cout<<"First target of "<<m_Makefile->GetQuotedFullFileName()<<" is "<<m_pMakefileParser->GetFirstTarget()->GetQuotedFullFileName()<<endl;
+ else
+ cout<<"No First target for "<<m_Makefile->GetQuotedFullFileName()<<endl;
+ }
+ #endif
+
+ if (pMaybeNewDepFile!=pDepFile)
+ {
+ // this means the makefile has overruled the AUTODEPFILE, so parse it again
+ pDepFile=pMaybeNewDepFile;
+ if (pDepFile->Exists())
+ m_pMakefileParser->LoadAutoDepsFile(pDepFile); /* If it already exists, load it. */
+ }
+
+ m_pMakefileParser->UpdateDate(m_Makefile->GetDate());
+
+ if (sm_Statics.m_MhMakeConf)
+ {
+ fileinfo *pAfterMakefile=GetFileInfo(BaseAutoMak+".after",sm_Statics.m_MhMakeConf);
+ int result=m_pMakefileParser->ParseFile(pAfterMakefile);
+ if (result) {
+ throw string("Error parsing ")+pAfterMakefile->GetQuotedFullFileName();
+ }
+ m_pMakefileParser->UpdateDate(pAfterMakefile->GetDate());
+ }
+ bool ForceAutoDepRescan=g_ForceAutoDepRescan;
+ if (pDepFile->Exists())
+ m_pMakefileParser->LoadAutoDepsFile(pDepFile);
+ else
+ ForceAutoDepRescan=true;
+ if (ForceAutoDepRescan)
+ m_pMakefileParser->EnableAutoDepRescan();
+
+ vector<string> &MakefilesToLoad=m_pMakefileParser->GetMakefilesToLoad();
+ vector<string>::iterator It=MakefilesToLoad.begin();
+ while (It!=MakefilesToLoad.end())
+ {
+ // First split the command into arguments
+ const char *pTmp=It->c_str();
+ vector<string> Args;
+ while (*pTmp)
+ {
+ string Item;
+ pTmp=NextItem(pTmp,Item);
+ Args.push_back(Item);
+ }
+
+ refptr<loadedmakefile> pLoadedMakefile(new loadedmakefile(m_MakeDir,Args));
+ refptr<loadedmakefile> Found=g_LoadedMakefiles.find(*pLoadedMakefile);
+ if (Found)
+ {
+ #ifdef _DEBUG
+ if (g_PrintAdditionalInfo)
+ cout << "Makefile already loaded: "<<Found->m_Makefile->GetQuotedFullFileName()<<endl;
+ #endif
+ }
+ else
+ {
+ g_LoadedMakefiles.push_back(pLoadedMakefile);
+
+ /* If there is a rule to build the makefile, first check if it needs to be rebuild */
+ m_pMakefileParser->BuildTarget(pLoadedMakefile->m_Makefile);
+ pLoadedMakefile->LoadMakefile();
+ }
+ It++;
+ }
+}
+
+/*****************************************************************************/
+bool MakeDirs(fileinfo *pDir)
+{
+ fileinfo *pParentDir=pDir->GetDir();
+ if (!pParentDir->GetDate().DoesExist())
+ { /* First make parent dirs */
+ if (!MakeDirs(pParentDir))
+ return false;
+ }
+ if (!pDir->GetDate().DoesExist())
+ { /* Create directory */
+ struct stat statbuf;
+ if ( (-1==stat(pParentDir->GetFullFileName().c_str(),&statbuf)) ||
+ (-1==mkdir(pDir->GetFullFileName().c_str(),statbuf.st_mode))
+ )
+ {
+ cerr << "mkdir function failed for directory " << QuoteFileName(pDir->GetFullFileName()) << endl;
+ return false;
+ }
+ pDir->InvalidateDate(); // Directory created successfully, so invalidate the date
+ }
+ return true;
+}
+
+#ifdef _DEBUG
+///////////////////////////////////////////////////////////////////////////////
+void DumpVarsAndRules()
+{
+ int i;
+ LOADEDMAKEFILES::iterator LoadMakIt=g_LoadedMakefiles.begin();
+ while (LoadMakIt!=g_LoadedMakefiles.end())
+ {
+ for (i=0; i<80; i++) cout << "_";
+ cout << endl;
+ cout << "Variables of makefile " << (*LoadMakIt)->m_Makefile->GetQuotedFullFileName() << endl;
+ for (i=0; i<80; i++) cout << "_";
+ cout << endl;
+ (*LoadMakIt)->m_pMakefileParser->PrintVariables(true);
+ cout << endl;
+ LoadMakIt++;
+ }
+ for (i=0; i<80; i++) cout << "_";
+ cout << endl;
+ cout << "All Rules\n";
+ for (i=0; i<80; i++) cout << "_";
+ cout << endl;
+ PrintFileInfos();
+ for (i=0; i<80; i++) cout << "_";
+ cout << endl;
+ cout << "All Implicit Rules\n";
+ for (i=0; i<80; i++) cout << "_";
+ cout << endl;
+ IMPLICITRULE::PrintImplicitRules();
+}
+#endif
+
diff --git a/tools/mhmake/src/util.h b/tools/mhmake/src/util.h
new file mode 100644
index 000000000..01e766520
--- /dev/null
+++ b/tools/mhmake/src/util.h
@@ -0,0 +1,316 @@
+/* This file is part of mhmake.
+ *
+ * Copyright (C) 2001-2010 marha@sourceforge.net
+ *
+ * Mhmake is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Mhmake is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mhmake. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* $Rev$ */
+
+#ifndef __UTIL_H__
+#define __UTIL_H__
+
+#include "fileinfo.h"
+
+// List of pre-defined variables
+#define WC_REVISION "WC_REVISION"
+#define WC_URL "WC_URL"
+#define AUTODEPFILE "AUTODEPFILE"
+#define OBJEXTVAR "OBJEXT"
+#define EXEEXTVAR "EXEEXT"
+#define SKIPHEADERS "SKIPHEADERS"
+#define MAKE "MAKE"
+#define MHMAKECONF "MHMAKECONF"
+#define BASEAUTOMAK "BASEAUTOMAK"
+#define CURDIR "CURDIR"
+#define USED_ENVVARS "USED_ENVVARS"
+#define PATH "PATH"
+#ifdef WIN32
+#define COMSPEC "COMSPEC"
+#define PYTHONEXE "python.exe"
+#define EXEEXT ".exe"
+#define OBJEXT ".obj"
+#define PLATFORM "win32"
+#else
+#define COMSPEC "SHELL"
+#define PYTHONEXE "python"
+#define EXEEXT ""
+#define OBJEXT ".o"
+#define PLATFORM "linux"
+#endif
+
+#define MHMAKEVER "3.0.25"
+
+class makecommand
+{
+ string m_BuildCommand;
+public:
+ makecommand();
+ operator string()
+ {
+ return m_BuildCommand;
+ }
+};
+
+extern makecommand g_MakeCommand;
+
+///////////////////////////////////////////////////////////////////////////////
+inline string unescapeString(const string &InStr)
+{
+ string OutStr;
+ string::const_iterator It=InStr.cbegin();
+ string::const_iterator ItEnd=InStr.cend();
+ while (It!=ItEnd)
+ {
+ char Ch=*It++;
+ if (Ch=='\\' && It!=ItEnd)
+ {
+ Ch=*It++;
+ }
+ OutStr+=Ch;
+ }
+ return OutStr;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+inline const char *NextItem(const char *pTmp,string &Output, const char *pToks=" \t")
+{
+ const char *pStart;
+ const char *pStop;
+ while (strchr(pToks,*pTmp)&&*pTmp) pTmp++;
+ pStart=pTmp;
+ while (1)
+ {
+ if (*pTmp=='"')
+ {
+ pTmp++;
+ while (*pTmp && *pTmp!='"') pTmp++;
+ if (*pTmp) pTmp++;
+ pStop=pTmp;
+ if (!*pTmp || strchr(pToks,*pTmp))
+ break;
+ }
+ else if (*pTmp=='\'')
+ {
+ pTmp++;
+ while (*pTmp && *pTmp!='\'') pTmp++;
+ if (*pTmp) pTmp++;
+ pStop=pTmp;
+ if (!*pTmp || strchr(pToks,*pTmp))
+ break;
+ }
+ else if (!*pTmp)
+ {
+ pStop=pTmp;
+ break;
+ }
+ else
+ {
+ pTmp++;
+ #if OSPATHSEP=='/'
+ while (*pTmp)
+ {
+ if (!strchr(pToks,*pTmp) || (*(pTmp-1)=='\\'))
+ pTmp++;
+ else
+ break;
+ }
+ #else
+ while (!strchr(pToks,*pTmp)) pTmp++;
+ #endif
+ pStop=pTmp;
+ break;
+ }
+ }
+ Output=string(pStart,pStop);
+ // skip trailing space
+ while (strchr(pToks,*pTmp)&&*pTmp) pTmp++;
+ return pTmp;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+inline const char *NextCharItem(const char *pTmp,string &Output,char Char)
+{
+ const char *pStart=pTmp;
+ while (*pTmp && *pTmp!=Char) pTmp++;
+ const char *pStop=pTmp;
+ if (*pTmp) pTmp++;
+
+ while (pStart<pStop && (*pStart==' ' || *pStart == '\t')) pStart++;
+ pStop--;
+ while (pStart<=pStop && (*pStop==' ' || *pStop == '\t')) pStop--;
+ pStop++;
+
+ Output=string(pStart,pStop);
+ return pTmp;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+inline const char *SkipMakeExpr(const char *pMacro)
+{
+#ifdef _DEBUG
+ const char *pMacroIn=pMacro;
+#endif
+ char Char=*pMacro++;
+ char EndChar;
+ if (Char=='(')
+ EndChar=')';
+ else if (Char=='{')
+ EndChar='}';
+ else
+ return pMacro;
+ Char=*pMacro++;
+ while (Char!=EndChar)
+ {
+ if (Char=='$')
+ {
+ pMacro=SkipMakeExpr(pMacro);
+ } else if (Char=='(')
+ {
+ pMacro=SkipMakeExpr(pMacro-1);
+ }
+#ifdef _DEBUG
+ if (!*pMacro)
+ throw(string(1,EndChar)+" not found in "+pMacroIn);
+#endif
+ Char=*pMacro++;
+ }
+ return pMacro;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+inline size_t SkipMakeExpr(const string &Expr,size_t i)
+{
+ const char *pTmp=Expr.c_str();
+ return SkipMakeExpr(pTmp+i)-pTmp;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+string Substitute(const string &ToSubst,const string &SrcStr,const string &ToStr);
+
+struct matchres
+{
+ string m_First;
+ string m_Stem;
+ string m_Last;
+};
+
+bool PercentMatch(const string &String,const string &Expr,matchres *pRes=NULL,const char Char='%');
+bool PercentMatchNoCase(const string &String,const string &Expr,matchres *pRes=NULL,const char Char='%');
+bool PercentMatchList(const string &String,const string &ExprList,matchres *pRes=NULL);
+string ReplaceWithStem(const string &String,const string &Stem);
+
+struct loadedmakefile : public refbase
+{
+ struct loadedmakefile_statics
+ {
+ map<string,string> m_GlobalCommandLineVars;
+ fileinfo *m_MhMakeConf;
+
+ loadedmakefile_statics();
+
+ bool GetSvnRevision(void);
+ bool GetGitSvnRevision(void);
+ };
+ static loadedmakefile_statics sm_Statics;
+
+ fileinfo *m_Makefile;
+ const fileinfo *m_MakeDir;
+ map<string,string> m_CommandLineVars;
+
+ vector<string> m_CommandLineTargets;
+ refptr<mhmakefileparser> m_pMakefileParser;
+
+ loadedmakefile()
+ {
+ // Dummy, only used below
+ }
+
+ loadedmakefile(const fileinfo *pDir, vector<string> &Args,const string &Makefile=g_EmptyString);
+
+ void LoadMakefile();
+ void AddCommandLineVarsToEnvironment()
+ {
+ map<string,string>::const_iterator It=m_CommandLineVars.begin();
+ map<string,string>::const_iterator ItEnd=m_CommandLineVars.end();
+ while (It!=ItEnd)
+ {
+ sm_Statics.m_GlobalCommandLineVars.insert(*It++);
+ }
+ }
+
+ int operator==(const loadedmakefile &Other)
+ {
+ if (m_Makefile!=Other.m_Makefile)
+ return 0;
+ if (m_MakeDir!=Other.m_MakeDir)
+ return 0;
+ if (m_CommandLineTargets.size()!=Other.m_CommandLineTargets.size())
+ return 0;
+ if (m_CommandLineVars.size()!=Other.m_CommandLineVars.size())
+ return 0;
+ map<string,string>::iterator VarIt=m_CommandLineVars.begin();
+ while (VarIt!=m_CommandLineVars.end())
+ {
+ map<string,string>::const_iterator pFound=Other.m_CommandLineVars.find(VarIt->first);
+ if (pFound==Other.m_CommandLineVars.end())
+ return 0;
+ if (pFound->second!=VarIt->second)
+ return 0;
+ VarIt++;
+ }
+ vector<string>::iterator TarIt=m_CommandLineTargets.begin();
+ while (TarIt!=m_CommandLineTargets.end())
+ {
+ vector<string>::const_iterator OtherIt=Other.m_CommandLineTargets.begin();
+ while (OtherIt!=Other.m_CommandLineTargets.begin())
+ {
+ if (*TarIt==*OtherIt)
+ break;
+ OtherIt++;
+ }
+ if (OtherIt==Other.m_CommandLineTargets.end())
+ return 0;
+ TarIt++;
+ }
+ return 1;
+ }
+public:
+ fileinfo *GetMhMakeConf()
+ {
+ return sm_Statics.m_MhMakeConf;
+ }
+
+};
+
+class LOADEDMAKEFILES : public vector<refptr<loadedmakefile> >
+{
+public:
+ LOADEDMAKEFILES()
+ {
+ loadedmakefile temp;
+ temp.GetMhMakeConf(); // Just to be here to control the order of destruction (sm_Statics may not be destructed before g_LoadedMakefiles)
+ }
+ refptr<loadedmakefile> find(const loadedmakefile &pToSearch);
+ typedef vector<refptr<loadedmakefile> >::iterator iterator;
+};
+
+extern LOADEDMAKEFILES g_LoadedMakefiles;
+
+bool MakeDirs(fileinfo *pDir); // Creates a directory tree
+void DumpVarsAndRules();
+
+#endif
+
diff --git a/tools/plink/makefile b/tools/plink/makefile
new file mode 100644
index 000000000..0e41baef4
--- /dev/null
+++ b/tools/plink/makefile
@@ -0,0 +1,15 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1 on the command line or as environment variable)
+endif
+
+DEFINES += SECURITY_WIN32
+
+CSRCS = winplink.c winhandl.c misc.c settings.c winstore.c windefs.c winmisc.c wincons.c \
+ logging.c winnet.c tree234.c winnoise.c sshrand.c cmdline.c sshsha.c timing.c \
+ be_all.c rlogin.c proxy.c winproxy.c cproxy.c sshmd5.c time.c version.c ssh.c \
+ sshdh.c sshzlib.c sshbn.c sshrsa.c sshcrcda.c sshpubk.c sshdes.c wingss.c \
+ sshblowf.c sshsh512.c sshsh256.c sshaes.c pinger.c ssharcf.c x11fwd.c winpgntc.c \
+ winx11.c portfwd.c sshcrc.c wildcard.c ldisc.c sshdss.c raw.c telnet.c sshgssc.c \
+ pgssapi.c winnojmp.c conf.c
+
+TTYAPP=plink
diff --git a/tools/plink/misc.h b/tools/plink/misc.h
index 0ecb34445..d6b9dd2e4 100644
--- a/tools/plink/misc.h
+++ b/tools/plink/misc.h
@@ -93,18 +93,18 @@ void debug_memdump(void *buf, int len, int L);
((unsigned long)(unsigned char)(cp)[3] << 24))
#define PUT_32BIT_LSB_FIRST(cp, value) ( \
- (cp)[0] = (unsigned char)(value), \
- (cp)[1] = (unsigned char)((value) >> 8), \
- (cp)[2] = (unsigned char)((value) >> 16), \
- (cp)[3] = (unsigned char)((value) >> 24) )
+ (cp)[0] = (unsigned char)((value)&0xff), \
+ (cp)[1] = (unsigned char)(((value) >> 8)&0xff), \
+ (cp)[2] = (unsigned char)(((value) >> 16)&0xff), \
+ (cp)[3] = (unsigned char)(((value) >> 24)&0xff) )
#define GET_16BIT_LSB_FIRST(cp) \
(((unsigned long)(unsigned char)(cp)[0]) | \
((unsigned long)(unsigned char)(cp)[1] << 8))
#define PUT_16BIT_LSB_FIRST(cp, value) ( \
- (cp)[0] = (unsigned char)(value), \
- (cp)[1] = (unsigned char)((value) >> 8) )
+ (cp)[0] = (unsigned char)((value)&0xff), \
+ (cp)[1] = (unsigned char)(((value) >> 8)&0xff) )
#define GET_32BIT_MSB_FIRST(cp) \
(((unsigned long)(unsigned char)(cp)[0] << 24) | \
@@ -115,16 +115,16 @@ void debug_memdump(void *buf, int len, int L);
#define GET_32BIT(cp) GET_32BIT_MSB_FIRST(cp)
#define PUT_32BIT_MSB_FIRST(cp, value) ( \
- (cp)[0] = (unsigned char)((value) >> 24), \
- (cp)[1] = (unsigned char)((value) >> 16), \
- (cp)[2] = (unsigned char)((value) >> 8), \
- (cp)[3] = (unsigned char)(value) )
+ (cp)[0] = (unsigned char)(((value) >> 24)&0xff), \
+ (cp)[1] = (unsigned char)(((value) >> 16)&0xff), \
+ (cp)[2] = (unsigned char)(((value) >> 8)&0xff), \
+ (cp)[3] = (unsigned char)((value)&0xff) )
#define PUT_32BIT(cp, value) PUT_32BIT_MSB_FIRST(cp, value)
#define GET_16BIT_MSB_FIRST(cp) \
- (((unsigned long)(unsigned char)(cp)[0] << 8) | \
- ((unsigned long)(unsigned char)(cp)[1]))
+ (((unsigned long)(unsigned char)((cp)[0] << 8)&0xff) | \
+ ((unsigned long)(unsigned char)((cp)[1])&0xff))
#define PUT_16BIT_MSB_FIRST(cp, value) ( \
(cp)[0] = (unsigned char)((value) >> 8), \
diff --git a/tools/plink/ssh.c b/tools/plink/ssh.c
index 8f1aa15de..bdbbc4fd5 100644
--- a/tools/plink/ssh.c
+++ b/tools/plink/ssh.c
@@ -1193,6 +1193,7 @@ static void c_write_stderr(int trusted, const char *buf, int len)
for (i = 0; i < len; i++)
if (buf[i] != '\r' && (trusted || buf[i] == '\n' || (buf[i] & 0x60)))
fputc(buf[i], stderr);
+ fflush(stderr);
}
static void c_write(Ssh ssh, const char *buf, int len)
diff --git a/tools/plink/sshbn.c b/tools/plink/sshbn.c
index 51cecdf2b..5c1870876 100644
--- a/tools/plink/sshbn.c
+++ b/tools/plink/sshbn.c
@@ -172,7 +172,7 @@ static BignumInt internal_add(const BignumInt *a, const BignumInt *b,
for (i = len-1; i >= 0; i--) {
carry += (BignumDblInt)a[i] + b[i];
- c[i] = (BignumInt)carry;
+ c[i] = (BignumInt)(carry&BIGNUM_INT_MASK);
carry >>= BIGNUM_INT_BITS;
}
@@ -192,7 +192,7 @@ static void internal_sub(const BignumInt *a, const BignumInt *b,
for (i = len-1; i >= 0; i--) {
carry += (BignumDblInt)a[i] + (b[i] ^ BIGNUM_INT_MASK);
- c[i] = (BignumInt)carry;
+ c[i] = (BignumInt)(carry&BIGNUM_INT_MASK);
carry >>= BIGNUM_INT_BITS;
}
}
@@ -418,7 +418,7 @@ static void internal_mul(const BignumInt *a, const BignumInt *b,
carry = 0;
for (cp = cps, bp = b + len; cp--, bp-- > b ;) {
t = (MUL_WORD(*ap, *bp) + carry) + *cp;
- *cp = (BignumInt) t;
+ *cp = (BignumInt) (t & 0xffffffff);
carry = (BignumInt)(t >> BIGNUM_INT_BITS);
}
*cp = carry;
@@ -520,7 +520,7 @@ static void internal_mul_low(const BignumInt *a, const BignumInt *b,
carry = 0;
for (cp = cps, bp = b + len; bp--, cp-- > c ;) {
t = (MUL_WORD(*ap, *bp) + carry) + *cp;
- *cp = (BignumInt) t;
+ *cp = (BignumInt) (t&BIGNUM_INT_MASK);
carry = (BignumInt)(t >> BIGNUM_INT_BITS);
}
}
@@ -599,7 +599,7 @@ static void internal_add_shifted(BignumInt *number,
while (addend) {
addend += number[word];
- number[word] = (BignumInt) addend & BIGNUM_INT_MASK;
+ number[word] = (BignumInt) (addend & BIGNUM_INT_MASK);
addend >>= BIGNUM_INT_BITS;
word++;
}
@@ -687,9 +687,9 @@ static void internal_mod(BignumInt *a, int alen,
t = MUL_WORD(q, m[k]);
t += c;
c = (unsigned)(t >> BIGNUM_INT_BITS);
- if ((BignumInt) t > a[i + k])
+ if (((BignumInt)(t&0xffffffff)) > a[i + k])
c++;
- a[i + k] -= (BignumInt) t;
+ a[i + k] -= (BignumInt) (t&0xffffffff);
}
/* Add back m in case of borrow */
@@ -1390,7 +1390,7 @@ Bignum bigmuladd(Bignum a, Bignum b, Bignum addend)
for (i = 1; i <= rlen; i++) {
carry += (i <= (int)ret[0] ? ret[i] : 0);
carry += (i <= (int)addend[0] ? addend[i] : 0);
- ret[i] = (BignumInt) carry & BIGNUM_INT_MASK;
+ ret[i] = (BignumInt) (carry & BIGNUM_INT_MASK);
carry >>= BIGNUM_INT_BITS;
if (ret[i] != 0 && i > maxspot)
maxspot = i;
@@ -1430,7 +1430,7 @@ Bignum bigadd(Bignum a, Bignum b)
for (i = 1; i <= rlen; i++) {
carry += (i <= (int)a[0] ? a[i] : 0);
carry += (i <= (int)b[0] ? b[i] : 0);
- ret[i] = (BignumInt) carry & BIGNUM_INT_MASK;
+ ret[i] = (BignumInt) (carry & BIGNUM_INT_MASK);
carry >>= BIGNUM_INT_BITS;
if (ret[i] != 0 && i > maxspot)
maxspot = i;
@@ -1460,7 +1460,7 @@ Bignum bigsub(Bignum a, Bignum b)
for (i = 1; i <= rlen; i++) {
carry += (i <= (int)a[0] ? a[i] : 0);
carry += (i <= (int)b[0] ? b[i] ^ BIGNUM_INT_MASK : BIGNUM_INT_MASK);
- ret[i] = (BignumInt) carry & BIGNUM_INT_MASK;
+ ret[i] = (BignumInt) (carry & BIGNUM_INT_MASK);
carry >>= BIGNUM_INT_BITS;
if (ret[i] != 0 && i > maxspot)
maxspot = i;
@@ -1529,7 +1529,7 @@ Bignum bignum_add_long(Bignum number, unsigned long addendx)
carry += addend & BIGNUM_INT_MASK;
carry += (i <= (int)number[0] ? number[i] : 0);
addend >>= BIGNUM_INT_BITS;
- ret[i] = (BignumInt) carry & BIGNUM_INT_MASK;
+ ret[i] = (BignumInt) (carry & BIGNUM_INT_MASK);
carry >>= BIGNUM_INT_BITS;
if (ret[i] != 0)
maxspot = i;
diff --git a/tools/plink/winplink.c b/tools/plink/winplink.c
index bd65f7825..27c386c07 100644
--- a/tools/plink/winplink.c
+++ b/tools/plink/winplink.c
@@ -3,6 +3,7 @@
*/
#include <stdio.h>
+#include <fcntl.h>
#include <stdlib.h>
#include <assert.h>
#include <stdarg.h>
@@ -742,3 +743,57 @@ int main(int argc, char **argv)
cleanup_exit(exitcode);
return 0; /* placate compiler warning */
}
+
+#ifdef _MSC_VER
+#pragma warning(disable:4273)
+#endif
+
+#ifndef _DEBUG
+_Check_return_opt_ int __cdecl printf(_In_z_ _Printf_format_string_ const char * pFmt, ...)
+{
+ static int ConsoleCreated=0;
+ va_list arglist;
+ if (!ConsoleCreated)
+ {
+ int hConHandle;
+ long lStdHandle;
+ CONSOLE_SCREEN_BUFFER_INFO coninfo;
+
+ FILE *fp;
+ const unsigned int MAX_CONSOLE_LINES = 500;
+ ConsoleCreated=1;
+ if (!AttachConsole(ATTACH_PARENT_PROCESS))
+ AllocConsole();
+
+ // set the screen buffer to be big enough to let us scroll text
+ GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo);
+ coninfo.dwSize.Y = MAX_CONSOLE_LINES;
+ SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize);
+
+ // redirect unbuffered STDOUT to the console
+ lStdHandle = (long)GetStdHandle(STD_OUTPUT_HANDLE);
+ hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
+ fp = fdopen( hConHandle, "w" );
+ *stdout = *fp;
+ setvbuf( stdout, NULL, _IONBF, 0 );
+
+ // redirect unbuffered STDIN to the console
+ lStdHandle = (long)GetStdHandle(STD_INPUT_HANDLE);
+ hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
+ fp = fdopen( hConHandle, "r" );
+ *stdin = *fp;
+ setvbuf( stdin, NULL, _IONBF, 0 );
+
+ // redirect unbuffered STDERR to the console
+ lStdHandle = (long)GetStdHandle(STD_ERROR_HANDLE);
+ hConHandle = _open_osfhandle(lStdHandle, _O_TEXT);
+ fp = fdopen( hConHandle, "w" );
+ *stderr = *fp;
+ setvbuf( stderr, NULL, _IONBF, 0 );
+
+ }
+
+ va_start(arglist, pFmt );
+ return vfprintf(stderr, pFmt, arglist);
+}
+#endif
diff --git a/updategit.bat b/updategit.bat
deleted file mode 100755
index 91dfb584a..000000000
--- a/updategit.bat
+++ /dev/null
@@ -1,117 +0,0 @@
-setlocal on
-set path=c:\program files\git\bin;%path%
-
-if not isdir xserver git clone git://anongit.freedesktop.org/xorg/xserver
-if not isdir libxcb git clone git://anongit.freedesktop.org/xcb/libxcb
-if not isdir libxcb/xcb-proto git clone git://anongit.freedesktop.org/xcb/proto libxcb/xcb-proto
-if not isdir xkeyboard-config git clone git://anongit.freedesktop.org/xkeyboard-config
-if not isdir libX11 git clone git://anongit.freedesktop.org/xorg/lib/libX11
-if not isdir libXdmcp git clone git://anongit.freedesktop.org/xorg/lib/libXdmcp
-if not isdir libXext git clone git://anongit.freedesktop.org/xorg/lib/libXext
-if not isdir libfontenc git clone git://anongit.freedesktop.org/xorg/lib/libfontenc
-if not isdir libXinerama git clone git://anongit.freedesktop.org/xorg/lib/libXinerama
-if not isdir libXau git clone git://anongit.freedesktop.org/xorg/lib/libXau
-if not isdir xkbcomp git clone git://anongit.freedesktop.org/xorg/app/xkbcomp
-if not isdir pixman git clone git://anongit.freedesktop.org/pixman
-if not isdir xextproto git clone git://anongit.freedesktop.org/xorg/proto/xextproto
-if not isdir randrproto git clone git://anongit.freedesktop.org/xorg/proto/randrproto
-if not isdir glproto git clone git://anongit.freedesktop.org/xorg/proto/glproto
-if not isdir mkfontscale git clone git://anongit.freedesktop.org/xorg/app/mkfontscale
-if not isdir xwininfo git clone git://anongit.freedesktop.org/xorg/app/xwininfo
-if not isdir libXft git clone git://anongit.freedesktop.org/xorg/lib/libXft
-if not isdir libXmu git clone git://anongit.freedesktop.org/xorg/lib/libXmu
-if not isdir libxtrans git clone git://anongit.freedesktop.org/xorg/lib/libxtrans
-if not isdir fontconfig git clone git://anongit.freedesktop.org/fontconfig
-if not isdir mesa git clone git://anongit.freedesktop.org/git/mesa/mesa
-
-pushd .
-echo Updating xserver |& tee /a d:\updategit.log
-pushd xserver |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating xkeyboard |& tee /a d:\updategit.log
-pushd xkeyboard-config |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating xcb |& tee /a d:\updategit.log
-pushd libxcb |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating xcb-proto |& tee /a d:\updategit.log
-pushd libxcb\xcb-proto |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating libX11 |& tee /a d:\updategit.log
-pushd libX11 |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating libXdmcp |& tee /a d:\updategit.log
-pushd libXdmcp |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating libXext |& tee /a d:\updategit.log
-pushd libXext |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating libfontenc|& tee /a d:\updategit.log
-pushd libfontenc |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating libXinerama|& tee /a d:\updategit.log
-pushd libXinerama |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating libXau |& tee /a d:\updategit.log
-pushd libXau |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating xkbcomp |& tee /a d:\updategit.log
-pushd xkbcomp |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating pixman |& tee /a d:\updategit.log
-pushd pixman |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating exextproto |& tee /a d:\updategit.log
-pushd xextproto |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating randrproto |& tee /a d:\updategit.log
-pushd randrproto |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating glproto |& tee /a d:\updategit.log
-pushd glproto |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating mkfontscale|& tee /a d:\updategit.log
-pushd mkfontscale |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating xwininfo |& tee /a d:\updategit.log
-pushd xwininfo |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating libXft |& tee /a d:\updategit.log
-pushd libXft |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating libXmu |& tee /a d:\updategit.log
-pushd libXmu |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating libxtrans |& tee /a d:\updategit.log
-pushd libxtrans |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating fontconfig |& tee /a d:\updategit.log
-pushd fontconfig |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-echo Updating mesa |& tee /a d:\updategit.log
-pushd mesa |& tee /a d:\updategit.log
-git pull |& tee /a d:\updategit.log
-popd
-popd
-setlocal off
diff --git a/updategit.sh b/updategit.sh
deleted file mode 100755
index 838c8ea82..000000000
--- a/updategit.sh
+++ /dev/null
@@ -1,92 +0,0 @@
-if [ ! -d xserver ]; then git clone git://anongit.freedesktop.org/xorg/xserver ; fi
-if [ ! -d libxcb ]; then git clone git://anongit.freedesktop.org/xcb/libxcb ; fi
-if [ ! -d libxcb/xcb-proto ]; then git clone git://anongit.freedesktop.org/xcb/proto libxcb/xcb-proto ; fi
-if [ ! -d xkeyboard-config ]; then git clone git://anongit.freedesktop.org/xkeyboard-config ; fi
-if [ ! -d libX11 ]; then git clone git://anongit.freedesktop.org/xorg/lib/libX11 ; fi
-if [ ! -d libXdmcp ]; then git clone git://anongit.freedesktop.org/xorg/lib/libXdmcp ; fi
-if [ ! -d libXext ]; then git clone git://anongit.freedesktop.org/xorg/lib/libXext ; fi
-if [ ! -d libfontenc ]; then git clone git://anongit.freedesktop.org/xorg/lib/libfontenc ; fi
-if [ ! -d libXinerama ]; then git clone git://anongit.freedesktop.org/xorg/lib/libXinerama ; fi
-if [ ! -d libXau ]; then git clone git://anongit.freedesktop.org/xorg/lib/libXau ; fi
-if [ ! -d xkbcomp ]; then git clone git://anongit.freedesktop.org/xorg/app/xkbcomp ; fi
-if [ ! -d pixman ]; then git clone git://anongit.freedesktop.org/pixman ; fi
-if [ ! -d xextproto ]; then git clone git://anongit.freedesktop.org/xorg/proto/xextproto ; fi
-if [ ! -d randrproto ]; then git clone git://anongit.freedesktop.org/xorg/proto/randrproto ; fi
-if [ ! -d glproto ]; then git clone git://anongit.freedesktop.org/xorg/proto/glproto ; fi
-if [ ! -d mkfontscale ]; then git clone git://anongit.freedesktop.org/xorg/app/mkfontscale ; fi
-if [ ! -d xwininfo ]; then git clone git://anongit.freedesktop.org/xorg/app/xwininfo ; fi
-if [ ! -d libXft ]; then git clone git://anongit.freedesktop.org/xorg/lib/libXft ; fi
-if [ ! -d libXmu ]; then git clone git://anongit.freedesktop.org/xorg/lib/libXmu ; fi
-if [ ! -d libxtrans ]; then git clone git://anongit.freedesktop.org/xorg/lib/libxtrans ; fi
-if [ ! -d fontconfig ]; then git clone git://anongit.freedesktop.org/fontconfig ; fi
-if [ ! -d mesa ]; then git clone git://anongit.freedesktop.org/git/mesa/mesa ; fi
-
-if [ -d xserver ]; then echo Updating xserver ; pushd xserver > /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d libxcb ]; then echo Updating libxcb ; pushd libxcb > /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d libxcb/xcb-proto ]; then echo Updating libxcb/xcb-proto ; pushd libxcb/xcb-proto> /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d xkeyboard-config ]; then echo Updating xkeyboard-config ; pushd xkeyboard-config> /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d libX11 ]; then echo Updating libX11 ; pushd libX11 > /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d libXdmcp ]; then echo Updating libXdmcp ; pushd libXdmcp > /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d libXext ]; then echo Updating libXext ; pushd libXext > /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d libfontenc ]; then echo Updating libfontenc ; pushd libfontenc > /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d libXinerama ]; then echo Updating libXinerama ; pushd libXinerama > /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d libXau ]; then echo Updating libXau ; pushd libXau > /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d xkbcomp ]; then echo Updating xkbcomp ; pushd xkbcomp > /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d pixman ]; then echo Updating pixman ; pushd pixman > /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d xextproto ]; then echo Updating xextproto ; pushd xextproto > /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d randrproto ]; then echo Updating randrproto ; pushd randrproto > /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d glproto ]; then echo Updating glproto ; pushd glproto > /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d mkfontscale ]; then echo Updating mkfontscale ; pushd mkfontscale > /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d xwininfo ]; then echo Updating xwininfo ; pushd xwininfo > /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d libXft ]; then echo Updating libXft ; pushd libXft > /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d libXmu ]; then echo Updating libXmu ; pushd libXmu > /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d libxtrans ]; then echo Updating libxtrans ; pushd libxtrans > /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d fontconfig ]; then echo Updating fontconfig ; pushd fontconfig > /dev/null ; git pull; popd > /dev/null ; fi
-if [ -d mesa ]; then echo Updating mesa ; pushd mesa > /dev/null ; git pull; popd > /dev/null ; fi
-
-../vcxsrv.released/synchronise.py -e xserver ../vcxsrv.released/xorg-server --skip-dir=fonts.src --skip-dir=bitmaps --skip-dir=xkeyboard-config
-../vcxsrv.released/synchronise.py -e libxcb ../vcxsrv.released/libxcb
-../vcxsrv.released/synchronise.py -e xkeyboard-config ../vcxsrv.released/xorg-server/xkeyboard-config
-../vcxsrv.released/synchronise.py -e libX11 ../vcxsrv.released/libX11
-../vcxsrv.released/synchronise.py -e libXdmcp ../vcxsrv.released/libXdmcp
-../vcxsrv.released/synchronise.py -e libXext ../vcxsrv.released/libXext
-../vcxsrv.released/synchronise.py -e libfontenc ../vcxsrv.released/libfontenc
-../vcxsrv.released/synchronise.py -e libXinerama ../vcxsrv.released/libXinerama
-../vcxsrv.released/synchronise.py -e libXau ../vcxsrv.released/libXau
-../vcxsrv.released/synchronise.py -e xkbcomp ../vcxsrv.released/xkbcomp
-../vcxsrv.released/synchronise.py -e pixman ../vcxsrv.released/pixman
-../vcxsrv.released/synchronise.py xextproto ../vcxsrv.released/X11/extensions --skip-dir=specs --skip-file=COPYING --skip-file=docbook.am --skip-file=autogen.sh --skip-file=configure.ac --skip-file=Makefile.am --skip-file=README --skip-file=.gitignore
-../vcxsrv.released/synchronise.py randrproto ../vcxsrv.released/X11/extensions --skip-file=autogen.sh --skip-file=configure.ac --skip-file=COPYING --skip-file=Makefile.am --skip-file=README --skip-file=.gitignore
-../vcxsrv.released/synchronise.py -e glproto ../vcxsrv.released/gl
-../vcxsrv.released/synchronise.py -e mkfontscale ../vcxsrv.released/mkfontscale
-../vcxsrv.released/synchronise.py -e xwininfo ../vcxsrv.released/apps/xwininfo
-../vcxsrv.released/synchronise.py -e fontconfig ../vcxsrv.released/fontconfig
-../vcxsrv.released/synchronise.py -e libXft ../vcxsrv.released/libXft
-../vcxsrv.released/synchronise.py -e libXmu ../vcxsrv.released/libXmu
-../vcxsrv.released/synchronise.py -e libxtrans ../vcxsrv.released/X11/xtrans
-../vcxsrv.released/synchronise.py -e mesa ../vcxsrv.released/mesalib --skip-dir=tests --skip-dir=gtest --skip-dir=x86-64 --skip-dir=tnl_dd --skip-dir=sparc --skip-dir=tools --skip-dir=libdricore --skip-dir=x11 --skip-dir=osmesa --skip-dir=radeon --skip-dir=r200 --skip-dir=nouveau --skip-dir=intel --skip-dir=i965 --skip-dir=i915 --skip-dir=vgapi --skip-dir=shared-glapi --skip-dir=es1api --skip-dir=es2api --skip-dir=gtest --skip-dir=glx --skip-dir=builtins --skip-dir=vl --skip-dir=gallium/docs --skip-dir=gallium/drivers --skip-dir=gallium/include --skip-dir=gallium/state_trackers --skip-dir=gallium/targets --skip-dir=gallium/winsys --skip-dir=gbm --skip-dir=getopt --skip-dir=egl --skip-dir=cso_cache --skip-dir=target-helpers --skip-dir=tgsi --skip-dir=translate --skip-dir=rtasm --skip-dir=pipebuffer --skip-dir=postprocess --skip-dir=rbug --skip-dir=pipe-loader --skip-dir=os --skip-dir=indices --skip-dir=gallivm --skip-dir=draw --skip-dir=pci_ids --skip-dir=doxygen --skip-dir=OLD --skip-dir=CL --skip-dir=c99
-
-# show all latest commit hashes
-if [ -d xserver ]; then pushd xserver > /dev/null ; echo "xserver " `git log | head -n1`; popd > /dev/null ; fi
-if [ -d libxcb ]; then pushd libxcb > /dev/null ; echo "libxcb " `git log | head -n1`; popd > /dev/null ; fi
-if [ -d libxcb/xcb-proto ]; then pushd libxcb/xcb-proto> /dev/null ; echo "libxcb/xcb-proto" `git log | head -n1`; popd > /dev/null ; fi
-if [ -d xkeyboard-config ]; then pushd xkeyboard-config> /dev/null ; echo "xkeyboard-config" `git log | head -n1`; popd > /dev/null ; fi
-if [ -d libX11 ]; then pushd libX11 > /dev/null ; echo "libX11 " `git log | head -n1`; popd > /dev/null ; fi
-if [ -d libXdmcp ]; then pushd libXdmcp > /dev/null ; echo "libXdmcp " `git log | head -n1`; popd > /dev/null ; fi
-if [ -d libXext ]; then pushd libXext > /dev/null ; echo "libXext " `git log | head -n1`; popd > /dev/null ; fi
-if [ -d libfontenc ]; then pushd libfontenc > /dev/null ; echo "libfontenc " `git log | head -n1`; popd > /dev/null ; fi
-if [ -d libXinerama ]; then pushd libXinerama > /dev/null ; echo "libXinerama " `git log | head -n1`; popd > /dev/null ; fi
-if [ -d libXau ]; then pushd libXau > /dev/null ; echo "libXau " `git log | head -n1`; popd > /dev/null ; fi
-if [ -d xkbcomp ]; then pushd xkbcomp > /dev/null ; echo "xkbcomp " `git log | head -n1`; popd > /dev/null ; fi
-if [ -d pixman ]; then pushd pixman > /dev/null ; echo "pixman " `git log | head -n1`; popd > /dev/null ; fi
-if [ -d xextproto ]; then pushd xextproto > /dev/null ; echo "xextproto " `git log | head -n1`; popd > /dev/null ; fi
-if [ -d randrproto ]; then pushd randrproto > /dev/null ; echo "randrproto " `git log | head -n1`; popd > /dev/null ; fi
-if [ -d glproto ]; then pushd glproto > /dev/null ; echo "glproto " `git log | head -n1`; popd > /dev/null ; fi
-if [ -d mkfontscale ]; then pushd mkfontscale > /dev/null ; echo "mkfontscale " `git log | head -n1`; popd > /dev/null ; fi
-if [ -d xwininfo ]; then pushd xwininfo > /dev/null ; echo "xwininfo " `git log | head -n1`; popd > /dev/null ; fi
-if [ -d libXft ]; then pushd libXft > /dev/null ; echo "libXft " `git log | head -n1`; popd > /dev/null ; fi
-if [ -d libXmu ]; then pushd libXmu > /dev/null ; echo "libXmu " `git log | head -n1`; popd > /dev/null ; fi
-if [ -d libxtrans ]; then pushd libxtrans > /dev/null ; echo "libxtrans " `git log | head -n1`; popd > /dev/null ; fi
-if [ -d fontconfig ]; then pushd fontconfig > /dev/null ; echo "fontconfig " `git log | head -n1`; popd > /dev/null ; fi
-if [ -d mesa ]; then pushd mesa > /dev/null ; echo "mesa " `git log | head -n1`; popd > /dev/null ; fi
-
diff --git a/versionchanges.btm b/versionchanges.btm
new file mode 100755
index 000000000..2f1198a85
--- /dev/null
+++ b/versionchanges.btm
@@ -0,0 +1,6 @@
+e include/dix-config.h
+e xorg-server/hw/xwin/XWin.rc
+e xorg-server/installer/vcxsrv.nsi
+e xorg-server/installer/vcxsrv-debug.nsi
+e xorg-server/installer/vcxsrv-64.nsi
+e xorg-server/installer/vcxsrv-64-debug.nsi
diff --git a/xkbcomp/bison.bat b/xkbcomp/bison.bat
new file mode 100755
index 000000000..9a0e5aa07
--- /dev/null
+++ b/xkbcomp/bison.bat
@@ -0,0 +1,14 @@
+@echo off
+setlocal
+
+cd "%~dp0"
+
+set M4=..\tools\mhmake\m4.exe
+set BISON_PKGDATADIR=../tools/mhmake/src/bisondata
+
+set path=..\tools\mhmake;%path%
+
+..\tools\mhmake\bison.exe %1 %2 %3
+
+endlocal
+
diff --git a/xkbcomp/compat.c b/xkbcomp/compat.c
index 82fd4e666..3dd76581c 100644
--- a/xkbcomp/compat.c
+++ b/xkbcomp/compat.c
@@ -655,14 +655,13 @@ HandleInterpDef(InterpDef * def, XkbDescPtr xkb, unsigned merge,
if (!ResolveStateAndPredicate(def->match, &pred, &mods, info))
{
- ERROR("Couldn't determine matching modifiers\n");
+ if (warningLevel > 0)
+ WARN1("Couldn't determine matching modifiers\n");
ACTION("Symbol interpretation ignored\n");
return True;
}
if (def->ignore)
{
- ERROR("Couldn't lookup keysym\n");
- ACTION("Symbol interpretation ignored\n");
return True;
}
diff --git a/xkbcomp/expr.c b/xkbcomp/expr.c
index e0f957c15..09ffca1d8 100644
--- a/xkbcomp/expr.c
+++ b/xkbcomp/expr.c
@@ -729,7 +729,7 @@ ExprResolveString(ExprDef * expr,
val_rtrn->str = XkbAtomGetString(NULL, expr->value.str);
if (val_rtrn->str == NULL)
{
- static const char *empty = "";
+ static char *empty = "";
val_rtrn->str = empty;
}
return True;
diff --git a/xkbcomp/keycodes.c b/xkbcomp/keycodes.c
index 13579ec1a..4081ea1b5 100644
--- a/xkbcomp/keycodes.c
+++ b/xkbcomp/keycodes.c
@@ -297,6 +297,8 @@ InitKeyNamesInfo(KeyNamesInfo * info)
info->name = NULL;
info->leds = NULL;
info->aliases = NULL;
+ info->fileID=-1;
+ info->merge=0;
ClearKeyNamesInfo(info);
info->errorCount = 0;
return;
diff --git a/xkbcomp/listing.c b/xkbcomp/listing.c
index c7f5ef83b..86c1dfb8b 100644
--- a/xkbcomp/listing.c
+++ b/xkbcomp/listing.c
@@ -75,6 +75,7 @@ SOFTWARE.
#include <sys/types.h>
#include <sys/stat.h>
#include <X11/keysym.h>
+#include <X11/Xwindows.h>
#if defined(sgi)
#include <malloc.h>
@@ -123,6 +124,14 @@ SOFTWARE.
#include "tokens.h"
#include <X11/extensions/XKBgeom.h>
+#ifndef S_ISDIR
+# if defined(_S_IFMT) && defined(_S_IFDIR)
+# define S_ISDIR(a) (((a) & _S_IFMT) == _S_IFDIR)
+# else
+# define S_ISDIR(a) (((a) & S_IFMT) == S_IFDIR)
+# endif
+#endif
+
#define lowbit(x) ((x) & (-(x)))
unsigned int listingDebug;
@@ -289,6 +298,7 @@ AddDirectory(char *head, char *ptrn, char *rest, char *map)
#ifdef WIN32
if ((dirh = FindFirstFile("*.*", &file)) == INVALID_HANDLE_VALUE)
return 0;
+ nMatch = 0;
#else
if ((dirp = opendir((head ? head : "."))) == NULL)
return 0;
diff --git a/xkbcomp/makefile b/xkbcomp/makefile
new file mode 100644
index 000000000..a7d731352
--- /dev/null
+++ b/xkbcomp/makefile
@@ -0,0 +1,43 @@
+INCLUDELIBFILES = $(MHMAKECONF)\libX11\$(OBJDIR)\libX11.lib \
+ $(MHMAKECONF)\libxcb\src\$(OBJDIR)\libxcb.lib \
+ $(MHMAKECONF)\libXau\$(OBJDIR)\libXau.lib \
+ $(MHMAKECONF)\libxkbfile\src\$(OBJDIR)\libxkbfile.lib
+
+LIBDIRS=$(dir $(INCLUDELIBFILES))
+
+load_makefile $(LIBDIRS:%$(OBJDIR)\=%makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+ifeq $(DEBUG),1
+TTYAPP = xkbcomp
+else
+WINAPP = xkbcomp
+endif
+
+DEFINES += DFLT_XKB_CONFIG_ROOT="\".\"" PACKAGE_VERSION="\"1.2.3\""
+
+INCLUDES += $(OBJDIR)
+
+CSRCS = action.c \
+ alias.c \
+ compat.c \
+ expr.c \
+ geometry.c \
+ indicators.c \
+ keycodes.c \
+ keymap.c \
+ keytypes.c \
+ listing.c \
+ misc.c \
+ parseutils.c \
+ symbols.c \
+ utils.c \
+ vmod.c \
+ xkbcomp.c \
+ xkbparse.c \
+ xkbpath.c \
+ xkbscan.c
+
+LINKLIBS += $(PTHREADLIB) $(FREETYPELIB) $(OPENSSLLIB)
+
+$(OBJDIR)\xkbparse.c $(OBJDIR)\xkbparse.h: xkbparse.y
+ bison.bat -d -o$(OBJDIR)\xkbparse.c $<
diff --git a/xkbcomp/parseutils.c b/xkbcomp/parseutils.c
index a1b6e9e2f..4b2a3e605 100644
--- a/xkbcomp/parseutils.c
+++ b/xkbcomp/parseutils.c
@@ -230,7 +230,12 @@ InterpCreate(const char *sym_str, ExprDef * match)
def->common.stmtType = StmtInterpDef;
def->common.next = NULL;
if (LookupKeysym(sym_str, &def->sym) == 0)
+ {
def->ignore = True;
+ if (warningLevel > 0)
+ WARN1("Couldn't lookup keysym %s\n", sym_str);
+ ACTION("Symbol interpretation ignored\n");
+ }
else
def->ignore = False;
def->match = match;
diff --git a/xkbcomp/utils.c b/xkbcomp/utils.c
index 541c33e14..53dc99472 100644
--- a/xkbcomp/utils.c
+++ b/xkbcomp/utils.c
@@ -352,7 +352,7 @@ uStrCaseCmp(const char *str1, const char *str2)
}
int
-uStrCasePrefix(const char *my_prefix, char *str)
+uStrCasePrefix(const char *my_prefix, const char *str)
{
char c1;
char c2;
diff --git a/xkbcomp/utils.h b/xkbcomp/utils.h
index 81f5893b6..e51d1a091 100644
--- a/xkbcomp/utils.h
+++ b/xkbcomp/utils.h
@@ -141,6 +141,10 @@ uInformation(const char * /* s */ , ...
extern void uWarning(const char * /* s */ , ...
) _X_ATTRIBUTE_PRINTF(1, 2);
+#ifdef ERROR
+#undef ERROR
+#endif
+
#define ERROR6 uError
#define ERROR5 uError
#define ERROR4 uError
@@ -206,7 +210,7 @@ uInformation(const char * /* s */ , ...
const char * /* s2 */
);
extern int uStrCasePrefix(const char * /* p */ ,
- char * /* str */
+ const char * /* str */
);
#endif
#ifdef HAVE_STRDUP
diff --git a/xkbcomp/xkbcomp.c b/xkbcomp/xkbcomp.c
index 956e79c0f..7947ad417 100644
--- a/xkbcomp/xkbcomp.c
+++ b/xkbcomp/xkbcomp.c
@@ -549,8 +549,8 @@ parseArgs(int argc, char *argv[])
{
WARN1("Changing root directory to \"%s\"\n", rootDir);
}
- if ((chdir(rootDir) < 0) && (warningLevel > 0))
- {
+ XkbAddDirectoryToPath(rootDir);
+ if (!XkbAddDirectoryToPath(rootDir) && (warningLevel>0)) {
WARN1("Couldn't change directory to \"%s\"\n", rootDir);
ACTION("Root directory (-R) option ignored\n");
rootDir = NULL;
@@ -1140,10 +1140,14 @@ main(int argc, char *argv[])
break;
}
#endif
+#ifdef _MSC_VER
+ outputFileFd= open(outputFile, O_WRONLY|O_CREAT|O_EXCL|binMode,_S_IREAD | _S_IWRITE);
+#else
outputFileFd =
open(outputFile, O_WRONLY | O_CREAT | O_EXCL,
S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH
| S_IWOTH | binMode);
+#endif
if (outputFileFd < 0)
{
ERROR1
diff --git a/xkbcomp/xkbcomp.h b/xkbcomp/xkbcomp.h
index fb4006165..c224a2e06 100644
--- a/xkbcomp/xkbcomp.h
+++ b/xkbcomp/xkbcomp.h
@@ -31,6 +31,7 @@
#define DEBUG_VAR debugFlags
#endif
+#include <unistd.h>
#include <X11/Xlib.h>
#include <X11/XKBlib.h>
diff --git a/xkbcomp/xkbparse.y b/xkbcomp/xkbparse.y
index d816bee6e..87dd07f20 100644
--- a/xkbcomp/xkbparse.y
+++ b/xkbcomp/xkbparse.y
@@ -92,6 +92,10 @@
#ifdef DEBUG
#define YYDEBUG 1
#endif
+
+#define YYMALLOC malloc
+#define YYFREE free
+
#define DEBUG_VAR parseDebug
#include "parseutils.h"
#include <X11/keysym.h>
diff --git a/xkbcomp/xkbpath.c b/xkbcomp/xkbpath.c
index 6f18b860f..59f5645a5 100644
--- a/xkbcomp/xkbpath.c
+++ b/xkbcomp/xkbpath.c
@@ -30,11 +30,12 @@
#define DEBUG_VAR debugFlags
#include "utils.h"
#include <stdlib.h>
+#include <unistd.h>
#include <X11/extensions/XKM.h>
#include "xkbpath.h"
#ifndef DFLT_XKB_CONFIG_ROOT
-#define DFLT_XKB_CONFIG_ROOT "/usr/lib/X11/xkb"
+#define DFLT_XKB_CONFIG_ROOT "xkbdata"
#endif
#ifndef PATH_MAX
diff --git a/xkbcomp/xkbscan.c b/xkbcomp/xkbscan.c
index 237f52084..9a265d35b 100644
--- a/xkbcomp/xkbscan.c
+++ b/xkbcomp/xkbscan.c
@@ -32,7 +32,7 @@
#include <X11/XKBlib.h>
#include "tokens.h"
-#define DEBUG_VAR scanDebug
+
#include "utils.h"
#include "parseutils.h"
@@ -55,7 +55,7 @@ static int readBufPos = 0;
static int readBufLen = 0;
#ifdef DEBUG
-extern int debugFlags;
+extern unsigned int debugFlags;
static char *
tokText(int tok)
@@ -614,7 +614,7 @@ yyGetIdent(int first)
static int
yyGetNumber(int ch)
{
- const int nMaxBuffSize = 1024;
+ #define nMaxBuffSize 1024
int isFloat = 0;
char buf[nMaxBuffSize];
int nInBuf = 0;
diff --git a/xorg-server/.Xdefaults b/xorg-server/.Xdefaults
new file mode 100644
index 000000000..06c29211a
--- /dev/null
+++ b/xorg-server/.Xdefaults
@@ -0,0 +1 @@
+*customization:-color
diff --git a/xorg-server/.gitignore b/xorg-server/.gitignore
index 94a12fdc2..4e5c3a5bd 100644
--- a/xorg-server/.gitignore
+++ b/xorg-server/.gitignore
@@ -1,81 +1,10 @@
-#
-# X.Org module default exclusion patterns
-# The next section if for module specific patterns
-#
-# Do not edit the following section
-# GNU Build System (Autotools)
-aclocal.m4
-autom4te.cache/
-autoscan.log
-ChangeLog
-compile
-config.guess
-config.h
-config.h.in
-config.log
-config-ml.in
-config.py
-config.status
-config.status.lineno
-config.sub
-configure
-configure.scan
-depcomp
-.deps/
-INSTALL
-install-sh
-.libs/
-libtool
-libtool.m4
-ltmain.sh
-lt~obsolete.m4
-ltoptions.m4
-ltsugar.m4
-ltversion.m4
-Makefile
-Makefile.in
-mdate-sh
-missing
-mkinstalldirs
-*.pc
-py-compile
-stamp-h?
-symlink-tree
-texinfo.tex
-ylwrap
-
-# Do not edit the following section
-# Edit Compile Debug Document Distribute
-*~
-*.[0-9]
-*.[0-9]x
-*.bak
-*.bin
-core
-*.dll
-*.exe
-*-ISO*.bdf
-*-JIS*.bdf
-*-KOI8*.bdf
-*.kld
-*.ko
-*.ko.cmd
-*.lai
-*.l[oa]
-*.[oa]
-*.obj
-*.patch
-*.so
-*.pcf.gz
-*.pdb
-*.tar.bz2
-*.tar.gz
-#
-# Add & Override patterns for xserver
-#
-# Edit the following section as needed
-# For example, !report.pc overrides *.pc. See 'man gitignore'
-#
-doltcompile
-doltlibtool
-xserver.ent
+fonts
+locale
+protocol.txt
+xcalc
+xcalc-color
+xclock
+xclock-color
+xerrordb
+xkbdata
+xwin.rc \ No newline at end of file
diff --git a/xorg-server/Xext/Makefile b/xorg-server/Xext/Makefile
new file mode 100644
index 000000000..d59f345d0
--- /dev/null
+++ b/xorg-server/Xext/Makefile
@@ -0,0 +1,38 @@
+CSRCS=\
+bigreq.c \
+dpms.c \
+dpmsstubs.c \
+saver.c \
+security.c \
+shape.c \
+sleepuntil.c \
+sync.c \
+xace.c \
+xcmisc.c \
+hashtable.c \
+xres.c \
+xtest.c \
+geext.c \
+panoramiX.c \
+panoramiXprocs.c \
+xf86bigfont.c \
+panoramiXSwap.c
+
+#shm.c \
+#appgroup.c \
+#fontcache.c \
+#mbufbf.c \
+#mbufpx.c \
+#xcalibrate.c \
+#xprint.c \
+#xselinux.c \
+#xvdisp.c \
+#xvmain.c \
+#xvmc.c
+
+LIBRARY=libxext
+
+INCLUDES += ..\hw\xfree86\dixmods\extmod ..\composite ..\miext\sync
+
+
+
diff --git a/xorg-server/Xext/bigreq.c b/xorg-server/Xext/bigreq.c
index c78a1e4b4..c4508ddb5 100644
--- a/xorg-server/Xext/bigreq.c
+++ b/xorg-server/Xext/bigreq.c
@@ -53,12 +53,11 @@ ProcBigReqDispatch(ClientPtr client)
return BadRequest;
REQUEST_SIZE_MATCH(xBigReqEnableReq);
client->big_requests = TRUE;
- rep = (xBigReqEnableReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .max_request_size = maxBigRequestSize
- };
+ memset(&rep, 0, sizeof(xBigReqEnableReply));
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.max_request_size = maxBigRequestSize;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.max_request_size);
diff --git a/xorg-server/Xext/dpms.c b/xorg-server/Xext/dpms.c
index 5f1a35d9c..6a6039ad3 100644
--- a/xorg-server/Xext/dpms.c
+++ b/xorg-server/Xext/dpms.c
@@ -28,6 +28,8 @@ Equipment Corporation.
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
+#else
+#define DPMSExtension
#endif
#include <X11/X.h>
@@ -45,16 +47,15 @@ static int
ProcDPMSGetVersion(ClientPtr client)
{
/* REQUEST(xDPMSGetVersionReq); */
- xDPMSGetVersionReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .majorVersion = DPMSMajorVersion,
- .minorVersion = DPMSMinorVersion
- };
+ xDPMSGetVersionReply rep;
REQUEST_SIZE_MATCH(xDPMSGetVersionReq);
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.majorVersion = DPMSMajorVersion;
+ rep.minorVersion = DPMSMinorVersion;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swaps(&rep.majorVersion);
@@ -68,15 +69,15 @@ static int
ProcDPMSCapable(ClientPtr client)
{
/* REQUEST(xDPMSCapableReq); */
- xDPMSCapableReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .capable = DPMSCapableFlag
- };
+ xDPMSCapableReply rep;
REQUEST_SIZE_MATCH(xDPMSCapableReq);
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.capable = DPMSCapableFlag;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
}
@@ -88,17 +89,17 @@ static int
ProcDPMSGetTimeouts(ClientPtr client)
{
/* REQUEST(xDPMSGetTimeoutsReq); */
- xDPMSGetTimeoutsReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .standby = DPMSStandbyTime / MILLI_PER_SECOND,
- .suspend = DPMSSuspendTime / MILLI_PER_SECOND,
- .off = DPMSOffTime / MILLI_PER_SECOND
- };
+ xDPMSGetTimeoutsReply rep;
REQUEST_SIZE_MATCH(xDPMSGetTimeoutsReq);
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.standby = DPMSStandbyTime / MILLI_PER_SECOND;
+ rep.suspend = DPMSSuspendTime / MILLI_PER_SECOND;
+ rep.off = DPMSOffTime / MILLI_PER_SECOND;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
swaps(&rep.standby);
@@ -189,16 +190,16 @@ static int
ProcDPMSInfo(ClientPtr client)
{
/* REQUEST(xDPMSInfoReq); */
- xDPMSInfoReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .power_level = DPMSPowerLevel,
- .state = DPMSEnabled
- };
+ xDPMSInfoReply rep;
REQUEST_SIZE_MATCH(xDPMSInfoReq);
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.power_level = DPMSPowerLevel;
+ rep.state = DPMSEnabled;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
swaps(&rep.power_level);
diff --git a/xorg-server/Xext/geext.c b/xorg-server/Xext/geext.c
index 1e5ae6f82..f96b76468 100644
--- a/xorg-server/Xext/geext.c
+++ b/xorg-server/Xext/geext.c
@@ -64,16 +64,14 @@ ProcGEQueryVersion(ClientPtr client)
REQUEST_SIZE_MATCH(xGEQueryVersionReq);
- rep = (xGEQueryVersionReply) {
- .repType = X_Reply,
- .RepType = X_GEQueryVersion,
- .sequenceNumber = client->sequence,
- .length = 0,
-
- /* return the supported version by the server */
- .majorVersion = SERVER_GE_MAJOR_VERSION,
- .minorVersion = SERVER_GE_MINOR_VERSION
- };
+ rep.repType = X_Reply;
+ rep.RepType = X_GEQueryVersion;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+
+ /* return the supported version by the server */
+ rep.majorVersion = SERVER_GE_MAJOR_VERSION;
+ rep.minorVersion = SERVER_GE_MINOR_VERSION;
/* Remember version the client requested */
pGEClient->major_version = stuff->majorVersion;
diff --git a/xorg-server/Xext/hashtable.c b/xorg-server/Xext/hashtable.c
index 9d9ef8949..e362ad12f 100644
--- a/xorg-server/Xext/hashtable.c
+++ b/xorg-server/Xext/hashtable.c
@@ -72,7 +72,7 @@ void
ht_destroy(HashTable ht)
{
int c;
- BucketPtr it, tmp;
+ BucketPtr it=NULL, tmp;
int numBuckets = 1 << ht->bucketBits;
for (c = 0; c < numBuckets; ++c) {
xorg_list_for_each_entry_safe(it, tmp, &ht->buckets[c], l) {
@@ -99,7 +99,7 @@ double_size(HashTable ht)
}
for (c = 0; c < numBuckets; ++c) {
- BucketPtr it, tmp;
+ BucketPtr it=NULL, tmp;
xorg_list_for_each_entry_safe(it, tmp, &ht->buckets[c], l) {
struct xorg_list *newBucket =
&newBuckets[ht->hash(ht->cdata, it->key, newBucketBits)];
@@ -168,7 +168,7 @@ ht_remove(HashTable ht, pointer key)
{
unsigned index = ht->hash(ht->cdata, key, ht->bucketBits);
struct xorg_list *bucket = &ht->buckets[index];
- BucketPtr it;
+ BucketPtr it=NULL;
xorg_list_for_each_entry(it, bucket, l) {
if (ht->compare(ht->cdata, key, it->key) == 0) {
@@ -187,7 +187,7 @@ ht_find(HashTable ht, pointer key)
{
unsigned index = ht->hash(ht->cdata, key, ht->bucketBits);
struct xorg_list *bucket = &ht->buckets[index];
- BucketPtr it;
+ BucketPtr it=NULL;
xorg_list_for_each_entry(it, bucket, l) {
if (ht->compare(ht->cdata, key, it->key) == 0) {
@@ -204,7 +204,7 @@ ht_dump_distribution(HashTable ht)
int c;
int numBuckets = 1 << ht->bucketBits;
for (c = 0; c < numBuckets; ++c) {
- BucketPtr it;
+ BucketPtr it=NULL;
int n = 0;
xorg_list_for_each_entry(it, &ht->buckets[c], l) {
@@ -277,7 +277,7 @@ ht_dump_contents(HashTable ht,
int c;
int numBuckets = 1 << ht->bucketBits;
for (c = 0; c < numBuckets; ++c) {
- BucketPtr it;
+ BucketPtr it=NULL;
int n = 0;
printf("%d: ", c);
diff --git a/xorg-server/Xext/panoramiX.c b/xorg-server/Xext/panoramiX.c
index 2b3a5704e..be7e03100 100644
--- a/xorg-server/Xext/panoramiX.c
+++ b/xorg-server/Xext/panoramiX.c
@@ -899,15 +899,14 @@ int
ProcPanoramiXQueryVersion(ClientPtr client)
{
/* REQUEST(xPanoramiXQueryVersionReq); */
- xPanoramiXQueryVersionReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .majorVersion = SERVER_PANORAMIX_MAJOR_VERSION,
- .minorVersion = SERVER_PANORAMIX_MINOR_VERSION
- };
+ xPanoramiXQueryVersionReply rep;
REQUEST_SIZE_MATCH(xPanoramiXQueryVersionReq);
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.majorVersion = SERVER_PANORAMIX_MAJOR_VERSION;
+ rep.minorVersion = SERVER_PANORAMIX_MINOR_VERSION;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -931,13 +930,12 @@ ProcPanoramiXGetState(ClientPtr client)
if (rc != Success)
return rc;
- rep = (xPanoramiXGetStateReply) {
- .type = X_Reply,
- .state = !noPanoramiXExtension,
- .sequenceNumber = client->sequence,
- .length = 0,
- .window = stuff->window
- };
+
+ rep.type = X_Reply;
+ rep.state = !noPanoramiXExtension;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.window = stuff->window;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -961,13 +959,12 @@ ProcPanoramiXGetScreenCount(ClientPtr client)
if (rc != Success)
return rc;
- rep = (xPanoramiXGetScreenCountReply) {
- .type = X_Reply,
- .ScreenCount = PanoramiXNumScreens,
- .sequenceNumber = client->sequence,
- .length = 0,
- .window = stuff->window
- };
+
+ rep.type = X_Reply;
+ rep.ScreenCount = PanoramiXNumScreens;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.window = stuff->window;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -993,16 +990,15 @@ ProcPanoramiXGetScreenSize(ClientPtr client)
if (rc != Success)
return rc;
- rep = (xPanoramiXGetScreenSizeReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
/* screen dimensions */
- .width = screenInfo.screens[stuff->screen]->width,
- .height = screenInfo.screens[stuff->screen]->height,
- .window = stuff->window,
- .screen = stuff->screen
- };
+ rep.width = screenInfo.screens[stuff->screen]->width;
+ rep.height = screenInfo.screens[stuff->screen]->height;
+ rep.window = stuff->window;
+ rep.screen = stuff->screen;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -1023,18 +1019,17 @@ ProcXineramaIsActive(ClientPtr client)
REQUEST_SIZE_MATCH(xXineramaIsActiveReq);
- rep = (xXineramaIsActiveReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
#if 1
/* The following hack fools clients into thinking that Xinerama
* is disabled even though it is not. */
- .state = !noPanoramiXExtension && !PanoramiXExtensionDisabledHack
+ rep.state = !noPanoramiXExtension && !PanoramiXExtensionDisabledHack;
#else
- .state = !noPanoramiXExtension;
+ rep.state = !noPanoramiXExtension;
#endif
- };
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -1049,15 +1044,14 @@ ProcXineramaQueryScreens(ClientPtr client)
{
/* REQUEST(xXineramaQueryScreensReq); */
CARD32 number = (noPanoramiXExtension) ? 0 : PanoramiXNumScreens;
- xXineramaQueryScreensReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(number * sz_XineramaScreenInfo),
- .number = number
- };
+ xXineramaQueryScreensReply rep;
REQUEST_SIZE_MATCH(xXineramaQueryScreensReq);
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = bytes_to_int32(number * sz_XineramaScreenInfo);
+ rep.number = number;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
diff --git a/xorg-server/Xext/panoramiXprocs.c b/xorg-server/Xext/panoramiXprocs.c
index 576844cbf..1a855fe08 100644
--- a/xorg-server/Xext/panoramiXprocs.c
+++ b/xorg-server/Xext/panoramiXprocs.c
@@ -566,18 +566,17 @@ PanoramiXGetGeometry(ClientPtr client)
if (rc != Success)
return rc;
- rep = (xGetGeometryReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .root = screenInfo.screens[0]->root->drawable.id,
- .depth = pDraw->depth,
- .width = pDraw->width,
- .height = pDraw->height,
- .x = 0,
- .y = 0,
- .borderWidth = 0
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.root = screenInfo.screens[0]->root->drawable.id;
+ rep.depth = pDraw->depth;
+ rep.width = pDraw->width;
+ rep.height = pDraw->height;
+ rep.x = 0;
+ rep.y = 0;
+ rep.borderWidth = 0;
if (stuff->id == rep.root) {
xWindowRoot *root = (xWindowRoot *)
@@ -621,13 +620,12 @@ PanoramiXTranslateCoords(ClientPtr client)
rc = dixLookupWindow(&pDst, stuff->dstWid, client, DixReadAccess);
if (rc != Success)
return rc;
- rep = (xTranslateCoordsReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .sameScreen = xTrue,
- .child = None
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.sameScreen = xTrue;
+ rep.child = None;
if ((pWin == screenInfo.screens[0]->root) ||
(pWin->drawable.id == screenInfo.screens[0]->screensaver.wid)) {
@@ -1960,12 +1958,12 @@ PanoramiXGetImage(ClientPtr client)
return rc;
}
- xgi = (xGetImageReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .visual = wVisual(((WindowPtr) pDraw)),
- .depth = pDraw->depth
- };
+
+ xgi.type = X_Reply;
+ xgi.sequenceNumber = client->sequence;
+ xgi.visual = wVisual(((WindowPtr) pDraw));
+ xgi.depth = pDraw->depth;
+
if (format == ZPixmap) {
widthBytesLine = PixmapBytePad(w, pDraw->depth);
length = widthBytesLine * h;
diff --git a/xorg-server/Xext/saver.c b/xorg-server/Xext/saver.c
index e06f40837..e9633f4b3 100644
--- a/xorg-server/Xext/saver.c
+++ b/xorg-server/Xext/saver.c
@@ -28,6 +28,12 @@ in this Software without prior written authorization from the X Consortium.
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
+#else
+#define SCREENSAVER
+#endif
+
+#ifdef CreateWindow
+#undef CreateWindow
#endif
#include <X11/X.h>
@@ -424,15 +430,14 @@ SendScreenSaverNotify(ScreenPtr pScreen, int state, Bool forced)
kind = ScreenSaverInternal;
for (pEv = pPriv->events; pEv; pEv = pEv->next) {
if (pEv->mask & mask) {
- xScreenSaverNotifyEvent ev = {
- .type = ScreenSaverNotify + ScreenSaverEventBase,
- .state = state,
- .timestamp = currentTime.milliseconds,
- .root = pScreen->root->drawable.id,
- .window = pScreen->screensaver.wid,
- .kind = kind,
- .forced = forced
- };
+ xScreenSaverNotifyEvent ev;
+ ev.type = ScreenSaverNotify + ScreenSaverEventBase;
+ ev.state = state;
+ ev.timestamp = currentTime.milliseconds;
+ ev.root = pScreen->root->drawable.id;
+ ev.window = pScreen->screensaver.wid;
+ ev.kind = kind;
+ ev.forced = forced;
WriteEventsToClient(pEv->client, 1, (xEvent *) &ev);
}
}
@@ -636,16 +641,14 @@ ScreenSaverHandle(ScreenPtr pScreen, int xstate, Bool force)
static int
ProcScreenSaverQueryVersion(ClientPtr client)
{
- xScreenSaverQueryVersionReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .majorVersion = SERVER_SAVER_MAJOR_VERSION,
- .minorVersion = SERVER_SAVER_MINOR_VERSION
- };
+ xScreenSaverQueryVersionReply rep;
REQUEST_SIZE_MATCH(xScreenSaverQueryVersionReq);
-
+ rep.type = X_Reply;
+ rep.length = 0;
+ rep.sequenceNumber = client->sequence;
+ rep.majorVersion = SERVER_SAVER_MAJOR_VERSION;
+ rep.minorVersion = SERVER_SAVER_MINOR_VERSION;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -681,12 +684,12 @@ ProcScreenSaverQueryInfo(ClientPtr client)
UpdateCurrentTime();
lastInput = GetTimeInMillis() - LastEventTime(XIAllDevices).milliseconds;
- rep = (xScreenSaverQueryInfoReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .window = pSaver->wid
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.window = pSaver->wid;
+
if (screenIsSaved != SCREEN_SAVER_OFF) {
rep.state = ScreenSaverOn;
if (ScreenSaverTime)
diff --git a/xorg-server/Xext/security.c b/xorg-server/Xext/security.c
index 7bf6cc4b0..dce3c9fba 100644
--- a/xorg-server/Xext/security.c
+++ b/xorg-server/Xext/security.c
@@ -26,6 +26,8 @@ in this Software without prior written authorization from The Open Group.
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
+#else
+#define XACE
#endif
#include "scrnintstr.h"
@@ -194,10 +196,10 @@ SecurityDeleteAuthorization(pointer value, XID id)
while ((pEventClient = pAuth->eventClients)) {
/* send revocation event event */
- xSecurityAuthorizationRevokedEvent are = {
- .type = SecurityEventBase + XSecurityAuthorizationRevoked,
- .authId = pAuth->id
- };
+ xSecurityAuthorizationRevokedEvent are;
+ are.type = SecurityEventBase + XSecurityAuthorizationRevoked;
+ are.authId = pAuth->id;
+
WriteEventsToClient(rClient(pEventClient), 1, (xEvent *) &are);
FreeResource(pEventClient->resource, RT_NONE);
}
@@ -340,16 +342,14 @@ static int
ProcSecurityQueryVersion(ClientPtr client)
{
/* REQUEST(xSecurityQueryVersionReq); */
- xSecurityQueryVersionReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .majorVersion = SERVER_SECURITY_MAJOR_VERSION,
- .minorVersion = SERVER_SECURITY_MINOR_VERSION
- };
+ xSecurityQueryVersionReply rep;
REQUEST_SIZE_MATCH(xSecurityQueryVersionReq);
-
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.majorVersion = SERVER_SECURITY_MAJOR_VERSION;
+ rep.minorVersion = SERVER_SECURITY_MINOR_VERSION;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swaps(&rep.majorVersion);
@@ -531,13 +531,12 @@ ProcSecurityGenerateAuthorization(ClientPtr client)
/* tell client the auth id and data */
- rep = (xSecurityGenerateAuthorizationReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(authdata_len),
- .authId = authId,
- .dataLength = authdata_len
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = bytes_to_int32(authdata_len);
+ rep.authId = authId;
+ rep.dataLength = authdata_len;
if (client->swapped) {
swapl(&rep.length);
diff --git a/xorg-server/Xext/securitysrv.h b/xorg-server/Xext/securitysrv.h
index 8904242d6..3ae711d11 100644
--- a/xorg-server/Xext/securitysrv.h
+++ b/xorg-server/Xext/securitysrv.h
@@ -31,10 +31,6 @@ from The Open Group.
#define _SECURITY_SRV_H
/* Allow client side portions of <X11/extensions/security.h> to compile */
-#ifndef Status
-#define Status int
-#define NEED_UNDEF_Status
-#endif
#ifndef Display
#define Display void
#define NEED_UNDEF_Display
diff --git a/xorg-server/Xext/shape.c b/xorg-server/Xext/shape.c
index d36867cc8..dfe6fe70b 100644
--- a/xorg-server/Xext/shape.c
+++ b/xorg-server/Xext/shape.c
@@ -26,6 +26,8 @@ in this Software without prior written authorization from The Open Group.
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
+#else
+#define SHAPE
#endif
#include <stdlib.h>
@@ -204,16 +206,15 @@ CreateClipShape(WindowPtr pWin)
static int
ProcShapeQueryVersion(ClientPtr client)
{
- xShapeQueryVersionReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .majorVersion = SERVER_SHAPE_MAJOR_VERSION,
- .minorVersion = SERVER_SHAPE_MINOR_VERSION
- };
+ xShapeQueryVersionReply rep;
REQUEST_SIZE_MATCH(xShapeQueryVersionReq);
-
+ memset(&rep, 0, sizeof(xShapeQueryVersionReply));
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.majorVersion = SERVER_SHAPE_MAJOR_VERSION;
+ rep.minorVersion = SERVER_SHAPE_MINOR_VERSION;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -632,13 +633,12 @@ ProcShapeQueryExtents(ClientPtr client)
rc = dixLookupWindow(&pWin, stuff->window, client, DixGetAttrAccess);
if (rc != Success)
return rc;
- rep = (xShapeQueryExtentsReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .boundingShaped = (wBoundingShape(pWin) != 0),
- .clipShaped = (wClipShape(pWin) != 0)
- };
+ memset(&rep, 0, sizeof(xShapeQueryExtentsReply));
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.boundingShaped = (wBoundingShape(pWin) != 0);
+ rep.clipShaped = (wClipShape(pWin) != 0);
if ((region = wBoundingShape(pWin))) {
/* this is done in two steps because of a compiler bug on SunOS 4.1.3 */
pExtents = RegionExtents(region);
@@ -882,17 +882,16 @@ SendShapeNotify(WindowPtr pWin, int which)
return;
}
for (pShapeEvent = *pHead; pShapeEvent; pShapeEvent = pShapeEvent->next) {
- xShapeNotifyEvent se = {
- .type = ShapeNotify + ShapeEventBase,
- .kind = which,
- .window = pWin->drawable.id,
- .x = extents.x1,
- .y = extents.y1,
- .width = extents.x2 - extents.x1,
- .height = extents.y2 - extents.y1,
- .time = currentTime.milliseconds,
- .shaped = shaped
- };
+ xShapeNotifyEvent se;
+ se.type = ShapeNotify + ShapeEventBase;
+ se.kind = which;
+ se.window = pWin->drawable.id;
+ se.x = extents.x1;
+ se.y = extents.y1;
+ se.width = extents.x2 - extents.x1;
+ se.height = extents.y2 - extents.y1;
+ se.time = currentTime.milliseconds;
+ se.shaped = shaped;
WriteEventsToClient(pShapeEvent->client, 1, (xEvent *) &se);
}
}
@@ -923,12 +922,12 @@ ProcShapeInputSelected(ClientPtr client)
}
}
}
- rep = (xShapeInputSelectedReply) {
- .type = X_Reply,
- .enabled = enabled,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+
+ rep.type = X_Reply;
+ rep.enabled = enabled;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -1006,13 +1005,13 @@ ProcShapeGetRectangles(ClientPtr client)
rects[i].height = box->y2 - box->y1;
}
}
- rep = (xShapeGetRectanglesReply) {
- .type = X_Reply,
- .ordering = YXBanded,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(nrects * sizeof(xRectangle)),
- .nrects = nrects
- };
+
+ rep.type = X_Reply;
+ rep.ordering = YXBanded;
+ rep.sequenceNumber = client->sequence;
+ rep.length = bytes_to_int32(nrects * sizeof(xRectangle));
+ rep.nrects = nrects;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
diff --git a/xorg-server/Xext/shm.c b/xorg-server/Xext/shm.c
index d014b9194..227fe8c4f 100644
--- a/xorg-server/Xext/shm.c
+++ b/xorg-server/Xext/shm.c
@@ -33,8 +33,10 @@ in this Software without prior written authorization from The Open Group.
#endif
#include <sys/types.h>
+#if !defined(_MSC_VER)
#include <sys/ipc.h>
#include <sys/shm.h>
+#endif
#include <unistd.h>
#include <sys/stat.h>
#include <X11/X.h>
@@ -292,6 +294,8 @@ ProcShmQueryVersion(ClientPtr client)
REQUEST_SIZE_MATCH(xShmQueryVersionReq);
+#ifndef _MSC_VER
+#endif
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -341,6 +345,9 @@ shm_access(ClientPtr client, SHMPERM_TYPE * perm, int readonly)
if (uid == 0) {
return 0;
}
+ #ifdef _MSC_VER
+ __asm int 3;
+ #else
/* Check the owner */
if (SHMPERM_UID(perm) == uid || SHMPERM_CUID(perm) == uid) {
mask = S_IRUSR;
@@ -349,10 +356,14 @@ shm_access(ClientPtr client, SHMPERM_TYPE * perm, int readonly)
}
return (SHMPERM_MODE(perm) & mask) == mask ? 0 : -1;
}
+ #endif
}
if (gidset) {
/* Check the group */
+ #ifdef _MSC_VER
+ __asm int 3;
+ #else
if (SHMPERM_GID(perm) == gid || SHMPERM_CGID(perm) == gid) {
mask = S_IRGRP;
if (!readonly) {
@@ -360,14 +371,20 @@ shm_access(ClientPtr client, SHMPERM_TYPE * perm, int readonly)
}
return (SHMPERM_MODE(perm) & mask) == mask ? 0 : -1;
}
+ #endif
}
}
+ #ifdef _MSC_VER
+ __asm int 3;
+ return -1;
+ #else
/* Otherwise, check everyone else */
mask = S_IROTH;
if (!readonly) {
mask |= S_IWOTH;
}
return (SHMPERM_MODE(perm) & mask) == mask ? 0 : -1;
+ #endif
}
static int
@@ -438,6 +455,7 @@ ShmDetachSegment(pointer value, /* must conform to DeleteType */
if (--shmdesc->refcnt)
return TRUE;
+#ifndef _MSC_VER
#if SHM_FD_PASSING
if (shmdesc->is_fd) {
if (shmdesc->busfault)
@@ -446,6 +464,7 @@ ShmDetachSegment(pointer value, /* must conform to DeleteType */
} else
#endif
shmdt(shmdesc->addr);
+#endif
for (prev = &Shmsegs; *prev != shmdesc; prev = &(*prev)->next);
*prev = shmdesc->next;
free(shmdesc);
diff --git a/xorg-server/Xext/sync.c b/xorg-server/Xext/sync.c
index dd18cdebd..cd3f53e38 100644
--- a/xorg-server/Xext/sync.c
+++ b/xorg-server/Xext/sync.c
@@ -437,16 +437,9 @@ SyncSendAlarmNotifyEvents(SyncAlarm * pAlarm)
UpdateCurrentTime();
- ane = (xSyncAlarmNotifyEvent) {
- .type = SyncEventBase + XSyncAlarmNotify,
- .kind = XSyncAlarmNotify,
- .alarm = pAlarm->alarm_id,
- .alarm_value_hi = XSyncValueHigh32(pTrigger->test_value),
- .alarm_value_lo = XSyncValueLow32(pTrigger->test_value),
- .time = currentTime.milliseconds,
- .state = pAlarm->state
- };
-
+ ane.type = SyncEventBase + XSyncAlarmNotify;
+ ane.kind = XSyncAlarmNotify;
+ ane.alarm = pAlarm->alarm_id;
if (pTrigger->pSync && SYNC_COUNTER == pTrigger->pSync->type) {
ane.counter_value_hi = XSyncValueHigh32(pCounter->value);
ane.counter_value_lo = XSyncValueLow32(pCounter->value);
@@ -456,6 +449,11 @@ SyncSendAlarmNotifyEvents(SyncAlarm * pAlarm)
ane.counter_value_hi = ane.counter_value_lo = 0;
}
+ ane.alarm_value_hi = XSyncValueHigh32(pTrigger->test_value);
+ ane.alarm_value_lo = XSyncValueLow32(pTrigger->test_value);
+ ane.time = currentTime.milliseconds;
+ ane.state = pAlarm->state;
+
/* send to owner */
if (pAlarm->events)
WriteEventsToClient(pAlarm->client, 1, (xEvent *) &ane);
@@ -1206,6 +1204,10 @@ FreeAwait(void *addr, XID id)
return Success;
}
+#ifdef _MSC_VER
+#pragma warning(disable:4715) /* Not all control paths return a value */
+#endif
+
/* loosely based on dix/events.c/OtherClientGone */
static int
FreeAlarmClient(void *value, XID id)
@@ -1237,16 +1239,17 @@ FreeAlarmClient(void *value, XID id)
static int
ProcSyncInitialize(ClientPtr client)
{
- xSyncInitializeReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .majorVersion = SERVER_SYNC_MAJOR_VERSION,
- .minorVersion = SERVER_SYNC_MINOR_VERSION,
- };
+ xSyncInitializeReply rep;
REQUEST_SIZE_MATCH(xSyncInitializeReq);
+ memset(&rep, 0, sizeof(xSyncInitializeReply));
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.majorVersion = SERVER_SYNC_MAJOR_VERSION;
+ rep.minorVersion = SERVER_SYNC_MINOR_VERSION;
+ rep.length = 0;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
}
@@ -1260,17 +1263,17 @@ ProcSyncInitialize(ClientPtr client)
static int
ProcSyncListSystemCounters(ClientPtr client)
{
- xSyncListSystemCountersReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .nCounters = 0,
- };
- SysCounterInfo *psci;
+ xSyncListSystemCountersReply rep;
+ SysCounterInfo *psci=NULL;
int len = 0;
xSyncSystemCounter *list = NULL, *walklist = NULL;
REQUEST_SIZE_MATCH(xSyncListSystemCountersReq);
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.nCounters = 0;
+
xorg_list_for_each_entry(psci, &SysCounterList, entry) {
/* pad to 4 byte boundary */
len += pad_to_int32(sz_xSyncSystemCounter + strlen(psci->name));
@@ -1380,12 +1383,11 @@ ProcSyncGetPriority(ClientPtr client)
return rc;
}
- rep = (xSyncGetPriorityReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .priority = priorityclient->priority
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.priority = priorityclient->priority;
if (client->swapped) {
swaps(&rep.sequenceNumber);
@@ -1665,13 +1667,12 @@ ProcSyncQueryCounter(ClientPtr client)
&pCounter->value);
}
- rep = (xSyncQueryCounterReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .value_hi = XSyncValueHigh32(pCounter->value),
- .value_lo = XSyncValueLow32(pCounter->value)
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.value_hi = XSyncValueHigh32(pCounter->value);
+ rep.value_lo = XSyncValueLow32(pCounter->value);
if (client->swapped) {
swaps(&rep.sequenceNumber);
@@ -1827,32 +1828,31 @@ ProcSyncQueryAlarm(ClientPtr client)
return rc;
pTrigger = &pAlarm->trigger;
- rep = (xSyncQueryAlarmReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length =
- bytes_to_int32(sizeof(xSyncQueryAlarmReply) - sizeof(xGenericReply)),
- .counter = (pTrigger->pSync) ? pTrigger->pSync->id : None,
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length =
+ bytes_to_int32(sizeof(xSyncQueryAlarmReply) - sizeof(xGenericReply));
+ rep.counter = (pTrigger->pSync) ? pTrigger->pSync->id : None;
#if 0 /* XXX unclear what to do, depends on whether relative value-types
* are "consumed" immediately and are considered absolute from then
* on.
*/
- .value_type = pTrigger->value_type,
- .wait_value_hi = XSyncValueHigh32(pTrigger->wait_value),
- .wait_value_lo = XSyncValueLow32(pTrigger->wait_value),
+ rep.value_type = pTrigger->value_type;
+ rep.wait_value_hi = XSyncValueHigh32(pTrigger->wait_value);
+ rep.wait_value_lo = XSyncValueLow32(pTrigger->wait_value);
#else
- .value_type = XSyncAbsolute,
- .wait_value_hi = XSyncValueHigh32(pTrigger->test_value),
- .wait_value_lo = XSyncValueLow32(pTrigger->test_value),
+ rep.value_type = XSyncAbsolute;
+ rep.wait_value_hi = XSyncValueHigh32(pTrigger->test_value);
+ rep.wait_value_lo = XSyncValueLow32(pTrigger->test_value);
#endif
- .test_type = pTrigger->test_type,
- .delta_hi = XSyncValueHigh32(pAlarm->delta),
- .delta_lo = XSyncValueLow32(pAlarm->delta),
- .events = pAlarm->events,
- .state = pAlarm->state
- };
+ rep.test_type = pTrigger->test_type;
+ rep.delta_hi = XSyncValueHigh32(pAlarm->delta);
+ rep.delta_lo = XSyncValueLow32(pAlarm->delta);
+ rep.events = pAlarm->events;
+ rep.state = pAlarm->state;
if (client->swapped) {
swaps(&rep.sequenceNumber);
@@ -2011,13 +2011,12 @@ ProcSyncQueryFence(ClientPtr client)
if (rc != Success)
return rc;
- rep = (xSyncQueryFenceReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .triggered = pFence->funcs.CheckTriggered(pFence)
- };
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+
+ rep.triggered = pFence->funcs.CheckTriggered(pFence);
if (client->swapped) {
swaps(&rep.sequenceNumber);
diff --git a/xorg-server/Xext/xace.c b/xorg-server/Xext/xace.c
index 026d3c5cf..2bfe5ecf4 100644
--- a/xorg-server/Xext/xace.c
+++ b/xorg-server/Xext/xace.c
@@ -19,6 +19,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
+#else
+#define XACE
#endif
#include <stdarg.h>
diff --git a/xorg-server/Xext/xcmisc.c b/xorg-server/Xext/xcmisc.c
index 034bfb63b..a48f61282 100644
--- a/xorg-server/Xext/xcmisc.c
+++ b/xorg-server/Xext/xcmisc.c
@@ -45,16 +45,14 @@ from The Open Group.
static int
ProcXCMiscGetVersion(ClientPtr client)
{
- xXCMiscGetVersionReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .majorVersion = XCMiscMajorVersion,
- .minorVersion = XCMiscMinorVersion
- };
+ xXCMiscGetVersionReply rep;
REQUEST_SIZE_MATCH(xXCMiscGetVersionReq);
-
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.majorVersion = XCMiscMajorVersion;
+ rep.minorVersion = XCMiscMinorVersion;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swaps(&rep.majorVersion);
@@ -72,13 +70,12 @@ ProcXCMiscGetXIDRange(ClientPtr client)
REQUEST_SIZE_MATCH(xXCMiscGetXIDRangeReq);
GetXIDRange(client->index, FALSE, &min_id, &max_id);
- rep = (xXCMiscGetXIDRangeReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .start_id = min_id,
- .count = max_id - min_id + 1
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.start_id = min_id;
+ rep.count = max_id - min_id + 1;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.start_id);
@@ -106,12 +103,11 @@ ProcXCMiscGetXIDList(ClientPtr client)
return BadAlloc;
}
count = GetXIDList(client, stuff->count, pids);
- rep = (xXCMiscGetXIDListReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = count,
- .count = count
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = count;
+ rep.count = count;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
diff --git a/xorg-server/Xext/xf86bigfont.c b/xorg-server/Xext/xf86bigfont.c
index 46b3242d1..5877a7174 100644
--- a/xorg-server/Xext/xf86bigfont.c
+++ b/xorg-server/Xext/xf86bigfont.c
@@ -278,23 +278,28 @@ ProcXF86BigfontQueryVersion(ClientPtr client)
xXF86BigfontQueryVersionReply reply;
REQUEST_SIZE_MATCH(xXF86BigfontQueryVersionReq);
- reply = (xXF86BigfontQueryVersionReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .majorVersion = SERVER_XF86BIGFONT_MAJOR_VERSION,
- .minorVersion = SERVER_XF86BIGFONT_MINOR_VERSION,
- .uid = geteuid(),
- .gid = getegid(),
+
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = 0;
+ reply.majorVersion = SERVER_XF86BIGFONT_MAJOR_VERSION;
+ reply.minorVersion = SERVER_XF86BIGFONT_MINOR_VERSION;
+ #ifdef WIN32
+ reply.uid = 0;
+ reply.gid = 0;
+ #else
+ reply.uid = geteuid();
+ reply.gid = getegid();
+ #endif
#ifdef HAS_SHM
- .signature = signature,
- .capabilities = (client->local && !client->swapped)
+ reply.signature = signature;
+ reply.capabilities = (client->local && !client->swapped)
? XF86Bigfont_CAP_LocalShm : 0
#else
- .signature = 0,
- .capabilities = 0
+ reply.signature = 0; /* This is redundant. Avoids uninitialized memory. */
+ reply.capabilities = 0;
#endif
- };
+
if (client->swapped) {
swaps(&reply.sequenceNumber);
swapl(&reply.length);
diff --git a/xorg-server/Xext/xres.c b/xorg-server/Xext/xres.c
index 445abcab8..cac2e12ab 100644
--- a/xorg-server/Xext/xres.c
+++ b/xorg-server/Xext/xres.c
@@ -120,7 +120,7 @@ AddFragment(struct xorg_list *frags, int bytes)
static void
WriteFragmentsToClient(ClientPtr client, struct xorg_list *frags)
{
- FragmentList *it;
+ FragmentList *it=NULL;
xorg_list_for_each_entry(it, frags, l) {
WriteToClient(client, it->bytes, (char*) it + sizeof(*it));
}
@@ -133,7 +133,7 @@ WriteFragmentsToClient(ClientPtr client, struct xorg_list *frags)
static void
DestroyFragments(struct xorg_list *frags)
{
- FragmentList *it, *tmp;
+ FragmentList *it=NULL, *tmp;
xorg_list_for_each_entry_safe(it, tmp, frags, l) {
xorg_list_del(&it->l);
free(it);
@@ -194,16 +194,15 @@ static int
ProcXResQueryVersion(ClientPtr client)
{
REQUEST(xXResQueryVersionReq);
- xXResQueryVersionReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .server_major = SERVER_XRES_MAJOR_VERSION,
- .server_minor = SERVER_XRES_MINOR_VERSION
- };
+ xXResQueryVersionReply rep;
REQUEST_SIZE_MATCH(xXResQueryVersionReq);
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.server_major = SERVER_XRES_MAJOR_VERSION;
+ rep.server_minor = SERVER_XRES_MINOR_VERSION;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -234,12 +233,11 @@ ProcXResQueryClients(ClientPtr client)
}
}
- rep = (xXResQueryClientsReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(num_clients * sz_xXResClient),
- .num_clients = num_clients
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = bytes_to_int32(num_clients * sz_xXResClient);
+ rep.num_clients = num_clients;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -303,12 +301,11 @@ ProcXResQueryClientResources(ClientPtr client)
num_types++;
}
- rep = (xXResQueryClientResourcesReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(num_types * sz_xXResType),
- .num_types = num_types
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = bytes_to_int32(num_types * sz_xXResType);
+ rep.num_types = num_types;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -475,17 +472,16 @@ ProcXResQueryClientPixmapBytes(ClientPtr client)
(pointer)(&bytes));
#endif
- rep = (xXResQueryClientPixmapBytesReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .bytes = bytes,
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.bytes = bytes;
#ifdef _XSERVER64
- .bytes_overflow = bytes >> 32
+ rep.bytes_overflow = bytes >> 32;
#else
- .bytes_overflow = 0
+ rep.bytes_overflow = 0;
#endif
- };
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -670,12 +666,11 @@ ProcXResQueryClientIds (ClientPtr client)
rc = ConstructClientIds(client, stuff->numSpecs, specs, &ctx);
if (rc == Success) {
- xXResQueryClientIdsReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(ctx.resultBytes),
- .numIds = ctx.numIds
- };
+ xXResQueryClientIdsReply rep;
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = bytes_to_int32(ctx.resultBytes);
+ rep.numIds = ctx.numIds;
assert((ctx.resultBytes & 3) == 0);
@@ -827,7 +822,7 @@ AddResourceSizeValue(pointer ptr, XID id, RESTYPE type, pointer cdata)
Bool ok = TRUE;
HashTable ht;
HtGenericHashSetupRec htSetup = {
- .keySize = sizeof(void*)
+ /*.keySize = */sizeof(void*)
};
/* it doesn't matter that we don't undo the work done here
@@ -1053,12 +1048,11 @@ ProcXResQueryResourceBytes (ClientPtr client)
rc = ConstructResourceBytes(stuff->client, &ctx);
if (rc == Success) {
- xXResQueryResourceBytesReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(ctx.resultBytes),
- .numSizes = ctx.numSizes
- };
+ xXResQueryResourceBytesReply rep;
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = bytes_to_int32(ctx.resultBytes);
+ rep.numSizes = ctx.numSizes;
if (client->swapped) {
swaps (&rep.sequenceNumber);
diff --git a/xorg-server/Xext/xtest.c b/xorg-server/Xext/xtest.c
index 0a854f39a..b0b974c78 100644
--- a/xorg-server/Xext/xtest.c
+++ b/xorg-server/Xext/xtest.c
@@ -86,16 +86,14 @@ static int XTestSwapFakeInput(ClientPtr /* client */ ,
static int
ProcXTestGetVersion(ClientPtr client)
{
- xXTestGetVersionReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .majorVersion = XTestMajorVersion,
- .minorVersion = XTestMinorVersion
- };
+ xXTestGetVersionReply rep;
REQUEST_SIZE_MATCH(xXTestGetVersionReq);
-
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.majorVersion = XTestMajorVersion;
+ rep.minorVersion = XTestMinorVersion;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swaps(&rep.minorVersion);
@@ -134,12 +132,11 @@ ProcXTestCompareCursor(ClientPtr client)
return rc;
}
}
- rep = (xXTestCompareCursorReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .same = (wCursor(pWin) == pCursor)
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.same = (wCursor(pWin) == pCursor);
if (client->swapped) {
swaps(&rep.sequenceNumber);
}
diff --git a/xorg-server/Xext/xvmain.c b/xorg-server/Xext/xvmain.c
index 0c5dc9bc1..6515f7e56 100644
--- a/xorg-server/Xext/xvmain.c
+++ b/xorg-server/Xext/xvmain.c
@@ -271,7 +271,7 @@ XvScreenInit(ScreenPtr pScreen)
/* ALLOCATE SCREEN PRIVATE RECORD */
- pxvs = malloc(sizeof(XvScreenRec));
+ pxvs = calloc(1,sizeof(XvScreenRec));
if (!pxvs) {
ErrorF("XvScreenInit: Unable to allocate screen private structure\n");
return BadAlloc;
@@ -302,7 +302,7 @@ XvCloseScreen(ScreenPtr pScreen)
pScreen->DestroyWindow = pxvs->DestroyWindow;
pScreen->CloseScreen = pxvs->CloseScreen;
- (*pxvs->ddCloseScreen) (pScreen);
+ if (pxvs->ddCloseScreen) (*pxvs->ddCloseScreen) (pScreen);
free(pxvs);
diff --git a/xorg-server/Xi/chgdctl.c b/xorg-server/Xi/chgdctl.c
index d078aa248..106b9aaed 100644
--- a/xorg-server/Xi/chgdctl.c
+++ b/xorg-server/Xi/chgdctl.c
@@ -128,13 +128,12 @@ ProcXChangeDeviceControl(ClientPtr client)
goto out;
}
- rep = (xChangeDeviceControlReply) {
- .repType = X_Reply,
- .RepType = X_ChangeDeviceControl,
- .sequenceNumber = client->sequence,
- .length = 0,
- .status = Success,
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_ChangeDeviceControl;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.status = Success;
switch (stuff->control) {
case DEVICE_RESOLUTION:
@@ -220,13 +219,12 @@ ProcXChangeDeviceControl(ClientPtr client)
out:
if (ret == Success) {
- devicePresenceNotify dpn = {
- .type = DevicePresenceNotify,
- .time = currentTime.milliseconds,
- .devchange = DeviceControlChanged,
- .deviceid = dev->id,
- .control = stuff->control
- };
+ devicePresenceNotify dpn;
+ dpn.type = DevicePresenceNotify;
+ dpn.time = currentTime.milliseconds;
+ dpn.devchange = DeviceControlChanged;
+ dpn.deviceid = dev->id;
+ dpn.control = stuff->control;
SendEventToAllWindows(dev, DevicePresenceNotifyMask,
(xEvent *) &dpn, 1);
diff --git a/xorg-server/Xi/exevents.c b/xorg-server/Xi/exevents.c
index 5dc902054..d3c7fc54d 100644
--- a/xorg-server/Xi/exevents.c
+++ b/xorg-server/Xi/exevents.c
@@ -80,6 +80,8 @@ SOFTWARE.
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
+#else
+#define XINPUT
#endif
#include "inputstr.h"
@@ -1019,7 +1021,7 @@ DeliverOneTouchEvent(ClientPtr client, DeviceIntPtr dev, TouchPointInfoPtr ti,
err = EventToXI2(ev, &xi2);
if (err != Success)
FatalError("[Xi] %s: XI2 conversion failed in %s"
- " (%d)\n", dev->name, __func__, err);
+ " (%d)\n", dev->name, __FUNCTION__, err);
FixUpEventFromWindow(&ti->sprite, xi2, win, child, FALSE);
filter = GetEventFilter(dev, xi2);
@@ -1643,7 +1645,7 @@ ProcessBarrierEvent(InternalEvent *e, DeviceIntPtr dev)
rc = EventToXI2(e, &ev);
if (rc != Success) {
- ErrorF("[Xi] event conversion from %s failed with code %d\n", __func__, rc);
+ ErrorF("[Xi] event conversion from %s failed with code %d\n", __FUNCTION__, rc);
return;
}
@@ -1683,7 +1685,7 @@ ProcessDeviceEvent(InternalEvent *ev, DeviceIntPtr device)
if (IsPointerDevice(device)) {
kbd = GetMaster(device, KEYBOARD_OR_FLOAT);
mouse = device;
- if (!kbd->key) /* can happen with floating SDs */
+ if (kbd && !kbd->key) /* can happen with floating SDs */
kbd = NULL;
}
else {
@@ -1713,6 +1715,8 @@ ProcessDeviceEvent(InternalEvent *ev, DeviceIntPtr device)
case ET_KeyRelease:
case ET_ProximityIn:
case ET_ProximityOut:
+ if (!device->spriteInfo->sprite)
+ return;
GetSpritePosition(device, &rootX, &rootY);
event->root_x = rootX;
event->root_y = rootY;
@@ -2518,6 +2522,10 @@ RecalculateDeviceDeliverableEvents(WindowPtr pWin)
}
}
+#ifdef _MSC_VER
+#pragma warning(disable:4715) /* Not all control paths return a value */
+#endif
+
int
InputClientGone(WindowPtr pWin, XID id)
{
diff --git a/xorg-server/Xi/getbmap.c b/xorg-server/Xi/getbmap.c
index 49b868889..78adc6623 100644
--- a/xorg-server/Xi/getbmap.c
+++ b/xorg-server/Xi/getbmap.c
@@ -92,13 +92,12 @@ ProcXGetDeviceButtonMapping(ClientPtr client)
REQUEST(xGetDeviceButtonMappingReq);
REQUEST_SIZE_MATCH(xGetDeviceButtonMappingReq);
- rep = (xGetDeviceButtonMappingReply) {
- .repType = X_Reply,
- .RepType = X_GetDeviceButtonMapping,
- .sequenceNumber = client->sequence,
- .nElts = 0,
- .length = 0
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_GetDeviceButtonMapping;
+ rep.sequenceNumber = client->sequence;
+ rep.nElts = 0;
+ rep.length = 0;
rc = dixLookupDevice(&dev, stuff->deviceid, client, DixGetAttrAccess);
if (rc != Success)
diff --git a/xorg-server/Xi/getdctl.c b/xorg-server/Xi/getdctl.c
index 6f73e0979..39cde5174 100644
--- a/xorg-server/Xi/getdctl.c
+++ b/xorg-server/Xi/getdctl.c
@@ -182,12 +182,11 @@ ProcXGetDeviceControl(ClientPtr client)
if (rc != Success)
return rc;
- rep = (xGetDeviceControlReply) {
- .repType = X_Reply,
- .RepType = X_GetDeviceControl,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_GetDeviceControl;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
switch (stuff->control) {
case DEVICE_RESOLUTION:
diff --git a/xorg-server/Xi/getfctl.c b/xorg-server/Xi/getfctl.c
index 599b2ef97..e235e7c1f 100644
--- a/xorg-server/Xi/getfctl.c
+++ b/xorg-server/Xi/getfctl.c
@@ -295,13 +295,12 @@ ProcXGetFeedbackControl(ClientPtr client)
if (rc != Success)
return rc;
- rep = (xGetFeedbackControlReply) {
- .repType = X_Reply,
- .RepType = X_GetFeedbackControl,
- .sequenceNumber = client->sequence,
- .length = 0,
- .num_feedbacks = 0
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_GetFeedbackControl;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.num_feedbacks = 0;
for (k = dev->kbdfeed; k; k = k->next) {
rep.num_feedbacks++;
diff --git a/xorg-server/Xi/getfocus.c b/xorg-server/Xi/getfocus.c
index 40546cb84..9d6c42ccb 100644
--- a/xorg-server/Xi/getfocus.c
+++ b/xorg-server/Xi/getfocus.c
@@ -99,12 +99,11 @@ ProcXGetDeviceFocus(ClientPtr client)
if (!dev->focus)
return BadDevice;
- rep = (xGetDeviceFocusReply) {
- .repType = X_Reply,
- .RepType = X_GetDeviceFocus,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_GetDeviceFocus;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
focus = dev->focus;
diff --git a/xorg-server/Xi/getkmap.c b/xorg-server/Xi/getkmap.c
index 87c197759..2cb9b0978 100644
--- a/xorg-server/Xi/getkmap.c
+++ b/xorg-server/Xi/getkmap.c
@@ -119,13 +119,13 @@ ProcXGetDeviceKeyMapping(ClientPtr client)
if (!syms)
return BadAlloc;
- rep = (xGetDeviceKeyMappingReply) {
- .repType = X_Reply,
- .RepType = X_GetDeviceKeyMapping,
- .sequenceNumber = client->sequence,
- .keySymsPerKeyCode = syms->mapWidth,
- .length = (syms->mapWidth * stuff->count) /* KeySyms are 4 bytes */
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_GetDeviceKeyMapping;
+ rep.sequenceNumber = client->sequence;
+ rep.keySymsPerKeyCode = syms->mapWidth;
+ rep.length = (syms->mapWidth * stuff->count); /* KeySyms are 4 bytes */
+
WriteReplyToClient(client, sizeof(xGetDeviceKeyMappingReply), &rep);
client->pSwapReplyFunc = (ReplySwapPtr) CopySwap32Write;
diff --git a/xorg-server/Xi/getmmap.c b/xorg-server/Xi/getmmap.c
index f07f2bb5c..6d55caa64 100644
--- a/xorg-server/Xi/getmmap.c
+++ b/xorg-server/Xi/getmmap.c
@@ -101,14 +101,13 @@ ProcXGetDeviceModifierMapping(ClientPtr client)
if (ret != Success)
return ret;
- rep = (xGetDeviceModifierMappingReply) {
- .repType = X_Reply,
- .RepType = X_GetDeviceModifierMapping,
- .sequenceNumber = client->sequence,
- .numKeyPerModifier = max_keys_per_mod,
+
+ rep.repType = X_Reply;
+ rep.RepType = X_GetDeviceModifierMapping;
+ rep.sequenceNumber = client->sequence;
+ rep.numKeyPerModifier = max_keys_per_mod;
/* length counts 4 byte quantities - there are 8 modifiers 1 byte big */
- .length = max_keys_per_mod << 1
- };
+ rep.length = max_keys_per_mod << 1;
WriteReplyToClient(client, sizeof(xGetDeviceModifierMappingReply), &rep);
WriteToClient(client, max_keys_per_mod * 8, modkeymap);
diff --git a/xorg-server/Xi/getprop.c b/xorg-server/Xi/getprop.c
index 4d6ce6338..92ae57a1e 100644
--- a/xorg-server/Xi/getprop.c
+++ b/xorg-server/Xi/getprop.c
@@ -101,13 +101,12 @@ ProcXGetDeviceDontPropagateList(ClientPtr client)
REQUEST(xGetDeviceDontPropagateListReq);
REQUEST_SIZE_MATCH(xGetDeviceDontPropagateListReq);
- rep = (xGetDeviceDontPropagateListReply) {
- .repType = X_Reply,
- .RepType = X_GetDeviceDontPropagateList,
- .sequenceNumber = client->sequence,
- .length = 0,
- .count = 0
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_GetDeviceDontPropagateList;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.count = 0;
rc = dixLookupWindow(&pWin, stuff->window, client, DixGetAttrAccess);
if (rc != Success)
diff --git a/xorg-server/Xi/getselev.c b/xorg-server/Xi/getselev.c
index 60a46c2d1..cc8bffb13 100644
--- a/xorg-server/Xi/getselev.c
+++ b/xorg-server/Xi/getselev.c
@@ -102,14 +102,13 @@ ProcXGetSelectedExtensionEvents(ClientPtr client)
REQUEST(xGetSelectedExtensionEventsReq);
REQUEST_SIZE_MATCH(xGetSelectedExtensionEventsReq);
- rep = (xGetSelectedExtensionEventsReply) {
- .repType = X_Reply,
- .RepType = X_GetSelectedExtensionEvents,
- .sequenceNumber = client->sequence,
- .length = 0,
- .this_client_count = 0,
- .all_clients_count = 0
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_GetSelectedExtensionEvents;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.this_client_count = 0;
+ rep.all_clients_count = 0;
rc = dixLookupWindow(&pWin, stuff->window, client, DixGetAttrAccess);
if (rc != Success)
diff --git a/xorg-server/Xi/getvers.c b/xorg-server/Xi/getvers.c
index 829e69535..5a1880d9c 100644
--- a/xorg-server/Xi/getvers.c
+++ b/xorg-server/Xi/getvers.c
@@ -98,15 +98,14 @@ ProcXGetExtensionVersion(ClientPtr client)
stuff->nbytes))
return BadLength;
- rep = (xGetExtensionVersionReply) {
- .repType = X_Reply,
- .RepType = X_GetExtensionVersion,
- .sequenceNumber = client->sequence,
- .length = 0,
- .major_version = XIVersion.major_version,
- .minor_version = XIVersion.minor_version,
- .present = TRUE
- };
+ memset(&rep, 0, sizeof(xGetExtensionVersionReply));
+ rep.repType = X_Reply;
+ rep.RepType = X_GetExtensionVersion;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.major_version = XIVersion.major_version;
+ rep.minor_version = XIVersion.minor_version;
+ rep.present = TRUE;
WriteReplyToClient(client, sizeof(xGetExtensionVersionReply), &rep);
diff --git a/xorg-server/Xi/grabdev.c b/xorg-server/Xi/grabdev.c
index 9c6c429ed..0cc7d5c70 100644
--- a/xorg-server/Xi/grabdev.c
+++ b/xorg-server/Xi/grabdev.c
@@ -113,12 +113,11 @@ ProcXGrabDevice(ClientPtr client)
bytes_to_int32(sizeof(xGrabDeviceReq)) + stuff->event_count)
return BadLength;
- rep = (xGrabDeviceReply) {
- .repType = X_Reply,
- .RepType = X_GrabDevice,
- .sequenceNumber = client->sequence,
- .length = 0,
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_GrabDevice;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
rc = dixLookupDevice(&dev, stuff->deviceid, client, DixGrabAccess);
if (rc != Success)
diff --git a/xorg-server/Xi/grabdevb.c b/xorg-server/Xi/grabdevb.c
index 8b4ae698e..0f0e975a0 100644
--- a/xorg-server/Xi/grabdevb.c
+++ b/xorg-server/Xi/grabdevb.c
@@ -137,14 +137,13 @@ ProcXGrabDeviceButton(ClientPtr client)
X_GrabDeviceButton)) != Success)
return ret;
- param = (GrabParameters) {
- .grabtype = XI,
- .ownerEvents = stuff->ownerEvents,
- .this_device_mode = stuff->this_device_mode,
- .other_devices_mode = stuff->other_devices_mode,
- .grabWindow = stuff->grabWindow,
- .modifiers = stuff->modifiers
- };
+ memset(&param, 0, sizeof(param));
+ param.grabtype = XI;
+ param.ownerEvents = stuff->ownerEvents;
+ param.this_device_mode = stuff->this_device_mode;
+ param.other_devices_mode = stuff->other_devices_mode;
+ param.grabWindow = stuff->grabWindow;
+ param.modifiers = stuff->modifiers;
mask.xi = tmp[stuff->grabbed_device].mask;
ret = GrabButton(client, dev, mdev, stuff->button, &param, XI, &mask);
diff --git a/xorg-server/Xi/grabdevk.c b/xorg-server/Xi/grabdevk.c
index 8694f9e6d..b75518211 100644
--- a/xorg-server/Xi/grabdevk.c
+++ b/xorg-server/Xi/grabdevk.c
@@ -135,14 +135,13 @@ ProcXGrabDeviceKey(ClientPtr client)
X_GrabDeviceKey)) != Success)
return ret;
- param = (GrabParameters) {
- .grabtype = XI,
- .ownerEvents = stuff->ownerEvents,
- .this_device_mode = stuff->this_device_mode,
- .other_devices_mode = stuff->other_devices_mode,
- .grabWindow = stuff->grabWindow,
- .modifiers = stuff->modifiers
- };
+ memset(&param, 0, sizeof(param));
+ param.grabtype = XI;
+ param.ownerEvents = stuff->ownerEvents;
+ param.this_device_mode = stuff->this_device_mode;
+ param.other_devices_mode = stuff->other_devices_mode;
+ param.grabWindow = stuff->grabWindow;
+ param.modifiers = stuff->modifiers;
mask.xi = tmp[stuff->grabbed_device].mask;
ret = GrabKey(client, dev, mdev, stuff->key, &param, XI, &mask);
diff --git a/xorg-server/Xi/gtmotion.c b/xorg-server/Xi/gtmotion.c
index cde5351a6..1d39b2d1b 100644
--- a/xorg-server/Xi/gtmotion.c
+++ b/xorg-server/Xi/gtmotion.c
@@ -110,15 +110,15 @@ ProcXGetDeviceMotionEvents(ClientPtr client)
if (dev->valuator->motionHintWindow)
MaybeStopDeviceHint(dev, client);
axes = v->numAxes;
- rep = (xGetDeviceMotionEventsReply) {
- .repType = X_Reply,
- .RepType = X_GetDeviceMotionEvents,
- .sequenceNumber = client->sequence,
- .length = 0,
- .nEvents = 0,
- .axes = axes,
- .mode = Absolute /* XXX we don't do relative at the moment */
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_GetDeviceMotionEvents;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.nEvents = 0;
+ rep.axes = axes;
+ rep.mode = Absolute; /* XXX we don't do relative at the moment */
+
start = ClientTimeToServerTime(stuff->start);
stop = ClientTimeToServerTime(stuff->stop);
if (CompareTimeStamps(start, stop) == LATER ||
diff --git a/xorg-server/Xi/listdev.c b/xorg-server/Xi/listdev.c
index 014c61db0..bccfe35d1 100644
--- a/xorg-server/Xi/listdev.c
+++ b/xorg-server/Xi/listdev.c
@@ -342,12 +342,11 @@ ProcXListInputDevices(ClientPtr client)
REQUEST_SIZE_MATCH(xListInputDevicesReq);
- rep = (xListInputDevicesReply) {
- .repType = X_Reply,
- .RepType = X_ListInputDevices,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+ memset(&rep, 0, sizeof(xListInputDevicesReply));
+ rep.repType = X_Reply;
+ rep.RepType = X_ListInputDevices;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
/* allocate space for saving skip value */
skip = calloc(sizeof(Bool), inputInfo.numDevices);
diff --git a/xorg-server/Xi/makefile b/xorg-server/Xi/makefile
new file mode 100644
index 000000000..0c395d20e
--- /dev/null
+++ b/xorg-server/Xi/makefile
@@ -0,0 +1,56 @@
+CSRCS=allowev.c \
+ chgdctl.c \
+ chgfctl.c \
+ chgkbd.c \
+ chgkmap.c \
+ chgprop.c \
+ chgptr.c \
+ closedev.c \
+ devbell.c \
+ exevents.c \
+ extinit.c \
+ getbmap.c \
+ getdctl.c \
+ getfctl.c \
+ getfocus.c \
+ getkmap.c \
+ getmmap.c \
+ getprop.c \
+ getselev.c \
+ getvers.c \
+ grabdev.c \
+ grabdevb.c \
+ grabdevk.c \
+ gtmotion.c \
+ listdev.c \
+ opendev.c \
+ queryst.c \
+ selectev.c \
+ sendexev.c \
+ setbmap.c \
+ setdval.c \
+ setfocus.c \
+ setmmap.c \
+ setmode.c \
+ ungrdev.c \
+ ungrdevb.c \
+ ungrdevk.c \
+ xiallowev.c \
+ xibarriers.c \
+ xichangecursor.c \
+ xichangehierarchy.c \
+ xigetclientpointer.c \
+ xigrabdev.c \
+ xipassivegrab.c \
+ xiproperty.c \
+ xiquerydevice.c \
+ xiquerypointer.c \
+ xiqueryversion.c \
+ xiselectev.c \
+ xisetclientpointer.c \
+ xisetdevfocus.c \
+ xiwarppointer.c \
+ stubs.c
+
+LIBRARY=libXi
+
diff --git a/xorg-server/Xi/opendev.c b/xorg-server/Xi/opendev.c
index 6708bade1..f3cb9a463 100644
--- a/xorg-server/Xi/opendev.c
+++ b/xorg-server/Xi/opendev.c
@@ -114,9 +114,6 @@ ProcXOpenDevice(ClientPtr client)
if (IsMaster(dev))
return BadDevice;
- if (status != Success)
- return status;
-
if (dev->key != NULL) {
evbase[j].class = KeyClass;
evbase[j++].event_type_base = event_base[KeyClass];
@@ -144,13 +141,12 @@ ProcXOpenDevice(ClientPtr client)
}
evbase[j].class = OtherClass;
evbase[j++].event_type_base = event_base[OtherClass];
- rep = (xOpenDeviceReply) {
- .repType = X_Reply,
- .RepType = X_OpenDevice,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(j * sizeof(xInputClassInfo)),
- .num_classes = j
- };
+ memset(&rep, 0, sizeof(xOpenDeviceReply));
+ rep.repType = X_Reply;
+ rep.RepType = X_OpenDevice;
+ rep.sequenceNumber = client->sequence;
+ rep.length = bytes_to_int32(j * sizeof(xInputClassInfo));
+ rep.num_classes = j;
WriteReplyToClient(client, sizeof(xOpenDeviceReply), &rep);
WriteToClient(client, j * sizeof(xInputClassInfo), evbase);
return Success;
diff --git a/xorg-server/Xi/queryst.c b/xorg-server/Xi/queryst.c
index 04a652be3..6b1f015c2 100644
--- a/xorg-server/Xi/queryst.c
+++ b/xorg-server/Xi/queryst.c
@@ -158,13 +158,13 @@ ProcXQueryDeviceState(ClientPtr client)
}
}
- rep = (xQueryDeviceStateReply) {
- .repType = X_Reply,
- .RepType = X_QueryDeviceState,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(total_length),
- .num_classes = num_classes
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_QueryDeviceState;
+ rep.sequenceNumber = client->sequence;
+ rep.length = bytes_to_int32(total_length);
+ rep.num_classes = num_classes;
+
WriteReplyToClient(client, sizeof(xQueryDeviceStateReply), &rep);
if (total_length > 0)
WriteToClient(client, total_length, savbuf);
diff --git a/xorg-server/Xi/setbmap.c b/xorg-server/Xi/setbmap.c
index 94796558d..4f0f4ab9d 100644
--- a/xorg-server/Xi/setbmap.c
+++ b/xorg-server/Xi/setbmap.c
@@ -100,13 +100,12 @@ ProcXSetDeviceButtonMapping(ClientPtr client)
if (ret != Success)
return ret;
- rep = (xSetDeviceButtonMappingReply) {
- .repType = X_Reply,
- .RepType = X_SetDeviceButtonMapping,
- .sequenceNumber = client->sequence,
- .length = 0,
- .status = MappingSuccess
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_SetDeviceButtonMapping;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.status = MappingSuccess;
ret =
ApplyPointerMapping(dev, (CARD8 *) &stuff[1], stuff->map_length,
diff --git a/xorg-server/Xi/setdval.c b/xorg-server/Xi/setdval.c
index 463e4f38c..1e2e59772 100644
--- a/xorg-server/Xi/setdval.c
+++ b/xorg-server/Xi/setdval.c
@@ -92,13 +92,12 @@ ProcXSetDeviceValuators(ClientPtr client)
REQUEST(xSetDeviceValuatorsReq);
REQUEST_AT_LEAST_SIZE(xSetDeviceValuatorsReq);
- rep = (xSetDeviceValuatorsReply) {
- .repType = X_Reply,
- .RepType = X_SetDeviceValuators,
- .sequenceNumber = client->sequence,
- .length = 0,
- .status = Success
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_SetDeviceValuators;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.status = Success;
if (stuff->length != bytes_to_int32(sizeof(xSetDeviceValuatorsReq)) +
stuff->num_valuators)
diff --git a/xorg-server/Xi/setmmap.c b/xorg-server/Xi/setmmap.c
index 1320cfec7..0e6027f54 100644
--- a/xorg-server/Xi/setmmap.c
+++ b/xorg-server/Xi/setmmap.c
@@ -98,12 +98,11 @@ ProcXSetDeviceModifierMapping(ClientPtr client)
(stuff->numKeyPerModifier << 1))
return BadLength;
- rep = (xSetDeviceModifierMappingReply) {
- .repType = X_Reply,
- .RepType = X_SetDeviceModifierMapping,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_SetDeviceModifierMapping;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
ret = dixLookupDevice(&dev, stuff->deviceid, client, DixManageAccess);
if (ret != Success)
diff --git a/xorg-server/Xi/setmode.c b/xorg-server/Xi/setmode.c
index 5ed09136e..a57cc7b08 100644
--- a/xorg-server/Xi/setmode.c
+++ b/xorg-server/Xi/setmode.c
@@ -92,12 +92,11 @@ ProcXSetDeviceMode(ClientPtr client)
REQUEST(xSetDeviceModeReq);
REQUEST_SIZE_MATCH(xSetDeviceModeReq);
- rep = (xSetDeviceModeReply) {
- .repType = X_Reply,
- .RepType = X_SetDeviceMode,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_SetDeviceMode;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
rc = dixLookupDevice(&dev, stuff->deviceid, client, DixSetAttrAccess);
if (rc != Success)
diff --git a/xorg-server/Xi/xibarriers.c b/xorg-server/Xi/xibarriers.c
index 6732ce9dc..a83457b10 100644
--- a/xorg-server/Xi/xibarriers.c
+++ b/xorg-server/Xi/xibarriers.c
@@ -398,19 +398,18 @@ input_constrain_cursor(DeviceIntPtr dev, ScreenPtr screen,
struct PointerBarrier *nearest = NULL;
PointerBarrierClientPtr c;
Time ms = GetTimeInMillis();
- BarrierEvent ev = {
- .header = ET_Internal,
- .type = 0,
- .length = sizeof (BarrierEvent),
- .time = ms,
- .deviceid = dev->id,
- .sourceid = dev->id,
- .dx = dest_x - current_x,
- .dy = dest_y - current_y,
- .root = screen->root->drawable.id,
- };
InternalEvent *barrier_events = events;
DeviceIntPtr master;
+ BarrierEvent ev;
+ ev.header = ET_Internal;
+ ev.type = 0;
+ ev.length = sizeof (BarrierEvent);
+ ev.time = ms;
+ ev.deviceid = dev->id;
+ ev.sourceid = dev->id;
+ ev.dx = dest_x - current_x;
+ ev.dy = dest_y - current_y;
+ ev.root = screen->root->drawable.id;
if (nevents)
*nevents = 0;
@@ -651,24 +650,24 @@ BarrierFreeBarrier(void *data, XID id)
for (dev = inputInfo.devices; dev; dev = dev->next) {
struct PointerBarrierDevice *pbd;
int root_x, root_y;
- BarrierEvent ev = {
- .header = ET_Internal,
- .type = ET_BarrierLeave,
- .length = sizeof (BarrierEvent),
- .time = ms,
- /* .deviceid */
- .sourceid = 0,
- .barrierid = c->id,
- .window = c->window,
- .root = screen->root->drawable.id,
- .dx = 0,
- .dy = 0,
- /* .root_x */
- /* .root_y */
- /* .dt */
- /* .event_id */
- .flags = XIBarrierPointerReleased,
- };
+ BarrierEvent ev;
+ ev.header = ET_Internal;
+ ev.type = ET_BarrierLeave;
+ ev.length = sizeof (BarrierEvent);
+ ev.time = ms;
+ /* .deviceid */
+ ev.sourceid = 0;
+ ev.barrierid = c->id;
+ ev.window = c->window;
+ ev.root = screen->root->drawable.id;
+ ev.dx = 0;
+ ev.dy = 0;
+ /* .root_x */
+ /* .root_y */
+ /* .dt */
+ /* .event_id */
+ ev.flags = XIBarrierPointerReleased;
+
if (dev->type != MASTER_POINTER)
@@ -732,22 +731,22 @@ static void remove_master_func(pointer res, XID id, pointer devid)
pbd = GetBarrierDevice(barrier, *deviceid);
if (pbd->hit) {
- BarrierEvent ev = {
- .header = ET_Internal,
- .type =ET_BarrierLeave,
- .length = sizeof (BarrierEvent),
- .time = ms,
- .deviceid = *deviceid,
- .sourceid = 0,
- .dx = 0,
- .dy = 0,
- .root = barrier->screen->root->drawable.id,
- .window = barrier->window,
- .dt = ms - pbd->last_timestamp,
- .flags = XIBarrierPointerReleased,
- .event_id = pbd->barrier_event_id,
- .barrierid = barrier->id,
- };
+ BarrierEvent ev;
+ ev.header = ET_Internal;
+ ev.type =ET_BarrierLeave;
+ ev.length = sizeof (BarrierEvent);
+ ev.time = ms;
+ ev.deviceid = *deviceid;
+ ev.sourceid = 0;
+ ev.dx = 0;
+ ev.dy = 0;
+ ev.root = barrier->screen->root->drawable.id;
+ ev.window = barrier->window;
+ ev.dt = ms - pbd->last_timestamp;
+ ev.flags = XIBarrierPointerReleased;
+ ev.event_id = pbd->barrier_event_id;
+ ev.barrierid = barrier->id;
+
mieqEnqueue(dev, (InternalEvent *) &ev);
}
diff --git a/xorg-server/Xi/xigetclientpointer.c b/xorg-server/Xi/xigetclientpointer.c
index 3c90d588d..6ab2867f7 100644
--- a/xorg-server/Xi/xigetclientpointer.c
+++ b/xorg-server/Xi/xigetclientpointer.c
@@ -75,14 +75,13 @@ ProcXIGetClientPointer(ClientPtr client)
else
winclient = client;
- rep = (xXIGetClientPointerReply) {
- .repType = X_Reply,
- .RepType = X_XIGetClientPointer,
- .sequenceNumber = client->sequence,
- .length = 0,
- .set = (winclient->clientPtr != NULL),
- .deviceid = (winclient->clientPtr) ? winclient->clientPtr->id : 0
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_XIGetClientPointer;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.set = (winclient->clientPtr != NULL);
+ rep.deviceid = (winclient->clientPtr) ? winclient->clientPtr->id : 0;
WriteReplyToClient(client, sizeof(xXIGetClientPointerReply), &rep);
return Success;
diff --git a/xorg-server/Xi/xigrabdev.c b/xorg-server/Xi/xigrabdev.c
index 63d95bc1c..086e275d8 100644
--- a/xorg-server/Xi/xigrabdev.c
+++ b/xorg-server/Xi/xigrabdev.c
@@ -115,13 +115,12 @@ ProcXIGrabDevice(ClientPtr client)
if (ret != Success)
return ret;
- rep = (xXIGrabDeviceReply) {
- .repType = X_Reply,
- .RepType = X_XIGrabDevice,
- .sequenceNumber = client->sequence,
- .length = 0,
- .status = status
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_XIGrabDevice;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.status = status;
WriteReplyToClient(client, sizeof(rep), &rep);
return ret;
diff --git a/xorg-server/Xi/xipassivegrab.c b/xorg-server/Xi/xipassivegrab.c
index eccec0ab8..28c502f69 100644
--- a/xorg-server/Xi/xipassivegrab.c
+++ b/xorg-server/Xi/xipassivegrab.c
@@ -76,13 +76,7 @@ int
ProcXIPassiveGrabDevice(ClientPtr client)
{
DeviceIntPtr dev, mod_dev;
- xXIPassiveGrabDeviceReply rep = {
- .repType = X_Reply,
- .RepType = X_XIPassiveGrabDevice,
- .sequenceNumber = client->sequence,
- .length = 0,
- .num_modifiers = 0
- };
+ xXIPassiveGrabDeviceReply rep;
int i, ret = Success;
uint32_t *modifiers;
xXIGrabModifierInfo *modifiers_failed;
@@ -94,6 +88,12 @@ ProcXIPassiveGrabDevice(ClientPtr client)
REQUEST(xXIPassiveGrabDeviceReq);
REQUEST_AT_LEAST_SIZE(xXIPassiveGrabDeviceReq);
+ rep.repType = X_Reply;
+ rep.RepType = X_XIPassiveGrabDevice;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.num_modifiers = 0;
+
if (stuff->deviceid == XIAllDevices)
dev = inputInfo.all_devices;
else if (stuff->deviceid == XIAllMasterDevices)
diff --git a/xorg-server/Xi/xiproperty.c b/xorg-server/Xi/xiproperty.c
index 796ba0948..ba5d99912 100644
--- a/xorg-server/Xi/xiproperty.c
+++ b/xorg-server/Xi/xiproperty.c
@@ -185,23 +185,23 @@ static void
send_property_event(DeviceIntPtr dev, Atom property, int what)
{
int state = (what == XIPropertyDeleted) ? PropertyDelete : PropertyNewValue;
- devicePropertyNotify event = {
- .type = DevicePropertyNotify,
- .deviceid = dev->id,
- .state = state,
- .atom = property,
- .time = currentTime.milliseconds
- };
- xXIPropertyEvent xi2 = {
- .type = GenericEvent,
- .extension = IReqCode,
- .length = 0,
- .evtype = XI_PropertyEvent,
- .deviceid = dev->id,
- .time = currentTime.milliseconds,
- .property = property,
- .what = what
- };
+ xXIPropertyEvent xi2; devicePropertyNotify event;
+ event.type = DevicePropertyNotify;
+ event.deviceid = dev->id;
+ event.state = state;
+ event.atom = property;
+ event.time = currentTime.milliseconds;
+
+
+ xi2.type = GenericEvent;
+ xi2.extension = IReqCode;
+ xi2.length = 0;
+ xi2.evtype = XI_PropertyEvent;
+ xi2.deviceid = dev->id;
+ xi2.time = currentTime.milliseconds;
+ xi2.property = property;
+ xi2.what = what;
+
SendEventToAllWindows(dev, DevicePropertyNotifyMask, (xEvent *) &event, 1);
@@ -865,13 +865,12 @@ ProcXListDeviceProperties(ClientPtr client)
if (rc != Success)
return rc;
- rep = (xListDevicePropertiesReply) {
- .repType = X_Reply,
- .RepType = X_ListDeviceProperties,
- .sequenceNumber = client->sequence,
- .length = natoms,
- .nAtoms = natoms
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_ListDeviceProperties;
+ rep.sequenceNumber = client->sequence;
+ rep.length = natoms;
+ rep.nAtoms = natoms;
WriteReplyToClient(client, sizeof(xListDevicePropertiesReply), &rep);
if (natoms) {
@@ -961,17 +960,16 @@ ProcXGetDeviceProperty(ClientPtr client)
if (rc != Success)
return rc;
- reply = (xGetDevicePropertyReply) {
- .repType = X_Reply,
- .RepType = X_GetDeviceProperty,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(length),
- .propertyType = type,
- .bytesAfter = bytes_after,
- .nItems = nitems,
- .format = format,
- .deviceid = dev->id
- };
+
+ reply.repType = X_Reply;
+ reply.RepType = X_GetDeviceProperty;
+ reply.sequenceNumber = client->sequence;
+ reply.length = bytes_to_int32(length);
+ reply.propertyType = type;
+ reply.bytesAfter = bytes_after;
+ reply.nItems = nitems;
+ reply.format = format;
+ reply.deviceid = dev->id;
if (stuff->delete && (reply.bytesAfter == 0))
send_property_event(dev, stuff->property, XIPropertyDeleted);
@@ -1105,13 +1103,12 @@ ProcXIListProperties(ClientPtr client)
if (rc != Success)
return rc;
- rep = (xXIListPropertiesReply) {
- .repType = X_Reply,
- .RepType = X_XIListProperties,
- .sequenceNumber = client->sequence,
- .length = natoms,
- .num_properties = natoms
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_XIListProperties;
+ rep.sequenceNumber = client->sequence;
+ rep.length = natoms;
+ rep.num_properties = natoms;
WriteReplyToClient(client, sizeof(xXIListPropertiesReply), &rep);
if (natoms) {
@@ -1201,16 +1198,15 @@ ProcXIGetProperty(ClientPtr client)
if (rc != Success)
return rc;
- reply = (xXIGetPropertyReply) {
- .repType = X_Reply,
- .RepType = X_XIGetProperty,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(length),
- .type = type,
- .bytes_after = bytes_after,
- .num_items = nitems,
- .format = format
- };
+
+ reply.repType = X_Reply;
+ reply.RepType = X_XIGetProperty;
+ reply.sequenceNumber = client->sequence;
+ reply.length = bytes_to_int32(length);
+ reply.type = type;
+ reply.bytes_after = bytes_after;
+ reply.num_items = nitems;
+ reply.format = format;
if (length && stuff->delete && (reply.bytes_after == 0))
send_property_event(dev, stuff->property, XIPropertyDeleted);
diff --git a/xorg-server/Xi/xiquerydevice.c b/xorg-server/Xi/xiquerydevice.c
index 4e544f0f5..1d1090046 100644
--- a/xorg-server/Xi/xiquerydevice.c
+++ b/xorg-server/Xi/xiquerydevice.c
@@ -107,13 +107,12 @@ ProcXIQueryDevice(ClientPtr client)
return BadAlloc;
}
- rep = (xXIQueryDeviceReply) {
- .repType = X_Reply,
- .RepType = X_XIQueryDevice,
- .sequenceNumber = client->sequence,
- .length = len / 4,
- .num_devices = 0
- };
+ memset(&rep, 0, sizeof(xXIQueryDeviceReply));
+ rep.repType = X_Reply;
+ rep.RepType = X_XIQueryDevice;
+ rep.sequenceNumber = client->sequence;
+ rep.length = len / 4;
+ rep.num_devices = 0;
ptr = info;
if (dev) {
diff --git a/xorg-server/Xi/xiquerypointer.c b/xorg-server/Xi/xiquerypointer.c
index e9bdd428d..a87326181 100644
--- a/xorg-server/Xi/xiquerypointer.c
+++ b/xorg-server/Xi/xiquerypointer.c
@@ -122,16 +122,15 @@ ProcXIQueryPointer(ClientPtr client)
pSprite = pDev->spriteInfo->sprite;
- rep = (xXIQueryPointerReply) {
- .repType = X_Reply,
- .RepType = X_XIQueryPointer,
- .sequenceNumber = client->sequence,
- .length = 6,
- .root = (GetCurrentRootWindow(pDev))->drawable.id,
- .root_x = double_to_fp1616(pSprite->hot.x),
- .root_y = double_to_fp1616(pSprite->hot.y),
- .child = None
- };
+ memset(&rep, 0, sizeof(rep));
+ rep.repType = X_Reply;
+ rep.RepType = X_XIQueryPointer;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 6;
+ rep.root = (GetCurrentRootWindow(pDev))->drawable.id;
+ rep.root_x = double_to_fp1616(pSprite->hot.x);
+ rep.root_y = double_to_fp1616(pSprite->hot.y);
+ rep.child = None;
if (kbd) {
state = &kbd->key->xkbInfo->state;
diff --git a/xorg-server/Xi/xiqueryversion.c b/xorg-server/Xi/xiqueryversion.c
index c705f788f..cb23415a1 100644
--- a/xorg-server/Xi/xiqueryversion.c
+++ b/xorg-server/Xi/xiqueryversion.c
@@ -114,14 +114,13 @@ ProcXIQueryVersion(ClientPtr client)
pXIClient->minor_version = minor;
}
- rep = (xXIQueryVersionReply) {
- .repType = X_Reply,
- .RepType = X_XIQueryVersion,
- .sequenceNumber = client->sequence,
- .length = 0,
- .major_version = major,
- .minor_version = minor
- };
+ memset(&rep, 0, sizeof(xXIQueryVersionReply));
+ rep.repType = X_Reply;
+ rep.RepType = X_XIQueryVersion;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.major_version = major;
+ rep.minor_version = minor;
WriteReplyToClient(client, sizeof(xXIQueryVersionReply), &rep);
diff --git a/xorg-server/Xi/xiselectev.c b/xorg-server/Xi/xiselectev.c
index 45a996e4c..8592747f6 100644
--- a/xorg-server/Xi/xiselectev.c
+++ b/xorg-server/Xi/xiselectev.c
@@ -297,13 +297,12 @@ ProcXIGetSelectedEvents(ClientPtr client)
if (rc != Success)
return rc;
- reply = (xXIGetSelectedEventsReply) {
- .repType = X_Reply,
- .RepType = X_XIGetSelectedEvents,
- .sequenceNumber = client->sequence,
- .length = 0,
- .num_masks = 0
- };
+
+ reply.repType = X_Reply;
+ reply.RepType = X_XIGetSelectedEvents;
+ reply.sequenceNumber = client->sequence;
+ reply.length = 0;
+ reply.num_masks = 0;
masks = wOtherInputMasks(win);
if (masks) {
diff --git a/xorg-server/Xi/xisetdevfocus.c b/xorg-server/Xi/xisetdevfocus.c
index 372ec248a..aec822c6b 100644
--- a/xorg-server/Xi/xisetdevfocus.c
+++ b/xorg-server/Xi/xisetdevfocus.c
@@ -97,12 +97,11 @@ ProcXIGetFocus(ClientPtr client)
if (!dev->focus)
return BadDevice;
- rep = (xXIGetFocusReply) {
- .repType = X_Reply,
- .RepType = X_XIGetFocus,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+
+ rep.repType = X_Reply;
+ rep.RepType = X_XIGetFocus;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
if (dev->focus->win == NoneWin)
rep.focus = None;
diff --git a/xorg-server/XtErrorDB b/xorg-server/XtErrorDB
new file mode 100644
index 000000000..312862419
--- /dev/null
+++ b/xorg-server/XtErrorDB
@@ -0,0 +1,236 @@
+#****************************************************************************
+#* *
+#* COPYRIGHT (c) 1988 BY *
+#* DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. *
+#* ALL RIGHTS RESERVED *
+#* *
+#* THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED *
+#* ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE *
+#* INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER *
+#* COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY *
+#* OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY *
+#* TRANSFERRED. *
+#* *
+#* THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE *
+#* AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT *
+#* CORPORATION. *
+#* *
+#* DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS *
+#* SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. *
+#* *
+#****************************************************************************
+#*++
+#* FACILITY:
+#*
+#* < to be supplied >
+#*
+#* ABSTRACT:
+#*
+#* < to be supplied >
+#*
+#* ENVIRONMENT:
+#*
+#* < to be supplied >
+#*
+#* MODIFICATION HISTORY:
+#*
+#* < to be supplied >
+#*
+#*--
+#
+# toolkit error and warning messages - used in XtGetErrorDatabaseText
+#
+# toolkit error messages:
+#
+# CALLING SEQUENCE:
+#
+# DWTERROR(key, message)
+# XtError (key, "dwtlibError", "DwtlibError", message, NULL, NULL)
+#
+# XtError(name,type,class,defaultp,params,num_params)
+# (*errorHandler)(name,type,class,defaultp,params,num_params);
+#
+# _XtDefaultError (name,type,class,defaultp,params,num_params)
+# XtGetErrorDatabaseText(name,type,class,defaultp, buffer, 1000);
+#
+# XtGetErrorDatabaseText(name,type,class,defaultp, buffer, nbytes)
+# (void) sprintf(temp, "%s.%s", name, type);
+# (void) XrmGetResource(errorDB, temp, class, &type_str, &result);
+#
+attacheddbCircularDependency.dwtlibError: Circular dependency in Attached Dialog Box children
+ClipBoardBadDataType.dwtlibError: bad data type
+ClipBoardCorrupt.dwtlibError: internal error - corrupt data structure
+CvtStringToFontList.dwtlibError: String to FontList conversion needs character_set and screen
+fao_main.dwtlibError: DDIS CS functions have returned an undefined status
+HelpShellOneChild.dwtlibError: Helpshell widget only supports one child
+HiddenShellOneChild.dwtlibError: Hiddenshell widget only supports one child
+#
+# INTRINSIC ROUTINE ERROR MESSAGES
+#
+# CALLING SEQUENCE:
+#
+# XtError(name,type,class,defaultp,params,num_params)
+# (*errorHandler)(name,type,class,defaultp,params,num_params);
+#
+# _XtDefaultError (name,type,class,defaultp,params,num_params)
+# XtGetErrorDatabaseText(name,type,class,defaultp, buffer, 1000);
+#
+# XtGetErrorDatabaseText(name,type,class,defaultp, buffer, nbytes)
+# (void) sprintf(temp, "%s.%s", name, type);
+# (void) XrmGetResource(errorDB, temp, class, &type_str, &result);
+#
+allocError.malloc: Cannot perform malloc
+allocError.realloc: Cannot perform realloc
+allocError.calloc: Cannot perform calloc
+wrongParameters.cvtIntOrPixelToXColor: Pixel to color conversion needs screen and colormap arguments
+wrongParameters.cvtStringToPixel: String to pixel conversion needs screen and colormap arguments
+wrongParameters.cvtStringToCursor: String to cursor conversion needs screen argument
+wrongParamters.cvtStringToFont: String to font conversion needs screen argument
+wrongParameters.cvtStringToFontStruct: String to cursor conversion needs screen argument
+invalidParent.xtCreateWidget: XtCreateWidget requires non-NULL parent
+invalidClass.xtCreateWidget: XtCreateWidget requires non-NULL widget class
+nullProc.insertChild: NULL insert_child procedure
+invalidParameter.removePopupFromParent: RemovePopupFromParent requires non-NULL popuplist
+invalidParent.xtCreatePopupShell: XtCreatePopupShell requires non-NULL parent
+invalidClass.xtCreatePopupShell: XtCreatePopupShell requires non-NULL widget class
+invalidClass.xtCreateApplicationShell: XtCreateApplicationShell requires non-NULL widget class
+invalidParent.xtMakeGeometryRequest: XtMakeGeometryRequest - NULL parent. Use SetValues instead
+invalidParent.xtMakeGeometryRequest: XtMakeGeometryRequest - parent not composite
+invalidGeometryManager.xtMakeGeometryRequest: XtMakeGeometryRequest - parent has no geometry manger
+invalidDisplay.xtInitialize: Can't Open display
+invalidProcedure.realizeProc: No realize class procedure defined
+invalidProcedure.inheritanceProc: Unresolved inheritance operation
+communicationError.select: Select failed
+invalidParameter.xtAddInput: invalid condition passed to XtAddInput
+communicationError.notSelect: Error in notSelect
+communicationError.notSelect: Error in notSelect
+invalidClass.xtPopup: XtPopup requires a subclass of shellWidgetClass
+invalidClass.xtPopdown: XtPopdown requires a subclass of shellWidgetClass
+invalidArgCount.xtGetValues: Argument count > 0 on NULL argument list in XtGetValues
+invalidClass.constraintSetValue: Subclass of Constraint required in CallConstraintSetValues
+invalidArgCount.xtSetValues: Argument count > 0 on NULL argument list in XtSetValues
+noSelectionProperties.freeSelectionProperty: internal error: no selection property context for display
+invalidWindow.eventHandler: Event with wrong window
+invalidParameter.numberChildren: The root and popup shells widget only support one child
+invalidParameter.numberChildren: The root and popup shells widget only support one child
+missingEvent.shell: Events are disappearing from under Shell
+internalError.shell: Shell's window manager interaction is broken
+translationError.mergingTablesWithCycles: Trying to merge translation tables with cycles, and can't resolve this cycle
+invalidParameters.xtmenuPopup: XtMenuPopup called with num_params != 2
+invalidParameters.xtMenuPopup: Bad first parameter to _XtMenuPopup
+invalidPopup.xtMenuPopup: Can't find popup in _XtMenuPopup
+invalidParameters.xtMenuPopupAction: MenuPopup wants exactly one argument
+allocError.malloc: Cannot perform malloc
+allocError.realloc: Cannot perform realloc
+allocError.calloc: Cannot perform calloc
+#
+#
+# toolkit warning messages:
+#
+# CALLING SEQUENCE:
+#
+# DWTWARNING(key, message)
+# XtWarning (key, "dwtlibWarning", "DwtlibWarning", message, NULL, NULL)
+#
+# XtWarning(name,type,class,defaultp,params,num_params)
+# (*warningHandler)(name,type,class,defaultp,params,num_params);
+#
+# _XtDefaultWarning (name,type,class,defaultp,params,num_params)
+# XtGetErrorDatabaseText(name,type,class,defaultp, buffer, 1000);
+#
+# XtGetErrorDatabaseText(name,type,class,defaultp, buffer, nbytes)
+# (void) sprintf(temp, "%s.%s", name, type);
+# (void) XrmGetResource(errorDB, temp, class, &type_str, &result);
+#
+CSCharSetIdOutOfRange.dwtlibWarning: get_charset: Character set ID is out of range
+DialogPopupParent.dwtlibWarning: Parent of DwtModal/Modeless Dialog widget must be Shell
+STextCantFindPosition.dwtlibWarning: Can't find position in MovePreviousLine???
+MenuUnrealizedParent.dwtlibWarning: Can not create a popup menu with unrealized parent
+PulldownNoSubMenu.dwtlibWarning: Can not create a pulldown without a submenu.
+PulldownBadParent.dwtlibWarning: Pulldown widgets must have menuclass parents!
+PulldownBadParent.dwtlibWarning: Pulldown widgets must have menuclass parents!
+PushButton.dwtlibWarning: Accelerator translation table overflow
+ToggleButton.dwtlibWarning: Accelerator translation table overflow
+#
+# DRMSignalError.string: ", "DRMGeneralError",
+# msg, NULL, 0) ;
+#
+# intrinsic routines warning messages
+#
+# CALLING SEQUENCE:
+#
+# XtWarning(name,type,class,defaultp,params,num_params)
+# (*warningHandler)(name,type,class,defaultp,params,num_params);
+#
+# _XtDefaultWarning (name,type,class,defaultp,params,num_params)
+# XtGetErrorDatabaseText(name,type,class,defaultp, buffer, 1000);
+#
+# XtGetErrorDatabaseText(name,type,class,defaultp, buffer, nbytes)
+# (void) sprintf(temp, "%s.%s", name, type);
+# (void) XrmGetResource(errorDB, temp, class, &type_str, &result);
+#
+invalidCallbackList.xtAddCallback: Cannot find callback list in XtAddCallbacks
+invalidCallbackList.xtAddCallback: Cannot find callback list in XtAddCallbacks
+invalidCallbackList.xtRemoveCallback: Cannot find callback list in XtRemoveCallbacks
+invalidCallbackList.xtRemoveCallback: Cannot find callback list in XtRemoveCallbacks
+invalidCallbackList.xtRemoveAllCallback: Cannot find callback list in XtRemoveAllCallbacks
+invalidCallbackList.xtCallCallback: Cannot find callback list in XtCallCallbacks
+invalidCallbackList.xtOverrideCallback: Cannot find callback list in XtOverrideCallbacks
+invalidResourceName.computeArgs: Cannot find resource name %s as argument to conversion
+typeConversionError.noConverter: No type converter registered for '%s' to '%s' conversion
+conversionError.string: Cannot convert string \"%s\" to type %s
+wrongParameters.cvtIntToBoolean: Integer to Boolean conversion needs no extra arguments
+wrongParamters.cvtStringToBoolean: String to Boolean conversion needs no extra arguments
+wrongParamters.cvtIntToLongBoolean: Integer to LongBoolean conversion needs no extra arguments
+wrongParameters.cvtStringToLongBoolean: String to LongBoolean conversion needs no extra arguments
+noColormap.cvtStringToPixel: Cannot allocate colormap entry for \"%s\"
+wrongParameters.cvtStringToDisplay: String to Display conversion needs no extra arguments
+wrongParameters.cvtStringToFile: String to File conversion needs no extra arguments
+wrongParameters.cvtIntToFont: Integer to Font conversion needs no extra arguments
+wrongParameters.cvtStringToInt: String to Integer conversion needs no extra arguments
+wrongParameters.cvtStringToShort: String to Integer conversion needs no extra arguments
+wrongParameters.cvtStringToUnsignedChar: String to Integer conversion needs no extra arguments
+wrongParameters.cvtXColorToPixel: Color to Pixel conversion needs no extra arguments
+wrongParameters.cvtIntToPixel: Integer to Pixel conversion needs no extra arguments
+wrongParameters.cvtIntToPixmap: Integer to Pixmap conversion needs no extra arguments
+invalidDepth.setValues: Can't change widget depth
+versionMismatch.widget: Widget class %s version mismatch:\n widget %d vs. intrinsics %d
+invalidWidget.removePopupFromParent: RemovePopupFromParent,widget not on parent list
+invalidProcedure.deleteChild: null delete_child procedure in XtDestroy
+registerWindowError.xtRegisterWindow: Attempt to change already registered window
+registerWindowError.xtUnregisterWindow: Attempt to unregister invalid window
+grabError.grabDestroyCallback: XtAddGrab requires exclusive grab if spring_loaded is TRUE
+grabError.xtRemoveGrab: XtRemoveGrab asked to remove a widget not on the grab list
+invalidShell.xtTranslateCoords: Widget has no shell ancestor
+invalidChild.xtUnmanageChildren: Null child passed to XtUnmanageChildren
+invalidChild.xtUnmanageChildren: Null child passed to XtUnmanageChildren
+ambigiousParent.xtUnmanageChildren: Not all children have same parent in XtUnmanageChildren
+invalidChild.xtManageChildren: null child passed to XtManageChildren
+invalidChild.xtManageChildren: null child passed to XtManageChildren
+ambigiousParent.xtManageChildren: Not all children have same parent in XtManageChildren
+unimplementedFunction.xtAddInput: XtAddInput is not implemented
+invalidProcedure.inputHandler: XtRemoveInput: Input handler not found
+unimplementedFunction.xtRemoveInput: XtRemoveInput is not implemented
+invalidParent.xtCopyFromParent: CopyFromParent must have non-NULL parent
+invalidArgCount.getResources: argument count > 0 on NULL argument list
+invalidResourceCount.getResources: resource count > 0 on NULL resource list
+invalidGeometry.xtMakeGeometryRequest: Shell subclass did not take care of geometry in XtSetValues
+invalidProcedure.set_values_almost: set_values_almost procedure shouldn't be NULL
+initializationError.xtInitialize: Initializing Resource Lists twice
+communicationError.windowManager: Window Manager is confused
+translationParseError.parseError: translation table syntax error: %s
+translationParseError.parseEvent: Events follow '+' repeat count
+translationParseError.parseEvent: Events follow '+' repeat count
+translationParseError.parseString: Missing \
+invalidParameters.compileAccelerators: String to TranslationTable needs no extra arguments
+invalidParameters.compileTranslations: String to TranslationTable needs no extra arguments
+translationError.xtTranslateInitialize: Intializing Translation manager twice
+#
+# ReportUnboundActions - warnings include state table - should split?
+#
+translationError.unboundActions: Actions not found
+translationError.ambigiousActions: Overriding earlier translation manager actions
+translationError.mergingNullTable: Old translation table was null, cannot modify
+invalidParameters.mergeTranslations: MergeTM to TranslationTable needs no extra arguments
+invalidPopup.unsupportedOperation: Pop-up menu creation is only supported on ButtonPress or EnterNotify events
+invalidPopup.unsupportedOperation: Pop-up menu creation is only supported on ButtonPress or EnterNotify events
diff --git a/xorg-server/composite/compalloc.c b/xorg-server/composite/compalloc.c
index b7d731e33..baf59c5d9 100644
--- a/xorg-server/composite/compalloc.c
+++ b/xorg-server/composite/compalloc.c
@@ -169,7 +169,7 @@ compRedirectWindow(ClientPtr pClient, WindowPtr pWin, int update)
* Now make sure there's a per-window structure to hang this from
*/
if (!cw) {
- cw = malloc(sizeof(CompWindowRec));
+ cw = calloc(1,sizeof(CompWindowRec));
if (!cw) {
free(ccw);
return BadAlloc;
diff --git a/xorg-server/composite/compext.c b/xorg-server/composite/compext.c
index e4821c5fc..2ca3db334 100644
--- a/xorg-server/composite/compext.c
+++ b/xorg-server/composite/compext.c
@@ -108,15 +108,14 @@ static int
ProcCompositeQueryVersion(ClientPtr client)
{
CompositeClientPtr pCompositeClient = GetCompositeClient(client);
- xCompositeQueryVersionReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+ xCompositeQueryVersionReply rep;
REQUEST(xCompositeQueryVersionReq);
REQUEST_SIZE_MATCH(xCompositeQueryVersionReq);
+ rep.type = X_Reply;
+ rep.length = 0;
+ rep.sequenceNumber = client->sequence;
if (stuff->majorVersion < SERVER_COMPOSITE_MAJOR_VERSION) {
rep.majorVersion = stuff->majorVersion;
rep.minorVersion = stuff->minorVersion;
@@ -313,12 +312,10 @@ ProcCompositeGetOverlayWindow(ClientPtr client)
return rc;
}
- rep = (xCompositeGetOverlayWindowReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .overlayWin = cs->pOverlayWin->drawable.id
- };
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.overlayWin = cs->pOverlayWin->drawable.id;
if (client->swapped) {
swaps(&rep.sequenceNumber);
@@ -851,12 +848,10 @@ PanoramiXCompositeGetOverlayWindow(ClientPtr client)
cs = GetCompScreen(screenInfo.screens[0]);
- rep = (xCompositeGetOverlayWindowReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .overlayWin = cs->pOverlayWin->drawable.id
- };
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.overlayWin = cs->pOverlayWin->drawable.id;
if (client->swapped) {
swaps(&rep.sequenceNumber);
diff --git a/xorg-server/composite/compoverlay.c b/xorg-server/composite/compoverlay.c
index d3cfaf06f..3eafc2031 100644
--- a/xorg-server/composite/compoverlay.c
+++ b/xorg-server/composite/compoverlay.c
@@ -45,6 +45,10 @@
#include <dix-config.h>
#endif
+#ifdef CreateWindow
+#undef CreateWindow
+#endif
+
#include "compint.h"
#include "xace.h"
diff --git a/xorg-server/composite/makefile b/xorg-server/composite/makefile
new file mode 100644
index 000000000..1ab95ebba
--- /dev/null
+++ b/xorg-server/composite/makefile
@@ -0,0 +1,9 @@
+
+LIBRARY=libcomposite
+
+CSRCS = \
+ compalloc.c \
+ compext.c \
+ compinit.c \
+ compoverlay.c \
+ compwindow.c
diff --git a/xorg-server/config/makefile b/xorg-server/config/makefile
new file mode 100644
index 000000000..937785271
--- /dev/null
+++ b/xorg-server/config/makefile
@@ -0,0 +1,4 @@
+CSRCS=config.c
+
+LIBRARY=libconfig
+
diff --git a/xorg-server/damageext/damageext.c b/xorg-server/damageext/damageext.c
index 9521c2676..481f778bb 100644
--- a/xorg-server/damageext/damageext.c
+++ b/xorg-server/damageext/damageext.c
@@ -46,17 +46,15 @@ DamageExtNotify(DamageExtPtr pDamageExt, BoxPtr pBoxes, int nBoxes)
int i;
UpdateCurrentTimeIf();
- ev = (xDamageNotifyEvent) {
- .type = DamageEventBase + XDamageNotify,
- .level = pDamageExt->level,
- .drawable = pDamageExt->drawable,
- .damage = pDamageExt->id,
- .timestamp = currentTime.milliseconds,
- .geometry.x = pDrawable->x,
- .geometry.y = pDrawable->y,
- .geometry.width = pDrawable->width,
- .geometry.height = pDrawable->height
- };
+ ev.type = DamageEventBase + XDamageNotify;
+ ev.level = pDamageExt->level;
+ ev.drawable = pDamageExt->drawable;
+ ev.damage = pDamageExt->id;
+ ev.timestamp = currentTime.milliseconds;
+ ev.geometry.x = pDrawable->x;
+ ev.geometry.y = pDrawable->y;
+ ev.geometry.width = pDrawable->width;
+ ev.geometry.height = pDrawable->height;
if (pBoxes) {
for (i = 0; i < nBoxes; i++) {
ev.level = pDamageExt->level;
@@ -128,16 +126,14 @@ static int
ProcDamageQueryVersion(ClientPtr client)
{
DamageClientPtr pDamageClient = GetDamageClient(client);
- xDamageQueryVersionReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+ xDamageQueryVersionReply rep;
REQUEST(xDamageQueryVersionReq);
REQUEST_SIZE_MATCH(xDamageQueryVersionReq);
-
+ rep.type = X_Reply;
+ rep.length = 0;
+ rep.sequenceNumber = client->sequence;
if (stuff->majorVersion < SERVER_DAMAGE_MAJOR_VERSION) {
rep.majorVersion = stuff->majorVersion;
rep.minorVersion = stuff->minorVersion;
diff --git a/xorg-server/damageext/makefile b/xorg-server/damageext/makefile
new file mode 100644
index 000000000..c8481cd3c
--- /dev/null
+++ b/xorg-server/damageext/makefile
@@ -0,0 +1,4 @@
+CSRCS=damageext.c
+
+LIBRARY=libdamageext
+
diff --git a/xorg-server/dbe/dbe.c b/xorg-server/dbe/dbe.c
index 5524615e2..e8fccdc69 100644
--- a/xorg-server/dbe/dbe.c
+++ b/xorg-server/dbe/dbe.c
@@ -116,16 +116,16 @@ static int
ProcDbeGetVersion(ClientPtr client)
{
/* REQUEST(xDbeGetVersionReq); */
- xDbeGetVersionReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .majorVersion = DBE_MAJOR_VERSION,
- .minorVersion = DBE_MINOR_VERSION
- };
+ xDbeGetVersionReply rep;
REQUEST_SIZE_MATCH(xDbeGetVersionReq);
+ rep.type = X_Reply;
+ rep.length = 0;
+ rep.sequenceNumber = client->sequence;
+ rep.majorVersion = DBE_MAJOR_VERSION;
+ rep.minorVersion = DBE_MINOR_VERSION;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
}
@@ -626,12 +626,10 @@ ProcDbeGetVisualInfo(ClientPtr client)
length += pScrVisInfo[i].count * sizeof(xDbeVisInfo);
}
- rep = (xDbeGetVisualInfoReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(length),
- .m = count
- };
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = bytes_to_int32(length);
+ rep.m = count;
if (client->swapped) {
swaps(&rep.sequenceNumber);
@@ -716,11 +714,7 @@ static int
ProcDbeGetBackBufferAttributes(ClientPtr client)
{
REQUEST(xDbeGetBackBufferAttributesReq);
- xDbeGetBackBufferAttributesReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+ xDbeGetBackBufferAttributesReply rep;
DbeWindowPrivPtr pDbeWindowPriv;
int rc;
@@ -736,6 +730,10 @@ ProcDbeGetBackBufferAttributes(ClientPtr client)
rep.attributes = None;
}
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
diff --git a/xorg-server/dbe/makefile b/xorg-server/dbe/makefile
new file mode 100644
index 000000000..70fb81430
--- /dev/null
+++ b/xorg-server/dbe/makefile
@@ -0,0 +1,4 @@
+CSRCS=dbe.c midbe.c
+
+LIBRARY=libdbe
+
diff --git a/xorg-server/dix/Xserver-dtrace.h b/xorg-server/dix/Xserver-dtrace.h
new file mode 100644
index 000000000..52daf677e
--- /dev/null
+++ b/xorg-server/dix/Xserver-dtrace.h
@@ -0,0 +1,72 @@
+/* Copyright (c) 2006, Oracle and/or its affiliates. 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
+ * 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:
+ *
+ * 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 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.
+ */
+
+/*
+ * Generated by dtrace(1M), and then modified for backwards compatibility
+ * with older versions of dtrace. Used if dtrace -h fails.
+ * (Since _ENABLED support was added after dtrace -h, this assumes if
+ * dtrace -h fails, _ENABLED will too.)
+ */
+
+#ifndef _XSERVER_DTRACE_H
+#define _XSERVER_DTRACE_H
+
+#include <unistd.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define XSERVER_CLIENT_AUTH(arg0, arg1, arg2, arg3) \
+ winDebug4("XSERVER_CLIENT_AUTH: %d %s %d %d\n",arg0, arg1, arg2, arg3)
+#define XSERVER_CLIENT_CONNECT(arg0, arg1) \
+ winDebug4("XSERVER_CLIENT_CONNECT: %d %d\n",arg0, arg1)
+#define XSERVER_CLIENT_DISCONNECT(arg0) \
+ winDebug4("XSERVER_CLIENT_DISCONNECT: %d %d\n",arg0)
+#define XSERVER_REQUEST_DONE(arg0, arg1, arg2, arg3, arg4) \
+ winDebug4("XSERVER_REQUEST_DONE: %s %d %d %d %d\n",arg0, arg1, arg2, arg3, arg4)
+#define XSERVER_REQUEST_START(arg0, arg1, arg2, arg3, arg4) \
+ winDebug4("XSERVER_REQUEST_START: %s %d %d %d ->%p\n",arg0, arg1, arg2, arg3, arg4)
+#define XSERVER_RESOURCE_ALLOC(arg0, arg1, arg2, arg3) \
+ winDebug4("XSERVER_RESOURCE_ALLOC: 0x%x 0x%x ->%p %s\n",arg0, arg1, arg2, arg3)
+#define XSERVER_RESOURCE_FREE(arg0, arg1, arg2, arg3) \
+ winDebug4("XSERVER_RESOURCE_FREE: 0x%x 0x%x ->%p %s\n",arg0, arg1, arg2, arg3)
+#define XSERVER_SEND_EVENT(arg0, arg1, arg2) \
+ winDebug4("XSERVER_SEND_EVENT: 0x%x 0x%x ->%p\n",arg0, arg1, arg2)
+#define XSERVER_INPUT_EVENT(arg0, arg1, arg2, arg3, arg4, arg5, arg6) \
+ winDebug4("XSERVER_SEND_EVENT: %x %x %x %x %x %x %x\n", arg0, arg1, arg2, arg3, arg4, arg5, arg6)
+
+#define XSERVER_CLIENT_AUTH_ENABLED() (1)
+#define XSERVER_CLIENT_CONNECT_ENABLED() (1)
+#define XSERVER_CLIENT_DISCONNECT_ENABLED() (1)
+#define XSERVER_REQUEST_DONE_ENABLED() (1)
+#define XSERVER_REQUEST_START_ENABLED() (1)
+#define XSERVER_RESOURCE_ALLOC_ENABLED() (1)
+#define XSERVER_RESOURCE_FREE_ENABLED() (1)
+#define XSERVER_SEND_EVENT_ENABLED() (1)
+#define XSERVER_INPUT_EVENT_ENABLED() (1)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _XSERVER_DTRACE_H */
diff --git a/xorg-server/dix/colormap.c b/xorg-server/dix/colormap.c
index 39fddc9b1..9feb3e159 100644
--- a/xorg-server/dix/colormap.c
+++ b/xorg-server/dix/colormap.c
@@ -64,6 +64,10 @@ SOFTWARE.
#include "privates.h"
#include "xace.h"
+#ifdef _MSC_VER
+#define UpdateColors thisUpdateColors
+#endif
+
static Pixel FindBestPixel(EntryPtr /*pentFirst */ ,
int /*size */ ,
xrgb * /*prgb */ ,
@@ -452,12 +456,12 @@ TellNoMap(WindowPtr pwin, Colormap * pmid)
{
if (wColormap(pwin) == *pmid) {
/* This should be call to DeliverEvent */
- xEvent xE = {
- .u.colormap.window = pwin->drawable.id,
- .u.colormap.colormap = None,
- .u.colormap.new = TRUE,
- .u.colormap.state = ColormapUninstalled
- };
+ xEvent xE;
+ xE.u.colormap.window = pwin->drawable.id;
+ xE.u.colormap.colormap = None;
+ xE.u.colormap.new = TRUE;
+ xE.u.colormap.state = ColormapUninstalled;
+
xE.u.u.type = ColormapNotify;
#ifdef PANORAMIX
if (noPanoramiXExtension || !pwin->drawable.pScreen->myNum)
@@ -484,12 +488,12 @@ TellLostMap(WindowPtr pwin, pointer value)
#endif
if (wColormap(pwin) == *pmid) {
/* This should be call to DeliverEvent */
- xEvent xE = {
- .u.colormap.window = pwin->drawable.id,
- .u.colormap.colormap = *pmid,
- .u.colormap.new = FALSE,
- .u.colormap.state = ColormapUninstalled
- };
+ xEvent xE;
+ xE.u.colormap.window = pwin->drawable.id;
+ xE.u.colormap.colormap = *pmid;
+ xE.u.colormap.new = FALSE;
+ xE.u.colormap.state = ColormapUninstalled;
+
xE.u.u.type = ColormapNotify;
DeliverEvents(pwin, &xE, 1, (WindowPtr) NULL);
}
@@ -509,12 +513,12 @@ TellGainedMap(WindowPtr pwin, pointer value)
#endif
if (wColormap(pwin) == *pmid) {
/* This should be call to DeliverEvent */
- xEvent xE = {
- .u.colormap.window = pwin->drawable.id,
- .u.colormap.colormap = *pmid,
- .u.colormap.new = FALSE,
- .u.colormap.state = ColormapInstalled
- };
+ xEvent xE;
+ xE.u.colormap.window = pwin->drawable.id;
+ xE.u.colormap.colormap = *pmid;
+ xE.u.colormap.new = FALSE;
+ xE.u.colormap.state = ColormapInstalled;
+
xE.u.u.type = ColormapNotify;
DeliverEvents(pwin, &xE, 1, (WindowPtr) NULL);
}
diff --git a/xorg-server/dix/devices.c b/xorg-server/dix/devices.c
index a680ed8d7..1f5193c1b 100644
--- a/xorg-server/dix/devices.c
+++ b/xorg-server/dix/devices.c
@@ -332,14 +332,15 @@ AddInputDevice(ClientPtr client, DeviceProc deviceProc, Bool autoStart)
void
SendDevicePresenceEvent(int deviceid, int type)
{
- DeviceIntRec dummyDev = { .id = XIAllDevices };
- devicePresenceNotify ev = {
- .type = DevicePresenceNotify,
- .time = currentTime.milliseconds,
- .devchange = type,
- .deviceid = deviceid
- };
-
+ DeviceIntRec dummyDev;
+ devicePresenceNotify ev;
+
+ memset(&dummyDev, 0, sizeof(DeviceIntRec));
+ ev.type = DevicePresenceNotify;
+ ev.time = currentTime.milliseconds;
+ ev.devchange = type;
+ ev.deviceid = deviceid;
+ dummyDev.id = XIAllDevices;
SendEventToAllWindows(&dummyDev, DevicePresenceNotifyMask,
(xEvent *) &ev, 1);
}
@@ -1037,6 +1038,10 @@ CloseDownDevices(void)
for (dev = inputInfo.devices; dev; dev = dev->next) {
if (!IsMaster(dev) && !IsFloating(dev))
dev->master = NULL;
+ /* Initialise the sprite and paired members of all devices
+ to avoid crashes in CloseDevice later */
+ dev->spriteInfo->sprite=NULL;
+ dev->spriteInfo->paired=NULL;
}
CloseDeviceList(&inputInfo.devices);
@@ -1729,11 +1734,10 @@ ProcSetModifierMapping(ClientPtr client)
bytes_to_int32(sizeof(xSetModifierMappingReq))))
return BadLength;
- rep = (xSetModifierMappingReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
rc = change_modmap(client, PickKeyboard(client), (KeyCode *) &stuff[1],
stuff->numKeyPerModifier);
@@ -1761,13 +1765,12 @@ ProcGetModifierMapping(ClientPtr client)
generate_modkeymap(client, PickKeyboard(client), &modkeymap,
&max_keys_per_mod);
- rep = (xGetModifierMappingReply) {
- .type = X_Reply,
- .numKeyPerModifier = max_keys_per_mod,
- .sequenceNumber = client->sequence,
+ memset(&rep, 0, sizeof(xGetModifierMappingReply));
+ rep.type = X_Reply;
+ rep.numKeyPerModifier = max_keys_per_mod;
+ rep.sequenceNumber = client->sequence;
/* length counts 4 byte quantities - there are 8 modifiers 1 byte big */
- .length = max_keys_per_mod << 1
- };
+ rep.length = max_keys_per_mod << 1;
WriteReplyToClient(client, sizeof(xGetModifierMappingReply), &rep);
WriteToClient(client, max_keys_per_mod * 8, modkeymap);
@@ -1852,12 +1855,12 @@ ProcSetPointerMapping(ClientPtr client)
bytes_to_int32(sizeof(xSetPointerMappingReq) + stuff->nElts))
return BadLength;
- rep = (xSetPointerMappingReply) {
- .type = X_Reply,
- .success = MappingSuccess,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+
+ rep.type = X_Reply;
+ rep.success = MappingSuccess;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+
map = (BYTE *) &stuff[1];
/* So we're bounded here by the number of core buttons. This check
@@ -1926,13 +1929,13 @@ ProcGetKeyboardMapping(ClientPtr client)
if (!syms)
return BadAlloc;
- rep = (xGetKeyboardMappingReply) {
- .type = X_Reply,
- .keySymsPerKeyCode = syms->mapWidth,
- .sequenceNumber = client->sequence,
- /* length is a count of 4 byte quantities and KeySyms are 4 bytes */
- .length = syms->mapWidth * stuff->count
- };
+ memset(&rep, 0, sizeof(xGetKeyboardMappingReply));
+ rep.type = X_Reply;
+ rep.keySymsPerKeyCode = syms->mapWidth;
+ rep.sequenceNumber = client->sequence;
+ /* length is a count of 4 byte quantities and KeySyms are 4 bytes */
+ rep.length = syms->mapWidth * stuff->count;
+
WriteReplyToClient(client, sizeof(xGetKeyboardMappingReply), &rep);
client->pSwapReplyFunc = (ReplySwapPtr) CopySwap32Write;
WriteSwappedDataToClient(client,
@@ -1964,12 +1967,12 @@ ProcGetPointerMapping(ClientPtr client)
return rc;
nElts = (butc) ? butc->numButtons : 0;
- rep = (xGetPointerMappingReply) {
- .type = X_Reply,
- .nElts = nElts,
- .sequenceNumber = client->sequence,
- .length = ((unsigned) nElts + (4 - 1)) / 4
- };
+
+ rep.type = X_Reply;
+ rep.nElts = nElts;
+ rep.sequenceNumber = client->sequence;
+ rep.length = ((unsigned) nElts + (4 - 1)) / 4;
+
WriteReplyToClient(client, sizeof(xGetPointerMappingReply), &rep);
if (butc)
WriteToClient(client, nElts, &butc->map[1]);
@@ -2016,7 +2019,7 @@ DoChangeKeyboardControl(ClientPtr client, DeviceIntPtr keybd, XID *vlist,
vmask &= ~index2;
switch (index2) {
case KBKeyClickPercent:
- t = (INT8) *vlist;
+ t = *vlist;
vlist++;
if (t == -1) {
t = defaultKeyboardControl.click;
@@ -2218,17 +2221,17 @@ ProcGetKeyboardControl(ClientPtr client)
if (rc != Success)
return rc;
- rep = (xGetKeyboardControlReply) {
- .type = X_Reply,
- .globalAutoRepeat = ctrl->autoRepeat,
- .sequenceNumber = client->sequence,
- .length = 5,
- .ledMask = ctrl->leds,
- .keyClickPercent = ctrl->click,
- .bellPercent = ctrl->bell,
- .bellPitch = ctrl->bell_pitch,
- .bellDuration = ctrl->bell_duration
- };
+
+ rep.type = X_Reply;
+ rep.globalAutoRepeat = ctrl->autoRepeat;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 5;
+ rep.ledMask = ctrl->leds;
+ rep.keyClickPercent = ctrl->click;
+ rep.bellPercent = ctrl->bell;
+ rep.bellPitch = ctrl->bell_pitch;
+ rep.bellDuration = ctrl->bell_duration;
+
for (i = 0; i < 32; i++)
rep.map[i] = ctrl->autoRepeats[i];
WriteReplyToClient(client, sizeof(xGetKeyboardControlReply), &rep);
@@ -2363,14 +2366,14 @@ ProcGetPointerControl(ClientPtr client)
if (rc != Success)
return rc;
- rep = (xGetPointerControlReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .accelNumerator = ctrl->num,
- .accelDenominator = ctrl->den,
- .threshold = ctrl->threshold
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.accelNumerator = ctrl->num;
+ rep.accelDenominator = ctrl->den;
+ rep.threshold = ctrl->threshold;
+
WriteReplyToClient(client, sizeof(xGenericReply), &rep);
return Success;
}
@@ -2414,10 +2417,10 @@ ProcGetMotionEvents(ClientPtr client)
if (mouse->valuator->motionHintWindow)
MaybeStopHint(mouse, client);
- rep = (xGetMotionEventsReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+
nEvents = 0;
start = ClientTimeToServerTime(stuff->start);
stop = ClientTimeToServerTime(stuff->stop);
@@ -2465,11 +2468,10 @@ ProcQueryKeymap(ClientPtr client)
CARD8 *down = keybd->key->down;
REQUEST_SIZE_MATCH(xReq);
- rep = (xQueryKeymapReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 2
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 2;
rc = XaceHook(XACE_DEVICE_ACCESS, client, keybd, DixReadAccess);
/* If rc is Success, we're allowed to copy out the keymap.
@@ -2515,14 +2517,13 @@ RecalculateMasterButtons(DeviceIntPtr slave)
if (master->button && master->button->numButtons != maxbuttons) {
int i;
- DeviceChangedEvent event = {
- .header = ET_Internal,
- .type = ET_DeviceChanged,
- .time = GetTimeInMillis(),
- .deviceid = master->id,
- .flags = DEVCHANGE_POINTER_EVENT | DEVCHANGE_DEVICE_CHANGE,
- .buttons.num_buttons = maxbuttons
- };
+ DeviceChangedEvent event; memset(&event, 0, sizeof(event));
+ event.header = ET_Internal;
+ event.type = ET_DeviceChanged;
+ event.time = GetTimeInMillis();
+ event.deviceid = master->id;
+ event.flags = DEVCHANGE_POINTER_EVENT | DEVCHANGE_DEVICE_CHANGE;
+ event.buttons.num_buttons = maxbuttons;
master->button->numButtons = maxbuttons;
diff --git a/xorg-server/dix/dispatch.c b/xorg-server/dix/dispatch.c
index 4fecfea7b..b2ca29f10 100644
--- a/xorg-server/dix/dispatch.c
+++ b/xorg-server/dix/dispatch.c
@@ -1,3955 +1,3997 @@
-/************************************************************
-
-Copyright 1987, 1989, 1998 The Open Group
-
-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.
-
-The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP 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.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-Copyright 1987, 1989 by Digital Equipment Corporation, Maynard, Massachusetts.
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-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 Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL 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.
-
-********************************************************/
-
-/* The panoramix components contained the following notice */
-/*****************************************************************
-
-Copyright (c) 1991, 1997 Digital Equipment Corporation, Maynard, Massachusetts.
-
-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.
-
-The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
-DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
-BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL 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.
-
-Except as contained in this notice, the name of Digital Equipment Corporation
-shall not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from Digital
-Equipment Corporation.
-
-******************************************************************/
-
-/* XSERVER_DTRACE additions:
- * Copyright (c) 2005-2006, Oracle and/or its affiliates. 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
- * 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:
- *
- * 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 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.
- */
-
-#ifdef HAVE_DIX_CONFIG_H
-#include <dix-config.h>
-#include <version-config.h>
-#endif
-
-#ifdef PANORAMIX_DEBUG
-#include <stdio.h>
-int ProcInitialConnection();
-#endif
-
-#include "windowstr.h"
-#include <X11/fonts/fontstruct.h>
-#include "dixfontstr.h"
-#include "gcstruct.h"
-#include "selection.h"
-#include "colormapst.h"
-#include "cursorstr.h"
-#include "scrnintstr.h"
-#include "opaque.h"
-#include "input.h"
-#include "servermd.h"
-#include "extnsionst.h"
-#include "dixfont.h"
-#include "dispatch.h"
-#include "swaprep.h"
-#include "swapreq.h"
-#include "privates.h"
-#include "xace.h"
-#include "inputstr.h"
-#include "xkbsrv.h"
-#include "site.h"
-#include "client.h"
-
-#ifdef XSERVER_DTRACE
-#include "registry.h"
-#include <sys/types.h>
-typedef const char *string;
-
-#include "Xserver-dtrace.h"
-#endif
-
-#define mskcnt ((MAXCLIENTS + 31) / 32)
-#define BITMASK(i) (1U << ((i) & 31))
-#define MASKIDX(i) ((i) >> 5)
-#define MASKWORD(buf, i) buf[MASKIDX(i)]
-#define BITSET(buf, i) MASKWORD(buf, i) |= BITMASK(i)
-#define BITCLEAR(buf, i) MASKWORD(buf, i) &= ~BITMASK(i)
-#define GETBIT(buf, i) (MASKWORD(buf, i) & BITMASK(i))
-
-xConnSetupPrefix connSetupPrefix;
-
-PaddingInfo PixmapWidthPaddingInfo[33];
-
-static ClientPtr grabClient;
-
-#define GrabNone 0
-#define GrabActive 1
-#define GrabKickout 2
-static int grabState = GrabNone;
-static long grabWaiters[mskcnt];
-CallbackListPtr ServerGrabCallback = NULL;
-HWEventQueuePtr checkForInput[2];
-int connBlockScreenStart;
-
-static void KillAllClients(void);
-
-static int nextFreeClientID; /* always MIN free client ID */
-
-static int nClients; /* number of authorized clients */
-
-CallbackListPtr ClientStateCallback;
-
-/* dispatchException & isItTimeToYield must be declared volatile since they
- * are modified by signal handlers - otherwise optimizer may assume it doesn't
- * need to actually check value in memory when used and may miss changes from
- * signal handlers.
- */
-volatile char dispatchException = 0;
-volatile char isItTimeToYield;
-
-#define SAME_SCREENS(a, b) (\
- (a.pScreen == b.pScreen))
-
-void
-SetInputCheck(HWEventQueuePtr c0, HWEventQueuePtr c1)
-{
- checkForInput[0] = c0;
- checkForInput[1] = c1;
-}
-
-void
-UpdateCurrentTime(void)
-{
- TimeStamp systime;
-
- /* To avoid time running backwards, we must call GetTimeInMillis before
- * calling ProcessInputEvents.
- */
- systime.months = currentTime.months;
- systime.milliseconds = GetTimeInMillis();
- if (systime.milliseconds < currentTime.milliseconds)
- systime.months++;
- if (*checkForInput[0] != *checkForInput[1])
- ProcessInputEvents();
- if (CompareTimeStamps(systime, currentTime) == LATER)
- currentTime = systime;
-}
-
-/* Like UpdateCurrentTime, but can't call ProcessInputEvents */
-void
-UpdateCurrentTimeIf(void)
-{
- TimeStamp systime;
-
- systime.months = currentTime.months;
- systime.milliseconds = GetTimeInMillis();
- if (systime.milliseconds < currentTime.milliseconds)
- systime.months++;
- if (CompareTimeStamps(systime, currentTime) == LATER)
- currentTime = systime;
-}
-
-#undef SMART_DEBUG
-
-#define SMART_SCHEDULE_DEFAULT_INTERVAL 20 /* ms */
-#define SMART_SCHEDULE_MAX_SLICE 200 /* ms */
-
-#if defined(WIN32) && !defined(__CYGWIN__)
-Bool SmartScheduleDisable = TRUE;
-#else
-Bool SmartScheduleDisable = FALSE;
-#endif
-long SmartScheduleSlice = SMART_SCHEDULE_DEFAULT_INTERVAL;
-long SmartScheduleInterval = SMART_SCHEDULE_DEFAULT_INTERVAL;
-long SmartScheduleMaxSlice = SMART_SCHEDULE_MAX_SLICE;
-long SmartScheduleTime;
-int SmartScheduleLatencyLimited = 0;
-static ClientPtr SmartLastClient;
-static int SmartLastIndex[SMART_MAX_PRIORITY - SMART_MIN_PRIORITY + 1];
-
-#ifdef SMART_DEBUG
-long SmartLastPrint;
-#endif
-
-void Dispatch(void);
-
-static int
-SmartScheduleClient(int *clientReady, int nready)
-{
- ClientPtr pClient;
- int i;
- int client;
- int bestPrio, best = 0;
- int bestRobin, robin;
- long now = SmartScheduleTime;
- long idle;
-
- bestPrio = -0x7fffffff;
- bestRobin = 0;
- idle = 2 * SmartScheduleSlice;
- for (i = 0; i < nready; i++) {
- client = clientReady[i];
- pClient = clients[client];
- /* Praise clients which are idle */
- if ((now - pClient->smart_check_tick) >= idle) {
- if (pClient->smart_priority < 0)
- pClient->smart_priority++;
- }
- pClient->smart_check_tick = now;
-
- /* check priority to select best client */
- robin =
- (pClient->index -
- SmartLastIndex[pClient->smart_priority -
- SMART_MIN_PRIORITY]) & 0xff;
- if (pClient->smart_priority > bestPrio ||
- (pClient->smart_priority == bestPrio && robin > bestRobin)) {
- bestPrio = pClient->smart_priority;
- bestRobin = robin;
- best = client;
- }
-#ifdef SMART_DEBUG
- if ((now - SmartLastPrint) >= 5000)
- fprintf(stderr, " %2d: %3d", client, pClient->smart_priority);
-#endif
- }
-#ifdef SMART_DEBUG
- if ((now - SmartLastPrint) >= 5000) {
- fprintf(stderr, " use %2d\n", best);
- SmartLastPrint = now;
- }
-#endif
- pClient = clients[best];
- SmartLastIndex[bestPrio - SMART_MIN_PRIORITY] = pClient->index;
- /*
- * Set current client pointer
- */
- if (SmartLastClient != pClient) {
- pClient->smart_start_tick = now;
- SmartLastClient = pClient;
- }
- /*
- * Adjust slice
- */
- if (nready == 1 && SmartScheduleLatencyLimited == 0) {
- /*
- * If it's been a long time since another client
- * has run, bump the slice up to get maximal
- * performance from a single client
- */
- if ((now - pClient->smart_start_tick) > 1000 &&
- SmartScheduleSlice < SmartScheduleMaxSlice) {
- SmartScheduleSlice += SmartScheduleInterval;
- }
- }
- else {
- SmartScheduleSlice = SmartScheduleInterval;
- }
- return best;
-}
-
-void
-EnableLimitedSchedulingLatency(void)
-{
- ++SmartScheduleLatencyLimited;
- SmartScheduleSlice = SmartScheduleInterval;
-}
-
-void
-DisableLimitedSchedulingLatency(void)
-{
- --SmartScheduleLatencyLimited;
-
- /* protect against bugs */
- if (SmartScheduleLatencyLimited < 0)
- SmartScheduleLatencyLimited = 0;
-}
-
-void
-Dispatch(void)
-{
- int *clientReady; /* array of request ready clients */
- int result;
- ClientPtr client;
- int nready;
- HWEventQueuePtr *icheck = checkForInput;
- long start_tick;
-
- nextFreeClientID = 1;
- nClients = 0;
-
- clientReady = malloc(sizeof(int) * MaxClients);
- if (!clientReady)
- return;
-
- SmartScheduleSlice = SmartScheduleInterval;
- while (!dispatchException) {
- if (*icheck[0] != *icheck[1]) {
- ProcessInputEvents();
- FlushIfCriticalOutputPending();
- }
-
- nready = WaitForSomething(clientReady);
-
- if (nready && !SmartScheduleDisable) {
- clientReady[0] = SmartScheduleClient(clientReady, nready);
- nready = 1;
- }
- /*****************
- * Handle events in round robin fashion, doing input between
- * each round
- *****************/
-
- while (!dispatchException && (--nready >= 0)) {
- client = clients[clientReady[nready]];
- if (!client) {
- /* KillClient can cause this to happen */
- continue;
- }
- /* GrabServer activation can cause this to be true */
- if (grabState == GrabKickout) {
- grabState = GrabActive;
- break;
- }
- isItTimeToYield = FALSE;
-
- start_tick = SmartScheduleTime;
- while (!isItTimeToYield) {
- if (*icheck[0] != *icheck[1])
- ProcessInputEvents();
-
- FlushIfCriticalOutputPending();
- if (!SmartScheduleDisable &&
- (SmartScheduleTime - start_tick) >= SmartScheduleSlice) {
- /* Penalize clients which consume ticks */
- if (client->smart_priority > SMART_MIN_PRIORITY)
- client->smart_priority--;
- break;
- }
- /* now, finally, deal with client requests */
-
- /* Update currentTime so request time checks, such as for input
- * device grabs, are calculated correctly */
- UpdateCurrentTimeIf();
- result = ReadRequestFromClient(client);
- if (result <= 0) {
- if (result < 0)
- CloseDownClient(client);
- break;
- }
-
- client->sequence++;
- client->majorOp = ((xReq *) client->requestBuffer)->reqType;
- client->minorOp = 0;
- if (client->majorOp >= EXTENSION_BASE) {
- ExtensionEntry *ext = GetExtensionEntry(client->majorOp);
-
- if (ext)
- client->minorOp = ext->MinorOpcode(client);
- }
-#ifdef XSERVER_DTRACE
- if (XSERVER_REQUEST_START_ENABLED())
- XSERVER_REQUEST_START(LookupMajorName(client->majorOp),
- client->majorOp,
- ((xReq *) client->requestBuffer)->length,
- client->index,
- client->requestBuffer);
-#endif
- if (result > (maxBigRequestSize << 2))
- result = BadLength;
- else {
- result = XaceHookDispatch(client, client->majorOp);
- if (result == Success)
- result =
- (*client->requestVector[client->majorOp]) (client);
- XaceHookAuditEnd(client, result);
- }
-#ifdef XSERVER_DTRACE
- if (XSERVER_REQUEST_DONE_ENABLED())
- XSERVER_REQUEST_DONE(LookupMajorName(client->majorOp),
- client->majorOp, client->sequence,
- client->index, result);
-#endif
-
- if (client->noClientException != Success) {
- CloseDownClient(client);
- break;
- }
- else if (result != Success) {
- SendErrorToClient(client, client->majorOp,
- client->minorOp,
- client->errorValue, result);
- break;
- }
- }
- FlushAllOutput();
- client = clients[clientReady[nready]];
- if (client)
- client->smart_stop_tick = SmartScheduleTime;
- }
- dispatchException &= ~DE_PRIORITYCHANGE;
- }
-#if defined(DDXBEFORERESET)
- ddxBeforeReset();
-#endif
- KillAllClients();
- free(clientReady);
- dispatchException &= ~DE_RESET;
- SmartScheduleLatencyLimited = 0;
- ResetOsBuffers();
-}
-
-static int VendorRelease = VENDOR_RELEASE;
-static char *VendorString = VENDOR_NAME;
-
-void
-SetVendorRelease(int release)
-{
- VendorRelease = release;
-}
-
-void
-SetVendorString(char *string)
-{
- VendorString = string;
-}
-
-Bool
-CreateConnectionBlock(void)
-{
- xConnSetup setup;
- xWindowRoot root;
- xDepth depth;
- xVisualType visual;
- xPixmapFormat format;
- unsigned long vid;
- int i, j, k, lenofblock, sizesofar = 0;
- char *pBuf;
-
- memset(&setup, 0, sizeof(xConnSetup));
- /* Leave off the ridBase and ridMask, these must be sent with
- connection */
-
- setup.release = VendorRelease;
- /*
- * per-server image and bitmap parameters are defined in Xmd.h
- */
- setup.imageByteOrder = screenInfo.imageByteOrder;
-
- setup.bitmapScanlineUnit = screenInfo.bitmapScanlineUnit;
- setup.bitmapScanlinePad = screenInfo.bitmapScanlinePad;
-
- setup.bitmapBitOrder = screenInfo.bitmapBitOrder;
- setup.motionBufferSize = NumMotionEvents();
- setup.numRoots = screenInfo.numScreens;
- setup.nbytesVendor = strlen(VendorString);
- setup.numFormats = screenInfo.numPixmapFormats;
- setup.maxRequestSize = MAX_REQUEST_SIZE;
- QueryMinMaxKeyCodes(&setup.minKeyCode, &setup.maxKeyCode);
-
- lenofblock = sizeof(xConnSetup) +
- pad_to_int32(setup.nbytesVendor) +
- (setup.numFormats * sizeof(xPixmapFormat)) +
- (setup.numRoots * sizeof(xWindowRoot));
- ConnectionInfo = malloc(lenofblock);
- if (!ConnectionInfo)
- return FALSE;
-
- memmove(ConnectionInfo, (char *) &setup, sizeof(xConnSetup));
- sizesofar = sizeof(xConnSetup);
- pBuf = ConnectionInfo + sizeof(xConnSetup);
-
- memmove(pBuf, VendorString, (int) setup.nbytesVendor);
- sizesofar += setup.nbytesVendor;
- pBuf += setup.nbytesVendor;
- i = padding_for_int32(setup.nbytesVendor);
- sizesofar += i;
- while (--i >= 0)
- *pBuf++ = 0;
-
- memset(&format, 0, sizeof(xPixmapFormat));
- for (i = 0; i < screenInfo.numPixmapFormats; i++) {
- format.depth = screenInfo.formats[i].depth;
- format.bitsPerPixel = screenInfo.formats[i].bitsPerPixel;
- format.scanLinePad = screenInfo.formats[i].scanlinePad;
- memmove(pBuf, (char *) &format, sizeof(xPixmapFormat));
- pBuf += sizeof(xPixmapFormat);
- sizesofar += sizeof(xPixmapFormat);
- }
-
- connBlockScreenStart = sizesofar;
- memset(&depth, 0, sizeof(xDepth));
- memset(&visual, 0, sizeof(xVisualType));
- for (i = 0; i < screenInfo.numScreens; i++) {
- ScreenPtr pScreen;
- DepthPtr pDepth;
- VisualPtr pVisual;
-
- pScreen = screenInfo.screens[i];
- root.windowId = pScreen->root->drawable.id;
- root.defaultColormap = pScreen->defColormap;
- root.whitePixel = pScreen->whitePixel;
- root.blackPixel = pScreen->blackPixel;
- root.currentInputMask = 0; /* filled in when sent */
- root.pixWidth = pScreen->width;
- root.pixHeight = pScreen->height;
- root.mmWidth = pScreen->mmWidth;
- root.mmHeight = pScreen->mmHeight;
- root.minInstalledMaps = pScreen->minInstalledCmaps;
- root.maxInstalledMaps = pScreen->maxInstalledCmaps;
- root.rootVisualID = pScreen->rootVisual;
- root.backingStore = pScreen->backingStoreSupport;
- root.saveUnders = FALSE;
- root.rootDepth = pScreen->rootDepth;
- root.nDepths = pScreen->numDepths;
- memmove(pBuf, (char *) &root, sizeof(xWindowRoot));
- sizesofar += sizeof(xWindowRoot);
- pBuf += sizeof(xWindowRoot);
-
- pDepth = pScreen->allowedDepths;
- for (j = 0; j < pScreen->numDepths; j++, pDepth++) {
- lenofblock += sizeof(xDepth) +
- (pDepth->numVids * sizeof(xVisualType));
- pBuf = (char *) realloc(ConnectionInfo, lenofblock);
- if (!pBuf) {
- free(ConnectionInfo);
- return FALSE;
- }
- ConnectionInfo = pBuf;
- pBuf += sizesofar;
- depth.depth = pDepth->depth;
- depth.nVisuals = pDepth->numVids;
- memmove(pBuf, (char *) &depth, sizeof(xDepth));
- pBuf += sizeof(xDepth);
- sizesofar += sizeof(xDepth);
- for (k = 0; k < pDepth->numVids; k++) {
- vid = pDepth->vids[k];
- for (pVisual = pScreen->visuals;
- pVisual->vid != vid; pVisual++);
- visual.visualID = vid;
- visual.class = pVisual->class;
- visual.bitsPerRGB = pVisual->bitsPerRGBValue;
- visual.colormapEntries = pVisual->ColormapEntries;
- visual.redMask = pVisual->redMask;
- visual.greenMask = pVisual->greenMask;
- visual.blueMask = pVisual->blueMask;
- memmove(pBuf, (char *) &visual, sizeof(xVisualType));
- pBuf += sizeof(xVisualType);
- sizesofar += sizeof(xVisualType);
- }
- }
- }
- connSetupPrefix.success = xTrue;
- connSetupPrefix.length = lenofblock / 4;
- connSetupPrefix.majorVersion = X_PROTOCOL;
- connSetupPrefix.minorVersion = X_PROTOCOL_REVISION;
- return TRUE;
-}
-
-int
-ProcBadRequest(ClientPtr client)
-{
- return BadRequest;
-}
-
-int
-ProcCreateWindow(ClientPtr client)
-{
- WindowPtr pParent, pWin;
-
- REQUEST(xCreateWindowReq);
- int len, rc;
-
- REQUEST_AT_LEAST_SIZE(xCreateWindowReq);
-
- LEGAL_NEW_RESOURCE(stuff->wid, client);
- rc = dixLookupWindow(&pParent, stuff->parent, client, DixAddAccess);
- if (rc != Success)
- return rc;
- len = client->req_len - bytes_to_int32(sizeof(xCreateWindowReq));
- if (Ones(stuff->mask) != len)
- return BadLength;
- if (!stuff->width || !stuff->height) {
- client->errorValue = 0;
- return BadValue;
- }
- pWin = CreateWindow(stuff->wid, pParent, stuff->x,
- stuff->y, stuff->width, stuff->height,
- stuff->borderWidth, stuff->class,
- stuff->mask, (XID *) &stuff[1],
- (int) stuff->depth, client, stuff->visual, &rc);
- if (pWin) {
- Mask mask = pWin->eventMask;
-
- pWin->eventMask = 0; /* subterfuge in case AddResource fails */
- if (!AddResource(stuff->wid, RT_WINDOW, (pointer) pWin))
- return BadAlloc;
- pWin->eventMask = mask;
- }
- return rc;
-}
-
-int
-ProcChangeWindowAttributes(ClientPtr client)
-{
- WindowPtr pWin;
-
- REQUEST(xChangeWindowAttributesReq);
- int len, rc;
- Mask access_mode = 0;
-
- REQUEST_AT_LEAST_SIZE(xChangeWindowAttributesReq);
- access_mode |= (stuff->valueMask & CWEventMask) ? DixReceiveAccess : 0;
- access_mode |= (stuff->valueMask & ~CWEventMask) ? DixSetAttrAccess : 0;
- rc = dixLookupWindow(&pWin, stuff->window, client, access_mode);
- if (rc != Success)
- return rc;
- len = client->req_len - bytes_to_int32(sizeof(xChangeWindowAttributesReq));
- if (len != Ones(stuff->valueMask))
- return BadLength;
- return ChangeWindowAttributes(pWin,
- stuff->valueMask, (XID *) &stuff[1], client);
-}
-
-int
-ProcGetWindowAttributes(ClientPtr client)
-{
- WindowPtr pWin;
-
- REQUEST(xResourceReq);
- xGetWindowAttributesReply wa;
- int rc;
-
- REQUEST_SIZE_MATCH(xResourceReq);
- rc = dixLookupWindow(&pWin, stuff->id, client, DixGetAttrAccess);
- if (rc != Success)
- return rc;
- memset(&wa, 0, sizeof(xGetWindowAttributesReply));
- GetWindowAttributes(pWin, client, &wa);
- WriteReplyToClient(client, sizeof(xGetWindowAttributesReply), &wa);
- return Success;
-}
-
-int
-ProcDestroyWindow(ClientPtr client)
-{
- WindowPtr pWin;
-
- REQUEST(xResourceReq);
- int rc;
-
- REQUEST_SIZE_MATCH(xResourceReq);
- rc = dixLookupWindow(&pWin, stuff->id, client, DixDestroyAccess);
- if (rc != Success)
- return rc;
- if (pWin->parent) {
- rc = dixLookupWindow(&pWin, pWin->parent->drawable.id, client,
- DixRemoveAccess);
- if (rc != Success)
- return rc;
- FreeResource(stuff->id, RT_NONE);
- }
- return Success;
-}
-
-int
-ProcDestroySubwindows(ClientPtr client)
-{
- WindowPtr pWin;
-
- REQUEST(xResourceReq);
- int rc;
-
- REQUEST_SIZE_MATCH(xResourceReq);
- rc = dixLookupWindow(&pWin, stuff->id, client, DixRemoveAccess);
- if (rc != Success)
- return rc;
- DestroySubwindows(pWin, client);
- return Success;
-}
-
-int
-ProcChangeSaveSet(ClientPtr client)
-{
- WindowPtr pWin;
-
- REQUEST(xChangeSaveSetReq);
- int rc;
-
- REQUEST_SIZE_MATCH(xChangeSaveSetReq);
- rc = dixLookupWindow(&pWin, stuff->window, client, DixManageAccess);
- if (rc != Success)
- return rc;
- if (client->clientAsMask == (CLIENT_BITS(pWin->drawable.id)))
- return BadMatch;
- if ((stuff->mode == SetModeInsert) || (stuff->mode == SetModeDelete))
- return AlterSaveSetForClient(client, pWin, stuff->mode, FALSE, TRUE);
- client->errorValue = stuff->mode;
- return BadValue;
-}
-
-int
-ProcReparentWindow(ClientPtr client)
-{
- WindowPtr pWin, pParent;
-
- REQUEST(xReparentWindowReq);
- int rc;
-
- REQUEST_SIZE_MATCH(xReparentWindowReq);
- rc = dixLookupWindow(&pWin, stuff->window, client, DixManageAccess);
- if (rc != Success)
- return rc;
- rc = dixLookupWindow(&pParent, stuff->parent, client, DixAddAccess);
- if (rc != Success)
- return rc;
- if (!SAME_SCREENS(pWin->drawable, pParent->drawable))
- return BadMatch;
- if ((pWin->backgroundState == ParentRelative) &&
- (pParent->drawable.depth != pWin->drawable.depth))
- return BadMatch;
- if ((pWin->drawable.class != InputOnly) &&
- (pParent->drawable.class == InputOnly))
- return BadMatch;
- return ReparentWindow(pWin, pParent,
- (short) stuff->x, (short) stuff->y, client);
-}
-
-int
-ProcMapWindow(ClientPtr client)
-{
- WindowPtr pWin;
-
- REQUEST(xResourceReq);
- int rc;
-
- REQUEST_SIZE_MATCH(xResourceReq);
- rc = dixLookupWindow(&pWin, stuff->id, client, DixShowAccess);
- if (rc != Success)
- return rc;
- MapWindow(pWin, client);
- /* update cache to say it is mapped */
- return Success;
-}
-
-int
-ProcMapSubwindows(ClientPtr client)
-{
- WindowPtr pWin;
-
- REQUEST(xResourceReq);
- int rc;
-
- REQUEST_SIZE_MATCH(xResourceReq);
- rc = dixLookupWindow(&pWin, stuff->id, client, DixListAccess);
- if (rc != Success)
- return rc;
- MapSubwindows(pWin, client);
- /* update cache to say it is mapped */
- return Success;
-}
-
-int
-ProcUnmapWindow(ClientPtr client)
-{
- WindowPtr pWin;
-
- REQUEST(xResourceReq);
- int rc;
-
- REQUEST_SIZE_MATCH(xResourceReq);
- rc = dixLookupWindow(&pWin, stuff->id, client, DixHideAccess);
- if (rc != Success)
- return rc;
- UnmapWindow(pWin, FALSE);
- /* update cache to say it is mapped */
- return Success;
-}
-
-int
-ProcUnmapSubwindows(ClientPtr client)
-{
- WindowPtr pWin;
-
- REQUEST(xResourceReq);
- int rc;
-
- REQUEST_SIZE_MATCH(xResourceReq);
- rc = dixLookupWindow(&pWin, stuff->id, client, DixListAccess);
- if (rc != Success)
- return rc;
- UnmapSubwindows(pWin);
- return Success;
-}
-
-int
-ProcConfigureWindow(ClientPtr client)
-{
- WindowPtr pWin;
-
- REQUEST(xConfigureWindowReq);
- int len, rc;
-
- REQUEST_AT_LEAST_SIZE(xConfigureWindowReq);
- rc = dixLookupWindow(&pWin, stuff->window, client,
- DixManageAccess | DixSetAttrAccess);
- if (rc != Success)
- return rc;
- len = client->req_len - bytes_to_int32(sizeof(xConfigureWindowReq));
- if (Ones((Mask) stuff->mask) != len)
- return BadLength;
- return ConfigureWindow(pWin, (Mask) stuff->mask, (XID *) &stuff[1], client);
-}
-
-int
-ProcCirculateWindow(ClientPtr client)
-{
- WindowPtr pWin;
-
- REQUEST(xCirculateWindowReq);
- int rc;
-
- REQUEST_SIZE_MATCH(xCirculateWindowReq);
- if ((stuff->direction != RaiseLowest) && (stuff->direction != LowerHighest)) {
- client->errorValue = stuff->direction;
- return BadValue;
- }
- rc = dixLookupWindow(&pWin, stuff->window, client, DixManageAccess);
- if (rc != Success)
- return rc;
- CirculateWindow(pWin, (int) stuff->direction, client);
- return Success;
-}
-
-static int
-GetGeometry(ClientPtr client, xGetGeometryReply * rep)
-{
- DrawablePtr pDraw;
- int rc;
-
- REQUEST(xResourceReq);
- REQUEST_SIZE_MATCH(xResourceReq);
-
- rc = dixLookupDrawable(&pDraw, stuff->id, client, M_ANY, DixGetAttrAccess);
- if (rc != Success)
- return rc;
-
- rep->type = X_Reply;
- rep->length = 0;
- rep->sequenceNumber = client->sequence;
- rep->root = pDraw->pScreen->root->drawable.id;
- rep->depth = pDraw->depth;
- rep->width = pDraw->width;
- rep->height = pDraw->height;
-
- if (WindowDrawable(pDraw->type)) {
- WindowPtr pWin = (WindowPtr) pDraw;
-
- rep->x = pWin->origin.x - wBorderWidth(pWin);
- rep->y = pWin->origin.y - wBorderWidth(pWin);
- rep->borderWidth = pWin->borderWidth;
- }
- else { /* DRAWABLE_PIXMAP */
-
- rep->x = rep->y = rep->borderWidth = 0;
- }
-
- return Success;
-}
-
-int
-ProcGetGeometry(ClientPtr client)
-{
- xGetGeometryReply rep = { .type = X_Reply };
- int status;
-
- if ((status = GetGeometry(client, &rep)) != Success)
- return status;
-
- WriteReplyToClient(client, sizeof(xGetGeometryReply), &rep);
- return Success;
-}
-
-int
-ProcQueryTree(ClientPtr client)
-{
- xQueryTreeReply reply;
- int rc, numChildren = 0;
- WindowPtr pChild, pWin, pHead;
- Window *childIDs = (Window *) NULL;
-
- REQUEST(xResourceReq);
-
- REQUEST_SIZE_MATCH(xResourceReq);
- rc = dixLookupWindow(&pWin, stuff->id, client, DixListAccess);
- if (rc != Success)
- return rc;
-
- reply = (xQueryTreeReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .root = pWin->drawable.pScreen->root->drawable.id,
- .parent = (pWin->parent) ? pWin->parent->drawable.id : (Window) None
- };
- pHead = RealChildHead(pWin);
- for (pChild = pWin->lastChild; pChild != pHead; pChild = pChild->prevSib)
- numChildren++;
- if (numChildren) {
- int curChild = 0;
-
- childIDs = malloc(numChildren * sizeof(Window));
- if (!childIDs)
- return BadAlloc;
- for (pChild = pWin->lastChild; pChild != pHead;
- pChild = pChild->prevSib)
- childIDs[curChild++] = pChild->drawable.id;
- }
-
- reply.nChildren = numChildren;
- reply.length = bytes_to_int32(numChildren * sizeof(Window));
-
- WriteReplyToClient(client, sizeof(xQueryTreeReply), &reply);
- if (numChildren) {
- client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write;
- WriteSwappedDataToClient(client, numChildren * sizeof(Window),
- childIDs);
- free(childIDs);
- }
-
- return Success;
-}
-
-int
-ProcInternAtom(ClientPtr client)
-{
- Atom atom;
- char *tchar;
-
- REQUEST(xInternAtomReq);
-
- REQUEST_FIXED_SIZE(xInternAtomReq, stuff->nbytes);
- if ((stuff->onlyIfExists != xTrue) && (stuff->onlyIfExists != xFalse)) {
- client->errorValue = stuff->onlyIfExists;
- return BadValue;
- }
- tchar = (char *) &stuff[1];
- atom = MakeAtom(tchar, stuff->nbytes, !stuff->onlyIfExists);
- if (atom != BAD_RESOURCE) {
- xInternAtomReply reply = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .atom = atom
- };
- WriteReplyToClient(client, sizeof(xInternAtomReply), &reply);
- return Success;
- }
- else
- return BadAlloc;
-}
-
-int
-ProcGetAtomName(ClientPtr client)
-{
- const char *str;
-
- REQUEST(xResourceReq);
-
- REQUEST_SIZE_MATCH(xResourceReq);
- if ((str = NameForAtom(stuff->id))) {
- int len = strlen(str);
- xGetAtomNameReply reply = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(len),
- .nameLength = len
- };
-
- WriteReplyToClient(client, sizeof(xGetAtomNameReply), &reply);
- WriteToClient(client, len, str);
- return Success;
- }
- else {
- client->errorValue = stuff->id;
- return BadAtom;
- }
-}
-
-int
-ProcGrabServer(ClientPtr client)
-{
- int rc;
-
- REQUEST_SIZE_MATCH(xReq);
- if (grabState != GrabNone && client != grabClient) {
- ResetCurrentRequest(client);
- client->sequence--;
- BITSET(grabWaiters, client->index);
- IgnoreClient(client);
- return Success;
- }
- rc = OnlyListenToOneClient(client);
- if (rc != Success)
- return rc;
- grabState = GrabKickout;
- grabClient = client;
-
- if (ServerGrabCallback) {
- ServerGrabInfoRec grabinfo;
-
- grabinfo.client = client;
- grabinfo.grabstate = SERVER_GRABBED;
- CallCallbacks(&ServerGrabCallback, (pointer) &grabinfo);
- }
-
- return Success;
-}
-
-static void
-UngrabServer(ClientPtr client)
-{
- int i;
-
- grabState = GrabNone;
- ListenToAllClients();
- for (i = mskcnt; --i >= 0 && !grabWaiters[i];);
- if (i >= 0) {
- i <<= 5;
- while (!GETBIT(grabWaiters, i))
- i++;
- BITCLEAR(grabWaiters, i);
- AttendClient(clients[i]);
- }
-
- if (ServerGrabCallback) {
- ServerGrabInfoRec grabinfo;
-
- grabinfo.client = client;
- grabinfo.grabstate = SERVER_UNGRABBED;
- CallCallbacks(&ServerGrabCallback, (pointer) &grabinfo);
- }
-}
-
-int
-ProcUngrabServer(ClientPtr client)
-{
- REQUEST_SIZE_MATCH(xReq);
- UngrabServer(client);
- return Success;
-}
-
-int
-ProcTranslateCoords(ClientPtr client)
-{
- REQUEST(xTranslateCoordsReq);
-
- WindowPtr pWin, pDst;
- xTranslateCoordsReply rep;
- int rc;
-
- REQUEST_SIZE_MATCH(xTranslateCoordsReq);
- rc = dixLookupWindow(&pWin, stuff->srcWid, client, DixGetAttrAccess);
- if (rc != Success)
- return rc;
- rc = dixLookupWindow(&pDst, stuff->dstWid, client, DixGetAttrAccess);
- if (rc != Success)
- return rc;
-
- rep = (xTranslateCoordsReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0
- };
- if (!SAME_SCREENS(pWin->drawable, pDst->drawable)) {
- rep.sameScreen = xFalse;
- rep.child = None;
- rep.dstX = rep.dstY = 0;
- }
- else {
- INT16 x, y;
-
- rep.sameScreen = xTrue;
- rep.child = None;
- /* computing absolute coordinates -- adjust to destination later */
- x = pWin->drawable.x + stuff->srcX;
- y = pWin->drawable.y + stuff->srcY;
- pWin = pDst->firstChild;
- while (pWin) {
- BoxRec box;
-
- if ((pWin->mapped) &&
- (x >= pWin->drawable.x - wBorderWidth(pWin)) &&
- (x < pWin->drawable.x + (int) pWin->drawable.width +
- wBorderWidth(pWin)) &&
- (y >= pWin->drawable.y - wBorderWidth(pWin)) &&
- (y < pWin->drawable.y + (int) pWin->drawable.height +
- wBorderWidth(pWin))
- /* When a window is shaped, a further check
- * is made to see if the point is inside
- * borderSize
- */
- && (!wBoundingShape(pWin) ||
- RegionContainsPoint(&pWin->borderSize, x, y, &box))
-
- && (!wInputShape(pWin) ||
- RegionContainsPoint(wInputShape(pWin),
- x - pWin->drawable.x,
- y - pWin->drawable.y, &box))
- ) {
- rep.child = pWin->drawable.id;
- pWin = (WindowPtr) NULL;
- }
- else
- pWin = pWin->nextSib;
- }
- /* adjust to destination coordinates */
- rep.dstX = x - pDst->drawable.x;
- rep.dstY = y - pDst->drawable.y;
- }
- WriteReplyToClient(client, sizeof(xTranslateCoordsReply), &rep);
- return Success;
-}
-
-int
-ProcOpenFont(ClientPtr client)
-{
- int err;
-
- REQUEST(xOpenFontReq);
-
- REQUEST_FIXED_SIZE(xOpenFontReq, stuff->nbytes);
- client->errorValue = stuff->fid;
- LEGAL_NEW_RESOURCE(stuff->fid, client);
- err = OpenFont(client, stuff->fid, (Mask) 0,
- stuff->nbytes, (char *) &stuff[1]);
- if (err == Success) {
- return Success;
- }
- else
- return err;
-}
-
-int
-ProcCloseFont(ClientPtr client)
-{
- FontPtr pFont;
- int rc;
-
- REQUEST(xResourceReq);
-
- REQUEST_SIZE_MATCH(xResourceReq);
- rc = dixLookupResourceByType((pointer *) &pFont, stuff->id, RT_FONT,
- client, DixDestroyAccess);
- if (rc == Success) {
- FreeResource(stuff->id, RT_NONE);
- return Success;
- }
- else {
- client->errorValue = stuff->id;
- return rc;
- }
-}
-
-int
-ProcQueryFont(ClientPtr client)
-{
- xQueryFontReply *reply;
- FontPtr pFont;
- int rc;
-
- REQUEST(xResourceReq);
- REQUEST_SIZE_MATCH(xResourceReq);
-
- rc = dixLookupFontable(&pFont, stuff->id, client, DixGetAttrAccess);
- if (rc != Success)
- return rc;
-
- {
- xCharInfo *pmax = FONTINKMAX(pFont);
- xCharInfo *pmin = FONTINKMIN(pFont);
- int nprotoxcistructs;
- int rlength;
-
- nprotoxcistructs = (pmax->rightSideBearing == pmin->rightSideBearing &&
- pmax->leftSideBearing == pmin->leftSideBearing &&
- pmax->descent == pmin->descent &&
- pmax->ascent == pmin->ascent &&
- pmax->characterWidth == pmin->characterWidth) ?
- 0 : N2dChars(pFont);
-
- rlength = sizeof(xQueryFontReply) +
- FONTINFONPROPS(FONTCHARSET(pFont)) * sizeof(xFontProp) +
- nprotoxcistructs * sizeof(xCharInfo);
- reply = calloc(1, rlength);
- if (!reply) {
- return BadAlloc;
- }
-
- reply->type = X_Reply;
- reply->length = bytes_to_int32(rlength - sizeof(xGenericReply));
- reply->sequenceNumber = client->sequence;
- QueryFont(pFont, reply, nprotoxcistructs);
-
- WriteReplyToClient(client, rlength, reply);
- free(reply);
- return Success;
- }
-}
-
-int
-ProcQueryTextExtents(ClientPtr client)
-{
- xQueryTextExtentsReply reply;
- FontPtr pFont;
- ExtentInfoRec info;
- unsigned long length;
- int rc;
-
- REQUEST(xQueryTextExtentsReq);
- REQUEST_AT_LEAST_SIZE(xQueryTextExtentsReq);
-
- rc = dixLookupFontable(&pFont, stuff->fid, client, DixGetAttrAccess);
- if (rc != Success)
- return rc;
-
- length = client->req_len - bytes_to_int32(sizeof(xQueryTextExtentsReq));
- length = length << 1;
- if (stuff->oddLength) {
- if (length == 0)
- return BadLength;
- length--;
- }
- if (!QueryTextExtents(pFont, length, (unsigned char *) &stuff[1], &info))
- return BadAlloc;
- reply = (xQueryTextExtentsReply) {
- .type = X_Reply,
- .drawDirection = info.drawDirection,
- .sequenceNumber = client->sequence,
- .length = 0,
- .fontAscent = info.fontAscent,
- .fontDescent = info.fontDescent,
- .overallAscent = info.overallAscent,
- .overallDescent = info.overallDescent,
- .overallWidth = info.overallWidth,
- .overallLeft = info.overallLeft,
- .overallRight = info.overallRight
- };
- WriteReplyToClient(client, sizeof(xQueryTextExtentsReply), &reply);
- return Success;
-}
-
-int
-ProcListFonts(ClientPtr client)
-{
- REQUEST(xListFontsReq);
-
- REQUEST_FIXED_SIZE(xListFontsReq, stuff->nbytes);
-
- return ListFonts(client, (unsigned char *) &stuff[1], stuff->nbytes,
- stuff->maxNames);
-}
-
-int
-ProcListFontsWithInfo(ClientPtr client)
-{
- REQUEST(xListFontsWithInfoReq);
-
- REQUEST_FIXED_SIZE(xListFontsWithInfoReq, stuff->nbytes);
-
- return StartListFontsWithInfo(client, stuff->nbytes,
- (unsigned char *) &stuff[1], stuff->maxNames);
-}
-
-/**
- *
- * \param value must conform to DeleteType
- */
-int
-dixDestroyPixmap(pointer value, XID pid)
-{
- PixmapPtr pPixmap = (PixmapPtr) value;
-
- return (*pPixmap->drawable.pScreen->DestroyPixmap) (pPixmap);
-}
-
-int
-ProcCreatePixmap(ClientPtr client)
-{
- PixmapPtr pMap;
- DrawablePtr pDraw;
-
- REQUEST(xCreatePixmapReq);
- DepthPtr pDepth;
- int i, rc;
-
- REQUEST_SIZE_MATCH(xCreatePixmapReq);
- client->errorValue = stuff->pid;
- LEGAL_NEW_RESOURCE(stuff->pid, client);
-
- rc = dixLookupDrawable(&pDraw, stuff->drawable, client, M_ANY,
- DixGetAttrAccess);
- if (rc != Success)
- return rc;
-
- if (!stuff->width || !stuff->height) {
- client->errorValue = 0;
- return BadValue;
- }
- if (stuff->width > 32767 || stuff->height > 32767) {
- /* It is allowed to try and allocate a pixmap which is larger than
- * 32767 in either dimension. However, all of the framebuffer code
- * is buggy and does not reliably draw to such big pixmaps, basically
- * because the Region data structure operates with signed shorts
- * for the rectangles in it.
- *
- * Furthermore, several places in the X server computes the
- * size in bytes of the pixmap and tries to store it in an
- * integer. This integer can overflow and cause the allocated size
- * to be much smaller.
- *
- * So, such big pixmaps are rejected here with a BadAlloc
- */
- return BadAlloc;
- }
- if (stuff->depth != 1) {
- pDepth = pDraw->pScreen->allowedDepths;
- for (i = 0; i < pDraw->pScreen->numDepths; i++, pDepth++)
- if (pDepth->depth == stuff->depth)
- goto CreatePmap;
- client->errorValue = stuff->depth;
- return BadValue;
- }
- CreatePmap:
- pMap = (PixmapPtr) (*pDraw->pScreen->CreatePixmap)
- (pDraw->pScreen, stuff->width, stuff->height, stuff->depth, 0);
- if (pMap) {
- pMap->drawable.serialNumber = NEXT_SERIAL_NUMBER;
- pMap->drawable.id = stuff->pid;
- /* security creation/labeling check */
- rc = XaceHook(XACE_RESOURCE_ACCESS, client, stuff->pid, RT_PIXMAP,
- pMap, RT_NONE, NULL, DixCreateAccess);
- if (rc != Success) {
- (*pDraw->pScreen->DestroyPixmap) (pMap);
- return rc;
- }
- if (AddResource(stuff->pid, RT_PIXMAP, (pointer) pMap))
- return Success;
- }
- return BadAlloc;
-}
-
-int
-ProcFreePixmap(ClientPtr client)
-{
- PixmapPtr pMap;
- int rc;
-
- REQUEST(xResourceReq);
- REQUEST_SIZE_MATCH(xResourceReq);
-
- rc = dixLookupResourceByType((pointer *) &pMap, stuff->id, RT_PIXMAP,
- client, DixDestroyAccess);
- if (rc == Success) {
- FreeResource(stuff->id, RT_NONE);
- return Success;
- }
- else {
- client->errorValue = stuff->id;
- return rc;
- }
-}
-
-int
-ProcCreateGC(ClientPtr client)
-{
- int error, rc;
- GC *pGC;
- DrawablePtr pDraw;
- unsigned len;
-
- REQUEST(xCreateGCReq);
-
- REQUEST_AT_LEAST_SIZE(xCreateGCReq);
- client->errorValue = stuff->gc;
- LEGAL_NEW_RESOURCE(stuff->gc, client);
- rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0,
- DixGetAttrAccess);
- if (rc != Success)
- return rc;
-
- len = client->req_len - bytes_to_int32(sizeof(xCreateGCReq));
- if (len != Ones(stuff->mask))
- return BadLength;
- pGC = (GC *) CreateGC(pDraw, stuff->mask, (XID *) &stuff[1], &error,
- stuff->gc, client);
- if (error != Success)
- return error;
- if (!AddResource(stuff->gc, RT_GC, (pointer) pGC))
- return BadAlloc;
- return Success;
-}
-
-int
-ProcChangeGC(ClientPtr client)
-{
- GC *pGC;
- int result;
- unsigned len;
-
- REQUEST(xChangeGCReq);
- REQUEST_AT_LEAST_SIZE(xChangeGCReq);
-
- result = dixLookupGC(&pGC, stuff->gc, client, DixSetAttrAccess);
- if (result != Success)
- return result;
-
- len = client->req_len - bytes_to_int32(sizeof(xChangeGCReq));
- if (len != Ones(stuff->mask))
- return BadLength;
-
- return ChangeGCXIDs(client, pGC, stuff->mask, (CARD32 *) &stuff[1]);
-}
-
-int
-ProcCopyGC(ClientPtr client)
-{
- GC *dstGC;
- GC *pGC;
- int result;
-
- REQUEST(xCopyGCReq);
- REQUEST_SIZE_MATCH(xCopyGCReq);
-
- result = dixLookupGC(&pGC, stuff->srcGC, client, DixGetAttrAccess);
- if (result != Success)
- return result;
- result = dixLookupGC(&dstGC, stuff->dstGC, client, DixSetAttrAccess);
- if (result != Success)
- return result;
- if ((dstGC->pScreen != pGC->pScreen) || (dstGC->depth != pGC->depth))
- return BadMatch;
- if (stuff->mask & ~GCAllBits) {
- client->errorValue = stuff->mask;
- return BadValue;
- }
- return CopyGC(pGC, dstGC, stuff->mask);
-}
-
-int
-ProcSetDashes(ClientPtr client)
-{
- GC *pGC;
- int result;
-
- REQUEST(xSetDashesReq);
-
- REQUEST_FIXED_SIZE(xSetDashesReq, stuff->nDashes);
- if (stuff->nDashes == 0) {
- client->errorValue = 0;
- return BadValue;
- }
-
- result = dixLookupGC(&pGC, stuff->gc, client, DixSetAttrAccess);
- if (result != Success)
- return result;
-
- /* If there's an error, either there's no sensible errorValue,
- * or there was a dash segment of 0. */
- client->errorValue = 0;
- return SetDashes(pGC, stuff->dashOffset, stuff->nDashes,
- (unsigned char *) &stuff[1]);
-}
-
-int
-ProcSetClipRectangles(ClientPtr client)
-{
- int nr, result;
- GC *pGC;
-
- REQUEST(xSetClipRectanglesReq);
-
- REQUEST_AT_LEAST_SIZE(xSetClipRectanglesReq);
- if ((stuff->ordering != Unsorted) && (stuff->ordering != YSorted) &&
- (stuff->ordering != YXSorted) && (stuff->ordering != YXBanded)) {
- client->errorValue = stuff->ordering;
- return BadValue;
- }
- result = dixLookupGC(&pGC, stuff->gc, client, DixSetAttrAccess);
- if (result != Success)
- return result;
-
- nr = (client->req_len << 2) - sizeof(xSetClipRectanglesReq);
- if (nr & 4)
- return BadLength;
- nr >>= 3;
- return SetClipRects(pGC, stuff->xOrigin, stuff->yOrigin,
- nr, (xRectangle *) &stuff[1], (int) stuff->ordering);
-}
-
-int
-ProcFreeGC(ClientPtr client)
-{
- GC *pGC;
- int rc;
-
- REQUEST(xResourceReq);
- REQUEST_SIZE_MATCH(xResourceReq);
-
- rc = dixLookupGC(&pGC, stuff->id, client, DixDestroyAccess);
- if (rc != Success)
- return rc;
-
- FreeResource(stuff->id, RT_NONE);
- return Success;
-}
-
-int
-ProcClearToBackground(ClientPtr client)
-{
- REQUEST(xClearAreaReq);
- WindowPtr pWin;
- int rc;
-
- REQUEST_SIZE_MATCH(xClearAreaReq);
- rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess);
- if (rc != Success)
- return rc;
- if (pWin->drawable.class == InputOnly) {
- client->errorValue = stuff->window;
- return BadMatch;
- }
- if ((stuff->exposures != xTrue) && (stuff->exposures != xFalse)) {
- client->errorValue = stuff->exposures;
- return BadValue;
- }
- (*pWin->drawable.pScreen->ClearToBackground) (pWin, stuff->x, stuff->y,
- stuff->width, stuff->height,
- (Bool) stuff->exposures);
- return Success;
-}
-
-int
-ProcCopyArea(ClientPtr client)
-{
- DrawablePtr pDst;
- DrawablePtr pSrc;
- GC *pGC;
-
- REQUEST(xCopyAreaReq);
- RegionPtr pRgn;
- int rc;
-
- REQUEST_SIZE_MATCH(xCopyAreaReq);
-
- VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pDst, DixWriteAccess);
- if (stuff->dstDrawable != stuff->srcDrawable) {
- rc = dixLookupDrawable(&pSrc, stuff->srcDrawable, client, 0,
- DixReadAccess);
- if (rc != Success)
- return rc;
- if ((pDst->pScreen != pSrc->pScreen) || (pDst->depth != pSrc->depth)) {
- client->errorValue = stuff->dstDrawable;
- return BadMatch;
- }
- }
- else
- pSrc = pDst;
-
- pRgn = (*pGC->ops->CopyArea) (pSrc, pDst, pGC, stuff->srcX, stuff->srcY,
- stuff->width, stuff->height,
- stuff->dstX, stuff->dstY);
- if (pGC->graphicsExposures) {
- (*pDst->pScreen->SendGraphicsExpose)
- (client, pRgn, stuff->dstDrawable, X_CopyArea, 0);
- if (pRgn)
- RegionDestroy(pRgn);
- }
-
- return Success;
-}
-
-int
-ProcCopyPlane(ClientPtr client)
-{
- DrawablePtr psrcDraw, pdstDraw;
- GC *pGC;
-
- REQUEST(xCopyPlaneReq);
- RegionPtr pRgn;
- int rc;
-
- REQUEST_SIZE_MATCH(xCopyPlaneReq);
-
- VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pdstDraw, DixWriteAccess);
- if (stuff->dstDrawable != stuff->srcDrawable) {
- rc = dixLookupDrawable(&psrcDraw, stuff->srcDrawable, client, 0,
- DixReadAccess);
- if (rc != Success)
- return rc;
-
- if (pdstDraw->pScreen != psrcDraw->pScreen) {
- client->errorValue = stuff->dstDrawable;
- return BadMatch;
- }
- }
- else
- psrcDraw = pdstDraw;
-
- /* Check to see if stuff->bitPlane has exactly ONE good bit set */
- if (stuff->bitPlane == 0 || (stuff->bitPlane & (stuff->bitPlane - 1)) ||
- (stuff->bitPlane > (1L << (psrcDraw->depth - 1)))) {
- client->errorValue = stuff->bitPlane;
- return BadValue;
- }
-
- pRgn =
- (*pGC->ops->CopyPlane) (psrcDraw, pdstDraw, pGC, stuff->srcX,
- stuff->srcY, stuff->width, stuff->height,
- stuff->dstX, stuff->dstY, stuff->bitPlane);
- if (pGC->graphicsExposures) {
- (*pdstDraw->pScreen->SendGraphicsExpose)
- (client, pRgn, stuff->dstDrawable, X_CopyPlane, 0);
- if (pRgn)
- RegionDestroy(pRgn);
- }
- return Success;
-}
-
-int
-ProcPolyPoint(ClientPtr client)
-{
- int npoint;
- GC *pGC;
- DrawablePtr pDraw;
-
- REQUEST(xPolyPointReq);
-
- REQUEST_AT_LEAST_SIZE(xPolyPointReq);
- if ((stuff->coordMode != CoordModeOrigin) &&
- (stuff->coordMode != CoordModePrevious)) {
- client->errorValue = stuff->coordMode;
- return BadValue;
- }
- VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
- npoint = bytes_to_int32((client->req_len << 2) - sizeof(xPolyPointReq));
- if (npoint)
- (*pGC->ops->PolyPoint) (pDraw, pGC, stuff->coordMode, npoint,
- (xPoint *) &stuff[1]);
- return Success;
-}
-
-int
-ProcPolyLine(ClientPtr client)
-{
- int npoint;
- GC *pGC;
- DrawablePtr pDraw;
-
- REQUEST(xPolyLineReq);
-
- REQUEST_AT_LEAST_SIZE(xPolyLineReq);
- if ((stuff->coordMode != CoordModeOrigin) &&
- (stuff->coordMode != CoordModePrevious)) {
- client->errorValue = stuff->coordMode;
- return BadValue;
- }
- VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
- npoint = bytes_to_int32((client->req_len << 2) - sizeof(xPolyLineReq));
- if (npoint > 1)
- (*pGC->ops->Polylines) (pDraw, pGC, stuff->coordMode, npoint,
- (DDXPointPtr) &stuff[1]);
- return Success;
-}
-
-int
-ProcPolySegment(ClientPtr client)
-{
- int nsegs;
- GC *pGC;
- DrawablePtr pDraw;
-
- REQUEST(xPolySegmentReq);
-
- REQUEST_AT_LEAST_SIZE(xPolySegmentReq);
- VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
- nsegs = (client->req_len << 2) - sizeof(xPolySegmentReq);
- if (nsegs & 4)
- return BadLength;
- nsegs >>= 3;
- if (nsegs)
- (*pGC->ops->PolySegment) (pDraw, pGC, nsegs, (xSegment *) &stuff[1]);
- return Success;
-}
-
-int
-ProcPolyRectangle(ClientPtr client)
-{
- int nrects;
- GC *pGC;
- DrawablePtr pDraw;
-
- REQUEST(xPolyRectangleReq);
-
- REQUEST_AT_LEAST_SIZE(xPolyRectangleReq);
- VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
- nrects = (client->req_len << 2) - sizeof(xPolyRectangleReq);
- if (nrects & 4)
- return BadLength;
- nrects >>= 3;
- if (nrects)
- (*pGC->ops->PolyRectangle) (pDraw, pGC,
- nrects, (xRectangle *) &stuff[1]);
- return Success;
-}
-
-int
-ProcPolyArc(ClientPtr client)
-{
- int narcs;
- GC *pGC;
- DrawablePtr pDraw;
-
- REQUEST(xPolyArcReq);
-
- REQUEST_AT_LEAST_SIZE(xPolyArcReq);
- VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
- narcs = (client->req_len << 2) - sizeof(xPolyArcReq);
- if (narcs % sizeof(xArc))
- return BadLength;
- narcs /= sizeof(xArc);
- if (narcs)
- (*pGC->ops->PolyArc) (pDraw, pGC, narcs, (xArc *) &stuff[1]);
- return Success;
-}
-
-int
-ProcFillPoly(ClientPtr client)
-{
- int things;
- GC *pGC;
- DrawablePtr pDraw;
-
- REQUEST(xFillPolyReq);
-
- REQUEST_AT_LEAST_SIZE(xFillPolyReq);
- if ((stuff->shape != Complex) && (stuff->shape != Nonconvex) &&
- (stuff->shape != Convex)) {
- client->errorValue = stuff->shape;
- return BadValue;
- }
- if ((stuff->coordMode != CoordModeOrigin) &&
- (stuff->coordMode != CoordModePrevious)) {
- client->errorValue = stuff->coordMode;
- return BadValue;
- }
-
- VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
- things = bytes_to_int32((client->req_len << 2) - sizeof(xFillPolyReq));
- if (things)
- (*pGC->ops->FillPolygon) (pDraw, pGC, stuff->shape,
- stuff->coordMode, things,
- (DDXPointPtr) &stuff[1]);
- return Success;
-}
-
-int
-ProcPolyFillRectangle(ClientPtr client)
-{
- int things;
- GC *pGC;
- DrawablePtr pDraw;
-
- REQUEST(xPolyFillRectangleReq);
-
- REQUEST_AT_LEAST_SIZE(xPolyFillRectangleReq);
- VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
- things = (client->req_len << 2) - sizeof(xPolyFillRectangleReq);
- if (things & 4)
- return BadLength;
- things >>= 3;
-
- if (things)
- (*pGC->ops->PolyFillRect) (pDraw, pGC, things,
- (xRectangle *) &stuff[1]);
- return Success;
-}
-
-int
-ProcPolyFillArc(ClientPtr client)
-{
- int narcs;
- GC *pGC;
- DrawablePtr pDraw;
-
- REQUEST(xPolyFillArcReq);
-
- REQUEST_AT_LEAST_SIZE(xPolyFillArcReq);
- VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
- narcs = (client->req_len << 2) - sizeof(xPolyFillArcReq);
- if (narcs % sizeof(xArc))
- return BadLength;
- narcs /= sizeof(xArc);
- if (narcs)
- (*pGC->ops->PolyFillArc) (pDraw, pGC, narcs, (xArc *) &stuff[1]);
- return Success;
-}
-
-#ifdef MATCH_CLIENT_ENDIAN
-
-int
-ServerOrder(void)
-{
- int whichbyte = 1;
-
- if (*((char *) &whichbyte))
- return LSBFirst;
- return MSBFirst;
-}
-
-#define ClientOrder(client) ((client)->swapped ? !ServerOrder() : ServerOrder())
-
-void
-ReformatImage(char *base, int nbytes, int bpp, int order)
-{
- switch (bpp) {
- case 1: /* yuck */
- if (BITMAP_BIT_ORDER != order)
- BitOrderInvert((unsigned char *) base, nbytes);
-#if IMAGE_BYTE_ORDER != BITMAP_BIT_ORDER && BITMAP_SCANLINE_UNIT != 8
- ReformatImage(base, nbytes, BITMAP_SCANLINE_UNIT, order);
-#endif
- break;
- case 4:
- break; /* yuck */
- case 8:
- break;
- case 16:
- if (IMAGE_BYTE_ORDER != order)
- TwoByteSwap((unsigned char *) base, nbytes);
- break;
- case 32:
- if (IMAGE_BYTE_ORDER != order)
- FourByteSwap((unsigned char *) base, nbytes);
- break;
- }
-}
-#else
-#define ReformatImage(b,n,bpp,o)
-#endif
-
-/* 64-bit server notes: the protocol restricts padding of images to
- * 8-, 16-, or 32-bits. We would like to have 64-bits for the server
- * to use internally. Removes need for internal alignment checking.
- * All of the PutImage functions could be changed individually, but
- * as currently written, they call other routines which require things
- * to be 64-bit padded on scanlines, so we changed things here.
- * If an image would be padded differently for 64- versus 32-, then
- * copy each scanline to a 64-bit padded scanline.
- * Also, we need to make sure that the image is aligned on a 64-bit
- * boundary, even if the scanlines are padded to our satisfaction.
- */
-int
-ProcPutImage(ClientPtr client)
-{
- GC *pGC;
- DrawablePtr pDraw;
- long length; /* length of scanline server padded */
- long lengthProto; /* length of scanline protocol padded */
- char *tmpImage;
-
- REQUEST(xPutImageReq);
-
- REQUEST_AT_LEAST_SIZE(xPutImageReq);
- VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
- if (stuff->format == XYBitmap) {
- if ((stuff->depth != 1) ||
- (stuff->leftPad >= (unsigned int) screenInfo.bitmapScanlinePad))
- return BadMatch;
- length = BitmapBytePad(stuff->width + stuff->leftPad);
- }
- else if (stuff->format == XYPixmap) {
- if ((pDraw->depth != stuff->depth) ||
- (stuff->leftPad >= (unsigned int) screenInfo.bitmapScanlinePad))
- return BadMatch;
- length = BitmapBytePad(stuff->width + stuff->leftPad);
- length *= stuff->depth;
- }
- else if (stuff->format == ZPixmap) {
- if ((pDraw->depth != stuff->depth) || (stuff->leftPad != 0))
- return BadMatch;
- length = PixmapBytePad(stuff->width, stuff->depth);
- }
- else {
- client->errorValue = stuff->format;
- return BadValue;
- }
-
- tmpImage = (char *) &stuff[1];
- lengthProto = length;
-
- if ((bytes_to_int32(lengthProto * stuff->height) +
- bytes_to_int32(sizeof(xPutImageReq))) != client->req_len)
- return BadLength;
-
- ReformatImage(tmpImage, lengthProto * stuff->height,
- stuff->format == ZPixmap ? BitsPerPixel(stuff->depth) : 1,
- ClientOrder(client));
-
- (*pGC->ops->PutImage) (pDraw, pGC, stuff->depth, stuff->dstX, stuff->dstY,
- stuff->width, stuff->height,
- stuff->leftPad, stuff->format, tmpImage);
-
- return Success;
-}
-
-static int
-DoGetImage(ClientPtr client, int format, Drawable drawable,
- int x, int y, int width, int height,
- Mask planemask)
-{
- DrawablePtr pDraw, pBoundingDraw;
- int nlines, linesPerBuf, rc;
- int linesDone;
-
- /* coordinates relative to the bounding drawable */
- int relx, rely;
- long widthBytesLine, length;
- Mask plane = 0;
- char *pBuf;
- xGetImageReply xgi;
- RegionPtr pVisibleRegion = NULL;
-
- if ((format != XYPixmap) && (format != ZPixmap)) {
- client->errorValue = format;
- return BadValue;
- }
- rc = dixLookupDrawable(&pDraw, drawable, client, 0, DixReadAccess);
- if (rc != Success)
- return rc;
-
- memset(&xgi, 0, sizeof(xGetImageReply));
-
- relx = x;
- rely = y;
-
- if (pDraw->type == DRAWABLE_WINDOW) {
- WindowPtr pWin = (WindowPtr) pDraw;
-
- /* "If the drawable is a window, the window must be viewable ... or a
- * BadMatch error results" */
- if (!pWin->viewable)
- return BadMatch;
-
- /* If the drawable is a window, the rectangle must be contained within
- * its bounds (including the border). */
- if (x < -wBorderWidth(pWin) ||
- x + width > wBorderWidth(pWin) + (int) pDraw->width ||
- y < -wBorderWidth(pWin) ||
- y + height > wBorderWidth(pWin) + (int) pDraw->height)
- return BadMatch;
-
- relx += pDraw->x;
- rely += pDraw->y;
-
- if (pDraw->pScreen->GetWindowPixmap) {
- PixmapPtr pPix = (*pDraw->pScreen->GetWindowPixmap) (pWin);
-
- pBoundingDraw = &pPix->drawable;
-#ifdef COMPOSITE
- relx -= pPix->screen_x;
- rely -= pPix->screen_y;
-#endif
- }
- else {
- pBoundingDraw = (DrawablePtr) pDraw->pScreen->root;
- }
-
- xgi.visual = wVisual(pWin);
- }
- else {
- pBoundingDraw = pDraw;
- xgi.visual = None;
- }
-
- /* "If the drawable is a pixmap, the given rectangle must be wholly
- * contained within the pixmap, or a BadMatch error results. If the
- * drawable is a window [...] it must be the case that if there were no
- * inferiors or overlapping windows, the specified rectangle of the window
- * would be fully visible on the screen and wholly contained within the
- * outside edges of the window, or a BadMatch error results."
- *
- * We relax the window case slightly to mean that the rectangle must exist
- * within the bounds of the window's backing pixmap. In particular, this
- * means that a GetImage request may succeed or fail with BadMatch depending
- * on whether any of its ancestor windows are redirected. */
- if (relx < 0 || relx + width > (int) pBoundingDraw->width ||
- rely < 0 || rely + height > (int) pBoundingDraw->height)
- return BadMatch;
-
- xgi.type = X_Reply;
- xgi.sequenceNumber = client->sequence;
- xgi.depth = pDraw->depth;
- if (format == ZPixmap) {
- widthBytesLine = PixmapBytePad(width, pDraw->depth);
- length = widthBytesLine * height;
-
- }
- else {
- widthBytesLine = BitmapBytePad(width);
- plane = ((Mask) 1) << (pDraw->depth - 1);
- /* only planes asked for */
- length = widthBytesLine * height *
- Ones(planemask & (plane | (plane - 1)));
-
- }
-
- xgi.length = length;
-
- xgi.length = bytes_to_int32(xgi.length);
- if (widthBytesLine == 0 || height == 0)
- linesPerBuf = 0;
- else if (widthBytesLine >= IMAGE_BUFSIZE)
- linesPerBuf = 1;
- else {
- linesPerBuf = IMAGE_BUFSIZE / widthBytesLine;
- if (linesPerBuf > height)
- linesPerBuf = height;
- }
- length = linesPerBuf * widthBytesLine;
- if (linesPerBuf < height) {
- /* we have to make sure intermediate buffers don't need padding */
- while ((linesPerBuf > 1) &&
- (length & ((1L << LOG2_BYTES_PER_SCANLINE_PAD) - 1))) {
- linesPerBuf--;
- length -= widthBytesLine;
- }
- while (length & ((1L << LOG2_BYTES_PER_SCANLINE_PAD) - 1)) {
- linesPerBuf++;
- length += widthBytesLine;
- }
- }
- if (!(pBuf = calloc(1, length)))
- return BadAlloc;
- WriteReplyToClient(client, sizeof(xGetImageReply), &xgi);
-
- if (pDraw->type == DRAWABLE_WINDOW) {
- pVisibleRegion = NotClippedByChildren((WindowPtr) pDraw);
- if (pVisibleRegion) {
- RegionTranslate(pVisibleRegion, -pDraw->x, -pDraw->y);
- }
- }
-
- if (linesPerBuf == 0) {
- /* nothing to do */
- }
- else if (format == ZPixmap) {
- linesDone = 0;
- while (height - linesDone > 0) {
- nlines = min(linesPerBuf, height - linesDone);
- (*pDraw->pScreen->GetImage) (pDraw,
- x,
- y + linesDone,
- width,
- nlines,
- format, planemask, (pointer) pBuf);
- if (pVisibleRegion)
- XaceCensorImage(client, pVisibleRegion, widthBytesLine,
- pDraw, x, y + linesDone, width,
- nlines, format, pBuf);
-
- /* Note that this is NOT a call to WriteSwappedDataToClient,
- as we do NOT byte swap */
- ReformatImage(pBuf, (int) (nlines * widthBytesLine),
- BitsPerPixel(pDraw->depth), ClientOrder(client));
-
- WriteToClient(client, (int) (nlines * widthBytesLine), pBuf);
- linesDone += nlines;
- }
- }
- else { /* XYPixmap */
-
- for (; plane; plane >>= 1) {
- if (planemask & plane) {
- linesDone = 0;
- while (height - linesDone > 0) {
- nlines = min(linesPerBuf, height - linesDone);
- (*pDraw->pScreen->GetImage) (pDraw,
- x,
- y + linesDone,
- width,
- nlines,
- format, plane, (pointer) pBuf);
- if (pVisibleRegion)
- XaceCensorImage(client, pVisibleRegion,
- widthBytesLine,
- pDraw, x, y + linesDone, width,
- nlines, format, pBuf);
-
- /* Note: NOT a call to WriteSwappedDataToClient,
- as we do NOT byte swap */
- ReformatImage(pBuf, (int) (nlines * widthBytesLine),
- 1, ClientOrder(client));
-
- WriteToClient(client, (int)(nlines * widthBytesLine), pBuf);
- linesDone += nlines;
- }
- }
- }
- }
- if (pVisibleRegion)
- RegionDestroy(pVisibleRegion);
- free(pBuf);
- return Success;
-}
-
-int
-ProcGetImage(ClientPtr client)
-{
- REQUEST(xGetImageReq);
-
- REQUEST_SIZE_MATCH(xGetImageReq);
-
- return DoGetImage(client, stuff->format, stuff->drawable,
- stuff->x, stuff->y,
- (int) stuff->width, (int) stuff->height,
- stuff->planeMask);
-}
-
-int
-ProcPolyText(ClientPtr client)
-{
- int err;
-
- REQUEST(xPolyTextReq);
- DrawablePtr pDraw;
- GC *pGC;
-
- REQUEST_AT_LEAST_SIZE(xPolyTextReq);
- VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
-
- err = PolyText(client,
- pDraw,
- pGC,
- (unsigned char *) &stuff[1],
- ((unsigned char *) stuff) + (client->req_len << 2),
- stuff->x, stuff->y, stuff->reqType, stuff->drawable);
-
- if (err == Success) {
- return Success;
- }
- else
- return err;
-}
-
-int
-ProcImageText8(ClientPtr client)
-{
- int err;
- DrawablePtr pDraw;
- GC *pGC;
-
- REQUEST(xImageTextReq);
-
- REQUEST_FIXED_SIZE(xImageTextReq, stuff->nChars);
- VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
-
- err = ImageText(client,
- pDraw,
- pGC,
- stuff->nChars,
- (unsigned char *) &stuff[1],
- stuff->x, stuff->y, stuff->reqType, stuff->drawable);
-
- if (err == Success) {
- return Success;
- }
- else
- return err;
-}
-
-int
-ProcImageText16(ClientPtr client)
-{
- int err;
- DrawablePtr pDraw;
- GC *pGC;
-
- REQUEST(xImageTextReq);
-
- REQUEST_FIXED_SIZE(xImageTextReq, stuff->nChars << 1);
- VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
-
- err = ImageText(client,
- pDraw,
- pGC,
- stuff->nChars,
- (unsigned char *) &stuff[1],
- stuff->x, stuff->y, stuff->reqType, stuff->drawable);
-
- if (err == Success) {
- return Success;
- }
- else
- return err;
-}
-
-int
-ProcCreateColormap(ClientPtr client)
-{
- VisualPtr pVisual;
- ColormapPtr pmap;
- Colormap mid;
- WindowPtr pWin;
- ScreenPtr pScreen;
-
- REQUEST(xCreateColormapReq);
- int i, result;
-
- REQUEST_SIZE_MATCH(xCreateColormapReq);
-
- if ((stuff->alloc != AllocNone) && (stuff->alloc != AllocAll)) {
- client->errorValue = stuff->alloc;
- return BadValue;
- }
- mid = stuff->mid;
- LEGAL_NEW_RESOURCE(mid, client);
- result = dixLookupWindow(&pWin, stuff->window, client, DixGetAttrAccess);
- if (result != Success)
- return result;
-
- pScreen = pWin->drawable.pScreen;
- for (i = 0, pVisual = pScreen->visuals;
- i < pScreen->numVisuals; i++, pVisual++) {
- if (pVisual->vid != stuff->visual)
- continue;
- return CreateColormap(mid, pScreen, pVisual, &pmap,
- (int) stuff->alloc, client->index);
- }
- client->errorValue = stuff->visual;
- return BadMatch;
-}
-
-int
-ProcFreeColormap(ClientPtr client)
-{
- ColormapPtr pmap;
- int rc;
-
- REQUEST(xResourceReq);
-
- REQUEST_SIZE_MATCH(xResourceReq);
- rc = dixLookupResourceByType((pointer *) &pmap, stuff->id, RT_COLORMAP,
- client, DixDestroyAccess);
- if (rc == Success) {
- /* Freeing a default colormap is a no-op */
- if (!(pmap->flags & IsDefault))
- FreeResource(stuff->id, RT_NONE);
- return Success;
- }
- else {
- client->errorValue = stuff->id;
- return rc;
- }
-}
-
-int
-ProcCopyColormapAndFree(ClientPtr client)
-{
- Colormap mid;
- ColormapPtr pSrcMap;
-
- REQUEST(xCopyColormapAndFreeReq);
- int rc;
-
- REQUEST_SIZE_MATCH(xCopyColormapAndFreeReq);
- mid = stuff->mid;
- LEGAL_NEW_RESOURCE(mid, client);
- rc = dixLookupResourceByType((pointer *) &pSrcMap, stuff->srcCmap,
- RT_COLORMAP, client,
- DixReadAccess | DixRemoveAccess);
- if (rc == Success)
- return CopyColormapAndFree(mid, pSrcMap, client->index);
- client->errorValue = stuff->srcCmap;
- return rc;
-}
-
-int
-ProcInstallColormap(ClientPtr client)
-{
- ColormapPtr pcmp;
- int rc;
-
- REQUEST(xResourceReq);
- REQUEST_SIZE_MATCH(xResourceReq);
-
- rc = dixLookupResourceByType((pointer *) &pcmp, stuff->id, RT_COLORMAP,
- client, DixInstallAccess);
- if (rc != Success)
- goto out;
-
- rc = XaceHook(XACE_SCREEN_ACCESS, client, pcmp->pScreen, DixSetAttrAccess);
- if (rc != Success) {
- if (rc == BadValue)
- rc = BadColor;
- goto out;
- }
-
- (*(pcmp->pScreen->InstallColormap)) (pcmp);
- return Success;
-
- out:
- client->errorValue = stuff->id;
- return rc;
-}
-
-int
-ProcUninstallColormap(ClientPtr client)
-{
- ColormapPtr pcmp;
- int rc;
-
- REQUEST(xResourceReq);
- REQUEST_SIZE_MATCH(xResourceReq);
-
- rc = dixLookupResourceByType((pointer *) &pcmp, stuff->id, RT_COLORMAP,
- client, DixUninstallAccess);
- if (rc != Success)
- goto out;
-
- rc = XaceHook(XACE_SCREEN_ACCESS, client, pcmp->pScreen, DixSetAttrAccess);
- if (rc != Success) {
- if (rc == BadValue)
- rc = BadColor;
- goto out;
- }
-
- if (pcmp->mid != pcmp->pScreen->defColormap)
- (*(pcmp->pScreen->UninstallColormap)) (pcmp);
- return Success;
-
- out:
- client->errorValue = stuff->id;
- return rc;
-}
-
-int
-ProcListInstalledColormaps(ClientPtr client)
-{
- xListInstalledColormapsReply *preply;
- int nummaps, rc;
- WindowPtr pWin;
-
- REQUEST(xResourceReq);
- REQUEST_SIZE_MATCH(xResourceReq);
-
- rc = dixLookupWindow(&pWin, stuff->id, client, DixGetAttrAccess);
- if (rc != Success)
- return rc;
-
- rc = XaceHook(XACE_SCREEN_ACCESS, client, pWin->drawable.pScreen,
- DixGetAttrAccess);
- if (rc != Success)
- return rc;
-
- preply = malloc(sizeof(xListInstalledColormapsReply) +
- pWin->drawable.pScreen->maxInstalledCmaps *
- sizeof(Colormap));
- if (!preply)
- return BadAlloc;
-
- preply->type = X_Reply;
- preply->sequenceNumber = client->sequence;
- nummaps = (*pWin->drawable.pScreen->ListInstalledColormaps)
- (pWin->drawable.pScreen, (Colormap *) &preply[1]);
- preply->nColormaps = nummaps;
- preply->length = nummaps;
- WriteReplyToClient(client, sizeof(xListInstalledColormapsReply), preply);
- client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write;
- WriteSwappedDataToClient(client, nummaps * sizeof(Colormap), &preply[1]);
- free(preply);
- return Success;
-}
-
-int
-ProcAllocColor(ClientPtr client)
-{
- ColormapPtr pmap;
- int rc;
-
- REQUEST(xAllocColorReq);
-
- REQUEST_SIZE_MATCH(xAllocColorReq);
- rc = dixLookupResourceByType((pointer *) &pmap, stuff->cmap, RT_COLORMAP,
- client, DixAddAccess);
- if (rc == Success) {
- xAllocColorReply acr = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .red = stuff->red,
- .green = stuff->green,
- .blue = stuff->blue,
- .pixel = 0
- };
- if ((rc = AllocColor(pmap, &acr.red, &acr.green, &acr.blue,
- &acr.pixel, client->index)))
- return rc;
-#ifdef PANORAMIX
- if (noPanoramiXExtension || !pmap->pScreen->myNum)
-#endif
- WriteReplyToClient(client, sizeof(xAllocColorReply), &acr);
- return Success;
-
- }
- else {
- client->errorValue = stuff->cmap;
- return rc;
- }
-}
-
-int
-ProcAllocNamedColor(ClientPtr client)
-{
- ColormapPtr pcmp;
- int rc;
-
- REQUEST(xAllocNamedColorReq);
-
- REQUEST_FIXED_SIZE(xAllocNamedColorReq, stuff->nbytes);
- rc = dixLookupResourceByType((pointer *) &pcmp, stuff->cmap, RT_COLORMAP,
- client, DixAddAccess);
- if (rc == Success) {
- xAllocNamedColorReply ancr = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0
- };
- if (OsLookupColor
- (pcmp->pScreen->myNum, (char *) &stuff[1], stuff->nbytes,
- &ancr.exactRed, &ancr.exactGreen, &ancr.exactBlue)) {
- ancr.screenRed = ancr.exactRed;
- ancr.screenGreen = ancr.exactGreen;
- ancr.screenBlue = ancr.exactBlue;
- ancr.pixel = 0;
- if ((rc = AllocColor(pcmp,
- &ancr.screenRed, &ancr.screenGreen,
- &ancr.screenBlue, &ancr.pixel, client->index)))
- return rc;
-#ifdef PANORAMIX
- if (noPanoramiXExtension || !pcmp->pScreen->myNum)
-#endif
- WriteReplyToClient(client, sizeof(xAllocNamedColorReply),
- &ancr);
- return Success;
- }
- else
- return BadName;
-
- }
- else {
- client->errorValue = stuff->cmap;
- return rc;
- }
-}
-
-int
-ProcAllocColorCells(ClientPtr client)
-{
- ColormapPtr pcmp;
- int rc;
-
- REQUEST(xAllocColorCellsReq);
-
- REQUEST_SIZE_MATCH(xAllocColorCellsReq);
- rc = dixLookupResourceByType((pointer *) &pcmp, stuff->cmap, RT_COLORMAP,
- client, DixAddAccess);
- if (rc == Success) {
- int npixels, nmasks;
- long length;
- Pixel *ppixels, *pmasks;
-
- npixels = stuff->colors;
- if (!npixels) {
- client->errorValue = npixels;
- return BadValue;
- }
- if (stuff->contiguous != xTrue && stuff->contiguous != xFalse) {
- client->errorValue = stuff->contiguous;
- return BadValue;
- }
- nmasks = stuff->planes;
- length = ((long) npixels + (long) nmasks) * sizeof(Pixel);
- ppixels = malloc(length);
- if (!ppixels)
- return BadAlloc;
- pmasks = ppixels + npixels;
-
- if ((rc = AllocColorCells(client->index, pcmp, npixels, nmasks,
- (Bool) stuff->contiguous, ppixels, pmasks))) {
- free(ppixels);
- return rc;
- }
-#ifdef PANORAMIX
- if (noPanoramiXExtension || !pcmp->pScreen->myNum)
-#endif
- {
- xAllocColorCellsReply accr = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(length),
- .nPixels = npixels,
- .nMasks = nmasks
- };
- WriteReplyToClient(client, sizeof(xAllocColorCellsReply), &accr);
- client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write;
- WriteSwappedDataToClient(client, length, ppixels);
- }
- free(ppixels);
- return Success;
- }
- else {
- client->errorValue = stuff->cmap;
- return rc;
- }
-}
-
-int
-ProcAllocColorPlanes(ClientPtr client)
-{
- ColormapPtr pcmp;
- int rc;
-
- REQUEST(xAllocColorPlanesReq);
-
- REQUEST_SIZE_MATCH(xAllocColorPlanesReq);
- rc = dixLookupResourceByType((pointer *) &pcmp, stuff->cmap, RT_COLORMAP,
- client, DixAddAccess);
- if (rc == Success) {
- xAllocColorPlanesReply acpr;
- int npixels;
- long length;
- Pixel *ppixels;
-
- npixels = stuff->colors;
- if (!npixels) {
- client->errorValue = npixels;
- return BadValue;
- }
- if (stuff->contiguous != xTrue && stuff->contiguous != xFalse) {
- client->errorValue = stuff->contiguous;
- return BadValue;
- }
- acpr = (xAllocColorPlanesReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .nPixels = npixels
- };
- length = (long) npixels *sizeof(Pixel);
-
- ppixels = malloc(length);
- if (!ppixels)
- return BadAlloc;
- if ((rc = AllocColorPlanes(client->index, pcmp, npixels,
- (int) stuff->red, (int) stuff->green,
- (int) stuff->blue, (Bool) stuff->contiguous,
- ppixels, &acpr.redMask, &acpr.greenMask,
- &acpr.blueMask))) {
- free(ppixels);
- return rc;
- }
- acpr.length = bytes_to_int32(length);
-#ifdef PANORAMIX
- if (noPanoramiXExtension || !pcmp->pScreen->myNum)
-#endif
- {
- WriteReplyToClient(client, sizeof(xAllocColorPlanesReply), &acpr);
- client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write;
- WriteSwappedDataToClient(client, length, ppixels);
- }
- free(ppixels);
- return Success;
- }
- else {
- client->errorValue = stuff->cmap;
- return rc;
- }
-}
-
-int
-ProcFreeColors(ClientPtr client)
-{
- ColormapPtr pcmp;
- int rc;
-
- REQUEST(xFreeColorsReq);
-
- REQUEST_AT_LEAST_SIZE(xFreeColorsReq);
- rc = dixLookupResourceByType((pointer *) &pcmp, stuff->cmap, RT_COLORMAP,
- client, DixRemoveAccess);
- if (rc == Success) {
- int count;
-
- if (pcmp->flags & AllAllocated)
- return BadAccess;
- count = bytes_to_int32((client->req_len << 2) - sizeof(xFreeColorsReq));
- return FreeColors(pcmp, client->index, count,
- (Pixel *) &stuff[1], (Pixel) stuff->planeMask);
- }
- else {
- client->errorValue = stuff->cmap;
- return rc;
- }
-}
-
-int
-ProcStoreColors(ClientPtr client)
-{
- ColormapPtr pcmp;
- int rc;
-
- REQUEST(xStoreColorsReq);
-
- REQUEST_AT_LEAST_SIZE(xStoreColorsReq);
- rc = dixLookupResourceByType((pointer *) &pcmp, stuff->cmap, RT_COLORMAP,
- client, DixWriteAccess);
- if (rc == Success) {
- int count;
-
- count = (client->req_len << 2) - sizeof(xStoreColorsReq);
- if (count % sizeof(xColorItem))
- return BadLength;
- count /= sizeof(xColorItem);
- return StoreColors(pcmp, count, (xColorItem *) &stuff[1], client);
- }
- else {
- client->errorValue = stuff->cmap;
- return rc;
- }
-}
-
-int
-ProcStoreNamedColor(ClientPtr client)
-{
- ColormapPtr pcmp;
- int rc;
-
- REQUEST(xStoreNamedColorReq);
-
- REQUEST_FIXED_SIZE(xStoreNamedColorReq, stuff->nbytes);
- rc = dixLookupResourceByType((pointer *) &pcmp, stuff->cmap, RT_COLORMAP,
- client, DixWriteAccess);
- if (rc == Success) {
- xColorItem def;
-
- if (OsLookupColor(pcmp->pScreen->myNum, (char *) &stuff[1],
- stuff->nbytes, &def.red, &def.green, &def.blue)) {
- def.flags = stuff->flags;
- def.pixel = stuff->pixel;
- return StoreColors(pcmp, 1, &def, client);
- }
- return BadName;
- }
- else {
- client->errorValue = stuff->cmap;
- return rc;
- }
-}
-
-int
-ProcQueryColors(ClientPtr client)
-{
- ColormapPtr pcmp;
- int rc;
-
- REQUEST(xQueryColorsReq);
-
- REQUEST_AT_LEAST_SIZE(xQueryColorsReq);
- rc = dixLookupResourceByType((pointer *) &pcmp, stuff->cmap, RT_COLORMAP,
- client, DixReadAccess);
- if (rc == Success) {
- int count;
- xrgb *prgbs;
- xQueryColorsReply qcr;
-
- count =
- bytes_to_int32((client->req_len << 2) - sizeof(xQueryColorsReq));
- prgbs = calloc(1, count * sizeof(xrgb));
- if (!prgbs && count)
- return BadAlloc;
- if ((rc =
- QueryColors(pcmp, count, (Pixel *) &stuff[1], prgbs, client))) {
- free(prgbs);
- return rc;
- }
- qcr = (xQueryColorsReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(count * sizeof(xrgb)),
- .nColors = count
- };
- WriteReplyToClient(client, sizeof(xQueryColorsReply), &qcr);
- if (count) {
- client->pSwapReplyFunc = (ReplySwapPtr) SQColorsExtend;
- WriteSwappedDataToClient(client, count * sizeof(xrgb), prgbs);
- }
- free(prgbs);
- return Success;
-
- }
- else {
- client->errorValue = stuff->cmap;
- return rc;
- }
-}
-
-int
-ProcLookupColor(ClientPtr client)
-{
- ColormapPtr pcmp;
- int rc;
-
- REQUEST(xLookupColorReq);
-
- REQUEST_FIXED_SIZE(xLookupColorReq, stuff->nbytes);
- rc = dixLookupResourceByType((pointer *) &pcmp, stuff->cmap, RT_COLORMAP,
- client, DixReadAccess);
- if (rc == Success) {
- CARD16 exactRed, exactGreen, exactBlue;
-
- if (OsLookupColor
- (pcmp->pScreen->myNum, (char *) &stuff[1], stuff->nbytes,
- &exactRed, &exactGreen, &exactBlue)) {
- xLookupColorReply lcr = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .exactRed = exactRed,
- .exactGreen = exactGreen,
- .exactBlue = exactBlue,
- .screenRed = exactRed,
- .screenGreen = exactGreen,
- .screenBlue = exactBlue
- };
- (*pcmp->pScreen->ResolveColor) (&lcr.screenRed,
- &lcr.screenGreen,
- &lcr.screenBlue, pcmp->pVisual);
- WriteReplyToClient(client, sizeof(xLookupColorReply), &lcr);
- return Success;
- }
- return BadName;
- }
- else {
- client->errorValue = stuff->cmap;
- return rc;
- }
-}
-
-int
-ProcCreateCursor(ClientPtr client)
-{
- CursorPtr pCursor;
- PixmapPtr src;
- PixmapPtr msk;
- unsigned char *srcbits;
- unsigned char *mskbits;
- unsigned short width, height;
- long n;
- CursorMetricRec cm;
- int rc;
-
- REQUEST(xCreateCursorReq);
-
- REQUEST_SIZE_MATCH(xCreateCursorReq);
- LEGAL_NEW_RESOURCE(stuff->cid, client);
-
- rc = dixLookupResourceByType((pointer *) &src, stuff->source, RT_PIXMAP,
- client, DixReadAccess);
- if (rc != Success) {
- client->errorValue = stuff->source;
- return rc;
- }
-
- if (src->drawable.depth != 1)
- return (BadMatch);
-
- /* Find and validate cursor mask pixmap, if one is provided */
- if (stuff->mask != None) {
- rc = dixLookupResourceByType((pointer *) &msk, stuff->mask, RT_PIXMAP,
- client, DixReadAccess);
- if (rc != Success) {
- client->errorValue = stuff->mask;
- return rc;
- }
-
- if (src->drawable.width != msk->drawable.width
- || src->drawable.height != msk->drawable.height
- || src->drawable.depth != 1 || msk->drawable.depth != 1)
- return BadMatch;
- }
- else
- msk = NULL;
-
- width = src->drawable.width;
- height = src->drawable.height;
-
- if (stuff->x > width || stuff->y > height)
- return BadMatch;
-
- n = BitmapBytePad(width) * height;
- srcbits = calloc(1, n);
- if (!srcbits)
- return BadAlloc;
- mskbits = malloc(n);
- if (!mskbits) {
- free(srcbits);
- return BadAlloc;
- }
-
- (*src->drawable.pScreen->GetImage) ((DrawablePtr) src, 0, 0, width, height,
- XYPixmap, 1, (pointer) srcbits);
- if (msk == (PixmapPtr) NULL) {
- unsigned char *bits = mskbits;
-
- while (--n >= 0)
- *bits++ = ~0;
- }
- else {
- /* zeroing the (pad) bits helps some ddx cursor handling */
- memset((char *) mskbits, 0, n);
- (*msk->drawable.pScreen->GetImage) ((DrawablePtr) msk, 0, 0, width,
- height, XYPixmap, 1,
- (pointer) mskbits);
- }
- cm.width = width;
- cm.height = height;
- cm.xhot = stuff->x;
- cm.yhot = stuff->y;
- rc = AllocARGBCursor(srcbits, mskbits, NULL, &cm,
- stuff->foreRed, stuff->foreGreen, stuff->foreBlue,
- stuff->backRed, stuff->backGreen, stuff->backBlue,
- &pCursor, client, stuff->cid);
-
- if (rc != Success)
- goto bail;
- if (!AddResource(stuff->cid, RT_CURSOR, (pointer) pCursor)) {
- rc = BadAlloc;
- goto bail;
- }
-
- return Success;
- bail:
- free(srcbits);
- free(mskbits);
- return rc;
-}
-
-int
-ProcCreateGlyphCursor(ClientPtr client)
-{
- CursorPtr pCursor;
- int res;
-
- REQUEST(xCreateGlyphCursorReq);
-
- REQUEST_SIZE_MATCH(xCreateGlyphCursorReq);
- LEGAL_NEW_RESOURCE(stuff->cid, client);
-
- res = AllocGlyphCursor(stuff->source, stuff->sourceChar,
- stuff->mask, stuff->maskChar,
- stuff->foreRed, stuff->foreGreen, stuff->foreBlue,
- stuff->backRed, stuff->backGreen, stuff->backBlue,
- &pCursor, client, stuff->cid);
- if (res != Success)
- return res;
- if (AddResource(stuff->cid, RT_CURSOR, (pointer) pCursor))
- return Success;
- return BadAlloc;
-}
-
-int
-ProcFreeCursor(ClientPtr client)
-{
- CursorPtr pCursor;
- int rc;
-
- REQUEST(xResourceReq);
-
- REQUEST_SIZE_MATCH(xResourceReq);
- rc = dixLookupResourceByType((pointer *) &pCursor, stuff->id, RT_CURSOR,
- client, DixDestroyAccess);
- if (rc == Success) {
- FreeResource(stuff->id, RT_NONE);
- return Success;
- }
- else {
- client->errorValue = stuff->id;
- return rc;
- }
-}
-
-int
-ProcQueryBestSize(ClientPtr client)
-{
- xQueryBestSizeReply reply;
- DrawablePtr pDraw;
- ScreenPtr pScreen;
- int rc;
-
- REQUEST(xQueryBestSizeReq);
- REQUEST_SIZE_MATCH(xQueryBestSizeReq);
-
- if ((stuff->class != CursorShape) &&
- (stuff->class != TileShape) && (stuff->class != StippleShape)) {
- client->errorValue = stuff->class;
- return BadValue;
- }
-
- rc = dixLookupDrawable(&pDraw, stuff->drawable, client, M_ANY,
- DixGetAttrAccess);
- if (rc != Success)
- return rc;
- if (stuff->class != CursorShape && pDraw->type == UNDRAWABLE_WINDOW)
- return BadMatch;
- pScreen = pDraw->pScreen;
- rc = XaceHook(XACE_SCREEN_ACCESS, client, pScreen, DixGetAttrAccess);
- if (rc != Success)
- return rc;
- (*pScreen->QueryBestSize) (stuff->class, &stuff->width,
- &stuff->height, pScreen);
- reply = (xQueryBestSizeReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .width = stuff->width,
- .height = stuff->height
- };
- WriteReplyToClient(client, sizeof(xQueryBestSizeReply), &reply);
- return Success;
-}
-
-int
-ProcSetScreenSaver(ClientPtr client)
-{
- int rc, i, blankingOption, exposureOption;
-
- REQUEST(xSetScreenSaverReq);
- REQUEST_SIZE_MATCH(xSetScreenSaverReq);
-
- for (i = 0; i < screenInfo.numScreens; i++) {
- rc = XaceHook(XACE_SCREENSAVER_ACCESS, client, screenInfo.screens[i],
- DixSetAttrAccess);
- if (rc != Success)
- return rc;
- }
-
- blankingOption = stuff->preferBlank;
- if ((blankingOption != DontPreferBlanking) &&
- (blankingOption != PreferBlanking) &&
- (blankingOption != DefaultBlanking)) {
- client->errorValue = blankingOption;
- return BadValue;
- }
- exposureOption = stuff->allowExpose;
- if ((exposureOption != DontAllowExposures) &&
- (exposureOption != AllowExposures) &&
- (exposureOption != DefaultExposures)) {
- client->errorValue = exposureOption;
- return BadValue;
- }
- if (stuff->timeout < -1) {
- client->errorValue = stuff->timeout;
- return BadValue;
- }
- if (stuff->interval < -1) {
- client->errorValue = stuff->interval;
- return BadValue;
- }
-
- if (blankingOption == DefaultBlanking)
- ScreenSaverBlanking = defaultScreenSaverBlanking;
- else
- ScreenSaverBlanking = blankingOption;
- if (exposureOption == DefaultExposures)
- ScreenSaverAllowExposures = defaultScreenSaverAllowExposures;
- else
- ScreenSaverAllowExposures = exposureOption;
-
- if (stuff->timeout >= 0)
- ScreenSaverTime = stuff->timeout * MILLI_PER_SECOND;
- else
- ScreenSaverTime = defaultScreenSaverTime;
- if (stuff->interval >= 0)
- ScreenSaverInterval = stuff->interval * MILLI_PER_SECOND;
- else
- ScreenSaverInterval = defaultScreenSaverInterval;
-
- SetScreenSaverTimer();
- return Success;
-}
-
-int
-ProcGetScreenSaver(ClientPtr client)
-{
- xGetScreenSaverReply rep;
- int rc, i;
-
- REQUEST_SIZE_MATCH(xReq);
-
- for (i = 0; i < screenInfo.numScreens; i++) {
- rc = XaceHook(XACE_SCREENSAVER_ACCESS, client, screenInfo.screens[i],
- DixGetAttrAccess);
- if (rc != Success)
- return rc;
- }
-
- rep = (xGetScreenSaverReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .timeout = ScreenSaverTime / MILLI_PER_SECOND,
- .interval = ScreenSaverInterval / MILLI_PER_SECOND,
- .preferBlanking = ScreenSaverBlanking,
- .allowExposures = ScreenSaverAllowExposures
- };
- WriteReplyToClient(client, sizeof(xGetScreenSaverReply), &rep);
- return Success;
-}
-
-int
-ProcChangeHosts(ClientPtr client)
-{
- REQUEST(xChangeHostsReq);
-
- REQUEST_FIXED_SIZE(xChangeHostsReq, stuff->hostLength);
-
- if (stuff->mode == HostInsert)
- return AddHost(client, (int) stuff->hostFamily,
- stuff->hostLength, (pointer) &stuff[1]);
- if (stuff->mode == HostDelete)
- return RemoveHost(client, (int) stuff->hostFamily,
- stuff->hostLength, (pointer) &stuff[1]);
- client->errorValue = stuff->mode;
- return BadValue;
-}
-
-int
-ProcListHosts(ClientPtr client)
-{
- xListHostsReply reply;
- int len, nHosts, result;
- BOOL enabled;
- pointer pdata;
-
- /* REQUEST(xListHostsReq); */
-
- REQUEST_SIZE_MATCH(xListHostsReq);
-
- /* untrusted clients can't list hosts */
- result = XaceHook(XACE_SERVER_ACCESS, client, DixReadAccess);
- if (result != Success)
- return result;
-
- result = GetHosts(&pdata, &nHosts, &len, &enabled);
- if (result != Success)
- return result;
-
- reply = (xListHostsReply) {
- .type = X_Reply,
- .enabled = enabled,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(len),
- .nHosts = nHosts
- };
- WriteReplyToClient(client, sizeof(xListHostsReply), &reply);
- if (nHosts) {
- client->pSwapReplyFunc = (ReplySwapPtr) SLHostsExtend;
- WriteSwappedDataToClient(client, len, pdata);
- }
- free(pdata);
- return Success;
-}
-
-int
-ProcChangeAccessControl(ClientPtr client)
-{
- REQUEST(xSetAccessControlReq);
-
- REQUEST_SIZE_MATCH(xSetAccessControlReq);
- if ((stuff->mode != EnableAccess) && (stuff->mode != DisableAccess)) {
- client->errorValue = stuff->mode;
- return BadValue;
- }
- return ChangeAccessControl(client, stuff->mode == EnableAccess);
-}
-
-/*********************
- * CloseDownRetainedResources
- *
- * Find all clients that are gone and have terminated in RetainTemporary
- * and destroy their resources.
- *********************/
-
-static void
-CloseDownRetainedResources(void)
-{
- int i;
- ClientPtr client;
-
- for (i = 1; i < currentMaxClients; i++) {
- client = clients[i];
- if (client && (client->closeDownMode == RetainTemporary)
- && (client->clientGone))
- CloseDownClient(client);
- }
-}
-
-int
-ProcKillClient(ClientPtr client)
-{
- REQUEST(xResourceReq);
- ClientPtr killclient;
- int rc;
-
- REQUEST_SIZE_MATCH(xResourceReq);
- if (stuff->id == AllTemporary) {
- CloseDownRetainedResources();
- return Success;
- }
-
- rc = dixLookupClient(&killclient, stuff->id, client, DixDestroyAccess);
- if (rc == Success) {
- CloseDownClient(killclient);
- /* if an LBX proxy gets killed, isItTimeToYield will be set */
- if (isItTimeToYield || (client == killclient)) {
- /* force yield and return Success, so that Dispatch()
- * doesn't try to touch client
- */
- isItTimeToYield = TRUE;
- return Success;
- }
- return Success;
- }
- else
- return rc;
-}
-
-int
-ProcSetFontPath(ClientPtr client)
-{
- unsigned char *ptr;
- unsigned long nbytes, total;
- long nfonts;
- int n;
-
- REQUEST(xSetFontPathReq);
-
- REQUEST_AT_LEAST_SIZE(xSetFontPathReq);
-
- nbytes = (client->req_len << 2) - sizeof(xSetFontPathReq);
- total = nbytes;
- ptr = (unsigned char *) &stuff[1];
- nfonts = stuff->nFonts;
- while (--nfonts >= 0) {
- if ((total == 0) || (total < (n = (*ptr + 1))))
- return BadLength;
- total -= n;
- ptr += n;
- }
- if (total >= 4)
- return BadLength;
- return SetFontPath(client, stuff->nFonts, (unsigned char *) &stuff[1]);
-}
-
-int
-ProcGetFontPath(ClientPtr client)
-{
- xGetFontPathReply reply;
- int rc, stringLens, numpaths;
- unsigned char *bufferStart;
-
- /* REQUEST (xReq); */
-
- REQUEST_SIZE_MATCH(xReq);
- rc = GetFontPath(client, &numpaths, &stringLens, &bufferStart);
- if (rc != Success)
- return rc;
-
- reply = (xGetFontPathReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(stringLens + numpaths),
- .nPaths = numpaths
- };
-
- WriteReplyToClient(client, sizeof(xGetFontPathReply), &reply);
- if (stringLens || numpaths)
- WriteToClient(client, stringLens + numpaths, bufferStart);
- return Success;
-}
-
-int
-ProcChangeCloseDownMode(ClientPtr client)
-{
- int rc;
-
- REQUEST(xSetCloseDownModeReq);
- REQUEST_SIZE_MATCH(xSetCloseDownModeReq);
-
- rc = XaceHook(XACE_CLIENT_ACCESS, client, client, DixManageAccess);
- if (rc != Success)
- return rc;
-
- if ((stuff->mode == AllTemporary) ||
- (stuff->mode == RetainPermanent) || (stuff->mode == RetainTemporary)) {
- client->closeDownMode = stuff->mode;
- return Success;
- }
- else {
- client->errorValue = stuff->mode;
- return BadValue;
- }
-}
-
-int
-ProcForceScreenSaver(ClientPtr client)
-{
- int rc;
-
- REQUEST(xForceScreenSaverReq);
-
- REQUEST_SIZE_MATCH(xForceScreenSaverReq);
-
- if ((stuff->mode != ScreenSaverReset) && (stuff->mode != ScreenSaverActive)) {
- client->errorValue = stuff->mode;
- return BadValue;
- }
- rc = dixSaveScreens(client, SCREEN_SAVER_FORCER, (int) stuff->mode);
- if (rc != Success)
- return rc;
- return Success;
-}
-
-int
-ProcNoOperation(ClientPtr client)
-{
- REQUEST_AT_LEAST_SIZE(xReq);
-
- /* noop -- don't do anything */
- return Success;
-}
-
-/**********************
- * CloseDownClient
- *
- * Client can either mark his resources destroy or retain. If retained and
- * then killed again, the client is really destroyed.
- *********************/
-
-char dispatchExceptionAtReset = DE_RESET;
-
-void
-CloseDownClient(ClientPtr client)
-{
- Bool really_close_down = client->clientGone ||
- client->closeDownMode == DestroyAll;
-
- if (!client->clientGone) {
- /* ungrab server if grabbing client dies */
- if (grabState != GrabNone && grabClient == client) {
- UngrabServer(client);
- }
- BITCLEAR(grabWaiters, client->index);
- DeleteClientFromAnySelections(client);
- ReleaseActiveGrabs(client);
- DeleteClientFontStuff(client);
- if (!really_close_down) {
- /* This frees resources that should never be retained
- * no matter what the close down mode is. Actually we
- * could do this unconditionally, but it's probably
- * better not to traverse all the client's resources
- * twice (once here, once a few lines down in
- * FreeClientResources) in the common case of
- * really_close_down == TRUE.
- */
- FreeClientNeverRetainResources(client);
- client->clientState = ClientStateRetained;
- if (ClientStateCallback) {
- NewClientInfoRec clientinfo;
-
- clientinfo.client = client;
- clientinfo.prefix = (xConnSetupPrefix *) NULL;
- clientinfo.setup = (xConnSetup *) NULL;
- CallCallbacks((&ClientStateCallback), (pointer) &clientinfo);
- }
- }
- client->clientGone = TRUE; /* so events aren't sent to client */
- if (ClientIsAsleep(client))
- ClientSignal(client);
- ProcessWorkQueueZombies();
- CloseDownConnection(client);
-
- /* If the client made it to the Running stage, nClients has
- * been incremented on its behalf, so we need to decrement it
- * now. If it hasn't gotten to Running, nClients has *not*
- * been incremented, so *don't* decrement it.
- */
- if (client->clientState != ClientStateInitial) {
- --nClients;
- }
- }
-
- if (really_close_down) {
- if (client->clientState == ClientStateRunning && nClients == 0)
- dispatchException |= dispatchExceptionAtReset;
-
- client->clientState = ClientStateGone;
- if (ClientStateCallback) {
- NewClientInfoRec clientinfo;
-
- clientinfo.client = client;
- clientinfo.prefix = (xConnSetupPrefix *) NULL;
- clientinfo.setup = (xConnSetup *) NULL;
- CallCallbacks((&ClientStateCallback), (pointer) &clientinfo);
- }
- TouchListenerGone(client->clientAsMask);
- FreeClientResources(client);
- /* Disable client ID tracking. This must be done after
- * ClientStateCallback. */
- ReleaseClientIds(client);
-#ifdef XSERVER_DTRACE
- XSERVER_CLIENT_DISCONNECT(client->index);
-#endif
- if (client->index < nextFreeClientID)
- nextFreeClientID = client->index;
- clients[client->index] = NullClient;
- SmartLastClient = NullClient;
- dixFreeObjectWithPrivates(client, PRIVATE_CLIENT);
-
- while (!clients[currentMaxClients - 1])
- currentMaxClients--;
- }
-}
-
-static void
-KillAllClients(void)
-{
- int i;
-
- for (i = 1; i < currentMaxClients; i++)
- if (clients[i]) {
- /* Make sure Retained clients are released. */
- clients[i]->closeDownMode = DestroyAll;
- CloseDownClient(clients[i]);
- }
-}
-
-void
-InitClient(ClientPtr client, int i, pointer ospriv)
-{
- client->index = i;
- client->clientAsMask = ((Mask) i) << CLIENTOFFSET;
- client->closeDownMode = i ? DestroyAll : RetainPermanent;
- client->requestVector = InitialVector;
- client->osPrivate = ospriv;
- QueryMinMaxKeyCodes(&client->minKC, &client->maxKC);
- client->smart_start_tick = SmartScheduleTime;
- client->smart_stop_tick = SmartScheduleTime;
- client->smart_check_tick = SmartScheduleTime;
- client->clientIds = NULL;
-}
-
-/************************
- * int NextAvailableClient(ospriv)
- *
- * OS dependent portion can't assign client id's because of CloseDownModes.
- * Returns NULL if there are no free clients.
- *************************/
-
-ClientPtr
-NextAvailableClient(pointer ospriv)
-{
- int i;
- ClientPtr client;
- xReq data;
-
- i = nextFreeClientID;
- if (i == MAXCLIENTS)
- return (ClientPtr) NULL;
- clients[i] = client =
- dixAllocateObjectWithPrivates(ClientRec, PRIVATE_CLIENT);
- if (!client)
- return (ClientPtr) NULL;
- InitClient(client, i, ospriv);
- if (!InitClientResources(client)) {
- dixFreeObjectWithPrivates(client, PRIVATE_CLIENT);
- return (ClientPtr) NULL;
- }
- data.reqType = 1;
- data.length = bytes_to_int32(sz_xReq + sz_xConnClientPrefix);
- if (!InsertFakeRequest(client, (char *) &data, sz_xReq)) {
- FreeClientResources(client);
- dixFreeObjectWithPrivates(client, PRIVATE_CLIENT);
- return (ClientPtr) NULL;
- }
- if (i == currentMaxClients)
- currentMaxClients++;
- while ((nextFreeClientID < MAXCLIENTS) && clients[nextFreeClientID])
- nextFreeClientID++;
-
- /* Enable client ID tracking. This must be done before
- * ClientStateCallback. */
- ReserveClientIds(client);
-
- if (ClientStateCallback) {
- NewClientInfoRec clientinfo;
-
- clientinfo.client = client;
- clientinfo.prefix = (xConnSetupPrefix *) NULL;
- clientinfo.setup = (xConnSetup *) NULL;
- CallCallbacks((&ClientStateCallback), (pointer) &clientinfo);
- }
- return client;
-}
-
-int
-ProcInitialConnection(ClientPtr client)
-{
- REQUEST(xReq);
- xConnClientPrefix *prefix;
- int whichbyte = 1;
- char order;
-
- prefix = (xConnClientPrefix *) ((char *)stuff + sz_xReq);
- order = prefix->byteOrder;
- if (order != 'l' && order != 'B' && order != 'r' && order != 'R')
- return client->noClientException = -1;
- if (((*(char *) &whichbyte) && (order == 'B' || order == 'R')) ||
- (!(*(char *) &whichbyte) && (order == 'l' || order == 'r'))) {
- client->swapped = TRUE;
- SwapConnClientPrefix(prefix);
- }
- stuff->reqType = 2;
- stuff->length += bytes_to_int32(prefix->nbytesAuthProto) +
- bytes_to_int32(prefix->nbytesAuthString);
- if (client->swapped) {
- swaps(&stuff->length);
- }
- if (order == 'r' || order == 'R') {
- client->local = FALSE;
- }
- ResetCurrentRequest(client);
- return Success;
-}
-
-static int
-SendConnSetup(ClientPtr client, const char *reason)
-{
- xWindowRoot *root;
- int i;
- int numScreens;
- char *lConnectionInfo;
- xConnSetupPrefix *lconnSetupPrefix;
-
- if (reason) {
- xConnSetupPrefix csp;
-
- csp.success = xFalse;
- csp.lengthReason = strlen(reason);
- csp.length = bytes_to_int32(csp.lengthReason);
- csp.majorVersion = X_PROTOCOL;
- csp.minorVersion = X_PROTOCOL_REVISION;
- if (client->swapped)
- WriteSConnSetupPrefix(client, &csp);
- else
- WriteToClient(client, sz_xConnSetupPrefix, &csp);
- WriteToClient(client, (int) csp.lengthReason, reason);
- return client->noClientException = -1;
- }
-
- numScreens = screenInfo.numScreens;
- lConnectionInfo = ConnectionInfo;
- lconnSetupPrefix = &connSetupPrefix;
-
- /* We're about to start speaking X protocol back to the client by
- * sending the connection setup info. This means the authorization
- * step is complete, and we can count the client as an
- * authorized one.
- */
- nClients++;
-
- client->requestVector = client->swapped ? SwappedProcVector : ProcVector;
- client->sequence = 0;
- ((xConnSetup *) lConnectionInfo)->ridBase = client->clientAsMask;
- ((xConnSetup *) lConnectionInfo)->ridMask = RESOURCE_ID_MASK;
-#ifdef MATCH_CLIENT_ENDIAN
- ((xConnSetup *) lConnectionInfo)->imageByteOrder = ClientOrder(client);
- ((xConnSetup *) lConnectionInfo)->bitmapBitOrder = ClientOrder(client);
-#endif
- /* fill in the "currentInputMask" */
- root = (xWindowRoot *) (lConnectionInfo + connBlockScreenStart);
-#ifdef PANORAMIX
- if (noPanoramiXExtension)
- numScreens = screenInfo.numScreens;
- else
- numScreens = ((xConnSetup *) ConnectionInfo)->numRoots;
-#endif
-
- for (i = 0; i < numScreens; i++) {
- unsigned int j;
- xDepth *pDepth;
- WindowPtr pRoot = screenInfo.screens[i]->root;
-
- root->currentInputMask = pRoot->eventMask | wOtherEventMasks(pRoot);
- pDepth = (xDepth *) (root + 1);
- for (j = 0; j < root->nDepths; j++) {
- pDepth = (xDepth *) (((char *) (pDepth + 1)) +
- pDepth->nVisuals * sizeof(xVisualType));
- }
- root = (xWindowRoot *) pDepth;
- }
-
- if (client->swapped) {
- WriteSConnSetupPrefix(client, lconnSetupPrefix);
- WriteSConnectionInfo(client,
- (unsigned long) (lconnSetupPrefix->length << 2),
- lConnectionInfo);
- }
- else {
- WriteToClient(client, sizeof(xConnSetupPrefix), lconnSetupPrefix);
- WriteToClient(client, (int) (lconnSetupPrefix->length << 2),
- lConnectionInfo);
- }
- client->clientState = ClientStateRunning;
- if (ClientStateCallback) {
- NewClientInfoRec clientinfo;
-
- clientinfo.client = client;
- clientinfo.prefix = lconnSetupPrefix;
- clientinfo.setup = (xConnSetup *) lConnectionInfo;
- CallCallbacks((&ClientStateCallback), (pointer) &clientinfo);
- }
- return Success;
-}
-
-int
-ProcEstablishConnection(ClientPtr client)
-{
- const char *reason;
- char *auth_proto, *auth_string;
- xConnClientPrefix *prefix;
-
- REQUEST(xReq);
-
- prefix = (xConnClientPrefix *) ((char *) stuff + sz_xReq);
- auth_proto = (char *) prefix + sz_xConnClientPrefix;
- auth_string = auth_proto + pad_to_int32(prefix->nbytesAuthProto);
- if ((prefix->majorVersion != X_PROTOCOL) ||
- (prefix->minorVersion != X_PROTOCOL_REVISION))
- reason = "Protocol version mismatch";
- else
- reason = ClientAuthorized(client,
- (unsigned short) prefix->nbytesAuthProto,
- auth_proto,
- (unsigned short) prefix->nbytesAuthString,
- auth_string);
-
- return (SendConnSetup(client, reason));
-}
-
-void
-SendErrorToClient(ClientPtr client, unsigned majorCode, unsigned minorCode,
- XID resId, int errorCode)
-{
- xError rep = {
- .type = X_Error,
- .errorCode = errorCode,
- .resourceID = resId,
- .minorCode = minorCode,
- .majorCode = majorCode
- };
-
- WriteEventsToClient(client, 1, (xEvent *) &rep);
-}
-
-void
-MarkClientException(ClientPtr client)
-{
- client->noClientException = -1;
-}
-
-/*
- * This array encodes the answer to the question "what is the log base 2
- * of the number of pixels that fit in a scanline pad unit?"
- * Note that ~0 is an invalid entry (mostly for the benefit of the reader).
- */
-static int answer[6][4] = {
- /* pad pad pad pad */
- /* 8 16 32 64 */
-
- {3, 4, 5, 6}, /* 1 bit per pixel */
- {1, 2, 3, 4}, /* 4 bits per pixel */
- {0, 1, 2, 3}, /* 8 bits per pixel */
- {~0, 0, 1, 2}, /* 16 bits per pixel */
- {~0, ~0, 0, 1}, /* 24 bits per pixel */
- {~0, ~0, 0, 1} /* 32 bits per pixel */
-};
-
-/*
- * This array gives the answer to the question "what is the first index for
- * the answer array above given the number of bits per pixel?"
- * Note that ~0 is an invalid entry (mostly for the benefit of the reader).
- */
-static int indexForBitsPerPixel[33] = {
- ~0, 0, ~0, ~0, /* 1 bit per pixel */
- 1, ~0, ~0, ~0, /* 4 bits per pixel */
- 2, ~0, ~0, ~0, /* 8 bits per pixel */
- ~0, ~0, ~0, ~0,
- 3, ~0, ~0, ~0, /* 16 bits per pixel */
- ~0, ~0, ~0, ~0,
- 4, ~0, ~0, ~0, /* 24 bits per pixel */
- ~0, ~0, ~0, ~0,
- 5 /* 32 bits per pixel */
-};
-
-/*
- * This array gives the bytesperPixel value for cases where the number
- * of bits per pixel is a multiple of 8 but not a power of 2.
- */
-static int answerBytesPerPixel[33] = {
- ~0, 0, ~0, ~0, /* 1 bit per pixel */
- 0, ~0, ~0, ~0, /* 4 bits per pixel */
- 0, ~0, ~0, ~0, /* 8 bits per pixel */
- ~0, ~0, ~0, ~0,
- 0, ~0, ~0, ~0, /* 16 bits per pixel */
- ~0, ~0, ~0, ~0,
- 3, ~0, ~0, ~0, /* 24 bits per pixel */
- ~0, ~0, ~0, ~0,
- 0 /* 32 bits per pixel */
-};
-
-/*
- * This array gives the answer to the question "what is the second index for
- * the answer array above given the number of bits per scanline pad unit?"
- * Note that ~0 is an invalid entry (mostly for the benefit of the reader).
- */
-static int indexForScanlinePad[65] = {
- ~0, ~0, ~0, ~0,
- ~0, ~0, ~0, ~0,
- 0, ~0, ~0, ~0, /* 8 bits per scanline pad unit */
- ~0, ~0, ~0, ~0,
- 1, ~0, ~0, ~0, /* 16 bits per scanline pad unit */
- ~0, ~0, ~0, ~0,
- ~0, ~0, ~0, ~0,
- ~0, ~0, ~0, ~0,
- 2, ~0, ~0, ~0, /* 32 bits per scanline pad unit */
- ~0, ~0, ~0, ~0,
- ~0, ~0, ~0, ~0,
- ~0, ~0, ~0, ~0,
- ~0, ~0, ~0, ~0,
- ~0, ~0, ~0, ~0,
- ~0, ~0, ~0, ~0,
- ~0, ~0, ~0, ~0,
- 3 /* 64 bits per scanline pad unit */
-};
-
-/*
- grow the array of screenRecs if necessary.
- call the device-supplied initialization procedure
-with its screen number, a pointer to its ScreenRec, argc, and argv.
- return the number of successfully installed screens.
-
-*/
-
-static int init_screen(ScreenPtr pScreen, int i, Bool gpu)
-{
- int scanlinepad, format, depth, bitsPerPixel, j, k;
-
- dixInitScreenSpecificPrivates(pScreen);
-
- if (!dixAllocatePrivates(&pScreen->devPrivates, PRIVATE_SCREEN)) {
- return -1;
- }
- pScreen->myNum = i;
- if (gpu) {
- pScreen->myNum += GPU_SCREEN_OFFSET;
- pScreen->isGPU = TRUE;
- }
- pScreen->totalPixmapSize = 0; /* computed in CreateScratchPixmapForScreen */
- pScreen->ClipNotify = 0; /* for R4 ddx compatibility */
- pScreen->CreateScreenResources = 0;
-
- xorg_list_init(&pScreen->pixmap_dirty_list);
- xorg_list_init(&pScreen->unattached_list);
- xorg_list_init(&pScreen->output_slave_list);
- xorg_list_init(&pScreen->offload_slave_list);
-
- /*
- * This loop gets run once for every Screen that gets added,
- * but thats ok. If the ddx layer initializes the formats
- * one at a time calling AddScreen() after each, then each
- * iteration will make it a little more accurate. Worst case
- * we do this loop N * numPixmapFormats where N is # of screens.
- * Anyway, this must be called after InitOutput and before the
- * screen init routine is called.
- */
- for (format = 0; format < screenInfo.numPixmapFormats; format++) {
- depth = screenInfo.formats[format].depth;
- bitsPerPixel = screenInfo.formats[format].bitsPerPixel;
- scanlinepad = screenInfo.formats[format].scanlinePad;
- j = indexForBitsPerPixel[bitsPerPixel];
- k = indexForScanlinePad[scanlinepad];
- PixmapWidthPaddingInfo[depth].padPixelsLog2 = answer[j][k];
- PixmapWidthPaddingInfo[depth].padRoundUp =
- (scanlinepad / bitsPerPixel) - 1;
- j = indexForBitsPerPixel[8]; /* bits per byte */
- PixmapWidthPaddingInfo[depth].padBytesLog2 = answer[j][k];
- PixmapWidthPaddingInfo[depth].bitsPerPixel = bitsPerPixel;
- if (answerBytesPerPixel[bitsPerPixel]) {
- PixmapWidthPaddingInfo[depth].notPower2 = 1;
- PixmapWidthPaddingInfo[depth].bytesPerPixel =
- answerBytesPerPixel[bitsPerPixel];
- }
- else {
- PixmapWidthPaddingInfo[depth].notPower2 = 0;
- }
- }
- return 0;
-}
-
-int
-AddScreen(Bool (*pfnInit) (ScreenPtr /*pScreen */ ,
- int /*argc */ ,
- char ** /*argv */
- ), int argc, char **argv)
-{
-
- int i;
- ScreenPtr pScreen;
- Bool ret;
-
- i = screenInfo.numScreens;
- if (i == MAXSCREENS)
- return -1;
-
- pScreen = (ScreenPtr) calloc(1, sizeof(ScreenRec));
- if (!pScreen)
- return -1;
-
- ret = init_screen(pScreen, i, FALSE);
- if (ret != 0) {
- free(pScreen);
- return ret;
- }
- /* This is where screen specific stuff gets initialized. Load the
- screen structure, call the hardware, whatever.
- This is also where the default colormap should be allocated and
- also pixel values for blackPixel, whitePixel, and the cursor
- Note that InitScreen is NOT allowed to modify argc, argv, or
- any of the strings pointed to by argv. They may be passed to
- multiple screens.
- */
- screenInfo.screens[i] = pScreen;
- screenInfo.numScreens++;
- if (!(*pfnInit) (pScreen, argc, argv)) {
- dixFreeScreenSpecificPrivates(pScreen);
- dixFreePrivates(pScreen->devPrivates, PRIVATE_SCREEN);
- free(pScreen);
- screenInfo.numScreens--;
- return -1;
- }
-
- update_desktop_dimensions();
-
- dixRegisterScreenPrivateKey(&cursorScreenDevPriv, pScreen, PRIVATE_CURSOR,
- 0);
-
- return i;
-}
-
-int
-AddGPUScreen(Bool (*pfnInit) (ScreenPtr /*pScreen */ ,
- int /*argc */ ,
- char ** /*argv */
- ),
- int argc, char **argv)
-{
- int i;
- ScreenPtr pScreen;
- Bool ret;
-
- i = screenInfo.numGPUScreens;
- if (i == MAXGPUSCREENS)
- return -1;
-
- pScreen = (ScreenPtr) calloc(1, sizeof(ScreenRec));
- if (!pScreen)
- return -1;
-
- ret = init_screen(pScreen, i, TRUE);
- if (ret != 0) {
- free(pScreen);
- return ret;
- }
-
- /* This is where screen specific stuff gets initialized. Load the
- screen structure, call the hardware, whatever.
- This is also where the default colormap should be allocated and
- also pixel values for blackPixel, whitePixel, and the cursor
- Note that InitScreen is NOT allowed to modify argc, argv, or
- any of the strings pointed to by argv. They may be passed to
- multiple screens.
- */
- screenInfo.gpuscreens[i] = pScreen;
- screenInfo.numGPUScreens++;
- if (!(*pfnInit) (pScreen, argc, argv)) {
- dixFreePrivates(pScreen->devPrivates, PRIVATE_SCREEN);
- free(pScreen);
- screenInfo.numGPUScreens--;
- return -1;
- }
-
- update_desktop_dimensions();
-
- return i;
-}
-
-void
-RemoveGPUScreen(ScreenPtr pScreen)
-{
- int idx, j;
- if (!pScreen->isGPU)
- return;
-
- idx = pScreen->myNum - GPU_SCREEN_OFFSET;
- for (j = idx; j < screenInfo.numGPUScreens - 1; j++) {
- screenInfo.gpuscreens[j] = screenInfo.gpuscreens[j + 1];
- screenInfo.gpuscreens[j]->myNum = j + GPU_SCREEN_OFFSET;
- }
- screenInfo.numGPUScreens--;
-
- /* this gets freed later in the resource list, but without
- * the screen existing it causes crashes - so remove it here */
- if (pScreen->defColormap)
- FreeResource(pScreen->defColormap, RT_COLORMAP);
- free(pScreen);
-
-}
-
-void
-AttachUnboundGPU(ScreenPtr pScreen, ScreenPtr new)
-{
- assert(new->isGPU);
- assert(!new->current_master);
- xorg_list_add(&new->unattached_head, &pScreen->unattached_list);
- new->current_master = pScreen;
-}
-
-void
-DetachUnboundGPU(ScreenPtr slave)
-{
- assert(slave->isGPU);
- xorg_list_del(&slave->unattached_head);
- slave->current_master = NULL;
-}
-
-void
-AttachOutputGPU(ScreenPtr pScreen, ScreenPtr new)
-{
- assert(new->isGPU);
- xorg_list_add(&new->output_head, &pScreen->output_slave_list);
- new->current_master = pScreen;
-}
-
-void
-DetachOutputGPU(ScreenPtr slave)
-{
- assert(slave->isGPU);
- xorg_list_del(&slave->output_head);
- slave->current_master = NULL;
-}
-
-void
-AttachOffloadGPU(ScreenPtr pScreen, ScreenPtr new)
-{
- assert(new->isGPU);
- xorg_list_add(&new->offload_head, &pScreen->offload_slave_list);
- new->current_master = pScreen;
-}
-
-void
-DetachOffloadGPU(ScreenPtr slave)
-{
- assert(slave->isGPU);
- xorg_list_del(&slave->offload_head);
- slave->current_master = NULL;
-}
-
+/************************************************************
+
+Copyright 1987, 1989, 1998 The Open Group
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+Copyright 1987, 1989 by Digital Equipment Corporation, Maynard, Massachusetts.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+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 Digital not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL 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.
+
+********************************************************/
+
+/* The panoramix components contained the following notice */
+/*****************************************************************
+
+Copyright (c) 1991, 1997 Digital Equipment Corporation, Maynard, Massachusetts.
+
+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.
+
+The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
+BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL 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.
+
+Except as contained in this notice, the name of Digital Equipment Corporation
+shall not be used in advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization from Digital
+Equipment Corporation.
+
+******************************************************************/
+
+/* XSERVER_DTRACE additions:
+ * Copyright (c) 2005-2006, Oracle and/or its affiliates. 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
+ * 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:
+ *
+ * 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 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.
+ */
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#include <version-config.h>
+#endif
+
+#ifdef CreateWindow
+#undef CreateWindow
+#endif
+
+#ifdef PANORAMIX_DEBUG
+#include <stdio.h>
+int ProcInitialConnection();
+#endif
+
+#include "windowstr.h"
+#include <X11/fonts/fontstruct.h>
+#include "dixfontstr.h"
+#include "gcstruct.h"
+#include "selection.h"
+#include "colormapst.h"
+#include "cursorstr.h"
+#include "scrnintstr.h"
+#include "opaque.h"
+#include "input.h"
+#include "servermd.h"
+#include "extnsionst.h"
+#include "dixfont.h"
+#include "dispatch.h"
+#include "swaprep.h"
+#include "swapreq.h"
+#include "privates.h"
+#include "xace.h"
+#include "inputstr.h"
+#include "xkbsrv.h"
+#include "site.h"
+#include "client.h"
+
+#ifdef XSERVER_DTRACE
+#include "registry.h"
+#include <sys/types.h>
+typedef const char *string;
+
+#include "Xserver-dtrace.h"
+#endif
+
+#define mskcnt ((MAXCLIENTS + 31) / 32)
+#define BITMASK(i) (1U << ((i) & 31))
+#define MASKIDX(i) ((i) >> 5)
+#define MASKWORD(buf, i) buf[MASKIDX(i)]
+#define BITSET(buf, i) MASKWORD(buf, i) |= BITMASK(i)
+#define BITCLEAR(buf, i) MASKWORD(buf, i) &= ~BITMASK(i)
+#define GETBIT(buf, i) (MASKWORD(buf, i) & BITMASK(i))
+
+xConnSetupPrefix connSetupPrefix;
+
+PaddingInfo PixmapWidthPaddingInfo[33];
+
+static ClientPtr grabClient;
+
+#define GrabNone 0
+#define GrabActive 1
+#define GrabKickout 2
+static int grabState = GrabNone;
+static long grabWaiters[mskcnt];
+CallbackListPtr ServerGrabCallback = NULL;
+HWEventQueuePtr checkForInput[2];
+int connBlockScreenStart;
+
+static void KillAllClients(void);
+
+static int nextFreeClientID; /* always MIN free client ID */
+
+static int nClients; /* number of authorized clients */
+
+CallbackListPtr ClientStateCallback;
+
+/* dispatchException & isItTimeToYield must be declared volatile since they
+ * are modified by signal handlers - otherwise optimizer may assume it doesn't
+ * need to actually check value in memory when used and may miss changes from
+ * signal handlers.
+ */
+volatile char dispatchException = 0;
+volatile char isItTimeToYield;
+
+#define SAME_SCREENS(a, b) (\
+ (a.pScreen == b.pScreen))
+
+void
+SetInputCheck(HWEventQueuePtr c0, HWEventQueuePtr c1)
+{
+ checkForInput[0] = c0;
+ checkForInput[1] = c1;
+}
+
+void
+UpdateCurrentTime(void)
+{
+ TimeStamp systime;
+
+ /* To avoid time running backwards, we must call GetTimeInMillis before
+ * calling ProcessInputEvents.
+ */
+ systime.months = currentTime.months;
+ systime.milliseconds = GetTimeInMillis();
+ if (systime.milliseconds < currentTime.milliseconds)
+ systime.months++;
+ if (*checkForInput[0] != *checkForInput[1])
+ ProcessInputEvents();
+ if (CompareTimeStamps(systime, currentTime) == LATER)
+ currentTime = systime;
+}
+
+/* Like UpdateCurrentTime, but can't call ProcessInputEvents */
+void
+UpdateCurrentTimeIf(void)
+{
+ TimeStamp systime;
+
+ systime.months = currentTime.months;
+ systime.milliseconds = GetTimeInMillis();
+ if (systime.milliseconds < currentTime.milliseconds)
+ systime.months++;
+ if (CompareTimeStamps(systime, currentTime) == LATER)
+ currentTime = systime;
+}
+
+#undef SMART_DEBUG
+
+#define SMART_SCHEDULE_DEFAULT_INTERVAL 20 /* ms */
+#define SMART_SCHEDULE_MAX_SLICE 200 /* ms */
+
+#if defined(WIN32) && !defined(__CYGWIN__) && !defined(_MSC_VER)
+Bool SmartScheduleDisable = TRUE;
+#else
+Bool SmartScheduleDisable = FALSE;
+#endif
+long SmartScheduleSlice = SMART_SCHEDULE_DEFAULT_INTERVAL;
+long SmartScheduleInterval = SMART_SCHEDULE_DEFAULT_INTERVAL;
+long SmartScheduleMaxSlice = SMART_SCHEDULE_MAX_SLICE;
+long SmartScheduleTime;
+int SmartScheduleLatencyLimited = 0;
+static ClientPtr SmartLastClient;
+static int SmartLastIndex[SMART_MAX_PRIORITY - SMART_MIN_PRIORITY + 1];
+
+#ifdef SMART_DEBUG
+long SmartLastPrint;
+#endif
+
+void Dispatch(void);
+
+static int
+SmartScheduleClient(int *clientReady, int nready)
+{
+ ClientPtr pClient;
+ int i;
+ int client;
+ int bestPrio, best = 0;
+ int bestRobin, robin;
+ long now = SmartScheduleTime;
+ long idle;
+
+ bestPrio = -0x7fffffff;
+ bestRobin = 0;
+ idle = 2 * SmartScheduleSlice;
+ for (i = 0; i < nready; i++) {
+ client = clientReady[i];
+ pClient = clients[client];
+ /* Praise clients which are idle */
+ if ((now - pClient->smart_check_tick) >= idle) {
+ if (pClient->smart_priority < 0)
+ pClient->smart_priority++;
+ }
+ pClient->smart_check_tick = now;
+
+ /* check priority to select best client */
+ robin =
+ (pClient->index -
+ SmartLastIndex[pClient->smart_priority -
+ SMART_MIN_PRIORITY]) & 0xff;
+ if (pClient->smart_priority > bestPrio ||
+ (pClient->smart_priority == bestPrio && robin > bestRobin)) {
+ bestPrio = pClient->smart_priority;
+ bestRobin = robin;
+ best = client;
+ }
+#ifdef SMART_DEBUG
+ if ((now - SmartLastPrint) >= 5000)
+ fprintf(stderr, " %2d: %3d", client, pClient->smart_priority);
+#endif
+ }
+#ifdef SMART_DEBUG
+ if ((now - SmartLastPrint) >= 5000) {
+ fprintf(stderr, " use %2d\n", best);
+ SmartLastPrint = now;
+ }
+#endif
+ pClient = clients[best];
+ SmartLastIndex[bestPrio - SMART_MIN_PRIORITY] = pClient->index;
+ /*
+ * Set current client pointer
+ */
+ if (SmartLastClient != pClient) {
+ pClient->smart_start_tick = now;
+ SmartLastClient = pClient;
+ }
+ /*
+ * Adjust slice
+ */
+ if (nready == 1 && SmartScheduleLatencyLimited == 0) {
+ /*
+ * If it's been a long time since another client
+ * has run, bump the slice up to get maximal
+ * performance from a single client
+ */
+ if ((now - pClient->smart_start_tick) > 1000 &&
+ SmartScheduleSlice < SmartScheduleMaxSlice) {
+ SmartScheduleSlice += SmartScheduleInterval;
+ }
+ }
+ else {
+ SmartScheduleSlice = SmartScheduleInterval;
+ }
+ return best;
+}
+
+void
+EnableLimitedSchedulingLatency(void)
+{
+ ++SmartScheduleLatencyLimited;
+ SmartScheduleSlice = SmartScheduleInterval;
+}
+
+void
+DisableLimitedSchedulingLatency(void)
+{
+ --SmartScheduleLatencyLimited;
+
+ /* protect against bugs */
+ if (SmartScheduleLatencyLimited < 0)
+ SmartScheduleLatencyLimited = 0;
+}
+
+void
+Dispatch(void)
+{
+ int *clientReady; /* array of request ready clients */
+ int result;
+ ClientPtr client;
+ int nready;
+ HWEventQueuePtr *icheck = checkForInput;
+ long start_tick;
+
+ nextFreeClientID = 1;
+ nClients = 0;
+
+ clientReady = malloc(sizeof(int) * MaxClients);
+ if (!clientReady)
+ return;
+
+ SmartScheduleSlice = SmartScheduleInterval;
+ while (!dispatchException) {
+ if (*icheck[0] != *icheck[1]) {
+ ProcessInputEvents();
+ FlushIfCriticalOutputPending();
+ }
+
+ nready = WaitForSomething(clientReady);
+
+ if (nready && !SmartScheduleDisable) {
+ clientReady[0] = SmartScheduleClient(clientReady, nready);
+ nready = 1;
+ }
+ /*****************
+ * Handle events in round robin fashion, doing input between
+ * each round
+ *****************/
+
+ while (!dispatchException && (--nready >= 0)) {
+ client = clients[clientReady[nready]];
+ if (!client) {
+ /* KillClient can cause this to happen */
+ continue;
+ }
+ /* GrabServer activation can cause this to be true */
+ if (grabState == GrabKickout) {
+ grabState = GrabActive;
+ break;
+ }
+ isItTimeToYield = FALSE;
+
+ start_tick = SmartScheduleTime;
+ while (!isItTimeToYield) {
+#ifdef XSERVER_DTRACE
+ CARD8 StartMajorOp;
+#endif
+ if (*icheck[0] != *icheck[1])
+ ProcessInputEvents();
+
+ FlushIfCriticalOutputPending();
+ if (!SmartScheduleDisable &&
+ (SmartScheduleTime - start_tick) >= SmartScheduleSlice) {
+ /* Penalize clients which consume ticks */
+ if (client->smart_priority > SMART_MIN_PRIORITY)
+ client->smart_priority--;
+ break;
+ }
+ /* now, finally, deal with client requests */
+
+ /* Update currentTime so request time checks, such as for input
+ * device grabs, are calculated correctly */
+ UpdateCurrentTimeIf();
+ result = ReadRequestFromClient(client);
+ if (result <= 0) {
+ if (result < 0)
+ CloseDownClient(client);
+ break;
+ }
+
+ client->sequence++;
+ client->majorOp = ((xReq *) client->requestBuffer)->reqType;
+ client->minorOp = 0;
+ if (client->majorOp >= EXTENSION_BASE) {
+ ExtensionEntry *ext = GetExtensionEntry(client->majorOp);
+
+ if (ext)
+ client->minorOp = ext->MinorOpcode(client);
+ }
+#ifdef XSERVER_DTRACE
+ if (XSERVER_REQUEST_START_ENABLED())
+ {
+ StartMajorOp=client->majorOp;
+ XSERVER_REQUEST_START(LookupMajorName(client->majorOp),
+ client->majorOp,
+ ((xReq *) client->requestBuffer)->length,
+ client->index,
+ client->requestBuffer);
+ }
+#endif
+ if (result > (maxBigRequestSize << 2))
+ result = BadLength;
+ else {
+ result = XaceHookDispatch(client, client->majorOp);
+ if (result == Success)
+ result =
+ (*client->requestVector[client->majorOp]) (client);
+ XaceHookAuditEnd(client, result);
+ }
+#ifdef XSERVER_DTRACE
+ if (XSERVER_REQUEST_DONE_ENABLED())
+ {
+ if (result!=Success)
+ {
+ char Message[255];
+ sprintf(Message,"ERROR: %s (0x%x)",LookupMajorName(client->majorOp),client->errorValue);
+ XSERVER_REQUEST_DONE(Message,
+ client->majorOp, client->sequence,
+ client->index, result);
+ }
+ else
+ {
+ if (StartMajorOp!=client->majorOp)
+ {
+ char Message[255];
+ sprintf(Message,"Changed request: %s -> %s",LookupMajorName(StartMajorOp),LookupMajorName(client->majorOp));
+ XSERVER_REQUEST_DONE(Message,
+ client->majorOp, client->sequence,
+ client->index, result);
+ }
+ else
+ {
+ XSERVER_REQUEST_DONE(LookupMajorName(client->majorOp),
+ client->majorOp, client->sequence,
+ client->index, result);
+ }
+ }
+ }
+#endif
+
+ if (client->noClientException != Success) {
+ CloseDownClient(client);
+ break;
+ }
+ else if (result != Success) {
+ SendErrorToClient(client, client->majorOp,
+ client->minorOp,
+ client->errorValue, result);
+ break;
+ }
+ }
+ FlushAllOutput();
+ client = clients[clientReady[nready]];
+ if (client)
+ client->smart_stop_tick = SmartScheduleTime;
+ }
+ dispatchException &= ~DE_PRIORITYCHANGE;
+ }
+#if defined(DDXBEFORERESET)
+ ddxBeforeReset();
+#endif
+ KillAllClients();
+ free(clientReady);
+ dispatchException &= ~DE_RESET;
+ SmartScheduleLatencyLimited = 0;
+ ResetOsBuffers();
+}
+
+static int VendorRelease = VENDOR_RELEASE;
+static char *VendorString = VENDOR_NAME;
+
+void
+SetVendorRelease(int release)
+{
+ VendorRelease = release;
+}
+
+void
+SetVendorString(char *string)
+{
+ VendorString = string;
+}
+
+Bool
+CreateConnectionBlock(void)
+{
+ xConnSetup setup;
+ xWindowRoot root;
+ xDepth depth;
+ xVisualType visual;
+ xPixmapFormat format;
+ unsigned long vid;
+ int i, j, k, lenofblock, sizesofar = 0;
+ char *pBuf;
+
+ memset(&setup, 0, sizeof(xConnSetup));
+ /* Leave off the ridBase and ridMask, these must be sent with
+ connection */
+
+ setup.release = VendorRelease;
+ /*
+ * per-server image and bitmap parameters are defined in Xmd.h
+ */
+ setup.imageByteOrder = screenInfo.imageByteOrder;
+
+ setup.bitmapScanlineUnit = screenInfo.bitmapScanlineUnit;
+ setup.bitmapScanlinePad = screenInfo.bitmapScanlinePad;
+
+ setup.bitmapBitOrder = screenInfo.bitmapBitOrder;
+ setup.motionBufferSize = NumMotionEvents();
+ setup.numRoots = screenInfo.numScreens;
+ setup.nbytesVendor = strlen(VendorString);
+ setup.numFormats = screenInfo.numPixmapFormats;
+ setup.maxRequestSize = MAX_REQUEST_SIZE;
+ QueryMinMaxKeyCodes(&setup.minKeyCode, &setup.maxKeyCode);
+
+ lenofblock = sizeof(xConnSetup) +
+ pad_to_int32(setup.nbytesVendor) +
+ (setup.numFormats * sizeof(xPixmapFormat)) +
+ (setup.numRoots * sizeof(xWindowRoot));
+ ConnectionInfo = malloc(lenofblock);
+ if (!ConnectionInfo)
+ return FALSE;
+
+ memmove(ConnectionInfo, (char *) &setup, sizeof(xConnSetup));
+ sizesofar = sizeof(xConnSetup);
+ pBuf = ConnectionInfo + sizeof(xConnSetup);
+
+ memmove(pBuf, VendorString, (int) setup.nbytesVendor);
+ sizesofar += setup.nbytesVendor;
+ pBuf += setup.nbytesVendor;
+ i = padding_for_int32(setup.nbytesVendor);
+ sizesofar += i;
+ while (--i >= 0)
+ *pBuf++ = 0;
+
+ memset(&format, 0, sizeof(xPixmapFormat));
+ for (i = 0; i < screenInfo.numPixmapFormats; i++) {
+ format.depth = screenInfo.formats[i].depth;
+ format.bitsPerPixel = screenInfo.formats[i].bitsPerPixel;
+ format.scanLinePad = screenInfo.formats[i].scanlinePad;
+ memmove(pBuf, (char *) &format, sizeof(xPixmapFormat));
+ pBuf += sizeof(xPixmapFormat);
+ sizesofar += sizeof(xPixmapFormat);
+ }
+
+ connBlockScreenStart = sizesofar;
+ memset(&depth, 0, sizeof(xDepth));
+ memset(&visual, 0, sizeof(xVisualType));
+ for (i = 0; i < screenInfo.numScreens; i++) {
+ ScreenPtr pScreen;
+ DepthPtr pDepth;
+ VisualPtr pVisual;
+
+ pScreen = screenInfo.screens[i];
+ root.windowId = pScreen->root->drawable.id;
+ root.defaultColormap = pScreen->defColormap;
+ root.whitePixel = pScreen->whitePixel;
+ root.blackPixel = pScreen->blackPixel;
+ root.currentInputMask = 0; /* filled in when sent */
+ root.pixWidth = pScreen->width;
+ root.pixHeight = pScreen->height;
+ root.mmWidth = pScreen->mmWidth;
+ root.mmHeight = pScreen->mmHeight;
+ root.minInstalledMaps = pScreen->minInstalledCmaps;
+ root.maxInstalledMaps = pScreen->maxInstalledCmaps;
+ root.rootVisualID = pScreen->rootVisual;
+ root.backingStore = pScreen->backingStoreSupport;
+ root.saveUnders = FALSE;
+ root.rootDepth = pScreen->rootDepth;
+ root.nDepths = pScreen->numDepths;
+ memmove(pBuf, (char *) &root, sizeof(xWindowRoot));
+ sizesofar += sizeof(xWindowRoot);
+ pBuf += sizeof(xWindowRoot);
+
+ pDepth = pScreen->allowedDepths;
+ for (j = 0; j < pScreen->numDepths; j++, pDepth++) {
+ lenofblock += sizeof(xDepth) +
+ (pDepth->numVids * sizeof(xVisualType));
+ pBuf = (char *) realloc(ConnectionInfo, lenofblock);
+ if (!pBuf) {
+ free(ConnectionInfo);
+ return FALSE;
+ }
+ ConnectionInfo = pBuf;
+ pBuf += sizesofar;
+ depth.depth = pDepth->depth;
+ depth.nVisuals = pDepth->numVids;
+ memmove(pBuf, (char *) &depth, sizeof(xDepth));
+ pBuf += sizeof(xDepth);
+ sizesofar += sizeof(xDepth);
+ for (k = 0; k < pDepth->numVids; k++) {
+ vid = pDepth->vids[k];
+ for (pVisual = pScreen->visuals;
+ pVisual->vid != vid; pVisual++);
+ visual.visualID = vid;
+ visual.class = pVisual->class;
+ visual.bitsPerRGB = pVisual->bitsPerRGBValue;
+ visual.colormapEntries = pVisual->ColormapEntries;
+ visual.redMask = pVisual->redMask;
+ visual.greenMask = pVisual->greenMask;
+ visual.blueMask = pVisual->blueMask;
+ memmove(pBuf, (char *) &visual, sizeof(xVisualType));
+ pBuf += sizeof(xVisualType);
+ sizesofar += sizeof(xVisualType);
+ }
+ }
+ }
+ connSetupPrefix.success = xTrue;
+ connSetupPrefix.length = lenofblock / 4;
+ connSetupPrefix.majorVersion = X_PROTOCOL;
+ connSetupPrefix.minorVersion = X_PROTOCOL_REVISION;
+ return TRUE;
+}
+
+int
+ProcBadRequest(ClientPtr client)
+{
+ return BadRequest;
+}
+
+int
+ProcCreateWindow(ClientPtr client)
+{
+ WindowPtr pParent, pWin;
+
+ REQUEST(xCreateWindowReq);
+ int len, rc;
+
+ REQUEST_AT_LEAST_SIZE(xCreateWindowReq);
+
+ LEGAL_NEW_RESOURCE(stuff->wid, client);
+ rc = dixLookupWindow(&pParent, stuff->parent, client, DixAddAccess);
+ if (rc != Success)
+ return rc;
+ len = client->req_len - bytes_to_int32(sizeof(xCreateWindowReq));
+ if (Ones(stuff->mask) != len)
+ return BadLength;
+ if (!stuff->width || !stuff->height) {
+ client->errorValue = 0;
+ return BadValue;
+ }
+ pWin = CreateWindow(stuff->wid, pParent, stuff->x,
+ stuff->y, stuff->width, stuff->height,
+ stuff->borderWidth, stuff->class,
+ stuff->mask, (XID *) &stuff[1],
+ (int) stuff->depth, client, stuff->visual, &rc);
+ if (pWin) {
+ Mask mask = pWin->eventMask;
+
+ pWin->eventMask = 0; /* subterfuge in case AddResource fails */
+ if (!AddResource(stuff->wid, RT_WINDOW, (pointer) pWin))
+ return BadAlloc;
+ pWin->eventMask = mask;
+ }
+ return rc;
+}
+
+int
+ProcChangeWindowAttributes(ClientPtr client)
+{
+ WindowPtr pWin;
+
+ REQUEST(xChangeWindowAttributesReq);
+ int len, rc;
+ Mask access_mode = 0;
+
+ REQUEST_AT_LEAST_SIZE(xChangeWindowAttributesReq);
+ access_mode |= (stuff->valueMask & CWEventMask) ? DixReceiveAccess : 0;
+ access_mode |= (stuff->valueMask & ~CWEventMask) ? DixSetAttrAccess : 0;
+ rc = dixLookupWindow(&pWin, stuff->window, client, access_mode);
+ if (rc != Success)
+ return rc;
+ len = client->req_len - bytes_to_int32(sizeof(xChangeWindowAttributesReq));
+ if (len != Ones(stuff->valueMask))
+ return BadLength;
+ return ChangeWindowAttributes(pWin,
+ stuff->valueMask, (XID *) &stuff[1], client);
+}
+
+int
+ProcGetWindowAttributes(ClientPtr client)
+{
+ WindowPtr pWin;
+
+ REQUEST(xResourceReq);
+ xGetWindowAttributesReply wa;
+ int rc;
+
+ REQUEST_SIZE_MATCH(xResourceReq);
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixGetAttrAccess);
+ if (rc != Success)
+ return rc;
+ memset(&wa, 0, sizeof(xGetWindowAttributesReply));
+ GetWindowAttributes(pWin, client, &wa);
+ WriteReplyToClient(client, sizeof(xGetWindowAttributesReply), &wa);
+ return Success;
+}
+
+int
+ProcDestroyWindow(ClientPtr client)
+{
+ WindowPtr pWin;
+
+ REQUEST(xResourceReq);
+ int rc;
+
+ REQUEST_SIZE_MATCH(xResourceReq);
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixDestroyAccess);
+ if (rc != Success)
+ return rc;
+ if (pWin->parent) {
+ rc = dixLookupWindow(&pWin, pWin->parent->drawable.id, client,
+ DixRemoveAccess);
+ if (rc != Success)
+ return rc;
+ FreeResource(stuff->id, RT_NONE);
+ }
+ return Success;
+}
+
+int
+ProcDestroySubwindows(ClientPtr client)
+{
+ WindowPtr pWin;
+
+ REQUEST(xResourceReq);
+ int rc;
+
+ REQUEST_SIZE_MATCH(xResourceReq);
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixRemoveAccess);
+ if (rc != Success)
+ return rc;
+ DestroySubwindows(pWin, client);
+ return Success;
+}
+
+int
+ProcChangeSaveSet(ClientPtr client)
+{
+ WindowPtr pWin;
+
+ REQUEST(xChangeSaveSetReq);
+ int rc;
+
+ REQUEST_SIZE_MATCH(xChangeSaveSetReq);
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixManageAccess);
+ if (rc != Success)
+ return rc;
+ if (client->clientAsMask == (CLIENT_BITS(pWin->drawable.id)))
+ return BadMatch;
+ if ((stuff->mode == SetModeInsert) || (stuff->mode == SetModeDelete))
+ return AlterSaveSetForClient(client, pWin, stuff->mode, FALSE, TRUE);
+ client->errorValue = stuff->mode;
+ return BadValue;
+}
+
+int
+ProcReparentWindow(ClientPtr client)
+{
+ WindowPtr pWin, pParent;
+
+ REQUEST(xReparentWindowReq);
+ int rc;
+
+ REQUEST_SIZE_MATCH(xReparentWindowReq);
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixManageAccess);
+ if (rc != Success)
+ return rc;
+ rc = dixLookupWindow(&pParent, stuff->parent, client, DixAddAccess);
+ if (rc != Success)
+ return rc;
+ if (!SAME_SCREENS(pWin->drawable, pParent->drawable))
+ return BadMatch;
+ if ((pWin->backgroundState == ParentRelative) &&
+ (pParent->drawable.depth != pWin->drawable.depth))
+ return BadMatch;
+ if ((pWin->drawable.class != InputOnly) &&
+ (pParent->drawable.class == InputOnly))
+ return BadMatch;
+ return ReparentWindow(pWin, pParent,
+ (short) stuff->x, (short) stuff->y, client);
+}
+
+int
+ProcMapWindow(ClientPtr client)
+{
+ WindowPtr pWin;
+
+ REQUEST(xResourceReq);
+ int rc;
+
+ REQUEST_SIZE_MATCH(xResourceReq);
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixShowAccess);
+ if (rc != Success)
+ return rc;
+ MapWindow(pWin, client);
+ /* update cache to say it is mapped */
+ return Success;
+}
+
+int
+ProcMapSubwindows(ClientPtr client)
+{
+ WindowPtr pWin;
+
+ REQUEST(xResourceReq);
+ int rc;
+
+ REQUEST_SIZE_MATCH(xResourceReq);
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixListAccess);
+ if (rc != Success)
+ return rc;
+ MapSubwindows(pWin, client);
+ /* update cache to say it is mapped */
+ return Success;
+}
+
+int
+ProcUnmapWindow(ClientPtr client)
+{
+ WindowPtr pWin;
+
+ REQUEST(xResourceReq);
+ int rc;
+
+ REQUEST_SIZE_MATCH(xResourceReq);
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixHideAccess);
+ if (rc != Success)
+ return rc;
+ UnmapWindow(pWin, FALSE);
+ /* update cache to say it is mapped */
+ return Success;
+}
+
+int
+ProcUnmapSubwindows(ClientPtr client)
+{
+ WindowPtr pWin;
+
+ REQUEST(xResourceReq);
+ int rc;
+
+ REQUEST_SIZE_MATCH(xResourceReq);
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixListAccess);
+ if (rc != Success)
+ return rc;
+ UnmapSubwindows(pWin);
+ return Success;
+}
+
+int
+ProcConfigureWindow(ClientPtr client)
+{
+ WindowPtr pWin;
+
+ REQUEST(xConfigureWindowReq);
+ int len, rc;
+
+ REQUEST_AT_LEAST_SIZE(xConfigureWindowReq);
+ rc = dixLookupWindow(&pWin, stuff->window, client,
+ DixManageAccess | DixSetAttrAccess);
+ if (rc != Success)
+ return rc;
+ len = client->req_len - bytes_to_int32(sizeof(xConfigureWindowReq));
+ if (Ones((Mask) stuff->mask) != len)
+ return BadLength;
+ return ConfigureWindow(pWin, (Mask) stuff->mask, (XID *) &stuff[1], client);
+}
+
+int
+ProcCirculateWindow(ClientPtr client)
+{
+ WindowPtr pWin;
+
+ REQUEST(xCirculateWindowReq);
+ int rc;
+
+ REQUEST_SIZE_MATCH(xCirculateWindowReq);
+ if ((stuff->direction != RaiseLowest) && (stuff->direction != LowerHighest)) {
+ client->errorValue = stuff->direction;
+ return BadValue;
+ }
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixManageAccess);
+ if (rc != Success)
+ return rc;
+ CirculateWindow(pWin, (int) stuff->direction, client);
+ return Success;
+}
+
+static int
+GetGeometry(ClientPtr client, xGetGeometryReply * rep)
+{
+ DrawablePtr pDraw;
+ int rc;
+
+ REQUEST(xResourceReq);
+ REQUEST_SIZE_MATCH(xResourceReq);
+
+ rc = dixLookupDrawable(&pDraw, stuff->id, client, M_ANY, DixGetAttrAccess);
+ if (rc != Success)
+ return rc;
+
+ rep->type = X_Reply;
+ rep->length = 0;
+ rep->sequenceNumber = client->sequence;
+ rep->root = pDraw->pScreen->root->drawable.id;
+ rep->depth = pDraw->depth;
+ rep->width = pDraw->width;
+ rep->height = pDraw->height;
+
+ if (WindowDrawable(pDraw->type)) {
+ WindowPtr pWin = (WindowPtr) pDraw;
+
+ rep->x = pWin->origin.x - wBorderWidth(pWin);
+ rep->y = pWin->origin.y - wBorderWidth(pWin);
+ rep->borderWidth = pWin->borderWidth;
+ }
+ else { /* DRAWABLE_PIXMAP */
+
+ rep->x = rep->y = rep->borderWidth = 0;
+ }
+
+ return Success;
+}
+
+int
+ProcGetGeometry(ClientPtr client)
+{
+ xGetGeometryReply rep;
+ int status;
+
+ memset(&rep, 0, sizeof(xGetGeometryReply));
+ rep.type = X_Reply ;
+ if ((status = GetGeometry(client, &rep)) != Success)
+ return status;
+
+ WriteReplyToClient(client, sizeof(xGetGeometryReply), &rep);
+ return Success;
+}
+
+#ifdef WIN32
+/* Do not return the clipboard window in ProcQueryTree, cause this may cause
+ the clipboard client being closed when connecting through xdmcp.
+*/
+extern Window g_iClipboardWindow;
+
+#endif
+int
+ProcQueryTree(ClientPtr client)
+{
+ xQueryTreeReply reply;
+ int rc, numChildren = 0;
+ WindowPtr pChild, pWin, pHead;
+ Window *childIDs = (Window *) NULL;
+
+ REQUEST(xResourceReq);
+
+ REQUEST_SIZE_MATCH(xResourceReq);
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixListAccess);
+ if (rc != Success)
+ return rc;
+ memset(&reply, 0, sizeof(xQueryTreeReply));
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.root = pWin->drawable.pScreen->root->drawable.id;
+ reply.parent = (pWin->parent) ? pWin->parent->drawable.id : (Window) None;
+
+ pHead = RealChildHead(pWin);
+ for (pChild = pWin->lastChild; pChild != pHead; pChild = pChild->prevSib)
+#ifdef WIN32
+ if (pChild->drawable.id!=g_iClipboardWindow)
+#endif
+ numChildren++;
+ if (numChildren) {
+ int curChild = 0;
+
+ childIDs = malloc(numChildren * sizeof(Window));
+ if (!childIDs)
+ return BadAlloc;
+ for (pChild = pWin->lastChild; pChild != pHead;
+ pChild = pChild->prevSib)
+#ifdef WIN32
+ if (pChild->drawable.id!=g_iClipboardWindow)
+#endif
+ childIDs[curChild++] = pChild->drawable.id;
+ }
+
+ reply.nChildren = numChildren;
+ reply.length = bytes_to_int32(numChildren * sizeof(Window));
+
+ WriteReplyToClient(client, sizeof(xQueryTreeReply), &reply);
+ if (numChildren) {
+ client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write;
+ WriteSwappedDataToClient(client, numChildren * sizeof(Window),
+ childIDs);
+ free(childIDs);
+ }
+
+ return Success;
+}
+
+int
+ProcInternAtom(ClientPtr client)
+{
+ Atom atom;
+ char *tchar;
+
+ REQUEST(xInternAtomReq);
+
+ REQUEST_FIXED_SIZE(xInternAtomReq, stuff->nbytes);
+ if ((stuff->onlyIfExists != xTrue) && (stuff->onlyIfExists != xFalse)) {
+ client->errorValue = stuff->onlyIfExists;
+ return BadValue;
+ }
+ tchar = (char *) &stuff[1];
+ atom = MakeAtom(tchar, stuff->nbytes, !stuff->onlyIfExists);
+ if (atom != BAD_RESOURCE) {
+ xInternAtomReply reply; memset(&reply, 0, sizeof(xInternAtomReply));
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = 0;
+ reply.atom = atom;
+
+ WriteReplyToClient(client, sizeof(xInternAtomReply), &reply);
+ return Success;
+ }
+ else
+ return BadAlloc;
+}
+
+int
+ProcGetAtomName(ClientPtr client)
+{
+ const char *str;
+
+ REQUEST(xResourceReq);
+
+ REQUEST_SIZE_MATCH(xResourceReq);
+ if ((str = NameForAtom(stuff->id))) {
+ xGetAtomNameReply reply;
+ int len = strlen(str);
+ memset(&reply, 0, sizeof(xGetAtomNameReply));
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = bytes_to_int32(len);
+ reply.nameLength = len;
+ WriteReplyToClient(client, sizeof(xGetAtomNameReply), &reply);
+ WriteToClient(client, len, str);
+ return Success;
+ }
+ else {
+ client->errorValue = stuff->id;
+ return BadAtom;
+ }
+}
+
+int
+ProcGrabServer(ClientPtr client)
+{
+ int rc;
+
+ REQUEST_SIZE_MATCH(xReq);
+ if (grabState != GrabNone && client != grabClient) {
+ ResetCurrentRequest(client);
+ client->sequence--;
+ BITSET(grabWaiters, client->index);
+ IgnoreClient(client);
+ return Success;
+ }
+ rc = OnlyListenToOneClient(client);
+ if (rc != Success)
+ return rc;
+ grabState = GrabKickout;
+ grabClient = client;
+
+ if (ServerGrabCallback) {
+ ServerGrabInfoRec grabinfo;
+
+ grabinfo.client = client;
+ grabinfo.grabstate = SERVER_GRABBED;
+ CallCallbacks(&ServerGrabCallback, (pointer) &grabinfo);
+ }
+
+ return Success;
+}
+
+static void
+UngrabServer(ClientPtr client)
+{
+ int i;
+
+ grabState = GrabNone;
+ ListenToAllClients();
+ for (i = mskcnt; --i >= 0 && !grabWaiters[i];);
+ if (i >= 0) {
+ i <<= 5;
+ while (!GETBIT(grabWaiters, i))
+ i++;
+ BITCLEAR(grabWaiters, i);
+ AttendClient(clients[i]);
+ }
+
+ if (ServerGrabCallback) {
+ ServerGrabInfoRec grabinfo;
+
+ grabinfo.client = client;
+ grabinfo.grabstate = SERVER_UNGRABBED;
+ CallCallbacks(&ServerGrabCallback, (pointer) &grabinfo);
+ }
+}
+
+int
+ProcUngrabServer(ClientPtr client)
+{
+ REQUEST_SIZE_MATCH(xReq);
+ UngrabServer(client);
+ return Success;
+}
+
+int
+ProcTranslateCoords(ClientPtr client)
+{
+ REQUEST(xTranslateCoordsReq);
+
+ WindowPtr pWin, pDst;
+ xTranslateCoordsReply rep;
+ int rc;
+
+ REQUEST_SIZE_MATCH(xTranslateCoordsReq);
+ rc = dixLookupWindow(&pWin, stuff->srcWid, client, DixGetAttrAccess);
+ if (rc != Success)
+ return rc;
+ rc = dixLookupWindow(&pDst, stuff->dstWid, client, DixGetAttrAccess);
+ if (rc != Success)
+ return rc;
+ memset(&rep, 0, sizeof(xTranslateCoordsReply));
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+
+ if (!SAME_SCREENS(pWin->drawable, pDst->drawable)) {
+ rep.sameScreen = xFalse;
+ rep.child = None;
+ rep.dstX = rep.dstY = 0;
+ }
+ else {
+ INT16 x, y;
+
+ rep.sameScreen = xTrue;
+ rep.child = None;
+ /* computing absolute coordinates -- adjust to destination later */
+ x = pWin->drawable.x + stuff->srcX;
+ y = pWin->drawable.y + stuff->srcY;
+ pWin = pDst->firstChild;
+ while (pWin) {
+ BoxRec box;
+
+ if ((pWin->mapped) &&
+ (x >= pWin->drawable.x - wBorderWidth(pWin)) &&
+ (x < pWin->drawable.x + (int) pWin->drawable.width +
+ wBorderWidth(pWin)) &&
+ (y >= pWin->drawable.y - wBorderWidth(pWin)) &&
+ (y < pWin->drawable.y + (int) pWin->drawable.height +
+ wBorderWidth(pWin))
+ /* When a window is shaped, a further check
+ * is made to see if the point is inside
+ * borderSize
+ */
+ && (!wBoundingShape(pWin) ||
+ RegionContainsPoint(&pWin->borderSize, x, y, &box))
+
+ && (!wInputShape(pWin) ||
+ RegionContainsPoint(wInputShape(pWin),
+ x - pWin->drawable.x,
+ y - pWin->drawable.y, &box))
+ ) {
+ rep.child = pWin->drawable.id;
+ pWin = (WindowPtr) NULL;
+ }
+ else
+ pWin = pWin->nextSib;
+ }
+ /* adjust to destination coordinates */
+ rep.dstX = x - pDst->drawable.x;
+ rep.dstY = y - pDst->drawable.y;
+ }
+ WriteReplyToClient(client, sizeof(xTranslateCoordsReply), &rep);
+ return Success;
+}
+
+int
+ProcOpenFont(ClientPtr client)
+{
+ int err;
+
+ REQUEST(xOpenFontReq);
+
+ REQUEST_FIXED_SIZE(xOpenFontReq, stuff->nbytes);
+ client->errorValue = stuff->fid;
+ LEGAL_NEW_RESOURCE(stuff->fid, client);
+ err = OpenFont(client, stuff->fid, (Mask) 0,
+ stuff->nbytes, (char *) &stuff[1]);
+ if (err == Success) {
+ return Success;
+ }
+ else
+ return err;
+}
+
+int
+ProcCloseFont(ClientPtr client)
+{
+ FontPtr pFont;
+ int rc;
+
+ REQUEST(xResourceReq);
+
+ REQUEST_SIZE_MATCH(xResourceReq);
+ rc = dixLookupResourceByType((pointer *) &pFont, stuff->id, RT_FONT,
+ client, DixDestroyAccess);
+ if (rc == Success) {
+ FreeResource(stuff->id, RT_NONE);
+ return Success;
+ }
+ else {
+ client->errorValue = stuff->id;
+ return rc;
+ }
+}
+
+int
+ProcQueryFont(ClientPtr client)
+{
+ xQueryFontReply *reply;
+ FontPtr pFont;
+ int rc;
+
+ REQUEST(xResourceReq);
+ REQUEST_SIZE_MATCH(xResourceReq);
+
+ rc = dixLookupFontable(&pFont, stuff->id, client, DixGetAttrAccess);
+ if (rc != Success)
+ return rc;
+
+ {
+ xCharInfo *pmax = FONTINKMAX(pFont);
+ xCharInfo *pmin = FONTINKMIN(pFont);
+ int nprotoxcistructs;
+ int rlength;
+
+ nprotoxcistructs = (pmax->rightSideBearing == pmin->rightSideBearing &&
+ pmax->leftSideBearing == pmin->leftSideBearing &&
+ pmax->descent == pmin->descent &&
+ pmax->ascent == pmin->ascent &&
+ pmax->characterWidth == pmin->characterWidth) ?
+ 0 : N2dChars(pFont);
+
+ rlength = sizeof(xQueryFontReply) +
+ FONTINFONPROPS(FONTCHARSET(pFont)) * sizeof(xFontProp) +
+ nprotoxcistructs * sizeof(xCharInfo);
+ reply = calloc(1, rlength);
+ if (!reply) {
+ return BadAlloc;
+ }
+
+ reply->type = X_Reply;
+ reply->length = bytes_to_int32(rlength - sizeof(xGenericReply));
+ reply->sequenceNumber = client->sequence;
+ QueryFont(pFont, reply, nprotoxcistructs);
+
+ WriteReplyToClient(client, rlength, reply);
+ free(reply);
+ return Success;
+ }
+}
+
+int
+ProcQueryTextExtents(ClientPtr client)
+{
+ xQueryTextExtentsReply reply;
+ FontPtr pFont;
+ ExtentInfoRec info;
+ unsigned long length;
+ int rc;
+
+ REQUEST(xQueryTextExtentsReq);
+ REQUEST_AT_LEAST_SIZE(xQueryTextExtentsReq);
+
+ rc = dixLookupFontable(&pFont, stuff->fid, client, DixGetAttrAccess);
+ if (rc != Success)
+ return rc;
+
+ length = client->req_len - bytes_to_int32(sizeof(xQueryTextExtentsReq));
+ length = length << 1;
+ if (stuff->oddLength) {
+ if (length == 0)
+ return BadLength;
+ length--;
+ }
+ if (!QueryTextExtents(pFont, length, (unsigned char *) &stuff[1], &info))
+ return BadAlloc;
+
+ reply.type = X_Reply;
+ reply.drawDirection = info.drawDirection;
+ reply.sequenceNumber = client->sequence;
+ reply.length = 0;
+ reply.fontAscent = info.fontAscent;
+ reply.fontDescent = info.fontDescent;
+ reply.overallAscent = info.overallAscent;
+ reply.overallDescent = info.overallDescent;
+ reply.overallWidth = info.overallWidth;
+ reply.overallLeft = info.overallLeft;
+ reply.overallRight = info.overallRight;
+
+ WriteReplyToClient(client, sizeof(xQueryTextExtentsReply), &reply);
+ return Success;
+}
+
+int
+ProcListFonts(ClientPtr client)
+{
+ REQUEST(xListFontsReq);
+
+ REQUEST_FIXED_SIZE(xListFontsReq, stuff->nbytes);
+
+ return ListFonts(client, (unsigned char *) &stuff[1], stuff->nbytes,
+ stuff->maxNames);
+}
+
+int
+ProcListFontsWithInfo(ClientPtr client)
+{
+ REQUEST(xListFontsWithInfoReq);
+
+ REQUEST_FIXED_SIZE(xListFontsWithInfoReq, stuff->nbytes);
+
+ return StartListFontsWithInfo(client, stuff->nbytes,
+ (unsigned char *) &stuff[1], stuff->maxNames);
+}
+
+/**
+ *
+ * \param value must conform to DeleteType
+ */
+int
+dixDestroyPixmap(pointer value, XID pid)
+{
+ PixmapPtr pPixmap = (PixmapPtr) value;
+
+ return (*pPixmap->drawable.pScreen->DestroyPixmap) (pPixmap);
+}
+
+int
+ProcCreatePixmap(ClientPtr client)
+{
+ PixmapPtr pMap;
+ DrawablePtr pDraw;
+
+ REQUEST(xCreatePixmapReq);
+ DepthPtr pDepth;
+ int i, rc;
+
+ REQUEST_SIZE_MATCH(xCreatePixmapReq);
+ client->errorValue = stuff->pid;
+ LEGAL_NEW_RESOURCE(stuff->pid, client);
+
+ rc = dixLookupDrawable(&pDraw, stuff->drawable, client, M_ANY,
+ DixGetAttrAccess);
+ if (rc != Success)
+ return rc;
+
+ if (!stuff->width || !stuff->height) {
+ client->errorValue = 0;
+ return BadValue;
+ }
+ if (stuff->width > 32767 || stuff->height > 32767) {
+ /* It is allowed to try and allocate a pixmap which is larger than
+ * 32767 in either dimension. However, all of the framebuffer code
+ * is buggy and does not reliably draw to such big pixmaps, basically
+ * because the Region data structure operates with signed shorts
+ * for the rectangles in it.
+ *
+ * Furthermore, several places in the X server computes the
+ * size in bytes of the pixmap and tries to store it in an
+ * integer. This integer can overflow and cause the allocated size
+ * to be much smaller.
+ *
+ * So, such big pixmaps are rejected here with a BadAlloc
+ */
+ return BadAlloc;
+ }
+ if (stuff->depth != 1) {
+ pDepth = pDraw->pScreen->allowedDepths;
+ for (i = 0; i < pDraw->pScreen->numDepths; i++, pDepth++)
+ if (pDepth->depth == stuff->depth)
+ goto CreatePmap;
+ client->errorValue = stuff->depth;
+ return BadValue;
+ }
+ CreatePmap:
+ pMap = (PixmapPtr) (*pDraw->pScreen->CreatePixmap)
+ (pDraw->pScreen, stuff->width, stuff->height, stuff->depth, 0);
+ if (pMap) {
+ pMap->drawable.serialNumber = NEXT_SERIAL_NUMBER;
+ pMap->drawable.id = stuff->pid;
+ /* security creation/labeling check */
+ rc = XaceHook(XACE_RESOURCE_ACCESS, client, stuff->pid, RT_PIXMAP,
+ pMap, RT_NONE, NULL, DixCreateAccess);
+ if (rc != Success) {
+ (*pDraw->pScreen->DestroyPixmap) (pMap);
+ return rc;
+ }
+ if (AddResource(stuff->pid, RT_PIXMAP, (pointer) pMap))
+ return Success;
+ }
+ return BadAlloc;
+}
+
+int
+ProcFreePixmap(ClientPtr client)
+{
+ PixmapPtr pMap;
+ int rc;
+
+ REQUEST(xResourceReq);
+ REQUEST_SIZE_MATCH(xResourceReq);
+
+ rc = dixLookupResourceByType((pointer *) &pMap, stuff->id, RT_PIXMAP,
+ client, DixDestroyAccess);
+ if (rc == Success) {
+ FreeResource(stuff->id, RT_NONE);
+ return Success;
+ }
+ else {
+ client->errorValue = stuff->id;
+ return rc;
+ }
+}
+
+int
+ProcCreateGC(ClientPtr client)
+{
+ int error, rc;
+ GC *pGC;
+ DrawablePtr pDraw;
+ unsigned len;
+
+ REQUEST(xCreateGCReq);
+
+ REQUEST_AT_LEAST_SIZE(xCreateGCReq);
+ client->errorValue = stuff->gc;
+ LEGAL_NEW_RESOURCE(stuff->gc, client);
+ rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0,
+ DixGetAttrAccess);
+ if (rc != Success)
+ return rc;
+
+ len = client->req_len - bytes_to_int32(sizeof(xCreateGCReq));
+ if (len != Ones(stuff->mask))
+ return BadLength;
+ pGC = (GC *) CreateGC(pDraw, stuff->mask, (XID *) &stuff[1], &error,
+ stuff->gc, client);
+ if (error != Success)
+ return error;
+ if (!AddResource(stuff->gc, RT_GC, (pointer) pGC))
+ return BadAlloc;
+ return Success;
+}
+
+int
+ProcChangeGC(ClientPtr client)
+{
+ GC *pGC;
+ int result;
+ unsigned len;
+
+ REQUEST(xChangeGCReq);
+ REQUEST_AT_LEAST_SIZE(xChangeGCReq);
+
+ result = dixLookupGC(&pGC, stuff->gc, client, DixSetAttrAccess);
+ if (result != Success)
+ return result;
+
+ len = client->req_len - bytes_to_int32(sizeof(xChangeGCReq));
+ if (len != Ones(stuff->mask))
+ return BadLength;
+
+ return ChangeGCXIDs(client, pGC, stuff->mask, (CARD32 *) &stuff[1]);
+}
+
+int
+ProcCopyGC(ClientPtr client)
+{
+ GC *dstGC;
+ GC *pGC;
+ int result;
+
+ REQUEST(xCopyGCReq);
+ REQUEST_SIZE_MATCH(xCopyGCReq);
+
+ result = dixLookupGC(&pGC, stuff->srcGC, client, DixGetAttrAccess);
+ if (result != Success)
+ return result;
+ result = dixLookupGC(&dstGC, stuff->dstGC, client, DixSetAttrAccess);
+ if (result != Success)
+ return result;
+ if ((dstGC->pScreen != pGC->pScreen) || (dstGC->depth != pGC->depth))
+ return BadMatch;
+ if (stuff->mask & ~GCAllBits) {
+ client->errorValue = stuff->mask;
+ return BadValue;
+ }
+ return CopyGC(pGC, dstGC, stuff->mask);
+}
+
+int
+ProcSetDashes(ClientPtr client)
+{
+ GC *pGC;
+ int result;
+
+ REQUEST(xSetDashesReq);
+
+ REQUEST_FIXED_SIZE(xSetDashesReq, stuff->nDashes);
+ if (stuff->nDashes == 0) {
+ client->errorValue = 0;
+ return BadValue;
+ }
+
+ result = dixLookupGC(&pGC, stuff->gc, client, DixSetAttrAccess);
+ if (result != Success)
+ return result;
+
+ /* If there's an error, either there's no sensible errorValue,
+ * or there was a dash segment of 0. */
+ client->errorValue = 0;
+ return SetDashes(pGC, stuff->dashOffset, stuff->nDashes,
+ (unsigned char *) &stuff[1]);
+}
+
+int
+ProcSetClipRectangles(ClientPtr client)
+{
+ int nr, result;
+ GC *pGC;
+
+ REQUEST(xSetClipRectanglesReq);
+
+ REQUEST_AT_LEAST_SIZE(xSetClipRectanglesReq);
+ if ((stuff->ordering != Unsorted) && (stuff->ordering != YSorted) &&
+ (stuff->ordering != YXSorted) && (stuff->ordering != YXBanded)) {
+ client->errorValue = stuff->ordering;
+ return BadValue;
+ }
+ result = dixLookupGC(&pGC, stuff->gc, client, DixSetAttrAccess);
+ if (result != Success)
+ return result;
+
+ nr = (client->req_len << 2) - sizeof(xSetClipRectanglesReq);
+ if (nr & 4)
+ return BadLength;
+ nr >>= 3;
+ return SetClipRects(pGC, stuff->xOrigin, stuff->yOrigin,
+ nr, (xRectangle *) &stuff[1], (int) stuff->ordering);
+}
+
+int
+ProcFreeGC(ClientPtr client)
+{
+ GC *pGC;
+ int rc;
+
+ REQUEST(xResourceReq);
+ REQUEST_SIZE_MATCH(xResourceReq);
+
+ rc = dixLookupGC(&pGC, stuff->id, client, DixDestroyAccess);
+ if (rc != Success)
+ return rc;
+
+ FreeResource(stuff->id, RT_NONE);
+ return Success;
+}
+
+int
+ProcClearToBackground(ClientPtr client)
+{
+ REQUEST(xClearAreaReq);
+ WindowPtr pWin;
+ int rc;
+
+ REQUEST_SIZE_MATCH(xClearAreaReq);
+ rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess);
+ if (rc != Success)
+ return rc;
+ if (pWin->drawable.class == InputOnly) {
+ client->errorValue = stuff->window;
+ return BadMatch;
+ }
+ if ((stuff->exposures != xTrue) && (stuff->exposures != xFalse)) {
+ client->errorValue = stuff->exposures;
+ return BadValue;
+ }
+ (*pWin->drawable.pScreen->ClearToBackground) (pWin, stuff->x, stuff->y,
+ stuff->width, stuff->height,
+ (Bool) stuff->exposures);
+ return Success;
+}
+
+int
+ProcCopyArea(ClientPtr client)
+{
+ DrawablePtr pDst;
+ DrawablePtr pSrc;
+ GC *pGC;
+
+ REQUEST(xCopyAreaReq);
+ RegionPtr pRgn;
+ int rc;
+
+ REQUEST_SIZE_MATCH(xCopyAreaReq);
+
+ VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pDst, DixWriteAccess);
+ if (stuff->dstDrawable != stuff->srcDrawable) {
+ rc = dixLookupDrawable(&pSrc, stuff->srcDrawable, client, 0,
+ DixReadAccess);
+ if (rc != Success)
+ return rc;
+ if ((pDst->pScreen != pSrc->pScreen) || (pDst->depth != pSrc->depth)) {
+ client->errorValue = stuff->dstDrawable;
+ return BadMatch;
+ }
+ }
+ else
+ pSrc = pDst;
+
+ pRgn = (*pGC->ops->CopyArea) (pSrc, pDst, pGC, stuff->srcX, stuff->srcY,
+ stuff->width, stuff->height,
+ stuff->dstX, stuff->dstY);
+ if (pGC->graphicsExposures) {
+ (*pDst->pScreen->SendGraphicsExpose)
+ (client, pRgn, stuff->dstDrawable, X_CopyArea, 0);
+ if (pRgn)
+ RegionDestroy(pRgn);
+ }
+
+ return Success;
+}
+
+int
+ProcCopyPlane(ClientPtr client)
+{
+ DrawablePtr psrcDraw, pdstDraw;
+ GC *pGC;
+
+ REQUEST(xCopyPlaneReq);
+ RegionPtr pRgn;
+ int rc;
+
+ REQUEST_SIZE_MATCH(xCopyPlaneReq);
+
+ VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pdstDraw, DixWriteAccess);
+ if (stuff->dstDrawable != stuff->srcDrawable) {
+ rc = dixLookupDrawable(&psrcDraw, stuff->srcDrawable, client, 0,
+ DixReadAccess);
+ if (rc != Success)
+ return rc;
+
+ if (pdstDraw->pScreen != psrcDraw->pScreen) {
+ client->errorValue = stuff->dstDrawable;
+ return BadMatch;
+ }
+ }
+ else
+ psrcDraw = pdstDraw;
+
+ /* Check to see if stuff->bitPlane has exactly ONE good bit set */
+ if (stuff->bitPlane == 0 || (stuff->bitPlane & (stuff->bitPlane - 1)) ||
+ (stuff->bitPlane > (1L << (psrcDraw->depth - 1)))) {
+ client->errorValue = stuff->bitPlane;
+ return BadValue;
+ }
+
+ pRgn =
+ (*pGC->ops->CopyPlane) (psrcDraw, pdstDraw, pGC, stuff->srcX,
+ stuff->srcY, stuff->width, stuff->height,
+ stuff->dstX, stuff->dstY, stuff->bitPlane);
+ if (pGC->graphicsExposures) {
+ (*pdstDraw->pScreen->SendGraphicsExpose)
+ (client, pRgn, stuff->dstDrawable, X_CopyPlane, 0);
+ if (pRgn)
+ RegionDestroy(pRgn);
+ }
+ return Success;
+}
+
+int
+ProcPolyPoint(ClientPtr client)
+{
+ int npoint;
+ GC *pGC;
+ DrawablePtr pDraw;
+
+ REQUEST(xPolyPointReq);
+
+ REQUEST_AT_LEAST_SIZE(xPolyPointReq);
+ if ((stuff->coordMode != CoordModeOrigin) &&
+ (stuff->coordMode != CoordModePrevious)) {
+ client->errorValue = stuff->coordMode;
+ return BadValue;
+ }
+ VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
+ npoint = bytes_to_int32((client->req_len << 2) - sizeof(xPolyPointReq));
+ if (npoint)
+ (*pGC->ops->PolyPoint) (pDraw, pGC, stuff->coordMode, npoint,
+ (xPoint *) &stuff[1]);
+ return Success;
+}
+
+int
+ProcPolyLine(ClientPtr client)
+{
+ int npoint;
+ GC *pGC;
+ DrawablePtr pDraw;
+
+ REQUEST(xPolyLineReq);
+
+ REQUEST_AT_LEAST_SIZE(xPolyLineReq);
+ if ((stuff->coordMode != CoordModeOrigin) &&
+ (stuff->coordMode != CoordModePrevious)) {
+ client->errorValue = stuff->coordMode;
+ return BadValue;
+ }
+ VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
+ npoint = bytes_to_int32((client->req_len << 2) - sizeof(xPolyLineReq));
+ if (npoint > 1)
+ (*pGC->ops->Polylines) (pDraw, pGC, stuff->coordMode, npoint,
+ (DDXPointPtr) &stuff[1]);
+ return Success;
+}
+
+int
+ProcPolySegment(ClientPtr client)
+{
+ int nsegs;
+ GC *pGC;
+ DrawablePtr pDraw;
+
+ REQUEST(xPolySegmentReq);
+
+ REQUEST_AT_LEAST_SIZE(xPolySegmentReq);
+ VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
+ nsegs = (client->req_len << 2) - sizeof(xPolySegmentReq);
+ if (nsegs & 4)
+ return BadLength;
+ nsegs >>= 3;
+ if (nsegs)
+ (*pGC->ops->PolySegment) (pDraw, pGC, nsegs, (xSegment *) &stuff[1]);
+ return Success;
+}
+
+int
+ProcPolyRectangle(ClientPtr client)
+{
+ int nrects;
+ GC *pGC;
+ DrawablePtr pDraw;
+
+ REQUEST(xPolyRectangleReq);
+
+ REQUEST_AT_LEAST_SIZE(xPolyRectangleReq);
+ VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
+ nrects = (client->req_len << 2) - sizeof(xPolyRectangleReq);
+ if (nrects & 4)
+ return BadLength;
+ nrects >>= 3;
+ if (nrects)
+ (*pGC->ops->PolyRectangle) (pDraw, pGC,
+ nrects, (xRectangle *) &stuff[1]);
+ return Success;
+}
+
+int
+ProcPolyArc(ClientPtr client)
+{
+ int narcs;
+ GC *pGC;
+ DrawablePtr pDraw;
+
+ REQUEST(xPolyArcReq);
+
+ REQUEST_AT_LEAST_SIZE(xPolyArcReq);
+ VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
+ narcs = (client->req_len << 2) - sizeof(xPolyArcReq);
+ if (narcs % sizeof(xArc))
+ return BadLength;
+ narcs /= sizeof(xArc);
+ if (narcs)
+ (*pGC->ops->PolyArc) (pDraw, pGC, narcs, (xArc *) &stuff[1]);
+ return Success;
+}
+
+int
+ProcFillPoly(ClientPtr client)
+{
+ int things;
+ GC *pGC;
+ DrawablePtr pDraw;
+
+ REQUEST(xFillPolyReq);
+
+ REQUEST_AT_LEAST_SIZE(xFillPolyReq);
+ if ((stuff->shape != Complex) && (stuff->shape != Nonconvex) &&
+ (stuff->shape != Convex)) {
+ client->errorValue = stuff->shape;
+ return BadValue;
+ }
+ if ((stuff->coordMode != CoordModeOrigin) &&
+ (stuff->coordMode != CoordModePrevious)) {
+ client->errorValue = stuff->coordMode;
+ return BadValue;
+ }
+
+ VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
+ things = bytes_to_int32((client->req_len << 2) - sizeof(xFillPolyReq));
+ if (things)
+ (*pGC->ops->FillPolygon) (pDraw, pGC, stuff->shape,
+ stuff->coordMode, things,
+ (DDXPointPtr) &stuff[1]);
+ return Success;
+}
+
+int
+ProcPolyFillRectangle(ClientPtr client)
+{
+ int things;
+ GC *pGC;
+ DrawablePtr pDraw;
+
+ REQUEST(xPolyFillRectangleReq);
+
+ REQUEST_AT_LEAST_SIZE(xPolyFillRectangleReq);
+ VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
+ things = (client->req_len << 2) - sizeof(xPolyFillRectangleReq);
+ if (things & 4)
+ return BadLength;
+ things >>= 3;
+
+ if (things)
+ (*pGC->ops->PolyFillRect) (pDraw, pGC, things,
+ (xRectangle *) &stuff[1]);
+ return Success;
+}
+
+int
+ProcPolyFillArc(ClientPtr client)
+{
+ int narcs;
+ GC *pGC;
+ DrawablePtr pDraw;
+
+ REQUEST(xPolyFillArcReq);
+
+ REQUEST_AT_LEAST_SIZE(xPolyFillArcReq);
+ VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
+ narcs = (client->req_len << 2) - sizeof(xPolyFillArcReq);
+ if (narcs % sizeof(xArc))
+ return BadLength;
+ narcs /= sizeof(xArc);
+ if (narcs)
+ (*pGC->ops->PolyFillArc) (pDraw, pGC, narcs, (xArc *) &stuff[1]);
+ return Success;
+}
+
+#ifdef MATCH_CLIENT_ENDIAN
+
+int
+ServerOrder(void)
+{
+ int whichbyte = 1;
+
+ if (*((char *) &whichbyte))
+ return LSBFirst;
+ return MSBFirst;
+}
+
+#define ClientOrder(client) ((client)->swapped ? !ServerOrder() : ServerOrder())
+
+void
+ReformatImage(char *base, int nbytes, int bpp, int order)
+{
+ switch (bpp) {
+ case 1: /* yuck */
+ if (BITMAP_BIT_ORDER != order)
+ BitOrderInvert((unsigned char *) base, nbytes);
+#if IMAGE_BYTE_ORDER != BITMAP_BIT_ORDER && BITMAP_SCANLINE_UNIT != 8
+ ReformatImage(base, nbytes, BITMAP_SCANLINE_UNIT, order);
+#endif
+ break;
+ case 4:
+ break; /* yuck */
+ case 8:
+ break;
+ case 16:
+ if (IMAGE_BYTE_ORDER != order)
+ TwoByteSwap((unsigned char *) base, nbytes);
+ break;
+ case 32:
+ if (IMAGE_BYTE_ORDER != order)
+ FourByteSwap((unsigned char *) base, nbytes);
+ break;
+ }
+}
+#else
+#define ReformatImage(b,n,bpp,o)
+#endif
+
+/* 64-bit server notes: the protocol restricts padding of images to
+ * 8-, 16-, or 32-bits. We would like to have 64-bits for the server
+ * to use internally. Removes need for internal alignment checking.
+ * All of the PutImage functions could be changed individually, but
+ * as currently written, they call other routines which require things
+ * to be 64-bit padded on scanlines, so we changed things here.
+ * If an image would be padded differently for 64- versus 32-, then
+ * copy each scanline to a 64-bit padded scanline.
+ * Also, we need to make sure that the image is aligned on a 64-bit
+ * boundary, even if the scanlines are padded to our satisfaction.
+ */
+int
+ProcPutImage(ClientPtr client)
+{
+ GC *pGC;
+ DrawablePtr pDraw;
+ long length; /* length of scanline server padded */
+ long lengthProto; /* length of scanline protocol padded */
+ char *tmpImage;
+
+ REQUEST(xPutImageReq);
+
+ REQUEST_AT_LEAST_SIZE(xPutImageReq);
+ VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
+ if (stuff->format == XYBitmap) {
+ if ((stuff->depth != 1) ||
+ (stuff->leftPad >= (unsigned int) screenInfo.bitmapScanlinePad))
+ return BadMatch;
+ length = BitmapBytePad(stuff->width + stuff->leftPad);
+ }
+ else if (stuff->format == XYPixmap) {
+ if ((pDraw->depth != stuff->depth) ||
+ (stuff->leftPad >= (unsigned int) screenInfo.bitmapScanlinePad))
+ return BadMatch;
+ length = BitmapBytePad(stuff->width + stuff->leftPad);
+ length *= stuff->depth;
+ }
+ else if (stuff->format == ZPixmap) {
+ if ((pDraw->depth != stuff->depth) || (stuff->leftPad != 0))
+ return BadMatch;
+ length = PixmapBytePad(stuff->width, stuff->depth);
+ }
+ else {
+ client->errorValue = stuff->format;
+ return BadValue;
+ }
+
+ tmpImage = (char *) &stuff[1];
+ lengthProto = length;
+
+ if ((bytes_to_int32(lengthProto * stuff->height) +
+ bytes_to_int32(sizeof(xPutImageReq))) != client->req_len)
+ return BadLength;
+
+ ReformatImage(tmpImage, lengthProto * stuff->height,
+ stuff->format == ZPixmap ? BitsPerPixel(stuff->depth) : 1,
+ ClientOrder(client));
+
+ (*pGC->ops->PutImage) (pDraw, pGC, stuff->depth, stuff->dstX, stuff->dstY,
+ stuff->width, stuff->height,
+ stuff->leftPad, stuff->format, tmpImage);
+
+ return Success;
+}
+
+static int
+DoGetImage(ClientPtr client, int format, Drawable drawable,
+ int x, int y, int width, int height,
+ Mask planemask)
+{
+ DrawablePtr pDraw, pBoundingDraw;
+ int nlines, linesPerBuf, rc;
+ int linesDone;
+
+ /* coordinates relative to the bounding drawable */
+ int relx, rely;
+ long widthBytesLine, length;
+ Mask plane = 0;
+ char *pBuf;
+ xGetImageReply xgi;
+ RegionPtr pVisibleRegion = NULL;
+
+ if ((format != XYPixmap) && (format != ZPixmap)) {
+ client->errorValue = format;
+ return BadValue;
+ }
+ rc = dixLookupDrawable(&pDraw, drawable, client, 0, DixReadAccess);
+ if (rc != Success)
+ return rc;
+
+ memset(&xgi, 0, sizeof(xGetImageReply));
+
+ relx = x;
+ rely = y;
+
+ if (pDraw->type == DRAWABLE_WINDOW) {
+ WindowPtr pWin = (WindowPtr) pDraw;
+
+ /* "If the drawable is a window, the window must be viewable ... or a
+ * BadMatch error results" */
+ if (!pWin->viewable)
+ return BadMatch;
+
+ /* If the drawable is a window, the rectangle must be contained within
+ * its bounds (including the border). */
+ if (x < -wBorderWidth(pWin) ||
+ x + width > wBorderWidth(pWin) + (int) pDraw->width ||
+ y < -wBorderWidth(pWin) ||
+ y + height > wBorderWidth(pWin) + (int) pDraw->height)
+ return BadMatch;
+
+ relx += pDraw->x;
+ rely += pDraw->y;
+
+ if (pDraw->pScreen->GetWindowPixmap) {
+ PixmapPtr pPix = (*pDraw->pScreen->GetWindowPixmap) (pWin);
+
+ pBoundingDraw = &pPix->drawable;
+#ifdef COMPOSITE
+ relx -= pPix->screen_x;
+ rely -= pPix->screen_y;
+#endif
+ }
+ else {
+ pBoundingDraw = (DrawablePtr) pDraw->pScreen->root;
+ }
+
+ xgi.visual = wVisual(pWin);
+ }
+ else {
+ pBoundingDraw = pDraw;
+ xgi.visual = None;
+ }
+
+ /* "If the drawable is a pixmap, the given rectangle must be wholly
+ * contained within the pixmap, or a BadMatch error results. If the
+ * drawable is a window [...] it must be the case that if there were no
+ * inferiors or overlapping windows, the specified rectangle of the window
+ * would be fully visible on the screen and wholly contained within the
+ * outside edges of the window, or a BadMatch error results."
+ *
+ * We relax the window case slightly to mean that the rectangle must exist
+ * within the bounds of the window's backing pixmap. In particular, this
+ * means that a GetImage request may succeed or fail with BadMatch depending
+ * on whether any of its ancestor windows are redirected. */
+ if (relx < 0 || relx + width > (int) pBoundingDraw->width ||
+ rely < 0 || rely + height > (int) pBoundingDraw->height)
+ return BadMatch;
+
+ xgi.type = X_Reply;
+ xgi.sequenceNumber = client->sequence;
+ xgi.depth = pDraw->depth;
+ if (format == ZPixmap) {
+ widthBytesLine = PixmapBytePad(width, pDraw->depth);
+ length = widthBytesLine * height;
+
+ }
+ else {
+ widthBytesLine = BitmapBytePad(width);
+ plane = ((Mask) 1) << (pDraw->depth - 1);
+ /* only planes asked for */
+ length = widthBytesLine * height *
+ Ones(planemask & (plane | (plane - 1)));
+
+ }
+
+ xgi.length = length;
+
+ xgi.length = bytes_to_int32(xgi.length);
+ if (widthBytesLine == 0 || height == 0)
+ linesPerBuf = 0;
+ else if (widthBytesLine >= IMAGE_BUFSIZE)
+ linesPerBuf = 1;
+ else {
+ linesPerBuf = IMAGE_BUFSIZE / widthBytesLine;
+ if (linesPerBuf > height)
+ linesPerBuf = height;
+ }
+ length = linesPerBuf * widthBytesLine;
+ if (linesPerBuf < height) {
+ /* we have to make sure intermediate buffers don't need padding */
+ while ((linesPerBuf > 1) &&
+ (length & ((1L << LOG2_BYTES_PER_SCANLINE_PAD) - 1))) {
+ linesPerBuf--;
+ length -= widthBytesLine;
+ }
+ while (length & ((1L << LOG2_BYTES_PER_SCANLINE_PAD) - 1)) {
+ linesPerBuf++;
+ length += widthBytesLine;
+ }
+ }
+ if (!(pBuf = calloc(1, length)))
+ return BadAlloc;
+ WriteReplyToClient(client, sizeof(xGetImageReply), &xgi);
+
+ if (pDraw->type == DRAWABLE_WINDOW) {
+ pVisibleRegion = NotClippedByChildren((WindowPtr) pDraw);
+ if (pVisibleRegion) {
+ RegionTranslate(pVisibleRegion, -pDraw->x, -pDraw->y);
+ }
+ }
+
+ if (linesPerBuf == 0) {
+ /* nothing to do */
+ }
+ else if (format == ZPixmap) {
+ linesDone = 0;
+ while (height - linesDone > 0) {
+ nlines = min(linesPerBuf, height - linesDone);
+ (*pDraw->pScreen->GetImage) (pDraw,
+ x,
+ y + linesDone,
+ width,
+ nlines,
+ format, planemask, (pointer) pBuf);
+ if (pVisibleRegion)
+ XaceCensorImage(client, pVisibleRegion, widthBytesLine,
+ pDraw, x, y + linesDone, width,
+ nlines, format, pBuf);
+
+ /* Note that this is NOT a call to WriteSwappedDataToClient,
+ as we do NOT byte swap */
+ ReformatImage(pBuf, (int) (nlines * widthBytesLine),
+ BitsPerPixel(pDraw->depth), ClientOrder(client));
+
+ WriteToClient(client, (int) (nlines * widthBytesLine), pBuf);
+ linesDone += nlines;
+ }
+ }
+ else { /* XYPixmap */
+
+ for (; plane; plane >>= 1) {
+ if (planemask & plane) {
+ linesDone = 0;
+ while (height - linesDone > 0) {
+ nlines = min(linesPerBuf, height - linesDone);
+ (*pDraw->pScreen->GetImage) (pDraw,
+ x,
+ y + linesDone,
+ width,
+ nlines,
+ format, plane, (pointer) pBuf);
+ if (pVisibleRegion)
+ XaceCensorImage(client, pVisibleRegion,
+ widthBytesLine,
+ pDraw, x, y + linesDone, width,
+ nlines, format, pBuf);
+
+ /* Note: NOT a call to WriteSwappedDataToClient,
+ as we do NOT byte swap */
+ ReformatImage(pBuf, (int) (nlines * widthBytesLine),
+ 1, ClientOrder(client));
+
+ WriteToClient(client, (int)(nlines * widthBytesLine), pBuf);
+ linesDone += nlines;
+ }
+ }
+ }
+ }
+ if (pVisibleRegion)
+ RegionDestroy(pVisibleRegion);
+ free(pBuf);
+ return Success;
+}
+
+int
+ProcGetImage(ClientPtr client)
+{
+ REQUEST(xGetImageReq);
+
+ REQUEST_SIZE_MATCH(xGetImageReq);
+
+ return DoGetImage(client, stuff->format, stuff->drawable,
+ stuff->x, stuff->y,
+ (int) stuff->width, (int) stuff->height,
+ stuff->planeMask);
+}
+
+int
+ProcPolyText(ClientPtr client)
+{
+ int err;
+
+ REQUEST(xPolyTextReq);
+ DrawablePtr pDraw;
+ GC *pGC;
+
+ REQUEST_AT_LEAST_SIZE(xPolyTextReq);
+ VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
+
+ err = PolyText(client,
+ pDraw,
+ pGC,
+ (unsigned char *) &stuff[1],
+ ((unsigned char *) stuff) + (client->req_len << 2),
+ stuff->x, stuff->y, stuff->reqType, stuff->drawable);
+
+ if (err == Success) {
+ return Success;
+ }
+ else
+ return err;
+}
+
+int
+ProcImageText8(ClientPtr client)
+{
+ int err;
+ DrawablePtr pDraw;
+ GC *pGC;
+
+ REQUEST(xImageTextReq);
+
+ REQUEST_FIXED_SIZE(xImageTextReq, stuff->nChars);
+ VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
+
+ err = ImageText(client,
+ pDraw,
+ pGC,
+ stuff->nChars,
+ (unsigned char *) &stuff[1],
+ stuff->x, stuff->y, stuff->reqType, stuff->drawable);
+
+ if (err == Success) {
+ return Success;
+ }
+ else
+ return err;
+}
+
+int
+ProcImageText16(ClientPtr client)
+{
+ int err;
+ DrawablePtr pDraw;
+ GC *pGC;
+
+ REQUEST(xImageTextReq);
+
+ REQUEST_FIXED_SIZE(xImageTextReq, stuff->nChars << 1);
+ VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
+
+ err = ImageText(client,
+ pDraw,
+ pGC,
+ stuff->nChars,
+ (unsigned char *) &stuff[1],
+ stuff->x, stuff->y, stuff->reqType, stuff->drawable);
+
+ if (err == Success) {
+ return Success;
+ }
+ else
+ return err;
+}
+
+int
+ProcCreateColormap(ClientPtr client)
+{
+ VisualPtr pVisual;
+ ColormapPtr pmap;
+ Colormap mid;
+ WindowPtr pWin;
+ ScreenPtr pScreen;
+
+ REQUEST(xCreateColormapReq);
+ int i, result;
+
+ REQUEST_SIZE_MATCH(xCreateColormapReq);
+
+ if ((stuff->alloc != AllocNone) && (stuff->alloc != AllocAll)) {
+ client->errorValue = stuff->alloc;
+ return BadValue;
+ }
+ mid = stuff->mid;
+ LEGAL_NEW_RESOURCE(mid, client);
+ result = dixLookupWindow(&pWin, stuff->window, client, DixGetAttrAccess);
+ if (result != Success)
+ return result;
+
+ pScreen = pWin->drawable.pScreen;
+ for (i = 0, pVisual = pScreen->visuals;
+ i < pScreen->numVisuals; i++, pVisual++) {
+ if (pVisual->vid != stuff->visual)
+ continue;
+ return CreateColormap(mid, pScreen, pVisual, &pmap,
+ (int) stuff->alloc, client->index);
+ }
+ client->errorValue = stuff->visual;
+ return BadMatch;
+}
+
+int
+ProcFreeColormap(ClientPtr client)
+{
+ ColormapPtr pmap;
+ int rc;
+
+ REQUEST(xResourceReq);
+
+ REQUEST_SIZE_MATCH(xResourceReq);
+ rc = dixLookupResourceByType((pointer *) &pmap, stuff->id, RT_COLORMAP,
+ client, DixDestroyAccess);
+ if (rc == Success) {
+ /* Freeing a default colormap is a no-op */
+ if (!(pmap->flags & IsDefault))
+ FreeResource(stuff->id, RT_NONE);
+ return Success;
+ }
+ else {
+ client->errorValue = stuff->id;
+ return rc;
+ }
+}
+
+int
+ProcCopyColormapAndFree(ClientPtr client)
+{
+ Colormap mid;
+ ColormapPtr pSrcMap;
+
+ REQUEST(xCopyColormapAndFreeReq);
+ int rc;
+
+ REQUEST_SIZE_MATCH(xCopyColormapAndFreeReq);
+ mid = stuff->mid;
+ LEGAL_NEW_RESOURCE(mid, client);
+ rc = dixLookupResourceByType((pointer *) &pSrcMap, stuff->srcCmap,
+ RT_COLORMAP, client,
+ DixReadAccess | DixRemoveAccess);
+ if (rc == Success)
+ return CopyColormapAndFree(mid, pSrcMap, client->index);
+ client->errorValue = stuff->srcCmap;
+ return rc;
+}
+
+int
+ProcInstallColormap(ClientPtr client)
+{
+ ColormapPtr pcmp;
+ int rc;
+
+ REQUEST(xResourceReq);
+ REQUEST_SIZE_MATCH(xResourceReq);
+
+ rc = dixLookupResourceByType((pointer *) &pcmp, stuff->id, RT_COLORMAP,
+ client, DixInstallAccess);
+ if (rc != Success)
+ goto out;
+
+ rc = XaceHook(XACE_SCREEN_ACCESS, client, pcmp->pScreen, DixSetAttrAccess);
+ if (rc != Success) {
+ if (rc == BadValue)
+ rc = BadColor;
+ goto out;
+ }
+
+ (*(pcmp->pScreen->InstallColormap)) (pcmp);
+ return Success;
+
+ out:
+ client->errorValue = stuff->id;
+ return rc;
+}
+
+int
+ProcUninstallColormap(ClientPtr client)
+{
+ ColormapPtr pcmp;
+ int rc;
+
+ REQUEST(xResourceReq);
+ REQUEST_SIZE_MATCH(xResourceReq);
+
+ rc = dixLookupResourceByType((pointer *) &pcmp, stuff->id, RT_COLORMAP,
+ client, DixUninstallAccess);
+ if (rc != Success)
+ goto out;
+
+ rc = XaceHook(XACE_SCREEN_ACCESS, client, pcmp->pScreen, DixSetAttrAccess);
+ if (rc != Success) {
+ if (rc == BadValue)
+ rc = BadColor;
+ goto out;
+ }
+
+ if (pcmp->mid != pcmp->pScreen->defColormap)
+ (*(pcmp->pScreen->UninstallColormap)) (pcmp);
+ return Success;
+
+ out:
+ client->errorValue = stuff->id;
+ return rc;
+}
+
+int
+ProcListInstalledColormaps(ClientPtr client)
+{
+ xListInstalledColormapsReply *preply;
+ int nummaps, rc;
+ WindowPtr pWin;
+
+ REQUEST(xResourceReq);
+ REQUEST_SIZE_MATCH(xResourceReq);
+
+ rc = dixLookupWindow(&pWin, stuff->id, client, DixGetAttrAccess);
+ if (rc != Success)
+ return rc;
+
+ rc = XaceHook(XACE_SCREEN_ACCESS, client, pWin->drawable.pScreen,
+ DixGetAttrAccess);
+ if (rc != Success)
+ return rc;
+
+ preply = malloc(sizeof(xListInstalledColormapsReply) +
+ pWin->drawable.pScreen->maxInstalledCmaps *
+ sizeof(Colormap));
+ if (!preply)
+ return BadAlloc;
+
+ preply->type = X_Reply;
+ preply->sequenceNumber = client->sequence;
+ nummaps = (*pWin->drawable.pScreen->ListInstalledColormaps)
+ (pWin->drawable.pScreen, (Colormap *) &preply[1]);
+ preply->nColormaps = nummaps;
+ preply->length = nummaps;
+ WriteReplyToClient(client, sizeof(xListInstalledColormapsReply), preply);
+ client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write;
+ WriteSwappedDataToClient(client, nummaps * sizeof(Colormap), &preply[1]);
+ free(preply);
+ return Success;
+}
+
+int
+ProcAllocColor(ClientPtr client)
+{
+ ColormapPtr pmap;
+ int rc;
+
+ REQUEST(xAllocColorReq);
+
+ REQUEST_SIZE_MATCH(xAllocColorReq);
+ rc = dixLookupResourceByType((pointer *) &pmap, stuff->cmap, RT_COLORMAP,
+ client, DixAddAccess);
+ if (rc == Success) {
+ xAllocColorReply acr;
+ acr.type = X_Reply;
+ acr.sequenceNumber = client->sequence;
+ acr.length = 0;
+ acr.red = stuff->red;
+ acr.green = stuff->green;
+ acr.blue = stuff->blue;
+ acr.pixel = 0;
+ if ((rc = AllocColor(pmap, &acr.red, &acr.green, &acr.blue,
+ &acr.pixel, client->index)))
+ return rc;
+#ifdef PANORAMIX
+ if (noPanoramiXExtension || !pmap->pScreen->myNum)
+#endif
+ WriteReplyToClient(client, sizeof(xAllocColorReply), &acr);
+ return Success;
+
+ }
+ else {
+ client->errorValue = stuff->cmap;
+ return rc;
+ }
+}
+
+int
+ProcAllocNamedColor(ClientPtr client)
+{
+ ColormapPtr pcmp;
+ int rc;
+
+ REQUEST(xAllocNamedColorReq);
+
+ REQUEST_FIXED_SIZE(xAllocNamedColorReq, stuff->nbytes);
+ rc = dixLookupResourceByType((pointer *) &pcmp, stuff->cmap, RT_COLORMAP,
+ client, DixAddAccess);
+ if (rc == Success) {
+ xAllocNamedColorReply ancr;
+ ancr.type = X_Reply;
+ ancr.sequenceNumber = client->sequence;
+ ancr.length = 0;
+
+ if (OsLookupColor
+ (pcmp->pScreen->myNum, (char *) &stuff[1], stuff->nbytes,
+ &ancr.exactRed, &ancr.exactGreen, &ancr.exactBlue)) {
+ ancr.screenRed = ancr.exactRed;
+ ancr.screenGreen = ancr.exactGreen;
+ ancr.screenBlue = ancr.exactBlue;
+ ancr.pixel = 0;
+ if ((rc = AllocColor(pcmp,
+ &ancr.screenRed, &ancr.screenGreen,
+ &ancr.screenBlue, &ancr.pixel, client->index)))
+ return rc;
+#ifdef PANORAMIX
+ if (noPanoramiXExtension || !pcmp->pScreen->myNum)
+#endif
+ WriteReplyToClient(client, sizeof(xAllocNamedColorReply),
+ &ancr);
+ return Success;
+ }
+ else
+ return BadName;
+
+ }
+ else {
+ client->errorValue = stuff->cmap;
+ return rc;
+ }
+}
+
+int
+ProcAllocColorCells(ClientPtr client)
+{
+ ColormapPtr pcmp;
+ int rc;
+
+ REQUEST(xAllocColorCellsReq);
+
+ REQUEST_SIZE_MATCH(xAllocColorCellsReq);
+ rc = dixLookupResourceByType((pointer *) &pcmp, stuff->cmap, RT_COLORMAP,
+ client, DixAddAccess);
+ if (rc == Success) {
+ int npixels, nmasks;
+ long length;
+ Pixel *ppixels, *pmasks;
+
+ npixels = stuff->colors;
+ if (!npixels) {
+ client->errorValue = npixels;
+ return BadValue;
+ }
+ if (stuff->contiguous != xTrue && stuff->contiguous != xFalse) {
+ client->errorValue = stuff->contiguous;
+ return BadValue;
+ }
+ nmasks = stuff->planes;
+ length = ((long) npixels + (long) nmasks) * sizeof(Pixel);
+ ppixels = malloc(length);
+ if (!ppixels)
+ return BadAlloc;
+ pmasks = ppixels + npixels;
+
+ if ((rc = AllocColorCells(client->index, pcmp, npixels, nmasks,
+ (Bool) stuff->contiguous, ppixels, pmasks))) {
+ free(ppixels);
+ return rc;
+ }
+#ifdef PANORAMIX
+ if (noPanoramiXExtension || !pcmp->pScreen->myNum)
+#endif
+ {
+ xAllocColorCellsReply accr;
+ accr.type = X_Reply;
+ accr.sequenceNumber = client->sequence;
+ accr.length = bytes_to_int32(length);
+ accr.nPixels = npixels;
+ accr.nMasks = nmasks;
+ WriteReplyToClient(client, sizeof(xAllocColorCellsReply), &accr);
+ client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write;
+ WriteSwappedDataToClient(client, length, ppixels);
+ }
+ free(ppixels);
+ return Success;
+ }
+ else {
+ client->errorValue = stuff->cmap;
+ return rc;
+ }
+}
+
+int
+ProcAllocColorPlanes(ClientPtr client)
+{
+ ColormapPtr pcmp;
+ int rc;
+
+ REQUEST(xAllocColorPlanesReq);
+
+ REQUEST_SIZE_MATCH(xAllocColorPlanesReq);
+ rc = dixLookupResourceByType((pointer *) &pcmp, stuff->cmap, RT_COLORMAP,
+ client, DixAddAccess);
+ if (rc == Success) {
+ xAllocColorPlanesReply acpr;
+ int npixels;
+ long length;
+ Pixel *ppixels;
+
+ npixels = stuff->colors;
+ if (!npixels) {
+ client->errorValue = npixels;
+ return BadValue;
+ }
+ if (stuff->contiguous != xTrue && stuff->contiguous != xFalse) {
+ client->errorValue = stuff->contiguous;
+ return BadValue;
+ }
+
+ acpr.type = X_Reply;
+ acpr.sequenceNumber = client->sequence;
+ acpr.nPixels = npixels;
+
+ length = (long) npixels *sizeof(Pixel);
+
+ ppixels = malloc(length);
+ if (!ppixels)
+ return BadAlloc;
+ if ((rc = AllocColorPlanes(client->index, pcmp, npixels,
+ (int) stuff->red, (int) stuff->green,
+ (int) stuff->blue, (Bool) stuff->contiguous,
+ ppixels, &acpr.redMask, &acpr.greenMask,
+ &acpr.blueMask))) {
+ free(ppixels);
+ return rc;
+ }
+ acpr.length = bytes_to_int32(length);
+#ifdef PANORAMIX
+ if (noPanoramiXExtension || !pcmp->pScreen->myNum)
+#endif
+ {
+ WriteReplyToClient(client, sizeof(xAllocColorPlanesReply), &acpr);
+ client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write;
+ WriteSwappedDataToClient(client, length, ppixels);
+ }
+ free(ppixels);
+ return Success;
+ }
+ else {
+ client->errorValue = stuff->cmap;
+ return rc;
+ }
+}
+
+int
+ProcFreeColors(ClientPtr client)
+{
+ ColormapPtr pcmp;
+ int rc;
+
+ REQUEST(xFreeColorsReq);
+
+ REQUEST_AT_LEAST_SIZE(xFreeColorsReq);
+ rc = dixLookupResourceByType((pointer *) &pcmp, stuff->cmap, RT_COLORMAP,
+ client, DixRemoveAccess);
+ if (rc == Success) {
+ int count;
+
+ if (pcmp->flags & AllAllocated)
+ return BadAccess;
+ count = bytes_to_int32((client->req_len << 2) - sizeof(xFreeColorsReq));
+ return FreeColors(pcmp, client->index, count,
+ (Pixel *) &stuff[1], (Pixel) stuff->planeMask);
+ }
+ else {
+ client->errorValue = stuff->cmap;
+ return rc;
+ }
+}
+
+int
+ProcStoreColors(ClientPtr client)
+{
+ ColormapPtr pcmp;
+ int rc;
+
+ REQUEST(xStoreColorsReq);
+
+ REQUEST_AT_LEAST_SIZE(xStoreColorsReq);
+ rc = dixLookupResourceByType((pointer *) &pcmp, stuff->cmap, RT_COLORMAP,
+ client, DixWriteAccess);
+ if (rc == Success) {
+ int count;
+
+ count = (client->req_len << 2) - sizeof(xStoreColorsReq);
+ if (count % sizeof(xColorItem))
+ return BadLength;
+ count /= sizeof(xColorItem);
+ return StoreColors(pcmp, count, (xColorItem *) &stuff[1], client);
+ }
+ else {
+ client->errorValue = stuff->cmap;
+ return rc;
+ }
+}
+
+int
+ProcStoreNamedColor(ClientPtr client)
+{
+ ColormapPtr pcmp;
+ int rc;
+
+ REQUEST(xStoreNamedColorReq);
+
+ REQUEST_FIXED_SIZE(xStoreNamedColorReq, stuff->nbytes);
+ rc = dixLookupResourceByType((pointer *) &pcmp, stuff->cmap, RT_COLORMAP,
+ client, DixWriteAccess);
+ if (rc == Success) {
+ xColorItem def;
+
+ if (OsLookupColor(pcmp->pScreen->myNum, (char *) &stuff[1],
+ stuff->nbytes, &def.red, &def.green, &def.blue)) {
+ def.flags = stuff->flags;
+ def.pixel = stuff->pixel;
+ return StoreColors(pcmp, 1, &def, client);
+ }
+ return BadName;
+ }
+ else {
+ client->errorValue = stuff->cmap;
+ return rc;
+ }
+}
+
+int
+ProcQueryColors(ClientPtr client)
+{
+ ColormapPtr pcmp;
+ int rc;
+
+ REQUEST(xQueryColorsReq);
+
+ REQUEST_AT_LEAST_SIZE(xQueryColorsReq);
+ rc = dixLookupResourceByType((pointer *) &pcmp, stuff->cmap, RT_COLORMAP,
+ client, DixReadAccess);
+ if (rc == Success) {
+ int count;
+ xrgb *prgbs;
+ xQueryColorsReply qcr;
+
+ count =
+ bytes_to_int32((client->req_len << 2) - sizeof(xQueryColorsReq));
+ prgbs = calloc(1, count * sizeof(xrgb));
+ if (!prgbs && count)
+ return BadAlloc;
+ if ((rc =
+ QueryColors(pcmp, count, (Pixel *) &stuff[1], prgbs, client))) {
+ free(prgbs);
+ return rc;
+ }
+ memset(&qcr, 0, sizeof(xQueryColorsReply));
+ qcr.type = X_Reply;
+ qcr.sequenceNumber = client->sequence;
+ qcr.length = bytes_to_int32(count * sizeof(xrgb));
+ qcr.nColors = count;
+
+ WriteReplyToClient(client, sizeof(xQueryColorsReply), &qcr);
+ if (count) {
+ client->pSwapReplyFunc = (ReplySwapPtr) SQColorsExtend;
+ WriteSwappedDataToClient(client, count * sizeof(xrgb), prgbs);
+ }
+ free(prgbs);
+ return Success;
+
+ }
+ else {
+ client->errorValue = stuff->cmap;
+ return rc;
+ }
+}
+
+int
+ProcLookupColor(ClientPtr client)
+{
+ ColormapPtr pcmp;
+ int rc;
+
+ REQUEST(xLookupColorReq);
+
+ REQUEST_FIXED_SIZE(xLookupColorReq, stuff->nbytes);
+ rc = dixLookupResourceByType((pointer *) &pcmp, stuff->cmap, RT_COLORMAP,
+ client, DixReadAccess);
+ if (rc == Success) {
+ CARD16 exactRed, exactGreen, exactBlue;
+
+ if (OsLookupColor
+ (pcmp->pScreen->myNum, (char *) &stuff[1], stuff->nbytes,
+ &exactRed, &exactGreen, &exactBlue)) {
+ xLookupColorReply lcr;
+ lcr.type = X_Reply;
+ lcr.sequenceNumber = client->sequence;
+ lcr.length = 0;
+ lcr.exactRed = exactRed;
+ lcr.exactGreen = exactGreen;
+ lcr.exactBlue = exactBlue;
+ lcr.screenRed = exactRed;
+ lcr.screenGreen = exactGreen;
+ lcr.screenBlue = exactBlue;
+
+ (*pcmp->pScreen->ResolveColor) (&lcr.screenRed,
+ &lcr.screenGreen,
+ &lcr.screenBlue, pcmp->pVisual);
+ WriteReplyToClient(client, sizeof(xLookupColorReply), &lcr);
+ return Success;
+ }
+ return BadName;
+ }
+ else {
+ client->errorValue = stuff->cmap;
+ return rc;
+ }
+}
+
+int
+ProcCreateCursor(ClientPtr client)
+{
+ CursorPtr pCursor;
+ PixmapPtr src;
+ PixmapPtr msk;
+ unsigned char *srcbits;
+ unsigned char *mskbits;
+ unsigned short width, height;
+ long n;
+ CursorMetricRec cm;
+ int rc;
+
+ REQUEST(xCreateCursorReq);
+
+ REQUEST_SIZE_MATCH(xCreateCursorReq);
+ LEGAL_NEW_RESOURCE(stuff->cid, client);
+
+ rc = dixLookupResourceByType((pointer *) &src, stuff->source, RT_PIXMAP,
+ client, DixReadAccess);
+ if (rc != Success) {
+ client->errorValue = stuff->source;
+ return rc;
+ }
+
+ if (src->drawable.depth != 1)
+ return (BadMatch);
+
+ /* Find and validate cursor mask pixmap, if one is provided */
+ if (stuff->mask != None) {
+ rc = dixLookupResourceByType((pointer *) &msk, stuff->mask, RT_PIXMAP,
+ client, DixReadAccess);
+ if (rc != Success) {
+ client->errorValue = stuff->mask;
+ return rc;
+ }
+
+ if (src->drawable.width != msk->drawable.width
+ || src->drawable.height != msk->drawable.height
+ || src->drawable.depth != 1 || msk->drawable.depth != 1)
+ return BadMatch;
+ }
+ else
+ msk = NULL;
+
+ width = src->drawable.width;
+ height = src->drawable.height;
+
+ if (stuff->x > width || stuff->y > height)
+ return BadMatch;
+
+ n = BitmapBytePad(width) * height;
+ srcbits = calloc(1, n);
+ if (!srcbits)
+ return BadAlloc;
+ mskbits = malloc(n);
+ if (!mskbits) {
+ free(srcbits);
+ return BadAlloc;
+ }
+
+ (*src->drawable.pScreen->GetImage) ((DrawablePtr) src, 0, 0, width, height,
+ XYPixmap, 1, (pointer) srcbits);
+ if (msk == (PixmapPtr) NULL) {
+ unsigned char *bits = mskbits;
+
+ while (--n >= 0)
+ *bits++ = ~0;
+ }
+ else {
+ /* zeroing the (pad) bits helps some ddx cursor handling */
+ memset((char *) mskbits, 0, n);
+ (*msk->drawable.pScreen->GetImage) ((DrawablePtr) msk, 0, 0, width,
+ height, XYPixmap, 1,
+ (pointer) mskbits);
+ }
+ cm.width = width;
+ cm.height = height;
+ cm.xhot = stuff->x;
+ cm.yhot = stuff->y;
+ rc = AllocARGBCursor(srcbits, mskbits, NULL, &cm,
+ stuff->foreRed, stuff->foreGreen, stuff->foreBlue,
+ stuff->backRed, stuff->backGreen, stuff->backBlue,
+ &pCursor, client, stuff->cid);
+
+ if (rc != Success)
+ goto bail;
+ if (!AddResource(stuff->cid, RT_CURSOR, (pointer) pCursor)) {
+ rc = BadAlloc;
+ goto bail;
+ }
+
+ return Success;
+ bail:
+ free(srcbits);
+ free(mskbits);
+ return rc;
+}
+
+int
+ProcCreateGlyphCursor(ClientPtr client)
+{
+ CursorPtr pCursor;
+ int res;
+
+ REQUEST(xCreateGlyphCursorReq);
+
+ REQUEST_SIZE_MATCH(xCreateGlyphCursorReq);
+ LEGAL_NEW_RESOURCE(stuff->cid, client);
+
+ res = AllocGlyphCursor(stuff->source, stuff->sourceChar,
+ stuff->mask, stuff->maskChar,
+ stuff->foreRed, stuff->foreGreen, stuff->foreBlue,
+ stuff->backRed, stuff->backGreen, stuff->backBlue,
+ &pCursor, client, stuff->cid);
+ if (res != Success)
+ return res;
+ if (AddResource(stuff->cid, RT_CURSOR, (pointer) pCursor))
+ return Success;
+ return BadAlloc;
+}
+
+int
+ProcFreeCursor(ClientPtr client)
+{
+ CursorPtr pCursor;
+ int rc;
+
+ REQUEST(xResourceReq);
+
+ REQUEST_SIZE_MATCH(xResourceReq);
+ rc = dixLookupResourceByType((pointer *) &pCursor, stuff->id, RT_CURSOR,
+ client, DixDestroyAccess);
+ if (rc == Success) {
+ FreeResource(stuff->id, RT_NONE);
+ return Success;
+ }
+ else {
+ client->errorValue = stuff->id;
+ return rc;
+ }
+}
+
+int
+ProcQueryBestSize(ClientPtr client)
+{
+ xQueryBestSizeReply reply;
+ DrawablePtr pDraw;
+ ScreenPtr pScreen;
+ int rc;
+
+ REQUEST(xQueryBestSizeReq);
+ REQUEST_SIZE_MATCH(xQueryBestSizeReq);
+
+ if ((stuff->class != CursorShape) &&
+ (stuff->class != TileShape) && (stuff->class != StippleShape)) {
+ client->errorValue = stuff->class;
+ return BadValue;
+ }
+
+ rc = dixLookupDrawable(&pDraw, stuff->drawable, client, M_ANY,
+ DixGetAttrAccess);
+ if (rc != Success)
+ return rc;
+ if (stuff->class != CursorShape && pDraw->type == UNDRAWABLE_WINDOW)
+ return BadMatch;
+ pScreen = pDraw->pScreen;
+ rc = XaceHook(XACE_SCREEN_ACCESS, client, pScreen, DixGetAttrAccess);
+ if (rc != Success)
+ return rc;
+ (*pScreen->QueryBestSize) (stuff->class, &stuff->width,
+ &stuff->height, pScreen);
+ memset(&reply, 0, sizeof(xQueryBestSizeReply));
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = 0;
+ reply.width = stuff->width;
+ reply.height = stuff->height;
+
+ WriteReplyToClient(client, sizeof(xQueryBestSizeReply), &reply);
+ return Success;
+}
+
+int
+ProcSetScreenSaver(ClientPtr client)
+{
+ int rc, i, blankingOption, exposureOption;
+
+ REQUEST(xSetScreenSaverReq);
+ REQUEST_SIZE_MATCH(xSetScreenSaverReq);
+
+ for (i = 0; i < screenInfo.numScreens; i++) {
+ rc = XaceHook(XACE_SCREENSAVER_ACCESS, client, screenInfo.screens[i],
+ DixSetAttrAccess);
+ if (rc != Success)
+ return rc;
+ }
+
+ blankingOption = stuff->preferBlank;
+ if ((blankingOption != DontPreferBlanking) &&
+ (blankingOption != PreferBlanking) &&
+ (blankingOption != DefaultBlanking)) {
+ client->errorValue = blankingOption;
+ return BadValue;
+ }
+ exposureOption = stuff->allowExpose;
+ if ((exposureOption != DontAllowExposures) &&
+ (exposureOption != AllowExposures) &&
+ (exposureOption != DefaultExposures)) {
+ client->errorValue = exposureOption;
+ return BadValue;
+ }
+ if (stuff->timeout < -1) {
+ client->errorValue = stuff->timeout;
+ return BadValue;
+ }
+ if (stuff->interval < -1) {
+ client->errorValue = stuff->interval;
+ return BadValue;
+ }
+
+ if (blankingOption == DefaultBlanking)
+ ScreenSaverBlanking = defaultScreenSaverBlanking;
+ else
+ ScreenSaverBlanking = blankingOption;
+ if (exposureOption == DefaultExposures)
+ ScreenSaverAllowExposures = defaultScreenSaverAllowExposures;
+ else
+ ScreenSaverAllowExposures = exposureOption;
+
+ if (stuff->timeout >= 0)
+ ScreenSaverTime = stuff->timeout * MILLI_PER_SECOND;
+ else
+ ScreenSaverTime = defaultScreenSaverTime;
+ if (stuff->interval >= 0)
+ ScreenSaverInterval = stuff->interval * MILLI_PER_SECOND;
+ else
+ ScreenSaverInterval = defaultScreenSaverInterval;
+
+ SetScreenSaverTimer();
+ return Success;
+}
+
+int
+ProcGetScreenSaver(ClientPtr client)
+{
+ xGetScreenSaverReply rep;
+ int rc, i;
+
+ REQUEST_SIZE_MATCH(xReq);
+
+ for (i = 0; i < screenInfo.numScreens; i++) {
+ rc = XaceHook(XACE_SCREENSAVER_ACCESS, client, screenInfo.screens[i],
+ DixGetAttrAccess);
+ if (rc != Success)
+ return rc;
+ }
+
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.timeout = ScreenSaverTime / MILLI_PER_SECOND;
+ rep.interval = ScreenSaverInterval / MILLI_PER_SECOND;
+ rep.preferBlanking = ScreenSaverBlanking;
+ rep.allowExposures = ScreenSaverAllowExposures;
+
+ WriteReplyToClient(client, sizeof(xGetScreenSaverReply), &rep);
+ return Success;
+}
+
+int
+ProcChangeHosts(ClientPtr client)
+{
+ REQUEST(xChangeHostsReq);
+
+ REQUEST_FIXED_SIZE(xChangeHostsReq, stuff->hostLength);
+
+ if (stuff->mode == HostInsert)
+ return AddHost(client, (int) stuff->hostFamily,
+ stuff->hostLength, (pointer) &stuff[1]);
+ if (stuff->mode == HostDelete)
+ return RemoveHost(client, (int) stuff->hostFamily,
+ stuff->hostLength, (pointer) &stuff[1]);
+ client->errorValue = stuff->mode;
+ return BadValue;
+}
+
+int
+ProcListHosts(ClientPtr client)
+{
+ xListHostsReply reply;
+ int len, nHosts, result;
+ BOOL enabled;
+ pointer pdata;
+
+ /* REQUEST(xListHostsReq); */
+
+ REQUEST_SIZE_MATCH(xListHostsReq);
+
+ /* untrusted clients can't list hosts */
+ result = XaceHook(XACE_SERVER_ACCESS, client, DixReadAccess);
+ if (result != Success)
+ return result;
+
+ result = GetHosts(&pdata, &nHosts, &len, &enabled);
+ if (result != Success)
+ return result;
+
+
+ reply.type = X_Reply;
+ reply.enabled = enabled;
+ reply.sequenceNumber = client->sequence;
+ reply.length = bytes_to_int32(len);
+ reply.nHosts = nHosts;
+
+ WriteReplyToClient(client, sizeof(xListHostsReply), &reply);
+ if (nHosts) {
+ client->pSwapReplyFunc = (ReplySwapPtr) SLHostsExtend;
+ WriteSwappedDataToClient(client, len, pdata);
+ }
+ free(pdata);
+ return Success;
+}
+
+int
+ProcChangeAccessControl(ClientPtr client)
+{
+ REQUEST(xSetAccessControlReq);
+
+ REQUEST_SIZE_MATCH(xSetAccessControlReq);
+ if ((stuff->mode != EnableAccess) && (stuff->mode != DisableAccess)) {
+ client->errorValue = stuff->mode;
+ return BadValue;
+ }
+ return ChangeAccessControl(client, stuff->mode == EnableAccess);
+}
+
+/*********************
+ * CloseDownRetainedResources
+ *
+ * Find all clients that are gone and have terminated in RetainTemporary
+ * and destroy their resources.
+ *********************/
+
+static void
+CloseDownRetainedResources(void)
+{
+ int i;
+ ClientPtr client;
+
+ for (i = 1; i < currentMaxClients; i++) {
+ client = clients[i];
+ if (client && (client->closeDownMode == RetainTemporary)
+ && (client->clientGone))
+ CloseDownClient(client);
+ }
+}
+
+int
+ProcKillClient(ClientPtr client)
+{
+ REQUEST(xResourceReq);
+ ClientPtr killclient;
+ int rc;
+
+ REQUEST_SIZE_MATCH(xResourceReq);
+ if (stuff->id == AllTemporary) {
+ CloseDownRetainedResources();
+ return Success;
+ }
+
+ rc = dixLookupClient(&killclient, stuff->id, client, DixDestroyAccess);
+ if (rc == Success) {
+ CloseDownClient(killclient);
+ /* if an LBX proxy gets killed, isItTimeToYield will be set */
+ if (isItTimeToYield || (client == killclient)) {
+ /* force yield and return Success, so that Dispatch()
+ * doesn't try to touch client
+ */
+ isItTimeToYield = TRUE;
+ return Success;
+ }
+ return Success;
+ }
+ else
+ return rc;
+}
+
+int
+ProcSetFontPath(ClientPtr client)
+{
+ unsigned char *ptr;
+ unsigned long nbytes, total;
+ long nfonts;
+ int n;
+
+ REQUEST(xSetFontPathReq);
+
+ REQUEST_AT_LEAST_SIZE(xSetFontPathReq);
+
+ nbytes = (client->req_len << 2) - sizeof(xSetFontPathReq);
+ total = nbytes;
+ ptr = (unsigned char *) &stuff[1];
+ nfonts = stuff->nFonts;
+ while (--nfonts >= 0) {
+ if ((total == 0) || (total < (n = (*ptr + 1))))
+ return BadLength;
+ total -= n;
+ ptr += n;
+ }
+ if (total >= 4)
+ return BadLength;
+ return SetFontPath(client, stuff->nFonts, (unsigned char *) &stuff[1]);
+}
+
+int
+ProcGetFontPath(ClientPtr client)
+{
+ xGetFontPathReply reply;
+ int rc, stringLens, numpaths;
+ unsigned char *bufferStart;
+
+ /* REQUEST (xReq); */
+
+ REQUEST_SIZE_MATCH(xReq);
+ rc = GetFontPath(client, &numpaths, &stringLens, &bufferStart);
+ if (rc != Success)
+ return rc;
+
+
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = bytes_to_int32(stringLens + numpaths);
+ reply.nPaths = numpaths;
+
+ WriteReplyToClient(client, sizeof(xGetFontPathReply), &reply);
+ if (stringLens || numpaths)
+ WriteToClient(client, stringLens + numpaths, bufferStart);
+ return Success;
+}
+
+int
+ProcChangeCloseDownMode(ClientPtr client)
+{
+ int rc;
+
+ REQUEST(xSetCloseDownModeReq);
+ REQUEST_SIZE_MATCH(xSetCloseDownModeReq);
+
+ rc = XaceHook(XACE_CLIENT_ACCESS, client, client, DixManageAccess);
+ if (rc != Success)
+ return rc;
+
+ if ((stuff->mode == AllTemporary) ||
+ (stuff->mode == RetainPermanent) || (stuff->mode == RetainTemporary)) {
+ client->closeDownMode = stuff->mode;
+ return Success;
+ }
+ else {
+ client->errorValue = stuff->mode;
+ return BadValue;
+ }
+}
+
+int
+ProcForceScreenSaver(ClientPtr client)
+{
+ int rc;
+
+ REQUEST(xForceScreenSaverReq);
+
+ REQUEST_SIZE_MATCH(xForceScreenSaverReq);
+
+ if ((stuff->mode != ScreenSaverReset) && (stuff->mode != ScreenSaverActive)) {
+ client->errorValue = stuff->mode;
+ return BadValue;
+ }
+ rc = dixSaveScreens(client, SCREEN_SAVER_FORCER, (int) stuff->mode);
+ if (rc != Success)
+ return rc;
+ return Success;
+}
+
+int
+ProcNoOperation(ClientPtr client)
+{
+ REQUEST_AT_LEAST_SIZE(xReq);
+
+ /* noop -- don't do anything */
+ return Success;
+}
+
+/**********************
+ * CloseDownClient
+ *
+ * Client can either mark his resources destroy or retain. If retained and
+ * then killed again, the client is really destroyed.
+ *********************/
+
+char dispatchExceptionAtReset = DE_RESET;
+
+void
+CloseDownClient(ClientPtr client)
+{
+ Bool really_close_down = client->clientGone ||
+ client->closeDownMode == DestroyAll;
+
+ if (!client->clientGone) {
+ /* ungrab server if grabbing client dies */
+ if (grabState != GrabNone && grabClient == client) {
+ UngrabServer(client);
+ }
+ BITCLEAR(grabWaiters, client->index);
+ DeleteClientFromAnySelections(client);
+ ReleaseActiveGrabs(client);
+ DeleteClientFontStuff(client);
+ if (!really_close_down) {
+ /* This frees resources that should never be retained
+ * no matter what the close down mode is. Actually we
+ * could do this unconditionally, but it's probably
+ * better not to traverse all the client's resources
+ * twice (once here, once a few lines down in
+ * FreeClientResources) in the common case of
+ * really_close_down == TRUE.
+ */
+ FreeClientNeverRetainResources(client);
+ client->clientState = ClientStateRetained;
+ if (ClientStateCallback) {
+ NewClientInfoRec clientinfo;
+
+ clientinfo.client = client;
+ clientinfo.prefix = (xConnSetupPrefix *) NULL;
+ clientinfo.setup = (xConnSetup *) NULL;
+ CallCallbacks((&ClientStateCallback), (pointer) &clientinfo);
+ }
+ }
+ client->clientGone = TRUE; /* so events aren't sent to client */
+ if (ClientIsAsleep(client))
+ ClientSignal(client);
+ ProcessWorkQueueZombies();
+ CloseDownConnection(client);
+
+ /* If the client made it to the Running stage, nClients has
+ * been incremented on its behalf, so we need to decrement it
+ * now. If it hasn't gotten to Running, nClients has *not*
+ * been incremented, so *don't* decrement it.
+ */
+ if (client->clientState != ClientStateInitial) {
+ --nClients;
+ }
+ }
+
+ if (really_close_down) {
+ if (client->clientState == ClientStateRunning && nClients == 0)
+ dispatchException |= dispatchExceptionAtReset;
+
+ client->clientState = ClientStateGone;
+ if (ClientStateCallback) {
+ NewClientInfoRec clientinfo;
+
+ clientinfo.client = client;
+ clientinfo.prefix = (xConnSetupPrefix *) NULL;
+ clientinfo.setup = (xConnSetup *) NULL;
+ CallCallbacks((&ClientStateCallback), (pointer) &clientinfo);
+ }
+ TouchListenerGone(client->clientAsMask);
+ FreeClientResources(client);
+ /* Disable client ID tracking. This must be done after
+ * ClientStateCallback. */
+ ReleaseClientIds(client);
+#ifdef XSERVER_DTRACE
+ XSERVER_CLIENT_DISCONNECT(client->index);
+#endif
+ if (client->index < nextFreeClientID)
+ nextFreeClientID = client->index;
+ clients[client->index] = NullClient;
+ SmartLastClient = NullClient;
+ dixFreeObjectWithPrivates(client, PRIVATE_CLIENT);
+
+ while (!clients[currentMaxClients - 1])
+ currentMaxClients--;
+ }
+}
+
+static void
+KillAllClients(void)
+{
+ int i;
+
+ for (i = 1; i < currentMaxClients; i++)
+ if (clients[i]) {
+ /* Make sure Retained clients are released. */
+ clients[i]->closeDownMode = DestroyAll;
+ CloseDownClient(clients[i]);
+ }
+}
+
+void
+InitClient(ClientPtr client, int i, pointer ospriv)
+{
+ client->index = i;
+ client->clientAsMask = ((Mask) i) << CLIENTOFFSET;
+ client->closeDownMode = i ? DestroyAll : RetainPermanent;
+ client->requestVector = InitialVector;
+ client->osPrivate = ospriv;
+ QueryMinMaxKeyCodes(&client->minKC, &client->maxKC);
+ client->smart_start_tick = SmartScheduleTime;
+ client->smart_stop_tick = SmartScheduleTime;
+ client->smart_check_tick = SmartScheduleTime;
+ client->clientIds = NULL;
+}
+
+/************************
+ * int NextAvailableClient(ospriv)
+ *
+ * OS dependent portion can't assign client id's because of CloseDownModes.
+ * Returns NULL if there are no free clients.
+ *************************/
+
+ClientPtr
+NextAvailableClient(pointer ospriv)
+{
+ int i;
+ ClientPtr client;
+ xReq data;
+
+ i = nextFreeClientID;
+ if (i == MAXCLIENTS)
+ return (ClientPtr) NULL;
+ clients[i] = client =
+ dixAllocateObjectWithPrivates(ClientRec, PRIVATE_CLIENT);
+ if (!client)
+ return (ClientPtr) NULL;
+ InitClient(client, i, ospriv);
+ if (!InitClientResources(client)) {
+ dixFreeObjectWithPrivates(client, PRIVATE_CLIENT);
+ return (ClientPtr) NULL;
+ }
+ data.reqType = 1;
+ data.length = bytes_to_int32(sz_xReq + sz_xConnClientPrefix);
+ if (!InsertFakeRequest(client, (char *) &data, sz_xReq)) {
+ FreeClientResources(client);
+ dixFreeObjectWithPrivates(client, PRIVATE_CLIENT);
+ return (ClientPtr) NULL;
+ }
+ if (i == currentMaxClients)
+ currentMaxClients++;
+ while ((nextFreeClientID < MAXCLIENTS) && clients[nextFreeClientID])
+ nextFreeClientID++;
+
+ /* Enable client ID tracking. This must be done before
+ * ClientStateCallback. */
+ ReserveClientIds(client);
+
+ if (ClientStateCallback) {
+ NewClientInfoRec clientinfo;
+
+ clientinfo.client = client;
+ clientinfo.prefix = (xConnSetupPrefix *) NULL;
+ clientinfo.setup = (xConnSetup *) NULL;
+ CallCallbacks((&ClientStateCallback), (pointer) &clientinfo);
+ }
+ return client;
+}
+
+int
+ProcInitialConnection(ClientPtr client)
+{
+ REQUEST(xReq);
+ xConnClientPrefix *prefix;
+ int whichbyte = 1;
+ char order;
+
+ prefix = (xConnClientPrefix *) ((char *)stuff + sz_xReq);
+ order = prefix->byteOrder;
+ if (order != 'l' && order != 'B' && order != 'r' && order != 'R')
+ return client->noClientException = -1;
+ if (((*(char *) &whichbyte) && (order == 'B' || order == 'R')) ||
+ (!(*(char *) &whichbyte) && (order == 'l' || order == 'r'))) {
+ client->swapped = TRUE;
+ SwapConnClientPrefix(prefix);
+ }
+ stuff->reqType = 2;
+ stuff->length += bytes_to_int32(prefix->nbytesAuthProto) +
+ bytes_to_int32(prefix->nbytesAuthString);
+ if (client->swapped) {
+ swaps(&stuff->length);
+ }
+ if (order == 'r' || order == 'R') {
+ client->local = FALSE;
+ }
+ ResetCurrentRequest(client);
+ return Success;
+}
+
+static int
+SendConnSetup(ClientPtr client, const char *reason)
+{
+ xWindowRoot *root;
+ int i;
+ int numScreens;
+ char *lConnectionInfo;
+ xConnSetupPrefix *lconnSetupPrefix;
+
+ if (reason) {
+ xConnSetupPrefix csp;
+
+ csp.success = xFalse;
+ csp.lengthReason = strlen(reason);
+ csp.length = bytes_to_int32(csp.lengthReason);
+ csp.majorVersion = X_PROTOCOL;
+ csp.minorVersion = X_PROTOCOL_REVISION;
+ if (client->swapped)
+ WriteSConnSetupPrefix(client, &csp);
+ else
+ WriteToClient(client, sz_xConnSetupPrefix, &csp);
+ WriteToClient(client, (int) csp.lengthReason, reason);
+ return client->noClientException = -1;
+ }
+
+ numScreens = screenInfo.numScreens;
+ lConnectionInfo = ConnectionInfo;
+ lconnSetupPrefix = &connSetupPrefix;
+
+ /* We're about to start speaking X protocol back to the client by
+ * sending the connection setup info. This means the authorization
+ * step is complete, and we can count the client as an
+ * authorized one.
+ */
+ nClients++;
+
+ client->requestVector = client->swapped ? SwappedProcVector : ProcVector;
+ client->sequence = 0;
+ ((xConnSetup *) lConnectionInfo)->ridBase = client->clientAsMask;
+ ((xConnSetup *) lConnectionInfo)->ridMask = RESOURCE_ID_MASK;
+#ifdef MATCH_CLIENT_ENDIAN
+ ((xConnSetup *) lConnectionInfo)->imageByteOrder = ClientOrder(client);
+ ((xConnSetup *) lConnectionInfo)->bitmapBitOrder = ClientOrder(client);
+#endif
+ /* fill in the "currentInputMask" */
+ root = (xWindowRoot *) (lConnectionInfo + connBlockScreenStart);
+#ifdef PANORAMIX
+ if (noPanoramiXExtension)
+ numScreens = screenInfo.numScreens;
+ else
+ numScreens = ((xConnSetup *) ConnectionInfo)->numRoots;
+#endif
+
+ for (i = 0; i < numScreens; i++) {
+ unsigned int j;
+ xDepth *pDepth;
+ WindowPtr pRoot = screenInfo.screens[i]->root;
+
+ root->currentInputMask = pRoot->eventMask | wOtherEventMasks(pRoot);
+ pDepth = (xDepth *) (root + 1);
+ for (j = 0; j < root->nDepths; j++) {
+ pDepth = (xDepth *) (((char *) (pDepth + 1)) +
+ pDepth->nVisuals * sizeof(xVisualType));
+ }
+ root = (xWindowRoot *) pDepth;
+ }
+
+ if (client->swapped) {
+ WriteSConnSetupPrefix(client, lconnSetupPrefix);
+ WriteSConnectionInfo(client,
+ (unsigned long) (lconnSetupPrefix->length << 2),
+ lConnectionInfo);
+ }
+ else {
+ WriteToClient(client, sizeof(xConnSetupPrefix), lconnSetupPrefix);
+ WriteToClient(client, (int) (lconnSetupPrefix->length << 2),
+ lConnectionInfo);
+ }
+ client->clientState = ClientStateRunning;
+ if (ClientStateCallback) {
+ NewClientInfoRec clientinfo;
+
+ clientinfo.client = client;
+ clientinfo.prefix = lconnSetupPrefix;
+ clientinfo.setup = (xConnSetup *) lConnectionInfo;
+ CallCallbacks((&ClientStateCallback), (pointer) &clientinfo);
+ }
+ return Success;
+}
+
+int
+ProcEstablishConnection(ClientPtr client)
+{
+ const char *reason;
+ char *auth_proto, *auth_string;
+ xConnClientPrefix *prefix;
+
+ REQUEST(xReq);
+
+ prefix = (xConnClientPrefix *) ((char *) stuff + sz_xReq);
+ auth_proto = (char *) prefix + sz_xConnClientPrefix;
+ auth_string = auth_proto + pad_to_int32(prefix->nbytesAuthProto);
+ if ((prefix->majorVersion != X_PROTOCOL) ||
+ (prefix->minorVersion != X_PROTOCOL_REVISION))
+ reason = "Protocol version mismatch";
+ else
+ reason = ClientAuthorized(client,
+ (unsigned short) prefix->nbytesAuthProto,
+ auth_proto,
+ (unsigned short) prefix->nbytesAuthString,
+ auth_string);
+
+ return (SendConnSetup(client, reason));
+}
+
+void
+SendErrorToClient(ClientPtr client, unsigned majorCode, unsigned minorCode,
+ XID resId, int errorCode)
+{
+ xError rep; memset(&rep, 0, sizeof(xError));
+ rep.type = X_Error;
+ rep.errorCode = errorCode;
+ rep.resourceID = resId;
+ rep.minorCode = minorCode;
+ rep.majorCode = majorCode;
+
+ WriteEventsToClient(client, 1, (xEvent *) &rep);
+}
+
+void
+MarkClientException(ClientPtr client)
+{
+ client->noClientException = -1;
+}
+
+/*
+ * This array encodes the answer to the question "what is the log base 2
+ * of the number of pixels that fit in a scanline pad unit?"
+ * Note that ~0 is an invalid entry (mostly for the benefit of the reader).
+ */
+static int answer[6][4] = {
+ /* pad pad pad pad */
+ /* 8 16 32 64 */
+
+ {3, 4, 5, 6}, /* 1 bit per pixel */
+ {1, 2, 3, 4}, /* 4 bits per pixel */
+ {0, 1, 2, 3}, /* 8 bits per pixel */
+ {~0, 0, 1, 2}, /* 16 bits per pixel */
+ {~0, ~0, 0, 1}, /* 24 bits per pixel */
+ {~0, ~0, 0, 1} /* 32 bits per pixel */
+};
+
+/*
+ * This array gives the answer to the question "what is the first index for
+ * the answer array above given the number of bits per pixel?"
+ * Note that ~0 is an invalid entry (mostly for the benefit of the reader).
+ */
+static int indexForBitsPerPixel[33] = {
+ ~0, 0, ~0, ~0, /* 1 bit per pixel */
+ 1, ~0, ~0, ~0, /* 4 bits per pixel */
+ 2, ~0, ~0, ~0, /* 8 bits per pixel */
+ ~0, ~0, ~0, ~0,
+ 3, ~0, ~0, ~0, /* 16 bits per pixel */
+ ~0, ~0, ~0, ~0,
+ 4, ~0, ~0, ~0, /* 24 bits per pixel */
+ ~0, ~0, ~0, ~0,
+ 5 /* 32 bits per pixel */
+};
+
+/*
+ * This array gives the bytesperPixel value for cases where the number
+ * of bits per pixel is a multiple of 8 but not a power of 2.
+ */
+static int answerBytesPerPixel[33] = {
+ ~0, 0, ~0, ~0, /* 1 bit per pixel */
+ 0, ~0, ~0, ~0, /* 4 bits per pixel */
+ 0, ~0, ~0, ~0, /* 8 bits per pixel */
+ ~0, ~0, ~0, ~0,
+ 0, ~0, ~0, ~0, /* 16 bits per pixel */
+ ~0, ~0, ~0, ~0,
+ 3, ~0, ~0, ~0, /* 24 bits per pixel */
+ ~0, ~0, ~0, ~0,
+ 0 /* 32 bits per pixel */
+};
+
+/*
+ * This array gives the answer to the question "what is the second index for
+ * the answer array above given the number of bits per scanline pad unit?"
+ * Note that ~0 is an invalid entry (mostly for the benefit of the reader).
+ */
+static int indexForScanlinePad[65] = {
+ ~0, ~0, ~0, ~0,
+ ~0, ~0, ~0, ~0,
+ 0, ~0, ~0, ~0, /* 8 bits per scanline pad unit */
+ ~0, ~0, ~0, ~0,
+ 1, ~0, ~0, ~0, /* 16 bits per scanline pad unit */
+ ~0, ~0, ~0, ~0,
+ ~0, ~0, ~0, ~0,
+ ~0, ~0, ~0, ~0,
+ 2, ~0, ~0, ~0, /* 32 bits per scanline pad unit */
+ ~0, ~0, ~0, ~0,
+ ~0, ~0, ~0, ~0,
+ ~0, ~0, ~0, ~0,
+ ~0, ~0, ~0, ~0,
+ ~0, ~0, ~0, ~0,
+ ~0, ~0, ~0, ~0,
+ ~0, ~0, ~0, ~0,
+ 3 /* 64 bits per scanline pad unit */
+};
+
+/*
+ grow the array of screenRecs if necessary.
+ call the device-supplied initialization procedure
+with its screen number, a pointer to its ScreenRec, argc, and argv.
+ return the number of successfully installed screens.
+
+*/
+
+static int init_screen(ScreenPtr pScreen, int i, Bool gpu)
+{
+ int scanlinepad, format, depth, bitsPerPixel, j, k;
+
+ dixInitScreenSpecificPrivates(pScreen);
+
+ if (!dixAllocatePrivates(&pScreen->devPrivates, PRIVATE_SCREEN)) {
+ return -1;
+ }
+ pScreen->myNum = i;
+ if (gpu) {
+ pScreen->myNum += GPU_SCREEN_OFFSET;
+ pScreen->isGPU = TRUE;
+ }
+ pScreen->totalPixmapSize = 0; /* computed in CreateScratchPixmapForScreen */
+ pScreen->ClipNotify = 0; /* for R4 ddx compatibility */
+ pScreen->CreateScreenResources = 0;
+
+ xorg_list_init(&pScreen->pixmap_dirty_list);
+ xorg_list_init(&pScreen->unattached_list);
+ xorg_list_init(&pScreen->output_slave_list);
+ xorg_list_init(&pScreen->offload_slave_list);
+
+ /*
+ * This loop gets run once for every Screen that gets added,
+ * but thats ok. If the ddx layer initializes the formats
+ * one at a time calling AddScreen() after each, then each
+ * iteration will make it a little more accurate. Worst case
+ * we do this loop N * numPixmapFormats where N is # of screens.
+ * Anyway, this must be called after InitOutput and before the
+ * screen init routine is called.
+ */
+ for (format = 0; format < screenInfo.numPixmapFormats; format++) {
+ depth = screenInfo.formats[format].depth;
+ bitsPerPixel = screenInfo.formats[format].bitsPerPixel;
+ scanlinepad = screenInfo.formats[format].scanlinePad;
+ j = indexForBitsPerPixel[bitsPerPixel];
+ k = indexForScanlinePad[scanlinepad];
+ PixmapWidthPaddingInfo[depth].padPixelsLog2 = answer[j][k];
+ PixmapWidthPaddingInfo[depth].padRoundUp =
+ (scanlinepad / bitsPerPixel) - 1;
+ j = indexForBitsPerPixel[8]; /* bits per byte */
+ PixmapWidthPaddingInfo[depth].padBytesLog2 = answer[j][k];
+ PixmapWidthPaddingInfo[depth].bitsPerPixel = bitsPerPixel;
+ if (answerBytesPerPixel[bitsPerPixel]) {
+ PixmapWidthPaddingInfo[depth].notPower2 = 1;
+ PixmapWidthPaddingInfo[depth].bytesPerPixel =
+ answerBytesPerPixel[bitsPerPixel];
+ }
+ else {
+ PixmapWidthPaddingInfo[depth].notPower2 = 0;
+ }
+ }
+ return 0;
+}
+
+int
+AddScreen(Bool (*pfnInit) (ScreenPtr /*pScreen */ ,
+ int /*argc */ ,
+ char ** /*argv */
+ ), int argc, char **argv)
+{
+
+ int i;
+ ScreenPtr pScreen;
+ Bool ret;
+
+ i = screenInfo.numScreens;
+ if (i == MAXSCREENS)
+ return -1;
+
+ pScreen = (ScreenPtr) calloc(1, sizeof(ScreenRec));
+ if (!pScreen)
+ return -1;
+
+ ret = init_screen(pScreen, i, FALSE);
+ if (ret != 0) {
+ free(pScreen);
+ return ret;
+ }
+ /* This is where screen specific stuff gets initialized. Load the
+ screen structure, call the hardware, whatever.
+ This is also where the default colormap should be allocated and
+ also pixel values for blackPixel, whitePixel, and the cursor
+ Note that InitScreen is NOT allowed to modify argc, argv, or
+ any of the strings pointed to by argv. They may be passed to
+ multiple screens.
+ */
+ screenInfo.screens[i] = pScreen;
+ screenInfo.numScreens++;
+ if (!(*pfnInit) (pScreen, argc, argv)) {
+ dixFreeScreenSpecificPrivates(pScreen);
+ dixFreePrivates(pScreen->devPrivates, PRIVATE_SCREEN);
+ free(pScreen);
+ screenInfo.numScreens--;
+ return -1;
+ }
+
+ update_desktop_dimensions();
+
+ dixRegisterScreenPrivateKey(&cursorScreenDevPriv, pScreen, PRIVATE_CURSOR,
+ 0);
+
+ return i;
+}
+
+int
+AddGPUScreen(Bool (*pfnInit) (ScreenPtr /*pScreen */ ,
+ int /*argc */ ,
+ char ** /*argv */
+ ),
+ int argc, char **argv)
+{
+ int i;
+ ScreenPtr pScreen;
+ Bool ret;
+
+ i = screenInfo.numGPUScreens;
+ if (i == MAXGPUSCREENS)
+ return -1;
+
+ pScreen = (ScreenPtr) calloc(1, sizeof(ScreenRec));
+ if (!pScreen)
+ return -1;
+
+ ret = init_screen(pScreen, i, TRUE);
+ if (ret != 0) {
+ free(pScreen);
+ return ret;
+ }
+
+ /* This is where screen specific stuff gets initialized. Load the
+ screen structure, call the hardware, whatever.
+ This is also where the default colormap should be allocated and
+ also pixel values for blackPixel, whitePixel, and the cursor
+ Note that InitScreen is NOT allowed to modify argc, argv, or
+ any of the strings pointed to by argv. They may be passed to
+ multiple screens.
+ */
+ screenInfo.gpuscreens[i] = pScreen;
+ screenInfo.numGPUScreens++;
+ if (!(*pfnInit) (pScreen, argc, argv)) {
+ dixFreePrivates(pScreen->devPrivates, PRIVATE_SCREEN);
+ free(pScreen);
+ screenInfo.numGPUScreens--;
+ return -1;
+ }
+
+ update_desktop_dimensions();
+
+ return i;
+}
+
+void
+RemoveGPUScreen(ScreenPtr pScreen)
+{
+ int idx, j;
+ if (!pScreen->isGPU)
+ return;
+
+ idx = pScreen->myNum - GPU_SCREEN_OFFSET;
+ for (j = idx; j < screenInfo.numGPUScreens - 1; j++) {
+ screenInfo.gpuscreens[j] = screenInfo.gpuscreens[j + 1];
+ screenInfo.gpuscreens[j]->myNum = j + GPU_SCREEN_OFFSET;
+ }
+ screenInfo.numGPUScreens--;
+
+ /* this gets freed later in the resource list, but without
+ * the screen existing it causes crashes - so remove it here */
+ if (pScreen->defColormap)
+ FreeResource(pScreen->defColormap, RT_COLORMAP);
+ free(pScreen);
+
+}
+
+void
+AttachUnboundGPU(ScreenPtr pScreen, ScreenPtr new)
+{
+ assert(new->isGPU);
+ assert(!new->current_master);
+ xorg_list_add(&new->unattached_head, &pScreen->unattached_list);
+ new->current_master = pScreen;
+}
+
+void
+DetachUnboundGPU(ScreenPtr slave)
+{
+ assert(slave->isGPU);
+ xorg_list_del(&slave->unattached_head);
+ slave->current_master = NULL;
+}
+
+void
+AttachOutputGPU(ScreenPtr pScreen, ScreenPtr new)
+{
+ assert(new->isGPU);
+ xorg_list_add(&new->output_head, &pScreen->output_slave_list);
+ new->current_master = pScreen;
+}
+
+void
+DetachOutputGPU(ScreenPtr slave)
+{
+ assert(slave->isGPU);
+ xorg_list_del(&slave->output_head);
+ slave->current_master = NULL;
+}
+
+void
+AttachOffloadGPU(ScreenPtr pScreen, ScreenPtr new)
+{
+ assert(new->isGPU);
+ xorg_list_add(&new->offload_head, &pScreen->offload_slave_list);
+ new->current_master = pScreen;
+}
+
+void
+DetachOffloadGPU(ScreenPtr slave)
+{
+ assert(slave->isGPU);
+ xorg_list_del(&slave->offload_head);
+ slave->current_master = NULL;
+}
+
diff --git a/xorg-server/dix/dixfonts.c b/xorg-server/dix/dixfonts.c
index 2e34d370f..dd7700860 100644
--- a/xorg-server/dix/dixfonts.c
+++ b/xorg-server/dix/dixfonts.c
@@ -133,6 +133,7 @@ SetDefaultFont(char *defaultfontname)
int err;
FontPtr pf;
XID fid;
+ static FontPtr last_pf;
fid = FakeClientID(0);
err = OpenFont(serverClient, fid, FontLoadAll | FontOpenSync,
@@ -141,9 +142,10 @@ SetDefaultFont(char *defaultfontname)
return FALSE;
err = dixLookupResourceByType((pointer *) &pf, fid, RT_FONT, serverClient,
DixReadAccess);
- if (err != Success)
+ if (err == Success) last_pf = pf;
+ if (last_pf == (FontPtr) NULL)
return FALSE;
- defaultFont = pf;
+ defaultFont = last_pf;
return TRUE;
}
@@ -240,7 +242,8 @@ doOpenFont(ClientPtr client, OFclosurePtr c)
char *alias, *newname;
int newlen;
int aliascount = 20;
-
+ Bool fromDispatch = c->from_dispatch;
+ Bool finished = FALSE;
/*
* Decide at runtime what FontFormat to use.
*/
@@ -264,6 +267,8 @@ doOpenFont(ClientPtr client, OFclosurePtr c)
#endif
BitmapFormatScanlineUnit8;
+ c->from_dispatch = FALSE;
+
if (client->clientGone) {
if (c->current_fpe < c->num_fpes) {
fpe = c->fpe_list[c->current_fpe];
@@ -363,13 +368,16 @@ doOpenFont(ClientPtr client, OFclosurePtr c)
c->fontid, FontToXError(err));
}
ClientWakeup(c->client);
+ finished = TRUE;
xinerama_sleep:
- for (i = 0; i < c->num_fpes; i++) {
- FreeFPE(c->fpe_list[i]);
+ if (finished || fromDispatch) {
+ for (i = 0; i < c->num_fpes; i++) {
+ FreeFPE(c->fpe_list[i]);
+ }
+ free(c->fpe_list);
+ free(c->fontname);
+ free(c);
}
- free(c->fpe_list);
- free(c->fontname);
- free(c);
return TRUE;
}
@@ -441,6 +449,7 @@ OpenFont(ClientPtr client, XID fid, Mask flags, unsigned lenfname,
c->num_fpes = num_fpes;
c->fnamelen = lenfname;
c->flags = flags;
+ c->from_dispatch = TRUE;
c->non_cachable_font = cached;
(void) doOpenFont(client, c);
@@ -567,6 +576,10 @@ doListFontsAndAliases(ClientPtr client, LFclosurePtr c)
char *bufptr;
char *bufferStart;
int aliascount = 0;
+ Bool fromDispatch = c->from_dispatch;
+ Bool finished = FALSE;
+
+ c->from_dispatch = FALSE;
if (client->clientGone) {
if (c->current.current_fpe < c->num_fpes) {
@@ -753,12 +766,11 @@ doListFontsAndAliases(ClientPtr client, LFclosurePtr c)
for (i = 0; i < nnames; i++)
stringLens += (names->length[i] <= 255) ? names->length[i] : 0;
- reply = (xListFontsReply) {
- .type = X_Reply,
- .length = bytes_to_int32(stringLens + nnames),
- .nFonts = nnames,
- .sequenceNumber = client->sequence
- };
+ memset(&reply, 0, sizeof(xListFontsReply));
+ reply.type = X_Reply;
+ reply.length = bytes_to_int32(stringLens + nnames);
+ reply.nFonts = nnames;
+ reply.sequenceNumber = client->sequence;
bufptr = bufferStart = malloc(reply.length << 2);
@@ -788,13 +800,16 @@ doListFontsAndAliases(ClientPtr client, LFclosurePtr c)
bail:
ClientWakeup(client);
+ finished = TRUE;
xinerama_sleep:
- for (i = 0; i < c->num_fpes; i++)
- FreeFPE(c->fpe_list[i]);
- free(c->fpe_list);
- free(c->savedName);
- FreeFontNames(names);
- free(c);
+ if (finished || fromDispatch) {
+ for (i = 0; i < c->num_fpes; i++)
+ FreeFPE(c->fpe_list[i]);
+ free(c->fpe_list);
+ free(c->savedName);
+ FreeFontNames(names);
+ free(c);
+ }
free(resolved);
return TRUE;
}
@@ -845,6 +860,7 @@ ListFonts(ClientPtr client, unsigned char *pattern, unsigned length,
c->current.list_started = FALSE;
c->current.private = 0;
c->haveSaved = FALSE;
+ c->from_dispatch = TRUE;
c->savedName = 0;
doListFontsAndAliases(client, c);
return Success;
@@ -856,6 +872,8 @@ doListFontsWithInfo(ClientPtr client, LFWIclosurePtr c)
FontPathElementPtr fpe;
int err = Successful;
char *name;
+ Bool fromDispatch = c->from_dispatch;
+ Bool finished = FALSE;
int namelen;
int numFonts;
FontInfoRec fontInfo, *pFontInfo;
@@ -866,6 +884,8 @@ doListFontsWithInfo(ClientPtr client, LFWIclosurePtr c)
int aliascount = 0;
xListFontsWithInfoReply finalReply;
+ c->from_dispatch = FALSE;
+
if (client->clientGone) {
if (c->current.current_fpe < c->num_fpes) {
fpe = c->fpe_list[c->current.current_fpe];
@@ -1031,22 +1051,24 @@ doListFontsWithInfo(ClientPtr client, LFWIclosurePtr c)
}
finish:
length = sizeof(xListFontsWithInfoReply);
- finalReply = (xListFontsWithInfoReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(sizeof(xListFontsWithInfoReply)
- - sizeof(xGenericReply))
- };
+ memset((char *) &finalReply, 0, sizeof(xListFontsWithInfoReply));
+ finalReply.type = X_Reply;
+ finalReply.sequenceNumber = client->sequence;
+ finalReply.length = bytes_to_int32(sizeof(xListFontsWithInfoReply)
+ - sizeof(xGenericReply));
WriteSwappedDataToClient(client, length, &finalReply);
bail:
ClientWakeup(client);
+ finished = TRUE;
xinerama_sleep:
- for (i = 0; i < c->num_fpes; i++)
- FreeFPE(c->fpe_list[i]);
- free(c->reply);
- free(c->fpe_list);
- free(c->savedName);
- free(c);
+ if (finished || fromDispatch) {
+ for (i = 0; i < c->num_fpes; i++)
+ FreeFPE(c->fpe_list[i]);
+ free(c->reply);
+ free(c->fpe_list);
+ free(c->savedName);
+ free(c);
+ }
return TRUE;
}
@@ -1093,6 +1115,7 @@ StartListFontsWithInfo(ClientPtr client, int length, unsigned char *pattern,
c->current.private = 0;
c->savedNumFonts = 0;
c->haveSaved = FALSE;
+ c->from_dispatch = TRUE;
c->savedName = 0;
doListFontsWithInfo(client, c);
return Success;
@@ -1102,7 +1125,7 @@ StartListFontsWithInfo(ClientPtr client, int length, unsigned char *pattern,
#define TextEltHeader 2
#define FontShiftSize 5
-static ChangeGCVal clearGC[] = { {.ptr = NullPixmap} };
+static ChangeGCVal clearGC[] = { NullPixmap };
#define clearGCmask (GCClipMask)
@@ -1115,6 +1138,10 @@ doPolyText(ClientPtr client, PTclosurePtr c)
FontPathElementPtr fpe;
GC *origGC = NULL;
int itemSize = c->reqType == X_PolyText8 ? 1 : 2;
+ Bool fromDispatch = c->from_dispatch;
+ Bool finished = FALSE;
+
+ c->from_dispatch = FALSE;
if (client->clientGone) {
fpe = c->pGC->font->fpe;
@@ -1352,16 +1379,19 @@ doPolyText(ClientPtr client, PTclosurePtr c)
}
if (ClientIsAsleep(client)) {
ClientWakeup(c->client);
+ finished = TRUE;
xinerama_sleep:
- ChangeGC(NullClient, c->pGC, clearGCmask, clearGC);
+ if (finished || fromDispatch) {
+ ChangeGC(NullClient, c->pGC, clearGCmask, clearGC);
- /* Unreference the font from the scratch GC */
- CloseFont(c->pGC->font, (Font) 0);
- c->pGC->font = NullFont;
+ /* Unreference the font from the scratch GC */
+ CloseFont(c->pGC->font, (Font) 0);
+ c->pGC->font = NullFont;
- FreeScratchGC(c->pGC);
- free(c->data);
- free(c);
+ FreeScratchGC(c->pGC);
+ free(c->data);
+ free(c);
+ }
}
return TRUE;
}
@@ -1396,6 +1426,10 @@ doImageText(ClientPtr client, ITclosurePtr c)
int err = Success, lgerr; /* err is in X error, not font error, space */
FontPathElementPtr fpe;
int itemSize = c->reqType == X_ImageText8 ? 1 : 2;
+ Bool fromDispatch = c->from_dispatch;
+ Bool finished = FALSE;
+
+ c->from_dispatch = FALSE;
if (client->clientGone) {
fpe = c->pGC->font->fpe;
@@ -1501,16 +1535,19 @@ doImageText(ClientPtr client, ITclosurePtr c)
}
if (ClientIsAsleep(client)) {
ClientWakeup(c->client);
+ finished = TRUE;
xinerama_sleep:
- ChangeGC(NullClient, c->pGC, clearGCmask, clearGC);
+ if (finished || fromDispatch) {
+ ChangeGC(NullClient, c->pGC, clearGCmask, clearGC);
- /* Unreference the font from the scratch GC */
- CloseFont(c->pGC->font, (Font) 0);
- c->pGC->font = NullFont;
+ /* Unreference the font from the scratch GC */
+ CloseFont(c->pGC->font, (Font) 0);
+ c->pGC->font = NullFont;
- FreeScratchGC(c->pGC);
- free(c->data);
- free(c);
+ FreeScratchGC(c->pGC);
+ free(c->data);
+ free(c);
+ }
}
return TRUE;
}
diff --git a/xorg-server/dix/enterleave.c b/xorg-server/dix/enterleave.c
index 54f4b8554..a651c68b3 100644
--- a/xorg-server/dix/enterleave.c
+++ b/xorg-server/dix/enterleave.c
@@ -828,14 +828,13 @@ DeviceFocusEvent(DeviceIntPtr dev, int type, int mode, int detail,
free(xi2event);
/* XI 1.x event */
- event = (deviceFocus) {
- .deviceid = dev->id,
- .mode = mode,
- .type = (type == XI_FocusIn) ? DeviceFocusIn : DeviceFocusOut,
- .detail = detail,
- .window = pWin->drawable.id,
- .time = currentTime.milliseconds
- };
+
+ event.deviceid = dev->id;
+ event.mode = mode;
+ event.type = (type == XI_FocusIn) ? DeviceFocusIn : DeviceFocusOut;
+ event.detail = detail;
+ event.window = pWin->drawable.id;
+ event.time = currentTime.milliseconds;
DeliverEventsToWindow(dev, pWin, (xEvent *) &event, 1,
DeviceFocusChangeMask, NullGrab);
diff --git a/xorg-server/dix/eventconvert.c b/xorg-server/dix/eventconvert.c
index f7ecdba77..95bf31c95 100644
--- a/xorg-server/dix/eventconvert.c
+++ b/xorg-server/dix/eventconvert.c
@@ -141,7 +141,7 @@ EventToCore(InternalEvent *event, xEvent **core_out, int *count_out)
core->u.keyButtonPointer.time = e->time;
core->u.keyButtonPointer.rootX = e->root_x;
core->u.keyButtonPointer.rootY = e->root_y;
- core->u.keyButtonPointer.state = e->corestate;
+ core->u.keyButtonPointer.state = e->corestate&0xffff;
core->u.keyButtonPointer.root = e->root;
EventSetKeyRepeatFlag(core, (e->type == ET_KeyPress && e->key_repeat));
ret = Success;
diff --git a/xorg-server/dix/events.c b/xorg-server/dix/events.c
index 4632bb7db..f61c7c7eb 100644
--- a/xorg-server/dix/events.c
+++ b/xorg-server/dix/events.c
@@ -752,7 +752,10 @@ CheckPhysLimits(DeviceIntPtr pDev, CursorPtr cursor, Bool generateEvents,
(new.x != pSprite->hotPhys.x) || (new.y != pSprite->hotPhys.y)) {
#ifdef PANORAMIX
if (!noPanoramiXExtension)
- XineramaSetCursorPosition(pDev, new.x, new.y, generateEvents);
+ {
+ if (pScreen && ((new.x != pSprite->hotPhys.x) || (new.y != pSprite->hotPhys.y)))
+ XineramaSetCursorPosition(pDev, new.x, new.y, generateEvents);
+ }
else
#endif
{
@@ -1216,7 +1219,7 @@ void
PlayReleasedEvents(void)
{
QdEventPtr tmp;
- QdEventPtr qe;
+ QdEventPtr qe=NULL;
DeviceIntPtr dev;
DeviceIntPtr pDev;
@@ -1556,7 +1559,7 @@ void
DeactivatePointerGrab(DeviceIntPtr mouse)
{
GrabPtr grab = mouse->deviceGrab.grab;
- DeviceIntPtr dev;
+ DeviceIntPtr dev=mouse;
Bool wasPassive = mouse->deviceGrab.fromPassiveGrab;
Bool wasImplicit = (mouse->deviceGrab.fromPassiveGrab &&
mouse->deviceGrab.implicitGrab);
@@ -2360,7 +2363,7 @@ DeliverRawEvent(RawDeviceEvent *ev, DeviceIntPtr device)
rc = EventToXI2((InternalEvent *) ev, (xEvent **) &xi);
if (rc != Success) {
ErrorF("[Xi] %s: XI2 conversion failed in %s (%d)\n",
- __func__, device->name, rc);
+ __FUNCTION__, device->name, rc);
return;
}
@@ -2944,15 +2947,14 @@ ActivateFocusInGrab(DeviceIntPtr dev, WindowPtr old, WindowPtr win)
if (win == NoneWin || win == PointerRootWin)
return FALSE;
- event = (DeviceEvent) {
- .header = ET_Internal,
- .type = ET_FocusIn,
- .length = sizeof(DeviceEvent),
- .time = GetTimeInMillis(),
- .deviceid = dev->id,
- .sourceid = dev->id,
- .detail.button = 0
- };
+ memset(&event, 0, sizeof(DeviceEvent));
+ event.header = ET_Internal;
+ event.type = ET_FocusIn;
+ event.length = sizeof(DeviceEvent);
+ event.time = GetTimeInMillis();
+ event.deviceid = dev->id;
+ event.sourceid = dev->id;
+ event.detail.button = 0;
rc = (CheckPassiveGrabsOnWindow(win, dev, (InternalEvent *) &event, FALSE,
TRUE) != NULL);
if (rc)
@@ -2982,15 +2984,14 @@ ActivateEnterGrab(DeviceIntPtr dev, WindowPtr old, WindowPtr win)
(*dev->deviceGrab.DeactivateGrab) (dev);
}
- event = (DeviceEvent) {
- .header = ET_Internal,
- .type = ET_Enter,
- .length = sizeof(DeviceEvent),
- .time = GetTimeInMillis(),
- .deviceid = dev->id,
- .sourceid = dev->id,
- .detail.button = 0
- };
+ memset(&event, 0, sizeof(DeviceEvent));
+ event.header = ET_Internal;
+ event.type = ET_Enter;
+ event.length = sizeof(DeviceEvent);
+ event.time = GetTimeInMillis();
+ event.deviceid = dev->id;
+ event.sourceid = dev->id;
+ event.detail.button = 0;
rc = (CheckPassiveGrabsOnWindow(win, dev, (InternalEvent *) &event, FALSE,
TRUE) != NULL);
if (rc)
@@ -3017,6 +3018,9 @@ CheckMotion(DeviceEvent *ev, DeviceIntPtr pDev)
verify_internal_event((InternalEvent *) ev);
+ if (!pSprite)
+ return FALSE;
+
prevSpriteWin = pSprite->win;
if (ev && !syncEvents.playingEvents) {
@@ -4433,6 +4437,7 @@ OtherClientGone(pointer value, XID id)
prev = other;
}
FatalError("client not on event list");
+ return BadValue; // to avoid warning
}
int
@@ -4564,10 +4569,7 @@ CoreEnterLeaveEvent(DeviceIntPtr mouse,
int type,
int mode, int detail, WindowPtr pWin, Window child)
{
- xEvent event = {
- .u.u.type = type,
- .u.u.detail = detail
- };
+ xEvent event;
WindowPtr focus;
DeviceIntPtr keybd;
GrabPtr grab = mouse->deviceGrab.grab;
@@ -4587,6 +4589,9 @@ CoreEnterLeaveEvent(DeviceIntPtr mouse,
mask = pWin->eventMask | wOtherEventMasks(pWin);
}
+ memset(&event, 0, sizeof(xEvent));
+ event.u.u.type = type;
+ event.u.u.detail = detail;
event.u.enterLeave.time = currentTime.milliseconds;
event.u.enterLeave.rootX = mouse->spriteInfo->sprite->hot.x;
event.u.enterLeave.rootY = mouse->spriteInfo->sprite->hot.y;
@@ -4617,16 +4622,17 @@ CoreEnterLeaveEvent(DeviceIntPtr mouse,
}
if ((type == EnterNotify) && (mask & KeymapStateMask)) {
- xKeymapEvent ke = {
- .type = KeymapNotify
- };
+ xKeymapEvent ke;
ClientPtr client = grab ? rClient(grab) : wClient(pWin);
int rc;
rc = XaceHook(XACE_DEVICE_ACCESS, client, keybd, DixReadAccess);
if (rc == Success)
memcpy((char *) &ke.map[0], (char *) &keybd->key->down[1], 31);
+ else
+ memset((char *) &ke.map[0], 0, 31);
+ ke.type = KeymapNotify;
if (grab)
TryClientEvents(rClient(grab), keybd, (xEvent *) &ke, 1,
mask, KeymapStateMask, grab);
@@ -4717,10 +4723,10 @@ DeviceEnterLeaveEvent(DeviceIntPtr mouse,
void
CoreFocusEvent(DeviceIntPtr dev, int type, int mode, int detail, WindowPtr pWin)
{
- xEvent event = {
- .u.u.type = type,
- .u.u.detail = detail
- };
+ xEvent event; memset(&event, 0, sizeof(xEvent));
+ event.u.u.type = type;
+ event.u.u.detail = detail;
+
event.u.focus.mode = mode;
event.u.focus.window = pWin->drawable.id;
@@ -4728,16 +4734,17 @@ CoreFocusEvent(DeviceIntPtr dev, int type, int mode, int detail, WindowPtr pWin)
GetEventFilter(dev, &event), NullGrab);
if ((type == FocusIn) &&
((pWin->eventMask | wOtherEventMasks(pWin)) & KeymapStateMask)) {
- xKeymapEvent ke = {
- .type = KeymapNotify
- };
+ xKeymapEvent ke;
ClientPtr client = wClient(pWin);
int rc;
rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixReadAccess);
if (rc == Success)
memcpy((char *) &ke.map[0], (char *) &dev->key->down[1], 31);
+ else
+ memset((char *) &ke.map[0], 0, 31);
+ ke.type = KeymapNotify;
DeliverEventsToWindow(dev, pWin, (xEvent *) &ke, 1,
KeymapStateMask, NullGrab);
}
@@ -4879,12 +4886,11 @@ ProcGetInputFocus(ClientPtr client)
if (rc != Success)
return rc;
- rep = (xGetInputFocusReply) {
- .type = X_Reply,
- .length = 0,
- .sequenceNumber = client->sequence,
- .revertTo = focus->revert
- };
+ memset(&rep, 0, sizeof(xGetInputFocusReply));
+ rep.type = X_Reply;
+ rep.length = 0;
+ rep.sequenceNumber = client->sequence;
+ rep.revertTo = focus->revert;
if (focus->win == NoneWin)
rep.focus = None;
@@ -4946,12 +4952,11 @@ ProcGrabPointer(ClientPtr client)
if (rc != Success)
return rc;
- rep = (xGrabPointerReply) {
- .type = X_Reply,
- .status = status,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+ memset(&rep, 0, sizeof(xGrabPointerReply));
+ rep.type = X_Reply;
+ rep.status = status;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
WriteReplyToClient(client, sizeof(xGrabPointerReply), &rep);
return Success;
}
@@ -5185,12 +5190,11 @@ ProcGrabKeyboard(ClientPtr client)
if (result != Success)
return result;
- rep = (xGrabKeyboardReply) {
- .type = X_Reply,
- .status = status,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+ memset(&rep, 0, sizeof(xGrabKeyboardReply));
+ rep.type = X_Reply;
+ rep.status = status,
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
WriteReplyToClient(client, sizeof(xGrabKeyboardReply), &rep);
return Success;
}
@@ -5253,16 +5257,16 @@ ProcQueryPointer(ClientPtr client)
pSprite = mouse->spriteInfo->sprite;
if (mouse->valuator->motionHintWindow)
MaybeStopHint(mouse, client);
- rep = (xQueryPointerReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .mask = event_get_corestate(mouse, keyboard),
- .root = (GetCurrentRootWindow(mouse))->drawable.id,
- .rootX = pSprite->hot.x,
- .rootY = pSprite->hot.y,
- .child = None
- };
+ memset(&rep, 0, sizeof(xQueryPointerReply));
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.mask = event_get_corestate(mouse, keyboard);
+ rep.root = (GetCurrentRootWindow(mouse))->drawable.id;
+ rep.rootX = pSprite->hot.x;
+ rep.rootY = pSprite->hot.y;
+ rep.child = None;
+
if (pSprite->hot.pScreen == pWin->drawable.pScreen) {
rep.sameScreen = xTrue;
rep.winX = pSprite->hot.x - pWin->drawable.x;
@@ -5312,7 +5316,8 @@ void
InitEvents(void)
{
int i;
- QdEventPtr qe, tmp;
+ QdEventPtr qe=NULL;
+ QdEventPtr tmp;
inputInfo.numDevices = 0;
inputInfo.devices = (DeviceIntPtr) NULL;
@@ -5534,13 +5539,12 @@ ProcGrabKey(ClientPtr client)
REQUEST_SIZE_MATCH(xGrabKeyReq);
- param = (GrabParameters) {
- .grabtype = CORE,
- .ownerEvents = stuff->ownerEvents,
- .this_device_mode = stuff->keyboardMode,
- .other_devices_mode = stuff->pointerMode,
- .modifiers = stuff->modifiers
- };
+ memset(&param, 0, sizeof(param));
+ param.grabtype = CORE;
+ param.ownerEvents = stuff->ownerEvents;
+ param.this_device_mode = stuff->keyboardMode;
+ param.other_devices_mode = stuff->pointerMode;
+ param.modifiers = stuff->modifiers;
rc = CheckGrabValues(client, &param);
if (rc != Success)
@@ -5641,13 +5645,12 @@ ProcGrabButton(ClientPtr client)
if (rc != Success)
return rc;
- param = (GrabParameters) {
- .grabtype = CORE,
- .ownerEvents = stuff->ownerEvents,
- .this_device_mode = stuff->keyboardMode,
- .other_devices_mode = stuff->pointerMode,
- .modifiers = stuff->modifiers
- };
+ memset(&param, 0, sizeof(param));
+ param.grabtype = CORE;
+ param.ownerEvents = stuff->ownerEvents;
+ param.this_device_mode = stuff->keyboardMode;
+ param.other_devices_mode = stuff->pointerMode;
+ param.modifiers = stuff->modifiers;
mask.core = stuff->eventMask;
diff --git a/xorg-server/dix/extension.c b/xorg-server/dix/extension.c
index 6380db364..bdbbf014c 100644
--- a/xorg-server/dix/extension.c
+++ b/xorg-server/dix/extension.c
@@ -252,12 +252,11 @@ ProcQueryExtension(ClientPtr client)
REQUEST_FIXED_SIZE(xQueryExtensionReq, stuff->nbytes);
- reply = (xQueryExtensionReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .major_opcode = 0
- };
+ memset(&reply, 0, sizeof(xQueryExtensionReply));
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = 0;
+ reply.major_opcode = 0;
if (!NumExtensions)
reply.present = xFalse;
@@ -285,12 +284,12 @@ ProcListExtensions(ClientPtr client)
REQUEST_SIZE_MATCH(xReq);
- reply = (xListExtensionsReply) {
- .type = X_Reply,
- .nExtensions = 0,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+ memset(&reply, 0, sizeof(xListExtensionsReply));
+ reply.type = X_Reply;
+ reply.nExtensions = 0;
+ reply.sequenceNumber = client->sequence;
+ reply.length = 0;
+
buffer = NULL;
if (NumExtensions) {
diff --git a/xorg-server/dix/gc.c b/xorg-server/dix/gc.c
index f46e0ddc4..fc13f46a0 100644
--- a/xorg-server/dix/gc.c
+++ b/xorg-server/dix/gc.c
@@ -320,12 +320,30 @@ ChangeGC(ClientPtr client, GC * pGC, BITS32 mask, ChangeGCValPtr pUnion)
break;
}
case GCClipXOrigin:
+ #ifndef _DEBUG
NEXTVAL(INT16, pGC->clipOrg.x);
-
+ #else
+ {
+ long Val;
+ NEXTVAL(long, Val);
+ if (abs(Val)>65535)
+ ErrorF("Value received for GCClipXOrigin is too large %x\n",Val);
+ pGC->clipOrg.x=(INT16)(Val&0xffff);
+ }
+ #endif
break;
case GCClipYOrigin:
+ #ifndef _DEBUG
NEXTVAL(INT16, pGC->clipOrg.y);
-
+ #else
+ {
+ long Val;
+ NEXTVAL(long, Val);
+ if (abs(Val)>65535)
+ ErrorF("Value received for GCClipYOrigin is too large %x\n",Val);
+ pGC->clipOrg.y=(INT16)(Val&0xffff);
+ }
+ #endif
break;
case GCClipMask:
NEXT_PTR(PixmapPtr, pPixmap);
diff --git a/xorg-server/dix/getevents.c b/xorg-server/dix/getevents.c
index 14b65cabc..3b87e17d4 100644
--- a/xorg-server/dix/getevents.c
+++ b/xorg-server/dix/getevents.c
@@ -75,6 +75,17 @@ typedef const char *string;
#include <Xserver-dtrace.h>
#endif
+#ifdef _MSC_VER
+#include <math.h>
+
+double roundd(double f)
+{
+ return ((f<0.0) ? ceil(f-.5) : floor (f+.5));
+}
+#define lroundf(val) ((int)roundf(val))
+#define lround(val) ((int)roundd(val))
+#endif
+
/* Number of motion history events to store. */
#define MOTION_HISTORY_SIZE 256
@@ -1101,7 +1112,7 @@ GetKeyboardEvents(InternalEvent *events, DeviceIntPtr pDev, int type,
#endif
/* refuse events from disabled devices */
- if (!pDev->enabled)
+ if (!pDev || !pDev->enabled)
return 0;
if (!events || !pDev->key || !pDev->focus || !pDev->kbdfeed ||
@@ -1206,7 +1217,12 @@ FreeEventList(InternalEvent *list, int num_events)
static void
transform(struct pixman_f_transform *m, double *x, double *y)
{
- struct pixman_f_vector p = {.v = {*x, *y, 1} };
+ struct pixman_f_vector p;
+
+ p.v[0] = *x;
+ p.v[1] = *y;
+ p.v[2] = 1;
+
pixman_f_transform_point(m, &p);
*x = p.v[0];
diff --git a/xorg-server/dix/inpututils.c b/xorg-server/dix/inpututils.c
index a10a7c761..3098cdb0b 100644
--- a/xorg-server/dix/inpututils.c
+++ b/xorg-server/dix/inpututils.c
@@ -71,13 +71,14 @@ static void
do_butmap_change(DeviceIntPtr dev, CARD8 *map, int len, ClientPtr client)
{
int i;
- xEvent core_mn = { .u.u.type = MappingNotify };
+ xEvent core_mn;
deviceMappingNotify xi_mn;
/* The map in ButtonClassRec refers to button numbers, whereas the
* protocol is zero-indexed. Sigh. */
memcpy(&(dev->button->map[1]), map, len);
+ core_mn.u.u.type = MappingNotify;
core_mn.u.mappingNotify.request = MappingPointer;
/* 0 is the server client. */
@@ -92,12 +93,11 @@ do_butmap_change(DeviceIntPtr dev, CARD8 *map, int len, ClientPtr client)
WriteEventsToClient(clients[i], 1, &core_mn);
}
- xi_mn = (deviceMappingNotify) {
- .type = DeviceMappingNotify,
- .request = MappingPointer,
- .deviceid = dev->id,
- .time = GetTimeInMillis()
- };
+
+ xi_mn.type = DeviceMappingNotify;
+ xi_mn.request = MappingPointer;
+ xi_mn.deviceid = dev->id;
+ xi_mn.time = GetTimeInMillis();
SendEventToAllWindows(dev, DeviceMappingNotifyMask, (xEvent *) &xi_mn, 1);
}
diff --git a/xorg-server/dix/main.c b/xorg-server/dix/main.c
index 05dcbeddd..374ec2cf7 100644
--- a/xorg-server/dix/main.c
+++ b/xorg-server/dix/main.c
@@ -116,6 +116,10 @@ Equipment Corporation.
#include "dpmsproc.h"
#endif
+#ifdef _DEBUG
+#include <crtdbg.h>
+#endif
+
extern void Dispatch(void);
#ifdef XQUARTZ
@@ -132,9 +136,50 @@ dix_main(int argc, char *argv[], char *envp[])
{
int i;
HWEventQueueType alwaysCheckForInput[2];
-
+ #ifdef _DEBUG
+ //int TmpFlag=_CrtSetDbgFlag( _CRTDBG_REPORT_FLAG);
+
+ //TmpFlag|=_CRTDBG_ALLOC_MEM_DF;
+ //TmpFlag|=_CRTDBG_DELAY_FREE_MEM_DF;
+ //TmpFlag|=_CRTDBG_CHECK_ALWAYS_DF;
+ //TmpFlag|=_CRTDBG_CHECK_CRT_DF;
+ //TmpFlag|=_CRTDBG_LEAK_CHECK_DF;
+
+ //_CrtSetDbgFlag(TmpFlag);
+ #endif
+
+ ptw32_processInitialize();
display = "0";
+ #ifdef WIN32
+
+ if (InitWSA()<0)
+ {
+ printf("Error initialising WSA\n");
+ return -1;
+ }
+ /* In Win32 we have different threads call Xlib functions (depending
+ on the commandline options given).
+ XInitThreads has to be called before
+ any xlib function is called (aoccording to the man page) */
+ XInitThreads();
+ /* change the current directory to the directory where the vcxsrv.exe executable is installed.
+ This is needed because the font directories are relative to the current directory.
+ */
+ {
+ char ModuleFilename[MAX_PATH];
+ char *pSlash;
+ GetModuleFileName(NULL,ModuleFilename,sizeof(ModuleFilename));
+ pSlash=strrchr(ModuleFilename,'\\');
+ if (pSlash)
+ {
+ *pSlash='\0';
+ chdir(ModuleFilename);
+ }
+ }
+ OsVendorPreInit(argc, argv);
+ #endif
+
InitRegions();
CheckUserParameters(argc, argv, envp);
@@ -160,7 +205,6 @@ dix_main(int argc, char *argv[], char *envp[])
#endif
InitBlockAndWakeupHandlers();
/* Perform any operating system dependent initializations you'd like */
- OsInit();
if (serverGeneration == 1) {
CreateWellKnownSockets();
for (i = 1; i < MAXCLIENTS; i++)
@@ -174,6 +218,7 @@ dix_main(int argc, char *argv[], char *envp[])
ResetWellKnownSockets();
clients[0] = serverClient;
currentMaxClients = 1;
+ OsInit();
/* Initialize privates before first allocation */
dixResetPrivates();
@@ -291,6 +336,11 @@ dix_main(int argc, char *argv[], char *envp[])
NotifyParentProcess();
+ #ifdef _MSC_VER
+ // initialise here because doing it in InitInput failes because keyboard device is not started yet then
+ winInitializeModeKeyStates ();
+ #endif
+
Dispatch();
#ifdef XQUARTZ
diff --git a/xorg-server/dix/makefile b/xorg-server/dix/makefile
new file mode 100644
index 000000000..d201695e8
--- /dev/null
+++ b/xorg-server/dix/makefile
@@ -0,0 +1,48 @@
+ifeq ($(DEBUG),1)
+DEFINES += FONTDEBUG XSERVER_DTRACE
+endif
+
+INCLUDES += ..\composite ..\miext\sync
+
+LIBRARY=libdix
+libmain_la_SOURCES = \
+ stubmain.c
+
+libdix_la_SOURCES = \
+ atom.c \
+ colormap.c \
+ cursor.c \
+ devices.c \
+ dispatch.c \
+ dispatch.h \
+ dixfonts.c \
+ main.c \
+ dixutils.c \
+ enterleave.c \
+ enterleave.h \
+ events.c \
+ eventconvert.c \
+ extension.c \
+ ffs.c \
+ gc.c \
+ getevents.c \
+ globals.c \
+ glyphcurs.c \
+ grabs.c \
+ initatoms.c \
+ inpututils.c \
+ pixmap.c \
+ privates.c \
+ property.c \
+ ptrveloc.c \
+ region.c \
+ registry.c \
+ resource.c \
+ selection.c \
+ swaprep.c \
+ swapreq.c \
+ tables.c \
+ touch.c \
+ window.c
+
+CSRCS = $(filter %.c,$(libdix_la_SOURCES)) $(filter %.c,$(libmain_la_SOURCES))
diff --git a/xorg-server/dix/privates.c b/xorg-server/dix/privates.c
index 41b1a7678..f9b45d816 100644
--- a/xorg-server/dix/privates.c
+++ b/xorg-server/dix/privates.c
@@ -67,65 +67,74 @@ from The Open Group.
static DevPrivateSetRec global_keys[PRIVATE_LAST];
static const Bool xselinux_private[PRIVATE_LAST] = {
- [PRIVATE_SCREEN] = TRUE,
- [PRIVATE_CLIENT] = TRUE,
- [PRIVATE_WINDOW] = TRUE,
- [PRIVATE_PIXMAP] = TRUE,
- [PRIVATE_GC] = TRUE,
- [PRIVATE_CURSOR] = TRUE,
- [PRIVATE_COLORMAP] = TRUE,
- [PRIVATE_DEVICE] = TRUE,
- [PRIVATE_EXTENSION] = TRUE,
- [PRIVATE_SELECTION] = TRUE,
- [PRIVATE_PROPERTY] = TRUE,
- [PRIVATE_PICTURE] = TRUE,
- [PRIVATE_GLYPHSET] = TRUE,
+ /* PRIVATE_XSELINUX,*/ FALSE,
+ /* PRIVATE_SCREEN,*/ TRUE,
+ /* [PRIVATE_EXTENSION] =*/TRUE,
+ /* [PRIVATE_COLORMAP] =*/ TRUE,
+ /* [PRIVATE_DEVICE] =*/ TRUE,
+ /* [PRIVATE_CLIENT] = */ TRUE,
+ /* [PRIVATE_PROPERTY] =*/ TRUE,
+ /* [PRIVATE_SELECTION] =*/TRUE,
+ /* [PRIVATE_WINDOW] =*/ TRUE,
+ /* [PRIVATE_PIXMAP] =*/ TRUE,
+ /* [PRIVATE_GC] =*/ TRUE,
+ /* [PRIVATE_CURSOR] =*/ TRUE,
+ /* PRIVATE_CURSOR_BITS,*/ FALSE,
+ /* PRIVATE_DAMAGE,*/ FALSE,
+ /* PRIVATE_GLYPH,*/ FALSE,
+ /* [PRIVATE_GLYPHSET] =*/ TRUE,
+ /* [PRIVATE_PICTURE] =*/ TRUE
};
static const char *key_names[PRIVATE_LAST] = {
/* XSELinux uses the same private keys for numerous objects */
- [PRIVATE_XSELINUX] = "XSELINUX",
+ /*[PRIVATE_XSELINUX] =*/ "XSELINUX",
/* Otherwise, you get a private in just the requested structure
*/
/* These can have objects created before all of the keys are registered */
- [PRIVATE_SCREEN] = "SCREEN",
- [PRIVATE_EXTENSION] = "EXTENSION",
- [PRIVATE_COLORMAP] = "COLORMAP",
- [PRIVATE_DEVICE] = "DEVICE",
+ /*[PRIVATE_SCREEN] =*/ "SCREEN",
+ /*[PRIVATE_EXTENSION] =*/ "EXTENSION",
+ /*[PRIVATE_COLORMAP] =*/ "COLORMAP",
+ /*[PRIVATE_DEVICE] =*/ "DEVICE",
/* These cannot have any objects before all relevant keys are registered */
- [PRIVATE_CLIENT] = "CLIENT",
- [PRIVATE_PROPERTY] = "PROPERTY",
- [PRIVATE_SELECTION] = "SELECTION",
- [PRIVATE_WINDOW] = "WINDOW",
- [PRIVATE_PIXMAP] = "PIXMAP",
- [PRIVATE_GC] = "GC",
- [PRIVATE_CURSOR] = "CURSOR",
- [PRIVATE_CURSOR_BITS] = "CURSOR_BITS",
+ /*[PRIVATE_CLIENT] =*/ "CLIENT",
+ /*[PRIVATE_PROPERTY] =*/ "PROPERTY",
+ /*[PRIVATE_SELECTION] =*/ "SELECTION",
+ /*[PRIVATE_WINDOW] =*/ "WINDOW",
+ /*[PRIVATE_PIXMAP] =*/ "PIXMAP",
+ /*[PRIVATE_GC] =*/ "GC",
+ /*[PRIVATE_CURSOR] =*/ "CURSOR",
+ /*[PRIVATE_CURSOR_BITS] =*/ "CURSOR_BITS",
/* extension privates */
- [PRIVATE_DAMAGE] = "DAMAGE",
- [PRIVATE_GLYPH] = "GLYPH",
- [PRIVATE_GLYPHSET] = "GLYPHSET",
- [PRIVATE_PICTURE] = "PICTURE",
- [PRIVATE_SYNC_FENCE] = "SYNC_FENCE",
+ /*[PRIVATE_DAMAGE] =*/ "DAMAGE",
+ /*[PRIVATE_GLYPH] =*/ "GLYPH",
+ /*[PRIVATE_GLYPHSET] =*/ "GLYPHSET",
+ /*[PRIVATE_PICTURE] =*/ "PICTURE",
+ /*[PRIVATE_SYNC_FENCE] =*/ "SYNC_FENCE",
};
static const Bool screen_specific_private[PRIVATE_LAST] = {
- [PRIVATE_SCREEN] = FALSE,
- [PRIVATE_CLIENT] = FALSE,
- [PRIVATE_WINDOW] = TRUE,
- [PRIVATE_PIXMAP] = TRUE,
- [PRIVATE_GC] = TRUE,
- [PRIVATE_CURSOR] = FALSE,
- [PRIVATE_COLORMAP] = FALSE,
- [PRIVATE_DEVICE] = FALSE,
- [PRIVATE_EXTENSION] = FALSE,
- [PRIVATE_SELECTION] = FALSE,
- [PRIVATE_PROPERTY] = FALSE,
- [PRIVATE_PICTURE] = TRUE,
- [PRIVATE_GLYPHSET] = FALSE,
+ /*[PRIVATE_XSELINUX] =*/ FALSE,
+ /*[PRIVATE_SCREEN] =*/ FALSE,
+ /*[PRIVATE_EXTENSION] =*/ FALSE,
+ /*[PRIVATE_COLORMAP] =*/ FALSE,
+ /*[PRIVATE_DEVICE] =*/ FALSE,
+ /*[PRIVATE_CLIENT] =*/ FALSE,
+ /*[PRIVATE_PROPERTY] =*/ FALSE,
+ /*[PRIVATE_SELECTION] =*/ FALSE,
+ /*[PRIVATE_WINDOW] =*/ TRUE,
+ /*[PRIVATE_PIXMAP] =*/ TRUE,
+ /*[PRIVATE_GC] =*/ TRUE,
+ /*[PRIVATE_CURSOR] =*/ FALSE,
+ /*[PRIVATE_CURSOR_BITS] =*/ FALSE,
+ /*[PRIVATE_DAMAGE] =*/ FALSE,
+ /*[PRIVATE_GLYPH] =*/ FALSE,
+ /*[PRIVATE_GLYPHSET] =*/ FALSE,
+ /*[PRIVATE_PICTURE] =*/ TRUE,
+ /*[PRIVATE_SYNC_FENCE] =*/ FALSE
};
typedef Bool (*FixupFunc) (PrivatePtr *privates, int offset, unsigned bytes);
@@ -288,11 +297,24 @@ fixupDevices(FixupFunc fixup, unsigned bytes)
}
static Bool (*const allocated_early[PRIVATE_LAST]) (FixupFunc, unsigned) = {
- [PRIVATE_SCREEN] = fixupScreens,
- [PRIVATE_CLIENT] = fixupServerClient,
- [PRIVATE_EXTENSION] = fixupExtensions,
- [PRIVATE_COLORMAP] = fixupDefaultColormaps,
- [PRIVATE_DEVICE] = fixupDevices,
+ /*PRIVATE_XSELINUX,*/ NULL,
+ /*PRIVATE_SCREEN =*/ fixupScreens,
+ /*PRIVATE_EXTENSION =*/ fixupExtensions,
+ /*PRIVATE_COLORMAP =*/ fixupDefaultColormaps,
+ /*PRIVATE_DEVICE,*/ fixupDevices,
+ /*PRIVATE_CLIENT =*/ fixupServerClient,
+ /*PRIVATE_PROPERTY,*/ NULL,
+ /*PRIVATE_SELECTION,*/ NULL,
+ /*PRIVATE_WINDOW,*/ NULL,
+ /*PRIVATE_PIXMAP,*/ NULL,
+ /*PRIVATE_GC,*/ NULL,
+ /*PRIVATE_CURSOR,*/ NULL,
+ /*PRIVATE_CURSOR_BITS,*/ NULL,
+ /*PRIVATE_DAMAGE,*/ NULL,
+ /*PRIVATE_GLYPH,*/ NULL,
+ /*PRIVATE_GLYPHSET,*/ NULL,
+ /*PRIVATE_PICTURE,*/ NULL,
+ /*PRIVATE_SYNC_FENCE,*/ NULL
};
static void
diff --git a/xorg-server/dix/property.c b/xorg-server/dix/property.c
index dec409024..833c3ca59 100644
--- a/xorg-server/dix/property.c
+++ b/xorg-server/dix/property.c
@@ -108,12 +108,12 @@ dixLookupProperty(PropertyPtr *result, WindowPtr pWin, Atom propertyName,
static void
deliverPropertyNotifyEvent(WindowPtr pWin, int state, Atom atom)
{
- xEvent event = {
- .u.property.window = pWin->drawable.id,
- .u.property.state = state,
- .u.property.atom = atom,
- .u.property.time = currentTime.milliseconds
- };
+ xEvent event; memset(&event, 0, sizeof(xEvent));
+ event.u.property.window = pWin->drawable.id;
+ event.u.property.state = state;
+ event.u.property.atom = atom;
+ event.u.property.time = currentTime.milliseconds;
+
event.u.u.type = PropertyNotify;
DeliverEvents(pWin, &event, 1, (WindowPtr) NULL);
}
@@ -414,15 +414,14 @@ DeleteAllWindowProperties(WindowPtr pWin)
static int
NullPropertyReply(ClientPtr client, ATOM propertyType, int format)
{
- xGetPropertyReply reply = {
- .type = X_Reply,
- .format = format,
- .sequenceNumber = client->sequence,
- .length = 0,
- .propertyType = propertyType,
- .bytesAfter = 0,
- .nItems = 0
- };
+ xGetPropertyReply reply;
+ reply.type = X_Reply;
+ reply.format = format;
+ reply.sequenceNumber = client->sequence;
+ reply.length = 0;
+ reply.propertyType = propertyType;
+ reply.bytesAfter = 0;
+ reply.nItems = 0;
WriteReplyToClient(client, sizeof(xGenericReply), &reply);
return Success;
}
@@ -483,15 +482,14 @@ ProcGetProperty(ClientPtr client)
if (((stuff->type != pProp->type) && (stuff->type != AnyPropertyType))
) {
- reply = (xGetPropertyReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .bytesAfter = pProp->size,
- .format = pProp->format,
- .length = 0,
- .nItems = 0,
- .propertyType = pProp->type
- };
+ memset(&reply, 0, sizeof(xGetPropertyReply));
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.bytesAfter = pProp->size;
+ reply.format = pProp->format;
+ reply.length = 0;
+ reply.nItems = 0;
+ reply.propertyType = pProp->type;
WriteReplyToClient(client, sizeof(xGenericReply), &reply);
return Success;
}
@@ -512,15 +510,14 @@ ProcGetProperty(ClientPtr client)
len = min(n - ind, 4 * stuff->longLength);
- reply = (xGetPropertyReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .bytesAfter = n - (ind + len),
- .format = pProp->format,
- .length = bytes_to_int32(len),
- .nItems = len / (pProp->format / 8),
- .propertyType = pProp->type
- };
+ memset(&reply, 0, sizeof(xGetPropertyReply));
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence,
+ reply.bytesAfter = n - (ind + len);
+ reply.format = pProp->format;
+ reply.length = bytes_to_int32(len);
+ reply.nItems = len / (pProp->format / 8);
+ reply.propertyType = pProp->type;
if (stuff->delete && (reply.bytesAfter == 0))
deliverPropertyNotifyEvent(pWin, PropertyDelete, pProp->propertyName);
@@ -595,12 +592,12 @@ ProcListProperties(ClientPtr client)
}
}
- xlpr = (xListPropertiesReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(numProps * sizeof(Atom)),
- .nProperties = numProps
- };
+
+ xlpr.type = X_Reply;
+ xlpr.sequenceNumber = client->sequence;
+ xlpr.length = bytes_to_int32(numProps * sizeof(Atom));
+ xlpr.nProperties = numProps;
+
WriteReplyToClient(client, sizeof(xGenericReply), &xlpr);
if (numProps) {
client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write;
diff --git a/xorg-server/dix/ptrveloc.c b/xorg-server/dix/ptrveloc.c
index e75300a17..6d349e089 100644
--- a/xorg-server/dix/ptrveloc.c
+++ b/xorg-server/dix/ptrveloc.c
@@ -26,6 +26,10 @@
#include <dix-config.h>
#endif
+#ifdef _MSC_VER
+#define _USE_MATH_DEFINES
+#endif
+
#include <math.h>
#include <ptrveloc.h>
#include <exevents.h>
@@ -60,6 +64,11 @@
*
****************************************************************************/
+#ifdef _MSC_VER
+#define inline __inline
+#define lrintf(val) ((int)val)
+#endif
+
/* fwds */
static double
SimpleSmoothProfile(DeviceIntPtr dev, DeviceVelocityPtr vel, double velocity,
diff --git a/xorg-server/dix/registry.c b/xorg-server/dix/registry.c
index 82a3340e1..ce741c28e 100644
--- a/xorg-server/dix/registry.c
+++ b/xorg-server/dix/registry.c
@@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
#include <X11/X.h>
#include <X11/Xproto.h>
#include "resource.h"
@@ -207,7 +208,7 @@ RegisterResourceName(RESTYPE resource, const char *name)
resource &= TypeMask;
while (resource >= nresource) {
- if (!double_size(&resources, nresource, sizeof(char *)))
+ if (!double_size((void*)&resources, nresource, sizeof(char *)))
return;
nresource = nresource ? nresource * 2 : BASE_SIZE;
}
@@ -300,7 +301,7 @@ dixFreeRegistry(void)
free(errors[nerror]);
free(errors);
- free(resources);
+ free((void*)resources);
requests = NULL;
nminor = NULL;
@@ -322,7 +323,7 @@ dixFreeRegistry(void)
void
dixResetRegistry(void)
{
- ExtensionEntry extEntry = { .name = CORE };
+ ExtensionEntry extEntry;
dixFreeRegistry();
@@ -345,6 +346,8 @@ dixResetRegistry(void)
RegisterResourceName(RT_PASSIVEGRAB, "PASSIVE GRAB");
/* Add the core protocol */
+ memset(&extEntry, 0, sizeof(extEntry));
+ extEntry.name = CORE;
RegisterExtensionNames(&extEntry);
}
diff --git a/xorg-server/dix/resource.c b/xorg-server/dix/resource.c
index 2aafa343c..c04b5578e 100644
--- a/xorg-server/dix/resource.c
+++ b/xorg-server/dix/resource.c
@@ -432,66 +432,66 @@ FindGCSubRes(pointer value, FindAllRes func, pointer cdata)
static struct ResourceType *resourceTypes;
static const struct ResourceType predefTypes[] = {
- [RT_NONE & (RC_LASTPREDEF - 1)] = {
- .deleteFunc = (DeleteType) NoopDDA,
- .sizeFunc = GetDefaultBytes,
- .findSubResFunc = DefaultFindSubRes,
- .errorValue = BadValue,
- },
- [RT_WINDOW & (RC_LASTPREDEF - 1)] = {
- .deleteFunc = DeleteWindow,
- .sizeFunc = GetWindowBytes,
- .findSubResFunc = FindWindowSubRes,
- .errorValue = BadWindow,
- },
- [RT_PIXMAP & (RC_LASTPREDEF - 1)] = {
- .deleteFunc = dixDestroyPixmap,
- .sizeFunc = GetPixmapBytes,
- .findSubResFunc = DefaultFindSubRes,
- .errorValue = BadPixmap,
- },
- [RT_GC & (RC_LASTPREDEF - 1)] = {
- .deleteFunc = FreeGC,
- .sizeFunc = GetGcBytes,
- .findSubResFunc = FindGCSubRes,
- .errorValue = BadGC,
- },
- [RT_FONT & (RC_LASTPREDEF - 1)] = {
- .deleteFunc = CloseFont,
- .sizeFunc = GetDefaultBytes,
- .findSubResFunc = DefaultFindSubRes,
- .errorValue = BadFont,
- },
- [RT_CURSOR & (RC_LASTPREDEF - 1)] = {
- .deleteFunc = FreeCursor,
- .sizeFunc = GetDefaultBytes,
- .findSubResFunc = DefaultFindSubRes,
- .errorValue = BadCursor,
- },
- [RT_COLORMAP & (RC_LASTPREDEF - 1)] = {
- .deleteFunc = FreeColormap,
- .sizeFunc = GetDefaultBytes,
- .findSubResFunc = DefaultFindSubRes,
- .errorValue = BadColor,
- },
- [RT_CMAPENTRY & (RC_LASTPREDEF - 1)] = {
- .deleteFunc = FreeClientPixels,
- .sizeFunc = GetDefaultBytes,
- .findSubResFunc = DefaultFindSubRes,
- .errorValue = BadColor,
- },
- [RT_OTHERCLIENT & (RC_LASTPREDEF - 1)] = {
- .deleteFunc = OtherClientGone,
- .sizeFunc = GetDefaultBytes,
- .findSubResFunc = DefaultFindSubRes,
- .errorValue = BadValue,
- },
- [RT_PASSIVEGRAB & (RC_LASTPREDEF - 1)] = {
- .deleteFunc = DeletePassiveGrab,
- .sizeFunc = GetDefaultBytes,
- .findSubResFunc = DefaultFindSubRes,
- .errorValue = BadValue,
- },
+ /* [RT_NONE & (RC_LASTPREDEF - 1)] = */ {
+ /*.deleteFunc = */(DeleteType)NoopDDA,
+ /*.sizeFunc = */GetDefaultBytes,
+ /*.findSubResFunc = */DefaultFindSubRes,
+ /*.errorValue = */BadValue,
+ },
+ /* [RT_WINDOW & (RC_LASTPREDEF - 1)] = */ {
+ /*.deleteFunc = */DeleteWindow,
+ /*.sizeFunc = */GetWindowBytes,
+ /*.findSubResFunc = */FindWindowSubRes,
+ /*.errorValue = */BadWindow,
+ },
+ /* [RT_PIXMAP & (RC_LASTPREDEF - 1)] = */ {
+ /*.deleteFunc = */dixDestroyPixmap,
+ /*.sizeFunc = */GetPixmapBytes,
+ /*.findSubResFunc = */DefaultFindSubRes,
+ /*.errorValue = */BadPixmap,
+ },
+ /* [RT_GC & (RC_LASTPREDEF - 1)] = */ {
+ /*.deleteFunc = */FreeGC,
+ /*.sizeFunc = */GetGcBytes,
+ /*.findSubResFunc = */FindGCSubRes,
+ /*.errorValue = */BadGC,
+ },
+ /* [RT_FONT & (RC_LASTPREDEF - 1)] = */ {
+ /*.deleteFunc = */CloseFont,
+ /*.sizeFunc = */GetDefaultBytes,
+ /*.findSubResFunc = */DefaultFindSubRes,
+ /*.errorValue = */BadFont,
+ },
+ /* [RT_CURSOR & (RC_LASTPREDEF - 1)] = */ {
+ /*.deleteFunc = */FreeCursor,
+ /*.sizeFunc = */GetDefaultBytes,
+ /*.findSubResFunc = */DefaultFindSubRes,
+ /*.errorValue = */BadCursor,
+ },
+ /* [RT_COLORMAP & (RC_LASTPREDEF - 1)] = */ {
+ /*.deleteFunc = */FreeColormap,
+ /*.sizeFunc = */GetDefaultBytes,
+ /*.findSubResFunc = */DefaultFindSubRes,
+ /*.errorValue = */BadColor,
+ },
+ /* [RT_CMAPENTRY & (RC_LASTPREDEF - 1)] = */ {
+ /*.deleteFunc = */FreeClientPixels,
+ /*.sizeFunc = */GetDefaultBytes,
+ /*.findSubResFunc = */DefaultFindSubRes,
+ /*.errorValue = */BadColor,
+ },
+ /* [RT_OTHERCLIENT & (RC_LASTPREDEF - 1)] = */ {
+ /*.deleteFunc = */OtherClientGone,
+ /*.sizeFunc = */GetDefaultBytes,
+ /*.findSubResFunc = */DefaultFindSubRes,
+ /*.errorValue = */BadValue,
+ },
+ /* [RT_PASSIVEGRAB & (RC_LASTPREDEF - 1)] = */ {
+ /*.deleteFunc = */DeletePassiveGrab,
+ /*.sizeFunc = */GetDefaultBytes,
+ /*.findSubResFunc = */DefaultFindSubRes,
+ /*.errorValue = */BadValue,
+ },
};
CallbackListPtr ResourceStateCallback;
diff --git a/xorg-server/dix/selection.c b/xorg-server/dix/selection.c
index e905b1ec2..060afb808 100644
--- a/xorg-server/dix/selection.c
+++ b/xorg-server/dix/selection.c
@@ -181,11 +181,11 @@ ProcSetSelectionOwner(ClientPtr client)
if (CompareTimeStamps(time, pSel->lastTimeChanged) == EARLIER)
return Success;
if (pSel->client && (!pWin || (pSel->client != client))) {
- xEvent event = {
- .u.selectionClear.time = time.milliseconds,
- .u.selectionClear.window = pSel->window,
- .u.selectionClear.atom = pSel->selection
- };
+ xEvent event;
+ event.u.selectionClear.time = time.milliseconds;
+ event.u.selectionClear.window = pSel->window;
+ event.u.selectionClear.atom = pSel->selection;
+
event.u.u.type = SelectionClear;
WriteEventsToClient(pSel->client, 1, &event);
}
@@ -238,11 +238,10 @@ ProcGetSelectionOwner(ClientPtr client)
return BadAtom;
}
- reply = (xGetSelectionOwnerReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- };
+ memset(&reply, 0, sizeof(xGetSelectionOwnerReply));
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = 0;
rc = dixLookupSelection(&pSel, stuff->id, client, DixGetAttrAccess);
if (rc == Success)
diff --git a/xorg-server/dix/swapreq.c b/xorg-server/dix/swapreq.c
index 0f6d49ef0..6f9d4d891 100644
--- a/xorg-server/dix/swapreq.c
+++ b/xorg-server/dix/swapreq.c
@@ -283,7 +283,7 @@ SProcConvertSelection(ClientPtr client)
int
SProcSendEvent(ClientPtr client)
{
- xEvent eventT = { .u.u.type = 0 };
+ xEvent eventT;
EventSwapPtr proc;
REQUEST(xSendEventReq);
@@ -296,6 +296,7 @@ SProcSendEvent(ClientPtr client)
proc = EventSwapVector[stuff->event.u.u.type & 0177];
if (!proc || proc == NotImplemented) /* no swapping proc; invalid event type? */
return BadValue;
+ eventT.u.u.type = 0;
(*proc) (&stuff->event, &eventT);
stuff->event = eventT;
diff --git a/xorg-server/dix/window.c b/xorg-server/dix/window.c
index 92df1eb4c..112417ebf 100644
--- a/xorg-server/dix/window.c
+++ b/xorg-server/dix/window.c
@@ -827,16 +827,16 @@ CreateWindow(Window wid, WindowPtr pParent, int x, int y, unsigned w,
}
if (SubSend(pParent)) {
- xEvent event = {
- .u.createNotify.window = wid,
- .u.createNotify.parent = pParent->drawable.id,
- .u.createNotify.x = x,
- .u.createNotify.y = y,
- .u.createNotify.width = w,
- .u.createNotify.height = h,
- .u.createNotify.borderWidth = bw,
- .u.createNotify.override = pWin->overrideRedirect
- };
+ xEvent event; memset(&event, 0, sizeof(xEvent));
+ event.u.createNotify.window = wid;
+ event.u.createNotify.parent = pParent->drawable.id;
+ event.u.createNotify.x = x;
+ event.u.createNotify.y = y;
+ event.u.createNotify.width = w;
+ event.u.createNotify.height = h;
+ event.u.createNotify.borderWidth = bw;
+ event.u.createNotify.override = pWin->overrideRedirect;
+
event.u.u.type = CreateNotify;
DeliverEvents(pParent, &event, 1, NullWindow);
}
@@ -924,7 +924,9 @@ CrushTree(WindowPtr pWin)
while (1) {
pParent = pChild->parent;
if (SubStrSend(pChild, pParent)) {
- xEvent event = { .u.u.type = DestroyNotify };
+ xEvent event;
+ memset(&event, 0, sizeof(xEvent));
+ event.u.u.type = DestroyNotify;
event.u.destroyNotify.window = pChild->drawable.id;
DeliverEvents(pChild, &event, 1, NullWindow);
}
@@ -966,7 +968,9 @@ DeleteWindow(pointer value, XID wid)
pParent = pWin->parent;
if (wid && pParent && SubStrSend(pWin, pParent)) {
- xEvent event = { .u.u.type = DestroyNotify };
+ xEvent event;
+ memset(&event, 0, sizeof(xEvent));
+ event.u.u.type = DestroyNotify;
event.u.destroyNotify.window = pWin->drawable.id;
DeliverEvents(pWin, &event, 1, NullWindow);
}
@@ -1351,12 +1355,12 @@ ChangeWindowAttributes(WindowPtr pWin, Mask vmask, XID *vlist, ClientPtr client)
CheckWindowOptionalNeed(pChild);
}
- xE = (xEvent) {
- .u.colormap.window = pWin->drawable.id,
- .u.colormap.colormap = cmap,
- .u.colormap.new = xTrue,
- .u.colormap.state = IsMapInstalled(cmap, pWin)
- };
+
+ xE.u.colormap.window = pWin->drawable.id;
+ xE.u.colormap.colormap = cmap;
+ xE.u.colormap.new = xTrue;
+ xE.u.colormap.state = IsMapInstalled(cmap, pWin);
+
xE.u.u.type = ColormapNotify;
DeliverEvents(pWin, &xE, 1, NullWindow);
}
@@ -1745,11 +1749,11 @@ ResizeChildrenWinSize(WindowPtr pWin, int dx, int dy, int dw, int dh)
GravityTranslate(cwsx, cwsy, cwsx - dx, cwsy - dy, dw, dh,
pSib->winGravity, &cwsx, &cwsy);
if (cwsx != pSib->origin.x || cwsy != pSib->origin.y) {
- xEvent event = {
- .u.gravity.window = pSib->drawable.id,
- .u.gravity.x = cwsx - wBorderWidth(pSib),
- .u.gravity.y = cwsy - wBorderWidth(pSib)
- };
+ xEvent event;
+ event.u.gravity.window = pSib->drawable.id;
+ event.u.gravity.x = cwsx - wBorderWidth(pSib);
+ event.u.gravity.y = cwsy - wBorderWidth(pSib);
+
event.u.u.type = GravityNotify;
DeliverEvents(pSib, &event, 1, NullWindow);
pSib->origin.x = cwsx;
@@ -2174,17 +2178,17 @@ ConfigureWindow(WindowPtr pWin, Mask mask, XID *vlist, ClientPtr client)
pSib = pWin->nextSib;
if ((!pWin->overrideRedirect) && (RedirectSend(pParent))) {
- xEvent event = {
- .u.configureRequest.window = pWin->drawable.id,
- .u.configureRequest.sibling = (mask & CWSibling) ? sibwid : None,
- .u.configureRequest.x = x,
- .u.configureRequest.y = y,
- .u.configureRequest.width = w,
- .u.configureRequest.height = h,
- .u.configureRequest.borderWidth = bw,
- .u.configureRequest.valueMask = mask,
- .u.configureRequest.parent = pParent->drawable.id
- };
+ xEvent event; memset(&event, 0, sizeof(xEvent));
+ event.u.configureRequest.window = pWin->drawable.id;
+ event.u.configureRequest.sibling = (mask & CWSibling) ? sibwid : None;
+ event.u.configureRequest.x = x;
+ event.u.configureRequest.y = y;
+ event.u.configureRequest.width = w;
+ event.u.configureRequest.height = h;
+ event.u.configureRequest.borderWidth = bw;
+ event.u.configureRequest.valueMask = mask;
+ event.u.configureRequest.parent = pParent->drawable.id;
+
event.u.u.type = ConfigureRequest;
event.u.u.detail = (mask & CWStackMode) ? smode : Above;
#ifdef PANORAMIX
@@ -2203,11 +2207,11 @@ ConfigureWindow(WindowPtr pWin, Mask mask, XID *vlist, ClientPtr client)
if (size_change &&
((pWin->eventMask | wOtherEventMasks(pWin)) & ResizeRedirectMask)) {
- xEvent eventT = {
- .u.resizeRequest.window = pWin->drawable.id,
- .u.resizeRequest.width = w,
- .u.resizeRequest.height = h
- };
+ xEvent eventT; memset(&eventT, 0, sizeof(xEvent));
+ eventT.u.resizeRequest.window = pWin->drawable.id;
+ eventT.u.resizeRequest.width = w;
+ eventT.u.resizeRequest.height = h;
+
eventT.u.u.type = ResizeRequest;
if (MaybeDeliverEventsToClient(pWin, &eventT, 1,
ResizeRedirectMask, client) == 1) {
@@ -2259,16 +2263,16 @@ ConfigureWindow(WindowPtr pWin, Mask mask, XID *vlist, ClientPtr client)
}
if (SubStrSend(pWin, pParent)) {
- xEvent event = {
- .u.configureNotify.window = pWin->drawable.id,
- .u.configureNotify.aboveSibling = pSib ? pSib->drawable.id : None,
- .u.configureNotify.x = x,
- .u.configureNotify.y = y,
- .u.configureNotify.width = w,
- .u.configureNotify.height = h,
- .u.configureNotify.borderWidth = bw,
- .u.configureNotify.override = pWin->overrideRedirect
- };
+ xEvent event; memset(&event, 0, sizeof(xEvent));
+ event.u.configureNotify.window = pWin->drawable.id;
+ event.u.configureNotify.aboveSibling = pSib ? pSib->drawable.id : None;
+ event.u.configureNotify.x = x;
+ event.u.configureNotify.y = y;
+ event.u.configureNotify.width = w;
+ event.u.configureNotify.height = h;
+ event.u.configureNotify.borderWidth = bw;
+ event.u.configureNotify.override = pWin->overrideRedirect;
+
event.u.u.type = ConfigureNotify;
#ifdef PANORAMIX
if (!noPanoramiXExtension && (!pParent || !pParent->parent)) {
@@ -2348,13 +2352,12 @@ CirculateWindow(WindowPtr pParent, int direction, ClientPtr client)
return Success;
}
- event = (xEvent) {
- .u.circulate.window = pWin->drawable.id,
- .u.circulate.parent = pParent->drawable.id,
- .u.circulate.event = pParent->drawable.id,
- .u.circulate.place = (direction == RaiseLowest) ?
- PlaceOnTop : PlaceOnBottom,
- };
+
+ event.u.circulate.window = pWin->drawable.id;
+ event.u.circulate.parent = pParent->drawable.id;
+ event.u.circulate.event = pParent->drawable.id;
+ event.u.circulate.place = (direction == RaiseLowest) ?
+ PlaceOnTop : PlaceOnBottom;
if (RedirectSend(pParent)) {
event.u.u.type = CirculateRequest;
@@ -2407,13 +2410,13 @@ ReparentWindow(WindowPtr pWin, WindowPtr pParent,
if (WasMapped)
UnmapWindow(pWin, FALSE);
- event = (xEvent) {
- .u.reparent.window = pWin->drawable.id,
- .u.reparent.parent = pParent->drawable.id,
- .u.reparent.x = x,
- .u.reparent.y = y,
- .u.reparent.override = pWin->overrideRedirect
- };
+ memset(&event, 0, sizeof(xEvent));
+ event.u.reparent.window = pWin->drawable.id;
+ event.u.reparent.parent = pParent->drawable.id;
+ event.u.reparent.x = x;
+ event.u.reparent.y = y;
+ event.u.reparent.override = pWin->overrideRedirect;
+
event.u.u.type = ReparentNotify;
#ifdef PANORAMIX
if (!noPanoramiXExtension && !pParent->parent) {
@@ -2509,10 +2512,10 @@ RealizeTree(WindowPtr pWin)
static Bool
MaybeDeliverMapRequest(WindowPtr pWin, WindowPtr pParent, ClientPtr client)
{
- xEvent event = {
- .u.mapRequest.window = pWin->drawable.id,
- .u.mapRequest.parent = pParent->drawable.id
- };
+ xEvent event; memset(&event, 0, sizeof(event));
+ event.u.mapRequest.window = pWin->drawable.id;
+ event.u.mapRequest.parent = pParent->drawable.id;
+
event.u.u.type = MapRequest;
return MaybeDeliverEventsToClient(pParent, &event, 1,
@@ -2523,10 +2526,10 @@ MaybeDeliverMapRequest(WindowPtr pWin, WindowPtr pParent, ClientPtr client)
static void
DeliverMapNotify(WindowPtr pWin)
{
- xEvent event = {
- .u.mapNotify.window = pWin->drawable.id,
- .u.mapNotify.override = pWin->overrideRedirect,
- };
+ xEvent event; memset(&event, 0, sizeof(event));
+ event.u.mapNotify.window = pWin->drawable.id;
+ event.u.mapNotify.override = pWin->overrideRedirect;
+
event.u.u.type = MapNotify;
DeliverEvents(pWin, &event, 1, NullWindow);
}
@@ -2716,10 +2719,10 @@ UnrealizeTree(WindowPtr pWin, Bool fromConfigure)
static void
DeliverUnmapNotify(WindowPtr pWin, Bool fromConfigure)
{
- xEvent event = {
- .u.unmapNotify.window = pWin->drawable.id,
- .u.unmapNotify.fromConfigure = fromConfigure
- };
+ xEvent event; memset(&event, 0, sizeof(event));
+ event.u.unmapNotify.window = pWin->drawable.id;
+ event.u.unmapNotify.fromConfigure = fromConfigure;
+
event.u.u.type = UnmapNotify;
DeliverEvents(pWin, &event, 1, NullWindow);
}
@@ -2979,10 +2982,10 @@ SendVisibilityNotify(WindowPtr pWin)
}
#endif
- event = (xEvent) {
- .u.visibility.window = pWin->drawable.id,
- .u.visibility.state = visibility
- };
+ memset(&event, 0, sizeof(xEvent));
+ event.u.visibility.window = pWin->drawable.id;
+ event.u.visibility.state = visibility;
+
event.u.u.type = VisibilityNotify;
DeliverEvents(pWin, &event, 1, NullWindow);
}
diff --git a/xorg-server/exa/exa_accel.c b/xorg-server/exa/exa_accel.c
index 0e948f414..5279b765c 100644
--- a/xorg-server/exa/exa_accel.c
+++ b/xorg-server/exa/exa_accel.c
@@ -236,7 +236,7 @@ exaPutImage(DrawablePtr pDrawable, GCPtr pGC, int depth, int x, int y,
bits);
}
-static Bool inline
+static Bool __inline
exaCopyNtoNTwoDir(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable,
GCPtr pGC, BoxPtr pbox, int nbox, int dx, int dy)
{
diff --git a/xorg-server/exa/exa_migration_classic.c b/xorg-server/exa/exa_migration_classic.c
index e890f6754..65bbb17ce 100644
--- a/xorg-server/exa/exa_migration_classic.c
+++ b/xorg-server/exa/exa_migration_classic.c
@@ -379,8 +379,8 @@ exaDoMoveInPixmap(ExaMigrationPtr migrate)
void
exaMoveInPixmap_classic(PixmapPtr pPixmap)
{
- static ExaMigrationRec migrate = {.as_dst = FALSE,.as_src = TRUE,
- .pReg = NULL
+ static ExaMigrationRec migrate = {FALSE, TRUE,
+ NULL, NULL
};
migrate.pPix = pPixmap;
@@ -422,8 +422,8 @@ exaDoMoveOutPixmap(ExaMigrationPtr migrate)
void
exaMoveOutPixmap_classic(PixmapPtr pPixmap)
{
- static ExaMigrationRec migrate = {.as_dst = FALSE,.as_src = TRUE,
- .pReg = NULL
+ static ExaMigrationRec migrate = { FALSE, TRUE,
+ NULL, NULL
};
migrate.pPix = pPixmap;
@@ -628,7 +628,7 @@ exaDoMigration_classic(ExaMigrationPtr pixmaps, int npixmaps, Bool can_accel)
if (!exaPixmapIsDirty(pixmaps[i].pPix) &&
!exaAssertNotDirty(pixmaps[i].pPix))
ErrorF("%s: Pixmap %d dirty but not marked as such!\n",
- __func__, i);
+ __FUNCTION__, i);
}
}
/* If anything is pinned in system memory, we won't be able to
diff --git a/xorg-server/exa/exa_unaccel.c b/xorg-server/exa/exa_unaccel.c
index b0a0011cb..3bfbb4fe9 100644
--- a/xorg-server/exa/exa_unaccel.c
+++ b/xorg-server/exa/exa_unaccel.c
@@ -730,7 +730,7 @@ exaGetPixmapFirstPixel(PixmapPtr pPixmap)
return pixel;
}
default:
- FatalError("%s called for invalid bpp %d\n", __func__,
+ FatalError("%s called for invalid bpp %d\n", __FUNCTION__,
pPixmap->drawable.bitsPerPixel);
}
}
diff --git a/xorg-server/exa/makefile b/xorg-server/exa/makefile
new file mode 100644
index 000000000..5ad11a1ed
--- /dev/null
+++ b/xorg-server/exa/makefile
@@ -0,0 +1,14 @@
+LIBRARY=libexa
+
+CSRCS = \
+ exa.c \
+ exa_classic.c \
+ exa_migration_classic.c \
+ exa_driver.c \
+ exa_mixed.c \
+ exa_migration_mixed.c \
+ exa_accel.c \
+ exa_glyphs.c \
+ exa_offscreen.c \
+ exa_render.c \
+ exa_unaccel.c
diff --git a/xorg-server/fb/fbpixmap.c b/xorg-server/fb/fbpixmap.c
index 0824b64bb..f287ca78c 100644
--- a/xorg-server/fb/fbpixmap.c
+++ b/xorg-server/fb/fbpixmap.c
@@ -301,24 +301,14 @@ fbPixmapToRegion(PixmapPtr pPix)
#ifdef FB_DEBUG
-#ifndef WIN32
#include <stdio.h>
-#else
-#include <dbg.h>
-#endif
static Bool
fbValidateBits(FbStip * bits, int stride, FbStip data)
{
while (stride--) {
if (*bits != data) {
-#ifdef WIN32
- NCD_DEBUG((DEBUG_FAILURE,
- "fdValidateBits failed at 0x%x (is 0x%x want 0x%x)",
- bits, *bits, data));
-#else
- fprintf(stderr, "fbValidateBits failed\n");
-#endif
+ fprintf (stderr, "fbValidateBits failed at 0x%x (is 0x%x want 0x%x)\n",bits, *bits, data);
return FALSE;
}
bits++;
diff --git a/xorg-server/fb/makefile b/xorg-server/fb/makefile
new file mode 100644
index 000000000..717c07332
--- /dev/null
+++ b/xorg-server/fb/makefile
@@ -0,0 +1,37 @@
+
+LIBRARY=libfb
+
+CCFLAGS:=$(CCFLAGS:-RTCc=)
+
+
+CSRCS = \
+ fb24_32.c \
+ fballpriv.c \
+ fbarc.c \
+ fbbits.c \
+ fbblt.c \
+ fbbltone.c \
+ fbcopy.c \
+ fbfill.c \
+ fbfillrect.c \
+ fbfillsp.c \
+ fbgc.c \
+ fbgetsp.c \
+ fbglyph.c \
+ fbimage.c \
+ fbline.c \
+ fboverlay.c \
+ fbpict.c \
+ fbpixmap.c \
+ fbpoint.c \
+ fbpush.c \
+ fbscreen.c \
+ fbseg.c \
+ fbsetsp.c \
+ fbsolid.c \
+ fbstipple.c \
+ fbtile.c \
+ fbtrap.c \
+ fbutil.c \
+ fbwindow.c \
+ fbcmap_mi.c
diff --git a/xorg-server/fb/wfbrename.h b/xorg-server/fb/wfbrename.h
index 54d00d003..94efd03dd 100644
--- a/xorg-server/fb/wfbrename.h
+++ b/xorg-server/fb/wfbrename.h
@@ -44,7 +44,6 @@
#define fbCopyNto1 wfbCopyNto1
#define fbCopyNtoN wfbCopyNtoN
#define fbCopyPlane wfbCopyPlane
-#define fbCopyRegion wfbCopyRegion
#define fbCopyWindow wfbCopyWindow
#define fbCopyWindowProc wfbCopyWindowProc
#define fbCreateDefColormap wfbCreateDefColormap
@@ -55,7 +54,6 @@
#define fbDestroyGlyphCache wfbDestroyGlyphCache
#define fbDestroyPixmap wfbDestroyPixmap
#define fbDestroyWindow wfbDestroyWindow
-#define fbDoCopy wfbDoCopy
#define fbDots wfbDots
#define fbDots16 wfbDots16
#define fbDots24 wfbDots24
diff --git a/xorg-server/fonts.src/100dpi/makefile b/xorg-server/fonts.src/100dpi/makefile
new file mode 100644
index 000000000..7112c3275
--- /dev/null
+++ b/xorg-server/fonts.src/100dpi/makefile
@@ -0,0 +1,357 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+INC_BDF_RULES=1
+
+UTIL_DIR = ..\font-util
+
+load_makefile $(UTIL_DIR)\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+
+UCS2ANY = $(UTIL_DIR)\$(OBJDIR)\ucs2any.exe
+
+ # The following rule is to avoid parallel build problems
+.PHONY: buildtoolsfirst
+buildtoolsfirst: $(BDFTOPCF) $(UCS2ANY)
+
+all: buildtoolsfirst
+
+DESTDIR=$(MHMAKECONF)\xorg-server\fonts\100dpi
+
+BDF2UCS_FONT_FILES = \
+ lutBS08 \
+ lutBS10 \
+ lutBS12 \
+ lutBS14 \
+ lutBS18 \
+ lutBS19 \
+ lutBS24 \
+ lutRS08 \
+ lutRS10 \
+ lutRS12 \
+ lutRS14 \
+ lutRS18 \
+ lutRS19 \
+ lutRS24 \
+ lubB08 \
+ lubB10 \
+ lubB12 \
+ lubB14 \
+ lubB18 \
+ lubB19 \
+ lubB24 \
+ lubBI08 \
+ lubBI10 \
+ lubBI12 \
+ lubBI14 \
+ lubBI18 \
+ lubBI19 \
+ lubBI24 \
+ lubI08 \
+ lubI10 \
+ lubI12 \
+ lubI14 \
+ lubI18 \
+ lubI19 \
+ lubI24 \
+ luBIS08 \
+ luBIS10 \
+ luBIS12 \
+ luBIS14 \
+ luBIS18 \
+ luBIS19 \
+ luBIS24 \
+ lubR08 \
+ lubR10 \
+ lubR12 \
+ lubR14 \
+ lubR18 \
+ lubR19 \
+ lubR24 \
+ luBS08 \
+ luBS10 \
+ luBS12 \
+ luBS14 \
+ luBS18 \
+ luBS19 \
+ luBS24 \
+ luIS08 \
+ luIS10 \
+ luIS12 \
+ luIS14 \
+ luIS18 \
+ luIS19 \
+ luIS24 \
+ luRS08 \
+ luRS10 \
+ luRS12 \
+ luRS14 \
+ luRS18 \
+ luRS19 \
+ luRS24 \
+ UTB___10 \
+ UTB___12 \
+ UTB___14 \
+ UTB___18 \
+ UTB___24 \
+ UTBI__10 \
+ UTBI__12 \
+ UTBI__14 \
+ UTBI__18 \
+ UTBI__24 \
+ UTI___10 \
+ UTI___12 \
+ UTI___14 \
+ UTI___18 \
+ UTI___24 \
+ UTRG__10 \
+ UTRG__12 \
+ UTRG__14 \
+ UTRG__18 \
+ UTRG__24 \
+ courB08 \
+ courB10 \
+ courB12 \
+ courB14 \
+ courB18 \
+ courB24 \
+ courBO08 \
+ courBO10 \
+ courBO12 \
+ courBO14 \
+ courBO18 \
+ courBO24 \
+ courO08 \
+ courO10 \
+ courO12 \
+ courO14 \
+ courO18 \
+ courO24 \
+ courR08 \
+ courR10 \
+ courR12 \
+ courR14 \
+ courR18 \
+ courR24 \
+ helvB08 \
+ helvB10 \
+ helvB12 \
+ helvB14 \
+ helvB18 \
+ helvB24 \
+ helvBO08 \
+ helvBO10 \
+ helvBO12 \
+ helvBO14 \
+ helvBO18 \
+ helvBO24 \
+ helvO08 \
+ helvO10 \
+ helvO12 \
+ helvO14 \
+ helvO18 \
+ helvO24 \
+ helvR08 \
+ helvR10 \
+ helvR12 \
+ helvR14 \
+ helvR18 \
+ helvR24 \
+ ncenB08 \
+ ncenB10 \
+ ncenB12 \
+ ncenB14 \
+ ncenB18 \
+ ncenB24 \
+ ncenBI08 \
+ ncenBI10 \
+ ncenBI12 \
+ ncenBI14 \
+ ncenBI18 \
+ ncenBI24 \
+ ncenI08 \
+ ncenI10 \
+ ncenI12 \
+ ncenI14 \
+ ncenI18 \
+ ncenI24 \
+ ncenR08 \
+ ncenR10 \
+ ncenR12 \
+ ncenR14 \
+ ncenR18 \
+ ncenR24 \
+ timB08 \
+ timB10 \
+ timB12 \
+ timB14 \
+ timB18 \
+ timB24 \
+ timBI08 \
+ timBI10 \
+ timBI12 \
+ timBI14 \
+ timBI18 \
+ timBI24 \
+ timI08 \
+ timI10 \
+ timI12 \
+ timI14 \
+ timI18 \
+ timI24 \
+ timR08 \
+ timR10 \
+ timR12 \
+ timR14 \
+ timR18 \
+ timR24
+EXTRA_FONT_FILES = \
+ symb08 \
+ symb10 \
+ symb12 \
+ symb14 \
+ symb18 \
+ symb24 \
+ charB08 \
+ charB10 \
+ charB12 \
+ charB14 \
+ charB18 \
+ charB24 \
+ charBI08 \
+ charBI10 \
+ charBI12 \
+ charBI14 \
+ charBI18 \
+ charBI24 \
+ charI08 \
+ charI10 \
+ charI12 \
+ charI14 \
+ charI18 \
+ charI24 \
+ charR08 \
+ charR10 \
+ charR12 \
+ charR14 \
+ charR18 \
+ charR24 \
+ tech14 \
+ techB14 \
+ term14 \
+ termB14
+FONT_FILES = $(BDF2UCS_FONT_FILES) $(EXTRA_FONT_FILES)
+
+BDF_FILES = $(FONT_FILES:%=%.bdf)
+PCF_FILES = $(FONT_FILES:%=$(DESTDIR)\%.pcf.gz)
+
+ISO8859_1_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-1.pcf.gz)
+
+ISO8859_2_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-2.pcf.gz)
+
+ISO8859_3_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-3.pcf.gz)
+
+ISO8859_4_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-4.pcf.gz)
+
+ISO8859_9_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-9.pcf.gz)
+
+ISO8859_10_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-10.pcf.gz)
+
+ISO8859_13_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-13.pcf.gz)
+
+ISO8859_14_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-14.pcf.gz)
+
+ISO8859_15_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-15.pcf.gz)
+
+$(DESTDIR)\%-ISO8859-1.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-1.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-1 ISO8859-1
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-1.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-1.bdf)
+
+$(DESTDIR)\%-ISO8859-2.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-2.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-2 ISO8859-2
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-2.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-2.bdf)
+
+$(DESTDIR)\%-ISO8859-3.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-3.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-3 ISO8859-3
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-3.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-3.bdf)
+
+$(DESTDIR)\%-ISO8859-4.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-4.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-4 ISO8859-4
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-4.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-4.bdf)
+
+$(DESTDIR)\%-ISO8859-9.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-9.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-9 ISO8859-9
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-9.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-9.bdf)
+
+$(DESTDIR)\%-ISO8859-10.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-10.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-10 ISO8859-10
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-10.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-10.bdf)
+
+$(DESTDIR)\%-ISO8859-13.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-13.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-13 ISO8859-13
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-13.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-13.bdf)
+
+$(DESTDIR)\%-ISO8859-14.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-14.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-14 ISO8859-14
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-14.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-14.bdf)
+
+$(DESTDIR)\%-ISO8859-15.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-15.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-15 ISO8859-15
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-15.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-15.bdf)
+
+font_DATA = \
+ $(PCF_FILES) \
+ $(ISO8859_1_PCF_FILES) \
+ $(ISO8859_2_PCF_FILES) \
+ $(ISO8859_3_PCF_FILES) \
+ $(ISO8859_4_PCF_FILES) \
+ $(ISO8859_9_PCF_FILES) \
+ $(ISO8859_10_PCF_FILES) \
+ $(ISO8859_13_PCF_FILES) \
+ $(ISO8859_14_PCF_FILES) \
+ $(ISO8859_15_PCF_FILES)
+
+all: $(DESTDIR) $(DESTDIR)\fonts.dir $(DESTDIR)\fonts.alias
+
+MKFONTSCALE=$(MHMAKECONF)\mkfontscale\$(OBJDIR)\mkfontscale.exe
+
+load_makefile $(MHMAKECONF)\mkfontscale\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+
+$(DESTDIR)\fonts.scale: $(font_DATA) $(MKFONTSCALE)
+ del -e $@
+ cd $(DESTDIR) & $(MKFONTSCALE) .
+
+$(DESTDIR)\fonts.dir: $(DESTDIR)\fonts.scale $(font_DATA) $(MKFONTSCALE)
+ del -e $@
+ cd $(DESTDIR) & $(MKFONTSCALE) -b -s -l .
+
+$(DESTDIR)\fonts.alias: fonts.alias
+ copy $< $@
+
diff --git a/xorg-server/fonts.src/75dpi/makefile b/xorg-server/fonts.src/75dpi/makefile
new file mode 100644
index 000000000..2467889d9
--- /dev/null
+++ b/xorg-server/fonts.src/75dpi/makefile
@@ -0,0 +1,357 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+INC_BDF_RULES=1
+
+UTIL_DIR = ..\font-util
+
+load_makefile $(UTIL_DIR)\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+
+UCS2ANY = $(UTIL_DIR)\$(OBJDIR)\ucs2any.exe
+
+ # The following rule is to avoid parallel build problems
+.PHONY: buildtoolsfirst
+buildtoolsfirst: $(BDFTOPCF) $(UCS2ANY)
+
+all: buildtoolsfirst
+
+DESTDIR=$(MHMAKECONF)\xorg-server\fonts\75dpi
+
+BDF2UCS_FONT_FILES = \
+ lutBS08 \
+ lutBS10 \
+ lutBS12 \
+ lutBS14 \
+ lutBS18 \
+ lutBS19 \
+ lutBS24 \
+ lutRS08 \
+ lutRS10 \
+ lutRS12 \
+ lutRS14 \
+ lutRS18 \
+ lutRS19 \
+ lutRS24 \
+ UTB___10 \
+ UTB___12 \
+ UTB___14 \
+ UTB___18 \
+ UTB___24 \
+ UTBI__10 \
+ UTBI__12 \
+ UTBI__14 \
+ UTBI__18 \
+ UTBI__24 \
+ UTI___10 \
+ UTI___12 \
+ UTI___14 \
+ UTI___18 \
+ UTI___24 \
+ UTRG__10 \
+ UTRG__12 \
+ UTRG__14 \
+ UTRG__18 \
+ UTRG__24 \
+ courB08 \
+ courB10 \
+ courB12 \
+ courB14 \
+ courB18 \
+ courB24 \
+ courBO08 \
+ courBO10 \
+ courBO12 \
+ courBO14 \
+ courBO18 \
+ courBO24 \
+ courO08 \
+ courO10 \
+ courO12 \
+ courO14 \
+ courO18 \
+ courO24 \
+ courR08 \
+ courR10 \
+ courR12 \
+ courR14 \
+ courR18 \
+ courR24 \
+ helvB08 \
+ helvB10 \
+ helvB12 \
+ helvB14 \
+ helvB18 \
+ helvB24 \
+ helvBO08 \
+ helvBO10 \
+ helvBO12 \
+ helvBO14 \
+ helvBO18 \
+ helvBO24 \
+ helvO08 \
+ helvO10 \
+ helvO12 \
+ helvO14 \
+ helvO18 \
+ helvO24 \
+ helvR08 \
+ helvR10 \
+ helvR12 \
+ helvR14 \
+ helvR18 \
+ helvR24 \
+ ncenB08 \
+ ncenB10 \
+ ncenB12 \
+ ncenB14 \
+ ncenB18 \
+ ncenB24 \
+ ncenBI08 \
+ ncenBI10 \
+ ncenBI12 \
+ ncenBI14 \
+ ncenBI18 \
+ ncenBI24 \
+ ncenI08 \
+ ncenI10 \
+ ncenI12 \
+ ncenI14 \
+ ncenI18 \
+ ncenI24 \
+ ncenR08 \
+ ncenR10 \
+ ncenR12 \
+ ncenR14 \
+ ncenR18 \
+ ncenR24 \
+ timB08 \
+ timB10 \
+ timB12 \
+ timB14 \
+ timB18 \
+ timB24 \
+ timBI08 \
+ timBI10 \
+ timBI12 \
+ timBI14 \
+ timBI18 \
+ timBI24 \
+ timI08 \
+ timI10 \
+ timI12 \
+ timI14 \
+ timI18 \
+ timI24 \
+ timR08 \
+ timR10 \
+ timR12 \
+ timR14 \
+ timR18 \
+ timR24 \
+ lubB08 \
+ lubB10 \
+ lubB12 \
+ lubB14 \
+ lubB18 \
+ lubB19 \
+ lubB24 \
+ lubBI08 \
+ lubBI10 \
+ lubBI12 \
+ lubBI14 \
+ lubBI18 \
+ lubBI19 \
+ lubBI24 \
+ lubI08 \
+ lubI10 \
+ lubI12 \
+ lubI14 \
+ lubI18 \
+ lubI19 \
+ lubI24 \
+ luBIS08 \
+ luBIS10 \
+ luBIS12 \
+ luBIS14 \
+ luBIS18 \
+ luBIS19 \
+ luBIS24 \
+ lubR08 \
+ lubR10 \
+ lubR12 \
+ lubR14 \
+ lubR18 \
+ lubR19 \
+ lubR24 \
+ luBS08 \
+ luBS10 \
+ luBS12 \
+ luBS14 \
+ luBS18 \
+ luBS19 \
+ luBS24 \
+ luIS08 \
+ luIS10 \
+ luIS12 \
+ luIS14 \
+ luIS18 \
+ luIS19 \
+ luIS24 \
+ luRS08 \
+ luRS10 \
+ luRS12 \
+ luRS14 \
+ luRS18 \
+ luRS19 \
+ luRS24
+EXTRA_FONT_FILES = \
+ charB08 \
+ charB10 \
+ charB12 \
+ charB14 \
+ charB18 \
+ charB24 \
+ charBI08 \
+ charBI10 \
+ charBI12 \
+ charBI14 \
+ charBI18 \
+ charBI24 \
+ charI08 \
+ charI10 \
+ charI12 \
+ charI14 \
+ charI18 \
+ charI24 \
+ charR08 \
+ charR10 \
+ charR12 \
+ charR14 \
+ charR18 \
+ charR24 \
+ tech14 \
+ techB14 \
+ term14 \
+ termB14 \
+ symb08 \
+ symb10 \
+ symb12 \
+ symb14 \
+ symb18 \
+ symb24
+FONT_FILES = $(BDF2UCS_FONT_FILES) $(EXTRA_FONT_FILES)
+
+BDF_FILES = $(FONT_FILES:%=%.bdf)
+PCF_FILES = $(FONT_FILES:%=$(DESTDIR)\%.pcf.gz)
+
+ISO8859_1_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-1.pcf.gz)
+
+ISO8859_2_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-2.pcf.gz)
+
+ISO8859_3_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-3.pcf.gz)
+
+ISO8859_4_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-4.pcf.gz)
+
+ISO8859_9_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-9.pcf.gz)
+
+ISO8859_10_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-10.pcf.gz)
+
+ISO8859_13_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-13.pcf.gz)
+
+ISO8859_14_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-14.pcf.gz)
+
+ISO8859_15_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-15.pcf.gz)
+
+$(DESTDIR)\%-ISO8859-1.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-1.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-1 ISO8859-1
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-1.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-1.bdf)
+
+$(DESTDIR)\%-ISO8859-2.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-2.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-2 ISO8859-2
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-2.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-2.bdf)
+
+$(DESTDIR)\%-ISO8859-3.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-3.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-3 ISO8859-3
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-3.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-3.bdf)
+
+$(DESTDIR)\%-ISO8859-4.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-4.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-4 ISO8859-4
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-4.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-4.bdf)
+
+$(DESTDIR)\%-ISO8859-9.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-9.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-9 ISO8859-9
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-9.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-9.bdf)
+
+$(DESTDIR)\%-ISO8859-10.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-10.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-10 ISO8859-10
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-10.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-10.bdf)
+
+$(DESTDIR)\%-ISO8859-13.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-13.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-13 ISO8859-13
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-13.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-13.bdf)
+
+$(DESTDIR)\%-ISO8859-14.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-14.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-14 ISO8859-14
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-14.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-14.bdf)
+
+$(DESTDIR)\%-ISO8859-15.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-15.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-15 ISO8859-15
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-15.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-15.bdf)
+
+font_DATA = \
+ $(PCF_FILES) \
+ $(ISO8859_1_PCF_FILES) \
+ $(ISO8859_2_PCF_FILES) \
+ $(ISO8859_3_PCF_FILES) \
+ $(ISO8859_4_PCF_FILES) \
+ $(ISO8859_9_PCF_FILES) \
+ $(ISO8859_10_PCF_FILES) \
+ $(ISO8859_13_PCF_FILES) \
+ $(ISO8859_14_PCF_FILES) \
+ $(ISO8859_15_PCF_FILES)
+
+all: $(DESTDIR) $(DESTDIR)\fonts.dir $(DESTDIR)\fonts.alias
+
+MKFONTSCALE=$(MHMAKECONF)\mkfontscale\$(OBJDIR)\mkfontscale.exe
+
+load_makefile $(MHMAKECONF)\mkfontscale\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+
+$(DESTDIR)\fonts.scale: $(font_DATA) $(MKFONTSCALE)
+ del -e $@
+ cd $(DESTDIR) & $(MKFONTSCALE) .
+
+$(DESTDIR)\fonts.dir: $(DESTDIR)\fonts.scale $(font_DATA) $(MKFONTSCALE)
+ del -e $@
+ cd $(DESTDIR) & $(MKFONTSCALE) -b -s -l .
+
+$(DESTDIR)\fonts.alias: fonts.alias
+ copy $< $@
+
diff --git a/xorg-server/fonts.src/OTF/makefile b/xorg-server/fonts.src/OTF/makefile
new file mode 100644
index 000000000..7187a55c7
--- /dev/null
+++ b/xorg-server/fonts.src/OTF/makefile
@@ -0,0 +1,53 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+INC_BDF_RULES=1
+
+DESTDIR=$(MHMAKECONF)\xorg-server\fonts\OTF
+
+FONT_FILES = \
+ SyrCOMAdiabene.otf \
+ SyrCOMAntioch.otf \
+ SyrCOMBatnanBold.otf \
+ SyrCOMBatnan.otf \
+ SyrCOMCtesiphon.otf \
+ SyrCOMEdessa.otf \
+ SyrCOMJerusalemBold.otf \
+ SyrCOMJerusalemItalic.otf \
+ SyrCOMJerusalem.otf \
+ SyrCOMJerusalemOutline.otf \
+ SyrCOMKharput.otf \
+ SyrCOMMalankara.otf \
+ SyrCOMMardinBold.otf \
+ SyrCOMMardin.otf \
+ SyrCOMMidyat.otf \
+ SyrCOMNisibin.otf \
+ SyrCOMNisibinOutline.otf \
+ SyrCOMQenNeshrin.otf \
+ SyrCOMTalada.otf \
+ SyrCOMTurAbdin.otf \
+ SyrCOMUrhoyBold.otf \
+ SyrCOMUrhoy.otf \
+ GohaTibebZemen.otf
+
+fontdir = .
+font_DATA = $(FONT_FILES:%=$(DESTDIR)\%)
+
+all: $(DESTDIR) $(DESTDIR)\fonts.dir
+
+MKFONTSCALE=$(MHMAKECONF)\mkfontscale\$(OBJDIR)\mkfontscale.exe
+
+load_makefile $(MHMAKECONF)\mkfontscale\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+
+$(DESTDIR)\fonts.scale: $(font_DATA) $(MKFONTSCALE)
+ del -e $@
+ cd $(DESTDIR) & $(MKFONTSCALE) .
+
+$(DESTDIR)\fonts.dir: $(DESTDIR)\fonts.scale $(font_DATA) $(MKFONTSCALE)
+ del -e $@
+ cd $(DESTDIR) & $(MKFONTSCALE) -b -s -l .
+# $(FCCACHE) $(DESTDIR)
+
+$(DESTDIR)\%.otf: %.otf
+ copy $< $@
diff --git a/xorg-server/fonts.src/Speedo/makefile b/xorg-server/fonts.src/Speedo/makefile
new file mode 100644
index 000000000..e1cf21315
--- /dev/null
+++ b/xorg-server/fonts.src/Speedo/makefile
@@ -0,0 +1,39 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+INC_BDF_RULES=1
+
+DESTDIR=$(MHMAKECONF)\xorg-server\fonts\Speedo
+
+FONT_FILES = \
+ font0419.spd \
+ font0582.spd \
+ font0583.spd \
+ font0611.spd \
+ font0648.spd \
+ font0649.spd \
+ font0709.spd \
+ font0710.spd \
+ fonts.scale
+
+fontdir = .
+font_DATA = $(FONT_FILES:%=$(DESTDIR)\%)
+
+$(DESTDIR)\fonts.dir: $(DESTDIR)\fonts.scale
+
+all: $(DESTDIR) $(DESTDIR)\fonts.dir
+
+MKFONTSCALE=$(MHMAKECONF)\mkfontscale\$(OBJDIR)\mkfontscale.exe
+
+load_makefile $(MHMAKECONF)\mkfontscale\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+
+$(DESTDIR)\fonts.dir: $(font_DATA) $(MKFONTSCALE)
+ del -e $@
+ cd $(DESTDIR) & $(MKFONTSCALE) -b -s -l .
+
+$(DESTDIR)\%.spd: %.spd
+ copy $< $@
+
+$(DESTDIR)\%.scale: %.scale
+ copy $< $@
diff --git a/xorg-server/fonts.src/TTF/makefile b/xorg-server/fonts.src/TTF/makefile
new file mode 100644
index 000000000..c5518f230
--- /dev/null
+++ b/xorg-server/fonts.src/TTF/makefile
@@ -0,0 +1,54 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+INC_BDF_RULES=1
+
+DESTDIR=$(MHMAKECONF)\xorg-server\fonts\TTF
+
+
+FONT_FILES = \
+ luximbi.ttf \
+ luximb.ttf \
+ luximri.ttf \
+ luximr.ttf \
+ luxirbi.ttf \
+ luxirb.ttf \
+ luxirri.ttf \
+ luxirr.ttf \
+ luxisbi.ttf \
+ luxisb.ttf \
+ luxisri.ttf \
+ luxisr.ttf \
+ Vera.ttf \
+ VeraBd.ttf \
+ VeraBI.ttf \
+ VeraIt.ttf \
+ VeraMoBd.ttf \
+ VeraMoBI.ttf \
+ VeraMoIt.ttf \
+ VeraMono.ttf \
+ VeraSe.ttf \
+ VeraSeBd.ttf \
+ GohaTibebZemen.ttf
+
+fontdir = .
+font_DATA = $(FONT_FILES:%=$(DESTDIR)\%)
+
+all: $(DESTDIR) $(DESTDIR)\fonts.dir
+
+MKFONTSCALE=$(MHMAKECONF)\mkfontscale\$(OBJDIR)\mkfontscale.exe
+
+load_makefile $(MHMAKECONF)\mkfontscale\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+
+$(DESTDIR)\fonts.scale: $(font_DATA) $(MKFONTSCALE)
+ del -e $@
+ cd $(DESTDIR) & $(MKFONTSCALE) .
+
+$(DESTDIR)\fonts.dir: $(DESTDIR)\fonts.scale $(font_DATA) $(MKFONTSCALE)
+ del -e $@
+ cd $(DESTDIR) & $(MKFONTSCALE) -b -s -l .
+# $(FCCACHE) $(DESTDIR)
+
+$(DESTDIR)\%.ttf: %.ttf
+ copy $< $@
diff --git a/xorg-server/fonts.src/Type1/makefile b/xorg-server/fonts.src/Type1/makefile
new file mode 100644
index 000000000..1c5935cfd
--- /dev/null
+++ b/xorg-server/fonts.src/Type1/makefile
@@ -0,0 +1,93 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+INC_BDF_RULES=1
+
+DESTDIR=$(MHMAKECONF)\xorg-server\fonts\Type1
+
+FONT_FILES = \
+ cursor.pfa \
+ UTB_____.afm \
+ UTBI____.afm \
+ UTBI____.pfa \
+ UTB_____.pfa \
+ UTI_____.afm \
+ UTI_____.pfa \
+ UTRG____.afm \
+ UTRG____.pfa \
+ cour.afm \
+ courb.afm \
+ courbi.afm \
+ courbi.pfa \
+ courb.pfa \
+ couri.afm \
+ couri.pfa \
+ cour.pfa \
+ l047013t.afm \
+ l047013t.pfa \
+ l047016t.afm \
+ l047016t.pfa \
+ l047033t.afm \
+ l047033t.pfa \
+ l047036t.afm \
+ l047036t.pfa \
+ l048013t.afm \
+ l048013t.pfa \
+ l048016t.afm \
+ l048016t.pfa \
+ l048033t.afm \
+ l048033t.pfa \
+ l048036t.afm \
+ l048036t.pfa \
+ l049013t.afm \
+ l049013t.pfa \
+ l049016t.afm \
+ l049016t.pfa \
+ l049033t.afm \
+ l049033t.pfa \
+ l049036t.afm \
+ l049036t.pfa \
+ c0419bt_.afm \
+ c0419bt_.pfb \
+ c0582bt_.afm \
+ c0582bt_.pfb \
+ c0583bt_.afm \
+ c0583bt_.pfb \
+ c0611bt_.afm \
+ c0611bt_.pfb \
+ c0632bt_.afm \
+ c0632bt_.pfb \
+ c0633bt_.afm \
+ c0633bt_.pfb \
+ c0648bt_.afm \
+ c0648bt_.pfb \
+ c0649bt_.afm \
+ c0649bt_.pfb
+
+fontdir = .
+font_DATA = $(FONT_FILES:%=$(DESTDIR)\%)
+
+all: $(DESTDIR) $(DESTDIR)\fonts.dir
+
+MKFONTSCALE=$(MHMAKECONF)\mkfontscale\$(OBJDIR)\mkfontscale.exe
+
+load_makefile $(MHMAKECONF)\mkfontscale\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+
+$(DESTDIR)\fonts.scale: $(font_DATA) $(MKFONTSCALE)
+ del -e $@
+ cd $(DESTDIR) & $(MKFONTSCALE) .
+
+$(DESTDIR)\fonts.dir: $(DESTDIR)\fonts.scale $(font_DATA) $(MKFONTSCALE)
+ del -e $@
+ cd $(DESTDIR) & $(MKFONTSCALE) -b -s -l .
+# $(FCCACHE) $(DESTDIR)
+
+$(DESTDIR)\%.afm: %.afm
+ copy $< $@
+
+$(DESTDIR)\%.pfb: %.pfb
+ copy $< $@
+
+$(DESTDIR)\%.pfa: %.pfa
+ copy $< $@
diff --git a/xorg-server/fonts.src/cyrillic/makefile b/xorg-server/fonts.src/cyrillic/makefile
new file mode 100644
index 000000000..f544bba4b
--- /dev/null
+++ b/xorg-server/fonts.src/cyrillic/makefile
@@ -0,0 +1,114 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+INC_BDF_RULES=1
+
+DESTDIR=$(MHMAKECONF)\xorg-server\fonts\cyrillic
+
+FONT_FILES = \
+ proof9x16 \
+ koi12x24b \
+ koi12x24 \
+ koi5x8 \
+ koi6x13b \
+ koi6x13 \
+ koi6x9 \
+ koi7x14b \
+ koi7x14 \
+ koi8x13 \
+ koi8x16b \
+ koi8x16 \
+ koi9x15b \
+ koi9x15 \
+ koi9x18b \
+ koi9x18 \
+ screen8x16b \
+ screen8x16 \
+ crox1cb \
+ crox1c \
+ crox1cbo \
+ crox1co \
+ crox1hb \
+ crox1h \
+ crox1hbo \
+ crox1ho \
+ crox1tb \
+ crox1t \
+ crox1tbo \
+ crox1to \
+ crox2cb \
+ crox2c \
+ crox2cbo \
+ crox2co \
+ crox2hb \
+ crox2h \
+ crox2hbo \
+ crox2ho \
+ crox2tb \
+ crox2t \
+ crox2tbo \
+ crox2to \
+ crox3cb \
+ crox3c \
+ crox3cbo \
+ crox3co \
+ crox3hb \
+ crox3h \
+ crox3hbo \
+ crox3ho \
+ crox3tb \
+ crox3t \
+ crox3tbo \
+ crox3to \
+ crox4hb \
+ crox4h \
+ crox4hbo \
+ crox4ho \
+ crox4tb \
+ crox4t \
+ crox4tbo \
+ crox4to \
+ crox5hb \
+ crox5h \
+ crox5hbo \
+ crox5ho \
+ crox5tb \
+ crox5t \
+ crox5tbo \
+ crox5to \
+ crox6hb \
+ crox6h \
+ crox6hbo \
+ crox6ho \
+ crox6tb \
+ crox6t \
+ crox6tbo \
+ crox6to \
+ koi10x16b \
+ koi10x20 \
+ koi6x10 \
+ koinil2
+
+BDF_FILES = $(FONT_FILES:%=%.bdf)
+PCF_FILES = $(FONT_FILES:%=$(DESTDIR)\%.pcf.gz)
+
+font_DATA = $(PCF_FILES)
+
+MKFONTSCALE=$(MHMAKECONF)\mkfontscale\$(OBJDIR)\mkfontscale.exe
+
+load_makefile $(MHMAKECONF)\mkfontscale\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+
+all: $(DESTDIR) $(MKFONTSCALE) $(DESTDIR)\fonts.dir $(DESTDIR)\fonts.alias
+
+$(DESTDIR)\fonts.scale: $(font_DATA) $(MKFONTSCALE)
+ del -e $@
+ cd $(DESTDIR) & $(MKFONTSCALE) .
+
+$(DESTDIR)\fonts.dir: $(DESTDIR)\fonts.scale $(font_DATA) $(MKFONTSCALE)
+ del -e $@
+ cd $(DESTDIR) & $(MKFONTSCALE) -b -s -l .
+
+
+$(DESTDIR)\fonts.alias: fonts.alias
+ copy $< $@
diff --git a/xorg-server/fonts.src/encodings/large/makefile b/xorg-server/fonts.src/encodings/large/makefile
new file mode 100644
index 000000000..0f168d046
--- /dev/null
+++ b/xorg-server/fonts.src/encodings/large/makefile
@@ -0,0 +1,40 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+INC_BDF_RULES=1
+
+DESTDIR=$(MHMAKECONF)\xorg-server\fonts\encodings\large
+
+ENCODING_FILES = \
+ big5.eten-0.enc \
+ big5hkscs-0.enc \
+ cns11643-1.enc \
+ cns11643-2.enc \
+ cns11643-3.enc \
+ gb18030-0.enc \
+ gb18030.2000-0.enc \
+ gb18030.2000-1.enc \
+ gb2312.1980-0.enc \
+ gbk-0.enc \
+ jisx0201.1976-0.enc \
+ jisx0208.1990-0.enc \
+ jisx0212.1990-0.enc \
+ ksc5601.1987-0.enc \
+ ksc5601.1992-3.enc \
+ sun.unicode.india-0.enc
+
+COMPRESSED = $(ENCODING_FILES:%=$(DESTDIR)\%.gz)
+
+DATA_FILES = $(COMPRESSED)
+
+MKFONTSCALE=$(MHMAKECONF)\mkfontscale\$(OBJDIR)\mkfontscale.exe
+
+load_makefile $(MHMAKECONF)\mkfontscale\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+
+all: $(DESTDIR)\encodings.dir
+
+$(DESTDIR)\encodings.dir: $(DATA_FILES) $(MKFONTSCALE)
+ cd "$(DESTDIR)" & $(MKFONTSCALE) -b -s -l -n -r -p .\large -e . .
+
+
diff --git a/xorg-server/fonts.src/encodings/makefile b/xorg-server/fonts.src/encodings/makefile
new file mode 100644
index 000000000..548d56ce5
--- /dev/null
+++ b/xorg-server/fonts.src/encodings/makefile
@@ -0,0 +1,63 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+load_makefile large\makefile MAKESERVER=0 DEBUG=0
+
+INC_BDF_RULES=1
+
+DESTDIR=$(MHMAKECONF)\xorg-server\fonts\encodings
+
+ENCODING_FILES = \
+ adobe-dingbats.enc \
+ adobe-standard.enc \
+ adobe-symbol.enc \
+ armscii-8.enc \
+ ascii-0.enc \
+ dec-special.enc \
+ ibm-cp437.enc \
+ ibm-cp850.enc \
+ ibm-cp852.enc \
+ ibm-cp866.enc \
+ iso8859-11.enc \
+ iso8859-13.enc \
+ iso8859-16.enc \
+ iso8859-6.16.enc \
+ iso8859-6.8x.enc \
+ microsoft-cp1250.enc \
+ microsoft-cp1251.enc \
+ microsoft-cp1252.enc \
+ microsoft-cp1253.enc \
+ microsoft-cp1254.enc \
+ microsoft-cp1255.enc \
+ microsoft-cp1256.enc \
+ microsoft-cp1257.enc \
+ microsoft-cp1258.enc \
+ microsoft-win3.1.enc \
+ mulearabic-0.enc \
+ mulearabic-1.enc \
+ mulearabic-2.enc \
+ mulelao-1.enc \
+ suneu-greek.enc \
+ tcvn-0.enc \
+ tis620-2.enc \
+ viscii1.1-1.enc
+
+COMPRESSED = $(ENCODING_FILES:%=$(DESTDIR)\%.gz)
+
+DATA_FILES = $(COMPRESSED)
+
+MKFONTSCALE=$(MHMAKECONF)\mkfontscale\$(OBJDIR)\mkfontscale.exe
+
+load_makefile $(MHMAKECONF)\mkfontscale\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+
+$(DESTDIR)\encodings.dir: $(DATA_FILES) $(DESTDIR)\large\encodings.dir $(MKFONTSCALE)
+ cd "$(DESTDIR)" & $(MKFONTSCALE) -b -s -l -n -r -p . -e . -e large .
+
+all: $(DESTDIR)\encodings.dir
+
+.PHONY: cleanthis
+cleanthis:
+ del -e $(DESTDIR)
+
+clean: cleanthis
+
diff --git a/xorg-server/fonts.src/font-util/makefile b/xorg-server/fonts.src/font-util/makefile
new file mode 100644
index 000000000..13e196a03
--- /dev/null
+++ b/xorg-server/fonts.src/font-util/makefile
@@ -0,0 +1,5 @@
+TTYAPP = ucs2any
+
+CSRCS = ucs2any.c
+
+DEFINES += NEED_BASENAME
diff --git a/xorg-server/fonts.src/fonts.conf b/xorg-server/fonts.src/fonts.conf
new file mode 100644
index 000000000..9e6ec7487
--- /dev/null
+++ b/xorg-server/fonts.src/fonts.conf
@@ -0,0 +1,118 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+
+<!--
+ Accept deprecated 'mono' alias, replacing it with 'monospace'
+-->
+ <match target="pattern">
+ <test qual="any" name="family">
+ <string>mono</string>
+ </test>
+ <edit name="family" mode="assign" binding="same">
+ <string>monospace</string>
+ </edit>
+ </match>
+
+<!--
+ Accept alternate 'sans serif' spelling, replacing it with 'sans-serif'
+-->
+ <match target="pattern">
+ <test qual="any" name="family">
+ <string>sans serif</string>
+ </test>
+ <edit name="family" mode="assign" binding="same">
+ <string>sans-serif</string>
+ </edit>
+ </match>
+
+<!--
+ Accept deprecated 'sans' alias, replacing it with 'sans-serif'
+-->
+ <match target="pattern">
+ <test qual="any" name="family">
+ <string>sans</string>
+ </test>
+ <edit name="family" mode="assign" binding="same">
+ <string>sans-serif</string>
+ </edit>
+ </match>
+
+<!-- Font cache directory list -->
+
+ <config>
+<!--
+ These are the default Unicode chars that are expected to be blank
+ in fonts. All other blank chars are assumed to be broken and
+ won't appear in the resulting charsets
+ -->
+ <blank>
+ <int>0x0020</int> <!-- SPACE -->
+ <int>0x00A0</int> <!-- NO-BREAK SPACE -->
+ <int>0x00AD</int> <!-- SOFT HYPHEN -->
+ <int>0x034F</int> <!-- COMBINING GRAPHEME JOINER -->
+ <int>0x0600</int> <!-- ARABIC NUMBER SIGN -->
+ <int>0x0601</int> <!-- ARABIC SIGN SANAH -->
+ <int>0x0602</int> <!-- ARABIC FOOTNOTE MARKER -->
+ <int>0x0603</int> <!-- ARABIC SIGN SAFHA -->
+ <int>0x06DD</int> <!-- ARABIC END OF AYAH -->
+ <int>0x070F</int> <!-- SYRIAC ABBREVIATION MARK -->
+ <int>0x115F</int> <!-- HANGUL CHOSEONG FILLER -->
+ <int>0x1160</int> <!-- HANGUL JUNGSEONG FILLER -->
+ <int>0x1680</int> <!-- OGHAM SPACE MARK -->
+ <int>0x17B4</int> <!-- KHMER VOWEL INHERENT AQ -->
+ <int>0x17B5</int> <!-- KHMER VOWEL INHERENT AA -->
+ <int>0x180E</int> <!-- MONGOLIAN VOWEL SEPARATOR -->
+ <int>0x2000</int> <!-- EN QUAD -->
+ <int>0x2001</int> <!-- EM QUAD -->
+ <int>0x2002</int> <!-- EN SPACE -->
+ <int>0x2003</int> <!-- EM SPACE -->
+ <int>0x2004</int> <!-- THREE-PER-EM SPACE -->
+ <int>0x2005</int> <!-- FOUR-PER-EM SPACE -->
+ <int>0x2006</int> <!-- SIX-PER-EM SPACE -->
+ <int>0x2007</int> <!-- FIGURE SPACE -->
+ <int>0x2008</int> <!-- PUNCTUATION SPACE -->
+ <int>0x2009</int> <!-- THIN SPACE -->
+ <int>0x200A</int> <!-- HAIR SPACE -->
+ <int>0x200B</int> <!-- ZERO WIDTH SPACE -->
+ <int>0x200C</int> <!-- ZERO WIDTH NON-JOINER -->
+ <int>0x200D</int> <!-- ZERO WIDTH JOINER -->
+ <int>0x200E</int> <!-- LEFT-TO-RIGHT MARK -->
+ <int>0x200F</int> <!-- RIGHT-TO-LEFT MARK -->
+ <int>0x2028</int> <!-- LINE SEPARATOR -->
+ <int>0x2029</int> <!-- PARAGRAPH SEPARATOR -->
+ <int>0x202A</int> <!-- LEFT-TO-RIGHT EMBEDDING -->
+ <int>0x202B</int> <!-- RIGHT-TO-LEFT EMBEDDING -->
+ <int>0x202C</int> <!-- POP DIRECTIONAL FORMATTING -->
+ <int>0x202D</int> <!-- LEFT-TO-RIGHT OVERRIDE -->
+ <int>0x202E</int> <!-- RIGHT-TO-LEFT OVERRIDE -->
+ <int>0x202F</int> <!-- NARROW NO-BREAK SPACE -->
+ <int>0x205F</int> <!-- MEDIUM MATHEMATICAL SPACE -->
+ <int>0x2060</int> <!-- WORD JOINER -->
+ <int>0x2061</int> <!-- FUNCTION APPLICATION -->
+ <int>0x2062</int> <!-- INVISIBLE TIMES -->
+ <int>0x2063</int> <!-- INVISIBLE SEPARATOR -->
+ <int>0x206A</int> <!-- INHIBIT SYMMETRIC SWAPPING -->
+ <int>0x206B</int> <!-- ACTIVATE SYMMETRIC SWAPPING -->
+ <int>0x206C</int> <!-- INHIBIT ARABIC FORM SHAPING -->
+ <int>0x206D</int> <!-- ACTIVATE ARABIC FORM SHAPING -->
+ <int>0x206E</int> <!-- NATIONAL DIGIT SHAPES -->
+ <int>0x206F</int> <!-- NOMINAL DIGIT SHAPES -->
+ <int>0x2800</int> <!-- BRAILLE PATTERN BLANK -->
+ <int>0x3000</int> <!-- IDEOGRAPHIC SPACE -->
+ <int>0x3164</int> <!-- HANGUL FILLER -->
+ <int>0xFEFF</int> <!-- ZERO WIDTH NO-BREAK SPACE -->
+ <int>0xFFA0</int> <!-- HALFWIDTH HANGUL FILLER -->
+ <int>0xFFF9</int> <!-- INTERLINEAR ANNOTATION ANCHOR -->
+ <int>0xFFFA</int> <!-- INTERLINEAR ANNOTATION SEPARATOR -->
+ <int>0xFFFB</int> <!-- INTERLINEAR ANNOTATION TERMINATOR -->
+ </blank>
+<!--
+ Rescan configuration every 30 seconds when FcFontSetList is called
+ -->
+ <rescan>
+ <int>30</int>
+ </rescan>
+ </config>
+
+</fontconfig>
diff --git a/xorg-server/fonts.src/makefile b/xorg-server/fonts.src/makefile
new file mode 100644
index 000000000..6a89ffe17
--- /dev/null
+++ b/xorg-server/fonts.src/makefile
@@ -0,0 +1,8 @@
+SUBDIRS=font-util 75dpi 100dpi cyrillic encodings misc OTF Speedo TTF Type1 terminus-font
+
+DESTDIR=$(MHMAKECONF)\xorg-server\fonts
+
+all: $(DESTDIR)\fonts.conf
+
+$(DESTDIR)\fonts.conf: $(DESTDIR) fonts.conf
+ copy fonts.conf $@
diff --git a/xorg-server/fonts.src/misc/makefile b/xorg-server/fonts.src/misc/makefile
new file mode 100644
index 000000000..95d736477
--- /dev/null
+++ b/xorg-server/fonts.src/misc/makefile
@@ -0,0 +1,345 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+INC_BDF_RULES=1
+
+UTIL_DIR = ..\font-util
+
+load_makefile $(UTIL_DIR)\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+
+UCS2ANY = $(UTIL_DIR)\$(OBJDIR)\ucs2any.exe
+
+ # The following rule is to avoid parallel build problems
+.PHONY: buildtoolsfirst
+buildtoolsfirst: $(BDFTOPCF) $(UCS2ANY)
+
+all: buildtoolsfirst
+
+DESTDIR=$(MHMAKECONF)\xorg-server\fonts\misc
+
+BDF2UCS_FONT_FILES = \
+ clR6x12 \
+ 4x6 \
+ 5x7 \
+ 5x8 \
+ 6x9 \
+ 6x10 \
+ 6x12 \
+ 6x13 \
+ 6x13B \
+ 6x13O \
+ 7x13 \
+ 7x13B \
+ 7x13O \
+ 7x14 \
+ 7x14B \
+ 8x13 \
+ 8x13B \
+ 8x13O \
+ 9x15 \
+ 9x15B \
+ 9x18 \
+ 9x18B \
+ 10x20
+BDF2UCS_8_FONT_FILES = \
+ clR6x12 \
+ 4x6 \
+ 5x7 \
+ 5x8 \
+ 6x9 \
+ 6x10 \
+ 6x12 \
+ 6x13 \
+ 6x13B \
+ 7x13 \
+ 7x13B \
+ 7x14 \
+ 7x14B \
+ 8x13 \
+ 8x13B \
+ 9x15 \
+ 9x15B \
+ 9x18 \
+ 9x18B \
+ 10x20
+BDF2UCS_11_FONT_FILES = \
+ 6x13 \
+ 7x13 \
+ 7x13B \
+ 7x13O \
+ 7x14 \
+ 7x14B \
+ 9x15 \
+ 9x15B \
+ 9x18 \
+ 10x20
+BDF2UCS_KOI8_FONT_FILES = \
+ clR6x12 \
+ 4x6 \
+ 5x7 \
+ 5x8 \
+ 6x9 \
+ 6x10 \
+ 6x12 \
+ 6x13 \
+ 7x13 \
+ 7x14 \
+ 8x13 \
+ 9x15 \
+ 9x18 \
+ 10x20
+BDF2UCS_JISX0201_FONT_FILES = \
+ 7x14
+EXTRA_FONT_FILES = \
+ 12x13ja \
+ 18x18ja \
+ 18x18ko \
+ k14 \
+ nil2 \
+ micro \
+ jiskan16 \
+ jiskan24 \
+ gb16fs \
+ gb16st \
+ gb24st \
+ deccurs \
+ decsess \
+ arabic24 \
+ cursor \
+ hanglg16 \
+ hanglm16 \
+ hanglm24 \
+ cu12 \
+ cu-alt12 \
+ cu-arabic12 \
+ cuarabic12 \
+ cu-devnag12 \
+ cudevnag12 \
+ cu-lig12 \
+ cu-pua12 \
+ clB6x10 \
+ clB6x12 \
+ clB8x10 \
+ clB8x12 \
+ clB8x13 \
+ clB8x14 \
+ clB8x16 \
+ clB8x8 \
+ clB9x15 \
+ clI6x12 \
+ clI8x8 \
+ clR4x6 \
+ clR5x10 \
+ clR5x6 \
+ clR5x8 \
+ clR6x10 \
+ clR6x13 \
+ clR6x6 \
+ clR6x8 \
+ clR7x10 \
+ clR7x12 \
+ clR7x14 \
+ clR7x8 \
+ clR8x10 \
+ clR8x12 \
+ clR8x13 \
+ clR8x14 \
+ clR8x16 \
+ clR8x8 \
+ clR9x15 \
+ 12x24 \
+ 12x24rk \
+ 8x16 \
+ 8x16rk \
+ olcursor \
+ olgl10 \
+ olgl12 \
+ olgl14 \
+ olgl19
+
+FONT_FILES = $(BDF2UCS_FONT_FILES) $(EXTRA_FONT_FILES)
+
+BDF_FILES = $(FONT_FILES:%=%.bdf)
+PCF_FILES = $(FONT_FILES:%=$(DESTDIR)\%.pcf.gz)
+
+ISO8859_1_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-1.pcf.gz)
+
+ISO8859_2_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-2.pcf.gz)
+
+ISO8859_3_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-3.pcf.gz)
+
+ISO8859_4_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-4.pcf.gz)
+
+ISO8859_5_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-5.pcf.gz)
+
+ISO8859_7_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-7.pcf.gz)
+
+ISO8859_8_PCF_FILES = $(BDF2UCS_8_FONT_FILES:%=$(DESTDIR)\%-ISO8859-8.pcf.gz)
+
+ISO8859_9_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-9.pcf.gz)
+
+ISO8859_10_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-10.pcf.gz)
+
+ISO8859_11_PCF_FILES = $(BDF2UCS_11_FONT_FILES:%=$(DESTDIR)\%-ISO8859-11.pcf.gz)
+
+ISO8859_13_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-13.pcf.gz)
+
+ISO8859_14_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-14.pcf.gz)
+
+ISO8859_15_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-15.pcf.gz)
+
+ISO8859_16_PCF_FILES = $(BDF2UCS_FONT_FILES:%=$(DESTDIR)\%-ISO8859-16.pcf.gz)
+
+KOI8_R_PCF_FILES = $(BDF2UCS_KOI8_FONT_FILES:%=$(DESTDIR)\%-KOI8-R.pcf.gz)
+
+JISX0201_PCF_FILES = $(BDF2UCS_JISX0201_FONT_FILES:%=$(DESTDIR)\%-JISX0201.1976-0.pcf.gz)
+
+$(DESTDIR)\%-ISO8859-1.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-1.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-1 ISO8859-1
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-1.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-1.bdf)
+
+$(DESTDIR)\%-ISO8859-2.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-2.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-2 ISO8859-2
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-2.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-2.bdf)
+
+$(DESTDIR)\%-ISO8859-3.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-3.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-3 ISO8859-3
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-3.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-3.bdf)
+
+$(DESTDIR)\%-ISO8859-4.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-4.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-4 ISO8859-4
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-4.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-4.bdf)
+
+$(DESTDIR)\%-ISO8859-5.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-5.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-5 ISO8859-5
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-5.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-5.bdf)
+
+$(DESTDIR)\%-ISO8859-7.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-7.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-7 ISO8859-7
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-7.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-7.bdf)
+
+$(DESTDIR)\%-ISO8859-8.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-8.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-8 ISO8859-8
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-8.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-8.bdf)
+
+$(DESTDIR)\%-ISO8859-9.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-9.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-9 ISO8859-9
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-9.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-9.bdf)
+
+$(DESTDIR)\%-ISO8859-10.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-10.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-10 ISO8859-10
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-10.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-10.bdf)
+
+$(DESTDIR)\%-ISO8859-11.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-11.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-11 ISO8859-11
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-11.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-11.bdf)
+
+$(DESTDIR)\%-ISO8859-13.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-13.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-13 ISO8859-13
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-13.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-13.bdf)
+
+$(DESTDIR)\%-ISO8859-14.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-14.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-14 ISO8859-14
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-14.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-14.bdf)
+
+$(DESTDIR)\%-ISO8859-15.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-15.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-15 ISO8859-15
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-15.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-15.bdf)
+
+$(DESTDIR)\%-ISO8859-16.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-ISO8859-16.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-ISO8859-16 ISO8859-16
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-ISO8859-16.bdf) | gzip > $@
+ @del $(<:%.bdf=%-ISO8859-16.bdf)
+
+$(DESTDIR)\%-KOI8-R.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-KOI8-R.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-KOI8-R KOI8-R
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-KOI8-R.bdf) | gzip > $@
+ @del $(<:%.bdf=%-KOI8-R.bdf)
+
+$(DESTDIR)\%-JISX0201.1976-0.pcf.gz: %.bdf
+ @del -e $(<:%.bdf=%-JISX0201.1976-0.bdf)
+ $(UCS2ANY) $< $(UTIL_DIR)\map-JISX0201.1976-0 JISX0201.1976-0
+ @del -e $@
+ $(BDFTOPCF) -t $(<:%.bdf=%-JISX0201.1976-0.bdf) | gzip > $@
+ @del $(<:%.bdf=%-JISX0201.1976-0.bdf)
+
+font_DATA = \
+ $(PCF_FILES) \
+ $(ISO8859_1_PCF_FILES) \
+ $(ISO8859_2_PCF_FILES) \
+ $(ISO8859_3_PCF_FILES) \
+ $(ISO8859_4_PCF_FILES) \
+ $(ISO8859_5_PCF_FILES) \
+ $(ISO8859_7_PCF_FILES) \
+ $(ISO8859_8_PCF_FILES) \
+ $(ISO8859_9_PCF_FILES) \
+ $(ISO8859_10_PCF_FILES) \
+ $(ISO8859_11_PCF_FILES) \
+ $(ISO8859_13_PCF_FILES) \
+ $(ISO8859_14_PCF_FILES) \
+ $(ISO8859_15_PCF_FILES) \
+ $(ISO8859_16_PCF_FILES) \
+ $(KOI8_R_PCF_FILES) \
+ $(JISX0201_PCF_FILES)
+
+all: $(DESTDIR) $(DESTDIR)\fonts.dir $(DESTDIR)\fonts.alias
+
+MKFONTSCALE=$(MHMAKECONF)\mkfontscale\$(OBJDIR)\mkfontscale.exe
+
+load_makefile $(MHMAKECONF)\mkfontscale\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+
+$(DESTDIR)\fonts.scale: $(font_DATA) $(MKFONTSCALE)
+ del -e $@
+ cd $(DESTDIR) & $(MKFONTSCALE) .
+
+$(DESTDIR)\fonts.dir: $(DESTDIR)\fonts.scale $(font_DATA) $(MKFONTSCALE)
+ del -e $@
+ cd $(DESTDIR) & $(MKFONTSCALE) -b -s -l .
+
+$(DESTDIR)\fonts.alias: fonts.alias
+ copy $< $@
+
diff --git a/xorg-server/fonts.src/terminus-font/Makefile b/xorg-server/fonts.src/terminus-font/Makefile
index 727e99277..c8cb4f0fc 100644
--- a/xorg-server/fonts.src/terminus-font/Makefile
+++ b/xorg-server/fonts.src/terminus-font/Makefile
@@ -1,11 +1,18 @@
-PERL = perl
-AWK = awk
-UCS2VGA = $(PERL) ./ucstoany.pl +f
-UNI2TXT = $(AWK) '{ printf("0x%02X\tU+%s\n", FNR-1, $$1) }'
-BDF2PSF = $(PERL) ./bdftopsf.pl +u
-BDF2RAW = $(PERL) ./bdftopsf.pl -h
-UCS2X11 = $(PERL) ./ucstoany.pl
-BDF2PCF = bdftopcf
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+UCS2ANY = perl ucstoany.pl
+
+INC_BDF_RULES=1
+
+ # The following rule is to avoid parallel build problems
+.PHONY: buildtoolsfirst
+buildtoolsfirst: $(BDFTOPCF)
+
+all: buildtoolsfirst
+
+DESTDIR=$(MHMAKECONF)\xorg-server\fonts\terminus-font
R_88591 = ISO8859 1
R_88592 = ISO8859 2
@@ -25,37 +32,6 @@ R_PT254 = Paratype PT254
R_XOS42 = XOS4 2
R_10646 = ISO10646 1
-PSF_12N = ter-112n.psf ter-212n.psf ter-712n.psf ter-912n.psf ter-c12n.psf ter-d12n.psf ter-g12n.psf ter-i12n.psf ter-k12n.psf ter-m12n.psf ter-p12n.psf ter-u12n.psf ter-v12n.psf
-PSF_14N = ter-114n.psf ter-214n.psf ter-714n.psf ter-914n.psf ter-c14n.psf ter-d14n.psf ter-g14n.psf ter-i14n.psf ter-k14n.psf ter-m14n.psf ter-p14n.psf ter-u14n.psf ter-v14n.psf
-PSF_14B = ter-114b.psf ter-214b.psf ter-714b.psf ter-914b.psf ter-c14b.psf ter-d14b.psf ter-g14b.psf ter-i14b.psf ter-k14b.psf ter-m14b.psf ter-p14b.psf ter-u14b.psf ter-v14b.psf
-PSF_14F = ter-114f.psf ter-214f.psf ter-714f.psf ter-914f.psf ter-c14f.psf ter-d14f.psf ter-g14f.psf ter-i14f.psf ter-k14f.psf ter-m14f.psf ter-p14f.psf ter-u14f.psf ter-v14f.psf
-PSF_16N = ter-116n.psf ter-216n.psf ter-716n.psf ter-916n.psf ter-c16n.psf ter-d16n.psf ter-g16n.psf ter-i16n.psf ter-k16n.psf ter-m16n.psf ter-p16n.psf ter-u16n.psf ter-v16n.psf
-PSF_16B = ter-116b.psf ter-216b.psf ter-716b.psf ter-916b.psf ter-c16b.psf ter-d16b.psf ter-g16b.psf ter-i16b.psf ter-k16b.psf ter-m16b.psf ter-p16b.psf ter-u16b.psf ter-v16b.psf
-PSF_16F = ter-116f.psf ter-216f.psf ter-716f.psf ter-916f.psf ter-c16f.psf ter-d16f.psf ter-g16f.psf ter-i16f.psf ter-k16f.psf ter-m16f.psf ter-p16f.psf ter-u16f.psf ter-v16f.psf
-PSF_20N = ter-120n.psf ter-220n.psf ter-720n.psf ter-920n.psf ter-c20n.psf ter-d20n.psf ter-g20n.psf ter-i20n.psf ter-k20n.psf ter-m20n.psf ter-p20n.psf ter-u20n.psf ter-v20n.psf
-PSF_20B = ter-120b.psf ter-220b.psf ter-720b.psf ter-920b.psf ter-c20b.psf ter-d20b.psf ter-g20b.psf ter-i20b.psf ter-k20b.psf ter-m20b.psf ter-p20b.psf ter-u20b.psf ter-v20b.psf
-PSF_22N = ter-122n.psf ter-222n.psf ter-722n.psf ter-922n.psf ter-c22n.psf ter-d22n.psf ter-g22n.psf ter-i22n.psf ter-k22n.psf ter-m22n.psf ter-p22n.psf ter-u22n.psf ter-v22n.psf
-PSF_22B = ter-122b.psf ter-222b.psf ter-722b.psf ter-922b.psf ter-c22b.psf ter-d22b.psf ter-g22b.psf ter-i22b.psf ter-k22b.psf ter-m22b.psf ter-p22b.psf ter-u22b.psf ter-v22b.psf
-PSF_24N = ter-124n.psf ter-224n.psf ter-724n.psf ter-924n.psf ter-c24n.psf ter-d24n.psf ter-g24n.psf ter-i24n.psf ter-k24n.psf ter-m24n.psf ter-p24n.psf ter-u24n.psf ter-v24n.psf
-PSF_24B = ter-124b.psf ter-224b.psf ter-724b.psf ter-924b.psf ter-c24b.psf ter-d24b.psf ter-g24b.psf ter-i24b.psf ter-k24b.psf ter-m24b.psf ter-p24b.psf ter-u24b.psf ter-v24b.psf
-PSF_28N = ter-128n.psf ter-228n.psf ter-728n.psf ter-928n.psf ter-c28n.psf ter-d28n.psf ter-g28n.psf ter-i28n.psf ter-k28n.psf ter-m28n.psf ter-p28n.psf ter-u28n.psf ter-v28n.psf
-PSF_28B = ter-128b.psf ter-228b.psf ter-728b.psf ter-928b.psf ter-c28b.psf ter-d28b.psf ter-g28b.psf ter-i28b.psf ter-k28b.psf ter-m28b.psf ter-p28b.psf ter-u28b.psf ter-v28b.psf
-PSF_32N = ter-132n.psf ter-232n.psf ter-732n.psf ter-932n.psf ter-c32n.psf ter-d32n.psf ter-g32n.psf ter-i32n.psf ter-k32n.psf ter-m32n.psf ter-p32n.psf ter-u32n.psf ter-v32n.psf
-PSF_32B = ter-132b.psf ter-232b.psf ter-732b.psf ter-932b.psf ter-c32b.psf ter-d32b.psf ter-g32b.psf ter-i32b.psf ter-k32b.psf ter-m32b.psf ter-p32b.psf ter-u32b.psf ter-v32b.psf
-PSF = $(PSF_12N) $(PSF_14N) $(PSF_14B) $(PSF_14F) $(PSF_16N) $(PSF_16B) $(PSF_16F) $(PSF_20N) $(PSF_20B) $(PSF_22N) $(PSF_22B) $(PSF_24N) $(PSF_24B) $(PSF_28N) $(PSF_28B) $(PSF_32N) $(PSF_32B)
-
-TXT_WIN = cp1252.txt cp1250.txt cp1253.txt cp1254.txt cp1251.txt cp1257.txt pt154.txt
-TXT_MIX = 8859-16.txt cp437.txt koi8-r.txt koi8-u.txt mik.txt pt254.txt
-TXT = $(TXT_WIN) $(TXT_MIX)
-
-RAW_14N = ter-114n.raw ter-214n.raw ter-514n.raw ter-714n.raw ter-914n.raw ter-c14n.raw ter-d14n.raw ter-f14n.raw ter-g14n.raw ter-i14n.raw ter-k14n.raw ter-p14n.raw ter-u14n.raw
-RAW_14B = ter-114b.raw ter-214b.raw ter-514b.raw ter-714b.raw ter-914b.raw ter-c14b.raw ter-d14b.raw ter-f14b.raw ter-g14b.raw ter-i14b.raw ter-k14b.raw ter-p14b.raw ter-u14b.raw
-RAW_14F = ter-114f.raw ter-214f.raw ter-514f.raw ter-714f.raw ter-914f.raw ter-c14f.raw ter-d14f.raw ter-f14f.raw ter-g14f.raw ter-i14f.raw ter-k14f.raw ter-p14f.raw ter-u14f.raw
-RAW_16N = ter-116n.raw ter-216n.raw ter-516n.raw ter-716n.raw ter-916n.raw ter-c16n.raw ter-d16n.raw ter-f16n.raw ter-g16n.raw ter-i16n.raw ter-k16n.raw ter-p16n.raw ter-u16n.raw
-RAW_16B = ter-116b.raw ter-216b.raw ter-516b.raw ter-716b.raw ter-916b.raw ter-c16b.raw ter-d16b.raw ter-f16b.raw ter-g16b.raw ter-i16b.raw ter-k16b.raw ter-p16b.raw ter-u16b.raw
-RAW_16F = ter-116f.raw ter-216f.raw ter-516f.raw ter-716f.raw ter-916f.raw ter-c16f.raw ter-d16f.raw ter-f16f.raw ter-g16f.raw ter-i16f.raw ter-k16f.raw ter-p16f.raw ter-u16f.raw
-RAW = $(RAW_14N) $(RAW_14B) $(RAW_14F) $(RAW_16N) $(RAW_16B) $(RAW_16F)
-
PCF_12N = ter-112n.pcf ter-212n.pcf ter-512n.pcf ter-712n.pcf ter-912n.pcf ter-c12n.pcf ter-d12n.pcf ter-f12n.pcf ter-g12n.pcf ter-k12n.pcf ter-p12n.pcf ter-u12n.pcf ter-x12n.pcf
PCF_12B = ter-112b.pcf ter-212b.pcf ter-512b.pcf ter-712b.pcf ter-912b.pcf ter-c12b.pcf ter-d12b.pcf ter-f12b.pcf ter-g12b.pcf ter-k12b.pcf ter-p12b.pcf ter-u12b.pcf ter-x12b.pcf
PCF_14N = ter-114n.pcf ter-214n.pcf ter-514n.pcf ter-714n.pcf ter-914n.pcf ter-c14n.pcf ter-d14n.pcf ter-f14n.pcf ter-g14n.pcf ter-k14n.pcf ter-p14n.pcf ter-u14n.pcf ter-x14n.pcf
@@ -75,1099 +51,6 @@ PCF_32B = ter-132b.pcf ter-232b.pcf ter-532b.pcf ter-732b.pcf ter-932b.pcf ter-c
PCF = $(PCF_12N) $(PCF_12B) $(PCF_14N) $(PCF_14B) $(PCF_16N) $(PCF_16B) $(PCF_20N) $(PCF_20B) $(PCF_22N) $(PCF_22B) $(PCF_24N) $(PCF_24B) $(PCF_28N) $(PCF_28B) $(PCF_32N) $(PCF_32B)
PCF_N12 = $(PCF_12N) $(PCF_14N) $(PCF_14B) $(PCF_16N) $(PCF_16B) $(PCF_20N) $(PCF_20B) $(PCF_22N) $(PCF_22B) $(PCF_24N) $(PCF_24B) $(PCF_28N) $(PCF_28B) $(PCF_32N) $(PCF_32B)
-EEE = ter-x12n.pcf ter-x12b.pcf ter-x14n.pcf ter-x14b.pcf ter-x16n.pcf ter-x16b.pcf ter-x20n.pcf ter-x20b.pcf ter-x22n.pcf ter-x22b.pcf
-EEE_N12 = ter-x12n.pcf ter-x14n.pcf ter-x14b.pcf ter-x16n.pcf ter-x16b.pcf ter-x20n.pcf ter-x20b.pcf ter-x22n.pcf ter-x22b.pcf
-
-all: $(PSF) $(PCF)
-psf: $(PSF)
-txt: $(TXT)
-raw: $(RAW)
-pcf: $(PCF)
-n12: $(PCF_N12)
-eee: $(EEE)
-e12: $(EEE_N12)
-
-DESTDIR =
-prefix = /usr/local
-psfdir = $(prefix)/share/consolefonts
-x11dir = $(prefix)/share/fonts/terminus
-
-install: $(PSF) $(PCF)
- mkdir -p $(DESTDIR)$(psfdir)
- for i in $(PSF) ; do gzip -c $$i > $(DESTDIR)$(psfdir)/$$i.gz ; done
- mkdir -p $(DESTDIR)$(x11dir)
- for i in $(PCF) ; do gzip -c $$i > $(DESTDIR)$(x11dir)/$$i.gz ; done
-
-uninstall:
- for i in $(PSF) ; do rm -f $(DESTDIR)$(psfdir)/$$i.gz ; done
- for i in $(PCF) ; do rm -f $(DESTDIR)$(x11dir)/$$i.gz ; done
-
-fontdir:
- mkfontscale $(DESTDIR)$(x11dir)
- mkfontdir $(DESTDIR)$(x11dir)
- fc-cache $(DESTDIR)$(x11dir)
-
-V_88591 = uni/vgagr.uni uni/ascii-h.uni uni/win-1252.uni
-V_88592 = uni/vgagr.uni uni/ascii-h.uni uni/vga-1250.uni uni/8859-2.uni
-V_88597 = uni/vgagr.uni uni/ascii-h.uni uni/vga-1253.uni uni/8859-7.uni
-V_88599 = uni/vgagr.uni uni/ascii-h.uni uni/win-1254.uni
-V_W1251 = uni/vgagr.uni uni/ascii-h.uni uni/vga-1251.uni uni/win-1251.uni
-V_8859D = uni/vgagr.uni uni/ascii-h.uni uni/vga-1257.uni uni/8859-13.uni
-V_8859G = uni/vgagr.uni uni/ascii-h.uni uni/nls-1250.uni uni/8859-16.uni
-V_PCIBM = uni/cntrl.uni uni/ascii-h.uni uni/ibm-437.uni
-V_KOI8R = uni/cntrl.uni uni/ascii-h.uni uni/koibm8-r.uni
-F_KOI8R = uni/cntrl.uni uni/ascii-h.uni uni/koi8-r.uni
-V_KOI8U = uni/cntrl.uni uni/ascii-h.uni uni/koibm8-u.uni
-F_KOI8U = uni/cntrl.uni uni/ascii-h.uni uni/koi8-u.uni
-V_BGMIK = uni/cntrl.uni uni/ascii-h.uni uni/bg-mik.uni
-V_PT154 = uni/vgagr.uni uni/ascii-h.uni uni/pt-154.uni
-V_XOS42 = uni/xos4-2.uni
-
-D_88591 = dup/vgagr.dup dup/ascii-h.dup
-D_88592 = dup/vgagr.dup dup/ascii-h.dup
-D_88597 = dup/vgagr.dup dup/ascii-h.dup
-D_88599 = dup/vgagr.dup dup/ascii-h.dup
-D_W1251 = dup/vgagr.dup dup/ascii-h.dup
-D_8859D = dup/vgagr.dup dup/ascii-h.dup
-D_8859G = dup/vgagr.dup dup/ascii-h.dup
-D_PCIBM = dup/cntrl.dup dup/ascii-h.dup dup/ibm-437.dup
-D_KOI8R = dup/cntrl.dup dup/ascii-h.dup dup/koi8.dup
-D_KOI8U = dup/cntrl.dup dup/ascii-h.dup dup/koi8.dup
-D_BGMIK = dup/cntrl.dup dup/ascii-h.dup dup/ibm-437.dup
-D_PT154 = dup/vgagr.dup dup/ascii-h.dup
-D_XOS42 = dup/vgagr.dup dup/xos4-2.dup
-
-ter-112n.psf: ter-u12n.bdf $(V_88591) $(D_88591)
- $(UCS2VGA) ter-u12n.bdf $(R_88591) $(V_88591) | $(BDF2PSF) -o $@ - $(D_88591)
-
-ter-212n.psf: ter-u12n.bdf $(V_88592) $(D_88592)
- $(UCS2VGA) ter-u12n.bdf $(R_88592) $(V_88592) | $(BDF2PSF) -o $@ - $(D_88592)
-
-ter-712n.psf: ter-u12n.bdf $(V_88597) $(D_88597)
- $(UCS2VGA) ter-u12n.bdf $(R_88597) $(V_88597) | $(BDF2PSF) -o $@ - $(D_88597)
-
-ter-912n.psf: ter-u12n.bdf $(V_88599) $(D_88599)
- $(UCS2VGA) ter-u12n.bdf $(R_88599) $(V_88599) | $(BDF2PSF) -o $@ - $(D_88599)
-
-ter-c12n.psf: ter-u12n.bdf $(V_W1251) $(D_W1251)
- $(UCS2VGA) ter-u12n.bdf $(R_W1251) $(V_W1251) | $(BDF2PSF) -o $@ - $(D_W1251)
-
-ter-d12n.psf: ter-u12n.bdf $(V_8859D) $(D_8859D)
- $(UCS2VGA) ter-u12n.bdf $(R_8859D) $(V_8859D) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-g12n.psf: ter-u12n.bdf $(V_8859G) $(D_8859G)
- $(UCS2VGA) ter-u12n.bdf $(R_8859G) $(V_8859G) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-i12n.psf: ter-u12n.bdf $(V_PCIBM) $(D_PCIBM)
- $(UCS2VGA) ter-u12n.bdf $(R_PCIBM) $(V_PCIBM) | $(BDF2PSF) -o $@ - $(D_PCIBM)
-
-ter-k12n.psf: ter-u12n.bdf $(F_KOI8R) $(D_KOI8R)
- $(UCS2VGA) ter-u12n.bdf $(R_KOI8R) $(F_KOI8R) | $(BDF2PSF) -o $@ - $(D_KOI8R)
-
-ter-m12n.psf: ter-u12n.bdf $(V_BGMIK) $(D_BGMIK)
- $(UCS2VGA) ter-u12n.bdf $(R_BGMIK) $(V_BGMIK) | $(BDF2PSF) -o $@ - $(D_BGMIK)
-
-ter-p12n.psf: ter-u12n.bdf $(V_PT154) $(D_PT154)
- $(UCS2VGA) ter-u12n.bdf $(R_PT154) $(V_PT154) | $(BDF2PSF) -o $@ - $(D_PT154)
-
-ter-u12n.psf: ter-u12n.bdf $(F_KOI8U) $(D_KOI8U)
- $(UCS2VGA) ter-u12n.bdf $(R_KOI8U) $(F_KOI8U) | $(BDF2PSF) -o $@ - $(D_KOI8U)
-
-ter-v12n.psf: ter-u12n.bdf $(V_XOS42) $(D_XOS42)
- $(UCS2VGA) ter-u12n.bdf $(R_XOS42) $(V_XOS42) | $(BDF2PSF) -o $@ - $(D_XOS42)
-
-ter-114n.psf: ter-u14n.bdf $(V_88591) $(D_88591)
- $(UCS2VGA) ter-u14n.bdf $(R_88591) $(V_88591) | $(BDF2PSF) -o $@ - $(D_88591)
-
-ter-114b.psf: ter-u14v.bdf $(V_88591) $(D_88591)
- $(UCS2VGA) ter-u14v.bdf $(R_88591) $(V_88591) | $(BDF2PSF) -o $@ - $(D_88591)
-
-ter-114f.psf: ter-u14b.bdf $(V_88591) $(D_88591)
- $(UCS2VGA) ter-u14b.bdf $(R_88591) $(V_88591) | $(BDF2PSF) -o $@ - $(D_88591)
-
-ter-214n.psf: ter-u14n.bdf $(V_88592) $(D_88592)
- $(UCS2VGA) ter-u14n.bdf $(R_88592) $(V_88592) | $(BDF2PSF) -o $@ - $(D_88592)
-
-ter-214b.psf: ter-u14v.bdf $(V_88592) $(D_88592)
- $(UCS2VGA) ter-u14v.bdf $(R_88592) $(V_88592) | $(BDF2PSF) -o $@ - $(D_88592)
-
-ter-214f.psf: ter-u14b.bdf $(V_88592) $(D_88592)
- $(UCS2VGA) ter-u14b.bdf $(R_88592) $(V_88592) | $(BDF2PSF) -o $@ - $(D_88592)
-
-ter-714n.psf: ter-u14n.bdf $(V_88597) $(D_88597)
- $(UCS2VGA) ter-u14n.bdf $(R_88597) $(V_88597) | $(BDF2PSF) -o $@ - $(D_88597)
-
-ter-714b.psf: ter-u14v.bdf $(V_88597) $(D_88597)
- $(UCS2VGA) ter-u14v.bdf $(R_88597) $(V_88597) | $(BDF2PSF) -o $@ - $(D_88597)
-
-ter-714f.psf: ter-u14b.bdf $(V_88597) $(D_88597)
- $(UCS2VGA) ter-u14b.bdf $(R_88597) $(V_88597) | $(BDF2PSF) -o $@ - $(D_88597)
-
-ter-914n.psf: ter-u14n.bdf $(V_88599) $(D_88599)
- $(UCS2VGA) ter-u14n.bdf $(R_88599) $(V_88599) | $(BDF2PSF) -o $@ - $(D_88599)
-
-ter-914b.psf: ter-u14v.bdf $(V_88599) $(D_88599)
- $(UCS2VGA) ter-u14v.bdf $(R_88599) $(V_88599) | $(BDF2PSF) -o $@ - $(D_88599)
-
-ter-914f.psf: ter-u14b.bdf $(V_88599) $(D_88599)
- $(UCS2VGA) ter-u14b.bdf $(R_88599) $(V_88599) | $(BDF2PSF) -o $@ - $(D_88599)
-
-ter-c14n.psf: ter-u14n.bdf $(V_W1251) $(D_W1251)
- $(UCS2VGA) ter-u14n.bdf $(R_W1251) $(V_W1251) | $(BDF2PSF) -o $@ - $(D_W1251)
-
-ter-c14b.psf: ter-u14v.bdf $(V_W1251) $(D_W1251)
- $(UCS2VGA) ter-u14v.bdf $(R_W1251) $(V_W1251) | $(BDF2PSF) -o $@ - $(D_W1251)
-
-ter-c14f.psf: ter-u14b.bdf $(V_W1251) $(D_W1251)
- $(UCS2VGA) ter-u14b.bdf $(R_W1251) $(V_W1251) | $(BDF2PSF) -o $@ - $(D_W1251)
-
-ter-d14n.psf: ter-u14n.bdf $(V_8859D) $(D_8859D)
- $(UCS2VGA) ter-u14n.bdf $(R_8859D) $(V_8859D) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-d14b.psf: ter-u14v.bdf $(V_8859D) $(D_8859D)
- $(UCS2VGA) ter-u14v.bdf $(R_8859D) $(V_8859D) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-d14f.psf: ter-u14b.bdf $(V_8859D) $(D_8859D)
- $(UCS2VGA) ter-u14b.bdf $(R_8859D) $(V_8859D) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-g14n.psf: ter-u14n.bdf $(V_8859G) $(D_8859G)
- $(UCS2VGA) ter-u14n.bdf $(R_8859G) $(V_8859G) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-g14b.psf: ter-u14v.bdf $(V_8859G) $(D_8859G)
- $(UCS2VGA) ter-u14v.bdf $(R_8859G) $(V_8859G) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-g14f.psf: ter-u14b.bdf $(V_8859G) $(D_8859G)
- $(UCS2VGA) ter-u14b.bdf $(R_8859G) $(V_8859G) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-i14n.psf: ter-u14n.bdf $(V_PCIBM) $(D_PCIBM)
- $(UCS2VGA) ter-u14n.bdf $(R_PCIBM) $(V_PCIBM) | $(BDF2PSF) -o $@ - $(D_PCIBM)
-
-ter-i14b.psf: ter-u14v.bdf $(V_PCIBM) $(D_PCIBM)
- $(UCS2VGA) ter-u14v.bdf $(R_PCIBM) $(V_PCIBM) | $(BDF2PSF) -o $@ - $(D_PCIBM)
-
-ter-i14f.psf: ter-u14b.bdf $(V_PCIBM) $(D_PCIBM)
- $(UCS2VGA) ter-u14b.bdf $(R_PCIBM) $(V_PCIBM) | $(BDF2PSF) -o $@ - $(D_PCIBM)
-
-ter-k14n.psf: ter-u14n.bdf $(V_KOI8R) $(D_KOI8R)
- $(UCS2VGA) ter-u14n.bdf $(R_KOI8R) $(V_KOI8R) | $(BDF2PSF) -o $@ - $(D_KOI8R)
-
-ter-k14b.psf: ter-u14v.bdf $(V_KOI8R) $(D_KOI8R)
- $(UCS2VGA) ter-u14v.bdf $(R_KOI8R) $(V_KOI8R) | $(BDF2PSF) -o $@ - $(D_KOI8R)
-
-ter-k14f.psf: ter-u14b.bdf $(V_KOI8R) $(D_KOI8R)
- $(UCS2VGA) ter-u14b.bdf $(R_KOI8R) $(V_KOI8R) | $(BDF2PSF) -o $@ - $(D_KOI8R)
-
-ter-m14n.psf: ter-u14n.bdf $(V_BGMIK) $(D_BGMIK)
- $(UCS2VGA) ter-u14n.bdf $(R_BGMIK) $(V_BGMIK) | $(BDF2PSF) -o $@ - $(D_BGMIK)
-
-ter-m14b.psf: ter-u14v.bdf $(V_BGMIK) $(D_BGMIK)
- $(UCS2VGA) ter-u14v.bdf $(R_BGMIK) $(V_BGMIK) | $(BDF2PSF) -o $@ - $(D_BGMIK)
-
-ter-m14f.psf: ter-u14b.bdf $(V_BGMIK) $(D_BGMIK)
- $(UCS2VGA) ter-u14b.bdf $(R_BGMIK) $(V_BGMIK) | $(BDF2PSF) -o $@ - $(D_BGMIK)
-
-ter-p14n.psf: ter-u14n.bdf $(V_PT154) $(D_PT154)
- $(UCS2VGA) ter-u14n.bdf $(R_PT154) $(V_PT154) | $(BDF2PSF) -o $@ - $(D_PT154)
-
-ter-p14b.psf: ter-u14v.bdf $(V_PT154) $(D_PT154)
- $(UCS2VGA) ter-u14v.bdf $(R_PT154) $(V_PT154) | $(BDF2PSF) -o $@ - $(D_PT154)
-
-ter-p14f.psf: ter-u14b.bdf $(V_PT154) $(D_PT154)
- $(UCS2VGA) ter-u14b.bdf $(R_PT154) $(V_PT154) | $(BDF2PSF) -o $@ - $(D_PT154)
-
-ter-u14n.psf: ter-u14n.bdf $(V_KOI8U) $(D_KOI8U)
- $(UCS2VGA) ter-u14n.bdf $(R_KOI8U) $(V_KOI8U) | $(BDF2PSF) -o $@ - $(D_KOI8U)
-
-ter-u14b.psf: ter-u14v.bdf $(V_KOI8U) $(D_KOI8U)
- $(UCS2VGA) ter-u14v.bdf $(R_KOI8U) $(V_KOI8U) | $(BDF2PSF) -o $@ - $(D_KOI8U)
-
-ter-u14f.psf: ter-u14b.bdf $(V_KOI8U) $(D_KOI8U)
- $(UCS2VGA) ter-u14b.bdf $(R_KOI8U) $(V_KOI8U) | $(BDF2PSF) -o $@ - $(D_KOI8U)
-
-ter-v14n.psf: ter-u14n.bdf $(V_XOS42) $(D_XOS42)
- $(UCS2VGA) ter-u14n.bdf $(R_XOS42) $(V_XOS42) | $(BDF2PSF) -o $@ - $(D_XOS42)
-
-ter-v14b.psf: ter-u14v.bdf $(V_XOS42) $(D_XOS42)
- $(UCS2VGA) ter-u14v.bdf $(R_XOS42) $(V_XOS42) | $(BDF2PSF) -o $@ - $(D_XOS42)
-
-ter-v14f.psf: ter-u14b.bdf $(V_XOS42) $(D_XOS42)
- $(UCS2VGA) ter-u14b.bdf $(R_XOS42) $(V_XOS42) | $(BDF2PSF) -o $@ - $(D_XOS42)
-
-ter-116n.psf: ter-u16n.bdf $(V_88591) $(D_88591)
- $(UCS2VGA) ter-u16n.bdf $(R_88591) $(V_88591) | $(BDF2PSF) -o $@ - $(D_88591)
-
-ter-116b.psf: ter-u16v.bdf $(V_88591) $(D_88591)
- $(UCS2VGA) ter-u16v.bdf $(R_88591) $(V_88591) | $(BDF2PSF) -o $@ - $(D_88591)
-
-ter-116f.psf: ter-u16b.bdf $(V_88591) $(D_88591)
- $(UCS2VGA) ter-u16b.bdf $(R_88591) $(V_88591) | $(BDF2PSF) -o $@ - $(D_88591)
-
-ter-216n.psf: ter-u16n.bdf $(V_88592) $(D_88592)
- $(UCS2VGA) ter-u16n.bdf $(R_88592) $(V_88592) | $(BDF2PSF) -o $@ - $(D_88592)
-
-ter-216b.psf: ter-u16v.bdf $(V_88592) $(D_88592)
- $(UCS2VGA) ter-u16v.bdf $(R_88592) $(V_88592) | $(BDF2PSF) -o $@ - $(D_88592)
-
-ter-216f.psf: ter-u16b.bdf $(V_88592) $(D_88592)
- $(UCS2VGA) ter-u16b.bdf $(R_88592) $(V_88592) | $(BDF2PSF) -o $@ - $(D_88592)
-
-ter-716n.psf: ter-u16n.bdf $(V_88597) $(D_88597)
- $(UCS2VGA) ter-u16n.bdf $(R_88597) $(V_88597) | $(BDF2PSF) -o $@ - $(D_88597)
-
-ter-716b.psf: ter-u16v.bdf $(V_88597) $(D_88597)
- $(UCS2VGA) ter-u16v.bdf $(R_88597) $(V_88597) | $(BDF2PSF) -o $@ - $(D_88597)
-
-ter-716f.psf: ter-u16b.bdf $(V_88597) $(D_88597)
- $(UCS2VGA) ter-u16b.bdf $(R_88597) $(V_88597) | $(BDF2PSF) -o $@ - $(D_88597)
-
-ter-916n.psf: ter-u16n.bdf $(V_88599) $(D_88599)
- $(UCS2VGA) ter-u16n.bdf $(R_88599) $(V_88599) | $(BDF2PSF) -o $@ - $(D_88599)
-
-ter-916b.psf: ter-u16v.bdf $(V_88599) $(D_88599)
- $(UCS2VGA) ter-u16v.bdf $(R_88599) $(V_88599) | $(BDF2PSF) -o $@ - $(D_88599)
-
-ter-916f.psf: ter-u16b.bdf $(V_88599) $(D_88599)
- $(UCS2VGA) ter-u16b.bdf $(R_88599) $(V_88599) | $(BDF2PSF) -o $@ - $(D_88599)
-
-ter-c16n.psf: ter-u16n.bdf $(V_W1251) $(D_W1251)
- $(UCS2VGA) ter-u16n.bdf $(R_W1251) $(V_W1251) | $(BDF2PSF) -o $@ - $(D_W1251)
-
-ter-c16b.psf: ter-u16v.bdf $(V_W1251) $(D_W1251)
- $(UCS2VGA) ter-u16v.bdf $(R_W1251) $(V_W1251) | $(BDF2PSF) -o $@ - $(D_W1251)
-
-ter-c16f.psf: ter-u16b.bdf $(V_W1251) $(D_W1251)
- $(UCS2VGA) ter-u16b.bdf $(R_W1251) $(V_W1251) | $(BDF2PSF) -o $@ - $(D_W1251)
-
-ter-d16n.psf: ter-u16n.bdf $(V_8859D) $(D_8859D)
- $(UCS2VGA) ter-u16n.bdf $(R_8859D) $(V_8859D) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-d16b.psf: ter-u16v.bdf $(V_8859D) $(D_8859D)
- $(UCS2VGA) ter-u16v.bdf $(R_8859D) $(V_8859D) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-d16f.psf: ter-u16b.bdf $(V_8859D) $(D_8859D)
- $(UCS2VGA) ter-u16b.bdf $(R_8859D) $(V_8859D) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-g16n.psf: ter-u16n.bdf $(V_8859G) $(D_8859G)
- $(UCS2VGA) ter-u16n.bdf $(R_8859G) $(V_8859G) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-g16b.psf: ter-u16v.bdf $(V_8859G) $(D_8859G)
- $(UCS2VGA) ter-u16v.bdf $(R_8859G) $(V_8859G) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-g16f.psf: ter-u16b.bdf $(V_8859G) $(D_8859G)
- $(UCS2VGA) ter-u16b.bdf $(R_8859G) $(V_8859G) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-i16n.psf: ter-u16n.bdf $(V_PCIBM) $(D_PCIBM)
- $(UCS2VGA) ter-u16n.bdf $(R_PCIBM) $(V_PCIBM) | $(BDF2PSF) -o $@ - $(D_PCIBM)
-
-ter-i16b.psf: ter-u16v.bdf $(V_PCIBM) $(D_PCIBM)
- $(UCS2VGA) ter-u16v.bdf $(R_PCIBM) $(V_PCIBM) | $(BDF2PSF) -o $@ - $(D_PCIBM)
-
-ter-i16f.psf: ter-u16b.bdf $(V_PCIBM) $(D_PCIBM)
- $(UCS2VGA) ter-u16b.bdf $(R_PCIBM) $(V_PCIBM) | $(BDF2PSF) -o $@ - $(D_PCIBM)
-
-ter-k16n.psf: ter-u16n.bdf $(V_KOI8R) $(D_KOI8R)
- $(UCS2VGA) ter-u16n.bdf $(R_KOI8R) $(V_KOI8R) | $(BDF2PSF) -o $@ - $(D_KOI8R)
-
-ter-k16b.psf: ter-u16v.bdf $(V_KOI8R) $(D_KOI8R)
- $(UCS2VGA) ter-u16v.bdf $(R_KOI8R) $(V_KOI8R) | $(BDF2PSF) -o $@ - $(D_KOI8R)
-
-ter-k16f.psf: ter-u16b.bdf $(V_KOI8R) $(D_KOI8R)
- $(UCS2VGA) ter-u16b.bdf $(R_KOI8R) $(V_KOI8R) | $(BDF2PSF) -o $@ - $(D_KOI8R)
-
-ter-m16n.psf: ter-u16n.bdf $(V_BGMIK) $(D_BGMIK)
- $(UCS2VGA) ter-u16n.bdf $(R_BGMIK) $(V_BGMIK) | $(BDF2PSF) -o $@ - $(D_BGMIK)
-
-ter-m16b.psf: ter-u16v.bdf $(V_BGMIK) $(D_BGMIK)
- $(UCS2VGA) ter-u16v.bdf $(R_BGMIK) $(V_BGMIK) | $(BDF2PSF) -o $@ - $(D_BGMIK)
-
-ter-m16f.psf: ter-u16b.bdf $(V_BGMIK) $(D_BGMIK)
- $(UCS2VGA) ter-u16b.bdf $(R_BGMIK) $(V_BGMIK) | $(BDF2PSF) -o $@ - $(D_BGMIK)
-
-ter-p16n.psf: ter-u16n.bdf $(V_PT154) $(D_PT154)
- $(UCS2VGA) ter-u16n.bdf $(R_PT154) $(V_PT154) | $(BDF2PSF) -o $@ - $(D_PT154)
-
-ter-p16b.psf: ter-u16v.bdf $(V_PT154) $(D_PT154)
- $(UCS2VGA) ter-u16v.bdf $(R_PT154) $(V_PT154) | $(BDF2PSF) -o $@ - $(D_PT154)
-
-ter-p16f.psf: ter-u16b.bdf $(V_PT154) $(D_PT154)
- $(UCS2VGA) ter-u16b.bdf $(R_PT154) $(V_PT154) | $(BDF2PSF) -o $@ - $(D_PT154)
-
-ter-u16n.psf: ter-u16n.bdf $(V_KOI8U) $(D_KOI8U)
- $(UCS2VGA) ter-u16n.bdf $(R_KOI8U) $(V_KOI8U) | $(BDF2PSF) -o $@ - $(D_KOI8U)
-
-ter-u16b.psf: ter-u16v.bdf $(V_KOI8U) $(D_KOI8U)
- $(UCS2VGA) ter-u16v.bdf $(R_KOI8U) $(V_KOI8U) | $(BDF2PSF) -o $@ - $(D_KOI8U)
-
-ter-u16f.psf: ter-u16b.bdf $(V_KOI8U) $(D_KOI8U)
- $(UCS2VGA) ter-u16b.bdf $(R_KOI8U) $(V_KOI8U) | $(BDF2PSF) -o $@ - $(D_KOI8U)
-
-ter-v16n.psf: ter-u16n.bdf $(V_XOS42) $(D_XOS42)
- $(UCS2VGA) ter-u16n.bdf $(R_XOS42) $(V_XOS42) | $(BDF2PSF) -o $@ - $(D_XOS42)
-
-ter-v16b.psf: ter-u16v.bdf $(V_XOS42) $(D_XOS42)
- $(UCS2VGA) ter-u16v.bdf $(R_XOS42) $(V_XOS42) | $(BDF2PSF) -o $@ - $(D_XOS42)
-
-ter-v16f.psf: ter-u16b.bdf $(V_XOS42) $(D_XOS42)
- $(UCS2VGA) ter-u16b.bdf $(R_XOS42) $(V_XOS42) | $(BDF2PSF) -o $@ - $(D_XOS42)
-
-ter-120n.psf: ter-u20n.bdf $(V_88591) $(D_88591)
- $(UCS2VGA) ter-u20n.bdf $(R_88591) $(V_88591) | $(BDF2PSF) -o $@ - $(D_88591)
-
-ter-120b.psf: ter-u20b.bdf $(V_88591) $(D_88591)
- $(UCS2VGA) ter-u20b.bdf $(R_88591) $(V_88591) | $(BDF2PSF) -o $@ - $(D_88591)
-
-ter-220n.psf: ter-u20n.bdf $(V_88592) $(D_88592)
- $(UCS2VGA) ter-u20n.bdf $(R_88592) $(V_88592) | $(BDF2PSF) -o $@ - $(D_88592)
-
-ter-220b.psf: ter-u20b.bdf $(V_88592) $(D_88592)
- $(UCS2VGA) ter-u20b.bdf $(R_88592) $(V_88592) | $(BDF2PSF) -o $@ - $(D_88592)
-
-ter-720n.psf: ter-u20n.bdf $(V_88597) $(D_88597)
- $(UCS2VGA) ter-u20n.bdf $(R_88597) $(V_88597) | $(BDF2PSF) -o $@ - $(D_88597)
-
-ter-720b.psf: ter-u20b.bdf $(V_88597) $(D_88597)
- $(UCS2VGA) ter-u20b.bdf $(R_88597) $(V_88597) | $(BDF2PSF) -o $@ - $(D_88597)
-
-ter-920n.psf: ter-u20n.bdf $(V_88599) $(D_88599)
- $(UCS2VGA) ter-u20n.bdf $(R_88599) $(V_88599) | $(BDF2PSF) -o $@ - $(D_88599)
-
-ter-920b.psf: ter-u20b.bdf $(V_88599) $(D_88599)
- $(UCS2VGA) ter-u20b.bdf $(R_88599) $(V_88599) | $(BDF2PSF) -o $@ - $(D_88599)
-
-ter-c20n.psf: ter-u20n.bdf $(V_W1251) $(D_W1251)
- $(UCS2VGA) ter-u20n.bdf $(R_W1251) $(V_W1251) | $(BDF2PSF) -o $@ - $(D_W1251)
-
-ter-c20b.psf: ter-u20b.bdf $(V_W1251) $(D_W1251)
- $(UCS2VGA) ter-u20b.bdf $(R_W1251) $(V_W1251) | $(BDF2PSF) -o $@ - $(D_W1251)
-
-ter-d20n.psf: ter-u20n.bdf $(V_8859D) $(D_8859D)
- $(UCS2VGA) ter-u20n.bdf $(R_8859D) $(V_8859D) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-d20b.psf: ter-u20b.bdf $(V_8859D) $(D_8859D)
- $(UCS2VGA) ter-u20b.bdf $(R_8859D) $(V_8859D) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-g20n.psf: ter-u20n.bdf $(V_8859G) $(D_8859G)
- $(UCS2VGA) ter-u20n.bdf $(R_8859G) $(V_8859G) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-g20b.psf: ter-u20b.bdf $(V_8859G) $(D_8859G)
- $(UCS2VGA) ter-u20b.bdf $(R_8859G) $(V_8859G) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-i20n.psf: ter-u20n.bdf $(V_PCIBM) $(D_PCIBM)
- $(UCS2VGA) ter-u20n.bdf $(R_PCIBM) $(V_PCIBM) | $(BDF2PSF) -o $@ - $(D_PCIBM)
-
-ter-i20b.psf: ter-u20b.bdf $(V_PCIBM) $(D_PCIBM)
- $(UCS2VGA) ter-u20b.bdf $(R_PCIBM) $(V_PCIBM) | $(BDF2PSF) -o $@ - $(D_PCIBM)
-
-ter-k20n.psf: ter-u20n.bdf $(F_KOI8R) $(D_KOI8R)
- $(UCS2VGA) ter-u20n.bdf $(R_KOI8R) $(F_KOI8R) | $(BDF2PSF) -o $@ - $(D_KOI8R)
-
-ter-k20b.psf: ter-u20b.bdf $(F_KOI8R) $(D_KOI8R)
- $(UCS2VGA) ter-u20b.bdf $(R_KOI8R) $(F_KOI8R) | $(BDF2PSF) -o $@ - $(D_KOI8R)
-
-ter-m20n.psf: ter-u20n.bdf $(V_BGMIK) $(D_BGMIK)
- $(UCS2VGA) ter-u20n.bdf $(R_BGMIK) $(V_BGMIK) | $(BDF2PSF) -o $@ - $(D_BGMIK)
-
-ter-m20b.psf: ter-u20b.bdf $(V_BGMIK) $(D_BGMIK)
- $(UCS2VGA) ter-u20b.bdf $(R_BGMIK) $(V_BGMIK) | $(BDF2PSF) -o $@ - $(D_BGMIK)
-
-ter-p20n.psf: ter-u20n.bdf $(V_PT154) $(D_PT154)
- $(UCS2VGA) ter-u20n.bdf $(R_PT154) $(V_PT154) | $(BDF2PSF) -o $@ - $(D_PT154)
-
-ter-p20b.psf: ter-u20b.bdf $(V_PT154) $(D_PT154)
- $(UCS2VGA) ter-u20b.bdf $(R_PT154) $(V_PT154) | $(BDF2PSF) -o $@ - $(D_PT154)
-
-ter-u20n.psf: ter-u20n.bdf $(F_KOI8U) $(D_KOI8U)
- $(UCS2VGA) ter-u20n.bdf $(R_KOI8U) $(F_KOI8U) | $(BDF2PSF) -o $@ - $(D_KOI8U)
-
-ter-u20b.psf: ter-u20b.bdf $(F_KOI8U) $(D_KOI8U)
- $(UCS2VGA) ter-u20b.bdf $(R_KOI8U) $(F_KOI8U) | $(BDF2PSF) -o $@ - $(D_KOI8U)
-
-ter-v20n.psf: ter-u20n.bdf $(V_XOS42) $(D_XOS42)
- $(UCS2VGA) ter-u20n.bdf $(R_XOS42) $(V_XOS42) | $(BDF2PSF) -o $@ - $(D_XOS42)
-
-ter-v20b.psf: ter-u20b.bdf $(V_XOS42) $(D_XOS42)
- $(UCS2VGA) ter-u20b.bdf $(R_XOS42) $(V_XOS42) | $(BDF2PSF) -o $@ - $(D_XOS42)
-
-ter-122n.psf: ter-u22n.bdf $(V_88591) $(D_88591)
- $(UCS2VGA) ter-u22n.bdf $(R_88591) $(V_88591) | $(BDF2PSF) -o $@ - $(D_88591)
-
-ter-122b.psf: ter-u22b.bdf $(V_88591) $(D_88591)
- $(UCS2VGA) ter-u22b.bdf $(R_88591) $(V_88591) | $(BDF2PSF) -o $@ - $(D_88591)
-
-ter-222n.psf: ter-u22n.bdf $(V_88592) $(D_88592)
- $(UCS2VGA) ter-u22n.bdf $(R_88592) $(V_88592) | $(BDF2PSF) -o $@ - $(D_88592)
-
-ter-222b.psf: ter-u22b.bdf $(V_88592) $(D_88592)
- $(UCS2VGA) ter-u22b.bdf $(R_88592) $(V_88592) | $(BDF2PSF) -o $@ - $(D_88592)
-
-ter-722n.psf: ter-u22n.bdf $(V_88597) $(D_88597)
- $(UCS2VGA) ter-u22n.bdf $(R_88597) $(V_88597) | $(BDF2PSF) -o $@ - $(D_88597)
-
-ter-722b.psf: ter-u22b.bdf $(V_88597) $(D_88597)
- $(UCS2VGA) ter-u22b.bdf $(R_88597) $(V_88597) | $(BDF2PSF) -o $@ - $(D_88597)
-
-ter-922n.psf: ter-u22n.bdf $(V_88599) $(D_88599)
- $(UCS2VGA) ter-u22n.bdf $(R_88599) $(V_88599) | $(BDF2PSF) -o $@ - $(D_88599)
-
-ter-922b.psf: ter-u22b.bdf $(V_88599) $(D_88599)
- $(UCS2VGA) ter-u22b.bdf $(R_88599) $(V_88599) | $(BDF2PSF) -o $@ - $(D_88599)
-
-ter-c22n.psf: ter-u22n.bdf $(V_W1251) $(D_W1251)
- $(UCS2VGA) ter-u22n.bdf $(R_W1251) $(V_W1251) | $(BDF2PSF) -o $@ - $(D_W1251)
-
-ter-c22b.psf: ter-u22b.bdf $(V_W1251) $(D_W1251)
- $(UCS2VGA) ter-u22b.bdf $(R_W1251) $(V_W1251) | $(BDF2PSF) -o $@ - $(D_W1251)
-
-ter-d22n.psf: ter-u22n.bdf $(V_8859D) $(D_8859D)
- $(UCS2VGA) ter-u22n.bdf $(R_8859D) $(V_8859D) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-d22b.psf: ter-u22b.bdf $(V_8859D) $(D_8859D)
- $(UCS2VGA) ter-u22b.bdf $(R_8859D) $(V_8859D) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-g22n.psf: ter-u22n.bdf $(V_8859G) $(D_8859G)
- $(UCS2VGA) ter-u22n.bdf $(R_8859G) $(V_8859G) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-g22b.psf: ter-u22b.bdf $(V_8859G) $(D_8859G)
- $(UCS2VGA) ter-u22b.bdf $(R_8859G) $(V_8859G) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-i22n.psf: ter-u22n.bdf $(V_PCIBM) $(D_PCIBM)
- $(UCS2VGA) ter-u22n.bdf $(R_PCIBM) $(V_PCIBM) | $(BDF2PSF) -o $@ - $(D_PCIBM)
-
-ter-i22b.psf: ter-u22b.bdf $(V_PCIBM) $(D_PCIBM)
- $(UCS2VGA) ter-u22b.bdf $(R_PCIBM) $(V_PCIBM) | $(BDF2PSF) -o $@ - $(D_PCIBM)
-
-ter-k22n.psf: ter-u22n.bdf $(F_KOI8R) $(D_KOI8R)
- $(UCS2VGA) ter-u22n.bdf $(R_KOI8R) $(F_KOI8R) | $(BDF2PSF) -o $@ - $(D_KOI8R)
-
-ter-k22b.psf: ter-u22b.bdf $(F_KOI8R) $(D_KOI8R)
- $(UCS2VGA) ter-u22b.bdf $(R_KOI8R) $(F_KOI8R) | $(BDF2PSF) -o $@ - $(D_KOI8R)
-
-ter-m22n.psf: ter-u22n.bdf $(V_BGMIK) $(D_BGMIK)
- $(UCS2VGA) ter-u22n.bdf $(R_BGMIK) $(V_BGMIK) | $(BDF2PSF) -o $@ - $(D_BGMIK)
-
-ter-m22b.psf: ter-u22b.bdf $(V_BGMIK) $(D_BGMIK)
- $(UCS2VGA) ter-u22b.bdf $(R_BGMIK) $(V_BGMIK) | $(BDF2PSF) -o $@ - $(D_BGMIK)
-
-ter-p22n.psf: ter-u22n.bdf $(V_PT154) $(D_PT154)
- $(UCS2VGA) ter-u22n.bdf $(R_PT154) $(V_PT154) | $(BDF2PSF) -o $@ - $(D_PT154)
-
-ter-p22b.psf: ter-u22b.bdf $(V_PT154) $(D_PT154)
- $(UCS2VGA) ter-u22b.bdf $(R_PT154) $(V_PT154) | $(BDF2PSF) -o $@ - $(D_PT154)
-
-ter-u22n.psf: ter-u22n.bdf $(F_KOI8U) $(D_KOI8U)
- $(UCS2VGA) ter-u22n.bdf $(R_KOI8U) $(F_KOI8U) | $(BDF2PSF) -o $@ - $(D_KOI8U)
-
-ter-u22b.psf: ter-u22b.bdf $(F_KOI8U) $(D_KOI8U)
- $(UCS2VGA) ter-u22b.bdf $(R_KOI8U) $(F_KOI8U) | $(BDF2PSF) -o $@ - $(D_KOI8U)
-
-ter-v22n.psf: ter-u22n.bdf $(V_XOS42) $(D_XOS42)
- $(UCS2VGA) ter-u22n.bdf $(R_XOS42) $(V_XOS42) | $(BDF2PSF) -o $@ - $(D_XOS42)
-
-ter-v22b.psf: ter-u22b.bdf $(V_XOS42) $(D_XOS42)
- $(UCS2VGA) ter-u22b.bdf $(R_XOS42) $(V_XOS42) | $(BDF2PSF) -o $@ - $(D_XOS42)
-
-ter-124n.psf: ter-u24n.bdf $(V_88591) $(D_88591)
- $(UCS2VGA) ter-u24n.bdf $(R_88591) $(V_88591) | $(BDF2PSF) -o $@ - $(D_88591)
-
-ter-124b.psf: ter-u24b.bdf $(V_88591) $(D_88591)
- $(UCS2VGA) ter-u24b.bdf $(R_88591) $(V_88591) | $(BDF2PSF) -o $@ - $(D_88591)
-
-ter-224n.psf: ter-u24n.bdf $(V_88592) $(D_88592)
- $(UCS2VGA) ter-u24n.bdf $(R_88592) $(V_88592) | $(BDF2PSF) -o $@ - $(D_88592)
-
-ter-224b.psf: ter-u24b.bdf $(V_88592) $(D_88592)
- $(UCS2VGA) ter-u24b.bdf $(R_88592) $(V_88592) | $(BDF2PSF) -o $@ - $(D_88592)
-
-ter-724n.psf: ter-u24n.bdf $(V_88597) $(D_88597)
- $(UCS2VGA) ter-u24n.bdf $(R_88597) $(V_88597) | $(BDF2PSF) -o $@ - $(D_88597)
-
-ter-724b.psf: ter-u24b.bdf $(V_88597) $(D_88597)
- $(UCS2VGA) ter-u24b.bdf $(R_88597) $(V_88597) | $(BDF2PSF) -o $@ - $(D_88597)
-
-ter-924n.psf: ter-u24n.bdf $(V_88599) $(D_88599)
- $(UCS2VGA) ter-u24n.bdf $(R_88599) $(V_88599) | $(BDF2PSF) -o $@ - $(D_88599)
-
-ter-924b.psf: ter-u24b.bdf $(V_88599) $(D_88599)
- $(UCS2VGA) ter-u24b.bdf $(R_88599) $(V_88599) | $(BDF2PSF) -o $@ - $(D_88599)
-
-ter-c24n.psf: ter-u24n.bdf $(V_W1251) $(D_W1251)
- $(UCS2VGA) ter-u24n.bdf $(R_W1251) $(V_W1251) | $(BDF2PSF) -o $@ - $(D_W1251)
-
-ter-c24b.psf: ter-u24b.bdf $(V_W1251) $(D_W1251)
- $(UCS2VGA) ter-u24b.bdf $(R_W1251) $(V_W1251) | $(BDF2PSF) -o $@ - $(D_W1251)
-
-ter-d24n.psf: ter-u24n.bdf $(V_8859D) $(D_8859D)
- $(UCS2VGA) ter-u24n.bdf $(R_8859D) $(V_8859D) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-d24b.psf: ter-u24b.bdf $(V_8859D) $(D_8859D)
- $(UCS2VGA) ter-u24b.bdf $(R_8859D) $(V_8859D) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-g24n.psf: ter-u24n.bdf $(V_8859G) $(D_8859G)
- $(UCS2VGA) ter-u24n.bdf $(R_8859G) $(V_8859G) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-g24b.psf: ter-u24b.bdf $(V_8859G) $(D_8859G)
- $(UCS2VGA) ter-u24b.bdf $(R_8859G) $(V_8859G) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-i24n.psf: ter-u24n.bdf $(V_PCIBM) $(D_PCIBM)
- $(UCS2VGA) ter-u24n.bdf $(R_PCIBM) $(V_PCIBM) | $(BDF2PSF) -o $@ - $(D_PCIBM)
-
-ter-i24b.psf: ter-u24b.bdf $(V_PCIBM) $(D_PCIBM)
- $(UCS2VGA) ter-u24b.bdf $(R_PCIBM) $(V_PCIBM) | $(BDF2PSF) -o $@ - $(D_PCIBM)
-
-ter-k24n.psf: ter-u24n.bdf $(F_KOI8R) $(D_KOI8R)
- $(UCS2VGA) ter-u24n.bdf $(R_KOI8R) $(F_KOI8R) | $(BDF2PSF) -o $@ - $(D_KOI8R)
-
-ter-k24b.psf: ter-u24b.bdf $(F_KOI8R) $(D_KOI8R)
- $(UCS2VGA) ter-u24b.bdf $(R_KOI8R) $(F_KOI8R) | $(BDF2PSF) -o $@ - $(D_KOI8R)
-
-ter-m24n.psf: ter-u24n.bdf $(V_BGMIK) $(D_BGMIK)
- $(UCS2VGA) ter-u24n.bdf $(R_BGMIK) $(V_BGMIK) | $(BDF2PSF) -o $@ - $(D_BGMIK)
-
-ter-m24b.psf: ter-u24b.bdf $(V_BGMIK) $(D_BGMIK)
- $(UCS2VGA) ter-u24b.bdf $(R_BGMIK) $(V_BGMIK) | $(BDF2PSF) -o $@ - $(D_BGMIK)
-
-ter-p24n.psf: ter-u24n.bdf $(V_PT154) $(D_PT154)
- $(UCS2VGA) ter-u24n.bdf $(R_PT154) $(V_PT154) | $(BDF2PSF) -o $@ - $(D_PT154)
-
-ter-p24b.psf: ter-u24b.bdf $(V_PT154) $(D_PT154)
- $(UCS2VGA) ter-u24b.bdf $(R_PT154) $(V_PT154) | $(BDF2PSF) -o $@ - $(D_PT154)
-
-ter-u24n.psf: ter-u24n.bdf $(F_KOI8U) $(D_KOI8U)
- $(UCS2VGA) ter-u24n.bdf $(R_KOI8U) $(F_KOI8U) | $(BDF2PSF) -o $@ - $(D_KOI8U)
-
-ter-u24b.psf: ter-u24b.bdf $(F_KOI8U) $(D_KOI8U)
- $(UCS2VGA) ter-u24b.bdf $(R_KOI8U) $(F_KOI8U) | $(BDF2PSF) -o $@ - $(D_KOI8U)
-
-ter-v24n.psf: ter-u24n.bdf $(V_XOS42) $(D_XOS42)
- $(UCS2VGA) ter-u24n.bdf $(R_XOS42) $(V_XOS42) | $(BDF2PSF) -o $@ - $(D_XOS42)
-
-ter-v24b.psf: ter-u24b.bdf $(V_XOS42) $(D_XOS42)
- $(UCS2VGA) ter-u24b.bdf $(R_XOS42) $(V_XOS42) | $(BDF2PSF) -o $@ - $(D_XOS42)
-
-ter-128n.psf: ter-u28n.bdf $(V_88591) $(D_88591)
- $(UCS2VGA) ter-u28n.bdf $(R_88591) $(V_88591) | $(BDF2PSF) -o $@ - $(D_88591)
-
-ter-128b.psf: ter-u28b.bdf $(V_88591) $(D_88591)
- $(UCS2VGA) ter-u28b.bdf $(R_88591) $(V_88591) | $(BDF2PSF) -o $@ - $(D_88591)
-
-ter-228n.psf: ter-u28n.bdf $(V_88592) $(D_88592)
- $(UCS2VGA) ter-u28n.bdf $(R_88592) $(V_88592) | $(BDF2PSF) -o $@ - $(D_88592)
-
-ter-228b.psf: ter-u28b.bdf $(V_88592) $(D_88592)
- $(UCS2VGA) ter-u28b.bdf $(R_88592) $(V_88592) | $(BDF2PSF) -o $@ - $(D_88592)
-
-ter-728n.psf: ter-u28n.bdf $(V_88597) $(D_88597)
- $(UCS2VGA) ter-u28n.bdf $(R_88597) $(V_88597) | $(BDF2PSF) -o $@ - $(D_88597)
-
-ter-728b.psf: ter-u28b.bdf $(V_88597) $(D_88597)
- $(UCS2VGA) ter-u28b.bdf $(R_88597) $(V_88597) | $(BDF2PSF) -o $@ - $(D_88597)
-
-ter-928n.psf: ter-u28n.bdf $(V_88599) $(D_88599)
- $(UCS2VGA) ter-u28n.bdf $(R_88599) $(V_88599) | $(BDF2PSF) -o $@ - $(D_88599)
-
-ter-928b.psf: ter-u28b.bdf $(V_88599) $(D_88599)
- $(UCS2VGA) ter-u28b.bdf $(R_88599) $(V_88599) | $(BDF2PSF) -o $@ - $(D_88599)
-
-ter-c28n.psf: ter-u28n.bdf $(V_W1251) $(D_W1251)
- $(UCS2VGA) ter-u28n.bdf $(R_W1251) $(V_W1251) | $(BDF2PSF) -o $@ - $(D_W1251)
-
-ter-c28b.psf: ter-u28b.bdf $(V_W1251) $(D_W1251)
- $(UCS2VGA) ter-u28b.bdf $(R_W1251) $(V_W1251) | $(BDF2PSF) -o $@ - $(D_W1251)
-
-ter-d28n.psf: ter-u28n.bdf $(V_8859D) $(D_8859D)
- $(UCS2VGA) ter-u28n.bdf $(R_8859D) $(V_8859D) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-d28b.psf: ter-u28b.bdf $(V_8859D) $(D_8859D)
- $(UCS2VGA) ter-u28b.bdf $(R_8859D) $(V_8859D) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-g28n.psf: ter-u28n.bdf $(V_8859G) $(D_8859G)
- $(UCS2VGA) ter-u28n.bdf $(R_8859G) $(V_8859G) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-g28b.psf: ter-u28b.bdf $(V_8859G) $(D_8859G)
- $(UCS2VGA) ter-u28b.bdf $(R_8859G) $(V_8859G) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-i28n.psf: ter-u28n.bdf $(V_PCIBM) $(D_PCIBM)
- $(UCS2VGA) ter-u28n.bdf $(R_PCIBM) $(V_PCIBM) | $(BDF2PSF) -o $@ - $(D_PCIBM)
-
-ter-i28b.psf: ter-u28b.bdf $(V_PCIBM) $(D_PCIBM)
- $(UCS2VGA) ter-u28b.bdf $(R_PCIBM) $(V_PCIBM) | $(BDF2PSF) -o $@ - $(D_PCIBM)
-
-ter-k28n.psf: ter-u28n.bdf $(F_KOI8R) $(D_KOI8R)
- $(UCS2VGA) ter-u28n.bdf $(R_KOI8R) $(F_KOI8R) | $(BDF2PSF) -o $@ - $(D_KOI8R)
-
-ter-k28b.psf: ter-u28b.bdf $(F_KOI8R) $(D_KOI8R)
- $(UCS2VGA) ter-u28b.bdf $(R_KOI8R) $(F_KOI8R) | $(BDF2PSF) -o $@ - $(D_KOI8R)
-
-ter-m28n.psf: ter-u28n.bdf $(V_BGMIK) $(D_BGMIK)
- $(UCS2VGA) ter-u28n.bdf $(R_BGMIK) $(V_BGMIK) | $(BDF2PSF) -o $@ - $(D_BGMIK)
-
-ter-m28b.psf: ter-u28b.bdf $(V_BGMIK) $(D_BGMIK)
- $(UCS2VGA) ter-u28b.bdf $(R_BGMIK) $(V_BGMIK) | $(BDF2PSF) -o $@ - $(D_BGMIK)
-
-ter-p28n.psf: ter-u28n.bdf $(V_PT154) $(D_PT154)
- $(UCS2VGA) ter-u28n.bdf $(R_PT154) $(V_PT154) | $(BDF2PSF) -o $@ - $(D_PT154)
-
-ter-p28b.psf: ter-u28b.bdf $(V_PT154) $(D_PT154)
- $(UCS2VGA) ter-u28b.bdf $(R_PT154) $(V_PT154) | $(BDF2PSF) -o $@ - $(D_PT154)
-
-ter-u28n.psf: ter-u28n.bdf $(F_KOI8U) $(D_KOI8U)
- $(UCS2VGA) ter-u28n.bdf $(R_KOI8U) $(F_KOI8U) | $(BDF2PSF) -o $@ - $(D_KOI8U)
-
-ter-u28b.psf: ter-u28b.bdf $(F_KOI8U) $(D_KOI8U)
- $(UCS2VGA) ter-u28b.bdf $(R_KOI8U) $(F_KOI8U) | $(BDF2PSF) -o $@ - $(D_KOI8U)
-
-ter-v28n.psf: ter-u28n.bdf $(V_XOS42) $(D_XOS42)
- $(UCS2VGA) ter-u28n.bdf $(R_XOS42) $(V_XOS42) | $(BDF2PSF) -o $@ - $(D_XOS42)
-
-ter-v28b.psf: ter-u28b.bdf $(V_XOS42) $(D_XOS42)
- $(UCS2VGA) ter-u28b.bdf $(R_XOS42) $(V_XOS42) | $(BDF2PSF) -o $@ - $(D_XOS42)
-
-ter-132n.psf: ter-u32n.bdf $(V_88591) $(D_88591)
- $(UCS2VGA) ter-u32n.bdf $(R_88591) $(V_88591) | $(BDF2PSF) -o $@ - $(D_88591)
-
-ter-132b.psf: ter-u32b.bdf $(V_88591) $(D_88591)
- $(UCS2VGA) ter-u32b.bdf $(R_88591) $(V_88591) | $(BDF2PSF) -o $@ - $(D_88591)
-
-ter-232n.psf: ter-u32n.bdf $(V_88592) $(D_88592)
- $(UCS2VGA) ter-u32n.bdf $(R_88592) $(V_88592) | $(BDF2PSF) -o $@ - $(D_88592)
-
-ter-232b.psf: ter-u32b.bdf $(V_88592) $(D_88592)
- $(UCS2VGA) ter-u32b.bdf $(R_88592) $(V_88592) | $(BDF2PSF) -o $@ - $(D_88592)
-
-ter-732n.psf: ter-u32n.bdf $(V_88597) $(D_88597)
- $(UCS2VGA) ter-u32n.bdf $(R_88597) $(V_88597) | $(BDF2PSF) -o $@ - $(D_88597)
-
-ter-732b.psf: ter-u32b.bdf $(V_88597) $(D_88597)
- $(UCS2VGA) ter-u32b.bdf $(R_88597) $(V_88597) | $(BDF2PSF) -o $@ - $(D_88597)
-
-ter-932n.psf: ter-u32n.bdf $(V_88599) $(D_88599)
- $(UCS2VGA) ter-u32n.bdf $(R_88599) $(V_88599) | $(BDF2PSF) -o $@ - $(D_88599)
-
-ter-932b.psf: ter-u32b.bdf $(V_88599) $(D_88599)
- $(UCS2VGA) ter-u32b.bdf $(R_88599) $(V_88599) | $(BDF2PSF) -o $@ - $(D_88599)
-
-ter-c32n.psf: ter-u32n.bdf $(V_W1251) $(D_W1251)
- $(UCS2VGA) ter-u32n.bdf $(R_W1251) $(V_W1251) | $(BDF2PSF) -o $@ - $(D_W1251)
-
-ter-c32b.psf: ter-u32b.bdf $(V_W1251) $(D_W1251)
- $(UCS2VGA) ter-u32b.bdf $(R_W1251) $(V_W1251) | $(BDF2PSF) -o $@ - $(D_W1251)
-
-ter-d32n.psf: ter-u32n.bdf $(V_8859D) $(D_8859D)
- $(UCS2VGA) ter-u32n.bdf $(R_8859D) $(V_8859D) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-d32b.psf: ter-u32b.bdf $(V_8859D) $(D_8859D)
- $(UCS2VGA) ter-u32b.bdf $(R_8859D) $(V_8859D) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-g32n.psf: ter-u32n.bdf $(V_8859G) $(D_8859G)
- $(UCS2VGA) ter-u32n.bdf $(R_8859G) $(V_8859G) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-g32b.psf: ter-u32b.bdf $(V_8859G) $(D_8859G)
- $(UCS2VGA) ter-u32b.bdf $(R_8859G) $(V_8859G) | $(BDF2PSF) -o $@ - $(D_8859G)
-
-ter-i32n.psf: ter-u32n.bdf $(V_PCIBM) $(D_PCIBM)
- $(UCS2VGA) ter-u32n.bdf $(R_PCIBM) $(V_PCIBM) | $(BDF2PSF) -o $@ - $(D_PCIBM)
-
-ter-i32b.psf: ter-u32b.bdf $(V_PCIBM) $(D_PCIBM)
- $(UCS2VGA) ter-u32b.bdf $(R_PCIBM) $(V_PCIBM) | $(BDF2PSF) -o $@ - $(D_PCIBM)
-
-ter-k32n.psf: ter-u32n.bdf $(F_KOI8R) $(D_KOI8R)
- $(UCS2VGA) ter-u32n.bdf $(R_KOI8R) $(F_KOI8R) | $(BDF2PSF) -o $@ - $(D_KOI8R)
-
-ter-k32b.psf: ter-u32b.bdf $(F_KOI8R) $(D_KOI8R)
- $(UCS2VGA) ter-u32b.bdf $(R_KOI8R) $(F_KOI8R) | $(BDF2PSF) -o $@ - $(D_KOI8R)
-
-ter-m32n.psf: ter-u32n.bdf $(V_BGMIK) $(D_BGMIK)
- $(UCS2VGA) ter-u32n.bdf $(R_BGMIK) $(V_BGMIK) | $(BDF2PSF) -o $@ - $(D_BGMIK)
-
-ter-m32b.psf: ter-u32b.bdf $(V_BGMIK) $(D_BGMIK)
- $(UCS2VGA) ter-u32b.bdf $(R_BGMIK) $(V_BGMIK) | $(BDF2PSF) -o $@ - $(D_BGMIK)
-
-ter-p32n.psf: ter-u32n.bdf $(V_PT154) $(D_PT154)
- $(UCS2VGA) ter-u32n.bdf $(R_PT154) $(V_PT154) | $(BDF2PSF) -o $@ - $(D_PT154)
-
-ter-p32b.psf: ter-u32b.bdf $(V_PT154) $(D_PT154)
- $(UCS2VGA) ter-u32b.bdf $(R_PT154) $(V_PT154) | $(BDF2PSF) -o $@ - $(D_PT154)
-
-ter-u32n.psf: ter-u32n.bdf $(F_KOI8U) $(D_KOI8U)
- $(UCS2VGA) ter-u32n.bdf $(R_KOI8U) $(F_KOI8U) | $(BDF2PSF) -o $@ - $(D_KOI8U)
-
-ter-u32b.psf: ter-u32b.bdf $(F_KOI8U) $(D_KOI8U)
- $(UCS2VGA) ter-u32b.bdf $(R_KOI8U) $(F_KOI8U) | $(BDF2PSF) -o $@ - $(D_KOI8U)
-
-ter-v32n.psf: ter-u32n.bdf $(V_XOS42) $(D_XOS42)
- $(UCS2VGA) ter-u32n.bdf $(R_XOS42) $(V_XOS42) | $(BDF2PSF) -o $@ - $(D_XOS42)
-
-ter-v32b.psf: ter-u32b.bdf $(V_XOS42) $(D_XOS42)
- $(UCS2VGA) ter-u32b.bdf $(R_XOS42) $(V_XOS42) | $(BDF2PSF) -o $@ - $(D_XOS42)
-
-install-psf: $(PSF)
- mkdir -p $(DESTDIR)$(psfdir)
- for i in $(PSF) ; do gzip -c $$i > $(DESTDIR)$(psfdir)/$$i.gz ; done
-
-uninstall-psf:
- for i in $(PSF) ; do rm -f $(DESTDIR)$(psfdir)/$$i.gz ; done
-
-T_W1252 = uni/cntrl.uni uni/ascii-h.uni uni/win-1252.uni
-T_W1250 = uni/cntrl.uni uni/ascii-h.uni uni/win-1250.uni
-T_W1253 = uni/cntrl.uni uni/ascii-h.uni uni/win-1253.uni
-T_W1254 = uni/cntrl.uni uni/ascii-h.uni uni/win-1254.uni
-T_W1251 = uni/cntrl.uni uni/ascii-h.uni uni/x11-1251.uni uni/win-1251.uni
-T_W1257 = uni/cntrl.uni uni/ascii-h.uni uni/x11-1257.uni uni/win-1257.uni
-T_8859G = uni/cntrl.uni uni/ascii-h.uni uni/empty.uni uni/8859-16.uni
-T_PCIBM = uni/cntrl.uni uni/ascii-h.uni uni/ibm-437.uni
-T_KOI8R = uni/cntrl.uni uni/ascii-h.uni uni/koi8-r.uni
-T_KOI8U = uni/cntrl.uni uni/ascii-h.uni uni/koi8-u.uni
-T_BGMIK = uni/cntrl.uni uni/ascii-h.uni uni/bg-mik.uni
-T_PT154 = uni/cntrl.uni uni/ascii-h.uni uni/pt-154.uni
-T_PT254 = uni/cntrl.uni uni/ascii-h.uni uni/pt-254.uni
-
-cp1252.txt: $(T_W1252)
- cat $(T_W1252) | $(UNI2TXT) > $@
-
-cp1250.txt: $(T_W1250)
- cat $(T_W1250) | $(UNI2TXT) > $@
-
-cp1253.txt: $(T_W1253)
- cat $(T_W1253) | $(UNI2TXT) > $@
-
-cp1254.txt: $(T_W1254)
- cat $(T_W1254) | $(UNI2TXT) > $@
-
-cp1251.txt: $(T_W1251)
- cat $(T_W1251) | $(UNI2TXT) > $@
-
-cp1257.txt: $(T_W1257)
- cat $(T_W1257) | $(UNI2TXT) > $@
-
-8859-16.txt: $(T_8859G)
- cat $(T_8859G) | $(UNI2TXT) > $@
-
-cp437.txt: $(T_PCIBM)
- cat $(T_PCIBM) | $(UNI2TXT) > $@
-
-koi8-r.txt: $(T_KOI8R)
- cat $(T_KOI8R) | $(UNI2TXT) > $@
-
-koi8-u.txt: $(T_KOI8U)
- cat $(T_KOI8U) | $(UNI2TXT) > $@
-
-mik.txt: $(T_BGMIK)
- cat $(T_BGMIK) | $(UNI2TXT) > $@
-
-pt154.txt: $(T_PT154)
- cat $(T_PT154) | $(UNI2TXT) > $@
-
-pt254.txt: $(T_PT254)
- cat $(T_PT254) | $(UNI2TXT) > $@
-
-TESTDIR =
-acmdir = $(prefix)/share/consoletrans
-
-install-acm: $(TXT)
- mkdir -p $(DESTDIR)$(acmdir)
- for i in $(TXT) ; do \
- a=`echo $$i | sed -e "s/\.txt$$/.acm.gz/"` ; \
- if test ! -f $(TESTDIR)$(acmdir)/$$a ; then \
- tail -n 128 $$i | grep -v FFFF | gzip > $(DESTDIR)$(acmdir)/$$a ; \
- fi ; \
- done
-
-unidir = $(prefix)/share/kbd/consoletrans
-
-install-uni: $(TXT)
- mkdir -p $(DESTDIR)$(unidir)
- for i in $(TXT) ; do \
- u=`echo $$i | sed -e "s/\.txt$$/_to_uni.trans/"` ; \
- if test ! -f $(TESTDIR)$(unidir)/$$u ; then \
- sed -e "s/FFFF/FFFD/" $$i > $(DESTDIR)$(unidir)/$$u ; \
- fi ; \
- done
-
-ref = $(psfdir)/README.terminus
-
-install-ref: README
- sed -e"/^2\.4/,/^2\.5/p" -n README | grep -v "^2\." > $(DESTDIR)$(ref)
-
-uninstall-ref:
- rm -f $(DESTDIR)$(ref)
-
-B_88591 = uni/cntrl.uni uni/ascii-h.uni uni/win-1252.uni
-B_88592 = uni/cntrl.uni uni/ascii-h.uni uni/empty.uni uni/8859-2.uni
-B_88595 = uni/cntrl.uni uni/ascii-h.uni uni/empty.uni uni/8859-5.uni
-B_88597 = uni/cntrl.uni uni/ascii-h.uni uni/empty.uni uni/8859-7.uni
-B_88599 = uni/cntrl.uni uni/ascii-h.uni uni/win-1254.uni
-B_W1251 = uni/cntrl.uni uni/ascii-h.uni uni/x11-1251.uni uni/win-1251.uni
-B_8859D = uni/cntrl.uni uni/ascii-h.uni uni/x11-1257.uni uni/8859-13.uni
-B_8859F = uni/cntrl.uni uni/ascii-h.uni uni/empty.uni uni/8859-15.uni
-B_8859G = uni/cntrl.uni uni/ascii-h.uni uni/empty.uni uni/8859-16.uni
-B_PCIBM = uni/cntrl.uni uni/ascii-h.uni uni/ibm-437.uni
-B_KOI8R = uni/cntrl.uni uni/ascii-h.uni uni/koi8-r.uni
-B_KOI8U = uni/cntrl.uni uni/ascii-h.uni uni/koi8-u.uni
-B_PT154 = uni/cntrl.uni uni/ascii-h.uni uni/pt-154.uni
-
-ter-114n.raw: ter-u14n.bdf $(B_88591)
- $(UCS2VGA) ter-u14n.bdf $(R_88591) $(B_88591) | $(BDF2RAW) -o $@
-
-ter-114b.raw: ter-u14v.bdf $(B_88591)
- $(UCS2VGA) ter-u14v.bdf $(R_88591) $(B_88591) | $(BDF2RAW) -o $@
-
-ter-114f.raw: ter-u14b.bdf $(B_88591)
- $(UCS2VGA) ter-u14b.bdf $(R_88591) $(B_88591) | $(BDF2RAW) -o $@
-
-ter-214n.raw: ter-u14n.bdf $(B_88592)
- $(UCS2VGA) ter-u14n.bdf $(R_88592) $(B_88592) | $(BDF2RAW) -o $@
-
-ter-214b.raw: ter-u14v.bdf $(B_88592)
- $(UCS2VGA) ter-u14v.bdf $(R_88592) $(B_88592) | $(BDF2RAW) -o $@
-
-ter-214f.raw: ter-u14b.bdf $(B_88592)
- $(UCS2VGA) ter-u14b.bdf $(R_88592) $(B_88592) | $(BDF2RAW) -o $@
-
-ter-514n.raw: ter-u14n.bdf $(B_88595)
- $(UCS2VGA) ter-u14n.bdf $(R_88595) $(B_88595) | $(BDF2RAW) -o $@
-
-ter-514b.raw: ter-u14v.bdf $(B_88595)
- $(UCS2VGA) ter-u14v.bdf $(R_88595) $(B_88595) | $(BDF2RAW) -o $@
-
-ter-514f.raw: ter-u14b.bdf $(B_88595)
- $(UCS2VGA) ter-u14b.bdf $(R_88595) $(B_88595) | $(BDF2RAW) -o $@
-
-ter-714n.raw: ter-u14n.bdf $(B_88597)
- $(UCS2VGA) ter-u14n.bdf $(R_88597) $(B_88597) | $(BDF2RAW) -o $@
-
-ter-714b.raw: ter-u14v.bdf $(B_88597)
- $(UCS2VGA) ter-u14v.bdf $(R_88597) $(B_88597) | $(BDF2RAW) -o $@
-
-ter-714f.raw: ter-u14b.bdf $(B_88597)
- $(UCS2VGA) ter-u14b.bdf $(R_88597) $(B_88597) | $(BDF2RAW) -o $@
-
-ter-914n.raw: ter-u14n.bdf $(B_88599)
- $(UCS2VGA) ter-u14n.bdf $(R_88599) $(B_88599) | $(BDF2RAW) -o $@
-
-ter-914b.raw: ter-u14v.bdf $(B_88599)
- $(UCS2VGA) ter-u14v.bdf $(R_88599) $(B_88599) | $(BDF2RAW) -o $@
-
-ter-914f.raw: ter-u14b.bdf $(B_88599)
- $(UCS2VGA) ter-u14b.bdf $(R_88599) $(B_88599) | $(BDF2RAW) -o $@
-
-ter-c14n.raw: ter-u14n.bdf $(B_W1251)
- $(UCS2VGA) ter-u14n.bdf $(R_W1251) $(B_W1251) | $(BDF2RAW) -o $@
-
-ter-c14b.raw: ter-u14v.bdf $(B_W1251)
- $(UCS2VGA) ter-u14v.bdf $(R_W1251) $(B_W1251) | $(BDF2RAW) -o $@
-
-ter-c14f.raw: ter-u14b.bdf $(B_W1251)
- $(UCS2VGA) ter-u14b.bdf $(R_W1251) $(B_W1251) | $(BDF2RAW) -o $@
-
-ter-d14n.raw: ter-u14n.bdf $(B_8859D)
- $(UCS2VGA) ter-u14n.bdf $(R_8859D) $(B_8859D) | $(BDF2RAW) -o $@
-
-ter-d14b.raw: ter-u14v.bdf $(B_8859D)
- $(UCS2VGA) ter-u14v.bdf $(R_8859D) $(B_8859D) | $(BDF2RAW) -o $@
-
-ter-d14f.raw: ter-u14b.bdf $(B_8859D)
- $(UCS2VGA) ter-u14b.bdf $(R_8859D) $(B_8859D) | $(BDF2RAW) -o $@
-
-ter-f14n.raw: ter-u14n.bdf $(B_8859F)
- $(UCS2VGA) ter-u14n.bdf $(R_8859F) $(B_8859F) | $(BDF2RAW) -o $@
-
-ter-f14b.raw: ter-u14v.bdf $(B_8859F)
- $(UCS2VGA) ter-u14v.bdf $(R_8859F) $(B_8859F) | $(BDF2RAW) -o $@
-
-ter-f14f.raw: ter-u14b.bdf $(B_8859F)
- $(UCS2VGA) ter-u14b.bdf $(R_8859F) $(B_8859F) | $(BDF2RAW) -o $@
-
-ter-g14n.raw: ter-u14n.bdf $(B_8859G)
- $(UCS2VGA) ter-u14n.bdf $(R_8859G) $(B_8859G) | $(BDF2RAW) -o $@
-
-ter-g14b.raw: ter-u14v.bdf $(B_8859G)
- $(UCS2VGA) ter-u14v.bdf $(R_8859G) $(B_8859G) | $(BDF2RAW) -o $@
-
-ter-g14f.raw: ter-u14b.bdf $(B_8859G)
- $(UCS2VGA) ter-u14b.bdf $(R_8859G) $(B_8859G) | $(BDF2RAW) -o $@
-
-ter-i14n.raw: ter-u14n.bdf $(B_PCIBM)
- $(UCS2VGA) ter-u14n.bdf $(R_PCIBM) $(B_PCIBM) | $(BDF2RAW) -o $@
-
-ter-i14b.raw: ter-u14v.bdf $(B_PCIBM)
- $(UCS2VGA) ter-u14v.bdf $(R_PCIBM) $(B_PCIBM) | $(BDF2RAW) -o $@
-
-ter-i14f.raw: ter-u14b.bdf $(B_PCIBM)
- $(UCS2VGA) ter-u14b.bdf $(R_PCIBM) $(B_PCIBM) | $(BDF2RAW) -o $@
-
-ter-k14n.raw: ter-u14n.bdf $(B_KOI8R)
- $(UCS2VGA) ter-u14n.bdf $(R_KOI8R) $(B_KOI8R) | $(BDF2RAW) -o $@
-
-ter-k14b.raw: ter-u14v.bdf $(B_KOI8R)
- $(UCS2VGA) ter-u14v.bdf $(R_KOI8R) $(B_KOI8R) | $(BDF2RAW) -o $@
-
-ter-k14f.raw: ter-u14b.bdf $(B_KOI8R)
- $(UCS2VGA) ter-u14b.bdf $(R_KOI8R) $(B_KOI8R) | $(BDF2RAW) -o $@
-
-ter-p14n.raw: ter-u14n.bdf $(B_PT154)
- $(UCS2VGA) ter-u14n.bdf $(R_PT154) $(B_PT154) | $(BDF2RAW) -o $@
-
-ter-p14b.raw: ter-u14v.bdf $(B_PT154)
- $(UCS2VGA) ter-u14v.bdf $(R_PT154) $(B_PT154) | $(BDF2RAW) -o $@
-
-ter-p14f.raw: ter-u14b.bdf $(B_PT154)
- $(UCS2VGA) ter-u14b.bdf $(R_PT154) $(B_PT154) | $(BDF2RAW) -o $@
-
-ter-u14n.raw: ter-u14n.bdf $(B_KOI8U)
- $(UCS2VGA) ter-u14n.bdf $(R_KOI8U) $(B_KOI8U) | $(BDF2RAW) -o $@
-
-ter-u14b.raw: ter-u14v.bdf $(B_KOI8U)
- $(UCS2VGA) ter-u14v.bdf $(R_KOI8U) $(B_KOI8U) | $(BDF2RAW) -o $@
-
-ter-u14f.raw: ter-u14b.bdf $(B_KOI8U)
- $(UCS2VGA) ter-u14b.bdf $(R_KOI8U) $(B_KOI8U) | $(BDF2RAW) -o $@
-
-ter-116n.raw: ter-u16n.bdf $(B_88591)
- $(UCS2VGA) ter-u16n.bdf $(R_88591) $(B_88591) | $(BDF2RAW) -o $@
-
-ter-116b.raw: ter-u16v.bdf $(B_88591)
- $(UCS2VGA) ter-u16v.bdf $(R_88591) $(B_88591) | $(BDF2RAW) -o $@
-
-ter-116f.raw: ter-u16b.bdf $(B_88591)
- $(UCS2VGA) ter-u16b.bdf $(R_88591) $(B_88591) | $(BDF2RAW) -o $@
-
-ter-216n.raw: ter-u16n.bdf $(B_88592)
- $(UCS2VGA) ter-u16n.bdf $(R_88592) $(B_88592) | $(BDF2RAW) -o $@
-
-ter-216b.raw: ter-u16v.bdf $(B_88592)
- $(UCS2VGA) ter-u16v.bdf $(R_88592) $(B_88592) | $(BDF2RAW) -o $@
-
-ter-216f.raw: ter-u16b.bdf $(B_88592)
- $(UCS2VGA) ter-u16b.bdf $(R_88592) $(B_88592) | $(BDF2RAW) -o $@
-
-ter-516n.raw: ter-u16n.bdf $(B_88595)
- $(UCS2VGA) ter-u16n.bdf $(R_88595) $(B_88595) | $(BDF2RAW) -o $@
-
-ter-516b.raw: ter-u16v.bdf $(B_88595)
- $(UCS2VGA) ter-u16v.bdf $(R_88595) $(B_88595) | $(BDF2RAW) -o $@
-
-ter-516f.raw: ter-u16b.bdf $(B_88595)
- $(UCS2VGA) ter-u16b.bdf $(R_88595) $(B_88595) | $(BDF2RAW) -o $@
-
-ter-716n.raw: ter-u16n.bdf $(B_88597)
- $(UCS2VGA) ter-u16n.bdf $(R_88597) $(B_88597) | $(BDF2RAW) -o $@
-
-ter-716b.raw: ter-u16v.bdf $(B_88597)
- $(UCS2VGA) ter-u16v.bdf $(R_88597) $(B_88597) | $(BDF2RAW) -o $@
-
-ter-716f.raw: ter-u16b.bdf $(B_88597)
- $(UCS2VGA) ter-u16b.bdf $(R_88597) $(B_88597) | $(BDF2RAW) -o $@
-
-ter-916n.raw: ter-u16n.bdf $(B_88599)
- $(UCS2VGA) ter-u16n.bdf $(R_88599) $(B_88599) | $(BDF2RAW) -o $@
-
-ter-916b.raw: ter-u16v.bdf $(B_88599)
- $(UCS2VGA) ter-u16v.bdf $(R_88599) $(B_88599) | $(BDF2RAW) -o $@
-
-ter-916f.raw: ter-u16b.bdf $(B_88599)
- $(UCS2VGA) ter-u16b.bdf $(R_88599) $(B_88599) | $(BDF2RAW) -o $@
-
-ter-c16n.raw: ter-u16n.bdf $(B_W1251)
- $(UCS2VGA) ter-u16n.bdf $(R_W1251) $(B_W1251) | $(BDF2RAW) -o $@
-
-ter-c16b.raw: ter-u16v.bdf $(B_W1251)
- $(UCS2VGA) ter-u16v.bdf $(R_W1251) $(B_W1251) | $(BDF2RAW) -o $@
-
-ter-c16f.raw: ter-u16b.bdf $(B_W1251)
- $(UCS2VGA) ter-u16b.bdf $(R_W1251) $(B_W1251) | $(BDF2RAW) -o $@
-
-ter-d16n.raw: ter-u16n.bdf $(B_8859D)
- $(UCS2VGA) ter-u16n.bdf $(R_8859D) $(B_8859D) | $(BDF2RAW) -o $@
-
-ter-d16b.raw: ter-u16v.bdf $(B_8859D)
- $(UCS2VGA) ter-u16v.bdf $(R_8859D) $(B_8859D) | $(BDF2RAW) -o $@
-
-ter-d16f.raw: ter-u16b.bdf $(B_8859D)
- $(UCS2VGA) ter-u16b.bdf $(R_8859D) $(B_8859D) | $(BDF2RAW) -o $@
-
-ter-f16n.raw: ter-u16n.bdf $(B_8859F)
- $(UCS2VGA) ter-u16n.bdf $(R_8859F) $(B_8859F) | $(BDF2RAW) -o $@
-
-ter-f16b.raw: ter-u16v.bdf $(B_8859F)
- $(UCS2VGA) ter-u16v.bdf $(R_8859F) $(B_8859F) | $(BDF2RAW) -o $@
-
-ter-f16f.raw: ter-u16b.bdf $(B_8859F)
- $(UCS2VGA) ter-u16b.bdf $(R_8859F) $(B_8859F) | $(BDF2RAW) -o $@
-
-ter-g16n.raw: ter-u16n.bdf $(B_8859G)
- $(UCS2VGA) ter-u16n.bdf $(R_8859G) $(B_8859G) | $(BDF2RAW) -o $@
-
-ter-g16b.raw: ter-u16v.bdf $(B_8859G)
- $(UCS2VGA) ter-u16v.bdf $(R_8859G) $(B_8859G) | $(BDF2RAW) -o $@
-
-ter-g16f.raw: ter-u16b.bdf $(B_8859G)
- $(UCS2VGA) ter-u16b.bdf $(R_8859G) $(B_8859G) | $(BDF2RAW) -o $@
-
-ter-i16n.raw: ter-u16n.bdf $(B_PCIBM)
- $(UCS2VGA) ter-u16n.bdf $(R_PCIBM) $(B_PCIBM) | $(BDF2RAW) -o $@
-
-ter-i16b.raw: ter-u16v.bdf $(B_PCIBM)
- $(UCS2VGA) ter-u16v.bdf $(R_PCIBM) $(B_PCIBM) | $(BDF2RAW) -o $@
-
-ter-i16f.raw: ter-u16b.bdf $(B_PCIBM)
- $(UCS2VGA) ter-u16b.bdf $(R_PCIBM) $(B_PCIBM) | $(BDF2RAW) -o $@
-
-ter-k16n.raw: ter-u16n.bdf $(B_KOI8R)
- $(UCS2VGA) ter-u16n.bdf $(R_KOI8R) $(B_KOI8R) | $(BDF2RAW) -o $@
-
-ter-k16b.raw: ter-u16v.bdf $(B_KOI8R)
- $(UCS2VGA) ter-u16v.bdf $(R_KOI8R) $(B_KOI8R) | $(BDF2RAW) -o $@
-
-ter-k16f.raw: ter-u16b.bdf $(B_KOI8R)
- $(UCS2VGA) ter-u16b.bdf $(R_KOI8R) $(B_KOI8R) | $(BDF2RAW) -o $@
-
-ter-p16n.raw: ter-u16n.bdf $(B_PT154)
- $(UCS2VGA) ter-u16n.bdf $(R_PT154) $(B_PT154) | $(BDF2RAW) -o $@
-
-ter-p16b.raw: ter-u16v.bdf $(B_PT154)
- $(UCS2VGA) ter-u16v.bdf $(R_PT154) $(B_PT154) | $(BDF2RAW) -o $@
-
-ter-p16f.raw: ter-u16b.bdf $(B_PT154)
- $(UCS2VGA) ter-u16b.bdf $(R_PT154) $(B_PT154) | $(BDF2RAW) -o $@
-
-ter-u16n.raw: ter-u16n.bdf $(B_KOI8U)
- $(UCS2VGA) ter-u16n.bdf $(R_KOI8U) $(B_KOI8U) | $(BDF2RAW) -o $@
-
-ter-u16b.raw: ter-u16v.bdf $(B_KOI8U)
- $(UCS2VGA) ter-u16v.bdf $(R_KOI8U) $(B_KOI8U) | $(BDF2RAW) -o $@
-
-ter-u16f.raw: ter-u16b.bdf $(B_KOI8U)
- $(UCS2VGA) ter-u16b.bdf $(R_KOI8U) $(B_KOI8U) | $(BDF2RAW) -o $@
-
-rawdir = $(prefix)/share/misc/pcvtfonts
-
-RAW_14 = $(RAW_14N) $(RAW_14B) $(RAW_14F)
-RAW_16 = $(RAW_16N) $(RAW_16B) $(RAW_16F)
-
-point14 = echo $$i | sed -e "s/14//" -e "s/raw$$/814/"
-point16 = echo $$i | sed -e "s/16//" -e "s/raw$$/816/"
-
-install.raw: $(RAW)
- mkdir -p $(DESTDIR)$(rawdir)
- for i in $(RAW_14) ; do cp -f $$i $(DESTDIR)$(rawdir)/`$(point14)` ; done
- for i in $(RAW_16) ; do cp -f $$i $(DESTDIR)$(rawdir)/`$(point16)` ; done
-
-uninstall.raw:
- for i in $(RAW_14) ; do rm -f $(DESTDIR)$(rawdir)/`$(point14)` ; done
- for i in $(RAW_16) ; do rm -f $(DESTDIR)$(rawdir)/`$(point16)` ; done
-
-minus14 = echo $$i | sed -e "s/14//" -e "s/\.raw$$/-8x14/"
-minus16 = echo $$i | sed -e "s/16//" -e "s/\.raw$$/-8x16/"
-
-install-raw: $(RAW)
- mkdir -p $(DESTDIR)$(rawdir)
- for i in $(RAW_14) ; do cp -f $$i $(DESTDIR)$(rawdir)/`$(minus14)` ; done
- for i in $(RAW_16) ; do cp -f $$i $(DESTDIR)$(rawdir)/`$(minus16)` ; done
-
-uninstall-raw:
- for i in $(RAW_14) ; do rm -f $(DESTDIR)$(rawdir)/`$(minus14)` ; done
- for i in $(RAW_16) ; do rm -f $(DESTDIR)$(rawdir)/`$(minus16)` ; done
-
X_88591 = uni/x11gr.uni uni/ascii-h.uni uni/win-1252.uni
X_88592 = uni/x11gr.uni uni/ascii-h.uni uni/empty.uni uni/8859-2.uni
X_88595 = uni/x11gr.uni uni/ascii-h.uni uni/empty.uni uni/8859-5.uni
@@ -1182,643 +65,1067 @@ X_KOI8U = uni/x11gr.uni uni/ascii-h.uni uni/koi8-u.uni
X_PT154 = uni/x11gr.uni uni/ascii-h.uni uni/pt-154.uni
X_10646 = uni/x11gr.uni uni/10646-1.uni
-ter-112n.pcf: ter-u12n.bdf $(X_88591)
- $(UCS2X11) ter-u12n.bdf $(R_88591) $(X_88591) | $(BDF2PCF) -o $@
-
-ter-112b.pcf: ter-u12b.bdf $(X_88591)
- $(UCS2X11) ter-u12b.bdf $(R_88591) $(X_88591) | $(BDF2PCF) -o $@
-
-ter-212n.pcf: ter-u12n.bdf $(X_88592)
- $(UCS2X11) ter-u12n.bdf $(R_88592) $(X_88592) | $(BDF2PCF) -o $@
-
-ter-212b.pcf: ter-u12b.bdf $(X_88592)
- $(UCS2X11) ter-u12b.bdf $(R_88592) $(X_88592) | $(BDF2PCF) -o $@
-
-ter-512n.pcf: ter-u12n.bdf $(X_88595)
- $(UCS2X11) ter-u12n.bdf $(R_88595) $(X_88595) | $(BDF2PCF) -o $@
-
-ter-512b.pcf: ter-u12b.bdf $(X_88595)
- $(UCS2X11) ter-u12b.bdf $(R_88595) $(X_88595) | $(BDF2PCF) -o $@
-
-ter-712n.pcf: ter-u12n.bdf $(X_88597)
- $(UCS2X11) ter-u12n.bdf $(R_88597) $(X_88597) | $(BDF2PCF) -o $@
-
-ter-712b.pcf: ter-u12b.bdf $(X_88597)
- $(UCS2X11) ter-u12b.bdf $(R_88597) $(X_88597) | $(BDF2PCF) -o $@
-
-ter-912n.pcf: ter-u12n.bdf $(X_88599)
- $(UCS2X11) ter-u12n.bdf $(R_88599) $(X_88599) | $(BDF2PCF) -o $@
-
-ter-912b.pcf: ter-u12b.bdf $(X_88599)
- $(UCS2X11) ter-u12b.bdf $(R_88599) $(X_88599) | $(BDF2PCF) -o $@
-
-ter-c12n.pcf: ter-u12n.bdf $(X_W1251)
- $(UCS2X11) ter-u12n.bdf $(R_W1251) $(X_W1251) | $(BDF2PCF) -o $@
-
-ter-c12b.pcf: ter-u12b.bdf $(X_W1251)
- $(UCS2X11) ter-u12b.bdf $(R_W1251) $(X_W1251) | $(BDF2PCF) -o $@
-
-ter-d12n.pcf: ter-u12n.bdf $(X_8859D)
- $(UCS2X11) ter-u12n.bdf $(R_8859D) $(X_8859D) | $(BDF2PCF) -o $@
-
-ter-d12b.pcf: ter-u12b.bdf $(X_8859D)
- $(UCS2X11) ter-u12b.bdf $(R_8859D) $(X_8859D) | $(BDF2PCF) -o $@
-
-ter-f12n.pcf: ter-u12n.bdf $(X_8859F)
- $(UCS2X11) ter-u12n.bdf $(R_8859F) $(X_8859F) | $(BDF2PCF) -o $@
-
-ter-f12b.pcf: ter-u12b.bdf $(X_8859F)
- $(UCS2X11) ter-u12b.bdf $(R_8859F) $(X_8859F) | $(BDF2PCF) -o $@
-
-ter-g12n.pcf: ter-u12n.bdf $(X_8859G)
- $(UCS2X11) ter-u12n.bdf $(R_8859G) $(X_8859G) | $(BDF2PCF) -o $@
-
-ter-g12b.pcf: ter-u12b.bdf $(X_8859G)
- $(UCS2X11) ter-u12b.bdf $(R_8859G) $(X_8859G) | $(BDF2PCF) -o $@
-
-ter-k12n.pcf: ter-u12n.bdf $(X_KOI8R)
- $(UCS2X11) ter-u12n.bdf $(R_KOI8R) $(X_KOI8R) | $(BDF2PCF) -o $@
-
-ter-k12b.pcf: ter-u12b.bdf $(X_KOI8R)
- $(UCS2X11) ter-u12b.bdf $(R_KOI8R) $(X_KOI8R) | $(BDF2PCF) -o $@
-
-ter-p12n.pcf: ter-u12n.bdf $(X_PT154)
- $(UCS2X11) ter-u12n.bdf $(R_PT154) $(X_PT154) | $(BDF2PCF) -o $@
-
-ter-p12b.pcf: ter-u12b.bdf $(X_PT154)
- $(UCS2X11) ter-u12b.bdf $(R_PT154) $(X_PT154) | $(BDF2PCF) -o $@
-
-ter-u12n.pcf: ter-u12n.bdf $(X_KOI8U)
- $(UCS2X11) ter-u12n.bdf $(R_KOI8U) $(X_KOI8U) | $(BDF2PCF) -o $@
-
-ter-u12b.pcf: ter-u12b.bdf $(X_KOI8U)
- $(UCS2X11) ter-u12b.bdf $(R_KOI8U) $(X_KOI8U) | $(BDF2PCF) -o $@
-
-ter-x12n.pcf: ter-u12n.bdf $(X_10646)
- $(UCS2X11) ter-u12n.bdf $(R_10646) $(X_10646) | $(BDF2PCF) -o $@
-
-ter-x12b.pcf: ter-u12b.bdf $(X_10646)
- $(UCS2X11) ter-u12b.bdf $(R_10646) $(X_10646) | $(BDF2PCF) -o $@
-
-ter-114n.pcf: ter-u14n.bdf $(X_88591)
- $(UCS2X11) ter-u14n.bdf $(R_88591) $(X_88591) | $(BDF2PCF) -o $@
-
-ter-114b.pcf: ter-u14b.bdf $(X_88591)
- $(UCS2X11) ter-u14b.bdf $(R_88591) $(X_88591) | $(BDF2PCF) -o $@
-
-ter-214n.pcf: ter-u14n.bdf $(X_88592)
- $(UCS2X11) ter-u14n.bdf $(R_88592) $(X_88592) | $(BDF2PCF) -o $@
-
-ter-214b.pcf: ter-u14b.bdf $(X_88592)
- $(UCS2X11) ter-u14b.bdf $(R_88592) $(X_88592) | $(BDF2PCF) -o $@
-
-ter-514n.pcf: ter-u14n.bdf $(X_88595)
- $(UCS2X11) ter-u14n.bdf $(R_88595) $(X_88595) | $(BDF2PCF) -o $@
-
-ter-514b.pcf: ter-u14b.bdf $(X_88595)
- $(UCS2X11) ter-u14b.bdf $(R_88595) $(X_88595) | $(BDF2PCF) -o $@
-
-ter-714n.pcf: ter-u14n.bdf $(X_88597)
- $(UCS2X11) ter-u14n.bdf $(R_88597) $(X_88597) | $(BDF2PCF) -o $@
-
-ter-714b.pcf: ter-u14b.bdf $(X_88597)
- $(UCS2X11) ter-u14b.bdf $(R_88597) $(X_88597) | $(BDF2PCF) -o $@
-
-ter-914n.pcf: ter-u14n.bdf $(X_88599)
- $(UCS2X11) ter-u14n.bdf $(R_88599) $(X_88599) | $(BDF2PCF) -o $@
-
-ter-914b.pcf: ter-u14b.bdf $(X_88599)
- $(UCS2X11) ter-u14b.bdf $(R_88599) $(X_88599) | $(BDF2PCF) -o $@
-
-ter-c14n.pcf: ter-u14n.bdf $(X_W1251)
- $(UCS2X11) ter-u14n.bdf $(R_W1251) $(X_W1251) | $(BDF2PCF) -o $@
-
-ter-c14b.pcf: ter-u14b.bdf $(X_W1251)
- $(UCS2X11) ter-u14b.bdf $(R_W1251) $(X_W1251) | $(BDF2PCF) -o $@
-
-ter-d14n.pcf: ter-u14n.bdf $(X_8859D)
- $(UCS2X11) ter-u14n.bdf $(R_8859D) $(X_8859D) | $(BDF2PCF) -o $@
-
-ter-d14b.pcf: ter-u14b.bdf $(X_8859D)
- $(UCS2X11) ter-u14b.bdf $(R_8859D) $(X_8859D) | $(BDF2PCF) -o $@
-
-ter-f14n.pcf: ter-u14n.bdf $(X_8859F)
- $(UCS2X11) ter-u14n.bdf $(R_8859F) $(X_8859F) | $(BDF2PCF) -o $@
-
-ter-f14b.pcf: ter-u14b.bdf $(X_8859F)
- $(UCS2X11) ter-u14b.bdf $(R_8859F) $(X_8859F) | $(BDF2PCF) -o $@
-
-ter-g14n.pcf: ter-u14n.bdf $(X_8859G)
- $(UCS2X11) ter-u14n.bdf $(R_8859G) $(X_8859G) | $(BDF2PCF) -o $@
-
-ter-g14b.pcf: ter-u14b.bdf $(X_8859G)
- $(UCS2X11) ter-u14b.bdf $(R_8859G) $(X_8859G) | $(BDF2PCF) -o $@
-
-ter-k14n.pcf: ter-u14n.bdf $(X_KOI8R)
- $(UCS2X11) ter-u14n.bdf $(R_KOI8R) $(X_KOI8R) | $(BDF2PCF) -o $@
-
-ter-k14b.pcf: ter-u14b.bdf $(X_KOI8R)
- $(UCS2X11) ter-u14b.bdf $(R_KOI8R) $(X_KOI8R) | $(BDF2PCF) -o $@
-
-ter-p14n.pcf: ter-u14n.bdf $(X_PT154)
- $(UCS2X11) ter-u14n.bdf $(R_PT154) $(X_PT154) | $(BDF2PCF) -o $@
-
-ter-p14b.pcf: ter-u14b.bdf $(X_PT154)
- $(UCS2X11) ter-u14b.bdf $(R_PT154) $(X_PT154) | $(BDF2PCF) -o $@
-
-ter-u14n.pcf: ter-u14n.bdf $(X_KOI8U)
- $(UCS2X11) ter-u14n.bdf $(R_KOI8U) $(X_KOI8U) | $(BDF2PCF) -o $@
-
-ter-u14b.pcf: ter-u14b.bdf $(X_KOI8U)
- $(UCS2X11) ter-u14b.bdf $(R_KOI8U) $(X_KOI8U) | $(BDF2PCF) -o $@
-
-ter-x14n.pcf: ter-u14n.bdf $(X_10646)
- $(UCS2X11) ter-u14n.bdf $(R_10646) $(X_10646) | $(BDF2PCF) -o $@
-
-ter-x14b.pcf: ter-u14b.bdf $(X_10646)
- $(UCS2X11) ter-u14b.bdf $(R_10646) $(X_10646) | $(BDF2PCF) -o $@
-
-ter-116n.pcf: ter-u16n.bdf $(X_88591)
- $(UCS2X11) ter-u16n.bdf $(R_88591) $(X_88591) | $(BDF2PCF) -o $@
-
-ter-116b.pcf: ter-u16b.bdf $(X_88591)
- $(UCS2X11) ter-u16b.bdf $(R_88591) $(X_88591) | $(BDF2PCF) -o $@
-
-ter-216n.pcf: ter-u16n.bdf $(X_88592)
- $(UCS2X11) ter-u16n.bdf $(R_88592) $(X_88592) | $(BDF2PCF) -o $@
-
-ter-216b.pcf: ter-u16b.bdf $(X_88592)
- $(UCS2X11) ter-u16b.bdf $(R_88592) $(X_88592) | $(BDF2PCF) -o $@
-
-ter-516n.pcf: ter-u16n.bdf $(X_88595)
- $(UCS2X11) ter-u16n.bdf $(R_88595) $(X_88595) | $(BDF2PCF) -o $@
-
-ter-516b.pcf: ter-u16b.bdf $(X_88595)
- $(UCS2X11) ter-u16b.bdf $(R_88595) $(X_88595) | $(BDF2PCF) -o $@
-
-ter-716n.pcf: ter-u16n.bdf $(X_88597)
- $(UCS2X11) ter-u16n.bdf $(R_88597) $(X_88597) | $(BDF2PCF) -o $@
-
-ter-716b.pcf: ter-u16b.bdf $(X_88597)
- $(UCS2X11) ter-u16b.bdf $(R_88597) $(X_88597) | $(BDF2PCF) -o $@
-
-ter-916n.pcf: ter-u16n.bdf $(X_88599)
- $(UCS2X11) ter-u16n.bdf $(R_88599) $(X_88599) | $(BDF2PCF) -o $@
-
-ter-916b.pcf: ter-u16b.bdf $(X_88599)
- $(UCS2X11) ter-u16b.bdf $(R_88599) $(X_88599) | $(BDF2PCF) -o $@
-
-ter-c16n.pcf: ter-u16n.bdf $(X_W1251)
- $(UCS2X11) ter-u16n.bdf $(R_W1251) $(X_W1251) | $(BDF2PCF) -o $@
-
-ter-c16b.pcf: ter-u16b.bdf $(X_W1251)
- $(UCS2X11) ter-u16b.bdf $(R_W1251) $(X_W1251) | $(BDF2PCF) -o $@
-
-ter-d16n.pcf: ter-u16n.bdf $(X_8859D)
- $(UCS2X11) ter-u16n.bdf $(R_8859D) $(X_8859D) | $(BDF2PCF) -o $@
-
-ter-d16b.pcf: ter-u16b.bdf $(X_8859D)
- $(UCS2X11) ter-u16b.bdf $(R_8859D) $(X_8859D) | $(BDF2PCF) -o $@
-
-ter-f16n.pcf: ter-u16n.bdf $(X_8859F)
- $(UCS2X11) ter-u16n.bdf $(R_8859F) $(X_8859F) | $(BDF2PCF) -o $@
-
-ter-f16b.pcf: ter-u16b.bdf $(X_8859F)
- $(UCS2X11) ter-u16b.bdf $(R_8859F) $(X_8859F) | $(BDF2PCF) -o $@
-
-ter-g16n.pcf: ter-u16n.bdf $(X_8859G)
- $(UCS2X11) ter-u16n.bdf $(R_8859G) $(X_8859G) | $(BDF2PCF) -o $@
-
-ter-g16b.pcf: ter-u16b.bdf $(X_8859G)
- $(UCS2X11) ter-u16b.bdf $(R_8859G) $(X_8859G) | $(BDF2PCF) -o $@
-
-ter-k16n.pcf: ter-u16n.bdf $(X_KOI8R)
- $(UCS2X11) ter-u16n.bdf $(R_KOI8R) $(X_KOI8R) | $(BDF2PCF) -o $@
-
-ter-k16b.pcf: ter-u16b.bdf $(X_KOI8R)
- $(UCS2X11) ter-u16b.bdf $(R_KOI8R) $(X_KOI8R) | $(BDF2PCF) -o $@
-
-ter-p16n.pcf: ter-u16n.bdf $(X_PT154)
- $(UCS2X11) ter-u16n.bdf $(R_PT154) $(X_PT154) | $(BDF2PCF) -o $@
-
-ter-p16b.pcf: ter-u16b.bdf $(X_PT154)
- $(UCS2X11) ter-u16b.bdf $(R_PT154) $(X_PT154) | $(BDF2PCF) -o $@
-
-ter-u16n.pcf: ter-u16n.bdf $(X_KOI8U)
- $(UCS2X11) ter-u16n.bdf $(R_KOI8U) $(X_KOI8U) | $(BDF2PCF) -o $@
-
-ter-u16b.pcf: ter-u16b.bdf $(X_KOI8U)
- $(UCS2X11) ter-u16b.bdf $(R_KOI8U) $(X_KOI8U) | $(BDF2PCF) -o $@
-
-ter-x16n.pcf: ter-u16n.bdf $(X_10646)
- $(UCS2X11) ter-u16n.bdf $(R_10646) $(X_10646) | $(BDF2PCF) -o $@
-
-ter-x16b.pcf: ter-u16b.bdf $(X_10646)
- $(UCS2X11) ter-u16b.bdf $(R_10646) $(X_10646) | $(BDF2PCF) -o $@
-
-ter-120n.pcf: ter-u20n.bdf $(X_88591)
- $(UCS2X11) ter-u20n.bdf $(R_88591) $(X_88591) | $(BDF2PCF) -o $@
-
-ter-120b.pcf: ter-u20b.bdf $(X_88591)
- $(UCS2X11) ter-u20b.bdf $(R_88591) $(X_88591) | $(BDF2PCF) -o $@
-
-ter-220n.pcf: ter-u20n.bdf $(X_88592)
- $(UCS2X11) ter-u20n.bdf $(R_88592) $(X_88592) | $(BDF2PCF) -o $@
-
-ter-220b.pcf: ter-u20b.bdf $(X_88592)
- $(UCS2X11) ter-u20b.bdf $(R_88592) $(X_88592) | $(BDF2PCF) -o $@
-
-ter-520n.pcf: ter-u20n.bdf $(X_88595)
- $(UCS2X11) ter-u20n.bdf $(R_88595) $(X_88595) | $(BDF2PCF) -o $@
-
-ter-520b.pcf: ter-u20b.bdf $(X_88595)
- $(UCS2X11) ter-u20b.bdf $(R_88595) $(X_88595) | $(BDF2PCF) -o $@
-
-ter-720n.pcf: ter-u20n.bdf $(X_88597)
- $(UCS2X11) ter-u20n.bdf $(R_88597) $(X_88597) | $(BDF2PCF) -o $@
-
-ter-720b.pcf: ter-u20b.bdf $(X_88597)
- $(UCS2X11) ter-u20b.bdf $(R_88597) $(X_88597) | $(BDF2PCF) -o $@
-
-ter-920n.pcf: ter-u20n.bdf $(X_88599)
- $(UCS2X11) ter-u20n.bdf $(R_88599) $(X_88599) | $(BDF2PCF) -o $@
-
-ter-920b.pcf: ter-u20b.bdf $(X_88599)
- $(UCS2X11) ter-u20b.bdf $(R_88599) $(X_88599) | $(BDF2PCF) -o $@
-
-ter-c20n.pcf: ter-u20n.bdf $(X_W1251)
- $(UCS2X11) ter-u20n.bdf $(R_W1251) $(X_W1251) | $(BDF2PCF) -o $@
-
-ter-c20b.pcf: ter-u20b.bdf $(X_W1251)
- $(UCS2X11) ter-u20b.bdf $(R_W1251) $(X_W1251) | $(BDF2PCF) -o $@
-
-ter-d20n.pcf: ter-u20n.bdf $(X_8859D)
- $(UCS2X11) ter-u20n.bdf $(R_8859D) $(X_8859D) | $(BDF2PCF) -o $@
-
-ter-d20b.pcf: ter-u20b.bdf $(X_8859D)
- $(UCS2X11) ter-u20b.bdf $(R_8859D) $(X_8859D) | $(BDF2PCF) -o $@
-
-ter-f20n.pcf: ter-u20n.bdf $(X_8859F)
- $(UCS2X11) ter-u20n.bdf $(R_8859F) $(X_8859F) | $(BDF2PCF) -o $@
-
-ter-f20b.pcf: ter-u20b.bdf $(X_8859F)
- $(UCS2X11) ter-u20b.bdf $(R_8859F) $(X_8859F) | $(BDF2PCF) -o $@
-
-ter-g20n.pcf: ter-u20n.bdf $(X_8859G)
- $(UCS2X11) ter-u20n.bdf $(R_8859G) $(X_8859G) | $(BDF2PCF) -o $@
-
-ter-g20b.pcf: ter-u20b.bdf $(X_8859G)
- $(UCS2X11) ter-u20b.bdf $(R_8859G) $(X_8859G) | $(BDF2PCF) -o $@
-
-ter-k20n.pcf: ter-u20n.bdf $(X_KOI8R)
- $(UCS2X11) ter-u20n.bdf $(R_KOI8R) $(X_KOI8R) | $(BDF2PCF) -o $@
-
-ter-k20b.pcf: ter-u20b.bdf $(X_KOI8R)
- $(UCS2X11) ter-u20b.bdf $(R_KOI8R) $(X_KOI8R) | $(BDF2PCF) -o $@
-
-ter-p20n.pcf: ter-u20n.bdf $(X_PT154)
- $(UCS2X11) ter-u20n.bdf $(R_PT154) $(X_PT154) | $(BDF2PCF) -o $@
-
-ter-p20b.pcf: ter-u20b.bdf $(X_PT154)
- $(UCS2X11) ter-u20b.bdf $(R_PT154) $(X_PT154) | $(BDF2PCF) -o $@
-
-ter-u20n.pcf: ter-u20n.bdf $(X_KOI8U)
- $(UCS2X11) ter-u20n.bdf $(R_KOI8U) $(X_KOI8U) | $(BDF2PCF) -o $@
-
-ter-u20b.pcf: ter-u20b.bdf $(X_KOI8U)
- $(UCS2X11) ter-u20b.bdf $(R_KOI8U) $(X_KOI8U) | $(BDF2PCF) -o $@
-
-ter-x20n.pcf: ter-u20n.bdf $(X_10646)
- $(UCS2X11) ter-u20n.bdf $(R_10646) $(X_10646) | $(BDF2PCF) -o $@
-
-ter-x20b.pcf: ter-u20b.bdf $(X_10646)
- $(UCS2X11) ter-u20b.bdf $(R_10646) $(X_10646) | $(BDF2PCF) -o $@
-
-ter-122n.pcf: ter-u22n.bdf $(X_88591)
- $(UCS2X11) ter-u22n.bdf $(R_88591) $(X_88591) | $(BDF2PCF) -o $@
-
-ter-122b.pcf: ter-u22b.bdf $(X_88591)
- $(UCS2X11) ter-u22b.bdf $(R_88591) $(X_88591) | $(BDF2PCF) -o $@
-
-ter-222n.pcf: ter-u22n.bdf $(X_88592)
- $(UCS2X11) ter-u22n.bdf $(R_88592) $(X_88592) | $(BDF2PCF) -o $@
-
-ter-222b.pcf: ter-u22b.bdf $(X_88592)
- $(UCS2X11) ter-u22b.bdf $(R_88592) $(X_88592) | $(BDF2PCF) -o $@
-
-ter-522n.pcf: ter-u22n.bdf $(X_88595)
- $(UCS2X11) ter-u22n.bdf $(R_88595) $(X_88595) | $(BDF2PCF) -o $@
-
-ter-522b.pcf: ter-u22b.bdf $(X_88595)
- $(UCS2X11) ter-u22b.bdf $(R_88595) $(X_88595) | $(BDF2PCF) -o $@
-
-ter-722n.pcf: ter-u22n.bdf $(X_88597)
- $(UCS2X11) ter-u22n.bdf $(R_88597) $(X_88597) | $(BDF2PCF) -o $@
-
-ter-722b.pcf: ter-u22b.bdf $(X_88597)
- $(UCS2X11) ter-u22b.bdf $(R_88597) $(X_88597) | $(BDF2PCF) -o $@
-
-ter-922n.pcf: ter-u22n.bdf $(X_88599)
- $(UCS2X11) ter-u22n.bdf $(R_88599) $(X_88599) | $(BDF2PCF) -o $@
-
-ter-922b.pcf: ter-u22b.bdf $(X_88599)
- $(UCS2X11) ter-u22b.bdf $(R_88599) $(X_88599) | $(BDF2PCF) -o $@
-
-ter-c22n.pcf: ter-u22n.bdf $(X_W1251)
- $(UCS2X11) ter-u22n.bdf $(R_W1251) $(X_W1251) | $(BDF2PCF) -o $@
-
-ter-c22b.pcf: ter-u22b.bdf $(X_W1251)
- $(UCS2X11) ter-u22b.bdf $(R_W1251) $(X_W1251) | $(BDF2PCF) -o $@
-
-ter-d22n.pcf: ter-u22n.bdf $(X_8859D)
- $(UCS2X11) ter-u22n.bdf $(R_8859D) $(X_8859D) | $(BDF2PCF) -o $@
-
-ter-d22b.pcf: ter-u22b.bdf $(X_8859D)
- $(UCS2X11) ter-u22b.bdf $(R_8859D) $(X_8859D) | $(BDF2PCF) -o $@
-
-ter-f22n.pcf: ter-u22n.bdf $(X_8859F)
- $(UCS2X11) ter-u22n.bdf $(R_8859F) $(X_8859F) | $(BDF2PCF) -o $@
-
-ter-f22b.pcf: ter-u22b.bdf $(X_8859F)
- $(UCS2X11) ter-u22b.bdf $(R_8859F) $(X_8859F) | $(BDF2PCF) -o $@
-
-ter-g22n.pcf: ter-u22n.bdf $(X_8859G)
- $(UCS2X11) ter-u22n.bdf $(R_8859G) $(X_8859G) | $(BDF2PCF) -o $@
-
-ter-g22b.pcf: ter-u22b.bdf $(X_8859G)
- $(UCS2X11) ter-u22b.bdf $(R_8859G) $(X_8859G) | $(BDF2PCF) -o $@
-
-ter-k22n.pcf: ter-u22n.bdf $(X_KOI8R)
- $(UCS2X11) ter-u22n.bdf $(R_KOI8R) $(X_KOI8R) | $(BDF2PCF) -o $@
-
-ter-k22b.pcf: ter-u22b.bdf $(X_KOI8R)
- $(UCS2X11) ter-u22b.bdf $(R_KOI8R) $(X_KOI8R) | $(BDF2PCF) -o $@
-
-ter-p22n.pcf: ter-u22n.bdf $(X_PT154)
- $(UCS2X11) ter-u22n.bdf $(R_PT154) $(X_PT154) | $(BDF2PCF) -o $@
-
-ter-p22b.pcf: ter-u22b.bdf $(X_PT154)
- $(UCS2X11) ter-u22b.bdf $(R_PT154) $(X_PT154) | $(BDF2PCF) -o $@
-
-ter-u22n.pcf: ter-u22n.bdf $(X_KOI8U)
- $(UCS2X11) ter-u22n.bdf $(R_KOI8U) $(X_KOI8U) | $(BDF2PCF) -o $@
-
-ter-u22b.pcf: ter-u22b.bdf $(X_KOI8U)
- $(UCS2X11) ter-u22b.bdf $(R_KOI8U) $(X_KOI8U) | $(BDF2PCF) -o $@
-
-ter-x22n.pcf: ter-u22n.bdf $(X_10646)
- $(UCS2X11) ter-u22n.bdf $(R_10646) $(X_10646) | $(BDF2PCF) -o $@
-
-ter-x22b.pcf: ter-u22b.bdf $(X_10646)
- $(UCS2X11) ter-u22b.bdf $(R_10646) $(X_10646) | $(BDF2PCF) -o $@
-
-ter-124n.pcf: ter-u24n.bdf $(X_88591)
- $(UCS2X11) ter-u24n.bdf $(R_88591) $(X_88591) | $(BDF2PCF) -o $@
-
-ter-124b.pcf: ter-u24b.bdf $(X_88591)
- $(UCS2X11) ter-u24b.bdf $(R_88591) $(X_88591) | $(BDF2PCF) -o $@
-
-ter-224n.pcf: ter-u24n.bdf $(X_88592)
- $(UCS2X11) ter-u24n.bdf $(R_88592) $(X_88592) | $(BDF2PCF) -o $@
-
-ter-224b.pcf: ter-u24b.bdf $(X_88592)
- $(UCS2X11) ter-u24b.bdf $(R_88592) $(X_88592) | $(BDF2PCF) -o $@
-
-ter-524n.pcf: ter-u24n.bdf $(X_88595)
- $(UCS2X11) ter-u24n.bdf $(R_88595) $(X_88595) | $(BDF2PCF) -o $@
-
-ter-524b.pcf: ter-u24b.bdf $(X_88595)
- $(UCS2X11) ter-u24b.bdf $(R_88595) $(X_88595) | $(BDF2PCF) -o $@
-
-ter-724n.pcf: ter-u24n.bdf $(X_88597)
- $(UCS2X11) ter-u24n.bdf $(R_88597) $(X_88597) | $(BDF2PCF) -o $@
-
-ter-724b.pcf: ter-u24b.bdf $(X_88597)
- $(UCS2X11) ter-u24b.bdf $(R_88597) $(X_88597) | $(BDF2PCF) -o $@
-
-ter-924n.pcf: ter-u24n.bdf $(X_88599)
- $(UCS2X11) ter-u24n.bdf $(R_88599) $(X_88599) | $(BDF2PCF) -o $@
-
-ter-924b.pcf: ter-u24b.bdf $(X_88599)
- $(UCS2X11) ter-u24b.bdf $(R_88599) $(X_88599) | $(BDF2PCF) -o $@
-
-ter-c24n.pcf: ter-u24n.bdf $(X_W1251)
- $(UCS2X11) ter-u24n.bdf $(R_W1251) $(X_W1251) | $(BDF2PCF) -o $@
-
-ter-c24b.pcf: ter-u24b.bdf $(X_W1251)
- $(UCS2X11) ter-u24b.bdf $(R_W1251) $(X_W1251) | $(BDF2PCF) -o $@
-
-ter-d24n.pcf: ter-u24n.bdf $(X_8859D)
- $(UCS2X11) ter-u24n.bdf $(R_8859D) $(X_8859D) | $(BDF2PCF) -o $@
-
-ter-d24b.pcf: ter-u24b.bdf $(X_8859D)
- $(UCS2X11) ter-u24b.bdf $(R_8859D) $(X_8859D) | $(BDF2PCF) -o $@
-
-ter-f24n.pcf: ter-u24n.bdf $(X_8859F)
- $(UCS2X11) ter-u24n.bdf $(R_8859F) $(X_8859F) | $(BDF2PCF) -o $@
-
-ter-f24b.pcf: ter-u24b.bdf $(X_8859F)
- $(UCS2X11) ter-u24b.bdf $(R_8859F) $(X_8859F) | $(BDF2PCF) -o $@
-
-ter-g24n.pcf: ter-u24n.bdf $(X_8859G)
- $(UCS2X11) ter-u24n.bdf $(R_8859G) $(X_8859G) | $(BDF2PCF) -o $@
-
-ter-g24b.pcf: ter-u24b.bdf $(X_8859G)
- $(UCS2X11) ter-u24b.bdf $(R_8859G) $(X_8859G) | $(BDF2PCF) -o $@
-
-ter-k24n.pcf: ter-u24n.bdf $(X_KOI8R)
- $(UCS2X11) ter-u24n.bdf $(R_KOI8R) $(X_KOI8R) | $(BDF2PCF) -o $@
-
-ter-k24b.pcf: ter-u24b.bdf $(X_KOI8R)
- $(UCS2X11) ter-u24b.bdf $(R_KOI8R) $(X_KOI8R) | $(BDF2PCF) -o $@
-
-ter-p24n.pcf: ter-u24n.bdf $(X_PT154)
- $(UCS2X11) ter-u24n.bdf $(R_PT154) $(X_PT154) | $(BDF2PCF) -o $@
-
-ter-p24b.pcf: ter-u24b.bdf $(X_PT154)
- $(UCS2X11) ter-u24b.bdf $(R_PT154) $(X_PT154) | $(BDF2PCF) -o $@
-
-ter-u24n.pcf: ter-u24n.bdf $(X_KOI8U)
- $(UCS2X11) ter-u24n.bdf $(R_KOI8U) $(X_KOI8U) | $(BDF2PCF) -o $@
-
-ter-u24b.pcf: ter-u24b.bdf $(X_KOI8U)
- $(UCS2X11) ter-u24b.bdf $(R_KOI8U) $(X_KOI8U) | $(BDF2PCF) -o $@
-
-ter-x24n.pcf: ter-u24n.bdf $(X_10646)
- $(UCS2X11) ter-u24n.bdf $(R_10646) $(X_10646) | $(BDF2PCF) -o $@
-
-ter-x24b.pcf: ter-u24b.bdf $(X_10646)
- $(UCS2X11) ter-u24b.bdf $(R_10646) $(X_10646) | $(BDF2PCF) -o $@
-
-ter-128n.pcf: ter-u28n.bdf $(X_88591)
- $(UCS2X11) ter-u28n.bdf $(R_88591) $(X_88591) | $(BDF2PCF) -o $@
-
-ter-128b.pcf: ter-u28b.bdf $(X_88591)
- $(UCS2X11) ter-u28b.bdf $(R_88591) $(X_88591) | $(BDF2PCF) -o $@
-
-ter-228n.pcf: ter-u28n.bdf $(X_88592)
- $(UCS2X11) ter-u28n.bdf $(R_88592) $(X_88592) | $(BDF2PCF) -o $@
-
-ter-228b.pcf: ter-u28b.bdf $(X_88592)
- $(UCS2X11) ter-u28b.bdf $(R_88592) $(X_88592) | $(BDF2PCF) -o $@
-
-ter-528n.pcf: ter-u28n.bdf $(X_88595)
- $(UCS2X11) ter-u28n.bdf $(R_88595) $(X_88595) | $(BDF2PCF) -o $@
-
-ter-528b.pcf: ter-u28b.bdf $(X_88595)
- $(UCS2X11) ter-u28b.bdf $(R_88595) $(X_88595) | $(BDF2PCF) -o $@
-
-ter-728n.pcf: ter-u28n.bdf $(X_88597)
- $(UCS2X11) ter-u28n.bdf $(R_88597) $(X_88597) | $(BDF2PCF) -o $@
-
-ter-728b.pcf: ter-u28b.bdf $(X_88597)
- $(UCS2X11) ter-u28b.bdf $(R_88597) $(X_88597) | $(BDF2PCF) -o $@
-
-ter-928n.pcf: ter-u28n.bdf $(X_88599)
- $(UCS2X11) ter-u28n.bdf $(R_88599) $(X_88599) | $(BDF2PCF) -o $@
-
-ter-928b.pcf: ter-u28b.bdf $(X_88599)
- $(UCS2X11) ter-u28b.bdf $(R_88599) $(X_88599) | $(BDF2PCF) -o $@
-
-ter-c28n.pcf: ter-u28n.bdf $(X_W1251)
- $(UCS2X11) ter-u28n.bdf $(R_W1251) $(X_W1251) | $(BDF2PCF) -o $@
-
-ter-c28b.pcf: ter-u28b.bdf $(X_W1251)
- $(UCS2X11) ter-u28b.bdf $(R_W1251) $(X_W1251) | $(BDF2PCF) -o $@
-
-ter-d28n.pcf: ter-u28n.bdf $(X_8859D)
- $(UCS2X11) ter-u28n.bdf $(R_8859D) $(X_8859D) | $(BDF2PCF) -o $@
-
-ter-d28b.pcf: ter-u28b.bdf $(X_8859D)
- $(UCS2X11) ter-u28b.bdf $(R_8859D) $(X_8859D) | $(BDF2PCF) -o $@
-
-ter-f28n.pcf: ter-u28n.bdf $(X_8859F)
- $(UCS2X11) ter-u28n.bdf $(R_8859F) $(X_8859F) | $(BDF2PCF) -o $@
-
-ter-f28b.pcf: ter-u28b.bdf $(X_8859F)
- $(UCS2X11) ter-u28b.bdf $(R_8859F) $(X_8859F) | $(BDF2PCF) -o $@
-
-ter-g28n.pcf: ter-u28n.bdf $(X_8859G)
- $(UCS2X11) ter-u28n.bdf $(R_8859G) $(X_8859G) | $(BDF2PCF) -o $@
-
-ter-g28b.pcf: ter-u28b.bdf $(X_8859G)
- $(UCS2X11) ter-u28b.bdf $(R_8859G) $(X_8859G) | $(BDF2PCF) -o $@
-
-ter-k28n.pcf: ter-u28n.bdf $(X_KOI8R)
- $(UCS2X11) ter-u28n.bdf $(R_KOI8R) $(X_KOI8R) | $(BDF2PCF) -o $@
-
-ter-k28b.pcf: ter-u28b.bdf $(X_KOI8R)
- $(UCS2X11) ter-u28b.bdf $(R_KOI8R) $(X_KOI8R) | $(BDF2PCF) -o $@
-
-ter-p28n.pcf: ter-u28n.bdf $(X_PT154)
- $(UCS2X11) ter-u28n.bdf $(R_PT154) $(X_PT154) | $(BDF2PCF) -o $@
-
-ter-p28b.pcf: ter-u28b.bdf $(X_PT154)
- $(UCS2X11) ter-u28b.bdf $(R_PT154) $(X_PT154) | $(BDF2PCF) -o $@
-
-ter-u28n.pcf: ter-u28n.bdf $(X_KOI8U)
- $(UCS2X11) ter-u28n.bdf $(R_KOI8U) $(X_KOI8U) | $(BDF2PCF) -o $@
-
-ter-u28b.pcf: ter-u28b.bdf $(X_KOI8U)
- $(UCS2X11) ter-u28b.bdf $(R_KOI8U) $(X_KOI8U) | $(BDF2PCF) -o $@
-
-ter-x28n.pcf: ter-u28n.bdf $(X_10646)
- $(UCS2X11) ter-u28n.bdf $(R_10646) $(X_10646) | $(BDF2PCF) -o $@
-
-ter-x28b.pcf: ter-u28b.bdf $(X_10646)
- $(UCS2X11) ter-u28b.bdf $(R_10646) $(X_10646) | $(BDF2PCF) -o $@
-
-ter-132n.pcf: ter-u32n.bdf $(X_88591)
- $(UCS2X11) ter-u32n.bdf $(R_88591) $(X_88591) | $(BDF2PCF) -o $@
-
-ter-132b.pcf: ter-u32b.bdf $(X_88591)
- $(UCS2X11) ter-u32b.bdf $(R_88591) $(X_88591) | $(BDF2PCF) -o $@
-
-ter-232n.pcf: ter-u32n.bdf $(X_88592)
- $(UCS2X11) ter-u32n.bdf $(R_88592) $(X_88592) | $(BDF2PCF) -o $@
-
-ter-232b.pcf: ter-u32b.bdf $(X_88592)
- $(UCS2X11) ter-u32b.bdf $(R_88592) $(X_88592) | $(BDF2PCF) -o $@
-
-ter-532n.pcf: ter-u32n.bdf $(X_88595)
- $(UCS2X11) ter-u32n.bdf $(R_88595) $(X_88595) | $(BDF2PCF) -o $@
-
-ter-532b.pcf: ter-u32b.bdf $(X_88595)
- $(UCS2X11) ter-u32b.bdf $(R_88595) $(X_88595) | $(BDF2PCF) -o $@
-
-ter-732n.pcf: ter-u32n.bdf $(X_88597)
- $(UCS2X11) ter-u32n.bdf $(R_88597) $(X_88597) | $(BDF2PCF) -o $@
-
-ter-732b.pcf: ter-u32b.bdf $(X_88597)
- $(UCS2X11) ter-u32b.bdf $(R_88597) $(X_88597) | $(BDF2PCF) -o $@
-
-ter-932n.pcf: ter-u32n.bdf $(X_88599)
- $(UCS2X11) ter-u32n.bdf $(R_88599) $(X_88599) | $(BDF2PCF) -o $@
-
-ter-932b.pcf: ter-u32b.bdf $(X_88599)
- $(UCS2X11) ter-u32b.bdf $(R_88599) $(X_88599) | $(BDF2PCF) -o $@
-
-ter-c32n.pcf: ter-u32n.bdf $(X_W1251)
- $(UCS2X11) ter-u32n.bdf $(R_W1251) $(X_W1251) | $(BDF2PCF) -o $@
-
-ter-c32b.pcf: ter-u32b.bdf $(X_W1251)
- $(UCS2X11) ter-u32b.bdf $(R_W1251) $(X_W1251) | $(BDF2PCF) -o $@
-
-ter-d32n.pcf: ter-u32n.bdf $(X_8859D)
- $(UCS2X11) ter-u32n.bdf $(R_8859D) $(X_8859D) | $(BDF2PCF) -o $@
-
-ter-d32b.pcf: ter-u32b.bdf $(X_8859D)
- $(UCS2X11) ter-u32b.bdf $(R_8859D) $(X_8859D) | $(BDF2PCF) -o $@
-
-ter-f32n.pcf: ter-u32n.bdf $(X_8859F)
- $(UCS2X11) ter-u32n.bdf $(R_8859F) $(X_8859F) | $(BDF2PCF) -o $@
-
-ter-f32b.pcf: ter-u32b.bdf $(X_8859F)
- $(UCS2X11) ter-u32b.bdf $(R_8859F) $(X_8859F) | $(BDF2PCF) -o $@
-
-ter-g32n.pcf: ter-u32n.bdf $(X_8859G)
- $(UCS2X11) ter-u32n.bdf $(R_8859G) $(X_8859G) | $(BDF2PCF) -o $@
-
-ter-g32b.pcf: ter-u32b.bdf $(X_8859G)
- $(UCS2X11) ter-u32b.bdf $(R_8859G) $(X_8859G) | $(BDF2PCF) -o $@
-
-ter-k32n.pcf: ter-u32n.bdf $(X_KOI8R)
- $(UCS2X11) ter-u32n.bdf $(R_KOI8R) $(X_KOI8R) | $(BDF2PCF) -o $@
-
-ter-k32b.pcf: ter-u32b.bdf $(X_KOI8R)
- $(UCS2X11) ter-u32b.bdf $(R_KOI8R) $(X_KOI8R) | $(BDF2PCF) -o $@
-
-ter-p32n.pcf: ter-u32n.bdf $(X_PT154)
- $(UCS2X11) ter-u32n.bdf $(R_PT154) $(X_PT154) | $(BDF2PCF) -o $@
-
-ter-p32b.pcf: ter-u32b.bdf $(X_PT154)
- $(UCS2X11) ter-u32b.bdf $(R_PT154) $(X_PT154) | $(BDF2PCF) -o $@
-
-ter-u32n.pcf: ter-u32n.bdf $(X_KOI8U)
- $(UCS2X11) ter-u32n.bdf $(R_KOI8U) $(X_KOI8U) | $(BDF2PCF) -o $@
-
-ter-u32b.pcf: ter-u32b.bdf $(X_KOI8U)
- $(UCS2X11) ter-u32b.bdf $(R_KOI8U) $(X_KOI8U) | $(BDF2PCF) -o $@
-
-ter-x32n.pcf: ter-u32n.bdf $(X_10646)
- $(UCS2X11) ter-u32n.bdf $(R_10646) $(X_10646) | $(BDF2PCF) -o $@
+BASETARGETNAME=$(notdir $(@:%.gz=%))
+
+$(DESTDIR)\ter-112n.pcf.gz: ter-u12n.bdf $(X_88591)
+ $(UCS2ANY) ter-u12n.bdf $(R_88591) $(X_88591) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-112b.pcf.gz: ter-u12b.bdf $(X_88591)
+ $(UCS2ANY) ter-u12b.bdf $(R_88591) $(X_88591) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-212n.pcf.gz: ter-u12n.bdf $(X_88592)
+ $(UCS2ANY) ter-u12n.bdf $(R_88592) $(X_88592) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-212b.pcf.gz: ter-u12b.bdf $(X_88592)
+ $(UCS2ANY) ter-u12b.bdf $(R_88592) $(X_88592) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-512n.pcf.gz: ter-u12n.bdf $(X_88595)
+ $(UCS2ANY) ter-u12n.bdf $(R_88595) $(X_88595) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-512b.pcf.gz: ter-u12b.bdf $(X_88595)
+ $(UCS2ANY) ter-u12b.bdf $(R_88595) $(X_88595) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-712n.pcf.gz: ter-u12n.bdf $(X_88597)
+ $(UCS2ANY) ter-u12n.bdf $(R_88597) $(X_88597) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-712b.pcf.gz: ter-u12b.bdf $(X_88597)
+ $(UCS2ANY) ter-u12b.bdf $(R_88597) $(X_88597) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-912n.pcf.gz: ter-u12n.bdf $(X_88599)
+ $(UCS2ANY) ter-u12n.bdf $(R_88599) $(X_88599) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-912b.pcf.gz: ter-u12b.bdf $(X_88599)
+ $(UCS2ANY) ter-u12b.bdf $(R_88599) $(X_88599) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-c12n.pcf.gz: ter-u12n.bdf $(X_W1251)
+ $(UCS2ANY) ter-u12n.bdf $(R_W1251) $(X_W1251) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-c12b.pcf.gz: ter-u12b.bdf $(X_W1251)
+ $(UCS2ANY) ter-u12b.bdf $(R_W1251) $(X_W1251) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-d12n.pcf.gz: ter-u12n.bdf $(X_8859D)
+ $(UCS2ANY) ter-u12n.bdf $(R_8859D) $(X_8859D) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-d12b.pcf.gz: ter-u12b.bdf $(X_8859D)
+ $(UCS2ANY) ter-u12b.bdf $(R_8859D) $(X_8859D) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-f12n.pcf.gz: ter-u12n.bdf $(X_8859F)
+ $(UCS2ANY) ter-u12n.bdf $(R_8859F) $(X_8859F) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-f12b.pcf.gz: ter-u12b.bdf $(X_8859F)
+ $(UCS2ANY) ter-u12b.bdf $(R_8859F) $(X_8859F) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-g12n.pcf.gz: ter-u12n.bdf $(X_8859G)
+ $(UCS2ANY) ter-u12n.bdf $(R_8859G) $(X_8859G) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-g12b.pcf.gz: ter-u12b.bdf $(X_8859G)
+ $(UCS2ANY) ter-u12b.bdf $(R_8859G) $(X_8859G) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-k12n.pcf.gz: ter-u12n.bdf $(X_KOI8R)
+ $(UCS2ANY) ter-u12n.bdf $(R_KOI8R) $(X_KOI8R) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-k12b.pcf.gz: ter-u12b.bdf $(X_KOI8R)
+ $(UCS2ANY) ter-u12b.bdf $(R_KOI8R) $(X_KOI8R) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-p12n.pcf.gz: ter-u12n.bdf $(X_PT154)
+ $(UCS2ANY) ter-u12n.bdf $(R_PT154) $(X_PT154) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-p12b.pcf.gz: ter-u12b.bdf $(X_PT154)
+ $(UCS2ANY) ter-u12b.bdf $(R_PT154) $(X_PT154) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-u12n.pcf.gz: ter-u12n.bdf $(X_KOI8U)
+ $(UCS2ANY) ter-u12n.bdf $(R_KOI8U) $(X_KOI8U) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-u12b.pcf.gz: ter-u12b.bdf $(X_KOI8U)
+ $(UCS2ANY) ter-u12b.bdf $(R_KOI8U) $(X_KOI8U) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-x12n.pcf.gz: ter-u12n.bdf $(X_10646)
+ $(UCS2ANY) ter-u12n.bdf $(R_10646) $(X_10646) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-x12b.pcf.gz: ter-u12b.bdf $(X_10646)
+ $(UCS2ANY) ter-u12b.bdf $(R_10646) $(X_10646) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-114n.pcf.gz: ter-u14n.bdf $(X_88591)
+ $(UCS2ANY) ter-u14n.bdf $(R_88591) $(X_88591) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-114b.pcf.gz: ter-u14b.bdf $(X_88591)
+ $(UCS2ANY) ter-u14b.bdf $(R_88591) $(X_88591) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-214n.pcf.gz: ter-u14n.bdf $(X_88592)
+ $(UCS2ANY) ter-u14n.bdf $(R_88592) $(X_88592) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-214b.pcf.gz: ter-u14b.bdf $(X_88592)
+ $(UCS2ANY) ter-u14b.bdf $(R_88592) $(X_88592) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-514n.pcf.gz: ter-u14n.bdf $(X_88595)
+ $(UCS2ANY) ter-u14n.bdf $(R_88595) $(X_88595) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-514b.pcf.gz: ter-u14b.bdf $(X_88595)
+ $(UCS2ANY) ter-u14b.bdf $(R_88595) $(X_88595) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-714n.pcf.gz: ter-u14n.bdf $(X_88597)
+ $(UCS2ANY) ter-u14n.bdf $(R_88597) $(X_88597) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-714b.pcf.gz: ter-u14b.bdf $(X_88597)
+ $(UCS2ANY) ter-u14b.bdf $(R_88597) $(X_88597) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-914n.pcf.gz: ter-u14n.bdf $(X_88599)
+ $(UCS2ANY) ter-u14n.bdf $(R_88599) $(X_88599) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-914b.pcf.gz: ter-u14b.bdf $(X_88599)
+ $(UCS2ANY) ter-u14b.bdf $(R_88599) $(X_88599) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-c14n.pcf.gz: ter-u14n.bdf $(X_W1251)
+ $(UCS2ANY) ter-u14n.bdf $(R_W1251) $(X_W1251) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-c14b.pcf.gz: ter-u14b.bdf $(X_W1251)
+ $(UCS2ANY) ter-u14b.bdf $(R_W1251) $(X_W1251) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-d14n.pcf.gz: ter-u14n.bdf $(X_8859D)
+ $(UCS2ANY) ter-u14n.bdf $(R_8859D) $(X_8859D) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-d14b.pcf.gz: ter-u14b.bdf $(X_8859D)
+ $(UCS2ANY) ter-u14b.bdf $(R_8859D) $(X_8859D) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-f14n.pcf.gz: ter-u14n.bdf $(X_8859F)
+ $(UCS2ANY) ter-u14n.bdf $(R_8859F) $(X_8859F) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-f14b.pcf.gz: ter-u14b.bdf $(X_8859F)
+ $(UCS2ANY) ter-u14b.bdf $(R_8859F) $(X_8859F) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-g14n.pcf.gz: ter-u14n.bdf $(X_8859G)
+ $(UCS2ANY) ter-u14n.bdf $(R_8859G) $(X_8859G) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-g14b.pcf.gz: ter-u14b.bdf $(X_8859G)
+ $(UCS2ANY) ter-u14b.bdf $(R_8859G) $(X_8859G) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-k14n.pcf.gz: ter-u14n.bdf $(X_KOI8R)
+ $(UCS2ANY) ter-u14n.bdf $(R_KOI8R) $(X_KOI8R) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-k14b.pcf.gz: ter-u14b.bdf $(X_KOI8R)
+ $(UCS2ANY) ter-u14b.bdf $(R_KOI8R) $(X_KOI8R) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-p14n.pcf.gz: ter-u14n.bdf $(X_PT154)
+ $(UCS2ANY) ter-u14n.bdf $(R_PT154) $(X_PT154) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-p14b.pcf.gz: ter-u14b.bdf $(X_PT154)
+ $(UCS2ANY) ter-u14b.bdf $(R_PT154) $(X_PT154) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-u14n.pcf.gz: ter-u14n.bdf $(X_KOI8U)
+ $(UCS2ANY) ter-u14n.bdf $(R_KOI8U) $(X_KOI8U) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-u14b.pcf.gz: ter-u14b.bdf $(X_KOI8U)
+ $(UCS2ANY) ter-u14b.bdf $(R_KOI8U) $(X_KOI8U) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-x14n.pcf.gz: ter-u14n.bdf $(X_10646)
+ $(UCS2ANY) ter-u14n.bdf $(R_10646) $(X_10646) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-x14b.pcf.gz: ter-u14b.bdf $(X_10646)
+ $(UCS2ANY) ter-u14b.bdf $(R_10646) $(X_10646) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-116n.pcf.gz: ter-u16n.bdf $(X_88591)
+ $(UCS2ANY) ter-u16n.bdf $(R_88591) $(X_88591) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-116b.pcf.gz: ter-u16b.bdf $(X_88591)
+ $(UCS2ANY) ter-u16b.bdf $(R_88591) $(X_88591) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-216n.pcf.gz: ter-u16n.bdf $(X_88592)
+ $(UCS2ANY) ter-u16n.bdf $(R_88592) $(X_88592) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-216b.pcf.gz: ter-u16b.bdf $(X_88592)
+ $(UCS2ANY) ter-u16b.bdf $(R_88592) $(X_88592) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-516n.pcf.gz: ter-u16n.bdf $(X_88595)
+ $(UCS2ANY) ter-u16n.bdf $(R_88595) $(X_88595) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-516b.pcf.gz: ter-u16b.bdf $(X_88595)
+ $(UCS2ANY) ter-u16b.bdf $(R_88595) $(X_88595) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-716n.pcf.gz: ter-u16n.bdf $(X_88597)
+ $(UCS2ANY) ter-u16n.bdf $(R_88597) $(X_88597) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-716b.pcf.gz: ter-u16b.bdf $(X_88597)
+ $(UCS2ANY) ter-u16b.bdf $(R_88597) $(X_88597) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-916n.pcf.gz: ter-u16n.bdf $(X_88599)
+ $(UCS2ANY) ter-u16n.bdf $(R_88599) $(X_88599) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-916b.pcf.gz: ter-u16b.bdf $(X_88599)
+ $(UCS2ANY) ter-u16b.bdf $(R_88599) $(X_88599) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-c16n.pcf.gz: ter-u16n.bdf $(X_W1251)
+ $(UCS2ANY) ter-u16n.bdf $(R_W1251) $(X_W1251) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-c16b.pcf.gz: ter-u16b.bdf $(X_W1251)
+ $(UCS2ANY) ter-u16b.bdf $(R_W1251) $(X_W1251) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-d16n.pcf.gz: ter-u16n.bdf $(X_8859D)
+ $(UCS2ANY) ter-u16n.bdf $(R_8859D) $(X_8859D) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-d16b.pcf.gz: ter-u16b.bdf $(X_8859D)
+ $(UCS2ANY) ter-u16b.bdf $(R_8859D) $(X_8859D) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-f16n.pcf.gz: ter-u16n.bdf $(X_8859F)
+ $(UCS2ANY) ter-u16n.bdf $(R_8859F) $(X_8859F) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-f16b.pcf.gz: ter-u16b.bdf $(X_8859F)
+ $(UCS2ANY) ter-u16b.bdf $(R_8859F) $(X_8859F) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-g16n.pcf.gz: ter-u16n.bdf $(X_8859G)
+ $(UCS2ANY) ter-u16n.bdf $(R_8859G) $(X_8859G) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-g16b.pcf.gz: ter-u16b.bdf $(X_8859G)
+ $(UCS2ANY) ter-u16b.bdf $(R_8859G) $(X_8859G) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-k16n.pcf.gz: ter-u16n.bdf $(X_KOI8R)
+ $(UCS2ANY) ter-u16n.bdf $(R_KOI8R) $(X_KOI8R) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-k16b.pcf.gz: ter-u16b.bdf $(X_KOI8R)
+ $(UCS2ANY) ter-u16b.bdf $(R_KOI8R) $(X_KOI8R) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-p16n.pcf.gz: ter-u16n.bdf $(X_PT154)
+ $(UCS2ANY) ter-u16n.bdf $(R_PT154) $(X_PT154) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-p16b.pcf.gz: ter-u16b.bdf $(X_PT154)
+ $(UCS2ANY) ter-u16b.bdf $(R_PT154) $(X_PT154) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-u16n.pcf.gz: ter-u16n.bdf $(X_KOI8U)
+ $(UCS2ANY) ter-u16n.bdf $(R_KOI8U) $(X_KOI8U) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-u16b.pcf.gz: ter-u16b.bdf $(X_KOI8U)
+ $(UCS2ANY) ter-u16b.bdf $(R_KOI8U) $(X_KOI8U) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-x16n.pcf.gz: ter-u16n.bdf $(X_10646)
+ $(UCS2ANY) ter-u16n.bdf $(R_10646) $(X_10646) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-x16b.pcf.gz: ter-u16b.bdf $(X_10646)
+ $(UCS2ANY) ter-u16b.bdf $(R_10646) $(X_10646) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-120n.pcf.gz: ter-u20n.bdf $(X_88591)
+ $(UCS2ANY) ter-u20n.bdf $(R_88591) $(X_88591) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-120b.pcf.gz: ter-u20b.bdf $(X_88591)
+ $(UCS2ANY) ter-u20b.bdf $(R_88591) $(X_88591) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-220n.pcf.gz: ter-u20n.bdf $(X_88592)
+ $(UCS2ANY) ter-u20n.bdf $(R_88592) $(X_88592) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-220b.pcf.gz: ter-u20b.bdf $(X_88592)
+ $(UCS2ANY) ter-u20b.bdf $(R_88592) $(X_88592) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-520n.pcf.gz: ter-u20n.bdf $(X_88595)
+ $(UCS2ANY) ter-u20n.bdf $(R_88595) $(X_88595) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-520b.pcf.gz: ter-u20b.bdf $(X_88595)
+ $(UCS2ANY) ter-u20b.bdf $(R_88595) $(X_88595) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-720n.pcf.gz: ter-u20n.bdf $(X_88597)
+ $(UCS2ANY) ter-u20n.bdf $(R_88597) $(X_88597) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-720b.pcf.gz: ter-u20b.bdf $(X_88597)
+ $(UCS2ANY) ter-u20b.bdf $(R_88597) $(X_88597) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-920n.pcf.gz: ter-u20n.bdf $(X_88599)
+ $(UCS2ANY) ter-u20n.bdf $(R_88599) $(X_88599) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-920b.pcf.gz: ter-u20b.bdf $(X_88599)
+ $(UCS2ANY) ter-u20b.bdf $(R_88599) $(X_88599) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-c20n.pcf.gz: ter-u20n.bdf $(X_W1251)
+ $(UCS2ANY) ter-u20n.bdf $(R_W1251) $(X_W1251) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-c20b.pcf.gz: ter-u20b.bdf $(X_W1251)
+ $(UCS2ANY) ter-u20b.bdf $(R_W1251) $(X_W1251) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-d20n.pcf.gz: ter-u20n.bdf $(X_8859D)
+ $(UCS2ANY) ter-u20n.bdf $(R_8859D) $(X_8859D) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-d20b.pcf.gz: ter-u20b.bdf $(X_8859D)
+ $(UCS2ANY) ter-u20b.bdf $(R_8859D) $(X_8859D) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-f20n.pcf.gz: ter-u20n.bdf $(X_8859F)
+ $(UCS2ANY) ter-u20n.bdf $(R_8859F) $(X_8859F) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-f20b.pcf.gz: ter-u20b.bdf $(X_8859F)
+ $(UCS2ANY) ter-u20b.bdf $(R_8859F) $(X_8859F) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-g20n.pcf.gz: ter-u20n.bdf $(X_8859G)
+ $(UCS2ANY) ter-u20n.bdf $(R_8859G) $(X_8859G) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-g20b.pcf.gz: ter-u20b.bdf $(X_8859G)
+ $(UCS2ANY) ter-u20b.bdf $(R_8859G) $(X_8859G) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-k20n.pcf.gz: ter-u20n.bdf $(X_KOI8R)
+ $(UCS2ANY) ter-u20n.bdf $(R_KOI8R) $(X_KOI8R) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-k20b.pcf.gz: ter-u20b.bdf $(X_KOI8R)
+ $(UCS2ANY) ter-u20b.bdf $(R_KOI8R) $(X_KOI8R) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-p20n.pcf.gz: ter-u20n.bdf $(X_PT154)
+ $(UCS2ANY) ter-u20n.bdf $(R_PT154) $(X_PT154) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-p20b.pcf.gz: ter-u20b.bdf $(X_PT154)
+ $(UCS2ANY) ter-u20b.bdf $(R_PT154) $(X_PT154) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-u20n.pcf.gz: ter-u20n.bdf $(X_KOI8U)
+ $(UCS2ANY) ter-u20n.bdf $(R_KOI8U) $(X_KOI8U) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-u20b.pcf.gz: ter-u20b.bdf $(X_KOI8U)
+ $(UCS2ANY) ter-u20b.bdf $(R_KOI8U) $(X_KOI8U) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-x20n.pcf.gz: ter-u20n.bdf $(X_10646)
+ $(UCS2ANY) ter-u20n.bdf $(R_10646) $(X_10646) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-x20b.pcf.gz: ter-u20b.bdf $(X_10646)
+ $(UCS2ANY) ter-u20b.bdf $(R_10646) $(X_10646) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-122n.pcf.gz: ter-u22n.bdf $(X_88591)
+ $(UCS2ANY) ter-u22n.bdf $(R_88591) $(X_88591) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-122b.pcf.gz: ter-u22b.bdf $(X_88591)
+ $(UCS2ANY) ter-u22b.bdf $(R_88591) $(X_88591) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-222n.pcf.gz: ter-u22n.bdf $(X_88592)
+ $(UCS2ANY) ter-u22n.bdf $(R_88592) $(X_88592) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-222b.pcf.gz: ter-u22b.bdf $(X_88592)
+ $(UCS2ANY) ter-u22b.bdf $(R_88592) $(X_88592) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-522n.pcf.gz: ter-u22n.bdf $(X_88595)
+ $(UCS2ANY) ter-u22n.bdf $(R_88595) $(X_88595) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-522b.pcf.gz: ter-u22b.bdf $(X_88595)
+ $(UCS2ANY) ter-u22b.bdf $(R_88595) $(X_88595) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-722n.pcf.gz: ter-u22n.bdf $(X_88597)
+ $(UCS2ANY) ter-u22n.bdf $(R_88597) $(X_88597) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-722b.pcf.gz: ter-u22b.bdf $(X_88597)
+ $(UCS2ANY) ter-u22b.bdf $(R_88597) $(X_88597) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-922n.pcf.gz: ter-u22n.bdf $(X_88599)
+ $(UCS2ANY) ter-u22n.bdf $(R_88599) $(X_88599) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-922b.pcf.gz: ter-u22b.bdf $(X_88599)
+ $(UCS2ANY) ter-u22b.bdf $(R_88599) $(X_88599) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-c22n.pcf.gz: ter-u22n.bdf $(X_W1251)
+ $(UCS2ANY) ter-u22n.bdf $(R_W1251) $(X_W1251) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-c22b.pcf.gz: ter-u22b.bdf $(X_W1251)
+ $(UCS2ANY) ter-u22b.bdf $(R_W1251) $(X_W1251) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-d22n.pcf.gz: ter-u22n.bdf $(X_8859D)
+ $(UCS2ANY) ter-u22n.bdf $(R_8859D) $(X_8859D) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-d22b.pcf.gz: ter-u22b.bdf $(X_8859D)
+ $(UCS2ANY) ter-u22b.bdf $(R_8859D) $(X_8859D) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-f22n.pcf.gz: ter-u22n.bdf $(X_8859F)
+ $(UCS2ANY) ter-u22n.bdf $(R_8859F) $(X_8859F) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-f22b.pcf.gz: ter-u22b.bdf $(X_8859F)
+ $(UCS2ANY) ter-u22b.bdf $(R_8859F) $(X_8859F) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-g22n.pcf.gz: ter-u22n.bdf $(X_8859G)
+ $(UCS2ANY) ter-u22n.bdf $(R_8859G) $(X_8859G) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-g22b.pcf.gz: ter-u22b.bdf $(X_8859G)
+ $(UCS2ANY) ter-u22b.bdf $(R_8859G) $(X_8859G) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-k22n.pcf.gz: ter-u22n.bdf $(X_KOI8R)
+ $(UCS2ANY) ter-u22n.bdf $(R_KOI8R) $(X_KOI8R) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-k22b.pcf.gz: ter-u22b.bdf $(X_KOI8R)
+ $(UCS2ANY) ter-u22b.bdf $(R_KOI8R) $(X_KOI8R) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-p22n.pcf.gz: ter-u22n.bdf $(X_PT154)
+ $(UCS2ANY) ter-u22n.bdf $(R_PT154) $(X_PT154) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-p22b.pcf.gz: ter-u22b.bdf $(X_PT154)
+ $(UCS2ANY) ter-u22b.bdf $(R_PT154) $(X_PT154) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-u22n.pcf.gz: ter-u22n.bdf $(X_KOI8U)
+ $(UCS2ANY) ter-u22n.bdf $(R_KOI8U) $(X_KOI8U) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-u22b.pcf.gz: ter-u22b.bdf $(X_KOI8U)
+ $(UCS2ANY) ter-u22b.bdf $(R_KOI8U) $(X_KOI8U) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-x22n.pcf.gz: ter-u22n.bdf $(X_10646)
+ $(UCS2ANY) ter-u22n.bdf $(R_10646) $(X_10646) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-x22b.pcf.gz: ter-u22b.bdf $(X_10646)
+ $(UCS2ANY) ter-u22b.bdf $(R_10646) $(X_10646) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-124n.pcf.gz: ter-u24n.bdf $(X_88591)
+ $(UCS2ANY) ter-u24n.bdf $(R_88591) $(X_88591) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-124b.pcf.gz: ter-u24b.bdf $(X_88591)
+ $(UCS2ANY) ter-u24b.bdf $(R_88591) $(X_88591) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-224n.pcf.gz: ter-u24n.bdf $(X_88592)
+ $(UCS2ANY) ter-u24n.bdf $(R_88592) $(X_88592) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-224b.pcf.gz: ter-u24b.bdf $(X_88592)
+ $(UCS2ANY) ter-u24b.bdf $(R_88592) $(X_88592) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-524n.pcf.gz: ter-u24n.bdf $(X_88595)
+ $(UCS2ANY) ter-u24n.bdf $(R_88595) $(X_88595) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-524b.pcf.gz: ter-u24b.bdf $(X_88595)
+ $(UCS2ANY) ter-u24b.bdf $(R_88595) $(X_88595) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-724n.pcf.gz: ter-u24n.bdf $(X_88597)
+ $(UCS2ANY) ter-u24n.bdf $(R_88597) $(X_88597) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-724b.pcf.gz: ter-u24b.bdf $(X_88597)
+ $(UCS2ANY) ter-u24b.bdf $(R_88597) $(X_88597) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-924n.pcf.gz: ter-u24n.bdf $(X_88599)
+ $(UCS2ANY) ter-u24n.bdf $(R_88599) $(X_88599) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-924b.pcf.gz: ter-u24b.bdf $(X_88599)
+ $(UCS2ANY) ter-u24b.bdf $(R_88599) $(X_88599) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-c24n.pcf.gz: ter-u24n.bdf $(X_W1251)
+ $(UCS2ANY) ter-u24n.bdf $(R_W1251) $(X_W1251) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-c24b.pcf.gz: ter-u24b.bdf $(X_W1251)
+ $(UCS2ANY) ter-u24b.bdf $(R_W1251) $(X_W1251) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-d24n.pcf.gz: ter-u24n.bdf $(X_8859D)
+ $(UCS2ANY) ter-u24n.bdf $(R_8859D) $(X_8859D) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-d24b.pcf.gz: ter-u24b.bdf $(X_8859D)
+ $(UCS2ANY) ter-u24b.bdf $(R_8859D) $(X_8859D) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-f24n.pcf.gz: ter-u24n.bdf $(X_8859F)
+ $(UCS2ANY) ter-u24n.bdf $(R_8859F) $(X_8859F) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-f24b.pcf.gz: ter-u24b.bdf $(X_8859F)
+ $(UCS2ANY) ter-u24b.bdf $(R_8859F) $(X_8859F) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-g24n.pcf.gz: ter-u24n.bdf $(X_8859G)
+ $(UCS2ANY) ter-u24n.bdf $(R_8859G) $(X_8859G) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-g24b.pcf.gz: ter-u24b.bdf $(X_8859G)
+ $(UCS2ANY) ter-u24b.bdf $(R_8859G) $(X_8859G) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-k24n.pcf.gz: ter-u24n.bdf $(X_KOI8R)
+ $(UCS2ANY) ter-u24n.bdf $(R_KOI8R) $(X_KOI8R) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-k24b.pcf.gz: ter-u24b.bdf $(X_KOI8R)
+ $(UCS2ANY) ter-u24b.bdf $(R_KOI8R) $(X_KOI8R) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-p24n.pcf.gz: ter-u24n.bdf $(X_PT154)
+ $(UCS2ANY) ter-u24n.bdf $(R_PT154) $(X_PT154) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-p24b.pcf.gz: ter-u24b.bdf $(X_PT154)
+ $(UCS2ANY) ter-u24b.bdf $(R_PT154) $(X_PT154) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-u24n.pcf.gz: ter-u24n.bdf $(X_KOI8U)
+ $(UCS2ANY) ter-u24n.bdf $(R_KOI8U) $(X_KOI8U) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-u24b.pcf.gz: ter-u24b.bdf $(X_KOI8U)
+ $(UCS2ANY) ter-u24b.bdf $(R_KOI8U) $(X_KOI8U) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-x24n.pcf.gz: ter-u24n.bdf $(X_10646)
+ $(UCS2ANY) ter-u24n.bdf $(R_10646) $(X_10646) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-x24b.pcf.gz: ter-u24b.bdf $(X_10646)
+ $(UCS2ANY) ter-u24b.bdf $(R_10646) $(X_10646) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-128n.pcf.gz: ter-u28n.bdf $(X_88591)
+ $(UCS2ANY) ter-u28n.bdf $(R_88591) $(X_88591) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-128b.pcf.gz: ter-u28b.bdf $(X_88591)
+ $(UCS2ANY) ter-u28b.bdf $(R_88591) $(X_88591) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-228n.pcf.gz: ter-u28n.bdf $(X_88592)
+ $(UCS2ANY) ter-u28n.bdf $(R_88592) $(X_88592) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-228b.pcf.gz: ter-u28b.bdf $(X_88592)
+ $(UCS2ANY) ter-u28b.bdf $(R_88592) $(X_88592) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-528n.pcf.gz: ter-u28n.bdf $(X_88595)
+ $(UCS2ANY) ter-u28n.bdf $(R_88595) $(X_88595) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-528b.pcf.gz: ter-u28b.bdf $(X_88595)
+ $(UCS2ANY) ter-u28b.bdf $(R_88595) $(X_88595) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-728n.pcf.gz: ter-u28n.bdf $(X_88597)
+ $(UCS2ANY) ter-u28n.bdf $(R_88597) $(X_88597) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-728b.pcf.gz: ter-u28b.bdf $(X_88597)
+ $(UCS2ANY) ter-u28b.bdf $(R_88597) $(X_88597) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-928n.pcf.gz: ter-u28n.bdf $(X_88599)
+ $(UCS2ANY) ter-u28n.bdf $(R_88599) $(X_88599) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-928b.pcf.gz: ter-u28b.bdf $(X_88599)
+ $(UCS2ANY) ter-u28b.bdf $(R_88599) $(X_88599) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-c28n.pcf.gz: ter-u28n.bdf $(X_W1251)
+ $(UCS2ANY) ter-u28n.bdf $(R_W1251) $(X_W1251) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-c28b.pcf.gz: ter-u28b.bdf $(X_W1251)
+ $(UCS2ANY) ter-u28b.bdf $(R_W1251) $(X_W1251) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-d28n.pcf.gz: ter-u28n.bdf $(X_8859D)
+ $(UCS2ANY) ter-u28n.bdf $(R_8859D) $(X_8859D) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-d28b.pcf.gz: ter-u28b.bdf $(X_8859D)
+ $(UCS2ANY) ter-u28b.bdf $(R_8859D) $(X_8859D) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-f28n.pcf.gz: ter-u28n.bdf $(X_8859F)
+ $(UCS2ANY) ter-u28n.bdf $(R_8859F) $(X_8859F) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-f28b.pcf.gz: ter-u28b.bdf $(X_8859F)
+ $(UCS2ANY) ter-u28b.bdf $(R_8859F) $(X_8859F) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-g28n.pcf.gz: ter-u28n.bdf $(X_8859G)
+ $(UCS2ANY) ter-u28n.bdf $(R_8859G) $(X_8859G) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-g28b.pcf.gz: ter-u28b.bdf $(X_8859G)
+ $(UCS2ANY) ter-u28b.bdf $(R_8859G) $(X_8859G) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-k28n.pcf.gz: ter-u28n.bdf $(X_KOI8R)
+ $(UCS2ANY) ter-u28n.bdf $(R_KOI8R) $(X_KOI8R) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-k28b.pcf.gz: ter-u28b.bdf $(X_KOI8R)
+ $(UCS2ANY) ter-u28b.bdf $(R_KOI8R) $(X_KOI8R) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-p28n.pcf.gz: ter-u28n.bdf $(X_PT154)
+ $(UCS2ANY) ter-u28n.bdf $(R_PT154) $(X_PT154) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-p28b.pcf.gz: ter-u28b.bdf $(X_PT154)
+ $(UCS2ANY) ter-u28b.bdf $(R_PT154) $(X_PT154) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-u28n.pcf.gz: ter-u28n.bdf $(X_KOI8U)
+ $(UCS2ANY) ter-u28n.bdf $(R_KOI8U) $(X_KOI8U) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-u28b.pcf.gz: ter-u28b.bdf $(X_KOI8U)
+ $(UCS2ANY) ter-u28b.bdf $(R_KOI8U) $(X_KOI8U) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-x28n.pcf.gz: ter-u28n.bdf $(X_10646)
+ $(UCS2ANY) ter-u28n.bdf $(R_10646) $(X_10646) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-x28b.pcf.gz: ter-u28b.bdf $(X_10646)
+ $(UCS2ANY) ter-u28b.bdf $(R_10646) $(X_10646) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-132n.pcf.gz: ter-u32n.bdf $(X_88591)
+ $(UCS2ANY) ter-u32n.bdf $(R_88591) $(X_88591) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-132b.pcf.gz: ter-u32b.bdf $(X_88591)
+ $(UCS2ANY) ter-u32b.bdf $(R_88591) $(X_88591) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-232n.pcf.gz: ter-u32n.bdf $(X_88592)
+ $(UCS2ANY) ter-u32n.bdf $(R_88592) $(X_88592) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-232b.pcf.gz: ter-u32b.bdf $(X_88592)
+ $(UCS2ANY) ter-u32b.bdf $(R_88592) $(X_88592) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-532n.pcf.gz: ter-u32n.bdf $(X_88595)
+ $(UCS2ANY) ter-u32n.bdf $(R_88595) $(X_88595) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-532b.pcf.gz: ter-u32b.bdf $(X_88595)
+ $(UCS2ANY) ter-u32b.bdf $(R_88595) $(X_88595) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-732n.pcf.gz: ter-u32n.bdf $(X_88597)
+ $(UCS2ANY) ter-u32n.bdf $(R_88597) $(X_88597) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-732b.pcf.gz: ter-u32b.bdf $(X_88597)
+ $(UCS2ANY) ter-u32b.bdf $(R_88597) $(X_88597) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-932n.pcf.gz: ter-u32n.bdf $(X_88599)
+ $(UCS2ANY) ter-u32n.bdf $(R_88599) $(X_88599) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-932b.pcf.gz: ter-u32b.bdf $(X_88599)
+ $(UCS2ANY) ter-u32b.bdf $(R_88599) $(X_88599) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-c32n.pcf.gz: ter-u32n.bdf $(X_W1251)
+ $(UCS2ANY) ter-u32n.bdf $(R_W1251) $(X_W1251) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-c32b.pcf.gz: ter-u32b.bdf $(X_W1251)
+ $(UCS2ANY) ter-u32b.bdf $(R_W1251) $(X_W1251) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-d32n.pcf.gz: ter-u32n.bdf $(X_8859D)
+ $(UCS2ANY) ter-u32n.bdf $(R_8859D) $(X_8859D) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-d32b.pcf.gz: ter-u32b.bdf $(X_8859D)
+ $(UCS2ANY) ter-u32b.bdf $(R_8859D) $(X_8859D) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-f32n.pcf.gz: ter-u32n.bdf $(X_8859F)
+ $(UCS2ANY) ter-u32n.bdf $(R_8859F) $(X_8859F) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-f32b.pcf.gz: ter-u32b.bdf $(X_8859F)
+ $(UCS2ANY) ter-u32b.bdf $(R_8859F) $(X_8859F) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-g32n.pcf.gz: ter-u32n.bdf $(X_8859G)
+ $(UCS2ANY) ter-u32n.bdf $(R_8859G) $(X_8859G) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-g32b.pcf.gz: ter-u32b.bdf $(X_8859G)
+ $(UCS2ANY) ter-u32b.bdf $(R_8859G) $(X_8859G) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-k32n.pcf.gz: ter-u32n.bdf $(X_KOI8R)
+ $(UCS2ANY) ter-u32n.bdf $(R_KOI8R) $(X_KOI8R) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-k32b.pcf.gz: ter-u32b.bdf $(X_KOI8R)
+ $(UCS2ANY) ter-u32b.bdf $(R_KOI8R) $(X_KOI8R) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-p32n.pcf.gz: ter-u32n.bdf $(X_PT154)
+ $(UCS2ANY) ter-u32n.bdf $(R_PT154) $(X_PT154) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-p32b.pcf.gz: ter-u32b.bdf $(X_PT154)
+ $(UCS2ANY) ter-u32b.bdf $(R_PT154) $(X_PT154) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-u32n.pcf.gz: ter-u32n.bdf $(X_KOI8U)
+ $(UCS2ANY) ter-u32n.bdf $(R_KOI8U) $(X_KOI8U) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-u32b.pcf.gz: ter-u32b.bdf $(X_KOI8U)
+ $(UCS2ANY) ter-u32b.bdf $(R_KOI8U) $(X_KOI8U) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-x32n.pcf.gz: ter-u32n.bdf $(X_10646)
+ $(UCS2ANY) ter-u32n.bdf $(R_10646) $(X_10646) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
+
+$(DESTDIR)\ter-x32b.pcf.gz: ter-u32b.bdf $(X_10646)
+ $(UCS2ANY) ter-u32b.bdf $(R_10646) $(X_10646) | $(BDFTOPCF) -t -o $(BASETARGETNAME)
+ gzip -c $(BASETARGETNAME) > $@
+ del $(BASETARGETNAME)
-ter-x32b.pcf: ter-u32b.bdf $(X_10646)
- $(UCS2X11) ter-u32b.bdf $(R_10646) $(X_10646) | $(BDF2PCF) -o $@
-install-pcf: $(PCF)
- mkdir -p $(DESTDIR)$(x11dir)
- for i in $(PCF) ; do gzip -c $$i > $(DESTDIR)$(x11dir)/$$i.gz ; done
+font_DATA = $(PCF:%=$(DESTDIR)\%.gz) $(PCF_N12:%=$(DESTDIR)\%.gz)
+
+destdir: $(DESTDIR)
+
+all: $(DESTDIR) $(DESTDIR)\fonts.dir $(DESTDIR)\fonts.alias
+
+MKFONTSCALE=$(MHMAKECONF)\mkfontscale\$(OBJDIR)\mkfontscale.exe
-uninstall-pcf:
- for i in $(PCF) ; do rm -f $(DESTDIR)$(x11dir)/$$i.gz ; done
+load_makefile $(MHMAKECONF)\mkfontscale\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+
+$(DESTDIR)\fonts.scale: $(font_DATA) $(MKFONTSCALE)
+ del -e $@
+ cd $(DESTDIR) & $(MKFONTSCALE) .
-install-n12: $(PCF_N12)
- mkdir -p $(DESTDIR)$(x11dir)
- for i in $(PCF_N12) ; do gzip -c $$i > $(DESTDIR)$(x11dir)/$$i.gz ; done
+$(DESTDIR)\fonts.dir: $(DESTDIR)\fonts.scale $(font_DATA) $(MKFONTSCALE)
+ del -e $@
+ cd $(DESTDIR) & $(MKFONTSCALE) -b -s -l .
-uninstall-n12:
- for i in $(PCF_N12) ; do rm -f $(DESTDIR)$(x11dir)/$$i.gz ; done
+$(DESTDIR)\fonts.alias: xfonts-terminus.alias
+ copy $< $@
-clean:
- rm -f *.psf *.txt *.raw *.pcf
diff --git a/xorg-server/fonts.src/terminus-font/xfonts-terminus.alias b/xorg-server/fonts.src/terminus-font/xfonts-terminus.alias
new file mode 100644
index 000000000..0147b94b3
--- /dev/null
+++ b/xorg-server/fonts.src/terminus-font/xfonts-terminus.alias
@@ -0,0 +1,212 @@
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!! Run the command `update-fonts-alias misc' if you edit this file. !!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!
+terminus-12 -xos4-terminus-medium-r-normal--12-120-72-72-c-60-iso10646-1
+terminus-14 -xos4-terminus-medium-r-normal--14-140-72-72-c-80-iso10646-1
+terminus-16 -xos4-terminus-medium-r-normal--16-160-72-72-c-80-iso10646-1
+terminus-20 -xos4-terminus-medium-r-normal--20-200-72-72-c-100-iso10646-1
+terminus-22 -xos4-terminus-medium-r-normal--22-220-72-72-c-110-iso10646-1
+terminus-24 -xos4-terminus-medium-r-normal--24-240-72-72-c-120-iso10646-1
+terminus-28 -xos4-terminus-medium-r-normal--28-280-72-72-c-140-iso10646-1
+terminus-32 -xos4-terminus-medium-r-normal--32-320-72-72-c-160-iso10646-1
+terminus-bold-12 -xos4-terminus-bold-r-normal--12-120-72-72-c-60-iso10646-1
+terminus-bold-14 -xos4-terminus-bold-r-normal--14-140-72-72-c-80-iso10646-1
+terminus-bold-16 -xos4-terminus-bold-r-normal--16-160-72-72-c-80-iso10646-1
+terminus-bold-20 -xos4-terminus-bold-r-normal--20-200-72-72-c-100-iso10646-1
+terminus-bold-22 -xos4-terminus-bold-r-normal--22-220-72-72-c-110-iso10646-1
+terminus-bold-24 -xos4-terminus-bold-r-normal--24-240-72-72-c-120-iso10646-1
+terminus-bold-28 -xos4-terminus-bold-r-normal--28-280-72-72-c-140-iso10646-1
+terminus-bold-32 -xos4-terminus-bold-r-normal--32-320-72-72-c-160-iso10646-1
+terminus-cp1251-12 -xos4-terminus-medium-r-normal--12-120-72-72-c-60-microsoft-cp1251
+terminus-cp1251-14 -xos4-terminus-medium-r-normal--14-140-72-72-c-80-microsoft-cp1251
+terminus-cp1251-16 -xos4-terminus-medium-r-normal--16-160-72-72-c-80-microsoft-cp1251
+terminus-cp1251-20 -xos4-terminus-medium-r-normal--20-200-72-72-c-100-microsoft-cp1251
+terminus-cp1251-22 -xos4-terminus-medium-r-normal--22-220-72-72-c-110-microsoft-cp1251
+terminus-cp1251-24 -xos4-terminus-medium-r-normal--24-240-72-72-c-120-microsoft-cp1251
+terminus-cp1251-28 -xos4-terminus-medium-r-normal--28-280-72-72-c-140-microsoft-cp1251
+terminus-cp1251-32 -xos4-terminus-medium-r-normal--32-320-72-72-c-160-microsoft-cp1251
+terminus-cp1251-bold-12 -xos4-terminus-bold-r-normal--12-120-72-72-c-60-microsoft-cp1251
+terminus-cp1251-bold-14 -xos4-terminus-bold-r-normal--14-140-72-72-c-80-microsoft-cp1251
+terminus-cp1251-bold-16 -xos4-terminus-bold-r-normal--16-160-72-72-c-80-microsoft-cp1251
+terminus-cp1251-bold-20 -xos4-terminus-bold-r-normal--20-200-72-72-c-100-microsoft-cp1251
+terminus-cp1251-bold-22 -xos4-terminus-bold-r-normal--22-220-72-72-c-110-microsoft-cp1251
+terminus-cp1251-bold-24 -xos4-terminus-bold-r-normal--24-240-72-72-c-120-microsoft-cp1251
+terminus-cp1251-bold-28 -xos4-terminus-bold-r-normal--28-280-72-72-c-140-microsoft-cp1251
+terminus-cp1251-bold-32 -xos4-terminus-bold-r-normal--32-320-72-72-c-160-microsoft-cp1251
+terminus-pt154-12 -xos4-terminus-medium-r-normal--12-120-72-72-c-60-paratype-pt154
+terminus-pt154-14 -xos4-terminus-medium-r-normal--14-140-72-72-c-80-paratype-pt154
+terminus-pt154-16 -xos4-terminus-medium-r-normal--16-160-72-72-c-80-paratype-pt154
+terminus-pt154-20 -xos4-terminus-medium-r-normal--20-200-72-72-c-100-paratype-pt154
+terminus-pt154-22 -xos4-terminus-medium-r-normal--22-220-72-72-c-110-paratype-pt154
+terminus-pt154-24 -xos4-terminus-medium-r-normal--24-240-72-72-c-120-paratype-pt154
+terminus-pt154-28 -xos4-terminus-medium-r-normal--28-280-72-72-c-140-paratype-pt154
+terminus-pt154-32 -xos4-terminus-medium-r-normal--32-320-72-72-c-160-paratype-pt154
+terminus-pt154-bold-12 -xos4-terminus-bold-r-normal--12-120-72-72-c-60-paratype-pt154
+terminus-pt154-bold-14 -xos4-terminus-bold-r-normal--14-140-72-72-c-80-paratype-pt154
+terminus-pt154-bold-16 -xos4-terminus-bold-r-normal--16-160-72-72-c-80-paratype-pt154
+terminus-pt154-bold-20 -xos4-terminus-bold-r-normal--20-200-72-72-c-100-paratype-pt154
+terminus-pt154-bold-22 -xos4-terminus-bold-r-normal--22-220-72-72-c-110-paratype-pt154
+terminus-pt154-bold-24 -xos4-terminus-bold-r-normal--24-240-72-72-c-120-paratype-pt154
+terminus-pt154-bold-28 -xos4-terminus-bold-r-normal--28-280-72-72-c-140-paratype-pt154
+terminus-pt154-bold-32 -xos4-terminus-bold-r-normal--32-320-72-72-c-160-paratype-pt154
+terminus-koi8-r-12 -xos4-terminus-medium-r-normal--12-120-72-72-c-60-koi8-r
+terminus-koi8-r-14 -xos4-terminus-medium-r-normal--14-140-72-72-c-80-koi8-r
+terminus-koi8-r-16 -xos4-terminus-medium-r-normal--16-160-72-72-c-80-koi8-r
+terminus-koi8-r-20 -xos4-terminus-medium-r-normal--20-200-72-72-c-100-koi8-r
+terminus-koi8-r-22 -xos4-terminus-medium-r-normal--22-220-72-72-c-110-koi8-r
+terminus-koi8-r-24 -xos4-terminus-medium-r-normal--24-240-72-72-c-120-koi8-r
+terminus-koi8-r-28 -xos4-terminus-medium-r-normal--28-280-72-72-c-140-koi8-r
+terminus-koi8-r-32 -xos4-terminus-medium-r-normal--32-320-72-72-c-160-koi8-r
+terminus-koi8-r-bold-12 -xos4-terminus-bold-r-normal--12-120-72-72-c-60-koi8-r
+terminus-koi8-r-bold-14 -xos4-terminus-bold-r-normal--14-140-72-72-c-80-koi8-r
+terminus-koi8-r-bold-16 -xos4-terminus-bold-r-normal--16-160-72-72-c-80-koi8-r
+terminus-koi8-r-bold-20 -xos4-terminus-bold-r-normal--20-200-72-72-c-100-koi8-r
+terminus-koi8-r-bold-22 -xos4-terminus-bold-r-normal--22-220-72-72-c-110-koi8-r
+terminus-koi8-r-bold-24 -xos4-terminus-bold-r-normal--24-240-72-72-c-120-koi8-r
+terminus-koi8-r-bold-28 -xos4-terminus-bold-r-normal--28-280-72-72-c-140-koi8-r
+terminus-koi8-r-bold-32 -xos4-terminus-bold-r-normal--32-320-72-72-c-160-koi8-r
+terminus-koi8-u-12 -xos4-terminus-medium-r-normal--12-120-72-72-c-60-koi8-u
+terminus-koi8-u-14 -xos4-terminus-medium-r-normal--14-140-72-72-c-80-koi8-u
+terminus-koi8-u-16 -xos4-terminus-medium-r-normal--16-160-72-72-c-80-koi8-u
+terminus-koi8-u-20 -xos4-terminus-medium-r-normal--20-200-72-72-c-100-koi8-u
+terminus-koi8-u-22 -xos4-terminus-medium-r-normal--22-220-72-72-c-110-koi8-u
+terminus-koi8-u-24 -xos4-terminus-medium-r-normal--24-240-72-72-c-120-koi8-u
+terminus-koi8-u-28 -xos4-terminus-medium-r-normal--28-280-72-72-c-140-koi8-u
+terminus-koi8-u-32 -xos4-terminus-medium-r-normal--32-320-72-72-c-160-koi8-u
+terminus-koi8-u-bold-12 -xos4-terminus-bold-r-normal--12-120-72-72-c-60-koi8-u
+terminus-koi8-u-bold-14 -xos4-terminus-bold-r-normal--14-140-72-72-c-80-koi8-u
+terminus-koi8-u-bold-16 -xos4-terminus-bold-r-normal--16-160-72-72-c-80-koi8-u
+terminus-koi8-u-bold-20 -xos4-terminus-bold-r-normal--20-200-72-72-c-100-koi8-u
+terminus-koi8-u-bold-22 -xos4-terminus-bold-r-normal--22-220-72-72-c-110-koi8-u
+terminus-koi8-u-bold-24 -xos4-terminus-bold-r-normal--24-240-72-72-c-120-koi8-u
+terminus-koi8-u-bold-28 -xos4-terminus-bold-r-normal--28-280-72-72-c-140-koi8-u
+terminus-koi8-u-bold-32 -xos4-terminus-bold-r-normal--32-320-72-72-c-160-koi8-u
+terminus-iso8859-1-12 -xos4-terminus-medium-r-normal--12-120-72-72-c-60-iso8859-1
+terminus-iso8859-1-14 -xos4-terminus-medium-r-normal--14-140-72-72-c-80-iso8859-1
+terminus-iso8859-1-16 -xos4-terminus-medium-r-normal--16-160-72-72-c-80-iso8859-1
+terminus-iso8859-1-20 -xos4-terminus-medium-r-normal--20-200-72-72-c-100-iso8859-1
+terminus-iso8859-1-22 -xos4-terminus-medium-r-normal--22-220-72-72-c-110-iso8859-1
+terminus-iso8859-1-24 -xos4-terminus-medium-r-normal--24-240-72-72-c-120-iso8859-1
+terminus-iso8859-1-28 -xos4-terminus-medium-r-normal--28-280-72-72-c-140-iso8859-1
+terminus-iso8859-1-32 -xos4-terminus-medium-r-normal--32-320-72-72-c-160-iso8859-1
+terminus-iso8859-1-bold-12 -xos4-terminus-bold-r-normal--12-120-72-72-c-60-iso8859-1
+terminus-iso8859-1-bold-14 -xos4-terminus-bold-r-normal--14-140-72-72-c-80-iso8859-1
+terminus-iso8859-1-bold-16 -xos4-terminus-bold-r-normal--16-160-72-72-c-80-iso8859-1
+terminus-iso8859-1-bold-20 -xos4-terminus-bold-r-normal--20-200-72-72-c-100-iso8859-1
+terminus-iso8859-1-bold-22 -xos4-terminus-bold-r-normal--22-220-72-72-c-110-iso8859-1
+terminus-iso8859-1-bold-24 -xos4-terminus-bold-r-normal--24-240-72-72-c-120-iso8859-1
+terminus-iso8859-1-bold-28 -xos4-terminus-bold-r-normal--28-280-72-72-c-140-iso8859-1
+terminus-iso8859-1-bold-32 -xos4-terminus-bold-r-normal--32-320-72-72-c-160-iso8859-1
+terminus-iso8859-2-12 -xos4-terminus-medium-r-normal--12-120-72-72-c-60-iso8859-2
+terminus-iso8859-2-14 -xos4-terminus-medium-r-normal--14-140-72-72-c-80-iso8859-2
+terminus-iso8859-2-16 -xos4-terminus-medium-r-normal--16-160-72-72-c-80-iso8859-2
+terminus-iso8859-2-20 -xos4-terminus-medium-r-normal--20-200-72-72-c-100-iso8859-2
+terminus-iso8859-2-22 -xos4-terminus-medium-r-normal--22-220-72-72-c-110-iso8859-2
+terminus-iso8859-2-24 -xos4-terminus-medium-r-normal--24-240-72-72-c-120-iso8859-2
+terminus-iso8859-2-28 -xos4-terminus-medium-r-normal--28-280-72-72-c-140-iso8859-2
+terminus-iso8859-2-32 -xos4-terminus-medium-r-normal--32-320-72-72-c-160-iso8859-2
+terminus-iso8859-2-bold-12 -xos4-terminus-bold-r-normal--12-120-72-72-c-60-iso8859-2
+terminus-iso8859-2-bold-14 -xos4-terminus-bold-r-normal--14-140-72-72-c-80-iso8859-2
+terminus-iso8859-2-bold-16 -xos4-terminus-bold-r-normal--16-160-72-72-c-80-iso8859-2
+terminus-iso8859-2-bold-20 -xos4-terminus-bold-r-normal--20-200-72-72-c-100-iso8859-2
+terminus-iso8859-2-bold-22 -xos4-terminus-bold-r-normal--22-220-72-72-c-110-iso8859-2
+terminus-iso8859-2-bold-24 -xos4-terminus-bold-r-normal--24-240-72-72-c-120-iso8859-2
+terminus-iso8859-2-bold-28 -xos4-terminus-bold-r-normal--28-280-72-72-c-140-iso8859-2
+terminus-iso8859-2-bold-32 -xos4-terminus-bold-r-normal--32-320-72-72-c-160-iso8859-2
+terminus-iso8859-5-12 -xos4-terminus-medium-r-normal--12-120-72-72-c-60-iso8859-5
+terminus-iso8859-5-14 -xos4-terminus-medium-r-normal--14-140-72-72-c-80-iso8859-5
+terminus-iso8859-5-16 -xos4-terminus-medium-r-normal--16-160-72-72-c-80-iso8859-5
+terminus-iso8859-5-20 -xos4-terminus-medium-r-normal--20-200-72-72-c-100-iso8859-5
+terminus-iso8859-5-22 -xos4-terminus-medium-r-normal--22-220-72-72-c-110-iso8859-5
+terminus-iso8859-5-24 -xos4-terminus-medium-r-normal--24-240-72-72-c-120-iso8859-5
+terminus-iso8859-5-28 -xos4-terminus-medium-r-normal--28-280-72-72-c-140-iso8859-5
+terminus-iso8859-5-32 -xos4-terminus-medium-r-normal--32-320-72-72-c-160-iso8859-5
+terminus-iso8859-5-bold-12 -xos4-terminus-bold-r-normal--12-120-72-72-c-60-iso8859-5
+terminus-iso8859-5-bold-14 -xos4-terminus-bold-r-normal--14-140-72-72-c-80-iso8859-5
+terminus-iso8859-5-bold-16 -xos4-terminus-bold-r-normal--16-160-72-72-c-80-iso8859-5
+terminus-iso8859-5-bold-20 -xos4-terminus-bold-r-normal--20-200-72-72-c-100-iso8859-5
+terminus-iso8859-5-bold-22 -xos4-terminus-bold-r-normal--22-220-72-72-c-110-iso8859-5
+terminus-iso8859-5-bold-24 -xos4-terminus-bold-r-normal--24-240-72-72-c-120-iso8859-5
+terminus-iso8859-5-bold-28 -xos4-terminus-bold-r-normal--28-280-72-72-c-140-iso8859-5
+terminus-iso8859-5-bold-32 -xos4-terminus-bold-r-normal--32-320-72-72-c-160-iso8859-5
+terminus-iso8859-7-12 -xos4-terminus-medium-r-normal--12-120-72-72-c-60-iso8859-7
+terminus-iso8859-7-14 -xos4-terminus-medium-r-normal--14-140-72-72-c-80-iso8859-7
+terminus-iso8859-7-16 -xos4-terminus-medium-r-normal--16-160-72-72-c-80-iso8859-7
+terminus-iso8859-7-20 -xos4-terminus-medium-r-normal--20-200-72-72-c-100-iso8859-7
+terminus-iso8859-7-22 -xos4-terminus-medium-r-normal--22-220-72-72-c-110-iso8859-7
+terminus-iso8859-7-24 -xos4-terminus-medium-r-normal--24-240-72-72-c-120-iso8859-7
+terminus-iso8859-7-28 -xos4-terminus-medium-r-normal--28-280-72-72-c-140-iso8859-7
+terminus-iso8859-7-32 -xos4-terminus-medium-r-normal--32-320-72-72-c-160-iso8859-7
+terminus-iso8859-7-bold-12 -xos4-terminus-bold-r-normal--12-120-72-72-c-60-iso8859-7
+terminus-iso8859-7-bold-14 -xos4-terminus-bold-r-normal--14-140-72-72-c-80-iso8859-7
+terminus-iso8859-7-bold-16 -xos4-terminus-bold-r-normal--16-160-72-72-c-80-iso8859-7
+terminus-iso8859-7-bold-20 -xos4-terminus-bold-r-normal--20-200-72-72-c-100-iso8859-7
+terminus-iso8859-7-bold-22 -xos4-terminus-bold-r-normal--22-220-72-72-c-110-iso8859-7
+terminus-iso8859-7-bold-24 -xos4-terminus-bold-r-normal--24-240-72-72-c-120-iso8859-7
+terminus-iso8859-7-bold-28 -xos4-terminus-bold-r-normal--28-280-72-72-c-140-iso8859-7
+terminus-iso8859-7-bold-32 -xos4-terminus-bold-r-normal--32-320-72-72-c-160-iso8859-7
+terminus-iso8859-9-12 -xos4-terminus-medium-r-normal--12-120-72-72-c-60-iso8859-9
+terminus-iso8859-9-14 -xos4-terminus-medium-r-normal--14-140-72-72-c-80-iso8859-9
+terminus-iso8859-9-16 -xos4-terminus-medium-r-normal--16-160-72-72-c-80-iso8859-9
+terminus-iso8859-9-20 -xos4-terminus-medium-r-normal--20-200-72-72-c-100-iso8859-9
+terminus-iso8859-9-22 -xos4-terminus-medium-r-normal--22-220-72-72-c-110-iso8859-9
+terminus-iso8859-9-24 -xos4-terminus-medium-r-normal--24-240-72-72-c-120-iso8859-9
+terminus-iso8859-9-28 -xos4-terminus-medium-r-normal--28-280-72-72-c-140-iso8859-9
+terminus-iso8859-9-32 -xos4-terminus-medium-r-normal--32-320-72-72-c-160-iso8859-9
+terminus-iso8859-9-bold-12 -xos4-terminus-bold-r-normal--12-120-72-72-c-60-iso8859-9
+terminus-iso8859-9-bold-14 -xos4-terminus-bold-r-normal--14-140-72-72-c-80-iso8859-9
+terminus-iso8859-9-bold-16 -xos4-terminus-bold-r-normal--16-160-72-72-c-80-iso8859-9
+terminus-iso8859-9-bold-20 -xos4-terminus-bold-r-normal--20-200-72-72-c-100-iso8859-9
+terminus-iso8859-9-bold-22 -xos4-terminus-bold-r-normal--22-220-72-72-c-110-iso8859-9
+terminus-iso8859-9-bold-24 -xos4-terminus-bold-r-normal--24-240-72-72-c-120-iso8859-9
+terminus-iso8859-9-bold-28 -xos4-terminus-bold-r-normal--28-280-72-72-c-140-iso8859-9
+terminus-iso8859-9-bold-32 -xos4-terminus-bold-r-normal--32-320-72-72-c-160-iso8859-9
+terminus-iso8859-13-12 -xos4-terminus-medium-r-normal--12-120-72-72-c-60-iso8859-13
+terminus-iso8859-13-14 -xos4-terminus-medium-r-normal--14-140-72-72-c-80-iso8859-13
+terminus-iso8859-13-16 -xos4-terminus-medium-r-normal--16-160-72-72-c-80-iso8859-13
+terminus-iso8859-13-20 -xos4-terminus-medium-r-normal--20-200-72-72-c-100-iso8859-13
+terminus-iso8859-13-22 -xos4-terminus-medium-r-normal--22-220-72-72-c-110-iso8859-13
+terminus-iso8859-13-24 -xos4-terminus-medium-r-normal--24-240-72-72-c-120-iso8859-13
+terminus-iso8859-13-28 -xos4-terminus-medium-r-normal--28-280-72-72-c-140-iso8859-13
+terminus-iso8859-13-32 -xos4-terminus-medium-r-normal--32-320-72-72-c-160-iso8859-13
+terminus-iso8859-13-bold-12 -xos4-terminus-bold-r-normal--12-120-72-72-c-60-iso8859-13
+terminus-iso8859-13-bold-14 -xos4-terminus-bold-r-normal--14-140-72-72-c-80-iso8859-13
+terminus-iso8859-13-bold-16 -xos4-terminus-bold-r-normal--16-160-72-72-c-80-iso8859-13
+terminus-iso8859-13-bold-20 -xos4-terminus-bold-r-normal--20-200-72-72-c-100-iso8859-13
+terminus-iso8859-13-bold-22 -xos4-terminus-bold-r-normal--22-220-72-72-c-110-iso8859-13
+terminus-iso8859-13-bold-24 -xos4-terminus-bold-r-normal--24-240-72-72-c-120-iso8859-13
+terminus-iso8859-13-bold-28 -xos4-terminus-bold-r-normal--28-280-72-72-c-140-iso8859-13
+terminus-iso8859-13-bold-32 -xos4-terminus-bold-r-normal--32-320-72-72-c-160-iso8859-13
+terminus-iso8859-15-12 -xos4-terminus-medium-r-normal--12-120-72-72-c-60-iso8859-15
+terminus-iso8859-15-14 -xos4-terminus-medium-r-normal--14-140-72-72-c-80-iso8859-15
+terminus-iso8859-15-16 -xos4-terminus-medium-r-normal--16-160-72-72-c-80-iso8859-15
+terminus-iso8859-15-20 -xos4-terminus-medium-r-normal--20-200-72-72-c-100-iso8859-15
+terminus-iso8859-15-22 -xos4-terminus-medium-r-normal--22-220-72-72-c-110-iso8859-15
+terminus-iso8859-15-24 -xos4-terminus-medium-r-normal--24-240-72-72-c-120-iso8859-15
+terminus-iso8859-15-28 -xos4-terminus-medium-r-normal--28-280-72-72-c-140-iso8859-15
+terminus-iso8859-15-32 -xos4-terminus-medium-r-normal--32-320-72-72-c-160-iso8859-15
+terminus-iso8859-15-bold-12 -xos4-terminus-bold-r-normal--12-120-72-72-c-60-iso8859-15
+terminus-iso8859-15-bold-14 -xos4-terminus-bold-r-normal--14-140-72-72-c-80-iso8859-15
+terminus-iso8859-15-bold-16 -xos4-terminus-bold-r-normal--16-160-72-72-c-80-iso8859-15
+terminus-iso8859-15-bold-20 -xos4-terminus-bold-r-normal--20-200-72-72-c-100-iso8859-15
+terminus-iso8859-15-bold-22 -xos4-terminus-bold-r-normal--22-220-72-72-c-110-iso8859-15
+terminus-iso8859-15-bold-24 -xos4-terminus-bold-r-normal--24-240-72-72-c-120-iso8859-15
+terminus-iso8859-15-bold-28 -xos4-terminus-bold-r-normal--28-280-72-72-c-140-iso8859-15
+terminus-iso8859-15-bold-32 -xos4-terminus-bold-r-normal--32-320-72-72-c-160-iso8859-15
+terminus-iso8859-16-12 -xos4-terminus-medium-r-normal--12-120-72-72-c-60-iso8859-16
+terminus-iso8859-16-14 -xos4-terminus-medium-r-normal--14-140-72-72-c-80-iso8859-16
+terminus-iso8859-16-16 -xos4-terminus-medium-r-normal--16-160-72-72-c-80-iso8859-16
+terminus-iso8859-16-20 -xos4-terminus-medium-r-normal--20-200-72-72-c-100-iso8859-16
+terminus-iso8859-16-22 -xos4-terminus-medium-r-normal--22-220-72-72-c-110-iso8859-16
+terminus-iso8859-16-24 -xos4-terminus-medium-r-normal--24-240-72-72-c-120-iso8859-16
+terminus-iso8859-16-28 -xos4-terminus-medium-r-normal--28-280-72-72-c-140-iso8859-16
+terminus-iso8859-16-32 -xos4-terminus-medium-r-normal--32-320-72-72-c-160-iso8859-16
+terminus-iso8859-16-bold-12 -xos4-terminus-bold-r-normal--12-120-72-72-c-60-iso8859-16
+terminus-iso8859-16-bold-14 -xos4-terminus-bold-r-normal--14-140-72-72-c-80-iso8859-16
+terminus-iso8859-16-bold-16 -xos4-terminus-bold-r-normal--16-160-72-72-c-80-iso8859-16
+terminus-iso8859-16-bold-20 -xos4-terminus-bold-r-normal--20-200-72-72-c-100-iso8859-16
+terminus-iso8859-16-bold-22 -xos4-terminus-bold-r-normal--22-220-72-72-c-110-iso8859-16
+terminus-iso8859-16-bold-24 -xos4-terminus-bold-r-normal--24-240-72-72-c-120-iso8859-16
+terminus-iso8859-16-bold-28 -xos4-terminus-bold-r-normal--28-280-72-72-c-140-iso8859-16
+terminus-iso8859-16-bold-32 -xos4-terminus-bold-r-normal--32-320-72-72-c-160-iso8859-16
diff --git a/xorg-server/glx/dispatch.h b/xorg-server/glx/dispatch.h
new file mode 100644
index 000000000..c5749ac55
--- /dev/null
+++ b/xorg-server/glx/dispatch.h
@@ -0,0 +1,13641 @@
+/* DO NOT EDIT - This file generated automatically by gl_table.py (from Mesa) script */
+
+/*
+ * (C) Copyright IBM Corporation 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
+ * 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 THEIR 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.
+ */
+
+#if !defined( _DISPATCH_H_ )
+# define _DISPATCH_H_
+
+
+#include "glapitable.h"
+/**
+ * \file main/dispatch.h
+ * Macros for handling GL dispatch tables.
+ *
+ * For each known GL function, there are 3 macros in this file. The first
+ * macro is named CALL_FuncName and is used to call that GL function using
+ * the specified dispatch table. The other 2 macros, called GET_FuncName
+ * can SET_FuncName, are used to get and set the dispatch pointer for the
+ * named function in the specified dispatch table.
+ */
+
+#ifdef _MSC_VER
+#ifndef INLINE
+#define INLINE __inline
+#endif
+#endif
+#define CALL_by_offset(disp, cast, offset, parameters) \
+ (*(cast (GET_by_offset(disp, offset)))) parameters
+#define GET_by_offset(disp, offset) \
+ (offset >= 0) ? (((_glapi_proc *)(disp))[offset]) : NULL
+#define SET_by_offset(disp, offset, fn) \
+ do { \
+ if ( (offset) < 0 ) { \
+ /* fprintf( stderr, "[%s:%u] SET_by_offset(%p, %d, %s)!\n", */ \
+ /* __func__, __LINE__, disp, offset, # fn); */ \
+ /* abort(); */ \
+ } \
+ else { \
+ ( (_glapi_proc *) (disp) )[offset] = (_glapi_proc) fn; \
+ } \
+ } while(0)
+
+/* total number of offsets below */
+#define _gloffset_COUNT 1075
+
+#define _gloffset_NewList 0
+#define _gloffset_EndList 1
+#define _gloffset_CallList 2
+#define _gloffset_CallLists 3
+#define _gloffset_DeleteLists 4
+#define _gloffset_GenLists 5
+#define _gloffset_ListBase 6
+#define _gloffset_Begin 7
+#define _gloffset_Bitmap 8
+#define _gloffset_Color3b 9
+#define _gloffset_Color3bv 10
+#define _gloffset_Color3d 11
+#define _gloffset_Color3dv 12
+#define _gloffset_Color3f 13
+#define _gloffset_Color3fv 14
+#define _gloffset_Color3i 15
+#define _gloffset_Color3iv 16
+#define _gloffset_Color3s 17
+#define _gloffset_Color3sv 18
+#define _gloffset_Color3ub 19
+#define _gloffset_Color3ubv 20
+#define _gloffset_Color3ui 21
+#define _gloffset_Color3uiv 22
+#define _gloffset_Color3us 23
+#define _gloffset_Color3usv 24
+#define _gloffset_Color4b 25
+#define _gloffset_Color4bv 26
+#define _gloffset_Color4d 27
+#define _gloffset_Color4dv 28
+#define _gloffset_Color4f 29
+#define _gloffset_Color4fv 30
+#define _gloffset_Color4i 31
+#define _gloffset_Color4iv 32
+#define _gloffset_Color4s 33
+#define _gloffset_Color4sv 34
+#define _gloffset_Color4ub 35
+#define _gloffset_Color4ubv 36
+#define _gloffset_Color4ui 37
+#define _gloffset_Color4uiv 38
+#define _gloffset_Color4us 39
+#define _gloffset_Color4usv 40
+#define _gloffset_EdgeFlag 41
+#define _gloffset_EdgeFlagv 42
+#define _gloffset_End 43
+#define _gloffset_Indexd 44
+#define _gloffset_Indexdv 45
+#define _gloffset_Indexf 46
+#define _gloffset_Indexfv 47
+#define _gloffset_Indexi 48
+#define _gloffset_Indexiv 49
+#define _gloffset_Indexs 50
+#define _gloffset_Indexsv 51
+#define _gloffset_Normal3b 52
+#define _gloffset_Normal3bv 53
+#define _gloffset_Normal3d 54
+#define _gloffset_Normal3dv 55
+#define _gloffset_Normal3f 56
+#define _gloffset_Normal3fv 57
+#define _gloffset_Normal3i 58
+#define _gloffset_Normal3iv 59
+#define _gloffset_Normal3s 60
+#define _gloffset_Normal3sv 61
+#define _gloffset_RasterPos2d 62
+#define _gloffset_RasterPos2dv 63
+#define _gloffset_RasterPos2f 64
+#define _gloffset_RasterPos2fv 65
+#define _gloffset_RasterPos2i 66
+#define _gloffset_RasterPos2iv 67
+#define _gloffset_RasterPos2s 68
+#define _gloffset_RasterPos2sv 69
+#define _gloffset_RasterPos3d 70
+#define _gloffset_RasterPos3dv 71
+#define _gloffset_RasterPos3f 72
+#define _gloffset_RasterPos3fv 73
+#define _gloffset_RasterPos3i 74
+#define _gloffset_RasterPos3iv 75
+#define _gloffset_RasterPos3s 76
+#define _gloffset_RasterPos3sv 77
+#define _gloffset_RasterPos4d 78
+#define _gloffset_RasterPos4dv 79
+#define _gloffset_RasterPos4f 80
+#define _gloffset_RasterPos4fv 81
+#define _gloffset_RasterPos4i 82
+#define _gloffset_RasterPos4iv 83
+#define _gloffset_RasterPos4s 84
+#define _gloffset_RasterPos4sv 85
+#define _gloffset_Rectd 86
+#define _gloffset_Rectdv 87
+#define _gloffset_Rectf 88
+#define _gloffset_Rectfv 89
+#define _gloffset_Recti 90
+#define _gloffset_Rectiv 91
+#define _gloffset_Rects 92
+#define _gloffset_Rectsv 93
+#define _gloffset_TexCoord1d 94
+#define _gloffset_TexCoord1dv 95
+#define _gloffset_TexCoord1f 96
+#define _gloffset_TexCoord1fv 97
+#define _gloffset_TexCoord1i 98
+#define _gloffset_TexCoord1iv 99
+#define _gloffset_TexCoord1s 100
+#define _gloffset_TexCoord1sv 101
+#define _gloffset_TexCoord2d 102
+#define _gloffset_TexCoord2dv 103
+#define _gloffset_TexCoord2f 104
+#define _gloffset_TexCoord2fv 105
+#define _gloffset_TexCoord2i 106
+#define _gloffset_TexCoord2iv 107
+#define _gloffset_TexCoord2s 108
+#define _gloffset_TexCoord2sv 109
+#define _gloffset_TexCoord3d 110
+#define _gloffset_TexCoord3dv 111
+#define _gloffset_TexCoord3f 112
+#define _gloffset_TexCoord3fv 113
+#define _gloffset_TexCoord3i 114
+#define _gloffset_TexCoord3iv 115
+#define _gloffset_TexCoord3s 116
+#define _gloffset_TexCoord3sv 117
+#define _gloffset_TexCoord4d 118
+#define _gloffset_TexCoord4dv 119
+#define _gloffset_TexCoord4f 120
+#define _gloffset_TexCoord4fv 121
+#define _gloffset_TexCoord4i 122
+#define _gloffset_TexCoord4iv 123
+#define _gloffset_TexCoord4s 124
+#define _gloffset_TexCoord4sv 125
+#define _gloffset_Vertex2d 126
+#define _gloffset_Vertex2dv 127
+#define _gloffset_Vertex2f 128
+#define _gloffset_Vertex2fv 129
+#define _gloffset_Vertex2i 130
+#define _gloffset_Vertex2iv 131
+#define _gloffset_Vertex2s 132
+#define _gloffset_Vertex2sv 133
+#define _gloffset_Vertex3d 134
+#define _gloffset_Vertex3dv 135
+#define _gloffset_Vertex3f 136
+#define _gloffset_Vertex3fv 137
+#define _gloffset_Vertex3i 138
+#define _gloffset_Vertex3iv 139
+#define _gloffset_Vertex3s 140
+#define _gloffset_Vertex3sv 141
+#define _gloffset_Vertex4d 142
+#define _gloffset_Vertex4dv 143
+#define _gloffset_Vertex4f 144
+#define _gloffset_Vertex4fv 145
+#define _gloffset_Vertex4i 146
+#define _gloffset_Vertex4iv 147
+#define _gloffset_Vertex4s 148
+#define _gloffset_Vertex4sv 149
+#define _gloffset_ClipPlane 150
+#define _gloffset_ColorMaterial 151
+#define _gloffset_CullFace 152
+#define _gloffset_Fogf 153
+#define _gloffset_Fogfv 154
+#define _gloffset_Fogi 155
+#define _gloffset_Fogiv 156
+#define _gloffset_FrontFace 157
+#define _gloffset_Hint 158
+#define _gloffset_Lightf 159
+#define _gloffset_Lightfv 160
+#define _gloffset_Lighti 161
+#define _gloffset_Lightiv 162
+#define _gloffset_LightModelf 163
+#define _gloffset_LightModelfv 164
+#define _gloffset_LightModeli 165
+#define _gloffset_LightModeliv 166
+#define _gloffset_LineStipple 167
+#define _gloffset_LineWidth 168
+#define _gloffset_Materialf 169
+#define _gloffset_Materialfv 170
+#define _gloffset_Materiali 171
+#define _gloffset_Materialiv 172
+#define _gloffset_PointSize 173
+#define _gloffset_PolygonMode 174
+#define _gloffset_PolygonStipple 175
+#define _gloffset_Scissor 176
+#define _gloffset_ShadeModel 177
+#define _gloffset_TexParameterf 178
+#define _gloffset_TexParameterfv 179
+#define _gloffset_TexParameteri 180
+#define _gloffset_TexParameteriv 181
+#define _gloffset_TexImage1D 182
+#define _gloffset_TexImage2D 183
+#define _gloffset_TexEnvf 184
+#define _gloffset_TexEnvfv 185
+#define _gloffset_TexEnvi 186
+#define _gloffset_TexEnviv 187
+#define _gloffset_TexGend 188
+#define _gloffset_TexGendv 189
+#define _gloffset_TexGenf 190
+#define _gloffset_TexGenfv 191
+#define _gloffset_TexGeni 192
+#define _gloffset_TexGeniv 193
+#define _gloffset_FeedbackBuffer 194
+#define _gloffset_SelectBuffer 195
+#define _gloffset_RenderMode 196
+#define _gloffset_InitNames 197
+#define _gloffset_LoadName 198
+#define _gloffset_PassThrough 199
+#define _gloffset_PopName 200
+#define _gloffset_PushName 201
+#define _gloffset_DrawBuffer 202
+#define _gloffset_Clear 203
+#define _gloffset_ClearAccum 204
+#define _gloffset_ClearIndex 205
+#define _gloffset_ClearColor 206
+#define _gloffset_ClearStencil 207
+#define _gloffset_ClearDepth 208
+#define _gloffset_StencilMask 209
+#define _gloffset_ColorMask 210
+#define _gloffset_DepthMask 211
+#define _gloffset_IndexMask 212
+#define _gloffset_Accum 213
+#define _gloffset_Disable 214
+#define _gloffset_Enable 215
+#define _gloffset_Finish 216
+#define _gloffset_Flush 217
+#define _gloffset_PopAttrib 218
+#define _gloffset_PushAttrib 219
+#define _gloffset_Map1d 220
+#define _gloffset_Map1f 221
+#define _gloffset_Map2d 222
+#define _gloffset_Map2f 223
+#define _gloffset_MapGrid1d 224
+#define _gloffset_MapGrid1f 225
+#define _gloffset_MapGrid2d 226
+#define _gloffset_MapGrid2f 227
+#define _gloffset_EvalCoord1d 228
+#define _gloffset_EvalCoord1dv 229
+#define _gloffset_EvalCoord1f 230
+#define _gloffset_EvalCoord1fv 231
+#define _gloffset_EvalCoord2d 232
+#define _gloffset_EvalCoord2dv 233
+#define _gloffset_EvalCoord2f 234
+#define _gloffset_EvalCoord2fv 235
+#define _gloffset_EvalMesh1 236
+#define _gloffset_EvalPoint1 237
+#define _gloffset_EvalMesh2 238
+#define _gloffset_EvalPoint2 239
+#define _gloffset_AlphaFunc 240
+#define _gloffset_BlendFunc 241
+#define _gloffset_LogicOp 242
+#define _gloffset_StencilFunc 243
+#define _gloffset_StencilOp 244
+#define _gloffset_DepthFunc 245
+#define _gloffset_PixelZoom 246
+#define _gloffset_PixelTransferf 247
+#define _gloffset_PixelTransferi 248
+#define _gloffset_PixelStoref 249
+#define _gloffset_PixelStorei 250
+#define _gloffset_PixelMapfv 251
+#define _gloffset_PixelMapuiv 252
+#define _gloffset_PixelMapusv 253
+#define _gloffset_ReadBuffer 254
+#define _gloffset_CopyPixels 255
+#define _gloffset_ReadPixels 256
+#define _gloffset_DrawPixels 257
+#define _gloffset_GetBooleanv 258
+#define _gloffset_GetClipPlane 259
+#define _gloffset_GetDoublev 260
+#define _gloffset_GetError 261
+#define _gloffset_GetFloatv 262
+#define _gloffset_GetIntegerv 263
+#define _gloffset_GetLightfv 264
+#define _gloffset_GetLightiv 265
+#define _gloffset_GetMapdv 266
+#define _gloffset_GetMapfv 267
+#define _gloffset_GetMapiv 268
+#define _gloffset_GetMaterialfv 269
+#define _gloffset_GetMaterialiv 270
+#define _gloffset_GetPixelMapfv 271
+#define _gloffset_GetPixelMapuiv 272
+#define _gloffset_GetPixelMapusv 273
+#define _gloffset_GetPolygonStipple 274
+#define _gloffset_GetString 275
+#define _gloffset_GetTexEnvfv 276
+#define _gloffset_GetTexEnviv 277
+#define _gloffset_GetTexGendv 278
+#define _gloffset_GetTexGenfv 279
+#define _gloffset_GetTexGeniv 280
+#define _gloffset_GetTexImage 281
+#define _gloffset_GetTexParameterfv 282
+#define _gloffset_GetTexParameteriv 283
+#define _gloffset_GetTexLevelParameterfv 284
+#define _gloffset_GetTexLevelParameteriv 285
+#define _gloffset_IsEnabled 286
+#define _gloffset_IsList 287
+#define _gloffset_DepthRange 288
+#define _gloffset_Frustum 289
+#define _gloffset_LoadIdentity 290
+#define _gloffset_LoadMatrixf 291
+#define _gloffset_LoadMatrixd 292
+#define _gloffset_MatrixMode 293
+#define _gloffset_MultMatrixf 294
+#define _gloffset_MultMatrixd 295
+#define _gloffset_Ortho 296
+#define _gloffset_PopMatrix 297
+#define _gloffset_PushMatrix 298
+#define _gloffset_Rotated 299
+#define _gloffset_Rotatef 300
+#define _gloffset_Scaled 301
+#define _gloffset_Scalef 302
+#define _gloffset_Translated 303
+#define _gloffset_Translatef 304
+#define _gloffset_Viewport 305
+#define _gloffset_ArrayElement 306
+#define _gloffset_BindTexture 307
+#define _gloffset_ColorPointer 308
+#define _gloffset_DisableClientState 309
+#define _gloffset_DrawArrays 310
+#define _gloffset_DrawElements 311
+#define _gloffset_EdgeFlagPointer 312
+#define _gloffset_EnableClientState 313
+#define _gloffset_IndexPointer 314
+#define _gloffset_Indexub 315
+#define _gloffset_Indexubv 316
+#define _gloffset_InterleavedArrays 317
+#define _gloffset_NormalPointer 318
+#define _gloffset_PolygonOffset 319
+#define _gloffset_TexCoordPointer 320
+#define _gloffset_VertexPointer 321
+#define _gloffset_AreTexturesResident 322
+#define _gloffset_CopyTexImage1D 323
+#define _gloffset_CopyTexImage2D 324
+#define _gloffset_CopyTexSubImage1D 325
+#define _gloffset_CopyTexSubImage2D 326
+#define _gloffset_DeleteTextures 327
+#define _gloffset_GenTextures 328
+#define _gloffset_GetPointerv 329
+#define _gloffset_IsTexture 330
+#define _gloffset_PrioritizeTextures 331
+#define _gloffset_TexSubImage1D 332
+#define _gloffset_TexSubImage2D 333
+#define _gloffset_PopClientAttrib 334
+#define _gloffset_PushClientAttrib 335
+#define _gloffset_BlendColor 336
+#define _gloffset_BlendEquation 337
+#define _gloffset_DrawRangeElements 338
+#define _gloffset_ColorTable 339
+#define _gloffset_ColorTableParameterfv 340
+#define _gloffset_ColorTableParameteriv 341
+#define _gloffset_CopyColorTable 342
+#define _gloffset_GetColorTable 343
+#define _gloffset_GetColorTableParameterfv 344
+#define _gloffset_GetColorTableParameteriv 345
+#define _gloffset_ColorSubTable 346
+#define _gloffset_CopyColorSubTable 347
+#define _gloffset_ConvolutionFilter1D 348
+#define _gloffset_ConvolutionFilter2D 349
+#define _gloffset_ConvolutionParameterf 350
+#define _gloffset_ConvolutionParameterfv 351
+#define _gloffset_ConvolutionParameteri 352
+#define _gloffset_ConvolutionParameteriv 353
+#define _gloffset_CopyConvolutionFilter1D 354
+#define _gloffset_CopyConvolutionFilter2D 355
+#define _gloffset_GetConvolutionFilter 356
+#define _gloffset_GetConvolutionParameterfv 357
+#define _gloffset_GetConvolutionParameteriv 358
+#define _gloffset_GetSeparableFilter 359
+#define _gloffset_SeparableFilter2D 360
+#define _gloffset_GetHistogram 361
+#define _gloffset_GetHistogramParameterfv 362
+#define _gloffset_GetHistogramParameteriv 363
+#define _gloffset_GetMinmax 364
+#define _gloffset_GetMinmaxParameterfv 365
+#define _gloffset_GetMinmaxParameteriv 366
+#define _gloffset_Histogram 367
+#define _gloffset_Minmax 368
+#define _gloffset_ResetHistogram 369
+#define _gloffset_ResetMinmax 370
+#define _gloffset_TexImage3D 371
+#define _gloffset_TexSubImage3D 372
+#define _gloffset_CopyTexSubImage3D 373
+#define _gloffset_ActiveTexture 374
+#define _gloffset_ClientActiveTexture 375
+#define _gloffset_MultiTexCoord1d 376
+#define _gloffset_MultiTexCoord1dv 377
+#define _gloffset_MultiTexCoord1fARB 378
+#define _gloffset_MultiTexCoord1fvARB 379
+#define _gloffset_MultiTexCoord1i 380
+#define _gloffset_MultiTexCoord1iv 381
+#define _gloffset_MultiTexCoord1s 382
+#define _gloffset_MultiTexCoord1sv 383
+#define _gloffset_MultiTexCoord2d 384
+#define _gloffset_MultiTexCoord2dv 385
+#define _gloffset_MultiTexCoord2fARB 386
+#define _gloffset_MultiTexCoord2fvARB 387
+#define _gloffset_MultiTexCoord2i 388
+#define _gloffset_MultiTexCoord2iv 389
+#define _gloffset_MultiTexCoord2s 390
+#define _gloffset_MultiTexCoord2sv 391
+#define _gloffset_MultiTexCoord3d 392
+#define _gloffset_MultiTexCoord3dv 393
+#define _gloffset_MultiTexCoord3fARB 394
+#define _gloffset_MultiTexCoord3fvARB 395
+#define _gloffset_MultiTexCoord3i 396
+#define _gloffset_MultiTexCoord3iv 397
+#define _gloffset_MultiTexCoord3s 398
+#define _gloffset_MultiTexCoord3sv 399
+#define _gloffset_MultiTexCoord4d 400
+#define _gloffset_MultiTexCoord4dv 401
+#define _gloffset_MultiTexCoord4fARB 402
+#define _gloffset_MultiTexCoord4fvARB 403
+#define _gloffset_MultiTexCoord4i 404
+#define _gloffset_MultiTexCoord4iv 405
+#define _gloffset_MultiTexCoord4s 406
+#define _gloffset_MultiTexCoord4sv 407
+#define driDispatchRemapTable_size 667
+SERVEXTERN int driDispatchRemapTable[ driDispatchRemapTable_size ];
+
+#define CompressedTexImage1D_remap_index 0
+#define CompressedTexImage2D_remap_index 1
+#define CompressedTexImage3D_remap_index 2
+#define CompressedTexSubImage1D_remap_index 3
+#define CompressedTexSubImage2D_remap_index 4
+#define CompressedTexSubImage3D_remap_index 5
+#define GetCompressedTexImage_remap_index 6
+#define LoadTransposeMatrixd_remap_index 7
+#define LoadTransposeMatrixf_remap_index 8
+#define MultTransposeMatrixd_remap_index 9
+#define MultTransposeMatrixf_remap_index 10
+#define SampleCoverage_remap_index 11
+#define BlendFuncSeparate_remap_index 12
+#define FogCoordPointer_remap_index 13
+#define FogCoordd_remap_index 14
+#define FogCoorddv_remap_index 15
+#define MultiDrawArrays_remap_index 16
+#define PointParameterf_remap_index 17
+#define PointParameterfv_remap_index 18
+#define PointParameteri_remap_index 19
+#define PointParameteriv_remap_index 20
+#define SecondaryColor3b_remap_index 21
+#define SecondaryColor3bv_remap_index 22
+#define SecondaryColor3d_remap_index 23
+#define SecondaryColor3dv_remap_index 24
+#define SecondaryColor3i_remap_index 25
+#define SecondaryColor3iv_remap_index 26
+#define SecondaryColor3s_remap_index 27
+#define SecondaryColor3sv_remap_index 28
+#define SecondaryColor3ub_remap_index 29
+#define SecondaryColor3ubv_remap_index 30
+#define SecondaryColor3ui_remap_index 31
+#define SecondaryColor3uiv_remap_index 32
+#define SecondaryColor3us_remap_index 33
+#define SecondaryColor3usv_remap_index 34
+#define SecondaryColorPointer_remap_index 35
+#define WindowPos2d_remap_index 36
+#define WindowPos2dv_remap_index 37
+#define WindowPos2f_remap_index 38
+#define WindowPos2fv_remap_index 39
+#define WindowPos2i_remap_index 40
+#define WindowPos2iv_remap_index 41
+#define WindowPos2s_remap_index 42
+#define WindowPos2sv_remap_index 43
+#define WindowPos3d_remap_index 44
+#define WindowPos3dv_remap_index 45
+#define WindowPos3f_remap_index 46
+#define WindowPos3fv_remap_index 47
+#define WindowPos3i_remap_index 48
+#define WindowPos3iv_remap_index 49
+#define WindowPos3s_remap_index 50
+#define WindowPos3sv_remap_index 51
+#define BeginQuery_remap_index 52
+#define BindBuffer_remap_index 53
+#define BufferData_remap_index 54
+#define BufferSubData_remap_index 55
+#define DeleteBuffers_remap_index 56
+#define DeleteQueries_remap_index 57
+#define EndQuery_remap_index 58
+#define GenBuffers_remap_index 59
+#define GenQueries_remap_index 60
+#define GetBufferParameteriv_remap_index 61
+#define GetBufferPointerv_remap_index 62
+#define GetBufferSubData_remap_index 63
+#define GetQueryObjectiv_remap_index 64
+#define GetQueryObjectuiv_remap_index 65
+#define GetQueryiv_remap_index 66
+#define IsBuffer_remap_index 67
+#define IsQuery_remap_index 68
+#define MapBuffer_remap_index 69
+#define UnmapBuffer_remap_index 70
+#define AttachShader_remap_index 71
+#define BindAttribLocation_remap_index 72
+#define BlendEquationSeparate_remap_index 73
+#define CompileShader_remap_index 74
+#define CreateProgram_remap_index 75
+#define CreateShader_remap_index 76
+#define DeleteProgram_remap_index 77
+#define DeleteShader_remap_index 78
+#define DetachShader_remap_index 79
+#define DisableVertexAttribArray_remap_index 80
+#define DrawBuffers_remap_index 81
+#define EnableVertexAttribArray_remap_index 82
+#define GetActiveAttrib_remap_index 83
+#define GetActiveUniform_remap_index 84
+#define GetAttachedShaders_remap_index 85
+#define GetAttribLocation_remap_index 86
+#define GetProgramInfoLog_remap_index 87
+#define GetProgramiv_remap_index 88
+#define GetShaderInfoLog_remap_index 89
+#define GetShaderSource_remap_index 90
+#define GetShaderiv_remap_index 91
+#define GetUniformLocation_remap_index 92
+#define GetUniformfv_remap_index 93
+#define GetUniformiv_remap_index 94
+#define GetVertexAttribPointerv_remap_index 95
+#define GetVertexAttribdv_remap_index 96
+#define GetVertexAttribfv_remap_index 97
+#define GetVertexAttribiv_remap_index 98
+#define IsProgram_remap_index 99
+#define IsShader_remap_index 100
+#define LinkProgram_remap_index 101
+#define ShaderSource_remap_index 102
+#define StencilFuncSeparate_remap_index 103
+#define StencilMaskSeparate_remap_index 104
+#define StencilOpSeparate_remap_index 105
+#define Uniform1f_remap_index 106
+#define Uniform1fv_remap_index 107
+#define Uniform1i_remap_index 108
+#define Uniform1iv_remap_index 109
+#define Uniform2f_remap_index 110
+#define Uniform2fv_remap_index 111
+#define Uniform2i_remap_index 112
+#define Uniform2iv_remap_index 113
+#define Uniform3f_remap_index 114
+#define Uniform3fv_remap_index 115
+#define Uniform3i_remap_index 116
+#define Uniform3iv_remap_index 117
+#define Uniform4f_remap_index 118
+#define Uniform4fv_remap_index 119
+#define Uniform4i_remap_index 120
+#define Uniform4iv_remap_index 121
+#define UniformMatrix2fv_remap_index 122
+#define UniformMatrix3fv_remap_index 123
+#define UniformMatrix4fv_remap_index 124
+#define UseProgram_remap_index 125
+#define ValidateProgram_remap_index 126
+#define VertexAttrib1d_remap_index 127
+#define VertexAttrib1dv_remap_index 128
+#define VertexAttrib1s_remap_index 129
+#define VertexAttrib1sv_remap_index 130
+#define VertexAttrib2d_remap_index 131
+#define VertexAttrib2dv_remap_index 132
+#define VertexAttrib2s_remap_index 133
+#define VertexAttrib2sv_remap_index 134
+#define VertexAttrib3d_remap_index 135
+#define VertexAttrib3dv_remap_index 136
+#define VertexAttrib3s_remap_index 137
+#define VertexAttrib3sv_remap_index 138
+#define VertexAttrib4Nbv_remap_index 139
+#define VertexAttrib4Niv_remap_index 140
+#define VertexAttrib4Nsv_remap_index 141
+#define VertexAttrib4Nub_remap_index 142
+#define VertexAttrib4Nubv_remap_index 143
+#define VertexAttrib4Nuiv_remap_index 144
+#define VertexAttrib4Nusv_remap_index 145
+#define VertexAttrib4bv_remap_index 146
+#define VertexAttrib4d_remap_index 147
+#define VertexAttrib4dv_remap_index 148
+#define VertexAttrib4iv_remap_index 149
+#define VertexAttrib4s_remap_index 150
+#define VertexAttrib4sv_remap_index 151
+#define VertexAttrib4ubv_remap_index 152
+#define VertexAttrib4uiv_remap_index 153
+#define VertexAttrib4usv_remap_index 154
+#define VertexAttribPointer_remap_index 155
+#define UniformMatrix2x3fv_remap_index 156
+#define UniformMatrix2x4fv_remap_index 157
+#define UniformMatrix3x2fv_remap_index 158
+#define UniformMatrix3x4fv_remap_index 159
+#define UniformMatrix4x2fv_remap_index 160
+#define UniformMatrix4x3fv_remap_index 161
+#define BeginConditionalRender_remap_index 162
+#define BeginTransformFeedback_remap_index 163
+#define BindBufferBase_remap_index 164
+#define BindBufferRange_remap_index 165
+#define BindFragDataLocation_remap_index 166
+#define ClampColor_remap_index 167
+#define ClearBufferfi_remap_index 168
+#define ClearBufferfv_remap_index 169
+#define ClearBufferiv_remap_index 170
+#define ClearBufferuiv_remap_index 171
+#define ColorMaski_remap_index 172
+#define Disablei_remap_index 173
+#define Enablei_remap_index 174
+#define EndConditionalRender_remap_index 175
+#define EndTransformFeedback_remap_index 176
+#define GetBooleani_v_remap_index 177
+#define GetFragDataLocation_remap_index 178
+#define GetIntegeri_v_remap_index 179
+#define GetStringi_remap_index 180
+#define GetTexParameterIiv_remap_index 181
+#define GetTexParameterIuiv_remap_index 182
+#define GetTransformFeedbackVarying_remap_index 183
+#define GetUniformuiv_remap_index 184
+#define GetVertexAttribIiv_remap_index 185
+#define GetVertexAttribIuiv_remap_index 186
+#define IsEnabledi_remap_index 187
+#define TexParameterIiv_remap_index 188
+#define TexParameterIuiv_remap_index 189
+#define TransformFeedbackVaryings_remap_index 190
+#define Uniform1ui_remap_index 191
+#define Uniform1uiv_remap_index 192
+#define Uniform2ui_remap_index 193
+#define Uniform2uiv_remap_index 194
+#define Uniform3ui_remap_index 195
+#define Uniform3uiv_remap_index 196
+#define Uniform4ui_remap_index 197
+#define Uniform4uiv_remap_index 198
+#define VertexAttribI1iv_remap_index 199
+#define VertexAttribI1uiv_remap_index 200
+#define VertexAttribI4bv_remap_index 201
+#define VertexAttribI4sv_remap_index 202
+#define VertexAttribI4ubv_remap_index 203
+#define VertexAttribI4usv_remap_index 204
+#define VertexAttribIPointer_remap_index 205
+#define PrimitiveRestartIndex_remap_index 206
+#define TexBuffer_remap_index 207
+#define FramebufferTexture_remap_index 208
+#define GetBufferParameteri64v_remap_index 209
+#define GetInteger64i_v_remap_index 210
+#define VertexAttribDivisor_remap_index 211
+#define MinSampleShading_remap_index 212
+#define BindProgramARB_remap_index 213
+#define DeleteProgramsARB_remap_index 214
+#define GenProgramsARB_remap_index 215
+#define GetProgramEnvParameterdvARB_remap_index 216
+#define GetProgramEnvParameterfvARB_remap_index 217
+#define GetProgramLocalParameterdvARB_remap_index 218
+#define GetProgramLocalParameterfvARB_remap_index 219
+#define GetProgramStringARB_remap_index 220
+#define GetProgramivARB_remap_index 221
+#define IsProgramARB_remap_index 222
+#define ProgramEnvParameter4dARB_remap_index 223
+#define ProgramEnvParameter4dvARB_remap_index 224
+#define ProgramEnvParameter4fARB_remap_index 225
+#define ProgramEnvParameter4fvARB_remap_index 226
+#define ProgramLocalParameter4dARB_remap_index 227
+#define ProgramLocalParameter4dvARB_remap_index 228
+#define ProgramLocalParameter4fARB_remap_index 229
+#define ProgramLocalParameter4fvARB_remap_index 230
+#define ProgramStringARB_remap_index 231
+#define VertexAttrib1fARB_remap_index 232
+#define VertexAttrib1fvARB_remap_index 233
+#define VertexAttrib2fARB_remap_index 234
+#define VertexAttrib2fvARB_remap_index 235
+#define VertexAttrib3fARB_remap_index 236
+#define VertexAttrib3fvARB_remap_index 237
+#define VertexAttrib4fARB_remap_index 238
+#define VertexAttrib4fvARB_remap_index 239
+#define AttachObjectARB_remap_index 240
+#define CreateProgramObjectARB_remap_index 241
+#define CreateShaderObjectARB_remap_index 242
+#define DeleteObjectARB_remap_index 243
+#define DetachObjectARB_remap_index 244
+#define GetAttachedObjectsARB_remap_index 245
+#define GetHandleARB_remap_index 246
+#define GetInfoLogARB_remap_index 247
+#define GetObjectParameterfvARB_remap_index 248
+#define GetObjectParameterivARB_remap_index 249
+#define DrawArraysInstancedARB_remap_index 250
+#define DrawElementsInstancedARB_remap_index 251
+#define BindFramebuffer_remap_index 252
+#define BindRenderbuffer_remap_index 253
+#define BlitFramebuffer_remap_index 254
+#define CheckFramebufferStatus_remap_index 255
+#define DeleteFramebuffers_remap_index 256
+#define DeleteRenderbuffers_remap_index 257
+#define FramebufferRenderbuffer_remap_index 258
+#define FramebufferTexture1D_remap_index 259
+#define FramebufferTexture2D_remap_index 260
+#define FramebufferTexture3D_remap_index 261
+#define FramebufferTextureLayer_remap_index 262
+#define GenFramebuffers_remap_index 263
+#define GenRenderbuffers_remap_index 264
+#define GenerateMipmap_remap_index 265
+#define GetFramebufferAttachmentParameteriv_remap_index 266
+#define GetRenderbufferParameteriv_remap_index 267
+#define IsFramebuffer_remap_index 268
+#define IsRenderbuffer_remap_index 269
+#define RenderbufferStorage_remap_index 270
+#define RenderbufferStorageMultisample_remap_index 271
+#define FramebufferTextureFaceARB_remap_index 272
+#define FlushMappedBufferRange_remap_index 273
+#define MapBufferRange_remap_index 274
+#define BindVertexArray_remap_index 275
+#define DeleteVertexArrays_remap_index 276
+#define GenVertexArrays_remap_index 277
+#define IsVertexArray_remap_index 278
+#define GetActiveUniformBlockName_remap_index 279
+#define GetActiveUniformBlockiv_remap_index 280
+#define GetActiveUniformName_remap_index 281
+#define GetActiveUniformsiv_remap_index 282
+#define GetUniformBlockIndex_remap_index 283
+#define GetUniformIndices_remap_index 284
+#define UniformBlockBinding_remap_index 285
+#define CopyBufferSubData_remap_index 286
+#define ClientWaitSync_remap_index 287
+#define DeleteSync_remap_index 288
+#define FenceSync_remap_index 289
+#define GetInteger64v_remap_index 290
+#define GetSynciv_remap_index 291
+#define IsSync_remap_index 292
+#define WaitSync_remap_index 293
+#define DrawElementsBaseVertex_remap_index 294
+#define DrawElementsInstancedBaseVertex_remap_index 295
+#define DrawRangeElementsBaseVertex_remap_index 296
+#define MultiDrawElementsBaseVertex_remap_index 297
+#define ProvokingVertex_remap_index 298
+#define GetMultisamplefv_remap_index 299
+#define SampleMaski_remap_index 300
+#define TexImage2DMultisample_remap_index 301
+#define TexImage3DMultisample_remap_index 302
+#define BlendEquationSeparateiARB_remap_index 303
+#define BlendEquationiARB_remap_index 304
+#define BlendFuncSeparateiARB_remap_index 305
+#define BlendFunciARB_remap_index 306
+#define BindFragDataLocationIndexed_remap_index 307
+#define GetFragDataIndex_remap_index 308
+#define BindSampler_remap_index 309
+#define DeleteSamplers_remap_index 310
+#define GenSamplers_remap_index 311
+#define GetSamplerParameterIiv_remap_index 312
+#define GetSamplerParameterIuiv_remap_index 313
+#define GetSamplerParameterfv_remap_index 314
+#define GetSamplerParameteriv_remap_index 315
+#define IsSampler_remap_index 316
+#define SamplerParameterIiv_remap_index 317
+#define SamplerParameterIuiv_remap_index 318
+#define SamplerParameterf_remap_index 319
+#define SamplerParameterfv_remap_index 320
+#define SamplerParameteri_remap_index 321
+#define SamplerParameteriv_remap_index 322
+#define GetQueryObjecti64v_remap_index 323
+#define GetQueryObjectui64v_remap_index 324
+#define QueryCounter_remap_index 325
+#define ColorP3ui_remap_index 326
+#define ColorP3uiv_remap_index 327
+#define ColorP4ui_remap_index 328
+#define ColorP4uiv_remap_index 329
+#define MultiTexCoordP1ui_remap_index 330
+#define MultiTexCoordP1uiv_remap_index 331
+#define MultiTexCoordP2ui_remap_index 332
+#define MultiTexCoordP2uiv_remap_index 333
+#define MultiTexCoordP3ui_remap_index 334
+#define MultiTexCoordP3uiv_remap_index 335
+#define MultiTexCoordP4ui_remap_index 336
+#define MultiTexCoordP4uiv_remap_index 337
+#define NormalP3ui_remap_index 338
+#define NormalP3uiv_remap_index 339
+#define SecondaryColorP3ui_remap_index 340
+#define SecondaryColorP3uiv_remap_index 341
+#define TexCoordP1ui_remap_index 342
+#define TexCoordP1uiv_remap_index 343
+#define TexCoordP2ui_remap_index 344
+#define TexCoordP2uiv_remap_index 345
+#define TexCoordP3ui_remap_index 346
+#define TexCoordP3uiv_remap_index 347
+#define TexCoordP4ui_remap_index 348
+#define TexCoordP4uiv_remap_index 349
+#define VertexAttribP1ui_remap_index 350
+#define VertexAttribP1uiv_remap_index 351
+#define VertexAttribP2ui_remap_index 352
+#define VertexAttribP2uiv_remap_index 353
+#define VertexAttribP3ui_remap_index 354
+#define VertexAttribP3uiv_remap_index 355
+#define VertexAttribP4ui_remap_index 356
+#define VertexAttribP4uiv_remap_index 357
+#define VertexP2ui_remap_index 358
+#define VertexP2uiv_remap_index 359
+#define VertexP3ui_remap_index 360
+#define VertexP3uiv_remap_index 361
+#define VertexP4ui_remap_index 362
+#define VertexP4uiv_remap_index 363
+#define BindTransformFeedback_remap_index 364
+#define DeleteTransformFeedbacks_remap_index 365
+#define DrawTransformFeedback_remap_index 366
+#define GenTransformFeedbacks_remap_index 367
+#define IsTransformFeedback_remap_index 368
+#define PauseTransformFeedback_remap_index 369
+#define ResumeTransformFeedback_remap_index 370
+#define BeginQueryIndexed_remap_index 371
+#define DrawTransformFeedbackStream_remap_index 372
+#define EndQueryIndexed_remap_index 373
+#define GetQueryIndexediv_remap_index 374
+#define ClearDepthf_remap_index 375
+#define DepthRangef_remap_index 376
+#define GetShaderPrecisionFormat_remap_index 377
+#define ReleaseShaderCompiler_remap_index 378
+#define ShaderBinary_remap_index 379
+#define GetProgramBinary_remap_index 380
+#define ProgramBinary_remap_index 381
+#define ProgramParameteri_remap_index 382
+#define DebugMessageCallbackARB_remap_index 383
+#define DebugMessageControlARB_remap_index 384
+#define DebugMessageInsertARB_remap_index 385
+#define GetDebugMessageLogARB_remap_index 386
+#define GetGraphicsResetStatusARB_remap_index 387
+#define GetnColorTableARB_remap_index 388
+#define GetnCompressedTexImageARB_remap_index 389
+#define GetnConvolutionFilterARB_remap_index 390
+#define GetnHistogramARB_remap_index 391
+#define GetnMapdvARB_remap_index 392
+#define GetnMapfvARB_remap_index 393
+#define GetnMapivARB_remap_index 394
+#define GetnMinmaxARB_remap_index 395
+#define GetnPixelMapfvARB_remap_index 396
+#define GetnPixelMapuivARB_remap_index 397
+#define GetnPixelMapusvARB_remap_index 398
+#define GetnPolygonStippleARB_remap_index 399
+#define GetnSeparableFilterARB_remap_index 400
+#define GetnTexImageARB_remap_index 401
+#define GetnUniformdvARB_remap_index 402
+#define GetnUniformfvARB_remap_index 403
+#define GetnUniformivARB_remap_index 404
+#define GetnUniformuivARB_remap_index 405
+#define ReadnPixelsARB_remap_index 406
+#define DrawArraysInstancedBaseInstance_remap_index 407
+#define DrawElementsInstancedBaseInstance_remap_index 408
+#define DrawElementsInstancedBaseVertexBaseInstance_remap_index 409
+#define DrawTransformFeedbackInstanced_remap_index 410
+#define DrawTransformFeedbackStreamInstanced_remap_index 411
+#define GetInternalformativ_remap_index 412
+#define GetActiveAtomicCounterBufferiv_remap_index 413
+#define TexStorage1D_remap_index 414
+#define TexStorage2D_remap_index 415
+#define TexStorage3D_remap_index 416
+#define TextureStorage1DEXT_remap_index 417
+#define TextureStorage2DEXT_remap_index 418
+#define TextureStorage3DEXT_remap_index 419
+#define BindVertexBuffer_remap_index 420
+#define VertexAttribBinding_remap_index 421
+#define VertexAttribFormat_remap_index 422
+#define VertexAttribIFormat_remap_index 423
+#define VertexAttribLFormat_remap_index 424
+#define VertexBindingDivisor_remap_index 425
+#define TexBufferRange_remap_index 426
+#define TexStorage2DMultisample_remap_index 427
+#define TexStorage3DMultisample_remap_index 428
+#define InvalidateBufferData_remap_index 429
+#define InvalidateBufferSubData_remap_index 430
+#define InvalidateFramebuffer_remap_index 431
+#define InvalidateSubFramebuffer_remap_index 432
+#define InvalidateTexImage_remap_index 433
+#define InvalidateTexSubImage_remap_index 434
+#define PolygonOffsetEXT_remap_index 435
+#define DrawTexfOES_remap_index 436
+#define DrawTexfvOES_remap_index 437
+#define DrawTexiOES_remap_index 438
+#define DrawTexivOES_remap_index 439
+#define DrawTexsOES_remap_index 440
+#define DrawTexsvOES_remap_index 441
+#define DrawTexxOES_remap_index 442
+#define DrawTexxvOES_remap_index 443
+#define PointSizePointerOES_remap_index 444
+#define QueryMatrixxOES_remap_index 445
+#define SampleMaskSGIS_remap_index 446
+#define SamplePatternSGIS_remap_index 447
+#define ColorPointerEXT_remap_index 448
+#define EdgeFlagPointerEXT_remap_index 449
+#define IndexPointerEXT_remap_index 450
+#define NormalPointerEXT_remap_index 451
+#define TexCoordPointerEXT_remap_index 452
+#define VertexPointerEXT_remap_index 453
+#define DiscardFramebufferEXT_remap_index 454
+#define LockArraysEXT_remap_index 455
+#define UnlockArraysEXT_remap_index 456
+#define DebugMessageCallback_remap_index 457
+#define DebugMessageControl_remap_index 458
+#define DebugMessageInsert_remap_index 459
+#define GetDebugMessageLog_remap_index 460
+#define GetObjectLabel_remap_index 461
+#define GetObjectPtrLabel_remap_index 462
+#define ObjectLabel_remap_index 463
+#define ObjectPtrLabel_remap_index 464
+#define PopDebugGroup_remap_index 465
+#define PushDebugGroup_remap_index 466
+#define SecondaryColor3fEXT_remap_index 467
+#define SecondaryColor3fvEXT_remap_index 468
+#define MultiDrawElementsEXT_remap_index 469
+#define FogCoordfEXT_remap_index 470
+#define FogCoordfvEXT_remap_index 471
+#define ResizeBuffersMESA_remap_index 472
+#define WindowPos4dMESA_remap_index 473
+#define WindowPos4dvMESA_remap_index 474
+#define WindowPos4fMESA_remap_index 475
+#define WindowPos4fvMESA_remap_index 476
+#define WindowPos4iMESA_remap_index 477
+#define WindowPos4ivMESA_remap_index 478
+#define WindowPos4sMESA_remap_index 479
+#define WindowPos4svMESA_remap_index 480
+#define MultiModeDrawArraysIBM_remap_index 481
+#define MultiModeDrawElementsIBM_remap_index 482
+#define AreProgramsResidentNV_remap_index 483
+#define ExecuteProgramNV_remap_index 484
+#define GetProgramParameterdvNV_remap_index 485
+#define GetProgramParameterfvNV_remap_index 486
+#define GetProgramStringNV_remap_index 487
+#define GetProgramivNV_remap_index 488
+#define GetTrackMatrixivNV_remap_index 489
+#define GetVertexAttribdvNV_remap_index 490
+#define GetVertexAttribfvNV_remap_index 491
+#define GetVertexAttribivNV_remap_index 492
+#define LoadProgramNV_remap_index 493
+#define ProgramParameters4dvNV_remap_index 494
+#define ProgramParameters4fvNV_remap_index 495
+#define RequestResidentProgramsNV_remap_index 496
+#define TrackMatrixNV_remap_index 497
+#define VertexAttrib1dNV_remap_index 498
+#define VertexAttrib1dvNV_remap_index 499
+#define VertexAttrib1fNV_remap_index 500
+#define VertexAttrib1fvNV_remap_index 501
+#define VertexAttrib1sNV_remap_index 502
+#define VertexAttrib1svNV_remap_index 503
+#define VertexAttrib2dNV_remap_index 504
+#define VertexAttrib2dvNV_remap_index 505
+#define VertexAttrib2fNV_remap_index 506
+#define VertexAttrib2fvNV_remap_index 507
+#define VertexAttrib2sNV_remap_index 508
+#define VertexAttrib2svNV_remap_index 509
+#define VertexAttrib3dNV_remap_index 510
+#define VertexAttrib3dvNV_remap_index 511
+#define VertexAttrib3fNV_remap_index 512
+#define VertexAttrib3fvNV_remap_index 513
+#define VertexAttrib3sNV_remap_index 514
+#define VertexAttrib3svNV_remap_index 515
+#define VertexAttrib4dNV_remap_index 516
+#define VertexAttrib4dvNV_remap_index 517
+#define VertexAttrib4fNV_remap_index 518
+#define VertexAttrib4fvNV_remap_index 519
+#define VertexAttrib4sNV_remap_index 520
+#define VertexAttrib4svNV_remap_index 521
+#define VertexAttrib4ubNV_remap_index 522
+#define VertexAttrib4ubvNV_remap_index 523
+#define VertexAttribPointerNV_remap_index 524
+#define VertexAttribs1dvNV_remap_index 525
+#define VertexAttribs1fvNV_remap_index 526
+#define VertexAttribs1svNV_remap_index 527
+#define VertexAttribs2dvNV_remap_index 528
+#define VertexAttribs2fvNV_remap_index 529
+#define VertexAttribs2svNV_remap_index 530
+#define VertexAttribs3dvNV_remap_index 531
+#define VertexAttribs3fvNV_remap_index 532
+#define VertexAttribs3svNV_remap_index 533
+#define VertexAttribs4dvNV_remap_index 534
+#define VertexAttribs4fvNV_remap_index 535
+#define VertexAttribs4svNV_remap_index 536
+#define VertexAttribs4ubvNV_remap_index 537
+#define GetTexBumpParameterfvATI_remap_index 538
+#define GetTexBumpParameterivATI_remap_index 539
+#define TexBumpParameterfvATI_remap_index 540
+#define TexBumpParameterivATI_remap_index 541
+#define AlphaFragmentOp1ATI_remap_index 542
+#define AlphaFragmentOp2ATI_remap_index 543
+#define AlphaFragmentOp3ATI_remap_index 544
+#define BeginFragmentShaderATI_remap_index 545
+#define BindFragmentShaderATI_remap_index 546
+#define ColorFragmentOp1ATI_remap_index 547
+#define ColorFragmentOp2ATI_remap_index 548
+#define ColorFragmentOp3ATI_remap_index 549
+#define DeleteFragmentShaderATI_remap_index 550
+#define EndFragmentShaderATI_remap_index 551
+#define GenFragmentShadersATI_remap_index 552
+#define PassTexCoordATI_remap_index 553
+#define SampleMapATI_remap_index 554
+#define SetFragmentShaderConstantATI_remap_index 555
+#define ActiveStencilFaceEXT_remap_index 556
+#define BindVertexArrayAPPLE_remap_index 557
+#define GenVertexArraysAPPLE_remap_index 558
+#define GetProgramNamedParameterdvNV_remap_index 559
+#define GetProgramNamedParameterfvNV_remap_index 560
+#define ProgramNamedParameter4dNV_remap_index 561
+#define ProgramNamedParameter4dvNV_remap_index 562
+#define ProgramNamedParameter4fNV_remap_index 563
+#define ProgramNamedParameter4fvNV_remap_index 564
+#define PrimitiveRestartNV_remap_index 565
+#define GetTexGenxvOES_remap_index 566
+#define TexGenxOES_remap_index 567
+#define TexGenxvOES_remap_index 568
+#define DepthBoundsEXT_remap_index 569
+#define BindFramebufferEXT_remap_index 570
+#define BindRenderbufferEXT_remap_index 571
+#define BufferParameteriAPPLE_remap_index 572
+#define FlushMappedBufferRangeAPPLE_remap_index 573
+#define VertexAttribI1iEXT_remap_index 574
+#define VertexAttribI1uiEXT_remap_index 575
+#define VertexAttribI2iEXT_remap_index 576
+#define VertexAttribI2ivEXT_remap_index 577
+#define VertexAttribI2uiEXT_remap_index 578
+#define VertexAttribI2uivEXT_remap_index 579
+#define VertexAttribI3iEXT_remap_index 580
+#define VertexAttribI3ivEXT_remap_index 581
+#define VertexAttribI3uiEXT_remap_index 582
+#define VertexAttribI3uivEXT_remap_index 583
+#define VertexAttribI4iEXT_remap_index 584
+#define VertexAttribI4ivEXT_remap_index 585
+#define VertexAttribI4uiEXT_remap_index 586
+#define VertexAttribI4uivEXT_remap_index 587
+#define ClearColorIiEXT_remap_index 588
+#define ClearColorIuiEXT_remap_index 589
+#define BindBufferOffsetEXT_remap_index 590
+#define BeginPerfMonitorAMD_remap_index 591
+#define DeletePerfMonitorsAMD_remap_index 592
+#define EndPerfMonitorAMD_remap_index 593
+#define GenPerfMonitorsAMD_remap_index 594
+#define GetPerfMonitorCounterDataAMD_remap_index 595
+#define GetPerfMonitorCounterInfoAMD_remap_index 596
+#define GetPerfMonitorCounterStringAMD_remap_index 597
+#define GetPerfMonitorCountersAMD_remap_index 598
+#define GetPerfMonitorGroupStringAMD_remap_index 599
+#define GetPerfMonitorGroupsAMD_remap_index 600
+#define SelectPerfMonitorCountersAMD_remap_index 601
+#define GetObjectParameterivAPPLE_remap_index 602
+#define ObjectPurgeableAPPLE_remap_index 603
+#define ObjectUnpurgeableAPPLE_remap_index 604
+#define ActiveProgramEXT_remap_index 605
+#define CreateShaderProgramEXT_remap_index 606
+#define UseShaderProgramEXT_remap_index 607
+#define TextureBarrierNV_remap_index 608
+#define VDPAUFiniNV_remap_index 609
+#define VDPAUGetSurfaceivNV_remap_index 610
+#define VDPAUInitNV_remap_index 611
+#define VDPAUIsSurfaceNV_remap_index 612
+#define VDPAUMapSurfacesNV_remap_index 613
+#define VDPAURegisterOutputSurfaceNV_remap_index 614
+#define VDPAURegisterVideoSurfaceNV_remap_index 615
+#define VDPAUSurfaceAccessNV_remap_index 616
+#define VDPAUUnmapSurfacesNV_remap_index 617
+#define VDPAUUnregisterSurfaceNV_remap_index 618
+#define StencilFuncSeparateATI_remap_index 619
+#define ProgramEnvParameters4fvEXT_remap_index 620
+#define ProgramLocalParameters4fvEXT_remap_index 621
+#define EGLImageTargetRenderbufferStorageOES_remap_index 622
+#define EGLImageTargetTexture2DOES_remap_index 623
+#define AlphaFuncx_remap_index 624
+#define ClearColorx_remap_index 625
+#define ClearDepthx_remap_index 626
+#define Color4x_remap_index 627
+#define DepthRangex_remap_index 628
+#define Fogx_remap_index 629
+#define Fogxv_remap_index 630
+#define Frustumf_remap_index 631
+#define Frustumx_remap_index 632
+#define LightModelx_remap_index 633
+#define LightModelxv_remap_index 634
+#define Lightx_remap_index 635
+#define Lightxv_remap_index 636
+#define LineWidthx_remap_index 637
+#define LoadMatrixx_remap_index 638
+#define Materialx_remap_index 639
+#define Materialxv_remap_index 640
+#define MultMatrixx_remap_index 641
+#define MultiTexCoord4x_remap_index 642
+#define Normal3x_remap_index 643
+#define Orthof_remap_index 644
+#define Orthox_remap_index 645
+#define PointSizex_remap_index 646
+#define PolygonOffsetx_remap_index 647
+#define Rotatex_remap_index 648
+#define SampleCoveragex_remap_index 649
+#define Scalex_remap_index 650
+#define TexEnvx_remap_index 651
+#define TexEnvxv_remap_index 652
+#define TexParameterx_remap_index 653
+#define Translatex_remap_index 654
+#define ClipPlanef_remap_index 655
+#define ClipPlanex_remap_index 656
+#define GetClipPlanef_remap_index 657
+#define GetClipPlanex_remap_index 658
+#define GetFixedv_remap_index 659
+#define GetLightxv_remap_index 660
+#define GetMaterialxv_remap_index 661
+#define GetTexEnvxv_remap_index 662
+#define GetTexParameterxv_remap_index 663
+#define PointParameterx_remap_index 664
+#define PointParameterxv_remap_index 665
+#define TexParameterxv_remap_index 666
+
+#define _gloffset_CompressedTexImage1D driDispatchRemapTable[CompressedTexImage1D_remap_index]
+#define _gloffset_CompressedTexImage2D driDispatchRemapTable[CompressedTexImage2D_remap_index]
+#define _gloffset_CompressedTexImage3D driDispatchRemapTable[CompressedTexImage3D_remap_index]
+#define _gloffset_CompressedTexSubImage1D driDispatchRemapTable[CompressedTexSubImage1D_remap_index]
+#define _gloffset_CompressedTexSubImage2D driDispatchRemapTable[CompressedTexSubImage2D_remap_index]
+#define _gloffset_CompressedTexSubImage3D driDispatchRemapTable[CompressedTexSubImage3D_remap_index]
+#define _gloffset_GetCompressedTexImage driDispatchRemapTable[GetCompressedTexImage_remap_index]
+#define _gloffset_LoadTransposeMatrixd driDispatchRemapTable[LoadTransposeMatrixd_remap_index]
+#define _gloffset_LoadTransposeMatrixf driDispatchRemapTable[LoadTransposeMatrixf_remap_index]
+#define _gloffset_MultTransposeMatrixd driDispatchRemapTable[MultTransposeMatrixd_remap_index]
+#define _gloffset_MultTransposeMatrixf driDispatchRemapTable[MultTransposeMatrixf_remap_index]
+#define _gloffset_SampleCoverage driDispatchRemapTable[SampleCoverage_remap_index]
+#define _gloffset_BlendFuncSeparate driDispatchRemapTable[BlendFuncSeparate_remap_index]
+#define _gloffset_FogCoordPointer driDispatchRemapTable[FogCoordPointer_remap_index]
+#define _gloffset_FogCoordd driDispatchRemapTable[FogCoordd_remap_index]
+#define _gloffset_FogCoorddv driDispatchRemapTable[FogCoorddv_remap_index]
+#define _gloffset_MultiDrawArrays driDispatchRemapTable[MultiDrawArrays_remap_index]
+#define _gloffset_PointParameterf driDispatchRemapTable[PointParameterf_remap_index]
+#define _gloffset_PointParameterfv driDispatchRemapTable[PointParameterfv_remap_index]
+#define _gloffset_PointParameteri driDispatchRemapTable[PointParameteri_remap_index]
+#define _gloffset_PointParameteriv driDispatchRemapTable[PointParameteriv_remap_index]
+#define _gloffset_SecondaryColor3b driDispatchRemapTable[SecondaryColor3b_remap_index]
+#define _gloffset_SecondaryColor3bv driDispatchRemapTable[SecondaryColor3bv_remap_index]
+#define _gloffset_SecondaryColor3d driDispatchRemapTable[SecondaryColor3d_remap_index]
+#define _gloffset_SecondaryColor3dv driDispatchRemapTable[SecondaryColor3dv_remap_index]
+#define _gloffset_SecondaryColor3i driDispatchRemapTable[SecondaryColor3i_remap_index]
+#define _gloffset_SecondaryColor3iv driDispatchRemapTable[SecondaryColor3iv_remap_index]
+#define _gloffset_SecondaryColor3s driDispatchRemapTable[SecondaryColor3s_remap_index]
+#define _gloffset_SecondaryColor3sv driDispatchRemapTable[SecondaryColor3sv_remap_index]
+#define _gloffset_SecondaryColor3ub driDispatchRemapTable[SecondaryColor3ub_remap_index]
+#define _gloffset_SecondaryColor3ubv driDispatchRemapTable[SecondaryColor3ubv_remap_index]
+#define _gloffset_SecondaryColor3ui driDispatchRemapTable[SecondaryColor3ui_remap_index]
+#define _gloffset_SecondaryColor3uiv driDispatchRemapTable[SecondaryColor3uiv_remap_index]
+#define _gloffset_SecondaryColor3us driDispatchRemapTable[SecondaryColor3us_remap_index]
+#define _gloffset_SecondaryColor3usv driDispatchRemapTable[SecondaryColor3usv_remap_index]
+#define _gloffset_SecondaryColorPointer driDispatchRemapTable[SecondaryColorPointer_remap_index]
+#define _gloffset_WindowPos2d driDispatchRemapTable[WindowPos2d_remap_index]
+#define _gloffset_WindowPos2dv driDispatchRemapTable[WindowPos2dv_remap_index]
+#define _gloffset_WindowPos2f driDispatchRemapTable[WindowPos2f_remap_index]
+#define _gloffset_WindowPos2fv driDispatchRemapTable[WindowPos2fv_remap_index]
+#define _gloffset_WindowPos2i driDispatchRemapTable[WindowPos2i_remap_index]
+#define _gloffset_WindowPos2iv driDispatchRemapTable[WindowPos2iv_remap_index]
+#define _gloffset_WindowPos2s driDispatchRemapTable[WindowPos2s_remap_index]
+#define _gloffset_WindowPos2sv driDispatchRemapTable[WindowPos2sv_remap_index]
+#define _gloffset_WindowPos3d driDispatchRemapTable[WindowPos3d_remap_index]
+#define _gloffset_WindowPos3dv driDispatchRemapTable[WindowPos3dv_remap_index]
+#define _gloffset_WindowPos3f driDispatchRemapTable[WindowPos3f_remap_index]
+#define _gloffset_WindowPos3fv driDispatchRemapTable[WindowPos3fv_remap_index]
+#define _gloffset_WindowPos3i driDispatchRemapTable[WindowPos3i_remap_index]
+#define _gloffset_WindowPos3iv driDispatchRemapTable[WindowPos3iv_remap_index]
+#define _gloffset_WindowPos3s driDispatchRemapTable[WindowPos3s_remap_index]
+#define _gloffset_WindowPos3sv driDispatchRemapTable[WindowPos3sv_remap_index]
+#define _gloffset_BeginQuery driDispatchRemapTable[BeginQuery_remap_index]
+#define _gloffset_BindBuffer driDispatchRemapTable[BindBuffer_remap_index]
+#define _gloffset_BufferData driDispatchRemapTable[BufferData_remap_index]
+#define _gloffset_BufferSubData driDispatchRemapTable[BufferSubData_remap_index]
+#define _gloffset_DeleteBuffers driDispatchRemapTable[DeleteBuffers_remap_index]
+#define _gloffset_DeleteQueries driDispatchRemapTable[DeleteQueries_remap_index]
+#define _gloffset_EndQuery driDispatchRemapTable[EndQuery_remap_index]
+#define _gloffset_GenBuffers driDispatchRemapTable[GenBuffers_remap_index]
+#define _gloffset_GenQueries driDispatchRemapTable[GenQueries_remap_index]
+#define _gloffset_GetBufferParameteriv driDispatchRemapTable[GetBufferParameteriv_remap_index]
+#define _gloffset_GetBufferPointerv driDispatchRemapTable[GetBufferPointerv_remap_index]
+#define _gloffset_GetBufferSubData driDispatchRemapTable[GetBufferSubData_remap_index]
+#define _gloffset_GetQueryObjectiv driDispatchRemapTable[GetQueryObjectiv_remap_index]
+#define _gloffset_GetQueryObjectuiv driDispatchRemapTable[GetQueryObjectuiv_remap_index]
+#define _gloffset_GetQueryiv driDispatchRemapTable[GetQueryiv_remap_index]
+#define _gloffset_IsBuffer driDispatchRemapTable[IsBuffer_remap_index]
+#define _gloffset_IsQuery driDispatchRemapTable[IsQuery_remap_index]
+#define _gloffset_MapBuffer driDispatchRemapTable[MapBuffer_remap_index]
+#define _gloffset_UnmapBuffer driDispatchRemapTable[UnmapBuffer_remap_index]
+#define _gloffset_AttachShader driDispatchRemapTable[AttachShader_remap_index]
+#define _gloffset_BindAttribLocation driDispatchRemapTable[BindAttribLocation_remap_index]
+#define _gloffset_BlendEquationSeparate driDispatchRemapTable[BlendEquationSeparate_remap_index]
+#define _gloffset_CompileShader driDispatchRemapTable[CompileShader_remap_index]
+#define _gloffset_CreateProgram driDispatchRemapTable[CreateProgram_remap_index]
+#define _gloffset_CreateShader driDispatchRemapTable[CreateShader_remap_index]
+#define _gloffset_DeleteProgram driDispatchRemapTable[DeleteProgram_remap_index]
+#define _gloffset_DeleteShader driDispatchRemapTable[DeleteShader_remap_index]
+#define _gloffset_DetachShader driDispatchRemapTable[DetachShader_remap_index]
+#define _gloffset_DisableVertexAttribArray driDispatchRemapTable[DisableVertexAttribArray_remap_index]
+#define _gloffset_DrawBuffers driDispatchRemapTable[DrawBuffers_remap_index]
+#define _gloffset_EnableVertexAttribArray driDispatchRemapTable[EnableVertexAttribArray_remap_index]
+#define _gloffset_GetActiveAttrib driDispatchRemapTable[GetActiveAttrib_remap_index]
+#define _gloffset_GetActiveUniform driDispatchRemapTable[GetActiveUniform_remap_index]
+#define _gloffset_GetAttachedShaders driDispatchRemapTable[GetAttachedShaders_remap_index]
+#define _gloffset_GetAttribLocation driDispatchRemapTable[GetAttribLocation_remap_index]
+#define _gloffset_GetProgramInfoLog driDispatchRemapTable[GetProgramInfoLog_remap_index]
+#define _gloffset_GetProgramiv driDispatchRemapTable[GetProgramiv_remap_index]
+#define _gloffset_GetShaderInfoLog driDispatchRemapTable[GetShaderInfoLog_remap_index]
+#define _gloffset_GetShaderSource driDispatchRemapTable[GetShaderSource_remap_index]
+#define _gloffset_GetShaderiv driDispatchRemapTable[GetShaderiv_remap_index]
+#define _gloffset_GetUniformLocation driDispatchRemapTable[GetUniformLocation_remap_index]
+#define _gloffset_GetUniformfv driDispatchRemapTable[GetUniformfv_remap_index]
+#define _gloffset_GetUniformiv driDispatchRemapTable[GetUniformiv_remap_index]
+#define _gloffset_GetVertexAttribPointerv driDispatchRemapTable[GetVertexAttribPointerv_remap_index]
+#define _gloffset_GetVertexAttribdv driDispatchRemapTable[GetVertexAttribdv_remap_index]
+#define _gloffset_GetVertexAttribfv driDispatchRemapTable[GetVertexAttribfv_remap_index]
+#define _gloffset_GetVertexAttribiv driDispatchRemapTable[GetVertexAttribiv_remap_index]
+#define _gloffset_IsProgram driDispatchRemapTable[IsProgram_remap_index]
+#define _gloffset_IsShader driDispatchRemapTable[IsShader_remap_index]
+#define _gloffset_LinkProgram driDispatchRemapTable[LinkProgram_remap_index]
+#define _gloffset_ShaderSource driDispatchRemapTable[ShaderSource_remap_index]
+#define _gloffset_StencilFuncSeparate driDispatchRemapTable[StencilFuncSeparate_remap_index]
+#define _gloffset_StencilMaskSeparate driDispatchRemapTable[StencilMaskSeparate_remap_index]
+#define _gloffset_StencilOpSeparate driDispatchRemapTable[StencilOpSeparate_remap_index]
+#define _gloffset_Uniform1f driDispatchRemapTable[Uniform1f_remap_index]
+#define _gloffset_Uniform1fv driDispatchRemapTable[Uniform1fv_remap_index]
+#define _gloffset_Uniform1i driDispatchRemapTable[Uniform1i_remap_index]
+#define _gloffset_Uniform1iv driDispatchRemapTable[Uniform1iv_remap_index]
+#define _gloffset_Uniform2f driDispatchRemapTable[Uniform2f_remap_index]
+#define _gloffset_Uniform2fv driDispatchRemapTable[Uniform2fv_remap_index]
+#define _gloffset_Uniform2i driDispatchRemapTable[Uniform2i_remap_index]
+#define _gloffset_Uniform2iv driDispatchRemapTable[Uniform2iv_remap_index]
+#define _gloffset_Uniform3f driDispatchRemapTable[Uniform3f_remap_index]
+#define _gloffset_Uniform3fv driDispatchRemapTable[Uniform3fv_remap_index]
+#define _gloffset_Uniform3i driDispatchRemapTable[Uniform3i_remap_index]
+#define _gloffset_Uniform3iv driDispatchRemapTable[Uniform3iv_remap_index]
+#define _gloffset_Uniform4f driDispatchRemapTable[Uniform4f_remap_index]
+#define _gloffset_Uniform4fv driDispatchRemapTable[Uniform4fv_remap_index]
+#define _gloffset_Uniform4i driDispatchRemapTable[Uniform4i_remap_index]
+#define _gloffset_Uniform4iv driDispatchRemapTable[Uniform4iv_remap_index]
+#define _gloffset_UniformMatrix2fv driDispatchRemapTable[UniformMatrix2fv_remap_index]
+#define _gloffset_UniformMatrix3fv driDispatchRemapTable[UniformMatrix3fv_remap_index]
+#define _gloffset_UniformMatrix4fv driDispatchRemapTable[UniformMatrix4fv_remap_index]
+#define _gloffset_UseProgram driDispatchRemapTable[UseProgram_remap_index]
+#define _gloffset_ValidateProgram driDispatchRemapTable[ValidateProgram_remap_index]
+#define _gloffset_VertexAttrib1d driDispatchRemapTable[VertexAttrib1d_remap_index]
+#define _gloffset_VertexAttrib1dv driDispatchRemapTable[VertexAttrib1dv_remap_index]
+#define _gloffset_VertexAttrib1s driDispatchRemapTable[VertexAttrib1s_remap_index]
+#define _gloffset_VertexAttrib1sv driDispatchRemapTable[VertexAttrib1sv_remap_index]
+#define _gloffset_VertexAttrib2d driDispatchRemapTable[VertexAttrib2d_remap_index]
+#define _gloffset_VertexAttrib2dv driDispatchRemapTable[VertexAttrib2dv_remap_index]
+#define _gloffset_VertexAttrib2s driDispatchRemapTable[VertexAttrib2s_remap_index]
+#define _gloffset_VertexAttrib2sv driDispatchRemapTable[VertexAttrib2sv_remap_index]
+#define _gloffset_VertexAttrib3d driDispatchRemapTable[VertexAttrib3d_remap_index]
+#define _gloffset_VertexAttrib3dv driDispatchRemapTable[VertexAttrib3dv_remap_index]
+#define _gloffset_VertexAttrib3s driDispatchRemapTable[VertexAttrib3s_remap_index]
+#define _gloffset_VertexAttrib3sv driDispatchRemapTable[VertexAttrib3sv_remap_index]
+#define _gloffset_VertexAttrib4Nbv driDispatchRemapTable[VertexAttrib4Nbv_remap_index]
+#define _gloffset_VertexAttrib4Niv driDispatchRemapTable[VertexAttrib4Niv_remap_index]
+#define _gloffset_VertexAttrib4Nsv driDispatchRemapTable[VertexAttrib4Nsv_remap_index]
+#define _gloffset_VertexAttrib4Nub driDispatchRemapTable[VertexAttrib4Nub_remap_index]
+#define _gloffset_VertexAttrib4Nubv driDispatchRemapTable[VertexAttrib4Nubv_remap_index]
+#define _gloffset_VertexAttrib4Nuiv driDispatchRemapTable[VertexAttrib4Nuiv_remap_index]
+#define _gloffset_VertexAttrib4Nusv driDispatchRemapTable[VertexAttrib4Nusv_remap_index]
+#define _gloffset_VertexAttrib4bv driDispatchRemapTable[VertexAttrib4bv_remap_index]
+#define _gloffset_VertexAttrib4d driDispatchRemapTable[VertexAttrib4d_remap_index]
+#define _gloffset_VertexAttrib4dv driDispatchRemapTable[VertexAttrib4dv_remap_index]
+#define _gloffset_VertexAttrib4iv driDispatchRemapTable[VertexAttrib4iv_remap_index]
+#define _gloffset_VertexAttrib4s driDispatchRemapTable[VertexAttrib4s_remap_index]
+#define _gloffset_VertexAttrib4sv driDispatchRemapTable[VertexAttrib4sv_remap_index]
+#define _gloffset_VertexAttrib4ubv driDispatchRemapTable[VertexAttrib4ubv_remap_index]
+#define _gloffset_VertexAttrib4uiv driDispatchRemapTable[VertexAttrib4uiv_remap_index]
+#define _gloffset_VertexAttrib4usv driDispatchRemapTable[VertexAttrib4usv_remap_index]
+#define _gloffset_VertexAttribPointer driDispatchRemapTable[VertexAttribPointer_remap_index]
+#define _gloffset_UniformMatrix2x3fv driDispatchRemapTable[UniformMatrix2x3fv_remap_index]
+#define _gloffset_UniformMatrix2x4fv driDispatchRemapTable[UniformMatrix2x4fv_remap_index]
+#define _gloffset_UniformMatrix3x2fv driDispatchRemapTable[UniformMatrix3x2fv_remap_index]
+#define _gloffset_UniformMatrix3x4fv driDispatchRemapTable[UniformMatrix3x4fv_remap_index]
+#define _gloffset_UniformMatrix4x2fv driDispatchRemapTable[UniformMatrix4x2fv_remap_index]
+#define _gloffset_UniformMatrix4x3fv driDispatchRemapTable[UniformMatrix4x3fv_remap_index]
+#define _gloffset_BeginConditionalRender driDispatchRemapTable[BeginConditionalRender_remap_index]
+#define _gloffset_BeginTransformFeedback driDispatchRemapTable[BeginTransformFeedback_remap_index]
+#define _gloffset_BindBufferBase driDispatchRemapTable[BindBufferBase_remap_index]
+#define _gloffset_BindBufferRange driDispatchRemapTable[BindBufferRange_remap_index]
+#define _gloffset_BindFragDataLocation driDispatchRemapTable[BindFragDataLocation_remap_index]
+#define _gloffset_ClampColor driDispatchRemapTable[ClampColor_remap_index]
+#define _gloffset_ClearBufferfi driDispatchRemapTable[ClearBufferfi_remap_index]
+#define _gloffset_ClearBufferfv driDispatchRemapTable[ClearBufferfv_remap_index]
+#define _gloffset_ClearBufferiv driDispatchRemapTable[ClearBufferiv_remap_index]
+#define _gloffset_ClearBufferuiv driDispatchRemapTable[ClearBufferuiv_remap_index]
+#define _gloffset_ColorMaski driDispatchRemapTable[ColorMaski_remap_index]
+#define _gloffset_Disablei driDispatchRemapTable[Disablei_remap_index]
+#define _gloffset_Enablei driDispatchRemapTable[Enablei_remap_index]
+#define _gloffset_EndConditionalRender driDispatchRemapTable[EndConditionalRender_remap_index]
+#define _gloffset_EndTransformFeedback driDispatchRemapTable[EndTransformFeedback_remap_index]
+#define _gloffset_GetBooleani_v driDispatchRemapTable[GetBooleani_v_remap_index]
+#define _gloffset_GetFragDataLocation driDispatchRemapTable[GetFragDataLocation_remap_index]
+#define _gloffset_GetIntegeri_v driDispatchRemapTable[GetIntegeri_v_remap_index]
+#define _gloffset_GetStringi driDispatchRemapTable[GetStringi_remap_index]
+#define _gloffset_GetTexParameterIiv driDispatchRemapTable[GetTexParameterIiv_remap_index]
+#define _gloffset_GetTexParameterIuiv driDispatchRemapTable[GetTexParameterIuiv_remap_index]
+#define _gloffset_GetTransformFeedbackVarying driDispatchRemapTable[GetTransformFeedbackVarying_remap_index]
+#define _gloffset_GetUniformuiv driDispatchRemapTable[GetUniformuiv_remap_index]
+#define _gloffset_GetVertexAttribIiv driDispatchRemapTable[GetVertexAttribIiv_remap_index]
+#define _gloffset_GetVertexAttribIuiv driDispatchRemapTable[GetVertexAttribIuiv_remap_index]
+#define _gloffset_IsEnabledi driDispatchRemapTable[IsEnabledi_remap_index]
+#define _gloffset_TexParameterIiv driDispatchRemapTable[TexParameterIiv_remap_index]
+#define _gloffset_TexParameterIuiv driDispatchRemapTable[TexParameterIuiv_remap_index]
+#define _gloffset_TransformFeedbackVaryings driDispatchRemapTable[TransformFeedbackVaryings_remap_index]
+#define _gloffset_Uniform1ui driDispatchRemapTable[Uniform1ui_remap_index]
+#define _gloffset_Uniform1uiv driDispatchRemapTable[Uniform1uiv_remap_index]
+#define _gloffset_Uniform2ui driDispatchRemapTable[Uniform2ui_remap_index]
+#define _gloffset_Uniform2uiv driDispatchRemapTable[Uniform2uiv_remap_index]
+#define _gloffset_Uniform3ui driDispatchRemapTable[Uniform3ui_remap_index]
+#define _gloffset_Uniform3uiv driDispatchRemapTable[Uniform3uiv_remap_index]
+#define _gloffset_Uniform4ui driDispatchRemapTable[Uniform4ui_remap_index]
+#define _gloffset_Uniform4uiv driDispatchRemapTable[Uniform4uiv_remap_index]
+#define _gloffset_VertexAttribI1iv driDispatchRemapTable[VertexAttribI1iv_remap_index]
+#define _gloffset_VertexAttribI1uiv driDispatchRemapTable[VertexAttribI1uiv_remap_index]
+#define _gloffset_VertexAttribI4bv driDispatchRemapTable[VertexAttribI4bv_remap_index]
+#define _gloffset_VertexAttribI4sv driDispatchRemapTable[VertexAttribI4sv_remap_index]
+#define _gloffset_VertexAttribI4ubv driDispatchRemapTable[VertexAttribI4ubv_remap_index]
+#define _gloffset_VertexAttribI4usv driDispatchRemapTable[VertexAttribI4usv_remap_index]
+#define _gloffset_VertexAttribIPointer driDispatchRemapTable[VertexAttribIPointer_remap_index]
+#define _gloffset_PrimitiveRestartIndex driDispatchRemapTable[PrimitiveRestartIndex_remap_index]
+#define _gloffset_TexBuffer driDispatchRemapTable[TexBuffer_remap_index]
+#define _gloffset_FramebufferTexture driDispatchRemapTable[FramebufferTexture_remap_index]
+#define _gloffset_GetBufferParameteri64v driDispatchRemapTable[GetBufferParameteri64v_remap_index]
+#define _gloffset_GetInteger64i_v driDispatchRemapTable[GetInteger64i_v_remap_index]
+#define _gloffset_VertexAttribDivisor driDispatchRemapTable[VertexAttribDivisor_remap_index]
+#define _gloffset_MinSampleShading driDispatchRemapTable[MinSampleShading_remap_index]
+#define _gloffset_BindProgramARB driDispatchRemapTable[BindProgramARB_remap_index]
+#define _gloffset_DeleteProgramsARB driDispatchRemapTable[DeleteProgramsARB_remap_index]
+#define _gloffset_GenProgramsARB driDispatchRemapTable[GenProgramsARB_remap_index]
+#define _gloffset_GetProgramEnvParameterdvARB driDispatchRemapTable[GetProgramEnvParameterdvARB_remap_index]
+#define _gloffset_GetProgramEnvParameterfvARB driDispatchRemapTable[GetProgramEnvParameterfvARB_remap_index]
+#define _gloffset_GetProgramLocalParameterdvARB driDispatchRemapTable[GetProgramLocalParameterdvARB_remap_index]
+#define _gloffset_GetProgramLocalParameterfvARB driDispatchRemapTable[GetProgramLocalParameterfvARB_remap_index]
+#define _gloffset_GetProgramStringARB driDispatchRemapTable[GetProgramStringARB_remap_index]
+#define _gloffset_GetProgramivARB driDispatchRemapTable[GetProgramivARB_remap_index]
+#define _gloffset_IsProgramARB driDispatchRemapTable[IsProgramARB_remap_index]
+#define _gloffset_ProgramEnvParameter4dARB driDispatchRemapTable[ProgramEnvParameter4dARB_remap_index]
+#define _gloffset_ProgramEnvParameter4dvARB driDispatchRemapTable[ProgramEnvParameter4dvARB_remap_index]
+#define _gloffset_ProgramEnvParameter4fARB driDispatchRemapTable[ProgramEnvParameter4fARB_remap_index]
+#define _gloffset_ProgramEnvParameter4fvARB driDispatchRemapTable[ProgramEnvParameter4fvARB_remap_index]
+#define _gloffset_ProgramLocalParameter4dARB driDispatchRemapTable[ProgramLocalParameter4dARB_remap_index]
+#define _gloffset_ProgramLocalParameter4dvARB driDispatchRemapTable[ProgramLocalParameter4dvARB_remap_index]
+#define _gloffset_ProgramLocalParameter4fARB driDispatchRemapTable[ProgramLocalParameter4fARB_remap_index]
+#define _gloffset_ProgramLocalParameter4fvARB driDispatchRemapTable[ProgramLocalParameter4fvARB_remap_index]
+#define _gloffset_ProgramStringARB driDispatchRemapTable[ProgramStringARB_remap_index]
+#define _gloffset_VertexAttrib1fARB driDispatchRemapTable[VertexAttrib1fARB_remap_index]
+#define _gloffset_VertexAttrib1fvARB driDispatchRemapTable[VertexAttrib1fvARB_remap_index]
+#define _gloffset_VertexAttrib2fARB driDispatchRemapTable[VertexAttrib2fARB_remap_index]
+#define _gloffset_VertexAttrib2fvARB driDispatchRemapTable[VertexAttrib2fvARB_remap_index]
+#define _gloffset_VertexAttrib3fARB driDispatchRemapTable[VertexAttrib3fARB_remap_index]
+#define _gloffset_VertexAttrib3fvARB driDispatchRemapTable[VertexAttrib3fvARB_remap_index]
+#define _gloffset_VertexAttrib4fARB driDispatchRemapTable[VertexAttrib4fARB_remap_index]
+#define _gloffset_VertexAttrib4fvARB driDispatchRemapTable[VertexAttrib4fvARB_remap_index]
+#define _gloffset_AttachObjectARB driDispatchRemapTable[AttachObjectARB_remap_index]
+#define _gloffset_CreateProgramObjectARB driDispatchRemapTable[CreateProgramObjectARB_remap_index]
+#define _gloffset_CreateShaderObjectARB driDispatchRemapTable[CreateShaderObjectARB_remap_index]
+#define _gloffset_DeleteObjectARB driDispatchRemapTable[DeleteObjectARB_remap_index]
+#define _gloffset_DetachObjectARB driDispatchRemapTable[DetachObjectARB_remap_index]
+#define _gloffset_GetAttachedObjectsARB driDispatchRemapTable[GetAttachedObjectsARB_remap_index]
+#define _gloffset_GetHandleARB driDispatchRemapTable[GetHandleARB_remap_index]
+#define _gloffset_GetInfoLogARB driDispatchRemapTable[GetInfoLogARB_remap_index]
+#define _gloffset_GetObjectParameterfvARB driDispatchRemapTable[GetObjectParameterfvARB_remap_index]
+#define _gloffset_GetObjectParameterivARB driDispatchRemapTable[GetObjectParameterivARB_remap_index]
+#define _gloffset_DrawArraysInstancedARB driDispatchRemapTable[DrawArraysInstancedARB_remap_index]
+#define _gloffset_DrawElementsInstancedARB driDispatchRemapTable[DrawElementsInstancedARB_remap_index]
+#define _gloffset_BindFramebuffer driDispatchRemapTable[BindFramebuffer_remap_index]
+#define _gloffset_BindRenderbuffer driDispatchRemapTable[BindRenderbuffer_remap_index]
+#define _gloffset_BlitFramebuffer driDispatchRemapTable[BlitFramebuffer_remap_index]
+#define _gloffset_CheckFramebufferStatus driDispatchRemapTable[CheckFramebufferStatus_remap_index]
+#define _gloffset_DeleteFramebuffers driDispatchRemapTable[DeleteFramebuffers_remap_index]
+#define _gloffset_DeleteRenderbuffers driDispatchRemapTable[DeleteRenderbuffers_remap_index]
+#define _gloffset_FramebufferRenderbuffer driDispatchRemapTable[FramebufferRenderbuffer_remap_index]
+#define _gloffset_FramebufferTexture1D driDispatchRemapTable[FramebufferTexture1D_remap_index]
+#define _gloffset_FramebufferTexture2D driDispatchRemapTable[FramebufferTexture2D_remap_index]
+#define _gloffset_FramebufferTexture3D driDispatchRemapTable[FramebufferTexture3D_remap_index]
+#define _gloffset_FramebufferTextureLayer driDispatchRemapTable[FramebufferTextureLayer_remap_index]
+#define _gloffset_GenFramebuffers driDispatchRemapTable[GenFramebuffers_remap_index]
+#define _gloffset_GenRenderbuffers driDispatchRemapTable[GenRenderbuffers_remap_index]
+#define _gloffset_GenerateMipmap driDispatchRemapTable[GenerateMipmap_remap_index]
+#define _gloffset_GetFramebufferAttachmentParameteriv driDispatchRemapTable[GetFramebufferAttachmentParameteriv_remap_index]
+#define _gloffset_GetRenderbufferParameteriv driDispatchRemapTable[GetRenderbufferParameteriv_remap_index]
+#define _gloffset_IsFramebuffer driDispatchRemapTable[IsFramebuffer_remap_index]
+#define _gloffset_IsRenderbuffer driDispatchRemapTable[IsRenderbuffer_remap_index]
+#define _gloffset_RenderbufferStorage driDispatchRemapTable[RenderbufferStorage_remap_index]
+#define _gloffset_RenderbufferStorageMultisample driDispatchRemapTable[RenderbufferStorageMultisample_remap_index]
+#define _gloffset_FramebufferTextureFaceARB driDispatchRemapTable[FramebufferTextureFaceARB_remap_index]
+#define _gloffset_FlushMappedBufferRange driDispatchRemapTable[FlushMappedBufferRange_remap_index]
+#define _gloffset_MapBufferRange driDispatchRemapTable[MapBufferRange_remap_index]
+#define _gloffset_BindVertexArray driDispatchRemapTable[BindVertexArray_remap_index]
+#define _gloffset_DeleteVertexArrays driDispatchRemapTable[DeleteVertexArrays_remap_index]
+#define _gloffset_GenVertexArrays driDispatchRemapTable[GenVertexArrays_remap_index]
+#define _gloffset_IsVertexArray driDispatchRemapTable[IsVertexArray_remap_index]
+#define _gloffset_GetActiveUniformBlockName driDispatchRemapTable[GetActiveUniformBlockName_remap_index]
+#define _gloffset_GetActiveUniformBlockiv driDispatchRemapTable[GetActiveUniformBlockiv_remap_index]
+#define _gloffset_GetActiveUniformName driDispatchRemapTable[GetActiveUniformName_remap_index]
+#define _gloffset_GetActiveUniformsiv driDispatchRemapTable[GetActiveUniformsiv_remap_index]
+#define _gloffset_GetUniformBlockIndex driDispatchRemapTable[GetUniformBlockIndex_remap_index]
+#define _gloffset_GetUniformIndices driDispatchRemapTable[GetUniformIndices_remap_index]
+#define _gloffset_UniformBlockBinding driDispatchRemapTable[UniformBlockBinding_remap_index]
+#define _gloffset_CopyBufferSubData driDispatchRemapTable[CopyBufferSubData_remap_index]
+#define _gloffset_ClientWaitSync driDispatchRemapTable[ClientWaitSync_remap_index]
+#define _gloffset_DeleteSync driDispatchRemapTable[DeleteSync_remap_index]
+#define _gloffset_FenceSync driDispatchRemapTable[FenceSync_remap_index]
+#define _gloffset_GetInteger64v driDispatchRemapTable[GetInteger64v_remap_index]
+#define _gloffset_GetSynciv driDispatchRemapTable[GetSynciv_remap_index]
+#define _gloffset_IsSync driDispatchRemapTable[IsSync_remap_index]
+#define _gloffset_WaitSync driDispatchRemapTable[WaitSync_remap_index]
+#define _gloffset_DrawElementsBaseVertex driDispatchRemapTable[DrawElementsBaseVertex_remap_index]
+#define _gloffset_DrawElementsInstancedBaseVertex driDispatchRemapTable[DrawElementsInstancedBaseVertex_remap_index]
+#define _gloffset_DrawRangeElementsBaseVertex driDispatchRemapTable[DrawRangeElementsBaseVertex_remap_index]
+#define _gloffset_MultiDrawElementsBaseVertex driDispatchRemapTable[MultiDrawElementsBaseVertex_remap_index]
+#define _gloffset_ProvokingVertex driDispatchRemapTable[ProvokingVertex_remap_index]
+#define _gloffset_GetMultisamplefv driDispatchRemapTable[GetMultisamplefv_remap_index]
+#define _gloffset_SampleMaski driDispatchRemapTable[SampleMaski_remap_index]
+#define _gloffset_TexImage2DMultisample driDispatchRemapTable[TexImage2DMultisample_remap_index]
+#define _gloffset_TexImage3DMultisample driDispatchRemapTable[TexImage3DMultisample_remap_index]
+#define _gloffset_BlendEquationSeparateiARB driDispatchRemapTable[BlendEquationSeparateiARB_remap_index]
+#define _gloffset_BlendEquationiARB driDispatchRemapTable[BlendEquationiARB_remap_index]
+#define _gloffset_BlendFuncSeparateiARB driDispatchRemapTable[BlendFuncSeparateiARB_remap_index]
+#define _gloffset_BlendFunciARB driDispatchRemapTable[BlendFunciARB_remap_index]
+#define _gloffset_BindFragDataLocationIndexed driDispatchRemapTable[BindFragDataLocationIndexed_remap_index]
+#define _gloffset_GetFragDataIndex driDispatchRemapTable[GetFragDataIndex_remap_index]
+#define _gloffset_BindSampler driDispatchRemapTable[BindSampler_remap_index]
+#define _gloffset_DeleteSamplers driDispatchRemapTable[DeleteSamplers_remap_index]
+#define _gloffset_GenSamplers driDispatchRemapTable[GenSamplers_remap_index]
+#define _gloffset_GetSamplerParameterIiv driDispatchRemapTable[GetSamplerParameterIiv_remap_index]
+#define _gloffset_GetSamplerParameterIuiv driDispatchRemapTable[GetSamplerParameterIuiv_remap_index]
+#define _gloffset_GetSamplerParameterfv driDispatchRemapTable[GetSamplerParameterfv_remap_index]
+#define _gloffset_GetSamplerParameteriv driDispatchRemapTable[GetSamplerParameteriv_remap_index]
+#define _gloffset_IsSampler driDispatchRemapTable[IsSampler_remap_index]
+#define _gloffset_SamplerParameterIiv driDispatchRemapTable[SamplerParameterIiv_remap_index]
+#define _gloffset_SamplerParameterIuiv driDispatchRemapTable[SamplerParameterIuiv_remap_index]
+#define _gloffset_SamplerParameterf driDispatchRemapTable[SamplerParameterf_remap_index]
+#define _gloffset_SamplerParameterfv driDispatchRemapTable[SamplerParameterfv_remap_index]
+#define _gloffset_SamplerParameteri driDispatchRemapTable[SamplerParameteri_remap_index]
+#define _gloffset_SamplerParameteriv driDispatchRemapTable[SamplerParameteriv_remap_index]
+#define _gloffset_GetQueryObjecti64v driDispatchRemapTable[GetQueryObjecti64v_remap_index]
+#define _gloffset_GetQueryObjectui64v driDispatchRemapTable[GetQueryObjectui64v_remap_index]
+#define _gloffset_QueryCounter driDispatchRemapTable[QueryCounter_remap_index]
+#define _gloffset_ColorP3ui driDispatchRemapTable[ColorP3ui_remap_index]
+#define _gloffset_ColorP3uiv driDispatchRemapTable[ColorP3uiv_remap_index]
+#define _gloffset_ColorP4ui driDispatchRemapTable[ColorP4ui_remap_index]
+#define _gloffset_ColorP4uiv driDispatchRemapTable[ColorP4uiv_remap_index]
+#define _gloffset_MultiTexCoordP1ui driDispatchRemapTable[MultiTexCoordP1ui_remap_index]
+#define _gloffset_MultiTexCoordP1uiv driDispatchRemapTable[MultiTexCoordP1uiv_remap_index]
+#define _gloffset_MultiTexCoordP2ui driDispatchRemapTable[MultiTexCoordP2ui_remap_index]
+#define _gloffset_MultiTexCoordP2uiv driDispatchRemapTable[MultiTexCoordP2uiv_remap_index]
+#define _gloffset_MultiTexCoordP3ui driDispatchRemapTable[MultiTexCoordP3ui_remap_index]
+#define _gloffset_MultiTexCoordP3uiv driDispatchRemapTable[MultiTexCoordP3uiv_remap_index]
+#define _gloffset_MultiTexCoordP4ui driDispatchRemapTable[MultiTexCoordP4ui_remap_index]
+#define _gloffset_MultiTexCoordP4uiv driDispatchRemapTable[MultiTexCoordP4uiv_remap_index]
+#define _gloffset_NormalP3ui driDispatchRemapTable[NormalP3ui_remap_index]
+#define _gloffset_NormalP3uiv driDispatchRemapTable[NormalP3uiv_remap_index]
+#define _gloffset_SecondaryColorP3ui driDispatchRemapTable[SecondaryColorP3ui_remap_index]
+#define _gloffset_SecondaryColorP3uiv driDispatchRemapTable[SecondaryColorP3uiv_remap_index]
+#define _gloffset_TexCoordP1ui driDispatchRemapTable[TexCoordP1ui_remap_index]
+#define _gloffset_TexCoordP1uiv driDispatchRemapTable[TexCoordP1uiv_remap_index]
+#define _gloffset_TexCoordP2ui driDispatchRemapTable[TexCoordP2ui_remap_index]
+#define _gloffset_TexCoordP2uiv driDispatchRemapTable[TexCoordP2uiv_remap_index]
+#define _gloffset_TexCoordP3ui driDispatchRemapTable[TexCoordP3ui_remap_index]
+#define _gloffset_TexCoordP3uiv driDispatchRemapTable[TexCoordP3uiv_remap_index]
+#define _gloffset_TexCoordP4ui driDispatchRemapTable[TexCoordP4ui_remap_index]
+#define _gloffset_TexCoordP4uiv driDispatchRemapTable[TexCoordP4uiv_remap_index]
+#define _gloffset_VertexAttribP1ui driDispatchRemapTable[VertexAttribP1ui_remap_index]
+#define _gloffset_VertexAttribP1uiv driDispatchRemapTable[VertexAttribP1uiv_remap_index]
+#define _gloffset_VertexAttribP2ui driDispatchRemapTable[VertexAttribP2ui_remap_index]
+#define _gloffset_VertexAttribP2uiv driDispatchRemapTable[VertexAttribP2uiv_remap_index]
+#define _gloffset_VertexAttribP3ui driDispatchRemapTable[VertexAttribP3ui_remap_index]
+#define _gloffset_VertexAttribP3uiv driDispatchRemapTable[VertexAttribP3uiv_remap_index]
+#define _gloffset_VertexAttribP4ui driDispatchRemapTable[VertexAttribP4ui_remap_index]
+#define _gloffset_VertexAttribP4uiv driDispatchRemapTable[VertexAttribP4uiv_remap_index]
+#define _gloffset_VertexP2ui driDispatchRemapTable[VertexP2ui_remap_index]
+#define _gloffset_VertexP2uiv driDispatchRemapTable[VertexP2uiv_remap_index]
+#define _gloffset_VertexP3ui driDispatchRemapTable[VertexP3ui_remap_index]
+#define _gloffset_VertexP3uiv driDispatchRemapTable[VertexP3uiv_remap_index]
+#define _gloffset_VertexP4ui driDispatchRemapTable[VertexP4ui_remap_index]
+#define _gloffset_VertexP4uiv driDispatchRemapTable[VertexP4uiv_remap_index]
+#define _gloffset_BindTransformFeedback driDispatchRemapTable[BindTransformFeedback_remap_index]
+#define _gloffset_DeleteTransformFeedbacks driDispatchRemapTable[DeleteTransformFeedbacks_remap_index]
+#define _gloffset_DrawTransformFeedback driDispatchRemapTable[DrawTransformFeedback_remap_index]
+#define _gloffset_GenTransformFeedbacks driDispatchRemapTable[GenTransformFeedbacks_remap_index]
+#define _gloffset_IsTransformFeedback driDispatchRemapTable[IsTransformFeedback_remap_index]
+#define _gloffset_PauseTransformFeedback driDispatchRemapTable[PauseTransformFeedback_remap_index]
+#define _gloffset_ResumeTransformFeedback driDispatchRemapTable[ResumeTransformFeedback_remap_index]
+#define _gloffset_BeginQueryIndexed driDispatchRemapTable[BeginQueryIndexed_remap_index]
+#define _gloffset_DrawTransformFeedbackStream driDispatchRemapTable[DrawTransformFeedbackStream_remap_index]
+#define _gloffset_EndQueryIndexed driDispatchRemapTable[EndQueryIndexed_remap_index]
+#define _gloffset_GetQueryIndexediv driDispatchRemapTable[GetQueryIndexediv_remap_index]
+#define _gloffset_ClearDepthf driDispatchRemapTable[ClearDepthf_remap_index]
+#define _gloffset_DepthRangef driDispatchRemapTable[DepthRangef_remap_index]
+#define _gloffset_GetShaderPrecisionFormat driDispatchRemapTable[GetShaderPrecisionFormat_remap_index]
+#define _gloffset_ReleaseShaderCompiler driDispatchRemapTable[ReleaseShaderCompiler_remap_index]
+#define _gloffset_ShaderBinary driDispatchRemapTable[ShaderBinary_remap_index]
+#define _gloffset_GetProgramBinary driDispatchRemapTable[GetProgramBinary_remap_index]
+#define _gloffset_ProgramBinary driDispatchRemapTable[ProgramBinary_remap_index]
+#define _gloffset_ProgramParameteri driDispatchRemapTable[ProgramParameteri_remap_index]
+#define _gloffset_DebugMessageCallbackARB driDispatchRemapTable[DebugMessageCallbackARB_remap_index]
+#define _gloffset_DebugMessageControlARB driDispatchRemapTable[DebugMessageControlARB_remap_index]
+#define _gloffset_DebugMessageInsertARB driDispatchRemapTable[DebugMessageInsertARB_remap_index]
+#define _gloffset_GetDebugMessageLogARB driDispatchRemapTable[GetDebugMessageLogARB_remap_index]
+#define _gloffset_GetGraphicsResetStatusARB driDispatchRemapTable[GetGraphicsResetStatusARB_remap_index]
+#define _gloffset_GetnColorTableARB driDispatchRemapTable[GetnColorTableARB_remap_index]
+#define _gloffset_GetnCompressedTexImageARB driDispatchRemapTable[GetnCompressedTexImageARB_remap_index]
+#define _gloffset_GetnConvolutionFilterARB driDispatchRemapTable[GetnConvolutionFilterARB_remap_index]
+#define _gloffset_GetnHistogramARB driDispatchRemapTable[GetnHistogramARB_remap_index]
+#define _gloffset_GetnMapdvARB driDispatchRemapTable[GetnMapdvARB_remap_index]
+#define _gloffset_GetnMapfvARB driDispatchRemapTable[GetnMapfvARB_remap_index]
+#define _gloffset_GetnMapivARB driDispatchRemapTable[GetnMapivARB_remap_index]
+#define _gloffset_GetnMinmaxARB driDispatchRemapTable[GetnMinmaxARB_remap_index]
+#define _gloffset_GetnPixelMapfvARB driDispatchRemapTable[GetnPixelMapfvARB_remap_index]
+#define _gloffset_GetnPixelMapuivARB driDispatchRemapTable[GetnPixelMapuivARB_remap_index]
+#define _gloffset_GetnPixelMapusvARB driDispatchRemapTable[GetnPixelMapusvARB_remap_index]
+#define _gloffset_GetnPolygonStippleARB driDispatchRemapTable[GetnPolygonStippleARB_remap_index]
+#define _gloffset_GetnSeparableFilterARB driDispatchRemapTable[GetnSeparableFilterARB_remap_index]
+#define _gloffset_GetnTexImageARB driDispatchRemapTable[GetnTexImageARB_remap_index]
+#define _gloffset_GetnUniformdvARB driDispatchRemapTable[GetnUniformdvARB_remap_index]
+#define _gloffset_GetnUniformfvARB driDispatchRemapTable[GetnUniformfvARB_remap_index]
+#define _gloffset_GetnUniformivARB driDispatchRemapTable[GetnUniformivARB_remap_index]
+#define _gloffset_GetnUniformuivARB driDispatchRemapTable[GetnUniformuivARB_remap_index]
+#define _gloffset_ReadnPixelsARB driDispatchRemapTable[ReadnPixelsARB_remap_index]
+#define _gloffset_DrawArraysInstancedBaseInstance driDispatchRemapTable[DrawArraysInstancedBaseInstance_remap_index]
+#define _gloffset_DrawElementsInstancedBaseInstance driDispatchRemapTable[DrawElementsInstancedBaseInstance_remap_index]
+#define _gloffset_DrawElementsInstancedBaseVertexBaseInstance driDispatchRemapTable[DrawElementsInstancedBaseVertexBaseInstance_remap_index]
+#define _gloffset_DrawTransformFeedbackInstanced driDispatchRemapTable[DrawTransformFeedbackInstanced_remap_index]
+#define _gloffset_DrawTransformFeedbackStreamInstanced driDispatchRemapTable[DrawTransformFeedbackStreamInstanced_remap_index]
+#define _gloffset_GetInternalformativ driDispatchRemapTable[GetInternalformativ_remap_index]
+#define _gloffset_GetActiveAtomicCounterBufferiv driDispatchRemapTable[GetActiveAtomicCounterBufferiv_remap_index]
+#define _gloffset_TexStorage1D driDispatchRemapTable[TexStorage1D_remap_index]
+#define _gloffset_TexStorage2D driDispatchRemapTable[TexStorage2D_remap_index]
+#define _gloffset_TexStorage3D driDispatchRemapTable[TexStorage3D_remap_index]
+#define _gloffset_TextureStorage1DEXT driDispatchRemapTable[TextureStorage1DEXT_remap_index]
+#define _gloffset_TextureStorage2DEXT driDispatchRemapTable[TextureStorage2DEXT_remap_index]
+#define _gloffset_TextureStorage3DEXT driDispatchRemapTable[TextureStorage3DEXT_remap_index]
+#define _gloffset_BindVertexBuffer driDispatchRemapTable[BindVertexBuffer_remap_index]
+#define _gloffset_VertexAttribBinding driDispatchRemapTable[VertexAttribBinding_remap_index]
+#define _gloffset_VertexAttribFormat driDispatchRemapTable[VertexAttribFormat_remap_index]
+#define _gloffset_VertexAttribIFormat driDispatchRemapTable[VertexAttribIFormat_remap_index]
+#define _gloffset_VertexAttribLFormat driDispatchRemapTable[VertexAttribLFormat_remap_index]
+#define _gloffset_VertexBindingDivisor driDispatchRemapTable[VertexBindingDivisor_remap_index]
+#define _gloffset_TexBufferRange driDispatchRemapTable[TexBufferRange_remap_index]
+#define _gloffset_TexStorage2DMultisample driDispatchRemapTable[TexStorage2DMultisample_remap_index]
+#define _gloffset_TexStorage3DMultisample driDispatchRemapTable[TexStorage3DMultisample_remap_index]
+#define _gloffset_InvalidateBufferData driDispatchRemapTable[InvalidateBufferData_remap_index]
+#define _gloffset_InvalidateBufferSubData driDispatchRemapTable[InvalidateBufferSubData_remap_index]
+#define _gloffset_InvalidateFramebuffer driDispatchRemapTable[InvalidateFramebuffer_remap_index]
+#define _gloffset_InvalidateSubFramebuffer driDispatchRemapTable[InvalidateSubFramebuffer_remap_index]
+#define _gloffset_InvalidateTexImage driDispatchRemapTable[InvalidateTexImage_remap_index]
+#define _gloffset_InvalidateTexSubImage driDispatchRemapTable[InvalidateTexSubImage_remap_index]
+#define _gloffset_PolygonOffsetEXT driDispatchRemapTable[PolygonOffsetEXT_remap_index]
+#define _gloffset_DrawTexfOES driDispatchRemapTable[DrawTexfOES_remap_index]
+#define _gloffset_DrawTexfvOES driDispatchRemapTable[DrawTexfvOES_remap_index]
+#define _gloffset_DrawTexiOES driDispatchRemapTable[DrawTexiOES_remap_index]
+#define _gloffset_DrawTexivOES driDispatchRemapTable[DrawTexivOES_remap_index]
+#define _gloffset_DrawTexsOES driDispatchRemapTable[DrawTexsOES_remap_index]
+#define _gloffset_DrawTexsvOES driDispatchRemapTable[DrawTexsvOES_remap_index]
+#define _gloffset_DrawTexxOES driDispatchRemapTable[DrawTexxOES_remap_index]
+#define _gloffset_DrawTexxvOES driDispatchRemapTable[DrawTexxvOES_remap_index]
+#define _gloffset_PointSizePointerOES driDispatchRemapTable[PointSizePointerOES_remap_index]
+#define _gloffset_QueryMatrixxOES driDispatchRemapTable[QueryMatrixxOES_remap_index]
+#define _gloffset_SampleMaskSGIS driDispatchRemapTable[SampleMaskSGIS_remap_index]
+#define _gloffset_SamplePatternSGIS driDispatchRemapTable[SamplePatternSGIS_remap_index]
+#define _gloffset_ColorPointerEXT driDispatchRemapTable[ColorPointerEXT_remap_index]
+#define _gloffset_EdgeFlagPointerEXT driDispatchRemapTable[EdgeFlagPointerEXT_remap_index]
+#define _gloffset_IndexPointerEXT driDispatchRemapTable[IndexPointerEXT_remap_index]
+#define _gloffset_NormalPointerEXT driDispatchRemapTable[NormalPointerEXT_remap_index]
+#define _gloffset_TexCoordPointerEXT driDispatchRemapTable[TexCoordPointerEXT_remap_index]
+#define _gloffset_VertexPointerEXT driDispatchRemapTable[VertexPointerEXT_remap_index]
+#define _gloffset_DiscardFramebufferEXT driDispatchRemapTable[DiscardFramebufferEXT_remap_index]
+#define _gloffset_LockArraysEXT driDispatchRemapTable[LockArraysEXT_remap_index]
+#define _gloffset_UnlockArraysEXT driDispatchRemapTable[UnlockArraysEXT_remap_index]
+#define _gloffset_DebugMessageCallback driDispatchRemapTable[DebugMessageCallback_remap_index]
+#define _gloffset_DebugMessageControl driDispatchRemapTable[DebugMessageControl_remap_index]
+#define _gloffset_DebugMessageInsert driDispatchRemapTable[DebugMessageInsert_remap_index]
+#define _gloffset_GetDebugMessageLog driDispatchRemapTable[GetDebugMessageLog_remap_index]
+#define _gloffset_GetObjectLabel driDispatchRemapTable[GetObjectLabel_remap_index]
+#define _gloffset_GetObjectPtrLabel driDispatchRemapTable[GetObjectPtrLabel_remap_index]
+#define _gloffset_ObjectLabel driDispatchRemapTable[ObjectLabel_remap_index]
+#define _gloffset_ObjectPtrLabel driDispatchRemapTable[ObjectPtrLabel_remap_index]
+#define _gloffset_PopDebugGroup driDispatchRemapTable[PopDebugGroup_remap_index]
+#define _gloffset_PushDebugGroup driDispatchRemapTable[PushDebugGroup_remap_index]
+#define _gloffset_SecondaryColor3fEXT driDispatchRemapTable[SecondaryColor3fEXT_remap_index]
+#define _gloffset_SecondaryColor3fvEXT driDispatchRemapTable[SecondaryColor3fvEXT_remap_index]
+#define _gloffset_MultiDrawElementsEXT driDispatchRemapTable[MultiDrawElementsEXT_remap_index]
+#define _gloffset_FogCoordfEXT driDispatchRemapTable[FogCoordfEXT_remap_index]
+#define _gloffset_FogCoordfvEXT driDispatchRemapTable[FogCoordfvEXT_remap_index]
+#define _gloffset_ResizeBuffersMESA driDispatchRemapTable[ResizeBuffersMESA_remap_index]
+#define _gloffset_WindowPos4dMESA driDispatchRemapTable[WindowPos4dMESA_remap_index]
+#define _gloffset_WindowPos4dvMESA driDispatchRemapTable[WindowPos4dvMESA_remap_index]
+#define _gloffset_WindowPos4fMESA driDispatchRemapTable[WindowPos4fMESA_remap_index]
+#define _gloffset_WindowPos4fvMESA driDispatchRemapTable[WindowPos4fvMESA_remap_index]
+#define _gloffset_WindowPos4iMESA driDispatchRemapTable[WindowPos4iMESA_remap_index]
+#define _gloffset_WindowPos4ivMESA driDispatchRemapTable[WindowPos4ivMESA_remap_index]
+#define _gloffset_WindowPos4sMESA driDispatchRemapTable[WindowPos4sMESA_remap_index]
+#define _gloffset_WindowPos4svMESA driDispatchRemapTable[WindowPos4svMESA_remap_index]
+#define _gloffset_MultiModeDrawArraysIBM driDispatchRemapTable[MultiModeDrawArraysIBM_remap_index]
+#define _gloffset_MultiModeDrawElementsIBM driDispatchRemapTable[MultiModeDrawElementsIBM_remap_index]
+#define _gloffset_AreProgramsResidentNV driDispatchRemapTable[AreProgramsResidentNV_remap_index]
+#define _gloffset_ExecuteProgramNV driDispatchRemapTable[ExecuteProgramNV_remap_index]
+#define _gloffset_GetProgramParameterdvNV driDispatchRemapTable[GetProgramParameterdvNV_remap_index]
+#define _gloffset_GetProgramParameterfvNV driDispatchRemapTable[GetProgramParameterfvNV_remap_index]
+#define _gloffset_GetProgramStringNV driDispatchRemapTable[GetProgramStringNV_remap_index]
+#define _gloffset_GetProgramivNV driDispatchRemapTable[GetProgramivNV_remap_index]
+#define _gloffset_GetTrackMatrixivNV driDispatchRemapTable[GetTrackMatrixivNV_remap_index]
+#define _gloffset_GetVertexAttribdvNV driDispatchRemapTable[GetVertexAttribdvNV_remap_index]
+#define _gloffset_GetVertexAttribfvNV driDispatchRemapTable[GetVertexAttribfvNV_remap_index]
+#define _gloffset_GetVertexAttribivNV driDispatchRemapTable[GetVertexAttribivNV_remap_index]
+#define _gloffset_LoadProgramNV driDispatchRemapTable[LoadProgramNV_remap_index]
+#define _gloffset_ProgramParameters4dvNV driDispatchRemapTable[ProgramParameters4dvNV_remap_index]
+#define _gloffset_ProgramParameters4fvNV driDispatchRemapTable[ProgramParameters4fvNV_remap_index]
+#define _gloffset_RequestResidentProgramsNV driDispatchRemapTable[RequestResidentProgramsNV_remap_index]
+#define _gloffset_TrackMatrixNV driDispatchRemapTable[TrackMatrixNV_remap_index]
+#define _gloffset_VertexAttrib1dNV driDispatchRemapTable[VertexAttrib1dNV_remap_index]
+#define _gloffset_VertexAttrib1dvNV driDispatchRemapTable[VertexAttrib1dvNV_remap_index]
+#define _gloffset_VertexAttrib1fNV driDispatchRemapTable[VertexAttrib1fNV_remap_index]
+#define _gloffset_VertexAttrib1fvNV driDispatchRemapTable[VertexAttrib1fvNV_remap_index]
+#define _gloffset_VertexAttrib1sNV driDispatchRemapTable[VertexAttrib1sNV_remap_index]
+#define _gloffset_VertexAttrib1svNV driDispatchRemapTable[VertexAttrib1svNV_remap_index]
+#define _gloffset_VertexAttrib2dNV driDispatchRemapTable[VertexAttrib2dNV_remap_index]
+#define _gloffset_VertexAttrib2dvNV driDispatchRemapTable[VertexAttrib2dvNV_remap_index]
+#define _gloffset_VertexAttrib2fNV driDispatchRemapTable[VertexAttrib2fNV_remap_index]
+#define _gloffset_VertexAttrib2fvNV driDispatchRemapTable[VertexAttrib2fvNV_remap_index]
+#define _gloffset_VertexAttrib2sNV driDispatchRemapTable[VertexAttrib2sNV_remap_index]
+#define _gloffset_VertexAttrib2svNV driDispatchRemapTable[VertexAttrib2svNV_remap_index]
+#define _gloffset_VertexAttrib3dNV driDispatchRemapTable[VertexAttrib3dNV_remap_index]
+#define _gloffset_VertexAttrib3dvNV driDispatchRemapTable[VertexAttrib3dvNV_remap_index]
+#define _gloffset_VertexAttrib3fNV driDispatchRemapTable[VertexAttrib3fNV_remap_index]
+#define _gloffset_VertexAttrib3fvNV driDispatchRemapTable[VertexAttrib3fvNV_remap_index]
+#define _gloffset_VertexAttrib3sNV driDispatchRemapTable[VertexAttrib3sNV_remap_index]
+#define _gloffset_VertexAttrib3svNV driDispatchRemapTable[VertexAttrib3svNV_remap_index]
+#define _gloffset_VertexAttrib4dNV driDispatchRemapTable[VertexAttrib4dNV_remap_index]
+#define _gloffset_VertexAttrib4dvNV driDispatchRemapTable[VertexAttrib4dvNV_remap_index]
+#define _gloffset_VertexAttrib4fNV driDispatchRemapTable[VertexAttrib4fNV_remap_index]
+#define _gloffset_VertexAttrib4fvNV driDispatchRemapTable[VertexAttrib4fvNV_remap_index]
+#define _gloffset_VertexAttrib4sNV driDispatchRemapTable[VertexAttrib4sNV_remap_index]
+#define _gloffset_VertexAttrib4svNV driDispatchRemapTable[VertexAttrib4svNV_remap_index]
+#define _gloffset_VertexAttrib4ubNV driDispatchRemapTable[VertexAttrib4ubNV_remap_index]
+#define _gloffset_VertexAttrib4ubvNV driDispatchRemapTable[VertexAttrib4ubvNV_remap_index]
+#define _gloffset_VertexAttribPointerNV driDispatchRemapTable[VertexAttribPointerNV_remap_index]
+#define _gloffset_VertexAttribs1dvNV driDispatchRemapTable[VertexAttribs1dvNV_remap_index]
+#define _gloffset_VertexAttribs1fvNV driDispatchRemapTable[VertexAttribs1fvNV_remap_index]
+#define _gloffset_VertexAttribs1svNV driDispatchRemapTable[VertexAttribs1svNV_remap_index]
+#define _gloffset_VertexAttribs2dvNV driDispatchRemapTable[VertexAttribs2dvNV_remap_index]
+#define _gloffset_VertexAttribs2fvNV driDispatchRemapTable[VertexAttribs2fvNV_remap_index]
+#define _gloffset_VertexAttribs2svNV driDispatchRemapTable[VertexAttribs2svNV_remap_index]
+#define _gloffset_VertexAttribs3dvNV driDispatchRemapTable[VertexAttribs3dvNV_remap_index]
+#define _gloffset_VertexAttribs3fvNV driDispatchRemapTable[VertexAttribs3fvNV_remap_index]
+#define _gloffset_VertexAttribs3svNV driDispatchRemapTable[VertexAttribs3svNV_remap_index]
+#define _gloffset_VertexAttribs4dvNV driDispatchRemapTable[VertexAttribs4dvNV_remap_index]
+#define _gloffset_VertexAttribs4fvNV driDispatchRemapTable[VertexAttribs4fvNV_remap_index]
+#define _gloffset_VertexAttribs4svNV driDispatchRemapTable[VertexAttribs4svNV_remap_index]
+#define _gloffset_VertexAttribs4ubvNV driDispatchRemapTable[VertexAttribs4ubvNV_remap_index]
+#define _gloffset_GetTexBumpParameterfvATI driDispatchRemapTable[GetTexBumpParameterfvATI_remap_index]
+#define _gloffset_GetTexBumpParameterivATI driDispatchRemapTable[GetTexBumpParameterivATI_remap_index]
+#define _gloffset_TexBumpParameterfvATI driDispatchRemapTable[TexBumpParameterfvATI_remap_index]
+#define _gloffset_TexBumpParameterivATI driDispatchRemapTable[TexBumpParameterivATI_remap_index]
+#define _gloffset_AlphaFragmentOp1ATI driDispatchRemapTable[AlphaFragmentOp1ATI_remap_index]
+#define _gloffset_AlphaFragmentOp2ATI driDispatchRemapTable[AlphaFragmentOp2ATI_remap_index]
+#define _gloffset_AlphaFragmentOp3ATI driDispatchRemapTable[AlphaFragmentOp3ATI_remap_index]
+#define _gloffset_BeginFragmentShaderATI driDispatchRemapTable[BeginFragmentShaderATI_remap_index]
+#define _gloffset_BindFragmentShaderATI driDispatchRemapTable[BindFragmentShaderATI_remap_index]
+#define _gloffset_ColorFragmentOp1ATI driDispatchRemapTable[ColorFragmentOp1ATI_remap_index]
+#define _gloffset_ColorFragmentOp2ATI driDispatchRemapTable[ColorFragmentOp2ATI_remap_index]
+#define _gloffset_ColorFragmentOp3ATI driDispatchRemapTable[ColorFragmentOp3ATI_remap_index]
+#define _gloffset_DeleteFragmentShaderATI driDispatchRemapTable[DeleteFragmentShaderATI_remap_index]
+#define _gloffset_EndFragmentShaderATI driDispatchRemapTable[EndFragmentShaderATI_remap_index]
+#define _gloffset_GenFragmentShadersATI driDispatchRemapTable[GenFragmentShadersATI_remap_index]
+#define _gloffset_PassTexCoordATI driDispatchRemapTable[PassTexCoordATI_remap_index]
+#define _gloffset_SampleMapATI driDispatchRemapTable[SampleMapATI_remap_index]
+#define _gloffset_SetFragmentShaderConstantATI driDispatchRemapTable[SetFragmentShaderConstantATI_remap_index]
+#define _gloffset_ActiveStencilFaceEXT driDispatchRemapTable[ActiveStencilFaceEXT_remap_index]
+#define _gloffset_BindVertexArrayAPPLE driDispatchRemapTable[BindVertexArrayAPPLE_remap_index]
+#define _gloffset_GenVertexArraysAPPLE driDispatchRemapTable[GenVertexArraysAPPLE_remap_index]
+#define _gloffset_GetProgramNamedParameterdvNV driDispatchRemapTable[GetProgramNamedParameterdvNV_remap_index]
+#define _gloffset_GetProgramNamedParameterfvNV driDispatchRemapTable[GetProgramNamedParameterfvNV_remap_index]
+#define _gloffset_ProgramNamedParameter4dNV driDispatchRemapTable[ProgramNamedParameter4dNV_remap_index]
+#define _gloffset_ProgramNamedParameter4dvNV driDispatchRemapTable[ProgramNamedParameter4dvNV_remap_index]
+#define _gloffset_ProgramNamedParameter4fNV driDispatchRemapTable[ProgramNamedParameter4fNV_remap_index]
+#define _gloffset_ProgramNamedParameter4fvNV driDispatchRemapTable[ProgramNamedParameter4fvNV_remap_index]
+#define _gloffset_PrimitiveRestartNV driDispatchRemapTable[PrimitiveRestartNV_remap_index]
+#define _gloffset_GetTexGenxvOES driDispatchRemapTable[GetTexGenxvOES_remap_index]
+#define _gloffset_TexGenxOES driDispatchRemapTable[TexGenxOES_remap_index]
+#define _gloffset_TexGenxvOES driDispatchRemapTable[TexGenxvOES_remap_index]
+#define _gloffset_DepthBoundsEXT driDispatchRemapTable[DepthBoundsEXT_remap_index]
+#define _gloffset_BindFramebufferEXT driDispatchRemapTable[BindFramebufferEXT_remap_index]
+#define _gloffset_BindRenderbufferEXT driDispatchRemapTable[BindRenderbufferEXT_remap_index]
+#define _gloffset_BufferParameteriAPPLE driDispatchRemapTable[BufferParameteriAPPLE_remap_index]
+#define _gloffset_FlushMappedBufferRangeAPPLE driDispatchRemapTable[FlushMappedBufferRangeAPPLE_remap_index]
+#define _gloffset_VertexAttribI1iEXT driDispatchRemapTable[VertexAttribI1iEXT_remap_index]
+#define _gloffset_VertexAttribI1uiEXT driDispatchRemapTable[VertexAttribI1uiEXT_remap_index]
+#define _gloffset_VertexAttribI2iEXT driDispatchRemapTable[VertexAttribI2iEXT_remap_index]
+#define _gloffset_VertexAttribI2ivEXT driDispatchRemapTable[VertexAttribI2ivEXT_remap_index]
+#define _gloffset_VertexAttribI2uiEXT driDispatchRemapTable[VertexAttribI2uiEXT_remap_index]
+#define _gloffset_VertexAttribI2uivEXT driDispatchRemapTable[VertexAttribI2uivEXT_remap_index]
+#define _gloffset_VertexAttribI3iEXT driDispatchRemapTable[VertexAttribI3iEXT_remap_index]
+#define _gloffset_VertexAttribI3ivEXT driDispatchRemapTable[VertexAttribI3ivEXT_remap_index]
+#define _gloffset_VertexAttribI3uiEXT driDispatchRemapTable[VertexAttribI3uiEXT_remap_index]
+#define _gloffset_VertexAttribI3uivEXT driDispatchRemapTable[VertexAttribI3uivEXT_remap_index]
+#define _gloffset_VertexAttribI4iEXT driDispatchRemapTable[VertexAttribI4iEXT_remap_index]
+#define _gloffset_VertexAttribI4ivEXT driDispatchRemapTable[VertexAttribI4ivEXT_remap_index]
+#define _gloffset_VertexAttribI4uiEXT driDispatchRemapTable[VertexAttribI4uiEXT_remap_index]
+#define _gloffset_VertexAttribI4uivEXT driDispatchRemapTable[VertexAttribI4uivEXT_remap_index]
+#define _gloffset_ClearColorIiEXT driDispatchRemapTable[ClearColorIiEXT_remap_index]
+#define _gloffset_ClearColorIuiEXT driDispatchRemapTable[ClearColorIuiEXT_remap_index]
+#define _gloffset_BindBufferOffsetEXT driDispatchRemapTable[BindBufferOffsetEXT_remap_index]
+#define _gloffset_BeginPerfMonitorAMD driDispatchRemapTable[BeginPerfMonitorAMD_remap_index]
+#define _gloffset_DeletePerfMonitorsAMD driDispatchRemapTable[DeletePerfMonitorsAMD_remap_index]
+#define _gloffset_EndPerfMonitorAMD driDispatchRemapTable[EndPerfMonitorAMD_remap_index]
+#define _gloffset_GenPerfMonitorsAMD driDispatchRemapTable[GenPerfMonitorsAMD_remap_index]
+#define _gloffset_GetPerfMonitorCounterDataAMD driDispatchRemapTable[GetPerfMonitorCounterDataAMD_remap_index]
+#define _gloffset_GetPerfMonitorCounterInfoAMD driDispatchRemapTable[GetPerfMonitorCounterInfoAMD_remap_index]
+#define _gloffset_GetPerfMonitorCounterStringAMD driDispatchRemapTable[GetPerfMonitorCounterStringAMD_remap_index]
+#define _gloffset_GetPerfMonitorCountersAMD driDispatchRemapTable[GetPerfMonitorCountersAMD_remap_index]
+#define _gloffset_GetPerfMonitorGroupStringAMD driDispatchRemapTable[GetPerfMonitorGroupStringAMD_remap_index]
+#define _gloffset_GetPerfMonitorGroupsAMD driDispatchRemapTable[GetPerfMonitorGroupsAMD_remap_index]
+#define _gloffset_SelectPerfMonitorCountersAMD driDispatchRemapTable[SelectPerfMonitorCountersAMD_remap_index]
+#define _gloffset_GetObjectParameterivAPPLE driDispatchRemapTable[GetObjectParameterivAPPLE_remap_index]
+#define _gloffset_ObjectPurgeableAPPLE driDispatchRemapTable[ObjectPurgeableAPPLE_remap_index]
+#define _gloffset_ObjectUnpurgeableAPPLE driDispatchRemapTable[ObjectUnpurgeableAPPLE_remap_index]
+#define _gloffset_ActiveProgramEXT driDispatchRemapTable[ActiveProgramEXT_remap_index]
+#define _gloffset_CreateShaderProgramEXT driDispatchRemapTable[CreateShaderProgramEXT_remap_index]
+#define _gloffset_UseShaderProgramEXT driDispatchRemapTable[UseShaderProgramEXT_remap_index]
+#define _gloffset_TextureBarrierNV driDispatchRemapTable[TextureBarrierNV_remap_index]
+#define _gloffset_VDPAUFiniNV driDispatchRemapTable[VDPAUFiniNV_remap_index]
+#define _gloffset_VDPAUGetSurfaceivNV driDispatchRemapTable[VDPAUGetSurfaceivNV_remap_index]
+#define _gloffset_VDPAUInitNV driDispatchRemapTable[VDPAUInitNV_remap_index]
+#define _gloffset_VDPAUIsSurfaceNV driDispatchRemapTable[VDPAUIsSurfaceNV_remap_index]
+#define _gloffset_VDPAUMapSurfacesNV driDispatchRemapTable[VDPAUMapSurfacesNV_remap_index]
+#define _gloffset_VDPAURegisterOutputSurfaceNV driDispatchRemapTable[VDPAURegisterOutputSurfaceNV_remap_index]
+#define _gloffset_VDPAURegisterVideoSurfaceNV driDispatchRemapTable[VDPAURegisterVideoSurfaceNV_remap_index]
+#define _gloffset_VDPAUSurfaceAccessNV driDispatchRemapTable[VDPAUSurfaceAccessNV_remap_index]
+#define _gloffset_VDPAUUnmapSurfacesNV driDispatchRemapTable[VDPAUUnmapSurfacesNV_remap_index]
+#define _gloffset_VDPAUUnregisterSurfaceNV driDispatchRemapTable[VDPAUUnregisterSurfaceNV_remap_index]
+#define _gloffset_StencilFuncSeparateATI driDispatchRemapTable[StencilFuncSeparateATI_remap_index]
+#define _gloffset_ProgramEnvParameters4fvEXT driDispatchRemapTable[ProgramEnvParameters4fvEXT_remap_index]
+#define _gloffset_ProgramLocalParameters4fvEXT driDispatchRemapTable[ProgramLocalParameters4fvEXT_remap_index]
+#define _gloffset_EGLImageTargetRenderbufferStorageOES driDispatchRemapTable[EGLImageTargetRenderbufferStorageOES_remap_index]
+#define _gloffset_EGLImageTargetTexture2DOES driDispatchRemapTable[EGLImageTargetTexture2DOES_remap_index]
+#define _gloffset_AlphaFuncx driDispatchRemapTable[AlphaFuncx_remap_index]
+#define _gloffset_ClearColorx driDispatchRemapTable[ClearColorx_remap_index]
+#define _gloffset_ClearDepthx driDispatchRemapTable[ClearDepthx_remap_index]
+#define _gloffset_Color4x driDispatchRemapTable[Color4x_remap_index]
+#define _gloffset_DepthRangex driDispatchRemapTable[DepthRangex_remap_index]
+#define _gloffset_Fogx driDispatchRemapTable[Fogx_remap_index]
+#define _gloffset_Fogxv driDispatchRemapTable[Fogxv_remap_index]
+#define _gloffset_Frustumf driDispatchRemapTable[Frustumf_remap_index]
+#define _gloffset_Frustumx driDispatchRemapTable[Frustumx_remap_index]
+#define _gloffset_LightModelx driDispatchRemapTable[LightModelx_remap_index]
+#define _gloffset_LightModelxv driDispatchRemapTable[LightModelxv_remap_index]
+#define _gloffset_Lightx driDispatchRemapTable[Lightx_remap_index]
+#define _gloffset_Lightxv driDispatchRemapTable[Lightxv_remap_index]
+#define _gloffset_LineWidthx driDispatchRemapTable[LineWidthx_remap_index]
+#define _gloffset_LoadMatrixx driDispatchRemapTable[LoadMatrixx_remap_index]
+#define _gloffset_Materialx driDispatchRemapTable[Materialx_remap_index]
+#define _gloffset_Materialxv driDispatchRemapTable[Materialxv_remap_index]
+#define _gloffset_MultMatrixx driDispatchRemapTable[MultMatrixx_remap_index]
+#define _gloffset_MultiTexCoord4x driDispatchRemapTable[MultiTexCoord4x_remap_index]
+#define _gloffset_Normal3x driDispatchRemapTable[Normal3x_remap_index]
+#define _gloffset_Orthof driDispatchRemapTable[Orthof_remap_index]
+#define _gloffset_Orthox driDispatchRemapTable[Orthox_remap_index]
+#define _gloffset_PointSizex driDispatchRemapTable[PointSizex_remap_index]
+#define _gloffset_PolygonOffsetx driDispatchRemapTable[PolygonOffsetx_remap_index]
+#define _gloffset_Rotatex driDispatchRemapTable[Rotatex_remap_index]
+#define _gloffset_SampleCoveragex driDispatchRemapTable[SampleCoveragex_remap_index]
+#define _gloffset_Scalex driDispatchRemapTable[Scalex_remap_index]
+#define _gloffset_TexEnvx driDispatchRemapTable[TexEnvx_remap_index]
+#define _gloffset_TexEnvxv driDispatchRemapTable[TexEnvxv_remap_index]
+#define _gloffset_TexParameterx driDispatchRemapTable[TexParameterx_remap_index]
+#define _gloffset_Translatex driDispatchRemapTable[Translatex_remap_index]
+#define _gloffset_ClipPlanef driDispatchRemapTable[ClipPlanef_remap_index]
+#define _gloffset_ClipPlanex driDispatchRemapTable[ClipPlanex_remap_index]
+#define _gloffset_GetClipPlanef driDispatchRemapTable[GetClipPlanef_remap_index]
+#define _gloffset_GetClipPlanex driDispatchRemapTable[GetClipPlanex_remap_index]
+#define _gloffset_GetFixedv driDispatchRemapTable[GetFixedv_remap_index]
+#define _gloffset_GetLightxv driDispatchRemapTable[GetLightxv_remap_index]
+#define _gloffset_GetMaterialxv driDispatchRemapTable[GetMaterialxv_remap_index]
+#define _gloffset_GetTexEnvxv driDispatchRemapTable[GetTexEnvxv_remap_index]
+#define _gloffset_GetTexParameterxv driDispatchRemapTable[GetTexParameterxv_remap_index]
+#define _gloffset_PointParameterx driDispatchRemapTable[PointParameterx_remap_index]
+#define _gloffset_PointParameterxv driDispatchRemapTable[PointParameterxv_remap_index]
+#define _gloffset_TexParameterxv driDispatchRemapTable[TexParameterxv_remap_index]
+
+typedef void (GLAPIENTRYP _glptr_NewList)(GLuint, GLenum);
+#define CALL_NewList(disp, parameters) \
+ (* GET_NewList(disp)) parameters
+static INLINE _glptr_NewList GET_NewList(struct _glapi_table *disp) {
+ return (_glptr_NewList) (GET_by_offset(disp, _gloffset_NewList));
+}
+
+static INLINE void SET_NewList(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum)) {
+ SET_by_offset(disp, _gloffset_NewList, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EndList)(void);
+#define CALL_EndList(disp, parameters) \
+ (* GET_EndList(disp)) parameters
+static INLINE _glptr_EndList GET_EndList(struct _glapi_table *disp) {
+ return (_glptr_EndList) (GET_by_offset(disp, _gloffset_EndList));
+}
+
+static INLINE void SET_EndList(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_EndList, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CallList)(GLuint);
+#define CALL_CallList(disp, parameters) \
+ (* GET_CallList(disp)) parameters
+static INLINE _glptr_CallList GET_CallList(struct _glapi_table *disp) {
+ return (_glptr_CallList) (GET_by_offset(disp, _gloffset_CallList));
+}
+
+static INLINE void SET_CallList(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_CallList, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CallLists)(GLsizei, GLenum, const GLvoid *);
+#define CALL_CallLists(disp, parameters) \
+ (* GET_CallLists(disp)) parameters
+static INLINE _glptr_CallLists GET_CallLists(struct _glapi_table *disp) {
+ return (_glptr_CallLists) (GET_by_offset(disp, _gloffset_CallLists));
+}
+
+static INLINE void SET_CallLists(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, GLenum, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_CallLists, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DeleteLists)(GLuint, GLsizei);
+#define CALL_DeleteLists(disp, parameters) \
+ (* GET_DeleteLists(disp)) parameters
+static INLINE _glptr_DeleteLists GET_DeleteLists(struct _glapi_table *disp) {
+ return (_glptr_DeleteLists) (GET_by_offset(disp, _gloffset_DeleteLists));
+}
+
+static INLINE void SET_DeleteLists(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei)) {
+ SET_by_offset(disp, _gloffset_DeleteLists, fn);
+}
+
+typedef GLuint (GLAPIENTRYP _glptr_GenLists)(GLsizei);
+#define CALL_GenLists(disp, parameters) \
+ (* GET_GenLists(disp)) parameters
+static INLINE _glptr_GenLists GET_GenLists(struct _glapi_table *disp) {
+ return (_glptr_GenLists) (GET_by_offset(disp, _gloffset_GenLists));
+}
+
+static INLINE void SET_GenLists(struct _glapi_table *disp, GLuint (GLAPIENTRYP fn)(GLsizei)) {
+ SET_by_offset(disp, _gloffset_GenLists, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ListBase)(GLuint);
+#define CALL_ListBase(disp, parameters) \
+ (* GET_ListBase(disp)) parameters
+static INLINE _glptr_ListBase GET_ListBase(struct _glapi_table *disp) {
+ return (_glptr_ListBase) (GET_by_offset(disp, _gloffset_ListBase));
+}
+
+static INLINE void SET_ListBase(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_ListBase, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Begin)(GLenum);
+#define CALL_Begin(disp, parameters) \
+ (* GET_Begin(disp)) parameters
+static INLINE _glptr_Begin GET_Begin(struct _glapi_table *disp) {
+ return (_glptr_Begin) (GET_by_offset(disp, _gloffset_Begin));
+}
+
+static INLINE void SET_Begin(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_Begin, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Bitmap)(GLsizei, GLsizei, GLfloat, GLfloat, GLfloat, GLfloat, const GLubyte *);
+#define CALL_Bitmap(disp, parameters) \
+ (* GET_Bitmap(disp)) parameters
+static INLINE _glptr_Bitmap GET_Bitmap(struct _glapi_table *disp) {
+ return (_glptr_Bitmap) (GET_by_offset(disp, _gloffset_Bitmap));
+}
+
+static INLINE void SET_Bitmap(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, GLsizei, GLfloat, GLfloat, GLfloat, GLfloat, const GLubyte *)) {
+ SET_by_offset(disp, _gloffset_Bitmap, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color3b)(GLbyte, GLbyte, GLbyte);
+#define CALL_Color3b(disp, parameters) \
+ (* GET_Color3b(disp)) parameters
+static INLINE _glptr_Color3b GET_Color3b(struct _glapi_table *disp) {
+ return (_glptr_Color3b) (GET_by_offset(disp, _gloffset_Color3b));
+}
+
+static INLINE void SET_Color3b(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLbyte, GLbyte, GLbyte)) {
+ SET_by_offset(disp, _gloffset_Color3b, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color3bv)(const GLbyte *);
+#define CALL_Color3bv(disp, parameters) \
+ (* GET_Color3bv(disp)) parameters
+static INLINE _glptr_Color3bv GET_Color3bv(struct _glapi_table *disp) {
+ return (_glptr_Color3bv) (GET_by_offset(disp, _gloffset_Color3bv));
+}
+
+static INLINE void SET_Color3bv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLbyte *)) {
+ SET_by_offset(disp, _gloffset_Color3bv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color3d)(GLdouble, GLdouble, GLdouble);
+#define CALL_Color3d(disp, parameters) \
+ (* GET_Color3d(disp)) parameters
+static INLINE _glptr_Color3d GET_Color3d(struct _glapi_table *disp) {
+ return (_glptr_Color3d) (GET_by_offset(disp, _gloffset_Color3d));
+}
+
+static INLINE void SET_Color3d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_Color3d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color3dv)(const GLdouble *);
+#define CALL_Color3dv(disp, parameters) \
+ (* GET_Color3dv(disp)) parameters
+static INLINE _glptr_Color3dv GET_Color3dv(struct _glapi_table *disp) {
+ return (_glptr_Color3dv) (GET_by_offset(disp, _gloffset_Color3dv));
+}
+
+static INLINE void SET_Color3dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_Color3dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color3f)(GLfloat, GLfloat, GLfloat);
+#define CALL_Color3f(disp, parameters) \
+ (* GET_Color3f(disp)) parameters
+static INLINE _glptr_Color3f GET_Color3f(struct _glapi_table *disp) {
+ return (_glptr_Color3f) (GET_by_offset(disp, _gloffset_Color3f));
+}
+
+static INLINE void SET_Color3f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Color3f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color3fv)(const GLfloat *);
+#define CALL_Color3fv(disp, parameters) \
+ (* GET_Color3fv(disp)) parameters
+static INLINE _glptr_Color3fv GET_Color3fv(struct _glapi_table *disp) {
+ return (_glptr_Color3fv) (GET_by_offset(disp, _gloffset_Color3fv));
+}
+
+static INLINE void SET_Color3fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_Color3fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color3i)(GLint, GLint, GLint);
+#define CALL_Color3i(disp, parameters) \
+ (* GET_Color3i(disp)) parameters
+static INLINE _glptr_Color3i GET_Color3i(struct _glapi_table *disp) {
+ return (_glptr_Color3i) (GET_by_offset(disp, _gloffset_Color3i));
+}
+
+static INLINE void SET_Color3i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_Color3i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color3iv)(const GLint *);
+#define CALL_Color3iv(disp, parameters) \
+ (* GET_Color3iv(disp)) parameters
+static INLINE _glptr_Color3iv GET_Color3iv(struct _glapi_table *disp) {
+ return (_glptr_Color3iv) (GET_by_offset(disp, _gloffset_Color3iv));
+}
+
+static INLINE void SET_Color3iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *)) {
+ SET_by_offset(disp, _gloffset_Color3iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color3s)(GLshort, GLshort, GLshort);
+#define CALL_Color3s(disp, parameters) \
+ (* GET_Color3s(disp)) parameters
+static INLINE _glptr_Color3s GET_Color3s(struct _glapi_table *disp) {
+ return (_glptr_Color3s) (GET_by_offset(disp, _gloffset_Color3s));
+}
+
+static INLINE void SET_Color3s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_Color3s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color3sv)(const GLshort *);
+#define CALL_Color3sv(disp, parameters) \
+ (* GET_Color3sv(disp)) parameters
+static INLINE _glptr_Color3sv GET_Color3sv(struct _glapi_table *disp) {
+ return (_glptr_Color3sv) (GET_by_offset(disp, _gloffset_Color3sv));
+}
+
+static INLINE void SET_Color3sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *)) {
+ SET_by_offset(disp, _gloffset_Color3sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color3ub)(GLubyte, GLubyte, GLubyte);
+#define CALL_Color3ub(disp, parameters) \
+ (* GET_Color3ub(disp)) parameters
+static INLINE _glptr_Color3ub GET_Color3ub(struct _glapi_table *disp) {
+ return (_glptr_Color3ub) (GET_by_offset(disp, _gloffset_Color3ub));
+}
+
+static INLINE void SET_Color3ub(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLubyte, GLubyte, GLubyte)) {
+ SET_by_offset(disp, _gloffset_Color3ub, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color3ubv)(const GLubyte *);
+#define CALL_Color3ubv(disp, parameters) \
+ (* GET_Color3ubv(disp)) parameters
+static INLINE _glptr_Color3ubv GET_Color3ubv(struct _glapi_table *disp) {
+ return (_glptr_Color3ubv) (GET_by_offset(disp, _gloffset_Color3ubv));
+}
+
+static INLINE void SET_Color3ubv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLubyte *)) {
+ SET_by_offset(disp, _gloffset_Color3ubv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color3ui)(GLuint, GLuint, GLuint);
+#define CALL_Color3ui(disp, parameters) \
+ (* GET_Color3ui(disp)) parameters
+static INLINE _glptr_Color3ui GET_Color3ui(struct _glapi_table *disp) {
+ return (_glptr_Color3ui) (GET_by_offset(disp, _gloffset_Color3ui));
+}
+
+static INLINE void SET_Color3ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_Color3ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color3uiv)(const GLuint *);
+#define CALL_Color3uiv(disp, parameters) \
+ (* GET_Color3uiv(disp)) parameters
+static INLINE _glptr_Color3uiv GET_Color3uiv(struct _glapi_table *disp) {
+ return (_glptr_Color3uiv) (GET_by_offset(disp, _gloffset_Color3uiv));
+}
+
+static INLINE void SET_Color3uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLuint *)) {
+ SET_by_offset(disp, _gloffset_Color3uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color3us)(GLushort, GLushort, GLushort);
+#define CALL_Color3us(disp, parameters) \
+ (* GET_Color3us(disp)) parameters
+static INLINE _glptr_Color3us GET_Color3us(struct _glapi_table *disp) {
+ return (_glptr_Color3us) (GET_by_offset(disp, _gloffset_Color3us));
+}
+
+static INLINE void SET_Color3us(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLushort, GLushort, GLushort)) {
+ SET_by_offset(disp, _gloffset_Color3us, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color3usv)(const GLushort *);
+#define CALL_Color3usv(disp, parameters) \
+ (* GET_Color3usv(disp)) parameters
+static INLINE _glptr_Color3usv GET_Color3usv(struct _glapi_table *disp) {
+ return (_glptr_Color3usv) (GET_by_offset(disp, _gloffset_Color3usv));
+}
+
+static INLINE void SET_Color3usv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLushort *)) {
+ SET_by_offset(disp, _gloffset_Color3usv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color4b)(GLbyte, GLbyte, GLbyte, GLbyte);
+#define CALL_Color4b(disp, parameters) \
+ (* GET_Color4b(disp)) parameters
+static INLINE _glptr_Color4b GET_Color4b(struct _glapi_table *disp) {
+ return (_glptr_Color4b) (GET_by_offset(disp, _gloffset_Color4b));
+}
+
+static INLINE void SET_Color4b(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLbyte, GLbyte, GLbyte, GLbyte)) {
+ SET_by_offset(disp, _gloffset_Color4b, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color4bv)(const GLbyte *);
+#define CALL_Color4bv(disp, parameters) \
+ (* GET_Color4bv(disp)) parameters
+static INLINE _glptr_Color4bv GET_Color4bv(struct _glapi_table *disp) {
+ return (_glptr_Color4bv) (GET_by_offset(disp, _gloffset_Color4bv));
+}
+
+static INLINE void SET_Color4bv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLbyte *)) {
+ SET_by_offset(disp, _gloffset_Color4bv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color4d)(GLdouble, GLdouble, GLdouble, GLdouble);
+#define CALL_Color4d(disp, parameters) \
+ (* GET_Color4d(disp)) parameters
+static INLINE _glptr_Color4d GET_Color4d(struct _glapi_table *disp) {
+ return (_glptr_Color4d) (GET_by_offset(disp, _gloffset_Color4d));
+}
+
+static INLINE void SET_Color4d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_Color4d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color4dv)(const GLdouble *);
+#define CALL_Color4dv(disp, parameters) \
+ (* GET_Color4dv(disp)) parameters
+static INLINE _glptr_Color4dv GET_Color4dv(struct _glapi_table *disp) {
+ return (_glptr_Color4dv) (GET_by_offset(disp, _gloffset_Color4dv));
+}
+
+static INLINE void SET_Color4dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_Color4dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color4f)(GLfloat, GLfloat, GLfloat, GLfloat);
+#define CALL_Color4f(disp, parameters) \
+ (* GET_Color4f(disp)) parameters
+static INLINE _glptr_Color4f GET_Color4f(struct _glapi_table *disp) {
+ return (_glptr_Color4f) (GET_by_offset(disp, _gloffset_Color4f));
+}
+
+static INLINE void SET_Color4f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Color4f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color4fv)(const GLfloat *);
+#define CALL_Color4fv(disp, parameters) \
+ (* GET_Color4fv(disp)) parameters
+static INLINE _glptr_Color4fv GET_Color4fv(struct _glapi_table *disp) {
+ return (_glptr_Color4fv) (GET_by_offset(disp, _gloffset_Color4fv));
+}
+
+static INLINE void SET_Color4fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_Color4fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color4i)(GLint, GLint, GLint, GLint);
+#define CALL_Color4i(disp, parameters) \
+ (* GET_Color4i(disp)) parameters
+static INLINE _glptr_Color4i GET_Color4i(struct _glapi_table *disp) {
+ return (_glptr_Color4i) (GET_by_offset(disp, _gloffset_Color4i));
+}
+
+static INLINE void SET_Color4i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_Color4i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color4iv)(const GLint *);
+#define CALL_Color4iv(disp, parameters) \
+ (* GET_Color4iv(disp)) parameters
+static INLINE _glptr_Color4iv GET_Color4iv(struct _glapi_table *disp) {
+ return (_glptr_Color4iv) (GET_by_offset(disp, _gloffset_Color4iv));
+}
+
+static INLINE void SET_Color4iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *)) {
+ SET_by_offset(disp, _gloffset_Color4iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color4s)(GLshort, GLshort, GLshort, GLshort);
+#define CALL_Color4s(disp, parameters) \
+ (* GET_Color4s(disp)) parameters
+static INLINE _glptr_Color4s GET_Color4s(struct _glapi_table *disp) {
+ return (_glptr_Color4s) (GET_by_offset(disp, _gloffset_Color4s));
+}
+
+static INLINE void SET_Color4s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort, GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_Color4s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color4sv)(const GLshort *);
+#define CALL_Color4sv(disp, parameters) \
+ (* GET_Color4sv(disp)) parameters
+static INLINE _glptr_Color4sv GET_Color4sv(struct _glapi_table *disp) {
+ return (_glptr_Color4sv) (GET_by_offset(disp, _gloffset_Color4sv));
+}
+
+static INLINE void SET_Color4sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *)) {
+ SET_by_offset(disp, _gloffset_Color4sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color4ub)(GLubyte, GLubyte, GLubyte, GLubyte);
+#define CALL_Color4ub(disp, parameters) \
+ (* GET_Color4ub(disp)) parameters
+static INLINE _glptr_Color4ub GET_Color4ub(struct _glapi_table *disp) {
+ return (_glptr_Color4ub) (GET_by_offset(disp, _gloffset_Color4ub));
+}
+
+static INLINE void SET_Color4ub(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLubyte, GLubyte, GLubyte, GLubyte)) {
+ SET_by_offset(disp, _gloffset_Color4ub, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color4ubv)(const GLubyte *);
+#define CALL_Color4ubv(disp, parameters) \
+ (* GET_Color4ubv(disp)) parameters
+static INLINE _glptr_Color4ubv GET_Color4ubv(struct _glapi_table *disp) {
+ return (_glptr_Color4ubv) (GET_by_offset(disp, _gloffset_Color4ubv));
+}
+
+static INLINE void SET_Color4ubv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLubyte *)) {
+ SET_by_offset(disp, _gloffset_Color4ubv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color4ui)(GLuint, GLuint, GLuint, GLuint);
+#define CALL_Color4ui(disp, parameters) \
+ (* GET_Color4ui(disp)) parameters
+static INLINE _glptr_Color4ui GET_Color4ui(struct _glapi_table *disp) {
+ return (_glptr_Color4ui) (GET_by_offset(disp, _gloffset_Color4ui));
+}
+
+static INLINE void SET_Color4ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_Color4ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color4uiv)(const GLuint *);
+#define CALL_Color4uiv(disp, parameters) \
+ (* GET_Color4uiv(disp)) parameters
+static INLINE _glptr_Color4uiv GET_Color4uiv(struct _glapi_table *disp) {
+ return (_glptr_Color4uiv) (GET_by_offset(disp, _gloffset_Color4uiv));
+}
+
+static INLINE void SET_Color4uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLuint *)) {
+ SET_by_offset(disp, _gloffset_Color4uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color4us)(GLushort, GLushort, GLushort, GLushort);
+#define CALL_Color4us(disp, parameters) \
+ (* GET_Color4us(disp)) parameters
+static INLINE _glptr_Color4us GET_Color4us(struct _glapi_table *disp) {
+ return (_glptr_Color4us) (GET_by_offset(disp, _gloffset_Color4us));
+}
+
+static INLINE void SET_Color4us(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLushort, GLushort, GLushort, GLushort)) {
+ SET_by_offset(disp, _gloffset_Color4us, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color4usv)(const GLushort *);
+#define CALL_Color4usv(disp, parameters) \
+ (* GET_Color4usv(disp)) parameters
+static INLINE _glptr_Color4usv GET_Color4usv(struct _glapi_table *disp) {
+ return (_glptr_Color4usv) (GET_by_offset(disp, _gloffset_Color4usv));
+}
+
+static INLINE void SET_Color4usv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLushort *)) {
+ SET_by_offset(disp, _gloffset_Color4usv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EdgeFlag)(GLboolean);
+#define CALL_EdgeFlag(disp, parameters) \
+ (* GET_EdgeFlag(disp)) parameters
+static INLINE _glptr_EdgeFlag GET_EdgeFlag(struct _glapi_table *disp) {
+ return (_glptr_EdgeFlag) (GET_by_offset(disp, _gloffset_EdgeFlag));
+}
+
+static INLINE void SET_EdgeFlag(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLboolean)) {
+ SET_by_offset(disp, _gloffset_EdgeFlag, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EdgeFlagv)(const GLboolean *);
+#define CALL_EdgeFlagv(disp, parameters) \
+ (* GET_EdgeFlagv(disp)) parameters
+static INLINE _glptr_EdgeFlagv GET_EdgeFlagv(struct _glapi_table *disp) {
+ return (_glptr_EdgeFlagv) (GET_by_offset(disp, _gloffset_EdgeFlagv));
+}
+
+static INLINE void SET_EdgeFlagv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLboolean *)) {
+ SET_by_offset(disp, _gloffset_EdgeFlagv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_End)(void);
+#define CALL_End(disp, parameters) \
+ (* GET_End(disp)) parameters
+static INLINE _glptr_End GET_End(struct _glapi_table *disp) {
+ return (_glptr_End) (GET_by_offset(disp, _gloffset_End));
+}
+
+static INLINE void SET_End(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_End, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Indexd)(GLdouble);
+#define CALL_Indexd(disp, parameters) \
+ (* GET_Indexd(disp)) parameters
+static INLINE _glptr_Indexd GET_Indexd(struct _glapi_table *disp) {
+ return (_glptr_Indexd) (GET_by_offset(disp, _gloffset_Indexd));
+}
+
+static INLINE void SET_Indexd(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble)) {
+ SET_by_offset(disp, _gloffset_Indexd, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Indexdv)(const GLdouble *);
+#define CALL_Indexdv(disp, parameters) \
+ (* GET_Indexdv(disp)) parameters
+static INLINE _glptr_Indexdv GET_Indexdv(struct _glapi_table *disp) {
+ return (_glptr_Indexdv) (GET_by_offset(disp, _gloffset_Indexdv));
+}
+
+static INLINE void SET_Indexdv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_Indexdv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Indexf)(GLfloat);
+#define CALL_Indexf(disp, parameters) \
+ (* GET_Indexf(disp)) parameters
+static INLINE _glptr_Indexf GET_Indexf(struct _glapi_table *disp) {
+ return (_glptr_Indexf) (GET_by_offset(disp, _gloffset_Indexf));
+}
+
+static INLINE void SET_Indexf(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat)) {
+ SET_by_offset(disp, _gloffset_Indexf, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Indexfv)(const GLfloat *);
+#define CALL_Indexfv(disp, parameters) \
+ (* GET_Indexfv(disp)) parameters
+static INLINE _glptr_Indexfv GET_Indexfv(struct _glapi_table *disp) {
+ return (_glptr_Indexfv) (GET_by_offset(disp, _gloffset_Indexfv));
+}
+
+static INLINE void SET_Indexfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_Indexfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Indexi)(GLint);
+#define CALL_Indexi(disp, parameters) \
+ (* GET_Indexi(disp)) parameters
+static INLINE _glptr_Indexi GET_Indexi(struct _glapi_table *disp) {
+ return (_glptr_Indexi) (GET_by_offset(disp, _gloffset_Indexi));
+}
+
+static INLINE void SET_Indexi(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint)) {
+ SET_by_offset(disp, _gloffset_Indexi, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Indexiv)(const GLint *);
+#define CALL_Indexiv(disp, parameters) \
+ (* GET_Indexiv(disp)) parameters
+static INLINE _glptr_Indexiv GET_Indexiv(struct _glapi_table *disp) {
+ return (_glptr_Indexiv) (GET_by_offset(disp, _gloffset_Indexiv));
+}
+
+static INLINE void SET_Indexiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *)) {
+ SET_by_offset(disp, _gloffset_Indexiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Indexs)(GLshort);
+#define CALL_Indexs(disp, parameters) \
+ (* GET_Indexs(disp)) parameters
+static INLINE _glptr_Indexs GET_Indexs(struct _glapi_table *disp) {
+ return (_glptr_Indexs) (GET_by_offset(disp, _gloffset_Indexs));
+}
+
+static INLINE void SET_Indexs(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort)) {
+ SET_by_offset(disp, _gloffset_Indexs, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Indexsv)(const GLshort *);
+#define CALL_Indexsv(disp, parameters) \
+ (* GET_Indexsv(disp)) parameters
+static INLINE _glptr_Indexsv GET_Indexsv(struct _glapi_table *disp) {
+ return (_glptr_Indexsv) (GET_by_offset(disp, _gloffset_Indexsv));
+}
+
+static INLINE void SET_Indexsv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *)) {
+ SET_by_offset(disp, _gloffset_Indexsv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Normal3b)(GLbyte, GLbyte, GLbyte);
+#define CALL_Normal3b(disp, parameters) \
+ (* GET_Normal3b(disp)) parameters
+static INLINE _glptr_Normal3b GET_Normal3b(struct _glapi_table *disp) {
+ return (_glptr_Normal3b) (GET_by_offset(disp, _gloffset_Normal3b));
+}
+
+static INLINE void SET_Normal3b(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLbyte, GLbyte, GLbyte)) {
+ SET_by_offset(disp, _gloffset_Normal3b, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Normal3bv)(const GLbyte *);
+#define CALL_Normal3bv(disp, parameters) \
+ (* GET_Normal3bv(disp)) parameters
+static INLINE _glptr_Normal3bv GET_Normal3bv(struct _glapi_table *disp) {
+ return (_glptr_Normal3bv) (GET_by_offset(disp, _gloffset_Normal3bv));
+}
+
+static INLINE void SET_Normal3bv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLbyte *)) {
+ SET_by_offset(disp, _gloffset_Normal3bv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Normal3d)(GLdouble, GLdouble, GLdouble);
+#define CALL_Normal3d(disp, parameters) \
+ (* GET_Normal3d(disp)) parameters
+static INLINE _glptr_Normal3d GET_Normal3d(struct _glapi_table *disp) {
+ return (_glptr_Normal3d) (GET_by_offset(disp, _gloffset_Normal3d));
+}
+
+static INLINE void SET_Normal3d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_Normal3d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Normal3dv)(const GLdouble *);
+#define CALL_Normal3dv(disp, parameters) \
+ (* GET_Normal3dv(disp)) parameters
+static INLINE _glptr_Normal3dv GET_Normal3dv(struct _glapi_table *disp) {
+ return (_glptr_Normal3dv) (GET_by_offset(disp, _gloffset_Normal3dv));
+}
+
+static INLINE void SET_Normal3dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_Normal3dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Normal3f)(GLfloat, GLfloat, GLfloat);
+#define CALL_Normal3f(disp, parameters) \
+ (* GET_Normal3f(disp)) parameters
+static INLINE _glptr_Normal3f GET_Normal3f(struct _glapi_table *disp) {
+ return (_glptr_Normal3f) (GET_by_offset(disp, _gloffset_Normal3f));
+}
+
+static INLINE void SET_Normal3f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Normal3f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Normal3fv)(const GLfloat *);
+#define CALL_Normal3fv(disp, parameters) \
+ (* GET_Normal3fv(disp)) parameters
+static INLINE _glptr_Normal3fv GET_Normal3fv(struct _glapi_table *disp) {
+ return (_glptr_Normal3fv) (GET_by_offset(disp, _gloffset_Normal3fv));
+}
+
+static INLINE void SET_Normal3fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_Normal3fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Normal3i)(GLint, GLint, GLint);
+#define CALL_Normal3i(disp, parameters) \
+ (* GET_Normal3i(disp)) parameters
+static INLINE _glptr_Normal3i GET_Normal3i(struct _glapi_table *disp) {
+ return (_glptr_Normal3i) (GET_by_offset(disp, _gloffset_Normal3i));
+}
+
+static INLINE void SET_Normal3i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_Normal3i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Normal3iv)(const GLint *);
+#define CALL_Normal3iv(disp, parameters) \
+ (* GET_Normal3iv(disp)) parameters
+static INLINE _glptr_Normal3iv GET_Normal3iv(struct _glapi_table *disp) {
+ return (_glptr_Normal3iv) (GET_by_offset(disp, _gloffset_Normal3iv));
+}
+
+static INLINE void SET_Normal3iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *)) {
+ SET_by_offset(disp, _gloffset_Normal3iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Normal3s)(GLshort, GLshort, GLshort);
+#define CALL_Normal3s(disp, parameters) \
+ (* GET_Normal3s(disp)) parameters
+static INLINE _glptr_Normal3s GET_Normal3s(struct _glapi_table *disp) {
+ return (_glptr_Normal3s) (GET_by_offset(disp, _gloffset_Normal3s));
+}
+
+static INLINE void SET_Normal3s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_Normal3s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Normal3sv)(const GLshort *);
+#define CALL_Normal3sv(disp, parameters) \
+ (* GET_Normal3sv(disp)) parameters
+static INLINE _glptr_Normal3sv GET_Normal3sv(struct _glapi_table *disp) {
+ return (_glptr_Normal3sv) (GET_by_offset(disp, _gloffset_Normal3sv));
+}
+
+static INLINE void SET_Normal3sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *)) {
+ SET_by_offset(disp, _gloffset_Normal3sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos2d)(GLdouble, GLdouble);
+#define CALL_RasterPos2d(disp, parameters) \
+ (* GET_RasterPos2d(disp)) parameters
+static INLINE _glptr_RasterPos2d GET_RasterPos2d(struct _glapi_table *disp) {
+ return (_glptr_RasterPos2d) (GET_by_offset(disp, _gloffset_RasterPos2d));
+}
+
+static INLINE void SET_RasterPos2d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_RasterPos2d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos2dv)(const GLdouble *);
+#define CALL_RasterPos2dv(disp, parameters) \
+ (* GET_RasterPos2dv(disp)) parameters
+static INLINE _glptr_RasterPos2dv GET_RasterPos2dv(struct _glapi_table *disp) {
+ return (_glptr_RasterPos2dv) (GET_by_offset(disp, _gloffset_RasterPos2dv));
+}
+
+static INLINE void SET_RasterPos2dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_RasterPos2dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos2f)(GLfloat, GLfloat);
+#define CALL_RasterPos2f(disp, parameters) \
+ (* GET_RasterPos2f(disp)) parameters
+static INLINE _glptr_RasterPos2f GET_RasterPos2f(struct _glapi_table *disp) {
+ return (_glptr_RasterPos2f) (GET_by_offset(disp, _gloffset_RasterPos2f));
+}
+
+static INLINE void SET_RasterPos2f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_RasterPos2f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos2fv)(const GLfloat *);
+#define CALL_RasterPos2fv(disp, parameters) \
+ (* GET_RasterPos2fv(disp)) parameters
+static INLINE _glptr_RasterPos2fv GET_RasterPos2fv(struct _glapi_table *disp) {
+ return (_glptr_RasterPos2fv) (GET_by_offset(disp, _gloffset_RasterPos2fv));
+}
+
+static INLINE void SET_RasterPos2fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_RasterPos2fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos2i)(GLint, GLint);
+#define CALL_RasterPos2i(disp, parameters) \
+ (* GET_RasterPos2i(disp)) parameters
+static INLINE _glptr_RasterPos2i GET_RasterPos2i(struct _glapi_table *disp) {
+ return (_glptr_RasterPos2i) (GET_by_offset(disp, _gloffset_RasterPos2i));
+}
+
+static INLINE void SET_RasterPos2i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_RasterPos2i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos2iv)(const GLint *);
+#define CALL_RasterPos2iv(disp, parameters) \
+ (* GET_RasterPos2iv(disp)) parameters
+static INLINE _glptr_RasterPos2iv GET_RasterPos2iv(struct _glapi_table *disp) {
+ return (_glptr_RasterPos2iv) (GET_by_offset(disp, _gloffset_RasterPos2iv));
+}
+
+static INLINE void SET_RasterPos2iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *)) {
+ SET_by_offset(disp, _gloffset_RasterPos2iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos2s)(GLshort, GLshort);
+#define CALL_RasterPos2s(disp, parameters) \
+ (* GET_RasterPos2s(disp)) parameters
+static INLINE _glptr_RasterPos2s GET_RasterPos2s(struct _glapi_table *disp) {
+ return (_glptr_RasterPos2s) (GET_by_offset(disp, _gloffset_RasterPos2s));
+}
+
+static INLINE void SET_RasterPos2s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_RasterPos2s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos2sv)(const GLshort *);
+#define CALL_RasterPos2sv(disp, parameters) \
+ (* GET_RasterPos2sv(disp)) parameters
+static INLINE _glptr_RasterPos2sv GET_RasterPos2sv(struct _glapi_table *disp) {
+ return (_glptr_RasterPos2sv) (GET_by_offset(disp, _gloffset_RasterPos2sv));
+}
+
+static INLINE void SET_RasterPos2sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *)) {
+ SET_by_offset(disp, _gloffset_RasterPos2sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos3d)(GLdouble, GLdouble, GLdouble);
+#define CALL_RasterPos3d(disp, parameters) \
+ (* GET_RasterPos3d(disp)) parameters
+static INLINE _glptr_RasterPos3d GET_RasterPos3d(struct _glapi_table *disp) {
+ return (_glptr_RasterPos3d) (GET_by_offset(disp, _gloffset_RasterPos3d));
+}
+
+static INLINE void SET_RasterPos3d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_RasterPos3d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos3dv)(const GLdouble *);
+#define CALL_RasterPos3dv(disp, parameters) \
+ (* GET_RasterPos3dv(disp)) parameters
+static INLINE _glptr_RasterPos3dv GET_RasterPos3dv(struct _glapi_table *disp) {
+ return (_glptr_RasterPos3dv) (GET_by_offset(disp, _gloffset_RasterPos3dv));
+}
+
+static INLINE void SET_RasterPos3dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_RasterPos3dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos3f)(GLfloat, GLfloat, GLfloat);
+#define CALL_RasterPos3f(disp, parameters) \
+ (* GET_RasterPos3f(disp)) parameters
+static INLINE _glptr_RasterPos3f GET_RasterPos3f(struct _glapi_table *disp) {
+ return (_glptr_RasterPos3f) (GET_by_offset(disp, _gloffset_RasterPos3f));
+}
+
+static INLINE void SET_RasterPos3f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_RasterPos3f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos3fv)(const GLfloat *);
+#define CALL_RasterPos3fv(disp, parameters) \
+ (* GET_RasterPos3fv(disp)) parameters
+static INLINE _glptr_RasterPos3fv GET_RasterPos3fv(struct _glapi_table *disp) {
+ return (_glptr_RasterPos3fv) (GET_by_offset(disp, _gloffset_RasterPos3fv));
+}
+
+static INLINE void SET_RasterPos3fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_RasterPos3fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos3i)(GLint, GLint, GLint);
+#define CALL_RasterPos3i(disp, parameters) \
+ (* GET_RasterPos3i(disp)) parameters
+static INLINE _glptr_RasterPos3i GET_RasterPos3i(struct _glapi_table *disp) {
+ return (_glptr_RasterPos3i) (GET_by_offset(disp, _gloffset_RasterPos3i));
+}
+
+static INLINE void SET_RasterPos3i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_RasterPos3i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos3iv)(const GLint *);
+#define CALL_RasterPos3iv(disp, parameters) \
+ (* GET_RasterPos3iv(disp)) parameters
+static INLINE _glptr_RasterPos3iv GET_RasterPos3iv(struct _glapi_table *disp) {
+ return (_glptr_RasterPos3iv) (GET_by_offset(disp, _gloffset_RasterPos3iv));
+}
+
+static INLINE void SET_RasterPos3iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *)) {
+ SET_by_offset(disp, _gloffset_RasterPos3iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos3s)(GLshort, GLshort, GLshort);
+#define CALL_RasterPos3s(disp, parameters) \
+ (* GET_RasterPos3s(disp)) parameters
+static INLINE _glptr_RasterPos3s GET_RasterPos3s(struct _glapi_table *disp) {
+ return (_glptr_RasterPos3s) (GET_by_offset(disp, _gloffset_RasterPos3s));
+}
+
+static INLINE void SET_RasterPos3s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_RasterPos3s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos3sv)(const GLshort *);
+#define CALL_RasterPos3sv(disp, parameters) \
+ (* GET_RasterPos3sv(disp)) parameters
+static INLINE _glptr_RasterPos3sv GET_RasterPos3sv(struct _glapi_table *disp) {
+ return (_glptr_RasterPos3sv) (GET_by_offset(disp, _gloffset_RasterPos3sv));
+}
+
+static INLINE void SET_RasterPos3sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *)) {
+ SET_by_offset(disp, _gloffset_RasterPos3sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos4d)(GLdouble, GLdouble, GLdouble, GLdouble);
+#define CALL_RasterPos4d(disp, parameters) \
+ (* GET_RasterPos4d(disp)) parameters
+static INLINE _glptr_RasterPos4d GET_RasterPos4d(struct _glapi_table *disp) {
+ return (_glptr_RasterPos4d) (GET_by_offset(disp, _gloffset_RasterPos4d));
+}
+
+static INLINE void SET_RasterPos4d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_RasterPos4d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos4dv)(const GLdouble *);
+#define CALL_RasterPos4dv(disp, parameters) \
+ (* GET_RasterPos4dv(disp)) parameters
+static INLINE _glptr_RasterPos4dv GET_RasterPos4dv(struct _glapi_table *disp) {
+ return (_glptr_RasterPos4dv) (GET_by_offset(disp, _gloffset_RasterPos4dv));
+}
+
+static INLINE void SET_RasterPos4dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_RasterPos4dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos4f)(GLfloat, GLfloat, GLfloat, GLfloat);
+#define CALL_RasterPos4f(disp, parameters) \
+ (* GET_RasterPos4f(disp)) parameters
+static INLINE _glptr_RasterPos4f GET_RasterPos4f(struct _glapi_table *disp) {
+ return (_glptr_RasterPos4f) (GET_by_offset(disp, _gloffset_RasterPos4f));
+}
+
+static INLINE void SET_RasterPos4f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_RasterPos4f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos4fv)(const GLfloat *);
+#define CALL_RasterPos4fv(disp, parameters) \
+ (* GET_RasterPos4fv(disp)) parameters
+static INLINE _glptr_RasterPos4fv GET_RasterPos4fv(struct _glapi_table *disp) {
+ return (_glptr_RasterPos4fv) (GET_by_offset(disp, _gloffset_RasterPos4fv));
+}
+
+static INLINE void SET_RasterPos4fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_RasterPos4fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos4i)(GLint, GLint, GLint, GLint);
+#define CALL_RasterPos4i(disp, parameters) \
+ (* GET_RasterPos4i(disp)) parameters
+static INLINE _glptr_RasterPos4i GET_RasterPos4i(struct _glapi_table *disp) {
+ return (_glptr_RasterPos4i) (GET_by_offset(disp, _gloffset_RasterPos4i));
+}
+
+static INLINE void SET_RasterPos4i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_RasterPos4i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos4iv)(const GLint *);
+#define CALL_RasterPos4iv(disp, parameters) \
+ (* GET_RasterPos4iv(disp)) parameters
+static INLINE _glptr_RasterPos4iv GET_RasterPos4iv(struct _glapi_table *disp) {
+ return (_glptr_RasterPos4iv) (GET_by_offset(disp, _gloffset_RasterPos4iv));
+}
+
+static INLINE void SET_RasterPos4iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *)) {
+ SET_by_offset(disp, _gloffset_RasterPos4iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos4s)(GLshort, GLshort, GLshort, GLshort);
+#define CALL_RasterPos4s(disp, parameters) \
+ (* GET_RasterPos4s(disp)) parameters
+static INLINE _glptr_RasterPos4s GET_RasterPos4s(struct _glapi_table *disp) {
+ return (_glptr_RasterPos4s) (GET_by_offset(disp, _gloffset_RasterPos4s));
+}
+
+static INLINE void SET_RasterPos4s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort, GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_RasterPos4s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RasterPos4sv)(const GLshort *);
+#define CALL_RasterPos4sv(disp, parameters) \
+ (* GET_RasterPos4sv(disp)) parameters
+static INLINE _glptr_RasterPos4sv GET_RasterPos4sv(struct _glapi_table *disp) {
+ return (_glptr_RasterPos4sv) (GET_by_offset(disp, _gloffset_RasterPos4sv));
+}
+
+static INLINE void SET_RasterPos4sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *)) {
+ SET_by_offset(disp, _gloffset_RasterPos4sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Rectd)(GLdouble, GLdouble, GLdouble, GLdouble);
+#define CALL_Rectd(disp, parameters) \
+ (* GET_Rectd(disp)) parameters
+static INLINE _glptr_Rectd GET_Rectd(struct _glapi_table *disp) {
+ return (_glptr_Rectd) (GET_by_offset(disp, _gloffset_Rectd));
+}
+
+static INLINE void SET_Rectd(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_Rectd, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Rectdv)(const GLdouble *, const GLdouble *);
+#define CALL_Rectdv(disp, parameters) \
+ (* GET_Rectdv(disp)) parameters
+static INLINE _glptr_Rectdv GET_Rectdv(struct _glapi_table *disp) {
+ return (_glptr_Rectdv) (GET_by_offset(disp, _gloffset_Rectdv));
+}
+
+static INLINE void SET_Rectdv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_Rectdv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Rectf)(GLfloat, GLfloat, GLfloat, GLfloat);
+#define CALL_Rectf(disp, parameters) \
+ (* GET_Rectf(disp)) parameters
+static INLINE _glptr_Rectf GET_Rectf(struct _glapi_table *disp) {
+ return (_glptr_Rectf) (GET_by_offset(disp, _gloffset_Rectf));
+}
+
+static INLINE void SET_Rectf(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Rectf, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Rectfv)(const GLfloat *, const GLfloat *);
+#define CALL_Rectfv(disp, parameters) \
+ (* GET_Rectfv(disp)) parameters
+static INLINE _glptr_Rectfv GET_Rectfv(struct _glapi_table *disp) {
+ return (_glptr_Rectfv) (GET_by_offset(disp, _gloffset_Rectfv));
+}
+
+static INLINE void SET_Rectfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_Rectfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Recti)(GLint, GLint, GLint, GLint);
+#define CALL_Recti(disp, parameters) \
+ (* GET_Recti(disp)) parameters
+static INLINE _glptr_Recti GET_Recti(struct _glapi_table *disp) {
+ return (_glptr_Recti) (GET_by_offset(disp, _gloffset_Recti));
+}
+
+static INLINE void SET_Recti(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_Recti, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Rectiv)(const GLint *, const GLint *);
+#define CALL_Rectiv(disp, parameters) \
+ (* GET_Rectiv(disp)) parameters
+static INLINE _glptr_Rectiv GET_Rectiv(struct _glapi_table *disp) {
+ return (_glptr_Rectiv) (GET_by_offset(disp, _gloffset_Rectiv));
+}
+
+static INLINE void SET_Rectiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *, const GLint *)) {
+ SET_by_offset(disp, _gloffset_Rectiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Rects)(GLshort, GLshort, GLshort, GLshort);
+#define CALL_Rects(disp, parameters) \
+ (* GET_Rects(disp)) parameters
+static INLINE _glptr_Rects GET_Rects(struct _glapi_table *disp) {
+ return (_glptr_Rects) (GET_by_offset(disp, _gloffset_Rects));
+}
+
+static INLINE void SET_Rects(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort, GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_Rects, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Rectsv)(const GLshort *, const GLshort *);
+#define CALL_Rectsv(disp, parameters) \
+ (* GET_Rectsv(disp)) parameters
+static INLINE _glptr_Rectsv GET_Rectsv(struct _glapi_table *disp) {
+ return (_glptr_Rectsv) (GET_by_offset(disp, _gloffset_Rectsv));
+}
+
+static INLINE void SET_Rectsv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *, const GLshort *)) {
+ SET_by_offset(disp, _gloffset_Rectsv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord1d)(GLdouble);
+#define CALL_TexCoord1d(disp, parameters) \
+ (* GET_TexCoord1d(disp)) parameters
+static INLINE _glptr_TexCoord1d GET_TexCoord1d(struct _glapi_table *disp) {
+ return (_glptr_TexCoord1d) (GET_by_offset(disp, _gloffset_TexCoord1d));
+}
+
+static INLINE void SET_TexCoord1d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble)) {
+ SET_by_offset(disp, _gloffset_TexCoord1d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord1dv)(const GLdouble *);
+#define CALL_TexCoord1dv(disp, parameters) \
+ (* GET_TexCoord1dv(disp)) parameters
+static INLINE _glptr_TexCoord1dv GET_TexCoord1dv(struct _glapi_table *disp) {
+ return (_glptr_TexCoord1dv) (GET_by_offset(disp, _gloffset_TexCoord1dv));
+}
+
+static INLINE void SET_TexCoord1dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_TexCoord1dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord1f)(GLfloat);
+#define CALL_TexCoord1f(disp, parameters) \
+ (* GET_TexCoord1f(disp)) parameters
+static INLINE _glptr_TexCoord1f GET_TexCoord1f(struct _glapi_table *disp) {
+ return (_glptr_TexCoord1f) (GET_by_offset(disp, _gloffset_TexCoord1f));
+}
+
+static INLINE void SET_TexCoord1f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat)) {
+ SET_by_offset(disp, _gloffset_TexCoord1f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord1fv)(const GLfloat *);
+#define CALL_TexCoord1fv(disp, parameters) \
+ (* GET_TexCoord1fv(disp)) parameters
+static INLINE _glptr_TexCoord1fv GET_TexCoord1fv(struct _glapi_table *disp) {
+ return (_glptr_TexCoord1fv) (GET_by_offset(disp, _gloffset_TexCoord1fv));
+}
+
+static INLINE void SET_TexCoord1fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_TexCoord1fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord1i)(GLint);
+#define CALL_TexCoord1i(disp, parameters) \
+ (* GET_TexCoord1i(disp)) parameters
+static INLINE _glptr_TexCoord1i GET_TexCoord1i(struct _glapi_table *disp) {
+ return (_glptr_TexCoord1i) (GET_by_offset(disp, _gloffset_TexCoord1i));
+}
+
+static INLINE void SET_TexCoord1i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint)) {
+ SET_by_offset(disp, _gloffset_TexCoord1i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord1iv)(const GLint *);
+#define CALL_TexCoord1iv(disp, parameters) \
+ (* GET_TexCoord1iv(disp)) parameters
+static INLINE _glptr_TexCoord1iv GET_TexCoord1iv(struct _glapi_table *disp) {
+ return (_glptr_TexCoord1iv) (GET_by_offset(disp, _gloffset_TexCoord1iv));
+}
+
+static INLINE void SET_TexCoord1iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *)) {
+ SET_by_offset(disp, _gloffset_TexCoord1iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord1s)(GLshort);
+#define CALL_TexCoord1s(disp, parameters) \
+ (* GET_TexCoord1s(disp)) parameters
+static INLINE _glptr_TexCoord1s GET_TexCoord1s(struct _glapi_table *disp) {
+ return (_glptr_TexCoord1s) (GET_by_offset(disp, _gloffset_TexCoord1s));
+}
+
+static INLINE void SET_TexCoord1s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort)) {
+ SET_by_offset(disp, _gloffset_TexCoord1s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord1sv)(const GLshort *);
+#define CALL_TexCoord1sv(disp, parameters) \
+ (* GET_TexCoord1sv(disp)) parameters
+static INLINE _glptr_TexCoord1sv GET_TexCoord1sv(struct _glapi_table *disp) {
+ return (_glptr_TexCoord1sv) (GET_by_offset(disp, _gloffset_TexCoord1sv));
+}
+
+static INLINE void SET_TexCoord1sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *)) {
+ SET_by_offset(disp, _gloffset_TexCoord1sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord2d)(GLdouble, GLdouble);
+#define CALL_TexCoord2d(disp, parameters) \
+ (* GET_TexCoord2d(disp)) parameters
+static INLINE _glptr_TexCoord2d GET_TexCoord2d(struct _glapi_table *disp) {
+ return (_glptr_TexCoord2d) (GET_by_offset(disp, _gloffset_TexCoord2d));
+}
+
+static INLINE void SET_TexCoord2d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_TexCoord2d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord2dv)(const GLdouble *);
+#define CALL_TexCoord2dv(disp, parameters) \
+ (* GET_TexCoord2dv(disp)) parameters
+static INLINE _glptr_TexCoord2dv GET_TexCoord2dv(struct _glapi_table *disp) {
+ return (_glptr_TexCoord2dv) (GET_by_offset(disp, _gloffset_TexCoord2dv));
+}
+
+static INLINE void SET_TexCoord2dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_TexCoord2dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord2f)(GLfloat, GLfloat);
+#define CALL_TexCoord2f(disp, parameters) \
+ (* GET_TexCoord2f(disp)) parameters
+static INLINE _glptr_TexCoord2f GET_TexCoord2f(struct _glapi_table *disp) {
+ return (_glptr_TexCoord2f) (GET_by_offset(disp, _gloffset_TexCoord2f));
+}
+
+static INLINE void SET_TexCoord2f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_TexCoord2f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord2fv)(const GLfloat *);
+#define CALL_TexCoord2fv(disp, parameters) \
+ (* GET_TexCoord2fv(disp)) parameters
+static INLINE _glptr_TexCoord2fv GET_TexCoord2fv(struct _glapi_table *disp) {
+ return (_glptr_TexCoord2fv) (GET_by_offset(disp, _gloffset_TexCoord2fv));
+}
+
+static INLINE void SET_TexCoord2fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_TexCoord2fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord2i)(GLint, GLint);
+#define CALL_TexCoord2i(disp, parameters) \
+ (* GET_TexCoord2i(disp)) parameters
+static INLINE _glptr_TexCoord2i GET_TexCoord2i(struct _glapi_table *disp) {
+ return (_glptr_TexCoord2i) (GET_by_offset(disp, _gloffset_TexCoord2i));
+}
+
+static INLINE void SET_TexCoord2i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_TexCoord2i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord2iv)(const GLint *);
+#define CALL_TexCoord2iv(disp, parameters) \
+ (* GET_TexCoord2iv(disp)) parameters
+static INLINE _glptr_TexCoord2iv GET_TexCoord2iv(struct _glapi_table *disp) {
+ return (_glptr_TexCoord2iv) (GET_by_offset(disp, _gloffset_TexCoord2iv));
+}
+
+static INLINE void SET_TexCoord2iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *)) {
+ SET_by_offset(disp, _gloffset_TexCoord2iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord2s)(GLshort, GLshort);
+#define CALL_TexCoord2s(disp, parameters) \
+ (* GET_TexCoord2s(disp)) parameters
+static INLINE _glptr_TexCoord2s GET_TexCoord2s(struct _glapi_table *disp) {
+ return (_glptr_TexCoord2s) (GET_by_offset(disp, _gloffset_TexCoord2s));
+}
+
+static INLINE void SET_TexCoord2s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_TexCoord2s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord2sv)(const GLshort *);
+#define CALL_TexCoord2sv(disp, parameters) \
+ (* GET_TexCoord2sv(disp)) parameters
+static INLINE _glptr_TexCoord2sv GET_TexCoord2sv(struct _glapi_table *disp) {
+ return (_glptr_TexCoord2sv) (GET_by_offset(disp, _gloffset_TexCoord2sv));
+}
+
+static INLINE void SET_TexCoord2sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *)) {
+ SET_by_offset(disp, _gloffset_TexCoord2sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord3d)(GLdouble, GLdouble, GLdouble);
+#define CALL_TexCoord3d(disp, parameters) \
+ (* GET_TexCoord3d(disp)) parameters
+static INLINE _glptr_TexCoord3d GET_TexCoord3d(struct _glapi_table *disp) {
+ return (_glptr_TexCoord3d) (GET_by_offset(disp, _gloffset_TexCoord3d));
+}
+
+static INLINE void SET_TexCoord3d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_TexCoord3d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord3dv)(const GLdouble *);
+#define CALL_TexCoord3dv(disp, parameters) \
+ (* GET_TexCoord3dv(disp)) parameters
+static INLINE _glptr_TexCoord3dv GET_TexCoord3dv(struct _glapi_table *disp) {
+ return (_glptr_TexCoord3dv) (GET_by_offset(disp, _gloffset_TexCoord3dv));
+}
+
+static INLINE void SET_TexCoord3dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_TexCoord3dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord3f)(GLfloat, GLfloat, GLfloat);
+#define CALL_TexCoord3f(disp, parameters) \
+ (* GET_TexCoord3f(disp)) parameters
+static INLINE _glptr_TexCoord3f GET_TexCoord3f(struct _glapi_table *disp) {
+ return (_glptr_TexCoord3f) (GET_by_offset(disp, _gloffset_TexCoord3f));
+}
+
+static INLINE void SET_TexCoord3f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_TexCoord3f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord3fv)(const GLfloat *);
+#define CALL_TexCoord3fv(disp, parameters) \
+ (* GET_TexCoord3fv(disp)) parameters
+static INLINE _glptr_TexCoord3fv GET_TexCoord3fv(struct _glapi_table *disp) {
+ return (_glptr_TexCoord3fv) (GET_by_offset(disp, _gloffset_TexCoord3fv));
+}
+
+static INLINE void SET_TexCoord3fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_TexCoord3fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord3i)(GLint, GLint, GLint);
+#define CALL_TexCoord3i(disp, parameters) \
+ (* GET_TexCoord3i(disp)) parameters
+static INLINE _glptr_TexCoord3i GET_TexCoord3i(struct _glapi_table *disp) {
+ return (_glptr_TexCoord3i) (GET_by_offset(disp, _gloffset_TexCoord3i));
+}
+
+static INLINE void SET_TexCoord3i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_TexCoord3i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord3iv)(const GLint *);
+#define CALL_TexCoord3iv(disp, parameters) \
+ (* GET_TexCoord3iv(disp)) parameters
+static INLINE _glptr_TexCoord3iv GET_TexCoord3iv(struct _glapi_table *disp) {
+ return (_glptr_TexCoord3iv) (GET_by_offset(disp, _gloffset_TexCoord3iv));
+}
+
+static INLINE void SET_TexCoord3iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *)) {
+ SET_by_offset(disp, _gloffset_TexCoord3iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord3s)(GLshort, GLshort, GLshort);
+#define CALL_TexCoord3s(disp, parameters) \
+ (* GET_TexCoord3s(disp)) parameters
+static INLINE _glptr_TexCoord3s GET_TexCoord3s(struct _glapi_table *disp) {
+ return (_glptr_TexCoord3s) (GET_by_offset(disp, _gloffset_TexCoord3s));
+}
+
+static INLINE void SET_TexCoord3s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_TexCoord3s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord3sv)(const GLshort *);
+#define CALL_TexCoord3sv(disp, parameters) \
+ (* GET_TexCoord3sv(disp)) parameters
+static INLINE _glptr_TexCoord3sv GET_TexCoord3sv(struct _glapi_table *disp) {
+ return (_glptr_TexCoord3sv) (GET_by_offset(disp, _gloffset_TexCoord3sv));
+}
+
+static INLINE void SET_TexCoord3sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *)) {
+ SET_by_offset(disp, _gloffset_TexCoord3sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord4d)(GLdouble, GLdouble, GLdouble, GLdouble);
+#define CALL_TexCoord4d(disp, parameters) \
+ (* GET_TexCoord4d(disp)) parameters
+static INLINE _glptr_TexCoord4d GET_TexCoord4d(struct _glapi_table *disp) {
+ return (_glptr_TexCoord4d) (GET_by_offset(disp, _gloffset_TexCoord4d));
+}
+
+static INLINE void SET_TexCoord4d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_TexCoord4d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord4dv)(const GLdouble *);
+#define CALL_TexCoord4dv(disp, parameters) \
+ (* GET_TexCoord4dv(disp)) parameters
+static INLINE _glptr_TexCoord4dv GET_TexCoord4dv(struct _glapi_table *disp) {
+ return (_glptr_TexCoord4dv) (GET_by_offset(disp, _gloffset_TexCoord4dv));
+}
+
+static INLINE void SET_TexCoord4dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_TexCoord4dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord4f)(GLfloat, GLfloat, GLfloat, GLfloat);
+#define CALL_TexCoord4f(disp, parameters) \
+ (* GET_TexCoord4f(disp)) parameters
+static INLINE _glptr_TexCoord4f GET_TexCoord4f(struct _glapi_table *disp) {
+ return (_glptr_TexCoord4f) (GET_by_offset(disp, _gloffset_TexCoord4f));
+}
+
+static INLINE void SET_TexCoord4f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_TexCoord4f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord4fv)(const GLfloat *);
+#define CALL_TexCoord4fv(disp, parameters) \
+ (* GET_TexCoord4fv(disp)) parameters
+static INLINE _glptr_TexCoord4fv GET_TexCoord4fv(struct _glapi_table *disp) {
+ return (_glptr_TexCoord4fv) (GET_by_offset(disp, _gloffset_TexCoord4fv));
+}
+
+static INLINE void SET_TexCoord4fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_TexCoord4fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord4i)(GLint, GLint, GLint, GLint);
+#define CALL_TexCoord4i(disp, parameters) \
+ (* GET_TexCoord4i(disp)) parameters
+static INLINE _glptr_TexCoord4i GET_TexCoord4i(struct _glapi_table *disp) {
+ return (_glptr_TexCoord4i) (GET_by_offset(disp, _gloffset_TexCoord4i));
+}
+
+static INLINE void SET_TexCoord4i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_TexCoord4i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord4iv)(const GLint *);
+#define CALL_TexCoord4iv(disp, parameters) \
+ (* GET_TexCoord4iv(disp)) parameters
+static INLINE _glptr_TexCoord4iv GET_TexCoord4iv(struct _glapi_table *disp) {
+ return (_glptr_TexCoord4iv) (GET_by_offset(disp, _gloffset_TexCoord4iv));
+}
+
+static INLINE void SET_TexCoord4iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *)) {
+ SET_by_offset(disp, _gloffset_TexCoord4iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord4s)(GLshort, GLshort, GLshort, GLshort);
+#define CALL_TexCoord4s(disp, parameters) \
+ (* GET_TexCoord4s(disp)) parameters
+static INLINE _glptr_TexCoord4s GET_TexCoord4s(struct _glapi_table *disp) {
+ return (_glptr_TexCoord4s) (GET_by_offset(disp, _gloffset_TexCoord4s));
+}
+
+static INLINE void SET_TexCoord4s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort, GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_TexCoord4s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoord4sv)(const GLshort *);
+#define CALL_TexCoord4sv(disp, parameters) \
+ (* GET_TexCoord4sv(disp)) parameters
+static INLINE _glptr_TexCoord4sv GET_TexCoord4sv(struct _glapi_table *disp) {
+ return (_glptr_TexCoord4sv) (GET_by_offset(disp, _gloffset_TexCoord4sv));
+}
+
+static INLINE void SET_TexCoord4sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *)) {
+ SET_by_offset(disp, _gloffset_TexCoord4sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex2d)(GLdouble, GLdouble);
+#define CALL_Vertex2d(disp, parameters) \
+ (* GET_Vertex2d(disp)) parameters
+static INLINE _glptr_Vertex2d GET_Vertex2d(struct _glapi_table *disp) {
+ return (_glptr_Vertex2d) (GET_by_offset(disp, _gloffset_Vertex2d));
+}
+
+static INLINE void SET_Vertex2d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_Vertex2d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex2dv)(const GLdouble *);
+#define CALL_Vertex2dv(disp, parameters) \
+ (* GET_Vertex2dv(disp)) parameters
+static INLINE _glptr_Vertex2dv GET_Vertex2dv(struct _glapi_table *disp) {
+ return (_glptr_Vertex2dv) (GET_by_offset(disp, _gloffset_Vertex2dv));
+}
+
+static INLINE void SET_Vertex2dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_Vertex2dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex2f)(GLfloat, GLfloat);
+#define CALL_Vertex2f(disp, parameters) \
+ (* GET_Vertex2f(disp)) parameters
+static INLINE _glptr_Vertex2f GET_Vertex2f(struct _glapi_table *disp) {
+ return (_glptr_Vertex2f) (GET_by_offset(disp, _gloffset_Vertex2f));
+}
+
+static INLINE void SET_Vertex2f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Vertex2f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex2fv)(const GLfloat *);
+#define CALL_Vertex2fv(disp, parameters) \
+ (* GET_Vertex2fv(disp)) parameters
+static INLINE _glptr_Vertex2fv GET_Vertex2fv(struct _glapi_table *disp) {
+ return (_glptr_Vertex2fv) (GET_by_offset(disp, _gloffset_Vertex2fv));
+}
+
+static INLINE void SET_Vertex2fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_Vertex2fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex2i)(GLint, GLint);
+#define CALL_Vertex2i(disp, parameters) \
+ (* GET_Vertex2i(disp)) parameters
+static INLINE _glptr_Vertex2i GET_Vertex2i(struct _glapi_table *disp) {
+ return (_glptr_Vertex2i) (GET_by_offset(disp, _gloffset_Vertex2i));
+}
+
+static INLINE void SET_Vertex2i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_Vertex2i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex2iv)(const GLint *);
+#define CALL_Vertex2iv(disp, parameters) \
+ (* GET_Vertex2iv(disp)) parameters
+static INLINE _glptr_Vertex2iv GET_Vertex2iv(struct _glapi_table *disp) {
+ return (_glptr_Vertex2iv) (GET_by_offset(disp, _gloffset_Vertex2iv));
+}
+
+static INLINE void SET_Vertex2iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *)) {
+ SET_by_offset(disp, _gloffset_Vertex2iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex2s)(GLshort, GLshort);
+#define CALL_Vertex2s(disp, parameters) \
+ (* GET_Vertex2s(disp)) parameters
+static INLINE _glptr_Vertex2s GET_Vertex2s(struct _glapi_table *disp) {
+ return (_glptr_Vertex2s) (GET_by_offset(disp, _gloffset_Vertex2s));
+}
+
+static INLINE void SET_Vertex2s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_Vertex2s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex2sv)(const GLshort *);
+#define CALL_Vertex2sv(disp, parameters) \
+ (* GET_Vertex2sv(disp)) parameters
+static INLINE _glptr_Vertex2sv GET_Vertex2sv(struct _glapi_table *disp) {
+ return (_glptr_Vertex2sv) (GET_by_offset(disp, _gloffset_Vertex2sv));
+}
+
+static INLINE void SET_Vertex2sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *)) {
+ SET_by_offset(disp, _gloffset_Vertex2sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex3d)(GLdouble, GLdouble, GLdouble);
+#define CALL_Vertex3d(disp, parameters) \
+ (* GET_Vertex3d(disp)) parameters
+static INLINE _glptr_Vertex3d GET_Vertex3d(struct _glapi_table *disp) {
+ return (_glptr_Vertex3d) (GET_by_offset(disp, _gloffset_Vertex3d));
+}
+
+static INLINE void SET_Vertex3d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_Vertex3d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex3dv)(const GLdouble *);
+#define CALL_Vertex3dv(disp, parameters) \
+ (* GET_Vertex3dv(disp)) parameters
+static INLINE _glptr_Vertex3dv GET_Vertex3dv(struct _glapi_table *disp) {
+ return (_glptr_Vertex3dv) (GET_by_offset(disp, _gloffset_Vertex3dv));
+}
+
+static INLINE void SET_Vertex3dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_Vertex3dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex3f)(GLfloat, GLfloat, GLfloat);
+#define CALL_Vertex3f(disp, parameters) \
+ (* GET_Vertex3f(disp)) parameters
+static INLINE _glptr_Vertex3f GET_Vertex3f(struct _glapi_table *disp) {
+ return (_glptr_Vertex3f) (GET_by_offset(disp, _gloffset_Vertex3f));
+}
+
+static INLINE void SET_Vertex3f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Vertex3f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex3fv)(const GLfloat *);
+#define CALL_Vertex3fv(disp, parameters) \
+ (* GET_Vertex3fv(disp)) parameters
+static INLINE _glptr_Vertex3fv GET_Vertex3fv(struct _glapi_table *disp) {
+ return (_glptr_Vertex3fv) (GET_by_offset(disp, _gloffset_Vertex3fv));
+}
+
+static INLINE void SET_Vertex3fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_Vertex3fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex3i)(GLint, GLint, GLint);
+#define CALL_Vertex3i(disp, parameters) \
+ (* GET_Vertex3i(disp)) parameters
+static INLINE _glptr_Vertex3i GET_Vertex3i(struct _glapi_table *disp) {
+ return (_glptr_Vertex3i) (GET_by_offset(disp, _gloffset_Vertex3i));
+}
+
+static INLINE void SET_Vertex3i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_Vertex3i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex3iv)(const GLint *);
+#define CALL_Vertex3iv(disp, parameters) \
+ (* GET_Vertex3iv(disp)) parameters
+static INLINE _glptr_Vertex3iv GET_Vertex3iv(struct _glapi_table *disp) {
+ return (_glptr_Vertex3iv) (GET_by_offset(disp, _gloffset_Vertex3iv));
+}
+
+static INLINE void SET_Vertex3iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *)) {
+ SET_by_offset(disp, _gloffset_Vertex3iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex3s)(GLshort, GLshort, GLshort);
+#define CALL_Vertex3s(disp, parameters) \
+ (* GET_Vertex3s(disp)) parameters
+static INLINE _glptr_Vertex3s GET_Vertex3s(struct _glapi_table *disp) {
+ return (_glptr_Vertex3s) (GET_by_offset(disp, _gloffset_Vertex3s));
+}
+
+static INLINE void SET_Vertex3s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_Vertex3s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex3sv)(const GLshort *);
+#define CALL_Vertex3sv(disp, parameters) \
+ (* GET_Vertex3sv(disp)) parameters
+static INLINE _glptr_Vertex3sv GET_Vertex3sv(struct _glapi_table *disp) {
+ return (_glptr_Vertex3sv) (GET_by_offset(disp, _gloffset_Vertex3sv));
+}
+
+static INLINE void SET_Vertex3sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *)) {
+ SET_by_offset(disp, _gloffset_Vertex3sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex4d)(GLdouble, GLdouble, GLdouble, GLdouble);
+#define CALL_Vertex4d(disp, parameters) \
+ (* GET_Vertex4d(disp)) parameters
+static INLINE _glptr_Vertex4d GET_Vertex4d(struct _glapi_table *disp) {
+ return (_glptr_Vertex4d) (GET_by_offset(disp, _gloffset_Vertex4d));
+}
+
+static INLINE void SET_Vertex4d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_Vertex4d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex4dv)(const GLdouble *);
+#define CALL_Vertex4dv(disp, parameters) \
+ (* GET_Vertex4dv(disp)) parameters
+static INLINE _glptr_Vertex4dv GET_Vertex4dv(struct _glapi_table *disp) {
+ return (_glptr_Vertex4dv) (GET_by_offset(disp, _gloffset_Vertex4dv));
+}
+
+static INLINE void SET_Vertex4dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_Vertex4dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex4f)(GLfloat, GLfloat, GLfloat, GLfloat);
+#define CALL_Vertex4f(disp, parameters) \
+ (* GET_Vertex4f(disp)) parameters
+static INLINE _glptr_Vertex4f GET_Vertex4f(struct _glapi_table *disp) {
+ return (_glptr_Vertex4f) (GET_by_offset(disp, _gloffset_Vertex4f));
+}
+
+static INLINE void SET_Vertex4f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Vertex4f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex4fv)(const GLfloat *);
+#define CALL_Vertex4fv(disp, parameters) \
+ (* GET_Vertex4fv(disp)) parameters
+static INLINE _glptr_Vertex4fv GET_Vertex4fv(struct _glapi_table *disp) {
+ return (_glptr_Vertex4fv) (GET_by_offset(disp, _gloffset_Vertex4fv));
+}
+
+static INLINE void SET_Vertex4fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_Vertex4fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex4i)(GLint, GLint, GLint, GLint);
+#define CALL_Vertex4i(disp, parameters) \
+ (* GET_Vertex4i(disp)) parameters
+static INLINE _glptr_Vertex4i GET_Vertex4i(struct _glapi_table *disp) {
+ return (_glptr_Vertex4i) (GET_by_offset(disp, _gloffset_Vertex4i));
+}
+
+static INLINE void SET_Vertex4i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_Vertex4i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex4iv)(const GLint *);
+#define CALL_Vertex4iv(disp, parameters) \
+ (* GET_Vertex4iv(disp)) parameters
+static INLINE _glptr_Vertex4iv GET_Vertex4iv(struct _glapi_table *disp) {
+ return (_glptr_Vertex4iv) (GET_by_offset(disp, _gloffset_Vertex4iv));
+}
+
+static INLINE void SET_Vertex4iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *)) {
+ SET_by_offset(disp, _gloffset_Vertex4iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex4s)(GLshort, GLshort, GLshort, GLshort);
+#define CALL_Vertex4s(disp, parameters) \
+ (* GET_Vertex4s(disp)) parameters
+static INLINE _glptr_Vertex4s GET_Vertex4s(struct _glapi_table *disp) {
+ return (_glptr_Vertex4s) (GET_by_offset(disp, _gloffset_Vertex4s));
+}
+
+static INLINE void SET_Vertex4s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort, GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_Vertex4s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Vertex4sv)(const GLshort *);
+#define CALL_Vertex4sv(disp, parameters) \
+ (* GET_Vertex4sv(disp)) parameters
+static INLINE _glptr_Vertex4sv GET_Vertex4sv(struct _glapi_table *disp) {
+ return (_glptr_Vertex4sv) (GET_by_offset(disp, _gloffset_Vertex4sv));
+}
+
+static INLINE void SET_Vertex4sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *)) {
+ SET_by_offset(disp, _gloffset_Vertex4sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ClipPlane)(GLenum, const GLdouble *);
+#define CALL_ClipPlane(disp, parameters) \
+ (* GET_ClipPlane(disp)) parameters
+static INLINE _glptr_ClipPlane GET_ClipPlane(struct _glapi_table *disp) {
+ return (_glptr_ClipPlane) (GET_by_offset(disp, _gloffset_ClipPlane));
+}
+
+static INLINE void SET_ClipPlane(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_ClipPlane, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ColorMaterial)(GLenum, GLenum);
+#define CALL_ColorMaterial(disp, parameters) \
+ (* GET_ColorMaterial(disp)) parameters
+static INLINE _glptr_ColorMaterial GET_ColorMaterial(struct _glapi_table *disp) {
+ return (_glptr_ColorMaterial) (GET_by_offset(disp, _gloffset_ColorMaterial));
+}
+
+static INLINE void SET_ColorMaterial(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum)) {
+ SET_by_offset(disp, _gloffset_ColorMaterial, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CullFace)(GLenum);
+#define CALL_CullFace(disp, parameters) \
+ (* GET_CullFace(disp)) parameters
+static INLINE _glptr_CullFace GET_CullFace(struct _glapi_table *disp) {
+ return (_glptr_CullFace) (GET_by_offset(disp, _gloffset_CullFace));
+}
+
+static INLINE void SET_CullFace(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_CullFace, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Fogf)(GLenum, GLfloat);
+#define CALL_Fogf(disp, parameters) \
+ (* GET_Fogf(disp)) parameters
+static INLINE _glptr_Fogf GET_Fogf(struct _glapi_table *disp) {
+ return (_glptr_Fogf) (GET_by_offset(disp, _gloffset_Fogf));
+}
+
+static INLINE void SET_Fogf(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Fogf, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Fogfv)(GLenum, const GLfloat *);
+#define CALL_Fogfv(disp, parameters) \
+ (* GET_Fogfv(disp)) parameters
+static INLINE _glptr_Fogfv GET_Fogfv(struct _glapi_table *disp) {
+ return (_glptr_Fogfv) (GET_by_offset(disp, _gloffset_Fogfv));
+}
+
+static INLINE void SET_Fogfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_Fogfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Fogi)(GLenum, GLint);
+#define CALL_Fogi(disp, parameters) \
+ (* GET_Fogi(disp)) parameters
+static INLINE _glptr_Fogi GET_Fogi(struct _glapi_table *disp) {
+ return (_glptr_Fogi) (GET_by_offset(disp, _gloffset_Fogi));
+}
+
+static INLINE void SET_Fogi(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint)) {
+ SET_by_offset(disp, _gloffset_Fogi, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Fogiv)(GLenum, const GLint *);
+#define CALL_Fogiv(disp, parameters) \
+ (* GET_Fogiv(disp)) parameters
+static INLINE _glptr_Fogiv GET_Fogiv(struct _glapi_table *disp) {
+ return (_glptr_Fogiv) (GET_by_offset(disp, _gloffset_Fogiv));
+}
+
+static INLINE void SET_Fogiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLint *)) {
+ SET_by_offset(disp, _gloffset_Fogiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_FrontFace)(GLenum);
+#define CALL_FrontFace(disp, parameters) \
+ (* GET_FrontFace(disp)) parameters
+static INLINE _glptr_FrontFace GET_FrontFace(struct _glapi_table *disp) {
+ return (_glptr_FrontFace) (GET_by_offset(disp, _gloffset_FrontFace));
+}
+
+static INLINE void SET_FrontFace(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_FrontFace, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Hint)(GLenum, GLenum);
+#define CALL_Hint(disp, parameters) \
+ (* GET_Hint(disp)) parameters
+static INLINE _glptr_Hint GET_Hint(struct _glapi_table *disp) {
+ return (_glptr_Hint) (GET_by_offset(disp, _gloffset_Hint));
+}
+
+static INLINE void SET_Hint(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum)) {
+ SET_by_offset(disp, _gloffset_Hint, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Lightf)(GLenum, GLenum, GLfloat);
+#define CALL_Lightf(disp, parameters) \
+ (* GET_Lightf(disp)) parameters
+static INLINE _glptr_Lightf GET_Lightf(struct _glapi_table *disp) {
+ return (_glptr_Lightf) (GET_by_offset(disp, _gloffset_Lightf));
+}
+
+static INLINE void SET_Lightf(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Lightf, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Lightfv)(GLenum, GLenum, const GLfloat *);
+#define CALL_Lightfv(disp, parameters) \
+ (* GET_Lightfv(disp)) parameters
+static INLINE _glptr_Lightfv GET_Lightfv(struct _glapi_table *disp) {
+ return (_glptr_Lightfv) (GET_by_offset(disp, _gloffset_Lightfv));
+}
+
+static INLINE void SET_Lightfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_Lightfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Lighti)(GLenum, GLenum, GLint);
+#define CALL_Lighti(disp, parameters) \
+ (* GET_Lighti(disp)) parameters
+static INLINE _glptr_Lighti GET_Lighti(struct _glapi_table *disp) {
+ return (_glptr_Lighti) (GET_by_offset(disp, _gloffset_Lighti));
+}
+
+static INLINE void SET_Lighti(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint)) {
+ SET_by_offset(disp, _gloffset_Lighti, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Lightiv)(GLenum, GLenum, const GLint *);
+#define CALL_Lightiv(disp, parameters) \
+ (* GET_Lightiv(disp)) parameters
+static INLINE _glptr_Lightiv GET_Lightiv(struct _glapi_table *disp) {
+ return (_glptr_Lightiv) (GET_by_offset(disp, _gloffset_Lightiv));
+}
+
+static INLINE void SET_Lightiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLint *)) {
+ SET_by_offset(disp, _gloffset_Lightiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LightModelf)(GLenum, GLfloat);
+#define CALL_LightModelf(disp, parameters) \
+ (* GET_LightModelf(disp)) parameters
+static INLINE _glptr_LightModelf GET_LightModelf(struct _glapi_table *disp) {
+ return (_glptr_LightModelf) (GET_by_offset(disp, _gloffset_LightModelf));
+}
+
+static INLINE void SET_LightModelf(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfloat)) {
+ SET_by_offset(disp, _gloffset_LightModelf, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LightModelfv)(GLenum, const GLfloat *);
+#define CALL_LightModelfv(disp, parameters) \
+ (* GET_LightModelfv(disp)) parameters
+static INLINE _glptr_LightModelfv GET_LightModelfv(struct _glapi_table *disp) {
+ return (_glptr_LightModelfv) (GET_by_offset(disp, _gloffset_LightModelfv));
+}
+
+static INLINE void SET_LightModelfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_LightModelfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LightModeli)(GLenum, GLint);
+#define CALL_LightModeli(disp, parameters) \
+ (* GET_LightModeli(disp)) parameters
+static INLINE _glptr_LightModeli GET_LightModeli(struct _glapi_table *disp) {
+ return (_glptr_LightModeli) (GET_by_offset(disp, _gloffset_LightModeli));
+}
+
+static INLINE void SET_LightModeli(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint)) {
+ SET_by_offset(disp, _gloffset_LightModeli, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LightModeliv)(GLenum, const GLint *);
+#define CALL_LightModeliv(disp, parameters) \
+ (* GET_LightModeliv(disp)) parameters
+static INLINE _glptr_LightModeliv GET_LightModeliv(struct _glapi_table *disp) {
+ return (_glptr_LightModeliv) (GET_by_offset(disp, _gloffset_LightModeliv));
+}
+
+static INLINE void SET_LightModeliv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLint *)) {
+ SET_by_offset(disp, _gloffset_LightModeliv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LineStipple)(GLint, GLushort);
+#define CALL_LineStipple(disp, parameters) \
+ (* GET_LineStipple(disp)) parameters
+static INLINE _glptr_LineStipple GET_LineStipple(struct _glapi_table *disp) {
+ return (_glptr_LineStipple) (GET_by_offset(disp, _gloffset_LineStipple));
+}
+
+static INLINE void SET_LineStipple(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLushort)) {
+ SET_by_offset(disp, _gloffset_LineStipple, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LineWidth)(GLfloat);
+#define CALL_LineWidth(disp, parameters) \
+ (* GET_LineWidth(disp)) parameters
+static INLINE _glptr_LineWidth GET_LineWidth(struct _glapi_table *disp) {
+ return (_glptr_LineWidth) (GET_by_offset(disp, _gloffset_LineWidth));
+}
+
+static INLINE void SET_LineWidth(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat)) {
+ SET_by_offset(disp, _gloffset_LineWidth, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Materialf)(GLenum, GLenum, GLfloat);
+#define CALL_Materialf(disp, parameters) \
+ (* GET_Materialf(disp)) parameters
+static INLINE _glptr_Materialf GET_Materialf(struct _glapi_table *disp) {
+ return (_glptr_Materialf) (GET_by_offset(disp, _gloffset_Materialf));
+}
+
+static INLINE void SET_Materialf(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Materialf, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Materialfv)(GLenum, GLenum, const GLfloat *);
+#define CALL_Materialfv(disp, parameters) \
+ (* GET_Materialfv(disp)) parameters
+static INLINE _glptr_Materialfv GET_Materialfv(struct _glapi_table *disp) {
+ return (_glptr_Materialfv) (GET_by_offset(disp, _gloffset_Materialfv));
+}
+
+static INLINE void SET_Materialfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_Materialfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Materiali)(GLenum, GLenum, GLint);
+#define CALL_Materiali(disp, parameters) \
+ (* GET_Materiali(disp)) parameters
+static INLINE _glptr_Materiali GET_Materiali(struct _glapi_table *disp) {
+ return (_glptr_Materiali) (GET_by_offset(disp, _gloffset_Materiali));
+}
+
+static INLINE void SET_Materiali(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint)) {
+ SET_by_offset(disp, _gloffset_Materiali, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Materialiv)(GLenum, GLenum, const GLint *);
+#define CALL_Materialiv(disp, parameters) \
+ (* GET_Materialiv(disp)) parameters
+static INLINE _glptr_Materialiv GET_Materialiv(struct _glapi_table *disp) {
+ return (_glptr_Materialiv) (GET_by_offset(disp, _gloffset_Materialiv));
+}
+
+static INLINE void SET_Materialiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLint *)) {
+ SET_by_offset(disp, _gloffset_Materialiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PointSize)(GLfloat);
+#define CALL_PointSize(disp, parameters) \
+ (* GET_PointSize(disp)) parameters
+static INLINE _glptr_PointSize GET_PointSize(struct _glapi_table *disp) {
+ return (_glptr_PointSize) (GET_by_offset(disp, _gloffset_PointSize));
+}
+
+static INLINE void SET_PointSize(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat)) {
+ SET_by_offset(disp, _gloffset_PointSize, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PolygonMode)(GLenum, GLenum);
+#define CALL_PolygonMode(disp, parameters) \
+ (* GET_PolygonMode(disp)) parameters
+static INLINE _glptr_PolygonMode GET_PolygonMode(struct _glapi_table *disp) {
+ return (_glptr_PolygonMode) (GET_by_offset(disp, _gloffset_PolygonMode));
+}
+
+static INLINE void SET_PolygonMode(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum)) {
+ SET_by_offset(disp, _gloffset_PolygonMode, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PolygonStipple)(const GLubyte *);
+#define CALL_PolygonStipple(disp, parameters) \
+ (* GET_PolygonStipple(disp)) parameters
+static INLINE _glptr_PolygonStipple GET_PolygonStipple(struct _glapi_table *disp) {
+ return (_glptr_PolygonStipple) (GET_by_offset(disp, _gloffset_PolygonStipple));
+}
+
+static INLINE void SET_PolygonStipple(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLubyte *)) {
+ SET_by_offset(disp, _gloffset_PolygonStipple, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Scissor)(GLint, GLint, GLsizei, GLsizei);
+#define CALL_Scissor(disp, parameters) \
+ (* GET_Scissor(disp)) parameters
+static INLINE _glptr_Scissor GET_Scissor(struct _glapi_table *disp) {
+ return (_glptr_Scissor) (GET_by_offset(disp, _gloffset_Scissor));
+}
+
+static INLINE void SET_Scissor(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLsizei, GLsizei)) {
+ SET_by_offset(disp, _gloffset_Scissor, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ShadeModel)(GLenum);
+#define CALL_ShadeModel(disp, parameters) \
+ (* GET_ShadeModel(disp)) parameters
+static INLINE _glptr_ShadeModel GET_ShadeModel(struct _glapi_table *disp) {
+ return (_glptr_ShadeModel) (GET_by_offset(disp, _gloffset_ShadeModel));
+}
+
+static INLINE void SET_ShadeModel(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_ShadeModel, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexParameterf)(GLenum, GLenum, GLfloat);
+#define CALL_TexParameterf(disp, parameters) \
+ (* GET_TexParameterf(disp)) parameters
+static INLINE _glptr_TexParameterf GET_TexParameterf(struct _glapi_table *disp) {
+ return (_glptr_TexParameterf) (GET_by_offset(disp, _gloffset_TexParameterf));
+}
+
+static INLINE void SET_TexParameterf(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfloat)) {
+ SET_by_offset(disp, _gloffset_TexParameterf, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexParameterfv)(GLenum, GLenum, const GLfloat *);
+#define CALL_TexParameterfv(disp, parameters) \
+ (* GET_TexParameterfv(disp)) parameters
+static INLINE _glptr_TexParameterfv GET_TexParameterfv(struct _glapi_table *disp) {
+ return (_glptr_TexParameterfv) (GET_by_offset(disp, _gloffset_TexParameterfv));
+}
+
+static INLINE void SET_TexParameterfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_TexParameterfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexParameteri)(GLenum, GLenum, GLint);
+#define CALL_TexParameteri(disp, parameters) \
+ (* GET_TexParameteri(disp)) parameters
+static INLINE _glptr_TexParameteri GET_TexParameteri(struct _glapi_table *disp) {
+ return (_glptr_TexParameteri) (GET_by_offset(disp, _gloffset_TexParameteri));
+}
+
+static INLINE void SET_TexParameteri(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint)) {
+ SET_by_offset(disp, _gloffset_TexParameteri, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexParameteriv)(GLenum, GLenum, const GLint *);
+#define CALL_TexParameteriv(disp, parameters) \
+ (* GET_TexParameteriv(disp)) parameters
+static INLINE _glptr_TexParameteriv GET_TexParameteriv(struct _glapi_table *disp) {
+ return (_glptr_TexParameteriv) (GET_by_offset(disp, _gloffset_TexParameteriv));
+}
+
+static INLINE void SET_TexParameteriv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLint *)) {
+ SET_by_offset(disp, _gloffset_TexParameteriv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+#define CALL_TexImage1D(disp, parameters) \
+ (* GET_TexImage1D(disp)) parameters
+static INLINE _glptr_TexImage1D GET_TexImage1D(struct _glapi_table *disp) {
+ return (_glptr_TexImage1D) (GET_by_offset(disp, _gloffset_TexImage1D));
+}
+
+static INLINE void SET_TexImage1D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_TexImage1D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+#define CALL_TexImage2D(disp, parameters) \
+ (* GET_TexImage2D(disp)) parameters
+static INLINE _glptr_TexImage2D GET_TexImage2D(struct _glapi_table *disp) {
+ return (_glptr_TexImage2D) (GET_by_offset(disp, _gloffset_TexImage2D));
+}
+
+static INLINE void SET_TexImage2D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_TexImage2D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexEnvf)(GLenum, GLenum, GLfloat);
+#define CALL_TexEnvf(disp, parameters) \
+ (* GET_TexEnvf(disp)) parameters
+static INLINE _glptr_TexEnvf GET_TexEnvf(struct _glapi_table *disp) {
+ return (_glptr_TexEnvf) (GET_by_offset(disp, _gloffset_TexEnvf));
+}
+
+static INLINE void SET_TexEnvf(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfloat)) {
+ SET_by_offset(disp, _gloffset_TexEnvf, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexEnvfv)(GLenum, GLenum, const GLfloat *);
+#define CALL_TexEnvfv(disp, parameters) \
+ (* GET_TexEnvfv(disp)) parameters
+static INLINE _glptr_TexEnvfv GET_TexEnvfv(struct _glapi_table *disp) {
+ return (_glptr_TexEnvfv) (GET_by_offset(disp, _gloffset_TexEnvfv));
+}
+
+static INLINE void SET_TexEnvfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_TexEnvfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexEnvi)(GLenum, GLenum, GLint);
+#define CALL_TexEnvi(disp, parameters) \
+ (* GET_TexEnvi(disp)) parameters
+static INLINE _glptr_TexEnvi GET_TexEnvi(struct _glapi_table *disp) {
+ return (_glptr_TexEnvi) (GET_by_offset(disp, _gloffset_TexEnvi));
+}
+
+static INLINE void SET_TexEnvi(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint)) {
+ SET_by_offset(disp, _gloffset_TexEnvi, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexEnviv)(GLenum, GLenum, const GLint *);
+#define CALL_TexEnviv(disp, parameters) \
+ (* GET_TexEnviv(disp)) parameters
+static INLINE _glptr_TexEnviv GET_TexEnviv(struct _glapi_table *disp) {
+ return (_glptr_TexEnviv) (GET_by_offset(disp, _gloffset_TexEnviv));
+}
+
+static INLINE void SET_TexEnviv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLint *)) {
+ SET_by_offset(disp, _gloffset_TexEnviv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexGend)(GLenum, GLenum, GLdouble);
+#define CALL_TexGend(disp, parameters) \
+ (* GET_TexGend(disp)) parameters
+static INLINE _glptr_TexGend GET_TexGend(struct _glapi_table *disp) {
+ return (_glptr_TexGend) (GET_by_offset(disp, _gloffset_TexGend));
+}
+
+static INLINE void SET_TexGend(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLdouble)) {
+ SET_by_offset(disp, _gloffset_TexGend, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexGendv)(GLenum, GLenum, const GLdouble *);
+#define CALL_TexGendv(disp, parameters) \
+ (* GET_TexGendv(disp)) parameters
+static INLINE _glptr_TexGendv GET_TexGendv(struct _glapi_table *disp) {
+ return (_glptr_TexGendv) (GET_by_offset(disp, _gloffset_TexGendv));
+}
+
+static INLINE void SET_TexGendv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_TexGendv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexGenf)(GLenum, GLenum, GLfloat);
+#define CALL_TexGenf(disp, parameters) \
+ (* GET_TexGenf(disp)) parameters
+static INLINE _glptr_TexGenf GET_TexGenf(struct _glapi_table *disp) {
+ return (_glptr_TexGenf) (GET_by_offset(disp, _gloffset_TexGenf));
+}
+
+static INLINE void SET_TexGenf(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfloat)) {
+ SET_by_offset(disp, _gloffset_TexGenf, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexGenfv)(GLenum, GLenum, const GLfloat *);
+#define CALL_TexGenfv(disp, parameters) \
+ (* GET_TexGenfv(disp)) parameters
+static INLINE _glptr_TexGenfv GET_TexGenfv(struct _glapi_table *disp) {
+ return (_glptr_TexGenfv) (GET_by_offset(disp, _gloffset_TexGenfv));
+}
+
+static INLINE void SET_TexGenfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_TexGenfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexGeni)(GLenum, GLenum, GLint);
+#define CALL_TexGeni(disp, parameters) \
+ (* GET_TexGeni(disp)) parameters
+static INLINE _glptr_TexGeni GET_TexGeni(struct _glapi_table *disp) {
+ return (_glptr_TexGeni) (GET_by_offset(disp, _gloffset_TexGeni));
+}
+
+static INLINE void SET_TexGeni(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint)) {
+ SET_by_offset(disp, _gloffset_TexGeni, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexGeniv)(GLenum, GLenum, const GLint *);
+#define CALL_TexGeniv(disp, parameters) \
+ (* GET_TexGeniv(disp)) parameters
+static INLINE _glptr_TexGeniv GET_TexGeniv(struct _glapi_table *disp) {
+ return (_glptr_TexGeniv) (GET_by_offset(disp, _gloffset_TexGeniv));
+}
+
+static INLINE void SET_TexGeniv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLint *)) {
+ SET_by_offset(disp, _gloffset_TexGeniv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_FeedbackBuffer)(GLsizei, GLenum, GLfloat *);
+#define CALL_FeedbackBuffer(disp, parameters) \
+ (* GET_FeedbackBuffer(disp)) parameters
+static INLINE _glptr_FeedbackBuffer GET_FeedbackBuffer(struct _glapi_table *disp) {
+ return (_glptr_FeedbackBuffer) (GET_by_offset(disp, _gloffset_FeedbackBuffer));
+}
+
+static INLINE void SET_FeedbackBuffer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_FeedbackBuffer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SelectBuffer)(GLsizei, GLuint *);
+#define CALL_SelectBuffer(disp, parameters) \
+ (* GET_SelectBuffer(disp)) parameters
+static INLINE _glptr_SelectBuffer GET_SelectBuffer(struct _glapi_table *disp) {
+ return (_glptr_SelectBuffer) (GET_by_offset(disp, _gloffset_SelectBuffer));
+}
+
+static INLINE void SET_SelectBuffer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, GLuint *)) {
+ SET_by_offset(disp, _gloffset_SelectBuffer, fn);
+}
+
+typedef GLint (GLAPIENTRYP _glptr_RenderMode)(GLenum);
+#define CALL_RenderMode(disp, parameters) \
+ (* GET_RenderMode(disp)) parameters
+static INLINE _glptr_RenderMode GET_RenderMode(struct _glapi_table *disp) {
+ return (_glptr_RenderMode) (GET_by_offset(disp, _gloffset_RenderMode));
+}
+
+static INLINE void SET_RenderMode(struct _glapi_table *disp, GLint (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_RenderMode, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_InitNames)(void);
+#define CALL_InitNames(disp, parameters) \
+ (* GET_InitNames(disp)) parameters
+static INLINE _glptr_InitNames GET_InitNames(struct _glapi_table *disp) {
+ return (_glptr_InitNames) (GET_by_offset(disp, _gloffset_InitNames));
+}
+
+static INLINE void SET_InitNames(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_InitNames, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LoadName)(GLuint);
+#define CALL_LoadName(disp, parameters) \
+ (* GET_LoadName(disp)) parameters
+static INLINE _glptr_LoadName GET_LoadName(struct _glapi_table *disp) {
+ return (_glptr_LoadName) (GET_by_offset(disp, _gloffset_LoadName));
+}
+
+static INLINE void SET_LoadName(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_LoadName, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PassThrough)(GLfloat);
+#define CALL_PassThrough(disp, parameters) \
+ (* GET_PassThrough(disp)) parameters
+static INLINE _glptr_PassThrough GET_PassThrough(struct _glapi_table *disp) {
+ return (_glptr_PassThrough) (GET_by_offset(disp, _gloffset_PassThrough));
+}
+
+static INLINE void SET_PassThrough(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat)) {
+ SET_by_offset(disp, _gloffset_PassThrough, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PopName)(void);
+#define CALL_PopName(disp, parameters) \
+ (* GET_PopName(disp)) parameters
+static INLINE _glptr_PopName GET_PopName(struct _glapi_table *disp) {
+ return (_glptr_PopName) (GET_by_offset(disp, _gloffset_PopName));
+}
+
+static INLINE void SET_PopName(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_PopName, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PushName)(GLuint);
+#define CALL_PushName(disp, parameters) \
+ (* GET_PushName(disp)) parameters
+static INLINE _glptr_PushName GET_PushName(struct _glapi_table *disp) {
+ return (_glptr_PushName) (GET_by_offset(disp, _gloffset_PushName));
+}
+
+static INLINE void SET_PushName(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_PushName, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawBuffer)(GLenum);
+#define CALL_DrawBuffer(disp, parameters) \
+ (* GET_DrawBuffer(disp)) parameters
+static INLINE _glptr_DrawBuffer GET_DrawBuffer(struct _glapi_table *disp) {
+ return (_glptr_DrawBuffer) (GET_by_offset(disp, _gloffset_DrawBuffer));
+}
+
+static INLINE void SET_DrawBuffer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_DrawBuffer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Clear)(GLbitfield);
+#define CALL_Clear(disp, parameters) \
+ (* GET_Clear(disp)) parameters
+static INLINE _glptr_Clear GET_Clear(struct _glapi_table *disp) {
+ return (_glptr_Clear) (GET_by_offset(disp, _gloffset_Clear));
+}
+
+static INLINE void SET_Clear(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLbitfield)) {
+ SET_by_offset(disp, _gloffset_Clear, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ClearAccum)(GLfloat, GLfloat, GLfloat, GLfloat);
+#define CALL_ClearAccum(disp, parameters) \
+ (* GET_ClearAccum(disp)) parameters
+static INLINE _glptr_ClearAccum GET_ClearAccum(struct _glapi_table *disp) {
+ return (_glptr_ClearAccum) (GET_by_offset(disp, _gloffset_ClearAccum));
+}
+
+static INLINE void SET_ClearAccum(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_ClearAccum, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ClearIndex)(GLfloat);
+#define CALL_ClearIndex(disp, parameters) \
+ (* GET_ClearIndex(disp)) parameters
+static INLINE _glptr_ClearIndex GET_ClearIndex(struct _glapi_table *disp) {
+ return (_glptr_ClearIndex) (GET_by_offset(disp, _gloffset_ClearIndex));
+}
+
+static INLINE void SET_ClearIndex(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat)) {
+ SET_by_offset(disp, _gloffset_ClearIndex, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ClearColor)(GLclampf, GLclampf, GLclampf, GLclampf);
+#define CALL_ClearColor(disp, parameters) \
+ (* GET_ClearColor(disp)) parameters
+static INLINE _glptr_ClearColor GET_ClearColor(struct _glapi_table *disp) {
+ return (_glptr_ClearColor) (GET_by_offset(disp, _gloffset_ClearColor));
+}
+
+static INLINE void SET_ClearColor(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLclampf, GLclampf, GLclampf, GLclampf)) {
+ SET_by_offset(disp, _gloffset_ClearColor, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ClearStencil)(GLint);
+#define CALL_ClearStencil(disp, parameters) \
+ (* GET_ClearStencil(disp)) parameters
+static INLINE _glptr_ClearStencil GET_ClearStencil(struct _glapi_table *disp) {
+ return (_glptr_ClearStencil) (GET_by_offset(disp, _gloffset_ClearStencil));
+}
+
+static INLINE void SET_ClearStencil(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint)) {
+ SET_by_offset(disp, _gloffset_ClearStencil, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ClearDepth)(GLclampd);
+#define CALL_ClearDepth(disp, parameters) \
+ (* GET_ClearDepth(disp)) parameters
+static INLINE _glptr_ClearDepth GET_ClearDepth(struct _glapi_table *disp) {
+ return (_glptr_ClearDepth) (GET_by_offset(disp, _gloffset_ClearDepth));
+}
+
+static INLINE void SET_ClearDepth(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLclampd)) {
+ SET_by_offset(disp, _gloffset_ClearDepth, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_StencilMask)(GLuint);
+#define CALL_StencilMask(disp, parameters) \
+ (* GET_StencilMask(disp)) parameters
+static INLINE _glptr_StencilMask GET_StencilMask(struct _glapi_table *disp) {
+ return (_glptr_StencilMask) (GET_by_offset(disp, _gloffset_StencilMask));
+}
+
+static INLINE void SET_StencilMask(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_StencilMask, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ColorMask)(GLboolean, GLboolean, GLboolean, GLboolean);
+#define CALL_ColorMask(disp, parameters) \
+ (* GET_ColorMask(disp)) parameters
+static INLINE _glptr_ColorMask GET_ColorMask(struct _glapi_table *disp) {
+ return (_glptr_ColorMask) (GET_by_offset(disp, _gloffset_ColorMask));
+}
+
+static INLINE void SET_ColorMask(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLboolean, GLboolean, GLboolean, GLboolean)) {
+ SET_by_offset(disp, _gloffset_ColorMask, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DepthMask)(GLboolean);
+#define CALL_DepthMask(disp, parameters) \
+ (* GET_DepthMask(disp)) parameters
+static INLINE _glptr_DepthMask GET_DepthMask(struct _glapi_table *disp) {
+ return (_glptr_DepthMask) (GET_by_offset(disp, _gloffset_DepthMask));
+}
+
+static INLINE void SET_DepthMask(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLboolean)) {
+ SET_by_offset(disp, _gloffset_DepthMask, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_IndexMask)(GLuint);
+#define CALL_IndexMask(disp, parameters) \
+ (* GET_IndexMask(disp)) parameters
+static INLINE _glptr_IndexMask GET_IndexMask(struct _glapi_table *disp) {
+ return (_glptr_IndexMask) (GET_by_offset(disp, _gloffset_IndexMask));
+}
+
+static INLINE void SET_IndexMask(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_IndexMask, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Accum)(GLenum, GLfloat);
+#define CALL_Accum(disp, parameters) \
+ (* GET_Accum(disp)) parameters
+static INLINE _glptr_Accum GET_Accum(struct _glapi_table *disp) {
+ return (_glptr_Accum) (GET_by_offset(disp, _gloffset_Accum));
+}
+
+static INLINE void SET_Accum(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Accum, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Disable)(GLenum);
+#define CALL_Disable(disp, parameters) \
+ (* GET_Disable(disp)) parameters
+static INLINE _glptr_Disable GET_Disable(struct _glapi_table *disp) {
+ return (_glptr_Disable) (GET_by_offset(disp, _gloffset_Disable));
+}
+
+static INLINE void SET_Disable(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_Disable, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Enable)(GLenum);
+#define CALL_Enable(disp, parameters) \
+ (* GET_Enable(disp)) parameters
+static INLINE _glptr_Enable GET_Enable(struct _glapi_table *disp) {
+ return (_glptr_Enable) (GET_by_offset(disp, _gloffset_Enable));
+}
+
+static INLINE void SET_Enable(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_Enable, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Finish)(void);
+#define CALL_Finish(disp, parameters) \
+ (* GET_Finish(disp)) parameters
+static INLINE _glptr_Finish GET_Finish(struct _glapi_table *disp) {
+ return (_glptr_Finish) (GET_by_offset(disp, _gloffset_Finish));
+}
+
+static INLINE void SET_Finish(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_Finish, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Flush)(void);
+#define CALL_Flush(disp, parameters) \
+ (* GET_Flush(disp)) parameters
+static INLINE _glptr_Flush GET_Flush(struct _glapi_table *disp) {
+ return (_glptr_Flush) (GET_by_offset(disp, _gloffset_Flush));
+}
+
+static INLINE void SET_Flush(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_Flush, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PopAttrib)(void);
+#define CALL_PopAttrib(disp, parameters) \
+ (* GET_PopAttrib(disp)) parameters
+static INLINE _glptr_PopAttrib GET_PopAttrib(struct _glapi_table *disp) {
+ return (_glptr_PopAttrib) (GET_by_offset(disp, _gloffset_PopAttrib));
+}
+
+static INLINE void SET_PopAttrib(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_PopAttrib, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PushAttrib)(GLbitfield);
+#define CALL_PushAttrib(disp, parameters) \
+ (* GET_PushAttrib(disp)) parameters
+static INLINE _glptr_PushAttrib GET_PushAttrib(struct _glapi_table *disp) {
+ return (_glptr_PushAttrib) (GET_by_offset(disp, _gloffset_PushAttrib));
+}
+
+static INLINE void SET_PushAttrib(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLbitfield)) {
+ SET_by_offset(disp, _gloffset_PushAttrib, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Map1d)(GLenum, GLdouble, GLdouble, GLint, GLint, const GLdouble *);
+#define CALL_Map1d(disp, parameters) \
+ (* GET_Map1d(disp)) parameters
+static INLINE _glptr_Map1d GET_Map1d(struct _glapi_table *disp) {
+ return (_glptr_Map1d) (GET_by_offset(disp, _gloffset_Map1d));
+}
+
+static INLINE void SET_Map1d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLdouble, GLdouble, GLint, GLint, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_Map1d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Map1f)(GLenum, GLfloat, GLfloat, GLint, GLint, const GLfloat *);
+#define CALL_Map1f(disp, parameters) \
+ (* GET_Map1f(disp)) parameters
+static INLINE _glptr_Map1f GET_Map1f(struct _glapi_table *disp) {
+ return (_glptr_Map1f) (GET_by_offset(disp, _gloffset_Map1f));
+}
+
+static INLINE void SET_Map1f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfloat, GLfloat, GLint, GLint, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_Map1f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Map2d)(GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *);
+#define CALL_Map2d(disp, parameters) \
+ (* GET_Map2d(disp)) parameters
+static INLINE _glptr_Map2d GET_Map2d(struct _glapi_table *disp) {
+ return (_glptr_Map2d) (GET_by_offset(disp, _gloffset_Map2d));
+}
+
+static INLINE void SET_Map2d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_Map2d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Map2f)(GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *);
+#define CALL_Map2f(disp, parameters) \
+ (* GET_Map2f(disp)) parameters
+static INLINE _glptr_Map2f GET_Map2f(struct _glapi_table *disp) {
+ return (_glptr_Map2f) (GET_by_offset(disp, _gloffset_Map2f));
+}
+
+static INLINE void SET_Map2f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_Map2f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MapGrid1d)(GLint, GLdouble, GLdouble);
+#define CALL_MapGrid1d(disp, parameters) \
+ (* GET_MapGrid1d(disp)) parameters
+static INLINE _glptr_MapGrid1d GET_MapGrid1d(struct _glapi_table *disp) {
+ return (_glptr_MapGrid1d) (GET_by_offset(disp, _gloffset_MapGrid1d));
+}
+
+static INLINE void SET_MapGrid1d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_MapGrid1d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MapGrid1f)(GLint, GLfloat, GLfloat);
+#define CALL_MapGrid1f(disp, parameters) \
+ (* GET_MapGrid1f(disp)) parameters
+static INLINE _glptr_MapGrid1f GET_MapGrid1f(struct _glapi_table *disp) {
+ return (_glptr_MapGrid1f) (GET_by_offset(disp, _gloffset_MapGrid1f));
+}
+
+static INLINE void SET_MapGrid1f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_MapGrid1f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MapGrid2d)(GLint, GLdouble, GLdouble, GLint, GLdouble, GLdouble);
+#define CALL_MapGrid2d(disp, parameters) \
+ (* GET_MapGrid2d(disp)) parameters
+static INLINE _glptr_MapGrid2d GET_MapGrid2d(struct _glapi_table *disp) {
+ return (_glptr_MapGrid2d) (GET_by_offset(disp, _gloffset_MapGrid2d));
+}
+
+static INLINE void SET_MapGrid2d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLdouble, GLdouble, GLint, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_MapGrid2d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MapGrid2f)(GLint, GLfloat, GLfloat, GLint, GLfloat, GLfloat);
+#define CALL_MapGrid2f(disp, parameters) \
+ (* GET_MapGrid2f(disp)) parameters
+static INLINE _glptr_MapGrid2f GET_MapGrid2f(struct _glapi_table *disp) {
+ return (_glptr_MapGrid2f) (GET_by_offset(disp, _gloffset_MapGrid2f));
+}
+
+static INLINE void SET_MapGrid2f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLfloat, GLfloat, GLint, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_MapGrid2f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EvalCoord1d)(GLdouble);
+#define CALL_EvalCoord1d(disp, parameters) \
+ (* GET_EvalCoord1d(disp)) parameters
+static INLINE _glptr_EvalCoord1d GET_EvalCoord1d(struct _glapi_table *disp) {
+ return (_glptr_EvalCoord1d) (GET_by_offset(disp, _gloffset_EvalCoord1d));
+}
+
+static INLINE void SET_EvalCoord1d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble)) {
+ SET_by_offset(disp, _gloffset_EvalCoord1d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EvalCoord1dv)(const GLdouble *);
+#define CALL_EvalCoord1dv(disp, parameters) \
+ (* GET_EvalCoord1dv(disp)) parameters
+static INLINE _glptr_EvalCoord1dv GET_EvalCoord1dv(struct _glapi_table *disp) {
+ return (_glptr_EvalCoord1dv) (GET_by_offset(disp, _gloffset_EvalCoord1dv));
+}
+
+static INLINE void SET_EvalCoord1dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_EvalCoord1dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EvalCoord1f)(GLfloat);
+#define CALL_EvalCoord1f(disp, parameters) \
+ (* GET_EvalCoord1f(disp)) parameters
+static INLINE _glptr_EvalCoord1f GET_EvalCoord1f(struct _glapi_table *disp) {
+ return (_glptr_EvalCoord1f) (GET_by_offset(disp, _gloffset_EvalCoord1f));
+}
+
+static INLINE void SET_EvalCoord1f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat)) {
+ SET_by_offset(disp, _gloffset_EvalCoord1f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EvalCoord1fv)(const GLfloat *);
+#define CALL_EvalCoord1fv(disp, parameters) \
+ (* GET_EvalCoord1fv(disp)) parameters
+static INLINE _glptr_EvalCoord1fv GET_EvalCoord1fv(struct _glapi_table *disp) {
+ return (_glptr_EvalCoord1fv) (GET_by_offset(disp, _gloffset_EvalCoord1fv));
+}
+
+static INLINE void SET_EvalCoord1fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_EvalCoord1fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EvalCoord2d)(GLdouble, GLdouble);
+#define CALL_EvalCoord2d(disp, parameters) \
+ (* GET_EvalCoord2d(disp)) parameters
+static INLINE _glptr_EvalCoord2d GET_EvalCoord2d(struct _glapi_table *disp) {
+ return (_glptr_EvalCoord2d) (GET_by_offset(disp, _gloffset_EvalCoord2d));
+}
+
+static INLINE void SET_EvalCoord2d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_EvalCoord2d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EvalCoord2dv)(const GLdouble *);
+#define CALL_EvalCoord2dv(disp, parameters) \
+ (* GET_EvalCoord2dv(disp)) parameters
+static INLINE _glptr_EvalCoord2dv GET_EvalCoord2dv(struct _glapi_table *disp) {
+ return (_glptr_EvalCoord2dv) (GET_by_offset(disp, _gloffset_EvalCoord2dv));
+}
+
+static INLINE void SET_EvalCoord2dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_EvalCoord2dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EvalCoord2f)(GLfloat, GLfloat);
+#define CALL_EvalCoord2f(disp, parameters) \
+ (* GET_EvalCoord2f(disp)) parameters
+static INLINE _glptr_EvalCoord2f GET_EvalCoord2f(struct _glapi_table *disp) {
+ return (_glptr_EvalCoord2f) (GET_by_offset(disp, _gloffset_EvalCoord2f));
+}
+
+static INLINE void SET_EvalCoord2f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_EvalCoord2f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EvalCoord2fv)(const GLfloat *);
+#define CALL_EvalCoord2fv(disp, parameters) \
+ (* GET_EvalCoord2fv(disp)) parameters
+static INLINE _glptr_EvalCoord2fv GET_EvalCoord2fv(struct _glapi_table *disp) {
+ return (_glptr_EvalCoord2fv) (GET_by_offset(disp, _gloffset_EvalCoord2fv));
+}
+
+static INLINE void SET_EvalCoord2fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_EvalCoord2fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EvalMesh1)(GLenum, GLint, GLint);
+#define CALL_EvalMesh1(disp, parameters) \
+ (* GET_EvalMesh1(disp)) parameters
+static INLINE _glptr_EvalMesh1 GET_EvalMesh1(struct _glapi_table *disp) {
+ return (_glptr_EvalMesh1) (GET_by_offset(disp, _gloffset_EvalMesh1));
+}
+
+static INLINE void SET_EvalMesh1(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_EvalMesh1, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EvalPoint1)(GLint);
+#define CALL_EvalPoint1(disp, parameters) \
+ (* GET_EvalPoint1(disp)) parameters
+static INLINE _glptr_EvalPoint1 GET_EvalPoint1(struct _glapi_table *disp) {
+ return (_glptr_EvalPoint1) (GET_by_offset(disp, _gloffset_EvalPoint1));
+}
+
+static INLINE void SET_EvalPoint1(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint)) {
+ SET_by_offset(disp, _gloffset_EvalPoint1, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EvalMesh2)(GLenum, GLint, GLint, GLint, GLint);
+#define CALL_EvalMesh2(disp, parameters) \
+ (* GET_EvalMesh2(disp)) parameters
+static INLINE _glptr_EvalMesh2 GET_EvalMesh2(struct _glapi_table *disp) {
+ return (_glptr_EvalMesh2) (GET_by_offset(disp, _gloffset_EvalMesh2));
+}
+
+static INLINE void SET_EvalMesh2(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_EvalMesh2, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EvalPoint2)(GLint, GLint);
+#define CALL_EvalPoint2(disp, parameters) \
+ (* GET_EvalPoint2(disp)) parameters
+static INLINE _glptr_EvalPoint2 GET_EvalPoint2(struct _glapi_table *disp) {
+ return (_glptr_EvalPoint2) (GET_by_offset(disp, _gloffset_EvalPoint2));
+}
+
+static INLINE void SET_EvalPoint2(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_EvalPoint2, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_AlphaFunc)(GLenum, GLclampf);
+#define CALL_AlphaFunc(disp, parameters) \
+ (* GET_AlphaFunc(disp)) parameters
+static INLINE _glptr_AlphaFunc GET_AlphaFunc(struct _glapi_table *disp) {
+ return (_glptr_AlphaFunc) (GET_by_offset(disp, _gloffset_AlphaFunc));
+}
+
+static INLINE void SET_AlphaFunc(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLclampf)) {
+ SET_by_offset(disp, _gloffset_AlphaFunc, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BlendFunc)(GLenum, GLenum);
+#define CALL_BlendFunc(disp, parameters) \
+ (* GET_BlendFunc(disp)) parameters
+static INLINE _glptr_BlendFunc GET_BlendFunc(struct _glapi_table *disp) {
+ return (_glptr_BlendFunc) (GET_by_offset(disp, _gloffset_BlendFunc));
+}
+
+static INLINE void SET_BlendFunc(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum)) {
+ SET_by_offset(disp, _gloffset_BlendFunc, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LogicOp)(GLenum);
+#define CALL_LogicOp(disp, parameters) \
+ (* GET_LogicOp(disp)) parameters
+static INLINE _glptr_LogicOp GET_LogicOp(struct _glapi_table *disp) {
+ return (_glptr_LogicOp) (GET_by_offset(disp, _gloffset_LogicOp));
+}
+
+static INLINE void SET_LogicOp(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_LogicOp, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_StencilFunc)(GLenum, GLint, GLuint);
+#define CALL_StencilFunc(disp, parameters) \
+ (* GET_StencilFunc(disp)) parameters
+static INLINE _glptr_StencilFunc GET_StencilFunc(struct _glapi_table *disp) {
+ return (_glptr_StencilFunc) (GET_by_offset(disp, _gloffset_StencilFunc));
+}
+
+static INLINE void SET_StencilFunc(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLuint)) {
+ SET_by_offset(disp, _gloffset_StencilFunc, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_StencilOp)(GLenum, GLenum, GLenum);
+#define CALL_StencilOp(disp, parameters) \
+ (* GET_StencilOp(disp)) parameters
+static INLINE _glptr_StencilOp GET_StencilOp(struct _glapi_table *disp) {
+ return (_glptr_StencilOp) (GET_by_offset(disp, _gloffset_StencilOp));
+}
+
+static INLINE void SET_StencilOp(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLenum)) {
+ SET_by_offset(disp, _gloffset_StencilOp, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DepthFunc)(GLenum);
+#define CALL_DepthFunc(disp, parameters) \
+ (* GET_DepthFunc(disp)) parameters
+static INLINE _glptr_DepthFunc GET_DepthFunc(struct _glapi_table *disp) {
+ return (_glptr_DepthFunc) (GET_by_offset(disp, _gloffset_DepthFunc));
+}
+
+static INLINE void SET_DepthFunc(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_DepthFunc, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PixelZoom)(GLfloat, GLfloat);
+#define CALL_PixelZoom(disp, parameters) \
+ (* GET_PixelZoom(disp)) parameters
+static INLINE _glptr_PixelZoom GET_PixelZoom(struct _glapi_table *disp) {
+ return (_glptr_PixelZoom) (GET_by_offset(disp, _gloffset_PixelZoom));
+}
+
+static INLINE void SET_PixelZoom(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_PixelZoom, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PixelTransferf)(GLenum, GLfloat);
+#define CALL_PixelTransferf(disp, parameters) \
+ (* GET_PixelTransferf(disp)) parameters
+static INLINE _glptr_PixelTransferf GET_PixelTransferf(struct _glapi_table *disp) {
+ return (_glptr_PixelTransferf) (GET_by_offset(disp, _gloffset_PixelTransferf));
+}
+
+static INLINE void SET_PixelTransferf(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfloat)) {
+ SET_by_offset(disp, _gloffset_PixelTransferf, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PixelTransferi)(GLenum, GLint);
+#define CALL_PixelTransferi(disp, parameters) \
+ (* GET_PixelTransferi(disp)) parameters
+static INLINE _glptr_PixelTransferi GET_PixelTransferi(struct _glapi_table *disp) {
+ return (_glptr_PixelTransferi) (GET_by_offset(disp, _gloffset_PixelTransferi));
+}
+
+static INLINE void SET_PixelTransferi(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint)) {
+ SET_by_offset(disp, _gloffset_PixelTransferi, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PixelStoref)(GLenum, GLfloat);
+#define CALL_PixelStoref(disp, parameters) \
+ (* GET_PixelStoref(disp)) parameters
+static INLINE _glptr_PixelStoref GET_PixelStoref(struct _glapi_table *disp) {
+ return (_glptr_PixelStoref) (GET_by_offset(disp, _gloffset_PixelStoref));
+}
+
+static INLINE void SET_PixelStoref(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfloat)) {
+ SET_by_offset(disp, _gloffset_PixelStoref, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PixelStorei)(GLenum, GLint);
+#define CALL_PixelStorei(disp, parameters) \
+ (* GET_PixelStorei(disp)) parameters
+static INLINE _glptr_PixelStorei GET_PixelStorei(struct _glapi_table *disp) {
+ return (_glptr_PixelStorei) (GET_by_offset(disp, _gloffset_PixelStorei));
+}
+
+static INLINE void SET_PixelStorei(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint)) {
+ SET_by_offset(disp, _gloffset_PixelStorei, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PixelMapfv)(GLenum, GLsizei, const GLfloat *);
+#define CALL_PixelMapfv(disp, parameters) \
+ (* GET_PixelMapfv(disp)) parameters
+static INLINE _glptr_PixelMapfv GET_PixelMapfv(struct _glapi_table *disp) {
+ return (_glptr_PixelMapfv) (GET_by_offset(disp, _gloffset_PixelMapfv));
+}
+
+static INLINE void SET_PixelMapfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_PixelMapfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PixelMapuiv)(GLenum, GLsizei, const GLuint *);
+#define CALL_PixelMapuiv(disp, parameters) \
+ (* GET_PixelMapuiv(disp)) parameters
+static INLINE _glptr_PixelMapuiv GET_PixelMapuiv(struct _glapi_table *disp) {
+ return (_glptr_PixelMapuiv) (GET_by_offset(disp, _gloffset_PixelMapuiv));
+}
+
+static INLINE void SET_PixelMapuiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_PixelMapuiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PixelMapusv)(GLenum, GLsizei, const GLushort *);
+#define CALL_PixelMapusv(disp, parameters) \
+ (* GET_PixelMapusv(disp)) parameters
+static INLINE _glptr_PixelMapusv GET_PixelMapusv(struct _glapi_table *disp) {
+ return (_glptr_PixelMapusv) (GET_by_offset(disp, _gloffset_PixelMapusv));
+}
+
+static INLINE void SET_PixelMapusv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, const GLushort *)) {
+ SET_by_offset(disp, _gloffset_PixelMapusv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ReadBuffer)(GLenum);
+#define CALL_ReadBuffer(disp, parameters) \
+ (* GET_ReadBuffer(disp)) parameters
+static INLINE _glptr_ReadBuffer GET_ReadBuffer(struct _glapi_table *disp) {
+ return (_glptr_ReadBuffer) (GET_by_offset(disp, _gloffset_ReadBuffer));
+}
+
+static INLINE void SET_ReadBuffer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_ReadBuffer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CopyPixels)(GLint, GLint, GLsizei, GLsizei, GLenum);
+#define CALL_CopyPixels(disp, parameters) \
+ (* GET_CopyPixels(disp)) parameters
+static INLINE _glptr_CopyPixels GET_CopyPixels(struct _glapi_table *disp) {
+ return (_glptr_CopyPixels) (GET_by_offset(disp, _gloffset_CopyPixels));
+}
+
+static INLINE void SET_CopyPixels(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLsizei, GLsizei, GLenum)) {
+ SET_by_offset(disp, _gloffset_CopyPixels, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ReadPixels)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid *);
+#define CALL_ReadPixels(disp, parameters) \
+ (* GET_ReadPixels(disp)) parameters
+static INLINE _glptr_ReadPixels GET_ReadPixels(struct _glapi_table *disp) {
+ return (_glptr_ReadPixels) (GET_by_offset(disp, _gloffset_ReadPixels));
+}
+
+static INLINE void SET_ReadPixels(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_ReadPixels, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawPixels)(GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+#define CALL_DrawPixels(disp, parameters) \
+ (* GET_DrawPixels(disp)) parameters
+static INLINE _glptr_DrawPixels GET_DrawPixels(struct _glapi_table *disp) {
+ return (_glptr_DrawPixels) (GET_by_offset(disp, _gloffset_DrawPixels));
+}
+
+static INLINE void SET_DrawPixels(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, GLsizei, GLenum, GLenum, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_DrawPixels, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetBooleanv)(GLenum, GLboolean *);
+#define CALL_GetBooleanv(disp, parameters) \
+ (* GET_GetBooleanv(disp)) parameters
+static INLINE _glptr_GetBooleanv GET_GetBooleanv(struct _glapi_table *disp) {
+ return (_glptr_GetBooleanv) (GET_by_offset(disp, _gloffset_GetBooleanv));
+}
+
+static INLINE void SET_GetBooleanv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLboolean *)) {
+ SET_by_offset(disp, _gloffset_GetBooleanv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetClipPlane)(GLenum, GLdouble *);
+#define CALL_GetClipPlane(disp, parameters) \
+ (* GET_GetClipPlane(disp)) parameters
+static INLINE _glptr_GetClipPlane GET_GetClipPlane(struct _glapi_table *disp) {
+ return (_glptr_GetClipPlane) (GET_by_offset(disp, _gloffset_GetClipPlane));
+}
+
+static INLINE void SET_GetClipPlane(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLdouble *)) {
+ SET_by_offset(disp, _gloffset_GetClipPlane, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetDoublev)(GLenum, GLdouble *);
+#define CALL_GetDoublev(disp, parameters) \
+ (* GET_GetDoublev(disp)) parameters
+static INLINE _glptr_GetDoublev GET_GetDoublev(struct _glapi_table *disp) {
+ return (_glptr_GetDoublev) (GET_by_offset(disp, _gloffset_GetDoublev));
+}
+
+static INLINE void SET_GetDoublev(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLdouble *)) {
+ SET_by_offset(disp, _gloffset_GetDoublev, fn);
+}
+
+typedef GLenum (GLAPIENTRYP _glptr_GetError)(void);
+#define CALL_GetError(disp, parameters) \
+ (* GET_GetError(disp)) parameters
+static INLINE _glptr_GetError GET_GetError(struct _glapi_table *disp) {
+ return (_glptr_GetError) (GET_by_offset(disp, _gloffset_GetError));
+}
+
+static INLINE void SET_GetError(struct _glapi_table *disp, GLenum (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_GetError, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetFloatv)(GLenum, GLfloat *);
+#define CALL_GetFloatv(disp, parameters) \
+ (* GET_GetFloatv(disp)) parameters
+static INLINE _glptr_GetFloatv GET_GetFloatv(struct _glapi_table *disp) {
+ return (_glptr_GetFloatv) (GET_by_offset(disp, _gloffset_GetFloatv));
+}
+
+static INLINE void SET_GetFloatv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetFloatv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetIntegerv)(GLenum, GLint *);
+#define CALL_GetIntegerv(disp, parameters) \
+ (* GET_GetIntegerv(disp)) parameters
+static INLINE _glptr_GetIntegerv GET_GetIntegerv(struct _glapi_table *disp) {
+ return (_glptr_GetIntegerv) (GET_by_offset(disp, _gloffset_GetIntegerv));
+}
+
+static INLINE void SET_GetIntegerv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetIntegerv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetLightfv)(GLenum, GLenum, GLfloat *);
+#define CALL_GetLightfv(disp, parameters) \
+ (* GET_GetLightfv(disp)) parameters
+static INLINE _glptr_GetLightfv GET_GetLightfv(struct _glapi_table *disp) {
+ return (_glptr_GetLightfv) (GET_by_offset(disp, _gloffset_GetLightfv));
+}
+
+static INLINE void SET_GetLightfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetLightfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetLightiv)(GLenum, GLenum, GLint *);
+#define CALL_GetLightiv(disp, parameters) \
+ (* GET_GetLightiv(disp)) parameters
+static INLINE _glptr_GetLightiv GET_GetLightiv(struct _glapi_table *disp) {
+ return (_glptr_GetLightiv) (GET_by_offset(disp, _gloffset_GetLightiv));
+}
+
+static INLINE void SET_GetLightiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetLightiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetMapdv)(GLenum, GLenum, GLdouble *);
+#define CALL_GetMapdv(disp, parameters) \
+ (* GET_GetMapdv(disp)) parameters
+static INLINE _glptr_GetMapdv GET_GetMapdv(struct _glapi_table *disp) {
+ return (_glptr_GetMapdv) (GET_by_offset(disp, _gloffset_GetMapdv));
+}
+
+static INLINE void SET_GetMapdv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLdouble *)) {
+ SET_by_offset(disp, _gloffset_GetMapdv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetMapfv)(GLenum, GLenum, GLfloat *);
+#define CALL_GetMapfv(disp, parameters) \
+ (* GET_GetMapfv(disp)) parameters
+static INLINE _glptr_GetMapfv GET_GetMapfv(struct _glapi_table *disp) {
+ return (_glptr_GetMapfv) (GET_by_offset(disp, _gloffset_GetMapfv));
+}
+
+static INLINE void SET_GetMapfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetMapfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetMapiv)(GLenum, GLenum, GLint *);
+#define CALL_GetMapiv(disp, parameters) \
+ (* GET_GetMapiv(disp)) parameters
+static INLINE _glptr_GetMapiv GET_GetMapiv(struct _glapi_table *disp) {
+ return (_glptr_GetMapiv) (GET_by_offset(disp, _gloffset_GetMapiv));
+}
+
+static INLINE void SET_GetMapiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetMapiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetMaterialfv)(GLenum, GLenum, GLfloat *);
+#define CALL_GetMaterialfv(disp, parameters) \
+ (* GET_GetMaterialfv(disp)) parameters
+static INLINE _glptr_GetMaterialfv GET_GetMaterialfv(struct _glapi_table *disp) {
+ return (_glptr_GetMaterialfv) (GET_by_offset(disp, _gloffset_GetMaterialfv));
+}
+
+static INLINE void SET_GetMaterialfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetMaterialfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetMaterialiv)(GLenum, GLenum, GLint *);
+#define CALL_GetMaterialiv(disp, parameters) \
+ (* GET_GetMaterialiv(disp)) parameters
+static INLINE _glptr_GetMaterialiv GET_GetMaterialiv(struct _glapi_table *disp) {
+ return (_glptr_GetMaterialiv) (GET_by_offset(disp, _gloffset_GetMaterialiv));
+}
+
+static INLINE void SET_GetMaterialiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetMaterialiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetPixelMapfv)(GLenum, GLfloat *);
+#define CALL_GetPixelMapfv(disp, parameters) \
+ (* GET_GetPixelMapfv(disp)) parameters
+static INLINE _glptr_GetPixelMapfv GET_GetPixelMapfv(struct _glapi_table *disp) {
+ return (_glptr_GetPixelMapfv) (GET_by_offset(disp, _gloffset_GetPixelMapfv));
+}
+
+static INLINE void SET_GetPixelMapfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetPixelMapfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetPixelMapuiv)(GLenum, GLuint *);
+#define CALL_GetPixelMapuiv(disp, parameters) \
+ (* GET_GetPixelMapuiv(disp)) parameters
+static INLINE _glptr_GetPixelMapuiv GET_GetPixelMapuiv(struct _glapi_table *disp) {
+ return (_glptr_GetPixelMapuiv) (GET_by_offset(disp, _gloffset_GetPixelMapuiv));
+}
+
+static INLINE void SET_GetPixelMapuiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GetPixelMapuiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetPixelMapusv)(GLenum, GLushort *);
+#define CALL_GetPixelMapusv(disp, parameters) \
+ (* GET_GetPixelMapusv(disp)) parameters
+static INLINE _glptr_GetPixelMapusv GET_GetPixelMapusv(struct _glapi_table *disp) {
+ return (_glptr_GetPixelMapusv) (GET_by_offset(disp, _gloffset_GetPixelMapusv));
+}
+
+static INLINE void SET_GetPixelMapusv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLushort *)) {
+ SET_by_offset(disp, _gloffset_GetPixelMapusv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetPolygonStipple)(GLubyte *);
+#define CALL_GetPolygonStipple(disp, parameters) \
+ (* GET_GetPolygonStipple(disp)) parameters
+static INLINE _glptr_GetPolygonStipple GET_GetPolygonStipple(struct _glapi_table *disp) {
+ return (_glptr_GetPolygonStipple) (GET_by_offset(disp, _gloffset_GetPolygonStipple));
+}
+
+static INLINE void SET_GetPolygonStipple(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLubyte *)) {
+ SET_by_offset(disp, _gloffset_GetPolygonStipple, fn);
+}
+
+typedef const GLubyte * (GLAPIENTRYP _glptr_GetString)(GLenum);
+#define CALL_GetString(disp, parameters) \
+ (* GET_GetString(disp)) parameters
+static INLINE _glptr_GetString GET_GetString(struct _glapi_table *disp) {
+ return (_glptr_GetString) (GET_by_offset(disp, _gloffset_GetString));
+}
+
+static INLINE void SET_GetString(struct _glapi_table *disp, const GLubyte * (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_GetString, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetTexEnvfv)(GLenum, GLenum, GLfloat *);
+#define CALL_GetTexEnvfv(disp, parameters) \
+ (* GET_GetTexEnvfv(disp)) parameters
+static INLINE _glptr_GetTexEnvfv GET_GetTexEnvfv(struct _glapi_table *disp) {
+ return (_glptr_GetTexEnvfv) (GET_by_offset(disp, _gloffset_GetTexEnvfv));
+}
+
+static INLINE void SET_GetTexEnvfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetTexEnvfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetTexEnviv)(GLenum, GLenum, GLint *);
+#define CALL_GetTexEnviv(disp, parameters) \
+ (* GET_GetTexEnviv(disp)) parameters
+static INLINE _glptr_GetTexEnviv GET_GetTexEnviv(struct _glapi_table *disp) {
+ return (_glptr_GetTexEnviv) (GET_by_offset(disp, _gloffset_GetTexEnviv));
+}
+
+static INLINE void SET_GetTexEnviv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetTexEnviv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetTexGendv)(GLenum, GLenum, GLdouble *);
+#define CALL_GetTexGendv(disp, parameters) \
+ (* GET_GetTexGendv(disp)) parameters
+static INLINE _glptr_GetTexGendv GET_GetTexGendv(struct _glapi_table *disp) {
+ return (_glptr_GetTexGendv) (GET_by_offset(disp, _gloffset_GetTexGendv));
+}
+
+static INLINE void SET_GetTexGendv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLdouble *)) {
+ SET_by_offset(disp, _gloffset_GetTexGendv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetTexGenfv)(GLenum, GLenum, GLfloat *);
+#define CALL_GetTexGenfv(disp, parameters) \
+ (* GET_GetTexGenfv(disp)) parameters
+static INLINE _glptr_GetTexGenfv GET_GetTexGenfv(struct _glapi_table *disp) {
+ return (_glptr_GetTexGenfv) (GET_by_offset(disp, _gloffset_GetTexGenfv));
+}
+
+static INLINE void SET_GetTexGenfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetTexGenfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetTexGeniv)(GLenum, GLenum, GLint *);
+#define CALL_GetTexGeniv(disp, parameters) \
+ (* GET_GetTexGeniv(disp)) parameters
+static INLINE _glptr_GetTexGeniv GET_GetTexGeniv(struct _glapi_table *disp) {
+ return (_glptr_GetTexGeniv) (GET_by_offset(disp, _gloffset_GetTexGeniv));
+}
+
+static INLINE void SET_GetTexGeniv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetTexGeniv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetTexImage)(GLenum, GLint, GLenum, GLenum, GLvoid *);
+#define CALL_GetTexImage(disp, parameters) \
+ (* GET_GetTexImage(disp)) parameters
+static INLINE _glptr_GetTexImage GET_GetTexImage(struct _glapi_table *disp) {
+ return (_glptr_GetTexImage) (GET_by_offset(disp, _gloffset_GetTexImage));
+}
+
+static INLINE void SET_GetTexImage(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLenum, GLenum, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_GetTexImage, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetTexParameterfv)(GLenum, GLenum, GLfloat *);
+#define CALL_GetTexParameterfv(disp, parameters) \
+ (* GET_GetTexParameterfv(disp)) parameters
+static INLINE _glptr_GetTexParameterfv GET_GetTexParameterfv(struct _glapi_table *disp) {
+ return (_glptr_GetTexParameterfv) (GET_by_offset(disp, _gloffset_GetTexParameterfv));
+}
+
+static INLINE void SET_GetTexParameterfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetTexParameterfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetTexParameteriv)(GLenum, GLenum, GLint *);
+#define CALL_GetTexParameteriv(disp, parameters) \
+ (* GET_GetTexParameteriv(disp)) parameters
+static INLINE _glptr_GetTexParameteriv GET_GetTexParameteriv(struct _glapi_table *disp) {
+ return (_glptr_GetTexParameteriv) (GET_by_offset(disp, _gloffset_GetTexParameteriv));
+}
+
+static INLINE void SET_GetTexParameteriv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetTexParameteriv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetTexLevelParameterfv)(GLenum, GLint, GLenum, GLfloat *);
+#define CALL_GetTexLevelParameterfv(disp, parameters) \
+ (* GET_GetTexLevelParameterfv(disp)) parameters
+static INLINE _glptr_GetTexLevelParameterfv GET_GetTexLevelParameterfv(struct _glapi_table *disp) {
+ return (_glptr_GetTexLevelParameterfv) (GET_by_offset(disp, _gloffset_GetTexLevelParameterfv));
+}
+
+static INLINE void SET_GetTexLevelParameterfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetTexLevelParameterfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetTexLevelParameteriv)(GLenum, GLint, GLenum, GLint *);
+#define CALL_GetTexLevelParameteriv(disp, parameters) \
+ (* GET_GetTexLevelParameteriv(disp)) parameters
+static INLINE _glptr_GetTexLevelParameteriv GET_GetTexLevelParameteriv(struct _glapi_table *disp) {
+ return (_glptr_GetTexLevelParameteriv) (GET_by_offset(disp, _gloffset_GetTexLevelParameteriv));
+}
+
+static INLINE void SET_GetTexLevelParameteriv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetTexLevelParameteriv, fn);
+}
+
+typedef GLboolean (GLAPIENTRYP _glptr_IsEnabled)(GLenum);
+#define CALL_IsEnabled(disp, parameters) \
+ (* GET_IsEnabled(disp)) parameters
+static INLINE _glptr_IsEnabled GET_IsEnabled(struct _glapi_table *disp) {
+ return (_glptr_IsEnabled) (GET_by_offset(disp, _gloffset_IsEnabled));
+}
+
+static INLINE void SET_IsEnabled(struct _glapi_table *disp, GLboolean (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_IsEnabled, fn);
+}
+
+typedef GLboolean (GLAPIENTRYP _glptr_IsList)(GLuint);
+#define CALL_IsList(disp, parameters) \
+ (* GET_IsList(disp)) parameters
+static INLINE _glptr_IsList GET_IsList(struct _glapi_table *disp) {
+ return (_glptr_IsList) (GET_by_offset(disp, _gloffset_IsList));
+}
+
+static INLINE void SET_IsList(struct _glapi_table *disp, GLboolean (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_IsList, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DepthRange)(GLclampd, GLclampd);
+#define CALL_DepthRange(disp, parameters) \
+ (* GET_DepthRange(disp)) parameters
+static INLINE _glptr_DepthRange GET_DepthRange(struct _glapi_table *disp) {
+ return (_glptr_DepthRange) (GET_by_offset(disp, _gloffset_DepthRange));
+}
+
+static INLINE void SET_DepthRange(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLclampd, GLclampd)) {
+ SET_by_offset(disp, _gloffset_DepthRange, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Frustum)(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble);
+#define CALL_Frustum(disp, parameters) \
+ (* GET_Frustum(disp)) parameters
+static INLINE _glptr_Frustum GET_Frustum(struct _glapi_table *disp) {
+ return (_glptr_Frustum) (GET_by_offset(disp, _gloffset_Frustum));
+}
+
+static INLINE void SET_Frustum(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_Frustum, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LoadIdentity)(void);
+#define CALL_LoadIdentity(disp, parameters) \
+ (* GET_LoadIdentity(disp)) parameters
+static INLINE _glptr_LoadIdentity GET_LoadIdentity(struct _glapi_table *disp) {
+ return (_glptr_LoadIdentity) (GET_by_offset(disp, _gloffset_LoadIdentity));
+}
+
+static INLINE void SET_LoadIdentity(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_LoadIdentity, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LoadMatrixf)(const GLfloat *);
+#define CALL_LoadMatrixf(disp, parameters) \
+ (* GET_LoadMatrixf(disp)) parameters
+static INLINE _glptr_LoadMatrixf GET_LoadMatrixf(struct _glapi_table *disp) {
+ return (_glptr_LoadMatrixf) (GET_by_offset(disp, _gloffset_LoadMatrixf));
+}
+
+static INLINE void SET_LoadMatrixf(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_LoadMatrixf, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LoadMatrixd)(const GLdouble *);
+#define CALL_LoadMatrixd(disp, parameters) \
+ (* GET_LoadMatrixd(disp)) parameters
+static INLINE _glptr_LoadMatrixd GET_LoadMatrixd(struct _glapi_table *disp) {
+ return (_glptr_LoadMatrixd) (GET_by_offset(disp, _gloffset_LoadMatrixd));
+}
+
+static INLINE void SET_LoadMatrixd(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_LoadMatrixd, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MatrixMode)(GLenum);
+#define CALL_MatrixMode(disp, parameters) \
+ (* GET_MatrixMode(disp)) parameters
+static INLINE _glptr_MatrixMode GET_MatrixMode(struct _glapi_table *disp) {
+ return (_glptr_MatrixMode) (GET_by_offset(disp, _gloffset_MatrixMode));
+}
+
+static INLINE void SET_MatrixMode(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_MatrixMode, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultMatrixf)(const GLfloat *);
+#define CALL_MultMatrixf(disp, parameters) \
+ (* GET_MultMatrixf(disp)) parameters
+static INLINE _glptr_MultMatrixf GET_MultMatrixf(struct _glapi_table *disp) {
+ return (_glptr_MultMatrixf) (GET_by_offset(disp, _gloffset_MultMatrixf));
+}
+
+static INLINE void SET_MultMatrixf(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_MultMatrixf, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultMatrixd)(const GLdouble *);
+#define CALL_MultMatrixd(disp, parameters) \
+ (* GET_MultMatrixd(disp)) parameters
+static INLINE _glptr_MultMatrixd GET_MultMatrixd(struct _glapi_table *disp) {
+ return (_glptr_MultMatrixd) (GET_by_offset(disp, _gloffset_MultMatrixd));
+}
+
+static INLINE void SET_MultMatrixd(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_MultMatrixd, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Ortho)(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble);
+#define CALL_Ortho(disp, parameters) \
+ (* GET_Ortho(disp)) parameters
+static INLINE _glptr_Ortho GET_Ortho(struct _glapi_table *disp) {
+ return (_glptr_Ortho) (GET_by_offset(disp, _gloffset_Ortho));
+}
+
+static INLINE void SET_Ortho(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_Ortho, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PopMatrix)(void);
+#define CALL_PopMatrix(disp, parameters) \
+ (* GET_PopMatrix(disp)) parameters
+static INLINE _glptr_PopMatrix GET_PopMatrix(struct _glapi_table *disp) {
+ return (_glptr_PopMatrix) (GET_by_offset(disp, _gloffset_PopMatrix));
+}
+
+static INLINE void SET_PopMatrix(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_PopMatrix, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PushMatrix)(void);
+#define CALL_PushMatrix(disp, parameters) \
+ (* GET_PushMatrix(disp)) parameters
+static INLINE _glptr_PushMatrix GET_PushMatrix(struct _glapi_table *disp) {
+ return (_glptr_PushMatrix) (GET_by_offset(disp, _gloffset_PushMatrix));
+}
+
+static INLINE void SET_PushMatrix(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_PushMatrix, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Rotated)(GLdouble, GLdouble, GLdouble, GLdouble);
+#define CALL_Rotated(disp, parameters) \
+ (* GET_Rotated(disp)) parameters
+static INLINE _glptr_Rotated GET_Rotated(struct _glapi_table *disp) {
+ return (_glptr_Rotated) (GET_by_offset(disp, _gloffset_Rotated));
+}
+
+static INLINE void SET_Rotated(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_Rotated, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Rotatef)(GLfloat, GLfloat, GLfloat, GLfloat);
+#define CALL_Rotatef(disp, parameters) \
+ (* GET_Rotatef(disp)) parameters
+static INLINE _glptr_Rotatef GET_Rotatef(struct _glapi_table *disp) {
+ return (_glptr_Rotatef) (GET_by_offset(disp, _gloffset_Rotatef));
+}
+
+static INLINE void SET_Rotatef(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Rotatef, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Scaled)(GLdouble, GLdouble, GLdouble);
+#define CALL_Scaled(disp, parameters) \
+ (* GET_Scaled(disp)) parameters
+static INLINE _glptr_Scaled GET_Scaled(struct _glapi_table *disp) {
+ return (_glptr_Scaled) (GET_by_offset(disp, _gloffset_Scaled));
+}
+
+static INLINE void SET_Scaled(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_Scaled, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Scalef)(GLfloat, GLfloat, GLfloat);
+#define CALL_Scalef(disp, parameters) \
+ (* GET_Scalef(disp)) parameters
+static INLINE _glptr_Scalef GET_Scalef(struct _glapi_table *disp) {
+ return (_glptr_Scalef) (GET_by_offset(disp, _gloffset_Scalef));
+}
+
+static INLINE void SET_Scalef(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Scalef, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Translated)(GLdouble, GLdouble, GLdouble);
+#define CALL_Translated(disp, parameters) \
+ (* GET_Translated(disp)) parameters
+static INLINE _glptr_Translated GET_Translated(struct _glapi_table *disp) {
+ return (_glptr_Translated) (GET_by_offset(disp, _gloffset_Translated));
+}
+
+static INLINE void SET_Translated(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_Translated, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Translatef)(GLfloat, GLfloat, GLfloat);
+#define CALL_Translatef(disp, parameters) \
+ (* GET_Translatef(disp)) parameters
+static INLINE _glptr_Translatef GET_Translatef(struct _glapi_table *disp) {
+ return (_glptr_Translatef) (GET_by_offset(disp, _gloffset_Translatef));
+}
+
+static INLINE void SET_Translatef(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Translatef, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Viewport)(GLint, GLint, GLsizei, GLsizei);
+#define CALL_Viewport(disp, parameters) \
+ (* GET_Viewport(disp)) parameters
+static INLINE _glptr_Viewport GET_Viewport(struct _glapi_table *disp) {
+ return (_glptr_Viewport) (GET_by_offset(disp, _gloffset_Viewport));
+}
+
+static INLINE void SET_Viewport(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLsizei, GLsizei)) {
+ SET_by_offset(disp, _gloffset_Viewport, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ArrayElement)(GLint);
+#define CALL_ArrayElement(disp, parameters) \
+ (* GET_ArrayElement(disp)) parameters
+static INLINE _glptr_ArrayElement GET_ArrayElement(struct _glapi_table *disp) {
+ return (_glptr_ArrayElement) (GET_by_offset(disp, _gloffset_ArrayElement));
+}
+
+static INLINE void SET_ArrayElement(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint)) {
+ SET_by_offset(disp, _gloffset_ArrayElement, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BindTexture)(GLenum, GLuint);
+#define CALL_BindTexture(disp, parameters) \
+ (* GET_BindTexture(disp)) parameters
+static INLINE _glptr_BindTexture GET_BindTexture(struct _glapi_table *disp) {
+ return (_glptr_BindTexture) (GET_by_offset(disp, _gloffset_BindTexture));
+}
+
+static INLINE void SET_BindTexture(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_BindTexture, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ColorPointer)(GLint, GLenum, GLsizei, const GLvoid *);
+#define CALL_ColorPointer(disp, parameters) \
+ (* GET_ColorPointer(disp)) parameters
+static INLINE _glptr_ColorPointer GET_ColorPointer(struct _glapi_table *disp) {
+ return (_glptr_ColorPointer) (GET_by_offset(disp, _gloffset_ColorPointer));
+}
+
+static INLINE void SET_ColorPointer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLenum, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_ColorPointer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DisableClientState)(GLenum);
+#define CALL_DisableClientState(disp, parameters) \
+ (* GET_DisableClientState(disp)) parameters
+static INLINE _glptr_DisableClientState GET_DisableClientState(struct _glapi_table *disp) {
+ return (_glptr_DisableClientState) (GET_by_offset(disp, _gloffset_DisableClientState));
+}
+
+static INLINE void SET_DisableClientState(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_DisableClientState, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawArrays)(GLenum, GLint, GLsizei);
+#define CALL_DrawArrays(disp, parameters) \
+ (* GET_DrawArrays(disp)) parameters
+static INLINE _glptr_DrawArrays GET_DrawArrays(struct _glapi_table *disp) {
+ return (_glptr_DrawArrays) (GET_by_offset(disp, _gloffset_DrawArrays));
+}
+
+static INLINE void SET_DrawArrays(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLsizei)) {
+ SET_by_offset(disp, _gloffset_DrawArrays, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawElements)(GLenum, GLsizei, GLenum, const GLvoid *);
+#define CALL_DrawElements(disp, parameters) \
+ (* GET_DrawElements(disp)) parameters
+static INLINE _glptr_DrawElements GET_DrawElements(struct _glapi_table *disp) {
+ return (_glptr_DrawElements) (GET_by_offset(disp, _gloffset_DrawElements));
+}
+
+static INLINE void SET_DrawElements(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLenum, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_DrawElements, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EdgeFlagPointer)(GLsizei, const GLvoid *);
+#define CALL_EdgeFlagPointer(disp, parameters) \
+ (* GET_EdgeFlagPointer(disp)) parameters
+static INLINE _glptr_EdgeFlagPointer GET_EdgeFlagPointer(struct _glapi_table *disp) {
+ return (_glptr_EdgeFlagPointer) (GET_by_offset(disp, _gloffset_EdgeFlagPointer));
+}
+
+static INLINE void SET_EdgeFlagPointer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_EdgeFlagPointer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EnableClientState)(GLenum);
+#define CALL_EnableClientState(disp, parameters) \
+ (* GET_EnableClientState(disp)) parameters
+static INLINE _glptr_EnableClientState GET_EnableClientState(struct _glapi_table *disp) {
+ return (_glptr_EnableClientState) (GET_by_offset(disp, _gloffset_EnableClientState));
+}
+
+static INLINE void SET_EnableClientState(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_EnableClientState, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_IndexPointer)(GLenum, GLsizei, const GLvoid *);
+#define CALL_IndexPointer(disp, parameters) \
+ (* GET_IndexPointer(disp)) parameters
+static INLINE _glptr_IndexPointer GET_IndexPointer(struct _glapi_table *disp) {
+ return (_glptr_IndexPointer) (GET_by_offset(disp, _gloffset_IndexPointer));
+}
+
+static INLINE void SET_IndexPointer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_IndexPointer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Indexub)(GLubyte);
+#define CALL_Indexub(disp, parameters) \
+ (* GET_Indexub(disp)) parameters
+static INLINE _glptr_Indexub GET_Indexub(struct _glapi_table *disp) {
+ return (_glptr_Indexub) (GET_by_offset(disp, _gloffset_Indexub));
+}
+
+static INLINE void SET_Indexub(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLubyte)) {
+ SET_by_offset(disp, _gloffset_Indexub, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Indexubv)(const GLubyte *);
+#define CALL_Indexubv(disp, parameters) \
+ (* GET_Indexubv(disp)) parameters
+static INLINE _glptr_Indexubv GET_Indexubv(struct _glapi_table *disp) {
+ return (_glptr_Indexubv) (GET_by_offset(disp, _gloffset_Indexubv));
+}
+
+static INLINE void SET_Indexubv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLubyte *)) {
+ SET_by_offset(disp, _gloffset_Indexubv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_InterleavedArrays)(GLenum, GLsizei, const GLvoid *);
+#define CALL_InterleavedArrays(disp, parameters) \
+ (* GET_InterleavedArrays(disp)) parameters
+static INLINE _glptr_InterleavedArrays GET_InterleavedArrays(struct _glapi_table *disp) {
+ return (_glptr_InterleavedArrays) (GET_by_offset(disp, _gloffset_InterleavedArrays));
+}
+
+static INLINE void SET_InterleavedArrays(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_InterleavedArrays, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_NormalPointer)(GLenum, GLsizei, const GLvoid *);
+#define CALL_NormalPointer(disp, parameters) \
+ (* GET_NormalPointer(disp)) parameters
+static INLINE _glptr_NormalPointer GET_NormalPointer(struct _glapi_table *disp) {
+ return (_glptr_NormalPointer) (GET_by_offset(disp, _gloffset_NormalPointer));
+}
+
+static INLINE void SET_NormalPointer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_NormalPointer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PolygonOffset)(GLfloat, GLfloat);
+#define CALL_PolygonOffset(disp, parameters) \
+ (* GET_PolygonOffset(disp)) parameters
+static INLINE _glptr_PolygonOffset GET_PolygonOffset(struct _glapi_table *disp) {
+ return (_glptr_PolygonOffset) (GET_by_offset(disp, _gloffset_PolygonOffset));
+}
+
+static INLINE void SET_PolygonOffset(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_PolygonOffset, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoordPointer)(GLint, GLenum, GLsizei, const GLvoid *);
+#define CALL_TexCoordPointer(disp, parameters) \
+ (* GET_TexCoordPointer(disp)) parameters
+static INLINE _glptr_TexCoordPointer GET_TexCoordPointer(struct _glapi_table *disp) {
+ return (_glptr_TexCoordPointer) (GET_by_offset(disp, _gloffset_TexCoordPointer));
+}
+
+static INLINE void SET_TexCoordPointer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLenum, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_TexCoordPointer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexPointer)(GLint, GLenum, GLsizei, const GLvoid *);
+#define CALL_VertexPointer(disp, parameters) \
+ (* GET_VertexPointer(disp)) parameters
+static INLINE _glptr_VertexPointer GET_VertexPointer(struct _glapi_table *disp) {
+ return (_glptr_VertexPointer) (GET_by_offset(disp, _gloffset_VertexPointer));
+}
+
+static INLINE void SET_VertexPointer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLenum, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_VertexPointer, fn);
+}
+
+typedef GLboolean (GLAPIENTRYP _glptr_AreTexturesResident)(GLsizei, const GLuint *, GLboolean *);
+#define CALL_AreTexturesResident(disp, parameters) \
+ (* GET_AreTexturesResident(disp)) parameters
+static INLINE _glptr_AreTexturesResident GET_AreTexturesResident(struct _glapi_table *disp) {
+ return (_glptr_AreTexturesResident) (GET_by_offset(disp, _gloffset_AreTexturesResident));
+}
+
+static INLINE void SET_AreTexturesResident(struct _glapi_table *disp, GLboolean (GLAPIENTRYP fn)(GLsizei, const GLuint *, GLboolean *)) {
+ SET_by_offset(disp, _gloffset_AreTexturesResident, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CopyTexImage1D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint);
+#define CALL_CopyTexImage1D(disp, parameters) \
+ (* GET_CopyTexImage1D(disp)) parameters
+static INLINE _glptr_CopyTexImage1D GET_CopyTexImage1D(struct _glapi_table *disp) {
+ return (_glptr_CopyTexImage1D) (GET_by_offset(disp, _gloffset_CopyTexImage1D));
+}
+
+static INLINE void SET_CopyTexImage1D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint)) {
+ SET_by_offset(disp, _gloffset_CopyTexImage1D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CopyTexImage2D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
+#define CALL_CopyTexImage2D(disp, parameters) \
+ (* GET_CopyTexImage2D(disp)) parameters
+static INLINE _glptr_CopyTexImage2D GET_CopyTexImage2D(struct _glapi_table *disp) {
+ return (_glptr_CopyTexImage2D) (GET_by_offset(disp, _gloffset_CopyTexImage2D));
+}
+
+static INLINE void SET_CopyTexImage2D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint)) {
+ SET_by_offset(disp, _gloffset_CopyTexImage2D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CopyTexSubImage1D)(GLenum, GLint, GLint, GLint, GLint, GLsizei);
+#define CALL_CopyTexSubImage1D(disp, parameters) \
+ (* GET_CopyTexSubImage1D(disp)) parameters
+static INLINE _glptr_CopyTexSubImage1D GET_CopyTexSubImage1D(struct _glapi_table *disp) {
+ return (_glptr_CopyTexSubImage1D) (GET_by_offset(disp, _gloffset_CopyTexSubImage1D));
+}
+
+static INLINE void SET_CopyTexSubImage1D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint, GLint, GLint, GLsizei)) {
+ SET_by_offset(disp, _gloffset_CopyTexSubImage1D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CopyTexSubImage2D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
+#define CALL_CopyTexSubImage2D(disp, parameters) \
+ (* GET_CopyTexSubImage2D(disp)) parameters
+static INLINE _glptr_CopyTexSubImage2D GET_CopyTexSubImage2D(struct _glapi_table *disp) {
+ return (_glptr_CopyTexSubImage2D) (GET_by_offset(disp, _gloffset_CopyTexSubImage2D));
+}
+
+static INLINE void SET_CopyTexSubImage2D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei)) {
+ SET_by_offset(disp, _gloffset_CopyTexSubImage2D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DeleteTextures)(GLsizei, const GLuint *);
+#define CALL_DeleteTextures(disp, parameters) \
+ (* GET_DeleteTextures(disp)) parameters
+static INLINE _glptr_DeleteTextures GET_DeleteTextures(struct _glapi_table *disp) {
+ return (_glptr_DeleteTextures) (GET_by_offset(disp, _gloffset_DeleteTextures));
+}
+
+static INLINE void SET_DeleteTextures(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_DeleteTextures, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GenTextures)(GLsizei, GLuint *);
+#define CALL_GenTextures(disp, parameters) \
+ (* GET_GenTextures(disp)) parameters
+static INLINE _glptr_GenTextures GET_GenTextures(struct _glapi_table *disp) {
+ return (_glptr_GenTextures) (GET_by_offset(disp, _gloffset_GenTextures));
+}
+
+static INLINE void SET_GenTextures(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GenTextures, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetPointerv)(GLenum, GLvoid **);
+#define CALL_GetPointerv(disp, parameters) \
+ (* GET_GetPointerv(disp)) parameters
+static INLINE _glptr_GetPointerv GET_GetPointerv(struct _glapi_table *disp) {
+ return (_glptr_GetPointerv) (GET_by_offset(disp, _gloffset_GetPointerv));
+}
+
+static INLINE void SET_GetPointerv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLvoid **)) {
+ SET_by_offset(disp, _gloffset_GetPointerv, fn);
+}
+
+typedef GLboolean (GLAPIENTRYP _glptr_IsTexture)(GLuint);
+#define CALL_IsTexture(disp, parameters) \
+ (* GET_IsTexture(disp)) parameters
+static INLINE _glptr_IsTexture GET_IsTexture(struct _glapi_table *disp) {
+ return (_glptr_IsTexture) (GET_by_offset(disp, _gloffset_IsTexture));
+}
+
+static INLINE void SET_IsTexture(struct _glapi_table *disp, GLboolean (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_IsTexture, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PrioritizeTextures)(GLsizei, const GLuint *, const GLclampf *);
+#define CALL_PrioritizeTextures(disp, parameters) \
+ (* GET_PrioritizeTextures(disp)) parameters
+static INLINE _glptr_PrioritizeTextures GET_PrioritizeTextures(struct _glapi_table *disp) {
+ return (_glptr_PrioritizeTextures) (GET_by_offset(disp, _gloffset_PrioritizeTextures));
+}
+
+static INLINE void SET_PrioritizeTextures(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, const GLuint *, const GLclampf *)) {
+ SET_by_offset(disp, _gloffset_PrioritizeTextures, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexSubImage1D)(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *);
+#define CALL_TexSubImage1D(disp, parameters) \
+ (* GET_TexSubImage1D(disp)) parameters
+static INLINE _glptr_TexSubImage1D GET_TexSubImage1D(struct _glapi_table *disp) {
+ return (_glptr_TexSubImage1D) (GET_by_offset(disp, _gloffset_TexSubImage1D));
+}
+
+static INLINE void SET_TexSubImage1D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_TexSubImage1D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+#define CALL_TexSubImage2D(disp, parameters) \
+ (* GET_TexSubImage2D(disp)) parameters
+static INLINE _glptr_TexSubImage2D GET_TexSubImage2D(struct _glapi_table *disp) {
+ return (_glptr_TexSubImage2D) (GET_by_offset(disp, _gloffset_TexSubImage2D));
+}
+
+static INLINE void SET_TexSubImage2D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_TexSubImage2D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PopClientAttrib)(void);
+#define CALL_PopClientAttrib(disp, parameters) \
+ (* GET_PopClientAttrib(disp)) parameters
+static INLINE _glptr_PopClientAttrib GET_PopClientAttrib(struct _glapi_table *disp) {
+ return (_glptr_PopClientAttrib) (GET_by_offset(disp, _gloffset_PopClientAttrib));
+}
+
+static INLINE void SET_PopClientAttrib(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_PopClientAttrib, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PushClientAttrib)(GLbitfield);
+#define CALL_PushClientAttrib(disp, parameters) \
+ (* GET_PushClientAttrib(disp)) parameters
+static INLINE _glptr_PushClientAttrib GET_PushClientAttrib(struct _glapi_table *disp) {
+ return (_glptr_PushClientAttrib) (GET_by_offset(disp, _gloffset_PushClientAttrib));
+}
+
+static INLINE void SET_PushClientAttrib(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLbitfield)) {
+ SET_by_offset(disp, _gloffset_PushClientAttrib, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BlendColor)(GLclampf, GLclampf, GLclampf, GLclampf);
+#define CALL_BlendColor(disp, parameters) \
+ (* GET_BlendColor(disp)) parameters
+static INLINE _glptr_BlendColor GET_BlendColor(struct _glapi_table *disp) {
+ return (_glptr_BlendColor) (GET_by_offset(disp, _gloffset_BlendColor));
+}
+
+static INLINE void SET_BlendColor(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLclampf, GLclampf, GLclampf, GLclampf)) {
+ SET_by_offset(disp, _gloffset_BlendColor, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BlendEquation)(GLenum);
+#define CALL_BlendEquation(disp, parameters) \
+ (* GET_BlendEquation(disp)) parameters
+static INLINE _glptr_BlendEquation GET_BlendEquation(struct _glapi_table *disp) {
+ return (_glptr_BlendEquation) (GET_by_offset(disp, _gloffset_BlendEquation));
+}
+
+static INLINE void SET_BlendEquation(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_BlendEquation, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawRangeElements)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *);
+#define CALL_DrawRangeElements(disp, parameters) \
+ (* GET_DrawRangeElements(disp)) parameters
+static INLINE _glptr_DrawRangeElements GET_DrawRangeElements(struct _glapi_table *disp) {
+ return (_glptr_DrawRangeElements) (GET_by_offset(disp, _gloffset_DrawRangeElements));
+}
+
+static INLINE void SET_DrawRangeElements(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_DrawRangeElements, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ColorTable)(GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
+#define CALL_ColorTable(disp, parameters) \
+ (* GET_ColorTable(disp)) parameters
+static INLINE _glptr_ColorTable GET_ColorTable(struct _glapi_table *disp) {
+ return (_glptr_ColorTable) (GET_by_offset(disp, _gloffset_ColorTable));
+}
+
+static INLINE void SET_ColorTable(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_ColorTable, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ColorTableParameterfv)(GLenum, GLenum, const GLfloat *);
+#define CALL_ColorTableParameterfv(disp, parameters) \
+ (* GET_ColorTableParameterfv(disp)) parameters
+static INLINE _glptr_ColorTableParameterfv GET_ColorTableParameterfv(struct _glapi_table *disp) {
+ return (_glptr_ColorTableParameterfv) (GET_by_offset(disp, _gloffset_ColorTableParameterfv));
+}
+
+static INLINE void SET_ColorTableParameterfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_ColorTableParameterfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ColorTableParameteriv)(GLenum, GLenum, const GLint *);
+#define CALL_ColorTableParameteriv(disp, parameters) \
+ (* GET_ColorTableParameteriv(disp)) parameters
+static INLINE _glptr_ColorTableParameteriv GET_ColorTableParameteriv(struct _glapi_table *disp) {
+ return (_glptr_ColorTableParameteriv) (GET_by_offset(disp, _gloffset_ColorTableParameteriv));
+}
+
+static INLINE void SET_ColorTableParameteriv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLint *)) {
+ SET_by_offset(disp, _gloffset_ColorTableParameteriv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CopyColorTable)(GLenum, GLenum, GLint, GLint, GLsizei);
+#define CALL_CopyColorTable(disp, parameters) \
+ (* GET_CopyColorTable(disp)) parameters
+static INLINE _glptr_CopyColorTable GET_CopyColorTable(struct _glapi_table *disp) {
+ return (_glptr_CopyColorTable) (GET_by_offset(disp, _gloffset_CopyColorTable));
+}
+
+static INLINE void SET_CopyColorTable(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint, GLint, GLsizei)) {
+ SET_by_offset(disp, _gloffset_CopyColorTable, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetColorTable)(GLenum, GLenum, GLenum, GLvoid *);
+#define CALL_GetColorTable(disp, parameters) \
+ (* GET_GetColorTable(disp)) parameters
+static INLINE _glptr_GetColorTable GET_GetColorTable(struct _glapi_table *disp) {
+ return (_glptr_GetColorTable) (GET_by_offset(disp, _gloffset_GetColorTable));
+}
+
+static INLINE void SET_GetColorTable(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLenum, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_GetColorTable, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetColorTableParameterfv)(GLenum, GLenum, GLfloat *);
+#define CALL_GetColorTableParameterfv(disp, parameters) \
+ (* GET_GetColorTableParameterfv(disp)) parameters
+static INLINE _glptr_GetColorTableParameterfv GET_GetColorTableParameterfv(struct _glapi_table *disp) {
+ return (_glptr_GetColorTableParameterfv) (GET_by_offset(disp, _gloffset_GetColorTableParameterfv));
+}
+
+static INLINE void SET_GetColorTableParameterfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetColorTableParameterfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetColorTableParameteriv)(GLenum, GLenum, GLint *);
+#define CALL_GetColorTableParameteriv(disp, parameters) \
+ (* GET_GetColorTableParameteriv(disp)) parameters
+static INLINE _glptr_GetColorTableParameteriv GET_GetColorTableParameteriv(struct _glapi_table *disp) {
+ return (_glptr_GetColorTableParameteriv) (GET_by_offset(disp, _gloffset_GetColorTableParameteriv));
+}
+
+static INLINE void SET_GetColorTableParameteriv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetColorTableParameteriv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ColorSubTable)(GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+#define CALL_ColorSubTable(disp, parameters) \
+ (* GET_ColorSubTable(disp)) parameters
+static INLINE _glptr_ColorSubTable GET_ColorSubTable(struct _glapi_table *disp) {
+ return (_glptr_ColorSubTable) (GET_by_offset(disp, _gloffset_ColorSubTable));
+}
+
+static INLINE void SET_ColorSubTable(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_ColorSubTable, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CopyColorSubTable)(GLenum, GLsizei, GLint, GLint, GLsizei);
+#define CALL_CopyColorSubTable(disp, parameters) \
+ (* GET_CopyColorSubTable(disp)) parameters
+static INLINE _glptr_CopyColorSubTable GET_CopyColorSubTable(struct _glapi_table *disp) {
+ return (_glptr_CopyColorSubTable) (GET_by_offset(disp, _gloffset_CopyColorSubTable));
+}
+
+static INLINE void SET_CopyColorSubTable(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLint, GLint, GLsizei)) {
+ SET_by_offset(disp, _gloffset_CopyColorSubTable, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ConvolutionFilter1D)(GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
+#define CALL_ConvolutionFilter1D(disp, parameters) \
+ (* GET_ConvolutionFilter1D(disp)) parameters
+static INLINE _glptr_ConvolutionFilter1D GET_ConvolutionFilter1D(struct _glapi_table *disp) {
+ return (_glptr_ConvolutionFilter1D) (GET_by_offset(disp, _gloffset_ConvolutionFilter1D));
+}
+
+static INLINE void SET_ConvolutionFilter1D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_ConvolutionFilter1D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ConvolutionFilter2D)(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+#define CALL_ConvolutionFilter2D(disp, parameters) \
+ (* GET_ConvolutionFilter2D(disp)) parameters
+static INLINE _glptr_ConvolutionFilter2D GET_ConvolutionFilter2D(struct _glapi_table *disp) {
+ return (_glptr_ConvolutionFilter2D) (GET_by_offset(disp, _gloffset_ConvolutionFilter2D));
+}
+
+static INLINE void SET_ConvolutionFilter2D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_ConvolutionFilter2D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ConvolutionParameterf)(GLenum, GLenum, GLfloat);
+#define CALL_ConvolutionParameterf(disp, parameters) \
+ (* GET_ConvolutionParameterf(disp)) parameters
+static INLINE _glptr_ConvolutionParameterf GET_ConvolutionParameterf(struct _glapi_table *disp) {
+ return (_glptr_ConvolutionParameterf) (GET_by_offset(disp, _gloffset_ConvolutionParameterf));
+}
+
+static INLINE void SET_ConvolutionParameterf(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfloat)) {
+ SET_by_offset(disp, _gloffset_ConvolutionParameterf, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ConvolutionParameterfv)(GLenum, GLenum, const GLfloat *);
+#define CALL_ConvolutionParameterfv(disp, parameters) \
+ (* GET_ConvolutionParameterfv(disp)) parameters
+static INLINE _glptr_ConvolutionParameterfv GET_ConvolutionParameterfv(struct _glapi_table *disp) {
+ return (_glptr_ConvolutionParameterfv) (GET_by_offset(disp, _gloffset_ConvolutionParameterfv));
+}
+
+static INLINE void SET_ConvolutionParameterfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_ConvolutionParameterfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ConvolutionParameteri)(GLenum, GLenum, GLint);
+#define CALL_ConvolutionParameteri(disp, parameters) \
+ (* GET_ConvolutionParameteri(disp)) parameters
+static INLINE _glptr_ConvolutionParameteri GET_ConvolutionParameteri(struct _glapi_table *disp) {
+ return (_glptr_ConvolutionParameteri) (GET_by_offset(disp, _gloffset_ConvolutionParameteri));
+}
+
+static INLINE void SET_ConvolutionParameteri(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint)) {
+ SET_by_offset(disp, _gloffset_ConvolutionParameteri, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ConvolutionParameteriv)(GLenum, GLenum, const GLint *);
+#define CALL_ConvolutionParameteriv(disp, parameters) \
+ (* GET_ConvolutionParameteriv(disp)) parameters
+static INLINE _glptr_ConvolutionParameteriv GET_ConvolutionParameteriv(struct _glapi_table *disp) {
+ return (_glptr_ConvolutionParameteriv) (GET_by_offset(disp, _gloffset_ConvolutionParameteriv));
+}
+
+static INLINE void SET_ConvolutionParameteriv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLint *)) {
+ SET_by_offset(disp, _gloffset_ConvolutionParameteriv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CopyConvolutionFilter1D)(GLenum, GLenum, GLint, GLint, GLsizei);
+#define CALL_CopyConvolutionFilter1D(disp, parameters) \
+ (* GET_CopyConvolutionFilter1D(disp)) parameters
+static INLINE _glptr_CopyConvolutionFilter1D GET_CopyConvolutionFilter1D(struct _glapi_table *disp) {
+ return (_glptr_CopyConvolutionFilter1D) (GET_by_offset(disp, _gloffset_CopyConvolutionFilter1D));
+}
+
+static INLINE void SET_CopyConvolutionFilter1D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint, GLint, GLsizei)) {
+ SET_by_offset(disp, _gloffset_CopyConvolutionFilter1D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CopyConvolutionFilter2D)(GLenum, GLenum, GLint, GLint, GLsizei, GLsizei);
+#define CALL_CopyConvolutionFilter2D(disp, parameters) \
+ (* GET_CopyConvolutionFilter2D(disp)) parameters
+static INLINE _glptr_CopyConvolutionFilter2D GET_CopyConvolutionFilter2D(struct _glapi_table *disp) {
+ return (_glptr_CopyConvolutionFilter2D) (GET_by_offset(disp, _gloffset_CopyConvolutionFilter2D));
+}
+
+static INLINE void SET_CopyConvolutionFilter2D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint, GLint, GLsizei, GLsizei)) {
+ SET_by_offset(disp, _gloffset_CopyConvolutionFilter2D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetConvolutionFilter)(GLenum, GLenum, GLenum, GLvoid *);
+#define CALL_GetConvolutionFilter(disp, parameters) \
+ (* GET_GetConvolutionFilter(disp)) parameters
+static INLINE _glptr_GetConvolutionFilter GET_GetConvolutionFilter(struct _glapi_table *disp) {
+ return (_glptr_GetConvolutionFilter) (GET_by_offset(disp, _gloffset_GetConvolutionFilter));
+}
+
+static INLINE void SET_GetConvolutionFilter(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLenum, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_GetConvolutionFilter, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetConvolutionParameterfv)(GLenum, GLenum, GLfloat *);
+#define CALL_GetConvolutionParameterfv(disp, parameters) \
+ (* GET_GetConvolutionParameterfv(disp)) parameters
+static INLINE _glptr_GetConvolutionParameterfv GET_GetConvolutionParameterfv(struct _glapi_table *disp) {
+ return (_glptr_GetConvolutionParameterfv) (GET_by_offset(disp, _gloffset_GetConvolutionParameterfv));
+}
+
+static INLINE void SET_GetConvolutionParameterfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetConvolutionParameterfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetConvolutionParameteriv)(GLenum, GLenum, GLint *);
+#define CALL_GetConvolutionParameteriv(disp, parameters) \
+ (* GET_GetConvolutionParameteriv(disp)) parameters
+static INLINE _glptr_GetConvolutionParameteriv GET_GetConvolutionParameteriv(struct _glapi_table *disp) {
+ return (_glptr_GetConvolutionParameteriv) (GET_by_offset(disp, _gloffset_GetConvolutionParameteriv));
+}
+
+static INLINE void SET_GetConvolutionParameteriv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetConvolutionParameteriv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetSeparableFilter)(GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *);
+#define CALL_GetSeparableFilter(disp, parameters) \
+ (* GET_GetSeparableFilter(disp)) parameters
+static INLINE _glptr_GetSeparableFilter GET_GetSeparableFilter(struct _glapi_table *disp) {
+ return (_glptr_GetSeparableFilter) (GET_by_offset(disp, _gloffset_GetSeparableFilter));
+}
+
+static INLINE void SET_GetSeparableFilter(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_GetSeparableFilter, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SeparableFilter2D)(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *);
+#define CALL_SeparableFilter2D(disp, parameters) \
+ (* GET_SeparableFilter2D(disp)) parameters
+static INLINE _glptr_SeparableFilter2D GET_SeparableFilter2D(struct _glapi_table *disp) {
+ return (_glptr_SeparableFilter2D) (GET_by_offset(disp, _gloffset_SeparableFilter2D));
+}
+
+static INLINE void SET_SeparableFilter2D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_SeparableFilter2D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetHistogram)(GLenum, GLboolean, GLenum, GLenum, GLvoid *);
+#define CALL_GetHistogram(disp, parameters) \
+ (* GET_GetHistogram(disp)) parameters
+static INLINE _glptr_GetHistogram GET_GetHistogram(struct _glapi_table *disp) {
+ return (_glptr_GetHistogram) (GET_by_offset(disp, _gloffset_GetHistogram));
+}
+
+static INLINE void SET_GetHistogram(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLboolean, GLenum, GLenum, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_GetHistogram, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetHistogramParameterfv)(GLenum, GLenum, GLfloat *);
+#define CALL_GetHistogramParameterfv(disp, parameters) \
+ (* GET_GetHistogramParameterfv(disp)) parameters
+static INLINE _glptr_GetHistogramParameterfv GET_GetHistogramParameterfv(struct _glapi_table *disp) {
+ return (_glptr_GetHistogramParameterfv) (GET_by_offset(disp, _gloffset_GetHistogramParameterfv));
+}
+
+static INLINE void SET_GetHistogramParameterfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetHistogramParameterfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetHistogramParameteriv)(GLenum, GLenum, GLint *);
+#define CALL_GetHistogramParameteriv(disp, parameters) \
+ (* GET_GetHistogramParameteriv(disp)) parameters
+static INLINE _glptr_GetHistogramParameteriv GET_GetHistogramParameteriv(struct _glapi_table *disp) {
+ return (_glptr_GetHistogramParameteriv) (GET_by_offset(disp, _gloffset_GetHistogramParameteriv));
+}
+
+static INLINE void SET_GetHistogramParameteriv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetHistogramParameteriv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetMinmax)(GLenum, GLboolean, GLenum, GLenum, GLvoid *);
+#define CALL_GetMinmax(disp, parameters) \
+ (* GET_GetMinmax(disp)) parameters
+static INLINE _glptr_GetMinmax GET_GetMinmax(struct _glapi_table *disp) {
+ return (_glptr_GetMinmax) (GET_by_offset(disp, _gloffset_GetMinmax));
+}
+
+static INLINE void SET_GetMinmax(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLboolean, GLenum, GLenum, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_GetMinmax, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetMinmaxParameterfv)(GLenum, GLenum, GLfloat *);
+#define CALL_GetMinmaxParameterfv(disp, parameters) \
+ (* GET_GetMinmaxParameterfv(disp)) parameters
+static INLINE _glptr_GetMinmaxParameterfv GET_GetMinmaxParameterfv(struct _glapi_table *disp) {
+ return (_glptr_GetMinmaxParameterfv) (GET_by_offset(disp, _gloffset_GetMinmaxParameterfv));
+}
+
+static INLINE void SET_GetMinmaxParameterfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetMinmaxParameterfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetMinmaxParameteriv)(GLenum, GLenum, GLint *);
+#define CALL_GetMinmaxParameteriv(disp, parameters) \
+ (* GET_GetMinmaxParameteriv(disp)) parameters
+static INLINE _glptr_GetMinmaxParameteriv GET_GetMinmaxParameteriv(struct _glapi_table *disp) {
+ return (_glptr_GetMinmaxParameteriv) (GET_by_offset(disp, _gloffset_GetMinmaxParameteriv));
+}
+
+static INLINE void SET_GetMinmaxParameteriv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetMinmaxParameteriv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Histogram)(GLenum, GLsizei, GLenum, GLboolean);
+#define CALL_Histogram(disp, parameters) \
+ (* GET_Histogram(disp)) parameters
+static INLINE _glptr_Histogram GET_Histogram(struct _glapi_table *disp) {
+ return (_glptr_Histogram) (GET_by_offset(disp, _gloffset_Histogram));
+}
+
+static INLINE void SET_Histogram(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLenum, GLboolean)) {
+ SET_by_offset(disp, _gloffset_Histogram, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Minmax)(GLenum, GLenum, GLboolean);
+#define CALL_Minmax(disp, parameters) \
+ (* GET_Minmax(disp)) parameters
+static INLINE _glptr_Minmax GET_Minmax(struct _glapi_table *disp) {
+ return (_glptr_Minmax) (GET_by_offset(disp, _gloffset_Minmax));
+}
+
+static INLINE void SET_Minmax(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLboolean)) {
+ SET_by_offset(disp, _gloffset_Minmax, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ResetHistogram)(GLenum);
+#define CALL_ResetHistogram(disp, parameters) \
+ (* GET_ResetHistogram(disp)) parameters
+static INLINE _glptr_ResetHistogram GET_ResetHistogram(struct _glapi_table *disp) {
+ return (_glptr_ResetHistogram) (GET_by_offset(disp, _gloffset_ResetHistogram));
+}
+
+static INLINE void SET_ResetHistogram(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_ResetHistogram, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ResetMinmax)(GLenum);
+#define CALL_ResetMinmax(disp, parameters) \
+ (* GET_ResetMinmax(disp)) parameters
+static INLINE _glptr_ResetMinmax GET_ResetMinmax(struct _glapi_table *disp) {
+ return (_glptr_ResetMinmax) (GET_by_offset(disp, _gloffset_ResetMinmax));
+}
+
+static INLINE void SET_ResetMinmax(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_ResetMinmax, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexImage3D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+#define CALL_TexImage3D(disp, parameters) \
+ (* GET_TexImage3D(disp)) parameters
+static INLINE _glptr_TexImage3D GET_TexImage3D(struct _glapi_table *disp) {
+ return (_glptr_TexImage3D) (GET_by_offset(disp, _gloffset_TexImage3D));
+}
+
+static INLINE void SET_TexImage3D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_TexImage3D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+#define CALL_TexSubImage3D(disp, parameters) \
+ (* GET_TexSubImage3D(disp)) parameters
+static INLINE _glptr_TexSubImage3D GET_TexSubImage3D(struct _glapi_table *disp) {
+ return (_glptr_TexSubImage3D) (GET_by_offset(disp, _gloffset_TexSubImage3D));
+}
+
+static INLINE void SET_TexSubImage3D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_TexSubImage3D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CopyTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
+#define CALL_CopyTexSubImage3D(disp, parameters) \
+ (* GET_CopyTexSubImage3D(disp)) parameters
+static INLINE _glptr_CopyTexSubImage3D GET_CopyTexSubImage3D(struct _glapi_table *disp) {
+ return (_glptr_CopyTexSubImage3D) (GET_by_offset(disp, _gloffset_CopyTexSubImage3D));
+}
+
+static INLINE void SET_CopyTexSubImage3D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei)) {
+ SET_by_offset(disp, _gloffset_CopyTexSubImage3D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ActiveTexture)(GLenum);
+#define CALL_ActiveTexture(disp, parameters) \
+ (* GET_ActiveTexture(disp)) parameters
+static INLINE _glptr_ActiveTexture GET_ActiveTexture(struct _glapi_table *disp) {
+ return (_glptr_ActiveTexture) (GET_by_offset(disp, _gloffset_ActiveTexture));
+}
+
+static INLINE void SET_ActiveTexture(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_ActiveTexture, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ClientActiveTexture)(GLenum);
+#define CALL_ClientActiveTexture(disp, parameters) \
+ (* GET_ClientActiveTexture(disp)) parameters
+static INLINE _glptr_ClientActiveTexture GET_ClientActiveTexture(struct _glapi_table *disp) {
+ return (_glptr_ClientActiveTexture) (GET_by_offset(disp, _gloffset_ClientActiveTexture));
+}
+
+static INLINE void SET_ClientActiveTexture(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_ClientActiveTexture, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord1d)(GLenum, GLdouble);
+#define CALL_MultiTexCoord1d(disp, parameters) \
+ (* GET_MultiTexCoord1d(disp)) parameters
+static INLINE _glptr_MultiTexCoord1d GET_MultiTexCoord1d(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord1d) (GET_by_offset(disp, _gloffset_MultiTexCoord1d));
+}
+
+static INLINE void SET_MultiTexCoord1d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLdouble)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord1d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord1dv)(GLenum, const GLdouble *);
+#define CALL_MultiTexCoord1dv(disp, parameters) \
+ (* GET_MultiTexCoord1dv(disp)) parameters
+static INLINE _glptr_MultiTexCoord1dv GET_MultiTexCoord1dv(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord1dv) (GET_by_offset(disp, _gloffset_MultiTexCoord1dv));
+}
+
+static INLINE void SET_MultiTexCoord1dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord1dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord1fARB)(GLenum, GLfloat);
+#define CALL_MultiTexCoord1fARB(disp, parameters) \
+ (* GET_MultiTexCoord1fARB(disp)) parameters
+static INLINE _glptr_MultiTexCoord1fARB GET_MultiTexCoord1fARB(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord1fARB) (GET_by_offset(disp, _gloffset_MultiTexCoord1fARB));
+}
+
+static INLINE void SET_MultiTexCoord1fARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfloat)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord1fARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord1fvARB)(GLenum, const GLfloat *);
+#define CALL_MultiTexCoord1fvARB(disp, parameters) \
+ (* GET_MultiTexCoord1fvARB(disp)) parameters
+static INLINE _glptr_MultiTexCoord1fvARB GET_MultiTexCoord1fvARB(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord1fvARB) (GET_by_offset(disp, _gloffset_MultiTexCoord1fvARB));
+}
+
+static INLINE void SET_MultiTexCoord1fvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord1fvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord1i)(GLenum, GLint);
+#define CALL_MultiTexCoord1i(disp, parameters) \
+ (* GET_MultiTexCoord1i(disp)) parameters
+static INLINE _glptr_MultiTexCoord1i GET_MultiTexCoord1i(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord1i) (GET_by_offset(disp, _gloffset_MultiTexCoord1i));
+}
+
+static INLINE void SET_MultiTexCoord1i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord1i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord1iv)(GLenum, const GLint *);
+#define CALL_MultiTexCoord1iv(disp, parameters) \
+ (* GET_MultiTexCoord1iv(disp)) parameters
+static INLINE _glptr_MultiTexCoord1iv GET_MultiTexCoord1iv(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord1iv) (GET_by_offset(disp, _gloffset_MultiTexCoord1iv));
+}
+
+static INLINE void SET_MultiTexCoord1iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLint *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord1iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord1s)(GLenum, GLshort);
+#define CALL_MultiTexCoord1s(disp, parameters) \
+ (* GET_MultiTexCoord1s(disp)) parameters
+static INLINE _glptr_MultiTexCoord1s GET_MultiTexCoord1s(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord1s) (GET_by_offset(disp, _gloffset_MultiTexCoord1s));
+}
+
+static INLINE void SET_MultiTexCoord1s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLshort)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord1s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord1sv)(GLenum, const GLshort *);
+#define CALL_MultiTexCoord1sv(disp, parameters) \
+ (* GET_MultiTexCoord1sv(disp)) parameters
+static INLINE _glptr_MultiTexCoord1sv GET_MultiTexCoord1sv(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord1sv) (GET_by_offset(disp, _gloffset_MultiTexCoord1sv));
+}
+
+static INLINE void SET_MultiTexCoord1sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLshort *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord1sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord2d)(GLenum, GLdouble, GLdouble);
+#define CALL_MultiTexCoord2d(disp, parameters) \
+ (* GET_MultiTexCoord2d(disp)) parameters
+static INLINE _glptr_MultiTexCoord2d GET_MultiTexCoord2d(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord2d) (GET_by_offset(disp, _gloffset_MultiTexCoord2d));
+}
+
+static INLINE void SET_MultiTexCoord2d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord2d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord2dv)(GLenum, const GLdouble *);
+#define CALL_MultiTexCoord2dv(disp, parameters) \
+ (* GET_MultiTexCoord2dv(disp)) parameters
+static INLINE _glptr_MultiTexCoord2dv GET_MultiTexCoord2dv(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord2dv) (GET_by_offset(disp, _gloffset_MultiTexCoord2dv));
+}
+
+static INLINE void SET_MultiTexCoord2dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord2dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord2fARB)(GLenum, GLfloat, GLfloat);
+#define CALL_MultiTexCoord2fARB(disp, parameters) \
+ (* GET_MultiTexCoord2fARB(disp)) parameters
+static INLINE _glptr_MultiTexCoord2fARB GET_MultiTexCoord2fARB(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord2fARB) (GET_by_offset(disp, _gloffset_MultiTexCoord2fARB));
+}
+
+static INLINE void SET_MultiTexCoord2fARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord2fARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord2fvARB)(GLenum, const GLfloat *);
+#define CALL_MultiTexCoord2fvARB(disp, parameters) \
+ (* GET_MultiTexCoord2fvARB(disp)) parameters
+static INLINE _glptr_MultiTexCoord2fvARB GET_MultiTexCoord2fvARB(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord2fvARB) (GET_by_offset(disp, _gloffset_MultiTexCoord2fvARB));
+}
+
+static INLINE void SET_MultiTexCoord2fvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord2fvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord2i)(GLenum, GLint, GLint);
+#define CALL_MultiTexCoord2i(disp, parameters) \
+ (* GET_MultiTexCoord2i(disp)) parameters
+static INLINE _glptr_MultiTexCoord2i GET_MultiTexCoord2i(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord2i) (GET_by_offset(disp, _gloffset_MultiTexCoord2i));
+}
+
+static INLINE void SET_MultiTexCoord2i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord2i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord2iv)(GLenum, const GLint *);
+#define CALL_MultiTexCoord2iv(disp, parameters) \
+ (* GET_MultiTexCoord2iv(disp)) parameters
+static INLINE _glptr_MultiTexCoord2iv GET_MultiTexCoord2iv(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord2iv) (GET_by_offset(disp, _gloffset_MultiTexCoord2iv));
+}
+
+static INLINE void SET_MultiTexCoord2iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLint *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord2iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord2s)(GLenum, GLshort, GLshort);
+#define CALL_MultiTexCoord2s(disp, parameters) \
+ (* GET_MultiTexCoord2s(disp)) parameters
+static INLINE _glptr_MultiTexCoord2s GET_MultiTexCoord2s(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord2s) (GET_by_offset(disp, _gloffset_MultiTexCoord2s));
+}
+
+static INLINE void SET_MultiTexCoord2s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord2s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord2sv)(GLenum, const GLshort *);
+#define CALL_MultiTexCoord2sv(disp, parameters) \
+ (* GET_MultiTexCoord2sv(disp)) parameters
+static INLINE _glptr_MultiTexCoord2sv GET_MultiTexCoord2sv(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord2sv) (GET_by_offset(disp, _gloffset_MultiTexCoord2sv));
+}
+
+static INLINE void SET_MultiTexCoord2sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLshort *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord2sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord3d)(GLenum, GLdouble, GLdouble, GLdouble);
+#define CALL_MultiTexCoord3d(disp, parameters) \
+ (* GET_MultiTexCoord3d(disp)) parameters
+static INLINE _glptr_MultiTexCoord3d GET_MultiTexCoord3d(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord3d) (GET_by_offset(disp, _gloffset_MultiTexCoord3d));
+}
+
+static INLINE void SET_MultiTexCoord3d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord3d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord3dv)(GLenum, const GLdouble *);
+#define CALL_MultiTexCoord3dv(disp, parameters) \
+ (* GET_MultiTexCoord3dv(disp)) parameters
+static INLINE _glptr_MultiTexCoord3dv GET_MultiTexCoord3dv(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord3dv) (GET_by_offset(disp, _gloffset_MultiTexCoord3dv));
+}
+
+static INLINE void SET_MultiTexCoord3dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord3dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord3fARB)(GLenum, GLfloat, GLfloat, GLfloat);
+#define CALL_MultiTexCoord3fARB(disp, parameters) \
+ (* GET_MultiTexCoord3fARB(disp)) parameters
+static INLINE _glptr_MultiTexCoord3fARB GET_MultiTexCoord3fARB(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord3fARB) (GET_by_offset(disp, _gloffset_MultiTexCoord3fARB));
+}
+
+static INLINE void SET_MultiTexCoord3fARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord3fARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord3fvARB)(GLenum, const GLfloat *);
+#define CALL_MultiTexCoord3fvARB(disp, parameters) \
+ (* GET_MultiTexCoord3fvARB(disp)) parameters
+static INLINE _glptr_MultiTexCoord3fvARB GET_MultiTexCoord3fvARB(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord3fvARB) (GET_by_offset(disp, _gloffset_MultiTexCoord3fvARB));
+}
+
+static INLINE void SET_MultiTexCoord3fvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord3fvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord3i)(GLenum, GLint, GLint, GLint);
+#define CALL_MultiTexCoord3i(disp, parameters) \
+ (* GET_MultiTexCoord3i(disp)) parameters
+static INLINE _glptr_MultiTexCoord3i GET_MultiTexCoord3i(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord3i) (GET_by_offset(disp, _gloffset_MultiTexCoord3i));
+}
+
+static INLINE void SET_MultiTexCoord3i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord3i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord3iv)(GLenum, const GLint *);
+#define CALL_MultiTexCoord3iv(disp, parameters) \
+ (* GET_MultiTexCoord3iv(disp)) parameters
+static INLINE _glptr_MultiTexCoord3iv GET_MultiTexCoord3iv(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord3iv) (GET_by_offset(disp, _gloffset_MultiTexCoord3iv));
+}
+
+static INLINE void SET_MultiTexCoord3iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLint *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord3iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord3s)(GLenum, GLshort, GLshort, GLshort);
+#define CALL_MultiTexCoord3s(disp, parameters) \
+ (* GET_MultiTexCoord3s(disp)) parameters
+static INLINE _glptr_MultiTexCoord3s GET_MultiTexCoord3s(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord3s) (GET_by_offset(disp, _gloffset_MultiTexCoord3s));
+}
+
+static INLINE void SET_MultiTexCoord3s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord3s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord3sv)(GLenum, const GLshort *);
+#define CALL_MultiTexCoord3sv(disp, parameters) \
+ (* GET_MultiTexCoord3sv(disp)) parameters
+static INLINE _glptr_MultiTexCoord3sv GET_MultiTexCoord3sv(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord3sv) (GET_by_offset(disp, _gloffset_MultiTexCoord3sv));
+}
+
+static INLINE void SET_MultiTexCoord3sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLshort *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord3sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord4d)(GLenum, GLdouble, GLdouble, GLdouble, GLdouble);
+#define CALL_MultiTexCoord4d(disp, parameters) \
+ (* GET_MultiTexCoord4d(disp)) parameters
+static INLINE _glptr_MultiTexCoord4d GET_MultiTexCoord4d(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord4d) (GET_by_offset(disp, _gloffset_MultiTexCoord4d));
+}
+
+static INLINE void SET_MultiTexCoord4d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLdouble, GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord4d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord4dv)(GLenum, const GLdouble *);
+#define CALL_MultiTexCoord4dv(disp, parameters) \
+ (* GET_MultiTexCoord4dv(disp)) parameters
+static INLINE _glptr_MultiTexCoord4dv GET_MultiTexCoord4dv(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord4dv) (GET_by_offset(disp, _gloffset_MultiTexCoord4dv));
+}
+
+static INLINE void SET_MultiTexCoord4dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord4dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord4fARB)(GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
+#define CALL_MultiTexCoord4fARB(disp, parameters) \
+ (* GET_MultiTexCoord4fARB(disp)) parameters
+static INLINE _glptr_MultiTexCoord4fARB GET_MultiTexCoord4fARB(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord4fARB) (GET_by_offset(disp, _gloffset_MultiTexCoord4fARB));
+}
+
+static INLINE void SET_MultiTexCoord4fARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfloat, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord4fARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord4fvARB)(GLenum, const GLfloat *);
+#define CALL_MultiTexCoord4fvARB(disp, parameters) \
+ (* GET_MultiTexCoord4fvARB(disp)) parameters
+static INLINE _glptr_MultiTexCoord4fvARB GET_MultiTexCoord4fvARB(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord4fvARB) (GET_by_offset(disp, _gloffset_MultiTexCoord4fvARB));
+}
+
+static INLINE void SET_MultiTexCoord4fvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord4fvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord4i)(GLenum, GLint, GLint, GLint, GLint);
+#define CALL_MultiTexCoord4i(disp, parameters) \
+ (* GET_MultiTexCoord4i(disp)) parameters
+static INLINE _glptr_MultiTexCoord4i GET_MultiTexCoord4i(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord4i) (GET_by_offset(disp, _gloffset_MultiTexCoord4i));
+}
+
+static INLINE void SET_MultiTexCoord4i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord4i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord4iv)(GLenum, const GLint *);
+#define CALL_MultiTexCoord4iv(disp, parameters) \
+ (* GET_MultiTexCoord4iv(disp)) parameters
+static INLINE _glptr_MultiTexCoord4iv GET_MultiTexCoord4iv(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord4iv) (GET_by_offset(disp, _gloffset_MultiTexCoord4iv));
+}
+
+static INLINE void SET_MultiTexCoord4iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLint *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord4iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord4s)(GLenum, GLshort, GLshort, GLshort, GLshort);
+#define CALL_MultiTexCoord4s(disp, parameters) \
+ (* GET_MultiTexCoord4s(disp)) parameters
+static INLINE _glptr_MultiTexCoord4s GET_MultiTexCoord4s(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord4s) (GET_by_offset(disp, _gloffset_MultiTexCoord4s));
+}
+
+static INLINE void SET_MultiTexCoord4s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLshort, GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord4s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord4sv)(GLenum, const GLshort *);
+#define CALL_MultiTexCoord4sv(disp, parameters) \
+ (* GET_MultiTexCoord4sv(disp)) parameters
+static INLINE _glptr_MultiTexCoord4sv GET_MultiTexCoord4sv(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord4sv) (GET_by_offset(disp, _gloffset_MultiTexCoord4sv));
+}
+
+static INLINE void SET_MultiTexCoord4sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLshort *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord4sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CompressedTexImage1D)(GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *);
+#define CALL_CompressedTexImage1D(disp, parameters) \
+ (* GET_CompressedTexImage1D(disp)) parameters
+static INLINE _glptr_CompressedTexImage1D GET_CompressedTexImage1D(struct _glapi_table *disp) {
+ return (_glptr_CompressedTexImage1D) (GET_by_offset(disp, _gloffset_CompressedTexImage1D));
+}
+
+static INLINE void SET_CompressedTexImage1D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_CompressedTexImage1D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CompressedTexImage2D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
+#define CALL_CompressedTexImage2D(disp, parameters) \
+ (* GET_CompressedTexImage2D(disp)) parameters
+static INLINE _glptr_CompressedTexImage2D GET_CompressedTexImage2D(struct _glapi_table *disp) {
+ return (_glptr_CompressedTexImage2D) (GET_by_offset(disp, _gloffset_CompressedTexImage2D));
+}
+
+static INLINE void SET_CompressedTexImage2D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_CompressedTexImage2D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CompressedTexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
+#define CALL_CompressedTexImage3D(disp, parameters) \
+ (* GET_CompressedTexImage3D(disp)) parameters
+static INLINE _glptr_CompressedTexImage3D GET_CompressedTexImage3D(struct _glapi_table *disp) {
+ return (_glptr_CompressedTexImage3D) (GET_by_offset(disp, _gloffset_CompressedTexImage3D));
+}
+
+static INLINE void SET_CompressedTexImage3D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_CompressedTexImage3D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CompressedTexSubImage1D)(GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *);
+#define CALL_CompressedTexSubImage1D(disp, parameters) \
+ (* GET_CompressedTexSubImage1D(disp)) parameters
+static INLINE _glptr_CompressedTexSubImage1D GET_CompressedTexSubImage1D(struct _glapi_table *disp) {
+ return (_glptr_CompressedTexSubImage1D) (GET_by_offset(disp, _gloffset_CompressedTexSubImage1D));
+}
+
+static INLINE void SET_CompressedTexSubImage1D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_CompressedTexSubImage1D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CompressedTexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
+#define CALL_CompressedTexSubImage2D(disp, parameters) \
+ (* GET_CompressedTexSubImage2D(disp)) parameters
+static INLINE _glptr_CompressedTexSubImage2D GET_CompressedTexSubImage2D(struct _glapi_table *disp) {
+ return (_glptr_CompressedTexSubImage2D) (GET_by_offset(disp, _gloffset_CompressedTexSubImage2D));
+}
+
+static INLINE void SET_CompressedTexSubImage2D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_CompressedTexSubImage2D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CompressedTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
+#define CALL_CompressedTexSubImage3D(disp, parameters) \
+ (* GET_CompressedTexSubImage3D(disp)) parameters
+static INLINE _glptr_CompressedTexSubImage3D GET_CompressedTexSubImage3D(struct _glapi_table *disp) {
+ return (_glptr_CompressedTexSubImage3D) (GET_by_offset(disp, _gloffset_CompressedTexSubImage3D));
+}
+
+static INLINE void SET_CompressedTexSubImage3D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_CompressedTexSubImage3D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetCompressedTexImage)(GLenum, GLint, GLvoid *);
+#define CALL_GetCompressedTexImage(disp, parameters) \
+ (* GET_GetCompressedTexImage(disp)) parameters
+static INLINE _glptr_GetCompressedTexImage GET_GetCompressedTexImage(struct _glapi_table *disp) {
+ return (_glptr_GetCompressedTexImage) (GET_by_offset(disp, _gloffset_GetCompressedTexImage));
+}
+
+static INLINE void SET_GetCompressedTexImage(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_GetCompressedTexImage, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LoadTransposeMatrixd)(const GLdouble *);
+#define CALL_LoadTransposeMatrixd(disp, parameters) \
+ (* GET_LoadTransposeMatrixd(disp)) parameters
+static INLINE _glptr_LoadTransposeMatrixd GET_LoadTransposeMatrixd(struct _glapi_table *disp) {
+ return (_glptr_LoadTransposeMatrixd) (GET_by_offset(disp, _gloffset_LoadTransposeMatrixd));
+}
+
+static INLINE void SET_LoadTransposeMatrixd(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_LoadTransposeMatrixd, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LoadTransposeMatrixf)(const GLfloat *);
+#define CALL_LoadTransposeMatrixf(disp, parameters) \
+ (* GET_LoadTransposeMatrixf(disp)) parameters
+static INLINE _glptr_LoadTransposeMatrixf GET_LoadTransposeMatrixf(struct _glapi_table *disp) {
+ return (_glptr_LoadTransposeMatrixf) (GET_by_offset(disp, _gloffset_LoadTransposeMatrixf));
+}
+
+static INLINE void SET_LoadTransposeMatrixf(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_LoadTransposeMatrixf, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultTransposeMatrixd)(const GLdouble *);
+#define CALL_MultTransposeMatrixd(disp, parameters) \
+ (* GET_MultTransposeMatrixd(disp)) parameters
+static INLINE _glptr_MultTransposeMatrixd GET_MultTransposeMatrixd(struct _glapi_table *disp) {
+ return (_glptr_MultTransposeMatrixd) (GET_by_offset(disp, _gloffset_MultTransposeMatrixd));
+}
+
+static INLINE void SET_MultTransposeMatrixd(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_MultTransposeMatrixd, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultTransposeMatrixf)(const GLfloat *);
+#define CALL_MultTransposeMatrixf(disp, parameters) \
+ (* GET_MultTransposeMatrixf(disp)) parameters
+static INLINE _glptr_MultTransposeMatrixf GET_MultTransposeMatrixf(struct _glapi_table *disp) {
+ return (_glptr_MultTransposeMatrixf) (GET_by_offset(disp, _gloffset_MultTransposeMatrixf));
+}
+
+static INLINE void SET_MultTransposeMatrixf(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_MultTransposeMatrixf, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SampleCoverage)(GLclampf, GLboolean);
+#define CALL_SampleCoverage(disp, parameters) \
+ (* GET_SampleCoverage(disp)) parameters
+static INLINE _glptr_SampleCoverage GET_SampleCoverage(struct _glapi_table *disp) {
+ return (_glptr_SampleCoverage) (GET_by_offset(disp, _gloffset_SampleCoverage));
+}
+
+static INLINE void SET_SampleCoverage(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLclampf, GLboolean)) {
+ SET_by_offset(disp, _gloffset_SampleCoverage, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BlendFuncSeparate)(GLenum, GLenum, GLenum, GLenum);
+#define CALL_BlendFuncSeparate(disp, parameters) \
+ (* GET_BlendFuncSeparate(disp)) parameters
+static INLINE _glptr_BlendFuncSeparate GET_BlendFuncSeparate(struct _glapi_table *disp) {
+ return (_glptr_BlendFuncSeparate) (GET_by_offset(disp, _gloffset_BlendFuncSeparate));
+}
+
+static INLINE void SET_BlendFuncSeparate(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLenum, GLenum)) {
+ SET_by_offset(disp, _gloffset_BlendFuncSeparate, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_FogCoordPointer)(GLenum, GLsizei, const GLvoid *);
+#define CALL_FogCoordPointer(disp, parameters) \
+ (* GET_FogCoordPointer(disp)) parameters
+static INLINE _glptr_FogCoordPointer GET_FogCoordPointer(struct _glapi_table *disp) {
+ return (_glptr_FogCoordPointer) (GET_by_offset(disp, _gloffset_FogCoordPointer));
+}
+
+static INLINE void SET_FogCoordPointer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_FogCoordPointer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_FogCoordd)(GLdouble);
+#define CALL_FogCoordd(disp, parameters) \
+ (* GET_FogCoordd(disp)) parameters
+static INLINE _glptr_FogCoordd GET_FogCoordd(struct _glapi_table *disp) {
+ return (_glptr_FogCoordd) (GET_by_offset(disp, _gloffset_FogCoordd));
+}
+
+static INLINE void SET_FogCoordd(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble)) {
+ SET_by_offset(disp, _gloffset_FogCoordd, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_FogCoorddv)(const GLdouble *);
+#define CALL_FogCoorddv(disp, parameters) \
+ (* GET_FogCoorddv(disp)) parameters
+static INLINE _glptr_FogCoorddv GET_FogCoorddv(struct _glapi_table *disp) {
+ return (_glptr_FogCoorddv) (GET_by_offset(disp, _gloffset_FogCoorddv));
+}
+
+static INLINE void SET_FogCoorddv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_FogCoorddv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiDrawArrays)(GLenum, const GLint *, const GLsizei *, GLsizei);
+#define CALL_MultiDrawArrays(disp, parameters) \
+ (* GET_MultiDrawArrays(disp)) parameters
+static INLINE _glptr_MultiDrawArrays GET_MultiDrawArrays(struct _glapi_table *disp) {
+ return (_glptr_MultiDrawArrays) (GET_by_offset(disp, _gloffset_MultiDrawArrays));
+}
+
+static INLINE void SET_MultiDrawArrays(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLint *, const GLsizei *, GLsizei)) {
+ SET_by_offset(disp, _gloffset_MultiDrawArrays, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PointParameterf)(GLenum, GLfloat);
+#define CALL_PointParameterf(disp, parameters) \
+ (* GET_PointParameterf(disp)) parameters
+static INLINE _glptr_PointParameterf GET_PointParameterf(struct _glapi_table *disp) {
+ return (_glptr_PointParameterf) (GET_by_offset(disp, _gloffset_PointParameterf));
+}
+
+static INLINE void SET_PointParameterf(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfloat)) {
+ SET_by_offset(disp, _gloffset_PointParameterf, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PointParameterfv)(GLenum, const GLfloat *);
+#define CALL_PointParameterfv(disp, parameters) \
+ (* GET_PointParameterfv(disp)) parameters
+static INLINE _glptr_PointParameterfv GET_PointParameterfv(struct _glapi_table *disp) {
+ return (_glptr_PointParameterfv) (GET_by_offset(disp, _gloffset_PointParameterfv));
+}
+
+static INLINE void SET_PointParameterfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_PointParameterfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PointParameteri)(GLenum, GLint);
+#define CALL_PointParameteri(disp, parameters) \
+ (* GET_PointParameteri(disp)) parameters
+static INLINE _glptr_PointParameteri GET_PointParameteri(struct _glapi_table *disp) {
+ return (_glptr_PointParameteri) (GET_by_offset(disp, _gloffset_PointParameteri));
+}
+
+static INLINE void SET_PointParameteri(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint)) {
+ SET_by_offset(disp, _gloffset_PointParameteri, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PointParameteriv)(GLenum, const GLint *);
+#define CALL_PointParameteriv(disp, parameters) \
+ (* GET_PointParameteriv(disp)) parameters
+static INLINE _glptr_PointParameteriv GET_PointParameteriv(struct _glapi_table *disp) {
+ return (_glptr_PointParameteriv) (GET_by_offset(disp, _gloffset_PointParameteriv));
+}
+
+static INLINE void SET_PointParameteriv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLint *)) {
+ SET_by_offset(disp, _gloffset_PointParameteriv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SecondaryColor3b)(GLbyte, GLbyte, GLbyte);
+#define CALL_SecondaryColor3b(disp, parameters) \
+ (* GET_SecondaryColor3b(disp)) parameters
+static INLINE _glptr_SecondaryColor3b GET_SecondaryColor3b(struct _glapi_table *disp) {
+ return (_glptr_SecondaryColor3b) (GET_by_offset(disp, _gloffset_SecondaryColor3b));
+}
+
+static INLINE void SET_SecondaryColor3b(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLbyte, GLbyte, GLbyte)) {
+ SET_by_offset(disp, _gloffset_SecondaryColor3b, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SecondaryColor3bv)(const GLbyte *);
+#define CALL_SecondaryColor3bv(disp, parameters) \
+ (* GET_SecondaryColor3bv(disp)) parameters
+static INLINE _glptr_SecondaryColor3bv GET_SecondaryColor3bv(struct _glapi_table *disp) {
+ return (_glptr_SecondaryColor3bv) (GET_by_offset(disp, _gloffset_SecondaryColor3bv));
+}
+
+static INLINE void SET_SecondaryColor3bv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLbyte *)) {
+ SET_by_offset(disp, _gloffset_SecondaryColor3bv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SecondaryColor3d)(GLdouble, GLdouble, GLdouble);
+#define CALL_SecondaryColor3d(disp, parameters) \
+ (* GET_SecondaryColor3d(disp)) parameters
+static INLINE _glptr_SecondaryColor3d GET_SecondaryColor3d(struct _glapi_table *disp) {
+ return (_glptr_SecondaryColor3d) (GET_by_offset(disp, _gloffset_SecondaryColor3d));
+}
+
+static INLINE void SET_SecondaryColor3d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_SecondaryColor3d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SecondaryColor3dv)(const GLdouble *);
+#define CALL_SecondaryColor3dv(disp, parameters) \
+ (* GET_SecondaryColor3dv(disp)) parameters
+static INLINE _glptr_SecondaryColor3dv GET_SecondaryColor3dv(struct _glapi_table *disp) {
+ return (_glptr_SecondaryColor3dv) (GET_by_offset(disp, _gloffset_SecondaryColor3dv));
+}
+
+static INLINE void SET_SecondaryColor3dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_SecondaryColor3dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SecondaryColor3i)(GLint, GLint, GLint);
+#define CALL_SecondaryColor3i(disp, parameters) \
+ (* GET_SecondaryColor3i(disp)) parameters
+static INLINE _glptr_SecondaryColor3i GET_SecondaryColor3i(struct _glapi_table *disp) {
+ return (_glptr_SecondaryColor3i) (GET_by_offset(disp, _gloffset_SecondaryColor3i));
+}
+
+static INLINE void SET_SecondaryColor3i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_SecondaryColor3i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SecondaryColor3iv)(const GLint *);
+#define CALL_SecondaryColor3iv(disp, parameters) \
+ (* GET_SecondaryColor3iv(disp)) parameters
+static INLINE _glptr_SecondaryColor3iv GET_SecondaryColor3iv(struct _glapi_table *disp) {
+ return (_glptr_SecondaryColor3iv) (GET_by_offset(disp, _gloffset_SecondaryColor3iv));
+}
+
+static INLINE void SET_SecondaryColor3iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *)) {
+ SET_by_offset(disp, _gloffset_SecondaryColor3iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SecondaryColor3s)(GLshort, GLshort, GLshort);
+#define CALL_SecondaryColor3s(disp, parameters) \
+ (* GET_SecondaryColor3s(disp)) parameters
+static INLINE _glptr_SecondaryColor3s GET_SecondaryColor3s(struct _glapi_table *disp) {
+ return (_glptr_SecondaryColor3s) (GET_by_offset(disp, _gloffset_SecondaryColor3s));
+}
+
+static INLINE void SET_SecondaryColor3s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_SecondaryColor3s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SecondaryColor3sv)(const GLshort *);
+#define CALL_SecondaryColor3sv(disp, parameters) \
+ (* GET_SecondaryColor3sv(disp)) parameters
+static INLINE _glptr_SecondaryColor3sv GET_SecondaryColor3sv(struct _glapi_table *disp) {
+ return (_glptr_SecondaryColor3sv) (GET_by_offset(disp, _gloffset_SecondaryColor3sv));
+}
+
+static INLINE void SET_SecondaryColor3sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *)) {
+ SET_by_offset(disp, _gloffset_SecondaryColor3sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SecondaryColor3ub)(GLubyte, GLubyte, GLubyte);
+#define CALL_SecondaryColor3ub(disp, parameters) \
+ (* GET_SecondaryColor3ub(disp)) parameters
+static INLINE _glptr_SecondaryColor3ub GET_SecondaryColor3ub(struct _glapi_table *disp) {
+ return (_glptr_SecondaryColor3ub) (GET_by_offset(disp, _gloffset_SecondaryColor3ub));
+}
+
+static INLINE void SET_SecondaryColor3ub(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLubyte, GLubyte, GLubyte)) {
+ SET_by_offset(disp, _gloffset_SecondaryColor3ub, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SecondaryColor3ubv)(const GLubyte *);
+#define CALL_SecondaryColor3ubv(disp, parameters) \
+ (* GET_SecondaryColor3ubv(disp)) parameters
+static INLINE _glptr_SecondaryColor3ubv GET_SecondaryColor3ubv(struct _glapi_table *disp) {
+ return (_glptr_SecondaryColor3ubv) (GET_by_offset(disp, _gloffset_SecondaryColor3ubv));
+}
+
+static INLINE void SET_SecondaryColor3ubv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLubyte *)) {
+ SET_by_offset(disp, _gloffset_SecondaryColor3ubv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SecondaryColor3ui)(GLuint, GLuint, GLuint);
+#define CALL_SecondaryColor3ui(disp, parameters) \
+ (* GET_SecondaryColor3ui(disp)) parameters
+static INLINE _glptr_SecondaryColor3ui GET_SecondaryColor3ui(struct _glapi_table *disp) {
+ return (_glptr_SecondaryColor3ui) (GET_by_offset(disp, _gloffset_SecondaryColor3ui));
+}
+
+static INLINE void SET_SecondaryColor3ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_SecondaryColor3ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SecondaryColor3uiv)(const GLuint *);
+#define CALL_SecondaryColor3uiv(disp, parameters) \
+ (* GET_SecondaryColor3uiv(disp)) parameters
+static INLINE _glptr_SecondaryColor3uiv GET_SecondaryColor3uiv(struct _glapi_table *disp) {
+ return (_glptr_SecondaryColor3uiv) (GET_by_offset(disp, _gloffset_SecondaryColor3uiv));
+}
+
+static INLINE void SET_SecondaryColor3uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLuint *)) {
+ SET_by_offset(disp, _gloffset_SecondaryColor3uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SecondaryColor3us)(GLushort, GLushort, GLushort);
+#define CALL_SecondaryColor3us(disp, parameters) \
+ (* GET_SecondaryColor3us(disp)) parameters
+static INLINE _glptr_SecondaryColor3us GET_SecondaryColor3us(struct _glapi_table *disp) {
+ return (_glptr_SecondaryColor3us) (GET_by_offset(disp, _gloffset_SecondaryColor3us));
+}
+
+static INLINE void SET_SecondaryColor3us(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLushort, GLushort, GLushort)) {
+ SET_by_offset(disp, _gloffset_SecondaryColor3us, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SecondaryColor3usv)(const GLushort *);
+#define CALL_SecondaryColor3usv(disp, parameters) \
+ (* GET_SecondaryColor3usv(disp)) parameters
+static INLINE _glptr_SecondaryColor3usv GET_SecondaryColor3usv(struct _glapi_table *disp) {
+ return (_glptr_SecondaryColor3usv) (GET_by_offset(disp, _gloffset_SecondaryColor3usv));
+}
+
+static INLINE void SET_SecondaryColor3usv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLushort *)) {
+ SET_by_offset(disp, _gloffset_SecondaryColor3usv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SecondaryColorPointer)(GLint, GLenum, GLsizei, const GLvoid *);
+#define CALL_SecondaryColorPointer(disp, parameters) \
+ (* GET_SecondaryColorPointer(disp)) parameters
+static INLINE _glptr_SecondaryColorPointer GET_SecondaryColorPointer(struct _glapi_table *disp) {
+ return (_glptr_SecondaryColorPointer) (GET_by_offset(disp, _gloffset_SecondaryColorPointer));
+}
+
+static INLINE void SET_SecondaryColorPointer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLenum, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_SecondaryColorPointer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos2d)(GLdouble, GLdouble);
+#define CALL_WindowPos2d(disp, parameters) \
+ (* GET_WindowPos2d(disp)) parameters
+static INLINE _glptr_WindowPos2d GET_WindowPos2d(struct _glapi_table *disp) {
+ return (_glptr_WindowPos2d) (GET_by_offset(disp, _gloffset_WindowPos2d));
+}
+
+static INLINE void SET_WindowPos2d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_WindowPos2d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos2dv)(const GLdouble *);
+#define CALL_WindowPos2dv(disp, parameters) \
+ (* GET_WindowPos2dv(disp)) parameters
+static INLINE _glptr_WindowPos2dv GET_WindowPos2dv(struct _glapi_table *disp) {
+ return (_glptr_WindowPos2dv) (GET_by_offset(disp, _gloffset_WindowPos2dv));
+}
+
+static INLINE void SET_WindowPos2dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_WindowPos2dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos2f)(GLfloat, GLfloat);
+#define CALL_WindowPos2f(disp, parameters) \
+ (* GET_WindowPos2f(disp)) parameters
+static INLINE _glptr_WindowPos2f GET_WindowPos2f(struct _glapi_table *disp) {
+ return (_glptr_WindowPos2f) (GET_by_offset(disp, _gloffset_WindowPos2f));
+}
+
+static INLINE void SET_WindowPos2f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_WindowPos2f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos2fv)(const GLfloat *);
+#define CALL_WindowPos2fv(disp, parameters) \
+ (* GET_WindowPos2fv(disp)) parameters
+static INLINE _glptr_WindowPos2fv GET_WindowPos2fv(struct _glapi_table *disp) {
+ return (_glptr_WindowPos2fv) (GET_by_offset(disp, _gloffset_WindowPos2fv));
+}
+
+static INLINE void SET_WindowPos2fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_WindowPos2fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos2i)(GLint, GLint);
+#define CALL_WindowPos2i(disp, parameters) \
+ (* GET_WindowPos2i(disp)) parameters
+static INLINE _glptr_WindowPos2i GET_WindowPos2i(struct _glapi_table *disp) {
+ return (_glptr_WindowPos2i) (GET_by_offset(disp, _gloffset_WindowPos2i));
+}
+
+static INLINE void SET_WindowPos2i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_WindowPos2i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos2iv)(const GLint *);
+#define CALL_WindowPos2iv(disp, parameters) \
+ (* GET_WindowPos2iv(disp)) parameters
+static INLINE _glptr_WindowPos2iv GET_WindowPos2iv(struct _glapi_table *disp) {
+ return (_glptr_WindowPos2iv) (GET_by_offset(disp, _gloffset_WindowPos2iv));
+}
+
+static INLINE void SET_WindowPos2iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *)) {
+ SET_by_offset(disp, _gloffset_WindowPos2iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos2s)(GLshort, GLshort);
+#define CALL_WindowPos2s(disp, parameters) \
+ (* GET_WindowPos2s(disp)) parameters
+static INLINE _glptr_WindowPos2s GET_WindowPos2s(struct _glapi_table *disp) {
+ return (_glptr_WindowPos2s) (GET_by_offset(disp, _gloffset_WindowPos2s));
+}
+
+static INLINE void SET_WindowPos2s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_WindowPos2s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos2sv)(const GLshort *);
+#define CALL_WindowPos2sv(disp, parameters) \
+ (* GET_WindowPos2sv(disp)) parameters
+static INLINE _glptr_WindowPos2sv GET_WindowPos2sv(struct _glapi_table *disp) {
+ return (_glptr_WindowPos2sv) (GET_by_offset(disp, _gloffset_WindowPos2sv));
+}
+
+static INLINE void SET_WindowPos2sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *)) {
+ SET_by_offset(disp, _gloffset_WindowPos2sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos3d)(GLdouble, GLdouble, GLdouble);
+#define CALL_WindowPos3d(disp, parameters) \
+ (* GET_WindowPos3d(disp)) parameters
+static INLINE _glptr_WindowPos3d GET_WindowPos3d(struct _glapi_table *disp) {
+ return (_glptr_WindowPos3d) (GET_by_offset(disp, _gloffset_WindowPos3d));
+}
+
+static INLINE void SET_WindowPos3d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_WindowPos3d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos3dv)(const GLdouble *);
+#define CALL_WindowPos3dv(disp, parameters) \
+ (* GET_WindowPos3dv(disp)) parameters
+static INLINE _glptr_WindowPos3dv GET_WindowPos3dv(struct _glapi_table *disp) {
+ return (_glptr_WindowPos3dv) (GET_by_offset(disp, _gloffset_WindowPos3dv));
+}
+
+static INLINE void SET_WindowPos3dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_WindowPos3dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos3f)(GLfloat, GLfloat, GLfloat);
+#define CALL_WindowPos3f(disp, parameters) \
+ (* GET_WindowPos3f(disp)) parameters
+static INLINE _glptr_WindowPos3f GET_WindowPos3f(struct _glapi_table *disp) {
+ return (_glptr_WindowPos3f) (GET_by_offset(disp, _gloffset_WindowPos3f));
+}
+
+static INLINE void SET_WindowPos3f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_WindowPos3f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos3fv)(const GLfloat *);
+#define CALL_WindowPos3fv(disp, parameters) \
+ (* GET_WindowPos3fv(disp)) parameters
+static INLINE _glptr_WindowPos3fv GET_WindowPos3fv(struct _glapi_table *disp) {
+ return (_glptr_WindowPos3fv) (GET_by_offset(disp, _gloffset_WindowPos3fv));
+}
+
+static INLINE void SET_WindowPos3fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_WindowPos3fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos3i)(GLint, GLint, GLint);
+#define CALL_WindowPos3i(disp, parameters) \
+ (* GET_WindowPos3i(disp)) parameters
+static INLINE _glptr_WindowPos3i GET_WindowPos3i(struct _glapi_table *disp) {
+ return (_glptr_WindowPos3i) (GET_by_offset(disp, _gloffset_WindowPos3i));
+}
+
+static INLINE void SET_WindowPos3i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_WindowPos3i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos3iv)(const GLint *);
+#define CALL_WindowPos3iv(disp, parameters) \
+ (* GET_WindowPos3iv(disp)) parameters
+static INLINE _glptr_WindowPos3iv GET_WindowPos3iv(struct _glapi_table *disp) {
+ return (_glptr_WindowPos3iv) (GET_by_offset(disp, _gloffset_WindowPos3iv));
+}
+
+static INLINE void SET_WindowPos3iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *)) {
+ SET_by_offset(disp, _gloffset_WindowPos3iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos3s)(GLshort, GLshort, GLshort);
+#define CALL_WindowPos3s(disp, parameters) \
+ (* GET_WindowPos3s(disp)) parameters
+static INLINE _glptr_WindowPos3s GET_WindowPos3s(struct _glapi_table *disp) {
+ return (_glptr_WindowPos3s) (GET_by_offset(disp, _gloffset_WindowPos3s));
+}
+
+static INLINE void SET_WindowPos3s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_WindowPos3s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos3sv)(const GLshort *);
+#define CALL_WindowPos3sv(disp, parameters) \
+ (* GET_WindowPos3sv(disp)) parameters
+static INLINE _glptr_WindowPos3sv GET_WindowPos3sv(struct _glapi_table *disp) {
+ return (_glptr_WindowPos3sv) (GET_by_offset(disp, _gloffset_WindowPos3sv));
+}
+
+static INLINE void SET_WindowPos3sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *)) {
+ SET_by_offset(disp, _gloffset_WindowPos3sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BeginQuery)(GLenum, GLuint);
+#define CALL_BeginQuery(disp, parameters) \
+ (* GET_BeginQuery(disp)) parameters
+static INLINE _glptr_BeginQuery GET_BeginQuery(struct _glapi_table *disp) {
+ return (_glptr_BeginQuery) (GET_by_offset(disp, _gloffset_BeginQuery));
+}
+
+static INLINE void SET_BeginQuery(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_BeginQuery, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BindBuffer)(GLenum, GLuint);
+#define CALL_BindBuffer(disp, parameters) \
+ (* GET_BindBuffer(disp)) parameters
+static INLINE _glptr_BindBuffer GET_BindBuffer(struct _glapi_table *disp) {
+ return (_glptr_BindBuffer) (GET_by_offset(disp, _gloffset_BindBuffer));
+}
+
+static INLINE void SET_BindBuffer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_BindBuffer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BufferData)(GLenum, GLsizeiptr, const GLvoid *, GLenum);
+#define CALL_BufferData(disp, parameters) \
+ (* GET_BufferData(disp)) parameters
+static INLINE _glptr_BufferData GET_BufferData(struct _glapi_table *disp) {
+ return (_glptr_BufferData) (GET_by_offset(disp, _gloffset_BufferData));
+}
+
+static INLINE void SET_BufferData(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizeiptr, const GLvoid *, GLenum)) {
+ SET_by_offset(disp, _gloffset_BufferData, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BufferSubData)(GLenum, GLintptr, GLsizeiptr, const GLvoid *);
+#define CALL_BufferSubData(disp, parameters) \
+ (* GET_BufferSubData(disp)) parameters
+static INLINE _glptr_BufferSubData GET_BufferSubData(struct _glapi_table *disp) {
+ return (_glptr_BufferSubData) (GET_by_offset(disp, _gloffset_BufferSubData));
+}
+
+static INLINE void SET_BufferSubData(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLintptr, GLsizeiptr, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_BufferSubData, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DeleteBuffers)(GLsizei, const GLuint *);
+#define CALL_DeleteBuffers(disp, parameters) \
+ (* GET_DeleteBuffers(disp)) parameters
+static INLINE _glptr_DeleteBuffers GET_DeleteBuffers(struct _glapi_table *disp) {
+ return (_glptr_DeleteBuffers) (GET_by_offset(disp, _gloffset_DeleteBuffers));
+}
+
+static INLINE void SET_DeleteBuffers(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_DeleteBuffers, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DeleteQueries)(GLsizei, const GLuint *);
+#define CALL_DeleteQueries(disp, parameters) \
+ (* GET_DeleteQueries(disp)) parameters
+static INLINE _glptr_DeleteQueries GET_DeleteQueries(struct _glapi_table *disp) {
+ return (_glptr_DeleteQueries) (GET_by_offset(disp, _gloffset_DeleteQueries));
+}
+
+static INLINE void SET_DeleteQueries(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_DeleteQueries, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EndQuery)(GLenum);
+#define CALL_EndQuery(disp, parameters) \
+ (* GET_EndQuery(disp)) parameters
+static INLINE _glptr_EndQuery GET_EndQuery(struct _glapi_table *disp) {
+ return (_glptr_EndQuery) (GET_by_offset(disp, _gloffset_EndQuery));
+}
+
+static INLINE void SET_EndQuery(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_EndQuery, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GenBuffers)(GLsizei, GLuint *);
+#define CALL_GenBuffers(disp, parameters) \
+ (* GET_GenBuffers(disp)) parameters
+static INLINE _glptr_GenBuffers GET_GenBuffers(struct _glapi_table *disp) {
+ return (_glptr_GenBuffers) (GET_by_offset(disp, _gloffset_GenBuffers));
+}
+
+static INLINE void SET_GenBuffers(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GenBuffers, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GenQueries)(GLsizei, GLuint *);
+#define CALL_GenQueries(disp, parameters) \
+ (* GET_GenQueries(disp)) parameters
+static INLINE _glptr_GenQueries GET_GenQueries(struct _glapi_table *disp) {
+ return (_glptr_GenQueries) (GET_by_offset(disp, _gloffset_GenQueries));
+}
+
+static INLINE void SET_GenQueries(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GenQueries, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetBufferParameteriv)(GLenum, GLenum, GLint *);
+#define CALL_GetBufferParameteriv(disp, parameters) \
+ (* GET_GetBufferParameteriv(disp)) parameters
+static INLINE _glptr_GetBufferParameteriv GET_GetBufferParameteriv(struct _glapi_table *disp) {
+ return (_glptr_GetBufferParameteriv) (GET_by_offset(disp, _gloffset_GetBufferParameteriv));
+}
+
+static INLINE void SET_GetBufferParameteriv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetBufferParameteriv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetBufferPointerv)(GLenum, GLenum, GLvoid **);
+#define CALL_GetBufferPointerv(disp, parameters) \
+ (* GET_GetBufferPointerv(disp)) parameters
+static INLINE _glptr_GetBufferPointerv GET_GetBufferPointerv(struct _glapi_table *disp) {
+ return (_glptr_GetBufferPointerv) (GET_by_offset(disp, _gloffset_GetBufferPointerv));
+}
+
+static INLINE void SET_GetBufferPointerv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLvoid **)) {
+ SET_by_offset(disp, _gloffset_GetBufferPointerv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetBufferSubData)(GLenum, GLintptr, GLsizeiptr, GLvoid *);
+#define CALL_GetBufferSubData(disp, parameters) \
+ (* GET_GetBufferSubData(disp)) parameters
+static INLINE _glptr_GetBufferSubData GET_GetBufferSubData(struct _glapi_table *disp) {
+ return (_glptr_GetBufferSubData) (GET_by_offset(disp, _gloffset_GetBufferSubData));
+}
+
+static INLINE void SET_GetBufferSubData(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLintptr, GLsizeiptr, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_GetBufferSubData, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetQueryObjectiv)(GLuint, GLenum, GLint *);
+#define CALL_GetQueryObjectiv(disp, parameters) \
+ (* GET_GetQueryObjectiv(disp)) parameters
+static INLINE _glptr_GetQueryObjectiv GET_GetQueryObjectiv(struct _glapi_table *disp) {
+ return (_glptr_GetQueryObjectiv) (GET_by_offset(disp, _gloffset_GetQueryObjectiv));
+}
+
+static INLINE void SET_GetQueryObjectiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetQueryObjectiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetQueryObjectuiv)(GLuint, GLenum, GLuint *);
+#define CALL_GetQueryObjectuiv(disp, parameters) \
+ (* GET_GetQueryObjectuiv(disp)) parameters
+static INLINE _glptr_GetQueryObjectuiv GET_GetQueryObjectuiv(struct _glapi_table *disp) {
+ return (_glptr_GetQueryObjectuiv) (GET_by_offset(disp, _gloffset_GetQueryObjectuiv));
+}
+
+static INLINE void SET_GetQueryObjectuiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GetQueryObjectuiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetQueryiv)(GLenum, GLenum, GLint *);
+#define CALL_GetQueryiv(disp, parameters) \
+ (* GET_GetQueryiv(disp)) parameters
+static INLINE _glptr_GetQueryiv GET_GetQueryiv(struct _glapi_table *disp) {
+ return (_glptr_GetQueryiv) (GET_by_offset(disp, _gloffset_GetQueryiv));
+}
+
+static INLINE void SET_GetQueryiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetQueryiv, fn);
+}
+
+typedef GLboolean (GLAPIENTRYP _glptr_IsBuffer)(GLuint);
+#define CALL_IsBuffer(disp, parameters) \
+ (* GET_IsBuffer(disp)) parameters
+static INLINE _glptr_IsBuffer GET_IsBuffer(struct _glapi_table *disp) {
+ return (_glptr_IsBuffer) (GET_by_offset(disp, _gloffset_IsBuffer));
+}
+
+static INLINE void SET_IsBuffer(struct _glapi_table *disp, GLboolean (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_IsBuffer, fn);
+}
+
+typedef GLboolean (GLAPIENTRYP _glptr_IsQuery)(GLuint);
+#define CALL_IsQuery(disp, parameters) \
+ (* GET_IsQuery(disp)) parameters
+static INLINE _glptr_IsQuery GET_IsQuery(struct _glapi_table *disp) {
+ return (_glptr_IsQuery) (GET_by_offset(disp, _gloffset_IsQuery));
+}
+
+static INLINE void SET_IsQuery(struct _glapi_table *disp, GLboolean (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_IsQuery, fn);
+}
+
+typedef GLvoid * (GLAPIENTRYP _glptr_MapBuffer)(GLenum, GLenum);
+#define CALL_MapBuffer(disp, parameters) \
+ (* GET_MapBuffer(disp)) parameters
+static INLINE _glptr_MapBuffer GET_MapBuffer(struct _glapi_table *disp) {
+ return (_glptr_MapBuffer) (GET_by_offset(disp, _gloffset_MapBuffer));
+}
+
+static INLINE void SET_MapBuffer(struct _glapi_table *disp, GLvoid * (GLAPIENTRYP fn)(GLenum, GLenum)) {
+ SET_by_offset(disp, _gloffset_MapBuffer, fn);
+}
+
+typedef GLboolean (GLAPIENTRYP _glptr_UnmapBuffer)(GLenum);
+#define CALL_UnmapBuffer(disp, parameters) \
+ (* GET_UnmapBuffer(disp)) parameters
+static INLINE _glptr_UnmapBuffer GET_UnmapBuffer(struct _glapi_table *disp) {
+ return (_glptr_UnmapBuffer) (GET_by_offset(disp, _gloffset_UnmapBuffer));
+}
+
+static INLINE void SET_UnmapBuffer(struct _glapi_table *disp, GLboolean (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_UnmapBuffer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_AttachShader)(GLuint, GLuint);
+#define CALL_AttachShader(disp, parameters) \
+ (* GET_AttachShader(disp)) parameters
+static INLINE _glptr_AttachShader GET_AttachShader(struct _glapi_table *disp) {
+ return (_glptr_AttachShader) (GET_by_offset(disp, _gloffset_AttachShader));
+}
+
+static INLINE void SET_AttachShader(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_AttachShader, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BindAttribLocation)(GLuint, GLuint, const GLchar *);
+#define CALL_BindAttribLocation(disp, parameters) \
+ (* GET_BindAttribLocation(disp)) parameters
+static INLINE _glptr_BindAttribLocation GET_BindAttribLocation(struct _glapi_table *disp) {
+ return (_glptr_BindAttribLocation) (GET_by_offset(disp, _gloffset_BindAttribLocation));
+}
+
+static INLINE void SET_BindAttribLocation(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, const GLchar *)) {
+ SET_by_offset(disp, _gloffset_BindAttribLocation, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BlendEquationSeparate)(GLenum, GLenum);
+#define CALL_BlendEquationSeparate(disp, parameters) \
+ (* GET_BlendEquationSeparate(disp)) parameters
+static INLINE _glptr_BlendEquationSeparate GET_BlendEquationSeparate(struct _glapi_table *disp) {
+ return (_glptr_BlendEquationSeparate) (GET_by_offset(disp, _gloffset_BlendEquationSeparate));
+}
+
+static INLINE void SET_BlendEquationSeparate(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum)) {
+ SET_by_offset(disp, _gloffset_BlendEquationSeparate, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CompileShader)(GLuint);
+#define CALL_CompileShader(disp, parameters) \
+ (* GET_CompileShader(disp)) parameters
+static INLINE _glptr_CompileShader GET_CompileShader(struct _glapi_table *disp) {
+ return (_glptr_CompileShader) (GET_by_offset(disp, _gloffset_CompileShader));
+}
+
+static INLINE void SET_CompileShader(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_CompileShader, fn);
+}
+
+typedef GLuint (GLAPIENTRYP _glptr_CreateProgram)(void);
+#define CALL_CreateProgram(disp, parameters) \
+ (* GET_CreateProgram(disp)) parameters
+static INLINE _glptr_CreateProgram GET_CreateProgram(struct _glapi_table *disp) {
+ return (_glptr_CreateProgram) (GET_by_offset(disp, _gloffset_CreateProgram));
+}
+
+static INLINE void SET_CreateProgram(struct _glapi_table *disp, GLuint (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_CreateProgram, fn);
+}
+
+typedef GLuint (GLAPIENTRYP _glptr_CreateShader)(GLenum);
+#define CALL_CreateShader(disp, parameters) \
+ (* GET_CreateShader(disp)) parameters
+static INLINE _glptr_CreateShader GET_CreateShader(struct _glapi_table *disp) {
+ return (_glptr_CreateShader) (GET_by_offset(disp, _gloffset_CreateShader));
+}
+
+static INLINE void SET_CreateShader(struct _glapi_table *disp, GLuint (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_CreateShader, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DeleteProgram)(GLuint);
+#define CALL_DeleteProgram(disp, parameters) \
+ (* GET_DeleteProgram(disp)) parameters
+static INLINE _glptr_DeleteProgram GET_DeleteProgram(struct _glapi_table *disp) {
+ return (_glptr_DeleteProgram) (GET_by_offset(disp, _gloffset_DeleteProgram));
+}
+
+static INLINE void SET_DeleteProgram(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_DeleteProgram, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DeleteShader)(GLuint);
+#define CALL_DeleteShader(disp, parameters) \
+ (* GET_DeleteShader(disp)) parameters
+static INLINE _glptr_DeleteShader GET_DeleteShader(struct _glapi_table *disp) {
+ return (_glptr_DeleteShader) (GET_by_offset(disp, _gloffset_DeleteShader));
+}
+
+static INLINE void SET_DeleteShader(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_DeleteShader, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DetachShader)(GLuint, GLuint);
+#define CALL_DetachShader(disp, parameters) \
+ (* GET_DetachShader(disp)) parameters
+static INLINE _glptr_DetachShader GET_DetachShader(struct _glapi_table *disp) {
+ return (_glptr_DetachShader) (GET_by_offset(disp, _gloffset_DetachShader));
+}
+
+static INLINE void SET_DetachShader(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_DetachShader, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DisableVertexAttribArray)(GLuint);
+#define CALL_DisableVertexAttribArray(disp, parameters) \
+ (* GET_DisableVertexAttribArray(disp)) parameters
+static INLINE _glptr_DisableVertexAttribArray GET_DisableVertexAttribArray(struct _glapi_table *disp) {
+ return (_glptr_DisableVertexAttribArray) (GET_by_offset(disp, _gloffset_DisableVertexAttribArray));
+}
+
+static INLINE void SET_DisableVertexAttribArray(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_DisableVertexAttribArray, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawBuffers)(GLsizei, const GLenum *);
+#define CALL_DrawBuffers(disp, parameters) \
+ (* GET_DrawBuffers(disp)) parameters
+static INLINE _glptr_DrawBuffers GET_DrawBuffers(struct _glapi_table *disp) {
+ return (_glptr_DrawBuffers) (GET_by_offset(disp, _gloffset_DrawBuffers));
+}
+
+static INLINE void SET_DrawBuffers(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, const GLenum *)) {
+ SET_by_offset(disp, _gloffset_DrawBuffers, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EnableVertexAttribArray)(GLuint);
+#define CALL_EnableVertexAttribArray(disp, parameters) \
+ (* GET_EnableVertexAttribArray(disp)) parameters
+static INLINE _glptr_EnableVertexAttribArray GET_EnableVertexAttribArray(struct _glapi_table *disp) {
+ return (_glptr_EnableVertexAttribArray) (GET_by_offset(disp, _gloffset_EnableVertexAttribArray));
+}
+
+static INLINE void SET_EnableVertexAttribArray(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_EnableVertexAttribArray, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetActiveAttrib)(GLuint, GLuint, GLsizei , GLsizei *, GLint *, GLenum *, GLchar *);
+#define CALL_GetActiveAttrib(disp, parameters) \
+ (* GET_GetActiveAttrib(disp)) parameters
+static INLINE _glptr_GetActiveAttrib GET_GetActiveAttrib(struct _glapi_table *disp) {
+ return (_glptr_GetActiveAttrib) (GET_by_offset(disp, _gloffset_GetActiveAttrib));
+}
+
+static INLINE void SET_GetActiveAttrib(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLsizei , GLsizei *, GLint *, GLenum *, GLchar *)) {
+ SET_by_offset(disp, _gloffset_GetActiveAttrib, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetActiveUniform)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *);
+#define CALL_GetActiveUniform(disp, parameters) \
+ (* GET_GetActiveUniform(disp)) parameters
+static INLINE _glptr_GetActiveUniform GET_GetActiveUniform(struct _glapi_table *disp) {
+ return (_glptr_GetActiveUniform) (GET_by_offset(disp, _gloffset_GetActiveUniform));
+}
+
+static INLINE void SET_GetActiveUniform(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *)) {
+ SET_by_offset(disp, _gloffset_GetActiveUniform, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetAttachedShaders)(GLuint, GLsizei, GLsizei *, GLuint *);
+#define CALL_GetAttachedShaders(disp, parameters) \
+ (* GET_GetAttachedShaders(disp)) parameters
+static INLINE _glptr_GetAttachedShaders GET_GetAttachedShaders(struct _glapi_table *disp) {
+ return (_glptr_GetAttachedShaders) (GET_by_offset(disp, _gloffset_GetAttachedShaders));
+}
+
+static INLINE void SET_GetAttachedShaders(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, GLsizei *, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GetAttachedShaders, fn);
+}
+
+typedef GLint (GLAPIENTRYP _glptr_GetAttribLocation)(GLuint, const GLchar *);
+#define CALL_GetAttribLocation(disp, parameters) \
+ (* GET_GetAttribLocation(disp)) parameters
+static INLINE _glptr_GetAttribLocation GET_GetAttribLocation(struct _glapi_table *disp) {
+ return (_glptr_GetAttribLocation) (GET_by_offset(disp, _gloffset_GetAttribLocation));
+}
+
+static INLINE void SET_GetAttribLocation(struct _glapi_table *disp, GLint (GLAPIENTRYP fn)(GLuint, const GLchar *)) {
+ SET_by_offset(disp, _gloffset_GetAttribLocation, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetProgramInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *);
+#define CALL_GetProgramInfoLog(disp, parameters) \
+ (* GET_GetProgramInfoLog(disp)) parameters
+static INLINE _glptr_GetProgramInfoLog GET_GetProgramInfoLog(struct _glapi_table *disp) {
+ return (_glptr_GetProgramInfoLog) (GET_by_offset(disp, _gloffset_GetProgramInfoLog));
+}
+
+static INLINE void SET_GetProgramInfoLog(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, GLsizei *, GLchar *)) {
+ SET_by_offset(disp, _gloffset_GetProgramInfoLog, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetProgramiv)(GLuint, GLenum, GLint *);
+#define CALL_GetProgramiv(disp, parameters) \
+ (* GET_GetProgramiv(disp)) parameters
+static INLINE _glptr_GetProgramiv GET_GetProgramiv(struct _glapi_table *disp) {
+ return (_glptr_GetProgramiv) (GET_by_offset(disp, _gloffset_GetProgramiv));
+}
+
+static INLINE void SET_GetProgramiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetProgramiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetShaderInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *);
+#define CALL_GetShaderInfoLog(disp, parameters) \
+ (* GET_GetShaderInfoLog(disp)) parameters
+static INLINE _glptr_GetShaderInfoLog GET_GetShaderInfoLog(struct _glapi_table *disp) {
+ return (_glptr_GetShaderInfoLog) (GET_by_offset(disp, _gloffset_GetShaderInfoLog));
+}
+
+static INLINE void SET_GetShaderInfoLog(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, GLsizei *, GLchar *)) {
+ SET_by_offset(disp, _gloffset_GetShaderInfoLog, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetShaderSource)(GLuint, GLsizei, GLsizei *, GLchar *);
+#define CALL_GetShaderSource(disp, parameters) \
+ (* GET_GetShaderSource(disp)) parameters
+static INLINE _glptr_GetShaderSource GET_GetShaderSource(struct _glapi_table *disp) {
+ return (_glptr_GetShaderSource) (GET_by_offset(disp, _gloffset_GetShaderSource));
+}
+
+static INLINE void SET_GetShaderSource(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, GLsizei *, GLchar *)) {
+ SET_by_offset(disp, _gloffset_GetShaderSource, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetShaderiv)(GLuint, GLenum, GLint *);
+#define CALL_GetShaderiv(disp, parameters) \
+ (* GET_GetShaderiv(disp)) parameters
+static INLINE _glptr_GetShaderiv GET_GetShaderiv(struct _glapi_table *disp) {
+ return (_glptr_GetShaderiv) (GET_by_offset(disp, _gloffset_GetShaderiv));
+}
+
+static INLINE void SET_GetShaderiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetShaderiv, fn);
+}
+
+typedef GLint (GLAPIENTRYP _glptr_GetUniformLocation)(GLuint, const GLchar *);
+#define CALL_GetUniformLocation(disp, parameters) \
+ (* GET_GetUniformLocation(disp)) parameters
+static INLINE _glptr_GetUniformLocation GET_GetUniformLocation(struct _glapi_table *disp) {
+ return (_glptr_GetUniformLocation) (GET_by_offset(disp, _gloffset_GetUniformLocation));
+}
+
+static INLINE void SET_GetUniformLocation(struct _glapi_table *disp, GLint (GLAPIENTRYP fn)(GLuint, const GLchar *)) {
+ SET_by_offset(disp, _gloffset_GetUniformLocation, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetUniformfv)(GLuint, GLint, GLfloat *);
+#define CALL_GetUniformfv(disp, parameters) \
+ (* GET_GetUniformfv(disp)) parameters
+static INLINE _glptr_GetUniformfv GET_GetUniformfv(struct _glapi_table *disp) {
+ return (_glptr_GetUniformfv) (GET_by_offset(disp, _gloffset_GetUniformfv));
+}
+
+static INLINE void SET_GetUniformfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLint, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetUniformfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetUniformiv)(GLuint, GLint, GLint *);
+#define CALL_GetUniformiv(disp, parameters) \
+ (* GET_GetUniformiv(disp)) parameters
+static INLINE _glptr_GetUniformiv GET_GetUniformiv(struct _glapi_table *disp) {
+ return (_glptr_GetUniformiv) (GET_by_offset(disp, _gloffset_GetUniformiv));
+}
+
+static INLINE void SET_GetUniformiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLint, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetUniformiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetVertexAttribPointerv)(GLuint, GLenum, GLvoid **);
+#define CALL_GetVertexAttribPointerv(disp, parameters) \
+ (* GET_GetVertexAttribPointerv(disp)) parameters
+static INLINE _glptr_GetVertexAttribPointerv GET_GetVertexAttribPointerv(struct _glapi_table *disp) {
+ return (_glptr_GetVertexAttribPointerv) (GET_by_offset(disp, _gloffset_GetVertexAttribPointerv));
+}
+
+static INLINE void SET_GetVertexAttribPointerv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLvoid **)) {
+ SET_by_offset(disp, _gloffset_GetVertexAttribPointerv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetVertexAttribdv)(GLuint, GLenum, GLdouble *);
+#define CALL_GetVertexAttribdv(disp, parameters) \
+ (* GET_GetVertexAttribdv(disp)) parameters
+static INLINE _glptr_GetVertexAttribdv GET_GetVertexAttribdv(struct _glapi_table *disp) {
+ return (_glptr_GetVertexAttribdv) (GET_by_offset(disp, _gloffset_GetVertexAttribdv));
+}
+
+static INLINE void SET_GetVertexAttribdv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLdouble *)) {
+ SET_by_offset(disp, _gloffset_GetVertexAttribdv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetVertexAttribfv)(GLuint, GLenum, GLfloat *);
+#define CALL_GetVertexAttribfv(disp, parameters) \
+ (* GET_GetVertexAttribfv(disp)) parameters
+static INLINE _glptr_GetVertexAttribfv GET_GetVertexAttribfv(struct _glapi_table *disp) {
+ return (_glptr_GetVertexAttribfv) (GET_by_offset(disp, _gloffset_GetVertexAttribfv));
+}
+
+static INLINE void SET_GetVertexAttribfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetVertexAttribfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetVertexAttribiv)(GLuint, GLenum, GLint *);
+#define CALL_GetVertexAttribiv(disp, parameters) \
+ (* GET_GetVertexAttribiv(disp)) parameters
+static INLINE _glptr_GetVertexAttribiv GET_GetVertexAttribiv(struct _glapi_table *disp) {
+ return (_glptr_GetVertexAttribiv) (GET_by_offset(disp, _gloffset_GetVertexAttribiv));
+}
+
+static INLINE void SET_GetVertexAttribiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetVertexAttribiv, fn);
+}
+
+typedef GLboolean (GLAPIENTRYP _glptr_IsProgram)(GLuint);
+#define CALL_IsProgram(disp, parameters) \
+ (* GET_IsProgram(disp)) parameters
+static INLINE _glptr_IsProgram GET_IsProgram(struct _glapi_table *disp) {
+ return (_glptr_IsProgram) (GET_by_offset(disp, _gloffset_IsProgram));
+}
+
+static INLINE void SET_IsProgram(struct _glapi_table *disp, GLboolean (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_IsProgram, fn);
+}
+
+typedef GLboolean (GLAPIENTRYP _glptr_IsShader)(GLuint);
+#define CALL_IsShader(disp, parameters) \
+ (* GET_IsShader(disp)) parameters
+static INLINE _glptr_IsShader GET_IsShader(struct _glapi_table *disp) {
+ return (_glptr_IsShader) (GET_by_offset(disp, _gloffset_IsShader));
+}
+
+static INLINE void SET_IsShader(struct _glapi_table *disp, GLboolean (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_IsShader, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LinkProgram)(GLuint);
+#define CALL_LinkProgram(disp, parameters) \
+ (* GET_LinkProgram(disp)) parameters
+static INLINE _glptr_LinkProgram GET_LinkProgram(struct _glapi_table *disp) {
+ return (_glptr_LinkProgram) (GET_by_offset(disp, _gloffset_LinkProgram));
+}
+
+static INLINE void SET_LinkProgram(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_LinkProgram, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ShaderSource)(GLuint, GLsizei, const GLchar * const *, const GLint *);
+#define CALL_ShaderSource(disp, parameters) \
+ (* GET_ShaderSource(disp)) parameters
+static INLINE _glptr_ShaderSource GET_ShaderSource(struct _glapi_table *disp) {
+ return (_glptr_ShaderSource) (GET_by_offset(disp, _gloffset_ShaderSource));
+}
+
+static INLINE void SET_ShaderSource(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLchar * const *, const GLint *)) {
+ SET_by_offset(disp, _gloffset_ShaderSource, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_StencilFuncSeparate)(GLenum, GLenum, GLint, GLuint);
+#define CALL_StencilFuncSeparate(disp, parameters) \
+ (* GET_StencilFuncSeparate(disp)) parameters
+static INLINE _glptr_StencilFuncSeparate GET_StencilFuncSeparate(struct _glapi_table *disp) {
+ return (_glptr_StencilFuncSeparate) (GET_by_offset(disp, _gloffset_StencilFuncSeparate));
+}
+
+static INLINE void SET_StencilFuncSeparate(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint, GLuint)) {
+ SET_by_offset(disp, _gloffset_StencilFuncSeparate, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_StencilMaskSeparate)(GLenum, GLuint);
+#define CALL_StencilMaskSeparate(disp, parameters) \
+ (* GET_StencilMaskSeparate(disp)) parameters
+static INLINE _glptr_StencilMaskSeparate GET_StencilMaskSeparate(struct _glapi_table *disp) {
+ return (_glptr_StencilMaskSeparate) (GET_by_offset(disp, _gloffset_StencilMaskSeparate));
+}
+
+static INLINE void SET_StencilMaskSeparate(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_StencilMaskSeparate, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_StencilOpSeparate)(GLenum, GLenum, GLenum, GLenum);
+#define CALL_StencilOpSeparate(disp, parameters) \
+ (* GET_StencilOpSeparate(disp)) parameters
+static INLINE _glptr_StencilOpSeparate GET_StencilOpSeparate(struct _glapi_table *disp) {
+ return (_glptr_StencilOpSeparate) (GET_by_offset(disp, _gloffset_StencilOpSeparate));
+}
+
+static INLINE void SET_StencilOpSeparate(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLenum, GLenum)) {
+ SET_by_offset(disp, _gloffset_StencilOpSeparate, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform1f)(GLint, GLfloat);
+#define CALL_Uniform1f(disp, parameters) \
+ (* GET_Uniform1f(disp)) parameters
+static INLINE _glptr_Uniform1f GET_Uniform1f(struct _glapi_table *disp) {
+ return (_glptr_Uniform1f) (GET_by_offset(disp, _gloffset_Uniform1f));
+}
+
+static INLINE void SET_Uniform1f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Uniform1f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform1fv)(GLint, GLsizei, const GLfloat *);
+#define CALL_Uniform1fv(disp, parameters) \
+ (* GET_Uniform1fv(disp)) parameters
+static INLINE _glptr_Uniform1fv GET_Uniform1fv(struct _glapi_table *disp) {
+ return (_glptr_Uniform1fv) (GET_by_offset(disp, _gloffset_Uniform1fv));
+}
+
+static INLINE void SET_Uniform1fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_Uniform1fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform1i)(GLint, GLint);
+#define CALL_Uniform1i(disp, parameters) \
+ (* GET_Uniform1i(disp)) parameters
+static INLINE _glptr_Uniform1i GET_Uniform1i(struct _glapi_table *disp) {
+ return (_glptr_Uniform1i) (GET_by_offset(disp, _gloffset_Uniform1i));
+}
+
+static INLINE void SET_Uniform1i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_Uniform1i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform1iv)(GLint, GLsizei, const GLint *);
+#define CALL_Uniform1iv(disp, parameters) \
+ (* GET_Uniform1iv(disp)) parameters
+static INLINE _glptr_Uniform1iv GET_Uniform1iv(struct _glapi_table *disp) {
+ return (_glptr_Uniform1iv) (GET_by_offset(disp, _gloffset_Uniform1iv));
+}
+
+static INLINE void SET_Uniform1iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, const GLint *)) {
+ SET_by_offset(disp, _gloffset_Uniform1iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform2f)(GLint, GLfloat, GLfloat);
+#define CALL_Uniform2f(disp, parameters) \
+ (* GET_Uniform2f(disp)) parameters
+static INLINE _glptr_Uniform2f GET_Uniform2f(struct _glapi_table *disp) {
+ return (_glptr_Uniform2f) (GET_by_offset(disp, _gloffset_Uniform2f));
+}
+
+static INLINE void SET_Uniform2f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Uniform2f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform2fv)(GLint, GLsizei, const GLfloat *);
+#define CALL_Uniform2fv(disp, parameters) \
+ (* GET_Uniform2fv(disp)) parameters
+static INLINE _glptr_Uniform2fv GET_Uniform2fv(struct _glapi_table *disp) {
+ return (_glptr_Uniform2fv) (GET_by_offset(disp, _gloffset_Uniform2fv));
+}
+
+static INLINE void SET_Uniform2fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_Uniform2fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform2i)(GLint, GLint, GLint);
+#define CALL_Uniform2i(disp, parameters) \
+ (* GET_Uniform2i(disp)) parameters
+static INLINE _glptr_Uniform2i GET_Uniform2i(struct _glapi_table *disp) {
+ return (_glptr_Uniform2i) (GET_by_offset(disp, _gloffset_Uniform2i));
+}
+
+static INLINE void SET_Uniform2i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_Uniform2i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform2iv)(GLint, GLsizei, const GLint *);
+#define CALL_Uniform2iv(disp, parameters) \
+ (* GET_Uniform2iv(disp)) parameters
+static INLINE _glptr_Uniform2iv GET_Uniform2iv(struct _glapi_table *disp) {
+ return (_glptr_Uniform2iv) (GET_by_offset(disp, _gloffset_Uniform2iv));
+}
+
+static INLINE void SET_Uniform2iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, const GLint *)) {
+ SET_by_offset(disp, _gloffset_Uniform2iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform3f)(GLint, GLfloat, GLfloat, GLfloat);
+#define CALL_Uniform3f(disp, parameters) \
+ (* GET_Uniform3f(disp)) parameters
+static INLINE _glptr_Uniform3f GET_Uniform3f(struct _glapi_table *disp) {
+ return (_glptr_Uniform3f) (GET_by_offset(disp, _gloffset_Uniform3f));
+}
+
+static INLINE void SET_Uniform3f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Uniform3f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform3fv)(GLint, GLsizei, const GLfloat *);
+#define CALL_Uniform3fv(disp, parameters) \
+ (* GET_Uniform3fv(disp)) parameters
+static INLINE _glptr_Uniform3fv GET_Uniform3fv(struct _glapi_table *disp) {
+ return (_glptr_Uniform3fv) (GET_by_offset(disp, _gloffset_Uniform3fv));
+}
+
+static INLINE void SET_Uniform3fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_Uniform3fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform3i)(GLint, GLint, GLint, GLint);
+#define CALL_Uniform3i(disp, parameters) \
+ (* GET_Uniform3i(disp)) parameters
+static INLINE _glptr_Uniform3i GET_Uniform3i(struct _glapi_table *disp) {
+ return (_glptr_Uniform3i) (GET_by_offset(disp, _gloffset_Uniform3i));
+}
+
+static INLINE void SET_Uniform3i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_Uniform3i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform3iv)(GLint, GLsizei, const GLint *);
+#define CALL_Uniform3iv(disp, parameters) \
+ (* GET_Uniform3iv(disp)) parameters
+static INLINE _glptr_Uniform3iv GET_Uniform3iv(struct _glapi_table *disp) {
+ return (_glptr_Uniform3iv) (GET_by_offset(disp, _gloffset_Uniform3iv));
+}
+
+static INLINE void SET_Uniform3iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, const GLint *)) {
+ SET_by_offset(disp, _gloffset_Uniform3iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform4f)(GLint, GLfloat, GLfloat, GLfloat, GLfloat);
+#define CALL_Uniform4f(disp, parameters) \
+ (* GET_Uniform4f(disp)) parameters
+static INLINE _glptr_Uniform4f GET_Uniform4f(struct _glapi_table *disp) {
+ return (_glptr_Uniform4f) (GET_by_offset(disp, _gloffset_Uniform4f));
+}
+
+static INLINE void SET_Uniform4f(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLfloat, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Uniform4f, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform4fv)(GLint, GLsizei, const GLfloat *);
+#define CALL_Uniform4fv(disp, parameters) \
+ (* GET_Uniform4fv(disp)) parameters
+static INLINE _glptr_Uniform4fv GET_Uniform4fv(struct _glapi_table *disp) {
+ return (_glptr_Uniform4fv) (GET_by_offset(disp, _gloffset_Uniform4fv));
+}
+
+static INLINE void SET_Uniform4fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_Uniform4fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform4i)(GLint, GLint, GLint, GLint, GLint);
+#define CALL_Uniform4i(disp, parameters) \
+ (* GET_Uniform4i(disp)) parameters
+static INLINE _glptr_Uniform4i GET_Uniform4i(struct _glapi_table *disp) {
+ return (_glptr_Uniform4i) (GET_by_offset(disp, _gloffset_Uniform4i));
+}
+
+static INLINE void SET_Uniform4i(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_Uniform4i, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform4iv)(GLint, GLsizei, const GLint *);
+#define CALL_Uniform4iv(disp, parameters) \
+ (* GET_Uniform4iv(disp)) parameters
+static INLINE _glptr_Uniform4iv GET_Uniform4iv(struct _glapi_table *disp) {
+ return (_glptr_Uniform4iv) (GET_by_offset(disp, _gloffset_Uniform4iv));
+}
+
+static INLINE void SET_Uniform4iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, const GLint *)) {
+ SET_by_offset(disp, _gloffset_Uniform4iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_UniformMatrix2fv)(GLint, GLsizei, GLboolean, const GLfloat *);
+#define CALL_UniformMatrix2fv(disp, parameters) \
+ (* GET_UniformMatrix2fv(disp)) parameters
+static INLINE _glptr_UniformMatrix2fv GET_UniformMatrix2fv(struct _glapi_table *disp) {
+ return (_glptr_UniformMatrix2fv) (GET_by_offset(disp, _gloffset_UniformMatrix2fv));
+}
+
+static INLINE void SET_UniformMatrix2fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, GLboolean, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_UniformMatrix2fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_UniformMatrix3fv)(GLint, GLsizei, GLboolean, const GLfloat *);
+#define CALL_UniformMatrix3fv(disp, parameters) \
+ (* GET_UniformMatrix3fv(disp)) parameters
+static INLINE _glptr_UniformMatrix3fv GET_UniformMatrix3fv(struct _glapi_table *disp) {
+ return (_glptr_UniformMatrix3fv) (GET_by_offset(disp, _gloffset_UniformMatrix3fv));
+}
+
+static INLINE void SET_UniformMatrix3fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, GLboolean, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_UniformMatrix3fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_UniformMatrix4fv)(GLint, GLsizei, GLboolean, const GLfloat *);
+#define CALL_UniformMatrix4fv(disp, parameters) \
+ (* GET_UniformMatrix4fv(disp)) parameters
+static INLINE _glptr_UniformMatrix4fv GET_UniformMatrix4fv(struct _glapi_table *disp) {
+ return (_glptr_UniformMatrix4fv) (GET_by_offset(disp, _gloffset_UniformMatrix4fv));
+}
+
+static INLINE void SET_UniformMatrix4fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, GLboolean, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_UniformMatrix4fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_UseProgram)(GLuint);
+#define CALL_UseProgram(disp, parameters) \
+ (* GET_UseProgram(disp)) parameters
+static INLINE _glptr_UseProgram GET_UseProgram(struct _glapi_table *disp) {
+ return (_glptr_UseProgram) (GET_by_offset(disp, _gloffset_UseProgram));
+}
+
+static INLINE void SET_UseProgram(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_UseProgram, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ValidateProgram)(GLuint);
+#define CALL_ValidateProgram(disp, parameters) \
+ (* GET_ValidateProgram(disp)) parameters
+static INLINE _glptr_ValidateProgram GET_ValidateProgram(struct _glapi_table *disp) {
+ return (_glptr_ValidateProgram) (GET_by_offset(disp, _gloffset_ValidateProgram));
+}
+
+static INLINE void SET_ValidateProgram(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_ValidateProgram, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib1d)(GLuint, GLdouble);
+#define CALL_VertexAttrib1d(disp, parameters) \
+ (* GET_VertexAttrib1d(disp)) parameters
+static INLINE _glptr_VertexAttrib1d GET_VertexAttrib1d(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib1d) (GET_by_offset(disp, _gloffset_VertexAttrib1d));
+}
+
+static INLINE void SET_VertexAttrib1d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLdouble)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib1d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib1dv)(GLuint, const GLdouble *);
+#define CALL_VertexAttrib1dv(disp, parameters) \
+ (* GET_VertexAttrib1dv(disp)) parameters
+static INLINE _glptr_VertexAttrib1dv GET_VertexAttrib1dv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib1dv) (GET_by_offset(disp, _gloffset_VertexAttrib1dv));
+}
+
+static INLINE void SET_VertexAttrib1dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib1dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib1s)(GLuint, GLshort);
+#define CALL_VertexAttrib1s(disp, parameters) \
+ (* GET_VertexAttrib1s(disp)) parameters
+static INLINE _glptr_VertexAttrib1s GET_VertexAttrib1s(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib1s) (GET_by_offset(disp, _gloffset_VertexAttrib1s));
+}
+
+static INLINE void SET_VertexAttrib1s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLshort)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib1s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib1sv)(GLuint, const GLshort *);
+#define CALL_VertexAttrib1sv(disp, parameters) \
+ (* GET_VertexAttrib1sv(disp)) parameters
+static INLINE _glptr_VertexAttrib1sv GET_VertexAttrib1sv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib1sv) (GET_by_offset(disp, _gloffset_VertexAttrib1sv));
+}
+
+static INLINE void SET_VertexAttrib1sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLshort *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib1sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib2d)(GLuint, GLdouble, GLdouble);
+#define CALL_VertexAttrib2d(disp, parameters) \
+ (* GET_VertexAttrib2d(disp)) parameters
+static INLINE _glptr_VertexAttrib2d GET_VertexAttrib2d(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib2d) (GET_by_offset(disp, _gloffset_VertexAttrib2d));
+}
+
+static INLINE void SET_VertexAttrib2d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib2d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib2dv)(GLuint, const GLdouble *);
+#define CALL_VertexAttrib2dv(disp, parameters) \
+ (* GET_VertexAttrib2dv(disp)) parameters
+static INLINE _glptr_VertexAttrib2dv GET_VertexAttrib2dv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib2dv) (GET_by_offset(disp, _gloffset_VertexAttrib2dv));
+}
+
+static INLINE void SET_VertexAttrib2dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib2dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib2s)(GLuint, GLshort, GLshort);
+#define CALL_VertexAttrib2s(disp, parameters) \
+ (* GET_VertexAttrib2s(disp)) parameters
+static INLINE _glptr_VertexAttrib2s GET_VertexAttrib2s(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib2s) (GET_by_offset(disp, _gloffset_VertexAttrib2s));
+}
+
+static INLINE void SET_VertexAttrib2s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib2s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib2sv)(GLuint, const GLshort *);
+#define CALL_VertexAttrib2sv(disp, parameters) \
+ (* GET_VertexAttrib2sv(disp)) parameters
+static INLINE _glptr_VertexAttrib2sv GET_VertexAttrib2sv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib2sv) (GET_by_offset(disp, _gloffset_VertexAttrib2sv));
+}
+
+static INLINE void SET_VertexAttrib2sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLshort *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib2sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib3d)(GLuint, GLdouble, GLdouble, GLdouble);
+#define CALL_VertexAttrib3d(disp, parameters) \
+ (* GET_VertexAttrib3d(disp)) parameters
+static INLINE _glptr_VertexAttrib3d GET_VertexAttrib3d(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib3d) (GET_by_offset(disp, _gloffset_VertexAttrib3d));
+}
+
+static INLINE void SET_VertexAttrib3d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib3d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib3dv)(GLuint, const GLdouble *);
+#define CALL_VertexAttrib3dv(disp, parameters) \
+ (* GET_VertexAttrib3dv(disp)) parameters
+static INLINE _glptr_VertexAttrib3dv GET_VertexAttrib3dv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib3dv) (GET_by_offset(disp, _gloffset_VertexAttrib3dv));
+}
+
+static INLINE void SET_VertexAttrib3dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib3dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib3s)(GLuint, GLshort, GLshort, GLshort);
+#define CALL_VertexAttrib3s(disp, parameters) \
+ (* GET_VertexAttrib3s(disp)) parameters
+static INLINE _glptr_VertexAttrib3s GET_VertexAttrib3s(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib3s) (GET_by_offset(disp, _gloffset_VertexAttrib3s));
+}
+
+static INLINE void SET_VertexAttrib3s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib3s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib3sv)(GLuint, const GLshort *);
+#define CALL_VertexAttrib3sv(disp, parameters) \
+ (* GET_VertexAttrib3sv(disp)) parameters
+static INLINE _glptr_VertexAttrib3sv GET_VertexAttrib3sv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib3sv) (GET_by_offset(disp, _gloffset_VertexAttrib3sv));
+}
+
+static INLINE void SET_VertexAttrib3sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLshort *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib3sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4Nbv)(GLuint, const GLbyte *);
+#define CALL_VertexAttrib4Nbv(disp, parameters) \
+ (* GET_VertexAttrib4Nbv(disp)) parameters
+static INLINE _glptr_VertexAttrib4Nbv GET_VertexAttrib4Nbv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4Nbv) (GET_by_offset(disp, _gloffset_VertexAttrib4Nbv));
+}
+
+static INLINE void SET_VertexAttrib4Nbv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLbyte *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4Nbv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4Niv)(GLuint, const GLint *);
+#define CALL_VertexAttrib4Niv(disp, parameters) \
+ (* GET_VertexAttrib4Niv(disp)) parameters
+static INLINE _glptr_VertexAttrib4Niv GET_VertexAttrib4Niv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4Niv) (GET_by_offset(disp, _gloffset_VertexAttrib4Niv));
+}
+
+static INLINE void SET_VertexAttrib4Niv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLint *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4Niv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4Nsv)(GLuint, const GLshort *);
+#define CALL_VertexAttrib4Nsv(disp, parameters) \
+ (* GET_VertexAttrib4Nsv(disp)) parameters
+static INLINE _glptr_VertexAttrib4Nsv GET_VertexAttrib4Nsv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4Nsv) (GET_by_offset(disp, _gloffset_VertexAttrib4Nsv));
+}
+
+static INLINE void SET_VertexAttrib4Nsv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLshort *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4Nsv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4Nub)(GLuint, GLubyte, GLubyte, GLubyte, GLubyte);
+#define CALL_VertexAttrib4Nub(disp, parameters) \
+ (* GET_VertexAttrib4Nub(disp)) parameters
+static INLINE _glptr_VertexAttrib4Nub GET_VertexAttrib4Nub(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4Nub) (GET_by_offset(disp, _gloffset_VertexAttrib4Nub));
+}
+
+static INLINE void SET_VertexAttrib4Nub(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLubyte, GLubyte, GLubyte, GLubyte)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4Nub, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4Nubv)(GLuint, const GLubyte *);
+#define CALL_VertexAttrib4Nubv(disp, parameters) \
+ (* GET_VertexAttrib4Nubv(disp)) parameters
+static INLINE _glptr_VertexAttrib4Nubv GET_VertexAttrib4Nubv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4Nubv) (GET_by_offset(disp, _gloffset_VertexAttrib4Nubv));
+}
+
+static INLINE void SET_VertexAttrib4Nubv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLubyte *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4Nubv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4Nuiv)(GLuint, const GLuint *);
+#define CALL_VertexAttrib4Nuiv(disp, parameters) \
+ (* GET_VertexAttrib4Nuiv(disp)) parameters
+static INLINE _glptr_VertexAttrib4Nuiv GET_VertexAttrib4Nuiv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4Nuiv) (GET_by_offset(disp, _gloffset_VertexAttrib4Nuiv));
+}
+
+static INLINE void SET_VertexAttrib4Nuiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4Nuiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4Nusv)(GLuint, const GLushort *);
+#define CALL_VertexAttrib4Nusv(disp, parameters) \
+ (* GET_VertexAttrib4Nusv(disp)) parameters
+static INLINE _glptr_VertexAttrib4Nusv GET_VertexAttrib4Nusv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4Nusv) (GET_by_offset(disp, _gloffset_VertexAttrib4Nusv));
+}
+
+static INLINE void SET_VertexAttrib4Nusv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLushort *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4Nusv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4bv)(GLuint, const GLbyte *);
+#define CALL_VertexAttrib4bv(disp, parameters) \
+ (* GET_VertexAttrib4bv(disp)) parameters
+static INLINE _glptr_VertexAttrib4bv GET_VertexAttrib4bv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4bv) (GET_by_offset(disp, _gloffset_VertexAttrib4bv));
+}
+
+static INLINE void SET_VertexAttrib4bv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLbyte *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4bv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4d)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
+#define CALL_VertexAttrib4d(disp, parameters) \
+ (* GET_VertexAttrib4d(disp)) parameters
+static INLINE _glptr_VertexAttrib4d GET_VertexAttrib4d(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4d) (GET_by_offset(disp, _gloffset_VertexAttrib4d));
+}
+
+static INLINE void SET_VertexAttrib4d(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4d, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4dv)(GLuint, const GLdouble *);
+#define CALL_VertexAttrib4dv(disp, parameters) \
+ (* GET_VertexAttrib4dv(disp)) parameters
+static INLINE _glptr_VertexAttrib4dv GET_VertexAttrib4dv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4dv) (GET_by_offset(disp, _gloffset_VertexAttrib4dv));
+}
+
+static INLINE void SET_VertexAttrib4dv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4dv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4iv)(GLuint, const GLint *);
+#define CALL_VertexAttrib4iv(disp, parameters) \
+ (* GET_VertexAttrib4iv(disp)) parameters
+static INLINE _glptr_VertexAttrib4iv GET_VertexAttrib4iv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4iv) (GET_by_offset(disp, _gloffset_VertexAttrib4iv));
+}
+
+static INLINE void SET_VertexAttrib4iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLint *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4s)(GLuint, GLshort, GLshort, GLshort, GLshort);
+#define CALL_VertexAttrib4s(disp, parameters) \
+ (* GET_VertexAttrib4s(disp)) parameters
+static INLINE _glptr_VertexAttrib4s GET_VertexAttrib4s(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4s) (GET_by_offset(disp, _gloffset_VertexAttrib4s));
+}
+
+static INLINE void SET_VertexAttrib4s(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLshort, GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4s, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4sv)(GLuint, const GLshort *);
+#define CALL_VertexAttrib4sv(disp, parameters) \
+ (* GET_VertexAttrib4sv(disp)) parameters
+static INLINE _glptr_VertexAttrib4sv GET_VertexAttrib4sv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4sv) (GET_by_offset(disp, _gloffset_VertexAttrib4sv));
+}
+
+static INLINE void SET_VertexAttrib4sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLshort *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4ubv)(GLuint, const GLubyte *);
+#define CALL_VertexAttrib4ubv(disp, parameters) \
+ (* GET_VertexAttrib4ubv(disp)) parameters
+static INLINE _glptr_VertexAttrib4ubv GET_VertexAttrib4ubv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4ubv) (GET_by_offset(disp, _gloffset_VertexAttrib4ubv));
+}
+
+static INLINE void SET_VertexAttrib4ubv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLubyte *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4ubv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4uiv)(GLuint, const GLuint *);
+#define CALL_VertexAttrib4uiv(disp, parameters) \
+ (* GET_VertexAttrib4uiv(disp)) parameters
+static INLINE _glptr_VertexAttrib4uiv GET_VertexAttrib4uiv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4uiv) (GET_by_offset(disp, _gloffset_VertexAttrib4uiv));
+}
+
+static INLINE void SET_VertexAttrib4uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4usv)(GLuint, const GLushort *);
+#define CALL_VertexAttrib4usv(disp, parameters) \
+ (* GET_VertexAttrib4usv(disp)) parameters
+static INLINE _glptr_VertexAttrib4usv GET_VertexAttrib4usv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4usv) (GET_by_offset(disp, _gloffset_VertexAttrib4usv));
+}
+
+static INLINE void SET_VertexAttrib4usv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLushort *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4usv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribPointer)(GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *);
+#define CALL_VertexAttribPointer(disp, parameters) \
+ (* GET_VertexAttribPointer(disp)) parameters
+static INLINE _glptr_VertexAttribPointer GET_VertexAttribPointer(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribPointer) (GET_by_offset(disp, _gloffset_VertexAttribPointer));
+}
+
+static INLINE void SET_VertexAttribPointer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribPointer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_UniformMatrix2x3fv)(GLint, GLsizei, GLboolean, const GLfloat *);
+#define CALL_UniformMatrix2x3fv(disp, parameters) \
+ (* GET_UniformMatrix2x3fv(disp)) parameters
+static INLINE _glptr_UniformMatrix2x3fv GET_UniformMatrix2x3fv(struct _glapi_table *disp) {
+ return (_glptr_UniformMatrix2x3fv) (GET_by_offset(disp, _gloffset_UniformMatrix2x3fv));
+}
+
+static INLINE void SET_UniformMatrix2x3fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, GLboolean, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_UniformMatrix2x3fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_UniformMatrix2x4fv)(GLint, GLsizei, GLboolean, const GLfloat *);
+#define CALL_UniformMatrix2x4fv(disp, parameters) \
+ (* GET_UniformMatrix2x4fv(disp)) parameters
+static INLINE _glptr_UniformMatrix2x4fv GET_UniformMatrix2x4fv(struct _glapi_table *disp) {
+ return (_glptr_UniformMatrix2x4fv) (GET_by_offset(disp, _gloffset_UniformMatrix2x4fv));
+}
+
+static INLINE void SET_UniformMatrix2x4fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, GLboolean, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_UniformMatrix2x4fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_UniformMatrix3x2fv)(GLint, GLsizei, GLboolean, const GLfloat *);
+#define CALL_UniformMatrix3x2fv(disp, parameters) \
+ (* GET_UniformMatrix3x2fv(disp)) parameters
+static INLINE _glptr_UniformMatrix3x2fv GET_UniformMatrix3x2fv(struct _glapi_table *disp) {
+ return (_glptr_UniformMatrix3x2fv) (GET_by_offset(disp, _gloffset_UniformMatrix3x2fv));
+}
+
+static INLINE void SET_UniformMatrix3x2fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, GLboolean, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_UniformMatrix3x2fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_UniformMatrix3x4fv)(GLint, GLsizei, GLboolean, const GLfloat *);
+#define CALL_UniformMatrix3x4fv(disp, parameters) \
+ (* GET_UniformMatrix3x4fv(disp)) parameters
+static INLINE _glptr_UniformMatrix3x4fv GET_UniformMatrix3x4fv(struct _glapi_table *disp) {
+ return (_glptr_UniformMatrix3x4fv) (GET_by_offset(disp, _gloffset_UniformMatrix3x4fv));
+}
+
+static INLINE void SET_UniformMatrix3x4fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, GLboolean, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_UniformMatrix3x4fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_UniformMatrix4x2fv)(GLint, GLsizei, GLboolean, const GLfloat *);
+#define CALL_UniformMatrix4x2fv(disp, parameters) \
+ (* GET_UniformMatrix4x2fv(disp)) parameters
+static INLINE _glptr_UniformMatrix4x2fv GET_UniformMatrix4x2fv(struct _glapi_table *disp) {
+ return (_glptr_UniformMatrix4x2fv) (GET_by_offset(disp, _gloffset_UniformMatrix4x2fv));
+}
+
+static INLINE void SET_UniformMatrix4x2fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, GLboolean, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_UniformMatrix4x2fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_UniformMatrix4x3fv)(GLint, GLsizei, GLboolean, const GLfloat *);
+#define CALL_UniformMatrix4x3fv(disp, parameters) \
+ (* GET_UniformMatrix4x3fv(disp)) parameters
+static INLINE _glptr_UniformMatrix4x3fv GET_UniformMatrix4x3fv(struct _glapi_table *disp) {
+ return (_glptr_UniformMatrix4x3fv) (GET_by_offset(disp, _gloffset_UniformMatrix4x3fv));
+}
+
+static INLINE void SET_UniformMatrix4x3fv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, GLboolean, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_UniformMatrix4x3fv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BeginConditionalRender)(GLuint, GLenum);
+#define CALL_BeginConditionalRender(disp, parameters) \
+ (* GET_BeginConditionalRender(disp)) parameters
+static INLINE _glptr_BeginConditionalRender GET_BeginConditionalRender(struct _glapi_table *disp) {
+ return (_glptr_BeginConditionalRender) (GET_by_offset(disp, _gloffset_BeginConditionalRender));
+}
+
+static INLINE void SET_BeginConditionalRender(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum)) {
+ SET_by_offset(disp, _gloffset_BeginConditionalRender, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BeginTransformFeedback)(GLenum);
+#define CALL_BeginTransformFeedback(disp, parameters) \
+ (* GET_BeginTransformFeedback(disp)) parameters
+static INLINE _glptr_BeginTransformFeedback GET_BeginTransformFeedback(struct _glapi_table *disp) {
+ return (_glptr_BeginTransformFeedback) (GET_by_offset(disp, _gloffset_BeginTransformFeedback));
+}
+
+static INLINE void SET_BeginTransformFeedback(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_BeginTransformFeedback, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BindBufferBase)(GLenum, GLuint, GLuint);
+#define CALL_BindBufferBase(disp, parameters) \
+ (* GET_BindBufferBase(disp)) parameters
+static INLINE _glptr_BindBufferBase GET_BindBufferBase(struct _glapi_table *disp) {
+ return (_glptr_BindBufferBase) (GET_by_offset(disp, _gloffset_BindBufferBase));
+}
+
+static INLINE void SET_BindBufferBase(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_BindBufferBase, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BindBufferRange)(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr);
+#define CALL_BindBufferRange(disp, parameters) \
+ (* GET_BindBufferRange(disp)) parameters
+static INLINE _glptr_BindBufferRange GET_BindBufferRange(struct _glapi_table *disp) {
+ return (_glptr_BindBufferRange) (GET_by_offset(disp, _gloffset_BindBufferRange));
+}
+
+static INLINE void SET_BindBufferRange(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr)) {
+ SET_by_offset(disp, _gloffset_BindBufferRange, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BindFragDataLocation)(GLuint, GLuint, const GLchar *);
+#define CALL_BindFragDataLocation(disp, parameters) \
+ (* GET_BindFragDataLocation(disp)) parameters
+static INLINE _glptr_BindFragDataLocation GET_BindFragDataLocation(struct _glapi_table *disp) {
+ return (_glptr_BindFragDataLocation) (GET_by_offset(disp, _gloffset_BindFragDataLocation));
+}
+
+static INLINE void SET_BindFragDataLocation(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, const GLchar *)) {
+ SET_by_offset(disp, _gloffset_BindFragDataLocation, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ClampColor)(GLenum, GLenum);
+#define CALL_ClampColor(disp, parameters) \
+ (* GET_ClampColor(disp)) parameters
+static INLINE _glptr_ClampColor GET_ClampColor(struct _glapi_table *disp) {
+ return (_glptr_ClampColor) (GET_by_offset(disp, _gloffset_ClampColor));
+}
+
+static INLINE void SET_ClampColor(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum)) {
+ SET_by_offset(disp, _gloffset_ClampColor, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ClearBufferfi)(GLenum, GLint, GLfloat, GLint);
+#define CALL_ClearBufferfi(disp, parameters) \
+ (* GET_ClearBufferfi(disp)) parameters
+static INLINE _glptr_ClearBufferfi GET_ClearBufferfi(struct _glapi_table *disp) {
+ return (_glptr_ClearBufferfi) (GET_by_offset(disp, _gloffset_ClearBufferfi));
+}
+
+static INLINE void SET_ClearBufferfi(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLfloat, GLint)) {
+ SET_by_offset(disp, _gloffset_ClearBufferfi, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ClearBufferfv)(GLenum, GLint, const GLfloat *);
+#define CALL_ClearBufferfv(disp, parameters) \
+ (* GET_ClearBufferfv(disp)) parameters
+static INLINE _glptr_ClearBufferfv GET_ClearBufferfv(struct _glapi_table *disp) {
+ return (_glptr_ClearBufferfv) (GET_by_offset(disp, _gloffset_ClearBufferfv));
+}
+
+static INLINE void SET_ClearBufferfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_ClearBufferfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ClearBufferiv)(GLenum, GLint, const GLint *);
+#define CALL_ClearBufferiv(disp, parameters) \
+ (* GET_ClearBufferiv(disp)) parameters
+static INLINE _glptr_ClearBufferiv GET_ClearBufferiv(struct _glapi_table *disp) {
+ return (_glptr_ClearBufferiv) (GET_by_offset(disp, _gloffset_ClearBufferiv));
+}
+
+static INLINE void SET_ClearBufferiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, const GLint *)) {
+ SET_by_offset(disp, _gloffset_ClearBufferiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ClearBufferuiv)(GLenum, GLint, const GLuint *);
+#define CALL_ClearBufferuiv(disp, parameters) \
+ (* GET_ClearBufferuiv(disp)) parameters
+static INLINE _glptr_ClearBufferuiv GET_ClearBufferuiv(struct _glapi_table *disp) {
+ return (_glptr_ClearBufferuiv) (GET_by_offset(disp, _gloffset_ClearBufferuiv));
+}
+
+static INLINE void SET_ClearBufferuiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_ClearBufferuiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ColorMaski)(GLuint, GLboolean, GLboolean, GLboolean, GLboolean);
+#define CALL_ColorMaski(disp, parameters) \
+ (* GET_ColorMaski(disp)) parameters
+static INLINE _glptr_ColorMaski GET_ColorMaski(struct _glapi_table *disp) {
+ return (_glptr_ColorMaski) (GET_by_offset(disp, _gloffset_ColorMaski));
+}
+
+static INLINE void SET_ColorMaski(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLboolean, GLboolean, GLboolean, GLboolean)) {
+ SET_by_offset(disp, _gloffset_ColorMaski, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Disablei)(GLenum, GLuint);
+#define CALL_Disablei(disp, parameters) \
+ (* GET_Disablei(disp)) parameters
+static INLINE _glptr_Disablei GET_Disablei(struct _glapi_table *disp) {
+ return (_glptr_Disablei) (GET_by_offset(disp, _gloffset_Disablei));
+}
+
+static INLINE void SET_Disablei(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_Disablei, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Enablei)(GLenum, GLuint);
+#define CALL_Enablei(disp, parameters) \
+ (* GET_Enablei(disp)) parameters
+static INLINE _glptr_Enablei GET_Enablei(struct _glapi_table *disp) {
+ return (_glptr_Enablei) (GET_by_offset(disp, _gloffset_Enablei));
+}
+
+static INLINE void SET_Enablei(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_Enablei, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EndConditionalRender)(void);
+#define CALL_EndConditionalRender(disp, parameters) \
+ (* GET_EndConditionalRender(disp)) parameters
+static INLINE _glptr_EndConditionalRender GET_EndConditionalRender(struct _glapi_table *disp) {
+ return (_glptr_EndConditionalRender) (GET_by_offset(disp, _gloffset_EndConditionalRender));
+}
+
+static INLINE void SET_EndConditionalRender(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_EndConditionalRender, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EndTransformFeedback)(void);
+#define CALL_EndTransformFeedback(disp, parameters) \
+ (* GET_EndTransformFeedback(disp)) parameters
+static INLINE _glptr_EndTransformFeedback GET_EndTransformFeedback(struct _glapi_table *disp) {
+ return (_glptr_EndTransformFeedback) (GET_by_offset(disp, _gloffset_EndTransformFeedback));
+}
+
+static INLINE void SET_EndTransformFeedback(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_EndTransformFeedback, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetBooleani_v)(GLenum, GLuint, GLboolean *);
+#define CALL_GetBooleani_v(disp, parameters) \
+ (* GET_GetBooleani_v(disp)) parameters
+static INLINE _glptr_GetBooleani_v GET_GetBooleani_v(struct _glapi_table *disp) {
+ return (_glptr_GetBooleani_v) (GET_by_offset(disp, _gloffset_GetBooleani_v));
+}
+
+static INLINE void SET_GetBooleani_v(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLboolean *)) {
+ SET_by_offset(disp, _gloffset_GetBooleani_v, fn);
+}
+
+typedef GLint (GLAPIENTRYP _glptr_GetFragDataLocation)(GLuint, const GLchar *);
+#define CALL_GetFragDataLocation(disp, parameters) \
+ (* GET_GetFragDataLocation(disp)) parameters
+static INLINE _glptr_GetFragDataLocation GET_GetFragDataLocation(struct _glapi_table *disp) {
+ return (_glptr_GetFragDataLocation) (GET_by_offset(disp, _gloffset_GetFragDataLocation));
+}
+
+static INLINE void SET_GetFragDataLocation(struct _glapi_table *disp, GLint (GLAPIENTRYP fn)(GLuint, const GLchar *)) {
+ SET_by_offset(disp, _gloffset_GetFragDataLocation, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetIntegeri_v)(GLenum, GLuint, GLint *);
+#define CALL_GetIntegeri_v(disp, parameters) \
+ (* GET_GetIntegeri_v(disp)) parameters
+static INLINE _glptr_GetIntegeri_v GET_GetIntegeri_v(struct _glapi_table *disp) {
+ return (_glptr_GetIntegeri_v) (GET_by_offset(disp, _gloffset_GetIntegeri_v));
+}
+
+static INLINE void SET_GetIntegeri_v(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetIntegeri_v, fn);
+}
+
+typedef const GLubyte * (GLAPIENTRYP _glptr_GetStringi)(GLenum, GLuint);
+#define CALL_GetStringi(disp, parameters) \
+ (* GET_GetStringi(disp)) parameters
+static INLINE _glptr_GetStringi GET_GetStringi(struct _glapi_table *disp) {
+ return (_glptr_GetStringi) (GET_by_offset(disp, _gloffset_GetStringi));
+}
+
+static INLINE void SET_GetStringi(struct _glapi_table *disp, const GLubyte * (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_GetStringi, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetTexParameterIiv)(GLenum, GLenum, GLint *);
+#define CALL_GetTexParameterIiv(disp, parameters) \
+ (* GET_GetTexParameterIiv(disp)) parameters
+static INLINE _glptr_GetTexParameterIiv GET_GetTexParameterIiv(struct _glapi_table *disp) {
+ return (_glptr_GetTexParameterIiv) (GET_by_offset(disp, _gloffset_GetTexParameterIiv));
+}
+
+static INLINE void SET_GetTexParameterIiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetTexParameterIiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetTexParameterIuiv)(GLenum, GLenum, GLuint *);
+#define CALL_GetTexParameterIuiv(disp, parameters) \
+ (* GET_GetTexParameterIuiv(disp)) parameters
+static INLINE _glptr_GetTexParameterIuiv GET_GetTexParameterIuiv(struct _glapi_table *disp) {
+ return (_glptr_GetTexParameterIuiv) (GET_by_offset(disp, _gloffset_GetTexParameterIuiv));
+}
+
+static INLINE void SET_GetTexParameterIuiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GetTexParameterIuiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetTransformFeedbackVarying)(GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *);
+#define CALL_GetTransformFeedbackVarying(disp, parameters) \
+ (* GET_GetTransformFeedbackVarying(disp)) parameters
+static INLINE _glptr_GetTransformFeedbackVarying GET_GetTransformFeedbackVarying(struct _glapi_table *disp) {
+ return (_glptr_GetTransformFeedbackVarying) (GET_by_offset(disp, _gloffset_GetTransformFeedbackVarying));
+}
+
+static INLINE void SET_GetTransformFeedbackVarying(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *)) {
+ SET_by_offset(disp, _gloffset_GetTransformFeedbackVarying, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetUniformuiv)(GLuint, GLint, GLuint *);
+#define CALL_GetUniformuiv(disp, parameters) \
+ (* GET_GetUniformuiv(disp)) parameters
+static INLINE _glptr_GetUniformuiv GET_GetUniformuiv(struct _glapi_table *disp) {
+ return (_glptr_GetUniformuiv) (GET_by_offset(disp, _gloffset_GetUniformuiv));
+}
+
+static INLINE void SET_GetUniformuiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLint, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GetUniformuiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetVertexAttribIiv)(GLuint, GLenum, GLint *);
+#define CALL_GetVertexAttribIiv(disp, parameters) \
+ (* GET_GetVertexAttribIiv(disp)) parameters
+static INLINE _glptr_GetVertexAttribIiv GET_GetVertexAttribIiv(struct _glapi_table *disp) {
+ return (_glptr_GetVertexAttribIiv) (GET_by_offset(disp, _gloffset_GetVertexAttribIiv));
+}
+
+static INLINE void SET_GetVertexAttribIiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetVertexAttribIiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetVertexAttribIuiv)(GLuint, GLenum, GLuint *);
+#define CALL_GetVertexAttribIuiv(disp, parameters) \
+ (* GET_GetVertexAttribIuiv(disp)) parameters
+static INLINE _glptr_GetVertexAttribIuiv GET_GetVertexAttribIuiv(struct _glapi_table *disp) {
+ return (_glptr_GetVertexAttribIuiv) (GET_by_offset(disp, _gloffset_GetVertexAttribIuiv));
+}
+
+static INLINE void SET_GetVertexAttribIuiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GetVertexAttribIuiv, fn);
+}
+
+typedef GLboolean (GLAPIENTRYP _glptr_IsEnabledi)(GLenum, GLuint);
+#define CALL_IsEnabledi(disp, parameters) \
+ (* GET_IsEnabledi(disp)) parameters
+static INLINE _glptr_IsEnabledi GET_IsEnabledi(struct _glapi_table *disp) {
+ return (_glptr_IsEnabledi) (GET_by_offset(disp, _gloffset_IsEnabledi));
+}
+
+static INLINE void SET_IsEnabledi(struct _glapi_table *disp, GLboolean (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_IsEnabledi, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexParameterIiv)(GLenum, GLenum, const GLint *);
+#define CALL_TexParameterIiv(disp, parameters) \
+ (* GET_TexParameterIiv(disp)) parameters
+static INLINE _glptr_TexParameterIiv GET_TexParameterIiv(struct _glapi_table *disp) {
+ return (_glptr_TexParameterIiv) (GET_by_offset(disp, _gloffset_TexParameterIiv));
+}
+
+static INLINE void SET_TexParameterIiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLint *)) {
+ SET_by_offset(disp, _gloffset_TexParameterIiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexParameterIuiv)(GLenum, GLenum, const GLuint *);
+#define CALL_TexParameterIuiv(disp, parameters) \
+ (* GET_TexParameterIuiv(disp)) parameters
+static INLINE _glptr_TexParameterIuiv GET_TexParameterIuiv(struct _glapi_table *disp) {
+ return (_glptr_TexParameterIuiv) (GET_by_offset(disp, _gloffset_TexParameterIuiv));
+}
+
+static INLINE void SET_TexParameterIuiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_TexParameterIuiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TransformFeedbackVaryings)(GLuint, GLsizei, const GLchar * const *, GLenum);
+#define CALL_TransformFeedbackVaryings(disp, parameters) \
+ (* GET_TransformFeedbackVaryings(disp)) parameters
+static INLINE _glptr_TransformFeedbackVaryings GET_TransformFeedbackVaryings(struct _glapi_table *disp) {
+ return (_glptr_TransformFeedbackVaryings) (GET_by_offset(disp, _gloffset_TransformFeedbackVaryings));
+}
+
+static INLINE void SET_TransformFeedbackVaryings(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLchar * const *, GLenum)) {
+ SET_by_offset(disp, _gloffset_TransformFeedbackVaryings, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform1ui)(GLint, GLuint);
+#define CALL_Uniform1ui(disp, parameters) \
+ (* GET_Uniform1ui(disp)) parameters
+static INLINE _glptr_Uniform1ui GET_Uniform1ui(struct _glapi_table *disp) {
+ return (_glptr_Uniform1ui) (GET_by_offset(disp, _gloffset_Uniform1ui));
+}
+
+static INLINE void SET_Uniform1ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLuint)) {
+ SET_by_offset(disp, _gloffset_Uniform1ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform1uiv)(GLint, GLsizei, const GLuint *);
+#define CALL_Uniform1uiv(disp, parameters) \
+ (* GET_Uniform1uiv(disp)) parameters
+static INLINE _glptr_Uniform1uiv GET_Uniform1uiv(struct _glapi_table *disp) {
+ return (_glptr_Uniform1uiv) (GET_by_offset(disp, _gloffset_Uniform1uiv));
+}
+
+static INLINE void SET_Uniform1uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_Uniform1uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform2ui)(GLint, GLuint, GLuint);
+#define CALL_Uniform2ui(disp, parameters) \
+ (* GET_Uniform2ui(disp)) parameters
+static INLINE _glptr_Uniform2ui GET_Uniform2ui(struct _glapi_table *disp) {
+ return (_glptr_Uniform2ui) (GET_by_offset(disp, _gloffset_Uniform2ui));
+}
+
+static INLINE void SET_Uniform2ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_Uniform2ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform2uiv)(GLint, GLsizei, const GLuint *);
+#define CALL_Uniform2uiv(disp, parameters) \
+ (* GET_Uniform2uiv(disp)) parameters
+static INLINE _glptr_Uniform2uiv GET_Uniform2uiv(struct _glapi_table *disp) {
+ return (_glptr_Uniform2uiv) (GET_by_offset(disp, _gloffset_Uniform2uiv));
+}
+
+static INLINE void SET_Uniform2uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_Uniform2uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform3ui)(GLint, GLuint, GLuint, GLuint);
+#define CALL_Uniform3ui(disp, parameters) \
+ (* GET_Uniform3ui(disp)) parameters
+static INLINE _glptr_Uniform3ui GET_Uniform3ui(struct _glapi_table *disp) {
+ return (_glptr_Uniform3ui) (GET_by_offset(disp, _gloffset_Uniform3ui));
+}
+
+static INLINE void SET_Uniform3ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLuint, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_Uniform3ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform3uiv)(GLint, GLsizei, const GLuint *);
+#define CALL_Uniform3uiv(disp, parameters) \
+ (* GET_Uniform3uiv(disp)) parameters
+static INLINE _glptr_Uniform3uiv GET_Uniform3uiv(struct _glapi_table *disp) {
+ return (_glptr_Uniform3uiv) (GET_by_offset(disp, _gloffset_Uniform3uiv));
+}
+
+static INLINE void SET_Uniform3uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_Uniform3uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform4ui)(GLint, GLuint, GLuint, GLuint, GLuint);
+#define CALL_Uniform4ui(disp, parameters) \
+ (* GET_Uniform4ui(disp)) parameters
+static INLINE _glptr_Uniform4ui GET_Uniform4ui(struct _glapi_table *disp) {
+ return (_glptr_Uniform4ui) (GET_by_offset(disp, _gloffset_Uniform4ui));
+}
+
+static INLINE void SET_Uniform4ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLuint, GLuint, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_Uniform4ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Uniform4uiv)(GLint, GLsizei, const GLuint *);
+#define CALL_Uniform4uiv(disp, parameters) \
+ (* GET_Uniform4uiv(disp)) parameters
+static INLINE _glptr_Uniform4uiv GET_Uniform4uiv(struct _glapi_table *disp) {
+ return (_glptr_Uniform4uiv) (GET_by_offset(disp, _gloffset_Uniform4uiv));
+}
+
+static INLINE void SET_Uniform4uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_Uniform4uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI1iv)(GLuint, const GLint *);
+#define CALL_VertexAttribI1iv(disp, parameters) \
+ (* GET_VertexAttribI1iv(disp)) parameters
+static INLINE _glptr_VertexAttribI1iv GET_VertexAttribI1iv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI1iv) (GET_by_offset(disp, _gloffset_VertexAttribI1iv));
+}
+
+static INLINE void SET_VertexAttribI1iv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLint *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI1iv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI1uiv)(GLuint, const GLuint *);
+#define CALL_VertexAttribI1uiv(disp, parameters) \
+ (* GET_VertexAttribI1uiv(disp)) parameters
+static INLINE _glptr_VertexAttribI1uiv GET_VertexAttribI1uiv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI1uiv) (GET_by_offset(disp, _gloffset_VertexAttribI1uiv));
+}
+
+static INLINE void SET_VertexAttribI1uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI1uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI4bv)(GLuint, const GLbyte *);
+#define CALL_VertexAttribI4bv(disp, parameters) \
+ (* GET_VertexAttribI4bv(disp)) parameters
+static INLINE _glptr_VertexAttribI4bv GET_VertexAttribI4bv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI4bv) (GET_by_offset(disp, _gloffset_VertexAttribI4bv));
+}
+
+static INLINE void SET_VertexAttribI4bv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLbyte *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI4bv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI4sv)(GLuint, const GLshort *);
+#define CALL_VertexAttribI4sv(disp, parameters) \
+ (* GET_VertexAttribI4sv(disp)) parameters
+static INLINE _glptr_VertexAttribI4sv GET_VertexAttribI4sv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI4sv) (GET_by_offset(disp, _gloffset_VertexAttribI4sv));
+}
+
+static INLINE void SET_VertexAttribI4sv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLshort *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI4sv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI4ubv)(GLuint, const GLubyte *);
+#define CALL_VertexAttribI4ubv(disp, parameters) \
+ (* GET_VertexAttribI4ubv(disp)) parameters
+static INLINE _glptr_VertexAttribI4ubv GET_VertexAttribI4ubv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI4ubv) (GET_by_offset(disp, _gloffset_VertexAttribI4ubv));
+}
+
+static INLINE void SET_VertexAttribI4ubv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLubyte *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI4ubv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI4usv)(GLuint, const GLushort *);
+#define CALL_VertexAttribI4usv(disp, parameters) \
+ (* GET_VertexAttribI4usv(disp)) parameters
+static INLINE _glptr_VertexAttribI4usv GET_VertexAttribI4usv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI4usv) (GET_by_offset(disp, _gloffset_VertexAttribI4usv));
+}
+
+static INLINE void SET_VertexAttribI4usv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLushort *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI4usv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribIPointer)(GLuint, GLint, GLenum, GLsizei, const GLvoid *);
+#define CALL_VertexAttribIPointer(disp, parameters) \
+ (* GET_VertexAttribIPointer(disp)) parameters
+static INLINE _glptr_VertexAttribIPointer GET_VertexAttribIPointer(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribIPointer) (GET_by_offset(disp, _gloffset_VertexAttribIPointer));
+}
+
+static INLINE void SET_VertexAttribIPointer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLint, GLenum, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribIPointer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PrimitiveRestartIndex)(GLuint);
+#define CALL_PrimitiveRestartIndex(disp, parameters) \
+ (* GET_PrimitiveRestartIndex(disp)) parameters
+static INLINE _glptr_PrimitiveRestartIndex GET_PrimitiveRestartIndex(struct _glapi_table *disp) {
+ return (_glptr_PrimitiveRestartIndex) (GET_by_offset(disp, _gloffset_PrimitiveRestartIndex));
+}
+
+static INLINE void SET_PrimitiveRestartIndex(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_PrimitiveRestartIndex, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexBuffer)(GLenum, GLenum, GLuint);
+#define CALL_TexBuffer(disp, parameters) \
+ (* GET_TexBuffer(disp)) parameters
+static INLINE _glptr_TexBuffer GET_TexBuffer(struct _glapi_table *disp) {
+ return (_glptr_TexBuffer) (GET_by_offset(disp, _gloffset_TexBuffer));
+}
+
+static INLINE void SET_TexBuffer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_TexBuffer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_FramebufferTexture)(GLenum, GLenum, GLuint, GLint);
+#define CALL_FramebufferTexture(disp, parameters) \
+ (* GET_FramebufferTexture(disp)) parameters
+static INLINE _glptr_FramebufferTexture GET_FramebufferTexture(struct _glapi_table *disp) {
+ return (_glptr_FramebufferTexture) (GET_by_offset(disp, _gloffset_FramebufferTexture));
+}
+
+static INLINE void SET_FramebufferTexture(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLuint, GLint)) {
+ SET_by_offset(disp, _gloffset_FramebufferTexture, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetBufferParameteri64v)(GLenum, GLenum, GLint64 *);
+#define CALL_GetBufferParameteri64v(disp, parameters) \
+ (* GET_GetBufferParameteri64v(disp)) parameters
+static INLINE _glptr_GetBufferParameteri64v GET_GetBufferParameteri64v(struct _glapi_table *disp) {
+ return (_glptr_GetBufferParameteri64v) (GET_by_offset(disp, _gloffset_GetBufferParameteri64v));
+}
+
+static INLINE void SET_GetBufferParameteri64v(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint64 *)) {
+ SET_by_offset(disp, _gloffset_GetBufferParameteri64v, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetInteger64i_v)(GLenum, GLuint, GLint64 *);
+#define CALL_GetInteger64i_v(disp, parameters) \
+ (* GET_GetInteger64i_v(disp)) parameters
+static INLINE _glptr_GetInteger64i_v GET_GetInteger64i_v(struct _glapi_table *disp) {
+ return (_glptr_GetInteger64i_v) (GET_by_offset(disp, _gloffset_GetInteger64i_v));
+}
+
+static INLINE void SET_GetInteger64i_v(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLint64 *)) {
+ SET_by_offset(disp, _gloffset_GetInteger64i_v, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribDivisor)(GLuint, GLuint);
+#define CALL_VertexAttribDivisor(disp, parameters) \
+ (* GET_VertexAttribDivisor(disp)) parameters
+static INLINE _glptr_VertexAttribDivisor GET_VertexAttribDivisor(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribDivisor) (GET_by_offset(disp, _gloffset_VertexAttribDivisor));
+}
+
+static INLINE void SET_VertexAttribDivisor(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_VertexAttribDivisor, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MinSampleShading)(GLfloat);
+#define CALL_MinSampleShading(disp, parameters) \
+ (* GET_MinSampleShading(disp)) parameters
+static INLINE _glptr_MinSampleShading GET_MinSampleShading(struct _glapi_table *disp) {
+ return (_glptr_MinSampleShading) (GET_by_offset(disp, _gloffset_MinSampleShading));
+}
+
+static INLINE void SET_MinSampleShading(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat)) {
+ SET_by_offset(disp, _gloffset_MinSampleShading, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BindProgramARB)(GLenum, GLuint);
+#define CALL_BindProgramARB(disp, parameters) \
+ (* GET_BindProgramARB(disp)) parameters
+static INLINE _glptr_BindProgramARB GET_BindProgramARB(struct _glapi_table *disp) {
+ return (_glptr_BindProgramARB) (GET_by_offset(disp, _gloffset_BindProgramARB));
+}
+
+static INLINE void SET_BindProgramARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_BindProgramARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DeleteProgramsARB)(GLsizei, const GLuint *);
+#define CALL_DeleteProgramsARB(disp, parameters) \
+ (* GET_DeleteProgramsARB(disp)) parameters
+static INLINE _glptr_DeleteProgramsARB GET_DeleteProgramsARB(struct _glapi_table *disp) {
+ return (_glptr_DeleteProgramsARB) (GET_by_offset(disp, _gloffset_DeleteProgramsARB));
+}
+
+static INLINE void SET_DeleteProgramsARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_DeleteProgramsARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GenProgramsARB)(GLsizei, GLuint *);
+#define CALL_GenProgramsARB(disp, parameters) \
+ (* GET_GenProgramsARB(disp)) parameters
+static INLINE _glptr_GenProgramsARB GET_GenProgramsARB(struct _glapi_table *disp) {
+ return (_glptr_GenProgramsARB) (GET_by_offset(disp, _gloffset_GenProgramsARB));
+}
+
+static INLINE void SET_GenProgramsARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GenProgramsARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetProgramEnvParameterdvARB)(GLenum, GLuint, GLdouble *);
+#define CALL_GetProgramEnvParameterdvARB(disp, parameters) \
+ (* GET_GetProgramEnvParameterdvARB(disp)) parameters
+static INLINE _glptr_GetProgramEnvParameterdvARB GET_GetProgramEnvParameterdvARB(struct _glapi_table *disp) {
+ return (_glptr_GetProgramEnvParameterdvARB) (GET_by_offset(disp, _gloffset_GetProgramEnvParameterdvARB));
+}
+
+static INLINE void SET_GetProgramEnvParameterdvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLdouble *)) {
+ SET_by_offset(disp, _gloffset_GetProgramEnvParameterdvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetProgramEnvParameterfvARB)(GLenum, GLuint, GLfloat *);
+#define CALL_GetProgramEnvParameterfvARB(disp, parameters) \
+ (* GET_GetProgramEnvParameterfvARB(disp)) parameters
+static INLINE _glptr_GetProgramEnvParameterfvARB GET_GetProgramEnvParameterfvARB(struct _glapi_table *disp) {
+ return (_glptr_GetProgramEnvParameterfvARB) (GET_by_offset(disp, _gloffset_GetProgramEnvParameterfvARB));
+}
+
+static INLINE void SET_GetProgramEnvParameterfvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetProgramEnvParameterfvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetProgramLocalParameterdvARB)(GLenum, GLuint, GLdouble *);
+#define CALL_GetProgramLocalParameterdvARB(disp, parameters) \
+ (* GET_GetProgramLocalParameterdvARB(disp)) parameters
+static INLINE _glptr_GetProgramLocalParameterdvARB GET_GetProgramLocalParameterdvARB(struct _glapi_table *disp) {
+ return (_glptr_GetProgramLocalParameterdvARB) (GET_by_offset(disp, _gloffset_GetProgramLocalParameterdvARB));
+}
+
+static INLINE void SET_GetProgramLocalParameterdvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLdouble *)) {
+ SET_by_offset(disp, _gloffset_GetProgramLocalParameterdvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetProgramLocalParameterfvARB)(GLenum, GLuint, GLfloat *);
+#define CALL_GetProgramLocalParameterfvARB(disp, parameters) \
+ (* GET_GetProgramLocalParameterfvARB(disp)) parameters
+static INLINE _glptr_GetProgramLocalParameterfvARB GET_GetProgramLocalParameterfvARB(struct _glapi_table *disp) {
+ return (_glptr_GetProgramLocalParameterfvARB) (GET_by_offset(disp, _gloffset_GetProgramLocalParameterfvARB));
+}
+
+static INLINE void SET_GetProgramLocalParameterfvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetProgramLocalParameterfvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetProgramStringARB)(GLenum, GLenum, GLvoid *);
+#define CALL_GetProgramStringARB(disp, parameters) \
+ (* GET_GetProgramStringARB(disp)) parameters
+static INLINE _glptr_GetProgramStringARB GET_GetProgramStringARB(struct _glapi_table *disp) {
+ return (_glptr_GetProgramStringARB) (GET_by_offset(disp, _gloffset_GetProgramStringARB));
+}
+
+static INLINE void SET_GetProgramStringARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_GetProgramStringARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetProgramivARB)(GLenum, GLenum, GLint *);
+#define CALL_GetProgramivARB(disp, parameters) \
+ (* GET_GetProgramivARB(disp)) parameters
+static INLINE _glptr_GetProgramivARB GET_GetProgramivARB(struct _glapi_table *disp) {
+ return (_glptr_GetProgramivARB) (GET_by_offset(disp, _gloffset_GetProgramivARB));
+}
+
+static INLINE void SET_GetProgramivARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetProgramivARB, fn);
+}
+
+typedef GLboolean (GLAPIENTRYP _glptr_IsProgramARB)(GLuint);
+#define CALL_IsProgramARB(disp, parameters) \
+ (* GET_IsProgramARB(disp)) parameters
+static INLINE _glptr_IsProgramARB GET_IsProgramARB(struct _glapi_table *disp) {
+ return (_glptr_IsProgramARB) (GET_by_offset(disp, _gloffset_IsProgramARB));
+}
+
+static INLINE void SET_IsProgramARB(struct _glapi_table *disp, GLboolean (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_IsProgramARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProgramEnvParameter4dARB)(GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
+#define CALL_ProgramEnvParameter4dARB(disp, parameters) \
+ (* GET_ProgramEnvParameter4dARB(disp)) parameters
+static INLINE _glptr_ProgramEnvParameter4dARB GET_ProgramEnvParameter4dARB(struct _glapi_table *disp) {
+ return (_glptr_ProgramEnvParameter4dARB) (GET_by_offset(disp, _gloffset_ProgramEnvParameter4dARB));
+}
+
+static INLINE void SET_ProgramEnvParameter4dARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_ProgramEnvParameter4dARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProgramEnvParameter4dvARB)(GLenum, GLuint, const GLdouble *);
+#define CALL_ProgramEnvParameter4dvARB(disp, parameters) \
+ (* GET_ProgramEnvParameter4dvARB(disp)) parameters
+static INLINE _glptr_ProgramEnvParameter4dvARB GET_ProgramEnvParameter4dvARB(struct _glapi_table *disp) {
+ return (_glptr_ProgramEnvParameter4dvARB) (GET_by_offset(disp, _gloffset_ProgramEnvParameter4dvARB));
+}
+
+static INLINE void SET_ProgramEnvParameter4dvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_ProgramEnvParameter4dvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProgramEnvParameter4fARB)(GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
+#define CALL_ProgramEnvParameter4fARB(disp, parameters) \
+ (* GET_ProgramEnvParameter4fARB(disp)) parameters
+static INLINE _glptr_ProgramEnvParameter4fARB GET_ProgramEnvParameter4fARB(struct _glapi_table *disp) {
+ return (_glptr_ProgramEnvParameter4fARB) (GET_by_offset(disp, _gloffset_ProgramEnvParameter4fARB));
+}
+
+static INLINE void SET_ProgramEnvParameter4fARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_ProgramEnvParameter4fARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProgramEnvParameter4fvARB)(GLenum, GLuint, const GLfloat *);
+#define CALL_ProgramEnvParameter4fvARB(disp, parameters) \
+ (* GET_ProgramEnvParameter4fvARB(disp)) parameters
+static INLINE _glptr_ProgramEnvParameter4fvARB GET_ProgramEnvParameter4fvARB(struct _glapi_table *disp) {
+ return (_glptr_ProgramEnvParameter4fvARB) (GET_by_offset(disp, _gloffset_ProgramEnvParameter4fvARB));
+}
+
+static INLINE void SET_ProgramEnvParameter4fvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_ProgramEnvParameter4fvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProgramLocalParameter4dARB)(GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
+#define CALL_ProgramLocalParameter4dARB(disp, parameters) \
+ (* GET_ProgramLocalParameter4dARB(disp)) parameters
+static INLINE _glptr_ProgramLocalParameter4dARB GET_ProgramLocalParameter4dARB(struct _glapi_table *disp) {
+ return (_glptr_ProgramLocalParameter4dARB) (GET_by_offset(disp, _gloffset_ProgramLocalParameter4dARB));
+}
+
+static INLINE void SET_ProgramLocalParameter4dARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_ProgramLocalParameter4dARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProgramLocalParameter4dvARB)(GLenum, GLuint, const GLdouble *);
+#define CALL_ProgramLocalParameter4dvARB(disp, parameters) \
+ (* GET_ProgramLocalParameter4dvARB(disp)) parameters
+static INLINE _glptr_ProgramLocalParameter4dvARB GET_ProgramLocalParameter4dvARB(struct _glapi_table *disp) {
+ return (_glptr_ProgramLocalParameter4dvARB) (GET_by_offset(disp, _gloffset_ProgramLocalParameter4dvARB));
+}
+
+static INLINE void SET_ProgramLocalParameter4dvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_ProgramLocalParameter4dvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProgramLocalParameter4fARB)(GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
+#define CALL_ProgramLocalParameter4fARB(disp, parameters) \
+ (* GET_ProgramLocalParameter4fARB(disp)) parameters
+static INLINE _glptr_ProgramLocalParameter4fARB GET_ProgramLocalParameter4fARB(struct _glapi_table *disp) {
+ return (_glptr_ProgramLocalParameter4fARB) (GET_by_offset(disp, _gloffset_ProgramLocalParameter4fARB));
+}
+
+static INLINE void SET_ProgramLocalParameter4fARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_ProgramLocalParameter4fARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProgramLocalParameter4fvARB)(GLenum, GLuint, const GLfloat *);
+#define CALL_ProgramLocalParameter4fvARB(disp, parameters) \
+ (* GET_ProgramLocalParameter4fvARB(disp)) parameters
+static INLINE _glptr_ProgramLocalParameter4fvARB GET_ProgramLocalParameter4fvARB(struct _glapi_table *disp) {
+ return (_glptr_ProgramLocalParameter4fvARB) (GET_by_offset(disp, _gloffset_ProgramLocalParameter4fvARB));
+}
+
+static INLINE void SET_ProgramLocalParameter4fvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_ProgramLocalParameter4fvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProgramStringARB)(GLenum, GLenum, GLsizei, const GLvoid *);
+#define CALL_ProgramStringARB(disp, parameters) \
+ (* GET_ProgramStringARB(disp)) parameters
+static INLINE _glptr_ProgramStringARB GET_ProgramStringARB(struct _glapi_table *disp) {
+ return (_glptr_ProgramStringARB) (GET_by_offset(disp, _gloffset_ProgramStringARB));
+}
+
+static INLINE void SET_ProgramStringARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_ProgramStringARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib1fARB)(GLuint, GLfloat);
+#define CALL_VertexAttrib1fARB(disp, parameters) \
+ (* GET_VertexAttrib1fARB(disp)) parameters
+static INLINE _glptr_VertexAttrib1fARB GET_VertexAttrib1fARB(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib1fARB) (GET_by_offset(disp, _gloffset_VertexAttrib1fARB));
+}
+
+static INLINE void SET_VertexAttrib1fARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLfloat)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib1fARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib1fvARB)(GLuint, const GLfloat *);
+#define CALL_VertexAttrib1fvARB(disp, parameters) \
+ (* GET_VertexAttrib1fvARB(disp)) parameters
+static INLINE _glptr_VertexAttrib1fvARB GET_VertexAttrib1fvARB(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib1fvARB) (GET_by_offset(disp, _gloffset_VertexAttrib1fvARB));
+}
+
+static INLINE void SET_VertexAttrib1fvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib1fvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib2fARB)(GLuint, GLfloat, GLfloat);
+#define CALL_VertexAttrib2fARB(disp, parameters) \
+ (* GET_VertexAttrib2fARB(disp)) parameters
+static INLINE _glptr_VertexAttrib2fARB GET_VertexAttrib2fARB(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib2fARB) (GET_by_offset(disp, _gloffset_VertexAttrib2fARB));
+}
+
+static INLINE void SET_VertexAttrib2fARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib2fARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib2fvARB)(GLuint, const GLfloat *);
+#define CALL_VertexAttrib2fvARB(disp, parameters) \
+ (* GET_VertexAttrib2fvARB(disp)) parameters
+static INLINE _glptr_VertexAttrib2fvARB GET_VertexAttrib2fvARB(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib2fvARB) (GET_by_offset(disp, _gloffset_VertexAttrib2fvARB));
+}
+
+static INLINE void SET_VertexAttrib2fvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib2fvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib3fARB)(GLuint, GLfloat, GLfloat, GLfloat);
+#define CALL_VertexAttrib3fARB(disp, parameters) \
+ (* GET_VertexAttrib3fARB(disp)) parameters
+static INLINE _glptr_VertexAttrib3fARB GET_VertexAttrib3fARB(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib3fARB) (GET_by_offset(disp, _gloffset_VertexAttrib3fARB));
+}
+
+static INLINE void SET_VertexAttrib3fARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib3fARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib3fvARB)(GLuint, const GLfloat *);
+#define CALL_VertexAttrib3fvARB(disp, parameters) \
+ (* GET_VertexAttrib3fvARB(disp)) parameters
+static INLINE _glptr_VertexAttrib3fvARB GET_VertexAttrib3fvARB(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib3fvARB) (GET_by_offset(disp, _gloffset_VertexAttrib3fvARB));
+}
+
+static INLINE void SET_VertexAttrib3fvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib3fvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4fARB)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
+#define CALL_VertexAttrib4fARB(disp, parameters) \
+ (* GET_VertexAttrib4fARB(disp)) parameters
+static INLINE _glptr_VertexAttrib4fARB GET_VertexAttrib4fARB(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4fARB) (GET_by_offset(disp, _gloffset_VertexAttrib4fARB));
+}
+
+static INLINE void SET_VertexAttrib4fARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4fARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4fvARB)(GLuint, const GLfloat *);
+#define CALL_VertexAttrib4fvARB(disp, parameters) \
+ (* GET_VertexAttrib4fvARB(disp)) parameters
+static INLINE _glptr_VertexAttrib4fvARB GET_VertexAttrib4fvARB(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4fvARB) (GET_by_offset(disp, _gloffset_VertexAttrib4fvARB));
+}
+
+static INLINE void SET_VertexAttrib4fvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4fvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_AttachObjectARB)(GLhandleARB, GLhandleARB);
+#define CALL_AttachObjectARB(disp, parameters) \
+ (* GET_AttachObjectARB(disp)) parameters
+static INLINE _glptr_AttachObjectARB GET_AttachObjectARB(struct _glapi_table *disp) {
+ return (_glptr_AttachObjectARB) (GET_by_offset(disp, _gloffset_AttachObjectARB));
+}
+
+static INLINE void SET_AttachObjectARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLhandleARB, GLhandleARB)) {
+ SET_by_offset(disp, _gloffset_AttachObjectARB, fn);
+}
+
+typedef GLhandleARB (GLAPIENTRYP _glptr_CreateProgramObjectARB)(void);
+#define CALL_CreateProgramObjectARB(disp, parameters) \
+ (* GET_CreateProgramObjectARB(disp)) parameters
+static INLINE _glptr_CreateProgramObjectARB GET_CreateProgramObjectARB(struct _glapi_table *disp) {
+ return (_glptr_CreateProgramObjectARB) (GET_by_offset(disp, _gloffset_CreateProgramObjectARB));
+}
+
+static INLINE void SET_CreateProgramObjectARB(struct _glapi_table *disp, GLhandleARB (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_CreateProgramObjectARB, fn);
+}
+
+typedef GLhandleARB (GLAPIENTRYP _glptr_CreateShaderObjectARB)(GLenum);
+#define CALL_CreateShaderObjectARB(disp, parameters) \
+ (* GET_CreateShaderObjectARB(disp)) parameters
+static INLINE _glptr_CreateShaderObjectARB GET_CreateShaderObjectARB(struct _glapi_table *disp) {
+ return (_glptr_CreateShaderObjectARB) (GET_by_offset(disp, _gloffset_CreateShaderObjectARB));
+}
+
+static INLINE void SET_CreateShaderObjectARB(struct _glapi_table *disp, GLhandleARB (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_CreateShaderObjectARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DeleteObjectARB)(GLhandleARB);
+#define CALL_DeleteObjectARB(disp, parameters) \
+ (* GET_DeleteObjectARB(disp)) parameters
+static INLINE _glptr_DeleteObjectARB GET_DeleteObjectARB(struct _glapi_table *disp) {
+ return (_glptr_DeleteObjectARB) (GET_by_offset(disp, _gloffset_DeleteObjectARB));
+}
+
+static INLINE void SET_DeleteObjectARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLhandleARB)) {
+ SET_by_offset(disp, _gloffset_DeleteObjectARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DetachObjectARB)(GLhandleARB, GLhandleARB);
+#define CALL_DetachObjectARB(disp, parameters) \
+ (* GET_DetachObjectARB(disp)) parameters
+static INLINE _glptr_DetachObjectARB GET_DetachObjectARB(struct _glapi_table *disp) {
+ return (_glptr_DetachObjectARB) (GET_by_offset(disp, _gloffset_DetachObjectARB));
+}
+
+static INLINE void SET_DetachObjectARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLhandleARB, GLhandleARB)) {
+ SET_by_offset(disp, _gloffset_DetachObjectARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetAttachedObjectsARB)(GLhandleARB, GLsizei, GLsizei *, GLhandleARB *);
+#define CALL_GetAttachedObjectsARB(disp, parameters) \
+ (* GET_GetAttachedObjectsARB(disp)) parameters
+static INLINE _glptr_GetAttachedObjectsARB GET_GetAttachedObjectsARB(struct _glapi_table *disp) {
+ return (_glptr_GetAttachedObjectsARB) (GET_by_offset(disp, _gloffset_GetAttachedObjectsARB));
+}
+
+static INLINE void SET_GetAttachedObjectsARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLhandleARB, GLsizei, GLsizei *, GLhandleARB *)) {
+ SET_by_offset(disp, _gloffset_GetAttachedObjectsARB, fn);
+}
+
+typedef GLhandleARB (GLAPIENTRYP _glptr_GetHandleARB)(GLenum);
+#define CALL_GetHandleARB(disp, parameters) \
+ (* GET_GetHandleARB(disp)) parameters
+static INLINE _glptr_GetHandleARB GET_GetHandleARB(struct _glapi_table *disp) {
+ return (_glptr_GetHandleARB) (GET_by_offset(disp, _gloffset_GetHandleARB));
+}
+
+static INLINE void SET_GetHandleARB(struct _glapi_table *disp, GLhandleARB (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_GetHandleARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetInfoLogARB)(GLhandleARB, GLsizei, GLsizei *, GLcharARB *);
+#define CALL_GetInfoLogARB(disp, parameters) \
+ (* GET_GetInfoLogARB(disp)) parameters
+static INLINE _glptr_GetInfoLogARB GET_GetInfoLogARB(struct _glapi_table *disp) {
+ return (_glptr_GetInfoLogARB) (GET_by_offset(disp, _gloffset_GetInfoLogARB));
+}
+
+static INLINE void SET_GetInfoLogARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLhandleARB, GLsizei, GLsizei *, GLcharARB *)) {
+ SET_by_offset(disp, _gloffset_GetInfoLogARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetObjectParameterfvARB)(GLhandleARB, GLenum, GLfloat *);
+#define CALL_GetObjectParameterfvARB(disp, parameters) \
+ (* GET_GetObjectParameterfvARB(disp)) parameters
+static INLINE _glptr_GetObjectParameterfvARB GET_GetObjectParameterfvARB(struct _glapi_table *disp) {
+ return (_glptr_GetObjectParameterfvARB) (GET_by_offset(disp, _gloffset_GetObjectParameterfvARB));
+}
+
+static INLINE void SET_GetObjectParameterfvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLhandleARB, GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetObjectParameterfvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetObjectParameterivARB)(GLhandleARB, GLenum, GLint *);
+#define CALL_GetObjectParameterivARB(disp, parameters) \
+ (* GET_GetObjectParameterivARB(disp)) parameters
+static INLINE _glptr_GetObjectParameterivARB GET_GetObjectParameterivARB(struct _glapi_table *disp) {
+ return (_glptr_GetObjectParameterivARB) (GET_by_offset(disp, _gloffset_GetObjectParameterivARB));
+}
+
+static INLINE void SET_GetObjectParameterivARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLhandleARB, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetObjectParameterivARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawArraysInstancedARB)(GLenum, GLint, GLsizei, GLsizei);
+#define CALL_DrawArraysInstancedARB(disp, parameters) \
+ (* GET_DrawArraysInstancedARB(disp)) parameters
+static INLINE _glptr_DrawArraysInstancedARB GET_DrawArraysInstancedARB(struct _glapi_table *disp) {
+ return (_glptr_DrawArraysInstancedARB) (GET_by_offset(disp, _gloffset_DrawArraysInstancedARB));
+}
+
+static INLINE void SET_DrawArraysInstancedARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLsizei, GLsizei)) {
+ SET_by_offset(disp, _gloffset_DrawArraysInstancedARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawElementsInstancedARB)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei);
+#define CALL_DrawElementsInstancedARB(disp, parameters) \
+ (* GET_DrawElementsInstancedARB(disp)) parameters
+static INLINE _glptr_DrawElementsInstancedARB GET_DrawElementsInstancedARB(struct _glapi_table *disp) {
+ return (_glptr_DrawElementsInstancedARB) (GET_by_offset(disp, _gloffset_DrawElementsInstancedARB));
+}
+
+static INLINE void SET_DrawElementsInstancedARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei)) {
+ SET_by_offset(disp, _gloffset_DrawElementsInstancedARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BindFramebuffer)(GLenum, GLuint);
+#define CALL_BindFramebuffer(disp, parameters) \
+ (* GET_BindFramebuffer(disp)) parameters
+static INLINE _glptr_BindFramebuffer GET_BindFramebuffer(struct _glapi_table *disp) {
+ return (_glptr_BindFramebuffer) (GET_by_offset(disp, _gloffset_BindFramebuffer));
+}
+
+static INLINE void SET_BindFramebuffer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_BindFramebuffer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BindRenderbuffer)(GLenum, GLuint);
+#define CALL_BindRenderbuffer(disp, parameters) \
+ (* GET_BindRenderbuffer(disp)) parameters
+static INLINE _glptr_BindRenderbuffer GET_BindRenderbuffer(struct _glapi_table *disp) {
+ return (_glptr_BindRenderbuffer) (GET_by_offset(disp, _gloffset_BindRenderbuffer));
+}
+
+static INLINE void SET_BindRenderbuffer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_BindRenderbuffer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BlitFramebuffer)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum);
+#define CALL_BlitFramebuffer(disp, parameters) \
+ (* GET_BlitFramebuffer(disp)) parameters
+static INLINE _glptr_BlitFramebuffer GET_BlitFramebuffer(struct _glapi_table *disp) {
+ return (_glptr_BlitFramebuffer) (GET_by_offset(disp, _gloffset_BlitFramebuffer));
+}
+
+static INLINE void SET_BlitFramebuffer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum)) {
+ SET_by_offset(disp, _gloffset_BlitFramebuffer, fn);
+}
+
+typedef GLenum (GLAPIENTRYP _glptr_CheckFramebufferStatus)(GLenum);
+#define CALL_CheckFramebufferStatus(disp, parameters) \
+ (* GET_CheckFramebufferStatus(disp)) parameters
+static INLINE _glptr_CheckFramebufferStatus GET_CheckFramebufferStatus(struct _glapi_table *disp) {
+ return (_glptr_CheckFramebufferStatus) (GET_by_offset(disp, _gloffset_CheckFramebufferStatus));
+}
+
+static INLINE void SET_CheckFramebufferStatus(struct _glapi_table *disp, GLenum (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_CheckFramebufferStatus, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DeleteFramebuffers)(GLsizei, const GLuint *);
+#define CALL_DeleteFramebuffers(disp, parameters) \
+ (* GET_DeleteFramebuffers(disp)) parameters
+static INLINE _glptr_DeleteFramebuffers GET_DeleteFramebuffers(struct _glapi_table *disp) {
+ return (_glptr_DeleteFramebuffers) (GET_by_offset(disp, _gloffset_DeleteFramebuffers));
+}
+
+static INLINE void SET_DeleteFramebuffers(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_DeleteFramebuffers, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DeleteRenderbuffers)(GLsizei, const GLuint *);
+#define CALL_DeleteRenderbuffers(disp, parameters) \
+ (* GET_DeleteRenderbuffers(disp)) parameters
+static INLINE _glptr_DeleteRenderbuffers GET_DeleteRenderbuffers(struct _glapi_table *disp) {
+ return (_glptr_DeleteRenderbuffers) (GET_by_offset(disp, _gloffset_DeleteRenderbuffers));
+}
+
+static INLINE void SET_DeleteRenderbuffers(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_DeleteRenderbuffers, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_FramebufferRenderbuffer)(GLenum, GLenum, GLenum, GLuint);
+#define CALL_FramebufferRenderbuffer(disp, parameters) \
+ (* GET_FramebufferRenderbuffer(disp)) parameters
+static INLINE _glptr_FramebufferRenderbuffer GET_FramebufferRenderbuffer(struct _glapi_table *disp) {
+ return (_glptr_FramebufferRenderbuffer) (GET_by_offset(disp, _gloffset_FramebufferRenderbuffer));
+}
+
+static INLINE void SET_FramebufferRenderbuffer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_FramebufferRenderbuffer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_FramebufferTexture1D)(GLenum, GLenum, GLenum, GLuint, GLint);
+#define CALL_FramebufferTexture1D(disp, parameters) \
+ (* GET_FramebufferTexture1D(disp)) parameters
+static INLINE _glptr_FramebufferTexture1D GET_FramebufferTexture1D(struct _glapi_table *disp) {
+ return (_glptr_FramebufferTexture1D) (GET_by_offset(disp, _gloffset_FramebufferTexture1D));
+}
+
+static INLINE void SET_FramebufferTexture1D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLenum, GLuint, GLint)) {
+ SET_by_offset(disp, _gloffset_FramebufferTexture1D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_FramebufferTexture2D)(GLenum, GLenum, GLenum, GLuint, GLint);
+#define CALL_FramebufferTexture2D(disp, parameters) \
+ (* GET_FramebufferTexture2D(disp)) parameters
+static INLINE _glptr_FramebufferTexture2D GET_FramebufferTexture2D(struct _glapi_table *disp) {
+ return (_glptr_FramebufferTexture2D) (GET_by_offset(disp, _gloffset_FramebufferTexture2D));
+}
+
+static INLINE void SET_FramebufferTexture2D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLenum, GLuint, GLint)) {
+ SET_by_offset(disp, _gloffset_FramebufferTexture2D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_FramebufferTexture3D)(GLenum, GLenum, GLenum, GLuint, GLint, GLint);
+#define CALL_FramebufferTexture3D(disp, parameters) \
+ (* GET_FramebufferTexture3D(disp)) parameters
+static INLINE _glptr_FramebufferTexture3D GET_FramebufferTexture3D(struct _glapi_table *disp) {
+ return (_glptr_FramebufferTexture3D) (GET_by_offset(disp, _gloffset_FramebufferTexture3D));
+}
+
+static INLINE void SET_FramebufferTexture3D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLenum, GLuint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_FramebufferTexture3D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_FramebufferTextureLayer)(GLenum, GLenum, GLuint, GLint, GLint);
+#define CALL_FramebufferTextureLayer(disp, parameters) \
+ (* GET_FramebufferTextureLayer(disp)) parameters
+static INLINE _glptr_FramebufferTextureLayer GET_FramebufferTextureLayer(struct _glapi_table *disp) {
+ return (_glptr_FramebufferTextureLayer) (GET_by_offset(disp, _gloffset_FramebufferTextureLayer));
+}
+
+static INLINE void SET_FramebufferTextureLayer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLuint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_FramebufferTextureLayer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GenFramebuffers)(GLsizei, GLuint *);
+#define CALL_GenFramebuffers(disp, parameters) \
+ (* GET_GenFramebuffers(disp)) parameters
+static INLINE _glptr_GenFramebuffers GET_GenFramebuffers(struct _glapi_table *disp) {
+ return (_glptr_GenFramebuffers) (GET_by_offset(disp, _gloffset_GenFramebuffers));
+}
+
+static INLINE void SET_GenFramebuffers(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GenFramebuffers, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GenRenderbuffers)(GLsizei, GLuint *);
+#define CALL_GenRenderbuffers(disp, parameters) \
+ (* GET_GenRenderbuffers(disp)) parameters
+static INLINE _glptr_GenRenderbuffers GET_GenRenderbuffers(struct _glapi_table *disp) {
+ return (_glptr_GenRenderbuffers) (GET_by_offset(disp, _gloffset_GenRenderbuffers));
+}
+
+static INLINE void SET_GenRenderbuffers(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GenRenderbuffers, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GenerateMipmap)(GLenum);
+#define CALL_GenerateMipmap(disp, parameters) \
+ (* GET_GenerateMipmap(disp)) parameters
+static INLINE _glptr_GenerateMipmap GET_GenerateMipmap(struct _glapi_table *disp) {
+ return (_glptr_GenerateMipmap) (GET_by_offset(disp, _gloffset_GenerateMipmap));
+}
+
+static INLINE void SET_GenerateMipmap(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_GenerateMipmap, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetFramebufferAttachmentParameteriv)(GLenum, GLenum, GLenum, GLint *);
+#define CALL_GetFramebufferAttachmentParameteriv(disp, parameters) \
+ (* GET_GetFramebufferAttachmentParameteriv(disp)) parameters
+static INLINE _glptr_GetFramebufferAttachmentParameteriv GET_GetFramebufferAttachmentParameteriv(struct _glapi_table *disp) {
+ return (_glptr_GetFramebufferAttachmentParameteriv) (GET_by_offset(disp, _gloffset_GetFramebufferAttachmentParameteriv));
+}
+
+static INLINE void SET_GetFramebufferAttachmentParameteriv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetFramebufferAttachmentParameteriv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetRenderbufferParameteriv)(GLenum, GLenum, GLint *);
+#define CALL_GetRenderbufferParameteriv(disp, parameters) \
+ (* GET_GetRenderbufferParameteriv(disp)) parameters
+static INLINE _glptr_GetRenderbufferParameteriv GET_GetRenderbufferParameteriv(struct _glapi_table *disp) {
+ return (_glptr_GetRenderbufferParameteriv) (GET_by_offset(disp, _gloffset_GetRenderbufferParameteriv));
+}
+
+static INLINE void SET_GetRenderbufferParameteriv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetRenderbufferParameteriv, fn);
+}
+
+typedef GLboolean (GLAPIENTRYP _glptr_IsFramebuffer)(GLuint);
+#define CALL_IsFramebuffer(disp, parameters) \
+ (* GET_IsFramebuffer(disp)) parameters
+static INLINE _glptr_IsFramebuffer GET_IsFramebuffer(struct _glapi_table *disp) {
+ return (_glptr_IsFramebuffer) (GET_by_offset(disp, _gloffset_IsFramebuffer));
+}
+
+static INLINE void SET_IsFramebuffer(struct _glapi_table *disp, GLboolean (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_IsFramebuffer, fn);
+}
+
+typedef GLboolean (GLAPIENTRYP _glptr_IsRenderbuffer)(GLuint);
+#define CALL_IsRenderbuffer(disp, parameters) \
+ (* GET_IsRenderbuffer(disp)) parameters
+static INLINE _glptr_IsRenderbuffer GET_IsRenderbuffer(struct _glapi_table *disp) {
+ return (_glptr_IsRenderbuffer) (GET_by_offset(disp, _gloffset_IsRenderbuffer));
+}
+
+static INLINE void SET_IsRenderbuffer(struct _glapi_table *disp, GLboolean (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_IsRenderbuffer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RenderbufferStorage)(GLenum, GLenum, GLsizei, GLsizei);
+#define CALL_RenderbufferStorage(disp, parameters) \
+ (* GET_RenderbufferStorage(disp)) parameters
+static INLINE _glptr_RenderbufferStorage GET_RenderbufferStorage(struct _glapi_table *disp) {
+ return (_glptr_RenderbufferStorage) (GET_by_offset(disp, _gloffset_RenderbufferStorage));
+}
+
+static INLINE void SET_RenderbufferStorage(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLsizei, GLsizei)) {
+ SET_by_offset(disp, _gloffset_RenderbufferStorage, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RenderbufferStorageMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei);
+#define CALL_RenderbufferStorageMultisample(disp, parameters) \
+ (* GET_RenderbufferStorageMultisample(disp)) parameters
+static INLINE _glptr_RenderbufferStorageMultisample GET_RenderbufferStorageMultisample(struct _glapi_table *disp) {
+ return (_glptr_RenderbufferStorageMultisample) (GET_by_offset(disp, _gloffset_RenderbufferStorageMultisample));
+}
+
+static INLINE void SET_RenderbufferStorageMultisample(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLenum, GLsizei, GLsizei)) {
+ SET_by_offset(disp, _gloffset_RenderbufferStorageMultisample, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_FramebufferTextureFaceARB)(GLenum, GLenum, GLuint, GLint, GLenum);
+#define CALL_FramebufferTextureFaceARB(disp, parameters) \
+ (* GET_FramebufferTextureFaceARB(disp)) parameters
+static INLINE _glptr_FramebufferTextureFaceARB GET_FramebufferTextureFaceARB(struct _glapi_table *disp) {
+ return (_glptr_FramebufferTextureFaceARB) (GET_by_offset(disp, _gloffset_FramebufferTextureFaceARB));
+}
+
+static INLINE void SET_FramebufferTextureFaceARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLuint, GLint, GLenum)) {
+ SET_by_offset(disp, _gloffset_FramebufferTextureFaceARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_FlushMappedBufferRange)(GLenum, GLintptr, GLsizeiptr);
+#define CALL_FlushMappedBufferRange(disp, parameters) \
+ (* GET_FlushMappedBufferRange(disp)) parameters
+static INLINE _glptr_FlushMappedBufferRange GET_FlushMappedBufferRange(struct _glapi_table *disp) {
+ return (_glptr_FlushMappedBufferRange) (GET_by_offset(disp, _gloffset_FlushMappedBufferRange));
+}
+
+static INLINE void SET_FlushMappedBufferRange(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLintptr, GLsizeiptr)) {
+ SET_by_offset(disp, _gloffset_FlushMappedBufferRange, fn);
+}
+
+typedef GLvoid * (GLAPIENTRYP _glptr_MapBufferRange)(GLenum, GLintptr, GLsizeiptr, GLbitfield);
+#define CALL_MapBufferRange(disp, parameters) \
+ (* GET_MapBufferRange(disp)) parameters
+static INLINE _glptr_MapBufferRange GET_MapBufferRange(struct _glapi_table *disp) {
+ return (_glptr_MapBufferRange) (GET_by_offset(disp, _gloffset_MapBufferRange));
+}
+
+static INLINE void SET_MapBufferRange(struct _glapi_table *disp, GLvoid * (GLAPIENTRYP fn)(GLenum, GLintptr, GLsizeiptr, GLbitfield)) {
+ SET_by_offset(disp, _gloffset_MapBufferRange, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BindVertexArray)(GLuint);
+#define CALL_BindVertexArray(disp, parameters) \
+ (* GET_BindVertexArray(disp)) parameters
+static INLINE _glptr_BindVertexArray GET_BindVertexArray(struct _glapi_table *disp) {
+ return (_glptr_BindVertexArray) (GET_by_offset(disp, _gloffset_BindVertexArray));
+}
+
+static INLINE void SET_BindVertexArray(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_BindVertexArray, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DeleteVertexArrays)(GLsizei, const GLuint *);
+#define CALL_DeleteVertexArrays(disp, parameters) \
+ (* GET_DeleteVertexArrays(disp)) parameters
+static INLINE _glptr_DeleteVertexArrays GET_DeleteVertexArrays(struct _glapi_table *disp) {
+ return (_glptr_DeleteVertexArrays) (GET_by_offset(disp, _gloffset_DeleteVertexArrays));
+}
+
+static INLINE void SET_DeleteVertexArrays(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_DeleteVertexArrays, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GenVertexArrays)(GLsizei, GLuint *);
+#define CALL_GenVertexArrays(disp, parameters) \
+ (* GET_GenVertexArrays(disp)) parameters
+static INLINE _glptr_GenVertexArrays GET_GenVertexArrays(struct _glapi_table *disp) {
+ return (_glptr_GenVertexArrays) (GET_by_offset(disp, _gloffset_GenVertexArrays));
+}
+
+static INLINE void SET_GenVertexArrays(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GenVertexArrays, fn);
+}
+
+typedef GLboolean (GLAPIENTRYP _glptr_IsVertexArray)(GLuint);
+#define CALL_IsVertexArray(disp, parameters) \
+ (* GET_IsVertexArray(disp)) parameters
+static INLINE _glptr_IsVertexArray GET_IsVertexArray(struct _glapi_table *disp) {
+ return (_glptr_IsVertexArray) (GET_by_offset(disp, _gloffset_IsVertexArray));
+}
+
+static INLINE void SET_IsVertexArray(struct _glapi_table *disp, GLboolean (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_IsVertexArray, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetActiveUniformBlockName)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *);
+#define CALL_GetActiveUniformBlockName(disp, parameters) \
+ (* GET_GetActiveUniformBlockName(disp)) parameters
+static INLINE _glptr_GetActiveUniformBlockName GET_GetActiveUniformBlockName(struct _glapi_table *disp) {
+ return (_glptr_GetActiveUniformBlockName) (GET_by_offset(disp, _gloffset_GetActiveUniformBlockName));
+}
+
+static INLINE void SET_GetActiveUniformBlockName(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *)) {
+ SET_by_offset(disp, _gloffset_GetActiveUniformBlockName, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetActiveUniformBlockiv)(GLuint, GLuint, GLenum, GLint *);
+#define CALL_GetActiveUniformBlockiv(disp, parameters) \
+ (* GET_GetActiveUniformBlockiv(disp)) parameters
+static INLINE _glptr_GetActiveUniformBlockiv GET_GetActiveUniformBlockiv(struct _glapi_table *disp) {
+ return (_glptr_GetActiveUniformBlockiv) (GET_by_offset(disp, _gloffset_GetActiveUniformBlockiv));
+}
+
+static INLINE void SET_GetActiveUniformBlockiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetActiveUniformBlockiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetActiveUniformName)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *);
+#define CALL_GetActiveUniformName(disp, parameters) \
+ (* GET_GetActiveUniformName(disp)) parameters
+static INLINE _glptr_GetActiveUniformName GET_GetActiveUniformName(struct _glapi_table *disp) {
+ return (_glptr_GetActiveUniformName) (GET_by_offset(disp, _gloffset_GetActiveUniformName));
+}
+
+static INLINE void SET_GetActiveUniformName(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *)) {
+ SET_by_offset(disp, _gloffset_GetActiveUniformName, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetActiveUniformsiv)(GLuint, GLsizei, const GLuint *, GLenum, GLint *);
+#define CALL_GetActiveUniformsiv(disp, parameters) \
+ (* GET_GetActiveUniformsiv(disp)) parameters
+static INLINE _glptr_GetActiveUniformsiv GET_GetActiveUniformsiv(struct _glapi_table *disp) {
+ return (_glptr_GetActiveUniformsiv) (GET_by_offset(disp, _gloffset_GetActiveUniformsiv));
+}
+
+static INLINE void SET_GetActiveUniformsiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLuint *, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetActiveUniformsiv, fn);
+}
+
+typedef GLuint (GLAPIENTRYP _glptr_GetUniformBlockIndex)(GLuint, const GLchar *);
+#define CALL_GetUniformBlockIndex(disp, parameters) \
+ (* GET_GetUniformBlockIndex(disp)) parameters
+static INLINE _glptr_GetUniformBlockIndex GET_GetUniformBlockIndex(struct _glapi_table *disp) {
+ return (_glptr_GetUniformBlockIndex) (GET_by_offset(disp, _gloffset_GetUniformBlockIndex));
+}
+
+static INLINE void SET_GetUniformBlockIndex(struct _glapi_table *disp, GLuint (GLAPIENTRYP fn)(GLuint, const GLchar *)) {
+ SET_by_offset(disp, _gloffset_GetUniformBlockIndex, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetUniformIndices)(GLuint, GLsizei, const GLchar * const *, GLuint *);
+#define CALL_GetUniformIndices(disp, parameters) \
+ (* GET_GetUniformIndices(disp)) parameters
+static INLINE _glptr_GetUniformIndices GET_GetUniformIndices(struct _glapi_table *disp) {
+ return (_glptr_GetUniformIndices) (GET_by_offset(disp, _gloffset_GetUniformIndices));
+}
+
+static INLINE void SET_GetUniformIndices(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLchar * const *, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GetUniformIndices, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_UniformBlockBinding)(GLuint, GLuint, GLuint);
+#define CALL_UniformBlockBinding(disp, parameters) \
+ (* GET_UniformBlockBinding(disp)) parameters
+static INLINE _glptr_UniformBlockBinding GET_UniformBlockBinding(struct _glapi_table *disp) {
+ return (_glptr_UniformBlockBinding) (GET_by_offset(disp, _gloffset_UniformBlockBinding));
+}
+
+static INLINE void SET_UniformBlockBinding(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_UniformBlockBinding, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_CopyBufferSubData)(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr);
+#define CALL_CopyBufferSubData(disp, parameters) \
+ (* GET_CopyBufferSubData(disp)) parameters
+static INLINE _glptr_CopyBufferSubData GET_CopyBufferSubData(struct _glapi_table *disp) {
+ return (_glptr_CopyBufferSubData) (GET_by_offset(disp, _gloffset_CopyBufferSubData));
+}
+
+static INLINE void SET_CopyBufferSubData(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr)) {
+ SET_by_offset(disp, _gloffset_CopyBufferSubData, fn);
+}
+
+typedef GLenum (GLAPIENTRYP _glptr_ClientWaitSync)(GLsync, GLbitfield, GLuint64);
+#define CALL_ClientWaitSync(disp, parameters) \
+ (* GET_ClientWaitSync(disp)) parameters
+static INLINE _glptr_ClientWaitSync GET_ClientWaitSync(struct _glapi_table *disp) {
+ return (_glptr_ClientWaitSync) (GET_by_offset(disp, _gloffset_ClientWaitSync));
+}
+
+static INLINE void SET_ClientWaitSync(struct _glapi_table *disp, GLenum (GLAPIENTRYP fn)(GLsync, GLbitfield, GLuint64)) {
+ SET_by_offset(disp, _gloffset_ClientWaitSync, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DeleteSync)(GLsync);
+#define CALL_DeleteSync(disp, parameters) \
+ (* GET_DeleteSync(disp)) parameters
+static INLINE _glptr_DeleteSync GET_DeleteSync(struct _glapi_table *disp) {
+ return (_glptr_DeleteSync) (GET_by_offset(disp, _gloffset_DeleteSync));
+}
+
+static INLINE void SET_DeleteSync(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsync)) {
+ SET_by_offset(disp, _gloffset_DeleteSync, fn);
+}
+
+typedef GLsync (GLAPIENTRYP _glptr_FenceSync)(GLenum, GLbitfield);
+#define CALL_FenceSync(disp, parameters) \
+ (* GET_FenceSync(disp)) parameters
+static INLINE _glptr_FenceSync GET_FenceSync(struct _glapi_table *disp) {
+ return (_glptr_FenceSync) (GET_by_offset(disp, _gloffset_FenceSync));
+}
+
+static INLINE void SET_FenceSync(struct _glapi_table *disp, GLsync (GLAPIENTRYP fn)(GLenum, GLbitfield)) {
+ SET_by_offset(disp, _gloffset_FenceSync, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetInteger64v)(GLenum, GLint64 *);
+#define CALL_GetInteger64v(disp, parameters) \
+ (* GET_GetInteger64v(disp)) parameters
+static INLINE _glptr_GetInteger64v GET_GetInteger64v(struct _glapi_table *disp) {
+ return (_glptr_GetInteger64v) (GET_by_offset(disp, _gloffset_GetInteger64v));
+}
+
+static INLINE void SET_GetInteger64v(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint64 *)) {
+ SET_by_offset(disp, _gloffset_GetInteger64v, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetSynciv)(GLsync, GLenum, GLsizei, GLsizei *, GLint *);
+#define CALL_GetSynciv(disp, parameters) \
+ (* GET_GetSynciv(disp)) parameters
+static INLINE _glptr_GetSynciv GET_GetSynciv(struct _glapi_table *disp) {
+ return (_glptr_GetSynciv) (GET_by_offset(disp, _gloffset_GetSynciv));
+}
+
+static INLINE void SET_GetSynciv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsync, GLenum, GLsizei, GLsizei *, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetSynciv, fn);
+}
+
+typedef GLboolean (GLAPIENTRYP _glptr_IsSync)(GLsync);
+#define CALL_IsSync(disp, parameters) \
+ (* GET_IsSync(disp)) parameters
+static INLINE _glptr_IsSync GET_IsSync(struct _glapi_table *disp) {
+ return (_glptr_IsSync) (GET_by_offset(disp, _gloffset_IsSync));
+}
+
+static INLINE void SET_IsSync(struct _glapi_table *disp, GLboolean (GLAPIENTRYP fn)(GLsync)) {
+ SET_by_offset(disp, _gloffset_IsSync, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WaitSync)(GLsync, GLbitfield, GLuint64);
+#define CALL_WaitSync(disp, parameters) \
+ (* GET_WaitSync(disp)) parameters
+static INLINE _glptr_WaitSync GET_WaitSync(struct _glapi_table *disp) {
+ return (_glptr_WaitSync) (GET_by_offset(disp, _gloffset_WaitSync));
+}
+
+static INLINE void SET_WaitSync(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsync, GLbitfield, GLuint64)) {
+ SET_by_offset(disp, _gloffset_WaitSync, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawElementsBaseVertex)(GLenum, GLsizei, GLenum, const GLvoid *, GLint);
+#define CALL_DrawElementsBaseVertex(disp, parameters) \
+ (* GET_DrawElementsBaseVertex(disp)) parameters
+static INLINE _glptr_DrawElementsBaseVertex GET_DrawElementsBaseVertex(struct _glapi_table *disp) {
+ return (_glptr_DrawElementsBaseVertex) (GET_by_offset(disp, _gloffset_DrawElementsBaseVertex));
+}
+
+static INLINE void SET_DrawElementsBaseVertex(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLenum, const GLvoid *, GLint)) {
+ SET_by_offset(disp, _gloffset_DrawElementsBaseVertex, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawElementsInstancedBaseVertex)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLint);
+#define CALL_DrawElementsInstancedBaseVertex(disp, parameters) \
+ (* GET_DrawElementsInstancedBaseVertex(disp)) parameters
+static INLINE _glptr_DrawElementsInstancedBaseVertex GET_DrawElementsInstancedBaseVertex(struct _glapi_table *disp) {
+ return (_glptr_DrawElementsInstancedBaseVertex) (GET_by_offset(disp, _gloffset_DrawElementsInstancedBaseVertex));
+}
+
+static INLINE void SET_DrawElementsInstancedBaseVertex(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLint)) {
+ SET_by_offset(disp, _gloffset_DrawElementsInstancedBaseVertex, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawRangeElementsBaseVertex)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *, GLint);
+#define CALL_DrawRangeElementsBaseVertex(disp, parameters) \
+ (* GET_DrawRangeElementsBaseVertex(disp)) parameters
+static INLINE _glptr_DrawRangeElementsBaseVertex GET_DrawRangeElementsBaseVertex(struct _glapi_table *disp) {
+ return (_glptr_DrawRangeElementsBaseVertex) (GET_by_offset(disp, _gloffset_DrawRangeElementsBaseVertex));
+}
+
+static INLINE void SET_DrawRangeElementsBaseVertex(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *, GLint)) {
+ SET_by_offset(disp, _gloffset_DrawRangeElementsBaseVertex, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiDrawElementsBaseVertex)(GLenum, const GLsizei *, GLenum, const GLvoid * const *, GLsizei, const GLint *);
+#define CALL_MultiDrawElementsBaseVertex(disp, parameters) \
+ (* GET_MultiDrawElementsBaseVertex(disp)) parameters
+static INLINE _glptr_MultiDrawElementsBaseVertex GET_MultiDrawElementsBaseVertex(struct _glapi_table *disp) {
+ return (_glptr_MultiDrawElementsBaseVertex) (GET_by_offset(disp, _gloffset_MultiDrawElementsBaseVertex));
+}
+
+static INLINE void SET_MultiDrawElementsBaseVertex(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLsizei *, GLenum, const GLvoid * const *, GLsizei, const GLint *)) {
+ SET_by_offset(disp, _gloffset_MultiDrawElementsBaseVertex, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProvokingVertex)(GLenum);
+#define CALL_ProvokingVertex(disp, parameters) \
+ (* GET_ProvokingVertex(disp)) parameters
+static INLINE _glptr_ProvokingVertex GET_ProvokingVertex(struct _glapi_table *disp) {
+ return (_glptr_ProvokingVertex) (GET_by_offset(disp, _gloffset_ProvokingVertex));
+}
+
+static INLINE void SET_ProvokingVertex(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_ProvokingVertex, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetMultisamplefv)(GLenum, GLuint, GLfloat *);
+#define CALL_GetMultisamplefv(disp, parameters) \
+ (* GET_GetMultisamplefv(disp)) parameters
+static INLINE _glptr_GetMultisamplefv GET_GetMultisamplefv(struct _glapi_table *disp) {
+ return (_glptr_GetMultisamplefv) (GET_by_offset(disp, _gloffset_GetMultisamplefv));
+}
+
+static INLINE void SET_GetMultisamplefv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetMultisamplefv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SampleMaski)(GLuint, GLbitfield);
+#define CALL_SampleMaski(disp, parameters) \
+ (* GET_SampleMaski(disp)) parameters
+static INLINE _glptr_SampleMaski GET_SampleMaski(struct _glapi_table *disp) {
+ return (_glptr_SampleMaski) (GET_by_offset(disp, _gloffset_SampleMaski));
+}
+
+static INLINE void SET_SampleMaski(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLbitfield)) {
+ SET_by_offset(disp, _gloffset_SampleMaski, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexImage2DMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLboolean);
+#define CALL_TexImage2DMultisample(disp, parameters) \
+ (* GET_TexImage2DMultisample(disp)) parameters
+static INLINE _glptr_TexImage2DMultisample GET_TexImage2DMultisample(struct _glapi_table *disp) {
+ return (_glptr_TexImage2DMultisample) (GET_by_offset(disp, _gloffset_TexImage2DMultisample));
+}
+
+static INLINE void SET_TexImage2DMultisample(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLboolean)) {
+ SET_by_offset(disp, _gloffset_TexImage2DMultisample, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexImage3DMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei, GLboolean);
+#define CALL_TexImage3DMultisample(disp, parameters) \
+ (* GET_TexImage3DMultisample(disp)) parameters
+static INLINE _glptr_TexImage3DMultisample GET_TexImage3DMultisample(struct _glapi_table *disp) {
+ return (_glptr_TexImage3DMultisample) (GET_by_offset(disp, _gloffset_TexImage3DMultisample));
+}
+
+static INLINE void SET_TexImage3DMultisample(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei, GLboolean)) {
+ SET_by_offset(disp, _gloffset_TexImage3DMultisample, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BlendEquationSeparateiARB)(GLuint, GLenum, GLenum);
+#define CALL_BlendEquationSeparateiARB(disp, parameters) \
+ (* GET_BlendEquationSeparateiARB(disp)) parameters
+static INLINE _glptr_BlendEquationSeparateiARB GET_BlendEquationSeparateiARB(struct _glapi_table *disp) {
+ return (_glptr_BlendEquationSeparateiARB) (GET_by_offset(disp, _gloffset_BlendEquationSeparateiARB));
+}
+
+static INLINE void SET_BlendEquationSeparateiARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLenum)) {
+ SET_by_offset(disp, _gloffset_BlendEquationSeparateiARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BlendEquationiARB)(GLuint, GLenum);
+#define CALL_BlendEquationiARB(disp, parameters) \
+ (* GET_BlendEquationiARB(disp)) parameters
+static INLINE _glptr_BlendEquationiARB GET_BlendEquationiARB(struct _glapi_table *disp) {
+ return (_glptr_BlendEquationiARB) (GET_by_offset(disp, _gloffset_BlendEquationiARB));
+}
+
+static INLINE void SET_BlendEquationiARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum)) {
+ SET_by_offset(disp, _gloffset_BlendEquationiARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BlendFuncSeparateiARB)(GLuint, GLenum, GLenum, GLenum, GLenum);
+#define CALL_BlendFuncSeparateiARB(disp, parameters) \
+ (* GET_BlendFuncSeparateiARB(disp)) parameters
+static INLINE _glptr_BlendFuncSeparateiARB GET_BlendFuncSeparateiARB(struct _glapi_table *disp) {
+ return (_glptr_BlendFuncSeparateiARB) (GET_by_offset(disp, _gloffset_BlendFuncSeparateiARB));
+}
+
+static INLINE void SET_BlendFuncSeparateiARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLenum, GLenum, GLenum)) {
+ SET_by_offset(disp, _gloffset_BlendFuncSeparateiARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BlendFunciARB)(GLuint, GLenum, GLenum);
+#define CALL_BlendFunciARB(disp, parameters) \
+ (* GET_BlendFunciARB(disp)) parameters
+static INLINE _glptr_BlendFunciARB GET_BlendFunciARB(struct _glapi_table *disp) {
+ return (_glptr_BlendFunciARB) (GET_by_offset(disp, _gloffset_BlendFunciARB));
+}
+
+static INLINE void SET_BlendFunciARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLenum)) {
+ SET_by_offset(disp, _gloffset_BlendFunciARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BindFragDataLocationIndexed)(GLuint, GLuint, GLuint, const GLchar *);
+#define CALL_BindFragDataLocationIndexed(disp, parameters) \
+ (* GET_BindFragDataLocationIndexed(disp)) parameters
+static INLINE _glptr_BindFragDataLocationIndexed GET_BindFragDataLocationIndexed(struct _glapi_table *disp) {
+ return (_glptr_BindFragDataLocationIndexed) (GET_by_offset(disp, _gloffset_BindFragDataLocationIndexed));
+}
+
+static INLINE void SET_BindFragDataLocationIndexed(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLuint, const GLchar *)) {
+ SET_by_offset(disp, _gloffset_BindFragDataLocationIndexed, fn);
+}
+
+typedef GLint (GLAPIENTRYP _glptr_GetFragDataIndex)(GLuint, const GLchar *);
+#define CALL_GetFragDataIndex(disp, parameters) \
+ (* GET_GetFragDataIndex(disp)) parameters
+static INLINE _glptr_GetFragDataIndex GET_GetFragDataIndex(struct _glapi_table *disp) {
+ return (_glptr_GetFragDataIndex) (GET_by_offset(disp, _gloffset_GetFragDataIndex));
+}
+
+static INLINE void SET_GetFragDataIndex(struct _glapi_table *disp, GLint (GLAPIENTRYP fn)(GLuint, const GLchar *)) {
+ SET_by_offset(disp, _gloffset_GetFragDataIndex, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BindSampler)(GLuint, GLuint);
+#define CALL_BindSampler(disp, parameters) \
+ (* GET_BindSampler(disp)) parameters
+static INLINE _glptr_BindSampler GET_BindSampler(struct _glapi_table *disp) {
+ return (_glptr_BindSampler) (GET_by_offset(disp, _gloffset_BindSampler));
+}
+
+static INLINE void SET_BindSampler(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_BindSampler, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DeleteSamplers)(GLsizei, const GLuint *);
+#define CALL_DeleteSamplers(disp, parameters) \
+ (* GET_DeleteSamplers(disp)) parameters
+static INLINE _glptr_DeleteSamplers GET_DeleteSamplers(struct _glapi_table *disp) {
+ return (_glptr_DeleteSamplers) (GET_by_offset(disp, _gloffset_DeleteSamplers));
+}
+
+static INLINE void SET_DeleteSamplers(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_DeleteSamplers, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GenSamplers)(GLsizei, GLuint *);
+#define CALL_GenSamplers(disp, parameters) \
+ (* GET_GenSamplers(disp)) parameters
+static INLINE _glptr_GenSamplers GET_GenSamplers(struct _glapi_table *disp) {
+ return (_glptr_GenSamplers) (GET_by_offset(disp, _gloffset_GenSamplers));
+}
+
+static INLINE void SET_GenSamplers(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GenSamplers, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetSamplerParameterIiv)(GLuint, GLenum, GLint *);
+#define CALL_GetSamplerParameterIiv(disp, parameters) \
+ (* GET_GetSamplerParameterIiv(disp)) parameters
+static INLINE _glptr_GetSamplerParameterIiv GET_GetSamplerParameterIiv(struct _glapi_table *disp) {
+ return (_glptr_GetSamplerParameterIiv) (GET_by_offset(disp, _gloffset_GetSamplerParameterIiv));
+}
+
+static INLINE void SET_GetSamplerParameterIiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetSamplerParameterIiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetSamplerParameterIuiv)(GLuint, GLenum, GLuint *);
+#define CALL_GetSamplerParameterIuiv(disp, parameters) \
+ (* GET_GetSamplerParameterIuiv(disp)) parameters
+static INLINE _glptr_GetSamplerParameterIuiv GET_GetSamplerParameterIuiv(struct _glapi_table *disp) {
+ return (_glptr_GetSamplerParameterIuiv) (GET_by_offset(disp, _gloffset_GetSamplerParameterIuiv));
+}
+
+static INLINE void SET_GetSamplerParameterIuiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GetSamplerParameterIuiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetSamplerParameterfv)(GLuint, GLenum, GLfloat *);
+#define CALL_GetSamplerParameterfv(disp, parameters) \
+ (* GET_GetSamplerParameterfv(disp)) parameters
+static INLINE _glptr_GetSamplerParameterfv GET_GetSamplerParameterfv(struct _glapi_table *disp) {
+ return (_glptr_GetSamplerParameterfv) (GET_by_offset(disp, _gloffset_GetSamplerParameterfv));
+}
+
+static INLINE void SET_GetSamplerParameterfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetSamplerParameterfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetSamplerParameteriv)(GLuint, GLenum, GLint *);
+#define CALL_GetSamplerParameteriv(disp, parameters) \
+ (* GET_GetSamplerParameteriv(disp)) parameters
+static INLINE _glptr_GetSamplerParameteriv GET_GetSamplerParameteriv(struct _glapi_table *disp) {
+ return (_glptr_GetSamplerParameteriv) (GET_by_offset(disp, _gloffset_GetSamplerParameteriv));
+}
+
+static INLINE void SET_GetSamplerParameteriv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetSamplerParameteriv, fn);
+}
+
+typedef GLboolean (GLAPIENTRYP _glptr_IsSampler)(GLuint);
+#define CALL_IsSampler(disp, parameters) \
+ (* GET_IsSampler(disp)) parameters
+static INLINE _glptr_IsSampler GET_IsSampler(struct _glapi_table *disp) {
+ return (_glptr_IsSampler) (GET_by_offset(disp, _gloffset_IsSampler));
+}
+
+static INLINE void SET_IsSampler(struct _glapi_table *disp, GLboolean (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_IsSampler, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SamplerParameterIiv)(GLuint, GLenum, const GLint *);
+#define CALL_SamplerParameterIiv(disp, parameters) \
+ (* GET_SamplerParameterIiv(disp)) parameters
+static INLINE _glptr_SamplerParameterIiv GET_SamplerParameterIiv(struct _glapi_table *disp) {
+ return (_glptr_SamplerParameterIiv) (GET_by_offset(disp, _gloffset_SamplerParameterIiv));
+}
+
+static INLINE void SET_SamplerParameterIiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, const GLint *)) {
+ SET_by_offset(disp, _gloffset_SamplerParameterIiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SamplerParameterIuiv)(GLuint, GLenum, const GLuint *);
+#define CALL_SamplerParameterIuiv(disp, parameters) \
+ (* GET_SamplerParameterIuiv(disp)) parameters
+static INLINE _glptr_SamplerParameterIuiv GET_SamplerParameterIuiv(struct _glapi_table *disp) {
+ return (_glptr_SamplerParameterIuiv) (GET_by_offset(disp, _gloffset_SamplerParameterIuiv));
+}
+
+static INLINE void SET_SamplerParameterIuiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_SamplerParameterIuiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SamplerParameterf)(GLuint, GLenum, GLfloat);
+#define CALL_SamplerParameterf(disp, parameters) \
+ (* GET_SamplerParameterf(disp)) parameters
+static INLINE _glptr_SamplerParameterf GET_SamplerParameterf(struct _glapi_table *disp) {
+ return (_glptr_SamplerParameterf) (GET_by_offset(disp, _gloffset_SamplerParameterf));
+}
+
+static INLINE void SET_SamplerParameterf(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLfloat)) {
+ SET_by_offset(disp, _gloffset_SamplerParameterf, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SamplerParameterfv)(GLuint, GLenum, const GLfloat *);
+#define CALL_SamplerParameterfv(disp, parameters) \
+ (* GET_SamplerParameterfv(disp)) parameters
+static INLINE _glptr_SamplerParameterfv GET_SamplerParameterfv(struct _glapi_table *disp) {
+ return (_glptr_SamplerParameterfv) (GET_by_offset(disp, _gloffset_SamplerParameterfv));
+}
+
+static INLINE void SET_SamplerParameterfv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_SamplerParameterfv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SamplerParameteri)(GLuint, GLenum, GLint);
+#define CALL_SamplerParameteri(disp, parameters) \
+ (* GET_SamplerParameteri(disp)) parameters
+static INLINE _glptr_SamplerParameteri GET_SamplerParameteri(struct _glapi_table *disp) {
+ return (_glptr_SamplerParameteri) (GET_by_offset(disp, _gloffset_SamplerParameteri));
+}
+
+static INLINE void SET_SamplerParameteri(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLint)) {
+ SET_by_offset(disp, _gloffset_SamplerParameteri, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SamplerParameteriv)(GLuint, GLenum, const GLint *);
+#define CALL_SamplerParameteriv(disp, parameters) \
+ (* GET_SamplerParameteriv(disp)) parameters
+static INLINE _glptr_SamplerParameteriv GET_SamplerParameteriv(struct _glapi_table *disp) {
+ return (_glptr_SamplerParameteriv) (GET_by_offset(disp, _gloffset_SamplerParameteriv));
+}
+
+static INLINE void SET_SamplerParameteriv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, const GLint *)) {
+ SET_by_offset(disp, _gloffset_SamplerParameteriv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetQueryObjecti64v)(GLuint, GLenum, GLint64 *);
+#define CALL_GetQueryObjecti64v(disp, parameters) \
+ (* GET_GetQueryObjecti64v(disp)) parameters
+static INLINE _glptr_GetQueryObjecti64v GET_GetQueryObjecti64v(struct _glapi_table *disp) {
+ return (_glptr_GetQueryObjecti64v) (GET_by_offset(disp, _gloffset_GetQueryObjecti64v));
+}
+
+static INLINE void SET_GetQueryObjecti64v(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLint64 *)) {
+ SET_by_offset(disp, _gloffset_GetQueryObjecti64v, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetQueryObjectui64v)(GLuint, GLenum, GLuint64 *);
+#define CALL_GetQueryObjectui64v(disp, parameters) \
+ (* GET_GetQueryObjectui64v(disp)) parameters
+static INLINE _glptr_GetQueryObjectui64v GET_GetQueryObjectui64v(struct _glapi_table *disp) {
+ return (_glptr_GetQueryObjectui64v) (GET_by_offset(disp, _gloffset_GetQueryObjectui64v));
+}
+
+static INLINE void SET_GetQueryObjectui64v(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLuint64 *)) {
+ SET_by_offset(disp, _gloffset_GetQueryObjectui64v, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_QueryCounter)(GLuint, GLenum);
+#define CALL_QueryCounter(disp, parameters) \
+ (* GET_QueryCounter(disp)) parameters
+static INLINE _glptr_QueryCounter GET_QueryCounter(struct _glapi_table *disp) {
+ return (_glptr_QueryCounter) (GET_by_offset(disp, _gloffset_QueryCounter));
+}
+
+static INLINE void SET_QueryCounter(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum)) {
+ SET_by_offset(disp, _gloffset_QueryCounter, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ColorP3ui)(GLenum, GLuint);
+#define CALL_ColorP3ui(disp, parameters) \
+ (* GET_ColorP3ui(disp)) parameters
+static INLINE _glptr_ColorP3ui GET_ColorP3ui(struct _glapi_table *disp) {
+ return (_glptr_ColorP3ui) (GET_by_offset(disp, _gloffset_ColorP3ui));
+}
+
+static INLINE void SET_ColorP3ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_ColorP3ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ColorP3uiv)(GLenum, const GLuint *);
+#define CALL_ColorP3uiv(disp, parameters) \
+ (* GET_ColorP3uiv(disp)) parameters
+static INLINE _glptr_ColorP3uiv GET_ColorP3uiv(struct _glapi_table *disp) {
+ return (_glptr_ColorP3uiv) (GET_by_offset(disp, _gloffset_ColorP3uiv));
+}
+
+static INLINE void SET_ColorP3uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_ColorP3uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ColorP4ui)(GLenum, GLuint);
+#define CALL_ColorP4ui(disp, parameters) \
+ (* GET_ColorP4ui(disp)) parameters
+static INLINE _glptr_ColorP4ui GET_ColorP4ui(struct _glapi_table *disp) {
+ return (_glptr_ColorP4ui) (GET_by_offset(disp, _gloffset_ColorP4ui));
+}
+
+static INLINE void SET_ColorP4ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_ColorP4ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ColorP4uiv)(GLenum, const GLuint *);
+#define CALL_ColorP4uiv(disp, parameters) \
+ (* GET_ColorP4uiv(disp)) parameters
+static INLINE _glptr_ColorP4uiv GET_ColorP4uiv(struct _glapi_table *disp) {
+ return (_glptr_ColorP4uiv) (GET_by_offset(disp, _gloffset_ColorP4uiv));
+}
+
+static INLINE void SET_ColorP4uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_ColorP4uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoordP1ui)(GLenum, GLenum, GLuint);
+#define CALL_MultiTexCoordP1ui(disp, parameters) \
+ (* GET_MultiTexCoordP1ui(disp)) parameters
+static INLINE _glptr_MultiTexCoordP1ui GET_MultiTexCoordP1ui(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoordP1ui) (GET_by_offset(disp, _gloffset_MultiTexCoordP1ui));
+}
+
+static INLINE void SET_MultiTexCoordP1ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoordP1ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoordP1uiv)(GLenum, GLenum, const GLuint *);
+#define CALL_MultiTexCoordP1uiv(disp, parameters) \
+ (* GET_MultiTexCoordP1uiv(disp)) parameters
+static INLINE _glptr_MultiTexCoordP1uiv GET_MultiTexCoordP1uiv(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoordP1uiv) (GET_by_offset(disp, _gloffset_MultiTexCoordP1uiv));
+}
+
+static INLINE void SET_MultiTexCoordP1uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoordP1uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoordP2ui)(GLenum, GLenum, GLuint);
+#define CALL_MultiTexCoordP2ui(disp, parameters) \
+ (* GET_MultiTexCoordP2ui(disp)) parameters
+static INLINE _glptr_MultiTexCoordP2ui GET_MultiTexCoordP2ui(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoordP2ui) (GET_by_offset(disp, _gloffset_MultiTexCoordP2ui));
+}
+
+static INLINE void SET_MultiTexCoordP2ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoordP2ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoordP2uiv)(GLenum, GLenum, const GLuint *);
+#define CALL_MultiTexCoordP2uiv(disp, parameters) \
+ (* GET_MultiTexCoordP2uiv(disp)) parameters
+static INLINE _glptr_MultiTexCoordP2uiv GET_MultiTexCoordP2uiv(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoordP2uiv) (GET_by_offset(disp, _gloffset_MultiTexCoordP2uiv));
+}
+
+static INLINE void SET_MultiTexCoordP2uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoordP2uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoordP3ui)(GLenum, GLenum, GLuint);
+#define CALL_MultiTexCoordP3ui(disp, parameters) \
+ (* GET_MultiTexCoordP3ui(disp)) parameters
+static INLINE _glptr_MultiTexCoordP3ui GET_MultiTexCoordP3ui(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoordP3ui) (GET_by_offset(disp, _gloffset_MultiTexCoordP3ui));
+}
+
+static INLINE void SET_MultiTexCoordP3ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoordP3ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoordP3uiv)(GLenum, GLenum, const GLuint *);
+#define CALL_MultiTexCoordP3uiv(disp, parameters) \
+ (* GET_MultiTexCoordP3uiv(disp)) parameters
+static INLINE _glptr_MultiTexCoordP3uiv GET_MultiTexCoordP3uiv(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoordP3uiv) (GET_by_offset(disp, _gloffset_MultiTexCoordP3uiv));
+}
+
+static INLINE void SET_MultiTexCoordP3uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoordP3uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoordP4ui)(GLenum, GLenum, GLuint);
+#define CALL_MultiTexCoordP4ui(disp, parameters) \
+ (* GET_MultiTexCoordP4ui(disp)) parameters
+static INLINE _glptr_MultiTexCoordP4ui GET_MultiTexCoordP4ui(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoordP4ui) (GET_by_offset(disp, _gloffset_MultiTexCoordP4ui));
+}
+
+static INLINE void SET_MultiTexCoordP4ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoordP4ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoordP4uiv)(GLenum, GLenum, const GLuint *);
+#define CALL_MultiTexCoordP4uiv(disp, parameters) \
+ (* GET_MultiTexCoordP4uiv(disp)) parameters
+static INLINE _glptr_MultiTexCoordP4uiv GET_MultiTexCoordP4uiv(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoordP4uiv) (GET_by_offset(disp, _gloffset_MultiTexCoordP4uiv));
+}
+
+static INLINE void SET_MultiTexCoordP4uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoordP4uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_NormalP3ui)(GLenum, GLuint);
+#define CALL_NormalP3ui(disp, parameters) \
+ (* GET_NormalP3ui(disp)) parameters
+static INLINE _glptr_NormalP3ui GET_NormalP3ui(struct _glapi_table *disp) {
+ return (_glptr_NormalP3ui) (GET_by_offset(disp, _gloffset_NormalP3ui));
+}
+
+static INLINE void SET_NormalP3ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_NormalP3ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_NormalP3uiv)(GLenum, const GLuint *);
+#define CALL_NormalP3uiv(disp, parameters) \
+ (* GET_NormalP3uiv(disp)) parameters
+static INLINE _glptr_NormalP3uiv GET_NormalP3uiv(struct _glapi_table *disp) {
+ return (_glptr_NormalP3uiv) (GET_by_offset(disp, _gloffset_NormalP3uiv));
+}
+
+static INLINE void SET_NormalP3uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_NormalP3uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SecondaryColorP3ui)(GLenum, GLuint);
+#define CALL_SecondaryColorP3ui(disp, parameters) \
+ (* GET_SecondaryColorP3ui(disp)) parameters
+static INLINE _glptr_SecondaryColorP3ui GET_SecondaryColorP3ui(struct _glapi_table *disp) {
+ return (_glptr_SecondaryColorP3ui) (GET_by_offset(disp, _gloffset_SecondaryColorP3ui));
+}
+
+static INLINE void SET_SecondaryColorP3ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_SecondaryColorP3ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SecondaryColorP3uiv)(GLenum, const GLuint *);
+#define CALL_SecondaryColorP3uiv(disp, parameters) \
+ (* GET_SecondaryColorP3uiv(disp)) parameters
+static INLINE _glptr_SecondaryColorP3uiv GET_SecondaryColorP3uiv(struct _glapi_table *disp) {
+ return (_glptr_SecondaryColorP3uiv) (GET_by_offset(disp, _gloffset_SecondaryColorP3uiv));
+}
+
+static INLINE void SET_SecondaryColorP3uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_SecondaryColorP3uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoordP1ui)(GLenum, GLuint);
+#define CALL_TexCoordP1ui(disp, parameters) \
+ (* GET_TexCoordP1ui(disp)) parameters
+static INLINE _glptr_TexCoordP1ui GET_TexCoordP1ui(struct _glapi_table *disp) {
+ return (_glptr_TexCoordP1ui) (GET_by_offset(disp, _gloffset_TexCoordP1ui));
+}
+
+static INLINE void SET_TexCoordP1ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_TexCoordP1ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoordP1uiv)(GLenum, const GLuint *);
+#define CALL_TexCoordP1uiv(disp, parameters) \
+ (* GET_TexCoordP1uiv(disp)) parameters
+static INLINE _glptr_TexCoordP1uiv GET_TexCoordP1uiv(struct _glapi_table *disp) {
+ return (_glptr_TexCoordP1uiv) (GET_by_offset(disp, _gloffset_TexCoordP1uiv));
+}
+
+static INLINE void SET_TexCoordP1uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_TexCoordP1uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoordP2ui)(GLenum, GLuint);
+#define CALL_TexCoordP2ui(disp, parameters) \
+ (* GET_TexCoordP2ui(disp)) parameters
+static INLINE _glptr_TexCoordP2ui GET_TexCoordP2ui(struct _glapi_table *disp) {
+ return (_glptr_TexCoordP2ui) (GET_by_offset(disp, _gloffset_TexCoordP2ui));
+}
+
+static INLINE void SET_TexCoordP2ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_TexCoordP2ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoordP2uiv)(GLenum, const GLuint *);
+#define CALL_TexCoordP2uiv(disp, parameters) \
+ (* GET_TexCoordP2uiv(disp)) parameters
+static INLINE _glptr_TexCoordP2uiv GET_TexCoordP2uiv(struct _glapi_table *disp) {
+ return (_glptr_TexCoordP2uiv) (GET_by_offset(disp, _gloffset_TexCoordP2uiv));
+}
+
+static INLINE void SET_TexCoordP2uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_TexCoordP2uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoordP3ui)(GLenum, GLuint);
+#define CALL_TexCoordP3ui(disp, parameters) \
+ (* GET_TexCoordP3ui(disp)) parameters
+static INLINE _glptr_TexCoordP3ui GET_TexCoordP3ui(struct _glapi_table *disp) {
+ return (_glptr_TexCoordP3ui) (GET_by_offset(disp, _gloffset_TexCoordP3ui));
+}
+
+static INLINE void SET_TexCoordP3ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_TexCoordP3ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoordP3uiv)(GLenum, const GLuint *);
+#define CALL_TexCoordP3uiv(disp, parameters) \
+ (* GET_TexCoordP3uiv(disp)) parameters
+static INLINE _glptr_TexCoordP3uiv GET_TexCoordP3uiv(struct _glapi_table *disp) {
+ return (_glptr_TexCoordP3uiv) (GET_by_offset(disp, _gloffset_TexCoordP3uiv));
+}
+
+static INLINE void SET_TexCoordP3uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_TexCoordP3uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoordP4ui)(GLenum, GLuint);
+#define CALL_TexCoordP4ui(disp, parameters) \
+ (* GET_TexCoordP4ui(disp)) parameters
+static INLINE _glptr_TexCoordP4ui GET_TexCoordP4ui(struct _glapi_table *disp) {
+ return (_glptr_TexCoordP4ui) (GET_by_offset(disp, _gloffset_TexCoordP4ui));
+}
+
+static INLINE void SET_TexCoordP4ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_TexCoordP4ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoordP4uiv)(GLenum, const GLuint *);
+#define CALL_TexCoordP4uiv(disp, parameters) \
+ (* GET_TexCoordP4uiv(disp)) parameters
+static INLINE _glptr_TexCoordP4uiv GET_TexCoordP4uiv(struct _glapi_table *disp) {
+ return (_glptr_TexCoordP4uiv) (GET_by_offset(disp, _gloffset_TexCoordP4uiv));
+}
+
+static INLINE void SET_TexCoordP4uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_TexCoordP4uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribP1ui)(GLuint, GLenum, GLboolean, GLuint);
+#define CALL_VertexAttribP1ui(disp, parameters) \
+ (* GET_VertexAttribP1ui(disp)) parameters
+static INLINE _glptr_VertexAttribP1ui GET_VertexAttribP1ui(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribP1ui) (GET_by_offset(disp, _gloffset_VertexAttribP1ui));
+}
+
+static INLINE void SET_VertexAttribP1ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLboolean, GLuint)) {
+ SET_by_offset(disp, _gloffset_VertexAttribP1ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribP1uiv)(GLuint, GLenum, GLboolean, const GLuint *);
+#define CALL_VertexAttribP1uiv(disp, parameters) \
+ (* GET_VertexAttribP1uiv(disp)) parameters
+static INLINE _glptr_VertexAttribP1uiv GET_VertexAttribP1uiv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribP1uiv) (GET_by_offset(disp, _gloffset_VertexAttribP1uiv));
+}
+
+static INLINE void SET_VertexAttribP1uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLboolean, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribP1uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribP2ui)(GLuint, GLenum, GLboolean, GLuint);
+#define CALL_VertexAttribP2ui(disp, parameters) \
+ (* GET_VertexAttribP2ui(disp)) parameters
+static INLINE _glptr_VertexAttribP2ui GET_VertexAttribP2ui(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribP2ui) (GET_by_offset(disp, _gloffset_VertexAttribP2ui));
+}
+
+static INLINE void SET_VertexAttribP2ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLboolean, GLuint)) {
+ SET_by_offset(disp, _gloffset_VertexAttribP2ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribP2uiv)(GLuint, GLenum, GLboolean, const GLuint *);
+#define CALL_VertexAttribP2uiv(disp, parameters) \
+ (* GET_VertexAttribP2uiv(disp)) parameters
+static INLINE _glptr_VertexAttribP2uiv GET_VertexAttribP2uiv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribP2uiv) (GET_by_offset(disp, _gloffset_VertexAttribP2uiv));
+}
+
+static INLINE void SET_VertexAttribP2uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLboolean, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribP2uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribP3ui)(GLuint, GLenum, GLboolean, GLuint);
+#define CALL_VertexAttribP3ui(disp, parameters) \
+ (* GET_VertexAttribP3ui(disp)) parameters
+static INLINE _glptr_VertexAttribP3ui GET_VertexAttribP3ui(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribP3ui) (GET_by_offset(disp, _gloffset_VertexAttribP3ui));
+}
+
+static INLINE void SET_VertexAttribP3ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLboolean, GLuint)) {
+ SET_by_offset(disp, _gloffset_VertexAttribP3ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribP3uiv)(GLuint, GLenum, GLboolean, const GLuint *);
+#define CALL_VertexAttribP3uiv(disp, parameters) \
+ (* GET_VertexAttribP3uiv(disp)) parameters
+static INLINE _glptr_VertexAttribP3uiv GET_VertexAttribP3uiv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribP3uiv) (GET_by_offset(disp, _gloffset_VertexAttribP3uiv));
+}
+
+static INLINE void SET_VertexAttribP3uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLboolean, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribP3uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribP4ui)(GLuint, GLenum, GLboolean, GLuint);
+#define CALL_VertexAttribP4ui(disp, parameters) \
+ (* GET_VertexAttribP4ui(disp)) parameters
+static INLINE _glptr_VertexAttribP4ui GET_VertexAttribP4ui(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribP4ui) (GET_by_offset(disp, _gloffset_VertexAttribP4ui));
+}
+
+static INLINE void SET_VertexAttribP4ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLboolean, GLuint)) {
+ SET_by_offset(disp, _gloffset_VertexAttribP4ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribP4uiv)(GLuint, GLenum, GLboolean, const GLuint *);
+#define CALL_VertexAttribP4uiv(disp, parameters) \
+ (* GET_VertexAttribP4uiv(disp)) parameters
+static INLINE _glptr_VertexAttribP4uiv GET_VertexAttribP4uiv(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribP4uiv) (GET_by_offset(disp, _gloffset_VertexAttribP4uiv));
+}
+
+static INLINE void SET_VertexAttribP4uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLboolean, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribP4uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexP2ui)(GLenum, GLuint);
+#define CALL_VertexP2ui(disp, parameters) \
+ (* GET_VertexP2ui(disp)) parameters
+static INLINE _glptr_VertexP2ui GET_VertexP2ui(struct _glapi_table *disp) {
+ return (_glptr_VertexP2ui) (GET_by_offset(disp, _gloffset_VertexP2ui));
+}
+
+static INLINE void SET_VertexP2ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_VertexP2ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexP2uiv)(GLenum, const GLuint *);
+#define CALL_VertexP2uiv(disp, parameters) \
+ (* GET_VertexP2uiv(disp)) parameters
+static INLINE _glptr_VertexP2uiv GET_VertexP2uiv(struct _glapi_table *disp) {
+ return (_glptr_VertexP2uiv) (GET_by_offset(disp, _gloffset_VertexP2uiv));
+}
+
+static INLINE void SET_VertexP2uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_VertexP2uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexP3ui)(GLenum, GLuint);
+#define CALL_VertexP3ui(disp, parameters) \
+ (* GET_VertexP3ui(disp)) parameters
+static INLINE _glptr_VertexP3ui GET_VertexP3ui(struct _glapi_table *disp) {
+ return (_glptr_VertexP3ui) (GET_by_offset(disp, _gloffset_VertexP3ui));
+}
+
+static INLINE void SET_VertexP3ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_VertexP3ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexP3uiv)(GLenum, const GLuint *);
+#define CALL_VertexP3uiv(disp, parameters) \
+ (* GET_VertexP3uiv(disp)) parameters
+static INLINE _glptr_VertexP3uiv GET_VertexP3uiv(struct _glapi_table *disp) {
+ return (_glptr_VertexP3uiv) (GET_by_offset(disp, _gloffset_VertexP3uiv));
+}
+
+static INLINE void SET_VertexP3uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_VertexP3uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexP4ui)(GLenum, GLuint);
+#define CALL_VertexP4ui(disp, parameters) \
+ (* GET_VertexP4ui(disp)) parameters
+static INLINE _glptr_VertexP4ui GET_VertexP4ui(struct _glapi_table *disp) {
+ return (_glptr_VertexP4ui) (GET_by_offset(disp, _gloffset_VertexP4ui));
+}
+
+static INLINE void SET_VertexP4ui(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_VertexP4ui, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexP4uiv)(GLenum, const GLuint *);
+#define CALL_VertexP4uiv(disp, parameters) \
+ (* GET_VertexP4uiv(disp)) parameters
+static INLINE _glptr_VertexP4uiv GET_VertexP4uiv(struct _glapi_table *disp) {
+ return (_glptr_VertexP4uiv) (GET_by_offset(disp, _gloffset_VertexP4uiv));
+}
+
+static INLINE void SET_VertexP4uiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_VertexP4uiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BindTransformFeedback)(GLenum, GLuint);
+#define CALL_BindTransformFeedback(disp, parameters) \
+ (* GET_BindTransformFeedback(disp)) parameters
+static INLINE _glptr_BindTransformFeedback GET_BindTransformFeedback(struct _glapi_table *disp) {
+ return (_glptr_BindTransformFeedback) (GET_by_offset(disp, _gloffset_BindTransformFeedback));
+}
+
+static INLINE void SET_BindTransformFeedback(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_BindTransformFeedback, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DeleteTransformFeedbacks)(GLsizei, const GLuint *);
+#define CALL_DeleteTransformFeedbacks(disp, parameters) \
+ (* GET_DeleteTransformFeedbacks(disp)) parameters
+static INLINE _glptr_DeleteTransformFeedbacks GET_DeleteTransformFeedbacks(struct _glapi_table *disp) {
+ return (_glptr_DeleteTransformFeedbacks) (GET_by_offset(disp, _gloffset_DeleteTransformFeedbacks));
+}
+
+static INLINE void SET_DeleteTransformFeedbacks(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_DeleteTransformFeedbacks, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawTransformFeedback)(GLenum, GLuint);
+#define CALL_DrawTransformFeedback(disp, parameters) \
+ (* GET_DrawTransformFeedback(disp)) parameters
+static INLINE _glptr_DrawTransformFeedback GET_DrawTransformFeedback(struct _glapi_table *disp) {
+ return (_glptr_DrawTransformFeedback) (GET_by_offset(disp, _gloffset_DrawTransformFeedback));
+}
+
+static INLINE void SET_DrawTransformFeedback(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_DrawTransformFeedback, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GenTransformFeedbacks)(GLsizei, GLuint *);
+#define CALL_GenTransformFeedbacks(disp, parameters) \
+ (* GET_GenTransformFeedbacks(disp)) parameters
+static INLINE _glptr_GenTransformFeedbacks GET_GenTransformFeedbacks(struct _glapi_table *disp) {
+ return (_glptr_GenTransformFeedbacks) (GET_by_offset(disp, _gloffset_GenTransformFeedbacks));
+}
+
+static INLINE void SET_GenTransformFeedbacks(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GenTransformFeedbacks, fn);
+}
+
+typedef GLboolean (GLAPIENTRYP _glptr_IsTransformFeedback)(GLuint);
+#define CALL_IsTransformFeedback(disp, parameters) \
+ (* GET_IsTransformFeedback(disp)) parameters
+static INLINE _glptr_IsTransformFeedback GET_IsTransformFeedback(struct _glapi_table *disp) {
+ return (_glptr_IsTransformFeedback) (GET_by_offset(disp, _gloffset_IsTransformFeedback));
+}
+
+static INLINE void SET_IsTransformFeedback(struct _glapi_table *disp, GLboolean (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_IsTransformFeedback, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PauseTransformFeedback)(void);
+#define CALL_PauseTransformFeedback(disp, parameters) \
+ (* GET_PauseTransformFeedback(disp)) parameters
+static INLINE _glptr_PauseTransformFeedback GET_PauseTransformFeedback(struct _glapi_table *disp) {
+ return (_glptr_PauseTransformFeedback) (GET_by_offset(disp, _gloffset_PauseTransformFeedback));
+}
+
+static INLINE void SET_PauseTransformFeedback(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_PauseTransformFeedback, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ResumeTransformFeedback)(void);
+#define CALL_ResumeTransformFeedback(disp, parameters) \
+ (* GET_ResumeTransformFeedback(disp)) parameters
+static INLINE _glptr_ResumeTransformFeedback GET_ResumeTransformFeedback(struct _glapi_table *disp) {
+ return (_glptr_ResumeTransformFeedback) (GET_by_offset(disp, _gloffset_ResumeTransformFeedback));
+}
+
+static INLINE void SET_ResumeTransformFeedback(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_ResumeTransformFeedback, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BeginQueryIndexed)(GLenum, GLuint, GLuint);
+#define CALL_BeginQueryIndexed(disp, parameters) \
+ (* GET_BeginQueryIndexed(disp)) parameters
+static INLINE _glptr_BeginQueryIndexed GET_BeginQueryIndexed(struct _glapi_table *disp) {
+ return (_glptr_BeginQueryIndexed) (GET_by_offset(disp, _gloffset_BeginQueryIndexed));
+}
+
+static INLINE void SET_BeginQueryIndexed(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_BeginQueryIndexed, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawTransformFeedbackStream)(GLenum, GLuint, GLuint);
+#define CALL_DrawTransformFeedbackStream(disp, parameters) \
+ (* GET_DrawTransformFeedbackStream(disp)) parameters
+static INLINE _glptr_DrawTransformFeedbackStream GET_DrawTransformFeedbackStream(struct _glapi_table *disp) {
+ return (_glptr_DrawTransformFeedbackStream) (GET_by_offset(disp, _gloffset_DrawTransformFeedbackStream));
+}
+
+static INLINE void SET_DrawTransformFeedbackStream(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_DrawTransformFeedbackStream, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EndQueryIndexed)(GLenum, GLuint);
+#define CALL_EndQueryIndexed(disp, parameters) \
+ (* GET_EndQueryIndexed(disp)) parameters
+static INLINE _glptr_EndQueryIndexed GET_EndQueryIndexed(struct _glapi_table *disp) {
+ return (_glptr_EndQueryIndexed) (GET_by_offset(disp, _gloffset_EndQueryIndexed));
+}
+
+static INLINE void SET_EndQueryIndexed(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_EndQueryIndexed, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetQueryIndexediv)(GLenum, GLuint, GLenum, GLint *);
+#define CALL_GetQueryIndexediv(disp, parameters) \
+ (* GET_GetQueryIndexediv(disp)) parameters
+static INLINE _glptr_GetQueryIndexediv GET_GetQueryIndexediv(struct _glapi_table *disp) {
+ return (_glptr_GetQueryIndexediv) (GET_by_offset(disp, _gloffset_GetQueryIndexediv));
+}
+
+static INLINE void SET_GetQueryIndexediv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetQueryIndexediv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ClearDepthf)(GLclampf);
+#define CALL_ClearDepthf(disp, parameters) \
+ (* GET_ClearDepthf(disp)) parameters
+static INLINE _glptr_ClearDepthf GET_ClearDepthf(struct _glapi_table *disp) {
+ return (_glptr_ClearDepthf) (GET_by_offset(disp, _gloffset_ClearDepthf));
+}
+
+static INLINE void SET_ClearDepthf(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLclampf)) {
+ SET_by_offset(disp, _gloffset_ClearDepthf, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DepthRangef)(GLclampf, GLclampf);
+#define CALL_DepthRangef(disp, parameters) \
+ (* GET_DepthRangef(disp)) parameters
+static INLINE _glptr_DepthRangef GET_DepthRangef(struct _glapi_table *disp) {
+ return (_glptr_DepthRangef) (GET_by_offset(disp, _gloffset_DepthRangef));
+}
+
+static INLINE void SET_DepthRangef(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLclampf, GLclampf)) {
+ SET_by_offset(disp, _gloffset_DepthRangef, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetShaderPrecisionFormat)(GLenum, GLenum, GLint *, GLint *);
+#define CALL_GetShaderPrecisionFormat(disp, parameters) \
+ (* GET_GetShaderPrecisionFormat(disp)) parameters
+static INLINE _glptr_GetShaderPrecisionFormat GET_GetShaderPrecisionFormat(struct _glapi_table *disp) {
+ return (_glptr_GetShaderPrecisionFormat) (GET_by_offset(disp, _gloffset_GetShaderPrecisionFormat));
+}
+
+static INLINE void SET_GetShaderPrecisionFormat(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint *, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetShaderPrecisionFormat, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ReleaseShaderCompiler)(void);
+#define CALL_ReleaseShaderCompiler(disp, parameters) \
+ (* GET_ReleaseShaderCompiler(disp)) parameters
+static INLINE _glptr_ReleaseShaderCompiler GET_ReleaseShaderCompiler(struct _glapi_table *disp) {
+ return (_glptr_ReleaseShaderCompiler) (GET_by_offset(disp, _gloffset_ReleaseShaderCompiler));
+}
+
+static INLINE void SET_ReleaseShaderCompiler(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_ReleaseShaderCompiler, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ShaderBinary)(GLsizei, const GLuint *, GLenum, const GLvoid *, GLsizei);
+#define CALL_ShaderBinary(disp, parameters) \
+ (* GET_ShaderBinary(disp)) parameters
+static INLINE _glptr_ShaderBinary GET_ShaderBinary(struct _glapi_table *disp) {
+ return (_glptr_ShaderBinary) (GET_by_offset(disp, _gloffset_ShaderBinary));
+}
+
+static INLINE void SET_ShaderBinary(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, const GLuint *, GLenum, const GLvoid *, GLsizei)) {
+ SET_by_offset(disp, _gloffset_ShaderBinary, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetProgramBinary)(GLuint, GLsizei, GLsizei *, GLenum *, GLvoid *);
+#define CALL_GetProgramBinary(disp, parameters) \
+ (* GET_GetProgramBinary(disp)) parameters
+static INLINE _glptr_GetProgramBinary GET_GetProgramBinary(struct _glapi_table *disp) {
+ return (_glptr_GetProgramBinary) (GET_by_offset(disp, _gloffset_GetProgramBinary));
+}
+
+static INLINE void SET_GetProgramBinary(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, GLsizei *, GLenum *, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_GetProgramBinary, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProgramBinary)(GLuint, GLenum, const GLvoid *, GLsizei);
+#define CALL_ProgramBinary(disp, parameters) \
+ (* GET_ProgramBinary(disp)) parameters
+static INLINE _glptr_ProgramBinary GET_ProgramBinary(struct _glapi_table *disp) {
+ return (_glptr_ProgramBinary) (GET_by_offset(disp, _gloffset_ProgramBinary));
+}
+
+static INLINE void SET_ProgramBinary(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, const GLvoid *, GLsizei)) {
+ SET_by_offset(disp, _gloffset_ProgramBinary, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProgramParameteri)(GLuint, GLenum, GLint);
+#define CALL_ProgramParameteri(disp, parameters) \
+ (* GET_ProgramParameteri(disp)) parameters
+static INLINE _glptr_ProgramParameteri GET_ProgramParameteri(struct _glapi_table *disp) {
+ return (_glptr_ProgramParameteri) (GET_by_offset(disp, _gloffset_ProgramParameteri));
+}
+
+static INLINE void SET_ProgramParameteri(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLint)) {
+ SET_by_offset(disp, _gloffset_ProgramParameteri, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DebugMessageCallbackARB)(GLDEBUGPROCARB, const GLvoid *);
+#define CALL_DebugMessageCallbackARB(disp, parameters) \
+ (* GET_DebugMessageCallbackARB(disp)) parameters
+static INLINE _glptr_DebugMessageCallbackARB GET_DebugMessageCallbackARB(struct _glapi_table *disp) {
+ return (_glptr_DebugMessageCallbackARB) (GET_by_offset(disp, _gloffset_DebugMessageCallbackARB));
+}
+
+static INLINE void SET_DebugMessageCallbackARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLDEBUGPROCARB, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_DebugMessageCallbackARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DebugMessageControlARB)(GLenum, GLenum, GLenum, GLsizei, const GLuint *, GLboolean);
+#define CALL_DebugMessageControlARB(disp, parameters) \
+ (* GET_DebugMessageControlARB(disp)) parameters
+static INLINE _glptr_DebugMessageControlARB GET_DebugMessageControlARB(struct _glapi_table *disp) {
+ return (_glptr_DebugMessageControlARB) (GET_by_offset(disp, _gloffset_DebugMessageControlARB));
+}
+
+static INLINE void SET_DebugMessageControlARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLenum, GLsizei, const GLuint *, GLboolean)) {
+ SET_by_offset(disp, _gloffset_DebugMessageControlARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DebugMessageInsertARB)(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLcharARB *);
+#define CALL_DebugMessageInsertARB(disp, parameters) \
+ (* GET_DebugMessageInsertARB(disp)) parameters
+static INLINE _glptr_DebugMessageInsertARB GET_DebugMessageInsertARB(struct _glapi_table *disp) {
+ return (_glptr_DebugMessageInsertARB) (GET_by_offset(disp, _gloffset_DebugMessageInsertARB));
+}
+
+static INLINE void SET_DebugMessageInsertARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLcharARB *)) {
+ SET_by_offset(disp, _gloffset_DebugMessageInsertARB, fn);
+}
+
+typedef GLuint (GLAPIENTRYP _glptr_GetDebugMessageLogARB)(GLuint, GLsizei, GLenum *, GLenum *, GLuint *, GLenum *, GLsizei *, GLcharARB *);
+#define CALL_GetDebugMessageLogARB(disp, parameters) \
+ (* GET_GetDebugMessageLogARB(disp)) parameters
+static INLINE _glptr_GetDebugMessageLogARB GET_GetDebugMessageLogARB(struct _glapi_table *disp) {
+ return (_glptr_GetDebugMessageLogARB) (GET_by_offset(disp, _gloffset_GetDebugMessageLogARB));
+}
+
+static INLINE void SET_GetDebugMessageLogARB(struct _glapi_table *disp, GLuint (GLAPIENTRYP fn)(GLuint, GLsizei, GLenum *, GLenum *, GLuint *, GLenum *, GLsizei *, GLcharARB *)) {
+ SET_by_offset(disp, _gloffset_GetDebugMessageLogARB, fn);
+}
+
+typedef GLenum (GLAPIENTRYP _glptr_GetGraphicsResetStatusARB)(void);
+#define CALL_GetGraphicsResetStatusARB(disp, parameters) \
+ (* GET_GetGraphicsResetStatusARB(disp)) parameters
+static INLINE _glptr_GetGraphicsResetStatusARB GET_GetGraphicsResetStatusARB(struct _glapi_table *disp) {
+ return (_glptr_GetGraphicsResetStatusARB) (GET_by_offset(disp, _gloffset_GetGraphicsResetStatusARB));
+}
+
+static INLINE void SET_GetGraphicsResetStatusARB(struct _glapi_table *disp, GLenum (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_GetGraphicsResetStatusARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetnColorTableARB)(GLenum, GLenum, GLenum, GLsizei, GLvoid *);
+#define CALL_GetnColorTableARB(disp, parameters) \
+ (* GET_GetnColorTableARB(disp)) parameters
+static INLINE _glptr_GetnColorTableARB GET_GetnColorTableARB(struct _glapi_table *disp) {
+ return (_glptr_GetnColorTableARB) (GET_by_offset(disp, _gloffset_GetnColorTableARB));
+}
+
+static INLINE void SET_GetnColorTableARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLenum, GLsizei, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_GetnColorTableARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetnCompressedTexImageARB)(GLenum, GLint, GLsizei, GLvoid *);
+#define CALL_GetnCompressedTexImageARB(disp, parameters) \
+ (* GET_GetnCompressedTexImageARB(disp)) parameters
+static INLINE _glptr_GetnCompressedTexImageARB GET_GetnCompressedTexImageARB(struct _glapi_table *disp) {
+ return (_glptr_GetnCompressedTexImageARB) (GET_by_offset(disp, _gloffset_GetnCompressedTexImageARB));
+}
+
+static INLINE void SET_GetnCompressedTexImageARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLsizei, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_GetnCompressedTexImageARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetnConvolutionFilterARB)(GLenum, GLenum, GLenum, GLsizei, GLvoid *);
+#define CALL_GetnConvolutionFilterARB(disp, parameters) \
+ (* GET_GetnConvolutionFilterARB(disp)) parameters
+static INLINE _glptr_GetnConvolutionFilterARB GET_GetnConvolutionFilterARB(struct _glapi_table *disp) {
+ return (_glptr_GetnConvolutionFilterARB) (GET_by_offset(disp, _gloffset_GetnConvolutionFilterARB));
+}
+
+static INLINE void SET_GetnConvolutionFilterARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLenum, GLsizei, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_GetnConvolutionFilterARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetnHistogramARB)(GLenum, GLboolean, GLenum, GLenum, GLsizei, GLvoid *);
+#define CALL_GetnHistogramARB(disp, parameters) \
+ (* GET_GetnHistogramARB(disp)) parameters
+static INLINE _glptr_GetnHistogramARB GET_GetnHistogramARB(struct _glapi_table *disp) {
+ return (_glptr_GetnHistogramARB) (GET_by_offset(disp, _gloffset_GetnHistogramARB));
+}
+
+static INLINE void SET_GetnHistogramARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLboolean, GLenum, GLenum, GLsizei, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_GetnHistogramARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetnMapdvARB)(GLenum, GLenum, GLsizei, GLdouble *);
+#define CALL_GetnMapdvARB(disp, parameters) \
+ (* GET_GetnMapdvARB(disp)) parameters
+static INLINE _glptr_GetnMapdvARB GET_GetnMapdvARB(struct _glapi_table *disp) {
+ return (_glptr_GetnMapdvARB) (GET_by_offset(disp, _gloffset_GetnMapdvARB));
+}
+
+static INLINE void SET_GetnMapdvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLsizei, GLdouble *)) {
+ SET_by_offset(disp, _gloffset_GetnMapdvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetnMapfvARB)(GLenum, GLenum, GLsizei, GLfloat *);
+#define CALL_GetnMapfvARB(disp, parameters) \
+ (* GET_GetnMapfvARB(disp)) parameters
+static INLINE _glptr_GetnMapfvARB GET_GetnMapfvARB(struct _glapi_table *disp) {
+ return (_glptr_GetnMapfvARB) (GET_by_offset(disp, _gloffset_GetnMapfvARB));
+}
+
+static INLINE void SET_GetnMapfvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLsizei, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetnMapfvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetnMapivARB)(GLenum, GLenum, GLsizei, GLint *);
+#define CALL_GetnMapivARB(disp, parameters) \
+ (* GET_GetnMapivARB(disp)) parameters
+static INLINE _glptr_GetnMapivARB GET_GetnMapivARB(struct _glapi_table *disp) {
+ return (_glptr_GetnMapivARB) (GET_by_offset(disp, _gloffset_GetnMapivARB));
+}
+
+static INLINE void SET_GetnMapivARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLsizei, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetnMapivARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetnMinmaxARB)(GLenum, GLboolean, GLenum, GLenum, GLsizei, GLvoid *);
+#define CALL_GetnMinmaxARB(disp, parameters) \
+ (* GET_GetnMinmaxARB(disp)) parameters
+static INLINE _glptr_GetnMinmaxARB GET_GetnMinmaxARB(struct _glapi_table *disp) {
+ return (_glptr_GetnMinmaxARB) (GET_by_offset(disp, _gloffset_GetnMinmaxARB));
+}
+
+static INLINE void SET_GetnMinmaxARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLboolean, GLenum, GLenum, GLsizei, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_GetnMinmaxARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetnPixelMapfvARB)(GLenum, GLsizei, GLfloat *);
+#define CALL_GetnPixelMapfvARB(disp, parameters) \
+ (* GET_GetnPixelMapfvARB(disp)) parameters
+static INLINE _glptr_GetnPixelMapfvARB GET_GetnPixelMapfvARB(struct _glapi_table *disp) {
+ return (_glptr_GetnPixelMapfvARB) (GET_by_offset(disp, _gloffset_GetnPixelMapfvARB));
+}
+
+static INLINE void SET_GetnPixelMapfvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetnPixelMapfvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetnPixelMapuivARB)(GLenum, GLsizei, GLuint *);
+#define CALL_GetnPixelMapuivARB(disp, parameters) \
+ (* GET_GetnPixelMapuivARB(disp)) parameters
+static INLINE _glptr_GetnPixelMapuivARB GET_GetnPixelMapuivARB(struct _glapi_table *disp) {
+ return (_glptr_GetnPixelMapuivARB) (GET_by_offset(disp, _gloffset_GetnPixelMapuivARB));
+}
+
+static INLINE void SET_GetnPixelMapuivARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GetnPixelMapuivARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetnPixelMapusvARB)(GLenum, GLsizei, GLushort *);
+#define CALL_GetnPixelMapusvARB(disp, parameters) \
+ (* GET_GetnPixelMapusvARB(disp)) parameters
+static INLINE _glptr_GetnPixelMapusvARB GET_GetnPixelMapusvARB(struct _glapi_table *disp) {
+ return (_glptr_GetnPixelMapusvARB) (GET_by_offset(disp, _gloffset_GetnPixelMapusvARB));
+}
+
+static INLINE void SET_GetnPixelMapusvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLushort *)) {
+ SET_by_offset(disp, _gloffset_GetnPixelMapusvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetnPolygonStippleARB)(GLsizei, GLubyte *);
+#define CALL_GetnPolygonStippleARB(disp, parameters) \
+ (* GET_GetnPolygonStippleARB(disp)) parameters
+static INLINE _glptr_GetnPolygonStippleARB GET_GetnPolygonStippleARB(struct _glapi_table *disp) {
+ return (_glptr_GetnPolygonStippleARB) (GET_by_offset(disp, _gloffset_GetnPolygonStippleARB));
+}
+
+static INLINE void SET_GetnPolygonStippleARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, GLubyte *)) {
+ SET_by_offset(disp, _gloffset_GetnPolygonStippleARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetnSeparableFilterARB)(GLenum, GLenum, GLenum, GLsizei, GLvoid *, GLsizei, GLvoid *, GLvoid *);
+#define CALL_GetnSeparableFilterARB(disp, parameters) \
+ (* GET_GetnSeparableFilterARB(disp)) parameters
+static INLINE _glptr_GetnSeparableFilterARB GET_GetnSeparableFilterARB(struct _glapi_table *disp) {
+ return (_glptr_GetnSeparableFilterARB) (GET_by_offset(disp, _gloffset_GetnSeparableFilterARB));
+}
+
+static INLINE void SET_GetnSeparableFilterARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLenum, GLsizei, GLvoid *, GLsizei, GLvoid *, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_GetnSeparableFilterARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetnTexImageARB)(GLenum, GLint, GLenum, GLenum, GLsizei, GLvoid *);
+#define CALL_GetnTexImageARB(disp, parameters) \
+ (* GET_GetnTexImageARB(disp)) parameters
+static INLINE _glptr_GetnTexImageARB GET_GetnTexImageARB(struct _glapi_table *disp) {
+ return (_glptr_GetnTexImageARB) (GET_by_offset(disp, _gloffset_GetnTexImageARB));
+}
+
+static INLINE void SET_GetnTexImageARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLenum, GLenum, GLsizei, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_GetnTexImageARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetnUniformdvARB)(GLhandleARB, GLint, GLsizei, GLdouble *);
+#define CALL_GetnUniformdvARB(disp, parameters) \
+ (* GET_GetnUniformdvARB(disp)) parameters
+static INLINE _glptr_GetnUniformdvARB GET_GetnUniformdvARB(struct _glapi_table *disp) {
+ return (_glptr_GetnUniformdvARB) (GET_by_offset(disp, _gloffset_GetnUniformdvARB));
+}
+
+static INLINE void SET_GetnUniformdvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLhandleARB, GLint, GLsizei, GLdouble *)) {
+ SET_by_offset(disp, _gloffset_GetnUniformdvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetnUniformfvARB)(GLhandleARB, GLint, GLsizei, GLfloat *);
+#define CALL_GetnUniformfvARB(disp, parameters) \
+ (* GET_GetnUniformfvARB(disp)) parameters
+static INLINE _glptr_GetnUniformfvARB GET_GetnUniformfvARB(struct _glapi_table *disp) {
+ return (_glptr_GetnUniformfvARB) (GET_by_offset(disp, _gloffset_GetnUniformfvARB));
+}
+
+static INLINE void SET_GetnUniformfvARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLhandleARB, GLint, GLsizei, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetnUniformfvARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetnUniformivARB)(GLhandleARB, GLint, GLsizei, GLint *);
+#define CALL_GetnUniformivARB(disp, parameters) \
+ (* GET_GetnUniformivARB(disp)) parameters
+static INLINE _glptr_GetnUniformivARB GET_GetnUniformivARB(struct _glapi_table *disp) {
+ return (_glptr_GetnUniformivARB) (GET_by_offset(disp, _gloffset_GetnUniformivARB));
+}
+
+static INLINE void SET_GetnUniformivARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLhandleARB, GLint, GLsizei, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetnUniformivARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetnUniformuivARB)(GLhandleARB, GLint, GLsizei, GLuint *);
+#define CALL_GetnUniformuivARB(disp, parameters) \
+ (* GET_GetnUniformuivARB(disp)) parameters
+static INLINE _glptr_GetnUniformuivARB GET_GetnUniformuivARB(struct _glapi_table *disp) {
+ return (_glptr_GetnUniformuivARB) (GET_by_offset(disp, _gloffset_GetnUniformuivARB));
+}
+
+static INLINE void SET_GetnUniformuivARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLhandleARB, GLint, GLsizei, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GetnUniformuivARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ReadnPixelsARB)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLsizei, GLvoid *);
+#define CALL_ReadnPixelsARB(disp, parameters) \
+ (* GET_ReadnPixelsARB(disp)) parameters
+static INLINE _glptr_ReadnPixelsARB GET_ReadnPixelsARB(struct _glapi_table *disp) {
+ return (_glptr_ReadnPixelsARB) (GET_by_offset(disp, _gloffset_ReadnPixelsARB));
+}
+
+static INLINE void SET_ReadnPixelsARB(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLsizei, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_ReadnPixelsARB, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawArraysInstancedBaseInstance)(GLenum, GLint, GLsizei, GLsizei, GLuint);
+#define CALL_DrawArraysInstancedBaseInstance(disp, parameters) \
+ (* GET_DrawArraysInstancedBaseInstance(disp)) parameters
+static INLINE _glptr_DrawArraysInstancedBaseInstance GET_DrawArraysInstancedBaseInstance(struct _glapi_table *disp) {
+ return (_glptr_DrawArraysInstancedBaseInstance) (GET_by_offset(disp, _gloffset_DrawArraysInstancedBaseInstance));
+}
+
+static INLINE void SET_DrawArraysInstancedBaseInstance(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLsizei, GLsizei, GLuint)) {
+ SET_by_offset(disp, _gloffset_DrawArraysInstancedBaseInstance, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawElementsInstancedBaseInstance)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLuint);
+#define CALL_DrawElementsInstancedBaseInstance(disp, parameters) \
+ (* GET_DrawElementsInstancedBaseInstance(disp)) parameters
+static INLINE _glptr_DrawElementsInstancedBaseInstance GET_DrawElementsInstancedBaseInstance(struct _glapi_table *disp) {
+ return (_glptr_DrawElementsInstancedBaseInstance) (GET_by_offset(disp, _gloffset_DrawElementsInstancedBaseInstance));
+}
+
+static INLINE void SET_DrawElementsInstancedBaseInstance(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLuint)) {
+ SET_by_offset(disp, _gloffset_DrawElementsInstancedBaseInstance, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawElementsInstancedBaseVertexBaseInstance)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLint, GLuint);
+#define CALL_DrawElementsInstancedBaseVertexBaseInstance(disp, parameters) \
+ (* GET_DrawElementsInstancedBaseVertexBaseInstance(disp)) parameters
+static INLINE _glptr_DrawElementsInstancedBaseVertexBaseInstance GET_DrawElementsInstancedBaseVertexBaseInstance(struct _glapi_table *disp) {
+ return (_glptr_DrawElementsInstancedBaseVertexBaseInstance) (GET_by_offset(disp, _gloffset_DrawElementsInstancedBaseVertexBaseInstance));
+}
+
+static INLINE void SET_DrawElementsInstancedBaseVertexBaseInstance(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLint, GLuint)) {
+ SET_by_offset(disp, _gloffset_DrawElementsInstancedBaseVertexBaseInstance, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawTransformFeedbackInstanced)(GLenum, GLuint, GLsizei);
+#define CALL_DrawTransformFeedbackInstanced(disp, parameters) \
+ (* GET_DrawTransformFeedbackInstanced(disp)) parameters
+static INLINE _glptr_DrawTransformFeedbackInstanced GET_DrawTransformFeedbackInstanced(struct _glapi_table *disp) {
+ return (_glptr_DrawTransformFeedbackInstanced) (GET_by_offset(disp, _gloffset_DrawTransformFeedbackInstanced));
+}
+
+static INLINE void SET_DrawTransformFeedbackInstanced(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLsizei)) {
+ SET_by_offset(disp, _gloffset_DrawTransformFeedbackInstanced, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawTransformFeedbackStreamInstanced)(GLenum, GLuint, GLuint, GLsizei);
+#define CALL_DrawTransformFeedbackStreamInstanced(disp, parameters) \
+ (* GET_DrawTransformFeedbackStreamInstanced(disp)) parameters
+static INLINE _glptr_DrawTransformFeedbackStreamInstanced GET_DrawTransformFeedbackStreamInstanced(struct _glapi_table *disp) {
+ return (_glptr_DrawTransformFeedbackStreamInstanced) (GET_by_offset(disp, _gloffset_DrawTransformFeedbackStreamInstanced));
+}
+
+static INLINE void SET_DrawTransformFeedbackStreamInstanced(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLuint, GLsizei)) {
+ SET_by_offset(disp, _gloffset_DrawTransformFeedbackStreamInstanced, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetInternalformativ)(GLenum, GLenum, GLenum, GLsizei, GLint *);
+#define CALL_GetInternalformativ(disp, parameters) \
+ (* GET_GetInternalformativ(disp)) parameters
+static INLINE _glptr_GetInternalformativ GET_GetInternalformativ(struct _glapi_table *disp) {
+ return (_glptr_GetInternalformativ) (GET_by_offset(disp, _gloffset_GetInternalformativ));
+}
+
+static INLINE void SET_GetInternalformativ(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLenum, GLsizei, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetInternalformativ, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetActiveAtomicCounterBufferiv)(GLuint, GLuint, GLenum, GLint *);
+#define CALL_GetActiveAtomicCounterBufferiv(disp, parameters) \
+ (* GET_GetActiveAtomicCounterBufferiv(disp)) parameters
+static INLINE _glptr_GetActiveAtomicCounterBufferiv GET_GetActiveAtomicCounterBufferiv(struct _glapi_table *disp) {
+ return (_glptr_GetActiveAtomicCounterBufferiv) (GET_by_offset(disp, _gloffset_GetActiveAtomicCounterBufferiv));
+}
+
+static INLINE void SET_GetActiveAtomicCounterBufferiv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetActiveAtomicCounterBufferiv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexStorage1D)(GLenum, GLsizei, GLenum, GLsizei);
+#define CALL_TexStorage1D(disp, parameters) \
+ (* GET_TexStorage1D(disp)) parameters
+static INLINE _glptr_TexStorage1D GET_TexStorage1D(struct _glapi_table *disp) {
+ return (_glptr_TexStorage1D) (GET_by_offset(disp, _gloffset_TexStorage1D));
+}
+
+static INLINE void SET_TexStorage1D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLenum, GLsizei)) {
+ SET_by_offset(disp, _gloffset_TexStorage1D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexStorage2D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei);
+#define CALL_TexStorage2D(disp, parameters) \
+ (* GET_TexStorage2D(disp)) parameters
+static INLINE _glptr_TexStorage2D GET_TexStorage2D(struct _glapi_table *disp) {
+ return (_glptr_TexStorage2D) (GET_by_offset(disp, _gloffset_TexStorage2D));
+}
+
+static INLINE void SET_TexStorage2D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLenum, GLsizei, GLsizei)) {
+ SET_by_offset(disp, _gloffset_TexStorage2D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexStorage3D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei);
+#define CALL_TexStorage3D(disp, parameters) \
+ (* GET_TexStorage3D(disp)) parameters
+static INLINE _glptr_TexStorage3D GET_TexStorage3D(struct _glapi_table *disp) {
+ return (_glptr_TexStorage3D) (GET_by_offset(disp, _gloffset_TexStorage3D));
+}
+
+static INLINE void SET_TexStorage3D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei)) {
+ SET_by_offset(disp, _gloffset_TexStorage3D, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TextureStorage1DEXT)(GLuint, GLenum, GLsizei, GLenum, GLsizei);
+#define CALL_TextureStorage1DEXT(disp, parameters) \
+ (* GET_TextureStorage1DEXT(disp)) parameters
+static INLINE _glptr_TextureStorage1DEXT GET_TextureStorage1DEXT(struct _glapi_table *disp) {
+ return (_glptr_TextureStorage1DEXT) (GET_by_offset(disp, _gloffset_TextureStorage1DEXT));
+}
+
+static INLINE void SET_TextureStorage1DEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLsizei, GLenum, GLsizei)) {
+ SET_by_offset(disp, _gloffset_TextureStorage1DEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TextureStorage2DEXT)(GLuint, GLenum, GLsizei, GLenum, GLsizei, GLsizei);
+#define CALL_TextureStorage2DEXT(disp, parameters) \
+ (* GET_TextureStorage2DEXT(disp)) parameters
+static INLINE _glptr_TextureStorage2DEXT GET_TextureStorage2DEXT(struct _glapi_table *disp) {
+ return (_glptr_TextureStorage2DEXT) (GET_by_offset(disp, _gloffset_TextureStorage2DEXT));
+}
+
+static INLINE void SET_TextureStorage2DEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLsizei, GLenum, GLsizei, GLsizei)) {
+ SET_by_offset(disp, _gloffset_TextureStorage2DEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TextureStorage3DEXT)(GLuint, GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei);
+#define CALL_TextureStorage3DEXT(disp, parameters) \
+ (* GET_TextureStorage3DEXT(disp)) parameters
+static INLINE _glptr_TextureStorage3DEXT GET_TextureStorage3DEXT(struct _glapi_table *disp) {
+ return (_glptr_TextureStorage3DEXT) (GET_by_offset(disp, _gloffset_TextureStorage3DEXT));
+}
+
+static INLINE void SET_TextureStorage3DEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei)) {
+ SET_by_offset(disp, _gloffset_TextureStorage3DEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BindVertexBuffer)(GLuint, GLuint, GLintptr, GLsizei);
+#define CALL_BindVertexBuffer(disp, parameters) \
+ (* GET_BindVertexBuffer(disp)) parameters
+static INLINE _glptr_BindVertexBuffer GET_BindVertexBuffer(struct _glapi_table *disp) {
+ return (_glptr_BindVertexBuffer) (GET_by_offset(disp, _gloffset_BindVertexBuffer));
+}
+
+static INLINE void SET_BindVertexBuffer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLintptr, GLsizei)) {
+ SET_by_offset(disp, _gloffset_BindVertexBuffer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribBinding)(GLuint, GLuint);
+#define CALL_VertexAttribBinding(disp, parameters) \
+ (* GET_VertexAttribBinding(disp)) parameters
+static INLINE _glptr_VertexAttribBinding GET_VertexAttribBinding(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribBinding) (GET_by_offset(disp, _gloffset_VertexAttribBinding));
+}
+
+static INLINE void SET_VertexAttribBinding(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_VertexAttribBinding, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribFormat)(GLuint, GLint, GLenum, GLboolean, GLuint);
+#define CALL_VertexAttribFormat(disp, parameters) \
+ (* GET_VertexAttribFormat(disp)) parameters
+static INLINE _glptr_VertexAttribFormat GET_VertexAttribFormat(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribFormat) (GET_by_offset(disp, _gloffset_VertexAttribFormat));
+}
+
+static INLINE void SET_VertexAttribFormat(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLint, GLenum, GLboolean, GLuint)) {
+ SET_by_offset(disp, _gloffset_VertexAttribFormat, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribIFormat)(GLuint, GLint, GLenum, GLuint);
+#define CALL_VertexAttribIFormat(disp, parameters) \
+ (* GET_VertexAttribIFormat(disp)) parameters
+static INLINE _glptr_VertexAttribIFormat GET_VertexAttribIFormat(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribIFormat) (GET_by_offset(disp, _gloffset_VertexAttribIFormat));
+}
+
+static INLINE void SET_VertexAttribIFormat(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLint, GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_VertexAttribIFormat, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribLFormat)(GLuint, GLint, GLenum, GLuint);
+#define CALL_VertexAttribLFormat(disp, parameters) \
+ (* GET_VertexAttribLFormat(disp)) parameters
+static INLINE _glptr_VertexAttribLFormat GET_VertexAttribLFormat(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribLFormat) (GET_by_offset(disp, _gloffset_VertexAttribLFormat));
+}
+
+static INLINE void SET_VertexAttribLFormat(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLint, GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_VertexAttribLFormat, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexBindingDivisor)(GLuint, GLuint);
+#define CALL_VertexBindingDivisor(disp, parameters) \
+ (* GET_VertexBindingDivisor(disp)) parameters
+static INLINE _glptr_VertexBindingDivisor GET_VertexBindingDivisor(struct _glapi_table *disp) {
+ return (_glptr_VertexBindingDivisor) (GET_by_offset(disp, _gloffset_VertexBindingDivisor));
+}
+
+static INLINE void SET_VertexBindingDivisor(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_VertexBindingDivisor, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexBufferRange)(GLenum, GLenum, GLuint, GLintptr, GLsizeiptr);
+#define CALL_TexBufferRange(disp, parameters) \
+ (* GET_TexBufferRange(disp)) parameters
+static INLINE _glptr_TexBufferRange GET_TexBufferRange(struct _glapi_table *disp) {
+ return (_glptr_TexBufferRange) (GET_by_offset(disp, _gloffset_TexBufferRange));
+}
+
+static INLINE void SET_TexBufferRange(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLuint, GLintptr, GLsizeiptr)) {
+ SET_by_offset(disp, _gloffset_TexBufferRange, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexStorage2DMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLboolean);
+#define CALL_TexStorage2DMultisample(disp, parameters) \
+ (* GET_TexStorage2DMultisample(disp)) parameters
+static INLINE _glptr_TexStorage2DMultisample GET_TexStorage2DMultisample(struct _glapi_table *disp) {
+ return (_glptr_TexStorage2DMultisample) (GET_by_offset(disp, _gloffset_TexStorage2DMultisample));
+}
+
+static INLINE void SET_TexStorage2DMultisample(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLboolean)) {
+ SET_by_offset(disp, _gloffset_TexStorage2DMultisample, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexStorage3DMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei, GLboolean);
+#define CALL_TexStorage3DMultisample(disp, parameters) \
+ (* GET_TexStorage3DMultisample(disp)) parameters
+static INLINE _glptr_TexStorage3DMultisample GET_TexStorage3DMultisample(struct _glapi_table *disp) {
+ return (_glptr_TexStorage3DMultisample) (GET_by_offset(disp, _gloffset_TexStorage3DMultisample));
+}
+
+static INLINE void SET_TexStorage3DMultisample(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei, GLboolean)) {
+ SET_by_offset(disp, _gloffset_TexStorage3DMultisample, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_InvalidateBufferData)(GLuint);
+#define CALL_InvalidateBufferData(disp, parameters) \
+ (* GET_InvalidateBufferData(disp)) parameters
+static INLINE _glptr_InvalidateBufferData GET_InvalidateBufferData(struct _glapi_table *disp) {
+ return (_glptr_InvalidateBufferData) (GET_by_offset(disp, _gloffset_InvalidateBufferData));
+}
+
+static INLINE void SET_InvalidateBufferData(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_InvalidateBufferData, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_InvalidateBufferSubData)(GLuint, GLintptr, GLsizeiptr);
+#define CALL_InvalidateBufferSubData(disp, parameters) \
+ (* GET_InvalidateBufferSubData(disp)) parameters
+static INLINE _glptr_InvalidateBufferSubData GET_InvalidateBufferSubData(struct _glapi_table *disp) {
+ return (_glptr_InvalidateBufferSubData) (GET_by_offset(disp, _gloffset_InvalidateBufferSubData));
+}
+
+static INLINE void SET_InvalidateBufferSubData(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLintptr, GLsizeiptr)) {
+ SET_by_offset(disp, _gloffset_InvalidateBufferSubData, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_InvalidateFramebuffer)(GLenum, GLsizei, const GLenum *);
+#define CALL_InvalidateFramebuffer(disp, parameters) \
+ (* GET_InvalidateFramebuffer(disp)) parameters
+static INLINE _glptr_InvalidateFramebuffer GET_InvalidateFramebuffer(struct _glapi_table *disp) {
+ return (_glptr_InvalidateFramebuffer) (GET_by_offset(disp, _gloffset_InvalidateFramebuffer));
+}
+
+static INLINE void SET_InvalidateFramebuffer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, const GLenum *)) {
+ SET_by_offset(disp, _gloffset_InvalidateFramebuffer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_InvalidateSubFramebuffer)(GLenum, GLsizei, const GLenum *, GLint, GLint, GLsizei, GLsizei);
+#define CALL_InvalidateSubFramebuffer(disp, parameters) \
+ (* GET_InvalidateSubFramebuffer(disp)) parameters
+static INLINE _glptr_InvalidateSubFramebuffer GET_InvalidateSubFramebuffer(struct _glapi_table *disp) {
+ return (_glptr_InvalidateSubFramebuffer) (GET_by_offset(disp, _gloffset_InvalidateSubFramebuffer));
+}
+
+static INLINE void SET_InvalidateSubFramebuffer(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, const GLenum *, GLint, GLint, GLsizei, GLsizei)) {
+ SET_by_offset(disp, _gloffset_InvalidateSubFramebuffer, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_InvalidateTexImage)(GLuint, GLint);
+#define CALL_InvalidateTexImage(disp, parameters) \
+ (* GET_InvalidateTexImage(disp)) parameters
+static INLINE _glptr_InvalidateTexImage GET_InvalidateTexImage(struct _glapi_table *disp) {
+ return (_glptr_InvalidateTexImage) (GET_by_offset(disp, _gloffset_InvalidateTexImage));
+}
+
+static INLINE void SET_InvalidateTexImage(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLint)) {
+ SET_by_offset(disp, _gloffset_InvalidateTexImage, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_InvalidateTexSubImage)(GLuint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei);
+#define CALL_InvalidateTexSubImage(disp, parameters) \
+ (* GET_InvalidateTexSubImage(disp)) parameters
+static INLINE _glptr_InvalidateTexSubImage GET_InvalidateTexSubImage(struct _glapi_table *disp) {
+ return (_glptr_InvalidateTexSubImage) (GET_by_offset(disp, _gloffset_InvalidateTexSubImage));
+}
+
+static INLINE void SET_InvalidateTexSubImage(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei)) {
+ SET_by_offset(disp, _gloffset_InvalidateTexSubImage, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PolygonOffsetEXT)(GLfloat, GLfloat);
+#define CALL_PolygonOffsetEXT(disp, parameters) \
+ (* GET_PolygonOffsetEXT(disp)) parameters
+static INLINE _glptr_PolygonOffsetEXT GET_PolygonOffsetEXT(struct _glapi_table *disp) {
+ return (_glptr_PolygonOffsetEXT) (GET_by_offset(disp, _gloffset_PolygonOffsetEXT));
+}
+
+static INLINE void SET_PolygonOffsetEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_PolygonOffsetEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawTexfOES)(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+#define CALL_DrawTexfOES(disp, parameters) \
+ (* GET_DrawTexfOES(disp)) parameters
+static INLINE _glptr_DrawTexfOES GET_DrawTexfOES(struct _glapi_table *disp) {
+ return (_glptr_DrawTexfOES) (GET_by_offset(disp, _gloffset_DrawTexfOES));
+}
+
+static INLINE void SET_DrawTexfOES(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_DrawTexfOES, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawTexfvOES)(const GLfloat *);
+#define CALL_DrawTexfvOES(disp, parameters) \
+ (* GET_DrawTexfvOES(disp)) parameters
+static INLINE _glptr_DrawTexfvOES GET_DrawTexfvOES(struct _glapi_table *disp) {
+ return (_glptr_DrawTexfvOES) (GET_by_offset(disp, _gloffset_DrawTexfvOES));
+}
+
+static INLINE void SET_DrawTexfvOES(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_DrawTexfvOES, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawTexiOES)(GLint, GLint, GLint, GLint, GLint);
+#define CALL_DrawTexiOES(disp, parameters) \
+ (* GET_DrawTexiOES(disp)) parameters
+static INLINE _glptr_DrawTexiOES GET_DrawTexiOES(struct _glapi_table *disp) {
+ return (_glptr_DrawTexiOES) (GET_by_offset(disp, _gloffset_DrawTexiOES));
+}
+
+static INLINE void SET_DrawTexiOES(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_DrawTexiOES, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawTexivOES)(const GLint *);
+#define CALL_DrawTexivOES(disp, parameters) \
+ (* GET_DrawTexivOES(disp)) parameters
+static INLINE _glptr_DrawTexivOES GET_DrawTexivOES(struct _glapi_table *disp) {
+ return (_glptr_DrawTexivOES) (GET_by_offset(disp, _gloffset_DrawTexivOES));
+}
+
+static INLINE void SET_DrawTexivOES(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *)) {
+ SET_by_offset(disp, _gloffset_DrawTexivOES, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawTexsOES)(GLshort, GLshort, GLshort, GLshort, GLshort);
+#define CALL_DrawTexsOES(disp, parameters) \
+ (* GET_DrawTexsOES(disp)) parameters
+static INLINE _glptr_DrawTexsOES GET_DrawTexsOES(struct _glapi_table *disp) {
+ return (_glptr_DrawTexsOES) (GET_by_offset(disp, _gloffset_DrawTexsOES));
+}
+
+static INLINE void SET_DrawTexsOES(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort, GLshort, GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_DrawTexsOES, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawTexsvOES)(const GLshort *);
+#define CALL_DrawTexsvOES(disp, parameters) \
+ (* GET_DrawTexsvOES(disp)) parameters
+static INLINE _glptr_DrawTexsvOES GET_DrawTexsvOES(struct _glapi_table *disp) {
+ return (_glptr_DrawTexsvOES) (GET_by_offset(disp, _gloffset_DrawTexsvOES));
+}
+
+static INLINE void SET_DrawTexsvOES(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *)) {
+ SET_by_offset(disp, _gloffset_DrawTexsvOES, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawTexxOES)(GLfixed, GLfixed, GLfixed, GLfixed, GLfixed);
+#define CALL_DrawTexxOES(disp, parameters) \
+ (* GET_DrawTexxOES(disp)) parameters
+static INLINE _glptr_DrawTexxOES GET_DrawTexxOES(struct _glapi_table *disp) {
+ return (_glptr_DrawTexxOES) (GET_by_offset(disp, _gloffset_DrawTexxOES));
+}
+
+static INLINE void SET_DrawTexxOES(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfixed, GLfixed, GLfixed, GLfixed, GLfixed)) {
+ SET_by_offset(disp, _gloffset_DrawTexxOES, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DrawTexxvOES)(const GLfixed *);
+#define CALL_DrawTexxvOES(disp, parameters) \
+ (* GET_DrawTexxvOES(disp)) parameters
+static INLINE _glptr_DrawTexxvOES GET_DrawTexxvOES(struct _glapi_table *disp) {
+ return (_glptr_DrawTexxvOES) (GET_by_offset(disp, _gloffset_DrawTexxvOES));
+}
+
+static INLINE void SET_DrawTexxvOES(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfixed *)) {
+ SET_by_offset(disp, _gloffset_DrawTexxvOES, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PointSizePointerOES)(GLenum, GLsizei, const GLvoid *);
+#define CALL_PointSizePointerOES(disp, parameters) \
+ (* GET_PointSizePointerOES(disp)) parameters
+static INLINE _glptr_PointSizePointerOES GET_PointSizePointerOES(struct _glapi_table *disp) {
+ return (_glptr_PointSizePointerOES) (GET_by_offset(disp, _gloffset_PointSizePointerOES));
+}
+
+static INLINE void SET_PointSizePointerOES(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_PointSizePointerOES, fn);
+}
+
+typedef GLbitfield (GLAPIENTRYP _glptr_QueryMatrixxOES)(GLfixed *, GLint *);
+#define CALL_QueryMatrixxOES(disp, parameters) \
+ (* GET_QueryMatrixxOES(disp)) parameters
+static INLINE _glptr_QueryMatrixxOES GET_QueryMatrixxOES(struct _glapi_table *disp) {
+ return (_glptr_QueryMatrixxOES) (GET_by_offset(disp, _gloffset_QueryMatrixxOES));
+}
+
+static INLINE void SET_QueryMatrixxOES(struct _glapi_table *disp, GLbitfield (GLAPIENTRYP fn)(GLfixed *, GLint *)) {
+ SET_by_offset(disp, _gloffset_QueryMatrixxOES, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SampleMaskSGIS)(GLclampf, GLboolean);
+#define CALL_SampleMaskSGIS(disp, parameters) \
+ (* GET_SampleMaskSGIS(disp)) parameters
+static INLINE _glptr_SampleMaskSGIS GET_SampleMaskSGIS(struct _glapi_table *disp) {
+ return (_glptr_SampleMaskSGIS) (GET_by_offset(disp, _gloffset_SampleMaskSGIS));
+}
+
+static INLINE void SET_SampleMaskSGIS(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLclampf, GLboolean)) {
+ SET_by_offset(disp, _gloffset_SampleMaskSGIS, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SamplePatternSGIS)(GLenum);
+#define CALL_SamplePatternSGIS(disp, parameters) \
+ (* GET_SamplePatternSGIS(disp)) parameters
+static INLINE _glptr_SamplePatternSGIS GET_SamplePatternSGIS(struct _glapi_table *disp) {
+ return (_glptr_SamplePatternSGIS) (GET_by_offset(disp, _gloffset_SamplePatternSGIS));
+}
+
+static INLINE void SET_SamplePatternSGIS(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_SamplePatternSGIS, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ColorPointerEXT)(GLint, GLenum, GLsizei, GLsizei, const GLvoid *);
+#define CALL_ColorPointerEXT(disp, parameters) \
+ (* GET_ColorPointerEXT(disp)) parameters
+static INLINE _glptr_ColorPointerEXT GET_ColorPointerEXT(struct _glapi_table *disp) {
+ return (_glptr_ColorPointerEXT) (GET_by_offset(disp, _gloffset_ColorPointerEXT));
+}
+
+static INLINE void SET_ColorPointerEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLenum, GLsizei, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_ColorPointerEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EdgeFlagPointerEXT)(GLsizei, GLsizei, const GLboolean *);
+#define CALL_EdgeFlagPointerEXT(disp, parameters) \
+ (* GET_EdgeFlagPointerEXT(disp)) parameters
+static INLINE _glptr_EdgeFlagPointerEXT GET_EdgeFlagPointerEXT(struct _glapi_table *disp) {
+ return (_glptr_EdgeFlagPointerEXT) (GET_by_offset(disp, _gloffset_EdgeFlagPointerEXT));
+}
+
+static INLINE void SET_EdgeFlagPointerEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, GLsizei, const GLboolean *)) {
+ SET_by_offset(disp, _gloffset_EdgeFlagPointerEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_IndexPointerEXT)(GLenum, GLsizei, GLsizei, const GLvoid *);
+#define CALL_IndexPointerEXT(disp, parameters) \
+ (* GET_IndexPointerEXT(disp)) parameters
+static INLINE _glptr_IndexPointerEXT GET_IndexPointerEXT(struct _glapi_table *disp) {
+ return (_glptr_IndexPointerEXT) (GET_by_offset(disp, _gloffset_IndexPointerEXT));
+}
+
+static INLINE void SET_IndexPointerEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_IndexPointerEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_NormalPointerEXT)(GLenum, GLsizei, GLsizei, const GLvoid *);
+#define CALL_NormalPointerEXT(disp, parameters) \
+ (* GET_NormalPointerEXT(disp)) parameters
+static INLINE _glptr_NormalPointerEXT GET_NormalPointerEXT(struct _glapi_table *disp) {
+ return (_glptr_NormalPointerEXT) (GET_by_offset(disp, _gloffset_NormalPointerEXT));
+}
+
+static INLINE void SET_NormalPointerEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_NormalPointerEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexCoordPointerEXT)(GLint, GLenum, GLsizei, GLsizei, const GLvoid *);
+#define CALL_TexCoordPointerEXT(disp, parameters) \
+ (* GET_TexCoordPointerEXT(disp)) parameters
+static INLINE _glptr_TexCoordPointerEXT GET_TexCoordPointerEXT(struct _glapi_table *disp) {
+ return (_glptr_TexCoordPointerEXT) (GET_by_offset(disp, _gloffset_TexCoordPointerEXT));
+}
+
+static INLINE void SET_TexCoordPointerEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLenum, GLsizei, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_TexCoordPointerEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexPointerEXT)(GLint, GLenum, GLsizei, GLsizei, const GLvoid *);
+#define CALL_VertexPointerEXT(disp, parameters) \
+ (* GET_VertexPointerEXT(disp)) parameters
+static INLINE _glptr_VertexPointerEXT GET_VertexPointerEXT(struct _glapi_table *disp) {
+ return (_glptr_VertexPointerEXT) (GET_by_offset(disp, _gloffset_VertexPointerEXT));
+}
+
+static INLINE void SET_VertexPointerEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLenum, GLsizei, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_VertexPointerEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DiscardFramebufferEXT)(GLenum, GLsizei, const GLenum *);
+#define CALL_DiscardFramebufferEXT(disp, parameters) \
+ (* GET_DiscardFramebufferEXT(disp)) parameters
+static INLINE _glptr_DiscardFramebufferEXT GET_DiscardFramebufferEXT(struct _glapi_table *disp) {
+ return (_glptr_DiscardFramebufferEXT) (GET_by_offset(disp, _gloffset_DiscardFramebufferEXT));
+}
+
+static INLINE void SET_DiscardFramebufferEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLsizei, const GLenum *)) {
+ SET_by_offset(disp, _gloffset_DiscardFramebufferEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LockArraysEXT)(GLint, GLsizei);
+#define CALL_LockArraysEXT(disp, parameters) \
+ (* GET_LockArraysEXT(disp)) parameters
+static INLINE _glptr_LockArraysEXT GET_LockArraysEXT(struct _glapi_table *disp) {
+ return (_glptr_LockArraysEXT) (GET_by_offset(disp, _gloffset_LockArraysEXT));
+}
+
+static INLINE void SET_LockArraysEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLsizei)) {
+ SET_by_offset(disp, _gloffset_LockArraysEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_UnlockArraysEXT)(void);
+#define CALL_UnlockArraysEXT(disp, parameters) \
+ (* GET_UnlockArraysEXT(disp)) parameters
+static INLINE _glptr_UnlockArraysEXT GET_UnlockArraysEXT(struct _glapi_table *disp) {
+ return (_glptr_UnlockArraysEXT) (GET_by_offset(disp, _gloffset_UnlockArraysEXT));
+}
+
+static INLINE void SET_UnlockArraysEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_UnlockArraysEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DebugMessageCallback)(GLDEBUGPROC, const GLvoid *);
+#define CALL_DebugMessageCallback(disp, parameters) \
+ (* GET_DebugMessageCallback(disp)) parameters
+static INLINE _glptr_DebugMessageCallback GET_DebugMessageCallback(struct _glapi_table *disp) {
+ return (_glptr_DebugMessageCallback) (GET_by_offset(disp, _gloffset_DebugMessageCallback));
+}
+
+static INLINE void SET_DebugMessageCallback(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLDEBUGPROC, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_DebugMessageCallback, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DebugMessageControl)(GLenum, GLenum, GLenum, GLsizei, const GLuint *, GLboolean);
+#define CALL_DebugMessageControl(disp, parameters) \
+ (* GET_DebugMessageControl(disp)) parameters
+static INLINE _glptr_DebugMessageControl GET_DebugMessageControl(struct _glapi_table *disp) {
+ return (_glptr_DebugMessageControl) (GET_by_offset(disp, _gloffset_DebugMessageControl));
+}
+
+static INLINE void SET_DebugMessageControl(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLenum, GLsizei, const GLuint *, GLboolean)) {
+ SET_by_offset(disp, _gloffset_DebugMessageControl, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DebugMessageInsert)(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar *);
+#define CALL_DebugMessageInsert(disp, parameters) \
+ (* GET_DebugMessageInsert(disp)) parameters
+static INLINE _glptr_DebugMessageInsert GET_DebugMessageInsert(struct _glapi_table *disp) {
+ return (_glptr_DebugMessageInsert) (GET_by_offset(disp, _gloffset_DebugMessageInsert));
+}
+
+static INLINE void SET_DebugMessageInsert(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar *)) {
+ SET_by_offset(disp, _gloffset_DebugMessageInsert, fn);
+}
+
+typedef GLuint (GLAPIENTRYP _glptr_GetDebugMessageLog)(GLuint, GLsizei, GLenum *, GLenum *, GLuint *, GLenum *, GLsizei *, GLchar *);
+#define CALL_GetDebugMessageLog(disp, parameters) \
+ (* GET_GetDebugMessageLog(disp)) parameters
+static INLINE _glptr_GetDebugMessageLog GET_GetDebugMessageLog(struct _glapi_table *disp) {
+ return (_glptr_GetDebugMessageLog) (GET_by_offset(disp, _gloffset_GetDebugMessageLog));
+}
+
+static INLINE void SET_GetDebugMessageLog(struct _glapi_table *disp, GLuint (GLAPIENTRYP fn)(GLuint, GLsizei, GLenum *, GLenum *, GLuint *, GLenum *, GLsizei *, GLchar *)) {
+ SET_by_offset(disp, _gloffset_GetDebugMessageLog, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetObjectLabel)(GLenum, GLuint, GLsizei, GLsizei *, GLchar *);
+#define CALL_GetObjectLabel(disp, parameters) \
+ (* GET_GetObjectLabel(disp)) parameters
+static INLINE _glptr_GetObjectLabel GET_GetObjectLabel(struct _glapi_table *disp) {
+ return (_glptr_GetObjectLabel) (GET_by_offset(disp, _gloffset_GetObjectLabel));
+}
+
+static INLINE void SET_GetObjectLabel(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLsizei, GLsizei *, GLchar *)) {
+ SET_by_offset(disp, _gloffset_GetObjectLabel, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetObjectPtrLabel)(const GLvoid *, GLsizei, GLsizei *, GLchar *);
+#define CALL_GetObjectPtrLabel(disp, parameters) \
+ (* GET_GetObjectPtrLabel(disp)) parameters
+static INLINE _glptr_GetObjectPtrLabel GET_GetObjectPtrLabel(struct _glapi_table *disp) {
+ return (_glptr_GetObjectPtrLabel) (GET_by_offset(disp, _gloffset_GetObjectPtrLabel));
+}
+
+static INLINE void SET_GetObjectPtrLabel(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLvoid *, GLsizei, GLsizei *, GLchar *)) {
+ SET_by_offset(disp, _gloffset_GetObjectPtrLabel, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ObjectLabel)(GLenum, GLuint, GLsizei, const GLchar *);
+#define CALL_ObjectLabel(disp, parameters) \
+ (* GET_ObjectLabel(disp)) parameters
+static INLINE _glptr_ObjectLabel GET_ObjectLabel(struct _glapi_table *disp) {
+ return (_glptr_ObjectLabel) (GET_by_offset(disp, _gloffset_ObjectLabel));
+}
+
+static INLINE void SET_ObjectLabel(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLsizei, const GLchar *)) {
+ SET_by_offset(disp, _gloffset_ObjectLabel, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ObjectPtrLabel)(const GLvoid *, GLsizei, const GLchar *);
+#define CALL_ObjectPtrLabel(disp, parameters) \
+ (* GET_ObjectPtrLabel(disp)) parameters
+static INLINE _glptr_ObjectPtrLabel GET_ObjectPtrLabel(struct _glapi_table *disp) {
+ return (_glptr_ObjectPtrLabel) (GET_by_offset(disp, _gloffset_ObjectPtrLabel));
+}
+
+static INLINE void SET_ObjectPtrLabel(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLvoid *, GLsizei, const GLchar *)) {
+ SET_by_offset(disp, _gloffset_ObjectPtrLabel, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PopDebugGroup)(void);
+#define CALL_PopDebugGroup(disp, parameters) \
+ (* GET_PopDebugGroup(disp)) parameters
+static INLINE _glptr_PopDebugGroup GET_PopDebugGroup(struct _glapi_table *disp) {
+ return (_glptr_PopDebugGroup) (GET_by_offset(disp, _gloffset_PopDebugGroup));
+}
+
+static INLINE void SET_PopDebugGroup(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_PopDebugGroup, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PushDebugGroup)(GLenum, GLuint, GLsizei, const GLchar *);
+#define CALL_PushDebugGroup(disp, parameters) \
+ (* GET_PushDebugGroup(disp)) parameters
+static INLINE _glptr_PushDebugGroup GET_PushDebugGroup(struct _glapi_table *disp) {
+ return (_glptr_PushDebugGroup) (GET_by_offset(disp, _gloffset_PushDebugGroup));
+}
+
+static INLINE void SET_PushDebugGroup(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLsizei, const GLchar *)) {
+ SET_by_offset(disp, _gloffset_PushDebugGroup, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SecondaryColor3fEXT)(GLfloat, GLfloat, GLfloat);
+#define CALL_SecondaryColor3fEXT(disp, parameters) \
+ (* GET_SecondaryColor3fEXT(disp)) parameters
+static INLINE _glptr_SecondaryColor3fEXT GET_SecondaryColor3fEXT(struct _glapi_table *disp) {
+ return (_glptr_SecondaryColor3fEXT) (GET_by_offset(disp, _gloffset_SecondaryColor3fEXT));
+}
+
+static INLINE void SET_SecondaryColor3fEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_SecondaryColor3fEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SecondaryColor3fvEXT)(const GLfloat *);
+#define CALL_SecondaryColor3fvEXT(disp, parameters) \
+ (* GET_SecondaryColor3fvEXT(disp)) parameters
+static INLINE _glptr_SecondaryColor3fvEXT GET_SecondaryColor3fvEXT(struct _glapi_table *disp) {
+ return (_glptr_SecondaryColor3fvEXT) (GET_by_offset(disp, _gloffset_SecondaryColor3fvEXT));
+}
+
+static INLINE void SET_SecondaryColor3fvEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_SecondaryColor3fvEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiDrawElementsEXT)(GLenum, const GLsizei *, GLenum, const GLvoid * const *, GLsizei);
+#define CALL_MultiDrawElementsEXT(disp, parameters) \
+ (* GET_MultiDrawElementsEXT(disp)) parameters
+static INLINE _glptr_MultiDrawElementsEXT GET_MultiDrawElementsEXT(struct _glapi_table *disp) {
+ return (_glptr_MultiDrawElementsEXT) (GET_by_offset(disp, _gloffset_MultiDrawElementsEXT));
+}
+
+static INLINE void SET_MultiDrawElementsEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLsizei *, GLenum, const GLvoid * const *, GLsizei)) {
+ SET_by_offset(disp, _gloffset_MultiDrawElementsEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_FogCoordfEXT)(GLfloat);
+#define CALL_FogCoordfEXT(disp, parameters) \
+ (* GET_FogCoordfEXT(disp)) parameters
+static INLINE _glptr_FogCoordfEXT GET_FogCoordfEXT(struct _glapi_table *disp) {
+ return (_glptr_FogCoordfEXT) (GET_by_offset(disp, _gloffset_FogCoordfEXT));
+}
+
+static INLINE void SET_FogCoordfEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat)) {
+ SET_by_offset(disp, _gloffset_FogCoordfEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_FogCoordfvEXT)(const GLfloat *);
+#define CALL_FogCoordfvEXT(disp, parameters) \
+ (* GET_FogCoordfvEXT(disp)) parameters
+static INLINE _glptr_FogCoordfvEXT GET_FogCoordfvEXT(struct _glapi_table *disp) {
+ return (_glptr_FogCoordfvEXT) (GET_by_offset(disp, _gloffset_FogCoordfvEXT));
+}
+
+static INLINE void SET_FogCoordfvEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_FogCoordfvEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ResizeBuffersMESA)(void);
+#define CALL_ResizeBuffersMESA(disp, parameters) \
+ (* GET_ResizeBuffersMESA(disp)) parameters
+static INLINE _glptr_ResizeBuffersMESA GET_ResizeBuffersMESA(struct _glapi_table *disp) {
+ return (_glptr_ResizeBuffersMESA) (GET_by_offset(disp, _gloffset_ResizeBuffersMESA));
+}
+
+static INLINE void SET_ResizeBuffersMESA(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_ResizeBuffersMESA, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos4dMESA)(GLdouble, GLdouble, GLdouble, GLdouble);
+#define CALL_WindowPos4dMESA(disp, parameters) \
+ (* GET_WindowPos4dMESA(disp)) parameters
+static INLINE _glptr_WindowPos4dMESA GET_WindowPos4dMESA(struct _glapi_table *disp) {
+ return (_glptr_WindowPos4dMESA) (GET_by_offset(disp, _gloffset_WindowPos4dMESA));
+}
+
+static INLINE void SET_WindowPos4dMESA(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLdouble, GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_WindowPos4dMESA, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos4dvMESA)(const GLdouble *);
+#define CALL_WindowPos4dvMESA(disp, parameters) \
+ (* GET_WindowPos4dvMESA(disp)) parameters
+static INLINE _glptr_WindowPos4dvMESA GET_WindowPos4dvMESA(struct _glapi_table *disp) {
+ return (_glptr_WindowPos4dvMESA) (GET_by_offset(disp, _gloffset_WindowPos4dvMESA));
+}
+
+static INLINE void SET_WindowPos4dvMESA(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_WindowPos4dvMESA, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos4fMESA)(GLfloat, GLfloat, GLfloat, GLfloat);
+#define CALL_WindowPos4fMESA(disp, parameters) \
+ (* GET_WindowPos4fMESA(disp)) parameters
+static INLINE _glptr_WindowPos4fMESA GET_WindowPos4fMESA(struct _glapi_table *disp) {
+ return (_glptr_WindowPos4fMESA) (GET_by_offset(disp, _gloffset_WindowPos4fMESA));
+}
+
+static INLINE void SET_WindowPos4fMESA(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_WindowPos4fMESA, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos4fvMESA)(const GLfloat *);
+#define CALL_WindowPos4fvMESA(disp, parameters) \
+ (* GET_WindowPos4fvMESA(disp)) parameters
+static INLINE _glptr_WindowPos4fvMESA GET_WindowPos4fvMESA(struct _glapi_table *disp) {
+ return (_glptr_WindowPos4fvMESA) (GET_by_offset(disp, _gloffset_WindowPos4fvMESA));
+}
+
+static INLINE void SET_WindowPos4fvMESA(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_WindowPos4fvMESA, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos4iMESA)(GLint, GLint, GLint, GLint);
+#define CALL_WindowPos4iMESA(disp, parameters) \
+ (* GET_WindowPos4iMESA(disp)) parameters
+static INLINE _glptr_WindowPos4iMESA GET_WindowPos4iMESA(struct _glapi_table *disp) {
+ return (_glptr_WindowPos4iMESA) (GET_by_offset(disp, _gloffset_WindowPos4iMESA));
+}
+
+static INLINE void SET_WindowPos4iMESA(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_WindowPos4iMESA, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos4ivMESA)(const GLint *);
+#define CALL_WindowPos4ivMESA(disp, parameters) \
+ (* GET_WindowPos4ivMESA(disp)) parameters
+static INLINE _glptr_WindowPos4ivMESA GET_WindowPos4ivMESA(struct _glapi_table *disp) {
+ return (_glptr_WindowPos4ivMESA) (GET_by_offset(disp, _gloffset_WindowPos4ivMESA));
+}
+
+static INLINE void SET_WindowPos4ivMESA(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLint *)) {
+ SET_by_offset(disp, _gloffset_WindowPos4ivMESA, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos4sMESA)(GLshort, GLshort, GLshort, GLshort);
+#define CALL_WindowPos4sMESA(disp, parameters) \
+ (* GET_WindowPos4sMESA(disp)) parameters
+static INLINE _glptr_WindowPos4sMESA GET_WindowPos4sMESA(struct _glapi_table *disp) {
+ return (_glptr_WindowPos4sMESA) (GET_by_offset(disp, _gloffset_WindowPos4sMESA));
+}
+
+static INLINE void SET_WindowPos4sMESA(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLshort, GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_WindowPos4sMESA, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_WindowPos4svMESA)(const GLshort *);
+#define CALL_WindowPos4svMESA(disp, parameters) \
+ (* GET_WindowPos4svMESA(disp)) parameters
+static INLINE _glptr_WindowPos4svMESA GET_WindowPos4svMESA(struct _glapi_table *disp) {
+ return (_glptr_WindowPos4svMESA) (GET_by_offset(disp, _gloffset_WindowPos4svMESA));
+}
+
+static INLINE void SET_WindowPos4svMESA(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLshort *)) {
+ SET_by_offset(disp, _gloffset_WindowPos4svMESA, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiModeDrawArraysIBM)(const GLenum *, const GLint *, const GLsizei *, GLsizei, GLint);
+#define CALL_MultiModeDrawArraysIBM(disp, parameters) \
+ (* GET_MultiModeDrawArraysIBM(disp)) parameters
+static INLINE _glptr_MultiModeDrawArraysIBM GET_MultiModeDrawArraysIBM(struct _glapi_table *disp) {
+ return (_glptr_MultiModeDrawArraysIBM) (GET_by_offset(disp, _gloffset_MultiModeDrawArraysIBM));
+}
+
+static INLINE void SET_MultiModeDrawArraysIBM(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLenum *, const GLint *, const GLsizei *, GLsizei, GLint)) {
+ SET_by_offset(disp, _gloffset_MultiModeDrawArraysIBM, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiModeDrawElementsIBM)(const GLenum *, const GLsizei *, GLenum, const GLvoid * const *, GLsizei, GLint);
+#define CALL_MultiModeDrawElementsIBM(disp, parameters) \
+ (* GET_MultiModeDrawElementsIBM(disp)) parameters
+static INLINE _glptr_MultiModeDrawElementsIBM GET_MultiModeDrawElementsIBM(struct _glapi_table *disp) {
+ return (_glptr_MultiModeDrawElementsIBM) (GET_by_offset(disp, _gloffset_MultiModeDrawElementsIBM));
+}
+
+static INLINE void SET_MultiModeDrawElementsIBM(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLenum *, const GLsizei *, GLenum, const GLvoid * const *, GLsizei, GLint)) {
+ SET_by_offset(disp, _gloffset_MultiModeDrawElementsIBM, fn);
+}
+
+typedef GLboolean (GLAPIENTRYP _glptr_AreProgramsResidentNV)(GLsizei, const GLuint *, GLboolean *);
+#define CALL_AreProgramsResidentNV(disp, parameters) \
+ (* GET_AreProgramsResidentNV(disp)) parameters
+static INLINE _glptr_AreProgramsResidentNV GET_AreProgramsResidentNV(struct _glapi_table *disp) {
+ return (_glptr_AreProgramsResidentNV) (GET_by_offset(disp, _gloffset_AreProgramsResidentNV));
+}
+
+static INLINE void SET_AreProgramsResidentNV(struct _glapi_table *disp, GLboolean (GLAPIENTRYP fn)(GLsizei, const GLuint *, GLboolean *)) {
+ SET_by_offset(disp, _gloffset_AreProgramsResidentNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ExecuteProgramNV)(GLenum, GLuint, const GLfloat *);
+#define CALL_ExecuteProgramNV(disp, parameters) \
+ (* GET_ExecuteProgramNV(disp)) parameters
+static INLINE _glptr_ExecuteProgramNV GET_ExecuteProgramNV(struct _glapi_table *disp) {
+ return (_glptr_ExecuteProgramNV) (GET_by_offset(disp, _gloffset_ExecuteProgramNV));
+}
+
+static INLINE void SET_ExecuteProgramNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_ExecuteProgramNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetProgramParameterdvNV)(GLenum, GLuint, GLenum, GLdouble *);
+#define CALL_GetProgramParameterdvNV(disp, parameters) \
+ (* GET_GetProgramParameterdvNV(disp)) parameters
+static INLINE _glptr_GetProgramParameterdvNV GET_GetProgramParameterdvNV(struct _glapi_table *disp) {
+ return (_glptr_GetProgramParameterdvNV) (GET_by_offset(disp, _gloffset_GetProgramParameterdvNV));
+}
+
+static INLINE void SET_GetProgramParameterdvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLenum, GLdouble *)) {
+ SET_by_offset(disp, _gloffset_GetProgramParameterdvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetProgramParameterfvNV)(GLenum, GLuint, GLenum, GLfloat *);
+#define CALL_GetProgramParameterfvNV(disp, parameters) \
+ (* GET_GetProgramParameterfvNV(disp)) parameters
+static INLINE _glptr_GetProgramParameterfvNV GET_GetProgramParameterfvNV(struct _glapi_table *disp) {
+ return (_glptr_GetProgramParameterfvNV) (GET_by_offset(disp, _gloffset_GetProgramParameterfvNV));
+}
+
+static INLINE void SET_GetProgramParameterfvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetProgramParameterfvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetProgramStringNV)(GLuint, GLenum, GLubyte *);
+#define CALL_GetProgramStringNV(disp, parameters) \
+ (* GET_GetProgramStringNV(disp)) parameters
+static INLINE _glptr_GetProgramStringNV GET_GetProgramStringNV(struct _glapi_table *disp) {
+ return (_glptr_GetProgramStringNV) (GET_by_offset(disp, _gloffset_GetProgramStringNV));
+}
+
+static INLINE void SET_GetProgramStringNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLubyte *)) {
+ SET_by_offset(disp, _gloffset_GetProgramStringNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetProgramivNV)(GLuint, GLenum, GLint *);
+#define CALL_GetProgramivNV(disp, parameters) \
+ (* GET_GetProgramivNV(disp)) parameters
+static INLINE _glptr_GetProgramivNV GET_GetProgramivNV(struct _glapi_table *disp) {
+ return (_glptr_GetProgramivNV) (GET_by_offset(disp, _gloffset_GetProgramivNV));
+}
+
+static INLINE void SET_GetProgramivNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetProgramivNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetTrackMatrixivNV)(GLenum, GLuint, GLenum, GLint *);
+#define CALL_GetTrackMatrixivNV(disp, parameters) \
+ (* GET_GetTrackMatrixivNV(disp)) parameters
+static INLINE _glptr_GetTrackMatrixivNV GET_GetTrackMatrixivNV(struct _glapi_table *disp) {
+ return (_glptr_GetTrackMatrixivNV) (GET_by_offset(disp, _gloffset_GetTrackMatrixivNV));
+}
+
+static INLINE void SET_GetTrackMatrixivNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetTrackMatrixivNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetVertexAttribdvNV)(GLuint, GLenum, GLdouble *);
+#define CALL_GetVertexAttribdvNV(disp, parameters) \
+ (* GET_GetVertexAttribdvNV(disp)) parameters
+static INLINE _glptr_GetVertexAttribdvNV GET_GetVertexAttribdvNV(struct _glapi_table *disp) {
+ return (_glptr_GetVertexAttribdvNV) (GET_by_offset(disp, _gloffset_GetVertexAttribdvNV));
+}
+
+static INLINE void SET_GetVertexAttribdvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLdouble *)) {
+ SET_by_offset(disp, _gloffset_GetVertexAttribdvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetVertexAttribfvNV)(GLuint, GLenum, GLfloat *);
+#define CALL_GetVertexAttribfvNV(disp, parameters) \
+ (* GET_GetVertexAttribfvNV(disp)) parameters
+static INLINE _glptr_GetVertexAttribfvNV GET_GetVertexAttribfvNV(struct _glapi_table *disp) {
+ return (_glptr_GetVertexAttribfvNV) (GET_by_offset(disp, _gloffset_GetVertexAttribfvNV));
+}
+
+static INLINE void SET_GetVertexAttribfvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetVertexAttribfvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetVertexAttribivNV)(GLuint, GLenum, GLint *);
+#define CALL_GetVertexAttribivNV(disp, parameters) \
+ (* GET_GetVertexAttribivNV(disp)) parameters
+static INLINE _glptr_GetVertexAttribivNV GET_GetVertexAttribivNV(struct _glapi_table *disp) {
+ return (_glptr_GetVertexAttribivNV) (GET_by_offset(disp, _gloffset_GetVertexAttribivNV));
+}
+
+static INLINE void SET_GetVertexAttribivNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetVertexAttribivNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LoadProgramNV)(GLenum, GLuint, GLsizei, const GLubyte *);
+#define CALL_LoadProgramNV(disp, parameters) \
+ (* GET_LoadProgramNV(disp)) parameters
+static INLINE _glptr_LoadProgramNV GET_LoadProgramNV(struct _glapi_table *disp) {
+ return (_glptr_LoadProgramNV) (GET_by_offset(disp, _gloffset_LoadProgramNV));
+}
+
+static INLINE void SET_LoadProgramNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLsizei, const GLubyte *)) {
+ SET_by_offset(disp, _gloffset_LoadProgramNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProgramParameters4dvNV)(GLenum, GLuint, GLsizei, const GLdouble *);
+#define CALL_ProgramParameters4dvNV(disp, parameters) \
+ (* GET_ProgramParameters4dvNV(disp)) parameters
+static INLINE _glptr_ProgramParameters4dvNV GET_ProgramParameters4dvNV(struct _glapi_table *disp) {
+ return (_glptr_ProgramParameters4dvNV) (GET_by_offset(disp, _gloffset_ProgramParameters4dvNV));
+}
+
+static INLINE void SET_ProgramParameters4dvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLsizei, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_ProgramParameters4dvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProgramParameters4fvNV)(GLenum, GLuint, GLsizei, const GLfloat *);
+#define CALL_ProgramParameters4fvNV(disp, parameters) \
+ (* GET_ProgramParameters4fvNV(disp)) parameters
+static INLINE _glptr_ProgramParameters4fvNV GET_ProgramParameters4fvNV(struct _glapi_table *disp) {
+ return (_glptr_ProgramParameters4fvNV) (GET_by_offset(disp, _gloffset_ProgramParameters4fvNV));
+}
+
+static INLINE void SET_ProgramParameters4fvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLsizei, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_ProgramParameters4fvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_RequestResidentProgramsNV)(GLsizei, const GLuint *);
+#define CALL_RequestResidentProgramsNV(disp, parameters) \
+ (* GET_RequestResidentProgramsNV(disp)) parameters
+static INLINE _glptr_RequestResidentProgramsNV GET_RequestResidentProgramsNV(struct _glapi_table *disp) {
+ return (_glptr_RequestResidentProgramsNV) (GET_by_offset(disp, _gloffset_RequestResidentProgramsNV));
+}
+
+static INLINE void SET_RequestResidentProgramsNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_RequestResidentProgramsNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TrackMatrixNV)(GLenum, GLuint, GLenum, GLenum);
+#define CALL_TrackMatrixNV(disp, parameters) \
+ (* GET_TrackMatrixNV(disp)) parameters
+static INLINE _glptr_TrackMatrixNV GET_TrackMatrixNV(struct _glapi_table *disp) {
+ return (_glptr_TrackMatrixNV) (GET_by_offset(disp, _gloffset_TrackMatrixNV));
+}
+
+static INLINE void SET_TrackMatrixNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLenum, GLenum)) {
+ SET_by_offset(disp, _gloffset_TrackMatrixNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib1dNV)(GLuint, GLdouble);
+#define CALL_VertexAttrib1dNV(disp, parameters) \
+ (* GET_VertexAttrib1dNV(disp)) parameters
+static INLINE _glptr_VertexAttrib1dNV GET_VertexAttrib1dNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib1dNV) (GET_by_offset(disp, _gloffset_VertexAttrib1dNV));
+}
+
+static INLINE void SET_VertexAttrib1dNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLdouble)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib1dNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib1dvNV)(GLuint, const GLdouble *);
+#define CALL_VertexAttrib1dvNV(disp, parameters) \
+ (* GET_VertexAttrib1dvNV(disp)) parameters
+static INLINE _glptr_VertexAttrib1dvNV GET_VertexAttrib1dvNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib1dvNV) (GET_by_offset(disp, _gloffset_VertexAttrib1dvNV));
+}
+
+static INLINE void SET_VertexAttrib1dvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib1dvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib1fNV)(GLuint, GLfloat);
+#define CALL_VertexAttrib1fNV(disp, parameters) \
+ (* GET_VertexAttrib1fNV(disp)) parameters
+static INLINE _glptr_VertexAttrib1fNV GET_VertexAttrib1fNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib1fNV) (GET_by_offset(disp, _gloffset_VertexAttrib1fNV));
+}
+
+static INLINE void SET_VertexAttrib1fNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLfloat)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib1fNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib1fvNV)(GLuint, const GLfloat *);
+#define CALL_VertexAttrib1fvNV(disp, parameters) \
+ (* GET_VertexAttrib1fvNV(disp)) parameters
+static INLINE _glptr_VertexAttrib1fvNV GET_VertexAttrib1fvNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib1fvNV) (GET_by_offset(disp, _gloffset_VertexAttrib1fvNV));
+}
+
+static INLINE void SET_VertexAttrib1fvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib1fvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib1sNV)(GLuint, GLshort);
+#define CALL_VertexAttrib1sNV(disp, parameters) \
+ (* GET_VertexAttrib1sNV(disp)) parameters
+static INLINE _glptr_VertexAttrib1sNV GET_VertexAttrib1sNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib1sNV) (GET_by_offset(disp, _gloffset_VertexAttrib1sNV));
+}
+
+static INLINE void SET_VertexAttrib1sNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLshort)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib1sNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib1svNV)(GLuint, const GLshort *);
+#define CALL_VertexAttrib1svNV(disp, parameters) \
+ (* GET_VertexAttrib1svNV(disp)) parameters
+static INLINE _glptr_VertexAttrib1svNV GET_VertexAttrib1svNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib1svNV) (GET_by_offset(disp, _gloffset_VertexAttrib1svNV));
+}
+
+static INLINE void SET_VertexAttrib1svNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLshort *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib1svNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib2dNV)(GLuint, GLdouble, GLdouble);
+#define CALL_VertexAttrib2dNV(disp, parameters) \
+ (* GET_VertexAttrib2dNV(disp)) parameters
+static INLINE _glptr_VertexAttrib2dNV GET_VertexAttrib2dNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib2dNV) (GET_by_offset(disp, _gloffset_VertexAttrib2dNV));
+}
+
+static INLINE void SET_VertexAttrib2dNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib2dNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib2dvNV)(GLuint, const GLdouble *);
+#define CALL_VertexAttrib2dvNV(disp, parameters) \
+ (* GET_VertexAttrib2dvNV(disp)) parameters
+static INLINE _glptr_VertexAttrib2dvNV GET_VertexAttrib2dvNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib2dvNV) (GET_by_offset(disp, _gloffset_VertexAttrib2dvNV));
+}
+
+static INLINE void SET_VertexAttrib2dvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib2dvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib2fNV)(GLuint, GLfloat, GLfloat);
+#define CALL_VertexAttrib2fNV(disp, parameters) \
+ (* GET_VertexAttrib2fNV(disp)) parameters
+static INLINE _glptr_VertexAttrib2fNV GET_VertexAttrib2fNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib2fNV) (GET_by_offset(disp, _gloffset_VertexAttrib2fNV));
+}
+
+static INLINE void SET_VertexAttrib2fNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib2fNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib2fvNV)(GLuint, const GLfloat *);
+#define CALL_VertexAttrib2fvNV(disp, parameters) \
+ (* GET_VertexAttrib2fvNV(disp)) parameters
+static INLINE _glptr_VertexAttrib2fvNV GET_VertexAttrib2fvNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib2fvNV) (GET_by_offset(disp, _gloffset_VertexAttrib2fvNV));
+}
+
+static INLINE void SET_VertexAttrib2fvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib2fvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib2sNV)(GLuint, GLshort, GLshort);
+#define CALL_VertexAttrib2sNV(disp, parameters) \
+ (* GET_VertexAttrib2sNV(disp)) parameters
+static INLINE _glptr_VertexAttrib2sNV GET_VertexAttrib2sNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib2sNV) (GET_by_offset(disp, _gloffset_VertexAttrib2sNV));
+}
+
+static INLINE void SET_VertexAttrib2sNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib2sNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib2svNV)(GLuint, const GLshort *);
+#define CALL_VertexAttrib2svNV(disp, parameters) \
+ (* GET_VertexAttrib2svNV(disp)) parameters
+static INLINE _glptr_VertexAttrib2svNV GET_VertexAttrib2svNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib2svNV) (GET_by_offset(disp, _gloffset_VertexAttrib2svNV));
+}
+
+static INLINE void SET_VertexAttrib2svNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLshort *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib2svNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib3dNV)(GLuint, GLdouble, GLdouble, GLdouble);
+#define CALL_VertexAttrib3dNV(disp, parameters) \
+ (* GET_VertexAttrib3dNV(disp)) parameters
+static INLINE _glptr_VertexAttrib3dNV GET_VertexAttrib3dNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib3dNV) (GET_by_offset(disp, _gloffset_VertexAttrib3dNV));
+}
+
+static INLINE void SET_VertexAttrib3dNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib3dNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib3dvNV)(GLuint, const GLdouble *);
+#define CALL_VertexAttrib3dvNV(disp, parameters) \
+ (* GET_VertexAttrib3dvNV(disp)) parameters
+static INLINE _glptr_VertexAttrib3dvNV GET_VertexAttrib3dvNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib3dvNV) (GET_by_offset(disp, _gloffset_VertexAttrib3dvNV));
+}
+
+static INLINE void SET_VertexAttrib3dvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib3dvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib3fNV)(GLuint, GLfloat, GLfloat, GLfloat);
+#define CALL_VertexAttrib3fNV(disp, parameters) \
+ (* GET_VertexAttrib3fNV(disp)) parameters
+static INLINE _glptr_VertexAttrib3fNV GET_VertexAttrib3fNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib3fNV) (GET_by_offset(disp, _gloffset_VertexAttrib3fNV));
+}
+
+static INLINE void SET_VertexAttrib3fNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib3fNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib3fvNV)(GLuint, const GLfloat *);
+#define CALL_VertexAttrib3fvNV(disp, parameters) \
+ (* GET_VertexAttrib3fvNV(disp)) parameters
+static INLINE _glptr_VertexAttrib3fvNV GET_VertexAttrib3fvNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib3fvNV) (GET_by_offset(disp, _gloffset_VertexAttrib3fvNV));
+}
+
+static INLINE void SET_VertexAttrib3fvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib3fvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib3sNV)(GLuint, GLshort, GLshort, GLshort);
+#define CALL_VertexAttrib3sNV(disp, parameters) \
+ (* GET_VertexAttrib3sNV(disp)) parameters
+static INLINE _glptr_VertexAttrib3sNV GET_VertexAttrib3sNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib3sNV) (GET_by_offset(disp, _gloffset_VertexAttrib3sNV));
+}
+
+static INLINE void SET_VertexAttrib3sNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib3sNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib3svNV)(GLuint, const GLshort *);
+#define CALL_VertexAttrib3svNV(disp, parameters) \
+ (* GET_VertexAttrib3svNV(disp)) parameters
+static INLINE _glptr_VertexAttrib3svNV GET_VertexAttrib3svNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib3svNV) (GET_by_offset(disp, _gloffset_VertexAttrib3svNV));
+}
+
+static INLINE void SET_VertexAttrib3svNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLshort *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib3svNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4dNV)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
+#define CALL_VertexAttrib4dNV(disp, parameters) \
+ (* GET_VertexAttrib4dNV(disp)) parameters
+static INLINE _glptr_VertexAttrib4dNV GET_VertexAttrib4dNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4dNV) (GET_by_offset(disp, _gloffset_VertexAttrib4dNV));
+}
+
+static INLINE void SET_VertexAttrib4dNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4dNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4dvNV)(GLuint, const GLdouble *);
+#define CALL_VertexAttrib4dvNV(disp, parameters) \
+ (* GET_VertexAttrib4dvNV(disp)) parameters
+static INLINE _glptr_VertexAttrib4dvNV GET_VertexAttrib4dvNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4dvNV) (GET_by_offset(disp, _gloffset_VertexAttrib4dvNV));
+}
+
+static INLINE void SET_VertexAttrib4dvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4dvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4fNV)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
+#define CALL_VertexAttrib4fNV(disp, parameters) \
+ (* GET_VertexAttrib4fNV(disp)) parameters
+static INLINE _glptr_VertexAttrib4fNV GET_VertexAttrib4fNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4fNV) (GET_by_offset(disp, _gloffset_VertexAttrib4fNV));
+}
+
+static INLINE void SET_VertexAttrib4fNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4fNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4fvNV)(GLuint, const GLfloat *);
+#define CALL_VertexAttrib4fvNV(disp, parameters) \
+ (* GET_VertexAttrib4fvNV(disp)) parameters
+static INLINE _glptr_VertexAttrib4fvNV GET_VertexAttrib4fvNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4fvNV) (GET_by_offset(disp, _gloffset_VertexAttrib4fvNV));
+}
+
+static INLINE void SET_VertexAttrib4fvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4fvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4sNV)(GLuint, GLshort, GLshort, GLshort, GLshort);
+#define CALL_VertexAttrib4sNV(disp, parameters) \
+ (* GET_VertexAttrib4sNV(disp)) parameters
+static INLINE _glptr_VertexAttrib4sNV GET_VertexAttrib4sNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4sNV) (GET_by_offset(disp, _gloffset_VertexAttrib4sNV));
+}
+
+static INLINE void SET_VertexAttrib4sNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLshort, GLshort, GLshort, GLshort)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4sNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4svNV)(GLuint, const GLshort *);
+#define CALL_VertexAttrib4svNV(disp, parameters) \
+ (* GET_VertexAttrib4svNV(disp)) parameters
+static INLINE _glptr_VertexAttrib4svNV GET_VertexAttrib4svNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4svNV) (GET_by_offset(disp, _gloffset_VertexAttrib4svNV));
+}
+
+static INLINE void SET_VertexAttrib4svNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLshort *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4svNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4ubNV)(GLuint, GLubyte, GLubyte, GLubyte, GLubyte);
+#define CALL_VertexAttrib4ubNV(disp, parameters) \
+ (* GET_VertexAttrib4ubNV(disp)) parameters
+static INLINE _glptr_VertexAttrib4ubNV GET_VertexAttrib4ubNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4ubNV) (GET_by_offset(disp, _gloffset_VertexAttrib4ubNV));
+}
+
+static INLINE void SET_VertexAttrib4ubNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLubyte, GLubyte, GLubyte, GLubyte)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4ubNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttrib4ubvNV)(GLuint, const GLubyte *);
+#define CALL_VertexAttrib4ubvNV(disp, parameters) \
+ (* GET_VertexAttrib4ubvNV(disp)) parameters
+static INLINE _glptr_VertexAttrib4ubvNV GET_VertexAttrib4ubvNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttrib4ubvNV) (GET_by_offset(disp, _gloffset_VertexAttrib4ubvNV));
+}
+
+static INLINE void SET_VertexAttrib4ubvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLubyte *)) {
+ SET_by_offset(disp, _gloffset_VertexAttrib4ubvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribPointerNV)(GLuint, GLint, GLenum, GLsizei, const GLvoid *);
+#define CALL_VertexAttribPointerNV(disp, parameters) \
+ (* GET_VertexAttribPointerNV(disp)) parameters
+static INLINE _glptr_VertexAttribPointerNV GET_VertexAttribPointerNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribPointerNV) (GET_by_offset(disp, _gloffset_VertexAttribPointerNV));
+}
+
+static INLINE void SET_VertexAttribPointerNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLint, GLenum, GLsizei, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribPointerNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribs1dvNV)(GLuint, GLsizei, const GLdouble *);
+#define CALL_VertexAttribs1dvNV(disp, parameters) \
+ (* GET_VertexAttribs1dvNV(disp)) parameters
+static INLINE _glptr_VertexAttribs1dvNV GET_VertexAttribs1dvNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribs1dvNV) (GET_by_offset(disp, _gloffset_VertexAttribs1dvNV));
+}
+
+static INLINE void SET_VertexAttribs1dvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribs1dvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribs1fvNV)(GLuint, GLsizei, const GLfloat *);
+#define CALL_VertexAttribs1fvNV(disp, parameters) \
+ (* GET_VertexAttribs1fvNV(disp)) parameters
+static INLINE _glptr_VertexAttribs1fvNV GET_VertexAttribs1fvNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribs1fvNV) (GET_by_offset(disp, _gloffset_VertexAttribs1fvNV));
+}
+
+static INLINE void SET_VertexAttribs1fvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribs1fvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribs1svNV)(GLuint, GLsizei, const GLshort *);
+#define CALL_VertexAttribs1svNV(disp, parameters) \
+ (* GET_VertexAttribs1svNV(disp)) parameters
+static INLINE _glptr_VertexAttribs1svNV GET_VertexAttribs1svNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribs1svNV) (GET_by_offset(disp, _gloffset_VertexAttribs1svNV));
+}
+
+static INLINE void SET_VertexAttribs1svNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLshort *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribs1svNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribs2dvNV)(GLuint, GLsizei, const GLdouble *);
+#define CALL_VertexAttribs2dvNV(disp, parameters) \
+ (* GET_VertexAttribs2dvNV(disp)) parameters
+static INLINE _glptr_VertexAttribs2dvNV GET_VertexAttribs2dvNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribs2dvNV) (GET_by_offset(disp, _gloffset_VertexAttribs2dvNV));
+}
+
+static INLINE void SET_VertexAttribs2dvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribs2dvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribs2fvNV)(GLuint, GLsizei, const GLfloat *);
+#define CALL_VertexAttribs2fvNV(disp, parameters) \
+ (* GET_VertexAttribs2fvNV(disp)) parameters
+static INLINE _glptr_VertexAttribs2fvNV GET_VertexAttribs2fvNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribs2fvNV) (GET_by_offset(disp, _gloffset_VertexAttribs2fvNV));
+}
+
+static INLINE void SET_VertexAttribs2fvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribs2fvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribs2svNV)(GLuint, GLsizei, const GLshort *);
+#define CALL_VertexAttribs2svNV(disp, parameters) \
+ (* GET_VertexAttribs2svNV(disp)) parameters
+static INLINE _glptr_VertexAttribs2svNV GET_VertexAttribs2svNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribs2svNV) (GET_by_offset(disp, _gloffset_VertexAttribs2svNV));
+}
+
+static INLINE void SET_VertexAttribs2svNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLshort *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribs2svNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribs3dvNV)(GLuint, GLsizei, const GLdouble *);
+#define CALL_VertexAttribs3dvNV(disp, parameters) \
+ (* GET_VertexAttribs3dvNV(disp)) parameters
+static INLINE _glptr_VertexAttribs3dvNV GET_VertexAttribs3dvNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribs3dvNV) (GET_by_offset(disp, _gloffset_VertexAttribs3dvNV));
+}
+
+static INLINE void SET_VertexAttribs3dvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribs3dvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribs3fvNV)(GLuint, GLsizei, const GLfloat *);
+#define CALL_VertexAttribs3fvNV(disp, parameters) \
+ (* GET_VertexAttribs3fvNV(disp)) parameters
+static INLINE _glptr_VertexAttribs3fvNV GET_VertexAttribs3fvNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribs3fvNV) (GET_by_offset(disp, _gloffset_VertexAttribs3fvNV));
+}
+
+static INLINE void SET_VertexAttribs3fvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribs3fvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribs3svNV)(GLuint, GLsizei, const GLshort *);
+#define CALL_VertexAttribs3svNV(disp, parameters) \
+ (* GET_VertexAttribs3svNV(disp)) parameters
+static INLINE _glptr_VertexAttribs3svNV GET_VertexAttribs3svNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribs3svNV) (GET_by_offset(disp, _gloffset_VertexAttribs3svNV));
+}
+
+static INLINE void SET_VertexAttribs3svNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLshort *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribs3svNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribs4dvNV)(GLuint, GLsizei, const GLdouble *);
+#define CALL_VertexAttribs4dvNV(disp, parameters) \
+ (* GET_VertexAttribs4dvNV(disp)) parameters
+static INLINE _glptr_VertexAttribs4dvNV GET_VertexAttribs4dvNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribs4dvNV) (GET_by_offset(disp, _gloffset_VertexAttribs4dvNV));
+}
+
+static INLINE void SET_VertexAttribs4dvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribs4dvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribs4fvNV)(GLuint, GLsizei, const GLfloat *);
+#define CALL_VertexAttribs4fvNV(disp, parameters) \
+ (* GET_VertexAttribs4fvNV(disp)) parameters
+static INLINE _glptr_VertexAttribs4fvNV GET_VertexAttribs4fvNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribs4fvNV) (GET_by_offset(disp, _gloffset_VertexAttribs4fvNV));
+}
+
+static INLINE void SET_VertexAttribs4fvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribs4fvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribs4svNV)(GLuint, GLsizei, const GLshort *);
+#define CALL_VertexAttribs4svNV(disp, parameters) \
+ (* GET_VertexAttribs4svNV(disp)) parameters
+static INLINE _glptr_VertexAttribs4svNV GET_VertexAttribs4svNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribs4svNV) (GET_by_offset(disp, _gloffset_VertexAttribs4svNV));
+}
+
+static INLINE void SET_VertexAttribs4svNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLshort *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribs4svNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribs4ubvNV)(GLuint, GLsizei, const GLubyte *);
+#define CALL_VertexAttribs4ubvNV(disp, parameters) \
+ (* GET_VertexAttribs4ubvNV(disp)) parameters
+static INLINE _glptr_VertexAttribs4ubvNV GET_VertexAttribs4ubvNV(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribs4ubvNV) (GET_by_offset(disp, _gloffset_VertexAttribs4ubvNV));
+}
+
+static INLINE void SET_VertexAttribs4ubvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLubyte *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribs4ubvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetTexBumpParameterfvATI)(GLenum, GLfloat *);
+#define CALL_GetTexBumpParameterfvATI(disp, parameters) \
+ (* GET_GetTexBumpParameterfvATI(disp)) parameters
+static INLINE _glptr_GetTexBumpParameterfvATI GET_GetTexBumpParameterfvATI(struct _glapi_table *disp) {
+ return (_glptr_GetTexBumpParameterfvATI) (GET_by_offset(disp, _gloffset_GetTexBumpParameterfvATI));
+}
+
+static INLINE void SET_GetTexBumpParameterfvATI(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetTexBumpParameterfvATI, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetTexBumpParameterivATI)(GLenum, GLint *);
+#define CALL_GetTexBumpParameterivATI(disp, parameters) \
+ (* GET_GetTexBumpParameterivATI(disp)) parameters
+static INLINE _glptr_GetTexBumpParameterivATI GET_GetTexBumpParameterivATI(struct _glapi_table *disp) {
+ return (_glptr_GetTexBumpParameterivATI) (GET_by_offset(disp, _gloffset_GetTexBumpParameterivATI));
+}
+
+static INLINE void SET_GetTexBumpParameterivATI(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetTexBumpParameterivATI, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexBumpParameterfvATI)(GLenum, const GLfloat *);
+#define CALL_TexBumpParameterfvATI(disp, parameters) \
+ (* GET_TexBumpParameterfvATI(disp)) parameters
+static INLINE _glptr_TexBumpParameterfvATI GET_TexBumpParameterfvATI(struct _glapi_table *disp) {
+ return (_glptr_TexBumpParameterfvATI) (GET_by_offset(disp, _gloffset_TexBumpParameterfvATI));
+}
+
+static INLINE void SET_TexBumpParameterfvATI(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_TexBumpParameterfvATI, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexBumpParameterivATI)(GLenum, const GLint *);
+#define CALL_TexBumpParameterivATI(disp, parameters) \
+ (* GET_TexBumpParameterivATI(disp)) parameters
+static INLINE _glptr_TexBumpParameterivATI GET_TexBumpParameterivATI(struct _glapi_table *disp) {
+ return (_glptr_TexBumpParameterivATI) (GET_by_offset(disp, _gloffset_TexBumpParameterivATI));
+}
+
+static INLINE void SET_TexBumpParameterivATI(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLint *)) {
+ SET_by_offset(disp, _gloffset_TexBumpParameterivATI, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_AlphaFragmentOp1ATI)(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint);
+#define CALL_AlphaFragmentOp1ATI(disp, parameters) \
+ (* GET_AlphaFragmentOp1ATI(disp)) parameters
+static INLINE _glptr_AlphaFragmentOp1ATI GET_AlphaFragmentOp1ATI(struct _glapi_table *disp) {
+ return (_glptr_AlphaFragmentOp1ATI) (GET_by_offset(disp, _gloffset_AlphaFragmentOp1ATI));
+}
+
+static INLINE void SET_AlphaFragmentOp1ATI(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_AlphaFragmentOp1ATI, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_AlphaFragmentOp2ATI)(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
+#define CALL_AlphaFragmentOp2ATI(disp, parameters) \
+ (* GET_AlphaFragmentOp2ATI(disp)) parameters
+static INLINE _glptr_AlphaFragmentOp2ATI GET_AlphaFragmentOp2ATI(struct _glapi_table *disp) {
+ return (_glptr_AlphaFragmentOp2ATI) (GET_by_offset(disp, _gloffset_AlphaFragmentOp2ATI));
+}
+
+static INLINE void SET_AlphaFragmentOp2ATI(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_AlphaFragmentOp2ATI, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_AlphaFragmentOp3ATI)(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
+#define CALL_AlphaFragmentOp3ATI(disp, parameters) \
+ (* GET_AlphaFragmentOp3ATI(disp)) parameters
+static INLINE _glptr_AlphaFragmentOp3ATI GET_AlphaFragmentOp3ATI(struct _glapi_table *disp) {
+ return (_glptr_AlphaFragmentOp3ATI) (GET_by_offset(disp, _gloffset_AlphaFragmentOp3ATI));
+}
+
+static INLINE void SET_AlphaFragmentOp3ATI(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_AlphaFragmentOp3ATI, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BeginFragmentShaderATI)(void);
+#define CALL_BeginFragmentShaderATI(disp, parameters) \
+ (* GET_BeginFragmentShaderATI(disp)) parameters
+static INLINE _glptr_BeginFragmentShaderATI GET_BeginFragmentShaderATI(struct _glapi_table *disp) {
+ return (_glptr_BeginFragmentShaderATI) (GET_by_offset(disp, _gloffset_BeginFragmentShaderATI));
+}
+
+static INLINE void SET_BeginFragmentShaderATI(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_BeginFragmentShaderATI, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BindFragmentShaderATI)(GLuint);
+#define CALL_BindFragmentShaderATI(disp, parameters) \
+ (* GET_BindFragmentShaderATI(disp)) parameters
+static INLINE _glptr_BindFragmentShaderATI GET_BindFragmentShaderATI(struct _glapi_table *disp) {
+ return (_glptr_BindFragmentShaderATI) (GET_by_offset(disp, _gloffset_BindFragmentShaderATI));
+}
+
+static INLINE void SET_BindFragmentShaderATI(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_BindFragmentShaderATI, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ColorFragmentOp1ATI)(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
+#define CALL_ColorFragmentOp1ATI(disp, parameters) \
+ (* GET_ColorFragmentOp1ATI(disp)) parameters
+static INLINE _glptr_ColorFragmentOp1ATI GET_ColorFragmentOp1ATI(struct _glapi_table *disp) {
+ return (_glptr_ColorFragmentOp1ATI) (GET_by_offset(disp, _gloffset_ColorFragmentOp1ATI));
+}
+
+static INLINE void SET_ColorFragmentOp1ATI(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_ColorFragmentOp1ATI, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ColorFragmentOp2ATI)(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
+#define CALL_ColorFragmentOp2ATI(disp, parameters) \
+ (* GET_ColorFragmentOp2ATI(disp)) parameters
+static INLINE _glptr_ColorFragmentOp2ATI GET_ColorFragmentOp2ATI(struct _glapi_table *disp) {
+ return (_glptr_ColorFragmentOp2ATI) (GET_by_offset(disp, _gloffset_ColorFragmentOp2ATI));
+}
+
+static INLINE void SET_ColorFragmentOp2ATI(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_ColorFragmentOp2ATI, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ColorFragmentOp3ATI)(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint);
+#define CALL_ColorFragmentOp3ATI(disp, parameters) \
+ (* GET_ColorFragmentOp3ATI(disp)) parameters
+static INLINE _glptr_ColorFragmentOp3ATI GET_ColorFragmentOp3ATI(struct _glapi_table *disp) {
+ return (_glptr_ColorFragmentOp3ATI) (GET_by_offset(disp, _gloffset_ColorFragmentOp3ATI));
+}
+
+static INLINE void SET_ColorFragmentOp3ATI(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_ColorFragmentOp3ATI, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DeleteFragmentShaderATI)(GLuint);
+#define CALL_DeleteFragmentShaderATI(disp, parameters) \
+ (* GET_DeleteFragmentShaderATI(disp)) parameters
+static INLINE _glptr_DeleteFragmentShaderATI GET_DeleteFragmentShaderATI(struct _glapi_table *disp) {
+ return (_glptr_DeleteFragmentShaderATI) (GET_by_offset(disp, _gloffset_DeleteFragmentShaderATI));
+}
+
+static INLINE void SET_DeleteFragmentShaderATI(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_DeleteFragmentShaderATI, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EndFragmentShaderATI)(void);
+#define CALL_EndFragmentShaderATI(disp, parameters) \
+ (* GET_EndFragmentShaderATI(disp)) parameters
+static INLINE _glptr_EndFragmentShaderATI GET_EndFragmentShaderATI(struct _glapi_table *disp) {
+ return (_glptr_EndFragmentShaderATI) (GET_by_offset(disp, _gloffset_EndFragmentShaderATI));
+}
+
+static INLINE void SET_EndFragmentShaderATI(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_EndFragmentShaderATI, fn);
+}
+
+typedef GLuint (GLAPIENTRYP _glptr_GenFragmentShadersATI)(GLuint);
+#define CALL_GenFragmentShadersATI(disp, parameters) \
+ (* GET_GenFragmentShadersATI(disp)) parameters
+static INLINE _glptr_GenFragmentShadersATI GET_GenFragmentShadersATI(struct _glapi_table *disp) {
+ return (_glptr_GenFragmentShadersATI) (GET_by_offset(disp, _gloffset_GenFragmentShadersATI));
+}
+
+static INLINE void SET_GenFragmentShadersATI(struct _glapi_table *disp, GLuint (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_GenFragmentShadersATI, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PassTexCoordATI)(GLuint, GLuint, GLenum);
+#define CALL_PassTexCoordATI(disp, parameters) \
+ (* GET_PassTexCoordATI(disp)) parameters
+static INLINE _glptr_PassTexCoordATI GET_PassTexCoordATI(struct _glapi_table *disp) {
+ return (_glptr_PassTexCoordATI) (GET_by_offset(disp, _gloffset_PassTexCoordATI));
+}
+
+static INLINE void SET_PassTexCoordATI(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLenum)) {
+ SET_by_offset(disp, _gloffset_PassTexCoordATI, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SampleMapATI)(GLuint, GLuint, GLenum);
+#define CALL_SampleMapATI(disp, parameters) \
+ (* GET_SampleMapATI(disp)) parameters
+static INLINE _glptr_SampleMapATI GET_SampleMapATI(struct _glapi_table *disp) {
+ return (_glptr_SampleMapATI) (GET_by_offset(disp, _gloffset_SampleMapATI));
+}
+
+static INLINE void SET_SampleMapATI(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLenum)) {
+ SET_by_offset(disp, _gloffset_SampleMapATI, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SetFragmentShaderConstantATI)(GLuint, const GLfloat *);
+#define CALL_SetFragmentShaderConstantATI(disp, parameters) \
+ (* GET_SetFragmentShaderConstantATI(disp)) parameters
+static INLINE _glptr_SetFragmentShaderConstantATI GET_SetFragmentShaderConstantATI(struct _glapi_table *disp) {
+ return (_glptr_SetFragmentShaderConstantATI) (GET_by_offset(disp, _gloffset_SetFragmentShaderConstantATI));
+}
+
+static INLINE void SET_SetFragmentShaderConstantATI(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_SetFragmentShaderConstantATI, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ActiveStencilFaceEXT)(GLenum);
+#define CALL_ActiveStencilFaceEXT(disp, parameters) \
+ (* GET_ActiveStencilFaceEXT(disp)) parameters
+static INLINE _glptr_ActiveStencilFaceEXT GET_ActiveStencilFaceEXT(struct _glapi_table *disp) {
+ return (_glptr_ActiveStencilFaceEXT) (GET_by_offset(disp, _gloffset_ActiveStencilFaceEXT));
+}
+
+static INLINE void SET_ActiveStencilFaceEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum)) {
+ SET_by_offset(disp, _gloffset_ActiveStencilFaceEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BindVertexArrayAPPLE)(GLuint);
+#define CALL_BindVertexArrayAPPLE(disp, parameters) \
+ (* GET_BindVertexArrayAPPLE(disp)) parameters
+static INLINE _glptr_BindVertexArrayAPPLE GET_BindVertexArrayAPPLE(struct _glapi_table *disp) {
+ return (_glptr_BindVertexArrayAPPLE) (GET_by_offset(disp, _gloffset_BindVertexArrayAPPLE));
+}
+
+static INLINE void SET_BindVertexArrayAPPLE(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_BindVertexArrayAPPLE, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GenVertexArraysAPPLE)(GLsizei, GLuint *);
+#define CALL_GenVertexArraysAPPLE(disp, parameters) \
+ (* GET_GenVertexArraysAPPLE(disp)) parameters
+static INLINE _glptr_GenVertexArraysAPPLE GET_GenVertexArraysAPPLE(struct _glapi_table *disp) {
+ return (_glptr_GenVertexArraysAPPLE) (GET_by_offset(disp, _gloffset_GenVertexArraysAPPLE));
+}
+
+static INLINE void SET_GenVertexArraysAPPLE(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GenVertexArraysAPPLE, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetProgramNamedParameterdvNV)(GLuint, GLsizei, const GLubyte *, GLdouble *);
+#define CALL_GetProgramNamedParameterdvNV(disp, parameters) \
+ (* GET_GetProgramNamedParameterdvNV(disp)) parameters
+static INLINE _glptr_GetProgramNamedParameterdvNV GET_GetProgramNamedParameterdvNV(struct _glapi_table *disp) {
+ return (_glptr_GetProgramNamedParameterdvNV) (GET_by_offset(disp, _gloffset_GetProgramNamedParameterdvNV));
+}
+
+static INLINE void SET_GetProgramNamedParameterdvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLubyte *, GLdouble *)) {
+ SET_by_offset(disp, _gloffset_GetProgramNamedParameterdvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetProgramNamedParameterfvNV)(GLuint, GLsizei, const GLubyte *, GLfloat *);
+#define CALL_GetProgramNamedParameterfvNV(disp, parameters) \
+ (* GET_GetProgramNamedParameterfvNV(disp)) parameters
+static INLINE _glptr_GetProgramNamedParameterfvNV GET_GetProgramNamedParameterfvNV(struct _glapi_table *disp) {
+ return (_glptr_GetProgramNamedParameterfvNV) (GET_by_offset(disp, _gloffset_GetProgramNamedParameterfvNV));
+}
+
+static INLINE void SET_GetProgramNamedParameterfvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLubyte *, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetProgramNamedParameterfvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProgramNamedParameter4dNV)(GLuint, GLsizei, const GLubyte *, GLdouble, GLdouble, GLdouble, GLdouble);
+#define CALL_ProgramNamedParameter4dNV(disp, parameters) \
+ (* GET_ProgramNamedParameter4dNV(disp)) parameters
+static INLINE _glptr_ProgramNamedParameter4dNV GET_ProgramNamedParameter4dNV(struct _glapi_table *disp) {
+ return (_glptr_ProgramNamedParameter4dNV) (GET_by_offset(disp, _gloffset_ProgramNamedParameter4dNV));
+}
+
+static INLINE void SET_ProgramNamedParameter4dNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLubyte *, GLdouble, GLdouble, GLdouble, GLdouble)) {
+ SET_by_offset(disp, _gloffset_ProgramNamedParameter4dNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProgramNamedParameter4dvNV)(GLuint, GLsizei, const GLubyte *, const GLdouble *);
+#define CALL_ProgramNamedParameter4dvNV(disp, parameters) \
+ (* GET_ProgramNamedParameter4dvNV(disp)) parameters
+static INLINE _glptr_ProgramNamedParameter4dvNV GET_ProgramNamedParameter4dvNV(struct _glapi_table *disp) {
+ return (_glptr_ProgramNamedParameter4dvNV) (GET_by_offset(disp, _gloffset_ProgramNamedParameter4dvNV));
+}
+
+static INLINE void SET_ProgramNamedParameter4dvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLubyte *, const GLdouble *)) {
+ SET_by_offset(disp, _gloffset_ProgramNamedParameter4dvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProgramNamedParameter4fNV)(GLuint, GLsizei, const GLubyte *, GLfloat, GLfloat, GLfloat, GLfloat);
+#define CALL_ProgramNamedParameter4fNV(disp, parameters) \
+ (* GET_ProgramNamedParameter4fNV(disp)) parameters
+static INLINE _glptr_ProgramNamedParameter4fNV GET_ProgramNamedParameter4fNV(struct _glapi_table *disp) {
+ return (_glptr_ProgramNamedParameter4fNV) (GET_by_offset(disp, _gloffset_ProgramNamedParameter4fNV));
+}
+
+static INLINE void SET_ProgramNamedParameter4fNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLubyte *, GLfloat, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_ProgramNamedParameter4fNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProgramNamedParameter4fvNV)(GLuint, GLsizei, const GLubyte *, const GLfloat *);
+#define CALL_ProgramNamedParameter4fvNV(disp, parameters) \
+ (* GET_ProgramNamedParameter4fvNV(disp)) parameters
+static INLINE _glptr_ProgramNamedParameter4fvNV GET_ProgramNamedParameter4fvNV(struct _glapi_table *disp) {
+ return (_glptr_ProgramNamedParameter4fvNV) (GET_by_offset(disp, _gloffset_ProgramNamedParameter4fvNV));
+}
+
+static INLINE void SET_ProgramNamedParameter4fvNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, const GLubyte *, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_ProgramNamedParameter4fvNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PrimitiveRestartNV)(void);
+#define CALL_PrimitiveRestartNV(disp, parameters) \
+ (* GET_PrimitiveRestartNV(disp)) parameters
+static INLINE _glptr_PrimitiveRestartNV GET_PrimitiveRestartNV(struct _glapi_table *disp) {
+ return (_glptr_PrimitiveRestartNV) (GET_by_offset(disp, _gloffset_PrimitiveRestartNV));
+}
+
+static INLINE void SET_PrimitiveRestartNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_PrimitiveRestartNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetTexGenxvOES)(GLenum, GLenum, GLfixed *);
+#define CALL_GetTexGenxvOES(disp, parameters) \
+ (* GET_GetTexGenxvOES(disp)) parameters
+static INLINE _glptr_GetTexGenxvOES GET_GetTexGenxvOES(struct _glapi_table *disp) {
+ return (_glptr_GetTexGenxvOES) (GET_by_offset(disp, _gloffset_GetTexGenxvOES));
+}
+
+static INLINE void SET_GetTexGenxvOES(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfixed *)) {
+ SET_by_offset(disp, _gloffset_GetTexGenxvOES, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexGenxOES)(GLenum, GLenum, GLint);
+#define CALL_TexGenxOES(disp, parameters) \
+ (* GET_TexGenxOES(disp)) parameters
+static INLINE _glptr_TexGenxOES GET_TexGenxOES(struct _glapi_table *disp) {
+ return (_glptr_TexGenxOES) (GET_by_offset(disp, _gloffset_TexGenxOES));
+}
+
+static INLINE void SET_TexGenxOES(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint)) {
+ SET_by_offset(disp, _gloffset_TexGenxOES, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexGenxvOES)(GLenum, GLenum, const GLfixed *);
+#define CALL_TexGenxvOES(disp, parameters) \
+ (* GET_TexGenxvOES(disp)) parameters
+static INLINE _glptr_TexGenxvOES GET_TexGenxvOES(struct _glapi_table *disp) {
+ return (_glptr_TexGenxvOES) (GET_by_offset(disp, _gloffset_TexGenxvOES));
+}
+
+static INLINE void SET_TexGenxvOES(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLfixed *)) {
+ SET_by_offset(disp, _gloffset_TexGenxvOES, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DepthBoundsEXT)(GLclampd, GLclampd);
+#define CALL_DepthBoundsEXT(disp, parameters) \
+ (* GET_DepthBoundsEXT(disp)) parameters
+static INLINE _glptr_DepthBoundsEXT GET_DepthBoundsEXT(struct _glapi_table *disp) {
+ return (_glptr_DepthBoundsEXT) (GET_by_offset(disp, _gloffset_DepthBoundsEXT));
+}
+
+static INLINE void SET_DepthBoundsEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLclampd, GLclampd)) {
+ SET_by_offset(disp, _gloffset_DepthBoundsEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BindFramebufferEXT)(GLenum, GLuint);
+#define CALL_BindFramebufferEXT(disp, parameters) \
+ (* GET_BindFramebufferEXT(disp)) parameters
+static INLINE _glptr_BindFramebufferEXT GET_BindFramebufferEXT(struct _glapi_table *disp) {
+ return (_glptr_BindFramebufferEXT) (GET_by_offset(disp, _gloffset_BindFramebufferEXT));
+}
+
+static INLINE void SET_BindFramebufferEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_BindFramebufferEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BindRenderbufferEXT)(GLenum, GLuint);
+#define CALL_BindRenderbufferEXT(disp, parameters) \
+ (* GET_BindRenderbufferEXT(disp)) parameters
+static INLINE _glptr_BindRenderbufferEXT GET_BindRenderbufferEXT(struct _glapi_table *disp) {
+ return (_glptr_BindRenderbufferEXT) (GET_by_offset(disp, _gloffset_BindRenderbufferEXT));
+}
+
+static INLINE void SET_BindRenderbufferEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_BindRenderbufferEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BufferParameteriAPPLE)(GLenum, GLenum, GLint);
+#define CALL_BufferParameteriAPPLE(disp, parameters) \
+ (* GET_BufferParameteriAPPLE(disp)) parameters
+static INLINE _glptr_BufferParameteriAPPLE GET_BufferParameteriAPPLE(struct _glapi_table *disp) {
+ return (_glptr_BufferParameteriAPPLE) (GET_by_offset(disp, _gloffset_BufferParameteriAPPLE));
+}
+
+static INLINE void SET_BufferParameteriAPPLE(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint)) {
+ SET_by_offset(disp, _gloffset_BufferParameteriAPPLE, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_FlushMappedBufferRangeAPPLE)(GLenum, GLintptr, GLsizeiptr);
+#define CALL_FlushMappedBufferRangeAPPLE(disp, parameters) \
+ (* GET_FlushMappedBufferRangeAPPLE(disp)) parameters
+static INLINE _glptr_FlushMappedBufferRangeAPPLE GET_FlushMappedBufferRangeAPPLE(struct _glapi_table *disp) {
+ return (_glptr_FlushMappedBufferRangeAPPLE) (GET_by_offset(disp, _gloffset_FlushMappedBufferRangeAPPLE));
+}
+
+static INLINE void SET_FlushMappedBufferRangeAPPLE(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLintptr, GLsizeiptr)) {
+ SET_by_offset(disp, _gloffset_FlushMappedBufferRangeAPPLE, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI1iEXT)(GLuint, GLint);
+#define CALL_VertexAttribI1iEXT(disp, parameters) \
+ (* GET_VertexAttribI1iEXT(disp)) parameters
+static INLINE _glptr_VertexAttribI1iEXT GET_VertexAttribI1iEXT(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI1iEXT) (GET_by_offset(disp, _gloffset_VertexAttribI1iEXT));
+}
+
+static INLINE void SET_VertexAttribI1iEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLint)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI1iEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI1uiEXT)(GLuint, GLuint);
+#define CALL_VertexAttribI1uiEXT(disp, parameters) \
+ (* GET_VertexAttribI1uiEXT(disp)) parameters
+static INLINE _glptr_VertexAttribI1uiEXT GET_VertexAttribI1uiEXT(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI1uiEXT) (GET_by_offset(disp, _gloffset_VertexAttribI1uiEXT));
+}
+
+static INLINE void SET_VertexAttribI1uiEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI1uiEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI2iEXT)(GLuint, GLint, GLint);
+#define CALL_VertexAttribI2iEXT(disp, parameters) \
+ (* GET_VertexAttribI2iEXT(disp)) parameters
+static INLINE _glptr_VertexAttribI2iEXT GET_VertexAttribI2iEXT(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI2iEXT) (GET_by_offset(disp, _gloffset_VertexAttribI2iEXT));
+}
+
+static INLINE void SET_VertexAttribI2iEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI2iEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI2ivEXT)(GLuint, const GLint *);
+#define CALL_VertexAttribI2ivEXT(disp, parameters) \
+ (* GET_VertexAttribI2ivEXT(disp)) parameters
+static INLINE _glptr_VertexAttribI2ivEXT GET_VertexAttribI2ivEXT(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI2ivEXT) (GET_by_offset(disp, _gloffset_VertexAttribI2ivEXT));
+}
+
+static INLINE void SET_VertexAttribI2ivEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLint *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI2ivEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI2uiEXT)(GLuint, GLuint, GLuint);
+#define CALL_VertexAttribI2uiEXT(disp, parameters) \
+ (* GET_VertexAttribI2uiEXT(disp)) parameters
+static INLINE _glptr_VertexAttribI2uiEXT GET_VertexAttribI2uiEXT(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI2uiEXT) (GET_by_offset(disp, _gloffset_VertexAttribI2uiEXT));
+}
+
+static INLINE void SET_VertexAttribI2uiEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI2uiEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI2uivEXT)(GLuint, const GLuint *);
+#define CALL_VertexAttribI2uivEXT(disp, parameters) \
+ (* GET_VertexAttribI2uivEXT(disp)) parameters
+static INLINE _glptr_VertexAttribI2uivEXT GET_VertexAttribI2uivEXT(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI2uivEXT) (GET_by_offset(disp, _gloffset_VertexAttribI2uivEXT));
+}
+
+static INLINE void SET_VertexAttribI2uivEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI2uivEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI3iEXT)(GLuint, GLint, GLint, GLint);
+#define CALL_VertexAttribI3iEXT(disp, parameters) \
+ (* GET_VertexAttribI3iEXT(disp)) parameters
+static INLINE _glptr_VertexAttribI3iEXT GET_VertexAttribI3iEXT(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI3iEXT) (GET_by_offset(disp, _gloffset_VertexAttribI3iEXT));
+}
+
+static INLINE void SET_VertexAttribI3iEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI3iEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI3ivEXT)(GLuint, const GLint *);
+#define CALL_VertexAttribI3ivEXT(disp, parameters) \
+ (* GET_VertexAttribI3ivEXT(disp)) parameters
+static INLINE _glptr_VertexAttribI3ivEXT GET_VertexAttribI3ivEXT(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI3ivEXT) (GET_by_offset(disp, _gloffset_VertexAttribI3ivEXT));
+}
+
+static INLINE void SET_VertexAttribI3ivEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLint *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI3ivEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI3uiEXT)(GLuint, GLuint, GLuint, GLuint);
+#define CALL_VertexAttribI3uiEXT(disp, parameters) \
+ (* GET_VertexAttribI3uiEXT(disp)) parameters
+static INLINE _glptr_VertexAttribI3uiEXT GET_VertexAttribI3uiEXT(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI3uiEXT) (GET_by_offset(disp, _gloffset_VertexAttribI3uiEXT));
+}
+
+static INLINE void SET_VertexAttribI3uiEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI3uiEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI3uivEXT)(GLuint, const GLuint *);
+#define CALL_VertexAttribI3uivEXT(disp, parameters) \
+ (* GET_VertexAttribI3uivEXT(disp)) parameters
+static INLINE _glptr_VertexAttribI3uivEXT GET_VertexAttribI3uivEXT(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI3uivEXT) (GET_by_offset(disp, _gloffset_VertexAttribI3uivEXT));
+}
+
+static INLINE void SET_VertexAttribI3uivEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI3uivEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI4iEXT)(GLuint, GLint, GLint, GLint, GLint);
+#define CALL_VertexAttribI4iEXT(disp, parameters) \
+ (* GET_VertexAttribI4iEXT(disp)) parameters
+static INLINE _glptr_VertexAttribI4iEXT GET_VertexAttribI4iEXT(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI4iEXT) (GET_by_offset(disp, _gloffset_VertexAttribI4iEXT));
+}
+
+static INLINE void SET_VertexAttribI4iEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLint, GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI4iEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI4ivEXT)(GLuint, const GLint *);
+#define CALL_VertexAttribI4ivEXT(disp, parameters) \
+ (* GET_VertexAttribI4ivEXT(disp)) parameters
+static INLINE _glptr_VertexAttribI4ivEXT GET_VertexAttribI4ivEXT(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI4ivEXT) (GET_by_offset(disp, _gloffset_VertexAttribI4ivEXT));
+}
+
+static INLINE void SET_VertexAttribI4ivEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLint *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI4ivEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI4uiEXT)(GLuint, GLuint, GLuint, GLuint, GLuint);
+#define CALL_VertexAttribI4uiEXT(disp, parameters) \
+ (* GET_VertexAttribI4uiEXT(disp)) parameters
+static INLINE _glptr_VertexAttribI4uiEXT GET_VertexAttribI4uiEXT(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI4uiEXT) (GET_by_offset(disp, _gloffset_VertexAttribI4uiEXT));
+}
+
+static INLINE void SET_VertexAttribI4uiEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLuint, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI4uiEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VertexAttribI4uivEXT)(GLuint, const GLuint *);
+#define CALL_VertexAttribI4uivEXT(disp, parameters) \
+ (* GET_VertexAttribI4uivEXT(disp)) parameters
+static INLINE _glptr_VertexAttribI4uivEXT GET_VertexAttribI4uivEXT(struct _glapi_table *disp) {
+ return (_glptr_VertexAttribI4uivEXT) (GET_by_offset(disp, _gloffset_VertexAttribI4uivEXT));
+}
+
+static INLINE void SET_VertexAttribI4uivEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_VertexAttribI4uivEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ClearColorIiEXT)(GLint, GLint, GLint, GLint);
+#define CALL_ClearColorIiEXT(disp, parameters) \
+ (* GET_ClearColorIiEXT(disp)) parameters
+static INLINE _glptr_ClearColorIiEXT GET_ClearColorIiEXT(struct _glapi_table *disp) {
+ return (_glptr_ClearColorIiEXT) (GET_by_offset(disp, _gloffset_ClearColorIiEXT));
+}
+
+static INLINE void SET_ClearColorIiEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint, GLint, GLint, GLint)) {
+ SET_by_offset(disp, _gloffset_ClearColorIiEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ClearColorIuiEXT)(GLuint, GLuint, GLuint, GLuint);
+#define CALL_ClearColorIuiEXT(disp, parameters) \
+ (* GET_ClearColorIuiEXT(disp)) parameters
+static INLINE _glptr_ClearColorIuiEXT GET_ClearColorIuiEXT(struct _glapi_table *disp) {
+ return (_glptr_ClearColorIuiEXT) (GET_by_offset(disp, _gloffset_ClearColorIuiEXT));
+}
+
+static INLINE void SET_ClearColorIuiEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLuint, GLuint)) {
+ SET_by_offset(disp, _gloffset_ClearColorIuiEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BindBufferOffsetEXT)(GLenum, GLuint, GLuint, GLintptr);
+#define CALL_BindBufferOffsetEXT(disp, parameters) \
+ (* GET_BindBufferOffsetEXT(disp)) parameters
+static INLINE _glptr_BindBufferOffsetEXT GET_BindBufferOffsetEXT(struct _glapi_table *disp) {
+ return (_glptr_BindBufferOffsetEXT) (GET_by_offset(disp, _gloffset_BindBufferOffsetEXT));
+}
+
+static INLINE void SET_BindBufferOffsetEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLuint, GLintptr)) {
+ SET_by_offset(disp, _gloffset_BindBufferOffsetEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_BeginPerfMonitorAMD)(GLuint);
+#define CALL_BeginPerfMonitorAMD(disp, parameters) \
+ (* GET_BeginPerfMonitorAMD(disp)) parameters
+static INLINE _glptr_BeginPerfMonitorAMD GET_BeginPerfMonitorAMD(struct _glapi_table *disp) {
+ return (_glptr_BeginPerfMonitorAMD) (GET_by_offset(disp, _gloffset_BeginPerfMonitorAMD));
+}
+
+static INLINE void SET_BeginPerfMonitorAMD(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_BeginPerfMonitorAMD, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DeletePerfMonitorsAMD)(GLsizei, GLuint *);
+#define CALL_DeletePerfMonitorsAMD(disp, parameters) \
+ (* GET_DeletePerfMonitorsAMD(disp)) parameters
+static INLINE _glptr_DeletePerfMonitorsAMD GET_DeletePerfMonitorsAMD(struct _glapi_table *disp) {
+ return (_glptr_DeletePerfMonitorsAMD) (GET_by_offset(disp, _gloffset_DeletePerfMonitorsAMD));
+}
+
+static INLINE void SET_DeletePerfMonitorsAMD(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, GLuint *)) {
+ SET_by_offset(disp, _gloffset_DeletePerfMonitorsAMD, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EndPerfMonitorAMD)(GLuint);
+#define CALL_EndPerfMonitorAMD(disp, parameters) \
+ (* GET_EndPerfMonitorAMD(disp)) parameters
+static INLINE _glptr_EndPerfMonitorAMD GET_EndPerfMonitorAMD(struct _glapi_table *disp) {
+ return (_glptr_EndPerfMonitorAMD) (GET_by_offset(disp, _gloffset_EndPerfMonitorAMD));
+}
+
+static INLINE void SET_EndPerfMonitorAMD(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_EndPerfMonitorAMD, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GenPerfMonitorsAMD)(GLsizei, GLuint *);
+#define CALL_GenPerfMonitorsAMD(disp, parameters) \
+ (* GET_GenPerfMonitorsAMD(disp)) parameters
+static INLINE _glptr_GenPerfMonitorsAMD GET_GenPerfMonitorsAMD(struct _glapi_table *disp) {
+ return (_glptr_GenPerfMonitorsAMD) (GET_by_offset(disp, _gloffset_GenPerfMonitorsAMD));
+}
+
+static INLINE void SET_GenPerfMonitorsAMD(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GenPerfMonitorsAMD, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetPerfMonitorCounterDataAMD)(GLuint, GLenum, GLsizei, GLuint *, GLint *);
+#define CALL_GetPerfMonitorCounterDataAMD(disp, parameters) \
+ (* GET_GetPerfMonitorCounterDataAMD(disp)) parameters
+static INLINE _glptr_GetPerfMonitorCounterDataAMD GET_GetPerfMonitorCounterDataAMD(struct _glapi_table *disp) {
+ return (_glptr_GetPerfMonitorCounterDataAMD) (GET_by_offset(disp, _gloffset_GetPerfMonitorCounterDataAMD));
+}
+
+static INLINE void SET_GetPerfMonitorCounterDataAMD(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLenum, GLsizei, GLuint *, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetPerfMonitorCounterDataAMD, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetPerfMonitorCounterInfoAMD)(GLuint, GLuint, GLenum, GLvoid *);
+#define CALL_GetPerfMonitorCounterInfoAMD(disp, parameters) \
+ (* GET_GetPerfMonitorCounterInfoAMD(disp)) parameters
+static INLINE _glptr_GetPerfMonitorCounterInfoAMD GET_GetPerfMonitorCounterInfoAMD(struct _glapi_table *disp) {
+ return (_glptr_GetPerfMonitorCounterInfoAMD) (GET_by_offset(disp, _gloffset_GetPerfMonitorCounterInfoAMD));
+}
+
+static INLINE void SET_GetPerfMonitorCounterInfoAMD(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLenum, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_GetPerfMonitorCounterInfoAMD, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetPerfMonitorCounterStringAMD)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *);
+#define CALL_GetPerfMonitorCounterStringAMD(disp, parameters) \
+ (* GET_GetPerfMonitorCounterStringAMD(disp)) parameters
+static INLINE _glptr_GetPerfMonitorCounterStringAMD GET_GetPerfMonitorCounterStringAMD(struct _glapi_table *disp) {
+ return (_glptr_GetPerfMonitorCounterStringAMD) (GET_by_offset(disp, _gloffset_GetPerfMonitorCounterStringAMD));
+}
+
+static INLINE void SET_GetPerfMonitorCounterStringAMD(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *)) {
+ SET_by_offset(disp, _gloffset_GetPerfMonitorCounterStringAMD, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetPerfMonitorCountersAMD)(GLuint, GLint *, GLint *, GLsizei, GLuint *);
+#define CALL_GetPerfMonitorCountersAMD(disp, parameters) \
+ (* GET_GetPerfMonitorCountersAMD(disp)) parameters
+static INLINE _glptr_GetPerfMonitorCountersAMD GET_GetPerfMonitorCountersAMD(struct _glapi_table *disp) {
+ return (_glptr_GetPerfMonitorCountersAMD) (GET_by_offset(disp, _gloffset_GetPerfMonitorCountersAMD));
+}
+
+static INLINE void SET_GetPerfMonitorCountersAMD(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLint *, GLint *, GLsizei, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GetPerfMonitorCountersAMD, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetPerfMonitorGroupStringAMD)(GLuint, GLsizei, GLsizei *, GLchar *);
+#define CALL_GetPerfMonitorGroupStringAMD(disp, parameters) \
+ (* GET_GetPerfMonitorGroupStringAMD(disp)) parameters
+static INLINE _glptr_GetPerfMonitorGroupStringAMD GET_GetPerfMonitorGroupStringAMD(struct _glapi_table *disp) {
+ return (_glptr_GetPerfMonitorGroupStringAMD) (GET_by_offset(disp, _gloffset_GetPerfMonitorGroupStringAMD));
+}
+
+static INLINE void SET_GetPerfMonitorGroupStringAMD(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLsizei, GLsizei *, GLchar *)) {
+ SET_by_offset(disp, _gloffset_GetPerfMonitorGroupStringAMD, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetPerfMonitorGroupsAMD)(GLint *, GLsizei, GLuint *);
+#define CALL_GetPerfMonitorGroupsAMD(disp, parameters) \
+ (* GET_GetPerfMonitorGroupsAMD(disp)) parameters
+static INLINE _glptr_GetPerfMonitorGroupsAMD GET_GetPerfMonitorGroupsAMD(struct _glapi_table *disp) {
+ return (_glptr_GetPerfMonitorGroupsAMD) (GET_by_offset(disp, _gloffset_GetPerfMonitorGroupsAMD));
+}
+
+static INLINE void SET_GetPerfMonitorGroupsAMD(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLint *, GLsizei, GLuint *)) {
+ SET_by_offset(disp, _gloffset_GetPerfMonitorGroupsAMD, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SelectPerfMonitorCountersAMD)(GLuint, GLboolean, GLuint, GLint, GLuint *);
+#define CALL_SelectPerfMonitorCountersAMD(disp, parameters) \
+ (* GET_SelectPerfMonitorCountersAMD(disp)) parameters
+static INLINE _glptr_SelectPerfMonitorCountersAMD GET_SelectPerfMonitorCountersAMD(struct _glapi_table *disp) {
+ return (_glptr_SelectPerfMonitorCountersAMD) (GET_by_offset(disp, _gloffset_SelectPerfMonitorCountersAMD));
+}
+
+static INLINE void SET_SelectPerfMonitorCountersAMD(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint, GLboolean, GLuint, GLint, GLuint *)) {
+ SET_by_offset(disp, _gloffset_SelectPerfMonitorCountersAMD, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetObjectParameterivAPPLE)(GLenum, GLuint, GLenum, GLint *);
+#define CALL_GetObjectParameterivAPPLE(disp, parameters) \
+ (* GET_GetObjectParameterivAPPLE(disp)) parameters
+static INLINE _glptr_GetObjectParameterivAPPLE GET_GetObjectParameterivAPPLE(struct _glapi_table *disp) {
+ return (_glptr_GetObjectParameterivAPPLE) (GET_by_offset(disp, _gloffset_GetObjectParameterivAPPLE));
+}
+
+static INLINE void SET_GetObjectParameterivAPPLE(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLenum, GLint *)) {
+ SET_by_offset(disp, _gloffset_GetObjectParameterivAPPLE, fn);
+}
+
+typedef GLenum (GLAPIENTRYP _glptr_ObjectPurgeableAPPLE)(GLenum, GLuint, GLenum);
+#define CALL_ObjectPurgeableAPPLE(disp, parameters) \
+ (* GET_ObjectPurgeableAPPLE(disp)) parameters
+static INLINE _glptr_ObjectPurgeableAPPLE GET_ObjectPurgeableAPPLE(struct _glapi_table *disp) {
+ return (_glptr_ObjectPurgeableAPPLE) (GET_by_offset(disp, _gloffset_ObjectPurgeableAPPLE));
+}
+
+static INLINE void SET_ObjectPurgeableAPPLE(struct _glapi_table *disp, GLenum (GLAPIENTRYP fn)(GLenum, GLuint, GLenum)) {
+ SET_by_offset(disp, _gloffset_ObjectPurgeableAPPLE, fn);
+}
+
+typedef GLenum (GLAPIENTRYP _glptr_ObjectUnpurgeableAPPLE)(GLenum, GLuint, GLenum);
+#define CALL_ObjectUnpurgeableAPPLE(disp, parameters) \
+ (* GET_ObjectUnpurgeableAPPLE(disp)) parameters
+static INLINE _glptr_ObjectUnpurgeableAPPLE GET_ObjectUnpurgeableAPPLE(struct _glapi_table *disp) {
+ return (_glptr_ObjectUnpurgeableAPPLE) (GET_by_offset(disp, _gloffset_ObjectUnpurgeableAPPLE));
+}
+
+static INLINE void SET_ObjectUnpurgeableAPPLE(struct _glapi_table *disp, GLenum (GLAPIENTRYP fn)(GLenum, GLuint, GLenum)) {
+ SET_by_offset(disp, _gloffset_ObjectUnpurgeableAPPLE, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ActiveProgramEXT)(GLuint);
+#define CALL_ActiveProgramEXT(disp, parameters) \
+ (* GET_ActiveProgramEXT(disp)) parameters
+static INLINE _glptr_ActiveProgramEXT GET_ActiveProgramEXT(struct _glapi_table *disp) {
+ return (_glptr_ActiveProgramEXT) (GET_by_offset(disp, _gloffset_ActiveProgramEXT));
+}
+
+static INLINE void SET_ActiveProgramEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLuint)) {
+ SET_by_offset(disp, _gloffset_ActiveProgramEXT, fn);
+}
+
+typedef GLuint (GLAPIENTRYP _glptr_CreateShaderProgramEXT)(GLenum, const GLchar *);
+#define CALL_CreateShaderProgramEXT(disp, parameters) \
+ (* GET_CreateShaderProgramEXT(disp)) parameters
+static INLINE _glptr_CreateShaderProgramEXT GET_CreateShaderProgramEXT(struct _glapi_table *disp) {
+ return (_glptr_CreateShaderProgramEXT) (GET_by_offset(disp, _gloffset_CreateShaderProgramEXT));
+}
+
+static INLINE void SET_CreateShaderProgramEXT(struct _glapi_table *disp, GLuint (GLAPIENTRYP fn)(GLenum, const GLchar *)) {
+ SET_by_offset(disp, _gloffset_CreateShaderProgramEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_UseShaderProgramEXT)(GLenum, GLuint);
+#define CALL_UseShaderProgramEXT(disp, parameters) \
+ (* GET_UseShaderProgramEXT(disp)) parameters
+static INLINE _glptr_UseShaderProgramEXT GET_UseShaderProgramEXT(struct _glapi_table *disp) {
+ return (_glptr_UseShaderProgramEXT) (GET_by_offset(disp, _gloffset_UseShaderProgramEXT));
+}
+
+static INLINE void SET_UseShaderProgramEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint)) {
+ SET_by_offset(disp, _gloffset_UseShaderProgramEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TextureBarrierNV)(void);
+#define CALL_TextureBarrierNV(disp, parameters) \
+ (* GET_TextureBarrierNV(disp)) parameters
+static INLINE _glptr_TextureBarrierNV GET_TextureBarrierNV(struct _glapi_table *disp) {
+ return (_glptr_TextureBarrierNV) (GET_by_offset(disp, _gloffset_TextureBarrierNV));
+}
+
+static INLINE void SET_TextureBarrierNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_TextureBarrierNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VDPAUFiniNV)(void);
+#define CALL_VDPAUFiniNV(disp, parameters) \
+ (* GET_VDPAUFiniNV(disp)) parameters
+static INLINE _glptr_VDPAUFiniNV GET_VDPAUFiniNV(struct _glapi_table *disp) {
+ return (_glptr_VDPAUFiniNV) (GET_by_offset(disp, _gloffset_VDPAUFiniNV));
+}
+
+static INLINE void SET_VDPAUFiniNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(void)) {
+ SET_by_offset(disp, _gloffset_VDPAUFiniNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VDPAUGetSurfaceivNV)(GLintptr, GLenum, GLsizei, GLsizei *, GLint *);
+#define CALL_VDPAUGetSurfaceivNV(disp, parameters) \
+ (* GET_VDPAUGetSurfaceivNV(disp)) parameters
+static INLINE _glptr_VDPAUGetSurfaceivNV GET_VDPAUGetSurfaceivNV(struct _glapi_table *disp) {
+ return (_glptr_VDPAUGetSurfaceivNV) (GET_by_offset(disp, _gloffset_VDPAUGetSurfaceivNV));
+}
+
+static INLINE void SET_VDPAUGetSurfaceivNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLintptr, GLenum, GLsizei, GLsizei *, GLint *)) {
+ SET_by_offset(disp, _gloffset_VDPAUGetSurfaceivNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VDPAUInitNV)(const GLvoid *, const GLvoid *);
+#define CALL_VDPAUInitNV(disp, parameters) \
+ (* GET_VDPAUInitNV(disp)) parameters
+static INLINE _glptr_VDPAUInitNV GET_VDPAUInitNV(struct _glapi_table *disp) {
+ return (_glptr_VDPAUInitNV) (GET_by_offset(disp, _gloffset_VDPAUInitNV));
+}
+
+static INLINE void SET_VDPAUInitNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLvoid *, const GLvoid *)) {
+ SET_by_offset(disp, _gloffset_VDPAUInitNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VDPAUIsSurfaceNV)(GLintptr);
+#define CALL_VDPAUIsSurfaceNV(disp, parameters) \
+ (* GET_VDPAUIsSurfaceNV(disp)) parameters
+static INLINE _glptr_VDPAUIsSurfaceNV GET_VDPAUIsSurfaceNV(struct _glapi_table *disp) {
+ return (_glptr_VDPAUIsSurfaceNV) (GET_by_offset(disp, _gloffset_VDPAUIsSurfaceNV));
+}
+
+static INLINE void SET_VDPAUIsSurfaceNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLintptr)) {
+ SET_by_offset(disp, _gloffset_VDPAUIsSurfaceNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VDPAUMapSurfacesNV)(GLsizei, const GLintptr *);
+#define CALL_VDPAUMapSurfacesNV(disp, parameters) \
+ (* GET_VDPAUMapSurfacesNV(disp)) parameters
+static INLINE _glptr_VDPAUMapSurfacesNV GET_VDPAUMapSurfacesNV(struct _glapi_table *disp) {
+ return (_glptr_VDPAUMapSurfacesNV) (GET_by_offset(disp, _gloffset_VDPAUMapSurfacesNV));
+}
+
+static INLINE void SET_VDPAUMapSurfacesNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, const GLintptr *)) {
+ SET_by_offset(disp, _gloffset_VDPAUMapSurfacesNV, fn);
+}
+
+typedef GLintptr (GLAPIENTRYP _glptr_VDPAURegisterOutputSurfaceNV)(const GLvoid *, GLenum, GLsizei, const GLuint *);
+#define CALL_VDPAURegisterOutputSurfaceNV(disp, parameters) \
+ (* GET_VDPAURegisterOutputSurfaceNV(disp)) parameters
+static INLINE _glptr_VDPAURegisterOutputSurfaceNV GET_VDPAURegisterOutputSurfaceNV(struct _glapi_table *disp) {
+ return (_glptr_VDPAURegisterOutputSurfaceNV) (GET_by_offset(disp, _gloffset_VDPAURegisterOutputSurfaceNV));
+}
+
+static INLINE void SET_VDPAURegisterOutputSurfaceNV(struct _glapi_table *disp, GLintptr (GLAPIENTRYP fn)(const GLvoid *, GLenum, GLsizei, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_VDPAURegisterOutputSurfaceNV, fn);
+}
+
+typedef GLintptr (GLAPIENTRYP _glptr_VDPAURegisterVideoSurfaceNV)(const GLvoid *, GLenum, GLsizei, const GLuint *);
+#define CALL_VDPAURegisterVideoSurfaceNV(disp, parameters) \
+ (* GET_VDPAURegisterVideoSurfaceNV(disp)) parameters
+static INLINE _glptr_VDPAURegisterVideoSurfaceNV GET_VDPAURegisterVideoSurfaceNV(struct _glapi_table *disp) {
+ return (_glptr_VDPAURegisterVideoSurfaceNV) (GET_by_offset(disp, _gloffset_VDPAURegisterVideoSurfaceNV));
+}
+
+static INLINE void SET_VDPAURegisterVideoSurfaceNV(struct _glapi_table *disp, GLintptr (GLAPIENTRYP fn)(const GLvoid *, GLenum, GLsizei, const GLuint *)) {
+ SET_by_offset(disp, _gloffset_VDPAURegisterVideoSurfaceNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VDPAUSurfaceAccessNV)(GLintptr, GLenum);
+#define CALL_VDPAUSurfaceAccessNV(disp, parameters) \
+ (* GET_VDPAUSurfaceAccessNV(disp)) parameters
+static INLINE _glptr_VDPAUSurfaceAccessNV GET_VDPAUSurfaceAccessNV(struct _glapi_table *disp) {
+ return (_glptr_VDPAUSurfaceAccessNV) (GET_by_offset(disp, _gloffset_VDPAUSurfaceAccessNV));
+}
+
+static INLINE void SET_VDPAUSurfaceAccessNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLintptr, GLenum)) {
+ SET_by_offset(disp, _gloffset_VDPAUSurfaceAccessNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VDPAUUnmapSurfacesNV)(GLsizei, const GLintptr *);
+#define CALL_VDPAUUnmapSurfacesNV(disp, parameters) \
+ (* GET_VDPAUUnmapSurfacesNV(disp)) parameters
+static INLINE _glptr_VDPAUUnmapSurfacesNV GET_VDPAUUnmapSurfacesNV(struct _glapi_table *disp) {
+ return (_glptr_VDPAUUnmapSurfacesNV) (GET_by_offset(disp, _gloffset_VDPAUUnmapSurfacesNV));
+}
+
+static INLINE void SET_VDPAUUnmapSurfacesNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLsizei, const GLintptr *)) {
+ SET_by_offset(disp, _gloffset_VDPAUUnmapSurfacesNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_VDPAUUnregisterSurfaceNV)(GLintptr);
+#define CALL_VDPAUUnregisterSurfaceNV(disp, parameters) \
+ (* GET_VDPAUUnregisterSurfaceNV(disp)) parameters
+static INLINE _glptr_VDPAUUnregisterSurfaceNV GET_VDPAUUnregisterSurfaceNV(struct _glapi_table *disp) {
+ return (_glptr_VDPAUUnregisterSurfaceNV) (GET_by_offset(disp, _gloffset_VDPAUUnregisterSurfaceNV));
+}
+
+static INLINE void SET_VDPAUUnregisterSurfaceNV(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLintptr)) {
+ SET_by_offset(disp, _gloffset_VDPAUUnregisterSurfaceNV, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_StencilFuncSeparateATI)(GLenum, GLenum, GLint, GLuint);
+#define CALL_StencilFuncSeparateATI(disp, parameters) \
+ (* GET_StencilFuncSeparateATI(disp)) parameters
+static INLINE _glptr_StencilFuncSeparateATI GET_StencilFuncSeparateATI(struct _glapi_table *disp) {
+ return (_glptr_StencilFuncSeparateATI) (GET_by_offset(disp, _gloffset_StencilFuncSeparateATI));
+}
+
+static INLINE void SET_StencilFuncSeparateATI(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLint, GLuint)) {
+ SET_by_offset(disp, _gloffset_StencilFuncSeparateATI, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProgramEnvParameters4fvEXT)(GLenum, GLuint, GLsizei, const GLfloat *);
+#define CALL_ProgramEnvParameters4fvEXT(disp, parameters) \
+ (* GET_ProgramEnvParameters4fvEXT(disp)) parameters
+static INLINE _glptr_ProgramEnvParameters4fvEXT GET_ProgramEnvParameters4fvEXT(struct _glapi_table *disp) {
+ return (_glptr_ProgramEnvParameters4fvEXT) (GET_by_offset(disp, _gloffset_ProgramEnvParameters4fvEXT));
+}
+
+static INLINE void SET_ProgramEnvParameters4fvEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLsizei, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_ProgramEnvParameters4fvEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ProgramLocalParameters4fvEXT)(GLenum, GLuint, GLsizei, const GLfloat *);
+#define CALL_ProgramLocalParameters4fvEXT(disp, parameters) \
+ (* GET_ProgramLocalParameters4fvEXT(disp)) parameters
+static INLINE _glptr_ProgramLocalParameters4fvEXT GET_ProgramLocalParameters4fvEXT(struct _glapi_table *disp) {
+ return (_glptr_ProgramLocalParameters4fvEXT) (GET_by_offset(disp, _gloffset_ProgramLocalParameters4fvEXT));
+}
+
+static INLINE void SET_ProgramLocalParameters4fvEXT(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLuint, GLsizei, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_ProgramLocalParameters4fvEXT, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EGLImageTargetRenderbufferStorageOES)(GLenum, GLvoid *);
+#define CALL_EGLImageTargetRenderbufferStorageOES(disp, parameters) \
+ (* GET_EGLImageTargetRenderbufferStorageOES(disp)) parameters
+static INLINE _glptr_EGLImageTargetRenderbufferStorageOES GET_EGLImageTargetRenderbufferStorageOES(struct _glapi_table *disp) {
+ return (_glptr_EGLImageTargetRenderbufferStorageOES) (GET_by_offset(disp, _gloffset_EGLImageTargetRenderbufferStorageOES));
+}
+
+static INLINE void SET_EGLImageTargetRenderbufferStorageOES(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_EGLImageTargetRenderbufferStorageOES, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_EGLImageTargetTexture2DOES)(GLenum, GLvoid *);
+#define CALL_EGLImageTargetTexture2DOES(disp, parameters) \
+ (* GET_EGLImageTargetTexture2DOES(disp)) parameters
+static INLINE _glptr_EGLImageTargetTexture2DOES GET_EGLImageTargetTexture2DOES(struct _glapi_table *disp) {
+ return (_glptr_EGLImageTargetTexture2DOES) (GET_by_offset(disp, _gloffset_EGLImageTargetTexture2DOES));
+}
+
+static INLINE void SET_EGLImageTargetTexture2DOES(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLvoid *)) {
+ SET_by_offset(disp, _gloffset_EGLImageTargetTexture2DOES, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_AlphaFuncx)(GLenum, GLclampx);
+#define CALL_AlphaFuncx(disp, parameters) \
+ (* GET_AlphaFuncx(disp)) parameters
+static INLINE _glptr_AlphaFuncx GET_AlphaFuncx(struct _glapi_table *disp) {
+ return (_glptr_AlphaFuncx) (GET_by_offset(disp, _gloffset_AlphaFuncx));
+}
+
+static INLINE void SET_AlphaFuncx(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLclampx)) {
+ SET_by_offset(disp, _gloffset_AlphaFuncx, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ClearColorx)(GLclampx, GLclampx, GLclampx, GLclampx);
+#define CALL_ClearColorx(disp, parameters) \
+ (* GET_ClearColorx(disp)) parameters
+static INLINE _glptr_ClearColorx GET_ClearColorx(struct _glapi_table *disp) {
+ return (_glptr_ClearColorx) (GET_by_offset(disp, _gloffset_ClearColorx));
+}
+
+static INLINE void SET_ClearColorx(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLclampx, GLclampx, GLclampx, GLclampx)) {
+ SET_by_offset(disp, _gloffset_ClearColorx, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ClearDepthx)(GLclampx);
+#define CALL_ClearDepthx(disp, parameters) \
+ (* GET_ClearDepthx(disp)) parameters
+static INLINE _glptr_ClearDepthx GET_ClearDepthx(struct _glapi_table *disp) {
+ return (_glptr_ClearDepthx) (GET_by_offset(disp, _gloffset_ClearDepthx));
+}
+
+static INLINE void SET_ClearDepthx(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLclampx)) {
+ SET_by_offset(disp, _gloffset_ClearDepthx, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Color4x)(GLfixed, GLfixed, GLfixed, GLfixed);
+#define CALL_Color4x(disp, parameters) \
+ (* GET_Color4x(disp)) parameters
+static INLINE _glptr_Color4x GET_Color4x(struct _glapi_table *disp) {
+ return (_glptr_Color4x) (GET_by_offset(disp, _gloffset_Color4x));
+}
+
+static INLINE void SET_Color4x(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfixed, GLfixed, GLfixed, GLfixed)) {
+ SET_by_offset(disp, _gloffset_Color4x, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_DepthRangex)(GLclampx, GLclampx);
+#define CALL_DepthRangex(disp, parameters) \
+ (* GET_DepthRangex(disp)) parameters
+static INLINE _glptr_DepthRangex GET_DepthRangex(struct _glapi_table *disp) {
+ return (_glptr_DepthRangex) (GET_by_offset(disp, _gloffset_DepthRangex));
+}
+
+static INLINE void SET_DepthRangex(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLclampx, GLclampx)) {
+ SET_by_offset(disp, _gloffset_DepthRangex, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Fogx)(GLenum, GLfixed);
+#define CALL_Fogx(disp, parameters) \
+ (* GET_Fogx(disp)) parameters
+static INLINE _glptr_Fogx GET_Fogx(struct _glapi_table *disp) {
+ return (_glptr_Fogx) (GET_by_offset(disp, _gloffset_Fogx));
+}
+
+static INLINE void SET_Fogx(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfixed)) {
+ SET_by_offset(disp, _gloffset_Fogx, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Fogxv)(GLenum, const GLfixed *);
+#define CALL_Fogxv(disp, parameters) \
+ (* GET_Fogxv(disp)) parameters
+static INLINE _glptr_Fogxv GET_Fogxv(struct _glapi_table *disp) {
+ return (_glptr_Fogxv) (GET_by_offset(disp, _gloffset_Fogxv));
+}
+
+static INLINE void SET_Fogxv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLfixed *)) {
+ SET_by_offset(disp, _gloffset_Fogxv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Frustumf)(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+#define CALL_Frustumf(disp, parameters) \
+ (* GET_Frustumf(disp)) parameters
+static INLINE _glptr_Frustumf GET_Frustumf(struct _glapi_table *disp) {
+ return (_glptr_Frustumf) (GET_by_offset(disp, _gloffset_Frustumf));
+}
+
+static INLINE void SET_Frustumf(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Frustumf, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Frustumx)(GLfixed, GLfixed, GLfixed, GLfixed, GLfixed, GLfixed);
+#define CALL_Frustumx(disp, parameters) \
+ (* GET_Frustumx(disp)) parameters
+static INLINE _glptr_Frustumx GET_Frustumx(struct _glapi_table *disp) {
+ return (_glptr_Frustumx) (GET_by_offset(disp, _gloffset_Frustumx));
+}
+
+static INLINE void SET_Frustumx(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfixed, GLfixed, GLfixed, GLfixed, GLfixed, GLfixed)) {
+ SET_by_offset(disp, _gloffset_Frustumx, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LightModelx)(GLenum, GLfixed);
+#define CALL_LightModelx(disp, parameters) \
+ (* GET_LightModelx(disp)) parameters
+static INLINE _glptr_LightModelx GET_LightModelx(struct _glapi_table *disp) {
+ return (_glptr_LightModelx) (GET_by_offset(disp, _gloffset_LightModelx));
+}
+
+static INLINE void SET_LightModelx(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfixed)) {
+ SET_by_offset(disp, _gloffset_LightModelx, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LightModelxv)(GLenum, const GLfixed *);
+#define CALL_LightModelxv(disp, parameters) \
+ (* GET_LightModelxv(disp)) parameters
+static INLINE _glptr_LightModelxv GET_LightModelxv(struct _glapi_table *disp) {
+ return (_glptr_LightModelxv) (GET_by_offset(disp, _gloffset_LightModelxv));
+}
+
+static INLINE void SET_LightModelxv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLfixed *)) {
+ SET_by_offset(disp, _gloffset_LightModelxv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Lightx)(GLenum, GLenum, GLfixed);
+#define CALL_Lightx(disp, parameters) \
+ (* GET_Lightx(disp)) parameters
+static INLINE _glptr_Lightx GET_Lightx(struct _glapi_table *disp) {
+ return (_glptr_Lightx) (GET_by_offset(disp, _gloffset_Lightx));
+}
+
+static INLINE void SET_Lightx(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfixed)) {
+ SET_by_offset(disp, _gloffset_Lightx, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Lightxv)(GLenum, GLenum, const GLfixed *);
+#define CALL_Lightxv(disp, parameters) \
+ (* GET_Lightxv(disp)) parameters
+static INLINE _glptr_Lightxv GET_Lightxv(struct _glapi_table *disp) {
+ return (_glptr_Lightxv) (GET_by_offset(disp, _gloffset_Lightxv));
+}
+
+static INLINE void SET_Lightxv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLfixed *)) {
+ SET_by_offset(disp, _gloffset_Lightxv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LineWidthx)(GLfixed);
+#define CALL_LineWidthx(disp, parameters) \
+ (* GET_LineWidthx(disp)) parameters
+static INLINE _glptr_LineWidthx GET_LineWidthx(struct _glapi_table *disp) {
+ return (_glptr_LineWidthx) (GET_by_offset(disp, _gloffset_LineWidthx));
+}
+
+static INLINE void SET_LineWidthx(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfixed)) {
+ SET_by_offset(disp, _gloffset_LineWidthx, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_LoadMatrixx)(const GLfixed *);
+#define CALL_LoadMatrixx(disp, parameters) \
+ (* GET_LoadMatrixx(disp)) parameters
+static INLINE _glptr_LoadMatrixx GET_LoadMatrixx(struct _glapi_table *disp) {
+ return (_glptr_LoadMatrixx) (GET_by_offset(disp, _gloffset_LoadMatrixx));
+}
+
+static INLINE void SET_LoadMatrixx(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfixed *)) {
+ SET_by_offset(disp, _gloffset_LoadMatrixx, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Materialx)(GLenum, GLenum, GLfixed);
+#define CALL_Materialx(disp, parameters) \
+ (* GET_Materialx(disp)) parameters
+static INLINE _glptr_Materialx GET_Materialx(struct _glapi_table *disp) {
+ return (_glptr_Materialx) (GET_by_offset(disp, _gloffset_Materialx));
+}
+
+static INLINE void SET_Materialx(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfixed)) {
+ SET_by_offset(disp, _gloffset_Materialx, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Materialxv)(GLenum, GLenum, const GLfixed *);
+#define CALL_Materialxv(disp, parameters) \
+ (* GET_Materialxv(disp)) parameters
+static INLINE _glptr_Materialxv GET_Materialxv(struct _glapi_table *disp) {
+ return (_glptr_Materialxv) (GET_by_offset(disp, _gloffset_Materialxv));
+}
+
+static INLINE void SET_Materialxv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLfixed *)) {
+ SET_by_offset(disp, _gloffset_Materialxv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultMatrixx)(const GLfixed *);
+#define CALL_MultMatrixx(disp, parameters) \
+ (* GET_MultMatrixx(disp)) parameters
+static INLINE _glptr_MultMatrixx GET_MultMatrixx(struct _glapi_table *disp) {
+ return (_glptr_MultMatrixx) (GET_by_offset(disp, _gloffset_MultMatrixx));
+}
+
+static INLINE void SET_MultMatrixx(struct _glapi_table *disp, void (GLAPIENTRYP fn)(const GLfixed *)) {
+ SET_by_offset(disp, _gloffset_MultMatrixx, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_MultiTexCoord4x)(GLenum, GLfixed, GLfixed, GLfixed, GLfixed);
+#define CALL_MultiTexCoord4x(disp, parameters) \
+ (* GET_MultiTexCoord4x(disp)) parameters
+static INLINE _glptr_MultiTexCoord4x GET_MultiTexCoord4x(struct _glapi_table *disp) {
+ return (_glptr_MultiTexCoord4x) (GET_by_offset(disp, _gloffset_MultiTexCoord4x));
+}
+
+static INLINE void SET_MultiTexCoord4x(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfixed, GLfixed, GLfixed, GLfixed)) {
+ SET_by_offset(disp, _gloffset_MultiTexCoord4x, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Normal3x)(GLfixed, GLfixed, GLfixed);
+#define CALL_Normal3x(disp, parameters) \
+ (* GET_Normal3x(disp)) parameters
+static INLINE _glptr_Normal3x GET_Normal3x(struct _glapi_table *disp) {
+ return (_glptr_Normal3x) (GET_by_offset(disp, _gloffset_Normal3x));
+}
+
+static INLINE void SET_Normal3x(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfixed, GLfixed, GLfixed)) {
+ SET_by_offset(disp, _gloffset_Normal3x, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Orthof)(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+#define CALL_Orthof(disp, parameters) \
+ (* GET_Orthof(disp)) parameters
+static INLINE _glptr_Orthof GET_Orthof(struct _glapi_table *disp) {
+ return (_glptr_Orthof) (GET_by_offset(disp, _gloffset_Orthof));
+}
+
+static INLINE void SET_Orthof(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat)) {
+ SET_by_offset(disp, _gloffset_Orthof, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Orthox)(GLfixed, GLfixed, GLfixed, GLfixed, GLfixed, GLfixed);
+#define CALL_Orthox(disp, parameters) \
+ (* GET_Orthox(disp)) parameters
+static INLINE _glptr_Orthox GET_Orthox(struct _glapi_table *disp) {
+ return (_glptr_Orthox) (GET_by_offset(disp, _gloffset_Orthox));
+}
+
+static INLINE void SET_Orthox(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfixed, GLfixed, GLfixed, GLfixed, GLfixed, GLfixed)) {
+ SET_by_offset(disp, _gloffset_Orthox, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PointSizex)(GLfixed);
+#define CALL_PointSizex(disp, parameters) \
+ (* GET_PointSizex(disp)) parameters
+static INLINE _glptr_PointSizex GET_PointSizex(struct _glapi_table *disp) {
+ return (_glptr_PointSizex) (GET_by_offset(disp, _gloffset_PointSizex));
+}
+
+static INLINE void SET_PointSizex(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfixed)) {
+ SET_by_offset(disp, _gloffset_PointSizex, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PolygonOffsetx)(GLfixed, GLfixed);
+#define CALL_PolygonOffsetx(disp, parameters) \
+ (* GET_PolygonOffsetx(disp)) parameters
+static INLINE _glptr_PolygonOffsetx GET_PolygonOffsetx(struct _glapi_table *disp) {
+ return (_glptr_PolygonOffsetx) (GET_by_offset(disp, _gloffset_PolygonOffsetx));
+}
+
+static INLINE void SET_PolygonOffsetx(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfixed, GLfixed)) {
+ SET_by_offset(disp, _gloffset_PolygonOffsetx, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Rotatex)(GLfixed, GLfixed, GLfixed, GLfixed);
+#define CALL_Rotatex(disp, parameters) \
+ (* GET_Rotatex(disp)) parameters
+static INLINE _glptr_Rotatex GET_Rotatex(struct _glapi_table *disp) {
+ return (_glptr_Rotatex) (GET_by_offset(disp, _gloffset_Rotatex));
+}
+
+static INLINE void SET_Rotatex(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfixed, GLfixed, GLfixed, GLfixed)) {
+ SET_by_offset(disp, _gloffset_Rotatex, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_SampleCoveragex)(GLclampx, GLboolean);
+#define CALL_SampleCoveragex(disp, parameters) \
+ (* GET_SampleCoveragex(disp)) parameters
+static INLINE _glptr_SampleCoveragex GET_SampleCoveragex(struct _glapi_table *disp) {
+ return (_glptr_SampleCoveragex) (GET_by_offset(disp, _gloffset_SampleCoveragex));
+}
+
+static INLINE void SET_SampleCoveragex(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLclampx, GLboolean)) {
+ SET_by_offset(disp, _gloffset_SampleCoveragex, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Scalex)(GLfixed, GLfixed, GLfixed);
+#define CALL_Scalex(disp, parameters) \
+ (* GET_Scalex(disp)) parameters
+static INLINE _glptr_Scalex GET_Scalex(struct _glapi_table *disp) {
+ return (_glptr_Scalex) (GET_by_offset(disp, _gloffset_Scalex));
+}
+
+static INLINE void SET_Scalex(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfixed, GLfixed, GLfixed)) {
+ SET_by_offset(disp, _gloffset_Scalex, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexEnvx)(GLenum, GLenum, GLfixed);
+#define CALL_TexEnvx(disp, parameters) \
+ (* GET_TexEnvx(disp)) parameters
+static INLINE _glptr_TexEnvx GET_TexEnvx(struct _glapi_table *disp) {
+ return (_glptr_TexEnvx) (GET_by_offset(disp, _gloffset_TexEnvx));
+}
+
+static INLINE void SET_TexEnvx(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfixed)) {
+ SET_by_offset(disp, _gloffset_TexEnvx, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexEnvxv)(GLenum, GLenum, const GLfixed *);
+#define CALL_TexEnvxv(disp, parameters) \
+ (* GET_TexEnvxv(disp)) parameters
+static INLINE _glptr_TexEnvxv GET_TexEnvxv(struct _glapi_table *disp) {
+ return (_glptr_TexEnvxv) (GET_by_offset(disp, _gloffset_TexEnvxv));
+}
+
+static INLINE void SET_TexEnvxv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLfixed *)) {
+ SET_by_offset(disp, _gloffset_TexEnvxv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexParameterx)(GLenum, GLenum, GLfixed);
+#define CALL_TexParameterx(disp, parameters) \
+ (* GET_TexParameterx(disp)) parameters
+static INLINE _glptr_TexParameterx GET_TexParameterx(struct _glapi_table *disp) {
+ return (_glptr_TexParameterx) (GET_by_offset(disp, _gloffset_TexParameterx));
+}
+
+static INLINE void SET_TexParameterx(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfixed)) {
+ SET_by_offset(disp, _gloffset_TexParameterx, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_Translatex)(GLfixed, GLfixed, GLfixed);
+#define CALL_Translatex(disp, parameters) \
+ (* GET_Translatex(disp)) parameters
+static INLINE _glptr_Translatex GET_Translatex(struct _glapi_table *disp) {
+ return (_glptr_Translatex) (GET_by_offset(disp, _gloffset_Translatex));
+}
+
+static INLINE void SET_Translatex(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLfixed, GLfixed, GLfixed)) {
+ SET_by_offset(disp, _gloffset_Translatex, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ClipPlanef)(GLenum, const GLfloat *);
+#define CALL_ClipPlanef(disp, parameters) \
+ (* GET_ClipPlanef(disp)) parameters
+static INLINE _glptr_ClipPlanef GET_ClipPlanef(struct _glapi_table *disp) {
+ return (_glptr_ClipPlanef) (GET_by_offset(disp, _gloffset_ClipPlanef));
+}
+
+static INLINE void SET_ClipPlanef(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLfloat *)) {
+ SET_by_offset(disp, _gloffset_ClipPlanef, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_ClipPlanex)(GLenum, const GLfixed *);
+#define CALL_ClipPlanex(disp, parameters) \
+ (* GET_ClipPlanex(disp)) parameters
+static INLINE _glptr_ClipPlanex GET_ClipPlanex(struct _glapi_table *disp) {
+ return (_glptr_ClipPlanex) (GET_by_offset(disp, _gloffset_ClipPlanex));
+}
+
+static INLINE void SET_ClipPlanex(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLfixed *)) {
+ SET_by_offset(disp, _gloffset_ClipPlanex, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetClipPlanef)(GLenum, GLfloat *);
+#define CALL_GetClipPlanef(disp, parameters) \
+ (* GET_GetClipPlanef(disp)) parameters
+static INLINE _glptr_GetClipPlanef GET_GetClipPlanef(struct _glapi_table *disp) {
+ return (_glptr_GetClipPlanef) (GET_by_offset(disp, _gloffset_GetClipPlanef));
+}
+
+static INLINE void SET_GetClipPlanef(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfloat *)) {
+ SET_by_offset(disp, _gloffset_GetClipPlanef, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetClipPlanex)(GLenum, GLfixed *);
+#define CALL_GetClipPlanex(disp, parameters) \
+ (* GET_GetClipPlanex(disp)) parameters
+static INLINE _glptr_GetClipPlanex GET_GetClipPlanex(struct _glapi_table *disp) {
+ return (_glptr_GetClipPlanex) (GET_by_offset(disp, _gloffset_GetClipPlanex));
+}
+
+static INLINE void SET_GetClipPlanex(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfixed *)) {
+ SET_by_offset(disp, _gloffset_GetClipPlanex, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetFixedv)(GLenum, GLfixed *);
+#define CALL_GetFixedv(disp, parameters) \
+ (* GET_GetFixedv(disp)) parameters
+static INLINE _glptr_GetFixedv GET_GetFixedv(struct _glapi_table *disp) {
+ return (_glptr_GetFixedv) (GET_by_offset(disp, _gloffset_GetFixedv));
+}
+
+static INLINE void SET_GetFixedv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfixed *)) {
+ SET_by_offset(disp, _gloffset_GetFixedv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetLightxv)(GLenum, GLenum, GLfixed *);
+#define CALL_GetLightxv(disp, parameters) \
+ (* GET_GetLightxv(disp)) parameters
+static INLINE _glptr_GetLightxv GET_GetLightxv(struct _glapi_table *disp) {
+ return (_glptr_GetLightxv) (GET_by_offset(disp, _gloffset_GetLightxv));
+}
+
+static INLINE void SET_GetLightxv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfixed *)) {
+ SET_by_offset(disp, _gloffset_GetLightxv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetMaterialxv)(GLenum, GLenum, GLfixed *);
+#define CALL_GetMaterialxv(disp, parameters) \
+ (* GET_GetMaterialxv(disp)) parameters
+static INLINE _glptr_GetMaterialxv GET_GetMaterialxv(struct _glapi_table *disp) {
+ return (_glptr_GetMaterialxv) (GET_by_offset(disp, _gloffset_GetMaterialxv));
+}
+
+static INLINE void SET_GetMaterialxv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfixed *)) {
+ SET_by_offset(disp, _gloffset_GetMaterialxv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetTexEnvxv)(GLenum, GLenum, GLfixed *);
+#define CALL_GetTexEnvxv(disp, parameters) \
+ (* GET_GetTexEnvxv(disp)) parameters
+static INLINE _glptr_GetTexEnvxv GET_GetTexEnvxv(struct _glapi_table *disp) {
+ return (_glptr_GetTexEnvxv) (GET_by_offset(disp, _gloffset_GetTexEnvxv));
+}
+
+static INLINE void SET_GetTexEnvxv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfixed *)) {
+ SET_by_offset(disp, _gloffset_GetTexEnvxv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_GetTexParameterxv)(GLenum, GLenum, GLfixed *);
+#define CALL_GetTexParameterxv(disp, parameters) \
+ (* GET_GetTexParameterxv(disp)) parameters
+static INLINE _glptr_GetTexParameterxv GET_GetTexParameterxv(struct _glapi_table *disp) {
+ return (_glptr_GetTexParameterxv) (GET_by_offset(disp, _gloffset_GetTexParameterxv));
+}
+
+static INLINE void SET_GetTexParameterxv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, GLfixed *)) {
+ SET_by_offset(disp, _gloffset_GetTexParameterxv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PointParameterx)(GLenum, GLfixed);
+#define CALL_PointParameterx(disp, parameters) \
+ (* GET_PointParameterx(disp)) parameters
+static INLINE _glptr_PointParameterx GET_PointParameterx(struct _glapi_table *disp) {
+ return (_glptr_PointParameterx) (GET_by_offset(disp, _gloffset_PointParameterx));
+}
+
+static INLINE void SET_PointParameterx(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLfixed)) {
+ SET_by_offset(disp, _gloffset_PointParameterx, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_PointParameterxv)(GLenum, const GLfixed *);
+#define CALL_PointParameterxv(disp, parameters) \
+ (* GET_PointParameterxv(disp)) parameters
+static INLINE _glptr_PointParameterxv GET_PointParameterxv(struct _glapi_table *disp) {
+ return (_glptr_PointParameterxv) (GET_by_offset(disp, _gloffset_PointParameterxv));
+}
+
+static INLINE void SET_PointParameterxv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, const GLfixed *)) {
+ SET_by_offset(disp, _gloffset_PointParameterxv, fn);
+}
+
+typedef void (GLAPIENTRYP _glptr_TexParameterxv)(GLenum, GLenum, const GLfixed *);
+#define CALL_TexParameterxv(disp, parameters) \
+ (* GET_TexParameterxv(disp)) parameters
+static INLINE _glptr_TexParameterxv GET_TexParameterxv(struct _glapi_table *disp) {
+ return (_glptr_TexParameterxv) (GET_by_offset(disp, _gloffset_TexParameterxv));
+}
+
+static INLINE void SET_TexParameterxv(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLenum, const GLfixed *)) {
+ SET_by_offset(disp, _gloffset_TexParameterxv, fn);
+}
+
+
+#endif /* !defined( _DISPATCH_H_ ) */
diff --git a/xorg-server/glx/glapi.c b/xorg-server/glx/glapi.c
new file mode 100644
index 000000000..8a9d1c0f9
--- /dev/null
+++ b/xorg-server/glx/glapi.c
@@ -0,0 +1,511 @@
+/*
+ * Mesa 3-D graphics library
+ * Version: 6.5
+ *
+ * Copyright (C) 1999-2006 Brian Paul 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
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 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.
+ */
+
+/*
+ * This file manages the OpenGL API dispatch layer. There are functions
+ * to set/get the current dispatch table for the current thread and to
+ * manage registration/dispatch of dynamically added extension functions.
+ *
+ * This code was originally general enough to be shared with Mesa, but
+ * they diverged long ago, so this is now just enough support to make
+ * indirect GLX work.
+ */
+
+#include <dix-config.h>
+#include <X11/Xfuncproto.h>
+#include <os.h>
+#ifdef _MSC_VER
+#define PUBLIC _declspec(dllexport)
+#else
+#define PUBLIC _X_EXPORT
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+#ifdef DEBUG
+#include <assert.h>
+#endif
+#include <unistd.h>
+
+#include "glapi.h"
+#include "glheader.h"
+#include "dispatch.h"
+#include "glapitable.h"
+
+#define FIRST_DYNAMIC_OFFSET (sizeof(struct _glapi_table) / sizeof(void *))
+
+#if defined(PTHREADS) || defined(GLX_USE_TLS)
+static void init_glapi_relocs(void);
+#endif
+
+/**
+ * \name Current dispatch and current context control variables
+ *
+ * Depending on whether or not multithreading is support, and the type of
+ * support available, several variables are used to store the current context
+ * pointer and the current dispatch table pointer. In the non-threaded case,
+ * the variables \c _glapi_Dispatch and \c _glapi_Context are used for this
+ * purpose.
+ *
+ * In the "normal" threaded case, the variables \c _glapi_Dispatch and
+ * \c _glapi_Context will be \c NULL if an application is detected as being
+ * multithreaded. Single-threaded applications will use \c _glapi_Dispatch
+ * and \c _glapi_Context just like the case without any threading support.
+ * When \c _glapi_Dispatch and \c _glapi_Context are \c NULL, the thread state
+ * data \c _gl_DispatchTSD and \c ContextTSD are used. Drivers and the
+ * static dispatch functions access these variables via \c _glapi_get_dispatch
+ * and \c _glapi_get_context.
+ *
+ * In the TLS case, the variables \c _glapi_Dispatch and \c _glapi_Context are
+ * hardcoded to \c NULL. Instead the TLS variables \c _glapi_tls_Dispatch and
+ * \c _glapi_tls_Context are used. Having \c _glapi_Dispatch and
+ * \c _glapi_Context be hardcoded to \c NULL maintains binary compatability
+ * between TLS enabled loaders and non-TLS DRI drivers.
+ */
+/*@{*/
+#if defined(GLX_USE_TLS)
+
+PUBLIC TLS struct _glapi_table *_glapi_tls_Dispatch = NULL;
+
+PUBLIC TLS void *_glapi_tls_Context;
+
+PUBLIC const struct _glapi_table *_glapi_Dispatch = NULL;
+PUBLIC const void *_glapi_Context = NULL;
+
+#else
+
+#if defined(THREADS)
+
+_glthread_TSD _gl_DispatchTSD; /**< Per-thread dispatch pointer */
+static _glthread_TSD ContextTSD; /**< Per-thread context pointer */
+
+#if defined(WIN32_THREADS)
+void FreeTSD(_glthread_TSD * p);
+void
+FreeAllTSD(void)
+{
+ FreeTSD(&_gl_DispatchTSD);
+ FreeTSD(&ContextTSD);
+}
+#endif /* defined(WIN32_THREADS) */
+
+#endif /* defined(THREADS) */
+
+PUBLIC struct _glapi_table *_glapi_Dispatch = NULL;
+PUBLIC void *_glapi_Context = NULL;
+
+#endif /* defined(GLX_USE_TLS) */
+/*@}*/
+
+/*
+ * xserver's gl is not multithreaded, we promise.
+ */
+PUBLIC void
+_glapi_check_multithread(void)
+{
+}
+
+/**
+ * Set the current context pointer for this thread.
+ * The context pointer is an opaque type which should be cast to
+ * void from the real context pointer type.
+ */
+void
+_glapi_set_context(void *context)
+{
+#if defined(GLX_USE_TLS)
+ _glapi_tls_Context = context;
+#elif defined(THREADS)
+ _glthread_SetTSD(&ContextTSD, context);
+ _glapi_Context = context;
+#else
+ _glapi_Context = context;
+#endif
+}
+
+/**
+ * Get the current context pointer for this thread.
+ * The context pointer is an opaque type which should be cast from
+ * void to the real context pointer type.
+ */
+void *
+_glapi_get_context(void)
+{
+#if defined(GLX_USE_TLS)
+ return _glapi_tls_Context;
+#else
+ return _glapi_Context;
+#endif
+}
+
+/**
+ * Set the global or per-thread dispatch table pointer.
+ */
+void
+_glapi_set_dispatch(struct _glapi_table *dispatch)
+{
+#if defined(PTHREADS) || defined(GLX_USE_TLS)
+ static pthread_once_t once_control = PTHREAD_ONCE_INIT;
+
+ pthread_once(&once_control, init_glapi_relocs);
+#endif
+
+#if defined(GLX_USE_TLS)
+ _glapi_tls_Dispatch = dispatch;
+#elif defined(THREADS)
+ _glthread_SetTSD(&_gl_DispatchTSD, (void *) dispatch);
+ _glapi_Dispatch = dispatch;
+#else /*THREADS*/
+ _glapi_Dispatch = dispatch;
+#endif /*THREADS*/
+ _mesa_init_remap_table();
+}
+
+/**
+ * Return pointer to current dispatch table for calling thread.
+ */
+struct _glapi_table *
+_glapi_get_dispatch(void)
+{
+ struct _glapi_table *api;
+
+#if defined(GLX_USE_TLS)
+ api = _glapi_tls_Dispatch;
+#else
+ api = _glapi_Dispatch;
+#endif
+ return api;
+}
+
+/***
+ *** The rest of this file is pretty much concerned with GetProcAddress
+ *** functionality.
+ ***/
+
+#if defined(USE_X64_64_ASM) && defined(GLX_USE_TLS)
+#define DISPATCH_FUNCTION_SIZE 16
+#elif defined(USE_X86_ASM)
+#if defined(THREADS) && !defined(GLX_USE_TLS)
+#define DISPATCH_FUNCTION_SIZE 32
+#else
+#define DISPATCH_FUNCTION_SIZE 16
+#endif
+#endif
+
+/* The code in this file is auto-generated with Python */
+#include "glprocs.h"
+
+/**
+ * Search the table of static entrypoint functions for the named function
+ * and return the corresponding glprocs_table_t entry.
+ */
+static const glprocs_table_t *
+find_entry(const char *n)
+{
+ GLuint i;
+
+ for (i = 0; static_functions[i].Name_offset >= 0; i++) {
+ const char *testName =
+ gl_string_table + static_functions[i].Name_offset;
+ if (strcmp(testName, n) == 0) {
+ return &static_functions[i];
+ }
+ }
+ return NULL;
+}
+
+/**
+ * Return dispatch table offset of the named static (built-in) function.
+ * Return -1 if function not found.
+ */
+static GLint
+get_static_proc_offset(const char *funcName)
+{
+ const glprocs_table_t *const f = find_entry(funcName);
+
+ if (f) {
+ return f->Offset;
+ }
+ return -1;
+}
+
+/**********************************************************************
+ * Extension function management.
+ */
+
+/*
+ * Number of extension functions which we can dynamically add at runtime.
+ */
+#define MAX_EXTENSION_FUNCS 300
+
+/*
+ * The dispatch table size (number of entries) is the size of the
+ * _glapi_table struct plus the number of dynamic entries we can add.
+ * The extra slots can be filled in by DRI drivers that register new extension
+ * functions.
+ */
+#define DISPATCH_TABLE_SIZE (sizeof(struct _glapi_table) / sizeof(void *) + MAX_EXTENSION_FUNCS)
+
+/**
+ * Track information about a function added to the GL API.
+ */
+struct _glapi_function {
+ /**
+ * Name of the function.
+ */
+ const char *name;
+
+ /**
+ * Text string that describes the types of the parameters passed to the
+ * named function. Parameter types are converted to characters using the
+ * following rules:
+ * - 'i' for \c GLint, \c GLuint, and \c GLenum
+ * - 'p' for any pointer type
+ * - 'f' for \c GLfloat and \c GLclampf
+ * - 'd' for \c GLdouble and \c GLclampd
+ */
+ const char *parameter_signature;
+
+ /**
+ * Offset in the dispatch table where the pointer to the real function is
+ * located. If the driver has not requested that the named function be
+ * added to the dispatch table, this will have the value ~0.
+ */
+ unsigned dispatch_offset;
+};
+
+static struct _glapi_function ExtEntryTable[MAX_EXTENSION_FUNCS];
+static GLuint NumExtEntryPoints = 0;
+
+/**
+ * Generate new entrypoint
+ *
+ * Use a temporary dispatch offset of ~0 (i.e. -1). Later, when the driver
+ * calls \c _glapi_add_dispatch we'll put in the proper offset. If that
+ * never happens, and the user calls this function, he'll segfault. That's
+ * what you get when you try calling a GL function that doesn't really exist.
+ *
+ * \param funcName Name of the function to create an entry-point for.
+ *
+ * \sa _glapi_add_entrypoint
+ */
+
+static struct _glapi_function *
+add_function_name(const char *funcName)
+{
+ struct _glapi_function *entry = NULL;
+
+ if (NumExtEntryPoints < MAX_EXTENSION_FUNCS) {
+ entry = &ExtEntryTable[NumExtEntryPoints];
+
+ ExtEntryTable[NumExtEntryPoints].name = strdup(funcName);
+ ExtEntryTable[NumExtEntryPoints].parameter_signature = NULL;
+ ExtEntryTable[NumExtEntryPoints].dispatch_offset = ~0;
+ NumExtEntryPoints++;
+ }
+
+ return entry;
+}
+
+/**
+ * Fill-in the dispatch stub for the named function.
+ *
+ * This function is intended to be called by a hardware driver. When called,
+ * a dispatch stub may be created created for the function. A pointer to this
+ * dispatch function will be returned by glXGetProcAddress.
+ *
+ * \param function_names Array of pointers to function names that should
+ * share a common dispatch offset.
+ * \param parameter_signature String representing the types of the parameters
+ * passed to the named function. Parameter types
+ * are converted to characters using the following
+ * rules:
+ * - 'i' for \c GLint, \c GLuint, and \c GLenum
+ * - 'p' for any pointer type
+ * - 'f' for \c GLfloat and \c GLclampf
+ * - 'd' for \c GLdouble and \c GLclampd
+ *
+ * \returns
+ * The offset in the dispatch table of the named function. A pointer to the
+ * driver's implementation of the named function should be stored at
+ * \c dispatch_table[\c offset].
+ *
+ * \sa glXGetProcAddress
+ *
+ * \warning
+ * This function can only handle up to 8 names at a time. As far as I know,
+ * the maximum number of names ever associated with an existing GL function is
+ * 4 (\c glPointParameterfSGIS, \c glPointParameterfEXT,
+ * \c glPointParameterfARB, and \c glPointParameterf), so this should not be
+ * too painful of a limitation.
+ *
+ * \todo
+ * Determine whether or not \c parameter_signature should be allowed to be
+ * \c NULL. It doesn't seem like much of a hardship for drivers to have to
+ * pass in an empty string.
+ *
+ * \todo
+ * Determine if code should be added to reject function names that start with
+ * 'glX'.
+ *
+ * \bug
+ * Add code to compare \c parameter_signature with the parameter signature of
+ * a static function. In order to do that, we need to find a way to \b get
+ * the parameter signature of a static function.
+ */
+
+PUBLIC int
+_glapi_add_dispatch(const char *const *function_names,
+ const char *parameter_signature)
+{
+ static int next_dynamic_offset = FIRST_DYNAMIC_OFFSET;
+ const char *const real_sig = (parameter_signature != NULL)
+ ? parameter_signature : "";
+ struct _glapi_function *entry[8];
+ GLboolean is_static[8];
+ unsigned i;
+ unsigned j;
+ int offset = ~0;
+ int new_offset;
+
+ (void) memset(is_static, 0, sizeof(is_static));
+ (void) memset(entry, 0, sizeof(entry));
+
+ for (i = 0; function_names[i] != NULL; i++) {
+ /* Do some trivial validation on the name of the function. */
+
+ if (function_names[i][0] != 'g' || function_names[i][1] != 'l')
+ return GL_FALSE;
+
+ /* Determine if the named function already exists. If the function does
+ * exist, it must have the same parameter signature as the function
+ * being added.
+ */
+
+ new_offset = get_static_proc_offset(function_names[i]);
+ if (new_offset >= 0) {
+ /* FIXME: Make sure the parameter signatures match! How do we get
+ * FIXME: the parameter signature for static functions?
+ */
+
+ if ((offset != ~0) && (new_offset != offset)) {
+ return -1;
+ }
+
+ is_static[i] = GL_TRUE;
+ offset = new_offset;
+ }
+
+ for (j = 0; j < NumExtEntryPoints; j++) {
+ if (strcmp(ExtEntryTable[j].name, function_names[i]) == 0) {
+ /* The offset may be ~0 if the function name was added by
+ * glXGetProcAddress but never filled in by the driver.
+ */
+
+ if (ExtEntryTable[j].dispatch_offset != ~0) {
+ if (strcmp(real_sig, ExtEntryTable[j].parameter_signature)
+ != 0)
+ return -1;
+
+ if ((offset != ~0) &&
+ (ExtEntryTable[j].dispatch_offset != offset)) {
+ return -1;
+ }
+
+ offset = ExtEntryTable[j].dispatch_offset;
+ }
+
+ entry[i] = &ExtEntryTable[j];
+ break;
+ }
+ }
+ }
+
+ if (offset == ~0) {
+ offset = next_dynamic_offset;
+ next_dynamic_offset++;
+ }
+
+ for (i = 0; function_names[i] != NULL; i++) {
+ if (!is_static[i]) {
+ if (entry[i] == NULL) {
+ entry[i] = add_function_name(function_names[i]);
+ if (entry[i] == NULL)
+ return -1;
+ }
+
+ entry[i]->parameter_signature = strdup(real_sig);
+ entry[i]->dispatch_offset = offset;
+ }
+ }
+
+ return offset;
+}
+
+/*
+ * glXGetProcAddress doesn't exist in the protocol, the drivers never call
+ * this themselves, and neither does the server. warn if it happens though.
+ */
+_GLAPI_EXPORT _glapi_proc
+_glapi_get_proc_address(const char *funcName)
+{
+ ErrorF("_glapi_get_proc_address called!\n");
+ return NULL;
+}
+
+/**
+ * Return size of dispatch table struct as number of functions (or
+ * slots).
+ */
+GLuint
+_glapi_get_dispatch_table_size(void)
+{
+ return DISPATCH_TABLE_SIZE;
+}
+
+#if defined(PTHREADS) || defined(GLX_USE_TLS)
+/**
+ * Perform platform-specific GL API entry-point fixups.
+ */
+static void
+init_glapi_relocs(void)
+{
+#if defined(USE_X86_ASM) && defined(GLX_USE_TLS) && !defined(GLX_X86_READONLY_TEXT)
+ extern unsigned long _x86_get_dispatch(void);
+
+ char run_time_patch[] = {
+ 0x65, 0xa1, 0, 0, 0, 0 /* movl %gs:0,%eax */
+ };
+ GLuint *offset = (GLuint *) &run_time_patch[2]; /* 32-bits for x86/32 */
+ const GLubyte *const get_disp = (const GLubyte *) run_time_patch;
+ GLubyte *curr_func = (GLubyte *) gl_dispatch_functions_start;
+
+ *offset = _x86_get_dispatch();
+ while (curr_func != (GLubyte *) gl_dispatch_functions_end) {
+ (void) memcpy(curr_func, get_disp, sizeof(run_time_patch));
+ curr_func += DISPATCH_FUNCTION_SIZE;
+ }
+#endif
+}
+#endif /* defined(PTHREADS) || defined(GLX_USE_TLS) */
diff --git a/xorg-server/glx/glapi.h b/xorg-server/glx/glapi.h
new file mode 100644
index 000000000..b10f19a63
--- /dev/null
+++ b/xorg-server/glx/glapi.h
@@ -0,0 +1,190 @@
+/*
+ * Mesa 3-D graphics library
+ *
+ * Copyright (C) 1999-2008 Brian Paul 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
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 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.
+ */
+
+
+/**
+ * \mainpage Mesa GL API Module
+ *
+ * \section GLAPIIntroduction Introduction
+ *
+ * The Mesa GL API module is responsible for dispatching all the
+ * gl*() functions. All GL functions are dispatched by jumping through
+ * the current dispatch table (basically a struct full of function
+ * pointers.)
+ *
+ * A per-thread current dispatch table and per-thread current context
+ * pointer are managed by this module too.
+ *
+ * This module is intended to be non-Mesa-specific so it can be used
+ * with the X/DRI libGL also.
+ */
+
+
+#ifndef _GLAPI_H
+#define _GLAPI_H
+
+#include "glthread.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef _GLAPI_NO_EXPORTS
+# define _GLAPI_EXPORT
+#else /* _GLAPI_NO_EXPORTS */
+# ifdef _WIN32
+# ifdef _GLAPI_DLL_EXPORTS
+# define _GLAPI_EXPORT __declspec(dllexport)
+# else
+# define _GLAPI_EXPORT __declspec(dllimport)
+# endif
+# elif defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
+# define _GLAPI_EXPORT __attribute__((visibility("default")))
+# else
+# define _GLAPI_EXPORT
+# endif
+#endif /* _GLAPI_NO_EXPORTS */
+
+#include "GL/gl.h"
+#include "GL/glext.h"
+#include "glthread.h"
+
+
+struct _glapi_table;
+
+typedef void (*_glapi_proc)(void); /* generic function pointer */
+
+typedef void (*_glapi_warning_func)(void *ctx, const char *str, ...);
+
+
+#if defined(USE_MGL_NAMESPACE)
+#define _glapi_set_dispatch _mglapi_set_dispatch
+#define _glapi_get_dispatch _mglapi_get_dispatch
+#define _glapi_set_context _mglapi_set_context
+#define _glapi_get_context _mglapi_get_context
+#define _glapi_Context _mglapi_Context
+#define _glapi_Dispatch _mglapi_Dispatch
+#endif
+
+/*
+ * Number of extension functions which we can dynamically add at runtime.
+ */
+#define MAX_EXTENSION_FUNCS 300
+
+
+/**
+ ** Define the GET_CURRENT_CONTEXT() macro.
+ ** \param C local variable which will hold the current context.
+ **/
+#if defined (GLX_USE_TLS)
+
+_GLAPI_EXPORT extern __thread struct _glapi_table * _glapi_tls_Dispatch;
+
+_GLAPI_EXPORT extern const void *_glapi_Context;
+_GLAPI_EXPORT extern const struct _glapi_table *_glapi_Dispatch;
+
+_GLAPI_EXPORT extern __thread void * _glapi_tls_Context;
+
+# define GET_DISPATCH() _glapi_tls_Dispatch
+# define GET_CURRENT_CONTEXT(C) struct gl_context *C = (struct gl_context *) _glapi_tls_Context
+
+#else
+
+#ifdef INSERVER
+#define SERVEXTERN _declspec(dllimport)
+#else
+#define SERVEXTERN _declspec(dllexport)
+#endif
+
+SERVEXTERN void *_glapi_Context;
+SERVEXTERN struct _glapi_table *_glapi_Dispatch;
+
+# ifdef THREADS
+
+# define GET_DISPATCH() \
+ (likely(_glapi_Dispatch) ? _glapi_Dispatch : _glapi_get_dispatch())
+
+
+# define GET_CURRENT_CONTEXT(C) struct gl_context *C = (struct gl_context *) \
+ (likely(_glapi_Context) ? _glapi_Context : _glapi_get_context())
+# else
+# define GET_DISPATCH() _glapi_Dispatch
+# define GET_CURRENT_CONTEXT(C) struct gl_context *C = (struct gl_context *) _glapi_Context
+# endif
+
+#endif /* defined (GLX_USE_TLS) */
+
+
+/**
+ ** GL API public functions
+ **/
+
+SERVEXTERN void
+_glapi_check_multithread(void);
+
+
+SERVEXTERN void
+_glapi_set_context(void *context);
+
+
+SERVEXTERN void *
+_glapi_get_context(void);
+
+
+SERVEXTERN void
+_glapi_set_dispatch(struct _glapi_table *dispatch);
+
+
+SERVEXTERN struct _glapi_table *
+_glapi_get_dispatch(void);
+
+SERVEXTERN int
+_glapi_begin_dispatch_override(struct _glapi_table *override);
+
+SERVEXTERN void
+_glapi_end_dispatch_override(int layer);
+
+struct _glapi_table *
+_glapi_get_override_dispatch(int layer);
+
+SERVEXTERN GLuint
+_glapi_get_dispatch_table_size(void);
+
+
+SERVEXTERN int
+_glapi_add_dispatch( const char * const * function_names,
+ const char * parameter_signature );
+
+_GLAPI_EXPORT _glapi_proc
+_glapi_get_proc_address(const char *funcName);
+
+extern struct _glapi_table *
+_glapi_create_table_from_handle(void *handle, const char *symbol_prefix);
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/xorg-server/glx/glapitable.h b/xorg-server/glx/glapitable.h
new file mode 100644
index 000000000..1879fee58
--- /dev/null
+++ b/xorg-server/glx/glapitable.h
@@ -0,0 +1,1122 @@
+/* DO NOT EDIT - This file generated automatically by gl_table.py (from Mesa) script */
+
+/*
+ * Copyright (C) 1999-2003 Brian Paul All Rights Reserved.
+ * (C) Copyright IBM Corporation 2004
+ * 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
+ * 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
+ * BRIAN PAUL, IBM,
+ * AND/OR THEIR 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.
+ */
+
+#if !defined( _GLAPI_TABLE_H_ )
+# define _GLAPI_TABLE_H_
+
+#ifndef GLAPIENTRYP
+# ifndef GLAPIENTRY
+# define GLAPIENTRY
+# endif
+
+# define GLAPIENTRYP GLAPIENTRY *
+#endif
+
+
+struct _glapi_table
+{
+ void (GLAPIENTRYP NewList)(GLuint list, GLenum mode); /* 0 */
+ void (GLAPIENTRYP EndList)(void); /* 1 */
+ void (GLAPIENTRYP CallList)(GLuint list); /* 2 */
+ void (GLAPIENTRYP CallLists)(GLsizei n, GLenum type, const GLvoid * lists); /* 3 */
+ void (GLAPIENTRYP DeleteLists)(GLuint list, GLsizei range); /* 4 */
+ GLuint (GLAPIENTRYP GenLists)(GLsizei range); /* 5 */
+ void (GLAPIENTRYP ListBase)(GLuint base); /* 6 */
+ void (GLAPIENTRYP Begin)(GLenum mode); /* 7 */
+ void (GLAPIENTRYP Bitmap)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte * bitmap); /* 8 */
+ void (GLAPIENTRYP Color3b)(GLbyte red, GLbyte green, GLbyte blue); /* 9 */
+ void (GLAPIENTRYP Color3bv)(const GLbyte * v); /* 10 */
+ void (GLAPIENTRYP Color3d)(GLdouble red, GLdouble green, GLdouble blue); /* 11 */
+ void (GLAPIENTRYP Color3dv)(const GLdouble * v); /* 12 */
+ void (GLAPIENTRYP Color3f)(GLfloat red, GLfloat green, GLfloat blue); /* 13 */
+ void (GLAPIENTRYP Color3fv)(const GLfloat * v); /* 14 */
+ void (GLAPIENTRYP Color3i)(GLint red, GLint green, GLint blue); /* 15 */
+ void (GLAPIENTRYP Color3iv)(const GLint * v); /* 16 */
+ void (GLAPIENTRYP Color3s)(GLshort red, GLshort green, GLshort blue); /* 17 */
+ void (GLAPIENTRYP Color3sv)(const GLshort * v); /* 18 */
+ void (GLAPIENTRYP Color3ub)(GLubyte red, GLubyte green, GLubyte blue); /* 19 */
+ void (GLAPIENTRYP Color3ubv)(const GLubyte * v); /* 20 */
+ void (GLAPIENTRYP Color3ui)(GLuint red, GLuint green, GLuint blue); /* 21 */
+ void (GLAPIENTRYP Color3uiv)(const GLuint * v); /* 22 */
+ void (GLAPIENTRYP Color3us)(GLushort red, GLushort green, GLushort blue); /* 23 */
+ void (GLAPIENTRYP Color3usv)(const GLushort * v); /* 24 */
+ void (GLAPIENTRYP Color4b)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); /* 25 */
+ void (GLAPIENTRYP Color4bv)(const GLbyte * v); /* 26 */
+ void (GLAPIENTRYP Color4d)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); /* 27 */
+ void (GLAPIENTRYP Color4dv)(const GLdouble * v); /* 28 */
+ void (GLAPIENTRYP Color4f)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); /* 29 */
+ void (GLAPIENTRYP Color4fv)(const GLfloat * v); /* 30 */
+ void (GLAPIENTRYP Color4i)(GLint red, GLint green, GLint blue, GLint alpha); /* 31 */
+ void (GLAPIENTRYP Color4iv)(const GLint * v); /* 32 */
+ void (GLAPIENTRYP Color4s)(GLshort red, GLshort green, GLshort blue, GLshort alpha); /* 33 */
+ void (GLAPIENTRYP Color4sv)(const GLshort * v); /* 34 */
+ void (GLAPIENTRYP Color4ub)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); /* 35 */
+ void (GLAPIENTRYP Color4ubv)(const GLubyte * v); /* 36 */
+ void (GLAPIENTRYP Color4ui)(GLuint red, GLuint green, GLuint blue, GLuint alpha); /* 37 */
+ void (GLAPIENTRYP Color4uiv)(const GLuint * v); /* 38 */
+ void (GLAPIENTRYP Color4us)(GLushort red, GLushort green, GLushort blue, GLushort alpha); /* 39 */
+ void (GLAPIENTRYP Color4usv)(const GLushort * v); /* 40 */
+ void (GLAPIENTRYP EdgeFlag)(GLboolean flag); /* 41 */
+ void (GLAPIENTRYP EdgeFlagv)(const GLboolean * flag); /* 42 */
+ void (GLAPIENTRYP End)(void); /* 43 */
+ void (GLAPIENTRYP Indexd)(GLdouble c); /* 44 */
+ void (GLAPIENTRYP Indexdv)(const GLdouble * c); /* 45 */
+ void (GLAPIENTRYP Indexf)(GLfloat c); /* 46 */
+ void (GLAPIENTRYP Indexfv)(const GLfloat * c); /* 47 */
+ void (GLAPIENTRYP Indexi)(GLint c); /* 48 */
+ void (GLAPIENTRYP Indexiv)(const GLint * c); /* 49 */
+ void (GLAPIENTRYP Indexs)(GLshort c); /* 50 */
+ void (GLAPIENTRYP Indexsv)(const GLshort * c); /* 51 */
+ void (GLAPIENTRYP Normal3b)(GLbyte nx, GLbyte ny, GLbyte nz); /* 52 */
+ void (GLAPIENTRYP Normal3bv)(const GLbyte * v); /* 53 */
+ void (GLAPIENTRYP Normal3d)(GLdouble nx, GLdouble ny, GLdouble nz); /* 54 */
+ void (GLAPIENTRYP Normal3dv)(const GLdouble * v); /* 55 */
+ void (GLAPIENTRYP Normal3f)(GLfloat nx, GLfloat ny, GLfloat nz); /* 56 */
+ void (GLAPIENTRYP Normal3fv)(const GLfloat * v); /* 57 */
+ void (GLAPIENTRYP Normal3i)(GLint nx, GLint ny, GLint nz); /* 58 */
+ void (GLAPIENTRYP Normal3iv)(const GLint * v); /* 59 */
+ void (GLAPIENTRYP Normal3s)(GLshort nx, GLshort ny, GLshort nz); /* 60 */
+ void (GLAPIENTRYP Normal3sv)(const GLshort * v); /* 61 */
+ void (GLAPIENTRYP RasterPos2d)(GLdouble x, GLdouble y); /* 62 */
+ void (GLAPIENTRYP RasterPos2dv)(const GLdouble * v); /* 63 */
+ void (GLAPIENTRYP RasterPos2f)(GLfloat x, GLfloat y); /* 64 */
+ void (GLAPIENTRYP RasterPos2fv)(const GLfloat * v); /* 65 */
+ void (GLAPIENTRYP RasterPos2i)(GLint x, GLint y); /* 66 */
+ void (GLAPIENTRYP RasterPos2iv)(const GLint * v); /* 67 */
+ void (GLAPIENTRYP RasterPos2s)(GLshort x, GLshort y); /* 68 */
+ void (GLAPIENTRYP RasterPos2sv)(const GLshort * v); /* 69 */
+ void (GLAPIENTRYP RasterPos3d)(GLdouble x, GLdouble y, GLdouble z); /* 70 */
+ void (GLAPIENTRYP RasterPos3dv)(const GLdouble * v); /* 71 */
+ void (GLAPIENTRYP RasterPos3f)(GLfloat x, GLfloat y, GLfloat z); /* 72 */
+ void (GLAPIENTRYP RasterPos3fv)(const GLfloat * v); /* 73 */
+ void (GLAPIENTRYP RasterPos3i)(GLint x, GLint y, GLint z); /* 74 */
+ void (GLAPIENTRYP RasterPos3iv)(const GLint * v); /* 75 */
+ void (GLAPIENTRYP RasterPos3s)(GLshort x, GLshort y, GLshort z); /* 76 */
+ void (GLAPIENTRYP RasterPos3sv)(const GLshort * v); /* 77 */
+ void (GLAPIENTRYP RasterPos4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 78 */
+ void (GLAPIENTRYP RasterPos4dv)(const GLdouble * v); /* 79 */
+ void (GLAPIENTRYP RasterPos4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 80 */
+ void (GLAPIENTRYP RasterPos4fv)(const GLfloat * v); /* 81 */
+ void (GLAPIENTRYP RasterPos4i)(GLint x, GLint y, GLint z, GLint w); /* 82 */
+ void (GLAPIENTRYP RasterPos4iv)(const GLint * v); /* 83 */
+ void (GLAPIENTRYP RasterPos4s)(GLshort x, GLshort y, GLshort z, GLshort w); /* 84 */
+ void (GLAPIENTRYP RasterPos4sv)(const GLshort * v); /* 85 */
+ void (GLAPIENTRYP Rectd)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); /* 86 */
+ void (GLAPIENTRYP Rectdv)(const GLdouble * v1, const GLdouble * v2); /* 87 */
+ void (GLAPIENTRYP Rectf)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); /* 88 */
+ void (GLAPIENTRYP Rectfv)(const GLfloat * v1, const GLfloat * v2); /* 89 */
+ void (GLAPIENTRYP Recti)(GLint x1, GLint y1, GLint x2, GLint y2); /* 90 */
+ void (GLAPIENTRYP Rectiv)(const GLint * v1, const GLint * v2); /* 91 */
+ void (GLAPIENTRYP Rects)(GLshort x1, GLshort y1, GLshort x2, GLshort y2); /* 92 */
+ void (GLAPIENTRYP Rectsv)(const GLshort * v1, const GLshort * v2); /* 93 */
+ void (GLAPIENTRYP TexCoord1d)(GLdouble s); /* 94 */
+ void (GLAPIENTRYP TexCoord1dv)(const GLdouble * v); /* 95 */
+ void (GLAPIENTRYP TexCoord1f)(GLfloat s); /* 96 */
+ void (GLAPIENTRYP TexCoord1fv)(const GLfloat * v); /* 97 */
+ void (GLAPIENTRYP TexCoord1i)(GLint s); /* 98 */
+ void (GLAPIENTRYP TexCoord1iv)(const GLint * v); /* 99 */
+ void (GLAPIENTRYP TexCoord1s)(GLshort s); /* 100 */
+ void (GLAPIENTRYP TexCoord1sv)(const GLshort * v); /* 101 */
+ void (GLAPIENTRYP TexCoord2d)(GLdouble s, GLdouble t); /* 102 */
+ void (GLAPIENTRYP TexCoord2dv)(const GLdouble * v); /* 103 */
+ void (GLAPIENTRYP TexCoord2f)(GLfloat s, GLfloat t); /* 104 */
+ void (GLAPIENTRYP TexCoord2fv)(const GLfloat * v); /* 105 */
+ void (GLAPIENTRYP TexCoord2i)(GLint s, GLint t); /* 106 */
+ void (GLAPIENTRYP TexCoord2iv)(const GLint * v); /* 107 */
+ void (GLAPIENTRYP TexCoord2s)(GLshort s, GLshort t); /* 108 */
+ void (GLAPIENTRYP TexCoord2sv)(const GLshort * v); /* 109 */
+ void (GLAPIENTRYP TexCoord3d)(GLdouble s, GLdouble t, GLdouble r); /* 110 */
+ void (GLAPIENTRYP TexCoord3dv)(const GLdouble * v); /* 111 */
+ void (GLAPIENTRYP TexCoord3f)(GLfloat s, GLfloat t, GLfloat r); /* 112 */
+ void (GLAPIENTRYP TexCoord3fv)(const GLfloat * v); /* 113 */
+ void (GLAPIENTRYP TexCoord3i)(GLint s, GLint t, GLint r); /* 114 */
+ void (GLAPIENTRYP TexCoord3iv)(const GLint * v); /* 115 */
+ void (GLAPIENTRYP TexCoord3s)(GLshort s, GLshort t, GLshort r); /* 116 */
+ void (GLAPIENTRYP TexCoord3sv)(const GLshort * v); /* 117 */
+ void (GLAPIENTRYP TexCoord4d)(GLdouble s, GLdouble t, GLdouble r, GLdouble q); /* 118 */
+ void (GLAPIENTRYP TexCoord4dv)(const GLdouble * v); /* 119 */
+ void (GLAPIENTRYP TexCoord4f)(GLfloat s, GLfloat t, GLfloat r, GLfloat q); /* 120 */
+ void (GLAPIENTRYP TexCoord4fv)(const GLfloat * v); /* 121 */
+ void (GLAPIENTRYP TexCoord4i)(GLint s, GLint t, GLint r, GLint q); /* 122 */
+ void (GLAPIENTRYP TexCoord4iv)(const GLint * v); /* 123 */
+ void (GLAPIENTRYP TexCoord4s)(GLshort s, GLshort t, GLshort r, GLshort q); /* 124 */
+ void (GLAPIENTRYP TexCoord4sv)(const GLshort * v); /* 125 */
+ void (GLAPIENTRYP Vertex2d)(GLdouble x, GLdouble y); /* 126 */
+ void (GLAPIENTRYP Vertex2dv)(const GLdouble * v); /* 127 */
+ void (GLAPIENTRYP Vertex2f)(GLfloat x, GLfloat y); /* 128 */
+ void (GLAPIENTRYP Vertex2fv)(const GLfloat * v); /* 129 */
+ void (GLAPIENTRYP Vertex2i)(GLint x, GLint y); /* 130 */
+ void (GLAPIENTRYP Vertex2iv)(const GLint * v); /* 131 */
+ void (GLAPIENTRYP Vertex2s)(GLshort x, GLshort y); /* 132 */
+ void (GLAPIENTRYP Vertex2sv)(const GLshort * v); /* 133 */
+ void (GLAPIENTRYP Vertex3d)(GLdouble x, GLdouble y, GLdouble z); /* 134 */
+ void (GLAPIENTRYP Vertex3dv)(const GLdouble * v); /* 135 */
+ void (GLAPIENTRYP Vertex3f)(GLfloat x, GLfloat y, GLfloat z); /* 136 */
+ void (GLAPIENTRYP Vertex3fv)(const GLfloat * v); /* 137 */
+ void (GLAPIENTRYP Vertex3i)(GLint x, GLint y, GLint z); /* 138 */
+ void (GLAPIENTRYP Vertex3iv)(const GLint * v); /* 139 */
+ void (GLAPIENTRYP Vertex3s)(GLshort x, GLshort y, GLshort z); /* 140 */
+ void (GLAPIENTRYP Vertex3sv)(const GLshort * v); /* 141 */
+ void (GLAPIENTRYP Vertex4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 142 */
+ void (GLAPIENTRYP Vertex4dv)(const GLdouble * v); /* 143 */
+ void (GLAPIENTRYP Vertex4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 144 */
+ void (GLAPIENTRYP Vertex4fv)(const GLfloat * v); /* 145 */
+ void (GLAPIENTRYP Vertex4i)(GLint x, GLint y, GLint z, GLint w); /* 146 */
+ void (GLAPIENTRYP Vertex4iv)(const GLint * v); /* 147 */
+ void (GLAPIENTRYP Vertex4s)(GLshort x, GLshort y, GLshort z, GLshort w); /* 148 */
+ void (GLAPIENTRYP Vertex4sv)(const GLshort * v); /* 149 */
+ void (GLAPIENTRYP ClipPlane)(GLenum plane, const GLdouble * equation); /* 150 */
+ void (GLAPIENTRYP ColorMaterial)(GLenum face, GLenum mode); /* 151 */
+ void (GLAPIENTRYP CullFace)(GLenum mode); /* 152 */
+ void (GLAPIENTRYP Fogf)(GLenum pname, GLfloat param); /* 153 */
+ void (GLAPIENTRYP Fogfv)(GLenum pname, const GLfloat * params); /* 154 */
+ void (GLAPIENTRYP Fogi)(GLenum pname, GLint param); /* 155 */
+ void (GLAPIENTRYP Fogiv)(GLenum pname, const GLint * params); /* 156 */
+ void (GLAPIENTRYP FrontFace)(GLenum mode); /* 157 */
+ void (GLAPIENTRYP Hint)(GLenum target, GLenum mode); /* 158 */
+ void (GLAPIENTRYP Lightf)(GLenum light, GLenum pname, GLfloat param); /* 159 */
+ void (GLAPIENTRYP Lightfv)(GLenum light, GLenum pname, const GLfloat * params); /* 160 */
+ void (GLAPIENTRYP Lighti)(GLenum light, GLenum pname, GLint param); /* 161 */
+ void (GLAPIENTRYP Lightiv)(GLenum light, GLenum pname, const GLint * params); /* 162 */
+ void (GLAPIENTRYP LightModelf)(GLenum pname, GLfloat param); /* 163 */
+ void (GLAPIENTRYP LightModelfv)(GLenum pname, const GLfloat * params); /* 164 */
+ void (GLAPIENTRYP LightModeli)(GLenum pname, GLint param); /* 165 */
+ void (GLAPIENTRYP LightModeliv)(GLenum pname, const GLint * params); /* 166 */
+ void (GLAPIENTRYP LineStipple)(GLint factor, GLushort pattern); /* 167 */
+ void (GLAPIENTRYP LineWidth)(GLfloat width); /* 168 */
+ void (GLAPIENTRYP Materialf)(GLenum face, GLenum pname, GLfloat param); /* 169 */
+ void (GLAPIENTRYP Materialfv)(GLenum face, GLenum pname, const GLfloat * params); /* 170 */
+ void (GLAPIENTRYP Materiali)(GLenum face, GLenum pname, GLint param); /* 171 */
+ void (GLAPIENTRYP Materialiv)(GLenum face, GLenum pname, const GLint * params); /* 172 */
+ void (GLAPIENTRYP PointSize)(GLfloat size); /* 173 */
+ void (GLAPIENTRYP PolygonMode)(GLenum face, GLenum mode); /* 174 */
+ void (GLAPIENTRYP PolygonStipple)(const GLubyte * mask); /* 175 */
+ void (GLAPIENTRYP Scissor)(GLint x, GLint y, GLsizei width, GLsizei height); /* 176 */
+ void (GLAPIENTRYP ShadeModel)(GLenum mode); /* 177 */
+ void (GLAPIENTRYP TexParameterf)(GLenum target, GLenum pname, GLfloat param); /* 178 */
+ void (GLAPIENTRYP TexParameterfv)(GLenum target, GLenum pname, const GLfloat * params); /* 179 */
+ void (GLAPIENTRYP TexParameteri)(GLenum target, GLenum pname, GLint param); /* 180 */
+ void (GLAPIENTRYP TexParameteriv)(GLenum target, GLenum pname, const GLint * params); /* 181 */
+ void (GLAPIENTRYP TexImage1D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid * pixels); /* 182 */
+ void (GLAPIENTRYP TexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels); /* 183 */
+ void (GLAPIENTRYP TexEnvf)(GLenum target, GLenum pname, GLfloat param); /* 184 */
+ void (GLAPIENTRYP TexEnvfv)(GLenum target, GLenum pname, const GLfloat * params); /* 185 */
+ void (GLAPIENTRYP TexEnvi)(GLenum target, GLenum pname, GLint param); /* 186 */
+ void (GLAPIENTRYP TexEnviv)(GLenum target, GLenum pname, const GLint * params); /* 187 */
+ void (GLAPIENTRYP TexGend)(GLenum coord, GLenum pname, GLdouble param); /* 188 */
+ void (GLAPIENTRYP TexGendv)(GLenum coord, GLenum pname, const GLdouble * params); /* 189 */
+ void (GLAPIENTRYP TexGenf)(GLenum coord, GLenum pname, GLfloat param); /* 190 */
+ void (GLAPIENTRYP TexGenfv)(GLenum coord, GLenum pname, const GLfloat * params); /* 191 */
+ void (GLAPIENTRYP TexGeni)(GLenum coord, GLenum pname, GLint param); /* 192 */
+ void (GLAPIENTRYP TexGeniv)(GLenum coord, GLenum pname, const GLint * params); /* 193 */
+ void (GLAPIENTRYP FeedbackBuffer)(GLsizei size, GLenum type, GLfloat * buffer); /* 194 */
+ void (GLAPIENTRYP SelectBuffer)(GLsizei size, GLuint * buffer); /* 195 */
+ GLint (GLAPIENTRYP RenderMode)(GLenum mode); /* 196 */
+ void (GLAPIENTRYP InitNames)(void); /* 197 */
+ void (GLAPIENTRYP LoadName)(GLuint name); /* 198 */
+ void (GLAPIENTRYP PassThrough)(GLfloat token); /* 199 */
+ void (GLAPIENTRYP PopName)(void); /* 200 */
+ void (GLAPIENTRYP PushName)(GLuint name); /* 201 */
+ void (GLAPIENTRYP DrawBuffer)(GLenum mode); /* 202 */
+ void (GLAPIENTRYP Clear)(GLbitfield mask); /* 203 */
+ void (GLAPIENTRYP ClearAccum)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); /* 204 */
+ void (GLAPIENTRYP ClearIndex)(GLfloat c); /* 205 */
+ void (GLAPIENTRYP ClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); /* 206 */
+ void (GLAPIENTRYP ClearStencil)(GLint s); /* 207 */
+ void (GLAPIENTRYP ClearDepth)(GLclampd depth); /* 208 */
+ void (GLAPIENTRYP StencilMask)(GLuint mask); /* 209 */
+ void (GLAPIENTRYP ColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); /* 210 */
+ void (GLAPIENTRYP DepthMask)(GLboolean flag); /* 211 */
+ void (GLAPIENTRYP IndexMask)(GLuint mask); /* 212 */
+ void (GLAPIENTRYP Accum)(GLenum op, GLfloat value); /* 213 */
+ void (GLAPIENTRYP Disable)(GLenum cap); /* 214 */
+ void (GLAPIENTRYP Enable)(GLenum cap); /* 215 */
+ void (GLAPIENTRYP Finish)(void); /* 216 */
+ void (GLAPIENTRYP Flush)(void); /* 217 */
+ void (GLAPIENTRYP PopAttrib)(void); /* 218 */
+ void (GLAPIENTRYP PushAttrib)(GLbitfield mask); /* 219 */
+ void (GLAPIENTRYP Map1d)(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble * points); /* 220 */
+ void (GLAPIENTRYP Map1f)(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat * points); /* 221 */
+ void (GLAPIENTRYP Map2d)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble * points); /* 222 */
+ void (GLAPIENTRYP Map2f)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat * points); /* 223 */
+ void (GLAPIENTRYP MapGrid1d)(GLint un, GLdouble u1, GLdouble u2); /* 224 */
+ void (GLAPIENTRYP MapGrid1f)(GLint un, GLfloat u1, GLfloat u2); /* 225 */
+ void (GLAPIENTRYP MapGrid2d)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); /* 226 */
+ void (GLAPIENTRYP MapGrid2f)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); /* 227 */
+ void (GLAPIENTRYP EvalCoord1d)(GLdouble u); /* 228 */
+ void (GLAPIENTRYP EvalCoord1dv)(const GLdouble * u); /* 229 */
+ void (GLAPIENTRYP EvalCoord1f)(GLfloat u); /* 230 */
+ void (GLAPIENTRYP EvalCoord1fv)(const GLfloat * u); /* 231 */
+ void (GLAPIENTRYP EvalCoord2d)(GLdouble u, GLdouble v); /* 232 */
+ void (GLAPIENTRYP EvalCoord2dv)(const GLdouble * u); /* 233 */
+ void (GLAPIENTRYP EvalCoord2f)(GLfloat u, GLfloat v); /* 234 */
+ void (GLAPIENTRYP EvalCoord2fv)(const GLfloat * u); /* 235 */
+ void (GLAPIENTRYP EvalMesh1)(GLenum mode, GLint i1, GLint i2); /* 236 */
+ void (GLAPIENTRYP EvalPoint1)(GLint i); /* 237 */
+ void (GLAPIENTRYP EvalMesh2)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); /* 238 */
+ void (GLAPIENTRYP EvalPoint2)(GLint i, GLint j); /* 239 */
+ void (GLAPIENTRYP AlphaFunc)(GLenum func, GLclampf ref); /* 240 */
+ void (GLAPIENTRYP BlendFunc)(GLenum sfactor, GLenum dfactor); /* 241 */
+ void (GLAPIENTRYP LogicOp)(GLenum opcode); /* 242 */
+ void (GLAPIENTRYP StencilFunc)(GLenum func, GLint ref, GLuint mask); /* 243 */
+ void (GLAPIENTRYP StencilOp)(GLenum fail, GLenum zfail, GLenum zpass); /* 244 */
+ void (GLAPIENTRYP DepthFunc)(GLenum func); /* 245 */
+ void (GLAPIENTRYP PixelZoom)(GLfloat xfactor, GLfloat yfactor); /* 246 */
+ void (GLAPIENTRYP PixelTransferf)(GLenum pname, GLfloat param); /* 247 */
+ void (GLAPIENTRYP PixelTransferi)(GLenum pname, GLint param); /* 248 */
+ void (GLAPIENTRYP PixelStoref)(GLenum pname, GLfloat param); /* 249 */
+ void (GLAPIENTRYP PixelStorei)(GLenum pname, GLint param); /* 250 */
+ void (GLAPIENTRYP PixelMapfv)(GLenum map, GLsizei mapsize, const GLfloat * values); /* 251 */
+ void (GLAPIENTRYP PixelMapuiv)(GLenum map, GLsizei mapsize, const GLuint * values); /* 252 */
+ void (GLAPIENTRYP PixelMapusv)(GLenum map, GLsizei mapsize, const GLushort * values); /* 253 */
+ void (GLAPIENTRYP ReadBuffer)(GLenum mode); /* 254 */
+ void (GLAPIENTRYP CopyPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); /* 255 */
+ void (GLAPIENTRYP ReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels); /* 256 */
+ void (GLAPIENTRYP DrawPixels)(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels); /* 257 */
+ void (GLAPIENTRYP GetBooleanv)(GLenum pname, GLboolean * params); /* 258 */
+ void (GLAPIENTRYP GetClipPlane)(GLenum plane, GLdouble * equation); /* 259 */
+ void (GLAPIENTRYP GetDoublev)(GLenum pname, GLdouble * params); /* 260 */
+ GLenum (GLAPIENTRYP GetError)(void); /* 261 */
+ void (GLAPIENTRYP GetFloatv)(GLenum pname, GLfloat * params); /* 262 */
+ void (GLAPIENTRYP GetIntegerv)(GLenum pname, GLint * params); /* 263 */
+ void (GLAPIENTRYP GetLightfv)(GLenum light, GLenum pname, GLfloat * params); /* 264 */
+ void (GLAPIENTRYP GetLightiv)(GLenum light, GLenum pname, GLint * params); /* 265 */
+ void (GLAPIENTRYP GetMapdv)(GLenum target, GLenum query, GLdouble * v); /* 266 */
+ void (GLAPIENTRYP GetMapfv)(GLenum target, GLenum query, GLfloat * v); /* 267 */
+ void (GLAPIENTRYP GetMapiv)(GLenum target, GLenum query, GLint * v); /* 268 */
+ void (GLAPIENTRYP GetMaterialfv)(GLenum face, GLenum pname, GLfloat * params); /* 269 */
+ void (GLAPIENTRYP GetMaterialiv)(GLenum face, GLenum pname, GLint * params); /* 270 */
+ void (GLAPIENTRYP GetPixelMapfv)(GLenum map, GLfloat * values); /* 271 */
+ void (GLAPIENTRYP GetPixelMapuiv)(GLenum map, GLuint * values); /* 272 */
+ void (GLAPIENTRYP GetPixelMapusv)(GLenum map, GLushort * values); /* 273 */
+ void (GLAPIENTRYP GetPolygonStipple)(GLubyte * mask); /* 274 */
+ const GLubyte * (GLAPIENTRYP GetString)(GLenum name); /* 275 */
+ void (GLAPIENTRYP GetTexEnvfv)(GLenum target, GLenum pname, GLfloat * params); /* 276 */
+ void (GLAPIENTRYP GetTexEnviv)(GLenum target, GLenum pname, GLint * params); /* 277 */
+ void (GLAPIENTRYP GetTexGendv)(GLenum coord, GLenum pname, GLdouble * params); /* 278 */
+ void (GLAPIENTRYP GetTexGenfv)(GLenum coord, GLenum pname, GLfloat * params); /* 279 */
+ void (GLAPIENTRYP GetTexGeniv)(GLenum coord, GLenum pname, GLint * params); /* 280 */
+ void (GLAPIENTRYP GetTexImage)(GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels); /* 281 */
+ void (GLAPIENTRYP GetTexParameterfv)(GLenum target, GLenum pname, GLfloat * params); /* 282 */
+ void (GLAPIENTRYP GetTexParameteriv)(GLenum target, GLenum pname, GLint * params); /* 283 */
+ void (GLAPIENTRYP GetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat * params); /* 284 */
+ void (GLAPIENTRYP GetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint * params); /* 285 */
+ GLboolean (GLAPIENTRYP IsEnabled)(GLenum cap); /* 286 */
+ GLboolean (GLAPIENTRYP IsList)(GLuint list); /* 287 */
+ void (GLAPIENTRYP DepthRange)(GLclampd zNear, GLclampd zFar); /* 288 */
+ void (GLAPIENTRYP Frustum)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); /* 289 */
+ void (GLAPIENTRYP LoadIdentity)(void); /* 290 */
+ void (GLAPIENTRYP LoadMatrixf)(const GLfloat * m); /* 291 */
+ void (GLAPIENTRYP LoadMatrixd)(const GLdouble * m); /* 292 */
+ void (GLAPIENTRYP MatrixMode)(GLenum mode); /* 293 */
+ void (GLAPIENTRYP MultMatrixf)(const GLfloat * m); /* 294 */
+ void (GLAPIENTRYP MultMatrixd)(const GLdouble * m); /* 295 */
+ void (GLAPIENTRYP Ortho)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); /* 296 */
+ void (GLAPIENTRYP PopMatrix)(void); /* 297 */
+ void (GLAPIENTRYP PushMatrix)(void); /* 298 */
+ void (GLAPIENTRYP Rotated)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z); /* 299 */
+ void (GLAPIENTRYP Rotatef)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); /* 300 */
+ void (GLAPIENTRYP Scaled)(GLdouble x, GLdouble y, GLdouble z); /* 301 */
+ void (GLAPIENTRYP Scalef)(GLfloat x, GLfloat y, GLfloat z); /* 302 */
+ void (GLAPIENTRYP Translated)(GLdouble x, GLdouble y, GLdouble z); /* 303 */
+ void (GLAPIENTRYP Translatef)(GLfloat x, GLfloat y, GLfloat z); /* 304 */
+ void (GLAPIENTRYP Viewport)(GLint x, GLint y, GLsizei width, GLsizei height); /* 305 */
+ void (GLAPIENTRYP ArrayElement)(GLint i); /* 306 */
+ void (GLAPIENTRYP BindTexture)(GLenum target, GLuint texture); /* 307 */
+ void (GLAPIENTRYP ColorPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 308 */
+ void (GLAPIENTRYP DisableClientState)(GLenum array); /* 309 */
+ void (GLAPIENTRYP DrawArrays)(GLenum mode, GLint first, GLsizei count); /* 310 */
+ void (GLAPIENTRYP DrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices); /* 311 */
+ void (GLAPIENTRYP EdgeFlagPointer)(GLsizei stride, const GLvoid * pointer); /* 312 */
+ void (GLAPIENTRYP EnableClientState)(GLenum array); /* 313 */
+ void (GLAPIENTRYP IndexPointer)(GLenum type, GLsizei stride, const GLvoid * pointer); /* 314 */
+ void (GLAPIENTRYP Indexub)(GLubyte c); /* 315 */
+ void (GLAPIENTRYP Indexubv)(const GLubyte * c); /* 316 */
+ void (GLAPIENTRYP InterleavedArrays)(GLenum format, GLsizei stride, const GLvoid * pointer); /* 317 */
+ void (GLAPIENTRYP NormalPointer)(GLenum type, GLsizei stride, const GLvoid * pointer); /* 318 */
+ void (GLAPIENTRYP PolygonOffset)(GLfloat factor, GLfloat units); /* 319 */
+ void (GLAPIENTRYP TexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 320 */
+ void (GLAPIENTRYP VertexPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 321 */
+ GLboolean (GLAPIENTRYP AreTexturesResident)(GLsizei n, const GLuint * textures, GLboolean * residences); /* 322 */
+ void (GLAPIENTRYP CopyTexImage1D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); /* 323 */
+ void (GLAPIENTRYP CopyTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); /* 324 */
+ void (GLAPIENTRYP CopyTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); /* 325 */
+ void (GLAPIENTRYP CopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); /* 326 */
+ void (GLAPIENTRYP DeleteTextures)(GLsizei n, const GLuint * textures); /* 327 */
+ void (GLAPIENTRYP GenTextures)(GLsizei n, GLuint * textures); /* 328 */
+ void (GLAPIENTRYP GetPointerv)(GLenum pname, GLvoid ** params); /* 329 */
+ GLboolean (GLAPIENTRYP IsTexture)(GLuint texture); /* 330 */
+ void (GLAPIENTRYP PrioritizeTextures)(GLsizei n, const GLuint * textures, const GLclampf * priorities); /* 331 */
+ void (GLAPIENTRYP TexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels); /* 332 */
+ void (GLAPIENTRYP TexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels); /* 333 */
+ void (GLAPIENTRYP PopClientAttrib)(void); /* 334 */
+ void (GLAPIENTRYP PushClientAttrib)(GLbitfield mask); /* 335 */
+ void (GLAPIENTRYP BlendColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); /* 336 */
+ void (GLAPIENTRYP BlendEquation)(GLenum mode); /* 337 */
+ void (GLAPIENTRYP DrawRangeElements)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices); /* 338 */
+ void (GLAPIENTRYP ColorTable)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * table); /* 339 */
+ void (GLAPIENTRYP ColorTableParameterfv)(GLenum target, GLenum pname, const GLfloat * params); /* 340 */
+ void (GLAPIENTRYP ColorTableParameteriv)(GLenum target, GLenum pname, const GLint * params); /* 341 */
+ void (GLAPIENTRYP CopyColorTable)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); /* 342 */
+ void (GLAPIENTRYP GetColorTable)(GLenum target, GLenum format, GLenum type, GLvoid * table); /* 343 */
+ void (GLAPIENTRYP GetColorTableParameterfv)(GLenum target, GLenum pname, GLfloat * params); /* 344 */
+ void (GLAPIENTRYP GetColorTableParameteriv)(GLenum target, GLenum pname, GLint * params); /* 345 */
+ void (GLAPIENTRYP ColorSubTable)(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid * data); /* 346 */
+ void (GLAPIENTRYP CopyColorSubTable)(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); /* 347 */
+ void (GLAPIENTRYP ConvolutionFilter1D)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * image); /* 348 */
+ void (GLAPIENTRYP ConvolutionFilter2D)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * image); /* 349 */
+ void (GLAPIENTRYP ConvolutionParameterf)(GLenum target, GLenum pname, GLfloat params); /* 350 */
+ void (GLAPIENTRYP ConvolutionParameterfv)(GLenum target, GLenum pname, const GLfloat * params); /* 351 */
+ void (GLAPIENTRYP ConvolutionParameteri)(GLenum target, GLenum pname, GLint params); /* 352 */
+ void (GLAPIENTRYP ConvolutionParameteriv)(GLenum target, GLenum pname, const GLint * params); /* 353 */
+ void (GLAPIENTRYP CopyConvolutionFilter1D)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); /* 354 */
+ void (GLAPIENTRYP CopyConvolutionFilter2D)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); /* 355 */
+ void (GLAPIENTRYP GetConvolutionFilter)(GLenum target, GLenum format, GLenum type, GLvoid * image); /* 356 */
+ void (GLAPIENTRYP GetConvolutionParameterfv)(GLenum target, GLenum pname, GLfloat * params); /* 357 */
+ void (GLAPIENTRYP GetConvolutionParameteriv)(GLenum target, GLenum pname, GLint * params); /* 358 */
+ void (GLAPIENTRYP GetSeparableFilter)(GLenum target, GLenum format, GLenum type, GLvoid * row, GLvoid * column, GLvoid * span); /* 359 */
+ void (GLAPIENTRYP SeparableFilter2D)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * row, const GLvoid * column); /* 360 */
+ void (GLAPIENTRYP GetHistogram)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values); /* 361 */
+ void (GLAPIENTRYP GetHistogramParameterfv)(GLenum target, GLenum pname, GLfloat * params); /* 362 */
+ void (GLAPIENTRYP GetHistogramParameteriv)(GLenum target, GLenum pname, GLint * params); /* 363 */
+ void (GLAPIENTRYP GetMinmax)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values); /* 364 */
+ void (GLAPIENTRYP GetMinmaxParameterfv)(GLenum target, GLenum pname, GLfloat * params); /* 365 */
+ void (GLAPIENTRYP GetMinmaxParameteriv)(GLenum target, GLenum pname, GLint * params); /* 366 */
+ void (GLAPIENTRYP Histogram)(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); /* 367 */
+ void (GLAPIENTRYP Minmax)(GLenum target, GLenum internalformat, GLboolean sink); /* 368 */
+ void (GLAPIENTRYP ResetHistogram)(GLenum target); /* 369 */
+ void (GLAPIENTRYP ResetMinmax)(GLenum target); /* 370 */
+ void (GLAPIENTRYP TexImage3D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels); /* 371 */
+ void (GLAPIENTRYP TexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels); /* 372 */
+ void (GLAPIENTRYP CopyTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); /* 373 */
+ void (GLAPIENTRYP ActiveTexture)(GLenum texture); /* 374 */
+ void (GLAPIENTRYP ClientActiveTexture)(GLenum texture); /* 375 */
+ void (GLAPIENTRYP MultiTexCoord1d)(GLenum target, GLdouble s); /* 376 */
+ void (GLAPIENTRYP MultiTexCoord1dv)(GLenum target, const GLdouble * v); /* 377 */
+ void (GLAPIENTRYP MultiTexCoord1fARB)(GLenum target, GLfloat s); /* 378 */
+ void (GLAPIENTRYP MultiTexCoord1fvARB)(GLenum target, const GLfloat * v); /* 379 */
+ void (GLAPIENTRYP MultiTexCoord1i)(GLenum target, GLint s); /* 380 */
+ void (GLAPIENTRYP MultiTexCoord1iv)(GLenum target, const GLint * v); /* 381 */
+ void (GLAPIENTRYP MultiTexCoord1s)(GLenum target, GLshort s); /* 382 */
+ void (GLAPIENTRYP MultiTexCoord1sv)(GLenum target, const GLshort * v); /* 383 */
+ void (GLAPIENTRYP MultiTexCoord2d)(GLenum target, GLdouble s, GLdouble t); /* 384 */
+ void (GLAPIENTRYP MultiTexCoord2dv)(GLenum target, const GLdouble * v); /* 385 */
+ void (GLAPIENTRYP MultiTexCoord2fARB)(GLenum target, GLfloat s, GLfloat t); /* 386 */
+ void (GLAPIENTRYP MultiTexCoord2fvARB)(GLenum target, const GLfloat * v); /* 387 */
+ void (GLAPIENTRYP MultiTexCoord2i)(GLenum target, GLint s, GLint t); /* 388 */
+ void (GLAPIENTRYP MultiTexCoord2iv)(GLenum target, const GLint * v); /* 389 */
+ void (GLAPIENTRYP MultiTexCoord2s)(GLenum target, GLshort s, GLshort t); /* 390 */
+ void (GLAPIENTRYP MultiTexCoord2sv)(GLenum target, const GLshort * v); /* 391 */
+ void (GLAPIENTRYP MultiTexCoord3d)(GLenum target, GLdouble s, GLdouble t, GLdouble r); /* 392 */
+ void (GLAPIENTRYP MultiTexCoord3dv)(GLenum target, const GLdouble * v); /* 393 */
+ void (GLAPIENTRYP MultiTexCoord3fARB)(GLenum target, GLfloat s, GLfloat t, GLfloat r); /* 394 */
+ void (GLAPIENTRYP MultiTexCoord3fvARB)(GLenum target, const GLfloat * v); /* 395 */
+ void (GLAPIENTRYP MultiTexCoord3i)(GLenum target, GLint s, GLint t, GLint r); /* 396 */
+ void (GLAPIENTRYP MultiTexCoord3iv)(GLenum target, const GLint * v); /* 397 */
+ void (GLAPIENTRYP MultiTexCoord3s)(GLenum target, GLshort s, GLshort t, GLshort r); /* 398 */
+ void (GLAPIENTRYP MultiTexCoord3sv)(GLenum target, const GLshort * v); /* 399 */
+ void (GLAPIENTRYP MultiTexCoord4d)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); /* 400 */
+ void (GLAPIENTRYP MultiTexCoord4dv)(GLenum target, const GLdouble * v); /* 401 */
+ void (GLAPIENTRYP MultiTexCoord4fARB)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); /* 402 */
+ void (GLAPIENTRYP MultiTexCoord4fvARB)(GLenum target, const GLfloat * v); /* 403 */
+ void (GLAPIENTRYP MultiTexCoord4i)(GLenum target, GLint s, GLint t, GLint r, GLint q); /* 404 */
+ void (GLAPIENTRYP MultiTexCoord4iv)(GLenum target, const GLint * v); /* 405 */
+ void (GLAPIENTRYP MultiTexCoord4s)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); /* 406 */
+ void (GLAPIENTRYP MultiTexCoord4sv)(GLenum target, const GLshort * v); /* 407 */
+#if !defined HAVE_SHARED_GLAPI
+ void (GLAPIENTRYP CompressedTexImage1D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid * data); /* 408 */
+ void (GLAPIENTRYP CompressedTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data); /* 409 */
+ void (GLAPIENTRYP CompressedTexImage3D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid * data); /* 410 */
+ void (GLAPIENTRYP CompressedTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid * data); /* 411 */
+ void (GLAPIENTRYP CompressedTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data); /* 412 */
+ void (GLAPIENTRYP CompressedTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid * data); /* 413 */
+ void (GLAPIENTRYP GetCompressedTexImage)(GLenum target, GLint level, GLvoid * img); /* 414 */
+ void (GLAPIENTRYP LoadTransposeMatrixd)(const GLdouble * m); /* 415 */
+ void (GLAPIENTRYP LoadTransposeMatrixf)(const GLfloat * m); /* 416 */
+ void (GLAPIENTRYP MultTransposeMatrixd)(const GLdouble * m); /* 417 */
+ void (GLAPIENTRYP MultTransposeMatrixf)(const GLfloat * m); /* 418 */
+ void (GLAPIENTRYP SampleCoverage)(GLclampf value, GLboolean invert); /* 419 */
+ void (GLAPIENTRYP BlendFuncSeparate)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); /* 420 */
+ void (GLAPIENTRYP FogCoordPointer)(GLenum type, GLsizei stride, const GLvoid * pointer); /* 421 */
+ void (GLAPIENTRYP FogCoordd)(GLdouble coord); /* 422 */
+ void (GLAPIENTRYP FogCoorddv)(const GLdouble * coord); /* 423 */
+ void (GLAPIENTRYP MultiDrawArrays)(GLenum mode, const GLint * first, const GLsizei * count, GLsizei primcount); /* 424 */
+ void (GLAPIENTRYP PointParameterf)(GLenum pname, GLfloat param); /* 425 */
+ void (GLAPIENTRYP PointParameterfv)(GLenum pname, const GLfloat * params); /* 426 */
+ void (GLAPIENTRYP PointParameteri)(GLenum pname, GLint param); /* 427 */
+ void (GLAPIENTRYP PointParameteriv)(GLenum pname, const GLint * params); /* 428 */
+ void (GLAPIENTRYP SecondaryColor3b)(GLbyte red, GLbyte green, GLbyte blue); /* 429 */
+ void (GLAPIENTRYP SecondaryColor3bv)(const GLbyte * v); /* 430 */
+ void (GLAPIENTRYP SecondaryColor3d)(GLdouble red, GLdouble green, GLdouble blue); /* 431 */
+ void (GLAPIENTRYP SecondaryColor3dv)(const GLdouble * v); /* 432 */
+ void (GLAPIENTRYP SecondaryColor3i)(GLint red, GLint green, GLint blue); /* 433 */
+ void (GLAPIENTRYP SecondaryColor3iv)(const GLint * v); /* 434 */
+ void (GLAPIENTRYP SecondaryColor3s)(GLshort red, GLshort green, GLshort blue); /* 435 */
+ void (GLAPIENTRYP SecondaryColor3sv)(const GLshort * v); /* 436 */
+ void (GLAPIENTRYP SecondaryColor3ub)(GLubyte red, GLubyte green, GLubyte blue); /* 437 */
+ void (GLAPIENTRYP SecondaryColor3ubv)(const GLubyte * v); /* 438 */
+ void (GLAPIENTRYP SecondaryColor3ui)(GLuint red, GLuint green, GLuint blue); /* 439 */
+ void (GLAPIENTRYP SecondaryColor3uiv)(const GLuint * v); /* 440 */
+ void (GLAPIENTRYP SecondaryColor3us)(GLushort red, GLushort green, GLushort blue); /* 441 */
+ void (GLAPIENTRYP SecondaryColor3usv)(const GLushort * v); /* 442 */
+ void (GLAPIENTRYP SecondaryColorPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 443 */
+ void (GLAPIENTRYP WindowPos2d)(GLdouble x, GLdouble y); /* 444 */
+ void (GLAPIENTRYP WindowPos2dv)(const GLdouble * v); /* 445 */
+ void (GLAPIENTRYP WindowPos2f)(GLfloat x, GLfloat y); /* 446 */
+ void (GLAPIENTRYP WindowPos2fv)(const GLfloat * v); /* 447 */
+ void (GLAPIENTRYP WindowPos2i)(GLint x, GLint y); /* 448 */
+ void (GLAPIENTRYP WindowPos2iv)(const GLint * v); /* 449 */
+ void (GLAPIENTRYP WindowPos2s)(GLshort x, GLshort y); /* 450 */
+ void (GLAPIENTRYP WindowPos2sv)(const GLshort * v); /* 451 */
+ void (GLAPIENTRYP WindowPos3d)(GLdouble x, GLdouble y, GLdouble z); /* 452 */
+ void (GLAPIENTRYP WindowPos3dv)(const GLdouble * v); /* 453 */
+ void (GLAPIENTRYP WindowPos3f)(GLfloat x, GLfloat y, GLfloat z); /* 454 */
+ void (GLAPIENTRYP WindowPos3fv)(const GLfloat * v); /* 455 */
+ void (GLAPIENTRYP WindowPos3i)(GLint x, GLint y, GLint z); /* 456 */
+ void (GLAPIENTRYP WindowPos3iv)(const GLint * v); /* 457 */
+ void (GLAPIENTRYP WindowPos3s)(GLshort x, GLshort y, GLshort z); /* 458 */
+ void (GLAPIENTRYP WindowPos3sv)(const GLshort * v); /* 459 */
+ void (GLAPIENTRYP BeginQuery)(GLenum target, GLuint id); /* 460 */
+ void (GLAPIENTRYP BindBuffer)(GLenum target, GLuint buffer); /* 461 */
+ void (GLAPIENTRYP BufferData)(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage); /* 462 */
+ void (GLAPIENTRYP BufferSubData)(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid * data); /* 463 */
+ void (GLAPIENTRYP DeleteBuffers)(GLsizei n, const GLuint * buffer); /* 464 */
+ void (GLAPIENTRYP DeleteQueries)(GLsizei n, const GLuint * ids); /* 465 */
+ void (GLAPIENTRYP EndQuery)(GLenum target); /* 466 */
+ void (GLAPIENTRYP GenBuffers)(GLsizei n, GLuint * buffer); /* 467 */
+ void (GLAPIENTRYP GenQueries)(GLsizei n, GLuint * ids); /* 468 */
+ void (GLAPIENTRYP GetBufferParameteriv)(GLenum target, GLenum pname, GLint * params); /* 469 */
+ void (GLAPIENTRYP GetBufferPointerv)(GLenum target, GLenum pname, GLvoid ** params); /* 470 */
+ void (GLAPIENTRYP GetBufferSubData)(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid * data); /* 471 */
+ void (GLAPIENTRYP GetQueryObjectiv)(GLuint id, GLenum pname, GLint * params); /* 472 */
+ void (GLAPIENTRYP GetQueryObjectuiv)(GLuint id, GLenum pname, GLuint * params); /* 473 */
+ void (GLAPIENTRYP GetQueryiv)(GLenum target, GLenum pname, GLint * params); /* 474 */
+ GLboolean (GLAPIENTRYP IsBuffer)(GLuint buffer); /* 475 */
+ GLboolean (GLAPIENTRYP IsQuery)(GLuint id); /* 476 */
+ GLvoid * (GLAPIENTRYP MapBuffer)(GLenum target, GLenum access); /* 477 */
+ GLboolean (GLAPIENTRYP UnmapBuffer)(GLenum target); /* 478 */
+ void (GLAPIENTRYP AttachShader)(GLuint program, GLuint shader); /* 479 */
+ void (GLAPIENTRYP BindAttribLocation)(GLuint program, GLuint index, const GLchar * name); /* 480 */
+ void (GLAPIENTRYP BlendEquationSeparate)(GLenum modeRGB, GLenum modeA); /* 481 */
+ void (GLAPIENTRYP CompileShader)(GLuint shader); /* 482 */
+ GLuint (GLAPIENTRYP CreateProgram)(void); /* 483 */
+ GLuint (GLAPIENTRYP CreateShader)(GLenum type); /* 484 */
+ void (GLAPIENTRYP DeleteProgram)(GLuint program); /* 485 */
+ void (GLAPIENTRYP DeleteShader)(GLuint program); /* 486 */
+ void (GLAPIENTRYP DetachShader)(GLuint program, GLuint shader); /* 487 */
+ void (GLAPIENTRYP DisableVertexAttribArray)(GLuint index); /* 488 */
+ void (GLAPIENTRYP DrawBuffers)(GLsizei n, const GLenum * bufs); /* 489 */
+ void (GLAPIENTRYP EnableVertexAttribArray)(GLuint index); /* 490 */
+ void (GLAPIENTRYP GetActiveAttrib)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name); /* 491 */
+ void (GLAPIENTRYP GetActiveUniform)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name); /* 492 */
+ void (GLAPIENTRYP GetAttachedShaders)(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * obj); /* 493 */
+ GLint (GLAPIENTRYP GetAttribLocation)(GLuint program, const GLchar * name); /* 494 */
+ void (GLAPIENTRYP GetProgramInfoLog)(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog); /* 495 */
+ void (GLAPIENTRYP GetProgramiv)(GLuint program, GLenum pname, GLint * params); /* 496 */
+ void (GLAPIENTRYP GetShaderInfoLog)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog); /* 497 */
+ void (GLAPIENTRYP GetShaderSource)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source); /* 498 */
+ void (GLAPIENTRYP GetShaderiv)(GLuint shader, GLenum pname, GLint * params); /* 499 */
+ GLint (GLAPIENTRYP GetUniformLocation)(GLuint program, const GLchar * name); /* 500 */
+ void (GLAPIENTRYP GetUniformfv)(GLuint program, GLint location, GLfloat * params); /* 501 */
+ void (GLAPIENTRYP GetUniformiv)(GLuint program, GLint location, GLint * params); /* 502 */
+ void (GLAPIENTRYP GetVertexAttribPointerv)(GLuint index, GLenum pname, GLvoid ** pointer); /* 503 */
+ void (GLAPIENTRYP GetVertexAttribdv)(GLuint index, GLenum pname, GLdouble * params); /* 504 */
+ void (GLAPIENTRYP GetVertexAttribfv)(GLuint index, GLenum pname, GLfloat * params); /* 505 */
+ void (GLAPIENTRYP GetVertexAttribiv)(GLuint index, GLenum pname, GLint * params); /* 506 */
+ GLboolean (GLAPIENTRYP IsProgram)(GLuint program); /* 507 */
+ GLboolean (GLAPIENTRYP IsShader)(GLuint shader); /* 508 */
+ void (GLAPIENTRYP LinkProgram)(GLuint program); /* 509 */
+ void (GLAPIENTRYP ShaderSource)(GLuint shader, GLsizei count, const GLchar * const * string, const GLint * length); /* 510 */
+ void (GLAPIENTRYP StencilFuncSeparate)(GLenum face, GLenum func, GLint ref, GLuint mask); /* 511 */
+ void (GLAPIENTRYP StencilMaskSeparate)(GLenum face, GLuint mask); /* 512 */
+ void (GLAPIENTRYP StencilOpSeparate)(GLenum face, GLenum sfail, GLenum zfail, GLenum zpass); /* 513 */
+ void (GLAPIENTRYP Uniform1f)(GLint location, GLfloat v0); /* 514 */
+ void (GLAPIENTRYP Uniform1fv)(GLint location, GLsizei count, const GLfloat * value); /* 515 */
+ void (GLAPIENTRYP Uniform1i)(GLint location, GLint v0); /* 516 */
+ void (GLAPIENTRYP Uniform1iv)(GLint location, GLsizei count, const GLint * value); /* 517 */
+ void (GLAPIENTRYP Uniform2f)(GLint location, GLfloat v0, GLfloat v1); /* 518 */
+ void (GLAPIENTRYP Uniform2fv)(GLint location, GLsizei count, const GLfloat * value); /* 519 */
+ void (GLAPIENTRYP Uniform2i)(GLint location, GLint v0, GLint v1); /* 520 */
+ void (GLAPIENTRYP Uniform2iv)(GLint location, GLsizei count, const GLint * value); /* 521 */
+ void (GLAPIENTRYP Uniform3f)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); /* 522 */
+ void (GLAPIENTRYP Uniform3fv)(GLint location, GLsizei count, const GLfloat * value); /* 523 */
+ void (GLAPIENTRYP Uniform3i)(GLint location, GLint v0, GLint v1, GLint v2); /* 524 */
+ void (GLAPIENTRYP Uniform3iv)(GLint location, GLsizei count, const GLint * value); /* 525 */
+ void (GLAPIENTRYP Uniform4f)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); /* 526 */
+ void (GLAPIENTRYP Uniform4fv)(GLint location, GLsizei count, const GLfloat * value); /* 527 */
+ void (GLAPIENTRYP Uniform4i)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); /* 528 */
+ void (GLAPIENTRYP Uniform4iv)(GLint location, GLsizei count, const GLint * value); /* 529 */
+ void (GLAPIENTRYP UniformMatrix2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 530 */
+ void (GLAPIENTRYP UniformMatrix3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 531 */
+ void (GLAPIENTRYP UniformMatrix4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 532 */
+ void (GLAPIENTRYP UseProgram)(GLuint program); /* 533 */
+ void (GLAPIENTRYP ValidateProgram)(GLuint program); /* 534 */
+ void (GLAPIENTRYP VertexAttrib1d)(GLuint index, GLdouble x); /* 535 */
+ void (GLAPIENTRYP VertexAttrib1dv)(GLuint index, const GLdouble * v); /* 536 */
+ void (GLAPIENTRYP VertexAttrib1s)(GLuint index, GLshort x); /* 537 */
+ void (GLAPIENTRYP VertexAttrib1sv)(GLuint index, const GLshort * v); /* 538 */
+ void (GLAPIENTRYP VertexAttrib2d)(GLuint index, GLdouble x, GLdouble y); /* 539 */
+ void (GLAPIENTRYP VertexAttrib2dv)(GLuint index, const GLdouble * v); /* 540 */
+ void (GLAPIENTRYP VertexAttrib2s)(GLuint index, GLshort x, GLshort y); /* 541 */
+ void (GLAPIENTRYP VertexAttrib2sv)(GLuint index, const GLshort * v); /* 542 */
+ void (GLAPIENTRYP VertexAttrib3d)(GLuint index, GLdouble x, GLdouble y, GLdouble z); /* 543 */
+ void (GLAPIENTRYP VertexAttrib3dv)(GLuint index, const GLdouble * v); /* 544 */
+ void (GLAPIENTRYP VertexAttrib3s)(GLuint index, GLshort x, GLshort y, GLshort z); /* 545 */
+ void (GLAPIENTRYP VertexAttrib3sv)(GLuint index, const GLshort * v); /* 546 */
+ void (GLAPIENTRYP VertexAttrib4Nbv)(GLuint index, const GLbyte * v); /* 547 */
+ void (GLAPIENTRYP VertexAttrib4Niv)(GLuint index, const GLint * v); /* 548 */
+ void (GLAPIENTRYP VertexAttrib4Nsv)(GLuint index, const GLshort * v); /* 549 */
+ void (GLAPIENTRYP VertexAttrib4Nub)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); /* 550 */
+ void (GLAPIENTRYP VertexAttrib4Nubv)(GLuint index, const GLubyte * v); /* 551 */
+ void (GLAPIENTRYP VertexAttrib4Nuiv)(GLuint index, const GLuint * v); /* 552 */
+ void (GLAPIENTRYP VertexAttrib4Nusv)(GLuint index, const GLushort * v); /* 553 */
+ void (GLAPIENTRYP VertexAttrib4bv)(GLuint index, const GLbyte * v); /* 554 */
+ void (GLAPIENTRYP VertexAttrib4d)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 555 */
+ void (GLAPIENTRYP VertexAttrib4dv)(GLuint index, const GLdouble * v); /* 556 */
+ void (GLAPIENTRYP VertexAttrib4iv)(GLuint index, const GLint * v); /* 557 */
+ void (GLAPIENTRYP VertexAttrib4s)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); /* 558 */
+ void (GLAPIENTRYP VertexAttrib4sv)(GLuint index, const GLshort * v); /* 559 */
+ void (GLAPIENTRYP VertexAttrib4ubv)(GLuint index, const GLubyte * v); /* 560 */
+ void (GLAPIENTRYP VertexAttrib4uiv)(GLuint index, const GLuint * v); /* 561 */
+ void (GLAPIENTRYP VertexAttrib4usv)(GLuint index, const GLushort * v); /* 562 */
+ void (GLAPIENTRYP VertexAttribPointer)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer); /* 563 */
+ void (GLAPIENTRYP UniformMatrix2x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 564 */
+ void (GLAPIENTRYP UniformMatrix2x4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 565 */
+ void (GLAPIENTRYP UniformMatrix3x2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 566 */
+ void (GLAPIENTRYP UniformMatrix3x4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 567 */
+ void (GLAPIENTRYP UniformMatrix4x2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 568 */
+ void (GLAPIENTRYP UniformMatrix4x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value); /* 569 */
+ void (GLAPIENTRYP BeginConditionalRender)(GLuint query, GLenum mode); /* 570 */
+ void (GLAPIENTRYP BeginTransformFeedback)(GLenum mode); /* 571 */
+ void (GLAPIENTRYP BindBufferBase)(GLenum target, GLuint index, GLuint buffer); /* 572 */
+ void (GLAPIENTRYP BindBufferRange)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); /* 573 */
+ void (GLAPIENTRYP BindFragDataLocation)(GLuint program, GLuint colorNumber, const GLchar * name); /* 574 */
+ void (GLAPIENTRYP ClampColor)(GLenum target, GLenum clamp); /* 575 */
+ void (GLAPIENTRYP ClearBufferfi)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); /* 576 */
+ void (GLAPIENTRYP ClearBufferfv)(GLenum buffer, GLint drawbuffer, const GLfloat * value); /* 577 */
+ void (GLAPIENTRYP ClearBufferiv)(GLenum buffer, GLint drawbuffer, const GLint * value); /* 578 */
+ void (GLAPIENTRYP ClearBufferuiv)(GLenum buffer, GLint drawbuffer, const GLuint * value); /* 579 */
+ void (GLAPIENTRYP ColorMaski)(GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); /* 580 */
+ void (GLAPIENTRYP Disablei)(GLenum target, GLuint index); /* 581 */
+ void (GLAPIENTRYP Enablei)(GLenum target, GLuint index); /* 582 */
+ void (GLAPIENTRYP EndConditionalRender)(void); /* 583 */
+ void (GLAPIENTRYP EndTransformFeedback)(void); /* 584 */
+ void (GLAPIENTRYP GetBooleani_v)(GLenum value, GLuint index, GLboolean * data); /* 585 */
+ GLint (GLAPIENTRYP GetFragDataLocation)(GLuint program, const GLchar * name); /* 586 */
+ void (GLAPIENTRYP GetIntegeri_v)(GLenum value, GLuint index, GLint * data); /* 587 */
+ const GLubyte * (GLAPIENTRYP GetStringi)(GLenum name, GLuint index); /* 588 */
+ void (GLAPIENTRYP GetTexParameterIiv)(GLenum target, GLenum pname, GLint * params); /* 589 */
+ void (GLAPIENTRYP GetTexParameterIuiv)(GLenum target, GLenum pname, GLuint * params); /* 590 */
+ void (GLAPIENTRYP GetTransformFeedbackVarying)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name); /* 591 */
+ void (GLAPIENTRYP GetUniformuiv)(GLuint program, GLint location, GLuint * params); /* 592 */
+ void (GLAPIENTRYP GetVertexAttribIiv)(GLuint index, GLenum pname, GLint * params); /* 593 */
+ void (GLAPIENTRYP GetVertexAttribIuiv)(GLuint index, GLenum pname, GLuint * params); /* 594 */
+ GLboolean (GLAPIENTRYP IsEnabledi)(GLenum target, GLuint index); /* 595 */
+ void (GLAPIENTRYP TexParameterIiv)(GLenum target, GLenum pname, const GLint * params); /* 596 */
+ void (GLAPIENTRYP TexParameterIuiv)(GLenum target, GLenum pname, const GLuint * params); /* 597 */
+ void (GLAPIENTRYP TransformFeedbackVaryings)(GLuint program, GLsizei count, const GLchar * const * varyings, GLenum bufferMode); /* 598 */
+ void (GLAPIENTRYP Uniform1ui)(GLint location, GLuint x); /* 599 */
+ void (GLAPIENTRYP Uniform1uiv)(GLint location, GLsizei count, const GLuint * value); /* 600 */
+ void (GLAPIENTRYP Uniform2ui)(GLint location, GLuint x, GLuint y); /* 601 */
+ void (GLAPIENTRYP Uniform2uiv)(GLint location, GLsizei count, const GLuint * value); /* 602 */
+ void (GLAPIENTRYP Uniform3ui)(GLint location, GLuint x, GLuint y, GLuint z); /* 603 */
+ void (GLAPIENTRYP Uniform3uiv)(GLint location, GLsizei count, const GLuint * value); /* 604 */
+ void (GLAPIENTRYP Uniform4ui)(GLint location, GLuint x, GLuint y, GLuint z, GLuint w); /* 605 */
+ void (GLAPIENTRYP Uniform4uiv)(GLint location, GLsizei count, const GLuint * value); /* 606 */
+ void (GLAPIENTRYP VertexAttribI1iv)(GLuint index, const GLint * v); /* 607 */
+ void (GLAPIENTRYP VertexAttribI1uiv)(GLuint index, const GLuint * v); /* 608 */
+ void (GLAPIENTRYP VertexAttribI4bv)(GLuint index, const GLbyte * v); /* 609 */
+ void (GLAPIENTRYP VertexAttribI4sv)(GLuint index, const GLshort * v); /* 610 */
+ void (GLAPIENTRYP VertexAttribI4ubv)(GLuint index, const GLubyte * v); /* 611 */
+ void (GLAPIENTRYP VertexAttribI4usv)(GLuint index, const GLushort * v); /* 612 */
+ void (GLAPIENTRYP VertexAttribIPointer)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 613 */
+ void (GLAPIENTRYP PrimitiveRestartIndex)(GLuint index); /* 614 */
+ void (GLAPIENTRYP TexBuffer)(GLenum target, GLenum internalFormat, GLuint buffer); /* 615 */
+ void (GLAPIENTRYP FramebufferTexture)(GLenum target, GLenum attachment, GLuint texture, GLint level); /* 616 */
+ void (GLAPIENTRYP GetBufferParameteri64v)(GLenum target, GLenum pname, GLint64 * params); /* 617 */
+ void (GLAPIENTRYP GetInteger64i_v)(GLenum cap, GLuint index, GLint64 * data); /* 618 */
+ void (GLAPIENTRYP VertexAttribDivisor)(GLuint index, GLuint divisor); /* 619 */
+ void (GLAPIENTRYP MinSampleShading)(GLfloat value); /* 620 */
+ void (GLAPIENTRYP BindProgramARB)(GLenum target, GLuint program); /* 621 */
+ void (GLAPIENTRYP DeleteProgramsARB)(GLsizei n, const GLuint * programs); /* 622 */
+ void (GLAPIENTRYP GenProgramsARB)(GLsizei n, GLuint * programs); /* 623 */
+ void (GLAPIENTRYP GetProgramEnvParameterdvARB)(GLenum target, GLuint index, GLdouble * params); /* 624 */
+ void (GLAPIENTRYP GetProgramEnvParameterfvARB)(GLenum target, GLuint index, GLfloat * params); /* 625 */
+ void (GLAPIENTRYP GetProgramLocalParameterdvARB)(GLenum target, GLuint index, GLdouble * params); /* 626 */
+ void (GLAPIENTRYP GetProgramLocalParameterfvARB)(GLenum target, GLuint index, GLfloat * params); /* 627 */
+ void (GLAPIENTRYP GetProgramStringARB)(GLenum target, GLenum pname, GLvoid * string); /* 628 */
+ void (GLAPIENTRYP GetProgramivARB)(GLenum target, GLenum pname, GLint * params); /* 629 */
+ GLboolean (GLAPIENTRYP IsProgramARB)(GLuint program); /* 630 */
+ void (GLAPIENTRYP ProgramEnvParameter4dARB)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 631 */
+ void (GLAPIENTRYP ProgramEnvParameter4dvARB)(GLenum target, GLuint index, const GLdouble * params); /* 632 */
+ void (GLAPIENTRYP ProgramEnvParameter4fARB)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 633 */
+ void (GLAPIENTRYP ProgramEnvParameter4fvARB)(GLenum target, GLuint index, const GLfloat * params); /* 634 */
+ void (GLAPIENTRYP ProgramLocalParameter4dARB)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 635 */
+ void (GLAPIENTRYP ProgramLocalParameter4dvARB)(GLenum target, GLuint index, const GLdouble * params); /* 636 */
+ void (GLAPIENTRYP ProgramLocalParameter4fARB)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 637 */
+ void (GLAPIENTRYP ProgramLocalParameter4fvARB)(GLenum target, GLuint index, const GLfloat * params); /* 638 */
+ void (GLAPIENTRYP ProgramStringARB)(GLenum target, GLenum format, GLsizei len, const GLvoid * string); /* 639 */
+ void (GLAPIENTRYP VertexAttrib1fARB)(GLuint index, GLfloat x); /* 640 */
+ void (GLAPIENTRYP VertexAttrib1fvARB)(GLuint index, const GLfloat * v); /* 641 */
+ void (GLAPIENTRYP VertexAttrib2fARB)(GLuint index, GLfloat x, GLfloat y); /* 642 */
+ void (GLAPIENTRYP VertexAttrib2fvARB)(GLuint index, const GLfloat * v); /* 643 */
+ void (GLAPIENTRYP VertexAttrib3fARB)(GLuint index, GLfloat x, GLfloat y, GLfloat z); /* 644 */
+ void (GLAPIENTRYP VertexAttrib3fvARB)(GLuint index, const GLfloat * v); /* 645 */
+ void (GLAPIENTRYP VertexAttrib4fARB)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 646 */
+ void (GLAPIENTRYP VertexAttrib4fvARB)(GLuint index, const GLfloat * v); /* 647 */
+ void (GLAPIENTRYP AttachObjectARB)(GLhandleARB containerObj, GLhandleARB obj); /* 648 */
+ GLhandleARB (GLAPIENTRYP CreateProgramObjectARB)(void); /* 649 */
+ GLhandleARB (GLAPIENTRYP CreateShaderObjectARB)(GLenum shaderType); /* 650 */
+ void (GLAPIENTRYP DeleteObjectARB)(GLhandleARB obj); /* 651 */
+ void (GLAPIENTRYP DetachObjectARB)(GLhandleARB containerObj, GLhandleARB attachedObj); /* 652 */
+ void (GLAPIENTRYP GetAttachedObjectsARB)(GLhandleARB containerObj, GLsizei maxLength, GLsizei * length, GLhandleARB * infoLog); /* 653 */
+ GLhandleARB (GLAPIENTRYP GetHandleARB)(GLenum pname); /* 654 */
+ void (GLAPIENTRYP GetInfoLogARB)(GLhandleARB obj, GLsizei maxLength, GLsizei * length, GLcharARB * infoLog); /* 655 */
+ void (GLAPIENTRYP GetObjectParameterfvARB)(GLhandleARB obj, GLenum pname, GLfloat * params); /* 656 */
+ void (GLAPIENTRYP GetObjectParameterivARB)(GLhandleARB obj, GLenum pname, GLint * params); /* 657 */
+ void (GLAPIENTRYP DrawArraysInstancedARB)(GLenum mode, GLint first, GLsizei count, GLsizei primcount); /* 658 */
+ void (GLAPIENTRYP DrawElementsInstancedARB)(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei primcount); /* 659 */
+ void (GLAPIENTRYP BindFramebuffer)(GLenum target, GLuint framebuffer); /* 660 */
+ void (GLAPIENTRYP BindRenderbuffer)(GLenum target, GLuint renderbuffer); /* 661 */
+ void (GLAPIENTRYP BlitFramebuffer)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); /* 662 */
+ GLenum (GLAPIENTRYP CheckFramebufferStatus)(GLenum target); /* 663 */
+ void (GLAPIENTRYP DeleteFramebuffers)(GLsizei n, const GLuint * framebuffers); /* 664 */
+ void (GLAPIENTRYP DeleteRenderbuffers)(GLsizei n, const GLuint * renderbuffers); /* 665 */
+ void (GLAPIENTRYP FramebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); /* 666 */
+ void (GLAPIENTRYP FramebufferTexture1D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); /* 667 */
+ void (GLAPIENTRYP FramebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); /* 668 */
+ void (GLAPIENTRYP FramebufferTexture3D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); /* 669 */
+ void (GLAPIENTRYP FramebufferTextureLayer)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); /* 670 */
+ void (GLAPIENTRYP GenFramebuffers)(GLsizei n, GLuint * framebuffers); /* 671 */
+ void (GLAPIENTRYP GenRenderbuffers)(GLsizei n, GLuint * renderbuffers); /* 672 */
+ void (GLAPIENTRYP GenerateMipmap)(GLenum target); /* 673 */
+ void (GLAPIENTRYP GetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint * params); /* 674 */
+ void (GLAPIENTRYP GetRenderbufferParameteriv)(GLenum target, GLenum pname, GLint * params); /* 675 */
+ GLboolean (GLAPIENTRYP IsFramebuffer)(GLuint framebuffer); /* 676 */
+ GLboolean (GLAPIENTRYP IsRenderbuffer)(GLuint renderbuffer); /* 677 */
+ void (GLAPIENTRYP RenderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); /* 678 */
+ void (GLAPIENTRYP RenderbufferStorageMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); /* 679 */
+ void (GLAPIENTRYP FramebufferTextureFaceARB)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); /* 680 */
+ void (GLAPIENTRYP FlushMappedBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length); /* 681 */
+ GLvoid * (GLAPIENTRYP MapBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); /* 682 */
+ void (GLAPIENTRYP BindVertexArray)(GLuint array); /* 683 */
+ void (GLAPIENTRYP DeleteVertexArrays)(GLsizei n, const GLuint * arrays); /* 684 */
+ void (GLAPIENTRYP GenVertexArrays)(GLsizei n, GLuint * arrays); /* 685 */
+ GLboolean (GLAPIENTRYP IsVertexArray)(GLuint array); /* 686 */
+ void (GLAPIENTRYP GetActiveUniformBlockName)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformBlockName); /* 687 */
+ void (GLAPIENTRYP GetActiveUniformBlockiv)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint * params); /* 688 */
+ void (GLAPIENTRYP GetActiveUniformName)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformName); /* 689 */
+ void (GLAPIENTRYP GetActiveUniformsiv)(GLuint program, GLsizei uniformCount, const GLuint * uniformIndices, GLenum pname, GLint * params); /* 690 */
+ GLuint (GLAPIENTRYP GetUniformBlockIndex)(GLuint program, const GLchar * uniformBlockName); /* 691 */
+ void (GLAPIENTRYP GetUniformIndices)(GLuint program, GLsizei uniformCount, const GLchar * const * uniformNames, GLuint * uniformIndices); /* 692 */
+ void (GLAPIENTRYP UniformBlockBinding)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); /* 693 */
+ void (GLAPIENTRYP CopyBufferSubData)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); /* 694 */
+ GLenum (GLAPIENTRYP ClientWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout); /* 695 */
+ void (GLAPIENTRYP DeleteSync)(GLsync sync); /* 696 */
+ GLsync (GLAPIENTRYP FenceSync)(GLenum condition, GLbitfield flags); /* 697 */
+ void (GLAPIENTRYP GetInteger64v)(GLenum pname, GLint64 * params); /* 698 */
+ void (GLAPIENTRYP GetSynciv)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values); /* 699 */
+ GLboolean (GLAPIENTRYP IsSync)(GLsync sync); /* 700 */
+ void (GLAPIENTRYP WaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout); /* 701 */
+ void (GLAPIENTRYP DrawElementsBaseVertex)(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLint basevertex); /* 702 */
+ void (GLAPIENTRYP DrawElementsInstancedBaseVertex)(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei primcount, GLint basevertex); /* 703 */
+ void (GLAPIENTRYP DrawRangeElementsBaseVertex)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices, GLint basevertex); /* 704 */
+ void (GLAPIENTRYP MultiDrawElementsBaseVertex)(GLenum mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, const GLint * basevertex); /* 705 */
+ void (GLAPIENTRYP ProvokingVertex)(GLenum mode); /* 706 */
+ void (GLAPIENTRYP GetMultisamplefv)(GLenum pname, GLuint index, GLfloat * val); /* 707 */
+ void (GLAPIENTRYP SampleMaski)(GLuint index, GLbitfield mask); /* 708 */
+ void (GLAPIENTRYP TexImage2DMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); /* 709 */
+ void (GLAPIENTRYP TexImage3DMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); /* 710 */
+ void (GLAPIENTRYP BlendEquationSeparateiARB)(GLuint buf, GLenum modeRGB, GLenum modeA); /* 711 */
+ void (GLAPIENTRYP BlendEquationiARB)(GLuint buf, GLenum mode); /* 712 */
+ void (GLAPIENTRYP BlendFuncSeparateiARB)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcA, GLenum dstA); /* 713 */
+ void (GLAPIENTRYP BlendFunciARB)(GLuint buf, GLenum src, GLenum dst); /* 714 */
+ void (GLAPIENTRYP BindFragDataLocationIndexed)(GLuint program, GLuint colorNumber, GLuint index, const GLchar * name); /* 715 */
+ GLint (GLAPIENTRYP GetFragDataIndex)(GLuint program, const GLchar * name); /* 716 */
+ void (GLAPIENTRYP BindSampler)(GLuint unit, GLuint sampler); /* 717 */
+ void (GLAPIENTRYP DeleteSamplers)(GLsizei count, const GLuint * samplers); /* 718 */
+ void (GLAPIENTRYP GenSamplers)(GLsizei count, GLuint * samplers); /* 719 */
+ void (GLAPIENTRYP GetSamplerParameterIiv)(GLuint sampler, GLenum pname, GLint * params); /* 720 */
+ void (GLAPIENTRYP GetSamplerParameterIuiv)(GLuint sampler, GLenum pname, GLuint * params); /* 721 */
+ void (GLAPIENTRYP GetSamplerParameterfv)(GLuint sampler, GLenum pname, GLfloat * params); /* 722 */
+ void (GLAPIENTRYP GetSamplerParameteriv)(GLuint sampler, GLenum pname, GLint * params); /* 723 */
+ GLboolean (GLAPIENTRYP IsSampler)(GLuint sampler); /* 724 */
+ void (GLAPIENTRYP SamplerParameterIiv)(GLuint sampler, GLenum pname, const GLint * params); /* 725 */
+ void (GLAPIENTRYP SamplerParameterIuiv)(GLuint sampler, GLenum pname, const GLuint * params); /* 726 */
+ void (GLAPIENTRYP SamplerParameterf)(GLuint sampler, GLenum pname, GLfloat param); /* 727 */
+ void (GLAPIENTRYP SamplerParameterfv)(GLuint sampler, GLenum pname, const GLfloat * params); /* 728 */
+ void (GLAPIENTRYP SamplerParameteri)(GLuint sampler, GLenum pname, GLint param); /* 729 */
+ void (GLAPIENTRYP SamplerParameteriv)(GLuint sampler, GLenum pname, const GLint * params); /* 730 */
+ void (GLAPIENTRYP GetQueryObjecti64v)(GLuint id, GLenum pname, GLint64 * params); /* 731 */
+ void (GLAPIENTRYP GetQueryObjectui64v)(GLuint id, GLenum pname, GLuint64 * params); /* 732 */
+ void (GLAPIENTRYP QueryCounter)(GLuint id, GLenum target); /* 733 */
+ void (GLAPIENTRYP ColorP3ui)(GLenum type, GLuint color); /* 734 */
+ void (GLAPIENTRYP ColorP3uiv)(GLenum type, const GLuint * color); /* 735 */
+ void (GLAPIENTRYP ColorP4ui)(GLenum type, GLuint color); /* 736 */
+ void (GLAPIENTRYP ColorP4uiv)(GLenum type, const GLuint * color); /* 737 */
+ void (GLAPIENTRYP MultiTexCoordP1ui)(GLenum texture, GLenum type, GLuint coords); /* 738 */
+ void (GLAPIENTRYP MultiTexCoordP1uiv)(GLenum texture, GLenum type, const GLuint * coords); /* 739 */
+ void (GLAPIENTRYP MultiTexCoordP2ui)(GLenum texture, GLenum type, GLuint coords); /* 740 */
+ void (GLAPIENTRYP MultiTexCoordP2uiv)(GLenum texture, GLenum type, const GLuint * coords); /* 741 */
+ void (GLAPIENTRYP MultiTexCoordP3ui)(GLenum texture, GLenum type, GLuint coords); /* 742 */
+ void (GLAPIENTRYP MultiTexCoordP3uiv)(GLenum texture, GLenum type, const GLuint * coords); /* 743 */
+ void (GLAPIENTRYP MultiTexCoordP4ui)(GLenum texture, GLenum type, GLuint coords); /* 744 */
+ void (GLAPIENTRYP MultiTexCoordP4uiv)(GLenum texture, GLenum type, const GLuint * coords); /* 745 */
+ void (GLAPIENTRYP NormalP3ui)(GLenum type, GLuint coords); /* 746 */
+ void (GLAPIENTRYP NormalP3uiv)(GLenum type, const GLuint * coords); /* 747 */
+ void (GLAPIENTRYP SecondaryColorP3ui)(GLenum type, GLuint color); /* 748 */
+ void (GLAPIENTRYP SecondaryColorP3uiv)(GLenum type, const GLuint * color); /* 749 */
+ void (GLAPIENTRYP TexCoordP1ui)(GLenum type, GLuint coords); /* 750 */
+ void (GLAPIENTRYP TexCoordP1uiv)(GLenum type, const GLuint * coords); /* 751 */
+ void (GLAPIENTRYP TexCoordP2ui)(GLenum type, GLuint coords); /* 752 */
+ void (GLAPIENTRYP TexCoordP2uiv)(GLenum type, const GLuint * coords); /* 753 */
+ void (GLAPIENTRYP TexCoordP3ui)(GLenum type, GLuint coords); /* 754 */
+ void (GLAPIENTRYP TexCoordP3uiv)(GLenum type, const GLuint * coords); /* 755 */
+ void (GLAPIENTRYP TexCoordP4ui)(GLenum type, GLuint coords); /* 756 */
+ void (GLAPIENTRYP TexCoordP4uiv)(GLenum type, const GLuint * coords); /* 757 */
+ void (GLAPIENTRYP VertexAttribP1ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value); /* 758 */
+ void (GLAPIENTRYP VertexAttribP1uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value); /* 759 */
+ void (GLAPIENTRYP VertexAttribP2ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value); /* 760 */
+ void (GLAPIENTRYP VertexAttribP2uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value); /* 761 */
+ void (GLAPIENTRYP VertexAttribP3ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value); /* 762 */
+ void (GLAPIENTRYP VertexAttribP3uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value); /* 763 */
+ void (GLAPIENTRYP VertexAttribP4ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value); /* 764 */
+ void (GLAPIENTRYP VertexAttribP4uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value); /* 765 */
+ void (GLAPIENTRYP VertexP2ui)(GLenum type, GLuint value); /* 766 */
+ void (GLAPIENTRYP VertexP2uiv)(GLenum type, const GLuint * value); /* 767 */
+ void (GLAPIENTRYP VertexP3ui)(GLenum type, GLuint value); /* 768 */
+ void (GLAPIENTRYP VertexP3uiv)(GLenum type, const GLuint * value); /* 769 */
+ void (GLAPIENTRYP VertexP4ui)(GLenum type, GLuint value); /* 770 */
+ void (GLAPIENTRYP VertexP4uiv)(GLenum type, const GLuint * value); /* 771 */
+ void (GLAPIENTRYP BindTransformFeedback)(GLenum target, GLuint id); /* 772 */
+ void (GLAPIENTRYP DeleteTransformFeedbacks)(GLsizei n, const GLuint * ids); /* 773 */
+ void (GLAPIENTRYP DrawTransformFeedback)(GLenum mode, GLuint id); /* 774 */
+ void (GLAPIENTRYP GenTransformFeedbacks)(GLsizei n, GLuint * ids); /* 775 */
+ GLboolean (GLAPIENTRYP IsTransformFeedback)(GLuint id); /* 776 */
+ void (GLAPIENTRYP PauseTransformFeedback)(void); /* 777 */
+ void (GLAPIENTRYP ResumeTransformFeedback)(void); /* 778 */
+ void (GLAPIENTRYP BeginQueryIndexed)(GLenum target, GLuint index, GLuint id); /* 779 */
+ void (GLAPIENTRYP DrawTransformFeedbackStream)(GLenum mode, GLuint id, GLuint stream); /* 780 */
+ void (GLAPIENTRYP EndQueryIndexed)(GLenum target, GLuint index); /* 781 */
+ void (GLAPIENTRYP GetQueryIndexediv)(GLenum target, GLuint index, GLenum pname, GLint * params); /* 782 */
+ void (GLAPIENTRYP ClearDepthf)(GLclampf depth); /* 783 */
+ void (GLAPIENTRYP DepthRangef)(GLclampf zNear, GLclampf zFar); /* 784 */
+ void (GLAPIENTRYP GetShaderPrecisionFormat)(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision); /* 785 */
+ void (GLAPIENTRYP ReleaseShaderCompiler)(void); /* 786 */
+ void (GLAPIENTRYP ShaderBinary)(GLsizei n, const GLuint * shaders, GLenum binaryformat, const GLvoid * binary, GLsizei length); /* 787 */
+ void (GLAPIENTRYP GetProgramBinary)(GLuint program, GLsizei bufSize, GLsizei * length, GLenum * binaryFormat, GLvoid * binary); /* 788 */
+ void (GLAPIENTRYP ProgramBinary)(GLuint program, GLenum binaryFormat, const GLvoid * binary, GLsizei length); /* 789 */
+ void (GLAPIENTRYP ProgramParameteri)(GLuint program, GLenum pname, GLint value); /* 790 */
+ void (GLAPIENTRYP DebugMessageCallbackARB)(GLDEBUGPROCARB callback, const GLvoid * userParam); /* 791 */
+ void (GLAPIENTRYP DebugMessageControlARB)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled); /* 792 */
+ void (GLAPIENTRYP DebugMessageInsertARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLcharARB * buf); /* 793 */
+ GLuint (GLAPIENTRYP GetDebugMessageLogARB)(GLuint count, GLsizei bufsize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLcharARB * messageLog); /* 794 */
+ GLenum (GLAPIENTRYP GetGraphicsResetStatusARB)(void); /* 795 */
+ void (GLAPIENTRYP GetnColorTableARB)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid * table); /* 796 */
+ void (GLAPIENTRYP GetnCompressedTexImageARB)(GLenum target, GLint lod, GLsizei bufSize, GLvoid * img); /* 797 */
+ void (GLAPIENTRYP GetnConvolutionFilterARB)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid * image); /* 798 */
+ void (GLAPIENTRYP GetnHistogramARB)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid * values); /* 799 */
+ void (GLAPIENTRYP GetnMapdvARB)(GLenum target, GLenum query, GLsizei bufSize, GLdouble * v); /* 800 */
+ void (GLAPIENTRYP GetnMapfvARB)(GLenum target, GLenum query, GLsizei bufSize, GLfloat * v); /* 801 */
+ void (GLAPIENTRYP GetnMapivARB)(GLenum target, GLenum query, GLsizei bufSize, GLint * v); /* 802 */
+ void (GLAPIENTRYP GetnMinmaxARB)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid * values); /* 803 */
+ void (GLAPIENTRYP GetnPixelMapfvARB)(GLenum map, GLsizei bufSize, GLfloat * values); /* 804 */
+ void (GLAPIENTRYP GetnPixelMapuivARB)(GLenum map, GLsizei bufSize, GLuint * values); /* 805 */
+ void (GLAPIENTRYP GetnPixelMapusvARB)(GLenum map, GLsizei bufSize, GLushort * values); /* 806 */
+ void (GLAPIENTRYP GetnPolygonStippleARB)(GLsizei bufSize, GLubyte * pattern); /* 807 */
+ void (GLAPIENTRYP GetnSeparableFilterARB)(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, GLvoid * row, GLsizei columnBufSize, GLvoid * column, GLvoid * span); /* 808 */
+ void (GLAPIENTRYP GetnTexImageARB)(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid * img); /* 809 */
+ void (GLAPIENTRYP GetnUniformdvARB)(GLhandleARB program, GLint location, GLsizei bufSize, GLdouble * params); /* 810 */
+ void (GLAPIENTRYP GetnUniformfvARB)(GLhandleARB program, GLint location, GLsizei bufSize, GLfloat * params); /* 811 */
+ void (GLAPIENTRYP GetnUniformivARB)(GLhandleARB program, GLint location, GLsizei bufSize, GLint * params); /* 812 */
+ void (GLAPIENTRYP GetnUniformuivARB)(GLhandleARB program, GLint location, GLsizei bufSize, GLuint * params); /* 813 */
+ void (GLAPIENTRYP ReadnPixelsARB)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid * data); /* 814 */
+ void (GLAPIENTRYP DrawArraysInstancedBaseInstance)(GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance); /* 815 */
+ void (GLAPIENTRYP DrawElementsInstancedBaseInstance)(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei primcount, GLuint baseinstance); /* 816 */
+ void (GLAPIENTRYP DrawElementsInstancedBaseVertexBaseInstance)(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices, GLsizei primcount, GLint basevertex, GLuint baseinstance); /* 817 */
+ void (GLAPIENTRYP DrawTransformFeedbackInstanced)(GLenum mode, GLuint id, GLsizei primcount); /* 818 */
+ void (GLAPIENTRYP DrawTransformFeedbackStreamInstanced)(GLenum mode, GLuint id, GLuint stream, GLsizei primcount); /* 819 */
+ void (GLAPIENTRYP GetInternalformativ)(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint * params); /* 820 */
+ void (GLAPIENTRYP GetActiveAtomicCounterBufferiv)(GLuint program, GLuint bufferIndex, GLenum pname, GLint * params); /* 821 */
+ void (GLAPIENTRYP TexStorage1D)(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width); /* 822 */
+ void (GLAPIENTRYP TexStorage2D)(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height); /* 823 */
+ void (GLAPIENTRYP TexStorage3D)(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth); /* 824 */
+ void (GLAPIENTRYP TextureStorage1DEXT)(GLuint texture, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width); /* 825 */
+ void (GLAPIENTRYP TextureStorage2DEXT)(GLuint texture, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height); /* 826 */
+ void (GLAPIENTRYP TextureStorage3DEXT)(GLuint texture, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth); /* 827 */
+ void (GLAPIENTRYP BindVertexBuffer)(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); /* 828 */
+ void (GLAPIENTRYP VertexAttribBinding)(GLuint attribindex, GLuint bindingindex); /* 829 */
+ void (GLAPIENTRYP VertexAttribFormat)(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); /* 830 */
+ void (GLAPIENTRYP VertexAttribIFormat)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); /* 831 */
+ void (GLAPIENTRYP VertexAttribLFormat)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); /* 832 */
+ void (GLAPIENTRYP VertexBindingDivisor)(GLuint attribindex, GLuint divisor); /* 833 */
+ void (GLAPIENTRYP TexBufferRange)(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); /* 834 */
+ void (GLAPIENTRYP TexStorage2DMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); /* 835 */
+ void (GLAPIENTRYP TexStorage3DMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); /* 836 */
+ void (GLAPIENTRYP InvalidateBufferData)(GLuint buffer); /* 837 */
+ void (GLAPIENTRYP InvalidateBufferSubData)(GLuint buffer, GLintptr offset, GLsizeiptr length); /* 838 */
+ void (GLAPIENTRYP InvalidateFramebuffer)(GLenum target, GLsizei numAttachments, const GLenum * attachments); /* 839 */
+ void (GLAPIENTRYP InvalidateSubFramebuffer)(GLenum target, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height); /* 840 */
+ void (GLAPIENTRYP InvalidateTexImage)(GLuint texture, GLint level); /* 841 */
+ void (GLAPIENTRYP InvalidateTexSubImage)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); /* 842 */
+ void (GLAPIENTRYP PolygonOffsetEXT)(GLfloat factor, GLfloat bias); /* 843 */
+ void (GLAPIENTRYP DrawTexfOES)(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); /* 844 */
+ void (GLAPIENTRYP DrawTexfvOES)(const GLfloat * coords); /* 845 */
+ void (GLAPIENTRYP DrawTexiOES)(GLint x, GLint y, GLint z, GLint width, GLint height); /* 846 */
+ void (GLAPIENTRYP DrawTexivOES)(const GLint * coords); /* 847 */
+ void (GLAPIENTRYP DrawTexsOES)(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height); /* 848 */
+ void (GLAPIENTRYP DrawTexsvOES)(const GLshort * coords); /* 849 */
+ void (GLAPIENTRYP DrawTexxOES)(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height); /* 850 */
+ void (GLAPIENTRYP DrawTexxvOES)(const GLfixed * coords); /* 851 */
+ void (GLAPIENTRYP PointSizePointerOES)(GLenum type, GLsizei stride, const GLvoid * pointer); /* 852 */
+ GLbitfield (GLAPIENTRYP QueryMatrixxOES)(GLfixed * mantissa, GLint * exponent); /* 853 */
+ void (GLAPIENTRYP SampleMaskSGIS)(GLclampf value, GLboolean invert); /* 854 */
+ void (GLAPIENTRYP SamplePatternSGIS)(GLenum pattern); /* 855 */
+ void (GLAPIENTRYP ColorPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 856 */
+ void (GLAPIENTRYP EdgeFlagPointerEXT)(GLsizei stride, GLsizei count, const GLboolean * pointer); /* 857 */
+ void (GLAPIENTRYP IndexPointerEXT)(GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 858 */
+ void (GLAPIENTRYP NormalPointerEXT)(GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 859 */
+ void (GLAPIENTRYP TexCoordPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 860 */
+ void (GLAPIENTRYP VertexPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 861 */
+ void (GLAPIENTRYP DiscardFramebufferEXT)(GLenum target, GLsizei numAttachments, const GLenum * attachments); /* 862 */
+ void (GLAPIENTRYP LockArraysEXT)(GLint first, GLsizei count); /* 863 */
+ void (GLAPIENTRYP UnlockArraysEXT)(void); /* 864 */
+ void (GLAPIENTRYP DebugMessageCallback)(GLDEBUGPROC callback, const GLvoid * userParam); /* 865 */
+ void (GLAPIENTRYP DebugMessageControl)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled); /* 866 */
+ void (GLAPIENTRYP DebugMessageInsert)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf); /* 867 */
+ GLuint (GLAPIENTRYP GetDebugMessageLog)(GLuint count, GLsizei bufsize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog); /* 868 */
+ void (GLAPIENTRYP GetObjectLabel)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label); /* 869 */
+ void (GLAPIENTRYP GetObjectPtrLabel)(const GLvoid * ptr, GLsizei bufSize, GLsizei * length, GLchar * label); /* 870 */
+ void (GLAPIENTRYP ObjectLabel)(GLenum identifier, GLuint name, GLsizei length, const GLchar * label); /* 871 */
+ void (GLAPIENTRYP ObjectPtrLabel)(const GLvoid * ptr, GLsizei length, const GLchar * label); /* 872 */
+ void (GLAPIENTRYP PopDebugGroup)(void); /* 873 */
+ void (GLAPIENTRYP PushDebugGroup)(GLenum source, GLuint id, GLsizei length, const GLchar * message); /* 874 */
+ void (GLAPIENTRYP SecondaryColor3fEXT)(GLfloat red, GLfloat green, GLfloat blue); /* 875 */
+ void (GLAPIENTRYP SecondaryColor3fvEXT)(const GLfloat * v); /* 876 */
+ void (GLAPIENTRYP MultiDrawElementsEXT)(GLenum mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount); /* 877 */
+ void (GLAPIENTRYP FogCoordfEXT)(GLfloat coord); /* 878 */
+ void (GLAPIENTRYP FogCoordfvEXT)(const GLfloat * coord); /* 879 */
+ void (GLAPIENTRYP ResizeBuffersMESA)(void); /* 880 */
+ void (GLAPIENTRYP WindowPos4dMESA)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 881 */
+ void (GLAPIENTRYP WindowPos4dvMESA)(const GLdouble * v); /* 882 */
+ void (GLAPIENTRYP WindowPos4fMESA)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 883 */
+ void (GLAPIENTRYP WindowPos4fvMESA)(const GLfloat * v); /* 884 */
+ void (GLAPIENTRYP WindowPos4iMESA)(GLint x, GLint y, GLint z, GLint w); /* 885 */
+ void (GLAPIENTRYP WindowPos4ivMESA)(const GLint * v); /* 886 */
+ void (GLAPIENTRYP WindowPos4sMESA)(GLshort x, GLshort y, GLshort z, GLshort w); /* 887 */
+ void (GLAPIENTRYP WindowPos4svMESA)(const GLshort * v); /* 888 */
+ void (GLAPIENTRYP MultiModeDrawArraysIBM)(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride); /* 889 */
+ void (GLAPIENTRYP MultiModeDrawElementsIBM)(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride); /* 890 */
+ GLboolean (GLAPIENTRYP AreProgramsResidentNV)(GLsizei n, const GLuint * ids, GLboolean * residences); /* 891 */
+ void (GLAPIENTRYP ExecuteProgramNV)(GLenum target, GLuint id, const GLfloat * params); /* 892 */
+ void (GLAPIENTRYP GetProgramParameterdvNV)(GLenum target, GLuint index, GLenum pname, GLdouble * params); /* 893 */
+ void (GLAPIENTRYP GetProgramParameterfvNV)(GLenum target, GLuint index, GLenum pname, GLfloat * params); /* 894 */
+ void (GLAPIENTRYP GetProgramStringNV)(GLuint id, GLenum pname, GLubyte * program); /* 895 */
+ void (GLAPIENTRYP GetProgramivNV)(GLuint id, GLenum pname, GLint * params); /* 896 */
+ void (GLAPIENTRYP GetTrackMatrixivNV)(GLenum target, GLuint address, GLenum pname, GLint * params); /* 897 */
+ void (GLAPIENTRYP GetVertexAttribdvNV)(GLuint index, GLenum pname, GLdouble * params); /* 898 */
+ void (GLAPIENTRYP GetVertexAttribfvNV)(GLuint index, GLenum pname, GLfloat * params); /* 899 */
+ void (GLAPIENTRYP GetVertexAttribivNV)(GLuint index, GLenum pname, GLint * params); /* 900 */
+ void (GLAPIENTRYP LoadProgramNV)(GLenum target, GLuint id, GLsizei len, const GLubyte * program); /* 901 */
+ void (GLAPIENTRYP ProgramParameters4dvNV)(GLenum target, GLuint index, GLsizei num, const GLdouble * params); /* 902 */
+ void (GLAPIENTRYP ProgramParameters4fvNV)(GLenum target, GLuint index, GLsizei num, const GLfloat * params); /* 903 */
+ void (GLAPIENTRYP RequestResidentProgramsNV)(GLsizei n, const GLuint * ids); /* 904 */
+ void (GLAPIENTRYP TrackMatrixNV)(GLenum target, GLuint address, GLenum matrix, GLenum transform); /* 905 */
+ void (GLAPIENTRYP VertexAttrib1dNV)(GLuint index, GLdouble x); /* 906 */
+ void (GLAPIENTRYP VertexAttrib1dvNV)(GLuint index, const GLdouble * v); /* 907 */
+ void (GLAPIENTRYP VertexAttrib1fNV)(GLuint index, GLfloat x); /* 908 */
+ void (GLAPIENTRYP VertexAttrib1fvNV)(GLuint index, const GLfloat * v); /* 909 */
+ void (GLAPIENTRYP VertexAttrib1sNV)(GLuint index, GLshort x); /* 910 */
+ void (GLAPIENTRYP VertexAttrib1svNV)(GLuint index, const GLshort * v); /* 911 */
+ void (GLAPIENTRYP VertexAttrib2dNV)(GLuint index, GLdouble x, GLdouble y); /* 912 */
+ void (GLAPIENTRYP VertexAttrib2dvNV)(GLuint index, const GLdouble * v); /* 913 */
+ void (GLAPIENTRYP VertexAttrib2fNV)(GLuint index, GLfloat x, GLfloat y); /* 914 */
+ void (GLAPIENTRYP VertexAttrib2fvNV)(GLuint index, const GLfloat * v); /* 915 */
+ void (GLAPIENTRYP VertexAttrib2sNV)(GLuint index, GLshort x, GLshort y); /* 916 */
+ void (GLAPIENTRYP VertexAttrib2svNV)(GLuint index, const GLshort * v); /* 917 */
+ void (GLAPIENTRYP VertexAttrib3dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z); /* 918 */
+ void (GLAPIENTRYP VertexAttrib3dvNV)(GLuint index, const GLdouble * v); /* 919 */
+ void (GLAPIENTRYP VertexAttrib3fNV)(GLuint index, GLfloat x, GLfloat y, GLfloat z); /* 920 */
+ void (GLAPIENTRYP VertexAttrib3fvNV)(GLuint index, const GLfloat * v); /* 921 */
+ void (GLAPIENTRYP VertexAttrib3sNV)(GLuint index, GLshort x, GLshort y, GLshort z); /* 922 */
+ void (GLAPIENTRYP VertexAttrib3svNV)(GLuint index, const GLshort * v); /* 923 */
+ void (GLAPIENTRYP VertexAttrib4dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 924 */
+ void (GLAPIENTRYP VertexAttrib4dvNV)(GLuint index, const GLdouble * v); /* 925 */
+ void (GLAPIENTRYP VertexAttrib4fNV)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 926 */
+ void (GLAPIENTRYP VertexAttrib4fvNV)(GLuint index, const GLfloat * v); /* 927 */
+ void (GLAPIENTRYP VertexAttrib4sNV)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); /* 928 */
+ void (GLAPIENTRYP VertexAttrib4svNV)(GLuint index, const GLshort * v); /* 929 */
+ void (GLAPIENTRYP VertexAttrib4ubNV)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); /* 930 */
+ void (GLAPIENTRYP VertexAttrib4ubvNV)(GLuint index, const GLubyte * v); /* 931 */
+ void (GLAPIENTRYP VertexAttribPointerNV)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 932 */
+ void (GLAPIENTRYP VertexAttribs1dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 933 */
+ void (GLAPIENTRYP VertexAttribs1fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 934 */
+ void (GLAPIENTRYP VertexAttribs1svNV)(GLuint index, GLsizei n, const GLshort * v); /* 935 */
+ void (GLAPIENTRYP VertexAttribs2dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 936 */
+ void (GLAPIENTRYP VertexAttribs2fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 937 */
+ void (GLAPIENTRYP VertexAttribs2svNV)(GLuint index, GLsizei n, const GLshort * v); /* 938 */
+ void (GLAPIENTRYP VertexAttribs3dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 939 */
+ void (GLAPIENTRYP VertexAttribs3fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 940 */
+ void (GLAPIENTRYP VertexAttribs3svNV)(GLuint index, GLsizei n, const GLshort * v); /* 941 */
+ void (GLAPIENTRYP VertexAttribs4dvNV)(GLuint index, GLsizei n, const GLdouble * v); /* 942 */
+ void (GLAPIENTRYP VertexAttribs4fvNV)(GLuint index, GLsizei n, const GLfloat * v); /* 943 */
+ void (GLAPIENTRYP VertexAttribs4svNV)(GLuint index, GLsizei n, const GLshort * v); /* 944 */
+ void (GLAPIENTRYP VertexAttribs4ubvNV)(GLuint index, GLsizei n, const GLubyte * v); /* 945 */
+ void (GLAPIENTRYP GetTexBumpParameterfvATI)(GLenum pname, GLfloat * param); /* 946 */
+ void (GLAPIENTRYP GetTexBumpParameterivATI)(GLenum pname, GLint * param); /* 947 */
+ void (GLAPIENTRYP TexBumpParameterfvATI)(GLenum pname, const GLfloat * param); /* 948 */
+ void (GLAPIENTRYP TexBumpParameterivATI)(GLenum pname, const GLint * param); /* 949 */
+ void (GLAPIENTRYP AlphaFragmentOp1ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); /* 950 */
+ void (GLAPIENTRYP AlphaFragmentOp2ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); /* 951 */
+ void (GLAPIENTRYP AlphaFragmentOp3ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); /* 952 */
+ void (GLAPIENTRYP BeginFragmentShaderATI)(void); /* 953 */
+ void (GLAPIENTRYP BindFragmentShaderATI)(GLuint id); /* 954 */
+ void (GLAPIENTRYP ColorFragmentOp1ATI)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); /* 955 */
+ void (GLAPIENTRYP ColorFragmentOp2ATI)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); /* 956 */
+ void (GLAPIENTRYP ColorFragmentOp3ATI)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); /* 957 */
+ void (GLAPIENTRYP DeleteFragmentShaderATI)(GLuint id); /* 958 */
+ void (GLAPIENTRYP EndFragmentShaderATI)(void); /* 959 */
+ GLuint (GLAPIENTRYP GenFragmentShadersATI)(GLuint range); /* 960 */
+ void (GLAPIENTRYP PassTexCoordATI)(GLuint dst, GLuint coord, GLenum swizzle); /* 961 */
+ void (GLAPIENTRYP SampleMapATI)(GLuint dst, GLuint interp, GLenum swizzle); /* 962 */
+ void (GLAPIENTRYP SetFragmentShaderConstantATI)(GLuint dst, const GLfloat * value); /* 963 */
+ void (GLAPIENTRYP ActiveStencilFaceEXT)(GLenum face); /* 964 */
+ void (GLAPIENTRYP BindVertexArrayAPPLE)(GLuint array); /* 965 */
+ void (GLAPIENTRYP GenVertexArraysAPPLE)(GLsizei n, GLuint * arrays); /* 966 */
+ void (GLAPIENTRYP GetProgramNamedParameterdvNV)(GLuint id, GLsizei len, const GLubyte * name, GLdouble * params); /* 967 */
+ void (GLAPIENTRYP GetProgramNamedParameterfvNV)(GLuint id, GLsizei len, const GLubyte * name, GLfloat * params); /* 968 */
+ void (GLAPIENTRYP ProgramNamedParameter4dNV)(GLuint id, GLsizei len, const GLubyte * name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 969 */
+ void (GLAPIENTRYP ProgramNamedParameter4dvNV)(GLuint id, GLsizei len, const GLubyte * name, const GLdouble * v); /* 970 */
+ void (GLAPIENTRYP ProgramNamedParameter4fNV)(GLuint id, GLsizei len, const GLubyte * name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 971 */
+ void (GLAPIENTRYP ProgramNamedParameter4fvNV)(GLuint id, GLsizei len, const GLubyte * name, const GLfloat * v); /* 972 */
+ void (GLAPIENTRYP PrimitiveRestartNV)(void); /* 973 */
+ void (GLAPIENTRYP GetTexGenxvOES)(GLenum coord, GLenum pname, GLfixed * params); /* 974 */
+ void (GLAPIENTRYP TexGenxOES)(GLenum coord, GLenum pname, GLint param); /* 975 */
+ void (GLAPIENTRYP TexGenxvOES)(GLenum coord, GLenum pname, const GLfixed * params); /* 976 */
+ void (GLAPIENTRYP DepthBoundsEXT)(GLclampd zmin, GLclampd zmax); /* 977 */
+ void (GLAPIENTRYP BindFramebufferEXT)(GLenum target, GLuint framebuffer); /* 978 */
+ void (GLAPIENTRYP BindRenderbufferEXT)(GLenum target, GLuint renderbuffer); /* 979 */
+ void (GLAPIENTRYP BufferParameteriAPPLE)(GLenum target, GLenum pname, GLint param); /* 980 */
+ void (GLAPIENTRYP FlushMappedBufferRangeAPPLE)(GLenum target, GLintptr offset, GLsizeiptr size); /* 981 */
+ void (GLAPIENTRYP VertexAttribI1iEXT)(GLuint index, GLint x); /* 982 */
+ void (GLAPIENTRYP VertexAttribI1uiEXT)(GLuint index, GLuint x); /* 983 */
+ void (GLAPIENTRYP VertexAttribI2iEXT)(GLuint index, GLint x, GLint y); /* 984 */
+ void (GLAPIENTRYP VertexAttribI2ivEXT)(GLuint index, const GLint * v); /* 985 */
+ void (GLAPIENTRYP VertexAttribI2uiEXT)(GLuint index, GLuint x, GLuint y); /* 986 */
+ void (GLAPIENTRYP VertexAttribI2uivEXT)(GLuint index, const GLuint * v); /* 987 */
+ void (GLAPIENTRYP VertexAttribI3iEXT)(GLuint index, GLint x, GLint y, GLint z); /* 988 */
+ void (GLAPIENTRYP VertexAttribI3ivEXT)(GLuint index, const GLint * v); /* 989 */
+ void (GLAPIENTRYP VertexAttribI3uiEXT)(GLuint index, GLuint x, GLuint y, GLuint z); /* 990 */
+ void (GLAPIENTRYP VertexAttribI3uivEXT)(GLuint index, const GLuint * v); /* 991 */
+ void (GLAPIENTRYP VertexAttribI4iEXT)(GLuint index, GLint x, GLint y, GLint z, GLint w); /* 992 */
+ void (GLAPIENTRYP VertexAttribI4ivEXT)(GLuint index, const GLint * v); /* 993 */
+ void (GLAPIENTRYP VertexAttribI4uiEXT)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); /* 994 */
+ void (GLAPIENTRYP VertexAttribI4uivEXT)(GLuint index, const GLuint * v); /* 995 */
+ void (GLAPIENTRYP ClearColorIiEXT)(GLint r, GLint g, GLint b, GLint a); /* 996 */
+ void (GLAPIENTRYP ClearColorIuiEXT)(GLuint r, GLuint g, GLuint b, GLuint a); /* 997 */
+ void (GLAPIENTRYP BindBufferOffsetEXT)(GLenum target, GLuint index, GLuint buffer, GLintptr offset); /* 998 */
+ void (GLAPIENTRYP BeginPerfMonitorAMD)(GLuint monitor); /* 999 */
+ void (GLAPIENTRYP DeletePerfMonitorsAMD)(GLsizei n, GLuint * monitors); /* 1000 */
+ void (GLAPIENTRYP EndPerfMonitorAMD)(GLuint monitor); /* 1001 */
+ void (GLAPIENTRYP GenPerfMonitorsAMD)(GLsizei n, GLuint * monitors); /* 1002 */
+ void (GLAPIENTRYP GetPerfMonitorCounterDataAMD)(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint * data, GLint * bytesWritten); /* 1003 */
+ void (GLAPIENTRYP GetPerfMonitorCounterInfoAMD)(GLuint group, GLuint counter, GLenum pname, GLvoid * data); /* 1004 */
+ void (GLAPIENTRYP GetPerfMonitorCounterStringAMD)(GLuint group, GLuint counter, GLsizei bufSize, GLsizei * length, GLchar * counterString); /* 1005 */
+ void (GLAPIENTRYP GetPerfMonitorCountersAMD)(GLuint group, GLint * numCounters, GLint * maxActiveCounters, GLsizei countersSize, GLuint * counters); /* 1006 */
+ void (GLAPIENTRYP GetPerfMonitorGroupStringAMD)(GLuint group, GLsizei bufSize, GLsizei * length, GLchar * groupString); /* 1007 */
+ void (GLAPIENTRYP GetPerfMonitorGroupsAMD)(GLint * numGroups, GLsizei groupsSize, GLuint * groups); /* 1008 */
+ void (GLAPIENTRYP SelectPerfMonitorCountersAMD)(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint * counterList); /* 1009 */
+ void (GLAPIENTRYP GetObjectParameterivAPPLE)(GLenum objectType, GLuint name, GLenum pname, GLint * value); /* 1010 */
+ GLenum (GLAPIENTRYP ObjectPurgeableAPPLE)(GLenum objectType, GLuint name, GLenum option); /* 1011 */
+ GLenum (GLAPIENTRYP ObjectUnpurgeableAPPLE)(GLenum objectType, GLuint name, GLenum option); /* 1012 */
+ void (GLAPIENTRYP ActiveProgramEXT)(GLuint program); /* 1013 */
+ GLuint (GLAPIENTRYP CreateShaderProgramEXT)(GLenum type, const GLchar * string); /* 1014 */
+ void (GLAPIENTRYP UseShaderProgramEXT)(GLenum type, GLuint program); /* 1015 */
+ void (GLAPIENTRYP TextureBarrierNV)(void); /* 1016 */
+ void (GLAPIENTRYP VDPAUFiniNV)(void); /* 1017 */
+ void (GLAPIENTRYP VDPAUGetSurfaceivNV)(GLintptr surface, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values); /* 1018 */
+ void (GLAPIENTRYP VDPAUInitNV)(const GLvoid * vdpDevice, const GLvoid * getProcAddress); /* 1019 */
+ void (GLAPIENTRYP VDPAUIsSurfaceNV)(GLintptr surface); /* 1020 */
+ void (GLAPIENTRYP VDPAUMapSurfacesNV)(GLsizei numSurfaces, const GLintptr * surfaces); /* 1021 */
+ GLintptr (GLAPIENTRYP VDPAURegisterOutputSurfaceNV)(const GLvoid * vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint * textureNames); /* 1022 */
+ GLintptr (GLAPIENTRYP VDPAURegisterVideoSurfaceNV)(const GLvoid * vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint * textureNames); /* 1023 */
+ void (GLAPIENTRYP VDPAUSurfaceAccessNV)(GLintptr surface, GLenum access); /* 1024 */
+ void (GLAPIENTRYP VDPAUUnmapSurfacesNV)(GLsizei numSurfaces, const GLintptr * surfaces); /* 1025 */
+ void (GLAPIENTRYP VDPAUUnregisterSurfaceNV)(GLintptr surface); /* 1026 */
+ void (GLAPIENTRYP StencilFuncSeparateATI)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); /* 1027 */
+ void (GLAPIENTRYP ProgramEnvParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 1028 */
+ void (GLAPIENTRYP ProgramLocalParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params); /* 1029 */
+ void (GLAPIENTRYP EGLImageTargetRenderbufferStorageOES)(GLenum target, GLvoid * writeOffset); /* 1030 */
+ void (GLAPIENTRYP EGLImageTargetTexture2DOES)(GLenum target, GLvoid * writeOffset); /* 1031 */
+ void (GLAPIENTRYP AlphaFuncx)(GLenum func, GLclampx ref); /* 1032 */
+ void (GLAPIENTRYP ClearColorx)(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha); /* 1033 */
+ void (GLAPIENTRYP ClearDepthx)(GLclampx depth); /* 1034 */
+ void (GLAPIENTRYP Color4x)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); /* 1035 */
+ void (GLAPIENTRYP DepthRangex)(GLclampx zNear, GLclampx zFar); /* 1036 */
+ void (GLAPIENTRYP Fogx)(GLenum pname, GLfixed param); /* 1037 */
+ void (GLAPIENTRYP Fogxv)(GLenum pname, const GLfixed * params); /* 1038 */
+ void (GLAPIENTRYP Frustumf)(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); /* 1039 */
+ void (GLAPIENTRYP Frustumx)(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); /* 1040 */
+ void (GLAPIENTRYP LightModelx)(GLenum pname, GLfixed param); /* 1041 */
+ void (GLAPIENTRYP LightModelxv)(GLenum pname, const GLfixed * params); /* 1042 */
+ void (GLAPIENTRYP Lightx)(GLenum light, GLenum pname, GLfixed param); /* 1043 */
+ void (GLAPIENTRYP Lightxv)(GLenum light, GLenum pname, const GLfixed * params); /* 1044 */
+ void (GLAPIENTRYP LineWidthx)(GLfixed width); /* 1045 */
+ void (GLAPIENTRYP LoadMatrixx)(const GLfixed * m); /* 1046 */
+ void (GLAPIENTRYP Materialx)(GLenum face, GLenum pname, GLfixed param); /* 1047 */
+ void (GLAPIENTRYP Materialxv)(GLenum face, GLenum pname, const GLfixed * params); /* 1048 */
+ void (GLAPIENTRYP MultMatrixx)(const GLfixed * m); /* 1049 */
+ void (GLAPIENTRYP MultiTexCoord4x)(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q); /* 1050 */
+ void (GLAPIENTRYP Normal3x)(GLfixed nx, GLfixed ny, GLfixed nz); /* 1051 */
+ void (GLAPIENTRYP Orthof)(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); /* 1052 */
+ void (GLAPIENTRYP Orthox)(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); /* 1053 */
+ void (GLAPIENTRYP PointSizex)(GLfixed size); /* 1054 */
+ void (GLAPIENTRYP PolygonOffsetx)(GLfixed factor, GLfixed units); /* 1055 */
+ void (GLAPIENTRYP Rotatex)(GLfixed angle, GLfixed x, GLfixed y, GLfixed z); /* 1056 */
+ void (GLAPIENTRYP SampleCoveragex)(GLclampx value, GLboolean invert); /* 1057 */
+ void (GLAPIENTRYP Scalex)(GLfixed x, GLfixed y, GLfixed z); /* 1058 */
+ void (GLAPIENTRYP TexEnvx)(GLenum target, GLenum pname, GLfixed param); /* 1059 */
+ void (GLAPIENTRYP TexEnvxv)(GLenum target, GLenum pname, const GLfixed * params); /* 1060 */
+ void (GLAPIENTRYP TexParameterx)(GLenum target, GLenum pname, GLfixed param); /* 1061 */
+ void (GLAPIENTRYP Translatex)(GLfixed x, GLfixed y, GLfixed z); /* 1062 */
+ void (GLAPIENTRYP ClipPlanef)(GLenum plane, const GLfloat * equation); /* 1063 */
+ void (GLAPIENTRYP ClipPlanex)(GLenum plane, const GLfixed * equation); /* 1064 */
+ void (GLAPIENTRYP GetClipPlanef)(GLenum plane, GLfloat * equation); /* 1065 */
+ void (GLAPIENTRYP GetClipPlanex)(GLenum plane, GLfixed * equation); /* 1066 */
+ void (GLAPIENTRYP GetFixedv)(GLenum pname, GLfixed * params); /* 1067 */
+ void (GLAPIENTRYP GetLightxv)(GLenum light, GLenum pname, GLfixed * params); /* 1068 */
+ void (GLAPIENTRYP GetMaterialxv)(GLenum face, GLenum pname, GLfixed * params); /* 1069 */
+ void (GLAPIENTRYP GetTexEnvxv)(GLenum target, GLenum pname, GLfixed * params); /* 1070 */
+ void (GLAPIENTRYP GetTexParameterxv)(GLenum target, GLenum pname, GLfixed * params); /* 1071 */
+ void (GLAPIENTRYP PointParameterx)(GLenum pname, GLfixed param); /* 1072 */
+ void (GLAPIENTRYP PointParameterxv)(GLenum pname, const GLfixed * params); /* 1073 */
+ void (GLAPIENTRYP TexParameterxv)(GLenum target, GLenum pname, const GLfixed * params); /* 1074 */
+#endif /* !defined HAVE_SHARED_GLAPI */
+};
+
+#endif /* !defined( _GLAPI_TABLE_H_ ) */
diff --git a/xorg-server/glx/glheader.h b/xorg-server/glx/glheader.h
new file mode 100644
index 000000000..cb8d6922a
--- /dev/null
+++ b/xorg-server/glx/glheader.h
@@ -0,0 +1,38 @@
+#ifndef __GLHEADER_H__
+#define __GLHEADER_H__
+
+#define STDC_HEADERS 1
+
+#include <X11/Xwinsock.h>
+#include <X11/Xwindows.h>
+#include <assert.h>
+#define strcasecmp _stricmp
+
+#undef MINSHORT
+#undef MAXSHORT
+
+#define MINSHORT -32768
+#define MAXSHORT 32767
+
+#ifndef PUBLIC
+#define PUBLIC
+#endif
+
+#define GL_GLEXT_PROTOTYPES
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * GL_FIXED is defined in glext.h version 64 but these typedefs aren't (yet).
+ */
+typedef int GLfixed;
+typedef int GLclampx;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/xorg-server/glx/glprocs.h b/xorg-server/glx/glprocs.h
new file mode 100644
index 000000000..933a3b09c
--- /dev/null
+++ b/xorg-server/glx/glprocs.h
@@ -0,0 +1,3309 @@
+/* DO NOT EDIT - This file generated automatically by gl_procs.py (from Mesa) script */
+
+/*
+ * Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
+ * (C) Copyright IBM Corporation 2004, 2006
+ * 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
+ * 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
+ * BRIAN PAUL, IBM,
+ * AND/OR THEIR 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.
+ */
+
+
+/* This file is only included by glapi.c and is used for
+ * the GetProcAddress() function
+ */
+
+typedef struct {
+ GLint Name_offset;
+#if defined(NEED_FUNCTION_POINTER) || defined(GLX_INDIRECT_RENDERING)
+ _glapi_proc Address;
+#endif
+ GLuint Offset;
+} glprocs_table_t;
+
+#if !defined(NEED_FUNCTION_POINTER) && !defined(GLX_INDIRECT_RENDERING)
+# define NAME_FUNC_OFFSET(n,f1,f2,f3,o) { n , o }
+#elif defined(NEED_FUNCTION_POINTER) && !defined(GLX_INDIRECT_RENDERING)
+# define NAME_FUNC_OFFSET(n,f1,f2,f3,o) { n , (_glapi_proc) f1 , o }
+#elif defined(NEED_FUNCTION_POINTER) && defined(GLX_INDIRECT_RENDERING)
+# define NAME_FUNC_OFFSET(n,f1,f2,f3,o) { n , (_glapi_proc) f2 , o }
+#elif !defined(NEED_FUNCTION_POINTER) && defined(GLX_INDIRECT_RENDERING)
+# define NAME_FUNC_OFFSET(n,f1,f2,f3,o) { n , (_glapi_proc) f3 , o }
+#endif
+
+
+
+static const char gl_string_table[] =
+ "glNewList\0"
+ "glEndList\0"
+ "glCallList\0"
+ "glCallLists\0"
+ "glDeleteLists\0"
+ "glGenLists\0"
+ "glListBase\0"
+ "glBegin\0"
+ "glBitmap\0"
+ "glColor3b\0"
+ "glColor3bv\0"
+ "glColor3d\0"
+ "glColor3dv\0"
+ "glColor3f\0"
+ "glColor3fv\0"
+ "glColor3i\0"
+ "glColor3iv\0"
+ "glColor3s\0"
+ "glColor3sv\0"
+ "glColor3ub\0"
+ "glColor3ubv\0"
+ "glColor3ui\0"
+ "glColor3uiv\0"
+ "glColor3us\0"
+ "glColor3usv\0"
+ "glColor4b\0"
+ "glColor4bv\0"
+ "glColor4d\0"
+ "glColor4dv\0"
+ "glColor4f\0"
+ "glColor4fv\0"
+ "glColor4i\0"
+ "glColor4iv\0"
+ "glColor4s\0"
+ "glColor4sv\0"
+ "glColor4ub\0"
+ "glColor4ubv\0"
+ "glColor4ui\0"
+ "glColor4uiv\0"
+ "glColor4us\0"
+ "glColor4usv\0"
+ "glEdgeFlag\0"
+ "glEdgeFlagv\0"
+ "glEnd\0"
+ "glIndexd\0"
+ "glIndexdv\0"
+ "glIndexf\0"
+ "glIndexfv\0"
+ "glIndexi\0"
+ "glIndexiv\0"
+ "glIndexs\0"
+ "glIndexsv\0"
+ "glNormal3b\0"
+ "glNormal3bv\0"
+ "glNormal3d\0"
+ "glNormal3dv\0"
+ "glNormal3f\0"
+ "glNormal3fv\0"
+ "glNormal3i\0"
+ "glNormal3iv\0"
+ "glNormal3s\0"
+ "glNormal3sv\0"
+ "glRasterPos2d\0"
+ "glRasterPos2dv\0"
+ "glRasterPos2f\0"
+ "glRasterPos2fv\0"
+ "glRasterPos2i\0"
+ "glRasterPos2iv\0"
+ "glRasterPos2s\0"
+ "glRasterPos2sv\0"
+ "glRasterPos3d\0"
+ "glRasterPos3dv\0"
+ "glRasterPos3f\0"
+ "glRasterPos3fv\0"
+ "glRasterPos3i\0"
+ "glRasterPos3iv\0"
+ "glRasterPos3s\0"
+ "glRasterPos3sv\0"
+ "glRasterPos4d\0"
+ "glRasterPos4dv\0"
+ "glRasterPos4f\0"
+ "glRasterPos4fv\0"
+ "glRasterPos4i\0"
+ "glRasterPos4iv\0"
+ "glRasterPos4s\0"
+ "glRasterPos4sv\0"
+ "glRectd\0"
+ "glRectdv\0"
+ "glRectf\0"
+ "glRectfv\0"
+ "glRecti\0"
+ "glRectiv\0"
+ "glRects\0"
+ "glRectsv\0"
+ "glTexCoord1d\0"
+ "glTexCoord1dv\0"
+ "glTexCoord1f\0"
+ "glTexCoord1fv\0"
+ "glTexCoord1i\0"
+ "glTexCoord1iv\0"
+ "glTexCoord1s\0"
+ "glTexCoord1sv\0"
+ "glTexCoord2d\0"
+ "glTexCoord2dv\0"
+ "glTexCoord2f\0"
+ "glTexCoord2fv\0"
+ "glTexCoord2i\0"
+ "glTexCoord2iv\0"
+ "glTexCoord2s\0"
+ "glTexCoord2sv\0"
+ "glTexCoord3d\0"
+ "glTexCoord3dv\0"
+ "glTexCoord3f\0"
+ "glTexCoord3fv\0"
+ "glTexCoord3i\0"
+ "glTexCoord3iv\0"
+ "glTexCoord3s\0"
+ "glTexCoord3sv\0"
+ "glTexCoord4d\0"
+ "glTexCoord4dv\0"
+ "glTexCoord4f\0"
+ "glTexCoord4fv\0"
+ "glTexCoord4i\0"
+ "glTexCoord4iv\0"
+ "glTexCoord4s\0"
+ "glTexCoord4sv\0"
+ "glVertex2d\0"
+ "glVertex2dv\0"
+ "glVertex2f\0"
+ "glVertex2fv\0"
+ "glVertex2i\0"
+ "glVertex2iv\0"
+ "glVertex2s\0"
+ "glVertex2sv\0"
+ "glVertex3d\0"
+ "glVertex3dv\0"
+ "glVertex3f\0"
+ "glVertex3fv\0"
+ "glVertex3i\0"
+ "glVertex3iv\0"
+ "glVertex3s\0"
+ "glVertex3sv\0"
+ "glVertex4d\0"
+ "glVertex4dv\0"
+ "glVertex4f\0"
+ "glVertex4fv\0"
+ "glVertex4i\0"
+ "glVertex4iv\0"
+ "glVertex4s\0"
+ "glVertex4sv\0"
+ "glClipPlane\0"
+ "glColorMaterial\0"
+ "glCullFace\0"
+ "glFogf\0"
+ "glFogfv\0"
+ "glFogi\0"
+ "glFogiv\0"
+ "glFrontFace\0"
+ "glHint\0"
+ "glLightf\0"
+ "glLightfv\0"
+ "glLighti\0"
+ "glLightiv\0"
+ "glLightModelf\0"
+ "glLightModelfv\0"
+ "glLightModeli\0"
+ "glLightModeliv\0"
+ "glLineStipple\0"
+ "glLineWidth\0"
+ "glMaterialf\0"
+ "glMaterialfv\0"
+ "glMateriali\0"
+ "glMaterialiv\0"
+ "glPointSize\0"
+ "glPolygonMode\0"
+ "glPolygonStipple\0"
+ "glScissor\0"
+ "glShadeModel\0"
+ "glTexParameterf\0"
+ "glTexParameterfv\0"
+ "glTexParameteri\0"
+ "glTexParameteriv\0"
+ "glTexImage1D\0"
+ "glTexImage2D\0"
+ "glTexEnvf\0"
+ "glTexEnvfv\0"
+ "glTexEnvi\0"
+ "glTexEnviv\0"
+ "glTexGend\0"
+ "glTexGendv\0"
+ "glTexGenf\0"
+ "glTexGenfv\0"
+ "glTexGeni\0"
+ "glTexGeniv\0"
+ "glFeedbackBuffer\0"
+ "glSelectBuffer\0"
+ "glRenderMode\0"
+ "glInitNames\0"
+ "glLoadName\0"
+ "glPassThrough\0"
+ "glPopName\0"
+ "glPushName\0"
+ "glDrawBuffer\0"
+ "glClear\0"
+ "glClearAccum\0"
+ "glClearIndex\0"
+ "glClearColor\0"
+ "glClearStencil\0"
+ "glClearDepth\0"
+ "glStencilMask\0"
+ "glColorMask\0"
+ "glDepthMask\0"
+ "glIndexMask\0"
+ "glAccum\0"
+ "glDisable\0"
+ "glEnable\0"
+ "glFinish\0"
+ "glFlush\0"
+ "glPopAttrib\0"
+ "glPushAttrib\0"
+ "glMap1d\0"
+ "glMap1f\0"
+ "glMap2d\0"
+ "glMap2f\0"
+ "glMapGrid1d\0"
+ "glMapGrid1f\0"
+ "glMapGrid2d\0"
+ "glMapGrid2f\0"
+ "glEvalCoord1d\0"
+ "glEvalCoord1dv\0"
+ "glEvalCoord1f\0"
+ "glEvalCoord1fv\0"
+ "glEvalCoord2d\0"
+ "glEvalCoord2dv\0"
+ "glEvalCoord2f\0"
+ "glEvalCoord2fv\0"
+ "glEvalMesh1\0"
+ "glEvalPoint1\0"
+ "glEvalMesh2\0"
+ "glEvalPoint2\0"
+ "glAlphaFunc\0"
+ "glBlendFunc\0"
+ "glLogicOp\0"
+ "glStencilFunc\0"
+ "glStencilOp\0"
+ "glDepthFunc\0"
+ "glPixelZoom\0"
+ "glPixelTransferf\0"
+ "glPixelTransferi\0"
+ "glPixelStoref\0"
+ "glPixelStorei\0"
+ "glPixelMapfv\0"
+ "glPixelMapuiv\0"
+ "glPixelMapusv\0"
+ "glReadBuffer\0"
+ "glCopyPixels\0"
+ "glReadPixels\0"
+ "glDrawPixels\0"
+ "glGetBooleanv\0"
+ "glGetClipPlane\0"
+ "glGetDoublev\0"
+ "glGetError\0"
+ "glGetFloatv\0"
+ "glGetIntegerv\0"
+ "glGetLightfv\0"
+ "glGetLightiv\0"
+ "glGetMapdv\0"
+ "glGetMapfv\0"
+ "glGetMapiv\0"
+ "glGetMaterialfv\0"
+ "glGetMaterialiv\0"
+ "glGetPixelMapfv\0"
+ "glGetPixelMapuiv\0"
+ "glGetPixelMapusv\0"
+ "glGetPolygonStipple\0"
+ "glGetString\0"
+ "glGetTexEnvfv\0"
+ "glGetTexEnviv\0"
+ "glGetTexGendv\0"
+ "glGetTexGenfv\0"
+ "glGetTexGeniv\0"
+ "glGetTexImage\0"
+ "glGetTexParameterfv\0"
+ "glGetTexParameteriv\0"
+ "glGetTexLevelParameterfv\0"
+ "glGetTexLevelParameteriv\0"
+ "glIsEnabled\0"
+ "glIsList\0"
+ "glDepthRange\0"
+ "glFrustum\0"
+ "glLoadIdentity\0"
+ "glLoadMatrixf\0"
+ "glLoadMatrixd\0"
+ "glMatrixMode\0"
+ "glMultMatrixf\0"
+ "glMultMatrixd\0"
+ "glOrtho\0"
+ "glPopMatrix\0"
+ "glPushMatrix\0"
+ "glRotated\0"
+ "glRotatef\0"
+ "glScaled\0"
+ "glScalef\0"
+ "glTranslated\0"
+ "glTranslatef\0"
+ "glViewport\0"
+ "glArrayElement\0"
+ "glBindTexture\0"
+ "glColorPointer\0"
+ "glDisableClientState\0"
+ "glDrawArrays\0"
+ "glDrawElements\0"
+ "glEdgeFlagPointer\0"
+ "glEnableClientState\0"
+ "glIndexPointer\0"
+ "glIndexub\0"
+ "glIndexubv\0"
+ "glInterleavedArrays\0"
+ "glNormalPointer\0"
+ "glPolygonOffset\0"
+ "glTexCoordPointer\0"
+ "glVertexPointer\0"
+ "glAreTexturesResident\0"
+ "glCopyTexImage1D\0"
+ "glCopyTexImage2D\0"
+ "glCopyTexSubImage1D\0"
+ "glCopyTexSubImage2D\0"
+ "glDeleteTextures\0"
+ "glGenTextures\0"
+ "glGetPointerv\0"
+ "glIsTexture\0"
+ "glPrioritizeTextures\0"
+ "glTexSubImage1D\0"
+ "glTexSubImage2D\0"
+ "glPopClientAttrib\0"
+ "glPushClientAttrib\0"
+ "glBlendColor\0"
+ "glBlendEquation\0"
+ "glDrawRangeElements\0"
+ "glColorTable\0"
+ "glColorTableParameterfv\0"
+ "glColorTableParameteriv\0"
+ "glCopyColorTable\0"
+ "glGetColorTable\0"
+ "glGetColorTableParameterfv\0"
+ "glGetColorTableParameteriv\0"
+ "glColorSubTable\0"
+ "glCopyColorSubTable\0"
+ "glConvolutionFilter1D\0"
+ "glConvolutionFilter2D\0"
+ "glConvolutionParameterf\0"
+ "glConvolutionParameterfv\0"
+ "glConvolutionParameteri\0"
+ "glConvolutionParameteriv\0"
+ "glCopyConvolutionFilter1D\0"
+ "glCopyConvolutionFilter2D\0"
+ "glGetConvolutionFilter\0"
+ "glGetConvolutionParameterfv\0"
+ "glGetConvolutionParameteriv\0"
+ "glGetSeparableFilter\0"
+ "glSeparableFilter2D\0"
+ "glGetHistogram\0"
+ "glGetHistogramParameterfv\0"
+ "glGetHistogramParameteriv\0"
+ "glGetMinmax\0"
+ "glGetMinmaxParameterfv\0"
+ "glGetMinmaxParameteriv\0"
+ "glHistogram\0"
+ "glMinmax\0"
+ "glResetHistogram\0"
+ "glResetMinmax\0"
+ "glTexImage3D\0"
+ "glTexSubImage3D\0"
+ "glCopyTexSubImage3D\0"
+ "glActiveTexture\0"
+ "glClientActiveTexture\0"
+ "glMultiTexCoord1d\0"
+ "glMultiTexCoord1dv\0"
+ "glMultiTexCoord1fARB\0"
+ "glMultiTexCoord1fvARB\0"
+ "glMultiTexCoord1i\0"
+ "glMultiTexCoord1iv\0"
+ "glMultiTexCoord1s\0"
+ "glMultiTexCoord1sv\0"
+ "glMultiTexCoord2d\0"
+ "glMultiTexCoord2dv\0"
+ "glMultiTexCoord2fARB\0"
+ "glMultiTexCoord2fvARB\0"
+ "glMultiTexCoord2i\0"
+ "glMultiTexCoord2iv\0"
+ "glMultiTexCoord2s\0"
+ "glMultiTexCoord2sv\0"
+ "glMultiTexCoord3d\0"
+ "glMultiTexCoord3dv\0"
+ "glMultiTexCoord3fARB\0"
+ "glMultiTexCoord3fvARB\0"
+ "glMultiTexCoord3i\0"
+ "glMultiTexCoord3iv\0"
+ "glMultiTexCoord3s\0"
+ "glMultiTexCoord3sv\0"
+ "glMultiTexCoord4d\0"
+ "glMultiTexCoord4dv\0"
+ "glMultiTexCoord4fARB\0"
+ "glMultiTexCoord4fvARB\0"
+ "glMultiTexCoord4i\0"
+ "glMultiTexCoord4iv\0"
+ "glMultiTexCoord4s\0"
+ "glMultiTexCoord4sv\0"
+ "glCompressedTexImage1D\0"
+ "glCompressedTexImage2D\0"
+ "glCompressedTexImage3D\0"
+ "glCompressedTexSubImage1D\0"
+ "glCompressedTexSubImage2D\0"
+ "glCompressedTexSubImage3D\0"
+ "glGetCompressedTexImage\0"
+ "glLoadTransposeMatrixd\0"
+ "glLoadTransposeMatrixf\0"
+ "glMultTransposeMatrixd\0"
+ "glMultTransposeMatrixf\0"
+ "glSampleCoverage\0"
+ "glBlendFuncSeparate\0"
+ "glFogCoordPointer\0"
+ "glFogCoordd\0"
+ "glFogCoorddv\0"
+ "glMultiDrawArrays\0"
+ "glPointParameterf\0"
+ "glPointParameterfv\0"
+ "glPointParameteri\0"
+ "glPointParameteriv\0"
+ "glSecondaryColor3b\0"
+ "glSecondaryColor3bv\0"
+ "glSecondaryColor3d\0"
+ "glSecondaryColor3dv\0"
+ "glSecondaryColor3i\0"
+ "glSecondaryColor3iv\0"
+ "glSecondaryColor3s\0"
+ "glSecondaryColor3sv\0"
+ "glSecondaryColor3ub\0"
+ "glSecondaryColor3ubv\0"
+ "glSecondaryColor3ui\0"
+ "glSecondaryColor3uiv\0"
+ "glSecondaryColor3us\0"
+ "glSecondaryColor3usv\0"
+ "glSecondaryColorPointer\0"
+ "glWindowPos2d\0"
+ "glWindowPos2dv\0"
+ "glWindowPos2f\0"
+ "glWindowPos2fv\0"
+ "glWindowPos2i\0"
+ "glWindowPos2iv\0"
+ "glWindowPos2s\0"
+ "glWindowPos2sv\0"
+ "glWindowPos3d\0"
+ "glWindowPos3dv\0"
+ "glWindowPos3f\0"
+ "glWindowPos3fv\0"
+ "glWindowPos3i\0"
+ "glWindowPos3iv\0"
+ "glWindowPos3s\0"
+ "glWindowPos3sv\0"
+ "glBeginQuery\0"
+ "glBindBuffer\0"
+ "glBufferData\0"
+ "glBufferSubData\0"
+ "glDeleteBuffers\0"
+ "glDeleteQueries\0"
+ "glEndQuery\0"
+ "glGenBuffers\0"
+ "glGenQueries\0"
+ "glGetBufferParameteriv\0"
+ "glGetBufferPointerv\0"
+ "glGetBufferSubData\0"
+ "glGetQueryObjectiv\0"
+ "glGetQueryObjectuiv\0"
+ "glGetQueryiv\0"
+ "glIsBuffer\0"
+ "glIsQuery\0"
+ "glMapBuffer\0"
+ "glUnmapBuffer\0"
+ "glAttachShader\0"
+ "glBindAttribLocation\0"
+ "glBlendEquationSeparate\0"
+ "glCompileShader\0"
+ "glCreateProgram\0"
+ "glCreateShader\0"
+ "glDeleteProgram\0"
+ "glDeleteShader\0"
+ "glDetachShader\0"
+ "glDisableVertexAttribArray\0"
+ "glDrawBuffers\0"
+ "glEnableVertexAttribArray\0"
+ "glGetActiveAttrib\0"
+ "glGetActiveUniform\0"
+ "glGetAttachedShaders\0"
+ "glGetAttribLocation\0"
+ "glGetProgramInfoLog\0"
+ "glGetProgramiv\0"
+ "glGetShaderInfoLog\0"
+ "glGetShaderSource\0"
+ "glGetShaderiv\0"
+ "glGetUniformLocation\0"
+ "glGetUniformfv\0"
+ "glGetUniformiv\0"
+ "glGetVertexAttribPointerv\0"
+ "glGetVertexAttribdv\0"
+ "glGetVertexAttribfv\0"
+ "glGetVertexAttribiv\0"
+ "glIsProgram\0"
+ "glIsShader\0"
+ "glLinkProgram\0"
+ "glShaderSource\0"
+ "glStencilFuncSeparate\0"
+ "glStencilMaskSeparate\0"
+ "glStencilOpSeparate\0"
+ "glUniform1f\0"
+ "glUniform1fv\0"
+ "glUniform1i\0"
+ "glUniform1iv\0"
+ "glUniform2f\0"
+ "glUniform2fv\0"
+ "glUniform2i\0"
+ "glUniform2iv\0"
+ "glUniform3f\0"
+ "glUniform3fv\0"
+ "glUniform3i\0"
+ "glUniform3iv\0"
+ "glUniform4f\0"
+ "glUniform4fv\0"
+ "glUniform4i\0"
+ "glUniform4iv\0"
+ "glUniformMatrix2fv\0"
+ "glUniformMatrix3fv\0"
+ "glUniformMatrix4fv\0"
+ "glUseProgram\0"
+ "glValidateProgram\0"
+ "glVertexAttrib1d\0"
+ "glVertexAttrib1dv\0"
+ "glVertexAttrib1s\0"
+ "glVertexAttrib1sv\0"
+ "glVertexAttrib2d\0"
+ "glVertexAttrib2dv\0"
+ "glVertexAttrib2s\0"
+ "glVertexAttrib2sv\0"
+ "glVertexAttrib3d\0"
+ "glVertexAttrib3dv\0"
+ "glVertexAttrib3s\0"
+ "glVertexAttrib3sv\0"
+ "glVertexAttrib4Nbv\0"
+ "glVertexAttrib4Niv\0"
+ "glVertexAttrib4Nsv\0"
+ "glVertexAttrib4Nub\0"
+ "glVertexAttrib4Nubv\0"
+ "glVertexAttrib4Nuiv\0"
+ "glVertexAttrib4Nusv\0"
+ "glVertexAttrib4bv\0"
+ "glVertexAttrib4d\0"
+ "glVertexAttrib4dv\0"
+ "glVertexAttrib4iv\0"
+ "glVertexAttrib4s\0"
+ "glVertexAttrib4sv\0"
+ "glVertexAttrib4ubv\0"
+ "glVertexAttrib4uiv\0"
+ "glVertexAttrib4usv\0"
+ "glVertexAttribPointer\0"
+ "glUniformMatrix2x3fv\0"
+ "glUniformMatrix2x4fv\0"
+ "glUniformMatrix3x2fv\0"
+ "glUniformMatrix3x4fv\0"
+ "glUniformMatrix4x2fv\0"
+ "glUniformMatrix4x3fv\0"
+ "glBeginConditionalRender\0"
+ "glBeginTransformFeedback\0"
+ "glBindBufferBase\0"
+ "glBindBufferRange\0"
+ "glBindFragDataLocation\0"
+ "glClampColor\0"
+ "glClearBufferfi\0"
+ "glClearBufferfv\0"
+ "glClearBufferiv\0"
+ "glClearBufferuiv\0"
+ "glColorMaski\0"
+ "glDisablei\0"
+ "glEnablei\0"
+ "glEndConditionalRender\0"
+ "glEndTransformFeedback\0"
+ "glGetBooleani_v\0"
+ "glGetFragDataLocation\0"
+ "glGetIntegeri_v\0"
+ "glGetStringi\0"
+ "glGetTexParameterIiv\0"
+ "glGetTexParameterIuiv\0"
+ "glGetTransformFeedbackVarying\0"
+ "glGetUniformuiv\0"
+ "glGetVertexAttribIiv\0"
+ "glGetVertexAttribIuiv\0"
+ "glIsEnabledi\0"
+ "glTexParameterIiv\0"
+ "glTexParameterIuiv\0"
+ "glTransformFeedbackVaryings\0"
+ "glUniform1ui\0"
+ "glUniform1uiv\0"
+ "glUniform2ui\0"
+ "glUniform2uiv\0"
+ "glUniform3ui\0"
+ "glUniform3uiv\0"
+ "glUniform4ui\0"
+ "glUniform4uiv\0"
+ "glVertexAttribI1iv\0"
+ "glVertexAttribI1uiv\0"
+ "glVertexAttribI4bv\0"
+ "glVertexAttribI4sv\0"
+ "glVertexAttribI4ubv\0"
+ "glVertexAttribI4usv\0"
+ "glVertexAttribIPointer\0"
+ "glPrimitiveRestartIndex\0"
+ "glTexBuffer\0"
+ "glFramebufferTexture\0"
+ "glGetBufferParameteri64v\0"
+ "glGetInteger64i_v\0"
+ "glVertexAttribDivisor\0"
+ "glMinSampleShading\0"
+ "glBindProgramARB\0"
+ "glDeleteProgramsARB\0"
+ "glGenProgramsARB\0"
+ "glGetProgramEnvParameterdvARB\0"
+ "glGetProgramEnvParameterfvARB\0"
+ "glGetProgramLocalParameterdvARB\0"
+ "glGetProgramLocalParameterfvARB\0"
+ "glGetProgramStringARB\0"
+ "glGetProgramivARB\0"
+ "glIsProgramARB\0"
+ "glProgramEnvParameter4dARB\0"
+ "glProgramEnvParameter4dvARB\0"
+ "glProgramEnvParameter4fARB\0"
+ "glProgramEnvParameter4fvARB\0"
+ "glProgramLocalParameter4dARB\0"
+ "glProgramLocalParameter4dvARB\0"
+ "glProgramLocalParameter4fARB\0"
+ "glProgramLocalParameter4fvARB\0"
+ "glProgramStringARB\0"
+ "glVertexAttrib1fARB\0"
+ "glVertexAttrib1fvARB\0"
+ "glVertexAttrib2fARB\0"
+ "glVertexAttrib2fvARB\0"
+ "glVertexAttrib3fARB\0"
+ "glVertexAttrib3fvARB\0"
+ "glVertexAttrib4fARB\0"
+ "glVertexAttrib4fvARB\0"
+ "glAttachObjectARB\0"
+ "glCreateProgramObjectARB\0"
+ "glCreateShaderObjectARB\0"
+ "glDeleteObjectARB\0"
+ "glDetachObjectARB\0"
+ "glGetAttachedObjectsARB\0"
+ "glGetHandleARB\0"
+ "glGetInfoLogARB\0"
+ "glGetObjectParameterfvARB\0"
+ "glGetObjectParameterivARB\0"
+ "glDrawArraysInstancedARB\0"
+ "glDrawElementsInstancedARB\0"
+ "glBindFramebuffer\0"
+ "glBindRenderbuffer\0"
+ "glBlitFramebuffer\0"
+ "glCheckFramebufferStatus\0"
+ "glDeleteFramebuffers\0"
+ "glDeleteRenderbuffers\0"
+ "glFramebufferRenderbuffer\0"
+ "glFramebufferTexture1D\0"
+ "glFramebufferTexture2D\0"
+ "glFramebufferTexture3D\0"
+ "glFramebufferTextureLayer\0"
+ "glGenFramebuffers\0"
+ "glGenRenderbuffers\0"
+ "glGenerateMipmap\0"
+ "glGetFramebufferAttachmentParameteriv\0"
+ "glGetRenderbufferParameteriv\0"
+ "glIsFramebuffer\0"
+ "glIsRenderbuffer\0"
+ "glRenderbufferStorage\0"
+ "glRenderbufferStorageMultisample\0"
+ "glFramebufferTextureFaceARB\0"
+ "glFlushMappedBufferRange\0"
+ "glMapBufferRange\0"
+ "glBindVertexArray\0"
+ "glDeleteVertexArrays\0"
+ "glGenVertexArrays\0"
+ "glIsVertexArray\0"
+ "glGetActiveUniformBlockName\0"
+ "glGetActiveUniformBlockiv\0"
+ "glGetActiveUniformName\0"
+ "glGetActiveUniformsiv\0"
+ "glGetUniformBlockIndex\0"
+ "glGetUniformIndices\0"
+ "glUniformBlockBinding\0"
+ "glCopyBufferSubData\0"
+ "glClientWaitSync\0"
+ "glDeleteSync\0"
+ "glFenceSync\0"
+ "glGetInteger64v\0"
+ "glGetSynciv\0"
+ "glIsSync\0"
+ "glWaitSync\0"
+ "glDrawElementsBaseVertex\0"
+ "glDrawElementsInstancedBaseVertex\0"
+ "glDrawRangeElementsBaseVertex\0"
+ "glMultiDrawElementsBaseVertex\0"
+ "glProvokingVertex\0"
+ "glGetMultisamplefv\0"
+ "glSampleMaski\0"
+ "glTexImage2DMultisample\0"
+ "glTexImage3DMultisample\0"
+ "glBlendEquationSeparateiARB\0"
+ "glBlendEquationiARB\0"
+ "glBlendFuncSeparateiARB\0"
+ "glBlendFunciARB\0"
+ "glBindFragDataLocationIndexed\0"
+ "glGetFragDataIndex\0"
+ "glBindSampler\0"
+ "glDeleteSamplers\0"
+ "glGenSamplers\0"
+ "glGetSamplerParameterIiv\0"
+ "glGetSamplerParameterIuiv\0"
+ "glGetSamplerParameterfv\0"
+ "glGetSamplerParameteriv\0"
+ "glIsSampler\0"
+ "glSamplerParameterIiv\0"
+ "glSamplerParameterIuiv\0"
+ "glSamplerParameterf\0"
+ "glSamplerParameterfv\0"
+ "glSamplerParameteri\0"
+ "glSamplerParameteriv\0"
+ "glGetQueryObjecti64v\0"
+ "glGetQueryObjectui64v\0"
+ "glQueryCounter\0"
+ "glColorP3ui\0"
+ "glColorP3uiv\0"
+ "glColorP4ui\0"
+ "glColorP4uiv\0"
+ "glMultiTexCoordP1ui\0"
+ "glMultiTexCoordP1uiv\0"
+ "glMultiTexCoordP2ui\0"
+ "glMultiTexCoordP2uiv\0"
+ "glMultiTexCoordP3ui\0"
+ "glMultiTexCoordP3uiv\0"
+ "glMultiTexCoordP4ui\0"
+ "glMultiTexCoordP4uiv\0"
+ "glNormalP3ui\0"
+ "glNormalP3uiv\0"
+ "glSecondaryColorP3ui\0"
+ "glSecondaryColorP3uiv\0"
+ "glTexCoordP1ui\0"
+ "glTexCoordP1uiv\0"
+ "glTexCoordP2ui\0"
+ "glTexCoordP2uiv\0"
+ "glTexCoordP3ui\0"
+ "glTexCoordP3uiv\0"
+ "glTexCoordP4ui\0"
+ "glTexCoordP4uiv\0"
+ "glVertexAttribP1ui\0"
+ "glVertexAttribP1uiv\0"
+ "glVertexAttribP2ui\0"
+ "glVertexAttribP2uiv\0"
+ "glVertexAttribP3ui\0"
+ "glVertexAttribP3uiv\0"
+ "glVertexAttribP4ui\0"
+ "glVertexAttribP4uiv\0"
+ "glVertexP2ui\0"
+ "glVertexP2uiv\0"
+ "glVertexP3ui\0"
+ "glVertexP3uiv\0"
+ "glVertexP4ui\0"
+ "glVertexP4uiv\0"
+ "glBindTransformFeedback\0"
+ "glDeleteTransformFeedbacks\0"
+ "glDrawTransformFeedback\0"
+ "glGenTransformFeedbacks\0"
+ "glIsTransformFeedback\0"
+ "glPauseTransformFeedback\0"
+ "glResumeTransformFeedback\0"
+ "glBeginQueryIndexed\0"
+ "glDrawTransformFeedbackStream\0"
+ "glEndQueryIndexed\0"
+ "glGetQueryIndexediv\0"
+ "glClearDepthf\0"
+ "glDepthRangef\0"
+ "glGetShaderPrecisionFormat\0"
+ "glReleaseShaderCompiler\0"
+ "glShaderBinary\0"
+ "glGetProgramBinary\0"
+ "glProgramBinary\0"
+ "glProgramParameteri\0"
+ "glDebugMessageCallbackARB\0"
+ "glDebugMessageControlARB\0"
+ "glDebugMessageInsertARB\0"
+ "glGetDebugMessageLogARB\0"
+ "glGetGraphicsResetStatusARB\0"
+ "glGetnColorTableARB\0"
+ "glGetnCompressedTexImageARB\0"
+ "glGetnConvolutionFilterARB\0"
+ "glGetnHistogramARB\0"
+ "glGetnMapdvARB\0"
+ "glGetnMapfvARB\0"
+ "glGetnMapivARB\0"
+ "glGetnMinmaxARB\0"
+ "glGetnPixelMapfvARB\0"
+ "glGetnPixelMapuivARB\0"
+ "glGetnPixelMapusvARB\0"
+ "glGetnPolygonStippleARB\0"
+ "glGetnSeparableFilterARB\0"
+ "glGetnTexImageARB\0"
+ "glGetnUniformdvARB\0"
+ "glGetnUniformfvARB\0"
+ "glGetnUniformivARB\0"
+ "glGetnUniformuivARB\0"
+ "glReadnPixelsARB\0"
+ "glDrawArraysInstancedBaseInstance\0"
+ "glDrawElementsInstancedBaseInstance\0"
+ "glDrawElementsInstancedBaseVertexBaseInstance\0"
+ "glDrawTransformFeedbackInstanced\0"
+ "glDrawTransformFeedbackStreamInstanced\0"
+ "glGetInternalformativ\0"
+ "glGetActiveAtomicCounterBufferiv\0"
+ "glTexStorage1D\0"
+ "glTexStorage2D\0"
+ "glTexStorage3D\0"
+ "glTextureStorage1DEXT\0"
+ "glTextureStorage2DEXT\0"
+ "glTextureStorage3DEXT\0"
+ "glBindVertexBuffer\0"
+ "glVertexAttribBinding\0"
+ "glVertexAttribFormat\0"
+ "glVertexAttribIFormat\0"
+ "glVertexAttribLFormat\0"
+ "glVertexBindingDivisor\0"
+ "glTexBufferRange\0"
+ "glTexStorage2DMultisample\0"
+ "glTexStorage3DMultisample\0"
+ "glInvalidateBufferData\0"
+ "glInvalidateBufferSubData\0"
+ "glInvalidateFramebuffer\0"
+ "glInvalidateSubFramebuffer\0"
+ "glInvalidateTexImage\0"
+ "glInvalidateTexSubImage\0"
+ "glPolygonOffsetEXT\0"
+ "glDrawTexfOES\0"
+ "glDrawTexfvOES\0"
+ "glDrawTexiOES\0"
+ "glDrawTexivOES\0"
+ "glDrawTexsOES\0"
+ "glDrawTexsvOES\0"
+ "glDrawTexxOES\0"
+ "glDrawTexxvOES\0"
+ "glPointSizePointerOES\0"
+ "glQueryMatrixxOES\0"
+ "glSampleMaskSGIS\0"
+ "glSamplePatternSGIS\0"
+ "glColorPointerEXT\0"
+ "glEdgeFlagPointerEXT\0"
+ "glIndexPointerEXT\0"
+ "glNormalPointerEXT\0"
+ "glTexCoordPointerEXT\0"
+ "glVertexPointerEXT\0"
+ "glDiscardFramebufferEXT\0"
+ "glLockArraysEXT\0"
+ "glUnlockArraysEXT\0"
+ "glDebugMessageCallback\0"
+ "glDebugMessageControl\0"
+ "glDebugMessageInsert\0"
+ "glGetDebugMessageLog\0"
+ "glGetObjectLabel\0"
+ "glGetObjectPtrLabel\0"
+ "glObjectLabel\0"
+ "glObjectPtrLabel\0"
+ "glPopDebugGroup\0"
+ "glPushDebugGroup\0"
+ "glSecondaryColor3fEXT\0"
+ "glSecondaryColor3fvEXT\0"
+ "glMultiDrawElementsEXT\0"
+ "glFogCoordfEXT\0"
+ "glFogCoordfvEXT\0"
+ "glResizeBuffersMESA\0"
+ "glWindowPos4dMESA\0"
+ "glWindowPos4dvMESA\0"
+ "glWindowPos4fMESA\0"
+ "glWindowPos4fvMESA\0"
+ "glWindowPos4iMESA\0"
+ "glWindowPos4ivMESA\0"
+ "glWindowPos4sMESA\0"
+ "glWindowPos4svMESA\0"
+ "glMultiModeDrawArraysIBM\0"
+ "glMultiModeDrawElementsIBM\0"
+ "glAreProgramsResidentNV\0"
+ "glExecuteProgramNV\0"
+ "glGetProgramParameterdvNV\0"
+ "glGetProgramParameterfvNV\0"
+ "glGetProgramStringNV\0"
+ "glGetProgramivNV\0"
+ "glGetTrackMatrixivNV\0"
+ "glGetVertexAttribdvNV\0"
+ "glGetVertexAttribfvNV\0"
+ "glGetVertexAttribivNV\0"
+ "glLoadProgramNV\0"
+ "glProgramParameters4dvNV\0"
+ "glProgramParameters4fvNV\0"
+ "glRequestResidentProgramsNV\0"
+ "glTrackMatrixNV\0"
+ "glVertexAttrib1dNV\0"
+ "glVertexAttrib1dvNV\0"
+ "glVertexAttrib1fNV\0"
+ "glVertexAttrib1fvNV\0"
+ "glVertexAttrib1sNV\0"
+ "glVertexAttrib1svNV\0"
+ "glVertexAttrib2dNV\0"
+ "glVertexAttrib2dvNV\0"
+ "glVertexAttrib2fNV\0"
+ "glVertexAttrib2fvNV\0"
+ "glVertexAttrib2sNV\0"
+ "glVertexAttrib2svNV\0"
+ "glVertexAttrib3dNV\0"
+ "glVertexAttrib3dvNV\0"
+ "glVertexAttrib3fNV\0"
+ "glVertexAttrib3fvNV\0"
+ "glVertexAttrib3sNV\0"
+ "glVertexAttrib3svNV\0"
+ "glVertexAttrib4dNV\0"
+ "glVertexAttrib4dvNV\0"
+ "glVertexAttrib4fNV\0"
+ "glVertexAttrib4fvNV\0"
+ "glVertexAttrib4sNV\0"
+ "glVertexAttrib4svNV\0"
+ "glVertexAttrib4ubNV\0"
+ "glVertexAttrib4ubvNV\0"
+ "glVertexAttribPointerNV\0"
+ "glVertexAttribs1dvNV\0"
+ "glVertexAttribs1fvNV\0"
+ "glVertexAttribs1svNV\0"
+ "glVertexAttribs2dvNV\0"
+ "glVertexAttribs2fvNV\0"
+ "glVertexAttribs2svNV\0"
+ "glVertexAttribs3dvNV\0"
+ "glVertexAttribs3fvNV\0"
+ "glVertexAttribs3svNV\0"
+ "glVertexAttribs4dvNV\0"
+ "glVertexAttribs4fvNV\0"
+ "glVertexAttribs4svNV\0"
+ "glVertexAttribs4ubvNV\0"
+ "glGetTexBumpParameterfvATI\0"
+ "glGetTexBumpParameterivATI\0"
+ "glTexBumpParameterfvATI\0"
+ "glTexBumpParameterivATI\0"
+ "glAlphaFragmentOp1ATI\0"
+ "glAlphaFragmentOp2ATI\0"
+ "glAlphaFragmentOp3ATI\0"
+ "glBeginFragmentShaderATI\0"
+ "glBindFragmentShaderATI\0"
+ "glColorFragmentOp1ATI\0"
+ "glColorFragmentOp2ATI\0"
+ "glColorFragmentOp3ATI\0"
+ "glDeleteFragmentShaderATI\0"
+ "glEndFragmentShaderATI\0"
+ "glGenFragmentShadersATI\0"
+ "glPassTexCoordATI\0"
+ "glSampleMapATI\0"
+ "glSetFragmentShaderConstantATI\0"
+ "glActiveStencilFaceEXT\0"
+ "glBindVertexArrayAPPLE\0"
+ "glGenVertexArraysAPPLE\0"
+ "glGetProgramNamedParameterdvNV\0"
+ "glGetProgramNamedParameterfvNV\0"
+ "glProgramNamedParameter4dNV\0"
+ "glProgramNamedParameter4dvNV\0"
+ "glProgramNamedParameter4fNV\0"
+ "glProgramNamedParameter4fvNV\0"
+ "glPrimitiveRestartNV\0"
+ "glGetTexGenxvOES\0"
+ "glTexGenxOES\0"
+ "glTexGenxvOES\0"
+ "glDepthBoundsEXT\0"
+ "glBindFramebufferEXT\0"
+ "glBindRenderbufferEXT\0"
+ "glBufferParameteriAPPLE\0"
+ "glFlushMappedBufferRangeAPPLE\0"
+ "glVertexAttribI1iEXT\0"
+ "glVertexAttribI1uiEXT\0"
+ "glVertexAttribI2iEXT\0"
+ "glVertexAttribI2ivEXT\0"
+ "glVertexAttribI2uiEXT\0"
+ "glVertexAttribI2uivEXT\0"
+ "glVertexAttribI3iEXT\0"
+ "glVertexAttribI3ivEXT\0"
+ "glVertexAttribI3uiEXT\0"
+ "glVertexAttribI3uivEXT\0"
+ "glVertexAttribI4iEXT\0"
+ "glVertexAttribI4ivEXT\0"
+ "glVertexAttribI4uiEXT\0"
+ "glVertexAttribI4uivEXT\0"
+ "glClearColorIiEXT\0"
+ "glClearColorIuiEXT\0"
+ "glBindBufferOffsetEXT\0"
+ "glBeginPerfMonitorAMD\0"
+ "glDeletePerfMonitorsAMD\0"
+ "glEndPerfMonitorAMD\0"
+ "glGenPerfMonitorsAMD\0"
+ "glGetPerfMonitorCounterDataAMD\0"
+ "glGetPerfMonitorCounterInfoAMD\0"
+ "glGetPerfMonitorCounterStringAMD\0"
+ "glGetPerfMonitorCountersAMD\0"
+ "glGetPerfMonitorGroupStringAMD\0"
+ "glGetPerfMonitorGroupsAMD\0"
+ "glSelectPerfMonitorCountersAMD\0"
+ "glGetObjectParameterivAPPLE\0"
+ "glObjectPurgeableAPPLE\0"
+ "glObjectUnpurgeableAPPLE\0"
+ "glActiveProgramEXT\0"
+ "glCreateShaderProgramEXT\0"
+ "glUseShaderProgramEXT\0"
+ "glTextureBarrierNV\0"
+ "glVDPAUFiniNV\0"
+ "glVDPAUGetSurfaceivNV\0"
+ "glVDPAUInitNV\0"
+ "glVDPAUIsSurfaceNV\0"
+ "glVDPAUMapSurfacesNV\0"
+ "glVDPAURegisterOutputSurfaceNV\0"
+ "glVDPAURegisterVideoSurfaceNV\0"
+ "glVDPAUSurfaceAccessNV\0"
+ "glVDPAUUnmapSurfacesNV\0"
+ "glVDPAUUnregisterSurfaceNV\0"
+ "glStencilFuncSeparateATI\0"
+ "glProgramEnvParameters4fvEXT\0"
+ "glProgramLocalParameters4fvEXT\0"
+ "glEGLImageTargetRenderbufferStorageOES\0"
+ "glEGLImageTargetTexture2DOES\0"
+ "glAlphaFuncx\0"
+ "glClearColorx\0"
+ "glClearDepthx\0"
+ "glColor4x\0"
+ "glDepthRangex\0"
+ "glFogx\0"
+ "glFogxv\0"
+ "glFrustumf\0"
+ "glFrustumx\0"
+ "glLightModelx\0"
+ "glLightModelxv\0"
+ "glLightx\0"
+ "glLightxv\0"
+ "glLineWidthx\0"
+ "glLoadMatrixx\0"
+ "glMaterialx\0"
+ "glMaterialxv\0"
+ "glMultMatrixx\0"
+ "glMultiTexCoord4x\0"
+ "glNormal3x\0"
+ "glOrthof\0"
+ "glOrthox\0"
+ "glPointSizex\0"
+ "glPolygonOffsetx\0"
+ "glRotatex\0"
+ "glSampleCoveragex\0"
+ "glScalex\0"
+ "glTexEnvx\0"
+ "glTexEnvxv\0"
+ "glTexParameterx\0"
+ "glTranslatex\0"
+ "glClipPlanef\0"
+ "glClipPlanex\0"
+ "glGetClipPlanef\0"
+ "glGetClipPlanex\0"
+ "glGetFixedv\0"
+ "glGetLightxv\0"
+ "glGetMaterialxv\0"
+ "glGetTexEnvxv\0"
+ "glGetTexParameterxv\0"
+ "glPointParameterx\0"
+ "glPointParameterxv\0"
+ "glTexParameterxv\0"
+ "glTexGenfOES\0"
+ "glTexGenfvOES\0"
+ "glTexGeniOES\0"
+ "glTexGenivOES\0"
+ "glReadBufferNV\0"
+ "glGetTexGenfvOES\0"
+ "glGetTexGenivOES\0"
+ "glArrayElementEXT\0"
+ "glBindTextureEXT\0"
+ "glDrawArraysEXT\0"
+ "glAreTexturesResidentEXT\0"
+ "glCopyTexImage1DEXT\0"
+ "glCopyTexImage2DEXT\0"
+ "glCopyTexSubImage1DEXT\0"
+ "glCopyTexSubImage2DEXT\0"
+ "glDeleteTexturesEXT\0"
+ "glGenTexturesEXT\0"
+ "glGetPointervEXT\0"
+ "glIsTextureEXT\0"
+ "glPrioritizeTexturesEXT\0"
+ "glTexSubImage1DEXT\0"
+ "glTexSubImage2DEXT\0"
+ "glBlendColorEXT\0"
+ "glBlendEquationEXT\0"
+ "glBlendEquationOES\0"
+ "glDrawRangeElementsEXT\0"
+ "glColorTableSGI\0"
+ "glColorTableEXT\0"
+ "glColorTableParameterfvSGI\0"
+ "glColorTableParameterivSGI\0"
+ "glCopyColorTableSGI\0"
+ "glGetColorTableSGI\0"
+ "glGetColorTableEXT\0"
+ "glGetColorTableParameterfvSGI\0"
+ "glGetColorTableParameterfvEXT\0"
+ "glGetColorTableParameterivSGI\0"
+ "glGetColorTableParameterivEXT\0"
+ "glColorSubTableEXT\0"
+ "glCopyColorSubTableEXT\0"
+ "glConvolutionFilter1DEXT\0"
+ "glConvolutionFilter2DEXT\0"
+ "glConvolutionParameterfEXT\0"
+ "glConvolutionParameterfvEXT\0"
+ "glConvolutionParameteriEXT\0"
+ "glConvolutionParameterivEXT\0"
+ "glCopyConvolutionFilter1DEXT\0"
+ "glCopyConvolutionFilter2DEXT\0"
+ "glGetConvolutionFilterEXT\0"
+ "glGetConvolutionParameterfvEXT\0"
+ "glGetConvolutionParameterivEXT\0"
+ "glGetSeparableFilterEXT\0"
+ "glSeparableFilter2DEXT\0"
+ "glGetHistogramEXT\0"
+ "glGetHistogramParameterfvEXT\0"
+ "glGetHistogramParameterivEXT\0"
+ "glGetMinmaxEXT\0"
+ "glGetMinmaxParameterfvEXT\0"
+ "glGetMinmaxParameterivEXT\0"
+ "glHistogramEXT\0"
+ "glMinmaxEXT\0"
+ "glResetHistogramEXT\0"
+ "glResetMinmaxEXT\0"
+ "glTexImage3DEXT\0"
+ "glTexImage3DOES\0"
+ "glTexSubImage3DEXT\0"
+ "glTexSubImage3DOES\0"
+ "glCopyTexSubImage3DEXT\0"
+ "glCopyTexSubImage3DOES\0"
+ "glActiveTextureARB\0"
+ "glClientActiveTextureARB\0"
+ "glMultiTexCoord1dARB\0"
+ "glMultiTexCoord1dvARB\0"
+ "glMultiTexCoord1f\0"
+ "glMultiTexCoord1fv\0"
+ "glMultiTexCoord1iARB\0"
+ "glMultiTexCoord1ivARB\0"
+ "glMultiTexCoord1sARB\0"
+ "glMultiTexCoord1svARB\0"
+ "glMultiTexCoord2dARB\0"
+ "glMultiTexCoord2dvARB\0"
+ "glMultiTexCoord2f\0"
+ "glMultiTexCoord2fv\0"
+ "glMultiTexCoord2iARB\0"
+ "glMultiTexCoord2ivARB\0"
+ "glMultiTexCoord2sARB\0"
+ "glMultiTexCoord2svARB\0"
+ "glMultiTexCoord3dARB\0"
+ "glMultiTexCoord3dvARB\0"
+ "glMultiTexCoord3f\0"
+ "glMultiTexCoord3fv\0"
+ "glMultiTexCoord3iARB\0"
+ "glMultiTexCoord3ivARB\0"
+ "glMultiTexCoord3sARB\0"
+ "glMultiTexCoord3svARB\0"
+ "glMultiTexCoord4dARB\0"
+ "glMultiTexCoord4dvARB\0"
+ "glMultiTexCoord4f\0"
+ "glMultiTexCoord4fv\0"
+ "glMultiTexCoord4iARB\0"
+ "glMultiTexCoord4ivARB\0"
+ "glMultiTexCoord4sARB\0"
+ "glMultiTexCoord4svARB\0"
+ "glCompressedTexImage1DARB\0"
+ "glCompressedTexImage2DARB\0"
+ "glCompressedTexImage3DARB\0"
+ "glCompressedTexImage3DOES\0"
+ "glCompressedTexSubImage1DARB\0"
+ "glCompressedTexSubImage2DARB\0"
+ "glCompressedTexSubImage3DARB\0"
+ "glCompressedTexSubImage3DOES\0"
+ "glGetCompressedTexImageARB\0"
+ "glLoadTransposeMatrixdARB\0"
+ "glLoadTransposeMatrixfARB\0"
+ "glMultTransposeMatrixdARB\0"
+ "glMultTransposeMatrixfARB\0"
+ "glSampleCoverageARB\0"
+ "glBlendFuncSeparateEXT\0"
+ "glBlendFuncSeparateINGR\0"
+ "glBlendFuncSeparateOES\0"
+ "glFogCoordPointerEXT\0"
+ "glFogCoorddEXT\0"
+ "glFogCoorddvEXT\0"
+ "glMultiDrawArraysEXT\0"
+ "glPointParameterfARB\0"
+ "glPointParameterfEXT\0"
+ "glPointParameterfSGIS\0"
+ "glPointParameterfvARB\0"
+ "glPointParameterfvEXT\0"
+ "glPointParameterfvSGIS\0"
+ "glPointParameteriNV\0"
+ "glPointParameterivNV\0"
+ "glSecondaryColor3bEXT\0"
+ "glSecondaryColor3bvEXT\0"
+ "glSecondaryColor3dEXT\0"
+ "glSecondaryColor3dvEXT\0"
+ "glSecondaryColor3iEXT\0"
+ "glSecondaryColor3ivEXT\0"
+ "glSecondaryColor3sEXT\0"
+ "glSecondaryColor3svEXT\0"
+ "glSecondaryColor3ubEXT\0"
+ "glSecondaryColor3ubvEXT\0"
+ "glSecondaryColor3uiEXT\0"
+ "glSecondaryColor3uivEXT\0"
+ "glSecondaryColor3usEXT\0"
+ "glSecondaryColor3usvEXT\0"
+ "glSecondaryColorPointerEXT\0"
+ "glWindowPos2dARB\0"
+ "glWindowPos2dMESA\0"
+ "glWindowPos2dvARB\0"
+ "glWindowPos2dvMESA\0"
+ "glWindowPos2fARB\0"
+ "glWindowPos2fMESA\0"
+ "glWindowPos2fvARB\0"
+ "glWindowPos2fvMESA\0"
+ "glWindowPos2iARB\0"
+ "glWindowPos2iMESA\0"
+ "glWindowPos2ivARB\0"
+ "glWindowPos2ivMESA\0"
+ "glWindowPos2sARB\0"
+ "glWindowPos2sMESA\0"
+ "glWindowPos2svARB\0"
+ "glWindowPos2svMESA\0"
+ "glWindowPos3dARB\0"
+ "glWindowPos3dMESA\0"
+ "glWindowPos3dvARB\0"
+ "glWindowPos3dvMESA\0"
+ "glWindowPos3fARB\0"
+ "glWindowPos3fMESA\0"
+ "glWindowPos3fvARB\0"
+ "glWindowPos3fvMESA\0"
+ "glWindowPos3iARB\0"
+ "glWindowPos3iMESA\0"
+ "glWindowPos3ivARB\0"
+ "glWindowPos3ivMESA\0"
+ "glWindowPos3sARB\0"
+ "glWindowPos3sMESA\0"
+ "glWindowPos3svARB\0"
+ "glWindowPos3svMESA\0"
+ "glBeginQueryARB\0"
+ "glBindBufferARB\0"
+ "glBufferDataARB\0"
+ "glBufferSubDataARB\0"
+ "glDeleteBuffersARB\0"
+ "glDeleteQueriesARB\0"
+ "glEndQueryARB\0"
+ "glGenBuffersARB\0"
+ "glGenQueriesARB\0"
+ "glGetBufferParameterivARB\0"
+ "glGetBufferPointervARB\0"
+ "glGetBufferPointervOES\0"
+ "glGetBufferSubDataARB\0"
+ "glGetQueryObjectivARB\0"
+ "glGetQueryObjectuivARB\0"
+ "glGetQueryivARB\0"
+ "glIsBufferARB\0"
+ "glIsQueryARB\0"
+ "glMapBufferARB\0"
+ "glMapBufferOES\0"
+ "glUnmapBufferARB\0"
+ "glUnmapBufferOES\0"
+ "glBindAttribLocationARB\0"
+ "glBlendEquationSeparateEXT\0"
+ "glBlendEquationSeparateATI\0"
+ "glBlendEquationSeparateOES\0"
+ "glCompileShaderARB\0"
+ "glDisableVertexAttribArrayARB\0"
+ "glDrawBuffersARB\0"
+ "glDrawBuffersATI\0"
+ "glDrawBuffersNV\0"
+ "glEnableVertexAttribArrayARB\0"
+ "glGetActiveAttribARB\0"
+ "glGetActiveUniformARB\0"
+ "glGetAttribLocationARB\0"
+ "glGetShaderSourceARB\0"
+ "glGetUniformLocationARB\0"
+ "glGetUniformfvARB\0"
+ "glGetUniformivARB\0"
+ "glGetVertexAttribPointervARB\0"
+ "glGetVertexAttribPointervNV\0"
+ "glGetVertexAttribdvARB\0"
+ "glGetVertexAttribfvARB\0"
+ "glGetVertexAttribivARB\0"
+ "glLinkProgramARB\0"
+ "glShaderSourceARB\0"
+ "glStencilOpSeparateATI\0"
+ "glUniform1fARB\0"
+ "glUniform1fvARB\0"
+ "glUniform1iARB\0"
+ "glUniform1ivARB\0"
+ "glUniform2fARB\0"
+ "glUniform2fvARB\0"
+ "glUniform2iARB\0"
+ "glUniform2ivARB\0"
+ "glUniform3fARB\0"
+ "glUniform3fvARB\0"
+ "glUniform3iARB\0"
+ "glUniform3ivARB\0"
+ "glUniform4fARB\0"
+ "glUniform4fvARB\0"
+ "glUniform4iARB\0"
+ "glUniform4ivARB\0"
+ "glUniformMatrix2fvARB\0"
+ "glUniformMatrix3fvARB\0"
+ "glUniformMatrix4fvARB\0"
+ "glUseProgramObjectARB\0"
+ "glValidateProgramARB\0"
+ "glVertexAttrib1dARB\0"
+ "glVertexAttrib1dvARB\0"
+ "glVertexAttrib1sARB\0"
+ "glVertexAttrib1svARB\0"
+ "glVertexAttrib2dARB\0"
+ "glVertexAttrib2dvARB\0"
+ "glVertexAttrib2sARB\0"
+ "glVertexAttrib2svARB\0"
+ "glVertexAttrib3dARB\0"
+ "glVertexAttrib3dvARB\0"
+ "glVertexAttrib3sARB\0"
+ "glVertexAttrib3svARB\0"
+ "glVertexAttrib4NbvARB\0"
+ "glVertexAttrib4NivARB\0"
+ "glVertexAttrib4NsvARB\0"
+ "glVertexAttrib4NubARB\0"
+ "glVertexAttrib4NubvARB\0"
+ "glVertexAttrib4NuivARB\0"
+ "glVertexAttrib4NusvARB\0"
+ "glVertexAttrib4bvARB\0"
+ "glVertexAttrib4dARB\0"
+ "glVertexAttrib4dvARB\0"
+ "glVertexAttrib4ivARB\0"
+ "glVertexAttrib4sARB\0"
+ "glVertexAttrib4svARB\0"
+ "glVertexAttrib4ubvARB\0"
+ "glVertexAttrib4uivARB\0"
+ "glVertexAttrib4usvARB\0"
+ "glVertexAttribPointerARB\0"
+ "glBeginConditionalRenderNV\0"
+ "glBeginTransformFeedbackEXT\0"
+ "glBindBufferBaseEXT\0"
+ "glBindBufferRangeEXT\0"
+ "glBindFragDataLocationEXT\0"
+ "glClampColorARB\0"
+ "glColorMaskIndexedEXT\0"
+ "glDisableIndexedEXT\0"
+ "glEnableIndexedEXT\0"
+ "glEndConditionalRenderNV\0"
+ "glEndTransformFeedbackEXT\0"
+ "glGetBooleanIndexedvEXT\0"
+ "glGetFragDataLocationEXT\0"
+ "glGetIntegerIndexedvEXT\0"
+ "glGetTexParameterIivEXT\0"
+ "glGetTexParameterIuivEXT\0"
+ "glGetTransformFeedbackVaryingEXT\0"
+ "glGetUniformuivEXT\0"
+ "glGetVertexAttribIivEXT\0"
+ "glGetVertexAttribIuivEXT\0"
+ "glIsEnabledIndexedEXT\0"
+ "glTexParameterIivEXT\0"
+ "glTexParameterIuivEXT\0"
+ "glTransformFeedbackVaryingsEXT\0"
+ "glUniform1uiEXT\0"
+ "glUniform1uivEXT\0"
+ "glUniform2uiEXT\0"
+ "glUniform2uivEXT\0"
+ "glUniform3uiEXT\0"
+ "glUniform3uivEXT\0"
+ "glUniform4uiEXT\0"
+ "glUniform4uivEXT\0"
+ "glVertexAttribI1ivEXT\0"
+ "glVertexAttribI1uivEXT\0"
+ "glVertexAttribI4bvEXT\0"
+ "glVertexAttribI4svEXT\0"
+ "glVertexAttribI4ubvEXT\0"
+ "glVertexAttribI4usvEXT\0"
+ "glVertexAttribIPointerEXT\0"
+ "glPrimitiveRestartIndexNV\0"
+ "glTexBufferARB\0"
+ "glFramebufferTextureARB\0"
+ "glVertexAttribDivisorARB\0"
+ "glMinSampleShadingARB\0"
+ "glBindProgramNV\0"
+ "glDeleteProgramsNV\0"
+ "glGenProgramsNV\0"
+ "glIsProgramNV\0"
+ "glProgramParameter4dNV\0"
+ "glProgramParameter4dvNV\0"
+ "glProgramParameter4fNV\0"
+ "glProgramParameter4fvNV\0"
+ "glVertexAttrib1f\0"
+ "glVertexAttrib1fv\0"
+ "glVertexAttrib2f\0"
+ "glVertexAttrib2fv\0"
+ "glVertexAttrib3f\0"
+ "glVertexAttrib3fv\0"
+ "glVertexAttrib4f\0"
+ "glVertexAttrib4fv\0"
+ "glDrawArraysInstancedEXT\0"
+ "glDrawArraysInstanced\0"
+ "glDrawElementsInstancedEXT\0"
+ "glDrawElementsInstanced\0"
+ "glBindFramebufferOES\0"
+ "glBindRenderbufferOES\0"
+ "glBlitFramebufferEXT\0"
+ "glCheckFramebufferStatusEXT\0"
+ "glCheckFramebufferStatusOES\0"
+ "glDeleteFramebuffersEXT\0"
+ "glDeleteFramebuffersOES\0"
+ "glDeleteRenderbuffersEXT\0"
+ "glDeleteRenderbuffersOES\0"
+ "glFramebufferRenderbufferEXT\0"
+ "glFramebufferRenderbufferOES\0"
+ "glFramebufferTexture1DEXT\0"
+ "glFramebufferTexture2DEXT\0"
+ "glFramebufferTexture2DOES\0"
+ "glFramebufferTexture3DEXT\0"
+ "glFramebufferTexture3DOES\0"
+ "glFramebufferTextureLayerARB\0"
+ "glFramebufferTextureLayerEXT\0"
+ "glGenFramebuffersEXT\0"
+ "glGenFramebuffersOES\0"
+ "glGenRenderbuffersEXT\0"
+ "glGenRenderbuffersOES\0"
+ "glGenerateMipmapEXT\0"
+ "glGenerateMipmapOES\0"
+ "glGetFramebufferAttachmentParameterivEXT\0"
+ "glGetFramebufferAttachmentParameterivOES\0"
+ "glGetRenderbufferParameterivEXT\0"
+ "glGetRenderbufferParameterivOES\0"
+ "glIsFramebufferEXT\0"
+ "glIsFramebufferOES\0"
+ "glIsRenderbufferEXT\0"
+ "glIsRenderbufferOES\0"
+ "glRenderbufferStorageEXT\0"
+ "glRenderbufferStorageOES\0"
+ "glRenderbufferStorageMultisampleEXT\0"
+ "glFlushMappedBufferRangeEXT\0"
+ "glMapBufferRangeEXT\0"
+ "glBindVertexArrayOES\0"
+ "glDeleteVertexArraysAPPLE\0"
+ "glDeleteVertexArraysOES\0"
+ "glGenVertexArraysOES\0"
+ "glIsVertexArrayAPPLE\0"
+ "glIsVertexArrayOES\0"
+ "glProvokingVertexEXT\0"
+ "glBlendEquationSeparateIndexedAMD\0"
+ "glBlendEquationIndexedAMD\0"
+ "glBlendFuncSeparateIndexedAMD\0"
+ "glBlendFuncIndexedAMD\0"
+ "glGetQueryObjecti64vEXT\0"
+ "glGetQueryObjectui64vEXT\0"
+ "glClearDepthfOES\0"
+ "glDepthRangefOES\0"
+ "glGetProgramBinaryOES\0"
+ "glProgramBinaryOES\0"
+ "glProgramParameteriARB\0"
+ "glSampleMaskEXT\0"
+ "glSamplePatternEXT\0"
+ "glSecondaryColor3f\0"
+ "glSecondaryColor3fv\0"
+ "glMultiDrawElements\0"
+ "glFogCoordf\0"
+ "glFogCoordfv\0"
+ "glVertexAttribI1i\0"
+ "glVertexAttribI1ui\0"
+ "glVertexAttribI2i\0"
+ "glVertexAttribI2iv\0"
+ "glVertexAttribI2ui\0"
+ "glVertexAttribI2uiv\0"
+ "glVertexAttribI3i\0"
+ "glVertexAttribI3iv\0"
+ "glVertexAttribI3ui\0"
+ "glVertexAttribI3uiv\0"
+ "glVertexAttribI4i\0"
+ "glVertexAttribI4iv\0"
+ "glVertexAttribI4ui\0"
+ "glVertexAttribI4uiv\0"
+ "glAlphaFuncxOES\0"
+ "glClearColorxOES\0"
+ "glClearDepthxOES\0"
+ "glColor4xOES\0"
+ "glDepthRangexOES\0"
+ "glFogxOES\0"
+ "glFogxvOES\0"
+ "glFrustumfOES\0"
+ "glFrustumxOES\0"
+ "glLightModelxOES\0"
+ "glLightModelxvOES\0"
+ "glLightxOES\0"
+ "glLightxvOES\0"
+ "glLineWidthxOES\0"
+ "glLoadMatrixxOES\0"
+ "glMaterialxOES\0"
+ "glMaterialxvOES\0"
+ "glMultMatrixxOES\0"
+ "glMultiTexCoord4xOES\0"
+ "glNormal3xOES\0"
+ "glOrthofOES\0"
+ "glOrthoxOES\0"
+ "glPointSizexOES\0"
+ "glPolygonOffsetxOES\0"
+ "glRotatexOES\0"
+ "glSampleCoveragexOES\0"
+ "glScalexOES\0"
+ "glTexEnvxOES\0"
+ "glTexEnvxvOES\0"
+ "glTexParameterxOES\0"
+ "glTranslatexOES\0"
+ "glClipPlanefOES\0"
+ "glClipPlanexOES\0"
+ "glGetClipPlanefOES\0"
+ "glGetClipPlanexOES\0"
+ "glGetFixedvOES\0"
+ "glGetLightxvOES\0"
+ "glGetMaterialxvOES\0"
+ "glGetTexEnvxvOES\0"
+ "glGetTexParameterxvOES\0"
+ "glPointParameterxOES\0"
+ "glPointParameterxvOES\0"
+ "glTexParameterxvOES\0"
+ ;
+
+
+#ifdef USE_MGL_NAMESPACE
+#define gl_dispatch_stub_343 mgl_dispatch_stub_343
+#define gl_dispatch_stub_344 mgl_dispatch_stub_344
+#define gl_dispatch_stub_345 mgl_dispatch_stub_345
+#define gl_dispatch_stub_356 mgl_dispatch_stub_356
+#define gl_dispatch_stub_357 mgl_dispatch_stub_357
+#define gl_dispatch_stub_358 mgl_dispatch_stub_358
+#define gl_dispatch_stub_359 mgl_dispatch_stub_359
+#define gl_dispatch_stub_361 mgl_dispatch_stub_361
+#define gl_dispatch_stub_362 mgl_dispatch_stub_362
+#define gl_dispatch_stub_363 mgl_dispatch_stub_363
+#define gl_dispatch_stub_364 mgl_dispatch_stub_364
+#define gl_dispatch_stub_365 mgl_dispatch_stub_365
+#define gl_dispatch_stub_366 mgl_dispatch_stub_366
+#define gl_dispatch_stub_731 mgl_dispatch_stub_731
+#define gl_dispatch_stub_732 mgl_dispatch_stub_732
+#define gl_dispatch_stub_733 mgl_dispatch_stub_733
+#define gl_dispatch_stub_820 mgl_dispatch_stub_820
+#define gl_dispatch_stub_844 mgl_dispatch_stub_844
+#define gl_dispatch_stub_845 mgl_dispatch_stub_845
+#define gl_dispatch_stub_846 mgl_dispatch_stub_846
+#define gl_dispatch_stub_847 mgl_dispatch_stub_847
+#define gl_dispatch_stub_848 mgl_dispatch_stub_848
+#define gl_dispatch_stub_849 mgl_dispatch_stub_849
+#define gl_dispatch_stub_850 mgl_dispatch_stub_850
+#define gl_dispatch_stub_851 mgl_dispatch_stub_851
+#define gl_dispatch_stub_852 mgl_dispatch_stub_852
+#define gl_dispatch_stub_853 mgl_dispatch_stub_853
+#define gl_dispatch_stub_854 mgl_dispatch_stub_854
+#define gl_dispatch_stub_855 mgl_dispatch_stub_855
+#define gl_dispatch_stub_862 mgl_dispatch_stub_862
+#define gl_dispatch_stub_889 mgl_dispatch_stub_889
+#define gl_dispatch_stub_890 mgl_dispatch_stub_890
+#define gl_dispatch_stub_964 mgl_dispatch_stub_964
+#define gl_dispatch_stub_965 mgl_dispatch_stub_965
+#define gl_dispatch_stub_966 mgl_dispatch_stub_966
+#define gl_dispatch_stub_974 mgl_dispatch_stub_974
+#define gl_dispatch_stub_975 mgl_dispatch_stub_975
+#define gl_dispatch_stub_976 mgl_dispatch_stub_976
+#define gl_dispatch_stub_977 mgl_dispatch_stub_977
+#define gl_dispatch_stub_980 mgl_dispatch_stub_980
+#define gl_dispatch_stub_981 mgl_dispatch_stub_981
+#define gl_dispatch_stub_1027 mgl_dispatch_stub_1027
+#define gl_dispatch_stub_1028 mgl_dispatch_stub_1028
+#define gl_dispatch_stub_1029 mgl_dispatch_stub_1029
+#define gl_dispatch_stub_1032 mgl_dispatch_stub_1032
+#define gl_dispatch_stub_1033 mgl_dispatch_stub_1033
+#define gl_dispatch_stub_1034 mgl_dispatch_stub_1034
+#define gl_dispatch_stub_1035 mgl_dispatch_stub_1035
+#define gl_dispatch_stub_1036 mgl_dispatch_stub_1036
+#define gl_dispatch_stub_1037 mgl_dispatch_stub_1037
+#define gl_dispatch_stub_1038 mgl_dispatch_stub_1038
+#define gl_dispatch_stub_1039 mgl_dispatch_stub_1039
+#define gl_dispatch_stub_1040 mgl_dispatch_stub_1040
+#define gl_dispatch_stub_1041 mgl_dispatch_stub_1041
+#define gl_dispatch_stub_1042 mgl_dispatch_stub_1042
+#define gl_dispatch_stub_1043 mgl_dispatch_stub_1043
+#define gl_dispatch_stub_1044 mgl_dispatch_stub_1044
+#define gl_dispatch_stub_1045 mgl_dispatch_stub_1045
+#define gl_dispatch_stub_1046 mgl_dispatch_stub_1046
+#define gl_dispatch_stub_1047 mgl_dispatch_stub_1047
+#define gl_dispatch_stub_1048 mgl_dispatch_stub_1048
+#define gl_dispatch_stub_1049 mgl_dispatch_stub_1049
+#define gl_dispatch_stub_1050 mgl_dispatch_stub_1050
+#define gl_dispatch_stub_1051 mgl_dispatch_stub_1051
+#define gl_dispatch_stub_1052 mgl_dispatch_stub_1052
+#define gl_dispatch_stub_1053 mgl_dispatch_stub_1053
+#define gl_dispatch_stub_1054 mgl_dispatch_stub_1054
+#define gl_dispatch_stub_1055 mgl_dispatch_stub_1055
+#define gl_dispatch_stub_1056 mgl_dispatch_stub_1056
+#define gl_dispatch_stub_1057 mgl_dispatch_stub_1057
+#define gl_dispatch_stub_1058 mgl_dispatch_stub_1058
+#define gl_dispatch_stub_1059 mgl_dispatch_stub_1059
+#define gl_dispatch_stub_1060 mgl_dispatch_stub_1060
+#define gl_dispatch_stub_1061 mgl_dispatch_stub_1061
+#define gl_dispatch_stub_1062 mgl_dispatch_stub_1062
+#define gl_dispatch_stub_1063 mgl_dispatch_stub_1063
+#define gl_dispatch_stub_1064 mgl_dispatch_stub_1064
+#define gl_dispatch_stub_1065 mgl_dispatch_stub_1065
+#define gl_dispatch_stub_1066 mgl_dispatch_stub_1066
+#define gl_dispatch_stub_1067 mgl_dispatch_stub_1067
+#define gl_dispatch_stub_1068 mgl_dispatch_stub_1068
+#define gl_dispatch_stub_1069 mgl_dispatch_stub_1069
+#define gl_dispatch_stub_1070 mgl_dispatch_stub_1070
+#define gl_dispatch_stub_1071 mgl_dispatch_stub_1071
+#define gl_dispatch_stub_1072 mgl_dispatch_stub_1072
+#define gl_dispatch_stub_1073 mgl_dispatch_stub_1073
+#define gl_dispatch_stub_1074 mgl_dispatch_stub_1074
+#endif /* USE_MGL_NAMESPACE */
+
+
+#if defined(NEED_FUNCTION_POINTER) || defined(GLX_INDIRECT_RENDERING)
+void GLAPIENTRY gl_dispatch_stub_343(GLenum target, GLenum format, GLenum type, GLvoid * table);
+void GLAPIENTRY gl_dispatch_stub_344(GLenum target, GLenum pname, GLfloat * params);
+void GLAPIENTRY gl_dispatch_stub_345(GLenum target, GLenum pname, GLint * params);
+void GLAPIENTRY gl_dispatch_stub_356(GLenum target, GLenum format, GLenum type, GLvoid * image);
+void GLAPIENTRY gl_dispatch_stub_357(GLenum target, GLenum pname, GLfloat * params);
+void GLAPIENTRY gl_dispatch_stub_358(GLenum target, GLenum pname, GLint * params);
+void GLAPIENTRY gl_dispatch_stub_359(GLenum target, GLenum format, GLenum type, GLvoid * row, GLvoid * column, GLvoid * span);
+void GLAPIENTRY gl_dispatch_stub_361(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values);
+void GLAPIENTRY gl_dispatch_stub_362(GLenum target, GLenum pname, GLfloat * params);
+void GLAPIENTRY gl_dispatch_stub_363(GLenum target, GLenum pname, GLint * params);
+void GLAPIENTRY gl_dispatch_stub_364(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values);
+void GLAPIENTRY gl_dispatch_stub_365(GLenum target, GLenum pname, GLfloat * params);
+void GLAPIENTRY gl_dispatch_stub_366(GLenum target, GLenum pname, GLint * params);
+void GLAPIENTRY gl_dispatch_stub_731(GLuint id, GLenum pname, GLint64 * params);
+void GLAPIENTRY gl_dispatch_stub_732(GLuint id, GLenum pname, GLuint64 * params);
+void GLAPIENTRY gl_dispatch_stub_733(GLuint id, GLenum target);
+void GLAPIENTRY gl_dispatch_stub_820(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint * params);
+void GLAPIENTRY gl_dispatch_stub_844(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height);
+void GLAPIENTRY gl_dispatch_stub_845(const GLfloat * coords);
+void GLAPIENTRY gl_dispatch_stub_846(GLint x, GLint y, GLint z, GLint width, GLint height);
+void GLAPIENTRY gl_dispatch_stub_847(const GLint * coords);
+void GLAPIENTRY gl_dispatch_stub_848(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height);
+void GLAPIENTRY gl_dispatch_stub_849(const GLshort * coords);
+void GLAPIENTRY gl_dispatch_stub_850(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height);
+void GLAPIENTRY gl_dispatch_stub_851(const GLfixed * coords);
+void GLAPIENTRY gl_dispatch_stub_852(GLenum type, GLsizei stride, const GLvoid * pointer);
+GLbitfield GLAPIENTRY gl_dispatch_stub_853(GLfixed * mantissa, GLint * exponent);
+void GLAPIENTRY gl_dispatch_stub_854(GLclampf value, GLboolean invert);
+void GLAPIENTRY gl_dispatch_stub_855(GLenum pattern);
+void GLAPIENTRY gl_dispatch_stub_862(GLenum target, GLsizei numAttachments, const GLenum * attachments);
+void GLAPIENTRY gl_dispatch_stub_889(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride);
+void GLAPIENTRY gl_dispatch_stub_890(const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride);
+void GLAPIENTRY gl_dispatch_stub_964(GLenum face);
+void GLAPIENTRY gl_dispatch_stub_965(GLuint array);
+void GLAPIENTRY gl_dispatch_stub_966(GLsizei n, GLuint * arrays);
+void GLAPIENTRY gl_dispatch_stub_974(GLenum coord, GLenum pname, GLfixed * params);
+void GLAPIENTRY gl_dispatch_stub_975(GLenum coord, GLenum pname, GLint param);
+void GLAPIENTRY gl_dispatch_stub_976(GLenum coord, GLenum pname, const GLfixed * params);
+void GLAPIENTRY gl_dispatch_stub_977(GLclampd zmin, GLclampd zmax);
+void GLAPIENTRY gl_dispatch_stub_980(GLenum target, GLenum pname, GLint param);
+void GLAPIENTRY gl_dispatch_stub_981(GLenum target, GLintptr offset, GLsizeiptr size);
+void GLAPIENTRY gl_dispatch_stub_1027(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
+void GLAPIENTRY gl_dispatch_stub_1028(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
+void GLAPIENTRY gl_dispatch_stub_1029(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
+void GLAPIENTRY gl_dispatch_stub_1032(GLenum func, GLclampx ref);
+void GLAPIENTRY gl_dispatch_stub_1033(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
+void GLAPIENTRY gl_dispatch_stub_1034(GLclampx depth);
+void GLAPIENTRY gl_dispatch_stub_1035(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+void GLAPIENTRY gl_dispatch_stub_1036(GLclampx zNear, GLclampx zFar);
+void GLAPIENTRY gl_dispatch_stub_1037(GLenum pname, GLfixed param);
+void GLAPIENTRY gl_dispatch_stub_1038(GLenum pname, const GLfixed * params);
+void GLAPIENTRY gl_dispatch_stub_1039(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
+void GLAPIENTRY gl_dispatch_stub_1040(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
+void GLAPIENTRY gl_dispatch_stub_1041(GLenum pname, GLfixed param);
+void GLAPIENTRY gl_dispatch_stub_1042(GLenum pname, const GLfixed * params);
+void GLAPIENTRY gl_dispatch_stub_1043(GLenum light, GLenum pname, GLfixed param);
+void GLAPIENTRY gl_dispatch_stub_1044(GLenum light, GLenum pname, const GLfixed * params);
+void GLAPIENTRY gl_dispatch_stub_1045(GLfixed width);
+void GLAPIENTRY gl_dispatch_stub_1046(const GLfixed * m);
+void GLAPIENTRY gl_dispatch_stub_1047(GLenum face, GLenum pname, GLfixed param);
+void GLAPIENTRY gl_dispatch_stub_1048(GLenum face, GLenum pname, const GLfixed * params);
+void GLAPIENTRY gl_dispatch_stub_1049(const GLfixed * m);
+void GLAPIENTRY gl_dispatch_stub_1050(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+void GLAPIENTRY gl_dispatch_stub_1051(GLfixed nx, GLfixed ny, GLfixed nz);
+void GLAPIENTRY gl_dispatch_stub_1052(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
+void GLAPIENTRY gl_dispatch_stub_1053(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
+void GLAPIENTRY gl_dispatch_stub_1054(GLfixed size);
+void GLAPIENTRY gl_dispatch_stub_1055(GLfixed factor, GLfixed units);
+void GLAPIENTRY gl_dispatch_stub_1056(GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
+void GLAPIENTRY gl_dispatch_stub_1057(GLclampx value, GLboolean invert);
+void GLAPIENTRY gl_dispatch_stub_1058(GLfixed x, GLfixed y, GLfixed z);
+void GLAPIENTRY gl_dispatch_stub_1059(GLenum target, GLenum pname, GLfixed param);
+void GLAPIENTRY gl_dispatch_stub_1060(GLenum target, GLenum pname, const GLfixed * params);
+void GLAPIENTRY gl_dispatch_stub_1061(GLenum target, GLenum pname, GLfixed param);
+void GLAPIENTRY gl_dispatch_stub_1062(GLfixed x, GLfixed y, GLfixed z);
+void GLAPIENTRY gl_dispatch_stub_1063(GLenum plane, const GLfloat * equation);
+void GLAPIENTRY gl_dispatch_stub_1064(GLenum plane, const GLfixed * equation);
+void GLAPIENTRY gl_dispatch_stub_1065(GLenum plane, GLfloat * equation);
+void GLAPIENTRY gl_dispatch_stub_1066(GLenum plane, GLfixed * equation);
+void GLAPIENTRY gl_dispatch_stub_1067(GLenum pname, GLfixed * params);
+void GLAPIENTRY gl_dispatch_stub_1068(GLenum light, GLenum pname, GLfixed * params);
+void GLAPIENTRY gl_dispatch_stub_1069(GLenum face, GLenum pname, GLfixed * params);
+void GLAPIENTRY gl_dispatch_stub_1070(GLenum target, GLenum pname, GLfixed * params);
+void GLAPIENTRY gl_dispatch_stub_1071(GLenum target, GLenum pname, GLfixed * params);
+void GLAPIENTRY gl_dispatch_stub_1072(GLenum pname, GLfixed param);
+void GLAPIENTRY gl_dispatch_stub_1073(GLenum pname, const GLfixed * params);
+void GLAPIENTRY gl_dispatch_stub_1074(GLenum target, GLenum pname, const GLfixed * params);
+#endif /* defined(NEED_FUNCTION_POINTER) || defined(GLX_INDIRECT_RENDERING) */
+
+static const glprocs_table_t static_functions[] = {
+ NAME_FUNC_OFFSET( 0, glNewList, glNewList, NULL, 0),
+ NAME_FUNC_OFFSET( 10, glEndList, glEndList, NULL, 1),
+ NAME_FUNC_OFFSET( 20, glCallList, glCallList, NULL, 2),
+ NAME_FUNC_OFFSET( 31, glCallLists, glCallLists, NULL, 3),
+ NAME_FUNC_OFFSET( 43, glDeleteLists, glDeleteLists, NULL, 4),
+ NAME_FUNC_OFFSET( 57, glGenLists, glGenLists, NULL, 5),
+ NAME_FUNC_OFFSET( 68, glListBase, glListBase, NULL, 6),
+ NAME_FUNC_OFFSET( 79, glBegin, glBegin, NULL, 7),
+ NAME_FUNC_OFFSET( 87, glBitmap, glBitmap, NULL, 8),
+ NAME_FUNC_OFFSET( 96, glColor3b, glColor3b, NULL, 9),
+ NAME_FUNC_OFFSET( 106, glColor3bv, glColor3bv, NULL, 10),
+ NAME_FUNC_OFFSET( 117, glColor3d, glColor3d, NULL, 11),
+ NAME_FUNC_OFFSET( 127, glColor3dv, glColor3dv, NULL, 12),
+ NAME_FUNC_OFFSET( 138, glColor3f, glColor3f, NULL, 13),
+ NAME_FUNC_OFFSET( 148, glColor3fv, glColor3fv, NULL, 14),
+ NAME_FUNC_OFFSET( 159, glColor3i, glColor3i, NULL, 15),
+ NAME_FUNC_OFFSET( 169, glColor3iv, glColor3iv, NULL, 16),
+ NAME_FUNC_OFFSET( 180, glColor3s, glColor3s, NULL, 17),
+ NAME_FUNC_OFFSET( 190, glColor3sv, glColor3sv, NULL, 18),
+ NAME_FUNC_OFFSET( 201, glColor3ub, glColor3ub, NULL, 19),
+ NAME_FUNC_OFFSET( 212, glColor3ubv, glColor3ubv, NULL, 20),
+ NAME_FUNC_OFFSET( 224, glColor3ui, glColor3ui, NULL, 21),
+ NAME_FUNC_OFFSET( 235, glColor3uiv, glColor3uiv, NULL, 22),
+ NAME_FUNC_OFFSET( 247, glColor3us, glColor3us, NULL, 23),
+ NAME_FUNC_OFFSET( 258, glColor3usv, glColor3usv, NULL, 24),
+ NAME_FUNC_OFFSET( 270, glColor4b, glColor4b, NULL, 25),
+ NAME_FUNC_OFFSET( 280, glColor4bv, glColor4bv, NULL, 26),
+ NAME_FUNC_OFFSET( 291, glColor4d, glColor4d, NULL, 27),
+ NAME_FUNC_OFFSET( 301, glColor4dv, glColor4dv, NULL, 28),
+ NAME_FUNC_OFFSET( 312, glColor4f, glColor4f, NULL, 29),
+ NAME_FUNC_OFFSET( 322, glColor4fv, glColor4fv, NULL, 30),
+ NAME_FUNC_OFFSET( 333, glColor4i, glColor4i, NULL, 31),
+ NAME_FUNC_OFFSET( 343, glColor4iv, glColor4iv, NULL, 32),
+ NAME_FUNC_OFFSET( 354, glColor4s, glColor4s, NULL, 33),
+ NAME_FUNC_OFFSET( 364, glColor4sv, glColor4sv, NULL, 34),
+ NAME_FUNC_OFFSET( 375, glColor4ub, glColor4ub, NULL, 35),
+ NAME_FUNC_OFFSET( 386, glColor4ubv, glColor4ubv, NULL, 36),
+ NAME_FUNC_OFFSET( 398, glColor4ui, glColor4ui, NULL, 37),
+ NAME_FUNC_OFFSET( 409, glColor4uiv, glColor4uiv, NULL, 38),
+ NAME_FUNC_OFFSET( 421, glColor4us, glColor4us, NULL, 39),
+ NAME_FUNC_OFFSET( 432, glColor4usv, glColor4usv, NULL, 40),
+ NAME_FUNC_OFFSET( 444, glEdgeFlag, glEdgeFlag, NULL, 41),
+ NAME_FUNC_OFFSET( 455, glEdgeFlagv, glEdgeFlagv, NULL, 42),
+ NAME_FUNC_OFFSET( 467, glEnd, glEnd, NULL, 43),
+ NAME_FUNC_OFFSET( 473, glIndexd, glIndexd, NULL, 44),
+ NAME_FUNC_OFFSET( 482, glIndexdv, glIndexdv, NULL, 45),
+ NAME_FUNC_OFFSET( 492, glIndexf, glIndexf, NULL, 46),
+ NAME_FUNC_OFFSET( 501, glIndexfv, glIndexfv, NULL, 47),
+ NAME_FUNC_OFFSET( 511, glIndexi, glIndexi, NULL, 48),
+ NAME_FUNC_OFFSET( 520, glIndexiv, glIndexiv, NULL, 49),
+ NAME_FUNC_OFFSET( 530, glIndexs, glIndexs, NULL, 50),
+ NAME_FUNC_OFFSET( 539, glIndexsv, glIndexsv, NULL, 51),
+ NAME_FUNC_OFFSET( 549, glNormal3b, glNormal3b, NULL, 52),
+ NAME_FUNC_OFFSET( 560, glNormal3bv, glNormal3bv, NULL, 53),
+ NAME_FUNC_OFFSET( 572, glNormal3d, glNormal3d, NULL, 54),
+ NAME_FUNC_OFFSET( 583, glNormal3dv, glNormal3dv, NULL, 55),
+ NAME_FUNC_OFFSET( 595, glNormal3f, glNormal3f, NULL, 56),
+ NAME_FUNC_OFFSET( 606, glNormal3fv, glNormal3fv, NULL, 57),
+ NAME_FUNC_OFFSET( 618, glNormal3i, glNormal3i, NULL, 58),
+ NAME_FUNC_OFFSET( 629, glNormal3iv, glNormal3iv, NULL, 59),
+ NAME_FUNC_OFFSET( 641, glNormal3s, glNormal3s, NULL, 60),
+ NAME_FUNC_OFFSET( 652, glNormal3sv, glNormal3sv, NULL, 61),
+ NAME_FUNC_OFFSET( 664, glRasterPos2d, glRasterPos2d, NULL, 62),
+ NAME_FUNC_OFFSET( 678, glRasterPos2dv, glRasterPos2dv, NULL, 63),
+ NAME_FUNC_OFFSET( 693, glRasterPos2f, glRasterPos2f, NULL, 64),
+ NAME_FUNC_OFFSET( 707, glRasterPos2fv, glRasterPos2fv, NULL, 65),
+ NAME_FUNC_OFFSET( 722, glRasterPos2i, glRasterPos2i, NULL, 66),
+ NAME_FUNC_OFFSET( 736, glRasterPos2iv, glRasterPos2iv, NULL, 67),
+ NAME_FUNC_OFFSET( 751, glRasterPos2s, glRasterPos2s, NULL, 68),
+ NAME_FUNC_OFFSET( 765, glRasterPos2sv, glRasterPos2sv, NULL, 69),
+ NAME_FUNC_OFFSET( 780, glRasterPos3d, glRasterPos3d, NULL, 70),
+ NAME_FUNC_OFFSET( 794, glRasterPos3dv, glRasterPos3dv, NULL, 71),
+ NAME_FUNC_OFFSET( 809, glRasterPos3f, glRasterPos3f, NULL, 72),
+ NAME_FUNC_OFFSET( 823, glRasterPos3fv, glRasterPos3fv, NULL, 73),
+ NAME_FUNC_OFFSET( 838, glRasterPos3i, glRasterPos3i, NULL, 74),
+ NAME_FUNC_OFFSET( 852, glRasterPos3iv, glRasterPos3iv, NULL, 75),
+ NAME_FUNC_OFFSET( 867, glRasterPos3s, glRasterPos3s, NULL, 76),
+ NAME_FUNC_OFFSET( 881, glRasterPos3sv, glRasterPos3sv, NULL, 77),
+ NAME_FUNC_OFFSET( 896, glRasterPos4d, glRasterPos4d, NULL, 78),
+ NAME_FUNC_OFFSET( 910, glRasterPos4dv, glRasterPos4dv, NULL, 79),
+ NAME_FUNC_OFFSET( 925, glRasterPos4f, glRasterPos4f, NULL, 80),
+ NAME_FUNC_OFFSET( 939, glRasterPos4fv, glRasterPos4fv, NULL, 81),
+ NAME_FUNC_OFFSET( 954, glRasterPos4i, glRasterPos4i, NULL, 82),
+ NAME_FUNC_OFFSET( 968, glRasterPos4iv, glRasterPos4iv, NULL, 83),
+ NAME_FUNC_OFFSET( 983, glRasterPos4s, glRasterPos4s, NULL, 84),
+ NAME_FUNC_OFFSET( 997, glRasterPos4sv, glRasterPos4sv, NULL, 85),
+ NAME_FUNC_OFFSET( 1012, glRectd, glRectd, NULL, 86),
+ NAME_FUNC_OFFSET( 1020, glRectdv, glRectdv, NULL, 87),
+ NAME_FUNC_OFFSET( 1029, glRectf, glRectf, NULL, 88),
+ NAME_FUNC_OFFSET( 1037, glRectfv, glRectfv, NULL, 89),
+ NAME_FUNC_OFFSET( 1046, glRecti, glRecti, NULL, 90),
+ NAME_FUNC_OFFSET( 1054, glRectiv, glRectiv, NULL, 91),
+ NAME_FUNC_OFFSET( 1063, glRects, glRects, NULL, 92),
+ NAME_FUNC_OFFSET( 1071, glRectsv, glRectsv, NULL, 93),
+ NAME_FUNC_OFFSET( 1080, glTexCoord1d, glTexCoord1d, NULL, 94),
+ NAME_FUNC_OFFSET( 1093, glTexCoord1dv, glTexCoord1dv, NULL, 95),
+ NAME_FUNC_OFFSET( 1107, glTexCoord1f, glTexCoord1f, NULL, 96),
+ NAME_FUNC_OFFSET( 1120, glTexCoord1fv, glTexCoord1fv, NULL, 97),
+ NAME_FUNC_OFFSET( 1134, glTexCoord1i, glTexCoord1i, NULL, 98),
+ NAME_FUNC_OFFSET( 1147, glTexCoord1iv, glTexCoord1iv, NULL, 99),
+ NAME_FUNC_OFFSET( 1161, glTexCoord1s, glTexCoord1s, NULL, 100),
+ NAME_FUNC_OFFSET( 1174, glTexCoord1sv, glTexCoord1sv, NULL, 101),
+ NAME_FUNC_OFFSET( 1188, glTexCoord2d, glTexCoord2d, NULL, 102),
+ NAME_FUNC_OFFSET( 1201, glTexCoord2dv, glTexCoord2dv, NULL, 103),
+ NAME_FUNC_OFFSET( 1215, glTexCoord2f, glTexCoord2f, NULL, 104),
+ NAME_FUNC_OFFSET( 1228, glTexCoord2fv, glTexCoord2fv, NULL, 105),
+ NAME_FUNC_OFFSET( 1242, glTexCoord2i, glTexCoord2i, NULL, 106),
+ NAME_FUNC_OFFSET( 1255, glTexCoord2iv, glTexCoord2iv, NULL, 107),
+ NAME_FUNC_OFFSET( 1269, glTexCoord2s, glTexCoord2s, NULL, 108),
+ NAME_FUNC_OFFSET( 1282, glTexCoord2sv, glTexCoord2sv, NULL, 109),
+ NAME_FUNC_OFFSET( 1296, glTexCoord3d, glTexCoord3d, NULL, 110),
+ NAME_FUNC_OFFSET( 1309, glTexCoord3dv, glTexCoord3dv, NULL, 111),
+ NAME_FUNC_OFFSET( 1323, glTexCoord3f, glTexCoord3f, NULL, 112),
+ NAME_FUNC_OFFSET( 1336, glTexCoord3fv, glTexCoord3fv, NULL, 113),
+ NAME_FUNC_OFFSET( 1350, glTexCoord3i, glTexCoord3i, NULL, 114),
+ NAME_FUNC_OFFSET( 1363, glTexCoord3iv, glTexCoord3iv, NULL, 115),
+ NAME_FUNC_OFFSET( 1377, glTexCoord3s, glTexCoord3s, NULL, 116),
+ NAME_FUNC_OFFSET( 1390, glTexCoord3sv, glTexCoord3sv, NULL, 117),
+ NAME_FUNC_OFFSET( 1404, glTexCoord4d, glTexCoord4d, NULL, 118),
+ NAME_FUNC_OFFSET( 1417, glTexCoord4dv, glTexCoord4dv, NULL, 119),
+ NAME_FUNC_OFFSET( 1431, glTexCoord4f, glTexCoord4f, NULL, 120),
+ NAME_FUNC_OFFSET( 1444, glTexCoord4fv, glTexCoord4fv, NULL, 121),
+ NAME_FUNC_OFFSET( 1458, glTexCoord4i, glTexCoord4i, NULL, 122),
+ NAME_FUNC_OFFSET( 1471, glTexCoord4iv, glTexCoord4iv, NULL, 123),
+ NAME_FUNC_OFFSET( 1485, glTexCoord4s, glTexCoord4s, NULL, 124),
+ NAME_FUNC_OFFSET( 1498, glTexCoord4sv, glTexCoord4sv, NULL, 125),
+ NAME_FUNC_OFFSET( 1512, glVertex2d, glVertex2d, NULL, 126),
+ NAME_FUNC_OFFSET( 1523, glVertex2dv, glVertex2dv, NULL, 127),
+ NAME_FUNC_OFFSET( 1535, glVertex2f, glVertex2f, NULL, 128),
+ NAME_FUNC_OFFSET( 1546, glVertex2fv, glVertex2fv, NULL, 129),
+ NAME_FUNC_OFFSET( 1558, glVertex2i, glVertex2i, NULL, 130),
+ NAME_FUNC_OFFSET( 1569, glVertex2iv, glVertex2iv, NULL, 131),
+ NAME_FUNC_OFFSET( 1581, glVertex2s, glVertex2s, NULL, 132),
+ NAME_FUNC_OFFSET( 1592, glVertex2sv, glVertex2sv, NULL, 133),
+ NAME_FUNC_OFFSET( 1604, glVertex3d, glVertex3d, NULL, 134),
+ NAME_FUNC_OFFSET( 1615, glVertex3dv, glVertex3dv, NULL, 135),
+ NAME_FUNC_OFFSET( 1627, glVertex3f, glVertex3f, NULL, 136),
+ NAME_FUNC_OFFSET( 1638, glVertex3fv, glVertex3fv, NULL, 137),
+ NAME_FUNC_OFFSET( 1650, glVertex3i, glVertex3i, NULL, 138),
+ NAME_FUNC_OFFSET( 1661, glVertex3iv, glVertex3iv, NULL, 139),
+ NAME_FUNC_OFFSET( 1673, glVertex3s, glVertex3s, NULL, 140),
+ NAME_FUNC_OFFSET( 1684, glVertex3sv, glVertex3sv, NULL, 141),
+ NAME_FUNC_OFFSET( 1696, glVertex4d, glVertex4d, NULL, 142),
+ NAME_FUNC_OFFSET( 1707, glVertex4dv, glVertex4dv, NULL, 143),
+ NAME_FUNC_OFFSET( 1719, glVertex4f, glVertex4f, NULL, 144),
+ NAME_FUNC_OFFSET( 1730, glVertex4fv, glVertex4fv, NULL, 145),
+ NAME_FUNC_OFFSET( 1742, glVertex4i, glVertex4i, NULL, 146),
+ NAME_FUNC_OFFSET( 1753, glVertex4iv, glVertex4iv, NULL, 147),
+ NAME_FUNC_OFFSET( 1765, glVertex4s, glVertex4s, NULL, 148),
+ NAME_FUNC_OFFSET( 1776, glVertex4sv, glVertex4sv, NULL, 149),
+ NAME_FUNC_OFFSET( 1788, glClipPlane, glClipPlane, NULL, 150),
+ NAME_FUNC_OFFSET( 1800, glColorMaterial, glColorMaterial, NULL, 151),
+ NAME_FUNC_OFFSET( 1816, glCullFace, glCullFace, NULL, 152),
+ NAME_FUNC_OFFSET( 1827, glFogf, glFogf, NULL, 153),
+ NAME_FUNC_OFFSET( 1834, glFogfv, glFogfv, NULL, 154),
+ NAME_FUNC_OFFSET( 1842, glFogi, glFogi, NULL, 155),
+ NAME_FUNC_OFFSET( 1849, glFogiv, glFogiv, NULL, 156),
+ NAME_FUNC_OFFSET( 1857, glFrontFace, glFrontFace, NULL, 157),
+ NAME_FUNC_OFFSET( 1869, glHint, glHint, NULL, 158),
+ NAME_FUNC_OFFSET( 1876, glLightf, glLightf, NULL, 159),
+ NAME_FUNC_OFFSET( 1885, glLightfv, glLightfv, NULL, 160),
+ NAME_FUNC_OFFSET( 1895, glLighti, glLighti, NULL, 161),
+ NAME_FUNC_OFFSET( 1904, glLightiv, glLightiv, NULL, 162),
+ NAME_FUNC_OFFSET( 1914, glLightModelf, glLightModelf, NULL, 163),
+ NAME_FUNC_OFFSET( 1928, glLightModelfv, glLightModelfv, NULL, 164),
+ NAME_FUNC_OFFSET( 1943, glLightModeli, glLightModeli, NULL, 165),
+ NAME_FUNC_OFFSET( 1957, glLightModeliv, glLightModeliv, NULL, 166),
+ NAME_FUNC_OFFSET( 1972, glLineStipple, glLineStipple, NULL, 167),
+ NAME_FUNC_OFFSET( 1986, glLineWidth, glLineWidth, NULL, 168),
+ NAME_FUNC_OFFSET( 1998, glMaterialf, glMaterialf, NULL, 169),
+ NAME_FUNC_OFFSET( 2010, glMaterialfv, glMaterialfv, NULL, 170),
+ NAME_FUNC_OFFSET( 2023, glMateriali, glMateriali, NULL, 171),
+ NAME_FUNC_OFFSET( 2035, glMaterialiv, glMaterialiv, NULL, 172),
+ NAME_FUNC_OFFSET( 2048, glPointSize, glPointSize, NULL, 173),
+ NAME_FUNC_OFFSET( 2060, glPolygonMode, glPolygonMode, NULL, 174),
+ NAME_FUNC_OFFSET( 2074, glPolygonStipple, glPolygonStipple, NULL, 175),
+ NAME_FUNC_OFFSET( 2091, glScissor, glScissor, NULL, 176),
+ NAME_FUNC_OFFSET( 2101, glShadeModel, glShadeModel, NULL, 177),
+ NAME_FUNC_OFFSET( 2114, glTexParameterf, glTexParameterf, NULL, 178),
+ NAME_FUNC_OFFSET( 2130, glTexParameterfv, glTexParameterfv, NULL, 179),
+ NAME_FUNC_OFFSET( 2147, glTexParameteri, glTexParameteri, NULL, 180),
+ NAME_FUNC_OFFSET( 2163, glTexParameteriv, glTexParameteriv, NULL, 181),
+ NAME_FUNC_OFFSET( 2180, glTexImage1D, glTexImage1D, NULL, 182),
+ NAME_FUNC_OFFSET( 2193, glTexImage2D, glTexImage2D, NULL, 183),
+ NAME_FUNC_OFFSET( 2206, glTexEnvf, glTexEnvf, NULL, 184),
+ NAME_FUNC_OFFSET( 2216, glTexEnvfv, glTexEnvfv, NULL, 185),
+ NAME_FUNC_OFFSET( 2227, glTexEnvi, glTexEnvi, NULL, 186),
+ NAME_FUNC_OFFSET( 2237, glTexEnviv, glTexEnviv, NULL, 187),
+ NAME_FUNC_OFFSET( 2248, glTexGend, glTexGend, NULL, 188),
+ NAME_FUNC_OFFSET( 2258, glTexGendv, glTexGendv, NULL, 189),
+ NAME_FUNC_OFFSET( 2269, glTexGenf, glTexGenf, NULL, 190),
+ NAME_FUNC_OFFSET( 2279, glTexGenfv, glTexGenfv, NULL, 191),
+ NAME_FUNC_OFFSET( 2290, glTexGeni, glTexGeni, NULL, 192),
+ NAME_FUNC_OFFSET( 2300, glTexGeniv, glTexGeniv, NULL, 193),
+ NAME_FUNC_OFFSET( 2311, glFeedbackBuffer, glFeedbackBuffer, NULL, 194),
+ NAME_FUNC_OFFSET( 2328, glSelectBuffer, glSelectBuffer, NULL, 195),
+ NAME_FUNC_OFFSET( 2343, glRenderMode, glRenderMode, NULL, 196),
+ NAME_FUNC_OFFSET( 2356, glInitNames, glInitNames, NULL, 197),
+ NAME_FUNC_OFFSET( 2368, glLoadName, glLoadName, NULL, 198),
+ NAME_FUNC_OFFSET( 2379, glPassThrough, glPassThrough, NULL, 199),
+ NAME_FUNC_OFFSET( 2393, glPopName, glPopName, NULL, 200),
+ NAME_FUNC_OFFSET( 2403, glPushName, glPushName, NULL, 201),
+ NAME_FUNC_OFFSET( 2414, glDrawBuffer, glDrawBuffer, NULL, 202),
+ NAME_FUNC_OFFSET( 2427, glClear, glClear, NULL, 203),
+ NAME_FUNC_OFFSET( 2435, glClearAccum, glClearAccum, NULL, 204),
+ NAME_FUNC_OFFSET( 2448, glClearIndex, glClearIndex, NULL, 205),
+ NAME_FUNC_OFFSET( 2461, glClearColor, glClearColor, NULL, 206),
+ NAME_FUNC_OFFSET( 2474, glClearStencil, glClearStencil, NULL, 207),
+ NAME_FUNC_OFFSET( 2489, glClearDepth, glClearDepth, NULL, 208),
+ NAME_FUNC_OFFSET( 2502, glStencilMask, glStencilMask, NULL, 209),
+ NAME_FUNC_OFFSET( 2516, glColorMask, glColorMask, NULL, 210),
+ NAME_FUNC_OFFSET( 2528, glDepthMask, glDepthMask, NULL, 211),
+ NAME_FUNC_OFFSET( 2540, glIndexMask, glIndexMask, NULL, 212),
+ NAME_FUNC_OFFSET( 2552, glAccum, glAccum, NULL, 213),
+ NAME_FUNC_OFFSET( 2560, glDisable, glDisable, NULL, 214),
+ NAME_FUNC_OFFSET( 2570, glEnable, glEnable, NULL, 215),
+ NAME_FUNC_OFFSET( 2579, glFinish, glFinish, NULL, 216),
+ NAME_FUNC_OFFSET( 2588, glFlush, glFlush, NULL, 217),
+ NAME_FUNC_OFFSET( 2596, glPopAttrib, glPopAttrib, NULL, 218),
+ NAME_FUNC_OFFSET( 2608, glPushAttrib, glPushAttrib, NULL, 219),
+ NAME_FUNC_OFFSET( 2621, glMap1d, glMap1d, NULL, 220),
+ NAME_FUNC_OFFSET( 2629, glMap1f, glMap1f, NULL, 221),
+ NAME_FUNC_OFFSET( 2637, glMap2d, glMap2d, NULL, 222),
+ NAME_FUNC_OFFSET( 2645, glMap2f, glMap2f, NULL, 223),
+ NAME_FUNC_OFFSET( 2653, glMapGrid1d, glMapGrid1d, NULL, 224),
+ NAME_FUNC_OFFSET( 2665, glMapGrid1f, glMapGrid1f, NULL, 225),
+ NAME_FUNC_OFFSET( 2677, glMapGrid2d, glMapGrid2d, NULL, 226),
+ NAME_FUNC_OFFSET( 2689, glMapGrid2f, glMapGrid2f, NULL, 227),
+ NAME_FUNC_OFFSET( 2701, glEvalCoord1d, glEvalCoord1d, NULL, 228),
+ NAME_FUNC_OFFSET( 2715, glEvalCoord1dv, glEvalCoord1dv, NULL, 229),
+ NAME_FUNC_OFFSET( 2730, glEvalCoord1f, glEvalCoord1f, NULL, 230),
+ NAME_FUNC_OFFSET( 2744, glEvalCoord1fv, glEvalCoord1fv, NULL, 231),
+ NAME_FUNC_OFFSET( 2759, glEvalCoord2d, glEvalCoord2d, NULL, 232),
+ NAME_FUNC_OFFSET( 2773, glEvalCoord2dv, glEvalCoord2dv, NULL, 233),
+ NAME_FUNC_OFFSET( 2788, glEvalCoord2f, glEvalCoord2f, NULL, 234),
+ NAME_FUNC_OFFSET( 2802, glEvalCoord2fv, glEvalCoord2fv, NULL, 235),
+ NAME_FUNC_OFFSET( 2817, glEvalMesh1, glEvalMesh1, NULL, 236),
+ NAME_FUNC_OFFSET( 2829, glEvalPoint1, glEvalPoint1, NULL, 237),
+ NAME_FUNC_OFFSET( 2842, glEvalMesh2, glEvalMesh2, NULL, 238),
+ NAME_FUNC_OFFSET( 2854, glEvalPoint2, glEvalPoint2, NULL, 239),
+ NAME_FUNC_OFFSET( 2867, glAlphaFunc, glAlphaFunc, NULL, 240),
+ NAME_FUNC_OFFSET( 2879, glBlendFunc, glBlendFunc, NULL, 241),
+ NAME_FUNC_OFFSET( 2891, glLogicOp, glLogicOp, NULL, 242),
+ NAME_FUNC_OFFSET( 2901, glStencilFunc, glStencilFunc, NULL, 243),
+ NAME_FUNC_OFFSET( 2915, glStencilOp, glStencilOp, NULL, 244),
+ NAME_FUNC_OFFSET( 2927, glDepthFunc, glDepthFunc, NULL, 245),
+ NAME_FUNC_OFFSET( 2939, glPixelZoom, glPixelZoom, NULL, 246),
+ NAME_FUNC_OFFSET( 2951, glPixelTransferf, glPixelTransferf, NULL, 247),
+ NAME_FUNC_OFFSET( 2968, glPixelTransferi, glPixelTransferi, NULL, 248),
+ NAME_FUNC_OFFSET( 2985, glPixelStoref, glPixelStoref, NULL, 249),
+ NAME_FUNC_OFFSET( 2999, glPixelStorei, glPixelStorei, NULL, 250),
+ NAME_FUNC_OFFSET( 3013, glPixelMapfv, glPixelMapfv, NULL, 251),
+ NAME_FUNC_OFFSET( 3026, glPixelMapuiv, glPixelMapuiv, NULL, 252),
+ NAME_FUNC_OFFSET( 3040, glPixelMapusv, glPixelMapusv, NULL, 253),
+ NAME_FUNC_OFFSET( 3054, glReadBuffer, glReadBuffer, NULL, 254),
+ NAME_FUNC_OFFSET( 3067, glCopyPixels, glCopyPixels, NULL, 255),
+ NAME_FUNC_OFFSET( 3080, glReadPixels, glReadPixels, NULL, 256),
+ NAME_FUNC_OFFSET( 3093, glDrawPixels, glDrawPixels, NULL, 257),
+ NAME_FUNC_OFFSET( 3106, glGetBooleanv, glGetBooleanv, NULL, 258),
+ NAME_FUNC_OFFSET( 3120, glGetClipPlane, glGetClipPlane, NULL, 259),
+ NAME_FUNC_OFFSET( 3135, glGetDoublev, glGetDoublev, NULL, 260),
+ NAME_FUNC_OFFSET( 3148, glGetError, glGetError, NULL, 261),
+ NAME_FUNC_OFFSET( 3159, glGetFloatv, glGetFloatv, NULL, 262),
+ NAME_FUNC_OFFSET( 3171, glGetIntegerv, glGetIntegerv, NULL, 263),
+ NAME_FUNC_OFFSET( 3185, glGetLightfv, glGetLightfv, NULL, 264),
+ NAME_FUNC_OFFSET( 3198, glGetLightiv, glGetLightiv, NULL, 265),
+ NAME_FUNC_OFFSET( 3211, glGetMapdv, glGetMapdv, NULL, 266),
+ NAME_FUNC_OFFSET( 3222, glGetMapfv, glGetMapfv, NULL, 267),
+ NAME_FUNC_OFFSET( 3233, glGetMapiv, glGetMapiv, NULL, 268),
+ NAME_FUNC_OFFSET( 3244, glGetMaterialfv, glGetMaterialfv, NULL, 269),
+ NAME_FUNC_OFFSET( 3260, glGetMaterialiv, glGetMaterialiv, NULL, 270),
+ NAME_FUNC_OFFSET( 3276, glGetPixelMapfv, glGetPixelMapfv, NULL, 271),
+ NAME_FUNC_OFFSET( 3292, glGetPixelMapuiv, glGetPixelMapuiv, NULL, 272),
+ NAME_FUNC_OFFSET( 3309, glGetPixelMapusv, glGetPixelMapusv, NULL, 273),
+ NAME_FUNC_OFFSET( 3326, glGetPolygonStipple, glGetPolygonStipple, NULL, 274),
+ NAME_FUNC_OFFSET( 3346, glGetString, glGetString, NULL, 275),
+ NAME_FUNC_OFFSET( 3358, glGetTexEnvfv, glGetTexEnvfv, NULL, 276),
+ NAME_FUNC_OFFSET( 3372, glGetTexEnviv, glGetTexEnviv, NULL, 277),
+ NAME_FUNC_OFFSET( 3386, glGetTexGendv, glGetTexGendv, NULL, 278),
+ NAME_FUNC_OFFSET( 3400, glGetTexGenfv, glGetTexGenfv, NULL, 279),
+ NAME_FUNC_OFFSET( 3414, glGetTexGeniv, glGetTexGeniv, NULL, 280),
+ NAME_FUNC_OFFSET( 3428, glGetTexImage, glGetTexImage, NULL, 281),
+ NAME_FUNC_OFFSET( 3442, glGetTexParameterfv, glGetTexParameterfv, NULL, 282),
+ NAME_FUNC_OFFSET( 3462, glGetTexParameteriv, glGetTexParameteriv, NULL, 283),
+ NAME_FUNC_OFFSET( 3482, glGetTexLevelParameterfv, glGetTexLevelParameterfv, NULL, 284),
+ NAME_FUNC_OFFSET( 3507, glGetTexLevelParameteriv, glGetTexLevelParameteriv, NULL, 285),
+ NAME_FUNC_OFFSET( 3532, glIsEnabled, glIsEnabled, NULL, 286),
+ NAME_FUNC_OFFSET( 3544, glIsList, glIsList, NULL, 287),
+ NAME_FUNC_OFFSET( 3553, glDepthRange, glDepthRange, NULL, 288),
+ NAME_FUNC_OFFSET( 3566, glFrustum, glFrustum, NULL, 289),
+ NAME_FUNC_OFFSET( 3576, glLoadIdentity, glLoadIdentity, NULL, 290),
+ NAME_FUNC_OFFSET( 3591, glLoadMatrixf, glLoadMatrixf, NULL, 291),
+ NAME_FUNC_OFFSET( 3605, glLoadMatrixd, glLoadMatrixd, NULL, 292),
+ NAME_FUNC_OFFSET( 3619, glMatrixMode, glMatrixMode, NULL, 293),
+ NAME_FUNC_OFFSET( 3632, glMultMatrixf, glMultMatrixf, NULL, 294),
+ NAME_FUNC_OFFSET( 3646, glMultMatrixd, glMultMatrixd, NULL, 295),
+ NAME_FUNC_OFFSET( 3660, glOrtho, glOrtho, NULL, 296),
+ NAME_FUNC_OFFSET( 3668, glPopMatrix, glPopMatrix, NULL, 297),
+ NAME_FUNC_OFFSET( 3680, glPushMatrix, glPushMatrix, NULL, 298),
+ NAME_FUNC_OFFSET( 3693, glRotated, glRotated, NULL, 299),
+ NAME_FUNC_OFFSET( 3703, glRotatef, glRotatef, NULL, 300),
+ NAME_FUNC_OFFSET( 3713, glScaled, glScaled, NULL, 301),
+ NAME_FUNC_OFFSET( 3722, glScalef, glScalef, NULL, 302),
+ NAME_FUNC_OFFSET( 3731, glTranslated, glTranslated, NULL, 303),
+ NAME_FUNC_OFFSET( 3744, glTranslatef, glTranslatef, NULL, 304),
+ NAME_FUNC_OFFSET( 3757, glViewport, glViewport, NULL, 305),
+ NAME_FUNC_OFFSET( 3768, glArrayElement, glArrayElement, NULL, 306),
+ NAME_FUNC_OFFSET( 3783, glBindTexture, glBindTexture, NULL, 307),
+ NAME_FUNC_OFFSET( 3797, glColorPointer, glColorPointer, NULL, 308),
+ NAME_FUNC_OFFSET( 3812, glDisableClientState, glDisableClientState, NULL, 309),
+ NAME_FUNC_OFFSET( 3833, glDrawArrays, glDrawArrays, NULL, 310),
+ NAME_FUNC_OFFSET( 3846, glDrawElements, glDrawElements, NULL, 311),
+ NAME_FUNC_OFFSET( 3861, glEdgeFlagPointer, glEdgeFlagPointer, NULL, 312),
+ NAME_FUNC_OFFSET( 3879, glEnableClientState, glEnableClientState, NULL, 313),
+ NAME_FUNC_OFFSET( 3899, glIndexPointer, glIndexPointer, NULL, 314),
+ NAME_FUNC_OFFSET( 3914, glIndexub, glIndexub, NULL, 315),
+ NAME_FUNC_OFFSET( 3924, glIndexubv, glIndexubv, NULL, 316),
+ NAME_FUNC_OFFSET( 3935, glInterleavedArrays, glInterleavedArrays, NULL, 317),
+ NAME_FUNC_OFFSET( 3955, glNormalPointer, glNormalPointer, NULL, 318),
+ NAME_FUNC_OFFSET( 3971, glPolygonOffset, glPolygonOffset, NULL, 319),
+ NAME_FUNC_OFFSET( 3987, glTexCoordPointer, glTexCoordPointer, NULL, 320),
+ NAME_FUNC_OFFSET( 4005, glVertexPointer, glVertexPointer, NULL, 321),
+ NAME_FUNC_OFFSET( 4021, glAreTexturesResident, glAreTexturesResident, NULL, 322),
+ NAME_FUNC_OFFSET( 4043, glCopyTexImage1D, glCopyTexImage1D, NULL, 323),
+ NAME_FUNC_OFFSET( 4060, glCopyTexImage2D, glCopyTexImage2D, NULL, 324),
+ NAME_FUNC_OFFSET( 4077, glCopyTexSubImage1D, glCopyTexSubImage1D, NULL, 325),
+ NAME_FUNC_OFFSET( 4097, glCopyTexSubImage2D, glCopyTexSubImage2D, NULL, 326),
+ NAME_FUNC_OFFSET( 4117, glDeleteTextures, glDeleteTextures, NULL, 327),
+ NAME_FUNC_OFFSET( 4134, glGenTextures, glGenTextures, NULL, 328),
+ NAME_FUNC_OFFSET( 4148, glGetPointerv, glGetPointerv, NULL, 329),
+ NAME_FUNC_OFFSET( 4162, glIsTexture, glIsTexture, NULL, 330),
+ NAME_FUNC_OFFSET( 4174, glPrioritizeTextures, glPrioritizeTextures, NULL, 331),
+ NAME_FUNC_OFFSET( 4195, glTexSubImage1D, glTexSubImage1D, NULL, 332),
+ NAME_FUNC_OFFSET( 4211, glTexSubImage2D, glTexSubImage2D, NULL, 333),
+ NAME_FUNC_OFFSET( 4227, glPopClientAttrib, glPopClientAttrib, NULL, 334),
+ NAME_FUNC_OFFSET( 4245, glPushClientAttrib, glPushClientAttrib, NULL, 335),
+ NAME_FUNC_OFFSET( 4264, glBlendColor, glBlendColor, NULL, 336),
+ NAME_FUNC_OFFSET( 4277, glBlendEquation, glBlendEquation, NULL, 337),
+ NAME_FUNC_OFFSET( 4293, glDrawRangeElements, glDrawRangeElements, NULL, 338),
+ NAME_FUNC_OFFSET( 4313, glColorTable, glColorTable, NULL, 339),
+ NAME_FUNC_OFFSET( 4326, glColorTableParameterfv, glColorTableParameterfv, NULL, 340),
+ NAME_FUNC_OFFSET( 4350, glColorTableParameteriv, glColorTableParameteriv, NULL, 341),
+ NAME_FUNC_OFFSET( 4374, glCopyColorTable, glCopyColorTable, NULL, 342),
+ NAME_FUNC_OFFSET( 4391, glGetColorTable, glGetColorTable, NULL, 343),
+ NAME_FUNC_OFFSET( 4407, glGetColorTableParameterfv, glGetColorTableParameterfv, NULL, 344),
+ NAME_FUNC_OFFSET( 4434, glGetColorTableParameteriv, glGetColorTableParameteriv, NULL, 345),
+ NAME_FUNC_OFFSET( 4461, glColorSubTable, glColorSubTable, NULL, 346),
+ NAME_FUNC_OFFSET( 4477, glCopyColorSubTable, glCopyColorSubTable, NULL, 347),
+ NAME_FUNC_OFFSET( 4497, glConvolutionFilter1D, glConvolutionFilter1D, NULL, 348),
+ NAME_FUNC_OFFSET( 4519, glConvolutionFilter2D, glConvolutionFilter2D, NULL, 349),
+ NAME_FUNC_OFFSET( 4541, glConvolutionParameterf, glConvolutionParameterf, NULL, 350),
+ NAME_FUNC_OFFSET( 4565, glConvolutionParameterfv, glConvolutionParameterfv, NULL, 351),
+ NAME_FUNC_OFFSET( 4590, glConvolutionParameteri, glConvolutionParameteri, NULL, 352),
+ NAME_FUNC_OFFSET( 4614, glConvolutionParameteriv, glConvolutionParameteriv, NULL, 353),
+ NAME_FUNC_OFFSET( 4639, glCopyConvolutionFilter1D, glCopyConvolutionFilter1D, NULL, 354),
+ NAME_FUNC_OFFSET( 4665, glCopyConvolutionFilter2D, glCopyConvolutionFilter2D, NULL, 355),
+ NAME_FUNC_OFFSET( 4691, glGetConvolutionFilter, glGetConvolutionFilter, NULL, 356),
+ NAME_FUNC_OFFSET( 4714, glGetConvolutionParameterfv, glGetConvolutionParameterfv, NULL, 357),
+ NAME_FUNC_OFFSET( 4742, glGetConvolutionParameteriv, glGetConvolutionParameteriv, NULL, 358),
+ NAME_FUNC_OFFSET( 4770, glGetSeparableFilter, glGetSeparableFilter, NULL, 359),
+ NAME_FUNC_OFFSET( 4791, glSeparableFilter2D, glSeparableFilter2D, NULL, 360),
+ NAME_FUNC_OFFSET( 4811, glGetHistogram, glGetHistogram, NULL, 361),
+ NAME_FUNC_OFFSET( 4826, glGetHistogramParameterfv, glGetHistogramParameterfv, NULL, 362),
+ NAME_FUNC_OFFSET( 4852, glGetHistogramParameteriv, glGetHistogramParameteriv, NULL, 363),
+ NAME_FUNC_OFFSET( 4878, glGetMinmax, glGetMinmax, NULL, 364),
+ NAME_FUNC_OFFSET( 4890, glGetMinmaxParameterfv, glGetMinmaxParameterfv, NULL, 365),
+ NAME_FUNC_OFFSET( 4913, glGetMinmaxParameteriv, glGetMinmaxParameteriv, NULL, 366),
+ NAME_FUNC_OFFSET( 4936, glHistogram, glHistogram, NULL, 367),
+ NAME_FUNC_OFFSET( 4948, glMinmax, glMinmax, NULL, 368),
+ NAME_FUNC_OFFSET( 4957, glResetHistogram, glResetHistogram, NULL, 369),
+ NAME_FUNC_OFFSET( 4974, glResetMinmax, glResetMinmax, NULL, 370),
+ NAME_FUNC_OFFSET( 4988, glTexImage3D, glTexImage3D, NULL, 371),
+ NAME_FUNC_OFFSET( 5001, glTexSubImage3D, glTexSubImage3D, NULL, 372),
+ NAME_FUNC_OFFSET( 5017, glCopyTexSubImage3D, glCopyTexSubImage3D, NULL, 373),
+ NAME_FUNC_OFFSET( 5037, glActiveTexture, glActiveTexture, NULL, 374),
+ NAME_FUNC_OFFSET( 5053, glClientActiveTexture, glClientActiveTexture, NULL, 375),
+ NAME_FUNC_OFFSET( 5075, glMultiTexCoord1d, glMultiTexCoord1d, NULL, 376),
+ NAME_FUNC_OFFSET( 5093, glMultiTexCoord1dv, glMultiTexCoord1dv, NULL, 377),
+ NAME_FUNC_OFFSET( 5112, glMultiTexCoord1fARB, glMultiTexCoord1fARB, NULL, 378),
+ NAME_FUNC_OFFSET( 5133, glMultiTexCoord1fvARB, glMultiTexCoord1fvARB, NULL, 379),
+ NAME_FUNC_OFFSET( 5155, glMultiTexCoord1i, glMultiTexCoord1i, NULL, 380),
+ NAME_FUNC_OFFSET( 5173, glMultiTexCoord1iv, glMultiTexCoord1iv, NULL, 381),
+ NAME_FUNC_OFFSET( 5192, glMultiTexCoord1s, glMultiTexCoord1s, NULL, 382),
+ NAME_FUNC_OFFSET( 5210, glMultiTexCoord1sv, glMultiTexCoord1sv, NULL, 383),
+ NAME_FUNC_OFFSET( 5229, glMultiTexCoord2d, glMultiTexCoord2d, NULL, 384),
+ NAME_FUNC_OFFSET( 5247, glMultiTexCoord2dv, glMultiTexCoord2dv, NULL, 385),
+ NAME_FUNC_OFFSET( 5266, glMultiTexCoord2fARB, glMultiTexCoord2fARB, NULL, 386),
+ NAME_FUNC_OFFSET( 5287, glMultiTexCoord2fvARB, glMultiTexCoord2fvARB, NULL, 387),
+ NAME_FUNC_OFFSET( 5309, glMultiTexCoord2i, glMultiTexCoord2i, NULL, 388),
+ NAME_FUNC_OFFSET( 5327, glMultiTexCoord2iv, glMultiTexCoord2iv, NULL, 389),
+ NAME_FUNC_OFFSET( 5346, glMultiTexCoord2s, glMultiTexCoord2s, NULL, 390),
+ NAME_FUNC_OFFSET( 5364, glMultiTexCoord2sv, glMultiTexCoord2sv, NULL, 391),
+ NAME_FUNC_OFFSET( 5383, glMultiTexCoord3d, glMultiTexCoord3d, NULL, 392),
+ NAME_FUNC_OFFSET( 5401, glMultiTexCoord3dv, glMultiTexCoord3dv, NULL, 393),
+ NAME_FUNC_OFFSET( 5420, glMultiTexCoord3fARB, glMultiTexCoord3fARB, NULL, 394),
+ NAME_FUNC_OFFSET( 5441, glMultiTexCoord3fvARB, glMultiTexCoord3fvARB, NULL, 395),
+ NAME_FUNC_OFFSET( 5463, glMultiTexCoord3i, glMultiTexCoord3i, NULL, 396),
+ NAME_FUNC_OFFSET( 5481, glMultiTexCoord3iv, glMultiTexCoord3iv, NULL, 397),
+ NAME_FUNC_OFFSET( 5500, glMultiTexCoord3s, glMultiTexCoord3s, NULL, 398),
+ NAME_FUNC_OFFSET( 5518, glMultiTexCoord3sv, glMultiTexCoord3sv, NULL, 399),
+ NAME_FUNC_OFFSET( 5537, glMultiTexCoord4d, glMultiTexCoord4d, NULL, 400),
+ NAME_FUNC_OFFSET( 5555, glMultiTexCoord4dv, glMultiTexCoord4dv, NULL, 401),
+ NAME_FUNC_OFFSET( 5574, glMultiTexCoord4fARB, glMultiTexCoord4fARB, NULL, 402),
+ NAME_FUNC_OFFSET( 5595, glMultiTexCoord4fvARB, glMultiTexCoord4fvARB, NULL, 403),
+ NAME_FUNC_OFFSET( 5617, glMultiTexCoord4i, glMultiTexCoord4i, NULL, 404),
+ NAME_FUNC_OFFSET( 5635, glMultiTexCoord4iv, glMultiTexCoord4iv, NULL, 405),
+ NAME_FUNC_OFFSET( 5654, glMultiTexCoord4s, glMultiTexCoord4s, NULL, 406),
+ NAME_FUNC_OFFSET( 5672, glMultiTexCoord4sv, glMultiTexCoord4sv, NULL, 407),
+ NAME_FUNC_OFFSET( 5691, glCompressedTexImage1D, glCompressedTexImage1D, NULL, 408),
+ NAME_FUNC_OFFSET( 5714, glCompressedTexImage2D, glCompressedTexImage2D, NULL, 409),
+ NAME_FUNC_OFFSET( 5737, glCompressedTexImage3D, glCompressedTexImage3D, NULL, 410),
+ NAME_FUNC_OFFSET( 5760, glCompressedTexSubImage1D, glCompressedTexSubImage1D, NULL, 411),
+ NAME_FUNC_OFFSET( 5786, glCompressedTexSubImage2D, glCompressedTexSubImage2D, NULL, 412),
+ NAME_FUNC_OFFSET( 5812, glCompressedTexSubImage3D, glCompressedTexSubImage3D, NULL, 413),
+ NAME_FUNC_OFFSET( 5838, glGetCompressedTexImage, glGetCompressedTexImage, NULL, 414),
+ NAME_FUNC_OFFSET( 5862, glLoadTransposeMatrixd, glLoadTransposeMatrixd, NULL, 415),
+ NAME_FUNC_OFFSET( 5885, glLoadTransposeMatrixf, glLoadTransposeMatrixf, NULL, 416),
+ NAME_FUNC_OFFSET( 5908, glMultTransposeMatrixd, glMultTransposeMatrixd, NULL, 417),
+ NAME_FUNC_OFFSET( 5931, glMultTransposeMatrixf, glMultTransposeMatrixf, NULL, 418),
+ NAME_FUNC_OFFSET( 5954, glSampleCoverage, glSampleCoverage, NULL, 419),
+ NAME_FUNC_OFFSET( 5971, glBlendFuncSeparate, glBlendFuncSeparate, NULL, 420),
+ NAME_FUNC_OFFSET( 5991, glFogCoordPointer, glFogCoordPointer, NULL, 421),
+ NAME_FUNC_OFFSET( 6009, glFogCoordd, glFogCoordd, NULL, 422),
+ NAME_FUNC_OFFSET( 6021, glFogCoorddv, glFogCoorddv, NULL, 423),
+ NAME_FUNC_OFFSET( 6034, glMultiDrawArrays, glMultiDrawArrays, NULL, 424),
+ NAME_FUNC_OFFSET( 6052, glPointParameterf, glPointParameterf, NULL, 425),
+ NAME_FUNC_OFFSET( 6070, glPointParameterfv, glPointParameterfv, NULL, 426),
+ NAME_FUNC_OFFSET( 6089, glPointParameteri, glPointParameteri, NULL, 427),
+ NAME_FUNC_OFFSET( 6107, glPointParameteriv, glPointParameteriv, NULL, 428),
+ NAME_FUNC_OFFSET( 6126, glSecondaryColor3b, glSecondaryColor3b, NULL, 429),
+ NAME_FUNC_OFFSET( 6145, glSecondaryColor3bv, glSecondaryColor3bv, NULL, 430),
+ NAME_FUNC_OFFSET( 6165, glSecondaryColor3d, glSecondaryColor3d, NULL, 431),
+ NAME_FUNC_OFFSET( 6184, glSecondaryColor3dv, glSecondaryColor3dv, NULL, 432),
+ NAME_FUNC_OFFSET( 6204, glSecondaryColor3i, glSecondaryColor3i, NULL, 433),
+ NAME_FUNC_OFFSET( 6223, glSecondaryColor3iv, glSecondaryColor3iv, NULL, 434),
+ NAME_FUNC_OFFSET( 6243, glSecondaryColor3s, glSecondaryColor3s, NULL, 435),
+ NAME_FUNC_OFFSET( 6262, glSecondaryColor3sv, glSecondaryColor3sv, NULL, 436),
+ NAME_FUNC_OFFSET( 6282, glSecondaryColor3ub, glSecondaryColor3ub, NULL, 437),
+ NAME_FUNC_OFFSET( 6302, glSecondaryColor3ubv, glSecondaryColor3ubv, NULL, 438),
+ NAME_FUNC_OFFSET( 6323, glSecondaryColor3ui, glSecondaryColor3ui, NULL, 439),
+ NAME_FUNC_OFFSET( 6343, glSecondaryColor3uiv, glSecondaryColor3uiv, NULL, 440),
+ NAME_FUNC_OFFSET( 6364, glSecondaryColor3us, glSecondaryColor3us, NULL, 441),
+ NAME_FUNC_OFFSET( 6384, glSecondaryColor3usv, glSecondaryColor3usv, NULL, 442),
+ NAME_FUNC_OFFSET( 6405, glSecondaryColorPointer, glSecondaryColorPointer, NULL, 443),
+ NAME_FUNC_OFFSET( 6429, glWindowPos2d, glWindowPos2d, NULL, 444),
+ NAME_FUNC_OFFSET( 6443, glWindowPos2dv, glWindowPos2dv, NULL, 445),
+ NAME_FUNC_OFFSET( 6458, glWindowPos2f, glWindowPos2f, NULL, 446),
+ NAME_FUNC_OFFSET( 6472, glWindowPos2fv, glWindowPos2fv, NULL, 447),
+ NAME_FUNC_OFFSET( 6487, glWindowPos2i, glWindowPos2i, NULL, 448),
+ NAME_FUNC_OFFSET( 6501, glWindowPos2iv, glWindowPos2iv, NULL, 449),
+ NAME_FUNC_OFFSET( 6516, glWindowPos2s, glWindowPos2s, NULL, 450),
+ NAME_FUNC_OFFSET( 6530, glWindowPos2sv, glWindowPos2sv, NULL, 451),
+ NAME_FUNC_OFFSET( 6545, glWindowPos3d, glWindowPos3d, NULL, 452),
+ NAME_FUNC_OFFSET( 6559, glWindowPos3dv, glWindowPos3dv, NULL, 453),
+ NAME_FUNC_OFFSET( 6574, glWindowPos3f, glWindowPos3f, NULL, 454),
+ NAME_FUNC_OFFSET( 6588, glWindowPos3fv, glWindowPos3fv, NULL, 455),
+ NAME_FUNC_OFFSET( 6603, glWindowPos3i, glWindowPos3i, NULL, 456),
+ NAME_FUNC_OFFSET( 6617, glWindowPos3iv, glWindowPos3iv, NULL, 457),
+ NAME_FUNC_OFFSET( 6632, glWindowPos3s, glWindowPos3s, NULL, 458),
+ NAME_FUNC_OFFSET( 6646, glWindowPos3sv, glWindowPos3sv, NULL, 459),
+ NAME_FUNC_OFFSET( 6661, glBeginQuery, glBeginQuery, NULL, 460),
+ NAME_FUNC_OFFSET( 6674, glBindBuffer, glBindBuffer, NULL, 461),
+ NAME_FUNC_OFFSET( 6687, glBufferData, glBufferData, NULL, 462),
+ NAME_FUNC_OFFSET( 6700, glBufferSubData, glBufferSubData, NULL, 463),
+ NAME_FUNC_OFFSET( 6716, glDeleteBuffers, glDeleteBuffers, NULL, 464),
+ NAME_FUNC_OFFSET( 6732, glDeleteQueries, glDeleteQueries, NULL, 465),
+ NAME_FUNC_OFFSET( 6748, glEndQuery, glEndQuery, NULL, 466),
+ NAME_FUNC_OFFSET( 6759, glGenBuffers, glGenBuffers, NULL, 467),
+ NAME_FUNC_OFFSET( 6772, glGenQueries, glGenQueries, NULL, 468),
+ NAME_FUNC_OFFSET( 6785, glGetBufferParameteriv, glGetBufferParameteriv, NULL, 469),
+ NAME_FUNC_OFFSET( 6808, glGetBufferPointerv, glGetBufferPointerv, NULL, 470),
+ NAME_FUNC_OFFSET( 6828, glGetBufferSubData, glGetBufferSubData, NULL, 471),
+ NAME_FUNC_OFFSET( 6847, glGetQueryObjectiv, glGetQueryObjectiv, NULL, 472),
+ NAME_FUNC_OFFSET( 6866, glGetQueryObjectuiv, glGetQueryObjectuiv, NULL, 473),
+ NAME_FUNC_OFFSET( 6886, glGetQueryiv, glGetQueryiv, NULL, 474),
+ NAME_FUNC_OFFSET( 6899, glIsBuffer, glIsBuffer, NULL, 475),
+ NAME_FUNC_OFFSET( 6910, glIsQuery, glIsQuery, NULL, 476),
+ NAME_FUNC_OFFSET( 6920, glMapBuffer, glMapBuffer, NULL, 477),
+ NAME_FUNC_OFFSET( 6932, glUnmapBuffer, glUnmapBuffer, NULL, 478),
+ NAME_FUNC_OFFSET( 6946, glAttachShader, glAttachShader, NULL, 479),
+ NAME_FUNC_OFFSET( 6961, glBindAttribLocation, glBindAttribLocation, NULL, 480),
+ NAME_FUNC_OFFSET( 6982, glBlendEquationSeparate, glBlendEquationSeparate, NULL, 481),
+ NAME_FUNC_OFFSET( 7006, glCompileShader, glCompileShader, NULL, 482),
+ NAME_FUNC_OFFSET( 7022, glCreateProgram, glCreateProgram, NULL, 483),
+ NAME_FUNC_OFFSET( 7038, glCreateShader, glCreateShader, NULL, 484),
+ NAME_FUNC_OFFSET( 7053, glDeleteProgram, glDeleteProgram, NULL, 485),
+ NAME_FUNC_OFFSET( 7069, glDeleteShader, glDeleteShader, NULL, 486),
+ NAME_FUNC_OFFSET( 7084, glDetachShader, glDetachShader, NULL, 487),
+ NAME_FUNC_OFFSET( 7099, glDisableVertexAttribArray, glDisableVertexAttribArray, NULL, 488),
+ NAME_FUNC_OFFSET( 7126, glDrawBuffers, glDrawBuffers, NULL, 489),
+ NAME_FUNC_OFFSET( 7140, glEnableVertexAttribArray, glEnableVertexAttribArray, NULL, 490),
+ NAME_FUNC_OFFSET( 7166, glGetActiveAttrib, glGetActiveAttrib, NULL, 491),
+ NAME_FUNC_OFFSET( 7184, glGetActiveUniform, glGetActiveUniform, NULL, 492),
+ NAME_FUNC_OFFSET( 7203, glGetAttachedShaders, glGetAttachedShaders, NULL, 493),
+ NAME_FUNC_OFFSET( 7224, glGetAttribLocation, glGetAttribLocation, NULL, 494),
+ NAME_FUNC_OFFSET( 7244, glGetProgramInfoLog, glGetProgramInfoLog, NULL, 495),
+ NAME_FUNC_OFFSET( 7264, glGetProgramiv, glGetProgramiv, NULL, 496),
+ NAME_FUNC_OFFSET( 7279, glGetShaderInfoLog, glGetShaderInfoLog, NULL, 497),
+ NAME_FUNC_OFFSET( 7298, glGetShaderSource, glGetShaderSource, NULL, 498),
+ NAME_FUNC_OFFSET( 7316, glGetShaderiv, glGetShaderiv, NULL, 499),
+ NAME_FUNC_OFFSET( 7330, glGetUniformLocation, glGetUniformLocation, NULL, 500),
+ NAME_FUNC_OFFSET( 7351, glGetUniformfv, glGetUniformfv, NULL, 501),
+ NAME_FUNC_OFFSET( 7366, glGetUniformiv, glGetUniformiv, NULL, 502),
+ NAME_FUNC_OFFSET( 7381, glGetVertexAttribPointerv, glGetVertexAttribPointerv, NULL, 503),
+ NAME_FUNC_OFFSET( 7407, glGetVertexAttribdv, glGetVertexAttribdv, NULL, 504),
+ NAME_FUNC_OFFSET( 7427, glGetVertexAttribfv, glGetVertexAttribfv, NULL, 505),
+ NAME_FUNC_OFFSET( 7447, glGetVertexAttribiv, glGetVertexAttribiv, NULL, 506),
+ NAME_FUNC_OFFSET( 7467, glIsProgram, glIsProgram, NULL, 507),
+ NAME_FUNC_OFFSET( 7479, glIsShader, glIsShader, NULL, 508),
+ NAME_FUNC_OFFSET( 7490, glLinkProgram, glLinkProgram, NULL, 509),
+ NAME_FUNC_OFFSET( 7504, glShaderSource, glShaderSource, NULL, 510),
+ NAME_FUNC_OFFSET( 7519, glStencilFuncSeparate, glStencilFuncSeparate, NULL, 511),
+ NAME_FUNC_OFFSET( 7541, glStencilMaskSeparate, glStencilMaskSeparate, NULL, 512),
+ NAME_FUNC_OFFSET( 7563, glStencilOpSeparate, glStencilOpSeparate, NULL, 513),
+ NAME_FUNC_OFFSET( 7583, glUniform1f, glUniform1f, NULL, 514),
+ NAME_FUNC_OFFSET( 7595, glUniform1fv, glUniform1fv, NULL, 515),
+ NAME_FUNC_OFFSET( 7608, glUniform1i, glUniform1i, NULL, 516),
+ NAME_FUNC_OFFSET( 7620, glUniform1iv, glUniform1iv, NULL, 517),
+ NAME_FUNC_OFFSET( 7633, glUniform2f, glUniform2f, NULL, 518),
+ NAME_FUNC_OFFSET( 7645, glUniform2fv, glUniform2fv, NULL, 519),
+ NAME_FUNC_OFFSET( 7658, glUniform2i, glUniform2i, NULL, 520),
+ NAME_FUNC_OFFSET( 7670, glUniform2iv, glUniform2iv, NULL, 521),
+ NAME_FUNC_OFFSET( 7683, glUniform3f, glUniform3f, NULL, 522),
+ NAME_FUNC_OFFSET( 7695, glUniform3fv, glUniform3fv, NULL, 523),
+ NAME_FUNC_OFFSET( 7708, glUniform3i, glUniform3i, NULL, 524),
+ NAME_FUNC_OFFSET( 7720, glUniform3iv, glUniform3iv, NULL, 525),
+ NAME_FUNC_OFFSET( 7733, glUniform4f, glUniform4f, NULL, 526),
+ NAME_FUNC_OFFSET( 7745, glUniform4fv, glUniform4fv, NULL, 527),
+ NAME_FUNC_OFFSET( 7758, glUniform4i, glUniform4i, NULL, 528),
+ NAME_FUNC_OFFSET( 7770, glUniform4iv, glUniform4iv, NULL, 529),
+ NAME_FUNC_OFFSET( 7783, glUniformMatrix2fv, glUniformMatrix2fv, NULL, 530),
+ NAME_FUNC_OFFSET( 7802, glUniformMatrix3fv, glUniformMatrix3fv, NULL, 531),
+ NAME_FUNC_OFFSET( 7821, glUniformMatrix4fv, glUniformMatrix4fv, NULL, 532),
+ NAME_FUNC_OFFSET( 7840, glUseProgram, glUseProgram, NULL, 533),
+ NAME_FUNC_OFFSET( 7853, glValidateProgram, glValidateProgram, NULL, 534),
+ NAME_FUNC_OFFSET( 7871, glVertexAttrib1d, glVertexAttrib1d, NULL, 535),
+ NAME_FUNC_OFFSET( 7888, glVertexAttrib1dv, glVertexAttrib1dv, NULL, 536),
+ NAME_FUNC_OFFSET( 7906, glVertexAttrib1s, glVertexAttrib1s, NULL, 537),
+ NAME_FUNC_OFFSET( 7923, glVertexAttrib1sv, glVertexAttrib1sv, NULL, 538),
+ NAME_FUNC_OFFSET( 7941, glVertexAttrib2d, glVertexAttrib2d, NULL, 539),
+ NAME_FUNC_OFFSET( 7958, glVertexAttrib2dv, glVertexAttrib2dv, NULL, 540),
+ NAME_FUNC_OFFSET( 7976, glVertexAttrib2s, glVertexAttrib2s, NULL, 541),
+ NAME_FUNC_OFFSET( 7993, glVertexAttrib2sv, glVertexAttrib2sv, NULL, 542),
+ NAME_FUNC_OFFSET( 8011, glVertexAttrib3d, glVertexAttrib3d, NULL, 543),
+ NAME_FUNC_OFFSET( 8028, glVertexAttrib3dv, glVertexAttrib3dv, NULL, 544),
+ NAME_FUNC_OFFSET( 8046, glVertexAttrib3s, glVertexAttrib3s, NULL, 545),
+ NAME_FUNC_OFFSET( 8063, glVertexAttrib3sv, glVertexAttrib3sv, NULL, 546),
+ NAME_FUNC_OFFSET( 8081, glVertexAttrib4Nbv, glVertexAttrib4Nbv, NULL, 547),
+ NAME_FUNC_OFFSET( 8100, glVertexAttrib4Niv, glVertexAttrib4Niv, NULL, 548),
+ NAME_FUNC_OFFSET( 8119, glVertexAttrib4Nsv, glVertexAttrib4Nsv, NULL, 549),
+ NAME_FUNC_OFFSET( 8138, glVertexAttrib4Nub, glVertexAttrib4Nub, NULL, 550),
+ NAME_FUNC_OFFSET( 8157, glVertexAttrib4Nubv, glVertexAttrib4Nubv, NULL, 551),
+ NAME_FUNC_OFFSET( 8177, glVertexAttrib4Nuiv, glVertexAttrib4Nuiv, NULL, 552),
+ NAME_FUNC_OFFSET( 8197, glVertexAttrib4Nusv, glVertexAttrib4Nusv, NULL, 553),
+ NAME_FUNC_OFFSET( 8217, glVertexAttrib4bv, glVertexAttrib4bv, NULL, 554),
+ NAME_FUNC_OFFSET( 8235, glVertexAttrib4d, glVertexAttrib4d, NULL, 555),
+ NAME_FUNC_OFFSET( 8252, glVertexAttrib4dv, glVertexAttrib4dv, NULL, 556),
+ NAME_FUNC_OFFSET( 8270, glVertexAttrib4iv, glVertexAttrib4iv, NULL, 557),
+ NAME_FUNC_OFFSET( 8288, glVertexAttrib4s, glVertexAttrib4s, NULL, 558),
+ NAME_FUNC_OFFSET( 8305, glVertexAttrib4sv, glVertexAttrib4sv, NULL, 559),
+ NAME_FUNC_OFFSET( 8323, glVertexAttrib4ubv, glVertexAttrib4ubv, NULL, 560),
+ NAME_FUNC_OFFSET( 8342, glVertexAttrib4uiv, glVertexAttrib4uiv, NULL, 561),
+ NAME_FUNC_OFFSET( 8361, glVertexAttrib4usv, glVertexAttrib4usv, NULL, 562),
+ NAME_FUNC_OFFSET( 8380, glVertexAttribPointer, glVertexAttribPointer, NULL, 563),
+ NAME_FUNC_OFFSET( 8402, glUniformMatrix2x3fv, glUniformMatrix2x3fv, NULL, 564),
+ NAME_FUNC_OFFSET( 8423, glUniformMatrix2x4fv, glUniformMatrix2x4fv, NULL, 565),
+ NAME_FUNC_OFFSET( 8444, glUniformMatrix3x2fv, glUniformMatrix3x2fv, NULL, 566),
+ NAME_FUNC_OFFSET( 8465, glUniformMatrix3x4fv, glUniformMatrix3x4fv, NULL, 567),
+ NAME_FUNC_OFFSET( 8486, glUniformMatrix4x2fv, glUniformMatrix4x2fv, NULL, 568),
+ NAME_FUNC_OFFSET( 8507, glUniformMatrix4x3fv, glUniformMatrix4x3fv, NULL, 569),
+ NAME_FUNC_OFFSET( 8528, glBeginConditionalRender, glBeginConditionalRender, NULL, 570),
+ NAME_FUNC_OFFSET( 8553, glBeginTransformFeedback, glBeginTransformFeedback, NULL, 571),
+ NAME_FUNC_OFFSET( 8578, glBindBufferBase, glBindBufferBase, NULL, 572),
+ NAME_FUNC_OFFSET( 8595, glBindBufferRange, glBindBufferRange, NULL, 573),
+ NAME_FUNC_OFFSET( 8613, glBindFragDataLocation, glBindFragDataLocation, NULL, 574),
+ NAME_FUNC_OFFSET( 8636, glClampColor, glClampColor, NULL, 575),
+ NAME_FUNC_OFFSET( 8649, glClearBufferfi, glClearBufferfi, NULL, 576),
+ NAME_FUNC_OFFSET( 8665, glClearBufferfv, glClearBufferfv, NULL, 577),
+ NAME_FUNC_OFFSET( 8681, glClearBufferiv, glClearBufferiv, NULL, 578),
+ NAME_FUNC_OFFSET( 8697, glClearBufferuiv, glClearBufferuiv, NULL, 579),
+ NAME_FUNC_OFFSET( 8714, glColorMaski, glColorMaski, NULL, 580),
+ NAME_FUNC_OFFSET( 8727, glDisablei, glDisablei, NULL, 581),
+ NAME_FUNC_OFFSET( 8738, glEnablei, glEnablei, NULL, 582),
+ NAME_FUNC_OFFSET( 8748, glEndConditionalRender, glEndConditionalRender, NULL, 583),
+ NAME_FUNC_OFFSET( 8771, glEndTransformFeedback, glEndTransformFeedback, NULL, 584),
+ NAME_FUNC_OFFSET( 8794, glGetBooleani_v, glGetBooleani_v, NULL, 585),
+ NAME_FUNC_OFFSET( 8810, glGetFragDataLocation, glGetFragDataLocation, NULL, 586),
+ NAME_FUNC_OFFSET( 8832, glGetIntegeri_v, glGetIntegeri_v, NULL, 587),
+ NAME_FUNC_OFFSET( 8848, glGetStringi, glGetStringi, NULL, 588),
+ NAME_FUNC_OFFSET( 8861, glGetTexParameterIiv, glGetTexParameterIiv, NULL, 589),
+ NAME_FUNC_OFFSET( 8882, glGetTexParameterIuiv, glGetTexParameterIuiv, NULL, 590),
+ NAME_FUNC_OFFSET( 8904, glGetTransformFeedbackVarying, glGetTransformFeedbackVarying, NULL, 591),
+ NAME_FUNC_OFFSET( 8934, glGetUniformuiv, glGetUniformuiv, NULL, 592),
+ NAME_FUNC_OFFSET( 8950, glGetVertexAttribIiv, glGetVertexAttribIiv, NULL, 593),
+ NAME_FUNC_OFFSET( 8971, glGetVertexAttribIuiv, glGetVertexAttribIuiv, NULL, 594),
+ NAME_FUNC_OFFSET( 8993, glIsEnabledi, glIsEnabledi, NULL, 595),
+ NAME_FUNC_OFFSET( 9006, glTexParameterIiv, glTexParameterIiv, NULL, 596),
+ NAME_FUNC_OFFSET( 9024, glTexParameterIuiv, glTexParameterIuiv, NULL, 597),
+ NAME_FUNC_OFFSET( 9043, glTransformFeedbackVaryings, glTransformFeedbackVaryings, NULL, 598),
+ NAME_FUNC_OFFSET( 9071, glUniform1ui, glUniform1ui, NULL, 599),
+ NAME_FUNC_OFFSET( 9084, glUniform1uiv, glUniform1uiv, NULL, 600),
+ NAME_FUNC_OFFSET( 9098, glUniform2ui, glUniform2ui, NULL, 601),
+ NAME_FUNC_OFFSET( 9111, glUniform2uiv, glUniform2uiv, NULL, 602),
+ NAME_FUNC_OFFSET( 9125, glUniform3ui, glUniform3ui, NULL, 603),
+ NAME_FUNC_OFFSET( 9138, glUniform3uiv, glUniform3uiv, NULL, 604),
+ NAME_FUNC_OFFSET( 9152, glUniform4ui, glUniform4ui, NULL, 605),
+ NAME_FUNC_OFFSET( 9165, glUniform4uiv, glUniform4uiv, NULL, 606),
+ NAME_FUNC_OFFSET( 9179, glVertexAttribI1iv, glVertexAttribI1iv, NULL, 607),
+ NAME_FUNC_OFFSET( 9198, glVertexAttribI1uiv, glVertexAttribI1uiv, NULL, 608),
+ NAME_FUNC_OFFSET( 9218, glVertexAttribI4bv, glVertexAttribI4bv, NULL, 609),
+ NAME_FUNC_OFFSET( 9237, glVertexAttribI4sv, glVertexAttribI4sv, NULL, 610),
+ NAME_FUNC_OFFSET( 9256, glVertexAttribI4ubv, glVertexAttribI4ubv, NULL, 611),
+ NAME_FUNC_OFFSET( 9276, glVertexAttribI4usv, glVertexAttribI4usv, NULL, 612),
+ NAME_FUNC_OFFSET( 9296, glVertexAttribIPointer, glVertexAttribIPointer, NULL, 613),
+ NAME_FUNC_OFFSET( 9319, glPrimitiveRestartIndex, glPrimitiveRestartIndex, NULL, 614),
+ NAME_FUNC_OFFSET( 9343, glTexBuffer, glTexBuffer, NULL, 615),
+ NAME_FUNC_OFFSET( 9355, glFramebufferTexture, glFramebufferTexture, NULL, 616),
+ NAME_FUNC_OFFSET( 9376, glGetBufferParameteri64v, glGetBufferParameteri64v, NULL, 617),
+ NAME_FUNC_OFFSET( 9401, glGetInteger64i_v, glGetInteger64i_v, NULL, 618),
+ NAME_FUNC_OFFSET( 9419, glVertexAttribDivisor, glVertexAttribDivisor, NULL, 619),
+ NAME_FUNC_OFFSET( 9441, glMinSampleShading, glMinSampleShading, NULL, 620),
+ NAME_FUNC_OFFSET( 9460, glBindProgramARB, glBindProgramARB, NULL, 621),
+ NAME_FUNC_OFFSET( 9477, glDeleteProgramsARB, glDeleteProgramsARB, NULL, 622),
+ NAME_FUNC_OFFSET( 9497, glGenProgramsARB, glGenProgramsARB, NULL, 623),
+ NAME_FUNC_OFFSET( 9514, glGetProgramEnvParameterdvARB, glGetProgramEnvParameterdvARB, NULL, 624),
+ NAME_FUNC_OFFSET( 9544, glGetProgramEnvParameterfvARB, glGetProgramEnvParameterfvARB, NULL, 625),
+ NAME_FUNC_OFFSET( 9574, glGetProgramLocalParameterdvARB, glGetProgramLocalParameterdvARB, NULL, 626),
+ NAME_FUNC_OFFSET( 9606, glGetProgramLocalParameterfvARB, glGetProgramLocalParameterfvARB, NULL, 627),
+ NAME_FUNC_OFFSET( 9638, glGetProgramStringARB, glGetProgramStringARB, NULL, 628),
+ NAME_FUNC_OFFSET( 9660, glGetProgramivARB, glGetProgramivARB, NULL, 629),
+ NAME_FUNC_OFFSET( 9678, glIsProgramARB, glIsProgramARB, NULL, 630),
+ NAME_FUNC_OFFSET( 9693, glProgramEnvParameter4dARB, glProgramEnvParameter4dARB, NULL, 631),
+ NAME_FUNC_OFFSET( 9720, glProgramEnvParameter4dvARB, glProgramEnvParameter4dvARB, NULL, 632),
+ NAME_FUNC_OFFSET( 9748, glProgramEnvParameter4fARB, glProgramEnvParameter4fARB, NULL, 633),
+ NAME_FUNC_OFFSET( 9775, glProgramEnvParameter4fvARB, glProgramEnvParameter4fvARB, NULL, 634),
+ NAME_FUNC_OFFSET( 9803, glProgramLocalParameter4dARB, glProgramLocalParameter4dARB, NULL, 635),
+ NAME_FUNC_OFFSET( 9832, glProgramLocalParameter4dvARB, glProgramLocalParameter4dvARB, NULL, 636),
+ NAME_FUNC_OFFSET( 9862, glProgramLocalParameter4fARB, glProgramLocalParameter4fARB, NULL, 637),
+ NAME_FUNC_OFFSET( 9891, glProgramLocalParameter4fvARB, glProgramLocalParameter4fvARB, NULL, 638),
+ NAME_FUNC_OFFSET( 9921, glProgramStringARB, glProgramStringARB, NULL, 639),
+ NAME_FUNC_OFFSET( 9940, glVertexAttrib1fARB, glVertexAttrib1fARB, NULL, 640),
+ NAME_FUNC_OFFSET( 9960, glVertexAttrib1fvARB, glVertexAttrib1fvARB, NULL, 641),
+ NAME_FUNC_OFFSET( 9981, glVertexAttrib2fARB, glVertexAttrib2fARB, NULL, 642),
+ NAME_FUNC_OFFSET(10001, glVertexAttrib2fvARB, glVertexAttrib2fvARB, NULL, 643),
+ NAME_FUNC_OFFSET(10022, glVertexAttrib3fARB, glVertexAttrib3fARB, NULL, 644),
+ NAME_FUNC_OFFSET(10042, glVertexAttrib3fvARB, glVertexAttrib3fvARB, NULL, 645),
+ NAME_FUNC_OFFSET(10063, glVertexAttrib4fARB, glVertexAttrib4fARB, NULL, 646),
+ NAME_FUNC_OFFSET(10083, glVertexAttrib4fvARB, glVertexAttrib4fvARB, NULL, 647),
+ NAME_FUNC_OFFSET(10104, glAttachObjectARB, glAttachObjectARB, NULL, 648),
+ NAME_FUNC_OFFSET(10122, glCreateProgramObjectARB, glCreateProgramObjectARB, NULL, 649),
+ NAME_FUNC_OFFSET(10147, glCreateShaderObjectARB, glCreateShaderObjectARB, NULL, 650),
+ NAME_FUNC_OFFSET(10171, glDeleteObjectARB, glDeleteObjectARB, NULL, 651),
+ NAME_FUNC_OFFSET(10189, glDetachObjectARB, glDetachObjectARB, NULL, 652),
+ NAME_FUNC_OFFSET(10207, glGetAttachedObjectsARB, glGetAttachedObjectsARB, NULL, 653),
+ NAME_FUNC_OFFSET(10231, glGetHandleARB, glGetHandleARB, NULL, 654),
+ NAME_FUNC_OFFSET(10246, glGetInfoLogARB, glGetInfoLogARB, NULL, 655),
+ NAME_FUNC_OFFSET(10262, glGetObjectParameterfvARB, glGetObjectParameterfvARB, NULL, 656),
+ NAME_FUNC_OFFSET(10288, glGetObjectParameterivARB, glGetObjectParameterivARB, NULL, 657),
+ NAME_FUNC_OFFSET(10314, glDrawArraysInstancedARB, glDrawArraysInstancedARB, NULL, 658),
+ NAME_FUNC_OFFSET(10339, glDrawElementsInstancedARB, glDrawElementsInstancedARB, NULL, 659),
+ NAME_FUNC_OFFSET(10366, glBindFramebuffer, glBindFramebuffer, NULL, 660),
+ NAME_FUNC_OFFSET(10384, glBindRenderbuffer, glBindRenderbuffer, NULL, 661),
+ NAME_FUNC_OFFSET(10403, glBlitFramebuffer, glBlitFramebuffer, NULL, 662),
+ NAME_FUNC_OFFSET(10421, glCheckFramebufferStatus, glCheckFramebufferStatus, NULL, 663),
+ NAME_FUNC_OFFSET(10446, glDeleteFramebuffers, glDeleteFramebuffers, NULL, 664),
+ NAME_FUNC_OFFSET(10467, glDeleteRenderbuffers, glDeleteRenderbuffers, NULL, 665),
+ NAME_FUNC_OFFSET(10489, glFramebufferRenderbuffer, glFramebufferRenderbuffer, NULL, 666),
+ NAME_FUNC_OFFSET(10515, glFramebufferTexture1D, glFramebufferTexture1D, NULL, 667),
+ NAME_FUNC_OFFSET(10538, glFramebufferTexture2D, glFramebufferTexture2D, NULL, 668),
+ NAME_FUNC_OFFSET(10561, glFramebufferTexture3D, glFramebufferTexture3D, NULL, 669),
+ NAME_FUNC_OFFSET(10584, glFramebufferTextureLayer, glFramebufferTextureLayer, NULL, 670),
+ NAME_FUNC_OFFSET(10610, glGenFramebuffers, glGenFramebuffers, NULL, 671),
+ NAME_FUNC_OFFSET(10628, glGenRenderbuffers, glGenRenderbuffers, NULL, 672),
+ NAME_FUNC_OFFSET(10647, glGenerateMipmap, glGenerateMipmap, NULL, 673),
+ NAME_FUNC_OFFSET(10664, glGetFramebufferAttachmentParameteriv, glGetFramebufferAttachmentParameteriv, NULL, 674),
+ NAME_FUNC_OFFSET(10702, glGetRenderbufferParameteriv, glGetRenderbufferParameteriv, NULL, 675),
+ NAME_FUNC_OFFSET(10731, glIsFramebuffer, glIsFramebuffer, NULL, 676),
+ NAME_FUNC_OFFSET(10747, glIsRenderbuffer, glIsRenderbuffer, NULL, 677),
+ NAME_FUNC_OFFSET(10764, glRenderbufferStorage, glRenderbufferStorage, NULL, 678),
+ NAME_FUNC_OFFSET(10786, glRenderbufferStorageMultisample, glRenderbufferStorageMultisample, NULL, 679),
+ NAME_FUNC_OFFSET(10819, glFramebufferTextureFaceARB, glFramebufferTextureFaceARB, NULL, 680),
+ NAME_FUNC_OFFSET(10847, glFlushMappedBufferRange, glFlushMappedBufferRange, NULL, 681),
+ NAME_FUNC_OFFSET(10872, glMapBufferRange, glMapBufferRange, NULL, 682),
+ NAME_FUNC_OFFSET(10889, glBindVertexArray, glBindVertexArray, NULL, 683),
+ NAME_FUNC_OFFSET(10907, glDeleteVertexArrays, glDeleteVertexArrays, NULL, 684),
+ NAME_FUNC_OFFSET(10928, glGenVertexArrays, glGenVertexArrays, NULL, 685),
+ NAME_FUNC_OFFSET(10946, glIsVertexArray, glIsVertexArray, NULL, 686),
+ NAME_FUNC_OFFSET(10962, glGetActiveUniformBlockName, glGetActiveUniformBlockName, NULL, 687),
+ NAME_FUNC_OFFSET(10990, glGetActiveUniformBlockiv, glGetActiveUniformBlockiv, NULL, 688),
+ NAME_FUNC_OFFSET(11016, glGetActiveUniformName, glGetActiveUniformName, NULL, 689),
+ NAME_FUNC_OFFSET(11039, glGetActiveUniformsiv, glGetActiveUniformsiv, NULL, 690),
+ NAME_FUNC_OFFSET(11061, glGetUniformBlockIndex, glGetUniformBlockIndex, NULL, 691),
+ NAME_FUNC_OFFSET(11084, glGetUniformIndices, glGetUniformIndices, NULL, 692),
+ NAME_FUNC_OFFSET(11104, glUniformBlockBinding, glUniformBlockBinding, NULL, 693),
+ NAME_FUNC_OFFSET(11126, glCopyBufferSubData, glCopyBufferSubData, NULL, 694),
+ NAME_FUNC_OFFSET(11146, glClientWaitSync, glClientWaitSync, NULL, 695),
+ NAME_FUNC_OFFSET(11163, glDeleteSync, glDeleteSync, NULL, 696),
+ NAME_FUNC_OFFSET(11176, glFenceSync, glFenceSync, NULL, 697),
+ NAME_FUNC_OFFSET(11188, glGetInteger64v, glGetInteger64v, NULL, 698),
+ NAME_FUNC_OFFSET(11204, glGetSynciv, glGetSynciv, NULL, 699),
+ NAME_FUNC_OFFSET(11216, glIsSync, glIsSync, NULL, 700),
+ NAME_FUNC_OFFSET(11225, glWaitSync, glWaitSync, NULL, 701),
+ NAME_FUNC_OFFSET(11236, glDrawElementsBaseVertex, glDrawElementsBaseVertex, NULL, 702),
+ NAME_FUNC_OFFSET(11261, glDrawElementsInstancedBaseVertex, glDrawElementsInstancedBaseVertex, NULL, 703),
+ NAME_FUNC_OFFSET(11295, glDrawRangeElementsBaseVertex, glDrawRangeElementsBaseVertex, NULL, 704),
+ NAME_FUNC_OFFSET(11325, glMultiDrawElementsBaseVertex, glMultiDrawElementsBaseVertex, NULL, 705),
+ NAME_FUNC_OFFSET(11355, glProvokingVertex, glProvokingVertex, NULL, 706),
+ NAME_FUNC_OFFSET(11373, glGetMultisamplefv, glGetMultisamplefv, NULL, 707),
+ NAME_FUNC_OFFSET(11392, glSampleMaski, glSampleMaski, NULL, 708),
+ NAME_FUNC_OFFSET(11406, glTexImage2DMultisample, glTexImage2DMultisample, NULL, 709),
+ NAME_FUNC_OFFSET(11430, glTexImage3DMultisample, glTexImage3DMultisample, NULL, 710),
+ NAME_FUNC_OFFSET(11454, glBlendEquationSeparateiARB, glBlendEquationSeparateiARB, NULL, 711),
+ NAME_FUNC_OFFSET(11482, glBlendEquationiARB, glBlendEquationiARB, NULL, 712),
+ NAME_FUNC_OFFSET(11502, glBlendFuncSeparateiARB, glBlendFuncSeparateiARB, NULL, 713),
+ NAME_FUNC_OFFSET(11526, glBlendFunciARB, glBlendFunciARB, NULL, 714),
+ NAME_FUNC_OFFSET(11542, glBindFragDataLocationIndexed, glBindFragDataLocationIndexed, NULL, 715),
+ NAME_FUNC_OFFSET(11572, glGetFragDataIndex, glGetFragDataIndex, NULL, 716),
+ NAME_FUNC_OFFSET(11591, glBindSampler, glBindSampler, NULL, 717),
+ NAME_FUNC_OFFSET(11605, glDeleteSamplers, glDeleteSamplers, NULL, 718),
+ NAME_FUNC_OFFSET(11622, glGenSamplers, glGenSamplers, NULL, 719),
+ NAME_FUNC_OFFSET(11636, glGetSamplerParameterIiv, glGetSamplerParameterIiv, NULL, 720),
+ NAME_FUNC_OFFSET(11661, glGetSamplerParameterIuiv, glGetSamplerParameterIuiv, NULL, 721),
+ NAME_FUNC_OFFSET(11687, glGetSamplerParameterfv, glGetSamplerParameterfv, NULL, 722),
+ NAME_FUNC_OFFSET(11711, glGetSamplerParameteriv, glGetSamplerParameteriv, NULL, 723),
+ NAME_FUNC_OFFSET(11735, glIsSampler, glIsSampler, NULL, 724),
+ NAME_FUNC_OFFSET(11747, glSamplerParameterIiv, glSamplerParameterIiv, NULL, 725),
+ NAME_FUNC_OFFSET(11769, glSamplerParameterIuiv, glSamplerParameterIuiv, NULL, 726),
+ NAME_FUNC_OFFSET(11792, glSamplerParameterf, glSamplerParameterf, NULL, 727),
+ NAME_FUNC_OFFSET(11812, glSamplerParameterfv, glSamplerParameterfv, NULL, 728),
+ NAME_FUNC_OFFSET(11833, glSamplerParameteri, glSamplerParameteri, NULL, 729),
+ NAME_FUNC_OFFSET(11853, glSamplerParameteriv, glSamplerParameteriv, NULL, 730),
+ NAME_FUNC_OFFSET(11874, gl_dispatch_stub_731, gl_dispatch_stub_731, NULL, 731),
+ NAME_FUNC_OFFSET(11895, gl_dispatch_stub_732, gl_dispatch_stub_732, NULL, 732),
+ NAME_FUNC_OFFSET(11917, gl_dispatch_stub_733, gl_dispatch_stub_733, NULL, 733),
+ NAME_FUNC_OFFSET(11932, glColorP3ui, glColorP3ui, NULL, 734),
+ NAME_FUNC_OFFSET(11944, glColorP3uiv, glColorP3uiv, NULL, 735),
+ NAME_FUNC_OFFSET(11957, glColorP4ui, glColorP4ui, NULL, 736),
+ NAME_FUNC_OFFSET(11969, glColorP4uiv, glColorP4uiv, NULL, 737),
+ NAME_FUNC_OFFSET(11982, glMultiTexCoordP1ui, glMultiTexCoordP1ui, NULL, 738),
+ NAME_FUNC_OFFSET(12002, glMultiTexCoordP1uiv, glMultiTexCoordP1uiv, NULL, 739),
+ NAME_FUNC_OFFSET(12023, glMultiTexCoordP2ui, glMultiTexCoordP2ui, NULL, 740),
+ NAME_FUNC_OFFSET(12043, glMultiTexCoordP2uiv, glMultiTexCoordP2uiv, NULL, 741),
+ NAME_FUNC_OFFSET(12064, glMultiTexCoordP3ui, glMultiTexCoordP3ui, NULL, 742),
+ NAME_FUNC_OFFSET(12084, glMultiTexCoordP3uiv, glMultiTexCoordP3uiv, NULL, 743),
+ NAME_FUNC_OFFSET(12105, glMultiTexCoordP4ui, glMultiTexCoordP4ui, NULL, 744),
+ NAME_FUNC_OFFSET(12125, glMultiTexCoordP4uiv, glMultiTexCoordP4uiv, NULL, 745),
+ NAME_FUNC_OFFSET(12146, glNormalP3ui, glNormalP3ui, NULL, 746),
+ NAME_FUNC_OFFSET(12159, glNormalP3uiv, glNormalP3uiv, NULL, 747),
+ NAME_FUNC_OFFSET(12173, glSecondaryColorP3ui, glSecondaryColorP3ui, NULL, 748),
+ NAME_FUNC_OFFSET(12194, glSecondaryColorP3uiv, glSecondaryColorP3uiv, NULL, 749),
+ NAME_FUNC_OFFSET(12216, glTexCoordP1ui, glTexCoordP1ui, NULL, 750),
+ NAME_FUNC_OFFSET(12231, glTexCoordP1uiv, glTexCoordP1uiv, NULL, 751),
+ NAME_FUNC_OFFSET(12247, glTexCoordP2ui, glTexCoordP2ui, NULL, 752),
+ NAME_FUNC_OFFSET(12262, glTexCoordP2uiv, glTexCoordP2uiv, NULL, 753),
+ NAME_FUNC_OFFSET(12278, glTexCoordP3ui, glTexCoordP3ui, NULL, 754),
+ NAME_FUNC_OFFSET(12293, glTexCoordP3uiv, glTexCoordP3uiv, NULL, 755),
+ NAME_FUNC_OFFSET(12309, glTexCoordP4ui, glTexCoordP4ui, NULL, 756),
+ NAME_FUNC_OFFSET(12324, glTexCoordP4uiv, glTexCoordP4uiv, NULL, 757),
+ NAME_FUNC_OFFSET(12340, glVertexAttribP1ui, glVertexAttribP1ui, NULL, 758),
+ NAME_FUNC_OFFSET(12359, glVertexAttribP1uiv, glVertexAttribP1uiv, NULL, 759),
+ NAME_FUNC_OFFSET(12379, glVertexAttribP2ui, glVertexAttribP2ui, NULL, 760),
+ NAME_FUNC_OFFSET(12398, glVertexAttribP2uiv, glVertexAttribP2uiv, NULL, 761),
+ NAME_FUNC_OFFSET(12418, glVertexAttribP3ui, glVertexAttribP3ui, NULL, 762),
+ NAME_FUNC_OFFSET(12437, glVertexAttribP3uiv, glVertexAttribP3uiv, NULL, 763),
+ NAME_FUNC_OFFSET(12457, glVertexAttribP4ui, glVertexAttribP4ui, NULL, 764),
+ NAME_FUNC_OFFSET(12476, glVertexAttribP4uiv, glVertexAttribP4uiv, NULL, 765),
+ NAME_FUNC_OFFSET(12496, glVertexP2ui, glVertexP2ui, NULL, 766),
+ NAME_FUNC_OFFSET(12509, glVertexP2uiv, glVertexP2uiv, NULL, 767),
+ NAME_FUNC_OFFSET(12523, glVertexP3ui, glVertexP3ui, NULL, 768),
+ NAME_FUNC_OFFSET(12536, glVertexP3uiv, glVertexP3uiv, NULL, 769),
+ NAME_FUNC_OFFSET(12550, glVertexP4ui, glVertexP4ui, NULL, 770),
+ NAME_FUNC_OFFSET(12563, glVertexP4uiv, glVertexP4uiv, NULL, 771),
+ NAME_FUNC_OFFSET(12577, glBindTransformFeedback, glBindTransformFeedback, NULL, 772),
+ NAME_FUNC_OFFSET(12601, glDeleteTransformFeedbacks, glDeleteTransformFeedbacks, NULL, 773),
+ NAME_FUNC_OFFSET(12628, glDrawTransformFeedback, glDrawTransformFeedback, NULL, 774),
+ NAME_FUNC_OFFSET(12652, glGenTransformFeedbacks, glGenTransformFeedbacks, NULL, 775),
+ NAME_FUNC_OFFSET(12676, glIsTransformFeedback, glIsTransformFeedback, NULL, 776),
+ NAME_FUNC_OFFSET(12698, glPauseTransformFeedback, glPauseTransformFeedback, NULL, 777),
+ NAME_FUNC_OFFSET(12723, glResumeTransformFeedback, glResumeTransformFeedback, NULL, 778),
+ NAME_FUNC_OFFSET(12749, glBeginQueryIndexed, glBeginQueryIndexed, NULL, 779),
+ NAME_FUNC_OFFSET(12769, glDrawTransformFeedbackStream, glDrawTransformFeedbackStream, NULL, 780),
+ NAME_FUNC_OFFSET(12799, glEndQueryIndexed, glEndQueryIndexed, NULL, 781),
+ NAME_FUNC_OFFSET(12817, glGetQueryIndexediv, glGetQueryIndexediv, NULL, 782),
+ NAME_FUNC_OFFSET(12837, glClearDepthf, glClearDepthf, NULL, 783),
+ NAME_FUNC_OFFSET(12851, glDepthRangef, glDepthRangef, NULL, 784),
+ NAME_FUNC_OFFSET(12865, glGetShaderPrecisionFormat, glGetShaderPrecisionFormat, NULL, 785),
+ NAME_FUNC_OFFSET(12892, glReleaseShaderCompiler, glReleaseShaderCompiler, NULL, 786),
+ NAME_FUNC_OFFSET(12916, glShaderBinary, glShaderBinary, NULL, 787),
+ NAME_FUNC_OFFSET(12931, glGetProgramBinary, glGetProgramBinary, NULL, 788),
+ NAME_FUNC_OFFSET(12950, glProgramBinary, glProgramBinary, NULL, 789),
+ NAME_FUNC_OFFSET(12966, glProgramParameteri, glProgramParameteri, NULL, 790),
+ NAME_FUNC_OFFSET(12986, glDebugMessageCallbackARB, glDebugMessageCallbackARB, NULL, 791),
+ NAME_FUNC_OFFSET(13012, glDebugMessageControlARB, glDebugMessageControlARB, NULL, 792),
+ NAME_FUNC_OFFSET(13037, glDebugMessageInsertARB, glDebugMessageInsertARB, NULL, 793),
+ NAME_FUNC_OFFSET(13061, glGetDebugMessageLogARB, glGetDebugMessageLogARB, NULL, 794),
+ NAME_FUNC_OFFSET(13085, glGetGraphicsResetStatusARB, glGetGraphicsResetStatusARB, NULL, 795),
+ NAME_FUNC_OFFSET(13113, glGetnColorTableARB, glGetnColorTableARB, NULL, 796),
+ NAME_FUNC_OFFSET(13133, glGetnCompressedTexImageARB, glGetnCompressedTexImageARB, NULL, 797),
+ NAME_FUNC_OFFSET(13161, glGetnConvolutionFilterARB, glGetnConvolutionFilterARB, NULL, 798),
+ NAME_FUNC_OFFSET(13188, glGetnHistogramARB, glGetnHistogramARB, NULL, 799),
+ NAME_FUNC_OFFSET(13207, glGetnMapdvARB, glGetnMapdvARB, NULL, 800),
+ NAME_FUNC_OFFSET(13222, glGetnMapfvARB, glGetnMapfvARB, NULL, 801),
+ NAME_FUNC_OFFSET(13237, glGetnMapivARB, glGetnMapivARB, NULL, 802),
+ NAME_FUNC_OFFSET(13252, glGetnMinmaxARB, glGetnMinmaxARB, NULL, 803),
+ NAME_FUNC_OFFSET(13268, glGetnPixelMapfvARB, glGetnPixelMapfvARB, NULL, 804),
+ NAME_FUNC_OFFSET(13288, glGetnPixelMapuivARB, glGetnPixelMapuivARB, NULL, 805),
+ NAME_FUNC_OFFSET(13309, glGetnPixelMapusvARB, glGetnPixelMapusvARB, NULL, 806),
+ NAME_FUNC_OFFSET(13330, glGetnPolygonStippleARB, glGetnPolygonStippleARB, NULL, 807),
+ NAME_FUNC_OFFSET(13354, glGetnSeparableFilterARB, glGetnSeparableFilterARB, NULL, 808),
+ NAME_FUNC_OFFSET(13379, glGetnTexImageARB, glGetnTexImageARB, NULL, 809),
+ NAME_FUNC_OFFSET(13397, glGetnUniformdvARB, glGetnUniformdvARB, NULL, 810),
+ NAME_FUNC_OFFSET(13416, glGetnUniformfvARB, glGetnUniformfvARB, NULL, 811),
+ NAME_FUNC_OFFSET(13435, glGetnUniformivARB, glGetnUniformivARB, NULL, 812),
+ NAME_FUNC_OFFSET(13454, glGetnUniformuivARB, glGetnUniformuivARB, NULL, 813),
+ NAME_FUNC_OFFSET(13474, glReadnPixelsARB, glReadnPixelsARB, NULL, 814),
+ NAME_FUNC_OFFSET(13491, glDrawArraysInstancedBaseInstance, glDrawArraysInstancedBaseInstance, NULL, 815),
+ NAME_FUNC_OFFSET(13525, glDrawElementsInstancedBaseInstance, glDrawElementsInstancedBaseInstance, NULL, 816),
+ NAME_FUNC_OFFSET(13561, glDrawElementsInstancedBaseVertexBaseInstance, glDrawElementsInstancedBaseVertexBaseInstance, NULL, 817),
+ NAME_FUNC_OFFSET(13607, glDrawTransformFeedbackInstanced, glDrawTransformFeedbackInstanced, NULL, 818),
+ NAME_FUNC_OFFSET(13640, glDrawTransformFeedbackStreamInstanced, glDrawTransformFeedbackStreamInstanced, NULL, 819),
+ NAME_FUNC_OFFSET(13679, gl_dispatch_stub_820, gl_dispatch_stub_820, NULL, 820),
+ NAME_FUNC_OFFSET(13701, glGetActiveAtomicCounterBufferiv, glGetActiveAtomicCounterBufferiv, NULL, 821),
+ NAME_FUNC_OFFSET(13734, glTexStorage1D, glTexStorage1D, NULL, 822),
+ NAME_FUNC_OFFSET(13749, glTexStorage2D, glTexStorage2D, NULL, 823),
+ NAME_FUNC_OFFSET(13764, glTexStorage3D, glTexStorage3D, NULL, 824),
+ NAME_FUNC_OFFSET(13779, glTextureStorage1DEXT, glTextureStorage1DEXT, NULL, 825),
+ NAME_FUNC_OFFSET(13801, glTextureStorage2DEXT, glTextureStorage2DEXT, NULL, 826),
+ NAME_FUNC_OFFSET(13823, glTextureStorage3DEXT, glTextureStorage3DEXT, NULL, 827),
+ NAME_FUNC_OFFSET(13845, glBindVertexBuffer, glBindVertexBuffer, NULL, 828),
+ NAME_FUNC_OFFSET(13864, glVertexAttribBinding, glVertexAttribBinding, NULL, 829),
+ NAME_FUNC_OFFSET(13886, glVertexAttribFormat, glVertexAttribFormat, NULL, 830),
+ NAME_FUNC_OFFSET(13907, glVertexAttribIFormat, glVertexAttribIFormat, NULL, 831),
+ NAME_FUNC_OFFSET(13929, glVertexAttribLFormat, glVertexAttribLFormat, NULL, 832),
+ NAME_FUNC_OFFSET(13951, glVertexBindingDivisor, glVertexBindingDivisor, NULL, 833),
+ NAME_FUNC_OFFSET(13974, glTexBufferRange, glTexBufferRange, NULL, 834),
+ NAME_FUNC_OFFSET(13991, glTexStorage2DMultisample, glTexStorage2DMultisample, NULL, 835),
+ NAME_FUNC_OFFSET(14017, glTexStorage3DMultisample, glTexStorage3DMultisample, NULL, 836),
+ NAME_FUNC_OFFSET(14043, glInvalidateBufferData, glInvalidateBufferData, NULL, 837),
+ NAME_FUNC_OFFSET(14066, glInvalidateBufferSubData, glInvalidateBufferSubData, NULL, 838),
+ NAME_FUNC_OFFSET(14092, glInvalidateFramebuffer, glInvalidateFramebuffer, NULL, 839),
+ NAME_FUNC_OFFSET(14116, glInvalidateSubFramebuffer, glInvalidateSubFramebuffer, NULL, 840),
+ NAME_FUNC_OFFSET(14143, glInvalidateTexImage, glInvalidateTexImage, NULL, 841),
+ NAME_FUNC_OFFSET(14164, glInvalidateTexSubImage, glInvalidateTexSubImage, NULL, 842),
+ NAME_FUNC_OFFSET(14188, glPolygonOffsetEXT, glPolygonOffsetEXT, NULL, 843),
+ NAME_FUNC_OFFSET(14207, gl_dispatch_stub_844, gl_dispatch_stub_844, NULL, 844),
+ NAME_FUNC_OFFSET(14221, gl_dispatch_stub_845, gl_dispatch_stub_845, NULL, 845),
+ NAME_FUNC_OFFSET(14236, gl_dispatch_stub_846, gl_dispatch_stub_846, NULL, 846),
+ NAME_FUNC_OFFSET(14250, gl_dispatch_stub_847, gl_dispatch_stub_847, NULL, 847),
+ NAME_FUNC_OFFSET(14265, gl_dispatch_stub_848, gl_dispatch_stub_848, NULL, 848),
+ NAME_FUNC_OFFSET(14279, gl_dispatch_stub_849, gl_dispatch_stub_849, NULL, 849),
+ NAME_FUNC_OFFSET(14294, gl_dispatch_stub_850, gl_dispatch_stub_850, NULL, 850),
+ NAME_FUNC_OFFSET(14308, gl_dispatch_stub_851, gl_dispatch_stub_851, NULL, 851),
+ NAME_FUNC_OFFSET(14323, gl_dispatch_stub_852, gl_dispatch_stub_852, NULL, 852),
+ NAME_FUNC_OFFSET(14345, gl_dispatch_stub_853, gl_dispatch_stub_853, NULL, 853),
+ NAME_FUNC_OFFSET(14363, gl_dispatch_stub_854, gl_dispatch_stub_854, NULL, 854),
+ NAME_FUNC_OFFSET(14380, gl_dispatch_stub_855, gl_dispatch_stub_855, NULL, 855),
+ NAME_FUNC_OFFSET(14400, glColorPointerEXT, glColorPointerEXT, NULL, 856),
+ NAME_FUNC_OFFSET(14418, glEdgeFlagPointerEXT, glEdgeFlagPointerEXT, NULL, 857),
+ NAME_FUNC_OFFSET(14439, glIndexPointerEXT, glIndexPointerEXT, NULL, 858),
+ NAME_FUNC_OFFSET(14457, glNormalPointerEXT, glNormalPointerEXT, NULL, 859),
+ NAME_FUNC_OFFSET(14476, glTexCoordPointerEXT, glTexCoordPointerEXT, NULL, 860),
+ NAME_FUNC_OFFSET(14497, glVertexPointerEXT, glVertexPointerEXT, NULL, 861),
+ NAME_FUNC_OFFSET(14516, gl_dispatch_stub_862, gl_dispatch_stub_862, NULL, 862),
+ NAME_FUNC_OFFSET(14540, glLockArraysEXT, glLockArraysEXT, NULL, 863),
+ NAME_FUNC_OFFSET(14556, glUnlockArraysEXT, glUnlockArraysEXT, NULL, 864),
+ NAME_FUNC_OFFSET(14574, glDebugMessageCallback, glDebugMessageCallback, NULL, 865),
+ NAME_FUNC_OFFSET(14597, glDebugMessageControl, glDebugMessageControl, NULL, 866),
+ NAME_FUNC_OFFSET(14619, glDebugMessageInsert, glDebugMessageInsert, NULL, 867),
+ NAME_FUNC_OFFSET(14640, glGetDebugMessageLog, glGetDebugMessageLog, NULL, 868),
+ NAME_FUNC_OFFSET(14661, glGetObjectLabel, glGetObjectLabel, NULL, 869),
+ NAME_FUNC_OFFSET(14678, glGetObjectPtrLabel, glGetObjectPtrLabel, NULL, 870),
+ NAME_FUNC_OFFSET(14698, glObjectLabel, glObjectLabel, NULL, 871),
+ NAME_FUNC_OFFSET(14712, glObjectPtrLabel, glObjectPtrLabel, NULL, 872),
+ NAME_FUNC_OFFSET(14729, glPopDebugGroup, glPopDebugGroup, NULL, 873),
+ NAME_FUNC_OFFSET(14745, glPushDebugGroup, glPushDebugGroup, NULL, 874),
+ NAME_FUNC_OFFSET(14762, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, 875),
+ NAME_FUNC_OFFSET(14784, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, 876),
+ NAME_FUNC_OFFSET(14807, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, 877),
+ NAME_FUNC_OFFSET(14830, glFogCoordfEXT, glFogCoordfEXT, NULL, 878),
+ NAME_FUNC_OFFSET(14845, glFogCoordfvEXT, glFogCoordfvEXT, NULL, 879),
+ NAME_FUNC_OFFSET(14861, glResizeBuffersMESA, glResizeBuffersMESA, NULL, 880),
+ NAME_FUNC_OFFSET(14881, glWindowPos4dMESA, glWindowPos4dMESA, NULL, 881),
+ NAME_FUNC_OFFSET(14899, glWindowPos4dvMESA, glWindowPos4dvMESA, NULL, 882),
+ NAME_FUNC_OFFSET(14918, glWindowPos4fMESA, glWindowPos4fMESA, NULL, 883),
+ NAME_FUNC_OFFSET(14936, glWindowPos4fvMESA, glWindowPos4fvMESA, NULL, 884),
+ NAME_FUNC_OFFSET(14955, glWindowPos4iMESA, glWindowPos4iMESA, NULL, 885),
+ NAME_FUNC_OFFSET(14973, glWindowPos4ivMESA, glWindowPos4ivMESA, NULL, 886),
+ NAME_FUNC_OFFSET(14992, glWindowPos4sMESA, glWindowPos4sMESA, NULL, 887),
+ NAME_FUNC_OFFSET(15010, glWindowPos4svMESA, glWindowPos4svMESA, NULL, 888),
+ NAME_FUNC_OFFSET(15029, gl_dispatch_stub_889, gl_dispatch_stub_889, NULL, 889),
+ NAME_FUNC_OFFSET(15054, gl_dispatch_stub_890, gl_dispatch_stub_890, NULL, 890),
+ NAME_FUNC_OFFSET(15081, glAreProgramsResidentNV, glAreProgramsResidentNV, NULL, 891),
+ NAME_FUNC_OFFSET(15105, glExecuteProgramNV, glExecuteProgramNV, NULL, 892),
+ NAME_FUNC_OFFSET(15124, glGetProgramParameterdvNV, glGetProgramParameterdvNV, NULL, 893),
+ NAME_FUNC_OFFSET(15150, glGetProgramParameterfvNV, glGetProgramParameterfvNV, NULL, 894),
+ NAME_FUNC_OFFSET(15176, glGetProgramStringNV, glGetProgramStringNV, NULL, 895),
+ NAME_FUNC_OFFSET(15197, glGetProgramivNV, glGetProgramivNV, NULL, 896),
+ NAME_FUNC_OFFSET(15214, glGetTrackMatrixivNV, glGetTrackMatrixivNV, NULL, 897),
+ NAME_FUNC_OFFSET(15235, glGetVertexAttribdvNV, glGetVertexAttribdvNV, NULL, 898),
+ NAME_FUNC_OFFSET(15257, glGetVertexAttribfvNV, glGetVertexAttribfvNV, NULL, 899),
+ NAME_FUNC_OFFSET(15279, glGetVertexAttribivNV, glGetVertexAttribivNV, NULL, 900),
+ NAME_FUNC_OFFSET(15301, glLoadProgramNV, glLoadProgramNV, NULL, 901),
+ NAME_FUNC_OFFSET(15317, glProgramParameters4dvNV, glProgramParameters4dvNV, NULL, 902),
+ NAME_FUNC_OFFSET(15342, glProgramParameters4fvNV, glProgramParameters4fvNV, NULL, 903),
+ NAME_FUNC_OFFSET(15367, glRequestResidentProgramsNV, glRequestResidentProgramsNV, NULL, 904),
+ NAME_FUNC_OFFSET(15395, glTrackMatrixNV, glTrackMatrixNV, NULL, 905),
+ NAME_FUNC_OFFSET(15411, glVertexAttrib1dNV, glVertexAttrib1dNV, NULL, 906),
+ NAME_FUNC_OFFSET(15430, glVertexAttrib1dvNV, glVertexAttrib1dvNV, NULL, 907),
+ NAME_FUNC_OFFSET(15450, glVertexAttrib1fNV, glVertexAttrib1fNV, NULL, 908),
+ NAME_FUNC_OFFSET(15469, glVertexAttrib1fvNV, glVertexAttrib1fvNV, NULL, 909),
+ NAME_FUNC_OFFSET(15489, glVertexAttrib1sNV, glVertexAttrib1sNV, NULL, 910),
+ NAME_FUNC_OFFSET(15508, glVertexAttrib1svNV, glVertexAttrib1svNV, NULL, 911),
+ NAME_FUNC_OFFSET(15528, glVertexAttrib2dNV, glVertexAttrib2dNV, NULL, 912),
+ NAME_FUNC_OFFSET(15547, glVertexAttrib2dvNV, glVertexAttrib2dvNV, NULL, 913),
+ NAME_FUNC_OFFSET(15567, glVertexAttrib2fNV, glVertexAttrib2fNV, NULL, 914),
+ NAME_FUNC_OFFSET(15586, glVertexAttrib2fvNV, glVertexAttrib2fvNV, NULL, 915),
+ NAME_FUNC_OFFSET(15606, glVertexAttrib2sNV, glVertexAttrib2sNV, NULL, 916),
+ NAME_FUNC_OFFSET(15625, glVertexAttrib2svNV, glVertexAttrib2svNV, NULL, 917),
+ NAME_FUNC_OFFSET(15645, glVertexAttrib3dNV, glVertexAttrib3dNV, NULL, 918),
+ NAME_FUNC_OFFSET(15664, glVertexAttrib3dvNV, glVertexAttrib3dvNV, NULL, 919),
+ NAME_FUNC_OFFSET(15684, glVertexAttrib3fNV, glVertexAttrib3fNV, NULL, 920),
+ NAME_FUNC_OFFSET(15703, glVertexAttrib3fvNV, glVertexAttrib3fvNV, NULL, 921),
+ NAME_FUNC_OFFSET(15723, glVertexAttrib3sNV, glVertexAttrib3sNV, NULL, 922),
+ NAME_FUNC_OFFSET(15742, glVertexAttrib3svNV, glVertexAttrib3svNV, NULL, 923),
+ NAME_FUNC_OFFSET(15762, glVertexAttrib4dNV, glVertexAttrib4dNV, NULL, 924),
+ NAME_FUNC_OFFSET(15781, glVertexAttrib4dvNV, glVertexAttrib4dvNV, NULL, 925),
+ NAME_FUNC_OFFSET(15801, glVertexAttrib4fNV, glVertexAttrib4fNV, NULL, 926),
+ NAME_FUNC_OFFSET(15820, glVertexAttrib4fvNV, glVertexAttrib4fvNV, NULL, 927),
+ NAME_FUNC_OFFSET(15840, glVertexAttrib4sNV, glVertexAttrib4sNV, NULL, 928),
+ NAME_FUNC_OFFSET(15859, glVertexAttrib4svNV, glVertexAttrib4svNV, NULL, 929),
+ NAME_FUNC_OFFSET(15879, glVertexAttrib4ubNV, glVertexAttrib4ubNV, NULL, 930),
+ NAME_FUNC_OFFSET(15899, glVertexAttrib4ubvNV, glVertexAttrib4ubvNV, NULL, 931),
+ NAME_FUNC_OFFSET(15920, glVertexAttribPointerNV, glVertexAttribPointerNV, NULL, 932),
+ NAME_FUNC_OFFSET(15944, glVertexAttribs1dvNV, glVertexAttribs1dvNV, NULL, 933),
+ NAME_FUNC_OFFSET(15965, glVertexAttribs1fvNV, glVertexAttribs1fvNV, NULL, 934),
+ NAME_FUNC_OFFSET(15986, glVertexAttribs1svNV, glVertexAttribs1svNV, NULL, 935),
+ NAME_FUNC_OFFSET(16007, glVertexAttribs2dvNV, glVertexAttribs2dvNV, NULL, 936),
+ NAME_FUNC_OFFSET(16028, glVertexAttribs2fvNV, glVertexAttribs2fvNV, NULL, 937),
+ NAME_FUNC_OFFSET(16049, glVertexAttribs2svNV, glVertexAttribs2svNV, NULL, 938),
+ NAME_FUNC_OFFSET(16070, glVertexAttribs3dvNV, glVertexAttribs3dvNV, NULL, 939),
+ NAME_FUNC_OFFSET(16091, glVertexAttribs3fvNV, glVertexAttribs3fvNV, NULL, 940),
+ NAME_FUNC_OFFSET(16112, glVertexAttribs3svNV, glVertexAttribs3svNV, NULL, 941),
+ NAME_FUNC_OFFSET(16133, glVertexAttribs4dvNV, glVertexAttribs4dvNV, NULL, 942),
+ NAME_FUNC_OFFSET(16154, glVertexAttribs4fvNV, glVertexAttribs4fvNV, NULL, 943),
+ NAME_FUNC_OFFSET(16175, glVertexAttribs4svNV, glVertexAttribs4svNV, NULL, 944),
+ NAME_FUNC_OFFSET(16196, glVertexAttribs4ubvNV, glVertexAttribs4ubvNV, NULL, 945),
+ NAME_FUNC_OFFSET(16218, glGetTexBumpParameterfvATI, glGetTexBumpParameterfvATI, NULL, 946),
+ NAME_FUNC_OFFSET(16245, glGetTexBumpParameterivATI, glGetTexBumpParameterivATI, NULL, 947),
+ NAME_FUNC_OFFSET(16272, glTexBumpParameterfvATI, glTexBumpParameterfvATI, NULL, 948),
+ NAME_FUNC_OFFSET(16296, glTexBumpParameterivATI, glTexBumpParameterivATI, NULL, 949),
+ NAME_FUNC_OFFSET(16320, glAlphaFragmentOp1ATI, glAlphaFragmentOp1ATI, NULL, 950),
+ NAME_FUNC_OFFSET(16342, glAlphaFragmentOp2ATI, glAlphaFragmentOp2ATI, NULL, 951),
+ NAME_FUNC_OFFSET(16364, glAlphaFragmentOp3ATI, glAlphaFragmentOp3ATI, NULL, 952),
+ NAME_FUNC_OFFSET(16386, glBeginFragmentShaderATI, glBeginFragmentShaderATI, NULL, 953),
+ NAME_FUNC_OFFSET(16411, glBindFragmentShaderATI, glBindFragmentShaderATI, NULL, 954),
+ NAME_FUNC_OFFSET(16435, glColorFragmentOp1ATI, glColorFragmentOp1ATI, NULL, 955),
+ NAME_FUNC_OFFSET(16457, glColorFragmentOp2ATI, glColorFragmentOp2ATI, NULL, 956),
+ NAME_FUNC_OFFSET(16479, glColorFragmentOp3ATI, glColorFragmentOp3ATI, NULL, 957),
+ NAME_FUNC_OFFSET(16501, glDeleteFragmentShaderATI, glDeleteFragmentShaderATI, NULL, 958),
+ NAME_FUNC_OFFSET(16527, glEndFragmentShaderATI, glEndFragmentShaderATI, NULL, 959),
+ NAME_FUNC_OFFSET(16550, glGenFragmentShadersATI, glGenFragmentShadersATI, NULL, 960),
+ NAME_FUNC_OFFSET(16574, glPassTexCoordATI, glPassTexCoordATI, NULL, 961),
+ NAME_FUNC_OFFSET(16592, glSampleMapATI, glSampleMapATI, NULL, 962),
+ NAME_FUNC_OFFSET(16607, glSetFragmentShaderConstantATI, glSetFragmentShaderConstantATI, NULL, 963),
+ NAME_FUNC_OFFSET(16638, gl_dispatch_stub_964, gl_dispatch_stub_964, NULL, 964),
+ NAME_FUNC_OFFSET(16661, gl_dispatch_stub_965, gl_dispatch_stub_965, NULL, 965),
+ NAME_FUNC_OFFSET(16684, gl_dispatch_stub_966, gl_dispatch_stub_966, NULL, 966),
+ NAME_FUNC_OFFSET(16707, glGetProgramNamedParameterdvNV, glGetProgramNamedParameterdvNV, NULL, 967),
+ NAME_FUNC_OFFSET(16738, glGetProgramNamedParameterfvNV, glGetProgramNamedParameterfvNV, NULL, 968),
+ NAME_FUNC_OFFSET(16769, glProgramNamedParameter4dNV, glProgramNamedParameter4dNV, NULL, 969),
+ NAME_FUNC_OFFSET(16797, glProgramNamedParameter4dvNV, glProgramNamedParameter4dvNV, NULL, 970),
+ NAME_FUNC_OFFSET(16826, glProgramNamedParameter4fNV, glProgramNamedParameter4fNV, NULL, 971),
+ NAME_FUNC_OFFSET(16854, glProgramNamedParameter4fvNV, glProgramNamedParameter4fvNV, NULL, 972),
+ NAME_FUNC_OFFSET(16883, glPrimitiveRestartNV, glPrimitiveRestartNV, NULL, 973),
+ NAME_FUNC_OFFSET(16904, gl_dispatch_stub_974, gl_dispatch_stub_974, NULL, 974),
+ NAME_FUNC_OFFSET(16921, gl_dispatch_stub_975, gl_dispatch_stub_975, NULL, 975),
+ NAME_FUNC_OFFSET(16934, gl_dispatch_stub_976, gl_dispatch_stub_976, NULL, 976),
+ NAME_FUNC_OFFSET(16948, gl_dispatch_stub_977, gl_dispatch_stub_977, NULL, 977),
+ NAME_FUNC_OFFSET(16965, glBindFramebufferEXT, glBindFramebufferEXT, NULL, 978),
+ NAME_FUNC_OFFSET(16986, glBindRenderbufferEXT, glBindRenderbufferEXT, NULL, 979),
+ NAME_FUNC_OFFSET(17008, gl_dispatch_stub_980, gl_dispatch_stub_980, NULL, 980),
+ NAME_FUNC_OFFSET(17032, gl_dispatch_stub_981, gl_dispatch_stub_981, NULL, 981),
+ NAME_FUNC_OFFSET(17062, glVertexAttribI1iEXT, glVertexAttribI1iEXT, NULL, 982),
+ NAME_FUNC_OFFSET(17083, glVertexAttribI1uiEXT, glVertexAttribI1uiEXT, NULL, 983),
+ NAME_FUNC_OFFSET(17105, glVertexAttribI2iEXT, glVertexAttribI2iEXT, NULL, 984),
+ NAME_FUNC_OFFSET(17126, glVertexAttribI2ivEXT, glVertexAttribI2ivEXT, NULL, 985),
+ NAME_FUNC_OFFSET(17148, glVertexAttribI2uiEXT, glVertexAttribI2uiEXT, NULL, 986),
+ NAME_FUNC_OFFSET(17170, glVertexAttribI2uivEXT, glVertexAttribI2uivEXT, NULL, 987),
+ NAME_FUNC_OFFSET(17193, glVertexAttribI3iEXT, glVertexAttribI3iEXT, NULL, 988),
+ NAME_FUNC_OFFSET(17214, glVertexAttribI3ivEXT, glVertexAttribI3ivEXT, NULL, 989),
+ NAME_FUNC_OFFSET(17236, glVertexAttribI3uiEXT, glVertexAttribI3uiEXT, NULL, 990),
+ NAME_FUNC_OFFSET(17258, glVertexAttribI3uivEXT, glVertexAttribI3uivEXT, NULL, 991),
+ NAME_FUNC_OFFSET(17281, glVertexAttribI4iEXT, glVertexAttribI4iEXT, NULL, 992),
+ NAME_FUNC_OFFSET(17302, glVertexAttribI4ivEXT, glVertexAttribI4ivEXT, NULL, 993),
+ NAME_FUNC_OFFSET(17324, glVertexAttribI4uiEXT, glVertexAttribI4uiEXT, NULL, 994),
+ NAME_FUNC_OFFSET(17346, glVertexAttribI4uivEXT, glVertexAttribI4uivEXT, NULL, 995),
+ NAME_FUNC_OFFSET(17369, glClearColorIiEXT, glClearColorIiEXT, NULL, 996),
+ NAME_FUNC_OFFSET(17387, glClearColorIuiEXT, glClearColorIuiEXT, NULL, 997),
+ NAME_FUNC_OFFSET(17406, glBindBufferOffsetEXT, glBindBufferOffsetEXT, NULL, 998),
+ NAME_FUNC_OFFSET(17428, glBeginPerfMonitorAMD, glBeginPerfMonitorAMD, NULL, 999),
+ NAME_FUNC_OFFSET(17450, glDeletePerfMonitorsAMD, glDeletePerfMonitorsAMD, NULL, 1000),
+ NAME_FUNC_OFFSET(17474, glEndPerfMonitorAMD, glEndPerfMonitorAMD, NULL, 1001),
+ NAME_FUNC_OFFSET(17494, glGenPerfMonitorsAMD, glGenPerfMonitorsAMD, NULL, 1002),
+ NAME_FUNC_OFFSET(17515, glGetPerfMonitorCounterDataAMD, glGetPerfMonitorCounterDataAMD, NULL, 1003),
+ NAME_FUNC_OFFSET(17546, glGetPerfMonitorCounterInfoAMD, glGetPerfMonitorCounterInfoAMD, NULL, 1004),
+ NAME_FUNC_OFFSET(17577, glGetPerfMonitorCounterStringAMD, glGetPerfMonitorCounterStringAMD, NULL, 1005),
+ NAME_FUNC_OFFSET(17610, glGetPerfMonitorCountersAMD, glGetPerfMonitorCountersAMD, NULL, 1006),
+ NAME_FUNC_OFFSET(17638, glGetPerfMonitorGroupStringAMD, glGetPerfMonitorGroupStringAMD, NULL, 1007),
+ NAME_FUNC_OFFSET(17669, glGetPerfMonitorGroupsAMD, glGetPerfMonitorGroupsAMD, NULL, 1008),
+ NAME_FUNC_OFFSET(17695, glSelectPerfMonitorCountersAMD, glSelectPerfMonitorCountersAMD, NULL, 1009),
+ NAME_FUNC_OFFSET(17726, glGetObjectParameterivAPPLE, glGetObjectParameterivAPPLE, NULL, 1010),
+ NAME_FUNC_OFFSET(17754, glObjectPurgeableAPPLE, glObjectPurgeableAPPLE, NULL, 1011),
+ NAME_FUNC_OFFSET(17777, glObjectUnpurgeableAPPLE, glObjectUnpurgeableAPPLE, NULL, 1012),
+ NAME_FUNC_OFFSET(17802, glActiveProgramEXT, glActiveProgramEXT, NULL, 1013),
+ NAME_FUNC_OFFSET(17821, glCreateShaderProgramEXT, glCreateShaderProgramEXT, NULL, 1014),
+ NAME_FUNC_OFFSET(17846, glUseShaderProgramEXT, glUseShaderProgramEXT, NULL, 1015),
+ NAME_FUNC_OFFSET(17868, glTextureBarrierNV, glTextureBarrierNV, NULL, 1016),
+ NAME_FUNC_OFFSET(17887, glVDPAUFiniNV, glVDPAUFiniNV, NULL, 1017),
+ NAME_FUNC_OFFSET(17901, glVDPAUGetSurfaceivNV, glVDPAUGetSurfaceivNV, NULL, 1018),
+ NAME_FUNC_OFFSET(17923, glVDPAUInitNV, glVDPAUInitNV, NULL, 1019),
+ NAME_FUNC_OFFSET(17937, glVDPAUIsSurfaceNV, glVDPAUIsSurfaceNV, NULL, 1020),
+ NAME_FUNC_OFFSET(17956, glVDPAUMapSurfacesNV, glVDPAUMapSurfacesNV, NULL, 1021),
+ NAME_FUNC_OFFSET(17977, glVDPAURegisterOutputSurfaceNV, glVDPAURegisterOutputSurfaceNV, NULL, 1022),
+ NAME_FUNC_OFFSET(18008, glVDPAURegisterVideoSurfaceNV, glVDPAURegisterVideoSurfaceNV, NULL, 1023),
+ NAME_FUNC_OFFSET(18038, glVDPAUSurfaceAccessNV, glVDPAUSurfaceAccessNV, NULL, 1024),
+ NAME_FUNC_OFFSET(18061, glVDPAUUnmapSurfacesNV, glVDPAUUnmapSurfacesNV, NULL, 1025),
+ NAME_FUNC_OFFSET(18084, glVDPAUUnregisterSurfaceNV, glVDPAUUnregisterSurfaceNV, NULL, 1026),
+ NAME_FUNC_OFFSET(18111, gl_dispatch_stub_1027, gl_dispatch_stub_1027, NULL, 1027),
+ NAME_FUNC_OFFSET(18136, gl_dispatch_stub_1028, gl_dispatch_stub_1028, NULL, 1028),
+ NAME_FUNC_OFFSET(18165, gl_dispatch_stub_1029, gl_dispatch_stub_1029, NULL, 1029),
+ NAME_FUNC_OFFSET(18196, glEGLImageTargetRenderbufferStorageOES, glEGLImageTargetRenderbufferStorageOES, NULL, 1030),
+ NAME_FUNC_OFFSET(18235, glEGLImageTargetTexture2DOES, glEGLImageTargetTexture2DOES, NULL, 1031),
+ NAME_FUNC_OFFSET(18264, gl_dispatch_stub_1032, gl_dispatch_stub_1032, NULL, 1032),
+ NAME_FUNC_OFFSET(18277, gl_dispatch_stub_1033, gl_dispatch_stub_1033, NULL, 1033),
+ NAME_FUNC_OFFSET(18291, gl_dispatch_stub_1034, gl_dispatch_stub_1034, NULL, 1034),
+ NAME_FUNC_OFFSET(18305, gl_dispatch_stub_1035, gl_dispatch_stub_1035, NULL, 1035),
+ NAME_FUNC_OFFSET(18315, gl_dispatch_stub_1036, gl_dispatch_stub_1036, NULL, 1036),
+ NAME_FUNC_OFFSET(18329, gl_dispatch_stub_1037, gl_dispatch_stub_1037, NULL, 1037),
+ NAME_FUNC_OFFSET(18336, gl_dispatch_stub_1038, gl_dispatch_stub_1038, NULL, 1038),
+ NAME_FUNC_OFFSET(18344, gl_dispatch_stub_1039, gl_dispatch_stub_1039, NULL, 1039),
+ NAME_FUNC_OFFSET(18355, gl_dispatch_stub_1040, gl_dispatch_stub_1040, NULL, 1040),
+ NAME_FUNC_OFFSET(18366, gl_dispatch_stub_1041, gl_dispatch_stub_1041, NULL, 1041),
+ NAME_FUNC_OFFSET(18380, gl_dispatch_stub_1042, gl_dispatch_stub_1042, NULL, 1042),
+ NAME_FUNC_OFFSET(18395, gl_dispatch_stub_1043, gl_dispatch_stub_1043, NULL, 1043),
+ NAME_FUNC_OFFSET(18404, gl_dispatch_stub_1044, gl_dispatch_stub_1044, NULL, 1044),
+ NAME_FUNC_OFFSET(18414, gl_dispatch_stub_1045, gl_dispatch_stub_1045, NULL, 1045),
+ NAME_FUNC_OFFSET(18427, gl_dispatch_stub_1046, gl_dispatch_stub_1046, NULL, 1046),
+ NAME_FUNC_OFFSET(18441, gl_dispatch_stub_1047, gl_dispatch_stub_1047, NULL, 1047),
+ NAME_FUNC_OFFSET(18453, gl_dispatch_stub_1048, gl_dispatch_stub_1048, NULL, 1048),
+ NAME_FUNC_OFFSET(18466, gl_dispatch_stub_1049, gl_dispatch_stub_1049, NULL, 1049),
+ NAME_FUNC_OFFSET(18480, gl_dispatch_stub_1050, gl_dispatch_stub_1050, NULL, 1050),
+ NAME_FUNC_OFFSET(18498, gl_dispatch_stub_1051, gl_dispatch_stub_1051, NULL, 1051),
+ NAME_FUNC_OFFSET(18509, gl_dispatch_stub_1052, gl_dispatch_stub_1052, NULL, 1052),
+ NAME_FUNC_OFFSET(18518, gl_dispatch_stub_1053, gl_dispatch_stub_1053, NULL, 1053),
+ NAME_FUNC_OFFSET(18527, gl_dispatch_stub_1054, gl_dispatch_stub_1054, NULL, 1054),
+ NAME_FUNC_OFFSET(18540, gl_dispatch_stub_1055, gl_dispatch_stub_1055, NULL, 1055),
+ NAME_FUNC_OFFSET(18557, gl_dispatch_stub_1056, gl_dispatch_stub_1056, NULL, 1056),
+ NAME_FUNC_OFFSET(18567, gl_dispatch_stub_1057, gl_dispatch_stub_1057, NULL, 1057),
+ NAME_FUNC_OFFSET(18585, gl_dispatch_stub_1058, gl_dispatch_stub_1058, NULL, 1058),
+ NAME_FUNC_OFFSET(18594, gl_dispatch_stub_1059, gl_dispatch_stub_1059, NULL, 1059),
+ NAME_FUNC_OFFSET(18604, gl_dispatch_stub_1060, gl_dispatch_stub_1060, NULL, 1060),
+ NAME_FUNC_OFFSET(18615, gl_dispatch_stub_1061, gl_dispatch_stub_1061, NULL, 1061),
+ NAME_FUNC_OFFSET(18631, gl_dispatch_stub_1062, gl_dispatch_stub_1062, NULL, 1062),
+ NAME_FUNC_OFFSET(18644, gl_dispatch_stub_1063, gl_dispatch_stub_1063, NULL, 1063),
+ NAME_FUNC_OFFSET(18657, gl_dispatch_stub_1064, gl_dispatch_stub_1064, NULL, 1064),
+ NAME_FUNC_OFFSET(18670, gl_dispatch_stub_1065, gl_dispatch_stub_1065, NULL, 1065),
+ NAME_FUNC_OFFSET(18686, gl_dispatch_stub_1066, gl_dispatch_stub_1066, NULL, 1066),
+ NAME_FUNC_OFFSET(18702, gl_dispatch_stub_1067, gl_dispatch_stub_1067, NULL, 1067),
+ NAME_FUNC_OFFSET(18714, gl_dispatch_stub_1068, gl_dispatch_stub_1068, NULL, 1068),
+ NAME_FUNC_OFFSET(18727, gl_dispatch_stub_1069, gl_dispatch_stub_1069, NULL, 1069),
+ NAME_FUNC_OFFSET(18743, gl_dispatch_stub_1070, gl_dispatch_stub_1070, NULL, 1070),
+ NAME_FUNC_OFFSET(18757, gl_dispatch_stub_1071, gl_dispatch_stub_1071, NULL, 1071),
+ NAME_FUNC_OFFSET(18777, gl_dispatch_stub_1072, gl_dispatch_stub_1072, NULL, 1072),
+ NAME_FUNC_OFFSET(18795, gl_dispatch_stub_1073, gl_dispatch_stub_1073, NULL, 1073),
+ NAME_FUNC_OFFSET(18814, gl_dispatch_stub_1074, gl_dispatch_stub_1074, NULL, 1074),
+ NAME_FUNC_OFFSET(18831, glTexGenf, glTexGenf, NULL, 190),
+ NAME_FUNC_OFFSET(18844, glTexGenfv, glTexGenfv, NULL, 191),
+ NAME_FUNC_OFFSET(18858, glTexGeni, glTexGeni, NULL, 192),
+ NAME_FUNC_OFFSET(18871, glTexGeniv, glTexGeniv, NULL, 193),
+ NAME_FUNC_OFFSET(18885, glReadBuffer, glReadBuffer, NULL, 254),
+ NAME_FUNC_OFFSET(18900, glGetTexGenfv, glGetTexGenfv, NULL, 279),
+ NAME_FUNC_OFFSET(18917, glGetTexGeniv, glGetTexGeniv, NULL, 280),
+ NAME_FUNC_OFFSET(18934, glArrayElement, glArrayElement, NULL, 306),
+ NAME_FUNC_OFFSET(18952, glBindTexture, glBindTexture, NULL, 307),
+ NAME_FUNC_OFFSET(18969, glDrawArrays, glDrawArrays, NULL, 310),
+ NAME_FUNC_OFFSET(18985, glAreTexturesResident, glAreTexturesResidentEXT, glAreTexturesResidentEXT, 322),
+ NAME_FUNC_OFFSET(19010, glCopyTexImage1D, glCopyTexImage1D, NULL, 323),
+ NAME_FUNC_OFFSET(19030, glCopyTexImage2D, glCopyTexImage2D, NULL, 324),
+ NAME_FUNC_OFFSET(19050, glCopyTexSubImage1D, glCopyTexSubImage1D, NULL, 325),
+ NAME_FUNC_OFFSET(19073, glCopyTexSubImage2D, glCopyTexSubImage2D, NULL, 326),
+ NAME_FUNC_OFFSET(19096, glDeleteTextures, glDeleteTexturesEXT, glDeleteTexturesEXT, 327),
+ NAME_FUNC_OFFSET(19116, glGenTextures, glGenTexturesEXT, glGenTexturesEXT, 328),
+ NAME_FUNC_OFFSET(19133, glGetPointerv, glGetPointerv, NULL, 329),
+ NAME_FUNC_OFFSET(19150, glIsTexture, glIsTextureEXT, glIsTextureEXT, 330),
+ NAME_FUNC_OFFSET(19165, glPrioritizeTextures, glPrioritizeTextures, NULL, 331),
+ NAME_FUNC_OFFSET(19189, glTexSubImage1D, glTexSubImage1D, NULL, 332),
+ NAME_FUNC_OFFSET(19208, glTexSubImage2D, glTexSubImage2D, NULL, 333),
+ NAME_FUNC_OFFSET(19227, glBlendColor, glBlendColor, NULL, 336),
+ NAME_FUNC_OFFSET(19243, glBlendEquation, glBlendEquation, NULL, 337),
+ NAME_FUNC_OFFSET(19262, glBlendEquation, glBlendEquation, NULL, 337),
+ NAME_FUNC_OFFSET(19281, glDrawRangeElements, glDrawRangeElements, NULL, 338),
+ NAME_FUNC_OFFSET(19304, glColorTable, glColorTable, NULL, 339),
+ NAME_FUNC_OFFSET(19320, glColorTable, glColorTable, NULL, 339),
+ NAME_FUNC_OFFSET(19336, glColorTableParameterfv, glColorTableParameterfv, NULL, 340),
+ NAME_FUNC_OFFSET(19363, glColorTableParameteriv, glColorTableParameteriv, NULL, 341),
+ NAME_FUNC_OFFSET(19390, glCopyColorTable, glCopyColorTable, NULL, 342),
+ NAME_FUNC_OFFSET(19410, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, 343),
+ NAME_FUNC_OFFSET(19429, glGetColorTable, glGetColorTableEXT, glGetColorTableEXT, 343),
+ NAME_FUNC_OFFSET(19448, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, 344),
+ NAME_FUNC_OFFSET(19478, glGetColorTableParameterfv, glGetColorTableParameterfvEXT, glGetColorTableParameterfvEXT, 344),
+ NAME_FUNC_OFFSET(19508, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, 345),
+ NAME_FUNC_OFFSET(19538, glGetColorTableParameteriv, glGetColorTableParameterivEXT, glGetColorTableParameterivEXT, 345),
+ NAME_FUNC_OFFSET(19568, glColorSubTable, glColorSubTable, NULL, 346),
+ NAME_FUNC_OFFSET(19587, glCopyColorSubTable, glCopyColorSubTable, NULL, 347),
+ NAME_FUNC_OFFSET(19610, glConvolutionFilter1D, glConvolutionFilter1D, NULL, 348),
+ NAME_FUNC_OFFSET(19635, glConvolutionFilter2D, glConvolutionFilter2D, NULL, 349),
+ NAME_FUNC_OFFSET(19660, glConvolutionParameterf, glConvolutionParameterf, NULL, 350),
+ NAME_FUNC_OFFSET(19687, glConvolutionParameterfv, glConvolutionParameterfv, NULL, 351),
+ NAME_FUNC_OFFSET(19715, glConvolutionParameteri, glConvolutionParameteri, NULL, 352),
+ NAME_FUNC_OFFSET(19742, glConvolutionParameteriv, glConvolutionParameteriv, NULL, 353),
+ NAME_FUNC_OFFSET(19770, glCopyConvolutionFilter1D, glCopyConvolutionFilter1D, NULL, 354),
+ NAME_FUNC_OFFSET(19799, glCopyConvolutionFilter2D, glCopyConvolutionFilter2D, NULL, 355),
+ NAME_FUNC_OFFSET(19828, glGetConvolutionFilter, gl_dispatch_stub_356, gl_dispatch_stub_356, 356),
+ NAME_FUNC_OFFSET(19854, glGetConvolutionParameterfv, gl_dispatch_stub_357, gl_dispatch_stub_357, 357),
+ NAME_FUNC_OFFSET(19885, glGetConvolutionParameteriv, gl_dispatch_stub_358, gl_dispatch_stub_358, 358),
+ NAME_FUNC_OFFSET(19916, glGetSeparableFilter, gl_dispatch_stub_359, gl_dispatch_stub_359, 359),
+ NAME_FUNC_OFFSET(19940, glSeparableFilter2D, glSeparableFilter2D, NULL, 360),
+ NAME_FUNC_OFFSET(19963, glGetHistogram, gl_dispatch_stub_361, gl_dispatch_stub_361, 361),
+ NAME_FUNC_OFFSET(19981, glGetHistogramParameterfv, gl_dispatch_stub_362, gl_dispatch_stub_362, 362),
+ NAME_FUNC_OFFSET(20010, glGetHistogramParameteriv, gl_dispatch_stub_363, gl_dispatch_stub_363, 363),
+ NAME_FUNC_OFFSET(20039, glGetMinmax, gl_dispatch_stub_364, gl_dispatch_stub_364, 364),
+ NAME_FUNC_OFFSET(20054, glGetMinmaxParameterfv, gl_dispatch_stub_365, gl_dispatch_stub_365, 365),
+ NAME_FUNC_OFFSET(20080, glGetMinmaxParameteriv, gl_dispatch_stub_366, gl_dispatch_stub_366, 366),
+ NAME_FUNC_OFFSET(20106, glHistogram, glHistogram, NULL, 367),
+ NAME_FUNC_OFFSET(20121, glMinmax, glMinmax, NULL, 368),
+ NAME_FUNC_OFFSET(20133, glResetHistogram, glResetHistogram, NULL, 369),
+ NAME_FUNC_OFFSET(20153, glResetMinmax, glResetMinmax, NULL, 370),
+ NAME_FUNC_OFFSET(20170, glTexImage3D, glTexImage3D, NULL, 371),
+ NAME_FUNC_OFFSET(20186, glTexImage3D, glTexImage3D, NULL, 371),
+ NAME_FUNC_OFFSET(20202, glTexSubImage3D, glTexSubImage3D, NULL, 372),
+ NAME_FUNC_OFFSET(20221, glTexSubImage3D, glTexSubImage3D, NULL, 372),
+ NAME_FUNC_OFFSET(20240, glCopyTexSubImage3D, glCopyTexSubImage3D, NULL, 373),
+ NAME_FUNC_OFFSET(20263, glCopyTexSubImage3D, glCopyTexSubImage3D, NULL, 373),
+ NAME_FUNC_OFFSET(20286, glActiveTexture, glActiveTexture, NULL, 374),
+ NAME_FUNC_OFFSET(20305, glClientActiveTexture, glClientActiveTexture, NULL, 375),
+ NAME_FUNC_OFFSET(20330, glMultiTexCoord1d, glMultiTexCoord1d, NULL, 376),
+ NAME_FUNC_OFFSET(20351, glMultiTexCoord1dv, glMultiTexCoord1dv, NULL, 377),
+ NAME_FUNC_OFFSET(20373, glMultiTexCoord1fARB, glMultiTexCoord1fARB, NULL, 378),
+ NAME_FUNC_OFFSET(20391, glMultiTexCoord1fvARB, glMultiTexCoord1fvARB, NULL, 379),
+ NAME_FUNC_OFFSET(20410, glMultiTexCoord1i, glMultiTexCoord1i, NULL, 380),
+ NAME_FUNC_OFFSET(20431, glMultiTexCoord1iv, glMultiTexCoord1iv, NULL, 381),
+ NAME_FUNC_OFFSET(20453, glMultiTexCoord1s, glMultiTexCoord1s, NULL, 382),
+ NAME_FUNC_OFFSET(20474, glMultiTexCoord1sv, glMultiTexCoord1sv, NULL, 383),
+ NAME_FUNC_OFFSET(20496, glMultiTexCoord2d, glMultiTexCoord2d, NULL, 384),
+ NAME_FUNC_OFFSET(20517, glMultiTexCoord2dv, glMultiTexCoord2dv, NULL, 385),
+ NAME_FUNC_OFFSET(20539, glMultiTexCoord2fARB, glMultiTexCoord2fARB, NULL, 386),
+ NAME_FUNC_OFFSET(20557, glMultiTexCoord2fvARB, glMultiTexCoord2fvARB, NULL, 387),
+ NAME_FUNC_OFFSET(20576, glMultiTexCoord2i, glMultiTexCoord2i, NULL, 388),
+ NAME_FUNC_OFFSET(20597, glMultiTexCoord2iv, glMultiTexCoord2iv, NULL, 389),
+ NAME_FUNC_OFFSET(20619, glMultiTexCoord2s, glMultiTexCoord2s, NULL, 390),
+ NAME_FUNC_OFFSET(20640, glMultiTexCoord2sv, glMultiTexCoord2sv, NULL, 391),
+ NAME_FUNC_OFFSET(20662, glMultiTexCoord3d, glMultiTexCoord3d, NULL, 392),
+ NAME_FUNC_OFFSET(20683, glMultiTexCoord3dv, glMultiTexCoord3dv, NULL, 393),
+ NAME_FUNC_OFFSET(20705, glMultiTexCoord3fARB, glMultiTexCoord3fARB, NULL, 394),
+ NAME_FUNC_OFFSET(20723, glMultiTexCoord3fvARB, glMultiTexCoord3fvARB, NULL, 395),
+ NAME_FUNC_OFFSET(20742, glMultiTexCoord3i, glMultiTexCoord3i, NULL, 396),
+ NAME_FUNC_OFFSET(20763, glMultiTexCoord3iv, glMultiTexCoord3iv, NULL, 397),
+ NAME_FUNC_OFFSET(20785, glMultiTexCoord3s, glMultiTexCoord3s, NULL, 398),
+ NAME_FUNC_OFFSET(20806, glMultiTexCoord3sv, glMultiTexCoord3sv, NULL, 399),
+ NAME_FUNC_OFFSET(20828, glMultiTexCoord4d, glMultiTexCoord4d, NULL, 400),
+ NAME_FUNC_OFFSET(20849, glMultiTexCoord4dv, glMultiTexCoord4dv, NULL, 401),
+ NAME_FUNC_OFFSET(20871, glMultiTexCoord4fARB, glMultiTexCoord4fARB, NULL, 402),
+ NAME_FUNC_OFFSET(20889, glMultiTexCoord4fvARB, glMultiTexCoord4fvARB, NULL, 403),
+ NAME_FUNC_OFFSET(20908, glMultiTexCoord4i, glMultiTexCoord4i, NULL, 404),
+ NAME_FUNC_OFFSET(20929, glMultiTexCoord4iv, glMultiTexCoord4iv, NULL, 405),
+ NAME_FUNC_OFFSET(20951, glMultiTexCoord4s, glMultiTexCoord4s, NULL, 406),
+ NAME_FUNC_OFFSET(20972, glMultiTexCoord4sv, glMultiTexCoord4sv, NULL, 407),
+ NAME_FUNC_OFFSET(20994, glCompressedTexImage1D, glCompressedTexImage1D, NULL, 408),
+ NAME_FUNC_OFFSET(21020, glCompressedTexImage2D, glCompressedTexImage2D, NULL, 409),
+ NAME_FUNC_OFFSET(21046, glCompressedTexImage3D, glCompressedTexImage3D, NULL, 410),
+ NAME_FUNC_OFFSET(21072, glCompressedTexImage3D, glCompressedTexImage3D, NULL, 410),
+ NAME_FUNC_OFFSET(21098, glCompressedTexSubImage1D, glCompressedTexSubImage1D, NULL, 411),
+ NAME_FUNC_OFFSET(21127, glCompressedTexSubImage2D, glCompressedTexSubImage2D, NULL, 412),
+ NAME_FUNC_OFFSET(21156, glCompressedTexSubImage3D, glCompressedTexSubImage3D, NULL, 413),
+ NAME_FUNC_OFFSET(21185, glCompressedTexSubImage3D, glCompressedTexSubImage3D, NULL, 413),
+ NAME_FUNC_OFFSET(21214, glGetCompressedTexImage, glGetCompressedTexImage, NULL, 414),
+ NAME_FUNC_OFFSET(21241, glLoadTransposeMatrixd, glLoadTransposeMatrixd, NULL, 415),
+ NAME_FUNC_OFFSET(21267, glLoadTransposeMatrixf, glLoadTransposeMatrixf, NULL, 416),
+ NAME_FUNC_OFFSET(21293, glMultTransposeMatrixd, glMultTransposeMatrixd, NULL, 417),
+ NAME_FUNC_OFFSET(21319, glMultTransposeMatrixf, glMultTransposeMatrixf, NULL, 418),
+ NAME_FUNC_OFFSET(21345, glSampleCoverage, glSampleCoverage, NULL, 419),
+ NAME_FUNC_OFFSET(21365, glBlendFuncSeparate, glBlendFuncSeparate, NULL, 420),
+ NAME_FUNC_OFFSET(21388, glBlendFuncSeparate, glBlendFuncSeparate, NULL, 420),
+ NAME_FUNC_OFFSET(21412, glBlendFuncSeparate, glBlendFuncSeparate, NULL, 420),
+ NAME_FUNC_OFFSET(21435, glFogCoordPointer, glFogCoordPointer, NULL, 421),
+ NAME_FUNC_OFFSET(21456, glFogCoordd, glFogCoordd, NULL, 422),
+ NAME_FUNC_OFFSET(21471, glFogCoorddv, glFogCoorddv, NULL, 423),
+ NAME_FUNC_OFFSET(21487, glMultiDrawArrays, glMultiDrawArrays, NULL, 424),
+ NAME_FUNC_OFFSET(21508, glPointParameterf, glPointParameterf, NULL, 425),
+ NAME_FUNC_OFFSET(21529, glPointParameterf, glPointParameterf, NULL, 425),
+ NAME_FUNC_OFFSET(21550, glPointParameterf, glPointParameterf, NULL, 425),
+ NAME_FUNC_OFFSET(21572, glPointParameterfv, glPointParameterfv, NULL, 426),
+ NAME_FUNC_OFFSET(21594, glPointParameterfv, glPointParameterfv, NULL, 426),
+ NAME_FUNC_OFFSET(21616, glPointParameterfv, glPointParameterfv, NULL, 426),
+ NAME_FUNC_OFFSET(21639, glPointParameteri, glPointParameteri, NULL, 427),
+ NAME_FUNC_OFFSET(21659, glPointParameteriv, glPointParameteriv, NULL, 428),
+ NAME_FUNC_OFFSET(21680, glSecondaryColor3b, glSecondaryColor3b, NULL, 429),
+ NAME_FUNC_OFFSET(21702, glSecondaryColor3bv, glSecondaryColor3bv, NULL, 430),
+ NAME_FUNC_OFFSET(21725, glSecondaryColor3d, glSecondaryColor3d, NULL, 431),
+ NAME_FUNC_OFFSET(21747, glSecondaryColor3dv, glSecondaryColor3dv, NULL, 432),
+ NAME_FUNC_OFFSET(21770, glSecondaryColor3i, glSecondaryColor3i, NULL, 433),
+ NAME_FUNC_OFFSET(21792, glSecondaryColor3iv, glSecondaryColor3iv, NULL, 434),
+ NAME_FUNC_OFFSET(21815, glSecondaryColor3s, glSecondaryColor3s, NULL, 435),
+ NAME_FUNC_OFFSET(21837, glSecondaryColor3sv, glSecondaryColor3sv, NULL, 436),
+ NAME_FUNC_OFFSET(21860, glSecondaryColor3ub, glSecondaryColor3ub, NULL, 437),
+ NAME_FUNC_OFFSET(21883, glSecondaryColor3ubv, glSecondaryColor3ubv, NULL, 438),
+ NAME_FUNC_OFFSET(21907, glSecondaryColor3ui, glSecondaryColor3ui, NULL, 439),
+ NAME_FUNC_OFFSET(21930, glSecondaryColor3uiv, glSecondaryColor3uiv, NULL, 440),
+ NAME_FUNC_OFFSET(21954, glSecondaryColor3us, glSecondaryColor3us, NULL, 441),
+ NAME_FUNC_OFFSET(21977, glSecondaryColor3usv, glSecondaryColor3usv, NULL, 442),
+ NAME_FUNC_OFFSET(22001, glSecondaryColorPointer, glSecondaryColorPointer, NULL, 443),
+ NAME_FUNC_OFFSET(22028, glWindowPos2d, glWindowPos2d, NULL, 444),
+ NAME_FUNC_OFFSET(22045, glWindowPos2d, glWindowPos2d, NULL, 444),
+ NAME_FUNC_OFFSET(22063, glWindowPos2dv, glWindowPos2dv, NULL, 445),
+ NAME_FUNC_OFFSET(22081, glWindowPos2dv, glWindowPos2dv, NULL, 445),
+ NAME_FUNC_OFFSET(22100, glWindowPos2f, glWindowPos2f, NULL, 446),
+ NAME_FUNC_OFFSET(22117, glWindowPos2f, glWindowPos2f, NULL, 446),
+ NAME_FUNC_OFFSET(22135, glWindowPos2fv, glWindowPos2fv, NULL, 447),
+ NAME_FUNC_OFFSET(22153, glWindowPos2fv, glWindowPos2fv, NULL, 447),
+ NAME_FUNC_OFFSET(22172, glWindowPos2i, glWindowPos2i, NULL, 448),
+ NAME_FUNC_OFFSET(22189, glWindowPos2i, glWindowPos2i, NULL, 448),
+ NAME_FUNC_OFFSET(22207, glWindowPos2iv, glWindowPos2iv, NULL, 449),
+ NAME_FUNC_OFFSET(22225, glWindowPos2iv, glWindowPos2iv, NULL, 449),
+ NAME_FUNC_OFFSET(22244, glWindowPos2s, glWindowPos2s, NULL, 450),
+ NAME_FUNC_OFFSET(22261, glWindowPos2s, glWindowPos2s, NULL, 450),
+ NAME_FUNC_OFFSET(22279, glWindowPos2sv, glWindowPos2sv, NULL, 451),
+ NAME_FUNC_OFFSET(22297, glWindowPos2sv, glWindowPos2sv, NULL, 451),
+ NAME_FUNC_OFFSET(22316, glWindowPos3d, glWindowPos3d, NULL, 452),
+ NAME_FUNC_OFFSET(22333, glWindowPos3d, glWindowPos3d, NULL, 452),
+ NAME_FUNC_OFFSET(22351, glWindowPos3dv, glWindowPos3dv, NULL, 453),
+ NAME_FUNC_OFFSET(22369, glWindowPos3dv, glWindowPos3dv, NULL, 453),
+ NAME_FUNC_OFFSET(22388, glWindowPos3f, glWindowPos3f, NULL, 454),
+ NAME_FUNC_OFFSET(22405, glWindowPos3f, glWindowPos3f, NULL, 454),
+ NAME_FUNC_OFFSET(22423, glWindowPos3fv, glWindowPos3fv, NULL, 455),
+ NAME_FUNC_OFFSET(22441, glWindowPos3fv, glWindowPos3fv, NULL, 455),
+ NAME_FUNC_OFFSET(22460, glWindowPos3i, glWindowPos3i, NULL, 456),
+ NAME_FUNC_OFFSET(22477, glWindowPos3i, glWindowPos3i, NULL, 456),
+ NAME_FUNC_OFFSET(22495, glWindowPos3iv, glWindowPos3iv, NULL, 457),
+ NAME_FUNC_OFFSET(22513, glWindowPos3iv, glWindowPos3iv, NULL, 457),
+ NAME_FUNC_OFFSET(22532, glWindowPos3s, glWindowPos3s, NULL, 458),
+ NAME_FUNC_OFFSET(22549, glWindowPos3s, glWindowPos3s, NULL, 458),
+ NAME_FUNC_OFFSET(22567, glWindowPos3sv, glWindowPos3sv, NULL, 459),
+ NAME_FUNC_OFFSET(22585, glWindowPos3sv, glWindowPos3sv, NULL, 459),
+ NAME_FUNC_OFFSET(22604, glBeginQuery, glBeginQuery, NULL, 460),
+ NAME_FUNC_OFFSET(22620, glBindBuffer, glBindBuffer, NULL, 461),
+ NAME_FUNC_OFFSET(22636, glBufferData, glBufferData, NULL, 462),
+ NAME_FUNC_OFFSET(22652, glBufferSubData, glBufferSubData, NULL, 463),
+ NAME_FUNC_OFFSET(22671, glDeleteBuffers, glDeleteBuffers, NULL, 464),
+ NAME_FUNC_OFFSET(22690, glDeleteQueries, glDeleteQueries, NULL, 465),
+ NAME_FUNC_OFFSET(22709, glEndQuery, glEndQuery, NULL, 466),
+ NAME_FUNC_OFFSET(22723, glGenBuffers, glGenBuffers, NULL, 467),
+ NAME_FUNC_OFFSET(22739, glGenQueries, glGenQueries, NULL, 468),
+ NAME_FUNC_OFFSET(22755, glGetBufferParameteriv, glGetBufferParameteriv, NULL, 469),
+ NAME_FUNC_OFFSET(22781, glGetBufferPointerv, glGetBufferPointerv, NULL, 470),
+ NAME_FUNC_OFFSET(22804, glGetBufferPointerv, glGetBufferPointerv, NULL, 470),
+ NAME_FUNC_OFFSET(22827, glGetBufferSubData, glGetBufferSubData, NULL, 471),
+ NAME_FUNC_OFFSET(22849, glGetQueryObjectiv, glGetQueryObjectiv, NULL, 472),
+ NAME_FUNC_OFFSET(22871, glGetQueryObjectuiv, glGetQueryObjectuiv, NULL, 473),
+ NAME_FUNC_OFFSET(22894, glGetQueryiv, glGetQueryiv, NULL, 474),
+ NAME_FUNC_OFFSET(22910, glIsBuffer, glIsBuffer, NULL, 475),
+ NAME_FUNC_OFFSET(22924, glIsQuery, glIsQuery, NULL, 476),
+ NAME_FUNC_OFFSET(22937, glMapBuffer, glMapBuffer, NULL, 477),
+ NAME_FUNC_OFFSET(22952, glMapBuffer, glMapBuffer, NULL, 477),
+ NAME_FUNC_OFFSET(22967, glUnmapBuffer, glUnmapBuffer, NULL, 478),
+ NAME_FUNC_OFFSET(22984, glUnmapBuffer, glUnmapBuffer, NULL, 478),
+ NAME_FUNC_OFFSET(23001, glBindAttribLocation, glBindAttribLocation, NULL, 480),
+ NAME_FUNC_OFFSET(23025, glBlendEquationSeparate, glBlendEquationSeparate, NULL, 481),
+ NAME_FUNC_OFFSET(23052, glBlendEquationSeparate, glBlendEquationSeparate, NULL, 481),
+ NAME_FUNC_OFFSET(23079, glBlendEquationSeparate, glBlendEquationSeparate, NULL, 481),
+ NAME_FUNC_OFFSET(23106, glCompileShader, glCompileShader, NULL, 482),
+ NAME_FUNC_OFFSET(23125, glDisableVertexAttribArray, glDisableVertexAttribArray, NULL, 488),
+ NAME_FUNC_OFFSET(23155, glDrawBuffers, glDrawBuffers, NULL, 489),
+ NAME_FUNC_OFFSET(23172, glDrawBuffers, glDrawBuffers, NULL, 489),
+ NAME_FUNC_OFFSET(23189, glDrawBuffers, glDrawBuffers, NULL, 489),
+ NAME_FUNC_OFFSET(23205, glEnableVertexAttribArray, glEnableVertexAttribArray, NULL, 490),
+ NAME_FUNC_OFFSET(23234, glGetActiveAttrib, glGetActiveAttrib, NULL, 491),
+ NAME_FUNC_OFFSET(23255, glGetActiveUniform, glGetActiveUniform, NULL, 492),
+ NAME_FUNC_OFFSET(23277, glGetAttribLocation, glGetAttribLocation, NULL, 494),
+ NAME_FUNC_OFFSET(23300, glGetShaderSource, glGetShaderSource, NULL, 498),
+ NAME_FUNC_OFFSET(23321, glGetUniformLocation, glGetUniformLocation, NULL, 500),
+ NAME_FUNC_OFFSET(23345, glGetUniformfv, glGetUniformfv, NULL, 501),
+ NAME_FUNC_OFFSET(23363, glGetUniformiv, glGetUniformiv, NULL, 502),
+ NAME_FUNC_OFFSET(23381, glGetVertexAttribPointerv, glGetVertexAttribPointerv, NULL, 503),
+ NAME_FUNC_OFFSET(23410, glGetVertexAttribPointerv, glGetVertexAttribPointerv, NULL, 503),
+ NAME_FUNC_OFFSET(23438, glGetVertexAttribdv, glGetVertexAttribdv, NULL, 504),
+ NAME_FUNC_OFFSET(23461, glGetVertexAttribfv, glGetVertexAttribfv, NULL, 505),
+ NAME_FUNC_OFFSET(23484, glGetVertexAttribiv, glGetVertexAttribiv, NULL, 506),
+ NAME_FUNC_OFFSET(23507, glLinkProgram, glLinkProgram, NULL, 509),
+ NAME_FUNC_OFFSET(23524, glShaderSource, glShaderSource, NULL, 510),
+ NAME_FUNC_OFFSET(23542, glStencilOpSeparate, glStencilOpSeparate, NULL, 513),
+ NAME_FUNC_OFFSET(23565, glUniform1f, glUniform1f, NULL, 514),
+ NAME_FUNC_OFFSET(23580, glUniform1fv, glUniform1fv, NULL, 515),
+ NAME_FUNC_OFFSET(23596, glUniform1i, glUniform1i, NULL, 516),
+ NAME_FUNC_OFFSET(23611, glUniform1iv, glUniform1iv, NULL, 517),
+ NAME_FUNC_OFFSET(23627, glUniform2f, glUniform2f, NULL, 518),
+ NAME_FUNC_OFFSET(23642, glUniform2fv, glUniform2fv, NULL, 519),
+ NAME_FUNC_OFFSET(23658, glUniform2i, glUniform2i, NULL, 520),
+ NAME_FUNC_OFFSET(23673, glUniform2iv, glUniform2iv, NULL, 521),
+ NAME_FUNC_OFFSET(23689, glUniform3f, glUniform3f, NULL, 522),
+ NAME_FUNC_OFFSET(23704, glUniform3fv, glUniform3fv, NULL, 523),
+ NAME_FUNC_OFFSET(23720, glUniform3i, glUniform3i, NULL, 524),
+ NAME_FUNC_OFFSET(23735, glUniform3iv, glUniform3iv, NULL, 525),
+ NAME_FUNC_OFFSET(23751, glUniform4f, glUniform4f, NULL, 526),
+ NAME_FUNC_OFFSET(23766, glUniform4fv, glUniform4fv, NULL, 527),
+ NAME_FUNC_OFFSET(23782, glUniform4i, glUniform4i, NULL, 528),
+ NAME_FUNC_OFFSET(23797, glUniform4iv, glUniform4iv, NULL, 529),
+ NAME_FUNC_OFFSET(23813, glUniformMatrix2fv, glUniformMatrix2fv, NULL, 530),
+ NAME_FUNC_OFFSET(23835, glUniformMatrix3fv, glUniformMatrix3fv, NULL, 531),
+ NAME_FUNC_OFFSET(23857, glUniformMatrix4fv, glUniformMatrix4fv, NULL, 532),
+ NAME_FUNC_OFFSET(23879, glUseProgram, glUseProgram, NULL, 533),
+ NAME_FUNC_OFFSET(23901, glValidateProgram, glValidateProgram, NULL, 534),
+ NAME_FUNC_OFFSET(23922, glVertexAttrib1d, glVertexAttrib1d, NULL, 535),
+ NAME_FUNC_OFFSET(23942, glVertexAttrib1dv, glVertexAttrib1dv, NULL, 536),
+ NAME_FUNC_OFFSET(23963, glVertexAttrib1s, glVertexAttrib1s, NULL, 537),
+ NAME_FUNC_OFFSET(23983, glVertexAttrib1sv, glVertexAttrib1sv, NULL, 538),
+ NAME_FUNC_OFFSET(24004, glVertexAttrib2d, glVertexAttrib2d, NULL, 539),
+ NAME_FUNC_OFFSET(24024, glVertexAttrib2dv, glVertexAttrib2dv, NULL, 540),
+ NAME_FUNC_OFFSET(24045, glVertexAttrib2s, glVertexAttrib2s, NULL, 541),
+ NAME_FUNC_OFFSET(24065, glVertexAttrib2sv, glVertexAttrib2sv, NULL, 542),
+ NAME_FUNC_OFFSET(24086, glVertexAttrib3d, glVertexAttrib3d, NULL, 543),
+ NAME_FUNC_OFFSET(24106, glVertexAttrib3dv, glVertexAttrib3dv, NULL, 544),
+ NAME_FUNC_OFFSET(24127, glVertexAttrib3s, glVertexAttrib3s, NULL, 545),
+ NAME_FUNC_OFFSET(24147, glVertexAttrib3sv, glVertexAttrib3sv, NULL, 546),
+ NAME_FUNC_OFFSET(24168, glVertexAttrib4Nbv, glVertexAttrib4Nbv, NULL, 547),
+ NAME_FUNC_OFFSET(24190, glVertexAttrib4Niv, glVertexAttrib4Niv, NULL, 548),
+ NAME_FUNC_OFFSET(24212, glVertexAttrib4Nsv, glVertexAttrib4Nsv, NULL, 549),
+ NAME_FUNC_OFFSET(24234, glVertexAttrib4Nub, glVertexAttrib4Nub, NULL, 550),
+ NAME_FUNC_OFFSET(24256, glVertexAttrib4Nubv, glVertexAttrib4Nubv, NULL, 551),
+ NAME_FUNC_OFFSET(24279, glVertexAttrib4Nuiv, glVertexAttrib4Nuiv, NULL, 552),
+ NAME_FUNC_OFFSET(24302, glVertexAttrib4Nusv, glVertexAttrib4Nusv, NULL, 553),
+ NAME_FUNC_OFFSET(24325, glVertexAttrib4bv, glVertexAttrib4bv, NULL, 554),
+ NAME_FUNC_OFFSET(24346, glVertexAttrib4d, glVertexAttrib4d, NULL, 555),
+ NAME_FUNC_OFFSET(24366, glVertexAttrib4dv, glVertexAttrib4dv, NULL, 556),
+ NAME_FUNC_OFFSET(24387, glVertexAttrib4iv, glVertexAttrib4iv, NULL, 557),
+ NAME_FUNC_OFFSET(24408, glVertexAttrib4s, glVertexAttrib4s, NULL, 558),
+ NAME_FUNC_OFFSET(24428, glVertexAttrib4sv, glVertexAttrib4sv, NULL, 559),
+ NAME_FUNC_OFFSET(24449, glVertexAttrib4ubv, glVertexAttrib4ubv, NULL, 560),
+ NAME_FUNC_OFFSET(24471, glVertexAttrib4uiv, glVertexAttrib4uiv, NULL, 561),
+ NAME_FUNC_OFFSET(24493, glVertexAttrib4usv, glVertexAttrib4usv, NULL, 562),
+ NAME_FUNC_OFFSET(24515, glVertexAttribPointer, glVertexAttribPointer, NULL, 563),
+ NAME_FUNC_OFFSET(24540, glBeginConditionalRender, glBeginConditionalRender, NULL, 570),
+ NAME_FUNC_OFFSET(24567, glBeginTransformFeedback, glBeginTransformFeedback, NULL, 571),
+ NAME_FUNC_OFFSET(24595, glBindBufferBase, glBindBufferBase, NULL, 572),
+ NAME_FUNC_OFFSET(24615, glBindBufferRange, glBindBufferRange, NULL, 573),
+ NAME_FUNC_OFFSET(24636, glBindFragDataLocation, glBindFragDataLocation, NULL, 574),
+ NAME_FUNC_OFFSET(24662, glClampColor, glClampColor, NULL, 575),
+ NAME_FUNC_OFFSET(24678, glColorMaski, glColorMaski, NULL, 580),
+ NAME_FUNC_OFFSET(24700, glDisablei, glDisablei, NULL, 581),
+ NAME_FUNC_OFFSET(24720, glEnablei, glEnablei, NULL, 582),
+ NAME_FUNC_OFFSET(24739, glEndConditionalRender, glEndConditionalRender, NULL, 583),
+ NAME_FUNC_OFFSET(24764, glEndTransformFeedback, glEndTransformFeedback, NULL, 584),
+ NAME_FUNC_OFFSET(24790, glGetBooleani_v, glGetBooleani_v, NULL, 585),
+ NAME_FUNC_OFFSET(24814, glGetFragDataLocation, glGetFragDataLocation, NULL, 586),
+ NAME_FUNC_OFFSET(24839, glGetIntegeri_v, glGetIntegeri_v, NULL, 587),
+ NAME_FUNC_OFFSET(24863, glGetTexParameterIiv, glGetTexParameterIiv, NULL, 589),
+ NAME_FUNC_OFFSET(24887, glGetTexParameterIuiv, glGetTexParameterIuiv, NULL, 590),
+ NAME_FUNC_OFFSET(24912, glGetTransformFeedbackVarying, glGetTransformFeedbackVarying, NULL, 591),
+ NAME_FUNC_OFFSET(24945, glGetUniformuiv, glGetUniformuiv, NULL, 592),
+ NAME_FUNC_OFFSET(24964, glGetVertexAttribIiv, glGetVertexAttribIiv, NULL, 593),
+ NAME_FUNC_OFFSET(24988, glGetVertexAttribIuiv, glGetVertexAttribIuiv, NULL, 594),
+ NAME_FUNC_OFFSET(25013, glIsEnabledi, glIsEnabledi, NULL, 595),
+ NAME_FUNC_OFFSET(25035, glTexParameterIiv, glTexParameterIiv, NULL, 596),
+ NAME_FUNC_OFFSET(25056, glTexParameterIuiv, glTexParameterIuiv, NULL, 597),
+ NAME_FUNC_OFFSET(25078, glTransformFeedbackVaryings, glTransformFeedbackVaryings, NULL, 598),
+ NAME_FUNC_OFFSET(25109, glUniform1ui, glUniform1ui, NULL, 599),
+ NAME_FUNC_OFFSET(25125, glUniform1uiv, glUniform1uiv, NULL, 600),
+ NAME_FUNC_OFFSET(25142, glUniform2ui, glUniform2ui, NULL, 601),
+ NAME_FUNC_OFFSET(25158, glUniform2uiv, glUniform2uiv, NULL, 602),
+ NAME_FUNC_OFFSET(25175, glUniform3ui, glUniform3ui, NULL, 603),
+ NAME_FUNC_OFFSET(25191, glUniform3uiv, glUniform3uiv, NULL, 604),
+ NAME_FUNC_OFFSET(25208, glUniform4ui, glUniform4ui, NULL, 605),
+ NAME_FUNC_OFFSET(25224, glUniform4uiv, glUniform4uiv, NULL, 606),
+ NAME_FUNC_OFFSET(25241, glVertexAttribI1iv, glVertexAttribI1iv, NULL, 607),
+ NAME_FUNC_OFFSET(25263, glVertexAttribI1uiv, glVertexAttribI1uiv, NULL, 608),
+ NAME_FUNC_OFFSET(25286, glVertexAttribI4bv, glVertexAttribI4bv, NULL, 609),
+ NAME_FUNC_OFFSET(25308, glVertexAttribI4sv, glVertexAttribI4sv, NULL, 610),
+ NAME_FUNC_OFFSET(25330, glVertexAttribI4ubv, glVertexAttribI4ubv, NULL, 611),
+ NAME_FUNC_OFFSET(25353, glVertexAttribI4usv, glVertexAttribI4usv, NULL, 612),
+ NAME_FUNC_OFFSET(25376, glVertexAttribIPointer, glVertexAttribIPointer, NULL, 613),
+ NAME_FUNC_OFFSET(25402, glPrimitiveRestartIndex, glPrimitiveRestartIndex, NULL, 614),
+ NAME_FUNC_OFFSET(25428, glTexBuffer, glTexBuffer, NULL, 615),
+ NAME_FUNC_OFFSET(25443, glFramebufferTexture, glFramebufferTexture, NULL, 616),
+ NAME_FUNC_OFFSET(25467, glVertexAttribDivisor, glVertexAttribDivisor, NULL, 619),
+ NAME_FUNC_OFFSET(25492, glMinSampleShading, glMinSampleShading, NULL, 620),
+ NAME_FUNC_OFFSET(25514, glBindProgramARB, glBindProgramARB, NULL, 621),
+ NAME_FUNC_OFFSET(25530, glDeleteProgramsARB, glDeleteProgramsARB, NULL, 622),
+ NAME_FUNC_OFFSET(25549, glGenProgramsARB, glGenProgramsARB, NULL, 623),
+ NAME_FUNC_OFFSET(25565, glIsProgramARB, glIsProgramARB, NULL, 630),
+ NAME_FUNC_OFFSET(25579, glProgramEnvParameter4dARB, glProgramEnvParameter4dARB, NULL, 631),
+ NAME_FUNC_OFFSET(25602, glProgramEnvParameter4dvARB, glProgramEnvParameter4dvARB, NULL, 632),
+ NAME_FUNC_OFFSET(25626, glProgramEnvParameter4fARB, glProgramEnvParameter4fARB, NULL, 633),
+ NAME_FUNC_OFFSET(25649, glProgramEnvParameter4fvARB, glProgramEnvParameter4fvARB, NULL, 634),
+ NAME_FUNC_OFFSET(25673, glVertexAttrib1fARB, glVertexAttrib1fARB, NULL, 640),
+ NAME_FUNC_OFFSET(25690, glVertexAttrib1fvARB, glVertexAttrib1fvARB, NULL, 641),
+ NAME_FUNC_OFFSET(25708, glVertexAttrib2fARB, glVertexAttrib2fARB, NULL, 642),
+ NAME_FUNC_OFFSET(25725, glVertexAttrib2fvARB, glVertexAttrib2fvARB, NULL, 643),
+ NAME_FUNC_OFFSET(25743, glVertexAttrib3fARB, glVertexAttrib3fARB, NULL, 644),
+ NAME_FUNC_OFFSET(25760, glVertexAttrib3fvARB, glVertexAttrib3fvARB, NULL, 645),
+ NAME_FUNC_OFFSET(25778, glVertexAttrib4fARB, glVertexAttrib4fARB, NULL, 646),
+ NAME_FUNC_OFFSET(25795, glVertexAttrib4fvARB, glVertexAttrib4fvARB, NULL, 647),
+ NAME_FUNC_OFFSET(25813, glDrawArraysInstancedARB, glDrawArraysInstancedARB, NULL, 658),
+ NAME_FUNC_OFFSET(25838, glDrawArraysInstancedARB, glDrawArraysInstancedARB, NULL, 658),
+ NAME_FUNC_OFFSET(25860, glDrawElementsInstancedARB, glDrawElementsInstancedARB, NULL, 659),
+ NAME_FUNC_OFFSET(25887, glDrawElementsInstancedARB, glDrawElementsInstancedARB, NULL, 659),
+ NAME_FUNC_OFFSET(25911, glBindFramebuffer, glBindFramebuffer, NULL, 660),
+ NAME_FUNC_OFFSET(25932, glBindRenderbuffer, glBindRenderbuffer, NULL, 661),
+ NAME_FUNC_OFFSET(25954, glBlitFramebuffer, glBlitFramebuffer, NULL, 662),
+ NAME_FUNC_OFFSET(25975, glCheckFramebufferStatus, glCheckFramebufferStatus, NULL, 663),
+ NAME_FUNC_OFFSET(26003, glCheckFramebufferStatus, glCheckFramebufferStatus, NULL, 663),
+ NAME_FUNC_OFFSET(26031, glDeleteFramebuffers, glDeleteFramebuffers, NULL, 664),
+ NAME_FUNC_OFFSET(26055, glDeleteFramebuffers, glDeleteFramebuffers, NULL, 664),
+ NAME_FUNC_OFFSET(26079, glDeleteRenderbuffers, glDeleteRenderbuffers, NULL, 665),
+ NAME_FUNC_OFFSET(26104, glDeleteRenderbuffers, glDeleteRenderbuffers, NULL, 665),
+ NAME_FUNC_OFFSET(26129, glFramebufferRenderbuffer, glFramebufferRenderbuffer, NULL, 666),
+ NAME_FUNC_OFFSET(26158, glFramebufferRenderbuffer, glFramebufferRenderbuffer, NULL, 666),
+ NAME_FUNC_OFFSET(26187, glFramebufferTexture1D, glFramebufferTexture1D, NULL, 667),
+ NAME_FUNC_OFFSET(26213, glFramebufferTexture2D, glFramebufferTexture2D, NULL, 668),
+ NAME_FUNC_OFFSET(26239, glFramebufferTexture2D, glFramebufferTexture2D, NULL, 668),
+ NAME_FUNC_OFFSET(26265, glFramebufferTexture3D, glFramebufferTexture3D, NULL, 669),
+ NAME_FUNC_OFFSET(26291, glFramebufferTexture3D, glFramebufferTexture3D, NULL, 669),
+ NAME_FUNC_OFFSET(26317, glFramebufferTextureLayer, glFramebufferTextureLayer, NULL, 670),
+ NAME_FUNC_OFFSET(26346, glFramebufferTextureLayer, glFramebufferTextureLayer, NULL, 670),
+ NAME_FUNC_OFFSET(26375, glGenFramebuffers, glGenFramebuffers, NULL, 671),
+ NAME_FUNC_OFFSET(26396, glGenFramebuffers, glGenFramebuffers, NULL, 671),
+ NAME_FUNC_OFFSET(26417, glGenRenderbuffers, glGenRenderbuffers, NULL, 672),
+ NAME_FUNC_OFFSET(26439, glGenRenderbuffers, glGenRenderbuffers, NULL, 672),
+ NAME_FUNC_OFFSET(26461, glGenerateMipmap, glGenerateMipmap, NULL, 673),
+ NAME_FUNC_OFFSET(26481, glGenerateMipmap, glGenerateMipmap, NULL, 673),
+ NAME_FUNC_OFFSET(26501, glGetFramebufferAttachmentParameteriv, glGetFramebufferAttachmentParameteriv, NULL, 674),
+ NAME_FUNC_OFFSET(26542, glGetFramebufferAttachmentParameteriv, glGetFramebufferAttachmentParameteriv, NULL, 674),
+ NAME_FUNC_OFFSET(26583, glGetRenderbufferParameteriv, glGetRenderbufferParameteriv, NULL, 675),
+ NAME_FUNC_OFFSET(26615, glGetRenderbufferParameteriv, glGetRenderbufferParameteriv, NULL, 675),
+ NAME_FUNC_OFFSET(26647, glIsFramebuffer, glIsFramebuffer, NULL, 676),
+ NAME_FUNC_OFFSET(26666, glIsFramebuffer, glIsFramebuffer, NULL, 676),
+ NAME_FUNC_OFFSET(26685, glIsRenderbuffer, glIsRenderbuffer, NULL, 677),
+ NAME_FUNC_OFFSET(26705, glIsRenderbuffer, glIsRenderbuffer, NULL, 677),
+ NAME_FUNC_OFFSET(26725, glRenderbufferStorage, glRenderbufferStorage, NULL, 678),
+ NAME_FUNC_OFFSET(26750, glRenderbufferStorage, glRenderbufferStorage, NULL, 678),
+ NAME_FUNC_OFFSET(26775, glRenderbufferStorageMultisample, glRenderbufferStorageMultisample, NULL, 679),
+ NAME_FUNC_OFFSET(26811, glFlushMappedBufferRange, glFlushMappedBufferRange, NULL, 681),
+ NAME_FUNC_OFFSET(26839, glMapBufferRange, glMapBufferRange, NULL, 682),
+ NAME_FUNC_OFFSET(26859, glBindVertexArray, glBindVertexArray, NULL, 683),
+ NAME_FUNC_OFFSET(26880, glDeleteVertexArrays, glDeleteVertexArrays, NULL, 684),
+ NAME_FUNC_OFFSET(26906, glDeleteVertexArrays, glDeleteVertexArrays, NULL, 684),
+ NAME_FUNC_OFFSET(26930, glGenVertexArrays, glGenVertexArrays, NULL, 685),
+ NAME_FUNC_OFFSET(26951, glIsVertexArray, glIsVertexArray, NULL, 686),
+ NAME_FUNC_OFFSET(26972, glIsVertexArray, glIsVertexArray, NULL, 686),
+ NAME_FUNC_OFFSET(26991, glProvokingVertex, glProvokingVertex, NULL, 706),
+ NAME_FUNC_OFFSET(27012, glBlendEquationSeparateiARB, glBlendEquationSeparateiARB, NULL, 711),
+ NAME_FUNC_OFFSET(27046, glBlendEquationiARB, glBlendEquationiARB, NULL, 712),
+ NAME_FUNC_OFFSET(27072, glBlendFuncSeparateiARB, glBlendFuncSeparateiARB, NULL, 713),
+ NAME_FUNC_OFFSET(27102, glBlendFunciARB, glBlendFunciARB, NULL, 714),
+ NAME_FUNC_OFFSET(27124, gl_dispatch_stub_731, gl_dispatch_stub_731, NULL, 731),
+ NAME_FUNC_OFFSET(27148, gl_dispatch_stub_732, gl_dispatch_stub_732, NULL, 732),
+ NAME_FUNC_OFFSET(27173, glClearDepthf, glClearDepthf, NULL, 783),
+ NAME_FUNC_OFFSET(27190, glDepthRangef, glDepthRangef, NULL, 784),
+ NAME_FUNC_OFFSET(27207, glGetProgramBinary, glGetProgramBinary, NULL, 788),
+ NAME_FUNC_OFFSET(27229, glProgramBinary, glProgramBinary, NULL, 789),
+ NAME_FUNC_OFFSET(27248, glProgramParameteri, glProgramParameteri, NULL, 790),
+ NAME_FUNC_OFFSET(27271, gl_dispatch_stub_854, gl_dispatch_stub_854, NULL, 854),
+ NAME_FUNC_OFFSET(27287, gl_dispatch_stub_855, gl_dispatch_stub_855, NULL, 855),
+ NAME_FUNC_OFFSET(27306, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, 875),
+ NAME_FUNC_OFFSET(27325, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, 876),
+ NAME_FUNC_OFFSET(27345, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, 877),
+ NAME_FUNC_OFFSET(27365, glFogCoordfEXT, glFogCoordfEXT, NULL, 878),
+ NAME_FUNC_OFFSET(27377, glFogCoordfvEXT, glFogCoordfvEXT, NULL, 879),
+ NAME_FUNC_OFFSET(27390, glVertexAttribI1iEXT, glVertexAttribI1iEXT, NULL, 982),
+ NAME_FUNC_OFFSET(27408, glVertexAttribI1uiEXT, glVertexAttribI1uiEXT, NULL, 983),
+ NAME_FUNC_OFFSET(27427, glVertexAttribI2iEXT, glVertexAttribI2iEXT, NULL, 984),
+ NAME_FUNC_OFFSET(27445, glVertexAttribI2ivEXT, glVertexAttribI2ivEXT, NULL, 985),
+ NAME_FUNC_OFFSET(27464, glVertexAttribI2uiEXT, glVertexAttribI2uiEXT, NULL, 986),
+ NAME_FUNC_OFFSET(27483, glVertexAttribI2uivEXT, glVertexAttribI2uivEXT, NULL, 987),
+ NAME_FUNC_OFFSET(27503, glVertexAttribI3iEXT, glVertexAttribI3iEXT, NULL, 988),
+ NAME_FUNC_OFFSET(27521, glVertexAttribI3ivEXT, glVertexAttribI3ivEXT, NULL, 989),
+ NAME_FUNC_OFFSET(27540, glVertexAttribI3uiEXT, glVertexAttribI3uiEXT, NULL, 990),
+ NAME_FUNC_OFFSET(27559, glVertexAttribI3uivEXT, glVertexAttribI3uivEXT, NULL, 991),
+ NAME_FUNC_OFFSET(27579, glVertexAttribI4iEXT, glVertexAttribI4iEXT, NULL, 992),
+ NAME_FUNC_OFFSET(27597, glVertexAttribI4ivEXT, glVertexAttribI4ivEXT, NULL, 993),
+ NAME_FUNC_OFFSET(27616, glVertexAttribI4uiEXT, glVertexAttribI4uiEXT, NULL, 994),
+ NAME_FUNC_OFFSET(27635, glVertexAttribI4uivEXT, glVertexAttribI4uivEXT, NULL, 995),
+ NAME_FUNC_OFFSET(27655, gl_dispatch_stub_1032, gl_dispatch_stub_1032, NULL, 1032),
+ NAME_FUNC_OFFSET(27671, gl_dispatch_stub_1033, gl_dispatch_stub_1033, NULL, 1033),
+ NAME_FUNC_OFFSET(27688, gl_dispatch_stub_1034, gl_dispatch_stub_1034, NULL, 1034),
+ NAME_FUNC_OFFSET(27705, gl_dispatch_stub_1035, gl_dispatch_stub_1035, NULL, 1035),
+ NAME_FUNC_OFFSET(27718, gl_dispatch_stub_1036, gl_dispatch_stub_1036, NULL, 1036),
+ NAME_FUNC_OFFSET(27735, gl_dispatch_stub_1037, gl_dispatch_stub_1037, NULL, 1037),
+ NAME_FUNC_OFFSET(27745, gl_dispatch_stub_1038, gl_dispatch_stub_1038, NULL, 1038),
+ NAME_FUNC_OFFSET(27756, gl_dispatch_stub_1039, gl_dispatch_stub_1039, NULL, 1039),
+ NAME_FUNC_OFFSET(27770, gl_dispatch_stub_1040, gl_dispatch_stub_1040, NULL, 1040),
+ NAME_FUNC_OFFSET(27784, gl_dispatch_stub_1041, gl_dispatch_stub_1041, NULL, 1041),
+ NAME_FUNC_OFFSET(27801, gl_dispatch_stub_1042, gl_dispatch_stub_1042, NULL, 1042),
+ NAME_FUNC_OFFSET(27819, gl_dispatch_stub_1043, gl_dispatch_stub_1043, NULL, 1043),
+ NAME_FUNC_OFFSET(27831, gl_dispatch_stub_1044, gl_dispatch_stub_1044, NULL, 1044),
+ NAME_FUNC_OFFSET(27844, gl_dispatch_stub_1045, gl_dispatch_stub_1045, NULL, 1045),
+ NAME_FUNC_OFFSET(27860, gl_dispatch_stub_1046, gl_dispatch_stub_1046, NULL, 1046),
+ NAME_FUNC_OFFSET(27877, gl_dispatch_stub_1047, gl_dispatch_stub_1047, NULL, 1047),
+ NAME_FUNC_OFFSET(27892, gl_dispatch_stub_1048, gl_dispatch_stub_1048, NULL, 1048),
+ NAME_FUNC_OFFSET(27908, gl_dispatch_stub_1049, gl_dispatch_stub_1049, NULL, 1049),
+ NAME_FUNC_OFFSET(27925, gl_dispatch_stub_1050, gl_dispatch_stub_1050, NULL, 1050),
+ NAME_FUNC_OFFSET(27946, gl_dispatch_stub_1051, gl_dispatch_stub_1051, NULL, 1051),
+ NAME_FUNC_OFFSET(27960, gl_dispatch_stub_1052, gl_dispatch_stub_1052, NULL, 1052),
+ NAME_FUNC_OFFSET(27972, gl_dispatch_stub_1053, gl_dispatch_stub_1053, NULL, 1053),
+ NAME_FUNC_OFFSET(27984, gl_dispatch_stub_1054, gl_dispatch_stub_1054, NULL, 1054),
+ NAME_FUNC_OFFSET(28000, gl_dispatch_stub_1055, gl_dispatch_stub_1055, NULL, 1055),
+ NAME_FUNC_OFFSET(28020, gl_dispatch_stub_1056, gl_dispatch_stub_1056, NULL, 1056),
+ NAME_FUNC_OFFSET(28033, gl_dispatch_stub_1057, gl_dispatch_stub_1057, NULL, 1057),
+ NAME_FUNC_OFFSET(28054, gl_dispatch_stub_1058, gl_dispatch_stub_1058, NULL, 1058),
+ NAME_FUNC_OFFSET(28066, gl_dispatch_stub_1059, gl_dispatch_stub_1059, NULL, 1059),
+ NAME_FUNC_OFFSET(28079, gl_dispatch_stub_1060, gl_dispatch_stub_1060, NULL, 1060),
+ NAME_FUNC_OFFSET(28093, gl_dispatch_stub_1061, gl_dispatch_stub_1061, NULL, 1061),
+ NAME_FUNC_OFFSET(28112, gl_dispatch_stub_1062, gl_dispatch_stub_1062, NULL, 1062),
+ NAME_FUNC_OFFSET(28128, gl_dispatch_stub_1063, gl_dispatch_stub_1063, NULL, 1063),
+ NAME_FUNC_OFFSET(28144, gl_dispatch_stub_1064, gl_dispatch_stub_1064, NULL, 1064),
+ NAME_FUNC_OFFSET(28160, gl_dispatch_stub_1065, gl_dispatch_stub_1065, NULL, 1065),
+ NAME_FUNC_OFFSET(28179, gl_dispatch_stub_1066, gl_dispatch_stub_1066, NULL, 1066),
+ NAME_FUNC_OFFSET(28198, gl_dispatch_stub_1067, gl_dispatch_stub_1067, NULL, 1067),
+ NAME_FUNC_OFFSET(28213, gl_dispatch_stub_1068, gl_dispatch_stub_1068, NULL, 1068),
+ NAME_FUNC_OFFSET(28229, gl_dispatch_stub_1069, gl_dispatch_stub_1069, NULL, 1069),
+ NAME_FUNC_OFFSET(28248, gl_dispatch_stub_1070, gl_dispatch_stub_1070, NULL, 1070),
+ NAME_FUNC_OFFSET(28265, gl_dispatch_stub_1071, gl_dispatch_stub_1071, NULL, 1071),
+ NAME_FUNC_OFFSET(28288, gl_dispatch_stub_1072, gl_dispatch_stub_1072, NULL, 1072),
+ NAME_FUNC_OFFSET(28309, gl_dispatch_stub_1073, gl_dispatch_stub_1073, NULL, 1073),
+ NAME_FUNC_OFFSET(28331, gl_dispatch_stub_1074, gl_dispatch_stub_1074, NULL, 1074),
+ NAME_FUNC_OFFSET(-1, NULL, NULL, NULL, 0)
+};
+
+#undef NAME_FUNC_OFFSET
diff --git a/xorg-server/glx/glthread.h b/xorg-server/glx/glthread.h
new file mode 100644
index 000000000..62c9bd4f1
--- /dev/null
+++ b/xorg-server/glx/glthread.h
@@ -0,0 +1,234 @@
+/*
+ * Mesa 3-D graphics library
+ * Version: 6.5.2
+ *
+ * Copyright (C) 1999-2006 Brian Paul 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
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 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.
+ */
+
+/*
+ * Thread support for gl dispatch.
+ *
+ * Initial version by John Stone (j.stone@acm.org) (johns@cs.umr.edu)
+ * and Christoph Poliwoda (poliwoda@volumegraphics.com)
+ * Revised by Keith Whitwell
+ * Adapted for new gl dispatcher by Brian Paul
+ *
+ *
+ *
+ * DOCUMENTATION
+ *
+ * This thread module exports the following types:
+ * _glthread_TSD Thread-specific data area
+ * _glthread_Thread Thread datatype
+ * _glthread_Mutex Mutual exclusion lock
+ *
+ * Macros:
+ * _glthread_DECLARE_STATIC_MUTEX(name) Declare a non-local mutex
+ * _glthread_INIT_MUTEX(name) Initialize a mutex
+ * _glthread_LOCK_MUTEX(name) Lock a mutex
+ * _glthread_UNLOCK_MUTEX(name) Unlock a mutex
+ *
+ * Functions:
+ * _glthread_GetID(v) Get integer thread ID
+ * _glthread_InitTSD() Initialize thread-specific data
+ * _glthread_GetTSD() Get thread-specific data
+ * _glthread_SetTSD() Set thread-specific data
+ *
+ */
+
+/*
+ * If this file is accidentally included by a non-threaded build,
+ * it should not cause the build to fail, or otherwise cause problems.
+ * In general, it should only be included when needed however.
+ */
+
+#ifndef GLTHREAD_H
+#define GLTHREAD_H
+
+#if defined(USE_MGL_NAMESPACE)
+#define _glapi_Dispatch _mglapi_Dispatch
+#endif
+
+#if (defined(PTHREADS) || defined(WIN32_THREADS)) \
+ && !defined(THREADS)
+#define THREADS
+#endif
+
+#ifdef VMS
+#include <GL/vms_x_fix.h>
+#endif
+
+/*
+ * POSIX threads. This should be your choice in the Unix world
+ * whenever possible. When building with POSIX threads, be sure
+ * to enable any compiler flags which will cause the MT-safe
+ * libc (if one exists) to be used when linking, as well as any
+ * header macros for MT-safe errno, etc. For Solaris, this is the -mt
+ * compiler flag. On Solaris with gcc, use -D_REENTRANT to enable
+ * proper compiling for MT-safe libc etc.
+ */
+#if defined(PTHREADS)
+#include <pthread.h> /* POSIX threads headers */
+
+typedef struct {
+ pthread_key_t key;
+ int initMagic;
+} _glthread_TSD;
+
+typedef pthread_t _glthread_Thread;
+
+typedef pthread_mutex_t _glthread_Mutex;
+
+#define _glthread_DECLARE_STATIC_MUTEX(name) \
+ static _glthread_Mutex name = PTHREAD_MUTEX_INITIALIZER
+
+#define _glthread_INIT_MUTEX(name) \
+ pthread_mutex_init(&(name), NULL)
+
+#define _glthread_DESTROY_MUTEX(name) \
+ pthread_mutex_destroy(&(name))
+
+#define _glthread_LOCK_MUTEX(name) \
+ (void) pthread_mutex_lock(&(name))
+
+#define _glthread_UNLOCK_MUTEX(name) \
+ (void) pthread_mutex_unlock(&(name))
+
+#endif /* PTHREADS */
+
+/*
+ * Solaris threads. Use only up to Solaris 2.4.
+ * Solaris 2.5 and higher provide POSIX threads.
+ * Be sure to compile with -mt on the Solaris compilers, or
+ * use -D_REENTRANT if using gcc.
+ */
+
+/*
+ * Windows threads. Should work with Windows NT and 95.
+ * IMPORTANT: Link with multithreaded runtime library when THREADS are
+ * used!
+ */
+#ifdef WIN32_THREADS
+#include <windows.h>
+
+typedef struct {
+ DWORD key;
+ int initMagic;
+} _glthread_TSD;
+
+typedef HANDLE _glthread_Thread;
+
+typedef CRITICAL_SECTION _glthread_Mutex;
+
+#define _glthread_DECLARE_STATIC_MUTEX(name) /*static*/ _glthread_Mutex name = {0,0,0,0,0,0}
+#define _glthread_INIT_MUTEX(name) InitializeCriticalSection(&name)
+#define _glthread_DESTROY_MUTEX(name) DeleteCriticalSection(&name)
+#define _glthread_LOCK_MUTEX(name) EnterCriticalSection(&name)
+#define _glthread_UNLOCK_MUTEX(name) LeaveCriticalSection(&name)
+
+#endif /* WIN32_THREADS */
+
+/*
+ * BeOS threads. R5.x required.
+ */
+#ifdef BEOS_THREADS
+
+#include <kernel/OS.h>
+#include <support/TLS.h>
+
+typedef struct {
+ int32 key;
+ int initMagic;
+} _glthread_TSD;
+
+typedef thread_id _glthread_Thread;
+
+/* Use Benaphore, aka speeder semaphore */
+typedef struct {
+ int32 lock;
+ sem_id sem;
+} benaphore;
+typedef benaphore _glthread_Mutex;
+
+#define _glthread_DECLARE_STATIC_MUTEX(name) static _glthread_Mutex name = { 0, 0 }
+#define _glthread_INIT_MUTEX(name) name.sem = create_sem(0, #name"_benaphore"), name.lock = 0
+#define _glthread_DESTROY_MUTEX(name) delete_sem(name.sem), name.lock = 0
+#define _glthread_LOCK_MUTEX(name) if (name.sem == 0) _glthread_INIT_MUTEX(name); \
+ if (atomic_add(&(name.lock), 1) >= 1) acquire_sem(name.sem)
+#define _glthread_UNLOCK_MUTEX(name) if (atomic_add(&(name.lock), -1) > 1) release_sem(name.sem)
+
+#endif /* BEOS_THREADS */
+
+#ifndef THREADS
+
+/*
+ * THREADS not defined
+ */
+
+typedef int _glthread_TSD;
+
+typedef int _glthread_Thread;
+
+typedef int _glthread_Mutex;
+
+#define _glthread_DECLARE_STATIC_MUTEX(name) static _glthread_Mutex name = 0
+
+#define _glthread_INIT_MUTEX(name) (void) name
+
+#define _glthread_DESTROY_MUTEX(name) (void) name
+
+#define _glthread_LOCK_MUTEX(name) (void) name
+
+#define _glthread_UNLOCK_MUTEX(name) (void) name
+
+#endif /* THREADS */
+
+/*
+ * Platform independent thread specific data API.
+ */
+
+extern unsigned long
+ _glthread_GetID(void);
+
+extern void
+ _glthread_InitTSD(_glthread_TSD *);
+
+extern void *_glthread_GetTSD(_glthread_TSD *);
+
+extern void
+ _glthread_SetTSD(_glthread_TSD *, void *);
+
+#if defined(GLX_USE_TLS)
+
+extern TLS struct _glapi_table *_glapi_tls_Dispatch;
+
+#define GET_DISPATCH() _glapi_tls_Dispatch
+
+#elif !defined(GL_CALL)
+#if defined(THREADS)
+#define GET_DISPATCH() \
+ ((__builtin_expect( _glapi_Dispatch != NULL, 1 )) \
+ ? _glapi_Dispatch : _glapi_get_dispatch())
+#else
+#define GET_DISPATCH() _glapi_Dispatch
+#endif /* defined(THREADS) */
+#endif /* ndef GL_CALL */
+
+#endif /* THREADS_H */
diff --git a/xorg-server/glx/glxcmds.c b/xorg-server/glx/glxcmds.c
index efa4aecb2..fc2bb35bd 100644
--- a/xorg-server/glx/glxcmds.c
+++ b/xorg-server/glx/glxcmds.c
@@ -31,6 +31,7 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
+#include "glheader.h"
#include <string.h>
#include <assert.h>
@@ -496,7 +497,7 @@ __glXGetDrawable(__GLXcontext * glxc, GLXDrawable drawId, ClientPtr client,
return NULL;
}
- if (pDraw->pScreen != glxc->pGlxScreen->pScreen) {
+ if (!glxc || pDraw->pScreen != glxc->pGlxScreen->pScreen) {
client->errorValue = pDraw->pScreen->myNum;
*error = BadMatch;
return NULL;
@@ -509,9 +510,11 @@ __glXGetDrawable(__GLXcontext * glxc, GLXDrawable drawId, ClientPtr client,
pDraw, drawId,
GLX_DRAWABLE_WINDOW,
drawId, glxc->config);
- if (!pGlxDraw) {
- *error = BadAlloc;
- return NULL;
+ if (!pGlxDraw)
+ {
+ client->errorValue = drawId;
+ *error = BadMatch;
+ return NULL;
}
/* since we are creating the drawablePrivate, drawId should be new */
@@ -651,12 +654,12 @@ DoMakeCurrent(__GLXclientState * cl,
StopUsingContext(prevglxc);
- reply = (xGLXMakeCurrentReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .contextTag = 0
- };
+
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = 0;
+ reply.contextTag = 0;
+
if (glxc) {
StartUsingContext(cl, glxc);
@@ -722,12 +725,12 @@ __glXDisp_IsDirect(__GLXclientState * cl, GLbyte * pc)
if (!validGlxContext(cl->client, req->context, DixReadAccess, &glxc, &err))
return err;
- reply = (xGLXIsDirectReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .isDirect = glxc->isDirect
- };
+
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = 0;
+ reply.isDirect = glxc->isDirect;
+
if (client->swapped) {
__glXSwapIsDirectReply(client, &reply);
@@ -759,13 +762,13 @@ __glXDisp_QueryVersion(__GLXclientState * cl, GLbyte * pc)
** client if it wants to work with older clients; however, in this
** implementation the server just returns its version number.
*/
- reply = (xGLXQueryVersionReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .majorVersion = glxMajorVersion,
- .minorVersion = glxMinorVersion
- };
+
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = 0;
+ reply.majorVersion = glxMajorVersion;
+ reply.minorVersion = glxMinorVersion;
+
if (client->swapped) {
__glXSwapQueryVersionReply(client, &reply);
@@ -939,14 +942,14 @@ __glXDisp_GetVisualConfigs(__GLXclientState * cl, GLbyte * pc)
if (!validGlxScreen(cl->client, req->screen, &pGlxScreen, &err))
return err;
- reply = (xGLXGetVisualConfigsReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = (pGlxScreen->numVisuals *
+
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = (pGlxScreen->numVisuals *
__GLX_SIZE_CARD32 * GLX_VIS_CONFIG_TOTAL) >> 2,
- .numVisuals = pGlxScreen->numVisuals,
- .numProps = GLX_VIS_CONFIG_TOTAL
- };
+ reply.numVisuals = pGlxScreen->numVisuals;
+ reply.numProps = GLX_VIS_CONFIG_TOTAL;
+
if (client->swapped) {
__GLX_SWAP_SHORT(&reply.sequenceNumber);
@@ -1054,13 +1057,13 @@ DoGetFBConfigs(__GLXclientState * cl, unsigned screen)
if (!validGlxScreen(cl->client, screen, &pGlxScreen, &err))
return err;
- reply = (xGLXGetFBConfigsReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = __GLX_FBCONFIG_ATTRIBS_LENGTH * pGlxScreen->numFBConfigs,
- .numFBConfigs = pGlxScreen->numFBConfigs,
- .numAttribs = __GLX_TOTAL_FBCONFIG_ATTRIBS
- };
+
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = __GLX_FBCONFIG_ATTRIBS_LENGTH * pGlxScreen->numFBConfigs;
+ reply.numFBConfigs = pGlxScreen->numFBConfigs;
+ reply.numAttribs = __GLX_TOTAL_FBCONFIG_ATTRIBS;
+
if (client->swapped) {
__GLX_SWAP_SHORT(&reply.sequenceNumber);
@@ -1697,7 +1700,7 @@ DoQueryContext(__GLXclientState * cl, GLXContextID gcId)
ClientPtr client = cl->client;
__GLXcontext *ctx;
xGLXQueryContextInfoEXTReply reply;
- int nProps = 3;
+ #define nProps 3
int sendBuf[nProps * 2];
int nReplyBytes;
int err;
@@ -1705,12 +1708,12 @@ DoQueryContext(__GLXclientState * cl, GLXContextID gcId)
if (!validGlxContext(cl->client, gcId, DixReadAccess, &ctx, &err))
return err;
- reply = (xGLXQueryContextInfoEXTReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = nProps << 1,
- .n = nProps
- };
+
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = nProps << 1;
+ reply.n = nProps;
+
nReplyBytes = reply.length << 2;
sendBuf[0] = GLX_SHARE_CONTEXT_EXT;
@@ -1932,12 +1935,12 @@ DoGetDrawableAttributes(__GLXclientState * cl, XID drawId)
numAttribs++;
}
- reply = (xGLXGetDrawableAttributesReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = numAttribs << 1,
- .numAttribs = numAttribs
- };
+
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = numAttribs << 1;
+ reply.numAttribs = numAttribs;
+
if (client->swapped) {
__glXSwapGetDrawableAttributesReply(client, &reply, attributes);
@@ -2362,12 +2365,12 @@ __glXDisp_QueryExtensionsString(__GLXclientState * cl, GLbyte * pc)
n = strlen(pGlxScreen->GLXextensions) + 1;
length = __GLX_PAD(n) >> 2;
- reply = (xGLXQueryExtensionsStringReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = length,
- .n = n
- };
+
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = length;
+ reply.n = n;
+
/* Allocate buffer to make sure it's a multiple of 4 bytes big. */
buf = calloc(length, 4);
@@ -2425,12 +2428,12 @@ __glXDisp_QueryServerString(__GLXclientState * cl, GLbyte * pc)
n = strlen(ptr) + 1;
length = __GLX_PAD(n) >> 2;
- reply = (xGLXQueryServerStringReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = length,
- .n = n
- };
+
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = length;
+ reply.n = n;
+
buf = calloc(length, 4);
if (buf == NULL) {
diff --git a/xorg-server/glx/glxcmdsswap.c b/xorg-server/glx/glxcmdsswap.c
index 5d179f317..fd1fd7006 100644
--- a/xorg-server/glx/glxcmdsswap.c
+++ b/xorg-server/glx/glxcmdsswap.c
@@ -31,6 +31,7 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
+#include "glheader.h"
#include <string.h>
#include "glxserver.h"
@@ -40,6 +41,7 @@
#include <pixmapstr.h>
#include <windowstr.h>
#include "glxext.h"
+#include "GL/gl.h"
#include "indirect_dispatch.h"
#include "indirect_table.h"
#include "indirect_util.h"
diff --git a/xorg-server/glx/glxdricommon.c b/xorg-server/glx/glxdricommon.c
index 1022c0075..426ea6acc 100644
--- a/xorg-server/glx/glxdricommon.c
+++ b/xorg-server/glx/glxdricommon.c
@@ -25,6 +25,10 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
+#else
+
+#include "glheader.h"
+
#endif
#include <stdint.h>
@@ -41,6 +45,10 @@
#include "glxscreens.h"
#include "glxdricommon.h"
+#ifdef _MSC_VER
+#define dlerror() "Getting loadlibrary error string not implemented"
+#endif
+
static int
getUST(int64_t * ust)
{
@@ -49,6 +57,10 @@ getUST(int64_t * ust)
if (ust == NULL)
return -EFAULT;
+#ifdef _MSC_VER
+ DebugBreak();
+ return -EFAULT;
+#else
if (gettimeofday(&tv, NULL) == 0) {
ust[0] = (tv.tv_sec * 1000000) + tv.tv_usec;
return 0;
@@ -56,6 +68,7 @@ getUST(int64_t * ust)
else {
return -errno;
}
+#endif
}
const __DRIsystemTimeExtension systemTimeExtension = {
@@ -267,10 +280,18 @@ glxProbeDriver(const char *driverName,
char *get_extensions_name;
const __DRIextension **extensions = NULL;
+#ifdef _MSC_VER
+#define DLLNAME "%s%s_dri.dll"
+ snprintf(filename, sizeof filename, DLLNAME,
+ dri_driver_path, driverName);
+
+ driver = LoadLibrary(filename);
+#else
snprintf(filename, sizeof filename, "%s/%s_dri.so",
dri_driver_path, driverName);
driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL);
+#endif
if (driver == NULL) {
LogMessage(X_ERROR, "AIGLX error: dlopen of %s failed (%s)\n",
filename, dlerror());
@@ -281,14 +302,22 @@ glxProbeDriver(const char *driverName,
__DRI_DRIVER_GET_EXTENSIONS, driverName) != -1) {
const __DRIextension **(*get_extensions)(void);
+#ifdef _MSC_VER
+ get_extensions = (const __DRIextension **(*)(void))GetProcAddress(driver, get_extensions_name);
+#else
get_extensions = dlsym(driver, get_extensions_name);
+#endif
if (get_extensions)
extensions = get_extensions();
free(get_extensions_name);
}
if (!extensions)
+#ifdef _MSC_VER
+ extensions = (const __DRIextension **)GetProcAddress(driver, __DRI_DRIVER_EXTENSIONS);
+#else
extensions = dlsym(driver, __DRI_DRIVER_EXTENSIONS);
+#endif
if (extensions == NULL) {
LogMessage(X_ERROR, "AIGLX error: %s exports no extensions (%s)\n",
driverName, dlerror());
@@ -317,7 +346,11 @@ glxProbeDriver(const char *driverName,
cleanup_failure:
if (driver)
+#ifdef _MSC_VER
+ FreeLibrary(driver);
+#else
dlclose(driver);
+#endif
*coreExt = *renderExt = NULL;
return NULL;
}
diff --git a/xorg-server/glx/glxdriswrast.c b/xorg-server/glx/glxdriswrast.c
index c9962dc81..0523710fb 100644
--- a/xorg-server/glx/glxdriswrast.c
+++ b/xorg-server/glx/glxdriswrast.c
@@ -27,6 +27,7 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
+#include "glheader.h"
#include <stdint.h>
#include <stdio.h>
@@ -50,13 +51,6 @@
#include "extension_string.h"
-/* RTLD_LOCAL is not defined on Cygwin */
-#ifdef __CYGWIN__
-#ifndef RTLD_LOCAL
-#define RTLD_LOCAL 0
-#endif
-#endif
-
typedef struct __GLXDRIscreen __GLXDRIscreen;
typedef struct __GLXDRIcontext __GLXDRIcontext;
typedef struct __GLXDRIdrawable __GLXDRIdrawable;
@@ -237,14 +231,18 @@ __glXDRIscreenDestroy(__GLXscreen * baseScreen)
(*screen->core->destroyScreen) (screen->driScreen);
+#ifdef _MSC_VER
+ FreeLibrary(screen->driver);
+#else
dlclose(screen->driver);
+#endif
__glXScreenDestroy(baseScreen);
if (screen->driConfigs) {
for (i = 0; screen->driConfigs[i] != NULL; i++)
free((__DRIconfig **) screen->driConfigs[i]);
- free(screen->driConfigs);
+ free((void*)screen->driConfigs);
}
free(screen);
@@ -333,6 +331,13 @@ __glXDRIscreenCreateDrawable(ClientPtr client,
private->driDrawable =
(*driScreen->swrast->createNewDrawable) (driScreen->driScreen,
config->driConfig, private);
+ if (!private->driDrawable)
+ {
+ FreeGC(private->gc, (GContext)0);
+ FreeGC(private->swapgc, (GContext)0);
+ free(private);
+ return NULL;
+ }
return &private->base;
}
@@ -425,11 +430,18 @@ initializeExtensions(__GLXDRIscreen * screen)
}
}
+extern Bool g_fswrastwgl;
+
static __GLXscreen *
__glXDRIscreenProbe(ScreenPtr pScreen)
{
- const char *driverName = "swrast";
+ const char *driverName;
__GLXDRIscreen *screen;
+
+ if (g_fswrastwgl)
+ driverName = "swrastwgl";
+ else
+ driverName = "swrast";
screen = calloc(1, sizeof *screen);
if (screen == NULL)
@@ -478,7 +490,11 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
handle_error:
if (screen->driver)
+#ifdef _MSC_VER
+ FreeLibrary(screen->driver);
+#else
dlclose(screen->driver);
+#endif
free(screen);
diff --git a/xorg-server/glx/glxext.c b/xorg-server/glx/glxext.c
index 3a7de28fb..ee0487e92 100644
--- a/xorg-server/glx/glxext.c
+++ b/xorg-server/glx/glxext.c
@@ -30,6 +30,10 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
+#else
+
+#include "glheader.h"
+
#endif
#include <string.h>
@@ -46,6 +50,7 @@
#include "glxext.h"
#include "indirect_table.h"
#include "indirect_util.h"
+#include "glapi.h"
/*
** The last context used by the server. It is the context that is current
@@ -333,7 +338,7 @@ GlxExtensionInit(void)
int i;
__GLXprovider *p, **stack;
Bool glx_provided = False;
-
+
if (serverGeneration == 1) {
for (stack = &__glXProviderStack; *stack; stack = &(*stack)->next)
;
@@ -446,7 +451,7 @@ __glXForceCurrent(__GLXclientState * cl, GLXContextTag tag, int *error)
if (cx->wait && (*cx->wait) (cx, cl, error))
return NULL;
- if (cx == __glXLastContext) {
+ if (cx == __glXLastContext && GET_DISPATCH()) {
/* No need to re-bind */
return cx;
}
diff --git a/xorg-server/glx/glxext.h b/xorg-server/glx/glxext.h
index 3f2dee696..7dc0ed476 100644
--- a/xorg-server/glx/glxext.h
+++ b/xorg-server/glx/glxext.h
@@ -35,6 +35,12 @@
* Silicon Graphics, Inc.
*/
+#ifdef INSERVER
+#define SERVEXTERN _declspec(dllimport)
+#else
+#define SERVEXTERN _declspec(dllexport)
+#endif
+
/* doing #include <GL/glx.h> & #include <GL/glxext.h> could cause problems
* with overlapping definitions, so let's use the easy way
*/
@@ -55,7 +61,7 @@ extern GLboolean __glXFreeContext(__GLXcontext * glxc);
extern void __glXFlushContextCache(void);
extern Bool __glXAddContext(__GLXcontext * cx);
-extern void __glXErrorCallBack(GLenum code);
+SERVEXTERN void __glXErrorCallBack(GLenum code);
extern void __glXClearErrorOccured(void);
extern GLboolean __glXErrorOccured(void);
extern void __glXResetLargeCommandStatus(__GLXclientState *);
diff --git a/xorg-server/glx/glxscreens.c b/xorg-server/glx/glxscreens.c
index 78769f401..4ab84ef09 100644
--- a/xorg-server/glx/glxscreens.c
+++ b/xorg-server/glx/glxscreens.c
@@ -30,6 +30,10 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
+#else
+
+#include "glheader.h"
+
#endif
#include <GL/glxtokens.h>
diff --git a/xorg-server/glx/indirect_dispatch.c b/xorg-server/glx/indirect_dispatch.c
index 1eee79a52..921c68c9c 100644
--- a/xorg-server/glx/indirect_dispatch.c
+++ b/xorg-server/glx/indirect_dispatch.c
@@ -1,4886 +1,5951 @@
-/* DO NOT EDIT - This file generated automatically by glX_proto_recv.py (from Mesa) script */
-
-/*
- * (C) Copyright IBM Corporation 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
- * 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 THEIR 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.
- */
-
-#include <inttypes.h>
-#include "glxserver.h"
-#include "indirect_size.h"
-#include "indirect_size_get.h"
-#include "indirect_dispatch.h"
-#include "glxbyteorder.h"
-#include "indirect_util.h"
-#include "singlesize.h"
-
-#define __GLX_PAD(x) (((x) + 3) & ~3)
-
-typedef struct {
- __GLX_PIXEL_3D_HDR;
-} __GLXpixel3DHeader;
-
-extern GLboolean __glXErrorOccured(void);
-extern void __glXClearErrorOccured(void);
-
-static const unsigned dummy_answer[2] = { 0, 0 };
-
-int
-__glXDisp_NewList(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- glNewList(*(GLuint *) (pc + 0), *(GLenum *) (pc + 4));
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_EndList(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- glEndList();
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDisp_CallList(GLbyte * pc)
-{
- glCallList(*(GLuint *) (pc + 0));
-}
-
-void
-__glXDisp_CallLists(GLbyte * pc)
-{
- const GLsizei n = *(GLsizei *) (pc + 0);
- const GLenum type = *(GLenum *) (pc + 4);
- const GLvoid *lists = (const GLvoid *) (pc + 8);
-
- lists = (const GLvoid *) (pc + 8);
-
- glCallLists(n, type, lists);
-}
-
-int
-__glXDisp_DeleteLists(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- glDeleteLists(*(GLuint *) (pc + 0), *(GLsizei *) (pc + 4));
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GenLists(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- GLuint retval;
-
- retval = glGenLists(*(GLsizei *) (pc + 0));
- __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDisp_ListBase(GLbyte * pc)
-{
- glListBase(*(GLuint *) (pc + 0));
-}
-
-void
-__glXDisp_Begin(GLbyte * pc)
-{
- glBegin(*(GLenum *) (pc + 0));
-}
-
-void
-__glXDisp_Bitmap(GLbyte * pc)
-{
- const GLubyte *const bitmap = (const GLubyte *) ((pc + 44));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength);
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels);
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment);
-
- glBitmap(*(GLsizei *) (pc + 20),
- *(GLsizei *) (pc + 24),
- *(GLfloat *) (pc + 28),
- *(GLfloat *) (pc + 32),
- *(GLfloat *) (pc + 36), *(GLfloat *) (pc + 40), bitmap);
-}
-
-void
-__glXDisp_Color3bv(GLbyte * pc)
-{
- glColor3bv((const GLbyte *) (pc + 0));
-}
-
-void
-__glXDisp_Color3dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 24);
- pc -= 4;
- }
-#endif
-
- glColor3dv((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_Color3fv(GLbyte * pc)
-{
- glColor3fv((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_Color3iv(GLbyte * pc)
-{
- glColor3iv((const GLint *) (pc + 0));
-}
-
-void
-__glXDisp_Color3sv(GLbyte * pc)
-{
- glColor3sv((const GLshort *) (pc + 0));
-}
-
-void
-__glXDisp_Color3ubv(GLbyte * pc)
-{
- glColor3ubv((const GLubyte *) (pc + 0));
-}
-
-void
-__glXDisp_Color3uiv(GLbyte * pc)
-{
- glColor3uiv((const GLuint *) (pc + 0));
-}
-
-void
-__glXDisp_Color3usv(GLbyte * pc)
-{
- glColor3usv((const GLushort *) (pc + 0));
-}
-
-void
-__glXDisp_Color4bv(GLbyte * pc)
-{
- glColor4bv((const GLbyte *) (pc + 0));
-}
-
-void
-__glXDisp_Color4dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 32);
- pc -= 4;
- }
-#endif
-
- glColor4dv((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_Color4fv(GLbyte * pc)
-{
- glColor4fv((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_Color4iv(GLbyte * pc)
-{
- glColor4iv((const GLint *) (pc + 0));
-}
-
-void
-__glXDisp_Color4sv(GLbyte * pc)
-{
- glColor4sv((const GLshort *) (pc + 0));
-}
-
-void
-__glXDisp_Color4ubv(GLbyte * pc)
-{
- glColor4ubv((const GLubyte *) (pc + 0));
-}
-
-void
-__glXDisp_Color4uiv(GLbyte * pc)
-{
- glColor4uiv((const GLuint *) (pc + 0));
-}
-
-void
-__glXDisp_Color4usv(GLbyte * pc)
-{
- glColor4usv((const GLushort *) (pc + 0));
-}
-
-void
-__glXDisp_EdgeFlagv(GLbyte * pc)
-{
- glEdgeFlagv((const GLboolean *) (pc + 0));
-}
-
-void
-__glXDisp_End(GLbyte * pc)
-{
- glEnd();
-}
-
-void
-__glXDisp_Indexdv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 8);
- pc -= 4;
- }
-#endif
-
- glIndexdv((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_Indexfv(GLbyte * pc)
-{
- glIndexfv((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_Indexiv(GLbyte * pc)
-{
- glIndexiv((const GLint *) (pc + 0));
-}
-
-void
-__glXDisp_Indexsv(GLbyte * pc)
-{
- glIndexsv((const GLshort *) (pc + 0));
-}
-
-void
-__glXDisp_Normal3bv(GLbyte * pc)
-{
- glNormal3bv((const GLbyte *) (pc + 0));
-}
-
-void
-__glXDisp_Normal3dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 24);
- pc -= 4;
- }
-#endif
-
- glNormal3dv((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_Normal3fv(GLbyte * pc)
-{
- glNormal3fv((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_Normal3iv(GLbyte * pc)
-{
- glNormal3iv((const GLint *) (pc + 0));
-}
-
-void
-__glXDisp_Normal3sv(GLbyte * pc)
-{
- glNormal3sv((const GLshort *) (pc + 0));
-}
-
-void
-__glXDisp_RasterPos2dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 16);
- pc -= 4;
- }
-#endif
-
- glRasterPos2dv((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_RasterPos2fv(GLbyte * pc)
-{
- glRasterPos2fv((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_RasterPos2iv(GLbyte * pc)
-{
- glRasterPos2iv((const GLint *) (pc + 0));
-}
-
-void
-__glXDisp_RasterPos2sv(GLbyte * pc)
-{
- glRasterPos2sv((const GLshort *) (pc + 0));
-}
-
-void
-__glXDisp_RasterPos3dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 24);
- pc -= 4;
- }
-#endif
-
- glRasterPos3dv((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_RasterPos3fv(GLbyte * pc)
-{
- glRasterPos3fv((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_RasterPos3iv(GLbyte * pc)
-{
- glRasterPos3iv((const GLint *) (pc + 0));
-}
-
-void
-__glXDisp_RasterPos3sv(GLbyte * pc)
-{
- glRasterPos3sv((const GLshort *) (pc + 0));
-}
-
-void
-__glXDisp_RasterPos4dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 32);
- pc -= 4;
- }
-#endif
-
- glRasterPos4dv((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_RasterPos4fv(GLbyte * pc)
-{
- glRasterPos4fv((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_RasterPos4iv(GLbyte * pc)
-{
- glRasterPos4iv((const GLint *) (pc + 0));
-}
-
-void
-__glXDisp_RasterPos4sv(GLbyte * pc)
-{
- glRasterPos4sv((const GLshort *) (pc + 0));
-}
-
-void
-__glXDisp_Rectdv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 32);
- pc -= 4;
- }
-#endif
-
- glRectdv((const GLdouble *) (pc + 0), (const GLdouble *) (pc + 16));
-}
-
-void
-__glXDisp_Rectfv(GLbyte * pc)
-{
- glRectfv((const GLfloat *) (pc + 0), (const GLfloat *) (pc + 8));
-}
-
-void
-__glXDisp_Rectiv(GLbyte * pc)
-{
- glRectiv((const GLint *) (pc + 0), (const GLint *) (pc + 8));
-}
-
-void
-__glXDisp_Rectsv(GLbyte * pc)
-{
- glRectsv((const GLshort *) (pc + 0), (const GLshort *) (pc + 4));
-}
-
-void
-__glXDisp_TexCoord1dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 8);
- pc -= 4;
- }
-#endif
-
- glTexCoord1dv((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_TexCoord1fv(GLbyte * pc)
-{
- glTexCoord1fv((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_TexCoord1iv(GLbyte * pc)
-{
- glTexCoord1iv((const GLint *) (pc + 0));
-}
-
-void
-__glXDisp_TexCoord1sv(GLbyte * pc)
-{
- glTexCoord1sv((const GLshort *) (pc + 0));
-}
-
-void
-__glXDisp_TexCoord2dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 16);
- pc -= 4;
- }
-#endif
-
- glTexCoord2dv((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_TexCoord2fv(GLbyte * pc)
-{
- glTexCoord2fv((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_TexCoord2iv(GLbyte * pc)
-{
- glTexCoord2iv((const GLint *) (pc + 0));
-}
-
-void
-__glXDisp_TexCoord2sv(GLbyte * pc)
-{
- glTexCoord2sv((const GLshort *) (pc + 0));
-}
-
-void
-__glXDisp_TexCoord3dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 24);
- pc -= 4;
- }
-#endif
-
- glTexCoord3dv((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_TexCoord3fv(GLbyte * pc)
-{
- glTexCoord3fv((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_TexCoord3iv(GLbyte * pc)
-{
- glTexCoord3iv((const GLint *) (pc + 0));
-}
-
-void
-__glXDisp_TexCoord3sv(GLbyte * pc)
-{
- glTexCoord3sv((const GLshort *) (pc + 0));
-}
-
-void
-__glXDisp_TexCoord4dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 32);
- pc -= 4;
- }
-#endif
-
- glTexCoord4dv((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_TexCoord4fv(GLbyte * pc)
-{
- glTexCoord4fv((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_TexCoord4iv(GLbyte * pc)
-{
- glTexCoord4iv((const GLint *) (pc + 0));
-}
-
-void
-__glXDisp_TexCoord4sv(GLbyte * pc)
-{
- glTexCoord4sv((const GLshort *) (pc + 0));
-}
-
-void
-__glXDisp_Vertex2dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 16);
- pc -= 4;
- }
-#endif
-
- glVertex2dv((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_Vertex2fv(GLbyte * pc)
-{
- glVertex2fv((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_Vertex2iv(GLbyte * pc)
-{
- glVertex2iv((const GLint *) (pc + 0));
-}
-
-void
-__glXDisp_Vertex2sv(GLbyte * pc)
-{
- glVertex2sv((const GLshort *) (pc + 0));
-}
-
-void
-__glXDisp_Vertex3dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 24);
- pc -= 4;
- }
-#endif
-
- glVertex3dv((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_Vertex3fv(GLbyte * pc)
-{
- glVertex3fv((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_Vertex3iv(GLbyte * pc)
-{
- glVertex3iv((const GLint *) (pc + 0));
-}
-
-void
-__glXDisp_Vertex3sv(GLbyte * pc)
-{
- glVertex3sv((const GLshort *) (pc + 0));
-}
-
-void
-__glXDisp_Vertex4dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 32);
- pc -= 4;
- }
-#endif
-
- glVertex4dv((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_Vertex4fv(GLbyte * pc)
-{
- glVertex4fv((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_Vertex4iv(GLbyte * pc)
-{
- glVertex4iv((const GLint *) (pc + 0));
-}
-
-void
-__glXDisp_Vertex4sv(GLbyte * pc)
-{
- glVertex4sv((const GLshort *) (pc + 0));
-}
-
-void
-__glXDisp_ClipPlane(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 36);
- pc -= 4;
- }
-#endif
-
- glClipPlane(*(GLenum *) (pc + 32), (const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_ColorMaterial(GLbyte * pc)
-{
- glColorMaterial(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4));
-}
-
-void
-__glXDisp_CullFace(GLbyte * pc)
-{
- glCullFace(*(GLenum *) (pc + 0));
-}
-
-void
-__glXDisp_Fogf(GLbyte * pc)
-{
- glFogf(*(GLenum *) (pc + 0), *(GLfloat *) (pc + 4));
-}
-
-void
-__glXDisp_Fogfv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 0);
- const GLfloat *params;
-
- params = (const GLfloat *) (pc + 4);
-
- glFogfv(pname, params);
-}
-
-void
-__glXDisp_Fogi(GLbyte * pc)
-{
- glFogi(*(GLenum *) (pc + 0), *(GLint *) (pc + 4));
-}
-
-void
-__glXDisp_Fogiv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 0);
- const GLint *params;
-
- params = (const GLint *) (pc + 4);
-
- glFogiv(pname, params);
-}
-
-void
-__glXDisp_FrontFace(GLbyte * pc)
-{
- glFrontFace(*(GLenum *) (pc + 0));
-}
-
-void
-__glXDisp_Hint(GLbyte * pc)
-{
- glHint(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4));
-}
-
-void
-__glXDisp_Lightf(GLbyte * pc)
-{
- glLightf(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4), *(GLfloat *) (pc + 8));
-}
-
-void
-__glXDisp_Lightfv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 4);
- const GLfloat *params;
-
- params = (const GLfloat *) (pc + 8);
-
- glLightfv(*(GLenum *) (pc + 0), pname, params);
-}
-
-void
-__glXDisp_Lighti(GLbyte * pc)
-{
- glLighti(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4), *(GLint *) (pc + 8));
-}
-
-void
-__glXDisp_Lightiv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 4);
- const GLint *params;
-
- params = (const GLint *) (pc + 8);
-
- glLightiv(*(GLenum *) (pc + 0), pname, params);
-}
-
-void
-__glXDisp_LightModelf(GLbyte * pc)
-{
- glLightModelf(*(GLenum *) (pc + 0), *(GLfloat *) (pc + 4));
-}
-
-void
-__glXDisp_LightModelfv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 0);
- const GLfloat *params;
-
- params = (const GLfloat *) (pc + 4);
-
- glLightModelfv(pname, params);
-}
-
-void
-__glXDisp_LightModeli(GLbyte * pc)
-{
- glLightModeli(*(GLenum *) (pc + 0), *(GLint *) (pc + 4));
-}
-
-void
-__glXDisp_LightModeliv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 0);
- const GLint *params;
-
- params = (const GLint *) (pc + 4);
-
- glLightModeliv(pname, params);
-}
-
-void
-__glXDisp_LineStipple(GLbyte * pc)
-{
- glLineStipple(*(GLint *) (pc + 0), *(GLushort *) (pc + 4));
-}
-
-void
-__glXDisp_LineWidth(GLbyte * pc)
-{
- glLineWidth(*(GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_Materialf(GLbyte * pc)
-{
- glMaterialf(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4), *(GLfloat *) (pc + 8));
-}
-
-void
-__glXDisp_Materialfv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 4);
- const GLfloat *params;
-
- params = (const GLfloat *) (pc + 8);
-
- glMaterialfv(*(GLenum *) (pc + 0), pname, params);
-}
-
-void
-__glXDisp_Materiali(GLbyte * pc)
-{
- glMateriali(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4), *(GLint *) (pc + 8));
-}
-
-void
-__glXDisp_Materialiv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 4);
- const GLint *params;
-
- params = (const GLint *) (pc + 8);
-
- glMaterialiv(*(GLenum *) (pc + 0), pname, params);
-}
-
-void
-__glXDisp_PointSize(GLbyte * pc)
-{
- glPointSize(*(GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_PolygonMode(GLbyte * pc)
-{
- glPolygonMode(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4));
-}
-
-void
-__glXDisp_PolygonStipple(GLbyte * pc)
-{
- const GLubyte *const mask = (const GLubyte *) ((pc + 20));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength);
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels);
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment);
-
- glPolygonStipple(mask);
-}
-
-void
-__glXDisp_Scissor(GLbyte * pc)
-{
- glScissor(*(GLint *) (pc + 0),
- *(GLint *) (pc + 4),
- *(GLsizei *) (pc + 8), *(GLsizei *) (pc + 12));
-}
-
-void
-__glXDisp_ShadeModel(GLbyte * pc)
-{
- glShadeModel(*(GLenum *) (pc + 0));
-}
-
-void
-__glXDisp_TexParameterf(GLbyte * pc)
-{
- glTexParameterf(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4), *(GLfloat *) (pc + 8));
-}
-
-void
-__glXDisp_TexParameterfv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 4);
- const GLfloat *params;
-
- params = (const GLfloat *) (pc + 8);
-
- glTexParameterfv(*(GLenum *) (pc + 0), pname, params);
-}
-
-void
-__glXDisp_TexParameteri(GLbyte * pc)
-{
- glTexParameteri(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4), *(GLint *) (pc + 8));
-}
-
-void
-__glXDisp_TexParameteriv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 4);
- const GLint *params;
-
- params = (const GLint *) (pc + 8);
-
- glTexParameteriv(*(GLenum *) (pc + 0), pname, params);
-}
-
-void
-__glXDisp_TexImage1D(GLbyte * pc)
-{
- const GLvoid *const pixels = (const GLvoid *) ((pc + 52));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength);
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels);
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment);
-
- glTexImage1D(*(GLenum *) (pc + 20),
- *(GLint *) (pc + 24),
- *(GLint *) (pc + 28),
- *(GLsizei *) (pc + 32),
- *(GLint *) (pc + 40),
- *(GLenum *) (pc + 44), *(GLenum *) (pc + 48), pixels);
-}
-
-void
-__glXDisp_TexImage2D(GLbyte * pc)
-{
- const GLvoid *const pixels = (const GLvoid *) ((pc + 52));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength);
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels);
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment);
-
- glTexImage2D(*(GLenum *) (pc + 20),
- *(GLint *) (pc + 24),
- *(GLint *) (pc + 28),
- *(GLsizei *) (pc + 32),
- *(GLsizei *) (pc + 36),
- *(GLint *) (pc + 40),
- *(GLenum *) (pc + 44), *(GLenum *) (pc + 48), pixels);
-}
-
-void
-__glXDisp_TexEnvf(GLbyte * pc)
-{
- glTexEnvf(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4), *(GLfloat *) (pc + 8));
-}
-
-void
-__glXDisp_TexEnvfv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 4);
- const GLfloat *params;
-
- params = (const GLfloat *) (pc + 8);
-
- glTexEnvfv(*(GLenum *) (pc + 0), pname, params);
-}
-
-void
-__glXDisp_TexEnvi(GLbyte * pc)
-{
- glTexEnvi(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4), *(GLint *) (pc + 8));
-}
-
-void
-__glXDisp_TexEnviv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 4);
- const GLint *params;
-
- params = (const GLint *) (pc + 8);
-
- glTexEnviv(*(GLenum *) (pc + 0), pname, params);
-}
-
-void
-__glXDisp_TexGend(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 16);
- pc -= 4;
- }
-#endif
-
- glTexGend(*(GLenum *) (pc + 8),
- *(GLenum *) (pc + 12), *(GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_TexGendv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 4);
- const GLdouble *params;
-
-#ifdef __GLX_ALIGN64
- const GLuint compsize = __glTexGendv_size(pname);
- const GLuint cmdlen = 12 + __GLX_PAD((compsize * 8)) - 4;
-
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, cmdlen);
- pc -= 4;
- }
-#endif
-
- params = (const GLdouble *) (pc + 8);
-
- glTexGendv(*(GLenum *) (pc + 0), pname, params);
-}
-
-void
-__glXDisp_TexGenf(GLbyte * pc)
-{
- glTexGenf(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4), *(GLfloat *) (pc + 8));
-}
-
-void
-__glXDisp_TexGenfv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 4);
- const GLfloat *params;
-
- params = (const GLfloat *) (pc + 8);
-
- glTexGenfv(*(GLenum *) (pc + 0), pname, params);
-}
-
-void
-__glXDisp_TexGeni(GLbyte * pc)
-{
- glTexGeni(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4), *(GLint *) (pc + 8));
-}
-
-void
-__glXDisp_TexGeniv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 4);
- const GLint *params;
-
- params = (const GLint *) (pc + 8);
-
- glTexGeniv(*(GLenum *) (pc + 0), pname, params);
-}
-
-void
-__glXDisp_InitNames(GLbyte * pc)
-{
- glInitNames();
-}
-
-void
-__glXDisp_LoadName(GLbyte * pc)
-{
- glLoadName(*(GLuint *) (pc + 0));
-}
-
-void
-__glXDisp_PassThrough(GLbyte * pc)
-{
- glPassThrough(*(GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_PopName(GLbyte * pc)
-{
- glPopName();
-}
-
-void
-__glXDisp_PushName(GLbyte * pc)
-{
- glPushName(*(GLuint *) (pc + 0));
-}
-
-void
-__glXDisp_DrawBuffer(GLbyte * pc)
-{
- glDrawBuffer(*(GLenum *) (pc + 0));
-}
-
-void
-__glXDisp_Clear(GLbyte * pc)
-{
- glClear(*(GLbitfield *) (pc + 0));
-}
-
-void
-__glXDisp_ClearAccum(GLbyte * pc)
-{
- glClearAccum(*(GLfloat *) (pc + 0),
- *(GLfloat *) (pc + 4),
- *(GLfloat *) (pc + 8), *(GLfloat *) (pc + 12));
-}
-
-void
-__glXDisp_ClearIndex(GLbyte * pc)
-{
- glClearIndex(*(GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_ClearColor(GLbyte * pc)
-{
- glClearColor(*(GLclampf *) (pc + 0),
- *(GLclampf *) (pc + 4),
- *(GLclampf *) (pc + 8), *(GLclampf *) (pc + 12));
-}
-
-void
-__glXDisp_ClearStencil(GLbyte * pc)
-{
- glClearStencil(*(GLint *) (pc + 0));
-}
-
-void
-__glXDisp_ClearDepth(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 8);
- pc -= 4;
- }
-#endif
-
- glClearDepth(*(GLclampd *) (pc + 0));
-}
-
-void
-__glXDisp_StencilMask(GLbyte * pc)
-{
- glStencilMask(*(GLuint *) (pc + 0));
-}
-
-void
-__glXDisp_ColorMask(GLbyte * pc)
-{
- glColorMask(*(GLboolean *) (pc + 0),
- *(GLboolean *) (pc + 1),
- *(GLboolean *) (pc + 2), *(GLboolean *) (pc + 3));
-}
-
-void
-__glXDisp_DepthMask(GLbyte * pc)
-{
- glDepthMask(*(GLboolean *) (pc + 0));
-}
-
-void
-__glXDisp_IndexMask(GLbyte * pc)
-{
- glIndexMask(*(GLuint *) (pc + 0));
-}
-
-void
-__glXDisp_Accum(GLbyte * pc)
-{
- glAccum(*(GLenum *) (pc + 0), *(GLfloat *) (pc + 4));
-}
-
-void
-__glXDisp_Disable(GLbyte * pc)
-{
- glDisable(*(GLenum *) (pc + 0));
-}
-
-void
-__glXDisp_Enable(GLbyte * pc)
-{
- glEnable(*(GLenum *) (pc + 0));
-}
-
-void
-__glXDisp_PopAttrib(GLbyte * pc)
-{
- glPopAttrib();
-}
-
-void
-__glXDisp_PushAttrib(GLbyte * pc)
-{
- glPushAttrib(*(GLbitfield *) (pc + 0));
-}
-
-void
-__glXDisp_MapGrid1d(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 20);
- pc -= 4;
- }
-#endif
-
- glMapGrid1d(*(GLint *) (pc + 16),
- *(GLdouble *) (pc + 0), *(GLdouble *) (pc + 8));
-}
-
-void
-__glXDisp_MapGrid1f(GLbyte * pc)
-{
- glMapGrid1f(*(GLint *) (pc + 0),
- *(GLfloat *) (pc + 4), *(GLfloat *) (pc + 8));
-}
-
-void
-__glXDisp_MapGrid2d(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 40);
- pc -= 4;
- }
-#endif
-
- glMapGrid2d(*(GLint *) (pc + 32),
- *(GLdouble *) (pc + 0),
- *(GLdouble *) (pc + 8),
- *(GLint *) (pc + 36),
- *(GLdouble *) (pc + 16), *(GLdouble *) (pc + 24));
-}
-
-void
-__glXDisp_MapGrid2f(GLbyte * pc)
-{
- glMapGrid2f(*(GLint *) (pc + 0),
- *(GLfloat *) (pc + 4),
- *(GLfloat *) (pc + 8),
- *(GLint *) (pc + 12),
- *(GLfloat *) (pc + 16), *(GLfloat *) (pc + 20));
-}
-
-void
-__glXDisp_EvalCoord1dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 8);
- pc -= 4;
- }
-#endif
-
- glEvalCoord1dv((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_EvalCoord1fv(GLbyte * pc)
-{
- glEvalCoord1fv((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_EvalCoord2dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 16);
- pc -= 4;
- }
-#endif
-
- glEvalCoord2dv((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_EvalCoord2fv(GLbyte * pc)
-{
- glEvalCoord2fv((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_EvalMesh1(GLbyte * pc)
-{
- glEvalMesh1(*(GLenum *) (pc + 0), *(GLint *) (pc + 4), *(GLint *) (pc + 8));
-}
-
-void
-__glXDisp_EvalPoint1(GLbyte * pc)
-{
- glEvalPoint1(*(GLint *) (pc + 0));
-}
-
-void
-__glXDisp_EvalMesh2(GLbyte * pc)
-{
- glEvalMesh2(*(GLenum *) (pc + 0),
- *(GLint *) (pc + 4),
- *(GLint *) (pc + 8),
- *(GLint *) (pc + 12), *(GLint *) (pc + 16));
-}
-
-void
-__glXDisp_EvalPoint2(GLbyte * pc)
-{
- glEvalPoint2(*(GLint *) (pc + 0), *(GLint *) (pc + 4));
-}
-
-void
-__glXDisp_AlphaFunc(GLbyte * pc)
-{
- glAlphaFunc(*(GLenum *) (pc + 0), *(GLclampf *) (pc + 4));
-}
-
-void
-__glXDisp_BlendFunc(GLbyte * pc)
-{
- glBlendFunc(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4));
-}
-
-void
-__glXDisp_LogicOp(GLbyte * pc)
-{
- glLogicOp(*(GLenum *) (pc + 0));
-}
-
-void
-__glXDisp_StencilFunc(GLbyte * pc)
-{
- glStencilFunc(*(GLenum *) (pc + 0),
- *(GLint *) (pc + 4), *(GLuint *) (pc + 8));
-}
-
-void
-__glXDisp_StencilOp(GLbyte * pc)
-{
- glStencilOp(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4), *(GLenum *) (pc + 8));
-}
-
-void
-__glXDisp_DepthFunc(GLbyte * pc)
-{
- glDepthFunc(*(GLenum *) (pc + 0));
-}
-
-void
-__glXDisp_PixelZoom(GLbyte * pc)
-{
- glPixelZoom(*(GLfloat *) (pc + 0), *(GLfloat *) (pc + 4));
-}
-
-void
-__glXDisp_PixelTransferf(GLbyte * pc)
-{
- glPixelTransferf(*(GLenum *) (pc + 0), *(GLfloat *) (pc + 4));
-}
-
-void
-__glXDisp_PixelTransferi(GLbyte * pc)
-{
- glPixelTransferi(*(GLenum *) (pc + 0), *(GLint *) (pc + 4));
-}
-
-int
-__glXDisp_PixelStoref(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- glPixelStoref(*(GLenum *) (pc + 0), *(GLfloat *) (pc + 4));
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_PixelStorei(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- glPixelStorei(*(GLenum *) (pc + 0), *(GLint *) (pc + 4));
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDisp_PixelMapfv(GLbyte * pc)
-{
- const GLsizei mapsize = *(GLsizei *) (pc + 4);
-
- glPixelMapfv(*(GLenum *) (pc + 0), mapsize, (const GLfloat *) (pc + 8));
-}
-
-void
-__glXDisp_PixelMapuiv(GLbyte * pc)
-{
- const GLsizei mapsize = *(GLsizei *) (pc + 4);
-
- glPixelMapuiv(*(GLenum *) (pc + 0), mapsize, (const GLuint *) (pc + 8));
-}
-
-void
-__glXDisp_PixelMapusv(GLbyte * pc)
-{
- const GLsizei mapsize = *(GLsizei *) (pc + 4);
-
- glPixelMapusv(*(GLenum *) (pc + 0), mapsize, (const GLushort *) (pc + 8));
-}
-
-void
-__glXDisp_ReadBuffer(GLbyte * pc)
-{
- glReadBuffer(*(GLenum *) (pc + 0));
-}
-
-void
-__glXDisp_CopyPixels(GLbyte * pc)
-{
- glCopyPixels(*(GLint *) (pc + 0),
- *(GLint *) (pc + 4),
- *(GLsizei *) (pc + 8),
- *(GLsizei *) (pc + 12), *(GLenum *) (pc + 16));
-}
-
-void
-__glXDisp_DrawPixels(GLbyte * pc)
-{
- const GLvoid *const pixels = (const GLvoid *) ((pc + 36));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength);
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels);
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment);
-
- glDrawPixels(*(GLsizei *) (pc + 20),
- *(GLsizei *) (pc + 24),
- *(GLenum *) (pc + 28), *(GLenum *) (pc + 32), pixels);
-}
-
-int
-__glXDisp_GetBooleanv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 0);
-
- const GLuint compsize = __glGetBooleanv_size(pname);
- GLboolean answerBuffer[200];
- GLboolean *params =
- __glXGetAnswerBuffer(cl, compsize, answerBuffer,
- sizeof(answerBuffer), 1);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetBooleanv(pname, params);
- __glXSendReply(cl->client, params, compsize, 1, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetClipPlane(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- GLdouble equation[4];
-
- glGetClipPlane(*(GLenum *) (pc + 0), equation);
- __glXSendReply(cl->client, equation, 4, 8, GL_TRUE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetDoublev(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 0);
-
- const GLuint compsize = __glGetDoublev_size(pname);
- GLdouble answerBuffer[200];
- GLdouble *params =
- __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer,
- sizeof(answerBuffer), 8);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetDoublev(pname, params);
- __glXSendReply(cl->client, params, compsize, 8, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetError(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- GLenum retval;
-
- retval = glGetError();
- __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetFloatv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 0);
-
- const GLuint compsize = __glGetFloatv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetFloatv(pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetIntegerv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 0);
-
- const GLuint compsize = __glGetIntegerv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetIntegerv(pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetLightfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetLightfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetLightfv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetLightiv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetLightiv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetLightiv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetMapdv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum target = *(GLenum *) (pc + 0);
- const GLenum query = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetMapdv_size(target, query);
- GLdouble answerBuffer[200];
- GLdouble *v =
- __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer,
- sizeof(answerBuffer), 8);
-
- if (v == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetMapdv(target, query, v);
- __glXSendReply(cl->client, v, compsize, 8, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetMapfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum target = *(GLenum *) (pc + 0);
- const GLenum query = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetMapfv_size(target, query);
- GLfloat answerBuffer[200];
- GLfloat *v =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (v == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetMapfv(target, query, v);
- __glXSendReply(cl->client, v, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetMapiv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum target = *(GLenum *) (pc + 0);
- const GLenum query = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetMapiv_size(target, query);
- GLint answerBuffer[200];
- GLint *v =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (v == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetMapiv(target, query, v);
- __glXSendReply(cl->client, v, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetMaterialfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetMaterialfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetMaterialfv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetMaterialiv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetMaterialiv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetMaterialiv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetPixelMapfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum map = *(GLenum *) (pc + 0);
-
- const GLuint compsize = __glGetPixelMapfv_size(map);
- GLfloat answerBuffer[200];
- GLfloat *values =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (values == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetPixelMapfv(map, values);
- __glXSendReply(cl->client, values, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetPixelMapuiv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum map = *(GLenum *) (pc + 0);
-
- const GLuint compsize = __glGetPixelMapuiv_size(map);
- GLuint answerBuffer[200];
- GLuint *values =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (values == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetPixelMapuiv(map, values);
- __glXSendReply(cl->client, values, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetPixelMapusv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum map = *(GLenum *) (pc + 0);
-
- const GLuint compsize = __glGetPixelMapusv_size(map);
- GLushort answerBuffer[200];
- GLushort *values =
- __glXGetAnswerBuffer(cl, compsize * 2, answerBuffer,
- sizeof(answerBuffer), 2);
-
- if (values == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetPixelMapusv(map, values);
- __glXSendReply(cl->client, values, compsize, 2, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetTexEnvfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetTexEnvfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetTexEnvfv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetTexEnviv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetTexEnviv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetTexEnviv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetTexGendv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetTexGendv_size(pname);
- GLdouble answerBuffer[200];
- GLdouble *params =
- __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer,
- sizeof(answerBuffer), 8);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetTexGendv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 8, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetTexGenfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetTexGenfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetTexGenfv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetTexGeniv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetTexGeniv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetTexGeniv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetTexParameterfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetTexParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetTexParameterfv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetTexParameteriv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetTexParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetTexParameteriv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetTexLevelParameterfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 8);
-
- const GLuint compsize = __glGetTexLevelParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetTexLevelParameterfv(*(GLenum *) (pc + 0),
- *(GLint *) (pc + 4), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetTexLevelParameteriv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 8);
-
- const GLuint compsize = __glGetTexLevelParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetTexLevelParameteriv(*(GLenum *) (pc + 0),
- *(GLint *) (pc + 4), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_IsEnabled(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- GLboolean retval;
-
- retval = glIsEnabled(*(GLenum *) (pc + 0));
- __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_IsList(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- GLboolean retval;
-
- retval = glIsList(*(GLuint *) (pc + 0));
- __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDisp_DepthRange(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 16);
- pc -= 4;
- }
-#endif
-
- glDepthRange(*(GLclampd *) (pc + 0), *(GLclampd *) (pc + 8));
-}
-
-void
-__glXDisp_Frustum(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 48);
- pc -= 4;
- }
-#endif
-
- glFrustum(*(GLdouble *) (pc + 0),
- *(GLdouble *) (pc + 8),
- *(GLdouble *) (pc + 16),
- *(GLdouble *) (pc + 24),
- *(GLdouble *) (pc + 32), *(GLdouble *) (pc + 40));
-}
-
-void
-__glXDisp_LoadIdentity(GLbyte * pc)
-{
- glLoadIdentity();
-}
-
-void
-__glXDisp_LoadMatrixf(GLbyte * pc)
-{
- glLoadMatrixf((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_LoadMatrixd(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 128);
- pc -= 4;
- }
-#endif
-
- glLoadMatrixd((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_MatrixMode(GLbyte * pc)
-{
- glMatrixMode(*(GLenum *) (pc + 0));
-}
-
-void
-__glXDisp_MultMatrixf(GLbyte * pc)
-{
- glMultMatrixf((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_MultMatrixd(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 128);
- pc -= 4;
- }
-#endif
-
- glMultMatrixd((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_Ortho(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 48);
- pc -= 4;
- }
-#endif
-
- glOrtho(*(GLdouble *) (pc + 0),
- *(GLdouble *) (pc + 8),
- *(GLdouble *) (pc + 16),
- *(GLdouble *) (pc + 24),
- *(GLdouble *) (pc + 32), *(GLdouble *) (pc + 40));
-}
-
-void
-__glXDisp_PopMatrix(GLbyte * pc)
-{
- glPopMatrix();
-}
-
-void
-__glXDisp_PushMatrix(GLbyte * pc)
-{
- glPushMatrix();
-}
-
-void
-__glXDisp_Rotated(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 32);
- pc -= 4;
- }
-#endif
-
- glRotated(*(GLdouble *) (pc + 0),
- *(GLdouble *) (pc + 8),
- *(GLdouble *) (pc + 16), *(GLdouble *) (pc + 24));
-}
-
-void
-__glXDisp_Rotatef(GLbyte * pc)
-{
- glRotatef(*(GLfloat *) (pc + 0),
- *(GLfloat *) (pc + 4),
- *(GLfloat *) (pc + 8), *(GLfloat *) (pc + 12));
-}
-
-void
-__glXDisp_Scaled(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 24);
- pc -= 4;
- }
-#endif
-
- glScaled(*(GLdouble *) (pc + 0),
- *(GLdouble *) (pc + 8), *(GLdouble *) (pc + 16));
-}
-
-void
-__glXDisp_Scalef(GLbyte * pc)
-{
- glScalef(*(GLfloat *) (pc + 0),
- *(GLfloat *) (pc + 4), *(GLfloat *) (pc + 8));
-}
-
-void
-__glXDisp_Translated(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 24);
- pc -= 4;
- }
-#endif
-
- glTranslated(*(GLdouble *) (pc + 0),
- *(GLdouble *) (pc + 8), *(GLdouble *) (pc + 16));
-}
-
-void
-__glXDisp_Translatef(GLbyte * pc)
-{
- glTranslatef(*(GLfloat *) (pc + 0),
- *(GLfloat *) (pc + 4), *(GLfloat *) (pc + 8));
-}
-
-void
-__glXDisp_Viewport(GLbyte * pc)
-{
- glViewport(*(GLint *) (pc + 0),
- *(GLint *) (pc + 4),
- *(GLsizei *) (pc + 8), *(GLsizei *) (pc + 12));
-}
-
-void
-__glXDisp_BindTexture(GLbyte * pc)
-{
- glBindTexture(*(GLenum *) (pc + 0), *(GLuint *) (pc + 4));
-}
-
-void
-__glXDisp_Indexubv(GLbyte * pc)
-{
- glIndexubv((const GLubyte *) (pc + 0));
-}
-
-void
-__glXDisp_PolygonOffset(GLbyte * pc)
-{
- glPolygonOffset(*(GLfloat *) (pc + 0), *(GLfloat *) (pc + 4));
-}
-
-int
-__glXDisp_AreTexturesResident(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = *(GLsizei *) (pc + 0);
-
- GLboolean retval;
- GLboolean answerBuffer[200];
- GLboolean *residences =
- __glXGetAnswerBuffer(cl, n, answerBuffer, sizeof(answerBuffer), 1);
- retval =
- glAreTexturesResident(n, (const GLuint *) (pc + 4), residences);
- __glXSendReply(cl->client, residences, n, 1, GL_TRUE, retval);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_AreTexturesResidentEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = *(GLsizei *) (pc + 0);
-
- GLboolean retval;
- GLboolean answerBuffer[200];
- GLboolean *residences =
- __glXGetAnswerBuffer(cl, n, answerBuffer, sizeof(answerBuffer), 1);
- retval =
- glAreTexturesResident(n, (const GLuint *) (pc + 4), residences);
- __glXSendReply(cl->client, residences, n, 1, GL_TRUE, retval);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDisp_CopyTexImage1D(GLbyte * pc)
-{
- glCopyTexImage1D(*(GLenum *) (pc + 0),
- *(GLint *) (pc + 4),
- *(GLenum *) (pc + 8),
- *(GLint *) (pc + 12),
- *(GLint *) (pc + 16),
- *(GLsizei *) (pc + 20), *(GLint *) (pc + 24));
-}
-
-void
-__glXDisp_CopyTexImage2D(GLbyte * pc)
-{
- glCopyTexImage2D(*(GLenum *) (pc + 0),
- *(GLint *) (pc + 4),
- *(GLenum *) (pc + 8),
- *(GLint *) (pc + 12),
- *(GLint *) (pc + 16),
- *(GLsizei *) (pc + 20),
- *(GLsizei *) (pc + 24), *(GLint *) (pc + 28));
-}
-
-void
-__glXDisp_CopyTexSubImage1D(GLbyte * pc)
-{
- glCopyTexSubImage1D(*(GLenum *) (pc + 0),
- *(GLint *) (pc + 4),
- *(GLint *) (pc + 8),
- *(GLint *) (pc + 12),
- *(GLint *) (pc + 16), *(GLsizei *) (pc + 20));
-}
-
-void
-__glXDisp_CopyTexSubImage2D(GLbyte * pc)
-{
- glCopyTexSubImage2D(*(GLenum *) (pc + 0),
- *(GLint *) (pc + 4),
- *(GLint *) (pc + 8),
- *(GLint *) (pc + 12),
- *(GLint *) (pc + 16),
- *(GLint *) (pc + 20),
- *(GLsizei *) (pc + 24), *(GLsizei *) (pc + 28));
-}
-
-int
-__glXDisp_DeleteTextures(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = *(GLsizei *) (pc + 0);
-
- glDeleteTextures(n, (const GLuint *) (pc + 4));
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_DeleteTexturesEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = *(GLsizei *) (pc + 0);
-
- glDeleteTextures(n, (const GLuint *) (pc + 4));
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GenTextures(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = *(GLsizei *) (pc + 0);
-
- GLuint answerBuffer[200];
- GLuint *textures =
- __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer),
- 4);
- glGenTextures(n, textures);
- __glXSendReply(cl->client, textures, n, 4, GL_TRUE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GenTexturesEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = *(GLsizei *) (pc + 0);
-
- GLuint answerBuffer[200];
- GLuint *textures =
- __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer),
- 4);
- glGenTextures(n, textures);
- __glXSendReply(cl->client, textures, n, 4, GL_TRUE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_IsTexture(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- GLboolean retval;
-
- retval = glIsTexture(*(GLuint *) (pc + 0));
- __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_IsTextureEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLboolean retval;
-
- retval = glIsTexture(*(GLuint *) (pc + 0));
- __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDisp_PrioritizeTextures(GLbyte * pc)
-{
- const GLsizei n = *(GLsizei *) (pc + 0);
-
- glPrioritizeTextures(n,
- (const GLuint *) (pc + 4),
- (const GLclampf *) (pc + 4));
-}
-
-void
-__glXDisp_TexSubImage1D(GLbyte * pc)
-{
- const GLvoid *const pixels = (const GLvoid *) ((pc + 56));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength);
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels);
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment);
-
- glTexSubImage1D(*(GLenum *) (pc + 20),
- *(GLint *) (pc + 24),
- *(GLint *) (pc + 28),
- *(GLsizei *) (pc + 36),
- *(GLenum *) (pc + 44), *(GLenum *) (pc + 48), pixels);
-}
-
-void
-__glXDisp_TexSubImage2D(GLbyte * pc)
-{
- const GLvoid *const pixels = (const GLvoid *) ((pc + 56));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength);
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels);
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment);
-
- glTexSubImage2D(*(GLenum *) (pc + 20),
- *(GLint *) (pc + 24),
- *(GLint *) (pc + 28),
- *(GLint *) (pc + 32),
- *(GLsizei *) (pc + 36),
- *(GLsizei *) (pc + 40),
- *(GLenum *) (pc + 44), *(GLenum *) (pc + 48), pixels);
-}
-
-void
-__glXDisp_BlendColor(GLbyte * pc)
-{
- glBlendColor(*(GLclampf *) (pc + 0),
- *(GLclampf *) (pc + 4),
- *(GLclampf *) (pc + 8), *(GLclampf *) (pc + 12));
-}
-
-void
-__glXDisp_BlendEquation(GLbyte * pc)
-{
- glBlendEquation(*(GLenum *) (pc + 0));
-}
-
-void
-__glXDisp_ColorTable(GLbyte * pc)
-{
- const GLvoid *const table = (const GLvoid *) ((pc + 40));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength);
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels);
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment);
-
- glColorTable(*(GLenum *) (pc + 20),
- *(GLenum *) (pc + 24),
- *(GLsizei *) (pc + 28),
- *(GLenum *) (pc + 32), *(GLenum *) (pc + 36), table);
-}
-
-void
-__glXDisp_ColorTableParameterfv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 4);
- const GLfloat *params;
-
- params = (const GLfloat *) (pc + 8);
-
- glColorTableParameterfv(*(GLenum *) (pc + 0), pname, params);
-}
-
-void
-__glXDisp_ColorTableParameteriv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 4);
- const GLint *params;
-
- params = (const GLint *) (pc + 8);
-
- glColorTableParameteriv(*(GLenum *) (pc + 0), pname, params);
-}
-
-void
-__glXDisp_CopyColorTable(GLbyte * pc)
-{
- glCopyColorTable(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4),
- *(GLint *) (pc + 8),
- *(GLint *) (pc + 12), *(GLsizei *) (pc + 16));
-}
-
-int
-__glXDisp_GetColorTableParameterfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetColorTableParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetColorTableParameterfv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetColorTableParameterfvSGI(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetColorTableParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetColorTableParameterfv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetColorTableParameteriv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetColorTableParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetColorTableParameteriv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetColorTableParameterivSGI(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetColorTableParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetColorTableParameteriv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDisp_ColorSubTable(GLbyte * pc)
-{
- const GLvoid *const data = (const GLvoid *) ((pc + 40));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength);
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels);
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment);
-
- glColorSubTable(*(GLenum *) (pc + 20),
- *(GLsizei *) (pc + 24),
- *(GLsizei *) (pc + 28),
- *(GLenum *) (pc + 32), *(GLenum *) (pc + 36), data);
-}
-
-void
-__glXDisp_CopyColorSubTable(GLbyte * pc)
-{
- glCopyColorSubTable(*(GLenum *) (pc + 0),
- *(GLsizei *) (pc + 4),
- *(GLint *) (pc + 8),
- *(GLint *) (pc + 12), *(GLsizei *) (pc + 16));
-}
-
-void
-__glXDisp_ConvolutionFilter1D(GLbyte * pc)
-{
- const GLvoid *const image = (const GLvoid *) ((pc + 44));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength);
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels);
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment);
-
- glConvolutionFilter1D(*(GLenum *) (pc + 20),
- *(GLenum *) (pc + 24),
- *(GLsizei *) (pc + 28),
- *(GLenum *) (pc + 36), *(GLenum *) (pc + 40), image);
-}
-
-void
-__glXDisp_ConvolutionFilter2D(GLbyte * pc)
-{
- const GLvoid *const image = (const GLvoid *) ((pc + 44));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength);
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels);
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment);
-
- glConvolutionFilter2D(*(GLenum *) (pc + 20),
- *(GLenum *) (pc + 24),
- *(GLsizei *) (pc + 28),
- *(GLsizei *) (pc + 32),
- *(GLenum *) (pc + 36), *(GLenum *) (pc + 40), image);
-}
-
-void
-__glXDisp_ConvolutionParameterf(GLbyte * pc)
-{
- glConvolutionParameterf(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4), *(GLfloat *) (pc + 8));
-}
-
-void
-__glXDisp_ConvolutionParameterfv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 4);
- const GLfloat *params;
-
- params = (const GLfloat *) (pc + 8);
-
- glConvolutionParameterfv(*(GLenum *) (pc + 0), pname, params);
-}
-
-void
-__glXDisp_ConvolutionParameteri(GLbyte * pc)
-{
- glConvolutionParameteri(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4), *(GLint *) (pc + 8));
-}
-
-void
-__glXDisp_ConvolutionParameteriv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 4);
- const GLint *params;
-
- params = (const GLint *) (pc + 8);
-
- glConvolutionParameteriv(*(GLenum *) (pc + 0), pname, params);
-}
-
-void
-__glXDisp_CopyConvolutionFilter1D(GLbyte * pc)
-{
- glCopyConvolutionFilter1D(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4),
- *(GLint *) (pc + 8),
- *(GLint *) (pc + 12), *(GLsizei *) (pc + 16));
-}
-
-void
-__glXDisp_CopyConvolutionFilter2D(GLbyte * pc)
-{
- glCopyConvolutionFilter2D(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4),
- *(GLint *) (pc + 8),
- *(GLint *) (pc + 12),
- *(GLsizei *) (pc + 16), *(GLsizei *) (pc + 20));
-}
-
-int
-__glXDisp_GetConvolutionParameterfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetConvolutionParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetConvolutionParameterfv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetConvolutionParameterfvEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetConvolutionParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetConvolutionParameterfv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetConvolutionParameteriv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetConvolutionParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetConvolutionParameteriv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetConvolutionParameterivEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetConvolutionParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetConvolutionParameteriv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetHistogramParameterfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetHistogramParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetHistogramParameterfv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetHistogramParameterfvEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetHistogramParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetHistogramParameterfv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetHistogramParameteriv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetHistogramParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetHistogramParameteriv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetHistogramParameterivEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetHistogramParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetHistogramParameteriv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetMinmaxParameterfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetMinmaxParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetMinmaxParameterfv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetMinmaxParameterfvEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetMinmaxParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetMinmaxParameterfv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetMinmaxParameteriv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetMinmaxParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetMinmaxParameteriv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetMinmaxParameterivEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetMinmaxParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetMinmaxParameteriv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDisp_Histogram(GLbyte * pc)
-{
- glHistogram(*(GLenum *) (pc + 0),
- *(GLsizei *) (pc + 4),
- *(GLenum *) (pc + 8), *(GLboolean *) (pc + 12));
-}
-
-void
-__glXDisp_Minmax(GLbyte * pc)
-{
- glMinmax(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4), *(GLboolean *) (pc + 8));
-}
-
-void
-__glXDisp_ResetHistogram(GLbyte * pc)
-{
- glResetHistogram(*(GLenum *) (pc + 0));
-}
-
-void
-__glXDisp_ResetMinmax(GLbyte * pc)
-{
- glResetMinmax(*(GLenum *) (pc + 0));
-}
-
-void
-__glXDisp_TexImage3D(GLbyte * pc)
-{
- const CARD32 ptr_is_null = *(CARD32 *) (pc + 76);
- const GLvoid *const pixels =
- (const GLvoid *) ((ptr_is_null != 0) ? NULL : (pc + 80));
- __GLXpixel3DHeader *const hdr = (__GLXpixel3DHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength);
- glPixelStorei(GL_UNPACK_IMAGE_HEIGHT, (GLint) hdr->imageHeight);
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows);
- glPixelStorei(GL_UNPACK_SKIP_IMAGES, (GLint) hdr->skipImages);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels);
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment);
-
- glTexImage3D(*(GLenum *) (pc + 36),
- *(GLint *) (pc + 40),
- *(GLint *) (pc + 44),
- *(GLsizei *) (pc + 48),
- *(GLsizei *) (pc + 52),
- *(GLsizei *) (pc + 56),
- *(GLint *) (pc + 64),
- *(GLenum *) (pc + 68), *(GLenum *) (pc + 72), pixels);
-}
-
-void
-__glXDisp_TexSubImage3D(GLbyte * pc)
-{
- const GLvoid *const pixels = (const GLvoid *) ((pc + 88));
- __GLXpixel3DHeader *const hdr = (__GLXpixel3DHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength);
- glPixelStorei(GL_UNPACK_IMAGE_HEIGHT, (GLint) hdr->imageHeight);
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows);
- glPixelStorei(GL_UNPACK_SKIP_IMAGES, (GLint) hdr->skipImages);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels);
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment);
-
- glTexSubImage3D(*(GLenum *) (pc + 36),
- *(GLint *) (pc + 40),
- *(GLint *) (pc + 44),
- *(GLint *) (pc + 48),
- *(GLint *) (pc + 52),
- *(GLsizei *) (pc + 60),
- *(GLsizei *) (pc + 64),
- *(GLsizei *) (pc + 68),
- *(GLenum *) (pc + 76), *(GLenum *) (pc + 80), pixels);
-}
-
-void
-__glXDisp_CopyTexSubImage3D(GLbyte * pc)
-{
- glCopyTexSubImage3D(*(GLenum *) (pc + 0),
- *(GLint *) (pc + 4),
- *(GLint *) (pc + 8),
- *(GLint *) (pc + 12),
- *(GLint *) (pc + 16),
- *(GLint *) (pc + 20),
- *(GLint *) (pc + 24),
- *(GLsizei *) (pc + 28), *(GLsizei *) (pc + 32));
-}
-
-void
-__glXDisp_ActiveTexture(GLbyte * pc)
-{
- glActiveTexture(*(GLenum *) (pc + 0));
-}
-
-void
-__glXDisp_MultiTexCoord1dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 12);
- pc -= 4;
- }
-#endif
-
- glMultiTexCoord1dv(*(GLenum *) (pc + 8), (const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_MultiTexCoord1fvARB(GLbyte * pc)
-{
- glMultiTexCoord1fvARB(*(GLenum *) (pc + 0), (const GLfloat *) (pc + 4));
-}
-
-void
-__glXDisp_MultiTexCoord1iv(GLbyte * pc)
-{
- glMultiTexCoord1iv(*(GLenum *) (pc + 0), (const GLint *) (pc + 4));
-}
-
-void
-__glXDisp_MultiTexCoord1sv(GLbyte * pc)
-{
- glMultiTexCoord1sv(*(GLenum *) (pc + 0), (const GLshort *) (pc + 4));
-}
-
-void
-__glXDisp_MultiTexCoord2dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 20);
- pc -= 4;
- }
-#endif
-
- glMultiTexCoord2dv(*(GLenum *) (pc + 16), (const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_MultiTexCoord2fvARB(GLbyte * pc)
-{
- glMultiTexCoord2fvARB(*(GLenum *) (pc + 0), (const GLfloat *) (pc + 4));
-}
-
-void
-__glXDisp_MultiTexCoord2iv(GLbyte * pc)
-{
- glMultiTexCoord2iv(*(GLenum *) (pc + 0), (const GLint *) (pc + 4));
-}
-
-void
-__glXDisp_MultiTexCoord2sv(GLbyte * pc)
-{
- glMultiTexCoord2sv(*(GLenum *) (pc + 0), (const GLshort *) (pc + 4));
-}
-
-void
-__glXDisp_MultiTexCoord3dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 28);
- pc -= 4;
- }
-#endif
-
- glMultiTexCoord3dv(*(GLenum *) (pc + 24), (const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_MultiTexCoord3fvARB(GLbyte * pc)
-{
- glMultiTexCoord3fvARB(*(GLenum *) (pc + 0), (const GLfloat *) (pc + 4));
-}
-
-void
-__glXDisp_MultiTexCoord3iv(GLbyte * pc)
-{
- glMultiTexCoord3iv(*(GLenum *) (pc + 0), (const GLint *) (pc + 4));
-}
-
-void
-__glXDisp_MultiTexCoord3sv(GLbyte * pc)
-{
- glMultiTexCoord3sv(*(GLenum *) (pc + 0), (const GLshort *) (pc + 4));
-}
-
-void
-__glXDisp_MultiTexCoord4dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 36);
- pc -= 4;
- }
-#endif
-
- glMultiTexCoord4dv(*(GLenum *) (pc + 32), (const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_MultiTexCoord4fvARB(GLbyte * pc)
-{
- glMultiTexCoord4fvARB(*(GLenum *) (pc + 0), (const GLfloat *) (pc + 4));
-}
-
-void
-__glXDisp_MultiTexCoord4iv(GLbyte * pc)
-{
- glMultiTexCoord4iv(*(GLenum *) (pc + 0), (const GLint *) (pc + 4));
-}
-
-void
-__glXDisp_MultiTexCoord4sv(GLbyte * pc)
-{
- glMultiTexCoord4sv(*(GLenum *) (pc + 0), (const GLshort *) (pc + 4));
-}
-
-void
-__glXDisp_CompressedTexImage1D(GLbyte * pc)
-{
- const GLsizei imageSize = *(GLsizei *) (pc + 20);
-
- glCompressedTexImage1D(*(GLenum *) (pc + 0),
- *(GLint *) (pc + 4),
- *(GLenum *) (pc + 8),
- *(GLsizei *) (pc + 12),
- *(GLint *) (pc + 16),
- imageSize, (const GLvoid *) (pc + 24));
-}
-
-void
-__glXDisp_CompressedTexImage2D(GLbyte * pc)
-{
- const GLsizei imageSize = *(GLsizei *) (pc + 24);
-
- glCompressedTexImage2D(*(GLenum *) (pc + 0),
- *(GLint *) (pc + 4),
- *(GLenum *) (pc + 8),
- *(GLsizei *) (pc + 12),
- *(GLsizei *) (pc + 16),
- *(GLint *) (pc + 20),
- imageSize, (const GLvoid *) (pc + 28));
-}
-
-void
-__glXDisp_CompressedTexImage3D(GLbyte * pc)
-{
- const GLsizei imageSize = *(GLsizei *) (pc + 28);
-
- glCompressedTexImage3D(*(GLenum *) (pc + 0),
- *(GLint *) (pc + 4),
- *(GLenum *) (pc + 8),
- *(GLsizei *) (pc + 12),
- *(GLsizei *) (pc + 16),
- *(GLsizei *) (pc + 20),
- *(GLint *) (pc + 24),
- imageSize, (const GLvoid *) (pc + 32));
-}
-
-void
-__glXDisp_CompressedTexSubImage1D(GLbyte * pc)
-{
- const GLsizei imageSize = *(GLsizei *) (pc + 20);
-
- glCompressedTexSubImage1D(*(GLenum *) (pc + 0),
- *(GLint *) (pc + 4),
- *(GLint *) (pc + 8),
- *(GLsizei *) (pc + 12),
- *(GLenum *) (pc + 16),
- imageSize, (const GLvoid *) (pc + 24));
-}
-
-void
-__glXDisp_CompressedTexSubImage2D(GLbyte * pc)
-{
- const GLsizei imageSize = *(GLsizei *) (pc + 28);
-
- glCompressedTexSubImage2D(*(GLenum *) (pc + 0),
- *(GLint *) (pc + 4),
- *(GLint *) (pc + 8),
- *(GLint *) (pc + 12),
- *(GLsizei *) (pc + 16),
- *(GLsizei *) (pc + 20),
- *(GLenum *) (pc + 24),
- imageSize, (const GLvoid *) (pc + 32));
-}
-
-void
-__glXDisp_CompressedTexSubImage3D(GLbyte * pc)
-{
- const GLsizei imageSize = *(GLsizei *) (pc + 36);
-
- glCompressedTexSubImage3D(*(GLenum *) (pc + 0),
- *(GLint *) (pc + 4),
- *(GLint *) (pc + 8),
- *(GLint *) (pc + 12),
- *(GLint *) (pc + 16),
- *(GLsizei *) (pc + 20),
- *(GLsizei *) (pc + 24),
- *(GLsizei *) (pc + 28),
- *(GLenum *) (pc + 32),
- imageSize, (const GLvoid *) (pc + 40));
-}
-
-void
-__glXDisp_SampleCoverage(GLbyte * pc)
-{
- glSampleCoverage(*(GLclampf *) (pc + 0), *(GLboolean *) (pc + 4));
-}
-
-void
-__glXDisp_BlendFuncSeparate(GLbyte * pc)
-{
- glBlendFuncSeparate(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4),
- *(GLenum *) (pc + 8), *(GLenum *) (pc + 12));
-}
-
-void
-__glXDisp_FogCoorddv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 8);
- pc -= 4;
- }
-#endif
-
- glFogCoorddv((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_PointParameterf(GLbyte * pc)
-{
- glPointParameterf(*(GLenum *) (pc + 0), *(GLfloat *) (pc + 4));
-}
-
-void
-__glXDisp_PointParameterfv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 0);
- const GLfloat *params;
-
- params = (const GLfloat *) (pc + 4);
-
- glPointParameterfv(pname, params);
-}
-
-void
-__glXDisp_PointParameteri(GLbyte * pc)
-{
- glPointParameteri(*(GLenum *) (pc + 0), *(GLint *) (pc + 4));
-}
-
-void
-__glXDisp_PointParameteriv(GLbyte * pc)
-{
- const GLenum pname = *(GLenum *) (pc + 0);
- const GLint *params;
-
- params = (const GLint *) (pc + 4);
-
- glPointParameteriv(pname, params);
-}
-
-void
-__glXDisp_SecondaryColor3bv(GLbyte * pc)
-{
- glSecondaryColor3bv((const GLbyte *) (pc + 0));
-}
-
-void
-__glXDisp_SecondaryColor3dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 24);
- pc -= 4;
- }
-#endif
-
- glSecondaryColor3dv((const GLdouble *) (pc + 0));
-}
-
-void
-__glXDisp_SecondaryColor3iv(GLbyte * pc)
-{
- glSecondaryColor3iv((const GLint *) (pc + 0));
-}
-
-void
-__glXDisp_SecondaryColor3sv(GLbyte * pc)
-{
- glSecondaryColor3sv((const GLshort *) (pc + 0));
-}
-
-void
-__glXDisp_SecondaryColor3ubv(GLbyte * pc)
-{
- glSecondaryColor3ubv((const GLubyte *) (pc + 0));
-}
-
-void
-__glXDisp_SecondaryColor3uiv(GLbyte * pc)
-{
- glSecondaryColor3uiv((const GLuint *) (pc + 0));
-}
-
-void
-__glXDisp_SecondaryColor3usv(GLbyte * pc)
-{
- glSecondaryColor3usv((const GLushort *) (pc + 0));
-}
-
-void
-__glXDisp_WindowPos3fv(GLbyte * pc)
-{
- glWindowPos3fv((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_BeginQuery(GLbyte * pc)
-{
- glBeginQuery(*(GLenum *) (pc + 0), *(GLuint *) (pc + 4));
-}
-
-int
-__glXDisp_DeleteQueries(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = *(GLsizei *) (pc + 0);
-
- glDeleteQueries(n, (const GLuint *) (pc + 4));
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDisp_EndQuery(GLbyte * pc)
-{
- glEndQuery(*(GLenum *) (pc + 0));
-}
-
-int
-__glXDisp_GenQueries(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = *(GLsizei *) (pc + 0);
-
- GLuint answerBuffer[200];
- GLuint *ids =
- __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer),
- 4);
- glGenQueries(n, ids);
- __glXSendReply(cl->client, ids, n, 4, GL_TRUE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetQueryObjectiv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetQueryObjectiv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetQueryObjectiv(*(GLuint *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetQueryObjectuiv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetQueryObjectuiv_size(pname);
- GLuint answerBuffer[200];
- GLuint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetQueryObjectuiv(*(GLuint *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetQueryiv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetQueryiv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetQueryiv(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_IsQuery(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- GLboolean retval;
-
- retval = glIsQuery(*(GLuint *) (pc + 0));
- __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDisp_BlendEquationSeparate(GLbyte * pc)
-{
- glBlendEquationSeparate(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4));
-}
-
-void
-__glXDisp_DrawBuffers(GLbyte * pc)
-{
- const GLsizei n = *(GLsizei *) (pc + 0);
-
- glDrawBuffers(n, (const GLenum *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib1dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 12);
- pc -= 4;
- }
-#endif
-
- glVertexAttrib1dv(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib1sv(GLbyte * pc)
-{
- glVertexAttrib1sv(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib2dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 20);
- pc -= 4;
- }
-#endif
-
- glVertexAttrib2dv(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib2sv(GLbyte * pc)
-{
- glVertexAttrib2sv(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib3dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 28);
- pc -= 4;
- }
-#endif
-
- glVertexAttrib3dv(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib3sv(GLbyte * pc)
-{
- glVertexAttrib3sv(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib4Nbv(GLbyte * pc)
-{
- glVertexAttrib4Nbv(*(GLuint *) (pc + 0), (const GLbyte *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib4Niv(GLbyte * pc)
-{
- glVertexAttrib4Niv(*(GLuint *) (pc + 0), (const GLint *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib4Nsv(GLbyte * pc)
-{
- glVertexAttrib4Nsv(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib4Nubv(GLbyte * pc)
-{
- glVertexAttrib4Nubv(*(GLuint *) (pc + 0), (const GLubyte *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib4Nuiv(GLbyte * pc)
-{
- glVertexAttrib4Nuiv(*(GLuint *) (pc + 0), (const GLuint *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib4Nusv(GLbyte * pc)
-{
- glVertexAttrib4Nusv(*(GLuint *) (pc + 0), (const GLushort *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib4bv(GLbyte * pc)
-{
- glVertexAttrib4bv(*(GLuint *) (pc + 0), (const GLbyte *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib4dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 36);
- pc -= 4;
- }
-#endif
-
- glVertexAttrib4dv(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib4iv(GLbyte * pc)
-{
- glVertexAttrib4iv(*(GLuint *) (pc + 0), (const GLint *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib4sv(GLbyte * pc)
-{
- glVertexAttrib4sv(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib4ubv(GLbyte * pc)
-{
- glVertexAttrib4ubv(*(GLuint *) (pc + 0), (const GLubyte *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib4uiv(GLbyte * pc)
-{
- glVertexAttrib4uiv(*(GLuint *) (pc + 0), (const GLuint *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib4usv(GLbyte * pc)
-{
- glVertexAttrib4usv(*(GLuint *) (pc + 0), (const GLushort *) (pc + 4));
-}
-
-void
-__glXDisp_ClampColor(GLbyte * pc)
-{
- glClampColor(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4));
-}
-
-void
-__glXDisp_BindProgramARB(GLbyte * pc)
-{
- glBindProgramARB(*(GLenum *) (pc + 0), *(GLuint *) (pc + 4));
-}
-
-int
-__glXDisp_DeleteProgramsARB(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = *(GLsizei *) (pc + 0);
-
- glDeleteProgramsARB(n, (const GLuint *) (pc + 4));
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GenProgramsARB(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = *(GLsizei *) (pc + 0);
-
- GLuint answerBuffer[200];
- GLuint *programs =
- __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer),
- 4);
- glGenProgramsARB(n, programs);
- __glXSendReply(cl->client, programs, n, 4, GL_TRUE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetProgramEnvParameterdvARB(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLdouble params[4];
-
- glGetProgramEnvParameterdvARB(*(GLenum *) (pc + 0),
- *(GLuint *) (pc + 4), params);
- __glXSendReply(cl->client, params, 4, 8, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetProgramEnvParameterfvARB(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLfloat params[4];
-
- glGetProgramEnvParameterfvARB(*(GLenum *) (pc + 0),
- *(GLuint *) (pc + 4), params);
- __glXSendReply(cl->client, params, 4, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetProgramLocalParameterdvARB(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLdouble params[4];
-
- glGetProgramLocalParameterdvARB(*(GLenum *) (pc + 0),
- *(GLuint *) (pc + 4), params);
- __glXSendReply(cl->client, params, 4, 8, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetProgramLocalParameterfvARB(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLfloat params[4];
-
- glGetProgramLocalParameterfvARB(*(GLenum *) (pc + 0),
- *(GLuint *) (pc + 4), params);
- __glXSendReply(cl->client, params, 4, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetProgramivARB(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = *(GLenum *) (pc + 4);
-
- const GLuint compsize = __glGetProgramivARB_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetProgramivARB(*(GLenum *) (pc + 0), pname, params);
- __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_IsProgramARB(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLboolean retval;
-
- retval = glIsProgramARB(*(GLuint *) (pc + 0));
- __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDisp_ProgramEnvParameter4dvARB(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 40);
- pc -= 4;
- }
-#endif
-
- glProgramEnvParameter4dvARB(*(GLenum *) (pc + 0),
- *(GLuint *) (pc + 4),
- (const GLdouble *) (pc + 8));
-}
-
-void
-__glXDisp_ProgramEnvParameter4fvARB(GLbyte * pc)
-{
- glProgramEnvParameter4fvARB(*(GLenum *) (pc + 0),
- *(GLuint *) (pc + 4),
- (const GLfloat *) (pc + 8));
-}
-
-void
-__glXDisp_ProgramLocalParameter4dvARB(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 40);
- pc -= 4;
- }
-#endif
-
- glProgramLocalParameter4dvARB(*(GLenum *) (pc + 0),
- *(GLuint *) (pc + 4),
- (const GLdouble *) (pc + 8));
-}
-
-void
-__glXDisp_ProgramLocalParameter4fvARB(GLbyte * pc)
-{
- glProgramLocalParameter4fvARB(*(GLenum *) (pc + 0),
- *(GLuint *) (pc + 4),
- (const GLfloat *) (pc + 8));
-}
-
-void
-__glXDisp_ProgramStringARB(GLbyte * pc)
-{
- const GLsizei len = *(GLsizei *) (pc + 8);
-
- glProgramStringARB(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4), len, (const GLvoid *) (pc + 12));
-}
-
-void
-__glXDisp_VertexAttrib1fvARB(GLbyte * pc)
-{
- glVertexAttrib1fvARB(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib2fvARB(GLbyte * pc)
-{
- glVertexAttrib2fvARB(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib3fvARB(GLbyte * pc)
-{
- glVertexAttrib3fvARB(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib4fvARB(GLbyte * pc)
-{
- glVertexAttrib4fvARB(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4));
-}
-
-void
-__glXDisp_BindFramebuffer(GLbyte * pc)
-{
- glBindFramebuffer(*(GLenum *) (pc + 0), *(GLuint *) (pc + 4));
-}
-
-void
-__glXDisp_BindRenderbuffer(GLbyte * pc)
-{
- glBindRenderbuffer(*(GLenum *) (pc + 0), *(GLuint *) (pc + 4));
-}
-
-void
-__glXDisp_BlitFramebuffer(GLbyte * pc)
-{
- glBlitFramebuffer(*(GLint *) (pc + 0),
- *(GLint *) (pc + 4),
- *(GLint *) (pc + 8),
- *(GLint *) (pc + 12),
- *(GLint *) (pc + 16),
- *(GLint *) (pc + 20),
- *(GLint *) (pc + 24),
- *(GLint *) (pc + 28),
- *(GLbitfield *) (pc + 32), *(GLenum *) (pc + 36));
-}
-
-int
-__glXDisp_CheckFramebufferStatus(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLenum retval;
-
- retval = glCheckFramebufferStatus(*(GLenum *) (pc + 0));
- __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDisp_DeleteFramebuffers(GLbyte * pc)
-{
- const GLsizei n = *(GLsizei *) (pc + 0);
-
- glDeleteFramebuffers(n, (const GLuint *) (pc + 4));
-}
-
-void
-__glXDisp_DeleteRenderbuffers(GLbyte * pc)
-{
- const GLsizei n = *(GLsizei *) (pc + 0);
-
- glDeleteRenderbuffers(n, (const GLuint *) (pc + 4));
-}
-
-void
-__glXDisp_FramebufferRenderbuffer(GLbyte * pc)
-{
- glFramebufferRenderbuffer(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4),
- *(GLenum *) (pc + 8), *(GLuint *) (pc + 12));
-}
-
-void
-__glXDisp_FramebufferTexture1D(GLbyte * pc)
-{
- glFramebufferTexture1D(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4),
- *(GLenum *) (pc + 8),
- *(GLuint *) (pc + 12), *(GLint *) (pc + 16));
-}
-
-void
-__glXDisp_FramebufferTexture2D(GLbyte * pc)
-{
- glFramebufferTexture2D(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4),
- *(GLenum *) (pc + 8),
- *(GLuint *) (pc + 12), *(GLint *) (pc + 16));
-}
-
-void
-__glXDisp_FramebufferTexture3D(GLbyte * pc)
-{
- glFramebufferTexture3D(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4),
- *(GLenum *) (pc + 8),
- *(GLuint *) (pc + 12),
- *(GLint *) (pc + 16), *(GLint *) (pc + 20));
-}
-
-void
-__glXDisp_FramebufferTextureLayer(GLbyte * pc)
-{
- glFramebufferTextureLayer(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4),
- *(GLuint *) (pc + 8),
- *(GLint *) (pc + 12), *(GLint *) (pc + 16));
-}
-
-int
-__glXDisp_GenFramebuffers(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = *(GLsizei *) (pc + 0);
-
- GLuint answerBuffer[200];
- GLuint *framebuffers =
- __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer),
- 4);
- glGenFramebuffers(n, framebuffers);
- __glXSendReply(cl->client, framebuffers, n, 4, GL_TRUE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GenRenderbuffers(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = *(GLsizei *) (pc + 0);
-
- GLuint answerBuffer[200];
- GLuint *renderbuffers =
- __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer),
- 4);
- glGenRenderbuffers(n, renderbuffers);
- __glXSendReply(cl->client, renderbuffers, n, 4, GL_TRUE, 0);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDisp_GenerateMipmap(GLbyte * pc)
-{
- glGenerateMipmap(*(GLenum *) (pc + 0));
-}
-
-int
-__glXDisp_GetFramebufferAttachmentParameteriv(__GLXclientState * cl,
- GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLint params[1];
-
- glGetFramebufferAttachmentParameteriv(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4),
- *(GLenum *) (pc + 8), params);
- __glXSendReply(cl->client, params, 1, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_GetRenderbufferParameteriv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLint params[1];
-
- glGetRenderbufferParameteriv(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4), params);
- __glXSendReply(cl->client, params, 1, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_IsFramebuffer(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLboolean retval;
-
- retval = glIsFramebuffer(*(GLuint *) (pc + 0));
- __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDisp_IsRenderbuffer(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLboolean retval;
-
- retval = glIsRenderbuffer(*(GLuint *) (pc + 0));
- __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDisp_RenderbufferStorage(GLbyte * pc)
-{
- glRenderbufferStorage(*(GLenum *) (pc + 0),
- *(GLenum *) (pc + 4),
- *(GLsizei *) (pc + 8), *(GLsizei *) (pc + 12));
-}
-
-void
-__glXDisp_RenderbufferStorageMultisample(GLbyte * pc)
-{
- glRenderbufferStorageMultisample(*(GLenum *) (pc + 0),
- *(GLsizei *) (pc + 4),
- *(GLenum *) (pc + 8),
- *(GLsizei *) (pc + 12),
- *(GLsizei *) (pc + 16));
-}
-
-void
-__glXDisp_SecondaryColor3fvEXT(GLbyte * pc)
-{
- glSecondaryColor3fvEXT((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_FogCoordfvEXT(GLbyte * pc)
-{
- glFogCoordfvEXT((const GLfloat *) (pc + 0));
-}
-
-void
-__glXDisp_VertexAttrib1dvNV(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 12);
- pc -= 4;
- }
-#endif
-
- glVertexAttrib1dvNV(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib1fvNV(GLbyte * pc)
-{
- glVertexAttrib1fvNV(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib1svNV(GLbyte * pc)
-{
- glVertexAttrib1svNV(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib2dvNV(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 20);
- pc -= 4;
- }
-#endif
-
- glVertexAttrib2dvNV(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib2fvNV(GLbyte * pc)
-{
- glVertexAttrib2fvNV(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib2svNV(GLbyte * pc)
-{
- glVertexAttrib2svNV(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib3dvNV(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 28);
- pc -= 4;
- }
-#endif
-
- glVertexAttrib3dvNV(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib3fvNV(GLbyte * pc)
-{
- glVertexAttrib3fvNV(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib3svNV(GLbyte * pc)
-{
- glVertexAttrib3svNV(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib4dvNV(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 36);
- pc -= 4;
- }
-#endif
-
- glVertexAttrib4dvNV(*(GLuint *) (pc + 0), (const GLdouble *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib4fvNV(GLbyte * pc)
-{
- glVertexAttrib4fvNV(*(GLuint *) (pc + 0), (const GLfloat *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib4svNV(GLbyte * pc)
-{
- glVertexAttrib4svNV(*(GLuint *) (pc + 0), (const GLshort *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttrib4ubvNV(GLbyte * pc)
-{
- glVertexAttrib4ubvNV(*(GLuint *) (pc + 0), (const GLubyte *) (pc + 4));
-}
-
-void
-__glXDisp_VertexAttribs1dvNV(GLbyte * pc)
-{
- const GLsizei n = *(GLsizei *) (pc + 4);
-
-#ifdef __GLX_ALIGN64
- const GLuint cmdlen = 12 + __GLX_PAD((n * 8)) - 4;
-
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, cmdlen);
- pc -= 4;
- }
-#endif
-
- glVertexAttribs1dvNV(*(GLuint *) (pc + 0), n, (const GLdouble *) (pc + 8));
-}
-
-void
-__glXDisp_VertexAttribs1fvNV(GLbyte * pc)
-{
- const GLsizei n = *(GLsizei *) (pc + 4);
-
- glVertexAttribs1fvNV(*(GLuint *) (pc + 0), n, (const GLfloat *) (pc + 8));
-}
-
-void
-__glXDisp_VertexAttribs1svNV(GLbyte * pc)
-{
- const GLsizei n = *(GLsizei *) (pc + 4);
-
- glVertexAttribs1svNV(*(GLuint *) (pc + 0), n, (const GLshort *) (pc + 8));
-}
-
-void
-__glXDisp_VertexAttribs2dvNV(GLbyte * pc)
-{
- const GLsizei n = *(GLsizei *) (pc + 4);
-
-#ifdef __GLX_ALIGN64
- const GLuint cmdlen = 12 + __GLX_PAD((n * 16)) - 4;
-
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, cmdlen);
- pc -= 4;
- }
-#endif
-
- glVertexAttribs2dvNV(*(GLuint *) (pc + 0), n, (const GLdouble *) (pc + 8));
-}
-
-void
-__glXDisp_VertexAttribs2fvNV(GLbyte * pc)
-{
- const GLsizei n = *(GLsizei *) (pc + 4);
-
- glVertexAttribs2fvNV(*(GLuint *) (pc + 0), n, (const GLfloat *) (pc + 8));
-}
-
-void
-__glXDisp_VertexAttribs2svNV(GLbyte * pc)
-{
- const GLsizei n = *(GLsizei *) (pc + 4);
-
- glVertexAttribs2svNV(*(GLuint *) (pc + 0), n, (const GLshort *) (pc + 8));
-}
-
-void
-__glXDisp_VertexAttribs3dvNV(GLbyte * pc)
-{
- const GLsizei n = *(GLsizei *) (pc + 4);
-
-#ifdef __GLX_ALIGN64
- const GLuint cmdlen = 12 + __GLX_PAD((n * 24)) - 4;
-
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, cmdlen);
- pc -= 4;
- }
-#endif
-
- glVertexAttribs3dvNV(*(GLuint *) (pc + 0), n, (const GLdouble *) (pc + 8));
-}
-
-void
-__glXDisp_VertexAttribs3fvNV(GLbyte * pc)
-{
- const GLsizei n = *(GLsizei *) (pc + 4);
-
- glVertexAttribs3fvNV(*(GLuint *) (pc + 0), n, (const GLfloat *) (pc + 8));
-}
-
-void
-__glXDisp_VertexAttribs3svNV(GLbyte * pc)
-{
- const GLsizei n = *(GLsizei *) (pc + 4);
-
- glVertexAttribs3svNV(*(GLuint *) (pc + 0), n, (const GLshort *) (pc + 8));
-}
-
-void
-__glXDisp_VertexAttribs4dvNV(GLbyte * pc)
-{
- const GLsizei n = *(GLsizei *) (pc + 4);
-
-#ifdef __GLX_ALIGN64
- const GLuint cmdlen = 12 + __GLX_PAD((n * 32)) - 4;
-
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, cmdlen);
- pc -= 4;
- }
-#endif
-
- glVertexAttribs4dvNV(*(GLuint *) (pc + 0), n, (const GLdouble *) (pc + 8));
-}
-
-void
-__glXDisp_VertexAttribs4fvNV(GLbyte * pc)
-{
- const GLsizei n = *(GLsizei *) (pc + 4);
-
- glVertexAttribs4fvNV(*(GLuint *) (pc + 0), n, (const GLfloat *) (pc + 8));
-}
-
-void
-__glXDisp_VertexAttribs4svNV(GLbyte * pc)
-{
- const GLsizei n = *(GLsizei *) (pc + 4);
-
- glVertexAttribs4svNV(*(GLuint *) (pc + 0), n, (const GLshort *) (pc + 8));
-}
-
-void
-__glXDisp_VertexAttribs4ubvNV(GLbyte * pc)
-{
- const GLsizei n = *(GLsizei *) (pc + 4);
-
- glVertexAttribs4ubvNV(*(GLuint *) (pc + 0), n, (const GLubyte *) (pc + 8));
-}
-
-void
-__glXDisp_ActiveStencilFaceEXT(GLbyte * pc)
-{
- glActiveStencilFaceEXT(*(GLenum *) (pc + 0));
-}
+/* DO NOT EDIT - This file generated automatically by glX_proto_recv.py (from Mesa) script */
+
+/*
+ * (C) Copyright IBM Corporation 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
+ * 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 THEIR 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.
+ */
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+#include "glheader.h"
+
+#include <X11/Xmd.h>
+#include <GL/gl.h>
+#include <GL/glxproto.h>
+#include <inttypes.h>
+#include "indirect_size.h"
+#include "indirect_size_get.h"
+#include "indirect_dispatch.h"
+#include "glxserver.h"
+#include "glxbyteorder.h"
+#include "indirect_util.h"
+#include "singlesize.h"
+#include "glapi.h"
+#include "glapitable.h"
+#include "glthread.h"
+#include "dispatch.h"
+
+#define __GLX_PAD(x) (((x) + 3) & ~3)
+
+typedef struct {
+ __GLX_PIXEL_3D_HDR;
+} __GLXpixel3DHeader;
+
+extern GLboolean __glXErrorOccured( void );
+extern void __glXClearErrorOccured( void );
+
+static const unsigned dummy_answer[2] = {0, 0};
+
+int __glXDisp_NewList(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ CALL_NewList( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ *(GLenum *)(pc + 4)
+ ) );
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_EndList(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ CALL_EndList( GET_DISPATCH(), () );
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDisp_CallList(GLbyte * pc)
+{
+ CALL_CallList( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_CallLists(GLbyte * pc)
+{
+ const GLsizei n = *(GLsizei *)(pc + 0);
+ const GLenum type = *(GLenum *)(pc + 4);
+ const GLvoid * lists = (const GLvoid *)(pc + 8);
+
+ CALL_CallLists( GET_DISPATCH(), (
+ n,
+ type,
+ lists
+ ) );
+}
+
+int __glXDisp_DeleteLists(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ CALL_DeleteLists( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ *(GLsizei *)(pc + 4)
+ ) );
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GenLists(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLuint retval;
+ retval = CALL_GenLists( GET_DISPATCH(), (
+ *(GLsizei *)(pc + 0)
+ ) );
+ __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDisp_ListBase(GLbyte * pc)
+{
+ CALL_ListBase( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Begin(GLbyte * pc)
+{
+ CALL_Begin( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Bitmap(GLbyte * pc)
+{
+ const GLubyte * const bitmap = (const GLubyte *) (pc + 44);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment) );
+
+ CALL_Bitmap( GET_DISPATCH(), (
+ *(GLsizei *)(pc + 20),
+ *(GLsizei *)(pc + 24),
+ *(GLfloat *)(pc + 28),
+ *(GLfloat *)(pc + 32),
+ *(GLfloat *)(pc + 36),
+ *(GLfloat *)(pc + 40),
+ bitmap
+ ) );
+}
+
+void __glXDisp_Color3bv(GLbyte * pc)
+{
+ CALL_Color3bv( GET_DISPATCH(), (
+ (const GLbyte *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Color3dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 24);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Color3dv( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Color3fv(GLbyte * pc)
+{
+ CALL_Color3fv( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Color3iv(GLbyte * pc)
+{
+ CALL_Color3iv( GET_DISPATCH(), (
+ (const GLint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Color3sv(GLbyte * pc)
+{
+ CALL_Color3sv( GET_DISPATCH(), (
+ (const GLshort *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Color3ubv(GLbyte * pc)
+{
+ CALL_Color3ubv( GET_DISPATCH(), (
+ (const GLubyte *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Color3uiv(GLbyte * pc)
+{
+ CALL_Color3uiv( GET_DISPATCH(), (
+ (const GLuint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Color3usv(GLbyte * pc)
+{
+ CALL_Color3usv( GET_DISPATCH(), (
+ (const GLushort *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Color4bv(GLbyte * pc)
+{
+ CALL_Color4bv( GET_DISPATCH(), (
+ (const GLbyte *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Color4dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 32);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Color4dv( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Color4fv(GLbyte * pc)
+{
+ CALL_Color4fv( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Color4iv(GLbyte * pc)
+{
+ CALL_Color4iv( GET_DISPATCH(), (
+ (const GLint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Color4sv(GLbyte * pc)
+{
+ CALL_Color4sv( GET_DISPATCH(), (
+ (const GLshort *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Color4ubv(GLbyte * pc)
+{
+ CALL_Color4ubv( GET_DISPATCH(), (
+ (const GLubyte *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Color4uiv(GLbyte * pc)
+{
+ CALL_Color4uiv( GET_DISPATCH(), (
+ (const GLuint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Color4usv(GLbyte * pc)
+{
+ CALL_Color4usv( GET_DISPATCH(), (
+ (const GLushort *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_EdgeFlagv(GLbyte * pc)
+{
+ CALL_EdgeFlagv( GET_DISPATCH(), (
+ (const GLboolean *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_End(GLbyte * pc)
+{
+ CALL_End( GET_DISPATCH(), () );
+}
+
+void __glXDisp_Indexdv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 8);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Indexdv( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Indexfv(GLbyte * pc)
+{
+ CALL_Indexfv( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Indexiv(GLbyte * pc)
+{
+ CALL_Indexiv( GET_DISPATCH(), (
+ (const GLint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Indexsv(GLbyte * pc)
+{
+ CALL_Indexsv( GET_DISPATCH(), (
+ (const GLshort *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Normal3bv(GLbyte * pc)
+{
+ CALL_Normal3bv( GET_DISPATCH(), (
+ (const GLbyte *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Normal3dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 24);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Normal3dv( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Normal3fv(GLbyte * pc)
+{
+ CALL_Normal3fv( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Normal3iv(GLbyte * pc)
+{
+ CALL_Normal3iv( GET_DISPATCH(), (
+ (const GLint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Normal3sv(GLbyte * pc)
+{
+ CALL_Normal3sv( GET_DISPATCH(), (
+ (const GLshort *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_RasterPos2dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 16);
+ pc -= 4;
+ }
+#endif
+
+ CALL_RasterPos2dv( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_RasterPos2fv(GLbyte * pc)
+{
+ CALL_RasterPos2fv( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_RasterPos2iv(GLbyte * pc)
+{
+ CALL_RasterPos2iv( GET_DISPATCH(), (
+ (const GLint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_RasterPos2sv(GLbyte * pc)
+{
+ CALL_RasterPos2sv( GET_DISPATCH(), (
+ (const GLshort *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_RasterPos3dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 24);
+ pc -= 4;
+ }
+#endif
+
+ CALL_RasterPos3dv( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_RasterPos3fv(GLbyte * pc)
+{
+ CALL_RasterPos3fv( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_RasterPos3iv(GLbyte * pc)
+{
+ CALL_RasterPos3iv( GET_DISPATCH(), (
+ (const GLint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_RasterPos3sv(GLbyte * pc)
+{
+ CALL_RasterPos3sv( GET_DISPATCH(), (
+ (const GLshort *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_RasterPos4dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 32);
+ pc -= 4;
+ }
+#endif
+
+ CALL_RasterPos4dv( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_RasterPos4fv(GLbyte * pc)
+{
+ CALL_RasterPos4fv( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_RasterPos4iv(GLbyte * pc)
+{
+ CALL_RasterPos4iv( GET_DISPATCH(), (
+ (const GLint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_RasterPos4sv(GLbyte * pc)
+{
+ CALL_RasterPos4sv( GET_DISPATCH(), (
+ (const GLshort *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Rectdv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 32);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Rectdv( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0),
+ (const GLdouble *)(pc + 16)
+ ) );
+}
+
+void __glXDisp_Rectfv(GLbyte * pc)
+{
+ CALL_Rectfv( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0),
+ (const GLfloat *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_Rectiv(GLbyte * pc)
+{
+ CALL_Rectiv( GET_DISPATCH(), (
+ (const GLint *)(pc + 0),
+ (const GLint *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_Rectsv(GLbyte * pc)
+{
+ CALL_Rectsv( GET_DISPATCH(), (
+ (const GLshort *)(pc + 0),
+ (const GLshort *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_TexCoord1dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 8);
+ pc -= 4;
+ }
+#endif
+
+ CALL_TexCoord1dv( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_TexCoord1fv(GLbyte * pc)
+{
+ CALL_TexCoord1fv( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_TexCoord1iv(GLbyte * pc)
+{
+ CALL_TexCoord1iv( GET_DISPATCH(), (
+ (const GLint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_TexCoord1sv(GLbyte * pc)
+{
+ CALL_TexCoord1sv( GET_DISPATCH(), (
+ (const GLshort *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_TexCoord2dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 16);
+ pc -= 4;
+ }
+#endif
+
+ CALL_TexCoord2dv( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_TexCoord2fv(GLbyte * pc)
+{
+ CALL_TexCoord2fv( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_TexCoord2iv(GLbyte * pc)
+{
+ CALL_TexCoord2iv( GET_DISPATCH(), (
+ (const GLint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_TexCoord2sv(GLbyte * pc)
+{
+ CALL_TexCoord2sv( GET_DISPATCH(), (
+ (const GLshort *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_TexCoord3dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 24);
+ pc -= 4;
+ }
+#endif
+
+ CALL_TexCoord3dv( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_TexCoord3fv(GLbyte * pc)
+{
+ CALL_TexCoord3fv( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_TexCoord3iv(GLbyte * pc)
+{
+ CALL_TexCoord3iv( GET_DISPATCH(), (
+ (const GLint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_TexCoord3sv(GLbyte * pc)
+{
+ CALL_TexCoord3sv( GET_DISPATCH(), (
+ (const GLshort *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_TexCoord4dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 32);
+ pc -= 4;
+ }
+#endif
+
+ CALL_TexCoord4dv( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_TexCoord4fv(GLbyte * pc)
+{
+ CALL_TexCoord4fv( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_TexCoord4iv(GLbyte * pc)
+{
+ CALL_TexCoord4iv( GET_DISPATCH(), (
+ (const GLint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_TexCoord4sv(GLbyte * pc)
+{
+ CALL_TexCoord4sv( GET_DISPATCH(), (
+ (const GLshort *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Vertex2dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 16);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Vertex2dv( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Vertex2fv(GLbyte * pc)
+{
+ CALL_Vertex2fv( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Vertex2iv(GLbyte * pc)
+{
+ CALL_Vertex2iv( GET_DISPATCH(), (
+ (const GLint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Vertex2sv(GLbyte * pc)
+{
+ CALL_Vertex2sv( GET_DISPATCH(), (
+ (const GLshort *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Vertex3dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 24);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Vertex3dv( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Vertex3fv(GLbyte * pc)
+{
+ CALL_Vertex3fv( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Vertex3iv(GLbyte * pc)
+{
+ CALL_Vertex3iv( GET_DISPATCH(), (
+ (const GLint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Vertex3sv(GLbyte * pc)
+{
+ CALL_Vertex3sv( GET_DISPATCH(), (
+ (const GLshort *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Vertex4dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 32);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Vertex4dv( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Vertex4fv(GLbyte * pc)
+{
+ CALL_Vertex4fv( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Vertex4iv(GLbyte * pc)
+{
+ CALL_Vertex4iv( GET_DISPATCH(), (
+ (const GLint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Vertex4sv(GLbyte * pc)
+{
+ CALL_Vertex4sv( GET_DISPATCH(), (
+ (const GLshort *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_ClipPlane(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 36);
+ pc -= 4;
+ }
+#endif
+
+ CALL_ClipPlane( GET_DISPATCH(), (
+ *(GLenum *)(pc + 32),
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_ColorMaterial(GLbyte * pc)
+{
+ CALL_ColorMaterial( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_CullFace(GLbyte * pc)
+{
+ CALL_CullFace( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Fogf(GLbyte * pc)
+{
+ CALL_Fogf( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLfloat *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_Fogfv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 0);
+ const GLfloat * params;
+
+ params = (const GLfloat *) (pc + 4);
+
+ CALL_Fogfv( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_Fogi(GLbyte * pc)
+{
+ CALL_Fogi( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_Fogiv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 0);
+ const GLint * params;
+
+ params = (const GLint *) (pc + 4);
+
+ CALL_Fogiv( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_FrontFace(GLbyte * pc)
+{
+ CALL_FrontFace( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Hint(GLbyte * pc)
+{
+ CALL_Hint( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_Lightf(GLbyte * pc)
+{
+ CALL_Lightf( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLfloat *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_Lightfv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 4);
+ const GLfloat * params;
+
+ params = (const GLfloat *) (pc + 8);
+
+ CALL_Lightfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_Lighti(GLbyte * pc)
+{
+ CALL_Lighti( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLint *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_Lightiv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 4);
+ const GLint * params;
+
+ params = (const GLint *) (pc + 8);
+
+ CALL_Lightiv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_LightModelf(GLbyte * pc)
+{
+ CALL_LightModelf( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLfloat *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_LightModelfv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 0);
+ const GLfloat * params;
+
+ params = (const GLfloat *) (pc + 4);
+
+ CALL_LightModelfv( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_LightModeli(GLbyte * pc)
+{
+ CALL_LightModeli( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_LightModeliv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 0);
+ const GLint * params;
+
+ params = (const GLint *) (pc + 4);
+
+ CALL_LightModeliv( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_LineStipple(GLbyte * pc)
+{
+ CALL_LineStipple( GET_DISPATCH(), (
+ *(GLint *)(pc + 0),
+ *(GLushort *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_LineWidth(GLbyte * pc)
+{
+ CALL_LineWidth( GET_DISPATCH(), (
+ *(GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Materialf(GLbyte * pc)
+{
+ CALL_Materialf( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLfloat *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_Materialfv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 4);
+ const GLfloat * params;
+
+ params = (const GLfloat *) (pc + 8);
+
+ CALL_Materialfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_Materiali(GLbyte * pc)
+{
+ CALL_Materiali( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLint *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_Materialiv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 4);
+ const GLint * params;
+
+ params = (const GLint *) (pc + 8);
+
+ CALL_Materialiv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_PointSize(GLbyte * pc)
+{
+ CALL_PointSize( GET_DISPATCH(), (
+ *(GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_PolygonMode(GLbyte * pc)
+{
+ CALL_PolygonMode( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_PolygonStipple(GLbyte * pc)
+{
+ const GLubyte * const mask = (const GLubyte *) (pc + 20);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment) );
+
+ CALL_PolygonStipple( GET_DISPATCH(), (
+ mask
+ ) );
+}
+
+void __glXDisp_Scissor(GLbyte * pc)
+{
+ CALL_Scissor( GET_DISPATCH(), (
+ *(GLint *)(pc + 0),
+ *(GLint *)(pc + 4),
+ *(GLsizei *)(pc + 8),
+ *(GLsizei *)(pc + 12)
+ ) );
+}
+
+void __glXDisp_ShadeModel(GLbyte * pc)
+{
+ CALL_ShadeModel( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_TexParameterf(GLbyte * pc)
+{
+ CALL_TexParameterf( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLfloat *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_TexParameterfv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 4);
+ const GLfloat * params;
+
+ params = (const GLfloat *) (pc + 8);
+
+ CALL_TexParameterfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_TexParameteri(GLbyte * pc)
+{
+ CALL_TexParameteri( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLint *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_TexParameteriv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 4);
+ const GLint * params;
+
+ params = (const GLint *) (pc + 8);
+
+ CALL_TexParameteriv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_TexImage1D(GLbyte * pc)
+{
+ const GLvoid * const pixels = (const GLvoid *) (pc + 52);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment) );
+
+ CALL_TexImage1D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 20),
+ *(GLint *)(pc + 24),
+ *(GLint *)(pc + 28),
+ *(GLsizei *)(pc + 32),
+ *(GLint *)(pc + 40),
+ *(GLenum *)(pc + 44),
+ *(GLenum *)(pc + 48),
+ pixels
+ ) );
+}
+
+void __glXDisp_TexImage2D(GLbyte * pc)
+{
+ const GLvoid * const pixels = (const GLvoid *) (pc + 52);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment) );
+
+ CALL_TexImage2D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 20),
+ *(GLint *)(pc + 24),
+ *(GLint *)(pc + 28),
+ *(GLsizei *)(pc + 32),
+ *(GLsizei *)(pc + 36),
+ *(GLint *)(pc + 40),
+ *(GLenum *)(pc + 44),
+ *(GLenum *)(pc + 48),
+ pixels
+ ) );
+}
+
+void __glXDisp_TexEnvf(GLbyte * pc)
+{
+ CALL_TexEnvf( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLfloat *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_TexEnvfv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 4);
+ const GLfloat * params;
+
+ params = (const GLfloat *) (pc + 8);
+
+ CALL_TexEnvfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_TexEnvi(GLbyte * pc)
+{
+ CALL_TexEnvi( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLint *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_TexEnviv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 4);
+ const GLint * params;
+
+ params = (const GLint *) (pc + 8);
+
+ CALL_TexEnviv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_TexGend(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 16);
+ pc -= 4;
+ }
+#endif
+
+ CALL_TexGend( GET_DISPATCH(), (
+ *(GLenum *)(pc + 8),
+ *(GLenum *)(pc + 12),
+ *(GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_TexGendv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 4);
+ const GLdouble * params;
+
+#ifdef __GLX_ALIGN64
+ const GLuint compsize = __glTexGendv_size(pname);
+ const GLuint cmdlen = 12 + __GLX_PAD((compsize * 8)) - 4;
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, cmdlen);
+ pc -= 4;
+ }
+#endif
+
+ params = (const GLdouble *) (pc + 8);
+
+ CALL_TexGendv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_TexGenf(GLbyte * pc)
+{
+ CALL_TexGenf( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLfloat *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_TexGenfv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 4);
+ const GLfloat * params;
+
+ params = (const GLfloat *) (pc + 8);
+
+ CALL_TexGenfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_TexGeni(GLbyte * pc)
+{
+ CALL_TexGeni( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLint *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_TexGeniv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 4);
+ const GLint * params;
+
+ params = (const GLint *) (pc + 8);
+
+ CALL_TexGeniv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_InitNames(GLbyte * pc)
+{
+ CALL_InitNames( GET_DISPATCH(), () );
+}
+
+void __glXDisp_LoadName(GLbyte * pc)
+{
+ CALL_LoadName( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_PassThrough(GLbyte * pc)
+{
+ CALL_PassThrough( GET_DISPATCH(), (
+ *(GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_PopName(GLbyte * pc)
+{
+ CALL_PopName( GET_DISPATCH(), () );
+}
+
+void __glXDisp_PushName(GLbyte * pc)
+{
+ CALL_PushName( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_DrawBuffer(GLbyte * pc)
+{
+ CALL_DrawBuffer( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Clear(GLbyte * pc)
+{
+ CALL_Clear( GET_DISPATCH(), (
+ *(GLbitfield *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_ClearAccum(GLbyte * pc)
+{
+ CALL_ClearAccum( GET_DISPATCH(), (
+ *(GLfloat *)(pc + 0),
+ *(GLfloat *)(pc + 4),
+ *(GLfloat *)(pc + 8),
+ *(GLfloat *)(pc + 12)
+ ) );
+}
+
+void __glXDisp_ClearIndex(GLbyte * pc)
+{
+ CALL_ClearIndex( GET_DISPATCH(), (
+ *(GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_ClearColor(GLbyte * pc)
+{
+ CALL_ClearColor( GET_DISPATCH(), (
+ *(GLclampf *)(pc + 0),
+ *(GLclampf *)(pc + 4),
+ *(GLclampf *)(pc + 8),
+ *(GLclampf *)(pc + 12)
+ ) );
+}
+
+void __glXDisp_ClearStencil(GLbyte * pc)
+{
+ CALL_ClearStencil( GET_DISPATCH(), (
+ *(GLint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_ClearDepth(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 8);
+ pc -= 4;
+ }
+#endif
+
+ CALL_ClearDepth( GET_DISPATCH(), (
+ *(GLclampd *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_StencilMask(GLbyte * pc)
+{
+ CALL_StencilMask( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_ColorMask(GLbyte * pc)
+{
+ CALL_ColorMask( GET_DISPATCH(), (
+ *(GLboolean *)(pc + 0),
+ *(GLboolean *)(pc + 1),
+ *(GLboolean *)(pc + 2),
+ *(GLboolean *)(pc + 3)
+ ) );
+}
+
+void __glXDisp_DepthMask(GLbyte * pc)
+{
+ CALL_DepthMask( GET_DISPATCH(), (
+ *(GLboolean *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_IndexMask(GLbyte * pc)
+{
+ CALL_IndexMask( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Accum(GLbyte * pc)
+{
+ CALL_Accum( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLfloat *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_Disable(GLbyte * pc)
+{
+ CALL_Disable( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Enable(GLbyte * pc)
+{
+ CALL_Enable( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_PopAttrib(GLbyte * pc)
+{
+ CALL_PopAttrib( GET_DISPATCH(), () );
+}
+
+void __glXDisp_PushAttrib(GLbyte * pc)
+{
+ CALL_PushAttrib( GET_DISPATCH(), (
+ *(GLbitfield *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_MapGrid1d(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 20);
+ pc -= 4;
+ }
+#endif
+
+ CALL_MapGrid1d( GET_DISPATCH(), (
+ *(GLint *)(pc + 16),
+ *(GLdouble *)(pc + 0),
+ *(GLdouble *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_MapGrid1f(GLbyte * pc)
+{
+ CALL_MapGrid1f( GET_DISPATCH(), (
+ *(GLint *)(pc + 0),
+ *(GLfloat *)(pc + 4),
+ *(GLfloat *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_MapGrid2d(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 40);
+ pc -= 4;
+ }
+#endif
+
+ CALL_MapGrid2d( GET_DISPATCH(), (
+ *(GLint *)(pc + 32),
+ *(GLdouble *)(pc + 0),
+ *(GLdouble *)(pc + 8),
+ *(GLint *)(pc + 36),
+ *(GLdouble *)(pc + 16),
+ *(GLdouble *)(pc + 24)
+ ) );
+}
+
+void __glXDisp_MapGrid2f(GLbyte * pc)
+{
+ CALL_MapGrid2f( GET_DISPATCH(), (
+ *(GLint *)(pc + 0),
+ *(GLfloat *)(pc + 4),
+ *(GLfloat *)(pc + 8),
+ *(GLint *)(pc + 12),
+ *(GLfloat *)(pc + 16),
+ *(GLfloat *)(pc + 20)
+ ) );
+}
+
+void __glXDisp_EvalCoord1dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 8);
+ pc -= 4;
+ }
+#endif
+
+ CALL_EvalCoord1dv( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_EvalCoord1fv(GLbyte * pc)
+{
+ CALL_EvalCoord1fv( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_EvalCoord2dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 16);
+ pc -= 4;
+ }
+#endif
+
+ CALL_EvalCoord2dv( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_EvalCoord2fv(GLbyte * pc)
+{
+ CALL_EvalCoord2fv( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_EvalMesh1(GLbyte * pc)
+{
+ CALL_EvalMesh1( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4),
+ *(GLint *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_EvalPoint1(GLbyte * pc)
+{
+ CALL_EvalPoint1( GET_DISPATCH(), (
+ *(GLint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_EvalMesh2(GLbyte * pc)
+{
+ CALL_EvalMesh2( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4),
+ *(GLint *)(pc + 8),
+ *(GLint *)(pc + 12),
+ *(GLint *)(pc + 16)
+ ) );
+}
+
+void __glXDisp_EvalPoint2(GLbyte * pc)
+{
+ CALL_EvalPoint2( GET_DISPATCH(), (
+ *(GLint *)(pc + 0),
+ *(GLint *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_AlphaFunc(GLbyte * pc)
+{
+ CALL_AlphaFunc( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLclampf *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_BlendFunc(GLbyte * pc)
+{
+ CALL_BlendFunc( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_LogicOp(GLbyte * pc)
+{
+ CALL_LogicOp( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_StencilFunc(GLbyte * pc)
+{
+ CALL_StencilFunc( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4),
+ *(GLuint *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_StencilOp(GLbyte * pc)
+{
+ CALL_StencilOp( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLenum *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_DepthFunc(GLbyte * pc)
+{
+ CALL_DepthFunc( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_PixelZoom(GLbyte * pc)
+{
+ CALL_PixelZoom( GET_DISPATCH(), (
+ *(GLfloat *)(pc + 0),
+ *(GLfloat *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_PixelTransferf(GLbyte * pc)
+{
+ CALL_PixelTransferf( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLfloat *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_PixelTransferi(GLbyte * pc)
+{
+ CALL_PixelTransferi( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4)
+ ) );
+}
+
+int __glXDisp_PixelStoref(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ CALL_PixelStoref( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLfloat *)(pc + 4)
+ ) );
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_PixelStorei(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ CALL_PixelStorei( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4)
+ ) );
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDisp_PixelMapfv(GLbyte * pc)
+{
+ const GLsizei mapsize = *(GLsizei *)(pc + 4);
+
+ CALL_PixelMapfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ mapsize,
+ (const GLfloat *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_PixelMapuiv(GLbyte * pc)
+{
+ const GLsizei mapsize = *(GLsizei *)(pc + 4);
+
+ CALL_PixelMapuiv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ mapsize,
+ (const GLuint *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_PixelMapusv(GLbyte * pc)
+{
+ const GLsizei mapsize = *(GLsizei *)(pc + 4);
+
+ CALL_PixelMapusv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ mapsize,
+ (const GLushort *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_ReadBuffer(GLbyte * pc)
+{
+ CALL_ReadBuffer( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_CopyPixels(GLbyte * pc)
+{
+ CALL_CopyPixels( GET_DISPATCH(), (
+ *(GLint *)(pc + 0),
+ *(GLint *)(pc + 4),
+ *(GLsizei *)(pc + 8),
+ *(GLsizei *)(pc + 12),
+ *(GLenum *)(pc + 16)
+ ) );
+}
+
+void __glXDisp_DrawPixels(GLbyte * pc)
+{
+ const GLvoid * const pixels = (const GLvoid *) (pc + 36);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment) );
+
+ CALL_DrawPixels( GET_DISPATCH(), (
+ *(GLsizei *)(pc + 20),
+ *(GLsizei *)(pc + 24),
+ *(GLenum *)(pc + 28),
+ *(GLenum *)(pc + 32),
+ pixels
+ ) );
+}
+
+int __glXDisp_GetBooleanv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 0);
+
+ const GLuint compsize = __glGetBooleanv_size(pname);
+ GLboolean answerBuffer[200];
+ GLboolean * params = __glXGetAnswerBuffer(cl, compsize, answerBuffer, sizeof(answerBuffer), 1);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetBooleanv( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 1, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetClipPlane(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLdouble equation[4];
+ CALL_GetClipPlane( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ equation
+ ) );
+ __glXSendReply(cl->client, equation, 4, 8, GL_TRUE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetDoublev(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 0);
+
+ const GLuint compsize = __glGetDoublev_size(pname);
+ GLdouble answerBuffer[200];
+ GLdouble * params = __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer, sizeof(answerBuffer), 8);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetDoublev( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 8, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetError(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLenum retval;
+ retval = CALL_GetError( GET_DISPATCH(), () );
+ __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetFloatv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 0);
+
+ const GLuint compsize = __glGetFloatv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetFloatv( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetIntegerv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 0);
+
+ const GLuint compsize = __glGetIntegerv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetIntegerv( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetLightfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetLightfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetLightfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetLightiv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetLightiv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetLightiv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetMapdv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum target = *(GLenum *)(pc + 0);
+ const GLenum query = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetMapdv_size(target,query);
+ GLdouble answerBuffer[200];
+ GLdouble * v = __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer, sizeof(answerBuffer), 8);
+
+ if (v == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetMapdv( GET_DISPATCH(), (
+ target,
+ query,
+ v
+ ) );
+ __glXSendReply(cl->client, v, compsize, 8, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetMapfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum target = *(GLenum *)(pc + 0);
+ const GLenum query = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetMapfv_size(target,query);
+ GLfloat answerBuffer[200];
+ GLfloat * v = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (v == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetMapfv( GET_DISPATCH(), (
+ target,
+ query,
+ v
+ ) );
+ __glXSendReply(cl->client, v, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetMapiv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum target = *(GLenum *)(pc + 0);
+ const GLenum query = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetMapiv_size(target,query);
+ GLint answerBuffer[200];
+ GLint * v = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (v == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetMapiv( GET_DISPATCH(), (
+ target,
+ query,
+ v
+ ) );
+ __glXSendReply(cl->client, v, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetMaterialfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetMaterialfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetMaterialfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetMaterialiv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetMaterialiv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetMaterialiv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetPixelMapfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum map = *(GLenum *)(pc + 0);
+
+ const GLuint compsize = __glGetPixelMapfv_size(map);
+ GLfloat answerBuffer[200];
+ GLfloat * values = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (values == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetPixelMapfv( GET_DISPATCH(), (
+ map,
+ values
+ ) );
+ __glXSendReply(cl->client, values, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetPixelMapuiv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum map = *(GLenum *)(pc + 0);
+
+ const GLuint compsize = __glGetPixelMapuiv_size(map);
+ GLuint answerBuffer[200];
+ GLuint * values = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (values == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetPixelMapuiv( GET_DISPATCH(), (
+ map,
+ values
+ ) );
+ __glXSendReply(cl->client, values, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetPixelMapusv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum map = *(GLenum *)(pc + 0);
+
+ const GLuint compsize = __glGetPixelMapusv_size(map);
+ GLushort answerBuffer[200];
+ GLushort * values = __glXGetAnswerBuffer(cl, compsize * 2, answerBuffer, sizeof(answerBuffer), 2);
+
+ if (values == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetPixelMapusv( GET_DISPATCH(), (
+ map,
+ values
+ ) );
+ __glXSendReply(cl->client, values, compsize, 2, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetTexEnvfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetTexEnvfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetTexEnvfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetTexEnviv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetTexEnviv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetTexEnviv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetTexGendv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetTexGendv_size(pname);
+ GLdouble answerBuffer[200];
+ GLdouble * params = __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer, sizeof(answerBuffer), 8);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetTexGendv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 8, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetTexGenfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetTexGenfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetTexGenfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetTexGeniv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetTexGeniv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetTexGeniv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetTexParameterfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetTexParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetTexParameterfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetTexParameteriv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetTexParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetTexParameteriv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetTexLevelParameterfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 8);
+
+ const GLuint compsize = __glGetTexLevelParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetTexLevelParameterfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetTexLevelParameteriv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 8);
+
+ const GLuint compsize = __glGetTexLevelParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetTexLevelParameteriv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_IsEnabled(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLboolean retval;
+ retval = CALL_IsEnabled( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+ __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_IsList(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLboolean retval;
+ retval = CALL_IsList( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0)
+ ) );
+ __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDisp_DepthRange(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 16);
+ pc -= 4;
+ }
+#endif
+
+ CALL_DepthRange( GET_DISPATCH(), (
+ *(GLclampd *)(pc + 0),
+ *(GLclampd *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_Frustum(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 48);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Frustum( GET_DISPATCH(), (
+ *(GLdouble *)(pc + 0),
+ *(GLdouble *)(pc + 8),
+ *(GLdouble *)(pc + 16),
+ *(GLdouble *)(pc + 24),
+ *(GLdouble *)(pc + 32),
+ *(GLdouble *)(pc + 40)
+ ) );
+}
+
+void __glXDisp_LoadIdentity(GLbyte * pc)
+{
+ CALL_LoadIdentity( GET_DISPATCH(), () );
+}
+
+void __glXDisp_LoadMatrixf(GLbyte * pc)
+{
+ CALL_LoadMatrixf( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_LoadMatrixd(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 128);
+ pc -= 4;
+ }
+#endif
+
+ CALL_LoadMatrixd( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_MatrixMode(GLbyte * pc)
+{
+ CALL_MatrixMode( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_MultMatrixf(GLbyte * pc)
+{
+ CALL_MultMatrixf( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_MultMatrixd(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 128);
+ pc -= 4;
+ }
+#endif
+
+ CALL_MultMatrixd( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_Ortho(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 48);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Ortho( GET_DISPATCH(), (
+ *(GLdouble *)(pc + 0),
+ *(GLdouble *)(pc + 8),
+ *(GLdouble *)(pc + 16),
+ *(GLdouble *)(pc + 24),
+ *(GLdouble *)(pc + 32),
+ *(GLdouble *)(pc + 40)
+ ) );
+}
+
+void __glXDisp_PopMatrix(GLbyte * pc)
+{
+ CALL_PopMatrix( GET_DISPATCH(), () );
+}
+
+void __glXDisp_PushMatrix(GLbyte * pc)
+{
+ CALL_PushMatrix( GET_DISPATCH(), () );
+}
+
+void __glXDisp_Rotated(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 32);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Rotated( GET_DISPATCH(), (
+ *(GLdouble *)(pc + 0),
+ *(GLdouble *)(pc + 8),
+ *(GLdouble *)(pc + 16),
+ *(GLdouble *)(pc + 24)
+ ) );
+}
+
+void __glXDisp_Rotatef(GLbyte * pc)
+{
+ CALL_Rotatef( GET_DISPATCH(), (
+ *(GLfloat *)(pc + 0),
+ *(GLfloat *)(pc + 4),
+ *(GLfloat *)(pc + 8),
+ *(GLfloat *)(pc + 12)
+ ) );
+}
+
+void __glXDisp_Scaled(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 24);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Scaled( GET_DISPATCH(), (
+ *(GLdouble *)(pc + 0),
+ *(GLdouble *)(pc + 8),
+ *(GLdouble *)(pc + 16)
+ ) );
+}
+
+void __glXDisp_Scalef(GLbyte * pc)
+{
+ CALL_Scalef( GET_DISPATCH(), (
+ *(GLfloat *)(pc + 0),
+ *(GLfloat *)(pc + 4),
+ *(GLfloat *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_Translated(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 24);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Translated( GET_DISPATCH(), (
+ *(GLdouble *)(pc + 0),
+ *(GLdouble *)(pc + 8),
+ *(GLdouble *)(pc + 16)
+ ) );
+}
+
+void __glXDisp_Translatef(GLbyte * pc)
+{
+ CALL_Translatef( GET_DISPATCH(), (
+ *(GLfloat *)(pc + 0),
+ *(GLfloat *)(pc + 4),
+ *(GLfloat *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_Viewport(GLbyte * pc)
+{
+ CALL_Viewport( GET_DISPATCH(), (
+ *(GLint *)(pc + 0),
+ *(GLint *)(pc + 4),
+ *(GLsizei *)(pc + 8),
+ *(GLsizei *)(pc + 12)
+ ) );
+}
+
+void __glXDisp_BindTexture(GLbyte * pc)
+{
+ CALL_BindTexture( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_Indexubv(GLbyte * pc)
+{
+ CALL_Indexubv( GET_DISPATCH(), (
+ (const GLubyte *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_PolygonOffset(GLbyte * pc)
+{
+ CALL_PolygonOffset( GET_DISPATCH(), (
+ *(GLfloat *)(pc + 0),
+ *(GLfloat *)(pc + 4)
+ ) );
+}
+
+int __glXDisp_AreTexturesResident(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = *(GLsizei *)(pc + 0);
+
+ GLboolean retval;
+ GLboolean answerBuffer[200];
+ GLboolean * residences = __glXGetAnswerBuffer(cl, n, answerBuffer, sizeof(answerBuffer), 1);
+ retval = CALL_AreTexturesResident( GET_DISPATCH(), (
+ n,
+ (const GLuint *)(pc + 4),
+ residences
+ ) );
+ __glXSendReply(cl->client, residences, n, 1, GL_TRUE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_AreTexturesResidentEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = *(GLsizei *)(pc + 0);
+
+ GLboolean retval;
+ GLboolean answerBuffer[200];
+ GLboolean * residences = __glXGetAnswerBuffer(cl, n, answerBuffer, sizeof(answerBuffer), 1);
+ retval = CALL_AreTexturesResident( GET_DISPATCH(), (
+ n,
+ (const GLuint *)(pc + 4),
+ residences
+ ) );
+ __glXSendReply(cl->client, residences, n, 1, GL_TRUE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDisp_CopyTexImage1D(GLbyte * pc)
+{
+ CALL_CopyTexImage1D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4),
+ *(GLenum *)(pc + 8),
+ *(GLint *)(pc + 12),
+ *(GLint *)(pc + 16),
+ *(GLsizei *)(pc + 20),
+ *(GLint *)(pc + 24)
+ ) );
+}
+
+void __glXDisp_CopyTexImage2D(GLbyte * pc)
+{
+ CALL_CopyTexImage2D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4),
+ *(GLenum *)(pc + 8),
+ *(GLint *)(pc + 12),
+ *(GLint *)(pc + 16),
+ *(GLsizei *)(pc + 20),
+ *(GLsizei *)(pc + 24),
+ *(GLint *)(pc + 28)
+ ) );
+}
+
+void __glXDisp_CopyTexSubImage1D(GLbyte * pc)
+{
+ CALL_CopyTexSubImage1D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4),
+ *(GLint *)(pc + 8),
+ *(GLint *)(pc + 12),
+ *(GLint *)(pc + 16),
+ *(GLsizei *)(pc + 20)
+ ) );
+}
+
+void __glXDisp_CopyTexSubImage2D(GLbyte * pc)
+{
+ CALL_CopyTexSubImage2D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4),
+ *(GLint *)(pc + 8),
+ *(GLint *)(pc + 12),
+ *(GLint *)(pc + 16),
+ *(GLint *)(pc + 20),
+ *(GLsizei *)(pc + 24),
+ *(GLsizei *)(pc + 28)
+ ) );
+}
+
+int __glXDisp_DeleteTextures(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = *(GLsizei *)(pc + 0);
+
+ CALL_DeleteTextures( GET_DISPATCH(), (
+ n,
+ (const GLuint *)(pc + 4)
+ ) );
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_DeleteTexturesEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = *(GLsizei *)(pc + 0);
+
+ CALL_DeleteTextures( GET_DISPATCH(), (
+ n,
+ (const GLuint *)(pc + 4)
+ ) );
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GenTextures(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = *(GLsizei *)(pc + 0);
+
+ GLuint answerBuffer[200];
+ GLuint * textures = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
+ CALL_GenTextures( GET_DISPATCH(), (
+ n,
+ textures
+ ) );
+ __glXSendReply(cl->client, textures, n, 4, GL_TRUE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GenTexturesEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = *(GLsizei *)(pc + 0);
+
+ GLuint answerBuffer[200];
+ GLuint * textures = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
+ CALL_GenTextures( GET_DISPATCH(), (
+ n,
+ textures
+ ) );
+ __glXSendReply(cl->client, textures, n, 4, GL_TRUE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_IsTexture(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLboolean retval;
+ retval = CALL_IsTexture( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0)
+ ) );
+ __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_IsTextureEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLboolean retval;
+ retval = CALL_IsTexture( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0)
+ ) );
+ __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDisp_PrioritizeTextures(GLbyte * pc)
+{
+ const GLsizei n = *(GLsizei *)(pc + 0);
+
+ CALL_PrioritizeTextures( GET_DISPATCH(), (
+ n,
+ (const GLuint *)(pc + 4),
+ (const GLclampf *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_TexSubImage1D(GLbyte * pc)
+{
+ const GLvoid * const pixels = (const GLvoid *) (pc + 56);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment) );
+
+ CALL_TexSubImage1D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 20),
+ *(GLint *)(pc + 24),
+ *(GLint *)(pc + 28),
+ *(GLsizei *)(pc + 36),
+ *(GLenum *)(pc + 44),
+ *(GLenum *)(pc + 48),
+ pixels
+ ) );
+}
+
+void __glXDisp_TexSubImage2D(GLbyte * pc)
+{
+ const GLvoid * const pixels = (const GLvoid *) (pc + 56);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment) );
+
+ CALL_TexSubImage2D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 20),
+ *(GLint *)(pc + 24),
+ *(GLint *)(pc + 28),
+ *(GLint *)(pc + 32),
+ *(GLsizei *)(pc + 36),
+ *(GLsizei *)(pc + 40),
+ *(GLenum *)(pc + 44),
+ *(GLenum *)(pc + 48),
+ pixels
+ ) );
+}
+
+void __glXDisp_BlendColor(GLbyte * pc)
+{
+ CALL_BlendColor( GET_DISPATCH(), (
+ *(GLclampf *)(pc + 0),
+ *(GLclampf *)(pc + 4),
+ *(GLclampf *)(pc + 8),
+ *(GLclampf *)(pc + 12)
+ ) );
+}
+
+void __glXDisp_BlendEquation(GLbyte * pc)
+{
+ CALL_BlendEquation( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_ColorTable(GLbyte * pc)
+{
+ const GLvoid * const table = (const GLvoid *) (pc + 40);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment) );
+
+ CALL_ColorTable( GET_DISPATCH(), (
+ *(GLenum *)(pc + 20),
+ *(GLenum *)(pc + 24),
+ *(GLsizei *)(pc + 28),
+ *(GLenum *)(pc + 32),
+ *(GLenum *)(pc + 36),
+ table
+ ) );
+}
+
+void __glXDisp_ColorTableParameterfv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 4);
+ const GLfloat * params;
+
+ params = (const GLfloat *) (pc + 8);
+
+ CALL_ColorTableParameterfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_ColorTableParameteriv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 4);
+ const GLint * params;
+
+ params = (const GLint *) (pc + 8);
+
+ CALL_ColorTableParameteriv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_CopyColorTable(GLbyte * pc)
+{
+ CALL_CopyColorTable( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLint *)(pc + 8),
+ *(GLint *)(pc + 12),
+ *(GLsizei *)(pc + 16)
+ ) );
+}
+
+int __glXDisp_GetColorTableParameterfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetColorTableParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetColorTableParameterfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetColorTableParameterfvSGI(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetColorTableParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetColorTableParameterfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetColorTableParameteriv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetColorTableParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetColorTableParameteriv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetColorTableParameterivSGI(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetColorTableParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetColorTableParameteriv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDisp_ColorSubTable(GLbyte * pc)
+{
+ const GLvoid * const data = (const GLvoid *) (pc + 40);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment) );
+
+ CALL_ColorSubTable( GET_DISPATCH(), (
+ *(GLenum *)(pc + 20),
+ *(GLsizei *)(pc + 24),
+ *(GLsizei *)(pc + 28),
+ *(GLenum *)(pc + 32),
+ *(GLenum *)(pc + 36),
+ data
+ ) );
+}
+
+void __glXDisp_CopyColorSubTable(GLbyte * pc)
+{
+ CALL_CopyColorSubTable( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLsizei *)(pc + 4),
+ *(GLint *)(pc + 8),
+ *(GLint *)(pc + 12),
+ *(GLsizei *)(pc + 16)
+ ) );
+}
+
+void __glXDisp_ConvolutionFilter1D(GLbyte * pc)
+{
+ const GLvoid * const image = (const GLvoid *) (pc + 44);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment) );
+
+ CALL_ConvolutionFilter1D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 20),
+ *(GLenum *)(pc + 24),
+ *(GLsizei *)(pc + 28),
+ *(GLenum *)(pc + 36),
+ *(GLenum *)(pc + 40),
+ image
+ ) );
+}
+
+void __glXDisp_ConvolutionFilter2D(GLbyte * pc)
+{
+ const GLvoid * const image = (const GLvoid *) (pc + 44);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment) );
+
+ CALL_ConvolutionFilter2D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 20),
+ *(GLenum *)(pc + 24),
+ *(GLsizei *)(pc + 28),
+ *(GLsizei *)(pc + 32),
+ *(GLenum *)(pc + 36),
+ *(GLenum *)(pc + 40),
+ image
+ ) );
+}
+
+void __glXDisp_ConvolutionParameterf(GLbyte * pc)
+{
+ CALL_ConvolutionParameterf( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLfloat *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_ConvolutionParameterfv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 4);
+ const GLfloat * params;
+
+ params = (const GLfloat *) (pc + 8);
+
+ CALL_ConvolutionParameterfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_ConvolutionParameteri(GLbyte * pc)
+{
+ CALL_ConvolutionParameteri( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLint *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_ConvolutionParameteriv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 4);
+ const GLint * params;
+
+ params = (const GLint *) (pc + 8);
+
+ CALL_ConvolutionParameteriv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_CopyConvolutionFilter1D(GLbyte * pc)
+{
+ CALL_CopyConvolutionFilter1D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLint *)(pc + 8),
+ *(GLint *)(pc + 12),
+ *(GLsizei *)(pc + 16)
+ ) );
+}
+
+void __glXDisp_CopyConvolutionFilter2D(GLbyte * pc)
+{
+ CALL_CopyConvolutionFilter2D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLint *)(pc + 8),
+ *(GLint *)(pc + 12),
+ *(GLsizei *)(pc + 16),
+ *(GLsizei *)(pc + 20)
+ ) );
+}
+
+int __glXDisp_GetConvolutionParameterfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetConvolutionParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetConvolutionParameterfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetConvolutionParameterfvEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetConvolutionParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetConvolutionParameterfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetConvolutionParameteriv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetConvolutionParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetConvolutionParameteriv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetConvolutionParameterivEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetConvolutionParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetConvolutionParameteriv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetHistogramParameterfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetHistogramParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetHistogramParameterfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetHistogramParameterfvEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetHistogramParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetHistogramParameterfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetHistogramParameteriv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetHistogramParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetHistogramParameteriv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetHistogramParameterivEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetHistogramParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetHistogramParameteriv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetMinmaxParameterfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetMinmaxParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetMinmaxParameterfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetMinmaxParameterfvEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetMinmaxParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetMinmaxParameterfv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetMinmaxParameteriv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetMinmaxParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetMinmaxParameteriv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetMinmaxParameterivEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetMinmaxParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetMinmaxParameteriv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDisp_Histogram(GLbyte * pc)
+{
+ CALL_Histogram( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLsizei *)(pc + 4),
+ *(GLenum *)(pc + 8),
+ *(GLboolean *)(pc + 12)
+ ) );
+}
+
+void __glXDisp_Minmax(GLbyte * pc)
+{
+ CALL_Minmax( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLboolean *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_ResetHistogram(GLbyte * pc)
+{
+ CALL_ResetHistogram( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_ResetMinmax(GLbyte * pc)
+{
+ CALL_ResetMinmax( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_TexImage3D(GLbyte * pc)
+{
+ const CARD32 ptr_is_null = *(CARD32 *)(pc + 76);
+ const GLvoid * const pixels = (const GLvoid *) ((ptr_is_null != 0) ? NULL : (pc + 80));
+ __GLXpixel3DHeader * const hdr = (__GLXpixel3DHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_IMAGE_HEIGHT, (GLint) hdr->imageHeight) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_IMAGES, (GLint) hdr->skipImages) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment) );
+
+ CALL_TexImage3D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 36),
+ *(GLint *)(pc + 40),
+ *(GLint *)(pc + 44),
+ *(GLsizei *)(pc + 48),
+ *(GLsizei *)(pc + 52),
+ *(GLsizei *)(pc + 56),
+ *(GLint *)(pc + 64),
+ *(GLenum *)(pc + 68),
+ *(GLenum *)(pc + 72),
+ pixels
+ ) );
+}
+
+void __glXDisp_TexSubImage3D(GLbyte * pc)
+{
+ const GLvoid * const pixels = (const GLvoid *) (pc + 88);
+ __GLXpixel3DHeader * const hdr = (__GLXpixel3DHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) hdr->rowLength) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_IMAGE_HEIGHT, (GLint) hdr->imageHeight) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) hdr->skipRows) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_IMAGES, (GLint) hdr->skipImages) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) hdr->skipPixels) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) hdr->alignment) );
+
+ CALL_TexSubImage3D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 36),
+ *(GLint *)(pc + 40),
+ *(GLint *)(pc + 44),
+ *(GLint *)(pc + 48),
+ *(GLint *)(pc + 52),
+ *(GLsizei *)(pc + 60),
+ *(GLsizei *)(pc + 64),
+ *(GLsizei *)(pc + 68),
+ *(GLenum *)(pc + 76),
+ *(GLenum *)(pc + 80),
+ pixels
+ ) );
+}
+
+void __glXDisp_CopyTexSubImage3D(GLbyte * pc)
+{
+ CALL_CopyTexSubImage3D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4),
+ *(GLint *)(pc + 8),
+ *(GLint *)(pc + 12),
+ *(GLint *)(pc + 16),
+ *(GLint *)(pc + 20),
+ *(GLint *)(pc + 24),
+ *(GLsizei *)(pc + 28),
+ *(GLsizei *)(pc + 32)
+ ) );
+}
+
+void __glXDisp_ActiveTexture(GLbyte * pc)
+{
+ CALL_ActiveTexture( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_MultiTexCoord1dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 12);
+ pc -= 4;
+ }
+#endif
+
+ CALL_MultiTexCoord1dv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 8),
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_MultiTexCoord1fvARB(GLbyte * pc)
+{
+ CALL_MultiTexCoord1fvARB( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ (const GLfloat *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_MultiTexCoord1iv(GLbyte * pc)
+{
+ CALL_MultiTexCoord1iv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ (const GLint *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_MultiTexCoord1sv(GLbyte * pc)
+{
+ CALL_MultiTexCoord1sv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ (const GLshort *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_MultiTexCoord2dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 20);
+ pc -= 4;
+ }
+#endif
+
+ CALL_MultiTexCoord2dv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 16),
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_MultiTexCoord2fvARB(GLbyte * pc)
+{
+ CALL_MultiTexCoord2fvARB( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ (const GLfloat *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_MultiTexCoord2iv(GLbyte * pc)
+{
+ CALL_MultiTexCoord2iv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ (const GLint *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_MultiTexCoord2sv(GLbyte * pc)
+{
+ CALL_MultiTexCoord2sv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ (const GLshort *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_MultiTexCoord3dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 28);
+ pc -= 4;
+ }
+#endif
+
+ CALL_MultiTexCoord3dv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 24),
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_MultiTexCoord3fvARB(GLbyte * pc)
+{
+ CALL_MultiTexCoord3fvARB( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ (const GLfloat *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_MultiTexCoord3iv(GLbyte * pc)
+{
+ CALL_MultiTexCoord3iv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ (const GLint *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_MultiTexCoord3sv(GLbyte * pc)
+{
+ CALL_MultiTexCoord3sv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ (const GLshort *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_MultiTexCoord4dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 36);
+ pc -= 4;
+ }
+#endif
+
+ CALL_MultiTexCoord4dv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 32),
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_MultiTexCoord4fvARB(GLbyte * pc)
+{
+ CALL_MultiTexCoord4fvARB( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ (const GLfloat *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_MultiTexCoord4iv(GLbyte * pc)
+{
+ CALL_MultiTexCoord4iv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ (const GLint *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_MultiTexCoord4sv(GLbyte * pc)
+{
+ CALL_MultiTexCoord4sv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ (const GLshort *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_CompressedTexImage1D(GLbyte * pc)
+{
+ const GLsizei imageSize = *(GLsizei *)(pc + 20);
+
+ CALL_CompressedTexImage1D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4),
+ *(GLenum *)(pc + 8),
+ *(GLsizei *)(pc + 12),
+ *(GLint *)(pc + 16),
+ imageSize,
+ (const GLvoid *)(pc + 24)
+ ) );
+}
+
+void __glXDisp_CompressedTexImage2D(GLbyte * pc)
+{
+ const GLsizei imageSize = *(GLsizei *)(pc + 24);
+
+ CALL_CompressedTexImage2D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4),
+ *(GLenum *)(pc + 8),
+ *(GLsizei *)(pc + 12),
+ *(GLsizei *)(pc + 16),
+ *(GLint *)(pc + 20),
+ imageSize,
+ (const GLvoid *)(pc + 28)
+ ) );
+}
+
+void __glXDisp_CompressedTexImage3D(GLbyte * pc)
+{
+ const GLsizei imageSize = *(GLsizei *)(pc + 28);
+
+ CALL_CompressedTexImage3D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4),
+ *(GLenum *)(pc + 8),
+ *(GLsizei *)(pc + 12),
+ *(GLsizei *)(pc + 16),
+ *(GLsizei *)(pc + 20),
+ *(GLint *)(pc + 24),
+ imageSize,
+ (const GLvoid *)(pc + 32)
+ ) );
+}
+
+void __glXDisp_CompressedTexSubImage1D(GLbyte * pc)
+{
+ const GLsizei imageSize = *(GLsizei *)(pc + 20);
+
+ CALL_CompressedTexSubImage1D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4),
+ *(GLint *)(pc + 8),
+ *(GLsizei *)(pc + 12),
+ *(GLenum *)(pc + 16),
+ imageSize,
+ (const GLvoid *)(pc + 24)
+ ) );
+}
+
+void __glXDisp_CompressedTexSubImage2D(GLbyte * pc)
+{
+ const GLsizei imageSize = *(GLsizei *)(pc + 28);
+
+ CALL_CompressedTexSubImage2D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4),
+ *(GLint *)(pc + 8),
+ *(GLint *)(pc + 12),
+ *(GLsizei *)(pc + 16),
+ *(GLsizei *)(pc + 20),
+ *(GLenum *)(pc + 24),
+ imageSize,
+ (const GLvoid *)(pc + 32)
+ ) );
+}
+
+void __glXDisp_CompressedTexSubImage3D(GLbyte * pc)
+{
+ const GLsizei imageSize = *(GLsizei *)(pc + 36);
+
+ CALL_CompressedTexSubImage3D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4),
+ *(GLint *)(pc + 8),
+ *(GLint *)(pc + 12),
+ *(GLint *)(pc + 16),
+ *(GLsizei *)(pc + 20),
+ *(GLsizei *)(pc + 24),
+ *(GLsizei *)(pc + 28),
+ *(GLenum *)(pc + 32),
+ imageSize,
+ (const GLvoid *)(pc + 40)
+ ) );
+}
+
+void __glXDisp_SampleCoverage(GLbyte * pc)
+{
+ CALL_SampleCoverage( GET_DISPATCH(), (
+ *(GLclampf *)(pc + 0),
+ *(GLboolean *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_BlendFuncSeparate(GLbyte * pc)
+{
+ CALL_BlendFuncSeparate( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLenum *)(pc + 8),
+ *(GLenum *)(pc + 12)
+ ) );
+}
+
+void __glXDisp_FogCoorddv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 8);
+ pc -= 4;
+ }
+#endif
+
+ CALL_FogCoorddv( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_PointParameterf(GLbyte * pc)
+{
+ CALL_PointParameterf( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLfloat *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_PointParameterfv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 0);
+ const GLfloat * params;
+
+ params = (const GLfloat *) (pc + 4);
+
+ CALL_PointParameterfv( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_PointParameteri(GLbyte * pc)
+{
+ CALL_PointParameteri( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLint *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_PointParameteriv(GLbyte * pc)
+{
+ const GLenum pname = *(GLenum *)(pc + 0);
+ const GLint * params;
+
+ params = (const GLint *) (pc + 4);
+
+ CALL_PointParameteriv( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+}
+
+void __glXDisp_SecondaryColor3bv(GLbyte * pc)
+{
+ CALL_SecondaryColor3bv( GET_DISPATCH(), (
+ (const GLbyte *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_SecondaryColor3dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 24);
+ pc -= 4;
+ }
+#endif
+
+ CALL_SecondaryColor3dv( GET_DISPATCH(), (
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_SecondaryColor3iv(GLbyte * pc)
+{
+ CALL_SecondaryColor3iv( GET_DISPATCH(), (
+ (const GLint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_SecondaryColor3sv(GLbyte * pc)
+{
+ CALL_SecondaryColor3sv( GET_DISPATCH(), (
+ (const GLshort *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_SecondaryColor3ubv(GLbyte * pc)
+{
+ CALL_SecondaryColor3ubv( GET_DISPATCH(), (
+ (const GLubyte *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_SecondaryColor3uiv(GLbyte * pc)
+{
+ CALL_SecondaryColor3uiv( GET_DISPATCH(), (
+ (const GLuint *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_SecondaryColor3usv(GLbyte * pc)
+{
+ CALL_SecondaryColor3usv( GET_DISPATCH(), (
+ (const GLushort *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_WindowPos3fv(GLbyte * pc)
+{
+ CALL_WindowPos3fv( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_BeginQuery(GLbyte * pc)
+{
+ CALL_BeginQuery( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4)
+ ) );
+}
+
+int __glXDisp_DeleteQueries(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = *(GLsizei *)(pc + 0);
+
+ CALL_DeleteQueries( GET_DISPATCH(), (
+ n,
+ (const GLuint *)(pc + 4)
+ ) );
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDisp_EndQuery(GLbyte * pc)
+{
+ CALL_EndQuery( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+}
+
+int __glXDisp_GenQueries(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = *(GLsizei *)(pc + 0);
+
+ GLuint answerBuffer[200];
+ GLuint * ids = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
+ CALL_GenQueries( GET_DISPATCH(), (
+ n,
+ ids
+ ) );
+ __glXSendReply(cl->client, ids, n, 4, GL_TRUE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetQueryObjectiv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetQueryObjectiv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetQueryObjectiv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetQueryObjectuiv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetQueryObjectuiv_size(pname);
+ GLuint answerBuffer[200];
+ GLuint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetQueryObjectuiv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetQueryiv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetQueryiv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetQueryiv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_IsQuery(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLboolean retval;
+ retval = CALL_IsQuery( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0)
+ ) );
+ __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDisp_BlendEquationSeparate(GLbyte * pc)
+{
+ CALL_BlendEquationSeparate( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_DrawBuffers(GLbyte * pc)
+{
+ const GLsizei n = *(GLsizei *)(pc + 0);
+
+ CALL_DrawBuffers( GET_DISPATCH(), (
+ n,
+ (const GLenum *)(pc + 4)
+ ) );
+}
+
+int __glXDisp_GetVertexAttribdv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetVertexAttribdv_size(pname);
+ GLdouble answerBuffer[200];
+ GLdouble * params = __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer, sizeof(answerBuffer), 8);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetVertexAttribdv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 8, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetVertexAttribfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetVertexAttribfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetVertexAttribfv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetVertexAttribiv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetVertexAttribiv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetVertexAttribiv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDisp_VertexAttrib1dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 12);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttrib1dv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLdouble *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib1sv(GLbyte * pc)
+{
+ CALL_VertexAttrib1sv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLshort *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib2dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 20);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttrib2dv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLdouble *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib2sv(GLbyte * pc)
+{
+ CALL_VertexAttrib2sv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLshort *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib3dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 28);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttrib3dv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLdouble *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib3sv(GLbyte * pc)
+{
+ CALL_VertexAttrib3sv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLshort *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib4Nbv(GLbyte * pc)
+{
+ CALL_VertexAttrib4Nbv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLbyte *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib4Niv(GLbyte * pc)
+{
+ CALL_VertexAttrib4Niv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLint *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib4Nsv(GLbyte * pc)
+{
+ CALL_VertexAttrib4Nsv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLshort *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib4Nubv(GLbyte * pc)
+{
+ CALL_VertexAttrib4Nubv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLubyte *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib4Nuiv(GLbyte * pc)
+{
+ CALL_VertexAttrib4Nuiv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLuint *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib4Nusv(GLbyte * pc)
+{
+ CALL_VertexAttrib4Nusv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLushort *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib4bv(GLbyte * pc)
+{
+ CALL_VertexAttrib4bv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLbyte *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib4dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 36);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttrib4dv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLdouble *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib4iv(GLbyte * pc)
+{
+ CALL_VertexAttrib4iv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLint *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib4sv(GLbyte * pc)
+{
+ CALL_VertexAttrib4sv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLshort *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib4ubv(GLbyte * pc)
+{
+ CALL_VertexAttrib4ubv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLubyte *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib4uiv(GLbyte * pc)
+{
+ CALL_VertexAttrib4uiv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLuint *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib4usv(GLbyte * pc)
+{
+ CALL_VertexAttrib4usv( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLushort *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_ClampColor(GLbyte * pc)
+{
+ CALL_ClampColor( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_BindProgramARB(GLbyte * pc)
+{
+ CALL_BindProgramARB( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4)
+ ) );
+}
+
+int __glXDisp_DeleteProgramsARB(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = *(GLsizei *)(pc + 0);
+
+ CALL_DeleteProgramsARB( GET_DISPATCH(), (
+ n,
+ (const GLuint *)(pc + 4)
+ ) );
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GenProgramsARB(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = *(GLsizei *)(pc + 0);
+
+ GLuint answerBuffer[200];
+ GLuint * programs = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
+ CALL_GenProgramsARB( GET_DISPATCH(), (
+ n,
+ programs
+ ) );
+ __glXSendReply(cl->client, programs, n, 4, GL_TRUE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetProgramEnvParameterdvARB(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLdouble params[4];
+ CALL_GetProgramEnvParameterdvARB( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4),
+ params
+ ) );
+ __glXSendReply(cl->client, params, 4, 8, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetProgramEnvParameterfvARB(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLfloat params[4];
+ CALL_GetProgramEnvParameterfvARB( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4),
+ params
+ ) );
+ __glXSendReply(cl->client, params, 4, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetProgramLocalParameterdvARB(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLdouble params[4];
+ CALL_GetProgramLocalParameterdvARB( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4),
+ params
+ ) );
+ __glXSendReply(cl->client, params, 4, 8, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetProgramLocalParameterfvARB(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLfloat params[4];
+ CALL_GetProgramLocalParameterfvARB( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4),
+ params
+ ) );
+ __glXSendReply(cl->client, params, 4, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetProgramivARB(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetProgramivARB_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetProgramivARB( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_IsProgramARB(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLboolean retval;
+ retval = CALL_IsProgramARB( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0)
+ ) );
+ __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDisp_ProgramEnvParameter4dvARB(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 40);
+ pc -= 4;
+ }
+#endif
+
+ CALL_ProgramEnvParameter4dvARB( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4),
+ (const GLdouble *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_ProgramEnvParameter4fvARB(GLbyte * pc)
+{
+ CALL_ProgramEnvParameter4fvARB( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4),
+ (const GLfloat *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_ProgramLocalParameter4dvARB(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 40);
+ pc -= 4;
+ }
+#endif
+
+ CALL_ProgramLocalParameter4dvARB( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4),
+ (const GLdouble *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_ProgramLocalParameter4fvARB(GLbyte * pc)
+{
+ CALL_ProgramLocalParameter4fvARB( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4),
+ (const GLfloat *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_ProgramStringARB(GLbyte * pc)
+{
+ const GLsizei len = *(GLsizei *)(pc + 8);
+
+ CALL_ProgramStringARB( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ len,
+ (const GLvoid *)(pc + 12)
+ ) );
+}
+
+void __glXDisp_VertexAttrib1fvARB(GLbyte * pc)
+{
+ CALL_VertexAttrib1fvARB( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLfloat *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib2fvARB(GLbyte * pc)
+{
+ CALL_VertexAttrib2fvARB( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLfloat *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib3fvARB(GLbyte * pc)
+{
+ CALL_VertexAttrib3fvARB( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLfloat *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib4fvARB(GLbyte * pc)
+{
+ CALL_VertexAttrib4fvARB( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLfloat *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_BindFramebuffer(GLbyte * pc)
+{
+ CALL_BindFramebuffer( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_BindRenderbuffer(GLbyte * pc)
+{
+ CALL_BindRenderbuffer( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_BlitFramebuffer(GLbyte * pc)
+{
+ CALL_BlitFramebuffer( GET_DISPATCH(), (
+ *(GLint *)(pc + 0),
+ *(GLint *)(pc + 4),
+ *(GLint *)(pc + 8),
+ *(GLint *)(pc + 12),
+ *(GLint *)(pc + 16),
+ *(GLint *)(pc + 20),
+ *(GLint *)(pc + 24),
+ *(GLint *)(pc + 28),
+ *(GLbitfield *)(pc + 32),
+ *(GLenum *)(pc + 36)
+ ) );
+}
+
+int __glXDisp_CheckFramebufferStatus(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLenum retval;
+ retval = CALL_CheckFramebufferStatus( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+ __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDisp_DeleteFramebuffers(GLbyte * pc)
+{
+ const GLsizei n = *(GLsizei *)(pc + 0);
+
+ CALL_DeleteFramebuffers( GET_DISPATCH(), (
+ n,
+ (const GLuint *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_DeleteRenderbuffers(GLbyte * pc)
+{
+ const GLsizei n = *(GLsizei *)(pc + 0);
+
+ CALL_DeleteRenderbuffers( GET_DISPATCH(), (
+ n,
+ (const GLuint *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_FramebufferRenderbuffer(GLbyte * pc)
+{
+ CALL_FramebufferRenderbuffer( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLenum *)(pc + 8),
+ *(GLuint *)(pc + 12)
+ ) );
+}
+
+void __glXDisp_FramebufferTexture1D(GLbyte * pc)
+{
+ CALL_FramebufferTexture1D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLenum *)(pc + 8),
+ *(GLuint *)(pc + 12),
+ *(GLint *)(pc + 16)
+ ) );
+}
+
+void __glXDisp_FramebufferTexture2D(GLbyte * pc)
+{
+ CALL_FramebufferTexture2D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLenum *)(pc + 8),
+ *(GLuint *)(pc + 12),
+ *(GLint *)(pc + 16)
+ ) );
+}
+
+void __glXDisp_FramebufferTexture3D(GLbyte * pc)
+{
+ CALL_FramebufferTexture3D( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLenum *)(pc + 8),
+ *(GLuint *)(pc + 12),
+ *(GLint *)(pc + 16),
+ *(GLint *)(pc + 20)
+ ) );
+}
+
+void __glXDisp_FramebufferTextureLayer(GLbyte * pc)
+{
+ CALL_FramebufferTextureLayer( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLuint *)(pc + 8),
+ *(GLint *)(pc + 12),
+ *(GLint *)(pc + 16)
+ ) );
+}
+
+int __glXDisp_GenFramebuffers(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = *(GLsizei *)(pc + 0);
+
+ GLuint answerBuffer[200];
+ GLuint * framebuffers = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
+ CALL_GenFramebuffers( GET_DISPATCH(), (
+ n,
+ framebuffers
+ ) );
+ __glXSendReply(cl->client, framebuffers, n, 4, GL_TRUE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GenRenderbuffers(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = *(GLsizei *)(pc + 0);
+
+ GLuint answerBuffer[200];
+ GLuint * renderbuffers = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
+ CALL_GenRenderbuffers( GET_DISPATCH(), (
+ n,
+ renderbuffers
+ ) );
+ __glXSendReply(cl->client, renderbuffers, n, 4, GL_TRUE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDisp_GenerateMipmap(GLbyte * pc)
+{
+ CALL_GenerateMipmap( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+}
+
+int __glXDisp_GetFramebufferAttachmentParameteriv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLint params[1];
+ CALL_GetFramebufferAttachmentParameteriv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLenum *)(pc + 8),
+ params
+ ) );
+ __glXSendReply(cl->client, params, 1, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetRenderbufferParameteriv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLint params[1];
+ CALL_GetRenderbufferParameteriv( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ params
+ ) );
+ __glXSendReply(cl->client, params, 1, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_IsFramebuffer(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLboolean retval;
+ retval = CALL_IsFramebuffer( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0)
+ ) );
+ __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_IsRenderbuffer(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLboolean retval;
+ retval = CALL_IsRenderbuffer( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0)
+ ) );
+ __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDisp_RenderbufferStorage(GLbyte * pc)
+{
+ CALL_RenderbufferStorage( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLenum *)(pc + 4),
+ *(GLsizei *)(pc + 8),
+ *(GLsizei *)(pc + 12)
+ ) );
+}
+
+void __glXDisp_RenderbufferStorageMultisample(GLbyte * pc)
+{
+ CALL_RenderbufferStorageMultisample( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLsizei *)(pc + 4),
+ *(GLenum *)(pc + 8),
+ *(GLsizei *)(pc + 12),
+ *(GLsizei *)(pc + 16)
+ ) );
+}
+
+void __glXDisp_SampleMaskSGIS(GLbyte * pc)
+{
+ CALL_SampleMaskSGIS( GET_DISPATCH(), (
+ *(GLclampf *)(pc + 0),
+ *(GLboolean *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_SamplePatternSGIS(GLbyte * pc)
+{
+ CALL_SamplePatternSGIS( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_SecondaryColor3fvEXT(GLbyte * pc)
+{
+ CALL_SecondaryColor3fvEXT( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_FogCoordfvEXT(GLbyte * pc)
+{
+ CALL_FogCoordfvEXT( GET_DISPATCH(), (
+ (const GLfloat *)(pc + 0)
+ ) );
+}
+
+int __glXDisp_AreProgramsResidentNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = *(GLsizei *)(pc + 0);
+
+ GLboolean retval;
+ GLboolean answerBuffer[200];
+ GLboolean * residences = __glXGetAnswerBuffer(cl, n, answerBuffer, sizeof(answerBuffer), 1);
+ retval = CALL_AreProgramsResidentNV( GET_DISPATCH(), (
+ n,
+ (const GLuint *)(pc + 4),
+ residences
+ ) );
+ __glXSendReply(cl->client, residences, n, 1, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDisp_ExecuteProgramNV(GLbyte * pc)
+{
+ CALL_ExecuteProgramNV( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4),
+ (const GLfloat *)(pc + 8)
+ ) );
+}
+
+int __glXDisp_GetProgramParameterdvNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLdouble params[4];
+ CALL_GetProgramParameterdvNV( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4),
+ *(GLenum *)(pc + 8),
+ params
+ ) );
+ __glXSendReply(cl->client, params, 4, 8, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetProgramParameterfvNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLfloat params[4];
+ CALL_GetProgramParameterfvNV( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4),
+ *(GLenum *)(pc + 8),
+ params
+ ) );
+ __glXSendReply(cl->client, params, 4, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetProgramivNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetProgramivNV_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetProgramivNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetTrackMatrixivNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLint params[1];
+ CALL_GetTrackMatrixivNV( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4),
+ *(GLenum *)(pc + 8),
+ params
+ ) );
+ __glXSendReply(cl->client, params, 1, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetVertexAttribdvNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetVertexAttribdvNV_size(pname);
+ GLdouble answerBuffer[200];
+ GLdouble * params = __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer, sizeof(answerBuffer), 8);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetVertexAttribdvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 8, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetVertexAttribfvNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetVertexAttribfvNV_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetVertexAttribfvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetVertexAttribivNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = *(GLenum *)(pc + 4);
+
+ const GLuint compsize = __glGetVertexAttribivNV_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetVertexAttribivNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ pname,
+ params
+ ) );
+ __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDisp_LoadProgramNV(GLbyte * pc)
+{
+ const GLsizei len = *(GLsizei *)(pc + 8);
+
+ CALL_LoadProgramNV( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4),
+ len,
+ (const GLubyte *)(pc + 12)
+ ) );
+}
+
+void __glXDisp_ProgramParameters4dvNV(GLbyte * pc)
+{
+ const GLsizei num = *(GLsizei *)(pc + 8);
+
+#ifdef __GLX_ALIGN64
+ const GLuint cmdlen = 16 + __GLX_PAD((num * 32)) - 4;
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, cmdlen);
+ pc -= 4;
+ }
+#endif
+
+ CALL_ProgramParameters4dvNV( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4),
+ num,
+ (const GLdouble *)(pc + 12)
+ ) );
+}
+
+void __glXDisp_ProgramParameters4fvNV(GLbyte * pc)
+{
+ const GLsizei num = *(GLsizei *)(pc + 8);
+
+ CALL_ProgramParameters4fvNV( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4),
+ num,
+ (const GLfloat *)(pc + 12)
+ ) );
+}
+
+void __glXDisp_RequestResidentProgramsNV(GLbyte * pc)
+{
+ const GLsizei n = *(GLsizei *)(pc + 0);
+
+ CALL_RequestResidentProgramsNV( GET_DISPATCH(), (
+ n,
+ (const GLuint *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_TrackMatrixNV(GLbyte * pc)
+{
+ CALL_TrackMatrixNV( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4),
+ *(GLenum *)(pc + 8),
+ *(GLenum *)(pc + 12)
+ ) );
+}
+
+void __glXDisp_VertexAttrib1dvNV(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 12);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttrib1dvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLdouble *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib1fvNV(GLbyte * pc)
+{
+ CALL_VertexAttrib1fvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLfloat *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib1svNV(GLbyte * pc)
+{
+ CALL_VertexAttrib1svNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLshort *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib2dvNV(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 20);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttrib2dvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLdouble *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib2fvNV(GLbyte * pc)
+{
+ CALL_VertexAttrib2fvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLfloat *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib2svNV(GLbyte * pc)
+{
+ CALL_VertexAttrib2svNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLshort *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib3dvNV(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 28);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttrib3dvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLdouble *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib3fvNV(GLbyte * pc)
+{
+ CALL_VertexAttrib3fvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLfloat *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib3svNV(GLbyte * pc)
+{
+ CALL_VertexAttrib3svNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLshort *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib4dvNV(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 36);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttrib4dvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLdouble *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib4fvNV(GLbyte * pc)
+{
+ CALL_VertexAttrib4fvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLfloat *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib4svNV(GLbyte * pc)
+{
+ CALL_VertexAttrib4svNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLshort *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttrib4ubvNV(GLbyte * pc)
+{
+ CALL_VertexAttrib4ubvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ (const GLubyte *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_VertexAttribs1dvNV(GLbyte * pc)
+{
+ const GLsizei n = *(GLsizei *)(pc + 4);
+
+#ifdef __GLX_ALIGN64
+ const GLuint cmdlen = 12 + __GLX_PAD((n * 8)) - 4;
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, cmdlen);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttribs1dvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ n,
+ (const GLdouble *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_VertexAttribs1fvNV(GLbyte * pc)
+{
+ const GLsizei n = *(GLsizei *)(pc + 4);
+
+ CALL_VertexAttribs1fvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ n,
+ (const GLfloat *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_VertexAttribs1svNV(GLbyte * pc)
+{
+ const GLsizei n = *(GLsizei *)(pc + 4);
+
+ CALL_VertexAttribs1svNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ n,
+ (const GLshort *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_VertexAttribs2dvNV(GLbyte * pc)
+{
+ const GLsizei n = *(GLsizei *)(pc + 4);
+
+#ifdef __GLX_ALIGN64
+ const GLuint cmdlen = 12 + __GLX_PAD((n * 16)) - 4;
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, cmdlen);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttribs2dvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ n,
+ (const GLdouble *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_VertexAttribs2fvNV(GLbyte * pc)
+{
+ const GLsizei n = *(GLsizei *)(pc + 4);
+
+ CALL_VertexAttribs2fvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ n,
+ (const GLfloat *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_VertexAttribs2svNV(GLbyte * pc)
+{
+ const GLsizei n = *(GLsizei *)(pc + 4);
+
+ CALL_VertexAttribs2svNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ n,
+ (const GLshort *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_VertexAttribs3dvNV(GLbyte * pc)
+{
+ const GLsizei n = *(GLsizei *)(pc + 4);
+
+#ifdef __GLX_ALIGN64
+ const GLuint cmdlen = 12 + __GLX_PAD((n * 24)) - 4;
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, cmdlen);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttribs3dvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ n,
+ (const GLdouble *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_VertexAttribs3fvNV(GLbyte * pc)
+{
+ const GLsizei n = *(GLsizei *)(pc + 4);
+
+ CALL_VertexAttribs3fvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ n,
+ (const GLfloat *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_VertexAttribs3svNV(GLbyte * pc)
+{
+ const GLsizei n = *(GLsizei *)(pc + 4);
+
+ CALL_VertexAttribs3svNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ n,
+ (const GLshort *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_VertexAttribs4dvNV(GLbyte * pc)
+{
+ const GLsizei n = *(GLsizei *)(pc + 4);
+
+#ifdef __GLX_ALIGN64
+ const GLuint cmdlen = 12 + __GLX_PAD((n * 32)) - 4;
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, cmdlen);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttribs4dvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ n,
+ (const GLdouble *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_VertexAttribs4fvNV(GLbyte * pc)
+{
+ const GLsizei n = *(GLsizei *)(pc + 4);
+
+ CALL_VertexAttribs4fvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ n,
+ (const GLfloat *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_VertexAttribs4svNV(GLbyte * pc)
+{
+ const GLsizei n = *(GLsizei *)(pc + 4);
+
+ CALL_VertexAttribs4svNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ n,
+ (const GLshort *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_VertexAttribs4ubvNV(GLbyte * pc)
+{
+ const GLsizei n = *(GLsizei *)(pc + 4);
+
+ CALL_VertexAttribs4ubvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ n,
+ (const GLubyte *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_ActiveStencilFaceEXT(GLbyte * pc)
+{
+ CALL_ActiveStencilFaceEXT( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0)
+ ) );
+}
+
+int __glXDisp_GetProgramNamedParameterdvNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei len = *(GLsizei *)(pc + 4);
+
+ GLdouble params[4];
+ CALL_GetProgramNamedParameterdvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ len,
+ (const GLubyte *)(pc + 8),
+ params
+ ) );
+ __glXSendReply(cl->client, params, 4, 8, GL_TRUE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDisp_GetProgramNamedParameterfvNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei len = *(GLsizei *)(pc + 4);
+
+ GLfloat params[4];
+ CALL_GetProgramNamedParameterfvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ len,
+ (const GLubyte *)(pc + 8),
+ params
+ ) );
+ __glXSendReply(cl->client, params, 4, 4, GL_TRUE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDisp_ProgramNamedParameter4dvNV(GLbyte * pc)
+{
+ const GLsizei len = *(GLsizei *)(pc + 36);
+
+#ifdef __GLX_ALIGN64
+ const GLuint cmdlen = 44 + __GLX_PAD(len) - 4;
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, cmdlen);
+ pc -= 4;
+ }
+#endif
+
+ CALL_ProgramNamedParameter4dvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 32),
+ len,
+ (const GLubyte *)(pc + 40),
+ (const GLdouble *)(pc + 0)
+ ) );
+}
+
+void __glXDisp_ProgramNamedParameter4fvNV(GLbyte * pc)
+{
+ const GLsizei len = *(GLsizei *)(pc + 4);
+
+ CALL_ProgramNamedParameter4fvNV( GET_DISPATCH(), (
+ *(GLuint *)(pc + 0),
+ len,
+ (const GLubyte *)(pc + 24),
+ (const GLfloat *)(pc + 8)
+ ) );
+}
+
+void __glXDisp_BindFramebufferEXT(GLbyte * pc)
+{
+ CALL_BindFramebufferEXT( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4)
+ ) );
+}
+
+void __glXDisp_BindRenderbufferEXT(GLbyte * pc)
+{
+ CALL_BindRenderbufferEXT( GET_DISPATCH(), (
+ *(GLenum *)(pc + 0),
+ *(GLuint *)(pc + 4)
+ ) );
+}
+
diff --git a/xorg-server/glx/indirect_dispatch.h b/xorg-server/glx/indirect_dispatch.h
index e6e3fdacf..a0925dd0d 100644
--- a/xorg-server/glx/indirect_dispatch.h
+++ b/xorg-server/glx/indirect_dispatch.h
@@ -1,1359 +1,1054 @@
-/* DO NOT EDIT - This file generated automatically by glX_proto_recv.py (from Mesa) script */
-
-/*
- * (C) Copyright IBM Corporation 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
- * 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 THEIR 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.
- */
-
-#if !defined( _INDIRECT_DISPATCH_H_ )
-#define _INDIRECT_DISPATCH_H_
-
-#include <X11/Xfuncproto.h>
-
-struct __GLXclientStateRec;
-
-extern _X_HIDDEN void __glXDisp_MapGrid1d(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MapGrid1d(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_MapGrid1f(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MapGrid1f(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_NewList(struct __GLXclientStateRec *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_NewList(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_LoadIdentity(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_LoadIdentity(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ConvolutionFilter1D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ConvolutionFilter1D(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_RasterPos3dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_RasterPos3dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexCoord1iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexCoord1iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexCoord4sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexCoord4sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib3dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib3dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib4ubvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib4ubvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Histogram(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Histogram(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetMapfv(struct __GLXclientStateRec *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetMapfv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_RasterPos4dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_RasterPos4dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_PolygonStipple(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PolygonStipple(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_MultiTexCoord1dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MultiTexCoord1dv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetPixelMapfv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetPixelMapfv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_Color3uiv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Color3uiv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_IsEnabled(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_IsEnabled(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_VertexAttrib4svNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib4svNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_EvalCoord2fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_EvalCoord2fv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_DestroyPixmap(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_DestroyPixmap(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_FramebufferTexture1D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_FramebufferTexture1D(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetMapiv(struct __GLXclientStateRec *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetMapiv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_SwapBuffers(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_SwapBuffers(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_Indexubv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Indexubv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_Render(struct __GLXclientStateRec *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_Render(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_TexImage3D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexImage3D(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_MakeContextCurrent(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_MakeContextCurrent(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetFBConfigs(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetFBConfigs(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_VertexAttrib1sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib1sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Color3ubv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Color3ubv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Vertex3dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Vertex3dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_LightModeliv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_LightModeliv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttribs1dvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttribs1dvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Normal3bv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Normal3bv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_VendorPrivate(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_VendorPrivate(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_TexGeniv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexGeniv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Vertex3iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Vertex3iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_RenderbufferStorage(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_RenderbufferStorage(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_CopyConvolutionFilter1D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_CopyConvolutionFilter1D(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GenQueries(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GenQueries(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_BlendColor(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_BlendColor(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_CompressedTexImage3D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_CompressedTexImage3D(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Scalef(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Scalef(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Normal3iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Normal3iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_SecondaryColor3dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_SecondaryColor3dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_PassThrough(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PassThrough(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Viewport(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Viewport(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_CopyTexSubImage2D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_CopyTexSubImage2D(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_DepthRange(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_DepthRange(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetQueryiv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetQueryiv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_ResetHistogram(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ResetHistogram(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_CompressedTexSubImage2D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_CompressedTexSubImage2D(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_SecondaryColor3uiv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_SecondaryColor3uiv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexCoord2sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexCoord2sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Vertex4dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Vertex4dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib4Nbv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib4Nbv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttribs2svNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttribs2svNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Color3sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Color3sv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetConvolutionParameteriv(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetConvolutionParameteriv(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetConvolutionParameterivEXT(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetConvolutionParameterivEXT(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_Vertex2dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Vertex2dv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetVisualConfigs(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetVisualConfigs(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_DeleteRenderbuffers(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_DeleteRenderbuffers(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_MultiTexCoord1fvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MultiTexCoord1fvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexCoord3iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexCoord3iv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_CopyContext(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_CopyContext(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_VertexAttrib4usv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib4usv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Color3fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Color3fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_MultiTexCoord4sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MultiTexCoord4sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_PointSize(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PointSize(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_PopName(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PopName(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib2dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib2dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib4Nusv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib4Nusv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Vertex4sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Vertex4sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ClampColor(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ClampColor(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetTexEnvfv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetTexEnvfv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_LineStipple(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_LineStipple(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexEnvi(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexEnvi(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetClipPlane(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetClipPlane(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_VertexAttribs3dvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttribs3dvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttribs4fvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttribs4fvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Scaled(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Scaled(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_CallLists(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_CallLists(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_AlphaFunc(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_AlphaFunc(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexCoord2iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexCoord2iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Rotated(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Rotated(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_ReadPixels(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_ReadPixels(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_EdgeFlagv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_EdgeFlagv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_CompressedTexSubImage1D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_CompressedTexSubImage1D(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexParameterf(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexParameterf(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexParameteri(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexParameteri(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_DestroyContext(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_DestroyContext(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_DrawPixels(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_DrawPixels(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_MultiTexCoord3sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MultiTexCoord3sv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GenLists(struct __GLXclientStateRec *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GenLists(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_MapGrid2d(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MapGrid2d(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_MapGrid2f(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MapGrid2f(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Scissor(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Scissor(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Fogf(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Fogf(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexSubImage1D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexSubImage1D(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Color4usv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Color4usv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Fogi(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Fogi(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_RasterPos3iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_RasterPos3iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_PixelMapfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PixelMapfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Color3usv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Color3usv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_MultiTexCoord2iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MultiTexCoord2iv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_AreTexturesResident(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_AreTexturesResident(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_AreTexturesResidentEXT(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_AreTexturesResidentEXT(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_Color3bv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Color3bv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib2fvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib2fvARB(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetProgramLocalParameterfvARB(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetProgramLocalParameterfvARB(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_ColorTable(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ColorTable(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Accum(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Accum(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetTexImage(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetTexImage(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_ConvolutionFilter2D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ConvolutionFilter2D(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_Finish(struct __GLXclientStateRec *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_Finish(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_ClearStencil(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ClearStencil(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttribs4ubvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttribs4ubvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ConvolutionParameteriv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ConvolutionParameteriv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_RasterPos2fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_RasterPos2fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexCoord1fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexCoord1fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_MultiTexCoord4dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MultiTexCoord4dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ProgramEnvParameter4fvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ProgramEnvParameter4fvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_RasterPos4fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_RasterPos4fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ClearIndex(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ClearIndex(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_LoadMatrixd(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_LoadMatrixd(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_PushMatrix(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PushMatrix(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ConvolutionParameterfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ConvolutionParameterfv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetTexGendv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetTexGendv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_EndList(struct __GLXclientStateRec *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_EndList(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_EvalCoord1fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_EvalCoord1fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_EvalMesh2(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_EvalMesh2(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Vertex4fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Vertex4fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttribs3fvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttribs3fvNV(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetProgramEnvParameterdvARB(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetProgramEnvParameterdvARB(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetFBConfigsSGIX(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetFBConfigsSGIX(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_BindFramebuffer(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_BindFramebuffer(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_CreateNewContext(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_CreateNewContext(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetMinmax(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetMinmax(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetMinmaxEXT(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetMinmaxEXT(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_BlendFuncSeparate(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_BlendFuncSeparate(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Normal3fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Normal3fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ProgramEnvParameter4dvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ProgramEnvParameter4dvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_End(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_End(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttribs3svNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttribs3svNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttribs2dvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttribs2dvNV(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_CreateContextAttribsARB(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_CreateContextAttribsARB(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_BindTexture(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_BindTexture(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib2sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib2sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexSubImage2D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexSubImage2D(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexGenfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexGenfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib4dvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib4dvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_DrawBuffers(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_DrawBuffers(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_CreateContextWithConfigSGIX(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_CreateContextWithConfigSGIX(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_CopySubBufferMESA(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_CopySubBufferMESA(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_BlendEquation(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_BlendEquation(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetError(struct __GLXclientStateRec *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetError(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_TexCoord3dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexCoord3dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Indexdv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Indexdv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_PushName(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PushName(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib4fvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib4fvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib1dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib1dv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_CreateGLXPbufferSGIX(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_CreateGLXPbufferSGIX(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_IsRenderbuffer(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_IsRenderbuffer(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_DepthMask(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_DepthMask(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Color4iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Color4iv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetMaterialiv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetMaterialiv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_StencilOp(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_StencilOp(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_FramebufferTextureLayer(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_FramebufferTextureLayer(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Ortho(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Ortho(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexEnvfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexEnvfv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_QueryServerString(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_QueryServerString(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_LoadMatrixf(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_LoadMatrixf(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Color4bv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Color4bv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetCompressedTexImage(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetCompressedTexImage(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_VertexAttrib2fvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib2fvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ProgramLocalParameter4dvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ProgramLocalParameter4dvARB(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_DeleteLists(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_DeleteLists(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_LogicOp(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_LogicOp(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_RenderbufferStorageMultisample(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_RenderbufferStorageMultisample(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexCoord4fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexCoord4fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ActiveTexture(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ActiveTexture(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_SecondaryColor3bv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_SecondaryColor3bv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_WaitX(struct __GLXclientStateRec *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_WaitX(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_VertexAttrib1dvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib1dvNV(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GenTextures(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GenTextures(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_GenTexturesEXT(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GenTexturesEXT(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetDrawableAttributes(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetDrawableAttributes(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_RasterPos2sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_RasterPos2sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Color4ubv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Color4ubv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_DrawBuffer(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_DrawBuffer(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexCoord2fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexCoord2fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_MultiTexCoord4iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MultiTexCoord4iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexCoord1sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexCoord1sv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_CreateGLXPixmapWithConfigSGIX(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_CreateGLXPixmapWithConfigSGIX(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_DepthFunc(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_DepthFunc(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_PixelMapusv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PixelMapusv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_BlendFunc(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_BlendFunc(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_WaitGL(struct __GLXclientStateRec *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_WaitGL(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_CompressedTexImage2D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_CompressedTexImage2D(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_Flush(struct __GLXclientStateRec *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_Flush(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_Color4uiv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Color4uiv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_MultiTexCoord1sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MultiTexCoord1sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_RasterPos3sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_RasterPos3sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_PushAttrib(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PushAttrib(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_DestroyPbuffer(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_DestroyPbuffer(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_TexParameteriv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexParameteriv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_QueryExtensionsString(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_QueryExtensionsString(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_RasterPos3fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_RasterPos3fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_CopyTexSubImage3D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_CopyTexSubImage3D(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetColorTable(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetColorTable(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetColorTableSGI(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetColorTableSGI(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_Indexiv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Indexiv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_CreateContext(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_CreateContext(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_CopyColorTable(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_CopyColorTable(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_PointParameterfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PointParameterfv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetHistogramParameterfv(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetHistogramParameterfv(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetHistogramParameterfvEXT(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetHistogramParameterfvEXT(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_Frustum(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Frustum(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetString(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetString(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_CreateGLXPixmap(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_CreateGLXPixmap(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_TexEnvf(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexEnvf(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GenProgramsARB(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GenProgramsARB(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_DeleteTextures(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_DeleteTextures(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_DeleteTexturesEXT(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_DeleteTexturesEXT(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetTexLevelParameteriv(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetTexLevelParameteriv(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_ClearAccum(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ClearAccum(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_QueryVersion(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_QueryVersion(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_TexCoord4iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexCoord4iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_FramebufferTexture3D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_FramebufferTexture3D(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetDrawableAttributesSGIX(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetDrawableAttributesSGIX(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_ColorTableParameteriv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ColorTableParameteriv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_CopyTexImage2D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_CopyTexImage2D(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_MultiTexCoord2dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MultiTexCoord2dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Lightfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Lightfv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetFramebufferAttachmentParameteriv(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetFramebufferAttachmentParameteriv(struct
- __GLXclientStateRec
- *,
- GLbyte
- *);
-extern _X_HIDDEN void __glXDisp_ClearDepth(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ClearDepth(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ColorSubTable(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ColorSubTable(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Color4fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Color4fv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_CreatePixmap(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_CreatePixmap(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_Lightiv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Lightiv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetTexParameteriv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetTexParameteriv(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_VertexAttrib3sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib3sv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_IsQuery(struct __GLXclientStateRec *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_IsQuery(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_Rectdv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Rectdv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib4dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib4dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Materialiv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Materialiv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_SecondaryColor3fvEXT(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_SecondaryColor3fvEXT(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_PolygonMode(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PolygonMode(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_SecondaryColor3iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_SecondaryColor3iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib4Niv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib4Niv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetProgramStringARB(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetProgramStringARB(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_TexGeni(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexGeni(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexGenf(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexGenf(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexGend(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexGend(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetPolygonStipple(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetPolygonStipple(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_VertexAttrib2svNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib2svNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttribs1fvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttribs1fvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib2dvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib2dvNV(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_DestroyWindow(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_DestroyWindow(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_Color4sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Color4sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_PixelZoom(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PixelZoom(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ColorTableParameterfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ColorTableParameterfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_PixelMapuiv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PixelMapuiv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Color3dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Color3dv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_IsTexture(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_IsTexture(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_IsTextureEXT(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_IsTextureEXT(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_VertexAttrib4fvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib4fvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_BeginQuery(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_BeginQuery(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_SetClientInfo2ARB(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_SetClientInfo2ARB(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetMapdv(struct __GLXclientStateRec *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetMapdv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_MultiTexCoord3iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MultiTexCoord3iv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_DestroyGLXPixmap(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_DestroyGLXPixmap(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_PixelStoref(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_PixelStoref(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_PrioritizeTextures(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PrioritizeTextures(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_PixelStorei(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_PixelStorei(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_DestroyGLXPbufferSGIX(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_DestroyGLXPbufferSGIX(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_EvalCoord2dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_EvalCoord2dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ColorMaterial(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ColorMaterial(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttribs1svNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttribs1svNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib1fvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib1fvNV(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetSeparableFilter(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetSeparableFilter(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetSeparableFilterEXT(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetSeparableFilterEXT(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_FeedbackBuffer(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_FeedbackBuffer(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_RasterPos2iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_RasterPos2iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexImage1D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexImage1D(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_FrontFace(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_FrontFace(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_RenderLarge(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_RenderLarge(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_PolygonOffset(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PolygonOffset(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Normal3dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Normal3dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Lightf(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Lightf(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_MatrixMode(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MatrixMode(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetPixelMapusv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetPixelMapusv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_Lighti(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Lighti(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GenFramebuffers(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GenFramebuffers(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_IsFramebuffer(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_IsFramebuffer(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_ChangeDrawableAttributesSGIX(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_ChangeDrawableAttributesSGIX(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_BlendEquationSeparate(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_BlendEquationSeparate(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_CreatePbuffer(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_CreatePbuffer(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetDoublev(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetDoublev(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_MultMatrixd(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MultMatrixd(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_MultMatrixf(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MultMatrixf(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_CompressedTexImage1D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_CompressedTexImage1D(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_MultiTexCoord4fvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MultiTexCoord4fvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_RasterPos4sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_RasterPos4sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib3fvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib3fvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ClearColor(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ClearColor(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_IsDirect(struct __GLXclientStateRec *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_IsDirect(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_VertexAttrib1svNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib1svNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_SecondaryColor3ubv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_SecondaryColor3ubv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_PointParameteri(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PointParameteri(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_PointParameterf(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PointParameterf(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexEnviv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexEnviv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexSubImage3D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexSubImage3D(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib4iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib4iv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_SwapIntervalSGI(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_SwapIntervalSGI(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetColorTableParameterfv(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetColorTableParameterfv(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetColorTableParameterfvSGI(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetColorTableParameterfvSGI(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_FramebufferTexture2D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_FramebufferTexture2D(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Bitmap(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Bitmap(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetTexLevelParameterfv(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetTexLevelParameterfv(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_CheckFramebufferStatus(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_CheckFramebufferStatus(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_Vertex2sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Vertex2sv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetIntegerv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetIntegerv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_BindProgramARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_BindProgramARB(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetProgramEnvParameterfvARB(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetProgramEnvParameterfvARB(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_VertexAttrib3svNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib3svNV(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetTexEnviv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetTexEnviv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_VendorPrivateWithReply(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_VendorPrivateWithReply(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_SeparableFilter2D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_SeparableFilter2D(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetQueryObjectuiv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetQueryObjectuiv(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_Map1d(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Map1d(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Map1f(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Map1f(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexImage2D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexImage2D(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_ChangeDrawableAttributes(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_ChangeDrawableAttributes(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetMinmaxParameteriv(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetMinmaxParameteriv(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetMinmaxParameterivEXT(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetMinmaxParameterivEXT(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_PixelTransferf(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PixelTransferf(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_CopyTexImage1D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_CopyTexImage1D(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_RasterPos2dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_RasterPos2dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Fogiv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Fogiv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_EndQuery(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_EndQuery(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexCoord1dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexCoord1dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_PixelTransferi(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PixelTransferi(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib3fvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib3fvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Clear(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Clear(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ReadBuffer(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ReadBuffer(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ConvolutionParameteri(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ConvolutionParameteri(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib4sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib4sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_LightModeli(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_LightModeli(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ListBase(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ListBase(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ConvolutionParameterf(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ConvolutionParameterf(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetColorTableParameteriv(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetColorTableParameteriv(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetColorTableParameterivSGI(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetColorTableParameterivSGI(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_ReleaseTexImageEXT(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_ReleaseTexImageEXT(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_CallList(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_CallList(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_GenerateMipmap(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_GenerateMipmap(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Rectiv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Rectiv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_MultiTexCoord1iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MultiTexCoord1iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Vertex2fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Vertex2fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Vertex3sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Vertex3sv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetQueryObjectiv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetQueryObjectiv(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_SetClientInfoARB(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_SetClientInfoARB(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_BindTexImageEXT(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_BindTexImageEXT(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_ProgramLocalParameter4fvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ProgramLocalParameter4fvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_EvalMesh1(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_EvalMesh1(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_CompressedTexSubImage3D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_CompressedTexSubImage3D(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Vertex2iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Vertex2iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_LineWidth(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_LineWidth(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexGendv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexGendv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ResetMinmax(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ResetMinmax(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetConvolutionParameterfv(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetConvolutionParameterfv(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetConvolutionParameterfvEXT(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetConvolutionParameterfvEXT(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetMaterialfv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetMaterialfv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_WindowPos3fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_WindowPos3fv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_DeleteProgramsARB(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_DeleteProgramsARB(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_UseXFont(struct __GLXclientStateRec *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_UseXFont(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_ShadeModel(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ShadeModel(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Materialfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Materialfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexCoord3fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexCoord3fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_FogCoordfvEXT(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_FogCoordfvEXT(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_DrawArrays(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_DrawArrays(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_SampleCoverage(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_SampleCoverage(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Color3iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Color3iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib4ubv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib4ubv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetProgramLocalParameterdvARB(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetProgramLocalParameterdvARB(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetHistogramParameteriv(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetHistogramParameteriv(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetHistogramParameterivEXT(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetHistogramParameterivEXT(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_PointParameteriv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PointParameteriv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Rotatef(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Rotatef(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetProgramivARB(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetProgramivARB(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_BindRenderbuffer(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_BindRenderbuffer(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_EvalPoint2(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_EvalPoint2(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_EvalPoint1(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_EvalPoint1(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_PopMatrix(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PopMatrix(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_DeleteFramebuffers(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_DeleteFramebuffers(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_MakeCurrentReadSGI(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_MakeCurrentReadSGI(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetTexGeniv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetTexGeniv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_MakeCurrent(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_MakeCurrent(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_FramebufferRenderbuffer(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_FramebufferRenderbuffer(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_IsProgramARB(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_IsProgramARB(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_VertexAttrib4uiv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib4uiv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib4Nsv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib4Nsv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Map2d(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Map2d(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Map2f(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Map2f(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ProgramStringARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ProgramStringARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib4bv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib4bv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetConvolutionFilter(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetConvolutionFilter(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetConvolutionFilterEXT(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetConvolutionFilterEXT(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_VertexAttribs4dvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttribs4dvNV(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetTexGenfv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetTexGenfv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetHistogram(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetHistogram(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetHistogramEXT(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetHistogramEXT(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_ActiveStencilFaceEXT(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ActiveStencilFaceEXT(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Materialf(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Materialf(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Materiali(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Materiali(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Indexsv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Indexsv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib1fvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib1fvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_LightModelfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_LightModelfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexCoord2dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexCoord2dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_EvalCoord1dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_EvalCoord1dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Translated(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Translated(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Translatef(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Translatef(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_StencilMask(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_StencilMask(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_CreateWindow(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_CreateWindow(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetLightiv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetLightiv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_IsList(struct __GLXclientStateRec *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_IsList(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_RenderMode(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_RenderMode(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_LoadName(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_LoadName(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_CopyTexSubImage1D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_CopyTexSubImage1D(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_CullFace(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_CullFace(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_QueryContextInfoEXT(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_QueryContextInfoEXT(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_VertexAttribs2fvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttribs2fvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_StencilFunc(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_StencilFunc(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_CopyPixels(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_CopyPixels(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Rectsv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Rectsv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_CopyConvolutionFilter2D(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_CopyConvolutionFilter2D(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexParameterfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexParameterfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib4Nubv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib4Nubv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_ClipPlane(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ClipPlane(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_SecondaryColor3usv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_SecondaryColor3usv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_MultiTexCoord3dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MultiTexCoord3dv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetPixelMapuiv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetPixelMapuiv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_Indexfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Indexfv(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_QueryContext(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_QueryContext(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_MultiTexCoord3fvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MultiTexCoord3fvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_BlitFramebuffer(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_BlitFramebuffer(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_IndexMask(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_IndexMask(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetFloatv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetFloatv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_TexCoord3sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexCoord3sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_FogCoorddv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_FogCoorddv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_PopAttrib(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_PopAttrib(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Fogfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Fogfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_InitNames(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_InitNames(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Normal3sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Normal3sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Minmax(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Minmax(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_DeleteQueries(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_DeleteQueries(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetBooleanv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetBooleanv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_Hint(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Hint(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Color4dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Color4dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_CopyColorSubTable(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_CopyColorSubTable(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_VertexAttrib3dvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib3dvNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Vertex4iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Vertex4iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_TexCoord4dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_TexCoord4dv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Begin(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Begin(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_ClientInfo(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_ClientInfo(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_Rectfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Rectfv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_LightModelf(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_LightModelf(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetTexParameterfv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetTexParameterfv(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetLightfv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetLightfv(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_Disable(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Disable(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_MultiTexCoord2fvARB(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MultiTexCoord2fvARB(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_SelectBuffer(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_SelectBuffer(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN void __glXDisp_ColorMask(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_ColorMask(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_RasterPos4iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_RasterPos4iv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Enable(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Enable(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GetRenderbufferParameteriv(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetRenderbufferParameteriv(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_VertexAttribs4svNV(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttribs4svNV(GLbyte * pc);
-extern _X_HIDDEN int __glXDisp_GenRenderbuffers(struct __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GenRenderbuffers(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetMinmaxParameterfv(struct __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetMinmaxParameterfv(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDisp_GetMinmaxParameterfvEXT(struct
- __GLXclientStateRec *,
- GLbyte *);
-extern _X_HIDDEN int __glXDispSwap_GetMinmaxParameterfvEXT(struct
- __GLXclientStateRec
- *, GLbyte *);
-extern _X_HIDDEN void __glXDisp_VertexAttrib4Nuiv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_VertexAttrib4Nuiv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_Vertex3fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_Vertex3fv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_SecondaryColor3sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_SecondaryColor3sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDisp_MultiTexCoord2sv(GLbyte * pc);
-extern _X_HIDDEN void __glXDispSwap_MultiTexCoord2sv(GLbyte * pc);
-
-#endif /* !defined( _INDIRECT_DISPATCH_H_ ) */
+/* DO NOT EDIT - This file generated automatically by glX_proto_recv.py (from Mesa) script */
+
+/*
+ * (C) Copyright IBM Corporation 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
+ * 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 THEIR 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.
+ */
+
+#if !defined( _INDIRECT_DISPATCH_H_ )
+# define _INDIRECT_DISPATCH_H_
+
+# include <X11/Xfuncproto.h>
+
+struct __GLXclientStateRec;
+
+extern _X_HIDDEN void __glXDisp_MapGrid1d(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MapGrid1d(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_MapGrid1f(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MapGrid1f(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_NewList(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_NewList(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_LoadIdentity(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_LoadIdentity(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ConvolutionFilter1D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ConvolutionFilter1D(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_RasterPos3dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_RasterPos3dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexCoord1iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexCoord1iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexCoord4sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexCoord4sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TrackMatrixNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TrackMatrixNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib3dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib3dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib4ubvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib4ubvNV(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetProgramNamedParameterdvNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetProgramNamedParameterdvNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Histogram(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Histogram(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetMapfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetMapfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_RasterPos4dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_RasterPos4dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_PolygonStipple(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PolygonStipple(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_MultiTexCoord1dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MultiTexCoord1dv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetPixelMapfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetPixelMapfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Color3uiv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Color3uiv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_IsEnabled(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_IsEnabled(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_VertexAttrib4svNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib4svNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_EvalCoord2fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_EvalCoord2fv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_DestroyPixmap(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_DestroyPixmap(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_FramebufferTexture1D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_FramebufferTexture1D(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetMapiv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetMapiv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_SwapBuffers(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_SwapBuffers(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Indexubv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Indexubv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_Render(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_Render(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_TexImage3D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexImage3D(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_MakeContextCurrent(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_MakeContextCurrent(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetFBConfigs(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetFBConfigs(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_VertexAttrib1sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib1sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Color3ubv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Color3ubv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Vertex3dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Vertex3dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_LightModeliv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_LightModeliv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttribs1dvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttribs1dvNV(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetVertexAttribfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetVertexAttribfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Normal3bv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Normal3bv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_VendorPrivate(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_VendorPrivate(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_CreateGLXPixmapWithConfigSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_CreateGLXPixmapWithConfigSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Vertex3iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Vertex3iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_RenderbufferStorage(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_RenderbufferStorage(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_CopyConvolutionFilter1D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_CopyConvolutionFilter1D(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GenQueries(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GenQueries(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_BlendColor(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_BlendColor(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_CompressedTexImage3D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_CompressedTexImage3D(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Scalef(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Scalef(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Normal3iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Normal3iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_SecondaryColor3dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_SecondaryColor3dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_PassThrough(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PassThrough(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Viewport(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Viewport(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_CopyTexSubImage2D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_CopyTexSubImage2D(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_DepthRange(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_DepthRange(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetQueryiv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetQueryiv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_ResetHistogram(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ResetHistogram(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetProgramNamedParameterfvNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetProgramNamedParameterfvNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_CompressedTexSubImage2D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_CompressedTexSubImage2D(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_SecondaryColor3uiv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_SecondaryColor3uiv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexCoord2sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexCoord2sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Vertex4dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Vertex4dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib4Nbv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib4Nbv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttribs2svNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttribs2svNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Color3sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Color3sv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetConvolutionParameteriv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetConvolutionParameteriv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetConvolutionParameterivEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetConvolutionParameterivEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Vertex2dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Vertex2dv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetVisualConfigs(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetVisualConfigs(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_DeleteRenderbuffers(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_DeleteRenderbuffers(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_MultiTexCoord1fvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MultiTexCoord1fvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexCoord3iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexCoord3iv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_CopyContext(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_CopyContext(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_VertexAttrib4usv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib4usv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Color3fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Color3fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_MultiTexCoord4sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MultiTexCoord4sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_PointSize(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PointSize(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_PopName(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PopName(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib2dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib2dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib4Nusv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib4Nusv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Vertex4sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Vertex4sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ClampColor(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ClampColor(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetTexEnvfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetTexEnvfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_LineStipple(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_LineStipple(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexEnvi(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexEnvi(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetClipPlane(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetClipPlane(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_VertexAttribs3dvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttribs3dvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_LightModeli(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_LightModeli(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttribs4fvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttribs4fvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Scaled(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Scaled(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_CallLists(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_CallLists(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_AlphaFunc(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_AlphaFunc(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexCoord2iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexCoord2iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Rotated(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Rotated(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_ReadPixels(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_ReadPixels(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_EdgeFlagv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_EdgeFlagv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_CompressedTexSubImage1D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_CompressedTexSubImage1D(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexParameterf(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexParameterf(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexParameteri(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexParameteri(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_DestroyContext(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_DestroyContext(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_DrawPixels(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_DrawPixels(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_MultiTexCoord3sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MultiTexCoord3sv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GenLists(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GenLists(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_MapGrid2d(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MapGrid2d(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_MapGrid2f(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MapGrid2f(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Scissor(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Scissor(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Fogf(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Fogf(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexSubImage1D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexSubImage1D(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Color4usv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Color4usv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Fogi(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Fogi(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_RasterPos3iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_RasterPos3iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_PixelMapfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PixelMapfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Color3usv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Color3usv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_MultiTexCoord2iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MultiTexCoord2iv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_AreTexturesResident(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_AreTexturesResident(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_AreTexturesResidentEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_AreTexturesResidentEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Color3bv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Color3bv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib2fvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib2fvARB(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetProgramLocalParameterfvARB(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetProgramLocalParameterfvARB(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_ColorTable(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ColorTable(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Accum(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Accum(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetTexImage(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetTexImage(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_ConvolutionFilter2D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ConvolutionFilter2D(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_Finish(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_Finish(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_ClearStencil(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ClearStencil(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttribs4ubvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttribs4ubvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ConvolutionParameteriv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ConvolutionParameteriv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_RasterPos2fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_RasterPos2fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexCoord1fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexCoord1fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_MultiTexCoord4dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MultiTexCoord4dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ProgramEnvParameter4fvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ProgramEnvParameter4fvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_RasterPos4fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_RasterPos4fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ClearIndex(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ClearIndex(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_LoadMatrixd(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_LoadMatrixd(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_PushMatrix(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PushMatrix(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ConvolutionParameterfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ConvolutionParameterfv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetTexGendv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetTexGendv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_LoadProgramNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_LoadProgramNV(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_EndList(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_EndList(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_EvalCoord1fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_EvalCoord1fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_EvalMesh2(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_EvalMesh2(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Vertex4fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Vertex4fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttribs3fvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttribs3fvNV(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetProgramEnvParameterdvARB(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetProgramEnvParameterdvARB(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetFBConfigsSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetFBConfigsSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_BindFramebuffer(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_BindFramebuffer(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_CreateNewContext(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_CreateNewContext(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetMinmax(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetMinmax(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetMinmaxEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetMinmaxEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_BlendFuncSeparate(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_BlendFuncSeparate(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetVertexAttribdvNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetVertexAttribdvNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Normal3fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Normal3fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ProgramEnvParameter4dvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ProgramEnvParameter4dvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_End(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_End(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttribs3svNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttribs3svNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttribs2dvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttribs2dvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_MultiTexCoord3fvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MultiTexCoord3fvARB(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetProgramParameterfvNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetProgramParameterfvNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_BindTexture(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_BindTexture(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib2sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib2sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexSubImage2D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexSubImage2D(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexGenfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexGenfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib4dvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib4dvNV(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetVertexAttribiv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetVertexAttribiv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_DrawBuffers(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_DrawBuffers(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_CreateContextWithConfigSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_CreateContextWithConfigSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_CopySubBufferMESA(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_CopySubBufferMESA(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_BlendEquation(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_BlendEquation(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetError(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetError(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_TexCoord3dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexCoord3dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Indexdv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Indexdv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_PushName(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PushName(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ProgramNamedParameter4fvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ProgramNamedParameter4fvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib4fvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib4fvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib1dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib1dv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_CreateGLXPbufferSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_CreateGLXPbufferSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_IsRenderbuffer(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_IsRenderbuffer(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_DepthMask(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_DepthMask(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Color4iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Color4iv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetMaterialiv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetMaterialiv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_StencilOp(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_StencilOp(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_FramebufferTextureLayer(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_FramebufferTextureLayer(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexEnvfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexEnvfv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_QueryServerString(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_QueryServerString(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_LoadMatrixf(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_LoadMatrixf(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Color4bv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Color4bv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetCompressedTexImage(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetCompressedTexImage(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_VertexAttrib2fvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib2fvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ProgramLocalParameter4dvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ProgramLocalParameter4dvARB(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_DeleteLists(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_DeleteLists(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_LogicOp(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_LogicOp(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_RenderbufferStorageMultisample(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_RenderbufferStorageMultisample(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexCoord4fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexCoord4fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ActiveTexture(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ActiveTexture(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_SecondaryColor3bv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_SecondaryColor3bv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_WaitX(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_WaitX(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_VertexAttrib1dvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib1dvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib1fvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib1fvNV(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GenTextures(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GenTextures(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GenTexturesEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GenTexturesEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetDrawableAttributes(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetDrawableAttributes(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_RasterPos2sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_RasterPos2sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Color4ubv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Color4ubv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_DrawBuffer(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_DrawBuffer(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexCoord2fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexCoord2fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_MultiTexCoord4iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MultiTexCoord4iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexCoord1sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexCoord1sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexGeniv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexGeniv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_DepthFunc(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_DepthFunc(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_PixelMapusv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PixelMapusv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_BlendFunc(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_BlendFunc(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_WaitGL(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_WaitGL(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_CompressedTexImage2D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_CompressedTexImage2D(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ProgramNamedParameter4dvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ProgramNamedParameter4dvNV(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_Flush(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_Flush(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Color4uiv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Color4uiv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_MultiTexCoord1sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MultiTexCoord1sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_RasterPos3sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_RasterPos3sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_BindFramebufferEXT(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_BindFramebufferEXT(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_PushAttrib(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PushAttrib(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_DestroyPbuffer(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_DestroyPbuffer(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_TexParameteriv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexParameteriv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_QueryExtensionsString(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_QueryExtensionsString(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_RasterPos3fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_RasterPos3fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_CopyTexSubImage3D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_CopyTexSubImage3D(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetColorTable(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetColorTable(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetColorTableSGI(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetColorTableSGI(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Indexiv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Indexiv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_CreateContext(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_CreateContext(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_CopyColorTable(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_CopyColorTable(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_PointParameterfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PointParameterfv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetHistogramParameterfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetHistogramParameterfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetHistogramParameterfvEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetHistogramParameterfvEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Frustum(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Frustum(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetString(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetString(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_CreateGLXPixmap(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_CreateGLXPixmap(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_TexEnvf(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexEnvf(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GenProgramsARB(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GenProgramsARB(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_DeleteTextures(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_DeleteTextures(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_DeleteTexturesEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_DeleteTexturesEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetTexLevelParameteriv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetTexLevelParameteriv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_ClearAccum(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ClearAccum(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_QueryVersion(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_QueryVersion(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_TexCoord4iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexCoord4iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_FramebufferTexture3D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_FramebufferTexture3D(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetDrawableAttributesSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetDrawableAttributesSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetProgramParameterdvNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetProgramParameterdvNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_ColorTableParameteriv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ColorTableParameteriv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_CopyTexImage2D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_CopyTexImage2D(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_MultiTexCoord2dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MultiTexCoord2dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Lightfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Lightfv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetFramebufferAttachmentParameteriv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetFramebufferAttachmentParameteriv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_ClearDepth(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ClearDepth(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ColorSubTable(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ColorSubTable(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Color4fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Color4fv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_CreatePixmap(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_CreatePixmap(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Lightiv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Lightiv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetTexParameteriv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetTexParameteriv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_VertexAttribs4dvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttribs4dvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib3sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib3sv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_IsQuery(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_IsQuery(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Rectdv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Rectdv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib4dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib4dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Materialiv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Materialiv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_SecondaryColor3fvEXT(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_SecondaryColor3fvEXT(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_PolygonMode(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PolygonMode(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_SecondaryColor3iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_SecondaryColor3iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib4Niv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib4Niv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetVertexAttribivNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetVertexAttribivNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetProgramStringARB(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetProgramStringARB(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_TexGeni(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexGeni(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexGenf(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexGenf(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexGend(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexGend(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetPolygonStipple(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetPolygonStipple(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetVertexAttribfvNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetVertexAttribfvNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_VertexAttrib2svNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib2svNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttribs1fvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttribs1fvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib2dvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib2dvNV(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_DestroyWindow(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_DestroyWindow(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Color4sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Color4sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_PixelZoom(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PixelZoom(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ColorTableParameterfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ColorTableParameterfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_PixelMapuiv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PixelMapuiv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Color3dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Color3dv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_IsTexture(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_IsTexture(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_IsTextureEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_IsTextureEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_VertexAttrib4fvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib4fvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_BeginQuery(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_BeginQuery(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetMapdv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetMapdv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_MultiTexCoord3iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MultiTexCoord3iv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_DestroyGLXPixmap(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_DestroyGLXPixmap(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_PixelStoref(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_PixelStoref(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_PrioritizeTextures(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PrioritizeTextures(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_PixelStorei(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_PixelStorei(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_DestroyGLXPbufferSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_DestroyGLXPbufferSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_EvalCoord2dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_EvalCoord2dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ColorMaterial(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ColorMaterial(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_SamplePatternSGIS(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_SamplePatternSGIS(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttribs1svNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttribs1svNV(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetSeparableFilter(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetSeparableFilter(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetSeparableFilterEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetSeparableFilterEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_RequestResidentProgramsNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_RequestResidentProgramsNV(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_FeedbackBuffer(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_FeedbackBuffer(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_RasterPos2iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_RasterPos2iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexImage1D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexImage1D(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_FrontFace(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_FrontFace(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_RenderLarge(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_RenderLarge(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_PolygonOffset(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PolygonOffset(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ExecuteProgramNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ExecuteProgramNV(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetVertexAttribdv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetVertexAttribdv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Normal3dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Normal3dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Lightf(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Lightf(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_MatrixMode(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MatrixMode(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetPixelMapusv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetPixelMapusv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Lighti(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Lighti(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GenFramebuffers(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GenFramebuffers(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_IsFramebuffer(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_IsFramebuffer(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_ChangeDrawableAttributesSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_ChangeDrawableAttributesSGIX(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_BlendEquationSeparate(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_BlendEquationSeparate(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_CreatePbuffer(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_CreatePbuffer(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetDoublev(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetDoublev(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_MultMatrixd(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MultMatrixd(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_MultMatrixf(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MultMatrixf(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_CompressedTexImage1D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_CompressedTexImage1D(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_MultiTexCoord4fvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MultiTexCoord4fvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_RasterPos4sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_RasterPos4sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib3fvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib3fvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ClearColor(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ClearColor(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_IsDirect(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_IsDirect(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_VertexAttrib1svNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib1svNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_SecondaryColor3ubv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_SecondaryColor3ubv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_PointParameteri(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PointParameteri(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_PointParameterf(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PointParameterf(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexEnviv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexEnviv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexSubImage3D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexSubImage3D(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib4iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib4iv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_SwapIntervalSGI(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_SwapIntervalSGI(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetColorTableParameterfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetColorTableParameterfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetColorTableParameterfvSGI(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetColorTableParameterfvSGI(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_FramebufferTexture2D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_FramebufferTexture2D(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Bitmap(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Bitmap(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetTexLevelParameterfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetTexLevelParameterfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_CheckFramebufferStatus(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_CheckFramebufferStatus(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Vertex2sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Vertex2sv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetIntegerv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetIntegerv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_BindProgramARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_BindProgramARB(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetProgramEnvParameterfvARB(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetProgramEnvParameterfvARB(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetTrackMatrixivNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetTrackMatrixivNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_VertexAttrib3svNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib3svNV(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetTexEnviv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetTexEnviv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_VendorPrivateWithReply(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_VendorPrivateWithReply(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_SeparableFilter2D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_SeparableFilter2D(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetQueryObjectuiv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetQueryObjectuiv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Map1d(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Map1d(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Map1f(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Map1f(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexImage2D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexImage2D(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetProgramivNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetProgramivNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_ChangeDrawableAttributes(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_ChangeDrawableAttributes(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetMinmaxParameteriv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetMinmaxParameteriv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetMinmaxParameterivEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetMinmaxParameterivEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_PixelTransferf(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PixelTransferf(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_CopyTexImage1D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_CopyTexImage1D(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_RasterPos2dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_RasterPos2dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Fogiv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Fogiv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_EndQuery(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_EndQuery(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexCoord1dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexCoord1dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_PixelTransferi(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PixelTransferi(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib3fvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib3fvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Clear(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Clear(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ReadBuffer(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ReadBuffer(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ConvolutionParameteri(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ConvolutionParameteri(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib4sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib4sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Ortho(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Ortho(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ListBase(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ListBase(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ConvolutionParameterf(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ConvolutionParameterf(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetColorTableParameteriv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetColorTableParameteriv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetColorTableParameterivSGI(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetColorTableParameterivSGI(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_ReleaseTexImageEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_ReleaseTexImageEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_CallList(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_CallList(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_GenerateMipmap(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_GenerateMipmap(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Rectiv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Rectiv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_MultiTexCoord1iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MultiTexCoord1iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Vertex2fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Vertex2fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_SampleMaskSGIS(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_SampleMaskSGIS(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_BindRenderbufferEXT(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_BindRenderbufferEXT(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Vertex3sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Vertex3sv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetQueryObjectiv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetQueryObjectiv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_BindTexImageEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_BindTexImageEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_ProgramLocalParameter4fvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ProgramLocalParameter4fvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_EvalMesh1(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_EvalMesh1(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_CompressedTexSubImage3D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_CompressedTexSubImage3D(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Vertex2iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Vertex2iv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetProgramStringNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetProgramStringNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_LineWidth(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_LineWidth(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexGendv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexGendv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ResetMinmax(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ResetMinmax(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetConvolutionParameterfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetConvolutionParameterfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetConvolutionParameterfvEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetConvolutionParameterfvEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetMaterialfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetMaterialfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_WindowPos3fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_WindowPos3fv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_DeleteProgramsARB(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_DeleteProgramsARB(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_UseXFont(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_UseXFont(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_ShadeModel(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ShadeModel(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Materialfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Materialfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexCoord3fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexCoord3fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_FogCoordfvEXT(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_FogCoordfvEXT(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_DrawArrays(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_DrawArrays(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_SampleCoverage(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_SampleCoverage(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Color3iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Color3iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib4ubv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib4ubv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetProgramLocalParameterdvARB(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetProgramLocalParameterdvARB(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetHistogramParameteriv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetHistogramParameteriv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetHistogramParameterivEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetHistogramParameterivEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_PointParameteriv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PointParameteriv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Rotatef(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Rotatef(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetProgramivARB(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetProgramivARB(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_BindRenderbuffer(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_BindRenderbuffer(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ProgramParameters4dvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ProgramParameters4dvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_EvalPoint2(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_EvalPoint2(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_EvalPoint1(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_EvalPoint1(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_PopMatrix(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PopMatrix(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_DeleteFramebuffers(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_DeleteFramebuffers(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_MakeCurrentReadSGI(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_MakeCurrentReadSGI(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetTexGeniv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetTexGeniv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_MakeCurrent(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_MakeCurrent(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_FramebufferRenderbuffer(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_FramebufferRenderbuffer(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_IsProgramARB(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_IsProgramARB(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_VertexAttrib4uiv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib4uiv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib4Nsv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib4Nsv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Map2d(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Map2d(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Map2f(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Map2f(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ProgramStringARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ProgramStringARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib4bv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib4bv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetConvolutionFilter(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetConvolutionFilter(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetConvolutionFilterEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetConvolutionFilterEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetTexGenfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetTexGenfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetHistogram(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetHistogram(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetHistogramEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetHistogramEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_ActiveStencilFaceEXT(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ActiveStencilFaceEXT(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Materialf(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Materialf(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Materiali(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Materiali(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Indexsv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Indexsv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib1fvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib1fvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_LightModelfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_LightModelfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexCoord2dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexCoord2dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ProgramParameters4fvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ProgramParameters4fvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_EvalCoord1dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_EvalCoord1dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Translated(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Translated(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Translatef(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Translatef(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_StencilMask(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_StencilMask(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_CreateWindow(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_CreateWindow(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetLightiv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetLightiv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_IsList(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_IsList(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_RenderMode(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_RenderMode(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_LoadName(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_LoadName(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_CopyTexSubImage1D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_CopyTexSubImage1D(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_CullFace(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_CullFace(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_QueryContextInfoEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_QueryContextInfoEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_VertexAttribs2fvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttribs2fvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_StencilFunc(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_StencilFunc(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_CopyPixels(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_CopyPixels(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Rectsv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Rectsv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_CopyConvolutionFilter2D(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_CopyConvolutionFilter2D(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexParameterfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexParameterfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib4Nubv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib4Nubv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_ClipPlane(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ClipPlane(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_SecondaryColor3usv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_SecondaryColor3usv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_MultiTexCoord3dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MultiTexCoord3dv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetPixelMapuiv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetPixelMapuiv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Indexfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Indexfv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_QueryContext(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_QueryContext(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_BlitFramebuffer(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_BlitFramebuffer(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_IndexMask(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_IndexMask(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetFloatv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetFloatv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_TexCoord3sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexCoord3sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_FogCoorddv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_FogCoorddv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_PopAttrib(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_PopAttrib(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Fogfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Fogfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_InitNames(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_InitNames(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Normal3sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Normal3sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Minmax(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Minmax(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_DeleteQueries(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_DeleteQueries(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetBooleanv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetBooleanv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Hint(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Hint(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Color4dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Color4dv(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_AreProgramsResidentNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_AreProgramsResidentNV(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_CopyColorSubTable(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_CopyColorSubTable(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_VertexAttrib3dvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib3dvNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Vertex4iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Vertex4iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_TexCoord4dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_TexCoord4dv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Begin(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Begin(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_ClientInfo(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_ClientInfo(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Rectfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Rectfv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_LightModelf(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_LightModelf(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetTexParameterfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetTexParameterfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetLightfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetLightfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_Disable(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Disable(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_MultiTexCoord2fvARB(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MultiTexCoord2fvARB(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_SelectBuffer(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_SelectBuffer(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_ColorMask(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_ColorMask(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_RasterPos4iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_RasterPos4iv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Enable(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Enable(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GetRenderbufferParameteriv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetRenderbufferParameteriv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_VertexAttribs4svNV(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttribs4svNV(GLbyte * pc);
+extern _X_HIDDEN int __glXDisp_GenRenderbuffers(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GenRenderbuffers(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetMinmaxParameterfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetMinmaxParameterfv(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDisp_GetMinmaxParameterfvEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN int __glXDispSwap_GetMinmaxParameterfvEXT(struct __GLXclientStateRec *, GLbyte *);
+extern _X_HIDDEN void __glXDisp_VertexAttrib4Nuiv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_VertexAttrib4Nuiv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_Vertex3fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_Vertex3fv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_SecondaryColor3sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_SecondaryColor3sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDisp_MultiTexCoord2sv(GLbyte * pc);
+extern _X_HIDDEN void __glXDispSwap_MultiTexCoord2sv(GLbyte * pc);
+
+#endif /* !defined( _INDIRECT_DISPATCH_H_ ) */
diff --git a/xorg-server/glx/indirect_dispatch_swap.c b/xorg-server/glx/indirect_dispatch_swap.c
index 974751461..ee53910bf 100644
--- a/xorg-server/glx/indirect_dispatch_swap.c
+++ b/xorg-server/glx/indirect_dispatch_swap.c
@@ -1,5454 +1,6123 @@
-/* DO NOT EDIT - This file generated automatically by glX_proto_recv.py (from Mesa) script */
-
-/*
- * (C) Copyright IBM Corporation 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
- * 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 THEIR 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.
- */
-
-#include <inttypes.h>
-#include "glxserver.h"
-#include "indirect_size.h"
-#include "indirect_size_get.h"
-#include "indirect_dispatch.h"
-#include "glxbyteorder.h"
-#include "indirect_util.h"
-#include "singlesize.h"
-
-#define __GLX_PAD(x) (((x) + 3) & ~3)
-
-typedef struct {
- __GLX_PIXEL_3D_HDR;
-} __GLXpixel3DHeader;
-
-extern GLboolean __glXErrorOccured(void);
-extern void __glXClearErrorOccured(void);
-
-static const unsigned dummy_answer[2] = { 0, 0 };
-
-static GLsizei
-bswap_CARD32(const void *src)
-{
- union {
- uint32_t dst;
- GLsizei ret;
- } x;
-
- x.dst = bswap_32(*(uint32_t *) src);
- return x.ret;
-}
-
-static GLshort
-bswap_CARD16(const void *src)
-{
- union {
- uint16_t dst;
- GLshort ret;
- } x;
-
- x.dst = bswap_16(*(uint16_t *) src);
- return x.ret;
-}
-
-static GLenum
-bswap_ENUM(const void *src)
-{
- union {
- uint32_t dst;
- GLenum ret;
- } x;
-
- x.dst = bswap_32(*(uint32_t *) src);
- return x.ret;
-}
-
-static GLsync
-bswap_CARD64(const void *src)
-{
- union {
- uint64_t dst;
- GLsync ret;
- } x;
-
- x.dst = bswap_64(*(uint64_t *) src);
- return x.ret;
-}
-
-static GLdouble
-bswap_FLOAT64(const void *src)
-{
- union {
- uint64_t dst;
- GLdouble ret;
- } x;
-
- x.dst = bswap_64(*(uint64_t *) src);
- return x.ret;
-}
-
-static GLfloat
-bswap_FLOAT32(const void *src)
-{
- union {
- uint32_t dst;
- GLfloat ret;
- } x;
-
- x.dst = bswap_32(*(uint32_t *) src);
- return x.ret;
-}
-
-static void *
-bswap_16_array(uint16_t * src, unsigned count)
-{
- unsigned i;
-
- for (i = 0; i < count; i++) {
- uint16_t temp = bswap_16(src[i]);
-
- src[i] = temp;
- }
-
- return src;
-}
-
-static void *
-bswap_32_array(uint32_t * src, unsigned count)
-{
- unsigned i;
-
- for (i = 0; i < count; i++) {
- uint32_t temp = bswap_32(src[i]);
-
- src[i] = temp;
- }
-
- return src;
-}
-
-static void *
-bswap_64_array(uint64_t * src, unsigned count)
-{
- unsigned i;
-
- for (i = 0; i < count; i++) {
- uint64_t temp = bswap_64(src[i]);
-
- src[i] = temp;
- }
-
- return src;
-}
-
-int
-__glXDispSwap_NewList(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- glNewList((GLuint) bswap_CARD32(pc + 0), (GLenum) bswap_ENUM(pc + 4));
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_EndList(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- glEndList();
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDispSwap_CallList(GLbyte * pc)
-{
- glCallList((GLuint) bswap_CARD32(pc + 0));
-}
-
-void
-__glXDispSwap_CallLists(GLbyte * pc)
-{
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 0);
- const GLenum type = (GLenum) bswap_ENUM(pc + 4);
- const GLvoid *lists;
-
- switch (type) {
- case GL_BYTE:
- case GL_UNSIGNED_BYTE:
- case GL_2_BYTES:
- case GL_3_BYTES:
- case GL_4_BYTES:
- lists = (const GLvoid *) (pc + 8);
- break;
- case GL_SHORT:
- case GL_UNSIGNED_SHORT:
- lists = (const GLvoid *) bswap_16_array((uint16_t *) (pc + 8), n);
- break;
- case GL_INT:
- case GL_UNSIGNED_INT:
- case GL_FLOAT:
- lists = (const GLvoid *) bswap_32_array((uint32_t *) (pc + 8), n);
- break;
- default:
- return;
- }
-
- glCallLists(n, type, lists);
-}
-
-int
-__glXDispSwap_DeleteLists(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- glDeleteLists((GLuint) bswap_CARD32(pc + 0),
- (GLsizei) bswap_CARD32(pc + 4));
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GenLists(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- GLuint retval;
-
- retval = glGenLists((GLsizei) bswap_CARD32(pc + 0));
- __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDispSwap_ListBase(GLbyte * pc)
-{
- glListBase((GLuint) bswap_CARD32(pc + 0));
-}
-
-void
-__glXDispSwap_Begin(GLbyte * pc)
-{
- glBegin((GLenum) bswap_ENUM(pc + 0));
-}
-
-void
-__glXDispSwap_Bitmap(GLbyte * pc)
-{
- const GLubyte *const bitmap = (const GLubyte *) ((pc + 44));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32(&hdr->rowLength));
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32(&hdr->skipRows));
- glPixelStorei(GL_UNPACK_SKIP_PIXELS,
- (GLint) bswap_CARD32(&hdr->skipPixels));
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32(&hdr->alignment));
-
- glBitmap((GLsizei) bswap_CARD32(pc + 20),
- (GLsizei) bswap_CARD32(pc + 24),
- (GLfloat) bswap_FLOAT32(pc + 28),
- (GLfloat) bswap_FLOAT32(pc + 32),
- (GLfloat) bswap_FLOAT32(pc + 36),
- (GLfloat) bswap_FLOAT32(pc + 40), bitmap);
-}
-
-void
-__glXDispSwap_Color3bv(GLbyte * pc)
-{
- glColor3bv((const GLbyte *) (pc + 0));
-}
-
-void
-__glXDispSwap_Color3dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 24);
- pc -= 4;
- }
-#endif
-
- glColor3dv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_Color3fv(GLbyte * pc)
-{
- glColor3fv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_Color3iv(GLbyte * pc)
-{
- glColor3iv((const GLint *) bswap_32_array((uint32_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_Color3sv(GLbyte * pc)
-{
- glColor3sv((const GLshort *) bswap_16_array((uint16_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_Color3ubv(GLbyte * pc)
-{
- glColor3ubv((const GLubyte *) (pc + 0));
-}
-
-void
-__glXDispSwap_Color3uiv(GLbyte * pc)
-{
- glColor3uiv((const GLuint *) bswap_32_array((uint32_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_Color3usv(GLbyte * pc)
-{
- glColor3usv((const GLushort *) bswap_16_array((uint16_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_Color4bv(GLbyte * pc)
-{
- glColor4bv((const GLbyte *) (pc + 0));
-}
-
-void
-__glXDispSwap_Color4dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 32);
- pc -= 4;
- }
-#endif
-
- glColor4dv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 4));
-}
-
-void
-__glXDispSwap_Color4fv(GLbyte * pc)
-{
- glColor4fv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 4));
-}
-
-void
-__glXDispSwap_Color4iv(GLbyte * pc)
-{
- glColor4iv((const GLint *) bswap_32_array((uint32_t *) (pc + 0), 4));
-}
-
-void
-__glXDispSwap_Color4sv(GLbyte * pc)
-{
- glColor4sv((const GLshort *) bswap_16_array((uint16_t *) (pc + 0), 4));
-}
-
-void
-__glXDispSwap_Color4ubv(GLbyte * pc)
-{
- glColor4ubv((const GLubyte *) (pc + 0));
-}
-
-void
-__glXDispSwap_Color4uiv(GLbyte * pc)
-{
- glColor4uiv((const GLuint *) bswap_32_array((uint32_t *) (pc + 0), 4));
-}
-
-void
-__glXDispSwap_Color4usv(GLbyte * pc)
-{
- glColor4usv((const GLushort *) bswap_16_array((uint16_t *) (pc + 0), 4));
-}
-
-void
-__glXDispSwap_EdgeFlagv(GLbyte * pc)
-{
- glEdgeFlagv((const GLboolean *) (pc + 0));
-}
-
-void
-__glXDispSwap_End(GLbyte * pc)
-{
- glEnd();
-}
-
-void
-__glXDispSwap_Indexdv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 8);
- pc -= 4;
- }
-#endif
-
- glIndexdv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 1));
-}
-
-void
-__glXDispSwap_Indexfv(GLbyte * pc)
-{
- glIndexfv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 1));
-}
-
-void
-__glXDispSwap_Indexiv(GLbyte * pc)
-{
- glIndexiv((const GLint *) bswap_32_array((uint32_t *) (pc + 0), 1));
-}
-
-void
-__glXDispSwap_Indexsv(GLbyte * pc)
-{
- glIndexsv((const GLshort *) bswap_16_array((uint16_t *) (pc + 0), 1));
-}
-
-void
-__glXDispSwap_Normal3bv(GLbyte * pc)
-{
- glNormal3bv((const GLbyte *) (pc + 0));
-}
-
-void
-__glXDispSwap_Normal3dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 24);
- pc -= 4;
- }
-#endif
-
- glNormal3dv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_Normal3fv(GLbyte * pc)
-{
- glNormal3fv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_Normal3iv(GLbyte * pc)
-{
- glNormal3iv((const GLint *) bswap_32_array((uint32_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_Normal3sv(GLbyte * pc)
-{
- glNormal3sv((const GLshort *) bswap_16_array((uint16_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_RasterPos2dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 16);
- pc -= 4;
- }
-#endif
-
- glRasterPos2dv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 2));
-}
-
-void
-__glXDispSwap_RasterPos2fv(GLbyte * pc)
-{
- glRasterPos2fv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 2));
-}
-
-void
-__glXDispSwap_RasterPos2iv(GLbyte * pc)
-{
- glRasterPos2iv((const GLint *) bswap_32_array((uint32_t *) (pc + 0), 2));
-}
-
-void
-__glXDispSwap_RasterPos2sv(GLbyte * pc)
-{
- glRasterPos2sv((const GLshort *) bswap_16_array((uint16_t *) (pc + 0), 2));
-}
-
-void
-__glXDispSwap_RasterPos3dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 24);
- pc -= 4;
- }
-#endif
-
- glRasterPos3dv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_RasterPos3fv(GLbyte * pc)
-{
- glRasterPos3fv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_RasterPos3iv(GLbyte * pc)
-{
- glRasterPos3iv((const GLint *) bswap_32_array((uint32_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_RasterPos3sv(GLbyte * pc)
-{
- glRasterPos3sv((const GLshort *) bswap_16_array((uint16_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_RasterPos4dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 32);
- pc -= 4;
- }
-#endif
-
- glRasterPos4dv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 4));
-}
-
-void
-__glXDispSwap_RasterPos4fv(GLbyte * pc)
-{
- glRasterPos4fv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 4));
-}
-
-void
-__glXDispSwap_RasterPos4iv(GLbyte * pc)
-{
- glRasterPos4iv((const GLint *) bswap_32_array((uint32_t *) (pc + 0), 4));
-}
-
-void
-__glXDispSwap_RasterPos4sv(GLbyte * pc)
-{
- glRasterPos4sv((const GLshort *) bswap_16_array((uint16_t *) (pc + 0), 4));
-}
-
-void
-__glXDispSwap_Rectdv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 32);
- pc -= 4;
- }
-#endif
-
- glRectdv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 2),
- (const GLdouble *) bswap_64_array((uint64_t *) (pc + 16), 2));
-}
-
-void
-__glXDispSwap_Rectfv(GLbyte * pc)
-{
- glRectfv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 2),
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8), 2));
-}
-
-void
-__glXDispSwap_Rectiv(GLbyte * pc)
-{
- glRectiv((const GLint *) bswap_32_array((uint32_t *) (pc + 0), 2),
- (const GLint *) bswap_32_array((uint32_t *) (pc + 8), 2));
-}
-
-void
-__glXDispSwap_Rectsv(GLbyte * pc)
-{
- glRectsv((const GLshort *) bswap_16_array((uint16_t *) (pc + 0), 2),
- (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), 2));
-}
-
-void
-__glXDispSwap_TexCoord1dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 8);
- pc -= 4;
- }
-#endif
-
- glTexCoord1dv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 1));
-}
-
-void
-__glXDispSwap_TexCoord1fv(GLbyte * pc)
-{
- glTexCoord1fv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 1));
-}
-
-void
-__glXDispSwap_TexCoord1iv(GLbyte * pc)
-{
- glTexCoord1iv((const GLint *) bswap_32_array((uint32_t *) (pc + 0), 1));
-}
-
-void
-__glXDispSwap_TexCoord1sv(GLbyte * pc)
-{
- glTexCoord1sv((const GLshort *) bswap_16_array((uint16_t *) (pc + 0), 1));
-}
-
-void
-__glXDispSwap_TexCoord2dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 16);
- pc -= 4;
- }
-#endif
-
- glTexCoord2dv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 2));
-}
-
-void
-__glXDispSwap_TexCoord2fv(GLbyte * pc)
-{
- glTexCoord2fv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 2));
-}
-
-void
-__glXDispSwap_TexCoord2iv(GLbyte * pc)
-{
- glTexCoord2iv((const GLint *) bswap_32_array((uint32_t *) (pc + 0), 2));
-}
-
-void
-__glXDispSwap_TexCoord2sv(GLbyte * pc)
-{
- glTexCoord2sv((const GLshort *) bswap_16_array((uint16_t *) (pc + 0), 2));
-}
-
-void
-__glXDispSwap_TexCoord3dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 24);
- pc -= 4;
- }
-#endif
-
- glTexCoord3dv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_TexCoord3fv(GLbyte * pc)
-{
- glTexCoord3fv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_TexCoord3iv(GLbyte * pc)
-{
- glTexCoord3iv((const GLint *) bswap_32_array((uint32_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_TexCoord3sv(GLbyte * pc)
-{
- glTexCoord3sv((const GLshort *) bswap_16_array((uint16_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_TexCoord4dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 32);
- pc -= 4;
- }
-#endif
-
- glTexCoord4dv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 4));
-}
-
-void
-__glXDispSwap_TexCoord4fv(GLbyte * pc)
-{
- glTexCoord4fv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 4));
-}
-
-void
-__glXDispSwap_TexCoord4iv(GLbyte * pc)
-{
- glTexCoord4iv((const GLint *) bswap_32_array((uint32_t *) (pc + 0), 4));
-}
-
-void
-__glXDispSwap_TexCoord4sv(GLbyte * pc)
-{
- glTexCoord4sv((const GLshort *) bswap_16_array((uint16_t *) (pc + 0), 4));
-}
-
-void
-__glXDispSwap_Vertex2dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 16);
- pc -= 4;
- }
-#endif
-
- glVertex2dv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 2));
-}
-
-void
-__glXDispSwap_Vertex2fv(GLbyte * pc)
-{
- glVertex2fv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 2));
-}
-
-void
-__glXDispSwap_Vertex2iv(GLbyte * pc)
-{
- glVertex2iv((const GLint *) bswap_32_array((uint32_t *) (pc + 0), 2));
-}
-
-void
-__glXDispSwap_Vertex2sv(GLbyte * pc)
-{
- glVertex2sv((const GLshort *) bswap_16_array((uint16_t *) (pc + 0), 2));
-}
-
-void
-__glXDispSwap_Vertex3dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 24);
- pc -= 4;
- }
-#endif
-
- glVertex3dv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_Vertex3fv(GLbyte * pc)
-{
- glVertex3fv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_Vertex3iv(GLbyte * pc)
-{
- glVertex3iv((const GLint *) bswap_32_array((uint32_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_Vertex3sv(GLbyte * pc)
-{
- glVertex3sv((const GLshort *) bswap_16_array((uint16_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_Vertex4dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 32);
- pc -= 4;
- }
-#endif
-
- glVertex4dv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 4));
-}
-
-void
-__glXDispSwap_Vertex4fv(GLbyte * pc)
-{
- glVertex4fv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 4));
-}
-
-void
-__glXDispSwap_Vertex4iv(GLbyte * pc)
-{
- glVertex4iv((const GLint *) bswap_32_array((uint32_t *) (pc + 0), 4));
-}
-
-void
-__glXDispSwap_Vertex4sv(GLbyte * pc)
-{
- glVertex4sv((const GLshort *) bswap_16_array((uint16_t *) (pc + 0), 4));
-}
-
-void
-__glXDispSwap_ClipPlane(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 36);
- pc -= 4;
- }
-#endif
-
- glClipPlane((GLenum) bswap_ENUM(pc + 32),
- (const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 4));
-}
-
-void
-__glXDispSwap_ColorMaterial(GLbyte * pc)
-{
- glColorMaterial((GLenum) bswap_ENUM(pc + 0), (GLenum) bswap_ENUM(pc + 4));
-}
-
-void
-__glXDispSwap_CullFace(GLbyte * pc)
-{
- glCullFace((GLenum) bswap_ENUM(pc + 0));
-}
-
-void
-__glXDispSwap_Fogf(GLbyte * pc)
-{
- glFogf((GLenum) bswap_ENUM(pc + 0), (GLfloat) bswap_FLOAT32(pc + 4));
-}
-
-void
-__glXDispSwap_Fogfv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 0);
- const GLfloat *params;
-
- params =
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4),
- __glFogfv_size(pname));
-
- glFogfv(pname, params);
-}
-
-void
-__glXDispSwap_Fogi(GLbyte * pc)
-{
- glFogi((GLenum) bswap_ENUM(pc + 0), (GLint) bswap_CARD32(pc + 4));
-}
-
-void
-__glXDispSwap_Fogiv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 0);
- const GLint *params;
-
- params =
- (const GLint *) bswap_32_array((uint32_t *) (pc + 4),
- __glFogiv_size(pname));
-
- glFogiv(pname, params);
-}
-
-void
-__glXDispSwap_FrontFace(GLbyte * pc)
-{
- glFrontFace((GLenum) bswap_ENUM(pc + 0));
-}
-
-void
-__glXDispSwap_Hint(GLbyte * pc)
-{
- glHint((GLenum) bswap_ENUM(pc + 0), (GLenum) bswap_ENUM(pc + 4));
-}
-
-void
-__glXDispSwap_Lightf(GLbyte * pc)
-{
- glLightf((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4), (GLfloat) bswap_FLOAT32(pc + 8));
-}
-
-void
-__glXDispSwap_Lightfv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
- const GLfloat *params;
-
- params =
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8),
- __glLightfv_size(pname));
-
- glLightfv((GLenum) bswap_ENUM(pc + 0), pname, params);
-}
-
-void
-__glXDispSwap_Lighti(GLbyte * pc)
-{
- glLighti((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4), (GLint) bswap_CARD32(pc + 8));
-}
-
-void
-__glXDispSwap_Lightiv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
- const GLint *params;
-
- params =
- (const GLint *) bswap_32_array((uint32_t *) (pc + 8),
- __glLightiv_size(pname));
-
- glLightiv((GLenum) bswap_ENUM(pc + 0), pname, params);
-}
-
-void
-__glXDispSwap_LightModelf(GLbyte * pc)
-{
- glLightModelf((GLenum) bswap_ENUM(pc + 0), (GLfloat) bswap_FLOAT32(pc + 4));
-}
-
-void
-__glXDispSwap_LightModelfv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 0);
- const GLfloat *params;
-
- params =
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4),
- __glLightModelfv_size(pname));
-
- glLightModelfv(pname, params);
-}
-
-void
-__glXDispSwap_LightModeli(GLbyte * pc)
-{
- glLightModeli((GLenum) bswap_ENUM(pc + 0), (GLint) bswap_CARD32(pc + 4));
-}
-
-void
-__glXDispSwap_LightModeliv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 0);
- const GLint *params;
-
- params =
- (const GLint *) bswap_32_array((uint32_t *) (pc + 4),
- __glLightModeliv_size(pname));
-
- glLightModeliv(pname, params);
-}
-
-void
-__glXDispSwap_LineStipple(GLbyte * pc)
-{
- glLineStipple((GLint) bswap_CARD32(pc + 0),
- (GLushort) bswap_CARD16(pc + 4));
-}
-
-void
-__glXDispSwap_LineWidth(GLbyte * pc)
-{
- glLineWidth((GLfloat) bswap_FLOAT32(pc + 0));
-}
-
-void
-__glXDispSwap_Materialf(GLbyte * pc)
-{
- glMaterialf((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4), (GLfloat) bswap_FLOAT32(pc + 8));
-}
-
-void
-__glXDispSwap_Materialfv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
- const GLfloat *params;
-
- params =
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8),
- __glMaterialfv_size(pname));
-
- glMaterialfv((GLenum) bswap_ENUM(pc + 0), pname, params);
-}
-
-void
-__glXDispSwap_Materiali(GLbyte * pc)
-{
- glMateriali((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4), (GLint) bswap_CARD32(pc + 8));
-}
-
-void
-__glXDispSwap_Materialiv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
- const GLint *params;
-
- params =
- (const GLint *) bswap_32_array((uint32_t *) (pc + 8),
- __glMaterialiv_size(pname));
-
- glMaterialiv((GLenum) bswap_ENUM(pc + 0), pname, params);
-}
-
-void
-__glXDispSwap_PointSize(GLbyte * pc)
-{
- glPointSize((GLfloat) bswap_FLOAT32(pc + 0));
-}
-
-void
-__glXDispSwap_PolygonMode(GLbyte * pc)
-{
- glPolygonMode((GLenum) bswap_ENUM(pc + 0), (GLenum) bswap_ENUM(pc + 4));
-}
-
-void
-__glXDispSwap_PolygonStipple(GLbyte * pc)
-{
- const GLubyte *const mask = (const GLubyte *) ((pc + 20));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32(&hdr->rowLength));
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32(&hdr->skipRows));
- glPixelStorei(GL_UNPACK_SKIP_PIXELS,
- (GLint) bswap_CARD32(&hdr->skipPixels));
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32(&hdr->alignment));
-
- glPolygonStipple(mask);
-}
-
-void
-__glXDispSwap_Scissor(GLbyte * pc)
-{
- glScissor((GLint) bswap_CARD32(pc + 0),
- (GLint) bswap_CARD32(pc + 4),
- (GLsizei) bswap_CARD32(pc + 8), (GLsizei) bswap_CARD32(pc + 12));
-}
-
-void
-__glXDispSwap_ShadeModel(GLbyte * pc)
-{
- glShadeModel((GLenum) bswap_ENUM(pc + 0));
-}
-
-void
-__glXDispSwap_TexParameterf(GLbyte * pc)
-{
- glTexParameterf((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4),
- (GLfloat) bswap_FLOAT32(pc + 8));
-}
-
-void
-__glXDispSwap_TexParameterfv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
- const GLfloat *params;
-
- params =
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8),
- __glTexParameterfv_size(pname));
-
- glTexParameterfv((GLenum) bswap_ENUM(pc + 0), pname, params);
-}
-
-void
-__glXDispSwap_TexParameteri(GLbyte * pc)
-{
- glTexParameteri((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4), (GLint) bswap_CARD32(pc + 8));
-}
-
-void
-__glXDispSwap_TexParameteriv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
- const GLint *params;
-
- params =
- (const GLint *) bswap_32_array((uint32_t *) (pc + 8),
- __glTexParameteriv_size(pname));
-
- glTexParameteriv((GLenum) bswap_ENUM(pc + 0), pname, params);
-}
-
-void
-__glXDispSwap_TexImage1D(GLbyte * pc)
-{
- const GLvoid *const pixels = (const GLvoid *) ((pc + 52));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32(&hdr->rowLength));
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32(&hdr->skipRows));
- glPixelStorei(GL_UNPACK_SKIP_PIXELS,
- (GLint) bswap_CARD32(&hdr->skipPixels));
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32(&hdr->alignment));
-
- glTexImage1D((GLenum) bswap_ENUM(pc + 20),
- (GLint) bswap_CARD32(pc + 24),
- (GLint) bswap_CARD32(pc + 28),
- (GLsizei) bswap_CARD32(pc + 32),
- (GLint) bswap_CARD32(pc + 40),
- (GLenum) bswap_ENUM(pc + 44),
- (GLenum) bswap_ENUM(pc + 48), pixels);
-}
-
-void
-__glXDispSwap_TexImage2D(GLbyte * pc)
-{
- const GLvoid *const pixels = (const GLvoid *) ((pc + 52));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32(&hdr->rowLength));
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32(&hdr->skipRows));
- glPixelStorei(GL_UNPACK_SKIP_PIXELS,
- (GLint) bswap_CARD32(&hdr->skipPixels));
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32(&hdr->alignment));
-
- glTexImage2D((GLenum) bswap_ENUM(pc + 20),
- (GLint) bswap_CARD32(pc + 24),
- (GLint) bswap_CARD32(pc + 28),
- (GLsizei) bswap_CARD32(pc + 32),
- (GLsizei) bswap_CARD32(pc + 36),
- (GLint) bswap_CARD32(pc + 40),
- (GLenum) bswap_ENUM(pc + 44),
- (GLenum) bswap_ENUM(pc + 48), pixels);
-}
-
-void
-__glXDispSwap_TexEnvf(GLbyte * pc)
-{
- glTexEnvf((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4), (GLfloat) bswap_FLOAT32(pc + 8));
-}
-
-void
-__glXDispSwap_TexEnvfv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
- const GLfloat *params;
-
- params =
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8),
- __glTexEnvfv_size(pname));
-
- glTexEnvfv((GLenum) bswap_ENUM(pc + 0), pname, params);
-}
-
-void
-__glXDispSwap_TexEnvi(GLbyte * pc)
-{
- glTexEnvi((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4), (GLint) bswap_CARD32(pc + 8));
-}
-
-void
-__glXDispSwap_TexEnviv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
- const GLint *params;
-
- params =
- (const GLint *) bswap_32_array((uint32_t *) (pc + 8),
- __glTexEnviv_size(pname));
-
- glTexEnviv((GLenum) bswap_ENUM(pc + 0), pname, params);
-}
-
-void
-__glXDispSwap_TexGend(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 16);
- pc -= 4;
- }
-#endif
-
- glTexGend((GLenum) bswap_ENUM(pc + 8),
- (GLenum) bswap_ENUM(pc + 12), (GLdouble) bswap_FLOAT64(pc + 0));
-}
-
-void
-__glXDispSwap_TexGendv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
- const GLdouble *params;
-
-#ifdef __GLX_ALIGN64
- const GLuint compsize = __glTexGendv_size(pname);
- const GLuint cmdlen = 12 + __GLX_PAD((compsize * 8)) - 4;
-
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, cmdlen);
- pc -= 4;
- }
-#endif
-
- params =
- (const GLdouble *) bswap_64_array((uint64_t *) (pc + 8),
- __glTexGendv_size(pname));
-
- glTexGendv((GLenum) bswap_ENUM(pc + 0), pname, params);
-}
-
-void
-__glXDispSwap_TexGenf(GLbyte * pc)
-{
- glTexGenf((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4), (GLfloat) bswap_FLOAT32(pc + 8));
-}
-
-void
-__glXDispSwap_TexGenfv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
- const GLfloat *params;
-
- params =
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8),
- __glTexGenfv_size(pname));
-
- glTexGenfv((GLenum) bswap_ENUM(pc + 0), pname, params);
-}
-
-void
-__glXDispSwap_TexGeni(GLbyte * pc)
-{
- glTexGeni((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4), (GLint) bswap_CARD32(pc + 8));
-}
-
-void
-__glXDispSwap_TexGeniv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
- const GLint *params;
-
- params =
- (const GLint *) bswap_32_array((uint32_t *) (pc + 8),
- __glTexGeniv_size(pname));
-
- glTexGeniv((GLenum) bswap_ENUM(pc + 0), pname, params);
-}
-
-void
-__glXDispSwap_InitNames(GLbyte * pc)
-{
- glInitNames();
-}
-
-void
-__glXDispSwap_LoadName(GLbyte * pc)
-{
- glLoadName((GLuint) bswap_CARD32(pc + 0));
-}
-
-void
-__glXDispSwap_PassThrough(GLbyte * pc)
-{
- glPassThrough((GLfloat) bswap_FLOAT32(pc + 0));
-}
-
-void
-__glXDispSwap_PopName(GLbyte * pc)
-{
- glPopName();
-}
-
-void
-__glXDispSwap_PushName(GLbyte * pc)
-{
- glPushName((GLuint) bswap_CARD32(pc + 0));
-}
-
-void
-__glXDispSwap_DrawBuffer(GLbyte * pc)
-{
- glDrawBuffer((GLenum) bswap_ENUM(pc + 0));
-}
-
-void
-__glXDispSwap_Clear(GLbyte * pc)
-{
- glClear((GLbitfield) bswap_CARD32(pc + 0));
-}
-
-void
-__glXDispSwap_ClearAccum(GLbyte * pc)
-{
- glClearAccum((GLfloat) bswap_FLOAT32(pc + 0),
- (GLfloat) bswap_FLOAT32(pc + 4),
- (GLfloat) bswap_FLOAT32(pc + 8),
- (GLfloat) bswap_FLOAT32(pc + 12));
-}
-
-void
-__glXDispSwap_ClearIndex(GLbyte * pc)
-{
- glClearIndex((GLfloat) bswap_FLOAT32(pc + 0));
-}
-
-void
-__glXDispSwap_ClearColor(GLbyte * pc)
-{
- glClearColor((GLclampf) bswap_FLOAT32(pc + 0),
- (GLclampf) bswap_FLOAT32(pc + 4),
- (GLclampf) bswap_FLOAT32(pc + 8),
- (GLclampf) bswap_FLOAT32(pc + 12));
-}
-
-void
-__glXDispSwap_ClearStencil(GLbyte * pc)
-{
- glClearStencil((GLint) bswap_CARD32(pc + 0));
-}
-
-void
-__glXDispSwap_ClearDepth(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 8);
- pc -= 4;
- }
-#endif
-
- glClearDepth((GLclampd) bswap_FLOAT64(pc + 0));
-}
-
-void
-__glXDispSwap_StencilMask(GLbyte * pc)
-{
- glStencilMask((GLuint) bswap_CARD32(pc + 0));
-}
-
-void
-__glXDispSwap_ColorMask(GLbyte * pc)
-{
- glColorMask(*(GLboolean *) (pc + 0),
- *(GLboolean *) (pc + 1),
- *(GLboolean *) (pc + 2), *(GLboolean *) (pc + 3));
-}
-
-void
-__glXDispSwap_DepthMask(GLbyte * pc)
-{
- glDepthMask(*(GLboolean *) (pc + 0));
-}
-
-void
-__glXDispSwap_IndexMask(GLbyte * pc)
-{
- glIndexMask((GLuint) bswap_CARD32(pc + 0));
-}
-
-void
-__glXDispSwap_Accum(GLbyte * pc)
-{
- glAccum((GLenum) bswap_ENUM(pc + 0), (GLfloat) bswap_FLOAT32(pc + 4));
-}
-
-void
-__glXDispSwap_Disable(GLbyte * pc)
-{
- glDisable((GLenum) bswap_ENUM(pc + 0));
-}
-
-void
-__glXDispSwap_Enable(GLbyte * pc)
-{
- glEnable((GLenum) bswap_ENUM(pc + 0));
-}
-
-void
-__glXDispSwap_PopAttrib(GLbyte * pc)
-{
- glPopAttrib();
-}
-
-void
-__glXDispSwap_PushAttrib(GLbyte * pc)
-{
- glPushAttrib((GLbitfield) bswap_CARD32(pc + 0));
-}
-
-void
-__glXDispSwap_MapGrid1d(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 20);
- pc -= 4;
- }
-#endif
-
- glMapGrid1d((GLint) bswap_CARD32(pc + 16),
- (GLdouble) bswap_FLOAT64(pc + 0),
- (GLdouble) bswap_FLOAT64(pc + 8));
-}
-
-void
-__glXDispSwap_MapGrid1f(GLbyte * pc)
-{
- glMapGrid1f((GLint) bswap_CARD32(pc + 0),
- (GLfloat) bswap_FLOAT32(pc + 4),
- (GLfloat) bswap_FLOAT32(pc + 8));
-}
-
-void
-__glXDispSwap_MapGrid2d(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 40);
- pc -= 4;
- }
-#endif
-
- glMapGrid2d((GLint) bswap_CARD32(pc + 32),
- (GLdouble) bswap_FLOAT64(pc + 0),
- (GLdouble) bswap_FLOAT64(pc + 8),
- (GLint) bswap_CARD32(pc + 36),
- (GLdouble) bswap_FLOAT64(pc + 16),
- (GLdouble) bswap_FLOAT64(pc + 24));
-}
-
-void
-__glXDispSwap_MapGrid2f(GLbyte * pc)
-{
- glMapGrid2f((GLint) bswap_CARD32(pc + 0),
- (GLfloat) bswap_FLOAT32(pc + 4),
- (GLfloat) bswap_FLOAT32(pc + 8),
- (GLint) bswap_CARD32(pc + 12),
- (GLfloat) bswap_FLOAT32(pc + 16),
- (GLfloat) bswap_FLOAT32(pc + 20));
-}
-
-void
-__glXDispSwap_EvalCoord1dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 8);
- pc -= 4;
- }
-#endif
-
- glEvalCoord1dv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 1));
-}
-
-void
-__glXDispSwap_EvalCoord1fv(GLbyte * pc)
-{
- glEvalCoord1fv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 1));
-}
-
-void
-__glXDispSwap_EvalCoord2dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 16);
- pc -= 4;
- }
-#endif
-
- glEvalCoord2dv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 2));
-}
-
-void
-__glXDispSwap_EvalCoord2fv(GLbyte * pc)
-{
- glEvalCoord2fv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 2));
-}
-
-void
-__glXDispSwap_EvalMesh1(GLbyte * pc)
-{
- glEvalMesh1((GLenum) bswap_ENUM(pc + 0),
- (GLint) bswap_CARD32(pc + 4), (GLint) bswap_CARD32(pc + 8));
-}
-
-void
-__glXDispSwap_EvalPoint1(GLbyte * pc)
-{
- glEvalPoint1((GLint) bswap_CARD32(pc + 0));
-}
-
-void
-__glXDispSwap_EvalMesh2(GLbyte * pc)
-{
- glEvalMesh2((GLenum) bswap_ENUM(pc + 0),
- (GLint) bswap_CARD32(pc + 4),
- (GLint) bswap_CARD32(pc + 8),
- (GLint) bswap_CARD32(pc + 12), (GLint) bswap_CARD32(pc + 16));
-}
-
-void
-__glXDispSwap_EvalPoint2(GLbyte * pc)
-{
- glEvalPoint2((GLint) bswap_CARD32(pc + 0), (GLint) bswap_CARD32(pc + 4));
-}
-
-void
-__glXDispSwap_AlphaFunc(GLbyte * pc)
-{
- glAlphaFunc((GLenum) bswap_ENUM(pc + 0), (GLclampf) bswap_FLOAT32(pc + 4));
-}
-
-void
-__glXDispSwap_BlendFunc(GLbyte * pc)
-{
- glBlendFunc((GLenum) bswap_ENUM(pc + 0), (GLenum) bswap_ENUM(pc + 4));
-}
-
-void
-__glXDispSwap_LogicOp(GLbyte * pc)
-{
- glLogicOp((GLenum) bswap_ENUM(pc + 0));
-}
-
-void
-__glXDispSwap_StencilFunc(GLbyte * pc)
-{
- glStencilFunc((GLenum) bswap_ENUM(pc + 0),
- (GLint) bswap_CARD32(pc + 4), (GLuint) bswap_CARD32(pc + 8));
-}
-
-void
-__glXDispSwap_StencilOp(GLbyte * pc)
-{
- glStencilOp((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4), (GLenum) bswap_ENUM(pc + 8));
-}
-
-void
-__glXDispSwap_DepthFunc(GLbyte * pc)
-{
- glDepthFunc((GLenum) bswap_ENUM(pc + 0));
-}
-
-void
-__glXDispSwap_PixelZoom(GLbyte * pc)
-{
- glPixelZoom((GLfloat) bswap_FLOAT32(pc + 0),
- (GLfloat) bswap_FLOAT32(pc + 4));
-}
-
-void
-__glXDispSwap_PixelTransferf(GLbyte * pc)
-{
- glPixelTransferf((GLenum) bswap_ENUM(pc + 0),
- (GLfloat) bswap_FLOAT32(pc + 4));
-}
-
-void
-__glXDispSwap_PixelTransferi(GLbyte * pc)
-{
- glPixelTransferi((GLenum) bswap_ENUM(pc + 0), (GLint) bswap_CARD32(pc + 4));
-}
-
-int
-__glXDispSwap_PixelStoref(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- glPixelStoref((GLenum) bswap_ENUM(pc + 0),
- (GLfloat) bswap_FLOAT32(pc + 4));
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_PixelStorei(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- glPixelStorei((GLenum) bswap_ENUM(pc + 0),
- (GLint) bswap_CARD32(pc + 4));
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDispSwap_PixelMapfv(GLbyte * pc)
-{
- const GLsizei mapsize = (GLsizei) bswap_CARD32(pc + 4);
-
- glPixelMapfv((GLenum) bswap_ENUM(pc + 0),
- mapsize,
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8), 0));
-}
-
-void
-__glXDispSwap_PixelMapuiv(GLbyte * pc)
-{
- const GLsizei mapsize = (GLsizei) bswap_CARD32(pc + 4);
-
- glPixelMapuiv((GLenum) bswap_ENUM(pc + 0),
- mapsize,
- (const GLuint *) bswap_32_array((uint32_t *) (pc + 8), 0));
-}
-
-void
-__glXDispSwap_PixelMapusv(GLbyte * pc)
-{
- const GLsizei mapsize = (GLsizei) bswap_CARD32(pc + 4);
-
- glPixelMapusv((GLenum) bswap_ENUM(pc + 0),
- mapsize,
- (const GLushort *) bswap_16_array((uint16_t *) (pc + 8), 0));
-}
-
-void
-__glXDispSwap_ReadBuffer(GLbyte * pc)
-{
- glReadBuffer((GLenum) bswap_ENUM(pc + 0));
-}
-
-void
-__glXDispSwap_CopyPixels(GLbyte * pc)
-{
- glCopyPixels((GLint) bswap_CARD32(pc + 0),
- (GLint) bswap_CARD32(pc + 4),
- (GLsizei) bswap_CARD32(pc + 8),
- (GLsizei) bswap_CARD32(pc + 12), (GLenum) bswap_ENUM(pc + 16));
-}
-
-void
-__glXDispSwap_DrawPixels(GLbyte * pc)
-{
- const GLvoid *const pixels = (const GLvoid *) ((pc + 36));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32(&hdr->rowLength));
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32(&hdr->skipRows));
- glPixelStorei(GL_UNPACK_SKIP_PIXELS,
- (GLint) bswap_CARD32(&hdr->skipPixels));
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32(&hdr->alignment));
-
- glDrawPixels((GLsizei) bswap_CARD32(pc + 20),
- (GLsizei) bswap_CARD32(pc + 24),
- (GLenum) bswap_ENUM(pc + 28),
- (GLenum) bswap_ENUM(pc + 32), pixels);
-}
-
-int
-__glXDispSwap_GetBooleanv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 0);
-
- const GLuint compsize = __glGetBooleanv_size(pname);
- GLboolean answerBuffer[200];
- GLboolean *params =
- __glXGetAnswerBuffer(cl, compsize, answerBuffer,
- sizeof(answerBuffer), 1);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetBooleanv(pname, params);
- __glXSendReplySwap(cl->client, params, compsize, 1, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetClipPlane(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- GLdouble equation[4];
-
- glGetClipPlane((GLenum) bswap_ENUM(pc + 0), equation);
- (void) bswap_64_array((uint64_t *) equation, 4);
- __glXSendReplySwap(cl->client, equation, 4, 8, GL_TRUE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetDoublev(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 0);
-
- const GLuint compsize = __glGetDoublev_size(pname);
- GLdouble answerBuffer[200];
- GLdouble *params =
- __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer,
- sizeof(answerBuffer), 8);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetDoublev(pname, params);
- (void) bswap_64_array((uint64_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 8, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetError(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- GLenum retval;
-
- retval = glGetError();
- __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetFloatv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 0);
-
- const GLuint compsize = __glGetFloatv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetFloatv(pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetIntegerv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 0);
-
- const GLuint compsize = __glGetIntegerv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetIntegerv(pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetLightfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetLightfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetLightfv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetLightiv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetLightiv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetLightiv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetMapdv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum target = (GLenum) bswap_ENUM(pc + 0);
- const GLenum query = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetMapdv_size(target, query);
- GLdouble answerBuffer[200];
- GLdouble *v =
- __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer,
- sizeof(answerBuffer), 8);
-
- if (v == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetMapdv(target, query, v);
- (void) bswap_64_array((uint64_t *) v, compsize);
- __glXSendReplySwap(cl->client, v, compsize, 8, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetMapfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum target = (GLenum) bswap_ENUM(pc + 0);
- const GLenum query = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetMapfv_size(target, query);
- GLfloat answerBuffer[200];
- GLfloat *v =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (v == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetMapfv(target, query, v);
- (void) bswap_32_array((uint32_t *) v, compsize);
- __glXSendReplySwap(cl->client, v, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetMapiv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum target = (GLenum) bswap_ENUM(pc + 0);
- const GLenum query = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetMapiv_size(target, query);
- GLint answerBuffer[200];
- GLint *v =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (v == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetMapiv(target, query, v);
- (void) bswap_32_array((uint32_t *) v, compsize);
- __glXSendReplySwap(cl->client, v, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetMaterialfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetMaterialfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetMaterialfv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetMaterialiv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetMaterialiv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetMaterialiv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetPixelMapfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum map = (GLenum) bswap_ENUM(pc + 0);
-
- const GLuint compsize = __glGetPixelMapfv_size(map);
- GLfloat answerBuffer[200];
- GLfloat *values =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (values == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetPixelMapfv(map, values);
- (void) bswap_32_array((uint32_t *) values, compsize);
- __glXSendReplySwap(cl->client, values, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetPixelMapuiv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum map = (GLenum) bswap_ENUM(pc + 0);
-
- const GLuint compsize = __glGetPixelMapuiv_size(map);
- GLuint answerBuffer[200];
- GLuint *values =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (values == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetPixelMapuiv(map, values);
- (void) bswap_32_array((uint32_t *) values, compsize);
- __glXSendReplySwap(cl->client, values, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetPixelMapusv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum map = (GLenum) bswap_ENUM(pc + 0);
-
- const GLuint compsize = __glGetPixelMapusv_size(map);
- GLushort answerBuffer[200];
- GLushort *values =
- __glXGetAnswerBuffer(cl, compsize * 2, answerBuffer,
- sizeof(answerBuffer), 2);
-
- if (values == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetPixelMapusv(map, values);
- (void) bswap_16_array((uint16_t *) values, compsize);
- __glXSendReplySwap(cl->client, values, compsize, 2, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetTexEnvfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetTexEnvfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetTexEnvfv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetTexEnviv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetTexEnviv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetTexEnviv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetTexGendv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetTexGendv_size(pname);
- GLdouble answerBuffer[200];
- GLdouble *params =
- __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer,
- sizeof(answerBuffer), 8);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetTexGendv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_64_array((uint64_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 8, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetTexGenfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetTexGenfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetTexGenfv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetTexGeniv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetTexGeniv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetTexGeniv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetTexParameterfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetTexParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetTexParameterfv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetTexParameteriv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetTexParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetTexParameteriv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetTexLevelParameterfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 8);
-
- const GLuint compsize = __glGetTexLevelParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetTexLevelParameterfv((GLenum) bswap_ENUM(pc + 0),
- (GLint) bswap_CARD32(pc + 4), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetTexLevelParameteriv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 8);
-
- const GLuint compsize = __glGetTexLevelParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetTexLevelParameteriv((GLenum) bswap_ENUM(pc + 0),
- (GLint) bswap_CARD32(pc + 4), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_IsEnabled(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- GLboolean retval;
-
- retval = glIsEnabled((GLenum) bswap_ENUM(pc + 0));
- __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_IsList(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- GLboolean retval;
-
- retval = glIsList((GLuint) bswap_CARD32(pc + 0));
- __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDispSwap_DepthRange(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 16);
- pc -= 4;
- }
-#endif
-
- glDepthRange((GLclampd) bswap_FLOAT64(pc + 0),
- (GLclampd) bswap_FLOAT64(pc + 8));
-}
-
-void
-__glXDispSwap_Frustum(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 48);
- pc -= 4;
- }
-#endif
-
- glFrustum((GLdouble) bswap_FLOAT64(pc + 0),
- (GLdouble) bswap_FLOAT64(pc + 8),
- (GLdouble) bswap_FLOAT64(pc + 16),
- (GLdouble) bswap_FLOAT64(pc + 24),
- (GLdouble) bswap_FLOAT64(pc + 32),
- (GLdouble) bswap_FLOAT64(pc + 40));
-}
-
-void
-__glXDispSwap_LoadIdentity(GLbyte * pc)
-{
- glLoadIdentity();
-}
-
-void
-__glXDispSwap_LoadMatrixf(GLbyte * pc)
-{
- glLoadMatrixf((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 16));
-}
-
-void
-__glXDispSwap_LoadMatrixd(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 128);
- pc -= 4;
- }
-#endif
-
- glLoadMatrixd((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 16));
-}
-
-void
-__glXDispSwap_MatrixMode(GLbyte * pc)
-{
- glMatrixMode((GLenum) bswap_ENUM(pc + 0));
-}
-
-void
-__glXDispSwap_MultMatrixf(GLbyte * pc)
-{
- glMultMatrixf((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 16));
-}
-
-void
-__glXDispSwap_MultMatrixd(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 128);
- pc -= 4;
- }
-#endif
-
- glMultMatrixd((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 16));
-}
-
-void
-__glXDispSwap_Ortho(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 48);
- pc -= 4;
- }
-#endif
-
- glOrtho((GLdouble) bswap_FLOAT64(pc + 0),
- (GLdouble) bswap_FLOAT64(pc + 8),
- (GLdouble) bswap_FLOAT64(pc + 16),
- (GLdouble) bswap_FLOAT64(pc + 24),
- (GLdouble) bswap_FLOAT64(pc + 32),
- (GLdouble) bswap_FLOAT64(pc + 40));
-}
-
-void
-__glXDispSwap_PopMatrix(GLbyte * pc)
-{
- glPopMatrix();
-}
-
-void
-__glXDispSwap_PushMatrix(GLbyte * pc)
-{
- glPushMatrix();
-}
-
-void
-__glXDispSwap_Rotated(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 32);
- pc -= 4;
- }
-#endif
-
- glRotated((GLdouble) bswap_FLOAT64(pc + 0),
- (GLdouble) bswap_FLOAT64(pc + 8),
- (GLdouble) bswap_FLOAT64(pc + 16),
- (GLdouble) bswap_FLOAT64(pc + 24));
-}
-
-void
-__glXDispSwap_Rotatef(GLbyte * pc)
-{
- glRotatef((GLfloat) bswap_FLOAT32(pc + 0),
- (GLfloat) bswap_FLOAT32(pc + 4),
- (GLfloat) bswap_FLOAT32(pc + 8),
- (GLfloat) bswap_FLOAT32(pc + 12));
-}
-
-void
-__glXDispSwap_Scaled(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 24);
- pc -= 4;
- }
-#endif
-
- glScaled((GLdouble) bswap_FLOAT64(pc + 0),
- (GLdouble) bswap_FLOAT64(pc + 8),
- (GLdouble) bswap_FLOAT64(pc + 16));
-}
-
-void
-__glXDispSwap_Scalef(GLbyte * pc)
-{
- glScalef((GLfloat) bswap_FLOAT32(pc + 0),
- (GLfloat) bswap_FLOAT32(pc + 4), (GLfloat) bswap_FLOAT32(pc + 8));
-}
-
-void
-__glXDispSwap_Translated(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 24);
- pc -= 4;
- }
-#endif
-
- glTranslated((GLdouble) bswap_FLOAT64(pc + 0),
- (GLdouble) bswap_FLOAT64(pc + 8),
- (GLdouble) bswap_FLOAT64(pc + 16));
-}
-
-void
-__glXDispSwap_Translatef(GLbyte * pc)
-{
- glTranslatef((GLfloat) bswap_FLOAT32(pc + 0),
- (GLfloat) bswap_FLOAT32(pc + 4),
- (GLfloat) bswap_FLOAT32(pc + 8));
-}
-
-void
-__glXDispSwap_Viewport(GLbyte * pc)
-{
- glViewport((GLint) bswap_CARD32(pc + 0),
- (GLint) bswap_CARD32(pc + 4),
- (GLsizei) bswap_CARD32(pc + 8), (GLsizei) bswap_CARD32(pc + 12));
-}
-
-void
-__glXDispSwap_BindTexture(GLbyte * pc)
-{
- glBindTexture((GLenum) bswap_ENUM(pc + 0), (GLuint) bswap_CARD32(pc + 4));
-}
-
-void
-__glXDispSwap_Indexubv(GLbyte * pc)
-{
- glIndexubv((const GLubyte *) (pc + 0));
-}
-
-void
-__glXDispSwap_PolygonOffset(GLbyte * pc)
-{
- glPolygonOffset((GLfloat) bswap_FLOAT32(pc + 0),
- (GLfloat) bswap_FLOAT32(pc + 4));
-}
-
-int
-__glXDispSwap_AreTexturesResident(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 0);
-
- GLboolean retval;
- GLboolean answerBuffer[200];
- GLboolean *residences =
- __glXGetAnswerBuffer(cl, n, answerBuffer, sizeof(answerBuffer), 1);
- retval =
- glAreTexturesResident(n,
- (const GLuint *)
- bswap_32_array((uint32_t *) (pc + 4), 0),
- residences);
- __glXSendReplySwap(cl->client, residences, n, 1, GL_TRUE, retval);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_AreTexturesResidentEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 0);
-
- GLboolean retval;
- GLboolean answerBuffer[200];
- GLboolean *residences =
- __glXGetAnswerBuffer(cl, n, answerBuffer, sizeof(answerBuffer), 1);
- retval =
- glAreTexturesResident(n,
- (const GLuint *)
- bswap_32_array((uint32_t *) (pc + 4), 0),
- residences);
- __glXSendReplySwap(cl->client, residences, n, 1, GL_TRUE, retval);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDispSwap_CopyTexImage1D(GLbyte * pc)
-{
- glCopyTexImage1D((GLenum) bswap_ENUM(pc + 0),
- (GLint) bswap_CARD32(pc + 4),
- (GLenum) bswap_ENUM(pc + 8),
- (GLint) bswap_CARD32(pc + 12),
- (GLint) bswap_CARD32(pc + 16),
- (GLsizei) bswap_CARD32(pc + 20),
- (GLint) bswap_CARD32(pc + 24));
-}
-
-void
-__glXDispSwap_CopyTexImage2D(GLbyte * pc)
-{
- glCopyTexImage2D((GLenum) bswap_ENUM(pc + 0),
- (GLint) bswap_CARD32(pc + 4),
- (GLenum) bswap_ENUM(pc + 8),
- (GLint) bswap_CARD32(pc + 12),
- (GLint) bswap_CARD32(pc + 16),
- (GLsizei) bswap_CARD32(pc + 20),
- (GLsizei) bswap_CARD32(pc + 24),
- (GLint) bswap_CARD32(pc + 28));
-}
-
-void
-__glXDispSwap_CopyTexSubImage1D(GLbyte * pc)
-{
- glCopyTexSubImage1D((GLenum) bswap_ENUM(pc + 0),
- (GLint) bswap_CARD32(pc + 4),
- (GLint) bswap_CARD32(pc + 8),
- (GLint) bswap_CARD32(pc + 12),
- (GLint) bswap_CARD32(pc + 16),
- (GLsizei) bswap_CARD32(pc + 20));
-}
-
-void
-__glXDispSwap_CopyTexSubImage2D(GLbyte * pc)
-{
- glCopyTexSubImage2D((GLenum) bswap_ENUM(pc + 0),
- (GLint) bswap_CARD32(pc + 4),
- (GLint) bswap_CARD32(pc + 8),
- (GLint) bswap_CARD32(pc + 12),
- (GLint) bswap_CARD32(pc + 16),
- (GLint) bswap_CARD32(pc + 20),
- (GLsizei) bswap_CARD32(pc + 24),
- (GLsizei) bswap_CARD32(pc + 28));
-}
-
-int
-__glXDispSwap_DeleteTextures(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 0);
-
- glDeleteTextures(n,
- (const GLuint *) bswap_32_array((uint32_t *) (pc + 4),
- 0));
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_DeleteTexturesEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 0);
-
- glDeleteTextures(n,
- (const GLuint *) bswap_32_array((uint32_t *) (pc + 4),
- 0));
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GenTextures(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 0);
-
- GLuint answerBuffer[200];
- GLuint *textures =
- __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer),
- 4);
- glGenTextures(n, textures);
- (void) bswap_32_array((uint32_t *) textures, n);
- __glXSendReplySwap(cl->client, textures, n, 4, GL_TRUE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GenTexturesEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 0);
-
- GLuint answerBuffer[200];
- GLuint *textures =
- __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer),
- 4);
- glGenTextures(n, textures);
- (void) bswap_32_array((uint32_t *) textures, n);
- __glXSendReplySwap(cl->client, textures, n, 4, GL_TRUE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_IsTexture(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- GLboolean retval;
-
- retval = glIsTexture((GLuint) bswap_CARD32(pc + 0));
- __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_IsTextureEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLboolean retval;
-
- retval = glIsTexture((GLuint) bswap_CARD32(pc + 0));
- __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDispSwap_PrioritizeTextures(GLbyte * pc)
-{
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 0);
-
- glPrioritizeTextures(n,
- (const GLuint *) bswap_32_array((uint32_t *) (pc + 4),
- 0),
- (const GLclampf *)
- bswap_32_array((uint32_t *) (pc + 4), 0));
-}
-
-void
-__glXDispSwap_TexSubImage1D(GLbyte * pc)
-{
- const GLvoid *const pixels = (const GLvoid *) ((pc + 56));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32(&hdr->rowLength));
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32(&hdr->skipRows));
- glPixelStorei(GL_UNPACK_SKIP_PIXELS,
- (GLint) bswap_CARD32(&hdr->skipPixels));
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32(&hdr->alignment));
-
- glTexSubImage1D((GLenum) bswap_ENUM(pc + 20),
- (GLint) bswap_CARD32(pc + 24),
- (GLint) bswap_CARD32(pc + 28),
- (GLsizei) bswap_CARD32(pc + 36),
- (GLenum) bswap_ENUM(pc + 44),
- (GLenum) bswap_ENUM(pc + 48), pixels);
-}
-
-void
-__glXDispSwap_TexSubImage2D(GLbyte * pc)
-{
- const GLvoid *const pixels = (const GLvoid *) ((pc + 56));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32(&hdr->rowLength));
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32(&hdr->skipRows));
- glPixelStorei(GL_UNPACK_SKIP_PIXELS,
- (GLint) bswap_CARD32(&hdr->skipPixels));
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32(&hdr->alignment));
-
- glTexSubImage2D((GLenum) bswap_ENUM(pc + 20),
- (GLint) bswap_CARD32(pc + 24),
- (GLint) bswap_CARD32(pc + 28),
- (GLint) bswap_CARD32(pc + 32),
- (GLsizei) bswap_CARD32(pc + 36),
- (GLsizei) bswap_CARD32(pc + 40),
- (GLenum) bswap_ENUM(pc + 44),
- (GLenum) bswap_ENUM(pc + 48), pixels);
-}
-
-void
-__glXDispSwap_BlendColor(GLbyte * pc)
-{
- glBlendColor((GLclampf) bswap_FLOAT32(pc + 0),
- (GLclampf) bswap_FLOAT32(pc + 4),
- (GLclampf) bswap_FLOAT32(pc + 8),
- (GLclampf) bswap_FLOAT32(pc + 12));
-}
-
-void
-__glXDispSwap_BlendEquation(GLbyte * pc)
-{
- glBlendEquation((GLenum) bswap_ENUM(pc + 0));
-}
-
-void
-__glXDispSwap_ColorTable(GLbyte * pc)
-{
- const GLvoid *const table = (const GLvoid *) ((pc + 40));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32(&hdr->rowLength));
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32(&hdr->skipRows));
- glPixelStorei(GL_UNPACK_SKIP_PIXELS,
- (GLint) bswap_CARD32(&hdr->skipPixels));
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32(&hdr->alignment));
-
- glColorTable((GLenum) bswap_ENUM(pc + 20),
- (GLenum) bswap_ENUM(pc + 24),
- (GLsizei) bswap_CARD32(pc + 28),
- (GLenum) bswap_ENUM(pc + 32),
- (GLenum) bswap_ENUM(pc + 36), table);
-}
-
-void
-__glXDispSwap_ColorTableParameterfv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
- const GLfloat *params;
-
- params =
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8),
- __glColorTableParameterfv_size(pname));
-
- glColorTableParameterfv((GLenum) bswap_ENUM(pc + 0), pname, params);
-}
-
-void
-__glXDispSwap_ColorTableParameteriv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
- const GLint *params;
-
- params =
- (const GLint *) bswap_32_array((uint32_t *) (pc + 8),
- __glColorTableParameteriv_size(pname));
-
- glColorTableParameteriv((GLenum) bswap_ENUM(pc + 0), pname, params);
-}
-
-void
-__glXDispSwap_CopyColorTable(GLbyte * pc)
-{
- glCopyColorTable((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4),
- (GLint) bswap_CARD32(pc + 8),
- (GLint) bswap_CARD32(pc + 12),
- (GLsizei) bswap_CARD32(pc + 16));
-}
-
-int
-__glXDispSwap_GetColorTableParameterfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetColorTableParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetColorTableParameterfv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetColorTableParameterfvSGI(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetColorTableParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetColorTableParameterfv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetColorTableParameteriv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetColorTableParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetColorTableParameteriv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetColorTableParameterivSGI(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetColorTableParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetColorTableParameteriv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDispSwap_ColorSubTable(GLbyte * pc)
-{
- const GLvoid *const data = (const GLvoid *) ((pc + 40));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32(&hdr->rowLength));
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32(&hdr->skipRows));
- glPixelStorei(GL_UNPACK_SKIP_PIXELS,
- (GLint) bswap_CARD32(&hdr->skipPixels));
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32(&hdr->alignment));
-
- glColorSubTable((GLenum) bswap_ENUM(pc + 20),
- (GLsizei) bswap_CARD32(pc + 24),
- (GLsizei) bswap_CARD32(pc + 28),
- (GLenum) bswap_ENUM(pc + 32),
- (GLenum) bswap_ENUM(pc + 36), data);
-}
-
-void
-__glXDispSwap_CopyColorSubTable(GLbyte * pc)
-{
- glCopyColorSubTable((GLenum) bswap_ENUM(pc + 0),
- (GLsizei) bswap_CARD32(pc + 4),
- (GLint) bswap_CARD32(pc + 8),
- (GLint) bswap_CARD32(pc + 12),
- (GLsizei) bswap_CARD32(pc + 16));
-}
-
-void
-__glXDispSwap_ConvolutionFilter1D(GLbyte * pc)
-{
- const GLvoid *const image = (const GLvoid *) ((pc + 44));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32(&hdr->rowLength));
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32(&hdr->skipRows));
- glPixelStorei(GL_UNPACK_SKIP_PIXELS,
- (GLint) bswap_CARD32(&hdr->skipPixels));
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32(&hdr->alignment));
-
- glConvolutionFilter1D((GLenum) bswap_ENUM(pc + 20),
- (GLenum) bswap_ENUM(pc + 24),
- (GLsizei) bswap_CARD32(pc + 28),
- (GLenum) bswap_ENUM(pc + 36),
- (GLenum) bswap_ENUM(pc + 40), image);
-}
-
-void
-__glXDispSwap_ConvolutionFilter2D(GLbyte * pc)
-{
- const GLvoid *const image = (const GLvoid *) ((pc + 44));
- __GLXpixelHeader *const hdr = (__GLXpixelHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32(&hdr->rowLength));
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32(&hdr->skipRows));
- glPixelStorei(GL_UNPACK_SKIP_PIXELS,
- (GLint) bswap_CARD32(&hdr->skipPixels));
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32(&hdr->alignment));
-
- glConvolutionFilter2D((GLenum) bswap_ENUM(pc + 20),
- (GLenum) bswap_ENUM(pc + 24),
- (GLsizei) bswap_CARD32(pc + 28),
- (GLsizei) bswap_CARD32(pc + 32),
- (GLenum) bswap_ENUM(pc + 36),
- (GLenum) bswap_ENUM(pc + 40), image);
-}
-
-void
-__glXDispSwap_ConvolutionParameterf(GLbyte * pc)
-{
- glConvolutionParameterf((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4),
- (GLfloat) bswap_FLOAT32(pc + 8));
-}
-
-void
-__glXDispSwap_ConvolutionParameterfv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
- const GLfloat *params;
-
- params =
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8),
- __glConvolutionParameterfv_size
- (pname));
-
- glConvolutionParameterfv((GLenum) bswap_ENUM(pc + 0), pname, params);
-}
-
-void
-__glXDispSwap_ConvolutionParameteri(GLbyte * pc)
-{
- glConvolutionParameteri((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4),
- (GLint) bswap_CARD32(pc + 8));
-}
-
-void
-__glXDispSwap_ConvolutionParameteriv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
- const GLint *params;
-
- params =
- (const GLint *) bswap_32_array((uint32_t *) (pc + 8),
- __glConvolutionParameteriv_size(pname));
-
- glConvolutionParameteriv((GLenum) bswap_ENUM(pc + 0), pname, params);
-}
-
-void
-__glXDispSwap_CopyConvolutionFilter1D(GLbyte * pc)
-{
- glCopyConvolutionFilter1D((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4),
- (GLint) bswap_CARD32(pc + 8),
- (GLint) bswap_CARD32(pc + 12),
- (GLsizei) bswap_CARD32(pc + 16));
-}
-
-void
-__glXDispSwap_CopyConvolutionFilter2D(GLbyte * pc)
-{
- glCopyConvolutionFilter2D((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4),
- (GLint) bswap_CARD32(pc + 8),
- (GLint) bswap_CARD32(pc + 12),
- (GLsizei) bswap_CARD32(pc + 16),
- (GLsizei) bswap_CARD32(pc + 20));
-}
-
-int
-__glXDispSwap_GetConvolutionParameterfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetConvolutionParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetConvolutionParameterfv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetConvolutionParameterfvEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetConvolutionParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetConvolutionParameterfv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetConvolutionParameteriv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetConvolutionParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetConvolutionParameteriv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetConvolutionParameterivEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetConvolutionParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetConvolutionParameteriv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetHistogramParameterfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetHistogramParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetHistogramParameterfv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetHistogramParameterfvEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetHistogramParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetHistogramParameterfv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetHistogramParameteriv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetHistogramParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetHistogramParameteriv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetHistogramParameterivEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetHistogramParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetHistogramParameteriv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetMinmaxParameterfv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetMinmaxParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetMinmaxParameterfv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetMinmaxParameterfvEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetMinmaxParameterfv_size(pname);
- GLfloat answerBuffer[200];
- GLfloat *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetMinmaxParameterfv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetMinmaxParameteriv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetMinmaxParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetMinmaxParameteriv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetMinmaxParameterivEXT(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetMinmaxParameteriv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetMinmaxParameteriv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDispSwap_Histogram(GLbyte * pc)
-{
- glHistogram((GLenum) bswap_ENUM(pc + 0),
- (GLsizei) bswap_CARD32(pc + 4),
- (GLenum) bswap_ENUM(pc + 8), *(GLboolean *) (pc + 12));
-}
-
-void
-__glXDispSwap_Minmax(GLbyte * pc)
-{
- glMinmax((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4), *(GLboolean *) (pc + 8));
-}
-
-void
-__glXDispSwap_ResetHistogram(GLbyte * pc)
-{
- glResetHistogram((GLenum) bswap_ENUM(pc + 0));
-}
-
-void
-__glXDispSwap_ResetMinmax(GLbyte * pc)
-{
- glResetMinmax((GLenum) bswap_ENUM(pc + 0));
-}
-
-void
-__glXDispSwap_TexImage3D(GLbyte * pc)
-{
- const CARD32 ptr_is_null = *(CARD32 *) (pc + 76);
- const GLvoid *const pixels =
- (const GLvoid *) ((ptr_is_null != 0) ? NULL : (pc + 80));
- __GLXpixel3DHeader *const hdr = (__GLXpixel3DHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32(&hdr->rowLength));
- glPixelStorei(GL_UNPACK_IMAGE_HEIGHT,
- (GLint) bswap_CARD32(&hdr->imageHeight));
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32(&hdr->skipRows));
- glPixelStorei(GL_UNPACK_SKIP_IMAGES,
- (GLint) bswap_CARD32(&hdr->skipImages));
- glPixelStorei(GL_UNPACK_SKIP_PIXELS,
- (GLint) bswap_CARD32(&hdr->skipPixels));
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32(&hdr->alignment));
-
- glTexImage3D((GLenum) bswap_ENUM(pc + 36),
- (GLint) bswap_CARD32(pc + 40),
- (GLint) bswap_CARD32(pc + 44),
- (GLsizei) bswap_CARD32(pc + 48),
- (GLsizei) bswap_CARD32(pc + 52),
- (GLsizei) bswap_CARD32(pc + 56),
- (GLint) bswap_CARD32(pc + 64),
- (GLenum) bswap_ENUM(pc + 68),
- (GLenum) bswap_ENUM(pc + 72), pixels);
-}
-
-void
-__glXDispSwap_TexSubImage3D(GLbyte * pc)
-{
- const GLvoid *const pixels = (const GLvoid *) ((pc + 88));
- __GLXpixel3DHeader *const hdr = (__GLXpixel3DHeader *) (pc);
-
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32(&hdr->rowLength));
- glPixelStorei(GL_UNPACK_IMAGE_HEIGHT,
- (GLint) bswap_CARD32(&hdr->imageHeight));
- glPixelStorei(GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32(&hdr->skipRows));
- glPixelStorei(GL_UNPACK_SKIP_IMAGES,
- (GLint) bswap_CARD32(&hdr->skipImages));
- glPixelStorei(GL_UNPACK_SKIP_PIXELS,
- (GLint) bswap_CARD32(&hdr->skipPixels));
- glPixelStorei(GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32(&hdr->alignment));
-
- glTexSubImage3D((GLenum) bswap_ENUM(pc + 36),
- (GLint) bswap_CARD32(pc + 40),
- (GLint) bswap_CARD32(pc + 44),
- (GLint) bswap_CARD32(pc + 48),
- (GLint) bswap_CARD32(pc + 52),
- (GLsizei) bswap_CARD32(pc + 60),
- (GLsizei) bswap_CARD32(pc + 64),
- (GLsizei) bswap_CARD32(pc + 68),
- (GLenum) bswap_ENUM(pc + 76),
- (GLenum) bswap_ENUM(pc + 80), pixels);
-}
-
-void
-__glXDispSwap_CopyTexSubImage3D(GLbyte * pc)
-{
- glCopyTexSubImage3D((GLenum) bswap_ENUM(pc + 0),
- (GLint) bswap_CARD32(pc + 4),
- (GLint) bswap_CARD32(pc + 8),
- (GLint) bswap_CARD32(pc + 12),
- (GLint) bswap_CARD32(pc + 16),
- (GLint) bswap_CARD32(pc + 20),
- (GLint) bswap_CARD32(pc + 24),
- (GLsizei) bswap_CARD32(pc + 28),
- (GLsizei) bswap_CARD32(pc + 32));
-}
-
-void
-__glXDispSwap_ActiveTexture(GLbyte * pc)
-{
- glActiveTexture((GLenum) bswap_ENUM(pc + 0));
-}
-
-void
-__glXDispSwap_MultiTexCoord1dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 12);
- pc -= 4;
- }
-#endif
-
- glMultiTexCoord1dv((GLenum) bswap_ENUM(pc + 8),
- (const GLdouble *) bswap_64_array((uint64_t *) (pc + 0),
- 1));
-}
-
-void
-__glXDispSwap_MultiTexCoord1fvARB(GLbyte * pc)
-{
- glMultiTexCoord1fvARB((GLenum) bswap_ENUM(pc + 0),
- (const GLfloat *)
- bswap_32_array((uint32_t *) (pc + 4), 1));
-}
-
-void
-__glXDispSwap_MultiTexCoord1iv(GLbyte * pc)
-{
- glMultiTexCoord1iv((GLenum) bswap_ENUM(pc + 0),
- (const GLint *) bswap_32_array((uint32_t *) (pc + 4),
- 1));
-}
-
-void
-__glXDispSwap_MultiTexCoord1sv(GLbyte * pc)
-{
- glMultiTexCoord1sv((GLenum) bswap_ENUM(pc + 0),
- (const GLshort *) bswap_16_array((uint16_t *) (pc + 4),
- 1));
-}
-
-void
-__glXDispSwap_MultiTexCoord2dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 20);
- pc -= 4;
- }
-#endif
-
- glMultiTexCoord2dv((GLenum) bswap_ENUM(pc + 16),
- (const GLdouble *) bswap_64_array((uint64_t *) (pc + 0),
- 2));
-}
-
-void
-__glXDispSwap_MultiTexCoord2fvARB(GLbyte * pc)
-{
- glMultiTexCoord2fvARB((GLenum) bswap_ENUM(pc + 0),
- (const GLfloat *)
- bswap_32_array((uint32_t *) (pc + 4), 2));
-}
-
-void
-__glXDispSwap_MultiTexCoord2iv(GLbyte * pc)
-{
- glMultiTexCoord2iv((GLenum) bswap_ENUM(pc + 0),
- (const GLint *) bswap_32_array((uint32_t *) (pc + 4),
- 2));
-}
-
-void
-__glXDispSwap_MultiTexCoord2sv(GLbyte * pc)
-{
- glMultiTexCoord2sv((GLenum) bswap_ENUM(pc + 0),
- (const GLshort *) bswap_16_array((uint16_t *) (pc + 4),
- 2));
-}
-
-void
-__glXDispSwap_MultiTexCoord3dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 28);
- pc -= 4;
- }
-#endif
-
- glMultiTexCoord3dv((GLenum) bswap_ENUM(pc + 24),
- (const GLdouble *) bswap_64_array((uint64_t *) (pc + 0),
- 3));
-}
-
-void
-__glXDispSwap_MultiTexCoord3fvARB(GLbyte * pc)
-{
- glMultiTexCoord3fvARB((GLenum) bswap_ENUM(pc + 0),
- (const GLfloat *)
- bswap_32_array((uint32_t *) (pc + 4), 3));
-}
-
-void
-__glXDispSwap_MultiTexCoord3iv(GLbyte * pc)
-{
- glMultiTexCoord3iv((GLenum) bswap_ENUM(pc + 0),
- (const GLint *) bswap_32_array((uint32_t *) (pc + 4),
- 3));
-}
-
-void
-__glXDispSwap_MultiTexCoord3sv(GLbyte * pc)
-{
- glMultiTexCoord3sv((GLenum) bswap_ENUM(pc + 0),
- (const GLshort *) bswap_16_array((uint16_t *) (pc + 4),
- 3));
-}
-
-void
-__glXDispSwap_MultiTexCoord4dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 36);
- pc -= 4;
- }
-#endif
-
- glMultiTexCoord4dv((GLenum) bswap_ENUM(pc + 32),
- (const GLdouble *) bswap_64_array((uint64_t *) (pc + 0),
- 4));
-}
-
-void
-__glXDispSwap_MultiTexCoord4fvARB(GLbyte * pc)
-{
- glMultiTexCoord4fvARB((GLenum) bswap_ENUM(pc + 0),
- (const GLfloat *)
- bswap_32_array((uint32_t *) (pc + 4), 4));
-}
-
-void
-__glXDispSwap_MultiTexCoord4iv(GLbyte * pc)
-{
- glMultiTexCoord4iv((GLenum) bswap_ENUM(pc + 0),
- (const GLint *) bswap_32_array((uint32_t *) (pc + 4),
- 4));
-}
-
-void
-__glXDispSwap_MultiTexCoord4sv(GLbyte * pc)
-{
- glMultiTexCoord4sv((GLenum) bswap_ENUM(pc + 0),
- (const GLshort *) bswap_16_array((uint16_t *) (pc + 4),
- 4));
-}
-
-void
-__glXDispSwap_CompressedTexImage1D(GLbyte * pc)
-{
- const GLsizei imageSize = (GLsizei) bswap_CARD32(pc + 20);
-
- glCompressedTexImage1D((GLenum) bswap_ENUM(pc + 0),
- (GLint) bswap_CARD32(pc + 4),
- (GLenum) bswap_ENUM(pc + 8),
- (GLsizei) bswap_CARD32(pc + 12),
- (GLint) bswap_CARD32(pc + 16),
- imageSize, (const GLvoid *) (pc + 24));
-}
-
-void
-__glXDispSwap_CompressedTexImage2D(GLbyte * pc)
-{
- const GLsizei imageSize = (GLsizei) bswap_CARD32(pc + 24);
-
- glCompressedTexImage2D((GLenum) bswap_ENUM(pc + 0),
- (GLint) bswap_CARD32(pc + 4),
- (GLenum) bswap_ENUM(pc + 8),
- (GLsizei) bswap_CARD32(pc + 12),
- (GLsizei) bswap_CARD32(pc + 16),
- (GLint) bswap_CARD32(pc + 20),
- imageSize, (const GLvoid *) (pc + 28));
-}
-
-void
-__glXDispSwap_CompressedTexImage3D(GLbyte * pc)
-{
- const GLsizei imageSize = (GLsizei) bswap_CARD32(pc + 28);
-
- glCompressedTexImage3D((GLenum) bswap_ENUM(pc + 0),
- (GLint) bswap_CARD32(pc + 4),
- (GLenum) bswap_ENUM(pc + 8),
- (GLsizei) bswap_CARD32(pc + 12),
- (GLsizei) bswap_CARD32(pc + 16),
- (GLsizei) bswap_CARD32(pc + 20),
- (GLint) bswap_CARD32(pc + 24),
- imageSize, (const GLvoid *) (pc + 32));
-}
-
-void
-__glXDispSwap_CompressedTexSubImage1D(GLbyte * pc)
-{
- const GLsizei imageSize = (GLsizei) bswap_CARD32(pc + 20);
-
- glCompressedTexSubImage1D((GLenum) bswap_ENUM(pc + 0),
- (GLint) bswap_CARD32(pc + 4),
- (GLint) bswap_CARD32(pc + 8),
- (GLsizei) bswap_CARD32(pc + 12),
- (GLenum) bswap_ENUM(pc + 16),
- imageSize, (const GLvoid *) (pc + 24));
-}
-
-void
-__glXDispSwap_CompressedTexSubImage2D(GLbyte * pc)
-{
- const GLsizei imageSize = (GLsizei) bswap_CARD32(pc + 28);
-
- glCompressedTexSubImage2D((GLenum) bswap_ENUM(pc + 0),
- (GLint) bswap_CARD32(pc + 4),
- (GLint) bswap_CARD32(pc + 8),
- (GLint) bswap_CARD32(pc + 12),
- (GLsizei) bswap_CARD32(pc + 16),
- (GLsizei) bswap_CARD32(pc + 20),
- (GLenum) bswap_ENUM(pc + 24),
- imageSize, (const GLvoid *) (pc + 32));
-}
-
-void
-__glXDispSwap_CompressedTexSubImage3D(GLbyte * pc)
-{
- const GLsizei imageSize = (GLsizei) bswap_CARD32(pc + 36);
-
- glCompressedTexSubImage3D((GLenum) bswap_ENUM(pc + 0),
- (GLint) bswap_CARD32(pc + 4),
- (GLint) bswap_CARD32(pc + 8),
- (GLint) bswap_CARD32(pc + 12),
- (GLint) bswap_CARD32(pc + 16),
- (GLsizei) bswap_CARD32(pc + 20),
- (GLsizei) bswap_CARD32(pc + 24),
- (GLsizei) bswap_CARD32(pc + 28),
- (GLenum) bswap_ENUM(pc + 32),
- imageSize, (const GLvoid *) (pc + 40));
-}
-
-void
-__glXDispSwap_SampleCoverage(GLbyte * pc)
-{
- glSampleCoverage((GLclampf) bswap_FLOAT32(pc + 0), *(GLboolean *) (pc + 4));
-}
-
-void
-__glXDispSwap_BlendFuncSeparate(GLbyte * pc)
-{
- glBlendFuncSeparate((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4),
- (GLenum) bswap_ENUM(pc + 8),
- (GLenum) bswap_ENUM(pc + 12));
-}
-
-void
-__glXDispSwap_FogCoorddv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 8);
- pc -= 4;
- }
-#endif
-
- glFogCoorddv((const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), 1));
-}
-
-void
-__glXDispSwap_PointParameterf(GLbyte * pc)
-{
- glPointParameterf((GLenum) bswap_ENUM(pc + 0),
- (GLfloat) bswap_FLOAT32(pc + 4));
-}
-
-void
-__glXDispSwap_PointParameterfv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 0);
- const GLfloat *params;
-
- params =
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4),
- __glPointParameterfv_size(pname));
-
- glPointParameterfv(pname, params);
-}
-
-void
-__glXDispSwap_PointParameteri(GLbyte * pc)
-{
- glPointParameteri((GLenum) bswap_ENUM(pc + 0),
- (GLint) bswap_CARD32(pc + 4));
-}
-
-void
-__glXDispSwap_PointParameteriv(GLbyte * pc)
-{
- const GLenum pname = (GLenum) bswap_ENUM(pc + 0);
- const GLint *params;
-
- params =
- (const GLint *) bswap_32_array((uint32_t *) (pc + 4),
- __glPointParameteriv_size(pname));
-
- glPointParameteriv(pname, params);
-}
-
-void
-__glXDispSwap_SecondaryColor3bv(GLbyte * pc)
-{
- glSecondaryColor3bv((const GLbyte *) (pc + 0));
-}
-
-void
-__glXDispSwap_SecondaryColor3dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 24);
- pc -= 4;
- }
-#endif
-
- glSecondaryColor3dv((const GLdouble *)
- bswap_64_array((uint64_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_SecondaryColor3iv(GLbyte * pc)
-{
- glSecondaryColor3iv((const GLint *)
- bswap_32_array((uint32_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_SecondaryColor3sv(GLbyte * pc)
-{
- glSecondaryColor3sv((const GLshort *)
- bswap_16_array((uint16_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_SecondaryColor3ubv(GLbyte * pc)
-{
- glSecondaryColor3ubv((const GLubyte *) (pc + 0));
-}
-
-void
-__glXDispSwap_SecondaryColor3uiv(GLbyte * pc)
-{
- glSecondaryColor3uiv((const GLuint *)
- bswap_32_array((uint32_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_SecondaryColor3usv(GLbyte * pc)
-{
- glSecondaryColor3usv((const GLushort *)
- bswap_16_array((uint16_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_WindowPos3fv(GLbyte * pc)
-{
- glWindowPos3fv((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_BeginQuery(GLbyte * pc)
-{
- glBeginQuery((GLenum) bswap_ENUM(pc + 0), (GLuint) bswap_CARD32(pc + 4));
-}
-
-int
-__glXDispSwap_DeleteQueries(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 0);
-
- glDeleteQueries(n,
- (const GLuint *) bswap_32_array((uint32_t *) (pc + 4),
- 0));
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDispSwap_EndQuery(GLbyte * pc)
-{
- glEndQuery((GLenum) bswap_ENUM(pc + 0));
-}
-
-int
-__glXDispSwap_GenQueries(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 0);
-
- GLuint answerBuffer[200];
- GLuint *ids =
- __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer),
- 4);
- glGenQueries(n, ids);
- (void) bswap_32_array((uint32_t *) ids, n);
- __glXSendReplySwap(cl->client, ids, n, 4, GL_TRUE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetQueryObjectiv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetQueryObjectiv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetQueryObjectiv((GLuint) bswap_CARD32(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetQueryObjectuiv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetQueryObjectuiv_size(pname);
- GLuint answerBuffer[200];
- GLuint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetQueryObjectuiv((GLuint) bswap_CARD32(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetQueryiv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetQueryiv_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetQueryiv((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_IsQuery(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXSingleReq *const req = (xGLXSingleReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_SINGLE_HDR_SIZE;
- if (cx != NULL) {
- GLboolean retval;
-
- retval = glIsQuery((GLuint) bswap_CARD32(pc + 0));
- __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDispSwap_BlendEquationSeparate(GLbyte * pc)
-{
- glBlendEquationSeparate((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4));
-}
-
-void
-__glXDispSwap_DrawBuffers(GLbyte * pc)
-{
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 0);
-
- glDrawBuffers(n, (const GLenum *) bswap_32_array((uint32_t *) (pc + 4), 0));
-}
-
-void
-__glXDispSwap_VertexAttrib1dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 12);
- pc -= 4;
- }
-#endif
-
- glVertexAttrib1dv((GLuint) bswap_CARD32(pc + 0),
- (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4),
- 1));
-}
-
-void
-__glXDispSwap_VertexAttrib1sv(GLbyte * pc)
-{
- glVertexAttrib1sv((GLuint) bswap_CARD32(pc + 0),
- (const GLshort *) bswap_16_array((uint16_t *) (pc + 4),
- 1));
-}
-
-void
-__glXDispSwap_VertexAttrib2dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 20);
- pc -= 4;
- }
-#endif
-
- glVertexAttrib2dv((GLuint) bswap_CARD32(pc + 0),
- (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4),
- 2));
-}
-
-void
-__glXDispSwap_VertexAttrib2sv(GLbyte * pc)
-{
- glVertexAttrib2sv((GLuint) bswap_CARD32(pc + 0),
- (const GLshort *) bswap_16_array((uint16_t *) (pc + 4),
- 2));
-}
-
-void
-__glXDispSwap_VertexAttrib3dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 28);
- pc -= 4;
- }
-#endif
-
- glVertexAttrib3dv((GLuint) bswap_CARD32(pc + 0),
- (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4),
- 3));
-}
-
-void
-__glXDispSwap_VertexAttrib3sv(GLbyte * pc)
-{
- glVertexAttrib3sv((GLuint) bswap_CARD32(pc + 0),
- (const GLshort *) bswap_16_array((uint16_t *) (pc + 4),
- 3));
-}
-
-void
-__glXDispSwap_VertexAttrib4Nbv(GLbyte * pc)
-{
- glVertexAttrib4Nbv((GLuint) bswap_CARD32(pc + 0),
- (const GLbyte *) (pc + 4));
-}
-
-void
-__glXDispSwap_VertexAttrib4Niv(GLbyte * pc)
-{
- glVertexAttrib4Niv((GLuint) bswap_CARD32(pc + 0),
- (const GLint *) bswap_32_array((uint32_t *) (pc + 4),
- 4));
-}
-
-void
-__glXDispSwap_VertexAttrib4Nsv(GLbyte * pc)
-{
- glVertexAttrib4Nsv((GLuint) bswap_CARD32(pc + 0),
- (const GLshort *) bswap_16_array((uint16_t *) (pc + 4),
- 4));
-}
-
-void
-__glXDispSwap_VertexAttrib4Nubv(GLbyte * pc)
-{
- glVertexAttrib4Nubv((GLuint) bswap_CARD32(pc + 0),
- (const GLubyte *) (pc + 4));
-}
-
-void
-__glXDispSwap_VertexAttrib4Nuiv(GLbyte * pc)
-{
- glVertexAttrib4Nuiv((GLuint) bswap_CARD32(pc + 0),
- (const GLuint *) bswap_32_array((uint32_t *) (pc + 4),
- 4));
-}
-
-void
-__glXDispSwap_VertexAttrib4Nusv(GLbyte * pc)
-{
- glVertexAttrib4Nusv((GLuint) bswap_CARD32(pc + 0),
- (const GLushort *) bswap_16_array((uint16_t *) (pc + 4),
- 4));
-}
-
-void
-__glXDispSwap_VertexAttrib4bv(GLbyte * pc)
-{
- glVertexAttrib4bv((GLuint) bswap_CARD32(pc + 0), (const GLbyte *) (pc + 4));
-}
-
-void
-__glXDispSwap_VertexAttrib4dv(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 36);
- pc -= 4;
- }
-#endif
-
- glVertexAttrib4dv((GLuint) bswap_CARD32(pc + 0),
- (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4),
- 4));
-}
-
-void
-__glXDispSwap_VertexAttrib4iv(GLbyte * pc)
-{
- glVertexAttrib4iv((GLuint) bswap_CARD32(pc + 0),
- (const GLint *) bswap_32_array((uint32_t *) (pc + 4), 4));
-}
-
-void
-__glXDispSwap_VertexAttrib4sv(GLbyte * pc)
-{
- glVertexAttrib4sv((GLuint) bswap_CARD32(pc + 0),
- (const GLshort *) bswap_16_array((uint16_t *) (pc + 4),
- 4));
-}
-
-void
-__glXDispSwap_VertexAttrib4ubv(GLbyte * pc)
-{
- glVertexAttrib4ubv((GLuint) bswap_CARD32(pc + 0),
- (const GLubyte *) (pc + 4));
-}
-
-void
-__glXDispSwap_VertexAttrib4uiv(GLbyte * pc)
-{
- glVertexAttrib4uiv((GLuint) bswap_CARD32(pc + 0),
- (const GLuint *) bswap_32_array((uint32_t *) (pc + 4),
- 4));
-}
-
-void
-__glXDispSwap_VertexAttrib4usv(GLbyte * pc)
-{
- glVertexAttrib4usv((GLuint) bswap_CARD32(pc + 0),
- (const GLushort *) bswap_16_array((uint16_t *) (pc + 4),
- 4));
-}
-
-void
-__glXDispSwap_ClampColor(GLbyte * pc)
-{
- glClampColor((GLenum) bswap_ENUM(pc + 0), (GLenum) bswap_ENUM(pc + 4));
-}
-
-void
-__glXDispSwap_BindProgramARB(GLbyte * pc)
-{
- glBindProgramARB((GLenum) bswap_ENUM(pc + 0),
- (GLuint) bswap_CARD32(pc + 4));
-}
-
-int
-__glXDispSwap_DeleteProgramsARB(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 0);
-
- glDeleteProgramsARB(n,
- (const GLuint *)
- bswap_32_array((uint32_t *) (pc + 4), 0));
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GenProgramsARB(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 0);
-
- GLuint answerBuffer[200];
- GLuint *programs =
- __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer),
- 4);
- glGenProgramsARB(n, programs);
- (void) bswap_32_array((uint32_t *) programs, n);
- __glXSendReplySwap(cl->client, programs, n, 4, GL_TRUE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetProgramEnvParameterdvARB(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLdouble params[4];
-
- glGetProgramEnvParameterdvARB((GLenum) bswap_ENUM(pc + 0),
- (GLuint) bswap_CARD32(pc + 4), params);
- (void) bswap_64_array((uint64_t *) params, 4);
- __glXSendReplySwap(cl->client, params, 4, 8, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetProgramEnvParameterfvARB(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLfloat params[4];
-
- glGetProgramEnvParameterfvARB((GLenum) bswap_ENUM(pc + 0),
- (GLuint) bswap_CARD32(pc + 4), params);
- (void) bswap_32_array((uint32_t *) params, 4);
- __glXSendReplySwap(cl->client, params, 4, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetProgramLocalParameterdvARB(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLdouble params[4];
-
- glGetProgramLocalParameterdvARB((GLenum) bswap_ENUM(pc + 0),
- (GLuint) bswap_CARD32(pc + 4), params);
- (void) bswap_64_array((uint64_t *) params, 4);
- __glXSendReplySwap(cl->client, params, 4, 8, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetProgramLocalParameterfvARB(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLfloat params[4];
-
- glGetProgramLocalParameterfvARB((GLenum) bswap_ENUM(pc + 0),
- (GLuint) bswap_CARD32(pc + 4), params);
- (void) bswap_32_array((uint32_t *) params, 4);
- __glXSendReplySwap(cl->client, params, 4, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetProgramivARB(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLenum pname = (GLenum) bswap_ENUM(pc + 4);
-
- const GLuint compsize = __glGetProgramivARB_size(pname);
- GLint answerBuffer[200];
- GLint *params =
- __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer,
- sizeof(answerBuffer), 4);
-
- if (params == NULL)
- return BadAlloc;
- __glXClearErrorOccured();
-
- glGetProgramivARB((GLenum) bswap_ENUM(pc + 0), pname, params);
- (void) bswap_32_array((uint32_t *) params, compsize);
- __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_IsProgramARB(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLboolean retval;
-
- retval = glIsProgramARB((GLuint) bswap_CARD32(pc + 0));
- __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDispSwap_ProgramEnvParameter4dvARB(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 40);
- pc -= 4;
- }
-#endif
-
- glProgramEnvParameter4dvARB((GLenum) bswap_ENUM(pc + 0),
- (GLuint) bswap_CARD32(pc + 4),
- (const GLdouble *)
- bswap_64_array((uint64_t *) (pc + 8), 4));
-}
-
-void
-__glXDispSwap_ProgramEnvParameter4fvARB(GLbyte * pc)
-{
- glProgramEnvParameter4fvARB((GLenum) bswap_ENUM(pc + 0),
- (GLuint) bswap_CARD32(pc + 4),
- (const GLfloat *)
- bswap_32_array((uint32_t *) (pc + 8), 4));
-}
-
-void
-__glXDispSwap_ProgramLocalParameter4dvARB(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 40);
- pc -= 4;
- }
-#endif
-
- glProgramLocalParameter4dvARB((GLenum) bswap_ENUM(pc + 0),
- (GLuint) bswap_CARD32(pc + 4),
- (const GLdouble *)
- bswap_64_array((uint64_t *) (pc + 8), 4));
-}
-
-void
-__glXDispSwap_ProgramLocalParameter4fvARB(GLbyte * pc)
-{
- glProgramLocalParameter4fvARB((GLenum) bswap_ENUM(pc + 0),
- (GLuint) bswap_CARD32(pc + 4),
- (const GLfloat *)
- bswap_32_array((uint32_t *) (pc + 8), 4));
-}
-
-void
-__glXDispSwap_ProgramStringARB(GLbyte * pc)
-{
- const GLsizei len = (GLsizei) bswap_CARD32(pc + 8);
-
- glProgramStringARB((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4),
- len, (const GLvoid *) (pc + 12));
-}
-
-void
-__glXDispSwap_VertexAttrib1fvARB(GLbyte * pc)
-{
- glVertexAttrib1fvARB((GLuint) bswap_CARD32(pc + 0),
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4),
- 1));
-}
-
-void
-__glXDispSwap_VertexAttrib2fvARB(GLbyte * pc)
-{
- glVertexAttrib2fvARB((GLuint) bswap_CARD32(pc + 0),
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4),
- 2));
-}
-
-void
-__glXDispSwap_VertexAttrib3fvARB(GLbyte * pc)
-{
- glVertexAttrib3fvARB((GLuint) bswap_CARD32(pc + 0),
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4),
- 3));
-}
-
-void
-__glXDispSwap_VertexAttrib4fvARB(GLbyte * pc)
-{
- glVertexAttrib4fvARB((GLuint) bswap_CARD32(pc + 0),
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4),
- 4));
-}
-
-void
-__glXDispSwap_BindFramebuffer(GLbyte * pc)
-{
- glBindFramebuffer((GLenum) bswap_ENUM(pc + 0),
- (GLuint) bswap_CARD32(pc + 4));
-}
-
-void
-__glXDispSwap_BindRenderbuffer(GLbyte * pc)
-{
- glBindRenderbuffer((GLenum) bswap_ENUM(pc + 0),
- (GLuint) bswap_CARD32(pc + 4));
-}
-
-void
-__glXDispSwap_BlitFramebuffer(GLbyte * pc)
-{
- glBlitFramebuffer((GLint) bswap_CARD32(pc + 0),
- (GLint) bswap_CARD32(pc + 4),
- (GLint) bswap_CARD32(pc + 8),
- (GLint) bswap_CARD32(pc + 12),
- (GLint) bswap_CARD32(pc + 16),
- (GLint) bswap_CARD32(pc + 20),
- (GLint) bswap_CARD32(pc + 24),
- (GLint) bswap_CARD32(pc + 28),
- (GLbitfield) bswap_CARD32(pc + 32),
- (GLenum) bswap_ENUM(pc + 36));
-}
-
-int
-__glXDispSwap_CheckFramebufferStatus(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLenum retval;
-
- retval = glCheckFramebufferStatus((GLenum) bswap_ENUM(pc + 0));
- __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDispSwap_DeleteFramebuffers(GLbyte * pc)
-{
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 0);
-
- glDeleteFramebuffers(n,
- (const GLuint *) bswap_32_array((uint32_t *) (pc + 4),
- 0));
-}
-
-void
-__glXDispSwap_DeleteRenderbuffers(GLbyte * pc)
-{
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 0);
-
- glDeleteRenderbuffers(n,
- (const GLuint *) bswap_32_array((uint32_t *) (pc + 4),
- 0));
-}
-
-void
-__glXDispSwap_FramebufferRenderbuffer(GLbyte * pc)
-{
- glFramebufferRenderbuffer((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4),
- (GLenum) bswap_ENUM(pc + 8),
- (GLuint) bswap_CARD32(pc + 12));
-}
-
-void
-__glXDispSwap_FramebufferTexture1D(GLbyte * pc)
-{
- glFramebufferTexture1D((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4),
- (GLenum) bswap_ENUM(pc + 8),
- (GLuint) bswap_CARD32(pc + 12),
- (GLint) bswap_CARD32(pc + 16));
-}
-
-void
-__glXDispSwap_FramebufferTexture2D(GLbyte * pc)
-{
- glFramebufferTexture2D((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4),
- (GLenum) bswap_ENUM(pc + 8),
- (GLuint) bswap_CARD32(pc + 12),
- (GLint) bswap_CARD32(pc + 16));
-}
-
-void
-__glXDispSwap_FramebufferTexture3D(GLbyte * pc)
-{
- glFramebufferTexture3D((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4),
- (GLenum) bswap_ENUM(pc + 8),
- (GLuint) bswap_CARD32(pc + 12),
- (GLint) bswap_CARD32(pc + 16),
- (GLint) bswap_CARD32(pc + 20));
-}
-
-void
-__glXDispSwap_FramebufferTextureLayer(GLbyte * pc)
-{
- glFramebufferTextureLayer((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4),
- (GLuint) bswap_CARD32(pc + 8),
- (GLint) bswap_CARD32(pc + 12),
- (GLint) bswap_CARD32(pc + 16));
-}
-
-int
-__glXDispSwap_GenFramebuffers(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 0);
-
- GLuint answerBuffer[200];
- GLuint *framebuffers =
- __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer),
- 4);
- glGenFramebuffers(n, framebuffers);
- (void) bswap_32_array((uint32_t *) framebuffers, n);
- __glXSendReplySwap(cl->client, framebuffers, n, 4, GL_TRUE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GenRenderbuffers(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 0);
-
- GLuint answerBuffer[200];
- GLuint *renderbuffers =
- __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer),
- 4);
- glGenRenderbuffers(n, renderbuffers);
- (void) bswap_32_array((uint32_t *) renderbuffers, n);
- __glXSendReplySwap(cl->client, renderbuffers, n, 4, GL_TRUE, 0);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDispSwap_GenerateMipmap(GLbyte * pc)
-{
- glGenerateMipmap((GLenum) bswap_ENUM(pc + 0));
-}
-
-int
-__glXDispSwap_GetFramebufferAttachmentParameteriv(__GLXclientState * cl,
- GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLint params[1];
-
- glGetFramebufferAttachmentParameteriv((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4),
- (GLenum) bswap_ENUM(pc + 8),
- params);
- (void) bswap_32_array((uint32_t *) params, 1);
- __glXSendReplySwap(cl->client, params, 1, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_GetRenderbufferParameteriv(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLint params[1];
-
- glGetRenderbufferParameteriv((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4), params);
- (void) bswap_32_array((uint32_t *) params, 1);
- __glXSendReplySwap(cl->client, params, 1, 4, GL_FALSE, 0);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_IsFramebuffer(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLboolean retval;
-
- retval = glIsFramebuffer((GLuint) bswap_CARD32(pc + 0));
- __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-int
-__glXDispSwap_IsRenderbuffer(__GLXclientState * cl, GLbyte * pc)
-{
- xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc;
- int error;
- __GLXcontext *const cx =
- __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error);
-
- pc += __GLX_VENDPRIV_HDR_SIZE;
- if (cx != NULL) {
- GLboolean retval;
-
- retval = glIsRenderbuffer((GLuint) bswap_CARD32(pc + 0));
- __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
- error = Success;
- }
-
- return error;
-}
-
-void
-__glXDispSwap_RenderbufferStorage(GLbyte * pc)
-{
- glRenderbufferStorage((GLenum) bswap_ENUM(pc + 0),
- (GLenum) bswap_ENUM(pc + 4),
- (GLsizei) bswap_CARD32(pc + 8),
- (GLsizei) bswap_CARD32(pc + 12));
-}
-
-void
-__glXDispSwap_RenderbufferStorageMultisample(GLbyte * pc)
-{
- glRenderbufferStorageMultisample((GLenum) bswap_ENUM(pc + 0),
- (GLsizei) bswap_CARD32(pc + 4),
- (GLenum) bswap_ENUM(pc + 8),
- (GLsizei) bswap_CARD32(pc + 12),
- (GLsizei) bswap_CARD32(pc + 16));
-}
-
-void
-__glXDispSwap_SecondaryColor3fvEXT(GLbyte * pc)
-{
- glSecondaryColor3fvEXT((const GLfloat *)
- bswap_32_array((uint32_t *) (pc + 0), 3));
-}
-
-void
-__glXDispSwap_FogCoordfvEXT(GLbyte * pc)
-{
- glFogCoordfvEXT((const GLfloat *) bswap_32_array((uint32_t *) (pc + 0), 1));
-}
-
-void
-__glXDispSwap_VertexAttrib1dvNV(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 12);
- pc -= 4;
- }
-#endif
-
- glVertexAttrib1dvNV((GLuint) bswap_CARD32(pc + 0),
- (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4),
- 1));
-}
-
-void
-__glXDispSwap_VertexAttrib1fvNV(GLbyte * pc)
-{
- glVertexAttrib1fvNV((GLuint) bswap_CARD32(pc + 0),
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4),
- 1));
-}
-
-void
-__glXDispSwap_VertexAttrib1svNV(GLbyte * pc)
-{
- glVertexAttrib1svNV((GLuint) bswap_CARD32(pc + 0),
- (const GLshort *) bswap_16_array((uint16_t *) (pc + 4),
- 1));
-}
-
-void
-__glXDispSwap_VertexAttrib2dvNV(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 20);
- pc -= 4;
- }
-#endif
-
- glVertexAttrib2dvNV((GLuint) bswap_CARD32(pc + 0),
- (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4),
- 2));
-}
-
-void
-__glXDispSwap_VertexAttrib2fvNV(GLbyte * pc)
-{
- glVertexAttrib2fvNV((GLuint) bswap_CARD32(pc + 0),
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4),
- 2));
-}
-
-void
-__glXDispSwap_VertexAttrib2svNV(GLbyte * pc)
-{
- glVertexAttrib2svNV((GLuint) bswap_CARD32(pc + 0),
- (const GLshort *) bswap_16_array((uint16_t *) (pc + 4),
- 2));
-}
-
-void
-__glXDispSwap_VertexAttrib3dvNV(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 28);
- pc -= 4;
- }
-#endif
-
- glVertexAttrib3dvNV((GLuint) bswap_CARD32(pc + 0),
- (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4),
- 3));
-}
-
-void
-__glXDispSwap_VertexAttrib3fvNV(GLbyte * pc)
-{
- glVertexAttrib3fvNV((GLuint) bswap_CARD32(pc + 0),
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4),
- 3));
-}
-
-void
-__glXDispSwap_VertexAttrib3svNV(GLbyte * pc)
-{
- glVertexAttrib3svNV((GLuint) bswap_CARD32(pc + 0),
- (const GLshort *) bswap_16_array((uint16_t *) (pc + 4),
- 3));
-}
-
-void
-__glXDispSwap_VertexAttrib4dvNV(GLbyte * pc)
-{
-#ifdef __GLX_ALIGN64
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, 36);
- pc -= 4;
- }
-#endif
-
- glVertexAttrib4dvNV((GLuint) bswap_CARD32(pc + 0),
- (const GLdouble *) bswap_64_array((uint64_t *) (pc + 4),
- 4));
-}
-
-void
-__glXDispSwap_VertexAttrib4fvNV(GLbyte * pc)
-{
- glVertexAttrib4fvNV((GLuint) bswap_CARD32(pc + 0),
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 4),
- 4));
-}
-
-void
-__glXDispSwap_VertexAttrib4svNV(GLbyte * pc)
-{
- glVertexAttrib4svNV((GLuint) bswap_CARD32(pc + 0),
- (const GLshort *) bswap_16_array((uint16_t *) (pc + 4),
- 4));
-}
-
-void
-__glXDispSwap_VertexAttrib4ubvNV(GLbyte * pc)
-{
- glVertexAttrib4ubvNV((GLuint) bswap_CARD32(pc + 0),
- (const GLubyte *) (pc + 4));
-}
-
-void
-__glXDispSwap_VertexAttribs1dvNV(GLbyte * pc)
-{
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 4);
-
-#ifdef __GLX_ALIGN64
- const GLuint cmdlen = 12 + __GLX_PAD((n * 8)) - 4;
-
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, cmdlen);
- pc -= 4;
- }
-#endif
-
- glVertexAttribs1dvNV((GLuint) bswap_CARD32(pc + 0),
- n,
- (const GLdouble *)
- bswap_64_array((uint64_t *) (pc + 8), 0));
-}
-
-void
-__glXDispSwap_VertexAttribs1fvNV(GLbyte * pc)
-{
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 4);
-
- glVertexAttribs1fvNV((GLuint) bswap_CARD32(pc + 0),
- n,
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8),
- 0));
-}
-
-void
-__glXDispSwap_VertexAttribs1svNV(GLbyte * pc)
-{
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 4);
-
- glVertexAttribs1svNV((GLuint) bswap_CARD32(pc + 0),
- n,
- (const GLshort *) bswap_16_array((uint16_t *) (pc + 8),
- 0));
-}
-
-void
-__glXDispSwap_VertexAttribs2dvNV(GLbyte * pc)
-{
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 4);
-
-#ifdef __GLX_ALIGN64
- const GLuint cmdlen = 12 + __GLX_PAD((n * 16)) - 4;
-
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, cmdlen);
- pc -= 4;
- }
-#endif
-
- glVertexAttribs2dvNV((GLuint) bswap_CARD32(pc + 0),
- n,
- (const GLdouble *)
- bswap_64_array((uint64_t *) (pc + 8), 0));
-}
-
-void
-__glXDispSwap_VertexAttribs2fvNV(GLbyte * pc)
-{
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 4);
-
- glVertexAttribs2fvNV((GLuint) bswap_CARD32(pc + 0),
- n,
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8),
- 0));
-}
-
-void
-__glXDispSwap_VertexAttribs2svNV(GLbyte * pc)
-{
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 4);
-
- glVertexAttribs2svNV((GLuint) bswap_CARD32(pc + 0),
- n,
- (const GLshort *) bswap_16_array((uint16_t *) (pc + 8),
- 0));
-}
-
-void
-__glXDispSwap_VertexAttribs3dvNV(GLbyte * pc)
-{
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 4);
-
-#ifdef __GLX_ALIGN64
- const GLuint cmdlen = 12 + __GLX_PAD((n * 24)) - 4;
-
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, cmdlen);
- pc -= 4;
- }
-#endif
-
- glVertexAttribs3dvNV((GLuint) bswap_CARD32(pc + 0),
- n,
- (const GLdouble *)
- bswap_64_array((uint64_t *) (pc + 8), 0));
-}
-
-void
-__glXDispSwap_VertexAttribs3fvNV(GLbyte * pc)
-{
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 4);
-
- glVertexAttribs3fvNV((GLuint) bswap_CARD32(pc + 0),
- n,
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8),
- 0));
-}
-
-void
-__glXDispSwap_VertexAttribs3svNV(GLbyte * pc)
-{
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 4);
-
- glVertexAttribs3svNV((GLuint) bswap_CARD32(pc + 0),
- n,
- (const GLshort *) bswap_16_array((uint16_t *) (pc + 8),
- 0));
-}
-
-void
-__glXDispSwap_VertexAttribs4dvNV(GLbyte * pc)
-{
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 4);
-
-#ifdef __GLX_ALIGN64
- const GLuint cmdlen = 12 + __GLX_PAD((n * 32)) - 4;
-
- if ((unsigned long) (pc) & 7) {
- (void) memmove(pc - 4, pc, cmdlen);
- pc -= 4;
- }
-#endif
-
- glVertexAttribs4dvNV((GLuint) bswap_CARD32(pc + 0),
- n,
- (const GLdouble *)
- bswap_64_array((uint64_t *) (pc + 8), 0));
-}
-
-void
-__glXDispSwap_VertexAttribs4fvNV(GLbyte * pc)
-{
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 4);
-
- glVertexAttribs4fvNV((GLuint) bswap_CARD32(pc + 0),
- n,
- (const GLfloat *) bswap_32_array((uint32_t *) (pc + 8),
- 0));
-}
-
-void
-__glXDispSwap_VertexAttribs4svNV(GLbyte * pc)
-{
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 4);
-
- glVertexAttribs4svNV((GLuint) bswap_CARD32(pc + 0),
- n,
- (const GLshort *) bswap_16_array((uint16_t *) (pc + 8),
- 0));
-}
-
-void
-__glXDispSwap_VertexAttribs4ubvNV(GLbyte * pc)
-{
- const GLsizei n = (GLsizei) bswap_CARD32(pc + 4);
-
- glVertexAttribs4ubvNV((GLuint) bswap_CARD32(pc + 0),
- n, (const GLubyte *) (pc + 8));
-}
-
-void
-__glXDispSwap_ActiveStencilFaceEXT(GLbyte * pc)
-{
- glActiveStencilFaceEXT((GLenum) bswap_ENUM(pc + 0));
-}
+/* DO NOT EDIT - This file generated automatically by glX_proto_recv.py (from Mesa) script */
+
+/*
+ * (C) Copyright IBM Corporation 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
+ * 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 THEIR 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.
+ */
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+#include "glheader.h"
+
+#include <X11/Xmd.h>
+#include <GL/gl.h>
+#include <GL/glxproto.h>
+#include <inttypes.h>
+#include "indirect_size.h"
+#include "indirect_size_get.h"
+#include "indirect_dispatch.h"
+#include "glxserver.h"
+#include "glxbyteorder.h"
+#include "indirect_util.h"
+#include "singlesize.h"
+#include "glapi.h"
+#include "glapitable.h"
+#include "glthread.h"
+#include "dispatch.h"
+
+#define __GLX_PAD(x) (((x) + 3) & ~3)
+
+typedef struct {
+ __GLX_PIXEL_3D_HDR;
+} __GLXpixel3DHeader;
+
+extern GLboolean __glXErrorOccured( void );
+extern void __glXClearErrorOccured( void );
+
+static const unsigned dummy_answer[2] = {0, 0};
+
+static GLsizei
+bswap_CARD32( const void * src )
+{
+ union { uint32_t dst; GLsizei ret; } x;
+ x.dst = bswap_32( *(uint32_t *) src );
+ return x.ret;
+}
+
+static GLshort
+bswap_CARD16( const void * src )
+{
+ union { uint16_t dst; GLshort ret; } x;
+ x.dst = bswap_16( *(uint16_t *) src );
+ return x.ret;
+}
+
+static GLenum
+bswap_ENUM( const void * src )
+{
+ union { uint32_t dst; GLenum ret; } x;
+ x.dst = bswap_32( *(uint32_t *) src );
+ return x.ret;
+}
+
+static GLsync
+bswap_CARD64( const void * src )
+{
+ union { uint64_t dst; GLsync ret; } x;
+ x.dst = bswap_64( *(uint64_t *) src );
+ return x.ret;
+}
+
+static GLdouble
+bswap_FLOAT64( const void * src )
+{
+ union { uint64_t dst; GLdouble ret; } x;
+ x.dst = bswap_64( *(uint64_t *) src );
+ return x.ret;
+}
+
+static GLfloat
+bswap_FLOAT32( const void * src )
+{
+ union { uint32_t dst; GLfloat ret; } x;
+ x.dst = bswap_32( *(uint32_t *) src );
+ return x.ret;
+}
+
+static void *
+bswap_16_array( uint16_t * src, unsigned count )
+{
+ unsigned i;
+
+ for ( i = 0 ; i < count ; i++ ) {
+ uint16_t temp = bswap_16( src[i] );
+ src[i] = temp;
+ }
+
+ return src;
+}
+
+static void *
+bswap_32_array( uint32_t * src, unsigned count )
+{
+ unsigned i;
+
+ for ( i = 0 ; i < count ; i++ ) {
+ uint32_t temp = bswap_32( src[i] );
+ src[i] = temp;
+ }
+
+ return src;
+}
+
+static void *
+bswap_64_array( uint64_t * src, unsigned count )
+{
+ unsigned i;
+
+ for ( i = 0 ; i < count ; i++ ) {
+ uint64_t temp = bswap_64( src[i] );
+ src[i] = temp;
+ }
+
+ return src;
+}
+
+int __glXDispSwap_NewList(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ CALL_NewList( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 )
+ ) );
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_EndList(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ CALL_EndList( GET_DISPATCH(), () );
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDispSwap_CallList(GLbyte * pc)
+{
+ CALL_CallList( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_CallLists(GLbyte * pc)
+{
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 0 );
+ const GLenum type = (GLenum )bswap_ENUM ( pc + 4 );
+ const GLvoid * lists;
+
+ switch(type) {
+ case GL_BYTE:
+ case GL_UNSIGNED_BYTE:
+ case GL_2_BYTES:
+ case GL_3_BYTES:
+ case GL_4_BYTES:
+ lists = (const GLvoid *) (pc + 8); break;
+ case GL_SHORT:
+ case GL_UNSIGNED_SHORT:
+ lists = (const GLvoid *) bswap_16_array( (uint16_t *) (pc + 8), n ); break;
+ case GL_INT:
+ case GL_UNSIGNED_INT:
+ case GL_FLOAT:
+ lists = (const GLvoid *) bswap_32_array( (uint32_t *) (pc + 8), n ); break;
+ default:
+ return;
+ }
+
+ CALL_CallLists( GET_DISPATCH(), (
+ n,
+ type,
+ lists
+ ) );
+}
+
+int __glXDispSwap_DeleteLists(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ CALL_DeleteLists( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (GLsizei )bswap_CARD32 ( pc + 4 )
+ ) );
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GenLists(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLuint retval;
+ retval = CALL_GenLists( GET_DISPATCH(), (
+ (GLsizei )bswap_CARD32 ( pc + 0 )
+ ) );
+ __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDispSwap_ListBase(GLbyte * pc)
+{
+ CALL_ListBase( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_Begin(GLbyte * pc)
+{
+ CALL_Begin( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_Bitmap(GLbyte * pc)
+{
+ const GLubyte * const bitmap = (const GLubyte *) (pc + 44);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32( & hdr->rowLength )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32( & hdr->skipRows )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) bswap_CARD32( & hdr->skipPixels )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32( & hdr->alignment )) );
+
+ CALL_Bitmap( GET_DISPATCH(), (
+ (GLsizei )bswap_CARD32 ( pc + 20 ),
+ (GLsizei )bswap_CARD32 ( pc + 24 ),
+ (GLfloat )bswap_FLOAT32( pc + 28 ),
+ (GLfloat )bswap_FLOAT32( pc + 32 ),
+ (GLfloat )bswap_FLOAT32( pc + 36 ),
+ (GLfloat )bswap_FLOAT32( pc + 40 ),
+ bitmap
+ ) );
+}
+
+void __glXDispSwap_Color3bv(GLbyte * pc)
+{
+ CALL_Color3bv( GET_DISPATCH(), (
+ (const GLbyte *)(pc + 0)
+ ) );
+}
+
+void __glXDispSwap_Color3dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 24);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Color3dv( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_Color3fv(GLbyte * pc)
+{
+ CALL_Color3fv( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_Color3iv(GLbyte * pc)
+{
+ CALL_Color3iv( GET_DISPATCH(), (
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_Color3sv(GLbyte * pc)
+{
+ CALL_Color3sv( GET_DISPATCH(), (
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_Color3ubv(GLbyte * pc)
+{
+ CALL_Color3ubv( GET_DISPATCH(), (
+ (const GLubyte *)(pc + 0)
+ ) );
+}
+
+void __glXDispSwap_Color3uiv(GLbyte * pc)
+{
+ CALL_Color3uiv( GET_DISPATCH(), (
+ (const GLuint *)bswap_32_array( (uint32_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_Color3usv(GLbyte * pc)
+{
+ CALL_Color3usv( GET_DISPATCH(), (
+ (const GLushort *)bswap_16_array( (uint16_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_Color4bv(GLbyte * pc)
+{
+ CALL_Color4bv( GET_DISPATCH(), (
+ (const GLbyte *)(pc + 0)
+ ) );
+}
+
+void __glXDispSwap_Color4dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 32);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Color4dv( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_Color4fv(GLbyte * pc)
+{
+ CALL_Color4fv( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_Color4iv(GLbyte * pc)
+{
+ CALL_Color4iv( GET_DISPATCH(), (
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_Color4sv(GLbyte * pc)
+{
+ CALL_Color4sv( GET_DISPATCH(), (
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_Color4ubv(GLbyte * pc)
+{
+ CALL_Color4ubv( GET_DISPATCH(), (
+ (const GLubyte *)(pc + 0)
+ ) );
+}
+
+void __glXDispSwap_Color4uiv(GLbyte * pc)
+{
+ CALL_Color4uiv( GET_DISPATCH(), (
+ (const GLuint *)bswap_32_array( (uint32_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_Color4usv(GLbyte * pc)
+{
+ CALL_Color4usv( GET_DISPATCH(), (
+ (const GLushort *)bswap_16_array( (uint16_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_EdgeFlagv(GLbyte * pc)
+{
+ CALL_EdgeFlagv( GET_DISPATCH(), (
+ (const GLboolean *)(pc + 0)
+ ) );
+}
+
+void __glXDispSwap_End(GLbyte * pc)
+{
+ CALL_End( GET_DISPATCH(), () );
+}
+
+void __glXDispSwap_Indexdv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 8);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Indexdv( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 1 )
+ ) );
+}
+
+void __glXDispSwap_Indexfv(GLbyte * pc)
+{
+ CALL_Indexfv( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 1 )
+ ) );
+}
+
+void __glXDispSwap_Indexiv(GLbyte * pc)
+{
+ CALL_Indexiv( GET_DISPATCH(), (
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 0), 1 )
+ ) );
+}
+
+void __glXDispSwap_Indexsv(GLbyte * pc)
+{
+ CALL_Indexsv( GET_DISPATCH(), (
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 0), 1 )
+ ) );
+}
+
+void __glXDispSwap_Normal3bv(GLbyte * pc)
+{
+ CALL_Normal3bv( GET_DISPATCH(), (
+ (const GLbyte *)(pc + 0)
+ ) );
+}
+
+void __glXDispSwap_Normal3dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 24);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Normal3dv( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_Normal3fv(GLbyte * pc)
+{
+ CALL_Normal3fv( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_Normal3iv(GLbyte * pc)
+{
+ CALL_Normal3iv( GET_DISPATCH(), (
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_Normal3sv(GLbyte * pc)
+{
+ CALL_Normal3sv( GET_DISPATCH(), (
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_RasterPos2dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 16);
+ pc -= 4;
+ }
+#endif
+
+ CALL_RasterPos2dv( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 2 )
+ ) );
+}
+
+void __glXDispSwap_RasterPos2fv(GLbyte * pc)
+{
+ CALL_RasterPos2fv( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 2 )
+ ) );
+}
+
+void __glXDispSwap_RasterPos2iv(GLbyte * pc)
+{
+ CALL_RasterPos2iv( GET_DISPATCH(), (
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 0), 2 )
+ ) );
+}
+
+void __glXDispSwap_RasterPos2sv(GLbyte * pc)
+{
+ CALL_RasterPos2sv( GET_DISPATCH(), (
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 0), 2 )
+ ) );
+}
+
+void __glXDispSwap_RasterPos3dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 24);
+ pc -= 4;
+ }
+#endif
+
+ CALL_RasterPos3dv( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_RasterPos3fv(GLbyte * pc)
+{
+ CALL_RasterPos3fv( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_RasterPos3iv(GLbyte * pc)
+{
+ CALL_RasterPos3iv( GET_DISPATCH(), (
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_RasterPos3sv(GLbyte * pc)
+{
+ CALL_RasterPos3sv( GET_DISPATCH(), (
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_RasterPos4dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 32);
+ pc -= 4;
+ }
+#endif
+
+ CALL_RasterPos4dv( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_RasterPos4fv(GLbyte * pc)
+{
+ CALL_RasterPos4fv( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_RasterPos4iv(GLbyte * pc)
+{
+ CALL_RasterPos4iv( GET_DISPATCH(), (
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_RasterPos4sv(GLbyte * pc)
+{
+ CALL_RasterPos4sv( GET_DISPATCH(), (
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_Rectdv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 32);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Rectdv( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 2 ),
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 16), 2 )
+ ) );
+}
+
+void __glXDispSwap_Rectfv(GLbyte * pc)
+{
+ CALL_Rectfv( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 2 ),
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 8), 2 )
+ ) );
+}
+
+void __glXDispSwap_Rectiv(GLbyte * pc)
+{
+ CALL_Rectiv( GET_DISPATCH(), (
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 0), 2 ),
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 8), 2 )
+ ) );
+}
+
+void __glXDispSwap_Rectsv(GLbyte * pc)
+{
+ CALL_Rectsv( GET_DISPATCH(), (
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 0), 2 ),
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 4), 2 )
+ ) );
+}
+
+void __glXDispSwap_TexCoord1dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 8);
+ pc -= 4;
+ }
+#endif
+
+ CALL_TexCoord1dv( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 1 )
+ ) );
+}
+
+void __glXDispSwap_TexCoord1fv(GLbyte * pc)
+{
+ CALL_TexCoord1fv( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 1 )
+ ) );
+}
+
+void __glXDispSwap_TexCoord1iv(GLbyte * pc)
+{
+ CALL_TexCoord1iv( GET_DISPATCH(), (
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 0), 1 )
+ ) );
+}
+
+void __glXDispSwap_TexCoord1sv(GLbyte * pc)
+{
+ CALL_TexCoord1sv( GET_DISPATCH(), (
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 0), 1 )
+ ) );
+}
+
+void __glXDispSwap_TexCoord2dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 16);
+ pc -= 4;
+ }
+#endif
+
+ CALL_TexCoord2dv( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 2 )
+ ) );
+}
+
+void __glXDispSwap_TexCoord2fv(GLbyte * pc)
+{
+ CALL_TexCoord2fv( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 2 )
+ ) );
+}
+
+void __glXDispSwap_TexCoord2iv(GLbyte * pc)
+{
+ CALL_TexCoord2iv( GET_DISPATCH(), (
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 0), 2 )
+ ) );
+}
+
+void __glXDispSwap_TexCoord2sv(GLbyte * pc)
+{
+ CALL_TexCoord2sv( GET_DISPATCH(), (
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 0), 2 )
+ ) );
+}
+
+void __glXDispSwap_TexCoord3dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 24);
+ pc -= 4;
+ }
+#endif
+
+ CALL_TexCoord3dv( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_TexCoord3fv(GLbyte * pc)
+{
+ CALL_TexCoord3fv( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_TexCoord3iv(GLbyte * pc)
+{
+ CALL_TexCoord3iv( GET_DISPATCH(), (
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_TexCoord3sv(GLbyte * pc)
+{
+ CALL_TexCoord3sv( GET_DISPATCH(), (
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_TexCoord4dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 32);
+ pc -= 4;
+ }
+#endif
+
+ CALL_TexCoord4dv( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_TexCoord4fv(GLbyte * pc)
+{
+ CALL_TexCoord4fv( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_TexCoord4iv(GLbyte * pc)
+{
+ CALL_TexCoord4iv( GET_DISPATCH(), (
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_TexCoord4sv(GLbyte * pc)
+{
+ CALL_TexCoord4sv( GET_DISPATCH(), (
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_Vertex2dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 16);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Vertex2dv( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 2 )
+ ) );
+}
+
+void __glXDispSwap_Vertex2fv(GLbyte * pc)
+{
+ CALL_Vertex2fv( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 2 )
+ ) );
+}
+
+void __glXDispSwap_Vertex2iv(GLbyte * pc)
+{
+ CALL_Vertex2iv( GET_DISPATCH(), (
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 0), 2 )
+ ) );
+}
+
+void __glXDispSwap_Vertex2sv(GLbyte * pc)
+{
+ CALL_Vertex2sv( GET_DISPATCH(), (
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 0), 2 )
+ ) );
+}
+
+void __glXDispSwap_Vertex3dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 24);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Vertex3dv( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_Vertex3fv(GLbyte * pc)
+{
+ CALL_Vertex3fv( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_Vertex3iv(GLbyte * pc)
+{
+ CALL_Vertex3iv( GET_DISPATCH(), (
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_Vertex3sv(GLbyte * pc)
+{
+ CALL_Vertex3sv( GET_DISPATCH(), (
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_Vertex4dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 32);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Vertex4dv( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_Vertex4fv(GLbyte * pc)
+{
+ CALL_Vertex4fv( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_Vertex4iv(GLbyte * pc)
+{
+ CALL_Vertex4iv( GET_DISPATCH(), (
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_Vertex4sv(GLbyte * pc)
+{
+ CALL_Vertex4sv( GET_DISPATCH(), (
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_ClipPlane(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 36);
+ pc -= 4;
+ }
+#endif
+
+ CALL_ClipPlane( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 32 ),
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_ColorMaterial(GLbyte * pc)
+{
+ CALL_ColorMaterial( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_CullFace(GLbyte * pc)
+{
+ CALL_CullFace( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_Fogf(GLbyte * pc)
+{
+ CALL_Fogf( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLfloat )bswap_FLOAT32( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_Fogfv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 0 );
+ const GLfloat * params;
+
+ params = (const GLfloat *) bswap_32_array( (uint32_t *) (pc + 4), __glFogfv_size(pname) );
+
+ CALL_Fogfv( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_Fogi(GLbyte * pc)
+{
+ CALL_Fogi( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_Fogiv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 0 );
+ const GLint * params;
+
+ params = (const GLint *) bswap_32_array( (uint32_t *) (pc + 4), __glFogiv_size(pname) );
+
+ CALL_Fogiv( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_FrontFace(GLbyte * pc)
+{
+ CALL_FrontFace( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_Hint(GLbyte * pc)
+{
+ CALL_Hint( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_Lightf(GLbyte * pc)
+{
+ CALL_Lightf( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLfloat )bswap_FLOAT32( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_Lightfv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+ const GLfloat * params;
+
+ params = (const GLfloat *) bswap_32_array( (uint32_t *) (pc + 8), __glLightfv_size(pname) );
+
+ CALL_Lightfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_Lighti(GLbyte * pc)
+{
+ CALL_Lighti( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLint )bswap_CARD32 ( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_Lightiv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+ const GLint * params;
+
+ params = (const GLint *) bswap_32_array( (uint32_t *) (pc + 8), __glLightiv_size(pname) );
+
+ CALL_Lightiv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_LightModelf(GLbyte * pc)
+{
+ CALL_LightModelf( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLfloat )bswap_FLOAT32( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_LightModelfv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 0 );
+ const GLfloat * params;
+
+ params = (const GLfloat *) bswap_32_array( (uint32_t *) (pc + 4), __glLightModelfv_size(pname) );
+
+ CALL_LightModelfv( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_LightModeli(GLbyte * pc)
+{
+ CALL_LightModeli( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_LightModeliv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 0 );
+ const GLint * params;
+
+ params = (const GLint *) bswap_32_array( (uint32_t *) (pc + 4), __glLightModeliv_size(pname) );
+
+ CALL_LightModeliv( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_LineStipple(GLbyte * pc)
+{
+ CALL_LineStipple( GET_DISPATCH(), (
+ (GLint )bswap_CARD32 ( pc + 0 ),
+ (GLushort)bswap_CARD16 ( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_LineWidth(GLbyte * pc)
+{
+ CALL_LineWidth( GET_DISPATCH(), (
+ (GLfloat )bswap_FLOAT32( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_Materialf(GLbyte * pc)
+{
+ CALL_Materialf( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLfloat )bswap_FLOAT32( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_Materialfv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+ const GLfloat * params;
+
+ params = (const GLfloat *) bswap_32_array( (uint32_t *) (pc + 8), __glMaterialfv_size(pname) );
+
+ CALL_Materialfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_Materiali(GLbyte * pc)
+{
+ CALL_Materiali( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLint )bswap_CARD32 ( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_Materialiv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+ const GLint * params;
+
+ params = (const GLint *) bswap_32_array( (uint32_t *) (pc + 8), __glMaterialiv_size(pname) );
+
+ CALL_Materialiv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_PointSize(GLbyte * pc)
+{
+ CALL_PointSize( GET_DISPATCH(), (
+ (GLfloat )bswap_FLOAT32( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_PolygonMode(GLbyte * pc)
+{
+ CALL_PolygonMode( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_PolygonStipple(GLbyte * pc)
+{
+ const GLubyte * const mask = (const GLubyte *) (pc + 20);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32( & hdr->rowLength )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32( & hdr->skipRows )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) bswap_CARD32( & hdr->skipPixels )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32( & hdr->alignment )) );
+
+ CALL_PolygonStipple( GET_DISPATCH(), (
+ mask
+ ) );
+}
+
+void __glXDispSwap_Scissor(GLbyte * pc)
+{
+ CALL_Scissor( GET_DISPATCH(), (
+ (GLint )bswap_CARD32 ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ (GLsizei )bswap_CARD32 ( pc + 8 ),
+ (GLsizei )bswap_CARD32 ( pc + 12 )
+ ) );
+}
+
+void __glXDispSwap_ShadeModel(GLbyte * pc)
+{
+ CALL_ShadeModel( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_TexParameterf(GLbyte * pc)
+{
+ CALL_TexParameterf( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLfloat )bswap_FLOAT32( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_TexParameterfv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+ const GLfloat * params;
+
+ params = (const GLfloat *) bswap_32_array( (uint32_t *) (pc + 8), __glTexParameterfv_size(pname) );
+
+ CALL_TexParameterfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_TexParameteri(GLbyte * pc)
+{
+ CALL_TexParameteri( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLint )bswap_CARD32 ( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_TexParameteriv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+ const GLint * params;
+
+ params = (const GLint *) bswap_32_array( (uint32_t *) (pc + 8), __glTexParameteriv_size(pname) );
+
+ CALL_TexParameteriv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_TexImage1D(GLbyte * pc)
+{
+ const GLvoid * const pixels = (const GLvoid *) (pc + 52);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32( & hdr->rowLength )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32( & hdr->skipRows )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) bswap_CARD32( & hdr->skipPixels )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32( & hdr->alignment )) );
+
+ CALL_TexImage1D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 20 ),
+ (GLint )bswap_CARD32 ( pc + 24 ),
+ (GLint )bswap_CARD32 ( pc + 28 ),
+ (GLsizei )bswap_CARD32 ( pc + 32 ),
+ (GLint )bswap_CARD32 ( pc + 40 ),
+ (GLenum )bswap_ENUM ( pc + 44 ),
+ (GLenum )bswap_ENUM ( pc + 48 ),
+ pixels
+ ) );
+}
+
+void __glXDispSwap_TexImage2D(GLbyte * pc)
+{
+ const GLvoid * const pixels = (const GLvoid *) (pc + 52);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32( & hdr->rowLength )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32( & hdr->skipRows )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) bswap_CARD32( & hdr->skipPixels )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32( & hdr->alignment )) );
+
+ CALL_TexImage2D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 20 ),
+ (GLint )bswap_CARD32 ( pc + 24 ),
+ (GLint )bswap_CARD32 ( pc + 28 ),
+ (GLsizei )bswap_CARD32 ( pc + 32 ),
+ (GLsizei )bswap_CARD32 ( pc + 36 ),
+ (GLint )bswap_CARD32 ( pc + 40 ),
+ (GLenum )bswap_ENUM ( pc + 44 ),
+ (GLenum )bswap_ENUM ( pc + 48 ),
+ pixels
+ ) );
+}
+
+void __glXDispSwap_TexEnvf(GLbyte * pc)
+{
+ CALL_TexEnvf( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLfloat )bswap_FLOAT32( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_TexEnvfv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+ const GLfloat * params;
+
+ params = (const GLfloat *) bswap_32_array( (uint32_t *) (pc + 8), __glTexEnvfv_size(pname) );
+
+ CALL_TexEnvfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_TexEnvi(GLbyte * pc)
+{
+ CALL_TexEnvi( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLint )bswap_CARD32 ( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_TexEnviv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+ const GLint * params;
+
+ params = (const GLint *) bswap_32_array( (uint32_t *) (pc + 8), __glTexEnviv_size(pname) );
+
+ CALL_TexEnviv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_TexGend(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 16);
+ pc -= 4;
+ }
+#endif
+
+ CALL_TexGend( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 8 ),
+ (GLenum )bswap_ENUM ( pc + 12 ),
+ (GLdouble)bswap_FLOAT64( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_TexGendv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+ const GLdouble * params;
+
+#ifdef __GLX_ALIGN64
+ const GLuint compsize = __glTexGendv_size(pname);
+ const GLuint cmdlen = 12 + __GLX_PAD((compsize * 8)) - 4;
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, cmdlen);
+ pc -= 4;
+ }
+#endif
+
+ params = (const GLdouble *) bswap_64_array( (uint64_t *) (pc + 8), __glTexGendv_size(pname) );
+
+ CALL_TexGendv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_TexGenf(GLbyte * pc)
+{
+ CALL_TexGenf( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLfloat )bswap_FLOAT32( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_TexGenfv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+ const GLfloat * params;
+
+ params = (const GLfloat *) bswap_32_array( (uint32_t *) (pc + 8), __glTexGenfv_size(pname) );
+
+ CALL_TexGenfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_TexGeni(GLbyte * pc)
+{
+ CALL_TexGeni( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLint )bswap_CARD32 ( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_TexGeniv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+ const GLint * params;
+
+ params = (const GLint *) bswap_32_array( (uint32_t *) (pc + 8), __glTexGeniv_size(pname) );
+
+ CALL_TexGeniv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_InitNames(GLbyte * pc)
+{
+ CALL_InitNames( GET_DISPATCH(), () );
+}
+
+void __glXDispSwap_LoadName(GLbyte * pc)
+{
+ CALL_LoadName( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_PassThrough(GLbyte * pc)
+{
+ CALL_PassThrough( GET_DISPATCH(), (
+ (GLfloat )bswap_FLOAT32( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_PopName(GLbyte * pc)
+{
+ CALL_PopName( GET_DISPATCH(), () );
+}
+
+void __glXDispSwap_PushName(GLbyte * pc)
+{
+ CALL_PushName( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_DrawBuffer(GLbyte * pc)
+{
+ CALL_DrawBuffer( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_Clear(GLbyte * pc)
+{
+ CALL_Clear( GET_DISPATCH(), (
+ (GLbitfield)bswap_CARD32 ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_ClearAccum(GLbyte * pc)
+{
+ CALL_ClearAccum( GET_DISPATCH(), (
+ (GLfloat )bswap_FLOAT32( pc + 0 ),
+ (GLfloat )bswap_FLOAT32( pc + 4 ),
+ (GLfloat )bswap_FLOAT32( pc + 8 ),
+ (GLfloat )bswap_FLOAT32( pc + 12 )
+ ) );
+}
+
+void __glXDispSwap_ClearIndex(GLbyte * pc)
+{
+ CALL_ClearIndex( GET_DISPATCH(), (
+ (GLfloat )bswap_FLOAT32( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_ClearColor(GLbyte * pc)
+{
+ CALL_ClearColor( GET_DISPATCH(), (
+ (GLclampf)bswap_FLOAT32( pc + 0 ),
+ (GLclampf)bswap_FLOAT32( pc + 4 ),
+ (GLclampf)bswap_FLOAT32( pc + 8 ),
+ (GLclampf)bswap_FLOAT32( pc + 12 )
+ ) );
+}
+
+void __glXDispSwap_ClearStencil(GLbyte * pc)
+{
+ CALL_ClearStencil( GET_DISPATCH(), (
+ (GLint )bswap_CARD32 ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_ClearDepth(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 8);
+ pc -= 4;
+ }
+#endif
+
+ CALL_ClearDepth( GET_DISPATCH(), (
+ (GLclampd)bswap_FLOAT64( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_StencilMask(GLbyte * pc)
+{
+ CALL_StencilMask( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_ColorMask(GLbyte * pc)
+{
+ CALL_ColorMask( GET_DISPATCH(), (
+ *(GLboolean *)(pc + 0),
+ *(GLboolean *)(pc + 1),
+ *(GLboolean *)(pc + 2),
+ *(GLboolean *)(pc + 3)
+ ) );
+}
+
+void __glXDispSwap_DepthMask(GLbyte * pc)
+{
+ CALL_DepthMask( GET_DISPATCH(), (
+ *(GLboolean *)(pc + 0)
+ ) );
+}
+
+void __glXDispSwap_IndexMask(GLbyte * pc)
+{
+ CALL_IndexMask( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_Accum(GLbyte * pc)
+{
+ CALL_Accum( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLfloat )bswap_FLOAT32( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_Disable(GLbyte * pc)
+{
+ CALL_Disable( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_Enable(GLbyte * pc)
+{
+ CALL_Enable( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_PopAttrib(GLbyte * pc)
+{
+ CALL_PopAttrib( GET_DISPATCH(), () );
+}
+
+void __glXDispSwap_PushAttrib(GLbyte * pc)
+{
+ CALL_PushAttrib( GET_DISPATCH(), (
+ (GLbitfield)bswap_CARD32 ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_MapGrid1d(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 20);
+ pc -= 4;
+ }
+#endif
+
+ CALL_MapGrid1d( GET_DISPATCH(), (
+ (GLint )bswap_CARD32 ( pc + 16 ),
+ (GLdouble)bswap_FLOAT64( pc + 0 ),
+ (GLdouble)bswap_FLOAT64( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_MapGrid1f(GLbyte * pc)
+{
+ CALL_MapGrid1f( GET_DISPATCH(), (
+ (GLint )bswap_CARD32 ( pc + 0 ),
+ (GLfloat )bswap_FLOAT32( pc + 4 ),
+ (GLfloat )bswap_FLOAT32( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_MapGrid2d(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 40);
+ pc -= 4;
+ }
+#endif
+
+ CALL_MapGrid2d( GET_DISPATCH(), (
+ (GLint )bswap_CARD32 ( pc + 32 ),
+ (GLdouble)bswap_FLOAT64( pc + 0 ),
+ (GLdouble)bswap_FLOAT64( pc + 8 ),
+ (GLint )bswap_CARD32 ( pc + 36 ),
+ (GLdouble)bswap_FLOAT64( pc + 16 ),
+ (GLdouble)bswap_FLOAT64( pc + 24 )
+ ) );
+}
+
+void __glXDispSwap_MapGrid2f(GLbyte * pc)
+{
+ CALL_MapGrid2f( GET_DISPATCH(), (
+ (GLint )bswap_CARD32 ( pc + 0 ),
+ (GLfloat )bswap_FLOAT32( pc + 4 ),
+ (GLfloat )bswap_FLOAT32( pc + 8 ),
+ (GLint )bswap_CARD32 ( pc + 12 ),
+ (GLfloat )bswap_FLOAT32( pc + 16 ),
+ (GLfloat )bswap_FLOAT32( pc + 20 )
+ ) );
+}
+
+void __glXDispSwap_EvalCoord1dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 8);
+ pc -= 4;
+ }
+#endif
+
+ CALL_EvalCoord1dv( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 1 )
+ ) );
+}
+
+void __glXDispSwap_EvalCoord1fv(GLbyte * pc)
+{
+ CALL_EvalCoord1fv( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 1 )
+ ) );
+}
+
+void __glXDispSwap_EvalCoord2dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 16);
+ pc -= 4;
+ }
+#endif
+
+ CALL_EvalCoord2dv( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 2 )
+ ) );
+}
+
+void __glXDispSwap_EvalCoord2fv(GLbyte * pc)
+{
+ CALL_EvalCoord2fv( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 2 )
+ ) );
+}
+
+void __glXDispSwap_EvalMesh1(GLbyte * pc)
+{
+ CALL_EvalMesh1( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ (GLint )bswap_CARD32 ( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_EvalPoint1(GLbyte * pc)
+{
+ CALL_EvalPoint1( GET_DISPATCH(), (
+ (GLint )bswap_CARD32 ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_EvalMesh2(GLbyte * pc)
+{
+ CALL_EvalMesh2( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ (GLint )bswap_CARD32 ( pc + 8 ),
+ (GLint )bswap_CARD32 ( pc + 12 ),
+ (GLint )bswap_CARD32 ( pc + 16 )
+ ) );
+}
+
+void __glXDispSwap_EvalPoint2(GLbyte * pc)
+{
+ CALL_EvalPoint2( GET_DISPATCH(), (
+ (GLint )bswap_CARD32 ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_AlphaFunc(GLbyte * pc)
+{
+ CALL_AlphaFunc( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLclampf)bswap_FLOAT32( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_BlendFunc(GLbyte * pc)
+{
+ CALL_BlendFunc( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_LogicOp(GLbyte * pc)
+{
+ CALL_LogicOp( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_StencilFunc(GLbyte * pc)
+{
+ CALL_StencilFunc( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ (GLuint )bswap_CARD32 ( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_StencilOp(GLbyte * pc)
+{
+ CALL_StencilOp( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLenum )bswap_ENUM ( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_DepthFunc(GLbyte * pc)
+{
+ CALL_DepthFunc( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_PixelZoom(GLbyte * pc)
+{
+ CALL_PixelZoom( GET_DISPATCH(), (
+ (GLfloat )bswap_FLOAT32( pc + 0 ),
+ (GLfloat )bswap_FLOAT32( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_PixelTransferf(GLbyte * pc)
+{
+ CALL_PixelTransferf( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLfloat )bswap_FLOAT32( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_PixelTransferi(GLbyte * pc)
+{
+ CALL_PixelTransferi( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 )
+ ) );
+}
+
+int __glXDispSwap_PixelStoref(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ CALL_PixelStoref( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLfloat )bswap_FLOAT32( pc + 4 )
+ ) );
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_PixelStorei(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ CALL_PixelStorei( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 )
+ ) );
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDispSwap_PixelMapfv(GLbyte * pc)
+{
+ const GLsizei mapsize = (GLsizei )bswap_CARD32 ( pc + 4 );
+
+ CALL_PixelMapfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ mapsize,
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 8), 0 )
+ ) );
+}
+
+void __glXDispSwap_PixelMapuiv(GLbyte * pc)
+{
+ const GLsizei mapsize = (GLsizei )bswap_CARD32 ( pc + 4 );
+
+ CALL_PixelMapuiv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ mapsize,
+ (const GLuint *)bswap_32_array( (uint32_t *) (pc + 8), 0 )
+ ) );
+}
+
+void __glXDispSwap_PixelMapusv(GLbyte * pc)
+{
+ const GLsizei mapsize = (GLsizei )bswap_CARD32 ( pc + 4 );
+
+ CALL_PixelMapusv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ mapsize,
+ (const GLushort *)bswap_16_array( (uint16_t *) (pc + 8), 0 )
+ ) );
+}
+
+void __glXDispSwap_ReadBuffer(GLbyte * pc)
+{
+ CALL_ReadBuffer( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_CopyPixels(GLbyte * pc)
+{
+ CALL_CopyPixels( GET_DISPATCH(), (
+ (GLint )bswap_CARD32 ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ (GLsizei )bswap_CARD32 ( pc + 8 ),
+ (GLsizei )bswap_CARD32 ( pc + 12 ),
+ (GLenum )bswap_ENUM ( pc + 16 )
+ ) );
+}
+
+void __glXDispSwap_DrawPixels(GLbyte * pc)
+{
+ const GLvoid * const pixels = (const GLvoid *) (pc + 36);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32( & hdr->rowLength )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32( & hdr->skipRows )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) bswap_CARD32( & hdr->skipPixels )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32( & hdr->alignment )) );
+
+ CALL_DrawPixels( GET_DISPATCH(), (
+ (GLsizei )bswap_CARD32 ( pc + 20 ),
+ (GLsizei )bswap_CARD32 ( pc + 24 ),
+ (GLenum )bswap_ENUM ( pc + 28 ),
+ (GLenum )bswap_ENUM ( pc + 32 ),
+ pixels
+ ) );
+}
+
+int __glXDispSwap_GetBooleanv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 0 );
+
+ const GLuint compsize = __glGetBooleanv_size(pname);
+ GLboolean answerBuffer[200];
+ GLboolean * params = __glXGetAnswerBuffer(cl, compsize, answerBuffer, sizeof(answerBuffer), 1);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetBooleanv( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+ __glXSendReplySwap(cl->client, params, compsize, 1, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetClipPlane(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLdouble equation[4];
+ CALL_GetClipPlane( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ equation
+ ) );
+ (void) bswap_64_array( (uint64_t *) equation, 4 );
+ __glXSendReplySwap(cl->client, equation, 4, 8, GL_TRUE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetDoublev(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 0 );
+
+ const GLuint compsize = __glGetDoublev_size(pname);
+ GLdouble answerBuffer[200];
+ GLdouble * params = __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer, sizeof(answerBuffer), 8);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetDoublev( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+ (void) bswap_64_array( (uint64_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 8, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetError(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLenum retval;
+ retval = CALL_GetError( GET_DISPATCH(), () );
+ __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetFloatv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 0 );
+
+ const GLuint compsize = __glGetFloatv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetFloatv( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetIntegerv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 0 );
+
+ const GLuint compsize = __glGetIntegerv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetIntegerv( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetLightfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetLightfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetLightfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetLightiv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetLightiv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetLightiv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetMapdv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum target = (GLenum )bswap_ENUM ( pc + 0 );
+ const GLenum query = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetMapdv_size(target,query);
+ GLdouble answerBuffer[200];
+ GLdouble * v = __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer, sizeof(answerBuffer), 8);
+
+ if (v == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetMapdv( GET_DISPATCH(), (
+ target,
+ query,
+ v
+ ) );
+ (void) bswap_64_array( (uint64_t *) v, compsize );
+ __glXSendReplySwap(cl->client, v, compsize, 8, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetMapfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum target = (GLenum )bswap_ENUM ( pc + 0 );
+ const GLenum query = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetMapfv_size(target,query);
+ GLfloat answerBuffer[200];
+ GLfloat * v = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (v == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetMapfv( GET_DISPATCH(), (
+ target,
+ query,
+ v
+ ) );
+ (void) bswap_32_array( (uint32_t *) v, compsize );
+ __glXSendReplySwap(cl->client, v, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetMapiv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum target = (GLenum )bswap_ENUM ( pc + 0 );
+ const GLenum query = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetMapiv_size(target,query);
+ GLint answerBuffer[200];
+ GLint * v = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (v == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetMapiv( GET_DISPATCH(), (
+ target,
+ query,
+ v
+ ) );
+ (void) bswap_32_array( (uint32_t *) v, compsize );
+ __glXSendReplySwap(cl->client, v, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetMaterialfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetMaterialfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetMaterialfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetMaterialiv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetMaterialiv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetMaterialiv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetPixelMapfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum map = (GLenum )bswap_ENUM ( pc + 0 );
+
+ const GLuint compsize = __glGetPixelMapfv_size(map);
+ GLfloat answerBuffer[200];
+ GLfloat * values = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (values == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetPixelMapfv( GET_DISPATCH(), (
+ map,
+ values
+ ) );
+ (void) bswap_32_array( (uint32_t *) values, compsize );
+ __glXSendReplySwap(cl->client, values, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetPixelMapuiv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum map = (GLenum )bswap_ENUM ( pc + 0 );
+
+ const GLuint compsize = __glGetPixelMapuiv_size(map);
+ GLuint answerBuffer[200];
+ GLuint * values = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (values == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetPixelMapuiv( GET_DISPATCH(), (
+ map,
+ values
+ ) );
+ (void) bswap_32_array( (uint32_t *) values, compsize );
+ __glXSendReplySwap(cl->client, values, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetPixelMapusv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum map = (GLenum )bswap_ENUM ( pc + 0 );
+
+ const GLuint compsize = __glGetPixelMapusv_size(map);
+ GLushort answerBuffer[200];
+ GLushort * values = __glXGetAnswerBuffer(cl, compsize * 2, answerBuffer, sizeof(answerBuffer), 2);
+
+ if (values == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetPixelMapusv( GET_DISPATCH(), (
+ map,
+ values
+ ) );
+ (void) bswap_16_array( (uint16_t *) values, compsize );
+ __glXSendReplySwap(cl->client, values, compsize, 2, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetTexEnvfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetTexEnvfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetTexEnvfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetTexEnviv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetTexEnviv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetTexEnviv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetTexGendv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetTexGendv_size(pname);
+ GLdouble answerBuffer[200];
+ GLdouble * params = __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer, sizeof(answerBuffer), 8);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetTexGendv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_64_array( (uint64_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 8, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetTexGenfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetTexGenfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetTexGenfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetTexGeniv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetTexGeniv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetTexGeniv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetTexParameterfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetTexParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetTexParameterfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetTexParameteriv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetTexParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetTexParameteriv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetTexLevelParameterfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 8 );
+
+ const GLuint compsize = __glGetTexLevelParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetTexLevelParameterfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetTexLevelParameteriv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 8 );
+
+ const GLuint compsize = __glGetTexLevelParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetTexLevelParameteriv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_IsEnabled(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLboolean retval;
+ retval = CALL_IsEnabled( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+ __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_IsList(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLboolean retval;
+ retval = CALL_IsList( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 )
+ ) );
+ __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDispSwap_DepthRange(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 16);
+ pc -= 4;
+ }
+#endif
+
+ CALL_DepthRange( GET_DISPATCH(), (
+ (GLclampd)bswap_FLOAT64( pc + 0 ),
+ (GLclampd)bswap_FLOAT64( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_Frustum(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 48);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Frustum( GET_DISPATCH(), (
+ (GLdouble)bswap_FLOAT64( pc + 0 ),
+ (GLdouble)bswap_FLOAT64( pc + 8 ),
+ (GLdouble)bswap_FLOAT64( pc + 16 ),
+ (GLdouble)bswap_FLOAT64( pc + 24 ),
+ (GLdouble)bswap_FLOAT64( pc + 32 ),
+ (GLdouble)bswap_FLOAT64( pc + 40 )
+ ) );
+}
+
+void __glXDispSwap_LoadIdentity(GLbyte * pc)
+{
+ CALL_LoadIdentity( GET_DISPATCH(), () );
+}
+
+void __glXDispSwap_LoadMatrixf(GLbyte * pc)
+{
+ CALL_LoadMatrixf( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 16 )
+ ) );
+}
+
+void __glXDispSwap_LoadMatrixd(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 128);
+ pc -= 4;
+ }
+#endif
+
+ CALL_LoadMatrixd( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 16 )
+ ) );
+}
+
+void __glXDispSwap_MatrixMode(GLbyte * pc)
+{
+ CALL_MatrixMode( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_MultMatrixf(GLbyte * pc)
+{
+ CALL_MultMatrixf( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 16 )
+ ) );
+}
+
+void __glXDispSwap_MultMatrixd(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 128);
+ pc -= 4;
+ }
+#endif
+
+ CALL_MultMatrixd( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 16 )
+ ) );
+}
+
+void __glXDispSwap_Ortho(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 48);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Ortho( GET_DISPATCH(), (
+ (GLdouble)bswap_FLOAT64( pc + 0 ),
+ (GLdouble)bswap_FLOAT64( pc + 8 ),
+ (GLdouble)bswap_FLOAT64( pc + 16 ),
+ (GLdouble)bswap_FLOAT64( pc + 24 ),
+ (GLdouble)bswap_FLOAT64( pc + 32 ),
+ (GLdouble)bswap_FLOAT64( pc + 40 )
+ ) );
+}
+
+void __glXDispSwap_PopMatrix(GLbyte * pc)
+{
+ CALL_PopMatrix( GET_DISPATCH(), () );
+}
+
+void __glXDispSwap_PushMatrix(GLbyte * pc)
+{
+ CALL_PushMatrix( GET_DISPATCH(), () );
+}
+
+void __glXDispSwap_Rotated(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 32);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Rotated( GET_DISPATCH(), (
+ (GLdouble)bswap_FLOAT64( pc + 0 ),
+ (GLdouble)bswap_FLOAT64( pc + 8 ),
+ (GLdouble)bswap_FLOAT64( pc + 16 ),
+ (GLdouble)bswap_FLOAT64( pc + 24 )
+ ) );
+}
+
+void __glXDispSwap_Rotatef(GLbyte * pc)
+{
+ CALL_Rotatef( GET_DISPATCH(), (
+ (GLfloat )bswap_FLOAT32( pc + 0 ),
+ (GLfloat )bswap_FLOAT32( pc + 4 ),
+ (GLfloat )bswap_FLOAT32( pc + 8 ),
+ (GLfloat )bswap_FLOAT32( pc + 12 )
+ ) );
+}
+
+void __glXDispSwap_Scaled(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 24);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Scaled( GET_DISPATCH(), (
+ (GLdouble)bswap_FLOAT64( pc + 0 ),
+ (GLdouble)bswap_FLOAT64( pc + 8 ),
+ (GLdouble)bswap_FLOAT64( pc + 16 )
+ ) );
+}
+
+void __glXDispSwap_Scalef(GLbyte * pc)
+{
+ CALL_Scalef( GET_DISPATCH(), (
+ (GLfloat )bswap_FLOAT32( pc + 0 ),
+ (GLfloat )bswap_FLOAT32( pc + 4 ),
+ (GLfloat )bswap_FLOAT32( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_Translated(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 24);
+ pc -= 4;
+ }
+#endif
+
+ CALL_Translated( GET_DISPATCH(), (
+ (GLdouble)bswap_FLOAT64( pc + 0 ),
+ (GLdouble)bswap_FLOAT64( pc + 8 ),
+ (GLdouble)bswap_FLOAT64( pc + 16 )
+ ) );
+}
+
+void __glXDispSwap_Translatef(GLbyte * pc)
+{
+ CALL_Translatef( GET_DISPATCH(), (
+ (GLfloat )bswap_FLOAT32( pc + 0 ),
+ (GLfloat )bswap_FLOAT32( pc + 4 ),
+ (GLfloat )bswap_FLOAT32( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_Viewport(GLbyte * pc)
+{
+ CALL_Viewport( GET_DISPATCH(), (
+ (GLint )bswap_CARD32 ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ (GLsizei )bswap_CARD32 ( pc + 8 ),
+ (GLsizei )bswap_CARD32 ( pc + 12 )
+ ) );
+}
+
+void __glXDispSwap_BindTexture(GLbyte * pc)
+{
+ CALL_BindTexture( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_Indexubv(GLbyte * pc)
+{
+ CALL_Indexubv( GET_DISPATCH(), (
+ (const GLubyte *)(pc + 0)
+ ) );
+}
+
+void __glXDispSwap_PolygonOffset(GLbyte * pc)
+{
+ CALL_PolygonOffset( GET_DISPATCH(), (
+ (GLfloat )bswap_FLOAT32( pc + 0 ),
+ (GLfloat )bswap_FLOAT32( pc + 4 )
+ ) );
+}
+
+int __glXDispSwap_AreTexturesResident(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 0 );
+
+ GLboolean retval;
+ GLboolean answerBuffer[200];
+ GLboolean * residences = __glXGetAnswerBuffer(cl, n, answerBuffer, sizeof(answerBuffer), 1);
+ retval = CALL_AreTexturesResident( GET_DISPATCH(), (
+ n,
+ (const GLuint *)bswap_32_array( (uint32_t *) (pc + 4), 0 ),
+ residences
+ ) );
+ __glXSendReplySwap(cl->client, residences, n, 1, GL_TRUE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_AreTexturesResidentEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 0 );
+
+ GLboolean retval;
+ GLboolean answerBuffer[200];
+ GLboolean * residences = __glXGetAnswerBuffer(cl, n, answerBuffer, sizeof(answerBuffer), 1);
+ retval = CALL_AreTexturesResident( GET_DISPATCH(), (
+ n,
+ (const GLuint *)bswap_32_array( (uint32_t *) (pc + 4), 0 ),
+ residences
+ ) );
+ __glXSendReplySwap(cl->client, residences, n, 1, GL_TRUE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDispSwap_CopyTexImage1D(GLbyte * pc)
+{
+ CALL_CopyTexImage1D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ (GLenum )bswap_ENUM ( pc + 8 ),
+ (GLint )bswap_CARD32 ( pc + 12 ),
+ (GLint )bswap_CARD32 ( pc + 16 ),
+ (GLsizei )bswap_CARD32 ( pc + 20 ),
+ (GLint )bswap_CARD32 ( pc + 24 )
+ ) );
+}
+
+void __glXDispSwap_CopyTexImage2D(GLbyte * pc)
+{
+ CALL_CopyTexImage2D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ (GLenum )bswap_ENUM ( pc + 8 ),
+ (GLint )bswap_CARD32 ( pc + 12 ),
+ (GLint )bswap_CARD32 ( pc + 16 ),
+ (GLsizei )bswap_CARD32 ( pc + 20 ),
+ (GLsizei )bswap_CARD32 ( pc + 24 ),
+ (GLint )bswap_CARD32 ( pc + 28 )
+ ) );
+}
+
+void __glXDispSwap_CopyTexSubImage1D(GLbyte * pc)
+{
+ CALL_CopyTexSubImage1D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ (GLint )bswap_CARD32 ( pc + 8 ),
+ (GLint )bswap_CARD32 ( pc + 12 ),
+ (GLint )bswap_CARD32 ( pc + 16 ),
+ (GLsizei )bswap_CARD32 ( pc + 20 )
+ ) );
+}
+
+void __glXDispSwap_CopyTexSubImage2D(GLbyte * pc)
+{
+ CALL_CopyTexSubImage2D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ (GLint )bswap_CARD32 ( pc + 8 ),
+ (GLint )bswap_CARD32 ( pc + 12 ),
+ (GLint )bswap_CARD32 ( pc + 16 ),
+ (GLint )bswap_CARD32 ( pc + 20 ),
+ (GLsizei )bswap_CARD32 ( pc + 24 ),
+ (GLsizei )bswap_CARD32 ( pc + 28 )
+ ) );
+}
+
+int __glXDispSwap_DeleteTextures(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 0 );
+
+ CALL_DeleteTextures( GET_DISPATCH(), (
+ n,
+ (const GLuint *)bswap_32_array( (uint32_t *) (pc + 4), 0 )
+ ) );
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_DeleteTexturesEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 0 );
+
+ CALL_DeleteTextures( GET_DISPATCH(), (
+ n,
+ (const GLuint *)bswap_32_array( (uint32_t *) (pc + 4), 0 )
+ ) );
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GenTextures(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 0 );
+
+ GLuint answerBuffer[200];
+ GLuint * textures = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
+ CALL_GenTextures( GET_DISPATCH(), (
+ n,
+ textures
+ ) );
+ (void) bswap_32_array( (uint32_t *) textures, n );
+ __glXSendReplySwap(cl->client, textures, n, 4, GL_TRUE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GenTexturesEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 0 );
+
+ GLuint answerBuffer[200];
+ GLuint * textures = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
+ CALL_GenTextures( GET_DISPATCH(), (
+ n,
+ textures
+ ) );
+ (void) bswap_32_array( (uint32_t *) textures, n );
+ __glXSendReplySwap(cl->client, textures, n, 4, GL_TRUE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_IsTexture(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLboolean retval;
+ retval = CALL_IsTexture( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 )
+ ) );
+ __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_IsTextureEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLboolean retval;
+ retval = CALL_IsTexture( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 )
+ ) );
+ __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDispSwap_PrioritizeTextures(GLbyte * pc)
+{
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 0 );
+
+ CALL_PrioritizeTextures( GET_DISPATCH(), (
+ n,
+ (const GLuint *)bswap_32_array( (uint32_t *) (pc + 4), 0 ),
+ (const GLclampf *)bswap_32_array( (uint32_t *) (pc + 4), 0 )
+ ) );
+}
+
+void __glXDispSwap_TexSubImage1D(GLbyte * pc)
+{
+ const GLvoid * const pixels = (const GLvoid *) (pc + 56);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32( & hdr->rowLength )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32( & hdr->skipRows )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) bswap_CARD32( & hdr->skipPixels )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32( & hdr->alignment )) );
+
+ CALL_TexSubImage1D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 20 ),
+ (GLint )bswap_CARD32 ( pc + 24 ),
+ (GLint )bswap_CARD32 ( pc + 28 ),
+ (GLsizei )bswap_CARD32 ( pc + 36 ),
+ (GLenum )bswap_ENUM ( pc + 44 ),
+ (GLenum )bswap_ENUM ( pc + 48 ),
+ pixels
+ ) );
+}
+
+void __glXDispSwap_TexSubImage2D(GLbyte * pc)
+{
+ const GLvoid * const pixels = (const GLvoid *) (pc + 56);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32( & hdr->rowLength )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32( & hdr->skipRows )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) bswap_CARD32( & hdr->skipPixels )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32( & hdr->alignment )) );
+
+ CALL_TexSubImage2D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 20 ),
+ (GLint )bswap_CARD32 ( pc + 24 ),
+ (GLint )bswap_CARD32 ( pc + 28 ),
+ (GLint )bswap_CARD32 ( pc + 32 ),
+ (GLsizei )bswap_CARD32 ( pc + 36 ),
+ (GLsizei )bswap_CARD32 ( pc + 40 ),
+ (GLenum )bswap_ENUM ( pc + 44 ),
+ (GLenum )bswap_ENUM ( pc + 48 ),
+ pixels
+ ) );
+}
+
+void __glXDispSwap_BlendColor(GLbyte * pc)
+{
+ CALL_BlendColor( GET_DISPATCH(), (
+ (GLclampf)bswap_FLOAT32( pc + 0 ),
+ (GLclampf)bswap_FLOAT32( pc + 4 ),
+ (GLclampf)bswap_FLOAT32( pc + 8 ),
+ (GLclampf)bswap_FLOAT32( pc + 12 )
+ ) );
+}
+
+void __glXDispSwap_BlendEquation(GLbyte * pc)
+{
+ CALL_BlendEquation( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_ColorTable(GLbyte * pc)
+{
+ const GLvoid * const table = (const GLvoid *) (pc + 40);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32( & hdr->rowLength )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32( & hdr->skipRows )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) bswap_CARD32( & hdr->skipPixels )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32( & hdr->alignment )) );
+
+ CALL_ColorTable( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 20 ),
+ (GLenum )bswap_ENUM ( pc + 24 ),
+ (GLsizei )bswap_CARD32 ( pc + 28 ),
+ (GLenum )bswap_ENUM ( pc + 32 ),
+ (GLenum )bswap_ENUM ( pc + 36 ),
+ table
+ ) );
+}
+
+void __glXDispSwap_ColorTableParameterfv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+ const GLfloat * params;
+
+ params = (const GLfloat *) bswap_32_array( (uint32_t *) (pc + 8), __glColorTableParameterfv_size(pname) );
+
+ CALL_ColorTableParameterfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_ColorTableParameteriv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+ const GLint * params;
+
+ params = (const GLint *) bswap_32_array( (uint32_t *) (pc + 8), __glColorTableParameteriv_size(pname) );
+
+ CALL_ColorTableParameteriv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_CopyColorTable(GLbyte * pc)
+{
+ CALL_CopyColorTable( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLint )bswap_CARD32 ( pc + 8 ),
+ (GLint )bswap_CARD32 ( pc + 12 ),
+ (GLsizei )bswap_CARD32 ( pc + 16 )
+ ) );
+}
+
+int __glXDispSwap_GetColorTableParameterfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetColorTableParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetColorTableParameterfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetColorTableParameterfvSGI(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetColorTableParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetColorTableParameterfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetColorTableParameteriv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetColorTableParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetColorTableParameteriv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetColorTableParameterivSGI(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetColorTableParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetColorTableParameteriv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDispSwap_ColorSubTable(GLbyte * pc)
+{
+ const GLvoid * const data = (const GLvoid *) (pc + 40);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32( & hdr->rowLength )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32( & hdr->skipRows )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) bswap_CARD32( & hdr->skipPixels )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32( & hdr->alignment )) );
+
+ CALL_ColorSubTable( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 20 ),
+ (GLsizei )bswap_CARD32 ( pc + 24 ),
+ (GLsizei )bswap_CARD32 ( pc + 28 ),
+ (GLenum )bswap_ENUM ( pc + 32 ),
+ (GLenum )bswap_ENUM ( pc + 36 ),
+ data
+ ) );
+}
+
+void __glXDispSwap_CopyColorSubTable(GLbyte * pc)
+{
+ CALL_CopyColorSubTable( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLsizei )bswap_CARD32 ( pc + 4 ),
+ (GLint )bswap_CARD32 ( pc + 8 ),
+ (GLint )bswap_CARD32 ( pc + 12 ),
+ (GLsizei )bswap_CARD32 ( pc + 16 )
+ ) );
+}
+
+void __glXDispSwap_ConvolutionFilter1D(GLbyte * pc)
+{
+ const GLvoid * const image = (const GLvoid *) (pc + 44);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32( & hdr->rowLength )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32( & hdr->skipRows )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) bswap_CARD32( & hdr->skipPixels )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32( & hdr->alignment )) );
+
+ CALL_ConvolutionFilter1D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 20 ),
+ (GLenum )bswap_ENUM ( pc + 24 ),
+ (GLsizei )bswap_CARD32 ( pc + 28 ),
+ (GLenum )bswap_ENUM ( pc + 36 ),
+ (GLenum )bswap_ENUM ( pc + 40 ),
+ image
+ ) );
+}
+
+void __glXDispSwap_ConvolutionFilter2D(GLbyte * pc)
+{
+ const GLvoid * const image = (const GLvoid *) (pc + 44);
+ __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32( & hdr->rowLength )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32( & hdr->skipRows )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) bswap_CARD32( & hdr->skipPixels )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32( & hdr->alignment )) );
+
+ CALL_ConvolutionFilter2D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 20 ),
+ (GLenum )bswap_ENUM ( pc + 24 ),
+ (GLsizei )bswap_CARD32 ( pc + 28 ),
+ (GLsizei )bswap_CARD32 ( pc + 32 ),
+ (GLenum )bswap_ENUM ( pc + 36 ),
+ (GLenum )bswap_ENUM ( pc + 40 ),
+ image
+ ) );
+}
+
+void __glXDispSwap_ConvolutionParameterf(GLbyte * pc)
+{
+ CALL_ConvolutionParameterf( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLfloat )bswap_FLOAT32( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_ConvolutionParameterfv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+ const GLfloat * params;
+
+ params = (const GLfloat *) bswap_32_array( (uint32_t *) (pc + 8), __glConvolutionParameterfv_size(pname) );
+
+ CALL_ConvolutionParameterfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_ConvolutionParameteri(GLbyte * pc)
+{
+ CALL_ConvolutionParameteri( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLint )bswap_CARD32 ( pc + 8 )
+ ) );
+}
+
+void __glXDispSwap_ConvolutionParameteriv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+ const GLint * params;
+
+ params = (const GLint *) bswap_32_array( (uint32_t *) (pc + 8), __glConvolutionParameteriv_size(pname) );
+
+ CALL_ConvolutionParameteriv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_CopyConvolutionFilter1D(GLbyte * pc)
+{
+ CALL_CopyConvolutionFilter1D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLint )bswap_CARD32 ( pc + 8 ),
+ (GLint )bswap_CARD32 ( pc + 12 ),
+ (GLsizei )bswap_CARD32 ( pc + 16 )
+ ) );
+}
+
+void __glXDispSwap_CopyConvolutionFilter2D(GLbyte * pc)
+{
+ CALL_CopyConvolutionFilter2D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLint )bswap_CARD32 ( pc + 8 ),
+ (GLint )bswap_CARD32 ( pc + 12 ),
+ (GLsizei )bswap_CARD32 ( pc + 16 ),
+ (GLsizei )bswap_CARD32 ( pc + 20 )
+ ) );
+}
+
+int __glXDispSwap_GetConvolutionParameterfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetConvolutionParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetConvolutionParameterfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetConvolutionParameterfvEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetConvolutionParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetConvolutionParameterfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetConvolutionParameteriv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetConvolutionParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetConvolutionParameteriv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetConvolutionParameterivEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetConvolutionParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetConvolutionParameteriv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetHistogramParameterfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetHistogramParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetHistogramParameterfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetHistogramParameterfvEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetHistogramParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetHistogramParameterfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetHistogramParameteriv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetHistogramParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetHistogramParameteriv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetHistogramParameterivEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetHistogramParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetHistogramParameteriv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetMinmaxParameterfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetMinmaxParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetMinmaxParameterfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetMinmaxParameterfvEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetMinmaxParameterfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetMinmaxParameterfv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetMinmaxParameteriv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetMinmaxParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetMinmaxParameteriv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetMinmaxParameterivEXT(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetMinmaxParameteriv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetMinmaxParameteriv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDispSwap_Histogram(GLbyte * pc)
+{
+ CALL_Histogram( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLsizei )bswap_CARD32 ( pc + 4 ),
+ (GLenum )bswap_ENUM ( pc + 8 ),
+ *(GLboolean *)(pc + 12)
+ ) );
+}
+
+void __glXDispSwap_Minmax(GLbyte * pc)
+{
+ CALL_Minmax( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ *(GLboolean *)(pc + 8)
+ ) );
+}
+
+void __glXDispSwap_ResetHistogram(GLbyte * pc)
+{
+ CALL_ResetHistogram( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_ResetMinmax(GLbyte * pc)
+{
+ CALL_ResetMinmax( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_TexImage3D(GLbyte * pc)
+{
+ const CARD32 ptr_is_null = *(CARD32 *)(pc + 76);
+ const GLvoid * const pixels = (const GLvoid *) ((ptr_is_null != 0) ? NULL : (pc + 80));
+ __GLXpixel3DHeader * const hdr = (__GLXpixel3DHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32( & hdr->rowLength )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_IMAGE_HEIGHT, (GLint) bswap_CARD32( & hdr->imageHeight )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32( & hdr->skipRows )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_IMAGES, (GLint) bswap_CARD32( & hdr->skipImages )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) bswap_CARD32( & hdr->skipPixels )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32( & hdr->alignment )) );
+
+ CALL_TexImage3D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 36 ),
+ (GLint )bswap_CARD32 ( pc + 40 ),
+ (GLint )bswap_CARD32 ( pc + 44 ),
+ (GLsizei )bswap_CARD32 ( pc + 48 ),
+ (GLsizei )bswap_CARD32 ( pc + 52 ),
+ (GLsizei )bswap_CARD32 ( pc + 56 ),
+ (GLint )bswap_CARD32 ( pc + 64 ),
+ (GLenum )bswap_ENUM ( pc + 68 ),
+ (GLenum )bswap_ENUM ( pc + 72 ),
+ pixels
+ ) );
+}
+
+void __glXDispSwap_TexSubImage3D(GLbyte * pc)
+{
+ const GLvoid * const pixels = (const GLvoid *) (pc + 88);
+ __GLXpixel3DHeader * const hdr = (__GLXpixel3DHeader *)(pc);
+
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, (GLint) bswap_CARD32( & hdr->rowLength )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_IMAGE_HEIGHT, (GLint) bswap_CARD32( & hdr->imageHeight )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, (GLint) bswap_CARD32( & hdr->skipRows )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_IMAGES, (GLint) bswap_CARD32( & hdr->skipImages )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, (GLint) bswap_CARD32( & hdr->skipPixels )) );
+ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, (GLint) bswap_CARD32( & hdr->alignment )) );
+
+ CALL_TexSubImage3D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 36 ),
+ (GLint )bswap_CARD32 ( pc + 40 ),
+ (GLint )bswap_CARD32 ( pc + 44 ),
+ (GLint )bswap_CARD32 ( pc + 48 ),
+ (GLint )bswap_CARD32 ( pc + 52 ),
+ (GLsizei )bswap_CARD32 ( pc + 60 ),
+ (GLsizei )bswap_CARD32 ( pc + 64 ),
+ (GLsizei )bswap_CARD32 ( pc + 68 ),
+ (GLenum )bswap_ENUM ( pc + 76 ),
+ (GLenum )bswap_ENUM ( pc + 80 ),
+ pixels
+ ) );
+}
+
+void __glXDispSwap_CopyTexSubImage3D(GLbyte * pc)
+{
+ CALL_CopyTexSubImage3D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ (GLint )bswap_CARD32 ( pc + 8 ),
+ (GLint )bswap_CARD32 ( pc + 12 ),
+ (GLint )bswap_CARD32 ( pc + 16 ),
+ (GLint )bswap_CARD32 ( pc + 20 ),
+ (GLint )bswap_CARD32 ( pc + 24 ),
+ (GLsizei )bswap_CARD32 ( pc + 28 ),
+ (GLsizei )bswap_CARD32 ( pc + 32 )
+ ) );
+}
+
+void __glXDispSwap_ActiveTexture(GLbyte * pc)
+{
+ CALL_ActiveTexture( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_MultiTexCoord1dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 12);
+ pc -= 4;
+ }
+#endif
+
+ CALL_MultiTexCoord1dv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 8 ),
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 1 )
+ ) );
+}
+
+void __glXDispSwap_MultiTexCoord1fvARB(GLbyte * pc)
+{
+ CALL_MultiTexCoord1fvARB( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 4), 1 )
+ ) );
+}
+
+void __glXDispSwap_MultiTexCoord1iv(GLbyte * pc)
+{
+ CALL_MultiTexCoord1iv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 4), 1 )
+ ) );
+}
+
+void __glXDispSwap_MultiTexCoord1sv(GLbyte * pc)
+{
+ CALL_MultiTexCoord1sv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 4), 1 )
+ ) );
+}
+
+void __glXDispSwap_MultiTexCoord2dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 20);
+ pc -= 4;
+ }
+#endif
+
+ CALL_MultiTexCoord2dv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 16 ),
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 2 )
+ ) );
+}
+
+void __glXDispSwap_MultiTexCoord2fvARB(GLbyte * pc)
+{
+ CALL_MultiTexCoord2fvARB( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 4), 2 )
+ ) );
+}
+
+void __glXDispSwap_MultiTexCoord2iv(GLbyte * pc)
+{
+ CALL_MultiTexCoord2iv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 4), 2 )
+ ) );
+}
+
+void __glXDispSwap_MultiTexCoord2sv(GLbyte * pc)
+{
+ CALL_MultiTexCoord2sv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 4), 2 )
+ ) );
+}
+
+void __glXDispSwap_MultiTexCoord3dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 28);
+ pc -= 4;
+ }
+#endif
+
+ CALL_MultiTexCoord3dv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 24 ),
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_MultiTexCoord3fvARB(GLbyte * pc)
+{
+ CALL_MultiTexCoord3fvARB( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 4), 3 )
+ ) );
+}
+
+void __glXDispSwap_MultiTexCoord3iv(GLbyte * pc)
+{
+ CALL_MultiTexCoord3iv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 4), 3 )
+ ) );
+}
+
+void __glXDispSwap_MultiTexCoord3sv(GLbyte * pc)
+{
+ CALL_MultiTexCoord3sv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 4), 3 )
+ ) );
+}
+
+void __glXDispSwap_MultiTexCoord4dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 36);
+ pc -= 4;
+ }
+#endif
+
+ CALL_MultiTexCoord4dv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 32 ),
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_MultiTexCoord4fvARB(GLbyte * pc)
+{
+ CALL_MultiTexCoord4fvARB( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 4), 4 )
+ ) );
+}
+
+void __glXDispSwap_MultiTexCoord4iv(GLbyte * pc)
+{
+ CALL_MultiTexCoord4iv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 4), 4 )
+ ) );
+}
+
+void __glXDispSwap_MultiTexCoord4sv(GLbyte * pc)
+{
+ CALL_MultiTexCoord4sv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 4), 4 )
+ ) );
+}
+
+void __glXDispSwap_CompressedTexImage1D(GLbyte * pc)
+{
+ const GLsizei imageSize = (GLsizei )bswap_CARD32 ( pc + 20 );
+
+ CALL_CompressedTexImage1D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ (GLenum )bswap_ENUM ( pc + 8 ),
+ (GLsizei )bswap_CARD32 ( pc + 12 ),
+ (GLint )bswap_CARD32 ( pc + 16 ),
+ imageSize,
+ (const GLvoid *)(pc + 24)
+ ) );
+}
+
+void __glXDispSwap_CompressedTexImage2D(GLbyte * pc)
+{
+ const GLsizei imageSize = (GLsizei )bswap_CARD32 ( pc + 24 );
+
+ CALL_CompressedTexImage2D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ (GLenum )bswap_ENUM ( pc + 8 ),
+ (GLsizei )bswap_CARD32 ( pc + 12 ),
+ (GLsizei )bswap_CARD32 ( pc + 16 ),
+ (GLint )bswap_CARD32 ( pc + 20 ),
+ imageSize,
+ (const GLvoid *)(pc + 28)
+ ) );
+}
+
+void __glXDispSwap_CompressedTexImage3D(GLbyte * pc)
+{
+ const GLsizei imageSize = (GLsizei )bswap_CARD32 ( pc + 28 );
+
+ CALL_CompressedTexImage3D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ (GLenum )bswap_ENUM ( pc + 8 ),
+ (GLsizei )bswap_CARD32 ( pc + 12 ),
+ (GLsizei )bswap_CARD32 ( pc + 16 ),
+ (GLsizei )bswap_CARD32 ( pc + 20 ),
+ (GLint )bswap_CARD32 ( pc + 24 ),
+ imageSize,
+ (const GLvoid *)(pc + 32)
+ ) );
+}
+
+void __glXDispSwap_CompressedTexSubImage1D(GLbyte * pc)
+{
+ const GLsizei imageSize = (GLsizei )bswap_CARD32 ( pc + 20 );
+
+ CALL_CompressedTexSubImage1D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ (GLint )bswap_CARD32 ( pc + 8 ),
+ (GLsizei )bswap_CARD32 ( pc + 12 ),
+ (GLenum )bswap_ENUM ( pc + 16 ),
+ imageSize,
+ (const GLvoid *)(pc + 24)
+ ) );
+}
+
+void __glXDispSwap_CompressedTexSubImage2D(GLbyte * pc)
+{
+ const GLsizei imageSize = (GLsizei )bswap_CARD32 ( pc + 28 );
+
+ CALL_CompressedTexSubImage2D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ (GLint )bswap_CARD32 ( pc + 8 ),
+ (GLint )bswap_CARD32 ( pc + 12 ),
+ (GLsizei )bswap_CARD32 ( pc + 16 ),
+ (GLsizei )bswap_CARD32 ( pc + 20 ),
+ (GLenum )bswap_ENUM ( pc + 24 ),
+ imageSize,
+ (const GLvoid *)(pc + 32)
+ ) );
+}
+
+void __glXDispSwap_CompressedTexSubImage3D(GLbyte * pc)
+{
+ const GLsizei imageSize = (GLsizei )bswap_CARD32 ( pc + 36 );
+
+ CALL_CompressedTexSubImage3D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ (GLint )bswap_CARD32 ( pc + 8 ),
+ (GLint )bswap_CARD32 ( pc + 12 ),
+ (GLint )bswap_CARD32 ( pc + 16 ),
+ (GLsizei )bswap_CARD32 ( pc + 20 ),
+ (GLsizei )bswap_CARD32 ( pc + 24 ),
+ (GLsizei )bswap_CARD32 ( pc + 28 ),
+ (GLenum )bswap_ENUM ( pc + 32 ),
+ imageSize,
+ (const GLvoid *)(pc + 40)
+ ) );
+}
+
+void __glXDispSwap_SampleCoverage(GLbyte * pc)
+{
+ CALL_SampleCoverage( GET_DISPATCH(), (
+ (GLclampf)bswap_FLOAT32( pc + 0 ),
+ *(GLboolean *)(pc + 4)
+ ) );
+}
+
+void __glXDispSwap_BlendFuncSeparate(GLbyte * pc)
+{
+ CALL_BlendFuncSeparate( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLenum )bswap_ENUM ( pc + 8 ),
+ (GLenum )bswap_ENUM ( pc + 12 )
+ ) );
+}
+
+void __glXDispSwap_FogCoorddv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 8);
+ pc -= 4;
+ }
+#endif
+
+ CALL_FogCoorddv( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 1 )
+ ) );
+}
+
+void __glXDispSwap_PointParameterf(GLbyte * pc)
+{
+ CALL_PointParameterf( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLfloat )bswap_FLOAT32( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_PointParameterfv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 0 );
+ const GLfloat * params;
+
+ params = (const GLfloat *) bswap_32_array( (uint32_t *) (pc + 4), __glPointParameterfv_size(pname) );
+
+ CALL_PointParameterfv( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_PointParameteri(GLbyte * pc)
+{
+ CALL_PointParameteri( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_PointParameteriv(GLbyte * pc)
+{
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 0 );
+ const GLint * params;
+
+ params = (const GLint *) bswap_32_array( (uint32_t *) (pc + 4), __glPointParameteriv_size(pname) );
+
+ CALL_PointParameteriv( GET_DISPATCH(), (
+ pname,
+ params
+ ) );
+}
+
+void __glXDispSwap_SecondaryColor3bv(GLbyte * pc)
+{
+ CALL_SecondaryColor3bv( GET_DISPATCH(), (
+ (const GLbyte *)(pc + 0)
+ ) );
+}
+
+void __glXDispSwap_SecondaryColor3dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 24);
+ pc -= 4;
+ }
+#endif
+
+ CALL_SecondaryColor3dv( GET_DISPATCH(), (
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_SecondaryColor3iv(GLbyte * pc)
+{
+ CALL_SecondaryColor3iv( GET_DISPATCH(), (
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_SecondaryColor3sv(GLbyte * pc)
+{
+ CALL_SecondaryColor3sv( GET_DISPATCH(), (
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_SecondaryColor3ubv(GLbyte * pc)
+{
+ CALL_SecondaryColor3ubv( GET_DISPATCH(), (
+ (const GLubyte *)(pc + 0)
+ ) );
+}
+
+void __glXDispSwap_SecondaryColor3uiv(GLbyte * pc)
+{
+ CALL_SecondaryColor3uiv( GET_DISPATCH(), (
+ (const GLuint *)bswap_32_array( (uint32_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_SecondaryColor3usv(GLbyte * pc)
+{
+ CALL_SecondaryColor3usv( GET_DISPATCH(), (
+ (const GLushort *)bswap_16_array( (uint16_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_WindowPos3fv(GLbyte * pc)
+{
+ CALL_WindowPos3fv( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_BeginQuery(GLbyte * pc)
+{
+ CALL_BeginQuery( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 )
+ ) );
+}
+
+int __glXDispSwap_DeleteQueries(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 0 );
+
+ CALL_DeleteQueries( GET_DISPATCH(), (
+ n,
+ (const GLuint *)bswap_32_array( (uint32_t *) (pc + 4), 0 )
+ ) );
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDispSwap_EndQuery(GLbyte * pc)
+{
+ CALL_EndQuery( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+}
+
+int __glXDispSwap_GenQueries(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 0 );
+
+ GLuint answerBuffer[200];
+ GLuint * ids = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
+ CALL_GenQueries( GET_DISPATCH(), (
+ n,
+ ids
+ ) );
+ (void) bswap_32_array( (uint32_t *) ids, n );
+ __glXSendReplySwap(cl->client, ids, n, 4, GL_TRUE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetQueryObjectiv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetQueryObjectiv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetQueryObjectiv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetQueryObjectuiv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetQueryObjectuiv_size(pname);
+ GLuint answerBuffer[200];
+ GLuint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetQueryObjectuiv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetQueryiv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetQueryiv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetQueryiv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_IsQuery(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXSingleReq * const req = (xGLXSingleReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_SINGLE_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLboolean retval;
+ retval = CALL_IsQuery( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 )
+ ) );
+ __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDispSwap_BlendEquationSeparate(GLbyte * pc)
+{
+ CALL_BlendEquationSeparate( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_DrawBuffers(GLbyte * pc)
+{
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 0 );
+
+ CALL_DrawBuffers( GET_DISPATCH(), (
+ n,
+ (const GLenum *)bswap_32_array( (uint32_t *) (pc + 4), 0 )
+ ) );
+}
+
+int __glXDispSwap_GetVertexAttribdv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetVertexAttribdv_size(pname);
+ GLdouble answerBuffer[200];
+ GLdouble * params = __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer, sizeof(answerBuffer), 8);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetVertexAttribdv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_64_array( (uint64_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 8, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetVertexAttribfv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetVertexAttribfv_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetVertexAttribfv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetVertexAttribiv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetVertexAttribiv_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetVertexAttribiv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDispSwap_VertexAttrib1dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 12);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttrib1dv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 4), 1 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib1sv(GLbyte * pc)
+{
+ CALL_VertexAttrib1sv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 4), 1 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib2dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 20);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttrib2dv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 4), 2 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib2sv(GLbyte * pc)
+{
+ CALL_VertexAttrib2sv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 4), 2 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib3dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 28);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttrib3dv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 4), 3 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib3sv(GLbyte * pc)
+{
+ CALL_VertexAttrib3sv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 4), 3 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib4Nbv(GLbyte * pc)
+{
+ CALL_VertexAttrib4Nbv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLbyte *)(pc + 4)
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib4Niv(GLbyte * pc)
+{
+ CALL_VertexAttrib4Niv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 4), 4 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib4Nsv(GLbyte * pc)
+{
+ CALL_VertexAttrib4Nsv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 4), 4 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib4Nubv(GLbyte * pc)
+{
+ CALL_VertexAttrib4Nubv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLubyte *)(pc + 4)
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib4Nuiv(GLbyte * pc)
+{
+ CALL_VertexAttrib4Nuiv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLuint *)bswap_32_array( (uint32_t *) (pc + 4), 4 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib4Nusv(GLbyte * pc)
+{
+ CALL_VertexAttrib4Nusv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLushort *)bswap_16_array( (uint16_t *) (pc + 4), 4 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib4bv(GLbyte * pc)
+{
+ CALL_VertexAttrib4bv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLbyte *)(pc + 4)
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib4dv(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 36);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttrib4dv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 4), 4 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib4iv(GLbyte * pc)
+{
+ CALL_VertexAttrib4iv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLint *)bswap_32_array( (uint32_t *) (pc + 4), 4 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib4sv(GLbyte * pc)
+{
+ CALL_VertexAttrib4sv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 4), 4 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib4ubv(GLbyte * pc)
+{
+ CALL_VertexAttrib4ubv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLubyte *)(pc + 4)
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib4uiv(GLbyte * pc)
+{
+ CALL_VertexAttrib4uiv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLuint *)bswap_32_array( (uint32_t *) (pc + 4), 4 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib4usv(GLbyte * pc)
+{
+ CALL_VertexAttrib4usv( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLushort *)bswap_16_array( (uint16_t *) (pc + 4), 4 )
+ ) );
+}
+
+void __glXDispSwap_ClampColor(GLbyte * pc)
+{
+ CALL_ClampColor( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_BindProgramARB(GLbyte * pc)
+{
+ CALL_BindProgramARB( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 )
+ ) );
+}
+
+int __glXDispSwap_DeleteProgramsARB(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 0 );
+
+ CALL_DeleteProgramsARB( GET_DISPATCH(), (
+ n,
+ (const GLuint *)bswap_32_array( (uint32_t *) (pc + 4), 0 )
+ ) );
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GenProgramsARB(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 0 );
+
+ GLuint answerBuffer[200];
+ GLuint * programs = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
+ CALL_GenProgramsARB( GET_DISPATCH(), (
+ n,
+ programs
+ ) );
+ (void) bswap_32_array( (uint32_t *) programs, n );
+ __glXSendReplySwap(cl->client, programs, n, 4, GL_TRUE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetProgramEnvParameterdvARB(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLdouble params[4];
+ CALL_GetProgramEnvParameterdvARB( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 ),
+ params
+ ) );
+ (void) bswap_64_array( (uint64_t *) params, 4 );
+ __glXSendReplySwap(cl->client, params, 4, 8, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetProgramEnvParameterfvARB(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLfloat params[4];
+ CALL_GetProgramEnvParameterfvARB( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 ),
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, 4 );
+ __glXSendReplySwap(cl->client, params, 4, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetProgramLocalParameterdvARB(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLdouble params[4];
+ CALL_GetProgramLocalParameterdvARB( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 ),
+ params
+ ) );
+ (void) bswap_64_array( (uint64_t *) params, 4 );
+ __glXSendReplySwap(cl->client, params, 4, 8, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetProgramLocalParameterfvARB(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLfloat params[4];
+ CALL_GetProgramLocalParameterfvARB( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 ),
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, 4 );
+ __glXSendReplySwap(cl->client, params, 4, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetProgramivARB(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetProgramivARB_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetProgramivARB( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_IsProgramARB(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLboolean retval;
+ retval = CALL_IsProgramARB( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 )
+ ) );
+ __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDispSwap_ProgramEnvParameter4dvARB(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 40);
+ pc -= 4;
+ }
+#endif
+
+ CALL_ProgramEnvParameter4dvARB( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 ),
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 8), 4 )
+ ) );
+}
+
+void __glXDispSwap_ProgramEnvParameter4fvARB(GLbyte * pc)
+{
+ CALL_ProgramEnvParameter4fvARB( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 ),
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 8), 4 )
+ ) );
+}
+
+void __glXDispSwap_ProgramLocalParameter4dvARB(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 40);
+ pc -= 4;
+ }
+#endif
+
+ CALL_ProgramLocalParameter4dvARB( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 ),
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 8), 4 )
+ ) );
+}
+
+void __glXDispSwap_ProgramLocalParameter4fvARB(GLbyte * pc)
+{
+ CALL_ProgramLocalParameter4fvARB( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 ),
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 8), 4 )
+ ) );
+}
+
+void __glXDispSwap_ProgramStringARB(GLbyte * pc)
+{
+ const GLsizei len = (GLsizei )bswap_CARD32 ( pc + 8 );
+
+ CALL_ProgramStringARB( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ len,
+ (const GLvoid *)(pc + 12)
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib1fvARB(GLbyte * pc)
+{
+ CALL_VertexAttrib1fvARB( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 4), 1 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib2fvARB(GLbyte * pc)
+{
+ CALL_VertexAttrib2fvARB( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 4), 2 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib3fvARB(GLbyte * pc)
+{
+ CALL_VertexAttrib3fvARB( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 4), 3 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib4fvARB(GLbyte * pc)
+{
+ CALL_VertexAttrib4fvARB( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 4), 4 )
+ ) );
+}
+
+void __glXDispSwap_BindFramebuffer(GLbyte * pc)
+{
+ CALL_BindFramebuffer( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_BindRenderbuffer(GLbyte * pc)
+{
+ CALL_BindRenderbuffer( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_BlitFramebuffer(GLbyte * pc)
+{
+ CALL_BlitFramebuffer( GET_DISPATCH(), (
+ (GLint )bswap_CARD32 ( pc + 0 ),
+ (GLint )bswap_CARD32 ( pc + 4 ),
+ (GLint )bswap_CARD32 ( pc + 8 ),
+ (GLint )bswap_CARD32 ( pc + 12 ),
+ (GLint )bswap_CARD32 ( pc + 16 ),
+ (GLint )bswap_CARD32 ( pc + 20 ),
+ (GLint )bswap_CARD32 ( pc + 24 ),
+ (GLint )bswap_CARD32 ( pc + 28 ),
+ (GLbitfield)bswap_CARD32 ( pc + 32 ),
+ (GLenum )bswap_ENUM ( pc + 36 )
+ ) );
+}
+
+int __glXDispSwap_CheckFramebufferStatus(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLenum retval;
+ retval = CALL_CheckFramebufferStatus( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+ __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDispSwap_DeleteFramebuffers(GLbyte * pc)
+{
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 0 );
+
+ CALL_DeleteFramebuffers( GET_DISPATCH(), (
+ n,
+ (const GLuint *)bswap_32_array( (uint32_t *) (pc + 4), 0 )
+ ) );
+}
+
+void __glXDispSwap_DeleteRenderbuffers(GLbyte * pc)
+{
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 0 );
+
+ CALL_DeleteRenderbuffers( GET_DISPATCH(), (
+ n,
+ (const GLuint *)bswap_32_array( (uint32_t *) (pc + 4), 0 )
+ ) );
+}
+
+void __glXDispSwap_FramebufferRenderbuffer(GLbyte * pc)
+{
+ CALL_FramebufferRenderbuffer( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLenum )bswap_ENUM ( pc + 8 ),
+ (GLuint )bswap_CARD32 ( pc + 12 )
+ ) );
+}
+
+void __glXDispSwap_FramebufferTexture1D(GLbyte * pc)
+{
+ CALL_FramebufferTexture1D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLenum )bswap_ENUM ( pc + 8 ),
+ (GLuint )bswap_CARD32 ( pc + 12 ),
+ (GLint )bswap_CARD32 ( pc + 16 )
+ ) );
+}
+
+void __glXDispSwap_FramebufferTexture2D(GLbyte * pc)
+{
+ CALL_FramebufferTexture2D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLenum )bswap_ENUM ( pc + 8 ),
+ (GLuint )bswap_CARD32 ( pc + 12 ),
+ (GLint )bswap_CARD32 ( pc + 16 )
+ ) );
+}
+
+void __glXDispSwap_FramebufferTexture3D(GLbyte * pc)
+{
+ CALL_FramebufferTexture3D( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLenum )bswap_ENUM ( pc + 8 ),
+ (GLuint )bswap_CARD32 ( pc + 12 ),
+ (GLint )bswap_CARD32 ( pc + 16 ),
+ (GLint )bswap_CARD32 ( pc + 20 )
+ ) );
+}
+
+void __glXDispSwap_FramebufferTextureLayer(GLbyte * pc)
+{
+ CALL_FramebufferTextureLayer( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLuint )bswap_CARD32 ( pc + 8 ),
+ (GLint )bswap_CARD32 ( pc + 12 ),
+ (GLint )bswap_CARD32 ( pc + 16 )
+ ) );
+}
+
+int __glXDispSwap_GenFramebuffers(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 0 );
+
+ GLuint answerBuffer[200];
+ GLuint * framebuffers = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
+ CALL_GenFramebuffers( GET_DISPATCH(), (
+ n,
+ framebuffers
+ ) );
+ (void) bswap_32_array( (uint32_t *) framebuffers, n );
+ __glXSendReplySwap(cl->client, framebuffers, n, 4, GL_TRUE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GenRenderbuffers(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 0 );
+
+ GLuint answerBuffer[200];
+ GLuint * renderbuffers = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
+ CALL_GenRenderbuffers( GET_DISPATCH(), (
+ n,
+ renderbuffers
+ ) );
+ (void) bswap_32_array( (uint32_t *) renderbuffers, n );
+ __glXSendReplySwap(cl->client, renderbuffers, n, 4, GL_TRUE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDispSwap_GenerateMipmap(GLbyte * pc)
+{
+ CALL_GenerateMipmap( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+}
+
+int __glXDispSwap_GetFramebufferAttachmentParameteriv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLint params[1];
+ CALL_GetFramebufferAttachmentParameteriv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLenum )bswap_ENUM ( pc + 8 ),
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, 1 );
+ __glXSendReplySwap(cl->client, params, 1, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetRenderbufferParameteriv(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLint params[1];
+ CALL_GetRenderbufferParameteriv( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, 1 );
+ __glXSendReplySwap(cl->client, params, 1, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_IsFramebuffer(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLboolean retval;
+ retval = CALL_IsFramebuffer( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 )
+ ) );
+ __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_IsRenderbuffer(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLboolean retval;
+ retval = CALL_IsRenderbuffer( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 )
+ ) );
+ __glXSendReplySwap(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDispSwap_RenderbufferStorage(GLbyte * pc)
+{
+ CALL_RenderbufferStorage( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLenum )bswap_ENUM ( pc + 4 ),
+ (GLsizei )bswap_CARD32 ( pc + 8 ),
+ (GLsizei )bswap_CARD32 ( pc + 12 )
+ ) );
+}
+
+void __glXDispSwap_RenderbufferStorageMultisample(GLbyte * pc)
+{
+ CALL_RenderbufferStorageMultisample( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLsizei )bswap_CARD32 ( pc + 4 ),
+ (GLenum )bswap_ENUM ( pc + 8 ),
+ (GLsizei )bswap_CARD32 ( pc + 12 ),
+ (GLsizei )bswap_CARD32 ( pc + 16 )
+ ) );
+}
+
+void __glXDispSwap_SampleMaskSGIS(GLbyte * pc)
+{
+ CALL_SampleMaskSGIS( GET_DISPATCH(), (
+ (GLclampf)bswap_FLOAT32( pc + 0 ),
+ *(GLboolean *)(pc + 4)
+ ) );
+}
+
+void __glXDispSwap_SamplePatternSGIS(GLbyte * pc)
+{
+ CALL_SamplePatternSGIS( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+}
+
+void __glXDispSwap_SecondaryColor3fvEXT(GLbyte * pc)
+{
+ CALL_SecondaryColor3fvEXT( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 3 )
+ ) );
+}
+
+void __glXDispSwap_FogCoordfvEXT(GLbyte * pc)
+{
+ CALL_FogCoordfvEXT( GET_DISPATCH(), (
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 0), 1 )
+ ) );
+}
+
+int __glXDispSwap_AreProgramsResidentNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 0 );
+
+ GLboolean retval;
+ GLboolean answerBuffer[200];
+ GLboolean * residences = __glXGetAnswerBuffer(cl, n, answerBuffer, sizeof(answerBuffer), 1);
+ retval = CALL_AreProgramsResidentNV( GET_DISPATCH(), (
+ n,
+ (const GLuint *)bswap_32_array( (uint32_t *) (pc + 4), 0 ),
+ residences
+ ) );
+ __glXSendReplySwap(cl->client, residences, n, 1, GL_FALSE, retval);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDispSwap_ExecuteProgramNV(GLbyte * pc)
+{
+ CALL_ExecuteProgramNV( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 ),
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 8), 4 )
+ ) );
+}
+
+int __glXDispSwap_GetProgramParameterdvNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLdouble params[4];
+ CALL_GetProgramParameterdvNV( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 ),
+ (GLenum )bswap_ENUM ( pc + 8 ),
+ params
+ ) );
+ (void) bswap_64_array( (uint64_t *) params, 4 );
+ __glXSendReplySwap(cl->client, params, 4, 8, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetProgramParameterfvNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLfloat params[4];
+ CALL_GetProgramParameterfvNV( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 ),
+ (GLenum )bswap_ENUM ( pc + 8 ),
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, 4 );
+ __glXSendReplySwap(cl->client, params, 4, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetProgramivNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetProgramivNV_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetProgramivNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetTrackMatrixivNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ GLint params[1];
+ CALL_GetTrackMatrixivNV( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 ),
+ (GLenum )bswap_ENUM ( pc + 8 ),
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, 1 );
+ __glXSendReplySwap(cl->client, params, 1, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetVertexAttribdvNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetVertexAttribdvNV_size(pname);
+ GLdouble answerBuffer[200];
+ GLdouble * params = __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer, sizeof(answerBuffer), 8);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetVertexAttribdvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_64_array( (uint64_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 8, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetVertexAttribfvNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetVertexAttribfvNV_size(pname);
+ GLfloat answerBuffer[200];
+ GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetVertexAttribfvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetVertexAttribivNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLenum pname = (GLenum )bswap_ENUM ( pc + 4 );
+
+ const GLuint compsize = __glGetVertexAttribivNV_size(pname);
+ GLint answerBuffer[200];
+ GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
+
+ if (params == NULL) return BadAlloc;
+ __glXClearErrorOccured();
+
+ CALL_GetVertexAttribivNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ pname,
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, compsize );
+ __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDispSwap_LoadProgramNV(GLbyte * pc)
+{
+ const GLsizei len = (GLsizei )bswap_CARD32 ( pc + 8 );
+
+ CALL_LoadProgramNV( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 ),
+ len,
+ (const GLubyte *)(pc + 12)
+ ) );
+}
+
+void __glXDispSwap_ProgramParameters4dvNV(GLbyte * pc)
+{
+ const GLsizei num = (GLsizei )bswap_CARD32 ( pc + 8 );
+
+#ifdef __GLX_ALIGN64
+ const GLuint cmdlen = 16 + __GLX_PAD((num * 32)) - 4;
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, cmdlen);
+ pc -= 4;
+ }
+#endif
+
+ CALL_ProgramParameters4dvNV( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 ),
+ num,
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 12), 0 )
+ ) );
+}
+
+void __glXDispSwap_ProgramParameters4fvNV(GLbyte * pc)
+{
+ const GLsizei num = (GLsizei )bswap_CARD32 ( pc + 8 );
+
+ CALL_ProgramParameters4fvNV( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 ),
+ num,
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 12), 0 )
+ ) );
+}
+
+void __glXDispSwap_RequestResidentProgramsNV(GLbyte * pc)
+{
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 0 );
+
+ CALL_RequestResidentProgramsNV( GET_DISPATCH(), (
+ n,
+ (const GLuint *)bswap_32_array( (uint32_t *) (pc + 4), 0 )
+ ) );
+}
+
+void __glXDispSwap_TrackMatrixNV(GLbyte * pc)
+{
+ CALL_TrackMatrixNV( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 ),
+ (GLenum )bswap_ENUM ( pc + 8 ),
+ (GLenum )bswap_ENUM ( pc + 12 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib1dvNV(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 12);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttrib1dvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 4), 1 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib1fvNV(GLbyte * pc)
+{
+ CALL_VertexAttrib1fvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 4), 1 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib1svNV(GLbyte * pc)
+{
+ CALL_VertexAttrib1svNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 4), 1 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib2dvNV(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 20);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttrib2dvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 4), 2 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib2fvNV(GLbyte * pc)
+{
+ CALL_VertexAttrib2fvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 4), 2 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib2svNV(GLbyte * pc)
+{
+ CALL_VertexAttrib2svNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 4), 2 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib3dvNV(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 28);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttrib3dvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 4), 3 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib3fvNV(GLbyte * pc)
+{
+ CALL_VertexAttrib3fvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 4), 3 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib3svNV(GLbyte * pc)
+{
+ CALL_VertexAttrib3svNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 4), 3 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib4dvNV(GLbyte * pc)
+{
+#ifdef __GLX_ALIGN64
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, 36);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttrib4dvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 4), 4 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib4fvNV(GLbyte * pc)
+{
+ CALL_VertexAttrib4fvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 4), 4 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib4svNV(GLbyte * pc)
+{
+ CALL_VertexAttrib4svNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 4), 4 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttrib4ubvNV(GLbyte * pc)
+{
+ CALL_VertexAttrib4ubvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ (const GLubyte *)(pc + 4)
+ ) );
+}
+
+void __glXDispSwap_VertexAttribs1dvNV(GLbyte * pc)
+{
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 4 );
+
+#ifdef __GLX_ALIGN64
+ const GLuint cmdlen = 12 + __GLX_PAD((n * 8)) - 4;
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, cmdlen);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttribs1dvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ n,
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 8), 0 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttribs1fvNV(GLbyte * pc)
+{
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 4 );
+
+ CALL_VertexAttribs1fvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ n,
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 8), 0 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttribs1svNV(GLbyte * pc)
+{
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 4 );
+
+ CALL_VertexAttribs1svNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ n,
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 8), 0 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttribs2dvNV(GLbyte * pc)
+{
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 4 );
+
+#ifdef __GLX_ALIGN64
+ const GLuint cmdlen = 12 + __GLX_PAD((n * 16)) - 4;
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, cmdlen);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttribs2dvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ n,
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 8), 0 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttribs2fvNV(GLbyte * pc)
+{
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 4 );
+
+ CALL_VertexAttribs2fvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ n,
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 8), 0 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttribs2svNV(GLbyte * pc)
+{
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 4 );
+
+ CALL_VertexAttribs2svNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ n,
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 8), 0 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttribs3dvNV(GLbyte * pc)
+{
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 4 );
+
+#ifdef __GLX_ALIGN64
+ const GLuint cmdlen = 12 + __GLX_PAD((n * 24)) - 4;
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, cmdlen);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttribs3dvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ n,
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 8), 0 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttribs3fvNV(GLbyte * pc)
+{
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 4 );
+
+ CALL_VertexAttribs3fvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ n,
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 8), 0 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttribs3svNV(GLbyte * pc)
+{
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 4 );
+
+ CALL_VertexAttribs3svNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ n,
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 8), 0 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttribs4dvNV(GLbyte * pc)
+{
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 4 );
+
+#ifdef __GLX_ALIGN64
+ const GLuint cmdlen = 12 + __GLX_PAD((n * 32)) - 4;
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, cmdlen);
+ pc -= 4;
+ }
+#endif
+
+ CALL_VertexAttribs4dvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ n,
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 8), 0 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttribs4fvNV(GLbyte * pc)
+{
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 4 );
+
+ CALL_VertexAttribs4fvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ n,
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 8), 0 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttribs4svNV(GLbyte * pc)
+{
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 4 );
+
+ CALL_VertexAttribs4svNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ n,
+ (const GLshort *)bswap_16_array( (uint16_t *) (pc + 8), 0 )
+ ) );
+}
+
+void __glXDispSwap_VertexAttribs4ubvNV(GLbyte * pc)
+{
+ const GLsizei n = (GLsizei )bswap_CARD32 ( pc + 4 );
+
+ CALL_VertexAttribs4ubvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ n,
+ (const GLubyte *)(pc + 8)
+ ) );
+}
+
+void __glXDispSwap_ActiveStencilFaceEXT(GLbyte * pc)
+{
+ CALL_ActiveStencilFaceEXT( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 )
+ ) );
+}
+
+int __glXDispSwap_GetProgramNamedParameterdvNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei len = (GLsizei )bswap_CARD32 ( pc + 4 );
+
+ GLdouble params[4];
+ CALL_GetProgramNamedParameterdvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ len,
+ (const GLubyte *)(pc + 8),
+ params
+ ) );
+ (void) bswap_64_array( (uint64_t *) params, 4 );
+ __glXSendReplySwap(cl->client, params, 4, 8, GL_TRUE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+int __glXDispSwap_GetProgramNamedParameterfvNV(__GLXclientState *cl, GLbyte *pc)
+{
+ xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
+ int error;
+ __GLXcontext * const cx = __glXForceCurrent(cl, bswap_CARD32( &req->contextTag ), &error);
+
+ pc += __GLX_VENDPRIV_HDR_SIZE;
+ if ( cx != NULL ) {
+ const GLsizei len = (GLsizei )bswap_CARD32 ( pc + 4 );
+
+ GLfloat params[4];
+ CALL_GetProgramNamedParameterfvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ len,
+ (const GLubyte *)(pc + 8),
+ params
+ ) );
+ (void) bswap_32_array( (uint32_t *) params, 4 );
+ __glXSendReplySwap(cl->client, params, 4, 4, GL_TRUE, 0);
+ error = Success;
+ }
+
+ return error;
+}
+
+void __glXDispSwap_ProgramNamedParameter4dvNV(GLbyte * pc)
+{
+ const GLsizei len = (GLsizei )bswap_CARD32 ( pc + 36 );
+
+#ifdef __GLX_ALIGN64
+ const GLuint cmdlen = 44 + __GLX_PAD(len) - 4;
+ if ((unsigned long)(pc) & 7) {
+ (void) memmove(pc-4, pc, cmdlen);
+ pc -= 4;
+ }
+#endif
+
+ CALL_ProgramNamedParameter4dvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 32 ),
+ len,
+ (const GLubyte *)(pc + 40),
+ (const GLdouble *)bswap_64_array( (uint64_t *) (pc + 0), 4 )
+ ) );
+}
+
+void __glXDispSwap_ProgramNamedParameter4fvNV(GLbyte * pc)
+{
+ const GLsizei len = (GLsizei )bswap_CARD32 ( pc + 4 );
+
+ CALL_ProgramNamedParameter4fvNV( GET_DISPATCH(), (
+ (GLuint )bswap_CARD32 ( pc + 0 ),
+ len,
+ (const GLubyte *)(pc + 24),
+ (const GLfloat *)bswap_32_array( (uint32_t *) (pc + 8), 4 )
+ ) );
+}
+
+void __glXDispSwap_BindFramebufferEXT(GLbyte * pc)
+{
+ CALL_BindFramebufferEXT( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 )
+ ) );
+}
+
+void __glXDispSwap_BindRenderbufferEXT(GLbyte * pc)
+{
+ CALL_BindRenderbufferEXT( GET_DISPATCH(), (
+ (GLenum )bswap_ENUM ( pc + 0 ),
+ (GLuint )bswap_CARD32 ( pc + 4 )
+ ) );
+}
+
diff --git a/xorg-server/glx/indirect_program.c b/xorg-server/glx/indirect_program.c
index db22d845d..17204c17d 100644
--- a/xorg-server/glx/indirect_program.c
+++ b/xorg-server/glx/indirect_program.c
@@ -32,6 +32,7 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
+#include "glheader.h"
#include "glxserver.h"
#include "glxbyteorder.h"
@@ -40,15 +41,28 @@
#include "unpack.h"
#include "indirect_size_get.h"
#include "indirect_dispatch.h"
+#include "glapitable.h"
+#include "glapi.h"
+#include "glthread.h"
+#include "dispatch.h"
+
+static int DoGetProgramString(struct __GLXclientStateRec *cl, GLbyte * pc,
+ unsigned get_programiv_offset,
+ unsigned get_program_string_offset, Bool do_swap);
/**
* Handle both types of glGetProgramString calls.
+ *
+ * This single function handles both \c glGetProgramStringARB and
+ * \c glGetProgramStringNV. The dispatch offsets for the functions to use
+ * for \c glGetProgramivARB and \c glGetProgramStringARB are passed in by the
+ * caller. These can be the offsets of either the ARB versions or the NV
+ * versions.
*/
-static int
+int
DoGetProgramString(struct __GLXclientStateRec *cl, GLbyte * pc,
- PFNGLGETPROGRAMIVARBPROC get_programiv,
- PFNGLGETPROGRAMSTRINGARBPROC get_program_string,
- Bool do_swap)
+ unsigned get_programiv_offset,
+ unsigned get_program_string_offset, Bool do_swap)
{
xGLXVendorPrivateWithReplyReq *const req =
(xGLXVendorPrivateWithReplyReq *) pc;
@@ -75,13 +89,19 @@ DoGetProgramString(struct __GLXclientStateRec *cl, GLbyte * pc,
/* The value of the GL_PROGRAM_LENGTH_ARB and GL_PROGRAM_LENGTH_NV
* enumerants is the same.
*/
- get_programiv(target, GL_PROGRAM_LENGTH_ARB, &compsize);
+ CALL_by_offset(GET_DISPATCH(),
+ (void (GLAPIENTRYP) (GLuint, GLenum, GLint *)),
+ get_programiv_offset,
+ (target, GL_PROGRAM_LENGTH_ARB, &compsize));
if (compsize != 0) {
__GLX_GET_ANSWER_BUFFER(answer, cl, compsize, 1);
__glXClearErrorOccured();
- get_program_string(target, pname, (GLubyte *) answer);
+ CALL_by_offset(GET_DISPATCH(),
+ (void (GLAPIENTRYP) (GLuint, GLenum, GLubyte *)),
+ get_program_string_offset,
+ (target, pname, (GLubyte *) answer));
}
if (__glXErrorOccured()) {
@@ -104,29 +124,27 @@ DoGetProgramString(struct __GLXclientStateRec *cl, GLbyte * pc,
int
__glXDisp_GetProgramStringARB(struct __GLXclientStateRec *cl, GLbyte * pc)
{
- return DoGetProgramString(cl, pc, glGetProgramivARB,
- glGetProgramStringARB, False);
+ return DoGetProgramString(cl, pc, _gloffset_GetProgramivARB,
+ _gloffset_GetProgramStringARB, False);
}
int
__glXDispSwap_GetProgramStringARB(struct __GLXclientStateRec *cl, GLbyte * pc)
{
- return DoGetProgramString(cl, pc, glGetProgramivARB,
- glGetProgramStringARB, True);
+ return DoGetProgramString(cl, pc, _gloffset_GetProgramivARB,
+ _gloffset_GetProgramStringARB, True);
}
int
__glXDisp_GetProgramStringNV(struct __GLXclientStateRec *cl, GLbyte * pc)
{
- return DoGetProgramString(cl, pc, (PFNGLGETPROGRAMIVARBPROC)glGetProgramivNV,
- (PFNGLGETPROGRAMSTRINGARBPROC)glGetProgramStringNV,
- False);
+ return DoGetProgramString(cl, pc, _gloffset_GetProgramivNV,
+ _gloffset_GetProgramStringNV, False);
}
int
__glXDispSwap_GetProgramStringNV(struct __GLXclientStateRec *cl, GLbyte * pc)
{
- return DoGetProgramString(cl, pc, (PFNGLGETPROGRAMIVARBPROC)glGetProgramivNV,
- (PFNGLGETPROGRAMSTRINGARBPROC)glGetProgramStringNV,
- True);
+ return DoGetProgramString(cl, pc, _gloffset_GetProgramivNV,
+ _gloffset_GetProgramStringNV, True);
}
diff --git a/xorg-server/glx/indirect_reqsize.c b/xorg-server/glx/indirect_reqsize.c
index 026afb6fb..62c39f041 100644
--- a/xorg-server/glx/indirect_reqsize.c
+++ b/xorg-server/glx/indirect_reqsize.c
@@ -1,794 +1,843 @@
-/* DO NOT EDIT - This file generated automatically by glX_proto_size.py (from Mesa) script */
-
-/*
- * (C) Copyright IBM Corporation 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
- * 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 THEIR 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.
- */
-
-#include <GL/gl.h>
-#include "glxserver.h"
-#include "glxbyteorder.h"
-#include "indirect_size.h"
-#include "indirect_reqsize.h"
-
-#define __GLX_PAD(x) (((x) + 3) & ~3)
-
-#if defined(__CYGWIN__) || defined(__MINGW32__)
-#undef HAVE_ALIAS
-#endif
-#ifdef HAVE_ALIAS
-#define ALIAS2(from,to) \
- GLint __glX ## from ## ReqSize( const GLbyte * pc, Bool swap ) \
- __attribute__ ((alias( # to )));
-#define ALIAS(from,to) ALIAS2( from, __glX ## to ## ReqSize )
-#else
-#define ALIAS(from,to) \
- GLint __glX ## from ## ReqSize( const GLbyte * pc, Bool swap ) \
- { return __glX ## to ## ReqSize( pc, swap ); }
-#endif
-
-int
-__glXCallListsReqSize(const GLbyte * pc, Bool swap)
-{
- GLsizei n = *(GLsizei *) (pc + 0);
- GLenum type = *(GLenum *) (pc + 4);
- GLsizei compsize;
-
- if (swap) {
- n = bswap_32(n);
- type = bswap_32(type);
- }
-
- compsize = __glCallLists_size(type);
- return __GLX_PAD((compsize * n));
-}
-
-int
-__glXBitmapReqSize(const GLbyte * pc, Bool swap)
-{
- GLint row_length = *(GLint *) (pc + 4);
- GLint image_height = 0;
- GLint skip_images = 0;
- GLint skip_rows = *(GLint *) (pc + 8);
- GLint alignment = *(GLint *) (pc + 16);
- GLsizei width = *(GLsizei *) (pc + 20);
- GLsizei height = *(GLsizei *) (pc + 24);
-
- if (swap) {
- row_length = bswap_32(row_length);
- skip_rows = bswap_32(skip_rows);
- alignment = bswap_32(alignment);
- width = bswap_32(width);
- height = bswap_32(height);
- }
-
- return __glXImageSize(GL_COLOR_INDEX, GL_BITMAP, 0, width, height, 1,
- image_height, row_length, skip_images,
- skip_rows, alignment);
-}
-
-int
-__glXFogfvReqSize(const GLbyte * pc, Bool swap)
-{
- GLenum pname = *(GLenum *) (pc + 0);
- GLsizei compsize;
-
- if (swap) {
- pname = bswap_32(pname);
- }
-
- compsize = __glFogfv_size(pname);
- return __GLX_PAD((compsize * 4));
-}
-
-int
-__glXLightfvReqSize(const GLbyte * pc, Bool swap)
-{
- GLenum pname = *(GLenum *) (pc + 4);
- GLsizei compsize;
-
- if (swap) {
- pname = bswap_32(pname);
- }
-
- compsize = __glLightfv_size(pname);
- return __GLX_PAD((compsize * 4));
-}
-
-int
-__glXLightModelfvReqSize(const GLbyte * pc, Bool swap)
-{
- GLenum pname = *(GLenum *) (pc + 0);
- GLsizei compsize;
-
- if (swap) {
- pname = bswap_32(pname);
- }
-
- compsize = __glLightModelfv_size(pname);
- return __GLX_PAD((compsize * 4));
-}
-
-int
-__glXMaterialfvReqSize(const GLbyte * pc, Bool swap)
-{
- GLenum pname = *(GLenum *) (pc + 4);
- GLsizei compsize;
-
- if (swap) {
- pname = bswap_32(pname);
- }
-
- compsize = __glMaterialfv_size(pname);
- return __GLX_PAD((compsize * 4));
-}
-
-int
-__glXPolygonStippleReqSize(const GLbyte * pc, Bool swap)
-{
- GLint row_length = *(GLint *) (pc + 4);
- GLint image_height = 0;
- GLint skip_images = 0;
- GLint skip_rows = *(GLint *) (pc + 8);
- GLint alignment = *(GLint *) (pc + 16);
-
- if (swap) {
- row_length = bswap_32(row_length);
- skip_rows = bswap_32(skip_rows);
- alignment = bswap_32(alignment);
- }
-
- return __glXImageSize(GL_COLOR_INDEX, GL_BITMAP, 0, 32, 32, 1,
- image_height, row_length, skip_images,
- skip_rows, alignment);
-}
-
-int
-__glXTexParameterfvReqSize(const GLbyte * pc, Bool swap)
-{
- GLenum pname = *(GLenum *) (pc + 4);
- GLsizei compsize;
-
- if (swap) {
- pname = bswap_32(pname);
- }
-
- compsize = __glTexParameterfv_size(pname);
- return __GLX_PAD((compsize * 4));
-}
-
-int
-__glXTexImage1DReqSize(const GLbyte * pc, Bool swap)
-{
- GLint row_length = *(GLint *) (pc + 4);
- GLint image_height = 0;
- GLint skip_images = 0;
- GLint skip_rows = *(GLint *) (pc + 8);
- GLint alignment = *(GLint *) (pc + 16);
- GLenum target = *(GLenum *) (pc + 20);
- GLsizei width = *(GLsizei *) (pc + 32);
- GLenum format = *(GLenum *) (pc + 44);
- GLenum type = *(GLenum *) (pc + 48);
-
- if (swap) {
- row_length = bswap_32(row_length);
- skip_rows = bswap_32(skip_rows);
- alignment = bswap_32(alignment);
- target = bswap_32(target);
- width = bswap_32(width);
- format = bswap_32(format);
- type = bswap_32(type);
- }
-
- return __glXImageSize(format, type, target, width, 1, 1,
- image_height, row_length, skip_images,
- skip_rows, alignment);
-}
-
-int
-__glXTexImage2DReqSize(const GLbyte * pc, Bool swap)
-{
- GLint row_length = *(GLint *) (pc + 4);
- GLint image_height = 0;
- GLint skip_images = 0;
- GLint skip_rows = *(GLint *) (pc + 8);
- GLint alignment = *(GLint *) (pc + 16);
- GLenum target = *(GLenum *) (pc + 20);
- GLsizei width = *(GLsizei *) (pc + 32);
- GLsizei height = *(GLsizei *) (pc + 36);
- GLenum format = *(GLenum *) (pc + 44);
- GLenum type = *(GLenum *) (pc + 48);
-
- if (swap) {
- row_length = bswap_32(row_length);
- skip_rows = bswap_32(skip_rows);
- alignment = bswap_32(alignment);
- target = bswap_32(target);
- width = bswap_32(width);
- height = bswap_32(height);
- format = bswap_32(format);
- type = bswap_32(type);
- }
-
- return __glXImageSize(format, type, target, width, height, 1,
- image_height, row_length, skip_images,
- skip_rows, alignment);
-}
-
-int
-__glXTexEnvfvReqSize(const GLbyte * pc, Bool swap)
-{
- GLenum pname = *(GLenum *) (pc + 4);
- GLsizei compsize;
-
- if (swap) {
- pname = bswap_32(pname);
- }
-
- compsize = __glTexEnvfv_size(pname);
- return __GLX_PAD((compsize * 4));
-}
-
-int
-__glXTexGendvReqSize(const GLbyte * pc, Bool swap)
-{
- GLenum pname = *(GLenum *) (pc + 4);
- GLsizei compsize;
-
- if (swap) {
- pname = bswap_32(pname);
- }
-
- compsize = __glTexGendv_size(pname);
- return __GLX_PAD((compsize * 8));
-}
-
-int
-__glXTexGenfvReqSize(const GLbyte * pc, Bool swap)
-{
- GLenum pname = *(GLenum *) (pc + 4);
- GLsizei compsize;
-
- if (swap) {
- pname = bswap_32(pname);
- }
-
- compsize = __glTexGenfv_size(pname);
- return __GLX_PAD((compsize * 4));
-}
-
-int
-__glXPixelMapfvReqSize(const GLbyte * pc, Bool swap)
-{
- GLsizei mapsize = *(GLsizei *) (pc + 4);
-
- if (swap) {
- mapsize = bswap_32(mapsize);
- }
-
- return __GLX_PAD((mapsize * 4));
-}
-
-int
-__glXPixelMapusvReqSize(const GLbyte * pc, Bool swap)
-{
- GLsizei mapsize = *(GLsizei *) (pc + 4);
-
- if (swap) {
- mapsize = bswap_32(mapsize);
- }
-
- return __GLX_PAD((mapsize * 2));
-}
-
-int
-__glXDrawPixelsReqSize(const GLbyte * pc, Bool swap)
-{
- GLint row_length = *(GLint *) (pc + 4);
- GLint image_height = 0;
- GLint skip_images = 0;
- GLint skip_rows = *(GLint *) (pc + 8);
- GLint alignment = *(GLint *) (pc + 16);
- GLsizei width = *(GLsizei *) (pc + 20);
- GLsizei height = *(GLsizei *) (pc + 24);
- GLenum format = *(GLenum *) (pc + 28);
- GLenum type = *(GLenum *) (pc + 32);
-
- if (swap) {
- row_length = bswap_32(row_length);
- skip_rows = bswap_32(skip_rows);
- alignment = bswap_32(alignment);
- width = bswap_32(width);
- height = bswap_32(height);
- format = bswap_32(format);
- type = bswap_32(type);
- }
-
- return __glXImageSize(format, type, 0, width, height, 1,
- image_height, row_length, skip_images,
- skip_rows, alignment);
-}
-
-int
-__glXPrioritizeTexturesReqSize(const GLbyte * pc, Bool swap)
-{
- GLsizei n = *(GLsizei *) (pc + 0);
-
- if (swap) {
- n = bswap_32(n);
- }
-
- return __GLX_PAD((n * 4) + (n * 4));
-}
-
-int
-__glXTexSubImage1DReqSize(const GLbyte * pc, Bool swap)
-{
- GLint row_length = *(GLint *) (pc + 4);
- GLint image_height = 0;
- GLint skip_images = 0;
- GLint skip_rows = *(GLint *) (pc + 8);
- GLint alignment = *(GLint *) (pc + 16);
- GLenum target = *(GLenum *) (pc + 20);
- GLsizei width = *(GLsizei *) (pc + 36);
- GLenum format = *(GLenum *) (pc + 44);
- GLenum type = *(GLenum *) (pc + 48);
-
- if (swap) {
- row_length = bswap_32(row_length);
- skip_rows = bswap_32(skip_rows);
- alignment = bswap_32(alignment);
- target = bswap_32(target);
- width = bswap_32(width);
- format = bswap_32(format);
- type = bswap_32(type);
- }
-
- return __glXImageSize(format, type, target, width, 1, 1,
- image_height, row_length, skip_images,
- skip_rows, alignment);
-}
-
-int
-__glXTexSubImage2DReqSize(const GLbyte * pc, Bool swap)
-{
- GLint row_length = *(GLint *) (pc + 4);
- GLint image_height = 0;
- GLint skip_images = 0;
- GLint skip_rows = *(GLint *) (pc + 8);
- GLint alignment = *(GLint *) (pc + 16);
- GLenum target = *(GLenum *) (pc + 20);
- GLsizei width = *(GLsizei *) (pc + 36);
- GLsizei height = *(GLsizei *) (pc + 40);
- GLenum format = *(GLenum *) (pc + 44);
- GLenum type = *(GLenum *) (pc + 48);
-
- if (swap) {
- row_length = bswap_32(row_length);
- skip_rows = bswap_32(skip_rows);
- alignment = bswap_32(alignment);
- target = bswap_32(target);
- width = bswap_32(width);
- height = bswap_32(height);
- format = bswap_32(format);
- type = bswap_32(type);
- }
-
- return __glXImageSize(format, type, target, width, height, 1,
- image_height, row_length, skip_images,
- skip_rows, alignment);
-}
-
-int
-__glXColorTableReqSize(const GLbyte * pc, Bool swap)
-{
- GLint row_length = *(GLint *) (pc + 4);
- GLint image_height = 0;
- GLint skip_images = 0;
- GLint skip_rows = *(GLint *) (pc + 8);
- GLint alignment = *(GLint *) (pc + 16);
- GLenum target = *(GLenum *) (pc + 20);
- GLsizei width = *(GLsizei *) (pc + 28);
- GLenum format = *(GLenum *) (pc + 32);
- GLenum type = *(GLenum *) (pc + 36);
-
- if (swap) {
- row_length = bswap_32(row_length);
- skip_rows = bswap_32(skip_rows);
- alignment = bswap_32(alignment);
- target = bswap_32(target);
- width = bswap_32(width);
- format = bswap_32(format);
- type = bswap_32(type);
- }
-
- return __glXImageSize(format, type, target, width, 1, 1,
- image_height, row_length, skip_images,
- skip_rows, alignment);
-}
-
-int
-__glXColorTableParameterfvReqSize(const GLbyte * pc, Bool swap)
-{
- GLenum pname = *(GLenum *) (pc + 4);
- GLsizei compsize;
-
- if (swap) {
- pname = bswap_32(pname);
- }
-
- compsize = __glColorTableParameterfv_size(pname);
- return __GLX_PAD((compsize * 4));
-}
-
-int
-__glXColorSubTableReqSize(const GLbyte * pc, Bool swap)
-{
- GLint row_length = *(GLint *) (pc + 4);
- GLint image_height = 0;
- GLint skip_images = 0;
- GLint skip_rows = *(GLint *) (pc + 8);
- GLint alignment = *(GLint *) (pc + 16);
- GLenum target = *(GLenum *) (pc + 20);
- GLsizei count = *(GLsizei *) (pc + 28);
- GLenum format = *(GLenum *) (pc + 32);
- GLenum type = *(GLenum *) (pc + 36);
-
- if (swap) {
- row_length = bswap_32(row_length);
- skip_rows = bswap_32(skip_rows);
- alignment = bswap_32(alignment);
- target = bswap_32(target);
- count = bswap_32(count);
- format = bswap_32(format);
- type = bswap_32(type);
- }
-
- return __glXImageSize(format, type, target, count, 1, 1,
- image_height, row_length, skip_images,
- skip_rows, alignment);
-}
-
-int
-__glXConvolutionFilter1DReqSize(const GLbyte * pc, Bool swap)
-{
- GLint row_length = *(GLint *) (pc + 4);
- GLint image_height = 0;
- GLint skip_images = 0;
- GLint skip_rows = *(GLint *) (pc + 8);
- GLint alignment = *(GLint *) (pc + 16);
- GLenum target = *(GLenum *) (pc + 20);
- GLsizei width = *(GLsizei *) (pc + 28);
- GLenum format = *(GLenum *) (pc + 36);
- GLenum type = *(GLenum *) (pc + 40);
-
- if (swap) {
- row_length = bswap_32(row_length);
- skip_rows = bswap_32(skip_rows);
- alignment = bswap_32(alignment);
- target = bswap_32(target);
- width = bswap_32(width);
- format = bswap_32(format);
- type = bswap_32(type);
- }
-
- return __glXImageSize(format, type, target, width, 1, 1,
- image_height, row_length, skip_images,
- skip_rows, alignment);
-}
-
-int
-__glXConvolutionFilter2DReqSize(const GLbyte * pc, Bool swap)
-{
- GLint row_length = *(GLint *) (pc + 4);
- GLint image_height = 0;
- GLint skip_images = 0;
- GLint skip_rows = *(GLint *) (pc + 8);
- GLint alignment = *(GLint *) (pc + 16);
- GLenum target = *(GLenum *) (pc + 20);
- GLsizei width = *(GLsizei *) (pc + 28);
- GLsizei height = *(GLsizei *) (pc + 32);
- GLenum format = *(GLenum *) (pc + 36);
- GLenum type = *(GLenum *) (pc + 40);
-
- if (swap) {
- row_length = bswap_32(row_length);
- skip_rows = bswap_32(skip_rows);
- alignment = bswap_32(alignment);
- target = bswap_32(target);
- width = bswap_32(width);
- height = bswap_32(height);
- format = bswap_32(format);
- type = bswap_32(type);
- }
-
- return __glXImageSize(format, type, target, width, height, 1,
- image_height, row_length, skip_images,
- skip_rows, alignment);
-}
-
-int
-__glXConvolutionParameterfvReqSize(const GLbyte * pc, Bool swap)
-{
- GLenum pname = *(GLenum *) (pc + 4);
- GLsizei compsize;
-
- if (swap) {
- pname = bswap_32(pname);
- }
-
- compsize = __glConvolutionParameterfv_size(pname);
- return __GLX_PAD((compsize * 4));
-}
-
-int
-__glXTexImage3DReqSize(const GLbyte * pc, Bool swap)
-{
- GLint row_length = *(GLint *) (pc + 4);
- GLint image_height = *(GLint *) (pc + 8);
- GLint skip_rows = *(GLint *) (pc + 16);
- GLint skip_images = *(GLint *) (pc + 20);
- GLint alignment = *(GLint *) (pc + 32);
- GLenum target = *(GLenum *) (pc + 36);
- GLsizei width = *(GLsizei *) (pc + 48);
- GLsizei height = *(GLsizei *) (pc + 52);
- GLsizei depth = *(GLsizei *) (pc + 56);
- GLenum format = *(GLenum *) (pc + 68);
- GLenum type = *(GLenum *) (pc + 72);
-
- if (swap) {
- row_length = bswap_32(row_length);
- image_height = bswap_32(image_height);
- skip_rows = bswap_32(skip_rows);
- skip_images = bswap_32(skip_images);
- alignment = bswap_32(alignment);
- target = bswap_32(target);
- width = bswap_32(width);
- height = bswap_32(height);
- depth = bswap_32(depth);
- format = bswap_32(format);
- type = bswap_32(type);
- }
-
- if (*(CARD32 *) (pc + 76))
- return 0;
-
- return __glXImageSize(format, type, target, width, height, depth,
- image_height, row_length, skip_images,
- skip_rows, alignment);
-}
-
-int
-__glXTexSubImage3DReqSize(const GLbyte * pc, Bool swap)
-{
- GLint row_length = *(GLint *) (pc + 4);
- GLint image_height = *(GLint *) (pc + 8);
- GLint skip_rows = *(GLint *) (pc + 16);
- GLint skip_images = *(GLint *) (pc + 20);
- GLint alignment = *(GLint *) (pc + 32);
- GLenum target = *(GLenum *) (pc + 36);
- GLsizei width = *(GLsizei *) (pc + 60);
- GLsizei height = *(GLsizei *) (pc + 64);
- GLsizei depth = *(GLsizei *) (pc + 68);
- GLenum format = *(GLenum *) (pc + 76);
- GLenum type = *(GLenum *) (pc + 80);
-
- if (swap) {
- row_length = bswap_32(row_length);
- image_height = bswap_32(image_height);
- skip_rows = bswap_32(skip_rows);
- skip_images = bswap_32(skip_images);
- alignment = bswap_32(alignment);
- target = bswap_32(target);
- width = bswap_32(width);
- height = bswap_32(height);
- depth = bswap_32(depth);
- format = bswap_32(format);
- type = bswap_32(type);
- }
-
- return __glXImageSize(format, type, target, width, height, depth,
- image_height, row_length, skip_images,
- skip_rows, alignment);
-}
-
-int
-__glXCompressedTexImage1DReqSize(const GLbyte * pc, Bool swap)
-{
- GLsizei imageSize = *(GLsizei *) (pc + 20);
-
- if (swap) {
- imageSize = bswap_32(imageSize);
- }
-
- return __GLX_PAD(imageSize);
-}
-
-int
-__glXCompressedTexImage2DReqSize(const GLbyte * pc, Bool swap)
-{
- GLsizei imageSize = *(GLsizei *) (pc + 24);
-
- if (swap) {
- imageSize = bswap_32(imageSize);
- }
-
- return __GLX_PAD(imageSize);
-}
-
-int
-__glXCompressedTexImage3DReqSize(const GLbyte * pc, Bool swap)
-{
- GLsizei imageSize = *(GLsizei *) (pc + 28);
-
- if (swap) {
- imageSize = bswap_32(imageSize);
- }
-
- return __GLX_PAD(imageSize);
-}
-
-int
-__glXCompressedTexSubImage3DReqSize(const GLbyte * pc, Bool swap)
-{
- GLsizei imageSize = *(GLsizei *) (pc + 36);
-
- if (swap) {
- imageSize = bswap_32(imageSize);
- }
-
- return __GLX_PAD(imageSize);
-}
-
-int
-__glXPointParameterfvReqSize(const GLbyte * pc, Bool swap)
-{
- GLenum pname = *(GLenum *) (pc + 0);
- GLsizei compsize;
-
- if (swap) {
- pname = bswap_32(pname);
- }
-
- compsize = __glPointParameterfv_size(pname);
- return __GLX_PAD((compsize * 4));
-}
-
-int
-__glXDrawBuffersReqSize(const GLbyte * pc, Bool swap)
-{
- GLsizei n = *(GLsizei *) (pc + 0);
-
- if (swap) {
- n = bswap_32(n);
- }
-
- return __GLX_PAD((n * 4));
-}
-
-int
-__glXProgramStringARBReqSize(const GLbyte * pc, Bool swap)
-{
- GLsizei len = *(GLsizei *) (pc + 8);
-
- if (swap) {
- len = bswap_32(len);
- }
-
- return __GLX_PAD(len);
-}
-
-int
-__glXVertexAttribs1dvNVReqSize(const GLbyte * pc, Bool swap)
-{
- GLsizei n = *(GLsizei *) (pc + 4);
-
- if (swap) {
- n = bswap_32(n);
- }
-
- return __GLX_PAD((n * 8));
-}
-
-int
-__glXVertexAttribs2dvNVReqSize(const GLbyte * pc, Bool swap)
-{
- GLsizei n = *(GLsizei *) (pc + 4);
-
- if (swap) {
- n = bswap_32(n);
- }
-
- return __GLX_PAD((n * 16));
-}
-
-int
-__glXVertexAttribs3dvNVReqSize(const GLbyte * pc, Bool swap)
-{
- GLsizei n = *(GLsizei *) (pc + 4);
-
- if (swap) {
- n = bswap_32(n);
- }
-
- return __GLX_PAD((n * 24));
-}
-
-int
-__glXVertexAttribs3fvNVReqSize(const GLbyte * pc, Bool swap)
-{
- GLsizei n = *(GLsizei *) (pc + 4);
-
- if (swap) {
- n = bswap_32(n);
- }
-
- return __GLX_PAD((n * 12));
-}
-
-int
-__glXVertexAttribs3svNVReqSize(const GLbyte * pc, Bool swap)
-{
- GLsizei n = *(GLsizei *) (pc + 4);
-
- if (swap) {
- n = bswap_32(n);
- }
-
- return __GLX_PAD((n * 6));
-}
-
-int
-__glXVertexAttribs4dvNVReqSize(const GLbyte * pc, Bool swap)
-{
- GLsizei n = *(GLsizei *) (pc + 4);
-
- if (swap) {
- n = bswap_32(n);
- }
-
- return __GLX_PAD((n * 32));
-}
-
-ALIAS(Fogiv, Fogfv)
- ALIAS(Lightiv, Lightfv)
- ALIAS(LightModeliv, LightModelfv)
- ALIAS(Materialiv, Materialfv)
- ALIAS(TexParameteriv, TexParameterfv)
- ALIAS(TexEnviv, TexEnvfv)
- ALIAS(TexGeniv, TexGenfv)
- ALIAS(PixelMapuiv, PixelMapfv)
- ALIAS(ColorTableParameteriv, ColorTableParameterfv)
- ALIAS(ConvolutionParameteriv, ConvolutionParameterfv)
- ALIAS(CompressedTexSubImage1D, CompressedTexImage1D)
- ALIAS(CompressedTexSubImage2D, CompressedTexImage3D)
- ALIAS(PointParameteriv, PointParameterfv)
- ALIAS(DeleteFramebuffers, DrawBuffers)
- ALIAS(DeleteRenderbuffers, DrawBuffers)
- ALIAS(VertexAttribs1fvNV, PixelMapfv)
- ALIAS(VertexAttribs1svNV, PixelMapusv)
- ALIAS(VertexAttribs2fvNV, VertexAttribs1dvNV)
- ALIAS(VertexAttribs2svNV, PixelMapfv)
- ALIAS(VertexAttribs4fvNV, VertexAttribs2dvNV)
- ALIAS(VertexAttribs4svNV, VertexAttribs1dvNV)
- ALIAS(VertexAttribs4ubvNV, PixelMapfv)
+/* DO NOT EDIT - This file generated automatically by glX_proto_size.py (from Mesa) script */
+
+/*
+ * (C) Copyright IBM Corporation 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
+ * 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 THEIR 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.
+ */
+
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#else
+
+#include "glheader.h"
+
+#endif
+
+#include <GL/gl.h>
+#include "glxserver.h"
+#include "glxbyteorder.h"
+#include "indirect_size.h"
+#include "indirect_reqsize.h"
+
+#define __GLX_PAD(x) (((x) + 3) & ~3)
+
+#if defined(__CYGWIN__) || defined(__MINGW32__)
+# undef HAVE_ALIAS
+#endif
+#ifdef HAVE_ALIAS
+# define ALIAS2(from,to) \
+ GLint __glX ## from ## ReqSize( const GLbyte * pc, Bool swap ) \
+ __attribute__ ((alias( # to )));
+# define ALIAS(from,to) ALIAS2( from, __glX ## to ## ReqSize )
+#else
+# define ALIAS(from,to) \
+ GLint __glX ## from ## ReqSize( const GLbyte * pc, Bool swap ) \
+ { return __glX ## to ## ReqSize( pc, swap ); }
+#endif
+
+
+int
+__glXCallListsReqSize( const GLbyte * pc, Bool swap )
+{
+GLsizei n = *(GLsizei *)(pc + 0);
+GLenum type = * (GLenum *)(pc + 4);
+ GLsizei compsize;
+
+ if (swap) {
+ n = bswap_32(n);
+ type = bswap_32(type);
+ }
+
+ compsize = __glCallLists_size(type);
+ return __GLX_PAD((compsize * n));
+}
+
+int
+__glXBitmapReqSize( const GLbyte * pc, Bool swap )
+{
+ GLint row_length = * (GLint *)(pc + 4);
+ GLint image_height = 0;
+ GLint skip_images = 0;
+ GLint skip_rows = * (GLint *)(pc + 8);
+ GLint alignment = * (GLint *)(pc + 16);
+GLsizei width = *(GLsizei *)(pc + 20);
+GLsizei height = *(GLsizei *)(pc + 24);
+
+ if (swap) {
+ row_length = bswap_32(row_length);
+ skip_rows = bswap_32(skip_rows);
+ alignment = bswap_32(alignment);
+ width = bswap_32(width);
+ height = bswap_32(height);
+ }
+
+ return __glXImageSize(GL_COLOR_INDEX, GL_BITMAP, 0, width, height, 1,
+ image_height, row_length, skip_images,
+ skip_rows, alignment);
+}
+
+int
+__glXFogfvReqSize( const GLbyte * pc, Bool swap )
+{
+GLenum pname = * (GLenum *)(pc + 0);
+ GLsizei compsize;
+
+ if (swap) {
+ pname = bswap_32(pname);
+ }
+
+ compsize = __glFogfv_size(pname);
+ return __GLX_PAD((compsize * 4));
+}
+
+int
+__glXLightfvReqSize( const GLbyte * pc, Bool swap )
+{
+GLenum pname = * (GLenum *)(pc + 4);
+ GLsizei compsize;
+
+ if (swap) {
+ pname = bswap_32(pname);
+ }
+
+ compsize = __glLightfv_size(pname);
+ return __GLX_PAD((compsize * 4));
+}
+
+int
+__glXLightModelfvReqSize( const GLbyte * pc, Bool swap )
+{
+GLenum pname = * (GLenum *)(pc + 0);
+ GLsizei compsize;
+
+ if (swap) {
+ pname = bswap_32(pname);
+ }
+
+ compsize = __glLightModelfv_size(pname);
+ return __GLX_PAD((compsize * 4));
+}
+
+int
+__glXMaterialfvReqSize( const GLbyte * pc, Bool swap )
+{
+GLenum pname = * (GLenum *)(pc + 4);
+ GLsizei compsize;
+
+ if (swap) {
+ pname = bswap_32(pname);
+ }
+
+ compsize = __glMaterialfv_size(pname);
+ return __GLX_PAD((compsize * 4));
+}
+
+int
+__glXPolygonStippleReqSize( const GLbyte * pc, Bool swap )
+{
+ GLint row_length = * (GLint *)(pc + 4);
+ GLint image_height = 0;
+ GLint skip_images = 0;
+ GLint skip_rows = * (GLint *)(pc + 8);
+ GLint alignment = * (GLint *)(pc + 16);
+
+ if (swap) {
+ row_length = bswap_32(row_length);
+ skip_rows = bswap_32(skip_rows);
+ alignment = bswap_32(alignment);
+ }
+
+ return __glXImageSize(GL_COLOR_INDEX, GL_BITMAP, 0, 32, 32, 1,
+ image_height, row_length, skip_images,
+ skip_rows, alignment);
+}
+
+int
+__glXTexParameterfvReqSize( const GLbyte * pc, Bool swap )
+{
+GLenum pname = * (GLenum *)(pc + 4);
+ GLsizei compsize;
+
+ if (swap) {
+ pname = bswap_32(pname);
+ }
+
+ compsize = __glTexParameterfv_size(pname);
+ return __GLX_PAD((compsize * 4));
+}
+
+int
+__glXTexImage1DReqSize( const GLbyte * pc, Bool swap )
+{
+ GLint row_length = * (GLint *)(pc + 4);
+ GLint image_height = 0;
+ GLint skip_images = 0;
+ GLint skip_rows = * (GLint *)(pc + 8);
+ GLint alignment = * (GLint *)(pc + 16);
+GLenum target = * (GLenum *)(pc + 20);
+GLsizei width = *(GLsizei *)(pc + 32);
+GLenum format = * (GLenum *)(pc + 44);
+GLenum type = * (GLenum *)(pc + 48);
+
+ if (swap) {
+ row_length = bswap_32(row_length);
+ skip_rows = bswap_32(skip_rows);
+ alignment = bswap_32(alignment);
+ target = bswap_32(target);
+ width = bswap_32(width);
+ format = bswap_32(format);
+ type = bswap_32(type);
+ }
+
+ return __glXImageSize(format, type, target, width, 1, 1,
+ image_height, row_length, skip_images,
+ skip_rows, alignment);
+}
+
+int
+__glXTexImage2DReqSize( const GLbyte * pc, Bool swap )
+{
+ GLint row_length = * (GLint *)(pc + 4);
+ GLint image_height = 0;
+ GLint skip_images = 0;
+ GLint skip_rows = * (GLint *)(pc + 8);
+ GLint alignment = * (GLint *)(pc + 16);
+GLenum target = * (GLenum *)(pc + 20);
+GLsizei width = *(GLsizei *)(pc + 32);
+GLsizei height = *(GLsizei *)(pc + 36);
+GLenum format = * (GLenum *)(pc + 44);
+GLenum type = * (GLenum *)(pc + 48);
+
+ if (swap) {
+ row_length = bswap_32(row_length);
+ skip_rows = bswap_32(skip_rows);
+ alignment = bswap_32(alignment);
+ target = bswap_32(target);
+ width = bswap_32(width);
+ height = bswap_32(height);
+ format = bswap_32(format);
+ type = bswap_32(type);
+ }
+
+ return __glXImageSize(format, type, target, width, height, 1,
+ image_height, row_length, skip_images,
+ skip_rows, alignment);
+}
+
+int
+__glXTexEnvfvReqSize( const GLbyte * pc, Bool swap )
+{
+GLenum pname = * (GLenum *)(pc + 4);
+ GLsizei compsize;
+
+ if (swap) {
+ pname = bswap_32(pname);
+ }
+
+ compsize = __glTexEnvfv_size(pname);
+ return __GLX_PAD((compsize * 4));
+}
+
+int
+__glXTexGendvReqSize( const GLbyte * pc, Bool swap )
+{
+GLenum pname = * (GLenum *)(pc + 4);
+ GLsizei compsize;
+
+ if (swap) {
+ pname = bswap_32(pname);
+ }
+
+ compsize = __glTexGendv_size(pname);
+ return __GLX_PAD((compsize * 8));
+}
+
+int
+__glXTexGenfvReqSize( const GLbyte * pc, Bool swap )
+{
+GLenum pname = * (GLenum *)(pc + 4);
+ GLsizei compsize;
+
+ if (swap) {
+ pname = bswap_32(pname);
+ }
+
+ compsize = __glTexGenfv_size(pname);
+ return __GLX_PAD((compsize * 4));
+}
+
+int
+__glXPixelMapfvReqSize( const GLbyte * pc, Bool swap )
+{
+GLsizei mapsize = *(GLsizei *)(pc + 4);
+
+ if (swap) {
+ mapsize = bswap_32(mapsize);
+ }
+
+ return __GLX_PAD((mapsize * 4));
+}
+
+int
+__glXPixelMapusvReqSize( const GLbyte * pc, Bool swap )
+{
+GLsizei mapsize = *(GLsizei *)(pc + 4);
+
+ if (swap) {
+ mapsize = bswap_32(mapsize);
+ }
+
+ return __GLX_PAD((mapsize * 2));
+}
+
+int
+__glXDrawPixelsReqSize( const GLbyte * pc, Bool swap )
+{
+ GLint row_length = * (GLint *)(pc + 4);
+ GLint image_height = 0;
+ GLint skip_images = 0;
+ GLint skip_rows = * (GLint *)(pc + 8);
+ GLint alignment = * (GLint *)(pc + 16);
+GLsizei width = *(GLsizei *)(pc + 20);
+GLsizei height = *(GLsizei *)(pc + 24);
+GLenum format = * (GLenum *)(pc + 28);
+GLenum type = * (GLenum *)(pc + 32);
+
+ if (swap) {
+ row_length = bswap_32(row_length);
+ skip_rows = bswap_32(skip_rows);
+ alignment = bswap_32(alignment);
+ width = bswap_32(width);
+ height = bswap_32(height);
+ format = bswap_32(format);
+ type = bswap_32(type);
+ }
+
+ return __glXImageSize(format, type, 0, width, height, 1,
+ image_height, row_length, skip_images,
+ skip_rows, alignment);
+}
+
+int
+__glXPrioritizeTexturesReqSize( const GLbyte * pc, Bool swap )
+{
+GLsizei n = *(GLsizei *)(pc + 0);
+
+ if (swap) {
+ n = bswap_32(n);
+ }
+
+ return __GLX_PAD((n * 4) + (n * 4));
+}
+
+int
+__glXTexSubImage1DReqSize( const GLbyte * pc, Bool swap )
+{
+ GLint row_length = * (GLint *)(pc + 4);
+ GLint image_height = 0;
+ GLint skip_images = 0;
+ GLint skip_rows = * (GLint *)(pc + 8);
+ GLint alignment = * (GLint *)(pc + 16);
+GLenum target = * (GLenum *)(pc + 20);
+GLsizei width = *(GLsizei *)(pc + 36);
+GLenum format = * (GLenum *)(pc + 44);
+GLenum type = * (GLenum *)(pc + 48);
+
+ if (swap) {
+ row_length = bswap_32(row_length);
+ skip_rows = bswap_32(skip_rows);
+ alignment = bswap_32(alignment);
+ target = bswap_32(target);
+ width = bswap_32(width);
+ format = bswap_32(format);
+ type = bswap_32(type);
+ }
+
+ return __glXImageSize(format, type, target, width, 1, 1,
+ image_height, row_length, skip_images,
+ skip_rows, alignment);
+}
+
+int
+__glXTexSubImage2DReqSize( const GLbyte * pc, Bool swap )
+{
+ GLint row_length = * (GLint *)(pc + 4);
+ GLint image_height = 0;
+ GLint skip_images = 0;
+ GLint skip_rows = * (GLint *)(pc + 8);
+ GLint alignment = * (GLint *)(pc + 16);
+GLenum target = * (GLenum *)(pc + 20);
+GLsizei width = *(GLsizei *)(pc + 36);
+GLsizei height = *(GLsizei *)(pc + 40);
+GLenum format = * (GLenum *)(pc + 44);
+GLenum type = * (GLenum *)(pc + 48);
+
+ if (swap) {
+ row_length = bswap_32(row_length);
+ skip_rows = bswap_32(skip_rows);
+ alignment = bswap_32(alignment);
+ target = bswap_32(target);
+ width = bswap_32(width);
+ height = bswap_32(height);
+ format = bswap_32(format);
+ type = bswap_32(type);
+ }
+
+ return __glXImageSize(format, type, target, width, height, 1,
+ image_height, row_length, skip_images,
+ skip_rows, alignment);
+}
+
+int
+__glXColorTableReqSize( const GLbyte * pc, Bool swap )
+{
+ GLint row_length = * (GLint *)(pc + 4);
+ GLint image_height = 0;
+ GLint skip_images = 0;
+ GLint skip_rows = * (GLint *)(pc + 8);
+ GLint alignment = * (GLint *)(pc + 16);
+GLenum target = * (GLenum *)(pc + 20);
+GLsizei width = *(GLsizei *)(pc + 28);
+GLenum format = * (GLenum *)(pc + 32);
+GLenum type = * (GLenum *)(pc + 36);
+
+ if (swap) {
+ row_length = bswap_32(row_length);
+ skip_rows = bswap_32(skip_rows);
+ alignment = bswap_32(alignment);
+ target = bswap_32(target);
+ width = bswap_32(width);
+ format = bswap_32(format);
+ type = bswap_32(type);
+ }
+
+ return __glXImageSize(format, type, target, width, 1, 1,
+ image_height, row_length, skip_images,
+ skip_rows, alignment);
+}
+
+int
+__glXColorTableParameterfvReqSize( const GLbyte * pc, Bool swap )
+{
+GLenum pname = * (GLenum *)(pc + 4);
+ GLsizei compsize;
+
+ if (swap) {
+ pname = bswap_32(pname);
+ }
+
+ compsize = __glColorTableParameterfv_size(pname);
+ return __GLX_PAD((compsize * 4));
+}
+
+int
+__glXColorSubTableReqSize( const GLbyte * pc, Bool swap )
+{
+ GLint row_length = * (GLint *)(pc + 4);
+ GLint image_height = 0;
+ GLint skip_images = 0;
+ GLint skip_rows = * (GLint *)(pc + 8);
+ GLint alignment = * (GLint *)(pc + 16);
+GLenum target = * (GLenum *)(pc + 20);
+GLsizei count = *(GLsizei *)(pc + 28);
+GLenum format = * (GLenum *)(pc + 32);
+GLenum type = * (GLenum *)(pc + 36);
+
+ if (swap) {
+ row_length = bswap_32(row_length);
+ skip_rows = bswap_32(skip_rows);
+ alignment = bswap_32(alignment);
+ target = bswap_32(target);
+ count = bswap_32(count);
+ format = bswap_32(format);
+ type = bswap_32(type);
+ }
+
+ return __glXImageSize(format, type, target, count, 1, 1,
+ image_height, row_length, skip_images,
+ skip_rows, alignment);
+}
+
+int
+__glXConvolutionFilter1DReqSize( const GLbyte * pc, Bool swap )
+{
+ GLint row_length = * (GLint *)(pc + 4);
+ GLint image_height = 0;
+ GLint skip_images = 0;
+ GLint skip_rows = * (GLint *)(pc + 8);
+ GLint alignment = * (GLint *)(pc + 16);
+GLenum target = * (GLenum *)(pc + 20);
+GLsizei width = *(GLsizei *)(pc + 28);
+GLenum format = * (GLenum *)(pc + 36);
+GLenum type = * (GLenum *)(pc + 40);
+
+ if (swap) {
+ row_length = bswap_32(row_length);
+ skip_rows = bswap_32(skip_rows);
+ alignment = bswap_32(alignment);
+ target = bswap_32(target);
+ width = bswap_32(width);
+ format = bswap_32(format);
+ type = bswap_32(type);
+ }
+
+ return __glXImageSize(format, type, target, width, 1, 1,
+ image_height, row_length, skip_images,
+ skip_rows, alignment);
+}
+
+int
+__glXConvolutionFilter2DReqSize( const GLbyte * pc, Bool swap )
+{
+ GLint row_length = * (GLint *)(pc + 4);
+ GLint image_height = 0;
+ GLint skip_images = 0;
+ GLint skip_rows = * (GLint *)(pc + 8);
+ GLint alignment = * (GLint *)(pc + 16);
+GLenum target = * (GLenum *)(pc + 20);
+GLsizei width = *(GLsizei *)(pc + 28);
+GLsizei height = *(GLsizei *)(pc + 32);
+GLenum format = * (GLenum *)(pc + 36);
+GLenum type = * (GLenum *)(pc + 40);
+
+ if (swap) {
+ row_length = bswap_32(row_length);
+ skip_rows = bswap_32(skip_rows);
+ alignment = bswap_32(alignment);
+ target = bswap_32(target);
+ width = bswap_32(width);
+ height = bswap_32(height);
+ format = bswap_32(format);
+ type = bswap_32(type);
+ }
+
+ return __glXImageSize(format, type, target, width, height, 1,
+ image_height, row_length, skip_images,
+ skip_rows, alignment);
+}
+
+int
+__glXConvolutionParameterfvReqSize( const GLbyte * pc, Bool swap )
+{
+GLenum pname = * (GLenum *)(pc + 4);
+ GLsizei compsize;
+
+ if (swap) {
+ pname = bswap_32(pname);
+ }
+
+ compsize = __glConvolutionParameterfv_size(pname);
+ return __GLX_PAD((compsize * 4));
+}
+
+int
+__glXTexImage3DReqSize( const GLbyte * pc, Bool swap )
+{
+ GLint row_length = * (GLint *)(pc + 4);
+ GLint image_height = * (GLint *)(pc + 8);
+ GLint skip_rows = * (GLint *)(pc + 16);
+ GLint skip_images = * (GLint *)(pc + 20);
+ GLint alignment = * (GLint *)(pc + 32);
+GLenum target = * (GLenum *)(pc + 36);
+GLsizei width = *(GLsizei *)(pc + 48);
+GLsizei height = *(GLsizei *)(pc + 52);
+GLsizei depth = *(GLsizei *)(pc + 56);
+GLenum format = * (GLenum *)(pc + 68);
+GLenum type = * (GLenum *)(pc + 72);
+
+ if (swap) {
+ row_length = bswap_32(row_length);
+ image_height = bswap_32(image_height);
+ skip_rows = bswap_32(skip_rows);
+ skip_images = bswap_32(skip_images);
+ alignment = bswap_32(alignment);
+ target = bswap_32(target);
+ width = bswap_32(width);
+ height = bswap_32(height);
+ depth = bswap_32(depth);
+ format = bswap_32(format);
+ type = bswap_32(type);
+ }
+
+ if (*(CARD32 *) (pc + 76))
+ return 0;
+
+ return __glXImageSize(format, type, target, width, height, depth,
+ image_height, row_length, skip_images,
+ skip_rows, alignment);
+}
+
+int
+__glXTexSubImage3DReqSize( const GLbyte * pc, Bool swap )
+{
+ GLint row_length = * (GLint *)(pc + 4);
+ GLint image_height = * (GLint *)(pc + 8);
+ GLint skip_rows = * (GLint *)(pc + 16);
+ GLint skip_images = * (GLint *)(pc + 20);
+ GLint alignment = * (GLint *)(pc + 32);
+GLenum target = * (GLenum *)(pc + 36);
+GLsizei width = *(GLsizei *)(pc + 60);
+GLsizei height = *(GLsizei *)(pc + 64);
+GLsizei depth = *(GLsizei *)(pc + 68);
+GLenum format = * (GLenum *)(pc + 76);
+GLenum type = * (GLenum *)(pc + 80);
+
+ if (swap) {
+ row_length = bswap_32(row_length);
+ image_height = bswap_32(image_height);
+ skip_rows = bswap_32(skip_rows);
+ skip_images = bswap_32(skip_images);
+ alignment = bswap_32(alignment);
+ target = bswap_32(target);
+ width = bswap_32(width);
+ height = bswap_32(height);
+ depth = bswap_32(depth);
+ format = bswap_32(format);
+ type = bswap_32(type);
+ }
+
+ return __glXImageSize(format, type, target, width, height, depth,
+ image_height, row_length, skip_images,
+ skip_rows, alignment);
+}
+
+int
+__glXCompressedTexImage1DReqSize( const GLbyte * pc, Bool swap )
+{
+GLsizei imageSize = *(GLsizei *)(pc + 20);
+
+ if (swap) {
+ imageSize = bswap_32(imageSize);
+ }
+
+ return __GLX_PAD(imageSize);
+}
+
+int
+__glXCompressedTexImage2DReqSize( const GLbyte * pc, Bool swap )
+{
+GLsizei imageSize = *(GLsizei *)(pc + 24);
+
+ if (swap) {
+ imageSize = bswap_32(imageSize);
+ }
+
+ return __GLX_PAD(imageSize);
+}
+
+int
+__glXCompressedTexImage3DReqSize( const GLbyte * pc, Bool swap )
+{
+GLsizei imageSize = *(GLsizei *)(pc + 28);
+
+ if (swap) {
+ imageSize = bswap_32(imageSize);
+ }
+
+ return __GLX_PAD(imageSize);
+}
+
+int
+__glXCompressedTexSubImage3DReqSize( const GLbyte * pc, Bool swap )
+{
+GLsizei imageSize = *(GLsizei *)(pc + 36);
+
+ if (swap) {
+ imageSize = bswap_32(imageSize);
+ }
+
+ return __GLX_PAD(imageSize);
+}
+
+int
+__glXPointParameterfvReqSize( const GLbyte * pc, Bool swap )
+{
+GLenum pname = * (GLenum *)(pc + 0);
+ GLsizei compsize;
+
+ if (swap) {
+ pname = bswap_32(pname);
+ }
+
+ compsize = __glPointParameterfv_size(pname);
+ return __GLX_PAD((compsize * 4));
+}
+
+int
+__glXDrawBuffersReqSize( const GLbyte * pc, Bool swap )
+{
+GLsizei n = *(GLsizei *)(pc + 0);
+
+ if (swap) {
+ n = bswap_32(n);
+ }
+
+ return __GLX_PAD((n * 4));
+}
+
+int
+__glXProgramStringARBReqSize( const GLbyte * pc, Bool swap )
+{
+GLsizei len = *(GLsizei *)(pc + 8);
+
+ if (swap) {
+ len = bswap_32(len);
+ }
+
+ return __GLX_PAD(len);
+}
+
+int
+__glXProgramParameters4dvNVReqSize( const GLbyte * pc, Bool swap )
+{
+GLsizei num = *(GLsizei *)(pc + 8);
+
+ if (swap) {
+ num = bswap_32(num);
+ }
+
+ return __GLX_PAD((num * 32));
+}
+
+int
+__glXProgramParameters4fvNVReqSize( const GLbyte * pc, Bool swap )
+{
+GLsizei num = *(GLsizei *)(pc + 8);
+
+ if (swap) {
+ num = bswap_32(num);
+ }
+
+ return __GLX_PAD((num * 16));
+}
+
+int
+__glXVertexAttribs1dvNVReqSize( const GLbyte * pc, Bool swap )
+{
+GLsizei n = *(GLsizei *)(pc + 4);
+
+ if (swap) {
+ n = bswap_32(n);
+ }
+
+ return __GLX_PAD((n * 8));
+}
+
+int
+__glXVertexAttribs2dvNVReqSize( const GLbyte * pc, Bool swap )
+{
+GLsizei n = *(GLsizei *)(pc + 4);
+
+ if (swap) {
+ n = bswap_32(n);
+ }
+
+ return __GLX_PAD((n * 16));
+}
+
+int
+__glXVertexAttribs3dvNVReqSize( const GLbyte * pc, Bool swap )
+{
+GLsizei n = *(GLsizei *)(pc + 4);
+
+ if (swap) {
+ n = bswap_32(n);
+ }
+
+ return __GLX_PAD((n * 24));
+}
+
+int
+__glXVertexAttribs3fvNVReqSize( const GLbyte * pc, Bool swap )
+{
+GLsizei n = *(GLsizei *)(pc + 4);
+
+ if (swap) {
+ n = bswap_32(n);
+ }
+
+ return __GLX_PAD((n * 12));
+}
+
+int
+__glXVertexAttribs3svNVReqSize( const GLbyte * pc, Bool swap )
+{
+GLsizei n = *(GLsizei *)(pc + 4);
+
+ if (swap) {
+ n = bswap_32(n);
+ }
+
+ return __GLX_PAD((n * 6));
+}
+
+int
+__glXVertexAttribs4dvNVReqSize( const GLbyte * pc, Bool swap )
+{
+GLsizei n = *(GLsizei *)(pc + 4);
+
+ if (swap) {
+ n = bswap_32(n);
+ }
+
+ return __GLX_PAD((n * 32));
+}
+
+int
+__glXProgramNamedParameter4fvNVReqSize( const GLbyte * pc, Bool swap )
+{
+GLsizei len = *(GLsizei *)(pc + 4);
+
+ if (swap) {
+ len = bswap_32(len);
+ }
+
+ return __GLX_PAD(len);
+}
+
+ALIAS( Fogiv, Fogfv )
+ALIAS( Lightiv, Lightfv )
+ALIAS( LightModeliv, LightModelfv )
+ALIAS( Materialiv, Materialfv )
+ALIAS( TexParameteriv, TexParameterfv )
+ALIAS( TexEnviv, TexEnvfv )
+ALIAS( TexGeniv, TexGenfv )
+ALIAS( PixelMapuiv, PixelMapfv )
+ALIAS( ColorTableParameteriv, ColorTableParameterfv )
+ALIAS( ConvolutionParameteriv, ConvolutionParameterfv )
+ALIAS( CompressedTexSubImage1D, CompressedTexImage1D )
+ALIAS( CompressedTexSubImage2D, CompressedTexImage3D )
+ALIAS( PointParameteriv, PointParameterfv )
+ALIAS( DeleteFramebuffers, DrawBuffers )
+ALIAS( DeleteRenderbuffers, DrawBuffers )
+ALIAS( LoadProgramNV, ProgramStringARB )
+ALIAS( RequestResidentProgramsNV, DrawBuffers )
+ALIAS( VertexAttribs1fvNV, PixelMapfv )
+ALIAS( VertexAttribs1svNV, PixelMapusv )
+ALIAS( VertexAttribs2fvNV, VertexAttribs1dvNV )
+ALIAS( VertexAttribs2svNV, PixelMapfv )
+ALIAS( VertexAttribs4fvNV, VertexAttribs2dvNV )
+ALIAS( VertexAttribs4svNV, VertexAttribs1dvNV )
+ALIAS( VertexAttribs4ubvNV, PixelMapfv )
+ALIAS( ProgramNamedParameter4dvNV, CompressedTexSubImage3D )
diff --git a/xorg-server/glx/indirect_reqsize.h b/xorg-server/glx/indirect_reqsize.h
index 43e1e69e3..aff4a0db3 100644
--- a/xorg-server/glx/indirect_reqsize.h
+++ b/xorg-server/glx/indirect_reqsize.h
@@ -1,151 +1,116 @@
-/* DO NOT EDIT - This file generated automatically by glX_proto_size.py (from Mesa) script */
-
-/*
- * (C) Copyright IBM Corporation 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
- * 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 THEIR 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.
- */
-
-#if !defined( _INDIRECT_REQSIZE_H_ )
-#define _INDIRECT_REQSIZE_H_
-
-#include <X11/Xfuncproto.h>
-
-#if defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
-#define PURE __attribute__((pure))
-#else
-#define PURE
-#endif
-
-extern PURE _X_HIDDEN int __glXCallListsReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXBitmapReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXFogfvReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXFogivReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXLightfvReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXLightivReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXLightModelfvReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXLightModelivReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXMaterialfvReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXMaterialivReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXPolygonStippleReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXTexParameterfvReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXTexParameterivReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXTexImage1DReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXTexImage2DReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXTexEnvfvReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXTexEnvivReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXTexGendvReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXTexGenfvReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXTexGenivReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXMap1dReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXMap1fReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXMap2dReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXMap2fReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXPixelMapfvReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXPixelMapuivReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXPixelMapusvReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXDrawPixelsReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXDrawArraysReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXPrioritizeTexturesReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXTexSubImage1DReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXTexSubImage2DReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXColorTableReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXColorTableParameterfvReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXColorTableParameterivReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXColorSubTableReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXConvolutionFilter1DReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXConvolutionFilter2DReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXConvolutionParameterfvReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXConvolutionParameterivReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXSeparableFilter2DReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXTexImage3DReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXTexSubImage3DReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXCompressedTexImage1DReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXCompressedTexImage2DReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXCompressedTexImage3DReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXCompressedTexSubImage1DReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXCompressedTexSubImage2DReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXCompressedTexSubImage3DReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXPointParameterfvReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXPointParameterivReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXDrawBuffersReqSize(const GLbyte * pc, Bool swap);
-extern PURE _X_HIDDEN int __glXProgramStringARBReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXDeleteFramebuffersReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXDeleteRenderbuffersReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXVertexAttribs1dvNVReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXVertexAttribs1fvNVReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXVertexAttribs1svNVReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXVertexAttribs2dvNVReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXVertexAttribs2fvNVReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXVertexAttribs2svNVReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXVertexAttribs3dvNVReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXVertexAttribs3fvNVReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXVertexAttribs3svNVReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXVertexAttribs4dvNVReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXVertexAttribs4fvNVReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXVertexAttribs4svNVReqSize(const GLbyte * pc,
- Bool swap);
-extern PURE _X_HIDDEN int __glXVertexAttribs4ubvNVReqSize(const GLbyte * pc,
- Bool swap);
-
-#undef PURE
-
-#endif /* !defined( _INDIRECT_REQSIZE_H_ ) */
+/* DO NOT EDIT - This file generated automatically by glX_proto_size.py (from Mesa) script */
+
+/*
+ * (C) Copyright IBM Corporation 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
+ * 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 THEIR 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.
+ */
+
+#if !defined( _INDIRECT_REQSIZE_H_ )
+# define _INDIRECT_REQSIZE_H_
+
+#include <X11/Xfuncproto.h>
+
+# if defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
+# define PURE __attribute__((pure))
+# else
+# define PURE
+# endif
+
+extern PURE _X_HIDDEN int __glXCallListsReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXBitmapReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXFogfvReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXFogivReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXLightfvReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXLightivReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXLightModelfvReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXLightModelivReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXMaterialfvReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXMaterialivReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXPolygonStippleReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXTexParameterfvReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXTexParameterivReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXTexImage1DReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXTexImage2DReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXTexEnvfvReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXTexEnvivReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXTexGendvReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXTexGenfvReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXTexGenivReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXMap1dReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXMap1fReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXMap2dReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXMap2fReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXPixelMapfvReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXPixelMapuivReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXPixelMapusvReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXDrawPixelsReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXDrawArraysReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXPrioritizeTexturesReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXTexSubImage1DReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXTexSubImage2DReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXColorTableReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXColorTableParameterfvReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXColorTableParameterivReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXColorSubTableReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXConvolutionFilter1DReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXConvolutionFilter2DReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXConvolutionParameterfvReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXConvolutionParameterivReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXSeparableFilter2DReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXTexImage3DReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXTexSubImage3DReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXCompressedTexImage1DReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXCompressedTexImage2DReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXCompressedTexImage3DReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXCompressedTexSubImage1DReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXCompressedTexSubImage2DReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXCompressedTexSubImage3DReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXPointParameterfvReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXPointParameterivReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXDrawBuffersReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXProgramStringARBReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXDeleteFramebuffersReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXDeleteRenderbuffersReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXLoadProgramNVReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXProgramParameters4dvNVReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXProgramParameters4fvNVReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXRequestResidentProgramsNVReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXVertexAttribs1dvNVReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXVertexAttribs1fvNVReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXVertexAttribs1svNVReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXVertexAttribs2dvNVReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXVertexAttribs2fvNVReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXVertexAttribs2svNVReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXVertexAttribs3dvNVReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXVertexAttribs3fvNVReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXVertexAttribs3svNVReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXVertexAttribs4dvNVReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXVertexAttribs4fvNVReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXVertexAttribs4svNVReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXVertexAttribs4ubvNVReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXProgramNamedParameter4dvNVReqSize(const GLbyte *pc, Bool swap);
+extern PURE _X_HIDDEN int __glXProgramNamedParameter4fvNVReqSize(const GLbyte *pc, Bool swap);
+
+# undef PURE
+
+#endif /* !defined( _INDIRECT_REQSIZE_H_ ) */
diff --git a/xorg-server/glx/indirect_size.h b/xorg-server/glx/indirect_size.h
index fec7ed393..b1be16b3c 100644
--- a/xorg-server/glx/indirect_size.h
+++ b/xorg-server/glx/indirect_size.h
@@ -1,85 +1,57 @@
-/* DO NOT EDIT - This file generated automatically by glX_proto_size.py (from Mesa) script */
-
-/*
- * (C) Copyright IBM Corporation 2004
- * 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
- * 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 THEIR 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.
- */
-
-#if !defined( _INDIRECT_SIZE_H_ )
-#define _INDIRECT_SIZE_H_
-
-/**
- * \file
- * Prototypes for functions used to determine the number of data elements in
- * various GLX protocol messages.
- *
- * \author Ian Romanick <idr@us.ibm.com>
- */
-
-#include <X11/Xfuncproto.h>
-
-#if defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
-#define PURE __attribute__((pure))
-#else
-#define PURE
-#endif
-
-#if defined(__i386__) && defined(__GNUC__) && !defined(__CYGWIN__) && !defined(__MINGW32__)
-#define FASTCALL __attribute__((fastcall))
-#else
-#define FASTCALL
-#endif
-
-extern _X_INTERNAL PURE FASTCALL GLint __glCallLists_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glFogfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glFogiv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glLightfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glLightiv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glLightModelfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glLightModeliv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glMaterialfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glMaterialiv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glTexParameterfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glTexParameteriv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glTexEnvfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glTexEnviv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glTexGendv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glTexGenfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glTexGeniv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glMap1d_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glMap1f_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glMap2d_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glMap2f_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glColorTableParameterfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glColorTableParameteriv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint
-__glConvolutionParameterfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint
-__glConvolutionParameteriv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glPointParameterfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glPointParameteriv_size(GLenum);
-
-#undef PURE
-#undef FASTCALL
-
-#endif /* !defined( _INDIRECT_SIZE_H_ ) */
+/* DO NOT EDIT - This file generated automatically by glX_proto_size.py (from Mesa) script */
+
+/*
+ * (C) Copyright IBM Corporation 2004
+ * 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
+ * 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 THEIR 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.
+ */
+
+#if !defined( _INDIRECT_SIZE_H_ )
+# define _INDIRECT_SIZE_H_
+
+/**
+ * \file
+ * Prototypes for functions used to determine the number of data elements in
+ * various GLX protocol messages.
+ *
+ * \author Ian Romanick <idr@us.ibm.com>
+ */
+
+#include <X11/Xfuncproto.h>
+
+# if defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
+# define PURE __attribute__((pure))
+# else
+# define PURE
+# endif
+
+# if defined(__i386__) && defined(__GNUC__) && !defined(__CYGWIN__) && !defined(__MINGW32__)
+# define FASTCALL __attribute__((fastcall))
+# else
+# define FASTCALL
+# endif
+
+
+# undef PURE
+# undef FASTCALL
+
+#endif /* !defined( _INDIRECT_SIZE_H_ ) */
diff --git a/xorg-server/glx/indirect_size_get.c b/xorg-server/glx/indirect_size_get.c
index f87931193..e33174f66 100644
--- a/xorg-server/glx/indirect_size_get.c
+++ b/xorg-server/glx/indirect_size_get.c
@@ -1,1220 +1,1259 @@
-/* DO NOT EDIT - This file generated automatically by glX_proto_size.py (from Mesa) script */
-
-/*
- * (C) Copyright IBM Corporation 2004
- * 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
- * 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 THEIR 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.
- */
-
-
-#include <X11/Xfuncproto.h>
-#include <GL/gl.h>
-#include "indirect_size_get.h"
-#include "glxserver.h"
-#include "indirect_util.h"
-#include "indirect_size.h"
-
-#if defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
-#define PURE __attribute__((pure))
-#else
-#define PURE
-#endif
-
-#if defined(__i386__) && defined(__GNUC__) && !defined(__CYGWIN__) && !defined(__MINGW32__)
-#define FASTCALL __attribute__((fastcall))
-#else
-#define FASTCALL
-#endif
-
-
-#if defined(__CYGWIN__) || defined(__MINGW32__) || defined(GLX_USE_APPLEGL)
-#undef HAVE_ALIAS
-#endif
-#ifdef HAVE_ALIAS
-#define ALIAS2(from,to) \
- _X_INTERNAL PURE FASTCALL GLint __gl ## from ## _size( GLenum e ) \
- __attribute__ ((alias( # to )));
-#define ALIAS(from,to) ALIAS2( from, __gl ## to ## _size )
-#else
-#define ALIAS(from,to) \
- _X_INTERNAL PURE FASTCALL GLint __gl ## from ## _size( GLenum e ) \
- { return __gl ## to ## _size( e ); }
-#endif
-
-
-_X_INTERNAL PURE FASTCALL GLint
-__glCallLists_size(GLenum e)
-{
- switch (e) {
- case GL_BYTE:
- case GL_UNSIGNED_BYTE:
- return 1;
- case GL_SHORT:
- case GL_UNSIGNED_SHORT:
- case GL_2_BYTES:
- case GL_HALF_FLOAT:
- return 2;
- case GL_3_BYTES:
- return 3;
- case GL_INT:
- case GL_UNSIGNED_INT:
- case GL_FLOAT:
- case GL_4_BYTES:
- return 4;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glFogfv_size(GLenum e)
-{
- switch (e) {
- case GL_FOG_INDEX:
- case GL_FOG_DENSITY:
- case GL_FOG_START:
- case GL_FOG_END:
- case GL_FOG_MODE:
- case GL_FOG_OFFSET_VALUE_SGIX:
- case GL_FOG_DISTANCE_MODE_NV:
- return 1;
- case GL_FOG_COLOR:
- return 4;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glLightfv_size(GLenum e)
-{
- switch (e) {
- case GL_SPOT_EXPONENT:
- case GL_SPOT_CUTOFF:
- case GL_CONSTANT_ATTENUATION:
- case GL_LINEAR_ATTENUATION:
- case GL_QUADRATIC_ATTENUATION:
- return 1;
- case GL_SPOT_DIRECTION:
- return 3;
- case GL_AMBIENT:
- case GL_DIFFUSE:
- case GL_SPECULAR:
- case GL_POSITION:
- return 4;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glLightModelfv_size(GLenum e)
-{
- switch (e) {
- case GL_LIGHT_MODEL_LOCAL_VIEWER:
- case GL_LIGHT_MODEL_TWO_SIDE:
- case GL_LIGHT_MODEL_COLOR_CONTROL:
-/* case GL_LIGHT_MODEL_COLOR_CONTROL_EXT:*/
- return 1;
- case GL_LIGHT_MODEL_AMBIENT:
- return 4;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glMaterialfv_size(GLenum e)
-{
- switch (e) {
- case GL_SHININESS:
- return 1;
- case GL_COLOR_INDEXES:
- return 3;
- case GL_AMBIENT:
- case GL_DIFFUSE:
- case GL_SPECULAR:
- case GL_EMISSION:
- case GL_AMBIENT_AND_DIFFUSE:
- return 4;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glTexParameterfv_size(GLenum e)
-{
- switch (e) {
- case GL_TEXTURE_MAG_FILTER:
- case GL_TEXTURE_MIN_FILTER:
- case GL_TEXTURE_WRAP_S:
- case GL_TEXTURE_WRAP_T:
- case GL_TEXTURE_PRIORITY:
- case GL_TEXTURE_WRAP_R:
- case GL_TEXTURE_COMPARE_FAIL_VALUE_ARB:
-/* case GL_SHADOW_AMBIENT_SGIX:*/
- case GL_TEXTURE_MIN_LOD:
- case GL_TEXTURE_MAX_LOD:
- case GL_TEXTURE_BASE_LEVEL:
- case GL_TEXTURE_MAX_LEVEL:
- case GL_TEXTURE_CLIPMAP_FRAME_SGIX:
- case GL_TEXTURE_LOD_BIAS_S_SGIX:
- case GL_TEXTURE_LOD_BIAS_T_SGIX:
- case GL_TEXTURE_LOD_BIAS_R_SGIX:
- case GL_GENERATE_MIPMAP:
-/* case GL_GENERATE_MIPMAP_SGIS:*/
- case GL_TEXTURE_COMPARE_SGIX:
- case GL_TEXTURE_COMPARE_OPERATOR_SGIX:
- case GL_TEXTURE_MAX_CLAMP_S_SGIX:
- case GL_TEXTURE_MAX_CLAMP_T_SGIX:
- case GL_TEXTURE_MAX_CLAMP_R_SGIX:
- case GL_TEXTURE_MAX_ANISOTROPY_EXT:
- case GL_TEXTURE_LOD_BIAS:
-/* case GL_TEXTURE_LOD_BIAS_EXT:*/
- case GL_TEXTURE_STORAGE_HINT_APPLE:
- case GL_STORAGE_PRIVATE_APPLE:
- case GL_STORAGE_CACHED_APPLE:
- case GL_STORAGE_SHARED_APPLE:
- case GL_DEPTH_TEXTURE_MODE:
-/* case GL_DEPTH_TEXTURE_MODE_ARB:*/
- case GL_TEXTURE_COMPARE_MODE:
-/* case GL_TEXTURE_COMPARE_MODE_ARB:*/
- case GL_TEXTURE_COMPARE_FUNC:
-/* case GL_TEXTURE_COMPARE_FUNC_ARB:*/
- case GL_TEXTURE_UNSIGNED_REMAP_MODE_NV:
- return 1;
- case GL_TEXTURE_CLIPMAP_CENTER_SGIX:
- case GL_TEXTURE_CLIPMAP_OFFSET_SGIX:
- return 2;
- case GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX:
- return 3;
- case GL_TEXTURE_BORDER_COLOR:
- case GL_POST_TEXTURE_FILTER_BIAS_SGIX:
- case GL_POST_TEXTURE_FILTER_SCALE_SGIX:
- return 4;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glTexEnvfv_size(GLenum e)
-{
- switch (e) {
- case GL_ALPHA_SCALE:
- case GL_TEXTURE_ENV_MODE:
- case GL_TEXTURE_LOD_BIAS:
- case GL_COMBINE_RGB:
- case GL_COMBINE_ALPHA:
- case GL_RGB_SCALE:
- case GL_SOURCE0_RGB:
- case GL_SOURCE1_RGB:
- case GL_SOURCE2_RGB:
- case GL_SOURCE3_RGB_NV:
- case GL_SOURCE0_ALPHA:
- case GL_SOURCE1_ALPHA:
- case GL_SOURCE2_ALPHA:
- case GL_SOURCE3_ALPHA_NV:
- case GL_OPERAND0_RGB:
- case GL_OPERAND1_RGB:
- case GL_OPERAND2_RGB:
- case GL_OPERAND3_RGB_NV:
- case GL_OPERAND0_ALPHA:
- case GL_OPERAND1_ALPHA:
- case GL_OPERAND2_ALPHA:
- case GL_OPERAND3_ALPHA_NV:
- case GL_BUMP_TARGET_ATI:
- case GL_COORD_REPLACE_ARB:
-/* case GL_COORD_REPLACE_NV:*/
- return 1;
- case GL_TEXTURE_ENV_COLOR:
- return 4;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glTexGendv_size(GLenum e)
-{
- switch (e) {
- case GL_TEXTURE_GEN_MODE:
- return 1;
- case GL_OBJECT_PLANE:
- case GL_EYE_PLANE:
- return 4;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glMap1d_size(GLenum e)
-{
- switch (e) {
- case GL_MAP1_INDEX:
- case GL_MAP1_TEXTURE_COORD_1:
- return 1;
- case GL_MAP1_TEXTURE_COORD_2:
- return 2;
- case GL_MAP1_NORMAL:
- case GL_MAP1_TEXTURE_COORD_3:
- case GL_MAP1_VERTEX_3:
- return 3;
- case GL_MAP1_COLOR_4:
- case GL_MAP1_TEXTURE_COORD_4:
- case GL_MAP1_VERTEX_4:
- return 4;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glMap2d_size(GLenum e)
-{
- switch (e) {
- case GL_MAP2_INDEX:
- case GL_MAP2_TEXTURE_COORD_1:
- return 1;
- case GL_MAP2_TEXTURE_COORD_2:
- return 2;
- case GL_MAP2_NORMAL:
- case GL_MAP2_TEXTURE_COORD_3:
- case GL_MAP2_VERTEX_3:
- return 3;
- case GL_MAP2_COLOR_4:
- case GL_MAP2_TEXTURE_COORD_4:
- case GL_MAP2_VERTEX_4:
- return 4;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glGetBooleanv_size(GLenum e)
-{
- switch (e) {
- case GL_CURRENT_INDEX:
- case GL_CURRENT_RASTER_INDEX:
- case GL_CURRENT_RASTER_POSITION_VALID:
- case GL_CURRENT_RASTER_DISTANCE:
- case GL_POINT_SMOOTH:
- case GL_POINT_SIZE:
- case GL_SMOOTH_POINT_SIZE_GRANULARITY:
- case GL_LINE_SMOOTH:
- case GL_LINE_WIDTH:
- case GL_LINE_WIDTH_GRANULARITY:
- case GL_LINE_STIPPLE:
- case GL_LINE_STIPPLE_PATTERN:
- case GL_LINE_STIPPLE_REPEAT:
- case GL_LIST_MODE:
- case GL_MAX_LIST_NESTING:
- case GL_LIST_BASE:
- case GL_LIST_INDEX:
- case GL_POLYGON_SMOOTH:
- case GL_POLYGON_STIPPLE:
- case GL_EDGE_FLAG:
- case GL_CULL_FACE:
- case GL_CULL_FACE_MODE:
- case GL_FRONT_FACE:
- case GL_LIGHTING:
- case GL_LIGHT_MODEL_LOCAL_VIEWER:
- case GL_LIGHT_MODEL_TWO_SIDE:
- case GL_SHADE_MODEL:
- case GL_COLOR_MATERIAL_FACE:
- case GL_COLOR_MATERIAL_PARAMETER:
- case GL_COLOR_MATERIAL:
- case GL_FOG:
- case GL_FOG_INDEX:
- case GL_FOG_DENSITY:
- case GL_FOG_START:
- case GL_FOG_END:
- case GL_FOG_MODE:
- case GL_DEPTH_TEST:
- case GL_DEPTH_WRITEMASK:
- case GL_DEPTH_CLEAR_VALUE:
- case GL_DEPTH_FUNC:
- case GL_STENCIL_TEST:
- case GL_STENCIL_CLEAR_VALUE:
- case GL_STENCIL_FUNC:
- case GL_STENCIL_VALUE_MASK:
- case GL_STENCIL_FAIL:
- case GL_STENCIL_PASS_DEPTH_FAIL:
- case GL_STENCIL_PASS_DEPTH_PASS:
- case GL_STENCIL_REF:
- case GL_STENCIL_WRITEMASK:
- case GL_MATRIX_MODE:
- case GL_NORMALIZE:
- case GL_MODELVIEW_STACK_DEPTH:
- case GL_PROJECTION_STACK_DEPTH:
- case GL_TEXTURE_STACK_DEPTH:
- case GL_ATTRIB_STACK_DEPTH:
- case GL_CLIENT_ATTRIB_STACK_DEPTH:
- case GL_ALPHA_TEST:
- case GL_ALPHA_TEST_FUNC:
- case GL_ALPHA_TEST_REF:
- case GL_DITHER:
- case GL_BLEND_DST:
- case GL_BLEND_SRC:
- case GL_BLEND:
- case GL_LOGIC_OP_MODE:
- case GL_LOGIC_OP:
- case GL_AUX_BUFFERS:
- case GL_DRAW_BUFFER:
- case GL_READ_BUFFER:
- case GL_SCISSOR_TEST:
- case GL_INDEX_CLEAR_VALUE:
- case GL_INDEX_WRITEMASK:
- case GL_INDEX_MODE:
- case GL_RGBA_MODE:
- case GL_DOUBLEBUFFER:
- case GL_STEREO:
- case GL_RENDER_MODE:
- case GL_PERSPECTIVE_CORRECTION_HINT:
- case GL_POINT_SMOOTH_HINT:
- case GL_LINE_SMOOTH_HINT:
- case GL_POLYGON_SMOOTH_HINT:
- case GL_FOG_HINT:
- case GL_TEXTURE_GEN_S:
- case GL_TEXTURE_GEN_T:
- case GL_TEXTURE_GEN_R:
- case GL_TEXTURE_GEN_Q:
- case GL_PIXEL_MAP_I_TO_I:
- case GL_PIXEL_MAP_I_TO_I_SIZE:
- case GL_PIXEL_MAP_S_TO_S_SIZE:
- case GL_PIXEL_MAP_I_TO_R_SIZE:
- case GL_PIXEL_MAP_I_TO_G_SIZE:
- case GL_PIXEL_MAP_I_TO_B_SIZE:
- case GL_PIXEL_MAP_I_TO_A_SIZE:
- case GL_PIXEL_MAP_R_TO_R_SIZE:
- case GL_PIXEL_MAP_G_TO_G_SIZE:
- case GL_PIXEL_MAP_B_TO_B_SIZE:
- case GL_PIXEL_MAP_A_TO_A_SIZE:
- case GL_UNPACK_SWAP_BYTES:
- case GL_UNPACK_LSB_FIRST:
- case GL_UNPACK_ROW_LENGTH:
- case GL_UNPACK_SKIP_ROWS:
- case GL_UNPACK_SKIP_PIXELS:
- case GL_UNPACK_ALIGNMENT:
- case GL_PACK_SWAP_BYTES:
- case GL_PACK_LSB_FIRST:
- case GL_PACK_ROW_LENGTH:
- case GL_PACK_SKIP_ROWS:
- case GL_PACK_SKIP_PIXELS:
- case GL_PACK_ALIGNMENT:
- case GL_MAP_COLOR:
- case GL_MAP_STENCIL:
- case GL_INDEX_SHIFT:
- case GL_INDEX_OFFSET:
- case GL_RED_SCALE:
- case GL_RED_BIAS:
- case GL_ZOOM_X:
- case GL_ZOOM_Y:
- case GL_GREEN_SCALE:
- case GL_GREEN_BIAS:
- case GL_BLUE_SCALE:
- case GL_BLUE_BIAS:
- case GL_ALPHA_SCALE:
- case GL_ALPHA_BIAS:
- case GL_DEPTH_SCALE:
- case GL_DEPTH_BIAS:
- case GL_MAX_EVAL_ORDER:
- case GL_MAX_LIGHTS:
- case GL_MAX_CLIP_PLANES:
- case GL_MAX_TEXTURE_SIZE:
- case GL_MAX_PIXEL_MAP_TABLE:
- case GL_MAX_ATTRIB_STACK_DEPTH:
- case GL_MAX_MODELVIEW_STACK_DEPTH:
- case GL_MAX_NAME_STACK_DEPTH:
- case GL_MAX_PROJECTION_STACK_DEPTH:
- case GL_MAX_TEXTURE_STACK_DEPTH:
- case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH:
- case GL_SUBPIXEL_BITS:
- case GL_INDEX_BITS:
- case GL_RED_BITS:
- case GL_GREEN_BITS:
- case GL_BLUE_BITS:
- case GL_ALPHA_BITS:
- case GL_DEPTH_BITS:
- case GL_STENCIL_BITS:
- case GL_ACCUM_RED_BITS:
- case GL_ACCUM_GREEN_BITS:
- case GL_ACCUM_BLUE_BITS:
- case GL_ACCUM_ALPHA_BITS:
- case GL_NAME_STACK_DEPTH:
- case GL_AUTO_NORMAL:
- case GL_MAP1_COLOR_4:
- case GL_MAP1_INDEX:
- case GL_MAP1_NORMAL:
- case GL_MAP1_TEXTURE_COORD_1:
- case GL_MAP1_TEXTURE_COORD_2:
- case GL_MAP1_TEXTURE_COORD_3:
- case GL_MAP1_TEXTURE_COORD_4:
- case GL_MAP1_VERTEX_3:
- case GL_MAP1_VERTEX_4:
- case GL_MAP2_COLOR_4:
- case GL_MAP2_INDEX:
- case GL_MAP2_NORMAL:
- case GL_MAP2_TEXTURE_COORD_1:
- case GL_MAP2_TEXTURE_COORD_2:
- case GL_MAP2_TEXTURE_COORD_3:
- case GL_MAP2_TEXTURE_COORD_4:
- case GL_MAP2_VERTEX_3:
- case GL_MAP2_VERTEX_4:
- case GL_MAP1_GRID_SEGMENTS:
- case GL_TEXTURE_1D:
- case GL_TEXTURE_2D:
- case GL_POLYGON_OFFSET_UNITS:
- case GL_CLIP_PLANE0:
- case GL_CLIP_PLANE1:
- case GL_CLIP_PLANE2:
- case GL_CLIP_PLANE3:
- case GL_CLIP_PLANE4:
- case GL_CLIP_PLANE5:
- case GL_LIGHT0:
- case GL_LIGHT1:
- case GL_LIGHT2:
- case GL_LIGHT3:
- case GL_LIGHT4:
- case GL_LIGHT5:
- case GL_LIGHT6:
- case GL_LIGHT7:
- case GL_BLEND_EQUATION:
-/* case GL_BLEND_EQUATION_EXT:*/
- case GL_CONVOLUTION_1D:
- case GL_CONVOLUTION_2D:
- case GL_SEPARABLE_2D:
- case GL_MAX_CONVOLUTION_WIDTH:
-/* case GL_MAX_CONVOLUTION_WIDTH_EXT:*/
- case GL_MAX_CONVOLUTION_HEIGHT:
-/* case GL_MAX_CONVOLUTION_HEIGHT_EXT:*/
- case GL_POST_CONVOLUTION_RED_SCALE:
-/* case GL_POST_CONVOLUTION_RED_SCALE_EXT:*/
- case GL_POST_CONVOLUTION_GREEN_SCALE:
-/* case GL_POST_CONVOLUTION_GREEN_SCALE_EXT:*/
- case GL_POST_CONVOLUTION_BLUE_SCALE:
-/* case GL_POST_CONVOLUTION_BLUE_SCALE_EXT:*/
- case GL_POST_CONVOLUTION_ALPHA_SCALE:
-/* case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT:*/
- case GL_POST_CONVOLUTION_RED_BIAS:
-/* case GL_POST_CONVOLUTION_RED_BIAS_EXT:*/
- case GL_POST_CONVOLUTION_GREEN_BIAS:
-/* case GL_POST_CONVOLUTION_GREEN_BIAS_EXT:*/
- case GL_POST_CONVOLUTION_BLUE_BIAS:
-/* case GL_POST_CONVOLUTION_BLUE_BIAS_EXT:*/
- case GL_POST_CONVOLUTION_ALPHA_BIAS:
-/* case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT:*/
- case GL_HISTOGRAM:
- case GL_MINMAX:
- case GL_POLYGON_OFFSET_FACTOR:
- case GL_RESCALE_NORMAL:
-/* case GL_RESCALE_NORMAL_EXT:*/
- case GL_TEXTURE_BINDING_1D:
- case GL_TEXTURE_BINDING_2D:
- case GL_TEXTURE_BINDING_3D:
- case GL_PACK_SKIP_IMAGES:
- case GL_PACK_IMAGE_HEIGHT:
- case GL_UNPACK_SKIP_IMAGES:
- case GL_UNPACK_IMAGE_HEIGHT:
- case GL_TEXTURE_3D:
- case GL_MAX_3D_TEXTURE_SIZE:
- case GL_VERTEX_ARRAY:
- case GL_NORMAL_ARRAY:
- case GL_COLOR_ARRAY:
- case GL_INDEX_ARRAY:
- case GL_TEXTURE_COORD_ARRAY:
- case GL_EDGE_FLAG_ARRAY:
- case GL_VERTEX_ARRAY_SIZE:
- case GL_VERTEX_ARRAY_TYPE:
- case GL_VERTEX_ARRAY_STRIDE:
- case GL_NORMAL_ARRAY_TYPE:
- case GL_NORMAL_ARRAY_STRIDE:
- case GL_COLOR_ARRAY_SIZE:
- case GL_COLOR_ARRAY_TYPE:
- case GL_COLOR_ARRAY_STRIDE:
- case GL_INDEX_ARRAY_TYPE:
- case GL_INDEX_ARRAY_STRIDE:
- case GL_TEXTURE_COORD_ARRAY_SIZE:
- case GL_TEXTURE_COORD_ARRAY_TYPE:
- case GL_TEXTURE_COORD_ARRAY_STRIDE:
- case GL_EDGE_FLAG_ARRAY_STRIDE:
- case GL_MULTISAMPLE:
-/* case GL_MULTISAMPLE_ARB:*/
- case GL_SAMPLE_ALPHA_TO_COVERAGE:
-/* case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB:*/
- case GL_SAMPLE_ALPHA_TO_ONE:
-/* case GL_SAMPLE_ALPHA_TO_ONE_ARB:*/
- case GL_SAMPLE_COVERAGE:
-/* case GL_SAMPLE_COVERAGE_ARB:*/
- case GL_SAMPLE_BUFFERS:
-/* case GL_SAMPLE_BUFFERS_ARB:*/
- case GL_SAMPLES:
-/* case GL_SAMPLES_ARB:*/
- case GL_SAMPLE_COVERAGE_VALUE:
-/* case GL_SAMPLE_COVERAGE_VALUE_ARB:*/
- case GL_SAMPLE_COVERAGE_INVERT:
-/* case GL_SAMPLE_COVERAGE_INVERT_ARB:*/
- case GL_COLOR_MATRIX_STACK_DEPTH:
- case GL_MAX_COLOR_MATRIX_STACK_DEPTH:
- case GL_POST_COLOR_MATRIX_RED_SCALE:
- case GL_POST_COLOR_MATRIX_GREEN_SCALE:
- case GL_POST_COLOR_MATRIX_BLUE_SCALE:
- case GL_POST_COLOR_MATRIX_ALPHA_SCALE:
- case GL_POST_COLOR_MATRIX_RED_BIAS:
- case GL_POST_COLOR_MATRIX_GREEN_BIAS:
- case GL_POST_COLOR_MATRIX_BLUE_BIAS:
- case GL_POST_COLOR_MATRIX_ALPHA_BIAS:
- case GL_BLEND_DST_RGB:
- case GL_BLEND_SRC_RGB:
- case GL_BLEND_DST_ALPHA:
- case GL_BLEND_SRC_ALPHA:
- case GL_COLOR_TABLE:
- case GL_POST_CONVOLUTION_COLOR_TABLE:
- case GL_POST_COLOR_MATRIX_COLOR_TABLE:
- case GL_MAX_ELEMENTS_VERTICES:
- case GL_MAX_ELEMENTS_INDICES:
- case GL_CLIP_VOLUME_CLIPPING_HINT_EXT:
- case GL_POINT_SIZE_MIN:
- case GL_POINT_SIZE_MAX:
- case GL_POINT_FADE_THRESHOLD_SIZE:
- case GL_OCCLUSION_TEST_HP:
- case GL_OCCLUSION_TEST_RESULT_HP:
- case GL_LIGHT_MODEL_COLOR_CONTROL:
- case GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB:
- case GL_RESET_NOTIFICATION_STRATEGY_ARB:
- case GL_CURRENT_FOG_COORD:
- case GL_FOG_COORDINATE_ARRAY_TYPE:
- case GL_FOG_COORDINATE_ARRAY_STRIDE:
- case GL_FOG_COORD_ARRAY:
- case GL_COLOR_SUM_ARB:
- case GL_SECONDARY_COLOR_ARRAY_SIZE:
- case GL_SECONDARY_COLOR_ARRAY_TYPE:
- case GL_SECONDARY_COLOR_ARRAY_STRIDE:
- case GL_SECONDARY_COLOR_ARRAY:
- case GL_ACTIVE_TEXTURE:
-/* case GL_ACTIVE_TEXTURE_ARB:*/
- case GL_CLIENT_ACTIVE_TEXTURE:
-/* case GL_CLIENT_ACTIVE_TEXTURE_ARB:*/
- case GL_MAX_TEXTURE_UNITS:
-/* case GL_MAX_TEXTURE_UNITS_ARB:*/
- case GL_MAX_RENDERBUFFER_SIZE:
-/* case GL_MAX_RENDERBUFFER_SIZE_EXT:*/
- case GL_TEXTURE_COMPRESSION_HINT:
-/* case GL_TEXTURE_COMPRESSION_HINT_ARB:*/
- case GL_TEXTURE_RECTANGLE_ARB:
-/* case GL_TEXTURE_RECTANGLE_NV:*/
- case GL_TEXTURE_BINDING_RECTANGLE_ARB:
-/* case GL_TEXTURE_BINDING_RECTANGLE_NV:*/
- case GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB:
-/* case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV:*/
- case GL_MAX_TEXTURE_LOD_BIAS:
- case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
- case GL_MAX_SHININESS_NV:
- case GL_MAX_SPOT_EXPONENT_NV:
- case GL_TEXTURE_CUBE_MAP:
-/* case GL_TEXTURE_CUBE_MAP_ARB:*/
- case GL_TEXTURE_BINDING_CUBE_MAP:
-/* case GL_TEXTURE_BINDING_CUBE_MAP_ARB:*/
- case GL_MAX_CUBE_MAP_TEXTURE_SIZE:
-/* case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB:*/
- case GL_MULTISAMPLE_FILTER_HINT_NV:
- case GL_FOG_DISTANCE_MODE_NV:
- case GL_VERTEX_PROGRAM_ARB:
- case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB:
- case GL_MAX_PROGRAM_MATRICES_ARB:
- case GL_CURRENT_MATRIX_STACK_DEPTH_ARB:
- case GL_VERTEX_PROGRAM_POINT_SIZE_ARB:
- case GL_VERTEX_PROGRAM_TWO_SIDE_ARB:
- case GL_PROGRAM_ERROR_POSITION_ARB:
- case GL_DEPTH_CLAMP:
-/* case GL_DEPTH_CLAMP_NV:*/
- case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
-/* case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB:*/
- case GL_MAX_VERTEX_UNITS_ARB:
- case GL_ACTIVE_VERTEX_UNITS_ARB:
- case GL_WEIGHT_SUM_UNITY_ARB:
- case GL_VERTEX_BLEND_ARB:
- case GL_CURRENT_WEIGHT_ARB:
- case GL_WEIGHT_ARRAY_TYPE_ARB:
- case GL_WEIGHT_ARRAY_STRIDE_ARB:
- case GL_WEIGHT_ARRAY_SIZE_ARB:
- case GL_WEIGHT_ARRAY_ARB:
- case GL_PACK_INVERT_MESA:
- case GL_STENCIL_BACK_FUNC_ATI:
- case GL_STENCIL_BACK_FAIL_ATI:
- case GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI:
- case GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI:
- case GL_FRAGMENT_PROGRAM_ARB:
- case GL_MAX_DRAW_BUFFERS_ARB:
-/* case GL_MAX_DRAW_BUFFERS_ATI:*/
- case GL_DRAW_BUFFER0_ARB:
-/* case GL_DRAW_BUFFER0_ATI:*/
- case GL_DRAW_BUFFER1_ARB:
-/* case GL_DRAW_BUFFER1_ATI:*/
- case GL_DRAW_BUFFER2_ARB:
-/* case GL_DRAW_BUFFER2_ATI:*/
- case GL_DRAW_BUFFER3_ARB:
-/* case GL_DRAW_BUFFER3_ATI:*/
- case GL_DRAW_BUFFER4_ARB:
-/* case GL_DRAW_BUFFER4_ATI:*/
- case GL_DRAW_BUFFER5_ARB:
-/* case GL_DRAW_BUFFER5_ATI:*/
- case GL_DRAW_BUFFER6_ARB:
-/* case GL_DRAW_BUFFER6_ATI:*/
- case GL_DRAW_BUFFER7_ARB:
-/* case GL_DRAW_BUFFER7_ATI:*/
- case GL_DRAW_BUFFER8_ARB:
-/* case GL_DRAW_BUFFER8_ATI:*/
- case GL_DRAW_BUFFER9_ARB:
-/* case GL_DRAW_BUFFER9_ATI:*/
- case GL_DRAW_BUFFER10_ARB:
-/* case GL_DRAW_BUFFER10_ATI:*/
- case GL_DRAW_BUFFER11_ARB:
-/* case GL_DRAW_BUFFER11_ATI:*/
- case GL_DRAW_BUFFER12_ARB:
-/* case GL_DRAW_BUFFER12_ATI:*/
- case GL_DRAW_BUFFER13_ARB:
-/* case GL_DRAW_BUFFER13_ATI:*/
- case GL_DRAW_BUFFER14_ARB:
-/* case GL_DRAW_BUFFER14_ATI:*/
- case GL_DRAW_BUFFER15_ARB:
-/* case GL_DRAW_BUFFER15_ATI:*/
- case GL_BLEND_EQUATION_ALPHA_EXT:
- case GL_MATRIX_PALETTE_ARB:
- case GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB:
- case GL_MAX_PALETTE_MATRICES_ARB:
- case GL_CURRENT_PALETTE_MATRIX_ARB:
- case GL_MATRIX_INDEX_ARRAY_ARB:
- case GL_CURRENT_MATRIX_INDEX_ARB:
- case GL_MATRIX_INDEX_ARRAY_SIZE_ARB:
- case GL_MATRIX_INDEX_ARRAY_TYPE_ARB:
- case GL_MATRIX_INDEX_ARRAY_STRIDE_ARB:
- case GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT:
- case GL_TEXTURE_CUBE_MAP_SEAMLESS:
- case GL_POINT_SPRITE_ARB:
-/* case GL_POINT_SPRITE_NV:*/
- case GL_POINT_SPRITE_R_MODE_NV:
- case GL_MAX_VERTEX_ATTRIBS_ARB:
- case GL_MAX_TEXTURE_COORDS_ARB:
- case GL_MAX_TEXTURE_IMAGE_UNITS_ARB:
- case GL_DEPTH_BOUNDS_TEST_EXT:
- case GL_ARRAY_BUFFER_BINDING_ARB:
- case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB:
- case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB:
- case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB:
- case GL_COLOR_ARRAY_BUFFER_BINDING_ARB:
- case GL_INDEX_ARRAY_BUFFER_BINDING_ARB:
- case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB:
- case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB:
- case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB:
- case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB:
- case GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB:
- case GL_MAX_ARRAY_TEXTURE_LAYERS_EXT:
- case GL_STENCIL_TEST_TWO_SIDE_EXT:
- case GL_ACTIVE_STENCIL_FACE_EXT:
- case GL_SAMPLER_BINDING:
- case GL_TEXTURE_BINDING_1D_ARRAY_EXT:
- case GL_TEXTURE_BINDING_2D_ARRAY_EXT:
- case GL_FRAMEBUFFER_BINDING:
-/* case GL_DRAW_FRAMEBUFFER_BINDING_EXT:*/
- case GL_RENDERBUFFER_BINDING:
-/* case GL_RENDERBUFFER_BINDING_EXT:*/
- case GL_READ_FRAMEBUFFER_BINDING:
-/* case GL_READ_FRAMEBUFFER_BINDING_EXT:*/
- case GL_MAX_COLOR_ATTACHMENTS:
-/* case GL_MAX_COLOR_ATTACHMENTS_EXT:*/
- case GL_MAX_SAMPLES:
-/* case GL_MAX_SAMPLES_EXT:*/
- case GL_MAX_SERVER_WAIT_TIMEOUT:
- case GL_MAX_DEBUG_MESSAGE_LENGTH_ARB:
- case GL_MAX_DEBUG_LOGGED_MESSAGES_ARB:
- case GL_DEBUG_LOGGED_MESSAGES_ARB:
- case GL_RASTER_POSITION_UNCLIPPED_IBM:
- return 1;
- case GL_SMOOTH_POINT_SIZE_RANGE:
- case GL_LINE_WIDTH_RANGE:
- case GL_POLYGON_MODE:
- case GL_DEPTH_RANGE:
- case GL_MAX_VIEWPORT_DIMS:
- case GL_MAP1_GRID_DOMAIN:
- case GL_MAP2_GRID_SEGMENTS:
- case GL_ALIASED_POINT_SIZE_RANGE:
- case GL_ALIASED_LINE_WIDTH_RANGE:
- case GL_DEPTH_BOUNDS_EXT:
- return 2;
- case GL_CURRENT_NORMAL:
- case GL_POINT_DISTANCE_ATTENUATION:
- return 3;
- case GL_CURRENT_COLOR:
- case GL_CURRENT_TEXTURE_COORDS:
- case GL_CURRENT_RASTER_COLOR:
- case GL_CURRENT_RASTER_TEXTURE_COORDS:
- case GL_CURRENT_RASTER_POSITION:
- case GL_LIGHT_MODEL_AMBIENT:
- case GL_FOG_COLOR:
- case GL_ACCUM_CLEAR_VALUE:
- case GL_VIEWPORT:
- case GL_SCISSOR_BOX:
- case GL_COLOR_CLEAR_VALUE:
- case GL_COLOR_WRITEMASK:
- case GL_MAP2_GRID_DOMAIN:
- case GL_BLEND_COLOR:
-/* case GL_BLEND_COLOR_EXT:*/
- case GL_CURRENT_SECONDARY_COLOR:
- return 4;
- case GL_MODELVIEW_MATRIX:
- case GL_PROJECTION_MATRIX:
- case GL_TEXTURE_MATRIX:
- case GL_MODELVIEW0_ARB:
- case GL_COLOR_MATRIX:
- case GL_MODELVIEW1_ARB:
- case GL_CURRENT_MATRIX_ARB:
- case GL_MODELVIEW2_ARB:
- case GL_MODELVIEW3_ARB:
- case GL_MODELVIEW4_ARB:
- case GL_MODELVIEW5_ARB:
- case GL_MODELVIEW6_ARB:
- case GL_MODELVIEW7_ARB:
- case GL_MODELVIEW8_ARB:
- case GL_MODELVIEW9_ARB:
- case GL_MODELVIEW10_ARB:
- case GL_MODELVIEW11_ARB:
- case GL_MODELVIEW12_ARB:
- case GL_MODELVIEW13_ARB:
- case GL_MODELVIEW14_ARB:
- case GL_MODELVIEW15_ARB:
- case GL_MODELVIEW16_ARB:
- case GL_MODELVIEW17_ARB:
- case GL_MODELVIEW18_ARB:
- case GL_MODELVIEW19_ARB:
- case GL_MODELVIEW20_ARB:
- case GL_MODELVIEW21_ARB:
- case GL_MODELVIEW22_ARB:
- case GL_MODELVIEW23_ARB:
- case GL_MODELVIEW24_ARB:
- case GL_MODELVIEW25_ARB:
- case GL_MODELVIEW26_ARB:
- case GL_MODELVIEW27_ARB:
- case GL_MODELVIEW28_ARB:
- case GL_MODELVIEW29_ARB:
- case GL_MODELVIEW30_ARB:
- case GL_MODELVIEW31_ARB:
- case GL_TRANSPOSE_CURRENT_MATRIX_ARB:
- return 16;
- case GL_FOG_COORDINATE_SOURCE:
- case GL_COMPRESSED_TEXTURE_FORMATS:
- case GL_RGBA_INTEGER_MODE_EXT:
- return __glGetBooleanv_variable_size(e);
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glGetTexParameterfv_size(GLenum e)
-{
- switch (e) {
- case GL_TEXTURE_MAG_FILTER:
- case GL_TEXTURE_MIN_FILTER:
- case GL_TEXTURE_WRAP_S:
- case GL_TEXTURE_WRAP_T:
- case GL_TEXTURE_PRIORITY:
- case GL_TEXTURE_RESIDENT:
- case GL_TEXTURE_WRAP_R:
- case GL_TEXTURE_COMPARE_FAIL_VALUE_ARB:
-/* case GL_SHADOW_AMBIENT_SGIX:*/
- case GL_TEXTURE_MIN_LOD:
- case GL_TEXTURE_MAX_LOD:
- case GL_TEXTURE_BASE_LEVEL:
- case GL_TEXTURE_MAX_LEVEL:
- case GL_TEXTURE_CLIPMAP_FRAME_SGIX:
- case GL_TEXTURE_LOD_BIAS_S_SGIX:
- case GL_TEXTURE_LOD_BIAS_T_SGIX:
- case GL_TEXTURE_LOD_BIAS_R_SGIX:
- case GL_GENERATE_MIPMAP:
-/* case GL_GENERATE_MIPMAP_SGIS:*/
- case GL_TEXTURE_COMPARE_SGIX:
- case GL_TEXTURE_COMPARE_OPERATOR_SGIX:
- case GL_TEXTURE_MAX_CLAMP_S_SGIX:
- case GL_TEXTURE_MAX_CLAMP_T_SGIX:
- case GL_TEXTURE_MAX_CLAMP_R_SGIX:
- case GL_TEXTURE_MAX_ANISOTROPY_EXT:
- case GL_TEXTURE_LOD_BIAS:
-/* case GL_TEXTURE_LOD_BIAS_EXT:*/
- case GL_TEXTURE_RANGE_LENGTH_APPLE:
- case GL_TEXTURE_STORAGE_HINT_APPLE:
- case GL_DEPTH_TEXTURE_MODE:
-/* case GL_DEPTH_TEXTURE_MODE_ARB:*/
- case GL_TEXTURE_COMPARE_MODE:
-/* case GL_TEXTURE_COMPARE_MODE_ARB:*/
- case GL_TEXTURE_COMPARE_FUNC:
-/* case GL_TEXTURE_COMPARE_FUNC_ARB:*/
- case GL_TEXTURE_UNSIGNED_REMAP_MODE_NV:
- return 1;
- case GL_TEXTURE_CLIPMAP_CENTER_SGIX:
- case GL_TEXTURE_CLIPMAP_OFFSET_SGIX:
- return 2;
- case GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX:
- return 3;
- case GL_TEXTURE_BORDER_COLOR:
- case GL_POST_TEXTURE_FILTER_BIAS_SGIX:
- case GL_POST_TEXTURE_FILTER_SCALE_SGIX:
- return 4;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glGetTexLevelParameterfv_size(GLenum e)
-{
- switch (e) {
- case GL_TEXTURE_WIDTH:
- case GL_TEXTURE_HEIGHT:
- case GL_TEXTURE_COMPONENTS:
- case GL_TEXTURE_BORDER:
- case GL_TEXTURE_RED_SIZE:
-/* case GL_TEXTURE_RED_SIZE_EXT:*/
- case GL_TEXTURE_GREEN_SIZE:
-/* case GL_TEXTURE_GREEN_SIZE_EXT:*/
- case GL_TEXTURE_BLUE_SIZE:
-/* case GL_TEXTURE_BLUE_SIZE_EXT:*/
- case GL_TEXTURE_ALPHA_SIZE:
-/* case GL_TEXTURE_ALPHA_SIZE_EXT:*/
- case GL_TEXTURE_LUMINANCE_SIZE:
-/* case GL_TEXTURE_LUMINANCE_SIZE_EXT:*/
- case GL_TEXTURE_INTENSITY_SIZE:
-/* case GL_TEXTURE_INTENSITY_SIZE_EXT:*/
- case GL_TEXTURE_DEPTH:
- case GL_TEXTURE_INDEX_SIZE_EXT:
- case GL_TEXTURE_COMPRESSED_IMAGE_SIZE:
-/* case GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB:*/
- case GL_TEXTURE_COMPRESSED:
-/* case GL_TEXTURE_COMPRESSED_ARB:*/
- case GL_TEXTURE_DEPTH_SIZE:
-/* case GL_TEXTURE_DEPTH_SIZE_ARB:*/
- case GL_TEXTURE_STENCIL_SIZE:
-/* case GL_TEXTURE_STENCIL_SIZE_EXT:*/
- return 1;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glGetPointerv_size(GLenum e)
-{
- switch (e) {
- case GL_DEBUG_CALLBACK_FUNCTION_ARB:
- case GL_DEBUG_CALLBACK_USER_PARAM_ARB:
- return 1;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glColorTableParameterfv_size(GLenum e)
-{
- switch (e) {
- case GL_COLOR_TABLE_SCALE:
- case GL_COLOR_TABLE_BIAS:
- return 4;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glGetColorTableParameterfv_size(GLenum e)
-{
- switch (e) {
- case GL_COLOR_TABLE_FORMAT:
-/* case GL_COLOR_TABLE_FORMAT_EXT:*/
- case GL_COLOR_TABLE_WIDTH:
-/* case GL_COLOR_TABLE_WIDTH_EXT:*/
- case GL_COLOR_TABLE_RED_SIZE:
-/* case GL_COLOR_TABLE_RED_SIZE_EXT:*/
- case GL_COLOR_TABLE_GREEN_SIZE:
-/* case GL_COLOR_TABLE_GREEN_SIZE_EXT:*/
- case GL_COLOR_TABLE_BLUE_SIZE:
-/* case GL_COLOR_TABLE_BLUE_SIZE_EXT:*/
- case GL_COLOR_TABLE_ALPHA_SIZE:
-/* case GL_COLOR_TABLE_ALPHA_SIZE_EXT:*/
- case GL_COLOR_TABLE_LUMINANCE_SIZE:
-/* case GL_COLOR_TABLE_LUMINANCE_SIZE_EXT:*/
- case GL_COLOR_TABLE_INTENSITY_SIZE:
-/* case GL_COLOR_TABLE_INTENSITY_SIZE_EXT:*/
- return 1;
- case GL_COLOR_TABLE_SCALE:
- case GL_COLOR_TABLE_BIAS:
- return 4;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glConvolutionParameterfv_size(GLenum e)
-{
- switch (e) {
- case GL_CONVOLUTION_BORDER_MODE:
-/* case GL_CONVOLUTION_BORDER_MODE_EXT:*/
- return 1;
- case GL_CONVOLUTION_FILTER_SCALE:
-/* case GL_CONVOLUTION_FILTER_SCALE_EXT:*/
- case GL_CONVOLUTION_FILTER_BIAS:
-/* case GL_CONVOLUTION_FILTER_BIAS_EXT:*/
- case GL_CONVOLUTION_BORDER_COLOR:
-/* case GL_CONVOLUTION_BORDER_COLOR_HP:*/
- return 4;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glGetConvolutionParameterfv_size(GLenum e)
-{
- switch (e) {
- case GL_CONVOLUTION_BORDER_MODE:
-/* case GL_CONVOLUTION_BORDER_MODE_EXT:*/
- case GL_CONVOLUTION_FORMAT:
-/* case GL_CONVOLUTION_FORMAT_EXT:*/
- case GL_CONVOLUTION_WIDTH:
-/* case GL_CONVOLUTION_WIDTH_EXT:*/
- case GL_CONVOLUTION_HEIGHT:
-/* case GL_CONVOLUTION_HEIGHT_EXT:*/
- case GL_MAX_CONVOLUTION_WIDTH:
-/* case GL_MAX_CONVOLUTION_WIDTH_EXT:*/
- case GL_MAX_CONVOLUTION_HEIGHT:
-/* case GL_MAX_CONVOLUTION_HEIGHT_EXT:*/
- return 1;
- case GL_CONVOLUTION_FILTER_SCALE:
-/* case GL_CONVOLUTION_FILTER_SCALE_EXT:*/
- case GL_CONVOLUTION_FILTER_BIAS:
-/* case GL_CONVOLUTION_FILTER_BIAS_EXT:*/
- case GL_CONVOLUTION_BORDER_COLOR:
-/* case GL_CONVOLUTION_BORDER_COLOR_HP:*/
- return 4;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glGetHistogramParameterfv_size(GLenum e)
-{
- switch (e) {
- case GL_HISTOGRAM_WIDTH:
- case GL_HISTOGRAM_FORMAT:
- case GL_HISTOGRAM_RED_SIZE:
- case GL_HISTOGRAM_GREEN_SIZE:
- case GL_HISTOGRAM_BLUE_SIZE:
- case GL_HISTOGRAM_ALPHA_SIZE:
- case GL_HISTOGRAM_LUMINANCE_SIZE:
- case GL_HISTOGRAM_SINK:
- return 1;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glGetMinmaxParameterfv_size(GLenum e)
-{
- switch (e) {
- case GL_MINMAX_FORMAT:
- case GL_MINMAX_SINK:
- return 1;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glPointParameterfv_size(GLenum e)
-{
- switch (e) {
- case GL_POINT_SIZE_MIN:
-/* case GL_POINT_SIZE_MIN_ARB:*/
-/* case GL_POINT_SIZE_MIN_SGIS:*/
- case GL_POINT_SIZE_MAX:
-/* case GL_POINT_SIZE_MAX_ARB:*/
-/* case GL_POINT_SIZE_MAX_SGIS:*/
- case GL_POINT_FADE_THRESHOLD_SIZE:
-/* case GL_POINT_FADE_THRESHOLD_SIZE_ARB:*/
-/* case GL_POINT_FADE_THRESHOLD_SIZE_SGIS:*/
- case GL_POINT_SPRITE_R_MODE_NV:
- case GL_POINT_SPRITE_COORD_ORIGIN:
- return 1;
- case GL_POINT_DISTANCE_ATTENUATION:
-/* case GL_POINT_DISTANCE_ATTENUATION_ARB:*/
-/* case GL_POINT_DISTANCE_ATTENUATION_SGIS:*/
- return 3;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glGetQueryObjectiv_size(GLenum e)
-{
- switch (e) {
- case GL_QUERY_RESULT_ARB:
- case GL_QUERY_RESULT_AVAILABLE_ARB:
- return 1;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glGetQueryiv_size(GLenum e)
-{
- switch (e) {
- case GL_QUERY_COUNTER_BITS_ARB:
- case GL_CURRENT_QUERY_ARB:
- case GL_ANY_SAMPLES_PASSED:
- return 1;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glGetProgramivARB_size(GLenum e)
-{
- switch (e) {
- case GL_PROGRAM_LENGTH_ARB:
- case GL_PROGRAM_BINDING_ARB:
- case GL_PROGRAM_ALU_INSTRUCTIONS_ARB:
- case GL_PROGRAM_TEX_INSTRUCTIONS_ARB:
- case GL_PROGRAM_TEX_INDIRECTIONS_ARB:
- case GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB:
- case GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB:
- case GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB:
- case GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB:
- case GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB:
- case GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB:
- case GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB:
- case GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB:
- case GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB:
- case GL_PROGRAM_FORMAT_ARB:
- case GL_PROGRAM_INSTRUCTIONS_ARB:
- case GL_MAX_PROGRAM_INSTRUCTIONS_ARB:
- case GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB:
- case GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB:
- case GL_PROGRAM_TEMPORARIES_ARB:
- case GL_MAX_PROGRAM_TEMPORARIES_ARB:
- case GL_PROGRAM_NATIVE_TEMPORARIES_ARB:
- case GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB:
- case GL_PROGRAM_PARAMETERS_ARB:
- case GL_MAX_PROGRAM_PARAMETERS_ARB:
- case GL_PROGRAM_NATIVE_PARAMETERS_ARB:
- case GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB:
- case GL_PROGRAM_ATTRIBS_ARB:
- case GL_MAX_PROGRAM_ATTRIBS_ARB:
- case GL_PROGRAM_NATIVE_ATTRIBS_ARB:
- case GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB:
- case GL_PROGRAM_ADDRESS_REGISTERS_ARB:
- case GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB:
- case GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB:
- case GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB:
- case GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB:
- case GL_MAX_PROGRAM_ENV_PARAMETERS_ARB:
- case GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB:
- case GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV:
- case GL_MAX_PROGRAM_CALL_DEPTH_NV:
- case GL_MAX_PROGRAM_IF_DEPTH_NV:
- case GL_MAX_PROGRAM_LOOP_DEPTH_NV:
- case GL_MAX_PROGRAM_LOOP_COUNT_NV:
- return 1;
- default:
- return 0;
- }
-}
-
-_X_INTERNAL PURE FASTCALL GLint
-__glGetFramebufferAttachmentParameteriv_size(GLenum e)
-{
- switch (e) {
- case GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:
- case GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:
- case GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE:
- case GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:
- case GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:
- case GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:
- case GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:
- case GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:
- case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:
-/* case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT:*/
- case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:
-/* case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT:*/
- case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:
-/* case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT:*/
- case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:
-/* case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT:*/
- case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT:
- return 1;
- default:
- return 0;
- }
-}
-
-ALIAS(Fogiv, Fogfv)
- ALIAS(Lightiv, Lightfv)
- ALIAS(LightModeliv, LightModelfv)
- ALIAS(Materialiv, Materialfv)
- ALIAS(TexParameteriv, TexParameterfv)
- ALIAS(TexEnviv, TexEnvfv)
- ALIAS(TexGenfv, TexGendv)
- ALIAS(TexGeniv, TexGendv)
- ALIAS(Map1f, Map1d)
- ALIAS(Map2f, Map2d)
- ALIAS(GetDoublev, GetBooleanv)
- ALIAS(GetFloatv, GetBooleanv)
- ALIAS(GetIntegerv, GetBooleanv)
- ALIAS(GetLightfv, Lightfv)
- ALIAS(GetLightiv, Lightfv)
- ALIAS(GetMaterialfv, Materialfv)
- ALIAS(GetMaterialiv, Materialfv)
- ALIAS(GetTexEnvfv, TexEnvfv)
- ALIAS(GetTexEnviv, TexEnvfv)
- ALIAS(GetTexGendv, TexGendv)
- ALIAS(GetTexGenfv, TexGendv)
- ALIAS(GetTexGeniv, TexGendv)
- ALIAS(GetTexParameteriv, GetTexParameterfv)
- ALIAS(GetTexLevelParameteriv, GetTexLevelParameterfv)
- ALIAS(ColorTableParameteriv, ColorTableParameterfv)
- ALIAS(GetColorTableParameteriv, GetColorTableParameterfv)
- ALIAS(ConvolutionParameteriv, ConvolutionParameterfv)
- ALIAS(GetConvolutionParameteriv, GetConvolutionParameterfv)
- ALIAS(GetHistogramParameteriv, GetHistogramParameterfv)
- ALIAS(GetMinmaxParameteriv, GetMinmaxParameterfv)
- ALIAS(PointParameteriv, PointParameterfv)
- ALIAS(GetQueryObjectuiv, GetQueryObjectiv)
-#undef PURE
-#undef FASTCALL
+/* DO NOT EDIT - This file generated automatically by glX_proto_size.py (from Mesa) script */
+
+/*
+ * (C) Copyright IBM Corporation 2004
+ * 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
+ * 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 THEIR 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.
+ */
+
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#else
+
+#include "glheader.h"
+
+#endif
+
+#include <GL/gl.h>
+#include "indirect_size_get.h"
+#include "glxserver.h"
+#include "indirect_util.h"
+#include "indirect_size.h"
+
+# if defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
+# define PURE __attribute__((pure))
+# else
+# define PURE
+# endif
+
+# if defined(__i386__) && defined(__GNUC__) && !defined(__CYGWIN__) && !defined(__MINGW32__)
+# define FASTCALL __attribute__((fastcall))
+# else
+# define FASTCALL
+# endif
+
+
+#if defined(__CYGWIN__) || defined(__MINGW32__) || defined(GLX_USE_APPLEGL)
+# undef HAVE_ALIAS
+#endif
+#ifdef HAVE_ALIAS
+# define ALIAS2(from,to) \
+ _X_INTERNAL PURE FASTCALL GLint __gl ## from ## _size( GLenum e ) \
+ __attribute__ ((alias( # to )));
+# define ALIAS(from,to) ALIAS2( from, __gl ## to ## _size )
+#else
+# define ALIAS(from,to) \
+ _X_INTERNAL PURE FASTCALL GLint __gl ## from ## _size( GLenum e ) \
+ { return __gl ## to ## _size( e ); }
+#endif
+
+
+_X_INTERNAL PURE FASTCALL GLint
+__glCallLists_size( GLenum e )
+{
+ switch( e ) {
+ case GL_BYTE:
+ case GL_UNSIGNED_BYTE:
+ return 1;
+ case GL_SHORT:
+ case GL_UNSIGNED_SHORT:
+ case GL_2_BYTES:
+ case GL_HALF_FLOAT:
+ return 2;
+ case GL_3_BYTES:
+ return 3;
+ case GL_INT:
+ case GL_UNSIGNED_INT:
+ case GL_FLOAT:
+ case GL_4_BYTES:
+ return 4;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glFogfv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_FOG_INDEX:
+ case GL_FOG_DENSITY:
+ case GL_FOG_START:
+ case GL_FOG_END:
+ case GL_FOG_MODE:
+ case GL_FOG_OFFSET_VALUE_SGIX:
+ case GL_FOG_DISTANCE_MODE_NV:
+ return 1;
+ case GL_FOG_COLOR:
+ return 4;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glLightfv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_SPOT_EXPONENT:
+ case GL_SPOT_CUTOFF:
+ case GL_CONSTANT_ATTENUATION:
+ case GL_LINEAR_ATTENUATION:
+ case GL_QUADRATIC_ATTENUATION:
+ return 1;
+ case GL_SPOT_DIRECTION:
+ return 3;
+ case GL_AMBIENT:
+ case GL_DIFFUSE:
+ case GL_SPECULAR:
+ case GL_POSITION:
+ return 4;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glLightModelfv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_LIGHT_MODEL_LOCAL_VIEWER:
+ case GL_LIGHT_MODEL_TWO_SIDE:
+ case GL_LIGHT_MODEL_COLOR_CONTROL:
+/* case GL_LIGHT_MODEL_COLOR_CONTROL_EXT:*/
+ return 1;
+ case GL_LIGHT_MODEL_AMBIENT:
+ return 4;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glMaterialfv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_SHININESS:
+ return 1;
+ case GL_COLOR_INDEXES:
+ return 3;
+ case GL_AMBIENT:
+ case GL_DIFFUSE:
+ case GL_SPECULAR:
+ case GL_EMISSION:
+ case GL_AMBIENT_AND_DIFFUSE:
+ return 4;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glTexParameterfv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_TEXTURE_MAG_FILTER:
+ case GL_TEXTURE_MIN_FILTER:
+ case GL_TEXTURE_WRAP_S:
+ case GL_TEXTURE_WRAP_T:
+ case GL_TEXTURE_PRIORITY:
+ case GL_TEXTURE_WRAP_R:
+ case GL_TEXTURE_COMPARE_FAIL_VALUE_ARB:
+/* case GL_SHADOW_AMBIENT_SGIX:*/
+ case GL_TEXTURE_MIN_LOD:
+ case GL_TEXTURE_MAX_LOD:
+ case GL_TEXTURE_BASE_LEVEL:
+ case GL_TEXTURE_MAX_LEVEL:
+ case GL_TEXTURE_CLIPMAP_FRAME_SGIX:
+ case GL_TEXTURE_LOD_BIAS_S_SGIX:
+ case GL_TEXTURE_LOD_BIAS_T_SGIX:
+ case GL_TEXTURE_LOD_BIAS_R_SGIX:
+ case GL_GENERATE_MIPMAP:
+/* case GL_GENERATE_MIPMAP_SGIS:*/
+ case GL_TEXTURE_COMPARE_SGIX:
+ case GL_TEXTURE_COMPARE_OPERATOR_SGIX:
+ case GL_TEXTURE_MAX_CLAMP_S_SGIX:
+ case GL_TEXTURE_MAX_CLAMP_T_SGIX:
+ case GL_TEXTURE_MAX_CLAMP_R_SGIX:
+ case GL_TEXTURE_MAX_ANISOTROPY_EXT:
+ case GL_TEXTURE_LOD_BIAS:
+/* case GL_TEXTURE_LOD_BIAS_EXT:*/
+ case GL_TEXTURE_STORAGE_HINT_APPLE:
+ case GL_STORAGE_PRIVATE_APPLE:
+ case GL_STORAGE_CACHED_APPLE:
+ case GL_STORAGE_SHARED_APPLE:
+ case GL_DEPTH_TEXTURE_MODE:
+/* case GL_DEPTH_TEXTURE_MODE_ARB:*/
+ case GL_TEXTURE_COMPARE_MODE:
+/* case GL_TEXTURE_COMPARE_MODE_ARB:*/
+ case GL_TEXTURE_COMPARE_FUNC:
+/* case GL_TEXTURE_COMPARE_FUNC_ARB:*/
+ case GL_TEXTURE_UNSIGNED_REMAP_MODE_NV:
+ return 1;
+ case GL_TEXTURE_CLIPMAP_CENTER_SGIX:
+ case GL_TEXTURE_CLIPMAP_OFFSET_SGIX:
+ return 2;
+ case GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX:
+ return 3;
+ case GL_TEXTURE_BORDER_COLOR:
+ case GL_POST_TEXTURE_FILTER_BIAS_SGIX:
+ case GL_POST_TEXTURE_FILTER_SCALE_SGIX:
+ return 4;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glTexEnvfv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_ALPHA_SCALE:
+ case GL_TEXTURE_ENV_MODE:
+ case GL_TEXTURE_LOD_BIAS:
+ case GL_COMBINE_RGB:
+ case GL_COMBINE_ALPHA:
+ case GL_RGB_SCALE:
+ case GL_SOURCE0_RGB:
+ case GL_SOURCE1_RGB:
+ case GL_SOURCE2_RGB:
+ case GL_SOURCE3_RGB_NV:
+ case GL_SOURCE0_ALPHA:
+ case GL_SOURCE1_ALPHA:
+ case GL_SOURCE2_ALPHA:
+ case GL_SOURCE3_ALPHA_NV:
+ case GL_OPERAND0_RGB:
+ case GL_OPERAND1_RGB:
+ case GL_OPERAND2_RGB:
+ case GL_OPERAND3_RGB_NV:
+ case GL_OPERAND0_ALPHA:
+ case GL_OPERAND1_ALPHA:
+ case GL_OPERAND2_ALPHA:
+ case GL_OPERAND3_ALPHA_NV:
+ case GL_BUMP_TARGET_ATI:
+ case GL_COORD_REPLACE_ARB:
+/* case GL_COORD_REPLACE_NV:*/
+ return 1;
+ case GL_TEXTURE_ENV_COLOR:
+ return 4;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glTexGendv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_TEXTURE_GEN_MODE:
+ return 1;
+ case GL_OBJECT_PLANE:
+ case GL_EYE_PLANE:
+ return 4;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glMap1d_size( GLenum e )
+{
+ switch( e ) {
+ case GL_MAP1_INDEX:
+ case GL_MAP1_TEXTURE_COORD_1:
+ return 1;
+ case GL_MAP1_TEXTURE_COORD_2:
+ return 2;
+ case GL_MAP1_NORMAL:
+ case GL_MAP1_TEXTURE_COORD_3:
+ case GL_MAP1_VERTEX_3:
+ return 3;
+ case GL_MAP1_COLOR_4:
+ case GL_MAP1_TEXTURE_COORD_4:
+ case GL_MAP1_VERTEX_4:
+ return 4;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glMap2d_size( GLenum e )
+{
+ switch( e ) {
+ case GL_MAP2_INDEX:
+ case GL_MAP2_TEXTURE_COORD_1:
+ return 1;
+ case GL_MAP2_TEXTURE_COORD_2:
+ return 2;
+ case GL_MAP2_NORMAL:
+ case GL_MAP2_TEXTURE_COORD_3:
+ case GL_MAP2_VERTEX_3:
+ return 3;
+ case GL_MAP2_COLOR_4:
+ case GL_MAP2_TEXTURE_COORD_4:
+ case GL_MAP2_VERTEX_4:
+ return 4;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glGetBooleanv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_CURRENT_INDEX:
+ case GL_CURRENT_RASTER_INDEX:
+ case GL_CURRENT_RASTER_POSITION_VALID:
+ case GL_CURRENT_RASTER_DISTANCE:
+ case GL_POINT_SMOOTH:
+ case GL_POINT_SIZE:
+ case GL_SMOOTH_POINT_SIZE_GRANULARITY:
+ case GL_LINE_SMOOTH:
+ case GL_LINE_WIDTH:
+ case GL_LINE_WIDTH_GRANULARITY:
+ case GL_LINE_STIPPLE:
+ case GL_LINE_STIPPLE_PATTERN:
+ case GL_LINE_STIPPLE_REPEAT:
+ case GL_LIST_MODE:
+ case GL_MAX_LIST_NESTING:
+ case GL_LIST_BASE:
+ case GL_LIST_INDEX:
+ case GL_POLYGON_SMOOTH:
+ case GL_POLYGON_STIPPLE:
+ case GL_EDGE_FLAG:
+ case GL_CULL_FACE:
+ case GL_CULL_FACE_MODE:
+ case GL_FRONT_FACE:
+ case GL_LIGHTING:
+ case GL_LIGHT_MODEL_LOCAL_VIEWER:
+ case GL_LIGHT_MODEL_TWO_SIDE:
+ case GL_SHADE_MODEL:
+ case GL_COLOR_MATERIAL_FACE:
+ case GL_COLOR_MATERIAL_PARAMETER:
+ case GL_COLOR_MATERIAL:
+ case GL_FOG:
+ case GL_FOG_INDEX:
+ case GL_FOG_DENSITY:
+ case GL_FOG_START:
+ case GL_FOG_END:
+ case GL_FOG_MODE:
+ case GL_DEPTH_TEST:
+ case GL_DEPTH_WRITEMASK:
+ case GL_DEPTH_CLEAR_VALUE:
+ case GL_DEPTH_FUNC:
+ case GL_STENCIL_TEST:
+ case GL_STENCIL_CLEAR_VALUE:
+ case GL_STENCIL_FUNC:
+ case GL_STENCIL_VALUE_MASK:
+ case GL_STENCIL_FAIL:
+ case GL_STENCIL_PASS_DEPTH_FAIL:
+ case GL_STENCIL_PASS_DEPTH_PASS:
+ case GL_STENCIL_REF:
+ case GL_STENCIL_WRITEMASK:
+ case GL_MATRIX_MODE:
+ case GL_NORMALIZE:
+ case GL_MODELVIEW_STACK_DEPTH:
+ case GL_PROJECTION_STACK_DEPTH:
+ case GL_TEXTURE_STACK_DEPTH:
+ case GL_ATTRIB_STACK_DEPTH:
+ case GL_CLIENT_ATTRIB_STACK_DEPTH:
+ case GL_ALPHA_TEST:
+ case GL_ALPHA_TEST_FUNC:
+ case GL_ALPHA_TEST_REF:
+ case GL_DITHER:
+ case GL_BLEND_DST:
+ case GL_BLEND_SRC:
+ case GL_BLEND:
+ case GL_LOGIC_OP_MODE:
+ case GL_LOGIC_OP:
+ case GL_AUX_BUFFERS:
+ case GL_DRAW_BUFFER:
+ case GL_READ_BUFFER:
+ case GL_SCISSOR_TEST:
+ case GL_INDEX_CLEAR_VALUE:
+ case GL_INDEX_WRITEMASK:
+ case GL_INDEX_MODE:
+ case GL_RGBA_MODE:
+ case GL_DOUBLEBUFFER:
+ case GL_STEREO:
+ case GL_RENDER_MODE:
+ case GL_PERSPECTIVE_CORRECTION_HINT:
+ case GL_POINT_SMOOTH_HINT:
+ case GL_LINE_SMOOTH_HINT:
+ case GL_POLYGON_SMOOTH_HINT:
+ case GL_FOG_HINT:
+ case GL_TEXTURE_GEN_S:
+ case GL_TEXTURE_GEN_T:
+ case GL_TEXTURE_GEN_R:
+ case GL_TEXTURE_GEN_Q:
+ case GL_PIXEL_MAP_I_TO_I:
+ case GL_PIXEL_MAP_I_TO_I_SIZE:
+ case GL_PIXEL_MAP_S_TO_S_SIZE:
+ case GL_PIXEL_MAP_I_TO_R_SIZE:
+ case GL_PIXEL_MAP_I_TO_G_SIZE:
+ case GL_PIXEL_MAP_I_TO_B_SIZE:
+ case GL_PIXEL_MAP_I_TO_A_SIZE:
+ case GL_PIXEL_MAP_R_TO_R_SIZE:
+ case GL_PIXEL_MAP_G_TO_G_SIZE:
+ case GL_PIXEL_MAP_B_TO_B_SIZE:
+ case GL_PIXEL_MAP_A_TO_A_SIZE:
+ case GL_UNPACK_SWAP_BYTES:
+ case GL_UNPACK_LSB_FIRST:
+ case GL_UNPACK_ROW_LENGTH:
+ case GL_UNPACK_SKIP_ROWS:
+ case GL_UNPACK_SKIP_PIXELS:
+ case GL_UNPACK_ALIGNMENT:
+ case GL_PACK_SWAP_BYTES:
+ case GL_PACK_LSB_FIRST:
+ case GL_PACK_ROW_LENGTH:
+ case GL_PACK_SKIP_ROWS:
+ case GL_PACK_SKIP_PIXELS:
+ case GL_PACK_ALIGNMENT:
+ case GL_MAP_COLOR:
+ case GL_MAP_STENCIL:
+ case GL_INDEX_SHIFT:
+ case GL_INDEX_OFFSET:
+ case GL_RED_SCALE:
+ case GL_RED_BIAS:
+ case GL_ZOOM_X:
+ case GL_ZOOM_Y:
+ case GL_GREEN_SCALE:
+ case GL_GREEN_BIAS:
+ case GL_BLUE_SCALE:
+ case GL_BLUE_BIAS:
+ case GL_ALPHA_SCALE:
+ case GL_ALPHA_BIAS:
+ case GL_DEPTH_SCALE:
+ case GL_DEPTH_BIAS:
+ case GL_MAX_EVAL_ORDER:
+ case GL_MAX_LIGHTS:
+ case GL_MAX_CLIP_PLANES:
+ case GL_MAX_TEXTURE_SIZE:
+ case GL_MAX_PIXEL_MAP_TABLE:
+ case GL_MAX_ATTRIB_STACK_DEPTH:
+ case GL_MAX_MODELVIEW_STACK_DEPTH:
+ case GL_MAX_NAME_STACK_DEPTH:
+ case GL_MAX_PROJECTION_STACK_DEPTH:
+ case GL_MAX_TEXTURE_STACK_DEPTH:
+ case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH:
+ case GL_SUBPIXEL_BITS:
+ case GL_INDEX_BITS:
+ case GL_RED_BITS:
+ case GL_GREEN_BITS:
+ case GL_BLUE_BITS:
+ case GL_ALPHA_BITS:
+ case GL_DEPTH_BITS:
+ case GL_STENCIL_BITS:
+ case GL_ACCUM_RED_BITS:
+ case GL_ACCUM_GREEN_BITS:
+ case GL_ACCUM_BLUE_BITS:
+ case GL_ACCUM_ALPHA_BITS:
+ case GL_NAME_STACK_DEPTH:
+ case GL_AUTO_NORMAL:
+ case GL_MAP1_COLOR_4:
+ case GL_MAP1_INDEX:
+ case GL_MAP1_NORMAL:
+ case GL_MAP1_TEXTURE_COORD_1:
+ case GL_MAP1_TEXTURE_COORD_2:
+ case GL_MAP1_TEXTURE_COORD_3:
+ case GL_MAP1_TEXTURE_COORD_4:
+ case GL_MAP1_VERTEX_3:
+ case GL_MAP1_VERTEX_4:
+ case GL_MAP2_COLOR_4:
+ case GL_MAP2_INDEX:
+ case GL_MAP2_NORMAL:
+ case GL_MAP2_TEXTURE_COORD_1:
+ case GL_MAP2_TEXTURE_COORD_2:
+ case GL_MAP2_TEXTURE_COORD_3:
+ case GL_MAP2_TEXTURE_COORD_4:
+ case GL_MAP2_VERTEX_3:
+ case GL_MAP2_VERTEX_4:
+ case GL_MAP1_GRID_SEGMENTS:
+ case GL_TEXTURE_1D:
+ case GL_TEXTURE_2D:
+ case GL_POLYGON_OFFSET_UNITS:
+ case GL_CLIP_PLANE0:
+ case GL_CLIP_PLANE1:
+ case GL_CLIP_PLANE2:
+ case GL_CLIP_PLANE3:
+ case GL_CLIP_PLANE4:
+ case GL_CLIP_PLANE5:
+ case GL_LIGHT0:
+ case GL_LIGHT1:
+ case GL_LIGHT2:
+ case GL_LIGHT3:
+ case GL_LIGHT4:
+ case GL_LIGHT5:
+ case GL_LIGHT6:
+ case GL_LIGHT7:
+ case GL_BLEND_EQUATION:
+/* case GL_BLEND_EQUATION_EXT:*/
+ case GL_CONVOLUTION_1D:
+ case GL_CONVOLUTION_2D:
+ case GL_SEPARABLE_2D:
+ case GL_MAX_CONVOLUTION_WIDTH:
+/* case GL_MAX_CONVOLUTION_WIDTH_EXT:*/
+ case GL_MAX_CONVOLUTION_HEIGHT:
+/* case GL_MAX_CONVOLUTION_HEIGHT_EXT:*/
+ case GL_POST_CONVOLUTION_RED_SCALE:
+/* case GL_POST_CONVOLUTION_RED_SCALE_EXT:*/
+ case GL_POST_CONVOLUTION_GREEN_SCALE:
+/* case GL_POST_CONVOLUTION_GREEN_SCALE_EXT:*/
+ case GL_POST_CONVOLUTION_BLUE_SCALE:
+/* case GL_POST_CONVOLUTION_BLUE_SCALE_EXT:*/
+ case GL_POST_CONVOLUTION_ALPHA_SCALE:
+/* case GL_POST_CONVOLUTION_ALPHA_SCALE_EXT:*/
+ case GL_POST_CONVOLUTION_RED_BIAS:
+/* case GL_POST_CONVOLUTION_RED_BIAS_EXT:*/
+ case GL_POST_CONVOLUTION_GREEN_BIAS:
+/* case GL_POST_CONVOLUTION_GREEN_BIAS_EXT:*/
+ case GL_POST_CONVOLUTION_BLUE_BIAS:
+/* case GL_POST_CONVOLUTION_BLUE_BIAS_EXT:*/
+ case GL_POST_CONVOLUTION_ALPHA_BIAS:
+/* case GL_POST_CONVOLUTION_ALPHA_BIAS_EXT:*/
+ case GL_HISTOGRAM:
+ case GL_MINMAX:
+ case GL_POLYGON_OFFSET_FACTOR:
+ case GL_RESCALE_NORMAL:
+/* case GL_RESCALE_NORMAL_EXT:*/
+ case GL_TEXTURE_BINDING_1D:
+ case GL_TEXTURE_BINDING_2D:
+ case GL_TEXTURE_BINDING_3D:
+ case GL_PACK_SKIP_IMAGES:
+ case GL_PACK_IMAGE_HEIGHT:
+ case GL_UNPACK_SKIP_IMAGES:
+ case GL_UNPACK_IMAGE_HEIGHT:
+ case GL_TEXTURE_3D:
+ case GL_MAX_3D_TEXTURE_SIZE:
+ case GL_VERTEX_ARRAY:
+ case GL_NORMAL_ARRAY:
+ case GL_COLOR_ARRAY:
+ case GL_INDEX_ARRAY:
+ case GL_TEXTURE_COORD_ARRAY:
+ case GL_EDGE_FLAG_ARRAY:
+ case GL_VERTEX_ARRAY_SIZE:
+ case GL_VERTEX_ARRAY_TYPE:
+ case GL_VERTEX_ARRAY_STRIDE:
+ case GL_NORMAL_ARRAY_TYPE:
+ case GL_NORMAL_ARRAY_STRIDE:
+ case GL_COLOR_ARRAY_SIZE:
+ case GL_COLOR_ARRAY_TYPE:
+ case GL_COLOR_ARRAY_STRIDE:
+ case GL_INDEX_ARRAY_TYPE:
+ case GL_INDEX_ARRAY_STRIDE:
+ case GL_TEXTURE_COORD_ARRAY_SIZE:
+ case GL_TEXTURE_COORD_ARRAY_TYPE:
+ case GL_TEXTURE_COORD_ARRAY_STRIDE:
+ case GL_EDGE_FLAG_ARRAY_STRIDE:
+ case GL_MULTISAMPLE:
+/* case GL_MULTISAMPLE_ARB:*/
+ case GL_SAMPLE_ALPHA_TO_COVERAGE:
+/* case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB:*/
+ case GL_SAMPLE_ALPHA_TO_ONE:
+/* case GL_SAMPLE_ALPHA_TO_ONE_ARB:*/
+ case GL_SAMPLE_COVERAGE:
+/* case GL_SAMPLE_COVERAGE_ARB:*/
+ case GL_SAMPLE_BUFFERS:
+/* case GL_SAMPLE_BUFFERS_ARB:*/
+ case GL_SAMPLES:
+/* case GL_SAMPLES_ARB:*/
+ case GL_SAMPLE_COVERAGE_VALUE:
+/* case GL_SAMPLE_COVERAGE_VALUE_ARB:*/
+ case GL_SAMPLE_COVERAGE_INVERT:
+/* case GL_SAMPLE_COVERAGE_INVERT_ARB:*/
+ case GL_COLOR_MATRIX_STACK_DEPTH:
+ case GL_MAX_COLOR_MATRIX_STACK_DEPTH:
+ case GL_POST_COLOR_MATRIX_RED_SCALE:
+ case GL_POST_COLOR_MATRIX_GREEN_SCALE:
+ case GL_POST_COLOR_MATRIX_BLUE_SCALE:
+ case GL_POST_COLOR_MATRIX_ALPHA_SCALE:
+ case GL_POST_COLOR_MATRIX_RED_BIAS:
+ case GL_POST_COLOR_MATRIX_GREEN_BIAS:
+ case GL_POST_COLOR_MATRIX_BLUE_BIAS:
+ case GL_POST_COLOR_MATRIX_ALPHA_BIAS:
+ case GL_BLEND_DST_RGB:
+ case GL_BLEND_SRC_RGB:
+ case GL_BLEND_DST_ALPHA:
+ case GL_BLEND_SRC_ALPHA:
+ case GL_COLOR_TABLE:
+ case GL_POST_CONVOLUTION_COLOR_TABLE:
+ case GL_POST_COLOR_MATRIX_COLOR_TABLE:
+ case GL_MAX_ELEMENTS_VERTICES:
+ case GL_MAX_ELEMENTS_INDICES:
+ case GL_CLIP_VOLUME_CLIPPING_HINT_EXT:
+ case GL_POINT_SIZE_MIN:
+ case GL_POINT_SIZE_MAX:
+ case GL_POINT_FADE_THRESHOLD_SIZE:
+ case GL_OCCLUSION_TEST_HP:
+ case GL_OCCLUSION_TEST_RESULT_HP:
+ case GL_LIGHT_MODEL_COLOR_CONTROL:
+ case GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB:
+/* case GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH:*/
+ case GL_RESET_NOTIFICATION_STRATEGY_ARB:
+ case GL_MAX_DEBUG_GROUP_STACK_DEPTH:
+ case GL_DEBUG_GROUP_STACK_DEPTH:
+ case GL_MAX_LABEL_LENGTH:
+ case GL_CURRENT_FOG_COORD:
+ case GL_FOG_COORDINATE_ARRAY_TYPE:
+ case GL_FOG_COORDINATE_ARRAY_STRIDE:
+ case GL_FOG_COORD_ARRAY:
+ case GL_COLOR_SUM_ARB:
+ case GL_SECONDARY_COLOR_ARRAY_SIZE:
+ case GL_SECONDARY_COLOR_ARRAY_TYPE:
+ case GL_SECONDARY_COLOR_ARRAY_STRIDE:
+ case GL_SECONDARY_COLOR_ARRAY:
+ case GL_ACTIVE_TEXTURE:
+/* case GL_ACTIVE_TEXTURE_ARB:*/
+ case GL_CLIENT_ACTIVE_TEXTURE:
+/* case GL_CLIENT_ACTIVE_TEXTURE_ARB:*/
+ case GL_MAX_TEXTURE_UNITS:
+/* case GL_MAX_TEXTURE_UNITS_ARB:*/
+ case GL_MAX_RENDERBUFFER_SIZE:
+/* case GL_MAX_RENDERBUFFER_SIZE_EXT:*/
+ case GL_TEXTURE_COMPRESSION_HINT:
+/* case GL_TEXTURE_COMPRESSION_HINT_ARB:*/
+ case GL_TEXTURE_RECTANGLE_ARB:
+/* case GL_TEXTURE_RECTANGLE_NV:*/
+ case GL_TEXTURE_BINDING_RECTANGLE_ARB:
+/* case GL_TEXTURE_BINDING_RECTANGLE_NV:*/
+ case GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB:
+/* case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV:*/
+ case GL_MAX_TEXTURE_LOD_BIAS:
+ case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
+ case GL_MAX_SHININESS_NV:
+ case GL_MAX_SPOT_EXPONENT_NV:
+ case GL_TEXTURE_CUBE_MAP:
+/* case GL_TEXTURE_CUBE_MAP_ARB:*/
+ case GL_TEXTURE_BINDING_CUBE_MAP:
+/* case GL_TEXTURE_BINDING_CUBE_MAP_ARB:*/
+ case GL_MAX_CUBE_MAP_TEXTURE_SIZE:
+/* case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB:*/
+ case GL_MULTISAMPLE_FILTER_HINT_NV:
+ case GL_FOG_DISTANCE_MODE_NV:
+ case GL_VERTEX_PROGRAM_ARB:
+ case GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB:
+ case GL_MAX_PROGRAM_MATRICES_ARB:
+ case GL_CURRENT_MATRIX_STACK_DEPTH_ARB:
+ case GL_VERTEX_PROGRAM_POINT_SIZE_ARB:
+ case GL_VERTEX_PROGRAM_TWO_SIDE_ARB:
+ case GL_PROGRAM_ERROR_POSITION_ARB:
+ case GL_DEPTH_CLAMP:
+/* case GL_DEPTH_CLAMP_NV:*/
+ case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
+/* case GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB:*/
+ case GL_MAX_VERTEX_UNITS_ARB:
+ case GL_ACTIVE_VERTEX_UNITS_ARB:
+ case GL_WEIGHT_SUM_UNITY_ARB:
+ case GL_VERTEX_BLEND_ARB:
+ case GL_CURRENT_WEIGHT_ARB:
+ case GL_WEIGHT_ARRAY_TYPE_ARB:
+ case GL_WEIGHT_ARRAY_STRIDE_ARB:
+ case GL_WEIGHT_ARRAY_SIZE_ARB:
+ case GL_WEIGHT_ARRAY_ARB:
+ case GL_PACK_INVERT_MESA:
+ case GL_STENCIL_BACK_FUNC_ATI:
+ case GL_STENCIL_BACK_FAIL_ATI:
+ case GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI:
+ case GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI:
+ case GL_FRAGMENT_PROGRAM_ARB:
+ case GL_MAX_DRAW_BUFFERS_ARB:
+/* case GL_MAX_DRAW_BUFFERS_ATI:*/
+ case GL_DRAW_BUFFER0_ARB:
+/* case GL_DRAW_BUFFER0_ATI:*/
+ case GL_DRAW_BUFFER1_ARB:
+/* case GL_DRAW_BUFFER1_ATI:*/
+ case GL_DRAW_BUFFER2_ARB:
+/* case GL_DRAW_BUFFER2_ATI:*/
+ case GL_DRAW_BUFFER3_ARB:
+/* case GL_DRAW_BUFFER3_ATI:*/
+ case GL_DRAW_BUFFER4_ARB:
+/* case GL_DRAW_BUFFER4_ATI:*/
+ case GL_DRAW_BUFFER5_ARB:
+/* case GL_DRAW_BUFFER5_ATI:*/
+ case GL_DRAW_BUFFER6_ARB:
+/* case GL_DRAW_BUFFER6_ATI:*/
+ case GL_DRAW_BUFFER7_ARB:
+/* case GL_DRAW_BUFFER7_ATI:*/
+ case GL_DRAW_BUFFER8_ARB:
+/* case GL_DRAW_BUFFER8_ATI:*/
+ case GL_DRAW_BUFFER9_ARB:
+/* case GL_DRAW_BUFFER9_ATI:*/
+ case GL_DRAW_BUFFER10_ARB:
+/* case GL_DRAW_BUFFER10_ATI:*/
+ case GL_DRAW_BUFFER11_ARB:
+/* case GL_DRAW_BUFFER11_ATI:*/
+ case GL_DRAW_BUFFER12_ARB:
+/* case GL_DRAW_BUFFER12_ATI:*/
+ case GL_DRAW_BUFFER13_ARB:
+/* case GL_DRAW_BUFFER13_ATI:*/
+ case GL_DRAW_BUFFER14_ARB:
+/* case GL_DRAW_BUFFER14_ATI:*/
+ case GL_DRAW_BUFFER15_ARB:
+/* case GL_DRAW_BUFFER15_ATI:*/
+ case GL_BLEND_EQUATION_ALPHA_EXT:
+ case GL_MATRIX_PALETTE_ARB:
+ case GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB:
+ case GL_MAX_PALETTE_MATRICES_ARB:
+ case GL_CURRENT_PALETTE_MATRIX_ARB:
+ case GL_MATRIX_INDEX_ARRAY_ARB:
+ case GL_CURRENT_MATRIX_INDEX_ARB:
+ case GL_MATRIX_INDEX_ARRAY_SIZE_ARB:
+ case GL_MATRIX_INDEX_ARRAY_TYPE_ARB:
+ case GL_MATRIX_INDEX_ARRAY_STRIDE_ARB:
+ case GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT:
+ case GL_TEXTURE_CUBE_MAP_SEAMLESS:
+ case GL_POINT_SPRITE_ARB:
+/* case GL_POINT_SPRITE_NV:*/
+ case GL_POINT_SPRITE_R_MODE_NV:
+ case GL_MAX_VERTEX_ATTRIBS_ARB:
+ case GL_MAX_TEXTURE_COORDS_ARB:
+ case GL_MAX_TEXTURE_IMAGE_UNITS_ARB:
+ case GL_DEPTH_BOUNDS_TEST_EXT:
+ case GL_ARRAY_BUFFER_BINDING_ARB:
+ case GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB:
+ case GL_VERTEX_ARRAY_BUFFER_BINDING_ARB:
+ case GL_NORMAL_ARRAY_BUFFER_BINDING_ARB:
+ case GL_COLOR_ARRAY_BUFFER_BINDING_ARB:
+ case GL_INDEX_ARRAY_BUFFER_BINDING_ARB:
+ case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB:
+ case GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB:
+ case GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB:
+ case GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB:
+ case GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB:
+ case GL_MAX_ARRAY_TEXTURE_LAYERS_EXT:
+ case GL_STENCIL_TEST_TWO_SIDE_EXT:
+ case GL_ACTIVE_STENCIL_FACE_EXT:
+ case GL_SAMPLER_BINDING:
+ case GL_TEXTURE_BINDING_1D_ARRAY_EXT:
+ case GL_TEXTURE_BINDING_2D_ARRAY_EXT:
+ case GL_FRAMEBUFFER_BINDING:
+/* case GL_DRAW_FRAMEBUFFER_BINDING_EXT:*/
+ case GL_RENDERBUFFER_BINDING:
+/* case GL_RENDERBUFFER_BINDING_EXT:*/
+ case GL_READ_FRAMEBUFFER_BINDING:
+/* case GL_READ_FRAMEBUFFER_BINDING_EXT:*/
+ case GL_MAX_COLOR_ATTACHMENTS:
+/* case GL_MAX_COLOR_ATTACHMENTS_EXT:*/
+ case GL_MAX_SAMPLES:
+/* case GL_MAX_SAMPLES_EXT:*/
+ case GL_MAX_SERVER_WAIT_TIMEOUT:
+ case GL_MAX_DEBUG_MESSAGE_LENGTH_ARB:
+/* case GL_MAX_DEBUG_MESSAGE_LENGTH:*/
+ case GL_MAX_DEBUG_LOGGED_MESSAGES_ARB:
+/* case GL_MAX_DEBUG_LOGGED_MESSAGES:*/
+ case GL_DEBUG_LOGGED_MESSAGES_ARB:
+/* case GL_DEBUG_LOGGED_MESSAGES:*/
+ case GL_RASTER_POSITION_UNCLIPPED_IBM:
+ return 1;
+ case GL_SMOOTH_POINT_SIZE_RANGE:
+ case GL_LINE_WIDTH_RANGE:
+ case GL_POLYGON_MODE:
+ case GL_DEPTH_RANGE:
+ case GL_MAX_VIEWPORT_DIMS:
+ case GL_MAP1_GRID_DOMAIN:
+ case GL_MAP2_GRID_SEGMENTS:
+ case GL_ALIASED_POINT_SIZE_RANGE:
+ case GL_ALIASED_LINE_WIDTH_RANGE:
+ case GL_DEPTH_BOUNDS_EXT:
+ return 2;
+ case GL_CURRENT_NORMAL:
+ case GL_POINT_DISTANCE_ATTENUATION:
+ return 3;
+ case GL_CURRENT_COLOR:
+ case GL_CURRENT_TEXTURE_COORDS:
+ case GL_CURRENT_RASTER_COLOR:
+ case GL_CURRENT_RASTER_TEXTURE_COORDS:
+ case GL_CURRENT_RASTER_POSITION:
+ case GL_LIGHT_MODEL_AMBIENT:
+ case GL_FOG_COLOR:
+ case GL_ACCUM_CLEAR_VALUE:
+ case GL_VIEWPORT:
+ case GL_SCISSOR_BOX:
+ case GL_COLOR_CLEAR_VALUE:
+ case GL_COLOR_WRITEMASK:
+ case GL_MAP2_GRID_DOMAIN:
+ case GL_BLEND_COLOR:
+/* case GL_BLEND_COLOR_EXT:*/
+ case GL_CURRENT_SECONDARY_COLOR:
+ return 4;
+ case GL_MODELVIEW_MATRIX:
+ case GL_PROJECTION_MATRIX:
+ case GL_TEXTURE_MATRIX:
+ case GL_MODELVIEW0_ARB:
+ case GL_COLOR_MATRIX:
+ case GL_MODELVIEW1_ARB:
+ case GL_CURRENT_MATRIX_ARB:
+ case GL_MODELVIEW2_ARB:
+ case GL_MODELVIEW3_ARB:
+ case GL_MODELVIEW4_ARB:
+ case GL_MODELVIEW5_ARB:
+ case GL_MODELVIEW6_ARB:
+ case GL_MODELVIEW7_ARB:
+ case GL_MODELVIEW8_ARB:
+ case GL_MODELVIEW9_ARB:
+ case GL_MODELVIEW10_ARB:
+ case GL_MODELVIEW11_ARB:
+ case GL_MODELVIEW12_ARB:
+ case GL_MODELVIEW13_ARB:
+ case GL_MODELVIEW14_ARB:
+ case GL_MODELVIEW15_ARB:
+ case GL_MODELVIEW16_ARB:
+ case GL_MODELVIEW17_ARB:
+ case GL_MODELVIEW18_ARB:
+ case GL_MODELVIEW19_ARB:
+ case GL_MODELVIEW20_ARB:
+ case GL_MODELVIEW21_ARB:
+ case GL_MODELVIEW22_ARB:
+ case GL_MODELVIEW23_ARB:
+ case GL_MODELVIEW24_ARB:
+ case GL_MODELVIEW25_ARB:
+ case GL_MODELVIEW26_ARB:
+ case GL_MODELVIEW27_ARB:
+ case GL_MODELVIEW28_ARB:
+ case GL_MODELVIEW29_ARB:
+ case GL_MODELVIEW30_ARB:
+ case GL_MODELVIEW31_ARB:
+ case GL_TRANSPOSE_CURRENT_MATRIX_ARB:
+ return 16;
+ case GL_FOG_COORDINATE_SOURCE:
+ case GL_COMPRESSED_TEXTURE_FORMATS:
+ case GL_MIN_PROGRAM_TEXEL_OFFSET:
+ case GL_MAX_PROGRAM_TEXEL_OFFSET:
+ case GL_RGBA_INTEGER_MODE_EXT:
+ return __glGetBooleanv_variable_size( e );
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glGetTexParameterfv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_TEXTURE_MAG_FILTER:
+ case GL_TEXTURE_MIN_FILTER:
+ case GL_TEXTURE_WRAP_S:
+ case GL_TEXTURE_WRAP_T:
+ case GL_TEXTURE_PRIORITY:
+ case GL_TEXTURE_RESIDENT:
+ case GL_TEXTURE_WRAP_R:
+ case GL_TEXTURE_COMPARE_FAIL_VALUE_ARB:
+/* case GL_SHADOW_AMBIENT_SGIX:*/
+ case GL_TEXTURE_MIN_LOD:
+ case GL_TEXTURE_MAX_LOD:
+ case GL_TEXTURE_BASE_LEVEL:
+ case GL_TEXTURE_MAX_LEVEL:
+ case GL_TEXTURE_CLIPMAP_FRAME_SGIX:
+ case GL_TEXTURE_LOD_BIAS_S_SGIX:
+ case GL_TEXTURE_LOD_BIAS_T_SGIX:
+ case GL_TEXTURE_LOD_BIAS_R_SGIX:
+ case GL_GENERATE_MIPMAP:
+/* case GL_GENERATE_MIPMAP_SGIS:*/
+ case GL_TEXTURE_COMPARE_SGIX:
+ case GL_TEXTURE_COMPARE_OPERATOR_SGIX:
+ case GL_TEXTURE_MAX_CLAMP_S_SGIX:
+ case GL_TEXTURE_MAX_CLAMP_T_SGIX:
+ case GL_TEXTURE_MAX_CLAMP_R_SGIX:
+ case GL_TEXTURE_MAX_ANISOTROPY_EXT:
+ case GL_TEXTURE_LOD_BIAS:
+/* case GL_TEXTURE_LOD_BIAS_EXT:*/
+ case GL_TEXTURE_RANGE_LENGTH_APPLE:
+ case GL_TEXTURE_STORAGE_HINT_APPLE:
+ case GL_DEPTH_TEXTURE_MODE:
+/* case GL_DEPTH_TEXTURE_MODE_ARB:*/
+ case GL_TEXTURE_COMPARE_MODE:
+/* case GL_TEXTURE_COMPARE_MODE_ARB:*/
+ case GL_TEXTURE_COMPARE_FUNC:
+/* case GL_TEXTURE_COMPARE_FUNC_ARB:*/
+ case GL_TEXTURE_UNSIGNED_REMAP_MODE_NV:
+ return 1;
+ case GL_TEXTURE_CLIPMAP_CENTER_SGIX:
+ case GL_TEXTURE_CLIPMAP_OFFSET_SGIX:
+ return 2;
+ case GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX:
+ return 3;
+ case GL_TEXTURE_BORDER_COLOR:
+ case GL_POST_TEXTURE_FILTER_BIAS_SGIX:
+ case GL_POST_TEXTURE_FILTER_SCALE_SGIX:
+ return 4;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glGetTexLevelParameterfv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_TEXTURE_WIDTH:
+ case GL_TEXTURE_HEIGHT:
+ case GL_TEXTURE_COMPONENTS:
+ case GL_TEXTURE_BORDER:
+ case GL_TEXTURE_RED_SIZE:
+/* case GL_TEXTURE_RED_SIZE_EXT:*/
+ case GL_TEXTURE_GREEN_SIZE:
+/* case GL_TEXTURE_GREEN_SIZE_EXT:*/
+ case GL_TEXTURE_BLUE_SIZE:
+/* case GL_TEXTURE_BLUE_SIZE_EXT:*/
+ case GL_TEXTURE_ALPHA_SIZE:
+/* case GL_TEXTURE_ALPHA_SIZE_EXT:*/
+ case GL_TEXTURE_LUMINANCE_SIZE:
+/* case GL_TEXTURE_LUMINANCE_SIZE_EXT:*/
+ case GL_TEXTURE_INTENSITY_SIZE:
+/* case GL_TEXTURE_INTENSITY_SIZE_EXT:*/
+ case GL_TEXTURE_DEPTH:
+ case GL_TEXTURE_INDEX_SIZE_EXT:
+ case GL_TEXTURE_COMPRESSED_IMAGE_SIZE:
+/* case GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB:*/
+ case GL_TEXTURE_COMPRESSED:
+/* case GL_TEXTURE_COMPRESSED_ARB:*/
+ case GL_TEXTURE_DEPTH_SIZE:
+/* case GL_TEXTURE_DEPTH_SIZE_ARB:*/
+ case GL_TEXTURE_STENCIL_SIZE:
+/* case GL_TEXTURE_STENCIL_SIZE_EXT:*/
+ return 1;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glGetPointerv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_DEBUG_CALLBACK_FUNCTION_ARB:
+/* case GL_DEBUG_CALLBACK_FUNCTION:*/
+ case GL_DEBUG_CALLBACK_USER_PARAM_ARB:
+/* case GL_DEBUG_CALLBACK_USER_PARAM:*/
+ return 1;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glColorTableParameterfv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_COLOR_TABLE_SCALE:
+ case GL_COLOR_TABLE_BIAS:
+ return 4;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glGetColorTableParameterfv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_COLOR_TABLE_FORMAT:
+/* case GL_COLOR_TABLE_FORMAT_EXT:*/
+ case GL_COLOR_TABLE_WIDTH:
+/* case GL_COLOR_TABLE_WIDTH_EXT:*/
+ case GL_COLOR_TABLE_RED_SIZE:
+/* case GL_COLOR_TABLE_RED_SIZE_EXT:*/
+ case GL_COLOR_TABLE_GREEN_SIZE:
+/* case GL_COLOR_TABLE_GREEN_SIZE_EXT:*/
+ case GL_COLOR_TABLE_BLUE_SIZE:
+/* case GL_COLOR_TABLE_BLUE_SIZE_EXT:*/
+ case GL_COLOR_TABLE_ALPHA_SIZE:
+/* case GL_COLOR_TABLE_ALPHA_SIZE_EXT:*/
+ case GL_COLOR_TABLE_LUMINANCE_SIZE:
+/* case GL_COLOR_TABLE_LUMINANCE_SIZE_EXT:*/
+ case GL_COLOR_TABLE_INTENSITY_SIZE:
+/* case GL_COLOR_TABLE_INTENSITY_SIZE_EXT:*/
+ return 1;
+ case GL_COLOR_TABLE_SCALE:
+ case GL_COLOR_TABLE_BIAS:
+ return 4;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glConvolutionParameterfv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_CONVOLUTION_BORDER_MODE:
+/* case GL_CONVOLUTION_BORDER_MODE_EXT:*/
+ return 1;
+ case GL_CONVOLUTION_FILTER_SCALE:
+/* case GL_CONVOLUTION_FILTER_SCALE_EXT:*/
+ case GL_CONVOLUTION_FILTER_BIAS:
+/* case GL_CONVOLUTION_FILTER_BIAS_EXT:*/
+ case GL_CONVOLUTION_BORDER_COLOR:
+/* case GL_CONVOLUTION_BORDER_COLOR_HP:*/
+ return 4;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glGetConvolutionParameterfv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_CONVOLUTION_BORDER_MODE:
+/* case GL_CONVOLUTION_BORDER_MODE_EXT:*/
+ case GL_CONVOLUTION_FORMAT:
+/* case GL_CONVOLUTION_FORMAT_EXT:*/
+ case GL_CONVOLUTION_WIDTH:
+/* case GL_CONVOLUTION_WIDTH_EXT:*/
+ case GL_CONVOLUTION_HEIGHT:
+/* case GL_CONVOLUTION_HEIGHT_EXT:*/
+ case GL_MAX_CONVOLUTION_WIDTH:
+/* case GL_MAX_CONVOLUTION_WIDTH_EXT:*/
+ case GL_MAX_CONVOLUTION_HEIGHT:
+/* case GL_MAX_CONVOLUTION_HEIGHT_EXT:*/
+ return 1;
+ case GL_CONVOLUTION_FILTER_SCALE:
+/* case GL_CONVOLUTION_FILTER_SCALE_EXT:*/
+ case GL_CONVOLUTION_FILTER_BIAS:
+/* case GL_CONVOLUTION_FILTER_BIAS_EXT:*/
+ case GL_CONVOLUTION_BORDER_COLOR:
+/* case GL_CONVOLUTION_BORDER_COLOR_HP:*/
+ return 4;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glGetHistogramParameterfv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_HISTOGRAM_WIDTH:
+ case GL_HISTOGRAM_FORMAT:
+ case GL_HISTOGRAM_RED_SIZE:
+ case GL_HISTOGRAM_GREEN_SIZE:
+ case GL_HISTOGRAM_BLUE_SIZE:
+ case GL_HISTOGRAM_ALPHA_SIZE:
+ case GL_HISTOGRAM_LUMINANCE_SIZE:
+ case GL_HISTOGRAM_SINK:
+ return 1;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glGetMinmaxParameterfv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_MINMAX_FORMAT:
+ case GL_MINMAX_SINK:
+ return 1;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glPointParameterfv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_POINT_SIZE_MIN:
+/* case GL_POINT_SIZE_MIN_ARB:*/
+/* case GL_POINT_SIZE_MIN_SGIS:*/
+ case GL_POINT_SIZE_MAX:
+/* case GL_POINT_SIZE_MAX_ARB:*/
+/* case GL_POINT_SIZE_MAX_SGIS:*/
+ case GL_POINT_FADE_THRESHOLD_SIZE:
+/* case GL_POINT_FADE_THRESHOLD_SIZE_ARB:*/
+/* case GL_POINT_FADE_THRESHOLD_SIZE_SGIS:*/
+ case GL_POINT_SPRITE_R_MODE_NV:
+ case GL_POINT_SPRITE_COORD_ORIGIN:
+ return 1;
+ case GL_POINT_DISTANCE_ATTENUATION:
+/* case GL_POINT_DISTANCE_ATTENUATION_ARB:*/
+/* case GL_POINT_DISTANCE_ATTENUATION_SGIS:*/
+ return 3;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glGetQueryObjectiv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_QUERY_RESULT_ARB:
+ case GL_QUERY_RESULT_AVAILABLE_ARB:
+ return 1;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glGetQueryiv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_QUERY_COUNTER_BITS_ARB:
+ case GL_CURRENT_QUERY_ARB:
+ case GL_ANY_SAMPLES_PASSED:
+ return 1;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glGetVertexAttribdv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_VERTEX_PROGRAM_ARB:
+ case GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB:
+ case GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB:
+ case GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB:
+ case GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB:
+ case GL_CURRENT_VERTEX_ATTRIB_ARB:
+ case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB:
+ return 1;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glGetProgramivARB_size( GLenum e )
+{
+ switch( e ) {
+ case GL_PROGRAM_LENGTH_ARB:
+ case GL_PROGRAM_BINDING_ARB:
+ case GL_PROGRAM_ALU_INSTRUCTIONS_ARB:
+ case GL_PROGRAM_TEX_INSTRUCTIONS_ARB:
+ case GL_PROGRAM_TEX_INDIRECTIONS_ARB:
+ case GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB:
+ case GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB:
+ case GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB:
+ case GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB:
+ case GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB:
+ case GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB:
+ case GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB:
+ case GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB:
+ case GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB:
+ case GL_PROGRAM_FORMAT_ARB:
+ case GL_PROGRAM_INSTRUCTIONS_ARB:
+ case GL_MAX_PROGRAM_INSTRUCTIONS_ARB:
+ case GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB:
+ case GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB:
+ case GL_PROGRAM_TEMPORARIES_ARB:
+ case GL_MAX_PROGRAM_TEMPORARIES_ARB:
+ case GL_PROGRAM_NATIVE_TEMPORARIES_ARB:
+ case GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB:
+ case GL_PROGRAM_PARAMETERS_ARB:
+ case GL_MAX_PROGRAM_PARAMETERS_ARB:
+ case GL_PROGRAM_NATIVE_PARAMETERS_ARB:
+ case GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB:
+ case GL_PROGRAM_ATTRIBS_ARB:
+ case GL_MAX_PROGRAM_ATTRIBS_ARB:
+ case GL_PROGRAM_NATIVE_ATTRIBS_ARB:
+ case GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB:
+ case GL_PROGRAM_ADDRESS_REGISTERS_ARB:
+ case GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB:
+ case GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB:
+ case GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB:
+ case GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB:
+ case GL_MAX_PROGRAM_ENV_PARAMETERS_ARB:
+ case GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB:
+ case GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV:
+ case GL_MAX_PROGRAM_CALL_DEPTH_NV:
+ case GL_MAX_PROGRAM_IF_DEPTH_NV:
+ case GL_MAX_PROGRAM_LOOP_DEPTH_NV:
+ case GL_MAX_PROGRAM_LOOP_COUNT_NV:
+ return 1;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glGetFramebufferAttachmentParameteriv_size( GLenum e )
+{
+ switch( e ) {
+ case GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:
+ case GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:
+ case GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE:
+ case GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:
+ case GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:
+ case GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:
+ case GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:
+ case GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:
+ case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:
+/* case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT:*/
+ case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:
+/* case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT:*/
+ case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:
+/* case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT:*/
+ case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:
+/* case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT:*/
+ case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT:
+ return 1;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glGetProgramivNV_size( GLenum e )
+{
+ switch( e ) {
+ case GL_PROGRAM_LENGTH_NV:
+ case GL_PROGRAM_TARGET_NV:
+ case GL_PROGRAM_RESIDENT_NV:
+ return 1;
+ default: return 0;
+ }
+}
+
+_X_INTERNAL PURE FASTCALL GLint
+__glGetVertexAttribdvNV_size( GLenum e )
+{
+ switch( e ) {
+ case GL_ATTRIB_ARRAY_SIZE_NV:
+ case GL_ATTRIB_ARRAY_STRIDE_NV:
+ case GL_ATTRIB_ARRAY_TYPE_NV:
+ case GL_CURRENT_ATTRIB_NV:
+ return 1;
+ default: return 0;
+ }
+}
+
+ALIAS( Fogiv, Fogfv )
+ALIAS( Lightiv, Lightfv )
+ALIAS( LightModeliv, LightModelfv )
+ALIAS( Materialiv, Materialfv )
+ALIAS( TexParameteriv, TexParameterfv )
+ALIAS( TexEnviv, TexEnvfv )
+ALIAS( TexGenfv, TexGendv )
+ALIAS( TexGeniv, TexGendv )
+ALIAS( Map1f, Map1d )
+ALIAS( Map2f, Map2d )
+ALIAS( GetDoublev, GetBooleanv )
+ALIAS( GetFloatv, GetBooleanv )
+ALIAS( GetIntegerv, GetBooleanv )
+ALIAS( GetLightfv, Lightfv )
+ALIAS( GetLightiv, Lightfv )
+ALIAS( GetMaterialfv, Materialfv )
+ALIAS( GetMaterialiv, Materialfv )
+ALIAS( GetTexEnvfv, TexEnvfv )
+ALIAS( GetTexEnviv, TexEnvfv )
+ALIAS( GetTexGendv, TexGendv )
+ALIAS( GetTexGenfv, TexGendv )
+ALIAS( GetTexGeniv, TexGendv )
+ALIAS( GetTexParameteriv, GetTexParameterfv )
+ALIAS( GetTexLevelParameteriv, GetTexLevelParameterfv )
+ALIAS( ColorTableParameteriv, ColorTableParameterfv )
+ALIAS( GetColorTableParameteriv, GetColorTableParameterfv )
+ALIAS( ConvolutionParameteriv, ConvolutionParameterfv )
+ALIAS( GetConvolutionParameteriv, GetConvolutionParameterfv )
+ALIAS( GetHistogramParameteriv, GetHistogramParameterfv )
+ALIAS( GetMinmaxParameteriv, GetMinmaxParameterfv )
+ALIAS( PointParameteriv, PointParameterfv )
+ALIAS( GetQueryObjectuiv, GetQueryObjectiv )
+ALIAS( GetVertexAttribfv, GetVertexAttribdv )
+ALIAS( GetVertexAttribiv, GetVertexAttribdv )
+ALIAS( GetVertexAttribfvNV, GetVertexAttribdvNV )
+ALIAS( GetVertexAttribivNV, GetVertexAttribdvNV )
+
+# undef PURE
+# undef FASTCALL
diff --git a/xorg-server/glx/indirect_size_get.h b/xorg-server/glx/indirect_size_get.h
index 9b6203669..b259b269f 100644
--- a/xorg-server/glx/indirect_size_get.h
+++ b/xorg-server/glx/indirect_size_get.h
@@ -1,93 +1,121 @@
-/* DO NOT EDIT - This file generated automatically by glX_proto_size.py (from Mesa) script */
-
-/*
- * (C) Copyright IBM Corporation 2004
- * 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
- * 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 THEIR 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.
- */
-
-#if !defined( _INDIRECT_SIZE_GET_H_ )
-#define _INDIRECT_SIZE_GET_H_
-
-/**
- * \file
- * Prototypes for functions used to determine the number of data elements in
- * various GLX protocol messages.
- *
- * \author Ian Romanick <idr@us.ibm.com>
- */
-
-#include <X11/Xfuncproto.h>
-
-#if defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
-#define PURE __attribute__((pure))
-#else
-#define PURE
-#endif
-
-#if defined(__i386__) && defined(__GNUC__) && !defined(__CYGWIN__) && !defined(__MINGW32__)
-#define FASTCALL __attribute__((fastcall))
-#else
-#define FASTCALL
-#endif
-
-extern _X_INTERNAL PURE FASTCALL GLint __glGetBooleanv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetDoublev_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetFloatv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetIntegerv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetLightfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetLightiv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetMaterialfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetMaterialiv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetTexEnvfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetTexEnviv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetTexGendv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetTexGenfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetTexGeniv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetTexParameterfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetTexParameteriv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetTexLevelParameterfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetTexLevelParameteriv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetPointerv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint
-__glGetColorTableParameterfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint
-__glGetColorTableParameteriv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint
-__glGetConvolutionParameterfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint
-__glGetConvolutionParameteriv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetHistogramParameterfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetHistogramParameteriv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetMinmaxParameterfv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetMinmaxParameteriv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetQueryObjectiv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetQueryObjectuiv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetQueryiv_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint __glGetProgramivARB_size(GLenum);
-extern _X_INTERNAL PURE FASTCALL GLint
-__glGetFramebufferAttachmentParameteriv_size(GLenum);
-
-#undef PURE
-#undef FASTCALL
-
-#endif /* !defined( _INDIRECT_SIZE_GET_H_ ) */
+/* DO NOT EDIT - This file generated automatically by glX_proto_size.py (from Mesa) script */
+
+/*
+ * (C) Copyright IBM Corporation 2004
+ * 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
+ * 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 THEIR 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.
+ */
+
+#if !defined( _INDIRECT_SIZE_GET_H_ )
+# define _INDIRECT_SIZE_GET_H_
+
+/**
+ * \file
+ * Prototypes for functions used to determine the number of data elements in
+ * various GLX protocol messages.
+ *
+ * \author Ian Romanick <idr@us.ibm.com>
+ */
+
+#include <X11/Xfuncproto.h>
+
+# if defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
+# define PURE __attribute__((pure))
+# else
+# define PURE
+# endif
+
+# if defined(__i386__) && defined(__GNUC__) && !defined(__CYGWIN__) && !defined(__MINGW32__)
+# define FASTCALL __attribute__((fastcall))
+# else
+# define FASTCALL
+# endif
+
+extern _X_INTERNAL PURE FASTCALL GLint __glCallLists_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glFogfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glFogiv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glLightfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glLightiv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glLightModelfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glLightModeliv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glMaterialfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glMaterialiv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glTexParameterfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glTexParameteriv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glTexEnvfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glTexEnviv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glTexGendv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glTexGenfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glTexGeniv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glMap1d_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glMap1f_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glMap2d_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glMap2f_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetBooleanv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetDoublev_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetFloatv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetIntegerv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetLightfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetLightiv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetMaterialfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetMaterialiv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetTexEnvfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetTexEnviv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetTexGendv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetTexGenfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetTexGeniv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetTexParameterfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetTexParameteriv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetTexLevelParameterfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetTexLevelParameteriv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetPointerv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glColorTableParameterfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glColorTableParameteriv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetColorTableParameterfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetColorTableParameteriv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glConvolutionParameterfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glConvolutionParameteriv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetConvolutionParameterfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetConvolutionParameteriv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetHistogramParameterfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetHistogramParameteriv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetMinmaxParameterfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetMinmaxParameteriv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glPointParameterfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glPointParameteriv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetQueryObjectiv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetQueryObjectuiv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetQueryiv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetVertexAttribdv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetVertexAttribfv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetVertexAttribiv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetProgramivARB_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetFramebufferAttachmentParameteriv_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetProgramivNV_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetVertexAttribdvNV_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetVertexAttribfvNV_size(GLenum);
+extern _X_INTERNAL PURE FASTCALL GLint __glGetVertexAttribivNV_size(GLenum);
+
+# undef PURE
+# undef FASTCALL
+
+#endif /* !defined( _INDIRECT_SIZE_GET_H_ ) */
diff --git a/xorg-server/glx/indirect_table.c b/xorg-server/glx/indirect_table.c
index 33e3d6a22..5ea554460 100644
--- a/xorg-server/glx/indirect_table.c
+++ b/xorg-server/glx/indirect_table.c
@@ -1,1810 +1,1610 @@
-/* DO NOT EDIT - This file generated automatically by glX_server_table.py (from Mesa) script */
-
-/*
- * (C) Copyright IBM Corporation 2005, 2006
- * 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
- * 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 THEIR 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.
- */
-
-#include <inttypes.h>
-#include "glxserver.h"
-#include "glxext.h"
-#include "indirect_dispatch.h"
-#include "indirect_reqsize.h"
-#include "indirect_table.h"
-
-/*****************************************************************/
-/* tree depth = 3 */
-static const int_fast16_t Single_dispatch_tree[24] = {
- /* [0] -> opcode range [0, 256], node depth 1 */
- 2,
- 5,
- 13,
- 16,
- EMPTY_LEAF,
-
- /* [5] -> opcode range [0, 64], node depth 2 */
- 2,
- LEAF(0),
- LEAF(16),
- 10,
- EMPTY_LEAF,
-
- /* [10] -> opcode range [32, 48], node depth 3 */
- 1,
- LEAF(32),
- EMPTY_LEAF,
-
- /* [13] -> opcode range [64, 128], node depth 2 */
- 1,
- EMPTY_LEAF,
- LEAF(40),
-
- /* [16] -> opcode range [128, 192], node depth 2 */
- 2,
- LEAF(72),
- LEAF(88),
- 21,
- EMPTY_LEAF,
-
- /* [21] -> opcode range [160, 176], node depth 3 */
- 1,
- LEAF(104),
- EMPTY_LEAF,
-
-};
-
-static const void *Single_function_table[112][2] = {
- /* [ 0] = 0 */ {NULL, NULL},
- /* [ 1] = 1 */ {__glXDisp_Render, __glXDispSwap_Render},
- /* [ 2] = 2 */ {__glXDisp_RenderLarge, __glXDispSwap_RenderLarge},
- /* [ 3] = 3 */ {__glXDisp_CreateContext, __glXDispSwap_CreateContext},
- /* [ 4] = 4 */ {__glXDisp_DestroyContext,
- __glXDispSwap_DestroyContext},
- /* [ 5] = 5 */ {__glXDisp_MakeCurrent, __glXDispSwap_MakeCurrent},
- /* [ 6] = 6 */ {__glXDisp_IsDirect, __glXDispSwap_IsDirect},
- /* [ 7] = 7 */ {__glXDisp_QueryVersion, __glXDispSwap_QueryVersion},
- /* [ 8] = 8 */ {__glXDisp_WaitGL, __glXDispSwap_WaitGL},
- /* [ 9] = 9 */ {__glXDisp_WaitX, __glXDispSwap_WaitX},
- /* [ 10] = 10 */ {__glXDisp_CopyContext, __glXDispSwap_CopyContext},
- /* [ 11] = 11 */ {__glXDisp_SwapBuffers, __glXDispSwap_SwapBuffers},
- /* [ 12] = 12 */ {__glXDisp_UseXFont, __glXDispSwap_UseXFont},
- /* [ 13] = 13 */ {__glXDisp_CreateGLXPixmap,
- __glXDispSwap_CreateGLXPixmap},
- /* [ 14] = 14 */ {__glXDisp_GetVisualConfigs,
- __glXDispSwap_GetVisualConfigs},
- /* [ 15] = 15 */ {__glXDisp_DestroyGLXPixmap,
- __glXDispSwap_DestroyGLXPixmap},
- /* [ 16] = 16 */ {__glXDisp_VendorPrivate, __glXDispSwap_VendorPrivate},
- /* [ 17] = 17 */ {__glXDisp_VendorPrivateWithReply,
- __glXDispSwap_VendorPrivateWithReply},
- /* [ 18] = 18 */ {__glXDisp_QueryExtensionsString,
- __glXDispSwap_QueryExtensionsString},
- /* [ 19] = 19 */ {__glXDisp_QueryServerString,
- __glXDispSwap_QueryServerString},
- /* [ 20] = 20 */ {__glXDisp_ClientInfo, __glXDispSwap_ClientInfo},
- /* [ 21] = 21 */ {__glXDisp_GetFBConfigs, __glXDispSwap_GetFBConfigs},
- /* [ 22] = 22 */ {__glXDisp_CreatePixmap, __glXDispSwap_CreatePixmap},
- /* [ 23] = 23 */ {__glXDisp_DestroyPixmap, __glXDispSwap_DestroyPixmap},
- /* [ 24] = 24 */ {__glXDisp_CreateNewContext,
- __glXDispSwap_CreateNewContext},
- /* [ 25] = 25 */ {__glXDisp_QueryContext, __glXDispSwap_QueryContext},
- /* [ 26] = 26 */ {__glXDisp_MakeContextCurrent,
- __glXDispSwap_MakeContextCurrent},
- /* [ 27] = 27 */ {__glXDisp_CreatePbuffer, __glXDispSwap_CreatePbuffer},
- /* [ 28] = 28 */ {__glXDisp_DestroyPbuffer,
- __glXDispSwap_DestroyPbuffer},
- /* [ 29] = 29 */ {__glXDisp_GetDrawableAttributes,
- __glXDispSwap_GetDrawableAttributes},
- /* [ 30] = 30 */ {__glXDisp_ChangeDrawableAttributes,
- __glXDispSwap_ChangeDrawableAttributes},
- /* [ 31] = 31 */ {__glXDisp_CreateWindow, __glXDispSwap_CreateWindow},
- /* [ 32] = 32 */ {__glXDisp_DestroyWindow, __glXDispSwap_DestroyWindow},
- /* [ 33] = 33 */ {__glXDisp_SetClientInfoARB,
- __glXDispSwap_SetClientInfoARB},
- /* [ 34] = 34 */ {__glXDisp_CreateContextAttribsARB,
- __glXDispSwap_CreateContextAttribsARB},
- /* [ 35] = 35 */ {__glXDisp_SetClientInfo2ARB,
- __glXDispSwap_SetClientInfo2ARB},
- /* [ 36] = 36 */ {NULL, NULL},
- /* [ 37] = 37 */ {NULL, NULL},
- /* [ 38] = 38 */ {NULL, NULL},
- /* [ 39] = 39 */ {NULL, NULL},
- /* [ 40] = 96 */ {NULL, NULL},
- /* [ 41] = 97 */ {NULL, NULL},
- /* [ 42] = 98 */ {NULL, NULL},
- /* [ 43] = 99 */ {NULL, NULL},
- /* [ 44] = 100 */ {NULL, NULL},
- /* [ 45] = 101 */ {__glXDisp_NewList, __glXDispSwap_NewList},
- /* [ 46] = 102 */ {__glXDisp_EndList, __glXDispSwap_EndList},
- /* [ 47] = 103 */ {__glXDisp_DeleteLists, __glXDispSwap_DeleteLists},
- /* [ 48] = 104 */ {__glXDisp_GenLists, __glXDispSwap_GenLists},
- /* [ 49] = 105 */ {__glXDisp_FeedbackBuffer,
- __glXDispSwap_FeedbackBuffer},
- /* [ 50] = 106 */ {__glXDisp_SelectBuffer, __glXDispSwap_SelectBuffer},
- /* [ 51] = 107 */ {__glXDisp_RenderMode, __glXDispSwap_RenderMode},
- /* [ 52] = 108 */ {__glXDisp_Finish, __glXDispSwap_Finish},
- /* [ 53] = 109 */ {__glXDisp_PixelStoref, __glXDispSwap_PixelStoref},
- /* [ 54] = 110 */ {__glXDisp_PixelStorei, __glXDispSwap_PixelStorei},
- /* [ 55] = 111 */ {__glXDisp_ReadPixels, __glXDispSwap_ReadPixels},
- /* [ 56] = 112 */ {__glXDisp_GetBooleanv, __glXDispSwap_GetBooleanv},
- /* [ 57] = 113 */ {__glXDisp_GetClipPlane, __glXDispSwap_GetClipPlane},
- /* [ 58] = 114 */ {__glXDisp_GetDoublev, __glXDispSwap_GetDoublev},
- /* [ 59] = 115 */ {__glXDisp_GetError, __glXDispSwap_GetError},
- /* [ 60] = 116 */ {__glXDisp_GetFloatv, __glXDispSwap_GetFloatv},
- /* [ 61] = 117 */ {__glXDisp_GetIntegerv, __glXDispSwap_GetIntegerv},
- /* [ 62] = 118 */ {__glXDisp_GetLightfv, __glXDispSwap_GetLightfv},
- /* [ 63] = 119 */ {__glXDisp_GetLightiv, __glXDispSwap_GetLightiv},
- /* [ 64] = 120 */ {__glXDisp_GetMapdv, __glXDispSwap_GetMapdv},
- /* [ 65] = 121 */ {__glXDisp_GetMapfv, __glXDispSwap_GetMapfv},
- /* [ 66] = 122 */ {__glXDisp_GetMapiv, __glXDispSwap_GetMapiv},
- /* [ 67] = 123 */ {__glXDisp_GetMaterialfv, __glXDispSwap_GetMaterialfv},
- /* [ 68] = 124 */ {__glXDisp_GetMaterialiv, __glXDispSwap_GetMaterialiv},
- /* [ 69] = 125 */ {__glXDisp_GetPixelMapfv, __glXDispSwap_GetPixelMapfv},
- /* [ 70] = 126 */ {__glXDisp_GetPixelMapuiv,
- __glXDispSwap_GetPixelMapuiv},
- /* [ 71] = 127 */ {__glXDisp_GetPixelMapusv,
- __glXDispSwap_GetPixelMapusv},
- /* [ 72] = 128 */ {__glXDisp_GetPolygonStipple,
- __glXDispSwap_GetPolygonStipple},
- /* [ 73] = 129 */ {__glXDisp_GetString, __glXDispSwap_GetString},
- /* [ 74] = 130 */ {__glXDisp_GetTexEnvfv, __glXDispSwap_GetTexEnvfv},
- /* [ 75] = 131 */ {__glXDisp_GetTexEnviv, __glXDispSwap_GetTexEnviv},
- /* [ 76] = 132 */ {__glXDisp_GetTexGendv, __glXDispSwap_GetTexGendv},
- /* [ 77] = 133 */ {__glXDisp_GetTexGenfv, __glXDispSwap_GetTexGenfv},
- /* [ 78] = 134 */ {__glXDisp_GetTexGeniv, __glXDispSwap_GetTexGeniv},
- /* [ 79] = 135 */ {__glXDisp_GetTexImage, __glXDispSwap_GetTexImage},
- /* [ 80] = 136 */ {__glXDisp_GetTexParameterfv,
- __glXDispSwap_GetTexParameterfv},
- /* [ 81] = 137 */ {__glXDisp_GetTexParameteriv,
- __glXDispSwap_GetTexParameteriv},
- /* [ 82] = 138 */ {__glXDisp_GetTexLevelParameterfv,
- __glXDispSwap_GetTexLevelParameterfv},
- /* [ 83] = 139 */ {__glXDisp_GetTexLevelParameteriv,
- __glXDispSwap_GetTexLevelParameteriv},
- /* [ 84] = 140 */ {__glXDisp_IsEnabled, __glXDispSwap_IsEnabled},
- /* [ 85] = 141 */ {__glXDisp_IsList, __glXDispSwap_IsList},
- /* [ 86] = 142 */ {__glXDisp_Flush, __glXDispSwap_Flush},
- /* [ 87] = 143 */ {__glXDisp_AreTexturesResident,
- __glXDispSwap_AreTexturesResident},
- /* [ 88] = 144 */ {__glXDisp_DeleteTextures,
- __glXDispSwap_DeleteTextures},
- /* [ 89] = 145 */ {__glXDisp_GenTextures, __glXDispSwap_GenTextures},
- /* [ 90] = 146 */ {__glXDisp_IsTexture, __glXDispSwap_IsTexture},
- /* [ 91] = 147 */ {__glXDisp_GetColorTable, __glXDispSwap_GetColorTable},
- /* [ 92] = 148 */ {__glXDisp_GetColorTableParameterfv,
- __glXDispSwap_GetColorTableParameterfv},
- /* [ 93] = 149 */ {__glXDisp_GetColorTableParameteriv,
- __glXDispSwap_GetColorTableParameteriv},
- /* [ 94] = 150 */ {__glXDisp_GetConvolutionFilter,
- __glXDispSwap_GetConvolutionFilter},
- /* [ 95] = 151 */ {__glXDisp_GetConvolutionParameterfv,
- __glXDispSwap_GetConvolutionParameterfv},
- /* [ 96] = 152 */ {__glXDisp_GetConvolutionParameteriv,
- __glXDispSwap_GetConvolutionParameteriv},
- /* [ 97] = 153 */ {__glXDisp_GetSeparableFilter,
- __glXDispSwap_GetSeparableFilter},
- /* [ 98] = 154 */ {__glXDisp_GetHistogram, __glXDispSwap_GetHistogram},
- /* [ 99] = 155 */ {__glXDisp_GetHistogramParameterfv,
- __glXDispSwap_GetHistogramParameterfv},
- /* [ 100] = 156 */ {__glXDisp_GetHistogramParameteriv,
- __glXDispSwap_GetHistogramParameteriv},
- /* [ 101] = 157 */ {__glXDisp_GetMinmax, __glXDispSwap_GetMinmax},
- /* [ 102] = 158 */ {__glXDisp_GetMinmaxParameterfv,
- __glXDispSwap_GetMinmaxParameterfv},
- /* [ 103] = 159 */ {__glXDisp_GetMinmaxParameteriv,
- __glXDispSwap_GetMinmaxParameteriv},
- /* [ 104] = 160 */ {__glXDisp_GetCompressedTexImage,
- __glXDispSwap_GetCompressedTexImage},
- /* [ 105] = 161 */ {__glXDisp_DeleteQueries, __glXDispSwap_DeleteQueries},
- /* [ 106] = 162 */ {__glXDisp_GenQueries, __glXDispSwap_GenQueries},
- /* [ 107] = 163 */ {__glXDisp_IsQuery, __glXDispSwap_IsQuery},
- /* [ 108] = 164 */ {__glXDisp_GetQueryiv, __glXDispSwap_GetQueryiv},
- /* [ 109] = 165 */ {__glXDisp_GetQueryObjectiv,
- __glXDispSwap_GetQueryObjectiv},
- /* [ 110] = 166 */ {__glXDisp_GetQueryObjectuiv,
- __glXDispSwap_GetQueryObjectuiv},
- /* [ 111] = 167 */ {NULL, NULL},
-};
-
-const struct __glXDispatchInfo Single_dispatch_info = {
- 8,
- Single_dispatch_tree,
- Single_function_table,
- NULL,
- NULL
-};
-
-/*****************************************************************/
-/* tree depth = 8 */
-static const int_fast16_t Render_dispatch_tree[92] = {
- /* [0] -> opcode range [0, 8192], node depth 1 */
- 2,
- 5,
- 31,
- 54,
- EMPTY_LEAF,
-
- /* [5] -> opcode range [0, 2048], node depth 2 */
- 1,
- 8,
- EMPTY_LEAF,
-
- /* [8] -> opcode range [0, 1024], node depth 3 */
- 1,
- 11,
- EMPTY_LEAF,
-
- /* [11] -> opcode range [0, 512], node depth 4 */
- 1,
- 14,
- EMPTY_LEAF,
-
- /* [14] -> opcode range [0, 256], node depth 5 */
- 4,
- LEAF(0),
- LEAF(16),
- LEAF(32),
- LEAF(48),
- LEAF(64),
- LEAF(80),
- LEAF(96),
- LEAF(112),
- LEAF(128),
- LEAF(144),
- LEAF(160),
- LEAF(176),
- LEAF(192),
- LEAF(208),
- LEAF(224),
- EMPTY_LEAF,
-
- /* [31] -> opcode range [2048, 4096], node depth 2 */
- 1,
- 34,
- EMPTY_LEAF,
-
- /* [34] -> opcode range [2048, 3072], node depth 3 */
- 1,
- 37,
- EMPTY_LEAF,
-
- /* [37] -> opcode range [2048, 2560], node depth 4 */
- 1,
- 40,
- EMPTY_LEAF,
-
- /* [40] -> opcode range [2048, 2304], node depth 5 */
- 1,
- 43,
- EMPTY_LEAF,
-
- /* [43] -> opcode range [2048, 2176], node depth 6 */
- 1,
- 46,
- EMPTY_LEAF,
-
- /* [46] -> opcode range [2048, 2112], node depth 7 */
- 1,
- 49,
- EMPTY_LEAF,
-
- /* [49] -> opcode range [2048, 2080], node depth 8 */
- 2,
- LEAF(240),
- LEAF(248),
- LEAF(256),
- EMPTY_LEAF,
-
- /* [54] -> opcode range [4096, 6144], node depth 2 */
- 1,
- 57,
- EMPTY_LEAF,
-
- /* [57] -> opcode range [4096, 5120], node depth 3 */
- 1,
- 60,
- EMPTY_LEAF,
-
- /* [60] -> opcode range [4096, 4608], node depth 4 */
- 1,
- 63,
- EMPTY_LEAF,
-
- /* [63] -> opcode range [4096, 4352], node depth 5 */
- 4,
- LEAF(264),
- LEAF(280),
- 80,
- EMPTY_LEAF,
- EMPTY_LEAF,
- LEAF(296),
- LEAF(312),
- LEAF(328),
- LEAF(344),
- EMPTY_LEAF,
- 83,
- 86,
- EMPTY_LEAF,
- 89,
- LEAF(360),
- EMPTY_LEAF,
-
- /* [80] -> opcode range [4128, 4144], node depth 6 */
- 1,
- LEAF(376),
- EMPTY_LEAF,
-
- /* [83] -> opcode range [4256, 4272], node depth 6 */
- 1,
- EMPTY_LEAF,
- LEAF(384),
-
- /* [86] -> opcode range [4272, 4288], node depth 6 */
- 1,
- LEAF(392),
- EMPTY_LEAF,
-
- /* [89] -> opcode range [4304, 4320], node depth 6 */
- 1,
- EMPTY_LEAF,
- LEAF(400),
-
-};
-
-static const void *Render_function_table[408][2] = {
- /* [ 0] = 0 */ {NULL, NULL},
- /* [ 1] = 1 */ {__glXDisp_CallList, __glXDispSwap_CallList},
- /* [ 2] = 2 */ {__glXDisp_CallLists, __glXDispSwap_CallLists},
- /* [ 3] = 3 */ {__glXDisp_ListBase, __glXDispSwap_ListBase},
- /* [ 4] = 4 */ {__glXDisp_Begin, __glXDispSwap_Begin},
- /* [ 5] = 5 */ {__glXDisp_Bitmap, __glXDispSwap_Bitmap},
- /* [ 6] = 6 */ {__glXDisp_Color3bv, __glXDispSwap_Color3bv},
- /* [ 7] = 7 */ {__glXDisp_Color3dv, __glXDispSwap_Color3dv},
- /* [ 8] = 8 */ {__glXDisp_Color3fv, __glXDispSwap_Color3fv},
- /* [ 9] = 9 */ {__glXDisp_Color3iv, __glXDispSwap_Color3iv},
- /* [ 10] = 10 */ {__glXDisp_Color3sv, __glXDispSwap_Color3sv},
- /* [ 11] = 11 */ {__glXDisp_Color3ubv, __glXDispSwap_Color3ubv},
- /* [ 12] = 12 */ {__glXDisp_Color3uiv, __glXDispSwap_Color3uiv},
- /* [ 13] = 13 */ {__glXDisp_Color3usv, __glXDispSwap_Color3usv},
- /* [ 14] = 14 */ {__glXDisp_Color4bv, __glXDispSwap_Color4bv},
- /* [ 15] = 15 */ {__glXDisp_Color4dv, __glXDispSwap_Color4dv},
- /* [ 16] = 16 */ {__glXDisp_Color4fv, __glXDispSwap_Color4fv},
- /* [ 17] = 17 */ {__glXDisp_Color4iv, __glXDispSwap_Color4iv},
- /* [ 18] = 18 */ {__glXDisp_Color4sv, __glXDispSwap_Color4sv},
- /* [ 19] = 19 */ {__glXDisp_Color4ubv, __glXDispSwap_Color4ubv},
- /* [ 20] = 20 */ {__glXDisp_Color4uiv, __glXDispSwap_Color4uiv},
- /* [ 21] = 21 */ {__glXDisp_Color4usv, __glXDispSwap_Color4usv},
- /* [ 22] = 22 */ {__glXDisp_EdgeFlagv, __glXDispSwap_EdgeFlagv},
- /* [ 23] = 23 */ {__glXDisp_End, __glXDispSwap_End},
- /* [ 24] = 24 */ {__glXDisp_Indexdv, __glXDispSwap_Indexdv},
- /* [ 25] = 25 */ {__glXDisp_Indexfv, __glXDispSwap_Indexfv},
- /* [ 26] = 26 */ {__glXDisp_Indexiv, __glXDispSwap_Indexiv},
- /* [ 27] = 27 */ {__glXDisp_Indexsv, __glXDispSwap_Indexsv},
- /* [ 28] = 28 */ {__glXDisp_Normal3bv, __glXDispSwap_Normal3bv},
- /* [ 29] = 29 */ {__glXDisp_Normal3dv, __glXDispSwap_Normal3dv},
- /* [ 30] = 30 */ {__glXDisp_Normal3fv, __glXDispSwap_Normal3fv},
- /* [ 31] = 31 */ {__glXDisp_Normal3iv, __glXDispSwap_Normal3iv},
- /* [ 32] = 32 */ {__glXDisp_Normal3sv, __glXDispSwap_Normal3sv},
- /* [ 33] = 33 */ {__glXDisp_RasterPos2dv, __glXDispSwap_RasterPos2dv},
- /* [ 34] = 34 */ {__glXDisp_RasterPos2fv, __glXDispSwap_RasterPos2fv},
- /* [ 35] = 35 */ {__glXDisp_RasterPos2iv, __glXDispSwap_RasterPos2iv},
- /* [ 36] = 36 */ {__glXDisp_RasterPos2sv, __glXDispSwap_RasterPos2sv},
- /* [ 37] = 37 */ {__glXDisp_RasterPos3dv, __glXDispSwap_RasterPos3dv},
- /* [ 38] = 38 */ {__glXDisp_RasterPos3fv, __glXDispSwap_RasterPos3fv},
- /* [ 39] = 39 */ {__glXDisp_RasterPos3iv, __glXDispSwap_RasterPos3iv},
- /* [ 40] = 40 */ {__glXDisp_RasterPos3sv, __glXDispSwap_RasterPos3sv},
- /* [ 41] = 41 */ {__glXDisp_RasterPos4dv, __glXDispSwap_RasterPos4dv},
- /* [ 42] = 42 */ {__glXDisp_RasterPos4fv, __glXDispSwap_RasterPos4fv},
- /* [ 43] = 43 */ {__glXDisp_RasterPos4iv, __glXDispSwap_RasterPos4iv},
- /* [ 44] = 44 */ {__glXDisp_RasterPos4sv, __glXDispSwap_RasterPos4sv},
- /* [ 45] = 45 */ {__glXDisp_Rectdv, __glXDispSwap_Rectdv},
- /* [ 46] = 46 */ {__glXDisp_Rectfv, __glXDispSwap_Rectfv},
- /* [ 47] = 47 */ {__glXDisp_Rectiv, __glXDispSwap_Rectiv},
- /* [ 48] = 48 */ {__glXDisp_Rectsv, __glXDispSwap_Rectsv},
- /* [ 49] = 49 */ {__glXDisp_TexCoord1dv, __glXDispSwap_TexCoord1dv},
- /* [ 50] = 50 */ {__glXDisp_TexCoord1fv, __glXDispSwap_TexCoord1fv},
- /* [ 51] = 51 */ {__glXDisp_TexCoord1iv, __glXDispSwap_TexCoord1iv},
- /* [ 52] = 52 */ {__glXDisp_TexCoord1sv, __glXDispSwap_TexCoord1sv},
- /* [ 53] = 53 */ {__glXDisp_TexCoord2dv, __glXDispSwap_TexCoord2dv},
- /* [ 54] = 54 */ {__glXDisp_TexCoord2fv, __glXDispSwap_TexCoord2fv},
- /* [ 55] = 55 */ {__glXDisp_TexCoord2iv, __glXDispSwap_TexCoord2iv},
- /* [ 56] = 56 */ {__glXDisp_TexCoord2sv, __glXDispSwap_TexCoord2sv},
- /* [ 57] = 57 */ {__glXDisp_TexCoord3dv, __glXDispSwap_TexCoord3dv},
- /* [ 58] = 58 */ {__glXDisp_TexCoord3fv, __glXDispSwap_TexCoord3fv},
- /* [ 59] = 59 */ {__glXDisp_TexCoord3iv, __glXDispSwap_TexCoord3iv},
- /* [ 60] = 60 */ {__glXDisp_TexCoord3sv, __glXDispSwap_TexCoord3sv},
- /* [ 61] = 61 */ {__glXDisp_TexCoord4dv, __glXDispSwap_TexCoord4dv},
- /* [ 62] = 62 */ {__glXDisp_TexCoord4fv, __glXDispSwap_TexCoord4fv},
- /* [ 63] = 63 */ {__glXDisp_TexCoord4iv, __glXDispSwap_TexCoord4iv},
- /* [ 64] = 64 */ {__glXDisp_TexCoord4sv, __glXDispSwap_TexCoord4sv},
- /* [ 65] = 65 */ {__glXDisp_Vertex2dv, __glXDispSwap_Vertex2dv},
- /* [ 66] = 66 */ {__glXDisp_Vertex2fv, __glXDispSwap_Vertex2fv},
- /* [ 67] = 67 */ {__glXDisp_Vertex2iv, __glXDispSwap_Vertex2iv},
- /* [ 68] = 68 */ {__glXDisp_Vertex2sv, __glXDispSwap_Vertex2sv},
- /* [ 69] = 69 */ {__glXDisp_Vertex3dv, __glXDispSwap_Vertex3dv},
- /* [ 70] = 70 */ {__glXDisp_Vertex3fv, __glXDispSwap_Vertex3fv},
- /* [ 71] = 71 */ {__glXDisp_Vertex3iv, __glXDispSwap_Vertex3iv},
- /* [ 72] = 72 */ {__glXDisp_Vertex3sv, __glXDispSwap_Vertex3sv},
- /* [ 73] = 73 */ {__glXDisp_Vertex4dv, __glXDispSwap_Vertex4dv},
- /* [ 74] = 74 */ {__glXDisp_Vertex4fv, __glXDispSwap_Vertex4fv},
- /* [ 75] = 75 */ {__glXDisp_Vertex4iv, __glXDispSwap_Vertex4iv},
- /* [ 76] = 76 */ {__glXDisp_Vertex4sv, __glXDispSwap_Vertex4sv},
- /* [ 77] = 77 */ {__glXDisp_ClipPlane, __glXDispSwap_ClipPlane},
- /* [ 78] = 78 */ {__glXDisp_ColorMaterial, __glXDispSwap_ColorMaterial},
- /* [ 79] = 79 */ {__glXDisp_CullFace, __glXDispSwap_CullFace},
- /* [ 80] = 80 */ {__glXDisp_Fogf, __glXDispSwap_Fogf},
- /* [ 81] = 81 */ {__glXDisp_Fogfv, __glXDispSwap_Fogfv},
- /* [ 82] = 82 */ {__glXDisp_Fogi, __glXDispSwap_Fogi},
- /* [ 83] = 83 */ {__glXDisp_Fogiv, __glXDispSwap_Fogiv},
- /* [ 84] = 84 */ {__glXDisp_FrontFace, __glXDispSwap_FrontFace},
- /* [ 85] = 85 */ {__glXDisp_Hint, __glXDispSwap_Hint},
- /* [ 86] = 86 */ {__glXDisp_Lightf, __glXDispSwap_Lightf},
- /* [ 87] = 87 */ {__glXDisp_Lightfv, __glXDispSwap_Lightfv},
- /* [ 88] = 88 */ {__glXDisp_Lighti, __glXDispSwap_Lighti},
- /* [ 89] = 89 */ {__glXDisp_Lightiv, __glXDispSwap_Lightiv},
- /* [ 90] = 90 */ {__glXDisp_LightModelf, __glXDispSwap_LightModelf},
- /* [ 91] = 91 */ {__glXDisp_LightModelfv, __glXDispSwap_LightModelfv},
- /* [ 92] = 92 */ {__glXDisp_LightModeli, __glXDispSwap_LightModeli},
- /* [ 93] = 93 */ {__glXDisp_LightModeliv, __glXDispSwap_LightModeliv},
- /* [ 94] = 94 */ {__glXDisp_LineStipple, __glXDispSwap_LineStipple},
- /* [ 95] = 95 */ {__glXDisp_LineWidth, __glXDispSwap_LineWidth},
- /* [ 96] = 96 */ {__glXDisp_Materialf, __glXDispSwap_Materialf},
- /* [ 97] = 97 */ {__glXDisp_Materialfv, __glXDispSwap_Materialfv},
- /* [ 98] = 98 */ {__glXDisp_Materiali, __glXDispSwap_Materiali},
- /* [ 99] = 99 */ {__glXDisp_Materialiv, __glXDispSwap_Materialiv},
- /* [ 100] = 100 */ {__glXDisp_PointSize, __glXDispSwap_PointSize},
- /* [ 101] = 101 */ {__glXDisp_PolygonMode, __glXDispSwap_PolygonMode},
- /* [ 102] = 102 */ {__glXDisp_PolygonStipple,
- __glXDispSwap_PolygonStipple},
- /* [ 103] = 103 */ {__glXDisp_Scissor, __glXDispSwap_Scissor},
- /* [ 104] = 104 */ {__glXDisp_ShadeModel, __glXDispSwap_ShadeModel},
- /* [ 105] = 105 */ {__glXDisp_TexParameterf, __glXDispSwap_TexParameterf},
- /* [ 106] = 106 */ {__glXDisp_TexParameterfv,
- __glXDispSwap_TexParameterfv},
- /* [ 107] = 107 */ {__glXDisp_TexParameteri, __glXDispSwap_TexParameteri},
- /* [ 108] = 108 */ {__glXDisp_TexParameteriv,
- __glXDispSwap_TexParameteriv},
- /* [ 109] = 109 */ {__glXDisp_TexImage1D, __glXDispSwap_TexImage1D},
- /* [ 110] = 110 */ {__glXDisp_TexImage2D, __glXDispSwap_TexImage2D},
- /* [ 111] = 111 */ {__glXDisp_TexEnvf, __glXDispSwap_TexEnvf},
- /* [ 112] = 112 */ {__glXDisp_TexEnvfv, __glXDispSwap_TexEnvfv},
- /* [ 113] = 113 */ {__glXDisp_TexEnvi, __glXDispSwap_TexEnvi},
- /* [ 114] = 114 */ {__glXDisp_TexEnviv, __glXDispSwap_TexEnviv},
- /* [ 115] = 115 */ {__glXDisp_TexGend, __glXDispSwap_TexGend},
- /* [ 116] = 116 */ {__glXDisp_TexGendv, __glXDispSwap_TexGendv},
- /* [ 117] = 117 */ {__glXDisp_TexGenf, __glXDispSwap_TexGenf},
- /* [ 118] = 118 */ {__glXDisp_TexGenfv, __glXDispSwap_TexGenfv},
- /* [ 119] = 119 */ {__glXDisp_TexGeni, __glXDispSwap_TexGeni},
- /* [ 120] = 120 */ {__glXDisp_TexGeniv, __glXDispSwap_TexGeniv},
- /* [ 121] = 121 */ {__glXDisp_InitNames, __glXDispSwap_InitNames},
- /* [ 122] = 122 */ {__glXDisp_LoadName, __glXDispSwap_LoadName},
- /* [ 123] = 123 */ {__glXDisp_PassThrough, __glXDispSwap_PassThrough},
- /* [ 124] = 124 */ {__glXDisp_PopName, __glXDispSwap_PopName},
- /* [ 125] = 125 */ {__glXDisp_PushName, __glXDispSwap_PushName},
- /* [ 126] = 126 */ {__glXDisp_DrawBuffer, __glXDispSwap_DrawBuffer},
- /* [ 127] = 127 */ {__glXDisp_Clear, __glXDispSwap_Clear},
- /* [ 128] = 128 */ {__glXDisp_ClearAccum, __glXDispSwap_ClearAccum},
- /* [ 129] = 129 */ {__glXDisp_ClearIndex, __glXDispSwap_ClearIndex},
- /* [ 130] = 130 */ {__glXDisp_ClearColor, __glXDispSwap_ClearColor},
- /* [ 131] = 131 */ {__glXDisp_ClearStencil, __glXDispSwap_ClearStencil},
- /* [ 132] = 132 */ {__glXDisp_ClearDepth, __glXDispSwap_ClearDepth},
- /* [ 133] = 133 */ {__glXDisp_StencilMask, __glXDispSwap_StencilMask},
- /* [ 134] = 134 */ {__glXDisp_ColorMask, __glXDispSwap_ColorMask},
- /* [ 135] = 135 */ {__glXDisp_DepthMask, __glXDispSwap_DepthMask},
- /* [ 136] = 136 */ {__glXDisp_IndexMask, __glXDispSwap_IndexMask},
- /* [ 137] = 137 */ {__glXDisp_Accum, __glXDispSwap_Accum},
- /* [ 138] = 138 */ {__glXDisp_Disable, __glXDispSwap_Disable},
- /* [ 139] = 139 */ {__glXDisp_Enable, __glXDispSwap_Enable},
- /* [ 140] = 140 */ {NULL, NULL},
- /* [ 141] = 141 */ {__glXDisp_PopAttrib, __glXDispSwap_PopAttrib},
- /* [ 142] = 142 */ {__glXDisp_PushAttrib, __glXDispSwap_PushAttrib},
- /* [ 143] = 143 */ {__glXDisp_Map1d, __glXDispSwap_Map1d},
- /* [ 144] = 144 */ {__glXDisp_Map1f, __glXDispSwap_Map1f},
- /* [ 145] = 145 */ {__glXDisp_Map2d, __glXDispSwap_Map2d},
- /* [ 146] = 146 */ {__glXDisp_Map2f, __glXDispSwap_Map2f},
- /* [ 147] = 147 */ {__glXDisp_MapGrid1d, __glXDispSwap_MapGrid1d},
- /* [ 148] = 148 */ {__glXDisp_MapGrid1f, __glXDispSwap_MapGrid1f},
- /* [ 149] = 149 */ {__glXDisp_MapGrid2d, __glXDispSwap_MapGrid2d},
- /* [ 150] = 150 */ {__glXDisp_MapGrid2f, __glXDispSwap_MapGrid2f},
- /* [ 151] = 151 */ {__glXDisp_EvalCoord1dv, __glXDispSwap_EvalCoord1dv},
- /* [ 152] = 152 */ {__glXDisp_EvalCoord1fv, __glXDispSwap_EvalCoord1fv},
- /* [ 153] = 153 */ {__glXDisp_EvalCoord2dv, __glXDispSwap_EvalCoord2dv},
- /* [ 154] = 154 */ {__glXDisp_EvalCoord2fv, __glXDispSwap_EvalCoord2fv},
- /* [ 155] = 155 */ {__glXDisp_EvalMesh1, __glXDispSwap_EvalMesh1},
- /* [ 156] = 156 */ {__glXDisp_EvalPoint1, __glXDispSwap_EvalPoint1},
- /* [ 157] = 157 */ {__glXDisp_EvalMesh2, __glXDispSwap_EvalMesh2},
- /* [ 158] = 158 */ {__glXDisp_EvalPoint2, __glXDispSwap_EvalPoint2},
- /* [ 159] = 159 */ {__glXDisp_AlphaFunc, __glXDispSwap_AlphaFunc},
- /* [ 160] = 160 */ {__glXDisp_BlendFunc, __glXDispSwap_BlendFunc},
- /* [ 161] = 161 */ {__glXDisp_LogicOp, __glXDispSwap_LogicOp},
- /* [ 162] = 162 */ {__glXDisp_StencilFunc, __glXDispSwap_StencilFunc},
- /* [ 163] = 163 */ {__glXDisp_StencilOp, __glXDispSwap_StencilOp},
- /* [ 164] = 164 */ {__glXDisp_DepthFunc, __glXDispSwap_DepthFunc},
- /* [ 165] = 165 */ {__glXDisp_PixelZoom, __glXDispSwap_PixelZoom},
- /* [ 166] = 166 */ {__glXDisp_PixelTransferf,
- __glXDispSwap_PixelTransferf},
- /* [ 167] = 167 */ {__glXDisp_PixelTransferi,
- __glXDispSwap_PixelTransferi},
- /* [ 168] = 168 */ {__glXDisp_PixelMapfv, __glXDispSwap_PixelMapfv},
- /* [ 169] = 169 */ {__glXDisp_PixelMapuiv, __glXDispSwap_PixelMapuiv},
- /* [ 170] = 170 */ {__glXDisp_PixelMapusv, __glXDispSwap_PixelMapusv},
- /* [ 171] = 171 */ {__glXDisp_ReadBuffer, __glXDispSwap_ReadBuffer},
- /* [ 172] = 172 */ {__glXDisp_CopyPixels, __glXDispSwap_CopyPixels},
- /* [ 173] = 173 */ {__glXDisp_DrawPixels, __glXDispSwap_DrawPixels},
- /* [ 174] = 174 */ {__glXDisp_DepthRange, __glXDispSwap_DepthRange},
- /* [ 175] = 175 */ {__glXDisp_Frustum, __glXDispSwap_Frustum},
- /* [ 176] = 176 */ {__glXDisp_LoadIdentity, __glXDispSwap_LoadIdentity},
- /* [ 177] = 177 */ {__glXDisp_LoadMatrixf, __glXDispSwap_LoadMatrixf},
- /* [ 178] = 178 */ {__glXDisp_LoadMatrixd, __glXDispSwap_LoadMatrixd},
- /* [ 179] = 179 */ {__glXDisp_MatrixMode, __glXDispSwap_MatrixMode},
- /* [ 180] = 180 */ {__glXDisp_MultMatrixf, __glXDispSwap_MultMatrixf},
- /* [ 181] = 181 */ {__glXDisp_MultMatrixd, __glXDispSwap_MultMatrixd},
- /* [ 182] = 182 */ {__glXDisp_Ortho, __glXDispSwap_Ortho},
- /* [ 183] = 183 */ {__glXDisp_PopMatrix, __glXDispSwap_PopMatrix},
- /* [ 184] = 184 */ {__glXDisp_PushMatrix, __glXDispSwap_PushMatrix},
- /* [ 185] = 185 */ {__glXDisp_Rotated, __glXDispSwap_Rotated},
- /* [ 186] = 186 */ {__glXDisp_Rotatef, __glXDispSwap_Rotatef},
- /* [ 187] = 187 */ {__glXDisp_Scaled, __glXDispSwap_Scaled},
- /* [ 188] = 188 */ {__glXDisp_Scalef, __glXDispSwap_Scalef},
- /* [ 189] = 189 */ {__glXDisp_Translated, __glXDispSwap_Translated},
- /* [ 190] = 190 */ {__glXDisp_Translatef, __glXDispSwap_Translatef},
- /* [ 191] = 191 */ {__glXDisp_Viewport, __glXDispSwap_Viewport},
- /* [ 192] = 192 */ {__glXDisp_PolygonOffset, __glXDispSwap_PolygonOffset},
- /* [ 193] = 193 */ {__glXDisp_DrawArrays, __glXDispSwap_DrawArrays},
- /* [ 194] = 194 */ {__glXDisp_Indexubv, __glXDispSwap_Indexubv},
- /* [ 195] = 195 */ {__glXDisp_ColorSubTable, __glXDispSwap_ColorSubTable},
- /* [ 196] = 196 */ {__glXDisp_CopyColorSubTable,
- __glXDispSwap_CopyColorSubTable},
- /* [ 197] = 197 */ {__glXDisp_ActiveTexture, __glXDispSwap_ActiveTexture},
- /* [ 198] = 198 */ {__glXDisp_MultiTexCoord1dv,
- __glXDispSwap_MultiTexCoord1dv},
- /* [ 199] = 199 */ {__glXDisp_MultiTexCoord1fvARB,
- __glXDispSwap_MultiTexCoord1fvARB},
- /* [ 200] = 200 */ {__glXDisp_MultiTexCoord1iv,
- __glXDispSwap_MultiTexCoord1iv},
- /* [ 201] = 201 */ {__glXDisp_MultiTexCoord1sv,
- __glXDispSwap_MultiTexCoord1sv},
- /* [ 202] = 202 */ {__glXDisp_MultiTexCoord2dv,
- __glXDispSwap_MultiTexCoord2dv},
- /* [ 203] = 203 */ {__glXDisp_MultiTexCoord2fvARB,
- __glXDispSwap_MultiTexCoord2fvARB},
- /* [ 204] = 204 */ {__glXDisp_MultiTexCoord2iv,
- __glXDispSwap_MultiTexCoord2iv},
- /* [ 205] = 205 */ {__glXDisp_MultiTexCoord2sv,
- __glXDispSwap_MultiTexCoord2sv},
- /* [ 206] = 206 */ {__glXDisp_MultiTexCoord3dv,
- __glXDispSwap_MultiTexCoord3dv},
- /* [ 207] = 207 */ {__glXDisp_MultiTexCoord3fvARB,
- __glXDispSwap_MultiTexCoord3fvARB},
- /* [ 208] = 208 */ {__glXDisp_MultiTexCoord3iv,
- __glXDispSwap_MultiTexCoord3iv},
- /* [ 209] = 209 */ {__glXDisp_MultiTexCoord3sv,
- __glXDispSwap_MultiTexCoord3sv},
- /* [ 210] = 210 */ {__glXDisp_MultiTexCoord4dv,
- __glXDispSwap_MultiTexCoord4dv},
- /* [ 211] = 211 */ {__glXDisp_MultiTexCoord4fvARB,
- __glXDispSwap_MultiTexCoord4fvARB},
- /* [ 212] = 212 */ {__glXDisp_MultiTexCoord4iv,
- __glXDispSwap_MultiTexCoord4iv},
- /* [ 213] = 213 */ {__glXDisp_MultiTexCoord4sv,
- __glXDispSwap_MultiTexCoord4sv},
- /* [ 214] = 214 */ {__glXDisp_CompressedTexImage1D,
- __glXDispSwap_CompressedTexImage1D},
- /* [ 215] = 215 */ {__glXDisp_CompressedTexImage2D,
- __glXDispSwap_CompressedTexImage2D},
- /* [ 216] = 216 */ {__glXDisp_CompressedTexImage3D,
- __glXDispSwap_CompressedTexImage3D},
- /* [ 217] = 217 */ {__glXDisp_CompressedTexSubImage1D,
- __glXDispSwap_CompressedTexSubImage1D},
- /* [ 218] = 218 */ {__glXDisp_CompressedTexSubImage2D,
- __glXDispSwap_CompressedTexSubImage2D},
- /* [ 219] = 219 */ {__glXDisp_CompressedTexSubImage3D,
- __glXDispSwap_CompressedTexSubImage3D},
- /* [ 220] = 220 */ {NULL, NULL},
- /* [ 221] = 221 */ {NULL, NULL},
- /* [ 222] = 222 */ {NULL, NULL},
- /* [ 223] = 223 */ {NULL, NULL},
- /* [ 224] = 224 */ {NULL, NULL},
- /* [ 225] = 225 */ {NULL, NULL},
- /* [ 226] = 226 */ {NULL, NULL},
- /* [ 227] = 227 */ {NULL, NULL},
- /* [ 228] = 228 */ {NULL, NULL},
- /* [ 229] = 229 */ {__glXDisp_SampleCoverage,
- __glXDispSwap_SampleCoverage},
- /* [ 230] = 230 */ {__glXDisp_WindowPos3fv, __glXDispSwap_WindowPos3fv},
- /* [ 231] = 231 */ {__glXDisp_BeginQuery, __glXDispSwap_BeginQuery},
- /* [ 232] = 232 */ {__glXDisp_EndQuery, __glXDispSwap_EndQuery},
- /* [ 233] = 233 */ {__glXDisp_DrawBuffers, __glXDispSwap_DrawBuffers},
- /* [ 234] = 234 */ {__glXDisp_ClampColor, __glXDispSwap_ClampColor},
- /* [ 235] = 235 */ {NULL, NULL},
- /* [ 236] = 236 */ {NULL, NULL},
- /* [ 237] = 237 */ {__glXDisp_FramebufferTextureLayer,
- __glXDispSwap_FramebufferTextureLayer},
- /* [ 238] = 238 */ {NULL, NULL},
- /* [ 239] = 239 */ {NULL, NULL},
- /* [ 240] = 2048 */ {NULL, NULL},
- /* [ 241] = 2049 */ {NULL, NULL},
- /* [ 242] = 2050 */ {NULL, NULL},
- /* [ 243] = 2051 */ {NULL, NULL},
- /* [ 244] = 2052 */ {NULL, NULL},
- /* [ 245] = 2053 */ {__glXDisp_ColorTable, __glXDispSwap_ColorTable},
- /* [ 246] = 2054 */ {__glXDisp_ColorTableParameterfv,
- __glXDispSwap_ColorTableParameterfv},
- /* [ 247] = 2055 */ {__glXDisp_ColorTableParameteriv,
- __glXDispSwap_ColorTableParameteriv},
- /* [ 248] = 2056 */ {__glXDisp_CopyColorTable,
- __glXDispSwap_CopyColorTable},
- /* [ 249] = 2057 */ {NULL, NULL},
- /* [ 250] = 2058 */ {NULL, NULL},
- /* [ 251] = 2059 */ {NULL, NULL},
- /* [ 252] = 2060 */ {NULL, NULL},
- /* [ 253] = 2061 */ {NULL, NULL},
- /* [ 254] = 2062 */ {NULL, NULL},
- /* [ 255] = 2063 */ {NULL, NULL},
- /* [ 256] = 2064 */ {NULL, NULL},
- /* [ 257] = 2065 */ {__glXDisp_PointParameterf,
- __glXDispSwap_PointParameterf},
- /* [ 258] = 2066 */ {__glXDisp_PointParameterfv,
- __glXDispSwap_PointParameterfv},
- /* [ 259] = 2067 */ {NULL, NULL},
- /* [ 260] = 2068 */ {NULL, NULL},
- /* [ 261] = 2069 */ {NULL, NULL},
- /* [ 262] = 2070 */ {NULL, NULL},
- /* [ 263] = 2071 */ {NULL, NULL},
- /* [ 264] = 4096 */ {__glXDisp_BlendColor, __glXDispSwap_BlendColor},
- /* [ 265] = 4097 */ {__glXDisp_BlendEquation, __glXDispSwap_BlendEquation},
- /* [ 266] = 4098 */ {NULL, NULL},
- /* [ 267] = 4099 */ {__glXDisp_TexSubImage1D, __glXDispSwap_TexSubImage1D},
- /* [ 268] = 4100 */ {__glXDisp_TexSubImage2D, __glXDispSwap_TexSubImage2D},
- /* [ 269] = 4101 */ {__glXDisp_ConvolutionFilter1D,
- __glXDispSwap_ConvolutionFilter1D},
- /* [ 270] = 4102 */ {__glXDisp_ConvolutionFilter2D,
- __glXDispSwap_ConvolutionFilter2D},
- /* [ 271] = 4103 */ {__glXDisp_ConvolutionParameterf,
- __glXDispSwap_ConvolutionParameterf},
- /* [ 272] = 4104 */ {__glXDisp_ConvolutionParameterfv,
- __glXDispSwap_ConvolutionParameterfv},
- /* [ 273] = 4105 */ {__glXDisp_ConvolutionParameteri,
- __glXDispSwap_ConvolutionParameteri},
- /* [ 274] = 4106 */ {__glXDisp_ConvolutionParameteriv,
- __glXDispSwap_ConvolutionParameteriv},
- /* [ 275] = 4107 */ {__glXDisp_CopyConvolutionFilter1D,
- __glXDispSwap_CopyConvolutionFilter1D},
- /* [ 276] = 4108 */ {__glXDisp_CopyConvolutionFilter2D,
- __glXDispSwap_CopyConvolutionFilter2D},
- /* [ 277] = 4109 */ {__glXDisp_SeparableFilter2D,
- __glXDispSwap_SeparableFilter2D},
- /* [ 278] = 4110 */ {__glXDisp_Histogram, __glXDispSwap_Histogram},
- /* [ 279] = 4111 */ {__glXDisp_Minmax, __glXDispSwap_Minmax},
- /* [ 280] = 4112 */ {__glXDisp_ResetHistogram,
- __glXDispSwap_ResetHistogram},
- /* [ 281] = 4113 */ {__glXDisp_ResetMinmax, __glXDispSwap_ResetMinmax},
- /* [ 282] = 4114 */ {__glXDisp_TexImage3D, __glXDispSwap_TexImage3D},
- /* [ 283] = 4115 */ {__glXDisp_TexSubImage3D, __glXDispSwap_TexSubImage3D},
- /* [ 284] = 4116 */ {NULL, NULL},
- /* [ 285] = 4117 */ {__glXDisp_BindTexture, __glXDispSwap_BindTexture},
- /* [ 286] = 4118 */ {__glXDisp_PrioritizeTextures,
- __glXDispSwap_PrioritizeTextures},
- /* [ 287] = 4119 */ {__glXDisp_CopyTexImage1D,
- __glXDispSwap_CopyTexImage1D},
- /* [ 288] = 4120 */ {__glXDisp_CopyTexImage2D,
- __glXDispSwap_CopyTexImage2D},
- /* [ 289] = 4121 */ {__glXDisp_CopyTexSubImage1D,
- __glXDispSwap_CopyTexSubImage1D},
- /* [ 290] = 4122 */ {__glXDisp_CopyTexSubImage2D,
- __glXDispSwap_CopyTexSubImage2D},
- /* [ 291] = 4123 */ {__glXDisp_CopyTexSubImage3D,
- __glXDispSwap_CopyTexSubImage3D},
- /* [ 292] = 4124 */ {__glXDisp_FogCoordfvEXT, __glXDispSwap_FogCoordfvEXT},
- /* [ 293] = 4125 */ {__glXDisp_FogCoorddv, __glXDispSwap_FogCoorddv},
- /* [ 294] = 4126 */ {__glXDisp_SecondaryColor3bv,
- __glXDispSwap_SecondaryColor3bv},
- /* [ 295] = 4127 */ {__glXDisp_SecondaryColor3sv,
- __glXDispSwap_SecondaryColor3sv},
- /* [ 296] = 4176 */ {NULL, NULL},
- /* [ 297] = 4177 */ {NULL, NULL},
- /* [ 298] = 4178 */ {NULL, NULL},
- /* [ 299] = 4179 */ {NULL, NULL},
- /* [ 300] = 4180 */ {__glXDisp_BindProgramARB,
- __glXDispSwap_BindProgramARB},
- /* [ 301] = 4181 */ {NULL, NULL},
- /* [ 302] = 4182 */ {NULL, NULL},
- /* [ 303] = 4183 */ {NULL, NULL},
- /* [ 304] = 4184 */ {__glXDisp_ProgramEnvParameter4fvARB,
- __glXDispSwap_ProgramEnvParameter4fvARB},
- /* [ 305] = 4185 */ {__glXDisp_ProgramEnvParameter4dvARB,
- __glXDispSwap_ProgramEnvParameter4dvARB},
- /* [ 306] = 4186 */ {NULL, NULL},
- /* [ 307] = 4187 */ {NULL, NULL},
- /* [ 308] = 4188 */ {NULL, NULL},
- /* [ 309] = 4189 */ {__glXDisp_VertexAttrib1sv,
- __glXDispSwap_VertexAttrib1sv},
- /* [ 310] = 4190 */ {__glXDisp_VertexAttrib2sv,
- __glXDispSwap_VertexAttrib2sv},
- /* [ 311] = 4191 */ {__glXDisp_VertexAttrib3sv,
- __glXDispSwap_VertexAttrib3sv},
- /* [ 312] = 4192 */ {__glXDisp_VertexAttrib4sv,
- __glXDispSwap_VertexAttrib4sv},
- /* [ 313] = 4193 */ {__glXDisp_VertexAttrib1fvARB,
- __glXDispSwap_VertexAttrib1fvARB},
- /* [ 314] = 4194 */ {__glXDisp_VertexAttrib2fvARB,
- __glXDispSwap_VertexAttrib2fvARB},
- /* [ 315] = 4195 */ {__glXDisp_VertexAttrib3fvARB,
- __glXDispSwap_VertexAttrib3fvARB},
- /* [ 316] = 4196 */ {__glXDisp_VertexAttrib4fvARB,
- __glXDispSwap_VertexAttrib4fvARB},
- /* [ 317] = 4197 */ {__glXDisp_VertexAttrib1dv,
- __glXDispSwap_VertexAttrib1dv},
- /* [ 318] = 4198 */ {__glXDisp_VertexAttrib2dv,
- __glXDispSwap_VertexAttrib2dv},
- /* [ 319] = 4199 */ {__glXDisp_VertexAttrib3dv,
- __glXDispSwap_VertexAttrib3dv},
- /* [ 320] = 4200 */ {__glXDisp_VertexAttrib4dv,
- __glXDispSwap_VertexAttrib4dv},
- /* [ 321] = 4201 */ {__glXDisp_VertexAttrib4Nubv,
- __glXDispSwap_VertexAttrib4Nubv},
- /* [ 322] = 4202 */ {__glXDisp_VertexAttribs1svNV,
- __glXDispSwap_VertexAttribs1svNV},
- /* [ 323] = 4203 */ {__glXDisp_VertexAttribs2svNV,
- __glXDispSwap_VertexAttribs2svNV},
- /* [ 324] = 4204 */ {__glXDisp_VertexAttribs3svNV,
- __glXDispSwap_VertexAttribs3svNV},
- /* [ 325] = 4205 */ {__glXDisp_VertexAttribs4svNV,
- __glXDispSwap_VertexAttribs4svNV},
- /* [ 326] = 4206 */ {__glXDisp_VertexAttribs1fvNV,
- __glXDispSwap_VertexAttribs1fvNV},
- /* [ 327] = 4207 */ {__glXDisp_VertexAttribs2fvNV,
- __glXDispSwap_VertexAttribs2fvNV},
- /* [ 328] = 4208 */ {__glXDisp_VertexAttribs3fvNV,
- __glXDispSwap_VertexAttribs3fvNV},
- /* [ 329] = 4209 */ {__glXDisp_VertexAttribs4fvNV,
- __glXDispSwap_VertexAttribs4fvNV},
- /* [ 330] = 4210 */ {__glXDisp_VertexAttribs1dvNV,
- __glXDispSwap_VertexAttribs1dvNV},
- /* [ 331] = 4211 */ {__glXDisp_VertexAttribs2dvNV,
- __glXDispSwap_VertexAttribs2dvNV},
- /* [ 332] = 4212 */ {__glXDisp_VertexAttribs3dvNV,
- __glXDispSwap_VertexAttribs3dvNV},
- /* [ 333] = 4213 */ {__glXDisp_VertexAttribs4dvNV,
- __glXDispSwap_VertexAttribs4dvNV},
- /* [ 334] = 4214 */ {__glXDisp_VertexAttribs4ubvNV,
- __glXDispSwap_VertexAttribs4ubvNV},
- /* [ 335] = 4215 */ {__glXDisp_ProgramLocalParameter4fvARB,
- __glXDispSwap_ProgramLocalParameter4fvARB},
- /* [ 336] = 4216 */ {__glXDisp_ProgramLocalParameter4dvARB,
- __glXDispSwap_ProgramLocalParameter4dvARB},
- /* [ 337] = 4217 */ {__glXDisp_ProgramStringARB,
- __glXDispSwap_ProgramStringARB},
- /* [ 338] = 4218 */ {NULL, NULL},
- /* [ 339] = 4219 */ {NULL, NULL},
- /* [ 340] = 4220 */ {__glXDisp_ActiveStencilFaceEXT,
- __glXDispSwap_ActiveStencilFaceEXT},
- /* [ 341] = 4221 */ {__glXDisp_PointParameteri,
- __glXDispSwap_PointParameteri},
- /* [ 342] = 4222 */ {__glXDisp_PointParameteriv,
- __glXDispSwap_PointParameteriv},
- /* [ 343] = 4223 */ {NULL, NULL},
- /* [ 344] = 4224 */ {NULL, NULL},
- /* [ 345] = 4225 */ {NULL, NULL},
- /* [ 346] = 4226 */ {NULL, NULL},
- /* [ 347] = 4227 */ {NULL, NULL},
- /* [ 348] = 4228 */ {__glXDisp_BlendEquationSeparate,
- __glXDispSwap_BlendEquationSeparate},
- /* [ 349] = 4229 */ {NULL, NULL},
- /* [ 350] = 4230 */ {__glXDisp_VertexAttrib4bv,
- __glXDispSwap_VertexAttrib4bv},
- /* [ 351] = 4231 */ {__glXDisp_VertexAttrib4iv,
- __glXDispSwap_VertexAttrib4iv},
- /* [ 352] = 4232 */ {__glXDisp_VertexAttrib4ubv,
- __glXDispSwap_VertexAttrib4ubv},
- /* [ 353] = 4233 */ {__glXDisp_VertexAttrib4usv,
- __glXDispSwap_VertexAttrib4usv},
- /* [ 354] = 4234 */ {__glXDisp_VertexAttrib4uiv,
- __glXDispSwap_VertexAttrib4uiv},
- /* [ 355] = 4235 */ {__glXDisp_VertexAttrib4Nbv,
- __glXDispSwap_VertexAttrib4Nbv},
- /* [ 356] = 4236 */ {__glXDisp_VertexAttrib4Nsv,
- __glXDispSwap_VertexAttrib4Nsv},
- /* [ 357] = 4237 */ {__glXDisp_VertexAttrib4Niv,
- __glXDispSwap_VertexAttrib4Niv},
- /* [ 358] = 4238 */ {__glXDisp_VertexAttrib4Nusv,
- __glXDispSwap_VertexAttrib4Nusv},
- /* [ 359] = 4239 */ {__glXDisp_VertexAttrib4Nuiv,
- __glXDispSwap_VertexAttrib4Nuiv},
- /* [ 360] = 4320 */ {__glXDisp_DeleteFramebuffers,
- __glXDispSwap_DeleteFramebuffers},
- /* [ 361] = 4321 */ {__glXDisp_FramebufferTexture1D,
- __glXDispSwap_FramebufferTexture1D},
- /* [ 362] = 4322 */ {__glXDisp_FramebufferTexture2D,
- __glXDispSwap_FramebufferTexture2D},
- /* [ 363] = 4323 */ {__glXDisp_FramebufferTexture3D,
- __glXDispSwap_FramebufferTexture3D},
- /* [ 364] = 4324 */ {__glXDisp_FramebufferRenderbuffer,
- __glXDispSwap_FramebufferRenderbuffer},
- /* [ 365] = 4325 */ {__glXDisp_GenerateMipmap,
- __glXDispSwap_GenerateMipmap},
- /* [ 366] = 4326 */ {NULL, NULL},
- /* [ 367] = 4327 */ {NULL, NULL},
- /* [ 368] = 4328 */ {NULL, NULL},
- /* [ 369] = 4329 */ {NULL, NULL},
- /* [ 370] = 4330 */ {__glXDisp_BlitFramebuffer,
- __glXDispSwap_BlitFramebuffer},
- /* [ 371] = 4331 */ {__glXDisp_RenderbufferStorageMultisample,
- __glXDispSwap_RenderbufferStorageMultisample},
- /* [ 372] = 4332 */ {NULL, NULL},
- /* [ 373] = 4333 */ {NULL, NULL},
- /* [ 374] = 4334 */ {NULL, NULL},
- /* [ 375] = 4335 */ {NULL, NULL},
- /* [ 376] = 4128 */ {__glXDisp_SecondaryColor3iv,
- __glXDispSwap_SecondaryColor3iv},
- /* [ 377] = 4129 */ {__glXDisp_SecondaryColor3fvEXT,
- __glXDispSwap_SecondaryColor3fvEXT},
- /* [ 378] = 4130 */ {__glXDisp_SecondaryColor3dv,
- __glXDispSwap_SecondaryColor3dv},
- /* [ 379] = 4131 */ {__glXDisp_SecondaryColor3ubv,
- __glXDispSwap_SecondaryColor3ubv},
- /* [ 380] = 4132 */ {__glXDisp_SecondaryColor3usv,
- __glXDispSwap_SecondaryColor3usv},
- /* [ 381] = 4133 */ {__glXDisp_SecondaryColor3uiv,
- __glXDispSwap_SecondaryColor3uiv},
- /* [ 382] = 4134 */ {__glXDisp_BlendFuncSeparate,
- __glXDispSwap_BlendFuncSeparate},
- /* [ 383] = 4135 */ {NULL, NULL},
- /* [ 384] = 4264 */ {NULL, NULL},
- /* [ 385] = 4265 */ {__glXDisp_VertexAttrib1svNV,
- __glXDispSwap_VertexAttrib1svNV},
- /* [ 386] = 4266 */ {__glXDisp_VertexAttrib2svNV,
- __glXDispSwap_VertexAttrib2svNV},
- /* [ 387] = 4267 */ {__glXDisp_VertexAttrib3svNV,
- __glXDispSwap_VertexAttrib3svNV},
- /* [ 388] = 4268 */ {__glXDisp_VertexAttrib4svNV,
- __glXDispSwap_VertexAttrib4svNV},
- /* [ 389] = 4269 */ {__glXDisp_VertexAttrib1fvNV,
- __glXDispSwap_VertexAttrib1fvNV},
- /* [ 390] = 4270 */ {__glXDisp_VertexAttrib2fvNV,
- __glXDispSwap_VertexAttrib2fvNV},
- /* [ 391] = 4271 */ {__glXDisp_VertexAttrib3fvNV,
- __glXDispSwap_VertexAttrib3fvNV},
- /* [ 392] = 4272 */ {__glXDisp_VertexAttrib4fvNV,
- __glXDispSwap_VertexAttrib4fvNV},
- /* [ 393] = 4273 */ {__glXDisp_VertexAttrib1dvNV,
- __glXDispSwap_VertexAttrib1dvNV},
- /* [ 394] = 4274 */ {__glXDisp_VertexAttrib2dvNV,
- __glXDispSwap_VertexAttrib2dvNV},
- /* [ 395] = 4275 */ {__glXDisp_VertexAttrib3dvNV,
- __glXDispSwap_VertexAttrib3dvNV},
- /* [ 396] = 4276 */ {__glXDisp_VertexAttrib4dvNV,
- __glXDispSwap_VertexAttrib4dvNV},
- /* [ 397] = 4277 */ {__glXDisp_VertexAttrib4ubvNV,
- __glXDispSwap_VertexAttrib4ubvNV},
- /* [ 398] = 4278 */ {NULL, NULL},
- /* [ 399] = 4279 */ {NULL, NULL},
- /* [ 400] = 4312 */ {NULL, NULL},
- /* [ 401] = 4313 */ {NULL, NULL},
- /* [ 402] = 4314 */ {NULL, NULL},
- /* [ 403] = 4315 */ {NULL, NULL},
- /* [ 404] = 4316 */ {__glXDisp_BindRenderbuffer,
- __glXDispSwap_BindRenderbuffer},
- /* [ 405] = 4317 */ {__glXDisp_DeleteRenderbuffers,
- __glXDispSwap_DeleteRenderbuffers},
- /* [ 406] = 4318 */ {__glXDisp_RenderbufferStorage,
- __glXDispSwap_RenderbufferStorage},
- /* [ 407] = 4319 */ {__glXDisp_BindFramebuffer,
- __glXDispSwap_BindFramebuffer},
-};
-
-static const int_fast16_t Render_size_table[408][2] = {
- /* [ 0] = 0 */ {0, ~0},
- /* [ 1] = 1 */ {8, ~0},
- /* [ 2] = 2 */ {12, 0},
- /* [ 3] = 3 */ {8, ~0},
- /* [ 4] = 4 */ {8, ~0},
- /* [ 5] = 5 */ {48, 1},
- /* [ 6] = 6 */ {8, ~0},
- /* [ 7] = 7 */ {28, ~0},
- /* [ 8] = 8 */ {16, ~0},
- /* [ 9] = 9 */ {16, ~0},
- /* [ 10] = 10 */ {12, ~0},
- /* [ 11] = 11 */ {8, ~0},
- /* [ 12] = 12 */ {16, ~0},
- /* [ 13] = 13 */ {12, ~0},
- /* [ 14] = 14 */ {8, ~0},
- /* [ 15] = 15 */ {36, ~0},
- /* [ 16] = 16 */ {20, ~0},
- /* [ 17] = 17 */ {20, ~0},
- /* [ 18] = 18 */ {12, ~0},
- /* [ 19] = 19 */ {8, ~0},
- /* [ 20] = 20 */ {20, ~0},
- /* [ 21] = 21 */ {12, ~0},
- /* [ 22] = 22 */ {8, ~0},
- /* [ 23] = 23 */ {4, ~0},
- /* [ 24] = 24 */ {12, ~0},
- /* [ 25] = 25 */ {8, ~0},
- /* [ 26] = 26 */ {8, ~0},
- /* [ 27] = 27 */ {8, ~0},
- /* [ 28] = 28 */ {8, ~0},
- /* [ 29] = 29 */ {28, ~0},
- /* [ 30] = 30 */ {16, ~0},
- /* [ 31] = 31 */ {16, ~0},
- /* [ 32] = 32 */ {12, ~0},
- /* [ 33] = 33 */ {20, ~0},
- /* [ 34] = 34 */ {12, ~0},
- /* [ 35] = 35 */ {12, ~0},
- /* [ 36] = 36 */ {8, ~0},
- /* [ 37] = 37 */ {28, ~0},
- /* [ 38] = 38 */ {16, ~0},
- /* [ 39] = 39 */ {16, ~0},
- /* [ 40] = 40 */ {12, ~0},
- /* [ 41] = 41 */ {36, ~0},
- /* [ 42] = 42 */ {20, ~0},
- /* [ 43] = 43 */ {20, ~0},
- /* [ 44] = 44 */ {12, ~0},
- /* [ 45] = 45 */ {36, ~0},
- /* [ 46] = 46 */ {20, ~0},
- /* [ 47] = 47 */ {20, ~0},
- /* [ 48] = 48 */ {12, ~0},
- /* [ 49] = 49 */ {12, ~0},
- /* [ 50] = 50 */ {8, ~0},
- /* [ 51] = 51 */ {8, ~0},
- /* [ 52] = 52 */ {8, ~0},
- /* [ 53] = 53 */ {20, ~0},
- /* [ 54] = 54 */ {12, ~0},
- /* [ 55] = 55 */ {12, ~0},
- /* [ 56] = 56 */ {8, ~0},
- /* [ 57] = 57 */ {28, ~0},
- /* [ 58] = 58 */ {16, ~0},
- /* [ 59] = 59 */ {16, ~0},
- /* [ 60] = 60 */ {12, ~0},
- /* [ 61] = 61 */ {36, ~0},
- /* [ 62] = 62 */ {20, ~0},
- /* [ 63] = 63 */ {20, ~0},
- /* [ 64] = 64 */ {12, ~0},
- /* [ 65] = 65 */ {20, ~0},
- /* [ 66] = 66 */ {12, ~0},
- /* [ 67] = 67 */ {12, ~0},
- /* [ 68] = 68 */ {8, ~0},
- /* [ 69] = 69 */ {28, ~0},
- /* [ 70] = 70 */ {16, ~0},
- /* [ 71] = 71 */ {16, ~0},
- /* [ 72] = 72 */ {12, ~0},
- /* [ 73] = 73 */ {36, ~0},
- /* [ 74] = 74 */ {20, ~0},
- /* [ 75] = 75 */ {20, ~0},
- /* [ 76] = 76 */ {12, ~0},
- /* [ 77] = 77 */ {40, ~0},
- /* [ 78] = 78 */ {12, ~0},
- /* [ 79] = 79 */ {8, ~0},
- /* [ 80] = 80 */ {12, ~0},
- /* [ 81] = 81 */ {8, 2},
- /* [ 82] = 82 */ {12, ~0},
- /* [ 83] = 83 */ {8, 3},
- /* [ 84] = 84 */ {8, ~0},
- /* [ 85] = 85 */ {12, ~0},
- /* [ 86] = 86 */ {16, ~0},
- /* [ 87] = 87 */ {12, 4},
- /* [ 88] = 88 */ {16, ~0},
- /* [ 89] = 89 */ {12, 5},
- /* [ 90] = 90 */ {12, ~0},
- /* [ 91] = 91 */ {8, 6},
- /* [ 92] = 92 */ {12, ~0},
- /* [ 93] = 93 */ {8, 7},
- /* [ 94] = 94 */ {12, ~0},
- /* [ 95] = 95 */ {8, ~0},
- /* [ 96] = 96 */ {16, ~0},
- /* [ 97] = 97 */ {12, 8},
- /* [ 98] = 98 */ {16, ~0},
- /* [ 99] = 99 */ {12, 9},
- /* [100] = 100 */ {8, ~0},
- /* [101] = 101 */ {12, ~0},
- /* [102] = 102 */ {24, 10},
- /* [103] = 103 */ {20, ~0},
- /* [104] = 104 */ {8, ~0},
- /* [105] = 105 */ {16, ~0},
- /* [106] = 106 */ {12, 11},
- /* [107] = 107 */ {16, ~0},
- /* [108] = 108 */ {12, 12},
- /* [109] = 109 */ {56, 13},
- /* [110] = 110 */ {56, 14},
- /* [111] = 111 */ {16, ~0},
- /* [112] = 112 */ {12, 15},
- /* [113] = 113 */ {16, ~0},
- /* [114] = 114 */ {12, 16},
- /* [115] = 115 */ {20, ~0},
- /* [116] = 116 */ {12, 17},
- /* [117] = 117 */ {16, ~0},
- /* [118] = 118 */ {12, 18},
- /* [119] = 119 */ {16, ~0},
- /* [120] = 120 */ {12, 19},
- /* [121] = 121 */ {4, ~0},
- /* [122] = 122 */ {8, ~0},
- /* [123] = 123 */ {8, ~0},
- /* [124] = 124 */ {4, ~0},
- /* [125] = 125 */ {8, ~0},
- /* [126] = 126 */ {8, ~0},
- /* [127] = 127 */ {8, ~0},
- /* [128] = 128 */ {20, ~0},
- /* [129] = 129 */ {8, ~0},
- /* [130] = 130 */ {20, ~0},
- /* [131] = 131 */ {8, ~0},
- /* [132] = 132 */ {12, ~0},
- /* [133] = 133 */ {8, ~0},
- /* [134] = 134 */ {8, ~0},
- /* [135] = 135 */ {8, ~0},
- /* [136] = 136 */ {8, ~0},
- /* [137] = 137 */ {12, ~0},
- /* [138] = 138 */ {8, ~0},
- /* [139] = 139 */ {8, ~0},
- /* [140] = 140 */ {0, ~0},
- /* [141] = 141 */ {4, ~0},
- /* [142] = 142 */ {8, ~0},
- /* [143] = 143 */ {28, 20},
- /* [144] = 144 */ {20, 21},
- /* [145] = 145 */ {48, 22},
- /* [146] = 146 */ {32, 23},
- /* [147] = 147 */ {24, ~0},
- /* [148] = 148 */ {16, ~0},
- /* [149] = 149 */ {44, ~0},
- /* [150] = 150 */ {28, ~0},
- /* [151] = 151 */ {12, ~0},
- /* [152] = 152 */ {8, ~0},
- /* [153] = 153 */ {20, ~0},
- /* [154] = 154 */ {12, ~0},
- /* [155] = 155 */ {16, ~0},
- /* [156] = 156 */ {8, ~0},
- /* [157] = 157 */ {24, ~0},
- /* [158] = 158 */ {12, ~0},
- /* [159] = 159 */ {12, ~0},
- /* [160] = 160 */ {12, ~0},
- /* [161] = 161 */ {8, ~0},
- /* [162] = 162 */ {16, ~0},
- /* [163] = 163 */ {16, ~0},
- /* [164] = 164 */ {8, ~0},
- /* [165] = 165 */ {12, ~0},
- /* [166] = 166 */ {12, ~0},
- /* [167] = 167 */ {12, ~0},
- /* [168] = 168 */ {12, 24},
- /* [169] = 169 */ {12, 25},
- /* [170] = 170 */ {12, 26},
- /* [171] = 171 */ {8, ~0},
- /* [172] = 172 */ {24, ~0},
- /* [173] = 173 */ {40, 27},
- /* [174] = 174 */ {20, ~0},
- /* [175] = 175 */ {52, ~0},
- /* [176] = 176 */ {4, ~0},
- /* [177] = 177 */ {68, ~0},
- /* [178] = 178 */ {132, ~0},
- /* [179] = 179 */ {8, ~0},
- /* [180] = 180 */ {68, ~0},
- /* [181] = 181 */ {132, ~0},
- /* [182] = 182 */ {52, ~0},
- /* [183] = 183 */ {4, ~0},
- /* [184] = 184 */ {4, ~0},
- /* [185] = 185 */ {36, ~0},
- /* [186] = 186 */ {20, ~0},
- /* [187] = 187 */ {28, ~0},
- /* [188] = 188 */ {16, ~0},
- /* [189] = 189 */ {28, ~0},
- /* [190] = 190 */ {16, ~0},
- /* [191] = 191 */ {20, ~0},
- /* [192] = 192 */ {12, ~0},
- /* [193] = 193 */ {16, 28},
- /* [194] = 194 */ {8, ~0},
- /* [195] = 195 */ {44, 29},
- /* [196] = 196 */ {24, ~0},
- /* [197] = 197 */ {8, ~0},
- /* [198] = 198 */ {16, ~0},
- /* [199] = 199 */ {12, ~0},
- /* [200] = 200 */ {12, ~0},
- /* [201] = 201 */ {12, ~0},
- /* [202] = 202 */ {24, ~0},
- /* [203] = 203 */ {16, ~0},
- /* [204] = 204 */ {16, ~0},
- /* [205] = 205 */ {12, ~0},
- /* [206] = 206 */ {32, ~0},
- /* [207] = 207 */ {20, ~0},
- /* [208] = 208 */ {20, ~0},
- /* [209] = 209 */ {16, ~0},
- /* [210] = 210 */ {40, ~0},
- /* [211] = 211 */ {24, ~0},
- /* [212] = 212 */ {24, ~0},
- /* [213] = 213 */ {16, ~0},
- /* [214] = 214 */ {28, 30},
- /* [215] = 215 */ {32, 31},
- /* [216] = 216 */ {36, 32},
- /* [217] = 217 */ {28, 33},
- /* [218] = 218 */ {36, 34},
- /* [219] = 219 */ {44, 35},
- /* [220] = 220 */ {0, ~0},
- /* [221] = 221 */ {0, ~0},
- /* [222] = 222 */ {0, ~0},
- /* [223] = 223 */ {0, ~0},
- /* [224] = 224 */ {0, ~0},
- /* [225] = 225 */ {0, ~0},
- /* [226] = 226 */ {0, ~0},
- /* [227] = 227 */ {0, ~0},
- /* [228] = 228 */ {0, ~0},
- /* [229] = 229 */ {12, ~0},
- /* [230] = 230 */ {16, ~0},
- /* [231] = 231 */ {12, ~0},
- /* [232] = 232 */ {8, ~0},
- /* [233] = 233 */ {8, 36},
- /* [234] = 234 */ {12, ~0},
- /* [235] = 235 */ {0, ~0},
- /* [236] = 236 */ {0, ~0},
- /* [237] = 237 */ {24, ~0},
- /* [238] = 238 */ {0, ~0},
- /* [239] = 239 */ {0, ~0},
- /* [240] = 2048 */ {0, ~0},
- /* [241] = 2049 */ {0, ~0},
- /* [242] = 2050 */ {0, ~0},
- /* [243] = 2051 */ {0, ~0},
- /* [244] = 2052 */ {0, ~0},
- /* [245] = 2053 */ {44, 37},
- /* [246] = 2054 */ {12, 38},
- /* [247] = 2055 */ {12, 39},
- /* [248] = 2056 */ {24, ~0},
- /* [249] = 2057 */ {0, ~0},
- /* [250] = 2058 */ {0, ~0},
- /* [251] = 2059 */ {0, ~0},
- /* [252] = 2060 */ {0, ~0},
- /* [253] = 2061 */ {0, ~0},
- /* [254] = 2062 */ {0, ~0},
- /* [255] = 2063 */ {0, ~0},
- /* [256] = 2064 */ {0, ~0},
- /* [257] = 2065 */ {12, ~0},
- /* [258] = 2066 */ {8, 40},
- /* [259] = 2067 */ {0, ~0},
- /* [260] = 2068 */ {0, ~0},
- /* [261] = 2069 */ {0, ~0},
- /* [262] = 2070 */ {0, ~0},
- /* [263] = 2071 */ {0, ~0},
- /* [264] = 4096 */ {20, ~0},
- /* [265] = 4097 */ {8, ~0},
- /* [266] = 4098 */ {0, ~0},
- /* [267] = 4099 */ {60, 41},
- /* [268] = 4100 */ {60, 42},
- /* [269] = 4101 */ {48, 43},
- /* [270] = 4102 */ {48, 44},
- /* [271] = 4103 */ {16, ~0},
- /* [272] = 4104 */ {12, 45},
- /* [273] = 4105 */ {16, ~0},
- /* [274] = 4106 */ {12, 46},
- /* [275] = 4107 */ {24, ~0},
- /* [276] = 4108 */ {28, ~0},
- /* [277] = 4109 */ {32, 47},
- /* [278] = 4110 */ {20, ~0},
- /* [279] = 4111 */ {16, ~0},
- /* [280] = 4112 */ {8, ~0},
- /* [281] = 4113 */ {8, ~0},
- /* [282] = 4114 */ {84, 48},
- /* [283] = 4115 */ {92, 49},
- /* [284] = 4116 */ {0, ~0},
- /* [285] = 4117 */ {12, ~0},
- /* [286] = 4118 */ {8, 50},
- /* [287] = 4119 */ {32, ~0},
- /* [288] = 4120 */ {36, ~0},
- /* [289] = 4121 */ {28, ~0},
- /* [290] = 4122 */ {36, ~0},
- /* [291] = 4123 */ {40, ~0},
- /* [292] = 4124 */ {8, ~0},
- /* [293] = 4125 */ {12, ~0},
- /* [294] = 4126 */ {8, ~0},
- /* [295] = 4127 */ {12, ~0},
- /* [296] = 4176 */ {0, ~0},
- /* [297] = 4177 */ {0, ~0},
- /* [298] = 4178 */ {0, ~0},
- /* [299] = 4179 */ {0, ~0},
- /* [300] = 4180 */ {12, ~0},
- /* [301] = 4181 */ {0, ~0},
- /* [302] = 4182 */ {0, ~0},
- /* [303] = 4183 */ {0, ~0},
- /* [304] = 4184 */ {28, ~0},
- /* [305] = 4185 */ {44, ~0},
- /* [306] = 4186 */ {0, ~0},
- /* [307] = 4187 */ {0, ~0},
- /* [308] = 4188 */ {0, ~0},
- /* [309] = 4189 */ {12, ~0},
- /* [310] = 4190 */ {12, ~0},
- /* [311] = 4191 */ {16, ~0},
- /* [312] = 4192 */ {16, ~0},
- /* [313] = 4193 */ {12, ~0},
- /* [314] = 4194 */ {16, ~0},
- /* [315] = 4195 */ {20, ~0},
- /* [316] = 4196 */ {24, ~0},
- /* [317] = 4197 */ {16, ~0},
- /* [318] = 4198 */ {24, ~0},
- /* [319] = 4199 */ {32, ~0},
- /* [320] = 4200 */ {40, ~0},
- /* [321] = 4201 */ {12, ~0},
- /* [322] = 4202 */ {12, 51},
- /* [323] = 4203 */ {12, 52},
- /* [324] = 4204 */ {12, 53},
- /* [325] = 4205 */ {12, 54},
- /* [326] = 4206 */ {12, 55},
- /* [327] = 4207 */ {12, 56},
- /* [328] = 4208 */ {12, 57},
- /* [329] = 4209 */ {12, 58},
- /* [330] = 4210 */ {12, 59},
- /* [331] = 4211 */ {12, 60},
- /* [332] = 4212 */ {12, 61},
- /* [333] = 4213 */ {12, 62},
- /* [334] = 4214 */ {12, 63},
- /* [335] = 4215 */ {28, ~0},
- /* [336] = 4216 */ {44, ~0},
- /* [337] = 4217 */ {16, 64},
- /* [338] = 4218 */ {0, ~0},
- /* [339] = 4219 */ {0, ~0},
- /* [340] = 4220 */ {8, ~0},
- /* [341] = 4221 */ {12, ~0},
- /* [342] = 4222 */ {8, 65},
- /* [343] = 4223 */ {0, ~0},
- /* [344] = 4224 */ {0, ~0},
- /* [345] = 4225 */ {0, ~0},
- /* [346] = 4226 */ {0, ~0},
- /* [347] = 4227 */ {0, ~0},
- /* [348] = 4228 */ {12, ~0},
- /* [349] = 4229 */ {0, ~0},
- /* [350] = 4230 */ {12, ~0},
- /* [351] = 4231 */ {24, ~0},
- /* [352] = 4232 */ {12, ~0},
- /* [353] = 4233 */ {16, ~0},
- /* [354] = 4234 */ {24, ~0},
- /* [355] = 4235 */ {12, ~0},
- /* [356] = 4236 */ {16, ~0},
- /* [357] = 4237 */ {24, ~0},
- /* [358] = 4238 */ {16, ~0},
- /* [359] = 4239 */ {24, ~0},
- /* [360] = 4320 */ {8, 66},
- /* [361] = 4321 */ {24, ~0},
- /* [362] = 4322 */ {24, ~0},
- /* [363] = 4323 */ {28, ~0},
- /* [364] = 4324 */ {20, ~0},
- /* [365] = 4325 */ {8, ~0},
- /* [366] = 4326 */ {0, ~0},
- /* [367] = 4327 */ {0, ~0},
- /* [368] = 4328 */ {0, ~0},
- /* [369] = 4329 */ {0, ~0},
- /* [370] = 4330 */ {44, ~0},
- /* [371] = 4331 */ {24, ~0},
- /* [372] = 4332 */ {0, ~0},
- /* [373] = 4333 */ {0, ~0},
- /* [374] = 4334 */ {0, ~0},
- /* [375] = 4335 */ {0, ~0},
- /* [376] = 4128 */ {16, ~0},
- /* [377] = 4129 */ {16, ~0},
- /* [378] = 4130 */ {28, ~0},
- /* [379] = 4131 */ {8, ~0},
- /* [380] = 4132 */ {12, ~0},
- /* [381] = 4133 */ {16, ~0},
- /* [382] = 4134 */ {20, ~0},
- /* [383] = 4135 */ {0, ~0},
- /* [384] = 4264 */ {0, ~0},
- /* [385] = 4265 */ {12, ~0},
- /* [386] = 4266 */ {12, ~0},
- /* [387] = 4267 */ {16, ~0},
- /* [388] = 4268 */ {16, ~0},
- /* [389] = 4269 */ {12, ~0},
- /* [390] = 4270 */ {16, ~0},
- /* [391] = 4271 */ {20, ~0},
- /* [392] = 4272 */ {24, ~0},
- /* [393] = 4273 */ {16, ~0},
- /* [394] = 4274 */ {24, ~0},
- /* [395] = 4275 */ {32, ~0},
- /* [396] = 4276 */ {40, ~0},
- /* [397] = 4277 */ {12, ~0},
- /* [398] = 4278 */ {0, ~0},
- /* [399] = 4279 */ {0, ~0},
- /* [400] = 4312 */ {0, ~0},
- /* [401] = 4313 */ {0, ~0},
- /* [402] = 4314 */ {0, ~0},
- /* [403] = 4315 */ {0, ~0},
- /* [404] = 4316 */ {12, ~0},
- /* [405] = 4317 */ {8, 67},
- /* [406] = 4318 */ {20, ~0},
- /* [407] = 4319 */ {12, ~0},
-};
-
-static const gl_proto_size_func Render_size_func_table[68] = {
- __glXCallListsReqSize,
- __glXBitmapReqSize,
- __glXFogfvReqSize,
- __glXFogivReqSize,
- __glXLightfvReqSize,
- __glXLightivReqSize,
- __glXLightModelfvReqSize,
- __glXLightModelivReqSize,
- __glXMaterialfvReqSize,
- __glXMaterialivReqSize,
- __glXPolygonStippleReqSize,
- __glXTexParameterfvReqSize,
- __glXTexParameterivReqSize,
- __glXTexImage1DReqSize,
- __glXTexImage2DReqSize,
- __glXTexEnvfvReqSize,
- __glXTexEnvivReqSize,
- __glXTexGendvReqSize,
- __glXTexGenfvReqSize,
- __glXTexGenivReqSize,
- __glXMap1dReqSize,
- __glXMap1fReqSize,
- __glXMap2dReqSize,
- __glXMap2fReqSize,
- __glXPixelMapfvReqSize,
- __glXPixelMapuivReqSize,
- __glXPixelMapusvReqSize,
- __glXDrawPixelsReqSize,
- __glXDrawArraysReqSize,
- __glXColorSubTableReqSize,
- __glXCompressedTexImage1DReqSize,
- __glXCompressedTexImage2DReqSize,
- __glXCompressedTexImage3DReqSize,
- __glXCompressedTexSubImage1DReqSize,
- __glXCompressedTexSubImage2DReqSize,
- __glXCompressedTexSubImage3DReqSize,
- __glXDrawBuffersReqSize,
- __glXColorTableReqSize,
- __glXColorTableParameterfvReqSize,
- __glXColorTableParameterivReqSize,
- __glXPointParameterfvReqSize,
- __glXTexSubImage1DReqSize,
- __glXTexSubImage2DReqSize,
- __glXConvolutionFilter1DReqSize,
- __glXConvolutionFilter2DReqSize,
- __glXConvolutionParameterfvReqSize,
- __glXConvolutionParameterivReqSize,
- __glXSeparableFilter2DReqSize,
- __glXTexImage3DReqSize,
- __glXTexSubImage3DReqSize,
- __glXPrioritizeTexturesReqSize,
- __glXVertexAttribs1svNVReqSize,
- __glXVertexAttribs2svNVReqSize,
- __glXVertexAttribs3svNVReqSize,
- __glXVertexAttribs4svNVReqSize,
- __glXVertexAttribs1fvNVReqSize,
- __glXVertexAttribs2fvNVReqSize,
- __glXVertexAttribs3fvNVReqSize,
- __glXVertexAttribs4fvNVReqSize,
- __glXVertexAttribs1dvNVReqSize,
- __glXVertexAttribs2dvNVReqSize,
- __glXVertexAttribs3dvNVReqSize,
- __glXVertexAttribs4dvNVReqSize,
- __glXVertexAttribs4ubvNVReqSize,
- __glXProgramStringARBReqSize,
- __glXPointParameterivReqSize,
- __glXDeleteFramebuffersReqSize,
- __glXDeleteRenderbuffersReqSize,
-};
-
-const struct __glXDispatchInfo Render_dispatch_info = {
- 13,
- Render_dispatch_tree,
- Render_function_table,
- Render_size_table,
- Render_size_func_table
-};
-
-/*****************************************************************/
-/* tree depth = 12 */
-static const int_fast16_t VendorPriv_dispatch_tree[152] = {
- /* [0] -> opcode range [0, 131072], node depth 1 */
- 2,
- 5,
- EMPTY_LEAF,
- 119,
- EMPTY_LEAF,
-
- /* [5] -> opcode range [0, 32768], node depth 2 */
- 1,
- 8,
- EMPTY_LEAF,
-
- /* [8] -> opcode range [0, 16384], node depth 3 */
- 1,
- 11,
- EMPTY_LEAF,
-
- /* [11] -> opcode range [0, 8192], node depth 4 */
- 2,
- 16,
- EMPTY_LEAF,
- 78,
- EMPTY_LEAF,
-
- /* [16] -> opcode range [0, 2048], node depth 5 */
- 2,
- 21,
- EMPTY_LEAF,
- 36,
- EMPTY_LEAF,
-
- /* [21] -> opcode range [0, 512], node depth 6 */
- 1,
- 24,
- EMPTY_LEAF,
-
- /* [24] -> opcode range [0, 256], node depth 7 */
- 1,
- 27,
- EMPTY_LEAF,
-
- /* [27] -> opcode range [0, 128], node depth 8 */
- 1,
- 30,
- EMPTY_LEAF,
-
- /* [30] -> opcode range [0, 64], node depth 9 */
- 1,
- 33,
- EMPTY_LEAF,
-
- /* [33] -> opcode range [0, 32], node depth 10 */
- 1,
- LEAF(0),
- EMPTY_LEAF,
-
- /* [36] -> opcode range [1024, 1536], node depth 6 */
- 2,
- 41,
- EMPTY_LEAF,
- 53,
- 67,
-
- /* [41] -> opcode range [1024, 1152], node depth 7 */
- 1,
- 44,
- EMPTY_LEAF,
-
- /* [44] -> opcode range [1024, 1088], node depth 8 */
- 1,
- 47,
- EMPTY_LEAF,
-
- /* [47] -> opcode range [1024, 1056], node depth 9 */
- 1,
- 50,
- EMPTY_LEAF,
-
- /* [50] -> opcode range [1024, 1040], node depth 10 */
- 1,
- LEAF(16),
- EMPTY_LEAF,
-
- /* [53] -> opcode range [1280, 1408], node depth 7 */
- 1,
- 56,
- EMPTY_LEAF,
-
- /* [56] -> opcode range [1280, 1344], node depth 8 */
- 2,
- 61,
- LEAF(24),
- EMPTY_LEAF,
- 64,
-
- /* [61] -> opcode range [1280, 1296], node depth 9 */
- 1,
- EMPTY_LEAF,
- LEAF(40),
-
- /* [64] -> opcode range [1328, 1344], node depth 9 */
- 1,
- LEAF(48),
- EMPTY_LEAF,
-
- /* [67] -> opcode range [1408, 1536], node depth 7 */
- 1,
- 70,
- EMPTY_LEAF,
-
- /* [70] -> opcode range [1408, 1472], node depth 8 */
- 1,
- 73,
- EMPTY_LEAF,
-
- /* [73] -> opcode range [1408, 1440], node depth 9 */
- 2,
- EMPTY_LEAF,
- LEAF(56),
- LEAF(64),
- EMPTY_LEAF,
-
- /* [78] -> opcode range [4096, 6144], node depth 5 */
- 2,
- 83,
- EMPTY_LEAF,
- 101,
- EMPTY_LEAF,
-
- /* [83] -> opcode range [4096, 4608], node depth 6 */
- 1,
- 86,
- EMPTY_LEAF,
-
- /* [86] -> opcode range [4096, 4352], node depth 7 */
- 1,
- 89,
- EMPTY_LEAF,
-
- /* [89] -> opcode range [4096, 4224], node depth 8 */
- 1,
- 92,
- EMPTY_LEAF,
-
- /* [92] -> opcode range [4096, 4160], node depth 9 */
- 1,
- 95,
- EMPTY_LEAF,
-
- /* [95] -> opcode range [4096, 4128], node depth 10 */
- 1,
- 98,
- EMPTY_LEAF,
-
- /* [98] -> opcode range [4096, 4112], node depth 11 */
- 1,
- LEAF(72),
- EMPTY_LEAF,
-
- /* [101] -> opcode range [5120, 5632], node depth 6 */
- 1,
- 104,
- EMPTY_LEAF,
-
- /* [104] -> opcode range [5120, 5376], node depth 7 */
- 1,
- 107,
- EMPTY_LEAF,
-
- /* [107] -> opcode range [5120, 5248], node depth 8 */
- 1,
- 110,
- EMPTY_LEAF,
-
- /* [110] -> opcode range [5120, 5184], node depth 9 */
- 1,
- EMPTY_LEAF,
- 113,
-
- /* [113] -> opcode range [5152, 5184], node depth 10 */
- 1,
- 116,
- EMPTY_LEAF,
-
- /* [116] -> opcode range [5152, 5168], node depth 11 */
- 1,
- LEAF(80),
- EMPTY_LEAF,
-
- /* [119] -> opcode range [65536, 98304], node depth 2 */
- 1,
- 122,
- EMPTY_LEAF,
-
- /* [122] -> opcode range [65536, 81920], node depth 3 */
- 1,
- 125,
- EMPTY_LEAF,
-
- /* [125] -> opcode range [65536, 73728], node depth 4 */
- 1,
- 128,
- EMPTY_LEAF,
-
- /* [128] -> opcode range [65536, 69632], node depth 5 */
- 1,
- 131,
- EMPTY_LEAF,
-
- /* [131] -> opcode range [65536, 67584], node depth 6 */
- 1,
- 134,
- EMPTY_LEAF,
-
- /* [134] -> opcode range [65536, 66560], node depth 7 */
- 1,
- 137,
- EMPTY_LEAF,
-
- /* [137] -> opcode range [65536, 66048], node depth 8 */
- 1,
- 140,
- EMPTY_LEAF,
-
- /* [140] -> opcode range [65536, 65792], node depth 9 */
- 1,
- 143,
- EMPTY_LEAF,
-
- /* [143] -> opcode range [65536, 65664], node depth 10 */
- 1,
- 146,
- EMPTY_LEAF,
-
- /* [146] -> opcode range [65536, 65600], node depth 11 */
- 1,
- 149,
- EMPTY_LEAF,
-
- /* [149] -> opcode range [65536, 65568], node depth 12 */
- 1,
- LEAF(88),
- EMPTY_LEAF,
-
-};
-
-static const void *VendorPriv_function_table[104][2] = {
- /* [ 0] = 0 */ {NULL, NULL},
- /* [ 1] = 1 */ {__glXDisp_GetConvolutionFilterEXT,
- __glXDispSwap_GetConvolutionFilterEXT},
- /* [ 2] = 2 */ {__glXDisp_GetConvolutionParameterfvEXT,
- __glXDispSwap_GetConvolutionParameterfvEXT},
- /* [ 3] = 3 */ {__glXDisp_GetConvolutionParameterivEXT,
- __glXDispSwap_GetConvolutionParameterivEXT},
- /* [ 4] = 4 */ {__glXDisp_GetSeparableFilterEXT,
- __glXDispSwap_GetSeparableFilterEXT},
- /* [ 5] = 5 */ {__glXDisp_GetHistogramEXT,
- __glXDispSwap_GetHistogramEXT},
- /* [ 6] = 6 */ {__glXDisp_GetHistogramParameterfvEXT,
- __glXDispSwap_GetHistogramParameterfvEXT},
- /* [ 7] = 7 */ {__glXDisp_GetHistogramParameterivEXT,
- __glXDispSwap_GetHistogramParameterivEXT},
- /* [ 8] = 8 */ {__glXDisp_GetMinmaxEXT, __glXDispSwap_GetMinmaxEXT},
- /* [ 9] = 9 */ {__glXDisp_GetMinmaxParameterfvEXT,
- __glXDispSwap_GetMinmaxParameterfvEXT},
- /* [ 10] = 10 */ {__glXDisp_GetMinmaxParameterivEXT,
- __glXDispSwap_GetMinmaxParameterivEXT},
- /* [ 11] = 11 */ {__glXDisp_AreTexturesResidentEXT,
- __glXDispSwap_AreTexturesResidentEXT},
- /* [ 12] = 12 */ {__glXDisp_DeleteTexturesEXT,
- __glXDispSwap_DeleteTexturesEXT},
- /* [ 13] = 13 */ {__glXDisp_GenTexturesEXT,
- __glXDispSwap_GenTexturesEXT},
- /* [ 14] = 14 */ {__glXDisp_IsTextureEXT, __glXDispSwap_IsTextureEXT},
- /* [ 15] = 15 */ {NULL, NULL},
- /* [ 16] = 1024 */ {__glXDisp_QueryContextInfoEXT,
- __glXDispSwap_QueryContextInfoEXT},
- /* [ 17] = 1025 */ {NULL, NULL},
- /* [ 18] = 1026 */ {NULL, NULL},
- /* [ 19] = 1027 */ {NULL, NULL},
- /* [ 20] = 1028 */ {NULL, NULL},
- /* [ 21] = 1029 */ {NULL, NULL},
- /* [ 22] = 1030 */ {NULL, NULL},
- /* [ 23] = 1031 */ {NULL, NULL},
- /* [ 24] = 1296 */ {__glXDisp_GetProgramEnvParameterfvARB,
- __glXDispSwap_GetProgramEnvParameterfvARB},
- /* [ 25] = 1297 */ {__glXDisp_GetProgramEnvParameterdvARB,
- __glXDispSwap_GetProgramEnvParameterdvARB},
- /* [ 26] = 1298 */ {NULL, NULL},
- /* [ 27] = 1299 */ {NULL, NULL},
- /* [ 28] = 1300 */ {NULL, NULL},
- /* [ 29] = 1301 */ {NULL, NULL},
- /* [ 30] = 1302 */ {NULL, NULL},
- /* [ 31] = 1303 */ {NULL, NULL},
- /* [ 32] = 1304 */ {__glXDisp_IsProgramARB, __glXDispSwap_IsProgramARB},
- /* [ 33] = 1305 */ {__glXDisp_GetProgramLocalParameterfvARB,
- __glXDispSwap_GetProgramLocalParameterfvARB},
- /* [ 34] = 1306 */ {__glXDisp_GetProgramLocalParameterdvARB,
- __glXDispSwap_GetProgramLocalParameterdvARB},
- /* [ 35] = 1307 */ {__glXDisp_GetProgramivARB,
- __glXDispSwap_GetProgramivARB},
- /* [ 36] = 1308 */ {__glXDisp_GetProgramStringARB,
- __glXDispSwap_GetProgramStringARB},
- /* [ 37] = 1309 */ {NULL, NULL},
- /* [ 38] = 1310 */ {NULL, NULL},
- /* [ 39] = 1311 */ {NULL, NULL},
- /* [ 40] = 1288 */ {NULL, NULL},
- /* [ 41] = 1289 */ {NULL, NULL},
- /* [ 42] = 1290 */ {NULL, NULL},
- /* [ 43] = 1291 */ {NULL, NULL},
- /* [ 44] = 1292 */ {NULL, NULL},
- /* [ 45] = 1293 */ {NULL, NULL},
- /* [ 46] = 1294 */ {__glXDisp_DeleteProgramsARB,
- __glXDispSwap_DeleteProgramsARB},
- /* [ 47] = 1295 */ {__glXDisp_GenProgramsARB,
- __glXDispSwap_GenProgramsARB},
- /* [ 48] = 1328 */ {NULL, NULL},
- /* [ 49] = 1329 */ {NULL, NULL},
- /* [ 50] = 1330 */ {__glXDisp_BindTexImageEXT,
- __glXDispSwap_BindTexImageEXT},
- /* [ 51] = 1331 */ {__glXDisp_ReleaseTexImageEXT,
- __glXDispSwap_ReleaseTexImageEXT},
- /* [ 52] = 1332 */ {NULL, NULL},
- /* [ 53] = 1333 */ {NULL, NULL},
- /* [ 54] = 1334 */ {NULL, NULL},
- /* [ 55] = 1335 */ {NULL, NULL},
- /* [ 56] = 1416 */ {NULL, NULL},
- /* [ 57] = 1417 */ {NULL, NULL},
- /* [ 58] = 1418 */ {NULL, NULL},
- /* [ 59] = 1419 */ {NULL, NULL},
- /* [ 60] = 1420 */ {NULL, NULL},
- /* [ 61] = 1421 */ {NULL, NULL},
- /* [ 62] = 1422 */ {__glXDisp_IsRenderbuffer,
- __glXDispSwap_IsRenderbuffer},
- /* [ 63] = 1423 */ {__glXDisp_GenRenderbuffers,
- __glXDispSwap_GenRenderbuffers},
- /* [ 64] = 1424 */ {__glXDisp_GetRenderbufferParameteriv,
- __glXDispSwap_GetRenderbufferParameteriv},
- /* [ 65] = 1425 */ {__glXDisp_IsFramebuffer, __glXDispSwap_IsFramebuffer},
- /* [ 66] = 1426 */ {__glXDisp_GenFramebuffers,
- __glXDispSwap_GenFramebuffers},
- /* [ 67] = 1427 */ {__glXDisp_CheckFramebufferStatus,
- __glXDispSwap_CheckFramebufferStatus},
- /* [ 68] = 1428 */ {__glXDisp_GetFramebufferAttachmentParameteriv,
- __glXDispSwap_GetFramebufferAttachmentParameteriv},
- /* [ 69] = 1429 */ {NULL, NULL},
- /* [ 70] = 1430 */ {NULL, NULL},
- /* [ 71] = 1431 */ {NULL, NULL},
- /* [ 72] = 4096 */ {NULL, NULL},
- /* [ 73] = 4097 */ {NULL, NULL},
- /* [ 74] = 4098 */ {__glXDisp_GetColorTableSGI,
- __glXDispSwap_GetColorTableSGI},
- /* [ 75] = 4099 */ {__glXDisp_GetColorTableParameterfvSGI,
- __glXDispSwap_GetColorTableParameterfvSGI},
- /* [ 76] = 4100 */ {__glXDisp_GetColorTableParameterivSGI,
- __glXDispSwap_GetColorTableParameterivSGI},
- /* [ 77] = 4101 */ {NULL, NULL},
- /* [ 78] = 4102 */ {NULL, NULL},
- /* [ 79] = 4103 */ {NULL, NULL},
- /* [ 80] = 5152 */ {NULL, NULL},
- /* [ 81] = 5153 */ {NULL, NULL},
- /* [ 82] = 5154 */ {__glXDisp_CopySubBufferMESA,
- __glXDispSwap_CopySubBufferMESA},
- /* [ 83] = 5155 */ {NULL, NULL},
- /* [ 84] = 5156 */ {NULL, NULL},
- /* [ 85] = 5157 */ {NULL, NULL},
- /* [ 86] = 5158 */ {NULL, NULL},
- /* [ 87] = 5159 */ {NULL, NULL},
- /* [ 88] = 65536 */ {__glXDisp_SwapIntervalSGI,
- __glXDispSwap_SwapIntervalSGI},
- /* [ 89] = 65537 */ {__glXDisp_MakeCurrentReadSGI,
- __glXDispSwap_MakeCurrentReadSGI},
- /* [ 90] = 65538 */ {NULL, NULL},
- /* [ 91] = 65539 */ {NULL, NULL},
- /* [ 92] = 65540 */ {__glXDisp_GetFBConfigsSGIX,
- __glXDispSwap_GetFBConfigsSGIX},
- /* [ 93] = 65541 */ {__glXDisp_CreateContextWithConfigSGIX,
- __glXDispSwap_CreateContextWithConfigSGIX},
- /* [ 94] = 65542 */ {__glXDisp_CreateGLXPixmapWithConfigSGIX,
- __glXDispSwap_CreateGLXPixmapWithConfigSGIX},
- /* [ 95] = 65543 */ {__glXDisp_CreateGLXPbufferSGIX,
- __glXDispSwap_CreateGLXPbufferSGIX},
- /* [ 96] = 65544 */ {__glXDisp_DestroyGLXPbufferSGIX,
- __glXDispSwap_DestroyGLXPbufferSGIX},
- /* [ 97] = 65545 */ {__glXDisp_ChangeDrawableAttributesSGIX,
- __glXDispSwap_ChangeDrawableAttributesSGIX},
- /* [ 98] = 65546 */ {__glXDisp_GetDrawableAttributesSGIX,
- __glXDispSwap_GetDrawableAttributesSGIX},
- /* [ 99] = 65547 */ {NULL, NULL},
- /* [ 100] = 65548 */ {NULL, NULL},
- /* [ 101] = 65549 */ {NULL, NULL},
- /* [ 102] = 65550 */ {NULL, NULL},
- /* [ 103] = 65551 */ {NULL, NULL},
-};
-
-const struct __glXDispatchInfo VendorPriv_dispatch_info = {
- 17,
- VendorPriv_dispatch_tree,
- VendorPriv_function_table,
- NULL,
- NULL
-};
+/* DO NOT EDIT - This file generated automatically by glX_server_table.py (from Mesa) script */
+
+/*
+ * (C) Copyright IBM Corporation 2005, 2006
+ * 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
+ * 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 THEIR 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.
+ */
+
+#ifndef HAVE_DIX_CONFIG_H
+#include "glheader.h"
+#endif
+
+#include <inttypes.h>
+#include "glxserver.h"
+#include "glxext.h"
+#include "indirect_dispatch.h"
+#include "indirect_reqsize.h"
+#include "indirect_table.h"
+
+/*****************************************************************/
+/* tree depth = 3 */
+static const int_fast16_t Single_dispatch_tree[24] = {
+ /* [0] -> opcode range [0, 256], node depth 1 */
+ 2,
+ 5,
+ 13,
+ 16,
+ EMPTY_LEAF,
+
+ /* [5] -> opcode range [0, 64], node depth 2 */
+ 2,
+ LEAF(0),
+ LEAF(16),
+ 10,
+ EMPTY_LEAF,
+
+ /* [10] -> opcode range [32, 48], node depth 3 */
+ 1,
+ LEAF(32),
+ EMPTY_LEAF,
+
+ /* [13] -> opcode range [64, 128], node depth 2 */
+ 1,
+ EMPTY_LEAF,
+ LEAF(40),
+
+ /* [16] -> opcode range [128, 192], node depth 2 */
+ 2,
+ LEAF(72),
+ LEAF(88),
+ 21,
+ EMPTY_LEAF,
+
+ /* [21] -> opcode range [160, 176], node depth 3 */
+ 1,
+ LEAF(104),
+ EMPTY_LEAF,
+
+};
+
+static const void *Single_function_table[112][2] = {
+ /* [ 0] = 0 */ {NULL, NULL},
+ /* [ 1] = 1 */ {__glXDisp_Render, __glXDispSwap_Render},
+ /* [ 2] = 2 */ {__glXDisp_RenderLarge, __glXDispSwap_RenderLarge},
+ /* [ 3] = 3 */ {__glXDisp_CreateContext, __glXDispSwap_CreateContext},
+ /* [ 4] = 4 */ {__glXDisp_DestroyContext, __glXDispSwap_DestroyContext},
+ /* [ 5] = 5 */ {__glXDisp_MakeCurrent, __glXDispSwap_MakeCurrent},
+ /* [ 6] = 6 */ {__glXDisp_IsDirect, __glXDispSwap_IsDirect},
+ /* [ 7] = 7 */ {__glXDisp_QueryVersion, __glXDispSwap_QueryVersion},
+ /* [ 8] = 8 */ {__glXDisp_WaitGL, __glXDispSwap_WaitGL},
+ /* [ 9] = 9 */ {__glXDisp_WaitX, __glXDispSwap_WaitX},
+ /* [ 10] = 10 */ {__glXDisp_CopyContext, __glXDispSwap_CopyContext},
+ /* [ 11] = 11 */ {__glXDisp_SwapBuffers, __glXDispSwap_SwapBuffers},
+ /* [ 12] = 12 */ {__glXDisp_UseXFont, __glXDispSwap_UseXFont},
+ /* [ 13] = 13 */ {__glXDisp_CreateGLXPixmap, __glXDispSwap_CreateGLXPixmap},
+ /* [ 14] = 14 */ {__glXDisp_GetVisualConfigs, __glXDispSwap_GetVisualConfigs},
+ /* [ 15] = 15 */ {__glXDisp_DestroyGLXPixmap, __glXDispSwap_DestroyGLXPixmap},
+ /* [ 16] = 16 */ {__glXDisp_VendorPrivate, __glXDispSwap_VendorPrivate},
+ /* [ 17] = 17 */ {__glXDisp_VendorPrivateWithReply, __glXDispSwap_VendorPrivateWithReply},
+ /* [ 18] = 18 */ {__glXDisp_QueryExtensionsString, __glXDispSwap_QueryExtensionsString},
+ /* [ 19] = 19 */ {__glXDisp_QueryServerString, __glXDispSwap_QueryServerString},
+ /* [ 20] = 20 */ {__glXDisp_ClientInfo, __glXDispSwap_ClientInfo},
+ /* [ 21] = 21 */ {__glXDisp_GetFBConfigs, __glXDispSwap_GetFBConfigs},
+ /* [ 22] = 22 */ {__glXDisp_CreatePixmap, __glXDispSwap_CreatePixmap},
+ /* [ 23] = 23 */ {__glXDisp_DestroyPixmap, __glXDispSwap_DestroyPixmap},
+ /* [ 24] = 24 */ {__glXDisp_CreateNewContext, __glXDispSwap_CreateNewContext},
+ /* [ 25] = 25 */ {__glXDisp_QueryContext, __glXDispSwap_QueryContext},
+ /* [ 26] = 26 */ {__glXDisp_MakeContextCurrent, __glXDispSwap_MakeContextCurrent},
+ /* [ 27] = 27 */ {__glXDisp_CreatePbuffer, __glXDispSwap_CreatePbuffer},
+ /* [ 28] = 28 */ {__glXDisp_DestroyPbuffer, __glXDispSwap_DestroyPbuffer},
+ /* [ 29] = 29 */ {__glXDisp_GetDrawableAttributes, __glXDispSwap_GetDrawableAttributes},
+ /* [ 30] = 30 */ {__glXDisp_ChangeDrawableAttributes, __glXDispSwap_ChangeDrawableAttributes},
+ /* [ 31] = 31 */ {__glXDisp_CreateWindow, __glXDispSwap_CreateWindow},
+ /* [ 32] = 32 */ {__glXDisp_DestroyWindow, __glXDispSwap_DestroyWindow},
+ /* [ 33] = 33 */ {NULL, NULL},
+ /* [ 34] = 34 */ {NULL, NULL},
+ /* [ 35] = 35 */ {NULL, NULL},
+ /* [ 36] = 36 */ {NULL, NULL},
+ /* [ 37] = 37 */ {NULL, NULL},
+ /* [ 38] = 38 */ {NULL, NULL},
+ /* [ 39] = 39 */ {NULL, NULL},
+ /* [ 40] = 96 */ {NULL, NULL},
+ /* [ 41] = 97 */ {NULL, NULL},
+ /* [ 42] = 98 */ {NULL, NULL},
+ /* [ 43] = 99 */ {NULL, NULL},
+ /* [ 44] = 100 */ {NULL, NULL},
+ /* [ 45] = 101 */ {__glXDisp_NewList, __glXDispSwap_NewList},
+ /* [ 46] = 102 */ {__glXDisp_EndList, __glXDispSwap_EndList},
+ /* [ 47] = 103 */ {__glXDisp_DeleteLists, __glXDispSwap_DeleteLists},
+ /* [ 48] = 104 */ {__glXDisp_GenLists, __glXDispSwap_GenLists},
+ /* [ 49] = 105 */ {__glXDisp_FeedbackBuffer, __glXDispSwap_FeedbackBuffer},
+ /* [ 50] = 106 */ {__glXDisp_SelectBuffer, __glXDispSwap_SelectBuffer},
+ /* [ 51] = 107 */ {__glXDisp_RenderMode, __glXDispSwap_RenderMode},
+ /* [ 52] = 108 */ {__glXDisp_Finish, __glXDispSwap_Finish},
+ /* [ 53] = 109 */ {__glXDisp_PixelStoref, __glXDispSwap_PixelStoref},
+ /* [ 54] = 110 */ {__glXDisp_PixelStorei, __glXDispSwap_PixelStorei},
+ /* [ 55] = 111 */ {__glXDisp_ReadPixels, __glXDispSwap_ReadPixels},
+ /* [ 56] = 112 */ {__glXDisp_GetBooleanv, __glXDispSwap_GetBooleanv},
+ /* [ 57] = 113 */ {__glXDisp_GetClipPlane, __glXDispSwap_GetClipPlane},
+ /* [ 58] = 114 */ {__glXDisp_GetDoublev, __glXDispSwap_GetDoublev},
+ /* [ 59] = 115 */ {__glXDisp_GetError, __glXDispSwap_GetError},
+ /* [ 60] = 116 */ {__glXDisp_GetFloatv, __glXDispSwap_GetFloatv},
+ /* [ 61] = 117 */ {__glXDisp_GetIntegerv, __glXDispSwap_GetIntegerv},
+ /* [ 62] = 118 */ {__glXDisp_GetLightfv, __glXDispSwap_GetLightfv},
+ /* [ 63] = 119 */ {__glXDisp_GetLightiv, __glXDispSwap_GetLightiv},
+ /* [ 64] = 120 */ {__glXDisp_GetMapdv, __glXDispSwap_GetMapdv},
+ /* [ 65] = 121 */ {__glXDisp_GetMapfv, __glXDispSwap_GetMapfv},
+ /* [ 66] = 122 */ {__glXDisp_GetMapiv, __glXDispSwap_GetMapiv},
+ /* [ 67] = 123 */ {__glXDisp_GetMaterialfv, __glXDispSwap_GetMaterialfv},
+ /* [ 68] = 124 */ {__glXDisp_GetMaterialiv, __glXDispSwap_GetMaterialiv},
+ /* [ 69] = 125 */ {__glXDisp_GetPixelMapfv, __glXDispSwap_GetPixelMapfv},
+ /* [ 70] = 126 */ {__glXDisp_GetPixelMapuiv, __glXDispSwap_GetPixelMapuiv},
+ /* [ 71] = 127 */ {__glXDisp_GetPixelMapusv, __glXDispSwap_GetPixelMapusv},
+ /* [ 72] = 128 */ {__glXDisp_GetPolygonStipple, __glXDispSwap_GetPolygonStipple},
+ /* [ 73] = 129 */ {__glXDisp_GetString, __glXDispSwap_GetString},
+ /* [ 74] = 130 */ {__glXDisp_GetTexEnvfv, __glXDispSwap_GetTexEnvfv},
+ /* [ 75] = 131 */ {__glXDisp_GetTexEnviv, __glXDispSwap_GetTexEnviv},
+ /* [ 76] = 132 */ {__glXDisp_GetTexGendv, __glXDispSwap_GetTexGendv},
+ /* [ 77] = 133 */ {__glXDisp_GetTexGenfv, __glXDispSwap_GetTexGenfv},
+ /* [ 78] = 134 */ {__glXDisp_GetTexGeniv, __glXDispSwap_GetTexGeniv},
+ /* [ 79] = 135 */ {__glXDisp_GetTexImage, __glXDispSwap_GetTexImage},
+ /* [ 80] = 136 */ {__glXDisp_GetTexParameterfv, __glXDispSwap_GetTexParameterfv},
+ /* [ 81] = 137 */ {__glXDisp_GetTexParameteriv, __glXDispSwap_GetTexParameteriv},
+ /* [ 82] = 138 */ {__glXDisp_GetTexLevelParameterfv, __glXDispSwap_GetTexLevelParameterfv},
+ /* [ 83] = 139 */ {__glXDisp_GetTexLevelParameteriv, __glXDispSwap_GetTexLevelParameteriv},
+ /* [ 84] = 140 */ {__glXDisp_IsEnabled, __glXDispSwap_IsEnabled},
+ /* [ 85] = 141 */ {__glXDisp_IsList, __glXDispSwap_IsList},
+ /* [ 86] = 142 */ {__glXDisp_Flush, __glXDispSwap_Flush},
+ /* [ 87] = 143 */ {__glXDisp_AreTexturesResident, __glXDispSwap_AreTexturesResident},
+ /* [ 88] = 144 */ {__glXDisp_DeleteTextures, __glXDispSwap_DeleteTextures},
+ /* [ 89] = 145 */ {__glXDisp_GenTextures, __glXDispSwap_GenTextures},
+ /* [ 90] = 146 */ {__glXDisp_IsTexture, __glXDispSwap_IsTexture},
+ /* [ 91] = 147 */ {__glXDisp_GetColorTable, __glXDispSwap_GetColorTable},
+ /* [ 92] = 148 */ {__glXDisp_GetColorTableParameterfv, __glXDispSwap_GetColorTableParameterfv},
+ /* [ 93] = 149 */ {__glXDisp_GetColorTableParameteriv, __glXDispSwap_GetColorTableParameteriv},
+ /* [ 94] = 150 */ {__glXDisp_GetConvolutionFilter, __glXDispSwap_GetConvolutionFilter},
+ /* [ 95] = 151 */ {__glXDisp_GetConvolutionParameterfv, __glXDispSwap_GetConvolutionParameterfv},
+ /* [ 96] = 152 */ {__glXDisp_GetConvolutionParameteriv, __glXDispSwap_GetConvolutionParameteriv},
+ /* [ 97] = 153 */ {__glXDisp_GetSeparableFilter, __glXDispSwap_GetSeparableFilter},
+ /* [ 98] = 154 */ {__glXDisp_GetHistogram, __glXDispSwap_GetHistogram},
+ /* [ 99] = 155 */ {__glXDisp_GetHistogramParameterfv, __glXDispSwap_GetHistogramParameterfv},
+ /* [ 100] = 156 */ {__glXDisp_GetHistogramParameteriv, __glXDispSwap_GetHistogramParameteriv},
+ /* [ 101] = 157 */ {__glXDisp_GetMinmax, __glXDispSwap_GetMinmax},
+ /* [ 102] = 158 */ {__glXDisp_GetMinmaxParameterfv, __glXDispSwap_GetMinmaxParameterfv},
+ /* [ 103] = 159 */ {__glXDisp_GetMinmaxParameteriv, __glXDispSwap_GetMinmaxParameteriv},
+ /* [ 104] = 160 */ {__glXDisp_GetCompressedTexImage, __glXDispSwap_GetCompressedTexImage},
+ /* [ 105] = 161 */ {__glXDisp_DeleteQueries, __glXDispSwap_DeleteQueries},
+ /* [ 106] = 162 */ {__glXDisp_GenQueries, __glXDispSwap_GenQueries},
+ /* [ 107] = 163 */ {__glXDisp_IsQuery, __glXDispSwap_IsQuery},
+ /* [ 108] = 164 */ {__glXDisp_GetQueryiv, __glXDispSwap_GetQueryiv},
+ /* [ 109] = 165 */ {__glXDisp_GetQueryObjectiv, __glXDispSwap_GetQueryObjectiv},
+ /* [ 110] = 166 */ {__glXDisp_GetQueryObjectuiv, __glXDispSwap_GetQueryObjectuiv},
+ /* [ 111] = 167 */ {NULL, NULL},
+};
+
+const struct __glXDispatchInfo Single_dispatch_info = {
+ 8,
+ Single_dispatch_tree,
+ Single_function_table,
+ NULL,
+ NULL
+};
+
+/*****************************************************************/
+/* tree depth = 8 */
+static const int_fast16_t Render_dispatch_tree[92] = {
+ /* [0] -> opcode range [0, 8192], node depth 1 */
+ 2,
+ 5,
+ 31,
+ 54,
+ EMPTY_LEAF,
+
+ /* [5] -> opcode range [0, 2048], node depth 2 */
+ 1,
+ 8,
+ EMPTY_LEAF,
+
+ /* [8] -> opcode range [0, 1024], node depth 3 */
+ 1,
+ 11,
+ EMPTY_LEAF,
+
+ /* [11] -> opcode range [0, 512], node depth 4 */
+ 1,
+ 14,
+ EMPTY_LEAF,
+
+ /* [14] -> opcode range [0, 256], node depth 5 */
+ 4,
+ LEAF(0),
+ LEAF(16),
+ LEAF(32),
+ LEAF(48),
+ LEAF(64),
+ LEAF(80),
+ LEAF(96),
+ LEAF(112),
+ LEAF(128),
+ LEAF(144),
+ LEAF(160),
+ LEAF(176),
+ LEAF(192),
+ LEAF(208),
+ LEAF(224),
+ EMPTY_LEAF,
+
+ /* [31] -> opcode range [2048, 4096], node depth 2 */
+ 1,
+ 34,
+ EMPTY_LEAF,
+
+ /* [34] -> opcode range [2048, 3072], node depth 3 */
+ 1,
+ 37,
+ EMPTY_LEAF,
+
+ /* [37] -> opcode range [2048, 2560], node depth 4 */
+ 1,
+ 40,
+ EMPTY_LEAF,
+
+ /* [40] -> opcode range [2048, 2304], node depth 5 */
+ 1,
+ 43,
+ EMPTY_LEAF,
+
+ /* [43] -> opcode range [2048, 2176], node depth 6 */
+ 1,
+ 46,
+ EMPTY_LEAF,
+
+ /* [46] -> opcode range [2048, 2112], node depth 7 */
+ 1,
+ 49,
+ EMPTY_LEAF,
+
+ /* [49] -> opcode range [2048, 2080], node depth 8 */
+ 2,
+ LEAF(240),
+ LEAF(248),
+ LEAF(256),
+ EMPTY_LEAF,
+
+ /* [54] -> opcode range [4096, 6144], node depth 2 */
+ 1,
+ 57,
+ EMPTY_LEAF,
+
+ /* [57] -> opcode range [4096, 5120], node depth 3 */
+ 1,
+ 60,
+ EMPTY_LEAF,
+
+ /* [60] -> opcode range [4096, 4608], node depth 4 */
+ 1,
+ 63,
+ EMPTY_LEAF,
+
+ /* [63] -> opcode range [4096, 4352], node depth 5 */
+ 4,
+ LEAF(264),
+ LEAF(280),
+ 80,
+ EMPTY_LEAF,
+ EMPTY_LEAF,
+ LEAF(296),
+ LEAF(312),
+ LEAF(328),
+ LEAF(344),
+ EMPTY_LEAF,
+ 83,
+ 86,
+ EMPTY_LEAF,
+ 89,
+ LEAF(360),
+ EMPTY_LEAF,
+
+ /* [80] -> opcode range [4128, 4144], node depth 6 */
+ 1,
+ LEAF(376),
+ EMPTY_LEAF,
+
+ /* [83] -> opcode range [4256, 4272], node depth 6 */
+ 1,
+ EMPTY_LEAF,
+ LEAF(384),
+
+ /* [86] -> opcode range [4272, 4288], node depth 6 */
+ 1,
+ LEAF(392),
+ EMPTY_LEAF,
+
+ /* [89] -> opcode range [4304, 4320], node depth 6 */
+ 1,
+ EMPTY_LEAF,
+ LEAF(400),
+
+};
+
+static const void *Render_function_table[408][2] = {
+ /* [ 0] = 0 */ {NULL, NULL},
+ /* [ 1] = 1 */ {__glXDisp_CallList, __glXDispSwap_CallList},
+ /* [ 2] = 2 */ {__glXDisp_CallLists, __glXDispSwap_CallLists},
+ /* [ 3] = 3 */ {__glXDisp_ListBase, __glXDispSwap_ListBase},
+ /* [ 4] = 4 */ {__glXDisp_Begin, __glXDispSwap_Begin},
+ /* [ 5] = 5 */ {__glXDisp_Bitmap, __glXDispSwap_Bitmap},
+ /* [ 6] = 6 */ {__glXDisp_Color3bv, __glXDispSwap_Color3bv},
+ /* [ 7] = 7 */ {__glXDisp_Color3dv, __glXDispSwap_Color3dv},
+ /* [ 8] = 8 */ {__glXDisp_Color3fv, __glXDispSwap_Color3fv},
+ /* [ 9] = 9 */ {__glXDisp_Color3iv, __glXDispSwap_Color3iv},
+ /* [ 10] = 10 */ {__glXDisp_Color3sv, __glXDispSwap_Color3sv},
+ /* [ 11] = 11 */ {__glXDisp_Color3ubv, __glXDispSwap_Color3ubv},
+ /* [ 12] = 12 */ {__glXDisp_Color3uiv, __glXDispSwap_Color3uiv},
+ /* [ 13] = 13 */ {__glXDisp_Color3usv, __glXDispSwap_Color3usv},
+ /* [ 14] = 14 */ {__glXDisp_Color4bv, __glXDispSwap_Color4bv},
+ /* [ 15] = 15 */ {__glXDisp_Color4dv, __glXDispSwap_Color4dv},
+ /* [ 16] = 16 */ {__glXDisp_Color4fv, __glXDispSwap_Color4fv},
+ /* [ 17] = 17 */ {__glXDisp_Color4iv, __glXDispSwap_Color4iv},
+ /* [ 18] = 18 */ {__glXDisp_Color4sv, __glXDispSwap_Color4sv},
+ /* [ 19] = 19 */ {__glXDisp_Color4ubv, __glXDispSwap_Color4ubv},
+ /* [ 20] = 20 */ {__glXDisp_Color4uiv, __glXDispSwap_Color4uiv},
+ /* [ 21] = 21 */ {__glXDisp_Color4usv, __glXDispSwap_Color4usv},
+ /* [ 22] = 22 */ {__glXDisp_EdgeFlagv, __glXDispSwap_EdgeFlagv},
+ /* [ 23] = 23 */ {__glXDisp_End, __glXDispSwap_End},
+ /* [ 24] = 24 */ {__glXDisp_Indexdv, __glXDispSwap_Indexdv},
+ /* [ 25] = 25 */ {__glXDisp_Indexfv, __glXDispSwap_Indexfv},
+ /* [ 26] = 26 */ {__glXDisp_Indexiv, __glXDispSwap_Indexiv},
+ /* [ 27] = 27 */ {__glXDisp_Indexsv, __glXDispSwap_Indexsv},
+ /* [ 28] = 28 */ {__glXDisp_Normal3bv, __glXDispSwap_Normal3bv},
+ /* [ 29] = 29 */ {__glXDisp_Normal3dv, __glXDispSwap_Normal3dv},
+ /* [ 30] = 30 */ {__glXDisp_Normal3fv, __glXDispSwap_Normal3fv},
+ /* [ 31] = 31 */ {__glXDisp_Normal3iv, __glXDispSwap_Normal3iv},
+ /* [ 32] = 32 */ {__glXDisp_Normal3sv, __glXDispSwap_Normal3sv},
+ /* [ 33] = 33 */ {__glXDisp_RasterPos2dv, __glXDispSwap_RasterPos2dv},
+ /* [ 34] = 34 */ {__glXDisp_RasterPos2fv, __glXDispSwap_RasterPos2fv},
+ /* [ 35] = 35 */ {__glXDisp_RasterPos2iv, __glXDispSwap_RasterPos2iv},
+ /* [ 36] = 36 */ {__glXDisp_RasterPos2sv, __glXDispSwap_RasterPos2sv},
+ /* [ 37] = 37 */ {__glXDisp_RasterPos3dv, __glXDispSwap_RasterPos3dv},
+ /* [ 38] = 38 */ {__glXDisp_RasterPos3fv, __glXDispSwap_RasterPos3fv},
+ /* [ 39] = 39 */ {__glXDisp_RasterPos3iv, __glXDispSwap_RasterPos3iv},
+ /* [ 40] = 40 */ {__glXDisp_RasterPos3sv, __glXDispSwap_RasterPos3sv},
+ /* [ 41] = 41 */ {__glXDisp_RasterPos4dv, __glXDispSwap_RasterPos4dv},
+ /* [ 42] = 42 */ {__glXDisp_RasterPos4fv, __glXDispSwap_RasterPos4fv},
+ /* [ 43] = 43 */ {__glXDisp_RasterPos4iv, __glXDispSwap_RasterPos4iv},
+ /* [ 44] = 44 */ {__glXDisp_RasterPos4sv, __glXDispSwap_RasterPos4sv},
+ /* [ 45] = 45 */ {__glXDisp_Rectdv, __glXDispSwap_Rectdv},
+ /* [ 46] = 46 */ {__glXDisp_Rectfv, __glXDispSwap_Rectfv},
+ /* [ 47] = 47 */ {__glXDisp_Rectiv, __glXDispSwap_Rectiv},
+ /* [ 48] = 48 */ {__glXDisp_Rectsv, __glXDispSwap_Rectsv},
+ /* [ 49] = 49 */ {__glXDisp_TexCoord1dv, __glXDispSwap_TexCoord1dv},
+ /* [ 50] = 50 */ {__glXDisp_TexCoord1fv, __glXDispSwap_TexCoord1fv},
+ /* [ 51] = 51 */ {__glXDisp_TexCoord1iv, __glXDispSwap_TexCoord1iv},
+ /* [ 52] = 52 */ {__glXDisp_TexCoord1sv, __glXDispSwap_TexCoord1sv},
+ /* [ 53] = 53 */ {__glXDisp_TexCoord2dv, __glXDispSwap_TexCoord2dv},
+ /* [ 54] = 54 */ {__glXDisp_TexCoord2fv, __glXDispSwap_TexCoord2fv},
+ /* [ 55] = 55 */ {__glXDisp_TexCoord2iv, __glXDispSwap_TexCoord2iv},
+ /* [ 56] = 56 */ {__glXDisp_TexCoord2sv, __glXDispSwap_TexCoord2sv},
+ /* [ 57] = 57 */ {__glXDisp_TexCoord3dv, __glXDispSwap_TexCoord3dv},
+ /* [ 58] = 58 */ {__glXDisp_TexCoord3fv, __glXDispSwap_TexCoord3fv},
+ /* [ 59] = 59 */ {__glXDisp_TexCoord3iv, __glXDispSwap_TexCoord3iv},
+ /* [ 60] = 60 */ {__glXDisp_TexCoord3sv, __glXDispSwap_TexCoord3sv},
+ /* [ 61] = 61 */ {__glXDisp_TexCoord4dv, __glXDispSwap_TexCoord4dv},
+ /* [ 62] = 62 */ {__glXDisp_TexCoord4fv, __glXDispSwap_TexCoord4fv},
+ /* [ 63] = 63 */ {__glXDisp_TexCoord4iv, __glXDispSwap_TexCoord4iv},
+ /* [ 64] = 64 */ {__glXDisp_TexCoord4sv, __glXDispSwap_TexCoord4sv},
+ /* [ 65] = 65 */ {__glXDisp_Vertex2dv, __glXDispSwap_Vertex2dv},
+ /* [ 66] = 66 */ {__glXDisp_Vertex2fv, __glXDispSwap_Vertex2fv},
+ /* [ 67] = 67 */ {__glXDisp_Vertex2iv, __glXDispSwap_Vertex2iv},
+ /* [ 68] = 68 */ {__glXDisp_Vertex2sv, __glXDispSwap_Vertex2sv},
+ /* [ 69] = 69 */ {__glXDisp_Vertex3dv, __glXDispSwap_Vertex3dv},
+ /* [ 70] = 70 */ {__glXDisp_Vertex3fv, __glXDispSwap_Vertex3fv},
+ /* [ 71] = 71 */ {__glXDisp_Vertex3iv, __glXDispSwap_Vertex3iv},
+ /* [ 72] = 72 */ {__glXDisp_Vertex3sv, __glXDispSwap_Vertex3sv},
+ /* [ 73] = 73 */ {__glXDisp_Vertex4dv, __glXDispSwap_Vertex4dv},
+ /* [ 74] = 74 */ {__glXDisp_Vertex4fv, __glXDispSwap_Vertex4fv},
+ /* [ 75] = 75 */ {__glXDisp_Vertex4iv, __glXDispSwap_Vertex4iv},
+ /* [ 76] = 76 */ {__glXDisp_Vertex4sv, __glXDispSwap_Vertex4sv},
+ /* [ 77] = 77 */ {__glXDisp_ClipPlane, __glXDispSwap_ClipPlane},
+ /* [ 78] = 78 */ {__glXDisp_ColorMaterial, __glXDispSwap_ColorMaterial},
+ /* [ 79] = 79 */ {__glXDisp_CullFace, __glXDispSwap_CullFace},
+ /* [ 80] = 80 */ {__glXDisp_Fogf, __glXDispSwap_Fogf},
+ /* [ 81] = 81 */ {__glXDisp_Fogfv, __glXDispSwap_Fogfv},
+ /* [ 82] = 82 */ {__glXDisp_Fogi, __glXDispSwap_Fogi},
+ /* [ 83] = 83 */ {__glXDisp_Fogiv, __glXDispSwap_Fogiv},
+ /* [ 84] = 84 */ {__glXDisp_FrontFace, __glXDispSwap_FrontFace},
+ /* [ 85] = 85 */ {__glXDisp_Hint, __glXDispSwap_Hint},
+ /* [ 86] = 86 */ {__glXDisp_Lightf, __glXDispSwap_Lightf},
+ /* [ 87] = 87 */ {__glXDisp_Lightfv, __glXDispSwap_Lightfv},
+ /* [ 88] = 88 */ {__glXDisp_Lighti, __glXDispSwap_Lighti},
+ /* [ 89] = 89 */ {__glXDisp_Lightiv, __glXDispSwap_Lightiv},
+ /* [ 90] = 90 */ {__glXDisp_LightModelf, __glXDispSwap_LightModelf},
+ /* [ 91] = 91 */ {__glXDisp_LightModelfv, __glXDispSwap_LightModelfv},
+ /* [ 92] = 92 */ {__glXDisp_LightModeli, __glXDispSwap_LightModeli},
+ /* [ 93] = 93 */ {__glXDisp_LightModeliv, __glXDispSwap_LightModeliv},
+ /* [ 94] = 94 */ {__glXDisp_LineStipple, __glXDispSwap_LineStipple},
+ /* [ 95] = 95 */ {__glXDisp_LineWidth, __glXDispSwap_LineWidth},
+ /* [ 96] = 96 */ {__glXDisp_Materialf, __glXDispSwap_Materialf},
+ /* [ 97] = 97 */ {__glXDisp_Materialfv, __glXDispSwap_Materialfv},
+ /* [ 98] = 98 */ {__glXDisp_Materiali, __glXDispSwap_Materiali},
+ /* [ 99] = 99 */ {__glXDisp_Materialiv, __glXDispSwap_Materialiv},
+ /* [ 100] = 100 */ {__glXDisp_PointSize, __glXDispSwap_PointSize},
+ /* [ 101] = 101 */ {__glXDisp_PolygonMode, __glXDispSwap_PolygonMode},
+ /* [ 102] = 102 */ {__glXDisp_PolygonStipple, __glXDispSwap_PolygonStipple},
+ /* [ 103] = 103 */ {__glXDisp_Scissor, __glXDispSwap_Scissor},
+ /* [ 104] = 104 */ {__glXDisp_ShadeModel, __glXDispSwap_ShadeModel},
+ /* [ 105] = 105 */ {__glXDisp_TexParameterf, __glXDispSwap_TexParameterf},
+ /* [ 106] = 106 */ {__glXDisp_TexParameterfv, __glXDispSwap_TexParameterfv},
+ /* [ 107] = 107 */ {__glXDisp_TexParameteri, __glXDispSwap_TexParameteri},
+ /* [ 108] = 108 */ {__glXDisp_TexParameteriv, __glXDispSwap_TexParameteriv},
+ /* [ 109] = 109 */ {__glXDisp_TexImage1D, __glXDispSwap_TexImage1D},
+ /* [ 110] = 110 */ {__glXDisp_TexImage2D, __glXDispSwap_TexImage2D},
+ /* [ 111] = 111 */ {__glXDisp_TexEnvf, __glXDispSwap_TexEnvf},
+ /* [ 112] = 112 */ {__glXDisp_TexEnvfv, __glXDispSwap_TexEnvfv},
+ /* [ 113] = 113 */ {__glXDisp_TexEnvi, __glXDispSwap_TexEnvi},
+ /* [ 114] = 114 */ {__glXDisp_TexEnviv, __glXDispSwap_TexEnviv},
+ /* [ 115] = 115 */ {__glXDisp_TexGend, __glXDispSwap_TexGend},
+ /* [ 116] = 116 */ {__glXDisp_TexGendv, __glXDispSwap_TexGendv},
+ /* [ 117] = 117 */ {__glXDisp_TexGenf, __glXDispSwap_TexGenf},
+ /* [ 118] = 118 */ {__glXDisp_TexGenfv, __glXDispSwap_TexGenfv},
+ /* [ 119] = 119 */ {__glXDisp_TexGeni, __glXDispSwap_TexGeni},
+ /* [ 120] = 120 */ {__glXDisp_TexGeniv, __glXDispSwap_TexGeniv},
+ /* [ 121] = 121 */ {__glXDisp_InitNames, __glXDispSwap_InitNames},
+ /* [ 122] = 122 */ {__glXDisp_LoadName, __glXDispSwap_LoadName},
+ /* [ 123] = 123 */ {__glXDisp_PassThrough, __glXDispSwap_PassThrough},
+ /* [ 124] = 124 */ {__glXDisp_PopName, __glXDispSwap_PopName},
+ /* [ 125] = 125 */ {__glXDisp_PushName, __glXDispSwap_PushName},
+ /* [ 126] = 126 */ {__glXDisp_DrawBuffer, __glXDispSwap_DrawBuffer},
+ /* [ 127] = 127 */ {__glXDisp_Clear, __glXDispSwap_Clear},
+ /* [ 128] = 128 */ {__glXDisp_ClearAccum, __glXDispSwap_ClearAccum},
+ /* [ 129] = 129 */ {__glXDisp_ClearIndex, __glXDispSwap_ClearIndex},
+ /* [ 130] = 130 */ {__glXDisp_ClearColor, __glXDispSwap_ClearColor},
+ /* [ 131] = 131 */ {__glXDisp_ClearStencil, __glXDispSwap_ClearStencil},
+ /* [ 132] = 132 */ {__glXDisp_ClearDepth, __glXDispSwap_ClearDepth},
+ /* [ 133] = 133 */ {__glXDisp_StencilMask, __glXDispSwap_StencilMask},
+ /* [ 134] = 134 */ {__glXDisp_ColorMask, __glXDispSwap_ColorMask},
+ /* [ 135] = 135 */ {__glXDisp_DepthMask, __glXDispSwap_DepthMask},
+ /* [ 136] = 136 */ {__glXDisp_IndexMask, __glXDispSwap_IndexMask},
+ /* [ 137] = 137 */ {__glXDisp_Accum, __glXDispSwap_Accum},
+ /* [ 138] = 138 */ {__glXDisp_Disable, __glXDispSwap_Disable},
+ /* [ 139] = 139 */ {__glXDisp_Enable, __glXDispSwap_Enable},
+ /* [ 140] = 140 */ {NULL, NULL},
+ /* [ 141] = 141 */ {__glXDisp_PopAttrib, __glXDispSwap_PopAttrib},
+ /* [ 142] = 142 */ {__glXDisp_PushAttrib, __glXDispSwap_PushAttrib},
+ /* [ 143] = 143 */ {__glXDisp_Map1d, __glXDispSwap_Map1d},
+ /* [ 144] = 144 */ {__glXDisp_Map1f, __glXDispSwap_Map1f},
+ /* [ 145] = 145 */ {__glXDisp_Map2d, __glXDispSwap_Map2d},
+ /* [ 146] = 146 */ {__glXDisp_Map2f, __glXDispSwap_Map2f},
+ /* [ 147] = 147 */ {__glXDisp_MapGrid1d, __glXDispSwap_MapGrid1d},
+ /* [ 148] = 148 */ {__glXDisp_MapGrid1f, __glXDispSwap_MapGrid1f},
+ /* [ 149] = 149 */ {__glXDisp_MapGrid2d, __glXDispSwap_MapGrid2d},
+ /* [ 150] = 150 */ {__glXDisp_MapGrid2f, __glXDispSwap_MapGrid2f},
+ /* [ 151] = 151 */ {__glXDisp_EvalCoord1dv, __glXDispSwap_EvalCoord1dv},
+ /* [ 152] = 152 */ {__glXDisp_EvalCoord1fv, __glXDispSwap_EvalCoord1fv},
+ /* [ 153] = 153 */ {__glXDisp_EvalCoord2dv, __glXDispSwap_EvalCoord2dv},
+ /* [ 154] = 154 */ {__glXDisp_EvalCoord2fv, __glXDispSwap_EvalCoord2fv},
+ /* [ 155] = 155 */ {__glXDisp_EvalMesh1, __glXDispSwap_EvalMesh1},
+ /* [ 156] = 156 */ {__glXDisp_EvalPoint1, __glXDispSwap_EvalPoint1},
+ /* [ 157] = 157 */ {__glXDisp_EvalMesh2, __glXDispSwap_EvalMesh2},
+ /* [ 158] = 158 */ {__glXDisp_EvalPoint2, __glXDispSwap_EvalPoint2},
+ /* [ 159] = 159 */ {__glXDisp_AlphaFunc, __glXDispSwap_AlphaFunc},
+ /* [ 160] = 160 */ {__glXDisp_BlendFunc, __glXDispSwap_BlendFunc},
+ /* [ 161] = 161 */ {__glXDisp_LogicOp, __glXDispSwap_LogicOp},
+ /* [ 162] = 162 */ {__glXDisp_StencilFunc, __glXDispSwap_StencilFunc},
+ /* [ 163] = 163 */ {__glXDisp_StencilOp, __glXDispSwap_StencilOp},
+ /* [ 164] = 164 */ {__glXDisp_DepthFunc, __glXDispSwap_DepthFunc},
+ /* [ 165] = 165 */ {__glXDisp_PixelZoom, __glXDispSwap_PixelZoom},
+ /* [ 166] = 166 */ {__glXDisp_PixelTransferf, __glXDispSwap_PixelTransferf},
+ /* [ 167] = 167 */ {__glXDisp_PixelTransferi, __glXDispSwap_PixelTransferi},
+ /* [ 168] = 168 */ {__glXDisp_PixelMapfv, __glXDispSwap_PixelMapfv},
+ /* [ 169] = 169 */ {__glXDisp_PixelMapuiv, __glXDispSwap_PixelMapuiv},
+ /* [ 170] = 170 */ {__glXDisp_PixelMapusv, __glXDispSwap_PixelMapusv},
+ /* [ 171] = 171 */ {__glXDisp_ReadBuffer, __glXDispSwap_ReadBuffer},
+ /* [ 172] = 172 */ {__glXDisp_CopyPixels, __glXDispSwap_CopyPixels},
+ /* [ 173] = 173 */ {__glXDisp_DrawPixels, __glXDispSwap_DrawPixels},
+ /* [ 174] = 174 */ {__glXDisp_DepthRange, __glXDispSwap_DepthRange},
+ /* [ 175] = 175 */ {__glXDisp_Frustum, __glXDispSwap_Frustum},
+ /* [ 176] = 176 */ {__glXDisp_LoadIdentity, __glXDispSwap_LoadIdentity},
+ /* [ 177] = 177 */ {__glXDisp_LoadMatrixf, __glXDispSwap_LoadMatrixf},
+ /* [ 178] = 178 */ {__glXDisp_LoadMatrixd, __glXDispSwap_LoadMatrixd},
+ /* [ 179] = 179 */ {__glXDisp_MatrixMode, __glXDispSwap_MatrixMode},
+ /* [ 180] = 180 */ {__glXDisp_MultMatrixf, __glXDispSwap_MultMatrixf},
+ /* [ 181] = 181 */ {__glXDisp_MultMatrixd, __glXDispSwap_MultMatrixd},
+ /* [ 182] = 182 */ {__glXDisp_Ortho, __glXDispSwap_Ortho},
+ /* [ 183] = 183 */ {__glXDisp_PopMatrix, __glXDispSwap_PopMatrix},
+ /* [ 184] = 184 */ {__glXDisp_PushMatrix, __glXDispSwap_PushMatrix},
+ /* [ 185] = 185 */ {__glXDisp_Rotated, __glXDispSwap_Rotated},
+ /* [ 186] = 186 */ {__glXDisp_Rotatef, __glXDispSwap_Rotatef},
+ /* [ 187] = 187 */ {__glXDisp_Scaled, __glXDispSwap_Scaled},
+ /* [ 188] = 188 */ {__glXDisp_Scalef, __glXDispSwap_Scalef},
+ /* [ 189] = 189 */ {__glXDisp_Translated, __glXDispSwap_Translated},
+ /* [ 190] = 190 */ {__glXDisp_Translatef, __glXDispSwap_Translatef},
+ /* [ 191] = 191 */ {__glXDisp_Viewport, __glXDispSwap_Viewport},
+ /* [ 192] = 192 */ {__glXDisp_PolygonOffset, __glXDispSwap_PolygonOffset},
+ /* [ 193] = 193 */ {__glXDisp_DrawArrays, __glXDispSwap_DrawArrays},
+ /* [ 194] = 194 */ {__glXDisp_Indexubv, __glXDispSwap_Indexubv},
+ /* [ 195] = 195 */ {__glXDisp_ColorSubTable, __glXDispSwap_ColorSubTable},
+ /* [ 196] = 196 */ {__glXDisp_CopyColorSubTable, __glXDispSwap_CopyColorSubTable},
+ /* [ 197] = 197 */ {__glXDisp_ActiveTexture, __glXDispSwap_ActiveTexture},
+ /* [ 198] = 198 */ {__glXDisp_MultiTexCoord1dv, __glXDispSwap_MultiTexCoord1dv},
+ /* [ 199] = 199 */ {__glXDisp_MultiTexCoord1fvARB, __glXDispSwap_MultiTexCoord1fvARB},
+ /* [ 200] = 200 */ {__glXDisp_MultiTexCoord1iv, __glXDispSwap_MultiTexCoord1iv},
+ /* [ 201] = 201 */ {__glXDisp_MultiTexCoord1sv, __glXDispSwap_MultiTexCoord1sv},
+ /* [ 202] = 202 */ {__glXDisp_MultiTexCoord2dv, __glXDispSwap_MultiTexCoord2dv},
+ /* [ 203] = 203 */ {__glXDisp_MultiTexCoord2fvARB, __glXDispSwap_MultiTexCoord2fvARB},
+ /* [ 204] = 204 */ {__glXDisp_MultiTexCoord2iv, __glXDispSwap_MultiTexCoord2iv},
+ /* [ 205] = 205 */ {__glXDisp_MultiTexCoord2sv, __glXDispSwap_MultiTexCoord2sv},
+ /* [ 206] = 206 */ {__glXDisp_MultiTexCoord3dv, __glXDispSwap_MultiTexCoord3dv},
+ /* [ 207] = 207 */ {__glXDisp_MultiTexCoord3fvARB, __glXDispSwap_MultiTexCoord3fvARB},
+ /* [ 208] = 208 */ {__glXDisp_MultiTexCoord3iv, __glXDispSwap_MultiTexCoord3iv},
+ /* [ 209] = 209 */ {__glXDisp_MultiTexCoord3sv, __glXDispSwap_MultiTexCoord3sv},
+ /* [ 210] = 210 */ {__glXDisp_MultiTexCoord4dv, __glXDispSwap_MultiTexCoord4dv},
+ /* [ 211] = 211 */ {__glXDisp_MultiTexCoord4fvARB, __glXDispSwap_MultiTexCoord4fvARB},
+ /* [ 212] = 212 */ {__glXDisp_MultiTexCoord4iv, __glXDispSwap_MultiTexCoord4iv},
+ /* [ 213] = 213 */ {__glXDisp_MultiTexCoord4sv, __glXDispSwap_MultiTexCoord4sv},
+ /* [ 214] = 214 */ {__glXDisp_CompressedTexImage1D, __glXDispSwap_CompressedTexImage1D},
+ /* [ 215] = 215 */ {__glXDisp_CompressedTexImage2D, __glXDispSwap_CompressedTexImage2D},
+ /* [ 216] = 216 */ {__glXDisp_CompressedTexImage3D, __glXDispSwap_CompressedTexImage3D},
+ /* [ 217] = 217 */ {__glXDisp_CompressedTexSubImage1D, __glXDispSwap_CompressedTexSubImage1D},
+ /* [ 218] = 218 */ {__glXDisp_CompressedTexSubImage2D, __glXDispSwap_CompressedTexSubImage2D},
+ /* [ 219] = 219 */ {__glXDisp_CompressedTexSubImage3D, __glXDispSwap_CompressedTexSubImage3D},
+ /* [ 220] = 220 */ {NULL, NULL},
+ /* [ 221] = 221 */ {NULL, NULL},
+ /* [ 222] = 222 */ {NULL, NULL},
+ /* [ 223] = 223 */ {NULL, NULL},
+ /* [ 224] = 224 */ {NULL, NULL},
+ /* [ 225] = 225 */ {NULL, NULL},
+ /* [ 226] = 226 */ {NULL, NULL},
+ /* [ 227] = 227 */ {NULL, NULL},
+ /* [ 228] = 228 */ {NULL, NULL},
+ /* [ 229] = 229 */ {__glXDisp_SampleCoverage, __glXDispSwap_SampleCoverage},
+ /* [ 230] = 230 */ {__glXDisp_WindowPos3fv, __glXDispSwap_WindowPos3fv},
+ /* [ 231] = 231 */ {__glXDisp_BeginQuery, __glXDispSwap_BeginQuery},
+ /* [ 232] = 232 */ {__glXDisp_EndQuery, __glXDispSwap_EndQuery},
+ /* [ 233] = 233 */ {__glXDisp_DrawBuffers, __glXDispSwap_DrawBuffers},
+ /* [ 234] = 234 */ {__glXDisp_ClampColor, __glXDispSwap_ClampColor},
+ /* [ 235] = 235 */ {__glXDisp_BindRenderbuffer, __glXDispSwap_BindRenderbuffer},
+ /* [ 236] = 236 */ {__glXDisp_BindFramebuffer, __glXDispSwap_BindFramebuffer},
+ /* [ 237] = 237 */ {__glXDisp_FramebufferTextureLayer, __glXDispSwap_FramebufferTextureLayer},
+ /* [ 238] = 238 */ {NULL, NULL},
+ /* [ 239] = 239 */ {NULL, NULL},
+ /* [ 240] = 2048 */ {__glXDisp_SampleMaskSGIS, __glXDispSwap_SampleMaskSGIS},
+ /* [ 241] = 2049 */ {__glXDisp_SamplePatternSGIS, __glXDispSwap_SamplePatternSGIS},
+ /* [ 242] = 2050 */ {NULL, NULL},
+ /* [ 243] = 2051 */ {NULL, NULL},
+ /* [ 244] = 2052 */ {NULL, NULL},
+ /* [ 245] = 2053 */ {__glXDisp_ColorTable, __glXDispSwap_ColorTable},
+ /* [ 246] = 2054 */ {__glXDisp_ColorTableParameterfv, __glXDispSwap_ColorTableParameterfv},
+ /* [ 247] = 2055 */ {__glXDisp_ColorTableParameteriv, __glXDispSwap_ColorTableParameteriv},
+ /* [ 248] = 2056 */ {__glXDisp_CopyColorTable, __glXDispSwap_CopyColorTable},
+ /* [ 249] = 2057 */ {NULL, NULL},
+ /* [ 250] = 2058 */ {NULL, NULL},
+ /* [ 251] = 2059 */ {NULL, NULL},
+ /* [ 252] = 2060 */ {NULL, NULL},
+ /* [ 253] = 2061 */ {NULL, NULL},
+ /* [ 254] = 2062 */ {NULL, NULL},
+ /* [ 255] = 2063 */ {NULL, NULL},
+ /* [ 256] = 2064 */ {NULL, NULL},
+ /* [ 257] = 2065 */ {__glXDisp_PointParameterf, __glXDispSwap_PointParameterf},
+ /* [ 258] = 2066 */ {__glXDisp_PointParameterfv, __glXDispSwap_PointParameterfv},
+ /* [ 259] = 2067 */ {NULL, NULL},
+ /* [ 260] = 2068 */ {NULL, NULL},
+ /* [ 261] = 2069 */ {NULL, NULL},
+ /* [ 262] = 2070 */ {NULL, NULL},
+ /* [ 263] = 2071 */ {NULL, NULL},
+ /* [ 264] = 4096 */ {__glXDisp_BlendColor, __glXDispSwap_BlendColor},
+ /* [ 265] = 4097 */ {__glXDisp_BlendEquation, __glXDispSwap_BlendEquation},
+ /* [ 266] = 4098 */ {NULL, NULL},
+ /* [ 267] = 4099 */ {__glXDisp_TexSubImage1D, __glXDispSwap_TexSubImage1D},
+ /* [ 268] = 4100 */ {__glXDisp_TexSubImage2D, __glXDispSwap_TexSubImage2D},
+ /* [ 269] = 4101 */ {__glXDisp_ConvolutionFilter1D, __glXDispSwap_ConvolutionFilter1D},
+ /* [ 270] = 4102 */ {__glXDisp_ConvolutionFilter2D, __glXDispSwap_ConvolutionFilter2D},
+ /* [ 271] = 4103 */ {__glXDisp_ConvolutionParameterf, __glXDispSwap_ConvolutionParameterf},
+ /* [ 272] = 4104 */ {__glXDisp_ConvolutionParameterfv, __glXDispSwap_ConvolutionParameterfv},
+ /* [ 273] = 4105 */ {__glXDisp_ConvolutionParameteri, __glXDispSwap_ConvolutionParameteri},
+ /* [ 274] = 4106 */ {__glXDisp_ConvolutionParameteriv, __glXDispSwap_ConvolutionParameteriv},
+ /* [ 275] = 4107 */ {__glXDisp_CopyConvolutionFilter1D, __glXDispSwap_CopyConvolutionFilter1D},
+ /* [ 276] = 4108 */ {__glXDisp_CopyConvolutionFilter2D, __glXDispSwap_CopyConvolutionFilter2D},
+ /* [ 277] = 4109 */ {__glXDisp_SeparableFilter2D, __glXDispSwap_SeparableFilter2D},
+ /* [ 278] = 4110 */ {__glXDisp_Histogram, __glXDispSwap_Histogram},
+ /* [ 279] = 4111 */ {__glXDisp_Minmax, __glXDispSwap_Minmax},
+ /* [ 280] = 4112 */ {__glXDisp_ResetHistogram, __glXDispSwap_ResetHistogram},
+ /* [ 281] = 4113 */ {__glXDisp_ResetMinmax, __glXDispSwap_ResetMinmax},
+ /* [ 282] = 4114 */ {__glXDisp_TexImage3D, __glXDispSwap_TexImage3D},
+ /* [ 283] = 4115 */ {__glXDisp_TexSubImage3D, __glXDispSwap_TexSubImage3D},
+ /* [ 284] = 4116 */ {NULL, NULL},
+ /* [ 285] = 4117 */ {__glXDisp_BindTexture, __glXDispSwap_BindTexture},
+ /* [ 286] = 4118 */ {__glXDisp_PrioritizeTextures, __glXDispSwap_PrioritizeTextures},
+ /* [ 287] = 4119 */ {__glXDisp_CopyTexImage1D, __glXDispSwap_CopyTexImage1D},
+ /* [ 288] = 4120 */ {__glXDisp_CopyTexImage2D, __glXDispSwap_CopyTexImage2D},
+ /* [ 289] = 4121 */ {__glXDisp_CopyTexSubImage1D, __glXDispSwap_CopyTexSubImage1D},
+ /* [ 290] = 4122 */ {__glXDisp_CopyTexSubImage2D, __glXDispSwap_CopyTexSubImage2D},
+ /* [ 291] = 4123 */ {__glXDisp_CopyTexSubImage3D, __glXDispSwap_CopyTexSubImage3D},
+ /* [ 292] = 4124 */ {__glXDisp_FogCoordfvEXT, __glXDispSwap_FogCoordfvEXT},
+ /* [ 293] = 4125 */ {__glXDisp_FogCoorddv, __glXDispSwap_FogCoorddv},
+ /* [ 294] = 4126 */ {__glXDisp_SecondaryColor3bv, __glXDispSwap_SecondaryColor3bv},
+ /* [ 295] = 4127 */ {__glXDisp_SecondaryColor3sv, __glXDispSwap_SecondaryColor3sv},
+ /* [ 296] = 4176 */ {NULL, NULL},
+ /* [ 297] = 4177 */ {NULL, NULL},
+ /* [ 298] = 4178 */ {NULL, NULL},
+ /* [ 299] = 4179 */ {NULL, NULL},
+ /* [ 300] = 4180 */ {__glXDisp_BindProgramARB, __glXDispSwap_BindProgramARB},
+ /* [ 301] = 4181 */ {__glXDisp_ExecuteProgramNV, __glXDispSwap_ExecuteProgramNV},
+ /* [ 302] = 4182 */ {__glXDisp_RequestResidentProgramsNV, __glXDispSwap_RequestResidentProgramsNV},
+ /* [ 303] = 4183 */ {__glXDisp_LoadProgramNV, __glXDispSwap_LoadProgramNV},
+ /* [ 304] = 4184 */ {__glXDisp_ProgramEnvParameter4fvARB, __glXDispSwap_ProgramEnvParameter4fvARB},
+ /* [ 305] = 4185 */ {__glXDisp_ProgramEnvParameter4dvARB, __glXDispSwap_ProgramEnvParameter4dvARB},
+ /* [ 306] = 4186 */ {__glXDisp_ProgramParameters4fvNV, __glXDispSwap_ProgramParameters4fvNV},
+ /* [ 307] = 4187 */ {__glXDisp_ProgramParameters4dvNV, __glXDispSwap_ProgramParameters4dvNV},
+ /* [ 308] = 4188 */ {__glXDisp_TrackMatrixNV, __glXDispSwap_TrackMatrixNV},
+ /* [ 309] = 4189 */ {__glXDisp_VertexAttrib1sv, __glXDispSwap_VertexAttrib1sv},
+ /* [ 310] = 4190 */ {__glXDisp_VertexAttrib2sv, __glXDispSwap_VertexAttrib2sv},
+ /* [ 311] = 4191 */ {__glXDisp_VertexAttrib3sv, __glXDispSwap_VertexAttrib3sv},
+ /* [ 312] = 4192 */ {__glXDisp_VertexAttrib4sv, __glXDispSwap_VertexAttrib4sv},
+ /* [ 313] = 4193 */ {__glXDisp_VertexAttrib1fvARB, __glXDispSwap_VertexAttrib1fvARB},
+ /* [ 314] = 4194 */ {__glXDisp_VertexAttrib2fvARB, __glXDispSwap_VertexAttrib2fvARB},
+ /* [ 315] = 4195 */ {__glXDisp_VertexAttrib3fvARB, __glXDispSwap_VertexAttrib3fvARB},
+ /* [ 316] = 4196 */ {__glXDisp_VertexAttrib4fvARB, __glXDispSwap_VertexAttrib4fvARB},
+ /* [ 317] = 4197 */ {__glXDisp_VertexAttrib1dv, __glXDispSwap_VertexAttrib1dv},
+ /* [ 318] = 4198 */ {__glXDisp_VertexAttrib2dv, __glXDispSwap_VertexAttrib2dv},
+ /* [ 319] = 4199 */ {__glXDisp_VertexAttrib3dv, __glXDispSwap_VertexAttrib3dv},
+ /* [ 320] = 4200 */ {__glXDisp_VertexAttrib4dv, __glXDispSwap_VertexAttrib4dv},
+ /* [ 321] = 4201 */ {__glXDisp_VertexAttrib4Nubv, __glXDispSwap_VertexAttrib4Nubv},
+ /* [ 322] = 4202 */ {__glXDisp_VertexAttribs1svNV, __glXDispSwap_VertexAttribs1svNV},
+ /* [ 323] = 4203 */ {__glXDisp_VertexAttribs2svNV, __glXDispSwap_VertexAttribs2svNV},
+ /* [ 324] = 4204 */ {__glXDisp_VertexAttribs3svNV, __glXDispSwap_VertexAttribs3svNV},
+ /* [ 325] = 4205 */ {__glXDisp_VertexAttribs4svNV, __glXDispSwap_VertexAttribs4svNV},
+ /* [ 326] = 4206 */ {__glXDisp_VertexAttribs1fvNV, __glXDispSwap_VertexAttribs1fvNV},
+ /* [ 327] = 4207 */ {__glXDisp_VertexAttribs2fvNV, __glXDispSwap_VertexAttribs2fvNV},
+ /* [ 328] = 4208 */ {__glXDisp_VertexAttribs3fvNV, __glXDispSwap_VertexAttribs3fvNV},
+ /* [ 329] = 4209 */ {__glXDisp_VertexAttribs4fvNV, __glXDispSwap_VertexAttribs4fvNV},
+ /* [ 330] = 4210 */ {__glXDisp_VertexAttribs1dvNV, __glXDispSwap_VertexAttribs1dvNV},
+ /* [ 331] = 4211 */ {__glXDisp_VertexAttribs2dvNV, __glXDispSwap_VertexAttribs2dvNV},
+ /* [ 332] = 4212 */ {__glXDisp_VertexAttribs3dvNV, __glXDispSwap_VertexAttribs3dvNV},
+ /* [ 333] = 4213 */ {__glXDisp_VertexAttribs4dvNV, __glXDispSwap_VertexAttribs4dvNV},
+ /* [ 334] = 4214 */ {__glXDisp_VertexAttribs4ubvNV, __glXDispSwap_VertexAttribs4ubvNV},
+ /* [ 335] = 4215 */ {__glXDisp_ProgramLocalParameter4fvARB, __glXDispSwap_ProgramLocalParameter4fvARB},
+ /* [ 336] = 4216 */ {__glXDisp_ProgramLocalParameter4dvARB, __glXDispSwap_ProgramLocalParameter4dvARB},
+ /* [ 337] = 4217 */ {__glXDisp_ProgramStringARB, __glXDispSwap_ProgramStringARB},
+ /* [ 338] = 4218 */ {__glXDisp_ProgramNamedParameter4fvNV, __glXDispSwap_ProgramNamedParameter4fvNV},
+ /* [ 339] = 4219 */ {__glXDisp_ProgramNamedParameter4dvNV, __glXDispSwap_ProgramNamedParameter4dvNV},
+ /* [ 340] = 4220 */ {__glXDisp_ActiveStencilFaceEXT, __glXDispSwap_ActiveStencilFaceEXT},
+ /* [ 341] = 4221 */ {__glXDisp_PointParameteri, __glXDispSwap_PointParameteri},
+ /* [ 342] = 4222 */ {__glXDisp_PointParameteriv, __glXDispSwap_PointParameteriv},
+ /* [ 343] = 4223 */ {NULL, NULL},
+ /* [ 344] = 4224 */ {NULL, NULL},
+ /* [ 345] = 4225 */ {NULL, NULL},
+ /* [ 346] = 4226 */ {NULL, NULL},
+ /* [ 347] = 4227 */ {NULL, NULL},
+ /* [ 348] = 4228 */ {__glXDisp_BlendEquationSeparate, __glXDispSwap_BlendEquationSeparate},
+ /* [ 349] = 4229 */ {NULL, NULL},
+ /* [ 350] = 4230 */ {__glXDisp_VertexAttrib4bv, __glXDispSwap_VertexAttrib4bv},
+ /* [ 351] = 4231 */ {__glXDisp_VertexAttrib4iv, __glXDispSwap_VertexAttrib4iv},
+ /* [ 352] = 4232 */ {__glXDisp_VertexAttrib4ubv, __glXDispSwap_VertexAttrib4ubv},
+ /* [ 353] = 4233 */ {__glXDisp_VertexAttrib4usv, __glXDispSwap_VertexAttrib4usv},
+ /* [ 354] = 4234 */ {__glXDisp_VertexAttrib4uiv, __glXDispSwap_VertexAttrib4uiv},
+ /* [ 355] = 4235 */ {__glXDisp_VertexAttrib4Nbv, __glXDispSwap_VertexAttrib4Nbv},
+ /* [ 356] = 4236 */ {__glXDisp_VertexAttrib4Nsv, __glXDispSwap_VertexAttrib4Nsv},
+ /* [ 357] = 4237 */ {__glXDisp_VertexAttrib4Niv, __glXDispSwap_VertexAttrib4Niv},
+ /* [ 358] = 4238 */ {__glXDisp_VertexAttrib4Nusv, __glXDispSwap_VertexAttrib4Nusv},
+ /* [ 359] = 4239 */ {__glXDisp_VertexAttrib4Nuiv, __glXDispSwap_VertexAttrib4Nuiv},
+ /* [ 360] = 4320 */ {__glXDisp_DeleteFramebuffers, __glXDispSwap_DeleteFramebuffers},
+ /* [ 361] = 4321 */ {__glXDisp_FramebufferTexture1D, __glXDispSwap_FramebufferTexture1D},
+ /* [ 362] = 4322 */ {__glXDisp_FramebufferTexture2D, __glXDispSwap_FramebufferTexture2D},
+ /* [ 363] = 4323 */ {__glXDisp_FramebufferTexture3D, __glXDispSwap_FramebufferTexture3D},
+ /* [ 364] = 4324 */ {__glXDisp_FramebufferRenderbuffer, __glXDispSwap_FramebufferRenderbuffer},
+ /* [ 365] = 4325 */ {__glXDisp_GenerateMipmap, __glXDispSwap_GenerateMipmap},
+ /* [ 366] = 4326 */ {NULL, NULL},
+ /* [ 367] = 4327 */ {NULL, NULL},
+ /* [ 368] = 4328 */ {NULL, NULL},
+ /* [ 369] = 4329 */ {NULL, NULL},
+ /* [ 370] = 4330 */ {__glXDisp_BlitFramebuffer, __glXDispSwap_BlitFramebuffer},
+ /* [ 371] = 4331 */ {__glXDisp_RenderbufferStorageMultisample, __glXDispSwap_RenderbufferStorageMultisample},
+ /* [ 372] = 4332 */ {NULL, NULL},
+ /* [ 373] = 4333 */ {NULL, NULL},
+ /* [ 374] = 4334 */ {NULL, NULL},
+ /* [ 375] = 4335 */ {NULL, NULL},
+ /* [ 376] = 4128 */ {__glXDisp_SecondaryColor3iv, __glXDispSwap_SecondaryColor3iv},
+ /* [ 377] = 4129 */ {__glXDisp_SecondaryColor3fvEXT, __glXDispSwap_SecondaryColor3fvEXT},
+ /* [ 378] = 4130 */ {__glXDisp_SecondaryColor3dv, __glXDispSwap_SecondaryColor3dv},
+ /* [ 379] = 4131 */ {__glXDisp_SecondaryColor3ubv, __glXDispSwap_SecondaryColor3ubv},
+ /* [ 380] = 4132 */ {__glXDisp_SecondaryColor3usv, __glXDispSwap_SecondaryColor3usv},
+ /* [ 381] = 4133 */ {__glXDisp_SecondaryColor3uiv, __glXDispSwap_SecondaryColor3uiv},
+ /* [ 382] = 4134 */ {__glXDisp_BlendFuncSeparate, __glXDispSwap_BlendFuncSeparate},
+ /* [ 383] = 4135 */ {NULL, NULL},
+ /* [ 384] = 4264 */ {NULL, NULL},
+ /* [ 385] = 4265 */ {__glXDisp_VertexAttrib1svNV, __glXDispSwap_VertexAttrib1svNV},
+ /* [ 386] = 4266 */ {__glXDisp_VertexAttrib2svNV, __glXDispSwap_VertexAttrib2svNV},
+ /* [ 387] = 4267 */ {__glXDisp_VertexAttrib3svNV, __glXDispSwap_VertexAttrib3svNV},
+ /* [ 388] = 4268 */ {__glXDisp_VertexAttrib4svNV, __glXDispSwap_VertexAttrib4svNV},
+ /* [ 389] = 4269 */ {__glXDisp_VertexAttrib1fvNV, __glXDispSwap_VertexAttrib1fvNV},
+ /* [ 390] = 4270 */ {__glXDisp_VertexAttrib2fvNV, __glXDispSwap_VertexAttrib2fvNV},
+ /* [ 391] = 4271 */ {__glXDisp_VertexAttrib3fvNV, __glXDispSwap_VertexAttrib3fvNV},
+ /* [ 392] = 4272 */ {__glXDisp_VertexAttrib4fvNV, __glXDispSwap_VertexAttrib4fvNV},
+ /* [ 393] = 4273 */ {__glXDisp_VertexAttrib1dvNV, __glXDispSwap_VertexAttrib1dvNV},
+ /* [ 394] = 4274 */ {__glXDisp_VertexAttrib2dvNV, __glXDispSwap_VertexAttrib2dvNV},
+ /* [ 395] = 4275 */ {__glXDisp_VertexAttrib3dvNV, __glXDispSwap_VertexAttrib3dvNV},
+ /* [ 396] = 4276 */ {__glXDisp_VertexAttrib4dvNV, __glXDispSwap_VertexAttrib4dvNV},
+ /* [ 397] = 4277 */ {__glXDisp_VertexAttrib4ubvNV, __glXDispSwap_VertexAttrib4ubvNV},
+ /* [ 398] = 4278 */ {NULL, NULL},
+ /* [ 399] = 4279 */ {NULL, NULL},
+ /* [ 400] = 4312 */ {NULL, NULL},
+ /* [ 401] = 4313 */ {NULL, NULL},
+ /* [ 402] = 4314 */ {NULL, NULL},
+ /* [ 403] = 4315 */ {NULL, NULL},
+ /* [ 404] = 4316 */ {__glXDisp_BindRenderbufferEXT, __glXDispSwap_BindRenderbufferEXT},
+ /* [ 405] = 4317 */ {__glXDisp_DeleteRenderbuffers, __glXDispSwap_DeleteRenderbuffers},
+ /* [ 406] = 4318 */ {__glXDisp_RenderbufferStorage, __glXDispSwap_RenderbufferStorage},
+ /* [ 407] = 4319 */ {__glXDisp_BindFramebufferEXT, __glXDispSwap_BindFramebufferEXT},
+};
+
+static const int_fast16_t Render_size_table[408][2] = {
+ /* [ 0] = 0 */ { 0, ~0},
+ /* [ 1] = 1 */ { 8, ~0},
+ /* [ 2] = 2 */ { 12, 0},
+ /* [ 3] = 3 */ { 8, ~0},
+ /* [ 4] = 4 */ { 8, ~0},
+ /* [ 5] = 5 */ { 48, 1},
+ /* [ 6] = 6 */ { 8, ~0},
+ /* [ 7] = 7 */ { 28, ~0},
+ /* [ 8] = 8 */ { 16, ~0},
+ /* [ 9] = 9 */ { 16, ~0},
+ /* [ 10] = 10 */ { 12, ~0},
+ /* [ 11] = 11 */ { 8, ~0},
+ /* [ 12] = 12 */ { 16, ~0},
+ /* [ 13] = 13 */ { 12, ~0},
+ /* [ 14] = 14 */ { 8, ~0},
+ /* [ 15] = 15 */ { 36, ~0},
+ /* [ 16] = 16 */ { 20, ~0},
+ /* [ 17] = 17 */ { 20, ~0},
+ /* [ 18] = 18 */ { 12, ~0},
+ /* [ 19] = 19 */ { 8, ~0},
+ /* [ 20] = 20 */ { 20, ~0},
+ /* [ 21] = 21 */ { 12, ~0},
+ /* [ 22] = 22 */ { 8, ~0},
+ /* [ 23] = 23 */ { 4, ~0},
+ /* [ 24] = 24 */ { 12, ~0},
+ /* [ 25] = 25 */ { 8, ~0},
+ /* [ 26] = 26 */ { 8, ~0},
+ /* [ 27] = 27 */ { 8, ~0},
+ /* [ 28] = 28 */ { 8, ~0},
+ /* [ 29] = 29 */ { 28, ~0},
+ /* [ 30] = 30 */ { 16, ~0},
+ /* [ 31] = 31 */ { 16, ~0},
+ /* [ 32] = 32 */ { 12, ~0},
+ /* [ 33] = 33 */ { 20, ~0},
+ /* [ 34] = 34 */ { 12, ~0},
+ /* [ 35] = 35 */ { 12, ~0},
+ /* [ 36] = 36 */ { 8, ~0},
+ /* [ 37] = 37 */ { 28, ~0},
+ /* [ 38] = 38 */ { 16, ~0},
+ /* [ 39] = 39 */ { 16, ~0},
+ /* [ 40] = 40 */ { 12, ~0},
+ /* [ 41] = 41 */ { 36, ~0},
+ /* [ 42] = 42 */ { 20, ~0},
+ /* [ 43] = 43 */ { 20, ~0},
+ /* [ 44] = 44 */ { 12, ~0},
+ /* [ 45] = 45 */ { 36, ~0},
+ /* [ 46] = 46 */ { 20, ~0},
+ /* [ 47] = 47 */ { 20, ~0},
+ /* [ 48] = 48 */ { 12, ~0},
+ /* [ 49] = 49 */ { 12, ~0},
+ /* [ 50] = 50 */ { 8, ~0},
+ /* [ 51] = 51 */ { 8, ~0},
+ /* [ 52] = 52 */ { 8, ~0},
+ /* [ 53] = 53 */ { 20, ~0},
+ /* [ 54] = 54 */ { 12, ~0},
+ /* [ 55] = 55 */ { 12, ~0},
+ /* [ 56] = 56 */ { 8, ~0},
+ /* [ 57] = 57 */ { 28, ~0},
+ /* [ 58] = 58 */ { 16, ~0},
+ /* [ 59] = 59 */ { 16, ~0},
+ /* [ 60] = 60 */ { 12, ~0},
+ /* [ 61] = 61 */ { 36, ~0},
+ /* [ 62] = 62 */ { 20, ~0},
+ /* [ 63] = 63 */ { 20, ~0},
+ /* [ 64] = 64 */ { 12, ~0},
+ /* [ 65] = 65 */ { 20, ~0},
+ /* [ 66] = 66 */ { 12, ~0},
+ /* [ 67] = 67 */ { 12, ~0},
+ /* [ 68] = 68 */ { 8, ~0},
+ /* [ 69] = 69 */ { 28, ~0},
+ /* [ 70] = 70 */ { 16, ~0},
+ /* [ 71] = 71 */ { 16, ~0},
+ /* [ 72] = 72 */ { 12, ~0},
+ /* [ 73] = 73 */ { 36, ~0},
+ /* [ 74] = 74 */ { 20, ~0},
+ /* [ 75] = 75 */ { 20, ~0},
+ /* [ 76] = 76 */ { 12, ~0},
+ /* [ 77] = 77 */ { 40, ~0},
+ /* [ 78] = 78 */ { 12, ~0},
+ /* [ 79] = 79 */ { 8, ~0},
+ /* [ 80] = 80 */ { 12, ~0},
+ /* [ 81] = 81 */ { 8, 2},
+ /* [ 82] = 82 */ { 12, ~0},
+ /* [ 83] = 83 */ { 8, 3},
+ /* [ 84] = 84 */ { 8, ~0},
+ /* [ 85] = 85 */ { 12, ~0},
+ /* [ 86] = 86 */ { 16, ~0},
+ /* [ 87] = 87 */ { 12, 4},
+ /* [ 88] = 88 */ { 16, ~0},
+ /* [ 89] = 89 */ { 12, 5},
+ /* [ 90] = 90 */ { 12, ~0},
+ /* [ 91] = 91 */ { 8, 6},
+ /* [ 92] = 92 */ { 12, ~0},
+ /* [ 93] = 93 */ { 8, 7},
+ /* [ 94] = 94 */ { 12, ~0},
+ /* [ 95] = 95 */ { 8, ~0},
+ /* [ 96] = 96 */ { 16, ~0},
+ /* [ 97] = 97 */ { 12, 8},
+ /* [ 98] = 98 */ { 16, ~0},
+ /* [ 99] = 99 */ { 12, 9},
+ /* [100] = 100 */ { 8, ~0},
+ /* [101] = 101 */ { 12, ~0},
+ /* [102] = 102 */ { 24, 10},
+ /* [103] = 103 */ { 20, ~0},
+ /* [104] = 104 */ { 8, ~0},
+ /* [105] = 105 */ { 16, ~0},
+ /* [106] = 106 */ { 12, 11},
+ /* [107] = 107 */ { 16, ~0},
+ /* [108] = 108 */ { 12, 12},
+ /* [109] = 109 */ { 56, 13},
+ /* [110] = 110 */ { 56, 14},
+ /* [111] = 111 */ { 16, ~0},
+ /* [112] = 112 */ { 12, 15},
+ /* [113] = 113 */ { 16, ~0},
+ /* [114] = 114 */ { 12, 16},
+ /* [115] = 115 */ { 20, ~0},
+ /* [116] = 116 */ { 12, 17},
+ /* [117] = 117 */ { 16, ~0},
+ /* [118] = 118 */ { 12, 18},
+ /* [119] = 119 */ { 16, ~0},
+ /* [120] = 120 */ { 12, 19},
+ /* [121] = 121 */ { 4, ~0},
+ /* [122] = 122 */ { 8, ~0},
+ /* [123] = 123 */ { 8, ~0},
+ /* [124] = 124 */ { 4, ~0},
+ /* [125] = 125 */ { 8, ~0},
+ /* [126] = 126 */ { 8, ~0},
+ /* [127] = 127 */ { 8, ~0},
+ /* [128] = 128 */ { 20, ~0},
+ /* [129] = 129 */ { 8, ~0},
+ /* [130] = 130 */ { 20, ~0},
+ /* [131] = 131 */ { 8, ~0},
+ /* [132] = 132 */ { 12, ~0},
+ /* [133] = 133 */ { 8, ~0},
+ /* [134] = 134 */ { 8, ~0},
+ /* [135] = 135 */ { 8, ~0},
+ /* [136] = 136 */ { 8, ~0},
+ /* [137] = 137 */ { 12, ~0},
+ /* [138] = 138 */ { 8, ~0},
+ /* [139] = 139 */ { 8, ~0},
+ /* [140] = 140 */ { 0, ~0},
+ /* [141] = 141 */ { 4, ~0},
+ /* [142] = 142 */ { 8, ~0},
+ /* [143] = 143 */ { 28, 20},
+ /* [144] = 144 */ { 20, 21},
+ /* [145] = 145 */ { 48, 22},
+ /* [146] = 146 */ { 32, 23},
+ /* [147] = 147 */ { 24, ~0},
+ /* [148] = 148 */ { 16, ~0},
+ /* [149] = 149 */ { 44, ~0},
+ /* [150] = 150 */ { 28, ~0},
+ /* [151] = 151 */ { 12, ~0},
+ /* [152] = 152 */ { 8, ~0},
+ /* [153] = 153 */ { 20, ~0},
+ /* [154] = 154 */ { 12, ~0},
+ /* [155] = 155 */ { 16, ~0},
+ /* [156] = 156 */ { 8, ~0},
+ /* [157] = 157 */ { 24, ~0},
+ /* [158] = 158 */ { 12, ~0},
+ /* [159] = 159 */ { 12, ~0},
+ /* [160] = 160 */ { 12, ~0},
+ /* [161] = 161 */ { 8, ~0},
+ /* [162] = 162 */ { 16, ~0},
+ /* [163] = 163 */ { 16, ~0},
+ /* [164] = 164 */ { 8, ~0},
+ /* [165] = 165 */ { 12, ~0},
+ /* [166] = 166 */ { 12, ~0},
+ /* [167] = 167 */ { 12, ~0},
+ /* [168] = 168 */ { 12, 24},
+ /* [169] = 169 */ { 12, 25},
+ /* [170] = 170 */ { 12, 26},
+ /* [171] = 171 */ { 8, ~0},
+ /* [172] = 172 */ { 24, ~0},
+ /* [173] = 173 */ { 40, 27},
+ /* [174] = 174 */ { 20, ~0},
+ /* [175] = 175 */ { 52, ~0},
+ /* [176] = 176 */ { 4, ~0},
+ /* [177] = 177 */ { 68, ~0},
+ /* [178] = 178 */ {132, ~0},
+ /* [179] = 179 */ { 8, ~0},
+ /* [180] = 180 */ { 68, ~0},
+ /* [181] = 181 */ {132, ~0},
+ /* [182] = 182 */ { 52, ~0},
+ /* [183] = 183 */ { 4, ~0},
+ /* [184] = 184 */ { 4, ~0},
+ /* [185] = 185 */ { 36, ~0},
+ /* [186] = 186 */ { 20, ~0},
+ /* [187] = 187 */ { 28, ~0},
+ /* [188] = 188 */ { 16, ~0},
+ /* [189] = 189 */ { 28, ~0},
+ /* [190] = 190 */ { 16, ~0},
+ /* [191] = 191 */ { 20, ~0},
+ /* [192] = 192 */ { 12, ~0},
+ /* [193] = 193 */ { 16, 28},
+ /* [194] = 194 */ { 8, ~0},
+ /* [195] = 195 */ { 44, 29},
+ /* [196] = 196 */ { 24, ~0},
+ /* [197] = 197 */ { 8, ~0},
+ /* [198] = 198 */ { 16, ~0},
+ /* [199] = 199 */ { 12, ~0},
+ /* [200] = 200 */ { 12, ~0},
+ /* [201] = 201 */ { 12, ~0},
+ /* [202] = 202 */ { 24, ~0},
+ /* [203] = 203 */ { 16, ~0},
+ /* [204] = 204 */ { 16, ~0},
+ /* [205] = 205 */ { 12, ~0},
+ /* [206] = 206 */ { 32, ~0},
+ /* [207] = 207 */ { 20, ~0},
+ /* [208] = 208 */ { 20, ~0},
+ /* [209] = 209 */ { 16, ~0},
+ /* [210] = 210 */ { 40, ~0},
+ /* [211] = 211 */ { 24, ~0},
+ /* [212] = 212 */ { 24, ~0},
+ /* [213] = 213 */ { 16, ~0},
+ /* [214] = 214 */ { 28, 30},
+ /* [215] = 215 */ { 32, 31},
+ /* [216] = 216 */ { 36, 32},
+ /* [217] = 217 */ { 28, 33},
+ /* [218] = 218 */ { 36, 34},
+ /* [219] = 219 */ { 44, 35},
+ /* [220] = 220 */ { 0, ~0},
+ /* [221] = 221 */ { 0, ~0},
+ /* [222] = 222 */ { 0, ~0},
+ /* [223] = 223 */ { 0, ~0},
+ /* [224] = 224 */ { 0, ~0},
+ /* [225] = 225 */ { 0, ~0},
+ /* [226] = 226 */ { 0, ~0},
+ /* [227] = 227 */ { 0, ~0},
+ /* [228] = 228 */ { 0, ~0},
+ /* [229] = 229 */ { 12, ~0},
+ /* [230] = 230 */ { 16, ~0},
+ /* [231] = 231 */ { 12, ~0},
+ /* [232] = 232 */ { 8, ~0},
+ /* [233] = 233 */ { 8, 36},
+ /* [234] = 234 */ { 12, ~0},
+ /* [235] = 235 */ { 12, ~0},
+ /* [236] = 236 */ { 12, ~0},
+ /* [237] = 237 */ { 24, ~0},
+ /* [238] = 238 */ { 0, ~0},
+ /* [239] = 239 */ { 0, ~0},
+ /* [240] = 2048 */ { 12, ~0},
+ /* [241] = 2049 */ { 8, ~0},
+ /* [242] = 2050 */ { 0, ~0},
+ /* [243] = 2051 */ { 0, ~0},
+ /* [244] = 2052 */ { 0, ~0},
+ /* [245] = 2053 */ { 44, 37},
+ /* [246] = 2054 */ { 12, 38},
+ /* [247] = 2055 */ { 12, 39},
+ /* [248] = 2056 */ { 24, ~0},
+ /* [249] = 2057 */ { 0, ~0},
+ /* [250] = 2058 */ { 0, ~0},
+ /* [251] = 2059 */ { 0, ~0},
+ /* [252] = 2060 */ { 0, ~0},
+ /* [253] = 2061 */ { 0, ~0},
+ /* [254] = 2062 */ { 0, ~0},
+ /* [255] = 2063 */ { 0, ~0},
+ /* [256] = 2064 */ { 0, ~0},
+ /* [257] = 2065 */ { 12, ~0},
+ /* [258] = 2066 */ { 8, 40},
+ /* [259] = 2067 */ { 0, ~0},
+ /* [260] = 2068 */ { 0, ~0},
+ /* [261] = 2069 */ { 0, ~0},
+ /* [262] = 2070 */ { 0, ~0},
+ /* [263] = 2071 */ { 0, ~0},
+ /* [264] = 4096 */ { 20, ~0},
+ /* [265] = 4097 */ { 8, ~0},
+ /* [266] = 4098 */ { 0, ~0},
+ /* [267] = 4099 */ { 60, 41},
+ /* [268] = 4100 */ { 60, 42},
+ /* [269] = 4101 */ { 48, 43},
+ /* [270] = 4102 */ { 48, 44},
+ /* [271] = 4103 */ { 16, ~0},
+ /* [272] = 4104 */ { 12, 45},
+ /* [273] = 4105 */ { 16, ~0},
+ /* [274] = 4106 */ { 12, 46},
+ /* [275] = 4107 */ { 24, ~0},
+ /* [276] = 4108 */ { 28, ~0},
+ /* [277] = 4109 */ { 32, 47},
+ /* [278] = 4110 */ { 20, ~0},
+ /* [279] = 4111 */ { 16, ~0},
+ /* [280] = 4112 */ { 8, ~0},
+ /* [281] = 4113 */ { 8, ~0},
+ /* [282] = 4114 */ { 84, 48},
+ /* [283] = 4115 */ { 92, 49},
+ /* [284] = 4116 */ { 0, ~0},
+ /* [285] = 4117 */ { 12, ~0},
+ /* [286] = 4118 */ { 8, 50},
+ /* [287] = 4119 */ { 32, ~0},
+ /* [288] = 4120 */ { 36, ~0},
+ /* [289] = 4121 */ { 28, ~0},
+ /* [290] = 4122 */ { 36, ~0},
+ /* [291] = 4123 */ { 40, ~0},
+ /* [292] = 4124 */ { 8, ~0},
+ /* [293] = 4125 */ { 12, ~0},
+ /* [294] = 4126 */ { 8, ~0},
+ /* [295] = 4127 */ { 12, ~0},
+ /* [296] = 4176 */ { 0, ~0},
+ /* [297] = 4177 */ { 0, ~0},
+ /* [298] = 4178 */ { 0, ~0},
+ /* [299] = 4179 */ { 0, ~0},
+ /* [300] = 4180 */ { 12, ~0},
+ /* [301] = 4181 */ { 28, ~0},
+ /* [302] = 4182 */ { 8, 51},
+ /* [303] = 4183 */ { 16, 52},
+ /* [304] = 4184 */ { 28, ~0},
+ /* [305] = 4185 */ { 44, ~0},
+ /* [306] = 4186 */ { 16, 53},
+ /* [307] = 4187 */ { 16, 54},
+ /* [308] = 4188 */ { 20, ~0},
+ /* [309] = 4189 */ { 12, ~0},
+ /* [310] = 4190 */ { 12, ~0},
+ /* [311] = 4191 */ { 16, ~0},
+ /* [312] = 4192 */ { 16, ~0},
+ /* [313] = 4193 */ { 12, ~0},
+ /* [314] = 4194 */ { 16, ~0},
+ /* [315] = 4195 */ { 20, ~0},
+ /* [316] = 4196 */ { 24, ~0},
+ /* [317] = 4197 */ { 16, ~0},
+ /* [318] = 4198 */ { 24, ~0},
+ /* [319] = 4199 */ { 32, ~0},
+ /* [320] = 4200 */ { 40, ~0},
+ /* [321] = 4201 */ { 12, ~0},
+ /* [322] = 4202 */ { 12, 55},
+ /* [323] = 4203 */ { 12, 56},
+ /* [324] = 4204 */ { 12, 57},
+ /* [325] = 4205 */ { 12, 58},
+ /* [326] = 4206 */ { 12, 59},
+ /* [327] = 4207 */ { 12, 60},
+ /* [328] = 4208 */ { 12, 61},
+ /* [329] = 4209 */ { 12, 62},
+ /* [330] = 4210 */ { 12, 63},
+ /* [331] = 4211 */ { 12, 64},
+ /* [332] = 4212 */ { 12, 65},
+ /* [333] = 4213 */ { 12, 66},
+ /* [334] = 4214 */ { 12, 67},
+ /* [335] = 4215 */ { 28, ~0},
+ /* [336] = 4216 */ { 44, ~0},
+ /* [337] = 4217 */ { 16, 68},
+ /* [338] = 4218 */ { 28, 69},
+ /* [339] = 4219 */ { 44, 70},
+ /* [340] = 4220 */ { 8, ~0},
+ /* [341] = 4221 */ { 12, ~0},
+ /* [342] = 4222 */ { 8, 71},
+ /* [343] = 4223 */ { 0, ~0},
+ /* [344] = 4224 */ { 0, ~0},
+ /* [345] = 4225 */ { 0, ~0},
+ /* [346] = 4226 */ { 0, ~0},
+ /* [347] = 4227 */ { 0, ~0},
+ /* [348] = 4228 */ { 12, ~0},
+ /* [349] = 4229 */ { 0, ~0},
+ /* [350] = 4230 */ { 12, ~0},
+ /* [351] = 4231 */ { 24, ~0},
+ /* [352] = 4232 */ { 12, ~0},
+ /* [353] = 4233 */ { 16, ~0},
+ /* [354] = 4234 */ { 24, ~0},
+ /* [355] = 4235 */ { 12, ~0},
+ /* [356] = 4236 */ { 16, ~0},
+ /* [357] = 4237 */ { 24, ~0},
+ /* [358] = 4238 */ { 16, ~0},
+ /* [359] = 4239 */ { 24, ~0},
+ /* [360] = 4320 */ { 8, 72},
+ /* [361] = 4321 */ { 24, ~0},
+ /* [362] = 4322 */ { 24, ~0},
+ /* [363] = 4323 */ { 28, ~0},
+ /* [364] = 4324 */ { 20, ~0},
+ /* [365] = 4325 */ { 8, ~0},
+ /* [366] = 4326 */ { 0, ~0},
+ /* [367] = 4327 */ { 0, ~0},
+ /* [368] = 4328 */ { 0, ~0},
+ /* [369] = 4329 */ { 0, ~0},
+ /* [370] = 4330 */ { 44, ~0},
+ /* [371] = 4331 */ { 24, ~0},
+ /* [372] = 4332 */ { 0, ~0},
+ /* [373] = 4333 */ { 0, ~0},
+ /* [374] = 4334 */ { 0, ~0},
+ /* [375] = 4335 */ { 0, ~0},
+ /* [376] = 4128 */ { 16, ~0},
+ /* [377] = 4129 */ { 16, ~0},
+ /* [378] = 4130 */ { 28, ~0},
+ /* [379] = 4131 */ { 8, ~0},
+ /* [380] = 4132 */ { 12, ~0},
+ /* [381] = 4133 */ { 16, ~0},
+ /* [382] = 4134 */ { 20, ~0},
+ /* [383] = 4135 */ { 0, ~0},
+ /* [384] = 4264 */ { 0, ~0},
+ /* [385] = 4265 */ { 12, ~0},
+ /* [386] = 4266 */ { 12, ~0},
+ /* [387] = 4267 */ { 16, ~0},
+ /* [388] = 4268 */ { 16, ~0},
+ /* [389] = 4269 */ { 12, ~0},
+ /* [390] = 4270 */ { 16, ~0},
+ /* [391] = 4271 */ { 20, ~0},
+ /* [392] = 4272 */ { 24, ~0},
+ /* [393] = 4273 */ { 16, ~0},
+ /* [394] = 4274 */ { 24, ~0},
+ /* [395] = 4275 */ { 32, ~0},
+ /* [396] = 4276 */ { 40, ~0},
+ /* [397] = 4277 */ { 12, ~0},
+ /* [398] = 4278 */ { 0, ~0},
+ /* [399] = 4279 */ { 0, ~0},
+ /* [400] = 4312 */ { 0, ~0},
+ /* [401] = 4313 */ { 0, ~0},
+ /* [402] = 4314 */ { 0, ~0},
+ /* [403] = 4315 */ { 0, ~0},
+ /* [404] = 4316 */ { 12, ~0},
+ /* [405] = 4317 */ { 8, 73},
+ /* [406] = 4318 */ { 20, ~0},
+ /* [407] = 4319 */ { 12, ~0},
+};
+
+static const gl_proto_size_func Render_size_func_table[74] = {
+ __glXCallListsReqSize,
+ __glXBitmapReqSize,
+ __glXFogfvReqSize,
+ __glXFogivReqSize,
+ __glXLightfvReqSize,
+ __glXLightivReqSize,
+ __glXLightModelfvReqSize,
+ __glXLightModelivReqSize,
+ __glXMaterialfvReqSize,
+ __glXMaterialivReqSize,
+ __glXPolygonStippleReqSize,
+ __glXTexParameterfvReqSize,
+ __glXTexParameterivReqSize,
+ __glXTexImage1DReqSize,
+ __glXTexImage2DReqSize,
+ __glXTexEnvfvReqSize,
+ __glXTexEnvivReqSize,
+ __glXTexGendvReqSize,
+ __glXTexGenfvReqSize,
+ __glXTexGenivReqSize,
+ __glXMap1dReqSize,
+ __glXMap1fReqSize,
+ __glXMap2dReqSize,
+ __glXMap2fReqSize,
+ __glXPixelMapfvReqSize,
+ __glXPixelMapuivReqSize,
+ __glXPixelMapusvReqSize,
+ __glXDrawPixelsReqSize,
+ __glXDrawArraysReqSize,
+ __glXColorSubTableReqSize,
+ __glXCompressedTexImage1DReqSize,
+ __glXCompressedTexImage2DReqSize,
+ __glXCompressedTexImage3DReqSize,
+ __glXCompressedTexSubImage1DReqSize,
+ __glXCompressedTexSubImage2DReqSize,
+ __glXCompressedTexSubImage3DReqSize,
+ __glXDrawBuffersReqSize,
+ __glXColorTableReqSize,
+ __glXColorTableParameterfvReqSize,
+ __glXColorTableParameterivReqSize,
+ __glXPointParameterfvReqSize,
+ __glXTexSubImage1DReqSize,
+ __glXTexSubImage2DReqSize,
+ __glXConvolutionFilter1DReqSize,
+ __glXConvolutionFilter2DReqSize,
+ __glXConvolutionParameterfvReqSize,
+ __glXConvolutionParameterivReqSize,
+ __glXSeparableFilter2DReqSize,
+ __glXTexImage3DReqSize,
+ __glXTexSubImage3DReqSize,
+ __glXPrioritizeTexturesReqSize,
+ __glXRequestResidentProgramsNVReqSize,
+ __glXLoadProgramNVReqSize,
+ __glXProgramParameters4fvNVReqSize,
+ __glXProgramParameters4dvNVReqSize,
+ __glXVertexAttribs1svNVReqSize,
+ __glXVertexAttribs2svNVReqSize,
+ __glXVertexAttribs3svNVReqSize,
+ __glXVertexAttribs4svNVReqSize,
+ __glXVertexAttribs1fvNVReqSize,
+ __glXVertexAttribs2fvNVReqSize,
+ __glXVertexAttribs3fvNVReqSize,
+ __glXVertexAttribs4fvNVReqSize,
+ __glXVertexAttribs1dvNVReqSize,
+ __glXVertexAttribs2dvNVReqSize,
+ __glXVertexAttribs3dvNVReqSize,
+ __glXVertexAttribs4dvNVReqSize,
+ __glXVertexAttribs4ubvNVReqSize,
+ __glXProgramStringARBReqSize,
+ __glXProgramNamedParameter4fvNVReqSize,
+ __glXProgramNamedParameter4dvNVReqSize,
+ __glXPointParameterivReqSize,
+ __glXDeleteFramebuffersReqSize,
+ __glXDeleteRenderbuffersReqSize,
+};
+
+const struct __glXDispatchInfo Render_dispatch_info = {
+ 13,
+ Render_dispatch_tree,
+ Render_function_table,
+ Render_size_table,
+ Render_size_func_table
+};
+
+/*****************************************************************/
+/* tree depth = 12 */
+static const int_fast16_t VendorPriv_dispatch_tree[152] = {
+ /* [0] -> opcode range [0, 131072], node depth 1 */
+ 2,
+ 5,
+ EMPTY_LEAF,
+ 119,
+ EMPTY_LEAF,
+
+ /* [5] -> opcode range [0, 32768], node depth 2 */
+ 1,
+ 8,
+ EMPTY_LEAF,
+
+ /* [8] -> opcode range [0, 16384], node depth 3 */
+ 1,
+ 11,
+ EMPTY_LEAF,
+
+ /* [11] -> opcode range [0, 8192], node depth 4 */
+ 2,
+ 16,
+ EMPTY_LEAF,
+ 78,
+ EMPTY_LEAF,
+
+ /* [16] -> opcode range [0, 2048], node depth 5 */
+ 2,
+ 21,
+ EMPTY_LEAF,
+ 36,
+ EMPTY_LEAF,
+
+ /* [21] -> opcode range [0, 512], node depth 6 */
+ 1,
+ 24,
+ EMPTY_LEAF,
+
+ /* [24] -> opcode range [0, 256], node depth 7 */
+ 1,
+ 27,
+ EMPTY_LEAF,
+
+ /* [27] -> opcode range [0, 128], node depth 8 */
+ 1,
+ 30,
+ EMPTY_LEAF,
+
+ /* [30] -> opcode range [0, 64], node depth 9 */
+ 1,
+ 33,
+ EMPTY_LEAF,
+
+ /* [33] -> opcode range [0, 32], node depth 10 */
+ 1,
+ LEAF(0),
+ EMPTY_LEAF,
+
+ /* [36] -> opcode range [1024, 1536], node depth 6 */
+ 2,
+ 41,
+ EMPTY_LEAF,
+ 53,
+ 67,
+
+ /* [41] -> opcode range [1024, 1152], node depth 7 */
+ 1,
+ 44,
+ EMPTY_LEAF,
+
+ /* [44] -> opcode range [1024, 1088], node depth 8 */
+ 1,
+ 47,
+ EMPTY_LEAF,
+
+ /* [47] -> opcode range [1024, 1056], node depth 9 */
+ 1,
+ 50,
+ EMPTY_LEAF,
+
+ /* [50] -> opcode range [1024, 1040], node depth 10 */
+ 1,
+ LEAF(16),
+ EMPTY_LEAF,
+
+ /* [53] -> opcode range [1280, 1408], node depth 7 */
+ 1,
+ 56,
+ EMPTY_LEAF,
+
+ /* [56] -> opcode range [1280, 1344], node depth 8 */
+ 2,
+ 61,
+ LEAF(24),
+ EMPTY_LEAF,
+ 64,
+
+ /* [61] -> opcode range [1280, 1296], node depth 9 */
+ 1,
+ EMPTY_LEAF,
+ LEAF(40),
+
+ /* [64] -> opcode range [1328, 1344], node depth 9 */
+ 1,
+ LEAF(48),
+ EMPTY_LEAF,
+
+ /* [67] -> opcode range [1408, 1536], node depth 7 */
+ 1,
+ 70,
+ EMPTY_LEAF,
+
+ /* [70] -> opcode range [1408, 1472], node depth 8 */
+ 1,
+ 73,
+ EMPTY_LEAF,
+
+ /* [73] -> opcode range [1408, 1440], node depth 9 */
+ 2,
+ EMPTY_LEAF,
+ LEAF(56),
+ LEAF(64),
+ EMPTY_LEAF,
+
+ /* [78] -> opcode range [4096, 6144], node depth 5 */
+ 2,
+ 83,
+ EMPTY_LEAF,
+ 101,
+ EMPTY_LEAF,
+
+ /* [83] -> opcode range [4096, 4608], node depth 6 */
+ 1,
+ 86,
+ EMPTY_LEAF,
+
+ /* [86] -> opcode range [4096, 4352], node depth 7 */
+ 1,
+ 89,
+ EMPTY_LEAF,
+
+ /* [89] -> opcode range [4096, 4224], node depth 8 */
+ 1,
+ 92,
+ EMPTY_LEAF,
+
+ /* [92] -> opcode range [4096, 4160], node depth 9 */
+ 1,
+ 95,
+ EMPTY_LEAF,
+
+ /* [95] -> opcode range [4096, 4128], node depth 10 */
+ 1,
+ 98,
+ EMPTY_LEAF,
+
+ /* [98] -> opcode range [4096, 4112], node depth 11 */
+ 1,
+ LEAF(72),
+ EMPTY_LEAF,
+
+ /* [101] -> opcode range [5120, 5632], node depth 6 */
+ 1,
+ 104,
+ EMPTY_LEAF,
+
+ /* [104] -> opcode range [5120, 5376], node depth 7 */
+ 1,
+ 107,
+ EMPTY_LEAF,
+
+ /* [107] -> opcode range [5120, 5248], node depth 8 */
+ 1,
+ 110,
+ EMPTY_LEAF,
+
+ /* [110] -> opcode range [5120, 5184], node depth 9 */
+ 1,
+ EMPTY_LEAF,
+ 113,
+
+ /* [113] -> opcode range [5152, 5184], node depth 10 */
+ 1,
+ 116,
+ EMPTY_LEAF,
+
+ /* [116] -> opcode range [5152, 5168], node depth 11 */
+ 1,
+ LEAF(80),
+ EMPTY_LEAF,
+
+ /* [119] -> opcode range [65536, 98304], node depth 2 */
+ 1,
+ 122,
+ EMPTY_LEAF,
+
+ /* [122] -> opcode range [65536, 81920], node depth 3 */
+ 1,
+ 125,
+ EMPTY_LEAF,
+
+ /* [125] -> opcode range [65536, 73728], node depth 4 */
+ 1,
+ 128,
+ EMPTY_LEAF,
+
+ /* [128] -> opcode range [65536, 69632], node depth 5 */
+ 1,
+ 131,
+ EMPTY_LEAF,
+
+ /* [131] -> opcode range [65536, 67584], node depth 6 */
+ 1,
+ 134,
+ EMPTY_LEAF,
+
+ /* [134] -> opcode range [65536, 66560], node depth 7 */
+ 1,
+ 137,
+ EMPTY_LEAF,
+
+ /* [137] -> opcode range [65536, 66048], node depth 8 */
+ 1,
+ 140,
+ EMPTY_LEAF,
+
+ /* [140] -> opcode range [65536, 65792], node depth 9 */
+ 1,
+ 143,
+ EMPTY_LEAF,
+
+ /* [143] -> opcode range [65536, 65664], node depth 10 */
+ 1,
+ 146,
+ EMPTY_LEAF,
+
+ /* [146] -> opcode range [65536, 65600], node depth 11 */
+ 1,
+ 149,
+ EMPTY_LEAF,
+
+ /* [149] -> opcode range [65536, 65568], node depth 12 */
+ 1,
+ LEAF(88),
+ EMPTY_LEAF,
+
+};
+
+static const void *VendorPriv_function_table[104][2] = {
+ /* [ 0] = 0 */ {NULL, NULL},
+ /* [ 1] = 1 */ {__glXDisp_GetConvolutionFilterEXT, __glXDispSwap_GetConvolutionFilterEXT},
+ /* [ 2] = 2 */ {__glXDisp_GetConvolutionParameterfvEXT, __glXDispSwap_GetConvolutionParameterfvEXT},
+ /* [ 3] = 3 */ {__glXDisp_GetConvolutionParameterivEXT, __glXDispSwap_GetConvolutionParameterivEXT},
+ /* [ 4] = 4 */ {__glXDisp_GetSeparableFilterEXT, __glXDispSwap_GetSeparableFilterEXT},
+ /* [ 5] = 5 */ {__glXDisp_GetHistogramEXT, __glXDispSwap_GetHistogramEXT},
+ /* [ 6] = 6 */ {__glXDisp_GetHistogramParameterfvEXT, __glXDispSwap_GetHistogramParameterfvEXT},
+ /* [ 7] = 7 */ {__glXDisp_GetHistogramParameterivEXT, __glXDispSwap_GetHistogramParameterivEXT},
+ /* [ 8] = 8 */ {__glXDisp_GetMinmaxEXT, __glXDispSwap_GetMinmaxEXT},
+ /* [ 9] = 9 */ {__glXDisp_GetMinmaxParameterfvEXT, __glXDispSwap_GetMinmaxParameterfvEXT},
+ /* [ 10] = 10 */ {__glXDisp_GetMinmaxParameterivEXT, __glXDispSwap_GetMinmaxParameterivEXT},
+ /* [ 11] = 11 */ {__glXDisp_AreTexturesResidentEXT, __glXDispSwap_AreTexturesResidentEXT},
+ /* [ 12] = 12 */ {__glXDisp_DeleteTexturesEXT, __glXDispSwap_DeleteTexturesEXT},
+ /* [ 13] = 13 */ {__glXDisp_GenTexturesEXT, __glXDispSwap_GenTexturesEXT},
+ /* [ 14] = 14 */ {__glXDisp_IsTextureEXT, __glXDispSwap_IsTextureEXT},
+ /* [ 15] = 15 */ {NULL, NULL},
+ /* [ 16] = 1024 */ {__glXDisp_QueryContextInfoEXT, __glXDispSwap_QueryContextInfoEXT},
+ /* [ 17] = 1025 */ {NULL, NULL},
+ /* [ 18] = 1026 */ {NULL, NULL},
+ /* [ 19] = 1027 */ {NULL, NULL},
+ /* [ 20] = 1028 */ {NULL, NULL},
+ /* [ 21] = 1029 */ {NULL, NULL},
+ /* [ 22] = 1030 */ {NULL, NULL},
+ /* [ 23] = 1031 */ {NULL, NULL},
+ /* [ 24] = 1296 */ {__glXDisp_GetProgramEnvParameterfvARB, __glXDispSwap_GetProgramEnvParameterfvARB},
+ /* [ 25] = 1297 */ {__glXDisp_GetProgramParameterdvNV, __glXDispSwap_GetProgramParameterdvNV},
+ /* [ 26] = 1298 */ {__glXDisp_GetProgramivNV, __glXDispSwap_GetProgramivNV},
+ /* [ 27] = 1299 */ {__glXDisp_GetProgramStringNV, __glXDispSwap_GetProgramStringNV},
+ /* [ 28] = 1300 */ {__glXDisp_GetTrackMatrixivNV, __glXDispSwap_GetTrackMatrixivNV},
+ /* [ 29] = 1301 */ {__glXDisp_GetVertexAttribdv, __glXDispSwap_GetVertexAttribdv},
+ /* [ 30] = 1302 */ {__glXDisp_GetVertexAttribfvNV, __glXDispSwap_GetVertexAttribfvNV},
+ /* [ 31] = 1303 */ {__glXDisp_GetVertexAttribivNV, __glXDispSwap_GetVertexAttribivNV},
+ /* [ 32] = 1304 */ {__glXDisp_IsProgramARB, __glXDispSwap_IsProgramARB},
+ /* [ 33] = 1305 */ {__glXDisp_GetProgramLocalParameterfvARB, __glXDispSwap_GetProgramLocalParameterfvARB},
+ /* [ 34] = 1306 */ {__glXDisp_GetProgramLocalParameterdvARB, __glXDispSwap_GetProgramLocalParameterdvARB},
+ /* [ 35] = 1307 */ {__glXDisp_GetProgramivARB, __glXDispSwap_GetProgramivARB},
+ /* [ 36] = 1308 */ {__glXDisp_GetProgramStringARB, __glXDispSwap_GetProgramStringARB},
+ /* [ 37] = 1309 */ {NULL, NULL},
+ /* [ 38] = 1310 */ {__glXDisp_GetProgramNamedParameterfvNV, __glXDispSwap_GetProgramNamedParameterfvNV},
+ /* [ 39] = 1311 */ {__glXDisp_GetProgramNamedParameterdvNV, __glXDispSwap_GetProgramNamedParameterdvNV},
+ /* [ 40] = 1288 */ {NULL, NULL},
+ /* [ 41] = 1289 */ {NULL, NULL},
+ /* [ 42] = 1290 */ {NULL, NULL},
+ /* [ 43] = 1291 */ {NULL, NULL},
+ /* [ 44] = 1292 */ {NULL, NULL},
+ /* [ 45] = 1293 */ {__glXDisp_AreProgramsResidentNV, __glXDispSwap_AreProgramsResidentNV},
+ /* [ 46] = 1294 */ {__glXDisp_DeleteProgramsARB, __glXDispSwap_DeleteProgramsARB},
+ /* [ 47] = 1295 */ {__glXDisp_GenProgramsARB, __glXDispSwap_GenProgramsARB},
+ /* [ 48] = 1328 */ {NULL, NULL},
+ /* [ 49] = 1329 */ {NULL, NULL},
+ /* [ 50] = 1330 */ {__glXDisp_BindTexImageEXT, __glXDispSwap_BindTexImageEXT},
+ /* [ 51] = 1331 */ {__glXDisp_ReleaseTexImageEXT, __glXDispSwap_ReleaseTexImageEXT},
+ /* [ 52] = 1332 */ {NULL, NULL},
+ /* [ 53] = 1333 */ {NULL, NULL},
+ /* [ 54] = 1334 */ {NULL, NULL},
+ /* [ 55] = 1335 */ {NULL, NULL},
+ /* [ 56] = 1416 */ {NULL, NULL},
+ /* [ 57] = 1417 */ {NULL, NULL},
+ /* [ 58] = 1418 */ {NULL, NULL},
+ /* [ 59] = 1419 */ {NULL, NULL},
+ /* [ 60] = 1420 */ {NULL, NULL},
+ /* [ 61] = 1421 */ {NULL, NULL},
+ /* [ 62] = 1422 */ {__glXDisp_IsRenderbuffer, __glXDispSwap_IsRenderbuffer},
+ /* [ 63] = 1423 */ {__glXDisp_GenRenderbuffers, __glXDispSwap_GenRenderbuffers},
+ /* [ 64] = 1424 */ {__glXDisp_GetRenderbufferParameteriv, __glXDispSwap_GetRenderbufferParameteriv},
+ /* [ 65] = 1425 */ {__glXDisp_IsFramebuffer, __glXDispSwap_IsFramebuffer},
+ /* [ 66] = 1426 */ {__glXDisp_GenFramebuffers, __glXDispSwap_GenFramebuffers},
+ /* [ 67] = 1427 */ {__glXDisp_CheckFramebufferStatus, __glXDispSwap_CheckFramebufferStatus},
+ /* [ 68] = 1428 */ {__glXDisp_GetFramebufferAttachmentParameteriv, __glXDispSwap_GetFramebufferAttachmentParameteriv},
+ /* [ 69] = 1429 */ {NULL, NULL},
+ /* [ 70] = 1430 */ {NULL, NULL},
+ /* [ 71] = 1431 */ {NULL, NULL},
+ /* [ 72] = 4096 */ {NULL, NULL},
+ /* [ 73] = 4097 */ {NULL, NULL},
+ /* [ 74] = 4098 */ {__glXDisp_GetColorTableSGI, __glXDispSwap_GetColorTableSGI},
+ /* [ 75] = 4099 */ {__glXDisp_GetColorTableParameterfvSGI, __glXDispSwap_GetColorTableParameterfvSGI},
+ /* [ 76] = 4100 */ {__glXDisp_GetColorTableParameterivSGI, __glXDispSwap_GetColorTableParameterivSGI},
+ /* [ 77] = 4101 */ {NULL, NULL},
+ /* [ 78] = 4102 */ {NULL, NULL},
+ /* [ 79] = 4103 */ {NULL, NULL},
+ /* [ 80] = 5152 */ {NULL, NULL},
+ /* [ 81] = 5153 */ {NULL, NULL},
+ /* [ 82] = 5154 */ {__glXDisp_CopySubBufferMESA, __glXDispSwap_CopySubBufferMESA},
+ /* [ 83] = 5155 */ {NULL, NULL},
+ /* [ 84] = 5156 */ {NULL, NULL},
+ /* [ 85] = 5157 */ {NULL, NULL},
+ /* [ 86] = 5158 */ {NULL, NULL},
+ /* [ 87] = 5159 */ {NULL, NULL},
+ /* [ 88] = 65536 */ {__glXDisp_SwapIntervalSGI, __glXDispSwap_SwapIntervalSGI},
+ /* [ 89] = 65537 */ {__glXDisp_MakeCurrentReadSGI, __glXDispSwap_MakeCurrentReadSGI},
+ /* [ 90] = 65538 */ {NULL, NULL},
+ /* [ 91] = 65539 */ {NULL, NULL},
+ /* [ 92] = 65540 */ {__glXDisp_GetFBConfigsSGIX, __glXDispSwap_GetFBConfigsSGIX},
+ /* [ 93] = 65541 */ {__glXDisp_CreateContextWithConfigSGIX, __glXDispSwap_CreateContextWithConfigSGIX},
+ /* [ 94] = 65542 */ {__glXDisp_CreateGLXPixmapWithConfigSGIX, __glXDispSwap_CreateGLXPixmapWithConfigSGIX},
+ /* [ 95] = 65543 */ {__glXDisp_CreateGLXPbufferSGIX, __glXDispSwap_CreateGLXPbufferSGIX},
+ /* [ 96] = 65544 */ {__glXDisp_DestroyGLXPbufferSGIX, __glXDispSwap_DestroyGLXPbufferSGIX},
+ /* [ 97] = 65545 */ {__glXDisp_ChangeDrawableAttributesSGIX, __glXDispSwap_ChangeDrawableAttributesSGIX},
+ /* [ 98] = 65546 */ {__glXDisp_GetDrawableAttributesSGIX, __glXDispSwap_GetDrawableAttributesSGIX},
+ /* [ 99] = 65547 */ {NULL, NULL},
+ /* [ 100] = 65548 */ {NULL, NULL},
+ /* [ 101] = 65549 */ {NULL, NULL},
+ /* [ 102] = 65550 */ {NULL, NULL},
+ /* [ 103] = 65551 */ {NULL, NULL},
+};
+
+const struct __glXDispatchInfo VendorPriv_dispatch_info = {
+ 17,
+ VendorPriv_dispatch_tree,
+ VendorPriv_function_table,
+ NULL,
+ NULL
+};
+
diff --git a/xorg-server/glx/indirect_texture_compression.c b/xorg-server/glx/indirect_texture_compression.c
index 94de47dd6..a1a946e5c 100644
--- a/xorg-server/glx/indirect_texture_compression.c
+++ b/xorg-server/glx/indirect_texture_compression.c
@@ -26,6 +26,7 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
+#include "glheader.h"
#include "glxserver.h"
#include "glxbyteorder.h"
@@ -34,6 +35,11 @@
#include "unpack.h"
#include "indirect_size_get.h"
#include "indirect_dispatch.h"
+#include "GL/gl.h"
+#include "glapitable.h"
+#include "glapi.h"
+#include "glthread.h"
+#include "dispatch.h"
int
__glXDisp_GetCompressedTexImage(struct __GLXclientStateRec *cl, GLbyte * pc)
@@ -50,13 +56,16 @@ __glXDisp_GetCompressedTexImage(struct __GLXclientStateRec *cl, GLbyte * pc)
GLint compsize = 0;
char *answer = NULL, answerBuffer[200];
- glGetTexLevelParameteriv(target, level, GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
- &compsize);
+ CALL_GetTexLevelParameteriv(GET_DISPATCH(),
+ (target, level,
+ GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+ &compsize));
if (compsize != 0) {
__GLX_GET_ANSWER_BUFFER(answer, cl, compsize, 1);
__glXClearErrorOccured();
- glGetCompressedTexImageARB(target, level, answer);
+ CALL_GetCompressedTexImage(GET_DISPATCH(),
+ (target, level, answer));
}
if (__glXErrorOccured()) {
@@ -77,7 +86,8 @@ __glXDisp_GetCompressedTexImage(struct __GLXclientStateRec *cl, GLbyte * pc)
}
int
-__glXDispSwap_GetCompressedTexImage(struct __GLXclientStateRec *cl, GLbyte * pc)
+__glXDispSwap_GetCompressedTexImage(struct __GLXclientStateRec *cl,
+ GLbyte * pc)
{
xGLXSingleReq *const req = (xGLXSingleReq *) pc;
int error;
@@ -92,13 +102,16 @@ __glXDispSwap_GetCompressedTexImage(struct __GLXclientStateRec *cl, GLbyte * pc)
GLint compsize = 0;
char *answer = NULL, answerBuffer[200];
- glGetTexLevelParameteriv(target, level, GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
- &compsize);
+ CALL_GetTexLevelParameteriv(GET_DISPATCH(),
+ (target, level,
+ GL_TEXTURE_COMPRESSED_IMAGE_SIZE,
+ &compsize));
if (compsize != 0) {
__GLX_GET_ANSWER_BUFFER(answer, cl, compsize, 1);
__glXClearErrorOccured();
- glGetCompressedTexImageARB(target, level, answer);
+ CALL_GetCompressedTexImage(GET_DISPATCH(),
+ (target, level, answer));
}
if (__glXErrorOccured()) {
diff --git a/xorg-server/glx/indirect_util.c b/xorg-server/glx/indirect_util.c
index f9d1243b1..304bbff92 100644
--- a/xorg-server/glx/indirect_util.c
+++ b/xorg-server/glx/indirect_util.c
@@ -26,6 +26,7 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
+#include "glheader.h"
#include <string.h>
diff --git a/xorg-server/glx/makefile b/xorg-server/glx/makefile
new file mode 100755
index 000000000..345734ecf
--- /dev/null
+++ b/xorg-server/glx/makefile
@@ -0,0 +1,45 @@
+LIBRARY=libglx
+
+DEFINES += GLAPIENTRY=__stdcall _GLAPI_NO_EXPORTS
+
+
+glapi_sources = \
+ indirect_dispatch.c \
+ indirect_dispatch_swap.c \
+ indirect_reqsize.c \
+ indirect_size_get.c \
+ indirect_table.c \
+ glapi.c \
+ remap.c
+
+
+CSRCS = \
+ $(indirect_sources) \
+ $(glapi_sources) \
+ clientinfo.c \
+ createcontext.c \
+ extension_string.c \
+ indirect_util.c \
+ indirect_program.c \
+ indirect_texture_compression.c \
+ glxcmds.c \
+ glxcmdsswap.c \
+ glxext.c \
+ glxdriswrast.c \
+ glxdricommon.c \
+ glxscreens.c \
+ render2.c \
+ render2swap.c \
+ renderpix.c \
+ renderpixswap.c \
+ rensize.c \
+ single2.c \
+ single2swap.c \
+ singlepix.c \
+ singlepixswap.c \
+ singlesize.c \
+ swap_interval.c \
+ xfont.c
+
+INCLUDES := $(MHMAKECONF)\mesalib\include $(INCLUDES)
+
diff --git a/xorg-server/glx/remap.c b/xorg-server/glx/remap.c
new file mode 100644
index 000000000..75c9320b8
--- /dev/null
+++ b/xorg-server/glx/remap.c
@@ -0,0 +1,231 @@
+/*
+ * Mesa 3-D graphics library
+ * Version: 7.7
+ *
+ * Copyright (C) 2009 Chia-I Wu <olv@0xlab.org>
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 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.
+ */
+
+
+/**
+ * \file remap.c
+ * Remap table management.
+ *
+ * Entries in the dispatch table are either static or dynamic. The
+ * dispatch table is shared by mesa core and glapi. When they are
+ * built separately, it is possible that a static entry in mesa core
+ * is dynamic, or assigned a different static offset, in glapi. The
+ * remap table is in charge of mapping a static entry in mesa core to
+ * a dynamic entry, or the corresponding static entry, in glapi.
+ */
+
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
+#include "glheader.h"
+
+#include "glapi.h"
+#include "glapitable.h"
+
+#include "remap.h"
+
+#define MAX_ENTRY_POINTS 16
+
+#define need_MESA_remap_table
+#include "remap_helper.h"
+
+
+/* this is global for quick access */
+SERVEXTERN int driDispatchRemapTable[driDispatchRemapTable_size];
+
+#if 0
+/**
+ * Return the spec string associated with the given function index.
+ * The index is available from including remap_helper.h.
+ *
+ * \param func_index an opaque function index.
+ *
+ * \return the spec string associated with the function index, or NULL.
+ */
+const char *
+_mesa_get_function_spec(GLint func_index)
+{
+ if (func_index < Elements(_mesa_function_pool))
+ return _mesa_function_pool + func_index;
+ else
+ return NULL;
+}
+#endif
+
+/**
+ * Map a function by its spec. The function will be added to glapi,
+ * and the dispatch offset will be returned.
+ *
+ * \param spec a '\0'-separated string array specifying a function.
+ * It begins with the parameter signature of the function,
+ * followed by the names of the entry points. An empty entry
+ * point name terminates the array.
+ *
+ * \return the offset of the (re-)mapped function in the dispatch
+ * table, or -1.
+ */
+GLint
+_mesa_map_function_spec(const char *spec)
+{
+ const char *signature;
+ const char *names[MAX_ENTRY_POINTS + 1];
+ GLint num_names = 0;
+
+ if (!spec)
+ return -1;
+
+ signature = spec;
+ spec += strlen(spec) + 1;
+
+ /* spec is terminated by an empty string */
+ while (*spec) {
+ names[num_names] = spec;
+ num_names++;
+ if (num_names >= MAX_ENTRY_POINTS)
+ break;
+ spec += strlen(spec) + 1;
+ }
+ if (!num_names)
+ return -1;
+
+ names[num_names] = NULL;
+
+ /* add the entry points to the dispatch table */
+ return _glapi_add_dispatch(names, signature);
+}
+
+#if 0
+/**
+ * Map an array of functions. This is a convenient function for
+ * use with arrays available from including remap_helper.h.
+ *
+ * Note that the dispatch offsets of the functions are not returned.
+ * If they are needed, _mesa_map_function_spec() should be used.
+ *
+ * \param func_array an array of function remaps.
+ */
+void
+_mesa_map_function_array(const struct gl_function_remap *func_array)
+{
+ GLint i;
+
+ if (!func_array)
+ return;
+
+ for (i = 0; func_array[i].func_index != -1; i++) {
+ const char *spec;
+ GLint offset;
+
+ spec = _mesa_get_function_spec(func_array[i].func_index);
+ if (!spec) {
+ _mesa_problem(NULL, "invalid function index %d",
+ func_array[i].func_index);
+ continue;
+ }
+
+ offset = _mesa_map_function_spec(spec);
+ /* error checks */
+ if (offset < 0) {
+ const char *name = spec + strlen(spec) + 1;
+ _mesa_warning(NULL, "failed to remap %s", name);
+ }
+ else if (func_array[i].dispatch_offset >= 0 &&
+ offset != func_array[i].dispatch_offset) {
+ const char *name = spec + strlen(spec) + 1;
+ _mesa_problem(NULL, "%s should be mapped to %d, not %d",
+ name, func_array[i].dispatch_offset, offset);
+ }
+ }
+}
+
+
+/**
+ * Map the functions which are already static.
+ *
+ * When a extension function are incorporated into the ABI, the
+ * extension suffix is usually stripped. Mapping such functions
+ * makes sure the alternative names are available.
+ *
+ * Note that functions mapped by _mesa_init_remap_table() are
+ * excluded.
+ */
+void
+_mesa_map_static_functions(void)
+{
+ /* Remap static functions which have alternative names and are in the ABI.
+ * This is to be on the safe side. glapi should have defined those names.
+ */
+ _mesa_map_function_array(MESA_alt_functions);
+}
+#else
+#define ASSERT(a)
+#define _mesa_warning(a, ...) ErrorF(__VA_ARGS__)
+#endif
+
+/**
+ * Initialize the remap table. This is called in one_time_init().
+ * The remap table needs to be initialized before calling the
+ * CALL/GET/SET macros defined in main/dispatch.h.
+ */
+static void
+_mesa_do_init_remap_table(const char *pool,
+ int size,
+ const struct gl_function_pool_remap *remap)
+{
+ static GLboolean initialized = GL_FALSE;
+ GLint i;
+
+ if (initialized)
+ return;
+ initialized = GL_TRUE;
+
+ /* initialize the remap table */
+ for (i = 0; i < size; i++) {
+ GLint offset;
+ const char *spec;
+
+ /* sanity check */
+ ASSERT(i == remap[i].remap_index);
+ spec = _mesa_function_pool + remap[i].pool_index;
+
+ offset = _mesa_map_function_spec(spec);
+ /* store the dispatch offset in the remap table */
+ driDispatchRemapTable[i] = offset;
+ if (offset < 0) {
+ const char *name = spec + strlen(spec) + 1;
+ _mesa_warning(NULL, "failed to remap %s", name);
+ }
+ }
+}
+
+
+void
+_mesa_init_remap_table(void)
+{
+ _mesa_do_init_remap_table(_mesa_function_pool,
+ driDispatchRemapTable_size,
+ MESA_remap_table_functions);
+}
diff --git a/xorg-server/glx/remap.h b/xorg-server/glx/remap.h
new file mode 100644
index 000000000..fb9d24ca1
--- /dev/null
+++ b/xorg-server/glx/remap.h
@@ -0,0 +1,62 @@
+/*
+ * Mesa 3-D graphics library
+ * Version: 7.7
+ *
+ * Copyright (C) 2009 Chia-I Wu <olv@0xlab.org>
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 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.
+ */
+
+
+#ifndef REMAP_H
+#define REMAP_H
+
+
+
+struct gl_function_pool_remap {
+ int pool_index;
+ int remap_index;
+};
+
+struct gl_function_remap {
+ int func_index;
+ int dispatch_offset; /* for sanity check */
+};
+
+
+SERVEXTERN int
+driDispatchRemapTable[];
+
+extern const char *
+_mesa_get_function_spec(int func_index);
+
+extern int
+_mesa_map_function_spec(const char *spec);
+
+extern void
+_mesa_map_function_array(const struct gl_function_remap *func_array);
+
+extern void
+_mesa_map_static_functions(void);
+
+extern void
+_mesa_init_remap_table(void);
+
+
+#endif /* REMAP_H */
diff --git a/xorg-server/glx/remap_helper.h b/xorg-server/glx/remap_helper.h
new file mode 100644
index 000000000..7a23f84d8
--- /dev/null
+++ b/xorg-server/glx/remap_helper.h
@@ -0,0 +1,6490 @@
+/* DO NOT EDIT - This file generated automatically by remap_helper.py (from Mesa) script */
+
+/*
+ * Copyright (C) 2009 Chia-I Wu <olv@0xlab.org>
+ * 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
+ * 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
+ * Chia-I Wu,
+ * AND/OR THEIR 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.
+ */
+
+#include "dispatch.h"
+#include "remap.h"
+
+/* this is internal to remap.c */
+#ifndef need_MESA_remap_table
+#error Only remap.c should include this file!
+#endif /* need_MESA_remap_table */
+
+
+static const char _mesa_function_pool[] =
+ /* _mesa_function_pool[0]: MapGrid1d (offset 224) */
+ "idd\0"
+ "glMapGrid1d\0"
+ "\0"
+ /* _mesa_function_pool[17]: MapGrid1f (offset 225) */
+ "iff\0"
+ "glMapGrid1f\0"
+ "\0"
+ /* _mesa_function_pool[34]: RasterPos4i (offset 82) */
+ "iiii\0"
+ "glRasterPos4i\0"
+ "\0"
+ /* _mesa_function_pool[54]: VertexAttribI4uiEXT (will be remapped) */
+ "iiiii\0"
+ "glVertexAttribI4uiEXT\0"
+ "glVertexAttribI4ui\0"
+ "\0"
+ /* _mesa_function_pool[102]: RasterPos4d (offset 78) */
+ "dddd\0"
+ "glRasterPos4d\0"
+ "\0"
+ /* _mesa_function_pool[122]: NewList (dynamic) */
+ "ii\0"
+ "glNewList\0"
+ "\0"
+ /* _mesa_function_pool[136]: RasterPos4f (offset 80) */
+ "ffff\0"
+ "glRasterPos4f\0"
+ "\0"
+ /* _mesa_function_pool[156]: LoadIdentity (offset 290) */
+ "\0"
+ "glLoadIdentity\0"
+ "\0"
+ /* _mesa_function_pool[173]: ConvolutionFilter1D (offset 348) */
+ "iiiiip\0"
+ "glConvolutionFilter1D\0"
+ "glConvolutionFilter1DEXT\0"
+ "\0"
+ /* _mesa_function_pool[228]: GetQueryIndexediv (will be remapped) */
+ "iiip\0"
+ "glGetQueryIndexediv\0"
+ "\0"
+ /* _mesa_function_pool[254]: RasterPos3dv (offset 71) */
+ "p\0"
+ "glRasterPos3dv\0"
+ "\0"
+ /* _mesa_function_pool[272]: GetProgramiv (will be remapped) */
+ "iip\0"
+ "glGetProgramiv\0"
+ "\0"
+ /* _mesa_function_pool[292]: GetQueryObjectui64v (will be remapped) */
+ "iip\0"
+ "glGetQueryObjectui64v\0"
+ "glGetQueryObjectui64vEXT\0"
+ "\0"
+ /* _mesa_function_pool[344]: TexBuffer (will be remapped) */
+ "iii\0"
+ "glTexBufferARB\0"
+ "glTexBuffer\0"
+ "\0"
+ /* _mesa_function_pool[376]: TexCoord1iv (offset 99) */
+ "p\0"
+ "glTexCoord1iv\0"
+ "\0"
+ /* _mesa_function_pool[393]: TexCoord4sv (offset 125) */
+ "p\0"
+ "glTexCoord4sv\0"
+ "\0"
+ /* _mesa_function_pool[410]: RasterPos4s (offset 84) */
+ "iiii\0"
+ "glRasterPos4s\0"
+ "\0"
+ /* _mesa_function_pool[430]: PixelTexGenParameterfvSGIS (dynamic) */
+ "ip\0"
+ "glPixelTexGenParameterfvSGIS\0"
+ "\0"
+ /* _mesa_function_pool[463]: TrackMatrixNV (will be remapped) */
+ "iiii\0"
+ "glTrackMatrixNV\0"
+ "\0"
+ /* _mesa_function_pool[485]: VertexAttrib3dv (will be remapped) */
+ "ip\0"
+ "glVertexAttrib3dv\0"
+ "glVertexAttrib3dvARB\0"
+ "\0"
+ /* _mesa_function_pool[528]: TexCoord1f (offset 96) */
+ "f\0"
+ "glTexCoord1f\0"
+ "\0"
+ /* _mesa_function_pool[544]: Tangent3bvEXT (dynamic) */
+ "p\0"
+ "glTangent3bvEXT\0"
+ "\0"
+ /* _mesa_function_pool[563]: TexCoord1d (offset 94) */
+ "d\0"
+ "glTexCoord1d\0"
+ "\0"
+ /* _mesa_function_pool[579]: VertexAttrib4ubvNV (will be remapped) */
+ "ip\0"
+ "glVertexAttrib4ubvNV\0"
+ "\0"
+ /* _mesa_function_pool[604]: TexCoord1i (offset 98) */
+ "i\0"
+ "glTexCoord1i\0"
+ "\0"
+ /* _mesa_function_pool[620]: GetProgramNamedParameterdvNV (will be remapped) */
+ "iipp\0"
+ "glGetProgramNamedParameterdvNV\0"
+ "\0"
+ /* _mesa_function_pool[657]: Histogram (offset 367) */
+ "iiii\0"
+ "glHistogram\0"
+ "glHistogramEXT\0"
+ "\0"
+ /* _mesa_function_pool[690]: TexCoord1s (offset 100) */
+ "i\0"
+ "glTexCoord1s\0"
+ "\0"
+ /* _mesa_function_pool[706]: GetMapfv (offset 267) */
+ "iip\0"
+ "glGetMapfv\0"
+ "\0"
+ /* _mesa_function_pool[722]: EvalCoord1f (offset 230) */
+ "f\0"
+ "glEvalCoord1f\0"
+ "\0"
+ /* _mesa_function_pool[739]: Uniform2fv (will be remapped) */
+ "iip\0"
+ "glUniform2fv\0"
+ "glUniform2fvARB\0"
+ "\0"
+ /* _mesa_function_pool[773]: TexCoordP1ui (will be remapped) */
+ "ii\0"
+ "glTexCoordP1ui\0"
+ "\0"
+ /* _mesa_function_pool[792]: TexImage4DSGIS (dynamic) */
+ "iiiiiiiiiip\0"
+ "glTexImage4DSGIS\0"
+ "\0"
+ /* _mesa_function_pool[822]: PolygonStipple (offset 175) */
+ "p\0"
+ "glPolygonStipple\0"
+ "\0"
+ /* _mesa_function_pool[842]: WeightPointerARB (dynamic) */
+ "iiip\0"
+ "glWeightPointerARB\0"
+ "glWeightPointerOES\0"
+ "\0"
+ /* _mesa_function_pool[886]: ListParameterfSGIX (dynamic) */
+ "iif\0"
+ "glListParameterfSGIX\0"
+ "\0"
+ /* _mesa_function_pool[912]: MultiTexCoord1dv (offset 377) */
+ "ip\0"
+ "glMultiTexCoord1dv\0"
+ "glMultiTexCoord1dvARB\0"
+ "\0"
+ /* _mesa_function_pool[957]: TexStorage1D (will be remapped) */
+ "iiii\0"
+ "glTexStorage1D\0"
+ "\0"
+ /* _mesa_function_pool[978]: TexCoord4fColor4fNormal3fVertex4fvSUN (dynamic) */
+ "pppp\0"
+ "glTexCoord4fColor4fNormal3fVertex4fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[1024]: GetnPolygonStippleARB (will be remapped) */
+ "ip\0"
+ "glGetnPolygonStippleARB\0"
+ "\0"
+ /* _mesa_function_pool[1052]: GetPixelMapfv (offset 271) */
+ "ip\0"
+ "glGetPixelMapfv\0"
+ "\0"
+ /* _mesa_function_pool[1072]: Color3uiv (offset 22) */
+ "p\0"
+ "glColor3uiv\0"
+ "\0"
+ /* _mesa_function_pool[1087]: IsEnabled (offset 286) */
+ "i\0"
+ "glIsEnabled\0"
+ "\0"
+ /* _mesa_function_pool[1102]: DebugMessageCallbackARB (will be remapped) */
+ "pp\0"
+ "glDebugMessageCallbackARB\0"
+ "\0"
+ /* _mesa_function_pool[1132]: VertexAttrib4svNV (will be remapped) */
+ "ip\0"
+ "glVertexAttrib4svNV\0"
+ "\0"
+ /* _mesa_function_pool[1156]: EvalCoord2fv (offset 235) */
+ "p\0"
+ "glEvalCoord2fv\0"
+ "\0"
+ /* _mesa_function_pool[1174]: TexCoord2fColor4ubVertex3fvSUN (dynamic) */
+ "ppp\0"
+ "glTexCoord2fColor4ubVertex3fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[1212]: TexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */
+ "ffffffffffff\0"
+ "glTexCoord2fColor4fNormal3fVertex3fSUN\0"
+ "\0"
+ /* _mesa_function_pool[1265]: AttachShader (will be remapped) */
+ "ii\0"
+ "glAttachShader\0"
+ "\0"
+ /* _mesa_function_pool[1284]: TextureStorage3DEXT (will be remapped) */
+ "iiiiiii\0"
+ "glTextureStorage3DEXT\0"
+ "\0"
+ /* _mesa_function_pool[1315]: FramebufferTexture1D (will be remapped) */
+ "iiiii\0"
+ "glFramebufferTexture1D\0"
+ "glFramebufferTexture1DEXT\0"
+ "\0"
+ /* _mesa_function_pool[1371]: VertexAttrib2fARB (will be remapped) */
+ "iff\0"
+ "glVertexAttrib2f\0"
+ "glVertexAttrib2fARB\0"
+ "\0"
+ /* _mesa_function_pool[1413]: Orthox (will be remapped) */
+ "iiiiii\0"
+ "glOrthoxOES\0"
+ "glOrthox\0"
+ "\0"
+ /* _mesa_function_pool[1442]: GetMapiv (offset 268) */
+ "iip\0"
+ "glGetMapiv\0"
+ "\0"
+ /* _mesa_function_pool[1458]: VertexAttrib3fARB (will be remapped) */
+ "ifff\0"
+ "glVertexAttrib3f\0"
+ "glVertexAttrib3fARB\0"
+ "\0"
+ /* _mesa_function_pool[1501]: WindowPos2fv (will be remapped) */
+ "p\0"
+ "glWindowPos2fv\0"
+ "glWindowPos2fvARB\0"
+ "glWindowPos2fvMESA\0"
+ "\0"
+ /* _mesa_function_pool[1556]: Indexubv (offset 316) */
+ "p\0"
+ "glIndexubv\0"
+ "\0"
+ /* _mesa_function_pool[1570]: GetShaderiv (will be remapped) */
+ "iip\0"
+ "glGetShaderiv\0"
+ "\0"
+ /* _mesa_function_pool[1589]: TexImage3D (offset 371) */
+ "iiiiiiiiip\0"
+ "glTexImage3D\0"
+ "glTexImage3DEXT\0"
+ "glTexImage3DOES\0"
+ "\0"
+ /* _mesa_function_pool[1646]: TexCoordP4ui (will be remapped) */
+ "ii\0"
+ "glTexCoordP4ui\0"
+ "\0"
+ /* _mesa_function_pool[1665]: ReplacementCodeuiVertex3fvSUN (dynamic) */
+ "pp\0"
+ "glReplacementCodeuiVertex3fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[1701]: VertexAttrib1sv (will be remapped) */
+ "ip\0"
+ "glVertexAttrib1sv\0"
+ "glVertexAttrib1svARB\0"
+ "\0"
+ /* _mesa_function_pool[1744]: BindFragDataLocation (will be remapped) */
+ "iip\0"
+ "glBindFragDataLocationEXT\0"
+ "glBindFragDataLocation\0"
+ "\0"
+ /* _mesa_function_pool[1798]: VertexAttribI4usv (will be remapped) */
+ "ip\0"
+ "glVertexAttribI4usvEXT\0"
+ "glVertexAttribI4usv\0"
+ "\0"
+ /* _mesa_function_pool[1845]: EdgeFlagPointer (offset 312) */
+ "ip\0"
+ "glEdgeFlagPointer\0"
+ "\0"
+ /* _mesa_function_pool[1867]: Color3ubv (offset 20) */
+ "p\0"
+ "glColor3ubv\0"
+ "\0"
+ /* _mesa_function_pool[1882]: Vertex3dv (offset 135) */
+ "p\0"
+ "glVertex3dv\0"
+ "\0"
+ /* _mesa_function_pool[1897]: ReplacementCodeuiTexCoord2fVertex3fvSUN (dynamic) */
+ "ppp\0"
+ "glReplacementCodeuiTexCoord2fVertex3fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[1944]: CreateShaderProgramEXT (will be remapped) */
+ "ip\0"
+ "glCreateShaderProgramEXT\0"
+ "\0"
+ /* _mesa_function_pool[1973]: GetnMapivARB (will be remapped) */
+ "iiip\0"
+ "glGetnMapivARB\0"
+ "\0"
+ /* _mesa_function_pool[1994]: Binormal3ivEXT (dynamic) */
+ "p\0"
+ "glBinormal3ivEXT\0"
+ "\0"
+ /* _mesa_function_pool[2014]: WindowPos2f (will be remapped) */
+ "ff\0"
+ "glWindowPos2f\0"
+ "glWindowPos2fARB\0"
+ "glWindowPos2fMESA\0"
+ "\0"
+ /* _mesa_function_pool[2067]: LightModeliv (offset 166) */
+ "ip\0"
+ "glLightModeliv\0"
+ "\0"
+ /* _mesa_function_pool[2086]: WindowPos2d (will be remapped) */
+ "dd\0"
+ "glWindowPos2d\0"
+ "glWindowPos2dARB\0"
+ "glWindowPos2dMESA\0"
+ "\0"
+ /* _mesa_function_pool[2139]: LineWidthx (will be remapped) */
+ "i\0"
+ "glLineWidthxOES\0"
+ "glLineWidthx\0"
+ "\0"
+ /* _mesa_function_pool[2171]: VertexAttribs1dvNV (will be remapped) */
+ "iip\0"
+ "glVertexAttribs1dvNV\0"
+ "\0"
+ /* _mesa_function_pool[2197]: GetVertexAttribfv (will be remapped) */
+ "iip\0"
+ "glGetVertexAttribfv\0"
+ "glGetVertexAttribfvARB\0"
+ "\0"
+ /* _mesa_function_pool[2245]: GetImageTransformParameterfvHP (dynamic) */
+ "iip\0"
+ "glGetImageTransformParameterfvHP\0"
+ "\0"
+ /* _mesa_function_pool[2283]: Normal3bv (offset 53) */
+ "p\0"
+ "glNormal3bv\0"
+ "\0"
+ /* _mesa_function_pool[2298]: PointSizePointerOES (will be remapped) */
+ "iip\0"
+ "glPointSizePointerOES\0"
+ "\0"
+ /* _mesa_function_pool[2325]: Color3fVertex3fSUN (dynamic) */
+ "ffffff\0"
+ "glColor3fVertex3fSUN\0"
+ "\0"
+ /* _mesa_function_pool[2354]: TexGeniv (offset 193) */
+ "iip\0"
+ "glTexGeniv\0"
+ "glTexGenivOES\0"
+ "\0"
+ /* _mesa_function_pool[2384]: TexCoordP1uiv (will be remapped) */
+ "ip\0"
+ "glTexCoordP1uiv\0"
+ "\0"
+ /* _mesa_function_pool[2404]: BeginQueryIndexed (will be remapped) */
+ "iii\0"
+ "glBeginQueryIndexed\0"
+ "\0"
+ /* _mesa_function_pool[2429]: WeightubvARB (dynamic) */
+ "ip\0"
+ "glWeightubvARB\0"
+ "\0"
+ /* _mesa_function_pool[2448]: WindowPos2s (will be remapped) */
+ "ii\0"
+ "glWindowPos2s\0"
+ "glWindowPos2sARB\0"
+ "glWindowPos2sMESA\0"
+ "\0"
+ /* _mesa_function_pool[2501]: Vertex3iv (offset 139) */
+ "p\0"
+ "glVertex3iv\0"
+ "\0"
+ /* _mesa_function_pool[2516]: RenderbufferStorage (will be remapped) */
+ "iiii\0"
+ "glRenderbufferStorage\0"
+ "glRenderbufferStorageEXT\0"
+ "glRenderbufferStorageOES\0"
+ "\0"
+ /* _mesa_function_pool[2594]: CopyConvolutionFilter1D (offset 354) */
+ "iiiii\0"
+ "glCopyConvolutionFilter1D\0"
+ "glCopyConvolutionFilter1DEXT\0"
+ "\0"
+ /* _mesa_function_pool[2656]: VertexAttribI1uiEXT (will be remapped) */
+ "ii\0"
+ "glVertexAttribI1uiEXT\0"
+ "glVertexAttribI1ui\0"
+ "\0"
+ /* _mesa_function_pool[2701]: ReplacementCodeuiNormal3fVertex3fSUN (dynamic) */
+ "iffffff\0"
+ "glReplacementCodeuiNormal3fVertex3fSUN\0"
+ "\0"
+ /* _mesa_function_pool[2749]: DeleteSync (will be remapped) */
+ "i\0"
+ "glDeleteSync\0"
+ "\0"
+ /* _mesa_function_pool[2765]: GenQueries (will be remapped) */
+ "ip\0"
+ "glGenQueries\0"
+ "glGenQueriesARB\0"
+ "\0"
+ /* _mesa_function_pool[2798]: BlendColor (offset 336) */
+ "ffff\0"
+ "glBlendColor\0"
+ "glBlendColorEXT\0"
+ "\0"
+ /* _mesa_function_pool[2833]: GetVertexAttribIuiv (will be remapped) */
+ "iip\0"
+ "glGetVertexAttribIuivEXT\0"
+ "glGetVertexAttribIuiv\0"
+ "\0"
+ /* _mesa_function_pool[2885]: TexCoord2fVertex3fvSUN (dynamic) */
+ "pp\0"
+ "glTexCoord2fVertex3fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[2914]: CompressedTexImage3D (will be remapped) */
+ "iiiiiiiip\0"
+ "glCompressedTexImage3D\0"
+ "glCompressedTexImage3DARB\0"
+ "glCompressedTexImage3DOES\0"
+ "\0"
+ /* _mesa_function_pool[3000]: GetDebugMessageLogARB (will be remapped) */
+ "iipppppp\0"
+ "glGetDebugMessageLogARB\0"
+ "\0"
+ /* _mesa_function_pool[3034]: VDPAUGetSurfaceivNV (will be remapped) */
+ "iiipp\0"
+ "glVDPAUGetSurfaceivNV\0"
+ "\0"
+ /* _mesa_function_pool[3063]: ReadInstrumentsSGIX (dynamic) */
+ "i\0"
+ "glReadInstrumentsSGIX\0"
+ "\0"
+ /* _mesa_function_pool[3088]: CallLists (offset 3) */
+ "iip\0"
+ "glCallLists\0"
+ "\0"
+ /* _mesa_function_pool[3105]: Uniform3f (will be remapped) */
+ "ifff\0"
+ "glUniform3f\0"
+ "glUniform3fARB\0"
+ "\0"
+ /* _mesa_function_pool[3138]: UniformMatrix2fv (will be remapped) */
+ "iiip\0"
+ "glUniformMatrix2fv\0"
+ "glUniformMatrix2fvARB\0"
+ "\0"
+ /* _mesa_function_pool[3185]: ReadnPixelsARB (will be remapped) */
+ "iiiiiiip\0"
+ "glReadnPixelsARB\0"
+ "\0"
+ /* _mesa_function_pool[3212]: Color4ubVertex3fvSUN (dynamic) */
+ "pp\0"
+ "glColor4ubVertex3fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[3239]: Normal3iv (offset 59) */
+ "p\0"
+ "glNormal3iv\0"
+ "\0"
+ /* _mesa_function_pool[3254]: SecondaryColor3dv (will be remapped) */
+ "p\0"
+ "glSecondaryColor3dv\0"
+ "glSecondaryColor3dvEXT\0"
+ "\0"
+ /* _mesa_function_pool[3300]: DrawTexiOES (will be remapped) */
+ "iiiii\0"
+ "glDrawTexiOES\0"
+ "\0"
+ /* _mesa_function_pool[3321]: PassThrough (offset 199) */
+ "f\0"
+ "glPassThrough\0"
+ "\0"
+ /* _mesa_function_pool[3338]: VertexP3ui (will be remapped) */
+ "ii\0"
+ "glVertexP3ui\0"
+ "\0"
+ /* _mesa_function_pool[3355]: TransformFeedbackVaryings (will be remapped) */
+ "iipi\0"
+ "glTransformFeedbackVaryings\0"
+ "glTransformFeedbackVaryingsEXT\0"
+ "\0"
+ /* _mesa_function_pool[3420]: GetListParameterfvSGIX (dynamic) */
+ "iip\0"
+ "glGetListParameterfvSGIX\0"
+ "\0"
+ /* _mesa_function_pool[3450]: Viewport (offset 305) */
+ "iiii\0"
+ "glViewport\0"
+ "\0"
+ /* _mesa_function_pool[3467]: ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (dynamic) */
+ "pppp\0"
+ "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[3523]: WindowPos4svMESA (will be remapped) */
+ "p\0"
+ "glWindowPos4svMESA\0"
+ "\0"
+ /* _mesa_function_pool[3545]: CreateProgramObjectARB (will be remapped) */
+ "\0"
+ "glCreateProgramObjectARB\0"
+ "\0"
+ /* _mesa_function_pool[3572]: UniformMatrix3fv (will be remapped) */
+ "iiip\0"
+ "glUniformMatrix3fv\0"
+ "glUniformMatrix3fvARB\0"
+ "\0"
+ /* _mesa_function_pool[3619]: FragmentLightModelivSGIX (dynamic) */
+ "ip\0"
+ "glFragmentLightModelivSGIX\0"
+ "\0"
+ /* _mesa_function_pool[3650]: UniformMatrix4x3fv (will be remapped) */
+ "iiip\0"
+ "glUniformMatrix4x3fv\0"
+ "\0"
+ /* _mesa_function_pool[3677]: PrioritizeTextures (offset 331) */
+ "ipp\0"
+ "glPrioritizeTextures\0"
+ "glPrioritizeTexturesEXT\0"
+ "\0"
+ /* _mesa_function_pool[3727]: VertexAttribI3uiEXT (will be remapped) */
+ "iiii\0"
+ "glVertexAttribI3uiEXT\0"
+ "glVertexAttribI3ui\0"
+ "\0"
+ /* _mesa_function_pool[3774]: VertexAttribDivisor (will be remapped) */
+ "ii\0"
+ "glVertexAttribDivisorARB\0"
+ "glVertexAttribDivisor\0"
+ "\0"
+ /* _mesa_function_pool[3825]: AsyncMarkerSGIX (dynamic) */
+ "i\0"
+ "glAsyncMarkerSGIX\0"
+ "\0"
+ /* _mesa_function_pool[3846]: GetQueryiv (will be remapped) */
+ "iip\0"
+ "glGetQueryiv\0"
+ "glGetQueryivARB\0"
+ "\0"
+ /* _mesa_function_pool[3880]: ClearColorIuiEXT (will be remapped) */
+ "iiii\0"
+ "glClearColorIuiEXT\0"
+ "\0"
+ /* _mesa_function_pool[3905]: VertexAttrib3d (will be remapped) */
+ "iddd\0"
+ "glVertexAttrib3d\0"
+ "glVertexAttrib3dARB\0"
+ "\0"
+ /* _mesa_function_pool[3948]: Frustumx (will be remapped) */
+ "iiiiii\0"
+ "glFrustumxOES\0"
+ "glFrustumx\0"
+ "\0"
+ /* _mesa_function_pool[3981]: ResetHistogram (offset 369) */
+ "i\0"
+ "glResetHistogram\0"
+ "glResetHistogramEXT\0"
+ "\0"
+ /* _mesa_function_pool[4021]: GetProgramNamedParameterfvNV (will be remapped) */
+ "iipp\0"
+ "glGetProgramNamedParameterfvNV\0"
+ "\0"
+ /* _mesa_function_pool[4058]: CompressedTexSubImage2D (will be remapped) */
+ "iiiiiiiip\0"
+ "glCompressedTexSubImage2D\0"
+ "glCompressedTexSubImage2DARB\0"
+ "\0"
+ /* _mesa_function_pool[4124]: GenFencesNV (dynamic) */
+ "ip\0"
+ "glGenFencesNV\0"
+ "\0"
+ /* _mesa_function_pool[4142]: GetMaterialxv (will be remapped) */
+ "iip\0"
+ "glGetMaterialxvOES\0"
+ "glGetMaterialxv\0"
+ "\0"
+ /* _mesa_function_pool[4182]: ImageTransformParameterfHP (dynamic) */
+ "iif\0"
+ "glImageTransformParameterfHP\0"
+ "\0"
+ /* _mesa_function_pool[4216]: MatrixIndexusvARB (dynamic) */
+ "ip\0"
+ "glMatrixIndexusvARB\0"
+ "\0"
+ /* _mesa_function_pool[4240]: SecondaryColor3uiv (will be remapped) */
+ "p\0"
+ "glSecondaryColor3uiv\0"
+ "glSecondaryColor3uivEXT\0"
+ "\0"
+ /* _mesa_function_pool[4288]: GetnConvolutionFilterARB (will be remapped) */
+ "iiiip\0"
+ "glGetnConvolutionFilterARB\0"
+ "\0"
+ /* _mesa_function_pool[4322]: TexCoord2sv (offset 109) */
+ "p\0"
+ "glTexCoord2sv\0"
+ "\0"
+ /* _mesa_function_pool[4339]: GetClipPlanex (will be remapped) */
+ "ip\0"
+ "glGetClipPlanexOES\0"
+ "glGetClipPlanex\0"
+ "\0"
+ /* _mesa_function_pool[4378]: Vertex4dv (offset 143) */
+ "p\0"
+ "glVertex4dv\0"
+ "\0"
+ /* _mesa_function_pool[4393]: StencilMaskSeparate (will be remapped) */
+ "ii\0"
+ "glStencilMaskSeparate\0"
+ "\0"
+ /* _mesa_function_pool[4419]: MapBuffer (will be remapped) */
+ "ii\0"
+ "glMapBuffer\0"
+ "glMapBufferARB\0"
+ "glMapBufferOES\0"
+ "\0"
+ /* _mesa_function_pool[4465]: PolygonOffsetx (will be remapped) */
+ "ii\0"
+ "glPolygonOffsetxOES\0"
+ "glPolygonOffsetx\0"
+ "\0"
+ /* _mesa_function_pool[4506]: VertexAttrib4Nbv (will be remapped) */
+ "ip\0"
+ "glVertexAttrib4Nbv\0"
+ "glVertexAttrib4NbvARB\0"
+ "\0"
+ /* _mesa_function_pool[4551]: ProgramLocalParameter4dARB (will be remapped) */
+ "iidddd\0"
+ "glProgramLocalParameter4dARB\0"
+ "\0"
+ /* _mesa_function_pool[4588]: ProgramBinary (will be remapped) */
+ "iipi\0"
+ "glProgramBinary\0"
+ "glProgramBinaryOES\0"
+ "\0"
+ /* _mesa_function_pool[4629]: InvalidateTexImage (will be remapped) */
+ "ii\0"
+ "glInvalidateTexImage\0"
+ "\0"
+ /* _mesa_function_pool[4654]: Uniform4ui (will be remapped) */
+ "iiiii\0"
+ "glUniform4uiEXT\0"
+ "glUniform4ui\0"
+ "\0"
+ /* _mesa_function_pool[4690]: VertexAttribs2svNV (will be remapped) */
+ "iip\0"
+ "glVertexAttribs2svNV\0"
+ "\0"
+ /* _mesa_function_pool[4716]: Color3sv (offset 18) */
+ "p\0"
+ "glColor3sv\0"
+ "\0"
+ /* _mesa_function_pool[4730]: GetLightxv (will be remapped) */
+ "iip\0"
+ "glGetLightxvOES\0"
+ "glGetLightxv\0"
+ "\0"
+ /* _mesa_function_pool[4764]: GetConvolutionParameteriv (offset 358) */
+ "iip\0"
+ "glGetConvolutionParameteriv\0"
+ "glGetConvolutionParameterivEXT\0"
+ "\0"
+ /* _mesa_function_pool[4828]: DeleteSamplers (will be remapped) */
+ "ip\0"
+ "glDeleteSamplers\0"
+ "\0"
+ /* _mesa_function_pool[4849]: VertexAttrib1fARB (will be remapped) */
+ "if\0"
+ "glVertexAttrib1f\0"
+ "glVertexAttrib1fARB\0"
+ "\0"
+ /* _mesa_function_pool[4890]: Vertex2dv (offset 127) */
+ "p\0"
+ "glVertex2dv\0"
+ "\0"
+ /* _mesa_function_pool[4905]: TestFenceNV (dynamic) */
+ "i\0"
+ "glTestFenceNV\0"
+ "\0"
+ /* _mesa_function_pool[4922]: DeleteRenderbuffers (will be remapped) */
+ "ip\0"
+ "glDeleteRenderbuffers\0"
+ "glDeleteRenderbuffersEXT\0"
+ "glDeleteRenderbuffersOES\0"
+ "\0"
+ /* _mesa_function_pool[4998]: MultiTexCoord1fvARB (offset 379) */
+ "ip\0"
+ "glMultiTexCoord1fv\0"
+ "glMultiTexCoord1fvARB\0"
+ "\0"
+ /* _mesa_function_pool[5043]: VertexAttribI4bv (will be remapped) */
+ "ip\0"
+ "glVertexAttribI4bvEXT\0"
+ "glVertexAttribI4bv\0"
+ "\0"
+ /* _mesa_function_pool[5088]: TexCoord3iv (offset 115) */
+ "p\0"
+ "glTexCoord3iv\0"
+ "\0"
+ /* _mesa_function_pool[5105]: GetObjectPtrLabel (will be remapped) */
+ "pipp\0"
+ "glGetObjectPtrLabel\0"
+ "\0"
+ /* _mesa_function_pool[5131]: TexStorage2D (will be remapped) */
+ "iiiii\0"
+ "glTexStorage2D\0"
+ "\0"
+ /* _mesa_function_pool[5153]: LoadPaletteFromModelViewMatrixOES (dynamic) */
+ "\0"
+ "glLoadPaletteFromModelViewMatrixOES\0"
+ "\0"
+ /* _mesa_function_pool[5191]: ProgramParameteri (will be remapped) */
+ "iii\0"
+ "glProgramParameteriARB\0"
+ "glProgramParameteri\0"
+ "\0"
+ /* _mesa_function_pool[5239]: VertexAttrib4usv (will be remapped) */
+ "ip\0"
+ "glVertexAttrib4usv\0"
+ "glVertexAttrib4usvARB\0"
+ "\0"
+ /* _mesa_function_pool[5284]: FragmentLightfvSGIX (dynamic) */
+ "iip\0"
+ "glFragmentLightfvSGIX\0"
+ "\0"
+ /* _mesa_function_pool[5311]: GetPixelTexGenParameterivSGIS (dynamic) */
+ "ip\0"
+ "glGetPixelTexGenParameterivSGIS\0"
+ "\0"
+ /* _mesa_function_pool[5347]: Color3fv (offset 14) */
+ "p\0"
+ "glColor3fv\0"
+ "\0"
+ /* _mesa_function_pool[5361]: VertexAttrib4fNV (will be remapped) */
+ "iffff\0"
+ "glVertexAttrib4fNV\0"
+ "\0"
+ /* _mesa_function_pool[5387]: MultiTexCoord4sv (offset 407) */
+ "ip\0"
+ "glMultiTexCoord4sv\0"
+ "glMultiTexCoord4svARB\0"
+ "\0"
+ /* _mesa_function_pool[5432]: TextureStorage1DEXT (will be remapped) */
+ "iiiii\0"
+ "glTextureStorage1DEXT\0"
+ "\0"
+ /* _mesa_function_pool[5461]: ReplacementCodeubSUN (dynamic) */
+ "i\0"
+ "glReplacementCodeubSUN\0"
+ "\0"
+ /* _mesa_function_pool[5487]: VertexAttrib4Nub (will be remapped) */
+ "iiiii\0"
+ "glVertexAttrib4Nub\0"
+ "glVertexAttrib4NubARB\0"
+ "\0"
+ /* _mesa_function_pool[5535]: PointParameterx (will be remapped) */
+ "ii\0"
+ "glPointParameterxOES\0"
+ "glPointParameterx\0"
+ "\0"
+ /* _mesa_function_pool[5578]: VertexAttribP3ui (will be remapped) */
+ "iiii\0"
+ "glVertexAttribP3ui\0"
+ "\0"
+ /* _mesa_function_pool[5603]: Uniform4fv (will be remapped) */
+ "iip\0"
+ "glUniform4fv\0"
+ "glUniform4fvARB\0"
+ "\0"
+ /* _mesa_function_pool[5637]: Color4ubVertex3fSUN (dynamic) */
+ "iiiifff\0"
+ "glColor4ubVertex3fSUN\0"
+ "\0"
+ /* _mesa_function_pool[5668]: FogCoordfEXT (will be remapped) */
+ "f\0"
+ "glFogCoordf\0"
+ "glFogCoordfEXT\0"
+ "\0"
+ /* _mesa_function_pool[5698]: PointSize (offset 173) */
+ "f\0"
+ "glPointSize\0"
+ "\0"
+ /* _mesa_function_pool[5713]: MultiTexCoord2i (offset 388) */
+ "iii\0"
+ "glMultiTexCoord2i\0"
+ "glMultiTexCoord2iARB\0"
+ "\0"
+ /* _mesa_function_pool[5757]: TexCoord2fVertex3fSUN (dynamic) */
+ "fffff\0"
+ "glTexCoord2fVertex3fSUN\0"
+ "\0"
+ /* _mesa_function_pool[5788]: GetPerfMonitorCounterInfoAMD (will be remapped) */
+ "iiip\0"
+ "glGetPerfMonitorCounterInfoAMD\0"
+ "\0"
+ /* _mesa_function_pool[5825]: MultiTexCoord2d (offset 384) */
+ "idd\0"
+ "glMultiTexCoord2d\0"
+ "glMultiTexCoord2dARB\0"
+ "\0"
+ /* _mesa_function_pool[5869]: UniformBlockBinding (will be remapped) */
+ "iii\0"
+ "glUniformBlockBinding\0"
+ "\0"
+ /* _mesa_function_pool[5896]: PopName (offset 200) */
+ "\0"
+ "glPopName\0"
+ "\0"
+ /* _mesa_function_pool[5908]: GetSamplerParameterfv (will be remapped) */
+ "iip\0"
+ "glGetSamplerParameterfv\0"
+ "\0"
+ /* _mesa_function_pool[5937]: VertexAttrib2dv (will be remapped) */
+ "ip\0"
+ "glVertexAttrib2dv\0"
+ "glVertexAttrib2dvARB\0"
+ "\0"
+ /* _mesa_function_pool[5980]: VertexAttrib4Nusv (will be remapped) */
+ "ip\0"
+ "glVertexAttrib4Nusv\0"
+ "glVertexAttrib4NusvARB\0"
+ "\0"
+ /* _mesa_function_pool[6027]: SampleMaski (will be remapped) */
+ "ii\0"
+ "glSampleMaski\0"
+ "\0"
+ /* _mesa_function_pool[6045]: GetProgramInfoLog (will be remapped) */
+ "iipp\0"
+ "glGetProgramInfoLog\0"
+ "\0"
+ /* _mesa_function_pool[6071]: VertexP2ui (will be remapped) */
+ "ii\0"
+ "glVertexP2ui\0"
+ "\0"
+ /* _mesa_function_pool[6088]: SamplerParameterIuiv (will be remapped) */
+ "iip\0"
+ "glSamplerParameterIuiv\0"
+ "\0"
+ /* _mesa_function_pool[6116]: TexParameterx (will be remapped) */
+ "iii\0"
+ "glTexParameterxOES\0"
+ "glTexParameterx\0"
+ "\0"
+ /* _mesa_function_pool[6156]: Vertex4sv (offset 149) */
+ "p\0"
+ "glVertex4sv\0"
+ "\0"
+ /* _mesa_function_pool[6171]: FramebufferTexture (will be remapped) */
+ "iiii\0"
+ "glFramebufferTextureARB\0"
+ "glFramebufferTexture\0"
+ "\0"
+ /* _mesa_function_pool[6222]: GetQueryObjecti64v (will be remapped) */
+ "iip\0"
+ "glGetQueryObjecti64v\0"
+ "glGetQueryObjecti64vEXT\0"
+ "\0"
+ /* _mesa_function_pool[6272]: GetActiveUniformBlockiv (will be remapped) */
+ "iiip\0"
+ "glGetActiveUniformBlockiv\0"
+ "\0"
+ /* _mesa_function_pool[6304]: VertexAttrib4ubNV (will be remapped) */
+ "iiiii\0"
+ "glVertexAttrib4ubNV\0"
+ "\0"
+ /* _mesa_function_pool[6331]: MultiTexCoord2s (offset 390) */
+ "iii\0"
+ "glMultiTexCoord2s\0"
+ "glMultiTexCoord2sARB\0"
+ "\0"
+ /* _mesa_function_pool[6375]: ClampColor (will be remapped) */
+ "ii\0"
+ "glClampColorARB\0"
+ "glClampColor\0"
+ "\0"
+ /* _mesa_function_pool[6408]: TexCoord2fNormal3fVertex3fvSUN (dynamic) */
+ "ppp\0"
+ "glTexCoord2fNormal3fVertex3fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[6446]: GetTexEnvfv (offset 276) */
+ "iip\0"
+ "glGetTexEnvfv\0"
+ "\0"
+ /* _mesa_function_pool[6465]: BindAttribLocation (will be remapped) */
+ "iip\0"
+ "glBindAttribLocation\0"
+ "glBindAttribLocationARB\0"
+ "\0"
+ /* _mesa_function_pool[6515]: BindFragDataLocationIndexed (will be remapped) */
+ "iiip\0"
+ "glBindFragDataLocationIndexed\0"
+ "\0"
+ /* _mesa_function_pool[6551]: DiscardFramebufferEXT (will be remapped) */
+ "iip\0"
+ "glDiscardFramebufferEXT\0"
+ "\0"
+ /* _mesa_function_pool[6580]: VDPAURegisterVideoSurfaceNV (will be remapped) */
+ "piip\0"
+ "glVDPAURegisterVideoSurfaceNV\0"
+ "\0"
+ /* _mesa_function_pool[6616]: BindTransformFeedback (will be remapped) */
+ "ii\0"
+ "glBindTransformFeedback\0"
+ "\0"
+ /* _mesa_function_pool[6644]: TextureStorage2DEXT (will be remapped) */
+ "iiiiii\0"
+ "glTextureStorage2DEXT\0"
+ "\0"
+ /* _mesa_function_pool[6674]: Indexub (offset 315) */
+ "i\0"
+ "glIndexub\0"
+ "\0"
+ /* _mesa_function_pool[6687]: GetPerfMonitorCounterDataAMD (will be remapped) */
+ "iiipp\0"
+ "glGetPerfMonitorCounterDataAMD\0"
+ "\0"
+ /* _mesa_function_pool[6725]: TexEnvi (offset 186) */
+ "iii\0"
+ "glTexEnvi\0"
+ "\0"
+ /* _mesa_function_pool[6740]: GetClipPlane (offset 259) */
+ "ip\0"
+ "glGetClipPlane\0"
+ "\0"
+ /* _mesa_function_pool[6759]: CombinerParameterfvNV (dynamic) */
+ "ip\0"
+ "glCombinerParameterfvNV\0"
+ "\0"
+ /* _mesa_function_pool[6787]: TexCoordP4uiv (will be remapped) */
+ "ip\0"
+ "glTexCoordP4uiv\0"
+ "\0"
+ /* _mesa_function_pool[6807]: VertexAttribs3dvNV (will be remapped) */
+ "iip\0"
+ "glVertexAttribs3dvNV\0"
+ "\0"
+ /* _mesa_function_pool[6833]: VertexAttribs4fvNV (will be remapped) */
+ "iip\0"
+ "glVertexAttribs4fvNV\0"
+ "\0"
+ /* _mesa_function_pool[6859]: VertexArrayRangeNV (dynamic) */
+ "ip\0"
+ "glVertexArrayRangeNV\0"
+ "\0"
+ /* _mesa_function_pool[6884]: FragmentLightiSGIX (dynamic) */
+ "iii\0"
+ "glFragmentLightiSGIX\0"
+ "\0"
+ /* _mesa_function_pool[6910]: ClearBufferfi (will be remapped) */
+ "iifi\0"
+ "glClearBufferfi\0"
+ "\0"
+ /* _mesa_function_pool[6932]: DrawTransformFeedbackInstanced (will be remapped) */
+ "iii\0"
+ "glDrawTransformFeedbackInstanced\0"
+ "\0"
+ /* _mesa_function_pool[6970]: VDPAUInitNV (will be remapped) */
+ "pp\0"
+ "glVDPAUInitNV\0"
+ "\0"
+ /* _mesa_function_pool[6988]: PolygonOffsetEXT (will be remapped) */
+ "ff\0"
+ "glPolygonOffsetEXT\0"
+ "\0"
+ /* _mesa_function_pool[7011]: WindowPos4dvMESA (will be remapped) */
+ "p\0"
+ "glWindowPos4dvMESA\0"
+ "\0"
+ /* _mesa_function_pool[7033]: Scalex (will be remapped) */
+ "iii\0"
+ "glScalexOES\0"
+ "glScalex\0"
+ "\0"
+ /* _mesa_function_pool[7059]: PollAsyncSGIX (dynamic) */
+ "p\0"
+ "glPollAsyncSGIX\0"
+ "\0"
+ /* _mesa_function_pool[7078]: WindowPos3sv (will be remapped) */
+ "p\0"
+ "glWindowPos3sv\0"
+ "glWindowPos3svARB\0"
+ "glWindowPos3svMESA\0"
+ "\0"
+ /* _mesa_function_pool[7133]: DeleteFragmentShaderATI (will be remapped) */
+ "i\0"
+ "glDeleteFragmentShaderATI\0"
+ "\0"
+ /* _mesa_function_pool[7162]: Scaled (offset 301) */
+ "ddd\0"
+ "glScaled\0"
+ "\0"
+ /* _mesa_function_pool[7176]: TangentPointerEXT (dynamic) */
+ "iip\0"
+ "glTangentPointerEXT\0"
+ "\0"
+ /* _mesa_function_pool[7201]: Scalef (offset 302) */
+ "fff\0"
+ "glScalef\0"
+ "\0"
+ /* _mesa_function_pool[7215]: IndexPointerEXT (will be remapped) */
+ "iiip\0"
+ "glIndexPointerEXT\0"
+ "\0"
+ /* _mesa_function_pool[7239]: VertexAttribI1iv (will be remapped) */
+ "ip\0"
+ "glVertexAttribI1ivEXT\0"
+ "glVertexAttribI1iv\0"
+ "\0"
+ /* _mesa_function_pool[7284]: ListParameterfvSGIX (dynamic) */
+ "iip\0"
+ "glListParameterfvSGIX\0"
+ "\0"
+ /* _mesa_function_pool[7311]: ColorFragmentOp1ATI (will be remapped) */
+ "iiiiiii\0"
+ "glColorFragmentOp1ATI\0"
+ "\0"
+ /* _mesa_function_pool[7342]: GetUniformfv (will be remapped) */
+ "iip\0"
+ "glGetUniformfv\0"
+ "glGetUniformfvARB\0"
+ "\0"
+ /* _mesa_function_pool[7380]: ObjectUnpurgeableAPPLE (will be remapped) */
+ "iii\0"
+ "glObjectUnpurgeableAPPLE\0"
+ "\0"
+ /* _mesa_function_pool[7410]: AlphaFunc (offset 240) */
+ "if\0"
+ "glAlphaFunc\0"
+ "\0"
+ /* _mesa_function_pool[7426]: ColorFragmentOp2ATI (will be remapped) */
+ "iiiiiiiiii\0"
+ "glColorFragmentOp2ATI\0"
+ "\0"
+ /* _mesa_function_pool[7460]: IsShader (will be remapped) */
+ "i\0"
+ "glIsShader\0"
+ "\0"
+ /* _mesa_function_pool[7474]: EdgeFlag (offset 41) */
+ "i\0"
+ "glEdgeFlag\0"
+ "\0"
+ /* _mesa_function_pool[7488]: TexCoord2iv (offset 107) */
+ "p\0"
+ "glTexCoord2iv\0"
+ "\0"
+ /* _mesa_function_pool[7505]: TexImage2DMultisample (will be remapped) */
+ "iiiiii\0"
+ "glTexImage2DMultisample\0"
+ "\0"
+ /* _mesa_function_pool[7537]: Rotated (offset 299) */
+ "dddd\0"
+ "glRotated\0"
+ "\0"
+ /* _mesa_function_pool[7553]: VertexAttrib2sNV (will be remapped) */
+ "iii\0"
+ "glVertexAttrib2sNV\0"
+ "\0"
+ /* _mesa_function_pool[7577]: ReadPixels (offset 256) */
+ "iiiiiip\0"
+ "glReadPixels\0"
+ "\0"
+ /* _mesa_function_pool[7599]: EdgeFlagv (offset 42) */
+ "p\0"
+ "glEdgeFlagv\0"
+ "\0"
+ /* _mesa_function_pool[7614]: NormalPointerListIBM (dynamic) */
+ "iipi\0"
+ "glNormalPointerListIBM\0"
+ "\0"
+ /* _mesa_function_pool[7643]: CompressedTexSubImage1D (will be remapped) */
+ "iiiiiip\0"
+ "glCompressedTexSubImage1D\0"
+ "glCompressedTexSubImage1DARB\0"
+ "\0"
+ /* _mesa_function_pool[7707]: QueryCounter (will be remapped) */
+ "ii\0"
+ "glQueryCounter\0"
+ "\0"
+ /* _mesa_function_pool[7726]: Color4iv (offset 32) */
+ "p\0"
+ "glColor4iv\0"
+ "\0"
+ /* _mesa_function_pool[7740]: DebugMessageCallback (will be remapped) */
+ "pp\0"
+ "glDebugMessageCallback\0"
+ "\0"
+ /* _mesa_function_pool[7767]: TexParameterf (offset 178) */
+ "iif\0"
+ "glTexParameterf\0"
+ "\0"
+ /* _mesa_function_pool[7788]: TexParameteri (offset 180) */
+ "iii\0"
+ "glTexParameteri\0"
+ "\0"
+ /* _mesa_function_pool[7809]: NormalPointerEXT (will be remapped) */
+ "iiip\0"
+ "glNormalPointerEXT\0"
+ "\0"
+ /* _mesa_function_pool[7834]: GetTransformFeedbackVarying (will be remapped) */
+ "iiipppp\0"
+ "glGetTransformFeedbackVarying\0"
+ "glGetTransformFeedbackVaryingEXT\0"
+ "\0"
+ /* _mesa_function_pool[7906]: GetUniformiv (will be remapped) */
+ "iip\0"
+ "glGetUniformiv\0"
+ "glGetUniformivARB\0"
+ "\0"
+ /* _mesa_function_pool[7944]: DrawPixels (offset 257) */
+ "iiiip\0"
+ "glDrawPixels\0"
+ "\0"
+ /* _mesa_function_pool[7964]: ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (dynamic) */
+ "iffffffff\0"
+ "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN\0"
+ "\0"
+ /* _mesa_function_pool[8024]: DepthRangex (will be remapped) */
+ "ii\0"
+ "glDepthRangexOES\0"
+ "glDepthRangex\0"
+ "\0"
+ /* _mesa_function_pool[8059]: ImageTransformParameterivHP (dynamic) */
+ "iip\0"
+ "glImageTransformParameterivHP\0"
+ "\0"
+ /* _mesa_function_pool[8094]: VDPAUFiniNV (will be remapped) */
+ "\0"
+ "glVDPAUFiniNV\0"
+ "\0"
+ /* _mesa_function_pool[8110]: DrawTransformFeedback (will be remapped) */
+ "ii\0"
+ "glDrawTransformFeedback\0"
+ "\0"
+ /* _mesa_function_pool[8138]: DrawElementsInstancedARB (will be remapped) */
+ "iiipi\0"
+ "glDrawElementsInstancedARB\0"
+ "glDrawElementsInstancedEXT\0"
+ "glDrawElementsInstanced\0"
+ "\0"
+ /* _mesa_function_pool[8223]: MultiTexCoord3sv (offset 399) */
+ "ip\0"
+ "glMultiTexCoord3sv\0"
+ "glMultiTexCoord3svARB\0"
+ "\0"
+ /* _mesa_function_pool[8268]: VertexAttribBinding (will be remapped) */
+ "ii\0"
+ "glVertexAttribBinding\0"
+ "\0"
+ /* _mesa_function_pool[8294]: WeightivARB (dynamic) */
+ "ip\0"
+ "glWeightivARB\0"
+ "\0"
+ /* _mesa_function_pool[8312]: GlobalAlphaFactordSUN (dynamic) */
+ "d\0"
+ "glGlobalAlphaFactordSUN\0"
+ "\0"
+ /* _mesa_function_pool[8339]: GetFinalCombinerInputParameterfvNV (dynamic) */
+ "iip\0"
+ "glGetFinalCombinerInputParameterfvNV\0"
+ "\0"
+ /* _mesa_function_pool[8381]: GenLists (offset 5) */
+ "i\0"
+ "glGenLists\0"
+ "\0"
+ /* _mesa_function_pool[8395]: DepthRangef (will be remapped) */
+ "ff\0"
+ "glDepthRangef\0"
+ "glDepthRangefOES\0"
+ "\0"
+ /* _mesa_function_pool[8430]: Color3fVertex3fvSUN (dynamic) */
+ "pp\0"
+ "glColor3fVertex3fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[8456]: SampleCoveragex (will be remapped) */
+ "ii\0"
+ "glSampleCoveragexOES\0"
+ "glSampleCoveragex\0"
+ "\0"
+ /* _mesa_function_pool[8499]: GetMapAttribParameterivNV (dynamic) */
+ "iiip\0"
+ "glGetMapAttribParameterivNV\0"
+ "\0"
+ /* _mesa_function_pool[8533]: GetCombinerInputParameterfvNV (dynamic) */
+ "iiiip\0"
+ "glGetCombinerInputParameterfvNV\0"
+ "\0"
+ /* _mesa_function_pool[8572]: GetSharpenTexFuncSGIS (dynamic) */
+ "ip\0"
+ "glGetSharpenTexFuncSGIS\0"
+ "\0"
+ /* _mesa_function_pool[8600]: PixelTransformParameterfvEXT (dynamic) */
+ "iip\0"
+ "glPixelTransformParameterfvEXT\0"
+ "\0"
+ /* _mesa_function_pool[8636]: MapGrid2d (offset 226) */
+ "iddidd\0"
+ "glMapGrid2d\0"
+ "\0"
+ /* _mesa_function_pool[8656]: MapGrid2f (offset 227) */
+ "iffiff\0"
+ "glMapGrid2f\0"
+ "\0"
+ /* _mesa_function_pool[8676]: SampleMapATI (will be remapped) */
+ "iii\0"
+ "glSampleMapATI\0"
+ "\0"
+ /* _mesa_function_pool[8696]: ValidateProgram (will be remapped) */
+ "i\0"
+ "glValidateProgram\0"
+ "glValidateProgramARB\0"
+ "\0"
+ /* _mesa_function_pool[8738]: VertexPointerEXT (will be remapped) */
+ "iiiip\0"
+ "glVertexPointerEXT\0"
+ "\0"
+ /* _mesa_function_pool[8764]: GetTexFilterFuncSGIS (dynamic) */
+ "iip\0"
+ "glGetTexFilterFuncSGIS\0"
+ "\0"
+ /* _mesa_function_pool[8792]: VertexAttribI4sv (will be remapped) */
+ "ip\0"
+ "glVertexAttribI4svEXT\0"
+ "glVertexAttribI4sv\0"
+ "\0"
+ /* _mesa_function_pool[8837]: Scissor (offset 176) */
+ "iiii\0"
+ "glScissor\0"
+ "\0"
+ /* _mesa_function_pool[8853]: Fogf (offset 153) */
+ "if\0"
+ "glFogf\0"
+ "\0"
+ /* _mesa_function_pool[8864]: ReplacementCodeubvSUN (dynamic) */
+ "p\0"
+ "glReplacementCodeubvSUN\0"
+ "\0"
+ /* _mesa_function_pool[8891]: TexSubImage1D (offset 332) */
+ "iiiiiip\0"
+ "glTexSubImage1D\0"
+ "glTexSubImage1DEXT\0"
+ "\0"
+ /* _mesa_function_pool[8935]: BeginTransformFeedback (will be remapped) */
+ "i\0"
+ "glBeginTransformFeedback\0"
+ "glBeginTransformFeedbackEXT\0"
+ "\0"
+ /* _mesa_function_pool[8991]: FenceSync (will be remapped) */
+ "ii\0"
+ "glFenceSync\0"
+ "\0"
+ /* _mesa_function_pool[9007]: Color4usv (offset 40) */
+ "p\0"
+ "glColor4usv\0"
+ "\0"
+ /* _mesa_function_pool[9022]: GetnUniformfvARB (will be remapped) */
+ "iiip\0"
+ "glGetnUniformfvARB\0"
+ "\0"
+ /* _mesa_function_pool[9047]: Fogi (offset 155) */
+ "ii\0"
+ "glFogi\0"
+ "\0"
+ /* _mesa_function_pool[9058]: DepthRange (offset 288) */
+ "dd\0"
+ "glDepthRange\0"
+ "\0"
+ /* _mesa_function_pool[9075]: RasterPos3iv (offset 75) */
+ "p\0"
+ "glRasterPos3iv\0"
+ "\0"
+ /* _mesa_function_pool[9093]: ColorMaski (will be remapped) */
+ "iiiii\0"
+ "glColorMaskIndexedEXT\0"
+ "glColorMaski\0"
+ "\0"
+ /* _mesa_function_pool[9135]: GetActiveAttrib (will be remapped) */
+ "iiipppp\0"
+ "glGetActiveAttrib\0"
+ "glGetActiveAttribARB\0"
+ "\0"
+ /* _mesa_function_pool[9183]: TexCoord2i (offset 106) */
+ "ii\0"
+ "glTexCoord2i\0"
+ "\0"
+ /* _mesa_function_pool[9200]: PixelMapfv (offset 251) */
+ "iip\0"
+ "glPixelMapfv\0"
+ "\0"
+ /* _mesa_function_pool[9218]: Color4ui (offset 37) */
+ "iiii\0"
+ "glColor4ui\0"
+ "\0"
+ /* _mesa_function_pool[9235]: RasterPos3s (offset 76) */
+ "iii\0"
+ "glRasterPos3s\0"
+ "\0"
+ /* _mesa_function_pool[9254]: Color3usv (offset 24) */
+ "p\0"
+ "glColor3usv\0"
+ "\0"
+ /* _mesa_function_pool[9269]: MultiTexCoord2iv (offset 389) */
+ "ip\0"
+ "glMultiTexCoord2iv\0"
+ "glMultiTexCoord2ivARB\0"
+ "\0"
+ /* _mesa_function_pool[9314]: TexCoord2f (offset 104) */
+ "ff\0"
+ "glTexCoord2f\0"
+ "\0"
+ /* _mesa_function_pool[9331]: ReplacementCodeuiTexCoord2fVertex3fSUN (dynamic) */
+ "ifffff\0"
+ "glReplacementCodeuiTexCoord2fVertex3fSUN\0"
+ "\0"
+ /* _mesa_function_pool[9380]: TexCoord2d (offset 102) */
+ "dd\0"
+ "glTexCoord2d\0"
+ "\0"
+ /* _mesa_function_pool[9397]: RasterPos3d (offset 70) */
+ "ddd\0"
+ "glRasterPos3d\0"
+ "\0"
+ /* _mesa_function_pool[9416]: RasterPos3f (offset 72) */
+ "fff\0"
+ "glRasterPos3f\0"
+ "\0"
+ /* _mesa_function_pool[9435]: AreTexturesResident (offset 322) */
+ "ipp\0"
+ "glAreTexturesResident\0"
+ "glAreTexturesResidentEXT\0"
+ "\0"
+ /* _mesa_function_pool[9487]: DrawElementsInstancedBaseVertexBaseInstance (will be remapped) */
+ "iiipiii\0"
+ "glDrawElementsInstancedBaseVertexBaseInstance\0"
+ "\0"
+ /* _mesa_function_pool[9542]: TexCoord2s (offset 108) */
+ "ii\0"
+ "glTexCoord2s\0"
+ "\0"
+ /* _mesa_function_pool[9559]: StencilOpSeparate (will be remapped) */
+ "iiii\0"
+ "glStencilOpSeparate\0"
+ "glStencilOpSeparateATI\0"
+ "\0"
+ /* _mesa_function_pool[9608]: ColorTableParameteriv (offset 341) */
+ "iip\0"
+ "glColorTableParameteriv\0"
+ "glColorTableParameterivSGI\0"
+ "\0"
+ /* _mesa_function_pool[9664]: VertexAttribP2ui (will be remapped) */
+ "iiii\0"
+ "glVertexAttribP2ui\0"
+ "\0"
+ /* _mesa_function_pool[9689]: GenSamplers (will be remapped) */
+ "ip\0"
+ "glGenSamplers\0"
+ "\0"
+ /* _mesa_function_pool[9707]: Color4us (offset 39) */
+ "iiii\0"
+ "glColor4us\0"
+ "\0"
+ /* _mesa_function_pool[9724]: Color3bv (offset 10) */
+ "p\0"
+ "glColor3bv\0"
+ "\0"
+ /* _mesa_function_pool[9738]: GetnCompressedTexImageARB (will be remapped) */
+ "iiip\0"
+ "glGetnCompressedTexImageARB\0"
+ "\0"
+ /* _mesa_function_pool[9772]: DrawTransformFeedbackStreamInstanced (will be remapped) */
+ "iiii\0"
+ "glDrawTransformFeedbackStreamInstanced\0"
+ "\0"
+ /* _mesa_function_pool[9817]: VertexAttrib2fvARB (will be remapped) */
+ "ip\0"
+ "glVertexAttrib2fv\0"
+ "glVertexAttrib2fvARB\0"
+ "\0"
+ /* _mesa_function_pool[9860]: VertexPointerListIBM (dynamic) */
+ "iiipi\0"
+ "glVertexPointerListIBM\0"
+ "\0"
+ /* _mesa_function_pool[9890]: GetProgramLocalParameterfvARB (will be remapped) */
+ "iip\0"
+ "glGetProgramLocalParameterfvARB\0"
+ "\0"
+ /* _mesa_function_pool[9927]: FragmentMaterialfSGIX (dynamic) */
+ "iif\0"
+ "glFragmentMaterialfSGIX\0"
+ "\0"
+ /* _mesa_function_pool[9956]: BindSampler (will be remapped) */
+ "ii\0"
+ "glBindSampler\0"
+ "\0"
+ /* _mesa_function_pool[9974]: GetUniformuiv (will be remapped) */
+ "iip\0"
+ "glGetUniformuivEXT\0"
+ "glGetUniformuiv\0"
+ "\0"
+ /* _mesa_function_pool[10014]: BindBufferOffsetEXT (will be remapped) */
+ "iiii\0"
+ "glBindBufferOffsetEXT\0"
+ "\0"
+ /* _mesa_function_pool[10042]: IsFenceNV (dynamic) */
+ "i\0"
+ "glIsFenceNV\0"
+ "\0"
+ /* _mesa_function_pool[10057]: ColorPointerListIBM (dynamic) */
+ "iiipi\0"
+ "glColorPointerListIBM\0"
+ "\0"
+ /* _mesa_function_pool[10086]: AttachObjectARB (will be remapped) */
+ "ii\0"
+ "glAttachObjectARB\0"
+ "\0"
+ /* _mesa_function_pool[10108]: GetFragmentLightivSGIX (dynamic) */
+ "iip\0"
+ "glGetFragmentLightivSGIX\0"
+ "\0"
+ /* _mesa_function_pool[10138]: MultiTexCoord2fARB (offset 386) */
+ "iff\0"
+ "glMultiTexCoord2f\0"
+ "glMultiTexCoord2fARB\0"
+ "\0"
+ /* _mesa_function_pool[10182]: ColorTable (offset 339) */
+ "iiiiip\0"
+ "glColorTable\0"
+ "glColorTableSGI\0"
+ "glColorTableEXT\0"
+ "\0"
+ /* _mesa_function_pool[10235]: IndexPointer (offset 314) */
+ "iip\0"
+ "glIndexPointer\0"
+ "\0"
+ /* _mesa_function_pool[10255]: Accum (offset 213) */
+ "if\0"
+ "glAccum\0"
+ "\0"
+ /* _mesa_function_pool[10267]: GetTexImage (offset 281) */
+ "iiiip\0"
+ "glGetTexImage\0"
+ "\0"
+ /* _mesa_function_pool[10288]: MapControlPointsNV (dynamic) */
+ "iiiiiiiip\0"
+ "glMapControlPointsNV\0"
+ "\0"
+ /* _mesa_function_pool[10320]: ConvolutionFilter2D (offset 349) */
+ "iiiiiip\0"
+ "glConvolutionFilter2D\0"
+ "glConvolutionFilter2DEXT\0"
+ "\0"
+ /* _mesa_function_pool[10376]: TexParameterIiv (will be remapped) */
+ "iip\0"
+ "glTexParameterIivEXT\0"
+ "glTexParameterIiv\0"
+ "\0"
+ /* _mesa_function_pool[10420]: Finish (offset 216) */
+ "\0"
+ "glFinish\0"
+ "\0"
+ /* _mesa_function_pool[10431]: MapParameterfvNV (dynamic) */
+ "iip\0"
+ "glMapParameterfvNV\0"
+ "\0"
+ /* _mesa_function_pool[10455]: ClearStencil (offset 207) */
+ "i\0"
+ "glClearStencil\0"
+ "\0"
+ /* _mesa_function_pool[10473]: Color4x (will be remapped) */
+ "iiii\0"
+ "glColor4xOES\0"
+ "glColor4x\0"
+ "\0"
+ /* _mesa_function_pool[10502]: HintPGI (dynamic) */
+ "ii\0"
+ "glHintPGI\0"
+ "\0"
+ /* _mesa_function_pool[10516]: ConvolutionParameteriv (offset 353) */
+ "iip\0"
+ "glConvolutionParameteriv\0"
+ "glConvolutionParameterivEXT\0"
+ "\0"
+ /* _mesa_function_pool[10574]: Color4s (offset 33) */
+ "iiii\0"
+ "glColor4s\0"
+ "\0"
+ /* _mesa_function_pool[10590]: InterleavedArrays (offset 317) */
+ "iip\0"
+ "glInterleavedArrays\0"
+ "\0"
+ /* _mesa_function_pool[10615]: RasterPos2fv (offset 65) */
+ "p\0"
+ "glRasterPos2fv\0"
+ "\0"
+ /* _mesa_function_pool[10633]: TexCoord1fv (offset 97) */
+ "p\0"
+ "glTexCoord1fv\0"
+ "\0"
+ /* _mesa_function_pool[10650]: Vertex2d (offset 126) */
+ "dd\0"
+ "glVertex2d\0"
+ "\0"
+ /* _mesa_function_pool[10665]: CullParameterdvEXT (dynamic) */
+ "ip\0"
+ "glCullParameterdvEXT\0"
+ "\0"
+ /* _mesa_function_pool[10690]: ProgramNamedParameter4fNV (will be remapped) */
+ "iipffff\0"
+ "glProgramNamedParameter4fNV\0"
+ "\0"
+ /* _mesa_function_pool[10727]: Orthof (will be remapped) */
+ "ffffff\0"
+ "glOrthofOES\0"
+ "glOrthof\0"
+ "\0"
+ /* _mesa_function_pool[10756]: MultiTexCoord4dv (offset 401) */
+ "ip\0"
+ "glMultiTexCoord4dv\0"
+ "glMultiTexCoord4dvARB\0"
+ "\0"
+ /* _mesa_function_pool[10801]: ProgramEnvParameter4fvARB (will be remapped) */
+ "iip\0"
+ "glProgramEnvParameter4fvARB\0"
+ "glProgramParameter4fvNV\0"
+ "\0"
+ /* _mesa_function_pool[10858]: Color4i (offset 31) */
+ "iiii\0"
+ "glColor4i\0"
+ "\0"
+ /* _mesa_function_pool[10874]: Color4f (offset 29) */
+ "ffff\0"
+ "glColor4f\0"
+ "\0"
+ /* _mesa_function_pool[10890]: RasterPos4fv (offset 81) */
+ "p\0"
+ "glRasterPos4fv\0"
+ "\0"
+ /* _mesa_function_pool[10908]: Color4d (offset 27) */
+ "dddd\0"
+ "glColor4d\0"
+ "\0"
+ /* _mesa_function_pool[10924]: ClearIndex (offset 205) */
+ "f\0"
+ "glClearIndex\0"
+ "\0"
+ /* _mesa_function_pool[10940]: Color4b (offset 25) */
+ "iiii\0"
+ "glColor4b\0"
+ "\0"
+ /* _mesa_function_pool[10956]: LoadMatrixd (offset 292) */
+ "p\0"
+ "glLoadMatrixd\0"
+ "\0"
+ /* _mesa_function_pool[10973]: FragmentLightModeliSGIX (dynamic) */
+ "ii\0"
+ "glFragmentLightModeliSGIX\0"
+ "\0"
+ /* _mesa_function_pool[11003]: RasterPos2dv (offset 63) */
+ "p\0"
+ "glRasterPos2dv\0"
+ "\0"
+ /* _mesa_function_pool[11021]: ConvolutionParameterfv (offset 351) */
+ "iip\0"
+ "glConvolutionParameterfv\0"
+ "glConvolutionParameterfvEXT\0"
+ "\0"
+ /* _mesa_function_pool[11079]: TbufferMask3DFX (dynamic) */
+ "i\0"
+ "glTbufferMask3DFX\0"
+ "\0"
+ /* _mesa_function_pool[11100]: VDPAURegisterOutputSurfaceNV (will be remapped) */
+ "piip\0"
+ "glVDPAURegisterOutputSurfaceNV\0"
+ "\0"
+ /* _mesa_function_pool[11137]: GetTexGendv (offset 278) */
+ "iip\0"
+ "glGetTexGendv\0"
+ "\0"
+ /* _mesa_function_pool[11156]: FragmentLightModelfSGIX (dynamic) */
+ "if\0"
+ "glFragmentLightModelfSGIX\0"
+ "\0"
+ /* _mesa_function_pool[11186]: LoadProgramNV (will be remapped) */
+ "iiip\0"
+ "glLoadProgramNV\0"
+ "\0"
+ /* _mesa_function_pool[11208]: EndList (offset 1) */
+ "\0"
+ "glEndList\0"
+ "\0"
+ /* _mesa_function_pool[11220]: VertexP4ui (will be remapped) */
+ "ii\0"
+ "glVertexP4ui\0"
+ "\0"
+ /* _mesa_function_pool[11237]: MultiTexCoordP1ui (will be remapped) */
+ "iii\0"
+ "glMultiTexCoordP1ui\0"
+ "\0"
+ /* _mesa_function_pool[11262]: GetAttachedObjectsARB (will be remapped) */
+ "iipp\0"
+ "glGetAttachedObjectsARB\0"
+ "\0"
+ /* _mesa_function_pool[11292]: EvalCoord1fv (offset 231) */
+ "p\0"
+ "glEvalCoord1fv\0"
+ "\0"
+ /* _mesa_function_pool[11310]: DrawRangeElements (offset 338) */
+ "iiiiip\0"
+ "glDrawRangeElements\0"
+ "glDrawRangeElementsEXT\0"
+ "\0"
+ /* _mesa_function_pool[11361]: EvalMesh2 (offset 238) */
+ "iiiii\0"
+ "glEvalMesh2\0"
+ "\0"
+ /* _mesa_function_pool[11380]: TexCoordPointerListIBM (dynamic) */
+ "iiipi\0"
+ "glTexCoordPointerListIBM\0"
+ "\0"
+ /* _mesa_function_pool[11412]: Vertex4fv (offset 145) */
+ "p\0"
+ "glVertex4fv\0"
+ "\0"
+ /* _mesa_function_pool[11427]: VertexAttribLFormat (will be remapped) */
+ "iiii\0"
+ "glVertexAttribLFormat\0"
+ "\0"
+ /* _mesa_function_pool[11455]: GenTransformFeedbacks (will be remapped) */
+ "ip\0"
+ "glGenTransformFeedbacks\0"
+ "\0"
+ /* _mesa_function_pool[11483]: SpriteParameterfvSGIX (dynamic) */
+ "ip\0"
+ "glSpriteParameterfvSGIX\0"
+ "\0"
+ /* _mesa_function_pool[11511]: VertexAttribs3fvNV (will be remapped) */
+ "iip\0"
+ "glVertexAttribs3fvNV\0"
+ "\0"
+ /* _mesa_function_pool[11537]: GlobalAlphaFactoruiSUN (dynamic) */
+ "i\0"
+ "glGlobalAlphaFactoruiSUN\0"
+ "\0"
+ /* _mesa_function_pool[11565]: GetHandleARB (will be remapped) */
+ "i\0"
+ "glGetHandleARB\0"
+ "\0"
+ /* _mesa_function_pool[11583]: DebugMessageControlARB (will be remapped) */
+ "iiiipi\0"
+ "glDebugMessageControlARB\0"
+ "\0"
+ /* _mesa_function_pool[11616]: DrawTexfvOES (will be remapped) */
+ "p\0"
+ "glDrawTexfvOES\0"
+ "\0"
+ /* _mesa_function_pool[11634]: BlendFunciARB (will be remapped) */
+ "iii\0"
+ "glBlendFunciARB\0"
+ "glBlendFuncIndexedAMD\0"
+ "\0"
+ /* _mesa_function_pool[11677]: GetProgramEnvParameterdvARB (will be remapped) */
+ "iip\0"
+ "glGetProgramEnvParameterdvARB\0"
+ "\0"
+ /* _mesa_function_pool[11712]: GetnUniformivARB (will be remapped) */
+ "iiip\0"
+ "glGetnUniformivARB\0"
+ "\0"
+ /* _mesa_function_pool[11737]: ClearColorIiEXT (will be remapped) */
+ "iiii\0"
+ "glClearColorIiEXT\0"
+ "\0"
+ /* _mesa_function_pool[11761]: BindFramebuffer (will be remapped) */
+ "ii\0"
+ "glBindFramebuffer\0"
+ "glBindFramebufferOES\0"
+ "\0"
+ /* _mesa_function_pool[11804]: CreateProgram (will be remapped) */
+ "\0"
+ "glCreateProgram\0"
+ "\0"
+ /* _mesa_function_pool[11822]: ReleaseShaderCompiler (will be remapped) */
+ "\0"
+ "glReleaseShaderCompiler\0"
+ "\0"
+ /* _mesa_function_pool[11848]: GetMinmax (offset 364) */
+ "iiiip\0"
+ "glGetMinmax\0"
+ "glGetMinmaxEXT\0"
+ "\0"
+ /* _mesa_function_pool[11882]: BlendFuncSeparate (will be remapped) */
+ "iiii\0"
+ "glBlendFuncSeparate\0"
+ "glBlendFuncSeparateEXT\0"
+ "glBlendFuncSeparateINGR\0"
+ "glBlendFuncSeparateOES\0"
+ "\0"
+ /* _mesa_function_pool[11978]: StencilFuncSeparate (will be remapped) */
+ "iiii\0"
+ "glStencilFuncSeparate\0"
+ "\0"
+ /* _mesa_function_pool[12006]: ShaderSource (will be remapped) */
+ "iipp\0"
+ "glShaderSource\0"
+ "glShaderSourceARB\0"
+ "\0"
+ /* _mesa_function_pool[12045]: GetInteger64i_v (will be remapped) */
+ "iip\0"
+ "glGetInteger64i_v\0"
+ "\0"
+ /* _mesa_function_pool[12068]: GetVertexAttribdvNV (will be remapped) */
+ "iip\0"
+ "glGetVertexAttribdvNV\0"
+ "\0"
+ /* _mesa_function_pool[12095]: DeleteTransformFeedbacks (will be remapped) */
+ "ip\0"
+ "glDeleteTransformFeedbacks\0"
+ "\0"
+ /* _mesa_function_pool[12126]: Normal3fv (offset 57) */
+ "p\0"
+ "glNormal3fv\0"
+ "\0"
+ /* _mesa_function_pool[12141]: GlobalAlphaFactorbSUN (dynamic) */
+ "i\0"
+ "glGlobalAlphaFactorbSUN\0"
+ "\0"
+ /* _mesa_function_pool[12168]: Color3us (offset 23) */
+ "iii\0"
+ "glColor3us\0"
+ "\0"
+ /* _mesa_function_pool[12184]: ImageTransformParameterfvHP (dynamic) */
+ "iip\0"
+ "glImageTransformParameterfvHP\0"
+ "\0"
+ /* _mesa_function_pool[12219]: NormalP3ui (will be remapped) */
+ "ii\0"
+ "glNormalP3ui\0"
+ "\0"
+ /* _mesa_function_pool[12236]: End (offset 43) */
+ "\0"
+ "glEnd\0"
+ "\0"
+ /* _mesa_function_pool[12244]: VertexAttribs3svNV (will be remapped) */
+ "iip\0"
+ "glVertexAttribs3svNV\0"
+ "\0"
+ /* _mesa_function_pool[12270]: VertexAttribFormat (will be remapped) */
+ "iiiii\0"
+ "glVertexAttribFormat\0"
+ "\0"
+ /* _mesa_function_pool[12298]: MultiTexCoordP3uiv (will be remapped) */
+ "iip\0"
+ "glMultiTexCoordP3uiv\0"
+ "\0"
+ /* _mesa_function_pool[12324]: VertexAttribs2dvNV (will be remapped) */
+ "iip\0"
+ "glVertexAttribs2dvNV\0"
+ "\0"
+ /* _mesa_function_pool[12350]: MultiTexCoord3fvARB (offset 395) */
+ "ip\0"
+ "glMultiTexCoord3fv\0"
+ "glMultiTexCoord3fvARB\0"
+ "\0"
+ /* _mesa_function_pool[12395]: Color3ub (offset 19) */
+ "iii\0"
+ "glColor3ub\0"
+ "\0"
+ /* _mesa_function_pool[12411]: GetProgramParameterfvNV (will be remapped) */
+ "iiip\0"
+ "glGetProgramParameterfvNV\0"
+ "\0"
+ /* _mesa_function_pool[12443]: GetActiveUniformsiv (will be remapped) */
+ "iipip\0"
+ "glGetActiveUniformsiv\0"
+ "\0"
+ /* _mesa_function_pool[12472]: BindBuffer (will be remapped) */
+ "ii\0"
+ "glBindBuffer\0"
+ "glBindBufferARB\0"
+ "\0"
+ /* _mesa_function_pool[12505]: GetInstrumentsSGIX (dynamic) */
+ "\0"
+ "glGetInstrumentsSGIX\0"
+ "\0"
+ /* _mesa_function_pool[12528]: DrawTexxOES (will be remapped) */
+ "iiiii\0"
+ "glDrawTexxOES\0"
+ "\0"
+ /* _mesa_function_pool[12549]: VertexAttrib2sv (will be remapped) */
+ "ip\0"
+ "glVertexAttrib2sv\0"
+ "glVertexAttrib2svARB\0"
+ "\0"
+ /* _mesa_function_pool[12592]: Color3ui (offset 21) */
+ "iii\0"
+ "glColor3ui\0"
+ "\0"
+ /* _mesa_function_pool[12608]: EvalMapsNV (dynamic) */
+ "ii\0"
+ "glEvalMapsNV\0"
+ "\0"
+ /* _mesa_function_pool[12625]: DrawTexxvOES (will be remapped) */
+ "p\0"
+ "glDrawTexxvOES\0"
+ "\0"
+ /* _mesa_function_pool[12643]: TexSubImage2D (offset 333) */
+ "iiiiiiiip\0"
+ "glTexSubImage2D\0"
+ "glTexSubImage2DEXT\0"
+ "\0"
+ /* _mesa_function_pool[12689]: FragmentLightivSGIX (dynamic) */
+ "iip\0"
+ "glFragmentLightivSGIX\0"
+ "\0"
+ /* _mesa_function_pool[12716]: IndexPointerListIBM (dynamic) */
+ "iipi\0"
+ "glIndexPointerListIBM\0"
+ "\0"
+ /* _mesa_function_pool[12744]: GetTexParameterPointervAPPLE (dynamic) */
+ "iip\0"
+ "glGetTexParameterPointervAPPLE\0"
+ "\0"
+ /* _mesa_function_pool[12780]: TexGenfv (offset 191) */
+ "iip\0"
+ "glTexGenfv\0"
+ "glTexGenfvOES\0"
+ "\0"
+ /* _mesa_function_pool[12810]: VertexAttrib1dNV (will be remapped) */
+ "id\0"
+ "glVertexAttrib1dNV\0"
+ "\0"
+ /* _mesa_function_pool[12833]: VertexAttrib4dvNV (will be remapped) */
+ "ip\0"
+ "glVertexAttrib4dvNV\0"
+ "\0"
+ /* _mesa_function_pool[12857]: GetVertexAttribiv (will be remapped) */
+ "iip\0"
+ "glGetVertexAttribiv\0"
+ "glGetVertexAttribivARB\0"
+ "\0"
+ /* _mesa_function_pool[12905]: QueryMatrixxOES (will be remapped) */
+ "pp\0"
+ "glQueryMatrixxOES\0"
+ "\0"
+ /* _mesa_function_pool[12927]: ShaderBinary (will be remapped) */
+ "ipipi\0"
+ "glShaderBinary\0"
+ "\0"
+ /* _mesa_function_pool[12949]: TexCoordP2uiv (will be remapped) */
+ "ip\0"
+ "glTexCoordP2uiv\0"
+ "\0"
+ /* _mesa_function_pool[12969]: FragmentMaterialfvSGIX (dynamic) */
+ "iip\0"
+ "glFragmentMaterialfvSGIX\0"
+ "\0"
+ /* _mesa_function_pool[12999]: GetFragmentMaterialivSGIX (dynamic) */
+ "iip\0"
+ "glGetFragmentMaterialivSGIX\0"
+ "\0"
+ /* _mesa_function_pool[13032]: WindowPos4dMESA (will be remapped) */
+ "dddd\0"
+ "glWindowPos4dMESA\0"
+ "\0"
+ /* _mesa_function_pool[13056]: DrawBuffers (will be remapped) */
+ "ip\0"
+ "glDrawBuffers\0"
+ "glDrawBuffersARB\0"
+ "glDrawBuffersATI\0"
+ "glDrawBuffersNV\0"
+ "\0"
+ /* _mesa_function_pool[13124]: Lightxv (will be remapped) */
+ "iip\0"
+ "glLightxvOES\0"
+ "glLightxv\0"
+ "\0"
+ /* _mesa_function_pool[13152]: Uniform3fv (will be remapped) */
+ "iip\0"
+ "glUniform3fv\0"
+ "glUniform3fvARB\0"
+ "\0"
+ /* _mesa_function_pool[13186]: BlendEquation (offset 337) */
+ "i\0"
+ "glBlendEquation\0"
+ "glBlendEquationEXT\0"
+ "glBlendEquationOES\0"
+ "\0"
+ /* _mesa_function_pool[13243]: VertexAttrib3dNV (will be remapped) */
+ "iddd\0"
+ "glVertexAttrib3dNV\0"
+ "\0"
+ /* _mesa_function_pool[13268]: Normal3x (will be remapped) */
+ "iii\0"
+ "glNormal3xOES\0"
+ "glNormal3x\0"
+ "\0"
+ /* _mesa_function_pool[13298]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */
+ "ppppp\0"
+ "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[13362]: VertexAttrib4fARB (will be remapped) */
+ "iffff\0"
+ "glVertexAttrib4f\0"
+ "glVertexAttrib4fARB\0"
+ "\0"
+ /* _mesa_function_pool[13406]: GetPerfMonitorGroupStringAMD (will be remapped) */
+ "iipp\0"
+ "glGetPerfMonitorGroupStringAMD\0"
+ "\0"
+ /* _mesa_function_pool[13443]: GetError (offset 261) */
+ "\0"
+ "glGetError\0"
+ "\0"
+ /* _mesa_function_pool[13456]: IndexFuncEXT (dynamic) */
+ "if\0"
+ "glIndexFuncEXT\0"
+ "\0"
+ /* _mesa_function_pool[13475]: TexCoord3dv (offset 111) */
+ "p\0"
+ "glTexCoord3dv\0"
+ "\0"
+ /* _mesa_function_pool[13492]: Indexdv (offset 45) */
+ "p\0"
+ "glIndexdv\0"
+ "\0"
+ /* _mesa_function_pool[13505]: InvalidateTexSubImage (will be remapped) */
+ "iiiiiiii\0"
+ "glInvalidateTexSubImage\0"
+ "\0"
+ /* _mesa_function_pool[13539]: Normal3s (offset 60) */
+ "iii\0"
+ "glNormal3s\0"
+ "\0"
+ /* _mesa_function_pool[13555]: GetObjectParameterivAPPLE (will be remapped) */
+ "iiip\0"
+ "glGetObjectParameterivAPPLE\0"
+ "\0"
+ /* _mesa_function_pool[13589]: PushName (offset 201) */
+ "i\0"
+ "glPushName\0"
+ "\0"
+ /* _mesa_function_pool[13603]: GetTexParameterIuiv (will be remapped) */
+ "iip\0"
+ "glGetTexParameterIuivEXT\0"
+ "glGetTexParameterIuiv\0"
+ "\0"
+ /* _mesa_function_pool[13655]: GetActiveUniformBlockName (will be remapped) */
+ "iiipp\0"
+ "glGetActiveUniformBlockName\0"
+ "\0"
+ /* _mesa_function_pool[13690]: CullParameterfvEXT (dynamic) */
+ "ip\0"
+ "glCullParameterfvEXT\0"
+ "\0"
+ /* _mesa_function_pool[13715]: Normal3i (offset 58) */
+ "iii\0"
+ "glNormal3i\0"
+ "\0"
+ /* _mesa_function_pool[13731]: ProgramNamedParameter4fvNV (will be remapped) */
+ "iipp\0"
+ "glProgramNamedParameter4fvNV\0"
+ "\0"
+ /* _mesa_function_pool[13766]: VertexAttrib4fvARB (will be remapped) */
+ "ip\0"
+ "glVertexAttrib4fv\0"
+ "glVertexAttrib4fvARB\0"
+ "\0"
+ /* _mesa_function_pool[13809]: VertexAttrib1dv (will be remapped) */
+ "ip\0"
+ "glVertexAttrib1dv\0"
+ "glVertexAttrib1dvARB\0"
+ "\0"
+ /* _mesa_function_pool[13852]: PixelTexGenSGIX (dynamic) */
+ "i\0"
+ "glPixelTexGenSGIX\0"
+ "\0"
+ /* _mesa_function_pool[13873]: GetnPixelMapfvARB (will be remapped) */
+ "iip\0"
+ "glGetnPixelMapfvARB\0"
+ "\0"
+ /* _mesa_function_pool[13898]: ImageTransformParameteriHP (dynamic) */
+ "iii\0"
+ "glImageTransformParameteriHP\0"
+ "\0"
+ /* _mesa_function_pool[13932]: Normal3b (offset 52) */
+ "iii\0"
+ "glNormal3b\0"
+ "\0"
+ /* _mesa_function_pool[13948]: WindowPos3dv (will be remapped) */
+ "p\0"
+ "glWindowPos3dv\0"
+ "glWindowPos3dvARB\0"
+ "glWindowPos3dvMESA\0"
+ "\0"
+ /* _mesa_function_pool[14003]: Normal3d (offset 54) */
+ "ddd\0"
+ "glNormal3d\0"
+ "\0"
+ /* _mesa_function_pool[14019]: TexGenxOES (will be remapped) */
+ "iii\0"
+ "glTexGenxOES\0"
+ "\0"
+ /* _mesa_function_pool[14037]: Normal3f (offset 56) */
+ "fff\0"
+ "glNormal3f\0"
+ "\0"
+ /* _mesa_function_pool[14053]: FogCoordPointer (will be remapped) */
+ "iip\0"
+ "glFogCoordPointer\0"
+ "glFogCoordPointerEXT\0"
+ "\0"
+ /* _mesa_function_pool[14097]: Indexi (offset 48) */
+ "i\0"
+ "glIndexi\0"
+ "\0"
+ /* _mesa_function_pool[14109]: EGLImageTargetTexture2DOES (will be remapped) */
+ "ip\0"
+ "glEGLImageTargetTexture2DOES\0"
+ "\0"
+ /* _mesa_function_pool[14142]: VertexAttribI2uiEXT (will be remapped) */
+ "iii\0"
+ "glVertexAttribI2uiEXT\0"
+ "glVertexAttribI2ui\0"
+ "\0"
+ /* _mesa_function_pool[14188]: DeleteFencesNV (dynamic) */
+ "ip\0"
+ "glDeleteFencesNV\0"
+ "\0"
+ /* _mesa_function_pool[14209]: IsRenderbuffer (will be remapped) */
+ "i\0"
+ "glIsRenderbuffer\0"
+ "glIsRenderbufferEXT\0"
+ "glIsRenderbufferOES\0"
+ "\0"
+ /* _mesa_function_pool[14269]: DepthMask (offset 211) */
+ "i\0"
+ "glDepthMask\0"
+ "\0"
+ /* _mesa_function_pool[14284]: SecondaryColor3us (will be remapped) */
+ "iii\0"
+ "glSecondaryColor3us\0"
+ "glSecondaryColor3usEXT\0"
+ "\0"
+ /* _mesa_function_pool[14332]: Indexf (offset 46) */
+ "f\0"
+ "glIndexf\0"
+ "\0"
+ /* _mesa_function_pool[14344]: GetImageTransformParameterivHP (dynamic) */
+ "iip\0"
+ "glGetImageTransformParameterivHP\0"
+ "\0"
+ /* _mesa_function_pool[14382]: Indexd (offset 44) */
+ "d\0"
+ "glIndexd\0"
+ "\0"
+ /* _mesa_function_pool[14394]: GetMaterialiv (offset 270) */
+ "iip\0"
+ "glGetMaterialiv\0"
+ "\0"
+ /* _mesa_function_pool[14415]: StencilOp (offset 244) */
+ "iii\0"
+ "glStencilOp\0"
+ "\0"
+ /* _mesa_function_pool[14432]: WindowPos4ivMESA (will be remapped) */
+ "p\0"
+ "glWindowPos4ivMESA\0"
+ "\0"
+ /* _mesa_function_pool[14454]: FramebufferTextureLayer (will be remapped) */
+ "iiiii\0"
+ "glFramebufferTextureLayer\0"
+ "glFramebufferTextureLayerARB\0"
+ "glFramebufferTextureLayerEXT\0"
+ "\0"
+ /* _mesa_function_pool[14545]: GetShaderInfoLog (will be remapped) */
+ "iipp\0"
+ "glGetShaderInfoLog\0"
+ "\0"
+ /* _mesa_function_pool[14570]: TexEnvfv (offset 185) */
+ "iip\0"
+ "glTexEnvfv\0"
+ "\0"
+ /* _mesa_function_pool[14586]: DrawTexfOES (will be remapped) */
+ "fffff\0"
+ "glDrawTexfOES\0"
+ "\0"
+ /* _mesa_function_pool[14607]: Indexs (offset 50) */
+ "i\0"
+ "glIndexs\0"
+ "\0"
+ /* _mesa_function_pool[14619]: TexCoordP3ui (will be remapped) */
+ "ii\0"
+ "glTexCoordP3ui\0"
+ "\0"
+ /* _mesa_function_pool[14638]: ResizeBuffersMESA (will be remapped) */
+ "\0"
+ "glResizeBuffersMESA\0"
+ "\0"
+ /* _mesa_function_pool[14660]: MultiTexCoordP1uiv (will be remapped) */
+ "iip\0"
+ "glMultiTexCoordP1uiv\0"
+ "\0"
+ /* _mesa_function_pool[14686]: BlendFuncSeparateiARB (will be remapped) */
+ "iiiii\0"
+ "glBlendFuncSeparateiARB\0"
+ "glBlendFuncSeparateIndexedAMD\0"
+ "\0"
+ /* _mesa_function_pool[14747]: PixelTexGenParameteriSGIS (dynamic) */
+ "ii\0"
+ "glPixelTexGenParameteriSGIS\0"
+ "\0"
+ /* _mesa_function_pool[14779]: MultiTexCoordP2uiv (will be remapped) */
+ "iip\0"
+ "glMultiTexCoordP2uiv\0"
+ "\0"
+ /* _mesa_function_pool[14805]: VertexPointervINTEL (dynamic) */
+ "iip\0"
+ "glVertexPointervINTEL\0"
+ "\0"
+ /* _mesa_function_pool[14832]: Vertex2i (offset 130) */
+ "ii\0"
+ "glVertex2i\0"
+ "\0"
+ /* _mesa_function_pool[14847]: GetFragDataIndex (will be remapped) */
+ "ip\0"
+ "glGetFragDataIndex\0"
+ "\0"
+ /* _mesa_function_pool[14870]: LoadMatrixf (offset 291) */
+ "p\0"
+ "glLoadMatrixf\0"
+ "\0"
+ /* _mesa_function_pool[14887]: Vertex2f (offset 128) */
+ "ff\0"
+ "glVertex2f\0"
+ "\0"
+ /* _mesa_function_pool[14902]: ReplacementCodeuiColor4fNormal3fVertex3fvSUN (dynamic) */
+ "pppp\0"
+ "glReplacementCodeuiColor4fNormal3fVertex3fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[14955]: Color4bv (offset 26) */
+ "p\0"
+ "glColor4bv\0"
+ "\0"
+ /* _mesa_function_pool[14969]: VertexPointer (offset 321) */
+ "iiip\0"
+ "glVertexPointer\0"
+ "\0"
+ /* _mesa_function_pool[14991]: VertexAttribP1ui (will be remapped) */
+ "iiii\0"
+ "glVertexAttribP1ui\0"
+ "\0"
+ /* _mesa_function_pool[15016]: StartInstrumentsSGIX (dynamic) */
+ "\0"
+ "glStartInstrumentsSGIX\0"
+ "\0"
+ /* _mesa_function_pool[15041]: LoadMatrixx (will be remapped) */
+ "p\0"
+ "glLoadMatrixxOES\0"
+ "glLoadMatrixx\0"
+ "\0"
+ /* _mesa_function_pool[15075]: GetCompressedTexImage (will be remapped) */
+ "iip\0"
+ "glGetCompressedTexImage\0"
+ "glGetCompressedTexImageARB\0"
+ "\0"
+ /* _mesa_function_pool[15131]: VertexAttrib2fvNV (will be remapped) */
+ "ip\0"
+ "glVertexAttrib2fvNV\0"
+ "\0"
+ /* _mesa_function_pool[15155]: ProgramLocalParameter4dvARB (will be remapped) */
+ "iip\0"
+ "glProgramLocalParameter4dvARB\0"
+ "\0"
+ /* _mesa_function_pool[15190]: DeleteLists (offset 4) */
+ "ii\0"
+ "glDeleteLists\0"
+ "\0"
+ /* _mesa_function_pool[15208]: LogicOp (offset 242) */
+ "i\0"
+ "glLogicOp\0"
+ "\0"
+ /* _mesa_function_pool[15221]: MatrixIndexuivARB (dynamic) */
+ "ip\0"
+ "glMatrixIndexuivARB\0"
+ "\0"
+ /* _mesa_function_pool[15245]: Vertex2s (offset 132) */
+ "ii\0"
+ "glVertex2s\0"
+ "\0"
+ /* _mesa_function_pool[15260]: RenderbufferStorageMultisample (will be remapped) */
+ "iiiii\0"
+ "glRenderbufferStorageMultisample\0"
+ "glRenderbufferStorageMultisampleEXT\0"
+ "\0"
+ /* _mesa_function_pool[15336]: TexCoord4fv (offset 121) */
+ "p\0"
+ "glTexCoord4fv\0"
+ "\0"
+ /* _mesa_function_pool[15353]: ActiveTexture (offset 374) */
+ "i\0"
+ "glActiveTexture\0"
+ "glActiveTextureARB\0"
+ "\0"
+ /* _mesa_function_pool[15391]: GlobalAlphaFactorfSUN (dynamic) */
+ "f\0"
+ "glGlobalAlphaFactorfSUN\0"
+ "\0"
+ /* _mesa_function_pool[15418]: VertexAttribP1uiv (will be remapped) */
+ "iiip\0"
+ "glVertexAttribP1uiv\0"
+ "\0"
+ /* _mesa_function_pool[15444]: IsProgram (will be remapped) */
+ "i\0"
+ "glIsProgram\0"
+ "\0"
+ /* _mesa_function_pool[15459]: SecondaryColor3bv (will be remapped) */
+ "p\0"
+ "glSecondaryColor3bv\0"
+ "glSecondaryColor3bvEXT\0"
+ "\0"
+ /* _mesa_function_pool[15505]: GlobalAlphaFactorusSUN (dynamic) */
+ "i\0"
+ "glGlobalAlphaFactorusSUN\0"
+ "\0"
+ /* _mesa_function_pool[15533]: Uniform2uiv (will be remapped) */
+ "iip\0"
+ "glUniform2uivEXT\0"
+ "glUniform2uiv\0"
+ "\0"
+ /* _mesa_function_pool[15569]: ColorP4uiv (will be remapped) */
+ "ip\0"
+ "glColorP4uiv\0"
+ "\0"
+ /* _mesa_function_pool[15586]: TextureRangeAPPLE (dynamic) */
+ "iip\0"
+ "glTextureRangeAPPLE\0"
+ "\0"
+ /* _mesa_function_pool[15611]: ClearBufferuiv (will be remapped) */
+ "iip\0"
+ "glClearBufferuiv\0"
+ "\0"
+ /* _mesa_function_pool[15633]: VertexAttrib1dvNV (will be remapped) */
+ "ip\0"
+ "glVertexAttrib1dvNV\0"
+ "\0"
+ /* _mesa_function_pool[15657]: VertexAttrib1fvNV (will be remapped) */
+ "ip\0"
+ "glVertexAttrib1fvNV\0"
+ "\0"
+ /* _mesa_function_pool[15681]: Uniform1ui (will be remapped) */
+ "ii\0"
+ "glUniform1uiEXT\0"
+ "glUniform1ui\0"
+ "\0"
+ /* _mesa_function_pool[15714]: GenTextures (offset 328) */
+ "ip\0"
+ "glGenTextures\0"
+ "glGenTexturesEXT\0"
+ "\0"
+ /* _mesa_function_pool[15749]: MultiTexCoordP4uiv (will be remapped) */
+ "iip\0"
+ "glMultiTexCoordP4uiv\0"
+ "\0"
+ /* _mesa_function_pool[15775]: GetCombinerOutputParameterivNV (dynamic) */
+ "iiip\0"
+ "glGetCombinerOutputParameterivNV\0"
+ "\0"
+ /* _mesa_function_pool[15814]: PixelTexGenParameterivSGIS (dynamic) */
+ "ip\0"
+ "glPixelTexGenParameterivSGIS\0"
+ "\0"
+ /* _mesa_function_pool[15847]: TextureNormalEXT (dynamic) */
+ "i\0"
+ "glTextureNormalEXT\0"
+ "\0"
+ /* _mesa_function_pool[15869]: WindowPos3d (will be remapped) */
+ "ddd\0"
+ "glWindowPos3d\0"
+ "glWindowPos3dARB\0"
+ "glWindowPos3dMESA\0"
+ "\0"
+ /* _mesa_function_pool[15923]: Enablei (will be remapped) */
+ "ii\0"
+ "glEnableIndexedEXT\0"
+ "glEnablei\0"
+ "\0"
+ /* _mesa_function_pool[15956]: WindowPos3f (will be remapped) */
+ "fff\0"
+ "glWindowPos3f\0"
+ "glWindowPos3fARB\0"
+ "glWindowPos3fMESA\0"
+ "\0"
+ /* _mesa_function_pool[16010]: SecondaryColor3ub (will be remapped) */
+ "iii\0"
+ "glSecondaryColor3ub\0"
+ "glSecondaryColor3ubEXT\0"
+ "\0"
+ /* _mesa_function_pool[16058]: FinalCombinerInputNV (dynamic) */
+ "iiii\0"
+ "glFinalCombinerInputNV\0"
+ "\0"
+ /* _mesa_function_pool[16087]: GenProgramsARB (will be remapped) */
+ "ip\0"
+ "glGenProgramsARB\0"
+ "glGenProgramsNV\0"
+ "\0"
+ /* _mesa_function_pool[16124]: MultiTexCoordP3ui (will be remapped) */
+ "iii\0"
+ "glMultiTexCoordP3ui\0"
+ "\0"
+ /* _mesa_function_pool[16149]: RasterPos2sv (offset 69) */
+ "p\0"
+ "glRasterPos2sv\0"
+ "\0"
+ /* _mesa_function_pool[16167]: Color4ubv (offset 36) */
+ "p\0"
+ "glColor4ubv\0"
+ "\0"
+ /* _mesa_function_pool[16182]: DrawBuffer (offset 202) */
+ "i\0"
+ "glDrawBuffer\0"
+ "\0"
+ /* _mesa_function_pool[16198]: TexCoord2fv (offset 105) */
+ "p\0"
+ "glTexCoord2fv\0"
+ "\0"
+ /* _mesa_function_pool[16215]: BeginFragmentShaderATI (will be remapped) */
+ "\0"
+ "glBeginFragmentShaderATI\0"
+ "\0"
+ /* _mesa_function_pool[16242]: WindowPos4fMESA (will be remapped) */
+ "ffff\0"
+ "glWindowPos4fMESA\0"
+ "\0"
+ /* _mesa_function_pool[16266]: MultiTexCoord4iv (offset 405) */
+ "ip\0"
+ "glMultiTexCoord4iv\0"
+ "glMultiTexCoord4ivARB\0"
+ "\0"
+ /* _mesa_function_pool[16311]: TexCoord1sv (offset 101) */
+ "p\0"
+ "glTexCoord1sv\0"
+ "\0"
+ /* _mesa_function_pool[16328]: WindowPos2i (will be remapped) */
+ "ii\0"
+ "glWindowPos2i\0"
+ "glWindowPos2iARB\0"
+ "glWindowPos2iMESA\0"
+ "\0"
+ /* _mesa_function_pool[16381]: WindowPos3s (will be remapped) */
+ "iii\0"
+ "glWindowPos3s\0"
+ "glWindowPos3sARB\0"
+ "glWindowPos3sMESA\0"
+ "\0"
+ /* _mesa_function_pool[16435]: VertexAttribP4ui (will be remapped) */
+ "iiii\0"
+ "glVertexAttribP4ui\0"
+ "\0"
+ /* _mesa_function_pool[16460]: DepthFunc (offset 245) */
+ "i\0"
+ "glDepthFunc\0"
+ "\0"
+ /* _mesa_function_pool[16475]: PixelMapusv (offset 253) */
+ "iip\0"
+ "glPixelMapusv\0"
+ "\0"
+ /* _mesa_function_pool[16494]: GetSamplerParameterIiv (will be remapped) */
+ "iip\0"
+ "glGetSamplerParameterIiv\0"
+ "\0"
+ /* _mesa_function_pool[16524]: IsSampler (will be remapped) */
+ "i\0"
+ "glIsSampler\0"
+ "\0"
+ /* _mesa_function_pool[16539]: BlendFunc (offset 241) */
+ "ii\0"
+ "glBlendFunc\0"
+ "\0"
+ /* _mesa_function_pool[16555]: Uniform4i (will be remapped) */
+ "iiiii\0"
+ "glUniform4i\0"
+ "glUniform4iARB\0"
+ "\0"
+ /* _mesa_function_pool[16589]: ColorP3ui (will be remapped) */
+ "ii\0"
+ "glColorP3ui\0"
+ "\0"
+ /* _mesa_function_pool[16605]: BufferParameteriAPPLE (will be remapped) */
+ "iii\0"
+ "glBufferParameteriAPPLE\0"
+ "\0"
+ /* _mesa_function_pool[16634]: CompressedTexImage2D (will be remapped) */
+ "iiiiiiip\0"
+ "glCompressedTexImage2D\0"
+ "glCompressedTexImage2DARB\0"
+ "\0"
+ /* _mesa_function_pool[16693]: Materialxv (will be remapped) */
+ "iip\0"
+ "glMaterialxvOES\0"
+ "glMaterialxv\0"
+ "\0"
+ /* _mesa_function_pool[16727]: DeleteObjectARB (will be remapped) */
+ "i\0"
+ "glDeleteObjectARB\0"
+ "\0"
+ /* _mesa_function_pool[16748]: GetShaderPrecisionFormat (will be remapped) */
+ "iipp\0"
+ "glGetShaderPrecisionFormat\0"
+ "\0"
+ /* _mesa_function_pool[16781]: GetBooleani_v (will be remapped) */
+ "iip\0"
+ "glGetBooleanIndexedvEXT\0"
+ "glGetBooleani_v\0"
+ "\0"
+ /* _mesa_function_pool[16826]: ProgramNamedParameter4dvNV (will be remapped) */
+ "iipp\0"
+ "glProgramNamedParameter4dvNV\0"
+ "\0"
+ /* _mesa_function_pool[16861]: Tangent3fvEXT (dynamic) */
+ "p\0"
+ "glTangent3fvEXT\0"
+ "\0"
+ /* _mesa_function_pool[16880]: Flush (offset 217) */
+ "\0"
+ "glFlush\0"
+ "\0"
+ /* _mesa_function_pool[16890]: Color4uiv (offset 38) */
+ "p\0"
+ "glColor4uiv\0"
+ "\0"
+ /* _mesa_function_pool[16905]: MultiTexCoord1sv (offset 383) */
+ "ip\0"
+ "glMultiTexCoord1sv\0"
+ "glMultiTexCoord1svARB\0"
+ "\0"
+ /* _mesa_function_pool[16950]: VDPAUIsSurfaceNV (will be remapped) */
+ "i\0"
+ "glVDPAUIsSurfaceNV\0"
+ "\0"
+ /* _mesa_function_pool[16972]: FogCoordd (will be remapped) */
+ "d\0"
+ "glFogCoordd\0"
+ "glFogCoorddEXT\0"
+ "\0"
+ /* _mesa_function_pool[17002]: RasterPos3sv (offset 77) */
+ "p\0"
+ "glRasterPos3sv\0"
+ "\0"
+ /* _mesa_function_pool[17020]: TexCoordP2ui (will be remapped) */
+ "ii\0"
+ "glTexCoordP2ui\0"
+ "\0"
+ /* _mesa_function_pool[17039]: BindFramebufferEXT (will be remapped) */
+ "ii\0"
+ "glBindFramebufferEXT\0"
+ "\0"
+ /* _mesa_function_pool[17064]: Uniform1uiv (will be remapped) */
+ "iip\0"
+ "glUniform1uivEXT\0"
+ "glUniform1uiv\0"
+ "\0"
+ /* _mesa_function_pool[17100]: ReferencePlaneSGIX (dynamic) */
+ "p\0"
+ "glReferencePlaneSGIX\0"
+ "\0"
+ /* _mesa_function_pool[17124]: PushAttrib (offset 219) */
+ "i\0"
+ "glPushAttrib\0"
+ "\0"
+ /* _mesa_function_pool[17140]: RasterPos2i (offset 66) */
+ "ii\0"
+ "glRasterPos2i\0"
+ "\0"
+ /* _mesa_function_pool[17158]: Uniform3iv (will be remapped) */
+ "iip\0"
+ "glUniform3iv\0"
+ "glUniform3ivARB\0"
+ "\0"
+ /* _mesa_function_pool[17192]: SamplerParameteriv (will be remapped) */
+ "iip\0"
+ "glSamplerParameteriv\0"
+ "\0"
+ /* _mesa_function_pool[17218]: TexParameteriv (offset 181) */
+ "iip\0"
+ "glTexParameteriv\0"
+ "\0"
+ /* _mesa_function_pool[17240]: GetAttribLocation (will be remapped) */
+ "ip\0"
+ "glGetAttribLocation\0"
+ "glGetAttribLocationARB\0"
+ "\0"
+ /* _mesa_function_pool[17287]: TexCoord2fColor3fVertex3fSUN (dynamic) */
+ "ffffffff\0"
+ "glTexCoord2fColor3fVertex3fSUN\0"
+ "\0"
+ /* _mesa_function_pool[17328]: DeleteAsyncMarkersSGIX (dynamic) */
+ "ii\0"
+ "glDeleteAsyncMarkersSGIX\0"
+ "\0"
+ /* _mesa_function_pool[17357]: RasterPos2f (offset 64) */
+ "ff\0"
+ "glRasterPos2f\0"
+ "\0"
+ /* _mesa_function_pool[17375]: TexCoord4fVertex4fSUN (dynamic) */
+ "ffffffff\0"
+ "glTexCoord4fVertex4fSUN\0"
+ "\0"
+ /* _mesa_function_pool[17409]: RasterPos2d (offset 62) */
+ "dd\0"
+ "glRasterPos2d\0"
+ "\0"
+ /* _mesa_function_pool[17427]: VertexAttrib4iv (will be remapped) */
+ "ip\0"
+ "glVertexAttrib4iv\0"
+ "glVertexAttrib4ivARB\0"
+ "\0"
+ /* _mesa_function_pool[17470]: RasterPos3fv (offset 73) */
+ "p\0"
+ "glRasterPos3fv\0"
+ "\0"
+ /* _mesa_function_pool[17488]: CopyTexSubImage3D (offset 373) */
+ "iiiiiiiii\0"
+ "glCopyTexSubImage3D\0"
+ "glCopyTexSubImage3DEXT\0"
+ "glCopyTexSubImage3DOES\0"
+ "\0"
+ /* _mesa_function_pool[17565]: Color4ub (offset 35) */
+ "iiii\0"
+ "glColor4ub\0"
+ "\0"
+ /* _mesa_function_pool[17582]: GetInteger64v (will be remapped) */
+ "ip\0"
+ "glGetInteger64v\0"
+ "\0"
+ /* _mesa_function_pool[17602]: TextureColorMaskSGIS (dynamic) */
+ "iiii\0"
+ "glTextureColorMaskSGIS\0"
+ "\0"
+ /* _mesa_function_pool[17631]: RasterPos2s (offset 68) */
+ "ii\0"
+ "glRasterPos2s\0"
+ "\0"
+ /* _mesa_function_pool[17649]: GetColorTable (offset 343) */
+ "iiip\0"
+ "glGetColorTable\0"
+ "glGetColorTableSGI\0"
+ "glGetColorTableEXT\0"
+ "\0"
+ /* _mesa_function_pool[17709]: EndQueryIndexed (will be remapped) */
+ "ii\0"
+ "glEndQueryIndexed\0"
+ "\0"
+ /* _mesa_function_pool[17731]: SelectBuffer (offset 195) */
+ "ip\0"
+ "glSelectBuffer\0"
+ "\0"
+ /* _mesa_function_pool[17750]: Indexiv (offset 49) */
+ "p\0"
+ "glIndexiv\0"
+ "\0"
+ /* _mesa_function_pool[17763]: TexCoord3i (offset 114) */
+ "iii\0"
+ "glTexCoord3i\0"
+ "\0"
+ /* _mesa_function_pool[17781]: CopyColorTable (offset 342) */
+ "iiiii\0"
+ "glCopyColorTable\0"
+ "glCopyColorTableSGI\0"
+ "\0"
+ /* _mesa_function_pool[17825]: PointParameterfv (will be remapped) */
+ "ip\0"
+ "glPointParameterfv\0"
+ "glPointParameterfvARB\0"
+ "glPointParameterfvEXT\0"
+ "glPointParameterfvSGIS\0"
+ "\0"
+ /* _mesa_function_pool[17915]: GetHistogramParameterfv (offset 362) */
+ "iip\0"
+ "glGetHistogramParameterfv\0"
+ "glGetHistogramParameterfvEXT\0"
+ "\0"
+ /* _mesa_function_pool[17975]: Frustum (offset 289) */
+ "dddddd\0"
+ "glFrustum\0"
+ "\0"
+ /* _mesa_function_pool[17993]: GetString (offset 275) */
+ "i\0"
+ "glGetString\0"
+ "\0"
+ /* _mesa_function_pool[18008]: ColorPointervINTEL (dynamic) */
+ "iip\0"
+ "glColorPointervINTEL\0"
+ "\0"
+ /* _mesa_function_pool[18034]: TexEnvf (offset 184) */
+ "iif\0"
+ "glTexEnvf\0"
+ "\0"
+ /* _mesa_function_pool[18049]: GetTexGenxvOES (will be remapped) */
+ "iip\0"
+ "glGetTexGenxvOES\0"
+ "\0"
+ /* _mesa_function_pool[18071]: TexCoord3d (offset 110) */
+ "ddd\0"
+ "glTexCoord3d\0"
+ "\0"
+ /* _mesa_function_pool[18089]: AlphaFragmentOp1ATI (will be remapped) */
+ "iiiiii\0"
+ "glAlphaFragmentOp1ATI\0"
+ "\0"
+ /* _mesa_function_pool[18119]: TexCoord3f (offset 112) */
+ "fff\0"
+ "glTexCoord3f\0"
+ "\0"
+ /* _mesa_function_pool[18137]: GetnHistogramARB (will be remapped) */
+ "iiiiip\0"
+ "glGetnHistogramARB\0"
+ "\0"
+ /* _mesa_function_pool[18164]: DeleteTextures (offset 327) */
+ "ip\0"
+ "glDeleteTextures\0"
+ "glDeleteTexturesEXT\0"
+ "\0"
+ /* _mesa_function_pool[18205]: TexCoordPointerEXT (will be remapped) */
+ "iiiip\0"
+ "glTexCoordPointerEXT\0"
+ "\0"
+ /* _mesa_function_pool[18233]: TexSubImage4DSGIS (dynamic) */
+ "iiiiiiiiiiiip\0"
+ "glTexSubImage4DSGIS\0"
+ "\0"
+ /* _mesa_function_pool[18268]: TexCoord3s (offset 116) */
+ "iii\0"
+ "glTexCoord3s\0"
+ "\0"
+ /* _mesa_function_pool[18286]: GetTexLevelParameteriv (offset 285) */
+ "iiip\0"
+ "glGetTexLevelParameteriv\0"
+ "\0"
+ /* _mesa_function_pool[18317]: GetClipPlanef (will be remapped) */
+ "ip\0"
+ "glGetClipPlanefOES\0"
+ "glGetClipPlanef\0"
+ "\0"
+ /* _mesa_function_pool[18356]: VertexAttribPointer (will be remapped) */
+ "iiiiip\0"
+ "glVertexAttribPointer\0"
+ "glVertexAttribPointerARB\0"
+ "\0"
+ /* _mesa_function_pool[18411]: TexStorage2DMultisample (will be remapped) */
+ "iiiiii\0"
+ "glTexStorage2DMultisample\0"
+ "\0"
+ /* _mesa_function_pool[18445]: VertexAttribP4uiv (will be remapped) */
+ "iiip\0"
+ "glVertexAttribP4uiv\0"
+ "\0"
+ /* _mesa_function_pool[18471]: StopInstrumentsSGIX (dynamic) */
+ "i\0"
+ "glStopInstrumentsSGIX\0"
+ "\0"
+ /* _mesa_function_pool[18496]: SecondaryColor3s (will be remapped) */
+ "iii\0"
+ "glSecondaryColor3s\0"
+ "glSecondaryColor3sEXT\0"
+ "\0"
+ /* _mesa_function_pool[18542]: ClearAccum (offset 204) */
+ "ffff\0"
+ "glClearAccum\0"
+ "\0"
+ /* _mesa_function_pool[18561]: DeformSGIX (dynamic) */
+ "i\0"
+ "glDeformSGIX\0"
+ "\0"
+ /* _mesa_function_pool[18577]: InvalidateBufferSubData (will be remapped) */
+ "iii\0"
+ "glInvalidateBufferSubData\0"
+ "\0"
+ /* _mesa_function_pool[18608]: Uniform3i (will be remapped) */
+ "iiii\0"
+ "glUniform3i\0"
+ "glUniform3iARB\0"
+ "\0"
+ /* _mesa_function_pool[18641]: TexCoord4iv (offset 123) */
+ "p\0"
+ "glTexCoord4iv\0"
+ "\0"
+ /* _mesa_function_pool[18658]: TexStorage3D (will be remapped) */
+ "iiiiii\0"
+ "glTexStorage3D\0"
+ "\0"
+ /* _mesa_function_pool[18681]: UniformMatrix4x2fv (will be remapped) */
+ "iiip\0"
+ "glUniformMatrix4x2fv\0"
+ "\0"
+ /* _mesa_function_pool[18708]: GetDetailTexFuncSGIS (dynamic) */
+ "ip\0"
+ "glGetDetailTexFuncSGIS\0"
+ "\0"
+ /* _mesa_function_pool[18735]: WindowPos3i (will be remapped) */
+ "iii\0"
+ "glWindowPos3i\0"
+ "glWindowPos3iARB\0"
+ "glWindowPos3iMESA\0"
+ "\0"
+ /* _mesa_function_pool[18789]: SecondaryColor3b (will be remapped) */
+ "iii\0"
+ "glSecondaryColor3b\0"
+ "glSecondaryColor3bEXT\0"
+ "\0"
+ /* _mesa_function_pool[18835]: FramebufferTexture3D (will be remapped) */
+ "iiiiii\0"
+ "glFramebufferTexture3D\0"
+ "glFramebufferTexture3DEXT\0"
+ "glFramebufferTexture3DOES\0"
+ "\0"
+ /* _mesa_function_pool[18918]: SamplerParameterIiv (will be remapped) */
+ "iip\0"
+ "glSamplerParameterIiv\0"
+ "\0"
+ /* _mesa_function_pool[18945]: PolygonOffset (offset 319) */
+ "ff\0"
+ "glPolygonOffset\0"
+ "\0"
+ /* _mesa_function_pool[18965]: BindVertexArray (will be remapped) */
+ "i\0"
+ "glBindVertexArray\0"
+ "glBindVertexArrayOES\0"
+ "\0"
+ /* _mesa_function_pool[19007]: Color4ubVertex2fvSUN (dynamic) */
+ "pp\0"
+ "glColor4ubVertex2fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[19034]: GetProgramBinary (will be remapped) */
+ "iippp\0"
+ "glGetProgramBinary\0"
+ "glGetProgramBinaryOES\0"
+ "\0"
+ /* _mesa_function_pool[19082]: GetBufferParameteriv (will be remapped) */
+ "iip\0"
+ "glGetBufferParameteriv\0"
+ "glGetBufferParameterivARB\0"
+ "\0"
+ /* _mesa_function_pool[19136]: Rectd (offset 86) */
+ "dddd\0"
+ "glRectd\0"
+ "\0"
+ /* _mesa_function_pool[19150]: TexFilterFuncSGIS (dynamic) */
+ "iiip\0"
+ "glTexFilterFuncSGIS\0"
+ "\0"
+ /* _mesa_function_pool[19176]: NormalPointervINTEL (dynamic) */
+ "ip\0"
+ "glNormalPointervINTEL\0"
+ "\0"
+ /* _mesa_function_pool[19202]: ProvokingVertex (will be remapped) */
+ "i\0"
+ "glProvokingVertexEXT\0"
+ "glProvokingVertex\0"
+ "\0"
+ /* _mesa_function_pool[19244]: SamplerParameterfv (will be remapped) */
+ "iip\0"
+ "glSamplerParameterfv\0"
+ "\0"
+ /* _mesa_function_pool[19270]: MultiTexCoord1i (offset 380) */
+ "ii\0"
+ "glMultiTexCoord1i\0"
+ "glMultiTexCoord1iARB\0"
+ "\0"
+ /* _mesa_function_pool[19313]: WindowPos2dv (will be remapped) */
+ "p\0"
+ "glWindowPos2dv\0"
+ "glWindowPos2dvARB\0"
+ "glWindowPos2dvMESA\0"
+ "\0"
+ /* _mesa_function_pool[19368]: GetProgramParameterdvNV (will be remapped) */
+ "iiip\0"
+ "glGetProgramParameterdvNV\0"
+ "\0"
+ /* _mesa_function_pool[19400]: VertexAttrib3fNV (will be remapped) */
+ "ifff\0"
+ "glVertexAttrib3fNV\0"
+ "\0"
+ /* _mesa_function_pool[19425]: RasterPos3i (offset 74) */
+ "iii\0"
+ "glRasterPos3i\0"
+ "\0"
+ /* _mesa_function_pool[19444]: GetFragmentLightfvSGIX (dynamic) */
+ "iip\0"
+ "glGetFragmentLightfvSGIX\0"
+ "\0"
+ /* _mesa_function_pool[19474]: PointParameterxv (will be remapped) */
+ "ip\0"
+ "glPointParameterxvOES\0"
+ "glPointParameterxv\0"
+ "\0"
+ /* _mesa_function_pool[19519]: MultiTexCoord1d (offset 376) */
+ "id\0"
+ "glMultiTexCoord1d\0"
+ "glMultiTexCoord1dARB\0"
+ "\0"
+ /* _mesa_function_pool[19562]: DetailTexFuncSGIS (dynamic) */
+ "iip\0"
+ "glDetailTexFuncSGIS\0"
+ "\0"
+ /* _mesa_function_pool[19587]: Normal3fVertex3fSUN (dynamic) */
+ "ffffff\0"
+ "glNormal3fVertex3fSUN\0"
+ "\0"
+ /* _mesa_function_pool[19617]: CopyTexImage2D (offset 324) */
+ "iiiiiiii\0"
+ "glCopyTexImage2D\0"
+ "glCopyTexImage2DEXT\0"
+ "\0"
+ /* _mesa_function_pool[19664]: FlushMappedBufferRange (will be remapped) */
+ "iii\0"
+ "glFlushMappedBufferRange\0"
+ "glFlushMappedBufferRangeEXT\0"
+ "\0"
+ /* _mesa_function_pool[19722]: MultiTexCoord2dv (offset 385) */
+ "ip\0"
+ "glMultiTexCoord2dv\0"
+ "glMultiTexCoord2dvARB\0"
+ "\0"
+ /* _mesa_function_pool[19767]: ProgramEnvParameter4fARB (will be remapped) */
+ "iiffff\0"
+ "glProgramEnvParameter4fARB\0"
+ "glProgramParameter4fNV\0"
+ "\0"
+ /* _mesa_function_pool[19825]: GenVertexArraysAPPLE (will be remapped) */
+ "ip\0"
+ "glGenVertexArraysAPPLE\0"
+ "\0"
+ /* _mesa_function_pool[19852]: Lightfv (offset 160) */
+ "iip\0"
+ "glLightfv\0"
+ "\0"
+ /* _mesa_function_pool[19867]: GetFramebufferAttachmentParameteriv (will be remapped) */
+ "iiip\0"
+ "glGetFramebufferAttachmentParameteriv\0"
+ "glGetFramebufferAttachmentParameterivEXT\0"
+ "glGetFramebufferAttachmentParameterivOES\0"
+ "\0"
+ /* _mesa_function_pool[19993]: MultiTexCoord1s (offset 382) */
+ "ii\0"
+ "glMultiTexCoord1s\0"
+ "glMultiTexCoord1sARB\0"
+ "\0"
+ /* _mesa_function_pool[20036]: VertexAttribI4ivEXT (will be remapped) */
+ "ip\0"
+ "glVertexAttribI4ivEXT\0"
+ "glVertexAttribI4iv\0"
+ "\0"
+ /* _mesa_function_pool[20081]: ClearDepth (offset 208) */
+ "d\0"
+ "glClearDepth\0"
+ "\0"
+ /* _mesa_function_pool[20097]: GetFenceivNV (dynamic) */
+ "iip\0"
+ "glGetFenceivNV\0"
+ "\0"
+ /* _mesa_function_pool[20117]: GetVertexAttribPointerv (will be remapped) */
+ "iip\0"
+ "glGetVertexAttribPointerv\0"
+ "glGetVertexAttribPointervARB\0"
+ "glGetVertexAttribPointervNV\0"
+ "\0"
+ /* _mesa_function_pool[20205]: ColorSubTable (offset 346) */
+ "iiiiip\0"
+ "glColorSubTable\0"
+ "glColorSubTableEXT\0"
+ "\0"
+ /* _mesa_function_pool[20248]: Color4fv (offset 30) */
+ "p\0"
+ "glColor4fv\0"
+ "\0"
+ /* _mesa_function_pool[20262]: EndPerfMonitorAMD (will be remapped) */
+ "i\0"
+ "glEndPerfMonitorAMD\0"
+ "\0"
+ /* _mesa_function_pool[20285]: GetnMinmaxARB (will be remapped) */
+ "iiiiip\0"
+ "glGetnMinmaxARB\0"
+ "\0"
+ /* _mesa_function_pool[20309]: ProgramLocalParameters4fvEXT (will be remapped) */
+ "iiip\0"
+ "glProgramLocalParameters4fvEXT\0"
+ "\0"
+ /* _mesa_function_pool[20346]: BeginConditionalRender (will be remapped) */
+ "ii\0"
+ "glBeginConditionalRender\0"
+ "glBeginConditionalRenderNV\0"
+ "\0"
+ /* _mesa_function_pool[20402]: TexCoord4fColor4fNormal3fVertex4fSUN (dynamic) */
+ "fffffffffffffff\0"
+ "glTexCoord4fColor4fNormal3fVertex4fSUN\0"
+ "\0"
+ /* _mesa_function_pool[20458]: VertexAttribI1uiv (will be remapped) */
+ "ip\0"
+ "glVertexAttribI1uivEXT\0"
+ "glVertexAttribI1uiv\0"
+ "\0"
+ /* _mesa_function_pool[20505]: ColorPointer (offset 308) */
+ "iiip\0"
+ "glColorPointer\0"
+ "\0"
+ /* _mesa_function_pool[20526]: Rects (offset 92) */
+ "iiii\0"
+ "glRects\0"
+ "\0"
+ /* _mesa_function_pool[20540]: GetMapAttribParameterfvNV (dynamic) */
+ "iiip\0"
+ "glGetMapAttribParameterfvNV\0"
+ "\0"
+ /* _mesa_function_pool[20574]: ClearColorx (will be remapped) */
+ "iiii\0"
+ "glClearColorxOES\0"
+ "glClearColorx\0"
+ "\0"
+ /* _mesa_function_pool[20611]: MultiTexCoordP2ui (will be remapped) */
+ "iii\0"
+ "glMultiTexCoordP2ui\0"
+ "\0"
+ /* _mesa_function_pool[20636]: ActiveProgramEXT (will be remapped) */
+ "i\0"
+ "glActiveProgramEXT\0"
+ "\0"
+ /* _mesa_function_pool[20658]: Lightiv (offset 162) */
+ "iip\0"
+ "glLightiv\0"
+ "\0"
+ /* _mesa_function_pool[20673]: Tangent3svEXT (dynamic) */
+ "p\0"
+ "glTangent3svEXT\0"
+ "\0"
+ /* _mesa_function_pool[20692]: TexCoordPointervINTEL (dynamic) */
+ "iip\0"
+ "glTexCoordPointervINTEL\0"
+ "\0"
+ /* _mesa_function_pool[20721]: GetTexParameteriv (offset 283) */
+ "iip\0"
+ "glGetTexParameteriv\0"
+ "\0"
+ /* _mesa_function_pool[20746]: MapParameterivNV (dynamic) */
+ "iip\0"
+ "glMapParameterivNV\0"
+ "\0"
+ /* _mesa_function_pool[20770]: VertexAttribs4dvNV (will be remapped) */
+ "iip\0"
+ "glVertexAttribs4dvNV\0"
+ "\0"
+ /* _mesa_function_pool[20796]: VertexAttrib3sv (will be remapped) */
+ "ip\0"
+ "glVertexAttrib3sv\0"
+ "glVertexAttrib3svARB\0"
+ "\0"
+ /* _mesa_function_pool[20839]: IsQuery (will be remapped) */
+ "i\0"
+ "glIsQuery\0"
+ "glIsQueryARB\0"
+ "\0"
+ /* _mesa_function_pool[20865]: ClearBufferfv (will be remapped) */
+ "iip\0"
+ "glClearBufferfv\0"
+ "\0"
+ /* _mesa_function_pool[20886]: PrimitiveRestartNV (will be remapped) */
+ "\0"
+ "glPrimitiveRestartNV\0"
+ "\0"
+ /* _mesa_function_pool[20909]: EdgeFlagPointerEXT (will be remapped) */
+ "iip\0"
+ "glEdgeFlagPointerEXT\0"
+ "\0"
+ /* _mesa_function_pool[20935]: IsVertexArray (will be remapped) */
+ "i\0"
+ "glIsVertexArray\0"
+ "glIsVertexArrayAPPLE\0"
+ "glIsVertexArrayOES\0"
+ "\0"
+ /* _mesa_function_pool[20994]: GetMultisamplefv (will be remapped) */
+ "iip\0"
+ "glGetMultisamplefv\0"
+ "\0"
+ /* _mesa_function_pool[21018]: WeightbvARB (dynamic) */
+ "ip\0"
+ "glWeightbvARB\0"
+ "\0"
+ /* _mesa_function_pool[21036]: Rectdv (offset 87) */
+ "pp\0"
+ "glRectdv\0"
+ "\0"
+ /* _mesa_function_pool[21049]: ListParameteriSGIX (dynamic) */
+ "iii\0"
+ "glListParameteriSGIX\0"
+ "\0"
+ /* _mesa_function_pool[21075]: BlendEquationiARB (will be remapped) */
+ "ii\0"
+ "glBlendEquationiARB\0"
+ "glBlendEquationIndexedAMD\0"
+ "\0"
+ /* _mesa_function_pool[21125]: ReplacementCodeuiColor4fNormal3fVertex3fSUN (dynamic) */
+ "iffffffffff\0"
+ "glReplacementCodeuiColor4fNormal3fVertex3fSUN\0"
+ "\0"
+ /* _mesa_function_pool[21184]: VertexAttrib4dv (will be remapped) */
+ "ip\0"
+ "glVertexAttrib4dv\0"
+ "glVertexAttrib4dvARB\0"
+ "\0"
+ /* _mesa_function_pool[21227]: InstrumentsBufferSGIX (dynamic) */
+ "ip\0"
+ "glInstrumentsBufferSGIX\0"
+ "\0"
+ /* _mesa_function_pool[21255]: SharpenTexFuncSGIS (dynamic) */
+ "iip\0"
+ "glSharpenTexFuncSGIS\0"
+ "\0"
+ /* _mesa_function_pool[21281]: DrawArraysInstancedARB (will be remapped) */
+ "iiii\0"
+ "glDrawArraysInstancedARB\0"
+ "glDrawArraysInstancedEXT\0"
+ "glDrawArraysInstanced\0"
+ "\0"
+ /* _mesa_function_pool[21359]: GetTexParameterxv (will be remapped) */
+ "iip\0"
+ "glGetTexParameterxvOES\0"
+ "glGetTexParameterxv\0"
+ "\0"
+ /* _mesa_function_pool[21407]: GetAttachedShaders (will be remapped) */
+ "iipp\0"
+ "glGetAttachedShaders\0"
+ "\0"
+ /* _mesa_function_pool[21434]: DebugMessageInsert (will be remapped) */
+ "iiiiip\0"
+ "glDebugMessageInsert\0"
+ "\0"
+ /* _mesa_function_pool[21463]: Materialiv (offset 172) */
+ "iip\0"
+ "glMaterialiv\0"
+ "\0"
+ /* _mesa_function_pool[21481]: PushClientAttrib (offset 335) */
+ "i\0"
+ "glPushClientAttrib\0"
+ "\0"
+ /* _mesa_function_pool[21503]: ProgramEnvParameters4fvEXT (will be remapped) */
+ "iiip\0"
+ "glProgramEnvParameters4fvEXT\0"
+ "\0"
+ /* _mesa_function_pool[21538]: TexCoord2fColor4fNormal3fVertex3fvSUN (dynamic) */
+ "pppp\0"
+ "glTexCoord2fColor4fNormal3fVertex3fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[21584]: SecondaryColor3fvEXT (will be remapped) */
+ "p\0"
+ "glSecondaryColor3fv\0"
+ "glSecondaryColor3fvEXT\0"
+ "\0"
+ /* _mesa_function_pool[21630]: PolygonMode (offset 174) */
+ "ii\0"
+ "glPolygonMode\0"
+ "\0"
+ /* _mesa_function_pool[21648]: SecondaryColor3iv (will be remapped) */
+ "p\0"
+ "glSecondaryColor3iv\0"
+ "glSecondaryColor3ivEXT\0"
+ "\0"
+ /* _mesa_function_pool[21694]: VertexAttribIFormat (will be remapped) */
+ "iiii\0"
+ "glVertexAttribIFormat\0"
+ "\0"
+ /* _mesa_function_pool[21722]: VertexAttribI1iEXT (will be remapped) */
+ "ii\0"
+ "glVertexAttribI1iEXT\0"
+ "glVertexAttribI1i\0"
+ "\0"
+ /* _mesa_function_pool[21765]: VertexAttrib4Niv (will be remapped) */
+ "ip\0"
+ "glVertexAttrib4Niv\0"
+ "glVertexAttrib4NivARB\0"
+ "\0"
+ /* _mesa_function_pool[21810]: GetVertexAttribivNV (will be remapped) */
+ "iip\0"
+ "glGetVertexAttribivNV\0"
+ "\0"
+ /* _mesa_function_pool[21837]: GetProgramStringARB (will be remapped) */
+ "iip\0"
+ "glGetProgramStringARB\0"
+ "\0"
+ /* _mesa_function_pool[21864]: GetnUniformdvARB (will be remapped) */
+ "iiip\0"
+ "glGetnUniformdvARB\0"
+ "\0"
+ /* _mesa_function_pool[21889]: DrawElementsInstancedBaseVertex (will be remapped) */
+ "iiipii\0"
+ "glDrawElementsInstancedBaseVertex\0"
+ "\0"
+ /* _mesa_function_pool[21931]: LinkProgram (will be remapped) */
+ "i\0"
+ "glLinkProgram\0"
+ "glLinkProgramARB\0"
+ "\0"
+ /* _mesa_function_pool[21965]: TexBumpParameterfvATI (will be remapped) */
+ "ip\0"
+ "glTexBumpParameterfvATI\0"
+ "\0"
+ /* _mesa_function_pool[21993]: Tangent3ivEXT (dynamic) */
+ "p\0"
+ "glTangent3ivEXT\0"
+ "\0"
+ /* _mesa_function_pool[22012]: Uniform1f (will be remapped) */
+ "if\0"
+ "glUniform1f\0"
+ "glUniform1fARB\0"
+ "\0"
+ /* _mesa_function_pool[22043]: DisableClientState (offset 309) */
+ "i\0"
+ "glDisableClientState\0"
+ "\0"
+ /* _mesa_function_pool[22067]: TexGeni (offset 192) */
+ "iii\0"
+ "glTexGeni\0"
+ "glTexGeniOES\0"
+ "\0"
+ /* _mesa_function_pool[22095]: TexGenf (offset 190) */
+ "iif\0"
+ "glTexGenf\0"
+ "glTexGenfOES\0"
+ "\0"
+ /* _mesa_function_pool[22123]: TexEnvx (will be remapped) */
+ "iii\0"
+ "glTexEnvxOES\0"
+ "glTexEnvx\0"
+ "\0"
+ /* _mesa_function_pool[22151]: TexGend (offset 188) */
+ "iid\0"
+ "glTexGend\0"
+ "\0"
+ /* _mesa_function_pool[22166]: Uniform1i (will be remapped) */
+ "ii\0"
+ "glUniform1i\0"
+ "glUniform1iARB\0"
+ "\0"
+ /* _mesa_function_pool[22197]: GetPolygonStipple (offset 274) */
+ "p\0"
+ "glGetPolygonStipple\0"
+ "\0"
+ /* _mesa_function_pool[22220]: VertexAttrib4d (will be remapped) */
+ "idddd\0"
+ "glVertexAttrib4d\0"
+ "glVertexAttrib4dARB\0"
+ "\0"
+ /* _mesa_function_pool[22264]: GetVertexAttribfvNV (will be remapped) */
+ "iip\0"
+ "glGetVertexAttribfvNV\0"
+ "\0"
+ /* _mesa_function_pool[22291]: Tangent3iEXT (dynamic) */
+ "iii\0"
+ "glTangent3iEXT\0"
+ "\0"
+ /* _mesa_function_pool[22311]: DrawArraysInstancedBaseInstance (will be remapped) */
+ "iiiii\0"
+ "glDrawArraysInstancedBaseInstance\0"
+ "\0"
+ /* _mesa_function_pool[22352]: VertexAttrib2svNV (will be remapped) */
+ "ip\0"
+ "glVertexAttrib2svNV\0"
+ "\0"
+ /* _mesa_function_pool[22376]: MultMatrixx (will be remapped) */
+ "p\0"
+ "glMultMatrixxOES\0"
+ "glMultMatrixx\0"
+ "\0"
+ /* _mesa_function_pool[22410]: NormalP3uiv (will be remapped) */
+ "ip\0"
+ "glNormalP3uiv\0"
+ "\0"
+ /* _mesa_function_pool[22428]: SecondaryColorP3uiv (will be remapped) */
+ "ip\0"
+ "glSecondaryColorP3uiv\0"
+ "\0"
+ /* _mesa_function_pool[22454]: VertexAttribs1fvNV (will be remapped) */
+ "iip\0"
+ "glVertexAttribs1fvNV\0"
+ "\0"
+ /* _mesa_function_pool[22480]: GetPerfMonitorCountersAMD (will be remapped) */
+ "ippip\0"
+ "glGetPerfMonitorCountersAMD\0"
+ "\0"
+ /* _mesa_function_pool[22515]: DrawTexsvOES (will be remapped) */
+ "p\0"
+ "glDrawTexsvOES\0"
+ "\0"
+ /* _mesa_function_pool[22533]: WindowPos4sMESA (will be remapped) */
+ "iiii\0"
+ "glWindowPos4sMESA\0"
+ "\0"
+ /* _mesa_function_pool[22557]: GetnPixelMapuivARB (will be remapped) */
+ "iip\0"
+ "glGetnPixelMapuivARB\0"
+ "\0"
+ /* _mesa_function_pool[22583]: VertexAttrib4s (will be remapped) */
+ "iiiii\0"
+ "glVertexAttrib4s\0"
+ "glVertexAttrib4sARB\0"
+ "\0"
+ /* _mesa_function_pool[22627]: GetSamplerParameterIuiv (will be remapped) */
+ "iip\0"
+ "glGetSamplerParameterIuiv\0"
+ "\0"
+ /* _mesa_function_pool[22658]: ReplacementCodeusvSUN (dynamic) */
+ "p\0"
+ "glReplacementCodeusvSUN\0"
+ "\0"
+ /* _mesa_function_pool[22685]: VertexAttrib2dvNV (will be remapped) */
+ "ip\0"
+ "glVertexAttrib2dvNV\0"
+ "\0"
+ /* _mesa_function_pool[22709]: UseProgram (will be remapped) */
+ "i\0"
+ "glUseProgram\0"
+ "glUseProgramObjectARB\0"
+ "\0"
+ /* _mesa_function_pool[22747]: GlobalAlphaFactoriSUN (dynamic) */
+ "i\0"
+ "glGlobalAlphaFactoriSUN\0"
+ "\0"
+ /* _mesa_function_pool[22774]: CompileShader (will be remapped) */
+ "i\0"
+ "glCompileShader\0"
+ "glCompileShaderARB\0"
+ "\0"
+ /* _mesa_function_pool[22812]: Color4sv (offset 34) */
+ "p\0"
+ "glColor4sv\0"
+ "\0"
+ /* _mesa_function_pool[22826]: MultiModeDrawArraysIBM (will be remapped) */
+ "pppii\0"
+ "glMultiModeDrawArraysIBM\0"
+ "\0"
+ /* _mesa_function_pool[22858]: MultiTexCoord3d (offset 392) */
+ "iddd\0"
+ "glMultiTexCoord3d\0"
+ "glMultiTexCoord3dARB\0"
+ "\0"
+ /* _mesa_function_pool[22903]: LoadTransposeMatrixf (will be remapped) */
+ "p\0"
+ "glLoadTransposeMatrixf\0"
+ "glLoadTransposeMatrixfARB\0"
+ "\0"
+ /* _mesa_function_pool[22955]: LoadTransposeMatrixd (will be remapped) */
+ "p\0"
+ "glLoadTransposeMatrixd\0"
+ "glLoadTransposeMatrixdARB\0"
+ "\0"
+ /* _mesa_function_pool[23007]: FlushMappedBufferRangeAPPLE (will be remapped) */
+ "iii\0"
+ "glFlushMappedBufferRangeAPPLE\0"
+ "\0"
+ /* _mesa_function_pool[23042]: PixelZoom (offset 246) */
+ "ff\0"
+ "glPixelZoom\0"
+ "\0"
+ /* _mesa_function_pool[23058]: ReplacementCodePointerSUN (dynamic) */
+ "iip\0"
+ "glReplacementCodePointerSUN\0"
+ "\0"
+ /* _mesa_function_pool[23091]: ProgramEnvParameter4dARB (will be remapped) */
+ "iidddd\0"
+ "glProgramEnvParameter4dARB\0"
+ "glProgramParameter4dNV\0"
+ "\0"
+ /* _mesa_function_pool[23149]: ColorTableParameterfv (offset 340) */
+ "iip\0"
+ "glColorTableParameterfv\0"
+ "glColorTableParameterfvSGI\0"
+ "\0"
+ /* _mesa_function_pool[23205]: GetFragDataLocation (will be remapped) */
+ "ip\0"
+ "glGetFragDataLocationEXT\0"
+ "glGetFragDataLocation\0"
+ "\0"
+ /* _mesa_function_pool[23256]: TexStorage3DMultisample (will be remapped) */
+ "iiiiiii\0"
+ "glTexStorage3DMultisample\0"
+ "\0"
+ /* _mesa_function_pool[23291]: Binormal3bvEXT (dynamic) */
+ "p\0"
+ "glBinormal3bvEXT\0"
+ "\0"
+ /* _mesa_function_pool[23311]: PixelMapuiv (offset 252) */
+ "iip\0"
+ "glPixelMapuiv\0"
+ "\0"
+ /* _mesa_function_pool[23330]: Color3dv (offset 12) */
+ "p\0"
+ "glColor3dv\0"
+ "\0"
+ /* _mesa_function_pool[23344]: IsTexture (offset 330) */
+ "i\0"
+ "glIsTexture\0"
+ "glIsTextureEXT\0"
+ "\0"
+ /* _mesa_function_pool[23374]: VertexAttrib4fvNV (will be remapped) */
+ "ip\0"
+ "glVertexAttrib4fvNV\0"
+ "\0"
+ /* _mesa_function_pool[23398]: BeginQuery (will be remapped) */
+ "ii\0"
+ "glBeginQuery\0"
+ "glBeginQueryARB\0"
+ "\0"
+ /* _mesa_function_pool[23431]: ColorPointerEXT (will be remapped) */
+ "iiiip\0"
+ "glColorPointerEXT\0"
+ "\0"
+ /* _mesa_function_pool[23456]: VertexWeightfvEXT (dynamic) */
+ "p\0"
+ "glVertexWeightfvEXT\0"
+ "\0"
+ /* _mesa_function_pool[23479]: VertexP3uiv (will be remapped) */
+ "ip\0"
+ "glVertexP3uiv\0"
+ "\0"
+ /* _mesa_function_pool[23497]: VertexAttrib3s (will be remapped) */
+ "iiii\0"
+ "glVertexAttrib3s\0"
+ "glVertexAttrib3sARB\0"
+ "\0"
+ /* _mesa_function_pool[23540]: GetCombinerStageParameterfvNV (dynamic) */
+ "iip\0"
+ "glGetCombinerStageParameterfvNV\0"
+ "\0"
+ /* _mesa_function_pool[23577]: TexCoord4i (offset 122) */
+ "iiii\0"
+ "glTexCoord4i\0"
+ "\0"
+ /* _mesa_function_pool[23596]: Color4ubVertex2fSUN (dynamic) */
+ "iiiiff\0"
+ "glColor4ubVertex2fSUN\0"
+ "\0"
+ /* _mesa_function_pool[23626]: FragmentColorMaterialSGIX (dynamic) */
+ "ii\0"
+ "glFragmentColorMaterialSGIX\0"
+ "\0"
+ /* _mesa_function_pool[23658]: CurrentPaletteMatrixARB (dynamic) */
+ "i\0"
+ "glCurrentPaletteMatrixARB\0"
+ "glCurrentPaletteMatrixOES\0"
+ "\0"
+ /* _mesa_function_pool[23713]: GetMapdv (offset 266) */
+ "iip\0"
+ "glGetMapdv\0"
+ "\0"
+ /* _mesa_function_pool[23729]: Color4fNormal3fVertex3fvSUN (dynamic) */
+ "ppp\0"
+ "glColor4fNormal3fVertex3fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[23764]: GetStringi (will be remapped) */
+ "ii\0"
+ "glGetStringi\0"
+ "\0"
+ /* _mesa_function_pool[23781]: MultiTexCoord3iv (offset 397) */
+ "ip\0"
+ "glMultiTexCoord3iv\0"
+ "glMultiTexCoord3ivARB\0"
+ "\0"
+ /* _mesa_function_pool[23826]: GetUniformLocation (will be remapped) */
+ "ip\0"
+ "glGetUniformLocation\0"
+ "glGetUniformLocationARB\0"
+ "\0"
+ /* _mesa_function_pool[23875]: PixelStoref (offset 249) */
+ "if\0"
+ "glPixelStoref\0"
+ "\0"
+ /* _mesa_function_pool[23893]: WindowPos2iv (will be remapped) */
+ "p\0"
+ "glWindowPos2iv\0"
+ "glWindowPos2ivARB\0"
+ "glWindowPos2ivMESA\0"
+ "\0"
+ /* _mesa_function_pool[23948]: Binormal3dEXT (dynamic) */
+ "ddd\0"
+ "glBinormal3dEXT\0"
+ "\0"
+ /* _mesa_function_pool[23969]: ReplacementCodeuiColor4ubVertex3fSUN (dynamic) */
+ "iiiiifff\0"
+ "glReplacementCodeuiColor4ubVertex3fSUN\0"
+ "\0"
+ /* _mesa_function_pool[24018]: PixelStorei (offset 250) */
+ "ii\0"
+ "glPixelStorei\0"
+ "\0"
+ /* _mesa_function_pool[24036]: IsBuffer (will be remapped) */
+ "i\0"
+ "glIsBuffer\0"
+ "glIsBufferARB\0"
+ "\0"
+ /* _mesa_function_pool[24064]: VertexAttrib2fNV (will be remapped) */
+ "iff\0"
+ "glVertexAttrib2fNV\0"
+ "\0"
+ /* _mesa_function_pool[24088]: FragmentMaterialiSGIX (dynamic) */
+ "iii\0"
+ "glFragmentMaterialiSGIX\0"
+ "\0"
+ /* _mesa_function_pool[24117]: VertexAttribI4ubv (will be remapped) */
+ "ip\0"
+ "glVertexAttribI4ubvEXT\0"
+ "glVertexAttribI4ubv\0"
+ "\0"
+ /* _mesa_function_pool[24164]: EvalCoord2dv (offset 233) */
+ "p\0"
+ "glEvalCoord2dv\0"
+ "\0"
+ /* _mesa_function_pool[24182]: GenVertexArrays (will be remapped) */
+ "ip\0"
+ "glGenVertexArrays\0"
+ "glGenVertexArraysOES\0"
+ "\0"
+ /* _mesa_function_pool[24225]: ColorMaterial (offset 151) */
+ "ii\0"
+ "glColorMaterial\0"
+ "\0"
+ /* _mesa_function_pool[24245]: InvalidateSubFramebuffer (will be remapped) */
+ "iipiiii\0"
+ "glInvalidateSubFramebuffer\0"
+ "\0"
+ /* _mesa_function_pool[24281]: SamplePatternSGIS (will be remapped) */
+ "i\0"
+ "glSamplePatternSGIS\0"
+ "glSamplePatternEXT\0"
+ "\0"
+ /* _mesa_function_pool[24323]: ColorP4ui (will be remapped) */
+ "ii\0"
+ "glColorP4ui\0"
+ "\0"
+ /* _mesa_function_pool[24339]: VertexAttribs1svNV (will be remapped) */
+ "iip\0"
+ "glVertexAttribs1svNV\0"
+ "\0"
+ /* _mesa_function_pool[24365]: DrawTexsOES (will be remapped) */
+ "iiiii\0"
+ "glDrawTexsOES\0"
+ "\0"
+ /* _mesa_function_pool[24386]: Uniform2ui (will be remapped) */
+ "iii\0"
+ "glUniform2uiEXT\0"
+ "glUniform2ui\0"
+ "\0"
+ /* _mesa_function_pool[24420]: VertexAttribI4iEXT (will be remapped) */
+ "iiiii\0"
+ "glVertexAttribI4iEXT\0"
+ "glVertexAttribI4i\0"
+ "\0"
+ /* _mesa_function_pool[24466]: TexBumpParameterivATI (will be remapped) */
+ "ip\0"
+ "glTexBumpParameterivATI\0"
+ "\0"
+ /* _mesa_function_pool[24494]: GetSeparableFilter (offset 359) */
+ "iiippp\0"
+ "glGetSeparableFilter\0"
+ "glGetSeparableFilterEXT\0"
+ "\0"
+ /* _mesa_function_pool[24547]: DeleteVertexArrays (will be remapped) */
+ "ip\0"
+ "glDeleteVertexArrays\0"
+ "glDeleteVertexArraysAPPLE\0"
+ "glDeleteVertexArraysOES\0"
+ "\0"
+ /* _mesa_function_pool[24622]: SpriteParameteriSGIX (dynamic) */
+ "ii\0"
+ "glSpriteParameteriSGIX\0"
+ "\0"
+ /* _mesa_function_pool[24649]: RequestResidentProgramsNV (will be remapped) */
+ "ip\0"
+ "glRequestResidentProgramsNV\0"
+ "\0"
+ /* _mesa_function_pool[24681]: TexCoordP3uiv (will be remapped) */
+ "ip\0"
+ "glTexCoordP3uiv\0"
+ "\0"
+ /* _mesa_function_pool[24701]: ReplacementCodeusSUN (dynamic) */
+ "i\0"
+ "glReplacementCodeusSUN\0"
+ "\0"
+ /* _mesa_function_pool[24727]: FeedbackBuffer (offset 194) */
+ "iip\0"
+ "glFeedbackBuffer\0"
+ "\0"
+ /* _mesa_function_pool[24749]: RasterPos2iv (offset 67) */
+ "p\0"
+ "glRasterPos2iv\0"
+ "\0"
+ /* _mesa_function_pool[24767]: TexImage1D (offset 182) */
+ "iiiiiiip\0"
+ "glTexImage1D\0"
+ "\0"
+ /* _mesa_function_pool[24790]: TexEnvxv (will be remapped) */
+ "iip\0"
+ "glTexEnvxvOES\0"
+ "glTexEnvxv\0"
+ "\0"
+ /* _mesa_function_pool[24820]: ListParameterivSGIX (dynamic) */
+ "iip\0"
+ "glListParameterivSGIX\0"
+ "\0"
+ /* _mesa_function_pool[24847]: MultiDrawElementsEXT (will be remapped) */
+ "ipipi\0"
+ "glMultiDrawElements\0"
+ "glMultiDrawElementsEXT\0"
+ "\0"
+ /* _mesa_function_pool[24897]: Color3s (offset 17) */
+ "iii\0"
+ "glColor3s\0"
+ "\0"
+ /* _mesa_function_pool[24912]: MultiTexCoord3s (offset 398) */
+ "iiii\0"
+ "glMultiTexCoord3s\0"
+ "glMultiTexCoord3sARB\0"
+ "\0"
+ /* _mesa_function_pool[24957]: WeightusvARB (dynamic) */
+ "ip\0"
+ "glWeightusvARB\0"
+ "\0"
+ /* _mesa_function_pool[24976]: BindFragmentShaderATI (will be remapped) */
+ "i\0"
+ "glBindFragmentShaderATI\0"
+ "\0"
+ /* _mesa_function_pool[25003]: TexCoordPointer (offset 320) */
+ "iiip\0"
+ "glTexCoordPointer\0"
+ "\0"
+ /* _mesa_function_pool[25027]: GetnSeparableFilterARB (will be remapped) */
+ "iiiipipp\0"
+ "glGetnSeparableFilterARB\0"
+ "\0"
+ /* _mesa_function_pool[25062]: InvalidateBufferData (will be remapped) */
+ "i\0"
+ "glInvalidateBufferData\0"
+ "\0"
+ /* _mesa_function_pool[25088]: Color3i (offset 15) */
+ "iii\0"
+ "glColor3i\0"
+ "\0"
+ /* _mesa_function_pool[25103]: FrontFace (offset 157) */
+ "i\0"
+ "glFrontFace\0"
+ "\0"
+ /* _mesa_function_pool[25118]: EvalCoord2d (offset 232) */
+ "dd\0"
+ "glEvalCoord2d\0"
+ "\0"
+ /* _mesa_function_pool[25136]: EvalCoord2f (offset 234) */
+ "ff\0"
+ "glEvalCoord2f\0"
+ "\0"
+ /* _mesa_function_pool[25154]: Color3b (offset 9) */
+ "iii\0"
+ "glColor3b\0"
+ "\0"
+ /* _mesa_function_pool[25169]: ExecuteProgramNV (will be remapped) */
+ "iip\0"
+ "glExecuteProgramNV\0"
+ "\0"
+ /* _mesa_function_pool[25193]: Color3f (offset 13) */
+ "fff\0"
+ "glColor3f\0"
+ "\0"
+ /* _mesa_function_pool[25208]: LightEnviSGIX (dynamic) */
+ "ii\0"
+ "glLightEnviSGIX\0"
+ "\0"
+ /* _mesa_function_pool[25228]: Color3d (offset 11) */
+ "ddd\0"
+ "glColor3d\0"
+ "\0"
+ /* _mesa_function_pool[25243]: GetVertexAttribdv (will be remapped) */
+ "iip\0"
+ "glGetVertexAttribdv\0"
+ "glGetVertexAttribdvARB\0"
+ "\0"
+ /* _mesa_function_pool[25291]: VDPAUUnregisterSurfaceNV (will be remapped) */
+ "i\0"
+ "glVDPAUUnregisterSurfaceNV\0"
+ "\0"
+ /* _mesa_function_pool[25321]: Normal3dv (offset 55) */
+ "p\0"
+ "glNormal3dv\0"
+ "\0"
+ /* _mesa_function_pool[25336]: Lightf (offset 159) */
+ "iif\0"
+ "glLightf\0"
+ "\0"
+ /* _mesa_function_pool[25350]: FinishTextureSUNX (dynamic) */
+ "\0"
+ "glFinishTextureSUNX\0"
+ "\0"
+ /* _mesa_function_pool[25372]: MatrixMode (offset 293) */
+ "i\0"
+ "glMatrixMode\0"
+ "\0"
+ /* _mesa_function_pool[25388]: GetPixelMapusv (offset 273) */
+ "ip\0"
+ "glGetPixelMapusv\0"
+ "\0"
+ /* _mesa_function_pool[25409]: Lighti (offset 161) */
+ "iii\0"
+ "glLighti\0"
+ "\0"
+ /* _mesa_function_pool[25423]: VertexAttribPointerNV (will be remapped) */
+ "iiiip\0"
+ "glVertexAttribPointerNV\0"
+ "\0"
+ /* _mesa_function_pool[25454]: GenFramebuffers (will be remapped) */
+ "ip\0"
+ "glGenFramebuffers\0"
+ "glGenFramebuffersEXT\0"
+ "glGenFramebuffersOES\0"
+ "\0"
+ /* _mesa_function_pool[25518]: GenBuffers (will be remapped) */
+ "ip\0"
+ "glGenBuffers\0"
+ "glGenBuffersARB\0"
+ "\0"
+ /* _mesa_function_pool[25551]: VDPAUMapSurfacesNV (will be remapped) */
+ "ip\0"
+ "glVDPAUMapSurfacesNV\0"
+ "\0"
+ /* _mesa_function_pool[25576]: ClearDepthx (will be remapped) */
+ "i\0"
+ "glClearDepthxOES\0"
+ "glClearDepthx\0"
+ "\0"
+ /* _mesa_function_pool[25610]: Uniform4uiv (will be remapped) */
+ "iip\0"
+ "glUniform4uivEXT\0"
+ "glUniform4uiv\0"
+ "\0"
+ /* _mesa_function_pool[25646]: IsFramebuffer (will be remapped) */
+ "i\0"
+ "glIsFramebuffer\0"
+ "glIsFramebufferEXT\0"
+ "glIsFramebufferOES\0"
+ "\0"
+ /* _mesa_function_pool[25703]: PopDebugGroup (will be remapped) */
+ "\0"
+ "glPopDebugGroup\0"
+ "\0"
+ /* _mesa_function_pool[25721]: PixelTransformParameterfEXT (dynamic) */
+ "iif\0"
+ "glPixelTransformParameterfEXT\0"
+ "\0"
+ /* _mesa_function_pool[25756]: BlendEquationSeparate (will be remapped) */
+ "ii\0"
+ "glBlendEquationSeparate\0"
+ "glBlendEquationSeparateEXT\0"
+ "glBlendEquationSeparateATI\0"
+ "glBlendEquationSeparateOES\0"
+ "\0"
+ /* _mesa_function_pool[25865]: Lightx (will be remapped) */
+ "iii\0"
+ "glLightxOES\0"
+ "glLightx\0"
+ "\0"
+ /* _mesa_function_pool[25891]: PixelTransformParameteriEXT (dynamic) */
+ "iii\0"
+ "glPixelTransformParameteriEXT\0"
+ "\0"
+ /* _mesa_function_pool[25926]: GetDoublev (offset 260) */
+ "ip\0"
+ "glGetDoublev\0"
+ "\0"
+ /* _mesa_function_pool[25943]: MultiTexCoordP4ui (will be remapped) */
+ "iii\0"
+ "glMultiTexCoordP4ui\0"
+ "\0"
+ /* _mesa_function_pool[25968]: GetObjectLabel (will be remapped) */
+ "iiipp\0"
+ "glGetObjectLabel\0"
+ "\0"
+ /* _mesa_function_pool[25992]: MultMatrixd (offset 295) */
+ "p\0"
+ "glMultMatrixd\0"
+ "\0"
+ /* _mesa_function_pool[26009]: MultMatrixf (offset 294) */
+ "p\0"
+ "glMultMatrixf\0"
+ "\0"
+ /* _mesa_function_pool[26026]: TextureMaterialEXT (dynamic) */
+ "ii\0"
+ "glTextureMaterialEXT\0"
+ "\0"
+ /* _mesa_function_pool[26051]: TexCoord2fColor4ubVertex3fSUN (dynamic) */
+ "ffiiiifff\0"
+ "glTexCoord2fColor4ubVertex3fSUN\0"
+ "\0"
+ /* _mesa_function_pool[26094]: VertexAttrib1d (will be remapped) */
+ "id\0"
+ "glVertexAttrib1d\0"
+ "glVertexAttrib1dARB\0"
+ "\0"
+ /* _mesa_function_pool[26135]: CompressedTexImage1D (will be remapped) */
+ "iiiiiip\0"
+ "glCompressedTexImage1D\0"
+ "glCompressedTexImage1DARB\0"
+ "\0"
+ /* _mesa_function_pool[26193]: UnlockArraysEXT (will be remapped) */
+ "\0"
+ "glUnlockArraysEXT\0"
+ "\0"
+ /* _mesa_function_pool[26213]: TexBufferRange (will be remapped) */
+ "iiiii\0"
+ "glTexBufferRange\0"
+ "\0"
+ /* _mesa_function_pool[26237]: MultiTexCoord4fvARB (offset 403) */
+ "ip\0"
+ "glMultiTexCoord4fv\0"
+ "glMultiTexCoord4fvARB\0"
+ "\0"
+ /* _mesa_function_pool[26282]: TagSampleBufferSGIX (dynamic) */
+ "\0"
+ "glTagSampleBufferSGIX\0"
+ "\0"
+ /* _mesa_function_pool[26306]: UniformMatrix2x3fv (will be remapped) */
+ "iiip\0"
+ "glUniformMatrix2x3fv\0"
+ "\0"
+ /* _mesa_function_pool[26333]: SamplerParameteri (will be remapped) */
+ "iii\0"
+ "glSamplerParameteri\0"
+ "\0"
+ /* _mesa_function_pool[26358]: SamplerParameterf (will be remapped) */
+ "iif\0"
+ "glSamplerParameterf\0"
+ "\0"
+ /* _mesa_function_pool[26383]: CombinerParameteriNV (dynamic) */
+ "ii\0"
+ "glCombinerParameteriNV\0"
+ "\0"
+ /* _mesa_function_pool[26410]: VertexAttrib1s (will be remapped) */
+ "ii\0"
+ "glVertexAttrib1s\0"
+ "glVertexAttrib1sARB\0"
+ "\0"
+ /* _mesa_function_pool[26451]: EnableVertexAttribArray (will be remapped) */
+ "i\0"
+ "glEnableVertexAttribArray\0"
+ "glEnableVertexAttribArrayARB\0"
+ "\0"
+ /* _mesa_function_pool[26509]: FrameZoomSGIX (dynamic) */
+ "i\0"
+ "glFrameZoomSGIX\0"
+ "\0"
+ /* _mesa_function_pool[26528]: Normal3fVertex3fvSUN (dynamic) */
+ "pp\0"
+ "glNormal3fVertex3fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[26555]: Tangent3dvEXT (dynamic) */
+ "p\0"
+ "glTangent3dvEXT\0"
+ "\0"
+ /* _mesa_function_pool[26574]: GetnUniformuivARB (will be remapped) */
+ "iiip\0"
+ "glGetnUniformuivARB\0"
+ "\0"
+ /* _mesa_function_pool[26600]: RasterPos4sv (offset 85) */
+ "p\0"
+ "glRasterPos4sv\0"
+ "\0"
+ /* _mesa_function_pool[26618]: VertexAttrib3fvARB (will be remapped) */
+ "ip\0"
+ "glVertexAttrib3fv\0"
+ "glVertexAttrib3fvARB\0"
+ "\0"
+ /* _mesa_function_pool[26661]: ClearColor (offset 206) */
+ "ffff\0"
+ "glClearColor\0"
+ "\0"
+ /* _mesa_function_pool[26680]: Materialx (will be remapped) */
+ "iii\0"
+ "glMaterialxOES\0"
+ "glMaterialx\0"
+ "\0"
+ /* _mesa_function_pool[26712]: GetSynciv (will be remapped) */
+ "iiipp\0"
+ "glGetSynciv\0"
+ "\0"
+ /* _mesa_function_pool[26731]: VertexAttrib1svNV (will be remapped) */
+ "ip\0"
+ "glVertexAttrib1svNV\0"
+ "\0"
+ /* _mesa_function_pool[26755]: SecondaryColor3ubv (will be remapped) */
+ "p\0"
+ "glSecondaryColor3ubv\0"
+ "glSecondaryColor3ubvEXT\0"
+ "\0"
+ /* _mesa_function_pool[26803]: PointParameteri (will be remapped) */
+ "ii\0"
+ "glPointParameteri\0"
+ "glPointParameteriNV\0"
+ "\0"
+ /* _mesa_function_pool[26845]: PointParameterf (will be remapped) */
+ "if\0"
+ "glPointParameterf\0"
+ "glPointParameterfARB\0"
+ "glPointParameterfEXT\0"
+ "glPointParameterfSGIS\0"
+ "\0"
+ /* _mesa_function_pool[26931]: GlobalAlphaFactorsSUN (dynamic) */
+ "i\0"
+ "glGlobalAlphaFactorsSUN\0"
+ "\0"
+ /* _mesa_function_pool[26958]: GetDebugMessageLog (will be remapped) */
+ "iipppppp\0"
+ "glGetDebugMessageLog\0"
+ "\0"
+ /* _mesa_function_pool[26989]: TexEnviv (offset 187) */
+ "iip\0"
+ "glTexEnviv\0"
+ "\0"
+ /* _mesa_function_pool[27005]: TexSubImage3D (offset 372) */
+ "iiiiiiiiiip\0"
+ "glTexSubImage3D\0"
+ "glTexSubImage3DEXT\0"
+ "glTexSubImage3DOES\0"
+ "\0"
+ /* _mesa_function_pool[27072]: Tangent3fEXT (dynamic) */
+ "fff\0"
+ "glTangent3fEXT\0"
+ "\0"
+ /* _mesa_function_pool[27092]: DeformationMap3fSGIX (dynamic) */
+ "iffiiffiiffiip\0"
+ "glDeformationMap3fSGIX\0"
+ "\0"
+ /* _mesa_function_pool[27131]: BeginPerfMonitorAMD (will be remapped) */
+ "i\0"
+ "glBeginPerfMonitorAMD\0"
+ "\0"
+ /* _mesa_function_pool[27156]: MatrixIndexubvARB (dynamic) */
+ "ip\0"
+ "glMatrixIndexubvARB\0"
+ "\0"
+ /* _mesa_function_pool[27180]: Color4fNormal3fVertex3fSUN (dynamic) */
+ "ffffffffff\0"
+ "glColor4fNormal3fVertex3fSUN\0"
+ "\0"
+ /* _mesa_function_pool[27221]: PixelTexGenParameterfSGIS (dynamic) */
+ "if\0"
+ "glPixelTexGenParameterfSGIS\0"
+ "\0"
+ /* _mesa_function_pool[27253]: CreateShader (will be remapped) */
+ "i\0"
+ "glCreateShader\0"
+ "\0"
+ /* _mesa_function_pool[27271]: GetColorTableParameterfv (offset 344) */
+ "iip\0"
+ "glGetColorTableParameterfv\0"
+ "glGetColorTableParameterfvSGI\0"
+ "glGetColorTableParameterfvEXT\0"
+ "\0"
+ /* _mesa_function_pool[27363]: FragmentLightModelfvSGIX (dynamic) */
+ "ip\0"
+ "glFragmentLightModelfvSGIX\0"
+ "\0"
+ /* _mesa_function_pool[27394]: FramebufferTexture2D (will be remapped) */
+ "iiiii\0"
+ "glFramebufferTexture2D\0"
+ "glFramebufferTexture2DEXT\0"
+ "glFramebufferTexture2DOES\0"
+ "\0"
+ /* _mesa_function_pool[27476]: Bitmap (offset 8) */
+ "iiffffp\0"
+ "glBitmap\0"
+ "\0"
+ /* _mesa_function_pool[27494]: MultiTexCoord3fARB (offset 394) */
+ "ifff\0"
+ "glMultiTexCoord3f\0"
+ "glMultiTexCoord3fARB\0"
+ "\0"
+ /* _mesa_function_pool[27539]: GetTexLevelParameterfv (offset 284) */
+ "iiip\0"
+ "glGetTexLevelParameterfv\0"
+ "\0"
+ /* _mesa_function_pool[27570]: GetPixelTexGenParameterfvSGIS (dynamic) */
+ "ip\0"
+ "glGetPixelTexGenParameterfvSGIS\0"
+ "\0"
+ /* _mesa_function_pool[27606]: CheckFramebufferStatus (will be remapped) */
+ "i\0"
+ "glCheckFramebufferStatus\0"
+ "glCheckFramebufferStatusEXT\0"
+ "glCheckFramebufferStatusOES\0"
+ "\0"
+ /* _mesa_function_pool[27690]: DrawTransformFeedbackStream (will be remapped) */
+ "iii\0"
+ "glDrawTransformFeedbackStream\0"
+ "\0"
+ /* _mesa_function_pool[27725]: Vertex2sv (offset 133) */
+ "p\0"
+ "glVertex2sv\0"
+ "\0"
+ /* _mesa_function_pool[27740]: GetIntegerv (offset 263) */
+ "ip\0"
+ "glGetIntegerv\0"
+ "\0"
+ /* _mesa_function_pool[27758]: GenFragmentShadersATI (will be remapped) */
+ "i\0"
+ "glGenFragmentShadersATI\0"
+ "\0"
+ /* _mesa_function_pool[27785]: GetShaderSource (will be remapped) */
+ "iipp\0"
+ "glGetShaderSource\0"
+ "glGetShaderSourceARB\0"
+ "\0"
+ /* _mesa_function_pool[27830]: GetTexBumpParameterfvATI (will be remapped) */
+ "ip\0"
+ "glGetTexBumpParameterfvATI\0"
+ "\0"
+ /* _mesa_function_pool[27861]: BindProgramARB (will be remapped) */
+ "ii\0"
+ "glBindProgramARB\0"
+ "glBindProgramNV\0"
+ "\0"
+ /* _mesa_function_pool[27898]: GetnMapdvARB (will be remapped) */
+ "iiip\0"
+ "glGetnMapdvARB\0"
+ "\0"
+ /* _mesa_function_pool[27919]: VertexAttrib3sNV (will be remapped) */
+ "iiii\0"
+ "glVertexAttrib3sNV\0"
+ "\0"
+ /* _mesa_function_pool[27944]: VertexAttribI2uivEXT (will be remapped) */
+ "ip\0"
+ "glVertexAttribI2uivEXT\0"
+ "glVertexAttribI2uiv\0"
+ "\0"
+ /* _mesa_function_pool[27991]: GetProgramEnvParameterfvARB (will be remapped) */
+ "iip\0"
+ "glGetProgramEnvParameterfvARB\0"
+ "\0"
+ /* _mesa_function_pool[28026]: GetTrackMatrixivNV (will be remapped) */
+ "iiip\0"
+ "glGetTrackMatrixivNV\0"
+ "\0"
+ /* _mesa_function_pool[28053]: VertexAttrib3svNV (will be remapped) */
+ "ip\0"
+ "glVertexAttrib3svNV\0"
+ "\0"
+ /* _mesa_function_pool[28077]: GetActiveUniform (will be remapped) */
+ "iiipppp\0"
+ "glGetActiveUniform\0"
+ "glGetActiveUniformARB\0"
+ "\0"
+ /* _mesa_function_pool[28127]: DeleteBuffers (will be remapped) */
+ "ip\0"
+ "glDeleteBuffers\0"
+ "glDeleteBuffersARB\0"
+ "\0"
+ /* _mesa_function_pool[28166]: AlphaFuncx (will be remapped) */
+ "ii\0"
+ "glAlphaFuncxOES\0"
+ "glAlphaFuncx\0"
+ "\0"
+ /* _mesa_function_pool[28199]: TexCoord2fNormal3fVertex3fSUN (dynamic) */
+ "ffffffff\0"
+ "glTexCoord2fNormal3fVertex3fSUN\0"
+ "\0"
+ /* _mesa_function_pool[28241]: GetTexEnviv (offset 277) */
+ "iip\0"
+ "glGetTexEnviv\0"
+ "\0"
+ /* _mesa_function_pool[28260]: DrawTexivOES (will be remapped) */
+ "p\0"
+ "glDrawTexivOES\0"
+ "\0"
+ /* _mesa_function_pool[28278]: GetBufferSubData (will be remapped) */
+ "iiip\0"
+ "glGetBufferSubData\0"
+ "glGetBufferSubDataARB\0"
+ "\0"
+ /* _mesa_function_pool[28325]: EGLImageTargetRenderbufferStorageOES (will be remapped) */
+ "ip\0"
+ "glEGLImageTargetRenderbufferStorageOES\0"
+ "\0"
+ /* _mesa_function_pool[28368]: VertexAttribI2ivEXT (will be remapped) */
+ "ip\0"
+ "glVertexAttribI2ivEXT\0"
+ "glVertexAttribI2iv\0"
+ "\0"
+ /* _mesa_function_pool[28413]: PopClientAttrib (offset 334) */
+ "\0"
+ "glPopClientAttrib\0"
+ "\0"
+ /* _mesa_function_pool[28433]: ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (dynamic) */
+ "iffffffffffff\0"
+ "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN\0"
+ "\0"
+ /* _mesa_function_pool[28504]: DetachObjectARB (will be remapped) */
+ "ii\0"
+ "glDetachObjectARB\0"
+ "\0"
+ /* _mesa_function_pool[28526]: VertexBlendARB (dynamic) */
+ "i\0"
+ "glVertexBlendARB\0"
+ "\0"
+ /* _mesa_function_pool[28546]: EndTransformFeedback (will be remapped) */
+ "\0"
+ "glEndTransformFeedback\0"
+ "glEndTransformFeedbackEXT\0"
+ "\0"
+ /* _mesa_function_pool[28597]: SeparableFilter2D (offset 360) */
+ "iiiiiipp\0"
+ "glSeparableFilter2D\0"
+ "glSeparableFilter2DEXT\0"
+ "\0"
+ /* _mesa_function_pool[28650]: GetQueryObjectuiv (will be remapped) */
+ "iip\0"
+ "glGetQueryObjectuiv\0"
+ "glGetQueryObjectuivARB\0"
+ "\0"
+ /* _mesa_function_pool[28698]: ReplacementCodeuiColor4ubVertex3fvSUN (dynamic) */
+ "ppp\0"
+ "glReplacementCodeuiColor4ubVertex3fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[28743]: Map1d (offset 220) */
+ "iddiip\0"
+ "glMap1d\0"
+ "\0"
+ /* _mesa_function_pool[28759]: Map1f (offset 221) */
+ "iffiip\0"
+ "glMap1f\0"
+ "\0"
+ /* _mesa_function_pool[28775]: FlushRasterSGIX (dynamic) */
+ "\0"
+ "glFlushRasterSGIX\0"
+ "\0"
+ /* _mesa_function_pool[28795]: ArrayElement (offset 306) */
+ "i\0"
+ "glArrayElement\0"
+ "glArrayElementEXT\0"
+ "\0"
+ /* _mesa_function_pool[28831]: TexImage2D (offset 183) */
+ "iiiiiiiip\0"
+ "glTexImage2D\0"
+ "\0"
+ /* _mesa_function_pool[28855]: DepthBoundsEXT (will be remapped) */
+ "dd\0"
+ "glDepthBoundsEXT\0"
+ "\0"
+ /* _mesa_function_pool[28876]: GetProgramivNV (will be remapped) */
+ "iip\0"
+ "glGetProgramivNV\0"
+ "\0"
+ /* _mesa_function_pool[28898]: GetMinmaxParameteriv (offset 366) */
+ "iip\0"
+ "glGetMinmaxParameteriv\0"
+ "glGetMinmaxParameterivEXT\0"
+ "\0"
+ /* _mesa_function_pool[28952]: PixelTransferf (offset 247) */
+ "if\0"
+ "glPixelTransferf\0"
+ "\0"
+ /* _mesa_function_pool[28973]: CopyTexImage1D (offset 323) */
+ "iiiiiii\0"
+ "glCopyTexImage1D\0"
+ "glCopyTexImage1DEXT\0"
+ "\0"
+ /* _mesa_function_pool[29019]: PushMatrix (offset 298) */
+ "\0"
+ "glPushMatrix\0"
+ "\0"
+ /* _mesa_function_pool[29034]: SelectPerfMonitorCountersAMD (will be remapped) */
+ "iiiip\0"
+ "glSelectPerfMonitorCountersAMD\0"
+ "\0"
+ /* _mesa_function_pool[29072]: Fogiv (offset 156) */
+ "ip\0"
+ "glFogiv\0"
+ "\0"
+ /* _mesa_function_pool[29084]: EndQuery (will be remapped) */
+ "i\0"
+ "glEndQuery\0"
+ "glEndQueryARB\0"
+ "\0"
+ /* _mesa_function_pool[29112]: TexCoord1dv (offset 95) */
+ "p\0"
+ "glTexCoord1dv\0"
+ "\0"
+ /* _mesa_function_pool[29129]: AlphaFragmentOp3ATI (will be remapped) */
+ "iiiiiiiiiiii\0"
+ "glAlphaFragmentOp3ATI\0"
+ "\0"
+ /* _mesa_function_pool[29165]: PixelTransferi (offset 248) */
+ "ii\0"
+ "glPixelTransferi\0"
+ "\0"
+ /* _mesa_function_pool[29186]: GetnColorTableARB (will be remapped) */
+ "iiiip\0"
+ "glGetnColorTableARB\0"
+ "\0"
+ /* _mesa_function_pool[29213]: VertexAttrib3fvNV (will be remapped) */
+ "ip\0"
+ "glVertexAttrib3fvNV\0"
+ "\0"
+ /* _mesa_function_pool[29237]: Rotatef (offset 300) */
+ "ffff\0"
+ "glRotatef\0"
+ "\0"
+ /* _mesa_function_pool[29253]: GetFinalCombinerInputParameterivNV (dynamic) */
+ "iip\0"
+ "glGetFinalCombinerInputParameterivNV\0"
+ "\0"
+ /* _mesa_function_pool[29295]: Vertex3i (offset 138) */
+ "iii\0"
+ "glVertex3i\0"
+ "\0"
+ /* _mesa_function_pool[29311]: GetTexEnvxv (will be remapped) */
+ "iip\0"
+ "glGetTexEnvxvOES\0"
+ "glGetTexEnvxv\0"
+ "\0"
+ /* _mesa_function_pool[29347]: SecondaryColorP3ui (will be remapped) */
+ "ii\0"
+ "glSecondaryColorP3ui\0"
+ "\0"
+ /* _mesa_function_pool[29372]: Vertex3f (offset 136) */
+ "fff\0"
+ "glVertex3f\0"
+ "\0"
+ /* _mesa_function_pool[29388]: Clear (offset 203) */
+ "i\0"
+ "glClear\0"
+ "\0"
+ /* _mesa_function_pool[29399]: Vertex3d (offset 134) */
+ "ddd\0"
+ "glVertex3d\0"
+ "\0"
+ /* _mesa_function_pool[29415]: GetMapParameterivNV (dynamic) */
+ "iip\0"
+ "glGetMapParameterivNV\0"
+ "\0"
+ /* _mesa_function_pool[29442]: IndexMaterialEXT (dynamic) */
+ "ii\0"
+ "glIndexMaterialEXT\0"
+ "\0"
+ /* _mesa_function_pool[29465]: Disablei (will be remapped) */
+ "ii\0"
+ "glDisableIndexedEXT\0"
+ "glDisablei\0"
+ "\0"
+ /* _mesa_function_pool[29500]: ReadBuffer (offset 254) */
+ "i\0"
+ "glReadBuffer\0"
+ "glReadBufferNV\0"
+ "\0"
+ /* _mesa_function_pool[29531]: ConvolutionParameteri (offset 352) */
+ "iii\0"
+ "glConvolutionParameteri\0"
+ "glConvolutionParameteriEXT\0"
+ "\0"
+ /* _mesa_function_pool[29587]: VertexAttrib4sv (will be remapped) */
+ "ip\0"
+ "glVertexAttrib4sv\0"
+ "glVertexAttrib4svARB\0"
+ "\0"
+ /* _mesa_function_pool[29630]: Ortho (offset 296) */
+ "dddddd\0"
+ "glOrtho\0"
+ "\0"
+ /* _mesa_function_pool[29646]: Binormal3sEXT (dynamic) */
+ "iii\0"
+ "glBinormal3sEXT\0"
+ "\0"
+ /* _mesa_function_pool[29667]: VDPAUUnmapSurfacesNV (will be remapped) */
+ "ip\0"
+ "glVDPAUUnmapSurfacesNV\0"
+ "\0"
+ /* _mesa_function_pool[29694]: ListBase (offset 6) */
+ "i\0"
+ "glListBase\0"
+ "\0"
+ /* _mesa_function_pool[29708]: GetTexParameterIiv (will be remapped) */
+ "iip\0"
+ "glGetTexParameterIivEXT\0"
+ "glGetTexParameterIiv\0"
+ "\0"
+ /* _mesa_function_pool[29758]: Tangent3sEXT (dynamic) */
+ "iii\0"
+ "glTangent3sEXT\0"
+ "\0"
+ /* _mesa_function_pool[29778]: Vertex3s (offset 140) */
+ "iii\0"
+ "glVertex3s\0"
+ "\0"
+ /* _mesa_function_pool[29794]: ConvolutionParameterf (offset 350) */
+ "iif\0"
+ "glConvolutionParameterf\0"
+ "glConvolutionParameterfEXT\0"
+ "\0"
+ /* _mesa_function_pool[29850]: GetColorTableParameteriv (offset 345) */
+ "iip\0"
+ "glGetColorTableParameteriv\0"
+ "glGetColorTableParameterivSGI\0"
+ "glGetColorTableParameterivEXT\0"
+ "\0"
+ /* _mesa_function_pool[29942]: ProgramEnvParameter4dvARB (will be remapped) */
+ "iip\0"
+ "glProgramEnvParameter4dvARB\0"
+ "glProgramParameter4dvNV\0"
+ "\0"
+ /* _mesa_function_pool[29999]: ShadeModel (offset 177) */
+ "i\0"
+ "glShadeModel\0"
+ "\0"
+ /* _mesa_function_pool[30015]: Uniform3uiv (will be remapped) */
+ "iip\0"
+ "glUniform3uivEXT\0"
+ "glUniform3uiv\0"
+ "\0"
+ /* _mesa_function_pool[30051]: GenerateMipmap (will be remapped) */
+ "i\0"
+ "glGenerateMipmap\0"
+ "glGenerateMipmapEXT\0"
+ "glGenerateMipmapOES\0"
+ "\0"
+ /* _mesa_function_pool[30111]: Rectiv (offset 91) */
+ "pp\0"
+ "glRectiv\0"
+ "\0"
+ /* _mesa_function_pool[30124]: TexImage3DMultisample (will be remapped) */
+ "iiiiiii\0"
+ "glTexImage3DMultisample\0"
+ "\0"
+ /* _mesa_function_pool[30157]: MatrixIndexPointerARB (dynamic) */
+ "iiip\0"
+ "glMatrixIndexPointerARB\0"
+ "glMatrixIndexPointerOES\0"
+ "\0"
+ /* _mesa_function_pool[30211]: GetMapParameterfvNV (dynamic) */
+ "iip\0"
+ "glGetMapParameterfvNV\0"
+ "\0"
+ /* _mesa_function_pool[30238]: MultiTexCoord1iv (offset 381) */
+ "ip\0"
+ "glMultiTexCoord1iv\0"
+ "glMultiTexCoord1ivARB\0"
+ "\0"
+ /* _mesa_function_pool[30283]: PassTexCoordATI (will be remapped) */
+ "iii\0"
+ "glPassTexCoordATI\0"
+ "\0"
+ /* _mesa_function_pool[30306]: DeleteProgram (will be remapped) */
+ "i\0"
+ "glDeleteProgram\0"
+ "\0"
+ /* _mesa_function_pool[30325]: GetSamplerParameteriv (will be remapped) */
+ "iip\0"
+ "glGetSamplerParameteriv\0"
+ "\0"
+ /* _mesa_function_pool[30354]: BindBufferRange (will be remapped) */
+ "iiiii\0"
+ "glBindBufferRange\0"
+ "glBindBufferRangeEXT\0"
+ "\0"
+ /* _mesa_function_pool[30400]: Tangent3dEXT (dynamic) */
+ "ddd\0"
+ "glTangent3dEXT\0"
+ "\0"
+ /* _mesa_function_pool[30420]: TexParameterxv (will be remapped) */
+ "iip\0"
+ "glTexParameterxvOES\0"
+ "glTexParameterxv\0"
+ "\0"
+ /* _mesa_function_pool[30462]: BlendEquationSeparateiARB (will be remapped) */
+ "iii\0"
+ "glBlendEquationSeparateiARB\0"
+ "glBlendEquationSeparateIndexedAMD\0"
+ "\0"
+ /* _mesa_function_pool[30529]: AlphaFragmentOp2ATI (will be remapped) */
+ "iiiiiiiii\0"
+ "glAlphaFragmentOp2ATI\0"
+ "\0"
+ /* _mesa_function_pool[30562]: Vertex2fv (offset 129) */
+ "p\0"
+ "glVertex2fv\0"
+ "\0"
+ /* _mesa_function_pool[30577]: SampleMaskSGIS (will be remapped) */
+ "fi\0"
+ "glSampleMaskSGIS\0"
+ "glSampleMaskEXT\0"
+ "\0"
+ /* _mesa_function_pool[30614]: BindRenderbufferEXT (will be remapped) */
+ "ii\0"
+ "glBindRenderbufferEXT\0"
+ "\0"
+ /* _mesa_function_pool[30640]: VertexAttrib1fNV (will be remapped) */
+ "if\0"
+ "glVertexAttrib1fNV\0"
+ "\0"
+ /* _mesa_function_pool[30663]: Rotatex (will be remapped) */
+ "iiii\0"
+ "glRotatexOES\0"
+ "glRotatex\0"
+ "\0"
+ /* _mesa_function_pool[30692]: FramebufferTextureFaceARB (will be remapped) */
+ "iiiii\0"
+ "glFramebufferTextureFaceARB\0"
+ "\0"
+ /* _mesa_function_pool[30727]: BindBufferBase (will be remapped) */
+ "iii\0"
+ "glBindBufferBase\0"
+ "glBindBufferBaseEXT\0"
+ "\0"
+ /* _mesa_function_pool[30769]: Vertex3sv (offset 141) */
+ "p\0"
+ "glVertex3sv\0"
+ "\0"
+ /* _mesa_function_pool[30784]: GetQueryObjectiv (will be remapped) */
+ "iip\0"
+ "glGetQueryObjectiv\0"
+ "glGetQueryObjectivARB\0"
+ "\0"
+ /* _mesa_function_pool[30830]: VertexAttrib2s (will be remapped) */
+ "iii\0"
+ "glVertexAttrib2s\0"
+ "glVertexAttrib2sARB\0"
+ "\0"
+ /* _mesa_function_pool[30872]: VertexWeightfEXT (dynamic) */
+ "f\0"
+ "glVertexWeightfEXT\0"
+ "\0"
+ /* _mesa_function_pool[30894]: ProgramLocalParameter4fvARB (will be remapped) */
+ "iip\0"
+ "glProgramLocalParameter4fvARB\0"
+ "\0"
+ /* _mesa_function_pool[30929]: EvalMesh1 (offset 236) */
+ "iii\0"
+ "glEvalMesh1\0"
+ "\0"
+ /* _mesa_function_pool[30946]: ObjectLabel (will be remapped) */
+ "iiip\0"
+ "glObjectLabel\0"
+ "\0"
+ /* _mesa_function_pool[30966]: PauseTransformFeedback (will be remapped) */
+ "\0"
+ "glPauseTransformFeedback\0"
+ "\0"
+ /* _mesa_function_pool[30993]: DeleteShader (will be remapped) */
+ "i\0"
+ "glDeleteShader\0"
+ "\0"
+ /* _mesa_function_pool[31011]: ReplacementCodeuiColor3fVertex3fSUN (dynamic) */
+ "iffffff\0"
+ "glReplacementCodeuiColor3fVertex3fSUN\0"
+ "\0"
+ /* _mesa_function_pool[31058]: Uniform2f (will be remapped) */
+ "iff\0"
+ "glUniform2f\0"
+ "glUniform2fARB\0"
+ "\0"
+ /* _mesa_function_pool[31090]: VertexAttrib2d (will be remapped) */
+ "idd\0"
+ "glVertexAttrib2d\0"
+ "glVertexAttrib2dARB\0"
+ "\0"
+ /* _mesa_function_pool[31132]: CompressedTexSubImage3D (will be remapped) */
+ "iiiiiiiiiip\0"
+ "glCompressedTexSubImage3D\0"
+ "glCompressedTexSubImage3DARB\0"
+ "glCompressedTexSubImage3DOES\0"
+ "\0"
+ /* _mesa_function_pool[31229]: Vertex2iv (offset 131) */
+ "p\0"
+ "glVertex2iv\0"
+ "\0"
+ /* _mesa_function_pool[31244]: GetProgramStringNV (will be remapped) */
+ "iip\0"
+ "glGetProgramStringNV\0"
+ "\0"
+ /* _mesa_function_pool[31270]: VertexAttribP3uiv (will be remapped) */
+ "iiip\0"
+ "glVertexAttribP3uiv\0"
+ "\0"
+ /* _mesa_function_pool[31296]: LineWidth (offset 168) */
+ "f\0"
+ "glLineWidth\0"
+ "\0"
+ /* _mesa_function_pool[31311]: GetActiveAtomicCounterBufferiv (will be remapped) */
+ "iiip\0"
+ "glGetActiveAtomicCounterBufferiv\0"
+ "\0"
+ /* _mesa_function_pool[31350]: Uniform2i (will be remapped) */
+ "iii\0"
+ "glUniform2i\0"
+ "glUniform2iARB\0"
+ "\0"
+ /* _mesa_function_pool[31382]: MultiDrawElementsBaseVertex (will be remapped) */
+ "ipipip\0"
+ "glMultiDrawElementsBaseVertex\0"
+ "\0"
+ /* _mesa_function_pool[31420]: FogFuncSGIS (dynamic) */
+ "ip\0"
+ "glFogFuncSGIS\0"
+ "\0"
+ /* _mesa_function_pool[31438]: GenPerfMonitorsAMD (will be remapped) */
+ "ip\0"
+ "glGenPerfMonitorsAMD\0"
+ "\0"
+ /* _mesa_function_pool[31463]: Binormal3svEXT (dynamic) */
+ "p\0"
+ "glBinormal3svEXT\0"
+ "\0"
+ /* _mesa_function_pool[31483]: GetBufferParameteri64v (will be remapped) */
+ "iip\0"
+ "glGetBufferParameteri64v\0"
+ "\0"
+ /* _mesa_function_pool[31513]: TexGendv (offset 189) */
+ "iip\0"
+ "glTexGendv\0"
+ "\0"
+ /* _mesa_function_pool[31529]: Uniform1fv (will be remapped) */
+ "iip\0"
+ "glUniform1fv\0"
+ "glUniform1fvARB\0"
+ "\0"
+ /* _mesa_function_pool[31563]: LightModelx (will be remapped) */
+ "ii\0"
+ "glLightModelxOES\0"
+ "glLightModelx\0"
+ "\0"
+ /* _mesa_function_pool[31598]: VertexAttribI3iEXT (will be remapped) */
+ "iiii\0"
+ "glVertexAttribI3iEXT\0"
+ "glVertexAttribI3i\0"
+ "\0"
+ /* _mesa_function_pool[31643]: EndConditionalRender (will be remapped) */
+ "\0"
+ "glEndConditionalRender\0"
+ "glEndConditionalRenderNV\0"
+ "\0"
+ /* _mesa_function_pool[31693]: GetBufferPointerv (will be remapped) */
+ "iip\0"
+ "glGetBufferPointerv\0"
+ "glGetBufferPointervARB\0"
+ "glGetBufferPointervOES\0"
+ "\0"
+ /* _mesa_function_pool[31764]: TextureLightEXT (dynamic) */
+ "i\0"
+ "glTextureLightEXT\0"
+ "\0"
+ /* _mesa_function_pool[31785]: ResetMinmax (offset 370) */
+ "i\0"
+ "glResetMinmax\0"
+ "glResetMinmaxEXT\0"
+ "\0"
+ /* _mesa_function_pool[31819]: SpriteParameterfSGIX (dynamic) */
+ "if\0"
+ "glSpriteParameterfSGIX\0"
+ "\0"
+ /* _mesa_function_pool[31846]: EnableClientState (offset 313) */
+ "i\0"
+ "glEnableClientState\0"
+ "\0"
+ /* _mesa_function_pool[31869]: VertexAttrib4sNV (will be remapped) */
+ "iiiii\0"
+ "glVertexAttrib4sNV\0"
+ "\0"
+ /* _mesa_function_pool[31895]: GetConvolutionParameterfv (offset 357) */
+ "iip\0"
+ "glGetConvolutionParameterfv\0"
+ "glGetConvolutionParameterfvEXT\0"
+ "\0"
+ /* _mesa_function_pool[31959]: GetActiveUniformName (will be remapped) */
+ "iiipp\0"
+ "glGetActiveUniformName\0"
+ "\0"
+ /* _mesa_function_pool[31989]: Uniform1iv (will be remapped) */
+ "iip\0"
+ "glUniform1iv\0"
+ "glUniform1ivARB\0"
+ "\0"
+ /* _mesa_function_pool[32023]: MultiTexCoord4i (offset 404) */
+ "iiiii\0"
+ "glMultiTexCoord4i\0"
+ "glMultiTexCoord4iARB\0"
+ "\0"
+ /* _mesa_function_pool[32069]: CombinerStageParameterfvNV (dynamic) */
+ "iip\0"
+ "glCombinerStageParameterfvNV\0"
+ "\0"
+ /* _mesa_function_pool[32103]: ProgramNamedParameter4dNV (will be remapped) */
+ "iipdddd\0"
+ "glProgramNamedParameter4dNV\0"
+ "\0"
+ /* _mesa_function_pool[32140]: GetMaterialfv (offset 269) */
+ "iip\0"
+ "glGetMaterialfv\0"
+ "\0"
+ /* _mesa_function_pool[32161]: WindowPos3fv (will be remapped) */
+ "p\0"
+ "glWindowPos3fv\0"
+ "glWindowPos3fvARB\0"
+ "glWindowPos3fvMESA\0"
+ "\0"
+ /* _mesa_function_pool[32216]: SecondaryColorPointerListIBM (dynamic) */
+ "iiipi\0"
+ "glSecondaryColorPointerListIBM\0"
+ "\0"
+ /* _mesa_function_pool[32254]: DeleteProgramsARB (will be remapped) */
+ "ip\0"
+ "glDeleteProgramsARB\0"
+ "glDeleteProgramsNV\0"
+ "\0"
+ /* _mesa_function_pool[32297]: VDPAUSurfaceAccessNV (will be remapped) */
+ "ii\0"
+ "glVDPAUSurfaceAccessNV\0"
+ "\0"
+ /* _mesa_function_pool[32324]: SetFragmentShaderConstantATI (will be remapped) */
+ "ip\0"
+ "glSetFragmentShaderConstantATI\0"
+ "\0"
+ /* _mesa_function_pool[32359]: Binormal3fEXT (dynamic) */
+ "fff\0"
+ "glBinormal3fEXT\0"
+ "\0"
+ /* _mesa_function_pool[32380]: CallList (offset 2) */
+ "i\0"
+ "glCallList\0"
+ "\0"
+ /* _mesa_function_pool[32394]: Materialfv (offset 170) */
+ "iip\0"
+ "glMaterialfv\0"
+ "\0"
+ /* _mesa_function_pool[32412]: TexCoord3fv (offset 113) */
+ "p\0"
+ "glTexCoord3fv\0"
+ "\0"
+ /* _mesa_function_pool[32429]: WeightfvARB (dynamic) */
+ "ip\0"
+ "glWeightfvARB\0"
+ "\0"
+ /* _mesa_function_pool[32447]: GetUniformBlockIndex (will be remapped) */
+ "ip\0"
+ "glGetUniformBlockIndex\0"
+ "\0"
+ /* _mesa_function_pool[32474]: FogCoordfvEXT (will be remapped) */
+ "p\0"
+ "glFogCoordfv\0"
+ "glFogCoordfvEXT\0"
+ "\0"
+ /* _mesa_function_pool[32506]: DetachShader (will be remapped) */
+ "ii\0"
+ "glDetachShader\0"
+ "\0"
+ /* _mesa_function_pool[32525]: ClearDepthf (will be remapped) */
+ "f\0"
+ "glClearDepthf\0"
+ "glClearDepthfOES\0"
+ "\0"
+ /* _mesa_function_pool[32559]: CopyTexSubImage2D (offset 326) */
+ "iiiiiiii\0"
+ "glCopyTexSubImage2D\0"
+ "glCopyTexSubImage2DEXT\0"
+ "\0"
+ /* _mesa_function_pool[32612]: SampleCoverage (will be remapped) */
+ "fi\0"
+ "glSampleCoverage\0"
+ "glSampleCoverageARB\0"
+ "\0"
+ /* _mesa_function_pool[32653]: GetObjectParameterivARB (will be remapped) */
+ "iip\0"
+ "glGetObjectParameterivARB\0"
+ "\0"
+ /* _mesa_function_pool[32684]: Color3iv (offset 16) */
+ "p\0"
+ "glColor3iv\0"
+ "\0"
+ /* _mesa_function_pool[32698]: GlobalAlphaFactorubSUN (dynamic) */
+ "i\0"
+ "glGlobalAlphaFactorubSUN\0"
+ "\0"
+ /* _mesa_function_pool[32726]: VertexAttrib4ubv (will be remapped) */
+ "ip\0"
+ "glVertexAttrib4ubv\0"
+ "glVertexAttrib4ubvARB\0"
+ "\0"
+ /* _mesa_function_pool[32771]: MultiDrawArrays (will be remapped) */
+ "ippi\0"
+ "glMultiDrawArrays\0"
+ "glMultiDrawArraysEXT\0"
+ "\0"
+ /* _mesa_function_pool[32816]: DrawElements (offset 311) */
+ "iiip\0"
+ "glDrawElements\0"
+ "\0"
+ /* _mesa_function_pool[32837]: BindVertexArrayAPPLE (will be remapped) */
+ "i\0"
+ "glBindVertexArrayAPPLE\0"
+ "\0"
+ /* _mesa_function_pool[32863]: GetProgramLocalParameterdvARB (will be remapped) */
+ "iip\0"
+ "glGetProgramLocalParameterdvARB\0"
+ "\0"
+ /* _mesa_function_pool[32900]: GetHistogramParameteriv (offset 363) */
+ "iip\0"
+ "glGetHistogramParameteriv\0"
+ "glGetHistogramParameterivEXT\0"
+ "\0"
+ /* _mesa_function_pool[32960]: TexGenxvOES (will be remapped) */
+ "iip\0"
+ "glTexGenxvOES\0"
+ "\0"
+ /* _mesa_function_pool[32979]: PointParameteriv (will be remapped) */
+ "ip\0"
+ "glPointParameteriv\0"
+ "glPointParameterivNV\0"
+ "\0"
+ /* _mesa_function_pool[33023]: UniformMatrix2x4fv (will be remapped) */
+ "iiip\0"
+ "glUniformMatrix2x4fv\0"
+ "\0"
+ /* _mesa_function_pool[33050]: SecondaryColor3d (will be remapped) */
+ "ddd\0"
+ "glSecondaryColor3d\0"
+ "glSecondaryColor3dEXT\0"
+ "\0"
+ /* _mesa_function_pool[33096]: GetConvolutionFilter (offset 356) */
+ "iiip\0"
+ "glGetConvolutionFilter\0"
+ "glGetConvolutionFilterEXT\0"
+ "\0"
+ /* _mesa_function_pool[33151]: GetProgramivARB (will be remapped) */
+ "iip\0"
+ "glGetProgramivARB\0"
+ "\0"
+ /* _mesa_function_pool[33174]: FlushVertexArrayRangeNV (dynamic) */
+ "\0"
+ "glFlushVertexArrayRangeNV\0"
+ "\0"
+ /* _mesa_function_pool[33202]: Uniform2iv (will be remapped) */
+ "iip\0"
+ "glUniform2iv\0"
+ "glUniform2ivARB\0"
+ "\0"
+ /* _mesa_function_pool[33236]: GetFixedv (will be remapped) */
+ "ip\0"
+ "glGetFixedvOES\0"
+ "glGetFixedv\0"
+ "\0"
+ /* _mesa_function_pool[33267]: BindRenderbuffer (will be remapped) */
+ "ii\0"
+ "glBindRenderbuffer\0"
+ "glBindRenderbufferOES\0"
+ "\0"
+ /* _mesa_function_pool[33312]: ProgramParameters4dvNV (will be remapped) */
+ "iiip\0"
+ "glProgramParameters4dvNV\0"
+ "\0"
+ /* _mesa_function_pool[33343]: TexCoord2fColor3fVertex3fvSUN (dynamic) */
+ "ppp\0"
+ "glTexCoord2fColor3fVertex3fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[33380]: EvalPoint2 (offset 239) */
+ "ii\0"
+ "glEvalPoint2\0"
+ "\0"
+ /* _mesa_function_pool[33397]: EvalPoint1 (offset 237) */
+ "i\0"
+ "glEvalPoint1\0"
+ "\0"
+ /* _mesa_function_pool[33413]: Binormal3dvEXT (dynamic) */
+ "p\0"
+ "glBinormal3dvEXT\0"
+ "\0"
+ /* _mesa_function_pool[33433]: PopMatrix (offset 297) */
+ "\0"
+ "glPopMatrix\0"
+ "\0"
+ /* _mesa_function_pool[33447]: FinishFenceNV (dynamic) */
+ "i\0"
+ "glFinishFenceNV\0"
+ "\0"
+ /* _mesa_function_pool[33466]: GetFogFuncSGIS (dynamic) */
+ "p\0"
+ "glGetFogFuncSGIS\0"
+ "\0"
+ /* _mesa_function_pool[33486]: DeleteFramebuffers (will be remapped) */
+ "ip\0"
+ "glDeleteFramebuffers\0"
+ "glDeleteFramebuffersEXT\0"
+ "glDeleteFramebuffersOES\0"
+ "\0"
+ /* _mesa_function_pool[33559]: SecondaryColor3fEXT (will be remapped) */
+ "fff\0"
+ "glSecondaryColor3f\0"
+ "glSecondaryColor3fEXT\0"
+ "\0"
+ /* _mesa_function_pool[33605]: GetTexGeniv (offset 280) */
+ "iip\0"
+ "glGetTexGeniv\0"
+ "glGetTexGenivOES\0"
+ "\0"
+ /* _mesa_function_pool[33641]: CombinerInputNV (dynamic) */
+ "iiiiii\0"
+ "glCombinerInputNV\0"
+ "\0"
+ /* _mesa_function_pool[33667]: VertexBindingDivisor (will be remapped) */
+ "ii\0"
+ "glVertexBindingDivisor\0"
+ "\0"
+ /* _mesa_function_pool[33694]: FramebufferRenderbuffer (will be remapped) */
+ "iiii\0"
+ "glFramebufferRenderbuffer\0"
+ "glFramebufferRenderbufferEXT\0"
+ "glFramebufferRenderbufferOES\0"
+ "\0"
+ /* _mesa_function_pool[33784]: IsProgramARB (will be remapped) */
+ "i\0"
+ "glIsProgramARB\0"
+ "glIsProgramNV\0"
+ "\0"
+ /* _mesa_function_pool[33816]: VertexAttrib4uiv (will be remapped) */
+ "ip\0"
+ "glVertexAttrib4uiv\0"
+ "glVertexAttrib4uivARB\0"
+ "\0"
+ /* _mesa_function_pool[33861]: VertexAttrib4Nsv (will be remapped) */
+ "ip\0"
+ "glVertexAttrib4Nsv\0"
+ "glVertexAttrib4NsvARB\0"
+ "\0"
+ /* _mesa_function_pool[33906]: Map2d (offset 222) */
+ "iddiiddiip\0"
+ "glMap2d\0"
+ "\0"
+ /* _mesa_function_pool[33926]: Map2f (offset 223) */
+ "iffiiffiip\0"
+ "glMap2f\0"
+ "\0"
+ /* _mesa_function_pool[33946]: ProgramStringARB (will be remapped) */
+ "iiip\0"
+ "glProgramStringARB\0"
+ "\0"
+ /* _mesa_function_pool[33971]: MultiTexCoord4x (will be remapped) */
+ "iiiii\0"
+ "glMultiTexCoord4xOES\0"
+ "glMultiTexCoord4x\0"
+ "\0"
+ /* _mesa_function_pool[34017]: Vertex4s (offset 148) */
+ "iiii\0"
+ "glVertex4s\0"
+ "\0"
+ /* _mesa_function_pool[34034]: TexCoord4fVertex4fvSUN (dynamic) */
+ "pp\0"
+ "glTexCoord4fVertex4fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[34063]: UnmapBuffer (will be remapped) */
+ "i\0"
+ "glUnmapBuffer\0"
+ "glUnmapBufferARB\0"
+ "glUnmapBufferOES\0"
+ "\0"
+ /* _mesa_function_pool[34114]: MultiTexCoord4s (offset 406) */
+ "iiiii\0"
+ "glMultiTexCoord4s\0"
+ "glMultiTexCoord4sARB\0"
+ "\0"
+ /* _mesa_function_pool[34160]: VertexAttribI2iEXT (will be remapped) */
+ "iii\0"
+ "glVertexAttribI2iEXT\0"
+ "glVertexAttribI2i\0"
+ "\0"
+ /* _mesa_function_pool[34204]: Vertex4f (offset 144) */
+ "ffff\0"
+ "glVertex4f\0"
+ "\0"
+ /* _mesa_function_pool[34221]: EvalCoord1d (offset 228) */
+ "d\0"
+ "glEvalCoord1d\0"
+ "\0"
+ /* _mesa_function_pool[34238]: Vertex4d (offset 142) */
+ "dddd\0"
+ "glVertex4d\0"
+ "\0"
+ /* _mesa_function_pool[34255]: RasterPos4dv (offset 79) */
+ "p\0"
+ "glRasterPos4dv\0"
+ "\0"
+ /* _mesa_function_pool[34273]: GetGraphicsResetStatusARB (will be remapped) */
+ "\0"
+ "glGetGraphicsResetStatusARB\0"
+ "\0"
+ /* _mesa_function_pool[34303]: UseShaderProgramEXT (will be remapped) */
+ "ii\0"
+ "glUseShaderProgramEXT\0"
+ "\0"
+ /* _mesa_function_pool[34329]: VertexAttribP2uiv (will be remapped) */
+ "iiip\0"
+ "glVertexAttribP2uiv\0"
+ "\0"
+ /* _mesa_function_pool[34355]: VertexAttrib4bv (will be remapped) */
+ "ip\0"
+ "glVertexAttrib4bv\0"
+ "glVertexAttrib4bvARB\0"
+ "\0"
+ /* _mesa_function_pool[34398]: DebugMessageControl (will be remapped) */
+ "iiiipi\0"
+ "glDebugMessageControl\0"
+ "\0"
+ /* _mesa_function_pool[34428]: GetTexGenfv (offset 279) */
+ "iip\0"
+ "glGetTexGenfv\0"
+ "glGetTexGenfvOES\0"
+ "\0"
+ /* _mesa_function_pool[34464]: MultiTexCoord4d (offset 400) */
+ "idddd\0"
+ "glMultiTexCoord4d\0"
+ "glMultiTexCoord4dARB\0"
+ "\0"
+ /* _mesa_function_pool[34510]: Vertex4i (offset 146) */
+ "iiii\0"
+ "glVertex4i\0"
+ "\0"
+ /* _mesa_function_pool[34527]: VertexWeightPointerEXT (dynamic) */
+ "iiip\0"
+ "glVertexWeightPointerEXT\0"
+ "\0"
+ /* _mesa_function_pool[34558]: GetHistogram (offset 361) */
+ "iiiip\0"
+ "glGetHistogram\0"
+ "glGetHistogramEXT\0"
+ "\0"
+ /* _mesa_function_pool[34598]: ActiveStencilFaceEXT (will be remapped) */
+ "i\0"
+ "glActiveStencilFaceEXT\0"
+ "\0"
+ /* _mesa_function_pool[34624]: Translatex (will be remapped) */
+ "iii\0"
+ "glTranslatexOES\0"
+ "glTranslatex\0"
+ "\0"
+ /* _mesa_function_pool[34658]: StencilFuncSeparateATI (will be remapped) */
+ "iiii\0"
+ "glStencilFuncSeparateATI\0"
+ "\0"
+ /* _mesa_function_pool[34689]: Materialf (offset 169) */
+ "iif\0"
+ "glMaterialf\0"
+ "\0"
+ /* _mesa_function_pool[34706]: GetnMapfvARB (will be remapped) */
+ "iiip\0"
+ "glGetnMapfvARB\0"
+ "\0"
+ /* _mesa_function_pool[34727]: IglooInterfaceSGIX (dynamic) */
+ "ip\0"
+ "glIglooInterfaceSGIX\0"
+ "\0"
+ /* _mesa_function_pool[34752]: Materiali (offset 171) */
+ "iii\0"
+ "glMateriali\0"
+ "\0"
+ /* _mesa_function_pool[34769]: VertexAttrib4dNV (will be remapped) */
+ "idddd\0"
+ "glVertexAttrib4dNV\0"
+ "\0"
+ /* _mesa_function_pool[34795]: MultiModeDrawElementsIBM (will be remapped) */
+ "ppipii\0"
+ "glMultiModeDrawElementsIBM\0"
+ "\0"
+ /* _mesa_function_pool[34830]: Indexsv (offset 51) */
+ "p\0"
+ "glIndexsv\0"
+ "\0"
+ /* _mesa_function_pool[34843]: VertexAttrib1fvARB (will be remapped) */
+ "ip\0"
+ "glVertexAttrib1fv\0"
+ "glVertexAttrib1fvARB\0"
+ "\0"
+ /* _mesa_function_pool[34886]: LightModelfv (offset 164) */
+ "ip\0"
+ "glLightModelfv\0"
+ "\0"
+ /* _mesa_function_pool[34905]: TexCoord2dv (offset 103) */
+ "p\0"
+ "glTexCoord2dv\0"
+ "\0"
+ /* _mesa_function_pool[34922]: ProgramParameters4fvNV (will be remapped) */
+ "iiip\0"
+ "glProgramParameters4fvNV\0"
+ "\0"
+ /* _mesa_function_pool[34953]: EvalCoord1dv (offset 229) */
+ "p\0"
+ "glEvalCoord1dv\0"
+ "\0"
+ /* _mesa_function_pool[34971]: ReplacementCodeuiVertex3fSUN (dynamic) */
+ "ifff\0"
+ "glReplacementCodeuiVertex3fSUN\0"
+ "\0"
+ /* _mesa_function_pool[35008]: MapBufferRange (will be remapped) */
+ "iiii\0"
+ "glMapBufferRange\0"
+ "glMapBufferRangeEXT\0"
+ "\0"
+ /* _mesa_function_pool[35051]: Translated (offset 303) */
+ "ddd\0"
+ "glTranslated\0"
+ "\0"
+ /* _mesa_function_pool[35069]: Translatef (offset 304) */
+ "fff\0"
+ "glTranslatef\0"
+ "\0"
+ /* _mesa_function_pool[35087]: StencilMask (offset 209) */
+ "i\0"
+ "glStencilMask\0"
+ "\0"
+ /* _mesa_function_pool[35104]: MinSampleShading (will be remapped) */
+ "f\0"
+ "glMinSampleShadingARB\0"
+ "glMinSampleShading\0"
+ "\0"
+ /* _mesa_function_pool[35148]: MultTransposeMatrixd (will be remapped) */
+ "p\0"
+ "glMultTransposeMatrixd\0"
+ "glMultTransposeMatrixdARB\0"
+ "\0"
+ /* _mesa_function_pool[35200]: MultTransposeMatrixf (will be remapped) */
+ "p\0"
+ "glMultTransposeMatrixf\0"
+ "glMultTransposeMatrixfARB\0"
+ "\0"
+ /* _mesa_function_pool[35252]: GetLightiv (offset 265) */
+ "iip\0"
+ "glGetLightiv\0"
+ "\0"
+ /* _mesa_function_pool[35270]: DrawElementsInstancedBaseInstance (will be remapped) */
+ "iiipii\0"
+ "glDrawElementsInstancedBaseInstance\0"
+ "\0"
+ /* _mesa_function_pool[35314]: IsList (offset 287) */
+ "i\0"
+ "glIsList\0"
+ "\0"
+ /* _mesa_function_pool[35326]: PointSizex (will be remapped) */
+ "i\0"
+ "glPointSizexOES\0"
+ "glPointSizex\0"
+ "\0"
+ /* _mesa_function_pool[35358]: GetnPixelMapusvARB (will be remapped) */
+ "iip\0"
+ "glGetnPixelMapusvARB\0"
+ "\0"
+ /* _mesa_function_pool[35384]: IsSync (will be remapped) */
+ "i\0"
+ "glIsSync\0"
+ "\0"
+ /* _mesa_function_pool[35396]: RenderMode (offset 196) */
+ "i\0"
+ "glRenderMode\0"
+ "\0"
+ /* _mesa_function_pool[35412]: PrimitiveRestartIndex (will be remapped) */
+ "i\0"
+ "glPrimitiveRestartIndex\0"
+ "glPrimitiveRestartIndexNV\0"
+ "\0"
+ /* _mesa_function_pool[35465]: GetMapControlPointsNV (dynamic) */
+ "iiiiiip\0"
+ "glGetMapControlPointsNV\0"
+ "\0"
+ /* _mesa_function_pool[35498]: ClearBufferiv (will be remapped) */
+ "iip\0"
+ "glClearBufferiv\0"
+ "\0"
+ /* _mesa_function_pool[35519]: ProgramLocalParameter4fARB (will be remapped) */
+ "iiffff\0"
+ "glProgramLocalParameter4fARB\0"
+ "\0"
+ /* _mesa_function_pool[35556]: SpriteParameterivSGIX (dynamic) */
+ "ip\0"
+ "glSpriteParameterivSGIX\0"
+ "\0"
+ /* _mesa_function_pool[35584]: MultiTexCoord1fARB (offset 378) */
+ "if\0"
+ "glMultiTexCoord1f\0"
+ "glMultiTexCoord1fARB\0"
+ "\0"
+ /* _mesa_function_pool[35627]: LoadName (offset 198) */
+ "i\0"
+ "glLoadName\0"
+ "\0"
+ /* _mesa_function_pool[35641]: GetInternalformativ (will be remapped) */
+ "iiiip\0"
+ "glGetInternalformativ\0"
+ "\0"
+ /* _mesa_function_pool[35670]: VertexAttribs4ubvNV (will be remapped) */
+ "iip\0"
+ "glVertexAttribs4ubvNV\0"
+ "\0"
+ /* _mesa_function_pool[35697]: Frustumf (will be remapped) */
+ "ffffff\0"
+ "glFrustumfOES\0"
+ "glFrustumf\0"
+ "\0"
+ /* _mesa_function_pool[35730]: WeightsvARB (dynamic) */
+ "ip\0"
+ "glWeightsvARB\0"
+ "\0"
+ /* _mesa_function_pool[35748]: GetIntegeri_v (will be remapped) */
+ "iip\0"
+ "glGetIntegerIndexedvEXT\0"
+ "glGetIntegeri_v\0"
+ "\0"
+ /* _mesa_function_pool[35793]: LightModelxv (will be remapped) */
+ "ip\0"
+ "glLightModelxvOES\0"
+ "glLightModelxv\0"
+ "\0"
+ /* _mesa_function_pool[35830]: IsTransformFeedback (will be remapped) */
+ "i\0"
+ "glIsTransformFeedback\0"
+ "\0"
+ /* _mesa_function_pool[35855]: LoadIdentityDeformationMapSGIX (dynamic) */
+ "i\0"
+ "glLoadIdentityDeformationMapSGIX\0"
+ "\0"
+ /* _mesa_function_pool[35891]: CopyTexSubImage1D (offset 325) */
+ "iiiiii\0"
+ "glCopyTexSubImage1D\0"
+ "glCopyTexSubImage1DEXT\0"
+ "\0"
+ /* _mesa_function_pool[35942]: ReplacementCodeuiColor3fVertex3fvSUN (dynamic) */
+ "ppp\0"
+ "glReplacementCodeuiColor3fVertex3fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[35986]: CullFace (offset 152) */
+ "i\0"
+ "glCullFace\0"
+ "\0"
+ /* _mesa_function_pool[36000]: BindTexture (offset 307) */
+ "ii\0"
+ "glBindTexture\0"
+ "glBindTextureEXT\0"
+ "\0"
+ /* _mesa_function_pool[36035]: VertexAttribs2fvNV (will be remapped) */
+ "iip\0"
+ "glVertexAttribs2fvNV\0"
+ "\0"
+ /* _mesa_function_pool[36061]: MultiTexCoord4fARB (offset 402) */
+ "iffff\0"
+ "glMultiTexCoord4f\0"
+ "glMultiTexCoord4fARB\0"
+ "\0"
+ /* _mesa_function_pool[36107]: ResumeTransformFeedback (will be remapped) */
+ "\0"
+ "glResumeTransformFeedback\0"
+ "\0"
+ /* _mesa_function_pool[36135]: PushDebugGroup (will be remapped) */
+ "iiip\0"
+ "glPushDebugGroup\0"
+ "\0"
+ /* _mesa_function_pool[36158]: DrawMeshArraysSUN (dynamic) */
+ "iiii\0"
+ "glDrawMeshArraysSUN\0"
+ "\0"
+ /* _mesa_function_pool[36184]: SecondaryColor3i (will be remapped) */
+ "iii\0"
+ "glSecondaryColor3i\0"
+ "glSecondaryColor3iEXT\0"
+ "\0"
+ /* _mesa_function_pool[36230]: StencilFunc (offset 243) */
+ "iii\0"
+ "glStencilFunc\0"
+ "\0"
+ /* _mesa_function_pool[36249]: CopyPixels (offset 255) */
+ "iiiii\0"
+ "glCopyPixels\0"
+ "\0"
+ /* _mesa_function_pool[36269]: Rectsv (offset 93) */
+ "pp\0"
+ "glRectsv\0"
+ "\0"
+ /* _mesa_function_pool[36282]: WindowPos3iv (will be remapped) */
+ "p\0"
+ "glWindowPos3iv\0"
+ "glWindowPos3ivARB\0"
+ "glWindowPos3ivMESA\0"
+ "\0"
+ /* _mesa_function_pool[36337]: ReplacementCodeuivSUN (dynamic) */
+ "p\0"
+ "glReplacementCodeuivSUN\0"
+ "\0"
+ /* _mesa_function_pool[36364]: DrawElementsBaseVertex (will be remapped) */
+ "iiipi\0"
+ "glDrawElementsBaseVertex\0"
+ "\0"
+ /* _mesa_function_pool[36396]: CopyConvolutionFilter2D (offset 355) */
+ "iiiiii\0"
+ "glCopyConvolutionFilter2D\0"
+ "glCopyConvolutionFilter2DEXT\0"
+ "\0"
+ /* _mesa_function_pool[36459]: ApplyTextureEXT (dynamic) */
+ "i\0"
+ "glApplyTextureEXT\0"
+ "\0"
+ /* _mesa_function_pool[36480]: CopyBufferSubData (will be remapped) */
+ "iiiii\0"
+ "glCopyBufferSubData\0"
+ "\0"
+ /* _mesa_function_pool[36507]: NormalPointer (offset 318) */
+ "iip\0"
+ "glNormalPointer\0"
+ "\0"
+ /* _mesa_function_pool[36528]: TexParameterfv (offset 179) */
+ "iip\0"
+ "glTexParameterfv\0"
+ "\0"
+ /* _mesa_function_pool[36550]: ReplacementCodeuiNormal3fVertex3fvSUN (dynamic) */
+ "ppp\0"
+ "glReplacementCodeuiNormal3fVertex3fvSUN\0"
+ "\0"
+ /* _mesa_function_pool[36595]: GetCombinerOutputParameterfvNV (dynamic) */
+ "iiip\0"
+ "glGetCombinerOutputParameterfvNV\0"
+ "\0"
+ /* _mesa_function_pool[36634]: WindowPos4iMESA (will be remapped) */
+ "iiii\0"
+ "glWindowPos4iMESA\0"
+ "\0"
+ /* _mesa_function_pool[36658]: VertexAttrib4Nubv (will be remapped) */
+ "ip\0"
+ "glVertexAttrib4Nubv\0"
+ "glVertexAttrib4NubvARB\0"
+ "\0"
+ /* _mesa_function_pool[36705]: SecondaryColor3ui (will be remapped) */
+ "iii\0"
+ "glSecondaryColor3ui\0"
+ "glSecondaryColor3uiEXT\0"
+ "\0"
+ /* _mesa_function_pool[36753]: VertexAttribI3uivEXT (will be remapped) */
+ "ip\0"
+ "glVertexAttribI3uivEXT\0"
+ "glVertexAttribI3uiv\0"
+ "\0"
+ /* _mesa_function_pool[36800]: UniformMatrix3x4fv (will be remapped) */
+ "iiip\0"
+ "glUniformMatrix3x4fv\0"
+ "\0"
+ /* _mesa_function_pool[36827]: ClipPlane (offset 150) */
+ "ip\0"
+ "glClipPlane\0"
+ "\0"
+ /* _mesa_function_pool[36843]: Recti (offset 90) */
+ "iiii\0"
+ "glRecti\0"
+ "\0"
+ /* _mesa_function_pool[36857]: VertexAttribI3ivEXT (will be remapped) */
+ "ip\0"
+ "glVertexAttribI3ivEXT\0"
+ "glVertexAttribI3iv\0"
+ "\0"
+ /* _mesa_function_pool[36902]: DrawRangeElementsBaseVertex (will be remapped) */
+ "iiiiipi\0"
+ "glDrawRangeElementsBaseVertex\0"
+ "\0"
+ /* _mesa_function_pool[36941]: VertexAttribIPointer (will be remapped) */
+ "iiiip\0"
+ "glVertexAttribIPointerEXT\0"
+ "glVertexAttribIPointer\0"
+ "\0"
+ /* _mesa_function_pool[36997]: SecondaryColor3usv (will be remapped) */
+ "p\0"
+ "glSecondaryColor3usv\0"
+ "glSecondaryColor3usvEXT\0"
+ "\0"
+ /* _mesa_function_pool[37045]: VertexP2uiv (will be remapped) */
+ "ip\0"
+ "glVertexP2uiv\0"
+ "\0"
+ /* _mesa_function_pool[37063]: Fogxv (will be remapped) */
+ "ip\0"
+ "glFogxvOES\0"
+ "glFogxv\0"
+ "\0"
+ /* _mesa_function_pool[37086]: MultiTexCoord3dv (offset 393) */
+ "ip\0"
+ "glMultiTexCoord3dv\0"
+ "glMultiTexCoord3dvARB\0"
+ "\0"
+ /* _mesa_function_pool[37131]: WindowPos4fvMESA (will be remapped) */
+ "p\0"
+ "glWindowPos4fvMESA\0"
+ "\0"
+ /* _mesa_function_pool[37153]: GetPixelMapuiv (offset 272) */
+ "ip\0"
+ "glGetPixelMapuiv\0"
+ "\0"
+ /* _mesa_function_pool[37174]: Rectf (offset 88) */
+ "ffff\0"
+ "glRectf\0"
+ "\0"
+ /* _mesa_function_pool[37188]: VertexAttrib1sNV (will be remapped) */
+ "ii\0"
+ "glVertexAttrib1sNV\0"
+ "\0"
+ /* _mesa_function_pool[37211]: Indexfv (offset 47) */
+ "p\0"
+ "glIndexfv\0"
+ "\0"
+ /* _mesa_function_pool[37224]: ColorP3uiv (will be remapped) */
+ "ip\0"
+ "glColorP3uiv\0"
+ "\0"
+ /* _mesa_function_pool[37241]: TexParameterIuiv (will be remapped) */
+ "iip\0"
+ "glTexParameterIuivEXT\0"
+ "glTexParameterIuiv\0"
+ "\0"
+ /* _mesa_function_pool[37287]: BlitFramebuffer (will be remapped) */
+ "iiiiiiiiii\0"
+ "glBlitFramebuffer\0"
+ "glBlitFramebufferEXT\0"
+ "\0"
+ /* _mesa_function_pool[37338]: GetPointerv (offset 329) */
+ "ip\0"
+ "glGetPointerv\0"
+ "glGetPointervEXT\0"
+ "\0"
+ /* _mesa_function_pool[37373]: Tangent3bEXT (dynamic) */
+ "iii\0"
+ "glTangent3bEXT\0"
+ "\0"
+ /* _mesa_function_pool[37393]: CombinerParameterfNV (dynamic) */
+ "if\0"
+ "glCombinerParameterfNV\0"
+ "\0"
+ /* _mesa_function_pool[37420]: IndexMask (offset 212) */
+ "i\0"
+ "glIndexMask\0"
+ "\0"
+ /* _mesa_function_pool[37435]: CreateShaderObjectARB (will be remapped) */
+ "i\0"
+ "glCreateShaderObjectARB\0"
+ "\0"
+ /* _mesa_function_pool[37462]: ReplacementCodeuiSUN (dynamic) */
+ "i\0"
+ "glReplacementCodeuiSUN\0"
+ "\0"
+ /* _mesa_function_pool[37488]: GetFloatv (offset 262) */
+ "ip\0"
+ "glGetFloatv\0"
+ "\0"
+ /* _mesa_function_pool[37504]: CombinerOutputNV (dynamic) */
+ "iiiiiiiiii\0"
+ "glCombinerOutputNV\0"
+ "\0"
+ /* _mesa_function_pool[37535]: MultiTexCoord3i (offset 396) */
+ "iiii\0"
+ "glMultiTexCoord3i\0"
+ "glMultiTexCoord3iARB\0"
+ "\0"
+ /* _mesa_function_pool[37580]: GetVertexAttribIiv (will be remapped) */
+ "iip\0"
+ "glGetVertexAttribIivEXT\0"
+ "glGetVertexAttribIiv\0"
+ "\0"
+ /* _mesa_function_pool[37630]: ClientWaitSync (will be remapped) */
+ "iii\0"
+ "glClientWaitSync\0"
+ "\0"
+ /* _mesa_function_pool[37652]: TexCoord4s (offset 124) */
+ "iiii\0"
+ "glTexCoord4s\0"
+ "\0"
+ /* _mesa_function_pool[37671]: GetPerfMonitorGroupsAMD (will be remapped) */
+ "pip\0"
+ "glGetPerfMonitorGroupsAMD\0"
+ "\0"
+ /* _mesa_function_pool[37702]: TexCoord3sv (offset 117) */
+ "p\0"
+ "glTexCoord3sv\0"
+ "\0"
+ /* _mesa_function_pool[37719]: VertexAttrib2dNV (will be remapped) */
+ "idd\0"
+ "glVertexAttrib2dNV\0"
+ "\0"
+ /* _mesa_function_pool[37743]: FogCoorddv (will be remapped) */
+ "p\0"
+ "glFogCoorddv\0"
+ "glFogCoorddvEXT\0"
+ "\0"
+ /* _mesa_function_pool[37775]: PopAttrib (offset 218) */
+ "\0"
+ "glPopAttrib\0"
+ "\0"
+ /* _mesa_function_pool[37789]: Fogfv (offset 154) */
+ "ip\0"
+ "glFogfv\0"
+ "\0"
+ /* _mesa_function_pool[37801]: ObjectPurgeableAPPLE (will be remapped) */
+ "iii\0"
+ "glObjectPurgeableAPPLE\0"
+ "\0"
+ /* _mesa_function_pool[37829]: InitNames (offset 197) */
+ "\0"
+ "glInitNames\0"
+ "\0"
+ /* _mesa_function_pool[37843]: Normal3sv (offset 61) */
+ "p\0"
+ "glNormal3sv\0"
+ "\0"
+ /* _mesa_function_pool[37858]: Minmax (offset 368) */
+ "iii\0"
+ "glMinmax\0"
+ "glMinmaxEXT\0"
+ "\0"
+ /* _mesa_function_pool[37884]: BufferData (will be remapped) */
+ "iipi\0"
+ "glBufferData\0"
+ "glBufferDataARB\0"
+ "\0"
+ /* _mesa_function_pool[37919]: DeleteQueries (will be remapped) */
+ "ip\0"
+ "glDeleteQueries\0"
+ "glDeleteQueriesARB\0"
+ "\0"
+ /* _mesa_function_pool[37958]: TexCoord4d (offset 118) */
+ "dddd\0"
+ "glTexCoord4d\0"
+ "\0"
+ /* _mesa_function_pool[37977]: IsEnabledi (will be remapped) */
+ "ii\0"
+ "glIsEnabledIndexedEXT\0"
+ "glIsEnabledi\0"
+ "\0"
+ /* _mesa_function_pool[38016]: TexCoord4f (offset 120) */
+ "ffff\0"
+ "glTexCoord4f\0"
+ "\0"
+ /* _mesa_function_pool[38035]: Uniform3ui (will be remapped) */
+ "iiii\0"
+ "glUniform3uiEXT\0"
+ "glUniform3ui\0"
+ "\0"
+ /* _mesa_function_pool[38070]: InvalidateFramebuffer (will be remapped) */
+ "iip\0"
+ "glInvalidateFramebuffer\0"
+ "\0"
+ /* _mesa_function_pool[38099]: GetFragmentMaterialfvSGIX (dynamic) */
+ "iip\0"
+ "glGetFragmentMaterialfvSGIX\0"
+ "\0"
+ /* _mesa_function_pool[38132]: Binormal3fvEXT (dynamic) */
+ "p\0"
+ "glBinormal3fvEXT\0"
+ "\0"
+ /* _mesa_function_pool[38152]: GetBooleanv (offset 258) */
+ "ip\0"
+ "glGetBooleanv\0"
+ "\0"
+ /* _mesa_function_pool[38170]: ColorFragmentOp3ATI (will be remapped) */
+ "iiiiiiiiiiiii\0"
+ "glColorFragmentOp3ATI\0"
+ "\0"
+ /* _mesa_function_pool[38207]: Hint (offset 158) */
+ "ii\0"
+ "glHint\0"
+ "\0"
+ /* _mesa_function_pool[38218]: DeletePerfMonitorsAMD (will be remapped) */
+ "ip\0"
+ "glDeletePerfMonitorsAMD\0"
+ "\0"
+ /* _mesa_function_pool[38246]: Color4dv (offset 28) */
+ "p\0"
+ "glColor4dv\0"
+ "\0"
+ /* _mesa_function_pool[38260]: IsAsyncMarkerSGIX (dynamic) */
+ "i\0"
+ "glIsAsyncMarkerSGIX\0"
+ "\0"
+ /* _mesa_function_pool[38283]: AreProgramsResidentNV (will be remapped) */
+ "ipp\0"
+ "glAreProgramsResidentNV\0"
+ "\0"
+ /* _mesa_function_pool[38312]: DisableVertexAttribArray (will be remapped) */
+ "i\0"
+ "glDisableVertexAttribArray\0"
+ "glDisableVertexAttribArrayARB\0"
+ "\0"
+ /* _mesa_function_pool[38372]: CopyColorSubTable (offset 347) */
+ "iiiii\0"
+ "glCopyColorSubTable\0"
+ "glCopyColorSubTableEXT\0"
+ "\0"
+ /* _mesa_function_pool[38422]: WeightdvARB (dynamic) */
+ "ip\0"
+ "glWeightdvARB\0"
+ "\0"
+ /* _mesa_function_pool[38440]: PollInstrumentsSGIX (dynamic) */
+ "p\0"
+ "glPollInstrumentsSGIX\0"
+ "\0"
+ /* _mesa_function_pool[38465]: VertexAttrib3dvNV (will be remapped) */
+ "ip\0"
+ "glVertexAttrib3dvNV\0"
+ "\0"
+ /* _mesa_function_pool[38489]: GetObjectParameterfvARB (will be remapped) */
+ "iip\0"
+ "glGetObjectParameterfvARB\0"
+ "\0"
+ /* _mesa_function_pool[38520]: Vertex4iv (offset 147) */
+ "p\0"
+ "glVertex4iv\0"
+ "\0"
+ /* _mesa_function_pool[38535]: BufferSubData (will be remapped) */
+ "iiip\0"
+ "glBufferSubData\0"
+ "glBufferSubDataARB\0"
+ "\0"
+ /* _mesa_function_pool[38576]: TexCoord4dv (offset 119) */
+ "p\0"
+ "glTexCoord4dv\0"
+ "\0"
+ /* _mesa_function_pool[38593]: LockArraysEXT (will be remapped) */
+ "ii\0"
+ "glLockArraysEXT\0"
+ "\0"
+ /* _mesa_function_pool[38613]: Begin (offset 7) */
+ "i\0"
+ "glBegin\0"
+ "\0"
+ /* _mesa_function_pool[38624]: LightModeli (offset 165) */
+ "ii\0"
+ "glLightModeli\0"
+ "\0"
+ /* _mesa_function_pool[38642]: FogCoordPointerListIBM (dynamic) */
+ "iipi\0"
+ "glFogCoordPointerListIBM\0"
+ "\0"
+ /* _mesa_function_pool[38673]: ObjectPtrLabel (will be remapped) */
+ "pip\0"
+ "glObjectPtrLabel\0"
+ "\0"
+ /* _mesa_function_pool[38695]: Rectfv (offset 89) */
+ "pp\0"
+ "glRectfv\0"
+ "\0"
+ /* _mesa_function_pool[38708]: ClipPlanex (will be remapped) */
+ "ip\0"
+ "glClipPlanexOES\0"
+ "glClipPlanex\0"
+ "\0"
+ /* _mesa_function_pool[38741]: Uniform4f (will be remapped) */
+ "iffff\0"
+ "glUniform4f\0"
+ "glUniform4fARB\0"
+ "\0"
+ /* _mesa_function_pool[38775]: LightModelf (offset 163) */
+ "if\0"
+ "glLightModelf\0"
+ "\0"
+ /* _mesa_function_pool[38793]: GetTexParameterfv (offset 282) */
+ "iip\0"
+ "glGetTexParameterfv\0"
+ "\0"
+ /* _mesa_function_pool[38818]: GetLightfv (offset 264) */
+ "iip\0"
+ "glGetLightfv\0"
+ "\0"
+ /* _mesa_function_pool[38836]: PixelTransformParameterivEXT (dynamic) */
+ "iip\0"
+ "glPixelTransformParameterivEXT\0"
+ "\0"
+ /* _mesa_function_pool[38872]: BinormalPointerEXT (dynamic) */
+ "iip\0"
+ "glBinormalPointerEXT\0"
+ "\0"
+ /* _mesa_function_pool[38898]: VertexP4uiv (will be remapped) */
+ "ip\0"
+ "glVertexP4uiv\0"
+ "\0"
+ /* _mesa_function_pool[38916]: GetCombinerInputParameterivNV (dynamic) */
+ "iiiip\0"
+ "glGetCombinerInputParameterivNV\0"
+ "\0"
+ /* _mesa_function_pool[38955]: Disable (offset 214) */
+ "i\0"
+ "glDisable\0"
+ "\0"
+ /* _mesa_function_pool[38968]: ClipPlanef (will be remapped) */
+ "ip\0"
+ "glClipPlanefOES\0"
+ "glClipPlanef\0"
+ "\0"
+ /* _mesa_function_pool[39001]: MultiTexCoord2fvARB (offset 387) */
+ "ip\0"
+ "glMultiTexCoord2fv\0"
+ "glMultiTexCoord2fvARB\0"
+ "\0"
+ /* _mesa_function_pool[39046]: TextureBarrierNV (will be remapped) */
+ "\0"
+ "glTextureBarrierNV\0"
+ "\0"
+ /* _mesa_function_pool[39067]: GetPerfMonitorCounterStringAMD (will be remapped) */
+ "iiipp\0"
+ "glGetPerfMonitorCounterStringAMD\0"
+ "\0"
+ /* _mesa_function_pool[39107]: SecondaryColorPointer (will be remapped) */
+ "iiip\0"
+ "glSecondaryColorPointer\0"
+ "glSecondaryColorPointerEXT\0"
+ "\0"
+ /* _mesa_function_pool[39164]: FinishAsyncSGIX (dynamic) */
+ "p\0"
+ "glFinishAsyncSGIX\0"
+ "\0"
+ /* _mesa_function_pool[39185]: DrawArrays (offset 310) */
+ "iii\0"
+ "glDrawArrays\0"
+ "glDrawArraysEXT\0"
+ "\0"
+ /* _mesa_function_pool[39219]: WeightuivARB (dynamic) */
+ "ip\0"
+ "glWeightuivARB\0"
+ "\0"
+ /* _mesa_function_pool[39238]: GetnTexImageARB (will be remapped) */
+ "iiiiip\0"
+ "glGetnTexImageARB\0"
+ "\0"
+ /* _mesa_function_pool[39264]: ColorMask (offset 210) */
+ "iiii\0"
+ "glColorMask\0"
+ "\0"
+ /* _mesa_function_pool[39282]: GenAsyncMarkersSGIX (dynamic) */
+ "i\0"
+ "glGenAsyncMarkersSGIX\0"
+ "\0"
+ /* _mesa_function_pool[39307]: DebugMessageInsertARB (will be remapped) */
+ "iiiiip\0"
+ "glDebugMessageInsertARB\0"
+ "\0"
+ /* _mesa_function_pool[39339]: GetListParameterivSGIX (dynamic) */
+ "iip\0"
+ "glGetListParameterivSGIX\0"
+ "\0"
+ /* _mesa_function_pool[39369]: GetInfoLogARB (will be remapped) */
+ "iipp\0"
+ "glGetInfoLogARB\0"
+ "\0"
+ /* _mesa_function_pool[39391]: RasterPos4iv (offset 83) */
+ "p\0"
+ "glRasterPos4iv\0"
+ "\0"
+ /* _mesa_function_pool[39409]: Enable (offset 215) */
+ "i\0"
+ "glEnable\0"
+ "\0"
+ /* _mesa_function_pool[39421]: GetRenderbufferParameteriv (will be remapped) */
+ "iip\0"
+ "glGetRenderbufferParameteriv\0"
+ "glGetRenderbufferParameterivEXT\0"
+ "glGetRenderbufferParameterivOES\0"
+ "\0"
+ /* _mesa_function_pool[39519]: LineStipple (offset 167) */
+ "ii\0"
+ "glLineStipple\0"
+ "\0"
+ /* _mesa_function_pool[39537]: FragmentLightfSGIX (dynamic) */
+ "iif\0"
+ "glFragmentLightfSGIX\0"
+ "\0"
+ /* _mesa_function_pool[39563]: SetFenceNV (dynamic) */
+ "ii\0"
+ "glSetFenceNV\0"
+ "\0"
+ /* _mesa_function_pool[39580]: VertexAttribI4uivEXT (will be remapped) */
+ "ip\0"
+ "glVertexAttribI4uivEXT\0"
+ "glVertexAttribI4uiv\0"
+ "\0"
+ /* _mesa_function_pool[39627]: VertexAttribs4svNV (will be remapped) */
+ "iip\0"
+ "glVertexAttribs4svNV\0"
+ "\0"
+ /* _mesa_function_pool[39653]: GenRenderbuffers (will be remapped) */
+ "ip\0"
+ "glGenRenderbuffers\0"
+ "glGenRenderbuffersEXT\0"
+ "glGenRenderbuffersOES\0"
+ "\0"
+ /* _mesa_function_pool[39720]: EdgeFlagPointerListIBM (dynamic) */
+ "ipi\0"
+ "glEdgeFlagPointerListIBM\0"
+ "\0"
+ /* _mesa_function_pool[39750]: UniformMatrix4fv (will be remapped) */
+ "iiip\0"
+ "glUniformMatrix4fv\0"
+ "glUniformMatrix4fvARB\0"
+ "\0"
+ /* _mesa_function_pool[39797]: UniformMatrix3x2fv (will be remapped) */
+ "iiip\0"
+ "glUniformMatrix3x2fv\0"
+ "\0"
+ /* _mesa_function_pool[39824]: GetMinmaxParameterfv (offset 365) */
+ "iip\0"
+ "glGetMinmaxParameterfv\0"
+ "glGetMinmaxParameterfvEXT\0"
+ "\0"
+ /* _mesa_function_pool[39878]: VertexAttrib4Nuiv (will be remapped) */
+ "ip\0"
+ "glVertexAttrib4Nuiv\0"
+ "glVertexAttrib4NuivARB\0"
+ "\0"
+ /* _mesa_function_pool[39925]: ClientActiveTexture (offset 375) */
+ "i\0"
+ "glClientActiveTexture\0"
+ "glClientActiveTextureARB\0"
+ "\0"
+ /* _mesa_function_pool[39975]: WindowPos2sv (will be remapped) */
+ "p\0"
+ "glWindowPos2sv\0"
+ "glWindowPos2svARB\0"
+ "glWindowPos2svMESA\0"
+ "\0"
+ /* _mesa_function_pool[40030]: Vertex3fv (offset 137) */
+ "p\0"
+ "glVertex3fv\0"
+ "\0"
+ /* _mesa_function_pool[40045]: GetUniformIndices (will be remapped) */
+ "iipp\0"
+ "glGetUniformIndices\0"
+ "\0"
+ /* _mesa_function_pool[40071]: GetTexBumpParameterivATI (will be remapped) */
+ "ip\0"
+ "glGetTexBumpParameterivATI\0"
+ "\0"
+ /* _mesa_function_pool[40102]: SecondaryColor3sv (will be remapped) */
+ "p\0"
+ "glSecondaryColor3sv\0"
+ "glSecondaryColor3svEXT\0"
+ "\0"
+ /* _mesa_function_pool[40148]: Fogx (will be remapped) */
+ "ii\0"
+ "glFogxOES\0"
+ "glFogx\0"
+ "\0"
+ /* _mesa_function_pool[40169]: Binormal3bEXT (dynamic) */
+ "iii\0"
+ "glBinormal3bEXT\0"
+ "\0"
+ /* _mesa_function_pool[40190]: FragmentMaterialivSGIX (dynamic) */
+ "iip\0"
+ "glFragmentMaterialivSGIX\0"
+ "\0"
+ /* _mesa_function_pool[40220]: WaitSync (will be remapped) */
+ "iii\0"
+ "glWaitSync\0"
+ "\0"
+ /* _mesa_function_pool[40236]: CombinerParameterivNV (dynamic) */
+ "ip\0"
+ "glCombinerParameterivNV\0"
+ "\0"
+ /* _mesa_function_pool[40264]: BindVertexBuffer (will be remapped) */
+ "iiii\0"
+ "glBindVertexBuffer\0"
+ "\0"
+ /* _mesa_function_pool[40289]: MultiTexCoord2sv (offset 391) */
+ "ip\0"
+ "glMultiTexCoord2sv\0"
+ "glMultiTexCoord2svARB\0"
+ "\0"
+ /* _mesa_function_pool[40334]: DeformationMap3dSGIX (dynamic) */
+ "iddiiddiiddiip\0"
+ "glDeformationMap3dSGIX\0"
+ "\0"
+ /* _mesa_function_pool[40373]: EndFragmentShaderATI (will be remapped) */
+ "\0"
+ "glEndFragmentShaderATI\0"
+ "\0"
+ /* _mesa_function_pool[40398]: Binormal3iEXT (dynamic) */
+ "iii\0"
+ "glBinormal3iEXT\0"
+ "\0"
+ /* _mesa_function_pool[40419]: Uniform4iv (will be remapped) */
+ "iip\0"
+ "glUniform4iv\0"
+ "glUniform4ivARB\0"
+ "\0"
+ ;
+
+/* these functions need to be remapped */
+static const struct gl_function_pool_remap MESA_remap_table_functions[] = {
+ { 26135, CompressedTexImage1D_remap_index },
+ { 16634, CompressedTexImage2D_remap_index },
+ { 2914, CompressedTexImage3D_remap_index },
+ { 7643, CompressedTexSubImage1D_remap_index },
+ { 4058, CompressedTexSubImage2D_remap_index },
+ { 31132, CompressedTexSubImage3D_remap_index },
+ { 15075, GetCompressedTexImage_remap_index },
+ { 22955, LoadTransposeMatrixd_remap_index },
+ { 22903, LoadTransposeMatrixf_remap_index },
+ { 35148, MultTransposeMatrixd_remap_index },
+ { 35200, MultTransposeMatrixf_remap_index },
+ { 32612, SampleCoverage_remap_index },
+ { 11882, BlendFuncSeparate_remap_index },
+ { 14053, FogCoordPointer_remap_index },
+ { 16972, FogCoordd_remap_index },
+ { 37743, FogCoorddv_remap_index },
+ { 32771, MultiDrawArrays_remap_index },
+ { 26845, PointParameterf_remap_index },
+ { 17825, PointParameterfv_remap_index },
+ { 26803, PointParameteri_remap_index },
+ { 32979, PointParameteriv_remap_index },
+ { 18789, SecondaryColor3b_remap_index },
+ { 15459, SecondaryColor3bv_remap_index },
+ { 33050, SecondaryColor3d_remap_index },
+ { 3254, SecondaryColor3dv_remap_index },
+ { 36184, SecondaryColor3i_remap_index },
+ { 21648, SecondaryColor3iv_remap_index },
+ { 18496, SecondaryColor3s_remap_index },
+ { 40102, SecondaryColor3sv_remap_index },
+ { 16010, SecondaryColor3ub_remap_index },
+ { 26755, SecondaryColor3ubv_remap_index },
+ { 36705, SecondaryColor3ui_remap_index },
+ { 4240, SecondaryColor3uiv_remap_index },
+ { 14284, SecondaryColor3us_remap_index },
+ { 36997, SecondaryColor3usv_remap_index },
+ { 39107, SecondaryColorPointer_remap_index },
+ { 2086, WindowPos2d_remap_index },
+ { 19313, WindowPos2dv_remap_index },
+ { 2014, WindowPos2f_remap_index },
+ { 1501, WindowPos2fv_remap_index },
+ { 16328, WindowPos2i_remap_index },
+ { 23893, WindowPos2iv_remap_index },
+ { 2448, WindowPos2s_remap_index },
+ { 39975, WindowPos2sv_remap_index },
+ { 15869, WindowPos3d_remap_index },
+ { 13948, WindowPos3dv_remap_index },
+ { 15956, WindowPos3f_remap_index },
+ { 32161, WindowPos3fv_remap_index },
+ { 18735, WindowPos3i_remap_index },
+ { 36282, WindowPos3iv_remap_index },
+ { 16381, WindowPos3s_remap_index },
+ { 7078, WindowPos3sv_remap_index },
+ { 23398, BeginQuery_remap_index },
+ { 12472, BindBuffer_remap_index },
+ { 37884, BufferData_remap_index },
+ { 38535, BufferSubData_remap_index },
+ { 28127, DeleteBuffers_remap_index },
+ { 37919, DeleteQueries_remap_index },
+ { 29084, EndQuery_remap_index },
+ { 25518, GenBuffers_remap_index },
+ { 2765, GenQueries_remap_index },
+ { 19082, GetBufferParameteriv_remap_index },
+ { 31693, GetBufferPointerv_remap_index },
+ { 28278, GetBufferSubData_remap_index },
+ { 30784, GetQueryObjectiv_remap_index },
+ { 28650, GetQueryObjectuiv_remap_index },
+ { 3846, GetQueryiv_remap_index },
+ { 24036, IsBuffer_remap_index },
+ { 20839, IsQuery_remap_index },
+ { 4419, MapBuffer_remap_index },
+ { 34063, UnmapBuffer_remap_index },
+ { 1265, AttachShader_remap_index },
+ { 6465, BindAttribLocation_remap_index },
+ { 25756, BlendEquationSeparate_remap_index },
+ { 22774, CompileShader_remap_index },
+ { 11804, CreateProgram_remap_index },
+ { 27253, CreateShader_remap_index },
+ { 30306, DeleteProgram_remap_index },
+ { 30993, DeleteShader_remap_index },
+ { 32506, DetachShader_remap_index },
+ { 38312, DisableVertexAttribArray_remap_index },
+ { 13056, DrawBuffers_remap_index },
+ { 26451, EnableVertexAttribArray_remap_index },
+ { 9135, GetActiveAttrib_remap_index },
+ { 28077, GetActiveUniform_remap_index },
+ { 21407, GetAttachedShaders_remap_index },
+ { 17240, GetAttribLocation_remap_index },
+ { 6045, GetProgramInfoLog_remap_index },
+ { 272, GetProgramiv_remap_index },
+ { 14545, GetShaderInfoLog_remap_index },
+ { 27785, GetShaderSource_remap_index },
+ { 1570, GetShaderiv_remap_index },
+ { 23826, GetUniformLocation_remap_index },
+ { 7342, GetUniformfv_remap_index },
+ { 7906, GetUniformiv_remap_index },
+ { 20117, GetVertexAttribPointerv_remap_index },
+ { 25243, GetVertexAttribdv_remap_index },
+ { 2197, GetVertexAttribfv_remap_index },
+ { 12857, GetVertexAttribiv_remap_index },
+ { 15444, IsProgram_remap_index },
+ { 7460, IsShader_remap_index },
+ { 21931, LinkProgram_remap_index },
+ { 12006, ShaderSource_remap_index },
+ { 11978, StencilFuncSeparate_remap_index },
+ { 4393, StencilMaskSeparate_remap_index },
+ { 9559, StencilOpSeparate_remap_index },
+ { 22012, Uniform1f_remap_index },
+ { 31529, Uniform1fv_remap_index },
+ { 22166, Uniform1i_remap_index },
+ { 31989, Uniform1iv_remap_index },
+ { 31058, Uniform2f_remap_index },
+ { 739, Uniform2fv_remap_index },
+ { 31350, Uniform2i_remap_index },
+ { 33202, Uniform2iv_remap_index },
+ { 3105, Uniform3f_remap_index },
+ { 13152, Uniform3fv_remap_index },
+ { 18608, Uniform3i_remap_index },
+ { 17158, Uniform3iv_remap_index },
+ { 38741, Uniform4f_remap_index },
+ { 5603, Uniform4fv_remap_index },
+ { 16555, Uniform4i_remap_index },
+ { 40419, Uniform4iv_remap_index },
+ { 3138, UniformMatrix2fv_remap_index },
+ { 3572, UniformMatrix3fv_remap_index },
+ { 39750, UniformMatrix4fv_remap_index },
+ { 22709, UseProgram_remap_index },
+ { 8696, ValidateProgram_remap_index },
+ { 26094, VertexAttrib1d_remap_index },
+ { 13809, VertexAttrib1dv_remap_index },
+ { 26410, VertexAttrib1s_remap_index },
+ { 1701, VertexAttrib1sv_remap_index },
+ { 31090, VertexAttrib2d_remap_index },
+ { 5937, VertexAttrib2dv_remap_index },
+ { 30830, VertexAttrib2s_remap_index },
+ { 12549, VertexAttrib2sv_remap_index },
+ { 3905, VertexAttrib3d_remap_index },
+ { 485, VertexAttrib3dv_remap_index },
+ { 23497, VertexAttrib3s_remap_index },
+ { 20796, VertexAttrib3sv_remap_index },
+ { 4506, VertexAttrib4Nbv_remap_index },
+ { 21765, VertexAttrib4Niv_remap_index },
+ { 33861, VertexAttrib4Nsv_remap_index },
+ { 5487, VertexAttrib4Nub_remap_index },
+ { 36658, VertexAttrib4Nubv_remap_index },
+ { 39878, VertexAttrib4Nuiv_remap_index },
+ { 5980, VertexAttrib4Nusv_remap_index },
+ { 34355, VertexAttrib4bv_remap_index },
+ { 22220, VertexAttrib4d_remap_index },
+ { 21184, VertexAttrib4dv_remap_index },
+ { 17427, VertexAttrib4iv_remap_index },
+ { 22583, VertexAttrib4s_remap_index },
+ { 29587, VertexAttrib4sv_remap_index },
+ { 32726, VertexAttrib4ubv_remap_index },
+ { 33816, VertexAttrib4uiv_remap_index },
+ { 5239, VertexAttrib4usv_remap_index },
+ { 18356, VertexAttribPointer_remap_index },
+ { 26306, UniformMatrix2x3fv_remap_index },
+ { 33023, UniformMatrix2x4fv_remap_index },
+ { 39797, UniformMatrix3x2fv_remap_index },
+ { 36800, UniformMatrix3x4fv_remap_index },
+ { 18681, UniformMatrix4x2fv_remap_index },
+ { 3650, UniformMatrix4x3fv_remap_index },
+ { 20346, BeginConditionalRender_remap_index },
+ { 8935, BeginTransformFeedback_remap_index },
+ { 30727, BindBufferBase_remap_index },
+ { 30354, BindBufferRange_remap_index },
+ { 1744, BindFragDataLocation_remap_index },
+ { 6375, ClampColor_remap_index },
+ { 6910, ClearBufferfi_remap_index },
+ { 20865, ClearBufferfv_remap_index },
+ { 35498, ClearBufferiv_remap_index },
+ { 15611, ClearBufferuiv_remap_index },
+ { 9093, ColorMaski_remap_index },
+ { 29465, Disablei_remap_index },
+ { 15923, Enablei_remap_index },
+ { 31643, EndConditionalRender_remap_index },
+ { 28546, EndTransformFeedback_remap_index },
+ { 16781, GetBooleani_v_remap_index },
+ { 23205, GetFragDataLocation_remap_index },
+ { 35748, GetIntegeri_v_remap_index },
+ { 23764, GetStringi_remap_index },
+ { 29708, GetTexParameterIiv_remap_index },
+ { 13603, GetTexParameterIuiv_remap_index },
+ { 7834, GetTransformFeedbackVarying_remap_index },
+ { 9974, GetUniformuiv_remap_index },
+ { 37580, GetVertexAttribIiv_remap_index },
+ { 2833, GetVertexAttribIuiv_remap_index },
+ { 37977, IsEnabledi_remap_index },
+ { 10376, TexParameterIiv_remap_index },
+ { 37241, TexParameterIuiv_remap_index },
+ { 3355, TransformFeedbackVaryings_remap_index },
+ { 15681, Uniform1ui_remap_index },
+ { 17064, Uniform1uiv_remap_index },
+ { 24386, Uniform2ui_remap_index },
+ { 15533, Uniform2uiv_remap_index },
+ { 38035, Uniform3ui_remap_index },
+ { 30015, Uniform3uiv_remap_index },
+ { 4654, Uniform4ui_remap_index },
+ { 25610, Uniform4uiv_remap_index },
+ { 7239, VertexAttribI1iv_remap_index },
+ { 20458, VertexAttribI1uiv_remap_index },
+ { 5043, VertexAttribI4bv_remap_index },
+ { 8792, VertexAttribI4sv_remap_index },
+ { 24117, VertexAttribI4ubv_remap_index },
+ { 1798, VertexAttribI4usv_remap_index },
+ { 36941, VertexAttribIPointer_remap_index },
+ { 35412, PrimitiveRestartIndex_remap_index },
+ { 344, TexBuffer_remap_index },
+ { 6171, FramebufferTexture_remap_index },
+ { 31483, GetBufferParameteri64v_remap_index },
+ { 12045, GetInteger64i_v_remap_index },
+ { 3774, VertexAttribDivisor_remap_index },
+ { 35104, MinSampleShading_remap_index },
+ { 27861, BindProgramARB_remap_index },
+ { 32254, DeleteProgramsARB_remap_index },
+ { 16087, GenProgramsARB_remap_index },
+ { 11677, GetProgramEnvParameterdvARB_remap_index },
+ { 27991, GetProgramEnvParameterfvARB_remap_index },
+ { 32863, GetProgramLocalParameterdvARB_remap_index },
+ { 9890, GetProgramLocalParameterfvARB_remap_index },
+ { 21837, GetProgramStringARB_remap_index },
+ { 33151, GetProgramivARB_remap_index },
+ { 33784, IsProgramARB_remap_index },
+ { 23091, ProgramEnvParameter4dARB_remap_index },
+ { 29942, ProgramEnvParameter4dvARB_remap_index },
+ { 19767, ProgramEnvParameter4fARB_remap_index },
+ { 10801, ProgramEnvParameter4fvARB_remap_index },
+ { 4551, ProgramLocalParameter4dARB_remap_index },
+ { 15155, ProgramLocalParameter4dvARB_remap_index },
+ { 35519, ProgramLocalParameter4fARB_remap_index },
+ { 30894, ProgramLocalParameter4fvARB_remap_index },
+ { 33946, ProgramStringARB_remap_index },
+ { 4849, VertexAttrib1fARB_remap_index },
+ { 34843, VertexAttrib1fvARB_remap_index },
+ { 1371, VertexAttrib2fARB_remap_index },
+ { 9817, VertexAttrib2fvARB_remap_index },
+ { 1458, VertexAttrib3fARB_remap_index },
+ { 26618, VertexAttrib3fvARB_remap_index },
+ { 13362, VertexAttrib4fARB_remap_index },
+ { 13766, VertexAttrib4fvARB_remap_index },
+ { 10086, AttachObjectARB_remap_index },
+ { 3545, CreateProgramObjectARB_remap_index },
+ { 37435, CreateShaderObjectARB_remap_index },
+ { 16727, DeleteObjectARB_remap_index },
+ { 28504, DetachObjectARB_remap_index },
+ { 11262, GetAttachedObjectsARB_remap_index },
+ { 11565, GetHandleARB_remap_index },
+ { 39369, GetInfoLogARB_remap_index },
+ { 38489, GetObjectParameterfvARB_remap_index },
+ { 32653, GetObjectParameterivARB_remap_index },
+ { 21281, DrawArraysInstancedARB_remap_index },
+ { 8138, DrawElementsInstancedARB_remap_index },
+ { 11761, BindFramebuffer_remap_index },
+ { 33267, BindRenderbuffer_remap_index },
+ { 37287, BlitFramebuffer_remap_index },
+ { 27606, CheckFramebufferStatus_remap_index },
+ { 33486, DeleteFramebuffers_remap_index },
+ { 4922, DeleteRenderbuffers_remap_index },
+ { 33694, FramebufferRenderbuffer_remap_index },
+ { 1315, FramebufferTexture1D_remap_index },
+ { 27394, FramebufferTexture2D_remap_index },
+ { 18835, FramebufferTexture3D_remap_index },
+ { 14454, FramebufferTextureLayer_remap_index },
+ { 25454, GenFramebuffers_remap_index },
+ { 39653, GenRenderbuffers_remap_index },
+ { 30051, GenerateMipmap_remap_index },
+ { 19867, GetFramebufferAttachmentParameteriv_remap_index },
+ { 39421, GetRenderbufferParameteriv_remap_index },
+ { 25646, IsFramebuffer_remap_index },
+ { 14209, IsRenderbuffer_remap_index },
+ { 2516, RenderbufferStorage_remap_index },
+ { 15260, RenderbufferStorageMultisample_remap_index },
+ { 30692, FramebufferTextureFaceARB_remap_index },
+ { 19664, FlushMappedBufferRange_remap_index },
+ { 35008, MapBufferRange_remap_index },
+ { 18965, BindVertexArray_remap_index },
+ { 24547, DeleteVertexArrays_remap_index },
+ { 24182, GenVertexArrays_remap_index },
+ { 20935, IsVertexArray_remap_index },
+ { 13655, GetActiveUniformBlockName_remap_index },
+ { 6272, GetActiveUniformBlockiv_remap_index },
+ { 31959, GetActiveUniformName_remap_index },
+ { 12443, GetActiveUniformsiv_remap_index },
+ { 32447, GetUniformBlockIndex_remap_index },
+ { 40045, GetUniformIndices_remap_index },
+ { 5869, UniformBlockBinding_remap_index },
+ { 36480, CopyBufferSubData_remap_index },
+ { 37630, ClientWaitSync_remap_index },
+ { 2749, DeleteSync_remap_index },
+ { 8991, FenceSync_remap_index },
+ { 17582, GetInteger64v_remap_index },
+ { 26712, GetSynciv_remap_index },
+ { 35384, IsSync_remap_index },
+ { 40220, WaitSync_remap_index },
+ { 36364, DrawElementsBaseVertex_remap_index },
+ { 21889, DrawElementsInstancedBaseVertex_remap_index },
+ { 36902, DrawRangeElementsBaseVertex_remap_index },
+ { 31382, MultiDrawElementsBaseVertex_remap_index },
+ { 19202, ProvokingVertex_remap_index },
+ { 20994, GetMultisamplefv_remap_index },
+ { 6027, SampleMaski_remap_index },
+ { 7505, TexImage2DMultisample_remap_index },
+ { 30124, TexImage3DMultisample_remap_index },
+ { 30462, BlendEquationSeparateiARB_remap_index },
+ { 21075, BlendEquationiARB_remap_index },
+ { 14686, BlendFuncSeparateiARB_remap_index },
+ { 11634, BlendFunciARB_remap_index },
+ { 6515, BindFragDataLocationIndexed_remap_index },
+ { 14847, GetFragDataIndex_remap_index },
+ { 9956, BindSampler_remap_index },
+ { 4828, DeleteSamplers_remap_index },
+ { 9689, GenSamplers_remap_index },
+ { 16494, GetSamplerParameterIiv_remap_index },
+ { 22627, GetSamplerParameterIuiv_remap_index },
+ { 5908, GetSamplerParameterfv_remap_index },
+ { 30325, GetSamplerParameteriv_remap_index },
+ { 16524, IsSampler_remap_index },
+ { 18918, SamplerParameterIiv_remap_index },
+ { 6088, SamplerParameterIuiv_remap_index },
+ { 26358, SamplerParameterf_remap_index },
+ { 19244, SamplerParameterfv_remap_index },
+ { 26333, SamplerParameteri_remap_index },
+ { 17192, SamplerParameteriv_remap_index },
+ { 6222, GetQueryObjecti64v_remap_index },
+ { 292, GetQueryObjectui64v_remap_index },
+ { 7707, QueryCounter_remap_index },
+ { 16589, ColorP3ui_remap_index },
+ { 37224, ColorP3uiv_remap_index },
+ { 24323, ColorP4ui_remap_index },
+ { 15569, ColorP4uiv_remap_index },
+ { 11237, MultiTexCoordP1ui_remap_index },
+ { 14660, MultiTexCoordP1uiv_remap_index },
+ { 20611, MultiTexCoordP2ui_remap_index },
+ { 14779, MultiTexCoordP2uiv_remap_index },
+ { 16124, MultiTexCoordP3ui_remap_index },
+ { 12298, MultiTexCoordP3uiv_remap_index },
+ { 25943, MultiTexCoordP4ui_remap_index },
+ { 15749, MultiTexCoordP4uiv_remap_index },
+ { 12219, NormalP3ui_remap_index },
+ { 22410, NormalP3uiv_remap_index },
+ { 29347, SecondaryColorP3ui_remap_index },
+ { 22428, SecondaryColorP3uiv_remap_index },
+ { 773, TexCoordP1ui_remap_index },
+ { 2384, TexCoordP1uiv_remap_index },
+ { 17020, TexCoordP2ui_remap_index },
+ { 12949, TexCoordP2uiv_remap_index },
+ { 14619, TexCoordP3ui_remap_index },
+ { 24681, TexCoordP3uiv_remap_index },
+ { 1646, TexCoordP4ui_remap_index },
+ { 6787, TexCoordP4uiv_remap_index },
+ { 14991, VertexAttribP1ui_remap_index },
+ { 15418, VertexAttribP1uiv_remap_index },
+ { 9664, VertexAttribP2ui_remap_index },
+ { 34329, VertexAttribP2uiv_remap_index },
+ { 5578, VertexAttribP3ui_remap_index },
+ { 31270, VertexAttribP3uiv_remap_index },
+ { 16435, VertexAttribP4ui_remap_index },
+ { 18445, VertexAttribP4uiv_remap_index },
+ { 6071, VertexP2ui_remap_index },
+ { 37045, VertexP2uiv_remap_index },
+ { 3338, VertexP3ui_remap_index },
+ { 23479, VertexP3uiv_remap_index },
+ { 11220, VertexP4ui_remap_index },
+ { 38898, VertexP4uiv_remap_index },
+ { 6616, BindTransformFeedback_remap_index },
+ { 12095, DeleteTransformFeedbacks_remap_index },
+ { 8110, DrawTransformFeedback_remap_index },
+ { 11455, GenTransformFeedbacks_remap_index },
+ { 35830, IsTransformFeedback_remap_index },
+ { 30966, PauseTransformFeedback_remap_index },
+ { 36107, ResumeTransformFeedback_remap_index },
+ { 2404, BeginQueryIndexed_remap_index },
+ { 27690, DrawTransformFeedbackStream_remap_index },
+ { 17709, EndQueryIndexed_remap_index },
+ { 228, GetQueryIndexediv_remap_index },
+ { 32525, ClearDepthf_remap_index },
+ { 8395, DepthRangef_remap_index },
+ { 16748, GetShaderPrecisionFormat_remap_index },
+ { 11822, ReleaseShaderCompiler_remap_index },
+ { 12927, ShaderBinary_remap_index },
+ { 19034, GetProgramBinary_remap_index },
+ { 4588, ProgramBinary_remap_index },
+ { 5191, ProgramParameteri_remap_index },
+ { 1102, DebugMessageCallbackARB_remap_index },
+ { 11583, DebugMessageControlARB_remap_index },
+ { 39307, DebugMessageInsertARB_remap_index },
+ { 3000, GetDebugMessageLogARB_remap_index },
+ { 34273, GetGraphicsResetStatusARB_remap_index },
+ { 29186, GetnColorTableARB_remap_index },
+ { 9738, GetnCompressedTexImageARB_remap_index },
+ { 4288, GetnConvolutionFilterARB_remap_index },
+ { 18137, GetnHistogramARB_remap_index },
+ { 27898, GetnMapdvARB_remap_index },
+ { 34706, GetnMapfvARB_remap_index },
+ { 1973, GetnMapivARB_remap_index },
+ { 20285, GetnMinmaxARB_remap_index },
+ { 13873, GetnPixelMapfvARB_remap_index },
+ { 22557, GetnPixelMapuivARB_remap_index },
+ { 35358, GetnPixelMapusvARB_remap_index },
+ { 1024, GetnPolygonStippleARB_remap_index },
+ { 25027, GetnSeparableFilterARB_remap_index },
+ { 39238, GetnTexImageARB_remap_index },
+ { 21864, GetnUniformdvARB_remap_index },
+ { 9022, GetnUniformfvARB_remap_index },
+ { 11712, GetnUniformivARB_remap_index },
+ { 26574, GetnUniformuivARB_remap_index },
+ { 3185, ReadnPixelsARB_remap_index },
+ { 22311, DrawArraysInstancedBaseInstance_remap_index },
+ { 35270, DrawElementsInstancedBaseInstance_remap_index },
+ { 9487, DrawElementsInstancedBaseVertexBaseInstance_remap_index },
+ { 6932, DrawTransformFeedbackInstanced_remap_index },
+ { 9772, DrawTransformFeedbackStreamInstanced_remap_index },
+ { 35641, GetInternalformativ_remap_index },
+ { 31311, GetActiveAtomicCounterBufferiv_remap_index },
+ { 957, TexStorage1D_remap_index },
+ { 5131, TexStorage2D_remap_index },
+ { 18658, TexStorage3D_remap_index },
+ { 5432, TextureStorage1DEXT_remap_index },
+ { 6644, TextureStorage2DEXT_remap_index },
+ { 1284, TextureStorage3DEXT_remap_index },
+ { 40264, BindVertexBuffer_remap_index },
+ { 8268, VertexAttribBinding_remap_index },
+ { 12270, VertexAttribFormat_remap_index },
+ { 21694, VertexAttribIFormat_remap_index },
+ { 11427, VertexAttribLFormat_remap_index },
+ { 33667, VertexBindingDivisor_remap_index },
+ { 26213, TexBufferRange_remap_index },
+ { 18411, TexStorage2DMultisample_remap_index },
+ { 23256, TexStorage3DMultisample_remap_index },
+ { 25062, InvalidateBufferData_remap_index },
+ { 18577, InvalidateBufferSubData_remap_index },
+ { 38070, InvalidateFramebuffer_remap_index },
+ { 24245, InvalidateSubFramebuffer_remap_index },
+ { 4629, InvalidateTexImage_remap_index },
+ { 13505, InvalidateTexSubImage_remap_index },
+ { 6988, PolygonOffsetEXT_remap_index },
+ { 14586, DrawTexfOES_remap_index },
+ { 11616, DrawTexfvOES_remap_index },
+ { 3300, DrawTexiOES_remap_index },
+ { 28260, DrawTexivOES_remap_index },
+ { 24365, DrawTexsOES_remap_index },
+ { 22515, DrawTexsvOES_remap_index },
+ { 12528, DrawTexxOES_remap_index },
+ { 12625, DrawTexxvOES_remap_index },
+ { 2298, PointSizePointerOES_remap_index },
+ { 12905, QueryMatrixxOES_remap_index },
+ { 30577, SampleMaskSGIS_remap_index },
+ { 24281, SamplePatternSGIS_remap_index },
+ { 23431, ColorPointerEXT_remap_index },
+ { 20909, EdgeFlagPointerEXT_remap_index },
+ { 7215, IndexPointerEXT_remap_index },
+ { 7809, NormalPointerEXT_remap_index },
+ { 18205, TexCoordPointerEXT_remap_index },
+ { 8738, VertexPointerEXT_remap_index },
+ { 6551, DiscardFramebufferEXT_remap_index },
+ { 38593, LockArraysEXT_remap_index },
+ { 26193, UnlockArraysEXT_remap_index },
+ { 7740, DebugMessageCallback_remap_index },
+ { 34398, DebugMessageControl_remap_index },
+ { 21434, DebugMessageInsert_remap_index },
+ { 26958, GetDebugMessageLog_remap_index },
+ { 25968, GetObjectLabel_remap_index },
+ { 5105, GetObjectPtrLabel_remap_index },
+ { 30946, ObjectLabel_remap_index },
+ { 38673, ObjectPtrLabel_remap_index },
+ { 25703, PopDebugGroup_remap_index },
+ { 36135, PushDebugGroup_remap_index },
+ { 33559, SecondaryColor3fEXT_remap_index },
+ { 21584, SecondaryColor3fvEXT_remap_index },
+ { 24847, MultiDrawElementsEXT_remap_index },
+ { 5668, FogCoordfEXT_remap_index },
+ { 32474, FogCoordfvEXT_remap_index },
+ { 14638, ResizeBuffersMESA_remap_index },
+ { 13032, WindowPos4dMESA_remap_index },
+ { 7011, WindowPos4dvMESA_remap_index },
+ { 16242, WindowPos4fMESA_remap_index },
+ { 37131, WindowPos4fvMESA_remap_index },
+ { 36634, WindowPos4iMESA_remap_index },
+ { 14432, WindowPos4ivMESA_remap_index },
+ { 22533, WindowPos4sMESA_remap_index },
+ { 3523, WindowPos4svMESA_remap_index },
+ { 22826, MultiModeDrawArraysIBM_remap_index },
+ { 34795, MultiModeDrawElementsIBM_remap_index },
+ { 38283, AreProgramsResidentNV_remap_index },
+ { 25169, ExecuteProgramNV_remap_index },
+ { 19368, GetProgramParameterdvNV_remap_index },
+ { 12411, GetProgramParameterfvNV_remap_index },
+ { 31244, GetProgramStringNV_remap_index },
+ { 28876, GetProgramivNV_remap_index },
+ { 28026, GetTrackMatrixivNV_remap_index },
+ { 12068, GetVertexAttribdvNV_remap_index },
+ { 22264, GetVertexAttribfvNV_remap_index },
+ { 21810, GetVertexAttribivNV_remap_index },
+ { 11186, LoadProgramNV_remap_index },
+ { 33312, ProgramParameters4dvNV_remap_index },
+ { 34922, ProgramParameters4fvNV_remap_index },
+ { 24649, RequestResidentProgramsNV_remap_index },
+ { 463, TrackMatrixNV_remap_index },
+ { 12810, VertexAttrib1dNV_remap_index },
+ { 15633, VertexAttrib1dvNV_remap_index },
+ { 30640, VertexAttrib1fNV_remap_index },
+ { 15657, VertexAttrib1fvNV_remap_index },
+ { 37188, VertexAttrib1sNV_remap_index },
+ { 26731, VertexAttrib1svNV_remap_index },
+ { 37719, VertexAttrib2dNV_remap_index },
+ { 22685, VertexAttrib2dvNV_remap_index },
+ { 24064, VertexAttrib2fNV_remap_index },
+ { 15131, VertexAttrib2fvNV_remap_index },
+ { 7553, VertexAttrib2sNV_remap_index },
+ { 22352, VertexAttrib2svNV_remap_index },
+ { 13243, VertexAttrib3dNV_remap_index },
+ { 38465, VertexAttrib3dvNV_remap_index },
+ { 19400, VertexAttrib3fNV_remap_index },
+ { 29213, VertexAttrib3fvNV_remap_index },
+ { 27919, VertexAttrib3sNV_remap_index },
+ { 28053, VertexAttrib3svNV_remap_index },
+ { 34769, VertexAttrib4dNV_remap_index },
+ { 12833, VertexAttrib4dvNV_remap_index },
+ { 5361, VertexAttrib4fNV_remap_index },
+ { 23374, VertexAttrib4fvNV_remap_index },
+ { 31869, VertexAttrib4sNV_remap_index },
+ { 1132, VertexAttrib4svNV_remap_index },
+ { 6304, VertexAttrib4ubNV_remap_index },
+ { 579, VertexAttrib4ubvNV_remap_index },
+ { 25423, VertexAttribPointerNV_remap_index },
+ { 2171, VertexAttribs1dvNV_remap_index },
+ { 22454, VertexAttribs1fvNV_remap_index },
+ { 24339, VertexAttribs1svNV_remap_index },
+ { 12324, VertexAttribs2dvNV_remap_index },
+ { 36035, VertexAttribs2fvNV_remap_index },
+ { 4690, VertexAttribs2svNV_remap_index },
+ { 6807, VertexAttribs3dvNV_remap_index },
+ { 11511, VertexAttribs3fvNV_remap_index },
+ { 12244, VertexAttribs3svNV_remap_index },
+ { 20770, VertexAttribs4dvNV_remap_index },
+ { 6833, VertexAttribs4fvNV_remap_index },
+ { 39627, VertexAttribs4svNV_remap_index },
+ { 35670, VertexAttribs4ubvNV_remap_index },
+ { 27830, GetTexBumpParameterfvATI_remap_index },
+ { 40071, GetTexBumpParameterivATI_remap_index },
+ { 21965, TexBumpParameterfvATI_remap_index },
+ { 24466, TexBumpParameterivATI_remap_index },
+ { 18089, AlphaFragmentOp1ATI_remap_index },
+ { 30529, AlphaFragmentOp2ATI_remap_index },
+ { 29129, AlphaFragmentOp3ATI_remap_index },
+ { 16215, BeginFragmentShaderATI_remap_index },
+ { 24976, BindFragmentShaderATI_remap_index },
+ { 7311, ColorFragmentOp1ATI_remap_index },
+ { 7426, ColorFragmentOp2ATI_remap_index },
+ { 38170, ColorFragmentOp3ATI_remap_index },
+ { 7133, DeleteFragmentShaderATI_remap_index },
+ { 40373, EndFragmentShaderATI_remap_index },
+ { 27758, GenFragmentShadersATI_remap_index },
+ { 30283, PassTexCoordATI_remap_index },
+ { 8676, SampleMapATI_remap_index },
+ { 32324, SetFragmentShaderConstantATI_remap_index },
+ { 34598, ActiveStencilFaceEXT_remap_index },
+ { 32837, BindVertexArrayAPPLE_remap_index },
+ { 19825, GenVertexArraysAPPLE_remap_index },
+ { 620, GetProgramNamedParameterdvNV_remap_index },
+ { 4021, GetProgramNamedParameterfvNV_remap_index },
+ { 32103, ProgramNamedParameter4dNV_remap_index },
+ { 16826, ProgramNamedParameter4dvNV_remap_index },
+ { 10690, ProgramNamedParameter4fNV_remap_index },
+ { 13731, ProgramNamedParameter4fvNV_remap_index },
+ { 20886, PrimitiveRestartNV_remap_index },
+ { 18049, GetTexGenxvOES_remap_index },
+ { 14019, TexGenxOES_remap_index },
+ { 32960, TexGenxvOES_remap_index },
+ { 28855, DepthBoundsEXT_remap_index },
+ { 17039, BindFramebufferEXT_remap_index },
+ { 30614, BindRenderbufferEXT_remap_index },
+ { 16605, BufferParameteriAPPLE_remap_index },
+ { 23007, FlushMappedBufferRangeAPPLE_remap_index },
+ { 21722, VertexAttribI1iEXT_remap_index },
+ { 2656, VertexAttribI1uiEXT_remap_index },
+ { 34160, VertexAttribI2iEXT_remap_index },
+ { 28368, VertexAttribI2ivEXT_remap_index },
+ { 14142, VertexAttribI2uiEXT_remap_index },
+ { 27944, VertexAttribI2uivEXT_remap_index },
+ { 31598, VertexAttribI3iEXT_remap_index },
+ { 36857, VertexAttribI3ivEXT_remap_index },
+ { 3727, VertexAttribI3uiEXT_remap_index },
+ { 36753, VertexAttribI3uivEXT_remap_index },
+ { 24420, VertexAttribI4iEXT_remap_index },
+ { 20036, VertexAttribI4ivEXT_remap_index },
+ { 54, VertexAttribI4uiEXT_remap_index },
+ { 39580, VertexAttribI4uivEXT_remap_index },
+ { 11737, ClearColorIiEXT_remap_index },
+ { 3880, ClearColorIuiEXT_remap_index },
+ { 10014, BindBufferOffsetEXT_remap_index },
+ { 27131, BeginPerfMonitorAMD_remap_index },
+ { 38218, DeletePerfMonitorsAMD_remap_index },
+ { 20262, EndPerfMonitorAMD_remap_index },
+ { 31438, GenPerfMonitorsAMD_remap_index },
+ { 6687, GetPerfMonitorCounterDataAMD_remap_index },
+ { 5788, GetPerfMonitorCounterInfoAMD_remap_index },
+ { 39067, GetPerfMonitorCounterStringAMD_remap_index },
+ { 22480, GetPerfMonitorCountersAMD_remap_index },
+ { 13406, GetPerfMonitorGroupStringAMD_remap_index },
+ { 37671, GetPerfMonitorGroupsAMD_remap_index },
+ { 29034, SelectPerfMonitorCountersAMD_remap_index },
+ { 13555, GetObjectParameterivAPPLE_remap_index },
+ { 37801, ObjectPurgeableAPPLE_remap_index },
+ { 7380, ObjectUnpurgeableAPPLE_remap_index },
+ { 20636, ActiveProgramEXT_remap_index },
+ { 1944, CreateShaderProgramEXT_remap_index },
+ { 34303, UseShaderProgramEXT_remap_index },
+ { 39046, TextureBarrierNV_remap_index },
+ { 8094, VDPAUFiniNV_remap_index },
+ { 3034, VDPAUGetSurfaceivNV_remap_index },
+ { 6970, VDPAUInitNV_remap_index },
+ { 16950, VDPAUIsSurfaceNV_remap_index },
+ { 25551, VDPAUMapSurfacesNV_remap_index },
+ { 11100, VDPAURegisterOutputSurfaceNV_remap_index },
+ { 6580, VDPAURegisterVideoSurfaceNV_remap_index },
+ { 32297, VDPAUSurfaceAccessNV_remap_index },
+ { 29667, VDPAUUnmapSurfacesNV_remap_index },
+ { 25291, VDPAUUnregisterSurfaceNV_remap_index },
+ { 34658, StencilFuncSeparateATI_remap_index },
+ { 21503, ProgramEnvParameters4fvEXT_remap_index },
+ { 20309, ProgramLocalParameters4fvEXT_remap_index },
+ { 28325, EGLImageTargetRenderbufferStorageOES_remap_index },
+ { 14109, EGLImageTargetTexture2DOES_remap_index },
+ { 28166, AlphaFuncx_remap_index },
+ { 20574, ClearColorx_remap_index },
+ { 25576, ClearDepthx_remap_index },
+ { 10473, Color4x_remap_index },
+ { 8024, DepthRangex_remap_index },
+ { 40148, Fogx_remap_index },
+ { 37063, Fogxv_remap_index },
+ { 35697, Frustumf_remap_index },
+ { 3948, Frustumx_remap_index },
+ { 31563, LightModelx_remap_index },
+ { 35793, LightModelxv_remap_index },
+ { 25865, Lightx_remap_index },
+ { 13124, Lightxv_remap_index },
+ { 2139, LineWidthx_remap_index },
+ { 15041, LoadMatrixx_remap_index },
+ { 26680, Materialx_remap_index },
+ { 16693, Materialxv_remap_index },
+ { 22376, MultMatrixx_remap_index },
+ { 33971, MultiTexCoord4x_remap_index },
+ { 13268, Normal3x_remap_index },
+ { 10727, Orthof_remap_index },
+ { 1413, Orthox_remap_index },
+ { 35326, PointSizex_remap_index },
+ { 4465, PolygonOffsetx_remap_index },
+ { 30663, Rotatex_remap_index },
+ { 8456, SampleCoveragex_remap_index },
+ { 7033, Scalex_remap_index },
+ { 22123, TexEnvx_remap_index },
+ { 24790, TexEnvxv_remap_index },
+ { 6116, TexParameterx_remap_index },
+ { 34624, Translatex_remap_index },
+ { 38968, ClipPlanef_remap_index },
+ { 38708, ClipPlanex_remap_index },
+ { 18317, GetClipPlanef_remap_index },
+ { 4339, GetClipPlanex_remap_index },
+ { 33236, GetFixedv_remap_index },
+ { 4730, GetLightxv_remap_index },
+ { 4142, GetMaterialxv_remap_index },
+ { 29311, GetTexEnvxv_remap_index },
+ { 21359, GetTexParameterxv_remap_index },
+ { 5535, PointParameterx_remap_index },
+ { 19474, PointParameterxv_remap_index },
+ { 30420, TexParameterxv_remap_index },
+ { -1, -1 }
+};
+
+/* these functions are in the ABI, but have alternative names */
+static const struct gl_function_remap MESA_alt_functions[] = {
+ /* from GL_EXT_blend_color */
+ { 2798, _gloffset_BlendColor },
+ /* from GL_EXT_blend_minmax */
+ { 13186, _gloffset_BlendEquation },
+ /* from GL_EXT_color_subtable */
+ { 20205, _gloffset_ColorSubTable },
+ { 38372, _gloffset_CopyColorSubTable },
+ /* from GL_EXT_convolution */
+ { 173, _gloffset_ConvolutionFilter1D },
+ { 2594, _gloffset_CopyConvolutionFilter1D },
+ { 4764, _gloffset_GetConvolutionParameteriv },
+ { 10320, _gloffset_ConvolutionFilter2D },
+ { 10516, _gloffset_ConvolutionParameteriv },
+ { 11021, _gloffset_ConvolutionParameterfv },
+ { 24494, _gloffset_GetSeparableFilter },
+ { 28597, _gloffset_SeparableFilter2D },
+ { 29531, _gloffset_ConvolutionParameteri },
+ { 29794, _gloffset_ConvolutionParameterf },
+ { 31895, _gloffset_GetConvolutionParameterfv },
+ { 33096, _gloffset_GetConvolutionFilter },
+ { 36396, _gloffset_CopyConvolutionFilter2D },
+ /* from GL_EXT_copy_texture */
+ { 17488, _gloffset_CopyTexSubImage3D },
+ { 19617, _gloffset_CopyTexImage2D },
+ { 28973, _gloffset_CopyTexImage1D },
+ { 32559, _gloffset_CopyTexSubImage2D },
+ { 35891, _gloffset_CopyTexSubImage1D },
+ /* from GL_EXT_draw_range_elements */
+ { 11310, _gloffset_DrawRangeElements },
+ /* from GL_EXT_histogram */
+ { 657, _gloffset_Histogram },
+ { 3981, _gloffset_ResetHistogram },
+ { 11848, _gloffset_GetMinmax },
+ { 17915, _gloffset_GetHistogramParameterfv },
+ { 28898, _gloffset_GetMinmaxParameteriv },
+ { 31785, _gloffset_ResetMinmax },
+ { 32900, _gloffset_GetHistogramParameteriv },
+ { 34558, _gloffset_GetHistogram },
+ { 37858, _gloffset_Minmax },
+ { 39824, _gloffset_GetMinmaxParameterfv },
+ /* from GL_EXT_paletted_texture */
+ { 10182, _gloffset_ColorTable },
+ { 17649, _gloffset_GetColorTable },
+ { 27271, _gloffset_GetColorTableParameterfv },
+ { 29850, _gloffset_GetColorTableParameteriv },
+ /* from GL_EXT_subtexture */
+ { 8891, _gloffset_TexSubImage1D },
+ { 12643, _gloffset_TexSubImage2D },
+ /* from GL_EXT_texture3D */
+ { 1589, _gloffset_TexImage3D },
+ { 27005, _gloffset_TexSubImage3D },
+ /* from GL_EXT_texture_object */
+ { 3677, _gloffset_PrioritizeTextures },
+ { 9435, _gloffset_AreTexturesResident },
+ { 15714, _gloffset_GenTextures },
+ { 18164, _gloffset_DeleteTextures },
+ { 23344, _gloffset_IsTexture },
+ { 36000, _gloffset_BindTexture },
+ /* from GL_EXT_vertex_array */
+ { 28795, _gloffset_ArrayElement },
+ { 37338, _gloffset_GetPointerv },
+ { 39185, _gloffset_DrawArrays },
+ /* from GL_NV_read_buffer */
+ { 29500, _gloffset_ReadBuffer },
+ /* from GL_OES_blend_subtract */
+ { 13186, _gloffset_BlendEquation },
+ /* from GL_OES_texture_3D */
+ { 1589, _gloffset_TexImage3D },
+ { 17488, _gloffset_CopyTexSubImage3D },
+ { 27005, _gloffset_TexSubImage3D },
+ /* from GL_OES_texture_cube_map */
+ { 2354, _gloffset_TexGeniv },
+ { 12780, _gloffset_TexGenfv },
+ { 22067, _gloffset_TexGeni },
+ { 22095, _gloffset_TexGenf },
+ { 33605, _gloffset_GetTexGeniv },
+ { 34428, _gloffset_GetTexGenfv },
+ /* from GL_SGI_color_table */
+ { 9608, _gloffset_ColorTableParameteriv },
+ { 10182, _gloffset_ColorTable },
+ { 17649, _gloffset_GetColorTable },
+ { 17781, _gloffset_CopyColorTable },
+ { 23149, _gloffset_ColorTableParameterfv },
+ { 27271, _gloffset_GetColorTableParameterfv },
+ { 29850, _gloffset_GetColorTableParameteriv },
+ { -1, -1 }
+};
+
diff --git a/xorg-server/glx/render2.c b/xorg-server/glx/render2.c
index 5a2f4827e..01e33d5c9 100644
--- a/xorg-server/glx/render2.c
+++ b/xorg-server/glx/render2.c
@@ -31,11 +31,16 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
+#include "glheader.h"
#include <glxserver.h>
#include "unpack.h"
#include "indirect_size.h"
#include "indirect_dispatch.h"
+#include "glapitable.h"
+#include "glapi.h"
+#include "glthread.h"
+#include "dispatch.h"
void
__glXDisp_Map1f(GLbyte * pc)
@@ -51,7 +56,7 @@ __glXDisp_Map1f(GLbyte * pc)
points = (GLfloat *) (pc + 16);
k = __glMap1f_size(target);
- glMap1f(target, u1, u2, k, order, points);
+ CALL_Map1f(GET_DISPATCH(), (target, u1, u2, k, order, points));
}
void
@@ -74,7 +79,9 @@ __glXDisp_Map2f(GLbyte * pc)
ustride = vorder * k;
vstride = k;
- glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+ CALL_Map2f(GET_DISPATCH(),
+ (target, u1, u2, ustride, uorder, v1, v2, vstride, vorder,
+ points));
}
void
@@ -120,7 +127,7 @@ __glXDisp_Map1d(GLbyte * pc)
#else
points = (GLdouble *) pc;
#endif
- glMap1d(target, u1, u2, k, order, points);
+ CALL_Map1d(GET_DISPATCH(), (target, u1, u2, k, order, points));
}
void
@@ -172,7 +179,9 @@ __glXDisp_Map2d(GLbyte * pc)
#else
points = (GLdouble *) pc;
#endif
- glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+ CALL_Map2d(GET_DISPATCH(),
+ (target, u1, u2, ustride, uorder, v1, v2, vstride, vorder,
+ points));
}
void
@@ -207,36 +216,39 @@ __glXDisp_DrawArrays(GLbyte * pc)
switch (component) {
case GL_VERTEX_ARRAY:
- glEnableClientState(GL_VERTEX_ARRAY);
- glVertexPointer(numVals, datatype, stride, pc);
+ CALL_EnableClientState(GET_DISPATCH(), (GL_VERTEX_ARRAY));
+ CALL_VertexPointer(GET_DISPATCH(), (numVals, datatype, stride, pc));
break;
case GL_NORMAL_ARRAY:
- glEnableClientState(GL_NORMAL_ARRAY);
- glNormalPointer(datatype, stride, pc);
+ CALL_EnableClientState(GET_DISPATCH(), (GL_NORMAL_ARRAY));
+ CALL_NormalPointer(GET_DISPATCH(), (datatype, stride, pc));
break;
case GL_COLOR_ARRAY:
- glEnableClientState(GL_COLOR_ARRAY);
- glColorPointer(numVals, datatype, stride, pc);
+ CALL_EnableClientState(GET_DISPATCH(), (GL_COLOR_ARRAY));
+ CALL_ColorPointer(GET_DISPATCH(), (numVals, datatype, stride, pc));
break;
case GL_INDEX_ARRAY:
- glEnableClientState(GL_INDEX_ARRAY);
- glIndexPointer(datatype, stride, pc);
+ CALL_EnableClientState(GET_DISPATCH(), (GL_INDEX_ARRAY));
+ CALL_IndexPointer(GET_DISPATCH(), (datatype, stride, pc));
break;
case GL_TEXTURE_COORD_ARRAY:
- glEnableClientState(GL_TEXTURE_COORD_ARRAY);
- glTexCoordPointer(numVals, datatype, stride, pc);
+ CALL_EnableClientState(GET_DISPATCH(), (GL_TEXTURE_COORD_ARRAY));
+ CALL_TexCoordPointer(GET_DISPATCH(),
+ (numVals, datatype, stride, pc));
break;
case GL_EDGE_FLAG_ARRAY:
- glEnableClientState(GL_EDGE_FLAG_ARRAY);
- glEdgeFlagPointer(stride, (const GLboolean *) pc);
+ CALL_EnableClientState(GET_DISPATCH(), (GL_EDGE_FLAG_ARRAY));
+ CALL_EdgeFlagPointer(GET_DISPATCH(),
+ (stride, (const GLboolean *) pc));
break;
case GL_SECONDARY_COLOR_ARRAY:
- glEnableClientState(GL_SECONDARY_COLOR_ARRAY);
- glSecondaryColorPointerEXT(numVals, datatype, stride, pc);
+ CALL_EnableClientState(GET_DISPATCH(), (GL_SECONDARY_COLOR_ARRAY));
+ CALL_SecondaryColorPointer(GET_DISPATCH(),
+ (numVals, datatype, stride, pc));
break;
case GL_FOG_COORD_ARRAY:
- glEnableClientState(GL_FOG_COORD_ARRAY);
- glFogCoordPointerEXT(datatype, stride, pc);
+ CALL_EnableClientState(GET_DISPATCH(), (GL_FOG_COORD_ARRAY));
+ CALL_FogCoordPointer(GET_DISPATCH(), (datatype, stride, pc));
break;
default:
break;
@@ -245,15 +257,15 @@ __glXDisp_DrawArrays(GLbyte * pc)
pc += __GLX_PAD(numVals * __glXTypeSize(datatype));
}
- glDrawArrays(primType, 0, numVertexes);
+ CALL_DrawArrays(GET_DISPATCH(), (primType, 0, numVertexes));
/* turn off anything we might have turned on */
- glDisableClientState(GL_VERTEX_ARRAY);
- glDisableClientState(GL_NORMAL_ARRAY);
- glDisableClientState(GL_COLOR_ARRAY);
- glDisableClientState(GL_INDEX_ARRAY);
- glDisableClientState(GL_TEXTURE_COORD_ARRAY);
- glDisableClientState(GL_EDGE_FLAG_ARRAY);
- glDisableClientState(GL_SECONDARY_COLOR_ARRAY);
- glDisableClientState(GL_FOG_COORD_ARRAY);
+ CALL_DisableClientState(GET_DISPATCH(), (GL_VERTEX_ARRAY));
+ CALL_DisableClientState(GET_DISPATCH(), (GL_NORMAL_ARRAY));
+ CALL_DisableClientState(GET_DISPATCH(), (GL_COLOR_ARRAY));
+ CALL_DisableClientState(GET_DISPATCH(), (GL_INDEX_ARRAY));
+ CALL_DisableClientState(GET_DISPATCH(), (GL_TEXTURE_COORD_ARRAY));
+ CALL_DisableClientState(GET_DISPATCH(), (GL_EDGE_FLAG_ARRAY));
+ CALL_DisableClientState(GET_DISPATCH(), (GL_SECONDARY_COLOR_ARRAY));
+ CALL_DisableClientState(GET_DISPATCH(), (GL_FOG_COORD_ARRAY));
}
diff --git a/xorg-server/glx/render2swap.c b/xorg-server/glx/render2swap.c
index e6f73b896..435fa26ad 100644
--- a/xorg-server/glx/render2swap.c
+++ b/xorg-server/glx/render2swap.c
@@ -31,11 +31,16 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
+#include "glheader.h"
#include "glxserver.h"
#include "unpack.h"
#include "indirect_size.h"
#include "indirect_dispatch.h"
+#include "glapitable.h"
+#include "glapi.h"
+#include "glthread.h"
+#include "dispatch.h"
void
__glXDispSwap_Map1f(GLbyte * pc)
@@ -69,7 +74,7 @@ __glXDispSwap_Map1f(GLbyte * pc)
}
__GLX_SWAP_FLOAT_ARRAY(points, compsize);
- glMap1f(target, u1, u2, k, order, points);
+ CALL_Map1f(GET_DISPATCH(), (target, u1, u2, k, order, points));
}
void
@@ -113,7 +118,9 @@ __glXDispSwap_Map2f(GLbyte * pc)
}
__GLX_SWAP_FLOAT_ARRAY(points, compsize);
- glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+ CALL_Map2f(GET_DISPATCH(),
+ (target, u1, u2, ustride, uorder, v1, v2, vstride, vorder,
+ points));
}
void
@@ -161,7 +168,7 @@ __glXDispSwap_Map1d(GLbyte * pc)
#else
points = (GLdouble *) pc;
#endif
- glMap1d(target, u1, u2, k, order, points);
+ CALL_Map1d(GET_DISPATCH(), (target, u1, u2, k, order, points));
}
void
@@ -217,7 +224,9 @@ __glXDispSwap_Map2d(GLbyte * pc)
#else
points = (GLdouble *) pc;
#endif
- glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+ CALL_Map2d(GET_DISPATCH(),
+ (target, u1, u2, ustride, uorder, v1, v2, vstride, vorder,
+ points));
}
static void
@@ -329,36 +338,39 @@ __glXDispSwap_DrawArrays(GLbyte * pc)
switch (component) {
case GL_VERTEX_ARRAY:
- glEnableClientState(GL_VERTEX_ARRAY);
- glVertexPointer(numVals, datatype, stride, pc);
+ CALL_EnableClientState(GET_DISPATCH(), (GL_VERTEX_ARRAY));
+ CALL_VertexPointer(GET_DISPATCH(), (numVals, datatype, stride, pc));
break;
case GL_NORMAL_ARRAY:
- glEnableClientState(GL_NORMAL_ARRAY);
- glNormalPointer(datatype, stride, pc);
+ CALL_EnableClientState(GET_DISPATCH(), (GL_NORMAL_ARRAY));
+ CALL_NormalPointer(GET_DISPATCH(), (datatype, stride, pc));
break;
case GL_COLOR_ARRAY:
- glEnableClientState(GL_COLOR_ARRAY);
- glColorPointer(numVals, datatype, stride, pc);
+ CALL_EnableClientState(GET_DISPATCH(), (GL_COLOR_ARRAY));
+ CALL_ColorPointer(GET_DISPATCH(), (numVals, datatype, stride, pc));
break;
case GL_INDEX_ARRAY:
- glEnableClientState(GL_INDEX_ARRAY);
- glIndexPointer(datatype, stride, pc);
+ CALL_EnableClientState(GET_DISPATCH(), (GL_INDEX_ARRAY));
+ CALL_IndexPointer(GET_DISPATCH(), (datatype, stride, pc));
break;
case GL_TEXTURE_COORD_ARRAY:
- glEnableClientState(GL_TEXTURE_COORD_ARRAY);
- glTexCoordPointer(numVals, datatype, stride, pc);
+ CALL_EnableClientState(GET_DISPATCH(), (GL_TEXTURE_COORD_ARRAY));
+ CALL_TexCoordPointer(GET_DISPATCH(),
+ (numVals, datatype, stride, pc));
break;
case GL_EDGE_FLAG_ARRAY:
- glEnableClientState(GL_EDGE_FLAG_ARRAY);
- glEdgeFlagPointer(stride, (const GLboolean *) pc);
+ CALL_EnableClientState(GET_DISPATCH(), (GL_EDGE_FLAG_ARRAY));
+ CALL_EdgeFlagPointer(GET_DISPATCH(),
+ (stride, (const GLboolean *) pc));
break;
case GL_SECONDARY_COLOR_ARRAY:
- glEnableClientState(GL_SECONDARY_COLOR_ARRAY);
- glSecondaryColorPointerEXT(numVals, datatype, stride, pc);
+ CALL_EnableClientState(GET_DISPATCH(), (GL_SECONDARY_COLOR_ARRAY));
+ CALL_SecondaryColorPointer(GET_DISPATCH(),
+ (numVals, datatype, stride, pc));
break;
case GL_FOG_COORD_ARRAY:
- glEnableClientState(GL_FOG_COORD_ARRAY);
- glFogCoordPointerEXT(datatype, stride, pc);
+ CALL_EnableClientState(GET_DISPATCH(), (GL_FOG_COORD_ARRAY));
+ CALL_FogCoordPointer(GET_DISPATCH(), (datatype, stride, pc));
break;
default:
break;
@@ -367,15 +379,15 @@ __glXDispSwap_DrawArrays(GLbyte * pc)
pc += __GLX_PAD(numVals * __glXTypeSize(datatype));
}
- glDrawArrays(primType, 0, numVertexes);
+ CALL_DrawArrays(GET_DISPATCH(), (primType, 0, numVertexes));
/* turn off anything we might have turned on */
- glDisableClientState(GL_VERTEX_ARRAY);
- glDisableClientState(GL_NORMAL_ARRAY);
- glDisableClientState(GL_COLOR_ARRAY);
- glDisableClientState(GL_INDEX_ARRAY);
- glDisableClientState(GL_TEXTURE_COORD_ARRAY);
- glDisableClientState(GL_EDGE_FLAG_ARRAY);
- glDisableClientState(GL_SECONDARY_COLOR_ARRAY);
- glDisableClientState(GL_FOG_COORD_ARRAY);
+ CALL_DisableClientState(GET_DISPATCH(), (GL_VERTEX_ARRAY));
+ CALL_DisableClientState(GET_DISPATCH(), (GL_NORMAL_ARRAY));
+ CALL_DisableClientState(GET_DISPATCH(), (GL_COLOR_ARRAY));
+ CALL_DisableClientState(GET_DISPATCH(), (GL_INDEX_ARRAY));
+ CALL_DisableClientState(GET_DISPATCH(), (GL_TEXTURE_COORD_ARRAY));
+ CALL_DisableClientState(GET_DISPATCH(), (GL_EDGE_FLAG_ARRAY));
+ CALL_DisableClientState(GET_DISPATCH(), (GL_SECONDARY_COLOR_ARRAY));
+ CALL_DisableClientState(GET_DISPATCH(), (GL_FOG_COORD_ARRAY));
}
diff --git a/xorg-server/glx/renderpix.c b/xorg-server/glx/renderpix.c
index 91ba91187..26462f343 100644
--- a/xorg-server/glx/renderpix.c
+++ b/xorg-server/glx/renderpix.c
@@ -31,10 +31,15 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
+#include "glheader.h"
#include "glxserver.h"
#include "unpack.h"
#include "indirect_dispatch.h"
+#include "glapitable.h"
+#include "glapi.h"
+#include "glthread.h"
+#include "dispatch.h"
void
__glXDisp_SeparableFilter2D(GLbyte * pc)
@@ -45,12 +50,12 @@ __glXDisp_SeparableFilter2D(GLbyte * pc)
hdrlen = __GLX_PAD(__GLX_CONV_FILT_CMD_DISPATCH_HDR_SIZE);
- glPixelStorei(GL_UNPACK_SWAP_BYTES, hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, hdr->rowLength);
- glPixelStorei(GL_UNPACK_SKIP_ROWS, hdr->skipRows);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, hdr->skipPixels);
- glPixelStorei(GL_UNPACK_ALIGNMENT, hdr->alignment);
+ CALL_PixelStorei(GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, hdr->swapBytes));
+ CALL_PixelStorei(GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst));
+ CALL_PixelStorei(GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, hdr->rowLength));
+ CALL_PixelStorei(GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, hdr->skipRows));
+ CALL_PixelStorei(GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, hdr->skipPixels));
+ CALL_PixelStorei(GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, hdr->alignment));
/* XXX check this usage - internal code called
** a version without the packing parameters
@@ -60,8 +65,10 @@ __glXDisp_SeparableFilter2D(GLbyte * pc)
hdr->alignment);
image1len = __GLX_PAD(image1len);
- glSeparableFilter2D(hdr->target, hdr->internalformat, hdr->width,
- hdr->height, hdr->format, hdr->type,
+ CALL_SeparableFilter2D(GET_DISPATCH(), (hdr->target, hdr->internalformat,
+ hdr->width, hdr->height,
+ hdr->format, hdr->type,
((GLubyte *) hdr + hdrlen),
- ((GLubyte *) hdr + hdrlen + image1len));
+ ((GLubyte *) hdr + hdrlen +
+ image1len)));
}
diff --git a/xorg-server/glx/renderpixswap.c b/xorg-server/glx/renderpixswap.c
index a4cb246bb..e4da31f94 100644
--- a/xorg-server/glx/renderpixswap.c
+++ b/xorg-server/glx/renderpixswap.c
@@ -31,10 +31,15 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
+#include "glheader.h"
#include "glxserver.h"
#include "unpack.h"
#include "indirect_dispatch.h"
+#include "glapitable.h"
+#include "glapi.h"
+#include "glthread.h"
+#include "dispatch.h"
void
__glXDispSwap_SeparableFilter2D(GLbyte * pc)
@@ -63,12 +68,12 @@ __glXDispSwap_SeparableFilter2D(GLbyte * pc)
** Just invert swapBytes flag; the GL will figure out if it needs to swap
** the pixel data.
*/
- glPixelStorei(GL_UNPACK_SWAP_BYTES, !hdr->swapBytes);
- glPixelStorei(GL_UNPACK_LSB_FIRST, hdr->lsbFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, hdr->rowLength);
- glPixelStorei(GL_UNPACK_SKIP_ROWS, hdr->skipRows);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, hdr->skipPixels);
- glPixelStorei(GL_UNPACK_ALIGNMENT, hdr->alignment);
+ CALL_PixelStorei(GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, !hdr->swapBytes));
+ CALL_PixelStorei(GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, hdr->lsbFirst));
+ CALL_PixelStorei(GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, hdr->rowLength));
+ CALL_PixelStorei(GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, hdr->skipRows));
+ CALL_PixelStorei(GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, hdr->skipPixels));
+ CALL_PixelStorei(GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, hdr->alignment));
/* XXX check this usage - internal code called
** a version without the packing parameters
@@ -78,8 +83,10 @@ __glXDispSwap_SeparableFilter2D(GLbyte * pc)
hdr->alignment);
image1len = __GLX_PAD(image1len);
- glSeparableFilter2D(hdr->target, hdr->internalformat, hdr->width,
- hdr->height, hdr->format, hdr->type,
+ CALL_SeparableFilter2D(GET_DISPATCH(), (hdr->target, hdr->internalformat,
+ hdr->width, hdr->height,
+ hdr->format, hdr->type,
((GLubyte *) hdr + hdrlen),
- ((GLubyte *) hdr + hdrlen + image1len));
+ ((GLubyte *) hdr + hdrlen +
+ image1len)));
}
diff --git a/xorg-server/glx/rensize.c b/xorg-server/glx/rensize.c
index bcc3a53ad..38a7bf0ec 100644
--- a/xorg-server/glx/rensize.c
+++ b/xorg-server/glx/rensize.c
@@ -30,6 +30,10 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
+#else
+
+#include "glheader.h"
+
#endif
#include <GL/gl.h>
@@ -226,12 +230,14 @@ __glXImageSize(GLenum format, GLenum type, GLenum target,
case GL_INTENSITY:
elementsPerGroup = 1;
break;
+ case GL_RG:
case GL_422_EXT:
case GL_422_REV_EXT:
case GL_422_AVERAGE_EXT:
case GL_422_REV_AVERAGE_EXT:
case GL_DEPTH_STENCIL_NV:
case GL_DEPTH_STENCIL_MESA:
+ case GL_YCBCR_422_APPLE:
case GL_YCBCR_MESA:
case GL_LUMINANCE_ALPHA:
elementsPerGroup = 2;
diff --git a/xorg-server/glx/single2.c b/xorg-server/glx/single2.c
index 53b661d20..c199ed1cb 100644
--- a/xorg-server/glx/single2.c
+++ b/xorg-server/glx/single2.c
@@ -31,16 +31,24 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
+#include "glheader.h"
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include "glxserver.h"
-#include "glxutil.h"
#include "glxext.h"
-#include "indirect_dispatch.h"
+#include "singlesize.h"
#include "unpack.h"
+#include "indirect_dispatch.h"
+#include "indirect_size_get.h"
+#include "glapitable.h"
+#include "glapi.h"
+#include "glthread.h"
+#include "dispatch.h"
+
+#include "glxutil.h"
int
__glXDisp_FeedbackBuffer(__GLXclientState * cl, GLbyte * pc)
@@ -68,7 +76,7 @@ __glXDisp_FeedbackBuffer(__GLXclientState * cl, GLbyte * pc)
}
cx->feedbackBufSize = size;
}
- glFeedbackBuffer(size, type, cx->feedbackBuf);
+ CALL_FeedbackBuffer(GET_DISPATCH(), (size, type, cx->feedbackBuf));
cx->hasUnflushedCommands = GL_TRUE;
return Success;
}
@@ -96,7 +104,7 @@ __glXDisp_SelectBuffer(__GLXclientState * cl, GLbyte * pc)
}
cx->selectBufSize = size;
}
- glSelectBuffer(size, cx->selectBuf);
+ CALL_SelectBuffer(GET_DISPATCH(), (size, cx->selectBuf));
cx->hasUnflushedCommands = GL_TRUE;
return Success;
}
@@ -119,10 +127,10 @@ __glXDisp_RenderMode(__GLXclientState * cl, GLbyte * pc)
pc += __GLX_SINGLE_HDR_SIZE;
newMode = *(GLenum *) pc;
- retval = glRenderMode(newMode);
+ retval = CALL_RenderMode(GET_DISPATCH(), (newMode));
/* Check that render mode worked */
- glGetIntegerv(GL_RENDER_MODE, &newModeCheck);
+ CALL_GetIntegerv(GET_DISPATCH(), (GL_RENDER_MODE, &newModeCheck));
if (newModeCheck != newMode) {
/* Render mode change failed. Bail */
newMode = newModeCheck;
@@ -189,14 +197,12 @@ __glXDisp_RenderMode(__GLXclientState * cl, GLbyte * pc)
*/
noChangeAllowed:;
client = cl->client;
- reply = (xGLXRenderModeReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = nitems,
- .retval = retval,
- .size = nitems,
- .newMode = newMode
- };
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = nitems;
+ reply.retval = retval;
+ reply.size = nitems;
+ reply.newMode = newMode;
WriteToClient(client, sz_xGLXRenderModeReply, &reply);
if (retBytes) {
WriteToClient(client, retBytes, retBuffer);
@@ -215,7 +221,7 @@ __glXDisp_Flush(__GLXclientState * cl, GLbyte * pc)
return error;
}
- glFlush();
+ CALL_Flush(GET_DISPATCH(), ());
cx->hasUnflushedCommands = GL_FALSE;
return Success;
}
@@ -233,7 +239,7 @@ __glXDisp_Finish(__GLXclientState * cl, GLbyte * pc)
}
/* Do a local glFinish */
- glFinish();
+ CALL_Finish(GET_DISPATCH(), ());
cx->hasUnflushedCommands = GL_FALSE;
/* Send empty reply packet to indicate finish is finished */
@@ -342,7 +348,7 @@ DoGetString(__GLXclientState * cl, GLbyte * pc, GLboolean need_swap)
pc += __GLX_SINGLE_HDR_SIZE;
name = *(GLenum *) (pc + 0);
- string = (const char *) glGetString(name);
+ string = (const char *) CALL_GetString(GET_DISPATCH(), (name));
client = cl->client;
if (string == NULL)
diff --git a/xorg-server/glx/single2swap.c b/xorg-server/glx/single2swap.c
index 764501f59..47ff3e4c7 100644
--- a/xorg-server/glx/single2swap.c
+++ b/xorg-server/glx/single2swap.c
@@ -31,12 +31,17 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
+#include "glheader.h"
#include "glxserver.h"
#include "glxutil.h"
#include "glxext.h"
#include "indirect_dispatch.h"
#include "unpack.h"
+#include "glapitable.h"
+#include "glapi.h"
+#include "glthread.h"
+#include "dispatch.h"
int
__glXDispSwap_FeedbackBuffer(__GLXclientState * cl, GLbyte * pc)
@@ -69,7 +74,7 @@ __glXDispSwap_FeedbackBuffer(__GLXclientState * cl, GLbyte * pc)
}
cx->feedbackBufSize = size;
}
- glFeedbackBuffer(size, type, cx->feedbackBuf);
+ CALL_FeedbackBuffer(GET_DISPATCH(), (size, type, cx->feedbackBuf));
cx->hasUnflushedCommands = GL_TRUE;
return Success;
}
@@ -101,7 +106,7 @@ __glXDispSwap_SelectBuffer(__GLXclientState * cl, GLbyte * pc)
}
cx->selectBufSize = size;
}
- glSelectBuffer(size, cx->selectBuf);
+ CALL_SelectBuffer(GET_DISPATCH(), (size, cx->selectBuf));
cx->hasUnflushedCommands = GL_TRUE;
return Success;
}
@@ -129,10 +134,10 @@ __glXDispSwap_RenderMode(__GLXclientState * cl, GLbyte * pc)
pc += __GLX_SINGLE_HDR_SIZE;
__GLX_SWAP_INT(pc);
newMode = *(GLenum *) pc;
- retval = glRenderMode(newMode);
+ retval = CALL_RenderMode(GET_DISPATCH(), (newMode));
/* Check that render mode worked */
- glGetIntegerv(GL_RENDER_MODE, &newModeCheck);
+ CALL_GetIntegerv(GET_DISPATCH(), (GL_RENDER_MODE, &newModeCheck));
if (newModeCheck != newMode) {
/* Render mode change failed. Bail */
newMode = newModeCheck;
@@ -201,14 +206,12 @@ __glXDispSwap_RenderMode(__GLXclientState * cl, GLbyte * pc)
*/
noChangeAllowed:;
client = cl->client;
- reply = (xGLXRenderModeReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = nitems,
- .retval = retval,
- .size = nitems,
- .newMode = newMode
- };
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = nitems;
+ reply.retval = retval;
+ reply.size = nitems;
+ reply.newMode = newMode;
__GLX_SWAP_SHORT(&reply.sequenceNumber);
__GLX_SWAP_INT(&reply.length);
__GLX_SWAP_INT(&reply.retval);
@@ -235,7 +238,7 @@ __glXDispSwap_Flush(__GLXclientState * cl, GLbyte * pc)
return error;
}
- glFlush();
+ CALL_Flush(GET_DISPATCH(), ());
cx->hasUnflushedCommands = GL_FALSE;
return Success;
}
@@ -256,7 +259,7 @@ __glXDispSwap_Finish(__GLXclientState * cl, GLbyte * pc)
}
/* Do a local glFinish */
- glFinish();
+ CALL_Finish(GET_DISPATCH(), ());
cx->hasUnflushedCommands = GL_FALSE;
/* Send empty reply packet to indicate finish is finished */
diff --git a/xorg-server/glx/singlepix.c b/xorg-server/glx/singlepix.c
index 506fdaad5..10fd651df 100644
--- a/xorg-server/glx/singlepix.c
+++ b/xorg-server/glx/singlepix.c
@@ -31,6 +31,7 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
+#include "glheader.h"
#include "glxserver.h"
#include "glxext.h"
@@ -38,6 +39,10 @@
#include "unpack.h"
#include "indirect_size_get.h"
#include "indirect_dispatch.h"
+#include "glapitable.h"
+#include "glapi.h"
+#include "glthread.h"
+#include "dispatch.h"
int
__glXDisp_ReadPixels(__GLXclientState * cl, GLbyte * pc)
@@ -67,13 +72,16 @@ __glXDisp_ReadPixels(__GLXclientState * cl, GLbyte * pc)
if (compsize < 0)
compsize = 0;
- glPixelStorei(GL_PACK_SWAP_BYTES, swapBytes);
- glPixelStorei(GL_PACK_LSB_FIRST, lsbFirst);
+ CALL_PixelStorei(GET_DISPATCH(), (GL_PACK_SWAP_BYTES, swapBytes));
+ CALL_PixelStorei(GET_DISPATCH(), (GL_PACK_LSB_FIRST, lsbFirst));
__GLX_GET_ANSWER_BUFFER(answer, cl, compsize, 1);
__glXClearErrorOccured();
- glReadPixels(*(GLint *) (pc + 0), *(GLint *) (pc + 4),
- *(GLsizei *) (pc + 8), *(GLsizei *) (pc + 12),
- *(GLenum *) (pc + 16), *(GLenum *) (pc + 20), answer);
+ CALL_ReadPixels(GET_DISPATCH(), (*(GLint *) (pc + 0),
+ *(GLint *) (pc + 4),
+ *(GLsizei *) (pc + 8),
+ *(GLsizei *) (pc + 12),
+ *(GLenum *) (pc + 16),
+ *(GLenum *) (pc + 20), answer));
if (__glXErrorOccured()) {
__GLX_BEGIN_REPLY(0);
@@ -112,10 +120,13 @@ __glXDisp_GetTexImage(__GLXclientState * cl, GLbyte * pc)
target = *(GLenum *) (pc + 0);
swapBytes = *(GLboolean *) (pc + 16);
- glGetTexLevelParameteriv(target, level, GL_TEXTURE_WIDTH, &width);
- glGetTexLevelParameteriv(target, level, GL_TEXTURE_HEIGHT, &height);
+ CALL_GetTexLevelParameteriv(GET_DISPATCH(),
+ (target, level, GL_TEXTURE_WIDTH, &width));
+ CALL_GetTexLevelParameteriv(GET_DISPATCH(),
+ (target, level, GL_TEXTURE_HEIGHT, &height));
if (target == GL_TEXTURE_3D) {
- glGetTexLevelParameteriv(target, level, GL_TEXTURE_DEPTH, &depth);
+ CALL_GetTexLevelParameteriv(GET_DISPATCH(),
+ (target, level, GL_TEXTURE_DEPTH, &depth));
}
/*
* The three queries above might fail if we're in a state where queries
@@ -126,11 +137,13 @@ __glXDisp_GetTexImage(__GLXclientState * cl, GLbyte * pc)
if (compsize < 0)
compsize = 0;
- glPixelStorei(GL_PACK_SWAP_BYTES, swapBytes);
+ CALL_PixelStorei(GET_DISPATCH(), (GL_PACK_SWAP_BYTES, swapBytes));
__GLX_GET_ANSWER_BUFFER(answer, cl, compsize, 1);
__glXClearErrorOccured();
- glGetTexImage(*(GLenum *) (pc + 0), *(GLint *) (pc + 4),
- *(GLenum *) (pc + 8), *(GLenum *) (pc + 12), answer);
+ CALL_GetTexImage(GET_DISPATCH(), (*(GLenum *) (pc + 0),
+ *(GLint *) (pc + 4),
+ *(GLenum *) (pc + 8),
+ *(GLenum *) (pc + 12), answer));
if (__glXErrorOccured()) {
__GLX_BEGIN_REPLY(0);
@@ -165,11 +178,11 @@ __glXDisp_GetPolygonStipple(__GLXclientState * cl, GLbyte * pc)
pc += __GLX_SINGLE_HDR_SIZE;
lsbFirst = *(GLboolean *) (pc + 0);
- glPixelStorei(GL_PACK_LSB_FIRST, lsbFirst);
+ CALL_PixelStorei(GET_DISPATCH(), (GL_PACK_LSB_FIRST, lsbFirst));
__GLX_GET_ANSWER_BUFFER(answer, cl, 128, 1);
__glXClearErrorOccured();
- glGetPolygonStipple((GLubyte *) answer);
+ CALL_GetPolygonStipple(GET_DISPATCH(), ((GLubyte *) answer));
if (__glXErrorOccured()) {
__GLX_BEGIN_REPLY(0);
@@ -208,8 +221,10 @@ GetSeparableFilter(__GLXclientState * cl, GLbyte * pc, GLXContextTag tag)
/* target must be SEPARABLE_2D, however I guess we can let the GL
barf on this one.... */
- glGetConvolutionParameteriv(target, GL_CONVOLUTION_WIDTH, &width);
- glGetConvolutionParameteriv(target, GL_CONVOLUTION_HEIGHT, &height);
+ CALL_GetConvolutionParameteriv(GET_DISPATCH(),
+ (target, GL_CONVOLUTION_WIDTH, &width));
+ CALL_GetConvolutionParameteriv(GET_DISPATCH(),
+ (target, GL_CONVOLUTION_HEIGHT, &height));
/*
* The two queries above might fail if we're in a state where queries
* are illegal, but then width and height would still be zero anyway.
@@ -224,11 +239,13 @@ GetSeparableFilter(__GLXclientState * cl, GLbyte * pc, GLXContextTag tag)
compsize = __GLX_PAD(compsize);
compsize2 = __GLX_PAD(compsize2);
- glPixelStorei(GL_PACK_SWAP_BYTES, swapBytes);
+ CALL_PixelStorei(GET_DISPATCH(), (GL_PACK_SWAP_BYTES, swapBytes));
__GLX_GET_ANSWER_BUFFER(answer, cl, compsize + compsize2, 1);
__glXClearErrorOccured();
- glGetSeparableFilter(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4),
- *(GLenum *) (pc + 8), answer, answer + compsize, NULL);
+ CALL_GetSeparableFilter(GET_DISPATCH(), (*(GLenum *) (pc + 0),
+ *(GLenum *) (pc + 4),
+ *(GLenum *) (pc + 8),
+ answer, answer + compsize, NULL));
if (__glXErrorOccured()) {
__GLX_BEGIN_REPLY(0);
@@ -283,12 +300,15 @@ GetConvolutionFilter(__GLXclientState * cl, GLbyte * pc, GLXContextTag tag)
target = *(GLenum *) (pc + 0);
swapBytes = *(GLboolean *) (pc + 12);
- glGetConvolutionParameteriv(target, GL_CONVOLUTION_WIDTH, &width);
+ CALL_GetConvolutionParameteriv(GET_DISPATCH(),
+ (target, GL_CONVOLUTION_WIDTH, &width));
if (target == GL_CONVOLUTION_1D) {
height = 1;
}
else {
- glGetConvolutionParameteriv(target, GL_CONVOLUTION_HEIGHT, &height);
+ CALL_GetConvolutionParameteriv(GET_DISPATCH(),
+ (target, GL_CONVOLUTION_HEIGHT,
+ &height));
}
/*
* The two queries above might fail if we're in a state where queries
@@ -298,11 +318,12 @@ GetConvolutionFilter(__GLXclientState * cl, GLbyte * pc, GLXContextTag tag)
if (compsize < 0)
compsize = 0;
- glPixelStorei(GL_PACK_SWAP_BYTES, swapBytes);
+ CALL_PixelStorei(GET_DISPATCH(), (GL_PACK_SWAP_BYTES, swapBytes));
__GLX_GET_ANSWER_BUFFER(answer, cl, compsize, 1);
__glXClearErrorOccured();
- glGetConvolutionFilter(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4),
- *(GLenum *) (pc + 8), answer);
+ CALL_GetConvolutionFilter(GET_DISPATCH(), (*(GLenum *) (pc + 0),
+ *(GLenum *) (pc + 4),
+ *(GLenum *) (pc + 8), answer));
if (__glXErrorOccured()) {
__GLX_BEGIN_REPLY(0);
@@ -358,7 +379,8 @@ GetHistogram(__GLXclientState * cl, GLbyte * pc, GLXContextTag tag)
swapBytes = *(GLboolean *) (pc + 12);
reset = *(GLboolean *) (pc + 13);
- glGetHistogramParameteriv(target, GL_HISTOGRAM_WIDTH, &width);
+ CALL_GetHistogramParameteriv(GET_DISPATCH(),
+ (target, GL_HISTOGRAM_WIDTH, &width));
/*
* The one query above might fail if we're in a state where queries
* are illegal, but then width would still be zero anyway.
@@ -367,10 +389,10 @@ GetHistogram(__GLXclientState * cl, GLbyte * pc, GLXContextTag tag)
if (compsize < 0)
compsize = 0;
- glPixelStorei(GL_PACK_SWAP_BYTES, swapBytes);
+ CALL_PixelStorei(GET_DISPATCH(), (GL_PACK_SWAP_BYTES, swapBytes));
__GLX_GET_ANSWER_BUFFER(answer, cl, compsize, 1);
__glXClearErrorOccured();
- glGetHistogram(target, reset, format, type, answer);
+ CALL_GetHistogram(GET_DISPATCH(), (target, reset, format, type, answer));
if (__glXErrorOccured()) {
__GLX_BEGIN_REPLY(0);
@@ -428,10 +450,10 @@ GetMinmax(__GLXclientState * cl, GLbyte * pc, GLXContextTag tag)
if (compsize < 0)
compsize = 0;
- glPixelStorei(GL_PACK_SWAP_BYTES, swapBytes);
+ CALL_PixelStorei(GET_DISPATCH(), (GL_PACK_SWAP_BYTES, swapBytes));
__GLX_GET_ANSWER_BUFFER(answer, cl, compsize, 1);
__glXClearErrorOccured();
- glGetMinmax(target, reset, format, type, answer);
+ CALL_GetMinmax(GET_DISPATCH(), (target, reset, format, type, answer));
if (__glXErrorOccured()) {
__GLX_BEGIN_REPLY(0);
@@ -484,7 +506,8 @@ GetColorTable(__GLXclientState * cl, GLbyte * pc, GLXContextTag tag)
type = *(GLenum *) (pc + 8);
swapBytes = *(GLboolean *) (pc + 12);
- glGetColorTableParameteriv(target, GL_COLOR_TABLE_WIDTH, &width);
+ CALL_GetColorTableParameteriv(GET_DISPATCH(),
+ (target, GL_COLOR_TABLE_WIDTH, &width));
/*
* The one query above might fail if we're in a state where queries
* are illegal, but then width would still be zero anyway.
@@ -493,11 +516,12 @@ GetColorTable(__GLXclientState * cl, GLbyte * pc, GLXContextTag tag)
if (compsize < 0)
compsize = 0;
- glPixelStorei(GL_PACK_SWAP_BYTES, swapBytes);
+ CALL_PixelStorei(GET_DISPATCH(), (GL_PACK_SWAP_BYTES, swapBytes));
__GLX_GET_ANSWER_BUFFER(answer, cl, compsize, 1);
__glXClearErrorOccured();
- glGetColorTable(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4),
- *(GLenum *) (pc + 8), answer);
+ CALL_GetColorTable(GET_DISPATCH(), (*(GLenum *) (pc + 0),
+ *(GLenum *) (pc + 4),
+ *(GLenum *) (pc + 8), answer));
if (__glXErrorOccured()) {
__GLX_BEGIN_REPLY(0);
diff --git a/xorg-server/glx/singlepixswap.c b/xorg-server/glx/singlepixswap.c
index 846910153..7e20ed6bb 100644
--- a/xorg-server/glx/singlepixswap.c
+++ b/xorg-server/glx/singlepixswap.c
@@ -31,6 +31,7 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
+#include "glheader.h"
#include "glxserver.h"
#include "glxext.h"
@@ -38,6 +39,10 @@
#include "unpack.h"
#include "indirect_dispatch.h"
#include "indirect_size_get.h"
+#include "glapitable.h"
+#include "glapi.h"
+#include "glthread.h"
+#include "dispatch.h"
int
__glXDispSwap_ReadPixels(__GLXclientState * cl, GLbyte * pc)
@@ -77,13 +82,17 @@ __glXDispSwap_ReadPixels(__GLXclientState * cl, GLbyte * pc)
if (compsize < 0)
compsize = 0;
- glPixelStorei(GL_PACK_SWAP_BYTES, !swapBytes);
- glPixelStorei(GL_PACK_LSB_FIRST, lsbFirst);
+ CALL_PixelStorei(GET_DISPATCH(), (GL_PACK_SWAP_BYTES, !swapBytes));
+ CALL_PixelStorei(GET_DISPATCH(), (GL_PACK_LSB_FIRST, lsbFirst));
__GLX_GET_ANSWER_BUFFER(answer, cl, compsize, 1);
__glXClearErrorOccured();
- glReadPixels(*(GLint *) (pc + 0), *(GLint *) (pc + 4),
- *(GLsizei *) (pc + 8), *(GLsizei *) (pc + 12),
- *(GLenum *) (pc + 16), *(GLenum *) (pc + 20), answer);
+ CALL_ReadPixels(GET_DISPATCH(),
+ (*(GLint *) (pc + 0),
+ *(GLint *) (pc + 4),
+ *(GLsizei *) (pc + 8),
+ *(GLsizei *) (pc + 12),
+ *(GLenum *) (pc + 16), *(GLenum *) (pc + 20), answer)
+ );
if (__glXErrorOccured()) {
__GLX_BEGIN_REPLY(0);
@@ -132,10 +141,13 @@ __glXDispSwap_GetTexImage(__GLXclientState * cl, GLbyte * pc)
target = *(GLenum *) (pc + 0);
swapBytes = *(GLboolean *) (pc + 16);
- glGetTexLevelParameteriv(target, level, GL_TEXTURE_WIDTH, &width);
- glGetTexLevelParameteriv(target, level, GL_TEXTURE_HEIGHT, &height);
+ CALL_GetTexLevelParameteriv(GET_DISPATCH(),
+ (target, level, GL_TEXTURE_WIDTH, &width));
+ CALL_GetTexLevelParameteriv(GET_DISPATCH(),
+ (target, level, GL_TEXTURE_HEIGHT, &height));
if (target == GL_TEXTURE_3D) {
- glGetTexLevelParameteriv(target, level, GL_TEXTURE_DEPTH, &depth);
+ CALL_GetTexLevelParameteriv(GET_DISPATCH(),
+ (target, level, GL_TEXTURE_DEPTH, &depth));
}
/*
* The three queries above might fail if we're in a state where queries
@@ -146,11 +158,13 @@ __glXDispSwap_GetTexImage(__GLXclientState * cl, GLbyte * pc)
if (compsize < 0)
compsize = 0;
- glPixelStorei(GL_PACK_SWAP_BYTES, !swapBytes);
+ CALL_PixelStorei(GET_DISPATCH(), (GL_PACK_SWAP_BYTES, !swapBytes));
__GLX_GET_ANSWER_BUFFER(answer, cl, compsize, 1);
__glXClearErrorOccured();
- glGetTexImage(*(GLenum *) (pc + 0), *(GLint *) (pc + 4),
- *(GLenum *) (pc + 8), *(GLenum *) (pc + 12), answer);
+ CALL_GetTexImage(GET_DISPATCH(), (*(GLenum *) (pc + 0),
+ *(GLint *) (pc + 4),
+ *(GLenum *) (pc + 8),
+ *(GLenum *) (pc + 12), answer));
if (__glXErrorOccured()) {
__GLX_BEGIN_REPLY(0);
@@ -192,11 +206,11 @@ __glXDispSwap_GetPolygonStipple(__GLXclientState * cl, GLbyte * pc)
pc += __GLX_SINGLE_HDR_SIZE;
lsbFirst = *(GLboolean *) (pc + 0);
- glPixelStorei(GL_PACK_LSB_FIRST, lsbFirst);
+ CALL_PixelStorei(GET_DISPATCH(), (GL_PACK_LSB_FIRST, lsbFirst));
__GLX_GET_ANSWER_BUFFER(answer, cl, 128, 1);
__glXClearErrorOccured();
- glGetPolygonStipple((GLubyte *) answer);
+ CALL_GetPolygonStipple(GET_DISPATCH(), ((GLubyte *) answer));
if (__glXErrorOccured()) {
__GLX_BEGIN_REPLY(0);
__GLX_SWAP_REPLY_HEADER();
@@ -242,8 +256,10 @@ GetSeparableFilter(__GLXclientState * cl, GLbyte * pc, GLXContextTag tag)
/* target must be SEPARABLE_2D, however I guess we can let the GL
barf on this one.... */
- glGetConvolutionParameteriv(target, GL_CONVOLUTION_WIDTH, &width);
- glGetConvolutionParameteriv(target, GL_CONVOLUTION_HEIGHT, &height);
+ CALL_GetConvolutionParameteriv(GET_DISPATCH(),
+ (target, GL_CONVOLUTION_WIDTH, &width));
+ CALL_GetConvolutionParameteriv(GET_DISPATCH(),
+ (target, GL_CONVOLUTION_HEIGHT, &height));
/*
* The two queries above might fail if we're in a state where queries
* are illegal, but then width and height would still be zero anyway.
@@ -258,11 +274,13 @@ GetSeparableFilter(__GLXclientState * cl, GLbyte * pc, GLXContextTag tag)
compsize = __GLX_PAD(compsize);
compsize2 = __GLX_PAD(compsize2);
- glPixelStorei(GL_PACK_SWAP_BYTES, !swapBytes);
+ CALL_PixelStorei(GET_DISPATCH(), (GL_PACK_SWAP_BYTES, !swapBytes));
__GLX_GET_ANSWER_BUFFER(answer, cl, compsize + compsize2, 1);
__glXClearErrorOccured();
- glGetSeparableFilter(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4),
- *(GLenum *) (pc + 8), answer, answer + compsize, NULL);
+ CALL_GetSeparableFilter(GET_DISPATCH(), (*(GLenum *) (pc + 0),
+ *(GLenum *) (pc + 4),
+ *(GLenum *) (pc + 8),
+ answer, answer + compsize, NULL));
if (__glXErrorOccured()) {
__GLX_BEGIN_REPLY(0);
@@ -325,12 +343,15 @@ GetConvolutionFilter(__GLXclientState * cl, GLbyte * pc, GLXContextTag tag)
target = *(GLenum *) (pc + 0);
swapBytes = *(GLboolean *) (pc + 12);
- glGetConvolutionParameteriv(target, GL_CONVOLUTION_WIDTH, &width);
+ CALL_GetConvolutionParameteriv(GET_DISPATCH(),
+ (target, GL_CONVOLUTION_WIDTH, &width));
if (target == GL_CONVOLUTION_2D) {
height = 1;
}
else {
- glGetConvolutionParameteriv(target, GL_CONVOLUTION_HEIGHT, &height);
+ CALL_GetConvolutionParameteriv(GET_DISPATCH(),
+ (target, GL_CONVOLUTION_HEIGHT,
+ &height));
}
/*
* The two queries above might fail if we're in a state where queries
@@ -340,11 +361,12 @@ GetConvolutionFilter(__GLXclientState * cl, GLbyte * pc, GLXContextTag tag)
if (compsize < 0)
compsize = 0;
- glPixelStorei(GL_PACK_SWAP_BYTES, !swapBytes);
+ CALL_PixelStorei(GET_DISPATCH(), (GL_PACK_SWAP_BYTES, !swapBytes));
__GLX_GET_ANSWER_BUFFER(answer, cl, compsize, 1);
__glXClearErrorOccured();
- glGetConvolutionFilter(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4),
- *(GLenum *) (pc + 8), answer);
+ CALL_GetConvolutionFilter(GET_DISPATCH(), (*(GLenum *) (pc + 0),
+ *(GLenum *) (pc + 4),
+ *(GLenum *) (pc + 8), answer));
if (__glXErrorOccured()) {
__GLX_BEGIN_REPLY(0);
@@ -408,7 +430,8 @@ GetHistogram(__GLXclientState * cl, GLbyte * pc, GLXContextTag tag)
swapBytes = *(GLboolean *) (pc + 12);
reset = *(GLboolean *) (pc + 13);
- glGetHistogramParameteriv(target, GL_HISTOGRAM_WIDTH, &width);
+ CALL_GetHistogramParameteriv(GET_DISPATCH(),
+ (target, GL_HISTOGRAM_WIDTH, &width));
/*
* The one query above might fail if we're in a state where queries
* are illegal, but then width would still be zero anyway.
@@ -417,10 +440,10 @@ GetHistogram(__GLXclientState * cl, GLbyte * pc, GLXContextTag tag)
if (compsize < 0)
compsize = 0;
- glPixelStorei(GL_PACK_SWAP_BYTES, !swapBytes);
+ CALL_PixelStorei(GET_DISPATCH(), (GL_PACK_SWAP_BYTES, !swapBytes));
__GLX_GET_ANSWER_BUFFER(answer, cl, compsize, 1);
__glXClearErrorOccured();
- glGetHistogram(target, reset, format, type, answer);
+ CALL_GetHistogram(GET_DISPATCH(), (target, reset, format, type, answer));
if (__glXErrorOccured()) {
__GLX_BEGIN_REPLY(0);
@@ -485,10 +508,10 @@ GetMinmax(__GLXclientState * cl, GLbyte * pc, GLXContextTag tag)
if (compsize < 0)
compsize = 0;
- glPixelStorei(GL_PACK_SWAP_BYTES, !swapBytes);
+ CALL_PixelStorei(GET_DISPATCH(), (GL_PACK_SWAP_BYTES, !swapBytes));
__GLX_GET_ANSWER_BUFFER(answer, cl, compsize, 1);
__glXClearErrorOccured();
- glGetMinmax(target, reset, format, type, answer);
+ CALL_GetMinmax(GET_DISPATCH(), (target, reset, format, type, answer));
if (__glXErrorOccured()) {
__GLX_BEGIN_REPLY(0);
@@ -547,7 +570,8 @@ GetColorTable(__GLXclientState * cl, GLbyte * pc, GLXContextTag tag)
target = *(GLenum *) (pc + 0);
swapBytes = *(GLboolean *) (pc + 12);
- glGetColorTableParameteriv(target, GL_COLOR_TABLE_WIDTH, &width);
+ CALL_GetColorTableParameteriv(GET_DISPATCH(),
+ (target, GL_COLOR_TABLE_WIDTH, &width));
/*
* The one query above might fail if we're in a state where queries
* are illegal, but then width would still be zero anyway.
@@ -556,11 +580,12 @@ GetColorTable(__GLXclientState * cl, GLbyte * pc, GLXContextTag tag)
if (compsize < 0)
compsize = 0;
- glPixelStorei(GL_PACK_SWAP_BYTES, !swapBytes);
+ CALL_PixelStorei(GET_DISPATCH(), (GL_PACK_SWAP_BYTES, !swapBytes));
__GLX_GET_ANSWER_BUFFER(answer, cl, compsize, 1);
__glXClearErrorOccured();
- glGetColorTable(*(GLenum *) (pc + 0), *(GLenum *) (pc + 4),
- *(GLenum *) (pc + 8), answer);
+ CALL_GetColorTable(GET_DISPATCH(), (*(GLenum *) (pc + 0),
+ *(GLenum *) (pc + 4),
+ *(GLenum *) (pc + 8), answer));
if (__glXErrorOccured()) {
__GLX_BEGIN_REPLY(0);
diff --git a/xorg-server/glx/singlesize.c b/xorg-server/glx/singlesize.c
index 4c60b6920..48ebbec4a 100644
--- a/xorg-server/glx/singlesize.c
+++ b/xorg-server/glx/singlesize.c
@@ -31,11 +31,20 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
+#include "glheader.h"
-#include <GL/gl.h>
#include "glxserver.h"
+#include "glxext.h"
#include "singlesize.h"
+#include "unpack.h"
+#include "indirect_dispatch.h"
#include "indirect_size_get.h"
+#include "glapitable.h"
+#include "glapi.h"
+#include "glthread.h"
+#include "dispatch.h"
+
+#include <GL/gl.h>
/*
** These routines compute the size of variable-size returned parameters.
@@ -71,7 +80,7 @@ __glGetMap_size(GLenum target, GLenum query)
switch (query) {
case GL_COEFF:
k = __glMap1d_size(target);
- glGetMapiv(target, GL_ORDER, &order);
+ CALL_GetMapiv(GET_DISPATCH(), (target, GL_ORDER, &order));
/*
** The query above might fail, but then order will be zero anyway.
*/
@@ -95,7 +104,7 @@ __glGetMap_size(GLenum target, GLenum query)
case GL_COEFF:
k = __glMap2d_size(target);
majorMinor[0] = majorMinor[1] = 0;
- glGetMapiv(target, GL_ORDER, majorMinor);
+ CALL_GetMapiv(GET_DISPATCH(), (target, GL_ORDER, majorMinor));
/*
** The query above might fail, but then majorMinor will be zeroes
*/
@@ -168,7 +177,7 @@ __glGetPixelMap_size(GLenum map)
default:
return -1;
}
- glGetIntegerv(query, &size);
+ CALL_GetIntegerv(GET_DISPATCH(), (query, &size));
return size;
}
diff --git a/xorg-server/glx/swap_interval.c b/xorg-server/glx/swap_interval.c
index 17bc99207..80d8b9436 100644
--- a/xorg-server/glx/swap_interval.c
+++ b/xorg-server/glx/swap_interval.c
@@ -25,6 +25,7 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
+#include "glheader.h"
#include "glxserver.h"
#include "glxutil.h"
diff --git a/xorg-server/glx/xfont.c b/xorg-server/glx/xfont.c
index 83a455d73..d01555fc3 100644
--- a/xorg-server/glx/xfont.c
+++ b/xorg-server/glx/xfont.c
@@ -31,11 +31,21 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
+#include "glheader.h"
#include "glxserver.h"
-#include "glxutil.h"
+#include "glxext.h"
+#include "singlesize.h"
#include "unpack.h"
#include "indirect_dispatch.h"
+#include "indirect_size_get.h"
+#include "glapitable.h"
+#include "glapi.h"
+#include "glthread.h"
+#include "dispatch.h"
+
+#include "glxutil.h"
+
#include <GL/gl.h>
#include <pixmapstr.h>
#include <windowstr.h>
@@ -90,8 +100,8 @@ __glXMakeBitmapFromGlyph(FontPtr font, CharInfoPtr pci)
pglyph -= widthPadded;
p += widthPadded;
}
- glBitmap(w, h, -pci->metrics.leftSideBearing, pci->metrics.descent,
- pci->metrics.characterWidth, 0, allocbuf ? allocbuf : buf);
+ CALL_Bitmap(GET_DISPATCH(), (w, h, -pci->metrics.leftSideBearing, pci->metrics.descent,
+ pci->metrics.characterWidth, 0, allocbuf ? allocbuf : buf));
free(allocbuf);
return Success;
@@ -112,12 +122,12 @@ MakeBitmapsFromFont(FontPtr pFont, int first, int count, int list_base)
int rv; /* return value */
int encoding = (FONTLASTROW(pFont) == 0) ? Linear16Bit : TwoD16Bit;
- glPixelStorei(GL_UNPACK_SWAP_BYTES, FALSE);
- glPixelStorei(GL_UNPACK_LSB_FIRST, BITMAP_BIT_ORDER == LSBFirst);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
- glPixelStorei(GL_UNPACK_SKIP_ROWS, 0);
- glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0);
- glPixelStorei(GL_UNPACK_ALIGNMENT, GLYPHPADBYTES);
+ CALL_PixelStorei(GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES, FALSE));
+ CALL_PixelStorei(GET_DISPATCH(), (GL_UNPACK_LSB_FIRST, BITMAP_BIT_ORDER == LSBFirst));
+ CALL_PixelStorei(GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, 0));
+ CALL_PixelStorei(GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, 0));
+ CALL_PixelStorei(GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, 0));
+ CALL_PixelStorei(GET_DISPATCH(), (GL_UNPACK_ALIGNMENT, GLYPHPADBYTES));
for (i = 0; i < count; i++) {
chs[0] = (first + i) >> 8; /* high byte is first byte */
chs[1] = first + i;
@@ -128,14 +138,14 @@ MakeBitmapsFromFont(FontPtr pFont, int first, int count, int list_base)
/*
** Define a display list containing just a glBitmap() call.
*/
- glNewList(list_base + i, GL_COMPILE);
+ CALL_NewList(GET_DISPATCH(), (list_base + i, GL_COMPILE));
if (nglyphs) {
rv = __glXMakeBitmapFromGlyph(pFont, pci);
if (rv) {
return rv;
}
}
- glEndList();
+ CALL_EndList(GET_DISPATCH(), ());
}
return Success;
}
@@ -160,7 +170,7 @@ __glXDisp_UseXFont(__GLXclientState * cl, GLbyte * pc)
return error;
}
- glGetIntegerv(GL_LIST_INDEX, (GLint *) &currentListIndex);
+ CALL_GetIntegerv(GET_DISPATCH(), (GL_LIST_INDEX, (GLint *) &currentListIndex));
if (currentListIndex != 0) {
/*
** A display list is currently being made. It is an error
diff --git a/xorg-server/hw/dmx/dmxinit.c b/xorg-server/hw/dmx/dmxinit.c
index bd868a092..c1e97e0cf 100644
--- a/xorg-server/hw/dmx/dmxinit.c
+++ b/xorg-server/hw/dmx/dmxinit.c
@@ -895,6 +895,7 @@ AbortDDX(enum ExitCode error)
}
#ifdef DDXBEFORERESET
+/* This function is called in Xserver/dix/dispatch.c */
void
ddxBeforeReset(void)
{
diff --git a/xorg-server/hw/kdrive/ephyr/ephyr.c b/xorg-server/hw/kdrive/ephyr/ephyr.c
index ef4b3210c..a10f47286 100644
--- a/xorg-server/hw/kdrive/ephyr/ephyr.c
+++ b/xorg-server/hw/kdrive/ephyr/ephyr.c
@@ -76,8 +76,11 @@ host_has_extension(xcb_extension_t *extension)
Bool
ephyrInitialize(KdCardInfo * card, EphyrPriv * priv)
{
+#ifdef _MSC_VER
+ __asm int 3;
+#else
OsSignal(SIGUSR1, hostx_handle_signal);
-
+#endif
priv->base = 0;
priv->bytes_per_line = 0;
return TRUE;
@@ -786,6 +789,14 @@ ephyrUpdateModifierState(unsigned int state)
}
}
+#ifdef _MSC_VER
+ __asm int 3;
+#else
+#endif
+#ifdef _MSC_VER
+ __asm int 3;
+#else
+#endif
static Bool
ephyrCursorOffScreen(ScreenPtr *ppScreen, int *x, int *y)
{
diff --git a/xorg-server/hw/kdrive/ephyr/ephyr.h b/xorg-server/hw/kdrive/ephyr/ephyr.h
index 73fdb59e6..d66c76e1e 100644
--- a/xorg-server/hw/kdrive/ephyr/ephyr.h
+++ b/xorg-server/hw/kdrive/ephyr/ephyr.h
@@ -26,9 +26,11 @@
#ifndef _EPHYR_H_
#define _EPHYR_H_
#include <stdio.h>
+#ifndef _MSC_VER
#include <unistd.h>
-#include <signal.h>
#include <libgen.h>
+#endif
+#include <signal.h>
#include <xcb/xcb_image.h>
#include "os.h" /* for OsSignal() */
@@ -189,6 +191,8 @@ extern void ephyrCursorEnable(ScreenPtr pScreen);
extern int ephyrBufferHeight(KdScreenInfo * screen);
+extern int ephyrBufferHeight(KdScreenInfo *screen);
+
/* ephyr_draw.c */
Bool
diff --git a/xorg-server/hw/kdrive/ephyr/ephyrinit.c b/xorg-server/hw/kdrive/ephyr/ephyrinit.c
index cf8bc9073..218e3b00c 100644
--- a/xorg-server/hw/kdrive/ephyr/ephyrinit.c
+++ b/xorg-server/hw/kdrive/ephyr/ephyrinit.c
@@ -55,6 +55,7 @@ InitCard(char *name)
KdCardInfoAdd(&ephyrFuncs, 0);
}
+#ifndef _MSC_VER
static const ExtensionModule ephyrExtensions[] = {
#ifdef GLXEXT
{ GlxExtensionInit, "GLX", &noGlxExtension },
@@ -152,6 +153,7 @@ ddxUseMsg(void)
exit(1);
}
+#endif
void
processScreenArg(const char *screen_size, char *parent_id)
@@ -182,6 +184,7 @@ processScreenArg(const char *screen_size, char *parent_id)
}
}
+#ifndef _MSC_VER
int
ddxProcessArgument(int argc, char **argv, int i)
{
@@ -331,6 +334,15 @@ OsVendorInit(void)
KdOsInit(&EphyrOsFuncs);
}
+#ifdef DDXOSFATALERROR
+void
+OsVendorFatalError(void)
+{
+}
+#endif
+
+#endif
+
/* 'Fake' cursor stuff, could be improved */
static Bool
diff --git a/xorg-server/hw/kdrive/ephyr/ephyrlog.h b/xorg-server/hw/kdrive/ephyr/ephyrlog.h
index 0da0a2518..6671c4779 100644
--- a/xorg-server/hw/kdrive/ephyr/ephyrlog.h
+++ b/xorg-server/hw/kdrive/ephyr/ephyrlog.h
@@ -43,14 +43,14 @@
#ifndef EPHYR_LOG
#define EPHYR_LOG(...) \
LogMessageVerb(X_NOTICE, INFO_LOG_LEVEL, "in %s:%d:%s: ",\
- __FILE__, __LINE__, __func__) ; \
+ __FILE__, __LINE__, __FUNCTION__) ; \
LogMessageVerb(X_NOTICE, INFO_LOG_LEVEL, __VA_ARGS__)
#endif /*nomadik_log */
#ifndef EPHYR_LOG_ERROR
#define EPHYR_LOG_ERROR(...) \
LogMessageVerb(X_NOTICE, ERROR_LOG_LEVEL, "Error:in %s:%d:%s: ",\
- __FILE__, __LINE__, __func__) ; \
+ __FILE__, __LINE__, __FUNCTION__) ; \
LogMessageVerb(X_NOTICE, ERROR_LOG_LEVEL, __VA_ARGS__)
#endif /*EPHYR_LOG_ERROR */
diff --git a/xorg-server/hw/kdrive/ephyr/hostx.c b/xorg-server/hw/kdrive/ephyr/hostx.c
index 3e01a4770..873033373 100644
--- a/xorg-server/hw/kdrive/ephyr/hostx.c
+++ b/xorg-server/hw/kdrive/ephyr/hostx.c
@@ -37,9 +37,11 @@
#include <errno.h>
#include <time.h>
+#ifndef _MSC_VER
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/time.h>
+#endif
#include <X11/keysym.h>
#include <xcb/xcb.h>
@@ -131,7 +133,11 @@ hostx_add_screen(KdScreenInfo *screen, unsigned long win_id, int screen_num)
void
hostx_set_display_name(char *name)
{
+#ifdef _MSC_VER
+ __asm int 3;
+#else
HostX.server_dpy_name = strdup(name);
+#endif
}
void
@@ -460,6 +466,9 @@ hostx_init(void)
xcb_free_pixmap(HostX.conn, cursor_pxm);
}
+#ifdef _MSC_VER
+ __asm int 3;
+#else
/* Try to get share memory ximages for a little bit more speed */
shm_rep = xcb_get_extension_data(HostX.conn, &xcb_shm_id);
if (!shm_rep || !shm_rep->present || getenv("XEPHYR_NO_SHM")) {
@@ -492,6 +501,7 @@ hostx_init(void)
shmdt(shminfo.shmaddr);
shmctl(shminfo.shmid, IPC_RMID, 0);
}
+#endif
xcb_flush(HostX.conn);
@@ -618,7 +628,7 @@ hostx_screen_init(KdScreenInfo *screen,
Bool shm_success = FALSE;
if (!scrpriv) {
- fprintf(stderr, "%s: Error in accessing hostx data\n", __func__);
+ fprintf(stderr, "%s: Error in accessing hostx data\n", __FUNCTION__);
exit(1);
}
@@ -631,10 +641,14 @@ hostx_screen_init(KdScreenInfo *screen,
*/
if (HostX.have_shm) {
+#ifdef _MSC_VER
+ __asm int 3;
+#else
xcb_shm_detach(HostX.conn, scrpriv->shminfo.shmseg);
xcb_image_destroy(scrpriv->ximg);
shmdt(scrpriv->shminfo.shmaddr);
shmctl(scrpriv->shminfo.shmid, IPC_RMID, 0);
+#endif
}
else {
free(scrpriv->ximg->data);
@@ -645,6 +659,9 @@ hostx_screen_init(KdScreenInfo *screen,
}
if (HostX.have_shm) {
+#ifdef _MSC_VER
+__asm int 3;
+#else
scrpriv->ximg = xcb_image_create_native(HostX.conn,
width,
buffer_height,
@@ -677,6 +694,7 @@ hostx_screen_init(KdScreenInfo *screen,
FALSE);
shm_success = TRUE;
}
+#endif
}
if (!shm_success) {
@@ -806,10 +824,14 @@ hostx_paint_rect(KdScreenInfo *screen,
}
if (HostX.have_shm) {
+#ifdef _MSC_VER
+ __asm int 3;
+#else
xcb_image_shm_put(HostX.conn, scrpriv->win,
HostX.gc, scrpriv->ximg,
scrpriv->shminfo,
sx, sy, dx, dy, width, height, FALSE);
+#endif
}
else {
xcb_image_put(HostX.conn, scrpriv->win, HostX.gc, scrpriv->ximg,
@@ -823,6 +845,9 @@ static void
hostx_paint_debug_rect(KdScreenInfo *screen,
int x, int y, int width, int height)
{
+#ifdef _MSC_VER
+ __asm int 3;
+#else
EphyrScrPriv *scrpriv = screen->driver;
struct timespec tspec;
xcb_rectangle_t rect = { .x = x, .y = y, .width = width, .height = height };
@@ -844,6 +869,7 @@ hostx_paint_debug_rect(KdScreenInfo *screen,
/* nanosleep seems to work better than usleep for me... */
nanosleep(&tspec, NULL);
+#endif
}
void
diff --git a/xorg-server/hw/kdrive/ephyr/hostx.h b/xorg-server/hw/kdrive/ephyr/hostx.h
index e83323a0c..f2350efba 100644
--- a/xorg-server/hw/kdrive/ephyr/hostx.h
+++ b/xorg-server/hw/kdrive/ephyr/hostx.h
@@ -37,8 +37,12 @@
#define EPHYR_DBG(x, a...) \
fprintf(stderr, __FILE__ ":%d,%s() " x "\n", __LINE__, __func__, ##a)
#else
+#ifdef _MSC_VER
+#define EPHYR_DBG()
+#else
#define EPHYR_DBG(x, a...) do {} while (0)
#endif
+#endif
typedef struct EphyrHostXVars EphyrHostXVars;
diff --git a/xorg-server/hw/kdrive/ephyr/makefile b/xorg-server/hw/kdrive/ephyr/makefile
new file mode 100644
index 000000000..eba9a93e1
--- /dev/null
+++ b/xorg-server/hw/kdrive/ephyr/makefile
@@ -0,0 +1,6 @@
+LIBRARY = libxephyr
+
+CSRCS=ephyrinit.c ephyr.c hostx.c
+
+INCLUDES += ..\src ..\..\..\exa
+
diff --git a/xorg-server/hw/kdrive/src/kdrive.c b/xorg-server/hw/kdrive/src/kdrive.c
index 382968420..d56ba8fc5 100644
--- a/xorg-server/hw/kdrive/src/kdrive.c
+++ b/xorg-server/hw/kdrive/src/kdrive.c
@@ -221,6 +221,7 @@ KdProcessSwitch(void)
KdEnableScreens();
}
+#ifndef _MSC_VER
void
AbortDDX(enum ExitCode error)
{
@@ -242,6 +243,7 @@ ddxGiveUp(enum ExitCode error)
{
AbortDDX(error);
}
+#endif
Bool kdDumbDriver;
Bool kdSoftCursor;
@@ -1105,6 +1107,7 @@ KdInitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
OsRegisterSigWrapper(KdSignalWrapper);
}
+#ifndef _MSC_VER
void
OsVendorFatalError(const char *f, va_list args)
{
@@ -1121,3 +1124,4 @@ DPMSSupported(void)
{
return FALSE;
}
+#endif
diff --git a/xorg-server/hw/kdrive/src/kdrive.h b/xorg-server/hw/kdrive/src/kdrive.h
index 296d611ed..f52072003 100644
--- a/xorg-server/hw/kdrive/src/kdrive.h
+++ b/xorg-server/hw/kdrive/src/kdrive.h
@@ -52,7 +52,7 @@
#define KD_DPMS_POWERDOWN 3
#define KD_DPMS_MAX KD_DPMS_POWERDOWN
-#define Status int
+typedef int Status;
typedef struct _KdCardInfo {
struct _KdCardFuncs *cfuncs;
diff --git a/xorg-server/hw/kdrive/src/kinput.c b/xorg-server/hw/kdrive/src/kinput.c
index a9a9fa583..d5171a7f7 100644
--- a/xorg-server/hw/kdrive/src/kinput.c
+++ b/xorg-server/hw/kdrive/src/kinput.c
@@ -102,6 +102,14 @@ KdSigio(int sig)
(*kdInputFds[i].read) (kdInputFds[i].fd, kdInputFds[i].closure);
}
+#ifdef _MSC_VER
+ __asm int 3;
+#else
+#endif
+#ifdef _MSC_VER
+ __asm int 3;
+#else
+#endif
#ifdef DEBUG_SIGIO
void
@@ -145,16 +153,23 @@ KdResetInputMachine(void)
static void
KdNonBlockFd(int fd)
{
+#ifdef _MSC_VER
+ __asm int 3;
+#else
int flags;
flags = fcntl(fd, F_GETFL);
flags |= FASYNC | NOBLOCK;
fcntl(fd, F_SETFL, flags);
+#endif
}
static void
KdAddFd(int fd)
{
+#ifdef _MSC_VER
+ __asm int 3;
+#else
struct sigaction act;
sigset_t set;
@@ -171,11 +186,15 @@ KdAddFd(int fd)
sigaction(SIGIO, &act, 0);
sigemptyset(&set);
sigprocmask(SIG_SETMASK, &set, 0);
+#endif
}
static void
KdRemoveFd(int fd)
{
+#ifdef _MSC_VER
+ __asm int 3;
+#else
struct sigaction act;
int flags;
@@ -190,6 +209,7 @@ KdRemoveFd(int fd)
sigemptyset(&act.sa_mask);
sigaction(SIGIO, &act, 0);
}
+#endif
}
Bool
@@ -526,11 +546,13 @@ KdPointerProc(DeviceIntPtr pDevice, int onoff)
return BadImplementation;
}
+#ifndef _MSC_VER
Bool
LegalModifier(unsigned int key, DeviceIntPtr pDev)
{
return TRUE;
}
+#endif
static void
KdBell(int volume, DeviceIntPtr pDev, pointer arg, int something)
@@ -549,6 +571,7 @@ KdBell(int volume, DeviceIntPtr pDev, pointer arg, int something)
KdRingBell(ki, volume, ctrl->bell_pitch, ctrl->bell_duration);
}
+#ifndef _MSC_VER
void
DDXRingBell(int volume, int pitch, int duration)
{
@@ -564,7 +587,7 @@ DDXRingBell(int volume, int pitch, int duration)
}
}
}
-
+#endif
void
KdRingBell(KdKeyboardInfo * ki, int volume, int pitch, int duration)
{
@@ -2096,6 +2119,7 @@ miPointerScreenFuncRec kdPointerScreenFuncs = {
KdWarpCursor
};
+#ifndef _MSC_VER
void
ProcessInputEvents(void)
{
@@ -2104,6 +2128,7 @@ ProcessInputEvents(void)
KdProcessSwitch();
KdCheckLock();
}
+#endif
/* At the moment, absolute/relative is up to the client. */
int
diff --git a/xorg-server/hw/kdrive/src/makefile b/xorg-server/hw/kdrive/src/makefile
new file mode 100644
index 000000000..e3a826faa
--- /dev/null
+++ b/xorg-server/hw/kdrive/src/makefile
@@ -0,0 +1,14 @@
+LIBRARY = libkdrive
+
+CSRCS = \
+ kcmap.c \
+ kcurscol.c \
+ kdrive.c \
+ kinfo.c \
+ kinput.c \
+ kmap.c \
+ kmode.c \
+ kshadow.c
+
+
+
diff --git a/xorg-server/hw/xfree86/common/compiler.h b/xorg-server/hw/xfree86/common/compiler.h
index 3a57186be..afde9f9d3 100644
--- a/xorg-server/hw/xfree86/common/compiler.h
+++ b/xorg-server/hw/xfree86/common/compiler.h
@@ -86,7 +86,7 @@
#endif
#endif /* __inline__ */
#ifndef __inline
-#if defined(__GNUC__)
+#if defined(__GNUC__) || defined(_MSC_VER)
/* gcc has __inline */
#elif defined(__HIGHC__)
#define __inline _Inline
@@ -1499,10 +1499,10 @@ inl(unsigned short port)
#define asm __asm
#endif
#endif
-#if !defined(__SUNPRO_C)
+#if !defined(__SUNPRO_C) && !defined(_MSC_VER)
#include <sys/inline.h>
#endif
-#if !defined(__HIGHC__) && !defined(__SUNPRO_C) || \
+#if (!defined(__HIGHC__) && !defined(__SUNPRO_C) && !defined(_MSC_VER)) || \
defined(__USLC__)
#pragma asm partial_optimization outl
#pragma asm partial_optimization outw
diff --git a/xorg-server/hw/xwin/InitInput.c b/xorg-server/hw/xwin/InitInput.c
index 36346b7e1..e7f402f80 100644
--- a/xorg-server/hw/xwin/InitInput.c
+++ b/xorg-server/hw/xwin/InitInput.c
@@ -32,7 +32,7 @@
#include "win.h"
#include "dixstruct.h"
#include "inputstr.h"
-
+#include <unistd.h>
/*
* Local function prototypes
*/
@@ -72,15 +72,7 @@ LegalModifier(unsigned int uiKey, DeviceIntPtr pDevice)
void
ProcessInputEvents(void)
{
-#if 0
- ErrorF("ProcessInputEvents\n");
-#endif
-
mieqProcessInputEvents();
-
-#if 0
- ErrorF("ProcessInputEvents - returning\n");
-#endif
}
void
@@ -94,9 +86,8 @@ DDXRingBell(int volume, int pitch, int duration)
void
InitInput(int argc, char *argv[])
{
-#if CYGDEBUG
+ int rc;
winDebug("InitInput\n");
-#endif
#ifdef XWIN_CLIPBOARD
/*
@@ -108,15 +99,20 @@ InitInput(int argc, char *argv[])
}
#endif
- g_pwinPointer = AddInputDevice(serverClient, winMouseProc, TRUE);
- g_pwinKeyboard = AddInputDevice(serverClient, winKeybdProc, TRUE);
- g_pwinPointer->name = strdup("Windows mouse");
- g_pwinKeyboard->name = strdup("Windows keyboard");
+ rc = AllocDevicePair(serverClient, "Windows",
+ &g_pwinPointer,
+ &g_pwinKeyboard,
+ winMouseProc,
+ winKeybdProc,
+ FALSE);
+
+ if (rc != Success)
+ FatalError("Failed to init vcxsrv default devices.\n");
mieqInit();
- /* Initialize the mode key states */
- winInitializeModeKeyStates();
+ /* Do not nitialize the mode key states here yet since the keyboard device is not started yet
+ winInitializeModeKeyStates (); */
#ifdef HAS_DEVWINDOWS
/* Only open the windows message queue device once */
@@ -133,13 +129,13 @@ InitInput(int argc, char *argv[])
}
#endif
-#if CYGDEBUG
winDebug("InitInput - returning\n");
-#endif
}
void
CloseInput(void)
{
mieqFini();
+ g_pwinPointer=NULL;
+ g_pwinKeyboard=NULL;
}
diff --git a/xorg-server/hw/xwin/InitOutput.c b/xorg-server/hw/xwin/InitOutput.c
index b05ca2736..defbbadd8 100644
--- a/xorg-server/hw/xwin/InitOutput.c
+++ b/xorg-server/hw/xwin/InitOutput.c
@@ -35,12 +35,10 @@ from The Open Group.
#include "winmsg.h"
#include "winconfig.h"
#include "winprefs.h"
-#ifdef XWIN_CLIPBOARD
-#include "X11/Xlocale.h"
-#endif
#ifdef DPMSExtension
#include "dpmsproc.h"
#endif
+#include <locale.h>
#ifdef __CYGWIN__
#include <mntent.h>
#endif
@@ -48,15 +46,12 @@ from The Open Group.
#include "xkbsrv.h"
#endif
#ifdef RELOCATE_PROJECTROOT
-#pragma push_macro("Status")
#undef Status
-#define Status wStatus
#include <shlobj.h>
-#pragma pop_macro("Status")
-typedef WINAPI HRESULT(*SHGETFOLDERPATHPROC) (HWND hwndOwner,
- int nFolder,
- HANDLE hToken,
- DWORD dwFlags, LPTSTR pszPath);
+typedef HRESULT (__stdcall * SHGETFOLDERPATHPROC)(HWND hwndOwner,
+ int nFolder,
+ HANDLE hToken,
+ DWORD dwFlags, LPTSTR pszPath);
#endif
#include "glx_extinit.h"
@@ -130,6 +125,7 @@ winClipboardShutdown(void)
if (g_fClipboard && g_fClipboardLaunched && g_fClipboardStarted) {
/* Synchronously destroy the clipboard window */
if (g_hwndClipboard != NULL) {
+ g_fClipboardStarted=FALSE; /* This is to avoid dead-locls caused by the clipboard thread still doing some stuff */
SendMessage(g_hwndClipboard, WM_DESTROY, 0, 0);
/* NOTE: g_hwndClipboard is set to NULL in winclipboardthread.c */
}
@@ -139,9 +135,6 @@ winClipboardShutdown(void)
/* Wait for the clipboard thread to exit */
pthread_join(g_ptClipboardProc, NULL);
- g_fClipboardLaunched = FALSE;
- g_fClipboardStarted = FALSE;
-
winDebug("winClipboardShutdown - Clipboard thread has exited.\n");
}
}
@@ -215,9 +208,7 @@ ddxGiveUp(enum ExitCode error)
{
int i;
-#if CYGDEBUG
winDebug("ddxGiveUp\n");
-#endif
/* Perform per-screen deinitialization */
for (i = 0; i < g_iNumScreens; ++i) {
@@ -268,9 +259,11 @@ ddxGiveUp(enum ExitCode error)
PostQuitMessage(0);
{
+ int iReturn;
+
winDebug("ddxGiveUp - Releasing termination mutex\n");
- int iReturn = pthread_mutex_unlock(&g_pmTerminating);
+ iReturn = pthread_mutex_unlock(&g_pmTerminating);
if (iReturn != 0) {
ErrorF("winMsgWindowProc - pthread_mutex_unlock () failed: %d\n",
@@ -285,9 +278,7 @@ ddxGiveUp(enum ExitCode error)
void
AbortDDX(enum ExitCode error)
{
-#if CYGDEBUG
winDebug("AbortDDX\n");
-#endif
ddxGiveUp(error);
}
@@ -370,8 +361,10 @@ winCheckMount(void)
return;
}
+#ifdef WINDBG
if (!binary)
- winMsg(X_WARNING, "/tmp mounted in textmode\n");
+ winDebug("/tmp mounted in textmode\n");
+#endif
}
#else
static void
@@ -423,8 +416,19 @@ winFixupPaths(void)
#ifdef READ_FONTDIRS
{
/* Open fontpath configuration file */
+#if defined WIN32 && defined __MINGW32__
+qsdf qsdf qsdf qsdf
+ static Bool once = False;
+ char buffer[MAX_PATH];
+ snprintf(buffer, sizeof(buffer), "%s\\font-dirs", basedir);
+ buffer[sizeof(buffer)-1] = 0;
+ FILE *fontdirs = fopen(buffer, "rt");
+ if (once) fontdirs = NULL;
+ else once = True;
+#else
+qsdfqsdf qsdf qsdf
FILE *fontdirs = fopen(ETCX11DIR "/font-dirs", "rt");
-
+#endif
if (fontdirs != NULL) {
char buffer[256];
int needs_sep = TRUE;
@@ -588,7 +592,7 @@ winFixupPaths(void)
}
#endif /* RELOCATE_PROJECTROOT */
if (changed_fontpath)
- winMsg(font_from, "FontPath set to \"%s\"\n", defaultFontPath);
+ winDebug ("FontPath set to \"%s\"\n", defaultFontPath);
#ifdef RELOCATE_PROJECTROOT
if (getenv("XKEYSYMDB") == NULL) {
@@ -612,6 +616,13 @@ winFixupPaths(void)
buffer[sizeof(buffer) - 1] = 0;
putenv(buffer);
}
+ if (getenv("XHOSTPREFIX") == NULL) {
+ char buffer[MAX_PATH];
+ snprintf(buffer, sizeof(buffer), "XHOSTPREFIX=%s\\X",
+ basedir);
+ buffer[sizeof(buffer)-1] = 0;
+ putenv(buffer);
+ }
if (getenv("HOME") == NULL) {
char buffer[MAX_PATH + 5];
@@ -624,7 +635,7 @@ winFixupPaths(void)
putenv(buffer);
}
else {
- winMsg(X_ERROR, "Can not determine HOME directory\n");
+ ErrorF ("Can not determine HOME directory\n");
}
}
if (!g_fLogFileChanged) {
@@ -633,16 +644,17 @@ winFixupPaths(void)
if (size && size < sizeof(buffer)) {
snprintf(buffer + size, sizeof(buffer) - size,
- "XWin.%s.log", display);
+ "VCXSrv.%s.log", display);
buffer[sizeof(buffer) - 1] = 0;
g_pszLogFile = buffer;
- winMsg(X_DEFAULT, "Logfile set to \"%s\"\n", g_pszLogFile);
+ GetLongPathName(buffer, buffer, MAX_PATH);
+ winDebug ("Logfile set to \"%s\"\n", g_pszLogFile);
}
}
{
static char xkbbasedir[MAX_PATH];
- snprintf(xkbbasedir, sizeof(xkbbasedir), "%s\\xkb", basedir);
+ snprintf(xkbbasedir, sizeof(xkbbasedir), "%s\\xkbdata", basedir);
if (sizeof(xkbbasedir) > 0)
xkbbasedir[sizeof(xkbbasedir) - 1] = 0;
XkbBaseDirectory = xkbbasedir;
@@ -652,11 +664,8 @@ winFixupPaths(void)
}
void
-OsVendorInit(void)
+OsVendorPreInit(int argc, char *argv[])
{
- /* Re-initialize global variables on server reset */
- winInitializeGlobals();
-
winFixupPaths();
#ifdef DDXOSVERRORF
@@ -677,6 +686,17 @@ OsVendorInit(void)
LogSetParameter(XLOG_VERBOSITY, g_iLogVerbose);
LogSetParameter(XLOG_FILE_VERBOSITY, g_iLogVerbose);
+ /* Log the command line */
+ winLogCommandLine(argc, argv);
+
+}
+
+void
+OsVendorInit(void)
+{
+ /* Re-initialize global variables on server reset */
+ winInitializeGlobals();
+
/* Log the version information */
if (serverGeneration == 1)
winLogVersionInfo();
@@ -714,8 +734,7 @@ OsVendorInit(void)
g_ScreenInfo[j].iE3BTimeout = WIN_DEFAULT_E3B_TIME;
if (reportOnce) {
reportOnce = FALSE;
- winMsg(X_PROBED,
- "Windows reports only %d mouse buttons, defaulting to -emulate3buttons\n",
+ winDebug("Windows reports only %d mouse buttons, defaulting to -emulate3buttons\n",
mouseButtons);
}
}
@@ -738,6 +757,10 @@ winUseMsg(void)
#ifdef XWIN_CLIPBOARD
ErrorF("-[no]clipboard\n"
"\tEnable [disable] the clipboard integration. Default is enabled.\n");
+ ErrorF ("-[no]clipboardprimary\n"
+ "\t[Do not] map the PRIMARY selection to the windows clipboard.\n"
+ "\tThe CLIPBOARD selection is always mapped if -clipboard is enabled.\n"
+ "\tDefault is mapped.\n");
#endif
ErrorF("-clipupdates num_boxes\n"
@@ -785,7 +808,7 @@ winUseMsg(void)
ErrorF("-ignoreinput\n" "\tIgnore keyboard and mouse input.\n");
-#ifdef XWIN_MULTIWINDOWEXTWM
+#ifdef XWIN_MULTIWINDOWINTWM
ErrorF("-internalwm\n" "\tRun the internal window manager.\n");
#endif
@@ -874,10 +897,11 @@ winUseMsg(void)
ErrorF("-[no]unixkill\n" "\tCtrl+Alt+Backspace exits the X Server.\n");
-#ifdef XWIN_GLX_WINDOWS
ErrorF("-[no]wgl\n"
"\tEnable the GLX extension to use the native Windows WGL interface for hardware-accelerated OpenGL\n");
-#endif
+
+ ErrorF("-swrastwgl\n"
+ "\tEnable the GLX extension to use the native Windows WGL interface based on the swrast interface for accelerated OpenGL\n");
ErrorF("-[no]winkill\n" "\tAlt+F4 exits the X Server.\n");
@@ -938,12 +962,7 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char *argv[])
if (serverGeneration == 1)
XwinExtensionInit();
- /* Log the command line */
- winLogCommandLine(argc, argv);
-
-#if CYGDEBUG
winDebug("InitOutput\n");
-#endif
/* Validate command-line arguments */
if (serverGeneration == 1 && !winValidateArgs()) {
@@ -962,11 +981,8 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char *argv[])
#ifdef XWIN_XF86CONFIG
/* Try to read the xorg.conf-style configuration file */
if (!winReadConfigfile())
- winErrorFVerb(1, "InitOutput - Error reading config file\n");
+ ErrorF ("InitOutput - Error reading config file\n");
#else
- winMsg(X_INFO, "xorg.conf is not supported\n");
- winMsg(X_INFO, "See http://x.cygwin.com/docs/faq/cygwin-x-faq.html "
- "for more information\n");
winConfigFiles();
#endif
@@ -1022,13 +1038,22 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char *argv[])
* setlocale applies to all threads in the current process.
* Apply locale specified in LANG environment variable.
*/
- setlocale(LC_ALL, "");
+ if (!setlocale (LC_ALL, ""))
+ {
+ ErrorF ("setlocale failed.\n");
+ }
+
+ /* See if X supports the current locale */
+ if (XSupportsLocale () == FALSE)
+ {
+ ErrorF ("Warning: Locale not supported by X, falling back to 'C' locale.\n");
+ setlocale(LC_ALL, "C");
+ }
+
}
#endif
-#if CYGDEBUG || YES
winDebug("InitOutput - Returning.\n");
-#endif
}
/*
@@ -1050,7 +1075,7 @@ winCheckDisplayNumber(void)
/* Check display range */
nDisp = atoi(display);
- if (nDisp < 0 || nDisp > 65535) {
+ if (nDisp < 0 || nDisp > 59535) {
ErrorF("winCheckDisplayNumber - Bad display number: %d\n", nDisp);
return FALSE;
}
@@ -1091,7 +1116,7 @@ winCheckDisplayNumber(void)
}
if (GetLastError() == ERROR_ALREADY_EXISTS) {
ErrorF("winCheckDisplayNumber - "
- PROJECT_NAME " is already running on display %d\n", nDisp);
+ "VCXsrv, Xming or Cygwin/X is already running on display %d\n", nDisp);
return FALSE;
}
diff --git a/xorg-server/hw/xwin/Makefile.am b/xorg-server/hw/xwin/Makefile.am
index c7006959c..aa73e618d 100644
--- a/xorg-server/hw/xwin/Makefile.am
+++ b/xorg-server/hw/xwin/Makefile.am
@@ -126,6 +126,7 @@ SRCS = InitInput.c \
winprefs.h \
winresource.h \
winwindow.h \
+ windisplay.c \
XWin.rc \
$(top_srcdir)/Xext/dpmsstubs.c \
$(top_srcdir)/Xi/stubs.c \
diff --git a/xorg-server/hw/xwin/XWin.rc b/xorg-server/hw/xwin/XWin.rc
index a142f3070..38d142fd1 100644
--- a/xorg-server/hw/xwin/XWin.rc
+++ b/xorg-server/hw/xwin/XWin.rc
@@ -32,32 +32,29 @@
#include <windows.h>
#include "winresource.h"
#include "xwin-config.h"
-#include "version-config.h"
/*
* Dialogs
*/
/* About */
-ABOUT_BOX DIALOGEX 32, 32, 260, 105
+ABOUT_BOX DIALOGEX 32, 32, 260, 95
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE | WS_TABSTOP | DS_CENTERMOUSE
-CAPTION "About " XVENDORNAMESHORT
+CAPTION "About "XVENDORNAMESHORT
FONT 8, "MS Shell Dlg 2"
BEGIN
- CONTROL IDI_XWIN, IDC_STATIC, "Static", SS_ICON, 8, 8, 32, 32
- LTEXT XVENDORNAMESHORT " X Server ", IDC_STATIC, 36, 8, 220, 8
- LTEXT VENDOR_MAN_VERSION, IDC_STATIC, 36, 18, 220, 8
- LTEXT BUILDERSTRING, IDC_STATIC, 36, 28, 220, 8
- LTEXT "This software is licensed under the terms of the MIT/X11 License.", IDC_STATIC, 36, 48, 220, 20
- CONTROL __VENDORDWEBSUPPORT__, ID_ABOUT_WEBSITE, "Button",
- BS_OWNERDRAW | WS_TABSTOP, 36, 68, 220, 8
- DEFPUSHBUTTON "&OK", IDOK, 105, 85, 50, 15
+ CONTROL IDI_XWIN, IDC_STATIC, "Static", SS_ICON, 8, 8, 32, 32
+ LTEXT "VcXsrv X Server ", IDC_STATIC, 36, 8, 220, 8
+ LTEXT "http://vcxsrv.sourceforge.net", IDC_STATIC, 36, 18, 220, 8
+ LTEXT "marha@users.sourceforge.net", IDC_STATIC, 36, 28, 220, 8
+ LTEXT "Version 1.14.3 (19 Sep 2013)", IDC_STATIC, 36, 38, 220, 8
+ DEFPUSHBUTTON "OK", IDOK, 105, 75, 50, 15
END
/* Depth change */
-DEPTH_CHANGE_BOX DIALOGEX 32, 32, 180, 100
+DEPTH_CHANGE_BOX DIALOGEX 32, 32, 180, 100
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE | DS_CENTERMOUSE
FONT 8, "MS Shell Dlg 2"
CAPTION XVENDORNAMESHORT
@@ -65,16 +62,16 @@ BEGIN
DEFPUSHBUTTON "Dismiss", IDOK, 66, 80, 50, 14
CTEXT XVENDORNAMESHORT, IDC_STATIC, 40, 12, 100, 8
CTEXT "Disruptive screen configuration change.", IDC_STATIC, 7, 40, 166, 8
- CTEXT "Restore previous resolution to use " XVENDORNAMESHORT ".", IDC_STATIC, 7, 52, 166, 8
+ CTEXT "Restore previous resolution to use "XVENDORNAMESHORT".", IDC_STATIC, 7, 52, 166, 8
END
/* Exit */
-EXIT_DIALOG DIALOGEX 32, 32, 180, 78
+EXIT_DIALOG DIALOGEX 32, 32, 180, 78
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE | WS_TABSTOP | DS_CENTERMOUSE
FONT 8, "MS Shell Dlg 2"
-CAPTION "Exit " XVENDORNAMESHORT "?"
+CAPTION "Exit "XVENDORNAMESHORT"?"
BEGIN
PUSHBUTTON "E&xit", IDOK, 55, 56, 30, 14
DEFPUSHBUTTON "&Cancel", IDCANCEL, 95, 56, 30, 14
@@ -83,6 +80,17 @@ BEGIN
CTEXT "Proceed with shutdown of this display/server?", IDC_STATIC, 7, 36, 166, 8
END
+/* Xdmcp host selection dialog */
+XDMCP_HOSTS DIALOGEX 32, 32, 260, 156
+STYLE DS_SETFONT | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION
+EXSTYLE WS_EX_NOPARENTNOTIFY
+CAPTION "Select host to connect to"
+FONT 8, "MS Shell Dlg 2", 0, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "Connect",IDOK,61,132,50,15
+ LISTBOX IDC_HOSTLIST,7,7,245,113,LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_NOTIFY | WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "Cancel",IDCANCEL,147,134,50,14
+END
/*
* Menus
@@ -105,4 +113,4 @@ END
*/
IDI_XWIN ICON "X.ico"
-CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "XWin.exe.manifest"
+/* CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "XWin.exe.manifest"*/
diff --git a/xorg-server/hw/xwin/ddraw.h b/xorg-server/hw/xwin/ddraw.h
deleted file mode 100644
index 1871d9551..000000000
--- a/xorg-server/hw/xwin/ddraw.h
+++ /dev/null
@@ -1,2322 +0,0 @@
-#ifdef __MINGW64_VERSION_MAJOR
-#include_next <ddraw.h>
-#define __XWIN_DDRAW_H
-#endif
-#ifndef __XWIN_DDRAW_H
-#define __XWIN_DDRAW_H
-
-#include <winnt.h>
-#include <wingdi.h>
-#include <objbase.h>
-
-#if defined(NONAMELESSUNION) && !defined(DUMMYUNIONNAME1)
-#define DUMMYUNIONNAME1 u1
-#endif
-
-#define ICOM_CALL_( xfn, p, args) (p)->lpVtbl->xfn args
-
-#ifdef UNICODE
-#define WINELIB_NAME_AW(func) func##W
-#else
-#define WINELIB_NAME_AW(func) func##A
-#endif /* UNICODE */
-#define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type;
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* defined(__cplusplus) */
-
-#ifndef DIRECTDRAW_VERSION
-#define DIRECTDRAW_VERSION 0x0700
-#endif /* DIRECTDRAW_VERSION */
-
-/*****************************************************************************
- * Predeclare the interfaces
- */
- DEFINE_GUID(CLSID_DirectDraw, 0xD7B70EE0, 0x4340, 0x11CF, 0xB0, 0x63, 0x00,
- 0x20, 0xAF, 0xC2, 0xCD, 0x35);
- DEFINE_GUID(CLSID_DirectDraw7, 0x3C305196, 0x50DB, 0x11D3, 0x9C, 0xFE, 0x00,
- 0xC0, 0x4F, 0xD9, 0x30, 0xC5);
- DEFINE_GUID(CLSID_DirectDrawClipper, 0x593817A0, 0x7DB3, 0x11CF, 0xA2, 0xDE,
- 0x00, 0xAA, 0x00, 0xb9, 0x33, 0x56);
- DEFINE_GUID(IID_IDirectDraw, 0x6C14DB80, 0xA733, 0x11CE, 0xA5, 0x21, 0x00,
- 0x20, 0xAF, 0x0B, 0xE5, 0x60);
- DEFINE_GUID(IID_IDirectDraw2, 0xB3A6F3E0, 0x2B43, 0x11CF, 0xA2, 0xDE, 0x00,
- 0xAA, 0x00, 0xB9, 0x33, 0x56);
- DEFINE_GUID(IID_IDirectDraw4, 0x9c59509a, 0x39bd, 0x11d1, 0x8c, 0x4a, 0x00,
- 0xc0, 0x4f, 0xd9, 0x30, 0xc5);
- DEFINE_GUID(IID_IDirectDraw7, 0x15e65ec0, 0x3b9c, 0x11d2, 0xb9, 0x2f, 0x00,
- 0x60, 0x97, 0x97, 0xea, 0x5b);
- DEFINE_GUID(IID_IDirectDrawSurface, 0x6C14DB81, 0xA733, 0x11CE, 0xA5, 0x21,
- 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60);
- DEFINE_GUID(IID_IDirectDrawSurface2, 0x57805885, 0x6eec, 0x11cf, 0x94, 0x41,
- 0xa8, 0x23, 0x03, 0xc1, 0x0e, 0x27);
- DEFINE_GUID(IID_IDirectDrawSurface3, 0xDA044E00, 0x69B2, 0x11D0, 0xA1, 0xD5,
- 0x00, 0xAA, 0x00, 0xB8, 0xDF, 0xBB);
- DEFINE_GUID(IID_IDirectDrawSurface4, 0x0B2B8630, 0xAD35, 0x11D0, 0x8E, 0xA6,
- 0x00, 0x60, 0x97, 0x97, 0xEA, 0x5B);
- DEFINE_GUID(IID_IDirectDrawSurface7, 0x06675a80, 0x3b9b, 0x11d2, 0xb9, 0x2f,
- 0x00, 0x60, 0x97, 0x97, 0xea, 0x5b);
- DEFINE_GUID(IID_IDirectDrawPalette, 0x6C14DB84, 0xA733, 0x11CE, 0xA5, 0x21,
- 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60);
- DEFINE_GUID(IID_IDirectDrawClipper, 0x6C14DB85, 0xA733, 0x11CE, 0xA5, 0x21,
- 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60);
- DEFINE_GUID(IID_IDirectDrawColorControl, 0x4B9F0EE0, 0x0D7E, 0x11D0, 0x9B,
- 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
- DEFINE_GUID(IID_IDirectDrawGammaControl, 0x69C11C3E, 0xB46B, 0x11D1, 0xAD,
- 0x7A, 0x00, 0xC0, 0x4F, 0xC2, 0x9B, 0x4E);
-
- typedef struct IDirectDraw *LPDIRECTDRAW;
- typedef struct IDirectDraw2 *LPDIRECTDRAW2;
- typedef struct IDirectDraw4 *LPDIRECTDRAW4;
- typedef struct IDirectDraw7 *LPDIRECTDRAW7;
- typedef struct IDirectDrawClipper *LPDIRECTDRAWCLIPPER;
- typedef struct IDirectDrawPalette *LPDIRECTDRAWPALETTE;
- typedef struct IDirectDrawSurface *LPDIRECTDRAWSURFACE;
- typedef struct IDirectDrawSurface2 *LPDIRECTDRAWSURFACE2;
- typedef struct IDirectDrawSurface3 *LPDIRECTDRAWSURFACE3;
- typedef struct IDirectDrawSurface4 *LPDIRECTDRAWSURFACE4;
- typedef struct IDirectDrawSurface7 *LPDIRECTDRAWSURFACE7;
- typedef struct IDirectDrawColorControl *LPDIRECTDRAWCOLORCONTROL;
- typedef struct IDirectDrawGammaControl *LPDIRECTDRAWGAMMACONTROL;
-
-#define DDENUMRET_CANCEL 0
-#define DDENUMRET_OK 1
-
-#define DD_OK 0
-
-#define _FACDD 0x876
-#define MAKE_DDHRESULT( code ) MAKE_HRESULT( 1, _FACDD, code )
-
-#define DDERR_ALREADYINITIALIZED MAKE_DDHRESULT( 5 )
-#define DDERR_CANNOTATTACHSURFACE MAKE_DDHRESULT( 10 )
-#define DDERR_CANNOTDETACHSURFACE MAKE_DDHRESULT( 20 )
-#define DDERR_CURRENTLYNOTAVAIL MAKE_DDHRESULT( 40 )
-#define DDERR_EXCEPTION MAKE_DDHRESULT( 55 )
-#define DDERR_GENERIC E_FAIL
-#define DDERR_HEIGHTALIGN MAKE_DDHRESULT( 90 )
-#define DDERR_INCOMPATIBLEPRIMARY MAKE_DDHRESULT( 95 )
-#define DDERR_INVALIDCAPS MAKE_DDHRESULT( 100 )
-#define DDERR_INVALIDCLIPLIST MAKE_DDHRESULT( 110 )
-#define DDERR_INVALIDMODE MAKE_DDHRESULT( 120 )
-#define DDERR_INVALIDOBJECT MAKE_DDHRESULT( 130 )
-#define DDERR_INVALIDPARAMS E_INVALIDARG
-#define DDERR_INVALIDPIXELFORMAT MAKE_DDHRESULT( 145 )
-#define DDERR_INVALIDRECT MAKE_DDHRESULT( 150 )
-#define DDERR_LOCKEDSURFACES MAKE_DDHRESULT( 160 )
-#define DDERR_NO3D MAKE_DDHRESULT( 170 )
-#define DDERR_NOALPHAHW MAKE_DDHRESULT( 180 )
-#define DDERR_NOSTEREOHARDWARE MAKE_DDHRESULT( 181 )
-#define DDERR_NOSURFACELEFT MAKE_DDHRESULT( 182 )
-#define DDERR_NOCLIPLIST MAKE_DDHRESULT( 205 )
-#define DDERR_NOCOLORCONVHW MAKE_DDHRESULT( 210 )
-#define DDERR_NOCOOPERATIVELEVELSET MAKE_DDHRESULT( 212 )
-#define DDERR_NOCOLORKEY MAKE_DDHRESULT( 215 )
-#define DDERR_NOCOLORKEYHW MAKE_DDHRESULT( 220 )
-#define DDERR_NODIRECTDRAWSUPPORT MAKE_DDHRESULT( 222 )
-#define DDERR_NOEXCLUSIVEMODE MAKE_DDHRESULT( 225 )
-#define DDERR_NOFLIPHW MAKE_DDHRESULT( 230 )
-#define DDERR_NOGDI MAKE_DDHRESULT( 240 )
-#define DDERR_NOMIRRORHW MAKE_DDHRESULT( 250 )
-#define DDERR_NOTFOUND MAKE_DDHRESULT( 255 )
-#define DDERR_NOOVERLAYHW MAKE_DDHRESULT( 260 )
-#define DDERR_OVERLAPPINGRECTS MAKE_DDHRESULT( 270 )
-#define DDERR_NORASTEROPHW MAKE_DDHRESULT( 280 )
-#define DDERR_NOROTATIONHW MAKE_DDHRESULT( 290 )
-#define DDERR_NOSTRETCHHW MAKE_DDHRESULT( 310 )
-#define DDERR_NOT4BITCOLOR MAKE_DDHRESULT( 316 )
-#define DDERR_NOT4BITCOLORINDEX MAKE_DDHRESULT( 317 )
-#define DDERR_NOT8BITCOLOR MAKE_DDHRESULT( 320 )
-#define DDERR_NOTEXTUREHW MAKE_DDHRESULT( 330 )
-#define DDERR_NOVSYNCHW MAKE_DDHRESULT( 335 )
-#define DDERR_NOZBUFFERHW MAKE_DDHRESULT( 340 )
-#define DDERR_NOZOVERLAYHW MAKE_DDHRESULT( 350 )
-#define DDERR_OUTOFCAPS MAKE_DDHRESULT( 360 )
-#define DDERR_OUTOFMEMORY E_OUTOFMEMORY
-#define DDERR_OUTOFVIDEOMEMORY MAKE_DDHRESULT( 380 )
-#define DDERR_OVERLAYCANTCLIP MAKE_DDHRESULT( 382 )
-#define DDERR_OVERLAYCOLORKEYONLYONEACTIVE MAKE_DDHRESULT( 384 )
-#define DDERR_PALETTEBUSY MAKE_DDHRESULT( 387 )
-#define DDERR_COLORKEYNOTSET MAKE_DDHRESULT( 400 )
-#define DDERR_SURFACEALREADYATTACHED MAKE_DDHRESULT( 410 )
-#define DDERR_SURFACEALREADYDEPENDENT MAKE_DDHRESULT( 420 )
-#define DDERR_SURFACEBUSY MAKE_DDHRESULT( 430 )
-#define DDERR_CANTLOCKSURFACE MAKE_DDHRESULT( 435 )
-#define DDERR_SURFACEISOBSCURED MAKE_DDHRESULT( 440 )
-#define DDERR_SURFACELOST MAKE_DDHRESULT( 450 )
-#define DDERR_SURFACENOTATTACHED MAKE_DDHRESULT( 460 )
-#define DDERR_TOOBIGHEIGHT MAKE_DDHRESULT( 470 )
-#define DDERR_TOOBIGSIZE MAKE_DDHRESULT( 480 )
-#define DDERR_TOOBIGWIDTH MAKE_DDHRESULT( 490 )
-#define DDERR_UNSUPPORTED E_NOTIMPL
-#define DDERR_UNSUPPORTEDFORMAT MAKE_DDHRESULT( 510 )
-#define DDERR_UNSUPPORTEDMASK MAKE_DDHRESULT( 520 )
-#define DDERR_INVALIDSTREAM MAKE_DDHRESULT( 521 )
-#define DDERR_VERTICALBLANKINPROGRESS MAKE_DDHRESULT( 537 )
-#define DDERR_WASSTILLDRAWING MAKE_DDHRESULT( 540 )
-#define DDERR_DDSCAPSCOMPLEXREQUIRED MAKE_DDHRESULT( 542 )
-#define DDERR_XALIGN MAKE_DDHRESULT( 560 )
-#define DDERR_INVALIDDIRECTDRAWGUID MAKE_DDHRESULT( 561 )
-#define DDERR_DIRECTDRAWALREADYCREATED MAKE_DDHRESULT( 562 )
-#define DDERR_NODIRECTDRAWHW MAKE_DDHRESULT( 563 )
-#define DDERR_PRIMARYSURFACEALREADYEXISTS MAKE_DDHRESULT( 564 )
-#define DDERR_NOEMULATION MAKE_DDHRESULT( 565 )
-#define DDERR_REGIONTOOSMALL MAKE_DDHRESULT( 566 )
-#define DDERR_CLIPPERISUSINGHWND MAKE_DDHRESULT( 567 )
-#define DDERR_NOCLIPPERATTACHED MAKE_DDHRESULT( 568 )
-#define DDERR_NOHWND MAKE_DDHRESULT( 569 )
-#define DDERR_HWNDSUBCLASSED MAKE_DDHRESULT( 570 )
-#define DDERR_HWNDALREADYSET MAKE_DDHRESULT( 571 )
-#define DDERR_NOPALETTEATTACHED MAKE_DDHRESULT( 572 )
-#define DDERR_NOPALETTEHW MAKE_DDHRESULT( 573 )
-#define DDERR_BLTFASTCANTCLIP MAKE_DDHRESULT( 574 )
-#define DDERR_NOBLTHW MAKE_DDHRESULT( 575 )
-#define DDERR_NODDROPSHW MAKE_DDHRESULT( 576 )
-#define DDERR_OVERLAYNOTVISIBLE MAKE_DDHRESULT( 577 )
-#define DDERR_NOOVERLAYDEST MAKE_DDHRESULT( 578 )
-#define DDERR_INVALIDPOSITION MAKE_DDHRESULT( 579 )
-#define DDERR_NOTAOVERLAYSURFACE MAKE_DDHRESULT( 580 )
-#define DDERR_EXCLUSIVEMODEALREADYSET MAKE_DDHRESULT( 581 )
-#define DDERR_NOTFLIPPABLE MAKE_DDHRESULT( 582 )
-#define DDERR_CANTDUPLICATE MAKE_DDHRESULT( 583 )
-#define DDERR_NOTLOCKED MAKE_DDHRESULT( 584 )
-#define DDERR_CANTCREATEDC MAKE_DDHRESULT( 585 )
-#define DDERR_NODC MAKE_DDHRESULT( 586 )
-#define DDERR_WRONGMODE MAKE_DDHRESULT( 587 )
-#define DDERR_IMPLICITLYCREATED MAKE_DDHRESULT( 588 )
-#define DDERR_NOTPALETTIZED MAKE_DDHRESULT( 589 )
-#define DDERR_UNSUPPORTEDMODE MAKE_DDHRESULT( 590 )
-#define DDERR_NOMIPMAPHW MAKE_DDHRESULT( 591 )
-#define DDERR_INVALIDSURFACETYPE MAKE_DDHRESULT( 592 )
-#define DDERR_NOOPTIMIZEHW MAKE_DDHRESULT( 600 )
-#define DDERR_NOTLOADED MAKE_DDHRESULT( 601 )
-#define DDERR_NOFOCUSWINDOW MAKE_DDHRESULT( 602 )
-#define DDERR_NOTONMIPMAPSUBLEVEL MAKE_DDHRESULT( 603 )
-#define DDERR_DCALREADYCREATED MAKE_DDHRESULT( 620 )
-#define DDERR_NONONLOCALVIDMEM MAKE_DDHRESULT( 630 )
-#define DDERR_CANTPAGELOCK MAKE_DDHRESULT( 640 )
-#define DDERR_CANTPAGEUNLOCK MAKE_DDHRESULT( 660 )
-#define DDERR_NOTPAGELOCKED MAKE_DDHRESULT( 680 )
-#define DDERR_MOREDATA MAKE_DDHRESULT( 690 )
-#define DDERR_EXPIRED MAKE_DDHRESULT( 691 )
-#define DDERR_TESTFINISHED MAKE_DDHRESULT( 692 )
-#define DDERR_NEWMODE MAKE_DDHRESULT( 693 )
-#define DDERR_D3DNOTINITIALIZED MAKE_DDHRESULT( 694 )
-#define DDERR_VIDEONOTACTIVE MAKE_DDHRESULT( 695 )
-#define DDERR_NOMONITORINFORMATION MAKE_DDHRESULT( 696 )
-#define DDERR_NODRIVERSUPPORT MAKE_DDHRESULT( 697 )
-#define DDERR_DEVICEDOESNTOWNSURFACE MAKE_DDHRESULT( 699 )
-#define DDERR_NOTINITIALIZED CO_E_NOTINITIALIZED
-
-/* dwFlags for Blt* */
-#define DDBLT_ALPHADEST 0x00000001
-#define DDBLT_ALPHADESTCONSTOVERRIDE 0x00000002
-#define DDBLT_ALPHADESTNEG 0x00000004
-#define DDBLT_ALPHADESTSURFACEOVERRIDE 0x00000008
-#define DDBLT_ALPHAEDGEBLEND 0x00000010
-#define DDBLT_ALPHASRC 0x00000020
-#define DDBLT_ALPHASRCCONSTOVERRIDE 0x00000040
-#define DDBLT_ALPHASRCNEG 0x00000080
-#define DDBLT_ALPHASRCSURFACEOVERRIDE 0x00000100
-#define DDBLT_ASYNC 0x00000200
-#define DDBLT_COLORFILL 0x00000400
-#define DDBLT_DDFX 0x00000800
-#define DDBLT_DDROPS 0x00001000
-#define DDBLT_KEYDEST 0x00002000
-#define DDBLT_KEYDESTOVERRIDE 0x00004000
-#define DDBLT_KEYSRC 0x00008000
-#define DDBLT_KEYSRCOVERRIDE 0x00010000
-#define DDBLT_ROP 0x00020000
-#define DDBLT_ROTATIONANGLE 0x00040000
-#define DDBLT_ZBUFFER 0x00080000
-#define DDBLT_ZBUFFERDESTCONSTOVERRIDE 0x00100000
-#define DDBLT_ZBUFFERDESTOVERRIDE 0x00200000
-#define DDBLT_ZBUFFERSRCCONSTOVERRIDE 0x00400000
-#define DDBLT_ZBUFFERSRCOVERRIDE 0x00800000
-#define DDBLT_WAIT 0x01000000
-#define DDBLT_DEPTHFILL 0x02000000
-#define DDBLT_DONOTWAIT 0x08000000
-
-/* dwTrans for BltFast */
-#define DDBLTFAST_NOCOLORKEY 0x00000000
-#define DDBLTFAST_SRCCOLORKEY 0x00000001
-#define DDBLTFAST_DESTCOLORKEY 0x00000002
-#define DDBLTFAST_WAIT 0x00000010
-#define DDBLTFAST_DONOTWAIT 0x00000020
-
-/* dwFlags for Flip */
-#define DDFLIP_WAIT 0x00000001
-#define DDFLIP_EVEN 0x00000002 /* only valid for overlay */
-#define DDFLIP_ODD 0x00000004 /* only valid for overlay */
-#define DDFLIP_NOVSYNC 0x00000008
-#define DDFLIP_STEREO 0x00000010
-#define DDFLIP_DONOTWAIT 0x00000020
-
-/* dwFlags for GetBltStatus */
-#define DDGBS_CANBLT 0x00000001
-#define DDGBS_ISBLTDONE 0x00000002
-
-/* dwFlags for IDirectDrawSurface7::GetFlipStatus */
-#define DDGFS_CANFLIP 1L
-#define DDGFS_ISFLIPDONE 2L
-
-/* dwFlags for IDirectDrawSurface7::SetPrivateData */
-#define DDSPD_IUNKNOWNPTR 1L
-#define DDSPD_VOLATILE 2L
-
-/* DDSCAPS.dwCaps */
-/* reserved1, was 3d capable */
-#define DDSCAPS_RESERVED1 0x00000001
-/* surface contains alpha information */
-#define DDSCAPS_ALPHA 0x00000002
-/* this surface is a backbuffer */
-#define DDSCAPS_BACKBUFFER 0x00000004
-/* complex surface structure */
-#define DDSCAPS_COMPLEX 0x00000008
-/* part of surface flipping structure */
-#define DDSCAPS_FLIP 0x00000010
-/* this surface is the frontbuffer surface */
-#define DDSCAPS_FRONTBUFFER 0x00000020
-/* this is a plain offscreen surface */
-#define DDSCAPS_OFFSCREENPLAIN 0x00000040
-/* overlay */
-#define DDSCAPS_OVERLAY 0x00000080
-/* palette objects can be created and attached to us */
-#define DDSCAPS_PALETTE 0x00000100
-/* primary surface (the one the user looks at currently)(right eye)*/
-#define DDSCAPS_PRIMARYSURFACE 0x00000200
-/* primary surface for left eye */
-#define DDSCAPS_PRIMARYSURFACELEFT 0x00000400
-/* surface exists in systemmemory */
-#define DDSCAPS_SYSTEMMEMORY 0x00000800
-/* surface can be used as a texture */
-#define DDSCAPS_TEXTURE 0x00001000
-/* surface may be destination for 3d rendering */
-#define DDSCAPS_3DDEVICE 0x00002000
-/* surface exists in videomemory */
-#define DDSCAPS_VIDEOMEMORY 0x00004000
-/* surface changes immediately visible */
-#define DDSCAPS_VISIBLE 0x00008000
-/* write only surface */
-#define DDSCAPS_WRITEONLY 0x00010000
-/* zbuffer surface */
-#define DDSCAPS_ZBUFFER 0x00020000
-/* has its own DC */
-#define DDSCAPS_OWNDC 0x00040000
-/* surface should be able to receive live video */
-#define DDSCAPS_LIVEVIDEO 0x00080000
-/* should be able to have a hw codec decompress stuff into it */
-#define DDSCAPS_HWCODEC 0x00100000
-/* mode X (320x200 or 320x240) surface */
-#define DDSCAPS_MODEX 0x00200000
-/* one mipmap surface (1 level) */
-#define DDSCAPS_MIPMAP 0x00400000
-#define DDSCAPS_RESERVED2 0x00800000
-/* memory allocation delayed until Load() */
-#define DDSCAPS_ALLOCONLOAD 0x04000000
-/* Indicates that the surface will receive data from a video port */
-#define DDSCAPS_VIDEOPORT 0x08000000
-/* surface is in local videomemory */
-#define DDSCAPS_LOCALVIDMEM 0x10000000
-/* surface is in nonlocal videomemory */
-#define DDSCAPS_NONLOCALVIDMEM 0x20000000
-/* surface is a standard VGA mode surface (NOT ModeX) */
-#define DDSCAPS_STANDARDVGAMODE 0x40000000
-/* optimized? surface */
-#define DDSCAPS_OPTIMIZED 0x80000000
-
- typedef struct _DDSCAPS {
- DWORD dwCaps; /* capabilities of surface wanted */
- } DDSCAPS, *LPDDSCAPS;
-
-/* DDSCAPS2.dwCaps2 */
-/* indicates the surface will receive data from a video port using
- deinterlacing hardware. */
-#define DDSCAPS2_HARDWAREDEINTERLACE 0x00000002
-/* indicates the surface will be locked very frequently. */
-#define DDSCAPS2_HINTDYNAMIC 0x00000004
-/* indicates surface can be re-ordered or retiled on load() */
-#define DDSCAPS2_HINTSTATIC 0x00000008
-/* indicates surface to be managed by directdraw/direct3D */
-#define DDSCAPS2_TEXTUREMANAGE 0x00000010
-/* reserved bits */
-#define DDSCAPS2_RESERVED1 0x00000020
-#define DDSCAPS2_RESERVED2 0x00000040
-/* indicates surface will never be locked again */
-#define DDSCAPS2_OPAQUE 0x00000080
-/* set at CreateSurface() time to indicate antialising will be used */
-#define DDSCAPS2_HINTANTIALIASING 0x00000100
-/* set at CreateSurface() time to indicate cubic environment map */
-#define DDSCAPS2_CUBEMAP 0x00000200
-/* face flags for cube maps */
-#define DDSCAPS2_CUBEMAP_POSITIVEX 0x00000400
-#define DDSCAPS2_CUBEMAP_NEGATIVEX 0x00000800
-#define DDSCAPS2_CUBEMAP_POSITIVEY 0x00001000
-#define DDSCAPS2_CUBEMAP_NEGATIVEY 0x00002000
-#define DDSCAPS2_CUBEMAP_POSITIVEZ 0x00004000
-#define DDSCAPS2_CUBEMAP_NEGATIVEZ 0x00008000
-/* specifies all faces of a cube for CreateSurface() */
-#define DDSCAPS2_CUBEMAP_ALLFACES ( DDSCAPS2_CUBEMAP_POSITIVEX |\
- DDSCAPS2_CUBEMAP_NEGATIVEX |\
- DDSCAPS2_CUBEMAP_POSITIVEY |\
- DDSCAPS2_CUBEMAP_NEGATIVEY |\
- DDSCAPS2_CUBEMAP_POSITIVEZ |\
- DDSCAPS2_CUBEMAP_NEGATIVEZ )
-/* set for mipmap sublevels on DirectX7 and later. ignored by CreateSurface() */
-#define DDSCAPS2_MIPMAPSUBLEVEL 0x00010000
-/* indicates texture surface to be managed by Direct3D *only* */
-#define DDSCAPS2_D3DTEXTUREMANAGE 0x00020000
-/* indicates managed surface that can safely be lost */
-#define DDSCAPS2_DONOTPERSIST 0x00040000
-/* indicates surface is part of a stereo flipping chain */
-#define DDSCAPS2_STEREOSURFACELEFT 0x00080000
-
- typedef struct _DDSCAPS2 {
- DWORD dwCaps; /* capabilities of surface wanted */
- DWORD dwCaps2; /* additional capabilities */
- DWORD dwCaps3; /* reserved capabilities */
- DWORD dwCaps4; /* more reserved capabilities */
- } DDSCAPS2, *LPDDSCAPS2;
-
-#define DD_ROP_SPACE (256/32) /* space required to store ROP array */
-
- typedef struct _DDCAPS_DX7 { /* DirectX 7 version of caps struct */
- DWORD dwSize; /* size of the DDDRIVERCAPS structure */
- DWORD dwCaps; /* driver specific capabilities */
- DWORD dwCaps2; /* more driver specific capabilites */
- DWORD dwCKeyCaps; /* color key capabilities of the surface */
- DWORD dwFXCaps; /* driver specific stretching and effects capabilites */
- DWORD dwFXAlphaCaps; /* alpha driver specific capabilities */
- DWORD dwPalCaps; /* palette capabilities */
- DWORD dwSVCaps; /* stereo vision capabilities */
- DWORD dwAlphaBltConstBitDepths; /* DDBD_2,4,8 */
- DWORD dwAlphaBltPixelBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaBltSurfaceBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaOverlayConstBitDepths; /* DDBD_2,4,8 */
- DWORD dwAlphaOverlayPixelBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwZBufferBitDepths; /* DDBD_8,16,24,32 */
- DWORD dwVidMemTotal; /* total amount of video memory */
- DWORD dwVidMemFree; /* amount of free video memory */
- DWORD dwMaxVisibleOverlays; /* maximum number of visible overlays */
- DWORD dwCurrVisibleOverlays; /* current number of visible overlays */
- DWORD dwNumFourCCCodes; /* number of four cc codes */
- DWORD dwAlignBoundarySrc; /* source rectangle alignment */
- DWORD dwAlignSizeSrc; /* source rectangle byte size */
- DWORD dwAlignBoundaryDest; /* dest rectangle alignment */
- DWORD dwAlignSizeDest; /* dest rectangle byte size */
- DWORD dwAlignStrideAlign; /* stride alignment */
- DWORD dwRops[DD_ROP_SPACE]; /* ROPS supported */
- DDSCAPS ddsOldCaps; /* old DDSCAPS - superceded for DirectX6+ */
- DWORD dwMinOverlayStretch; /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxOverlayStretch; /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMinLiveVideoStretch; /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxLiveVideoStretch; /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMinHwCodecStretch; /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxHwCodecStretch; /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwReserved1;
- DWORD dwReserved2;
- DWORD dwReserved3;
- DWORD dwSVBCaps; /* driver specific capabilities for System->Vmem blts */
- DWORD dwSVBCKeyCaps; /* driver color key capabilities for System->Vmem blts */
- DWORD dwSVBFXCaps; /* driver FX capabilities for System->Vmem blts */
- DWORD dwSVBRops[DD_ROP_SPACE]; /* ROPS supported for System->Vmem blts */
- DWORD dwVSBCaps; /* driver specific capabilities for Vmem->System blts */
- DWORD dwVSBCKeyCaps; /* driver color key capabilities for Vmem->System blts */
- DWORD dwVSBFXCaps; /* driver FX capabilities for Vmem->System blts */
- DWORD dwVSBRops[DD_ROP_SPACE]; /* ROPS supported for Vmem->System blts */
- DWORD dwSSBCaps; /* driver specific capabilities for System->System blts */
- DWORD dwSSBCKeyCaps; /* driver color key capabilities for System->System blts */
- DWORD dwSSBFXCaps; /* driver FX capabilities for System->System blts */
- DWORD dwSSBRops[DD_ROP_SPACE]; /* ROPS supported for System->System blts */
- DWORD dwMaxVideoPorts; /* maximum number of usable video ports */
- DWORD dwCurrVideoPorts; /* current number of video ports used */
- DWORD dwSVBCaps2; /* more driver specific capabilities for System->Vmem blts */
- DWORD dwNLVBCaps; /* driver specific capabilities for non-local->local vidmem blts */
- DWORD dwNLVBCaps2; /* more driver specific capabilities non-local->local vidmem blts */
- DWORD dwNLVBCKeyCaps; /* driver color key capabilities for non-local->local vidmem blts */
- DWORD dwNLVBFXCaps; /* driver FX capabilities for non-local->local blts */
- DWORD dwNLVBRops[DD_ROP_SPACE]; /* ROPS supported for non-local->local blts */
- DDSCAPS2 ddsCaps; /* surface capabilities */
- } DDCAPS_DX7, *LPDDCAPS_DX7;
-
- typedef struct _DDCAPS_DX6 { /* DirectX 6 version of caps struct */
- DWORD dwSize; /* size of the DDDRIVERCAPS structure */
- DWORD dwCaps; /* driver specific capabilities */
- DWORD dwCaps2; /* more driver specific capabilites */
- DWORD dwCKeyCaps; /* color key capabilities of the surface */
- DWORD dwFXCaps; /* driver specific stretching and effects capabilites */
- DWORD dwFXAlphaCaps; /* alpha driver specific capabilities */
- DWORD dwPalCaps; /* palette capabilities */
- DWORD dwSVCaps; /* stereo vision capabilities */
- DWORD dwAlphaBltConstBitDepths; /* DDBD_2,4,8 */
- DWORD dwAlphaBltPixelBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaBltSurfaceBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaOverlayConstBitDepths; /* DDBD_2,4,8 */
- DWORD dwAlphaOverlayPixelBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwZBufferBitDepths; /* DDBD_8,16,24,32 */
- DWORD dwVidMemTotal; /* total amount of video memory */
- DWORD dwVidMemFree; /* amount of free video memory */
- DWORD dwMaxVisibleOverlays; /* maximum number of visible overlays */
- DWORD dwCurrVisibleOverlays; /* current number of visible overlays */
- DWORD dwNumFourCCCodes; /* number of four cc codes */
- DWORD dwAlignBoundarySrc; /* source rectangle alignment */
- DWORD dwAlignSizeSrc; /* source rectangle byte size */
- DWORD dwAlignBoundaryDest; /* dest rectangle alignment */
- DWORD dwAlignSizeDest; /* dest rectangle byte size */
- DWORD dwAlignStrideAlign; /* stride alignment */
- DWORD dwRops[DD_ROP_SPACE]; /* ROPS supported */
- DDSCAPS ddsOldCaps; /* old DDSCAPS - superceded for DirectX6+ */
- DWORD dwMinOverlayStretch; /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxOverlayStretch; /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMinLiveVideoStretch; /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxLiveVideoStretch; /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMinHwCodecStretch; /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxHwCodecStretch; /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwReserved1;
- DWORD dwReserved2;
- DWORD dwReserved3;
- DWORD dwSVBCaps; /* driver specific capabilities for System->Vmem blts */
- DWORD dwSVBCKeyCaps; /* driver color key capabilities for System->Vmem blts */
- DWORD dwSVBFXCaps; /* driver FX capabilities for System->Vmem blts */
- DWORD dwSVBRops[DD_ROP_SPACE]; /* ROPS supported for System->Vmem blts */
- DWORD dwVSBCaps; /* driver specific capabilities for Vmem->System blts */
- DWORD dwVSBCKeyCaps; /* driver color key capabilities for Vmem->System blts */
- DWORD dwVSBFXCaps; /* driver FX capabilities for Vmem->System blts */
- DWORD dwVSBRops[DD_ROP_SPACE]; /* ROPS supported for Vmem->System blts */
- DWORD dwSSBCaps; /* driver specific capabilities for System->System blts */
- DWORD dwSSBCKeyCaps; /* driver color key capabilities for System->System blts */
- DWORD dwSSBFXCaps; /* driver FX capabilities for System->System blts */
- DWORD dwSSBRops[DD_ROP_SPACE]; /* ROPS supported for System->System blts */
- DWORD dwMaxVideoPorts; /* maximum number of usable video ports */
- DWORD dwCurrVideoPorts; /* current number of video ports used */
- DWORD dwSVBCaps2; /* more driver specific capabilities for System->Vmem blts */
- DWORD dwNLVBCaps; /* driver specific capabilities for non-local->local vidmem blts */
- DWORD dwNLVBCaps2; /* more driver specific capabilities non-local->local vidmem blts */
- DWORD dwNLVBCKeyCaps; /* driver color key capabilities for non-local->local vidmem blts */
- DWORD dwNLVBFXCaps; /* driver FX capabilities for non-local->local blts */
- DWORD dwNLVBRops[DD_ROP_SPACE]; /* ROPS supported for non-local->local blts */
- /* and one new member for DirectX 6 */
- DDSCAPS2 ddsCaps; /* surface capabilities */
- } DDCAPS_DX6, *LPDDCAPS_DX6;
-
- typedef struct _DDCAPS_DX5 { /* DirectX5 version of caps struct */
- DWORD dwSize; /* size of the DDDRIVERCAPS structure */
- DWORD dwCaps; /* driver specific capabilities */
- DWORD dwCaps2; /* more driver specific capabilites */
- DWORD dwCKeyCaps; /* color key capabilities of the surface */
- DWORD dwFXCaps; /* driver specific stretching and effects capabilites */
- DWORD dwFXAlphaCaps; /* alpha driver specific capabilities */
- DWORD dwPalCaps; /* palette capabilities */
- DWORD dwSVCaps; /* stereo vision capabilities */
- DWORD dwAlphaBltConstBitDepths; /* DDBD_2,4,8 */
- DWORD dwAlphaBltPixelBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaBltSurfaceBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaOverlayConstBitDepths; /* DDBD_2,4,8 */
- DWORD dwAlphaOverlayPixelBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwZBufferBitDepths; /* DDBD_8,16,24,32 */
- DWORD dwVidMemTotal; /* total amount of video memory */
- DWORD dwVidMemFree; /* amount of free video memory */
- DWORD dwMaxVisibleOverlays; /* maximum number of visible overlays */
- DWORD dwCurrVisibleOverlays; /* current number of visible overlays */
- DWORD dwNumFourCCCodes; /* number of four cc codes */
- DWORD dwAlignBoundarySrc; /* source rectangle alignment */
- DWORD dwAlignSizeSrc; /* source rectangle byte size */
- DWORD dwAlignBoundaryDest; /* dest rectangle alignment */
- DWORD dwAlignSizeDest; /* dest rectangle byte size */
- DWORD dwAlignStrideAlign; /* stride alignment */
- DWORD dwRops[DD_ROP_SPACE]; /* ROPS supported */
- DDSCAPS ddsCaps; /* DDSCAPS structure has all the general capabilities */
- DWORD dwMinOverlayStretch; /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxOverlayStretch; /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMinLiveVideoStretch; /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxLiveVideoStretch; /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMinHwCodecStretch; /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxHwCodecStretch; /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwReserved1;
- DWORD dwReserved2;
- DWORD dwReserved3;
- DWORD dwSVBCaps; /* driver specific capabilities for System->Vmem blts */
- DWORD dwSVBCKeyCaps; /* driver color key capabilities for System->Vmem blts */
- DWORD dwSVBFXCaps; /* driver FX capabilities for System->Vmem blts */
- DWORD dwSVBRops[DD_ROP_SPACE]; /* ROPS supported for System->Vmem blts */
- DWORD dwVSBCaps; /* driver specific capabilities for Vmem->System blts */
- DWORD dwVSBCKeyCaps; /* driver color key capabilities for Vmem->System blts */
- DWORD dwVSBFXCaps; /* driver FX capabilities for Vmem->System blts */
- DWORD dwVSBRops[DD_ROP_SPACE]; /* ROPS supported for Vmem->System blts */
- DWORD dwSSBCaps; /* driver specific capabilities for System->System blts */
- DWORD dwSSBCKeyCaps; /* driver color key capabilities for System->System blts */
- DWORD dwSSBFXCaps; /* driver FX capabilities for System->System blts */
- DWORD dwSSBRops[DD_ROP_SPACE]; /* ROPS supported for System->System blts */
- /* the following are the new DirectX 5 members */
- DWORD dwMaxVideoPorts; /* maximum number of usable video ports */
- DWORD dwCurrVideoPorts; /* current number of video ports used */
- DWORD dwSVBCaps2; /* more driver specific capabilities for System->Vmem blts */
- DWORD dwNLVBCaps; /* driver specific capabilities for non-local->local vidmem blts */
- DWORD dwNLVBCaps2; /* more driver specific capabilities non-local->local vidmem blts */
- DWORD dwNLVBCKeyCaps; /* driver color key capabilities for non-local->local vidmem blts */
- DWORD dwNLVBFXCaps; /* driver FX capabilities for non-local->local blts */
- DWORD dwNLVBRops[DD_ROP_SPACE]; /* ROPS supported for non-local->local blts */
- } DDCAPS_DX5, *LPDDCAPS_DX5;
-
- typedef struct _DDCAPS_DX3 { /* DirectX3 version of caps struct */
- DWORD dwSize; /* size of the DDDRIVERCAPS structure */
- DWORD dwCaps; /* driver specific capabilities */
- DWORD dwCaps2; /* more driver specific capabilites */
- DWORD dwCKeyCaps; /* color key capabilities of the surface */
- DWORD dwFXCaps; /* driver specific stretching and effects capabilites */
- DWORD dwFXAlphaCaps; /* alpha driver specific capabilities */
- DWORD dwPalCaps; /* palette capabilities */
- DWORD dwSVCaps; /* stereo vision capabilities */
- DWORD dwAlphaBltConstBitDepths; /* DDBD_2,4,8 */
- DWORD dwAlphaBltPixelBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaBltSurfaceBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaOverlayConstBitDepths; /* DDBD_2,4,8 */
- DWORD dwAlphaOverlayPixelBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwZBufferBitDepths; /* DDBD_8,16,24,32 */
- DWORD dwVidMemTotal; /* total amount of video memory */
- DWORD dwVidMemFree; /* amount of free video memory */
- DWORD dwMaxVisibleOverlays; /* maximum number of visible overlays */
- DWORD dwCurrVisibleOverlays; /* current number of visible overlays */
- DWORD dwNumFourCCCodes; /* number of four cc codes */
- DWORD dwAlignBoundarySrc; /* source rectangle alignment */
- DWORD dwAlignSizeSrc; /* source rectangle byte size */
- DWORD dwAlignBoundaryDest; /* dest rectangle alignment */
- DWORD dwAlignSizeDest; /* dest rectangle byte size */
- DWORD dwAlignStrideAlign; /* stride alignment */
- DWORD dwRops[DD_ROP_SPACE]; /* ROPS supported */
- DDSCAPS ddsCaps; /* DDSCAPS structure has all the general capabilities */
- DWORD dwMinOverlayStretch; /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxOverlayStretch; /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMinLiveVideoStretch; /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxLiveVideoStretch; /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMinHwCodecStretch; /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxHwCodecStretch; /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwReserved1;
- DWORD dwReserved2;
- DWORD dwReserved3;
- DWORD dwSVBCaps; /* driver specific capabilities for System->Vmem blts */
- DWORD dwSVBCKeyCaps; /* driver color key capabilities for System->Vmem blts */
- DWORD dwSVBFXCaps; /* driver FX capabilities for System->Vmem blts */
- DWORD dwSVBRops[DD_ROP_SPACE]; /* ROPS supported for System->Vmem blts */
- DWORD dwVSBCaps; /* driver specific capabilities for Vmem->System blts */
- DWORD dwVSBCKeyCaps; /* driver color key capabilities for Vmem->System blts */
- DWORD dwVSBFXCaps; /* driver FX capabilities for Vmem->System blts */
- DWORD dwVSBRops[DD_ROP_SPACE]; /* ROPS supported for Vmem->System blts */
- DWORD dwSSBCaps; /* driver specific capabilities for System->System blts */
- DWORD dwSSBCKeyCaps; /* driver color key capabilities for System->System blts */
- DWORD dwSSBFXCaps; /* driver FX capabilities for System->System blts */
- DWORD dwSSBRops[DD_ROP_SPACE]; /* ROPS supported for System->System blts */
- DWORD dwReserved4;
- DWORD dwReserved5;
- DWORD dwReserved6;
- } DDCAPS_DX3, *LPDDCAPS_DX3;
-
-/* set caps struct according to DIRECTDRAW_VERSION */
-
-#if DIRECTDRAW_VERSION <= 0x300
- typedef DDCAPS_DX3 DDCAPS;
-#elif DIRECTDRAW_VERSION <= 0x500
- typedef DDCAPS_DX5 DDCAPS;
-#elif DIRECTDRAW_VERSION <= 0x600
- typedef DDCAPS_DX6 DDCAPS;
-#else
- typedef DDCAPS_DX7 DDCAPS;
-#endif
-
- typedef DDCAPS *LPDDCAPS;
-
-/* DDCAPS.dwCaps */
-#define DDCAPS_3D 0x00000001
-#define DDCAPS_ALIGNBOUNDARYDEST 0x00000002
-#define DDCAPS_ALIGNSIZEDEST 0x00000004
-#define DDCAPS_ALIGNBOUNDARYSRC 0x00000008
-#define DDCAPS_ALIGNSIZESRC 0x00000010
-#define DDCAPS_ALIGNSTRIDE 0x00000020
-#define DDCAPS_BLT 0x00000040
-#define DDCAPS_BLTQUEUE 0x00000080
-#define DDCAPS_BLTFOURCC 0x00000100
-#define DDCAPS_BLTSTRETCH 0x00000200
-#define DDCAPS_GDI 0x00000400
-#define DDCAPS_OVERLAY 0x00000800
-#define DDCAPS_OVERLAYCANTCLIP 0x00001000
-#define DDCAPS_OVERLAYFOURCC 0x00002000
-#define DDCAPS_OVERLAYSTRETCH 0x00004000
-#define DDCAPS_PALETTE 0x00008000
-#define DDCAPS_PALETTEVSYNC 0x00010000
-#define DDCAPS_READSCANLINE 0x00020000
-#define DDCAPS_STEREOVIEW 0x00040000
-#define DDCAPS_VBI 0x00080000
-#define DDCAPS_ZBLTS 0x00100000
-#define DDCAPS_ZOVERLAYS 0x00200000
-#define DDCAPS_COLORKEY 0x00400000
-#define DDCAPS_ALPHA 0x00800000
-#define DDCAPS_COLORKEYHWASSIST 0x01000000
-#define DDCAPS_NOHARDWARE 0x02000000
-#define DDCAPS_BLTCOLORFILL 0x04000000
-#define DDCAPS_BANKSWITCHED 0x08000000
-#define DDCAPS_BLTDEPTHFILL 0x10000000
-#define DDCAPS_CANCLIP 0x20000000
-#define DDCAPS_CANCLIPSTRETCHED 0x40000000
-#define DDCAPS_CANBLTSYSMEM 0x80000000
-
-/* DDCAPS.dwCaps2 */
-#define DDCAPS2_CERTIFIED 0x00000001
-#define DDCAPS2_NO2DDURING3DSCENE 0x00000002
-#define DDCAPS2_VIDEOPORT 0x00000004
-#define DDCAPS2_AUTOFLIPOVERLAY 0x00000008
-#define DDCAPS2_CANBOBINTERLEAVED 0x00000010
-#define DDCAPS2_CANBOBNONINTERLEAVED 0x00000020
-#define DDCAPS2_COLORCONTROLOVERLAY 0x00000040
-#define DDCAPS2_COLORCONTROLPRIMARY 0x00000080
-#define DDCAPS2_CANDROPZ16BIT 0x00000100
-#define DDCAPS2_NONLOCALVIDMEM 0x00000200
-#define DDCAPS2_NONLOCALVIDMEMCAPS 0x00000400
-#define DDCAPS2_NOPAGELOCKREQUIRED 0x00000800
-#define DDCAPS2_WIDESURFACES 0x00001000
-#define DDCAPS2_CANFLIPODDEVEN 0x00002000
-#define DDCAPS2_CANBOBHARDWARE 0x00004000
-#define DDCAPS2_COPYFOURCC 0x00008000
-#define DDCAPS2_PRIMARYGAMMA 0x00020000
-#define DDCAPS2_CANRENDERWINDOWED 0x00080000
-#define DDCAPS2_CANCALIBRATEGAMMA 0x00100000
-#define DDCAPS2_FLIPINTERVAL 0x00200000
-#define DDCAPS2_FLIPNOVSYNC 0x00400000
-#define DDCAPS2_CANMANAGETEXTURE 0x00800000
-#define DDCAPS2_TEXMANINNONLOCALVIDMEM 0x01000000
-#define DDCAPS2_STEREO 0x02000000
-#define DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL 0x04000000
-
-/* Set/Get Colour Key Flags */
-#define DDCKEY_COLORSPACE 0x00000001 /* Struct is single colour space */
-#define DDCKEY_DESTBLT 0x00000002 /* To be used as dest for blt */
-#define DDCKEY_DESTOVERLAY 0x00000004 /* To be used as dest for CK overlays */
-#define DDCKEY_SRCBLT 0x00000008 /* To be used as src for blt */
-#define DDCKEY_SRCOVERLAY 0x00000010 /* To be used as src for CK overlays */
-
- typedef struct _DDCOLORKEY {
- DWORD dwColorSpaceLowValue; /* low boundary of color space that is to
- * be treated as Color Key, inclusive
- */
- DWORD dwColorSpaceHighValue; /* high boundary of color space that is
- * to be treated as Color Key, inclusive
- */
- } DDCOLORKEY, *LPDDCOLORKEY;
-
-/* ddCKEYCAPS bits */
-#define DDCKEYCAPS_DESTBLT 0x00000001
-#define DDCKEYCAPS_DESTBLTCLRSPACE 0x00000002
-#define DDCKEYCAPS_DESTBLTCLRSPACEYUV 0x00000004
-#define DDCKEYCAPS_DESTBLTYUV 0x00000008
-#define DDCKEYCAPS_DESTOVERLAY 0x00000010
-#define DDCKEYCAPS_DESTOVERLAYCLRSPACE 0x00000020
-#define DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV 0x00000040
-#define DDCKEYCAPS_DESTOVERLAYONEACTIVE 0x00000080
-#define DDCKEYCAPS_DESTOVERLAYYUV 0x00000100
-#define DDCKEYCAPS_SRCBLT 0x00000200
-#define DDCKEYCAPS_SRCBLTCLRSPACE 0x00000400
-#define DDCKEYCAPS_SRCBLTCLRSPACEYUV 0x00000800
-#define DDCKEYCAPS_SRCBLTYUV 0x00001000
-#define DDCKEYCAPS_SRCOVERLAY 0x00002000
-#define DDCKEYCAPS_SRCOVERLAYCLRSPACE 0x00004000
-#define DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV 0x00008000
-#define DDCKEYCAPS_SRCOVERLAYONEACTIVE 0x00010000
-#define DDCKEYCAPS_SRCOVERLAYYUV 0x00020000
-#define DDCKEYCAPS_NOCOSTOVERLAY 0x00040000
-
- typedef struct _DDPIXELFORMAT {
- DWORD dwSize; /* 0: size of structure */
- DWORD dwFlags; /* 4: pixel format flags */
- DWORD dwFourCC; /* 8: (FOURCC code) */
- union {
- DWORD dwRGBBitCount; /* C: how many bits per pixel */
- DWORD dwYUVBitCount; /* C: how many bits per pixel */
- DWORD dwZBufferBitDepth; /* C: how many bits for z buffers */
- DWORD dwAlphaBitDepth; /* C: how many bits for alpha channels */
- DWORD dwLuminanceBitCount;
- DWORD dwBumpBitCount;
- } DUMMYUNIONNAME1;
- union {
- DWORD dwRBitMask; /* 10: mask for red bit */
- DWORD dwYBitMask; /* 10: mask for Y bits */
- DWORD dwStencilBitDepth;
- DWORD dwLuminanceBitMask;
- DWORD dwBumpDuBitMask;
- } DUMMYUNIONNAME2;
- union {
- DWORD dwGBitMask; /* 14: mask for green bits */
- DWORD dwUBitMask; /* 14: mask for U bits */
- DWORD dwZBitMask;
- DWORD dwBumpDvBitMask;
- } DUMMYUNIONNAME3;
- union {
- DWORD dwBBitMask; /* 18: mask for blue bits */
- DWORD dwVBitMask; /* 18: mask for V bits */
- DWORD dwStencilBitMask;
- DWORD dwBumpLuminanceBitMask;
- } DUMMYUNIONNAME4;
- union {
- DWORD dwRGBAlphaBitMask; /* 1C: mask for alpha channel */
- DWORD dwYUVAlphaBitMask; /* 1C: mask for alpha channel */
- DWORD dwLuminanceAlphaBitMask;
- DWORD dwRGBZBitMask; /* 1C: mask for Z channel */
- DWORD dwYUVZBitMask; /* 1C: mask for Z channel */
- } DUMMYUNIONNAME5;
- /* 20: next structure */
- } DDPIXELFORMAT, *LPDDPIXELFORMAT;
-
-/* DDCAPS.dwFXCaps */
-#define DDFXCAPS_BLTALPHA 0x00000001
-#define DDFXCAPS_OVERLAYALPHA 0x00000004
-#define DDFXCAPS_BLTARITHSTRETCHYN 0x00000010
-#define DDFXCAPS_BLTARITHSTRETCHY 0x00000020
-#define DDFXCAPS_BLTMIRRORLEFTRIGHT 0x00000040
-#define DDFXCAPS_BLTMIRRORUPDOWN 0x00000080
-#define DDFXCAPS_BLTROTATION 0x00000100
-#define DDFXCAPS_BLTROTATION90 0x00000200
-#define DDFXCAPS_BLTSHRINKX 0x00000400
-#define DDFXCAPS_BLTSHRINKXN 0x00000800
-#define DDFXCAPS_BLTSHRINKY 0x00001000
-#define DDFXCAPS_BLTSHRINKYN 0x00002000
-#define DDFXCAPS_BLTSTRETCHX 0x00004000
-#define DDFXCAPS_BLTSTRETCHXN 0x00008000
-#define DDFXCAPS_BLTSTRETCHY 0x00010000
-#define DDFXCAPS_BLTSTRETCHYN 0x00020000
-#define DDFXCAPS_OVERLAYARITHSTRETCHY 0x00040000
-#define DDFXCAPS_OVERLAYARITHSTRETCHYN 0x00000008
-#define DDFXCAPS_OVERLAYSHRINKX 0x00080000
-#define DDFXCAPS_OVERLAYSHRINKXN 0x00100000
-#define DDFXCAPS_OVERLAYSHRINKY 0x00200000
-#define DDFXCAPS_OVERLAYSHRINKYN 0x00400000
-#define DDFXCAPS_OVERLAYSTRETCHX 0x00800000
-#define DDFXCAPS_OVERLAYSTRETCHXN 0x01000000
-#define DDFXCAPS_OVERLAYSTRETCHY 0x02000000
-#define DDFXCAPS_OVERLAYSTRETCHYN 0x04000000
-#define DDFXCAPS_OVERLAYMIRRORLEFTRIGHT 0x08000000
-#define DDFXCAPS_OVERLAYMIRRORUPDOWN 0x10000000
-
-#define DDFXCAPS_OVERLAYFILTER DDFXCAPS_OVERLAYARITHSTRETCHY
-
-/* DDCAPS.dwFXAlphaCaps */
-#define DDFXALPHACAPS_BLTALPHAEDGEBLEND 0x00000001
-#define DDFXALPHACAPS_BLTALPHAPIXELS 0x00000002
-#define DDFXALPHACAPS_BLTALPHAPIXELSNEG 0x00000004
-#define DDFXALPHACAPS_BLTALPHASURFACES 0x00000008
-#define DDFXALPHACAPS_BLTALPHASURFACESNEG 0x00000010
-#define DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND 0x00000020
-#define DDFXALPHACAPS_OVERLAYALPHAPIXELS 0x00000040
-#define DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG 0x00000080
-#define DDFXALPHACAPS_OVERLAYALPHASURFACES 0x00000100
-#define DDFXALPHACAPS_OVERLAYALPHASURFACESNEG 0x00000200
-
-/* DDCAPS.dwPalCaps */
-#define DDPCAPS_4BIT 0x00000001
-#define DDPCAPS_8BITENTRIES 0x00000002
-#define DDPCAPS_8BIT 0x00000004
-#define DDPCAPS_INITIALIZE 0x00000008
-#define DDPCAPS_PRIMARYSURFACE 0x00000010
-#define DDPCAPS_PRIMARYSURFACELEFT 0x00000020
-#define DDPCAPS_ALLOW256 0x00000040
-#define DDPCAPS_VSYNC 0x00000080
-#define DDPCAPS_1BIT 0x00000100
-#define DDPCAPS_2BIT 0x00000200
-#define DDPCAPS_ALPHA 0x00000400
-
-/* DDCAPS.dwSVCaps */
-/* the first 4 of these are now obsolete */
-#if DIRECTDRAW_VERSION >= 0x700 /* FIXME: I'm not sure when this switch occured */
-#define DDSVCAPS_RESERVED1 0x00000001
-#define DDSVCAPS_RESERVED2 0x00000002
-#define DDSVCAPS_RESERVED3 0x00000004
-#define DDSVCAPS_RESERVED4 0x00000008
-#else
-#define DDSVCAPS_ENIGMA 0x00000001
-#define DDSVCAPS_FLICKER 0x00000002
-#define DDSVCAPS_REDBLUE 0x00000004
-#define DDSVCAPS_SPLIT 0x00000008
-#endif
-#define DDSVCAPS_STEREOSEQUENTIAL 0x00000010
-
-/* BitDepths */
-#define DDBD_1 0x00004000
-#define DDBD_2 0x00002000
-#define DDBD_4 0x00001000
-#define DDBD_8 0x00000800
-#define DDBD_16 0x00000400
-#define DDBD_24 0x00000200
-#define DDBD_32 0x00000100
-
-/* DDOVERLAYFX.dwDDFX */
-#define DDOVERFX_ARITHSTRETCHY 0x00000001
-#define DDOVERFX_MIRRORLEFTRIGHT 0x00000002
-#define DDOVERFX_MIRRORUPDOWN 0x00000004
-
-/* UpdateOverlay flags */
-#define DDOVER_ALPHADEST 0x00000001
-#define DDOVER_ALPHADESTCONSTOVERRIDE 0x00000002
-#define DDOVER_ALPHADESTNEG 0x00000004
-#define DDOVER_ALPHADESTSURFACEOVERRIDE 0x00000008
-#define DDOVER_ALPHAEDGEBLEND 0x00000010
-#define DDOVER_ALPHASRC 0x00000020
-#define DDOVER_ALPHASRCCONSTOVERRIDE 0x00000040
-#define DDOVER_ALPHASRCNEG 0x00000080
-#define DDOVER_ALPHASRCSURFACEOVERRIDE 0x00000100
-#define DDOVER_HIDE 0x00000200
-#define DDOVER_KEYDEST 0x00000400
-#define DDOVER_KEYDESTOVERRIDE 0x00000800
-#define DDOVER_KEYSRC 0x00001000
-#define DDOVER_KEYSRCOVERRIDE 0x00002000
-#define DDOVER_SHOW 0x00004000
-#define DDOVER_ADDDIRTYRECT 0x00008000
-#define DDOVER_REFRESHDIRTYRECTS 0x00010000
-#define DDOVER_REFRESHALL 0x00020000
-#define DDOVER_DDFX 0x00080000
-#define DDOVER_AUTOFLIP 0x00100000
-#define DDOVER_BOB 0x00200000
-#define DDOVER_OVERRIDEBOBWEAVE 0x00400000
-#define DDOVER_INTERLEAVED 0x00800000
-
-/* DDCOLORKEY.dwFlags */
-#define DDPF_ALPHAPIXELS 0x00000001
-#define DDPF_ALPHA 0x00000002
-#define DDPF_FOURCC 0x00000004
-#define DDPF_PALETTEINDEXED4 0x00000008
-#define DDPF_PALETTEINDEXEDTO8 0x00000010
-#define DDPF_PALETTEINDEXED8 0x00000020
-#define DDPF_RGB 0x00000040
-#define DDPF_COMPRESSED 0x00000080
-#define DDPF_RGBTOYUV 0x00000100
-#define DDPF_YUV 0x00000200
-#define DDPF_ZBUFFER 0x00000400
-#define DDPF_PALETTEINDEXED1 0x00000800
-#define DDPF_PALETTEINDEXED2 0x00001000
-#define DDPF_ZPIXELS 0x00002000
-#define DDPF_STENCILBUFFER 0x00004000
-#define DDPF_ALPHAPREMULT 0x00008000
-#define DDPF_LUMINANCE 0x00020000
-#define DDPF_BUMPLUMINANCE 0x00040000
-#define DDPF_BUMPDUDV 0x00080000
-
-/* SetCooperativeLevel dwFlags */
-#define DDSCL_FULLSCREEN 0x00000001
-#define DDSCL_ALLOWREBOOT 0x00000002
-#define DDSCL_NOWINDOWCHANGES 0x00000004
-#define DDSCL_NORMAL 0x00000008
-#define DDSCL_EXCLUSIVE 0x00000010
-#define DDSCL_ALLOWMODEX 0x00000040
-#define DDSCL_SETFOCUSWINDOW 0x00000080
-#define DDSCL_SETDEVICEWINDOW 0x00000100
-#define DDSCL_CREATEDEVICEWINDOW 0x00000200
-#define DDSCL_MULTITHREADED 0x00000400
-#define DDSCL_FPUSETUP 0x00000800
-#define DDSCL_FPUPRESERVE 0x00001000
-
-/* DDSURFACEDESC.dwFlags */
-#define DDSD_CAPS 0x00000001
-#define DDSD_HEIGHT 0x00000002
-#define DDSD_WIDTH 0x00000004
-#define DDSD_PITCH 0x00000008
-#define DDSD_BACKBUFFERCOUNT 0x00000020
-#define DDSD_ZBUFFERBITDEPTH 0x00000040
-#define DDSD_ALPHABITDEPTH 0x00000080
-#define DDSD_LPSURFACE 0x00000800
-#define DDSD_PIXELFORMAT 0x00001000
-#define DDSD_CKDESTOVERLAY 0x00002000
-#define DDSD_CKDESTBLT 0x00004000
-#define DDSD_CKSRCOVERLAY 0x00008000
-#define DDSD_CKSRCBLT 0x00010000
-#define DDSD_MIPMAPCOUNT 0x00020000
-#define DDSD_REFRESHRATE 0x00040000
-#define DDSD_LINEARSIZE 0x00080000
-#define DDSD_TEXTURESTAGE 0x00100000
-#define DDSD_FVF 0x00200000
-#define DDSD_SRCVBHANDLE 0x00400000
-#define DDSD_ALL 0x007ff9ee
-
-/* EnumSurfaces flags */
-#define DDENUMSURFACES_ALL 0x00000001
-#define DDENUMSURFACES_MATCH 0x00000002
-#define DDENUMSURFACES_NOMATCH 0x00000004
-#define DDENUMSURFACES_CANBECREATED 0x00000008
-#define DDENUMSURFACES_DOESEXIST 0x00000010
-
-/* SetDisplayMode flags */
-#define DDSDM_STANDARDVGAMODE 0x00000001
-
-/* EnumDisplayModes flags */
-#define DDEDM_REFRESHRATES 0x00000001
-#define DDEDM_STANDARDVGAMODES 0x00000002
-
-/* WaitForVerticalDisplay flags */
-
-#define DDWAITVB_BLOCKBEGIN 0x00000001
-#define DDWAITVB_BLOCKBEGINEVENT 0x00000002
-#define DDWAITVB_BLOCKEND 0x00000004
-
- typedef struct _DDSURFACEDESC {
- DWORD dwSize; /* 0: size of the DDSURFACEDESC structure */
- DWORD dwFlags; /* 4: determines what fields are valid */
- DWORD dwHeight; /* 8: height of surface to be created */
- DWORD dwWidth; /* C: width of input surface */
- union {
- LONG lPitch; /* 10: distance to start of next line (return value only) */
- DWORD dwLinearSize;
- } DUMMYUNIONNAME1;
- DWORD dwBackBufferCount; /* 14: number of back buffers requested */
- union {
- DWORD dwMipMapCount; /* 18:number of mip-map levels requested */
- DWORD dwZBufferBitDepth; /*18: depth of Z buffer requested */
- DWORD dwRefreshRate; /* 18:refresh rate (used when display mode is described) */
- } DUMMYUNIONNAME2;
- DWORD dwAlphaBitDepth; /* 1C:depth of alpha buffer requested */
- DWORD dwReserved; /* 20:reserved */
- LPVOID lpSurface; /* 24:pointer to the associated surface memory */
- DDCOLORKEY ddckCKDestOverlay; /* 28: CK for dest overlay use */
- DDCOLORKEY ddckCKDestBlt; /* 30: CK for destination blt use */
- DDCOLORKEY ddckCKSrcOverlay; /* 38: CK for source overlay use */
- DDCOLORKEY ddckCKSrcBlt; /* 40: CK for source blt use */
- DDPIXELFORMAT ddpfPixelFormat; /* 48: pixel format description of the surface */
- DDSCAPS ddsCaps; /* 68: direct draw surface caps */
- } DDSURFACEDESC, *LPDDSURFACEDESC;
-
- typedef struct _DDSURFACEDESC2 {
- DWORD dwSize; /* 0: size of the DDSURFACEDESC structure */
- DWORD dwFlags; /* 4: determines what fields are valid */
- DWORD dwHeight; /* 8: height of surface to be created */
- DWORD dwWidth; /* C: width of input surface */
- union {
- LONG lPitch; /*10: distance to start of next line (return value only) */
- DWORD dwLinearSize; /*10: formless late-allocated optimized surface size */
- } DUMMYUNIONNAME1;
- DWORD dwBackBufferCount; /* 14: number of back buffers requested */
- union {
- DWORD dwMipMapCount; /* 18:number of mip-map levels requested */
- DWORD dwRefreshRate; /* 18:refresh rate (used when display mode is described) */
- DWORD dwSrcVBHandle; /* 18:source used in VB::Optimize */
- } DUMMYUNIONNAME2;
- DWORD dwAlphaBitDepth; /* 1C:depth of alpha buffer requested */
- DWORD dwReserved; /* 20:reserved */
- LPVOID lpSurface; /* 24:pointer to the associated surface memory */
- union {
- DDCOLORKEY ddckCKDestOverlay; /* 28: CK for dest overlay use */
- DWORD dwEmptyFaceColor; /* 28: color for empty cubemap faces */
- } DUMMYUNIONNAME3;
- DDCOLORKEY ddckCKDestBlt; /* 30: CK for destination blt use */
- DDCOLORKEY ddckCKSrcOverlay; /* 38: CK for source overlay use */
- DDCOLORKEY ddckCKSrcBlt; /* 40: CK for source blt use */
-
- union {
- DDPIXELFORMAT ddpfPixelFormat; /* 48: pixel format description of the surface */
- DWORD dwFVF; /* 48: vertex format description of vertex buffers */
- } DUMMYUNIONNAME4;
- DDSCAPS2 ddsCaps; /* 68: DDraw surface caps */
- DWORD dwTextureStage; /* 78: stage in multitexture cascade */
- } DDSURFACEDESC2, *LPDDSURFACEDESC2;
-
-/* DDCOLORCONTROL.dwFlags */
-#define DDCOLOR_BRIGHTNESS 0x00000001
-#define DDCOLOR_CONTRAST 0x00000002
-#define DDCOLOR_HUE 0x00000004
-#define DDCOLOR_SATURATION 0x00000008
-#define DDCOLOR_SHARPNESS 0x00000010
-#define DDCOLOR_GAMMA 0x00000020
-#define DDCOLOR_COLORENABLE 0x00000040
-
- typedef struct {
- DWORD dwSize;
- DWORD dwFlags;
- LONG lBrightness;
- LONG lContrast;
- LONG lHue;
- LONG lSaturation;
- LONG lSharpness;
- LONG lGamma;
- LONG lColorEnable;
- DWORD dwReserved1;
- } DDCOLORCONTROL, *LPDDCOLORCONTROL;
-
- typedef struct {
- WORD red[256];
- WORD green[256];
- WORD blue[256];
- } DDGAMMARAMP, *LPDDGAMMARAMP;
-
- typedef BOOL CALLBACK(*LPDDENUMCALLBACKA) (GUID *, LPSTR, LPSTR, LPVOID);
- typedef BOOL CALLBACK(*LPDDENUMCALLBACKW) (GUID *, LPWSTR, LPWSTR, LPVOID);
- DECL_WINELIB_TYPE_AW(LPDDENUMCALLBACK)
-
- typedef HRESULT CALLBACK(*LPDDENUMMODESCALLBACK) (LPDDSURFACEDESC, LPVOID);
- typedef HRESULT CALLBACK(*LPDDENUMMODESCALLBACK2) (LPDDSURFACEDESC2,
- LPVOID);
- typedef HRESULT CALLBACK(*LPDDENUMSURFACESCALLBACK) (LPDIRECTDRAWSURFACE,
- LPDDSURFACEDESC,
- LPVOID);
- typedef HRESULT CALLBACK(*LPDDENUMSURFACESCALLBACK2) (LPDIRECTDRAWSURFACE4,
- LPDDSURFACEDESC2,
- LPVOID);
- typedef HRESULT CALLBACK(*LPDDENUMSURFACESCALLBACK7) (LPDIRECTDRAWSURFACE7,
- LPDDSURFACEDESC2,
- LPVOID);
-
- typedef BOOL CALLBACK(*LPDDENUMCALLBACKEXA) (GUID *, LPSTR, LPSTR, LPVOID,
- HMONITOR);
- typedef BOOL CALLBACK(*LPDDENUMCALLBACKEXW) (GUID *, LPWSTR, LPWSTR, LPVOID,
- HMONITOR);
- DECL_WINELIB_TYPE_AW(LPDDENUMCALLBACKEX)
-
- HRESULT WINAPI DirectDrawEnumerateExA(LPDDENUMCALLBACKEXA lpCallback,
- LPVOID lpContext, DWORD dwFlags);
- HRESULT WINAPI DirectDrawEnumerateExW(LPDDENUMCALLBACKEXW lpCallback,
- LPVOID lpContext, DWORD dwFlags);
-#define DirectDrawEnumerateEx WINELIB_NAME_AW(DirectDrawEnumerateEx)
-
-/* flags for DirectDrawEnumerateEx */
-#define DDENUM_ATTACHEDSECONDARYDEVICES 0x00000001
-#define DDENUM_DETACHEDSECONDARYDEVICES 0x00000002
-#define DDENUM_NONDISPLAYDEVICES 0x00000004
-
-/* flags for DirectDrawCreate or IDirectDraw::Initialize */
-#define DDCREATE_HARDWAREONLY 1L
-#define DDCREATE_EMULATIONONLY 2L
-
- typedef struct _DDBLTFX {
- DWORD dwSize; /* size of structure */
- DWORD dwDDFX; /* FX operations */
- DWORD dwROP; /* Win32 raster operations */
- DWORD dwDDROP; /* Raster operations new for DirectDraw */
- DWORD dwRotationAngle; /* Rotation angle for blt */
- DWORD dwZBufferOpCode; /* ZBuffer compares */
- DWORD dwZBufferLow; /* Low limit of Z buffer */
- DWORD dwZBufferHigh; /* High limit of Z buffer */
- DWORD dwZBufferBaseDest; /* Destination base value */
- DWORD dwZDestConstBitDepth; /* Bit depth used to specify Z constant for destination */
- union {
- DWORD dwZDestConst; /* Constant to use as Z buffer for dest */
- LPDIRECTDRAWSURFACE lpDDSZBufferDest; /* Surface to use as Z buffer for dest */
- } DUMMYUNIONNAME1;
- DWORD dwZSrcConstBitDepth; /* Bit depth used to specify Z constant for source */
- union {
- DWORD dwZSrcConst; /* Constant to use as Z buffer for src */
- LPDIRECTDRAWSURFACE lpDDSZBufferSrc; /* Surface to use as Z buffer for src */
- } DUMMYUNIONNAME2;
- DWORD dwAlphaEdgeBlendBitDepth; /* Bit depth used to specify constant for alpha edge blend */
- DWORD dwAlphaEdgeBlend; /* Alpha for edge blending */
- DWORD dwReserved;
- DWORD dwAlphaDestConstBitDepth; /* Bit depth used to specify alpha constant for destination */
- union {
- DWORD dwAlphaDestConst; /* Constant to use as Alpha Channel */
- LPDIRECTDRAWSURFACE lpDDSAlphaDest; /* Surface to use as Alpha Channel */
- } DUMMYUNIONNAME3;
- DWORD dwAlphaSrcConstBitDepth; /* Bit depth used to specify alpha constant for source */
- union {
- DWORD dwAlphaSrcConst; /* Constant to use as Alpha Channel */
- LPDIRECTDRAWSURFACE lpDDSAlphaSrc; /* Surface to use as Alpha Channel */
- } DUMMYUNIONNAME4;
- union {
- DWORD dwFillColor; /* color in RGB or Palettized */
- DWORD dwFillDepth; /* depth value for z-buffer */
- DWORD dwFillPixel; /* pixel val for RGBA or RGBZ */
- LPDIRECTDRAWSURFACE lpDDSPattern; /* Surface to use as pattern */
- } DUMMYUNIONNAME5;
- DDCOLORKEY ddckDestColorkey; /* DestColorkey override */
- DDCOLORKEY ddckSrcColorkey; /* SrcColorkey override */
- } DDBLTFX, *LPDDBLTFX;
-
-/* dwDDFX */
-/* arithmetic stretching along y axis */
-#define DDBLTFX_ARITHSTRETCHY 0x00000001
-/* mirror on y axis */
-#define DDBLTFX_MIRRORLEFTRIGHT 0x00000002
-/* mirror on x axis */
-#define DDBLTFX_MIRRORUPDOWN 0x00000004
-/* do not tear */
-#define DDBLTFX_NOTEARING 0x00000008
-/* 180 degrees clockwise rotation */
-#define DDBLTFX_ROTATE180 0x00000010
-/* 270 degrees clockwise rotation */
-#define DDBLTFX_ROTATE270 0x00000020
-/* 90 degrees clockwise rotation */
-#define DDBLTFX_ROTATE90 0x00000040
-/* dwZBufferLow and dwZBufferHigh specify limits to the copied Z values */
-#define DDBLTFX_ZBUFFERRANGE 0x00000080
-/* add dwZBufferBaseDest to every source z value before compare */
-#define DDBLTFX_ZBUFFERBASEDEST 0x00000100
-
- typedef struct _DDOVERLAYFX {
- DWORD dwSize; /* size of structure */
- DWORD dwAlphaEdgeBlendBitDepth; /* Bit depth used to specify constant for alpha edge blend */
- DWORD dwAlphaEdgeBlend; /* Constant to use as alpha for edge blend */
- DWORD dwReserved;
- DWORD dwAlphaDestConstBitDepth; /* Bit depth used to specify alpha constant for destination */
- union {
- DWORD dwAlphaDestConst; /* Constant to use as alpha channel for dest */
- LPDIRECTDRAWSURFACE lpDDSAlphaDest; /* Surface to use as alpha channel for dest */
- } DUMMYUNIONNAME1;
- DWORD dwAlphaSrcConstBitDepth; /* Bit depth used to specify alpha constant for source */
- union {
- DWORD dwAlphaSrcConst; /* Constant to use as alpha channel for src */
- LPDIRECTDRAWSURFACE lpDDSAlphaSrc; /* Surface to use as alpha channel for src */
- } DUMMYUNIONNAME2;
- DDCOLORKEY dckDestColorkey; /* DestColorkey override */
- DDCOLORKEY dckSrcColorkey; /* DestColorkey override */
- DWORD dwDDFX; /* Overlay FX */
- DWORD dwFlags; /* flags */
- } DDOVERLAYFX, *LPDDOVERLAYFX;
-
- typedef struct _DDBLTBATCH {
- LPRECT lprDest;
- LPDIRECTDRAWSURFACE lpDDSSrc;
- LPRECT lprSrc;
- DWORD dwFlags;
- LPDDBLTFX lpDDBltFx;
- } DDBLTBATCH, *LPDDBLTBATCH;
-
-#define MAX_DDDEVICEID_STRING 512
-
- typedef struct tagDDDEVICEIDENTIFIER {
- char szDriver[MAX_DDDEVICEID_STRING];
- char szDescription[MAX_DDDEVICEID_STRING];
- LARGE_INTEGER liDriverVersion;
- DWORD dwVendorId;
- DWORD dwDeviceId;
- DWORD dwSubSysId;
- DWORD dwRevision;
- GUID guidDeviceIdentifier;
- } DDDEVICEIDENTIFIER, *LPDDDEVICEIDENTIFIER;
-
- typedef struct tagDDDEVICEIDENTIFIER2 {
- char szDriver[MAX_DDDEVICEID_STRING]; /* user readable driver name */
- char szDescription[MAX_DDDEVICEID_STRING]; /* user readable description */
- LARGE_INTEGER liDriverVersion; /* driver version */
- DWORD dwVendorId; /* vendor ID, zero if unknown */
- DWORD dwDeviceId; /* chipset ID, zero if unknown */
- DWORD dwSubSysId; /* board ID, zero if unknown */
- DWORD dwRevision; /* chipset version, zero if unknown */
- GUID guidDeviceIdentifier; /* unique ID for this driver/chipset combination */
- DWORD dwWHQLLevel; /* Windows Hardware Quality Lab certification level */
- } DDDEVICEIDENTIFIER2, *LPDDDEVICEIDENTIFIER2;
-
-/*****************************************************************************
- * IDirectDrawPalette interface
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawPalette
- DECLARE_INTERFACE_(IDirectDrawPalette, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, PVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDWORD lpdwCaps) PURE;
- STDMETHOD(GetEntries) (THIS_ DWORD dwFlags, DWORD dwBase,
- DWORD dwNumEntries,
- LPPALETTEENTRY lpEntries) PURE;
- STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD, DWORD dwFlags,
- LPPALETTEENTRY lpDDColorTable) PURE;
- STDMETHOD(SetEntries) (THIS_ DWORD dwFlags, DWORD dwStartingEntry,
- DWORD dwCount, LPPALETTEENTRY lpEntries) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDrawPalette_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDrawPalette_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDrawPalette_Release(p) ICOM_CALL_(Release,p,(p))
- /*** IDirectDrawPalette methods ***/
-#define IDirectDrawPalette_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a))
-#define IDirectDrawPalette_GetEntries(p,a,b,c,d) ICOM_CALL_(GetEntries,p,(p,a,b,c,d))
-#define IDirectDrawPalette_Initialize(p,a,b,c) ICOM_CALL_(Initialize,p,(p,a,b,c))
-#define IDirectDrawPalette_SetEntries(p,a,b,c,d) ICOM_CALL_(SetEntries,p,(p,a,b,c,d))
-
-/*****************************************************************************
- * IDirectDrawClipper interface
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawClipper
- DECLARE_INTERFACE_(IDirectDrawClipper, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(GetClipList) (THIS_ LPRECT lpRect, LPRGNDATA lpClipList,
- LPDWORD lpdwSize) PURE;
- STDMETHOD(GetHWnd) (THIS_ HWND * lphWnd) PURE;
- STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD, DWORD dwFlags) PURE;
- STDMETHOD(IsClipListChanged) (THIS_ BOOL * lpbChanged) PURE;
- STDMETHOD(SetClipList) (THIS_ LPRGNDATA lpClipList, DWORD dwFlags) PURE;
- STDMETHOD(SetHWnd) (THIS_ DWORD dwFlags, HWND hWnd) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDrawClipper_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDrawClipper_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDrawClipper_Release(p) ICOM_CALL_(Release,p,(p))
- /*** IDirectDrawClipper methods ***/
-#define IDirectDrawClipper_GetClipList(p,a,b,c) ICOM_CALL_(GetClipList,p,(p,a,b,c))
-#define IDirectDrawClipper_GetHWnd(p,a) ICOM_CALL_(GetHWnd,p,(p,a))
-#define IDirectDrawClipper_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b))
-#define IDirectDrawClipper_IsClipListChanged(p,a) ICOM_CALL_(IsClipListChanged,p,(p,a))
-#define IDirectDrawClipper_SetClipList(p,a,b) ICOM_CALL_(SetClipList,p,(p,a,b))
-#define IDirectDrawClipper_SetHWnd(p,a,b) ICOM_CALL_(SetHWnd,p,(p,a,b))
-
-/*****************************************************************************
- * IDirectDraw interface
- */
-#undef INTERFACE
-#define INTERFACE IDirectDraw
- DECLARE_INTERFACE_(IDirectDraw, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(Compact) (THIS) PURE;
- STDMETHOD(CreateClipper) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWCLIPPER * lplpDDClipper,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(CreatePalette) (THIS_ DWORD dwFlags,
- LPPALETTEENTRY lpColorTable,
- LPDIRECTDRAWPALETTE * lplpDDPalette,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(CreateSurface) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc,
- LPDIRECTDRAWSURFACE * lplpDDSurface,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(DuplicateSurface) (THIS_ LPDIRECTDRAWSURFACE lpDDSurface,
- LPDIRECTDRAWSURFACE *
- lplpDupDDSurface) PURE;
- STDMETHOD(EnumDisplayModes) (THIS_ DWORD dwFlags,
- LPDDSURFACEDESC lpDDSurfaceDesc,
- LPVOID lpContext,
- LPDDENUMMODESCALLBACK lpEnumModesCallback)
- PURE;
- STDMETHOD(EnumSurfaces) (THIS_ DWORD dwFlags, LPDDSURFACEDESC lpDDSD,
- LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK
- lpEnumSurfacesCallback) PURE;
- STDMETHOD(FlipToGDISurface) (THIS) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDDCAPS lpDDDriverCaps,
- LPDDCAPS lpDDHELCaps) PURE;
- STDMETHOD(GetDisplayMode) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(GetFourCCCodes) (THIS_ LPDWORD lpNumCodes,
- LPDWORD lpCodes) PURE;
- STDMETHOD(GetGDISurface) (THIS_ LPDIRECTDRAWSURFACE *
- lplpGDIDDSurface) PURE;
- STDMETHOD(GetMonitorFrequency) (THIS_ LPDWORD lpdwFrequency) PURE;
- STDMETHOD(GetScanLine) (THIS_ LPDWORD lpdwScanLine) PURE;
- STDMETHOD(GetVerticalBlankStatus) (THIS_ BOOL * lpbIsInVB) PURE;
- STDMETHOD(Initialize) (THIS_ GUID * lpGUID) PURE;
- STDMETHOD(RestoreDisplayMode) (THIS) PURE;
- STDMETHOD(SetCooperativeLevel) (THIS_ HWND hWnd, DWORD dwFlags) PURE;
- STDMETHOD(SetDisplayMode) (THIS_ DWORD, DWORD, DWORD) PURE;
- STDMETHOD(WaitForVerticalBlank) (THIS_ DWORD dwFlags,
- HANDLE hEvent) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDraw_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDraw_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDraw_Release(p) ICOM_CALL_(Release,p,(p))
- /*** IDirectDraw methods ***/
-#define IDirectDraw_Compact(p) ICOM_CALL_(Compact,p,(p))
-#define IDirectDraw_CreateClipper(p,a,b,c) ICOM_CALL_(CreateClipper,p,(p,a,b,c))
-#define IDirectDraw_CreatePalette(p,a,b,c,d) ICOM_CALL_(CreatePalette,p,(p,a,b,c,d))
-#define IDirectDraw_CreateSurface(p,a,b,c) ICOM_CALL_(CreateSurface,p,(p,a,b,c))
-#define IDirectDraw_DuplicateSurface(p,a,b) ICOM_CALL_(DuplicateSurface,p,(p,a,b))
-#define IDirectDraw_EnumDisplayModes(p,a,b,c,d) ICOM_CALL_(EnumDisplayModes,p,(p,a,b,c,d))
-#define IDirectDraw_EnumSurfaces(p,a,b,c,d) ICOM_CALL_(EnumSurfaces,p,(p,a,b,c,d))
-#define IDirectDraw_FlipToGDISurface(p) ICOM_CALL_(FlipToGDISurface,p,(p))
-#define IDirectDraw_GetCaps(p,a,b) ICOM_CALL_(GetCaps,p,(p,a,b))
-#define IDirectDraw_GetDisplayMode(p,a) ICOM_CALL_(GetDisplayMode,p,(p,a))
-#define IDirectDraw_GetFourCCCodes(p,a,b) ICOM_CALL_(GetFourCCCodes,p,(p,a,b))
-#define IDirectDraw_GetGDISurface(p,a) ICOM_CALL_(GetGDISurface,p,(p,a))
-#define IDirectDraw_GetMonitorFrequency(p,a) ICOM_CALL_(GetMonitorFrequency,p,(p,a))
-#define IDirectDraw_GetScanLine(p,a) ICOM_CALL_(GetScanLine,p,(p,a))
-#define IDirectDraw_GetVerticalBlankStatus(p,a) ICOM_CALL_(GetVerticalBlankStatus,p,(p,a))
-#define IDirectDraw_Initialize(p,a) ICOM_CALL_(Initialize,p,(p,a))
-#define IDirectDraw_RestoreDisplayMode(p) ICOM_CALL_(RestoreDisplayMode,p,(p))
-#define IDirectDraw_SetCooperativeLevel(p,a,b) ICOM_CALL_(SetCooperativeLevel,p,(p,a,b))
-#define IDirectDraw_SetDisplayMode(p,a,b,c) ICOM_CALL_(SetDisplayMode,p,(p,a,b,c))
-#define IDirectDraw_WaitForVerticalBlank(p,a,b) ICOM_CALL_(WaitForVerticalBlank,p,(p,a,b))
-
-/* flags for Lock() */
-#define DDLOCK_SURFACEMEMORYPTR 0x00000000
-#define DDLOCK_WAIT 0x00000001
-#define DDLOCK_EVENT 0x00000002
-#define DDLOCK_READONLY 0x00000010
-#define DDLOCK_WRITEONLY 0x00000020
-#define DDLOCK_NOSYSLOCK 0x00000800
-
-/*****************************************************************************
- * IDirectDraw2 interface
- */
-/* Note: IDirectDraw2 cannot derive from IDirectDraw because the number of
- * arguments of SetDisplayMode has changed !
- */
-#undef INTERFACE
-#define INTERFACE IDirectDraw2
- DECLARE_INTERFACE_(IDirectDraw2, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(Compact) (THIS) PURE;
- STDMETHOD(CreateClipper) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWCLIPPER * lplpDDClipper,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(CreatePalette) (THIS_ DWORD dwFlags,
- LPPALETTEENTRY lpColorTable,
- LPDIRECTDRAWPALETTE * lplpDDPalette,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(CreateSurface) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc,
- LPDIRECTDRAWSURFACE2 * lplpDDSurface,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(DuplicateSurface) (THIS_ LPDIRECTDRAWSURFACE2 lpDDSurface,
- LPDIRECTDRAWSURFACE2 *
- lplpDupDDSurface) PURE;
- STDMETHOD(EnumDisplayModes) (THIS_ DWORD dwFlags,
- LPDDSURFACEDESC lpDDSurfaceDesc,
- LPVOID lpContext,
- LPDDENUMMODESCALLBACK lpEnumModesCallback)
- PURE;
- STDMETHOD(EnumSurfaces) (THIS_ DWORD dwFlags, LPDDSURFACEDESC lpDDSD,
- LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK
- lpEnumSurfacesCallback) PURE;
- STDMETHOD(FlipToGDISurface) (THIS) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDDCAPS lpDDDriverCaps,
- LPDDCAPS lpDDHELCaps) PURE;
- STDMETHOD(GetDisplayMode) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(GetFourCCCodes) (THIS_ LPDWORD lpNumCodes,
- LPDWORD lpCodes) PURE;
- STDMETHOD(GetGDISurface) (THIS_ LPDIRECTDRAWSURFACE2 *
- lplpGDIDDSurface) PURE;
- STDMETHOD(GetMonitorFrequency) (THIS_ LPDWORD lpdwFrequency) PURE;
- STDMETHOD(GetScanLine) (THIS_ LPDWORD lpdwScanLine) PURE;
- STDMETHOD(GetVerticalBlankStatus) (THIS_ BOOL * lpbIsInVB) PURE;
- STDMETHOD(Initialize) (THIS_ GUID * lpGUID) PURE;
- STDMETHOD(RestoreDisplayMode) (THIS) PURE;
- STDMETHOD(SetCooperativeLevel) (THIS_ HWND hWnd, DWORD dwFlags) PURE;
- STDMETHOD(SetDisplayMode) (THIS_ DWORD dwWidth, DWORD dwHeight,
- DWORD dwBPP, DWORD dwRefreshRate,
- DWORD dwFlags) PURE;
- STDMETHOD(WaitForVerticalBlank) (THIS_ DWORD dwFlags,
- HANDLE hEvent) PURE;
-
- STDMETHOD(GetAvailableVidMem) (THIS_ LPDDSCAPS lpDDCaps,
- LPDWORD lpdwTotal,
- LPDWORD lpdwFree) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDraw2_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDraw2_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDraw2_Release(p) ICOM_CALL_(Release,p,(p))
- /*** IDirectDraw methods ***/
-#define IDirectDraw2_Compact(p) ICOM_CALL_(Compact,p,(p))
-#define IDirectDraw2_CreateClipper(p,a,b,c) ICOM_CALL_(CreateClipper,p,(p,a,b,c))
-#define IDirectDraw2_CreatePalette(p,a,b,c,d) ICOM_CALL_(CreatePalette,p,(p,a,b,c,d))
-#define IDirectDraw2_CreateSurface(p,a,b,c) ICOM_CALL_(CreateSurface,p,(p,a,b,c))
-#define IDirectDraw2_DuplicateSurface(p,a,b) ICOM_CALL_(DuplicateSurface,p,(p,a,b))
-#define IDirectDraw2_EnumDisplayModes(p,a,b,c,d) ICOM_CALL_(EnumDisplayModes,p,(p,a,b,c,d))
-#define IDirectDraw2_EnumSurfaces(p,a,b,c,d) ICOM_CALL_(EnumSurfaces,p,(p,a,b,c,d))
-#define IDirectDraw2_FlipToGDISurface(p) ICOM_CALL_(FlipToGDISurface,p,(p))
-#define IDirectDraw2_GetCaps(p,a,b) ICOM_CALL_(GetCaps,p,(p,a,b))
-#define IDirectDraw2_GetDisplayMode(p,a) ICOM_CALL_(GetDisplayMode,p,(p,a))
-#define IDirectDraw2_GetFourCCCodes(p,a,b) ICOM_CALL_(GetFourCCCodes,p,(p,a,b))
-#define IDirectDraw2_GetGDISurface(p,a) ICOM_CALL_(GetGDISurface,p,(p,a))
-#define IDirectDraw2_GetMonitorFrequency(p,a) ICOM_CALL_(GetMonitorFrequency,p,(p,a))
-#define IDirectDraw2_GetScanLine(p,a) ICOM_CALL_(GetScanLine,p,(p,a))
-#define IDirectDraw2_GetVerticalBlankStatus(p,a) ICOM_CALL_(GetVerticalBlankStatus,p,(p,a))
-#define IDirectDraw2_Initialize(p,a) ICOM_CALL_(Initialize,p,(p,a))
-#define IDirectDraw2_RestoreDisplayMode(p) ICOM_CALL_(RestoreDisplayMode,p,(p))
-#define IDirectDraw2_SetCooperativeLevel(p,a,b) ICOM_CALL_(SetCooperativeLevel,p,(p,a,b))
-#define IDirectDraw2_SetDisplayMode(p,a,b,c,d,e) ICOM_CALL_(SetDisplayMode,p,(p,a,b,c,d,e))
-#define IDirectDraw2_WaitForVerticalBlank(p,a,b) ICOM_CALL_(WaitForVerticalBlank,p,(p,a,b))
-/*** IDirectDraw2 methods ***/
-#define IDirectDraw2_GetAvailableVidMem(p,a,b,c) ICOM_CALL_(GetAvailableVidMem,p,(p,a,b,c))
-
-/*****************************************************************************
- * IDirectDraw4 interface
- */
-#undef INTERFACE
-#define INTERFACE IDirectDraw4
- DECLARE_INTERFACE_(IDirectDraw4, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(Compact) (THIS) PURE;
- STDMETHOD(CreateClipper) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWCLIPPER * lplpDDClipper,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(CreatePalette) (THIS_ DWORD dwFlags,
- LPPALETTEENTRY lpColorTable,
- LPDIRECTDRAWPALETTE * lplpDDPalette,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(CreateSurface) (THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc,
- LPDIRECTDRAWSURFACE4 * lplpDDSurface,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(DuplicateSurface) (THIS_ LPDIRECTDRAWSURFACE4 lpDDSurface,
- LPDIRECTDRAWSURFACE4 *
- lplpDupDDSurface) PURE;
- STDMETHOD(EnumDisplayModes) (THIS_ DWORD dwFlags,
- LPDDSURFACEDESC2 lpDDSurfaceDesc,
- LPVOID lpContext,
- LPDDENUMMODESCALLBACK2 lpEnumModesCallback)
- PURE;
- STDMETHOD(EnumSurfaces) (THIS_ DWORD dwFlags, LPDDSURFACEDESC2 lpDDSD,
- LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK2
- lpEnumSurfacesCallback) PURE;
- STDMETHOD(FlipToGDISurface) (THIS) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDDCAPS lpDDDriverCaps,
- LPDDCAPS lpDDHELCaps) PURE;
- STDMETHOD(GetDisplayMode) (THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE;
- STDMETHOD(GetFourCCCodes) (THIS_ LPDWORD lpNumCodes,
- LPDWORD lpCodes) PURE;
- STDMETHOD(GetGDISurface) (THIS_ LPDIRECTDRAWSURFACE4 *
- lplpGDIDDSurface) PURE;
- STDMETHOD(GetMonitorFrequency) (THIS_ LPDWORD lpdwFrequency) PURE;
- STDMETHOD(GetScanLine) (THIS_ LPDWORD lpdwScanLine) PURE;
- STDMETHOD(GetVerticalBlankStatus) (THIS_ BOOL * lpbIsInVB) PURE;
- STDMETHOD(Initialize) (THIS_ GUID * lpGUID) PURE;
- STDMETHOD(RestoreDisplayMode) (THIS) PURE;
- STDMETHOD(SetCooperativeLevel) (THIS_ HWND hWnd, DWORD dwFlags) PURE;
- STDMETHOD(SetDisplayMode) (THIS_ DWORD dwWidth, DWORD dwHeight,
- DWORD dwBPP, DWORD dwRefreshRate,
- DWORD dwFlags) PURE;
- STDMETHOD(WaitForVerticalBlank) (THIS_ DWORD dwFlags,
- HANDLE hEvent) PURE;
-
- STDMETHOD(GetAvailableVidMem) (THIS_ LPDDSCAPS2 lpDDCaps,
- LPDWORD lpdwTotal,
- LPDWORD lpdwFree) PURE;
-
- STDMETHOD(GetSurfaceFromDC) (THIS_ HDC, LPDIRECTDRAWSURFACE4 *) PURE;
- STDMETHOD(RestoreAllSurfaces) (THIS) PURE;
- STDMETHOD(TestCooperativeLevel) (THIS) PURE;
- STDMETHOD(GetDeviceIdentifier) (THIS_ LPDDDEVICEIDENTIFIER, DWORD) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDraw4_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDraw4_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDraw4_Release(p) ICOM_CALL_(Release,p,(p))
- /*** IDirectDraw methods ***/
-#define IDirectDraw4_Compact(p) ICOM_CALL_(Compact,p,(p))
-#define IDirectDraw4_CreateClipper(p,a,b,c) ICOM_CALL_(CreateClipper,p,(p,a,b,c))
-#define IDirectDraw4_CreatePalette(p,a,b,c,d) ICOM_CALL_(CreatePalette,p,(p,a,b,c,d))
-#define IDirectDraw4_CreateSurface(p,a,b,c) ICOM_CALL_(CreateSurface,p,(p,a,b,c))
-#define IDirectDraw4_DuplicateSurface(p,a,b) ICOM_CALL_(DuplicateSurface,p,(p,a,b))
-#define IDirectDraw4_EnumDisplayModes(p,a,b,c,d) ICOM_CALL_(EnumDisplayModes,p,(p,a,b,c,d))
-#define IDirectDraw4_EnumSurfaces(p,a,b,c,d) ICOM_CALL_(EnumSurfaces,p,(p,a,b,c,d))
-#define IDirectDraw4_FlipToGDISurface(p) ICOM_CALL_(FlipToGDISurface,p,(p))
-#define IDirectDraw4_GetCaps(p,a,b) ICOM_CALL_(GetCaps,p,(p,a,b))
-#define IDirectDraw4_GetDisplayMode(p,a) ICOM_CALL_(GetDisplayMode,p,(p,a))
-#define IDirectDraw4_GetFourCCCodes(p,a,b) ICOM_CALL_(GetFourCCCodes,p,(p,a,b))
-#define IDirectDraw4_GetGDISurface(p,a) ICOM_CALL_(GetGDISurface,p,(p,a))
-#define IDirectDraw4_GetMonitorFrequency(p,a) ICOM_CALL_(GetMonitorFrequency,p,(p,a))
-#define IDirectDraw4_GetScanLine(p,a) ICOM_CALL_(GetScanLine,p,(p,a))
-#define IDirectDraw4_GetVerticalBlankStatus(p,a) ICOM_CALL_(GetVerticalBlankStatus,p,(p,a))
-#define IDirectDraw4_Initialize(p,a) ICOM_CALL_(Initialize,p,(p,a))
-#define IDirectDraw4_RestoreDisplayMode(p) ICOM_CALL_(RestoreDisplayMode,p,(p))
-#define IDirectDraw4_SetCooperativeLevel(p,a,b) ICOM_CALL_(SetCooperativeLevel,p,(p,a,b))
-#define IDirectDraw4_SetDisplayMode(p,a,b,c,d,e) ICOM_CALL_(SetDisplayMode,p,(p,a,b,c,d,e))
-#define IDirectDraw4_WaitForVerticalBlank(p,a,b) ICOM_CALL_(WaitForVerticalBlank,p,(p,a,b))
-/*** IDirectDraw2 methods ***/
-#define IDirectDraw4_GetAvailableVidMem(p,a,b,c) ICOM_CALL_(GetAvailableVidMem,p,(p,a,b,c))
-/*** IDirectDraw4 methods ***/
-#define IDirectDraw4_GetSurfaceFromDC(p,a,b) ICOM_CALL_(GetSurfaceFromDC,p,(p,a,b))
-#define IDirectDraw4_RestoreAllSurfaces(p) ICOM_CALL_(RestoreAllSurfaces,p,(p))
-#define IDirectDraw4_TestCooperativeLevel(p) ICOM_CALL_(TestCooperativeLevel,p,(p))
-#define IDirectDraw4_GetDeviceIdentifier(p,a,b) ICOM_CALL_(GetDeviceIdentifier,p,(p,a,b))
-
-/*****************************************************************************
- * IDirectDraw7 interface
- */
-/* Note: IDirectDraw7 cannot derive from IDirectDraw4; it is even documented
- * as not interchangeable with earlier DirectDraw interfaces.
- */
-#undef INTERFACE
-#define INTERFACE IDirectDraw7
- DECLARE_INTERFACE_(IDirectDraw7, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(Compact) (THIS) PURE;
- STDMETHOD(CreateClipper) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWCLIPPER * lplpDDClipper,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(CreatePalette) (THIS_ DWORD dwFlags,
- LPPALETTEENTRY lpColorTable,
- LPDIRECTDRAWPALETTE * lplpDDPalette,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(CreateSurface) (THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc,
- LPDIRECTDRAWSURFACE7 * lplpDDSurface,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(DuplicateSurface) (THIS_ LPDIRECTDRAWSURFACE7 lpDDSurface,
- LPDIRECTDRAWSURFACE7 *
- lplpDupDDSurface) PURE;
- STDMETHOD(EnumDisplayModes) (THIS_ DWORD dwFlags,
- LPDDSURFACEDESC2 lpDDSurfaceDesc,
- LPVOID lpContext,
- LPDDENUMMODESCALLBACK2 lpEnumModesCallback)
- PURE;
- STDMETHOD(EnumSurfaces) (THIS_ DWORD dwFlags, LPDDSURFACEDESC2 lpDDSD,
- LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK7
- lpEnumSurfacesCallback) PURE;
- STDMETHOD(FlipToGDISurface) (THIS) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDDCAPS lpDDDriverCaps,
- LPDDCAPS lpDDHELCaps) PURE;
- STDMETHOD(GetDisplayMode) (THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE;
- STDMETHOD(GetFourCCCodes) (THIS_ LPDWORD lpNumCodes,
- LPDWORD lpCodes) PURE;
- STDMETHOD(GetGDISurface) (THIS_ LPDIRECTDRAWSURFACE7 *
- lplpGDIDDSurface) PURE;
- STDMETHOD(GetMonitorFrequency) (THIS_ LPDWORD lpdwFrequency) PURE;
- STDMETHOD(GetScanLine) (THIS_ LPDWORD lpdwScanLine) PURE;
- STDMETHOD(GetVerticalBlankStatus) (THIS_ BOOL * lpbIsInVB) PURE;
- STDMETHOD(Initialize) (THIS_ GUID * lpGUID) PURE;
- STDMETHOD(RestoreDisplayMode) (THIS) PURE;
- STDMETHOD(SetCooperativeLevel) (THIS_ HWND hWnd, DWORD dwFlags) PURE;
- STDMETHOD(SetDisplayMode) (THIS_ DWORD dwWidth, DWORD dwHeight,
- DWORD dwBPP, DWORD dwRefreshRate,
- DWORD dwFlags) PURE;
- STDMETHOD(WaitForVerticalBlank) (THIS_ DWORD dwFlags,
- HANDLE hEvent) PURE;
-
- STDMETHOD(GetAvailableVidMem) (THIS_ LPDDSCAPS2 lpDDCaps,
- LPDWORD lpdwTotal,
- LPDWORD lpdwFree) PURE;
-
- STDMETHOD(GetSurfaceFromDC) (THIS_ HDC, LPDIRECTDRAWSURFACE7 *) PURE;
- STDMETHOD(RestoreAllSurfaces) (THIS) PURE;
- STDMETHOD(TestCooperativeLevel) (THIS) PURE;
- STDMETHOD(GetDeviceIdentifier) (THIS_ LPDDDEVICEIDENTIFIER2,
- DWORD) PURE;
-
- STDMETHOD(StartModeTest) (THIS_ LPSIZE, DWORD, DWORD) PURE;
- STDMETHOD(EvaluateMode) (THIS_ DWORD, DWORD *) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDraw7_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDraw7_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDraw7_Release(p) ICOM_CALL_(Release,p,(p))
- /*** IDirectDraw methods ***/
-#define IDirectDraw7_Compact(p) ICOM_CALL_(Compact,p,(p))
-#define IDirectDraw7_CreateClipper(p,a,b,c) ICOM_CALL_(CreateClipper,p,(p,a,b,c))
-#define IDirectDraw7_CreatePalette(p,a,b,c,d) ICOM_CALL_(CreatePalette,p,(p,a,b,c,d))
-#define IDirectDraw7_CreateSurface(p,a,b,c) ICOM_CALL_(CreateSurface,p,(p,a,b,c))
-#define IDirectDraw7_DuplicateSurface(p,a,b) ICOM_CALL_(DuplicateSurface,p,(p,a,b))
-#define IDirectDraw7_EnumDisplayModes(p,a,b,c,d) ICOM_CALL_(EnumDisplayModes,p,(p,a,b,c,d))
-#define IDirectDraw7_EnumSurfaces(p,a,b,c,d) ICOM_CALL_(EnumSurfaces,p,(p,a,b,c,d))
-#define IDirectDraw7_FlipToGDISurface(p) ICOM_CALL_(FlipToGDISurface,p,(p))
-#define IDirectDraw7_GetCaps(p,a,b) ICOM_CALL_(GetCaps,p,(p,a,b))
-#define IDirectDraw7_GetDisplayMode(p,a) ICOM_CALL_(GetDisplayMode,p,(p,a))
-#define IDirectDraw7_GetFourCCCodes(p,a,b) ICOM_CALL_(GetFourCCCodes,p,(p,a,b))
-#define IDirectDraw7_GetGDISurface(p,a) ICOM_CALL_(GetGDISurface,p,(p,a))
-#define IDirectDraw7_GetMonitorFrequency(p,a) ICOM_CALL_(GetMonitorFrequency,p,(p,a))
-#define IDirectDraw7_GetScanLine(p,a) ICOM_CALL_(GetScanLine,p,(p,a))
-#define IDirectDraw7_GetVerticalBlankStatus(p,a) ICOM_CALL_(GetVerticalBlankStatus,p,(p,a))
-#define IDirectDraw7_Initialize(p,a) ICOM_CALL_(Initialize,p,(p,a))
-#define IDirectDraw7_RestoreDisplayMode(p) ICOM_CALL_(RestoreDisplayMode,p,(p))
-#define IDirectDraw7_SetCooperativeLevel(p,a,b) ICOM_CALL_(SetCooperativeLevel,p,(p,a,b))
-#define IDirectDraw7_SetDisplayMode(p,a,b,c,d,e) ICOM_CALL_(SetDisplayMode,p,(p,a,b,c,d,e))
-#define IDirectDraw7_WaitForVerticalBlank(p,a,b) ICOM_CALL_(WaitForVerticalBlank,p,(p,a,b))
-/*** added in IDirectDraw2 ***/
-#define IDirectDraw7_GetAvailableVidMem(p,a,b,c) ICOM_CALL_(GetAvailableVidMem,p,(p,a,b,c))
-/*** added in IDirectDraw4 ***/
-#define IDirectDraw7_GetSurfaceFromDC(p,a,b) ICOM_CALL_(GetSurfaceFromDC,p,(p,a,b))
-#define IDirectDraw7_RestoreAllSurfaces(p) ICOM_CALL_(RestoreAllSurfaces,p,(p))
-#define IDirectDraw7_TestCooperativeLevel(p) ICOM_CALL_(TestCooperativeLevel,p,(p))
-#define IDirectDraw7_GetDeviceIdentifier(p,a,b) ICOM_CALL_(GetDeviceIdentifier,p,(p,a,b))
-/*** added in IDirectDraw 7 ***/
-#define IDirectDraw7_StartModeTest(p,a,b,c) ICOM_CALL_(StartModeTest,p,(p,a,b,c))
-#define IDirectDraw7_EvaluateMode(p,a,b) ICOM_CALL_(EvaluateMode,p,(p,a,b))
-
-/*****************************************************************************
- * IDirectDrawSurface interface
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurface
- DECLARE_INTERFACE_(IDirectDrawSurface, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(AddAttachedSurface) (THIS_ LPDIRECTDRAWSURFACE
- lpDDSAttachedSurface) PURE;
- STDMETHOD(AddOverlayDirtyRect) (THIS_ LPRECT lpRect) PURE;
- STDMETHOD(Blt) (THIS_ LPRECT lpDestRect,
- LPDIRECTDRAWSURFACE lpDDSrcSurface, LPRECT lpSrcRect,
- DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE;
- STDMETHOD(BltBatch) (THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount,
- DWORD dwFlags) PURE;
- STDMETHOD(BltFast) (THIS_ DWORD dwX, DWORD dwY,
- LPDIRECTDRAWSURFACE lpDDSrcSurface,
- LPRECT lpSrcRect, DWORD dwTrans) PURE;
- STDMETHOD(DeleteAttachedSurface) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE
- lpDDSAttachedSurface) PURE;
- STDMETHOD(EnumAttachedSurfaces) (THIS_ LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK
- lpEnumSurfacesCallback) PURE;
- STDMETHOD(EnumOverlayZOrders) (THIS_ DWORD dwFlags, LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK lpfnCallback)
- PURE;
- STDMETHOD(Flip) (THIS_ LPDIRECTDRAWSURFACE lpDDSurfaceTargetOverride,
- DWORD dwFlags) PURE;
- STDMETHOD(GetAttachedSurface) (THIS_ LPDDSCAPS lpDDSCaps,
- LPDIRECTDRAWSURFACE *
- lplpDDAttachedSurface) PURE;
- STDMETHOD(GetBltStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDDSCAPS lpDDSCaps) PURE;
- STDMETHOD(GetClipper) (THIS_ LPDIRECTDRAWCLIPPER * lplpDDClipper) PURE;
- STDMETHOD(GetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(GetDC) (THIS_ HDC * lphDC) PURE;
- STDMETHOD(GetFlipStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetOverlayPosition) (THIS_ LPLONG lplX, LPLONG lplY) PURE;
- STDMETHOD(GetPalette) (THIS_ LPDIRECTDRAWPALETTE * lplpDDPalette) PURE;
- STDMETHOD(GetPixelFormat) (THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE;
- STDMETHOD(GetSurfaceDesc) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD,
- LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(IsLost) (THIS) PURE;
- STDMETHOD(Lock) (THIS_ LPRECT lpDestRect,
- LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags,
- HANDLE hEvent) PURE;
- STDMETHOD(ReleaseDC) (THIS_ HDC hDC) PURE;
- STDMETHOD(Restore) (THIS) PURE;
- STDMETHOD(SetClipper) (THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE;
- STDMETHOD(SetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(SetOverlayPosition) (THIS_ LONG lX, LONG lY) PURE;
- STDMETHOD(SetPalette) (THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE;
- STDMETHOD(Unlock) (THIS_ LPVOID lpSurfaceData) PURE;
- STDMETHOD(UpdateOverlay) (THIS_ LPRECT lpSrcRect,
- LPDIRECTDRAWSURFACE lpDDDestSurface,
- LPRECT lpDestRect, DWORD dwFlags,
- LPDDOVERLAYFX lpDDOverlayFx) PURE;
- STDMETHOD(UpdateOverlayDisplay) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(UpdateOverlayZOrder) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE lpDDSReference)
- PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDrawSurface_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDrawSurface_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDrawSurface_Release(p) ICOM_CALL_(Release,p,(p))
- /*** IDirectDrawSurface methods ***/
-#define IDirectDrawSurface_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a))
-#define IDirectDrawSurface_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a))
-#define IDirectDrawSurface_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c))
-#define IDirectDrawSurface_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b))
-#define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c))
-#define IDirectDrawSurface_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b))
-#define IDirectDrawSurface_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a))
-#define IDirectDrawSurface_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a))
-#define IDirectDrawSurface_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a))
-#define IDirectDrawSurface_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b))
-#define IDirectDrawSurface_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a))
-#define IDirectDrawSurface_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a))
-#define IDirectDrawSurface_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a))
-#define IDirectDrawSurface_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a))
-#define IDirectDrawSurface_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a))
-#define IDirectDrawSurface_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b))
-#define IDirectDrawSurface_IsLost(p) ICOM_CALL_(IsLost,p,(p))
-#define IDirectDrawSurface_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d))
-#define IDirectDrawSurface_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a))
-#define IDirectDrawSurface_Restore(p) ICOM_CALL_(Restore,p,(p))
-#define IDirectDrawSurface_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a))
-#define IDirectDrawSurface_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b))
-#define IDirectDrawSurface_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a))
-#define IDirectDrawSurface_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a))
-#define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a))
-#define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b))
-
-/*****************************************************************************
- * IDirectDrawSurface2 interface
- */
-/* Cannot inherit from IDirectDrawSurface because the LPDIRECTDRAWSURFACE parameters
- * have been converted to LPDIRECTDRAWSURFACE2.
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurface2
- DECLARE_INTERFACE_(IDirectDrawSurface2, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(AddAttachedSurface) (THIS_ LPDIRECTDRAWSURFACE2
- lpDDSAttachedSurface) PURE;
- STDMETHOD(AddOverlayDirtyRect) (THIS_ LPRECT lpRect) PURE;
- STDMETHOD(Blt) (THIS_ LPRECT lpDestRect,
- LPDIRECTDRAWSURFACE2 lpDDSrcSurface, LPRECT lpSrcRect,
- DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE;
- STDMETHOD(BltBatch) (THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount,
- DWORD dwFlags) PURE;
- STDMETHOD(BltFast) (THIS_ DWORD dwX, DWORD dwY,
- LPDIRECTDRAWSURFACE2 lpDDSrcSurface,
- LPRECT lpSrcRect, DWORD dwTrans) PURE;
- STDMETHOD(DeleteAttachedSurface) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE2
- lpDDSAttachedSurface) PURE;
- STDMETHOD(EnumAttachedSurfaces) (THIS_ LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK
- lpEnumSurfacesCallback) PURE;
- STDMETHOD(EnumOverlayZOrders) (THIS_ DWORD dwFlags, LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK lpfnCallback)
- PURE;
- STDMETHOD(Flip) (THIS_ LPDIRECTDRAWSURFACE2 lpDDSurfaceTargetOverride,
- DWORD dwFlags) PURE;
- STDMETHOD(GetAttachedSurface) (THIS_ LPDDSCAPS lpDDSCaps,
- LPDIRECTDRAWSURFACE2 *
- lplpDDAttachedSurface) PURE;
- STDMETHOD(GetBltStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDDSCAPS lpDDSCaps) PURE;
- STDMETHOD(GetClipper) (THIS_ LPDIRECTDRAWCLIPPER * lplpDDClipper) PURE;
- STDMETHOD(GetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(GetDC) (THIS_ HDC * lphDC) PURE;
- STDMETHOD(GetFlipStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetOverlayPosition) (THIS_ LPLONG lplX, LPLONG lplY) PURE;
- STDMETHOD(GetPalette) (THIS_ LPDIRECTDRAWPALETTE * lplpDDPalette) PURE;
- STDMETHOD(GetPixelFormat) (THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE;
- STDMETHOD(GetSurfaceDesc) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD,
- LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(IsLost) (THIS) PURE;
- STDMETHOD(Lock) (THIS_ LPRECT lpDestRect,
- LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags,
- HANDLE hEvent) PURE;
- STDMETHOD(ReleaseDC) (THIS_ HDC hDC) PURE;
- STDMETHOD(Restore) (THIS) PURE;
- STDMETHOD(SetClipper) (THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE;
- STDMETHOD(SetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(SetOverlayPosition) (THIS_ LONG lX, LONG lY) PURE;
- STDMETHOD(SetPalette) (THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE;
- STDMETHOD(Unlock) (THIS_ LPVOID lpSurfaceData) PURE;
- STDMETHOD(UpdateOverlay) (THIS_ LPRECT lpSrcRect,
- LPDIRECTDRAWSURFACE2 lpDDDestSurface,
- LPRECT lpDestRect, DWORD dwFlags,
- LPDDOVERLAYFX lpDDOverlayFx) PURE;
- STDMETHOD(UpdateOverlayDisplay) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(UpdateOverlayZOrder) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE2 lpDDSReference)
- PURE;
- /* added in v2 */
- STDMETHOD(GetDDInterface) (THIS_ LPVOID * lplpDD) PURE;
- STDMETHOD(PageLock) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(PageUnlock) (THIS_ DWORD dwFlags) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDrawSurface2_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDrawSurface2_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDrawSurface2_Release(p) ICOM_CALL_(Release,p,(p))
-/*** IDirectDrawSurface methods (almost) ***/
-#define IDirectDrawSurface2_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a))
-#define IDirectDrawSurface2_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a))
-#define IDirectDrawSurface2_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface2_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c))
-#define IDirectDrawSurface2_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b))
-#define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c))
-#define IDirectDrawSurface2_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b))
-#define IDirectDrawSurface2_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface2_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a))
-#define IDirectDrawSurface2_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a))
-#define IDirectDrawSurface2_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a))
-#define IDirectDrawSurface2_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b))
-#define IDirectDrawSurface2_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a))
-#define IDirectDrawSurface2_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a))
-#define IDirectDrawSurface2_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface2_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a))
-#define IDirectDrawSurface2_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a))
-#define IDirectDrawSurface2_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a))
-#define IDirectDrawSurface2_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b))
-#define IDirectDrawSurface2_IsLost(p) ICOM_CALL_(IsLost,p,(p))
-#define IDirectDrawSurface2_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d))
-#define IDirectDrawSurface2_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a))
-#define IDirectDrawSurface2_Restore(p) ICOM_CALL_(Restore,p,(p))
-#define IDirectDrawSurface2_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a))
-#define IDirectDrawSurface2_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b))
-#define IDirectDrawSurface2_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface2_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a))
-#define IDirectDrawSurface2_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a))
-#define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface2_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a))
-#define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b))
-/*** IDirectDrawSurface2 methods ***/
-#define IDirectDrawSurface2_GetDDInterface(p,a) ICOM_CALL_(GetDDInterface,p,(p,a))
-#define IDirectDrawSurface2_PageLock(p,a) ICOM_CALL_(PageLock,p,(p,a))
-#define IDirectDrawSurface2_PageUnlock(p,a) ICOM_CALL_(PageUnlock,p,(p,a))
-
-/*****************************************************************************
- * IDirectDrawSurface3 interface
- */
-/* Cannot inherit from IDirectDrawSurface2 because the LPDIRECTDRAWSURFACE2 parameters
- * have been converted to LPDIRECTDRAWSURFACE3.
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurface3
- DECLARE_INTERFACE_(IDirectDrawSurface3, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(AddAttachedSurface) (THIS_ LPDIRECTDRAWSURFACE3
- lpDDSAttachedSurface) PURE;
- STDMETHOD(AddOverlayDirtyRect) (THIS_ LPRECT lpRect) PURE;
- STDMETHOD(Blt) (THIS_ LPRECT lpDestRect,
- LPDIRECTDRAWSURFACE3 lpDDSrcSurface, LPRECT lpSrcRect,
- DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE;
- STDMETHOD(BltBatch) (THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount,
- DWORD dwFlags) PURE;
- STDMETHOD(BltFast) (THIS_ DWORD dwX, DWORD dwY,
- LPDIRECTDRAWSURFACE3 lpDDSrcSurface,
- LPRECT lpSrcRect, DWORD dwTrans) PURE;
- STDMETHOD(DeleteAttachedSurface) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE3
- lpDDSAttachedSurface) PURE;
- STDMETHOD(EnumAttachedSurfaces) (THIS_ LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK
- lpEnumSurfacesCallback) PURE;
- STDMETHOD(EnumOverlayZOrders) (THIS_ DWORD dwFlags, LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK lpfnCallback)
- PURE;
- STDMETHOD(Flip) (THIS_ LPDIRECTDRAWSURFACE3 lpDDSurfaceTargetOverride,
- DWORD dwFlags) PURE;
- STDMETHOD(GetAttachedSurface) (THIS_ LPDDSCAPS lpDDSCaps,
- LPDIRECTDRAWSURFACE3 *
- lplpDDAttachedSurface) PURE;
- STDMETHOD(GetBltStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDDSCAPS lpDDSCaps) PURE;
- STDMETHOD(GetClipper) (THIS_ LPDIRECTDRAWCLIPPER * lplpDDClipper) PURE;
- STDMETHOD(GetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(GetDC) (THIS_ HDC * lphDC) PURE;
- STDMETHOD(GetFlipStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetOverlayPosition) (THIS_ LPLONG lplX, LPLONG lplY) PURE;
- STDMETHOD(GetPalette) (THIS_ LPDIRECTDRAWPALETTE * lplpDDPalette) PURE;
- STDMETHOD(GetPixelFormat) (THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE;
- STDMETHOD(GetSurfaceDesc) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD,
- LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(IsLost) (THIS) PURE;
- STDMETHOD(Lock) (THIS_ LPRECT lpDestRect,
- LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags,
- HANDLE hEvent) PURE;
- STDMETHOD(ReleaseDC) (THIS_ HDC hDC) PURE;
- STDMETHOD(Restore) (THIS) PURE;
- STDMETHOD(SetClipper) (THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE;
- STDMETHOD(SetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(SetOverlayPosition) (THIS_ LONG lX, LONG lY) PURE;
- STDMETHOD(SetPalette) (THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE;
- STDMETHOD(Unlock) (THIS_ LPVOID lpSurfaceData) PURE;
- STDMETHOD(UpdateOverlay) (THIS_ LPRECT lpSrcRect,
- LPDIRECTDRAWSURFACE3 lpDDDestSurface,
- LPRECT lpDestRect, DWORD dwFlags,
- LPDDOVERLAYFX lpDDOverlayFx) PURE;
- STDMETHOD(UpdateOverlayDisplay) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(UpdateOverlayZOrder) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE3 lpDDSReference)
- PURE;
- /* added in v2 */
- STDMETHOD(GetDDInterface) (THIS_ LPVOID * lplpDD) PURE;
- STDMETHOD(PageLock) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(PageUnlock) (THIS_ DWORD dwFlags) PURE;
- /* added in v3 */
- STDMETHOD(SetSurfaceDesc) (THIS_ LPDDSURFACEDESC lpDDSD,
- DWORD dwFlags) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDrawSurface3_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDrawSurface3_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDrawSurface3_Release(p) ICOM_CALL_(Release,p,(p))
-/*** IDirectDrawSurface methods (almost) ***/
-#define IDirectDrawSurface3_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a))
-#define IDirectDrawSurface3_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a))
-#define IDirectDrawSurface3_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface3_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c))
-#define IDirectDrawSurface3_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b))
-#define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c))
-#define IDirectDrawSurface3_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b))
-#define IDirectDrawSurface3_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface3_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a))
-#define IDirectDrawSurface3_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a))
-#define IDirectDrawSurface3_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a))
-#define IDirectDrawSurface3_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b))
-#define IDirectDrawSurface3_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a))
-#define IDirectDrawSurface3_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a))
-#define IDirectDrawSurface3_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface3_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a))
-#define IDirectDrawSurface3_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a))
-#define IDirectDrawSurface3_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a))
-#define IDirectDrawSurface3_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b))
-#define IDirectDrawSurface3_IsLost(p) ICOM_CALL_(IsLost,p,(p))
-#define IDirectDrawSurface3_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d))
-#define IDirectDrawSurface3_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a))
-#define IDirectDrawSurface3_Restore(p) ICOM_CALL_(Restore,p,(p))
-#define IDirectDrawSurface3_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a))
-#define IDirectDrawSurface3_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b))
-#define IDirectDrawSurface3_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface3_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a))
-#define IDirectDrawSurface3_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a))
-#define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface3_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a))
-#define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b))
-/*** IDirectDrawSurface2 methods ***/
-#define IDirectDrawSurface3_GetDDInterface(p,a) ICOM_CALL_(GetDDInterface,p,(p,a))
-#define IDirectDrawSurface3_PageLock(p,a) ICOM_CALL_(PageLock,p,(p,a))
-#define IDirectDrawSurface3_PageUnlock(p,a) ICOM_CALL_(PageUnlock,p,(p,a))
-/*** IDirectDrawSurface3 methods ***/
-#define IDirectDrawSurface3_SetSurfaceDesc(p,a,b) ICOM_CALL_(SetSurfaceDesc,p,(p,a,b))
-
-/*****************************************************************************
- * IDirectDrawSurface4 interface
- */
-/* Cannot inherit from IDirectDrawSurface2 because DDSCAPS changed to DDSCAPS2.
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurface4
- DECLARE_INTERFACE_(IDirectDrawSurface4, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(AddAttachedSurface) (THIS_ LPDIRECTDRAWSURFACE4
- lpDDSAttachedSurface) PURE;
- STDMETHOD(AddOverlayDirtyRect) (THIS_ LPRECT lpRect) PURE;
- STDMETHOD(Blt) (THIS_ LPRECT lpDestRect,
- LPDIRECTDRAWSURFACE4 lpDDSrcSurface, LPRECT lpSrcRect,
- DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE;
- STDMETHOD(BltBatch) (THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount,
- DWORD dwFlags) PURE;
- STDMETHOD(BltFast) (THIS_ DWORD dwX, DWORD dwY,
- LPDIRECTDRAWSURFACE4 lpDDSrcSurface,
- LPRECT lpSrcRect, DWORD dwTrans) PURE;
- STDMETHOD(DeleteAttachedSurface) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE4
- lpDDSAttachedSurface) PURE;
- STDMETHOD(EnumAttachedSurfaces) (THIS_ LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK
- lpEnumSurfacesCallback) PURE;
- STDMETHOD(EnumOverlayZOrders) (THIS_ DWORD dwFlags, LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK lpfnCallback)
- PURE;
- STDMETHOD(Flip) (THIS_ LPDIRECTDRAWSURFACE4 lpDDSurfaceTargetOverride,
- DWORD dwFlags) PURE;
- STDMETHOD(GetAttachedSurface) (THIS_ LPDDSCAPS2 lpDDSCaps,
- LPDIRECTDRAWSURFACE4 *
- lplpDDAttachedSurface) PURE;
- STDMETHOD(GetBltStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDDSCAPS2 lpDDSCaps) PURE;
- STDMETHOD(GetClipper) (THIS_ LPDIRECTDRAWCLIPPER * lplpDDClipper) PURE;
- STDMETHOD(GetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(GetDC) (THIS_ HDC * lphDC) PURE;
- STDMETHOD(GetFlipStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetOverlayPosition) (THIS_ LPLONG lplX, LPLONG lplY) PURE;
- STDMETHOD(GetPalette) (THIS_ LPDIRECTDRAWPALETTE * lplpDDPalette) PURE;
- STDMETHOD(GetPixelFormat) (THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE;
- STDMETHOD(GetSurfaceDesc) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD,
- LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(IsLost) (THIS) PURE;
- STDMETHOD(Lock) (THIS_ LPRECT lpDestRect,
- LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags,
- HANDLE hEvent) PURE;
- STDMETHOD(ReleaseDC) (THIS_ HDC hDC) PURE;
- STDMETHOD(Restore) (THIS) PURE;
- STDMETHOD(SetClipper) (THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE;
- STDMETHOD(SetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(SetOverlayPosition) (THIS_ LONG lX, LONG lY) PURE;
- STDMETHOD(SetPalette) (THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE;
- STDMETHOD(Unlock) (THIS_ LPRECT lpSurfaceData) PURE;
- STDMETHOD(UpdateOverlay) (THIS_ LPRECT lpSrcRect,
- LPDIRECTDRAWSURFACE4 lpDDDestSurface,
- LPRECT lpDestRect, DWORD dwFlags,
- LPDDOVERLAYFX lpDDOverlayFx) PURE;
- STDMETHOD(UpdateOverlayDisplay) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(UpdateOverlayZOrder) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE4 lpDDSReference)
- PURE;
- /* added in v2 */
- STDMETHOD(GetDDInterface) (THIS_ LPVOID * lplpDD) PURE;
- STDMETHOD(PageLock) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(PageUnlock) (THIS_ DWORD dwFlags) PURE;
- /* added in v3 */
- STDMETHOD(SetSurfaceDesc) (THIS_ LPDDSURFACEDESC lpDDSD,
- DWORD dwFlags) PURE;
- /* added in v4 */
- STDMETHOD(SetPrivateData) (THIS_ REFGUID, LPVOID, DWORD, DWORD) PURE;
- STDMETHOD(GetPrivateData) (THIS_ REFGUID, LPVOID, LPDWORD) PURE;
- STDMETHOD(FreePrivateData) (THIS_ REFGUID) PURE;
- STDMETHOD(GetUniquenessValue) (THIS_ LPDWORD) PURE;
- STDMETHOD(ChangeUniquenessValue) (THIS) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDrawSurface4_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDrawSurface4_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDrawSurface4_Release(p) ICOM_CALL_(Release,p,(p))
-/*** IDirectDrawSurface (almost) methods ***/
-#define IDirectDrawSurface4_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a))
-#define IDirectDrawSurface4_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a))
-#define IDirectDrawSurface4_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface4_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c))
-#define IDirectDrawSurface4_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface4_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface4_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b))
-#define IDirectDrawSurface4_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c))
-#define IDirectDrawSurface4_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b))
-#define IDirectDrawSurface4_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface4_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a))
-#define IDirectDrawSurface4_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a))
-#define IDirectDrawSurface4_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a))
-#define IDirectDrawSurface4_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b))
-#define IDirectDrawSurface4_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a))
-#define IDirectDrawSurface4_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a))
-#define IDirectDrawSurface4_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface4_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a))
-#define IDirectDrawSurface4_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a))
-#define IDirectDrawSurface4_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a))
-#define IDirectDrawSurface4_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b))
-#define IDirectDrawSurface4_IsLost(p) ICOM_CALL_(IsLost,p,(p))
-#define IDirectDrawSurface4_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d))
-#define IDirectDrawSurface4_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a))
-#define IDirectDrawSurface4_Restore(p) ICOM_CALL_(Restore,p,(p))
-#define IDirectDrawSurface4_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a))
-#define IDirectDrawSurface4_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b))
-#define IDirectDrawSurface4_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface4_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a))
-#define IDirectDrawSurface4_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a))
-#define IDirectDrawSurface4_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface4_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a))
-#define IDirectDrawSurface4_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b))
-/*** IDirectDrawSurface2 methods ***/
-#define IDirectDrawSurface4_GetDDInterface(p,a) ICOM_CALL_(GetDDInterface,p,(p,a))
-#define IDirectDrawSurface4_PageLock(p,a) ICOM_CALL_(PageLock,p,(p,a))
-#define IDirectDrawSurface4_PageUnlock(p,a) ICOM_CALL_(PageUnlock,p,(p,a))
-/*** IDirectDrawSurface3 methods ***/
-#define IDirectDrawSurface4_SetSurfaceDesc(p,a,b) ICOM_CALL_(SetSurfaceDesc,p,(p,a,b))
-/*** IDirectDrawSurface4 methods ***/
-#define IDirectDrawSurface4_SetPrivateData(p,a,b,c,d) ICOM_CALL_(SetPrivateData,p,(p,a,b,c,d))
-#define IDirectDrawSurface4_GetPrivateData(p,a,b,c) ICOM_CALL_(GetPrivateData,p,(p,a,b,c))
-#define IDirectDrawSurface4_FreePrivateData(p,a) ICOM_CALL_(FreePrivateData,p,(p,a))
-#define IDirectDrawSurface4_GetUniquenessValue(p,a) ICOM_CALL_(GetUniquenessValue,p,(p,a))
-#define IDirectDrawSurface4_ChangeUniquenessValue(p) ICOM_CALL_(ChangeUniquenessValue,p,(p))
-
-/*****************************************************************************
- * IDirectDrawSurface7 interface
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurface7
- DECLARE_INTERFACE_(IDirectDrawSurface7, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(AddAttachedSurface) (THIS_ LPDIRECTDRAWSURFACE7
- lpDDSAttachedSurface) PURE;
- STDMETHOD(AddOverlayDirtyRect) (THIS_ LPRECT lpRect) PURE;
- STDMETHOD(Blt) (THIS_ LPRECT lpDestRect,
- LPDIRECTDRAWSURFACE7 lpDDSrcSurface, LPRECT lpSrcRect,
- DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE;
- STDMETHOD(BltBatch) (THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount,
- DWORD dwFlags) PURE;
- STDMETHOD(BltFast) (THIS_ DWORD dwX, DWORD dwY,
- LPDIRECTDRAWSURFACE7 lpDDSrcSurface,
- LPRECT lpSrcRect, DWORD dwTrans) PURE;
- STDMETHOD(DeleteAttachedSurface) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE7
- lpDDSAttachedSurface) PURE;
- STDMETHOD(EnumAttachedSurfaces) (THIS_ LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK7
- lpEnumSurfacesCallback) PURE;
- STDMETHOD(EnumOverlayZOrders) (THIS_ DWORD dwFlags, LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK7 lpfnCallback)
- PURE;
- STDMETHOD(Flip) (THIS_ LPDIRECTDRAWSURFACE7 lpDDSurfaceTargetOverride,
- DWORD dwFlags) PURE;
- STDMETHOD(GetAttachedSurface) (THIS_ LPDDSCAPS2 lpDDSCaps,
- LPDIRECTDRAWSURFACE7 *
- lplpDDAttachedSurface) PURE;
- STDMETHOD(GetBltStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDDSCAPS2 lpDDSCaps) PURE;
- STDMETHOD(GetClipper) (THIS_ LPDIRECTDRAWCLIPPER * lplpDDClipper) PURE;
- STDMETHOD(GetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(GetDC) (THIS_ HDC * lphDC) PURE;
- STDMETHOD(GetFlipStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetOverlayPosition) (THIS_ LPLONG lplX, LPLONG lplY) PURE;
- STDMETHOD(GetPalette) (THIS_ LPDIRECTDRAWPALETTE * lplpDDPalette) PURE;
- STDMETHOD(GetPixelFormat) (THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE;
- STDMETHOD(GetSurfaceDesc) (THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE;
- STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD,
- LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE;
- STDMETHOD(IsLost) (THIS) PURE;
- STDMETHOD(Lock) (THIS_ LPRECT lpDestRect,
- LPDDSURFACEDESC2 lpDDSurfaceDesc, DWORD dwFlags,
- HANDLE hEvent) PURE;
- STDMETHOD(ReleaseDC) (THIS_ HDC hDC) PURE;
- STDMETHOD(Restore) (THIS) PURE;
- STDMETHOD(SetClipper) (THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE;
- STDMETHOD(SetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(SetOverlayPosition) (THIS_ LONG lX, LONG lY) PURE;
- STDMETHOD(SetPalette) (THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE;
- STDMETHOD(Unlock) (THIS_ LPRECT lpSurfaceData) PURE;
- STDMETHOD(UpdateOverlay) (THIS_ LPRECT lpSrcRect,
- LPDIRECTDRAWSURFACE7 lpDDDestSurface,
- LPRECT lpDestRect, DWORD dwFlags,
- LPDDOVERLAYFX lpDDOverlayFx) PURE;
- STDMETHOD(UpdateOverlayDisplay) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(UpdateOverlayZOrder) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE7 lpDDSReference)
- PURE;
- /* added in v2 */
- STDMETHOD(GetDDInterface) (THIS_ LPVOID * lplpDD) PURE;
- STDMETHOD(PageLock) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(PageUnlock) (THIS_ DWORD dwFlags) PURE;
- /* added in v3 */
- STDMETHOD(SetSurfaceDesc) (THIS_ LPDDSURFACEDESC2 lpDDSD,
- DWORD dwFlags) PURE;
- /* added in v4 */
- STDMETHOD(SetPrivateData) (THIS_ REFGUID, LPVOID, DWORD, DWORD) PURE;
- STDMETHOD(GetPrivateData) (THIS_ REFGUID, LPVOID, LPDWORD) PURE;
- STDMETHOD(FreePrivateData) (THIS_ REFGUID) PURE;
- STDMETHOD(GetUniquenessValue) (THIS_ LPDWORD) PURE;
- STDMETHOD(ChangeUniquenessValue) (THIS) PURE;
- /* added in v7 */
- STDMETHOD(SetPriority) (THIS_ DWORD prio) PURE;
- STDMETHOD(GetPriority) (THIS_ LPDWORD prio) PURE;
- STDMETHOD(SetLOD) (THIS_ DWORD lod) PURE;
- STDMETHOD(GetLOD) (THIS_ LPDWORD lod) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDrawSurface7_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDrawSurface7_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDrawSurface7_Release(p) ICOM_CALL_(Release,p,(p))
-/*** IDirectDrawSurface (almost) methods ***/
-#define IDirectDrawSurface7_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a))
-#define IDirectDrawSurface7_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a))
-#define IDirectDrawSurface7_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface7_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c))
-#define IDirectDrawSurface7_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface7_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface7_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b))
-#define IDirectDrawSurface7_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c))
-#define IDirectDrawSurface7_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b))
-#define IDirectDrawSurface7_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface7_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a))
-#define IDirectDrawSurface7_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a))
-#define IDirectDrawSurface7_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a))
-#define IDirectDrawSurface7_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b))
-#define IDirectDrawSurface7_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a))
-#define IDirectDrawSurface7_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a))
-#define IDirectDrawSurface7_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface7_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a))
-#define IDirectDrawSurface7_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a))
-#define IDirectDrawSurface7_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a))
-#define IDirectDrawSurface7_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b))
-#define IDirectDrawSurface7_IsLost(p) ICOM_CALL_(IsLost,p,(p))
-#define IDirectDrawSurface7_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d))
-#define IDirectDrawSurface7_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a))
-#define IDirectDrawSurface7_Restore(p) ICOM_CALL_(Restore,p,(p))
-#define IDirectDrawSurface7_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a))
-#define IDirectDrawSurface7_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b))
-#define IDirectDrawSurface7_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface7_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a))
-#define IDirectDrawSurface7_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a))
-#define IDirectDrawSurface7_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface7_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a))
-#define IDirectDrawSurface7_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b))
-/*** IDirectDrawSurface2 methods ***/
-#define IDirectDrawSurface7_GetDDInterface(p,a) ICOM_CALL_(GetDDInterface,p,(p,a))
-#define IDirectDrawSurface7_PageLock(p,a) ICOM_CALL_(PageLock,p,(p,a))
-#define IDirectDrawSurface7_PageUnlock(p,a) ICOM_CALL_(PageUnlock,p,(p,a))
-/*** IDirectDrawSurface3 methods ***/
-#define IDirectDrawSurface7_SetSurfaceDesc(p,a,b) ICOM_CALL_(SetSurfaceDesc,p,(p,a,b))
-/*** IDirectDrawSurface4 methods ***/
-#define IDirectDrawSurface7_SetPrivateData(p,a,b,c,d) ICOM_CALL_(SetPrivateData,p,(p,a,b,c,d))
-#define IDirectDrawSurface7_GetPrivateData(p,a,b,c) ICOM_CALL_(GetPrivateData,p,(p,a,b,c))
-#define IDirectDrawSurface7_FreePrivateData(p,a) ICOM_CALL_(FreePrivateData,p,(p,a))
-#define IDirectDrawSurface7_GetUniquenessValue(p,a) ICOM_CALL_(GetUniquenessValue,p,(p,a))
-#define IDirectDrawSurface7_ChangeUniquenessValue(p) ICOM_CALL_(ChangeUniquenessValue,p,(p))
-/*** IDirectDrawSurface7 methods ***/
-#define IDirectDrawSurface7_SetPriority(p,a) ICOM_CALL_(SetPriority,p,(p,a))
-#define IDirectDrawSurface7_GetPriority(p,a) ICOM_CALL_(GetPriority,p,(p,a))
-#define IDirectDrawSurface7_SetLOD(p,a) ICOM_CALL_(SetLOD,p,(p,a))
-#define IDirectDrawSurface7_GetLOD(p,a) ICOM_CALL_(GetLOD,p,(p,a))
-
-/*****************************************************************************
- * IDirectDrawColorControl interface
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawColorControl
- DECLARE_INTERFACE_(IDirectDrawColorControl, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(GetColorControls) (THIS_ LPDDCOLORCONTROL lpColorControl)
- PURE;
- STDMETHOD(SetColorControls) (THIS_ LPDDCOLORCONTROL lpColorControl)
- PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDrawColorControl_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDrawColorControl_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDrawColorControl_Release(p) ICOM_CALL_(Release,p,(p))
- /*** IDirectDrawColorControl methods ***/
-#define IDirectDrawColorControl_GetColorControls(p,a) ICOM_CALL_(GetColorControls,p,(p,a))
-#define IDirectDrawColorControl_SetColorControls(p,a) ICOM_CALL_(SetColorControls,p,(p,a))
-
-/*****************************************************************************
- * IDirectDrawGammaControl interface
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawGammaControl
- DECLARE_INTERFACE_(IDirectDrawGammaControl, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(GetGammaRamp) (THIS_ DWORD dwFlags,
- LPDDGAMMARAMP lpGammaRamp) PURE;
- STDMETHOD(SetGammaRamp) (THIS_ DWORD dwFlags,
- LPDDGAMMARAMP lpGammaRamp) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDrawGammaControl_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDrawGammaControl_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDrawGammaControl_Release(p) ICOM_CALL_(Release,p,(p))
- /*** IDirectDrawGammaControl methods ***/
-#define IDirectDrawGammaControl_GetGammaRamp(p,a,b) ICOM_CALL_(GetGammaRamp,p,(p,a,b))
-#define IDirectDrawGammaControl_SetGammaRamp(p,a,b) ICOM_CALL_(SetGammaRamp,p,(p,a,b))
-
- HRESULT WINAPI DirectDrawCreate(LPGUID, LPDIRECTDRAW *, LPUNKNOWN);
- HRESULT WINAPI DirectDrawCreateEx(LPGUID, LPVOID *, REFIID, LPUNKNOWN);
- HRESULT WINAPI DirectDrawEnumerateA(LPDDENUMCALLBACKA, LPVOID);
- HRESULT WINAPI DirectDrawEnumerateW(LPDDENUMCALLBACKW, LPVOID);
-
-#define DirectDrawEnumerate WINELIB_NAME_AW(DirectDrawEnumerate)
- HRESULT WINAPI DirectDrawCreateClipper(DWORD, LPDIRECTDRAWCLIPPER *,
- LPUNKNOWN);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* defined(__cplusplus) */
-
-#endif /* __XWIN_DDRAW_H */
diff --git a/xorg-server/hw/xwin/doflexbison.bat b/xorg-server/hw/xwin/doflexbison.bat
new file mode 100755
index 000000000..a29508bcb
--- /dev/null
+++ b/xorg-server/hw/xwin/doflexbison.bat
@@ -0,0 +1,18 @@
+@echo off
+setlocal
+
+cd "%~dp0"
+
+set M4=..\..\..\tools\mhmake\m4.exe
+set BISON_PKGDATADIR=../../../tools/mhmake/src/bisondata
+
+set path=..\..\..\tools\mhmake;%path%
+
+..\..\..\tools\mhmake\bison.exe -d -o%1/winprefsyacc.c winprefsyacc.y
+
+copy "..\..\..\tools\mhmake\flex++.exe" flex.exe
+flex.exe -i -o%1/winprefslex.c winprefslex.l
+del flex.exe
+
+endlocal
+
diff --git a/xorg-server/hw/xwin/glx/.gitignore b/xorg-server/hw/xwin/glx/.gitignore
index 062fd8573..70c5283ce 100644
--- a/xorg-server/hw/xwin/glx/.gitignore
+++ b/xorg-server/hw/xwin/glx/.gitignore
@@ -1,3 +1,3 @@
# ignore generated files
-generated_gl_wrappers.c
-generated_wgl_wrappers.c
+diag.txt
+
diff --git a/xorg-server/hw/xwin/glx/buildsimpledib.bat b/xorg-server/hw/xwin/glx/buildsimpledib.bat
new file mode 100755
index 000000000..1e1286bdd
--- /dev/null
+++ b/xorg-server/hw/xwin/glx/buildsimpledib.bat
@@ -0,0 +1 @@
+cl /Zi simpledib.c kernel32.lib user32.lib gdi32.lib opengl32.lib \ No newline at end of file
diff --git a/xorg-server/hw/xwin/glx/gen_gl_wrappers.py b/xorg-server/hw/xwin/glx/gen_gl_wrappers.py
index 2273589c9..e5fa57142 100644..100755
--- a/xorg-server/hw/xwin/glx/gen_gl_wrappers.py
+++ b/xorg-server/hw/xwin/glx/gen_gl_wrappers.py
@@ -1,60 +1,217 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
-# Comedy python script to generate cdecl to stdcall wrappers for GL functions
-#
-# This is designed to operate on OpenGL spec files from
-# http://www.opengl.org/registry/api/
-#
-#
-# Copyright (c) Jon TURNEY 2009
+# Copyright (c) 2013 The Khronos Group Inc.
#
# 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:
-#
-# The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
-# THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+# copy of this software and/or associated documentation files (the
+# "Materials"), to deal in the Materials without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Materials, and to
+# permit persons to whom the Materials are furnished to do so, subject to
+# the following conditions:
#
-# Except as contained in this notice, the name(s) of the above copyright
-# holders shall not be used in advertising or otherwise to promote the sale,
-# use or other dealings in this Software without prior written authorization.
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Materials.
#
-
-import sys
-import re
-import getopt
-
-dispatchheader = ''
-prefix = 'gl'
-preresolve = False
-staticwrappers = False
-
-opts, args = getopt.getopt(sys.argv[1:], "", ['spec=', 'typemap=', 'dispatch-header=', 'prefix=', 'preresolve', 'staticwrappers' ])
-
-for o,a in opts:
- if o == '--typemap' :
- typemapfile = a
- elif o == '--dispatch-header' :
- dispatchheader = a
- elif o == '--spec' :
- specfile = a
- elif o == '--prefix' :
- prefix = a
- elif o == '--preresolve' :
- preresolve = True
- elif o == '--staticwrappers' :
- staticwrappers = True
+# THE MATERIALS ARE 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
+# MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+import sys, time, pdb, string, cProfile
+from reg import *
+
+# debug - start header generation in debugger
+# dump - dump registry after loading
+# profile - enable Python profiling
+# protect - whether to use #ifndef protections
+# registry <filename> - use specified XML registry instead of gl.xml
+# timeit - time length of registry loading & header generation
+# validate - validate return & parameter group tags against <group>
+debug = False
+dump = False
+profile = False
+protect = True
+timeit = False
+validate= False
+# Default input / log files
+errFilename = None
+diagFilename = 'diag.txt'
+regFilename = 'gl.xml'
+outFilename = 'gen_gl_wrappers.c'
+dispatchheader=None
+prefix="gl"
+preresolve=False
+staticwrappers=False
+nodebugcallcounting=False
+
+WinGDI={key: 1 for key in [
+ "wglCopyContext"
+ ,"wglCreateContext"
+ ,"wglCreateLayerContext"
+ ,"wglDeleteContext"
+ ,"wglGetCurrentContext"
+ ,"wglGetCurrentDC"
+ ,"wglGetProcAddress"
+ ,"wglMakeCurrent"
+ ,"wglShareLists"
+ ,"wglUseFontBitmapsA"
+ ,"wglUseFontBitmapsW"
+ ,"wglUseFontBitmaps"
+ ,"SwapBuffers"
+ ,"wglUseFontOutlinesA"
+ ,"wglUseFontOutlinesW"
+ ,"wglUseFontOutlines"
+ ,"wglDescribeLayerPlane"
+ ,"wglSetLayerPaletteEntries"
+ ,"wglGetLayerPaletteEntries"
+ ,"wglRealizeLayerPalette"
+ ,"wglSwapLayerBuffers"
+ ,"wglSwapMultipleBuffers"
+ ,"ChoosePixelFormat"
+ ,"DescribePixelFormat"
+ ,"GetEnhMetaFilePixelFormat"
+ ,"GetPixelFormat"
+ ,"SetPixelFormat"
+]}
+
+if __name__ == '__main__':
+ i = 1
+ while (i < len(sys.argv)):
+ arg = sys.argv[i]
+ i = i + 1
+ if (arg == '-debug'):
+ print('Enabling debug (-debug)', file=sys.stderr)
+ debug = True
+ elif (arg == '-dump'):
+ print('Enabling dump (-dump)', file=sys.stderr)
+ dump = True
+ elif (arg == '-noprotect'):
+ print('Disabling inclusion protection in output headers', file=sys.stderr)
+ protect = False
+ elif (arg == '-profile'):
+ print('Enabling profiling (-profile)', file=sys.stderr)
+ profile = True
+ elif (arg == '-registry'):
+ regFilename = sys.argv[i]
+ i = i+1
+ print('Using registry ', regFilename, file=sys.stderr)
+ elif (arg == '-time'):
+ print('Enabling timing (-time)', file=sys.stderr)
+ timeit = True
+ elif (arg == '-validate'):
+ print('Enabling group validation (-validate)', file=sys.stderr)
+ validate = True
+ elif (arg == '-outfile'):
+ outFilename = sys.argv[i]
+ i = i+1
+ elif (arg == '-preresolve'):
+ preresolve=True
+ elif (arg == '-staticwrappers'):
+ staticwrappers=True
+ elif (arg == '-dispatchheader'):
+ dispatchheader = sys.argv[i]
+ i = i+1
+ elif (arg == '-prefix'):
+ prefix = sys.argv[i]
+ i = i+1
+ elif (arg == '-nodbgcount'):
+ nodebugcallcounting = True
+ elif (arg[0:1] == '-'):
+ print('Unrecognized argument:', arg, file=sys.stderr)
+ exit(1)
+print('Generating ', outFilename, file=sys.stderr)
+
+# Simple timer functions
+startTime = None
+def startTimer():
+ global startTime
+ startTime = time.clock()
+def endTimer(msg):
+ global startTime
+ endTime = time.clock()
+ if (timeit):
+ print(msg, endTime - startTime)
+ startTime = None
+
+# Load & parse registry
+reg = Registry()
+
+startTimer()
+tree = etree.parse(regFilename)
+endTimer('Time to make ElementTree =')
+
+startTimer()
+reg.loadElementTree(tree)
+endTimer('Time to parse ElementTree =')
+
+if (validate):
+ reg.validateGroups()
+
+if (dump):
+ print('***************************************')
+ print('Performing Registry dump to regdump.txt')
+ print('***************************************')
+ reg.dumpReg(filehandle = open('regdump.txt','w'))
+
+# Turn a list of strings into a regexp string matching exactly those strings
+def makeREstring(list):
+ return '^(' + '|'.join(list) + ')$'
+
+# These are "mandatory" OpenGL ES 1 extensions, to
+# be included in the core GLES/gl.h header.
+es1CoreList = [
+ 'GL_OES_read_format',
+ 'GL_OES_compressed_paletted_texture',
+ 'GL_OES_point_size_array',
+ 'GL_OES_point_sprite'
+]
+
+# Descriptive names for various regexp patterns used to select
+# versions and extensions
+
+allVersions = allExtensions = '.*'
+noVersions = noExtensions = None
+gl12andLaterPat = '1\.[2-9]|[234]\.[0-9]'
+gles2onlyPat = '2\.[0-9]'
+gles2and3Pat = '[23]\.[0-9]'
+es1CorePat = makeREstring(es1CoreList)
+# Extensions in old glcorearb.h but not yet tagged accordingly in gl.xml
+glCoreARBPat = None
+glx13andLaterPat = '1\.[3-9]'
+
+# Defaults for generating re-inclusion protection wrappers (or not)
+protectFile = protect
+protectFeature = protect
+protectProto = protect
+
+genOpts = CGeneratorOptions(
+ apiname = prefix,
+ profile = 'compatibility',
+ versions = allVersions,
+ emitversions = allVersions,
+ defaultExtensions = prefix, # Default extensions for GL
+# addExtensions = None,
+# removeExtensions = None,
+# prefixText = prefixStrings + glExtPlatformStrings + glextVersionStrings,
+# genFuncPointers = True,
+# protectFile = protectFile,
+# protectFeature = protectFeature,
+# protectProto = protectProto,
+# apicall = 'GLAPI ',
+# apientry = 'APIENTRY ',
+# apientryp = 'APIENTRYP '),
+ )
+
+# create error/warning & diagnostic files
+if (errFilename):
+ errWarn = open(errFilename,'w')
+else:
+ errWarn = sys.stderr
+diag = open(diagFilename, 'w')
#
# look for all the SET_ macros in dispatch.h, this is the set of functions
@@ -64,262 +221,197 @@ for o,a in opts:
dispatch = {}
if dispatchheader :
- fh = open(dispatchheader)
- dispatchh = fh.readlines()
-
- dispatch_regex = re.compile(r'^SET_(\S*)\(')
-
- for line in dispatchh :
- line = line.strip()
- m1 = dispatch_regex.search(line)
-
- if m1 :
- dispatch[m1.group(1)] = 1
-
- del dispatch['by_offset']
-
-#
-# read the typemap .tm file
-#
-
-typemap = {}
-
-fh = open(typemapfile)
-tm = fh.readlines()
-
-typemap_regex = re.compile(r'#define\sSET_(\S*)\(')
-
-for line in tm :
- # ignore everything after a '#' as a comment
- hash = line.find('#')
- if hash != -1 :
- line = line[:hash-1]
-
- # ignore blank lines
- if line.startswith('#') or len(line) == 0 :
- continue
-
- l = line.split(',')
- typemap[l[0]] = l[3].strip()
-
-# interestingly, * is not a C type
-if typemap['void'] == '*' :
- typemap['void'] = 'void'
-
-#
-# crudely parse the .spec file
-#
-
-r1 = re.compile(r'\t(\S*)\s+(\S*.*)')
-r2 = re.compile(r'(.*)\((.*)\)')
-r3 = re.compile(r'glWindowPos.*MESA')
-r4 = re.compile(r'gl.*Program(s|)NV')
-r5 = re.compile(r'glGetVertexAttribfvNV')
-
-wrappers = {}
-
-fh = open(specfile)
-glspec = fh.readlines()
-param_count = 0
-
-for line in glspec :
- line = line.rstrip()
-
- # ignore everything after a '#' as a comment
- hash = line.find('#')
- if hash != -1 :
- line = line[:hash-1]
-
- # ignore blank lines
- if line.startswith('#') or len(line) == 0 :
- continue
-
- # lines containing ':' aren't intersting to us
- if line.count(':') != 0 :
- continue
-
- # attributes of each function follow the name, indented by a tab
- if not line.startswith('\t') :
- m1 = r2.search(line)
- if m1 :
- function = m1.group(1)
- arglist_use = m1.group(2)
- wrappers[function] = {}
-
- # ensure formal parameter names don't collide with reserved names or shadow global declarations
- arglist_use = ',' .join([i.rstrip() + '_' for i in arglist_use.split(",")])
-
- wrappers[function]['arglist_use'] = arglist_use
- param_count = 0
- else :
- m1 = r1.search(line)
- if m1 :
- attribute = m1.group(1)
- value = m1.group(2)
-
- # make param attributes unique and ordered
- if attribute == 'param' :
- attribute = 'param' + '%02d' % param_count
- param_count += 1
-
- wrappers[function][attribute] = value
-
-#
-# now emit code
-#
-
-print '/* Automatically generated by ' + sys.argv[0] + ' DO NOT EDIT */'
-print '/* from ' + specfile + ' and typemap ' + typemapfile + ' */'
-print ''
-
-#
-# if required, emit code for non-lazy function resolving
-#
-
-if preresolve :
- for w in sorted(wrappers.keys()) :
- funcname = prefix + w
- print 'RESOLVE_DECL(PFN' + funcname.upper() + 'PROC);'
-
- print ''
- print 'void ' + prefix + 'ResolveExtensionProcs(void)'
- print '{'
-
- for w in sorted(wrappers.keys()) :
- funcname = prefix + w
- print ' PRERESOLVE(PFN' + funcname.upper() + 'PROC, "' + funcname + '");'
-
- print '}\n'
-
-#
-# now emit the wrappers
-# for GL 1.0 and 1.1 functions, generate stdcall wrappers which call the function directly
-# for GL 1.2+ functions, generate wrappers which use wglGetProcAddress()
-#
-
-for w in sorted(wrappers.keys()) :
-
- funcname = prefix + w
- returntype = wrappers[w]['return']
- if returntype != 'void' :
- returntype = typemap[returntype]
-
+ fh = open(dispatchheader)
+ dispatchh = fh.readlines()
+
+ dispatch_regex = re.compile(r'(?:#define|static\s+INLINE\s+void)\s+SET_([^\()]+)\(')
+
+ for line in dispatchh :
+ line = line.strip()
+ m1 = dispatch_regex.search(line)
+
+ if m1 :
+ dispatch[prefix+m1.group(1)] = 1
+
+ del dispatch['glby_offset']
+
+class PreResolveOutputGenerator(OutputGenerator):
+ def __init__(self,
+ errFile = sys.stderr,
+ warnFile = sys.stderr,
+ diagFile = sys.stdout):
+ OutputGenerator.__init__(self, errFile, warnFile, diagFile)
+ self.wrappers={}
+ def beginFile(self, genOpts):
+ pass
+ def endFile(self):
+ self.outFile.write('\nvoid ' + prefix + 'ResolveExtensionProcs(void)\n{\n')
+ for funcname in self.wrappers.keys():
+ self.outFile.write( ' PRERESOLVE(PFN' + funcname.upper() + 'PROC, "' + funcname + '");\n')
+ self.outFile.write('}\n\n')
+ def beginFeature(self, interface, emit):
+ OutputGenerator.beginFeature(self, interface, emit)
+ self.OldVersion = self.featureName.startswith('GL_VERSION_1_0') or self.featureName.startswith('GL_VERSION_1_1')
+ def endFeature(self):
+ OutputGenerator.endFeature(self)
+ def genType(self, typeinfo, name):
+ OutputGenerator.genType(self, typeinfo, name)
+ def genEnum(self, enuminfo, name):
+ OutputGenerator.genEnum(self, enuminfo, name)
+ def genCmd(self, cmd, name):
+ OutputGenerator.genCmd(self, cmd, name)
+ if name in WinGDI:
+ return
+
+ self.outFile.write('RESOLVE_DECL(PFN' + name.upper() + 'PROC);\n')
+ self.wrappers[name]=1
+
+class MyOutputGenerator(OutputGenerator):
+ def __init__(self,
+ errFile = sys.stderr,
+ warnFile = sys.stderr,
+ diagFile = sys.stdout):
+ OutputGenerator.__init__(self, errFile, warnFile, diagFile)
+ self.wrappers={}
+ def beginFile(self, genOpts):
+ pass
+ def endFile(self):
+ pass
+ def beginFeature(self, interface, emit):
+ OutputGenerator.beginFeature(self, interface, emit)
+ self.OldVersion = self.featureName.startswith('GL_VERSION_1_0') or self.featureName.startswith('GL_VERSION_1_1')
+ def endFeature(self):
+ OutputGenerator.endFeature(self)
+ def genType(self, typeinfo, name):
+ OutputGenerator.genType(self, typeinfo, name)
+ def genEnum(self, enuminfo, name):
+ OutputGenerator.genEnum(self, enuminfo, name)
+ def genCmd(self, cmd, name):
+ OutputGenerator.genCmd(self, cmd, name)
# Avoid generating wrappers which aren't referenced by the dispatch table
- if dispatchheader and not dispatch.has_key(w) :
- print '/* No wrapper for ' + funcname + ', not in dispatch table */'
- continue
-
- # manufacture arglist
- # if no param attributes were found, it should be 'void'
- al = []
- for k in sorted(wrappers[w].keys()) :
- if k.startswith('param') :
- l = wrappers[w][k].split()
-
- # ensure formal parameter names don't collide with reserved names or shadow global declarations
- l[0] = l[0] + '_'
-
- if l[2] == 'in' :
- if l[3] == 'array' :
- arg = 'const ' + typemap[l[1]] + ' *' + l[0]
- else :
- arg = typemap[l[1]] + ' ' + l[0]
- elif l[2] == 'out' :
- arg = typemap[l[1]] + ' *' + l[0]
-
- al.append(arg)
-
- if len(al) == 0 :
- arglist = 'void'
+ if dispatchheader and not name in dispatch :
+ self.outFile.write('/* No wrapper for ' + name + ', not in dispatch table */\n')
+ return
+
+ if name in WinGDI:
+ return
+
+ self.wrappers[name]=1
+
+ proto=noneStr(cmd.elem.find('proto'))
+ rettype=noneStr(proto.text)
+ if rettype.lower()!="void ":
+ plist = ([t for t in proto.itertext()])
+ rettype = ''.join(plist[:-1])
+ #ptype=proto.find("ptype")
+ #if ptype!=None:
+ # rettype = (noneStr(ptype.text))+" "
+ if staticwrappers: self.outFile.write("static ")
+ self.outFile.write("%s__stdcall %sWrapper("%(rettype, name))
+ params = cmd.elem.findall('param')
+ plist=[]
+ for param in params:
+ paramlist = ([t for t in param.itertext()])
+ paramtype = ''.join(paramlist[:-1])
+ paramname = paramlist[-1]
+ plist.append((paramtype, paramname))
+ Comma=""
+ if len(plist):
+ for ptype, pname in plist:
+ self.outFile.write("%s%s%s_"%(Comma, ptype, pname))
+ Comma=", "
else:
- arglist = ', '.join(al)
-
- if wrappers[w]['category'].startswith('VERSION_1_0') or wrappers[w]['category'].startswith('VERSION_1_1') :
- if staticwrappers :
- print 'static',
- print returntype + ' ' + funcname + 'Wrapper(' + arglist + ')'
- print '{'
- print ' if (glxWinDebugSettings.enable' + prefix.upper() + 'callTrace) ErrorF("'+ funcname + '\\n");'
- print ' glWinDirectProcCalls++;'
- if returntype.lower() == 'void' :
- print ' ' + funcname + '(',
- else :
- print ' /* returntype was ' + returntype.lower() + '*/'
- print ' return ' + funcname + '(',
-
- if arglist != 'void' :
- print wrappers[w]['arglist_use'],
-
- print ');'
- print "}\n"
+ self.outFile.write("void")
+ if self.OldVersion:
+ if nodebugcallcounting:
+ self.outFile.write(")\n{\n")
+ else:
+ self.outFile.write( """)
+{
+#ifdef _DEBUG
+ if (glxWinDebugSettings.enable%scallTrace) ErrorF("%s\\n");
+ glWinDirectProcCalls++;
+#endif
+"""%(prefix.upper(), name))
+ if rettype.lower()=="void ":
+ self.outFile.write(" %s( "%(name))
+ else:
+ self.outFile.write(" return %s( "%(name))
+ Comma=""
+ for ptype, pname in plist:
+ self.outFile.write("%s%s_"%(Comma, pname))
+ Comma=", "
else:
- if staticwrappers :
- print 'static',
- print returntype + ' ' + funcname + 'Wrapper(' + arglist + ')'
- print '{'
-
- stringname = funcname
-
-#
-# special case: Windows OpenGL implementations are far more likely to have GL_ARB_window_pos than GL_MESA_window_pos,
-# so arrange for the wrapper to use the ARB strings to find functions...
-#
-
- m2 = r3.search(funcname)
- if m2 :
- stringname = stringname.replace('MESA','ARB')
-
-#
-# special case: likewise, implementations are more likely to have GL_ARB_vertex_program than GL_NV_vertex_program,
-# especially if they are not NV implementations, so arrange for the wrapper to use ARB strings to find functions
-#
+ if rettype.lower()=="void ":
+ self.outFile.write(""")
+{
+ RESOLVE(PFN%sPROC, "%s");"""%(name.upper(), name))
+ if not nodebugcallcounting: self.outFile.write("""
+#ifdef _DEBUG
+ if (glxWinDebugSettings.enable%scallTrace) ErrorF("%s\\n");
+#endif"""%(prefix.upper(), name))
+ self.outFile.write("""
+ RESOLVED_PROC(PFN%sPROC)( """%(name.upper()))
+ else:
+ self.outFile.write(""")
+{
+ RESOLVE_RET(PFN%sPROC, "%s", FALSE);"""%(name.upper(), name))
+ if not nodebugcallcounting: self.outFile.write("""
+#ifdef _DEBUG
+ if (glxWinDebugSettings.enable%scallTrace) ErrorF("%s\\n");
+#endif"""%(prefix.upper(), name))
+ self.outFile.write("""
+ return RESOLVED_PROC(PFN%sPROC)( """%(name.upper()))
+ Comma=""
+ for ptype, pname in plist:
+ self.outFile.write("%s%s_"%(Comma, pname))
+ Comma=", "
+ self.outFile.write(" );\n}\n\n")
+
+def genHeaders():
+ startTimer()
+ outFile = open(outFilename,"w")
+ if preresolve:
+ gen = PreResolveOutputGenerator(errFile=errWarn,
+ warnFile=errWarn,
+ diagFile=diag)
+ gen.outFile=outFile
+ reg.setGenerator(gen)
+ reg.apiGen(genOpts)
+ gen = MyOutputGenerator(errFile=errWarn,
+ warnFile=errWarn,
+ diagFile=diag)
+ gen.outFile=outFile
+ reg.setGenerator(gen)
+ reg.apiGen(genOpts)
+
+ # generate function to setup the dispatch table, which sets each
+ # dispatch table entry to point to it's wrapper function
+ # (assuming we were able to make one)
+
+ if dispatchheader :
+ outFile.write( 'void glWinSetupDispatchTable(void)\n')
+ outFile.write( '{\n')
+ outFile.write( ' struct _glapi_table *disp = _glapi_get_dispatch();\n')
- m3 = r4.search(funcname)
- if m3 :
- stringname = stringname.replace('NV','ARB')
- m4 = r5.search(funcname)
- if m4 :
- stringname = stringname.replace('NV','ARB')
-
- pfntypename = 'PFN' + funcname.upper() + 'PROC'
-
- if returntype.lower() == 'void' :
- print ' RESOLVE(' + pfntypename + ', "' + stringname + '");'
- print ' if (glxWinDebugSettings.enable' + prefix.upper() + 'callTrace) ErrorF("'+ funcname + '\\n");'
- print ' RESOLVED_PROC(' + pfntypename + ')(',
+ for d in sorted(dispatch.keys()) :
+ if d in gen.wrappers :
+ outFile.write(' SET_'+ d[len(prefix):] + '(disp, (void *)' + d + 'Wrapper);\n')
else :
- print ' RESOLVE_RET(' + pfntypename + ', "' + stringname + '", FALSE);'
- print ' if (glxWinDebugSettings.enable' + prefix.upper() + 'callTrace) ErrorF("'+ funcname + '\\n");'
- print ' return RESOLVED_PROC(' + pfntypename + ')(',
-
- if arglist != 'void' :
- print wrappers[w]['arglist_use'],
+ outFile.write('#pragma message("No wrapper for ' + d + ' !")\n')
- print ');'
- print "}\n"
+ outFile.write('}\n')
-# generate function to setup the dispatch table, which sets each
-# dispatch table entry to point to it's wrapper function
-# (assuming we were able to make one)
-if dispatchheader :
- print 'void glWinSetupDispatchTable(void)'
- print '{'
- print ' static struct _glapi_table *disp = NULL;'
- print ''
- print ' if (!disp)'
- print ' {'
- print ' disp = calloc(sizeof(void *), _glapi_get_dispatch_table_size());'
- print ' assert(disp);'
-
- for d in sorted(dispatch.keys()) :
- if wrappers.has_key(d) :
- print ' SET_'+ d + '(disp, (void *)' + prefix + d + 'Wrapper);'
- else :
- print '#warning No wrapper for ' + prefix + d + ' !'
+ outFile.close()
- print ' }'
- print ''
- print ' _glapi_set_dispatch(disp);'
- print '}'
+if (debug):
+ pdb.run('genHeaders()')
+elif (profile):
+ import cProfile, pstats
+ cProfile.run('genHeaders()', 'profile.txt')
+ p = pstats.Stats('profile.txt')
+ p.strip_dirs().sort_stats('time').print_stats(50)
+else:
+ genHeaders()
diff --git a/xorg-server/hw/xwin/glx/genheaders.py b/xorg-server/hw/xwin/glx/genheaders.py
new file mode 100644
index 000000000..f1d130e4c
--- /dev/null
+++ b/xorg-server/hw/xwin/glx/genheaders.py
@@ -0,0 +1,552 @@
+#!/usr/bin/env python
+#
+# Copyright (c) 2013 The Khronos Group Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and/or associated documentation files (the
+# "Materials"), to deal in the Materials without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Materials, and to
+# permit persons to whom the Materials are furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Materials.
+#
+# THE MATERIALS ARE 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
+# MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+import sys, time, pdb, string, cProfile
+from reg import *
+
+# debug - start header generation in debugger
+# dump - dump registry after loading
+# profile - enable Python profiling
+# protect - whether to use #ifndef protections
+# registry <filename> - use specified XML registry instead of gl.xml
+# target - string name of target header, or all targets if None
+# timeit - time length of registry loading & header generation
+# validate - validate return & parameter group tags against <group>
+debug = False
+dump = False
+profile = False
+protect = True
+target = None
+timeit = False
+validate= False
+# Default input / log files
+errFilename = None
+diagFilename = 'diag.txt'
+regFilename = 'gl.xml'
+
+if __name__ == '__main__':
+ i = 1
+ while (i < len(sys.argv)):
+ arg = sys.argv[i]
+ i = i + 1
+ if (arg == '-debug'):
+ write('Enabling debug (-debug)', file=sys.stderr)
+ debug = True
+ elif (arg == '-dump'):
+ write('Enabling dump (-dump)', file=sys.stderr)
+ dump = True
+ elif (arg == '-noprotect'):
+ write('Disabling inclusion protection in output headers', file=sys.stderr)
+ protect = False
+ elif (arg == '-profile'):
+ write('Enabling profiling (-profile)', file=sys.stderr)
+ profile = True
+ elif (arg == '-registry'):
+ regFilename = sys.argv[i]
+ i = i+1
+ write('Using registry ', regFilename, file=sys.stderr)
+ elif (arg == '-time'):
+ write('Enabling timing (-time)', file=sys.stderr)
+ timeit = True
+ elif (arg == '-validate'):
+ write('Enabling group validation (-validate)', file=sys.stderr)
+ validate = True
+ elif (arg[0:1] == '-'):
+ write('Unrecognized argument:', arg, file=sys.stderr)
+ exit(1)
+ else:
+ target = arg
+ write('Using target', target, file=sys.stderr)
+
+# Simple timer functions
+startTime = None
+def startTimer():
+ global startTime
+ startTime = time.clock()
+def endTimer(msg):
+ global startTime
+ endTime = time.clock()
+ if (timeit):
+ write(msg, endTime - startTime)
+ startTime = None
+
+# Load & parse registry
+reg = Registry()
+
+startTimer()
+tree = etree.parse(regFilename)
+endTimer('Time to make ElementTree =')
+
+startTimer()
+reg.loadElementTree(tree)
+endTimer('Time to parse ElementTree =')
+
+if (validate):
+ reg.validateGroups()
+
+if (dump):
+ write('***************************************')
+ write('Performing Registry dump to regdump.txt')
+ write('***************************************')
+ reg.dumpReg(filehandle = open('regdump.txt','w'))
+
+# Turn a list of strings into a regexp string matching exactly those strings
+def makeREstring(list):
+ return '^(' + '|'.join(list) + ')$'
+
+# These are "mandatory" OpenGL ES 1 extensions, to
+# be included in the core GLES/gl.h header.
+es1CoreList = [
+ 'GL_OES_read_format',
+ 'GL_OES_compressed_paletted_texture',
+ 'GL_OES_point_size_array',
+ 'GL_OES_point_sprite'
+]
+
+# Descriptive names for various regexp patterns used to select
+# versions and extensions
+
+allVersions = allExtensions = '.*'
+noVersions = noExtensions = None
+gl12andLaterPat = '1\.[2-9]|[234]\.[0-9]'
+gles2onlyPat = '2\.[0-9]'
+gles2and3Pat = '[23]\.[0-9]'
+es1CorePat = makeREstring(es1CoreList)
+# Extensions in old glcorearb.h but not yet tagged accordingly in gl.xml
+glCoreARBPat = None
+glx13andLaterPat = '1\.[3-9]'
+
+# Copyright text prefixing all headers (list of strings).
+prefixStrings = [
+ '/*',
+ '** Copyright (c) 2013 The Khronos Group Inc.',
+ '**',
+ '** Permission is hereby granted, free of charge, to any person obtaining a',
+ '** copy of this software and/or associated documentation files (the',
+ '** "Materials"), to deal in the Materials without restriction, including',
+ '** without limitation the rights to use, copy, modify, merge, publish,',
+ '** distribute, sublicense, and/or sell copies of the Materials, and to',
+ '** permit persons to whom the Materials are furnished to do so, subject to',
+ '** the following conditions:',
+ '**',
+ '** The above copyright notice and this permission notice shall be included',
+ '** in all copies or substantial portions of the Materials.',
+ '**',
+ '** THE MATERIALS ARE 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',
+ '** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.',
+ '*/',
+ '/*',
+ '** This header is generated from the Khronos OpenGL / OpenGL ES XML',
+ '** API Registry. The current version of the Registry, generator scripts',
+ '** used to make the header, and the header can be found at',
+ '** http://www.opengl.org/registry/',
+ '**',
+ '** Khronos $' + 'Revision$ on $' + 'Date$',
+ '*/',
+ ''
+]
+
+# glext.h / glcorearb.h define calling conventions inline (no GL *platform.h)
+glExtPlatformStrings = [
+ '#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)',
+ '#ifndef WIN32_LEAN_AND_MEAN',
+ '#define WIN32_LEAN_AND_MEAN 1',
+ '#endif',
+ '#include <windows.h>',
+ '#endif',
+ '',
+ '#ifndef APIENTRY',
+ '#define APIENTRY',
+ '#endif',
+ '#ifndef APIENTRYP',
+ '#define APIENTRYP APIENTRY *',
+ '#endif',
+ '#ifndef GLAPI',
+ '#define GLAPI extern',
+ '#endif',
+ ''
+]
+
+glCorearbPlatformStrings = glExtPlatformStrings + [
+ '/* glcorearb.h is for use with OpenGL core profile implementations.',
+ '** It should should be placed in the same directory as gl.h and',
+ '** included as <GL/glcorearb.h>.',
+ '**',
+ '** glcorearb.h includes only APIs in the latest OpenGL core profile',
+ '** implementation together with APIs in newer ARB extensions which ',
+ '** can be supported by the core profile. It does not, and never will',
+ '** include functionality removed from the core profile, such as',
+ '** fixed-function vertex and fragment processing.',
+ '**',
+ '** Do not #include both <GL/glcorearb.h> and either of <GL/gl.h> or',
+ '** <GL/glext.h> in the same source file.',
+ '*/',
+ ''
+]
+
+# wglext.h needs Windows include
+wglPlatformStrings = [
+ '#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)',
+ '#define WIN32_LEAN_AND_MEAN 1',
+ '#include <windows.h>',
+ '#endif',
+ '',
+]
+
+# GLES 1/2/3 core .h have separate *platform.h files to define calling conventions
+gles1PlatformStrings = [ '#include <GLES/glplatform.h>', '' ]
+gles2PlatformStrings = [ '#include <GLES2/gl2platform.h>', '' ]
+gles3PlatformStrings = [ '#include <GLES3/gl3platform.h>', '' ]
+eglPlatformStrings = [ '#include <EGL/eglplatform.h>', '' ]
+
+# GLES 1/2 extension .h have small addition to calling convention headers
+gles1ExtPlatformStrings = gles2ExtPlatformStrings = [
+ '#ifndef GL_APIENTRYP',
+ '#define GL_APIENTRYP GL_APIENTRY*',
+ '#endif',
+ ''
+]
+
+# GL_GLEXT_VERSION is defined only in glext.h
+glextVersionStrings = [
+ format("#define GL_GLEXT_VERSION %s" % time.strftime("%Y%m%d")),
+ ''
+]
+# WGL_WGLEXT_VERSION is defined only in wglext.h
+wglextVersionStrings = [
+ format("#define WGL_WGLEXT_VERSION %s" % time.strftime("%Y%m%d")),
+ ''
+]
+# GLX_GLXEXT_VERSION is defined only in glxext.h
+glxextVersionStrings = [
+ format("#define GLX_GLXEXT_VERSION %s" % time.strftime("%Y%m%d")),
+ ''
+]
+# EGL_EGLEXT_VERSION is defined only in eglext.h
+eglextVersionStrings = [
+ format("#define EGL_EGLEXT_VERSION %s" % time.strftime("%Y%m%d")),
+ ''
+]
+
+# Defaults for generating re-inclusion protection wrappers (or not)
+protectFile = protect
+protectFeature = protect
+protectProto = protect
+
+buildList = [
+ # GL API 1.2+ + extensions - GL/glext.h
+ CGeneratorOptions(
+ filename = 'GL/glext.h',
+ apiname = 'gl',
+ profile = 'compatibility',
+ versions = allVersions,
+ emitversions = gl12andLaterPat,
+ defaultExtensions = 'gl', # Default extensions for GL
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + glExtPlatformStrings + glextVersionStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ protectProtoStr = 'GL_GLEXT_PROTOTYPES',
+ apicall = 'GLAPI ',
+ apientry = 'APIENTRY ',
+ apientryp = 'APIENTRYP '),
+ # GL core profile + extensions - GL/glcorearb.h
+ CGeneratorOptions(
+ filename = 'GL/glcorearb.h',
+ apiname = 'gl',
+ profile = 'core',
+ versions = allVersions,
+ emitversions = allVersions,
+ defaultExtensions = 'glcore', # Default extensions for GL core profile (only)
+ addExtensions = glCoreARBPat,
+ removeExtensions = None,
+ prefixText = prefixStrings + glCorearbPlatformStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ protectProtoStr = 'GL_GLEXT_PROTOTYPES',
+ apicall = 'GLAPI ',
+ apientry = 'APIENTRY ',
+ apientryp = 'APIENTRYP '),
+ # GLES 1.x API + mandatory extensions - GLES/gl.h (no function pointers)
+ CGeneratorOptions(
+ filename = 'GLES/gl.h',
+ apiname = 'gles1',
+ profile = 'common',
+ versions = allVersions,
+ emitversions = allVersions,
+ defaultExtensions = None, # No default extensions
+ addExtensions = es1CorePat, # Add mandatory ES1 extensions in GLES1/gl.h
+ removeExtensions = None,
+ prefixText = prefixStrings + gles1PlatformStrings,
+ genFuncPointers = False,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = False, # Core ES API functions are in the static link libraries
+ protectProtoStr = 'GL_GLEXT_PROTOTYPES',
+ apicall = 'GL_API ',
+ apientry = 'GL_APIENTRY ',
+ apientryp = 'GL_APIENTRYP '),
+ # GLES 1.x extensions - GLES/glext.h
+ CGeneratorOptions(
+ filename = 'GLES/glext.h',
+ apiname = 'gles1',
+ profile = 'common',
+ versions = allVersions,
+ emitversions = noVersions,
+ defaultExtensions = 'gles1', # Default extensions for GLES 1
+ addExtensions = None,
+ removeExtensions = es1CorePat, # Remove mandatory ES1 extensions in GLES1/glext.h
+ prefixText = prefixStrings + gles1ExtPlatformStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ protectProtoStr = 'GL_GLEXT_PROTOTYPES',
+ apicall = 'GL_API ',
+ apientry = 'GL_APIENTRY ',
+ apientryp = 'GL_APIENTRYP '),
+ # GLES 2.0 API - GLES2/gl2.h (no function pointers)
+ CGeneratorOptions(
+ filename = 'GLES2/gl2.h',
+ apiname = 'gles2',
+ profile = 'common',
+ versions = gles2onlyPat,
+ emitversions = allVersions,
+ defaultExtensions = None, # No default extensions
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + gles2PlatformStrings,
+ genFuncPointers = False,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = False, # Core ES API functions are in the static link libraries
+ protectProtoStr = 'GL_GLEXT_PROTOTYPES',
+ apicall = 'GL_APICALL ',
+ apientry = 'GL_APIENTRY ',
+ apientryp = 'GL_APIENTRYP '),
+ # GLES 2.0 extensions - GLES2/gl2ext.h
+ CGeneratorOptions(
+ filename = 'GLES2/gl2ext.h',
+ apiname = 'gles2',
+ profile = 'common',
+ versions = gles2onlyPat,
+ emitversions = None,
+ defaultExtensions = 'gles2', # Default extensions for GLES 2
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + gles2ExtPlatformStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ protectProtoStr = 'GL_GLEXT_PROTOTYPES',
+ apicall = 'GL_APICALL ',
+ apientry = 'GL_APIENTRY ',
+ apientryp = 'GL_APIENTRYP '),
+ # GLES 3.0 API - GLES3/gl3.h (no function pointers)
+ CGeneratorOptions(
+ filename = 'GLES3/gl3.h',
+ apiname = 'gles2',
+ profile = 'common',
+ versions = gles2and3Pat,
+ emitversions = allVersions,
+ defaultExtensions = None, # No default extensions
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + gles3PlatformStrings,
+ genFuncPointers = False,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = False, # Core ES API functions are in the static link libraries
+ protectProtoStr = 'GL_GLEXT_PROTOTYPES',
+ apicall = 'GL_APICALL ',
+ apientry = 'GL_APIENTRY ',
+ apientryp = 'GL_APIENTRYP '),
+ # EGL API - EGL/egl.h (no function pointers, yet @@@)
+ CGeneratorOptions(
+ filename = 'EGL/egl.h',
+ apiname = 'egl',
+ profile = None,
+ versions = allVersions,
+ emitversions = allVersions,
+ defaultExtensions = None, # No default extensions
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + eglPlatformStrings + eglextVersionStrings,
+ genFuncPointers = False,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ protectProtoStr = 'EGL_EGLEXT_PROTOTYPES',
+ apicall = 'EGLAPI ',
+ apientry = 'EGLAPIENTRY ',
+ apientryp = 'EGLAPIENTRYP '),
+ # EGL extensions - EGL/eglext.h (no function pointers, yet @@@)
+ CGeneratorOptions(
+ filename = 'EGL/eglext.h',
+ apiname = 'egl',
+ profile = None,
+ versions = allVersions,
+ emitversions = None,
+ defaultExtensions = 'egl', # Default extensions for EGL
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + eglPlatformStrings + eglextVersionStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ protectProtoStr = 'EGL_EGLEXT_PROTOTYPES',
+ apicall = 'EGLAPI ',
+ apientry = 'EGLAPIENTRY ',
+ apientryp = 'EGLAPIENTRYP '),
+ # GLX 1.* API - GL/glx.h
+ CGeneratorOptions(
+ filename = 'GL/glx.h',
+ apiname = 'glx',
+ profile = None,
+ versions = allVersions,
+ emitversions = allVersions,
+ defaultExtensions = None, # No default extensions
+ addExtensions = None,
+ removeExtensions = None,
+ # add glXPlatformStrings?
+ prefixText = prefixStrings, # No GLXEXT_VERSION
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ protectProtoStr = 'GLX_GLXEXT_PROTOTYPES',
+ apicall = '',
+ apientry = '',
+ apientryp = ' *'),
+ # GLX 1.3+ API + extensions - GL/glxext.h (no function pointers, yet @@@)
+ CGeneratorOptions(
+ filename = 'GL/glxext.h',
+ apiname = 'glx',
+ profile = None,
+ versions = allVersions,
+ emitversions = glx13andLaterPat,
+ defaultExtensions = 'glx', # Default extensions for GLX
+ addExtensions = None,
+ removeExtensions = None,
+ # add glXPlatformStrings?
+ prefixText = prefixStrings + glxextVersionStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ protectProtoStr = 'GLX_GLXEXT_PROTOTYPES',
+ apicall = '',
+ apientry = '',
+ apientryp = ' *'),
+ # WGL API + extensions - GL/wgl.h (no function pointers, yet @@@)
+ CGeneratorOptions(
+ filename = 'GL/wgl.h',
+ apiname = 'wgl',
+ profile = None,
+ versions = allVersions,
+ emitversions = allVersions,
+ defaultExtensions = 'wgl', # Default extensions for WGL
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + wglPlatformStrings, # No WGLEXT_VERSION
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ protectProtoStr = 'WGL_WGLEXT_PROTOTYPES',
+ apicall = '',
+ apientry = 'WINAPI ',
+ apientryp = 'WINAPI * '),
+ # WGL extensions - GL/wglext.h (no function pointers, yet @@@)
+ CGeneratorOptions(
+ filename = 'GL/wglext.h',
+ apiname = 'wgl',
+ profile = None,
+ versions = allVersions,
+ emitversions = None,
+ defaultExtensions = 'wgl', # Default extensions for WGL
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + wglPlatformStrings + wglextVersionStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ protectProtoStr = 'WGL_WGLEXT_PROTOTYPES',
+ apicall = '',
+ apientry = 'WINAPI ',
+ apientryp = 'WINAPI * '),
+ # End of list
+ None
+]
+
+# create error/warning & diagnostic files
+if (errFilename):
+ errWarn = open(errFilename,'w')
+else:
+ errWarn = sys.stderr
+diag = open(diagFilename, 'w')
+
+def genHeaders():
+ # Loop over targets, building each
+ generated = 0
+ for genOpts in buildList:
+ if (genOpts == None):
+ break
+ if (target and target != genOpts.filename):
+ # write('*** Skipping', genOpts.filename)
+ continue
+ write('*** Building', genOpts.filename)
+ generated = generated + 1
+ startTimer()
+ gen = COutputGenerator(errFile=errWarn,
+ warnFile=errWarn,
+ diagFile=diag)
+ reg.setGenerator(gen)
+ reg.apiGen(genOpts)
+ write('** Generated', genOpts.filename)
+ endTimer('Time to generate ' + genOpts.filename + ' =')
+ if (target and generated == 0):
+ write('Failed to generate target:', target)
+
+if (debug):
+ pdb.run('genHeaders()')
+elif (profile):
+ import cProfile, pstats
+ cProfile.run('genHeaders()', 'profile.txt')
+ p = pstats.Stats('profile.txt')
+ p.strip_dirs().sort_stats('time').print_stats(50)
+else:
+ genHeaders()
diff --git a/xorg-server/hw/xwin/glx/gl.xml b/xorg-server/hw/xwin/glx/gl.xml
new file mode 100644
index 000000000..e46fcaf48
--- /dev/null
+++ b/xorg-server/hw/xwin/glx/gl.xml
@@ -0,0 +1,41177 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<registry>
+ <comment>
+Copyright (c) 2013 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and/or associated documentation files (the
+"Materials"), to deal in the Materials without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Materials, and to
+permit persons to whom the Materials are furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Materials.
+
+THE MATERIALS ARE 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
+MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+------------------------------------------------------------------------
+
+This file, gl.xml, is the OpenGL and OpenGL API Registry. The older
+".spec" file format has been retired and will no longer be updated with
+new extensions and API versions. The canonical version of the registry,
+together with documentation, schema, and Python generator scripts used
+to generate C header files for OpenGL and OpenGL ES, can always be found
+in the Khronos Registry at
+ http://www.opengl.org/registry/
+ </comment>
+
+ <!-- SECTION: GL type definitions. -->
+ <types>
+ <!-- These are dependencies GL types require to be declared legally -->
+ <type name="stddef">#include &lt;stddef.h&gt;</type>
+ <type name="khrplatform">#include &lt;KHR/khrplatform.h&gt;</type>
+ <type name="inttypes">#ifndef GLEXT_64_TYPES_DEFINED
+/* This code block is duplicated in glxext.h, so must be protected */
+#define GLEXT_64_TYPES_DEFINED
+/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
+/* (as used in the GL_EXT_timer_query extension). */
+#if defined(__STDC_VERSION__) &amp;&amp; __STDC_VERSION__ &gt;= 199901L
+#include &lt;inttypes.h&gt;
+#elif defined(__sun__) || defined(__digital__)
+#include &lt;inttypes.h&gt;
+#if defined(__STDC__)
+#if defined(__arch64__) || defined(_LP64)
+typedef long int int64_t;
+typedef unsigned long int uint64_t;
+#else
+typedef long long int int64_t;
+typedef unsigned long long int uint64_t;
+#endif /* __arch64__ */
+#endif /* __STDC__ */
+#elif defined( __VMS ) || defined(__sgi)
+#include &lt;inttypes.h&gt;
+#elif defined(__SCO__) || defined(__USLC__)
+#include &lt;stdint.h&gt;
+#elif defined(__UNIXOS2__) || defined(__SOL64__)
+typedef long int int32_t;
+typedef long long int int64_t;
+typedef unsigned long long int uint64_t;
+#elif defined(_WIN32) &amp;&amp; defined(__GNUC__)
+#include &lt;stdint.h&gt;
+#elif defined(_WIN32)
+typedef __int32 int32_t;
+typedef __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+#else
+/* Fallback if nothing above works */
+#include &lt;inttypes.h&gt;
+#endif
+#endif</type>
+ <!-- These are actual GL types -->
+ <type>typedef unsigned int <name>GLenum</name>;</type>
+ <type>typedef unsigned char <name>GLboolean</name>;</type>
+ <type>typedef unsigned int <name>GLbitfield</name>;</type>
+ <type comment="Not an actual GL type, though used in headers in the past">typedef void <name>GLvoid</name>;</type>
+ <type>typedef signed char <name>GLbyte</name>;</type>
+ <type>typedef short <name>GLshort</name>;</type>
+ <type>typedef int <name>GLint</name>;</type>
+ <type>typedef int <name>GLclampx</name>;</type>
+ <type>typedef unsigned char <name>GLubyte</name>;</type>
+ <type>typedef unsigned short <name>GLushort</name>;</type>
+ <type>typedef unsigned int <name>GLuint</name>;</type>
+ <type>typedef int <name>GLsizei</name>;</type>
+ <type>typedef float <name>GLfloat</name>;</type>
+ <type>typedef float <name>GLclampf</name>;</type>
+ <type>typedef double <name>GLdouble</name>;</type>
+ <type>typedef double <name>GLclampd</name>;</type>
+ <type>typedef void *<name>GLeglImageOES</name>;</type>
+ <type>typedef char <name>GLchar</name>;</type>
+ <type>typedef char <name>GLcharARB</name>;</type>
+ <type name="GLhandleARB">#ifdef __APPLE__
+typedef void *GLhandleARB;
+#else
+typedef unsigned int GLhandleARB;
+#endif</type>
+ <type>typedef unsigned short <name>GLhalfARB</name>;</type>
+ <type>typedef unsigned short <name>GLhalf</name>;</type>
+ <type comment="Must be 32 bits">typedef GLint <name>GLfixed</name>;</type>
+ <type requires="stddef">typedef ptrdiff_t <name>GLintptr</name>;</type>
+ <type requires="stddef">typedef ptrdiff_t <name>GLsizeiptr</name>;</type>
+ <type requires="inttypes">typedef int64_t <name>GLint64</name>;</type>
+ <type requires="inttypes">typedef uint64_t <name>GLuint64</name>;</type>
+ <type requires="stddef">typedef ptrdiff_t <name>GLintptrARB</name>;</type>
+ <type requires="stddef">typedef ptrdiff_t <name>GLsizeiptrARB</name>;</type>
+ <type requires="inttypes">typedef int64_t <name>GLint64EXT</name>;</type>
+ <type requires="inttypes">typedef uint64_t <name>GLuint64EXT</name>;</type>
+ <type>typedef struct __GLsync *<name>GLsync</name>;</type>
+ <type comment="compatible with OpenCL cl_context"><name>struct _cl_context</name>;</type>
+ <type comment="compatible with OpenCL cl_event"><name>struct _cl_event</name>;</type>
+ <type>typedef void (<apientry/> *<name>GLDEBUGPROC</name>)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);</type>
+ <type>typedef void (<apientry/> *<name>GLDEBUGPROCARB</name>)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);</type>
+ <type>typedef void (<apientry/> *<name>GLDEBUGPROCKHR</name>)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);</type>
+ <!-- GLES 1 types -->
+ <type api="gles1" requires="khrplatform">typedef khronos_int32_t <name>GLclampx</name>;</type>
+ <!-- GLES 1/2 types (tagged for GLES 1) -->
+ <type api="gles1" requires="khrplatform">typedef khronos_int8_t <name>GLbyte</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_uint8_t <name>GLubyte</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_float_t <name>GLfloat</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_float_t <name>GLclampf</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_int32_t <name>GLfixed</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_int64_t <name>GLint64</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_uint64_t <name>GLuint64</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_intptr_t <name>GLintptr</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_ssize_t <name>GLsizeiptr</name>;</type>
+ <!-- GLES 1/2 types (tagged for GLES 2 - attribute syntax is limited) -->
+ <type api="gles2" requires="khrplatform">typedef khronos_int8_t <name>GLbyte</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_uint8_t <name>GLubyte</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_float_t <name>GLfloat</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_float_t <name>GLclampf</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_int32_t <name>GLfixed</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_int64_t <name>GLint64</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_uint64_t <name>GLuint64</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_int64_t <name>GLint64EXT</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_uint64_t <name>GLuint64EXT</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_intptr_t <name>GLintptr</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_ssize_t <name>GLsizeiptr</name>;</type>
+ <!-- GLES 2 types (none currently) -->
+ <!-- Vendor extension types -->
+ <type>typedef void (<apientry/> *<name>GLDEBUGPROCAMD</name>)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);</type>
+ <type>typedef unsigned short <name>GLhalfNV</name>;</type>
+ <type requires="GLintptr">typedef GLintptr <name>GLvdpauSurfaceNV</name>;</type>
+ </types>
+
+ <!-- SECTION: GL parameter class type definitions. -->
+
+ <groups>
+ <group name="AccumOp">
+ <enum name="GL_ACCUM"/>
+ <enum name="GL_LOAD"/>
+ <enum name="GL_RETURN"/>
+ <enum name="GL_MULT"/>
+ <enum name="GL_ADD"/>
+ </group>
+
+ <group name="AttribMask">
+ <enum name="GL_ACCUM_BUFFER_BIT"/>
+ <enum name="GL_ALL_ATTRIB_BITS"/>
+ <enum name="GL_COLOR_BUFFER_BIT"/>
+ <enum name="GL_CURRENT_BIT"/>
+ <enum name="GL_DEPTH_BUFFER_BIT"/>
+ <enum name="GL_ENABLE_BIT"/>
+ <enum name="GL_EVAL_BIT"/>
+ <enum name="GL_FOG_BIT"/>
+ <enum name="GL_HINT_BIT"/>
+ <enum name="GL_LIGHTING_BIT"/>
+ <enum name="GL_LINE_BIT"/>
+ <enum name="GL_LIST_BIT"/>
+ <enum name="GL_MULTISAMPLE_BIT"/>
+ <enum name="GL_MULTISAMPLE_BIT_3DFX"/>
+ <enum name="GL_MULTISAMPLE_BIT_ARB"/>
+ <enum name="GL_MULTISAMPLE_BIT_EXT"/>
+ <enum name="GL_PIXEL_MODE_BIT"/>
+ <enum name="GL_POINT_BIT"/>
+ <enum name="GL_POLYGON_BIT"/>
+ <enum name="GL_POLYGON_STIPPLE_BIT"/>
+ <enum name="GL_SCISSOR_BIT"/>
+ <enum name="GL_STENCIL_BUFFER_BIT"/>
+ <enum name="GL_TEXTURE_BIT"/>
+ <enum name="GL_TRANSFORM_BIT"/>
+ <enum name="GL_VIEWPORT_BIT"/>
+ </group>
+
+ <group name="AlphaFunction">
+ <enum name="GL_ALWAYS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_GEQUAL"/>
+ <enum name="GL_GREATER"/>
+ <enum name="GL_LEQUAL"/>
+ <enum name="GL_LESS"/>
+ <enum name="GL_NEVER"/>
+ <enum name="GL_NOTEQUAL"/>
+ </group>
+
+ <group name="BlendEquationModeEXT">
+ <enum name="GL_ALPHA_MAX_SGIX"/>
+ <enum name="GL_ALPHA_MIN_SGIX"/>
+ <enum name="GL_FUNC_ADD_EXT"/>
+ <enum name="GL_FUNC_REVERSE_SUBTRACT_EXT"/>
+ <enum name="GL_FUNC_SUBTRACT_EXT"/>
+ <enum name="GL_LOGIC_OP"/>
+ <enum name="GL_MAX_EXT"/>
+ <enum name="GL_MIN_EXT"/>
+ </group>
+
+ <group name="BlendingFactorDest">
+ <enum name="GL_CONSTANT_ALPHA_EXT"/>
+ <enum name="GL_CONSTANT_COLOR_EXT"/>
+ <enum name="GL_DST_ALPHA"/>
+ <enum name="GL_ONE"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_ALPHA_EXT"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_COLOR_EXT"/>
+ <enum name="GL_ONE_MINUS_DST_ALPHA"/>
+ <enum name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <enum name="GL_ONE_MINUS_SRC_COLOR"/>
+ <enum name="GL_SRC_ALPHA"/>
+ <enum name="GL_SRC_COLOR"/>
+ <enum name="GL_ZERO"/>
+ </group>
+
+ <group name="BlendingFactorSrc">
+ <enum name="GL_CONSTANT_ALPHA_EXT"/>
+ <enum name="GL_CONSTANT_COLOR_EXT"/>
+ <enum name="GL_DST_ALPHA"/>
+ <enum name="GL_DST_COLOR"/>
+ <enum name="GL_ONE"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_ALPHA_EXT"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_COLOR_EXT"/>
+ <enum name="GL_ONE_MINUS_DST_ALPHA"/>
+ <enum name="GL_ONE_MINUS_DST_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <enum name="GL_SRC_ALPHA"/>
+ <enum name="GL_SRC_ALPHA_SATURATE"/>
+ <enum name="GL_ZERO"/>
+ </group>
+
+ <group name="Boolean">
+ <enum name="GL_FALSE"/>
+ <enum name="GL_TRUE"/>
+ </group>
+
+ <group name="ClearBufferMask">
+ <enum name="GL_ACCUM_BUFFER_BIT"/>
+ <enum name="GL_COLOR_BUFFER_BIT"/>
+ <enum name="GL_COVERAGE_BUFFER_BIT_NV"/>
+ <enum name="GL_DEPTH_BUFFER_BIT"/>
+ <enum name="GL_STENCIL_BUFFER_BIT"/>
+ </group>
+
+ <group name="ClientAttribMask">
+ <enum name="GL_CLIENT_ALL_ATTRIB_BITS"/>
+ <enum name="GL_CLIENT_PIXEL_STORE_BIT"/>
+ <enum name="GL_CLIENT_VERTEX_ARRAY_BIT"/>
+ </group>
+
+ <group name="ClipPlaneName">
+ <enum name="GL_CLIP_DISTANCE0"/>
+ <enum name="GL_CLIP_DISTANCE1"/>
+ <enum name="GL_CLIP_DISTANCE2"/>
+ <enum name="GL_CLIP_DISTANCE3"/>
+ <enum name="GL_CLIP_DISTANCE4"/>
+ <enum name="GL_CLIP_DISTANCE5"/>
+ <enum name="GL_CLIP_DISTANCE6"/>
+ <enum name="GL_CLIP_DISTANCE7"/>
+ <enum name="GL_CLIP_PLANE0"/>
+ <enum name="GL_CLIP_PLANE1"/>
+ <enum name="GL_CLIP_PLANE2"/>
+ <enum name="GL_CLIP_PLANE3"/>
+ <enum name="GL_CLIP_PLANE4"/>
+ <enum name="GL_CLIP_PLANE5"/>
+ </group>
+
+ <group name="ColorMaterialFace">
+ <enum name="GL_BACK"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ </group>
+
+ <group name="ColorMaterialParameter">
+ <enum name="GL_AMBIENT"/>
+ <enum name="GL_AMBIENT_AND_DIFFUSE"/>
+ <enum name="GL_DIFFUSE"/>
+ <enum name="GL_EMISSION"/>
+ <enum name="GL_SPECULAR"/>
+ </group>
+
+ <group name="ColorPointerType">
+ <enum name="GL_BYTE"/>
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ <enum name="GL_UNSIGNED_BYTE"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ </group>
+
+ <group name="ColorTableParameterPNameSGI">
+ <enum name="GL_COLOR_TABLE_BIAS"/>
+ <enum name="GL_COLOR_TABLE_BIAS_SGI"/>
+ <enum name="GL_COLOR_TABLE_SCALE"/>
+ <enum name="GL_COLOR_TABLE_SCALE_SGI"/>
+ </group>
+
+ <group name="ColorTableTargetSGI">
+ <enum name="GL_COLOR_TABLE"/>
+ <enum name="GL_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE"/>
+ <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_CONVOLUTION_COLOR_TABLE"/>
+ <enum name="GL_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_COLOR_TABLE"/>
+ <enum name="GL_PROXY_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE"/>
+ <enum name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE"/>
+ <enum name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_TEXTURE_COLOR_TABLE_SGI"/>
+ <enum name="GL_TEXTURE_COLOR_TABLE_SGI"/>
+ </group>
+
+ <group name="ContextFlagMask">
+ <enum name="GL_CONTEXT_FLAG_DEBUG_BIT"/>
+ <enum name="GL_CONTEXT_FLAG_DEBUG_BIT_KHR"/>
+ <enum name="GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT"/>
+ <enum name="GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB"/>
+ </group>
+
+ <group name="ContextProfileMask">
+ <enum name="GL_CONTEXT_COMPATIBILITY_PROFILE_BIT"/>
+ <enum name="GL_CONTEXT_CORE_PROFILE_BIT"/>
+ </group>
+
+ <group name="ConvolutionBorderModeEXT">
+ <enum name="GL_REDUCE"/>
+ <enum name="GL_REDUCE_EXT"/>
+ </group>
+
+ <group name="ConvolutionParameterEXT">
+ <enum name="GL_CONVOLUTION_BORDER_MODE"/>
+ <enum name="GL_CONVOLUTION_BORDER_MODE_EXT"/>
+ <enum name="GL_CONVOLUTION_FILTER_BIAS"/>
+ <enum name="GL_CONVOLUTION_FILTER_BIAS_EXT"/>
+ <enum name="GL_CONVOLUTION_FILTER_SCALE"/>
+ <enum name="GL_CONVOLUTION_FILTER_SCALE_EXT"/>
+ </group>
+
+ <group name="ConvolutionTargetEXT">
+ <enum name="GL_CONVOLUTION_1D"/>
+ <enum name="GL_CONVOLUTION_1D_EXT"/>
+ <enum name="GL_CONVOLUTION_2D"/>
+ <enum name="GL_CONVOLUTION_2D_EXT"/>
+ </group>
+
+ <group name="CullFaceMode">
+ <enum name="GL_BACK"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ </group>
+
+ <group name="DataType" comment="See enums block below"/>
+
+ <group name="DepthFunction">
+ <enum name="GL_ALWAYS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_GEQUAL"/>
+ <enum name="GL_GREATER"/>
+ <enum name="GL_LEQUAL"/>
+ <enum name="GL_LESS"/>
+ <enum name="GL_NEVER"/>
+ <enum name="GL_NOTEQUAL"/>
+ </group>
+
+ <group name="DrawBufferMode">
+ <enum name="GL_AUX0"/>
+ <enum name="GL_AUX1"/>
+ <enum name="GL_AUX2"/>
+ <enum name="GL_AUX3"/>
+ <enum name="GL_BACK"/>
+ <enum name="GL_BACK_LEFT"/>
+ <enum name="GL_BACK_RIGHT"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ <enum name="GL_FRONT_LEFT"/>
+ <enum name="GL_FRONT_RIGHT"/>
+ <enum name="GL_LEFT"/>
+ <enum name="GL_NONE"/>
+ <enum name="GL_NONE_OES"/>
+ <enum name="GL_RIGHT"/>
+ </group>
+
+ <group name="EnableCap">
+ <enum name="GL_ALPHA_TEST"/>
+ <enum name="GL_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum name="GL_ASYNC_HISTOGRAM_SGIX"/>
+ <enum name="GL_ASYNC_READ_PIXELS_SGIX"/>
+ <enum name="GL_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum name="GL_AUTO_NORMAL"/>
+ <enum name="GL_BLEND"/>
+ <enum name="GL_CALLIGRAPHIC_FRAGMENT_SGIX"/>
+ <enum name="GL_CLIP_PLANE0"/>
+ <enum name="GL_CLIP_PLANE1"/>
+ <enum name="GL_CLIP_PLANE2"/>
+ <enum name="GL_CLIP_PLANE3"/>
+ <enum name="GL_CLIP_PLANE4"/>
+ <enum name="GL_CLIP_PLANE5"/>
+ <enum name="GL_COLOR_ARRAY"/>
+ <enum name="GL_COLOR_LOGIC_OP"/>
+ <enum name="GL_COLOR_MATERIAL"/>
+ <enum name="GL_COLOR_TABLE_SGI"/>
+ <enum name="GL_CONVOLUTION_1D_EXT"/>
+ <enum name="GL_CONVOLUTION_2D_EXT"/>
+ <enum name="GL_CULL_FACE"/>
+ <enum name="GL_DEPTH_TEST"/>
+ <enum name="GL_DITHER"/>
+ <enum name="GL_EDGE_FLAG_ARRAY"/>
+ <enum name="GL_FOG"/>
+ <enum name="GL_FOG_OFFSET_SGIX"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT0_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT1_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT2_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT3_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT4_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT5_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT6_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT7_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHTING_SGIX"/>
+ <enum name="GL_FRAMEZOOM_SGIX"/>
+ <enum name="GL_HISTOGRAM_EXT"/>
+ <enum name="GL_INDEX_ARRAY"/>
+ <enum name="GL_INDEX_LOGIC_OP"/>
+ <enum name="GL_INTERLACE_SGIX"/>
+ <enum name="GL_IR_INSTRUMENT1_SGIX"/>
+ <enum name="GL_LIGHT0"/>
+ <enum name="GL_LIGHT1"/>
+ <enum name="GL_LIGHT2"/>
+ <enum name="GL_LIGHT3"/>
+ <enum name="GL_LIGHT4"/>
+ <enum name="GL_LIGHT5"/>
+ <enum name="GL_LIGHT6"/>
+ <enum name="GL_LIGHT7"/>
+ <enum name="GL_LIGHTING"/>
+ <enum name="GL_LINE_SMOOTH"/>
+ <enum name="GL_LINE_STIPPLE"/>
+ <enum name="GL_MAP1_COLOR_4"/>
+ <enum name="GL_MAP1_INDEX"/>
+ <enum name="GL_MAP1_NORMAL"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP1_VERTEX_3"/>
+ <enum name="GL_MAP1_VERTEX_4"/>
+ <enum name="GL_MAP2_COLOR_4"/>
+ <enum name="GL_MAP2_INDEX"/>
+ <enum name="GL_MAP2_NORMAL"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP2_VERTEX_3"/>
+ <enum name="GL_MAP2_VERTEX_4"/>
+ <enum name="GL_MINMAX_EXT"/>
+ <enum name="GL_MULTISAMPLE_SGIS"/>
+ <enum name="GL_NORMALIZE"/>
+ <enum name="GL_NORMAL_ARRAY"/>
+ <enum name="GL_PIXEL_TEXTURE_SGIS"/>
+ <enum name="GL_PIXEL_TEX_GEN_SGIX"/>
+ <enum name="GL_POINT_SMOOTH"/>
+ <enum name="GL_POLYGON_OFFSET_FILL"/>
+ <enum name="GL_POLYGON_OFFSET_LINE"/>
+ <enum name="GL_POLYGON_OFFSET_POINT"/>
+ <enum name="GL_POLYGON_SMOOTH"/>
+ <enum name="GL_POLYGON_STIPPLE"/>
+ <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum name="GL_REFERENCE_PLANE_SGIX"/>
+ <enum name="GL_RESCALE_NORMAL_EXT"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_MASK_SGIS"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_SGIS"/>
+ <enum name="GL_SCISSOR_TEST"/>
+ <enum name="GL_SEPARABLE_2D_EXT"/>
+ <enum name="GL_SHARED_TEXTURE_PALETTE_EXT"/>
+ <enum name="GL_SPRITE_SGIX"/>
+ <enum name="GL_STENCIL_TEST"/>
+ <enum name="GL_TEXTURE_1D"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_TEXTURE_3D_EXT"/>
+ <enum name="GL_TEXTURE_4D_SGIS"/>
+ <enum name="GL_TEXTURE_COLOR_TABLE_SGI"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY"/>
+ <enum name="GL_TEXTURE_GEN_Q"/>
+ <enum name="GL_TEXTURE_GEN_R"/>
+ <enum name="GL_TEXTURE_GEN_S"/>
+ <enum name="GL_TEXTURE_GEN_T"/>
+ <enum name="GL_VERTEX_ARRAY"/>
+ </group>
+
+ <group name="ErrorCode">
+ <enum name="GL_INVALID_ENUM"/>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION"/>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION_EXT"/>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION_OES"/>
+ <enum name="GL_INVALID_OPERATION"/>
+ <enum name="GL_INVALID_VALUE"/>
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_OUT_OF_MEMORY"/>
+ <enum name="GL_STACK_OVERFLOW"/>
+ <enum name="GL_STACK_UNDERFLOW"/>
+ <enum name="GL_TABLE_TOO_LARGE"/>
+ <enum name="GL_TABLE_TOO_LARGE_EXT"/>
+ <enum name="GL_TEXTURE_TOO_LARGE_EXT"/>
+ </group>
+
+ <group name="FeedbackType">
+ <enum name="GL_2D"/>
+ <enum name="GL_3D"/>
+ <enum name="GL_3D_COLOR"/>
+ <enum name="GL_3D_COLOR_TEXTURE"/>
+ <enum name="GL_4D_COLOR_TEXTURE"/>
+ </group>
+
+ <group name="FeedBackToken">
+ <enum name="GL_BITMAP_TOKEN"/>
+ <enum name="GL_COPY_PIXEL_TOKEN"/>
+ <enum name="GL_DRAW_PIXEL_TOKEN"/>
+ <enum name="GL_LINE_RESET_TOKEN"/>
+ <enum name="GL_LINE_TOKEN"/>
+ <enum name="GL_PASS_THROUGH_TOKEN"/>
+ <enum name="GL_POINT_TOKEN"/>
+ <enum name="GL_POLYGON_TOKEN"/>
+ </group>
+
+ <group name="FfdMaskSGIX" comment="See enums section below. Was SGIXFfdMask"/>
+
+ <group name="FfdTargetSGIX">
+ <enum name="GL_GEOMETRY_DEFORMATION_SGIX"/>
+ <enum name="GL_TEXTURE_DEFORMATION_SGIX"/>
+ </group>
+
+ <group name="FogMode">
+ <enum name="GL_EXP"/>
+ <enum name="GL_EXP2"/>
+ <enum name="GL_FOG_FUNC_SGIS"/>
+ <enum name="GL_LINEAR"/>
+ </group>
+
+ <group name="FogParameter">
+ <enum name="GL_FOG_COLOR"/>
+ <enum name="GL_FOG_DENSITY"/>
+ <enum name="GL_FOG_END"/>
+ <enum name="GL_FOG_INDEX"/>
+ <enum name="GL_FOG_MODE"/>
+ <enum name="GL_FOG_OFFSET_VALUE_SGIX"/>
+ <enum name="GL_FOG_START"/>
+ </group>
+
+ <group name="FragmentLightModelParameterSGIX">
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX"/>
+ </group>
+
+ <group name="FrontFaceDirection">
+ <enum name="GL_CCW"/>
+ <enum name="GL_CW"/>
+ </group>
+
+ <group name="GetColorTableParameterPNameSGI">
+ <enum name="GL_COLOR_TABLE_ALPHA_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_BIAS_SGI"/>
+ <enum name="GL_COLOR_TABLE_BLUE_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_FORMAT_SGI"/>
+ <enum name="GL_COLOR_TABLE_GREEN_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_INTENSITY_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_LUMINANCE_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_RED_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_SCALE_SGI"/>
+ <enum name="GL_COLOR_TABLE_WIDTH_SGI"/>
+ </group>
+
+ <group name="GetConvolutionParameter">
+ <enum name="GL_CONVOLUTION_BORDER_MODE_EXT"/>
+ <enum name="GL_CONVOLUTION_FILTER_BIAS_EXT"/>
+ <enum name="GL_CONVOLUTION_FILTER_SCALE_EXT"/>
+ <enum name="GL_CONVOLUTION_FORMAT_EXT"/>
+ <enum name="GL_CONVOLUTION_HEIGHT_EXT"/>
+ <enum name="GL_CONVOLUTION_WIDTH_EXT"/>
+ <enum name="GL_MAX_CONVOLUTION_HEIGHT_EXT"/>
+ <enum name="GL_MAX_CONVOLUTION_WIDTH_EXT"/>
+ </group>
+
+ <group name="GetHistogramParameterPNameEXT">
+ <enum name="GL_HISTOGRAM_ALPHA_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_BLUE_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_FORMAT_EXT"/>
+ <enum name="GL_HISTOGRAM_GREEN_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_LUMINANCE_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_RED_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_SINK_EXT"/>
+ <enum name="GL_HISTOGRAM_WIDTH_EXT"/>
+ </group>
+
+ <group name="GetMapQuery">
+ <enum name="GL_COEFF"/>
+ <enum name="GL_DOMAIN"/>
+ <enum name="GL_ORDER"/>
+ </group>
+
+ <group name="GetMinmaxParameterPNameEXT">
+ <enum name="GL_MINMAX_FORMAT"/>
+ <enum name="GL_MINMAX_FORMAT_EXT"/>
+ <enum name="GL_MINMAX_SINK"/>
+ <enum name="GL_MINMAX_SINK_EXT"/>
+ </group>
+
+ <group name="GetPixelMap">
+ <enum name="GL_PIXEL_MAP_A_TO_A"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S"/>
+ </group>
+
+ <group name="GetPName">
+ <enum name="GL_ACCUM_ALPHA_BITS"/>
+ <enum name="GL_ACCUM_BLUE_BITS"/>
+ <enum name="GL_ACCUM_CLEAR_VALUE"/>
+ <enum name="GL_ACCUM_GREEN_BITS"/>
+ <enum name="GL_ACCUM_RED_BITS"/>
+ <enum name="GL_ALIASED_LINE_WIDTH_RANGE"/>
+ <enum name="GL_ALIASED_POINT_SIZE_RANGE"/>
+ <enum name="GL_ALPHA_BIAS"/>
+ <enum name="GL_ALPHA_BITS"/>
+ <enum name="GL_ALPHA_SCALE"/>
+ <enum name="GL_ALPHA_TEST"/>
+ <enum name="GL_ALPHA_TEST_FUNC"/>
+ <enum name="GL_ALPHA_TEST_FUNC_QCOM"/>
+ <enum name="GL_ALPHA_TEST_QCOM"/>
+ <enum name="GL_ALPHA_TEST_REF"/>
+ <enum name="GL_ALPHA_TEST_REF_QCOM"/>
+ <enum name="GL_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum name="GL_ASYNC_HISTOGRAM_SGIX"/>
+ <enum name="GL_ASYNC_MARKER_SGIX"/>
+ <enum name="GL_ASYNC_READ_PIXELS_SGIX"/>
+ <enum name="GL_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum name="GL_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_AUTO_NORMAL"/>
+ <enum name="GL_AUX_BUFFERS"/>
+ <enum name="GL_BLEND"/>
+ <enum name="GL_BLEND_COLOR_EXT"/>
+ <enum name="GL_BLEND_DST"/>
+ <enum name="GL_BLEND_EQUATION_EXT"/>
+ <enum name="GL_BLEND_SRC"/>
+ <enum name="GL_BLUE_BIAS"/>
+ <enum name="GL_BLUE_BITS"/>
+ <enum name="GL_BLUE_SCALE"/>
+ <enum name="GL_CALLIGRAPHIC_FRAGMENT_SGIX"/>
+ <enum name="GL_CLIENT_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_CLIP_PLANE0"/>
+ <enum name="GL_CLIP_PLANE1"/>
+ <enum name="GL_CLIP_PLANE2"/>
+ <enum name="GL_CLIP_PLANE3"/>
+ <enum name="GL_CLIP_PLANE4"/>
+ <enum name="GL_CLIP_PLANE5"/>
+ <enum name="GL_COLOR_ARRAY"/>
+ <enum name="GL_COLOR_ARRAY_COUNT_EXT"/>
+ <enum name="GL_COLOR_ARRAY_SIZE"/>
+ <enum name="GL_COLOR_ARRAY_STRIDE"/>
+ <enum name="GL_COLOR_ARRAY_TYPE"/>
+ <enum name="GL_COLOR_CLEAR_VALUE"/>
+ <enum name="GL_COLOR_LOGIC_OP"/>
+ <enum name="GL_COLOR_MATERIAL"/>
+ <enum name="GL_COLOR_MATERIAL_FACE"/>
+ <enum name="GL_COLOR_MATERIAL_PARAMETER"/>
+ <enum name="GL_COLOR_MATRIX_SGI"/>
+ <enum name="GL_COLOR_MATRIX_STACK_DEPTH_SGI"/>
+ <enum name="GL_COLOR_TABLE_SGI"/>
+ <enum name="GL_COLOR_WRITEMASK"/>
+ <enum name="GL_CONVOLUTION_1D_EXT"/>
+ <enum name="GL_CONVOLUTION_2D_EXT"/>
+ <enum name="GL_CONVOLUTION_HINT_SGIX"/>
+ <enum name="GL_CULL_FACE"/>
+ <enum name="GL_CULL_FACE_MODE"/>
+ <enum name="GL_CURRENT_COLOR"/>
+ <enum name="GL_CURRENT_INDEX"/>
+ <enum name="GL_CURRENT_NORMAL"/>
+ <enum name="GL_CURRENT_RASTER_COLOR"/>
+ <enum name="GL_CURRENT_RASTER_DISTANCE"/>
+ <enum name="GL_CURRENT_RASTER_INDEX"/>
+ <enum name="GL_CURRENT_RASTER_POSITION"/>
+ <enum name="GL_CURRENT_RASTER_POSITION_VALID"/>
+ <enum name="GL_CURRENT_RASTER_TEXTURE_COORDS"/>
+ <enum name="GL_CURRENT_TEXTURE_COORDS"/>
+ <enum name="GL_DEFORMATIONS_MASK_SGIX"/>
+ <enum name="GL_DEPTH_BIAS"/>
+ <enum name="GL_DEPTH_BITS"/>
+ <enum name="GL_DEPTH_CLEAR_VALUE"/>
+ <enum name="GL_DEPTH_FUNC"/>
+ <enum name="GL_DEPTH_RANGE"/>
+ <enum name="GL_DEPTH_SCALE"/>
+ <enum name="GL_DEPTH_TEST"/>
+ <enum name="GL_DEPTH_WRITEMASK"/>
+ <enum name="GL_DETAIL_TEXTURE_2D_BINDING_SGIS"/>
+ <enum name="GL_DISTANCE_ATTENUATION_SGIS"/>
+ <enum name="GL_DITHER"/>
+ <enum name="GL_DOUBLEBUFFER"/>
+ <enum name="GL_DRAW_BUFFER"/>
+ <enum name="GL_DRAW_BUFFER_EXT"/>
+ <enum name="GL_EDGE_FLAG"/>
+ <enum name="GL_EDGE_FLAG_ARRAY"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_COUNT_EXT"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_STRIDE"/>
+ <enum name="GL_FEEDBACK_BUFFER_SIZE"/>
+ <enum name="GL_FEEDBACK_BUFFER_TYPE"/>
+ <enum name="GL_FOG"/>
+ <enum name="GL_FOG_COLOR"/>
+ <enum name="GL_FOG_DENSITY"/>
+ <enum name="GL_FOG_END"/>
+ <enum name="GL_FOG_FUNC_POINTS_SGIS"/>
+ <enum name="GL_FOG_HINT"/>
+ <enum name="GL_FOG_INDEX"/>
+ <enum name="GL_FOG_MODE"/>
+ <enum name="GL_FOG_OFFSET_SGIX"/>
+ <enum name="GL_FOG_OFFSET_VALUE_SGIX"/>
+ <enum name="GL_FOG_START"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT0_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHTING_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX"/>
+ <enum name="GL_FRAMEZOOM_FACTOR_SGIX"/>
+ <enum name="GL_FRAMEZOOM_SGIX"/>
+ <enum name="GL_FRONT_FACE"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT_SGIS"/>
+ <enum name="GL_GREEN_BIAS"/>
+ <enum name="GL_GREEN_BITS"/>
+ <enum name="GL_GREEN_SCALE"/>
+ <enum name="GL_HISTOGRAM_EXT"/>
+ <enum name="GL_INDEX_ARRAY"/>
+ <enum name="GL_INDEX_ARRAY_COUNT_EXT"/>
+ <enum name="GL_INDEX_ARRAY_STRIDE"/>
+ <enum name="GL_INDEX_ARRAY_TYPE"/>
+ <enum name="GL_INDEX_BITS"/>
+ <enum name="GL_INDEX_CLEAR_VALUE"/>
+ <enum name="GL_INDEX_LOGIC_OP"/>
+ <enum name="GL_INDEX_MODE"/>
+ <enum name="GL_INDEX_OFFSET"/>
+ <enum name="GL_INDEX_SHIFT"/>
+ <enum name="GL_INDEX_WRITEMASK"/>
+ <enum name="GL_INSTRUMENT_MEASUREMENTS_SGIX"/>
+ <enum name="GL_INTERLACE_SGIX"/>
+ <enum name="GL_IR_INSTRUMENT1_SGIX"/>
+ <enum name="GL_LIGHT0"/>
+ <enum name="GL_LIGHT1"/>
+ <enum name="GL_LIGHT2"/>
+ <enum name="GL_LIGHT3"/>
+ <enum name="GL_LIGHT4"/>
+ <enum name="GL_LIGHT5"/>
+ <enum name="GL_LIGHT6"/>
+ <enum name="GL_LIGHT7"/>
+ <enum name="GL_LIGHTING"/>
+ <enum name="GL_LIGHT_ENV_MODE_SGIX"/>
+ <enum name="GL_LIGHT_MODEL_AMBIENT"/>
+ <enum name="GL_LIGHT_MODEL_COLOR_CONTROL"/>
+ <enum name="GL_LIGHT_MODEL_LOCAL_VIEWER"/>
+ <enum name="GL_LIGHT_MODEL_TWO_SIDE"/>
+ <enum name="GL_LINE_SMOOTH"/>
+ <enum name="GL_LINE_SMOOTH_HINT"/>
+ <enum name="GL_LINE_STIPPLE"/>
+ <enum name="GL_LINE_STIPPLE_PATTERN"/>
+ <enum name="GL_LINE_STIPPLE_REPEAT"/>
+ <enum name="GL_LINE_WIDTH"/>
+ <enum name="GL_LINE_WIDTH_GRANULARITY"/>
+ <enum name="GL_LINE_WIDTH_RANGE"/>
+ <enum name="GL_LIST_BASE"/>
+ <enum name="GL_LIST_INDEX"/>
+ <enum name="GL_LIST_MODE"/>
+ <enum name="GL_LOGIC_OP"/>
+ <enum name="GL_LOGIC_OP_MODE"/>
+ <enum name="GL_MAP1_COLOR_4"/>
+ <enum name="GL_MAP1_GRID_DOMAIN"/>
+ <enum name="GL_MAP1_GRID_SEGMENTS"/>
+ <enum name="GL_MAP1_INDEX"/>
+ <enum name="GL_MAP1_NORMAL"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP1_VERTEX_3"/>
+ <enum name="GL_MAP1_VERTEX_4"/>
+ <enum name="GL_MAP2_COLOR_4"/>
+ <enum name="GL_MAP2_GRID_DOMAIN"/>
+ <enum name="GL_MAP2_GRID_SEGMENTS"/>
+ <enum name="GL_MAP2_INDEX"/>
+ <enum name="GL_MAP2_NORMAL"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP2_VERTEX_3"/>
+ <enum name="GL_MAP2_VERTEX_4"/>
+ <enum name="GL_MAP_COLOR"/>
+ <enum name="GL_MAP_STENCIL"/>
+ <enum name="GL_MATRIX_MODE"/>
+ <enum name="GL_MAX_3D_TEXTURE_SIZE_EXT"/>
+ <enum name="GL_MAX_4D_TEXTURE_SIZE_SGIS"/>
+ <enum name="GL_MAX_ACTIVE_LIGHTS_SGIX"/>
+ <enum name="GL_MAX_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum name="GL_MAX_ASYNC_HISTOGRAM_SGIX"/>
+ <enum name="GL_MAX_ASYNC_READ_PIXELS_SGIX"/>
+ <enum name="GL_MAX_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum name="GL_MAX_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_MAX_CLIENT_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_MAX_CLIPMAP_DEPTH_SGIX"/>
+ <enum name="GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum name="GL_MAX_CLIP_DISTANCES"/>
+ <enum name="GL_MAX_CLIP_PLANES"/>
+ <enum name="GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI"/>
+ <enum name="GL_MAX_EVAL_ORDER"/>
+ <enum name="GL_MAX_FOG_FUNC_POINTS_SGIS"/>
+ <enum name="GL_MAX_FRAGMENT_LIGHTS_SGIX"/>
+ <enum name="GL_MAX_FRAMEZOOM_FACTOR_SGIX"/>
+ <enum name="GL_MAX_LIGHTS"/>
+ <enum name="GL_MAX_LIST_NESTING"/>
+ <enum name="GL_MAX_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_MAX_NAME_STACK_DEPTH"/>
+ <enum name="GL_MAX_PIXEL_MAP_TABLE"/>
+ <enum name="GL_MAX_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_MAX_TEXTURE_SIZE"/>
+ <enum name="GL_MAX_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MAX_VIEWPORT_DIMS"/>
+ <enum name="GL_MINMAX_EXT"/>
+ <enum name="GL_MODELVIEW0_MATRIX_EXT"/>
+ <enum name="GL_MODELVIEW0_STACK_DEPTH_EXT"/>
+ <enum name="GL_MODELVIEW_MATRIX"/>
+ <enum name="GL_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_MULTISAMPLE_SGIS"/>
+ <enum name="GL_NAME_STACK_DEPTH"/>
+ <enum name="GL_NORMALIZE"/>
+ <enum name="GL_NORMAL_ARRAY"/>
+ <enum name="GL_NORMAL_ARRAY_COUNT_EXT"/>
+ <enum name="GL_NORMAL_ARRAY_STRIDE"/>
+ <enum name="GL_NORMAL_ARRAY_TYPE"/>
+ <enum name="GL_PACK_ALIGNMENT"/>
+ <enum name="GL_PACK_CMYK_HINT_EXT"/>
+ <enum name="GL_PACK_IMAGE_DEPTH_SGIS"/>
+ <enum name="GL_PACK_IMAGE_HEIGHT_EXT"/>
+ <enum name="GL_PACK_LSB_FIRST"/>
+ <enum name="GL_PACK_RESAMPLE_SGIX"/>
+ <enum name="GL_PACK_ROW_LENGTH"/>
+ <enum name="GL_PACK_SKIP_IMAGES_EXT"/>
+ <enum name="GL_PACK_SKIP_PIXELS"/>
+ <enum name="GL_PACK_SKIP_ROWS"/>
+ <enum name="GL_PACK_SKIP_VOLUMES_SGIS"/>
+ <enum name="GL_PACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum name="GL_PACK_SWAP_BYTES"/>
+ <enum name="GL_PERSPECTIVE_CORRECTION_HINT"/>
+ <enum name="GL_PIXEL_MAP_A_TO_A_SIZE"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B_SIZE"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R_SIZE"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R_SIZE"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S_SIZE"/>
+ <enum name="GL_PIXEL_TEXTURE_SGIS"/>
+ <enum name="GL_PIXEL_TEX_GEN_MODE_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_SGIX"/>
+ <enum name="GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_CACHE_INCREMENT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_CACHE_SIZE_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_DEPTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_HEIGHT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_WIDTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_HEIGHT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_WIDTH_SGIX"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_SGIS"/>
+ <enum name="GL_POINT_SIZE"/>
+ <enum name="GL_POINT_SIZE_GRANULARITY"/>
+ <enum name="GL_POINT_SIZE_MAX_SGIS"/>
+ <enum name="GL_POINT_SIZE_MIN_SGIS"/>
+ <enum name="GL_POINT_SIZE_RANGE"/>
+ <enum name="GL_POINT_SMOOTH"/>
+ <enum name="GL_POINT_SMOOTH_HINT"/>
+ <enum name="GL_POLYGON_MODE"/>
+ <enum name="GL_POLYGON_OFFSET_BIAS_EXT"/>
+ <enum name="GL_POLYGON_OFFSET_FACTOR"/>
+ <enum name="GL_POLYGON_OFFSET_FILL"/>
+ <enum name="GL_POLYGON_OFFSET_LINE"/>
+ <enum name="GL_POLYGON_OFFSET_POINT"/>
+ <enum name="GL_POLYGON_OFFSET_UNITS"/>
+ <enum name="GL_POLYGON_SMOOTH"/>
+ <enum name="GL_POLYGON_SMOOTH_HINT"/>
+ <enum name="GL_POLYGON_STIPPLE"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_SCALE_SGI"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_SCALE_EXT"/>
+ <enum name="GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX"/>
+ <enum name="GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX"/>
+ <enum name="GL_PROJECTION_MATRIX"/>
+ <enum name="GL_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_READ_BUFFER"/>
+ <enum name="GL_READ_BUFFER_EXT"/>
+ <enum name="GL_READ_BUFFER_NV"/>
+ <enum name="GL_RED_BIAS"/>
+ <enum name="GL_RED_BITS"/>
+ <enum name="GL_RED_SCALE"/>
+ <enum name="GL_REFERENCE_PLANE_EQUATION_SGIX"/>
+ <enum name="GL_REFERENCE_PLANE_SGIX"/>
+ <enum name="GL_RENDER_MODE"/>
+ <enum name="GL_RESCALE_NORMAL_EXT"/>
+ <enum name="GL_RGBA_MODE"/>
+ <enum name="GL_SAMPLES_SGIS"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_MASK_SGIS"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE_SGIS"/>
+ <enum name="GL_SAMPLE_BUFFERS_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_INVERT_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_VALUE_SGIS"/>
+ <enum name="GL_SAMPLE_PATTERN_SGIS"/>
+ <enum name="GL_SCISSOR_BOX"/>
+ <enum name="GL_SCISSOR_TEST"/>
+ <enum name="GL_SELECTION_BUFFER_SIZE"/>
+ <enum name="GL_SEPARABLE_2D_EXT"/>
+ <enum name="GL_SHADE_MODEL"/>
+ <enum name="GL_SHARED_TEXTURE_PALETTE_EXT"/>
+ <enum name="GL_SMOOTH_LINE_WIDTH_GRANULARITY"/>
+ <enum name="GL_SMOOTH_LINE_WIDTH_RANGE"/>
+ <enum name="GL_SMOOTH_POINT_SIZE_GRANULARITY"/>
+ <enum name="GL_SMOOTH_POINT_SIZE_RANGE"/>
+ <enum name="GL_SPRITE_AXIS_SGIX"/>
+ <enum name="GL_SPRITE_MODE_SGIX"/>
+ <enum name="GL_SPRITE_SGIX"/>
+ <enum name="GL_SPRITE_TRANSLATION_SGIX"/>
+ <enum name="GL_STENCIL_BITS"/>
+ <enum name="GL_STENCIL_CLEAR_VALUE"/>
+ <enum name="GL_STENCIL_FAIL"/>
+ <enum name="GL_STENCIL_FUNC"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_PASS"/>
+ <enum name="GL_STENCIL_REF"/>
+ <enum name="GL_STENCIL_TEST"/>
+ <enum name="GL_STENCIL_VALUE_MASK"/>
+ <enum name="GL_STENCIL_WRITEMASK"/>
+ <enum name="GL_STEREO"/>
+ <enum name="GL_SUBPIXEL_BITS"/>
+ <enum name="GL_TEXTURE_1D"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_TEXTURE_3D_BINDING_EXT"/>
+ <enum name="GL_TEXTURE_3D_EXT"/>
+ <enum name="GL_TEXTURE_4D_BINDING_SGIS"/>
+ <enum name="GL_TEXTURE_4D_SGIS"/>
+ <enum name="GL_TEXTURE_BINDING_1D"/>
+ <enum name="GL_TEXTURE_BINDING_2D"/>
+ <enum name="GL_TEXTURE_BINDING_3D"/>
+ <enum name="GL_TEXTURE_COLOR_TABLE_SGI"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_COUNT_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_SIZE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_STRIDE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_TYPE"/>
+ <enum name="GL_TEXTURE_GEN_Q"/>
+ <enum name="GL_TEXTURE_GEN_R"/>
+ <enum name="GL_TEXTURE_GEN_S"/>
+ <enum name="GL_TEXTURE_GEN_T"/>
+ <enum name="GL_TEXTURE_MATRIX"/>
+ <enum name="GL_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_UNPACK_ALIGNMENT"/>
+ <enum name="GL_UNPACK_CMYK_HINT_EXT"/>
+ <enum name="GL_UNPACK_IMAGE_DEPTH_SGIS"/>
+ <enum name="GL_UNPACK_IMAGE_HEIGHT_EXT"/>
+ <enum name="GL_UNPACK_LSB_FIRST"/>
+ <enum name="GL_UNPACK_RESAMPLE_SGIX"/>
+ <enum name="GL_UNPACK_ROW_LENGTH"/>
+ <enum name="GL_UNPACK_SKIP_IMAGES_EXT"/>
+ <enum name="GL_UNPACK_SKIP_PIXELS"/>
+ <enum name="GL_UNPACK_SKIP_ROWS"/>
+ <enum name="GL_UNPACK_SKIP_VOLUMES_SGIS"/>
+ <enum name="GL_UNPACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum name="GL_UNPACK_SWAP_BYTES"/>
+ <enum name="GL_VERTEX_ARRAY"/>
+ <enum name="GL_VERTEX_ARRAY_COUNT_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_SIZE"/>
+ <enum name="GL_VERTEX_ARRAY_STRIDE"/>
+ <enum name="GL_VERTEX_ARRAY_TYPE"/>
+ <enum name="GL_VERTEX_PRECLIP_HINT_SGIX"/>
+ <enum name="GL_VERTEX_PRECLIP_SGIX"/>
+ <enum name="GL_VIEWPORT"/>
+ <enum name="GL_ZOOM_X"/>
+ <enum name="GL_ZOOM_Y"/>
+ </group>
+
+ <group name="GetPointervPName">
+ <enum name="GL_COLOR_ARRAY_POINTER"/>
+ <enum name="GL_COLOR_ARRAY_POINTER_EXT"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_POINTER"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_POINTER_EXT"/>
+ <enum name="GL_FEEDBACK_BUFFER_POINTER"/>
+ <enum name="GL_INDEX_ARRAY_POINTER"/>
+ <enum name="GL_INDEX_ARRAY_POINTER_EXT"/>
+ <enum name="GL_INSTRUMENT_BUFFER_POINTER_SGIX"/>
+ <enum name="GL_NORMAL_ARRAY_POINTER"/>
+ <enum name="GL_NORMAL_ARRAY_POINTER_EXT"/>
+ <enum name="GL_SELECTION_BUFFER_POINTER"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_POINTER_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_POINTER"/>
+ <enum name="GL_VERTEX_ARRAY_POINTER_EXT"/>
+ </group>
+
+ <group name="GetTextureParameter">
+ <enum name="GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_LEVEL_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_MODE_SGIS"/>
+ <enum name="GL_DUAL_TEXTURE_SELECT_SGIS"/>
+ <enum name="GL_GENERATE_MIPMAP_SGIS"/>
+ <enum name="GL_POST_TEXTURE_FILTER_BIAS_SGIX"/>
+ <enum name="GL_POST_TEXTURE_FILTER_SCALE_SGIX"/>
+ <enum name="GL_QUAD_TEXTURE_SELECT_SGIS"/>
+ <enum name="GL_SHADOW_AMBIENT_SGIX"/>
+ <enum name="GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS"/>
+ <enum name="GL_TEXTURE_4DSIZE_SGIS"/>
+ <enum name="GL_TEXTURE_ALPHA_SIZE"/>
+ <enum name="GL_TEXTURE_BASE_LEVEL_SGIS"/>
+ <enum name="GL_TEXTURE_BLUE_SIZE"/>
+ <enum name="GL_TEXTURE_BORDER"/>
+ <enum name="GL_TEXTURE_BORDER_COLOR"/>
+ <enum name="GL_TEXTURE_BORDER_COLOR_NV"/>
+ <enum name="GL_TEXTURE_CLIPMAP_CENTER_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_DEPTH_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_FRAME_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_OFFSET_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum name="GL_TEXTURE_COMPARE_OPERATOR_SGIX"/>
+ <enum name="GL_TEXTURE_COMPARE_SGIX"/>
+ <enum name="GL_TEXTURE_COMPONENTS"/>
+ <enum name="GL_TEXTURE_DEPTH_EXT"/>
+ <enum name="GL_TEXTURE_FILTER4_SIZE_SGIS"/>
+ <enum name="GL_TEXTURE_GEQUAL_R_SGIX"/>
+ <enum name="GL_TEXTURE_GREEN_SIZE"/>
+ <enum name="GL_TEXTURE_HEIGHT"/>
+ <enum name="GL_TEXTURE_INTENSITY_SIZE"/>
+ <enum name="GL_TEXTURE_INTERNAL_FORMAT"/>
+ <enum name="GL_TEXTURE_LEQUAL_R_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_R_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_S_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_T_SGIX"/>
+ <enum name="GL_TEXTURE_LUMINANCE_SIZE"/>
+ <enum name="GL_TEXTURE_MAG_FILTER"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_R_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_S_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_T_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_LEVEL_SGIS"/>
+ <enum name="GL_TEXTURE_MAX_LOD_SGIS"/>
+ <enum name="GL_TEXTURE_MIN_FILTER"/>
+ <enum name="GL_TEXTURE_MIN_LOD_SGIS"/>
+ <enum name="GL_TEXTURE_PRIORITY"/>
+ <enum name="GL_TEXTURE_RED_SIZE"/>
+ <enum name="GL_TEXTURE_RESIDENT"/>
+ <enum name="GL_TEXTURE_WIDTH"/>
+ <enum name="GL_TEXTURE_WRAP_Q_SGIS"/>
+ <enum name="GL_TEXTURE_WRAP_R_EXT"/>
+ <enum name="GL_TEXTURE_WRAP_S"/>
+ <enum name="GL_TEXTURE_WRAP_T"/>
+ </group>
+
+ <group name="HintMode">
+ <enum name="GL_DONT_CARE"/>
+ <enum name="GL_FASTEST"/>
+ <enum name="GL_NICEST"/>
+ </group>
+
+ <group name="HintTarget">
+ <enum name="GL_ALLOW_DRAW_FRG_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_MEM_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_OBJ_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_WIN_HINT_PGI"/>
+ <enum name="GL_ALWAYS_FAST_HINT_PGI"/>
+ <enum name="GL_ALWAYS_SOFT_HINT_PGI"/>
+ <enum name="GL_BACK_NORMALS_HINT_PGI"/>
+ <enum name="GL_BINNING_CONTROL_HINT_QCOM"/>
+ <enum name="GL_CLIP_FAR_HINT_PGI"/>
+ <enum name="GL_CLIP_NEAR_HINT_PGI"/>
+ <enum name="GL_CLIP_VOLUME_CLIPPING_HINT_EXT"/>
+ <enum name="GL_CONSERVE_MEMORY_HINT_PGI"/>
+ <enum name="GL_CONVOLUTION_HINT_SGIX"/>
+ <enum name="GL_FOG_HINT"/>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT"/>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB"/>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES"/>
+ <enum name="GL_FULL_STIPPLE_HINT_PGI"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT_SGIS"/>
+ <enum name="GL_LINE_QUALITY_HINT_SGIX"/>
+ <enum name="GL_LINE_SMOOTH_HINT"/>
+ <enum name="GL_MATERIAL_SIDE_HINT_PGI"/>
+ <enum name="GL_MAX_VERTEX_HINT_PGI"/>
+ <enum name="GL_MULTISAMPLE_FILTER_HINT_NV"/>
+ <enum name="GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI"/>
+ <enum name="GL_NATIVE_GRAPHICS_END_HINT_PGI"/>
+ <enum name="GL_PACK_CMYK_HINT_EXT"/>
+ <enum name="GL_PERSPECTIVE_CORRECTION_HINT"/>
+ <enum name="GL_PHONG_HINT_WIN"/>
+ <enum name="GL_POINT_SMOOTH_HINT"/>
+ <enum name="GL_POLYGON_SMOOTH_HINT"/>
+ <enum name="GL_PREFER_DOUBLEBUFFER_HINT_PGI"/>
+ <enum name="GL_PROGRAM_BINARY_RETRIEVABLE_HINT"/>
+ <enum name="GL_RECLAIM_MEMORY_HINT_PGI"/>
+ <enum name="GL_SCALEBIAS_HINT_SGIX"/>
+ <enum name="GL_STRICT_DEPTHFUNC_HINT_PGI"/>
+ <enum name="GL_STRICT_LIGHTING_HINT_PGI"/>
+ <enum name="GL_STRICT_SCISSOR_HINT_PGI"/>
+ <enum name="GL_TEXTURE_COMPRESSION_HINT"/>
+ <enum name="GL_TEXTURE_COMPRESSION_HINT_ARB"/>
+ <enum name="GL_TEXTURE_MULTI_BUFFER_HINT_SGIX"/>
+ <enum name="GL_TEXTURE_STORAGE_HINT_APPLE"/>
+ <enum name="GL_TRANSFORM_HINT_APPLE"/>
+ <enum name="GL_UNPACK_CMYK_HINT_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_STORAGE_HINT_APPLE"/>
+ <enum name="GL_VERTEX_CONSISTENT_HINT_PGI"/>
+ <enum name="GL_VERTEX_DATA_HINT_PGI"/>
+ <enum name="GL_VERTEX_PRECLIP_HINT_SGIX"/>
+ <enum name="GL_VERTEX_PRECLIP_SGIX"/>
+ <enum name="GL_WIDE_LINE_HINT_PGI"/>
+ </group>
+
+ <group name="HistogramTargetEXT">
+ <enum name="GL_HISTOGRAM"/>
+ <enum name="GL_HISTOGRAM_EXT"/>
+ <enum name="GL_PROXY_HISTOGRAM"/>
+ <enum name="GL_PROXY_HISTOGRAM_EXT"/>
+ </group>
+
+ <group name="IndexPointerType">
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ </group>
+
+ <group name="InterleavedArrayFormat">
+ <enum name="GL_C3F_V3F"/>
+ <enum name="GL_C4F_N3F_V3F"/>
+ <enum name="GL_C4UB_V2F"/>
+ <enum name="GL_C4UB_V3F"/>
+ <enum name="GL_N3F_V3F"/>
+ <enum name="GL_T2F_C3F_V3F"/>
+ <enum name="GL_T2F_C4F_N3F_V3F"/>
+ <enum name="GL_T2F_C4UB_V3F"/>
+ <enum name="GL_T2F_N3F_V3F"/>
+ <enum name="GL_T2F_V3F"/>
+ <enum name="GL_T4F_C4F_N3F_V4F"/>
+ <enum name="GL_T4F_V4F"/>
+ <enum name="GL_V2F"/>
+ <enum name="GL_V3F"/>
+ </group>
+
+ <group name="LightEnvModeSGIX">
+ <enum name="GL_ADD"/>
+ <enum name="GL_MODULATE"/>
+ <enum name="GL_REPLACE"/>
+ </group>
+
+ <group name="LightEnvParameterSGIX">
+ <enum name="GL_LIGHT_ENV_MODE_SGIX"/>
+ </group>
+
+ <group name="LightModelColorControl">
+ <enum name="GL_SEPARATE_SPECULAR_COLOR"/>
+ <enum name="GL_SEPARATE_SPECULAR_COLOR_EXT"/>
+ <enum name="GL_SINGLE_COLOR"/>
+ <enum name="GL_SINGLE_COLOR_EXT"/>
+ </group>
+
+ <group name="LightModelParameter">
+ <enum name="GL_LIGHT_MODEL_AMBIENT"/>
+ <enum name="GL_LIGHT_MODEL_COLOR_CONTROL"/>
+ <enum name="GL_LIGHT_MODEL_COLOR_CONTROL_EXT"/>
+ <enum name="GL_LIGHT_MODEL_LOCAL_VIEWER"/>
+ <enum name="GL_LIGHT_MODEL_TWO_SIDE"/>
+ </group>
+
+ <group name="LightName">
+ <enum name="GL_FRAGMENT_LIGHT0_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT1_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT2_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT3_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT4_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT5_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT6_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT7_SGIX"/>
+ <enum name="GL_LIGHT0"/>
+ <enum name="GL_LIGHT1"/>
+ <enum name="GL_LIGHT2"/>
+ <enum name="GL_LIGHT3"/>
+ <enum name="GL_LIGHT4"/>
+ <enum name="GL_LIGHT5"/>
+ <enum name="GL_LIGHT6"/>
+ <enum name="GL_LIGHT7"/>
+ </group>
+
+ <group name="LightParameter">
+ <enum name="GL_AMBIENT"/>
+ <enum name="GL_CONSTANT_ATTENUATION"/>
+ <enum name="GL_DIFFUSE"/>
+ <enum name="GL_LINEAR_ATTENUATION"/>
+ <enum name="GL_POSITION"/>
+ <enum name="GL_QUADRATIC_ATTENUATION"/>
+ <enum name="GL_SPECULAR"/>
+ <enum name="GL_SPOT_CUTOFF"/>
+ <enum name="GL_SPOT_DIRECTION"/>
+ <enum name="GL_SPOT_EXPONENT"/>
+ </group>
+
+ <group name="ListMode">
+ <enum name="GL_COMPILE"/>
+ <enum name="GL_COMPILE_AND_EXECUTE"/>
+ </group>
+
+ <group name="ListNameType">
+ <enum name="GL_2_BYTES"/>
+ <enum name="GL_3_BYTES"/>
+ <enum name="GL_4_BYTES"/>
+ <enum name="GL_BYTE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ <enum name="GL_UNSIGNED_BYTE"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ </group>
+
+ <group name="ListParameterName">
+ <enum name="GL_LIST_PRIORITY_SGIX"/>
+ </group>
+
+ <group name="LogicOp">
+ <enum name="GL_AND"/>
+ <enum name="GL_AND_INVERTED"/>
+ <enum name="GL_AND_REVERSE"/>
+ <enum name="GL_CLEAR"/>
+ <enum name="GL_COPY"/>
+ <enum name="GL_COPY_INVERTED"/>
+ <enum name="GL_EQUIV"/>
+ <enum name="GL_INVERT"/>
+ <enum name="GL_NAND"/>
+ <enum name="GL_NOOP"/>
+ <enum name="GL_NOR"/>
+ <enum name="GL_OR"/>
+ <enum name="GL_OR_INVERTED"/>
+ <enum name="GL_OR_REVERSE"/>
+ <enum name="GL_SET"/>
+ <enum name="GL_XOR"/>
+ </group>
+
+ <group name="MapBufferUsageMask">
+ <enum name="GL_CLIENT_STORAGE_BIT"/>
+ <enum name="GL_DYNAMIC_STORAGE_BIT"/>
+ <enum name="GL_MAP_COHERENT_BIT"/>
+ <enum name="GL_MAP_FLUSH_EXPLICIT_BIT"/>
+ <enum name="GL_MAP_FLUSH_EXPLICIT_BIT_EXT"/>
+ <enum name="GL_MAP_INVALIDATE_BUFFER_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_BUFFER_BIT_EXT"/>
+ <enum name="GL_MAP_INVALIDATE_RANGE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_RANGE_BIT_EXT"/>
+ <enum name="GL_MAP_PERSISTENT_BIT"/>
+ <enum name="GL_MAP_READ_BIT"/>
+ <enum name="GL_MAP_READ_BIT_EXT"/>
+ <enum name="GL_MAP_UNSYNCHRONIZED_BIT"/>
+ <enum name="GL_MAP_UNSYNCHRONIZED_BIT_EXT"/>
+ <enum name="GL_MAP_WRITE_BIT"/>
+ <enum name="GL_MAP_WRITE_BIT_EXT"/>
+ </group>
+
+ <group name="MapTarget">
+ <enum name="GL_GEOMETRY_DEFORMATION_SGIX"/>
+ <enum name="GL_MAP1_COLOR_4"/>
+ <enum name="GL_MAP1_INDEX"/>
+ <enum name="GL_MAP1_NORMAL"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP1_VERTEX_3"/>
+ <enum name="GL_MAP1_VERTEX_4"/>
+ <enum name="GL_MAP2_COLOR_4"/>
+ <enum name="GL_MAP2_INDEX"/>
+ <enum name="GL_MAP2_NORMAL"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP2_VERTEX_3"/>
+ <enum name="GL_MAP2_VERTEX_4"/>
+ <enum name="GL_TEXTURE_DEFORMATION_SGIX"/>
+ </group>
+
+ <group name="MapTextureFormatINTEL">
+ <enum name="GL_LAYOUT_DEFAULT_INTEL"/>
+ <enum name="GL_LAYOUT_LINEAR_CPU_CACHED_INTEL"/>
+ <enum name="GL_LAYOUT_LINEAR_INTEL"/>
+ </group>
+
+ <group name="MaterialFace">
+ <enum name="GL_BACK"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ </group>
+
+ <group name="MaterialParameter">
+ <enum name="GL_AMBIENT"/>
+ <enum name="GL_AMBIENT_AND_DIFFUSE"/>
+ <enum name="GL_COLOR_INDEXES"/>
+ <enum name="GL_DIFFUSE"/>
+ <enum name="GL_EMISSION"/>
+ <enum name="GL_SHININESS"/>
+ <enum name="GL_SPECULAR"/>
+ </group>
+
+ <group name="MatrixMode">
+ <enum name="GL_MODELVIEW"/>
+ <enum name="GL_MODELVIEW0_EXT"/>
+ <enum name="GL_PROJECTION"/>
+ <enum name="GL_TEXTURE"/>
+ </group>
+
+ <group name="MemoryBarrierMask">
+ <enum name="GL_ALL_BARRIER_BITS"/>
+ <enum name="GL_ALL_BARRIER_BITS_EXT"/>
+ <enum name="GL_ATOMIC_COUNTER_BARRIER_BIT"/>
+ <enum name="GL_ATOMIC_COUNTER_BARRIER_BIT_EXT"/>
+ <enum name="GL_BUFFER_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_BUFFER_UPDATE_BARRIER_BIT_EXT"/>
+ <enum name="GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_COMMAND_BARRIER_BIT"/>
+ <enum name="GL_COMMAND_BARRIER_BIT_EXT"/>
+ <enum name="GL_ELEMENT_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_ELEMENT_ARRAY_BARRIER_BIT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_BARRIER_BIT"/>
+ <enum name="GL_FRAMEBUFFER_BARRIER_BIT_EXT"/>
+ <enum name="GL_PIXEL_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_PIXEL_BUFFER_BARRIER_BIT_EXT"/>
+ <enum name="GL_QUERY_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV"/>
+ <enum name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"/>
+ <enum name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT"/>
+ <enum name="GL_SHADER_STORAGE_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_FETCH_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_FETCH_BARRIER_BIT_EXT"/>
+ <enum name="GL_TEXTURE_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_UPDATE_BARRIER_BIT_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT"/>
+ <enum name="GL_UNIFORM_BARRIER_BIT"/>
+ <enum name="GL_UNIFORM_BARRIER_BIT_EXT"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT"/>
+ </group>
+
+ <group name="MeshMode1">
+ <enum name="GL_LINE"/>
+ <enum name="GL_POINT"/>
+ </group>
+
+ <group name="MeshMode2">
+ <enum name="GL_FILL"/>
+ <enum name="GL_LINE"/>
+ <enum name="GL_POINT"/>
+ </group>
+
+ <group name="MinmaxTargetEXT">
+ <enum name="GL_MINMAX"/>
+ <enum name="GL_MINMAX_EXT"/>
+ </group>
+
+ <group name="NormalPointerType">
+ <enum name="GL_BYTE"/>
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ </group>
+
+ <group name="PixelCopyType">
+ <enum name="GL_COLOR"/>
+ <enum name="GL_COLOR_EXT"/>
+ <enum name="GL_DEPTH"/>
+ <enum name="GL_DEPTH_EXT"/>
+ <enum name="GL_STENCIL"/>
+ <enum name="GL_STENCIL_EXT"/>
+ </group>
+
+ <group name="PixelFormat">
+ <enum name="GL_ABGR_EXT"/>
+ <enum name="GL_ALPHA"/>
+ <enum name="GL_BLUE"/>
+ <enum name="GL_CMYKA_EXT"/>
+ <enum name="GL_CMYK_EXT"/>
+ <enum name="GL_COLOR_INDEX"/>
+ <enum name="GL_DEPTH_COMPONENT"/>
+ <enum name="GL_GREEN"/>
+ <enum name="GL_LUMINANCE"/>
+ <enum name="GL_LUMINANCE_ALPHA"/>
+ <enum name="GL_RED"/>
+ <enum name="GL_RED_EXT"/>
+ <enum name="GL_RGB"/>
+ <enum name="GL_RGBA"/>
+ <enum name="GL_STENCIL_INDEX"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_YCRCB_422_SGIX"/>
+ <enum name="GL_YCRCB_444_SGIX"/>
+ </group>
+
+ <group name="InternalFormat" comment="Was PixelInternalFormat">
+ <enum name="GL_ALPHA12"/>
+ <enum name="GL_ALPHA16"/>
+ <enum name="GL_ALPHA16_ICC_SGIX"/>
+ <enum name="GL_ALPHA4"/>
+ <enum name="GL_ALPHA8"/>
+ <enum name="GL_ALPHA_ICC_SGIX"/>
+ <enum name="GL_DEPTH_COMPONENT16_SGIX"/>
+ <enum name="GL_DEPTH_COMPONENT24_SGIX"/>
+ <enum name="GL_DEPTH_COMPONENT32_SGIX"/>
+ <enum name="GL_DUAL_ALPHA12_SGIS"/>
+ <enum name="GL_DUAL_ALPHA16_SGIS"/>
+ <enum name="GL_DUAL_ALPHA4_SGIS"/>
+ <enum name="GL_DUAL_ALPHA8_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY12_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY16_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY4_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY8_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE12_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE16_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE4_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE8_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE_ALPHA4_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE_ALPHA8_SGIS"/>
+ <enum name="GL_INTENSITY"/>
+ <enum name="GL_INTENSITY12"/>
+ <enum name="GL_INTENSITY16"/>
+ <enum name="GL_INTENSITY16_ICC_SGIX"/>
+ <enum name="GL_INTENSITY4"/>
+ <enum name="GL_INTENSITY8"/>
+ <enum name="GL_INTENSITY_ICC_SGIX"/>
+ <enum name="GL_LUMINANCE12"/>
+ <enum name="GL_LUMINANCE12_ALPHA12"/>
+ <enum name="GL_LUMINANCE12_ALPHA4"/>
+ <enum name="GL_LUMINANCE16"/>
+ <enum name="GL_LUMINANCE16_ALPHA16"/>
+ <enum name="GL_LUMINANCE16_ALPHA8_ICC_SGIX"/>
+ <enum name="GL_LUMINANCE16_ICC_SGIX"/>
+ <enum name="GL_LUMINANCE4"/>
+ <enum name="GL_LUMINANCE4_ALPHA4"/>
+ <enum name="GL_LUMINANCE6_ALPHA2"/>
+ <enum name="GL_LUMINANCE8"/>
+ <enum name="GL_LUMINANCE8_ALPHA8"/>
+ <enum name="GL_LUMINANCE_ALPHA_ICC_SGIX"/>
+ <enum name="GL_LUMINANCE_ICC_SGIX"/>
+ <enum name="GL_QUAD_ALPHA4_SGIS"/>
+ <enum name="GL_QUAD_ALPHA8_SGIS"/>
+ <enum name="GL_QUAD_INTENSITY4_SGIS"/>
+ <enum name="GL_QUAD_INTENSITY8_SGIS"/>
+ <enum name="GL_QUAD_LUMINANCE4_SGIS"/>
+ <enum name="GL_QUAD_LUMINANCE8_SGIS"/>
+ <enum name="GL_R3_G3_B2"/>
+ <enum name="GL_R5_G6_B5_A8_ICC_SGIX"/>
+ <enum name="GL_R5_G6_B5_ICC_SGIX"/>
+ <enum name="GL_RGB10"/>
+ <enum name="GL_RGB10_A2"/>
+ <enum name="GL_RGB12"/>
+ <enum name="GL_RGB16"/>
+ <enum name="GL_RGB2_EXT"/>
+ <enum name="GL_RGB4"/>
+ <enum name="GL_RGB5"/>
+ <enum name="GL_RGB5_A1"/>
+ <enum name="GL_RGB8"/>
+ <enum name="GL_RGBA12"/>
+ <enum name="GL_RGBA16"/>
+ <enum name="GL_RGBA2"/>
+ <enum name="GL_RGBA4"/>
+ <enum name="GL_RGBA8"/>
+ <enum name="GL_RGBA_ICC_SGIX"/>
+ <enum name="GL_RGB_ICC_SGIX"/>
+ </group>
+
+ <group name="PixelMap">
+ <enum name="GL_PIXEL_MAP_A_TO_A"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S"/>
+ </group>
+
+ <group name="PixelStoreParameter">
+ <enum name="GL_PACK_ALIGNMENT"/>
+ <enum name="GL_PACK_IMAGE_DEPTH_SGIS"/>
+ <enum name="GL_PACK_IMAGE_HEIGHT"/>
+ <enum name="GL_PACK_IMAGE_HEIGHT_EXT"/>
+ <enum name="GL_PACK_LSB_FIRST"/>
+ <enum name="GL_PACK_RESAMPLE_OML"/>
+ <enum name="GL_PACK_RESAMPLE_SGIX"/>
+ <enum name="GL_PACK_ROW_LENGTH"/>
+ <enum name="GL_PACK_SKIP_IMAGES"/>
+ <enum name="GL_PACK_SKIP_IMAGES_EXT"/>
+ <enum name="GL_PACK_SKIP_PIXELS"/>
+ <enum name="GL_PACK_SKIP_ROWS"/>
+ <enum name="GL_PACK_SKIP_VOLUMES_SGIS"/>
+ <enum name="GL_PACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum name="GL_PACK_SWAP_BYTES"/>
+ <enum name="GL_PIXEL_TILE_CACHE_SIZE_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_DEPTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_HEIGHT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_WIDTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_HEIGHT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_WIDTH_SGIX"/>
+ <enum name="GL_UNPACK_ALIGNMENT"/>
+ <enum name="GL_UNPACK_IMAGE_DEPTH_SGIS"/>
+ <enum name="GL_UNPACK_IMAGE_HEIGHT"/>
+ <enum name="GL_UNPACK_IMAGE_HEIGHT_EXT"/>
+ <enum name="GL_UNPACK_LSB_FIRST"/>
+ <enum name="GL_UNPACK_RESAMPLE_OML"/>
+ <enum name="GL_UNPACK_RESAMPLE_SGIX"/>
+ <enum name="GL_UNPACK_ROW_LENGTH"/>
+ <enum name="GL_UNPACK_ROW_LENGTH_EXT"/>
+ <enum name="GL_UNPACK_SKIP_IMAGES"/>
+ <enum name="GL_UNPACK_SKIP_IMAGES_EXT"/>
+ <enum name="GL_UNPACK_SKIP_PIXELS"/>
+ <enum name="GL_UNPACK_SKIP_PIXELS_EXT"/>
+ <enum name="GL_UNPACK_SKIP_ROWS"/>
+ <enum name="GL_UNPACK_SKIP_ROWS_EXT"/>
+ <enum name="GL_UNPACK_SKIP_VOLUMES_SGIS"/>
+ <enum name="GL_UNPACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum name="GL_UNPACK_SWAP_BYTES"/>
+ </group>
+
+ <group name="PixelStoreResampleMode">
+ <enum name="GL_RESAMPLE_DECIMATE_SGIX"/>
+ <enum name="GL_RESAMPLE_REPLICATE_SGIX"/>
+ <enum name="GL_RESAMPLE_ZERO_FILL_SGIX"/>
+ </group>
+
+ <group name="PixelStoreSubsampleRate">
+ <enum name="GL_PIXEL_SUBSAMPLE_2424_SGIX"/>
+ <enum name="GL_PIXEL_SUBSAMPLE_4242_SGIX"/>
+ <enum name="GL_PIXEL_SUBSAMPLE_4444_SGIX"/>
+ </group>
+
+ <group name="PixelTexGenMode">
+ <enum name="GL_LUMINANCE"/>
+ <enum name="GL_LUMINANCE_ALPHA"/>
+ <enum name="GL_NONE"/>
+ <enum name="GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX"/>
+ <enum name="GL_RGB"/>
+ <enum name="GL_RGBA"/>
+ </group>
+
+ <group name="PixelTexGenParameterNameSGIS">
+ <enum name="GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS"/>
+ <enum name="GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS"/>
+ </group>
+
+ <group name="PixelTransferParameter">
+ <enum name="GL_ALPHA_BIAS"/>
+ <enum name="GL_ALPHA_SCALE"/>
+ <enum name="GL_BLUE_BIAS"/>
+ <enum name="GL_BLUE_SCALE"/>
+ <enum name="GL_DEPTH_BIAS"/>
+ <enum name="GL_DEPTH_SCALE"/>
+ <enum name="GL_GREEN_BIAS"/>
+ <enum name="GL_GREEN_SCALE"/>
+ <enum name="GL_INDEX_OFFSET"/>
+ <enum name="GL_INDEX_SHIFT"/>
+ <enum name="GL_MAP_COLOR"/>
+ <enum name="GL_MAP_STENCIL"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_SCALE_SGI"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_RED_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_RED_SCALE_EXT"/>
+ <enum name="GL_RED_BIAS"/>
+ <enum name="GL_RED_SCALE"/>
+ </group>
+
+ <group name="PixelType">
+ <enum name="GL_BITMAP"/>
+ <enum name="GL_BYTE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ <enum name="GL_UNSIGNED_BYTE"/>
+ <enum name="GL_UNSIGNED_BYTE_3_3_2"/>
+ <enum name="GL_UNSIGNED_BYTE_3_3_2_EXT"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_UNSIGNED_INT_10_10_10_2"/>
+ <enum name="GL_UNSIGNED_INT_10_10_10_2_EXT"/>
+ <enum name="GL_UNSIGNED_INT_8_8_8_8"/>
+ <enum name="GL_UNSIGNED_INT_8_8_8_8_EXT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4_EXT"/>
+ <enum name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ <enum name="GL_UNSIGNED_SHORT_5_5_5_1_EXT"/>
+ </group>
+
+ <group name="PointParameterNameSGIS">
+ <enum name="GL_DISTANCE_ATTENUATION_EXT"/>
+ <enum name="GL_DISTANCE_ATTENUATION_SGIS"/>
+ <enum name="GL_POINT_DISTANCE_ATTENUATION"/>
+ <enum name="GL_POINT_DISTANCE_ATTENUATION_ARB"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_ARB"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_EXT"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_SGIS"/>
+ <enum name="GL_POINT_SIZE_MAX"/>
+ <enum name="GL_POINT_SIZE_MAX_ARB"/>
+ <enum name="GL_POINT_SIZE_MAX_EXT"/>
+ <enum name="GL_POINT_SIZE_MAX_SGIS"/>
+ <enum name="GL_POINT_SIZE_MIN"/>
+ <enum name="GL_POINT_SIZE_MIN_ARB"/>
+ <enum name="GL_POINT_SIZE_MIN_EXT"/>
+ <enum name="GL_POINT_SIZE_MIN_SGIS"/>
+ </group>
+
+ <group name="PolygonMode">
+ <enum name="GL_FILL"/>
+ <enum name="GL_LINE"/>
+ <enum name="GL_POINT"/>
+ </group>
+
+ <group name="PrimitiveType">
+ <enum name="GL_LINES"/>
+ <enum name="GL_LINES_ADJACENCY"/>
+ <enum name="GL_LINES_ADJACENCY_ARB"/>
+ <enum name="GL_LINES_ADJACENCY_EXT"/>
+ <enum name="GL_LINE_LOOP"/>
+ <enum name="GL_LINE_STRIP"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY_ARB"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY_EXT"/>
+ <enum name="GL_PATCHES"/>
+ <enum name="GL_POINTS"/>
+ <enum name="GL_POLYGON"/>
+ <enum name="GL_QUADS"/>
+ <enum name="GL_QUAD_STRIP"/>
+ <enum name="GL_TRIANGLES"/>
+ <enum name="GL_TRIANGLES_ADJACENCY"/>
+ <enum name="GL_TRIANGLES_ADJACENCY_ARB"/>
+ <enum name="GL_TRIANGLES_ADJACENCY_EXT"/>
+ <enum name="GL_TRIANGLE_FAN"/>
+ <enum name="GL_TRIANGLE_STRIP"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY_ARB"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY_EXT"/>
+ </group>
+
+ <group name="ReadBufferMode">
+ <enum name="GL_AUX0"/>
+ <enum name="GL_AUX1"/>
+ <enum name="GL_AUX2"/>
+ <enum name="GL_AUX3"/>
+ <enum name="GL_BACK"/>
+ <enum name="GL_BACK_LEFT"/>
+ <enum name="GL_BACK_RIGHT"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_FRONT_LEFT"/>
+ <enum name="GL_FRONT_RIGHT"/>
+ <enum name="GL_LEFT"/>
+ <enum name="GL_RIGHT"/>
+ </group>
+
+ <group name="RenderingMode">
+ <enum name="GL_FEEDBACK"/>
+ <enum name="GL_RENDER"/>
+ <enum name="GL_SELECT"/>
+ </group>
+
+ <group name="SamplePatternSGIS">
+ <enum name="GL_1PASS_EXT"/>
+ <enum name="GL_1PASS_SGIS"/>
+ <enum name="GL_2PASS_0_EXT"/>
+ <enum name="GL_2PASS_0_SGIS"/>
+ <enum name="GL_2PASS_1_EXT"/>
+ <enum name="GL_2PASS_1_SGIS"/>
+ <enum name="GL_4PASS_0_EXT"/>
+ <enum name="GL_4PASS_0_SGIS"/>
+ <enum name="GL_4PASS_1_EXT"/>
+ <enum name="GL_4PASS_1_SGIS"/>
+ <enum name="GL_4PASS_2_EXT"/>
+ <enum name="GL_4PASS_2_SGIS"/>
+ <enum name="GL_4PASS_3_EXT"/>
+ <enum name="GL_4PASS_3_SGIS"/>
+ </group>
+
+ <group name="SeparableTargetEXT">
+ <enum name="GL_SEPARABLE_2D"/>
+ <enum name="GL_SEPARABLE_2D_EXT"/>
+ </group>
+
+ <group name="ShadingModel">
+ <enum name="GL_FLAT"/>
+ <enum name="GL_SMOOTH"/>
+ </group>
+
+ <group name="StencilFunction">
+ <enum name="GL_ALWAYS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_GEQUAL"/>
+ <enum name="GL_GREATER"/>
+ <enum name="GL_LEQUAL"/>
+ <enum name="GL_LESS"/>
+ <enum name="GL_NEVER"/>
+ <enum name="GL_NOTEQUAL"/>
+ </group>
+
+ <group name="StencilOp">
+ <enum name="GL_DECR"/>
+ <enum name="GL_INCR"/>
+ <enum name="GL_INVERT"/>
+ <enum name="GL_KEEP"/>
+ <enum name="GL_REPLACE"/>
+ <enum name="GL_ZERO"/>
+ </group>
+
+ <group name="StringName">
+ <enum name="GL_EXTENSIONS"/>
+ <enum name="GL_RENDERER"/>
+ <enum name="GL_VENDOR"/>
+ <enum name="GL_VERSION"/>
+ </group>
+
+ <group name="TexCoordPointerType">
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ </group>
+
+ <group name="TextureCoordName">
+ <enum name="GL_S"/>
+ <enum name="GL_T"/>
+ <enum name="GL_R"/>
+ <enum name="GL_Q"/>
+ </group>
+
+ <group name="TextureEnvMode">
+ <enum name="GL_ADD"/>
+ <enum name="GL_BLEND"/>
+ <enum name="GL_DECAL"/>
+ <enum name="GL_MODULATE"/>
+ <enum name="GL_REPLACE_EXT"/>
+ <enum name="GL_TEXTURE_ENV_BIAS_SGIX"/>
+ </group>
+
+ <group name="TextureEnvParameter">
+ <enum name="GL_TEXTURE_ENV_COLOR"/>
+ <enum name="GL_TEXTURE_ENV_MODE"/>
+ </group>
+
+ <group name="TextureEnvTarget">
+ <enum name="GL_TEXTURE_ENV"/>
+ </group>
+
+ <group name="TextureFilterFuncSGIS">
+ <enum name="GL_FILTER4_SGIS"/>
+ </group>
+
+ <group name="TextureGenMode">
+ <enum name="GL_EYE_DISTANCE_TO_LINE_SGIS"/>
+ <enum name="GL_EYE_DISTANCE_TO_POINT_SGIS"/>
+ <enum name="GL_EYE_LINEAR"/>
+ <enum name="GL_OBJECT_DISTANCE_TO_LINE_SGIS"/>
+ <enum name="GL_OBJECT_DISTANCE_TO_POINT_SGIS"/>
+ <enum name="GL_OBJECT_LINEAR"/>
+ <enum name="GL_SPHERE_MAP"/>
+ </group>
+
+ <group name="TextureGenParameter">
+ <enum name="GL_EYE_LINE_SGIS"/>
+ <enum name="GL_EYE_PLANE"/>
+ <enum name="GL_EYE_POINT_SGIS"/>
+ <enum name="GL_OBJECT_LINE_SGIS"/>
+ <enum name="GL_OBJECT_PLANE"/>
+ <enum name="GL_OBJECT_POINT_SGIS"/>
+ <enum name="GL_TEXTURE_GEN_MODE"/>
+ </group>
+
+ <group name="TextureMagFilter">
+ <enum name="GL_FILTER4_SGIS"/>
+ <enum name="GL_LINEAR"/>
+ <enum name="GL_LINEAR_DETAIL_ALPHA_SGIS"/>
+ <enum name="GL_LINEAR_DETAIL_COLOR_SGIS"/>
+ <enum name="GL_LINEAR_DETAIL_SGIS"/>
+ <enum name="GL_LINEAR_SHARPEN_ALPHA_SGIS"/>
+ <enum name="GL_LINEAR_SHARPEN_COLOR_SGIS"/>
+ <enum name="GL_LINEAR_SHARPEN_SGIS"/>
+ <enum name="GL_NEAREST"/>
+ <enum name="GL_PIXEL_TEX_GEN_Q_CEILING_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_Q_ROUND_SGIX"/>
+ </group>
+
+ <group name="TextureMinFilter">
+ <enum name="GL_FILTER4_SGIS"/>
+ <enum name="GL_LINEAR"/>
+ <enum name="GL_LINEAR_CLIPMAP_LINEAR_SGIX"/>
+ <enum name="GL_LINEAR_CLIPMAP_NEAREST_SGIX"/>
+ <enum name="GL_LINEAR_MIPMAP_LINEAR"/>
+ <enum name="GL_LINEAR_MIPMAP_NEAREST"/>
+ <enum name="GL_NEAREST"/>
+ <enum name="GL_NEAREST_CLIPMAP_LINEAR_SGIX"/>
+ <enum name="GL_NEAREST_CLIPMAP_NEAREST_SGIX"/>
+ <enum name="GL_NEAREST_MIPMAP_LINEAR"/>
+ <enum name="GL_NEAREST_MIPMAP_NEAREST"/>
+ <enum name="GL_PIXEL_TEX_GEN_Q_CEILING_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_Q_ROUND_SGIX"/>
+ </group>
+
+ <group name="TextureParameterName">
+ <enum name="GL_DETAIL_TEXTURE_LEVEL_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_MODE_SGIS"/>
+ <enum name="GL_DUAL_TEXTURE_SELECT_SGIS"/>
+ <enum name="GL_GENERATE_MIPMAP"/>
+ <enum name="GL_GENERATE_MIPMAP_SGIS"/>
+ <enum name="GL_POST_TEXTURE_FILTER_BIAS_SGIX"/>
+ <enum name="GL_POST_TEXTURE_FILTER_SCALE_SGIX"/>
+ <enum name="GL_QUAD_TEXTURE_SELECT_SGIS"/>
+ <enum name="GL_SHADOW_AMBIENT_SGIX"/>
+ <enum name="GL_TEXTURE_BORDER_COLOR"/>
+ <enum name="GL_TEXTURE_CLIPMAP_CENTER_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_DEPTH_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_FRAME_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_OFFSET_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum name="GL_TEXTURE_COMPARE_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_R_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_S_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_T_SGIX"/>
+ <enum name="GL_TEXTURE_MAG_FILTER"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_R_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_S_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_T_SGIX"/>
+ <enum name="GL_TEXTURE_MIN_FILTER"/>
+ <enum name="GL_TEXTURE_PRIORITY"/>
+ <enum name="GL_TEXTURE_PRIORITY_EXT"/>
+ <enum name="GL_TEXTURE_WRAP_Q_SGIS"/>
+ <enum name="GL_TEXTURE_WRAP_R"/>
+ <enum name="GL_TEXTURE_WRAP_R_EXT"/>
+ <enum name="GL_TEXTURE_WRAP_R_OES"/>
+ <enum name="GL_TEXTURE_WRAP_S"/>
+ <enum name="GL_TEXTURE_WRAP_T"/>
+ </group>
+
+ <group name="TextureTarget">
+ <enum name="GL_DETAIL_TEXTURE_2D_SGIS"/>
+ <enum name="GL_PROXY_TEXTURE_1D"/>
+ <enum name="GL_PROXY_TEXTURE_1D_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_2D"/>
+ <enum name="GL_PROXY_TEXTURE_2D_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_3D"/>
+ <enum name="GL_PROXY_TEXTURE_3D_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_4D_SGIS"/>
+ <enum name="GL_TEXTURE_1D"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_TEXTURE_3D"/>
+ <enum name="GL_TEXTURE_3D_EXT"/>
+ <enum name="GL_TEXTURE_3D_OES"/>
+ <enum name="GL_TEXTURE_4D_SGIS"/>
+ <enum name="GL_TEXTURE_BASE_LEVEL"/>
+ <enum name="GL_TEXTURE_BASE_LEVEL_SGIS"/>
+ <enum name="GL_TEXTURE_MAX_LEVEL"/>
+ <enum name="GL_TEXTURE_MAX_LEVEL_SGIS"/>
+ <enum name="GL_TEXTURE_MAX_LOD"/>
+ <enum name="GL_TEXTURE_MAX_LOD_SGIS"/>
+ <enum name="GL_TEXTURE_MIN_LOD"/>
+ <enum name="GL_TEXTURE_MIN_LOD_SGIS"/>
+ </group>
+
+ <group name="TextureWrapMode">
+ <enum name="GL_CLAMP"/>
+ <enum name="GL_CLAMP_TO_BORDER"/>
+ <enum name="GL_CLAMP_TO_BORDER_ARB"/>
+ <enum name="GL_CLAMP_TO_BORDER_NV"/>
+ <enum name="GL_CLAMP_TO_BORDER_SGIS"/>
+ <enum name="GL_CLAMP_TO_EDGE"/>
+ <enum name="GL_CLAMP_TO_EDGE_SGIS"/>
+ <enum name="GL_REPEAT"/>
+ </group>
+
+ <group name="UseProgramStageMask">
+ <enum name="GL_VERTEX_SHADER_BIT"/>
+ <enum name="GL_VERTEX_SHADER_BIT_EXT"/>
+ <enum name="GL_FRAGMENT_SHADER_BIT"/>
+ <enum name="GL_FRAGMENT_SHADER_BIT_EXT"/>
+ <enum name="GL_GEOMETRY_SHADER_BIT"/>
+ <enum name="GL_TESS_CONTROL_SHADER_BIT"/>
+ <enum name="GL_TESS_EVALUATION_SHADER_BIT"/>
+ <enum name="GL_COMPUTE_SHADER_BIT"/>
+ <enum name="GL_ALL_SHADER_BITS"/>
+ <enum name="GL_ALL_SHADER_BITS_EXT"/>
+ </group>
+
+ <group name="VertexPointerType">
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ </group>
+ </groups>
+
+ <!-- SECTION: GL enumerant (token) definitions. -->
+
+ <!-- Bitmasks each have their own namespace, although bits are
+ sometimes reused for other purposes -->
+
+ <enums namespace="GL" group="AttribMask" type="bitmask">
+ <enum value="0x00000001" name="GL_CURRENT_BIT"/>
+ <enum value="0x00000002" name="GL_POINT_BIT"/>
+ <enum value="0x00000004" name="GL_LINE_BIT"/>
+ <enum value="0x00000008" name="GL_POLYGON_BIT"/>
+ <enum value="0x00000010" name="GL_POLYGON_STIPPLE_BIT"/>
+ <enum value="0x00000020" name="GL_PIXEL_MODE_BIT"/>
+ <enum value="0x00000040" name="GL_LIGHTING_BIT"/>
+ <enum value="0x00000080" name="GL_FOG_BIT"/>
+ <enum value="0x00000100" name="GL_DEPTH_BUFFER_BIT"/>
+ <enum value="0x00000200" name="GL_ACCUM_BUFFER_BIT"/>
+ <enum value="0x00000400" name="GL_STENCIL_BUFFER_BIT"/>
+ <enum value="0x00000800" name="GL_VIEWPORT_BIT"/>
+ <enum value="0x00001000" name="GL_TRANSFORM_BIT"/>
+ <enum value="0x00002000" name="GL_ENABLE_BIT"/>
+ <enum value="0x00004000" name="GL_COLOR_BUFFER_BIT"/>
+ <enum value="0x00008000" name="GL_HINT_BIT"/>
+ <enum value="0x00010000" name="GL_EVAL_BIT"/>
+ <enum value="0x00020000" name="GL_LIST_BIT"/>
+ <enum value="0x00040000" name="GL_TEXTURE_BIT"/>
+ <enum value="0x00080000" name="GL_SCISSOR_BIT"/>
+ <enum value="0x20000000" name="GL_MULTISAMPLE_BIT"/>
+ <enum value="0x20000000" name="GL_MULTISAMPLE_BIT_ARB"/>
+ <enum value="0x20000000" name="GL_MULTISAMPLE_BIT_EXT"/>
+ <enum value="0x20000000" name="GL_MULTISAMPLE_BIT_3DFX"/>
+ <enum value="0xFFFFFFFF" name="GL_ALL_ATTRIB_BITS" comment="Guaranteed to mark all attribute groups at once"/>
+ </enums>
+
+ <enums namespace="GL" group="ClearBufferMask" type="bitmask" comment="GL_{DEPTH,ACCUM,STENCIL,COLOR}_BUFFER_BIT also lie in this namespace">
+ <enum value="0x00008000" name="GL_COVERAGE_BUFFER_BIT_NV" comment="Collides with AttribMask bit GL_HINT_BIT. OK since this token is for OpenGL ES 2, which doesn't have attribute groups."/>
+ <!-- Also used: 0x00004700 for bits reused from AttribMask above -->
+ </enums>
+
+ <enums namespace="GL" group="ClientAttribMask" type="bitmask">
+ <enum value="0x00000001" name="GL_CLIENT_PIXEL_STORE_BIT"/>
+ <enum value="0x00000002" name="GL_CLIENT_VERTEX_ARRAY_BIT"/>
+ <enum value="0xFFFFFFFF" name="GL_CLIENT_ALL_ATTRIB_BITS"/>
+ </enums>
+
+ <enums namespace="GL" group="ContextFlagMask" type="bitmask" comment="Should be shared with WGL/GLX, but aren't since the FORWARD_COMPATIBLE and DEBUG values are swapped vs. WGL/GLX.">
+ <enum value="0x00000001" name="GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT"/>
+ <enum value="0x00000002" name="GL_CONTEXT_FLAG_DEBUG_BIT"/>
+ <enum value="0x00000002" name="GL_CONTEXT_FLAG_DEBUG_BIT_KHR"/>
+ <enum value="0x00000004" name="GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB"/>
+ </enums>
+
+ <enums namespace="GL" group="ContextProfileMask" type="bitmask">
+ <enum value="0x00000001" name="GL_CONTEXT_CORE_PROFILE_BIT"/>
+ <enum value="0x00000002" name="GL_CONTEXT_COMPATIBILITY_PROFILE_BIT"/>
+ </enums>
+
+ <enums namespace="GL" group="MapBufferUsageMask" type="bitmask">
+ <enum value="0x0001" name="GL_MAP_READ_BIT"/>
+ <enum value="0x0001" name="GL_MAP_READ_BIT_EXT"/>
+ <enum value="0x0002" name="GL_MAP_WRITE_BIT"/>
+ <enum value="0x0002" name="GL_MAP_WRITE_BIT_EXT"/>
+ <enum value="0x0004" name="GL_MAP_INVALIDATE_RANGE_BIT"/>
+ <enum value="0x0004" name="GL_MAP_INVALIDATE_RANGE_BIT_EXT"/>
+ <enum value="0x0008" name="GL_MAP_INVALIDATE_BUFFER_BIT"/>
+ <enum value="0x0008" name="GL_MAP_INVALIDATE_BUFFER_BIT_EXT"/>
+ <enum value="0x0010" name="GL_MAP_FLUSH_EXPLICIT_BIT"/>
+ <enum value="0x0010" name="GL_MAP_FLUSH_EXPLICIT_BIT_EXT"/>
+ <enum value="0x0020" name="GL_MAP_UNSYNCHRONIZED_BIT"/>
+ <enum value="0x0020" name="GL_MAP_UNSYNCHRONIZED_BIT_EXT"/>
+ <enum value="0x0040" name="GL_MAP_PERSISTENT_BIT"/>
+ <enum value="0x0080" name="GL_MAP_COHERENT_BIT"/>
+ <enum value="0x0100" name="GL_DYNAMIC_STORAGE_BIT"/>
+ <enum value="0x0200" name="GL_CLIENT_STORAGE_BIT"/>
+ </enums>
+
+ <enums namespace="GL" group="MemoryBarrierMask" type="bitmask">
+ <enum value="0x00000001" name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"/>
+ <enum value="0x00000001" name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT"/>
+ <enum value="0x00000002" name="GL_ELEMENT_ARRAY_BARRIER_BIT"/>
+ <enum value="0x00000002" name="GL_ELEMENT_ARRAY_BARRIER_BIT_EXT"/>
+ <enum value="0x00000004" name="GL_UNIFORM_BARRIER_BIT"/>
+ <enum value="0x00000004" name="GL_UNIFORM_BARRIER_BIT_EXT"/>
+ <enum value="0x00000008" name="GL_TEXTURE_FETCH_BARRIER_BIT"/>
+ <enum value="0x00000008" name="GL_TEXTURE_FETCH_BARRIER_BIT_EXT"/>
+ <enum value="0x00000010" name="GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV"/>
+ <enum value="0x00000020" name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"/>
+ <enum value="0x00000020" name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT"/>
+ <enum value="0x00000040" name="GL_COMMAND_BARRIER_BIT"/>
+ <enum value="0x00000040" name="GL_COMMAND_BARRIER_BIT_EXT"/>
+ <enum value="0x00000080" name="GL_PIXEL_BUFFER_BARRIER_BIT"/>
+ <enum value="0x00000080" name="GL_PIXEL_BUFFER_BARRIER_BIT_EXT"/>
+ <enum value="0x00000100" name="GL_TEXTURE_UPDATE_BARRIER_BIT"/>
+ <enum value="0x00000100" name="GL_TEXTURE_UPDATE_BARRIER_BIT_EXT"/>
+ <enum value="0x00000200" name="GL_BUFFER_UPDATE_BARRIER_BIT"/>
+ <enum value="0x00000200" name="GL_BUFFER_UPDATE_BARRIER_BIT_EXT"/>
+ <enum value="0x00000400" name="GL_FRAMEBUFFER_BARRIER_BIT"/>
+ <enum value="0x00000400" name="GL_FRAMEBUFFER_BARRIER_BIT_EXT"/>
+ <enum value="0x00000800" name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT"/>
+ <enum value="0x00000800" name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT"/>
+ <enum value="0x00001000" name="GL_ATOMIC_COUNTER_BARRIER_BIT"/>
+ <enum value="0x00001000" name="GL_ATOMIC_COUNTER_BARRIER_BIT_EXT"/>
+ <enum value="0x00002000" name="GL_SHADER_STORAGE_BARRIER_BIT"/>
+ <enum value="0x00004000" name="GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT"/>
+ <enum value="0x00008000" name="GL_QUERY_BUFFER_BARRIER_BIT"/>
+ <enum value="0xFFFFFFFF" name="GL_ALL_BARRIER_BITS"/>
+ <enum value="0xFFFFFFFF" name="GL_ALL_BARRIER_BITS_EXT"/>
+ </enums>
+
+ <enums namespace="GL" group="SyncObjectMask" type="bitmask">
+ <enum value="0x00000001" name="GL_SYNC_FLUSH_COMMANDS_BIT"/>
+ <enum value="0x00000001" name="GL_SYNC_FLUSH_COMMANDS_BIT_APPLE"/>
+ </enums>
+
+ <enums namespace="GL" group="UseProgramStageMask" type="bitmask">
+ <enum value="0x00000001" name="GL_VERTEX_SHADER_BIT"/>
+ <enum value="0x00000001" name="GL_VERTEX_SHADER_BIT_EXT"/>
+ <enum value="0x00000002" name="GL_FRAGMENT_SHADER_BIT"/>
+ <enum value="0x00000002" name="GL_FRAGMENT_SHADER_BIT_EXT"/>
+ <enum value="0x00000004" name="GL_GEOMETRY_SHADER_BIT"/>
+ <enum value="0x00000008" name="GL_TESS_CONTROL_SHADER_BIT"/>
+ <enum value="0x00000010" name="GL_TESS_EVALUATION_SHADER_BIT"/>
+ <enum value="0x00000020" name="GL_COMPUTE_SHADER_BIT"/>
+ <enum value="0xFFFFFFFF" name="GL_ALL_SHADER_BITS"/>
+ <enum value="0xFFFFFFFF" name="GL_ALL_SHADER_BITS_EXT"/>
+ </enums>
+
+ <!-- Bitmasks defined by vendor extensions -->
+
+ <enums namespace="GL" group="TextureStorageMaskAMD" type="bitmask">
+ <enum value="0x00000001" name="GL_TEXTURE_STORAGE_SPARSE_BIT_AMD"/>
+ </enums>
+
+ <enums namespace="GL" group="FragmentShaderDestMaskATI" type="bitmask">
+ <enum value="0x00000001" name="GL_RED_BIT_ATI"/>
+ <enum value="0x00000002" name="GL_GREEN_BIT_ATI"/>
+ <enum value="0x00000004" name="GL_BLUE_BIT_ATI"/>
+ </enums>
+
+ <enums namespace="GL" group="FragmentShaderDestModMaskATI" type="bitmask">
+ <enum value="0x00000001" name="GL_2X_BIT_ATI"/>
+ <enum value="0x00000002" name="GL_4X_BIT_ATI"/>
+ <enum value="0x00000004" name="GL_8X_BIT_ATI"/>
+ <enum value="0x00000008" name="GL_HALF_BIT_ATI"/>
+ <enum value="0x00000010" name="GL_QUARTER_BIT_ATI"/>
+ <enum value="0x00000020" name="GL_EIGHTH_BIT_ATI"/>
+ <enum value="0x00000040" name="GL_SATURATE_BIT_ATI"/>
+ </enums>
+
+ <enums namespace="GL" group="FragmentShaderColorModMaskATI" type="bitmask">
+ <!-- Also used: 0x00000001 for GL_2X_BIT_ATI reused from FragmentShaderDestModMaskAT above -->
+ <enum value="0x00000002" name="GL_COMP_BIT_ATI"/>
+ <enum value="0x00000004" name="GL_NEGATE_BIT_ATI"/>
+ <enum value="0x00000008" name="GL_BIAS_BIT_ATI"/>
+ </enums>
+
+ <enums namespace="GL" group="TraceMaskMESA" type="bitmask">
+ <enum value="0x0001" name="GL_TRACE_OPERATIONS_BIT_MESA"/>
+ <enum value="0x0002" name="GL_TRACE_PRIMITIVES_BIT_MESA"/>
+ <enum value="0x0004" name="GL_TRACE_ARRAYS_BIT_MESA"/>
+ <enum value="0x0008" name="GL_TRACE_TEXTURES_BIT_MESA"/>
+ <enum value="0x0010" name="GL_TRACE_PIXELS_BIT_MESA"/>
+ <enum value="0x0020" name="GL_TRACE_ERRORS_BIT_MESA"/>
+ <enum value="0xFFFF" name="GL_TRACE_ALL_BITS_MESA"/>
+ </enums>
+
+ <enums namespace="GL" group="PathRenderingMaskNV" type="bitmask">
+ <enum value="0x01" name="GL_BOLD_BIT_NV"/>
+ <enum value="0x02" name="GL_ITALIC_BIT_NV"/>
+ <enum value="0x01" name="GL_GLYPH_WIDTH_BIT_NV"/>
+ <enum value="0x02" name="GL_GLYPH_HEIGHT_BIT_NV"/>
+ <enum value="0x04" name="GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV"/>
+ <enum value="0x08" name="GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV"/>
+ <enum value="0x10" name="GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV"/>
+ <enum value="0x20" name="GL_GLYPH_VERTICAL_BEARING_X_BIT_NV"/>
+ <enum value="0x40" name="GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV"/>
+ <enum value="0x80" name="GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV"/>
+ <enum value="0x100" name="GL_GLYPH_HAS_KERNING_BIT_NV"/>
+ <enum value="0x00010000" name="GL_FONT_X_MIN_BOUNDS_BIT_NV"/>
+ <enum value="0x00020000" name="GL_FONT_Y_MIN_BOUNDS_BIT_NV"/>
+ <enum value="0x00040000" name="GL_FONT_X_MAX_BOUNDS_BIT_NV"/>
+ <enum value="0x00080000" name="GL_FONT_Y_MAX_BOUNDS_BIT_NV"/>
+ <enum value="0x00100000" name="GL_FONT_UNITS_PER_EM_BIT_NV"/>
+ <enum value="0x00200000" name="GL_FONT_ASCENDER_BIT_NV"/>
+ <enum value="0x00400000" name="GL_FONT_DESCENDER_BIT_NV"/>
+ <enum value="0x00800000" name="GL_FONT_HEIGHT_BIT_NV"/>
+ <enum value="0x01000000" name="GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV"/>
+ <enum value="0x02000000" name="GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV"/>
+ <enum value="0x04000000" name="GL_FONT_UNDERLINE_POSITION_BIT_NV"/>
+ <enum value="0x08000000" name="GL_FONT_UNDERLINE_THICKNESS_BIT_NV"/>
+ <enum value="0x10000000" name="GL_FONT_HAS_KERNING_BIT_NV"/>
+ </enums>
+
+ <enums namespace="GL" group="VertexHintsMaskPGI" type="bitmask">
+ <enum value="0x00000004" name="GL_VERTEX23_BIT_PGI"/>
+ <enum value="0x00000008" name="GL_VERTEX4_BIT_PGI"/>
+ <enum value="0x00010000" name="GL_COLOR3_BIT_PGI"/>
+ <enum value="0x00020000" name="GL_COLOR4_BIT_PGI"/>
+ <enum value="0x00040000" name="GL_EDGEFLAG_BIT_PGI"/>
+ <enum value="0x00080000" name="GL_INDEX_BIT_PGI"/>
+ <enum value="0x00100000" name="GL_MAT_AMBIENT_BIT_PGI"/>
+ <enum value="0x00200000" name="GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI"/>
+ <enum value="0x00400000" name="GL_MAT_DIFFUSE_BIT_PGI"/>
+ <enum value="0x00800000" name="GL_MAT_EMISSION_BIT_PGI"/>
+ <enum value="0x01000000" name="GL_MAT_COLOR_INDEXES_BIT_PGI"/>
+ <enum value="0x02000000" name="GL_MAT_SHININESS_BIT_PGI"/>
+ <enum value="0x04000000" name="GL_MAT_SPECULAR_BIT_PGI"/>
+ <enum value="0x08000000" name="GL_NORMAL_BIT_PGI"/>
+ <enum value="0x10000000" name="GL_TEXCOORD1_BIT_PGI"/>
+ <enum value="0x20000000" name="GL_TEXCOORD2_BIT_PGI"/>
+ <enum value="0x40000000" name="GL_TEXCOORD3_BIT_PGI"/>
+ <enum value="0x80000000" name="GL_TEXCOORD4_BIT_PGI"/>
+ </enums>
+
+ <enums namespace="GL" group="BufferBitQCOM" type="bitmask">
+ <enum value="0x00000001" name="GL_COLOR_BUFFER_BIT0_QCOM"/>
+ <enum value="0x00000002" name="GL_COLOR_BUFFER_BIT1_QCOM"/>
+ <enum value="0x00000004" name="GL_COLOR_BUFFER_BIT2_QCOM"/>
+ <enum value="0x00000008" name="GL_COLOR_BUFFER_BIT3_QCOM"/>
+ <enum value="0x00000010" name="GL_COLOR_BUFFER_BIT4_QCOM"/>
+ <enum value="0x00000020" name="GL_COLOR_BUFFER_BIT5_QCOM"/>
+ <enum value="0x00000040" name="GL_COLOR_BUFFER_BIT6_QCOM"/>
+ <enum value="0x00000080" name="GL_COLOR_BUFFER_BIT7_QCOM"/>
+ <enum value="0x00000100" name="GL_DEPTH_BUFFER_BIT0_QCOM"/>
+ <enum value="0x00000200" name="GL_DEPTH_BUFFER_BIT1_QCOM"/>
+ <enum value="0x00000400" name="GL_DEPTH_BUFFER_BIT2_QCOM"/>
+ <enum value="0x00000800" name="GL_DEPTH_BUFFER_BIT3_QCOM"/>
+ <enum value="0x00001000" name="GL_DEPTH_BUFFER_BIT4_QCOM"/>
+ <enum value="0x00002000" name="GL_DEPTH_BUFFER_BIT5_QCOM"/>
+ <enum value="0x00004000" name="GL_DEPTH_BUFFER_BIT6_QCOM"/>
+ <enum value="0x00008000" name="GL_DEPTH_BUFFER_BIT7_QCOM"/>
+ <enum value="0x00010000" name="GL_STENCIL_BUFFER_BIT0_QCOM"/>
+ <enum value="0x00020000" name="GL_STENCIL_BUFFER_BIT1_QCOM"/>
+ <enum value="0x00040000" name="GL_STENCIL_BUFFER_BIT2_QCOM"/>
+ <enum value="0x00080000" name="GL_STENCIL_BUFFER_BIT3_QCOM"/>
+ <enum value="0x00100000" name="GL_STENCIL_BUFFER_BIT4_QCOM"/>
+ <enum value="0x00200000" name="GL_STENCIL_BUFFER_BIT5_QCOM"/>
+ <enum value="0x00400000" name="GL_STENCIL_BUFFER_BIT6_QCOM"/>
+ <enum value="0x00800000" name="GL_STENCIL_BUFFER_BIT7_QCOM"/>
+ <enum value="0x01000000" name="GL_MULTISAMPLE_BUFFER_BIT0_QCOM"/>
+ <enum value="0x02000000" name="GL_MULTISAMPLE_BUFFER_BIT1_QCOM"/>
+ <enum value="0x04000000" name="GL_MULTISAMPLE_BUFFER_BIT2_QCOM"/>
+ <enum value="0x08000000" name="GL_MULTISAMPLE_BUFFER_BIT3_QCOM"/>
+ <enum value="0x10000000" name="GL_MULTISAMPLE_BUFFER_BIT4_QCOM"/>
+ <enum value="0x20000000" name="GL_MULTISAMPLE_BUFFER_BIT5_QCOM"/>
+ <enum value="0x40000000" name="GL_MULTISAMPLE_BUFFER_BIT6_QCOM"/>
+ <enum value="0x80000000" name="GL_MULTISAMPLE_BUFFER_BIT7_QCOM"/>
+ </enums>
+
+ <enums namespace="GL" group="FfdMaskSGIX" type="bitmask">
+ <enum value="0x00000001" name="GL_TEXTURE_DEFORMATION_BIT_SGIX"/>
+ <enum value="0x00000002" name="GL_GEOMETRY_DEFORMATION_BIT_SGIX"/>
+ </enums>
+
+ <!-- Non-bitmask enums with their own namespace. Generally small numbers
+ used for indexed access. -->
+
+ <enums namespace="GL" group="TriangleListSUN" vendor="SUN">
+ <enum value="0x0001" name="GL_RESTART_SUN"/>
+ <enum value="0x0002" name="GL_REPLACE_MIDDLE_SUN"/>
+ <enum value="0x0003" name="GL_REPLACE_OLDEST_SUN"/>
+ </enums>
+
+ <enums namespace="GL" group="MapTextureFormatINTEL" vendor="INTEL" comment="Texture memory layouts for INTEL_map_texture">
+ <enum value="0" name="GL_LAYOUT_DEFAULT_INTEL"/>
+ <enum value="1" name="GL_LAYOUT_LINEAR_INTEL"/>
+ <enum value="2" name="GL_LAYOUT_LINEAR_CPU_CACHED_INTEL"/>
+ </enums>
+
+ <enums namespace="GL" group="TransformFeedbackTokenNV" vendor="NV" comment="For NV_transform_feedback. No clue why small negative values are used">
+ <enum value="-2" name="GL_NEXT_BUFFER_NV"/>
+ <enum value="-3" name="GL_SKIP_COMPONENTS4_NV"/>
+ <enum value="-4" name="GL_SKIP_COMPONENTS3_NV"/>
+ <enum value="-5" name="GL_SKIP_COMPONENTS2_NV"/>
+ <enum value="-6" name="GL_SKIP_COMPONENTS1_NV"/>
+ </enums>
+
+ <enums namespace="GL" group="PathRenderingTokenNV" vendor="NV">
+ <enum value="0x00" name="GL_CLOSE_PATH_NV"/>
+ <enum value="0x02" name="GL_MOVE_TO_NV"/>
+ <enum value="0x03" name="GL_RELATIVE_MOVE_TO_NV"/>
+ <enum value="0x04" name="GL_LINE_TO_NV"/>
+ <enum value="0x05" name="GL_RELATIVE_LINE_TO_NV"/>
+ <enum value="0x06" name="GL_HORIZONTAL_LINE_TO_NV"/>
+ <enum value="0x07" name="GL_RELATIVE_HORIZONTAL_LINE_TO_NV"/>
+ <enum value="0x08" name="GL_VERTICAL_LINE_TO_NV"/>
+ <enum value="0x09" name="GL_RELATIVE_VERTICAL_LINE_TO_NV"/>
+ <enum value="0x0A" name="GL_QUADRATIC_CURVE_TO_NV"/>
+ <enum value="0x0B" name="GL_RELATIVE_QUADRATIC_CURVE_TO_NV"/>
+ <enum value="0x0C" name="GL_CUBIC_CURVE_TO_NV"/>
+ <enum value="0x0D" name="GL_RELATIVE_CUBIC_CURVE_TO_NV"/>
+ <enum value="0x0E" name="GL_SMOOTH_QUADRATIC_CURVE_TO_NV"/>
+ <enum value="0x0F" name="GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV"/>
+ <enum value="0x10" name="GL_SMOOTH_CUBIC_CURVE_TO_NV"/>
+ <enum value="0x11" name="GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV"/>
+ <enum value="0x12" name="GL_SMALL_CCW_ARC_TO_NV"/>
+ <enum value="0x13" name="GL_RELATIVE_SMALL_CCW_ARC_TO_NV"/>
+ <enum value="0x14" name="GL_SMALL_CW_ARC_TO_NV"/>
+ <enum value="0x15" name="GL_RELATIVE_SMALL_CW_ARC_TO_NV"/>
+ <enum value="0x16" name="GL_LARGE_CCW_ARC_TO_NV"/>
+ <enum value="0x17" name="GL_RELATIVE_LARGE_CCW_ARC_TO_NV"/>
+ <enum value="0x18" name="GL_LARGE_CW_ARC_TO_NV"/>
+ <enum value="0x19" name="GL_RELATIVE_LARGE_CW_ARC_TO_NV"/>
+ <enum value="0xF0" name="GL_RESTART_PATH_NV"/>
+ <enum value="0xF2" name="GL_DUP_FIRST_CUBIC_CURVE_TO_NV"/>
+ <enum value="0xF4" name="GL_DUP_LAST_CUBIC_CURVE_TO_NV"/>
+ <enum value="0xF6" name="GL_RECT_NV"/>
+ <enum value="0xF8" name="GL_CIRCULAR_CCW_ARC_TO_NV"/>
+ <enum value="0xFA" name="GL_CIRCULAR_CW_ARC_TO_NV"/>
+ <enum value="0xFC" name="GL_CIRCULAR_TANGENT_ARC_TO_NV"/>
+ <enum value="0xFE" name="GL_ARC_TO_NV"/>
+ <enum value="0xFF" name="GL_RELATIVE_ARC_TO_NV"/>
+ </enums>
+
+ <!-- The default ("API") enum namespace starts here. While some
+ assigned values may overlap, and different parts of the
+ namespace are reserved for different purposes, it is a single
+ namespace. The "class" attribute indicates some of the reserved
+ purposes but is by no means complete (and cannot be, since many
+ tokens are reused for different purposes in different
+ extensions and API versions). -->
+
+ <enums namespace="GL" group="SpecialNumbers" vendor="ARB" comment="Tokens whose numeric value is intrinsically meaningful">
+ <enum value="0" name="GL_FALSE"/>
+ <enum value="0" name="GL_NO_ERROR"/>
+ <enum value="0" name="GL_ZERO"/>
+ <enum value="0" name="GL_NONE"/>
+ <enum value="0" name="GL_NONE_OES"/>
+ <enum value="1" name="GL_TRUE"/>
+ <enum value="1" name="GL_ONE"/>
+ <enum value="0xFFFFFFFF" name="GL_INVALID_INDEX" type="u" comment="Tagged as uint"/>
+ <enum value="0xFFFFFFFFFFFFFFFF" name="GL_TIMEOUT_IGNORED" type="ull" comment="Tagged as uint64"/>
+ <enum value="0xFFFFFFFFFFFFFFFF" name="GL_TIMEOUT_IGNORED_APPLE" type="ull" comment="Tagged as uint64"/>
+ <enum value="1" name="GL_VERSION_ES_CL_1_0" comment="Not an API enum. API definition macro for ES 1.0/1.1 headers"/>
+ <enum value="1" name="GL_VERSION_ES_CM_1_1" comment="Not an API enum. API definition macro for ES 1.0/1.1 headers"/>
+ <enum value="1" name="GL_VERSION_ES_CL_1_1" comment="Not an API enum. API definition macro for ES 1.0/1.1 headers"/>
+ </enums>
+
+ <enums namespace="GL" start="0x0000" end="0x7FFF" vendor="ARB" comment="Mostly OpenGL 1.0/1.1 enum assignments. Unused ranges should generally remain unused.">
+ <enum value="0x0000" name="GL_POINTS"/>
+ <enum value="0x0001" name="GL_LINES"/>
+ <enum value="0x0002" name="GL_LINE_LOOP"/>
+ <enum value="0x0003" name="GL_LINE_STRIP"/>
+ <enum value="0x0004" name="GL_TRIANGLES"/>
+ <enum value="0x0005" name="GL_TRIANGLE_STRIP"/>
+ <enum value="0x0006" name="GL_TRIANGLE_FAN"/>
+ <enum value="0x0007" name="GL_QUADS"/>
+ <enum value="0x0008" name="GL_QUAD_STRIP"/>
+ <enum value="0x0009" name="GL_POLYGON"/>
+ <enum value="0x000A" name="GL_LINES_ADJACENCY"/>
+ <enum value="0x000A" name="GL_LINES_ADJACENCY_ARB"/>
+ <enum value="0x000A" name="GL_LINES_ADJACENCY_EXT"/>
+ <enum value="0x000B" name="GL_LINE_STRIP_ADJACENCY"/>
+ <enum value="0x000B" name="GL_LINE_STRIP_ADJACENCY_ARB"/>
+ <enum value="0x000B" name="GL_LINE_STRIP_ADJACENCY_EXT"/>
+ <enum value="0x000C" name="GL_TRIANGLES_ADJACENCY"/>
+ <enum value="0x000C" name="GL_TRIANGLES_ADJACENCY_ARB"/>
+ <enum value="0x000C" name="GL_TRIANGLES_ADJACENCY_EXT"/>
+ <enum value="0x000D" name="GL_TRIANGLE_STRIP_ADJACENCY"/>
+ <enum value="0x000D" name="GL_TRIANGLE_STRIP_ADJACENCY_ARB"/>
+ <enum value="0x000D" name="GL_TRIANGLE_STRIP_ADJACENCY_EXT"/>
+ <enum value="0x000E" name="GL_PATCHES"/>
+ <unused start="0x000F" end="0x00FF" comment="Unused for PrimitiveType"/>
+ <enum value="0x0100" name="GL_ACCUM"/>
+ <enum value="0x0101" name="GL_LOAD"/>
+ <enum value="0x0102" name="GL_RETURN"/>
+ <enum value="0x0103" name="GL_MULT"/>
+ <enum value="0x0104" name="GL_ADD"/>
+ <unused start="0x0105" end="0x01FF" comment="Unused for AccumOp"/>
+ <enum value="0x0200" name="GL_NEVER"/>
+ <enum value="0x0201" name="GL_LESS"/>
+ <enum value="0x0202" name="GL_EQUAL"/>
+ <enum value="0x0203" name="GL_LEQUAL"/>
+ <enum value="0x0204" name="GL_GREATER"/>
+ <enum value="0x0205" name="GL_NOTEQUAL"/>
+ <enum value="0x0206" name="GL_GEQUAL"/>
+ <enum value="0x0207" name="GL_ALWAYS"/>
+ <unused start="0x0208" end="0x02FF" comment="Unused for AlphaFunction"/>
+ <enum value="0x0300" name="GL_SRC_COLOR"/>
+ <enum value="0x0301" name="GL_ONE_MINUS_SRC_COLOR"/>
+ <enum value="0x0302" name="GL_SRC_ALPHA"/>
+ <enum value="0x0303" name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <enum value="0x0304" name="GL_DST_ALPHA"/>
+ <enum value="0x0305" name="GL_ONE_MINUS_DST_ALPHA"/>
+ <enum value="0x0306" name="GL_DST_COLOR"/>
+ <enum value="0x0307" name="GL_ONE_MINUS_DST_COLOR"/>
+ <enum value="0x0308" name="GL_SRC_ALPHA_SATURATE"/>
+ <unused start="0x0309" end="0x03FF" comment="Unused for BlendingFactor"/>
+ <enum value="0x0400" name="GL_FRONT_LEFT"/>
+ <enum value="0x0401" name="GL_FRONT_RIGHT"/>
+ <enum value="0x0402" name="GL_BACK_LEFT"/>
+ <enum value="0x0403" name="GL_BACK_RIGHT"/>
+ <enum value="0x0404" name="GL_FRONT"/>
+ <enum value="0x0405" name="GL_BACK"/>
+ <enum value="0x0406" name="GL_LEFT"/>
+ <enum value="0x0407" name="GL_RIGHT"/>
+ <enum value="0x0408" name="GL_FRONT_AND_BACK"/>
+ <enum value="0x0409" name="GL_AUX0"/>
+ <enum value="0x040A" name="GL_AUX1"/>
+ <enum value="0x040B" name="GL_AUX2"/>
+ <enum value="0x040C" name="GL_AUX3"/>
+ <unused start="0x040D" end="0x04FF" comment="Unused for DrawBufferMode"/>
+ <enum value="0x0500" name="GL_INVALID_ENUM"/>
+ <enum value="0x0501" name="GL_INVALID_VALUE"/>
+ <enum value="0x0502" name="GL_INVALID_OPERATION"/>
+ <enum value="0x0503" name="GL_STACK_OVERFLOW"/>
+ <enum value="0x0503" name="GL_STACK_OVERFLOW_KHR"/>
+ <enum value="0x0504" name="GL_STACK_UNDERFLOW"/>
+ <enum value="0x0504" name="GL_STACK_UNDERFLOW_KHR"/>
+ <enum value="0x0505" name="GL_OUT_OF_MEMORY"/>
+ <enum value="0x0506" name="GL_INVALID_FRAMEBUFFER_OPERATION"/>
+ <enum value="0x0506" name="GL_INVALID_FRAMEBUFFER_OPERATION_EXT"/>
+ <enum value="0x0506" name="GL_INVALID_FRAMEBUFFER_OPERATION_OES"/>
+ <unused start="0x0507" end="0x05FF" comment="Unused for ErrorCode"/>
+ <enum value="0x0600" name="GL_2D"/>
+ <enum value="0x0601" name="GL_3D"/>
+ <enum value="0x0602" name="GL_3D_COLOR"/>
+ <enum value="0x0603" name="GL_3D_COLOR_TEXTURE"/>
+ <enum value="0x0604" name="GL_4D_COLOR_TEXTURE"/>
+ <unused start="0x0605" end="0x06FF" comment="Unused for FeedbackType"/>
+ <enum value="0x0700" name="GL_PASS_THROUGH_TOKEN"/>
+ <enum value="0x0701" name="GL_POINT_TOKEN"/>
+ <enum value="0x0702" name="GL_LINE_TOKEN"/>
+ <enum value="0x0703" name="GL_POLYGON_TOKEN"/>
+ <enum value="0x0704" name="GL_BITMAP_TOKEN"/>
+ <enum value="0x0705" name="GL_DRAW_PIXEL_TOKEN"/>
+ <enum value="0x0706" name="GL_COPY_PIXEL_TOKEN"/>
+ <enum value="0x0707" name="GL_LINE_RESET_TOKEN"/>
+ <unused start="0x0708" end="0x07FF" comment="Unused for FeedbackToken"/>
+ <enum value="0x0800" name="GL_EXP"/>
+ <enum value="0x0801" name="GL_EXP2"/>
+ <unused start="0x0802" end="0x08FF" comment="Unused for FogMode"/>
+ <enum value="0x0900" name="GL_CW"/>
+ <enum value="0x0901" name="GL_CCW"/>
+ <unused start="0x0902" end="0x09FF" comment="Unused for FrontFaceDirection"/>
+ <enum value="0x0A00" name="GL_COEFF"/>
+ <enum value="0x0A01" name="GL_ORDER"/>
+ <enum value="0x0A02" name="GL_DOMAIN"/>
+ <unused start="0x0A03" end="0x0AFF" comment="Unused for GetMapQuery"/>
+ <enum value="0x0B00" name="GL_CURRENT_COLOR"/>
+ <enum value="0x0B01" name="GL_CURRENT_INDEX"/>
+ <enum value="0x0B02" name="GL_CURRENT_NORMAL"/>
+ <enum value="0x0B03" name="GL_CURRENT_TEXTURE_COORDS"/>
+ <enum value="0x0B04" name="GL_CURRENT_RASTER_COLOR"/>
+ <enum value="0x0B05" name="GL_CURRENT_RASTER_INDEX"/>
+ <enum value="0x0B06" name="GL_CURRENT_RASTER_TEXTURE_COORDS"/>
+ <enum value="0x0B07" name="GL_CURRENT_RASTER_POSITION"/>
+ <enum value="0x0B08" name="GL_CURRENT_RASTER_POSITION_VALID"/>
+ <enum value="0x0B09" name="GL_CURRENT_RASTER_DISTANCE"/>
+
+ <enum value="0x0B10" name="GL_POINT_SMOOTH"/>
+ <enum value="0x0B11" name="GL_POINT_SIZE"/>
+ <enum value="0x0B12" name="GL_POINT_SIZE_RANGE"/>
+ <enum value="0x0B12" name="GL_SMOOTH_POINT_SIZE_RANGE" alias="GL_POINT_SIZE_RANGE"/>
+ <enum value="0x0B13" name="GL_POINT_SIZE_GRANULARITY"/>
+ <enum value="0x0B13" name="GL_SMOOTH_POINT_SIZE_GRANULARITY" alias="GL_POINT_SIZE_GRANULARITY"/>
+
+ <enum value="0x0B20" name="GL_LINE_SMOOTH"/>
+ <enum value="0x0B21" name="GL_LINE_WIDTH"/>
+ <enum value="0x0B22" name="GL_LINE_WIDTH_RANGE"/>
+ <enum value="0x0B22" name="GL_SMOOTH_LINE_WIDTH_RANGE" alias="GL_LINE_WIDTH_RANGE"/>
+ <enum value="0x0B23" name="GL_LINE_WIDTH_GRANULARITY"/>
+ <enum value="0x0B23" name="GL_SMOOTH_LINE_WIDTH_GRANULARITY" alias="GL_LINE_WIDTH_GRANULARITY"/>
+ <enum value="0x0B24" name="GL_LINE_STIPPLE"/>
+ <enum value="0x0B25" name="GL_LINE_STIPPLE_PATTERN"/>
+ <enum value="0x0B26" name="GL_LINE_STIPPLE_REPEAT"/>
+
+ <enum value="0x0B30" name="GL_LIST_MODE"/>
+ <enum value="0x0B31" name="GL_MAX_LIST_NESTING"/>
+ <enum value="0x0B32" name="GL_LIST_BASE"/>
+ <enum value="0x0B33" name="GL_LIST_INDEX"/>
+
+ <enum value="0x0B40" name="GL_POLYGON_MODE"/>
+ <enum value="0x0B41" name="GL_POLYGON_SMOOTH"/>
+ <enum value="0x0B42" name="GL_POLYGON_STIPPLE"/>
+ <enum value="0x0B43" name="GL_EDGE_FLAG"/>
+ <enum value="0x0B44" name="GL_CULL_FACE"/>
+ <enum value="0x0B45" name="GL_CULL_FACE_MODE"/>
+ <enum value="0x0B46" name="GL_FRONT_FACE"/>
+
+ <enum value="0x0B50" name="GL_LIGHTING"/>
+ <enum value="0x0B51" name="GL_LIGHT_MODEL_LOCAL_VIEWER"/>
+ <enum value="0x0B52" name="GL_LIGHT_MODEL_TWO_SIDE"/>
+ <enum value="0x0B53" name="GL_LIGHT_MODEL_AMBIENT"/>
+ <enum value="0x0B54" name="GL_SHADE_MODEL"/>
+ <enum value="0x0B55" name="GL_COLOR_MATERIAL_FACE"/>
+ <enum value="0x0B56" name="GL_COLOR_MATERIAL_PARAMETER"/>
+ <enum value="0x0B57" name="GL_COLOR_MATERIAL"/>
+
+ <enum value="0x0B60" name="GL_FOG"/>
+ <enum value="0x0B61" name="GL_FOG_INDEX"/>
+ <enum value="0x0B62" name="GL_FOG_DENSITY"/>
+ <enum value="0x0B63" name="GL_FOG_START"/>
+ <enum value="0x0B64" name="GL_FOG_END"/>
+ <enum value="0x0B65" name="GL_FOG_MODE"/>
+ <enum value="0x0B66" name="GL_FOG_COLOR"/>
+
+ <enum value="0x0B70" name="GL_DEPTH_RANGE"/>
+ <enum value="0x0B71" name="GL_DEPTH_TEST"/>
+ <enum value="0x0B72" name="GL_DEPTH_WRITEMASK"/>
+ <enum value="0x0B73" name="GL_DEPTH_CLEAR_VALUE"/>
+ <enum value="0x0B74" name="GL_DEPTH_FUNC"/>
+
+ <enum value="0x0B80" name="GL_ACCUM_CLEAR_VALUE"/>
+
+ <enum value="0x0B90" name="GL_STENCIL_TEST"/>
+ <enum value="0x0B91" name="GL_STENCIL_CLEAR_VALUE"/>
+ <enum value="0x0B92" name="GL_STENCIL_FUNC"/>
+ <enum value="0x0B93" name="GL_STENCIL_VALUE_MASK"/>
+ <enum value="0x0B94" name="GL_STENCIL_FAIL"/>
+ <enum value="0x0B95" name="GL_STENCIL_PASS_DEPTH_FAIL"/>
+ <enum value="0x0B96" name="GL_STENCIL_PASS_DEPTH_PASS"/>
+ <enum value="0x0B97" name="GL_STENCIL_REF"/>
+ <enum value="0x0B98" name="GL_STENCIL_WRITEMASK"/>
+
+ <enum value="0x0BA0" name="GL_MATRIX_MODE"/>
+ <enum value="0x0BA1" name="GL_NORMALIZE"/>
+ <enum value="0x0BA2" name="GL_VIEWPORT"/>
+ <enum value="0x0BA3" name="GL_MODELVIEW_STACK_DEPTH"/>
+ <enum value="0x0BA3" name="GL_MODELVIEW0_STACK_DEPTH_EXT"/>
+ <enum value="0x0BA4" name="GL_PROJECTION_STACK_DEPTH"/>
+ <enum value="0x0BA5" name="GL_TEXTURE_STACK_DEPTH"/>
+ <enum value="0x0BA6" name="GL_MODELVIEW_MATRIX"/>
+ <enum value="0x0BA6" name="GL_MODELVIEW0_MATRIX_EXT"/>
+ <enum value="0x0BA7" name="GL_PROJECTION_MATRIX"/>
+ <enum value="0x0BA8" name="GL_TEXTURE_MATRIX"/>
+
+ <enum value="0x0BB0" name="GL_ATTRIB_STACK_DEPTH"/>
+ <enum value="0x0BB1" name="GL_CLIENT_ATTRIB_STACK_DEPTH"/>
+
+ <enum value="0x0BC0" name="GL_ALPHA_TEST"/>
+ <enum value="0x0BC0" name="GL_ALPHA_TEST_QCOM"/>
+ <enum value="0x0BC1" name="GL_ALPHA_TEST_FUNC"/>
+ <enum value="0x0BC1" name="GL_ALPHA_TEST_FUNC_QCOM"/>
+ <enum value="0x0BC2" name="GL_ALPHA_TEST_REF"/>
+ <enum value="0x0BC2" name="GL_ALPHA_TEST_REF_QCOM"/>
+
+ <enum value="0x0BD0" name="GL_DITHER"/>
+
+ <enum value="0x0BE0" name="GL_BLEND_DST"/>
+ <enum value="0x0BE1" name="GL_BLEND_SRC"/>
+ <enum value="0x0BE2" name="GL_BLEND"/>
+
+ <enum value="0x0BF0" name="GL_LOGIC_OP_MODE"/>
+ <enum value="0x0BF1" name="GL_INDEX_LOGIC_OP"/>
+ <enum value="0x0BF1" name="GL_LOGIC_OP"/>
+ <enum value="0x0BF2" name="GL_COLOR_LOGIC_OP"/>
+
+ <enum value="0x0C00" name="GL_AUX_BUFFERS"/>
+ <enum value="0x0C01" name="GL_DRAW_BUFFER"/>
+ <enum value="0x0C01" name="GL_DRAW_BUFFER_EXT"/>
+ <enum value="0x0C02" name="GL_READ_BUFFER"/>
+ <enum value="0x0C02" name="GL_READ_BUFFER_EXT"/>
+ <enum value="0x0C02" name="GL_READ_BUFFER_NV"/>
+
+ <enum value="0x0C10" name="GL_SCISSOR_BOX"/>
+ <enum value="0x0C11" name="GL_SCISSOR_TEST"/>
+
+ <enum value="0x0C20" name="GL_INDEX_CLEAR_VALUE"/>
+ <enum value="0x0C21" name="GL_INDEX_WRITEMASK"/>
+ <enum value="0x0C22" name="GL_COLOR_CLEAR_VALUE"/>
+ <enum value="0x0C23" name="GL_COLOR_WRITEMASK"/>
+
+ <enum value="0x0C30" name="GL_INDEX_MODE"/>
+ <enum value="0x0C31" name="GL_RGBA_MODE"/>
+ <enum value="0x0C32" name="GL_DOUBLEBUFFER"/>
+ <enum value="0x0C33" name="GL_STEREO"/>
+
+ <enum value="0x0C40" name="GL_RENDER_MODE"/>
+
+ <enum value="0x0C50" name="GL_PERSPECTIVE_CORRECTION_HINT"/>
+ <enum value="0x0C51" name="GL_POINT_SMOOTH_HINT"/>
+ <enum value="0x0C52" name="GL_LINE_SMOOTH_HINT"/>
+ <enum value="0x0C53" name="GL_POLYGON_SMOOTH_HINT"/>
+ <enum value="0x0C54" name="GL_FOG_HINT"/>
+
+ <enum value="0x0C60" name="GL_TEXTURE_GEN_S"/>
+ <enum value="0x0C61" name="GL_TEXTURE_GEN_T"/>
+ <enum value="0x0C62" name="GL_TEXTURE_GEN_R"/>
+ <enum value="0x0C63" name="GL_TEXTURE_GEN_Q"/>
+
+ <enum value="0x0C70" name="GL_PIXEL_MAP_I_TO_I"/>
+ <enum value="0x0C71" name="GL_PIXEL_MAP_S_TO_S"/>
+ <enum value="0x0C72" name="GL_PIXEL_MAP_I_TO_R"/>
+ <enum value="0x0C73" name="GL_PIXEL_MAP_I_TO_G"/>
+ <enum value="0x0C74" name="GL_PIXEL_MAP_I_TO_B"/>
+ <enum value="0x0C75" name="GL_PIXEL_MAP_I_TO_A"/>
+ <enum value="0x0C76" name="GL_PIXEL_MAP_R_TO_R"/>
+ <enum value="0x0C77" name="GL_PIXEL_MAP_G_TO_G"/>
+ <enum value="0x0C78" name="GL_PIXEL_MAP_B_TO_B"/>
+ <enum value="0x0C79" name="GL_PIXEL_MAP_A_TO_A"/>
+
+ <enum value="0x0CB0" name="GL_PIXEL_MAP_I_TO_I_SIZE"/>
+ <enum value="0x0CB1" name="GL_PIXEL_MAP_S_TO_S_SIZE"/>
+ <enum value="0x0CB2" name="GL_PIXEL_MAP_I_TO_R_SIZE"/>
+ <enum value="0x0CB3" name="GL_PIXEL_MAP_I_TO_G_SIZE"/>
+ <enum value="0x0CB4" name="GL_PIXEL_MAP_I_TO_B_SIZE"/>
+ <enum value="0x0CB5" name="GL_PIXEL_MAP_I_TO_A_SIZE"/>
+ <enum value="0x0CB6" name="GL_PIXEL_MAP_R_TO_R_SIZE"/>
+ <enum value="0x0CB7" name="GL_PIXEL_MAP_G_TO_G_SIZE"/>
+ <enum value="0x0CB8" name="GL_PIXEL_MAP_B_TO_B_SIZE"/>
+ <enum value="0x0CB9" name="GL_PIXEL_MAP_A_TO_A_SIZE"/>
+
+ <enum value="0x0CF0" name="GL_UNPACK_SWAP_BYTES"/>
+ <enum value="0x0CF1" name="GL_UNPACK_LSB_FIRST"/>
+ <enum value="0x0CF2" name="GL_UNPACK_ROW_LENGTH"/>
+ <enum value="0x0CF2" name="GL_UNPACK_ROW_LENGTH_EXT"/>
+ <enum value="0x0CF3" name="GL_UNPACK_SKIP_ROWS"/>
+ <enum value="0x0CF3" name="GL_UNPACK_SKIP_ROWS_EXT"/>
+ <enum value="0x0CF4" name="GL_UNPACK_SKIP_PIXELS"/>
+ <enum value="0x0CF4" name="GL_UNPACK_SKIP_PIXELS_EXT"/>
+ <enum value="0x0CF5" name="GL_UNPACK_ALIGNMENT"/>
+
+ <enum value="0x0D00" name="GL_PACK_SWAP_BYTES"/>
+ <enum value="0x0D01" name="GL_PACK_LSB_FIRST"/>
+ <enum value="0x0D02" name="GL_PACK_ROW_LENGTH"/>
+ <enum value="0x0D03" name="GL_PACK_SKIP_ROWS"/>
+ <enum value="0x0D04" name="GL_PACK_SKIP_PIXELS"/>
+ <enum value="0x0D05" name="GL_PACK_ALIGNMENT"/>
+
+ <enum value="0x0D10" name="GL_MAP_COLOR"/>
+ <enum value="0x0D11" name="GL_MAP_STENCIL"/>
+ <enum value="0x0D12" name="GL_INDEX_SHIFT"/>
+ <enum value="0x0D13" name="GL_INDEX_OFFSET"/>
+ <enum value="0x0D14" name="GL_RED_SCALE"/>
+ <enum value="0x0D15" name="GL_RED_BIAS"/>
+ <enum value="0x0D16" name="GL_ZOOM_X"/>
+ <enum value="0x0D17" name="GL_ZOOM_Y"/>
+ <enum value="0x0D18" name="GL_GREEN_SCALE"/>
+ <enum value="0x0D19" name="GL_GREEN_BIAS"/>
+ <enum value="0x0D1A" name="GL_BLUE_SCALE"/>
+ <enum value="0x0D1B" name="GL_BLUE_BIAS"/>
+ <enum value="0x0D1C" name="GL_ALPHA_SCALE"/>
+ <enum value="0x0D1D" name="GL_ALPHA_BIAS"/>
+ <enum value="0x0D1E" name="GL_DEPTH_SCALE"/>
+ <enum value="0x0D1F" name="GL_DEPTH_BIAS"/>
+
+ <enum value="0x0D30" name="GL_MAX_EVAL_ORDER"/>
+ <enum value="0x0D31" name="GL_MAX_LIGHTS"/>
+ <enum value="0x0D32" name="GL_MAX_CLIP_PLANES"/>
+ <enum value="0x0D32" name="GL_MAX_CLIP_PLANES_IMG"/>
+ <enum value="0x0D32" name="GL_MAX_CLIP_DISTANCES" alias="GL_MAX_CLIP_PLANES"/>
+ <enum value="0x0D33" name="GL_MAX_TEXTURE_SIZE"/>
+ <enum value="0x0D34" name="GL_MAX_PIXEL_MAP_TABLE"/>
+ <enum value="0x0D35" name="GL_MAX_ATTRIB_STACK_DEPTH"/>
+ <enum value="0x0D36" name="GL_MAX_MODELVIEW_STACK_DEPTH"/>
+ <enum value="0x0D37" name="GL_MAX_NAME_STACK_DEPTH"/>
+ <enum value="0x0D38" name="GL_MAX_PROJECTION_STACK_DEPTH"/>
+ <enum value="0x0D39" name="GL_MAX_TEXTURE_STACK_DEPTH"/>
+ <enum value="0x0D3A" name="GL_MAX_VIEWPORT_DIMS"/>
+ <enum value="0x0D3B" name="GL_MAX_CLIENT_ATTRIB_STACK_DEPTH"/>
+
+ <enum value="0x0D50" name="GL_SUBPIXEL_BITS"/>
+ <enum value="0x0D51" name="GL_INDEX_BITS"/>
+ <enum value="0x0D52" name="GL_RED_BITS"/>
+ <enum value="0x0D53" name="GL_GREEN_BITS"/>
+ <enum value="0x0D54" name="GL_BLUE_BITS"/>
+ <enum value="0x0D55" name="GL_ALPHA_BITS"/>
+ <enum value="0x0D56" name="GL_DEPTH_BITS"/>
+ <enum value="0x0D57" name="GL_STENCIL_BITS"/>
+ <enum value="0x0D58" name="GL_ACCUM_RED_BITS"/>
+ <enum value="0x0D59" name="GL_ACCUM_GREEN_BITS"/>
+ <enum value="0x0D5A" name="GL_ACCUM_BLUE_BITS"/>
+ <enum value="0x0D5B" name="GL_ACCUM_ALPHA_BITS"/>
+
+ <enum value="0x0D70" name="GL_NAME_STACK_DEPTH"/>
+
+ <enum value="0x0D80" name="GL_AUTO_NORMAL"/>
+
+ <enum value="0x0D90" name="GL_MAP1_COLOR_4"/>
+ <enum value="0x0D91" name="GL_MAP1_INDEX"/>
+ <enum value="0x0D92" name="GL_MAP1_NORMAL"/>
+ <enum value="0x0D93" name="GL_MAP1_TEXTURE_COORD_1"/>
+ <enum value="0x0D94" name="GL_MAP1_TEXTURE_COORD_2"/>
+ <enum value="0x0D95" name="GL_MAP1_TEXTURE_COORD_3"/>
+ <enum value="0x0D96" name="GL_MAP1_TEXTURE_COORD_4"/>
+ <enum value="0x0D97" name="GL_MAP1_VERTEX_3"/>
+ <enum value="0x0D98" name="GL_MAP1_VERTEX_4"/>
+
+ <enum value="0x0DB0" name="GL_MAP2_COLOR_4"/>
+ <enum value="0x0DB1" name="GL_MAP2_INDEX"/>
+ <enum value="0x0DB2" name="GL_MAP2_NORMAL"/>
+ <enum value="0x0DB3" name="GL_MAP2_TEXTURE_COORD_1"/>
+ <enum value="0x0DB4" name="GL_MAP2_TEXTURE_COORD_2"/>
+ <enum value="0x0DB5" name="GL_MAP2_TEXTURE_COORD_3"/>
+ <enum value="0x0DB6" name="GL_MAP2_TEXTURE_COORD_4"/>
+ <enum value="0x0DB7" name="GL_MAP2_VERTEX_3"/>
+ <enum value="0x0DB8" name="GL_MAP2_VERTEX_4"/>
+
+ <enum value="0x0DD0" name="GL_MAP1_GRID_DOMAIN"/>
+ <enum value="0x0DD1" name="GL_MAP1_GRID_SEGMENTS"/>
+ <enum value="0x0DD2" name="GL_MAP2_GRID_DOMAIN"/>
+ <enum value="0x0DD3" name="GL_MAP2_GRID_SEGMENTS"/>
+
+ <enum value="0x0DE0" name="GL_TEXTURE_1D"/>
+ <enum value="0x0DE1" name="GL_TEXTURE_2D"/>
+
+ <enum value="0x0DF0" name="GL_FEEDBACK_BUFFER_POINTER"/>
+ <enum value="0x0DF1" name="GL_FEEDBACK_BUFFER_SIZE"/>
+ <enum value="0x0DF2" name="GL_FEEDBACK_BUFFER_TYPE"/>
+ <enum value="0x0DF3" name="GL_SELECTION_BUFFER_POINTER"/>
+ <enum value="0x0DF4" name="GL_SELECTION_BUFFER_SIZE"/>
+ <unused start="0x0DF5" end="0xFFFF" comment="Unused for GetPName"/>
+ <enum value="0x1000" name="GL_TEXTURE_WIDTH"/>
+ <enum value="0x1001" name="GL_TEXTURE_HEIGHT"/>
+ <enum value="0x1003" name="GL_TEXTURE_INTERNAL_FORMAT"/>
+ <enum value="0x1003" name="GL_TEXTURE_COMPONENTS"/>
+ <enum value="0x1004" name="GL_TEXTURE_BORDER_COLOR"/>
+ <enum value="0x1004" name="GL_TEXTURE_BORDER_COLOR_NV"/>
+ <enum value="0x1005" name="GL_TEXTURE_BORDER"/>
+ <unused start="0x1006" end="0x10FF" comment="Unused for GetTextureParameter"/>
+ <enum value="0x1100" name="GL_DONT_CARE"/>
+ <enum value="0x1101" name="GL_FASTEST"/>
+ <enum value="0x1102" name="GL_NICEST"/>
+ <unused start="0x1103" end="0x11FF" comment="Unused for HintMode"/>
+ <enum value="0x1200" name="GL_AMBIENT"/>
+ <enum value="0x1201" name="GL_DIFFUSE"/>
+ <enum value="0x1202" name="GL_SPECULAR"/>
+ <enum value="0x1203" name="GL_POSITION"/>
+ <enum value="0x1204" name="GL_SPOT_DIRECTION"/>
+ <enum value="0x1205" name="GL_SPOT_EXPONENT"/>
+ <enum value="0x1206" name="GL_SPOT_CUTOFF"/>
+ <enum value="0x1207" name="GL_CONSTANT_ATTENUATION"/>
+ <enum value="0x1208" name="GL_LINEAR_ATTENUATION"/>
+ <enum value="0x1209" name="GL_QUADRATIC_ATTENUATION"/>
+ <unused start="0x1210" end="0x12FF" comment="Unused for LightParameter"/>
+ <enum value="0x1300" name="GL_COMPILE"/>
+ <enum value="0x1301" name="GL_COMPILE_AND_EXECUTE"/>
+ <unused start="0x1302" end="0x13FF" comment="Unused for ListMode"/>
+ <enum value="0x1400" name="GL_BYTE"/>
+ <enum value="0x1401" name="GL_UNSIGNED_BYTE"/>
+ <enum value="0x1402" name="GL_SHORT"/>
+ <enum value="0x1403" name="GL_UNSIGNED_SHORT"/>
+ <enum value="0x1404" name="GL_INT"/>
+ <enum value="0x1405" name="GL_UNSIGNED_INT"/>
+ <enum value="0x1406" name="GL_FLOAT"/>
+ <enum value="0x1407" name="GL_2_BYTES"/>
+ <enum value="0x1408" name="GL_3_BYTES"/>
+ <enum value="0x1409" name="GL_4_BYTES"/>
+ <enum value="0x140A" name="GL_DOUBLE"/>
+ <enum value="0x140A" name="GL_DOUBLE_EXT"/>
+ <enum value="0x140B" name="GL_HALF_FLOAT"/>
+ <enum value="0x140B" name="GL_HALF_FLOAT_ARB"/>
+ <enum value="0x140B" name="GL_HALF_FLOAT_NV"/>
+ <enum value="0x140B" name="GL_HALF_APPLE"/>
+ <enum value="0x140C" name="GL_FIXED"/>
+ <enum value="0x140C" name="GL_FIXED_OES"/>
+ <unused start="0x140D" comment="Leave gap to preserve even/odd int/uint token values"/>
+ <enum value="0x140E" name="GL_INT64_NV"/>
+ <enum value="0x140F" name="GL_UNSIGNED_INT64_ARB"/>
+ <enum value="0x140F" name="GL_UNSIGNED_INT64_NV"/>
+ <unused start="0x1410" end="0x14FF" comment="Unused for DataType"/>
+ <enum value="0x1500" name="GL_CLEAR"/>
+ <enum value="0x1501" name="GL_AND"/>
+ <enum value="0x1502" name="GL_AND_REVERSE"/>
+ <enum value="0x1503" name="GL_COPY"/>
+ <enum value="0x1504" name="GL_AND_INVERTED"/>
+ <enum value="0x1505" name="GL_NOOP"/>
+ <enum value="0x1506" name="GL_XOR"/>
+ <enum value="0x1506" name="GL_XOR_NV"/>
+ <enum value="0x1507" name="GL_OR"/>
+ <enum value="0x1508" name="GL_NOR"/>
+ <enum value="0x1509" name="GL_EQUIV"/>
+ <enum value="0x150A" name="GL_INVERT"/>
+ <enum value="0x150B" name="GL_OR_REVERSE"/>
+ <enum value="0x150C" name="GL_COPY_INVERTED"/>
+ <enum value="0x150D" name="GL_OR_INVERTED"/>
+ <enum value="0x150E" name="GL_NAND"/>
+ <enum value="0x150F" name="GL_SET"/>
+ <unused start="0x1510" end="0x15FF" comment="Unused for LogicOp"/>
+ <enum value="0x1600" name="GL_EMISSION"/>
+ <enum value="0x1601" name="GL_SHININESS"/>
+ <enum value="0x1602" name="GL_AMBIENT_AND_DIFFUSE"/>
+ <enum value="0x1603" name="GL_COLOR_INDEXES"/>
+ <unused start="0x1604" end="0x16FF" comment="Unused for MaterialParameter"/>
+ <enum value="0x1700" name="GL_MODELVIEW"/>
+ <enum value="0x1700" name="GL_MODELVIEW0_ARB"/>
+ <enum value="0x1700" name="GL_MODELVIEW0_EXT"/>
+ <enum value="0x1701" name="GL_PROJECTION"/>
+ <enum value="0x1702" name="GL_TEXTURE"/>
+ <unused start="0x1703" end="0x17FF" comment="Unused for MatrixMode"/>
+ <enum value="0x1800" name="GL_COLOR"/>
+ <enum value="0x1800" name="GL_COLOR_EXT"/>
+ <enum value="0x1801" name="GL_DEPTH"/>
+ <enum value="0x1801" name="GL_DEPTH_EXT"/>
+ <enum value="0x1802" name="GL_STENCIL"/>
+ <enum value="0x1802" name="GL_STENCIL_EXT"/>
+ <unused start="0x1803" end="0x18FF" comment="Unused for PixelCopyType"/>
+ <enum value="0x1900" name="GL_COLOR_INDEX"/>
+ <enum value="0x1901" name="GL_STENCIL_INDEX"/>
+ <enum value="0x1902" name="GL_DEPTH_COMPONENT"/>
+ <enum value="0x1903" name="GL_RED"/>
+ <enum value="0x1903" name="GL_RED_EXT"/>
+ <enum value="0x1903" name="GL_RED_NV"/>
+ <enum value="0x1904" name="GL_GREEN"/>
+ <enum value="0x1904" name="GL_GREEN_NV"/>
+ <enum value="0x1905" name="GL_BLUE"/>
+ <enum value="0x1905" name="GL_BLUE_NV"/>
+ <enum value="0x1906" name="GL_ALPHA"/>
+ <enum value="0x1907" name="GL_RGB"/>
+ <enum value="0x1908" name="GL_RGBA"/>
+ <enum value="0x1909" name="GL_LUMINANCE"/>
+ <enum value="0x190A" name="GL_LUMINANCE_ALPHA"/>
+ <unused start="0x1910" end="0x19FF" comment="Unused for PixelFormat"/>
+ <enum value="0x1A00" name="GL_BITMAP"/>
+ <unused start="0x1A01" end="0x1AFF" comment="Unused for PixelType"/>
+ <enum value="0x1B00" name="GL_POINT"/>
+ <enum value="0x1B01" name="GL_LINE"/>
+ <enum value="0x1B02" name="GL_FILL"/>
+ <unused start="0x1B03" end="0x1BFF" comment="Unused for PolygonMode"/>
+ <enum value="0x1C00" name="GL_RENDER"/>
+ <enum value="0x1C01" name="GL_FEEDBACK"/>
+ <enum value="0x1C02" name="GL_SELECT"/>
+ <unused start="0x1C03" end="0x1CFF" comment="Unused for RenderingMode"/>
+ <enum value="0x1D00" name="GL_FLAT"/>
+ <enum value="0x1D01" name="GL_SMOOTH"/>
+ <unused start="0x1D02" end="0x1DFF" comment="Unused for ShadingModel"/>
+ <enum value="0x1E00" name="GL_KEEP"/>
+ <enum value="0x1E01" name="GL_REPLACE"/>
+ <enum value="0x1E02" name="GL_INCR"/>
+ <enum value="0x1E03" name="GL_DECR"/>
+ <unused start="0x1E04" end="0x1EFF" comment="Unused for StencilOp"/>
+ <enum value="0x1F00" name="GL_VENDOR"/>
+ <enum value="0x1F01" name="GL_RENDERER"/>
+ <enum value="0x1F02" name="GL_VERSION"/>
+ <enum value="0x1F03" name="GL_EXTENSIONS"/>
+ <unused start="0x1F04" end="0x1FFF" comment="Unused for StringName"/>
+ <enum value="0x2000" name="GL_S"/>
+ <enum value="0x2001" name="GL_T"/>
+ <enum value="0x2002" name="GL_R"/>
+ <enum value="0x2003" name="GL_Q"/>
+ <unused start="0x2004" end="0x20FF" comment="Unused for TextureCoordName"/>
+ <enum value="0x2100" name="GL_MODULATE"/>
+ <enum value="0x2101" name="GL_DECAL"/>
+ <unused start="0x2102" end="0x21FF" comment="Unused for TextureEnvMode"/>
+ <enum value="0x2200" name="GL_TEXTURE_ENV_MODE"/>
+ <enum value="0x2201" name="GL_TEXTURE_ENV_COLOR"/>
+ <unused start="0x2202" end="0x22FF" comment="Unused for TextureEnvParameter"/>
+ <enum value="0x2300" name="GL_TEXTURE_ENV"/>
+ <unused start="0x2301" end="0x23FF" comment="Unused for TextureEnvTarget"/>
+ <enum value="0x2400" name="GL_EYE_LINEAR"/>
+ <enum value="0x2401" name="GL_OBJECT_LINEAR"/>
+ <enum value="0x2402" name="GL_SPHERE_MAP"/>
+ <unused start="0x2403" end="0x24FF" comment="Unused for TextureGenMode"/>
+ <enum value="0x2500" name="GL_TEXTURE_GEN_MODE"/>
+ <enum value="0x2500" name="GL_TEXTURE_GEN_MODE_OES"/>
+ <enum value="0x2501" name="GL_OBJECT_PLANE"/>
+ <enum value="0x2502" name="GL_EYE_PLANE"/>
+ <unused start="0x2503" end="0x25FF" comment="Unused for TextureGenParameter"/>
+ <enum value="0x2600" name="GL_NEAREST"/>
+ <enum value="0x2601" name="GL_LINEAR"/>
+ <unused start="0x2602" end="0x26FF" comment="Unused for TextureMagFilter"/>
+ <enum value="0x2700" name="GL_NEAREST_MIPMAP_NEAREST"/>
+ <enum value="0x2701" name="GL_LINEAR_MIPMAP_NEAREST"/>
+ <enum value="0x2702" name="GL_NEAREST_MIPMAP_LINEAR"/>
+ <enum value="0x2703" name="GL_LINEAR_MIPMAP_LINEAR"/>
+ <unused start="0x2704" end="0x27FF" comment="Unused for TextureMinFilter"/>
+ <enum value="0x2800" name="GL_TEXTURE_MAG_FILTER"/>
+ <enum value="0x2801" name="GL_TEXTURE_MIN_FILTER"/>
+ <enum value="0x2802" name="GL_TEXTURE_WRAP_S"/>
+ <enum value="0x2803" name="GL_TEXTURE_WRAP_T"/>
+ <unused start="0x2804" end="0x28FF" comment="Unused for TextureParameterName"/>
+ <enum value="0x2900" name="GL_CLAMP"/>
+ <enum value="0x2901" name="GL_REPEAT"/>
+ <unused start="0x2902" end="0x29FF" comment="Unused for TextureWrapMode"/>
+ <enum value="0x2A00" name="GL_POLYGON_OFFSET_UNITS"/>
+ <enum value="0x2A01" name="GL_POLYGON_OFFSET_POINT"/>
+ <enum value="0x2A02" name="GL_POLYGON_OFFSET_LINE"/>
+ <unused start="0x2A03" end="0x2A09" comment="Unused for PolygonOffset"/>
+ <enum value="0x2A10" name="GL_R3_G3_B2"/>
+ <unused start="0x2A11" end="0x2A1F" comment="Unused for InternalFormat"/>
+ <enum value="0x2A20" name="GL_V2F"/>
+ <enum value="0x2A21" name="GL_V3F"/>
+ <enum value="0x2A22" name="GL_C4UB_V2F"/>
+ <enum value="0x2A23" name="GL_C4UB_V3F"/>
+ <enum value="0x2A24" name="GL_C3F_V3F"/>
+ <enum value="0x2A25" name="GL_N3F_V3F"/>
+ <enum value="0x2A26" name="GL_C4F_N3F_V3F"/>
+ <enum value="0x2A27" name="GL_T2F_V3F"/>
+ <enum value="0x2A28" name="GL_T4F_V4F"/>
+ <enum value="0x2A29" name="GL_T2F_C4UB_V3F"/>
+ <enum value="0x2A2A" name="GL_T2F_C3F_V3F"/>
+ <enum value="0x2A2B" name="GL_T2F_N3F_V3F"/>
+ <enum value="0x2A2C" name="GL_T2F_C4F_N3F_V3F"/>
+ <enum value="0x2A2D" name="GL_T4F_C4F_N3F_V4F"/>
+ <unused start="0x2A2E" end="0x2FFF" comment="Unused for InterleavedArrayFormat"/>
+ <enum value="0x3000" name="GL_CLIP_PLANE0"/>
+ <enum value="0x3000" name="GL_CLIP_PLANE0_IMG"/>
+ <enum value="0x3000" name="GL_CLIP_DISTANCE0" alias="GL_CLIP_PLANE0"/>
+ <enum value="0x3001" name="GL_CLIP_PLANE1"/>
+ <enum value="0x3001" name="GL_CLIP_PLANE1_IMG"/>
+ <enum value="0x3001" name="GL_CLIP_DISTANCE1" alias="GL_CLIP_PLANE1"/>
+ <enum value="0x3002" name="GL_CLIP_PLANE2"/>
+ <enum value="0x3002" name="GL_CLIP_PLANE2_IMG"/>
+ <enum value="0x3002" name="GL_CLIP_DISTANCE2" alias="GL_CLIP_PLANE2"/>
+ <enum value="0x3003" name="GL_CLIP_PLANE3"/>
+ <enum value="0x3003" name="GL_CLIP_PLANE3_IMG"/>
+ <enum value="0x3003" name="GL_CLIP_DISTANCE3" alias="GL_CLIP_PLANE3"/>
+ <enum value="0x3004" name="GL_CLIP_PLANE4"/>
+ <enum value="0x3004" name="GL_CLIP_PLANE4_IMG"/>
+ <enum value="0x3004" name="GL_CLIP_DISTANCE4" alias="GL_CLIP_PLANE4"/>
+ <enum value="0x3005" name="GL_CLIP_PLANE5"/>
+ <enum value="0x3005" name="GL_CLIP_PLANE5_IMG"/>
+ <enum value="0x3005" name="GL_CLIP_DISTANCE5" alias="GL_CLIP_PLANE5"/>
+ <enum value="0x3006" name="GL_CLIP_DISTANCE6"/>
+ <enum value="0x3007" name="GL_CLIP_DISTANCE7"/>
+ <unused start="0x3008" end="0x3FFF" comment="Unused for ClipPlaneName"/>
+ <enum value="0x4000" name="GL_LIGHT0"/>
+ <enum value="0x4001" name="GL_LIGHT1"/>
+ <enum value="0x4002" name="GL_LIGHT2"/>
+ <enum value="0x4003" name="GL_LIGHT3"/>
+ <enum value="0x4004" name="GL_LIGHT4"/>
+ <enum value="0x4005" name="GL_LIGHT5"/>
+ <enum value="0x4006" name="GL_LIGHT6"/>
+ <enum value="0x4007" name="GL_LIGHT7"/>
+ <unused start="0x4008" end="0x4FFF" comment="Unused for LightName"/>
+ <unused start="0x5000" end="0x5FFF" comment="Unused. Do not use."/>
+ <unused start="0x6000" end="0x6FFF" comment="Experimental (internal/test only) range. DO NOT SHIP VALUES IN THIS RANGE."/>
+ <unused start="0x7000" end="0x7FFF" comment="Unused. Do not use."/>
+ </enums>
+
+ <enums namespace="GL" start="0x8000" end="0x80BF" vendor="SGI" comment="The primary GL enumerant space begins here. All modern enum allocations are in this range. These enums are mostly assigned the default class since it's a great deal of not very useful work to be more specific"/>
+
+ <enums namespace="GL" vendor="ARB">
+ <enum value="0x8000" name="GL_ABGR_EXT"/>
+ <enum value="0x8001" name="GL_CONSTANT_COLOR"/>
+ <enum value="0x8001" name="GL_CONSTANT_COLOR_EXT"/>
+ <enum value="0x8002" name="GL_ONE_MINUS_CONSTANT_COLOR"/>
+ <enum value="0x8002" name="GL_ONE_MINUS_CONSTANT_COLOR_EXT"/>
+ <enum value="0x8003" name="GL_CONSTANT_ALPHA"/>
+ <enum value="0x8003" name="GL_CONSTANT_ALPHA_EXT"/>
+ <enum value="0x8004" name="GL_ONE_MINUS_CONSTANT_ALPHA"/>
+ <enum value="0x8004" name="GL_ONE_MINUS_CONSTANT_ALPHA_EXT"/>
+ <enum value="0x8005" name="GL_BLEND_COLOR"/>
+ <enum value="0x8005" name="GL_BLEND_COLOR_EXT"/>
+ <enum value="0x8006" name="GL_FUNC_ADD"/>
+ <enum value="0x8006" name="GL_FUNC_ADD_EXT"/>
+ <enum value="0x8006" name="GL_FUNC_ADD_OES"/>
+ <enum value="0x8007" name="GL_MIN"/>
+ <enum value="0x8007" name="GL_MIN_EXT"/>
+ <enum value="0x8008" name="GL_MAX"/>
+ <enum value="0x8008" name="GL_MAX_EXT"/>
+ <enum value="0x8009" name="GL_BLEND_EQUATION"/>
+ <enum value="0x8009" name="GL_BLEND_EQUATION_EXT"/>
+ <enum value="0x8009" name="GL_BLEND_EQUATION_OES"/>
+ <enum value="0x8009" name="GL_BLEND_EQUATION_RGB"/>
+ <enum value="0x8009" name="GL_BLEND_EQUATION_RGB_EXT"/>
+ <enum value="0x8009" name="GL_BLEND_EQUATION_RGB_OES"/>
+ <enum value="0x800A" name="GL_FUNC_SUBTRACT"/>
+ <enum value="0x800A" name="GL_FUNC_SUBTRACT_EXT"/>
+ <enum value="0x800A" name="GL_FUNC_SUBTRACT_OES"/>
+ <enum value="0x800B" name="GL_FUNC_REVERSE_SUBTRACT"/>
+ <enum value="0x800B" name="GL_FUNC_REVERSE_SUBTRACT_EXT"/>
+ <enum value="0x800B" name="GL_FUNC_REVERSE_SUBTRACT_OES"/>
+ <enum value="0x800C" name="GL_CMYK_EXT"/>
+ <enum value="0x800D" name="GL_CMYKA_EXT"/>
+ <enum value="0x800E" name="GL_PACK_CMYK_HINT_EXT"/>
+ <enum value="0x800F" name="GL_UNPACK_CMYK_HINT_EXT"/>
+ <enum value="0x8010" name="GL_CONVOLUTION_1D"/>
+ <enum value="0x8010" name="GL_CONVOLUTION_1D_EXT"/>
+ <enum value="0x8011" name="GL_CONVOLUTION_2D"/>
+ <enum value="0x8011" name="GL_CONVOLUTION_2D_EXT"/>
+ <enum value="0x8012" name="GL_SEPARABLE_2D"/>
+ <enum value="0x8012" name="GL_SEPARABLE_2D_EXT"/>
+ <enum value="0x8013" name="GL_CONVOLUTION_BORDER_MODE"/>
+ <enum value="0x8013" name="GL_CONVOLUTION_BORDER_MODE_EXT"/>
+ <enum value="0x8014" name="GL_CONVOLUTION_FILTER_SCALE"/>
+ <enum value="0x8014" name="GL_CONVOLUTION_FILTER_SCALE_EXT"/>
+ <enum value="0x8015" name="GL_CONVOLUTION_FILTER_BIAS"/>
+ <enum value="0x8015" name="GL_CONVOLUTION_FILTER_BIAS_EXT"/>
+ <enum value="0x8016" name="GL_REDUCE"/>
+ <enum value="0x8016" name="GL_REDUCE_EXT"/>
+ <enum value="0x8017" name="GL_CONVOLUTION_FORMAT"/>
+ <enum value="0x8017" name="GL_CONVOLUTION_FORMAT_EXT"/>
+ <enum value="0x8018" name="GL_CONVOLUTION_WIDTH"/>
+ <enum value="0x8018" name="GL_CONVOLUTION_WIDTH_EXT"/>
+ <enum value="0x8019" name="GL_CONVOLUTION_HEIGHT"/>
+ <enum value="0x8019" name="GL_CONVOLUTION_HEIGHT_EXT"/>
+ <enum value="0x801A" name="GL_MAX_CONVOLUTION_WIDTH"/>
+ <enum value="0x801A" name="GL_MAX_CONVOLUTION_WIDTH_EXT"/>
+ <enum value="0x801B" name="GL_MAX_CONVOLUTION_HEIGHT"/>
+ <enum value="0x801B" name="GL_MAX_CONVOLUTION_HEIGHT_EXT"/>
+ <enum value="0x801C" name="GL_POST_CONVOLUTION_RED_SCALE"/>
+ <enum value="0x801C" name="GL_POST_CONVOLUTION_RED_SCALE_EXT"/>
+ <enum value="0x801D" name="GL_POST_CONVOLUTION_GREEN_SCALE"/>
+ <enum value="0x801D" name="GL_POST_CONVOLUTION_GREEN_SCALE_EXT"/>
+ <enum value="0x801E" name="GL_POST_CONVOLUTION_BLUE_SCALE"/>
+ <enum value="0x801E" name="GL_POST_CONVOLUTION_BLUE_SCALE_EXT"/>
+ <enum value="0x801F" name="GL_POST_CONVOLUTION_ALPHA_SCALE"/>
+ <enum value="0x801F" name="GL_POST_CONVOLUTION_ALPHA_SCALE_EXT"/>
+ <enum value="0x8020" name="GL_POST_CONVOLUTION_RED_BIAS"/>
+ <enum value="0x8020" name="GL_POST_CONVOLUTION_RED_BIAS_EXT"/>
+ <enum value="0x8021" name="GL_POST_CONVOLUTION_GREEN_BIAS"/>
+ <enum value="0x8021" name="GL_POST_CONVOLUTION_GREEN_BIAS_EXT"/>
+ <enum value="0x8022" name="GL_POST_CONVOLUTION_BLUE_BIAS"/>
+ <enum value="0x8022" name="GL_POST_CONVOLUTION_BLUE_BIAS_EXT"/>
+ <enum value="0x8023" name="GL_POST_CONVOLUTION_ALPHA_BIAS"/>
+ <enum value="0x8023" name="GL_POST_CONVOLUTION_ALPHA_BIAS_EXT"/>
+ <enum value="0x8024" name="GL_HISTOGRAM"/>
+ <enum value="0x8024" name="GL_HISTOGRAM_EXT"/>
+ <enum value="0x8025" name="GL_PROXY_HISTOGRAM"/>
+ <enum value="0x8025" name="GL_PROXY_HISTOGRAM_EXT"/>
+ <enum value="0x8026" name="GL_HISTOGRAM_WIDTH"/>
+ <enum value="0x8026" name="GL_HISTOGRAM_WIDTH_EXT"/>
+ <enum value="0x8027" name="GL_HISTOGRAM_FORMAT"/>
+ <enum value="0x8027" name="GL_HISTOGRAM_FORMAT_EXT"/>
+ <enum value="0x8028" name="GL_HISTOGRAM_RED_SIZE"/>
+ <enum value="0x8028" name="GL_HISTOGRAM_RED_SIZE_EXT"/>
+ <enum value="0x8029" name="GL_HISTOGRAM_GREEN_SIZE"/>
+ <enum value="0x8029" name="GL_HISTOGRAM_GREEN_SIZE_EXT"/>
+ <enum value="0x802A" name="GL_HISTOGRAM_BLUE_SIZE"/>
+ <enum value="0x802A" name="GL_HISTOGRAM_BLUE_SIZE_EXT"/>
+ <enum value="0x802B" name="GL_HISTOGRAM_ALPHA_SIZE"/>
+ <enum value="0x802B" name="GL_HISTOGRAM_ALPHA_SIZE_EXT"/>
+ <enum value="0x802C" name="GL_HISTOGRAM_LUMINANCE_SIZE"/>
+ <enum value="0x802C" name="GL_HISTOGRAM_LUMINANCE_SIZE_EXT"/>
+ <enum value="0x802D" name="GL_HISTOGRAM_SINK"/>
+ <enum value="0x802D" name="GL_HISTOGRAM_SINK_EXT"/>
+ <enum value="0x802E" name="GL_MINMAX"/>
+ <enum value="0x802E" name="GL_MINMAX_EXT"/>
+ <enum value="0x802F" name="GL_MINMAX_FORMAT"/>
+ <enum value="0x802F" name="GL_MINMAX_FORMAT_EXT"/>
+ <enum value="0x8030" name="GL_MINMAX_SINK"/>
+ <enum value="0x8030" name="GL_MINMAX_SINK_EXT"/>
+ <enum value="0x8031" name="GL_TABLE_TOO_LARGE_EXT"/>
+ <enum value="0x8031" name="GL_TABLE_TOO_LARGE"/>
+ <enum value="0x8032" name="GL_UNSIGNED_BYTE_3_3_2"/>
+ <enum value="0x8032" name="GL_UNSIGNED_BYTE_3_3_2_EXT"/>
+ <enum value="0x8033" name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <enum value="0x8033" name="GL_UNSIGNED_SHORT_4_4_4_4_EXT"/>
+ <enum value="0x8034" name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ <enum value="0x8034" name="GL_UNSIGNED_SHORT_5_5_5_1_EXT"/>
+ <enum value="0x8035" name="GL_UNSIGNED_INT_8_8_8_8"/>
+ <enum value="0x8035" name="GL_UNSIGNED_INT_8_8_8_8_EXT"/>
+ <enum value="0x8036" name="GL_UNSIGNED_INT_10_10_10_2"/>
+ <enum value="0x8036" name="GL_UNSIGNED_INT_10_10_10_2_EXT"/>
+ <enum value="0x8037" name="GL_POLYGON_OFFSET_EXT"/>
+ <enum value="0x8037" name="GL_POLYGON_OFFSET_FILL"/>
+ <enum value="0x8038" name="GL_POLYGON_OFFSET_FACTOR"/>
+ <enum value="0x8038" name="GL_POLYGON_OFFSET_FACTOR_EXT"/>
+ <enum value="0x8039" name="GL_POLYGON_OFFSET_BIAS_EXT"/>
+ <enum value="0x803A" name="GL_RESCALE_NORMAL"/>
+ <enum value="0x803A" name="GL_RESCALE_NORMAL_EXT"/>
+ <enum value="0x803B" name="GL_ALPHA4"/>
+ <enum value="0x803B" name="GL_ALPHA4_EXT"/>
+ <enum value="0x803C" name="GL_ALPHA8"/>
+ <enum value="0x803C" name="GL_ALPHA8_EXT"/>
+ <enum value="0x803C" name="GL_ALPHA8_OES"/>
+ <enum value="0x803D" name="GL_ALPHA12"/>
+ <enum value="0x803D" name="GL_ALPHA12_EXT"/>
+ <enum value="0x803E" name="GL_ALPHA16"/>
+ <enum value="0x803E" name="GL_ALPHA16_EXT"/>
+ <enum value="0x803F" name="GL_LUMINANCE4"/>
+ <enum value="0x803F" name="GL_LUMINANCE4_EXT"/>
+ <enum value="0x8040" name="GL_LUMINANCE8"/>
+ <enum value="0x8040" name="GL_LUMINANCE8_EXT"/>
+ <enum value="0x8040" name="GL_LUMINANCE8_OES"/>
+ <enum value="0x8041" name="GL_LUMINANCE12"/>
+ <enum value="0x8041" name="GL_LUMINANCE12_EXT"/>
+ <enum value="0x8042" name="GL_LUMINANCE16"/>
+ <enum value="0x8042" name="GL_LUMINANCE16_EXT"/>
+ <enum value="0x8043" name="GL_LUMINANCE4_ALPHA4"/>
+ <enum value="0x8043" name="GL_LUMINANCE4_ALPHA4_EXT"/>
+ <enum value="0x8043" name="GL_LUMINANCE4_ALPHA4_OES"/>
+ <enum value="0x8044" name="GL_LUMINANCE6_ALPHA2"/>
+ <enum value="0x8044" name="GL_LUMINANCE6_ALPHA2_EXT"/>
+ <enum value="0x8045" name="GL_LUMINANCE8_ALPHA8"/>
+ <enum value="0x8045" name="GL_LUMINANCE8_ALPHA8_EXT"/>
+ <enum value="0x8045" name="GL_LUMINANCE8_ALPHA8_OES"/>
+ <enum value="0x8046" name="GL_LUMINANCE12_ALPHA4"/>
+ <enum value="0x8046" name="GL_LUMINANCE12_ALPHA4_EXT"/>
+ <enum value="0x8047" name="GL_LUMINANCE12_ALPHA12"/>
+ <enum value="0x8047" name="GL_LUMINANCE12_ALPHA12_EXT"/>
+ <enum value="0x8048" name="GL_LUMINANCE16_ALPHA16"/>
+ <enum value="0x8048" name="GL_LUMINANCE16_ALPHA16_EXT"/>
+ <enum value="0x8049" name="GL_INTENSITY"/>
+ <enum value="0x8049" name="GL_INTENSITY_EXT"/>
+ <enum value="0x804A" name="GL_INTENSITY4"/>
+ <enum value="0x804A" name="GL_INTENSITY4_EXT"/>
+ <enum value="0x804B" name="GL_INTENSITY8"/>
+ <enum value="0x804B" name="GL_INTENSITY8_EXT"/>
+ <enum value="0x804C" name="GL_INTENSITY12"/>
+ <enum value="0x804C" name="GL_INTENSITY12_EXT"/>
+ <enum value="0x804D" name="GL_INTENSITY16"/>
+ <enum value="0x804D" name="GL_INTENSITY16_EXT"/>
+ <enum value="0x804E" name="GL_RGB2_EXT"/>
+ <enum value="0x804F" name="GL_RGB4"/>
+ <enum value="0x804F" name="GL_RGB4_EXT"/>
+ <enum value="0x8050" name="GL_RGB5"/>
+ <enum value="0x8050" name="GL_RGB5_EXT"/>
+ <enum value="0x8051" name="GL_RGB8"/>
+ <enum value="0x8051" name="GL_RGB8_EXT"/>
+ <enum value="0x8051" name="GL_RGB8_OES"/>
+ <enum value="0x8052" name="GL_RGB10"/>
+ <enum value="0x8052" name="GL_RGB10_EXT"/>
+ <enum value="0x8053" name="GL_RGB12"/>
+ <enum value="0x8053" name="GL_RGB12_EXT"/>
+ <enum value="0x8054" name="GL_RGB16"/>
+ <enum value="0x8054" name="GL_RGB16_EXT"/>
+ <enum value="0x8055" name="GL_RGBA2"/>
+ <enum value="0x8055" name="GL_RGBA2_EXT"/>
+ <enum value="0x8056" name="GL_RGBA4"/>
+ <enum value="0x8056" name="GL_RGBA4_EXT"/>
+ <enum value="0x8056" name="GL_RGBA4_OES"/>
+ <enum value="0x8057" name="GL_RGB5_A1"/>
+ <enum value="0x8057" name="GL_RGB5_A1_EXT"/>
+ <enum value="0x8057" name="GL_RGB5_A1_OES"/>
+ <enum value="0x8058" name="GL_RGBA8"/>
+ <enum value="0x8058" name="GL_RGBA8_EXT"/>
+ <enum value="0x8058" name="GL_RGBA8_OES"/>
+ <enum value="0x8059" name="GL_RGB10_A2"/>
+ <enum value="0x8059" name="GL_RGB10_A2_EXT"/>
+ <enum value="0x805A" name="GL_RGBA12"/>
+ <enum value="0x805A" name="GL_RGBA12_EXT"/>
+ <enum value="0x805B" name="GL_RGBA16"/>
+ <enum value="0x805B" name="GL_RGBA16_EXT"/>
+ <enum value="0x805C" name="GL_TEXTURE_RED_SIZE"/>
+ <enum value="0x805C" name="GL_TEXTURE_RED_SIZE_EXT"/>
+ <enum value="0x805D" name="GL_TEXTURE_GREEN_SIZE"/>
+ <enum value="0x805D" name="GL_TEXTURE_GREEN_SIZE_EXT"/>
+ <enum value="0x805E" name="GL_TEXTURE_BLUE_SIZE"/>
+ <enum value="0x805E" name="GL_TEXTURE_BLUE_SIZE_EXT"/>
+ <enum value="0x805F" name="GL_TEXTURE_ALPHA_SIZE"/>
+ <enum value="0x805F" name="GL_TEXTURE_ALPHA_SIZE_EXT"/>
+ <enum value="0x8060" name="GL_TEXTURE_LUMINANCE_SIZE"/>
+ <enum value="0x8060" name="GL_TEXTURE_LUMINANCE_SIZE_EXT"/>
+ <enum value="0x8061" name="GL_TEXTURE_INTENSITY_SIZE"/>
+ <enum value="0x8061" name="GL_TEXTURE_INTENSITY_SIZE_EXT"/>
+ <enum value="0x8062" name="GL_REPLACE_EXT"/>
+ <enum value="0x8063" name="GL_PROXY_TEXTURE_1D"/>
+ <enum value="0x8063" name="GL_PROXY_TEXTURE_1D_EXT"/>
+ <enum value="0x8064" name="GL_PROXY_TEXTURE_2D"/>
+ <enum value="0x8064" name="GL_PROXY_TEXTURE_2D_EXT"/>
+ <enum value="0x8065" name="GL_TEXTURE_TOO_LARGE_EXT"/>
+ <enum value="0x8066" name="GL_TEXTURE_PRIORITY"/>
+ <enum value="0x8066" name="GL_TEXTURE_PRIORITY_EXT"/>
+ <enum value="0x8067" name="GL_TEXTURE_RESIDENT"/>
+ <enum value="0x8067" name="GL_TEXTURE_RESIDENT_EXT"/>
+ <enum value="0x8068" name="GL_TEXTURE_1D_BINDING_EXT"/>
+ <enum value="0x8068" name="GL_TEXTURE_BINDING_1D"/>
+ <enum value="0x8069" name="GL_TEXTURE_2D_BINDING_EXT"/>
+ <enum value="0x8069" name="GL_TEXTURE_BINDING_2D"/>
+ <enum value="0x806A" name="GL_TEXTURE_3D_BINDING_EXT"/>
+ <enum value="0x806A" name="GL_TEXTURE_3D_BINDING_OES"/>
+ <enum value="0x806A" name="GL_TEXTURE_BINDING_3D"/>
+ <enum value="0x806A" name="GL_TEXTURE_BINDING_3D_OES"/>
+ <enum value="0x806B" name="GL_PACK_SKIP_IMAGES"/>
+ <enum value="0x806B" name="GL_PACK_SKIP_IMAGES_EXT"/>
+ <enum value="0x806C" name="GL_PACK_IMAGE_HEIGHT"/>
+ <enum value="0x806C" name="GL_PACK_IMAGE_HEIGHT_EXT"/>
+ <enum value="0x806D" name="GL_UNPACK_SKIP_IMAGES"/>
+ <enum value="0x806D" name="GL_UNPACK_SKIP_IMAGES_EXT"/>
+ <enum value="0x806E" name="GL_UNPACK_IMAGE_HEIGHT"/>
+ <enum value="0x806E" name="GL_UNPACK_IMAGE_HEIGHT_EXT"/>
+ <enum value="0x806F" name="GL_TEXTURE_3D"/>
+ <enum value="0x806F" name="GL_TEXTURE_3D_EXT"/>
+ <enum value="0x806F" name="GL_TEXTURE_3D_OES"/>
+ <enum value="0x8070" name="GL_PROXY_TEXTURE_3D"/>
+ <enum value="0x8070" name="GL_PROXY_TEXTURE_3D_EXT"/>
+ <enum value="0x8071" name="GL_TEXTURE_DEPTH"/>
+ <enum value="0x8071" name="GL_TEXTURE_DEPTH_EXT"/>
+ <enum value="0x8072" name="GL_TEXTURE_WRAP_R"/>
+ <enum value="0x8072" name="GL_TEXTURE_WRAP_R_EXT"/>
+ <enum value="0x8072" name="GL_TEXTURE_WRAP_R_OES"/>
+ <enum value="0x8073" name="GL_MAX_3D_TEXTURE_SIZE"/>
+ <enum value="0x8073" name="GL_MAX_3D_TEXTURE_SIZE_EXT"/>
+ <enum value="0x8073" name="GL_MAX_3D_TEXTURE_SIZE_OES"/>
+ <enum value="0x8074" name="GL_VERTEX_ARRAY"/>
+ <enum value="0x8074" name="GL_VERTEX_ARRAY_EXT"/>
+ <enum value="0x8074" name="GL_VERTEX_ARRAY_KHR"/>
+ <enum value="0x8075" name="GL_NORMAL_ARRAY"/>
+ <enum value="0x8075" name="GL_NORMAL_ARRAY_EXT"/>
+ <enum value="0x8076" name="GL_COLOR_ARRAY"/>
+ <enum value="0x8076" name="GL_COLOR_ARRAY_EXT"/>
+ <enum value="0x8077" name="GL_INDEX_ARRAY"/>
+ <enum value="0x8077" name="GL_INDEX_ARRAY_EXT"/>
+ <enum value="0x8078" name="GL_TEXTURE_COORD_ARRAY"/>
+ <enum value="0x8078" name="GL_TEXTURE_COORD_ARRAY_EXT"/>
+ <enum value="0x8079" name="GL_EDGE_FLAG_ARRAY"/>
+ <enum value="0x8079" name="GL_EDGE_FLAG_ARRAY_EXT"/>
+ <enum value="0x807A" name="GL_VERTEX_ARRAY_SIZE"/>
+ <enum value="0x807A" name="GL_VERTEX_ARRAY_SIZE_EXT"/>
+ <enum value="0x807B" name="GL_VERTEX_ARRAY_TYPE"/>
+ <enum value="0x807B" name="GL_VERTEX_ARRAY_TYPE_EXT"/>
+ <enum value="0x807C" name="GL_VERTEX_ARRAY_STRIDE"/>
+ <enum value="0x807C" name="GL_VERTEX_ARRAY_STRIDE_EXT"/>
+ <enum value="0x807D" name="GL_VERTEX_ARRAY_COUNT_EXT"/>
+ <enum value="0x807E" name="GL_NORMAL_ARRAY_TYPE"/>
+ <enum value="0x807E" name="GL_NORMAL_ARRAY_TYPE_EXT"/>
+ <enum value="0x807F" name="GL_NORMAL_ARRAY_STRIDE"/>
+ <enum value="0x807F" name="GL_NORMAL_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8080" name="GL_NORMAL_ARRAY_COUNT_EXT"/>
+ <enum value="0x8081" name="GL_COLOR_ARRAY_SIZE"/>
+ <enum value="0x8081" name="GL_COLOR_ARRAY_SIZE_EXT"/>
+ <enum value="0x8082" name="GL_COLOR_ARRAY_TYPE"/>
+ <enum value="0x8082" name="GL_COLOR_ARRAY_TYPE_EXT"/>
+ <enum value="0x8083" name="GL_COLOR_ARRAY_STRIDE"/>
+ <enum value="0x8083" name="GL_COLOR_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8084" name="GL_COLOR_ARRAY_COUNT_EXT"/>
+ <enum value="0x8085" name="GL_INDEX_ARRAY_TYPE"/>
+ <enum value="0x8085" name="GL_INDEX_ARRAY_TYPE_EXT"/>
+ <enum value="0x8086" name="GL_INDEX_ARRAY_STRIDE"/>
+ <enum value="0x8086" name="GL_INDEX_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8087" name="GL_INDEX_ARRAY_COUNT_EXT"/>
+ <enum value="0x8088" name="GL_TEXTURE_COORD_ARRAY_SIZE"/>
+ <enum value="0x8088" name="GL_TEXTURE_COORD_ARRAY_SIZE_EXT"/>
+ <enum value="0x8089" name="GL_TEXTURE_COORD_ARRAY_TYPE"/>
+ <enum value="0x8089" name="GL_TEXTURE_COORD_ARRAY_TYPE_EXT"/>
+ <enum value="0x808A" name="GL_TEXTURE_COORD_ARRAY_STRIDE"/>
+ <enum value="0x808A" name="GL_TEXTURE_COORD_ARRAY_STRIDE_EXT"/>
+ <enum value="0x808B" name="GL_TEXTURE_COORD_ARRAY_COUNT_EXT"/>
+ <enum value="0x808C" name="GL_EDGE_FLAG_ARRAY_STRIDE"/>
+ <enum value="0x808C" name="GL_EDGE_FLAG_ARRAY_STRIDE_EXT"/>
+ <enum value="0x808D" name="GL_EDGE_FLAG_ARRAY_COUNT_EXT"/>
+ <enum value="0x808E" name="GL_VERTEX_ARRAY_POINTER"/>
+ <enum value="0x808E" name="GL_VERTEX_ARRAY_POINTER_EXT"/>
+ <enum value="0x808F" name="GL_NORMAL_ARRAY_POINTER"/>
+ <enum value="0x808F" name="GL_NORMAL_ARRAY_POINTER_EXT"/>
+ <enum value="0x8090" name="GL_COLOR_ARRAY_POINTER"/>
+ <enum value="0x8090" name="GL_COLOR_ARRAY_POINTER_EXT"/>
+ <enum value="0x8091" name="GL_INDEX_ARRAY_POINTER"/>
+ <enum value="0x8091" name="GL_INDEX_ARRAY_POINTER_EXT"/>
+ <enum value="0x8092" name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
+ <enum value="0x8092" name="GL_TEXTURE_COORD_ARRAY_POINTER_EXT"/>
+ <enum value="0x8093" name="GL_EDGE_FLAG_ARRAY_POINTER"/>
+ <enum value="0x8093" name="GL_EDGE_FLAG_ARRAY_POINTER_EXT"/>
+ <enum value="0x8094" name="GL_INTERLACE_SGIX"/>
+ <enum value="0x8095" name="GL_DETAIL_TEXTURE_2D_SGIS"/>
+ <enum value="0x8096" name="GL_DETAIL_TEXTURE_2D_BINDING_SGIS"/>
+ <enum value="0x8097" name="GL_LINEAR_DETAIL_SGIS"/>
+ <enum value="0x8098" name="GL_LINEAR_DETAIL_ALPHA_SGIS"/>
+ <enum value="0x8099" name="GL_LINEAR_DETAIL_COLOR_SGIS"/>
+ <enum value="0x809A" name="GL_DETAIL_TEXTURE_LEVEL_SGIS"/>
+ <enum value="0x809B" name="GL_DETAIL_TEXTURE_MODE_SGIS"/>
+ <enum value="0x809C" name="GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS"/>
+ <enum value="0x809D" name="GL_MULTISAMPLE"/>
+ <enum value="0x809D" name="GL_MULTISAMPLE_ARB"/>
+ <enum value="0x809D" name="GL_MULTISAMPLE_EXT"/>
+ <enum value="0x809D" name="GL_MULTISAMPLE_SGIS"/>
+ <enum value="0x809E" name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
+ <enum value="0x809E" name="GL_SAMPLE_ALPHA_TO_COVERAGE_ARB"/>
+ <enum value="0x809E" name="GL_SAMPLE_ALPHA_TO_MASK_EXT"/>
+ <enum value="0x809E" name="GL_SAMPLE_ALPHA_TO_MASK_SGIS"/>
+ <enum value="0x809F" name="GL_SAMPLE_ALPHA_TO_ONE"/>
+ <enum value="0x809F" name="GL_SAMPLE_ALPHA_TO_ONE_ARB"/>
+ <enum value="0x809F" name="GL_SAMPLE_ALPHA_TO_ONE_EXT"/>
+ <enum value="0x809F" name="GL_SAMPLE_ALPHA_TO_ONE_SGIS"/>
+ <enum value="0x80A0" name="GL_SAMPLE_COVERAGE"/>
+ <enum value="0x80A0" name="GL_SAMPLE_COVERAGE_ARB"/>
+ <enum value="0x80A0" name="GL_SAMPLE_MASK_EXT"/>
+ <enum value="0x80A0" name="GL_SAMPLE_MASK_SGIS"/>
+ <enum value="0x80A1" name="GL_1PASS_EXT"/>
+ <enum value="0x80A1" name="GL_1PASS_SGIS"/>
+ <enum value="0x80A2" name="GL_2PASS_0_EXT"/>
+ <enum value="0x80A2" name="GL_2PASS_0_SGIS"/>
+ <enum value="0x80A3" name="GL_2PASS_1_EXT"/>
+ <enum value="0x80A3" name="GL_2PASS_1_SGIS"/>
+ <enum value="0x80A4" name="GL_4PASS_0_EXT"/>
+ <enum value="0x80A4" name="GL_4PASS_0_SGIS"/>
+ <enum value="0x80A5" name="GL_4PASS_1_EXT"/>
+ <enum value="0x80A5" name="GL_4PASS_1_SGIS"/>
+ <enum value="0x80A6" name="GL_4PASS_2_EXT"/>
+ <enum value="0x80A6" name="GL_4PASS_2_SGIS"/>
+ <enum value="0x80A7" name="GL_4PASS_3_EXT"/>
+ <enum value="0x80A7" name="GL_4PASS_3_SGIS"/>
+ <enum value="0x80A8" name="GL_SAMPLE_BUFFERS"/>
+ <enum value="0x80A8" name="GL_SAMPLE_BUFFERS_ARB"/>
+ <enum value="0x80A8" name="GL_SAMPLE_BUFFERS_EXT"/>
+ <enum value="0x80A8" name="GL_SAMPLE_BUFFERS_SGIS"/>
+ <enum value="0x80A9" name="GL_SAMPLES"/>
+ <enum value="0x80A9" name="GL_SAMPLES_ARB"/>
+ <enum value="0x80A9" name="GL_SAMPLES_EXT"/>
+ <enum value="0x80A9" name="GL_SAMPLES_SGIS"/>
+ <enum value="0x80AA" name="GL_SAMPLE_COVERAGE_VALUE"/>
+ <enum value="0x80AA" name="GL_SAMPLE_COVERAGE_VALUE_ARB"/>
+ <enum value="0x80AA" name="GL_SAMPLE_MASK_VALUE_EXT"/>
+ <enum value="0x80AA" name="GL_SAMPLE_MASK_VALUE_SGIS"/>
+ <enum value="0x80AB" name="GL_SAMPLE_COVERAGE_INVERT"/>
+ <enum value="0x80AB" name="GL_SAMPLE_COVERAGE_INVERT_ARB"/>
+ <enum value="0x80AB" name="GL_SAMPLE_MASK_INVERT_EXT"/>
+ <enum value="0x80AB" name="GL_SAMPLE_MASK_INVERT_SGIS"/>
+ <enum value="0x80AC" name="GL_SAMPLE_PATTERN_EXT"/>
+ <enum value="0x80AC" name="GL_SAMPLE_PATTERN_SGIS"/>
+ <enum value="0x80AD" name="GL_LINEAR_SHARPEN_SGIS"/>
+ <enum value="0x80AE" name="GL_LINEAR_SHARPEN_ALPHA_SGIS"/>
+ <enum value="0x80AF" name="GL_LINEAR_SHARPEN_COLOR_SGIS"/>
+ <enum value="0x80B0" name="GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS"/>
+ <enum value="0x80B1" name="GL_COLOR_MATRIX"/>
+ <enum value="0x80B1" name="GL_COLOR_MATRIX_SGI"/>
+ <enum value="0x80B2" name="GL_COLOR_MATRIX_STACK_DEPTH"/>
+ <enum value="0x80B2" name="GL_COLOR_MATRIX_STACK_DEPTH_SGI"/>
+ <enum value="0x80B3" name="GL_MAX_COLOR_MATRIX_STACK_DEPTH"/>
+ <enum value="0x80B3" name="GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI"/>
+ <enum value="0x80B4" name="GL_POST_COLOR_MATRIX_RED_SCALE"/>
+ <enum value="0x80B4" name="GL_POST_COLOR_MATRIX_RED_SCALE_SGI"/>
+ <enum value="0x80B5" name="GL_POST_COLOR_MATRIX_GREEN_SCALE"/>
+ <enum value="0x80B5" name="GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI"/>
+ <enum value="0x80B6" name="GL_POST_COLOR_MATRIX_BLUE_SCALE"/>
+ <enum value="0x80B6" name="GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI"/>
+ <enum value="0x80B7" name="GL_POST_COLOR_MATRIX_ALPHA_SCALE"/>
+ <enum value="0x80B7" name="GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI"/>
+ <enum value="0x80B8" name="GL_POST_COLOR_MATRIX_RED_BIAS"/>
+ <enum value="0x80B8" name="GL_POST_COLOR_MATRIX_RED_BIAS_SGI"/>
+ <enum value="0x80B9" name="GL_POST_COLOR_MATRIX_GREEN_BIAS"/>
+ <enum value="0x80B9" name="GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI"/>
+ <enum value="0x80BA" name="GL_POST_COLOR_MATRIX_BLUE_BIAS"/>
+ <enum value="0x80BA" name="GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI"/>
+ <enum value="0x80BB" name="GL_POST_COLOR_MATRIX_ALPHA_BIAS"/>
+ <enum value="0x80BB" name="GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI"/>
+ <enum value="0x80BC" name="GL_TEXTURE_COLOR_TABLE_SGI"/>
+ <enum value="0x80BD" name="GL_PROXY_TEXTURE_COLOR_TABLE_SGI"/>
+ <enum value="0x80BE" name="GL_TEXTURE_ENV_BIAS_SGIX"/>
+ <enum value="0x80BF" name="GL_SHADOW_AMBIENT_SGIX"/>
+ <enum value="0x80BF" name="GL_TEXTURE_COMPARE_FAIL_VALUE_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x80C0" end="0x80CF" vendor="ZiiLabs">
+ <unused start="0x80C0" end="0x80C7"/>
+ <enum value="0x80C8" name="GL_BLEND_DST_RGB"/>
+ <enum value="0x80C8" name="GL_BLEND_DST_RGB_EXT"/>
+ <enum value="0x80C8" name="GL_BLEND_DST_RGB_OES"/>
+ <enum value="0x80C9" name="GL_BLEND_SRC_RGB"/>
+ <enum value="0x80C9" name="GL_BLEND_SRC_RGB_EXT"/>
+ <enum value="0x80C9" name="GL_BLEND_SRC_RGB_OES"/>
+ <enum value="0x80CA" name="GL_BLEND_DST_ALPHA"/>
+ <enum value="0x80CA" name="GL_BLEND_DST_ALPHA_EXT"/>
+ <enum value="0x80CA" name="GL_BLEND_DST_ALPHA_OES"/>
+ <enum value="0x80CB" name="GL_BLEND_SRC_ALPHA"/>
+ <enum value="0x80CB" name="GL_BLEND_SRC_ALPHA_EXT"/>
+ <enum value="0x80CB" name="GL_BLEND_SRC_ALPHA_OES"/>
+ <enum value="0x80CC" name="GL_422_EXT"/>
+ <enum value="0x80CD" name="GL_422_REV_EXT"/>
+ <enum value="0x80CE" name="GL_422_AVERAGE_EXT"/>
+ <enum value="0x80CF" name="GL_422_REV_AVERAGE_EXT"/>
+ </enums>
+
+ <enums namespace="GL" start="0x80D0" end="0x80DF" vendor="SGI">
+ <enum value="0x80D0" name="GL_COLOR_TABLE"/>
+ <enum value="0x80D0" name="GL_COLOR_TABLE_SGI"/>
+ <enum value="0x80D1" name="GL_POST_CONVOLUTION_COLOR_TABLE"/>
+ <enum value="0x80D1" name="GL_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum value="0x80D2" name="GL_POST_COLOR_MATRIX_COLOR_TABLE"/>
+ <enum value="0x80D2" name="GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum value="0x80D3" name="GL_PROXY_COLOR_TABLE"/>
+ <enum value="0x80D3" name="GL_PROXY_COLOR_TABLE_SGI"/>
+ <enum value="0x80D4" name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE"/>
+ <enum value="0x80D4" name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum value="0x80D5" name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE"/>
+ <enum value="0x80D5" name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum value="0x80D6" name="GL_COLOR_TABLE_SCALE"/>
+ <enum value="0x80D6" name="GL_COLOR_TABLE_SCALE_SGI"/>
+ <enum value="0x80D7" name="GL_COLOR_TABLE_BIAS"/>
+ <enum value="0x80D7" name="GL_COLOR_TABLE_BIAS_SGI"/>
+ <enum value="0x80D8" name="GL_COLOR_TABLE_FORMAT"/>
+ <enum value="0x80D8" name="GL_COLOR_TABLE_FORMAT_SGI"/>
+ <enum value="0x80D9" name="GL_COLOR_TABLE_WIDTH"/>
+ <enum value="0x80D9" name="GL_COLOR_TABLE_WIDTH_SGI"/>
+ <enum value="0x80DA" name="GL_COLOR_TABLE_RED_SIZE"/>
+ <enum value="0x80DA" name="GL_COLOR_TABLE_RED_SIZE_SGI"/>
+ <enum value="0x80DB" name="GL_COLOR_TABLE_GREEN_SIZE"/>
+ <enum value="0x80DB" name="GL_COLOR_TABLE_GREEN_SIZE_SGI"/>
+ <enum value="0x80DC" name="GL_COLOR_TABLE_BLUE_SIZE"/>
+ <enum value="0x80DC" name="GL_COLOR_TABLE_BLUE_SIZE_SGI"/>
+ <enum value="0x80DD" name="GL_COLOR_TABLE_ALPHA_SIZE"/>
+ <enum value="0x80DD" name="GL_COLOR_TABLE_ALPHA_SIZE_SGI"/>
+ <enum value="0x80DE" name="GL_COLOR_TABLE_LUMINANCE_SIZE"/>
+ <enum value="0x80DE" name="GL_COLOR_TABLE_LUMINANCE_SIZE_SGI"/>
+ <enum value="0x80DF" name="GL_COLOR_TABLE_INTENSITY_SIZE"/>
+ <enum value="0x80DF" name="GL_COLOR_TABLE_INTENSITY_SIZE_SGI"/>
+ </enums>
+
+ <enums namespace="GL" start="0x80E0" end="0x810F" vendor="MS">
+ <enum value="0x80E0" name="GL_BGR"/>
+ <enum value="0x80E0" name="GL_BGR_EXT"/>
+ <enum value="0x80E1" name="GL_BGRA"/>
+ <enum value="0x80E1" name="GL_BGRA_EXT"/>
+ <enum value="0x80E1" name="GL_BGRA_IMG"/>
+ <enum value="0x80E2" name="GL_COLOR_INDEX1_EXT"/>
+ <enum value="0x80E3" name="GL_COLOR_INDEX2_EXT"/>
+ <enum value="0x80E4" name="GL_COLOR_INDEX4_EXT"/>
+ <enum value="0x80E5" name="GL_COLOR_INDEX8_EXT"/>
+ <enum value="0x80E6" name="GL_COLOR_INDEX12_EXT"/>
+ <enum value="0x80E7" name="GL_COLOR_INDEX16_EXT"/>
+ <enum value="0x80E8" name="GL_MAX_ELEMENTS_VERTICES"/>
+ <enum value="0x80E8" name="GL_MAX_ELEMENTS_VERTICES_EXT"/>
+ <enum value="0x80E9" name="GL_MAX_ELEMENTS_INDICES"/>
+ <enum value="0x80E9" name="GL_MAX_ELEMENTS_INDICES_EXT"/>
+ <enum value="0x80EA" name="GL_PHONG_WIN"/>
+ <enum value="0x80EB" name="GL_PHONG_HINT_WIN"/>
+ <enum value="0x80EC" name="GL_FOG_SPECULAR_TEXTURE_WIN"/>
+ <enum value="0x80ED" name="GL_TEXTURE_INDEX_SIZE_EXT"/>
+ <enum value="0x80EE" name="GL_PARAMETER_BUFFER_ARB"/>
+ <enum value="0x80EF" name="GL_PARAMETER_BUFFER_BINDING_ARB"/>
+ <enum value="0x80F0" name="GL_CLIP_VOLUME_CLIPPING_HINT_EXT"/>
+ <unused start="0x80F1" end="0x810F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8110" end="0x814F" vendor="SGI">
+ <enum value="0x8110" name="GL_DUAL_ALPHA4_SGIS"/>
+ <enum value="0x8111" name="GL_DUAL_ALPHA8_SGIS"/>
+ <enum value="0x8112" name="GL_DUAL_ALPHA12_SGIS"/>
+ <enum value="0x8113" name="GL_DUAL_ALPHA16_SGIS"/>
+ <enum value="0x8114" name="GL_DUAL_LUMINANCE4_SGIS"/>
+ <enum value="0x8115" name="GL_DUAL_LUMINANCE8_SGIS"/>
+ <enum value="0x8116" name="GL_DUAL_LUMINANCE12_SGIS"/>
+ <enum value="0x8117" name="GL_DUAL_LUMINANCE16_SGIS"/>
+ <enum value="0x8118" name="GL_DUAL_INTENSITY4_SGIS"/>
+ <enum value="0x8119" name="GL_DUAL_INTENSITY8_SGIS"/>
+ <enum value="0x811A" name="GL_DUAL_INTENSITY12_SGIS"/>
+ <enum value="0x811B" name="GL_DUAL_INTENSITY16_SGIS"/>
+ <enum value="0x811C" name="GL_DUAL_LUMINANCE_ALPHA4_SGIS"/>
+ <enum value="0x811D" name="GL_DUAL_LUMINANCE_ALPHA8_SGIS"/>
+ <enum value="0x811E" name="GL_QUAD_ALPHA4_SGIS"/>
+ <enum value="0x811F" name="GL_QUAD_ALPHA8_SGIS"/>
+ <enum value="0x8120" name="GL_QUAD_LUMINANCE4_SGIS"/>
+ <enum value="0x8121" name="GL_QUAD_LUMINANCE8_SGIS"/>
+ <enum value="0x8122" name="GL_QUAD_INTENSITY4_SGIS"/>
+ <enum value="0x8123" name="GL_QUAD_INTENSITY8_SGIS"/>
+ <enum value="0x8124" name="GL_DUAL_TEXTURE_SELECT_SGIS"/>
+ <enum value="0x8125" name="GL_QUAD_TEXTURE_SELECT_SGIS"/>
+ <enum value="0x8126" name="GL_POINT_SIZE_MIN"/>
+ <enum value="0x8126" name="GL_POINT_SIZE_MIN_ARB"/>
+ <enum value="0x8126" name="GL_POINT_SIZE_MIN_EXT"/>
+ <enum value="0x8126" name="GL_POINT_SIZE_MIN_SGIS"/>
+ <enum value="0x8127" name="GL_POINT_SIZE_MAX"/>
+ <enum value="0x8127" name="GL_POINT_SIZE_MAX_ARB"/>
+ <enum value="0x8127" name="GL_POINT_SIZE_MAX_EXT"/>
+ <enum value="0x8127" name="GL_POINT_SIZE_MAX_SGIS"/>
+ <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE"/>
+ <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE_ARB"/>
+ <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE_EXT"/>
+ <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE_SGIS"/>
+ <enum value="0x8129" name="GL_DISTANCE_ATTENUATION_EXT"/>
+ <enum value="0x8129" name="GL_DISTANCE_ATTENUATION_SGIS"/>
+ <enum value="0x8129" name="GL_POINT_DISTANCE_ATTENUATION"/>
+ <enum value="0x8129" name="GL_POINT_DISTANCE_ATTENUATION_ARB"/>
+ <enum value="0x812A" name="GL_FOG_FUNC_SGIS"/>
+ <enum value="0x812B" name="GL_FOG_FUNC_POINTS_SGIS"/>
+ <enum value="0x812C" name="GL_MAX_FOG_FUNC_POINTS_SGIS"/>
+ <enum value="0x812D" name="GL_CLAMP_TO_BORDER"/>
+ <enum value="0x812D" name="GL_CLAMP_TO_BORDER_ARB"/>
+ <enum value="0x812D" name="GL_CLAMP_TO_BORDER_NV"/>
+ <enum value="0x812D" name="GL_CLAMP_TO_BORDER_SGIS"/>
+ <enum value="0x812E" name="GL_TEXTURE_MULTI_BUFFER_HINT_SGIX"/>
+ <enum value="0x812F" name="GL_CLAMP_TO_EDGE"/>
+ <enum value="0x812F" name="GL_CLAMP_TO_EDGE_SGIS"/>
+ <enum value="0x8130" name="GL_PACK_SKIP_VOLUMES_SGIS"/>
+ <enum value="0x8131" name="GL_PACK_IMAGE_DEPTH_SGIS"/>
+ <enum value="0x8132" name="GL_UNPACK_SKIP_VOLUMES_SGIS"/>
+ <enum value="0x8133" name="GL_UNPACK_IMAGE_DEPTH_SGIS"/>
+ <enum value="0x8134" name="GL_TEXTURE_4D_SGIS"/>
+ <enum value="0x8135" name="GL_PROXY_TEXTURE_4D_SGIS"/>
+ <enum value="0x8136" name="GL_TEXTURE_4DSIZE_SGIS"/>
+ <enum value="0x8137" name="GL_TEXTURE_WRAP_Q_SGIS"/>
+ <enum value="0x8138" name="GL_MAX_4D_TEXTURE_SIZE_SGIS"/>
+ <enum value="0x8139" name="GL_PIXEL_TEX_GEN_SGIX"/>
+ <enum value="0x813A" name="GL_TEXTURE_MIN_LOD"/>
+ <enum value="0x813A" name="GL_TEXTURE_MIN_LOD_SGIS"/>
+ <enum value="0x813B" name="GL_TEXTURE_MAX_LOD"/>
+ <enum value="0x813B" name="GL_TEXTURE_MAX_LOD_SGIS"/>
+ <enum value="0x813C" name="GL_TEXTURE_BASE_LEVEL"/>
+ <enum value="0x813C" name="GL_TEXTURE_BASE_LEVEL_SGIS"/>
+ <enum value="0x813D" name="GL_TEXTURE_MAX_LEVEL"/>
+ <enum value="0x813D" name="GL_TEXTURE_MAX_LEVEL_APPLE"/>
+ <enum value="0x813D" name="GL_TEXTURE_MAX_LEVEL_SGIS"/>
+ <enum value="0x813E" name="GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX"/>
+ <enum value="0x813F" name="GL_PIXEL_TILE_CACHE_INCREMENT_SGIX"/>
+ <enum value="0x8140" name="GL_PIXEL_TILE_WIDTH_SGIX"/>
+ <enum value="0x8141" name="GL_PIXEL_TILE_HEIGHT_SGIX"/>
+ <enum value="0x8142" name="GL_PIXEL_TILE_GRID_WIDTH_SGIX"/>
+ <enum value="0x8143" name="GL_PIXEL_TILE_GRID_HEIGHT_SGIX"/>
+ <enum value="0x8144" name="GL_PIXEL_TILE_GRID_DEPTH_SGIX"/>
+ <enum value="0x8145" name="GL_PIXEL_TILE_CACHE_SIZE_SGIX"/>
+ <enum value="0x8146" name="GL_FILTER4_SGIS"/>
+ <enum value="0x8147" name="GL_TEXTURE_FILTER4_SIZE_SGIS"/>
+ <enum value="0x8148" name="GL_SPRITE_SGIX"/>
+ <enum value="0x8149" name="GL_SPRITE_MODE_SGIX"/>
+ <enum value="0x814A" name="GL_SPRITE_AXIS_SGIX"/>
+ <enum value="0x814B" name="GL_SPRITE_TRANSLATION_SGIX"/>
+ <enum value="0x814C" name="GL_SPRITE_AXIAL_SGIX"/>
+ <enum value="0x814D" name="GL_SPRITE_OBJECT_ALIGNED_SGIX"/>
+ <enum value="0x814E" name="GL_SPRITE_EYE_ALIGNED_SGIX"/>
+ <enum value="0x814F" name="GL_TEXTURE_4D_BINDING_SGIS"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8150" end="0x816F" vendor="HP">
+ <enum value="0x8150" name="GL_IGNORE_BORDER_HP"/>
+ <enum value="0x8151" name="GL_CONSTANT_BORDER"/>
+ <enum value="0x8151" name="GL_CONSTANT_BORDER_HP"/>
+ <unused start="0x8152" comment="GL_WRAP_BORDER = 0x8152 was proposed, but not actually promoted to core"/>
+ <enum value="0x8153" name="GL_REPLICATE_BORDER"/>
+ <enum value="0x8153" name="GL_REPLICATE_BORDER_HP"/>
+ <enum value="0x8154" name="GL_CONVOLUTION_BORDER_COLOR"/>
+ <enum value="0x8154" name="GL_CONVOLUTION_BORDER_COLOR_HP"/>
+ <enum value="0x8155" name="GL_IMAGE_SCALE_X_HP"/>
+ <enum value="0x8156" name="GL_IMAGE_SCALE_Y_HP"/>
+ <enum value="0x8157" name="GL_IMAGE_TRANSLATE_X_HP"/>
+ <enum value="0x8158" name="GL_IMAGE_TRANSLATE_Y_HP"/>
+ <enum value="0x8159" name="GL_IMAGE_ROTATE_ANGLE_HP"/>
+ <enum value="0x815A" name="GL_IMAGE_ROTATE_ORIGIN_X_HP"/>
+ <enum value="0x815B" name="GL_IMAGE_ROTATE_ORIGIN_Y_HP"/>
+ <enum value="0x815C" name="GL_IMAGE_MAG_FILTER_HP"/>
+ <enum value="0x815D" name="GL_IMAGE_MIN_FILTER_HP"/>
+ <enum value="0x815E" name="GL_IMAGE_CUBIC_WEIGHT_HP"/>
+ <enum value="0x815F" name="GL_CUBIC_HP"/>
+ <enum value="0x8160" name="GL_AVERAGE_HP"/>
+ <enum value="0x8161" name="GL_IMAGE_TRANSFORM_2D_HP"/>
+ <enum value="0x8162" name="GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP"/>
+ <enum value="0x8163" name="GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP"/>
+ <unused start="0x8164"/>
+ <enum value="0x8165" name="GL_OCCLUSION_TEST_HP"/>
+ <enum value="0x8166" name="GL_OCCLUSION_TEST_RESULT_HP"/>
+ <enum value="0x8167" name="GL_TEXTURE_LIGHTING_MODE_HP"/>
+ <enum value="0x8168" name="GL_TEXTURE_POST_SPECULAR_HP"/>
+ <enum value="0x8169" name="GL_TEXTURE_PRE_SPECULAR_HP"/>
+ <unused start="0x816A" end="0x816F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8170" end="0x81CF" vendor="SGI">
+ <enum value="0x8170" name="GL_LINEAR_CLIPMAP_LINEAR_SGIX"/>
+ <enum value="0x8171" name="GL_TEXTURE_CLIPMAP_CENTER_SGIX"/>
+ <enum value="0x8172" name="GL_TEXTURE_CLIPMAP_FRAME_SGIX"/>
+ <enum value="0x8173" name="GL_TEXTURE_CLIPMAP_OFFSET_SGIX"/>
+ <enum value="0x8174" name="GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum value="0x8175" name="GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX"/>
+ <enum value="0x8176" name="GL_TEXTURE_CLIPMAP_DEPTH_SGIX"/>
+ <enum value="0x8177" name="GL_MAX_CLIPMAP_DEPTH_SGIX"/>
+ <enum value="0x8178" name="GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum value="0x8179" name="GL_POST_TEXTURE_FILTER_BIAS_SGIX"/>
+ <enum value="0x817A" name="GL_POST_TEXTURE_FILTER_SCALE_SGIX"/>
+ <enum value="0x817B" name="GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX"/>
+ <enum value="0x817C" name="GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX"/>
+ <enum value="0x817D" name="GL_REFERENCE_PLANE_SGIX"/>
+ <enum value="0x817E" name="GL_REFERENCE_PLANE_EQUATION_SGIX"/>
+ <enum value="0x817F" name="GL_IR_INSTRUMENT1_SGIX"/>
+ <enum value="0x8180" name="GL_INSTRUMENT_BUFFER_POINTER_SGIX"/>
+ <enum value="0x8181" name="GL_INSTRUMENT_MEASUREMENTS_SGIX"/>
+ <enum value="0x8182" name="GL_LIST_PRIORITY_SGIX"/>
+ <enum value="0x8183" name="GL_CALLIGRAPHIC_FRAGMENT_SGIX"/>
+ <enum value="0x8184" name="GL_PIXEL_TEX_GEN_Q_CEILING_SGIX"/>
+ <enum value="0x8185" name="GL_PIXEL_TEX_GEN_Q_ROUND_SGIX"/>
+ <enum value="0x8186" name="GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX"/>
+ <enum value="0x8187" name="GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX"/>
+ <enum value="0x8188" name="GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX"/>
+ <enum value="0x8189" name="GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX"/>
+ <enum value="0x818A" name="GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX"/>
+ <enum value="0x818B" name="GL_FRAMEZOOM_SGIX"/>
+ <enum value="0x818C" name="GL_FRAMEZOOM_FACTOR_SGIX"/>
+ <enum value="0x818D" name="GL_MAX_FRAMEZOOM_FACTOR_SGIX"/>
+ <enum value="0x818E" name="GL_TEXTURE_LOD_BIAS_S_SGIX"/>
+ <enum value="0x818F" name="GL_TEXTURE_LOD_BIAS_T_SGIX"/>
+ <enum value="0x8190" name="GL_TEXTURE_LOD_BIAS_R_SGIX"/>
+ <enum value="0x8191" name="GL_GENERATE_MIPMAP"/>
+ <enum value="0x8191" name="GL_GENERATE_MIPMAP_SGIS"/>
+ <enum value="0x8192" name="GL_GENERATE_MIPMAP_HINT"/>
+ <enum value="0x8192" name="GL_GENERATE_MIPMAP_HINT_SGIS"/>
+ <unused start="0x8193" end="0x8193" comment="Incomplete extension SGIX_spotlight_cutoff"/>
+ <!-- <enum value="0x8193" name="GL_SPOT_CUTOFF_DELTA_SGIX"/> -->
+ <enum value="0x8194" name="GL_GEOMETRY_DEFORMATION_SGIX"/>
+ <enum value="0x8195" name="GL_TEXTURE_DEFORMATION_SGIX"/>
+ <enum value="0x8196" name="GL_DEFORMATIONS_MASK_SGIX"/>
+ <enum value="0x8197" name="GL_MAX_DEFORMATION_ORDER_SGIX"/>
+ <enum value="0x8198" name="GL_FOG_OFFSET_SGIX"/>
+ <enum value="0x8199" name="GL_FOG_OFFSET_VALUE_SGIX"/>
+ <enum value="0x819A" name="GL_TEXTURE_COMPARE_SGIX"/>
+ <enum value="0x819B" name="GL_TEXTURE_COMPARE_OPERATOR_SGIX"/>
+ <enum value="0x819C" name="GL_TEXTURE_LEQUAL_R_SGIX"/>
+ <enum value="0x819D" name="GL_TEXTURE_GEQUAL_R_SGIX"/>
+ <unused start="0x819E" end="0x81A4" comment="Private (internal) extension SGIX_igloo_interface"/>
+ <!-- <enum value="0x819E" name="GL_IGLOO_FULLSCREEN_SGIX"/> -->
+ <!-- <enum value="0x819F" name="GL_IGLOO_VIEWPORT_OFFSET_SGIX"/> -->
+ <!-- <enum value="0x81A0" name="GL_IGLOO_SWAPTMESH_SGIX"/> -->
+ <!-- <enum value="0x81A1" name="GL_IGLOO_COLORNORMAL_SGIX"/> -->
+ <!-- <enum value="0x81A2" name="GL_IGLOO_IRISGL_MODE_SGIX"/> -->
+ <!-- <enum value="0x81A3" name="GL_IGLOO_LMC_COLOR_SGIX"/> -->
+ <!-- <enum value="0x81A4" name="GL_IGLOO_TMESHMODE_SGIX"/> -->
+ <enum value="0x81A5" name="GL_DEPTH_COMPONENT16"/>
+ <enum value="0x81A5" name="GL_DEPTH_COMPONENT16_ARB"/>
+ <enum value="0x81A5" name="GL_DEPTH_COMPONENT16_OES"/>
+ <enum value="0x81A5" name="GL_DEPTH_COMPONENT16_SGIX"/>
+ <enum value="0x81A6" name="GL_DEPTH_COMPONENT24"/>
+ <enum value="0x81A6" name="GL_DEPTH_COMPONENT24_ARB"/>
+ <enum value="0x81A6" name="GL_DEPTH_COMPONENT24_OES"/>
+ <enum value="0x81A6" name="GL_DEPTH_COMPONENT24_SGIX"/>
+ <enum value="0x81A7" name="GL_DEPTH_COMPONENT32"/>
+ <enum value="0x81A7" name="GL_DEPTH_COMPONENT32_ARB"/>
+ <enum value="0x81A7" name="GL_DEPTH_COMPONENT32_OES"/>
+ <enum value="0x81A7" name="GL_DEPTH_COMPONENT32_SGIX"/>
+ <enum value="0x81A8" name="GL_ARRAY_ELEMENT_LOCK_FIRST_EXT"/>
+ <enum value="0x81A9" name="GL_ARRAY_ELEMENT_LOCK_COUNT_EXT"/>
+ <enum value="0x81AA" name="GL_CULL_VERTEX_EXT"/>
+ <enum value="0x81AB" name="GL_CULL_VERTEX_EYE_POSITION_EXT"/>
+ <enum value="0x81AC" name="GL_CULL_VERTEX_OBJECT_POSITION_EXT"/>
+ <enum value="0x81AD" name="GL_IUI_V2F_EXT"/>
+ <enum value="0x81AE" name="GL_IUI_V3F_EXT"/>
+ <enum value="0x81AF" name="GL_IUI_N3F_V2F_EXT"/>
+ <enum value="0x81B0" name="GL_IUI_N3F_V3F_EXT"/>
+ <enum value="0x81B1" name="GL_T2F_IUI_V2F_EXT"/>
+ <enum value="0x81B2" name="GL_T2F_IUI_V3F_EXT"/>
+ <enum value="0x81B3" name="GL_T2F_IUI_N3F_V2F_EXT"/>
+ <enum value="0x81B4" name="GL_T2F_IUI_N3F_V3F_EXT"/>
+ <enum value="0x81B5" name="GL_INDEX_TEST_EXT"/>
+ <enum value="0x81B6" name="GL_INDEX_TEST_FUNC_EXT"/>
+ <enum value="0x81B7" name="GL_INDEX_TEST_REF_EXT"/>
+ <enum value="0x81B8" name="GL_INDEX_MATERIAL_EXT"/>
+ <enum value="0x81B9" name="GL_INDEX_MATERIAL_PARAMETER_EXT"/>
+ <enum value="0x81BA" name="GL_INDEX_MATERIAL_FACE_EXT"/>
+ <enum value="0x81BB" name="GL_YCRCB_422_SGIX"/>
+ <enum value="0x81BC" name="GL_YCRCB_444_SGIX"/>
+ <unused start="0x81BD" end="0x81C3" comment="Incomplete extension SGI_complex_type"/>
+ <!-- <enum value="0x81BD" name="GL_COMPLEX_UNSIGNED_BYTE_SGI"/> -->
+ <!-- <enum value="0x81BE" name="GL_COMPLEX_BYTE_SGI"/> -->
+ <!-- <enum value="0x81BF" name="GL_COMPLEX_UNSIGNED_SHORT_SGI"/> -->
+ <!-- <enum value="0x81C0" name="GL_COMPLEX_SHORT_SGI"/> -->
+ <!-- <enum value="0x81C1" name="GL_COMPLEX_UNSIGNED_INT_SGI"/> -->
+ <!-- <enum value="0x81C2" name="GL_COMPLEX_INT_SGI"/> -->
+ <!-- <enum value="0x81C3" name="GL_COMPLEX_FLOAT_SGI"/> -->
+ <unused start="0x81C4" end="0x81CA" comment="Incomplete extension SGI_fft"/>
+ <!-- <enum value="0x81C4" name="GL_PIXEL_TRANSFORM_OPERATOR_SGI"/> -->
+ <!-- <enum value="0x81C5" name="GL_CONVOLUTION_SGI"/> -->
+ <!-- <enum value="0x81C6" name="GL_FFT_1D_SGI"/> -->
+ <!-- <enum value="0x81C7" name="GL_PIXEL_TRANSFORM_SGI"/> -->
+ <!-- <enum value="0x81C8" name="GL_MAX_FFT_WIDTH_SGI"/> -->
+ <!-- <enum value="0x81C9" name="GL_SORT_SGI"/> -->
+ <!-- <enum value="0x81CA" name="GL_TRANSPOSE_SGI"/> -->
+ <unused start="0x81CB" end="0x81CF" comment="Incomplete extension SGIX_nurbs_eval"/>
+ <!-- <enum value="0x81CB" name="GL_MAP1_VERTEX_3_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81CC" name="GL_MAP1_VERTEX_4_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81CD" name="GL_MAP1_INDEX_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81CE" name="GL_MAP1_COLOR_4_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81CF" name="GL_MAP1_NORMAL_NURBS_SGIX"/> -->
+ </enums>
+
+ <enums namespace="GL" start="0x81D0" end="0x81DF" vendor="SUN">
+ <unused start="0x81D0" end="0x81D1"/>
+ <unused start="0x81D2" end="0x81D3" comment="No extension spec SUNX_surface_hint"/>
+ <!-- <enum value="0x81D2" name="GL_SURFACE_SIZE_HINT_SUNX"/> -->
+ <!-- <enum value="0x81D3" name="GL_LARGE_SUNX"/> -->
+ <enum value="0x81D4" name="GL_WRAP_BORDER_SUN"/>
+ <enum value="0x81D5" name="GL_UNPACK_CONSTANT_DATA_SUNX"/>
+ <enum value="0x81D6" name="GL_TEXTURE_CONSTANT_DATA_SUNX"/>
+ <enum value="0x81D7" name="GL_TRIANGLE_LIST_SUN"/>
+ <enum value="0x81D8" name="GL_REPLACEMENT_CODE_SUN"/>
+ <enum value="0x81D9" name="GL_GLOBAL_ALPHA_SUN"/>
+ <enum value="0x81DA" name="GL_GLOBAL_ALPHA_FACTOR_SUN"/>
+ <unused start="0x81DB" end="0x81DF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x81E0" end="0x81FF" vendor="SGI">
+ <unused start="0x81E0" end="0x81EE" comment="Incomplete extension SGIX_nurbs_eval"/>
+ <!-- <enum value="0x81E0" name="GL_MAP1_TEXTURE_COORD_1_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E1" name="GL_MAP1_TEXTURE_COORD_2_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E2" name="GL_MAP1_TEXTURE_COORD_3_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E3" name="GL_MAP1_TEXTURE_COORD_4_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E4" name="GL_MAP2_VERTEX_3_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E5" name="GL_MAP2_VERTEX_4_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E6" name="GL_MAP2_INDEX_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E7" name="GL_MAP2_COLOR_4_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E8" name="GL_MAP2_NORMAL_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E9" name="GL_MAP2_TEXTURE_COORD_1_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81EA" name="GL_MAP2_TEXTURE_COORD_2_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81EB" name="GL_MAP2_TEXTURE_COORD_3_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81EC" name="GL_MAP2_TEXTURE_COORD_4_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81ED" name="GL_NURBS_KNOT_COUNT_SGIX"/> -->
+ <!-- <enum value="0x81EE" name="GL_NURBS_KNOT_VECTOR_SGIX"/> -->
+ <enum value="0x81EF" name="GL_TEXTURE_COLOR_WRITEMASK_SGIS"/>
+ <enum value="0x81F0" name="GL_EYE_DISTANCE_TO_POINT_SGIS"/>
+ <enum value="0x81F1" name="GL_OBJECT_DISTANCE_TO_POINT_SGIS"/>
+ <enum value="0x81F2" name="GL_EYE_DISTANCE_TO_LINE_SGIS"/>
+ <enum value="0x81F3" name="GL_OBJECT_DISTANCE_TO_LINE_SGIS"/>
+ <enum value="0x81F4" name="GL_EYE_POINT_SGIS"/>
+ <enum value="0x81F5" name="GL_OBJECT_POINT_SGIS"/>
+ <enum value="0x81F6" name="GL_EYE_LINE_SGIS"/>
+ <enum value="0x81F7" name="GL_OBJECT_LINE_SGIS"/>
+ <enum value="0x81F8" name="GL_LIGHT_MODEL_COLOR_CONTROL"/>
+ <enum value="0x81F8" name="GL_LIGHT_MODEL_COLOR_CONTROL_EXT"/>
+ <enum value="0x81F9" name="GL_SINGLE_COLOR"/>
+ <enum value="0x81F9" name="GL_SINGLE_COLOR_EXT"/>
+ <enum value="0x81FA" name="GL_SEPARATE_SPECULAR_COLOR"/>
+ <enum value="0x81FA" name="GL_SEPARATE_SPECULAR_COLOR_EXT"/>
+ <enum value="0x81FB" name="GL_SHARED_TEXTURE_PALETTE_EXT"/>
+ <unused start="0x81FC" end="0x81FD" comment="Incomplete extension SGIX_fog_scale"/>
+ <!-- <enum value="0x81FC" name="GL_FOG_SCALE_SGIX"/> -->
+ <!-- <enum value="0x81FD" name="GL_FOG_SCALE_VALUE_SGIX"/> -->
+ <unused start="0x81FE" end="0x81FF" comment="Incomplete extension SGIX_fog_blend"/>
+ <!-- <enum value="0x81FE" name="GL_FOG_BLEND_ALPHA_SGIX"/> -->
+ <!-- <enum value="0x81FF" name="GL_FOG_BLEND_COLOR_SGIX"/> -->
+ </enums>
+
+ <enums namespace="GL" start="0x8200" end="0x820F" vendor="AMD" comment="Range released by MS 2002/9/16">
+ <enum value="0x8200" name="GL_TEXT_FRAGMENT_SHADER_ATI"/>
+ <unused start="0x8201" end="0x820F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8210" end="0x823F" vendor="ARB">
+ <enum value="0x8210" name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING"/>
+ <enum value="0x8210" name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT"/>
+ <enum value="0x8211" name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE"/>
+ <enum value="0x8211" name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT"/>
+ <enum value="0x8212" name="GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE"/>
+ <enum value="0x8213" name="GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE"/>
+ <enum value="0x8214" name="GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE"/>
+ <enum value="0x8215" name="GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE"/>
+ <enum value="0x8216" name="GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE"/>
+ <enum value="0x8217" name="GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE"/>
+ <enum value="0x8218" name="GL_FRAMEBUFFER_DEFAULT"/>
+ <enum value="0x8219" name="GL_FRAMEBUFFER_UNDEFINED"/>
+ <enum value="0x8219" name="GL_FRAMEBUFFER_UNDEFINED_OES"/>
+ <enum value="0x821A" name="GL_DEPTH_STENCIL_ATTACHMENT"/>
+ <enum value="0x821B" name="GL_MAJOR_VERSION"/>
+ <enum value="0x821C" name="GL_MINOR_VERSION"/>
+ <enum value="0x821D" name="GL_NUM_EXTENSIONS"/>
+ <enum value="0x821E" name="GL_CONTEXT_FLAGS"/>
+ <enum value="0x821F" name="GL_BUFFER_IMMUTABLE_STORAGE"/>
+ <enum value="0x8220" name="GL_BUFFER_STORAGE_FLAGS"/>
+ <enum value="0x8221" name="GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED" comment="Proposed for Bug 10364"/>
+ <enum value="0x8222" name="GL_INDEX"/>
+ <unused start="0x8223" comment="GL_DEPTH_BUFFER = 0x8223 not actually used in the API"/>
+ <unused start="0x8224" comment="GL_STENCIL_BUFFER = 0x8224 not actually used in the API"/>
+ <enum value="0x8225" name="GL_COMPRESSED_RED"/>
+ <enum value="0x8226" name="GL_COMPRESSED_RG"/>
+ <enum value="0x8227" name="GL_RG"/>
+ <enum value="0x8227" name="GL_RG_EXT"/>
+ <enum value="0x8228" name="GL_RG_INTEGER"/>
+ <enum value="0x8229" name="GL_R8"/>
+ <enum value="0x8229" name="GL_R8_EXT"/>
+ <enum value="0x822A" name="GL_R16"/>
+ <enum value="0x822B" name="GL_RG8"/>
+ <enum value="0x822B" name="GL_RG8_EXT"/>
+ <enum value="0x822C" name="GL_RG16"/>
+ <enum value="0x822D" name="GL_R16F"/>
+ <enum value="0x822D" name="GL_R16F_EXT"/>
+ <enum value="0x822E" name="GL_R32F"/>
+ <enum value="0x822E" name="GL_R32F_EXT"/>
+ <enum value="0x822F" name="GL_RG16F"/>
+ <enum value="0x822F" name="GL_RG16F_EXT"/>
+ <enum value="0x8230" name="GL_RG32F"/>
+ <enum value="0x8230" name="GL_RG32F_EXT"/>
+ <enum value="0x8231" name="GL_R8I"/>
+ <enum value="0x8232" name="GL_R8UI"/>
+ <enum value="0x8233" name="GL_R16I"/>
+ <enum value="0x8234" name="GL_R16UI"/>
+ <enum value="0x8235" name="GL_R32I"/>
+ <enum value="0x8236" name="GL_R32UI"/>
+ <enum value="0x8237" name="GL_RG8I"/>
+ <enum value="0x8238" name="GL_RG8UI"/>
+ <enum value="0x8239" name="GL_RG16I"/>
+ <enum value="0x823A" name="GL_RG16UI"/>
+ <enum value="0x823B" name="GL_RG32I"/>
+ <enum value="0x823C" name="GL_RG32UI"/>
+ <unused start="0x823D" end="0x823F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8240" end="0x82AF" vendor="ARB" comment="Range released by MS on 2002/9/16">
+ <enum value="0x8240" name="GL_SYNC_CL_EVENT_ARB"/>
+ <enum value="0x8241" name="GL_SYNC_CL_EVENT_COMPLETE_ARB"/>
+ <enum value="0x8242" name="GL_DEBUG_OUTPUT_SYNCHRONOUS"/>
+ <enum value="0x8242" name="GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB"/>
+ <enum value="0x8242" name="GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR"/>
+ <enum value="0x8243" name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH"/>
+ <enum value="0x8243" name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB"/>
+ <enum value="0x8243" name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR"/>
+ <enum value="0x8244" name="GL_DEBUG_CALLBACK_FUNCTION"/>
+ <enum value="0x8244" name="GL_DEBUG_CALLBACK_FUNCTION_ARB"/>
+ <enum value="0x8244" name="GL_DEBUG_CALLBACK_FUNCTION_KHR"/>
+ <enum value="0x8245" name="GL_DEBUG_CALLBACK_USER_PARAM"/>
+ <enum value="0x8245" name="GL_DEBUG_CALLBACK_USER_PARAM_ARB"/>
+ <enum value="0x8245" name="GL_DEBUG_CALLBACK_USER_PARAM_KHR"/>
+ <enum value="0x8246" name="GL_DEBUG_SOURCE_API"/>
+ <enum value="0x8246" name="GL_DEBUG_SOURCE_API_ARB"/>
+ <enum value="0x8246" name="GL_DEBUG_SOURCE_API_KHR"/>
+ <enum value="0x8247" name="GL_DEBUG_SOURCE_WINDOW_SYSTEM"/>
+ <enum value="0x8247" name="GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB"/>
+ <enum value="0x8247" name="GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR"/>
+ <enum value="0x8248" name="GL_DEBUG_SOURCE_SHADER_COMPILER"/>
+ <enum value="0x8248" name="GL_DEBUG_SOURCE_SHADER_COMPILER_ARB"/>
+ <enum value="0x8248" name="GL_DEBUG_SOURCE_SHADER_COMPILER_KHR"/>
+ <enum value="0x8249" name="GL_DEBUG_SOURCE_THIRD_PARTY"/>
+ <enum value="0x8249" name="GL_DEBUG_SOURCE_THIRD_PARTY_ARB"/>
+ <enum value="0x8249" name="GL_DEBUG_SOURCE_THIRD_PARTY_KHR"/>
+ <enum value="0x824A" name="GL_DEBUG_SOURCE_APPLICATION"/>
+ <enum value="0x824A" name="GL_DEBUG_SOURCE_APPLICATION_ARB"/>
+ <enum value="0x824A" name="GL_DEBUG_SOURCE_APPLICATION_KHR"/>
+ <enum value="0x824B" name="GL_DEBUG_SOURCE_OTHER"/>
+ <enum value="0x824B" name="GL_DEBUG_SOURCE_OTHER_ARB"/>
+ <enum value="0x824B" name="GL_DEBUG_SOURCE_OTHER_KHR"/>
+ <enum value="0x824C" name="GL_DEBUG_TYPE_ERROR"/>
+ <enum value="0x824C" name="GL_DEBUG_TYPE_ERROR_ARB"/>
+ <enum value="0x824C" name="GL_DEBUG_TYPE_ERROR_KHR"/>
+ <enum value="0x824D" name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR"/>
+ <enum value="0x824D" name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB"/>
+ <enum value="0x824D" name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR"/>
+ <enum value="0x824E" name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR"/>
+ <enum value="0x824E" name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB"/>
+ <enum value="0x824E" name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR"/>
+ <enum value="0x824F" name="GL_DEBUG_TYPE_PORTABILITY"/>
+ <enum value="0x824F" name="GL_DEBUG_TYPE_PORTABILITY_ARB"/>
+ <enum value="0x824F" name="GL_DEBUG_TYPE_PORTABILITY_KHR"/>
+ <enum value="0x8250" name="GL_DEBUG_TYPE_PERFORMANCE"/>
+ <enum value="0x8250" name="GL_DEBUG_TYPE_PERFORMANCE_ARB"/>
+ <enum value="0x8250" name="GL_DEBUG_TYPE_PERFORMANCE_KHR"/>
+ <enum value="0x8251" name="GL_DEBUG_TYPE_OTHER"/>
+ <enum value="0x8251" name="GL_DEBUG_TYPE_OTHER_ARB"/>
+ <enum value="0x8251" name="GL_DEBUG_TYPE_OTHER_KHR"/>
+ <enum value="0x8252" name="GL_LOSE_CONTEXT_ON_RESET_ARB"/>
+ <enum value="0x8252" name="GL_LOSE_CONTEXT_ON_RESET_EXT"/>
+ <enum value="0x8253" name="GL_GUILTY_CONTEXT_RESET_ARB"/>
+ <enum value="0x8253" name="GL_GUILTY_CONTEXT_RESET_EXT"/>
+ <enum value="0x8254" name="GL_INNOCENT_CONTEXT_RESET_ARB"/>
+ <enum value="0x8254" name="GL_INNOCENT_CONTEXT_RESET_EXT"/>
+ <enum value="0x8255" name="GL_UNKNOWN_CONTEXT_RESET_ARB"/>
+ <enum value="0x8255" name="GL_UNKNOWN_CONTEXT_RESET_EXT"/>
+ <enum value="0x8256" name="GL_RESET_NOTIFICATION_STRATEGY_ARB"/>
+ <enum value="0x8256" name="GL_RESET_NOTIFICATION_STRATEGY_EXT"/>
+ <enum value="0x8257" name="GL_PROGRAM_BINARY_RETRIEVABLE_HINT"/>
+ <enum value="0x8258" name="GL_PROGRAM_SEPARABLE"/>
+ <enum value="0x8258" name="GL_PROGRAM_SEPARABLE_EXT"/>
+ <enum value="0x8259" name="GL_ACTIVE_PROGRAM"/>
+ <enum value="0x8259" api="gles2" name="GL_ACTIVE_PROGRAM_EXT" comment="For the OpenGL ES version of EXT_separate_shader_objects"/>
+ <enum value="0x825A" name="GL_PROGRAM_PIPELINE_BINDING"/>
+ <enum value="0x825A" name="GL_PROGRAM_PIPELINE_BINDING_EXT"/>
+ <enum value="0x825B" name="GL_MAX_VIEWPORTS"/>
+ <enum value="0x825C" name="GL_VIEWPORT_SUBPIXEL_BITS"/>
+ <enum value="0x825D" name="GL_VIEWPORT_BOUNDS_RANGE"/>
+ <enum value="0x825E" name="GL_LAYER_PROVOKING_VERTEX"/>
+ <enum value="0x825F" name="GL_VIEWPORT_INDEX_PROVOKING_VERTEX"/>
+ <enum value="0x8260" name="GL_UNDEFINED_VERTEX"/>
+ <enum value="0x8261" name="GL_NO_RESET_NOTIFICATION_ARB"/>
+ <enum value="0x8261" name="GL_NO_RESET_NOTIFICATION_EXT"/>
+ <enum value="0x8262" name="GL_MAX_COMPUTE_SHARED_MEMORY_SIZE"/>
+ <enum value="0x8263" name="GL_MAX_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum value="0x8264" name="GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x8265" name="GL_MAX_COMPUTE_ATOMIC_COUNTERS"/>
+ <enum value="0x8266" name="GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum value="0x8267" name="GL_COMPUTE_WORK_GROUP_SIZE"/>
+ <enum value="0x8268" name="GL_DEBUG_TYPE_MARKER"/>
+ <enum value="0x8268" name="GL_DEBUG_TYPE_MARKER_KHR"/>
+ <enum value="0x8269" name="GL_DEBUG_TYPE_PUSH_GROUP"/>
+ <enum value="0x8269" name="GL_DEBUG_TYPE_PUSH_GROUP_KHR"/>
+ <enum value="0x826A" name="GL_DEBUG_TYPE_POP_GROUP"/>
+ <enum value="0x826A" name="GL_DEBUG_TYPE_POP_GROUP_KHR"/>
+ <enum value="0x826B" name="GL_DEBUG_SEVERITY_NOTIFICATION"/>
+ <enum value="0x826B" name="GL_DEBUG_SEVERITY_NOTIFICATION_KHR"/>
+ <enum value="0x826C" name="GL_MAX_DEBUG_GROUP_STACK_DEPTH"/>
+ <enum value="0x826C" name="GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR"/>
+ <enum value="0x826D" name="GL_DEBUG_GROUP_STACK_DEPTH"/>
+ <enum value="0x826D" name="GL_DEBUG_GROUP_STACK_DEPTH_KHR"/>
+ <enum value="0x826E" name="GL_MAX_UNIFORM_LOCATIONS"/>
+ <enum value="0x826F" name="GL_INTERNALFORMAT_SUPPORTED"/>
+ <enum value="0x8270" name="GL_INTERNALFORMAT_PREFERRED"/>
+ <enum value="0x8271" name="GL_INTERNALFORMAT_RED_SIZE"/>
+ <enum value="0x8272" name="GL_INTERNALFORMAT_GREEN_SIZE"/>
+ <enum value="0x8273" name="GL_INTERNALFORMAT_BLUE_SIZE"/>
+ <enum value="0x8274" name="GL_INTERNALFORMAT_ALPHA_SIZE"/>
+ <enum value="0x8275" name="GL_INTERNALFORMAT_DEPTH_SIZE"/>
+ <enum value="0x8276" name="GL_INTERNALFORMAT_STENCIL_SIZE"/>
+ <enum value="0x8277" name="GL_INTERNALFORMAT_SHARED_SIZE"/>
+ <enum value="0x8278" name="GL_INTERNALFORMAT_RED_TYPE"/>
+ <enum value="0x8279" name="GL_INTERNALFORMAT_GREEN_TYPE"/>
+ <enum value="0x827A" name="GL_INTERNALFORMAT_BLUE_TYPE"/>
+ <enum value="0x827B" name="GL_INTERNALFORMAT_ALPHA_TYPE"/>
+ <enum value="0x827C" name="GL_INTERNALFORMAT_DEPTH_TYPE"/>
+ <enum value="0x827D" name="GL_INTERNALFORMAT_STENCIL_TYPE"/>
+ <enum value="0x827E" name="GL_MAX_WIDTH"/>
+ <enum value="0x827F" name="GL_MAX_HEIGHT"/>
+ <enum value="0x8280" name="GL_MAX_DEPTH"/>
+ <enum value="0x8281" name="GL_MAX_LAYERS"/>
+ <enum value="0x8282" name="GL_MAX_COMBINED_DIMENSIONS"/>
+ <enum value="0x8283" name="GL_COLOR_COMPONENTS"/>
+ <enum value="0x8284" name="GL_DEPTH_COMPONENTS"/>
+ <enum value="0x8285" name="GL_STENCIL_COMPONENTS"/>
+ <enum value="0x8286" name="GL_COLOR_RENDERABLE"/>
+ <enum value="0x8287" name="GL_DEPTH_RENDERABLE"/>
+ <enum value="0x8288" name="GL_STENCIL_RENDERABLE"/>
+ <enum value="0x8289" name="GL_FRAMEBUFFER_RENDERABLE"/>
+ <enum value="0x828A" name="GL_FRAMEBUFFER_RENDERABLE_LAYERED"/>
+ <enum value="0x828B" name="GL_FRAMEBUFFER_BLEND"/>
+ <enum value="0x828C" name="GL_READ_PIXELS"/>
+ <enum value="0x828D" name="GL_READ_PIXELS_FORMAT"/>
+ <enum value="0x828E" name="GL_READ_PIXELS_TYPE"/>
+ <enum value="0x828F" name="GL_TEXTURE_IMAGE_FORMAT"/>
+ <enum value="0x8290" name="GL_TEXTURE_IMAGE_TYPE"/>
+ <enum value="0x8291" name="GL_GET_TEXTURE_IMAGE_FORMAT"/>
+ <enum value="0x8292" name="GL_GET_TEXTURE_IMAGE_TYPE"/>
+ <enum value="0x8293" name="GL_MIPMAP"/>
+ <enum value="0x8294" name="GL_MANUAL_GENERATE_MIPMAP"/>
+ <enum value="0x8295" name="GL_AUTO_GENERATE_MIPMAP" comment="Should be deprecated"/>
+ <enum value="0x8296" name="GL_COLOR_ENCODING"/>
+ <enum value="0x8297" name="GL_SRGB_READ"/>
+ <enum value="0x8298" name="GL_SRGB_WRITE"/>
+ <enum value="0x8299" name="GL_SRGB_DECODE_ARB"/>
+ <enum value="0x829A" name="GL_FILTER"/>
+ <enum value="0x829B" name="GL_VERTEX_TEXTURE"/>
+ <enum value="0x829C" name="GL_TESS_CONTROL_TEXTURE"/>
+ <enum value="0x829D" name="GL_TESS_EVALUATION_TEXTURE"/>
+ <enum value="0x829E" name="GL_GEOMETRY_TEXTURE"/>
+ <enum value="0x829F" name="GL_FRAGMENT_TEXTURE"/>
+ <enum value="0x82A0" name="GL_COMPUTE_TEXTURE"/>
+ <enum value="0x82A1" name="GL_TEXTURE_SHADOW"/>
+ <enum value="0x82A2" name="GL_TEXTURE_GATHER"/>
+ <enum value="0x82A3" name="GL_TEXTURE_GATHER_SHADOW"/>
+ <enum value="0x82A4" name="GL_SHADER_IMAGE_LOAD"/>
+ <enum value="0x82A5" name="GL_SHADER_IMAGE_STORE"/>
+ <enum value="0x82A6" name="GL_SHADER_IMAGE_ATOMIC"/>
+ <enum value="0x82A7" name="GL_IMAGE_TEXEL_SIZE"/>
+ <enum value="0x82A8" name="GL_IMAGE_COMPATIBILITY_CLASS"/>
+ <enum value="0x82A9" name="GL_IMAGE_PIXEL_FORMAT"/>
+ <enum value="0x82AA" name="GL_IMAGE_PIXEL_TYPE"/>
+ <unused start="0x82AB"/>
+ <enum value="0x82AC" name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST"/>
+ <enum value="0x82AD" name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST"/>
+ <enum value="0x82AE" name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE"/>
+ <enum value="0x82AF" name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE"/>
+ </enums>
+
+ <enums namespace="GL" start="0x82B0" end="0x830F" vendor="ARB" comment="Range reclaimed from ADD on 2012/05/10">
+ <unused start="0x82B0"/>
+ <enum value="0x82B1" name="GL_TEXTURE_COMPRESSED_BLOCK_WIDTH"/>
+ <enum value="0x82B2" name="GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum value="0x82B3" name="GL_TEXTURE_COMPRESSED_BLOCK_SIZE"/>
+ <enum value="0x82B4" name="GL_CLEAR_BUFFER"/>
+ <enum value="0x82B5" name="GL_TEXTURE_VIEW"/>
+ <enum value="0x82B6" name="GL_VIEW_COMPATIBILITY_CLASS"/>
+ <enum value="0x82B7" name="GL_FULL_SUPPORT"/>
+ <enum value="0x82B8" name="GL_CAVEAT_SUPPORT"/>
+ <enum value="0x82B9" name="GL_IMAGE_CLASS_4_X_32"/>
+ <enum value="0x82BA" name="GL_IMAGE_CLASS_2_X_32"/>
+ <enum value="0x82BB" name="GL_IMAGE_CLASS_1_X_32"/>
+ <enum value="0x82BC" name="GL_IMAGE_CLASS_4_X_16"/>
+ <enum value="0x82BD" name="GL_IMAGE_CLASS_2_X_16"/>
+ <enum value="0x82BE" name="GL_IMAGE_CLASS_1_X_16"/>
+ <enum value="0x82BF" name="GL_IMAGE_CLASS_4_X_8"/>
+ <enum value="0x82C0" name="GL_IMAGE_CLASS_2_X_8"/>
+ <enum value="0x82C1" name="GL_IMAGE_CLASS_1_X_8"/>
+ <enum value="0x82C2" name="GL_IMAGE_CLASS_11_11_10"/>
+ <enum value="0x82C3" name="GL_IMAGE_CLASS_10_10_10_2"/>
+ <enum value="0x82C4" name="GL_VIEW_CLASS_128_BITS"/>
+ <enum value="0x82C5" name="GL_VIEW_CLASS_96_BITS"/>
+ <enum value="0x82C6" name="GL_VIEW_CLASS_64_BITS"/>
+ <enum value="0x82C7" name="GL_VIEW_CLASS_48_BITS"/>
+ <enum value="0x82C8" name="GL_VIEW_CLASS_32_BITS"/>
+ <enum value="0x82C9" name="GL_VIEW_CLASS_24_BITS"/>
+ <enum value="0x82CA" name="GL_VIEW_CLASS_16_BITS"/>
+ <enum value="0x82CB" name="GL_VIEW_CLASS_8_BITS"/>
+ <enum value="0x82CC" name="GL_VIEW_CLASS_S3TC_DXT1_RGB"/>
+ <enum value="0x82CD" name="GL_VIEW_CLASS_S3TC_DXT1_RGBA"/>
+ <enum value="0x82CE" name="GL_VIEW_CLASS_S3TC_DXT3_RGBA"/>
+ <enum value="0x82CF" name="GL_VIEW_CLASS_S3TC_DXT5_RGBA"/>
+ <enum value="0x82D0" name="GL_VIEW_CLASS_RGTC1_RED"/>
+ <enum value="0x82D1" name="GL_VIEW_CLASS_RGTC2_RG"/>
+ <enum value="0x82D2" name="GL_VIEW_CLASS_BPTC_UNORM"/>
+ <enum value="0x82D3" name="GL_VIEW_CLASS_BPTC_FLOAT"/>
+ <enum value="0x82D4" name="GL_VERTEX_ATTRIB_BINDING"/>
+ <enum value="0x82D5" name="GL_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum value="0x82D6" name="GL_VERTEX_BINDING_DIVISOR"/>
+ <enum value="0x82D7" name="GL_VERTEX_BINDING_OFFSET"/>
+ <enum value="0x82D8" name="GL_VERTEX_BINDING_STRIDE"/>
+ <enum value="0x82D9" name="GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum value="0x82DA" name="GL_MAX_VERTEX_ATTRIB_BINDINGS"/>
+ <enum value="0x82DB" name="GL_TEXTURE_VIEW_MIN_LEVEL"/>
+ <enum value="0x82DC" name="GL_TEXTURE_VIEW_NUM_LEVELS"/>
+ <enum value="0x82DD" name="GL_TEXTURE_VIEW_MIN_LAYER"/>
+ <enum value="0x82DE" name="GL_TEXTURE_VIEW_NUM_LAYERS"/>
+ <enum value="0x82DF" name="GL_TEXTURE_IMMUTABLE_LEVELS"/>
+ <enum value="0x82E0" name="GL_BUFFER"/>
+ <enum value="0x82E0" name="GL_BUFFER_KHR"/>
+ <enum value="0x82E1" name="GL_SHADER"/>
+ <enum value="0x82E1" name="GL_SHADER_KHR"/>
+ <enum value="0x82E2" name="GL_PROGRAM"/>
+ <enum value="0x82E2" name="GL_PROGRAM_KHR"/>
+ <enum value="0x82E3" name="GL_QUERY"/>
+ <enum value="0x82E3" name="GL_QUERY_KHR"/>
+ <enum value="0x82E4" name="GL_PROGRAM_PIPELINE"/>
+ <enum value="0x82E5" name="GL_MAX_VERTEX_ATTRIB_STRIDE"/>
+ <enum value="0x82E6" name="GL_SAMPLER"/>
+ <enum value="0x82E6" name="GL_SAMPLER_KHR"/>
+ <enum value="0x82E7" name="GL_DISPLAY_LIST"/>
+ <enum value="0x82E8" name="GL_MAX_LABEL_LENGTH"/>
+ <enum value="0x82E8" name="GL_MAX_LABEL_LENGTH_KHR"/>
+ <enum value="0x82E9" name="GL_NUM_SHADING_LANGUAGE_VERSIONS"/>
+ <unused start="0x82E9" end="0x830F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8310" end="0x832F" vendor="SGI">
+ <enum value="0x8310" name="GL_DEPTH_PASS_INSTRUMENT_SGIX"/>
+ <enum value="0x8311" name="GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX"/>
+ <enum value="0x8312" name="GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX"/>
+ <enum value="0x8313" name="GL_FRAGMENTS_INSTRUMENT_SGIX"/>
+ <enum value="0x8314" name="GL_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX"/>
+ <enum value="0x8315" name="GL_FRAGMENTS_INSTRUMENT_MAX_SGIX"/>
+ <enum value="0x8316" name="GL_CONVOLUTION_HINT_SGIX"/>
+ <unused start="0x8317" comment="Incomplete extension SGIX_color_matrix_accuracy"/>
+ <!-- <enum value="0x8317" name="GL_COLOR_MATRIX_HINT"/> -->
+ <enum value="0x8318" name="GL_YCRCB_SGIX"/>
+ <enum value="0x8319" name="GL_YCRCBA_SGIX"/>
+ <enum value="0x831A" name="GL_UNPACK_COMPRESSED_SIZE_SGIX"/>
+ <enum value="0x831B" name="GL_PACK_MAX_COMPRESSED_SIZE_SGIX"/>
+ <enum value="0x831C" name="GL_PACK_COMPRESSED_SIZE_SGIX"/>
+ <enum value="0x831D" name="GL_SLIM8U_SGIX"/>
+ <enum value="0x831E" name="GL_SLIM10U_SGIX"/>
+ <enum value="0x831F" name="GL_SLIM12S_SGIX"/>
+ <enum value="0x8320" name="GL_ALPHA_MIN_SGIX"/>
+ <enum value="0x8321" name="GL_ALPHA_MAX_SGIX"/>
+ <enum value="0x8322" name="GL_SCALEBIAS_HINT_SGIX"/>
+ <unused start="0x8323" end="0x8328" comment="Incomplete extension SGIX_fog_layers"/>
+ <!-- <enum value="0x8323" name="GL_FOG_TYPE_SGIX"/> -->
+ <!-- <enum value="0x8324" name="GL_UNIFORM_SGIX"/> -->
+ <!-- <enum value="0x8325" name="GL_LAYERED_SGIX"/> -->
+ <!-- <enum value="0x8326" name="GL_FOG_GROUND_PLANE_SGIX"/> -->
+ <!-- <enum value="0x8327" name="GL_FOG_LAYERS_POINTS_SGIX"/> -->
+ <!-- <enum value="0x8328" name="GL_MAX_FOG_LAYERS_POINTS_SGIX"/> -->
+ <enum value="0x8329" name="GL_ASYNC_MARKER_SGIX"/>
+ <unused start="0x832A" comment="Incomplete extension SGIX_texture_phase"/>
+ <!-- <enum value="0x832A" name="GL_PHASE_SGIX"/> -->
+ <enum value="0x832B" name="GL_PIXEL_TEX_GEN_MODE_SGIX"/>
+ <enum value="0x832C" name="GL_ASYNC_HISTOGRAM_SGIX"/>
+ <enum value="0x832D" name="GL_MAX_ASYNC_HISTOGRAM_SGIX"/>
+ <unused start="0x832E" end="0x832F" comment="Incomplete extension SGIX_texture_mipmap_anisotropic"/>
+ <!-- <enum value="0x832E" name="GL_TEXTURE_MIPMAP_ANISOTROPY_SGIX"/> -->
+ <!-- <enum value="0x832F" name="GL_MAX_MIPMAP_ANISOTROPY_SGIX"/> -->
+ </enums>
+
+ <enums namespace="GL" start="0x8330" end="0x833F" vendor="SUN">
+ <enum value="0x8330" name="GL_PIXEL_TRANSFORM_2D_EXT"/>
+ <enum value="0x8331" name="GL_PIXEL_MAG_FILTER_EXT"/>
+ <enum value="0x8332" name="GL_PIXEL_MIN_FILTER_EXT"/>
+ <enum value="0x8333" name="GL_PIXEL_CUBIC_WEIGHT_EXT"/>
+ <enum value="0x8334" name="GL_CUBIC_EXT"/>
+ <enum value="0x8335" name="GL_AVERAGE_EXT"/>
+ <enum value="0x8336" name="GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT"/>
+ <enum value="0x8337" name="GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT"/>
+ <enum value="0x8338" name="GL_PIXEL_TRANSFORM_2D_MATRIX_EXT"/>
+ <unused start="0x8339" end="0x833F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8340" end="0x836F" vendor="SGI">
+ <unused start="0x8340" end="0x8348" comment="Incomplete extension SGIX_cube_map"/>
+ <!-- <enum value="0x8340" name="GL_ENV_MAP_SGIX"/> -->
+ <!-- <enum value="0x8341" name="GL_CUBE_MAP_SGIX"/> -->
+ <!-- <enum value="0x8342" name="GL_CUBE_MAP_ZP_SGIX"/> -->
+ <!-- <enum value="0x8343" name="GL_CUBE_MAP_ZN_SGIX"/> -->
+ <!-- <enum value="0x8344" name="GL_CUBE_MAP_XN_SGIX"/> -->
+ <!-- <enum value="0x8345" name="GL_CUBE_MAP_XP_SGIX"/> -->
+ <!-- <enum value="0x8346" name="GL_CUBE_MAP_YN_SGIX"/> -->
+ <!-- <enum value="0x8347" name="GL_CUBE_MAP_YP_SGIX"/> -->
+ <!-- <enum value="0x8348" name="GL_CUBE_MAP_BINDING_SGIX"/> -->
+ <enum value="0x8349" name="GL_FRAGMENT_MATERIAL_EXT"/>
+ <enum value="0x834A" name="GL_FRAGMENT_NORMAL_EXT"/>
+ <!-- Unfortunately, there was a collision promoting to EXT
+ from SGIX. Use fog_coord's value of 0x8452 instead of
+ the old assigned FRAGMENT_DEPTH_EXT (0x834B). -->
+ <enum value="0x834C" name="GL_FRAGMENT_COLOR_EXT"/>
+ <enum value="0x834D" name="GL_ATTENUATION_EXT"/>
+ <enum value="0x834E" name="GL_SHADOW_ATTENUATION_EXT"/>
+ <enum value="0x834F" name="GL_TEXTURE_APPLICATION_MODE_EXT"/>
+ <enum value="0x8350" name="GL_TEXTURE_LIGHT_EXT"/>
+ <enum value="0x8351" name="GL_TEXTURE_MATERIAL_FACE_EXT"/>
+ <enum value="0x8352" name="GL_TEXTURE_MATERIAL_PARAMETER_EXT"/>
+ <enum value="0x8353" name="GL_PIXEL_TEXTURE_SGIS"/>
+ <enum value="0x8354" name="GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS"/>
+ <enum value="0x8355" name="GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS"/>
+ <enum value="0x8356" name="GL_PIXEL_GROUP_COLOR_SGIS"/>
+ <unused start="0x8357" end="0x8359" comment="Incomplete extension SGIX_pixel_texture_bits"/>
+ <!-- <enum value="0x8357" name="GL_COLOR_TO_TEXTURE_COORD_SGIX"/> -->
+ <!-- <enum value="0x8358" name="GL_COLOR_BIT_PATTERN_SGIX"/> -->
+ <!-- <enum value="0x8359" name="GL_COLOR_VALUE_SGIX"/> -->
+ <unused start="0x835A" comment="Incomplete extension SGIX_pixel_texture_lod"/>
+ <!-- <enum value="0x835A" name="GL_PIXEL_TEX_GEN_LAMBDA_SOURCE_SGIX"/> -->
+ <enum value="0x835B" name="GL_LINE_QUALITY_HINT_SGIX"/>
+ <enum value="0x835C" name="GL_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum value="0x835D" name="GL_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum value="0x835E" name="GL_ASYNC_READ_PIXELS_SGIX"/>
+ <enum value="0x835F" name="GL_MAX_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum value="0x8360" name="GL_MAX_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum value="0x8361" name="GL_MAX_ASYNC_READ_PIXELS_SGIX"/>
+ <enum value="0x8362" name="GL_UNSIGNED_BYTE_2_3_3_REV"/>
+ <enum value="0x8362" name="GL_UNSIGNED_BYTE_2_3_3_REV_EXT"/>
+ <enum value="0x8363" name="GL_UNSIGNED_SHORT_5_6_5"/>
+ <enum value="0x8363" name="GL_UNSIGNED_SHORT_5_6_5_EXT"/>
+ <enum value="0x8364" name="GL_UNSIGNED_SHORT_5_6_5_REV"/>
+ <enum value="0x8364" name="GL_UNSIGNED_SHORT_5_6_5_REV_EXT"/>
+ <enum value="0x8365" name="GL_UNSIGNED_SHORT_4_4_4_4_REV"/>
+ <enum value="0x8365" name="GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT"/>
+ <enum value="0x8365" name="GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG"/>
+ <enum value="0x8366" name="GL_UNSIGNED_SHORT_1_5_5_5_REV"/>
+ <enum value="0x8366" name="GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT"/>
+ <enum value="0x8367" name="GL_UNSIGNED_INT_8_8_8_8_REV"/>
+ <enum value="0x8367" name="GL_UNSIGNED_INT_8_8_8_8_REV_EXT"/>
+ <enum value="0x8368" name="GL_UNSIGNED_INT_2_10_10_10_REV"/>
+ <enum value="0x8368" name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT"/>
+ <enum value="0x8369" name="GL_TEXTURE_MAX_CLAMP_S_SGIX"/>
+ <enum value="0x836A" name="GL_TEXTURE_MAX_CLAMP_T_SGIX"/>
+ <enum value="0x836B" name="GL_TEXTURE_MAX_CLAMP_R_SGIX"/>
+ <unused start="0x836C" end="0x836E" comment="Incomplete extension SGIX_fog_texture"/>
+ <!-- <enum value="0x836C" name="GL_FRAGMENT_FOG_SGIX"/> -->
+ <!-- <enum value="0x836D" name="GL_TEXTURE_FOG_SGIX"/> -->
+ <!-- <enum value="0x836E" name="GL_FOG_PATCHY_FACTOR_SGIX"/> -->
+ <unused start="0x836F" comment="Incomplete extension SGIX_fog_factor_to_alpha"/>
+ <!-- <enum value="0x836F" name="GL_FOG_FACTOR_TO_ALPHA_SGIX"/> -->
+ </enums>
+
+ <enums namespace="GL" start="0x8370" end="0x837F" vendor="HP">
+ <!-- NOTE: IBM is using values in this range, because of a
+ bobble when an employee left DEC for IBM at the same
+ time as they were assigned the range. their registry
+ became inconsistent. It's unknown whether HP has any
+ conflicts. They have never reported using any values in
+ this range. Lesson: assigned ranges belong to vendors,
+ not engineers! -->
+ <enum value="0x8370" name="GL_MIRRORED_REPEAT"/>
+ <enum value="0x8370" name="GL_MIRRORED_REPEAT_ARB"/>
+ <enum value="0x8370" name="GL_MIRRORED_REPEAT_IBM"/>
+ <enum value="0x8370" name="GL_MIRRORED_REPEAT_OES"/>
+ <unused start="0x8371" end="0x837F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8380" end="0x839F" vendor="IBM"/>
+
+ <enums namespace="GL" start="0x83A0" end="0x83BF" vendor="S3">
+ <enum value="0x83A0" name="GL_RGB_S3TC"/>
+ <enum value="0x83A1" name="GL_RGB4_S3TC"/>
+ <enum value="0x83A2" name="GL_RGBA_S3TC"/>
+ <enum value="0x83A3" name="GL_RGBA4_S3TC"/>
+ <enum value="0x83A4" name="GL_RGBA_DXT5_S3TC"/>
+ <enum value="0x83A5" name="GL_RGBA4_DXT5_S3TC"/>
+ <unused start="0x83A6" end="0x83BF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x83C0" end="0x83EF" vendor="SGI" comment="Most of this could be reclaimed">
+ <unused start="0x83C0" end="0x83CA" comment="Withdrawn extension SGIS_multitexture"/>
+ <!-- <enum value="0x83C0" name="GL_SELECTED_TEXTURE_SGIS"/> -->
+ <!-- <enum value="0x83C1" name="GL_SELECTED_TEXTURE_COORD_SET_SGIS"/> -->
+ <!-- <enum value="0x83C2" name="GL_SELECTED_TEXTURE_TRANSFORM_SGIS"/> -->
+ <!-- <enum value="0x83C3" name="GL_MAX_TEXTURES_SGIS"/> -->
+ <!-- <enum value="0x83C4" name="GL_MAX_TEXTURE_COORD_SETS_SGIS"/> -->
+ <!-- <enum value="0x83C5" name="GL_TEXTURE_COORD_SET_INTERLEAVE_FACTOR_SGIS"/> -->
+ <!-- <enum value="0x83C6" name="GL_TEXTURE_ENV_COORD_SET_SGIS"/> -->
+ <!-- <enum value="0x83C7" name="GL_TEXTURE0_SGIS"/> -->
+ <!-- <enum value="0x83C8" name="GL_TEXTURE1_SGIS"/> -->
+ <!-- <enum value="0x83C9" name="GL_TEXTURE2_SGIS"/> -->
+ <!-- <enum value="0x83CA" name="GL_TEXTURE3_SGIS"/> -->
+ <unused start="0x83CB" end="0x83E5"/>
+ <unused start="0x83E6" end="0x83E9" comment="Incomplete extension SGIX_bali_g_instruments"/>
+ <!-- <enum value="0x83E6" name="GL_BALI_NUM_TRIS_CULLED_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x83E7" name="GL_BALI_NUM_PRIMS_CLIPPED_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x83E8" name="GL_BALI_NUM_PRIMS_REJECT_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x83E9" name="GL_BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT_SGIX"/> -->
+ <unused start="0x83EA" end="0x83EC" comment="Incomplete extension SGIX_bali_r_instruments"/>
+ <!-- <enum value="0x83EA" name="GL_BALI_FRAGMENTS_GENERATED_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x83EB" name="GL_BALI_DEPTH_PASS_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x83EC" name="GL_BALI_R_CHIP_COUNT_SGIX"/> -->
+ <unused start="0x83ED" comment="Incomplete extension SGIX_occlusion_instrument"/>
+ <!-- <enum value="0x83ED" name="GL_OCCLUSION_INSTRUMENT_SGIX"/> -->
+ <enum value="0x83EE" name="GL_VERTEX_PRECLIP_SGIX"/>
+ <enum value="0x83EF" name="GL_VERTEX_PRECLIP_HINT_SGIX"/>
+ </enums>
+
+ <enums namespace="GL" start="0x83F0" end="0x83FF" vendor="INTEL">
+ <!-- This block was reclaimed from NTP, who never shipped
+ it, and reassigned to Intel. -->
+ <enum value="0x83F0" name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT"/>
+ <enum value="0x83F1" name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"/>
+ <enum value="0x83F2" name="GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE"/>
+ <enum value="0x83F2" name="GL_COMPRESSED_RGBA_S3TC_DXT3_EXT"/>
+ <enum value="0x83F3" name="GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE"/>
+ <enum value="0x83F3" name="GL_COMPRESSED_RGBA_S3TC_DXT5_EXT"/>
+ <enum value="0x83F4" name="GL_PARALLEL_ARRAYS_INTEL"/>
+ <enum value="0x83F5" name="GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <enum value="0x83F6" name="GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <enum value="0x83F7" name="GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <enum value="0x83F8" name="GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <unused start="0x83F9" end="0x83FE"/>
+ <enum value="0x83FF" name="GL_TEXTURE_MEMORY_LAYOUT_INTEL"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8400" end="0x846F" vendor="SGI">
+ <enum value="0x8400" name="GL_FRAGMENT_LIGHTING_SGIX"/>
+ <enum value="0x8401" name="GL_FRAGMENT_COLOR_MATERIAL_SGIX"/>
+ <enum value="0x8402" name="GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX"/>
+ <enum value="0x8403" name="GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX"/>
+ <enum value="0x8404" name="GL_MAX_FRAGMENT_LIGHTS_SGIX"/>
+ <enum value="0x8405" name="GL_MAX_ACTIVE_LIGHTS_SGIX"/>
+ <enum value="0x8406" name="GL_CURRENT_RASTER_NORMAL_SGIX"/>
+ <enum value="0x8407" name="GL_LIGHT_ENV_MODE_SGIX"/>
+ <enum value="0x8408" name="GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX"/>
+ <enum value="0x8409" name="GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX"/>
+ <enum value="0x840A" name="GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX"/>
+ <enum value="0x840B" name="GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX"/>
+ <enum value="0x840C" name="GL_FRAGMENT_LIGHT0_SGIX"/>
+ <enum value="0x840D" name="GL_FRAGMENT_LIGHT1_SGIX"/>
+ <enum value="0x840E" name="GL_FRAGMENT_LIGHT2_SGIX"/>
+ <enum value="0x840F" name="GL_FRAGMENT_LIGHT3_SGIX"/>
+ <enum value="0x8410" name="GL_FRAGMENT_LIGHT4_SGIX"/>
+ <enum value="0x8411" name="GL_FRAGMENT_LIGHT5_SGIX"/>
+ <enum value="0x8412" name="GL_FRAGMENT_LIGHT6_SGIX"/>
+ <enum value="0x8413" name="GL_FRAGMENT_LIGHT7_SGIX"/>
+ <unused start="0x8414" end="0x842B"/>
+ <enum value="0x842C" name="GL_PACK_RESAMPLE_SGIX"/>
+ <enum value="0x842D" name="GL_UNPACK_RESAMPLE_SGIX"/>
+ <enum value="0x842E" name="GL_RESAMPLE_REPLICATE_SGIX"/>
+ <enum value="0x842F" name="GL_RESAMPLE_ZERO_FILL_SGIX"/>
+ <enum value="0x8430" name="GL_RESAMPLE_DECIMATE_SGIX"/>
+ <unused start="0x8431" end="0x8435"/>
+ <!-- Incomplete extension SGIX_fragment_lighting -->
+ <!-- <enum value="0x8436" name="GL_EYE_SPACE_SGIX"/> -->
+ <!-- <enum value="0x8437" name="GL_TANGENT_SPACE_SGIX"/> -->
+ <!-- <enum value="0x8438" name="GL_OBJECT_SPACE_SGIX"/> -->
+ <!-- <enum value="0x8439" name="GL_TANGENT_ARRAY_SGIX"/> -->
+ <!-- <enum value="0x843A" name="GL_BINORMAL_ARRAY_SGIX"/> -->
+ <!-- <enum value="0x843B" name="GL_CURRENT_TANGENT_SGIX"/> -->
+ <!-- <enum value="0x843C" name="GL_CURRENT_BINORMAL_SGIX"/> -->
+ <!-- <enum value="0x843D" name="GL_FRAGMENT_LIGHT_SPACE_SGIX"/> -->
+ <!-- <enum value="0x843E" name="GL_TANGENT_ARRAY_TYPE_SGIX"/> -->
+ <!-- <enum value="0x843F" name="GL_TANGENT_ARRAY_STRIDE_SGIX"/> -->
+ <!-- <enum value="0x8440" name="GL_TANGENT_ARRAY_COUNT_SGIX"/> -->
+ <!-- <enum value="0x8441" name="GL_BINORMAL_ARRAY_TYPE_SGIX"/> -->
+ <!-- <enum value="0x8442" name="GL_BINORMAL_ARRAY_STRIDE_SGIX"/> -->
+ <!-- <enum value="0x8443" name="GL_BINORMAL_ARRAY_COUNT_SGIX"/> -->
+ <!-- <enum value="0x8444" name="GL_TANGENT_ARRAY_POINTER_SGIX"/> -->
+ <!-- <enum value="0x8445" name="GL_BINORMAL_ARRAY_POINTER_SGIX"/> -->
+ <!-- <enum value="0x8446" name="GL_MAP1_TANGENT_SGIX"/> -->
+ <!-- <enum value="0x8447" name="GL_MAP2_TANGENT_SGIX"/> -->
+ <!-- <enum value="0x8448" name="GL_MAP1_BINORMAL_SGIX"/> -->
+ <!-- <enum value="0x8449" name="GL_MAP2_BINORMAL_SGIX"/> -->
+ <enum value="0x8439" name="GL_TANGENT_ARRAY_EXT"/>
+ <enum value="0x843A" name="GL_BINORMAL_ARRAY_EXT"/>
+ <enum value="0x843B" name="GL_CURRENT_TANGENT_EXT"/>
+ <enum value="0x843C" name="GL_CURRENT_BINORMAL_EXT"/>
+ <unused start="0x844D"/>
+ <enum value="0x843E" name="GL_TANGENT_ARRAY_TYPE_EXT"/>
+ <enum value="0x843F" name="GL_TANGENT_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8440" name="GL_BINORMAL_ARRAY_TYPE_EXT"/>
+ <enum value="0x8441" name="GL_BINORMAL_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8442" name="GL_TANGENT_ARRAY_POINTER_EXT"/>
+ <enum value="0x8443" name="GL_BINORMAL_ARRAY_POINTER_EXT"/>
+ <enum value="0x8444" name="GL_MAP1_TANGENT_EXT"/>
+ <enum value="0x8445" name="GL_MAP2_TANGENT_EXT"/>
+ <enum value="0x8446" name="GL_MAP1_BINORMAL_EXT"/>
+ <enum value="0x8447" name="GL_MAP2_BINORMAL_EXT"/>
+ <unused start="0x8448" end="0x8449" comment="Incomplete extension SGIX_fragment_lighting"/>
+ <unused start="0x844A" end="0x844C" comment="Incomplete extension SGIX_bali_timer_instruments"/>
+ <!-- <enum value="0x844A" name="GL_BALI_GEOM_TIMER_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x844B" name="GL_BALI_RASTER_TIMER_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x844C" name="GL_BALI_INSTRUMENT_TIME_UNIT_SGIX"/> -->
+ <enum value="0x844D" name="GL_NEAREST_CLIPMAP_NEAREST_SGIX"/>
+ <enum value="0x844E" name="GL_NEAREST_CLIPMAP_LINEAR_SGIX"/>
+ <enum value="0x844F" name="GL_LINEAR_CLIPMAP_NEAREST_SGIX"/>
+ <!-- 0x8450-0x845F range brokered for Id Software -->
+ <enum value="0x8450" name="GL_FOG_COORDINATE_SOURCE"/>
+ <enum value="0x8450" name="GL_FOG_COORDINATE_SOURCE_EXT"/>
+ <enum value="0x8450" name="GL_FOG_COORD_SRC" alias="GL_FOG_COORDINATE_SOURCE"/>
+ <enum value="0x8451" name="GL_FOG_COORDINATE"/>
+ <enum value="0x8451" name="GL_FOG_COORD" alias="GL_FOG_COORDINATE"/>
+ <enum value="0x8451" name="GL_FOG_COORDINATE_EXT"/>
+ <enum value="0x8452" name="GL_FRAGMENT_DEPTH"/>
+ <enum value="0x8452" name="GL_FRAGMENT_DEPTH_EXT"/>
+ <enum value="0x8453" name="GL_CURRENT_FOG_COORDINATE"/>
+ <enum value="0x8453" name="GL_CURRENT_FOG_COORD" alias="GL_CURRENT_FOG_COORDINATE"/>
+ <enum value="0x8453" name="GL_CURRENT_FOG_COORDINATE_EXT"/>
+ <enum value="0x8454" name="GL_FOG_COORDINATE_ARRAY_TYPE"/>
+ <enum value="0x8454" name="GL_FOG_COORDINATE_ARRAY_TYPE_EXT"/>
+ <enum value="0x8454" name="GL_FOG_COORD_ARRAY_TYPE" alias="GL_FOG_COORDINATE_ARRAY_TYPE"/>
+ <enum value="0x8455" name="GL_FOG_COORDINATE_ARRAY_STRIDE"/>
+ <enum value="0x8455" name="GL_FOG_COORDINATE_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8455" name="GL_FOG_COORD_ARRAY_STRIDE" alias="GL_FOG_COORDINATE_ARRAY_STRIDE"/>
+ <enum value="0x8456" name="GL_FOG_COORDINATE_ARRAY_POINTER"/>
+ <enum value="0x8456" name="GL_FOG_COORDINATE_ARRAY_POINTER_EXT"/>
+ <enum value="0x8456" name="GL_FOG_COORD_ARRAY_POINTER" alias="GL_FOG_COORDINATE_ARRAY_POINTER"/>
+ <enum value="0x8457" name="GL_FOG_COORDINATE_ARRAY"/>
+ <enum value="0x8457" name="GL_FOG_COORDINATE_ARRAY_EXT"/>
+ <enum value="0x8457" name="GL_FOG_COORD_ARRAY" alias="GL_FOG_COORDINATE_ARRAY"/>
+ <enum value="0x8458" name="GL_COLOR_SUM"/>
+ <enum value="0x8458" name="GL_COLOR_SUM_ARB"/>
+ <enum value="0x8458" name="GL_COLOR_SUM_EXT"/>
+ <enum value="0x8459" name="GL_CURRENT_SECONDARY_COLOR"/>
+ <enum value="0x8459" name="GL_CURRENT_SECONDARY_COLOR_EXT"/>
+ <enum value="0x845A" name="GL_SECONDARY_COLOR_ARRAY_SIZE"/>
+ <enum value="0x845A" name="GL_SECONDARY_COLOR_ARRAY_SIZE_EXT"/>
+ <enum value="0x845B" name="GL_SECONDARY_COLOR_ARRAY_TYPE"/>
+ <enum value="0x845B" name="GL_SECONDARY_COLOR_ARRAY_TYPE_EXT"/>
+ <enum value="0x845C" name="GL_SECONDARY_COLOR_ARRAY_STRIDE"/>
+ <enum value="0x845C" name="GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT"/>
+ <enum value="0x845D" name="GL_SECONDARY_COLOR_ARRAY_POINTER"/>
+ <enum value="0x845D" name="GL_SECONDARY_COLOR_ARRAY_POINTER_EXT"/>
+ <enum value="0x845E" name="GL_SECONDARY_COLOR_ARRAY"/>
+ <enum value="0x845E" name="GL_SECONDARY_COLOR_ARRAY_EXT"/>
+ <enum value="0x845F" name="GL_CURRENT_RASTER_SECONDARY_COLOR"/>
+ <unused start="0x8460" end="0x846B" comment="Incomplete extension SGIX_icc_texture"/>
+ <!-- <enum value="0x8460" name="GL_RGB_ICC_SGIX"/> -->
+ <!-- <enum value="0x8461" name="GL_RGBA_ICC_SGIX"/> -->
+ <!-- <enum value="0x8462" name="GL_ALPHA_ICC_SGIX"/> -->
+ <!-- <enum value="0x8463" name="GL_LUMINANCE_ICC_SGIX"/> -->
+ <!-- <enum value="0x8464" name="GL_INTENSITY_ICC_SGIX"/> -->
+ <!-- <enum value="0x8465" name="GL_LUMINANCE_ALPHA_ICC_SGIX"/> -->
+ <!-- <enum value="0x8466" name="GL_R5_G6_B5_ICC_SGIX"/> -->
+ <!-- <enum value="0x8467" name="GL_R5_G6_B5_A8_ICC_SGIX"/> -->
+ <!-- <enum value="0x8468" name="GL_ALPHA16_ICC_SGIX"/> -->
+ <!-- <enum value="0x8469" name="GL_LUMINANCE16_ICC_SGIX"/> -->
+ <!-- <enum value="0x846A" name="GL_INTENSITY16_ICC_SGIX"/> -->
+ <!-- <enum value="0x846B" name="GL_LUMINANCE16_ALPHA8_ICC_SGIX"/> -->
+ <unused start="0x846C"/>
+ <enum value="0x846D" name="GL_ALIASED_POINT_SIZE_RANGE"/>
+ <enum value="0x846E" name="GL_ALIASED_LINE_WIDTH_RANGE"/>
+ <unused start="0x846F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8470" end="0x848F" vendor="AMD"/>
+
+ <enums namespace="GL" start="0x8490" end="0x849F" vendor="REND">
+ <enum value="0x8490" name="GL_SCREEN_COORDINATES_REND"/>
+ <enum value="0x8491" name="GL_INVERTED_SCREEN_W_REND"/>
+ <unused start="0x8492" end="0x849F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x84A0" end="0x84BF" vendor="AMD"/>
+
+ <enums namespace="GL" start="0x84C0" end="0x84EF" vendor="ARB">
+ <enum value="0x84C0" name="GL_TEXTURE0"/>
+ <enum value="0x84C0" name="GL_TEXTURE0_ARB"/>
+ <enum value="0x84C1" name="GL_TEXTURE1"/>
+ <enum value="0x84C1" name="GL_TEXTURE1_ARB"/>
+ <enum value="0x84C2" name="GL_TEXTURE2"/>
+ <enum value="0x84C2" name="GL_TEXTURE2_ARB"/>
+ <enum value="0x84C3" name="GL_TEXTURE3"/>
+ <enum value="0x84C3" name="GL_TEXTURE3_ARB"/>
+ <enum value="0x84C4" name="GL_TEXTURE4"/>
+ <enum value="0x84C4" name="GL_TEXTURE4_ARB"/>
+ <enum value="0x84C5" name="GL_TEXTURE5"/>
+ <enum value="0x84C5" name="GL_TEXTURE5_ARB"/>
+ <enum value="0x84C6" name="GL_TEXTURE6"/>
+ <enum value="0x84C6" name="GL_TEXTURE6_ARB"/>
+ <enum value="0x84C7" name="GL_TEXTURE7"/>
+ <enum value="0x84C7" name="GL_TEXTURE7_ARB"/>
+ <enum value="0x84C8" name="GL_TEXTURE8"/>
+ <enum value="0x84C8" name="GL_TEXTURE8_ARB"/>
+ <enum value="0x84C9" name="GL_TEXTURE9"/>
+ <enum value="0x84C9" name="GL_TEXTURE9_ARB"/>
+ <enum value="0x84CA" name="GL_TEXTURE10"/>
+ <enum value="0x84CA" name="GL_TEXTURE10_ARB"/>
+ <enum value="0x84CB" name="GL_TEXTURE11"/>
+ <enum value="0x84CB" name="GL_TEXTURE11_ARB"/>
+ <enum value="0x84CC" name="GL_TEXTURE12"/>
+ <enum value="0x84CC" name="GL_TEXTURE12_ARB"/>
+ <enum value="0x84CD" name="GL_TEXTURE13"/>
+ <enum value="0x84CD" name="GL_TEXTURE13_ARB"/>
+ <enum value="0x84CE" name="GL_TEXTURE14"/>
+ <enum value="0x84CE" name="GL_TEXTURE14_ARB"/>
+ <enum value="0x84CF" name="GL_TEXTURE15"/>
+ <enum value="0x84CF" name="GL_TEXTURE15_ARB"/>
+ <enum value="0x84D0" name="GL_TEXTURE16"/>
+ <enum value="0x84D0" name="GL_TEXTURE16_ARB"/>
+ <enum value="0x84D1" name="GL_TEXTURE17"/>
+ <enum value="0x84D1" name="GL_TEXTURE17_ARB"/>
+ <enum value="0x84D2" name="GL_TEXTURE18"/>
+ <enum value="0x84D2" name="GL_TEXTURE18_ARB"/>
+ <enum value="0x84D3" name="GL_TEXTURE19"/>
+ <enum value="0x84D3" name="GL_TEXTURE19_ARB"/>
+ <enum value="0x84D4" name="GL_TEXTURE20"/>
+ <enum value="0x84D4" name="GL_TEXTURE20_ARB"/>
+ <enum value="0x84D5" name="GL_TEXTURE21"/>
+ <enum value="0x84D5" name="GL_TEXTURE21_ARB"/>
+ <enum value="0x84D6" name="GL_TEXTURE22"/>
+ <enum value="0x84D6" name="GL_TEXTURE22_ARB"/>
+ <enum value="0x84D7" name="GL_TEXTURE23"/>
+ <enum value="0x84D7" name="GL_TEXTURE23_ARB"/>
+ <enum value="0x84D8" name="GL_TEXTURE24"/>
+ <enum value="0x84D8" name="GL_TEXTURE24_ARB"/>
+ <enum value="0x84D9" name="GL_TEXTURE25"/>
+ <enum value="0x84D9" name="GL_TEXTURE25_ARB"/>
+ <enum value="0x84DA" name="GL_TEXTURE26"/>
+ <enum value="0x84DA" name="GL_TEXTURE26_ARB"/>
+ <enum value="0x84DB" name="GL_TEXTURE27"/>
+ <enum value="0x84DB" name="GL_TEXTURE27_ARB"/>
+ <enum value="0x84DC" name="GL_TEXTURE28"/>
+ <enum value="0x84DC" name="GL_TEXTURE28_ARB"/>
+ <enum value="0x84DD" name="GL_TEXTURE29"/>
+ <enum value="0x84DD" name="GL_TEXTURE29_ARB"/>
+ <enum value="0x84DE" name="GL_TEXTURE30"/>
+ <enum value="0x84DE" name="GL_TEXTURE30_ARB"/>
+ <enum value="0x84DF" name="GL_TEXTURE31"/>
+ <enum value="0x84DF" name="GL_TEXTURE31_ARB"/>
+ <enum value="0x84E0" name="GL_ACTIVE_TEXTURE"/>
+ <enum value="0x84E0" name="GL_ACTIVE_TEXTURE_ARB"/>
+ <enum value="0x84E1" name="GL_CLIENT_ACTIVE_TEXTURE"/>
+ <enum value="0x84E1" name="GL_CLIENT_ACTIVE_TEXTURE_ARB"/>
+ <enum value="0x84E2" name="GL_MAX_TEXTURE_UNITS"/>
+ <enum value="0x84E2" name="GL_MAX_TEXTURE_UNITS_ARB"/>
+ <enum value="0x84E3" name="GL_TRANSPOSE_MODELVIEW_MATRIX"/>
+ <enum value="0x84E3" name="GL_TRANSPOSE_MODELVIEW_MATRIX_ARB"/>
+ <enum value="0x84E4" name="GL_TRANSPOSE_PROJECTION_MATRIX"/>
+ <enum value="0x84E4" name="GL_TRANSPOSE_PROJECTION_MATRIX_ARB"/>
+ <enum value="0x84E5" name="GL_TRANSPOSE_TEXTURE_MATRIX"/>
+ <enum value="0x84E5" name="GL_TRANSPOSE_TEXTURE_MATRIX_ARB"/>
+ <enum value="0x84E6" name="GL_TRANSPOSE_COLOR_MATRIX"/>
+ <enum value="0x84E6" name="GL_TRANSPOSE_COLOR_MATRIX_ARB"/>
+ <enum value="0x84E7" name="GL_SUBTRACT"/>
+ <enum value="0x84E7" name="GL_SUBTRACT_ARB"/>
+ <enum value="0x84E8" name="GL_MAX_RENDERBUFFER_SIZE"/>
+ <enum value="0x84E8" name="GL_MAX_RENDERBUFFER_SIZE_EXT"/>
+ <enum value="0x84E8" name="GL_MAX_RENDERBUFFER_SIZE_OES"/>
+ <enum value="0x84E9" name="GL_COMPRESSED_ALPHA"/>
+ <enum value="0x84E9" name="GL_COMPRESSED_ALPHA_ARB"/>
+ <enum value="0x84EA" name="GL_COMPRESSED_LUMINANCE"/>
+ <enum value="0x84EA" name="GL_COMPRESSED_LUMINANCE_ARB"/>
+ <enum value="0x84EB" name="GL_COMPRESSED_LUMINANCE_ALPHA"/>
+ <enum value="0x84EB" name="GL_COMPRESSED_LUMINANCE_ALPHA_ARB"/>
+ <enum value="0x84EC" name="GL_COMPRESSED_INTENSITY"/>
+ <enum value="0x84EC" name="GL_COMPRESSED_INTENSITY_ARB"/>
+ <enum value="0x84ED" name="GL_COMPRESSED_RGB"/>
+ <enum value="0x84ED" name="GL_COMPRESSED_RGB_ARB"/>
+ <enum value="0x84EE" name="GL_COMPRESSED_RGBA"/>
+ <enum value="0x84EE" name="GL_COMPRESSED_RGBA_ARB"/>
+ <enum value="0x84EF" name="GL_TEXTURE_COMPRESSION_HINT"/>
+ <enum value="0x84EF" name="GL_TEXTURE_COMPRESSION_HINT_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x84F0" end="0x855F" vendor="NV">
+ <enum value="0x84F0" name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum value="0x84F1" name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum value="0x84F2" name="GL_ALL_COMPLETED_NV"/>
+ <enum value="0x84F3" name="GL_FENCE_STATUS_NV"/>
+ <enum value="0x84F4" name="GL_FENCE_CONDITION_NV"/>
+ <enum value="0x84F5" name="GL_TEXTURE_RECTANGLE"/>
+ <enum value="0x84F5" name="GL_TEXTURE_RECTANGLE_ARB"/>
+ <enum value="0x84F5" name="GL_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x84F6" name="GL_TEXTURE_BINDING_RECTANGLE"/>
+ <enum value="0x84F6" name="GL_TEXTURE_BINDING_RECTANGLE_ARB"/>
+ <enum value="0x84F6" name="GL_TEXTURE_BINDING_RECTANGLE_NV"/>
+ <enum value="0x84F7" name="GL_PROXY_TEXTURE_RECTANGLE"/>
+ <enum value="0x84F7" name="GL_PROXY_TEXTURE_RECTANGLE_ARB"/>
+ <enum value="0x84F7" name="GL_PROXY_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x84F8" name="GL_MAX_RECTANGLE_TEXTURE_SIZE"/>
+ <enum value="0x84F8" name="GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB"/>
+ <enum value="0x84F8" name="GL_MAX_RECTANGLE_TEXTURE_SIZE_NV"/>
+ <enum value="0x84F9" name="GL_DEPTH_STENCIL"/>
+ <enum value="0x84F9" name="GL_DEPTH_STENCIL_EXT"/>
+ <enum value="0x84F9" name="GL_DEPTH_STENCIL_NV"/>
+ <enum value="0x84F9" name="GL_DEPTH_STENCIL_OES"/>
+ <enum value="0x84FA" name="GL_UNSIGNED_INT_24_8"/>
+ <enum value="0x84FA" name="GL_UNSIGNED_INT_24_8_EXT"/>
+ <enum value="0x84FA" name="GL_UNSIGNED_INT_24_8_NV"/>
+ <enum value="0x84FA" name="GL_UNSIGNED_INT_24_8_OES"/>
+ <unused start="0x84FB" end="0x84FC"/>
+ <enum value="0x84FD" name="GL_MAX_TEXTURE_LOD_BIAS"/>
+ <enum value="0x84FD" name="GL_MAX_TEXTURE_LOD_BIAS_EXT"/>
+ <enum value="0x84FE" name="GL_TEXTURE_MAX_ANISOTROPY_EXT"/>
+ <enum value="0x84FF" name="GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT"/>
+ <enum value="0x8500" name="GL_TEXTURE_FILTER_CONTROL"/>
+ <enum value="0x8500" name="GL_TEXTURE_FILTER_CONTROL_EXT"/>
+ <enum value="0x8501" name="GL_TEXTURE_LOD_BIAS"/>
+ <enum value="0x8501" name="GL_TEXTURE_LOD_BIAS_EXT"/>
+ <enum value="0x8502" name="GL_MODELVIEW1_STACK_DEPTH_EXT"/>
+ <enum value="0x8503" name="GL_COMBINE4_NV"/>
+ <enum value="0x8504" name="GL_MAX_SHININESS_NV"/>
+ <enum value="0x8505" name="GL_MAX_SPOT_EXPONENT_NV"/>
+ <enum value="0x8506" name="GL_MODELVIEW1_MATRIX_EXT"/>
+ <enum value="0x8507" name="GL_INCR_WRAP"/>
+ <enum value="0x8507" name="GL_INCR_WRAP_EXT"/>
+ <enum value="0x8507" name="GL_INCR_WRAP_OES"/>
+ <enum value="0x8508" name="GL_DECR_WRAP"/>
+ <enum value="0x8508" name="GL_DECR_WRAP_EXT"/>
+ <enum value="0x8508" name="GL_DECR_WRAP_OES"/>
+ <enum value="0x8509" name="GL_VERTEX_WEIGHTING_EXT"/>
+ <enum value="0x850A" name="GL_MODELVIEW1_ARB"/>
+ <enum value="0x850A" name="GL_MODELVIEW1_EXT"/>
+ <enum value="0x850B" name="GL_CURRENT_VERTEX_WEIGHT_EXT"/>
+ <enum value="0x850C" name="GL_VERTEX_WEIGHT_ARRAY_EXT"/>
+ <enum value="0x850D" name="GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT"/>
+ <enum value="0x850E" name="GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT"/>
+ <enum value="0x850F" name="GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8510" name="GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT"/>
+ <enum value="0x8511" name="GL_NORMAL_MAP"/>
+ <enum value="0x8511" name="GL_NORMAL_MAP_ARB"/>
+ <enum value="0x8511" name="GL_NORMAL_MAP_EXT"/>
+ <enum value="0x8511" name="GL_NORMAL_MAP_NV"/>
+ <enum value="0x8511" name="GL_NORMAL_MAP_OES"/>
+ <enum value="0x8512" name="GL_REFLECTION_MAP"/>
+ <enum value="0x8512" name="GL_REFLECTION_MAP_ARB"/>
+ <enum value="0x8512" name="GL_REFLECTION_MAP_EXT"/>
+ <enum value="0x8512" name="GL_REFLECTION_MAP_NV"/>
+ <enum value="0x8512" name="GL_REFLECTION_MAP_OES"/>
+ <enum value="0x8513" name="GL_TEXTURE_CUBE_MAP"/>
+ <enum value="0x8513" name="GL_TEXTURE_CUBE_MAP_ARB"/>
+ <enum value="0x8513" name="GL_TEXTURE_CUBE_MAP_EXT"/>
+ <enum value="0x8513" name="GL_TEXTURE_CUBE_MAP_OES"/>
+ <enum value="0x8514" name="GL_TEXTURE_BINDING_CUBE_MAP"/>
+ <enum value="0x8514" name="GL_TEXTURE_BINDING_CUBE_MAP_ARB"/>
+ <enum value="0x8514" name="GL_TEXTURE_BINDING_CUBE_MAP_EXT"/>
+ <enum value="0x8514" name="GL_TEXTURE_BINDING_CUBE_MAP_OES"/>
+ <enum value="0x8515" name="GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
+ <enum value="0x8515" name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB"/>
+ <enum value="0x8515" name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT"/>
+ <enum value="0x8515" name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES"/>
+ <enum value="0x8516" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
+ <enum value="0x8516" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB"/>
+ <enum value="0x8516" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT"/>
+ <enum value="0x8516" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES"/>
+ <enum value="0x8517" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
+ <enum value="0x8517" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB"/>
+ <enum value="0x8517" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT"/>
+ <enum value="0x8517" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES"/>
+ <enum value="0x8518" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
+ <enum value="0x8518" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB"/>
+ <enum value="0x8518" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT"/>
+ <enum value="0x8518" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES"/>
+ <enum value="0x8519" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
+ <enum value="0x8519" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB"/>
+ <enum value="0x8519" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT"/>
+ <enum value="0x8519" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES"/>
+ <enum value="0x851A" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
+ <enum value="0x851A" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB"/>
+ <enum value="0x851A" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT"/>
+ <enum value="0x851A" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES"/>
+ <enum value="0x851B" name="GL_PROXY_TEXTURE_CUBE_MAP"/>
+ <enum value="0x851B" name="GL_PROXY_TEXTURE_CUBE_MAP_ARB"/>
+ <enum value="0x851B" name="GL_PROXY_TEXTURE_CUBE_MAP_EXT"/>
+ <enum value="0x851C" name="GL_MAX_CUBE_MAP_TEXTURE_SIZE"/>
+ <enum value="0x851C" name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB"/>
+ <enum value="0x851C" name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT"/>
+ <enum value="0x851C" name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES"/>
+ <enum value="0x851D" name="GL_VERTEX_ARRAY_RANGE_APPLE"/>
+ <enum value="0x851D" name="GL_VERTEX_ARRAY_RANGE_NV"/>
+ <enum value="0x851E" name="GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE"/>
+ <enum value="0x851E" name="GL_VERTEX_ARRAY_RANGE_LENGTH_NV"/>
+ <enum value="0x851F" name="GL_VERTEX_ARRAY_RANGE_VALID_NV"/>
+ <enum value="0x851F" name="GL_VERTEX_ARRAY_STORAGE_HINT_APPLE"/>
+ <enum value="0x8520" name="GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV"/>
+ <enum value="0x8521" name="GL_VERTEX_ARRAY_RANGE_POINTER_APPLE"/>
+ <enum value="0x8521" name="GL_VERTEX_ARRAY_RANGE_POINTER_NV"/>
+ <enum value="0x8522" name="GL_REGISTER_COMBINERS_NV"/>
+ <enum value="0x8523" name="GL_VARIABLE_A_NV"/>
+ <enum value="0x8524" name="GL_VARIABLE_B_NV"/>
+ <enum value="0x8525" name="GL_VARIABLE_C_NV"/>
+ <enum value="0x8526" name="GL_VARIABLE_D_NV"/>
+ <enum value="0x8527" name="GL_VARIABLE_E_NV"/>
+ <enum value="0x8528" name="GL_VARIABLE_F_NV"/>
+ <enum value="0x8529" name="GL_VARIABLE_G_NV"/>
+ <enum value="0x852A" name="GL_CONSTANT_COLOR0_NV"/>
+ <enum value="0x852B" name="GL_CONSTANT_COLOR1_NV"/>
+ <enum value="0x852C" name="GL_PRIMARY_COLOR_NV"/>
+ <enum value="0x852D" name="GL_SECONDARY_COLOR_NV"/>
+ <enum value="0x852E" name="GL_SPARE0_NV"/>
+ <enum value="0x852F" name="GL_SPARE1_NV"/>
+ <enum value="0x8530" name="GL_DISCARD_NV"/>
+ <enum value="0x8531" name="GL_E_TIMES_F_NV"/>
+ <enum value="0x8532" name="GL_SPARE0_PLUS_SECONDARY_COLOR_NV"/>
+ <enum value="0x8533" name="GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV"/>
+ <enum value="0x8534" name="GL_MULTISAMPLE_FILTER_HINT_NV"/>
+ <enum value="0x8535" name="GL_PER_STAGE_CONSTANTS_NV"/>
+ <enum value="0x8536" name="GL_UNSIGNED_IDENTITY_NV"/>
+ <enum value="0x8537" name="GL_UNSIGNED_INVERT_NV"/>
+ <enum value="0x8538" name="GL_EXPAND_NORMAL_NV"/>
+ <enum value="0x8539" name="GL_EXPAND_NEGATE_NV"/>
+ <enum value="0x853A" name="GL_HALF_BIAS_NORMAL_NV"/>
+ <enum value="0x853B" name="GL_HALF_BIAS_NEGATE_NV"/>
+ <enum value="0x853C" name="GL_SIGNED_IDENTITY_NV"/>
+ <enum value="0x853D" name="GL_SIGNED_NEGATE_NV"/>
+ <enum value="0x853E" name="GL_SCALE_BY_TWO_NV"/>
+ <enum value="0x853F" name="GL_SCALE_BY_FOUR_NV"/>
+ <enum value="0x8540" name="GL_SCALE_BY_ONE_HALF_NV"/>
+ <enum value="0x8541" name="GL_BIAS_BY_NEGATIVE_ONE_HALF_NV"/>
+ <enum value="0x8542" name="GL_COMBINER_INPUT_NV"/>
+ <enum value="0x8543" name="GL_COMBINER_MAPPING_NV"/>
+ <enum value="0x8544" name="GL_COMBINER_COMPONENT_USAGE_NV"/>
+ <enum value="0x8545" name="GL_COMBINER_AB_DOT_PRODUCT_NV"/>
+ <enum value="0x8546" name="GL_COMBINER_CD_DOT_PRODUCT_NV"/>
+ <enum value="0x8547" name="GL_COMBINER_MUX_SUM_NV"/>
+ <enum value="0x8548" name="GL_COMBINER_SCALE_NV"/>
+ <enum value="0x8549" name="GL_COMBINER_BIAS_NV"/>
+ <enum value="0x854A" name="GL_COMBINER_AB_OUTPUT_NV"/>
+ <enum value="0x854B" name="GL_COMBINER_CD_OUTPUT_NV"/>
+ <enum value="0x854C" name="GL_COMBINER_SUM_OUTPUT_NV"/>
+ <enum value="0x854D" name="GL_MAX_GENERAL_COMBINERS_NV"/>
+ <enum value="0x854E" name="GL_NUM_GENERAL_COMBINERS_NV"/>
+ <enum value="0x854F" name="GL_COLOR_SUM_CLAMP_NV"/>
+ <enum value="0x8550" name="GL_COMBINER0_NV"/>
+ <enum value="0x8551" name="GL_COMBINER1_NV"/>
+ <enum value="0x8552" name="GL_COMBINER2_NV"/>
+ <enum value="0x8553" name="GL_COMBINER3_NV"/>
+ <enum value="0x8554" name="GL_COMBINER4_NV"/>
+ <enum value="0x8555" name="GL_COMBINER5_NV"/>
+ <enum value="0x8556" name="GL_COMBINER6_NV"/>
+ <enum value="0x8557" name="GL_COMBINER7_NV"/>
+ <enum value="0x8558" name="GL_PRIMITIVE_RESTART_NV"/>
+ <enum value="0x8559" name="GL_PRIMITIVE_RESTART_INDEX_NV"/>
+ <enum value="0x855A" name="GL_FOG_DISTANCE_MODE_NV"/>
+ <enum value="0x855B" name="GL_EYE_RADIAL_NV"/>
+ <enum value="0x855C" name="GL_EYE_PLANE_ABSOLUTE_NV"/>
+ <enum value="0x855D" name="GL_EMBOSS_LIGHT_NV"/>
+ <enum value="0x855E" name="GL_EMBOSS_CONSTANT_NV"/>
+ <enum value="0x855F" name="GL_EMBOSS_MAP_NV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8560" end="0x856F" vendor="ZiiLabs">
+ <enum value="0x8560" name="GL_RED_MIN_CLAMP_INGR"/>
+ <enum value="0x8561" name="GL_GREEN_MIN_CLAMP_INGR"/>
+ <enum value="0x8562" name="GL_BLUE_MIN_CLAMP_INGR"/>
+ <enum value="0x8563" name="GL_ALPHA_MIN_CLAMP_INGR"/>
+ <enum value="0x8564" name="GL_RED_MAX_CLAMP_INGR"/>
+ <enum value="0x8565" name="GL_GREEN_MAX_CLAMP_INGR"/>
+ <enum value="0x8566" name="GL_BLUE_MAX_CLAMP_INGR"/>
+ <enum value="0x8567" name="GL_ALPHA_MAX_CLAMP_INGR"/>
+ <enum value="0x8568" name="GL_INTERLACE_READ_INGR"/>
+ <unused start="0x8569" end="0x856F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8570" end="0x859F" group="RegisterCombinerPname" vendor="AMD/NV">
+ <enum value="0x8570" name="GL_COMBINE"/>
+ <enum value="0x8570" name="GL_COMBINE_ARB"/>
+ <enum value="0x8570" name="GL_COMBINE_EXT"/>
+ <enum value="0x8571" name="GL_COMBINE_RGB"/>
+ <enum value="0x8571" name="GL_COMBINE_RGB_ARB"/>
+ <enum value="0x8571" name="GL_COMBINE_RGB_EXT"/>
+ <enum value="0x8572" name="GL_COMBINE_ALPHA"/>
+ <enum value="0x8572" name="GL_COMBINE_ALPHA_ARB"/>
+ <enum value="0x8572" name="GL_COMBINE_ALPHA_EXT"/>
+ <enum value="0x8573" name="GL_RGB_SCALE"/>
+ <enum value="0x8573" name="GL_RGB_SCALE_ARB"/>
+ <enum value="0x8573" name="GL_RGB_SCALE_EXT"/>
+ <enum value="0x8574" name="GL_ADD_SIGNED"/>
+ <enum value="0x8574" name="GL_ADD_SIGNED_ARB"/>
+ <enum value="0x8574" name="GL_ADD_SIGNED_EXT"/>
+ <enum value="0x8575" name="GL_INTERPOLATE"/>
+ <enum value="0x8575" name="GL_INTERPOLATE_ARB"/>
+ <enum value="0x8575" name="GL_INTERPOLATE_EXT"/>
+ <enum value="0x8576" name="GL_CONSTANT"/>
+ <enum value="0x8576" name="GL_CONSTANT_ARB"/>
+ <enum value="0x8576" name="GL_CONSTANT_EXT"/>
+ <enum value="0x8577" name="GL_PRIMARY_COLOR"/>
+ <enum value="0x8577" name="GL_PRIMARY_COLOR_ARB"/>
+ <enum value="0x8577" name="GL_PRIMARY_COLOR_EXT"/>
+ <enum value="0x8578" name="GL_PREVIOUS"/>
+ <enum value="0x8578" name="GL_PREVIOUS_ARB"/>
+ <enum value="0x8578" name="GL_PREVIOUS_EXT"/>
+ <unused start="0x8579" end="0x857F" comment="Additional combiner enums only"/>
+ <enum value="0x8580" name="GL_SOURCE0_RGB"/>
+ <enum value="0x8580" name="GL_SOURCE0_RGB_ARB"/>
+ <enum value="0x8580" name="GL_SOURCE0_RGB_EXT"/>
+ <enum value="0x8580" name="GL_SRC0_RGB" alias="GL_SOURCE0_RGB"/>
+ <enum value="0x8581" name="GL_SOURCE1_RGB"/>
+ <enum value="0x8581" name="GL_SOURCE1_RGB_ARB"/>
+ <enum value="0x8581" name="GL_SOURCE1_RGB_EXT"/>
+ <enum value="0x8581" name="GL_SRC1_RGB" alias="GL_SOURCE1_RGB"/>
+ <enum value="0x8582" name="GL_SOURCE2_RGB"/>
+ <enum value="0x8582" name="GL_SOURCE2_RGB_ARB"/>
+ <enum value="0x8582" name="GL_SOURCE2_RGB_EXT"/>
+ <enum value="0x8582" name="GL_SRC2_RGB" alias="GL_SOURCE2_RGB"/>
+ <enum value="0x8583" name="GL_SOURCE3_RGB_NV"/>
+ <unused start="0x8584" end="0x8587" comment="Additional combiner enums only"/>
+ <enum value="0x8588" name="GL_SOURCE0_ALPHA"/>
+ <enum value="0x8588" name="GL_SOURCE0_ALPHA_ARB"/>
+ <enum value="0x8588" name="GL_SOURCE0_ALPHA_EXT"/>
+ <enum value="0x8588" name="GL_SRC0_ALPHA" alias="GL_SOURCE0_ALPHA"/>
+ <enum value="0x8589" name="GL_SOURCE1_ALPHA"/>
+ <enum value="0x8589" name="GL_SOURCE1_ALPHA_ARB"/>
+ <enum value="0x8589" name="GL_SOURCE1_ALPHA_EXT"/>
+ <enum value="0x8589" name="GL_SRC1_ALPHA" alias="GL_SOURCE1_ALPHA"/>
+ <enum value="0x858A" name="GL_SOURCE2_ALPHA"/>
+ <enum value="0x858A" name="GL_SOURCE2_ALPHA_ARB"/>
+ <enum value="0x858A" name="GL_SOURCE2_ALPHA_EXT"/>
+ <enum value="0x858A" name="GL_SRC2_ALPHA" alias="GL_SOURCE2_ALPHA"/>
+ <enum value="0x858B" name="GL_SOURCE3_ALPHA_NV"/>
+ <unused start="0x858C" end="0x858F" comment="Additional combiner enums only"/>
+ <enum value="0x8590" name="GL_OPERAND0_RGB"/>
+ <enum value="0x8590" name="GL_OPERAND0_RGB_ARB"/>
+ <enum value="0x8590" name="GL_OPERAND0_RGB_EXT"/>
+ <enum value="0x8591" name="GL_OPERAND1_RGB"/>
+ <enum value="0x8591" name="GL_OPERAND1_RGB_ARB"/>
+ <enum value="0x8591" name="GL_OPERAND1_RGB_EXT"/>
+ <enum value="0x8592" name="GL_OPERAND2_RGB"/>
+ <enum value="0x8592" name="GL_OPERAND2_RGB_ARB"/>
+ <enum value="0x8592" name="GL_OPERAND2_RGB_EXT"/>
+ <enum value="0x8593" name="GL_OPERAND3_RGB_NV"/>
+ <unused start="0x8594" end="0x8597" comment="Additional combiner enums only"/>
+ <enum value="0x8598" name="GL_OPERAND0_ALPHA"/>
+ <enum value="0x8598" name="GL_OPERAND0_ALPHA_ARB"/>
+ <enum value="0x8598" name="GL_OPERAND0_ALPHA_EXT"/>
+ <enum value="0x8599" name="GL_OPERAND1_ALPHA"/>
+ <enum value="0x8599" name="GL_OPERAND1_ALPHA_ARB"/>
+ <enum value="0x8599" name="GL_OPERAND1_ALPHA_EXT"/>
+ <enum value="0x859A" name="GL_OPERAND2_ALPHA"/>
+ <enum value="0x859A" name="GL_OPERAND2_ALPHA_ARB"/>
+ <enum value="0x859A" name="GL_OPERAND2_ALPHA_EXT"/>
+ <enum value="0x859B" name="GL_OPERAND3_ALPHA_NV"/>
+ <unused start="0x859C" end="0x859F" comment="Additional combiner enums only"/>
+ </enums>
+
+ <enums namespace="GL" start="0x85A0" end="0x85AF" vendor="SGI">
+ <enum value="0x85A0" name="GL_PACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum value="0x85A1" name="GL_UNPACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum value="0x85A2" name="GL_PIXEL_SUBSAMPLE_4444_SGIX"/>
+ <enum value="0x85A3" name="GL_PIXEL_SUBSAMPLE_2424_SGIX"/>
+ <enum value="0x85A4" name="GL_PIXEL_SUBSAMPLE_4242_SGIX"/>
+ <unused start="0x85A5" end="0x85AD" comment="Incomplete extension SGIS_color_range"/>
+ <!-- <enum value="0x85A5" name="GL_EXTENDED_RANGE_SGIS"/> -->
+ <!-- <enum value="0x85A6" name="GL_MIN_RED_SGIS"/> -->
+ <!-- <enum value="0x85A7" name="GL_MAX_RED_SGIS"/> -->
+ <!-- <enum value="0x85A8" name="GL_MIN_GREEN_SGIS"/> -->
+ <!-- <enum value="0x85A9" name="GL_MAX_GREEN_SGIS"/> -->
+ <!-- <enum value="0x85AA" name="GL_MIN_BLUE_SGIS"/> -->
+ <!-- <enum value="0x85AB" name="GL_MAX_BLUE_SGIS"/> -->
+ <!-- <enum value="0x85AC" name="GL_MIN_ALPHA_SGIS"/> -->
+ <!-- <enum value="0x85AD" name="GL_MAX_ALPHA_SGIS"/> -->
+ <enum value="0x85AE" name="GL_PERTURB_EXT"/>
+ <enum value="0x85AF" name="GL_TEXTURE_NORMAL_EXT"/>
+ </enums>
+
+ <enums namespace="GL" start="0x85B0" end="0x85BF" vendor="APPLE">
+ <enum value="0x85B0" name="GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE"/>
+ <enum value="0x85B1" name="GL_TRANSFORM_HINT_APPLE"/>
+ <enum value="0x85B2" name="GL_UNPACK_CLIENT_STORAGE_APPLE"/>
+ <enum value="0x85B3" name="GL_BUFFER_OBJECT_APPLE"/>
+ <enum value="0x85B4" name="GL_STORAGE_CLIENT_APPLE"/>
+ <enum value="0x85B5" name="GL_VERTEX_ARRAY_BINDING"/>
+ <enum value="0x85B5" name="GL_VERTEX_ARRAY_BINDING_APPLE"/>
+ <enum value="0x85B5" name="GL_VERTEX_ARRAY_BINDING_OES"/>
+ <unused start="0x85B6" comment="Unknown extension (Khronos bug 632)"/>
+ <!-- <enum value="0x85B6" name="GL_TEXTURE_MINIMIZE_STORAGE_APPLE"/> -->
+ <enum value="0x85B7" name="GL_TEXTURE_RANGE_LENGTH_APPLE"/>
+ <enum value="0x85B8" name="GL_TEXTURE_RANGE_POINTER_APPLE"/>
+ <enum value="0x85B9" name="GL_YCBCR_422_APPLE"/>
+ <enum value="0x85BA" name="GL_UNSIGNED_SHORT_8_8_APPLE"/>
+ <enum value="0x85BA" name="GL_UNSIGNED_SHORT_8_8_MESA"/>
+ <enum value="0x85BB" name="GL_UNSIGNED_SHORT_8_8_REV_APPLE"/>
+ <enum value="0x85BB" name="GL_UNSIGNED_SHORT_8_8_REV_MESA"/>
+ <enum value="0x85BC" name="GL_TEXTURE_STORAGE_HINT_APPLE"/>
+ <enum value="0x85BD" name="GL_STORAGE_PRIVATE_APPLE"/>
+ <enum value="0x85BE" name="GL_STORAGE_CACHED_APPLE"/>
+ <enum value="0x85BF" name="GL_STORAGE_SHARED_APPLE"/>
+ </enums>
+
+ <enums namespace="GL" start="0x85C0" end="0x85CF" vendor="SUN">
+ <enum value="0x85C0" name="GL_REPLACEMENT_CODE_ARRAY_SUN"/>
+ <enum value="0x85C1" name="GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN"/>
+ <enum value="0x85C2" name="GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN"/>
+ <enum value="0x85C3" name="GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN"/>
+ <enum value="0x85C4" name="GL_R1UI_V3F_SUN"/>
+ <enum value="0x85C5" name="GL_R1UI_C4UB_V3F_SUN"/>
+ <enum value="0x85C6" name="GL_R1UI_C3F_V3F_SUN"/>
+ <enum value="0x85C7" name="GL_R1UI_N3F_V3F_SUN"/>
+ <enum value="0x85C8" name="GL_R1UI_C4F_N3F_V3F_SUN"/>
+ <enum value="0x85C9" name="GL_R1UI_T2F_V3F_SUN"/>
+ <enum value="0x85CA" name="GL_R1UI_T2F_N3F_V3F_SUN"/>
+ <enum value="0x85CB" name="GL_R1UI_T2F_C4F_N3F_V3F_SUN"/>
+ <enum value="0x85CC" name="GL_SLICE_ACCUM_SUN"/>
+ <unused start="0x85CD" end="0x85CF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x85D0" end="0x85DF" vendor="ZiiLabs" comment="3Dlabs private extension for Autodesk">
+ <unused start="0x85D0" end="0x85D1" comment="Unknown 3Dlabs private extension for Autodesk (but we know the enum values)"/>
+ <!-- <enum value="0x85D0" name="GL_FACET_NORMAL_AUTODESK"/> -->
+ <!-- <enum value="0x85D1" name="GL_FACET_NORMAL_ARRAY_AUTODESK"/> -->
+ <unused start="0x85D2" end="0x85DF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x85E0" end="0x85FF" vendor="SGI">
+ <unused start="0x85E0" end="0x85FB" comment="Incomplete extension SGIX_texture_range"/>
+ <!-- <enum value="0x85E0" name="GL_RGB_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E1" name="GL_RGBA_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E2" name="GL_ALPHA_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E3" name="GL_LUMINANCE_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E4" name="GL_INTENSITY_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E5" name="GL_LUMINANCE_ALPHA_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E6" name="GL_RGB16_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E7" name="GL_RGBA16_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E8" name="GL_ALPHA16_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E9" name="GL_LUMINANCE16_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85EA" name="GL_INTENSITY16_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85EB" name="GL_LUMINANCE16_ALPHA16_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85EC" name="GL_RGB_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85ED" name="GL_RGBA_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85EE" name="GL_ALPHA_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85EF" name="GL_LUMINANCE_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F0" name="GL_INTENSITY_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F1" name="GL_LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F2" name="GL_RGB16_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F3" name="GL_RGBA16_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F4" name="GL_ALPHA16_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F5" name="GL_LUMINANCE16_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F6" name="GL_INTENSITY16_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F7" name="GL_LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F8" name="GL_MIN_LUMINANCE_SGIS"/> -->
+ <!-- <enum value="0x85F9" name="GL_MAX_LUMINANCE_SGIS"/> -->
+ <!-- <enum value="0x85FA" name="GL_MIN_INTENSITY_SGIS"/> -->
+ <!-- <enum value="0x85FB" name="GL_MAX_INTENSITY_SGIS"/> -->
+ <unused start="0x85FC" end="0x85FF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8600" end="0x861F" vendor="SUN">
+ <unused start="0x8600" end="0x8613"/>
+ <enum value="0x8614" name="GL_QUAD_MESH_SUN"/>
+ <enum value="0x8615" name="GL_TRIANGLE_MESH_SUN"/>
+ <unused start="0x8614" end="0x861F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8620" end="0x867F" vendor="NV">
+ <enum value="0x8620" name="GL_VERTEX_PROGRAM_ARB"/>
+ <enum value="0x8620" name="GL_VERTEX_PROGRAM_NV"/>
+ <enum value="0x8621" name="GL_VERTEX_STATE_PROGRAM_NV"/>
+ <enum value="0x8622" name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
+ <enum value="0x8622" name="GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB"/>
+ <enum value="0x8623" name="GL_ATTRIB_ARRAY_SIZE_NV"/>
+ <enum value="0x8623" name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
+ <enum value="0x8623" name="GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB"/>
+ <enum value="0x8624" name="GL_ATTRIB_ARRAY_STRIDE_NV"/>
+ <enum value="0x8624" name="GL_VERTEX_ATTRIB_ARRAY_STRIDE"/>
+ <enum value="0x8624" name="GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB"/>
+ <enum value="0x8625" name="GL_ATTRIB_ARRAY_TYPE_NV"/>
+ <enum value="0x8625" name="GL_VERTEX_ATTRIB_ARRAY_TYPE"/>
+ <enum value="0x8625" name="GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB"/>
+ <enum value="0x8626" name="GL_CURRENT_ATTRIB_NV"/>
+ <enum value="0x8626" name="GL_CURRENT_VERTEX_ATTRIB"/>
+ <enum value="0x8626" name="GL_CURRENT_VERTEX_ATTRIB_ARB"/>
+ <enum value="0x8627" name="GL_PROGRAM_LENGTH_ARB"/>
+ <enum value="0x8627" name="GL_PROGRAM_LENGTH_NV"/>
+ <enum value="0x8628" name="GL_PROGRAM_STRING_ARB"/>
+ <enum value="0x8628" name="GL_PROGRAM_STRING_NV"/>
+ <enum value="0x8629" name="GL_MODELVIEW_PROJECTION_NV"/>
+ <enum value="0x862A" name="GL_IDENTITY_NV"/>
+ <enum value="0x862B" name="GL_INVERSE_NV"/>
+ <enum value="0x862C" name="GL_TRANSPOSE_NV"/>
+ <enum value="0x862D" name="GL_INVERSE_TRANSPOSE_NV"/>
+ <enum value="0x862E" name="GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB"/>
+ <enum value="0x862E" name="GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV"/>
+ <enum value="0x862F" name="GL_MAX_PROGRAM_MATRICES_ARB"/>
+ <enum value="0x862F" name="GL_MAX_TRACK_MATRICES_NV"/>
+ <enum value="0x8630" name="GL_MATRIX0_NV"/>
+ <enum value="0x8631" name="GL_MATRIX1_NV"/>
+ <enum value="0x8632" name="GL_MATRIX2_NV"/>
+ <enum value="0x8633" name="GL_MATRIX3_NV"/>
+ <enum value="0x8634" name="GL_MATRIX4_NV"/>
+ <enum value="0x8635" name="GL_MATRIX5_NV"/>
+ <enum value="0x8636" name="GL_MATRIX6_NV"/>
+ <enum value="0x8637" name="GL_MATRIX7_NV"/>
+ <unused start="0x8638" end="0x863F" comment="Reserved for MATRIX{8-15}_NV"/>
+ <!-- <enum value="0x8638" name="GL_MATRIX8_NV"/> -->
+ <!-- <enum value="0x8639" name="GL_MATRIX9_NV"/> -->
+ <!-- <enum value="0x863A" name="GL_MATRIX10_NV"/> -->
+ <!-- <enum value="0x863B" name="GL_MATRIX11_NV"/> -->
+ <!-- <enum value="0x863C" name="GL_MATRIX12_NV"/> -->
+ <!-- <enum value="0x863D" name="GL_MATRIX13_NV"/> -->
+ <!-- <enum value="0x863E" name="GL_MATRIX14_NV"/> -->
+ <!-- <enum value="0x863F" name="GL_MATRIX15_NV"/> -->
+ <enum value="0x8640" name="GL_CURRENT_MATRIX_STACK_DEPTH_ARB"/>
+ <enum value="0x8640" name="GL_CURRENT_MATRIX_STACK_DEPTH_NV"/>
+ <enum value="0x8641" name="GL_CURRENT_MATRIX_ARB"/>
+ <enum value="0x8641" name="GL_CURRENT_MATRIX_NV"/>
+ <enum value="0x8642" name="GL_VERTEX_PROGRAM_POINT_SIZE"/>
+ <enum value="0x8642" name="GL_VERTEX_PROGRAM_POINT_SIZE_ARB"/>
+ <enum value="0x8642" name="GL_VERTEX_PROGRAM_POINT_SIZE_NV"/>
+ <enum value="0x8642" name="GL_PROGRAM_POINT_SIZE" alias="GL_VERTEX_PROGRAM_POINT_SIZE"/>
+ <enum value="0x8642" name="GL_PROGRAM_POINT_SIZE_ARB"/>
+ <enum value="0x8642" name="GL_PROGRAM_POINT_SIZE_EXT"/>
+ <enum value="0x8643" name="GL_VERTEX_PROGRAM_TWO_SIDE"/>
+ <enum value="0x8643" name="GL_VERTEX_PROGRAM_TWO_SIDE_ARB"/>
+ <enum value="0x8643" name="GL_VERTEX_PROGRAM_TWO_SIDE_NV"/>
+ <enum value="0x8644" name="GL_PROGRAM_PARAMETER_NV"/>
+ <enum value="0x8645" name="GL_ATTRIB_ARRAY_POINTER_NV"/>
+ <enum value="0x8645" name="GL_VERTEX_ATTRIB_ARRAY_POINTER"/>
+ <enum value="0x8645" name="GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB"/>
+ <enum value="0x8646" name="GL_PROGRAM_TARGET_NV"/>
+ <enum value="0x8647" name="GL_PROGRAM_RESIDENT_NV"/>
+ <enum value="0x8648" name="GL_TRACK_MATRIX_NV"/>
+ <enum value="0x8649" name="GL_TRACK_MATRIX_TRANSFORM_NV"/>
+ <enum value="0x864A" name="GL_VERTEX_PROGRAM_BINDING_NV"/>
+ <enum value="0x864B" name="GL_PROGRAM_ERROR_POSITION_ARB"/>
+ <enum value="0x864B" name="GL_PROGRAM_ERROR_POSITION_NV"/>
+ <enum value="0x864C" name="GL_OFFSET_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x864D" name="GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV"/>
+ <enum value="0x864E" name="GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x864F" name="GL_DEPTH_CLAMP"/>
+ <enum value="0x864F" name="GL_DEPTH_CLAMP_NV"/>
+ <enum value="0x8650" name="GL_VERTEX_ATTRIB_ARRAY0_NV"/>
+ <enum value="0x8651" name="GL_VERTEX_ATTRIB_ARRAY1_NV"/>
+ <enum value="0x8652" name="GL_VERTEX_ATTRIB_ARRAY2_NV"/>
+ <enum value="0x8653" name="GL_VERTEX_ATTRIB_ARRAY3_NV"/>
+ <enum value="0x8654" name="GL_VERTEX_ATTRIB_ARRAY4_NV"/>
+ <enum value="0x8655" name="GL_VERTEX_ATTRIB_ARRAY5_NV"/>
+ <enum value="0x8656" name="GL_VERTEX_ATTRIB_ARRAY6_NV"/>
+ <enum value="0x8657" name="GL_VERTEX_ATTRIB_ARRAY7_NV"/>
+ <enum value="0x8658" name="GL_VERTEX_ATTRIB_ARRAY8_NV"/>
+ <enum value="0x8659" name="GL_VERTEX_ATTRIB_ARRAY9_NV"/>
+ <enum value="0x865A" name="GL_VERTEX_ATTRIB_ARRAY10_NV"/>
+ <enum value="0x865B" name="GL_VERTEX_ATTRIB_ARRAY11_NV"/>
+ <enum value="0x865C" name="GL_VERTEX_ATTRIB_ARRAY12_NV"/>
+ <enum value="0x865D" name="GL_VERTEX_ATTRIB_ARRAY13_NV"/>
+ <enum value="0x865E" name="GL_VERTEX_ATTRIB_ARRAY14_NV"/>
+ <enum value="0x865F" name="GL_VERTEX_ATTRIB_ARRAY15_NV"/>
+ <enum value="0x8660" name="GL_MAP1_VERTEX_ATTRIB0_4_NV"/>
+ <enum value="0x8661" name="GL_MAP1_VERTEX_ATTRIB1_4_NV"/>
+ <enum value="0x8662" name="GL_MAP1_VERTEX_ATTRIB2_4_NV"/>
+ <enum value="0x8663" name="GL_MAP1_VERTEX_ATTRIB3_4_NV"/>
+ <enum value="0x8664" name="GL_MAP1_VERTEX_ATTRIB4_4_NV"/>
+ <enum value="0x8665" name="GL_MAP1_VERTEX_ATTRIB5_4_NV"/>
+ <enum value="0x8666" name="GL_MAP1_VERTEX_ATTRIB6_4_NV"/>
+ <enum value="0x8667" name="GL_MAP1_VERTEX_ATTRIB7_4_NV"/>
+ <enum value="0x8668" name="GL_MAP1_VERTEX_ATTRIB8_4_NV"/>
+ <enum value="0x8669" name="GL_MAP1_VERTEX_ATTRIB9_4_NV"/>
+ <enum value="0x866A" name="GL_MAP1_VERTEX_ATTRIB10_4_NV"/>
+ <enum value="0x866B" name="GL_MAP1_VERTEX_ATTRIB11_4_NV"/>
+ <enum value="0x866C" name="GL_MAP1_VERTEX_ATTRIB12_4_NV"/>
+ <enum value="0x866D" name="GL_MAP1_VERTEX_ATTRIB13_4_NV"/>
+ <enum value="0x866E" name="GL_MAP1_VERTEX_ATTRIB14_4_NV"/>
+ <enum value="0x866F" name="GL_MAP1_VERTEX_ATTRIB15_4_NV"/>
+ <enum value="0x8670" name="GL_MAP2_VERTEX_ATTRIB0_4_NV"/>
+ <enum value="0x8671" name="GL_MAP2_VERTEX_ATTRIB1_4_NV"/>
+ <enum value="0x8672" name="GL_MAP2_VERTEX_ATTRIB2_4_NV"/>
+ <enum value="0x8673" name="GL_MAP2_VERTEX_ATTRIB3_4_NV"/>
+ <enum value="0x8674" name="GL_MAP2_VERTEX_ATTRIB4_4_NV"/>
+ <enum value="0x8675" name="GL_MAP2_VERTEX_ATTRIB5_4_NV"/>
+ <enum value="0x8676" name="GL_MAP2_VERTEX_ATTRIB6_4_NV"/>
+ <enum value="0x8677" name="GL_MAP2_VERTEX_ATTRIB7_4_NV"/>
+ <enum value="0x8677" name="GL_PROGRAM_BINDING_ARB" comment="NOT an alias. Accidental reuse of GL_MAP2_VERTEX_ATTRIB7_4_NV"/>
+ <enum value="0x8678" name="GL_MAP2_VERTEX_ATTRIB8_4_NV"/>
+ <enum value="0x8679" name="GL_MAP2_VERTEX_ATTRIB9_4_NV"/>
+ <enum value="0x867A" name="GL_MAP2_VERTEX_ATTRIB10_4_NV"/>
+ <enum value="0x867B" name="GL_MAP2_VERTEX_ATTRIB11_4_NV"/>
+ <enum value="0x867C" name="GL_MAP2_VERTEX_ATTRIB12_4_NV"/>
+ <enum value="0x867D" name="GL_MAP2_VERTEX_ATTRIB13_4_NV"/>
+ <enum value="0x867E" name="GL_MAP2_VERTEX_ATTRIB14_4_NV"/>
+ <enum value="0x867F" name="GL_MAP2_VERTEX_ATTRIB15_4_NV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8680" end="0x869F" vendor="Pixelfusion"/>
+
+ <enums namespace="GL" start="0x86A0" end="0x86AF" vendor="ARB">
+ <enum value="0x86A0" name="GL_TEXTURE_COMPRESSED_IMAGE_SIZE"/>
+ <enum value="0x86A0" name="GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB"/>
+ <enum value="0x86A1" name="GL_TEXTURE_COMPRESSED"/>
+ <enum value="0x86A1" name="GL_TEXTURE_COMPRESSED_ARB"/>
+ <enum value="0x86A2" name="GL_NUM_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum value="0x86A2" name="GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB"/>
+ <enum value="0x86A3" name="GL_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum value="0x86A3" name="GL_COMPRESSED_TEXTURE_FORMATS_ARB"/>
+ <enum value="0x86A4" name="GL_MAX_VERTEX_UNITS_ARB"/>
+ <enum value="0x86A4" name="GL_MAX_VERTEX_UNITS_OES"/>
+ <enum value="0x86A5" name="GL_ACTIVE_VERTEX_UNITS_ARB"/>
+ <enum value="0x86A6" name="GL_WEIGHT_SUM_UNITY_ARB"/>
+ <enum value="0x86A7" name="GL_VERTEX_BLEND_ARB"/>
+ <enum value="0x86A8" name="GL_CURRENT_WEIGHT_ARB"/>
+ <enum value="0x86A9" name="GL_WEIGHT_ARRAY_TYPE_ARB"/>
+ <enum value="0x86A9" name="GL_WEIGHT_ARRAY_TYPE_OES"/>
+ <enum value="0x86AA" name="GL_WEIGHT_ARRAY_STRIDE_ARB"/>
+ <enum value="0x86AA" name="GL_WEIGHT_ARRAY_STRIDE_OES"/>
+ <enum value="0x86AB" name="GL_WEIGHT_ARRAY_SIZE_ARB"/>
+ <enum value="0x86AB" name="GL_WEIGHT_ARRAY_SIZE_OES"/>
+ <enum value="0x86AC" name="GL_WEIGHT_ARRAY_POINTER_ARB"/>
+ <enum value="0x86AC" name="GL_WEIGHT_ARRAY_POINTER_OES"/>
+ <enum value="0x86AD" name="GL_WEIGHT_ARRAY_ARB"/>
+ <enum value="0x86AD" name="GL_WEIGHT_ARRAY_OES"/>
+ <enum value="0x86AE" name="GL_DOT3_RGB"/>
+ <enum value="0x86AE" name="GL_DOT3_RGB_ARB"/>
+ <enum value="0x86AF" name="GL_DOT3_RGBA"/>
+ <enum value="0x86AF" name="GL_DOT3_RGBA_ARB"/>
+ <enum value="0x86AF" name="GL_DOT3_RGBA_IMG"/>
+ </enums>
+
+ <enums namespace="GL" start="0x86B0" end="0x86BF" vendor="3DFX">
+ <enum value="0x86B0" name="GL_COMPRESSED_RGB_FXT1_3DFX"/>
+ <enum value="0x86B1" name="GL_COMPRESSED_RGBA_FXT1_3DFX"/>
+ <enum value="0x86B2" name="GL_MULTISAMPLE_3DFX"/>
+ <enum value="0x86B3" name="GL_SAMPLE_BUFFERS_3DFX"/>
+ <enum value="0x86B4" name="GL_SAMPLES_3DFX"/>
+ <unused start="0x86B5" end="0x86BF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x86C0" end="0x871F" vendor="NV">
+ <enum value="0x86C0" name="GL_EVAL_2D_NV"/>
+ <enum value="0x86C1" name="GL_EVAL_TRIANGULAR_2D_NV"/>
+ <enum value="0x86C2" name="GL_MAP_TESSELLATION_NV"/>
+ <enum value="0x86C3" name="GL_MAP_ATTRIB_U_ORDER_NV"/>
+ <enum value="0x86C4" name="GL_MAP_ATTRIB_V_ORDER_NV"/>
+ <enum value="0x86C5" name="GL_EVAL_FRACTIONAL_TESSELLATION_NV"/>
+ <enum value="0x86C6" name="GL_EVAL_VERTEX_ATTRIB0_NV"/>
+ <enum value="0x86C7" name="GL_EVAL_VERTEX_ATTRIB1_NV"/>
+ <enum value="0x86C8" name="GL_EVAL_VERTEX_ATTRIB2_NV"/>
+ <enum value="0x86C9" name="GL_EVAL_VERTEX_ATTRIB3_NV"/>
+ <enum value="0x86CA" name="GL_EVAL_VERTEX_ATTRIB4_NV"/>
+ <enum value="0x86CB" name="GL_EVAL_VERTEX_ATTRIB5_NV"/>
+ <enum value="0x86CC" name="GL_EVAL_VERTEX_ATTRIB6_NV"/>
+ <enum value="0x86CD" name="GL_EVAL_VERTEX_ATTRIB7_NV"/>
+ <enum value="0x86CE" name="GL_EVAL_VERTEX_ATTRIB8_NV"/>
+ <enum value="0x86CF" name="GL_EVAL_VERTEX_ATTRIB9_NV"/>
+ <enum value="0x86D0" name="GL_EVAL_VERTEX_ATTRIB10_NV"/>
+ <enum value="0x86D1" name="GL_EVAL_VERTEX_ATTRIB11_NV"/>
+ <enum value="0x86D2" name="GL_EVAL_VERTEX_ATTRIB12_NV"/>
+ <enum value="0x86D3" name="GL_EVAL_VERTEX_ATTRIB13_NV"/>
+ <enum value="0x86D4" name="GL_EVAL_VERTEX_ATTRIB14_NV"/>
+ <enum value="0x86D5" name="GL_EVAL_VERTEX_ATTRIB15_NV"/>
+ <enum value="0x86D6" name="GL_MAX_MAP_TESSELLATION_NV"/>
+ <enum value="0x86D7" name="GL_MAX_RATIONAL_EVAL_ORDER_NV"/>
+ <enum value="0x86D8" name="GL_MAX_PROGRAM_PATCH_ATTRIBS_NV"/>
+ <enum value="0x86D9" name="GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV"/>
+ <enum value="0x86DA" name="GL_UNSIGNED_INT_S8_S8_8_8_NV"/>
+ <enum value="0x86DB" name="GL_UNSIGNED_INT_8_8_S8_S8_REV_NV"/>
+ <enum value="0x86DC" name="GL_DSDT_MAG_INTENSITY_NV"/>
+ <enum value="0x86DD" name="GL_SHADER_CONSISTENT_NV"/>
+ <enum value="0x86DE" name="GL_TEXTURE_SHADER_NV"/>
+ <enum value="0x86DF" name="GL_SHADER_OPERATION_NV"/>
+ <enum value="0x86E0" name="GL_CULL_MODES_NV"/>
+ <enum value="0x86E1" name="GL_OFFSET_TEXTURE_MATRIX_NV"/>
+ <enum value="0x86E1" name="GL_OFFSET_TEXTURE_2D_MATRIX_NV" alias="GL_OFFSET_TEXTURE_MATRIX_NV"/>
+ <enum value="0x86E2" name="GL_OFFSET_TEXTURE_SCALE_NV"/>
+ <enum value="0x86E2" name="GL_OFFSET_TEXTURE_2D_SCALE_NV" alias="GL_OFFSET_TEXTURE_SCALE_NV"/>
+ <enum value="0x86E3" name="GL_OFFSET_TEXTURE_BIAS_NV"/>
+ <enum value="0x86E3" name="GL_OFFSET_TEXTURE_2D_BIAS_NV" alias="GL_OFFSET_TEXTURE_BIAS_NV"/>
+ <enum value="0x86E4" name="GL_PREVIOUS_TEXTURE_INPUT_NV"/>
+ <enum value="0x86E5" name="GL_CONST_EYE_NV"/>
+ <enum value="0x86E6" name="GL_PASS_THROUGH_NV"/>
+ <enum value="0x86E7" name="GL_CULL_FRAGMENT_NV"/>
+ <enum value="0x86E8" name="GL_OFFSET_TEXTURE_2D_NV"/>
+ <enum value="0x86E9" name="GL_DEPENDENT_AR_TEXTURE_2D_NV"/>
+ <enum value="0x86EA" name="GL_DEPENDENT_GB_TEXTURE_2D_NV"/>
+ <enum value="0x86EB" name="GL_SURFACE_STATE_NV"/>
+ <enum value="0x86EC" name="GL_DOT_PRODUCT_NV"/>
+ <enum value="0x86ED" name="GL_DOT_PRODUCT_DEPTH_REPLACE_NV"/>
+ <enum value="0x86EE" name="GL_DOT_PRODUCT_TEXTURE_2D_NV"/>
+ <enum value="0x86EF" name="GL_DOT_PRODUCT_TEXTURE_3D_NV"/>
+ <enum value="0x86F0" name="GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV"/>
+ <enum value="0x86F1" name="GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV"/>
+ <enum value="0x86F2" name="GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV"/>
+ <enum value="0x86F3" name="GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV"/>
+ <enum value="0x86F4" name="GL_HILO_NV"/>
+ <enum value="0x86F5" name="GL_DSDT_NV"/>
+ <enum value="0x86F6" name="GL_DSDT_MAG_NV"/>
+ <enum value="0x86F7" name="GL_DSDT_MAG_VIB_NV"/>
+ <enum value="0x86F8" name="GL_HILO16_NV"/>
+ <enum value="0x86F9" name="GL_SIGNED_HILO_NV"/>
+ <enum value="0x86FA" name="GL_SIGNED_HILO16_NV"/>
+ <enum value="0x86FB" name="GL_SIGNED_RGBA_NV"/>
+ <enum value="0x86FC" name="GL_SIGNED_RGBA8_NV"/>
+ <enum value="0x86FD" name="GL_SURFACE_REGISTERED_NV"/>
+ <enum value="0x86FE" name="GL_SIGNED_RGB_NV"/>
+ <enum value="0x86FF" name="GL_SIGNED_RGB8_NV"/>
+ <enum value="0x8700" name="GL_SURFACE_MAPPED_NV"/>
+ <enum value="0x8701" name="GL_SIGNED_LUMINANCE_NV"/>
+ <enum value="0x8702" name="GL_SIGNED_LUMINANCE8_NV"/>
+ <enum value="0x8703" name="GL_SIGNED_LUMINANCE_ALPHA_NV"/>
+ <enum value="0x8704" name="GL_SIGNED_LUMINANCE8_ALPHA8_NV"/>
+ <enum value="0x8705" name="GL_SIGNED_ALPHA_NV"/>
+ <enum value="0x8706" name="GL_SIGNED_ALPHA8_NV"/>
+ <enum value="0x8707" name="GL_SIGNED_INTENSITY_NV"/>
+ <enum value="0x8708" name="GL_SIGNED_INTENSITY8_NV"/>
+ <enum value="0x8709" name="GL_DSDT8_NV"/>
+ <enum value="0x870A" name="GL_DSDT8_MAG8_NV"/>
+ <enum value="0x870B" name="GL_DSDT8_MAG8_INTENSITY8_NV"/>
+ <enum value="0x870C" name="GL_SIGNED_RGB_UNSIGNED_ALPHA_NV"/>
+ <enum value="0x870D" name="GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV"/>
+ <enum value="0x870E" name="GL_HI_SCALE_NV"/>
+ <enum value="0x870F" name="GL_LO_SCALE_NV"/>
+ <enum value="0x8710" name="GL_DS_SCALE_NV"/>
+ <enum value="0x8711" name="GL_DT_SCALE_NV"/>
+ <enum value="0x8712" name="GL_MAGNITUDE_SCALE_NV"/>
+ <enum value="0x8713" name="GL_VIBRANCE_SCALE_NV"/>
+ <enum value="0x8714" name="GL_HI_BIAS_NV"/>
+ <enum value="0x8715" name="GL_LO_BIAS_NV"/>
+ <enum value="0x8716" name="GL_DS_BIAS_NV"/>
+ <enum value="0x8717" name="GL_DT_BIAS_NV"/>
+ <enum value="0x8718" name="GL_MAGNITUDE_BIAS_NV"/>
+ <enum value="0x8719" name="GL_VIBRANCE_BIAS_NV"/>
+ <enum value="0x871A" name="GL_TEXTURE_BORDER_VALUES_NV"/>
+ <enum value="0x871B" name="GL_TEXTURE_HI_SIZE_NV"/>
+ <enum value="0x871C" name="GL_TEXTURE_LO_SIZE_NV"/>
+ <enum value="0x871D" name="GL_TEXTURE_DS_SIZE_NV"/>
+ <enum value="0x871E" name="GL_TEXTURE_DT_SIZE_NV"/>
+ <enum value="0x871F" name="GL_TEXTURE_MAG_SIZE_NV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8720" end="0x873F" vendor="ARB">
+ <unused start="0x8720" end="0x8721" comment="MODELVIEW0/1 already exist"/>
+ <enum value="0x8722" name="GL_MODELVIEW2_ARB"/>
+ <enum value="0x8723" name="GL_MODELVIEW3_ARB"/>
+ <enum value="0x8724" name="GL_MODELVIEW4_ARB"/>
+ <enum value="0x8725" name="GL_MODELVIEW5_ARB"/>
+ <enum value="0x8726" name="GL_MODELVIEW6_ARB"/>
+ <enum value="0x8727" name="GL_MODELVIEW7_ARB"/>
+ <enum value="0x8728" name="GL_MODELVIEW8_ARB"/>
+ <enum value="0x8729" name="GL_MODELVIEW9_ARB"/>
+ <enum value="0x872A" name="GL_MODELVIEW10_ARB"/>
+ <enum value="0x872B" name="GL_MODELVIEW11_ARB"/>
+ <enum value="0x872C" name="GL_MODELVIEW12_ARB"/>
+ <enum value="0x872D" name="GL_MODELVIEW13_ARB"/>
+ <enum value="0x872E" name="GL_MODELVIEW14_ARB"/>
+ <enum value="0x872F" name="GL_MODELVIEW15_ARB"/>
+ <enum value="0x8730" name="GL_MODELVIEW16_ARB"/>
+ <enum value="0x8731" name="GL_MODELVIEW17_ARB"/>
+ <enum value="0x8732" name="GL_MODELVIEW18_ARB"/>
+ <enum value="0x8733" name="GL_MODELVIEW19_ARB"/>
+ <enum value="0x8734" name="GL_MODELVIEW20_ARB"/>
+ <enum value="0x8735" name="GL_MODELVIEW21_ARB"/>
+ <enum value="0x8736" name="GL_MODELVIEW22_ARB"/>
+ <enum value="0x8737" name="GL_MODELVIEW23_ARB"/>
+ <enum value="0x8738" name="GL_MODELVIEW24_ARB"/>
+ <enum value="0x8739" name="GL_MODELVIEW25_ARB"/>
+ <enum value="0x873A" name="GL_MODELVIEW26_ARB"/>
+ <enum value="0x873B" name="GL_MODELVIEW27_ARB"/>
+ <enum value="0x873C" name="GL_MODELVIEW28_ARB"/>
+ <enum value="0x873D" name="GL_MODELVIEW29_ARB"/>
+ <enum value="0x873E" name="GL_MODELVIEW30_ARB"/>
+ <enum value="0x873F" name="GL_MODELVIEW31_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8740" end="0x874F" vendor="AMD">
+ <enum value="0x8740" name="GL_DOT3_RGB_EXT"/>
+ <enum value="0x8740" name="GL_Z400_BINARY_AMD" comment="NOT an alias. Accidental reuse of GL_DOT3_RGB_EXT"/>
+ <enum value="0x8741" name="GL_DOT3_RGBA_EXT"/>
+ <enum value="0x8741" name="GL_PROGRAM_BINARY_LENGTH_OES" comment="NOT an alias. Accidental reuse of GL_DOT3_RGBA_EXT"/>
+ <enum value="0x8741" name="GL_PROGRAM_BINARY_LENGTH"/>
+ <enum value="0x8742" name="GL_MIRROR_CLAMP_ATI"/>
+ <enum value="0x8742" name="GL_MIRROR_CLAMP_EXT"/>
+ <enum value="0x8743" name="GL_MIRROR_CLAMP_TO_EDGE"/>
+ <enum value="0x8743" name="GL_MIRROR_CLAMP_TO_EDGE_ATI"/>
+ <enum value="0x8743" name="GL_MIRROR_CLAMP_TO_EDGE_EXT"/>
+ <enum value="0x8744" name="GL_MODULATE_ADD_ATI"/>
+ <enum value="0x8745" name="GL_MODULATE_SIGNED_ADD_ATI"/>
+ <enum value="0x8746" name="GL_MODULATE_SUBTRACT_ATI"/>
+ <unused start="0x8747" end="0x8749"/>
+ <enum value="0x874A" name="GL_SET_AMD"/>
+ <enum value="0x874B" name="GL_REPLACE_VALUE_AMD"/>
+ <enum value="0x874C" name="GL_STENCIL_OP_VALUE_AMD"/>
+ <enum value="0x874D" name="GL_STENCIL_BACK_OP_VALUE_AMD"/>
+ <enum value="0x874E" name="GL_VERTEX_ATTRIB_ARRAY_LONG"/>
+ <unused start="0x874F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8750" end="0x875F" vendor="MESA">
+ <enum value="0x8750" name="GL_DEPTH_STENCIL_MESA"/>
+ <enum value="0x8751" name="GL_UNSIGNED_INT_24_8_MESA"/>
+ <enum value="0x8752" name="GL_UNSIGNED_INT_8_24_REV_MESA"/>
+ <enum value="0x8753" name="GL_UNSIGNED_SHORT_15_1_MESA"/>
+ <enum value="0x8754" name="GL_UNSIGNED_SHORT_1_15_REV_MESA"/>
+ <enum value="0x8755" name="GL_TRACE_MASK_MESA"/>
+ <enum value="0x8756" name="GL_TRACE_NAME_MESA"/>
+ <enum value="0x8757" name="GL_YCBCR_MESA"/>
+ <enum value="0x8758" name="GL_PACK_INVERT_MESA"/>
+ <enum value="0x8759" name="GL_DEBUG_OBJECT_MESA" comment="NOT an alias. Accidental reuse of GL_TEXTURE_1D_STACK_MESAX"/>
+ <enum value="0x8759" name="GL_TEXTURE_1D_STACK_MESAX"/>
+ <enum value="0x875A" name="GL_DEBUG_PRINT_MESA" comment="NOT an alias. Accidental reuse of GL_TEXTURE_2D_STACK_MESAX"/>
+ <enum value="0x875A" name="GL_TEXTURE_2D_STACK_MESAX"/>
+ <enum value="0x875B" name="GL_DEBUG_ASSERT_MESA" comment="NOT an alias. Accidental reuse of GL_PROXY_TEXTURE_1D_STACK_MESAX"/>
+ <enum value="0x875B" name="GL_PROXY_TEXTURE_1D_STACK_MESAX"/>
+ <enum value="0x875C" name="GL_PROXY_TEXTURE_2D_STACK_MESAX"/>
+ <enum value="0x875D" name="GL_TEXTURE_1D_STACK_BINDING_MESAX"/>
+ <enum value="0x875E" name="GL_TEXTURE_2D_STACK_BINDING_MESAX"/>
+ <unused start="0x875F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8760" end="0x883F" vendor="AMD">
+ <enum value="0x8760" name="GL_STATIC_ATI"/>
+ <enum value="0x8761" name="GL_DYNAMIC_ATI"/>
+ <enum value="0x8762" name="GL_PRESERVE_ATI"/>
+ <enum value="0x8763" name="GL_DISCARD_ATI"/>
+ <enum value="0x8764" name="GL_BUFFER_SIZE"/>
+ <enum value="0x8764" name="GL_BUFFER_SIZE_ARB"/>
+ <enum value="0x8764" name="GL_OBJECT_BUFFER_SIZE_ATI"/>
+ <enum value="0x8765" name="GL_BUFFER_USAGE"/>
+ <enum value="0x8765" name="GL_BUFFER_USAGE_ARB"/>
+ <enum value="0x8765" name="GL_OBJECT_BUFFER_USAGE_ATI"/>
+ <enum value="0x8766" name="GL_ARRAY_OBJECT_BUFFER_ATI"/>
+ <enum value="0x8767" name="GL_ARRAY_OBJECT_OFFSET_ATI"/>
+ <enum value="0x8768" name="GL_ELEMENT_ARRAY_ATI"/>
+ <enum value="0x8769" name="GL_ELEMENT_ARRAY_TYPE_ATI"/>
+ <enum value="0x876A" name="GL_ELEMENT_ARRAY_POINTER_ATI"/>
+ <enum value="0x876B" name="GL_MAX_VERTEX_STREAMS_ATI"/>
+ <enum value="0x876C" name="GL_VERTEX_STREAM0_ATI"/>
+ <enum value="0x876D" name="GL_VERTEX_STREAM1_ATI"/>
+ <enum value="0x876E" name="GL_VERTEX_STREAM2_ATI"/>
+ <enum value="0x876F" name="GL_VERTEX_STREAM3_ATI"/>
+ <enum value="0x8770" name="GL_VERTEX_STREAM4_ATI"/>
+ <enum value="0x8771" name="GL_VERTEX_STREAM5_ATI"/>
+ <enum value="0x8772" name="GL_VERTEX_STREAM6_ATI"/>
+ <enum value="0x8773" name="GL_VERTEX_STREAM7_ATI"/>
+ <enum value="0x8774" name="GL_VERTEX_SOURCE_ATI"/>
+ <enum value="0x8775" name="GL_BUMP_ROT_MATRIX_ATI"/>
+ <enum value="0x8776" name="GL_BUMP_ROT_MATRIX_SIZE_ATI"/>
+ <enum value="0x8777" name="GL_BUMP_NUM_TEX_UNITS_ATI"/>
+ <enum value="0x8778" name="GL_BUMP_TEX_UNITS_ATI"/>
+ <enum value="0x8779" name="GL_DUDV_ATI"/>
+ <enum value="0x877A" name="GL_DU8DV8_ATI"/>
+ <enum value="0x877B" name="GL_BUMP_ENVMAP_ATI"/>
+ <enum value="0x877C" name="GL_BUMP_TARGET_ATI"/>
+ <unused start="0x877D" end="0x877F"/>
+ <enum value="0x8780" name="GL_VERTEX_SHADER_EXT"/>
+ <enum value="0x8781" name="GL_VERTEX_SHADER_BINDING_EXT"/>
+ <enum value="0x8782" name="GL_OP_INDEX_EXT"/>
+ <enum value="0x8783" name="GL_OP_NEGATE_EXT"/>
+ <enum value="0x8784" name="GL_OP_DOT3_EXT"/>
+ <enum value="0x8785" name="GL_OP_DOT4_EXT"/>
+ <enum value="0x8786" name="GL_OP_MUL_EXT"/>
+ <enum value="0x8787" name="GL_OP_ADD_EXT"/>
+ <enum value="0x8788" name="GL_OP_MADD_EXT"/>
+ <enum value="0x8789" name="GL_OP_FRAC_EXT"/>
+ <enum value="0x878A" name="GL_OP_MAX_EXT"/>
+ <enum value="0x878B" name="GL_OP_MIN_EXT"/>
+ <enum value="0x878C" name="GL_OP_SET_GE_EXT"/>
+ <enum value="0x878D" name="GL_OP_SET_LT_EXT"/>
+ <enum value="0x878E" name="GL_OP_CLAMP_EXT"/>
+ <enum value="0x878F" name="GL_OP_FLOOR_EXT"/>
+ <enum value="0x8790" name="GL_OP_ROUND_EXT"/>
+ <enum value="0x8791" name="GL_OP_EXP_BASE_2_EXT"/>
+ <enum value="0x8792" name="GL_OP_LOG_BASE_2_EXT"/>
+ <enum value="0x8793" name="GL_OP_POWER_EXT"/>
+ <enum value="0x8794" name="GL_OP_RECIP_EXT"/>
+ <enum value="0x8795" name="GL_OP_RECIP_SQRT_EXT"/>
+ <enum value="0x8796" name="GL_OP_SUB_EXT"/>
+ <enum value="0x8797" name="GL_OP_CROSS_PRODUCT_EXT"/>
+ <enum value="0x8798" name="GL_OP_MULTIPLY_MATRIX_EXT"/>
+ <enum value="0x8799" name="GL_OP_MOV_EXT"/>
+ <enum value="0x879A" name="GL_OUTPUT_VERTEX_EXT"/>
+ <enum value="0x879B" name="GL_OUTPUT_COLOR0_EXT"/>
+ <enum value="0x879C" name="GL_OUTPUT_COLOR1_EXT"/>
+ <enum value="0x879D" name="GL_OUTPUT_TEXTURE_COORD0_EXT"/>
+ <enum value="0x879E" name="GL_OUTPUT_TEXTURE_COORD1_EXT"/>
+ <enum value="0x879F" name="GL_OUTPUT_TEXTURE_COORD2_EXT"/>
+ <enum value="0x87A0" name="GL_OUTPUT_TEXTURE_COORD3_EXT"/>
+ <enum value="0x87A1" name="GL_OUTPUT_TEXTURE_COORD4_EXT"/>
+ <enum value="0x87A2" name="GL_OUTPUT_TEXTURE_COORD5_EXT"/>
+ <enum value="0x87A3" name="GL_OUTPUT_TEXTURE_COORD6_EXT"/>
+ <enum value="0x87A4" name="GL_OUTPUT_TEXTURE_COORD7_EXT"/>
+ <enum value="0x87A5" name="GL_OUTPUT_TEXTURE_COORD8_EXT"/>
+ <enum value="0x87A6" name="GL_OUTPUT_TEXTURE_COORD9_EXT"/>
+ <enum value="0x87A7" name="GL_OUTPUT_TEXTURE_COORD10_EXT"/>
+ <enum value="0x87A8" name="GL_OUTPUT_TEXTURE_COORD11_EXT"/>
+ <enum value="0x87A9" name="GL_OUTPUT_TEXTURE_COORD12_EXT"/>
+ <enum value="0x87AA" name="GL_OUTPUT_TEXTURE_COORD13_EXT"/>
+ <enum value="0x87AB" name="GL_OUTPUT_TEXTURE_COORD14_EXT"/>
+ <enum value="0x87AC" name="GL_OUTPUT_TEXTURE_COORD15_EXT"/>
+ <enum value="0x87AD" name="GL_OUTPUT_TEXTURE_COORD16_EXT"/>
+ <enum value="0x87AE" name="GL_OUTPUT_TEXTURE_COORD17_EXT"/>
+ <enum value="0x87AF" name="GL_OUTPUT_TEXTURE_COORD18_EXT"/>
+ <enum value="0x87B0" name="GL_OUTPUT_TEXTURE_COORD19_EXT"/>
+ <enum value="0x87B1" name="GL_OUTPUT_TEXTURE_COORD20_EXT"/>
+ <enum value="0x87B2" name="GL_OUTPUT_TEXTURE_COORD21_EXT"/>
+ <enum value="0x87B3" name="GL_OUTPUT_TEXTURE_COORD22_EXT"/>
+ <enum value="0x87B4" name="GL_OUTPUT_TEXTURE_COORD23_EXT"/>
+ <enum value="0x87B5" name="GL_OUTPUT_TEXTURE_COORD24_EXT"/>
+ <enum value="0x87B6" name="GL_OUTPUT_TEXTURE_COORD25_EXT"/>
+ <enum value="0x87B7" name="GL_OUTPUT_TEXTURE_COORD26_EXT"/>
+ <enum value="0x87B8" name="GL_OUTPUT_TEXTURE_COORD27_EXT"/>
+ <enum value="0x87B9" name="GL_OUTPUT_TEXTURE_COORD28_EXT"/>
+ <enum value="0x87BA" name="GL_OUTPUT_TEXTURE_COORD29_EXT"/>
+ <enum value="0x87BB" name="GL_OUTPUT_TEXTURE_COORD30_EXT"/>
+ <enum value="0x87BC" name="GL_OUTPUT_TEXTURE_COORD31_EXT"/>
+ <enum value="0x87BD" name="GL_OUTPUT_FOG_EXT"/>
+ <enum value="0x87BE" name="GL_SCALAR_EXT"/>
+ <enum value="0x87BF" name="GL_VECTOR_EXT"/>
+ <enum value="0x87C0" name="GL_MATRIX_EXT"/>
+ <enum value="0x87C1" name="GL_VARIANT_EXT"/>
+ <enum value="0x87C2" name="GL_INVARIANT_EXT"/>
+ <enum value="0x87C3" name="GL_LOCAL_CONSTANT_EXT"/>
+ <enum value="0x87C4" name="GL_LOCAL_EXT"/>
+ <enum value="0x87C5" name="GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT"/>
+ <enum value="0x87C6" name="GL_MAX_VERTEX_SHADER_VARIANTS_EXT"/>
+ <enum value="0x87C7" name="GL_MAX_VERTEX_SHADER_INVARIANTS_EXT"/>
+ <enum value="0x87C8" name="GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"/>
+ <enum value="0x87C9" name="GL_MAX_VERTEX_SHADER_LOCALS_EXT"/>
+ <enum value="0x87CA" name="GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT"/>
+ <enum value="0x87CB" name="GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT"/>
+ <enum value="0x87CC" name="GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"/>
+ <enum value="0x87CD" name="GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT"/>
+ <enum value="0x87CE" name="GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT"/>
+ <enum value="0x87CF" name="GL_VERTEX_SHADER_INSTRUCTIONS_EXT"/>
+ <enum value="0x87D0" name="GL_VERTEX_SHADER_VARIANTS_EXT"/>
+ <enum value="0x87D1" name="GL_VERTEX_SHADER_INVARIANTS_EXT"/>
+ <enum value="0x87D2" name="GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"/>
+ <enum value="0x87D3" name="GL_VERTEX_SHADER_LOCALS_EXT"/>
+ <enum value="0x87D4" name="GL_VERTEX_SHADER_OPTIMIZED_EXT"/>
+ <enum value="0x87D5" name="GL_X_EXT"/>
+ <enum value="0x87D6" name="GL_Y_EXT"/>
+ <enum value="0x87D7" name="GL_Z_EXT"/>
+ <enum value="0x87D8" name="GL_W_EXT"/>
+ <enum value="0x87D9" name="GL_NEGATIVE_X_EXT"/>
+ <enum value="0x87DA" name="GL_NEGATIVE_Y_EXT"/>
+ <enum value="0x87DB" name="GL_NEGATIVE_Z_EXT"/>
+ <enum value="0x87DC" name="GL_NEGATIVE_W_EXT"/>
+ <enum value="0x87DD" name="GL_ZERO_EXT"/>
+ <enum value="0x87DE" name="GL_ONE_EXT"/>
+ <enum value="0x87DF" name="GL_NEGATIVE_ONE_EXT"/>
+ <enum value="0x87E0" name="GL_NORMALIZED_RANGE_EXT"/>
+ <enum value="0x87E1" name="GL_FULL_RANGE_EXT"/>
+ <enum value="0x87E2" name="GL_CURRENT_VERTEX_EXT"/>
+ <enum value="0x87E3" name="GL_MVP_MATRIX_EXT"/>
+ <enum value="0x87E4" name="GL_VARIANT_VALUE_EXT"/>
+ <enum value="0x87E5" name="GL_VARIANT_DATATYPE_EXT"/>
+ <enum value="0x87E6" name="GL_VARIANT_ARRAY_STRIDE_EXT"/>
+ <enum value="0x87E7" name="GL_VARIANT_ARRAY_TYPE_EXT"/>
+ <enum value="0x87E8" name="GL_VARIANT_ARRAY_EXT"/>
+ <enum value="0x87E9" name="GL_VARIANT_ARRAY_POINTER_EXT"/>
+ <enum value="0x87EA" name="GL_INVARIANT_VALUE_EXT"/>
+ <enum value="0x87EB" name="GL_INVARIANT_DATATYPE_EXT"/>
+ <enum value="0x87EC" name="GL_LOCAL_CONSTANT_VALUE_EXT"/>
+ <enum value="0x87ED" name="GL_LOCAL_CONSTANT_DATATYPE_EXT"/>
+ <enum value="0x87EE" name="GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD"/>
+ <enum value="0x87F0" name="GL_PN_TRIANGLES_ATI"/>
+ <enum value="0x87F1" name="GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI"/>
+ <enum value="0x87F2" name="GL_PN_TRIANGLES_POINT_MODE_ATI"/>
+ <enum value="0x87F3" name="GL_PN_TRIANGLES_NORMAL_MODE_ATI"/>
+ <enum value="0x87F4" name="GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI"/>
+ <enum value="0x87F5" name="GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI"/>
+ <enum value="0x87F6" name="GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI"/>
+ <enum value="0x87F7" name="GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI"/>
+ <enum value="0x87F8" name="GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI"/>
+ <enum value="0x87F9" name="GL_3DC_X_AMD"/>
+ <enum value="0x87FA" name="GL_3DC_XY_AMD"/>
+ <enum value="0x87FB" name="GL_VBO_FREE_MEMORY_ATI"/>
+ <enum value="0x87FC" name="GL_TEXTURE_FREE_MEMORY_ATI"/>
+ <enum value="0x87FD" name="GL_RENDERBUFFER_FREE_MEMORY_ATI"/>
+ <enum value="0x87FE" name="GL_NUM_PROGRAM_BINARY_FORMATS"/>
+ <enum value="0x87FE" name="GL_NUM_PROGRAM_BINARY_FORMATS_OES"/>
+ <enum value="0x87FF" name="GL_PROGRAM_BINARY_FORMATS"/>
+ <enum value="0x87FF" name="GL_PROGRAM_BINARY_FORMATS_OES"/>
+ <enum value="0x8800" name="GL_STENCIL_BACK_FUNC"/>
+ <enum value="0x8800" name="GL_STENCIL_BACK_FUNC_ATI"/>
+ <enum value="0x8801" name="GL_STENCIL_BACK_FAIL"/>
+ <enum value="0x8801" name="GL_STENCIL_BACK_FAIL_ATI"/>
+ <enum value="0x8802" name="GL_STENCIL_BACK_PASS_DEPTH_FAIL"/>
+ <enum value="0x8802" name="GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI"/>
+ <enum value="0x8803" name="GL_STENCIL_BACK_PASS_DEPTH_PASS"/>
+ <enum value="0x8803" name="GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI"/>
+ <enum value="0x8804" name="GL_FRAGMENT_PROGRAM_ARB"/>
+ <enum value="0x8805" name="GL_PROGRAM_ALU_INSTRUCTIONS_ARB"/>
+ <enum value="0x8806" name="GL_PROGRAM_TEX_INSTRUCTIONS_ARB"/>
+ <enum value="0x8807" name="GL_PROGRAM_TEX_INDIRECTIONS_ARB"/>
+ <enum value="0x8808" name="GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB"/>
+ <enum value="0x8809" name="GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB"/>
+ <enum value="0x880A" name="GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB"/>
+ <enum value="0x880B" name="GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB"/>
+ <enum value="0x880C" name="GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB"/>
+ <enum value="0x880D" name="GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB"/>
+ <enum value="0x880E" name="GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB"/>
+ <enum value="0x880F" name="GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB"/>
+ <enum value="0x8810" name="GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB"/>
+ <unused start="0x8811" end="0x8813"/>
+ <enum value="0x8814" name="GL_RGBA32F"/>
+ <enum value="0x8814" name="GL_RGBA32F_ARB"/>
+ <enum value="0x8814" name="GL_RGBA32F_EXT"/>
+ <enum value="0x8814" name="GL_RGBA_FLOAT32_APPLE"/>
+ <enum value="0x8814" name="GL_RGBA_FLOAT32_ATI"/>
+ <enum value="0x8815" name="GL_RGB32F"/>
+ <enum value="0x8815" name="GL_RGB32F_ARB"/>
+ <enum value="0x8815" name="GL_RGB32F_EXT"/>
+ <enum value="0x8815" name="GL_RGB_FLOAT32_APPLE"/>
+ <enum value="0x8815" name="GL_RGB_FLOAT32_ATI"/>
+ <enum value="0x8816" name="GL_ALPHA32F_ARB"/>
+ <enum value="0x8816" name="GL_ALPHA32F_EXT"/>
+ <enum value="0x8816" name="GL_ALPHA_FLOAT32_APPLE"/>
+ <enum value="0x8816" name="GL_ALPHA_FLOAT32_ATI"/>
+ <enum value="0x8817" name="GL_INTENSITY32F_ARB"/>
+ <enum value="0x8817" name="GL_INTENSITY_FLOAT32_APPLE"/>
+ <enum value="0x8817" name="GL_INTENSITY_FLOAT32_ATI"/>
+ <enum value="0x8818" name="GL_LUMINANCE32F_ARB"/>
+ <enum value="0x8818" name="GL_LUMINANCE32F_EXT"/>
+ <enum value="0x8818" name="GL_LUMINANCE_FLOAT32_APPLE"/>
+ <enum value="0x8818" name="GL_LUMINANCE_FLOAT32_ATI"/>
+ <enum value="0x8819" name="GL_LUMINANCE_ALPHA32F_ARB"/>
+ <enum value="0x8819" name="GL_LUMINANCE_ALPHA32F_EXT"/>
+ <enum value="0x8819" name="GL_LUMINANCE_ALPHA_FLOAT32_APPLE"/>
+ <enum value="0x8819" name="GL_LUMINANCE_ALPHA_FLOAT32_ATI"/>
+ <enum value="0x881A" name="GL_RGBA16F"/>
+ <enum value="0x881A" name="GL_RGBA16F_ARB"/>
+ <enum value="0x881A" name="GL_RGBA16F_EXT"/>
+ <enum value="0x881A" name="GL_RGBA_FLOAT16_APPLE"/>
+ <enum value="0x881A" name="GL_RGBA_FLOAT16_ATI"/>
+ <enum value="0x881B" name="GL_RGB16F"/>
+ <enum value="0x881B" name="GL_RGB16F_ARB"/>
+ <enum value="0x881B" name="GL_RGB16F_EXT"/>
+ <enum value="0x881B" name="GL_RGB_FLOAT16_APPLE"/>
+ <enum value="0x881B" name="GL_RGB_FLOAT16_ATI"/>
+ <enum value="0x881C" name="GL_ALPHA16F_ARB"/>
+ <enum value="0x881C" name="GL_ALPHA16F_EXT"/>
+ <enum value="0x881C" name="GL_ALPHA_FLOAT16_APPLE"/>
+ <enum value="0x881C" name="GL_ALPHA_FLOAT16_ATI"/>
+ <enum value="0x881D" name="GL_INTENSITY16F_ARB"/>
+ <enum value="0x881D" name="GL_INTENSITY_FLOAT16_APPLE"/>
+ <enum value="0x881D" name="GL_INTENSITY_FLOAT16_ATI"/>
+ <enum value="0x881E" name="GL_LUMINANCE16F_ARB"/>
+ <enum value="0x881E" name="GL_LUMINANCE16F_EXT"/>
+ <enum value="0x881E" name="GL_LUMINANCE_FLOAT16_APPLE"/>
+ <enum value="0x881E" name="GL_LUMINANCE_FLOAT16_ATI"/>
+ <enum value="0x881F" name="GL_LUMINANCE_ALPHA16F_ARB"/>
+ <enum value="0x881F" name="GL_LUMINANCE_ALPHA16F_EXT"/>
+ <enum value="0x881F" name="GL_LUMINANCE_ALPHA_FLOAT16_APPLE"/>
+ <enum value="0x881F" name="GL_LUMINANCE_ALPHA_FLOAT16_ATI"/>
+ <!-- RGBA_FLOAT_MODE_ARB equivalent to TYPE_RGBA_FLOAT_ATI -->
+ <enum value="0x8820" name="GL_RGBA_FLOAT_MODE_ARB"/>
+ <enum value="0x8820" name="GL_RGBA_FLOAT_MODE_ATI"/>
+ <unused start="0x8821" end="0x8822"/>
+ <enum value="0x8823" name="GL_WRITEONLY_RENDERING_QCOM"/>
+ <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS"/>
+ <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS_ARB"/>
+ <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS_ATI"/>
+ <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS_EXT"/>
+ <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS_NV"/>
+ <enum value="0x8825" name="GL_DRAW_BUFFER0"/>
+ <enum value="0x8825" name="GL_DRAW_BUFFER0_ARB"/>
+ <enum value="0x8825" name="GL_DRAW_BUFFER0_ATI"/>
+ <enum value="0x8825" name="GL_DRAW_BUFFER0_EXT"/>
+ <enum value="0x8825" name="GL_DRAW_BUFFER0_NV"/>
+ <enum value="0x8826" name="GL_DRAW_BUFFER1"/>
+ <enum value="0x8826" name="GL_DRAW_BUFFER1_ARB"/>
+ <enum value="0x8826" name="GL_DRAW_BUFFER1_ATI"/>
+ <enum value="0x8826" name="GL_DRAW_BUFFER1_EXT"/>
+ <enum value="0x8826" name="GL_DRAW_BUFFER1_NV"/>
+ <enum value="0x8827" name="GL_DRAW_BUFFER2"/>
+ <enum value="0x8827" name="GL_DRAW_BUFFER2_ARB"/>
+ <enum value="0x8827" name="GL_DRAW_BUFFER2_ATI"/>
+ <enum value="0x8827" name="GL_DRAW_BUFFER2_EXT"/>
+ <enum value="0x8827" name="GL_DRAW_BUFFER2_NV"/>
+ <enum value="0x8828" name="GL_DRAW_BUFFER3"/>
+ <enum value="0x8828" name="GL_DRAW_BUFFER3_ARB"/>
+ <enum value="0x8828" name="GL_DRAW_BUFFER3_ATI"/>
+ <enum value="0x8828" name="GL_DRAW_BUFFER3_EXT"/>
+ <enum value="0x8828" name="GL_DRAW_BUFFER3_NV"/>
+ <enum value="0x8829" name="GL_DRAW_BUFFER4"/>
+ <enum value="0x8829" name="GL_DRAW_BUFFER4_ARB"/>
+ <enum value="0x8829" name="GL_DRAW_BUFFER4_ATI"/>
+ <enum value="0x8829" name="GL_DRAW_BUFFER4_EXT"/>
+ <enum value="0x8829" name="GL_DRAW_BUFFER4_NV"/>
+ <enum value="0x882A" name="GL_DRAW_BUFFER5"/>
+ <enum value="0x882A" name="GL_DRAW_BUFFER5_ARB"/>
+ <enum value="0x882A" name="GL_DRAW_BUFFER5_ATI"/>
+ <enum value="0x882A" name="GL_DRAW_BUFFER5_EXT"/>
+ <enum value="0x882A" name="GL_DRAW_BUFFER5_NV"/>
+ <enum value="0x882B" name="GL_DRAW_BUFFER6"/>
+ <enum value="0x882B" name="GL_DRAW_BUFFER6_ARB"/>
+ <enum value="0x882B" name="GL_DRAW_BUFFER6_ATI"/>
+ <enum value="0x882B" name="GL_DRAW_BUFFER6_EXT"/>
+ <enum value="0x882B" name="GL_DRAW_BUFFER6_NV"/>
+ <enum value="0x882C" name="GL_DRAW_BUFFER7"/>
+ <enum value="0x882C" name="GL_DRAW_BUFFER7_ARB"/>
+ <enum value="0x882C" name="GL_DRAW_BUFFER7_ATI"/>
+ <enum value="0x882C" name="GL_DRAW_BUFFER7_EXT"/>
+ <enum value="0x882C" name="GL_DRAW_BUFFER7_NV"/>
+ <enum value="0x882D" name="GL_DRAW_BUFFER8"/>
+ <enum value="0x882D" name="GL_DRAW_BUFFER8_ARB"/>
+ <enum value="0x882D" name="GL_DRAW_BUFFER8_ATI"/>
+ <enum value="0x882D" name="GL_DRAW_BUFFER8_EXT"/>
+ <enum value="0x882D" name="GL_DRAW_BUFFER8_NV"/>
+ <enum value="0x882E" name="GL_DRAW_BUFFER9"/>
+ <enum value="0x882E" name="GL_DRAW_BUFFER9_ARB"/>
+ <enum value="0x882E" name="GL_DRAW_BUFFER9_ATI"/>
+ <enum value="0x882E" name="GL_DRAW_BUFFER9_EXT"/>
+ <enum value="0x882E" name="GL_DRAW_BUFFER9_NV"/>
+ <enum value="0x882F" name="GL_DRAW_BUFFER10"/>
+ <enum value="0x882F" name="GL_DRAW_BUFFER10_ARB"/>
+ <enum value="0x882F" name="GL_DRAW_BUFFER10_ATI"/>
+ <enum value="0x882F" name="GL_DRAW_BUFFER10_EXT"/>
+ <enum value="0x882F" name="GL_DRAW_BUFFER10_NV"/>
+ <enum value="0x8830" name="GL_DRAW_BUFFER11"/>
+ <enum value="0x8830" name="GL_DRAW_BUFFER11_ARB"/>
+ <enum value="0x8830" name="GL_DRAW_BUFFER11_ATI"/>
+ <enum value="0x8830" name="GL_DRAW_BUFFER11_EXT"/>
+ <enum value="0x8830" name="GL_DRAW_BUFFER11_NV"/>
+ <enum value="0x8831" name="GL_DRAW_BUFFER12"/>
+ <enum value="0x8831" name="GL_DRAW_BUFFER12_ARB"/>
+ <enum value="0x8831" name="GL_DRAW_BUFFER12_ATI"/>
+ <enum value="0x8831" name="GL_DRAW_BUFFER12_EXT"/>
+ <enum value="0x8831" name="GL_DRAW_BUFFER12_NV"/>
+ <enum value="0x8832" name="GL_DRAW_BUFFER13"/>
+ <enum value="0x8832" name="GL_DRAW_BUFFER13_ARB"/>
+ <enum value="0x8832" name="GL_DRAW_BUFFER13_ATI"/>
+ <enum value="0x8832" name="GL_DRAW_BUFFER13_EXT"/>
+ <enum value="0x8832" name="GL_DRAW_BUFFER13_NV"/>
+ <enum value="0x8833" name="GL_DRAW_BUFFER14"/>
+ <enum value="0x8833" name="GL_DRAW_BUFFER14_ARB"/>
+ <enum value="0x8833" name="GL_DRAW_BUFFER14_ATI"/>
+ <enum value="0x8833" name="GL_DRAW_BUFFER14_EXT"/>
+ <enum value="0x8833" name="GL_DRAW_BUFFER14_NV"/>
+ <enum value="0x8834" name="GL_DRAW_BUFFER15"/>
+ <enum value="0x8834" name="GL_DRAW_BUFFER15_ARB"/>
+ <enum value="0x8834" name="GL_DRAW_BUFFER15_ATI"/>
+ <enum value="0x8834" name="GL_DRAW_BUFFER15_EXT"/>
+ <enum value="0x8834" name="GL_DRAW_BUFFER15_NV"/>
+ <enum value="0x8835" name="GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI"/>
+ <unused start="0x8836" end="0x883C"/>
+ <enum value="0x883D" name="GL_BLEND_EQUATION_ALPHA"/>
+ <enum value="0x883D" name="GL_BLEND_EQUATION_ALPHA_EXT"/>
+ <enum value="0x883D" name="GL_BLEND_EQUATION_ALPHA_OES"/>
+ <unused start="0x883E"/>
+ <enum value="0x883F" name="GL_SUBSAMPLE_DISTANCE_AMD"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8840" end="0x884F" vendor="ARB">
+ <enum value="0x8840" name="GL_MATRIX_PALETTE_ARB"/>
+ <enum value="0x8840" name="GL_MATRIX_PALETTE_OES"/>
+ <enum value="0x8841" name="GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB"/>
+ <enum value="0x8842" name="GL_MAX_PALETTE_MATRICES_ARB"/>
+ <enum value="0x8842" name="GL_MAX_PALETTE_MATRICES_OES"/>
+ <enum value="0x8843" name="GL_CURRENT_PALETTE_MATRIX_ARB"/>
+ <enum value="0x8843" name="GL_CURRENT_PALETTE_MATRIX_OES"/>
+ <enum value="0x8844" name="GL_MATRIX_INDEX_ARRAY_ARB"/>
+ <enum value="0x8844" name="GL_MATRIX_INDEX_ARRAY_OES"/>
+ <enum value="0x8845" name="GL_CURRENT_MATRIX_INDEX_ARB"/>
+ <enum value="0x8846" name="GL_MATRIX_INDEX_ARRAY_SIZE_ARB"/>
+ <enum value="0x8846" name="GL_MATRIX_INDEX_ARRAY_SIZE_OES"/>
+ <enum value="0x8847" name="GL_MATRIX_INDEX_ARRAY_TYPE_ARB"/>
+ <enum value="0x8847" name="GL_MATRIX_INDEX_ARRAY_TYPE_OES"/>
+ <enum value="0x8848" name="GL_MATRIX_INDEX_ARRAY_STRIDE_ARB"/>
+ <enum value="0x8848" name="GL_MATRIX_INDEX_ARRAY_STRIDE_OES"/>
+ <enum value="0x8849" name="GL_MATRIX_INDEX_ARRAY_POINTER_ARB"/>
+ <enum value="0x8849" name="GL_MATRIX_INDEX_ARRAY_POINTER_OES"/>
+ <enum value="0x884A" name="GL_TEXTURE_DEPTH_SIZE"/>
+ <enum value="0x884A" name="GL_TEXTURE_DEPTH_SIZE_ARB"/>
+ <enum value="0x884B" name="GL_DEPTH_TEXTURE_MODE"/>
+ <enum value="0x884B" name="GL_DEPTH_TEXTURE_MODE_ARB"/>
+ <enum value="0x884C" name="GL_TEXTURE_COMPARE_MODE"/>
+ <enum value="0x884C" name="GL_TEXTURE_COMPARE_MODE_ARB"/>
+ <enum value="0x884C" name="GL_TEXTURE_COMPARE_MODE_EXT"/>
+ <enum value="0x884D" name="GL_TEXTURE_COMPARE_FUNC"/>
+ <enum value="0x884D" name="GL_TEXTURE_COMPARE_FUNC_ARB"/>
+ <enum value="0x884D" name="GL_TEXTURE_COMPARE_FUNC_EXT"/>
+ <enum value="0x884E" name="GL_COMPARE_R_TO_TEXTURE"/>
+ <enum value="0x884E" name="GL_COMPARE_R_TO_TEXTURE_ARB"/>
+ <enum value="0x884E" name="GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT"/>
+ <enum value="0x884E" name="GL_COMPARE_REF_TO_TEXTURE" alias="GL_COMPARE_R_TO_TEXTURE"/>
+ <enum value="0x884E" name="GL_COMPARE_REF_TO_TEXTURE_EXT"/>
+ <enum value="0x884F" name="GL_TEXTURE_CUBE_MAP_SEAMLESS"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8850" end="0x891F" vendor="NV">
+ <enum value="0x8850" name="GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV"/>
+ <enum value="0x8851" name="GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV"/>
+ <enum value="0x8852" name="GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x8853" name="GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV"/>
+ <enum value="0x8854" name="GL_OFFSET_HILO_TEXTURE_2D_NV"/>
+ <enum value="0x8855" name="GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x8856" name="GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV"/>
+ <enum value="0x8857" name="GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x8858" name="GL_DEPENDENT_HILO_TEXTURE_2D_NV"/>
+ <enum value="0x8859" name="GL_DEPENDENT_RGB_TEXTURE_3D_NV"/>
+ <enum value="0x885A" name="GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV"/>
+ <enum value="0x885B" name="GL_DOT_PRODUCT_PASS_THROUGH_NV"/>
+ <enum value="0x885C" name="GL_DOT_PRODUCT_TEXTURE_1D_NV"/>
+ <enum value="0x885D" name="GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV"/>
+ <enum value="0x885E" name="GL_HILO8_NV"/>
+ <enum value="0x885F" name="GL_SIGNED_HILO8_NV"/>
+ <enum value="0x8860" name="GL_FORCE_BLUE_TO_ONE_NV"/>
+ <enum value="0x8861" name="GL_POINT_SPRITE"/>
+ <enum value="0x8861" name="GL_POINT_SPRITE_ARB"/>
+ <enum value="0x8861" name="GL_POINT_SPRITE_NV"/>
+ <enum value="0x8861" name="GL_POINT_SPRITE_OES"/>
+ <enum value="0x8862" name="GL_COORD_REPLACE"/>
+ <enum value="0x8862" name="GL_COORD_REPLACE_ARB"/>
+ <enum value="0x8862" name="GL_COORD_REPLACE_NV"/>
+ <enum value="0x8862" name="GL_COORD_REPLACE_OES"/>
+ <enum value="0x8863" name="GL_POINT_SPRITE_R_MODE_NV"/>
+ <enum value="0x8864" name="GL_PIXEL_COUNTER_BITS_NV"/>
+ <enum value="0x8864" name="GL_QUERY_COUNTER_BITS"/>
+ <enum value="0x8864" name="GL_QUERY_COUNTER_BITS_ARB"/>
+ <enum value="0x8864" name="GL_QUERY_COUNTER_BITS_EXT"/>
+ <enum value="0x8865" name="GL_CURRENT_OCCLUSION_QUERY_ID_NV"/>
+ <enum value="0x8865" name="GL_CURRENT_QUERY"/>
+ <enum value="0x8865" name="GL_CURRENT_QUERY_ARB"/>
+ <enum value="0x8865" name="GL_CURRENT_QUERY_EXT"/>
+ <enum value="0x8866" name="GL_PIXEL_COUNT_NV"/>
+ <enum value="0x8866" name="GL_QUERY_RESULT"/>
+ <enum value="0x8866" name="GL_QUERY_RESULT_ARB"/>
+ <enum value="0x8866" name="GL_QUERY_RESULT_EXT"/>
+ <enum value="0x8867" name="GL_PIXEL_COUNT_AVAILABLE_NV"/>
+ <enum value="0x8867" name="GL_QUERY_RESULT_AVAILABLE"/>
+ <enum value="0x8867" name="GL_QUERY_RESULT_AVAILABLE_ARB"/>
+ <enum value="0x8867" name="GL_QUERY_RESULT_AVAILABLE_EXT"/>
+ <enum value="0x8868" name="GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV"/>
+ <enum value="0x8869" name="GL_MAX_VERTEX_ATTRIBS"/>
+ <enum value="0x8869" name="GL_MAX_VERTEX_ATTRIBS_ARB"/>
+ <enum value="0x886A" name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED"/>
+ <enum value="0x886A" name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB"/>
+ <unused start="0x886B"/>
+ <enum value="0x886C" name="GL_MAX_TESS_CONTROL_INPUT_COMPONENTS"/>
+ <enum value="0x886D" name="GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS"/>
+ <enum value="0x886E" name="GL_DEPTH_STENCIL_TO_RGBA_NV"/>
+ <enum value="0x886F" name="GL_DEPTH_STENCIL_TO_BGRA_NV"/>
+ <enum value="0x8870" name="GL_FRAGMENT_PROGRAM_NV"/>
+ <enum value="0x8871" name="GL_MAX_TEXTURE_COORDS"/>
+ <enum value="0x8871" name="GL_MAX_TEXTURE_COORDS_ARB"/>
+ <enum value="0x8871" name="GL_MAX_TEXTURE_COORDS_NV"/>
+ <enum value="0x8872" name="GL_MAX_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x8872" name="GL_MAX_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum value="0x8872" name="GL_MAX_TEXTURE_IMAGE_UNITS_NV"/>
+ <enum value="0x8873" name="GL_FRAGMENT_PROGRAM_BINDING_NV"/>
+ <enum value="0x8874" name="GL_PROGRAM_ERROR_STRING_ARB"/>
+ <enum value="0x8874" name="GL_PROGRAM_ERROR_STRING_NV"/>
+ <enum value="0x8875" name="GL_PROGRAM_FORMAT_ASCII_ARB"/>
+ <enum value="0x8876" name="GL_PROGRAM_FORMAT_ARB"/>
+ <unused start="0x8877" comment="Should have been assigned to PROGRAM_BINDING_ARB"/>
+ <enum value="0x8878" name="GL_WRITE_PIXEL_DATA_RANGE_NV"/>
+ <enum value="0x8879" name="GL_READ_PIXEL_DATA_RANGE_NV"/>
+ <enum value="0x887A" name="GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV"/>
+ <enum value="0x887B" name="GL_READ_PIXEL_DATA_RANGE_LENGTH_NV"/>
+ <enum value="0x887C" name="GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV"/>
+ <enum value="0x887D" name="GL_READ_PIXEL_DATA_RANGE_POINTER_NV"/>
+ <unused start="0x887E"/>
+ <enum value="0x887F" name="GL_GEOMETRY_SHADER_INVOCATIONS"/>
+ <enum value="0x8880" name="GL_FLOAT_R_NV"/>
+ <enum value="0x8881" name="GL_FLOAT_RG_NV"/>
+ <enum value="0x8882" name="GL_FLOAT_RGB_NV"/>
+ <enum value="0x8883" name="GL_FLOAT_RGBA_NV"/>
+ <enum value="0x8884" name="GL_FLOAT_R16_NV"/>
+ <enum value="0x8885" name="GL_FLOAT_R32_NV"/>
+ <enum value="0x8886" name="GL_FLOAT_RG16_NV"/>
+ <enum value="0x8887" name="GL_FLOAT_RG32_NV"/>
+ <enum value="0x8888" name="GL_FLOAT_RGB16_NV"/>
+ <enum value="0x8889" name="GL_FLOAT_RGB32_NV"/>
+ <enum value="0x888A" name="GL_FLOAT_RGBA16_NV"/>
+ <enum value="0x888B" name="GL_FLOAT_RGBA32_NV"/>
+ <enum value="0x888C" name="GL_TEXTURE_FLOAT_COMPONENTS_NV"/>
+ <enum value="0x888D" name="GL_FLOAT_CLEAR_COLOR_VALUE_NV"/>
+ <enum value="0x888E" name="GL_FLOAT_RGBA_MODE_NV"/>
+ <enum value="0x888F" name="GL_TEXTURE_UNSIGNED_REMAP_MODE_NV"/>
+ <enum value="0x8890" name="GL_DEPTH_BOUNDS_TEST_EXT"/>
+ <enum value="0x8891" name="GL_DEPTH_BOUNDS_EXT"/>
+ <enum value="0x8892" name="GL_ARRAY_BUFFER"/>
+ <enum value="0x8892" name="GL_ARRAY_BUFFER_ARB"/>
+ <enum value="0x8893" name="GL_ELEMENT_ARRAY_BUFFER"/>
+ <enum value="0x8893" name="GL_ELEMENT_ARRAY_BUFFER_ARB"/>
+ <enum value="0x8894" name="GL_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x8894" name="GL_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x8895" name="GL_ELEMENT_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x8895" name="GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x8896" name="GL_VERTEX_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x8896" name="GL_VERTEX_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x8897" name="GL_NORMAL_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x8897" name="GL_NORMAL_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x8898" name="GL_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x8898" name="GL_COLOR_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x8899" name="GL_INDEX_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x8899" name="GL_INDEX_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x889A" name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889A" name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x889B" name="GL_EDGE_FLAG_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889B" name="GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x889C" name="GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889C" name="GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x889D" name="GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x889D" name="GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889D" name="GL_FOG_COORD_ARRAY_BUFFER_BINDING" alias="GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889E" name="GL_WEIGHT_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889E" name="GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x889E" name="GL_WEIGHT_ARRAY_BUFFER_BINDING_OES"/>
+ <enum value="0x889F" name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889F" name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x88A0" name="GL_PROGRAM_INSTRUCTIONS_ARB"/>
+ <enum value="0x88A1" name="GL_MAX_PROGRAM_INSTRUCTIONS_ARB"/>
+ <enum value="0x88A2" name="GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB"/>
+ <enum value="0x88A3" name="GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB"/>
+ <enum value="0x88A4" name="GL_PROGRAM_TEMPORARIES_ARB"/>
+ <enum value="0x88A5" name="GL_MAX_PROGRAM_TEMPORARIES_ARB"/>
+ <enum value="0x88A6" name="GL_PROGRAM_NATIVE_TEMPORARIES_ARB"/>
+ <enum value="0x88A7" name="GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB"/>
+ <enum value="0x88A8" name="GL_PROGRAM_PARAMETERS_ARB"/>
+ <enum value="0x88A9" name="GL_MAX_PROGRAM_PARAMETERS_ARB"/>
+ <enum value="0x88AA" name="GL_PROGRAM_NATIVE_PARAMETERS_ARB"/>
+ <enum value="0x88AB" name="GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB"/>
+ <enum value="0x88AC" name="GL_PROGRAM_ATTRIBS_ARB"/>
+ <enum value="0x88AD" name="GL_MAX_PROGRAM_ATTRIBS_ARB"/>
+ <enum value="0x88AE" name="GL_PROGRAM_NATIVE_ATTRIBS_ARB"/>
+ <enum value="0x88AF" name="GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB"/>
+ <enum value="0x88B0" name="GL_PROGRAM_ADDRESS_REGISTERS_ARB"/>
+ <enum value="0x88B1" name="GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB"/>
+ <enum value="0x88B2" name="GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB"/>
+ <enum value="0x88B3" name="GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB"/>
+ <enum value="0x88B4" name="GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB"/>
+ <enum value="0x88B5" name="GL_MAX_PROGRAM_ENV_PARAMETERS_ARB"/>
+ <enum value="0x88B6" name="GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB"/>
+ <enum value="0x88B7" name="GL_TRANSPOSE_CURRENT_MATRIX_ARB"/>
+ <enum value="0x88B8" name="GL_READ_ONLY"/>
+ <enum value="0x88B8" name="GL_READ_ONLY_ARB"/>
+ <enum value="0x88B9" name="GL_WRITE_ONLY"/>
+ <enum value="0x88B9" name="GL_WRITE_ONLY_ARB"/>
+ <enum value="0x88B9" name="GL_WRITE_ONLY_OES"/>
+ <enum value="0x88BA" name="GL_READ_WRITE"/>
+ <enum value="0x88BA" name="GL_READ_WRITE_ARB"/>
+ <enum value="0x88BB" name="GL_BUFFER_ACCESS"/>
+ <enum value="0x88BB" name="GL_BUFFER_ACCESS_ARB"/>
+ <enum value="0x88BB" name="GL_BUFFER_ACCESS_OES"/>
+ <enum value="0x88BC" name="GL_BUFFER_MAPPED"/>
+ <enum value="0x88BC" name="GL_BUFFER_MAPPED_ARB"/>
+ <enum value="0x88BC" name="GL_BUFFER_MAPPED_OES"/>
+ <enum value="0x88BD" name="GL_BUFFER_MAP_POINTER"/>
+ <enum value="0x88BD" name="GL_BUFFER_MAP_POINTER_ARB"/>
+ <enum value="0x88BD" name="GL_BUFFER_MAP_POINTER_OES"/>
+ <enum value="0x88BE" name="GL_WRITE_DISCARD_NV"/>
+ <enum value="0x88BF" name="GL_TIME_ELAPSED"/>
+ <enum value="0x88BF" name="GL_TIME_ELAPSED_EXT"/>
+ <enum value="0x88C0" name="GL_MATRIX0_ARB"/>
+ <enum value="0x88C1" name="GL_MATRIX1_ARB"/>
+ <enum value="0x88C2" name="GL_MATRIX2_ARB"/>
+ <enum value="0x88C3" name="GL_MATRIX3_ARB"/>
+ <enum value="0x88C4" name="GL_MATRIX4_ARB"/>
+ <enum value="0x88C5" name="GL_MATRIX5_ARB"/>
+ <enum value="0x88C6" name="GL_MATRIX6_ARB"/>
+ <enum value="0x88C7" name="GL_MATRIX7_ARB"/>
+ <enum value="0x88C8" name="GL_MATRIX8_ARB"/>
+ <enum value="0x88C9" name="GL_MATRIX9_ARB"/>
+ <enum value="0x88CA" name="GL_MATRIX10_ARB"/>
+ <enum value="0x88CB" name="GL_MATRIX11_ARB"/>
+ <enum value="0x88CC" name="GL_MATRIX12_ARB"/>
+ <enum value="0x88CD" name="GL_MATRIX13_ARB"/>
+ <enum value="0x88CE" name="GL_MATRIX14_ARB"/>
+ <enum value="0x88CF" name="GL_MATRIX15_ARB"/>
+ <enum value="0x88D0" name="GL_MATRIX16_ARB"/>
+ <enum value="0x88D1" name="GL_MATRIX17_ARB"/>
+ <enum value="0x88D2" name="GL_MATRIX18_ARB"/>
+ <enum value="0x88D3" name="GL_MATRIX19_ARB"/>
+ <enum value="0x88D4" name="GL_MATRIX20_ARB"/>
+ <enum value="0x88D5" name="GL_MATRIX21_ARB"/>
+ <enum value="0x88D6" name="GL_MATRIX22_ARB"/>
+ <enum value="0x88D7" name="GL_MATRIX23_ARB"/>
+ <enum value="0x88D8" name="GL_MATRIX24_ARB"/>
+ <enum value="0x88D9" name="GL_MATRIX25_ARB"/>
+ <enum value="0x88DA" name="GL_MATRIX26_ARB"/>
+ <enum value="0x88DB" name="GL_MATRIX27_ARB"/>
+ <enum value="0x88DC" name="GL_MATRIX28_ARB"/>
+ <enum value="0x88DD" name="GL_MATRIX29_ARB"/>
+ <enum value="0x88DE" name="GL_MATRIX30_ARB"/>
+ <enum value="0x88DF" name="GL_MATRIX31_ARB"/>
+ <enum value="0x88E0" name="GL_STREAM_DRAW"/>
+ <enum value="0x88E0" name="GL_STREAM_DRAW_ARB"/>
+ <enum value="0x88E1" name="GL_STREAM_READ"/>
+ <enum value="0x88E1" name="GL_STREAM_READ_ARB"/>
+ <enum value="0x88E2" name="GL_STREAM_COPY"/>
+ <enum value="0x88E2" name="GL_STREAM_COPY_ARB"/>
+ <unused start="0x88E3" comment="To extend ARB_vbo"/>
+ <enum value="0x88E4" name="GL_STATIC_DRAW"/>
+ <enum value="0x88E4" name="GL_STATIC_DRAW_ARB"/>
+ <enum value="0x88E5" name="GL_STATIC_READ"/>
+ <enum value="0x88E5" name="GL_STATIC_READ_ARB"/>
+ <enum value="0x88E6" name="GL_STATIC_COPY"/>
+ <enum value="0x88E6" name="GL_STATIC_COPY_ARB"/>
+ <unused start="0x88E7" comment="To extend ARB_vbo"/>
+ <enum value="0x88E8" name="GL_DYNAMIC_DRAW"/>
+ <enum value="0x88E8" name="GL_DYNAMIC_DRAW_ARB"/>
+ <enum value="0x88E9" name="GL_DYNAMIC_READ"/>
+ <enum value="0x88E9" name="GL_DYNAMIC_READ_ARB"/>
+ <enum value="0x88EA" name="GL_DYNAMIC_COPY"/>
+ <enum value="0x88EA" name="GL_DYNAMIC_COPY_ARB"/>
+ <enum value="0x88EB" name="GL_PIXEL_PACK_BUFFER"/>
+ <enum value="0x88EB" name="GL_PIXEL_PACK_BUFFER_ARB"/>
+ <enum value="0x88EB" name="GL_PIXEL_PACK_BUFFER_EXT"/>
+ <enum value="0x88EC" name="GL_PIXEL_UNPACK_BUFFER"/>
+ <enum value="0x88EC" name="GL_PIXEL_UNPACK_BUFFER_ARB"/>
+ <enum value="0x88EC" name="GL_PIXEL_UNPACK_BUFFER_EXT"/>
+ <enum value="0x88ED" name="GL_PIXEL_PACK_BUFFER_BINDING"/>
+ <enum value="0x88ED" name="GL_PIXEL_PACK_BUFFER_BINDING_ARB"/>
+ <enum value="0x88ED" name="GL_PIXEL_PACK_BUFFER_BINDING_EXT"/>
+ <enum value="0x88EE" name="GL_ETC1_SRGB8_NV"/>
+ <enum value="0x88EF" name="GL_PIXEL_UNPACK_BUFFER_BINDING"/>
+ <enum value="0x88EF" name="GL_PIXEL_UNPACK_BUFFER_BINDING_ARB"/>
+ <enum value="0x88EF" name="GL_PIXEL_UNPACK_BUFFER_BINDING_EXT"/>
+ <enum value="0x88F0" name="GL_DEPTH24_STENCIL8"/>
+ <enum value="0x88F0" name="GL_DEPTH24_STENCIL8_EXT"/>
+ <enum value="0x88F0" name="GL_DEPTH24_STENCIL8_OES"/>
+ <enum value="0x88F1" name="GL_TEXTURE_STENCIL_SIZE"/>
+ <enum value="0x88F1" name="GL_TEXTURE_STENCIL_SIZE_EXT"/>
+ <enum value="0x88F2" name="GL_STENCIL_TAG_BITS_EXT"/>
+ <enum value="0x88F3" name="GL_STENCIL_CLEAR_TAG_VALUE_EXT"/>
+ <enum value="0x88F4" name="GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV"/>
+ <enum value="0x88F5" name="GL_MAX_PROGRAM_CALL_DEPTH_NV"/>
+ <enum value="0x88F6" name="GL_MAX_PROGRAM_IF_DEPTH_NV"/>
+ <enum value="0x88F7" name="GL_MAX_PROGRAM_LOOP_DEPTH_NV"/>
+ <enum value="0x88F8" name="GL_MAX_PROGRAM_LOOP_COUNT_NV"/>
+ <enum value="0x88F9" name="GL_SRC1_COLOR"/>
+ <enum value="0x88FA" name="GL_ONE_MINUS_SRC1_COLOR"/>
+ <enum value="0x88FB" name="GL_ONE_MINUS_SRC1_ALPHA"/>
+ <enum value="0x88FC" name="GL_MAX_DUAL_SOURCE_DRAW_BUFFERS"/>
+ <enum value="0x88FD" name="GL_VERTEX_ATTRIB_ARRAY_INTEGER"/>
+ <enum value="0x88FD" name="GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT"/>
+ <enum value="0x88FD" name="GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV"/>
+ <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR"/>
+ <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE"/>
+ <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB"/>
+ <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT"/>
+ <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV"/>
+ <enum value="0x88FF" name="GL_MAX_ARRAY_TEXTURE_LAYERS"/>
+ <enum value="0x88FF" name="GL_MAX_ARRAY_TEXTURE_LAYERS_EXT"/>
+ <enum value="0x8904" name="GL_MIN_PROGRAM_TEXEL_OFFSET"/>
+ <enum value="0x8904" name="GL_MIN_PROGRAM_TEXEL_OFFSET_EXT"/>
+ <enum value="0x8904" name="GL_MIN_PROGRAM_TEXEL_OFFSET_NV"/>
+ <enum value="0x8905" name="GL_MAX_PROGRAM_TEXEL_OFFSET"/>
+ <enum value="0x8905" name="GL_MAX_PROGRAM_TEXEL_OFFSET_EXT"/>
+ <enum value="0x8905" name="GL_MAX_PROGRAM_TEXEL_OFFSET_NV"/>
+ <enum value="0x8906" name="GL_PROGRAM_ATTRIB_COMPONENTS_NV"/>
+ <enum value="0x8907" name="GL_PROGRAM_RESULT_COMPONENTS_NV"/>
+ <enum value="0x8908" name="GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV"/>
+ <enum value="0x8909" name="GL_MAX_PROGRAM_RESULT_COMPONENTS_NV"/>
+ <enum value="0x8910" name="GL_STENCIL_TEST_TWO_SIDE_EXT"/>
+ <enum value="0x8911" name="GL_ACTIVE_STENCIL_FACE_EXT"/>
+ <enum value="0x8912" name="GL_MIRROR_CLAMP_TO_BORDER_EXT"/>
+ <unused start="0x8913"/>
+ <enum value="0x8914" name="GL_SAMPLES_PASSED"/>
+ <enum value="0x8914" name="GL_SAMPLES_PASSED_ARB"/>
+ <unused start="0x8915"/>
+ <enum value="0x8916" name="GL_GEOMETRY_VERTICES_OUT"/>
+ <enum value="0x8917" name="GL_GEOMETRY_INPUT_TYPE"/>
+ <enum value="0x8918" name="GL_GEOMETRY_OUTPUT_TYPE"/>
+ <enum value="0x8919" name="GL_SAMPLER_BINDING"/>
+ <enum value="0x891A" name="GL_CLAMP_VERTEX_COLOR"/>
+ <enum value="0x891A" name="GL_CLAMP_VERTEX_COLOR_ARB"/>
+ <enum value="0x891B" name="GL_CLAMP_FRAGMENT_COLOR"/>
+ <enum value="0x891B" name="GL_CLAMP_FRAGMENT_COLOR_ARB"/>
+ <enum value="0x891C" name="GL_CLAMP_READ_COLOR"/>
+ <enum value="0x891C" name="GL_CLAMP_READ_COLOR_ARB"/>
+ <enum value="0x891D" name="GL_FIXED_ONLY"/>
+ <enum value="0x891D" name="GL_FIXED_ONLY_ARB"/>
+ <enum value="0x891E" name="GL_TESS_CONTROL_PROGRAM_NV"/>
+ <enum value="0x891F" name="GL_TESS_EVALUATION_PROGRAM_NV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8920" end="0x897F" vendor="AMD">
+ <enum value="0x8920" name="GL_FRAGMENT_SHADER_ATI"/>
+ <enum value="0x8921" name="GL_REG_0_ATI"/>
+ <enum value="0x8922" name="GL_REG_1_ATI"/>
+ <enum value="0x8923" name="GL_REG_2_ATI"/>
+ <enum value="0x8924" name="GL_REG_3_ATI"/>
+ <enum value="0x8925" name="GL_REG_4_ATI"/>
+ <enum value="0x8926" name="GL_REG_5_ATI"/>
+ <enum value="0x8927" name="GL_REG_6_ATI"/>
+ <enum value="0x8928" name="GL_REG_7_ATI"/>
+ <enum value="0x8929" name="GL_REG_8_ATI"/>
+ <enum value="0x892A" name="GL_REG_9_ATI"/>
+ <enum value="0x892B" name="GL_REG_10_ATI"/>
+ <enum value="0x892C" name="GL_REG_11_ATI"/>
+ <enum value="0x892D" name="GL_REG_12_ATI"/>
+ <enum value="0x892E" name="GL_REG_13_ATI"/>
+ <enum value="0x892F" name="GL_REG_14_ATI"/>
+ <enum value="0x8930" name="GL_REG_15_ATI"/>
+ <enum value="0x8931" name="GL_REG_16_ATI"/>
+ <enum value="0x8932" name="GL_REG_17_ATI"/>
+ <enum value="0x8933" name="GL_REG_18_ATI"/>
+ <enum value="0x8934" name="GL_REG_19_ATI"/>
+ <enum value="0x8935" name="GL_REG_20_ATI"/>
+ <enum value="0x8936" name="GL_REG_21_ATI"/>
+ <enum value="0x8937" name="GL_REG_22_ATI"/>
+ <enum value="0x8938" name="GL_REG_23_ATI"/>
+ <enum value="0x8939" name="GL_REG_24_ATI"/>
+ <enum value="0x893A" name="GL_REG_25_ATI"/>
+ <enum value="0x893B" name="GL_REG_26_ATI"/>
+ <enum value="0x893C" name="GL_REG_27_ATI"/>
+ <enum value="0x893D" name="GL_REG_28_ATI"/>
+ <enum value="0x893E" name="GL_REG_29_ATI"/>
+ <enum value="0x893F" name="GL_REG_30_ATI"/>
+ <enum value="0x8940" name="GL_REG_31_ATI"/>
+ <enum value="0x8941" name="GL_CON_0_ATI"/>
+ <enum value="0x8942" name="GL_CON_1_ATI"/>
+ <enum value="0x8943" name="GL_CON_2_ATI"/>
+ <enum value="0x8944" name="GL_CON_3_ATI"/>
+ <enum value="0x8945" name="GL_CON_4_ATI"/>
+ <enum value="0x8946" name="GL_CON_5_ATI"/>
+ <enum value="0x8947" name="GL_CON_6_ATI"/>
+ <enum value="0x8948" name="GL_CON_7_ATI"/>
+ <enum value="0x8949" name="GL_CON_8_ATI"/>
+ <enum value="0x894A" name="GL_CON_9_ATI"/>
+ <enum value="0x894B" name="GL_CON_10_ATI"/>
+ <enum value="0x894C" name="GL_CON_11_ATI"/>
+ <enum value="0x894D" name="GL_CON_12_ATI"/>
+ <enum value="0x894E" name="GL_CON_13_ATI"/>
+ <enum value="0x894F" name="GL_CON_14_ATI"/>
+ <enum value="0x8950" name="GL_CON_15_ATI"/>
+ <enum value="0x8951" name="GL_CON_16_ATI"/>
+ <enum value="0x8952" name="GL_CON_17_ATI"/>
+ <enum value="0x8953" name="GL_CON_18_ATI"/>
+ <enum value="0x8954" name="GL_CON_19_ATI"/>
+ <enum value="0x8955" name="GL_CON_20_ATI"/>
+ <enum value="0x8956" name="GL_CON_21_ATI"/>
+ <enum value="0x8957" name="GL_CON_22_ATI"/>
+ <enum value="0x8958" name="GL_CON_23_ATI"/>
+ <enum value="0x8959" name="GL_CON_24_ATI"/>
+ <enum value="0x895A" name="GL_CON_25_ATI"/>
+ <enum value="0x895B" name="GL_CON_26_ATI"/>
+ <enum value="0x895C" name="GL_CON_27_ATI"/>
+ <enum value="0x895D" name="GL_CON_28_ATI"/>
+ <enum value="0x895E" name="GL_CON_29_ATI"/>
+ <enum value="0x895F" name="GL_CON_30_ATI"/>
+ <enum value="0x8960" name="GL_CON_31_ATI"/>
+ <enum value="0x8961" name="GL_MOV_ATI"/>
+ <enum value="0x8963" name="GL_ADD_ATI"/>
+ <enum value="0x8964" name="GL_MUL_ATI"/>
+ <enum value="0x8965" name="GL_SUB_ATI"/>
+ <enum value="0x8966" name="GL_DOT3_ATI"/>
+ <enum value="0x8967" name="GL_DOT4_ATI"/>
+ <enum value="0x8968" name="GL_MAD_ATI"/>
+ <enum value="0x8969" name="GL_LERP_ATI"/>
+ <enum value="0x896A" name="GL_CND_ATI"/>
+ <enum value="0x896B" name="GL_CND0_ATI"/>
+ <enum value="0x896C" name="GL_DOT2_ADD_ATI"/>
+ <enum value="0x896D" name="GL_SECONDARY_INTERPOLATOR_ATI"/>
+ <enum value="0x896E" name="GL_NUM_FRAGMENT_REGISTERS_ATI"/>
+ <enum value="0x896F" name="GL_NUM_FRAGMENT_CONSTANTS_ATI"/>
+ <enum value="0x8970" name="GL_NUM_PASSES_ATI"/>
+ <enum value="0x8971" name="GL_NUM_INSTRUCTIONS_PER_PASS_ATI"/>
+ <enum value="0x8972" name="GL_NUM_INSTRUCTIONS_TOTAL_ATI"/>
+ <enum value="0x8973" name="GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI"/>
+ <enum value="0x8974" name="GL_NUM_LOOPBACK_COMPONENTS_ATI"/>
+ <enum value="0x8975" name="GL_COLOR_ALPHA_PAIRING_ATI"/>
+ <enum value="0x8976" name="GL_SWIZZLE_STR_ATI"/>
+ <enum value="0x8977" name="GL_SWIZZLE_STQ_ATI"/>
+ <enum value="0x8978" name="GL_SWIZZLE_STR_DR_ATI"/>
+ <enum value="0x8979" name="GL_SWIZZLE_STQ_DQ_ATI"/>
+ <enum value="0x897A" name="GL_SWIZZLE_STRQ_ATI"/>
+ <enum value="0x897B" name="GL_SWIZZLE_STRQ_DQ_ATI"/>
+ <unused start="0x897C" end="0x897F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8980" end="0x898F" vendor="OML">
+ <enum value="0x8980" name="GL_INTERLACE_OML"/>
+ <enum value="0x8981" name="GL_INTERLACE_READ_OML"/>
+ <enum value="0x8982" name="GL_FORMAT_SUBSAMPLE_24_24_OML"/>
+ <enum value="0x8983" name="GL_FORMAT_SUBSAMPLE_244_244_OML"/>
+ <enum value="0x8984" name="GL_PACK_RESAMPLE_OML"/>
+ <enum value="0x8985" name="GL_UNPACK_RESAMPLE_OML"/>
+ <enum value="0x8986" name="GL_RESAMPLE_REPLICATE_OML"/>
+ <enum value="0x8987" name="GL_RESAMPLE_ZERO_FILL_OML"/>
+ <enum value="0x8988" name="GL_RESAMPLE_AVERAGE_OML"/>
+ <enum value="0x8989" name="GL_RESAMPLE_DECIMATE_OML"/>
+ <enum value="0x898A" name="GL_POINT_SIZE_ARRAY_TYPE_OES"/>
+ <enum value="0x898B" name="GL_POINT_SIZE_ARRAY_STRIDE_OES"/>
+ <enum value="0x898C" name="GL_POINT_SIZE_ARRAY_POINTER_OES"/>
+ <enum value="0x898D" name="GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES"/>
+ <enum value="0x898E" name="GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES"/>
+ <enum value="0x898F" name="GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8990" end="0x899F" vendor="ZiiLabs"/>
+
+ <enums namespace="GL" start="0x89A0" end="0x89FF" vendor="Matrox"/>
+
+ <enums namespace="GL" start="0x8A00" end="0x8A7F" vendor="APPLE">
+ <enum value="0x8A00" name="GL_VERTEX_ATTRIB_MAP1_APPLE"/>
+ <enum value="0x8A01" name="GL_VERTEX_ATTRIB_MAP2_APPLE"/>
+ <enum value="0x8A02" name="GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE"/>
+ <enum value="0x8A03" name="GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE"/>
+ <enum value="0x8A04" name="GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE"/>
+ <enum value="0x8A05" name="GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE"/>
+ <enum value="0x8A06" name="GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE"/>
+ <enum value="0x8A07" name="GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE"/>
+ <enum value="0x8A08" name="GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE"/>
+ <enum value="0x8A09" name="GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE"/>
+ <enum value="0x8A0A" name="GL_DRAW_PIXELS_APPLE"/>
+ <enum value="0x8A0B" name="GL_FENCE_APPLE"/>
+ <enum value="0x8A0C" name="GL_ELEMENT_ARRAY_APPLE"/>
+ <enum value="0x8A0D" name="GL_ELEMENT_ARRAY_TYPE_APPLE"/>
+ <enum value="0x8A0E" name="GL_ELEMENT_ARRAY_POINTER_APPLE"/>
+ <enum value="0x8A0F" name="GL_COLOR_FLOAT_APPLE"/>
+ <unused start="0x8A10" comment="Unknown extension (Khronos bug 632)"/>
+ <!-- <enum value="0x8A10" name="GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE"/> -->
+ <enum value="0x8A11" name="GL_UNIFORM_BUFFER"/>
+ <enum value="0x8A12" name="GL_BUFFER_SERIALIZED_MODIFY_APPLE"/>
+ <enum value="0x8A13" name="GL_BUFFER_FLUSHING_UNMAP_APPLE"/>
+ <enum value="0x8A14" name="GL_AUX_DEPTH_STENCIL_APPLE"/>
+ <enum value="0x8A15" name="GL_PACK_ROW_BYTES_APPLE"/>
+ <enum value="0x8A16" name="GL_UNPACK_ROW_BYTES_APPLE"/>
+ <unused start="0x8A17" end="0x8A18"/>
+ <enum value="0x8A19" name="GL_RELEASED_APPLE"/>
+ <enum value="0x8A1A" name="GL_VOLATILE_APPLE"/>
+ <enum value="0x8A1B" name="GL_RETAINED_APPLE"/>
+ <enum value="0x8A1C" name="GL_UNDEFINED_APPLE"/>
+ <enum value="0x8A1D" name="GL_PURGEABLE_APPLE"/>
+ <unused start="0x8A1E"/>
+ <enum value="0x8A1F" name="GL_RGB_422_APPLE"/>
+ <unused start="0x8A20" end="0x8A27"/>
+ <enum value="0x8A28" name="GL_UNIFORM_BUFFER_BINDING"/>
+ <enum value="0x8A29" name="GL_UNIFORM_BUFFER_START"/>
+ <enum value="0x8A2A" name="GL_UNIFORM_BUFFER_SIZE"/>
+ <enum value="0x8A2B" name="GL_MAX_VERTEX_UNIFORM_BLOCKS"/>
+ <enum value="0x8A2C" name="GL_MAX_GEOMETRY_UNIFORM_BLOCKS"/>
+ <enum value="0x8A2D" name="GL_MAX_FRAGMENT_UNIFORM_BLOCKS"/>
+ <enum value="0x8A2E" name="GL_MAX_COMBINED_UNIFORM_BLOCKS"/>
+ <enum value="0x8A2F" name="GL_MAX_UNIFORM_BUFFER_BINDINGS"/>
+ <enum value="0x8A30" name="GL_MAX_UNIFORM_BLOCK_SIZE"/>
+ <enum value="0x8A31" name="GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum value="0x8A32" name="GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS"/>
+ <enum value="0x8A33" name="GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum value="0x8A34" name="GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum value="0x8A35" name="GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH"/>
+ <enum value="0x8A36" name="GL_ACTIVE_UNIFORM_BLOCKS"/>
+ <enum value="0x8A37" name="GL_UNIFORM_TYPE"/>
+ <enum value="0x8A38" name="GL_UNIFORM_SIZE"/>
+ <enum value="0x8A39" name="GL_UNIFORM_NAME_LENGTH"/>
+ <enum value="0x8A3A" name="GL_UNIFORM_BLOCK_INDEX"/>
+ <enum value="0x8A3B" name="GL_UNIFORM_OFFSET"/>
+ <enum value="0x8A3C" name="GL_UNIFORM_ARRAY_STRIDE"/>
+ <enum value="0x8A3D" name="GL_UNIFORM_MATRIX_STRIDE"/>
+ <enum value="0x8A3E" name="GL_UNIFORM_IS_ROW_MAJOR"/>
+ <enum value="0x8A3F" name="GL_UNIFORM_BLOCK_BINDING"/>
+ <enum value="0x8A40" name="GL_UNIFORM_BLOCK_DATA_SIZE"/>
+ <enum value="0x8A41" name="GL_UNIFORM_BLOCK_NAME_LENGTH"/>
+ <enum value="0x8A42" name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS"/>
+ <enum value="0x8A43" name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES"/>
+ <enum value="0x8A44" name="GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum value="0x8A45" name="GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum value="0x8A46" name="GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <unused start="0x8A47"/>
+ <enum value="0x8A48" name="GL_TEXTURE_SRGB_DECODE_EXT"/>
+ <enum value="0x8A49" name="GL_DECODE_EXT"/>
+ <enum value="0x8A4A" name="GL_SKIP_DECODE_EXT"/>
+ <unused start="0x8A4B" end="0x8A4E"/>
+ <enum value="0x8A4F" name="GL_PROGRAM_PIPELINE_OBJECT_EXT"/>
+ <unused start="0x8A50"/>
+ <enum value="0x8A51" name="GL_RGB_RAW_422_APPLE"/>
+ <enum value="0x8A52" name="GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT"/>
+ <enum value="0x8A53" name="GL_SYNC_OBJECT_APPLE"/>
+ <enum value="0x8A54" name="GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT"/>
+ <enum value="0x8A55" name="GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT"/>
+ <enum value="0x8A56" name="GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT"/>
+ <enum value="0x8A57" name="GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT"/>
+ <unused start="0x8A58" end="0x8A7F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8A80" end="0x8AEF" vendor="Matrox"/>
+
+ <enums namespace="GL" start="0x8AF0" end="0x8B2F" vendor="Chromium" comment="For Brian Paul"/>
+
+ <enums namespace="GL" start="0x8B30" end="0x8B3F" group="ShaderType" vendor="ARB">
+ <enum value="0x8B30" name="GL_FRAGMENT_SHADER"/>
+ <enum value="0x8B30" name="GL_FRAGMENT_SHADER_ARB"/>
+ <enum value="0x8B31" name="GL_VERTEX_SHADER"/>
+ <enum value="0x8B31" name="GL_VERTEX_SHADER_ARB"/>
+ <unused start="0x8B32" end="0x8B3F" comment="For shader types"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8B40" end="0x8B47" group="ContainerType" vendor="ARB">
+ <enum value="0x8B40" name="GL_PROGRAM_OBJECT_ARB"/>
+ <enum value="0x8B40" name="GL_PROGRAM_OBJECT_EXT"/>
+ <unused start="0x8B41" end="0x8B47" comment="For container types"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8B48" end="0x8B4F" vendor="ARB">
+ <enum value="0x8B48" name="GL_SHADER_OBJECT_ARB"/>
+ <enum value="0x8B48" name="GL_SHADER_OBJECT_EXT"/>
+ <enum value="0x8B49" name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum value="0x8B49" name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB"/>
+ <enum value="0x8B4A" name="GL_MAX_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum value="0x8B4A" name="GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB"/>
+ <enum value="0x8B4B" name="GL_MAX_VARYING_FLOATS"/>
+ <enum value="0x8B4B" name="GL_MAX_VARYING_COMPONENTS" alias="MAX_VARYING_FLOATS"/>
+ <enum value="0x8B4B" name="GL_MAX_VARYING_COMPONENTS_EXT"/>
+ <enum value="0x8B4B" name="GL_MAX_VARYING_FLOATS_ARB"/>
+ <enum value="0x8B4C" name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x8B4C" name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum value="0x8B4D" name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x8B4D" name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum value="0x8B4E" name="GL_OBJECT_TYPE_ARB"/>
+ <enum value="0x8B4F" name="GL_SHADER_TYPE"/>
+ <enum value="0x8B4F" name="GL_OBJECT_SUBTYPE_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8B50" end="0x8B7F" group="AttributeType" vendor="ARB">
+ <enum value="0x8B50" name="GL_FLOAT_VEC2"/>
+ <enum value="0x8B50" name="GL_FLOAT_VEC2_ARB"/>
+ <enum value="0x8B51" name="GL_FLOAT_VEC3"/>
+ <enum value="0x8B51" name="GL_FLOAT_VEC3_ARB"/>
+ <enum value="0x8B52" name="GL_FLOAT_VEC4"/>
+ <enum value="0x8B52" name="GL_FLOAT_VEC4_ARB"/>
+ <enum value="0x8B53" name="GL_INT_VEC2"/>
+ <enum value="0x8B53" name="GL_INT_VEC2_ARB"/>
+ <enum value="0x8B54" name="GL_INT_VEC3"/>
+ <enum value="0x8B54" name="GL_INT_VEC3_ARB"/>
+ <enum value="0x8B55" name="GL_INT_VEC4"/>
+ <enum value="0x8B55" name="GL_INT_VEC4_ARB"/>
+ <enum value="0x8B56" name="GL_BOOL"/>
+ <enum value="0x8B56" name="GL_BOOL_ARB"/>
+ <enum value="0x8B57" name="GL_BOOL_VEC2"/>
+ <enum value="0x8B57" name="GL_BOOL_VEC2_ARB"/>
+ <enum value="0x8B58" name="GL_BOOL_VEC3"/>
+ <enum value="0x8B58" name="GL_BOOL_VEC3_ARB"/>
+ <enum value="0x8B59" name="GL_BOOL_VEC4"/>
+ <enum value="0x8B59" name="GL_BOOL_VEC4_ARB"/>
+ <enum value="0x8B5A" name="GL_FLOAT_MAT2"/>
+ <enum value="0x8B5A" name="GL_FLOAT_MAT2_ARB"/>
+ <enum value="0x8B5B" name="GL_FLOAT_MAT3"/>
+ <enum value="0x8B5B" name="GL_FLOAT_MAT3_ARB"/>
+ <enum value="0x8B5C" name="GL_FLOAT_MAT4"/>
+ <enum value="0x8B5C" name="GL_FLOAT_MAT4_ARB"/>
+ <enum value="0x8B5D" name="GL_SAMPLER_1D"/>
+ <enum value="0x8B5D" name="GL_SAMPLER_1D_ARB"/>
+ <enum value="0x8B5E" name="GL_SAMPLER_2D"/>
+ <enum value="0x8B5E" name="GL_SAMPLER_2D_ARB"/>
+ <enum value="0x8B5F" name="GL_SAMPLER_3D"/>
+ <enum value="0x8B5F" name="GL_SAMPLER_3D_ARB"/>
+ <enum value="0x8B5F" name="GL_SAMPLER_3D_OES"/>
+ <enum value="0x8B60" name="GL_SAMPLER_CUBE"/>
+ <enum value="0x8B60" name="GL_SAMPLER_CUBE_ARB"/>
+ <enum value="0x8B61" name="GL_SAMPLER_1D_SHADOW"/>
+ <enum value="0x8B61" name="GL_SAMPLER_1D_SHADOW_ARB"/>
+ <enum value="0x8B62" name="GL_SAMPLER_2D_SHADOW"/>
+ <enum value="0x8B62" name="GL_SAMPLER_2D_SHADOW_ARB"/>
+ <enum value="0x8B62" name="GL_SAMPLER_2D_SHADOW_EXT"/>
+ <enum value="0x8B63" name="GL_SAMPLER_2D_RECT"/>
+ <enum value="0x8B63" name="GL_SAMPLER_2D_RECT_ARB"/>
+ <enum value="0x8B64" name="GL_SAMPLER_2D_RECT_SHADOW"/>
+ <enum value="0x8B64" name="GL_SAMPLER_2D_RECT_SHADOW_ARB"/>
+ <enum value="0x8B65" name="GL_FLOAT_MAT2x3"/>
+ <enum value="0x8B65" name="GL_FLOAT_MAT2x3_NV"/>
+ <enum value="0x8B66" name="GL_FLOAT_MAT2x4"/>
+ <enum value="0x8B66" name="GL_FLOAT_MAT2x4_NV"/>
+ <enum value="0x8B67" name="GL_FLOAT_MAT3x2"/>
+ <enum value="0x8B67" name="GL_FLOAT_MAT3x2_NV"/>
+ <enum value="0x8B68" name="GL_FLOAT_MAT3x4"/>
+ <enum value="0x8B68" name="GL_FLOAT_MAT3x4_NV"/>
+ <enum value="0x8B69" name="GL_FLOAT_MAT4x2"/>
+ <enum value="0x8B69" name="GL_FLOAT_MAT4x2_NV"/>
+ <enum value="0x8B6A" name="GL_FLOAT_MAT4x3"/>
+ <enum value="0x8B6A" name="GL_FLOAT_MAT4x3_NV"/>
+ <unused start="0x8B6B" end="0x8B7F" comment="For attribute types"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8B80" end="0x8B8F" vendor="ARB">
+ <enum value="0x8B80" name="GL_DELETE_STATUS"/>
+ <enum value="0x8B80" name="GL_OBJECT_DELETE_STATUS_ARB"/>
+ <enum value="0x8B81" name="GL_COMPILE_STATUS"/>
+ <enum value="0x8B81" name="GL_OBJECT_COMPILE_STATUS_ARB"/>
+ <enum value="0x8B82" name="GL_LINK_STATUS"/>
+ <enum value="0x8B82" name="GL_OBJECT_LINK_STATUS_ARB"/>
+ <enum value="0x8B83" name="GL_VALIDATE_STATUS"/>
+ <enum value="0x8B83" name="GL_OBJECT_VALIDATE_STATUS_ARB"/>
+ <enum value="0x8B84" name="GL_INFO_LOG_LENGTH"/>
+ <enum value="0x8B84" name="GL_OBJECT_INFO_LOG_LENGTH_ARB"/>
+ <enum value="0x8B85" name="GL_ATTACHED_SHADERS"/>
+ <enum value="0x8B85" name="GL_OBJECT_ATTACHED_OBJECTS_ARB"/>
+ <enum value="0x8B86" name="GL_ACTIVE_UNIFORMS"/>
+ <enum value="0x8B86" name="GL_OBJECT_ACTIVE_UNIFORMS_ARB"/>
+ <enum value="0x8B87" name="GL_ACTIVE_UNIFORM_MAX_LENGTH"/>
+ <enum value="0x8B87" name="GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB"/>
+ <enum value="0x8B88" name="GL_SHADER_SOURCE_LENGTH"/>
+ <enum value="0x8B88" name="GL_OBJECT_SHADER_SOURCE_LENGTH_ARB"/>
+ <enum value="0x8B89" name="GL_ACTIVE_ATTRIBUTES"/>
+ <enum value="0x8B89" name="GL_OBJECT_ACTIVE_ATTRIBUTES_ARB"/>
+ <enum value="0x8B8A" name="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH"/>
+ <enum value="0x8B8A" name="GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB"/>
+ <enum value="0x8B8B" name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT"/>
+ <enum value="0x8B8B" name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB"/>
+ <enum value="0x8B8B" name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES"/>
+ <enum value="0x8B8C" name="GL_SHADING_LANGUAGE_VERSION"/>
+ <enum value="0x8B8C" name="GL_SHADING_LANGUAGE_VERSION_ARB"/>
+ <enum value="0x8B8D" name="GL_CURRENT_PROGRAM"/>
+ <enum value="0x8B8D" api="gl" name="GL_ACTIVE_PROGRAM_EXT" alias="GL_CURRENT_PROGRAM" comment="For the OpenGL version of EXT_separate_shader_objects"/>
+ <unused start="0x8B8E" end="0x8B8F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8B90" end="0x8B9F" vendor="OES">
+ <enum value="0x8B90" name="GL_PALETTE4_RGB8_OES"/>
+ <enum value="0x8B91" name="GL_PALETTE4_RGBA8_OES"/>
+ <enum value="0x8B92" name="GL_PALETTE4_R5_G6_B5_OES"/>
+ <enum value="0x8B93" name="GL_PALETTE4_RGBA4_OES"/>
+ <enum value="0x8B94" name="GL_PALETTE4_RGB5_A1_OES"/>
+ <enum value="0x8B95" name="GL_PALETTE8_RGB8_OES"/>
+ <enum value="0x8B96" name="GL_PALETTE8_RGBA8_OES"/>
+ <enum value="0x8B97" name="GL_PALETTE8_R5_G6_B5_OES"/>
+ <enum value="0x8B98" name="GL_PALETTE8_RGBA4_OES"/>
+ <enum value="0x8B99" name="GL_PALETTE8_RGB5_A1_OES"/>
+ <enum value="0x8B9A" name="GL_IMPLEMENTATION_COLOR_READ_TYPE"/>
+ <enum value="0x8B9A" name="GL_IMPLEMENTATION_COLOR_READ_TYPE_OES"/>
+ <enum value="0x8B9B" name="GL_IMPLEMENTATION_COLOR_READ_FORMAT"/>
+ <enum value="0x8B9B" name="GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES"/>
+ <enum value="0x8B9C" name="GL_POINT_SIZE_ARRAY_OES"/>
+ <enum value="0x8B9D" name="GL_TEXTURE_CROP_RECT_OES"/>
+ <enum value="0x8B9E" name="GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES"/>
+ <enum value="0x8B9F" name="GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8BA0" end="0x8BAF" vendor="Seaweed"/>
+
+ <enums namespace="GL" start="0x8BB0" end="0x8BBF" vendor="MESA">
+ <enum value="0x8BB0" name="GL_FRAGMENT_PROGRAM_POSITION_MESA"/>
+ <enum value="0x8BB1" name="GL_FRAGMENT_PROGRAM_CALLBACK_MESA"/>
+ <enum value="0x8BB2" name="GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA"/>
+ <enum value="0x8BB3" name="GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA"/>
+ <enum value="0x8BB4" name="GL_VERTEX_PROGRAM_POSITION_MESA"/>
+ <enum value="0x8BB5" name="GL_VERTEX_PROGRAM_CALLBACK_MESA"/>
+ <enum value="0x8BB6" name="GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA"/>
+ <enum value="0x8BB7" name="GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8BC0" end="0x8BFF" vendor="AMD">
+ <enum value="0x8BC0" name="GL_COUNTER_TYPE_AMD"/>
+ <enum value="0x8BC1" name="GL_COUNTER_RANGE_AMD"/>
+ <enum value="0x8BC2" name="GL_UNSIGNED_INT64_AMD"/>
+ <enum value="0x8BC3" name="GL_PERCENTAGE_AMD"/>
+ <enum value="0x8BC4" name="GL_PERFMON_RESULT_AVAILABLE_AMD"/>
+ <enum value="0x8BC5" name="GL_PERFMON_RESULT_SIZE_AMD"/>
+ <enum value="0x8BC6" name="GL_PERFMON_RESULT_AMD"/>
+ <unused start="0x8BC7" end="0x8BD1"/>
+ <enum value="0x8BD2" name="GL_TEXTURE_WIDTH_QCOM"/>
+ <enum value="0x8BD3" name="GL_TEXTURE_HEIGHT_QCOM"/>
+ <enum value="0x8BD4" name="GL_TEXTURE_DEPTH_QCOM"/>
+ <enum value="0x8BD5" name="GL_TEXTURE_INTERNAL_FORMAT_QCOM"/>
+ <enum value="0x8BD6" name="GL_TEXTURE_FORMAT_QCOM"/>
+ <enum value="0x8BD7" name="GL_TEXTURE_TYPE_QCOM"/>
+ <enum value="0x8BD8" name="GL_TEXTURE_IMAGE_VALID_QCOM"/>
+ <enum value="0x8BD9" name="GL_TEXTURE_NUM_LEVELS_QCOM"/>
+ <enum value="0x8BDA" name="GL_TEXTURE_TARGET_QCOM"/>
+ <enum value="0x8BDB" name="GL_TEXTURE_OBJECT_VALID_QCOM"/>
+ <enum value="0x8BDC" name="GL_STATE_RESTORE"/>
+ <unused start="0x8BDD" end="0x8BFF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8C00" end="0x8C0F" vendor="IMG">
+ <enum value="0x8C00" name="GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG"/>
+ <enum value="0x8C01" name="GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG"/>
+ <enum value="0x8C02" name="GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG"/>
+ <enum value="0x8C03" name="GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG"/>
+ <enum value="0x8C04" name="GL_MODULATE_COLOR_IMG"/>
+ <enum value="0x8C05" name="GL_RECIP_ADD_SIGNED_ALPHA_IMG"/>
+ <enum value="0x8C06" name="GL_TEXTURE_ALPHA_MODULATE_IMG"/>
+ <enum value="0x8C07" name="GL_FACTOR_ALPHA_MODULATE_IMG"/>
+ <enum value="0x8C08" name="GL_FRAGMENT_ALPHA_MODULATE_IMG"/>
+ <enum value="0x8C09" name="GL_ADD_BLEND_IMG"/>
+ <enum value="0x8C0A" name="GL_SGX_BINARY_IMG"/>
+ <unused start="0x8C0B" end="0x8C0F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8C10" end="0x8C8F" vendor="NV" comment="For Pat Brown">
+ <enum value="0x8C10" name="GL_TEXTURE_RED_TYPE"/>
+ <enum value="0x8C10" name="GL_TEXTURE_RED_TYPE_ARB"/>
+ <enum value="0x8C11" name="GL_TEXTURE_GREEN_TYPE"/>
+ <enum value="0x8C11" name="GL_TEXTURE_GREEN_TYPE_ARB"/>
+ <enum value="0x8C12" name="GL_TEXTURE_BLUE_TYPE"/>
+ <enum value="0x8C12" name="GL_TEXTURE_BLUE_TYPE_ARB"/>
+ <enum value="0x8C13" name="GL_TEXTURE_ALPHA_TYPE"/>
+ <enum value="0x8C13" name="GL_TEXTURE_ALPHA_TYPE_ARB"/>
+ <enum value="0x8C14" name="GL_TEXTURE_LUMINANCE_TYPE"/>
+ <enum value="0x8C14" name="GL_TEXTURE_LUMINANCE_TYPE_ARB"/>
+ <enum value="0x8C15" name="GL_TEXTURE_INTENSITY_TYPE"/>
+ <enum value="0x8C15" name="GL_TEXTURE_INTENSITY_TYPE_ARB"/>
+ <enum value="0x8C16" name="GL_TEXTURE_DEPTH_TYPE"/>
+ <enum value="0x8C16" name="GL_TEXTURE_DEPTH_TYPE_ARB"/>
+ <enum value="0x8C17" name="GL_UNSIGNED_NORMALIZED"/>
+ <enum value="0x8C17" name="GL_UNSIGNED_NORMALIZED_ARB"/>
+ <enum value="0x8C17" name="GL_UNSIGNED_NORMALIZED_EXT"/>
+ <enum value="0x8C18" name="GL_TEXTURE_1D_ARRAY"/>
+ <enum value="0x8C18" name="GL_TEXTURE_1D_ARRAY_EXT"/>
+ <enum value="0x8C19" name="GL_PROXY_TEXTURE_1D_ARRAY"/>
+ <enum value="0x8C19" name="GL_PROXY_TEXTURE_1D_ARRAY_EXT"/>
+ <enum value="0x8C1A" name="GL_TEXTURE_2D_ARRAY"/>
+ <enum value="0x8C1A" name="GL_TEXTURE_2D_ARRAY_EXT"/>
+ <enum value="0x8C1B" name="GL_PROXY_TEXTURE_2D_ARRAY"/>
+ <enum value="0x8C1B" name="GL_PROXY_TEXTURE_2D_ARRAY_EXT"/>
+ <enum value="0x8C1C" name="GL_TEXTURE_BINDING_1D_ARRAY"/>
+ <enum value="0x8C1C" name="GL_TEXTURE_BINDING_1D_ARRAY_EXT"/>
+ <enum value="0x8C1D" name="GL_TEXTURE_BINDING_2D_ARRAY"/>
+ <enum value="0x8C1D" name="GL_TEXTURE_BINDING_2D_ARRAY_EXT"/>
+ <unused start="0x8C1E" end="0x8C25"/>
+ <enum value="0x8C26" name="GL_GEOMETRY_PROGRAM_NV"/>
+ <enum value="0x8C27" name="GL_MAX_PROGRAM_OUTPUT_VERTICES_NV"/>
+ <enum value="0x8C28" name="GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV"/>
+ <enum value="0x8C29" name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x8C29" name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum value="0x8C29" name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT"/>
+ <enum value="0x8C2A" name="GL_TEXTURE_BUFFER"/>
+ <enum value="0x8C2A" name="GL_TEXTURE_BUFFER_ARB"/>
+ <enum value="0x8C2A" name="GL_TEXTURE_BUFFER_EXT"/>
+ <enum value="0x8C2A" name="GL_TEXTURE_BUFFER_BINDING" comment="Equivalent to GL_TEXTURE_BUFFER_ARB query, but named more consistently"/>
+ <enum value="0x8C2B" name="GL_MAX_TEXTURE_BUFFER_SIZE"/>
+ <enum value="0x8C2B" name="GL_MAX_TEXTURE_BUFFER_SIZE_ARB"/>
+ <enum value="0x8C2B" name="GL_MAX_TEXTURE_BUFFER_SIZE_EXT"/>
+ <enum value="0x8C2C" name="GL_TEXTURE_BINDING_BUFFER"/>
+ <enum value="0x8C2C" name="GL_TEXTURE_BINDING_BUFFER_ARB"/>
+ <enum value="0x8C2C" name="GL_TEXTURE_BINDING_BUFFER_EXT"/>
+ <enum value="0x8C2D" name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING"/>
+ <enum value="0x8C2D" name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB"/>
+ <enum value="0x8C2D" name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT"/>
+ <enum value="0x8C2E" name="GL_TEXTURE_BUFFER_FORMAT_ARB"/>
+ <enum value="0x8C2E" name="GL_TEXTURE_BUFFER_FORMAT_EXT"/>
+ <enum value="0x8C2F" name="GL_ANY_SAMPLES_PASSED"/>
+ <enum value="0x8C2F" name="GL_ANY_SAMPLES_PASSED_EXT"/>
+ <unused start="0x8C30" end="0x8C35"/>
+ <enum value="0x8C36" name="GL_SAMPLE_SHADING"/>
+ <enum value="0x8C36" name="GL_SAMPLE_SHADING_ARB"/>
+ <enum value="0x8C37" name="GL_MIN_SAMPLE_SHADING_VALUE"/>
+ <enum value="0x8C37" name="GL_MIN_SAMPLE_SHADING_VALUE_ARB"/>
+ <unused start="0x8C38" end="0x8C39"/>
+ <enum value="0x8C3A" name="GL_R11F_G11F_B10F"/>
+ <enum value="0x8C3A" name="GL_R11F_G11F_B10F_EXT"/>
+ <enum value="0x8C3B" name="GL_UNSIGNED_INT_10F_11F_11F_REV"/>
+ <enum value="0x8C3B" name="GL_UNSIGNED_INT_10F_11F_11F_REV_EXT"/>
+ <enum value="0x8C3C" name="GL_RGBA_SIGNED_COMPONENTS_EXT"/>
+ <enum value="0x8C3D" name="GL_RGB9_E5"/>
+ <enum value="0x8C3D" name="GL_RGB9_E5_EXT"/>
+ <enum value="0x8C3E" name="GL_UNSIGNED_INT_5_9_9_9_REV"/>
+ <enum value="0x8C3E" name="GL_UNSIGNED_INT_5_9_9_9_REV_EXT"/>
+ <enum value="0x8C3F" name="GL_TEXTURE_SHARED_SIZE"/>
+ <enum value="0x8C3F" name="GL_TEXTURE_SHARED_SIZE_EXT"/>
+ <enum value="0x8C40" name="GL_SRGB"/>
+ <enum value="0x8C40" name="GL_SRGB_EXT"/>
+ <enum value="0x8C41" name="GL_SRGB8"/>
+ <enum value="0x8C41" name="GL_SRGB8_EXT"/>
+ <enum value="0x8C41" name="GL_SRGB8_NV"/>
+ <enum value="0x8C42" name="GL_SRGB_ALPHA"/>
+ <enum value="0x8C42" name="GL_SRGB_ALPHA_EXT"/>
+ <enum value="0x8C43" name="GL_SRGB8_ALPHA8"/>
+ <enum value="0x8C43" name="GL_SRGB8_ALPHA8_EXT"/>
+ <enum value="0x8C44" name="GL_SLUMINANCE_ALPHA"/>
+ <enum value="0x8C44" name="GL_SLUMINANCE_ALPHA_EXT"/>
+ <enum value="0x8C44" name="GL_SLUMINANCE_ALPHA_NV"/>
+ <enum value="0x8C45" name="GL_SLUMINANCE8_ALPHA8"/>
+ <enum value="0x8C45" name="GL_SLUMINANCE8_ALPHA8_EXT"/>
+ <enum value="0x8C45" name="GL_SLUMINANCE8_ALPHA8_NV"/>
+ <enum value="0x8C46" name="GL_SLUMINANCE"/>
+ <enum value="0x8C46" name="GL_SLUMINANCE_EXT"/>
+ <enum value="0x8C46" name="GL_SLUMINANCE_NV"/>
+ <enum value="0x8C47" name="GL_SLUMINANCE8"/>
+ <enum value="0x8C47" name="GL_SLUMINANCE8_EXT"/>
+ <enum value="0x8C47" name="GL_SLUMINANCE8_NV"/>
+ <enum value="0x8C48" name="GL_COMPRESSED_SRGB"/>
+ <enum value="0x8C48" name="GL_COMPRESSED_SRGB_EXT"/>
+ <enum value="0x8C49" name="GL_COMPRESSED_SRGB_ALPHA"/>
+ <enum value="0x8C49" name="GL_COMPRESSED_SRGB_ALPHA_EXT"/>
+ <enum value="0x8C4A" name="GL_COMPRESSED_SLUMINANCE"/>
+ <enum value="0x8C4A" name="GL_COMPRESSED_SLUMINANCE_EXT"/>
+ <enum value="0x8C4B" name="GL_COMPRESSED_SLUMINANCE_ALPHA"/>
+ <enum value="0x8C4B" name="GL_COMPRESSED_SLUMINANCE_ALPHA_EXT"/>
+ <enum value="0x8C4C" name="GL_COMPRESSED_SRGB_S3TC_DXT1_EXT"/>
+ <enum value="0x8C4C" name="GL_COMPRESSED_SRGB_S3TC_DXT1_NV"/>
+ <enum value="0x8C4D" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT"/>
+ <enum value="0x8C4D" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV"/>
+ <enum value="0x8C4E" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT"/>
+ <enum value="0x8C4E" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV"/>
+ <enum value="0x8C4F" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT"/>
+ <enum value="0x8C4F" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV"/>
+ <unused start="0x8C50" end="0x8C6F"/>
+ <enum value="0x8C70" name="GL_COMPRESSED_LUMINANCE_LATC1_EXT"/>
+ <enum value="0x8C71" name="GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT"/>
+ <enum value="0x8C72" name="GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT"/>
+ <enum value="0x8C73" name="GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT"/>
+ <enum value="0x8C74" name="GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum value="0x8C75" name="GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum value="0x8C76" name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH"/>
+ <enum value="0x8C76" name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT"/>
+ <enum value="0x8C77" name="GL_BACK_PRIMARY_COLOR_NV"/>
+ <enum value="0x8C78" name="GL_BACK_SECONDARY_COLOR_NV"/>
+ <enum value="0x8C79" name="GL_TEXTURE_COORD_NV"/>
+ <enum value="0x8C7A" name="GL_CLIP_DISTANCE_NV"/>
+ <enum value="0x8C7B" name="GL_VERTEX_ID_NV"/>
+ <enum value="0x8C7C" name="GL_PRIMITIVE_ID_NV"/>
+ <enum value="0x8C7D" name="GL_GENERIC_ATTRIB_NV"/>
+ <enum value="0x8C7E" name="GL_TRANSFORM_FEEDBACK_ATTRIBS_NV"/>
+ <enum value="0x8C7F" name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE"/>
+ <enum value="0x8C7F" name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT"/>
+ <enum value="0x8C7F" name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV"/>
+ <enum value="0x8C80" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS"/>
+ <enum value="0x8C80" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT"/>
+ <enum value="0x8C80" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV"/>
+ <enum value="0x8C81" name="GL_ACTIVE_VARYINGS_NV"/>
+ <enum value="0x8C82" name="GL_ACTIVE_VARYING_MAX_LENGTH_NV"/>
+ <enum value="0x8C83" name="GL_TRANSFORM_FEEDBACK_VARYINGS"/>
+ <enum value="0x8C83" name="GL_TRANSFORM_FEEDBACK_VARYINGS_EXT"/>
+ <enum value="0x8C83" name="GL_TRANSFORM_FEEDBACK_VARYINGS_NV"/>
+ <enum value="0x8C84" name="GL_TRANSFORM_FEEDBACK_BUFFER_START"/>
+ <enum value="0x8C84" name="GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT"/>
+ <enum value="0x8C84" name="GL_TRANSFORM_FEEDBACK_BUFFER_START_NV"/>
+ <enum value="0x8C85" name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE"/>
+ <enum value="0x8C85" name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT"/>
+ <enum value="0x8C85" name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV"/>
+ <enum value="0x8C86" name="GL_TRANSFORM_FEEDBACK_RECORD_NV"/>
+ <enum value="0x8C87" name="GL_PRIMITIVES_GENERATED"/>
+ <enum value="0x8C87" name="GL_PRIMITIVES_GENERATED_EXT"/>
+ <enum value="0x8C87" name="GL_PRIMITIVES_GENERATED_NV"/>
+ <enum value="0x8C88" name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN"/>
+ <enum value="0x8C88" name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT"/>
+ <enum value="0x8C88" name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV"/>
+ <enum value="0x8C89" name="GL_RASTERIZER_DISCARD"/>
+ <enum value="0x8C89" name="GL_RASTERIZER_DISCARD_EXT"/>
+ <enum value="0x8C89" name="GL_RASTERIZER_DISCARD_NV"/>
+ <enum value="0x8C8A" name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS"/>
+ <enum value="0x8C8A" name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT"/>
+ <enum value="0x8C8A" name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV"/>
+ <enum value="0x8C8B" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS"/>
+ <enum value="0x8C8B" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT"/>
+ <enum value="0x8C8B" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV"/>
+ <enum value="0x8C8C" name="GL_INTERLEAVED_ATTRIBS"/>
+ <enum value="0x8C8C" name="GL_INTERLEAVED_ATTRIBS_EXT"/>
+ <enum value="0x8C8C" name="GL_INTERLEAVED_ATTRIBS_NV"/>
+ <enum value="0x8C8D" name="GL_SEPARATE_ATTRIBS"/>
+ <enum value="0x8C8D" name="GL_SEPARATE_ATTRIBS_EXT"/>
+ <enum value="0x8C8D" name="GL_SEPARATE_ATTRIBS_NV"/>
+ <enum value="0x8C8E" name="GL_TRANSFORM_FEEDBACK_BUFFER"/>
+ <enum value="0x8C8E" name="GL_TRANSFORM_FEEDBACK_BUFFER_EXT"/>
+ <enum value="0x8C8E" name="GL_TRANSFORM_FEEDBACK_BUFFER_NV"/>
+ <enum value="0x8C8F" name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING"/>
+ <enum value="0x8C8F" name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT"/>
+ <enum value="0x8C8F" name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8C90" end="0x8C9F" vendor="QCOM" comment="For Affie Munshi, OpenGL ES extensions">
+ <!-- Reassigned from ATI to QCOM at time of
+ mobile/desktop split (bug 5874) -->
+ <unused start="0x8C90" end="0x8C91"/>
+ <enum value="0x8C92" name="GL_ATC_RGB_AMD"/>
+ <enum value="0x8C93" name="GL_ATC_RGBA_EXPLICIT_ALPHA_AMD"/>
+ <unused start="0x8C94" end="0x8C9F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8CA0" end="0x8CAF" vendor="ARB">
+ <enum value="0x8CA0" name="GL_POINT_SPRITE_COORD_ORIGIN"/>
+ <enum value="0x8CA1" name="GL_LOWER_LEFT"/>
+ <enum value="0x8CA2" name="GL_UPPER_LEFT"/>
+ <enum value="0x8CA3" name="GL_STENCIL_BACK_REF"/>
+ <enum value="0x8CA4" name="GL_STENCIL_BACK_VALUE_MASK"/>
+ <enum value="0x8CA5" name="GL_STENCIL_BACK_WRITEMASK"/>
+ <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING"/>
+ <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING_ANGLE"/>
+ <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING_APPLE"/>
+ <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING_EXT"/>
+ <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING_NV"/>
+ <enum value="0x8CA6" name="GL_FRAMEBUFFER_BINDING"/>
+ <enum value="0x8CA6" name="GL_FRAMEBUFFER_BINDING_ANGLE"/>
+ <enum value="0x8CA6" name="GL_FRAMEBUFFER_BINDING_EXT"/>
+ <enum value="0x8CA6" name="GL_FRAMEBUFFER_BINDING_OES"/>
+ <enum value="0x8CA7" name="GL_RENDERBUFFER_BINDING"/>
+ <enum value="0x8CA7" name="GL_RENDERBUFFER_BINDING_ANGLE"/>
+ <enum value="0x8CA7" name="GL_RENDERBUFFER_BINDING_EXT"/>
+ <enum value="0x8CA7" name="GL_RENDERBUFFER_BINDING_OES"/>
+ <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER"/>
+ <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER_ANGLE"/>
+ <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER_APPLE"/>
+ <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER_EXT"/>
+ <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER_NV"/>
+ <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER"/>
+ <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER_ANGLE"/>
+ <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER_APPLE"/>
+ <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER_EXT"/>
+ <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER_NV"/>
+ <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING"/>
+ <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING_ANGLE"/>
+ <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING_APPLE"/>
+ <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING_EXT"/>
+ <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING_NV"/>
+ <enum value="0x8CAB" name="GL_RENDERBUFFER_COVERAGE_SAMPLES_NV"/>
+ <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES"/>
+ <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_ANGLE"/>
+ <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_APPLE"/>
+ <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_EXT"/>
+ <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_NV"/>
+ <enum value="0x8CAC" name="GL_DEPTH_COMPONENT32F"/>
+ <enum value="0x8CAD" name="GL_DEPTH32F_STENCIL8"/>
+ <unused start="0x8CAE" end="0x8CAF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8CB0" end="0x8CCF" vendor="ZiiLabs" comment="For Barthold Lichtenbelt 2004/12/1"/>
+
+ <enums namespace="GL" start="0x8CD0" end="0x8D5F" vendor="ARB" comment="Framebuffer object specification + headroom">
+ <enum value="0x8CD0" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"/>
+ <enum value="0x8CD0" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT"/>
+ <enum value="0x8CD0" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES"/>
+ <enum value="0x8CD1" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"/>
+ <enum value="0x8CD1" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT"/>
+ <enum value="0x8CD1" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES"/>
+ <enum value="0x8CD2" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"/>
+ <enum value="0x8CD2" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT"/>
+ <enum value="0x8CD2" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES"/>
+ <enum value="0x8CD3" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"/>
+ <enum value="0x8CD3" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT"/>
+ <enum value="0x8CD3" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES"/>
+ <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT"/>
+ <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES"/>
+ <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"/>
+ <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT"/>
+ <enum value="0x8CD5" name="GL_FRAMEBUFFER_COMPLETE"/>
+ <enum value="0x8CD5" name="GL_FRAMEBUFFER_COMPLETE_EXT"/>
+ <enum value="0x8CD5" name="GL_FRAMEBUFFER_COMPLETE_OES"/>
+ <enum value="0x8CD6" name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"/>
+ <enum value="0x8CD6" name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT"/>
+ <enum value="0x8CD6" name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES"/>
+ <enum value="0x8CD7" name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"/>
+ <enum value="0x8CD7" name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT"/>
+ <enum value="0x8CD7" name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES"/>
+ <unused start="0x8CD8" comment="Removed 2005/09/26 in revision #117 of the FBO extension spec"/>
+ <!-- <enum value="0x8CD8" name="GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT"/> -->
+ <enum value="0x8CD9" name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS"/>
+ <enum value="0x8CD9" name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT"/>
+ <enum value="0x8CD9" name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES"/>
+ <enum value="0x8CDA" name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT"/>
+ <enum value="0x8CDA" name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES"/>
+ <enum value="0x8CDB" name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER"/>
+ <enum value="0x8CDB" name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT"/>
+ <enum value="0x8CDB" name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES"/>
+ <enum value="0x8CDC" name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER"/>
+ <enum value="0x8CDC" name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT"/>
+ <enum value="0x8CDC" name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES"/>
+ <enum value="0x8CDD" name="GL_FRAMEBUFFER_UNSUPPORTED"/>
+ <enum value="0x8CDD" name="GL_FRAMEBUFFER_UNSUPPORTED_EXT"/>
+ <enum value="0x8CDD" name="GL_FRAMEBUFFER_UNSUPPORTED_OES"/>
+ <unused start="0x8CDE" comment="Removed 2005/05/31 in revision #113 of the FBO extension spec"/>
+ <!-- <enum value="0x8CDE" name="GL_FRAMEBUFFER_STATUS_ERROR_EXT"/> -->
+ <enum value="0x8CDF" name="GL_MAX_COLOR_ATTACHMENTS"/>
+ <enum value="0x8CDF" name="GL_MAX_COLOR_ATTACHMENTS_EXT"/>
+ <enum value="0x8CDF" name="GL_MAX_COLOR_ATTACHMENTS_NV"/>
+ <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0"/>
+ <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0_EXT"/>
+ <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0_NV"/>
+ <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0_OES"/>
+ <enum value="0x8CE1" name="GL_COLOR_ATTACHMENT1"/>
+ <enum value="0x8CE1" name="GL_COLOR_ATTACHMENT1_EXT"/>
+ <enum value="0x8CE1" name="GL_COLOR_ATTACHMENT1_NV"/>
+ <enum value="0x8CE2" name="GL_COLOR_ATTACHMENT2"/>
+ <enum value="0x8CE2" name="GL_COLOR_ATTACHMENT2_EXT"/>
+ <enum value="0x8CE2" name="GL_COLOR_ATTACHMENT2_NV"/>
+ <enum value="0x8CE3" name="GL_COLOR_ATTACHMENT3"/>
+ <enum value="0x8CE3" name="GL_COLOR_ATTACHMENT3_EXT"/>
+ <enum value="0x8CE3" name="GL_COLOR_ATTACHMENT3_NV"/>
+ <enum value="0x8CE4" name="GL_COLOR_ATTACHMENT4"/>
+ <enum value="0x8CE4" name="GL_COLOR_ATTACHMENT4_EXT"/>
+ <enum value="0x8CE4" name="GL_COLOR_ATTACHMENT4_NV"/>
+ <enum value="0x8CE5" name="GL_COLOR_ATTACHMENT5"/>
+ <enum value="0x8CE5" name="GL_COLOR_ATTACHMENT5_EXT"/>
+ <enum value="0x8CE5" name="GL_COLOR_ATTACHMENT5_NV"/>
+ <enum value="0x8CE6" name="GL_COLOR_ATTACHMENT6"/>
+ <enum value="0x8CE6" name="GL_COLOR_ATTACHMENT6_EXT"/>
+ <enum value="0x8CE6" name="GL_COLOR_ATTACHMENT6_NV"/>
+ <enum value="0x8CE7" name="GL_COLOR_ATTACHMENT7"/>
+ <enum value="0x8CE7" name="GL_COLOR_ATTACHMENT7_EXT"/>
+ <enum value="0x8CE7" name="GL_COLOR_ATTACHMENT7_NV"/>
+ <enum value="0x8CE8" name="GL_COLOR_ATTACHMENT8"/>
+ <enum value="0x8CE8" name="GL_COLOR_ATTACHMENT8_EXT"/>
+ <enum value="0x8CE8" name="GL_COLOR_ATTACHMENT8_NV"/>
+ <enum value="0x8CE9" name="GL_COLOR_ATTACHMENT9"/>
+ <enum value="0x8CE9" name="GL_COLOR_ATTACHMENT9_EXT"/>
+ <enum value="0x8CE9" name="GL_COLOR_ATTACHMENT9_NV"/>
+ <enum value="0x8CEA" name="GL_COLOR_ATTACHMENT10"/>
+ <enum value="0x8CEA" name="GL_COLOR_ATTACHMENT10_EXT"/>
+ <enum value="0x8CEA" name="GL_COLOR_ATTACHMENT10_NV"/>
+ <enum value="0x8CEB" name="GL_COLOR_ATTACHMENT11"/>
+ <enum value="0x8CEB" name="GL_COLOR_ATTACHMENT11_EXT"/>
+ <enum value="0x8CEB" name="GL_COLOR_ATTACHMENT11_NV"/>
+ <enum value="0x8CEC" name="GL_COLOR_ATTACHMENT12"/>
+ <enum value="0x8CEC" name="GL_COLOR_ATTACHMENT12_EXT"/>
+ <enum value="0x8CEC" name="GL_COLOR_ATTACHMENT12_NV"/>
+ <enum value="0x8CED" name="GL_COLOR_ATTACHMENT13"/>
+ <enum value="0x8CED" name="GL_COLOR_ATTACHMENT13_EXT"/>
+ <enum value="0x8CED" name="GL_COLOR_ATTACHMENT13_NV"/>
+ <enum value="0x8CEE" name="GL_COLOR_ATTACHMENT14"/>
+ <enum value="0x8CEE" name="GL_COLOR_ATTACHMENT14_EXT"/>
+ <enum value="0x8CEE" name="GL_COLOR_ATTACHMENT14_NV"/>
+ <enum value="0x8CEF" name="GL_COLOR_ATTACHMENT15"/>
+ <enum value="0x8CEF" name="GL_COLOR_ATTACHMENT15_EXT"/>
+ <enum value="0x8CEF" name="GL_COLOR_ATTACHMENT15_NV"/>
+ <unused start="0x8CF0" end="0x8CFF" comment="For color attachments 16-31"/>
+ <enum value="0x8D00" name="GL_DEPTH_ATTACHMENT"/>
+ <enum value="0x8D00" name="GL_DEPTH_ATTACHMENT_EXT"/>
+ <enum value="0x8D00" name="GL_DEPTH_ATTACHMENT_OES"/>
+ <unused start="0x8D01" end="0x8D1F" comment="For depth attachments 16-31"/>
+ <enum value="0x8D20" name="GL_STENCIL_ATTACHMENT"/>
+ <enum value="0x8D20" name="GL_STENCIL_ATTACHMENT_EXT"/>
+ <enum value="0x8D20" name="GL_STENCIL_ATTACHMENT_OES"/>
+ <unused start="0x8D21" end="0x8D3F" comment="For stencil attachments 16-31"/>
+ <enum value="0x8D40" name="GL_FRAMEBUFFER"/>
+ <enum value="0x8D40" name="GL_FRAMEBUFFER_EXT"/>
+ <enum value="0x8D40" name="GL_FRAMEBUFFER_OES"/>
+ <enum value="0x8D41" name="GL_RENDERBUFFER"/>
+ <enum value="0x8D41" name="GL_RENDERBUFFER_EXT"/>
+ <enum value="0x8D41" name="GL_RENDERBUFFER_OES"/>
+ <enum value="0x8D42" name="GL_RENDERBUFFER_WIDTH"/>
+ <enum value="0x8D42" name="GL_RENDERBUFFER_WIDTH_EXT"/>
+ <enum value="0x8D42" name="GL_RENDERBUFFER_WIDTH_OES"/>
+ <enum value="0x8D43" name="GL_RENDERBUFFER_HEIGHT"/>
+ <enum value="0x8D43" name="GL_RENDERBUFFER_HEIGHT_EXT"/>
+ <enum value="0x8D43" name="GL_RENDERBUFFER_HEIGHT_OES"/>
+ <enum value="0x8D44" name="GL_RENDERBUFFER_INTERNAL_FORMAT"/>
+ <enum value="0x8D44" name="GL_RENDERBUFFER_INTERNAL_FORMAT_EXT"/>
+ <enum value="0x8D44" name="GL_RENDERBUFFER_INTERNAL_FORMAT_OES"/>
+ <unused start="0x8D45" comment="Was for GL_STENCIL_INDEX_EXT, but now use core STENCIL_INDEX instead"/>
+ <enum value="0x8D46" name="GL_STENCIL_INDEX1"/>
+ <enum value="0x8D46" name="GL_STENCIL_INDEX1_EXT"/>
+ <enum value="0x8D46" name="GL_STENCIL_INDEX1_OES"/>
+ <enum value="0x8D47" name="GL_STENCIL_INDEX4"/>
+ <enum value="0x8D47" name="GL_STENCIL_INDEX4_EXT"/>
+ <enum value="0x8D47" name="GL_STENCIL_INDEX4_OES"/>
+ <enum value="0x8D48" name="GL_STENCIL_INDEX8"/>
+ <enum value="0x8D48" name="GL_STENCIL_INDEX8_EXT"/>
+ <enum value="0x8D48" name="GL_STENCIL_INDEX8_OES"/>
+ <enum value="0x8D49" name="GL_STENCIL_INDEX16"/>
+ <enum value="0x8D49" name="GL_STENCIL_INDEX16_EXT"/>
+ <unused start="0x8D4A" end="0x8D4F" comment="For additional stencil formats"/>
+ <enum value="0x8D50" name="GL_RENDERBUFFER_RED_SIZE"/>
+ <enum value="0x8D50" name="GL_RENDERBUFFER_RED_SIZE_EXT"/>
+ <enum value="0x8D50" name="GL_RENDERBUFFER_RED_SIZE_OES"/>
+ <enum value="0x8D51" name="GL_RENDERBUFFER_GREEN_SIZE"/>
+ <enum value="0x8D51" name="GL_RENDERBUFFER_GREEN_SIZE_EXT"/>
+ <enum value="0x8D51" name="GL_RENDERBUFFER_GREEN_SIZE_OES"/>
+ <enum value="0x8D52" name="GL_RENDERBUFFER_BLUE_SIZE"/>
+ <enum value="0x8D52" name="GL_RENDERBUFFER_BLUE_SIZE_EXT"/>
+ <enum value="0x8D52" name="GL_RENDERBUFFER_BLUE_SIZE_OES"/>
+ <enum value="0x8D53" name="GL_RENDERBUFFER_ALPHA_SIZE"/>
+ <enum value="0x8D53" name="GL_RENDERBUFFER_ALPHA_SIZE_EXT"/>
+ <enum value="0x8D53" name="GL_RENDERBUFFER_ALPHA_SIZE_OES"/>
+ <enum value="0x8D54" name="GL_RENDERBUFFER_DEPTH_SIZE"/>
+ <enum value="0x8D54" name="GL_RENDERBUFFER_DEPTH_SIZE_EXT"/>
+ <enum value="0x8D54" name="GL_RENDERBUFFER_DEPTH_SIZE_OES"/>
+ <enum value="0x8D55" name="GL_RENDERBUFFER_STENCIL_SIZE"/>
+ <enum value="0x8D55" name="GL_RENDERBUFFER_STENCIL_SIZE_EXT"/>
+ <enum value="0x8D55" name="GL_RENDERBUFFER_STENCIL_SIZE_OES"/>
+ <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"/>
+ <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE"/>
+ <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE"/>
+ <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT"/>
+ <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV"/>
+ <enum value="0x8D57" name="GL_MAX_SAMPLES"/>
+ <enum value="0x8D57" name="GL_MAX_SAMPLES_ANGLE"/>
+ <enum value="0x8D57" name="GL_MAX_SAMPLES_APPLE"/>
+ <enum value="0x8D57" name="GL_MAX_SAMPLES_EXT"/>
+ <enum value="0x8D57" name="GL_MAX_SAMPLES_NV"/>
+ <unused start="0x8D58" end="0x8D5F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8D60" end="0x8D6F" vendor="OES">
+ <enum value="0x8D60" name="GL_TEXTURE_GEN_STR_OES"/>
+ <enum value="0x8D61" name="GL_HALF_FLOAT_OES"/>
+ <enum value="0x8D62" name="GL_RGB565_OES"/>
+ <enum value="0x8D62" name="GL_RGB565"/>
+ <unused start="0x8D63" comment="Was GL_TEXTURE_IMMUTABLE_LEVELS in draft ES 3.0 spec"/>
+ <enum value="0x8D64" name="GL_ETC1_RGB8_OES"/>
+ <enum value="0x8D65" name="GL_TEXTURE_EXTERNAL_OES"/>
+ <enum value="0x8D66" name="GL_SAMPLER_EXTERNAL_OES"/>
+ <enum value="0x8D67" name="GL_TEXTURE_BINDING_EXTERNAL_OES"/>
+ <enum value="0x8D68" name="GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES"/>
+ <enum value="0x8D69" name="GL_PRIMITIVE_RESTART_FIXED_INDEX"/>
+ <enum value="0x8D6A" name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE"/>
+ <enum value="0x8D6A" name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT"/>
+ <enum value="0x8D6B" name="GL_MAX_ELEMENT_INDEX"/>
+ <enum value="0x8D6C" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT"/>
+ <unused start="0x8D6D" end="0x8D6F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8D70" end="0x8DEF" vendor="NV" comment="For Pat Brown 2005/10/13">
+ <enum value="0x8D70" name="GL_RGBA32UI"/>
+ <enum value="0x8D70" name="GL_RGBA32UI_EXT"/>
+ <enum value="0x8D71" name="GL_RGB32UI"/>
+ <enum value="0x8D71" name="GL_RGB32UI_EXT"/>
+ <enum value="0x8D72" name="GL_ALPHA32UI_EXT"/>
+ <enum value="0x8D73" name="GL_INTENSITY32UI_EXT"/>
+ <enum value="0x8D74" name="GL_LUMINANCE32UI_EXT"/>
+ <enum value="0x8D75" name="GL_LUMINANCE_ALPHA32UI_EXT"/>
+ <enum value="0x8D76" name="GL_RGBA16UI"/>
+ <enum value="0x8D76" name="GL_RGBA16UI_EXT"/>
+ <enum value="0x8D77" name="GL_RGB16UI"/>
+ <enum value="0x8D77" name="GL_RGB16UI_EXT"/>
+ <enum value="0x8D78" name="GL_ALPHA16UI_EXT"/>
+ <enum value="0x8D79" name="GL_INTENSITY16UI_EXT"/>
+ <enum value="0x8D7A" name="GL_LUMINANCE16UI_EXT"/>
+ <enum value="0x8D7B" name="GL_LUMINANCE_ALPHA16UI_EXT"/>
+ <enum value="0x8D7C" name="GL_RGBA8UI"/>
+ <enum value="0x8D7C" name="GL_RGBA8UI_EXT"/>
+ <enum value="0x8D7D" name="GL_RGB8UI"/>
+ <enum value="0x8D7D" name="GL_RGB8UI_EXT"/>
+ <enum value="0x8D7E" name="GL_ALPHA8UI_EXT"/>
+ <enum value="0x8D7F" name="GL_INTENSITY8UI_EXT"/>
+ <enum value="0x8D80" name="GL_LUMINANCE8UI_EXT"/>
+ <enum value="0x8D81" name="GL_LUMINANCE_ALPHA8UI_EXT"/>
+ <enum value="0x8D82" name="GL_RGBA32I"/>
+ <enum value="0x8D82" name="GL_RGBA32I_EXT"/>
+ <enum value="0x8D83" name="GL_RGB32I"/>
+ <enum value="0x8D83" name="GL_RGB32I_EXT"/>
+ <enum value="0x8D84" name="GL_ALPHA32I_EXT"/>
+ <enum value="0x8D85" name="GL_INTENSITY32I_EXT"/>
+ <enum value="0x8D86" name="GL_LUMINANCE32I_EXT"/>
+ <enum value="0x8D87" name="GL_LUMINANCE_ALPHA32I_EXT"/>
+ <enum value="0x8D88" name="GL_RGBA16I"/>
+ <enum value="0x8D88" name="GL_RGBA16I_EXT"/>
+ <enum value="0x8D89" name="GL_RGB16I"/>
+ <enum value="0x8D89" name="GL_RGB16I_EXT"/>
+ <enum value="0x8D8A" name="GL_ALPHA16I_EXT"/>
+ <enum value="0x8D8B" name="GL_INTENSITY16I_EXT"/>
+ <enum value="0x8D8C" name="GL_LUMINANCE16I_EXT"/>
+ <enum value="0x8D8D" name="GL_LUMINANCE_ALPHA16I_EXT"/>
+ <enum value="0x8D8E" name="GL_RGBA8I"/>
+ <enum value="0x8D8E" name="GL_RGBA8I_EXT"/>
+ <enum value="0x8D8F" name="GL_RGB8I"/>
+ <enum value="0x8D8F" name="GL_RGB8I_EXT"/>
+ <enum value="0x8D90" name="GL_ALPHA8I_EXT"/>
+ <enum value="0x8D91" name="GL_INTENSITY8I_EXT"/>
+ <enum value="0x8D92" name="GL_LUMINANCE8I_EXT"/>
+ <enum value="0x8D93" name="GL_LUMINANCE_ALPHA8I_EXT"/>
+ <enum value="0x8D94" name="GL_RED_INTEGER"/>
+ <enum value="0x8D94" name="GL_RED_INTEGER_EXT"/>
+ <enum value="0x8D95" name="GL_GREEN_INTEGER"/>
+ <enum value="0x8D95" name="GL_GREEN_INTEGER_EXT"/>
+ <enum value="0x8D96" name="GL_BLUE_INTEGER"/>
+ <enum value="0x8D96" name="GL_BLUE_INTEGER_EXT"/>
+ <enum value="0x8D97" name="GL_ALPHA_INTEGER"/>
+ <enum value="0x8D97" name="GL_ALPHA_INTEGER_EXT"/>
+ <enum value="0x8D98" name="GL_RGB_INTEGER"/>
+ <enum value="0x8D98" name="GL_RGB_INTEGER_EXT"/>
+ <enum value="0x8D99" name="GL_RGBA_INTEGER"/>
+ <enum value="0x8D99" name="GL_RGBA_INTEGER_EXT"/>
+ <enum value="0x8D9A" name="GL_BGR_INTEGER"/>
+ <enum value="0x8D9A" name="GL_BGR_INTEGER_EXT"/>
+ <enum value="0x8D9B" name="GL_BGRA_INTEGER"/>
+ <enum value="0x8D9B" name="GL_BGRA_INTEGER_EXT"/>
+ <enum value="0x8D9C" name="GL_LUMINANCE_INTEGER_EXT"/>
+ <enum value="0x8D9D" name="GL_LUMINANCE_ALPHA_INTEGER_EXT"/>
+ <enum value="0x8D9E" name="GL_RGBA_INTEGER_MODE_EXT"/>
+ <enum value="0x8D9F" name="GL_INT_2_10_10_10_REV"/>
+ <enum value="0x8DA0" name="GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV"/>
+ <enum value="0x8DA1" name="GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV"/>
+ <enum value="0x8DA2" name="GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum value="0x8DA3" name="GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum value="0x8DA4" name="GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum value="0x8DA5" name="GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV"/>
+ <enum value="0x8DA6" name="GL_MAX_PROGRAM_GENERIC_RESULTS_NV"/>
+ <enum value="0x8DA7" name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED"/>
+ <enum value="0x8DA7" name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB"/>
+ <enum value="0x8DA7" name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT"/>
+ <enum value="0x8DA8" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS"/>
+ <enum value="0x8DA8" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB"/>
+ <enum value="0x8DA8" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT"/>
+ <enum value="0x8DA9" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB"/>
+ <enum value="0x8DA9" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT"/>
+ <!-- Also see the odd namespace "NVTransformFeedbackToken" above -->
+ <enum value="0x8DAA" name="GL_LAYER_NV"/>
+ <enum value="0x8DAB" name="GL_DEPTH_COMPONENT32F_NV"/>
+ <enum value="0x8DAC" name="GL_DEPTH32F_STENCIL8_NV"/>
+ <enum value="0x8DAD" name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV"/>
+ <enum value="0x8DAD" name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV"/>
+ <enum value="0x8DAE" name="GL_SHADER_INCLUDE_ARB"/>
+ <enum value="0x8DAF" name="GL_DEPTH_BUFFER_FLOAT_MODE_NV"/>
+ <unused start="0x8DB0" end="0x8DB8"/>
+ <enum value="0x8DB9" name="GL_FRAMEBUFFER_SRGB"/>
+ <enum value="0x8DB9" name="GL_FRAMEBUFFER_SRGB_EXT"/>
+ <enum value="0x8DBA" name="GL_FRAMEBUFFER_SRGB_CAPABLE_EXT"/>
+ <enum value="0x8DBB" name="GL_COMPRESSED_RED_RGTC1"/>
+ <enum value="0x8DBB" name="GL_COMPRESSED_RED_RGTC1_EXT"/>
+ <enum value="0x8DBC" name="GL_COMPRESSED_SIGNED_RED_RGTC1"/>
+ <enum value="0x8DBC" name="GL_COMPRESSED_SIGNED_RED_RGTC1_EXT"/>
+ <enum value="0x8DBD" name="GL_COMPRESSED_RED_GREEN_RGTC2_EXT"/>
+ <enum value="0x8DBD" name="GL_COMPRESSED_RG_RGTC2"/>
+ <enum value="0x8DBE" name="GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT"/>
+ <enum value="0x8DBE" name="GL_COMPRESSED_SIGNED_RG_RGTC2"/>
+ <enum value="0x8DC0" name="GL_SAMPLER_1D_ARRAY"/>
+ <enum value="0x8DC0" name="GL_SAMPLER_1D_ARRAY_EXT"/>
+ <enum value="0x8DC1" name="GL_SAMPLER_2D_ARRAY"/>
+ <enum value="0x8DC1" name="GL_SAMPLER_2D_ARRAY_EXT"/>
+ <enum value="0x8DC2" name="GL_SAMPLER_BUFFER"/>
+ <enum value="0x8DC2" name="GL_SAMPLER_BUFFER_EXT"/>
+ <enum value="0x8DC3" name="GL_SAMPLER_1D_ARRAY_SHADOW"/>
+ <enum value="0x8DC3" name="GL_SAMPLER_1D_ARRAY_SHADOW_EXT"/>
+ <enum value="0x8DC4" name="GL_SAMPLER_2D_ARRAY_SHADOW"/>
+ <enum value="0x8DC4" name="GL_SAMPLER_2D_ARRAY_SHADOW_EXT"/>
+ <enum value="0x8DC4" name="GL_SAMPLER_2D_ARRAY_SHADOW_NV"/>
+ <enum value="0x8DC5" name="GL_SAMPLER_CUBE_SHADOW"/>
+ <enum value="0x8DC5" name="GL_SAMPLER_CUBE_SHADOW_EXT"/>
+ <enum value="0x8DC5" name="GL_SAMPLER_CUBE_SHADOW_NV"/>
+ <enum value="0x8DC6" name="GL_UNSIGNED_INT_VEC2"/>
+ <enum value="0x8DC6" name="GL_UNSIGNED_INT_VEC2_EXT"/>
+ <enum value="0x8DC7" name="GL_UNSIGNED_INT_VEC3"/>
+ <enum value="0x8DC7" name="GL_UNSIGNED_INT_VEC3_EXT"/>
+ <enum value="0x8DC8" name="GL_UNSIGNED_INT_VEC4"/>
+ <enum value="0x8DC8" name="GL_UNSIGNED_INT_VEC4_EXT"/>
+ <enum value="0x8DC9" name="GL_INT_SAMPLER_1D"/>
+ <enum value="0x8DC9" name="GL_INT_SAMPLER_1D_EXT"/>
+ <enum value="0x8DCA" name="GL_INT_SAMPLER_2D"/>
+ <enum value="0x8DCA" name="GL_INT_SAMPLER_2D_EXT"/>
+ <enum value="0x8DCB" name="GL_INT_SAMPLER_3D"/>
+ <enum value="0x8DCB" name="GL_INT_SAMPLER_3D_EXT"/>
+ <enum value="0x8DCC" name="GL_INT_SAMPLER_CUBE"/>
+ <enum value="0x8DCC" name="GL_INT_SAMPLER_CUBE_EXT"/>
+ <enum value="0x8DCD" name="GL_INT_SAMPLER_2D_RECT"/>
+ <enum value="0x8DCD" name="GL_INT_SAMPLER_2D_RECT_EXT"/>
+ <enum value="0x8DCE" name="GL_INT_SAMPLER_1D_ARRAY"/>
+ <enum value="0x8DCE" name="GL_INT_SAMPLER_1D_ARRAY_EXT"/>
+ <enum value="0x8DCF" name="GL_INT_SAMPLER_2D_ARRAY"/>
+ <enum value="0x8DCF" name="GL_INT_SAMPLER_2D_ARRAY_EXT"/>
+ <enum value="0x8DD0" name="GL_INT_SAMPLER_BUFFER"/>
+ <enum value="0x8DD0" name="GL_INT_SAMPLER_BUFFER_EXT"/>
+ <enum value="0x8DD1" name="GL_UNSIGNED_INT_SAMPLER_1D"/>
+ <enum value="0x8DD1" name="GL_UNSIGNED_INT_SAMPLER_1D_EXT"/>
+ <enum value="0x8DD2" name="GL_UNSIGNED_INT_SAMPLER_2D"/>
+ <enum value="0x8DD2" name="GL_UNSIGNED_INT_SAMPLER_2D_EXT"/>
+ <enum value="0x8DD3" name="GL_UNSIGNED_INT_SAMPLER_3D"/>
+ <enum value="0x8DD3" name="GL_UNSIGNED_INT_SAMPLER_3D_EXT"/>
+ <enum value="0x8DD4" name="GL_UNSIGNED_INT_SAMPLER_CUBE"/>
+ <enum value="0x8DD4" name="GL_UNSIGNED_INT_SAMPLER_CUBE_EXT"/>
+ <enum value="0x8DD5" name="GL_UNSIGNED_INT_SAMPLER_2D_RECT"/>
+ <enum value="0x8DD5" name="GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT"/>
+ <enum value="0x8DD6" name="GL_UNSIGNED_INT_SAMPLER_1D_ARRAY"/>
+ <enum value="0x8DD6" name="GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT"/>
+ <enum value="0x8DD7" name="GL_UNSIGNED_INT_SAMPLER_2D_ARRAY"/>
+ <enum value="0x8DD7" name="GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT"/>
+ <enum value="0x8DD8" name="GL_UNSIGNED_INT_SAMPLER_BUFFER"/>
+ <enum value="0x8DD8" name="GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT"/>
+ <enum value="0x8DD9" name="GL_GEOMETRY_SHADER"/>
+ <enum value="0x8DD9" name="GL_GEOMETRY_SHADER_ARB"/>
+ <enum value="0x8DD9" name="GL_GEOMETRY_SHADER_EXT"/>
+ <enum value="0x8DDA" name="GL_GEOMETRY_VERTICES_OUT_ARB"/>
+ <enum value="0x8DDA" name="GL_GEOMETRY_VERTICES_OUT_EXT"/>
+ <enum value="0x8DDB" name="GL_GEOMETRY_INPUT_TYPE_ARB"/>
+ <enum value="0x8DDB" name="GL_GEOMETRY_INPUT_TYPE_EXT"/>
+ <enum value="0x8DDC" name="GL_GEOMETRY_OUTPUT_TYPE_ARB"/>
+ <enum value="0x8DDC" name="GL_GEOMETRY_OUTPUT_TYPE_EXT"/>
+ <enum value="0x8DDD" name="GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB"/>
+ <enum value="0x8DDD" name="GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT"/>
+ <enum value="0x8DDE" name="GL_MAX_VERTEX_VARYING_COMPONENTS_ARB"/>
+ <enum value="0x8DDE" name="GL_MAX_VERTEX_VARYING_COMPONENTS_EXT"/>
+ <enum value="0x8DDF" name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS"/>
+ <enum value="0x8DDF" name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB"/>
+ <enum value="0x8DDF" name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT"/>
+ <enum value="0x8DE0" name="GL_MAX_GEOMETRY_OUTPUT_VERTICES"/>
+ <enum value="0x8DE0" name="GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB"/>
+ <enum value="0x8DE0" name="GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT"/>
+ <enum value="0x8DE1" name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS"/>
+ <enum value="0x8DE1" name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB"/>
+ <enum value="0x8DE1" name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT"/>
+ <enum value="0x8DE2" name="GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT"/>
+ <enum value="0x8DE3" name="GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT"/>
+ <enum value="0x8DE4" name="GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT"/>
+ <enum value="0x8DE5" name="GL_ACTIVE_SUBROUTINES"/>
+ <enum value="0x8DE6" name="GL_ACTIVE_SUBROUTINE_UNIFORMS"/>
+ <enum value="0x8DE7" name="GL_MAX_SUBROUTINES"/>
+ <enum value="0x8DE8" name="GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS"/>
+ <enum value="0x8DE9" name="GL_NAMED_STRING_LENGTH_ARB"/>
+ <enum value="0x8DEA" name="GL_NAMED_STRING_TYPE_ARB"/>
+ <unused start="0x8DEB" end="0x8DEC"/>
+ <enum value="0x8DED" name="GL_MAX_BINDABLE_UNIFORM_SIZE_EXT"/>
+ <enum value="0x8DEE" name="GL_UNIFORM_BUFFER_EXT"/>
+ <enum value="0x8DEF" name="GL_UNIFORM_BUFFER_BINDING_EXT"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8DF0" end="0x8E0F" vendor="OES">
+ <enum value="0x8DF0" name="GL_LOW_FLOAT"/>
+ <enum value="0x8DF1" name="GL_MEDIUM_FLOAT"/>
+ <enum value="0x8DF2" name="GL_HIGH_FLOAT"/>
+ <enum value="0x8DF3" name="GL_LOW_INT"/>
+ <enum value="0x8DF4" name="GL_MEDIUM_INT"/>
+ <enum value="0x8DF5" name="GL_HIGH_INT"/>
+ <enum value="0x8DF6" name="GL_UNSIGNED_INT_10_10_10_2_OES"/>
+ <enum value="0x8DF7" name="GL_INT_10_10_10_2_OES"/>
+ <enum value="0x8DF8" name="GL_SHADER_BINARY_FORMATS"/>
+ <enum value="0x8DF9" name="GL_NUM_SHADER_BINARY_FORMATS"/>
+ <enum value="0x8DFA" name="GL_SHADER_COMPILER"/>
+ <enum value="0x8DFB" name="GL_MAX_VERTEX_UNIFORM_VECTORS"/>
+ <enum value="0x8DFC" name="GL_MAX_VARYING_VECTORS"/>
+ <enum value="0x8DFD" name="GL_MAX_FRAGMENT_UNIFORM_VECTORS"/>
+ <unused start="0x8DFE" end="0x8E0F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8E10" end="0x8E8F" vendor="NV" comment="For Michael Gold 2006/08/07">
+ <enum value="0x8E10" name="GL_RENDERBUFFER_COLOR_SAMPLES_NV"/>
+ <enum value="0x8E11" name="GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV"/>
+ <enum value="0x8E12" name="GL_MULTISAMPLE_COVERAGE_MODES_NV"/>
+ <enum value="0x8E13" name="GL_QUERY_WAIT"/>
+ <enum value="0x8E13" name="GL_QUERY_WAIT_NV"/>
+ <enum value="0x8E14" name="GL_QUERY_NO_WAIT"/>
+ <enum value="0x8E14" name="GL_QUERY_NO_WAIT_NV"/>
+ <enum value="0x8E15" name="GL_QUERY_BY_REGION_WAIT"/>
+ <enum value="0x8E15" name="GL_QUERY_BY_REGION_WAIT_NV"/>
+ <enum value="0x8E16" name="GL_QUERY_BY_REGION_NO_WAIT"/>
+ <enum value="0x8E16" name="GL_QUERY_BY_REGION_NO_WAIT_NV"/>
+ <unused start="0x8E17" end="0x8E1D"/>
+ <enum value="0x8E1E" name="GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS"/>
+ <enum value="0x8E1F" name="GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS"/>
+ <enum value="0x8E20" name="GL_COLOR_SAMPLES_NV"/>
+ <unused start="0x8E21"/>
+ <enum value="0x8E22" name="GL_TRANSFORM_FEEDBACK"/>
+ <enum value="0x8E22" name="GL_TRANSFORM_FEEDBACK_NV"/>
+ <enum value="0x8E23" name="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED"/>
+ <enum value="0x8E23" name="GL_TRANSFORM_FEEDBACK_PAUSED" alias="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED"/>
+ <enum value="0x8E23" name="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV"/>
+ <enum value="0x8E24" name="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE"/>
+ <enum value="0x8E24" name="GL_TRANSFORM_FEEDBACK_ACTIVE" alias="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE"/>
+ <enum value="0x8E24" name="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV"/>
+ <enum value="0x8E25" name="GL_TRANSFORM_FEEDBACK_BINDING"/>
+ <enum value="0x8E25" name="GL_TRANSFORM_FEEDBACK_BINDING_NV"/>
+ <enum value="0x8E26" name="GL_FRAME_NV"/>
+ <enum value="0x8E27" name="GL_FIELDS_NV"/>
+ <enum value="0x8E28" name="GL_CURRENT_TIME_NV"/>
+ <enum value="0x8E28" name="GL_TIMESTAMP"/>
+ <enum value="0x8E28" name="GL_TIMESTAMP_EXT"/>
+ <enum value="0x8E29" name="GL_NUM_FILL_STREAMS_NV"/>
+ <enum value="0x8E2A" name="GL_PRESENT_TIME_NV"/>
+ <enum value="0x8E2B" name="GL_PRESENT_DURATION_NV"/>
+ <enum value="0x8E2C" name="GL_DEPTH_COMPONENT16_NONLINEAR_NV"/>
+ <enum value="0x8E2D" name="GL_PROGRAM_MATRIX_EXT"/>
+ <enum value="0x8E2E" name="GL_TRANSPOSE_PROGRAM_MATRIX_EXT"/>
+ <enum value="0x8E2F" name="GL_PROGRAM_MATRIX_STACK_DEPTH_EXT"/>
+ <unused start="0x8E30" end="0x8E41"/>
+ <enum value="0x8E42" name="GL_TEXTURE_SWIZZLE_R"/>
+ <enum value="0x8E42" name="GL_TEXTURE_SWIZZLE_R_EXT"/>
+ <enum value="0x8E43" name="GL_TEXTURE_SWIZZLE_G"/>
+ <enum value="0x8E43" name="GL_TEXTURE_SWIZZLE_G_EXT"/>
+ <enum value="0x8E44" name="GL_TEXTURE_SWIZZLE_B"/>
+ <enum value="0x8E44" name="GL_TEXTURE_SWIZZLE_B_EXT"/>
+ <enum value="0x8E45" name="GL_TEXTURE_SWIZZLE_A"/>
+ <enum value="0x8E45" name="GL_TEXTURE_SWIZZLE_A_EXT"/>
+ <enum value="0x8E46" name="GL_TEXTURE_SWIZZLE_RGBA"/>
+ <enum value="0x8E46" name="GL_TEXTURE_SWIZZLE_RGBA_EXT"/>
+ <enum value="0x8E47" name="GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS"/>
+ <enum value="0x8E48" name="GL_ACTIVE_SUBROUTINE_MAX_LENGTH"/>
+ <enum value="0x8E49" name="GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH"/>
+ <enum value="0x8E4A" name="GL_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum value="0x8E4B" name="GL_COMPATIBLE_SUBROUTINES"/>
+ <enum value="0x8E4C" name="GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION"/>
+ <enum value="0x8E4C" name="GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT"/>
+ <enum value="0x8E4D" name="GL_FIRST_VERTEX_CONVENTION"/>
+ <enum value="0x8E4D" name="GL_FIRST_VERTEX_CONVENTION_EXT"/>
+ <enum value="0x8E4E" name="GL_LAST_VERTEX_CONVENTION"/>
+ <enum value="0x8E4E" name="GL_LAST_VERTEX_CONVENTION_EXT"/>
+ <enum value="0x8E4F" name="GL_PROVOKING_VERTEX"/>
+ <enum value="0x8E4F" name="GL_PROVOKING_VERTEX_EXT"/>
+ <enum value="0x8E50" name="GL_SAMPLE_POSITION"/>
+ <enum value="0x8E50" name="GL_SAMPLE_POSITION_NV"/>
+ <enum value="0x8E51" name="GL_SAMPLE_MASK"/>
+ <enum value="0x8E51" name="GL_SAMPLE_MASK_NV"/>
+ <enum value="0x8E52" name="GL_SAMPLE_MASK_VALUE"/>
+ <enum value="0x8E52" name="GL_SAMPLE_MASK_VALUE_NV"/>
+ <enum value="0x8E53" name="GL_TEXTURE_BINDING_RENDERBUFFER_NV"/>
+ <enum value="0x8E54" name="GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV"/>
+ <enum value="0x8E55" name="GL_TEXTURE_RENDERBUFFER_NV"/>
+ <enum value="0x8E56" name="GL_SAMPLER_RENDERBUFFER_NV"/>
+ <enum value="0x8E57" name="GL_INT_SAMPLER_RENDERBUFFER_NV"/>
+ <enum value="0x8E58" name="GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV"/>
+ <enum value="0x8E59" name="GL_MAX_SAMPLE_MASK_WORDS"/>
+ <enum value="0x8E59" name="GL_MAX_SAMPLE_MASK_WORDS_NV"/>
+ <enum value="0x8E5A" name="GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV"/>
+ <enum value="0x8E5A" name="GL_MAX_GEOMETRY_SHADER_INVOCATIONS"/>
+ <enum value="0x8E5B" name="GL_MIN_FRAGMENT_INTERPOLATION_OFFSET"/>
+ <enum value="0x8E5B" name="GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV"/>
+ <enum value="0x8E5C" name="GL_MAX_FRAGMENT_INTERPOLATION_OFFSET"/>
+ <enum value="0x8E5C" name="GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV"/>
+ <enum value="0x8E5D" name="GL_FRAGMENT_INTERPOLATION_OFFSET_BITS"/>
+ <enum value="0x8E5D" name="GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV"/>
+ <enum value="0x8E5E" name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET"/>
+ <enum value="0x8E5E" name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB"/>
+ <enum value="0x8E5E" name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV"/>
+ <enum value="0x8E5F" name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET"/>
+ <enum value="0x8E5F" name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB"/>
+ <enum value="0x8E5F" name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV"/>
+ <unused start="0x8E60" end="0x8E6F"/>
+ <enum value="0x8E70" name="GL_MAX_TRANSFORM_FEEDBACK_BUFFERS"/>
+ <enum value="0x8E71" name="GL_MAX_VERTEX_STREAMS"/>
+ <enum value="0x8E72" name="GL_PATCH_VERTICES"/>
+ <enum value="0x8E73" name="GL_PATCH_DEFAULT_INNER_LEVEL"/>
+ <enum value="0x8E74" name="GL_PATCH_DEFAULT_OUTER_LEVEL"/>
+ <enum value="0x8E75" name="GL_TESS_CONTROL_OUTPUT_VERTICES"/>
+ <enum value="0x8E76" name="GL_TESS_GEN_MODE"/>
+ <enum value="0x8E77" name="GL_TESS_GEN_SPACING"/>
+ <enum value="0x8E78" name="GL_TESS_GEN_VERTEX_ORDER"/>
+ <enum value="0x8E79" name="GL_TESS_GEN_POINT_MODE"/>
+ <enum value="0x8E7A" name="GL_ISOLINES"/>
+ <enum value="0x8E7B" name="GL_FRACTIONAL_ODD"/>
+ <enum value="0x8E7C" name="GL_FRACTIONAL_EVEN"/>
+ <enum value="0x8E7D" name="GL_MAX_PATCH_VERTICES"/>
+ <enum value="0x8E7E" name="GL_MAX_TESS_GEN_LEVEL"/>
+ <enum value="0x8E7F" name="GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS"/>
+ <enum value="0x8E80" name="GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS"/>
+ <enum value="0x8E81" name="GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x8E82" name="GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x8E83" name="GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS"/>
+ <enum value="0x8E84" name="GL_MAX_TESS_PATCH_COMPONENTS"/>
+ <enum value="0x8E85" name="GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS"/>
+ <enum value="0x8E86" name="GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS"/>
+ <enum value="0x8E87" name="GL_TESS_EVALUATION_SHADER"/>
+ <enum value="0x8E88" name="GL_TESS_CONTROL_SHADER"/>
+ <enum value="0x8E89" name="GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS"/>
+ <enum value="0x8E8A" name="GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS"/>
+ <enum value="0x8E8C" name="GL_COMPRESSED_RGBA_BPTC_UNORM_ARB"/>
+ <enum value="0x8E8D" name="GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB"/>
+ <enum value="0x8E8E" name="GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB"/>
+ <enum value="0x8E8F" name="GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8E90" end="0x8E9F" vendor="QNX" comment="For QNX_texture_tiling, QNX_complex_polygon, QNX_stippled_lines (Khronos bug 696)">
+ <unused start="0x8E90" end="0x8E9F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8EA0" end="0x8EAF" vendor="IMG"/>
+
+ <enums namespace="GL" start="0x8EB0" end="0x8EBF" vendor="OES" comment="For Affie Munshi 2007/07/20"/>
+
+ <enums namespace="GL" start="0x8EC0" end="0x8ECF" vendor="Vincent"/>
+
+ <enums namespace="GL" start="0x8ED0" end="0x8F4F" vendor="NV" comment="For Pat Brown, Khronos bug 3191">
+ <enum value="0x8ED0" name="GL_COVERAGE_COMPONENT_NV"/>
+ <enum value="0x8ED1" name="GL_COVERAGE_COMPONENT4_NV"/>
+ <enum value="0x8ED2" name="GL_COVERAGE_ATTACHMENT_NV"/>
+ <enum value="0x8ED3" name="GL_COVERAGE_BUFFERS_NV"/>
+ <enum value="0x8ED4" name="GL_COVERAGE_SAMPLES_NV"/>
+ <enum value="0x8ED5" name="GL_COVERAGE_ALL_FRAGMENTS_NV"/>
+ <enum value="0x8ED6" name="GL_COVERAGE_EDGE_FRAGMENTS_NV"/>
+ <enum value="0x8ED7" name="GL_COVERAGE_AUTOMATIC_NV"/>
+ <unused start="0x8ED8" end="0x8F1C"/>
+ <enum value="0x8F1D" name="GL_BUFFER_GPU_ADDRESS_NV"/>
+ <enum value="0x8F1E" name="GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV"/>
+ <enum value="0x8F1F" name="GL_ELEMENT_ARRAY_UNIFIED_NV"/>
+ <enum value="0x8F20" name="GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F21" name="GL_VERTEX_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F22" name="GL_NORMAL_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F23" name="GL_COLOR_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F24" name="GL_INDEX_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F25" name="GL_TEXTURE_COORD_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F26" name="GL_EDGE_FLAG_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F27" name="GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F28" name="GL_FOG_COORD_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F29" name="GL_ELEMENT_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F2A" name="GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F2B" name="GL_VERTEX_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F2C" name="GL_NORMAL_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F2D" name="GL_COLOR_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F2E" name="GL_INDEX_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F2F" name="GL_TEXTURE_COORD_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F30" name="GL_EDGE_FLAG_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F31" name="GL_SECONDARY_COLOR_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F32" name="GL_FOG_COORD_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F33" name="GL_ELEMENT_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F34" name="GL_GPU_ADDRESS_NV"/>
+ <enum value="0x8F35" name="GL_MAX_SHADER_BUFFER_ADDRESS_NV"/>
+ <enum value="0x8F36" name="GL_COPY_READ_BUFFER"/>
+ <enum value="0x8F36" name="GL_COPY_READ_BUFFER_NV"/>
+ <enum value="0x8F36" name="GL_COPY_READ_BUFFER_BINDING" alias="GL_COPY_READ_BUFFER"/>
+ <enum value="0x8F37" name="GL_COPY_WRITE_BUFFER"/>
+ <enum value="0x8F37" name="GL_COPY_WRITE_BUFFER_NV"/>
+ <enum value="0x8F37" name="GL_COPY_WRITE_BUFFER_BINDING" alias="GL_COPY_WRITE_BUFFER"/>
+ <enum value="0x8F38" name="GL_MAX_IMAGE_UNITS"/>
+ <enum value="0x8F38" name="GL_MAX_IMAGE_UNITS_EXT"/>
+ <enum value="0x8F39" name="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS"/>
+ <enum value="0x8F39" name="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT"/>
+ <enum value="0x8F39" name="GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES" alias="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS"/>
+ <enum value="0x8F3A" name="GL_IMAGE_BINDING_NAME"/>
+ <enum value="0x8F3A" name="GL_IMAGE_BINDING_NAME_EXT"/>
+ <enum value="0x8F3B" name="GL_IMAGE_BINDING_LEVEL"/>
+ <enum value="0x8F3B" name="GL_IMAGE_BINDING_LEVEL_EXT"/>
+ <enum value="0x8F3C" name="GL_IMAGE_BINDING_LAYERED"/>
+ <enum value="0x8F3C" name="GL_IMAGE_BINDING_LAYERED_EXT"/>
+ <enum value="0x8F3D" name="GL_IMAGE_BINDING_LAYER"/>
+ <enum value="0x8F3D" name="GL_IMAGE_BINDING_LAYER_EXT"/>
+ <enum value="0x8F3E" name="GL_IMAGE_BINDING_ACCESS"/>
+ <enum value="0x8F3E" name="GL_IMAGE_BINDING_ACCESS_EXT"/>
+ <enum value="0x8F3F" name="GL_DRAW_INDIRECT_BUFFER"/>
+ <enum value="0x8F40" name="GL_DRAW_INDIRECT_UNIFIED_NV"/>
+ <enum value="0x8F41" name="GL_DRAW_INDIRECT_ADDRESS_NV"/>
+ <enum value="0x8F42" name="GL_DRAW_INDIRECT_LENGTH_NV"/>
+ <enum value="0x8F43" name="GL_DRAW_INDIRECT_BUFFER_BINDING"/>
+ <enum value="0x8F44" name="GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV"/>
+ <enum value="0x8F45" name="GL_MAX_PROGRAM_SUBROUTINE_NUM_NV"/>
+ <enum value="0x8F46" name="GL_DOUBLE_MAT2"/>
+ <enum value="0x8F46" name="GL_DOUBLE_MAT2_EXT"/>
+ <enum value="0x8F47" name="GL_DOUBLE_MAT3"/>
+ <enum value="0x8F47" name="GL_DOUBLE_MAT3_EXT"/>
+ <enum value="0x8F48" name="GL_DOUBLE_MAT4"/>
+ <enum value="0x8F48" name="GL_DOUBLE_MAT4_EXT"/>
+ <enum value="0x8F49" name="GL_DOUBLE_MAT2x3"/>
+ <enum value="0x8F49" name="GL_DOUBLE_MAT2x3_EXT"/>
+ <enum value="0x8F4A" name="GL_DOUBLE_MAT2x4"/>
+ <enum value="0x8F4A" name="GL_DOUBLE_MAT2x4_EXT"/>
+ <enum value="0x8F4B" name="GL_DOUBLE_MAT3x2"/>
+ <enum value="0x8F4B" name="GL_DOUBLE_MAT3x2_EXT"/>
+ <enum value="0x8F4C" name="GL_DOUBLE_MAT3x4"/>
+ <enum value="0x8F4C" name="GL_DOUBLE_MAT3x4_EXT"/>
+ <enum value="0x8F4D" name="GL_DOUBLE_MAT4x2"/>
+ <enum value="0x8F4D" name="GL_DOUBLE_MAT4x2_EXT"/>
+ <enum value="0x8F4E" name="GL_DOUBLE_MAT4x3"/>
+ <enum value="0x8F4E" name="GL_DOUBLE_MAT4x3_EXT"/>
+ <unused start="0x8F4F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8F50" end="0x8F5F" vendor="ZiiLabs" comment="For Jon Kennedy, Khronos public bug 75"/>
+
+ <enums namespace="GL" start="0x8F60" end="0x8F6F" vendor="ARM" comment="For Remi Pedersen, Khronos bug 3745">
+ <enum value="0x8F60" name="GL_MALI_SHADER_BINARY_ARM"/>
+ <enum value="0x8F61" name="GL_MALI_PROGRAM_BINARY_ARM"/>
+ <unused start="0x8F62" end="0x8F6F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8F70" end="0x8F7F" vendor="HI" comment="For Mark Callow, Khronos bug 4055. Shared with EGL."/>
+
+ <enums namespace="GL" start="0x8F80" end="0x8F8F" vendor="Zebra" comment="For Mike Weiblen, public bug 910"/>
+
+ <enums namespace="GL" start="0x8F90" end="0x8F9F" vendor="ARB">
+ <enum value="0x8F90" name="GL_RED_SNORM"/>
+ <enum value="0x8F91" name="GL_RG_SNORM"/>
+ <enum value="0x8F92" name="GL_RGB_SNORM"/>
+ <enum value="0x8F93" name="GL_RGBA_SNORM"/>
+ <enum value="0x8F94" name="GL_R8_SNORM"/>
+ <enum value="0x8F95" name="GL_RG8_SNORM"/>
+ <enum value="0x8F96" name="GL_RGB8_SNORM"/>
+ <enum value="0x8F97" name="GL_RGBA8_SNORM"/>
+ <enum value="0x8F98" name="GL_R16_SNORM"/>
+ <enum value="0x8F99" name="GL_RG16_SNORM"/>
+ <enum value="0x8F9A" name="GL_RGB16_SNORM"/>
+ <enum value="0x8F9B" name="GL_RGBA16_SNORM"/>
+ <enum value="0x8F9C" name="GL_SIGNED_NORMALIZED"/>
+ <enum value="0x8F9D" name="GL_PRIMITIVE_RESTART"/>
+ <enum value="0x8F9E" name="GL_PRIMITIVE_RESTART_INDEX"/>
+ <enum value="0x8F9F" name="GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8FA0" end="0x8FBF" vendor="QCOM" comment="For Maurice Ribble, bug 4512">
+ <enum value="0x8FA0" name="GL_PERFMON_GLOBAL_MODE_QCOM"/>
+ <unused start="0x8FA1" end="0x8FAF"/>
+ <enum value="0x8FB0" name="GL_BINNING_CONTROL_HINT_QCOM"/>
+ <enum value="0x8FB1" name="GL_CPU_OPTIMIZED_QCOM"/>
+ <enum value="0x8FB2" name="GL_GPU_OPTIMIZED_QCOM"/>
+ <enum value="0x8FB3" name="GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM"/>
+ <unused start="0x8FB4" end="0x8FBA"/>
+ <enum value="0x8FBB" name="GL_GPU_DISJOINT_EXT"/>
+ <unused start="0x8FBC" end="0x8FBF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8FC0" end="0x8FDF" vendor="VIV" comment="For Frido Garritsen, bug 4526">
+ <enum value="0x8FC4" name="GL_SHADER_BINARY_VIV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8FE0" end="0x8FFF" vendor="NV" comment="For Pat Brown, bug 4935">
+ <enum value="0x8FE0" name="GL_INT8_NV"/>
+ <enum value="0x8FE1" name="GL_INT8_VEC2_NV"/>
+ <enum value="0x8FE2" name="GL_INT8_VEC3_NV"/>
+ <enum value="0x8FE3" name="GL_INT8_VEC4_NV"/>
+ <enum value="0x8FE4" name="GL_INT16_NV"/>
+ <enum value="0x8FE5" name="GL_INT16_VEC2_NV"/>
+ <enum value="0x8FE6" name="GL_INT16_VEC3_NV"/>
+ <enum value="0x8FE7" name="GL_INT16_VEC4_NV"/>
+ <enum value="0x8FE9" name="GL_INT64_VEC2_NV"/>
+ <enum value="0x8FEA" name="GL_INT64_VEC3_NV"/>
+ <enum value="0x8FEB" name="GL_INT64_VEC4_NV"/>
+ <enum value="0x8FEC" name="GL_UNSIGNED_INT8_NV"/>
+ <enum value="0x8FED" name="GL_UNSIGNED_INT8_VEC2_NV"/>
+ <enum value="0x8FEE" name="GL_UNSIGNED_INT8_VEC3_NV"/>
+ <enum value="0x8FEF" name="GL_UNSIGNED_INT8_VEC4_NV"/>
+ <enum value="0x8FF0" name="GL_UNSIGNED_INT16_NV"/>
+ <enum value="0x8FF1" name="GL_UNSIGNED_INT16_VEC2_NV"/>
+ <enum value="0x8FF2" name="GL_UNSIGNED_INT16_VEC3_NV"/>
+ <enum value="0x8FF3" name="GL_UNSIGNED_INT16_VEC4_NV"/>
+ <enum value="0x8FF5" name="GL_UNSIGNED_INT64_VEC2_NV"/>
+ <enum value="0x8FF6" name="GL_UNSIGNED_INT64_VEC3_NV"/>
+ <enum value="0x8FF7" name="GL_UNSIGNED_INT64_VEC4_NV"/>
+ <enum value="0x8FF8" name="GL_FLOAT16_NV"/>
+ <enum value="0x8FF9" name="GL_FLOAT16_VEC2_NV"/>
+ <enum value="0x8FFA" name="GL_FLOAT16_VEC3_NV"/>
+ <enum value="0x8FFB" name="GL_FLOAT16_VEC4_NV"/>
+ <enum value="0x8FFC" name="GL_DOUBLE_VEC2"/>
+ <enum value="0x8FFC" name="GL_DOUBLE_VEC2_EXT"/>
+ <enum value="0x8FFD" name="GL_DOUBLE_VEC3"/>
+ <enum value="0x8FFD" name="GL_DOUBLE_VEC3_EXT"/>
+ <enum value="0x8FFE" name="GL_DOUBLE_VEC4"/>
+ <enum value="0x8FFE" name="GL_DOUBLE_VEC4_EXT"/>
+ <unused start="0x8FFF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9000" end="0x901F" vendor="AMD" comment="For Bill Licea-Kane">
+ <enum value="0x9001" name="GL_SAMPLER_BUFFER_AMD"/>
+ <enum value="0x9002" name="GL_INT_SAMPLER_BUFFER_AMD"/>
+ <enum value="0x9003" name="GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD"/>
+ <enum value="0x9004" name="GL_TESSELLATION_MODE_AMD"/>
+ <enum value="0x9005" name="GL_TESSELLATION_FACTOR_AMD"/>
+ <enum value="0x9006" name="GL_DISCRETE_AMD"/>
+ <enum value="0x9007" name="GL_CONTINUOUS_AMD"/>
+ <unused start="0x9008"/>
+ <enum value="0x9009" name="GL_TEXTURE_CUBE_MAP_ARRAY"/>
+ <enum value="0x9009" name="GL_TEXTURE_CUBE_MAP_ARRAY_ARB"/>
+ <enum value="0x900A" name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY"/>
+ <enum value="0x900A" name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB"/>
+ <enum value="0x900B" name="GL_PROXY_TEXTURE_CUBE_MAP_ARRAY"/>
+ <enum value="0x900B" name="GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB"/>
+ <enum value="0x900C" name="GL_SAMPLER_CUBE_MAP_ARRAY"/>
+ <enum value="0x900C" name="GL_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
+ <enum value="0x900D" name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW"/>
+ <enum value="0x900D" name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB"/>
+ <enum value="0x900E" name="GL_INT_SAMPLER_CUBE_MAP_ARRAY"/>
+ <enum value="0x900E" name="GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
+ <enum value="0x900F" name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY"/>
+ <enum value="0x900F" name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
+ <enum value="0x9010" name="GL_ALPHA_SNORM"/>
+ <enum value="0x9011" name="GL_LUMINANCE_SNORM"/>
+ <enum value="0x9012" name="GL_LUMINANCE_ALPHA_SNORM"/>
+ <enum value="0x9013" name="GL_INTENSITY_SNORM"/>
+ <enum value="0x9014" name="GL_ALPHA8_SNORM"/>
+ <enum value="0x9015" name="GL_LUMINANCE8_SNORM"/>
+ <enum value="0x9016" name="GL_LUMINANCE8_ALPHA8_SNORM"/>
+ <enum value="0x9017" name="GL_INTENSITY8_SNORM"/>
+ <enum value="0x9018" name="GL_ALPHA16_SNORM"/>
+ <enum value="0x9019" name="GL_LUMINANCE16_SNORM"/>
+ <enum value="0x901A" name="GL_LUMINANCE16_ALPHA16_SNORM"/>
+ <enum value="0x901B" name="GL_INTENSITY16_SNORM"/>
+ <enum value="0x901C" name="GL_FACTOR_MIN_AMD"/>
+ <enum value="0x901D" name="GL_FACTOR_MAX_AMD"/>
+ <enum value="0x901E" name="GL_DEPTH_CLAMP_NEAR_AMD"/>
+ <enum value="0x901F" name="GL_DEPTH_CLAMP_FAR_AMD"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9020" end="0x90FF" vendor="NV" comment="For Pat Brown, bug 4935">
+ <enum value="0x9020" name="GL_VIDEO_BUFFER_NV"/>
+ <enum value="0x9021" name="GL_VIDEO_BUFFER_BINDING_NV"/>
+ <enum value="0x9022" name="GL_FIELD_UPPER_NV"/>
+ <enum value="0x9023" name="GL_FIELD_LOWER_NV"/>
+ <enum value="0x9024" name="GL_NUM_VIDEO_CAPTURE_STREAMS_NV"/>
+ <enum value="0x9025" name="GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV"/>
+ <enum value="0x9026" name="GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV"/>
+ <enum value="0x9027" name="GL_LAST_VIDEO_CAPTURE_STATUS_NV"/>
+ <enum value="0x9028" name="GL_VIDEO_BUFFER_PITCH_NV"/>
+ <enum value="0x9029" name="GL_VIDEO_COLOR_CONVERSION_MATRIX_NV"/>
+ <enum value="0x902A" name="GL_VIDEO_COLOR_CONVERSION_MAX_NV"/>
+ <enum value="0x902B" name="GL_VIDEO_COLOR_CONVERSION_MIN_NV"/>
+ <enum value="0x902C" name="GL_VIDEO_COLOR_CONVERSION_OFFSET_NV"/>
+ <enum value="0x902D" name="GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV"/>
+ <enum value="0x902E" name="GL_PARTIAL_SUCCESS_NV"/>
+ <enum value="0x902F" name="GL_SUCCESS_NV"/>
+ <enum value="0x9030" name="GL_FAILURE_NV"/>
+ <enum value="0x9031" name="GL_YCBYCR8_422_NV"/>
+ <enum value="0x9032" name="GL_YCBAYCR8A_4224_NV"/>
+ <enum value="0x9033" name="GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV"/>
+ <enum value="0x9034" name="GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV"/>
+ <enum value="0x9035" name="GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV"/>
+ <enum value="0x9036" name="GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV"/>
+ <enum value="0x9037" name="GL_Z4Y12Z4CB12Z4CR12_444_NV"/>
+ <enum value="0x9038" name="GL_VIDEO_CAPTURE_FRAME_WIDTH_NV"/>
+ <enum value="0x9039" name="GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV"/>
+ <enum value="0x903A" name="GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV"/>
+ <enum value="0x903B" name="GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV"/>
+ <enum value="0x903C" name="GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV"/>
+ <unused start="0x903D" end="0x9044"/>
+ <enum value="0x9045" name="GL_TEXTURE_COVERAGE_SAMPLES_NV"/>
+ <enum value="0x9046" name="GL_TEXTURE_COLOR_SAMPLES_NV"/>
+ <unused start="0x9047" end="0x904B"/>
+ <enum value="0x904C" name="GL_IMAGE_1D"/>
+ <enum value="0x904C" name="GL_IMAGE_1D_EXT"/>
+ <enum value="0x904D" name="GL_IMAGE_2D"/>
+ <enum value="0x904D" name="GL_IMAGE_2D_EXT"/>
+ <enum value="0x904E" name="GL_IMAGE_3D"/>
+ <enum value="0x904E" name="GL_IMAGE_3D_EXT"/>
+ <enum value="0x904F" name="GL_IMAGE_2D_RECT"/>
+ <enum value="0x904F" name="GL_IMAGE_2D_RECT_EXT"/>
+ <enum value="0x9050" name="GL_IMAGE_CUBE"/>
+ <enum value="0x9050" name="GL_IMAGE_CUBE_EXT"/>
+ <enum value="0x9051" name="GL_IMAGE_BUFFER"/>
+ <enum value="0x9051" name="GL_IMAGE_BUFFER_EXT"/>
+ <enum value="0x9052" name="GL_IMAGE_1D_ARRAY"/>
+ <enum value="0x9052" name="GL_IMAGE_1D_ARRAY_EXT"/>
+ <enum value="0x9053" name="GL_IMAGE_2D_ARRAY"/>
+ <enum value="0x9053" name="GL_IMAGE_2D_ARRAY_EXT"/>
+ <enum value="0x9054" name="GL_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum value="0x9054" name="GL_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum value="0x9055" name="GL_IMAGE_2D_MULTISAMPLE"/>
+ <enum value="0x9055" name="GL_IMAGE_2D_MULTISAMPLE_EXT"/>
+ <enum value="0x9056" name="GL_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x9056" name="GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
+ <enum value="0x9057" name="GL_INT_IMAGE_1D"/>
+ <enum value="0x9057" name="GL_INT_IMAGE_1D_EXT"/>
+ <enum value="0x9058" name="GL_INT_IMAGE_2D"/>
+ <enum value="0x9058" name="GL_INT_IMAGE_2D_EXT"/>
+ <enum value="0x9059" name="GL_INT_IMAGE_3D"/>
+ <enum value="0x9059" name="GL_INT_IMAGE_3D_EXT"/>
+ <enum value="0x905A" name="GL_INT_IMAGE_2D_RECT"/>
+ <enum value="0x905A" name="GL_INT_IMAGE_2D_RECT_EXT"/>
+ <enum value="0x905B" name="GL_INT_IMAGE_CUBE"/>
+ <enum value="0x905B" name="GL_INT_IMAGE_CUBE_EXT"/>
+ <enum value="0x905C" name="GL_INT_IMAGE_BUFFER"/>
+ <enum value="0x905C" name="GL_INT_IMAGE_BUFFER_EXT"/>
+ <enum value="0x905D" name="GL_INT_IMAGE_1D_ARRAY"/>
+ <enum value="0x905D" name="GL_INT_IMAGE_1D_ARRAY_EXT"/>
+ <enum value="0x905E" name="GL_INT_IMAGE_2D_ARRAY"/>
+ <enum value="0x905E" name="GL_INT_IMAGE_2D_ARRAY_EXT"/>
+ <enum value="0x905F" name="GL_INT_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum value="0x905F" name="GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum value="0x9060" name="GL_INT_IMAGE_2D_MULTISAMPLE"/>
+ <enum value="0x9060" name="GL_INT_IMAGE_2D_MULTISAMPLE_EXT"/>
+ <enum value="0x9061" name="GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x9061" name="GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
+ <enum value="0x9062" name="GL_UNSIGNED_INT_IMAGE_1D"/>
+ <enum value="0x9062" name="GL_UNSIGNED_INT_IMAGE_1D_EXT"/>
+ <enum value="0x9063" name="GL_UNSIGNED_INT_IMAGE_2D"/>
+ <enum value="0x9063" name="GL_UNSIGNED_INT_IMAGE_2D_EXT"/>
+ <enum value="0x9064" name="GL_UNSIGNED_INT_IMAGE_3D"/>
+ <enum value="0x9064" name="GL_UNSIGNED_INT_IMAGE_3D_EXT"/>
+ <enum value="0x9065" name="GL_UNSIGNED_INT_IMAGE_2D_RECT"/>
+ <enum value="0x9065" name="GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT"/>
+ <enum value="0x9066" name="GL_UNSIGNED_INT_IMAGE_CUBE"/>
+ <enum value="0x9066" name="GL_UNSIGNED_INT_IMAGE_CUBE_EXT"/>
+ <enum value="0x9067" name="GL_UNSIGNED_INT_IMAGE_BUFFER"/>
+ <enum value="0x9067" name="GL_UNSIGNED_INT_IMAGE_BUFFER_EXT"/>
+ <enum value="0x9068" name="GL_UNSIGNED_INT_IMAGE_1D_ARRAY"/>
+ <enum value="0x9068" name="GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT"/>
+ <enum value="0x9069" name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY"/>
+ <enum value="0x9069" name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT"/>
+ <enum value="0x906A" name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum value="0x906A" name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum value="0x906B" name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE"/>
+ <enum value="0x906B" name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT"/>
+ <enum value="0x906C" name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x906C" name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
+ <enum value="0x906D" name="GL_MAX_IMAGE_SAMPLES"/>
+ <enum value="0x906D" name="GL_MAX_IMAGE_SAMPLES_EXT"/>
+ <enum value="0x906E" name="GL_IMAGE_BINDING_FORMAT"/>
+ <enum value="0x906E" name="GL_IMAGE_BINDING_FORMAT_EXT"/>
+ <enum value="0x906F" name="GL_RGB10_A2UI"/>
+ <enum value="0x9070" name="GL_PATH_FORMAT_SVG_NV"/>
+ <enum value="0x9071" name="GL_PATH_FORMAT_PS_NV"/>
+ <enum value="0x9072" name="GL_STANDARD_FONT_NAME_NV"/>
+ <enum value="0x9073" name="GL_SYSTEM_FONT_NAME_NV"/>
+ <enum value="0x9074" name="GL_FILE_NAME_NV"/>
+ <enum value="0x9075" name="GL_PATH_STROKE_WIDTH_NV"/>
+ <enum value="0x9076" name="GL_PATH_END_CAPS_NV"/>
+ <enum value="0x9077" name="GL_PATH_INITIAL_END_CAP_NV"/>
+ <enum value="0x9078" name="GL_PATH_TERMINAL_END_CAP_NV"/>
+ <enum value="0x9079" name="GL_PATH_JOIN_STYLE_NV"/>
+ <enum value="0x907A" name="GL_PATH_MITER_LIMIT_NV"/>
+ <enum value="0x907B" name="GL_PATH_DASH_CAPS_NV"/>
+ <enum value="0x907C" name="GL_PATH_INITIAL_DASH_CAP_NV"/>
+ <enum value="0x907D" name="GL_PATH_TERMINAL_DASH_CAP_NV"/>
+ <enum value="0x907E" name="GL_PATH_DASH_OFFSET_NV"/>
+ <enum value="0x907F" name="GL_PATH_CLIENT_LENGTH_NV"/>
+ <enum value="0x9080" name="GL_PATH_FILL_MODE_NV"/>
+ <enum value="0x9081" name="GL_PATH_FILL_MASK_NV"/>
+ <enum value="0x9082" name="GL_PATH_FILL_COVER_MODE_NV"/>
+ <enum value="0x9083" name="GL_PATH_STROKE_COVER_MODE_NV"/>
+ <enum value="0x9084" name="GL_PATH_STROKE_MASK_NV"/>
+ <!-- <enum value="0x9085" name="GL_PATH_SAMPLE_QUALITY_NV" comment="Removed from extension"/> -->
+ <!-- <enum value="0x9086" name="GL_PATH_STROKE_BOUND_NV" comment="Removed from extension"/> -->
+ <!-- <enum value="0x9087" name="GL_PATH_STROKE_OVERSAMPLE_COUNT_NV" comment="Removed from extension"/> -->
+ <enum value="0x9088" name="GL_COUNT_UP_NV"/>
+ <enum value="0x9089" name="GL_COUNT_DOWN_NV"/>
+ <enum value="0x908A" name="GL_PATH_OBJECT_BOUNDING_BOX_NV"/>
+ <enum value="0x908B" name="GL_CONVEX_HULL_NV"/>
+ <!-- <enum value="0x908C" name="GL_MULTI_HULLS_NV" comment="Removed from extension"/> -->
+ <enum value="0x908D" name="GL_BOUNDING_BOX_NV"/>
+ <enum value="0x908E" name="GL_TRANSLATE_X_NV"/>
+ <enum value="0x908F" name="GL_TRANSLATE_Y_NV"/>
+ <enum value="0x9090" name="GL_TRANSLATE_2D_NV"/>
+ <enum value="0x9091" name="GL_TRANSLATE_3D_NV"/>
+ <enum value="0x9092" name="GL_AFFINE_2D_NV"/>
+ <!-- <enum value="0x9093" name="GL_PROJECTIVE_2D_NV" comment="Removed from extension"/> -->
+ <enum value="0x9094" name="GL_AFFINE_3D_NV"/>
+ <!-- <enum value="0x9095" name="GL_PROJECTIVE_3D_NV" comment="Removed from extension"/> -->
+ <enum value="0x9096" name="GL_TRANSPOSE_AFFINE_2D_NV"/>
+ <!-- <enum value="0x9097" name="GL_TRANSPOSE_PROJECTIVE_2D_NV" comment="Removed from extension"/> -->
+ <enum value="0x9098" name="GL_TRANSPOSE_AFFINE_3D_NV"/>
+ <!-- <enum value="0x9099" name="GL_TRANSPOSE_PROJECTIVE_3D_NV" comment="Removed from extension"/> -->
+ <enum value="0x909A" name="GL_UTF8_NV"/>
+ <enum value="0x909B" name="GL_UTF16_NV"/>
+ <enum value="0x909C" name="GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV"/>
+ <enum value="0x909D" name="GL_PATH_COMMAND_COUNT_NV"/>
+ <enum value="0x909E" name="GL_PATH_COORD_COUNT_NV"/>
+ <enum value="0x909F" name="GL_PATH_DASH_ARRAY_COUNT_NV"/>
+ <enum value="0x90A0" name="GL_PATH_COMPUTED_LENGTH_NV"/>
+ <enum value="0x90A1" name="GL_PATH_FILL_BOUNDING_BOX_NV"/>
+ <enum value="0x90A2" name="GL_PATH_STROKE_BOUNDING_BOX_NV"/>
+ <enum value="0x90A3" name="GL_SQUARE_NV"/>
+ <enum value="0x90A4" name="GL_ROUND_NV"/>
+ <enum value="0x90A5" name="GL_TRIANGULAR_NV"/>
+ <enum value="0x90A6" name="GL_BEVEL_NV"/>
+ <enum value="0x90A7" name="GL_MITER_REVERT_NV"/>
+ <enum value="0x90A8" name="GL_MITER_TRUNCATE_NV"/>
+ <enum value="0x90A9" name="GL_SKIP_MISSING_GLYPH_NV"/>
+ <enum value="0x90AA" name="GL_USE_MISSING_GLYPH_NV"/>
+ <enum value="0x90AB" name="GL_PATH_ERROR_POSITION_NV"/>
+ <enum value="0x90AC" name="GL_PATH_FOG_GEN_MODE_NV"/>
+ <enum value="0x90AD" name="GL_ACCUM_ADJACENT_PAIRS_NV"/>
+ <enum value="0x90AE" name="GL_ADJACENT_PAIRS_NV"/>
+ <enum value="0x90AF" name="GL_FIRST_TO_REST_NV"/>
+ <enum value="0x90B0" name="GL_PATH_GEN_MODE_NV"/>
+ <enum value="0x90B1" name="GL_PATH_GEN_COEFF_NV"/>
+ <enum value="0x90B2" name="GL_PATH_GEN_COLOR_FORMAT_NV"/>
+ <enum value="0x90B3" name="GL_PATH_GEN_COMPONENTS_NV"/>
+ <enum value="0x90B4" name="GL_PATH_DASH_OFFSET_RESET_NV"/>
+ <enum value="0x90B5" name="GL_MOVE_TO_RESETS_NV"/>
+ <enum value="0x90B6" name="GL_MOVE_TO_CONTINUES_NV"/>
+ <enum value="0x90B7" name="GL_PATH_STENCIL_FUNC_NV"/>
+ <enum value="0x90B8" name="GL_PATH_STENCIL_REF_NV"/>
+ <enum value="0x90B9" name="GL_PATH_STENCIL_VALUE_MASK_NV"/>
+ <enum value="0x90BA" name="GL_SCALED_RESOLVE_FASTEST_EXT"/>
+ <enum value="0x90BB" name="GL_SCALED_RESOLVE_NICEST_EXT"/>
+ <enum value="0x90BC" name="GL_MIN_MAP_BUFFER_ALIGNMENT"/>
+ <enum value="0x90BD" name="GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV"/>
+ <enum value="0x90BE" name="GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV"/>
+ <enum value="0x90BF" name="GL_PATH_COVER_DEPTH_FUNC_NV"/>
+ <unused start="0x90C0" end="0x90C6"/>
+ <enum value="0x90C7" name="GL_IMAGE_FORMAT_COMPATIBILITY_TYPE"/>
+ <enum value="0x90C8" name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE"/>
+ <enum value="0x90C9" name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS"/>
+ <enum value="0x90CA" name="GL_MAX_VERTEX_IMAGE_UNIFORMS"/>
+ <enum value="0x90CB" name="GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS"/>
+ <enum value="0x90CC" name="GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS"/>
+ <enum value="0x90CD" name="GL_MAX_GEOMETRY_IMAGE_UNIFORMS"/>
+ <enum value="0x90CE" name="GL_MAX_FRAGMENT_IMAGE_UNIFORMS"/>
+ <enum value="0x90CF" name="GL_MAX_COMBINED_IMAGE_UNIFORMS"/>
+ <enum value="0x90D0" name="GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV"/>
+ <enum value="0x90D1" name="GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV"/>
+ <enum value="0x90D2" name="GL_SHADER_STORAGE_BUFFER"/>
+ <enum value="0x90D3" name="GL_SHADER_STORAGE_BUFFER_BINDING"/>
+ <enum value="0x90D4" name="GL_SHADER_STORAGE_BUFFER_START"/>
+ <enum value="0x90D5" name="GL_SHADER_STORAGE_BUFFER_SIZE"/>
+ <enum value="0x90D6" name="GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90D7" name="GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90D8" name="GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90D9" name="GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90DA" name="GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90DB" name="GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90DC" name="GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90DD" name="GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS"/>
+ <enum value="0x90DE" name="GL_MAX_SHADER_STORAGE_BLOCK_SIZE"/>
+ <enum value="0x90DF" name="GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT"/>
+ <unused start="0x90E0"/>
+ <enum value="0x90E1" name="GL_SYNC_X11_FENCE_EXT"/>
+ <unused start="0x90E2" end="0x90E9"/>
+ <enum value="0x90EA" name="GL_DEPTH_STENCIL_TEXTURE_MODE"/>
+ <enum value="0x90EB" name="GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS"/>
+ <enum value="0x90EB" name="GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB" alias="GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS"/>
+ <enum value="0x90EC" name="GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum value="0x90ED" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum value="0x90EE" name="GL_DISPATCH_INDIRECT_BUFFER"/>
+ <enum value="0x90EF" name="GL_DISPATCH_INDIRECT_BUFFER_BINDING"/>
+ <enum value="0x90F0" name="GL_COLOR_ATTACHMENT_EXT"/>
+ <enum value="0x90F1" name="GL_MULTIVIEW_EXT"/>
+ <enum value="0x90F2" name="GL_MAX_MULTIVIEW_BUFFERS_EXT"/>
+ <enum value="0x90F3" name="GL_CONTEXT_ROBUST_ACCESS_EXT"/>
+ <unused start="0x90F4" end="0x90FA"/>
+ <enum value="0x90FB" name="GL_COMPUTE_PROGRAM_NV"/>
+ <enum value="0x90FC" name="GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <unused start="0x90FD" end="0x90FF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9100" end="0x912F" vendor="ARB">
+ <enum value="0x9100" name="GL_TEXTURE_2D_MULTISAMPLE"/>
+ <enum value="0x9101" name="GL_PROXY_TEXTURE_2D_MULTISAMPLE"/>
+ <enum value="0x9102" name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x9103" name="GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x9104" name="GL_TEXTURE_BINDING_2D_MULTISAMPLE"/>
+ <enum value="0x9105" name="GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x9106" name="GL_TEXTURE_SAMPLES"/>
+ <enum value="0x9107" name="GL_TEXTURE_FIXED_SAMPLE_LOCATIONS"/>
+ <enum value="0x9108" name="GL_SAMPLER_2D_MULTISAMPLE"/>
+ <enum value="0x9109" name="GL_INT_SAMPLER_2D_MULTISAMPLE"/>
+ <enum value="0x910A" name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE"/>
+ <enum value="0x910B" name="GL_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x910C" name="GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x910D" name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x910E" name="GL_MAX_COLOR_TEXTURE_SAMPLES"/>
+ <enum value="0x910F" name="GL_MAX_DEPTH_TEXTURE_SAMPLES"/>
+ <enum value="0x9110" name="GL_MAX_INTEGER_SAMPLES"/>
+ <enum value="0x9111" name="GL_MAX_SERVER_WAIT_TIMEOUT"/>
+ <enum value="0x9111" name="GL_MAX_SERVER_WAIT_TIMEOUT_APPLE"/>
+ <enum value="0x9112" name="GL_OBJECT_TYPE"/>
+ <enum value="0x9112" name="GL_OBJECT_TYPE_APPLE"/>
+ <enum value="0x9113" name="GL_SYNC_CONDITION"/>
+ <enum value="0x9113" name="GL_SYNC_CONDITION_APPLE"/>
+ <enum value="0x9114" name="GL_SYNC_STATUS"/>
+ <enum value="0x9114" name="GL_SYNC_STATUS_APPLE"/>
+ <enum value="0x9115" name="GL_SYNC_FLAGS"/>
+ <enum value="0x9115" name="GL_SYNC_FLAGS_APPLE"/>
+ <enum value="0x9116" name="GL_SYNC_FENCE"/>
+ <enum value="0x9116" name="GL_SYNC_FENCE_APPLE"/>
+ <enum value="0x9117" name="GL_SYNC_GPU_COMMANDS_COMPLETE"/>
+ <enum value="0x9117" name="GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE"/>
+ <enum value="0x9118" name="GL_UNSIGNALED"/>
+ <enum value="0x9118" name="GL_UNSIGNALED_APPLE"/>
+ <enum value="0x9119" name="GL_SIGNALED"/>
+ <enum value="0x9119" name="GL_SIGNALED_APPLE"/>
+ <enum value="0x911A" name="GL_ALREADY_SIGNALED"/>
+ <enum value="0x911A" name="GL_ALREADY_SIGNALED_APPLE"/>
+ <enum value="0x911B" name="GL_TIMEOUT_EXPIRED"/>
+ <enum value="0x911B" name="GL_TIMEOUT_EXPIRED_APPLE"/>
+ <enum value="0x911C" name="GL_CONDITION_SATISFIED"/>
+ <enum value="0x911C" name="GL_CONDITION_SATISFIED_APPLE"/>
+ <enum value="0x911D" name="GL_WAIT_FAILED"/>
+ <enum value="0x911D" name="GL_WAIT_FAILED_APPLE"/>
+ <enum value="0x911F" name="GL_BUFFER_ACCESS_FLAGS"/>
+ <enum value="0x9120" name="GL_BUFFER_MAP_LENGTH"/>
+ <enum value="0x9121" name="GL_BUFFER_MAP_OFFSET"/>
+ <enum value="0x9122" name="GL_MAX_VERTEX_OUTPUT_COMPONENTS"/>
+ <enum value="0x9123" name="GL_MAX_GEOMETRY_INPUT_COMPONENTS"/>
+ <enum value="0x9124" name="GL_MAX_GEOMETRY_OUTPUT_COMPONENTS"/>
+ <enum value="0x9125" name="GL_MAX_FRAGMENT_INPUT_COMPONENTS"/>
+ <enum value="0x9126" name="GL_CONTEXT_PROFILE_MASK"/>
+ <enum value="0x9127" name="GL_UNPACK_COMPRESSED_BLOCK_WIDTH"/>
+ <enum value="0x9128" name="GL_UNPACK_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum value="0x9129" name="GL_UNPACK_COMPRESSED_BLOCK_DEPTH"/>
+ <enum value="0x912A" name="GL_UNPACK_COMPRESSED_BLOCK_SIZE"/>
+ <enum value="0x912B" name="GL_PACK_COMPRESSED_BLOCK_WIDTH"/>
+ <enum value="0x912C" name="GL_PACK_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum value="0x912D" name="GL_PACK_COMPRESSED_BLOCK_DEPTH"/>
+ <enum value="0x912E" name="GL_PACK_COMPRESSED_BLOCK_SIZE"/>
+ <enum value="0x912F" name="GL_TEXTURE_IMMUTABLE_FORMAT"/>
+ <enum value="0x912F" name="GL_TEXTURE_IMMUTABLE_FORMAT_EXT"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9130" end="0x913F" vendor="IMG" comment="Khronos bug 882">
+ <enum value="0x9130" name="GL_SGX_PROGRAM_BINARY_IMG"/>
+ <unused start="0x9131" end="0x9132"/>
+ <enum value="0x9133" name="GL_RENDERBUFFER_SAMPLES_IMG"/>
+ <enum value="0x9134" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG"/>
+ <enum value="0x9135" name="GL_MAX_SAMPLES_IMG"/>
+ <enum value="0x9136" name="GL_TEXTURE_SAMPLES_IMG"/>
+ <enum value="0x9137" name="GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG"/>
+ <enum value="0x9138" name="GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG"/>
+ <unused start="0x9139" end="0x913F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9140" end="0x923F" vendor="AMD" comment="Khronos bugs 5899, 6004">
+ <unused start="0x9140" end="0x9142"/>
+ <enum value="0x9143" name="GL_MAX_DEBUG_MESSAGE_LENGTH"/>
+ <enum value="0x9143" name="GL_MAX_DEBUG_MESSAGE_LENGTH_AMD"/>
+ <enum value="0x9143" name="GL_MAX_DEBUG_MESSAGE_LENGTH_ARB"/>
+ <enum value="0x9143" name="GL_MAX_DEBUG_MESSAGE_LENGTH_KHR"/>
+ <enum value="0x9144" name="GL_MAX_DEBUG_LOGGED_MESSAGES"/>
+ <enum value="0x9144" name="GL_MAX_DEBUG_LOGGED_MESSAGES_AMD"/>
+ <enum value="0x9144" name="GL_MAX_DEBUG_LOGGED_MESSAGES_ARB"/>
+ <enum value="0x9144" name="GL_MAX_DEBUG_LOGGED_MESSAGES_KHR"/>
+ <enum value="0x9145" name="GL_DEBUG_LOGGED_MESSAGES"/>
+ <enum value="0x9145" name="GL_DEBUG_LOGGED_MESSAGES_AMD"/>
+ <enum value="0x9145" name="GL_DEBUG_LOGGED_MESSAGES_ARB"/>
+ <enum value="0x9145" name="GL_DEBUG_LOGGED_MESSAGES_KHR"/>
+ <enum value="0x9146" name="GL_DEBUG_SEVERITY_HIGH"/>
+ <enum value="0x9146" name="GL_DEBUG_SEVERITY_HIGH_AMD"/>
+ <enum value="0x9146" name="GL_DEBUG_SEVERITY_HIGH_ARB"/>
+ <enum value="0x9146" name="GL_DEBUG_SEVERITY_HIGH_KHR"/>
+ <enum value="0x9147" name="GL_DEBUG_SEVERITY_MEDIUM"/>
+ <enum value="0x9147" name="GL_DEBUG_SEVERITY_MEDIUM_AMD"/>
+ <enum value="0x9147" name="GL_DEBUG_SEVERITY_MEDIUM_ARB"/>
+ <enum value="0x9147" name="GL_DEBUG_SEVERITY_MEDIUM_KHR"/>
+ <enum value="0x9148" name="GL_DEBUG_SEVERITY_LOW"/>
+ <enum value="0x9148" name="GL_DEBUG_SEVERITY_LOW_AMD"/>
+ <enum value="0x9148" name="GL_DEBUG_SEVERITY_LOW_ARB"/>
+ <enum value="0x9148" name="GL_DEBUG_SEVERITY_LOW_KHR"/>
+ <enum value="0x9149" name="GL_DEBUG_CATEGORY_API_ERROR_AMD"/>
+ <enum value="0x914A" name="GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD"/>
+ <enum value="0x914B" name="GL_DEBUG_CATEGORY_DEPRECATION_AMD"/>
+ <enum value="0x914C" name="GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD"/>
+ <enum value="0x914D" name="GL_DEBUG_CATEGORY_PERFORMANCE_AMD"/>
+ <enum value="0x914E" name="GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD"/>
+ <enum value="0x914F" name="GL_DEBUG_CATEGORY_APPLICATION_AMD"/>
+ <enum value="0x9150" name="GL_DEBUG_CATEGORY_OTHER_AMD"/>
+ <enum value="0x9151" name="GL_BUFFER_OBJECT_EXT"/>
+ <enum value="0x9151" name="GL_DATA_BUFFER_AMD"/>
+ <enum value="0x9152" name="GL_PERFORMANCE_MONITOR_AMD"/>
+ <enum value="0x9153" name="GL_QUERY_OBJECT_AMD"/>
+ <enum value="0x9153" name="GL_QUERY_OBJECT_EXT"/>
+ <enum value="0x9154" name="GL_VERTEX_ARRAY_OBJECT_AMD"/>
+ <enum value="0x9154" name="GL_VERTEX_ARRAY_OBJECT_EXT"/>
+ <enum value="0x9155" name="GL_SAMPLER_OBJECT_AMD"/>
+ <unused start="0x9156" end="0x915F"/>
+ <enum value="0x9160" name="GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD"/>
+ <unused start="0x9161"/>
+ <enum value="0x9192" name="GL_QUERY_BUFFER"/>
+ <enum value="0x9192" name="GL_QUERY_BUFFER_AMD"/>
+ <enum value="0x9193" name="GL_QUERY_BUFFER_BINDING"/>
+ <enum value="0x9193" name="GL_QUERY_BUFFER_BINDING_AMD"/>
+ <enum value="0x9194" name="GL_QUERY_RESULT_NO_WAIT"/>
+ <enum value="0x9194" name="GL_QUERY_RESULT_NO_WAIT_AMD"/>
+ <enum value="0x9195" name="GL_VIRTUAL_PAGE_SIZE_X_ARB"/>
+ <enum value="0x9195" name="GL_VIRTUAL_PAGE_SIZE_X_AMD"/>
+ <enum value="0x9196" name="GL_VIRTUAL_PAGE_SIZE_Y_ARB"/>
+ <enum value="0x9196" name="GL_VIRTUAL_PAGE_SIZE_Y_AMD"/>
+ <enum value="0x9197" name="GL_VIRTUAL_PAGE_SIZE_Z_ARB"/>
+ <enum value="0x9197" name="GL_VIRTUAL_PAGE_SIZE_Z_AMD"/>
+ <enum value="0x9198" name="GL_MAX_SPARSE_TEXTURE_SIZE_ARB"/>
+ <enum value="0x9198" name="GL_MAX_SPARSE_TEXTURE_SIZE_AMD"/>
+ <enum value="0x9199" name="GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB"/>
+ <enum value="0x9199" name="GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD"/>
+ <enum value="0x919A" name="GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB"/>
+ <enum value="0x919A" name="GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS"/>
+ <enum value="0x919B" name="GL_MIN_SPARSE_LEVEL_ARB"/>
+ <enum value="0x919B" name="GL_MIN_SPARSE_LEVEL_AMD"/>
+ <enum value="0x919C" name="GL_MIN_LOD_WARNING_AMD"/>
+ <enum value="0x919D" name="GL_TEXTURE_BUFFER_OFFSET"/>
+ <enum value="0x919E" name="GL_TEXTURE_BUFFER_SIZE"/>
+ <enum value="0x919F" name="GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT"/>
+ <unused start="0x91A0" end="0x91A3"/>
+ <enum value="0x91A4" name="GL_VERTEX_ELEMENT_SWIZZLE_AMD"/>
+ <enum value="0x91A5" name="GL_VERTEX_ID_SWIZZLE_AMD"/>
+ <enum value="0x91A6" name="GL_TEXTURE_SPARSE_ARB"/>
+ <enum value="0x91A7" name="GL_VIRTUAL_PAGE_SIZE_INDEX_ARB"/>
+ <enum value="0x91A8" name="GL_NUM_VIRTUAL_PAGE_SIZES_ARB"/>
+ <enum value="0x91A9" name="GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB"/>
+ <unused start="0x91AA" end="0x91B8"/>
+ <enum value="0x91B9" name="GL_COMPUTE_SHADER"/>
+ <unused start="0x91BA"/>
+ <enum value="0x91BB" name="GL_MAX_COMPUTE_UNIFORM_BLOCKS"/>
+ <enum value="0x91BC" name="GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x91BD" name="GL_MAX_COMPUTE_IMAGE_UNIFORMS"/>
+ <enum value="0x91BE" name="GL_MAX_COMPUTE_WORK_GROUP_COUNT"/>
+ <enum value="0x91BF" name="GL_MAX_COMPUTE_WORK_GROUP_SIZE"/>
+ <enum value="0x91BF" name="GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB" alias="GL_MAX_COMPUTE_WORK_GROUP_SIZE"/>
+ <unused start="0x91C0" end="0x923F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9240" end="0x924F" vendor="WEBGL" comment="Khronos bug 6473,6884">
+ <enum value="0x9240" name="GL_UNPACK_FLIP_Y_WEBGL"/>
+ <enum value="0x9241" name="GL_UNPACK_PREMULTIPLY_ALPHA_WEBGL"/>
+ <enum value="0x9242" name="GL_CONTEXT_LOST_WEBGL"/>
+ <enum value="0x9243" name="GL_UNPACK_COLORSPACE_CONVERSION_WEBGL"/>
+ <enum value="0x9244" name="GL_BROWSER_DEFAULT_WEBGL"/>
+ <unused start="0x9245" end="0x924F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9250" end="0x925F" vendor="DMP" comment="For Eisaku Ohbuchi via email">
+ <enum value="0x9250" name="GL_SHADER_BINARY_DMP"/>
+ <unused start="0x9251" end="0x925F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9260" end="0x926F" vendor="FJ" comment="Khronos bug 7486">
+ <enum value="0x9260" name="GL_GCCSO_SHADER_BINARY_FJ"/>
+ <unused start="0x9261" end="0x926F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9270" end="0x927F" vendor="OES" comment="Khronos bug 7625">
+ <enum value="0x9270" name="GL_COMPRESSED_R11_EAC"/>
+ <enum value="0x9270" name="GL_COMPRESSED_R11_EAC_OES"/>
+ <enum value="0x9271" name="GL_COMPRESSED_SIGNED_R11_EAC"/>
+ <enum value="0x9271" name="GL_COMPRESSED_SIGNED_R11_EAC_OES"/>
+ <enum value="0x9272" name="GL_COMPRESSED_RG11_EAC"/>
+ <enum value="0x9272" name="GL_COMPRESSED_RG11_EAC_OES"/>
+ <enum value="0x9273" name="GL_COMPRESSED_SIGNED_RG11_EAC"/>
+ <enum value="0x9273" name="GL_COMPRESSED_SIGNED_RG11_EAC_OES"/>
+ <enum value="0x9274" name="GL_COMPRESSED_RGB8_ETC2"/>
+ <enum value="0x9274" name="GL_COMPRESSED_RGB8_ETC2_OES"/>
+ <enum value="0x9275" name="GL_COMPRESSED_SRGB8_ETC2"/>
+ <enum value="0x9275" name="GL_COMPRESSED_SRGB8_ETC2_OES"/>
+ <enum value="0x9276" name="GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum value="0x9276" name="GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES"/>
+ <enum value="0x9277" name="GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum value="0x9277" name="GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES"/>
+ <enum value="0x9278" name="GL_COMPRESSED_RGBA8_ETC2_EAC"/>
+ <enum value="0x9278" name="GL_COMPRESSED_RGBA8_ETC2_EAC_OES"/>
+ <enum value="0x9279" name="GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"/>
+ <enum value="0x9279" name="GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_OES"/>
+ <unused start="0x927A" end="0x927F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9280" end="0x937F" vendor="NV" comment="Khronos bug 7658">
+ <enum value="0x9280" name="GL_BLEND_PREMULTIPLIED_SRC_NV"/>
+ <enum value="0x9281" name="GL_BLEND_OVERLAP_NV"/>
+ <enum value="0x9282" name="GL_UNCORRELATED_NV"/>
+ <enum value="0x9283" name="GL_DISJOINT_NV"/>
+ <enum value="0x9284" name="GL_CONJOINT_NV"/>
+ <enum value="0x9285" name="GL_BLEND_ADVANCED_COHERENT_NV"/>
+ <enum value="0x9286" name="GL_SRC_NV"/>
+ <enum value="0x9287" name="GL_DST_NV"/>
+ <enum value="0x9288" name="GL_SRC_OVER_NV"/>
+ <enum value="0x9289" name="GL_DST_OVER_NV"/>
+ <enum value="0x928A" name="GL_SRC_IN_NV"/>
+ <enum value="0x928B" name="GL_DST_IN_NV"/>
+ <enum value="0x928C" name="GL_SRC_OUT_NV"/>
+ <enum value="0x928D" name="GL_DST_OUT_NV"/>
+ <enum value="0x928E" name="GL_SRC_ATOP_NV"/>
+ <enum value="0x928F" name="GL_DST_ATOP_NV"/>
+ <unused start="0x9290"/>
+ <enum value="0x9291" name="GL_PLUS_NV"/>
+ <enum value="0x9292" name="GL_PLUS_DARKER_NV"/>
+ <unused start="0x9293"/>
+ <enum value="0x9294" name="GL_MULTIPLY_NV"/>
+ <enum value="0x9295" name="GL_SCREEN_NV"/>
+ <enum value="0x9296" name="GL_OVERLAY_NV"/>
+ <enum value="0x9297" name="GL_DARKEN_NV"/>
+ <enum value="0x9298" name="GL_LIGHTEN_NV"/>
+ <enum value="0x9299" name="GL_COLORDODGE_NV"/>
+ <enum value="0x929A" name="GL_COLORBURN_NV"/>
+ <enum value="0x929B" name="GL_HARDLIGHT_NV"/>
+ <enum value="0x929C" name="GL_SOFTLIGHT_NV"/>
+ <unused start="0x929D"/>
+ <enum value="0x929E" name="GL_DIFFERENCE_NV"/>
+ <enum value="0x929F" name="GL_MINUS_NV"/>
+ <enum value="0x92A0" name="GL_EXCLUSION_NV"/>
+ <enum value="0x92A1" name="GL_CONTRAST_NV"/>
+ <unused start="0x92A2"/>
+ <enum value="0x92A3" name="GL_INVERT_RGB_NV"/>
+ <enum value="0x92A4" name="GL_LINEARDODGE_NV"/>
+ <enum value="0x92A5" name="GL_LINEARBURN_NV"/>
+ <enum value="0x92A6" name="GL_VIVIDLIGHT_NV"/>
+ <enum value="0x92A7" name="GL_LINEARLIGHT_NV"/>
+ <enum value="0x92A8" name="GL_PINLIGHT_NV"/>
+ <enum value="0x92A9" name="GL_HARDMIX_NV"/>
+ <unused start="0x92AA" end="0x92AC"/>
+ <enum value="0x92AD" name="GL_HSL_HUE_NV"/>
+ <enum value="0x92AE" name="GL_HSL_SATURATION_NV"/>
+ <enum value="0x92AF" name="GL_HSL_COLOR_NV"/>
+ <enum value="0x92B0" name="GL_HSL_LUMINOSITY_NV"/>
+ <enum value="0x92B1" name="GL_PLUS_CLAMPED_NV"/>
+ <enum value="0x92B2" name="GL_PLUS_CLAMPED_ALPHA_NV"/>
+ <enum value="0x92B3" name="GL_MINUS_CLAMPED_NV"/>
+ <enum value="0x92B4" name="GL_INVERT_OVG_NV"/>
+ <unused start="0x92B5" end="0x92BF"/>
+ <enum value="0x92C0" name="GL_ATOMIC_COUNTER_BUFFER"/>
+ <enum value="0x92C1" name="GL_ATOMIC_COUNTER_BUFFER_BINDING"/>
+ <enum value="0x92C2" name="GL_ATOMIC_COUNTER_BUFFER_START"/>
+ <enum value="0x92C3" name="GL_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum value="0x92C4" name="GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE"/>
+ <enum value="0x92C5" name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS"/>
+ <enum value="0x92C6" name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES"/>
+ <enum value="0x92C7" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum value="0x92C8" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum value="0x92C9" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum value="0x92CA" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum value="0x92CB" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum value="0x92CC" name="GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92CD" name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92CE" name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92CF" name="GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92D0" name="GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92D1" name="GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92D2" name="GL_MAX_VERTEX_ATOMIC_COUNTERS"/>
+ <enum value="0x92D3" name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS"/>
+ <enum value="0x92D4" name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS"/>
+ <enum value="0x92D5" name="GL_MAX_GEOMETRY_ATOMIC_COUNTERS"/>
+ <enum value="0x92D6" name="GL_MAX_FRAGMENT_ATOMIC_COUNTERS"/>
+ <enum value="0x92D7" name="GL_MAX_COMBINED_ATOMIC_COUNTERS"/>
+ <enum value="0x92D8" name="GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum value="0x92D9" name="GL_ACTIVE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92DA" name="GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX"/>
+ <enum value="0x92DB" name="GL_UNSIGNED_INT_ATOMIC_COUNTER"/>
+ <enum value="0x92DC" name="GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS"/>
+ <unused start="0x92DC" end="0x92DF"/>
+ <enum value="0x92E0" name="GL_DEBUG_OUTPUT"/>
+ <enum value="0x92E0" name="GL_DEBUG_OUTPUT_KHR"/>
+ <enum value="0x92E1" name="GL_UNIFORM"/>
+ <enum value="0x92E2" name="GL_UNIFORM_BLOCK"/>
+ <enum value="0x92E3" name="GL_PROGRAM_INPUT"/>
+ <enum value="0x92E4" name="GL_PROGRAM_OUTPUT"/>
+ <enum value="0x92E5" name="GL_BUFFER_VARIABLE"/>
+ <enum value="0x92E6" name="GL_SHADER_STORAGE_BLOCK"/>
+ <enum value="0x92E7" name="GL_IS_PER_PATCH"/>
+ <enum value="0x92E8" name="GL_VERTEX_SUBROUTINE"/>
+ <enum value="0x92E9" name="GL_TESS_CONTROL_SUBROUTINE"/>
+ <enum value="0x92EA" name="GL_TESS_EVALUATION_SUBROUTINE"/>
+ <enum value="0x92EB" name="GL_GEOMETRY_SUBROUTINE"/>
+ <enum value="0x92EC" name="GL_FRAGMENT_SUBROUTINE"/>
+ <enum value="0x92ED" name="GL_COMPUTE_SUBROUTINE"/>
+ <enum value="0x92EE" name="GL_VERTEX_SUBROUTINE_UNIFORM"/>
+ <enum value="0x92EF" name="GL_TESS_CONTROL_SUBROUTINE_UNIFORM"/>
+ <enum value="0x92F0" name="GL_TESS_EVALUATION_SUBROUTINE_UNIFORM"/>
+ <enum value="0x92F1" name="GL_GEOMETRY_SUBROUTINE_UNIFORM"/>
+ <enum value="0x92F2" name="GL_FRAGMENT_SUBROUTINE_UNIFORM"/>
+ <enum value="0x92F3" name="GL_COMPUTE_SUBROUTINE_UNIFORM"/>
+ <enum value="0x92F4" name="GL_TRANSFORM_FEEDBACK_VARYING"/>
+ <enum value="0x92F5" name="GL_ACTIVE_RESOURCES"/>
+ <enum value="0x92F6" name="GL_MAX_NAME_LENGTH"/>
+ <enum value="0x92F7" name="GL_MAX_NUM_ACTIVE_VARIABLES"/>
+ <enum value="0x92F8" name="GL_MAX_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum value="0x92F9" name="GL_NAME_LENGTH"/>
+ <enum value="0x92FA" name="GL_TYPE"/>
+ <enum value="0x92FB" name="GL_ARRAY_SIZE"/>
+ <enum value="0x92FC" name="GL_OFFSET"/>
+ <enum value="0x92FD" name="GL_BLOCK_INDEX"/>
+ <enum value="0x92FE" name="GL_ARRAY_STRIDE"/>
+ <enum value="0x92FF" name="GL_MATRIX_STRIDE"/>
+ <enum value="0x9300" name="GL_IS_ROW_MAJOR"/>
+ <enum value="0x9301" name="GL_ATOMIC_COUNTER_BUFFER_INDEX"/>
+ <enum value="0x9302" name="GL_BUFFER_BINDING"/>
+ <enum value="0x9303" name="GL_BUFFER_DATA_SIZE"/>
+ <enum value="0x9304" name="GL_NUM_ACTIVE_VARIABLES"/>
+ <enum value="0x9305" name="GL_ACTIVE_VARIABLES"/>
+ <enum value="0x9306" name="GL_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum value="0x9307" name="GL_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum value="0x9308" name="GL_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum value="0x9309" name="GL_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum value="0x930A" name="GL_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum value="0x930B" name="GL_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum value="0x930C" name="GL_TOP_LEVEL_ARRAY_SIZE"/>
+ <enum value="0x930D" name="GL_TOP_LEVEL_ARRAY_STRIDE"/>
+ <enum value="0x930E" name="GL_LOCATION"/>
+ <enum value="0x930F" name="GL_LOCATION_INDEX"/>
+ <enum value="0x9310" name="GL_FRAMEBUFFER_DEFAULT_WIDTH"/>
+ <enum value="0x9311" name="GL_FRAMEBUFFER_DEFAULT_HEIGHT"/>
+ <enum value="0x9312" name="GL_FRAMEBUFFER_DEFAULT_LAYERS"/>
+ <enum value="0x9313" name="GL_FRAMEBUFFER_DEFAULT_SAMPLES"/>
+ <enum value="0x9314" name="GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS"/>
+ <enum value="0x9315" name="GL_MAX_FRAMEBUFFER_WIDTH"/>
+ <enum value="0x9316" name="GL_MAX_FRAMEBUFFER_HEIGHT"/>
+ <enum value="0x9317" name="GL_MAX_FRAMEBUFFER_LAYERS"/>
+ <enum value="0x9318" name="GL_MAX_FRAMEBUFFER_SAMPLES"/>
+ <unused start="0x9319" end="0x9343"/>
+ <enum value="0x9344" name="GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB"/>
+ <enum value="0x9345" name="GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB"/>
+ <unused start="0x9346" end="0x9349"/>
+ <enum value="0x934A" name="GL_LOCATION_COMPONENT"/>
+ <enum value="0x934B" name="GL_TRANSFORM_FEEDBACK_BUFFER_INDEX"/>
+ <enum value="0x934C" name="GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE"/>
+ <unused start="0x934D" end="0x9364"/>
+ <enum value="0x9365" name="GL_CLEAR_TEXTURE"/>
+ <unused start="0x9366" end="0x937F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9380" end="0x939F" vendor="ARB">
+ <enum value="0x9380" name="GL_NUM_SAMPLE_COUNTS"/>
+ <unused start="0x9381" end="0x939F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x93A0" end="0x93AF" vendor="ANGLE" comment="Khronos bug 8100">
+ <enum value="0x93A0" name="GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE"/>
+ <enum value="0x93A1" name="GL_BGRA8_EXT"/>
+ <enum value="0x93A2" name="GL_TEXTURE_USAGE_ANGLE"/>
+ <enum value="0x93A3" name="GL_FRAMEBUFFER_ATTACHMENT_ANGLE"/>
+ <enum value="0x93A4" name="GL_PACK_REVERSE_ROW_ORDER_ANGLE"/>
+ <unused start="0x93A5"/>
+ <enum value="0x93A6" name="GL_PROGRAM_BINARY_ANGLE"/>
+ <unused start="0x93A7" end="0x93AF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x93B0" end="0x93EF" vendor="OES" comment="Khronos bug 8853">
+ <enum value="0x93B0" name="GL_COMPRESSED_RGBA_ASTC_4x4_KHR"/>
+ <enum value="0x93B1" name="GL_COMPRESSED_RGBA_ASTC_5x4_KHR"/>
+ <enum value="0x93B2" name="GL_COMPRESSED_RGBA_ASTC_5x5_KHR"/>
+ <enum value="0x93B3" name="GL_COMPRESSED_RGBA_ASTC_6x5_KHR"/>
+ <enum value="0x93B4" name="GL_COMPRESSED_RGBA_ASTC_6x6_KHR"/>
+ <enum value="0x93B5" name="GL_COMPRESSED_RGBA_ASTC_8x5_KHR"/>
+ <enum value="0x93B6" name="GL_COMPRESSED_RGBA_ASTC_8x6_KHR"/>
+ <enum value="0x93B7" name="GL_COMPRESSED_RGBA_ASTC_8x8_KHR"/>
+ <enum value="0x93B8" name="GL_COMPRESSED_RGBA_ASTC_10x5_KHR"/>
+ <enum value="0x93B9" name="GL_COMPRESSED_RGBA_ASTC_10x6_KHR"/>
+ <enum value="0x93BA" name="GL_COMPRESSED_RGBA_ASTC_10x8_KHR"/>
+ <enum value="0x93BB" name="GL_COMPRESSED_RGBA_ASTC_10x10_KHR"/>
+ <enum value="0x93BC" name="GL_COMPRESSED_RGBA_ASTC_12x10_KHR"/>
+ <enum value="0x93BD" name="GL_COMPRESSED_RGBA_ASTC_12x12_KHR"/>
+ <unused start="0x93BE" end="0x93CF"/>
+ <enum value="0x93D0" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"/>
+ <enum value="0x93D1" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"/>
+ <enum value="0x93D2" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"/>
+ <enum value="0x93D3" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"/>
+ <enum value="0x93D4" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"/>
+ <enum value="0x93D5" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"/>
+ <enum value="0x93D6" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"/>
+ <enum value="0x93D7" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"/>
+ <enum value="0x93D8" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"/>
+ <enum value="0x93D9" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"/>
+ <enum value="0x93DA" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"/>
+ <enum value="0x93DB" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"/>
+ <enum value="0x93DC" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"/>
+ <enum value="0x93DD" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"/>
+ <unused start="0x93DE" end="0x93EF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x93F0" end="0x94EF" vendor="APPLE" comment="Khronos bug 10233">
+ <unused start="0x93F0" end="0x94EF"/>
+ </enums>
+
+<!-- Enums reservable for future use. To reserve a new range, allocate one
+ or more multiples of 16 starting at the lowest available point in this
+ block and note it in a new <enums> block immediately above.
+
+ Please remember that new enumerant allocations must be obtained by
+ request to the Khronos API registrar (see comments at the top of this
+ file) File requests in the Khronos Bugzilla, OpenGL project, Registry
+ component. -->
+
+ <enums namespace="GL" start="0x94F0" end="99999" vendor="ARB" comment="RESERVED FOR FUTURE ALLOCATIONS BY KHRONOS">
+ <unused start="0x94F0" end="99999"/>
+ </enums>
+
+<!-- Historical large block allocations, all unused except (in older days) by IBM -->
+ <enums namespace="GL" start="100000" end="100999" vendor="ARB" comment="GLU enums"/>
+ <enums namespace="GL" start="101000" end="101999" vendor="ARB" comment="Conformance test enums"/>
+ <enums namespace="GL" start="102000" end="102999" vendor="ARB" comment="Unused, unlikely to ever be used"/>
+
+ <enums namespace="GL" start="103000" end="103999" vendor="IBM" comment="IBM is out of the graphics hardware business. Most of this range will remain unused.">
+ <enum value="0x19262" name="GL_RASTER_POSITION_UNCLIPPED_IBM"/>
+ <enum value="103050" name="GL_CULL_VERTEX_IBM"/>
+ <enum value="103060" name="GL_ALL_STATIC_DATA_IBM"/>
+ <enum value="103061" name="GL_STATIC_VERTEX_ARRAY_IBM"/>
+ <enum value="103070" name="GL_VERTEX_ARRAY_LIST_IBM"/>
+ <enum value="103071" name="GL_NORMAL_ARRAY_LIST_IBM"/>
+ <enum value="103072" name="GL_COLOR_ARRAY_LIST_IBM"/>
+ <enum value="103073" name="GL_INDEX_ARRAY_LIST_IBM"/>
+ <enum value="103074" name="GL_TEXTURE_COORD_ARRAY_LIST_IBM"/>
+ <enum value="103075" name="GL_EDGE_FLAG_ARRAY_LIST_IBM"/>
+ <enum value="103076" name="GL_FOG_COORDINATE_ARRAY_LIST_IBM"/>
+ <enum value="103077" name="GL_SECONDARY_COLOR_ARRAY_LIST_IBM"/>
+ <enum value="103080" name="GL_VERTEX_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103081" name="GL_NORMAL_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103082" name="GL_COLOR_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103083" name="GL_INDEX_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103084" name="GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103085" name="GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103086" name="GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103087" name="GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM"/>
+ </enums>
+
+ <enums namespace="GL" start="104000" end="104999" vendor="NEC" comment="NEC may be out of the graphics hardware business?"/>
+ <enums namespace="GL" start="105000" end="105999" vendor="Compaq" comment="Compaq was acquired by HP"/>
+ <enums namespace="GL" start="106000" end="106999" vendor="KPC" comment="Kubota Pacific is out of business"/>
+ <enums namespace="GL" start="107000" end="107999" vendor="PGI" comment="Portland Graphics was acquired by Template Graphics, which is out of business">
+ <!-- lots of <unused> areas here which won't be computed yet -->
+ <enum value="0x1A1F8" name="GL_PREFER_DOUBLEBUFFER_HINT_PGI"/>
+ <enum value="0x1A1FD" name="GL_CONSERVE_MEMORY_HINT_PGI"/>
+ <enum value="0x1A1FE" name="GL_RECLAIM_MEMORY_HINT_PGI"/>
+ <enum value="0x1A202" name="GL_NATIVE_GRAPHICS_HANDLE_PGI"/>
+ <enum value="0x1A203" name="GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI"/>
+ <enum value="0x1A204" name="GL_NATIVE_GRAPHICS_END_HINT_PGI"/>
+ <enum value="0x1A20C" name="GL_ALWAYS_FAST_HINT_PGI"/>
+ <enum value="0x1A20D" name="GL_ALWAYS_SOFT_HINT_PGI"/>
+ <enum value="0x1A20E" name="GL_ALLOW_DRAW_OBJ_HINT_PGI"/>
+ <enum value="0x1A20F" name="GL_ALLOW_DRAW_WIN_HINT_PGI"/>
+ <enum value="0x1A210" name="GL_ALLOW_DRAW_FRG_HINT_PGI"/>
+ <enum value="0x1A211" name="GL_ALLOW_DRAW_MEM_HINT_PGI"/>
+ <enum value="0x1A216" name="GL_STRICT_DEPTHFUNC_HINT_PGI"/>
+ <enum value="0x1A217" name="GL_STRICT_LIGHTING_HINT_PGI"/>
+ <enum value="0x1A218" name="GL_STRICT_SCISSOR_HINT_PGI"/>
+ <enum value="0x1A219" name="GL_FULL_STIPPLE_HINT_PGI"/>
+ <enum value="0x1A220" name="GL_CLIP_NEAR_HINT_PGI"/>
+ <enum value="0x1A221" name="GL_CLIP_FAR_HINT_PGI"/>
+ <enum value="0x1A222" name="GL_WIDE_LINE_HINT_PGI"/>
+ <enum value="0x1A223" name="GL_BACK_NORMALS_HINT_PGI"/>
+ <enum value="0x1A22A" name="GL_VERTEX_DATA_HINT_PGI"/>
+ <enum value="0x1A22B" name="GL_VERTEX_CONSISTENT_HINT_PGI"/>
+ <enum value="0x1A22C" name="GL_MATERIAL_SIDE_HINT_PGI"/>
+ <enum value="0x1A22D" name="GL_MAX_VERTEX_HINT_PGI"/>
+ </enums>
+
+ <enums namespace="GL" start="108000" end="108999" vendor="ES" comment="Evans and Sutherland is out of the graphics hardware business"/>
+
+ <!-- SECTION: GL command definitions. -->
+ <commands namespace="GL">
+ <command>
+ <proto>void <name>glAccum</name></proto>
+ <param group="AccumOp"><ptype>GLenum</ptype> <name>op</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>value</name></param>
+ <glx type="render" opcode="137"/>
+ </command>
+ <command>
+ <proto>void <name>glAccumxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLfixed</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glActiveProgramEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glActiveShaderProgram</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glActiveShaderProgramEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glActiveStencilFaceEXT</name></proto>
+ <param group="StencilFaceDirection"><ptype>GLenum</ptype> <name>face</name></param>
+ <glx type="render" opcode="4220"/>
+ </command>
+ <command>
+ <proto>void <name>glActiveTexture</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texture</name></param>
+ <glx type="render" opcode="197"/>
+ </command>
+ <command>
+ <proto>void <name>glActiveTextureARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texture</name></param>
+ <alias name="glActiveTexture"/>
+ <glx type="render" opcode="197"/>
+ </command>
+ <command>
+ <proto>void <name>glActiveVaryingNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFragmentOp1ATI</name></proto>
+ <param group="FragmentOpATI"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Mod</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFragmentOp2ATI</name></proto>
+ <param group="FragmentOpATI"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Mod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Mod</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFragmentOp3ATI</name></proto>
+ <param group="FragmentOpATI"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Mod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Mod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3Mod</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFunc</name></proto>
+ <param group="AlphaFunction"><ptype>GLenum</ptype> <name>func</name></param>
+ <param><ptype>GLfloat</ptype> <name>ref</name></param>
+ <glx type="render" opcode="159"/>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFuncQCOM</name></proto>
+ <param><ptype>GLenum</ptype> <name>func</name></param>
+ <param><ptype>GLclampf</ptype> <name>ref</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFuncx</name></proto>
+ <param><ptype>GLenum</ptype> <name>func</name></param>
+ <param><ptype>GLfixed</ptype> <name>ref</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFuncxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>func</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>ref</name></param>
+ </command>
+ <command>
+ <proto>void <name>glApplyTextureEXT</name></proto>
+ <param group="LightTextureModeEXT"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glAreProgramsResidentNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>programs</name></param>
+ <param group="Boolean" len="n"><ptype>GLboolean</ptype> *<name>residences</name></param>
+ <glx type="vendor" opcode="1293"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glAreTexturesResident</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <param group="Boolean" len="n"><ptype>GLboolean</ptype> *<name>residences</name></param>
+ <glx type="single" opcode="143"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glAreTexturesResidentEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <param group="Boolean" len="n"><ptype>GLboolean</ptype> *<name>residences</name></param>
+ <glx type="vendor" opcode="11"/>
+ </command>
+ <command>
+ <proto>void <name>glArrayElement</name></proto>
+ <param><ptype>GLint</ptype> <name>i</name></param>
+ </command>
+ <command>
+ <proto>void <name>glArrayElementEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>i</name></param>
+ <alias name="glArrayElement"/>
+ </command>
+ <command>
+ <proto>void <name>glArrayObjectATI</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ScalarType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAsyncMarkerSGIX</name></proto>
+ <param><ptype>GLuint</ptype> <name>marker</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAttachObjectARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>containerObj</name></param>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>obj</name></param>
+ <alias name="glAttachShader"/>
+ </command>
+ <command>
+ <proto>void <name>glAttachShader</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBegin</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="4"/>
+ </command>
+ <command>
+ <proto>void <name>glBeginConditionalRender</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginConditionalRenderNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>mode</name></param>
+ <alias name="glBeginConditionalRender"/>
+ <glx type="render" opcode="348"/>
+ </command>
+ <command>
+ <proto>void <name>glBeginConditionalRenderNVX</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginFragmentShaderATI</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glBeginOcclusionQueryNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginPerfMonitorAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>monitor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginQuery</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <glx type="render" opcode="231"/>
+ </command>
+ <command>
+ <proto>void <name>glBeginQueryARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <alias name="glBeginQuery"/>
+ </command>
+ <command>
+ <proto>void <name>glBeginQueryEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginQueryIndexed</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginTransformFeedback</name></proto>
+ <param><ptype>GLenum</ptype> <name>primitiveMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginTransformFeedbackEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>primitiveMode</name></param>
+ <alias name="glBeginTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glBeginTransformFeedbackNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>primitiveMode</name></param>
+ <alias name="glBeginTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glBeginVertexShaderEXT</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glBeginVideoCaptureNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindAttribLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindAttribLocationARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param>const <ptype>GLcharARB</ptype> *<name>name</name></param>
+ <alias name="glBindAttribLocation"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBuffer</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <alias name="glBindBuffer"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferBase</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferBaseEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <alias name="glBindBufferBase"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferBaseNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <alias name="glBindBufferBase"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferOffsetEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferOffsetNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <alias name="glBindBufferOffsetEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferRange</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferRangeEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <alias name="glBindBufferRange"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferRangeNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <alias name="glBindBufferRange"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBuffersBase</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>buffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindBuffersRange</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>buffers</name></param>
+ <param>const <ptype>GLintptr</ptype> *<name>offsets</name></param>
+ <param>const <ptype>GLsizeiptr</ptype> *<name>sizes</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindFragDataLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>color</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindFragDataLocationEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>color</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ <alias name="glBindFragDataLocation"/>
+ </command>
+ <command>
+ <proto>void <name>glBindFragDataLocationIndexed</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>colorNumber</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindFragmentShaderATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindFramebuffer</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <glx type="render" opcode="236"/>
+ </command>
+ <command>
+ <proto>void <name>glBindFramebufferEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <glx type="render" opcode="4319"/>
+ </command>
+ <command>
+ <proto>void <name>glBindFramebufferOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindImageTexture</name></proto>
+ <param><ptype>GLuint</ptype> <name>unit</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>layered</name></param>
+ <param><ptype>GLint</ptype> <name>layer</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindImageTextureEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>layered</name></param>
+ <param><ptype>GLint</ptype> <name>layer</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ <param><ptype>GLint</ptype> <name>format</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindImageTextures</name></proto>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>textures</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glBindLightParameterEXT</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glBindMaterialParameterEXT</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindMultiTextureEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glBindParameterEXT</name></proto>
+ <param group="VertexShaderParameterEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindProgramARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <glx type="render" opcode="4180"/>
+ </command>
+ <command>
+ <proto>void <name>glBindProgramNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <alias name="glBindProgramARB"/>
+ <glx type="render" opcode="4180"/>
+ </command>
+ <command>
+ <proto>void <name>glBindProgramPipeline</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindProgramPipelineEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindRenderbuffer</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <glx type="render" opcode="235"/>
+ </command>
+ <command>
+ <proto>void <name>glBindRenderbufferEXT</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <glx type="render" opcode="4316"/>
+ </command>
+ <command>
+ <proto>void <name>glBindRenderbufferOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindSampler</name></proto>
+ <param><ptype>GLuint</ptype> <name>unit</name></param>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindSamplers</name></proto>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>samplers</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glBindTexGenParameterEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>unit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindTexture</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <glx type="render" opcode="4117"/>
+ </command>
+ <command>
+ <proto>void <name>glBindTextureEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <alias name="glBindTexture"/>
+ <glx type="render" opcode="4117"/>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glBindTextureUnitParameterEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>unit</name></param>
+ <param group="VertexShaderTextureUnitParameter"><ptype>GLenum</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindTextures</name></proto>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>textures</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindTransformFeedback</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindTransformFeedbackNV</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindVertexArray</name></proto>
+ <param><ptype>GLuint</ptype> <name>array</name></param>
+ <glx type="render" opcode="350"/>
+ </command>
+ <command>
+ <proto>void <name>glBindVertexArrayAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>array</name></param>
+ <alias name="glBindVertexArray"/>
+ </command>
+ <command>
+ <proto>void <name>glBindVertexArrayOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>array</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindVertexBuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindVertexBuffers</name></proto>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>buffers</name></param>
+ <param>const <ptype>GLintptr</ptype> *<name>offsets</name></param>
+ <param>const <ptype>GLsizei</ptype> *<name>strides</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindVertexShaderEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindVideoCaptureStreamBufferNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>frame_region</name></param>
+ <param group="BufferOffsetARB"><ptype>GLintptrARB</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindVideoCaptureStreamTextureNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>frame_region</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3bEXT</name></proto>
+ <param><ptype>GLbyte</ptype> <name>bx</name></param>
+ <param><ptype>GLbyte</ptype> <name>by</name></param>
+ <param><ptype>GLbyte</ptype> <name>bz</name></param>
+ <vecequiv name="glBinormal3bvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3bvEXT</name></proto>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3dEXT</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>bx</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>by</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>bz</name></param>
+ <vecequiv name="glBinormal3dvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3dvEXT</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3fEXT</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>bx</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>by</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>bz</name></param>
+ <vecequiv name="glBinormal3fvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3fvEXT</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3iEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>bx</name></param>
+ <param><ptype>GLint</ptype> <name>by</name></param>
+ <param><ptype>GLint</ptype> <name>bz</name></param>
+ <vecequiv name="glBinormal3ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3ivEXT</name></proto>
+ <param len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3sEXT</name></proto>
+ <param><ptype>GLshort</ptype> <name>bx</name></param>
+ <param><ptype>GLshort</ptype> <name>by</name></param>
+ <param><ptype>GLshort</ptype> <name>bz</name></param>
+ <vecequiv name="glBinormal3svEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3svEXT</name></proto>
+ <param len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBinormalPointerEXT</name></proto>
+ <param group="BinormalPointerTypeEXT"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBitmap</name></proto>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>xorig</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>yorig</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>xmove</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>ymove</name></param>
+ <param len="COMPSIZE(width,height)">const <ptype>GLubyte</ptype> *<name>bitmap</name></param>
+ <glx type="render" opcode="5"/>
+ <glx type="render" opcode="311" name="glBitmapPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glBitmapxOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLfixed</ptype> <name>xorig</name></param>
+ <param><ptype>GLfixed</ptype> <name>yorig</name></param>
+ <param><ptype>GLfixed</ptype> <name>xmove</name></param>
+ <param><ptype>GLfixed</ptype> <name>ymove</name></param>
+ <param len="COMPSIZE()">const <ptype>GLubyte</ptype> *<name>bitmap</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendColor</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="4096"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendColorEXT</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>alpha</name></param>
+ <alias name="glBlendColor"/>
+ <glx type="render" opcode="4096"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendColorxOES</name></proto>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>red</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>green</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>blue</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>alpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquation</name></proto>
+ <param group="BlendEquationMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="4097"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationEXT</name></proto>
+ <param group="BlendEquationModeEXT"><ptype>GLenum</ptype> <name>mode</name></param>
+ <alias name="glBlendEquation"/>
+ <glx type="render" opcode="4097"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationIndexedAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <alias name="glBlendEquationi"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationSeparate</name></proto>
+ <param group="BlendEquationModeEXT"><ptype>GLenum</ptype> <name>modeRGB</name></param>
+ <param group="BlendEquationModeEXT"><ptype>GLenum</ptype> <name>modeAlpha</name></param>
+ <glx type="render" opcode="4228"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationSeparateEXT</name></proto>
+ <param group="BlendEquationModeEXT"><ptype>GLenum</ptype> <name>modeRGB</name></param>
+ <param group="BlendEquationModeEXT"><ptype>GLenum</ptype> <name>modeAlpha</name></param>
+ <alias name="glBlendEquationSeparate"/>
+ <glx type="render" opcode="4228"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationSeparateIndexedAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>modeRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>modeAlpha</name></param>
+ <alias name="glBlendEquationSeparatei"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationSeparateOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>modeRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>modeAlpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationSeparatei</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>modeRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>modeAlpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationSeparateiARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>modeRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>modeAlpha</name></param>
+ <alias name="glBlendEquationSeparatei"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationi</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationiARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <alias name="glBlendEquationi"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFunc</name></proto>
+ <param group="BlendingFactorSrc"><ptype>GLenum</ptype> <name>sfactor</name></param>
+ <param group="BlendingFactorDest"><ptype>GLenum</ptype> <name>dfactor</name></param>
+ <glx type="render" opcode="160"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncIndexedAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>src</name></param>
+ <param><ptype>GLenum</ptype> <name>dst</name></param>
+ <alias name="glBlendFunci"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparate</name></proto>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>sfactorRGB</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>dfactorRGB</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>sfactorAlpha</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>dfactorAlpha</name></param>
+ <glx type="render" opcode="4134"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparateEXT</name></proto>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>sfactorRGB</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>dfactorRGB</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>sfactorAlpha</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>dfactorAlpha</name></param>
+ <alias name="glBlendFuncSeparate"/>
+ <glx type="render" opcode="4134"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparateINGR</name></proto>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>sfactorRGB</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>dfactorRGB</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>sfactorAlpha</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>dfactorAlpha</name></param>
+ <alias name="glBlendFuncSeparate"/>
+ <glx type="render" opcode="4134"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparateIndexedAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>srcRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>dstRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>srcAlpha</name></param>
+ <param><ptype>GLenum</ptype> <name>dstAlpha</name></param>
+ <alias name="glBlendFuncSeparatei"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparateOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>srcRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>dstRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>srcAlpha</name></param>
+ <param><ptype>GLenum</ptype> <name>dstAlpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparatei</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>srcRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>dstRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>srcAlpha</name></param>
+ <param><ptype>GLenum</ptype> <name>dstAlpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparateiARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>srcRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>dstRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>srcAlpha</name></param>
+ <param><ptype>GLenum</ptype> <name>dstAlpha</name></param>
+ <alias name="glBlendFuncSeparatei"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFunci</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>src</name></param>
+ <param><ptype>GLenum</ptype> <name>dst</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendFunciARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>src</name></param>
+ <param><ptype>GLenum</ptype> <name>dst</name></param>
+ <alias name="glBlendFunci"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendParameteriNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendBarrierNV</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glBlitFramebuffer</name></proto>
+ <param><ptype>GLint</ptype> <name>srcX0</name></param>
+ <param><ptype>GLint</ptype> <name>srcY0</name></param>
+ <param><ptype>GLint</ptype> <name>srcX1</name></param>
+ <param><ptype>GLint</ptype> <name>srcY1</name></param>
+ <param><ptype>GLint</ptype> <name>dstX0</name></param>
+ <param><ptype>GLint</ptype> <name>dstY0</name></param>
+ <param><ptype>GLint</ptype> <name>dstX1</name></param>
+ <param><ptype>GLint</ptype> <name>dstY1</name></param>
+ <param group="ClearBufferMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <param><ptype>GLenum</ptype> <name>filter</name></param>
+ <glx type="render" opcode="4330"/>
+ </command>
+ <command>
+ <proto>void <name>glBlitFramebufferANGLE</name></proto>
+ <param><ptype>GLint</ptype> <name>srcX0</name></param>
+ <param><ptype>GLint</ptype> <name>srcY0</name></param>
+ <param><ptype>GLint</ptype> <name>srcX1</name></param>
+ <param><ptype>GLint</ptype> <name>srcY1</name></param>
+ <param><ptype>GLint</ptype> <name>dstX0</name></param>
+ <param><ptype>GLint</ptype> <name>dstY0</name></param>
+ <param><ptype>GLint</ptype> <name>dstX1</name></param>
+ <param><ptype>GLint</ptype> <name>dstY1</name></param>
+ <param><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <param><ptype>GLenum</ptype> <name>filter</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlitFramebufferEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>srcX0</name></param>
+ <param><ptype>GLint</ptype> <name>srcY0</name></param>
+ <param><ptype>GLint</ptype> <name>srcX1</name></param>
+ <param><ptype>GLint</ptype> <name>srcY1</name></param>
+ <param><ptype>GLint</ptype> <name>dstX0</name></param>
+ <param><ptype>GLint</ptype> <name>dstY0</name></param>
+ <param><ptype>GLint</ptype> <name>dstX1</name></param>
+ <param><ptype>GLint</ptype> <name>dstY1</name></param>
+ <param group="ClearBufferMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <param><ptype>GLenum</ptype> <name>filter</name></param>
+ <alias name="glBlitFramebuffer"/>
+ <glx type="render" opcode="4330"/>
+ </command>
+ <command>
+ <proto>void <name>glBlitFramebufferNV</name></proto>
+ <param><ptype>GLint</ptype> <name>srcX0</name></param>
+ <param><ptype>GLint</ptype> <name>srcY0</name></param>
+ <param><ptype>GLint</ptype> <name>srcX1</name></param>
+ <param><ptype>GLint</ptype> <name>srcY1</name></param>
+ <param><ptype>GLint</ptype> <name>dstX0</name></param>
+ <param><ptype>GLint</ptype> <name>dstY0</name></param>
+ <param><ptype>GLint</ptype> <name>dstX1</name></param>
+ <param><ptype>GLint</ptype> <name>dstY1</name></param>
+ <param><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <param><ptype>GLenum</ptype> <name>filter</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBufferAddressRangeNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>address</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBufferData</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="size">const void *<name>data</name></param>
+ <param group="BufferUsageARB"><ptype>GLenum</ptype> <name>usage</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBufferDataARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferSizeARB"><ptype>GLsizeiptrARB</ptype> <name>size</name></param>
+ <param len="size">const void *<name>data</name></param>
+ <param group="BufferUsageARB"><ptype>GLenum</ptype> <name>usage</name></param>
+ <alias name="glBufferData"/>
+ </command>
+ <command>
+ <proto>void <name>glBufferParameteriAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBufferStorage</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param>const void *<name>data</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBufferSubData</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="size">const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBufferSubDataARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffsetARB"><ptype>GLintptrARB</ptype> <name>offset</name></param>
+ <param group="BufferSizeARB"><ptype>GLsizeiptrARB</ptype> <name>size</name></param>
+ <param len="size">const void *<name>data</name></param>
+ <alias name="glBufferSubData"/>
+ </command>
+ <command>
+ <proto>void <name>glCallList</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <glx type="render" opcode="1"/>
+ </command>
+ <command>
+ <proto>void <name>glCallLists</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="ListNameType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(n,type)">const void *<name>lists</name></param>
+ <glx type="render" opcode="2"/>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glCheckFramebufferStatus</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <glx type="vendor" opcode="1427"/>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glCheckFramebufferStatusEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glCheckFramebufferStatus"/>
+ <glx type="vendor" opcode="1427"/>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glCheckFramebufferStatusOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto group="FramebufferStatus"><ptype>GLenum</ptype> <name>glCheckNamedFramebufferStatusEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClampColor</name></proto>
+ <param group="ClampColorTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ClampColorModeARB"><ptype>GLenum</ptype> <name>clamp</name></param>
+ <glx type="render" opcode="234"/>
+ </command>
+ <command>
+ <proto>void <name>glClampColorARB</name></proto>
+ <param group="ClampColorTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ClampColorModeARB"><ptype>GLenum</ptype> <name>clamp</name></param>
+ <alias name="glClampColor"/>
+ <glx type="render" opcode="234"/>
+ </command>
+ <command>
+ <proto>void <name>glClear</name></proto>
+ <param group="ClearBufferMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <glx type="render" opcode="127"/>
+ </command>
+ <command>
+ <proto>void <name>glClearAccum</name></proto>
+ <param><ptype>GLfloat</ptype> <name>red</name></param>
+ <param><ptype>GLfloat</ptype> <name>green</name></param>
+ <param><ptype>GLfloat</ptype> <name>blue</name></param>
+ <param><ptype>GLfloat</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="128"/>
+ </command>
+ <command>
+ <proto>void <name>glClearAccumxOES</name></proto>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>red</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>green</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>blue</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>alpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearBufferData</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type)">const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearBufferSubData</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type)">const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearBufferfi</name></proto>
+ <param><ptype>GLenum</ptype> <name>buffer</name></param>
+ <param group="DrawBufferName"><ptype>GLint</ptype> <name>drawbuffer</name></param>
+ <param><ptype>GLfloat</ptype> <name>depth</name></param>
+ <param><ptype>GLint</ptype> <name>stencil</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearBufferfv</name></proto>
+ <param><ptype>GLenum</ptype> <name>buffer</name></param>
+ <param group="DrawBufferName"><ptype>GLint</ptype> <name>drawbuffer</name></param>
+ <param len="COMPSIZE(buffer)">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearBufferiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>buffer</name></param>
+ <param group="DrawBufferName"><ptype>GLint</ptype> <name>drawbuffer</name></param>
+ <param len="COMPSIZE(buffer)">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearBufferuiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>buffer</name></param>
+ <param group="DrawBufferName"><ptype>GLint</ptype> <name>drawbuffer</name></param>
+ <param len="COMPSIZE(buffer)">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearColor</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="130"/>
+ </command>
+ <command>
+ <proto>void <name>glClearColorIiEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>red</name></param>
+ <param><ptype>GLint</ptype> <name>green</name></param>
+ <param><ptype>GLint</ptype> <name>blue</name></param>
+ <param><ptype>GLint</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="4292"/>
+ </command>
+ <command>
+ <proto>void <name>glClearColorIuiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>red</name></param>
+ <param><ptype>GLuint</ptype> <name>green</name></param>
+ <param><ptype>GLuint</ptype> <name>blue</name></param>
+ <param><ptype>GLuint</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="4293"/>
+ </command>
+ <command>
+ <proto>void <name>glClearColorx</name></proto>
+ <param><ptype>GLfixed</ptype> <name>red</name></param>
+ <param><ptype>GLfixed</ptype> <name>green</name></param>
+ <param><ptype>GLfixed</ptype> <name>blue</name></param>
+ <param><ptype>GLfixed</ptype> <name>alpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearColorxOES</name></proto>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>red</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>green</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>blue</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>alpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearDepth</name></proto>
+ <param><ptype>GLdouble</ptype> <name>depth</name></param>
+ <glx type="render" opcode="132"/>
+ </command>
+ <command>
+ <proto>void <name>glClearDepthdNV</name></proto>
+ <param><ptype>GLdouble</ptype> <name>depth</name></param>
+ <glx type="render" opcode="4284"/>
+ </command>
+ <command>
+ <proto>void <name>glClearDepthf</name></proto>
+ <param><ptype>GLfloat</ptype> <name>d</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearDepthfOES</name></proto>
+ <param group="ClampedFloat32"><ptype>GLclampf</ptype> <name>depth</name></param>
+ <glx type="render" opcode="4308"/>
+ <alias name="glClearDepthf"/>
+ </command>
+ <command>
+ <proto>void <name>glClearDepthx</name></proto>
+ <param><ptype>GLfixed</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearDepthxOES</name></proto>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearIndex</name></proto>
+ <param group="MaskedColorIndexValueF"><ptype>GLfloat</ptype> <name>c</name></param>
+ <glx type="render" opcode="129"/>
+ </command>
+ <command>
+ <proto>void <name>glClearNamedBufferDataEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type)">const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearNamedBufferSubDataEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="COMPSIZE(format,type)">const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearStencil</name></proto>
+ <param group="StencilValue"><ptype>GLint</ptype> <name>s</name></param>
+ <glx type="render" opcode="131"/>
+ </command>
+ <command>
+ <proto>void <name>glClearTexImage</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearTexSubImage</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClientActiveTexture</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texture</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClientActiveTextureARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texture</name></param>
+ <alias name="glClientActiveTexture"/>
+ </command>
+ <command>
+ <proto>void <name>glClientActiveVertexStreamATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClientAttribDefaultEXT</name></proto>
+ <param group="ClientAttribMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glClientWaitSync</name></proto>
+ <param group="sync"><ptype>GLsync</ptype> <name>sync</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ <param><ptype>GLuint64</ptype> <name>timeout</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glClientWaitSyncAPPLE</name></proto>
+ <param><ptype>GLsync</ptype> <name>sync</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ <param><ptype>GLuint64</ptype> <name>timeout</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClipPlane</name></proto>
+ <param group="ClipPlaneName"><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>equation</name></param>
+ <glx type="render" opcode="77"/>
+ </command>
+ <command>
+ <proto>void <name>glClipPlanef</name></proto>
+ <param><ptype>GLenum</ptype> <name>p</name></param>
+ <param>const <ptype>GLfloat</ptype> *<name>eqn</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClipPlanefIMG</name></proto>
+ <param><ptype>GLenum</ptype> <name>p</name></param>
+ <param>const <ptype>GLfloat</ptype> *<name>eqn</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClipPlanefOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>equation</name></param>
+ <glx type="render" opcode="4312"/>
+ </command>
+ <command>
+ <proto>void <name>glClipPlanex</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param>const <ptype>GLfixed</ptype> *<name>equation</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClipPlanexIMG</name></proto>
+ <param><ptype>GLenum</ptype> <name>p</name></param>
+ <param>const <ptype>GLfixed</ptype> *<name>eqn</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClipPlanexOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>equation</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor3b</name></proto>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>red</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>green</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3bv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3bv</name></proto>
+ <param group="ColorB" len="3">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="6"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3d</name></proto>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>red</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>green</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3dv</name></proto>
+ <param group="ColorD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="7"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3f</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor3fVertex3fvSUN</name></proto>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor3fv</name></proto>
+ <param group="ColorF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="8"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>red</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>green</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3hvNV</name></proto>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4244"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3i</name></proto>
+ <param group="ColorI"><ptype>GLint</ptype> <name>red</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>green</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3iv</name></proto>
+ <param group="ColorI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="9"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3s</name></proto>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>red</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>green</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3sv</name></proto>
+ <param group="ColorS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="10"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3ub</name></proto>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>red</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>green</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3ubv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3ubv</name></proto>
+ <param group="ColorUB" len="3">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="11"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3ui</name></proto>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>red</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>green</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3uiv</name></proto>
+ <param group="ColorUI" len="3">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="12"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3us</name></proto>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>red</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>green</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3usv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3usv</name></proto>
+ <param group="ColorUS" len="3">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="13"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>red</name></param>
+ <param><ptype>GLfixed</ptype> <name>green</name></param>
+ <param><ptype>GLfixed</ptype> <name>blue</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor3xvOES</name></proto>
+ <param len="3">const <ptype>GLfixed</ptype> *<name>components</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4b</name></proto>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>red</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>green</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>blue</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4bv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4bv</name></proto>
+ <param group="ColorB" len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="14"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4d</name></proto>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>red</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>green</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>blue</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4dv</name></proto>
+ <param group="ColorD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="15"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4f</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4fNormal3fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4fNormal3fVertex3fvSUN</name></proto>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4fv</name></proto>
+ <param group="ColorF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="16"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>red</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>green</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>blue</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4hvNV</name></proto>
+ <param group="Half16NV" len="4">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4245"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4i</name></proto>
+ <param group="ColorI"><ptype>GLint</ptype> <name>red</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>green</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>blue</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4iv</name></proto>
+ <param group="ColorI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="17"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4s</name></proto>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>red</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>green</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>blue</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4sv</name></proto>
+ <param group="ColorS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="18"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4ub</name></proto>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>red</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>green</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>blue</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4ubv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4ubVertex2fSUN</name></proto>
+ <param><ptype>GLubyte</ptype> <name>r</name></param>
+ <param><ptype>GLubyte</ptype> <name>g</name></param>
+ <param><ptype>GLubyte</ptype> <name>b</name></param>
+ <param><ptype>GLubyte</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4ubVertex2fvSUN</name></proto>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>c</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4ubVertex3fSUN</name></proto>
+ <param><ptype>GLubyte</ptype> <name>r</name></param>
+ <param><ptype>GLubyte</ptype> <name>g</name></param>
+ <param><ptype>GLubyte</ptype> <name>b</name></param>
+ <param><ptype>GLubyte</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4ubVertex3fvSUN</name></proto>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4ubv</name></proto>
+ <param group="ColorUB" len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="19"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4ui</name></proto>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>red</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>green</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>blue</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4uiv</name></proto>
+ <param group="ColorUI" len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="20"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4us</name></proto>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>red</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>green</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>blue</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4usv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4usv</name></proto>
+ <param group="ColorUS" len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="21"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4x</name></proto>
+ <param><ptype>GLfixed</ptype> <name>red</name></param>
+ <param><ptype>GLfixed</ptype> <name>green</name></param>
+ <param><ptype>GLfixed</ptype> <name>blue</name></param>
+ <param><ptype>GLfixed</ptype> <name>alpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>red</name></param>
+ <param><ptype>GLfixed</ptype> <name>green</name></param>
+ <param><ptype>GLfixed</ptype> <name>blue</name></param>
+ <param><ptype>GLfixed</ptype> <name>alpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4xvOES</name></proto>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>components</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorFormatNV</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorFragmentOp1ATI</name></proto>
+ <param group="FragmentOpATI"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMask</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Mod</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorFragmentOp2ATI</name></proto>
+ <param group="FragmentOpATI"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMask</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Mod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Mod</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorFragmentOp3ATI</name></proto>
+ <param group="FragmentOpATI"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMask</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Mod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Mod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3Mod</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorMask</name></proto>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>red</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>green</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>blue</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="134"/>
+ </command>
+ <command>
+ <proto>void <name>glColorMaskIndexedEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>r</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>g</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>b</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>a</name></param>
+ <alias name="glColorMaski"/>
+ </command>
+ <command>
+ <proto>void <name>glColorMaski</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>r</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>g</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>b</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>a</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorMaterial</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="ColorMaterialParameter"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="78"/>
+ </command>
+ <command>
+ <proto>void <name>glColorP3ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>color</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorP3uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>color</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorP4ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>color</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorP4uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>color</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorPointer</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorPointerEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(size,type,stride,count)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorPointerListIBM</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorPointervINTEL</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="4">const void **<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorSubTable</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>start</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,count)">const void *<name>data</name></param>
+ <glx type="render" opcode="195"/>
+ <glx type="render" opcode="312" name="glColorSubTablePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glColorSubTableEXT</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>start</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,count)">const void *<name>data</name></param>
+ <alias name="glColorSubTable"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTable</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>table</name></param>
+ <glx type="render" opcode="2053"/>
+ <glx type="render" opcode="313" name="glColorTablePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTableEXT</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>table</name></param>
+ <alias name="glColorTable"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTableParameterfv</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ColorTableParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2054"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTableParameterfvSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ColorTableParameterPNameSGI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glColorTableParameterfv"/>
+ <glx type="render" opcode="2054"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTableParameteriv</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ColorTableParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2055"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTableParameterivSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ColorTableParameterPNameSGI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glColorTableParameteriv"/>
+ <glx type="render" opcode="2055"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTableSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>table</name></param>
+ <alias name="glColorTable"/>
+ <glx type="render" opcode="2053"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerInputNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerPortionNV"><ptype>GLenum</ptype> <name>portion</name></param>
+ <param group="CombinerVariableNV"><ptype>GLenum</ptype> <name>variable</name></param>
+ <param group="CombinerRegisterNV"><ptype>GLenum</ptype> <name>input</name></param>
+ <param group="CombinerMappingNV"><ptype>GLenum</ptype> <name>mapping</name></param>
+ <param group="CombinerComponentUsageNV"><ptype>GLenum</ptype> <name>componentUsage</name></param>
+ <glx type="render" opcode="4140"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerOutputNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerPortionNV"><ptype>GLenum</ptype> <name>portion</name></param>
+ <param group="CombinerRegisterNV"><ptype>GLenum</ptype> <name>abOutput</name></param>
+ <param group="CombinerRegisterNV"><ptype>GLenum</ptype> <name>cdOutput</name></param>
+ <param group="CombinerRegisterNV"><ptype>GLenum</ptype> <name>sumOutput</name></param>
+ <param group="CombinerScaleNV"><ptype>GLenum</ptype> <name>scale</name></param>
+ <param group="CombinerBiasNV"><ptype>GLenum</ptype> <name>bias</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>abDotProduct</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>cdDotProduct</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>muxSum</name></param>
+ <glx type="render" opcode="4141"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerParameterfNV</name></proto>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="4136"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerParameterfvNV</name></proto>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4137"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerParameteriNV</name></proto>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="4138"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerParameterivNV</name></proto>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4139"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerStageParameterfvNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompileShader</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompileShaderARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>shaderObj</name></param>
+ <alias name="glCompileShader"/>
+ </command>
+ <command>
+ <proto>void <name>glCompileShaderIncludeARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLchar</ptype> *const*<name>path</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedMultiTexImage1DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedMultiTexImage2DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedMultiTexImage3DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedMultiTexSubImage1DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedMultiTexSubImage2DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedMultiTexSubImage3DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage1D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <glx type="render" opcode="214"/>
+ <glx type="render" opcode="314" name="glCompressedTexImage1DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage1DARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <alias name="glCompressedTexImage1D"/>
+ <glx type="render" opcode="214"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage2D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <glx type="render" opcode="215"/>
+ <glx type="render" opcode="315" name="glCompressedTexImage2DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage2DARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <alias name="glCompressedTexImage2D"/>
+ <glx type="render" opcode="215"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage3D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <glx type="render" opcode="216"/>
+ <glx type="render" opcode="316" name="glCompressedTexImage3DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage3DARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <alias name="glCompressedTexImage3D"/>
+ <glx type="render" opcode="216"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage3DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param>const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage1D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <glx type="render" opcode="217"/>
+ <glx type="render" opcode="317" name="glCompressedTexSubImage1DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage1DARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <alias name="glCompressedTexSubImage1D"/>
+ <glx type="render" opcode="217"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage2D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <glx type="render" opcode="218"/>
+ <glx type="render" opcode="318" name="glCompressedTexSubImage2DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage2DARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <alias name="glCompressedTexSubImage2D"/>
+ <glx type="render" opcode="218"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage3D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <glx type="render" opcode="219"/>
+ <glx type="render" opcode="319" name="glCompressedTexSubImage3DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage3DARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <alias name="glCompressedTexSubImage3D"/>
+ <glx type="render" opcode="219"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage3DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param>const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureImage1DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureImage2DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureImage3DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureSubImage1DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureSubImage2DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureSubImage3DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionFilter1D</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>image</name></param>
+ <glx type="render" opcode="4101"/>
+ <glx type="render" opcode="320" name="glConvolutionFilter1DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionFilter1DEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>image</name></param>
+ <alias name="glConvolutionFilter1D"/>
+ <glx type="render" opcode="4101"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionFilter2D</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>image</name></param>
+ <glx type="render" opcode="4102"/>
+ <glx type="render" opcode="321" name="glConvolutionFilter2DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionFilter2DEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>image</name></param>
+ <alias name="glConvolutionFilter2D"/>
+ <glx type="render" opcode="4102"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterf</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>params</name></param>
+ <glx type="render" opcode="4103"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterfEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>params</name></param>
+ <alias name="glConvolutionParameterf"/>
+ <glx type="render" opcode="4103"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterfv</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4104"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterfvEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glConvolutionParameterfv"/>
+ <glx type="render" opcode="4104"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameteri</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>params</name></param>
+ <glx type="render" opcode="4105"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameteriEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>params</name></param>
+ <alias name="glConvolutionParameteri"/>
+ <glx type="render" opcode="4105"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameteriv</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4106"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterivEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glConvolutionParameteriv"/>
+ <glx type="render" opcode="4106"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyBufferSubData</name></proto>
+ <param><ptype>GLenum</ptype> <name>readTarget</name></param>
+ <param><ptype>GLenum</ptype> <name>writeTarget</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>readOffset</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>writeOffset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyBufferSubDataNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>readTarget</name></param>
+ <param><ptype>GLenum</ptype> <name>writeTarget</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>readOffset</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>writeOffset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <alias name="glCopyBufferSubData"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyColorSubTable</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>start</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <glx type="render" opcode="196"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyColorSubTableEXT</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>start</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <alias name="glCopyColorSubTable"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyColorTable</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <glx type="render" opcode="2056"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyColorTableSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <alias name="glCopyColorTable"/>
+ <glx type="render" opcode="2056"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyConvolutionFilter1D</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <glx type="render" opcode="4107"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyConvolutionFilter1DEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <alias name="glCopyConvolutionFilter1D"/>
+ <glx type="render" opcode="4107"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyConvolutionFilter2D</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="4108"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyConvolutionFilter2DEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <alias name="glCopyConvolutionFilter2D"/>
+ <glx type="render" opcode="4108"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyImageSubData</name></proto>
+ <param><ptype>GLuint</ptype> <name>srcName</name></param>
+ <param><ptype>GLenum</ptype> <name>srcTarget</name></param>
+ <param><ptype>GLint</ptype> <name>srcLevel</name></param>
+ <param><ptype>GLint</ptype> <name>srcX</name></param>
+ <param><ptype>GLint</ptype> <name>srcY</name></param>
+ <param><ptype>GLint</ptype> <name>srcZ</name></param>
+ <param><ptype>GLuint</ptype> <name>dstName</name></param>
+ <param><ptype>GLenum</ptype> <name>dstTarget</name></param>
+ <param><ptype>GLint</ptype> <name>dstLevel</name></param>
+ <param><ptype>GLint</ptype> <name>dstX</name></param>
+ <param><ptype>GLint</ptype> <name>dstY</name></param>
+ <param><ptype>GLint</ptype> <name>dstZ</name></param>
+ <param><ptype>GLsizei</ptype> <name>srcWidth</name></param>
+ <param><ptype>GLsizei</ptype> <name>srcHeight</name></param>
+ <param><ptype>GLsizei</ptype> <name>srcDepth</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyImageSubDataNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>srcName</name></param>
+ <param><ptype>GLenum</ptype> <name>srcTarget</name></param>
+ <param><ptype>GLint</ptype> <name>srcLevel</name></param>
+ <param><ptype>GLint</ptype> <name>srcX</name></param>
+ <param><ptype>GLint</ptype> <name>srcY</name></param>
+ <param><ptype>GLint</ptype> <name>srcZ</name></param>
+ <param><ptype>GLuint</ptype> <name>dstName</name></param>
+ <param><ptype>GLenum</ptype> <name>dstTarget</name></param>
+ <param><ptype>GLint</ptype> <name>dstLevel</name></param>
+ <param><ptype>GLint</ptype> <name>dstX</name></param>
+ <param><ptype>GLint</ptype> <name>dstY</name></param>
+ <param><ptype>GLint</ptype> <name>dstZ</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <glx type="render" opcode="4291"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyMultiTexImage1DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyMultiTexImage2DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyMultiTexSubImage1DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyMultiTexSubImage2DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyMultiTexSubImage3DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>resultPath</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>srcPath</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyPixels</name></proto>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelCopyType"><ptype>GLenum</ptype> <name>type</name></param>
+ <glx type="render" opcode="172"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexImage1D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <glx type="render" opcode="4119"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexImage1DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <alias name="glCopyTexImage1D"/>
+ <glx type="render" opcode="4119"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexImage2D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <glx type="render" opcode="4120"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexImage2DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <alias name="glCopyTexImage2D"/>
+ <glx type="render" opcode="4120"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage1D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <glx type="render" opcode="4121"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage1DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <alias name="glCopyTexSubImage1D"/>
+ <glx type="render" opcode="4121"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage2D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="4122"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage2DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <alias name="glCopyTexSubImage2D"/>
+ <glx type="render" opcode="4122"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage3D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="4123"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage3DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <alias name="glCopyTexSubImage3D"/>
+ <glx type="render" opcode="4123"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage3DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureImage1DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureImage2DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureLevelsAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>destinationTexture</name></param>
+ <param><ptype>GLuint</ptype> <name>sourceTexture</name></param>
+ <param><ptype>GLint</ptype> <name>sourceBaseLevel</name></param>
+ <param><ptype>GLsizei</ptype> <name>sourceLevelCount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureSubImage1DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureSubImage2DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureSubImage3DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCoverFillPathInstancedNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param group="PathElement" len="COMPSIZE(numPaths,pathNameType,paths)">const void *<name>paths</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param group="PathCoverMode"><ptype>GLenum</ptype> <name>coverMode</name></param>
+ <param group="PathTransformType"><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param len="COMPSIZE(numPaths,transformType)">const <ptype>GLfloat</ptype> *<name>transformValues</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCoverFillPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathCoverMode"><ptype>GLenum</ptype> <name>coverMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCoverStrokePathInstancedNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param group="PathElement" len="COMPSIZE(numPaths,pathNameType,paths)">const void *<name>paths</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param group="PathCoverMode"><ptype>GLenum</ptype> <name>coverMode</name></param>
+ <param group="PathTransformType"><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param len="COMPSIZE(numPaths,transformType)">const <ptype>GLfloat</ptype> *<name>transformValues</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCoverStrokePathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathCoverMode"><ptype>GLenum</ptype> <name>coverMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCoverageMaskNV</name></proto>
+ <param><ptype>GLboolean</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCoverageOperationNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>operation</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glCreateProgram</name></proto>
+ </command>
+ <command>
+ <proto group="handleARB"><ptype>GLhandleARB</ptype> <name>glCreateProgramObjectARB</name></proto>
+ <alias name="glCreateProgram"/>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glCreateShader</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ </command>
+ <command>
+ <proto group="handleARB"><ptype>GLhandleARB</ptype> <name>glCreateShaderObjectARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>shaderType</name></param>
+ <alias name="glCreateShader"/>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glCreateShaderProgramEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>string</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glCreateShaderProgramv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLchar</ptype> *const*<name>strings</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glCreateShaderProgramvEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param>const <ptype>GLchar</ptype> **<name>strings</name></param>
+ </command>
+ <command>
+ <proto group="sync"><ptype>GLsync</ptype> <name>glCreateSyncFromCLeventARB</name></proto>
+ <param group="cl_context"><ptype>struct _cl_context</ptype> *<name>context</name></param>
+ <param group="cl_event"><ptype>struct _cl_event</ptype> *<name>event</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCullFace</name></proto>
+ <param group="CullFaceMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="79"/>
+ </command>
+ <command>
+ <proto>void <name>glCullParameterdvEXT</name></proto>
+ <param group="CullParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCullParameterfvEXT</name></proto>
+ <param group="CullParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCurrentPaletteMatrixARB</name></proto>
+ <param><ptype>GLint</ptype> <name>index</name></param>
+ <glx type="render" opcode="4329"/>
+ </command>
+ <command>
+ <proto>void <name>glCurrentPaletteMatrixOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>matrixpaletteindex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageCallback</name></proto>
+ <param><ptype>GLDEBUGPROC</ptype> <name>callback</name></param>
+ <param>const void *<name>userParam</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageCallbackAMD</name></proto>
+ <param><ptype>GLDEBUGPROCAMD</ptype> <name>callback</name></param>
+ <param>void *<name>userParam</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageCallbackARB</name></proto>
+ <param><ptype>GLDEBUGPROCARB</ptype> <name>callback</name></param>
+ <param len="COMPSIZE(callback)">const void *<name>userParam</name></param>
+ <alias name="glDebugMessageCallback"/>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageCallbackKHR</name></proto>
+ <param><ptype>GLDEBUGPROCKHR</ptype> <name>callback</name></param>
+ <param>const void *<name>userParam</name></param>
+ <alias name="glDebugMessageCallback"/>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageControl</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>enabled</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageControlARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>enabled</name></param>
+ <alias name="glDebugMessageControl"/>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageControlKHR</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <param><ptype>GLboolean</ptype> <name>enabled</name></param>
+ <alias name="glDebugMessageControl"/>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageEnableAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>category</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>enabled</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageInsert</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="COMPSIZE(buf,length)">const <ptype>GLchar</ptype> *<name>buf</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageInsertAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>category</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length">const <ptype>GLchar</ptype> *<name>buf</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageInsertARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length">const <ptype>GLchar</ptype> *<name>buf</name></param>
+ <alias name="glDebugMessageInsert"/>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageInsertKHR</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>buf</name></param>
+ <alias name="glDebugMessageInsert"/>
+ </command>
+ <command>
+ <proto>void <name>glDeformSGIX</name></proto>
+ <param group="FfdMaskSGIX"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <glx type="render" opcode="2075"/>
+ </command>
+ <command>
+ <proto>void <name>glDeformationMap3dSGIX</name></proto>
+ <param group="FfdTargetSGIX"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>w1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>w2</name></param>
+ <param><ptype>GLint</ptype> <name>wstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>worder</name></param>
+ <param group="CoordD" len="COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)">const <ptype>GLdouble</ptype> *<name>points</name></param>
+ <glx type="render" opcode="2073"/>
+ </command>
+ <command>
+ <proto>void <name>glDeformationMap3fSGIX</name></proto>
+ <param group="FfdTargetSGIX"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>w1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>w2</name></param>
+ <param><ptype>GLint</ptype> <name>wstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>worder</name></param>
+ <param group="CoordF" len="COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="render" opcode="2074"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteAsyncMarkersSGIX</name></proto>
+ <param><ptype>GLuint</ptype> <name>marker</name></param>
+ <param><ptype>GLsizei</ptype> <name>range</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteBuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>buffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteBuffersARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>buffers</name></param>
+ <alias name="glDeleteBuffers"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteFencesAPPLE</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="FenceNV" len="n">const <ptype>GLuint</ptype> *<name>fences</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteFencesNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="FenceNV" len="n">const <ptype>GLuint</ptype> *<name>fences</name></param>
+ <glx type="vendor" opcode="1276"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteFragmentShaderATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteFramebuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ <glx type="render" opcode="4320"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteFramebuffersEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ <alias name="glDeleteFramebuffers"/>
+ <glx type="render" opcode="4320"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteFramebuffersOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteLists</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param><ptype>GLsizei</ptype> <name>range</name></param>
+ <glx type="single" opcode="103"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteNamedStringARB</name></proto>
+ <param><ptype>GLint</ptype> <name>namelen</name></param>
+ <param len="namelen">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteNamesAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>num</name></param>
+ <param len="num">const <ptype>GLuint</ptype> *<name>names</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteObjectARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>obj</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteOcclusionQueriesNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeletePathsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>range</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeletePerfMonitorsAMD</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>monitors</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteProgram</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <glx type="single" opcode="202"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteProgramPipelines</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>pipelines</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteProgramPipelinesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>pipelines</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteProgramsARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>programs</name></param>
+ <glx type="vendor" opcode="1294"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteProgramsNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>programs</name></param>
+ <alias name="glDeleteProgramsARB"/>
+ <glx type="vendor" opcode="1294"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteQueries</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <glx type="single" opcode="161"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteQueriesARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <alias name="glDeleteQueries"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteQueriesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteRenderbuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ <glx type="render" opcode="4317"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteRenderbuffersEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ <alias name="glDeleteRenderbuffers"/>
+ <glx type="render" opcode="4317"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteRenderbuffersOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteSamplers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>samplers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteShader</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <glx type="single" opcode="195"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteSync</name></proto>
+ <param group="sync"><ptype>GLsync</ptype> <name>sync</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteSyncAPPLE</name></proto>
+ <param><ptype>GLsync</ptype> <name>sync</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteTextures</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <glx type="single" opcode="144"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteTexturesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <glx type="vendor" opcode="12"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteTransformFeedbacks</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteTransformFeedbacksNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <alias name="glDeleteTransformFeedbacks"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteVertexArrays</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>arrays</name></param>
+ <glx type="render" opcode="351"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteVertexArraysAPPLE</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>arrays</name></param>
+ <alias name="glDeleteVertexArrays"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteVertexArraysOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>arrays</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteVertexShaderEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDepthBoundsEXT</name></proto>
+ <param group="ClampedFloat64"><ptype>GLclampd</ptype> <name>zmin</name></param>
+ <param group="ClampedFloat64"><ptype>GLclampd</ptype> <name>zmax</name></param>
+ <glx type="render" opcode="4229"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthBoundsdNV</name></proto>
+ <param><ptype>GLdouble</ptype> <name>zmin</name></param>
+ <param><ptype>GLdouble</ptype> <name>zmax</name></param>
+ <glx type="render" opcode="4285"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthFunc</name></proto>
+ <param group="DepthFunction"><ptype>GLenum</ptype> <name>func</name></param>
+ <glx type="render" opcode="164"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthMask</name></proto>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>flag</name></param>
+ <glx type="render" opcode="135"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthRange</name></proto>
+ <param><ptype>GLdouble</ptype> <name>near</name></param>
+ <param><ptype>GLdouble</ptype> <name>far</name></param>
+ <glx type="render" opcode="174"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangeArrayv</name></proto>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count)">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangeIndexed</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>n</name></param>
+ <param><ptype>GLdouble</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangedNV</name></proto>
+ <param><ptype>GLdouble</ptype> <name>zNear</name></param>
+ <param><ptype>GLdouble</ptype> <name>zFar</name></param>
+ <glx type="render" opcode="4283"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangef</name></proto>
+ <param><ptype>GLfloat</ptype> <name>n</name></param>
+ <param><ptype>GLfloat</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangefOES</name></proto>
+ <param group="ClampedFloat32"><ptype>GLclampf</ptype> <name>n</name></param>
+ <param group="ClampedFloat32"><ptype>GLclampf</ptype> <name>f</name></param>
+ <glx type="render" opcode="4309"/>
+ <alias name="glDepthRangef"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangex</name></proto>
+ <param><ptype>GLfixed</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangexOES</name></proto>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>n</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDetachObjectARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>containerObj</name></param>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>attachedObj</name></param>
+ <alias name="glDetachShader"/>
+ </command>
+ <command>
+ <proto>void <name>glDetachShader</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDetailTexFuncSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n*2">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="render" opcode="2051"/>
+ </command>
+ <command>
+ <proto>void <name>glDisable</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>cap</name></param>
+ <glx type="render" opcode="138"/>
+ </command>
+ <command>
+ <proto>void <name>glDisableClientState</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableClientStateIndexedEXT</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableClientStateiEXT</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableDriverControlQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>driverControl</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableIndexedEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <alias name="glDisablei"/>
+ </command>
+ <command>
+ <proto>void <name>glDisableVariantClientStateEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableVertexArrayAttribEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableVertexArrayEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableVertexAttribAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableVertexAttribArray</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableVertexAttribArrayARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <alias name="glDisableVertexAttribArray"/>
+ </command>
+ <command>
+ <proto>void <name>glDisablei</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDiscardFramebufferEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>numAttachments</name></param>
+ <param>const <ptype>GLenum</ptype> *<name>attachments</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDispatchCompute</name></proto>
+ <param><ptype>GLuint</ptype> <name>num_groups_x</name></param>
+ <param><ptype>GLuint</ptype> <name>num_groups_y</name></param>
+ <param><ptype>GLuint</ptype> <name>num_groups_z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDispatchComputeGroupSizeARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>num_groups_x</name></param>
+ <param><ptype>GLuint</ptype> <name>num_groups_y</name></param>
+ <param><ptype>GLuint</ptype> <name>num_groups_z</name></param>
+ <param><ptype>GLuint</ptype> <name>group_size_x</name></param>
+ <param><ptype>GLuint</ptype> <name>group_size_y</name></param>
+ <param><ptype>GLuint</ptype> <name>group_size_z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDispatchComputeIndirect</name></proto>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>indirect</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawArrays</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <glx type="render" opcode="193"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysEXT</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <alias name="glDrawArrays"/>
+ <glx type="render" opcode="4116"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysIndirect</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param>const void *<name>indirect</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysInstanced</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysInstancedANGLE</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysInstancedARB</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glDrawArraysInstanced"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysInstancedBaseInstance</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ <param><ptype>GLuint</ptype> <name>baseinstance</name></param>
+ </command>
+ <command comment="primcount should be renamed to instanceCount for OpenGL ES">
+ <proto>void <name>glDrawArraysInstancedEXT</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>start</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glDrawArraysInstanced"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysInstancedNV</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffer</name></proto>
+ <param group="DrawBufferMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="126"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="DrawBufferModeATI" len="n">const <ptype>GLenum</ptype> *<name>bufs</name></param>
+ <glx type="render" opcode="233"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffersARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="DrawBufferModeATI" len="n">const <ptype>GLenum</ptype> *<name>bufs</name></param>
+ <alias name="glDrawBuffers"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffersATI</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="DrawBufferModeATI" len="n">const <ptype>GLenum</ptype> *<name>bufs</name></param>
+ <alias name="glDrawBuffers"/>
+ <glx type="render" opcode="233"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffersEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param>const <ptype>GLenum</ptype> *<name>bufs</name></param>
+ <alias name="glDrawBuffers"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffersIndexedEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>n</name></param>
+ <param>const <ptype>GLenum</ptype> *<name>location</name></param>
+ <param>const <ptype>GLint</ptype> *<name>indices</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffersNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param>const <ptype>GLenum</ptype> *<name>bufs</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementArrayAPPLE</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementArrayATI</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElements</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsBaseVertex</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ <param><ptype>GLint</ptype> <name>basevertex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsIndirect</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const void *<name>indirect</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstanced</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstancedANGLE</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const void *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstancedARB</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glDrawElementsInstanced"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstancedBaseInstance</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="count">const void *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ <param><ptype>GLuint</ptype> <name>baseinstance</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstancedBaseVertex</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ <param><ptype>GLint</ptype> <name>basevertex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstancedBaseVertexBaseInstance</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="count">const void *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ <param><ptype>GLint</ptype> <name>basevertex</name></param>
+ <param><ptype>GLuint</ptype> <name>baseinstance</name></param>
+ </command>
+ <command comment="primcount should be renamed to instanceCount for OpenGL ES">
+ <proto>void <name>glDrawElementsInstancedEXT</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glDrawElementsInstanced"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstancedNV</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const void *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawMeshArraysSUN</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawPixels</name></proto>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>pixels</name></param>
+ <glx type="render" opcode="173"/>
+ <glx type="render" opcode="322" name="glDrawPixelsPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawRangeElementArrayAPPLE</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>start</name></param>
+ <param><ptype>GLuint</ptype> <name>end</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawRangeElementArrayATI</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>start</name></param>
+ <param><ptype>GLuint</ptype> <name>end</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawRangeElements</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>start</name></param>
+ <param><ptype>GLuint</ptype> <name>end</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawRangeElementsBaseVertex</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>start</name></param>
+ <param><ptype>GLuint</ptype> <name>end</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ <param><ptype>GLint</ptype> <name>basevertex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawRangeElementsEXT</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>start</name></param>
+ <param><ptype>GLuint</ptype> <name>end</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ <alias name="glDrawRangeElements"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexfOES</name></proto>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>width</name></param>
+ <param><ptype>GLfloat</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexfvOES</name></proto>
+ <param>const <ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexiOES</name></proto>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>width</name></param>
+ <param><ptype>GLint</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexivOES</name></proto>
+ <param>const <ptype>GLint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexsOES</name></proto>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <param><ptype>GLshort</ptype> <name>width</name></param>
+ <param><ptype>GLshort</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexsvOES</name></proto>
+ <param>const <ptype>GLshort</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTextureNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLfloat</ptype> <name>x0</name></param>
+ <param><ptype>GLfloat</ptype> <name>y0</name></param>
+ <param><ptype>GLfloat</ptype> <name>x1</name></param>
+ <param><ptype>GLfloat</ptype> <name>y1</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>s0</name></param>
+ <param><ptype>GLfloat</ptype> <name>t0</name></param>
+ <param><ptype>GLfloat</ptype> <name>s1</name></param>
+ <param><ptype>GLfloat</ptype> <name>t1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ <param><ptype>GLfixed</ptype> <name>width</name></param>
+ <param><ptype>GLfixed</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexxvOES</name></proto>
+ <param>const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTransformFeedback</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTransformFeedbackInstanced</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTransformFeedbackNV</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <alias name="glDrawTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawTransformFeedbackStream</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTransformFeedbackStreamInstanced</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEGLImageTargetRenderbufferStorageOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLeglImageOES</ptype> <name>image</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEGLImageTargetTexture2DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLeglImageOES</ptype> <name>image</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEdgeFlag</name></proto>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>flag</name></param>
+ <vecequiv name="glEdgeFlagv"/>
+ </command>
+ <command>
+ <proto>void <name>glEdgeFlagFormatNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEdgeFlagPointer</name></proto>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEdgeFlagPointerEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean" len="COMPSIZE(stride,count)">const <ptype>GLboolean</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEdgeFlagPointerListIBM</name></proto>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param group="BooleanPointer" len="COMPSIZE(stride)">const <ptype>GLboolean</ptype> **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEdgeFlagv</name></proto>
+ <param group="Boolean">const <ptype>GLboolean</ptype> *<name>flag</name></param>
+ <glx type="render" opcode="22"/>
+ </command>
+ <command>
+ <proto>void <name>glElementPointerAPPLE</name></proto>
+ <param group="ElementPointerTypeATI"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(type)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glElementPointerATI</name></proto>
+ <param group="ElementPointerTypeATI"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(type)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnable</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>cap</name></param>
+ <glx type="render" opcode="139"/>
+ </command>
+ <command>
+ <proto>void <name>glEnableClientState</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableClientStateIndexedEXT</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableClientStateiEXT</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableDriverControlQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>driverControl</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableIndexedEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <alias name="glEnablei"/>
+ </command>
+ <command>
+ <proto>void <name>glEnableVariantClientStateEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableVertexArrayAttribEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableVertexArrayEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableVertexAttribAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableVertexAttribArray</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableVertexAttribArrayARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <alias name="glEnableVertexAttribArray"/>
+ </command>
+ <command>
+ <proto>void <name>glEnablei</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnd</name></proto>
+ <glx type="render" opcode="23"/>
+ </command>
+ <command>
+ <proto>void <name>glEndConditionalRender</name></proto>
+ <glx type="render" opcode="349"/>
+ </command>
+ <command>
+ <proto>void <name>glEndConditionalRenderNV</name></proto>
+ <alias name="glEndConditionalRender"/>
+ </command>
+ <command>
+ <proto>void <name>glEndConditionalRenderNVX</name></proto>
+ <alias name="glEndConditionalRender"/>
+ </command>
+ <command>
+ <proto>void <name>glEndFragmentShaderATI</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glEndList</name></proto>
+ <glx type="single" opcode="102"/>
+ </command>
+ <command>
+ <proto>void <name>glEndOcclusionQueryNV</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glEndPerfMonitorAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>monitor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEndQuery</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <glx type="render" opcode="232"/>
+ </command>
+ <command>
+ <proto>void <name>glEndQueryARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glEndQuery"/>
+ </command>
+ <command>
+ <proto>void <name>glEndQueryEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEndQueryIndexed</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEndTilingQCOM</name></proto>
+ <param><ptype>GLbitfield</ptype> <name>preserveMask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEndTransformFeedback</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glEndTransformFeedbackEXT</name></proto>
+ <alias name="glEndTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glEndTransformFeedbackNV</name></proto>
+ <alias name="glEndTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glEndVertexShaderEXT</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glEndVideoCaptureNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord1d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u</name></param>
+ <vecequiv name="glEvalCoord1dv"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord1dv</name></proto>
+ <param group="CoordD" len="1">const <ptype>GLdouble</ptype> *<name>u</name></param>
+ <glx type="render" opcode="151"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord1f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u</name></param>
+ <vecequiv name="glEvalCoord1fv"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord1fv</name></proto>
+ <param group="CoordF" len="1">const <ptype>GLfloat</ptype> *<name>u</name></param>
+ <glx type="render" opcode="152"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord1xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>u</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord1xvOES</name></proto>
+ <param len="1">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord2d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v</name></param>
+ <vecequiv name="glEvalCoord2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord2dv</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>u</name></param>
+ <glx type="render" opcode="153"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord2f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v</name></param>
+ <vecequiv name="glEvalCoord2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord2fv</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>u</name></param>
+ <glx type="render" opcode="154"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord2xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>u</name></param>
+ <param><ptype>GLfixed</ptype> <name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord2xvOES</name></proto>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEvalMapsNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="EvalMapsModeNV"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEvalMesh1</name></proto>
+ <param group="MeshMode1"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>i1</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>i2</name></param>
+ <glx type="render" opcode="155"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalMesh2</name></proto>
+ <param group="MeshMode2"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>i1</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>i2</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>j1</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>j2</name></param>
+ <glx type="render" opcode="157"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalPoint1</name></proto>
+ <param><ptype>GLint</ptype> <name>i</name></param>
+ <glx type="render" opcode="156"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalPoint2</name></proto>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>i</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>j</name></param>
+ <glx type="render" opcode="158"/>
+ </command>
+ <command>
+ <proto>void <name>glExecuteProgramNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4181"/>
+ </command>
+ <command>
+ <proto>void <name>glExtGetBufferPointervQCOM</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param>void **<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetBuffersQCOM</name></proto>
+ <param><ptype>GLuint</ptype> *<name>buffers</name></param>
+ <param><ptype>GLint</ptype> <name>maxBuffers</name></param>
+ <param><ptype>GLint</ptype> *<name>numBuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetFramebuffersQCOM</name></proto>
+ <param><ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ <param><ptype>GLint</ptype> <name>maxFramebuffers</name></param>
+ <param><ptype>GLint</ptype> *<name>numFramebuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetProgramBinarySourceQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLchar</ptype> *<name>source</name></param>
+ <param><ptype>GLint</ptype> *<name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetProgramsQCOM</name></proto>
+ <param><ptype>GLuint</ptype> *<name>programs</name></param>
+ <param><ptype>GLint</ptype> <name>maxPrograms</name></param>
+ <param><ptype>GLint</ptype> *<name>numPrograms</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetRenderbuffersQCOM</name></proto>
+ <param><ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ <param><ptype>GLint</ptype> <name>maxRenderbuffers</name></param>
+ <param><ptype>GLint</ptype> *<name>numRenderbuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetShadersQCOM</name></proto>
+ <param><ptype>GLuint</ptype> *<name>shaders</name></param>
+ <param><ptype>GLint</ptype> <name>maxShaders</name></param>
+ <param><ptype>GLint</ptype> *<name>numShaders</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetTexLevelParameterivQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetTexSubImageQCOM</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>void *<name>texels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetTexturesQCOM</name></proto>
+ <param><ptype>GLuint</ptype> *<name>textures</name></param>
+ <param><ptype>GLint</ptype> <name>maxTextures</name></param>
+ <param><ptype>GLint</ptype> *<name>numTextures</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glExtIsProgramBinaryQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtTexObjectStateOverrideiQCOM</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtractComponentEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>src</name></param>
+ <param><ptype>GLuint</ptype> <name>num</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFeedbackBuffer</name></proto>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param group="FeedbackType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="FeedbackElement" len="size"><ptype>GLfloat</ptype> *<name>buffer</name></param>
+ <glx type="single" opcode="105"/>
+ </command>
+ <command>
+ <proto>void <name>glFeedbackBufferxOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="n">const <ptype>GLfixed</ptype> *<name>buffer</name></param>
+ </command>
+ <command>
+ <proto group="sync"><ptype>GLsync</ptype> <name>glFenceSync</name></proto>
+ <param><ptype>GLenum</ptype> <name>condition</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLsync</ptype> <name>glFenceSyncAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>condition</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFinalCombinerInputNV</name></proto>
+ <param group="CombinerVariableNV"><ptype>GLenum</ptype> <name>variable</name></param>
+ <param group="CombinerRegisterNV"><ptype>GLenum</ptype> <name>input</name></param>
+ <param group="CombinerMappingNV"><ptype>GLenum</ptype> <name>mapping</name></param>
+ <param group="CombinerComponentUsageNV"><ptype>GLenum</ptype> <name>componentUsage</name></param>
+ <glx type="render" opcode="4142"/>
+ </command>
+ <command>
+ <proto>void <name>glFinish</name></proto>
+ <glx type="single" opcode="108"/>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glFinishAsyncSGIX</name></proto>
+ <param len="1"><ptype>GLuint</ptype> *<name>markerp</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFinishFenceAPPLE</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFinishFenceNV</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ <glx type="vendor" opcode="1312"/>
+ </command>
+ <command>
+ <proto>void <name>glFinishObjectAPPLE</name></proto>
+ <param group="ObjectTypeAPPLE"><ptype>GLenum</ptype> <name>object</name></param>
+ <param><ptype>GLint</ptype> <name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFinishTextureSUNX</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glFlush</name></proto>
+ <glx type="single" opcode="142"/>
+ </command>
+ <command>
+ <proto>void <name>glFlushMappedBufferRange</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFlushMappedBufferRangeAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <alias name="glFlushMappedBufferRange"/>
+ </command>
+ <command>
+ <proto>void <name>glFlushMappedBufferRangeEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFlushMappedNamedBufferRangeEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFlushPixelDataRangeNV</name></proto>
+ <param group="PixelDataRangeTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFlushRasterSGIX</name></proto>
+ <glx type="vendor" opcode="4105"/>
+ </command>
+ <command>
+ <proto>void <name>glFlushStaticDataIBM</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFlushVertexArrayRangeAPPLE</name></proto>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length">void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFlushVertexArrayRangeNV</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordFormatNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordPointer</name></proto>
+ <param group="FogPointerTypeEXT"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordPointerEXT</name></proto>
+ <param group="FogPointerTypeEXT"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void *<name>pointer</name></param>
+ <alias name="glFogCoordPointer"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordPointerListIBM</name></proto>
+ <param group="FogPointerTypeIBM"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordd</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>coord</name></param>
+ <vecequiv name="glFogCoorddv"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoorddEXT</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>coord</name></param>
+ <alias name="glFogCoordd"/>
+ <vecequiv name="glFogCoorddvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoorddv</name></proto>
+ <param group="CoordD" len="1">const <ptype>GLdouble</ptype> *<name>coord</name></param>
+ <glx type="render" opcode="4125"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoorddvEXT</name></proto>
+ <param group="CoordD" len="1">const <ptype>GLdouble</ptype> *<name>coord</name></param>
+ <alias name="glFogCoorddv"/>
+ <glx type="render" opcode="4125"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordf</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>coord</name></param>
+ <vecequiv name="glFogCoordfv"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordfEXT</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>coord</name></param>
+ <alias name="glFogCoordf"/>
+ <vecequiv name="glFogCoordfvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordfv</name></proto>
+ <param group="CoordF" len="1">const <ptype>GLfloat</ptype> *<name>coord</name></param>
+ <glx type="render" opcode="4124"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordfvEXT</name></proto>
+ <param group="CoordF" len="1">const <ptype>GLfloat</ptype> *<name>coord</name></param>
+ <alias name="glFogCoordfv"/>
+ <glx type="render" opcode="4124"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordhNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>fog</name></param>
+ <vecequiv name="glFogCoordhvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordhvNV</name></proto>
+ <param group="Half16NV" len="1">const <ptype>GLhalfNV</ptype> *<name>fog</name></param>
+ <glx type="render" opcode="4254"/>
+ </command>
+ <command>
+ <proto>void <name>glFogFuncSGIS</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n*2">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="render" opcode="2067"/>
+ </command>
+ <command>
+ <proto>void <name>glFogf</name></proto>
+ <param group="FogParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="80"/>
+ </command>
+ <command>
+ <proto>void <name>glFogfv</name></proto>
+ <param group="FogParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="81"/>
+ </command>
+ <command>
+ <proto>void <name>glFogi</name></proto>
+ <param group="FogParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="82"/>
+ </command>
+ <command>
+ <proto>void <name>glFogiv</name></proto>
+ <param group="FogParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="83"/>
+ </command>
+ <command>
+ <proto>void <name>glFogx</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFogxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFogxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLfixed</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFogxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentColorMaterialSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightModelfSGIX</name></proto>
+ <param group="FragmentLightModelParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightModelfvSGIX</name></proto>
+ <param group="FragmentLightModelParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightModeliSGIX</name></proto>
+ <param group="FragmentLightModelParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightModelivSGIX</name></proto>
+ <param group="FragmentLightModelParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightfSGIX</name></proto>
+ <param group="FragmentLightNameSGIX"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="FragmentLightParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightfvSGIX</name></proto>
+ <param group="FragmentLightNameSGIX"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="FragmentLightParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightiSGIX</name></proto>
+ <param group="FragmentLightNameSGIX"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="FragmentLightParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightivSGIX</name></proto>
+ <param group="FragmentLightNameSGIX"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="FragmentLightParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentMaterialfSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentMaterialfvSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentMaterialiSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentMaterialivSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFrameTerminatorGREMEDY</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glFrameZoomSGIX</name></proto>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>factor</name></param>
+ <glx type="render" opcode="2072"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferDrawBufferEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="DrawBufferMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferDrawBuffersEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="DrawBufferMode" len="n">const <ptype>GLenum</ptype> *<name>bufs</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferParameteri</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferReadBufferEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="ReadBufferMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferRenderbuffer</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>renderbuffertarget</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <glx type="render" opcode="4324"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferRenderbufferEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>renderbuffertarget</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <alias name="glFramebufferRenderbuffer"/>
+ <glx type="render" opcode="4324"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferRenderbufferOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>renderbuffertarget</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture1D</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <glx type="render" opcode="4321"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture1DEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <alias name="glFramebufferTexture1D"/>
+ <glx type="render" opcode="4321"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture2D</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <glx type="render" opcode="4322"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture2DEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <alias name="glFramebufferTexture2D"/>
+ <glx type="render" opcode="4322"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture2DMultisampleEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture2DMultisampleIMG</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture2DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture3D</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <glx type="render" opcode="4323"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture3DEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <alias name="glFramebufferTexture3D"/>
+ <glx type="render" opcode="4323"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture3DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureARB</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <alias name="glFramebufferTexture"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <alias name="glFramebufferTextureARB"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureFaceARB</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>face</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureFaceEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>face</name></param>
+ <alias name="glFramebufferTextureFaceARB"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureLayer</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>layer</name></param>
+ <glx type="render" opcode="237"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureLayerARB</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>layer</name></param>
+ <alias name="glFramebufferTextureLayer"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureLayerEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>layer</name></param>
+ <alias name="glFramebufferTextureLayer"/>
+ </command>
+ <command>
+ <proto>void <name>glFreeObjectBufferATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFrontFace</name></proto>
+ <param group="FrontFaceDirection"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="84"/>
+ </command>
+ <command>
+ <proto>void <name>glFrustum</name></proto>
+ <param><ptype>GLdouble</ptype> <name>left</name></param>
+ <param><ptype>GLdouble</ptype> <name>right</name></param>
+ <param><ptype>GLdouble</ptype> <name>bottom</name></param>
+ <param><ptype>GLdouble</ptype> <name>top</name></param>
+ <param><ptype>GLdouble</ptype> <name>zNear</name></param>
+ <param><ptype>GLdouble</ptype> <name>zFar</name></param>
+ <glx type="render" opcode="175"/>
+ </command>
+ <command>
+ <proto>void <name>glFrustumf</name></proto>
+ <param><ptype>GLfloat</ptype> <name>l</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>n</name></param>
+ <param><ptype>GLfloat</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFrustumfOES</name></proto>
+ <param><ptype>GLfloat</ptype> <name>l</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>n</name></param>
+ <param><ptype>GLfloat</ptype> <name>f</name></param>
+ <glx type="render" opcode="4310"/>
+ </command>
+ <command>
+ <proto>void <name>glFrustumx</name></proto>
+ <param><ptype>GLfixed</ptype> <name>l</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>b</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFrustumxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>l</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>b</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGenAsyncMarkersSGIX</name></proto>
+ <param><ptype>GLsizei</ptype> <name>range</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenBuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>buffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenBuffersARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>buffers</name></param>
+ <alias name="glGenBuffers"/>
+ </command>
+ <command>
+ <proto>void <name>glGenFencesAPPLE</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="FenceNV" len="n"><ptype>GLuint</ptype> *<name>fences</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenFencesNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="FenceNV" len="n"><ptype>GLuint</ptype> *<name>fences</name></param>
+ <glx type="vendor" opcode="1277"/>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGenFragmentShadersATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>range</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenFramebuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ <glx type="vendor" opcode="1426"/>
+ </command>
+ <command>
+ <proto>void <name>glGenFramebuffersEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ <alias name="glGenFramebuffers"/>
+ <glx type="vendor" opcode="1426"/>
+ </command>
+ <command>
+ <proto>void <name>glGenFramebuffersOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ </command>
+ <command>
+ <proto group="List"><ptype>GLuint</ptype> <name>glGenLists</name></proto>
+ <param><ptype>GLsizei</ptype> <name>range</name></param>
+ <glx type="single" opcode="104"/>
+ </command>
+ <command>
+ <proto>void <name>glGenNamesAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>num</name></param>
+ <param len="num"><ptype>GLuint</ptype> *<name>names</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenOcclusionQueriesNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto group="Path"><ptype>GLuint</ptype> <name>glGenPathsNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>range</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenPerfMonitorsAMD</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>monitors</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenProgramPipelines</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>pipelines</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenProgramPipelinesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLuint</ptype> *<name>pipelines</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenProgramsARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>programs</name></param>
+ <glx type="vendor" opcode="1295"/>
+ </command>
+ <command>
+ <proto>void <name>glGenProgramsNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>programs</name></param>
+ <alias name="glGenProgramsARB"/>
+ <glx type="vendor" opcode="1295"/>
+ </command>
+ <command>
+ <proto>void <name>glGenQueries</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <glx type="single" opcode="162"/>
+ </command>
+ <command>
+ <proto>void <name>glGenQueriesARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <alias name="glGenQueries"/>
+ </command>
+ <command>
+ <proto>void <name>glGenQueriesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenRenderbuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ <glx type="vendor" opcode="1423"/>
+ </command>
+ <command>
+ <proto>void <name>glGenRenderbuffersEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ <alias name="glGenRenderbuffers"/>
+ <glx type="vendor" opcode="1423"/>
+ </command>
+ <command>
+ <proto>void <name>glGenRenderbuffersOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenSamplers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count"><ptype>GLuint</ptype> *<name>samplers</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGenSymbolsEXT</name></proto>
+ <param group="DataTypeEXT"><ptype>GLenum</ptype> <name>datatype</name></param>
+ <param group="VertexShaderStorageTypeEXT"><ptype>GLenum</ptype> <name>storagetype</name></param>
+ <param group="ParameterRangeEXT"><ptype>GLenum</ptype> <name>range</name></param>
+ <param><ptype>GLuint</ptype> <name>components</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenTextures</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n"><ptype>GLuint</ptype> *<name>textures</name></param>
+ <glx type="single" opcode="145"/>
+ </command>
+ <command>
+ <proto>void <name>glGenTexturesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n"><ptype>GLuint</ptype> *<name>textures</name></param>
+ <glx type="vendor" opcode="13"/>
+ </command>
+ <command>
+ <proto>void <name>glGenTransformFeedbacks</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenTransformFeedbacksNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <alias name="glGenTransformFeedbacks"/>
+ </command>
+ <command>
+ <proto>void <name>glGenVertexArrays</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>arrays</name></param>
+ <glx type="single" opcode="206"/>
+ </command>
+ <command>
+ <proto>void <name>glGenVertexArraysAPPLE</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>arrays</name></param>
+ <alias name="glGenVertexArrays"/>
+ </command>
+ <command>
+ <proto>void <name>glGenVertexArraysOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLuint</ptype> *<name>arrays</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGenVertexShadersEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>range</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenerateMipmap</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <glx type="render" opcode="4325"/>
+ </command>
+ <command>
+ <proto>void <name>glGenerateMipmapEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glGenerateMipmap"/>
+ <glx type="render" opcode="4325"/>
+ </command>
+ <command>
+ <proto>void <name>glGenerateMipmapOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenerateMultiTexMipmapEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenerateTextureMipmapEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveAtomicCounterBufferiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>bufferIndex</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveAttrib</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveAttribARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxLength</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param len="maxLength"><ptype>GLcharARB</ptype> *<name>name</name></param>
+ <alias name="glGetActiveAttrib"/>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveSubroutineName</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufsize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufsize"><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveSubroutineUniformName</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufsize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufsize"><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveSubroutineUniformiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveUniform</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveUniformARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxLength</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param len="maxLength"><ptype>GLcharARB</ptype> *<name>name</name></param>
+ <alias name="glGetActiveUniform"/>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveUniformBlockName</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>uniformBlockIndex</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>uniformBlockName</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveUniformBlockiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>uniformBlockIndex</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveUniformName</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>uniformIndex</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>uniformName</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveUniformsiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>uniformCount</name></param>
+ <param len="COMPSIZE(uniformCount)">const <ptype>GLuint</ptype> *<name>uniformIndices</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveVaryingNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param len="COMPSIZE(program,index,bufSize)"><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetArrayObjectfvATI</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetArrayObjectivATI</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetAttachedObjectsARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>containerObj</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxCount</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>count</name></param>
+ <param group="handleARB" len="count"><ptype>GLhandleARB</ptype> *<name>obj</name></param>
+ <alias name="glGetAttachedShaders"/>
+ </command>
+ <command>
+ <proto>void <name>glGetAttachedShaders</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxCount</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>count</name></param>
+ <param><ptype>GLuint</ptype> *<name>shaders</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetAttribLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetAttribLocationARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param>const <ptype>GLcharARB</ptype> *<name>name</name></param>
+ <alias name="glGetAttribLocation"/>
+ </command>
+ <command>
+ <proto>void <name>glGetBooleanIndexedvEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Boolean" len="COMPSIZE(target)"><ptype>GLboolean</ptype> *<name>data</name></param>
+ <alias name="glGetBooleani_v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetBooleani_v</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Boolean" len="COMPSIZE(target)"><ptype>GLboolean</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBooleanv</name></proto>
+ <param group="GetPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="Boolean" len="COMPSIZE(pname)"><ptype>GLboolean</ptype> *<name>data</name></param>
+ <glx type="single" opcode="112"/>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferParameteri64v</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferPNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint64</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferParameteriv</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferPNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferParameterivARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferPNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetBufferParameteriv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferParameterui64vNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferPointerv</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferPointerNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">void **<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferPointervARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferPointerNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">void **<name>params</name></param>
+ <alias name="glGetBufferPointerv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferPointervOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>void **<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferSubData</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="size">void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferSubDataARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffsetARB"><ptype>GLintptrARB</ptype> <name>offset</name></param>
+ <param group="BufferSizeARB"><ptype>GLsizeiptrARB</ptype> <name>size</name></param>
+ <param len="size">void *<name>data</name></param>
+ <alias name="glGetBufferSubData"/>
+ </command>
+ <command>
+ <proto>void <name>glGetClipPlane</name></proto>
+ <param group="ClipPlaneName"><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>equation</name></param>
+ <glx type="single" opcode="113"/>
+ </command>
+ <command>
+ <proto>void <name>glGetClipPlanef</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param><ptype>GLfloat</ptype> *<name>equation</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetClipPlanefOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>equation</name></param>
+ <glx type="vendor" opcode="1421"/>
+ </command>
+ <command>
+ <proto>void <name>glGetClipPlanex</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param><ptype>GLfixed</ptype> *<name>equation</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetClipPlanexOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4"><ptype>GLfixed</ptype> *<name>equation</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTable</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>table</name></param>
+ <glx type="single" opcode="147"/>
+ <glx type="render" opcode="334" name="glGetColorTablePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableEXT</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>data</name></param>
+ <alias name="glGetColorTable"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableParameterfv</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetColorTableParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="148"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableParameterfvEXT</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetColorTableParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glGetColorTableParameterfv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableParameterfvSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetColorTableParameterPNameSGI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="4099"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableParameteriv</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetColorTableParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="149"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableParameterivEXT</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetColorTableParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetColorTableParameteriv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableParameterivSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetColorTableParameterPNameSGI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="4100"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>table</name></param>
+ <glx type="vendor" opcode="4098"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCombinerInputParameterfvNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerPortionNV"><ptype>GLenum</ptype> <name>portion</name></param>
+ <param group="CombinerVariableNV"><ptype>GLenum</ptype> <name>variable</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1270"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCombinerInputParameterivNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerPortionNV"><ptype>GLenum</ptype> <name>portion</name></param>
+ <param group="CombinerVariableNV"><ptype>GLenum</ptype> <name>variable</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1271"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCombinerOutputParameterfvNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerPortionNV"><ptype>GLenum</ptype> <name>portion</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1272"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCombinerOutputParameterivNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerPortionNV"><ptype>GLenum</ptype> <name>portion</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1273"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCombinerStageParameterfvNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetCompressedMultiTexImageEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>lod</name></param>
+ <param len="COMPSIZE(target,lod)">void *<name>img</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetCompressedTexImage</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CompressedTextureARB" len="COMPSIZE(target,level)">void *<name>img</name></param>
+ <glx type="single" opcode="160"/>
+ <glx type="render" opcode="335" name="glGetCompressedTexImagePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCompressedTexImageARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CompressedTextureARB" len="COMPSIZE(target,level)">void *<name>img</name></param>
+ <alias name="glGetCompressedTexImage"/>
+ <glx type="single" opcode="160"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCompressedTextureImageEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>lod</name></param>
+ <param len="COMPSIZE(target,lod)">void *<name>img</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionFilter</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>image</name></param>
+ <glx type="single" opcode="150"/>
+ <glx type="render" opcode="336" name="glGetConvolutionFilterPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionFilterEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>image</name></param>
+ <glx type="vendor" opcode="1"/>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionParameterfv</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetConvolutionParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="151"/>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionParameterfvEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="2"/>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionParameteriv</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetConvolutionParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="152"/>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionParameterivEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="3"/>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetDebugMessageLog</name></proto>
+ <param><ptype>GLuint</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>sources</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>types</name></param>
+ <param len="count"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>severities</name></param>
+ <param len="count"><ptype>GLsizei</ptype> *<name>lengths</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>messageLog</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetDebugMessageLogAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufsize</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>categories</name></param>
+ <param len="count"><ptype>GLuint</ptype> *<name>severities</name></param>
+ <param len="count"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <param len="count"><ptype>GLsizei</ptype> *<name>lengths</name></param>
+ <param len="bufsize"><ptype>GLchar</ptype> *<name>message</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetDebugMessageLogARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>sources</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>types</name></param>
+ <param len="count"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>severities</name></param>
+ <param len="count"><ptype>GLsizei</ptype> *<name>lengths</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>messageLog</name></param>
+ <alias name="glGetDebugMessageLog"/>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetDebugMessageLogKHR</name></proto>
+ <param><ptype>GLuint</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>sources</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>types</name></param>
+ <param len="count"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>severities</name></param>
+ <param len="count"><ptype>GLsizei</ptype> *<name>lengths</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>messageLog</name></param>
+ <alias name="glGetDebugMessageLog"/>
+ </command>
+ <command>
+ <proto>void <name>glGetDetailTexFuncSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="vendor" opcode="4096"/>
+ </command>
+ <command>
+ <proto>void <name>glGetDoubleIndexedvEXT</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLdouble</ptype> *<name>data</name></param>
+ <alias name="glGetDoublei_v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetDoublei_v</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLdouble</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetDoublei_vEXT</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <alias name="glGetDoublei_v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetDoublev</name></proto>
+ <param group="GetPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLdouble</ptype> *<name>data</name></param>
+ <glx type="single" opcode="114"/>
+ </command>
+ <command>
+ <proto>void <name>glGetDriverControlStringQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>driverControl</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>driverControlString</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetDriverControlsQCOM</name></proto>
+ <param><ptype>GLint</ptype> *<name>num</name></param>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param len="size"><ptype>GLuint</ptype> *<name>driverControls</name></param>
+ </command>
+ <command>
+ <proto group="ErrorCode"><ptype>GLenum</ptype> <name>glGetError</name></proto>
+ <glx type="single" opcode="115"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFenceivNV</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ <param group="FenceParameterNameNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1280"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFinalCombinerInputParameterfvNV</name></proto>
+ <param group="CombinerVariableNV"><ptype>GLenum</ptype> <name>variable</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1274"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFinalCombinerInputParameterivNV</name></proto>
+ <param group="CombinerVariableNV"><ptype>GLenum</ptype> <name>variable</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1275"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFixedv</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFixedvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFloatIndexedvEXT</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLfloat</ptype> *<name>data</name></param>
+ <alias name="glGetFloati_v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFloati_v</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLfloat</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFloati_vEXT</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glGetFloati_v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFloatv</name></proto>
+ <param group="GetPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>data</name></param>
+ <glx type="single" opcode="116"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFogFuncSGIS</name></proto>
+ <param len="COMPSIZE()"><ptype>GLfloat</ptype> *<name>points</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetFragDataIndex</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetFragDataLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetFragDataLocationEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ <alias name="glGetFragDataLocation"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFragmentLightfvSGIX</name></proto>
+ <param group="FragmentLightNameSGIX"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="FragmentLightParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFragmentLightivSGIX</name></proto>
+ <param group="FragmentLightNameSGIX"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="FragmentLightParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFragmentMaterialfvSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFragmentMaterialivSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFramebufferAttachmentParameteriv</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1428"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFramebufferAttachmentParameterivEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetFramebufferAttachmentParameteriv"/>
+ <glx type="vendor" opcode="1428"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFramebufferAttachmentParameterivOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFramebufferParameteriv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFramebufferParameterivEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="GetFramebufferParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glGetGraphicsResetStatusARB</name></proto>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glGetGraphicsResetStatusEXT</name></proto>
+ </command>
+ <command>
+ <proto group="handleARB"><ptype>GLhandleARB</ptype> <name>glGetHandleARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogram</name></proto>
+ <param group="HistogramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>values</name></param>
+ <glx type="single" opcode="154"/>
+ <glx type="render" opcode="337" name="glGetHistogramPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogramEXT</name></proto>
+ <param group="HistogramTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>values</name></param>
+ <glx type="vendor" opcode="5"/>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogramParameterfv</name></proto>
+ <param group="HistogramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetHistogramParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="155"/>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogramParameterfvEXT</name></proto>
+ <param group="HistogramTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetHistogramParameterPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="6"/>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogramParameteriv</name></proto>
+ <param group="HistogramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetHistogramParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="156"/>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogramParameterivEXT</name></proto>
+ <param group="HistogramTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetHistogramParameterPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="7"/>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogramParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint64</ptype> <name>glGetImageHandleARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLboolean</ptype> <name>layered</name></param>
+ <param><ptype>GLint</ptype> <name>layer</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint64</ptype> <name>glGetImageHandleNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>layered</name></param>
+ <param><ptype>GLint</ptype> <name>layer</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetImageTransformParameterfvHP</name></proto>
+ <param group="ImageTransformTargetHP"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetImageTransformParameterivHP</name></proto>
+ <param group="ImageTransformTargetHP"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInfoLogARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>obj</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxLength</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="maxLength"><ptype>GLcharARB</ptype> *<name>infoLog</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetInstrumentsSGIX</name></proto>
+ <glx type="vendor" opcode="4102"/>
+ </command>
+ <command>
+ <proto>void <name>glGetInteger64i_v</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLint64</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInteger64v</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint64</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInteger64vAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint64</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetIntegerIndexedvEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLint</ptype> *<name>data</name></param>
+ <alias name="glGetIntegeri_v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetIntegeri_v</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLint</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetIntegeri_vEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetIntegerui64i_vNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>value</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(value)"><ptype>GLuint64EXT</ptype> *<name>result</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetIntegerui64vNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(value)"><ptype>GLuint64EXT</ptype> *<name>result</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetIntegerv</name></proto>
+ <param group="GetPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>data</name></param>
+ <glx type="single" opcode="117"/>
+ </command>
+ <command>
+ <proto>void <name>glGetInternalformati64v</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLint64</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInternalformativ</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInvariantBooleanvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param group="Boolean" len="COMPSIZE(id)"><ptype>GLboolean</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInvariantFloatvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)"><ptype>GLfloat</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInvariantIntegervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)"><ptype>GLint</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetLightfv</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="118"/>
+ </command>
+ <command>
+ <proto>void <name>glGetLightiv</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="119"/>
+ </command>
+ <command>
+ <proto>void <name>glGetLightxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetLightxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetLightxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetListParameterfvSGIX</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetListParameterivSGIX</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetLocalConstantBooleanvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param group="Boolean" len="COMPSIZE(id)"><ptype>GLboolean</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetLocalConstantFloatvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)"><ptype>GLfloat</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetLocalConstantIntegervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)"><ptype>GLint</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMapAttribParameterfvNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="MapAttribParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMapAttribParameterivNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="MapAttribParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMapControlPointsNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="MapTypeNV"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>ustride</name></param>
+ <param><ptype>GLsizei</ptype> <name>vstride</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>packed</name></param>
+ <param len="COMPSIZE(target)">void *<name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMapParameterfvNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="MapParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(target,pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMapParameterivNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="MapParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(target,pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMapdv</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMapQuery"><ptype>GLenum</ptype> <name>query</name></param>
+ <param len="COMPSIZE(target,query)"><ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="single" opcode="120"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMapfv</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMapQuery"><ptype>GLenum</ptype> <name>query</name></param>
+ <param len="COMPSIZE(target,query)"><ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="single" opcode="121"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMapiv</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMapQuery"><ptype>GLenum</ptype> <name>query</name></param>
+ <param len="COMPSIZE(target,query)"><ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="single" opcode="122"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMapxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>query</name></param>
+ <param len="COMPSIZE(query)"><ptype>GLfixed</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMaterialfv</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="123"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMaterialiv</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="124"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMaterialxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMaterialxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMaterialxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMinmax</name></proto>
+ <param group="MinmaxTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>values</name></param>
+ <glx type="single" opcode="157"/>
+ <glx type="render" opcode="338" name="glGetMinmaxPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMinmaxEXT</name></proto>
+ <param group="MinmaxTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>values</name></param>
+ <glx type="vendor" opcode="8"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMinmaxParameterfv</name></proto>
+ <param group="MinmaxTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMinmaxParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="158"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMinmaxParameterfvEXT</name></proto>
+ <param group="MinmaxTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMinmaxParameterPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="9"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMinmaxParameteriv</name></proto>
+ <param group="MinmaxTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMinmaxParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="159"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMinmaxParameterivEXT</name></proto>
+ <param group="MinmaxTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMinmaxParameterPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="10"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexEnvfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexEnvivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexGendvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexGenfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexGenivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexImageEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,level,format,type)">void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexLevelParameterfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexLevelParameterivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexParameterIivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexParameterIuivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexParameterfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexParameterivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultisamplefv</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>val</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultisamplefvNV</name></proto>
+ <param group="GetMultisamplePNameNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2"><ptype>GLfloat</ptype> *<name>val</name></param>
+ <alias name="glGetMultisamplefv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedBufferParameterivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="VertexBufferObjectParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedBufferParameterui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="VertexBufferObjectParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedBufferPointervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="VertexBufferObjectParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">void **<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedBufferSubDataEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="COMPSIZE(size)">void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedFramebufferAttachmentParameterivEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="FramebufferAttachmentParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedFramebufferParameterivEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="GetFramebufferParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedProgramLocalParameterIivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedProgramLocalParameterIuivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedProgramLocalParameterdvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedProgramLocalParameterfvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedProgramStringEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ProgramStringProperty"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(program,pname)">void *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedProgramivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ProgramProperty"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedRenderbufferParameterivEXT</name></proto>
+ <param group="Renderbuffer"><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <param group="RenderbufferParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedStringARB</name></proto>
+ <param><ptype>GLint</ptype> <name>namelen</name></param>
+ <param len="namelen">const <ptype>GLchar</ptype> *<name>name</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>stringlen</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedStringivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>namelen</name></param>
+ <param len="namelen">const <ptype>GLchar</ptype> *<name>name</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectBufferfvATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectBufferivATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectLabel</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>label</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectLabelEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>object</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>label</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectLabelKHR</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>label</name></param>
+ <alias name="glGetObjectLabel"/>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectParameterfvARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>obj</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectParameterivAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>objectType</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectParameterivARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>obj</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectPtrLabel</name></proto>
+ <param>const void *<name>ptr</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>label</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectPtrLabelKHR</name></proto>
+ <param>const void *<name>ptr</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>label</name></param>
+ <alias name="glGetObjectPtrLabel"/>
+ </command>
+ <command>
+ <proto>void <name>glGetOcclusionQueryivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="OcclusionQueryParameterNameNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetOcclusionQueryuivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="OcclusionQueryParameterNameNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathColorGenfvNV</name></proto>
+ <param group="PathColor"><ptype>GLenum</ptype> <name>color</name></param>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathColorGenivNV</name></proto>
+ <param group="PathColor"><ptype>GLenum</ptype> <name>color</name></param>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathCommandsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathCommand" len="COMPSIZE(path)"><ptype>GLubyte</ptype> *<name>commands</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathCoordsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param len="COMPSIZE(path)"><ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathDashArrayNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param len="COMPSIZE(path)"><ptype>GLfloat</ptype> *<name>dashArray</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLfloat</ptype> <name>glGetPathLengthNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>startSegment</name></param>
+ <param><ptype>GLsizei</ptype> <name>numSegments</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathMetricRangeNV</name></proto>
+ <param group="PathMetricMask"><ptype>GLbitfield</ptype> <name>metricQueryMask</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>firstPathName</name></param>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(metricQueryMask,numPaths,stride)"><ptype>GLfloat</ptype> *<name>metrics</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathMetricsNV</name></proto>
+ <param group="PathMetricMask"><ptype>GLbitfield</ptype> <name>metricQueryMask</name></param>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param group="PathElement" len="COMPSIZE(numPaths,pathNameType,paths)">const void *<name>paths</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(metricQueryMask,numPaths,stride)"><ptype>GLfloat</ptype> *<name>metrics</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathParameterfvNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathParameterivNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathSpacingNV</name></proto>
+ <param group="PathListMode"><ptype>GLenum</ptype> <name>pathListMode</name></param>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param group="PathElement" len="COMPSIZE(numPaths,pathNameType,paths)">const void *<name>paths</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param><ptype>GLfloat</ptype> <name>advanceScale</name></param>
+ <param><ptype>GLfloat</ptype> <name>kerningScale</name></param>
+ <param group="PathTransformType"><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param len="COMPSIZE(pathListMode,numPaths)"><ptype>GLfloat</ptype> *<name>returnedSpacing</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathTexGenfvNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texCoordSet</name></param>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathTexGenivNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texCoordSet</name></param>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfMonitorCounterDataAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>monitor</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLsizei</ptype> <name>dataSize</name></param>
+ <param len="dataSize"><ptype>GLuint</ptype> *<name>data</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>bytesWritten</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfMonitorCounterInfoAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>group</name></param>
+ <param><ptype>GLuint</ptype> <name>counter</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfMonitorCounterStringAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>group</name></param>
+ <param><ptype>GLuint</ptype> <name>counter</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>counterString</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfMonitorCountersAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>group</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>numCounters</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>maxActiveCounters</name></param>
+ <param><ptype>GLsizei</ptype> <name>counterSize</name></param>
+ <param len="counterSize"><ptype>GLuint</ptype> *<name>counters</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfMonitorGroupStringAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>group</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>groupString</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfMonitorGroupsAMD</name></proto>
+ <param len="1"><ptype>GLint</ptype> *<name>numGroups</name></param>
+ <param><ptype>GLsizei</ptype> <name>groupsSize</name></param>
+ <param len="groupsSize"><ptype>GLuint</ptype> *<name>groups</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelMapfv</name></proto>
+ <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
+ <param len="COMPSIZE(map)"><ptype>GLfloat</ptype> *<name>values</name></param>
+ <glx type="single" opcode="125"/>
+ <glx type="render" opcode="339" name="glGetPixelMapfvPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelMapuiv</name></proto>
+ <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
+ <param len="COMPSIZE(map)"><ptype>GLuint</ptype> *<name>values</name></param>
+ <glx type="single" opcode="126"/>
+ <glx type="render" opcode="340" name="glGetPixelMapuivPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelMapusv</name></proto>
+ <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
+ <param len="COMPSIZE(map)"><ptype>GLushort</ptype> *<name>values</name></param>
+ <glx type="single" opcode="127"/>
+ <glx type="render" opcode="341" name="glGetPixelMapusvPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelMapxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>map</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size"><ptype>GLfixed</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelTexGenParameterfvSGIS</name></proto>
+ <param group="PixelTexGenParameterNameSGIS"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelTexGenParameterivSGIS</name></proto>
+ <param group="PixelTexGenParameterNameSGIS"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelTransformParameterfvEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="2051"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelTransformParameterivEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="2052"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPointerIndexedvEXT</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">void **<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPointeri_vEXT</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">void **<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPointerv</name></proto>
+ <param group="GetPointervPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>void **<name>params</name></param>
+ <glx type="single" opcode="208"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPointervEXT</name></proto>
+ <param group="GetPointervPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">void **<name>params</name></param>
+ <alias name="glGetPointerv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPointervKHR</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>void **<name>params</name></param>
+ <alias name="glGetPointerv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPolygonStipple</name></proto>
+ <param len="COMPSIZE()"><ptype>GLubyte</ptype> *<name>mask</name></param>
+ <glx type="single" opcode="128"/>
+ <glx type="render" opcode="342" name="glGetPolygonStipplePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramBinary</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>binaryFormat</name></param>
+ <param len="bufSize">void *<name>binary</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramBinaryOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param><ptype>GLenum</ptype> *<name>binaryFormat</name></param>
+ <param len="bufSize">void *<name>binary</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramEnvParameterIivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramEnvParameterIuivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramEnvParameterdvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramEnvParameterfvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramInfoLog</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>infoLog</name></param>
+ <glx type="single" opcode="201"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramInterfaceiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>programInterface</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramLocalParameterIivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramLocalParameterIuivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramLocalParameterdvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramLocalParameterfvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramNamedParameterdvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="1">const <ptype>GLubyte</ptype> *<name>name</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1311"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramNamedParameterfvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="1">const <ptype>GLubyte</ptype> *<name>name</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1310"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramParameterdvNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1297"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramParameterfvNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1296"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramPipelineInfoLog</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>infoLog</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramPipelineInfoLogEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>infoLog</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramPipelineiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramPipelineivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetProgramResourceIndex</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>programInterface</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetProgramResourceLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>programInterface</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetProgramResourceLocationIndex</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>programInterface</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramResourceName</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>programInterface</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramResourceiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>programInterface</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>propCount</name></param>
+ <param len="propCount">const <ptype>GLenum</ptype> *<name>props</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramStageiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramStringARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ProgramStringPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(target,pname)">void *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramStringNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="ProgramCharacterNV" len="COMPSIZE(id,pname)"><ptype>GLubyte</ptype> *<name>program</name></param>
+ <glx type="vendor" opcode="1299"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramSubroutineParameteruivNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLuint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="199"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramivARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ProgramPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1298"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryIndexediv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjecti64v</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint64</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjecti64vEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint64</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1328"/>
+ <alias name="glGetQueryObjecti64v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="165"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetQueryObjectiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetQueryObjectiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectui64v</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint64</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectui64vEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint64</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1329"/>
+ <alias name="glGetQueryObjectui64v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="166"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectuivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ <alias name="glGetQueryObjectuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectuivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="164"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryivARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetQueryiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryivEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetRenderbufferParameteriv</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1424"/>
+ </command>
+ <command>
+ <proto>void <name>glGetRenderbufferParameterivEXT</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetRenderbufferParameteriv"/>
+ <glx type="vendor" opcode="1424"/>
+ </command>
+ <command>
+ <proto>void <name>glGetRenderbufferParameterivOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSamplerParameterIiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSamplerParameterIuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSamplerParameterfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSamplerParameteriv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSeparableFilter</name></proto>
+ <param group="SeparableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>row</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>column</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>span</name></param>
+ <glx type="single" opcode="153"/>
+ <glx type="render" opcode="343" name="glGetSeparableFilterPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetSeparableFilterEXT</name></proto>
+ <param group="SeparableTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>row</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>column</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>span</name></param>
+ <glx type="vendor" opcode="4"/>
+ </command>
+ <command>
+ <proto>void <name>glGetShaderInfoLog</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>infoLog</name></param>
+ <glx type="single" opcode="200"/>
+ </command>
+ <command>
+ <proto>void <name>glGetShaderPrecisionFormat</name></proto>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLenum</ptype> <name>precisiontype</name></param>
+ <param len="2"><ptype>GLint</ptype> *<name>range</name></param>
+ <param len="2"><ptype>GLint</ptype> *<name>precision</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetShaderSource</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>source</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetShaderSourceARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>obj</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxLength</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="maxLength"><ptype>GLcharARB</ptype> *<name>source</name></param>
+ <alias name="glGetShaderSource"/>
+ </command>
+ <command>
+ <proto>void <name>glGetShaderiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="198"/>
+ </command>
+ <command>
+ <proto>void <name>glGetSharpenTexFuncSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="vendor" opcode="4097"/>
+ </command>
+ <command>
+ <proto group="String">const <ptype>GLubyte</ptype> *<name>glGetString</name></proto>
+ <param group="StringName"><ptype>GLenum</ptype> <name>name</name></param>
+ <glx type="single" opcode="129"/>
+ </command>
+ <command>
+ <proto group="String">const <ptype>GLubyte</ptype> *<name>glGetStringi</name></proto>
+ <param><ptype>GLenum</ptype> <name>name</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetSubroutineIndex</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetSubroutineUniformLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSynciv</name></proto>
+ <param group="sync"><ptype>GLsync</ptype> <name>sync</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSyncivAPPLE</name></proto>
+ <param><ptype>GLsync</ptype> <name>sync</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexBumpParameterfvATI</name></proto>
+ <param group="GetTexBumpParameterATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexBumpParameterivATI</name></proto>
+ <param group="GetTexBumpParameterATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexEnvfv</name></proto>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="130"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexEnviv</name></proto>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="131"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexEnvxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexEnvxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexFilterFuncSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureFilterSGIS"><ptype>GLenum</ptype> <name>filter</name></param>
+ <param len="COMPSIZE(target,filter)"><ptype>GLfloat</ptype> *<name>weights</name></param>
+ <glx type="vendor" opcode="4101"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexGendv</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <glx type="single" opcode="132"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexGenfv</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="133"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexGenfvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexGeniv</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="134"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexGenivOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexGenxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexImage</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,level,format,type)">void *<name>pixels</name></param>
+ <glx type="single" opcode="135"/>
+ <glx type="render" opcode="344" name="glGetTexImagePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexLevelParameterfv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="138"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexLevelParameteriv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="139"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexLevelParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterIiv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="203"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterIivEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetTexParameterIiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterIuiv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="204"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterIuivEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ <alias name="glGetTexParameterIuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterPointervAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">void **<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterfv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="136"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameteriv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="137"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint64</ptype> <name>glGetTextureHandleARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint64</ptype> <name>glGetTextureHandleNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureImageEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,level,format,type)">void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureLevelParameterfvEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureLevelParameterivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureParameterIivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureParameterIuivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureParameterfvEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureParameterivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint64</ptype> <name>glGetTextureSamplerHandleARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint64</ptype> <name>glGetTextureSamplerHandleNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTrackMatrixivNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>address</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1300"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTransformFeedbackVarying</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTransformFeedbackVaryingEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>name</name></param>
+ <alias name="glGetTransformFeedbackVarying"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTransformFeedbackVaryingNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>location</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTranslatedShaderSourceANGLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufsize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param><ptype>GLchar</ptype> *<name>source</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetUniformBlockIndex</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param len="COMPSIZE()">const <ptype>GLchar</ptype> *<name>uniformBlockName</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetUniformBufferSizeEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformIndices</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>uniformCount</name></param>
+ <param len="COMPSIZE(uniformCount)">const <ptype>GLchar</ptype> *const*<name>uniformNames</name></param>
+ <param len="COMPSIZE(uniformCount)"><ptype>GLuint</ptype> *<name>uniformIndices</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetUniformLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetUniformLocationARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param>const <ptype>GLcharARB</ptype> *<name>name</name></param>
+ <alias name="glGetUniformLocation"/>
+ </command>
+ <command>
+ <proto group="BufferOffset"><ptype>GLintptr</ptype> <name>glGetUniformOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformSubroutineuiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="1"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformdv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(location)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(location)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformfvARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(location)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glGetUniformfv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformi64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(location)"><ptype>GLint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(location)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformivARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(location)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetUniformiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(program,location)"><ptype>GLuint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(program,location)"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformuivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(program,location)"><ptype>GLuint</ptype> *<name>params</name></param>
+ <alias name="glGetUniformuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVariantArrayObjectfvATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVariantArrayObjectivATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVariantBooleanvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param group="Boolean" len="COMPSIZE(id)"><ptype>GLboolean</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVariantFloatvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)"><ptype>GLfloat</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVariantIntegervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)"><ptype>GLint</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVariantPointervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)">void **<name>data</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetVaryingLocationNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexArrayIntegeri_vEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexArrayIntegervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexArrayPointeri_vEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>void **<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexArrayPointervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>void **<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribArrayObjectfvATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribArrayObjectivATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribIiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribIivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribIiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribIuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribIuivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLuint</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribIuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribLdv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribLdvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribLdv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribLi64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribLui64vARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribLui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribPointerv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPointerPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">void **<name>pointer</name></param>
+ <glx type="single" opcode="209"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribPointervARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPointerPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">void **<name>pointer</name></param>
+ <alias name="glGetVertexAttribPointerv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribPointervNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">void **<name>pointer</name></param>
+ <alias name="glGetVertexAttribPointerv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribdv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1301"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribdvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribdv"/>
+ <glx type="vendor" opcode="1301"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribdvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribdv"/>
+ <glx type="vendor" opcode="1301"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1302"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribfvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribfv"/>
+ <glx type="vendor" opcode="1302"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribfvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribfv"/>
+ <glx type="vendor" opcode="1302"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1303"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribiv"/>
+ <glx type="vendor" opcode="1303"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribiv"/>
+ <glx type="vendor" opcode="1303"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoCaptureStreamdvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoCaptureStreamfvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoCaptureStreamivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoCaptureivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoi64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_slot</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_slot</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_slot</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideouivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_slot</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnColorTableARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize">void *<name>table</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnCompressedTexImageARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>lod</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize">void *<name>img</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnConvolutionFilterARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize">void *<name>image</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnHistogramARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize">void *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnMapdvARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>query</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnMapfvARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>query</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnMapivARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>query</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnMinmaxARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize">void *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnPixelMapfvARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>map</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLfloat</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnPixelMapuivARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>map</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLuint</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnPixelMapusvARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>map</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLushort</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnPolygonStippleARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLubyte</ptype> *<name>pattern</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnSeparableFilterARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>rowBufSize</name></param>
+ <param len="rowBufSize">void *<name>row</name></param>
+ <param><ptype>GLsizei</ptype> <name>columnBufSize</name></param>
+ <param len="columnBufSize">void *<name>column</name></param>
+ <param len="0">void *<name>span</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnTexImageARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize">void *<name>img</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformdvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformfvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformfvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformuivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactorbSUN</name></proto>
+ <param><ptype>GLbyte</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactordSUN</name></proto>
+ <param><ptype>GLdouble</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactorfSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactoriSUN</name></proto>
+ <param><ptype>GLint</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactorsSUN</name></proto>
+ <param><ptype>GLshort</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactorubSUN</name></proto>
+ <param><ptype>GLubyte</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactoruiSUN</name></proto>
+ <param><ptype>GLuint</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactorusSUN</name></proto>
+ <param><ptype>GLushort</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glHint</name></proto>
+ <param group="HintTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="HintMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="85"/>
+ </command>
+ <command>
+ <proto>void <name>glHintPGI</name></proto>
+ <param group="HintTargetPGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glHistogram</name></proto>
+ <param group="HistogramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>sink</name></param>
+ <glx type="render" opcode="4110"/>
+ </command>
+ <command>
+ <proto>void <name>glHistogramEXT</name></proto>
+ <param group="HistogramTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>sink</name></param>
+ <alias name="glHistogram"/>
+ <glx type="render" opcode="4110"/>
+ </command>
+ <command>
+ <proto>void <name>glIglooInterfaceSGIX</name></proto>
+ <param group="IglooFunctionSelectSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="IglooParameterSGIX" len="COMPSIZE(pname)">const void *<name>params</name></param>
+ <glx type="render" opcode="200"/>
+ </command>
+ <command>
+ <proto>void <name>glImageTransformParameterfHP</name></proto>
+ <param group="ImageTransformTargetHP"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glImageTransformParameterfvHP</name></proto>
+ <param group="ImageTransformTargetHP"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glImageTransformParameteriHP</name></proto>
+ <param group="ImageTransformTargetHP"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glImageTransformParameterivHP</name></proto>
+ <param group="ImageTransformTargetHP"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto group="sync"><ptype>GLsync</ptype> <name>glImportSyncEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>external_sync_type</name></param>
+ <param><ptype>GLintptr</ptype> <name>external_sync</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexFormatNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexFuncEXT</name></proto>
+ <param group="IndexFunctionEXT"><ptype>GLenum</ptype> <name>func</name></param>
+ <param group="ClampedFloat32"><ptype>GLclampf</ptype> <name>ref</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexMask</name></proto>
+ <param group="MaskedColorIndexValueI"><ptype>GLuint</ptype> <name>mask</name></param>
+ <glx type="render" opcode="136"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexMaterialEXT</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="IndexMaterialParameterEXT"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexPointer</name></proto>
+ <param group="IndexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexPointerEXT</name></proto>
+ <param group="IndexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(type,stride,count)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexPointerListIBM</name></proto>
+ <param group="IndexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexd</name></proto>
+ <param group="ColorIndexValueD"><ptype>GLdouble</ptype> <name>c</name></param>
+ <vecequiv name="glIndexdv"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexdv</name></proto>
+ <param group="ColorIndexValueD" len="1">const <ptype>GLdouble</ptype> *<name>c</name></param>
+ <glx type="render" opcode="24"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexf</name></proto>
+ <param group="ColorIndexValueF"><ptype>GLfloat</ptype> <name>c</name></param>
+ <vecequiv name="glIndexfv"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexfv</name></proto>
+ <param group="ColorIndexValueF" len="1">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <glx type="render" opcode="25"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexi</name></proto>
+ <param group="ColorIndexValueI"><ptype>GLint</ptype> <name>c</name></param>
+ <vecequiv name="glIndexiv"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexiv</name></proto>
+ <param group="ColorIndexValueI" len="1">const <ptype>GLint</ptype> *<name>c</name></param>
+ <glx type="render" opcode="26"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexs</name></proto>
+ <param group="ColorIndexValueS"><ptype>GLshort</ptype> <name>c</name></param>
+ <vecequiv name="glIndexsv"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexsv</name></proto>
+ <param group="ColorIndexValueS" len="1">const <ptype>GLshort</ptype> *<name>c</name></param>
+ <glx type="render" opcode="27"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexub</name></proto>
+ <param group="ColorIndexValueUB"><ptype>GLubyte</ptype> <name>c</name></param>
+ <vecequiv name="glIndexubv"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexubv</name></proto>
+ <param group="ColorIndexValueUB" len="1">const <ptype>GLubyte</ptype> *<name>c</name></param>
+ <glx type="render" opcode="194"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>component</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexxvOES</name></proto>
+ <param len="1">const <ptype>GLfixed</ptype> *<name>component</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInitNames</name></proto>
+ <glx type="render" opcode="121"/>
+ </command>
+ <command>
+ <proto>void <name>glInsertComponentEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>src</name></param>
+ <param><ptype>GLuint</ptype> <name>num</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInsertEventMarkerEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>marker</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInstrumentsBufferSGIX</name></proto>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param len="size"><ptype>GLint</ptype> *<name>buffer</name></param>
+ <glx type="vendor" opcode="4103"/>
+ </command>
+ <command>
+ <proto>void <name>glInterleavedArrays</name></proto>
+ <param group="InterleavedArrayFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(format,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInterpolatePathsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>resultPath</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathA</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathB</name></param>
+ <param><ptype>GLfloat</ptype> <name>weight</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateBufferData</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateBufferSubData</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateFramebuffer</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>numAttachments</name></param>
+ <param len="numAttachments">const <ptype>GLenum</ptype> *<name>attachments</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateSubFramebuffer</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>numAttachments</name></param>
+ <param len="numAttachments">const <ptype>GLenum</ptype> *<name>attachments</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateTexImage</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateTexSubImage</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsAsyncMarkerSGIX</name></proto>
+ <param><ptype>GLuint</ptype> <name>marker</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsBuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsBufferARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <alias name="glIsBuffer"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsBufferResidentNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsEnabled</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>cap</name></param>
+ <glx type="single" opcode="140"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsEnabledIndexedEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <alias name="glIsEnabledi"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsEnabledi</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsFenceAPPLE</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsFenceNV</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ <glx type="vendor" opcode="1278"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsFramebuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <glx type="vendor" opcode="1425"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsFramebufferEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <alias name="glIsFramebuffer"/>
+ <glx type="vendor" opcode="1425"/>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsFramebufferOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsImageHandleResidentARB</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsImageHandleResidentNV</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsList</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <glx type="single" opcode="141"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsNameAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsNamedBufferResidentNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsNamedStringARB</name></proto>
+ <param><ptype>GLint</ptype> <name>namelen</name></param>
+ <param len="namelen">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsObjectBufferATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsOcclusionQueryNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsPointInFillPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsPointInStrokePathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsProgram</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <glx type="single" opcode="197"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsProgramARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <glx type="vendor" opcode="1304"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsProgramNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <alias name="glIsProgramARB"/>
+ <glx type="vendor" opcode="1304"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsProgramPipeline</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsProgramPipelineEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsQuery</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <glx type="single" opcode="163"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsQueryARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <alias name="glIsQuery"/>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsQueryEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsRenderbuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <glx type="vendor" opcode="1422"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsRenderbufferEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <alias name="glIsRenderbuffer"/>
+ <glx type="vendor" opcode="1422"/>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsRenderbufferOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsSampler</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsShader</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <glx type="single" opcode="196"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsSync</name></proto>
+ <param group="sync"><ptype>GLsync</ptype> <name>sync</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsSyncAPPLE</name></proto>
+ <param><ptype>GLsync</ptype> <name>sync</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsTexture</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <glx type="single" opcode="146"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsTextureEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <glx type="vendor" opcode="14"/>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsTextureHandleResidentARB</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsTextureHandleResidentNV</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsTransformFeedback</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsTransformFeedbackNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <alias name="glIsTransformFeedback"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsVariantEnabledEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="VariantCapEXT"><ptype>GLenum</ptype> <name>cap</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsVertexArray</name></proto>
+ <param><ptype>GLuint</ptype> <name>array</name></param>
+ <glx type="single" opcode="207"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsVertexArrayAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>array</name></param>
+ <alias name="glIsVertexArray"/>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsVertexArrayOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>array</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsVertexAttribEnabledAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLabelObjectEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>object</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>label</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightEnviSGIX</name></proto>
+ <param group="LightEnvParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightModelf</name></proto>
+ <param group="LightModelParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="90"/>
+ </command>
+ <command>
+ <proto>void <name>glLightModelfv</name></proto>
+ <param group="LightModelParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="91"/>
+ </command>
+ <command>
+ <proto>void <name>glLightModeli</name></proto>
+ <param group="LightModelParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="92"/>
+ </command>
+ <command>
+ <proto>void <name>glLightModeliv</name></proto>
+ <param group="LightModelParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="93"/>
+ </command>
+ <command>
+ <proto>void <name>glLightModelx</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightModelxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightModelxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLfixed</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightModelxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightf</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="86"/>
+ </command>
+ <command>
+ <proto>void <name>glLightfv</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="87"/>
+ </command>
+ <command>
+ <proto>void <name>glLighti</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="88"/>
+ </command>
+ <command>
+ <proto>void <name>glLightiv</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="89"/>
+ </command>
+ <command>
+ <proto>void <name>glLightx</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLineStipple</name></proto>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>factor</name></param>
+ <param group="LineStipple"><ptype>GLushort</ptype> <name>pattern</name></param>
+ <glx type="render" opcode="94"/>
+ </command>
+ <command>
+ <proto>void <name>glLineWidth</name></proto>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>width</name></param>
+ <glx type="render" opcode="95"/>
+ </command>
+ <command>
+ <proto>void <name>glLineWidthx</name></proto>
+ <param><ptype>GLfixed</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLineWidthxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLinkProgram</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLinkProgramARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <alias name="glLinkProgram"/>
+ </command>
+ <command>
+ <proto>void <name>glListBase</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>base</name></param>
+ <glx type="render" opcode="3"/>
+ </command>
+ <command>
+ <proto>void <name>glListParameterfSGIX</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="2078"/>
+ </command>
+ <command>
+ <proto>void <name>glListParameterfvSGIX</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2079"/>
+ </command>
+ <command>
+ <proto>void <name>glListParameteriSGIX</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="2080"/>
+ </command>
+ <command>
+ <proto>void <name>glListParameterivSGIX</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2081"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadIdentity</name></proto>
+ <glx type="render" opcode="176"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadIdentityDeformationMapSGIX</name></proto>
+ <param group="FfdMaskSGIX"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <glx type="render" opcode="2076"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadMatrixd</name></proto>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ <glx type="render" opcode="178"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadMatrixf</name></proto>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ <glx type="render" opcode="177"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadMatrixx</name></proto>
+ <param>const <ptype>GLfixed</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLoadMatrixxOES</name></proto>
+ <param len="16">const <ptype>GLfixed</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLoadName</name></proto>
+ <param group="SelectName"><ptype>GLuint</ptype> <name>name</name></param>
+ <glx type="render" opcode="122"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadPaletteFromModelViewMatrixOES</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glLoadProgramNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="len">const <ptype>GLubyte</ptype> *<name>program</name></param>
+ <glx type="render" opcode="4183"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadTransposeMatrixd</name></proto>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLoadTransposeMatrixdARB</name></proto>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ <alias name="glLoadTransposeMatrixd"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadTransposeMatrixf</name></proto>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLoadTransposeMatrixfARB</name></proto>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ <alias name="glLoadTransposeMatrixf"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadTransposeMatrixxOES</name></proto>
+ <param len="16">const <ptype>GLfixed</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLockArraysEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLogicOp</name></proto>
+ <param group="LogicOp"><ptype>GLenum</ptype> <name>opcode</name></param>
+ <glx type="render" opcode="161"/>
+ </command>
+ <command>
+ <proto>void <name>glMakeBufferNonResidentNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeBufferResidentNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeImageHandleNonResidentARB</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeImageHandleNonResidentNV</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeImageHandleResidentARB</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeImageHandleResidentNV</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeNamedBufferNonResidentNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeNamedBufferResidentNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeTextureHandleNonResidentARB</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeTextureHandleNonResidentNV</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeTextureHandleResidentARB</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeTextureHandleResidentNV</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMap1d</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>order</name></param>
+ <param group="CoordD" len="COMPSIZE(target,stride,order)">const <ptype>GLdouble</ptype> *<name>points</name></param>
+ <glx type="render" opcode="143"/>
+ </command>
+ <command>
+ <proto>void <name>glMap1f</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>order</name></param>
+ <param group="CoordF" len="COMPSIZE(target,stride,order)">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="render" opcode="144"/>
+ </command>
+ <command>
+ <proto>void <name>glMap1xOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLfixed</ptype> <name>u1</name></param>
+ <param><ptype>GLfixed</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param><ptype>GLint</ptype> <name>order</name></param>
+ <param><ptype>GLfixed</ptype> <name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMap2d</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="CoordD" len="COMPSIZE(target,ustride,uorder,vstride,vorder)">const <ptype>GLdouble</ptype> *<name>points</name></param>
+ <glx type="render" opcode="145"/>
+ </command>
+ <command>
+ <proto>void <name>glMap2f</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="CoordF" len="COMPSIZE(target,ustride,uorder,vstride,vorder)">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="render" opcode="146"/>
+ </command>
+ <command>
+ <proto>void <name>glMap2xOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLfixed</ptype> <name>u1</name></param>
+ <param><ptype>GLfixed</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param><ptype>GLint</ptype> <name>uorder</name></param>
+ <param><ptype>GLfixed</ptype> <name>v1</name></param>
+ <param><ptype>GLfixed</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param><ptype>GLint</ptype> <name>vorder</name></param>
+ <param><ptype>GLfixed</ptype> <name>points</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapBuffer</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferAccessARB"><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapBufferARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferAccessARB"><ptype>GLenum</ptype> <name>access</name></param>
+ <alias name="glMapBuffer"/>
+ </command>
+ <command>
+ <proto>void *<name>glMapBufferOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapBufferRange</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ <param group="BufferAccessMask"><ptype>GLbitfield</ptype> <name>access</name></param>
+ <glx type="single" opcode="205"/>
+ </command>
+ <command>
+ <proto>void *<name>glMapBufferRangeEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ <param><ptype>GLbitfield</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapControlPointsNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="MapTypeNV"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>ustride</name></param>
+ <param><ptype>GLsizei</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>packed</name></param>
+ <param len="COMPSIZE(target,uorder,vorder)">const void *<name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapGrid1d</name></proto>
+ <param><ptype>GLint</ptype> <name>un</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <glx type="render" opcode="147"/>
+ </command>
+ <command>
+ <proto>void <name>glMapGrid1f</name></proto>
+ <param><ptype>GLint</ptype> <name>un</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <glx type="render" opcode="148"/>
+ </command>
+ <command>
+ <proto>void <name>glMapGrid1xOES</name></proto>
+ <param><ptype>GLint</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>u1</name></param>
+ <param><ptype>GLfixed</ptype> <name>u2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapGrid2d</name></proto>
+ <param><ptype>GLint</ptype> <name>un</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>vn</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v2</name></param>
+ <glx type="render" opcode="149"/>
+ </command>
+ <command>
+ <proto>void <name>glMapGrid2f</name></proto>
+ <param><ptype>GLint</ptype> <name>un</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>vn</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v2</name></param>
+ <glx type="render" opcode="150"/>
+ </command>
+ <command>
+ <proto>void <name>glMapGrid2xOES</name></proto>
+ <param><ptype>GLint</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>u1</name></param>
+ <param><ptype>GLfixed</ptype> <name>u2</name></param>
+ <param><ptype>GLfixed</ptype> <name>v1</name></param>
+ <param><ptype>GLfixed</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapNamedBufferEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="VertexBufferObjectAccess"><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapNamedBufferRangeEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ <param group="BufferAccessMask"><ptype>GLbitfield</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapObjectBufferATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapParameterfvNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="MapParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(target,pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapParameterivNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="MapParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(target,pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapTexture2DINTEL</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLbitfield</ptype> <name>access</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>stride</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>layout</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapVertexAttrib1dAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>size</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>order</name></param>
+ <param group="CoordD" len="COMPSIZE(size,stride,order)">const <ptype>GLdouble</ptype> *<name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapVertexAttrib1fAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>size</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>order</name></param>
+ <param group="CoordF" len="COMPSIZE(size,stride,order)">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapVertexAttrib2dAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>size</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="CoordD" len="COMPSIZE(size,ustride,uorder,vstride,vorder)">const <ptype>GLdouble</ptype> *<name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapVertexAttrib2fAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>size</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="CoordF" len="COMPSIZE(size,ustride,uorder,vstride,vorder)">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMaterialf</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="96"/>
+ </command>
+ <command>
+ <proto>void <name>glMaterialfv</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="97"/>
+ </command>
+ <command>
+ <proto>void <name>glMateriali</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="98"/>
+ </command>
+ <command>
+ <proto>void <name>glMaterialiv</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="99"/>
+ </command>
+ <command>
+ <proto>void <name>glMaterialx</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMaterialxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMaterialxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLfixed</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMaterialxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixFrustumEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLdouble</ptype> <name>left</name></param>
+ <param><ptype>GLdouble</ptype> <name>right</name></param>
+ <param><ptype>GLdouble</ptype> <name>bottom</name></param>
+ <param><ptype>GLdouble</ptype> <name>top</name></param>
+ <param><ptype>GLdouble</ptype> <name>zNear</name></param>
+ <param><ptype>GLdouble</ptype> <name>zFar</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixIndexPointerARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="MatrixIndexPointerTypeARB"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixIndexPointerOES</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param>const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixIndexubvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLubyte</ptype> *<name>indices</name></param>
+ <glx type="render" opcode="4326"/>
+ </command>
+ <command>
+ <proto>void <name>glMatrixIndexuivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLuint</ptype> *<name>indices</name></param>
+ <glx type="render" opcode="4328"/>
+ </command>
+ <command>
+ <proto>void <name>glMatrixIndexusvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLushort</ptype> *<name>indices</name></param>
+ <glx type="render" opcode="4327"/>
+ </command>
+ <command>
+ <proto>void <name>glMatrixLoadIdentityEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixLoadTransposedEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixLoadTransposefEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixLoaddEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixLoadfEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixMode</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="179"/>
+ </command>
+ <command>
+ <proto>void <name>glMatrixMultTransposedEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixMultTransposefEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixMultdEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixMultfEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixOrthoEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLdouble</ptype> <name>left</name></param>
+ <param><ptype>GLdouble</ptype> <name>right</name></param>
+ <param><ptype>GLdouble</ptype> <name>bottom</name></param>
+ <param><ptype>GLdouble</ptype> <name>top</name></param>
+ <param><ptype>GLdouble</ptype> <name>zNear</name></param>
+ <param><ptype>GLdouble</ptype> <name>zFar</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixPopEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixPushEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixRotatedEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLdouble</ptype> <name>angle</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixRotatefEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLfloat</ptype> <name>angle</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixScaledEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixScalefEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixTranslatedEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixTranslatefEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMemoryBarrier</name></proto>
+ <param><ptype>GLbitfield</ptype> <name>barriers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMemoryBarrierEXT</name></proto>
+ <param><ptype>GLbitfield</ptype> <name>barriers</name></param>
+ <alias name="glMemoryBarrier"/>
+ </command>
+ <command>
+ <proto>void <name>glMinSampleShading</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMinSampleShadingARB</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>value</name></param>
+ <alias name="glMinSampleShading"/>
+ </command>
+ <command>
+ <proto>void <name>glMinmax</name></proto>
+ <param group="MinmaxTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>sink</name></param>
+ <glx type="render" opcode="4111"/>
+ </command>
+ <command>
+ <proto>void <name>glMinmaxEXT</name></proto>
+ <param group="MinmaxTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>sink</name></param>
+ <alias name="glMinmax"/>
+ <glx type="render" opcode="4111"/>
+ </command>
+ <command>
+ <proto>void <name>glMultMatrixd</name></proto>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ <glx type="render" opcode="181"/>
+ </command>
+ <command>
+ <proto>void <name>glMultMatrixf</name></proto>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ <glx type="render" opcode="180"/>
+ </command>
+ <command>
+ <proto>void <name>glMultMatrixx</name></proto>
+ <param>const <ptype>GLfixed</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultMatrixxOES</name></proto>
+ <param len="16">const <ptype>GLfixed</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultTransposeMatrixd</name></proto>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultTransposeMatrixdARB</name></proto>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ <alias name="glMultTransposeMatrixd"/>
+ </command>
+ <command>
+ <proto>void <name>glMultTransposeMatrixf</name></proto>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultTransposeMatrixfARB</name></proto>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ <alias name="glMultTransposeMatrixf"/>
+ </command>
+ <command>
+ <proto>void <name>glMultTransposeMatrixxOES</name></proto>
+ <param len="16">const <ptype>GLfixed</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawArrays</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="COMPSIZE(count)">const <ptype>GLint</ptype> *<name>first</name></param>
+ <param len="COMPSIZE(drawcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawArraysEXT</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLint</ptype> *<name>first</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glMultiDrawArrays"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawArraysIndirect</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="COMPSIZE(drawcount,stride)">const void *<name>indirect</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawArraysIndirectAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param>const void *<name>indirect</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <alias name="glMultiDrawArraysIndirect"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawArraysIndirectBindlessNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param>const void *<name>indirect</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawCount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLint</ptype> <name>vertexBufferCount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementsIndirectBindlessNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const void *<name>indirect</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawCount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLint</ptype> <name>vertexBufferCount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawArraysIndirectCountARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLintptr</ptype> <name>indirect</name></param>
+ <param><ptype>GLintptr</ptype> <name>drawcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxdrawcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementArrayAPPLE</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="primcount">const <ptype>GLint</ptype> *<name>first</name></param>
+ <param len="primcount">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElements</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="COMPSIZE(drawcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(drawcount)">const void *const*<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementsBaseVertex</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="COMPSIZE(drawcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(drawcount)">const void *const*<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
+ <param len="COMPSIZE(drawcount)">const <ptype>GLint</ptype> *<name>basevertex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementsEXT</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(primcount)">const void *const*<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glMultiDrawElements"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementsIndirect</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(drawcount,stride)">const void *<name>indirect</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementsIndirectAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const void *<name>indirect</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <alias name="glMultiDrawElementsIndirect"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementsIndirectCountARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLintptr</ptype> <name>indirect</name></param>
+ <param><ptype>GLintptr</ptype> <name>drawcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxdrawcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawRangeElementArrayAPPLE</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>start</name></param>
+ <param><ptype>GLuint</ptype> <name>end</name></param>
+ <param len="primcount">const <ptype>GLint</ptype> *<name>first</name></param>
+ <param len="primcount">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiModeDrawArraysIBM</name></proto>
+ <param group="PrimitiveType" len="COMPSIZE(primcount)">const <ptype>GLenum</ptype> *<name>mode</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLint</ptype> *<name>first</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <param><ptype>GLint</ptype> <name>modestride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiModeDrawElementsIBM</name></proto>
+ <param group="PrimitiveType" len="COMPSIZE(primcount)">const <ptype>GLenum</ptype> *<name>mode</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(primcount)">const void *const*<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <param><ptype>GLint</ptype> <name>modestride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexBufferEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1bOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1bvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="1">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1d</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1dv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1dARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1dv"/>
+ <alias name="glMultiTexCoord1d"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1dv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="198"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1dvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord1dv"/>
+ <glx type="render" opcode="198"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1f</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1fv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1fARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1fv"/>
+ <alias name="glMultiTexCoord1f"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1fv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="1">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="199"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1fvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="1">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord1fv"/>
+ <glx type="render" opcode="199"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1hNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1hvNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV" len="1">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4250"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1i</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1iv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1iARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1iv"/>
+ <alias name="glMultiTexCoord1i"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1iv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="1">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="200"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1ivARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="1">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord1iv"/>
+ <glx type="render" opcode="200"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1s</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1sv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1sARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1sv"/>
+ <alias name="glMultiTexCoord1s"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1sv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="1">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="201"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1svARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="1">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord1sv"/>
+ <glx type="render" opcode="201"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1xOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1xvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="1">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2bOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ <param><ptype>GLbyte</ptype> <name>t</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2bvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="2">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2d</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2dARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2dv"/>
+ <alias name="glMultiTexCoord2d"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2dv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="202"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2dvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord2dv"/>
+ <glx type="render" opcode="202"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2f</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2fARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2fv"/>
+ <alias name="glMultiTexCoord2f"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2fv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="203"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2fvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord2fv"/>
+ <glx type="render" opcode="203"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2hNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2hvNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV" len="2">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4251"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2i</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2iARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2iv"/>
+ <alias name="glMultiTexCoord2i"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2iv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="204"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2ivARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord2iv"/>
+ <glx type="render" opcode="204"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2s</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2sARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2sv"/>
+ <alias name="glMultiTexCoord2s"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2sv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="205"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2svARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord2sv"/>
+ <glx type="render" opcode="205"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2xOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2xvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3bOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ <param><ptype>GLbyte</ptype> <name>t</name></param>
+ <param><ptype>GLbyte</ptype> <name>r</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3bvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3d</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3dARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3dv"/>
+ <alias name="glMultiTexCoord3d"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3dv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="206"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3dvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord3dv"/>
+ <glx type="render" opcode="206"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3f</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3fARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3fv"/>
+ <alias name="glMultiTexCoord3f"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3fv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="207"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3fvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord3fv"/>
+ <glx type="render" opcode="207"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3hNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>t</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3hvNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4252"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3i</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3iARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3iv"/>
+ <alias name="glMultiTexCoord3i"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3iv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="208"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3ivARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord3iv"/>
+ <glx type="render" opcode="208"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3s</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3sARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3sv"/>
+ <alias name="glMultiTexCoord3s"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3sv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="209"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3svARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord3sv"/>
+ <glx type="render" opcode="209"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3xOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3xvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="3">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4bOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ <param><ptype>GLbyte</ptype> <name>t</name></param>
+ <param><ptype>GLbyte</ptype> <name>r</name></param>
+ <param><ptype>GLbyte</ptype> <name>q</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4bvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4d</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>r</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4dARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>r</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4dv"/>
+ <alias name="glMultiTexCoord4d"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4dv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="210"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4dvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord4dv"/>
+ <glx type="render" opcode="210"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4f</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>r</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4fARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>r</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4fv"/>
+ <alias name="glMultiTexCoord4f"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4fv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="211"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4fvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord4fv"/>
+ <glx type="render" opcode="211"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4hNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>t</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>r</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4hvNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV" len="4">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4253"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4i</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>r</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4iARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>r</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4iv"/>
+ <alias name="glMultiTexCoord4i"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4iv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="212"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4ivARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord4iv"/>
+ <glx type="render" opcode="212"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4s</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>r</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4sARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>r</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4sv"/>
+ <alias name="glMultiTexCoord4s"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4sv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="213"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4svARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord4sv"/>
+ <glx type="render" opcode="213"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4x</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>q</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4xOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>q</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4xvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP1ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP1uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP2ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP2uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP3ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP3uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP4ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP4uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordPointerEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="TexCoordPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexEnvfEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexEnvfvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexEnvfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexEnviEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexEnvivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexEnvivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexGendEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLdouble</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexGendvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexGendvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexGenfEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexGenfvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexGenfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexGeniEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexGenivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexGenivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexImage1DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexImage2DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexImage3DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexParameterIivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexParameterIuivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexParameterfEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexParameterfvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexParameterfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexParameteriEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexParameterivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexParameterivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexRenderbufferEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexSubImage1DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexSubImage2DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexSubImage3DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedBufferDataEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="COMPSIZE(size)">const void *<name>data</name></param>
+ <param group="VertexBufferObjectUsage"><ptype>GLenum</ptype> <name>usage</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedBufferStorageEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param>const void *<name>data</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedBufferSubDataEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="COMPSIZE(size)">const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedCopyBufferSubDataEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>readBuffer</name></param>
+ <param><ptype>GLuint</ptype> <name>writeBuffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>readOffset</name></param>
+ <param><ptype>GLintptr</ptype> <name>writeOffset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferParameteriEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferRenderbufferEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>renderbuffertarget</name></param>
+ <param group="Renderbuffer"><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTexture1DEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTexture2DEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTexture3DEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTextureEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTextureFaceEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>face</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTextureLayerEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>layer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameter4dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glNamedProgramLocalParameter4dvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameter4dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameter4fEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glNamedProgramLocalParameter4fvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameter4fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameterI4iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glNamedProgramLocalParameterI4ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameterI4ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameterI4uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <param><ptype>GLuint</ptype> <name>w</name></param>
+ <vecequiv name="glNamedProgramLocalParameterI4uivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameterI4uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameters4fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParametersI4ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParametersI4uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramStringEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ProgramFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="len">const void *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedRenderbufferStorageEXT</name></proto>
+ <param group="Renderbuffer"><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedRenderbufferStorageMultisampleCoverageEXT</name></proto>
+ <param group="Renderbuffer"><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <param><ptype>GLsizei</ptype> <name>coverageSamples</name></param>
+ <param><ptype>GLsizei</ptype> <name>colorSamples</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedRenderbufferStorageMultisampleEXT</name></proto>
+ <param group="Renderbuffer"><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedStringARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>namelen</name></param>
+ <param len="namelen">const <ptype>GLchar</ptype> *<name>name</name></param>
+ <param><ptype>GLint</ptype> <name>stringlen</name></param>
+ <param len="stringlen">const <ptype>GLchar</ptype> *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNewList</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="single" opcode="101"/>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glNewObjectBufferATI</name></proto>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param len="size">const void *<name>pointer</name></param>
+ <param group="ArrayObjectUsageATI"><ptype>GLenum</ptype> <name>usage</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormal3b</name></proto>
+ <param><ptype>GLbyte</ptype> <name>nx</name></param>
+ <param><ptype>GLbyte</ptype> <name>ny</name></param>
+ <param><ptype>GLbyte</ptype> <name>nz</name></param>
+ <vecequiv name="glNormal3bv"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3bv</name></proto>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="28"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>nx</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>ny</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>nz</name></param>
+ <vecequiv name="glNormal3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3dv</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="29"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>nz</name></param>
+ <vecequiv name="glNormal3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormal3fVertex3fvSUN</name></proto>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormal3fv</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="30"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>nx</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>ny</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>nz</name></param>
+ <vecequiv name="glNormal3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3hvNV</name></proto>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4243"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3i</name></proto>
+ <param><ptype>GLint</ptype> <name>nx</name></param>
+ <param><ptype>GLint</ptype> <name>ny</name></param>
+ <param><ptype>GLint</ptype> <name>nz</name></param>
+ <vecequiv name="glNormal3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3iv</name></proto>
+ <param len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="31"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3s</name></proto>
+ <param><ptype>GLshort</ptype> <name>nx</name></param>
+ <param><ptype>GLshort</ptype> <name>ny</name></param>
+ <param><ptype>GLshort</ptype> <name>nz</name></param>
+ <vecequiv name="glNormal3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3sv</name></proto>
+ <param len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="32"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3x</name></proto>
+ <param><ptype>GLfixed</ptype> <name>nx</name></param>
+ <param><ptype>GLfixed</ptype> <name>ny</name></param>
+ <param><ptype>GLfixed</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormal3xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>nx</name></param>
+ <param><ptype>GLfixed</ptype> <name>ny</name></param>
+ <param><ptype>GLfixed</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormal3xvOES</name></proto>
+ <param len="3">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalFormatNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalP3ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalP3uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalPointer</name></proto>
+ <param group="NormalPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalPointerEXT</name></proto>
+ <param group="NormalPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(type,stride,count)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalPointerListIBM</name></proto>
+ <param group="NormalPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalPointervINTEL</name></proto>
+ <param group="NormalPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="4">const void **<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3bATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLbyte</ptype> <name>nx</name></param>
+ <param><ptype>GLbyte</ptype> <name>ny</name></param>
+ <param><ptype>GLbyte</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3bvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3dATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLdouble</ptype> <name>nx</name></param>
+ <param><ptype>GLdouble</ptype> <name>ny</name></param>
+ <param><ptype>GLdouble</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3dvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3fATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3fvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3iATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLint</ptype> <name>nx</name></param>
+ <param><ptype>GLint</ptype> <name>ny</name></param>
+ <param><ptype>GLint</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3ivATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3sATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLshort</ptype> <name>nx</name></param>
+ <param><ptype>GLshort</ptype> <name>ny</name></param>
+ <param><ptype>GLshort</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3svATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLshort</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glObjectLabel</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="COMPSIZE(label,length)">const <ptype>GLchar</ptype> *<name>label</name></param>
+ </command>
+ <command>
+ <proto>void <name>glObjectLabelKHR</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>label</name></param>
+ <alias name="glObjectLabel"/>
+ </command>
+ <command>
+ <proto>void <name>glObjectPtrLabel</name></proto>
+ <param>const void *<name>ptr</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="COMPSIZE(label,length)">const <ptype>GLchar</ptype> *<name>label</name></param>
+ </command>
+ <command>
+ <proto>void <name>glObjectPtrLabelKHR</name></proto>
+ <param>const void *<name>ptr</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>label</name></param>
+ <alias name="glObjectPtrLabel"/>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glObjectPurgeableAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>objectType</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLenum</ptype> <name>option</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glObjectUnpurgeableAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>objectType</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLenum</ptype> <name>option</name></param>
+ </command>
+ <command>
+ <proto>void <name>glOrtho</name></proto>
+ <param><ptype>GLdouble</ptype> <name>left</name></param>
+ <param><ptype>GLdouble</ptype> <name>right</name></param>
+ <param><ptype>GLdouble</ptype> <name>bottom</name></param>
+ <param><ptype>GLdouble</ptype> <name>top</name></param>
+ <param><ptype>GLdouble</ptype> <name>zNear</name></param>
+ <param><ptype>GLdouble</ptype> <name>zFar</name></param>
+ <glx type="render" opcode="182"/>
+ </command>
+ <command>
+ <proto>void <name>glOrthof</name></proto>
+ <param><ptype>GLfloat</ptype> <name>l</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>n</name></param>
+ <param><ptype>GLfloat</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glOrthofOES</name></proto>
+ <param><ptype>GLfloat</ptype> <name>l</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>n</name></param>
+ <param><ptype>GLfloat</ptype> <name>f</name></param>
+ <glx type="render" opcode="4311"/>
+ </command>
+ <command>
+ <proto>void <name>glOrthox</name></proto>
+ <param><ptype>GLfixed</ptype> <name>l</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>b</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glOrthoxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>l</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>b</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPNTrianglesfATI</name></proto>
+ <param group="PNTrianglesPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPNTrianglesiATI</name></proto>
+ <param group="PNTrianglesPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPassTexCoordATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>coord</name></param>
+ <param group="SwizzleOpATI"><ptype>GLenum</ptype> <name>swizzle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPassThrough</name></proto>
+ <param group="FeedbackElement"><ptype>GLfloat</ptype> <name>token</name></param>
+ <glx type="render" opcode="123"/>
+ </command>
+ <command>
+ <proto>void <name>glPassThroughxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>token</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPatchParameterfv</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPatchParameteri</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathColorGenNV</name></proto>
+ <param group="PathColor"><ptype>GLenum</ptype> <name>color</name></param>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>genMode</name></param>
+ <param group="PathColorFormat"><ptype>GLenum</ptype> <name>colorFormat</name></param>
+ <param len="COMPSIZE(genMode,colorFormat)">const <ptype>GLfloat</ptype> *<name>coeffs</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathCommandsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>numCommands</name></param>
+ <param group="PathCommand" len="numCommands">const <ptype>GLubyte</ptype> *<name>commands</name></param>
+ <param><ptype>GLsizei</ptype> <name>numCoords</name></param>
+ <param group="PathCoordType"><ptype>GLenum</ptype> <name>coordType</name></param>
+ <param len="COMPSIZE(numCoords,coordType)">const void *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathCoordsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>numCoords</name></param>
+ <param group="PathCoordType"><ptype>GLenum</ptype> <name>coordType</name></param>
+ <param len="COMPSIZE(numCoords,coordType)">const void *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathCoverDepthFuncNV</name></proto>
+ <param group="DepthFunction"><ptype>GLenum</ptype> <name>func</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathDashArrayNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>dashCount</name></param>
+ <param len="dashCount">const <ptype>GLfloat</ptype> *<name>dashArray</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathFogGenNV</name></proto>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>genMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathGlyphRangeNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>firstPathName</name></param>
+ <param group="PathFontTarget"><ptype>GLenum</ptype> <name>fontTarget</name></param>
+ <param len="COMPSIZE(fontTarget,fontName)">const void *<name>fontName</name></param>
+ <param group="PathFontStyle"><ptype>GLbitfield</ptype> <name>fontStyle</name></param>
+ <param><ptype>GLuint</ptype> <name>firstGlyph</name></param>
+ <param><ptype>GLsizei</ptype> <name>numGlyphs</name></param>
+ <param group="PathHandleMissingGlyphs"><ptype>GLenum</ptype> <name>handleMissingGlyphs</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathParameterTemplate</name></param>
+ <param><ptype>GLfloat</ptype> <name>emScale</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathGlyphsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>firstPathName</name></param>
+ <param group="PathFontTarget"><ptype>GLenum</ptype> <name>fontTarget</name></param>
+ <param len="COMPSIZE(fontTarget,fontName)">const void *<name>fontName</name></param>
+ <param group="PathFontStyle"><ptype>GLbitfield</ptype> <name>fontStyle</name></param>
+ <param><ptype>GLsizei</ptype> <name>numGlyphs</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(numGlyphs,type,charcodes)">const void *<name>charcodes</name></param>
+ <param group="PathHandleMissingGlyphs"><ptype>GLenum</ptype> <name>handleMissingGlyphs</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathParameterTemplate</name></param>
+ <param><ptype>GLfloat</ptype> <name>emScale</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathParameterfNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathParameterfvNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathParameteriNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathParameterivNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathStencilDepthOffsetNV</name></proto>
+ <param><ptype>GLfloat</ptype> <name>factor</name></param>
+ <param><ptype>GLfloat</ptype> <name>units</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathStencilFuncNV</name></proto>
+ <param group="StencilFunction"><ptype>GLenum</ptype> <name>func</name></param>
+ <param group="ClampedStencilValue"><ptype>GLint</ptype> <name>ref</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathStringNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathStringFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length">const void *<name>pathString</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathSubCommandsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>commandStart</name></param>
+ <param><ptype>GLsizei</ptype> <name>commandsToDelete</name></param>
+ <param><ptype>GLsizei</ptype> <name>numCommands</name></param>
+ <param group="PathCommand" len="numCommands">const <ptype>GLubyte</ptype> *<name>commands</name></param>
+ <param><ptype>GLsizei</ptype> <name>numCoords</name></param>
+ <param group="PathCoordType"><ptype>GLenum</ptype> <name>coordType</name></param>
+ <param len="COMPSIZE(numCoords,coordType)">const void *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathSubCoordsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>coordStart</name></param>
+ <param><ptype>GLsizei</ptype> <name>numCoords</name></param>
+ <param group="PathCoordType"><ptype>GLenum</ptype> <name>coordType</name></param>
+ <param len="COMPSIZE(numCoords,coordType)">const void *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathTexGenNV</name></proto>
+ <param group="PathColor"><ptype>GLenum</ptype> <name>texCoordSet</name></param>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>genMode</name></param>
+ <param><ptype>GLint</ptype> <name>components</name></param>
+ <param len="COMPSIZE(genMode,components)">const <ptype>GLfloat</ptype> *<name>coeffs</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPauseTransformFeedback</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glPauseTransformFeedbackNV</name></proto>
+ <alias name="glPauseTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelDataRangeNV</name></proto>
+ <param group="PixelDataRangeTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelMapfv</name></proto>
+ <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
+ <param group="CheckedInt32"><ptype>GLsizei</ptype> <name>mapsize</name></param>
+ <param len="mapsize">const <ptype>GLfloat</ptype> *<name>values</name></param>
+ <glx type="render" opcode="168"/>
+ <glx type="render" opcode="323" name="glPixelMapfvPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelMapuiv</name></proto>
+ <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
+ <param group="CheckedInt32"><ptype>GLsizei</ptype> <name>mapsize</name></param>
+ <param len="mapsize">const <ptype>GLuint</ptype> *<name>values</name></param>
+ <glx type="render" opcode="169"/>
+ <glx type="render" opcode="324" name="glPixelMapuivPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelMapusv</name></proto>
+ <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
+ <param group="CheckedInt32"><ptype>GLsizei</ptype> <name>mapsize</name></param>
+ <param len="mapsize">const <ptype>GLushort</ptype> *<name>values</name></param>
+ <glx type="render" opcode="170"/>
+ <glx type="render" opcode="325" name="glPixelMapusvPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelMapx</name></proto>
+ <param><ptype>GLenum</ptype> <name>map</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLfixed</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelStoref</name></proto>
+ <param group="PixelStoreParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="single" opcode="109"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelStorei</name></proto>
+ <param group="PixelStoreParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="single" opcode="110"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelStorex</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTexGenParameterfSGIS</name></proto>
+ <param group="PixelTexGenParameterNameSGIS"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTexGenParameterfvSGIS</name></proto>
+ <param group="PixelTexGenParameterNameSGIS"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTexGenParameteriSGIS</name></proto>
+ <param group="PixelTexGenParameterNameSGIS"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTexGenParameterivSGIS</name></proto>
+ <param group="PixelTexGenParameterNameSGIS"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTexGenSGIX</name></proto>
+ <param group="PixelTexGenModeSGIX"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="2059"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransferf</name></proto>
+ <param group="PixelTransferParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="166"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransferi</name></proto>
+ <param group="PixelTransferParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="167"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransferxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransformParameterfEXT</name></proto>
+ <param group="PixelTransformTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelTransformPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="16385"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransformParameterfvEXT</name></proto>
+ <param group="PixelTransformTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelTransformPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransformParameteriEXT</name></proto>
+ <param group="PixelTransformTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelTransformPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="16386"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransformParameterivEXT</name></proto>
+ <param group="PixelTransformTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelTransformPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelZoom</name></proto>
+ <param><ptype>GLfloat</ptype> <name>xfactor</name></param>
+ <param><ptype>GLfloat</ptype> <name>yfactor</name></param>
+ <glx type="render" opcode="165"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelZoomxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>xfactor</name></param>
+ <param><ptype>GLfixed</ptype> <name>yfactor</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glPointAlongPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>startSegment</name></param>
+ <param><ptype>GLsizei</ptype> <name>numSegments</name></param>
+ <param><ptype>GLfloat</ptype> <name>distance</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>x</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>y</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>tangentX</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>tangentY</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterf</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="2065"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfARB</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <alias name="glPointParameterf"/>
+ <glx type="render" opcode="2065"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfEXT</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <alias name="glPointParameterf"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfSGIS</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <alias name="glPointParameterf"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfv</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2066"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfvARB</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glPointParameterfv"/>
+ <glx type="render" opcode="2066"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfvEXT</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glPointParameterfv"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfvSGIS</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glPointParameterfv"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameteri</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="4221"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameteriNV</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ <alias name="glPointParameteri"/>
+ <glx type="render" opcode="4221"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameteriv</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4222"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterivNV</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glPointParameteriv"/>
+ <glx type="render" opcode="4222"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterx</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointSize</name></proto>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>size</name></param>
+ <glx type="render" opcode="100"/>
+ </command>
+ <command>
+ <proto>void <name>glPointSizePointerOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param>const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointSizex</name></proto>
+ <param><ptype>GLfixed</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointSizexOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glPollAsyncSGIX</name></proto>
+ <param len="1"><ptype>GLuint</ptype> *<name>markerp</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glPollInstrumentsSGIX</name></proto>
+ <param len="1"><ptype>GLint</ptype> *<name>marker_p</name></param>
+ <glx type="vendor" opcode="4104"/>
+ </command>
+ <command>
+ <proto>void <name>glPolygonMode</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="PolygonMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="101"/>
+ </command>
+ <command>
+ <proto>void <name>glPolygonOffset</name></proto>
+ <param><ptype>GLfloat</ptype> <name>factor</name></param>
+ <param><ptype>GLfloat</ptype> <name>units</name></param>
+ <glx type="render" opcode="192"/>
+ </command>
+ <command>
+ <proto>void <name>glPolygonOffsetEXT</name></proto>
+ <param><ptype>GLfloat</ptype> <name>factor</name></param>
+ <param><ptype>GLfloat</ptype> <name>bias</name></param>
+ <glx type="render" opcode="4098"/>
+ </command>
+ <command>
+ <proto>void <name>glPolygonOffsetx</name></proto>
+ <param><ptype>GLfixed</ptype> <name>factor</name></param>
+ <param><ptype>GLfixed</ptype> <name>units</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPolygonOffsetxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>factor</name></param>
+ <param><ptype>GLfixed</ptype> <name>units</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPolygonStipple</name></proto>
+ <param len="COMPSIZE()">const <ptype>GLubyte</ptype> *<name>mask</name></param>
+ <glx type="render" opcode="102"/>
+ <glx type="render" opcode="326" name="glPolygonStipplePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glPopAttrib</name></proto>
+ <glx type="render" opcode="141"/>
+ </command>
+ <command>
+ <proto>void <name>glPopClientAttrib</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glPopDebugGroup</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glPopDebugGroupKHR</name></proto>
+ <alias name="glPopDebugGroup"/>
+ </command>
+ <command>
+ <proto>void <name>glPopGroupMarkerEXT</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glPopMatrix</name></proto>
+ <glx type="render" opcode="183"/>
+ </command>
+ <command>
+ <proto>void <name>glPopName</name></proto>
+ <glx type="render" opcode="124"/>
+ </command>
+ <command>
+ <proto>void <name>glPresentFrameDualFillNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_slot</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>minPresentTime</name></param>
+ <param><ptype>GLuint</ptype> <name>beginPresentTimeId</name></param>
+ <param><ptype>GLuint</ptype> <name>presentDurationId</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLenum</ptype> <name>target0</name></param>
+ <param><ptype>GLuint</ptype> <name>fill0</name></param>
+ <param><ptype>GLenum</ptype> <name>target1</name></param>
+ <param><ptype>GLuint</ptype> <name>fill1</name></param>
+ <param><ptype>GLenum</ptype> <name>target2</name></param>
+ <param><ptype>GLuint</ptype> <name>fill2</name></param>
+ <param><ptype>GLenum</ptype> <name>target3</name></param>
+ <param><ptype>GLuint</ptype> <name>fill3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPresentFrameKeyedNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_slot</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>minPresentTime</name></param>
+ <param><ptype>GLuint</ptype> <name>beginPresentTimeId</name></param>
+ <param><ptype>GLuint</ptype> <name>presentDurationId</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLenum</ptype> <name>target0</name></param>
+ <param><ptype>GLuint</ptype> <name>fill0</name></param>
+ <param><ptype>GLuint</ptype> <name>key0</name></param>
+ <param><ptype>GLenum</ptype> <name>target1</name></param>
+ <param><ptype>GLuint</ptype> <name>fill1</name></param>
+ <param><ptype>GLuint</ptype> <name>key1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPrimitiveRestartIndex</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPrimitiveRestartIndexNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPrimitiveRestartNV</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glPrioritizeTextures</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <param len="n">const <ptype>GLfloat</ptype> *<name>priorities</name></param>
+ <glx type="render" opcode="4118"/>
+ </command>
+ <command>
+ <proto>void <name>glPrioritizeTexturesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <param group="ClampedFloat32" len="n">const <ptype>GLclampf</ptype> *<name>priorities</name></param>
+ <alias name="glPrioritizeTextures"/>
+ <glx type="render" opcode="4118"/>
+ </command>
+ <command>
+ <proto>void <name>glPrioritizeTexturesxOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <param group="ClampedFixed" len="n">const <ptype>GLfixed</ptype> *<name>priorities</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramBinary</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>binaryFormat</name></param>
+ <param len="length">const void *<name>binary</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramBinaryOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>binaryFormat</name></param>
+ <param>const void *<name>binary</name></param>
+ <param><ptype>GLint</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramBufferParametersIivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingIndex</name></param>
+ <param><ptype>GLuint</ptype> <name>wordIndex</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramBufferParametersIuivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingIndex</name></param>
+ <param><ptype>GLuint</ptype> <name>wordIndex</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramBufferParametersfvNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingIndex</name></param>
+ <param><ptype>GLuint</ptype> <name>wordIndex</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameter4dARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glProgramEnvParameter4dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameter4dvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameter4fARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glProgramEnvParameter4fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameter4fvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameterI4iNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glProgramEnvParameterI4ivNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameterI4ivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameterI4uiNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <param><ptype>GLuint</ptype> <name>w</name></param>
+ <vecequiv name="glProgramEnvParameterI4uivNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameterI4uivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameters4fvEXT</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4281"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParametersI4ivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParametersI4uivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameter4dARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glProgramLocalParameter4dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameter4dvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameter4fARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glProgramLocalParameter4fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameter4fvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameterI4iNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glProgramLocalParameterI4ivNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameterI4ivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameterI4uiNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <param><ptype>GLuint</ptype> <name>w</name></param>
+ <vecequiv name="glProgramLocalParameterI4uivNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameterI4uivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameters4fvEXT</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4282"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParametersI4ivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParametersI4uivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramNamedParameter4dNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="1">const <ptype>GLubyte</ptype> *<name>name</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glProgramNamedParameter4dvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramNamedParameter4dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="1">const <ptype>GLubyte</ptype> *<name>name</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4219"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramNamedParameter4fNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="1">const <ptype>GLubyte</ptype> *<name>name</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glProgramNamedParameter4fvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramNamedParameter4fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="1">const <ptype>GLubyte</ptype> *<name>name</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4218"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameter4dNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glProgramParameter4dvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameter4dvNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4185"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameter4fNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glProgramParameter4fvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameter4fvNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4184"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameteri</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameteriARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>value</name></param>
+ <alias name="glProgramParameteri"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameteriEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>value</name></param>
+ <alias name="glProgramParameteri"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameters4dvNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4187"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameters4fvNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4186"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramStringARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ProgramFormatARB"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="len">const void *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramSubroutineParametersuivNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1d</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1f</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1fEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <alias name="glProgramUniform1f"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform1fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1i</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <alias name="glProgramUniform1i"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="1">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform1iv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <alias name="glProgramUniform1ui"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform1uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2d</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>v0</name></param>
+ <param><ptype>GLdouble</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2f</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2fEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <alias name="glProgramUniform2f"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2i</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*2)">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <alias name="glProgramUniform2i"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="2">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*2)">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <alias name="glProgramUniform2ui"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="2">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform2uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3d</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>v0</name></param>
+ <param><ptype>GLdouble</ptype> <name>v1</name></param>
+ <param><ptype>GLdouble</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3f</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3fEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ <alias name="glProgramUniform3f"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3i</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*3)">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ <alias name="glProgramUniform3i"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="3">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*3)">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ <alias name="glProgramUniform3ui"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="3">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform3uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4d</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>v0</name></param>
+ <param><ptype>GLdouble</ptype> <name>v1</name></param>
+ <param><ptype>GLdouble</ptype> <name>v2</name></param>
+ <param><ptype>GLdouble</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4f</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLfloat</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4fEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLfloat</ptype> <name>v3</name></param>
+ <alias name="glProgramUniform4f"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4i</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>z</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*4)">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>v3</name></param>
+ <alias name="glProgramUniform4i"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ <param><ptype>GLuint</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>z</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*4)">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ <param><ptype>GLuint</ptype> <name>v3</name></param>
+ <alias name="glProgramUniform4ui"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform4uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformHandleui64ARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformHandleui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformHandleui64vARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param>const <ptype>GLuint64</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformHandleui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint64</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x3dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x3dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x3fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x3fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*6">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix2x3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x4dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x4dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x4fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x4fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*8">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix2x4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*9">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x2dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x2dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x2fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x2fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*6">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix3x2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x4dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x4dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x4fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x4fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*12">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix3x4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*16">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x2dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x2dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x2fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x2fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*8">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix4x2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x3dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x3dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x3fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x3fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*12">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix4x3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramVertexLimitNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>limit</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProvokingVertex</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProvokingVertexEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <alias name="glProvokingVertex"/>
+ </command>
+ <command>
+ <proto>void <name>glPushAttrib</name></proto>
+ <param group="AttribMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <glx type="render" opcode="142"/>
+ </command>
+ <command>
+ <proto>void <name>glPushClientAttrib</name></proto>
+ <param group="ClientAttribMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPushClientAttribDefaultEXT</name></proto>
+ <param group="ClientAttribMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPushDebugGroup</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="COMPSIZE(message,length)">const <ptype>GLchar</ptype> *<name>message</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPushDebugGroupKHR</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>message</name></param>
+ <alias name="glPushDebugGroup"/>
+ </command>
+ <command>
+ <proto>void <name>glPushGroupMarkerEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>marker</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPushMatrix</name></proto>
+ <glx type="render" opcode="184"/>
+ </command>
+ <command>
+ <proto>void <name>glPushName</name></proto>
+ <param group="SelectName"><ptype>GLuint</ptype> <name>name</name></param>
+ <glx type="render" opcode="125"/>
+ </command>
+ <command>
+ <proto>void <name>glQueryCounter</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glQueryCounterEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glQueryCounter"/>
+ </command>
+ <command>
+ <proto><ptype>GLbitfield</ptype> <name>glQueryMatrixxOES</name></proto>
+ <param len="16"><ptype>GLfixed</ptype> *<name>mantissa</name></param>
+ <param len="16"><ptype>GLint</ptype> *<name>exponent</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <vecequiv name="glRasterPos2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2dv</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="33"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <vecequiv name="glRasterPos2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2fv</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="34"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <vecequiv name="glRasterPos2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2iv</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="35"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <vecequiv name="glRasterPos2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2sv</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="36"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2xvOES</name></proto>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <vecequiv name="glRasterPos3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3dv</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="37"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <vecequiv name="glRasterPos3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3fv</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="38"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <vecequiv name="glRasterPos3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3iv</name></proto>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="39"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <vecequiv name="glRasterPos3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3sv</name></proto>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="40"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3xvOES</name></proto>
+ <param len="3">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glRasterPos4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4dv</name></proto>
+ <param group="CoordD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="41"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glRasterPos4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4fv</name></proto>
+ <param group="CoordF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="42"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glRasterPos4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4iv</name></proto>
+ <param group="CoordI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="43"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>w</name></param>
+ <vecequiv name="glRasterPos4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4sv</name></proto>
+ <param group="CoordS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="44"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ <param><ptype>GLfixed</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4xvOES</name></proto>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReadBuffer</name></proto>
+ <param group="ReadBufferMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="171"/>
+ </command>
+ <command>
+ <proto>void <name>glReadBufferIndexedEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>src</name></param>
+ <param><ptype>GLint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReadBufferNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReadInstrumentsSGIX</name></proto>
+ <param><ptype>GLint</ptype> <name>marker</name></param>
+ <glx type="render" opcode="2077"/>
+ </command>
+ <command>
+ <proto>void <name>glReadPixels</name></proto>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">void *<name>pixels</name></param>
+ <glx type="single" opcode="111"/>
+ <glx type="render" opcode="345" name="glReadPixelsPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glReadnPixelsARB</name></proto>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize">void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReadnPixelsEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize">void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRectd</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x2</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y2</name></param>
+ <vecequiv name="glRectdv"/>
+ </command>
+ <command>
+ <proto>void <name>glRectdv</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v1</name></param>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v2</name></param>
+ <glx type="render" opcode="45"/>
+ </command>
+ <command>
+ <proto>void <name>glRectf</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x2</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y2</name></param>
+ <vecequiv name="glRectfv"/>
+ </command>
+ <command>
+ <proto>void <name>glRectfv</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v1</name></param>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v2</name></param>
+ <glx type="render" opcode="46"/>
+ </command>
+ <command>
+ <proto>void <name>glRecti</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x1</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y1</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x2</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y2</name></param>
+ <vecequiv name="glRectiv"/>
+ </command>
+ <command>
+ <proto>void <name>glRectiv</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v1</name></param>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v2</name></param>
+ <glx type="render" opcode="47"/>
+ </command>
+ <command>
+ <proto>void <name>glRects</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x1</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y1</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x2</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y2</name></param>
+ <vecequiv name="glRectsv"/>
+ </command>
+ <command>
+ <proto>void <name>glRectsv</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v1</name></param>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v2</name></param>
+ <glx type="render" opcode="48"/>
+ </command>
+ <command>
+ <proto>void <name>glRectxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x1</name></param>
+ <param><ptype>GLfixed</ptype> <name>y1</name></param>
+ <param><ptype>GLfixed</ptype> <name>x2</name></param>
+ <param><ptype>GLfixed</ptype> <name>y2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRectxvOES</name></proto>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>v1</name></param>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReferencePlaneSGIX</name></proto>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>equation</name></param>
+ <glx type="render" opcode="2071"/>
+ </command>
+ <command>
+ <proto>void <name>glReleaseShaderCompiler</name></proto>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glRenderMode</name></proto>
+ <param group="RenderingMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="single" opcode="107"/>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorage</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="4318"/>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageEXT</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <alias name="glRenderbufferStorage"/>
+ <glx type="render" opcode="4318"/>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisample</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="4331"/>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisampleANGLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisampleAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisampleCoverageNV</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>coverageSamples</name></param>
+ <param><ptype>GLsizei</ptype> <name>colorSamples</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisampleEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <alias name="glRenderbufferStorageMultisample"/>
+ <glx type="render" opcode="4331"/>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisampleIMG</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisampleNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodePointerSUN</name></proto>
+ <param group="ReplacementCodeTypeSUN"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void **<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeubSUN</name></proto>
+ <param><ptype>GLubyte</ptype> <name>code</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeubvSUN</name></proto>
+ <param len="COMPSIZE()">const <ptype>GLubyte</ptype> *<name>code</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiColor3fVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiColor3fVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiColor4fNormal3fVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiColor4fNormal3fVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiColor4ubVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLubyte</ptype> <name>r</name></param>
+ <param><ptype>GLubyte</ptype> <name>g</name></param>
+ <param><ptype>GLubyte</ptype> <name>b</name></param>
+ <param><ptype>GLubyte</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiColor4ubVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiNormal3fVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiNormal3fVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiSUN</name></proto>
+ <param><ptype>GLuint</ptype> <name>code</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiTexCoord2fVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiTexCoord2fVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuivSUN</name></proto>
+ <param len="COMPSIZE()">const <ptype>GLuint</ptype> *<name>code</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeusSUN</name></proto>
+ <param><ptype>GLushort</ptype> <name>code</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeusvSUN</name></proto>
+ <param len="COMPSIZE()">const <ptype>GLushort</ptype> *<name>code</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRequestResidentProgramsNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>programs</name></param>
+ <glx type="render" opcode="4182"/>
+ </command>
+ <command>
+ <proto>void <name>glResetHistogram</name></proto>
+ <param group="HistogramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <glx type="render" opcode="4112"/>
+ </command>
+ <command>
+ <proto>void <name>glResetHistogramEXT</name></proto>
+ <param group="HistogramTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glResetHistogram"/>
+ <glx type="render" opcode="4112"/>
+ </command>
+ <command>
+ <proto>void <name>glResetMinmax</name></proto>
+ <param group="MinmaxTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <glx type="render" opcode="4113"/>
+ </command>
+ <command>
+ <proto>void <name>glResetMinmaxEXT</name></proto>
+ <param group="MinmaxTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glResetMinmax"/>
+ <glx type="render" opcode="4113"/>
+ </command>
+ <command>
+ <proto>void <name>glResizeBuffersMESA</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glResolveMultisampleFramebufferAPPLE</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glResumeTransformFeedback</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glResumeTransformFeedbackNV</name></proto>
+ <alias name="glResumeTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glRotated</name></proto>
+ <param><ptype>GLdouble</ptype> <name>angle</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <glx type="render" opcode="185"/>
+ </command>
+ <command>
+ <proto>void <name>glRotatef</name></proto>
+ <param><ptype>GLfloat</ptype> <name>angle</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <glx type="render" opcode="186"/>
+ </command>
+ <command>
+ <proto>void <name>glRotatex</name></proto>
+ <param><ptype>GLfixed</ptype> <name>angle</name></param>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRotatexOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>angle</name></param>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleCoverage</name></proto>
+ <param><ptype>GLfloat</ptype> <name>value</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>invert</name></param>
+ <glx type="render" opcode="229"/>
+ </command>
+ <command>
+ <proto>void <name>glSampleCoverageARB</name></proto>
+ <param><ptype>GLfloat</ptype> <name>value</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>invert</name></param>
+ <alias name="glSampleCoverage"/>
+ </command>
+ <command>
+ <proto>void <name>glSampleCoverageOES</name></proto>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>value</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>invert</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleCoveragex</name></proto>
+ <param><ptype>GLclampx</ptype> <name>value</name></param>
+ <param><ptype>GLboolean</ptype> <name>invert</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleCoveragexOES</name></proto>
+ <param><ptype>GLclampx</ptype> <name>value</name></param>
+ <param><ptype>GLboolean</ptype> <name>invert</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleMapATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>interp</name></param>
+ <param group="SwizzleOpATI"><ptype>GLenum</ptype> <name>swizzle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleMaskEXT</name></proto>
+ <param group="ClampedFloat32"><ptype>GLclampf</ptype> <name>value</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>invert</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleMaskIndexedNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="SampleMaskNV"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleMaskSGIS</name></proto>
+ <param group="ClampedFloat32"><ptype>GLclampf</ptype> <name>value</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>invert</name></param>
+ <alias name="glSampleMaskEXT"/>
+ <glx type="render" opcode="2048"/>
+ </command>
+ <command>
+ <proto>void <name>glSampleMaski</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLbitfield</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplePatternEXT</name></proto>
+ <param group="SamplePatternEXT"><ptype>GLenum</ptype> <name>pattern</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplePatternSGIS</name></proto>
+ <param group="SamplePatternSGIS"><ptype>GLenum</ptype> <name>pattern</name></param>
+ <alias name="glSamplePatternEXT"/>
+ <glx type="render" opcode="2049"/>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameterIiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameterIuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLuint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameterf</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameterfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameteri</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameteriv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glScaled</name></proto>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <glx type="render" opcode="187"/>
+ </command>
+ <command>
+ <proto>void <name>glScalef</name></proto>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <glx type="render" opcode="188"/>
+ </command>
+ <command>
+ <proto>void <name>glScalex</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glScalexOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glScissor</name></proto>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="103"/>
+ </command>
+ <command>
+ <proto>void <name>glScissorArrayv</name></proto>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count)">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glScissorIndexed</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>left</name></param>
+ <param><ptype>GLint</ptype> <name>bottom</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glScissorIndexedv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3b</name></proto>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>red</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>green</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3bv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3bEXT</name></proto>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>red</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>green</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3b"/>
+ <vecequiv name="glSecondaryColor3bvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3bv</name></proto>
+ <param group="ColorB" len="3">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4126"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3bvEXT</name></proto>
+ <param group="ColorB" len="3">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3bv"/>
+ <glx type="render" opcode="4126"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3d</name></proto>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>red</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>green</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3dEXT</name></proto>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>red</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>green</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3d"/>
+ <vecequiv name="glSecondaryColor3dvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3dv</name></proto>
+ <param group="ColorD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4130"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3dvEXT</name></proto>
+ <param group="ColorD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3dv"/>
+ <glx type="render" opcode="4130"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3f</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3fEXT</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3f"/>
+ <vecequiv name="glSecondaryColor3fvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3fv</name></proto>
+ <param group="ColorF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4129"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3fvEXT</name></proto>
+ <param group="ColorF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3fv"/>
+ <glx type="render" opcode="4129"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>red</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>green</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3hvNV</name></proto>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4255"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3i</name></proto>
+ <param group="ColorI"><ptype>GLint</ptype> <name>red</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>green</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3iEXT</name></proto>
+ <param group="ColorI"><ptype>GLint</ptype> <name>red</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>green</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3i"/>
+ <vecequiv name="glSecondaryColor3ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3iv</name></proto>
+ <param group="ColorI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4128"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3ivEXT</name></proto>
+ <param group="ColorI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3iv"/>
+ <glx type="render" opcode="4128"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3s</name></proto>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>red</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>green</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3sEXT</name></proto>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>red</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>green</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3s"/>
+ <vecequiv name="glSecondaryColor3svEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3sv</name></proto>
+ <param group="ColorS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4127"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3svEXT</name></proto>
+ <param group="ColorS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3sv"/>
+ <glx type="render" opcode="4127"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3ub</name></proto>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>red</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>green</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3ubv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3ubEXT</name></proto>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>red</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>green</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3ub"/>
+ <vecequiv name="glSecondaryColor3ubvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3ubv</name></proto>
+ <param group="ColorUB" len="3">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4131"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3ubvEXT</name></proto>
+ <param group="ColorUB" len="3">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3ubv"/>
+ <glx type="render" opcode="4131"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3ui</name></proto>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>red</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>green</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3uiEXT</name></proto>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>red</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>green</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3ui"/>
+ <vecequiv name="glSecondaryColor3uivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3uiv</name></proto>
+ <param group="ColorUI" len="3">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4133"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3uivEXT</name></proto>
+ <param group="ColorUI" len="3">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3uiv"/>
+ <glx type="render" opcode="4133"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3us</name></proto>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>red</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>green</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3usv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3usEXT</name></proto>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>red</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>green</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3us"/>
+ <vecequiv name="glSecondaryColor3usvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3usv</name></proto>
+ <param group="ColorUS" len="3">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4132"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3usvEXT</name></proto>
+ <param group="ColorUS" len="3">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3usv"/>
+ <glx type="render" opcode="4132"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColorFormatNV</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColorP3ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>color</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColorP3uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>color</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColorPointer</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColorPointerEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ <alias name="glSecondaryColorPointer"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColorPointerListIBM</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="SecondaryColorPointerTypeIBM"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSelectBuffer</name></proto>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param group="SelectName" len="size"><ptype>GLuint</ptype> *<name>buffer</name></param>
+ <glx type="single" opcode="106"/>
+ </command>
+ <command>
+ <proto>void <name>glSelectPerfMonitorCountersAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>monitor</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>enable</name></param>
+ <param><ptype>GLuint</ptype> <name>group</name></param>
+ <param><ptype>GLint</ptype> <name>numCounters</name></param>
+ <param len="numCounters"><ptype>GLuint</ptype> *<name>counterList</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSeparableFilter2D</name></proto>
+ <param group="SeparableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type,width)">const void *<name>row</name></param>
+ <param len="COMPSIZE(target,format,type,height)">const void *<name>column</name></param>
+ <glx type="render" opcode="4109"/>
+ <glx type="render" opcode="327" name="glSeparableFilter2DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glSeparableFilter2DEXT</name></proto>
+ <param group="SeparableTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type,width)">const void *<name>row</name></param>
+ <param len="COMPSIZE(target,format,type,height)">const void *<name>column</name></param>
+ <alias name="glSeparableFilter2D"/>
+ <glx type="render" opcode="4109"/>
+ </command>
+ <command>
+ <proto>void <name>glSetFenceAPPLE</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSetFenceNV</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ <param group="FenceConditionNV"><ptype>GLenum</ptype> <name>condition</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSetFragmentShaderConstantATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSetInvariantEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="ScalarType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(id,type)">const void *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSetLocalConstantEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="ScalarType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(id,type)">const void *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSetMultisamplefvAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>val</name></param>
+ </command>
+ <command>
+ <proto>void <name>glShadeModel</name></proto>
+ <param group="ShadingModel"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="104"/>
+ </command>
+ <command>
+ <proto>void <name>glShaderBinary</name></proto>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>shaders</name></param>
+ <param><ptype>GLenum</ptype> <name>binaryformat</name></param>
+ <param len="length">const void *<name>binary</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glShaderOp1EXT</name></proto>
+ <param group="VertexShaderOpEXT"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glShaderOp2EXT</name></proto>
+ <param group="VertexShaderOpEXT"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glShaderOp3EXT</name></proto>
+ <param group="VertexShaderOpEXT"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glShaderSource</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLchar</ptype> *const*<name>string</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glShaderSourceARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>shaderObj</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLcharARB</ptype> **<name>string</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>length</name></param>
+ <alias name="glShaderSource"/>
+ </command>
+ <command>
+ <proto>void <name>glShaderStorageBlockBinding</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>storageBlockIndex</name></param>
+ <param><ptype>GLuint</ptype> <name>storageBlockBinding</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSharpenTexFuncSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n*2">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="render" opcode="2052"/>
+ </command>
+ <command>
+ <proto>void <name>glSpriteParameterfSGIX</name></proto>
+ <param group="SpriteParameterNameSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="2060"/>
+ </command>
+ <command>
+ <proto>void <name>glSpriteParameterfvSGIX</name></proto>
+ <param group="SpriteParameterNameSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2061"/>
+ </command>
+ <command>
+ <proto>void <name>glSpriteParameteriSGIX</name></proto>
+ <param group="SpriteParameterNameSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="2062"/>
+ </command>
+ <command>
+ <proto>void <name>glSpriteParameterivSGIX</name></proto>
+ <param group="SpriteParameterNameSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2063"/>
+ </command>
+ <command>
+ <proto>void <name>glStartInstrumentsSGIX</name></proto>
+ <glx type="render" opcode="2069"/>
+ </command>
+ <command>
+ <proto>void <name>glStartTilingQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>width</name></param>
+ <param><ptype>GLuint</ptype> <name>height</name></param>
+ <param><ptype>GLbitfield</ptype> <name>preserveMask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilClearTagEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>stencilTagBits</name></param>
+ <param><ptype>GLuint</ptype> <name>stencilClearTag</name></param>
+ <glx type="render" opcode="4223"/>
+ </command>
+ <command>
+ <proto>void <name>glStencilFillPathInstancedNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param group="PathElement" len="COMPSIZE(numPaths,pathNameType,paths)">const void *<name>paths</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param group="PathFillMode"><ptype>GLenum</ptype> <name>fillMode</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ <param group="PathTransformType"><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param len="COMPSIZE(numPaths,transformType)">const <ptype>GLfloat</ptype> *<name>transformValues</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilFillPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathFillMode"><ptype>GLenum</ptype> <name>fillMode</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilFunc</name></proto>
+ <param group="StencilFunction"><ptype>GLenum</ptype> <name>func</name></param>
+ <param group="StencilValue"><ptype>GLint</ptype> <name>ref</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ <glx type="render" opcode="162"/>
+ </command>
+ <command>
+ <proto>void <name>glStencilFuncSeparate</name></proto>
+ <param group="StencilFaceDirection"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="StencilFunction"><ptype>GLenum</ptype> <name>func</name></param>
+ <param group="StencilValue"><ptype>GLint</ptype> <name>ref</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilFuncSeparateATI</name></proto>
+ <param group="StencilFunction"><ptype>GLenum</ptype> <name>frontfunc</name></param>
+ <param group="StencilFunction"><ptype>GLenum</ptype> <name>backfunc</name></param>
+ <param group="ClampedStencilValue"><ptype>GLint</ptype> <name>ref</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilMask</name></proto>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ <glx type="render" opcode="133"/>
+ </command>
+ <command>
+ <proto>void <name>glStencilMaskSeparate</name></proto>
+ <param group="StencilFaceDirection"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilOp</name></proto>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>fail</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>zfail</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>zpass</name></param>
+ <glx type="render" opcode="163"/>
+ </command>
+ <command>
+ <proto>void <name>glStencilOpSeparate</name></proto>
+ <param group="StencilFaceDirection"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>sfail</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>dpfail</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>dppass</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilOpSeparateATI</name></proto>
+ <param group="StencilFaceDirection"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>sfail</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>dpfail</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>dppass</name></param>
+ <alias name="glStencilOpSeparate"/>
+ </command>
+ <command>
+ <proto>void <name>glStencilOpValueAMD</name></proto>
+ <param group="StencilFaceDirection"><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilStrokePathInstancedNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param group="PathElement" len="COMPSIZE(numPaths,pathNameType,paths)">const void *<name>paths</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param group="StencilValue"><ptype>GLint</ptype> <name>reference</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ <param group="PathTransformType"><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param len="COMPSIZE(numPaths,transformType)">const <ptype>GLfloat</ptype> *<name>transformValues</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilStrokePathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="StencilValue"><ptype>GLint</ptype> <name>reference</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStopInstrumentsSGIX</name></proto>
+ <param><ptype>GLint</ptype> <name>marker</name></param>
+ <glx type="render" opcode="2070"/>
+ </command>
+ <command>
+ <proto>void <name>glStringMarkerGREMEDY</name></proto>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="len">const void *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSwizzleEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>in</name></param>
+ <param group="VertexShaderCoordOutEXT"><ptype>GLenum</ptype> <name>outX</name></param>
+ <param group="VertexShaderCoordOutEXT"><ptype>GLenum</ptype> <name>outY</name></param>
+ <param group="VertexShaderCoordOutEXT"><ptype>GLenum</ptype> <name>outZ</name></param>
+ <param group="VertexShaderCoordOutEXT"><ptype>GLenum</ptype> <name>outW</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSyncTextureINTEL</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTagSampleBufferSGIX</name></proto>
+ <glx type="render" opcode="2050"/>
+ </command>
+ <command>
+ <proto>void <name>glTangent3bEXT</name></proto>
+ <param><ptype>GLbyte</ptype> <name>tx</name></param>
+ <param><ptype>GLbyte</ptype> <name>ty</name></param>
+ <param><ptype>GLbyte</ptype> <name>tz</name></param>
+ <vecequiv name="glTangent3bvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTangent3bvEXT</name></proto>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTangent3dEXT</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>tx</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>ty</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>tz</name></param>
+ <vecequiv name="glTangent3dvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTangent3dvEXT</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTangent3fEXT</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>tx</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>ty</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>tz</name></param>
+ <vecequiv name="glTangent3fvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTangent3fvEXT</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTangent3iEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>tx</name></param>
+ <param><ptype>GLint</ptype> <name>ty</name></param>
+ <param><ptype>GLint</ptype> <name>tz</name></param>
+ <vecequiv name="glTangent3ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTangent3ivEXT</name></proto>
+ <param len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTangent3sEXT</name></proto>
+ <param><ptype>GLshort</ptype> <name>tx</name></param>
+ <param><ptype>GLshort</ptype> <name>ty</name></param>
+ <param><ptype>GLshort</ptype> <name>tz</name></param>
+ <vecequiv name="glTangent3svEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTangent3svEXT</name></proto>
+ <param len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTangentPointerEXT</name></proto>
+ <param group="TangentPointerTypeEXT"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTbufferMask3DFX</name></proto>
+ <param><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTessellationFactorAMD</name></proto>
+ <param><ptype>GLfloat</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTessellationModeAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glTestFenceAPPLE</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glTestFenceNV</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ <glx type="vendor" opcode="1279"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glTestObjectAPPLE</name></proto>
+ <param group="ObjectTypeAPPLE"><ptype>GLenum</ptype> <name>object</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexBuffer</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexBufferARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <alias name="glTexBuffer"/>
+ </command>
+ <command>
+ <proto>void <name>glTexBufferEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <alias name="glTexBuffer"/>
+ </command>
+ <command>
+ <proto>void <name>glTexBufferRange</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexBumpParameterfvATI</name></proto>
+ <param group="TexBumpParameterATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexBumpParameterivATI</name></proto>
+ <param group="TexBumpParameterATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1bvOES</name></proto>
+ <param len="1">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <vecequiv name="glTexCoord1dv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1dv</name></proto>
+ <param group="CoordD" len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="49"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <vecequiv name="glTexCoord1fv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1fv</name></proto>
+ <param group="CoordF" len="1">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="50"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <vecequiv name="glTexCoord1hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1hvNV</name></proto>
+ <param group="Half16NV" len="1">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4246"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <vecequiv name="glTexCoord1iv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1iv</name></proto>
+ <param group="CoordI" len="1">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="51"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <vecequiv name="glTexCoord1sv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1sv</name></proto>
+ <param group="CoordS" len="1">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="52"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1xvOES</name></proto>
+ <param len="1">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ <param><ptype>GLbyte</ptype> <name>t</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2bvOES</name></proto>
+ <param len="2">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <vecequiv name="glTexCoord2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2dv</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="53"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <vecequiv name="glTexCoord2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fColor3fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fColor3fVertex3fvSUN</name></proto>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fColor4fNormal3fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fColor4fNormal3fVertex3fvSUN</name></proto>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fColor4ubVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLubyte</ptype> <name>r</name></param>
+ <param><ptype>GLubyte</ptype> <name>g</name></param>
+ <param><ptype>GLubyte</ptype> <name>b</name></param>
+ <param><ptype>GLubyte</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fColor4ubVertex3fvSUN</name></proto>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fNormal3fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fNormal3fVertex3fvSUN</name></proto>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fVertex3fvSUN</name></proto>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fv</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="54"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>t</name></param>
+ <vecequiv name="glTexCoord2hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2hvNV</name></proto>
+ <param group="Half16NV" len="2">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4247"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <vecequiv name="glTexCoord2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2iv</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="55"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <vecequiv name="glTexCoord2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2sv</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="56"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2xvOES</name></proto>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ <param><ptype>GLbyte</ptype> <name>t</name></param>
+ <param><ptype>GLbyte</ptype> <name>r</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3bvOES</name></proto>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>r</name></param>
+ <vecequiv name="glTexCoord3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3dv</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="57"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>r</name></param>
+ <vecequiv name="glTexCoord3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3fv</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="58"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>t</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>r</name></param>
+ <vecequiv name="glTexCoord3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3hvNV</name></proto>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4248"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>r</name></param>
+ <vecequiv name="glTexCoord3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3iv</name></proto>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="59"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>r</name></param>
+ <vecequiv name="glTexCoord3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3sv</name></proto>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="60"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3xvOES</name></proto>
+ <param len="3">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ <param><ptype>GLbyte</ptype> <name>t</name></param>
+ <param><ptype>GLbyte</ptype> <name>r</name></param>
+ <param><ptype>GLbyte</ptype> <name>q</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4bvOES</name></proto>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>r</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>q</name></param>
+ <vecequiv name="glTexCoord4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4dv</name></proto>
+ <param group="CoordD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="61"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>r</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>q</name></param>
+ <vecequiv name="glTexCoord4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4fColor4fNormal3fVertex4fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>p</name></param>
+ <param><ptype>GLfloat</ptype> <name>q</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4fColor4fNormal3fVertex4fvSUN</name></proto>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4fVertex4fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>p</name></param>
+ <param><ptype>GLfloat</ptype> <name>q</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4fVertex4fvSUN</name></proto>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4fv</name></proto>
+ <param group="CoordF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="62"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>t</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>r</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>q</name></param>
+ <vecequiv name="glTexCoord4hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4hvNV</name></proto>
+ <param group="Half16NV" len="4">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4249"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>r</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>q</name></param>
+ <vecequiv name="glTexCoord4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4iv</name></proto>
+ <param group="CoordI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="63"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>r</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>q</name></param>
+ <vecequiv name="glTexCoord4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4sv</name></proto>
+ <param group="CoordS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="64"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>q</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4xvOES</name></proto>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordFormatNV</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP1ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP1uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP2ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP2uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP3ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP3uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP4ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP4uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordPointer</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="TexCoordPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordPointerEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="TexCoordPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(size,type,stride,count)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordPointerListIBM</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="TexCoordPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordPointervINTEL</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="4">const void **<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvf</name></proto>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="111"/>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvfv</name></proto>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="112"/>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvi</name></proto>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="113"/>
+ </command>
+ <command>
+ <proto>void <name>glTexEnviv</name></proto>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="114"/>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvx</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexFilterFuncSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureFilterSGIS"><ptype>GLenum</ptype> <name>filter</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLfloat</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="2064"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGend</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLdouble</ptype> <name>param</name></param>
+ <glx type="render" opcode="115"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGendv</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLdouble</ptype> *<name>params</name></param>
+ <glx type="render" opcode="116"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGenf</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="117"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGenfOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexGenfv</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="118"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGenfvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexGeni</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="119"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGeniOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexGeniv</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="120"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGenivOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexGenxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexGenxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexImage1D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>pixels</name></param>
+ <glx type="render" opcode="109"/>
+ <glx type="render" opcode="328" name="glTexImage1DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glTexImage2D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>pixels</name></param>
+ <glx type="render" opcode="110"/>
+ <glx type="render" opcode="329" name="glTexImage2DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glTexImage2DMultisample</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexImage2DMultisampleCoverageNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>coverageSamples</name></param>
+ <param><ptype>GLsizei</ptype> <name>colorSamples</name></param>
+ <param><ptype>GLint</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexImage3D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const void *<name>pixels</name></param>
+ <glx type="render" opcode="4114"/>
+ <glx type="render" opcode="330" name="glTexImage3DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glTexImage3DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const void *<name>pixels</name></param>
+ <alias name="glTexImage3D"/>
+ <glx type="render" opcode="4114"/>
+ </command>
+ <command>
+ <proto>void <name>glTexImage3DMultisample</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexImage3DMultisampleCoverageNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>coverageSamples</name></param>
+ <param><ptype>GLsizei</ptype> <name>colorSamples</name></param>
+ <param><ptype>GLint</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexImage3DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexImage4DSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLsizei</ptype> <name>size4d</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth,size4d)">const void *<name>pixels</name></param>
+ <glx type="render" opcode="2057"/>
+ </command>
+ <command>
+ <proto>void <name>glTexPageCommitmentARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLboolean</ptype> <name>resident</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterIiv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="346"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterIivEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glTexParameterIiv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterIuiv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLuint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="347"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterIuivEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLuint</ptype> *<name>params</name></param>
+ <alias name="glTexParameterIuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterf</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="105"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterfv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="106"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameteri</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="107"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameteriv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="108"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterx</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexRenderbufferNV</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage1D</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage1DEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage2D</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage2DEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage2DMultisample</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage3D</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage3DEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage3DMultisample</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorageSparseAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLsizei</ptype> <name>layers</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage1D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>pixels</name></param>
+ <glx type="render" opcode="4099"/>
+ <glx type="render" opcode="331" name="glTexSubImage1DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage1DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>pixels</name></param>
+ <alias name="glTexSubImage1D"/>
+ <glx type="render" opcode="4099"/>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage2D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>pixels</name></param>
+ <glx type="render" opcode="4100"/>
+ <glx type="render" opcode="332" name="glTexSubImage2DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage2DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>pixels</name></param>
+ <alias name="glTexSubImage2D"/>
+ <glx type="render" opcode="4100"/>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage3D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const void *<name>pixels</name></param>
+ <glx type="render" opcode="4115"/>
+ <glx type="render" opcode="333" name="glTexSubImage3DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage3DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const void *<name>pixels</name></param>
+ <alias name="glTexSubImage3D"/>
+ <glx type="render" opcode="4115"/>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage3DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage4DSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>woffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLsizei</ptype> <name>size4d</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth,size4d)">const void *<name>pixels</name></param>
+ <glx type="render" opcode="2058"/>
+ </command>
+ <command>
+ <proto>void <name>glTextureBarrierNV</name></proto>
+ <glx type="render" opcode="4348"/>
+ </command>
+ <command>
+ <proto>void <name>glTextureBufferEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureBufferRangeEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureColorMaskSGIS</name></proto>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>red</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>green</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>blue</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="2082"/>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage1DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage2DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage2DMultisampleCoverageNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>coverageSamples</name></param>
+ <param><ptype>GLsizei</ptype> <name>colorSamples</name></param>
+ <param><ptype>GLint</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage2DMultisampleNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLint</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage3DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage3DMultisampleCoverageNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>coverageSamples</name></param>
+ <param><ptype>GLsizei</ptype> <name>colorSamples</name></param>
+ <param><ptype>GLint</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage3DMultisampleNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLint</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureLightEXT</name></proto>
+ <param group="LightTexturePNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureMaterialEXT</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureNormalEXT</name></proto>
+ <param group="TextureNormalModeEXT"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexturePageCommitmentEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLboolean</ptype> <name>resident</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameterIivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameterIuivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameterfEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <vecequiv name="glTextureParameterfvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameterfvEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameteriEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <vecequiv name="glTextureParameterivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameterivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureRangeAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureRenderbufferEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage1DEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage2DEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage2DMultisampleEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage3DEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage3DMultisampleEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorageSparseAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLsizei</ptype> <name>layers</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureSubImage1DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureSubImage2DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureSubImage3DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureView</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>origtexture</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>minlevel</name></param>
+ <param><ptype>GLuint</ptype> <name>numlevels</name></param>
+ <param><ptype>GLuint</ptype> <name>minlayer</name></param>
+ <param><ptype>GLuint</ptype> <name>numlayers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTrackMatrixNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>address</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>matrix</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>transform</name></param>
+ <glx type="render" opcode="4188"/>
+ </command>
+ <command>
+ <proto>void <name>glTransformFeedbackAttribsNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count)">const <ptype>GLint</ptype> *<name>attribs</name></param>
+ <param><ptype>GLenum</ptype> <name>bufferMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTransformFeedbackStreamAttribsNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>attribs</name></param>
+ <param><ptype>GLsizei</ptype> <name>nbuffers</name></param>
+ <param len="nbuffers">const <ptype>GLint</ptype> *<name>bufstreams</name></param>
+ <param><ptype>GLenum</ptype> <name>bufferMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTransformFeedbackVaryings</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLchar</ptype> *const*<name>varyings</name></param>
+ <param><ptype>GLenum</ptype> <name>bufferMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTransformFeedbackVaryingsEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLchar</ptype> *const*<name>varyings</name></param>
+ <param><ptype>GLenum</ptype> <name>bufferMode</name></param>
+ <alias name="glTransformFeedbackVaryings"/>
+ </command>
+ <command>
+ <proto>void <name>glTransformFeedbackVaryingsNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>locations</name></param>
+ <param><ptype>GLenum</ptype> <name>bufferMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTransformPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>resultPath</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>srcPath</name></param>
+ <param group="PathTransformType"><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param len="COMPSIZE(transformType)">const <ptype>GLfloat</ptype> *<name>transformValues</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTranslated</name></proto>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <glx type="render" opcode="189"/>
+ </command>
+ <command>
+ <proto>void <name>glTranslatef</name></proto>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <glx type="render" opcode="190"/>
+ </command>
+ <command>
+ <proto>void <name>glTranslatex</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTranslatexOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1d</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1f</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1fARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <alias name="glUniform1f"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform1fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniform1fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform1i</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1i64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1i64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1iARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <alias name="glUniform1i"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform1iv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1ivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glUniform1iv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform1ui</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1ui64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1ui64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1uiEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <alias name="glUniform1ui"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform1uiv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1uivEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glUniform1uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform2d</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2f</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2fARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <alias name="glUniform2f"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform2fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniform2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform2i</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2i64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2i64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*2)">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2iARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <alias name="glUniform2i"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform2iv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2ivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glUniform2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform2ui</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2ui64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2ui64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*2)">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2uiEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <alias name="glUniform2ui"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform2uiv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2uivEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glUniform2uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform3d</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3f</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3fARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ <alias name="glUniform3f"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform3fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniform3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform3i</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3i64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3i64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*3)">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3iARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ <alias name="glUniform3i"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform3iv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3ivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glUniform3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform3ui</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3ui64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3ui64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*3)">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3uiEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ <alias name="glUniform3ui"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform3uiv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3uivEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glUniform3uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform4d</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4f</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLfloat</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4fARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLfloat</ptype> <name>v3</name></param>
+ <alias name="glUniform4f"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform4fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniform4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform4i</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4i64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>z</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4i64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*4)">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4iARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>v3</name></param>
+ <alias name="glUniform4i"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform4iv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4ivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glUniform4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform4ui</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ <param><ptype>GLuint</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4ui64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>z</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4ui64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*4)">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4uiEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ <param><ptype>GLuint</ptype> <name>v3</name></param>
+ <alias name="glUniform4ui"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform4uiv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4uivEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glUniform4uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformBlockBinding</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>uniformBlockIndex</name></param>
+ <param><ptype>GLuint</ptype> <name>uniformBlockBinding</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformBufferEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformHandleui64ARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformHandleui64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformHandleui64vARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param>const <ptype>GLuint64</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformHandleui64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint64</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2x3dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2x3fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="6">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <glx type="render" opcode="305"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2x3fvNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="6">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix2x3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2x4dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2x4fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="8">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <glx type="render" opcode="307"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2x4fvNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="8">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix2x4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3x2dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3x2fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="6">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <glx type="render" opcode="306"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3x2fvNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="6">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix3x2"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3x4dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3x4fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="12">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <glx type="render" opcode="309"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3x4fvNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="12">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix3x4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4x2dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4x2fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="8">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <glx type="render" opcode="308"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4x2fvNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="8">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix4x2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4x3dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4x3fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="12">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <glx type="render" opcode="310"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4x3fvNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="12">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix4x3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformSubroutinesuiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>indices</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformui64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformui64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUnlockArraysEXT</name></proto>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glUnmapBuffer</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glUnmapBufferARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glUnmapBuffer"/>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glUnmapBufferOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glUnmapNamedBufferEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUnmapObjectBufferATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUnmapTexture2DINTEL</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUpdateObjectBufferATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param len="size">const void *<name>pointer</name></param>
+ <param group="PreserveModeATI"><ptype>GLenum</ptype> <name>preserve</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUseProgram</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUseProgramObjectARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <alias name="glUseProgram"/>
+ </command>
+ <command>
+ <proto>void <name>glUseProgramStages</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLbitfield</ptype> <name>stages</name></param>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUseProgramStagesEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLbitfield</ptype> <name>stages</name></param>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUseShaderProgramEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUFiniNV</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUGetSurfaceivNV</name></proto>
+ <param group="vdpauSurfaceNV"><ptype>GLvdpauSurfaceNV</ptype> <name>surface</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUInitNV</name></proto>
+ <param>const void *<name>vdpDevice</name></param>
+ <param>const void *<name>getProcAddress</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUIsSurfaceNV</name></proto>
+ <param group="vdpauSurfaceNV"><ptype>GLvdpauSurfaceNV</ptype> <name>surface</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUMapSurfacesNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numSurfaces</name></param>
+ <param group="vdpauSurfaceNV" len="numSurfaces">const <ptype>GLvdpauSurfaceNV</ptype> *<name>surfaces</name></param>
+ </command>
+ <command>
+ <proto group="vdpauSurfaceNV"><ptype>GLvdpauSurfaceNV</ptype> <name>glVDPAURegisterOutputSurfaceNV</name></proto>
+ <param>const void *<name>vdpSurface</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>numTextureNames</name></param>
+ <param len="numTextureNames">const <ptype>GLuint</ptype> *<name>textureNames</name></param>
+ </command>
+ <command>
+ <proto group="vdpauSurfaceNV"><ptype>GLvdpauSurfaceNV</ptype> <name>glVDPAURegisterVideoSurfaceNV</name></proto>
+ <param>const void *<name>vdpSurface</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>numTextureNames</name></param>
+ <param len="numTextureNames">const <ptype>GLuint</ptype> *<name>textureNames</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUSurfaceAccessNV</name></proto>
+ <param group="vdpauSurfaceNV"><ptype>GLvdpauSurfaceNV</ptype> <name>surface</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUUnmapSurfacesNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numSurface</name></param>
+ <param group="vdpauSurfaceNV" len="numSurface">const <ptype>GLvdpauSurfaceNV</ptype> *<name>surfaces</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUUnregisterSurfaceNV</name></proto>
+ <param group="vdpauSurfaceNV"><ptype>GLvdpauSurfaceNV</ptype> <name>surface</name></param>
+ </command>
+ <command>
+ <proto>void <name>glValidateProgram</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glValidateProgramARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <alias name="glValidateProgram"/>
+ </command>
+ <command>
+ <proto>void <name>glValidateProgramPipeline</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ </command>
+ <command>
+ <proto>void <name>glValidateProgramPipelineEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantArrayObjectATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="ScalarType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantPointerEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="ScalarType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(id,type,stride)">const void *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantbvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLbyte</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantdvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLdouble</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantfvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLfloat</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLint</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantsvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLshort</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantubvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLubyte</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantuivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLuint</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantusvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLushort</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex2bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex2bvOES</name></proto>
+ <param len="2">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex2d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <vecequiv name="glVertex2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2dv</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="65"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <vecequiv name="glVertex2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2fv</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="66"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>y</name></param>
+ <vecequiv name="glVertex2hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2hvNV</name></proto>
+ <param group="Half16NV" len="2">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4240"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <vecequiv name="glVertex2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2iv</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="67"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <vecequiv name="glVertex2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2sv</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="68"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex2xvOES</name></proto>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex3bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>x</name></param>
+ <param><ptype>GLbyte</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex3bvOES</name></proto>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex3d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <vecequiv name="glVertex3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3dv</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="69"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <vecequiv name="glVertex3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3fv</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="70"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>y</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>z</name></param>
+ <vecequiv name="glVertex3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3hvNV</name></proto>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4241"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <vecequiv name="glVertex3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3iv</name></proto>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="71"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <vecequiv name="glVertex3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3sv</name></proto>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="72"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex3xvOES</name></proto>
+ <param len="3">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex4bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>x</name></param>
+ <param><ptype>GLbyte</ptype> <name>y</name></param>
+ <param><ptype>GLbyte</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex4bvOES</name></proto>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex4d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glVertex4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4dv</name></proto>
+ <param group="CoordD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="73"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glVertex4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4fv</name></proto>
+ <param group="CoordF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="74"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>y</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>z</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>w</name></param>
+ <vecequiv name="glVertex4hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4hvNV</name></proto>
+ <param group="Half16NV" len="4">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4242"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glVertex4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4iv</name></proto>
+ <param group="CoordI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="75"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>w</name></param>
+ <vecequiv name="glVertex4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4sv</name></proto>
+ <param group="CoordS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="76"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex4xvOES</name></proto>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayBindVertexBufferEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayColorOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayEdgeFlagOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayFogCoordOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="FogCoordinatePointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayIndexOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="IndexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayMultiTexCoordOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="TexCoordPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayNormalOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="NormalPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayParameteriAPPLE</name></proto>
+ <param group="VertexArrayPNameAPPLE"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayRangeAPPLE</name></proto>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length">void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayRangeNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="COMPSIZE(length)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArraySecondaryColorOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayTexCoordOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="TexCoordPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribBindingEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribDivisorEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribFormatEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribIFormatEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribIOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribLFormatEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribLOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexBindingDivisorEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <vecequiv name="glVertexAttrib1dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1dARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <alias name="glVertexAttrib1d"/>
+ <vecequiv name="glVertexAttrib1dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1dNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <alias name="glVertexAttrib1d"/>
+ <vecequiv name="glVertexAttrib1dvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4197"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1dvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib1dv"/>
+ <glx type="render" opcode="4197"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib1dv"/>
+ <glx type="render" opcode="4197"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1f</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <vecequiv name="glVertexAttrib1fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1fARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <alias name="glVertexAttrib1f"/>
+ <vecequiv name="glVertexAttrib1fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1fNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <alias name="glVertexAttrib1f"/>
+ <vecequiv name="glVertexAttrib1fvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4193"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1fvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib1fv"/>
+ <glx type="render" opcode="4193"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib1fv"/>
+ <glx type="render" opcode="4193"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1hNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <vecequiv name="glVertexAttrib1hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV" len="1">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4257"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1s</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <vecequiv name="glVertexAttrib1sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1sARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <alias name="glVertexAttrib1s"/>
+ <vecequiv name="glVertexAttrib1svARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1sNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <alias name="glVertexAttrib1s"/>
+ <vecequiv name="glVertexAttrib1svNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1sv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4189"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1svARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib1sv"/>
+ <glx type="render" opcode="4189"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib1sv"/>
+ <glx type="render" opcode="4189"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <vecequiv name="glVertexAttrib2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2dARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <alias name="glVertexAttrib2d"/>
+ <vecequiv name="glVertexAttrib2dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2dNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <alias name="glVertexAttrib2d"/>
+ <vecequiv name="glVertexAttrib2dvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4198"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2dvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib2dv"/>
+ <glx type="render" opcode="4198"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib2dv"/>
+ <glx type="render" opcode="4198"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2f</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <vecequiv name="glVertexAttrib2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2fARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <alias name="glVertexAttrib2f"/>
+ <vecequiv name="glVertexAttrib2fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2fNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <alias name="glVertexAttrib2f"/>
+ <vecequiv name="glVertexAttrib2fvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4194"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2fvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib2fv"/>
+ <glx type="render" opcode="4194"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib2fv"/>
+ <glx type="render" opcode="4194"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2hNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>y</name></param>
+ <vecequiv name="glVertexAttrib2hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV" len="2">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4258"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2s</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <vecequiv name="glVertexAttrib2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2sARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <alias name="glVertexAttrib2s"/>
+ <vecequiv name="glVertexAttrib2svARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2sNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <alias name="glVertexAttrib2s"/>
+ <vecequiv name="glVertexAttrib2svNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2sv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4190"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2svARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib2sv"/>
+ <glx type="render" opcode="4190"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib2sv"/>
+ <glx type="render" opcode="4190"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <vecequiv name="glVertexAttrib3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3dARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <alias name="glVertexAttrib3d"/>
+ <vecequiv name="glVertexAttrib3dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3dNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <alias name="glVertexAttrib3d"/>
+ <vecequiv name="glVertexAttrib3dvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4199"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3dvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib3dv"/>
+ <glx type="render" opcode="4199"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib3dv"/>
+ <glx type="render" opcode="4199"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3f</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <vecequiv name="glVertexAttrib3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3fARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <alias name="glVertexAttrib3f"/>
+ <vecequiv name="glVertexAttrib3fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3fNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <alias name="glVertexAttrib3f"/>
+ <vecequiv name="glVertexAttrib3fvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4195"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3fvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib3fv"/>
+ <glx type="render" opcode="4195"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib3fv"/>
+ <glx type="render" opcode="4195"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3hNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>y</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>z</name></param>
+ <vecequiv name="glVertexAttrib3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4259"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3s</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <vecequiv name="glVertexAttrib3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3sARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <alias name="glVertexAttrib3s"/>
+ <vecequiv name="glVertexAttrib3svARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3sNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <alias name="glVertexAttrib3s"/>
+ <vecequiv name="glVertexAttrib3svNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3sv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4191"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3svARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib3sv"/>
+ <glx type="render" opcode="4191"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib3sv"/>
+ <glx type="render" opcode="4191"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Nbv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NbvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Nbv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Niv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Niv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Nsv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NsvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Nsv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Nub</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLubyte</ptype> <name>x</name></param>
+ <param><ptype>GLubyte</ptype> <name>y</name></param>
+ <param><ptype>GLubyte</ptype> <name>z</name></param>
+ <param><ptype>GLubyte</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NubARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLubyte</ptype> <name>x</name></param>
+ <param><ptype>GLubyte</ptype> <name>y</name></param>
+ <param><ptype>GLubyte</ptype> <name>z</name></param>
+ <param><ptype>GLubyte</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4Nub"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Nubv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4201"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NubvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Nubv"/>
+ <glx type="render" opcode="4201"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Nuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NuivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Nuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Nusv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NusvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Nusv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4bv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4bvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4bv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glVertexAttrib4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4dARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4d"/>
+ <vecequiv name="glVertexAttrib4dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4dNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4d"/>
+ <vecequiv name="glVertexAttrib4dvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4200"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4dvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4dv"/>
+ <glx type="render" opcode="4200"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4dv"/>
+ <glx type="render" opcode="4200"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4f</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glVertexAttrib4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4fARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4f"/>
+ <vecequiv name="glVertexAttrib4fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4fNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4f"/>
+ <vecequiv name="glVertexAttrib4fvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4196"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4fvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4fv"/>
+ <glx type="render" opcode="4196"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4fv"/>
+ <glx type="render" opcode="4196"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4hNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>y</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>z</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>w</name></param>
+ <vecequiv name="glVertexAttrib4hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV" len="4">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4260"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4ivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4s</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <param><ptype>GLshort</ptype> <name>w</name></param>
+ <vecequiv name="glVertexAttrib4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4sARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <param><ptype>GLshort</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4s"/>
+ <vecequiv name="glVertexAttrib4svARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4sNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <param><ptype>GLshort</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4s"/>
+ <vecequiv name="glVertexAttrib4svNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4sv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4192"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4svARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4sv"/>
+ <glx type="render" opcode="4192"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4sv"/>
+ <glx type="render" opcode="4192"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4ubNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>x</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>y</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>z</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4Nub"/>
+ <vecequiv name="glVertexAttrib4ubvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4ubv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4ubvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4ubv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4ubvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="ColorUB" len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Nubv"/>
+ <glx type="render" opcode="4201"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4uivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4usv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4usvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4usv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribArrayObjectATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribBinding</name></proto>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribDivisor</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribDivisorANGLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribDivisorARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ <alias name="glVertexAttribDivisor"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribDivisorEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ <alias name="glVertexAttribDivisor"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribDivisorNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribFormat</name></proto>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribFormatNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1i</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <vecequiv name="glVertexAttribI1iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <alias name="glVertexAttribI1i"/>
+ <vecequiv name="glVertexAttribI1ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI1iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <vecequiv name="glVertexAttribI1uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <alias name="glVertexAttribI1ui"/>
+ <vecequiv name="glVertexAttribI1uivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI1uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2i</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <vecequiv name="glVertexAttribI2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <alias name="glVertexAttribI2i"/>
+ <vecequiv name="glVertexAttribI2ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <vecequiv name="glVertexAttribI2uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <alias name="glVertexAttribI2ui"/>
+ <vecequiv name="glVertexAttribI2uivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLuint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI2uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3i</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <vecequiv name="glVertexAttribI3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <alias name="glVertexAttribI3i"/>
+ <vecequiv name="glVertexAttribI3ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <vecequiv name="glVertexAttribI3uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <alias name="glVertexAttribI3ui"/>
+ <vecequiv name="glVertexAttribI3uivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLuint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI3uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4bv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4bvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI4bv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4i</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glVertexAttribI4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>w</name></param>
+ <alias name="glVertexAttribI4i"/>
+ <vecequiv name="glVertexAttribI4ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4sv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4svEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4ubv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4ubvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI4ubv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <param><ptype>GLuint</ptype> <name>w</name></param>
+ <vecequiv name="glVertexAttribI4uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <param><ptype>GLuint</ptype> <name>w</name></param>
+ <alias name="glVertexAttribI4ui"/>
+ <vecequiv name="glVertexAttribI4uivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI4uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4usv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4usvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI4usv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribIFormat</name></proto>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribIFormatNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribIPointer</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribIPointerEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ <alias name="glVertexAttribIPointer"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <alias name="glVertexAttribL1d"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribL1dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1ui64ARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1ui64vARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param>const <ptype>GLuint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLuint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <alias name="glVertexAttribL2d"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribL2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLuint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <alias name="glVertexAttribL3d"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribL3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLuint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <alias name="glVertexAttribL4d"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribL4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>z</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>z</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribLFormat</name></proto>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribLFormatNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribLPointer</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="size">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribLPointerEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="size">const void *<name>pointer</name></param>
+ <alias name="glVertexAttribLPointer"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP1ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP1uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP2ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP2uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP3ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP3uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP4ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP4uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribParameteriAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribPointer</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribPointerARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ <alias name="glVertexAttribPointer"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribPointerNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>fsize</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(fsize,type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs1dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4210"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs1fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4206"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs1hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Half16NV" len="n">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4261"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs1svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4202"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs2dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4211"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs2fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4207"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs2hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Half16NV" len="n">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4262"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs2svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4203"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs3dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4212"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs3fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4208"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs3hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Half16NV" len="n">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4263"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs3svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4204"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs4dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4213"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs4fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4209"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs4hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Half16NV" len="n">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4264"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs4svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4205"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs4ubvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="ColorUB" len="count*4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4214"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexBindingDivisor</name></proto>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexBlendARB</name></proto>
+ <param><ptype>GLint</ptype> <name>count</name></param>
+ <glx type="render" opcode="226"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexBlendEnvfATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexBlendEnviATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexFormatNV</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexP2ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexP2uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexP3ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexP3uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexP4ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexP4uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexPointer</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexPointerEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(size,type,stride,count)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexPointerListIBM</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexPointervINTEL</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="4">const void **<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1dATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1dvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1fATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1fvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1iATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1ivATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="1">const <ptype>GLint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1sATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1svATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="1">const <ptype>GLshort</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2dATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2dvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2fATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2fvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2iATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2ivATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="2">const <ptype>GLint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2sATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2svATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="2">const <ptype>GLshort</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3dATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3dvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3fATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3fvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3iATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3ivATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3sATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3svATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLshort</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4dATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4dvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4fATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4fvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4iATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4ivATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4sATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <param><ptype>GLshort</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4svATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexWeightPointerEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexWeightPointerTypeEXT"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexWeightfEXT</name></proto>
+ <param><ptype>GLfloat</ptype> <name>weight</name></param>
+ <vecequiv name="glVertexWeightfvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexWeightfvEXT</name></proto>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>weight</name></param>
+ <glx type="render" opcode="4135"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexWeighthNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>weight</name></param>
+ <vecequiv name="glVertexWeighthvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexWeighthvNV</name></proto>
+ <param group="Half16NV" len="1">const <ptype>GLhalfNV</ptype> *<name>weight</name></param>
+ <glx type="render" opcode="4256"/>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glVideoCaptureNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> *<name>sequence_num</name></param>
+ <param><ptype>GLuint64EXT</ptype> *<name>capture_time</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVideoCaptureStreamParameterdvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVideoCaptureStreamParameterfvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVideoCaptureStreamParameterivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glViewport</name></proto>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="191"/>
+ </command>
+ <command>
+ <proto>void <name>glViewportArrayv</name></proto>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count)">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glViewportIndexedf</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <param><ptype>GLfloat</ptype> <name>h</name></param>
+ </command>
+ <command>
+ <proto>void <name>glViewportIndexedfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWaitSync</name></proto>
+ <param group="sync"><ptype>GLsync</ptype> <name>sync</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ <param><ptype>GLuint64</ptype> <name>timeout</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWaitSyncAPPLE</name></proto>
+ <param><ptype>GLsync</ptype> <name>sync</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ <param><ptype>GLuint64</ptype> <name>timeout</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWeightPathsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>resultPath</name></param>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="Path" len="numPaths">const <ptype>GLuint</ptype> *<name>paths</name></param>
+ <param len="numPaths">const <ptype>GLfloat</ptype> *<name>weights</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWeightPointerARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="WeightPointerTypeARB"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWeightPointerOES</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param>const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWeightbvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLbyte</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="220"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightdvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLdouble</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="228"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightfvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLfloat</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="227"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLint</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="224"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightsvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLshort</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="222"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightubvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLubyte</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="221"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightuivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLuint</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="225"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightusvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLushort</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="223"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <vecequiv name="glWindowPos2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2dARB</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <alias name="glWindowPos2d"/>
+ <vecequiv name="glWindowPos2dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2dMESA</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <alias name="glWindowPos2d"/>
+ <vecequiv name="glWindowPos2dvMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2dv</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2dvARB</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2dv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2dvMESA</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <vecequiv name="glWindowPos2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2fARB</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <alias name="glWindowPos2f"/>
+ <vecequiv name="glWindowPos2fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2fMESA</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <alias name="glWindowPos2f"/>
+ <vecequiv name="glWindowPos2fvMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2fv</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2fvARB</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2fv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2fvMESA</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <vecequiv name="glWindowPos2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2iARB</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <alias name="glWindowPos2i"/>
+ <vecequiv name="glWindowPos2ivARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2iMESA</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <alias name="glWindowPos2i"/>
+ <vecequiv name="glWindowPos2ivMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2iv</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2ivARB</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2iv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2ivMESA</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <vecequiv name="glWindowPos2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2sARB</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <alias name="glWindowPos2s"/>
+ <vecequiv name="glWindowPos2svARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2sMESA</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <alias name="glWindowPos2s"/>
+ <vecequiv name="glWindowPos2svMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2sv</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2svARB</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2sv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2svMESA</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <vecequiv name="glWindowPos3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3dARB</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <alias name="glWindowPos3d"/>
+ <vecequiv name="glWindowPos3dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3dMESA</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <alias name="glWindowPos3d"/>
+ <vecequiv name="glWindowPos3dvMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3dv</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3dvARB</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3dv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3dvMESA</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <vecequiv name="glWindowPos3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3fARB</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <alias name="glWindowPos3f"/>
+ <vecequiv name="glWindowPos3fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3fMESA</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <alias name="glWindowPos3f"/>
+ <vecequiv name="glWindowPos3fvMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3fv</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3fvARB</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3fv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3fvMESA</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <vecequiv name="glWindowPos3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3iARB</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <alias name="glWindowPos3i"/>
+ <vecequiv name="glWindowPos3ivARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3iMESA</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <alias name="glWindowPos3i"/>
+ <vecequiv name="glWindowPos3ivMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3iv</name></proto>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3ivARB</name></proto>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3iv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3ivMESA</name></proto>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <vecequiv name="glWindowPos3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3sARB</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <alias name="glWindowPos3s"/>
+ <vecequiv name="glWindowPos3svARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3sMESA</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <alias name="glWindowPos3s"/>
+ <vecequiv name="glWindowPos3svMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3sv</name></proto>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3svARB</name></proto>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3sv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3svMESA</name></proto>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4dMESA</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glWindowPos4dvMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4dvMESA</name></proto>
+ <param group="CoordD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4fMESA</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glWindowPos4fvMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4fvMESA</name></proto>
+ <param group="CoordF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4iMESA</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glWindowPos4ivMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4ivMESA</name></proto>
+ <param group="CoordI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4sMESA</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>w</name></param>
+ <vecequiv name="glWindowPos4svMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4svMESA</name></proto>
+ <param group="CoordS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWriteMaskEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>in</name></param>
+ <param group="VertexShaderWriteMaskEXT"><ptype>GLenum</ptype> <name>outX</name></param>
+ <param group="VertexShaderWriteMaskEXT"><ptype>GLenum</ptype> <name>outY</name></param>
+ <param group="VertexShaderWriteMaskEXT"><ptype>GLenum</ptype> <name>outZ</name></param>
+ <param group="VertexShaderWriteMaskEXT"><ptype>GLenum</ptype> <name>outW</name></param>
+ </command>
+ </commands>
+
+ <!-- SECTION: GL API interface definitions. -->
+ <feature api="gl" name="GL_VERSION_1_0" number="1.0">
+ <require>
+ <type name="GLvoid" comment="No longer used in headers"/>
+ <command name="glCullFace"/>
+ <command name="glFrontFace"/>
+ <command name="glHint"/>
+ <command name="glLineWidth"/>
+ <command name="glPointSize"/>
+ <command name="glPolygonMode"/>
+ <command name="glScissor"/>
+ <command name="glTexParameterf"/>
+ <command name="glTexParameterfv"/>
+ <command name="glTexParameteri"/>
+ <command name="glTexParameteriv"/>
+ <command name="glTexImage1D"/>
+ <command name="glTexImage2D"/>
+ <command name="glDrawBuffer"/>
+ <command name="glClear"/>
+ <command name="glClearColor"/>
+ <command name="glClearStencil"/>
+ <command name="glClearDepth"/>
+ <command name="glStencilMask"/>
+ <command name="glColorMask"/>
+ <command name="glDepthMask"/>
+ <command name="glDisable"/>
+ <command name="glEnable"/>
+ <command name="glFinish"/>
+ <command name="glFlush"/>
+ <command name="glBlendFunc"/>
+ <command name="glLogicOp"/>
+ <command name="glStencilFunc"/>
+ <command name="glStencilOp"/>
+ <command name="glDepthFunc"/>
+ <command name="glPixelStoref"/>
+ <command name="glPixelStorei"/>
+ <command name="glReadBuffer"/>
+ <command name="glReadPixels"/>
+ <command name="glGetBooleanv"/>
+ <command name="glGetDoublev"/>
+ <command name="glGetError"/>
+ <command name="glGetFloatv"/>
+ <command name="glGetIntegerv"/>
+ <command name="glGetString"/>
+ <command name="glGetTexImage"/>
+ <command name="glGetTexParameterfv"/>
+ <command name="glGetTexParameteriv"/>
+ <command name="glGetTexLevelParameterfv"/>
+ <command name="glGetTexLevelParameteriv"/>
+ <command name="glIsEnabled"/>
+ <command name="glDepthRange"/>
+ <command name="glViewport"/>
+ <command name="glNewList"/>
+ <command name="glEndList"/>
+ <command name="glCallList"/>
+ <command name="glCallLists"/>
+ <command name="glDeleteLists"/>
+ <command name="glGenLists"/>
+ <command name="glListBase"/>
+ <command name="glBegin"/>
+ <command name="glBitmap"/>
+ <command name="glColor3b"/>
+ <command name="glColor3bv"/>
+ <command name="glColor3d"/>
+ <command name="glColor3dv"/>
+ <command name="glColor3f"/>
+ <command name="glColor3fv"/>
+ <command name="glColor3i"/>
+ <command name="glColor3iv"/>
+ <command name="glColor3s"/>
+ <command name="glColor3sv"/>
+ <command name="glColor3ub"/>
+ <command name="glColor3ubv"/>
+ <command name="glColor3ui"/>
+ <command name="glColor3uiv"/>
+ <command name="glColor3us"/>
+ <command name="glColor3usv"/>
+ <command name="glColor4b"/>
+ <command name="glColor4bv"/>
+ <command name="glColor4d"/>
+ <command name="glColor4dv"/>
+ <command name="glColor4f"/>
+ <command name="glColor4fv"/>
+ <command name="glColor4i"/>
+ <command name="glColor4iv"/>
+ <command name="glColor4s"/>
+ <command name="glColor4sv"/>
+ <command name="glColor4ub"/>
+ <command name="glColor4ubv"/>
+ <command name="glColor4ui"/>
+ <command name="glColor4uiv"/>
+ <command name="glColor4us"/>
+ <command name="glColor4usv"/>
+ <command name="glEdgeFlag"/>
+ <command name="glEdgeFlagv"/>
+ <command name="glEnd"/>
+ <command name="glIndexd"/>
+ <command name="glIndexdv"/>
+ <command name="glIndexf"/>
+ <command name="glIndexfv"/>
+ <command name="glIndexi"/>
+ <command name="glIndexiv"/>
+ <command name="glIndexs"/>
+ <command name="glIndexsv"/>
+ <command name="glNormal3b"/>
+ <command name="glNormal3bv"/>
+ <command name="glNormal3d"/>
+ <command name="glNormal3dv"/>
+ <command name="glNormal3f"/>
+ <command name="glNormal3fv"/>
+ <command name="glNormal3i"/>
+ <command name="glNormal3iv"/>
+ <command name="glNormal3s"/>
+ <command name="glNormal3sv"/>
+ <command name="glRasterPos2d"/>
+ <command name="glRasterPos2dv"/>
+ <command name="glRasterPos2f"/>
+ <command name="glRasterPos2fv"/>
+ <command name="glRasterPos2i"/>
+ <command name="glRasterPos2iv"/>
+ <command name="glRasterPos2s"/>
+ <command name="glRasterPos2sv"/>
+ <command name="glRasterPos3d"/>
+ <command name="glRasterPos3dv"/>
+ <command name="glRasterPos3f"/>
+ <command name="glRasterPos3fv"/>
+ <command name="glRasterPos3i"/>
+ <command name="glRasterPos3iv"/>
+ <command name="glRasterPos3s"/>
+ <command name="glRasterPos3sv"/>
+ <command name="glRasterPos4d"/>
+ <command name="glRasterPos4dv"/>
+ <command name="glRasterPos4f"/>
+ <command name="glRasterPos4fv"/>
+ <command name="glRasterPos4i"/>
+ <command name="glRasterPos4iv"/>
+ <command name="glRasterPos4s"/>
+ <command name="glRasterPos4sv"/>
+ <command name="glRectd"/>
+ <command name="glRectdv"/>
+ <command name="glRectf"/>
+ <command name="glRectfv"/>
+ <command name="glRecti"/>
+ <command name="glRectiv"/>
+ <command name="glRects"/>
+ <command name="glRectsv"/>
+ <command name="glTexCoord1d"/>
+ <command name="glTexCoord1dv"/>
+ <command name="glTexCoord1f"/>
+ <command name="glTexCoord1fv"/>
+ <command name="glTexCoord1i"/>
+ <command name="glTexCoord1iv"/>
+ <command name="glTexCoord1s"/>
+ <command name="glTexCoord1sv"/>
+ <command name="glTexCoord2d"/>
+ <command name="glTexCoord2dv"/>
+ <command name="glTexCoord2f"/>
+ <command name="glTexCoord2fv"/>
+ <command name="glTexCoord2i"/>
+ <command name="glTexCoord2iv"/>
+ <command name="glTexCoord2s"/>
+ <command name="glTexCoord2sv"/>
+ <command name="glTexCoord3d"/>
+ <command name="glTexCoord3dv"/>
+ <command name="glTexCoord3f"/>
+ <command name="glTexCoord3fv"/>
+ <command name="glTexCoord3i"/>
+ <command name="glTexCoord3iv"/>
+ <command name="glTexCoord3s"/>
+ <command name="glTexCoord3sv"/>
+ <command name="glTexCoord4d"/>
+ <command name="glTexCoord4dv"/>
+ <command name="glTexCoord4f"/>
+ <command name="glTexCoord4fv"/>
+ <command name="glTexCoord4i"/>
+ <command name="glTexCoord4iv"/>
+ <command name="glTexCoord4s"/>
+ <command name="glTexCoord4sv"/>
+ <command name="glVertex2d"/>
+ <command name="glVertex2dv"/>
+ <command name="glVertex2f"/>
+ <command name="glVertex2fv"/>
+ <command name="glVertex2i"/>
+ <command name="glVertex2iv"/>
+ <command name="glVertex2s"/>
+ <command name="glVertex2sv"/>
+ <command name="glVertex3d"/>
+ <command name="glVertex3dv"/>
+ <command name="glVertex3f"/>
+ <command name="glVertex3fv"/>
+ <command name="glVertex3i"/>
+ <command name="glVertex3iv"/>
+ <command name="glVertex3s"/>
+ <command name="glVertex3sv"/>
+ <command name="glVertex4d"/>
+ <command name="glVertex4dv"/>
+ <command name="glVertex4f"/>
+ <command name="glVertex4fv"/>
+ <command name="glVertex4i"/>
+ <command name="glVertex4iv"/>
+ <command name="glVertex4s"/>
+ <command name="glVertex4sv"/>
+ <command name="glClipPlane"/>
+ <command name="glColorMaterial"/>
+ <command name="glFogf"/>
+ <command name="glFogfv"/>
+ <command name="glFogi"/>
+ <command name="glFogiv"/>
+ <command name="glLightf"/>
+ <command name="glLightfv"/>
+ <command name="glLighti"/>
+ <command name="glLightiv"/>
+ <command name="glLightModelf"/>
+ <command name="glLightModelfv"/>
+ <command name="glLightModeli"/>
+ <command name="glLightModeliv"/>
+ <command name="glLineStipple"/>
+ <command name="glMaterialf"/>
+ <command name="glMaterialfv"/>
+ <command name="glMateriali"/>
+ <command name="glMaterialiv"/>
+ <command name="glPolygonStipple"/>
+ <command name="glShadeModel"/>
+ <command name="glTexEnvf"/>
+ <command name="glTexEnvfv"/>
+ <command name="glTexEnvi"/>
+ <command name="glTexEnviv"/>
+ <command name="glTexGend"/>
+ <command name="glTexGendv"/>
+ <command name="glTexGenf"/>
+ <command name="glTexGenfv"/>
+ <command name="glTexGeni"/>
+ <command name="glTexGeniv"/>
+ <command name="glFeedbackBuffer"/>
+ <command name="glSelectBuffer"/>
+ <command name="glRenderMode"/>
+ <command name="glInitNames"/>
+ <command name="glLoadName"/>
+ <command name="glPassThrough"/>
+ <command name="glPopName"/>
+ <command name="glPushName"/>
+ <command name="glClearAccum"/>
+ <command name="glClearIndex"/>
+ <command name="glIndexMask"/>
+ <command name="glAccum"/>
+ <command name="glPopAttrib"/>
+ <command name="glPushAttrib"/>
+ <command name="glMap1d"/>
+ <command name="glMap1f"/>
+ <command name="glMap2d"/>
+ <command name="glMap2f"/>
+ <command name="glMapGrid1d"/>
+ <command name="glMapGrid1f"/>
+ <command name="glMapGrid2d"/>
+ <command name="glMapGrid2f"/>
+ <command name="glEvalCoord1d"/>
+ <command name="glEvalCoord1dv"/>
+ <command name="glEvalCoord1f"/>
+ <command name="glEvalCoord1fv"/>
+ <command name="glEvalCoord2d"/>
+ <command name="glEvalCoord2dv"/>
+ <command name="glEvalCoord2f"/>
+ <command name="glEvalCoord2fv"/>
+ <command name="glEvalMesh1"/>
+ <command name="glEvalPoint1"/>
+ <command name="glEvalMesh2"/>
+ <command name="glEvalPoint2"/>
+ <command name="glAlphaFunc"/>
+ <command name="glPixelZoom"/>
+ <command name="glPixelTransferf"/>
+ <command name="glPixelTransferi"/>
+ <command name="glPixelMapfv"/>
+ <command name="glPixelMapuiv"/>
+ <command name="glPixelMapusv"/>
+ <command name="glCopyPixels"/>
+ <command name="glDrawPixels"/>
+ <command name="glGetClipPlane"/>
+ <command name="glGetLightfv"/>
+ <command name="glGetLightiv"/>
+ <command name="glGetMapdv"/>
+ <command name="glGetMapfv"/>
+ <command name="glGetMapiv"/>
+ <command name="glGetMaterialfv"/>
+ <command name="glGetMaterialiv"/>
+ <command name="glGetPixelMapfv"/>
+ <command name="glGetPixelMapuiv"/>
+ <command name="glGetPixelMapusv"/>
+ <command name="glGetPolygonStipple"/>
+ <command name="glGetTexEnvfv"/>
+ <command name="glGetTexEnviv"/>
+ <command name="glGetTexGendv"/>
+ <command name="glGetTexGenfv"/>
+ <command name="glGetTexGeniv"/>
+ <command name="glIsList"/>
+ <command name="glFrustum"/>
+ <command name="glLoadIdentity"/>
+ <command name="glLoadMatrixf"/>
+ <command name="glLoadMatrixd"/>
+ <command name="glMatrixMode"/>
+ <command name="glMultMatrixf"/>
+ <command name="glMultMatrixd"/>
+ <command name="glOrtho"/>
+ <command name="glPopMatrix"/>
+ <command name="glPushMatrix"/>
+ <command name="glRotated"/>
+ <command name="glRotatef"/>
+ <command name="glScaled"/>
+ <command name="glScalef"/>
+ <command name="glTranslated"/>
+ <command name="glTranslatef"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_1_1" number="1.1">
+ <require>
+ <type name="GLclampf" comment="No longer used in GL 1.1, but still defined in Mesa gl.h"/>
+ <type name="GLclampd" comment="No longer used in GL 1.1, but still defined in Mesa gl.h"/>
+ <!-- Many of these are really VERSION_1_0 enums -->
+ <enum name="GL_DEPTH_BUFFER_BIT"/>
+ <enum name="GL_STENCIL_BUFFER_BIT"/>
+ <enum name="GL_COLOR_BUFFER_BIT"/>
+ <enum name="GL_FALSE"/>
+ <enum name="GL_TRUE"/>
+ <enum name="GL_POINTS"/>
+ <enum name="GL_LINES"/>
+ <enum name="GL_LINE_LOOP"/>
+ <enum name="GL_LINE_STRIP"/>
+ <enum name="GL_TRIANGLES"/>
+ <enum name="GL_TRIANGLE_STRIP"/>
+ <enum name="GL_TRIANGLE_FAN"/>
+ <enum name="GL_QUADS"/>
+ <enum name="GL_NEVER"/>
+ <enum name="GL_LESS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_LEQUAL"/>
+ <enum name="GL_GREATER"/>
+ <enum name="GL_NOTEQUAL"/>
+ <enum name="GL_GEQUAL"/>
+ <enum name="GL_ALWAYS"/>
+ <enum name="GL_ZERO"/>
+ <enum name="GL_ONE"/>
+ <enum name="GL_SRC_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC_COLOR"/>
+ <enum name="GL_SRC_ALPHA"/>
+ <enum name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <enum name="GL_DST_ALPHA"/>
+ <enum name="GL_ONE_MINUS_DST_ALPHA"/>
+ <enum name="GL_DST_COLOR"/>
+ <enum name="GL_ONE_MINUS_DST_COLOR"/>
+ <enum name="GL_SRC_ALPHA_SATURATE"/>
+ <enum name="GL_NONE"/>
+ <enum name="GL_FRONT_LEFT"/>
+ <enum name="GL_FRONT_RIGHT"/>
+ <enum name="GL_BACK_LEFT"/>
+ <enum name="GL_BACK_RIGHT"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_BACK"/>
+ <enum name="GL_LEFT"/>
+ <enum name="GL_RIGHT"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_INVALID_ENUM"/>
+ <enum name="GL_INVALID_VALUE"/>
+ <enum name="GL_INVALID_OPERATION"/>
+ <enum name="GL_OUT_OF_MEMORY"/>
+ <enum name="GL_CW"/>
+ <enum name="GL_CCW"/>
+ <enum name="GL_POINT_SIZE"/>
+ <enum name="GL_POINT_SIZE_RANGE"/>
+ <enum name="GL_POINT_SIZE_GRANULARITY"/>
+ <enum name="GL_LINE_SMOOTH"/>
+ <enum name="GL_LINE_WIDTH"/>
+ <enum name="GL_LINE_WIDTH_RANGE"/>
+ <enum name="GL_LINE_WIDTH_GRANULARITY"/>
+ <enum name="GL_POLYGON_MODE"/>
+ <enum name="GL_POLYGON_SMOOTH"/>
+ <enum name="GL_CULL_FACE"/>
+ <enum name="GL_CULL_FACE_MODE"/>
+ <enum name="GL_FRONT_FACE"/>
+ <enum name="GL_DEPTH_RANGE"/>
+ <enum name="GL_DEPTH_TEST"/>
+ <enum name="GL_DEPTH_WRITEMASK"/>
+ <enum name="GL_DEPTH_CLEAR_VALUE"/>
+ <enum name="GL_DEPTH_FUNC"/>
+ <enum name="GL_STENCIL_TEST"/>
+ <enum name="GL_STENCIL_CLEAR_VALUE"/>
+ <enum name="GL_STENCIL_FUNC"/>
+ <enum name="GL_STENCIL_VALUE_MASK"/>
+ <enum name="GL_STENCIL_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_PASS"/>
+ <enum name="GL_STENCIL_REF"/>
+ <enum name="GL_STENCIL_WRITEMASK"/>
+ <enum name="GL_VIEWPORT"/>
+ <enum name="GL_DITHER"/>
+ <enum name="GL_BLEND_DST"/>
+ <enum name="GL_BLEND_SRC"/>
+ <enum name="GL_BLEND"/>
+ <enum name="GL_LOGIC_OP_MODE"/>
+ <enum name="GL_COLOR_LOGIC_OP"/>
+ <enum name="GL_DRAW_BUFFER"/>
+ <enum name="GL_READ_BUFFER"/>
+ <enum name="GL_SCISSOR_BOX"/>
+ <enum name="GL_SCISSOR_TEST"/>
+ <enum name="GL_COLOR_CLEAR_VALUE"/>
+ <enum name="GL_COLOR_WRITEMASK"/>
+ <enum name="GL_DOUBLEBUFFER"/>
+ <enum name="GL_STEREO"/>
+ <enum name="GL_LINE_SMOOTH_HINT"/>
+ <enum name="GL_POLYGON_SMOOTH_HINT"/>
+ <enum name="GL_UNPACK_SWAP_BYTES"/>
+ <enum name="GL_UNPACK_LSB_FIRST"/>
+ <enum name="GL_UNPACK_ROW_LENGTH"/>
+ <enum name="GL_UNPACK_SKIP_ROWS"/>
+ <enum name="GL_UNPACK_SKIP_PIXELS"/>
+ <enum name="GL_UNPACK_ALIGNMENT"/>
+ <enum name="GL_PACK_SWAP_BYTES"/>
+ <enum name="GL_PACK_LSB_FIRST"/>
+ <enum name="GL_PACK_ROW_LENGTH"/>
+ <enum name="GL_PACK_SKIP_ROWS"/>
+ <enum name="GL_PACK_SKIP_PIXELS"/>
+ <enum name="GL_PACK_ALIGNMENT"/>
+ <enum name="GL_MAX_TEXTURE_SIZE"/>
+ <enum name="GL_MAX_VIEWPORT_DIMS"/>
+ <enum name="GL_SUBPIXEL_BITS"/>
+ <enum name="GL_TEXTURE_1D"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_POLYGON_OFFSET_UNITS"/>
+ <enum name="GL_POLYGON_OFFSET_POINT"/>
+ <enum name="GL_POLYGON_OFFSET_LINE"/>
+ <enum name="GL_POLYGON_OFFSET_FILL"/>
+ <enum name="GL_POLYGON_OFFSET_FACTOR"/>
+ <enum name="GL_TEXTURE_BINDING_1D"/>
+ <enum name="GL_TEXTURE_BINDING_2D"/>
+ <enum name="GL_TEXTURE_WIDTH"/>
+ <enum name="GL_TEXTURE_HEIGHT"/>
+ <enum name="GL_TEXTURE_INTERNAL_FORMAT"/>
+ <enum name="GL_TEXTURE_BORDER_COLOR"/>
+ <enum name="GL_TEXTURE_RED_SIZE"/>
+ <enum name="GL_TEXTURE_GREEN_SIZE"/>
+ <enum name="GL_TEXTURE_BLUE_SIZE"/>
+ <enum name="GL_TEXTURE_ALPHA_SIZE"/>
+ <enum name="GL_DONT_CARE"/>
+ <enum name="GL_FASTEST"/>
+ <enum name="GL_NICEST"/>
+ <enum name="GL_BYTE"/>
+ <enum name="GL_UNSIGNED_BYTE"/>
+ <enum name="GL_SHORT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_STACK_OVERFLOW"/>
+ <enum name="GL_STACK_UNDERFLOW"/>
+ <enum name="GL_CLEAR"/>
+ <enum name="GL_AND"/>
+ <enum name="GL_AND_REVERSE"/>
+ <enum name="GL_COPY"/>
+ <enum name="GL_AND_INVERTED"/>
+ <enum name="GL_NOOP"/>
+ <enum name="GL_XOR"/>
+ <enum name="GL_OR"/>
+ <enum name="GL_NOR"/>
+ <enum name="GL_EQUIV"/>
+ <enum name="GL_INVERT"/>
+ <enum name="GL_OR_REVERSE"/>
+ <enum name="GL_COPY_INVERTED"/>
+ <enum name="GL_OR_INVERTED"/>
+ <enum name="GL_NAND"/>
+ <enum name="GL_SET"/>
+ <enum name="GL_TEXTURE"/>
+ <enum name="GL_COLOR"/>
+ <enum name="GL_DEPTH"/>
+ <enum name="GL_STENCIL"/>
+ <enum name="GL_STENCIL_INDEX"/>
+ <enum name="GL_DEPTH_COMPONENT"/>
+ <enum name="GL_RED"/>
+ <enum name="GL_GREEN"/>
+ <enum name="GL_BLUE"/>
+ <enum name="GL_ALPHA"/>
+ <enum name="GL_RGB"/>
+ <enum name="GL_RGBA"/>
+ <enum name="GL_POINT"/>
+ <enum name="GL_LINE"/>
+ <enum name="GL_FILL"/>
+ <enum name="GL_KEEP"/>
+ <enum name="GL_REPLACE"/>
+ <enum name="GL_INCR"/>
+ <enum name="GL_DECR"/>
+ <enum name="GL_VENDOR"/>
+ <enum name="GL_RENDERER"/>
+ <enum name="GL_VERSION"/>
+ <enum name="GL_EXTENSIONS"/>
+ <enum name="GL_NEAREST"/>
+ <enum name="GL_LINEAR"/>
+ <enum name="GL_NEAREST_MIPMAP_NEAREST"/>
+ <enum name="GL_LINEAR_MIPMAP_NEAREST"/>
+ <enum name="GL_NEAREST_MIPMAP_LINEAR"/>
+ <enum name="GL_LINEAR_MIPMAP_LINEAR"/>
+ <enum name="GL_TEXTURE_MAG_FILTER"/>
+ <enum name="GL_TEXTURE_MIN_FILTER"/>
+ <enum name="GL_TEXTURE_WRAP_S"/>
+ <enum name="GL_TEXTURE_WRAP_T"/>
+ <enum name="GL_PROXY_TEXTURE_1D"/>
+ <enum name="GL_PROXY_TEXTURE_2D"/>
+ <enum name="GL_REPEAT"/>
+ <enum name="GL_R3_G3_B2"/>
+ <enum name="GL_RGB4"/>
+ <enum name="GL_RGB5"/>
+ <enum name="GL_RGB8"/>
+ <enum name="GL_RGB10"/>
+ <enum name="GL_RGB12"/>
+ <enum name="GL_RGB16"/>
+ <enum name="GL_RGBA2"/>
+ <enum name="GL_RGBA4"/>
+ <enum name="GL_RGB5_A1"/>
+ <enum name="GL_RGBA8"/>
+ <enum name="GL_RGB10_A2"/>
+ <enum name="GL_RGBA12"/>
+ <enum name="GL_RGBA16"/>
+ <enum name="GL_CURRENT_BIT"/>
+ <enum name="GL_POINT_BIT"/>
+ <enum name="GL_LINE_BIT"/>
+ <enum name="GL_POLYGON_BIT"/>
+ <enum name="GL_POLYGON_STIPPLE_BIT"/>
+ <enum name="GL_PIXEL_MODE_BIT"/>
+ <enum name="GL_LIGHTING_BIT"/>
+ <enum name="GL_FOG_BIT"/>
+ <enum name="GL_ACCUM_BUFFER_BIT"/>
+ <enum name="GL_VIEWPORT_BIT"/>
+ <enum name="GL_TRANSFORM_BIT"/>
+ <enum name="GL_ENABLE_BIT"/>
+ <enum name="GL_HINT_BIT"/>
+ <enum name="GL_EVAL_BIT"/>
+ <enum name="GL_LIST_BIT"/>
+ <enum name="GL_TEXTURE_BIT"/>
+ <enum name="GL_SCISSOR_BIT"/>
+ <enum name="GL_ALL_ATTRIB_BITS"/>
+ <enum name="GL_CLIENT_PIXEL_STORE_BIT"/>
+ <enum name="GL_CLIENT_VERTEX_ARRAY_BIT"/>
+ <enum name="GL_CLIENT_ALL_ATTRIB_BITS"/>
+ <enum name="GL_QUAD_STRIP"/>
+ <enum name="GL_POLYGON"/>
+ <enum name="GL_ACCUM"/>
+ <enum name="GL_LOAD"/>
+ <enum name="GL_RETURN"/>
+ <enum name="GL_MULT"/>
+ <enum name="GL_ADD"/>
+ <enum name="GL_AUX0"/>
+ <enum name="GL_AUX1"/>
+ <enum name="GL_AUX2"/>
+ <enum name="GL_AUX3"/>
+ <enum name="GL_2D"/>
+ <enum name="GL_3D"/>
+ <enum name="GL_3D_COLOR"/>
+ <enum name="GL_3D_COLOR_TEXTURE"/>
+ <enum name="GL_4D_COLOR_TEXTURE"/>
+ <enum name="GL_PASS_THROUGH_TOKEN"/>
+ <enum name="GL_POINT_TOKEN"/>
+ <enum name="GL_LINE_TOKEN"/>
+ <enum name="GL_POLYGON_TOKEN"/>
+ <enum name="GL_BITMAP_TOKEN"/>
+ <enum name="GL_DRAW_PIXEL_TOKEN"/>
+ <enum name="GL_COPY_PIXEL_TOKEN"/>
+ <enum name="GL_LINE_RESET_TOKEN"/>
+ <enum name="GL_EXP"/>
+ <enum name="GL_EXP2"/>
+ <enum name="GL_COEFF"/>
+ <enum name="GL_ORDER"/>
+ <enum name="GL_DOMAIN"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B"/>
+ <enum name="GL_PIXEL_MAP_A_TO_A"/>
+ <enum name="GL_VERTEX_ARRAY_POINTER"/>
+ <enum name="GL_NORMAL_ARRAY_POINTER"/>
+ <enum name="GL_COLOR_ARRAY_POINTER"/>
+ <enum name="GL_INDEX_ARRAY_POINTER"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_POINTER"/>
+ <enum name="GL_FEEDBACK_BUFFER_POINTER"/>
+ <enum name="GL_SELECTION_BUFFER_POINTER"/>
+ <enum name="GL_CURRENT_COLOR"/>
+ <enum name="GL_CURRENT_INDEX"/>
+ <enum name="GL_CURRENT_NORMAL"/>
+ <enum name="GL_CURRENT_TEXTURE_COORDS"/>
+ <enum name="GL_CURRENT_RASTER_COLOR"/>
+ <enum name="GL_CURRENT_RASTER_INDEX"/>
+ <enum name="GL_CURRENT_RASTER_TEXTURE_COORDS"/>
+ <enum name="GL_CURRENT_RASTER_POSITION"/>
+ <enum name="GL_CURRENT_RASTER_POSITION_VALID"/>
+ <enum name="GL_CURRENT_RASTER_DISTANCE"/>
+ <enum name="GL_POINT_SMOOTH"/>
+ <enum name="GL_LINE_STIPPLE"/>
+ <enum name="GL_LINE_STIPPLE_PATTERN"/>
+ <enum name="GL_LINE_STIPPLE_REPEAT"/>
+ <enum name="GL_LIST_MODE"/>
+ <enum name="GL_MAX_LIST_NESTING"/>
+ <enum name="GL_LIST_BASE"/>
+ <enum name="GL_LIST_INDEX"/>
+ <enum name="GL_POLYGON_STIPPLE"/>
+ <enum name="GL_EDGE_FLAG"/>
+ <enum name="GL_LIGHTING"/>
+ <enum name="GL_LIGHT_MODEL_LOCAL_VIEWER"/>
+ <enum name="GL_LIGHT_MODEL_TWO_SIDE"/>
+ <enum name="GL_LIGHT_MODEL_AMBIENT"/>
+ <enum name="GL_SHADE_MODEL"/>
+ <enum name="GL_COLOR_MATERIAL_FACE"/>
+ <enum name="GL_COLOR_MATERIAL_PARAMETER"/>
+ <enum name="GL_COLOR_MATERIAL"/>
+ <enum name="GL_FOG"/>
+ <enum name="GL_FOG_INDEX"/>
+ <enum name="GL_FOG_DENSITY"/>
+ <enum name="GL_FOG_START"/>
+ <enum name="GL_FOG_END"/>
+ <enum name="GL_FOG_MODE"/>
+ <enum name="GL_FOG_COLOR"/>
+ <enum name="GL_ACCUM_CLEAR_VALUE"/>
+ <enum name="GL_MATRIX_MODE"/>
+ <enum name="GL_NORMALIZE"/>
+ <enum name="GL_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MODELVIEW_MATRIX"/>
+ <enum name="GL_PROJECTION_MATRIX"/>
+ <enum name="GL_TEXTURE_MATRIX"/>
+ <enum name="GL_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_CLIENT_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_ALPHA_TEST"/>
+ <enum name="GL_ALPHA_TEST_FUNC"/>
+ <enum name="GL_ALPHA_TEST_REF"/>
+ <enum name="GL_INDEX_LOGIC_OP"/>
+ <enum name="GL_LOGIC_OP"/>
+ <enum name="GL_AUX_BUFFERS"/>
+ <enum name="GL_INDEX_CLEAR_VALUE"/>
+ <enum name="GL_INDEX_WRITEMASK"/>
+ <enum name="GL_INDEX_MODE"/>
+ <enum name="GL_RGBA_MODE"/>
+ <enum name="GL_RENDER_MODE"/>
+ <enum name="GL_PERSPECTIVE_CORRECTION_HINT"/>
+ <enum name="GL_POINT_SMOOTH_HINT"/>
+ <enum name="GL_FOG_HINT"/>
+ <enum name="GL_TEXTURE_GEN_S"/>
+ <enum name="GL_TEXTURE_GEN_T"/>
+ <enum name="GL_TEXTURE_GEN_R"/>
+ <enum name="GL_TEXTURE_GEN_Q"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I_SIZE"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A_SIZE"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R_SIZE"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G_SIZE"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B_SIZE"/>
+ <enum name="GL_PIXEL_MAP_A_TO_A_SIZE"/>
+ <enum name="GL_MAP_COLOR"/>
+ <enum name="GL_MAP_STENCIL"/>
+ <enum name="GL_INDEX_SHIFT"/>
+ <enum name="GL_INDEX_OFFSET"/>
+ <enum name="GL_RED_SCALE"/>
+ <enum name="GL_RED_BIAS"/>
+ <enum name="GL_ZOOM_X"/>
+ <enum name="GL_ZOOM_Y"/>
+ <enum name="GL_GREEN_SCALE"/>
+ <enum name="GL_GREEN_BIAS"/>
+ <enum name="GL_BLUE_SCALE"/>
+ <enum name="GL_BLUE_BIAS"/>
+ <enum name="GL_ALPHA_SCALE"/>
+ <enum name="GL_ALPHA_BIAS"/>
+ <enum name="GL_DEPTH_SCALE"/>
+ <enum name="GL_DEPTH_BIAS"/>
+ <enum name="GL_MAX_EVAL_ORDER"/>
+ <enum name="GL_MAX_LIGHTS"/>
+ <enum name="GL_MAX_CLIP_PLANES"/>
+ <enum name="GL_MAX_PIXEL_MAP_TABLE"/>
+ <enum name="GL_MAX_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_MAX_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_MAX_NAME_STACK_DEPTH"/>
+ <enum name="GL_MAX_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_MAX_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MAX_CLIENT_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_INDEX_BITS"/>
+ <enum name="GL_RED_BITS"/>
+ <enum name="GL_GREEN_BITS"/>
+ <enum name="GL_BLUE_BITS"/>
+ <enum name="GL_ALPHA_BITS"/>
+ <enum name="GL_DEPTH_BITS"/>
+ <enum name="GL_STENCIL_BITS"/>
+ <enum name="GL_ACCUM_RED_BITS"/>
+ <enum name="GL_ACCUM_GREEN_BITS"/>
+ <enum name="GL_ACCUM_BLUE_BITS"/>
+ <enum name="GL_ACCUM_ALPHA_BITS"/>
+ <enum name="GL_NAME_STACK_DEPTH"/>
+ <enum name="GL_AUTO_NORMAL"/>
+ <enum name="GL_MAP1_COLOR_4"/>
+ <enum name="GL_MAP1_INDEX"/>
+ <enum name="GL_MAP1_NORMAL"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP1_VERTEX_3"/>
+ <enum name="GL_MAP1_VERTEX_4"/>
+ <enum name="GL_MAP2_COLOR_4"/>
+ <enum name="GL_MAP2_INDEX"/>
+ <enum name="GL_MAP2_NORMAL"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP2_VERTEX_3"/>
+ <enum name="GL_MAP2_VERTEX_4"/>
+ <enum name="GL_MAP1_GRID_DOMAIN"/>
+ <enum name="GL_MAP1_GRID_SEGMENTS"/>
+ <enum name="GL_MAP2_GRID_DOMAIN"/>
+ <enum name="GL_MAP2_GRID_SEGMENTS"/>
+ <enum name="GL_FEEDBACK_BUFFER_SIZE"/>
+ <enum name="GL_FEEDBACK_BUFFER_TYPE"/>
+ <enum name="GL_SELECTION_BUFFER_SIZE"/>
+ <enum name="GL_VERTEX_ARRAY"/>
+ <enum name="GL_NORMAL_ARRAY"/>
+ <enum name="GL_COLOR_ARRAY"/>
+ <enum name="GL_INDEX_ARRAY"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY"/>
+ <enum name="GL_EDGE_FLAG_ARRAY"/>
+ <enum name="GL_VERTEX_ARRAY_SIZE"/>
+ <enum name="GL_VERTEX_ARRAY_TYPE"/>
+ <enum name="GL_VERTEX_ARRAY_STRIDE"/>
+ <enum name="GL_NORMAL_ARRAY_TYPE"/>
+ <enum name="GL_NORMAL_ARRAY_STRIDE"/>
+ <enum name="GL_COLOR_ARRAY_SIZE"/>
+ <enum name="GL_COLOR_ARRAY_TYPE"/>
+ <enum name="GL_COLOR_ARRAY_STRIDE"/>
+ <enum name="GL_INDEX_ARRAY_TYPE"/>
+ <enum name="GL_INDEX_ARRAY_STRIDE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_SIZE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_TYPE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_STRIDE"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_STRIDE"/>
+ <enum name="GL_TEXTURE_COMPONENTS"/>
+ <enum name="GL_TEXTURE_BORDER"/>
+ <enum name="GL_TEXTURE_LUMINANCE_SIZE"/>
+ <enum name="GL_TEXTURE_INTENSITY_SIZE"/>
+ <enum name="GL_TEXTURE_PRIORITY"/>
+ <enum name="GL_TEXTURE_RESIDENT"/>
+ <enum name="GL_AMBIENT"/>
+ <enum name="GL_DIFFUSE"/>
+ <enum name="GL_SPECULAR"/>
+ <enum name="GL_POSITION"/>
+ <enum name="GL_SPOT_DIRECTION"/>
+ <enum name="GL_SPOT_EXPONENT"/>
+ <enum name="GL_SPOT_CUTOFF"/>
+ <enum name="GL_CONSTANT_ATTENUATION"/>
+ <enum name="GL_LINEAR_ATTENUATION"/>
+ <enum name="GL_QUADRATIC_ATTENUATION"/>
+ <enum name="GL_COMPILE"/>
+ <enum name="GL_COMPILE_AND_EXECUTE"/>
+ <enum name="GL_2_BYTES"/>
+ <enum name="GL_3_BYTES"/>
+ <enum name="GL_4_BYTES"/>
+ <enum name="GL_EMISSION"/>
+ <enum name="GL_SHININESS"/>
+ <enum name="GL_AMBIENT_AND_DIFFUSE"/>
+ <enum name="GL_COLOR_INDEXES"/>
+ <enum name="GL_MODELVIEW"/>
+ <enum name="GL_PROJECTION"/>
+ <enum name="GL_COLOR_INDEX"/>
+ <enum name="GL_LUMINANCE"/>
+ <enum name="GL_LUMINANCE_ALPHA"/>
+ <enum name="GL_BITMAP"/>
+ <enum name="GL_RENDER"/>
+ <enum name="GL_FEEDBACK"/>
+ <enum name="GL_SELECT"/>
+ <enum name="GL_FLAT"/>
+ <enum name="GL_SMOOTH"/>
+ <enum name="GL_S"/>
+ <enum name="GL_T"/>
+ <enum name="GL_R"/>
+ <enum name="GL_Q"/>
+ <enum name="GL_MODULATE"/>
+ <enum name="GL_DECAL"/>
+ <enum name="GL_TEXTURE_ENV_MODE"/>
+ <enum name="GL_TEXTURE_ENV_COLOR"/>
+ <enum name="GL_TEXTURE_ENV"/>
+ <enum name="GL_EYE_LINEAR"/>
+ <enum name="GL_OBJECT_LINEAR"/>
+ <enum name="GL_SPHERE_MAP"/>
+ <enum name="GL_TEXTURE_GEN_MODE"/>
+ <enum name="GL_OBJECT_PLANE"/>
+ <enum name="GL_EYE_PLANE"/>
+ <enum name="GL_CLAMP"/>
+ <enum name="GL_ALPHA4"/>
+ <enum name="GL_ALPHA8"/>
+ <enum name="GL_ALPHA12"/>
+ <enum name="GL_ALPHA16"/>
+ <enum name="GL_LUMINANCE4"/>
+ <enum name="GL_LUMINANCE8"/>
+ <enum name="GL_LUMINANCE12"/>
+ <enum name="GL_LUMINANCE16"/>
+ <enum name="GL_LUMINANCE4_ALPHA4"/>
+ <enum name="GL_LUMINANCE6_ALPHA2"/>
+ <enum name="GL_LUMINANCE8_ALPHA8"/>
+ <enum name="GL_LUMINANCE12_ALPHA4"/>
+ <enum name="GL_LUMINANCE12_ALPHA12"/>
+ <enum name="GL_LUMINANCE16_ALPHA16"/>
+ <enum name="GL_INTENSITY"/>
+ <enum name="GL_INTENSITY4"/>
+ <enum name="GL_INTENSITY8"/>
+ <enum name="GL_INTENSITY12"/>
+ <enum name="GL_INTENSITY16"/>
+ <enum name="GL_V2F"/>
+ <enum name="GL_V3F"/>
+ <enum name="GL_C4UB_V2F"/>
+ <enum name="GL_C4UB_V3F"/>
+ <enum name="GL_C3F_V3F"/>
+ <enum name="GL_N3F_V3F"/>
+ <enum name="GL_C4F_N3F_V3F"/>
+ <enum name="GL_T2F_V3F"/>
+ <enum name="GL_T4F_V4F"/>
+ <enum name="GL_T2F_C4UB_V3F"/>
+ <enum name="GL_T2F_C3F_V3F"/>
+ <enum name="GL_T2F_N3F_V3F"/>
+ <enum name="GL_T2F_C4F_N3F_V3F"/>
+ <enum name="GL_T4F_C4F_N3F_V4F"/>
+ <enum name="GL_CLIP_PLANE0"/>
+ <enum name="GL_CLIP_PLANE1"/>
+ <enum name="GL_CLIP_PLANE2"/>
+ <enum name="GL_CLIP_PLANE3"/>
+ <enum name="GL_CLIP_PLANE4"/>
+ <enum name="GL_CLIP_PLANE5"/>
+ <enum name="GL_LIGHT0"/>
+ <enum name="GL_LIGHT1"/>
+ <enum name="GL_LIGHT2"/>
+ <enum name="GL_LIGHT3"/>
+ <enum name="GL_LIGHT4"/>
+ <enum name="GL_LIGHT5"/>
+ <enum name="GL_LIGHT6"/>
+ <enum name="GL_LIGHT7"/>
+ <command name="glDrawArrays"/>
+ <command name="glDrawElements"/>
+ <command name="glGetPointerv"/>
+ <command name="glPolygonOffset"/>
+ <command name="glCopyTexImage1D"/>
+ <command name="glCopyTexImage2D"/>
+ <command name="glCopyTexSubImage1D"/>
+ <command name="glCopyTexSubImage2D"/>
+ <command name="glTexSubImage1D"/>
+ <command name="glTexSubImage2D"/>
+ <command name="glBindTexture"/>
+ <command name="glDeleteTextures"/>
+ <command name="glGenTextures"/>
+ <command name="glIsTexture"/>
+ <command name="glArrayElement"/>
+ <command name="glColorPointer"/>
+ <command name="glDisableClientState"/>
+ <command name="glEdgeFlagPointer"/>
+ <command name="glEnableClientState"/>
+ <command name="glIndexPointer"/>
+ <command name="glInterleavedArrays"/>
+ <command name="glNormalPointer"/>
+ <command name="glTexCoordPointer"/>
+ <command name="glVertexPointer"/>
+ <command name="glAreTexturesResident"/>
+ <command name="glPrioritizeTextures"/>
+ <command name="glIndexub"/>
+ <command name="glIndexubv"/>
+ <command name="glPopClientAttrib"/>
+ <command name="glPushClientAttrib"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_1_2" number="1.2">
+ <require>
+ <enum name="GL_UNSIGNED_BYTE_3_3_2"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <enum name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ <enum name="GL_UNSIGNED_INT_8_8_8_8"/>
+ <enum name="GL_UNSIGNED_INT_10_10_10_2"/>
+ <enum name="GL_TEXTURE_BINDING_3D"/>
+ <enum name="GL_PACK_SKIP_IMAGES"/>
+ <enum name="GL_PACK_IMAGE_HEIGHT"/>
+ <enum name="GL_UNPACK_SKIP_IMAGES"/>
+ <enum name="GL_UNPACK_IMAGE_HEIGHT"/>
+ <enum name="GL_TEXTURE_3D"/>
+ <enum name="GL_PROXY_TEXTURE_3D"/>
+ <enum name="GL_TEXTURE_DEPTH"/>
+ <enum name="GL_TEXTURE_WRAP_R"/>
+ <enum name="GL_MAX_3D_TEXTURE_SIZE"/>
+ <enum name="GL_UNSIGNED_BYTE_2_3_3_REV"/>
+ <enum name="GL_UNSIGNED_SHORT_5_6_5"/>
+ <enum name="GL_UNSIGNED_SHORT_5_6_5_REV"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4_REV"/>
+ <enum name="GL_UNSIGNED_SHORT_1_5_5_5_REV"/>
+ <enum name="GL_UNSIGNED_INT_8_8_8_8_REV"/>
+ <enum name="GL_UNSIGNED_INT_2_10_10_10_REV"/>
+ <enum name="GL_BGR"/>
+ <enum name="GL_BGRA"/>
+ <enum name="GL_MAX_ELEMENTS_VERTICES"/>
+ <enum name="GL_MAX_ELEMENTS_INDICES"/>
+ <enum name="GL_CLAMP_TO_EDGE"/>
+ <enum name="GL_TEXTURE_MIN_LOD"/>
+ <enum name="GL_TEXTURE_MAX_LOD"/>
+ <enum name="GL_TEXTURE_BASE_LEVEL"/>
+ <enum name="GL_TEXTURE_MAX_LEVEL"/>
+ <enum name="GL_SMOOTH_POINT_SIZE_RANGE"/>
+ <enum name="GL_SMOOTH_POINT_SIZE_GRANULARITY"/>
+ <enum name="GL_SMOOTH_LINE_WIDTH_RANGE"/>
+ <enum name="GL_SMOOTH_LINE_WIDTH_GRANULARITY"/>
+ <enum name="GL_ALIASED_LINE_WIDTH_RANGE"/>
+ <enum name="GL_RESCALE_NORMAL"/>
+ <enum name="GL_LIGHT_MODEL_COLOR_CONTROL"/>
+ <enum name="GL_SINGLE_COLOR"/>
+ <enum name="GL_SEPARATE_SPECULAR_COLOR"/>
+ <enum name="GL_ALIASED_POINT_SIZE_RANGE"/>
+ <command name="glDrawRangeElements"/>
+ <command name="glTexImage3D"/>
+ <command name="glTexSubImage3D"/>
+ <command name="glCopyTexSubImage3D"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_1_3" number="1.3">
+ <require>
+ <enum name="GL_TEXTURE0"/>
+ <enum name="GL_TEXTURE1"/>
+ <enum name="GL_TEXTURE2"/>
+ <enum name="GL_TEXTURE3"/>
+ <enum name="GL_TEXTURE4"/>
+ <enum name="GL_TEXTURE5"/>
+ <enum name="GL_TEXTURE6"/>
+ <enum name="GL_TEXTURE7"/>
+ <enum name="GL_TEXTURE8"/>
+ <enum name="GL_TEXTURE9"/>
+ <enum name="GL_TEXTURE10"/>
+ <enum name="GL_TEXTURE11"/>
+ <enum name="GL_TEXTURE12"/>
+ <enum name="GL_TEXTURE13"/>
+ <enum name="GL_TEXTURE14"/>
+ <enum name="GL_TEXTURE15"/>
+ <enum name="GL_TEXTURE16"/>
+ <enum name="GL_TEXTURE17"/>
+ <enum name="GL_TEXTURE18"/>
+ <enum name="GL_TEXTURE19"/>
+ <enum name="GL_TEXTURE20"/>
+ <enum name="GL_TEXTURE21"/>
+ <enum name="GL_TEXTURE22"/>
+ <enum name="GL_TEXTURE23"/>
+ <enum name="GL_TEXTURE24"/>
+ <enum name="GL_TEXTURE25"/>
+ <enum name="GL_TEXTURE26"/>
+ <enum name="GL_TEXTURE27"/>
+ <enum name="GL_TEXTURE28"/>
+ <enum name="GL_TEXTURE29"/>
+ <enum name="GL_TEXTURE30"/>
+ <enum name="GL_TEXTURE31"/>
+ <enum name="GL_ACTIVE_TEXTURE"/>
+ <enum name="GL_MULTISAMPLE"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE"/>
+ <enum name="GL_SAMPLE_COVERAGE"/>
+ <enum name="GL_SAMPLE_BUFFERS"/>
+ <enum name="GL_SAMPLES"/>
+ <enum name="GL_SAMPLE_COVERAGE_VALUE"/>
+ <enum name="GL_SAMPLE_COVERAGE_INVERT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
+ <enum name="GL_PROXY_TEXTURE_CUBE_MAP"/>
+ <enum name="GL_MAX_CUBE_MAP_TEXTURE_SIZE"/>
+ <enum name="GL_COMPRESSED_RGB"/>
+ <enum name="GL_COMPRESSED_RGBA"/>
+ <enum name="GL_TEXTURE_COMPRESSION_HINT"/>
+ <enum name="GL_TEXTURE_COMPRESSED_IMAGE_SIZE"/>
+ <enum name="GL_TEXTURE_COMPRESSED"/>
+ <enum name="GL_NUM_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_CLAMP_TO_BORDER"/>
+ <enum name="GL_CLIENT_ACTIVE_TEXTURE"/>
+ <enum name="GL_MAX_TEXTURE_UNITS"/>
+ <enum name="GL_TRANSPOSE_MODELVIEW_MATRIX"/>
+ <enum name="GL_TRANSPOSE_PROJECTION_MATRIX"/>
+ <enum name="GL_TRANSPOSE_TEXTURE_MATRIX"/>
+ <enum name="GL_TRANSPOSE_COLOR_MATRIX"/>
+ <enum name="GL_MULTISAMPLE_BIT"/>
+ <enum name="GL_NORMAL_MAP"/>
+ <enum name="GL_REFLECTION_MAP"/>
+ <enum name="GL_COMPRESSED_ALPHA"/>
+ <enum name="GL_COMPRESSED_LUMINANCE"/>
+ <enum name="GL_COMPRESSED_LUMINANCE_ALPHA"/>
+ <enum name="GL_COMPRESSED_INTENSITY"/>
+ <enum name="GL_COMBINE"/>
+ <enum name="GL_COMBINE_RGB"/>
+ <enum name="GL_COMBINE_ALPHA"/>
+ <enum name="GL_SOURCE0_RGB"/>
+ <enum name="GL_SOURCE1_RGB"/>
+ <enum name="GL_SOURCE2_RGB"/>
+ <enum name="GL_SOURCE0_ALPHA"/>
+ <enum name="GL_SOURCE1_ALPHA"/>
+ <enum name="GL_SOURCE2_ALPHA"/>
+ <enum name="GL_OPERAND0_RGB"/>
+ <enum name="GL_OPERAND1_RGB"/>
+ <enum name="GL_OPERAND2_RGB"/>
+ <enum name="GL_OPERAND0_ALPHA"/>
+ <enum name="GL_OPERAND1_ALPHA"/>
+ <enum name="GL_OPERAND2_ALPHA"/>
+ <enum name="GL_RGB_SCALE"/>
+ <enum name="GL_ADD_SIGNED"/>
+ <enum name="GL_INTERPOLATE"/>
+ <enum name="GL_SUBTRACT"/>
+ <enum name="GL_CONSTANT"/>
+ <enum name="GL_PRIMARY_COLOR"/>
+ <enum name="GL_PREVIOUS"/>
+ <enum name="GL_DOT3_RGB"/>
+ <enum name="GL_DOT3_RGBA"/>
+ <command name="glActiveTexture"/>
+ <command name="glSampleCoverage"/>
+ <command name="glCompressedTexImage3D"/>
+ <command name="glCompressedTexImage2D"/>
+ <command name="glCompressedTexImage1D"/>
+ <command name="glCompressedTexSubImage3D"/>
+ <command name="glCompressedTexSubImage2D"/>
+ <command name="glCompressedTexSubImage1D"/>
+ <command name="glGetCompressedTexImage"/>
+ <command name="glClientActiveTexture"/>
+ <command name="glMultiTexCoord1d"/>
+ <command name="glMultiTexCoord1dv"/>
+ <command name="glMultiTexCoord1f"/>
+ <command name="glMultiTexCoord1fv"/>
+ <command name="glMultiTexCoord1i"/>
+ <command name="glMultiTexCoord1iv"/>
+ <command name="glMultiTexCoord1s"/>
+ <command name="glMultiTexCoord1sv"/>
+ <command name="glMultiTexCoord2d"/>
+ <command name="glMultiTexCoord2dv"/>
+ <command name="glMultiTexCoord2f"/>
+ <command name="glMultiTexCoord2fv"/>
+ <command name="glMultiTexCoord2i"/>
+ <command name="glMultiTexCoord2iv"/>
+ <command name="glMultiTexCoord2s"/>
+ <command name="glMultiTexCoord2sv"/>
+ <command name="glMultiTexCoord3d"/>
+ <command name="glMultiTexCoord3dv"/>
+ <command name="glMultiTexCoord3f"/>
+ <command name="glMultiTexCoord3fv"/>
+ <command name="glMultiTexCoord3i"/>
+ <command name="glMultiTexCoord3iv"/>
+ <command name="glMultiTexCoord3s"/>
+ <command name="glMultiTexCoord3sv"/>
+ <command name="glMultiTexCoord4d"/>
+ <command name="glMultiTexCoord4dv"/>
+ <command name="glMultiTexCoord4f"/>
+ <command name="glMultiTexCoord4fv"/>
+ <command name="glMultiTexCoord4i"/>
+ <command name="glMultiTexCoord4iv"/>
+ <command name="glMultiTexCoord4s"/>
+ <command name="glMultiTexCoord4sv"/>
+ <command name="glLoadTransposeMatrixf"/>
+ <command name="glLoadTransposeMatrixd"/>
+ <command name="glMultTransposeMatrixf"/>
+ <command name="glMultTransposeMatrixd"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_1_4" number="1.4">
+ <require>
+ <enum name="GL_BLEND_DST_RGB"/>
+ <enum name="GL_BLEND_SRC_RGB"/>
+ <enum name="GL_BLEND_DST_ALPHA"/>
+ <enum name="GL_BLEND_SRC_ALPHA"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE"/>
+ <enum name="GL_DEPTH_COMPONENT16"/>
+ <enum name="GL_DEPTH_COMPONENT24"/>
+ <enum name="GL_DEPTH_COMPONENT32"/>
+ <enum name="GL_MIRRORED_REPEAT"/>
+ <enum name="GL_MAX_TEXTURE_LOD_BIAS"/>
+ <enum name="GL_TEXTURE_LOD_BIAS"/>
+ <enum name="GL_INCR_WRAP"/>
+ <enum name="GL_DECR_WRAP"/>
+ <enum name="GL_TEXTURE_DEPTH_SIZE"/>
+ <enum name="GL_TEXTURE_COMPARE_MODE"/>
+ <enum name="GL_TEXTURE_COMPARE_FUNC"/>
+ <enum name="GL_POINT_SIZE_MIN"/>
+ <enum name="GL_POINT_SIZE_MAX"/>
+ <enum name="GL_POINT_DISTANCE_ATTENUATION"/>
+ <enum name="GL_GENERATE_MIPMAP"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT"/>
+ <enum name="GL_FOG_COORDINATE_SOURCE"/>
+ <enum name="GL_FOG_COORDINATE"/>
+ <enum name="GL_FRAGMENT_DEPTH"/>
+ <enum name="GL_CURRENT_FOG_COORDINATE"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_TYPE"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_STRIDE"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_POINTER"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY"/>
+ <enum name="GL_COLOR_SUM"/>
+ <enum name="GL_CURRENT_SECONDARY_COLOR"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_SIZE"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_TYPE"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_STRIDE"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_POINTER"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY"/>
+ <enum name="GL_TEXTURE_FILTER_CONTROL"/>
+ <enum name="GL_DEPTH_TEXTURE_MODE"/>
+ <enum name="GL_COMPARE_R_TO_TEXTURE"/>
+ <command name="glBlendFuncSeparate"/>
+ <command name="glMultiDrawArrays"/>
+ <command name="glMultiDrawElements"/>
+ <command name="glPointParameterf"/>
+ <command name="glPointParameterfv"/>
+ <command name="glPointParameteri"/>
+ <command name="glPointParameteriv"/>
+ <command name="glFogCoordf"/>
+ <command name="glFogCoordfv"/>
+ <command name="glFogCoordd"/>
+ <command name="glFogCoorddv"/>
+ <command name="glFogCoordPointer"/>
+ <command name="glSecondaryColor3b"/>
+ <command name="glSecondaryColor3bv"/>
+ <command name="glSecondaryColor3d"/>
+ <command name="glSecondaryColor3dv"/>
+ <command name="glSecondaryColor3f"/>
+ <command name="glSecondaryColor3fv"/>
+ <command name="glSecondaryColor3i"/>
+ <command name="glSecondaryColor3iv"/>
+ <command name="glSecondaryColor3s"/>
+ <command name="glSecondaryColor3sv"/>
+ <command name="glSecondaryColor3ub"/>
+ <command name="glSecondaryColor3ubv"/>
+ <command name="glSecondaryColor3ui"/>
+ <command name="glSecondaryColor3uiv"/>
+ <command name="glSecondaryColor3us"/>
+ <command name="glSecondaryColor3usv"/>
+ <command name="glSecondaryColorPointer"/>
+ <command name="glWindowPos2d"/>
+ <command name="glWindowPos2dv"/>
+ <command name="glWindowPos2f"/>
+ <command name="glWindowPos2fv"/>
+ <command name="glWindowPos2i"/>
+ <command name="glWindowPos2iv"/>
+ <command name="glWindowPos2s"/>
+ <command name="glWindowPos2sv"/>
+ <command name="glWindowPos3d"/>
+ <command name="glWindowPos3dv"/>
+ <command name="glWindowPos3f"/>
+ <command name="glWindowPos3fv"/>
+ <command name="glWindowPos3i"/>
+ <command name="glWindowPos3iv"/>
+ <command name="glWindowPos3s"/>
+ <command name="glWindowPos3sv"/>
+ </require>
+ <require comment="Promoted from ARB_imaging subset to core">
+ <enum name="GL_FUNC_ADD"/>
+ <enum name="GL_FUNC_SUBTRACT"/>
+ <enum name="GL_FUNC_REVERSE_SUBTRACT"/>
+ <enum name="GL_MIN"/>
+ <enum name="GL_MAX"/>
+ <enum name="GL_CONSTANT_COLOR"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_COLOR"/>
+ <enum name="GL_CONSTANT_ALPHA"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_ALPHA"/>
+ <command name="glBlendColor"/>
+ <command name="glBlendEquation"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_1_5" number="1.5">
+ <require>
+ <enum name="GL_BUFFER_SIZE"/>
+ <enum name="GL_BUFFER_USAGE"/>
+ <enum name="GL_QUERY_COUNTER_BITS"/>
+ <enum name="GL_CURRENT_QUERY"/>
+ <enum name="GL_QUERY_RESULT"/>
+ <enum name="GL_QUERY_RESULT_AVAILABLE"/>
+ <enum name="GL_ARRAY_BUFFER"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER"/>
+ <enum name="GL_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_READ_ONLY"/>
+ <enum name="GL_WRITE_ONLY"/>
+ <enum name="GL_READ_WRITE"/>
+ <enum name="GL_BUFFER_ACCESS"/>
+ <enum name="GL_BUFFER_MAPPED"/>
+ <enum name="GL_BUFFER_MAP_POINTER"/>
+ <enum name="GL_STREAM_DRAW"/>
+ <enum name="GL_STREAM_READ"/>
+ <enum name="GL_STREAM_COPY"/>
+ <enum name="GL_STATIC_DRAW"/>
+ <enum name="GL_STATIC_READ"/>
+ <enum name="GL_STATIC_COPY"/>
+ <enum name="GL_DYNAMIC_DRAW"/>
+ <enum name="GL_DYNAMIC_READ"/>
+ <enum name="GL_DYNAMIC_COPY"/>
+ <enum name="GL_SAMPLES_PASSED"/>
+ <enum name="GL_SRC1_ALPHA"/>
+ <enum name="GL_VERTEX_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_NORMAL_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_INDEX_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_WEIGHT_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_FOG_COORD_SRC"/>
+ <enum name="GL_FOG_COORD"/>
+ <enum name="GL_CURRENT_FOG_COORD"/>
+ <enum name="GL_FOG_COORD_ARRAY_TYPE"/>
+ <enum name="GL_FOG_COORD_ARRAY_STRIDE"/>
+ <enum name="GL_FOG_COORD_ARRAY_POINTER"/>
+ <enum name="GL_FOG_COORD_ARRAY"/>
+ <enum name="GL_FOG_COORD_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_SRC0_RGB"/>
+ <enum name="GL_SRC1_RGB"/>
+ <enum name="GL_SRC2_RGB"/>
+ <enum name="GL_SRC0_ALPHA"/>
+ <enum name="GL_SRC2_ALPHA"/>
+ <command name="glGenQueries"/>
+ <command name="glDeleteQueries"/>
+ <command name="glIsQuery"/>
+ <command name="glBeginQuery"/>
+ <command name="glEndQuery"/>
+ <command name="glGetQueryiv"/>
+ <command name="glGetQueryObjectiv"/>
+ <command name="glGetQueryObjectuiv"/>
+ <command name="glBindBuffer"/>
+ <command name="glDeleteBuffers"/>
+ <command name="glGenBuffers"/>
+ <command name="glIsBuffer"/>
+ <command name="glBufferData"/>
+ <command name="glBufferSubData"/>
+ <command name="glGetBufferSubData"/>
+ <command name="glMapBuffer"/>
+ <command name="glUnmapBuffer"/>
+ <command name="glGetBufferParameteriv"/>
+ <command name="glGetBufferPointerv"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_2_0" number="2.0">
+ <require>
+ <enum name="GL_BLEND_EQUATION_RGB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_STRIDE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_TYPE"/>
+ <enum name="GL_CURRENT_VERTEX_ATTRIB"/>
+ <enum name="GL_VERTEX_PROGRAM_POINT_SIZE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_POINTER"/>
+ <enum name="GL_STENCIL_BACK_FUNC"/>
+ <enum name="GL_STENCIL_BACK_FAIL"/>
+ <enum name="GL_STENCIL_BACK_PASS_DEPTH_FAIL"/>
+ <enum name="GL_STENCIL_BACK_PASS_DEPTH_PASS"/>
+ <enum name="GL_MAX_DRAW_BUFFERS"/>
+ <enum name="GL_DRAW_BUFFER0"/>
+ <enum name="GL_DRAW_BUFFER1"/>
+ <enum name="GL_DRAW_BUFFER2"/>
+ <enum name="GL_DRAW_BUFFER3"/>
+ <enum name="GL_DRAW_BUFFER4"/>
+ <enum name="GL_DRAW_BUFFER5"/>
+ <enum name="GL_DRAW_BUFFER6"/>
+ <enum name="GL_DRAW_BUFFER7"/>
+ <enum name="GL_DRAW_BUFFER8"/>
+ <enum name="GL_DRAW_BUFFER9"/>
+ <enum name="GL_DRAW_BUFFER10"/>
+ <enum name="GL_DRAW_BUFFER11"/>
+ <enum name="GL_DRAW_BUFFER12"/>
+ <enum name="GL_DRAW_BUFFER13"/>
+ <enum name="GL_DRAW_BUFFER14"/>
+ <enum name="GL_DRAW_BUFFER15"/>
+ <enum name="GL_BLEND_EQUATION_ALPHA"/>
+ <enum name="GL_MAX_VERTEX_ATTRIBS"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED"/>
+ <enum name="GL_MAX_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_FRAGMENT_SHADER"/>
+ <enum name="GL_VERTEX_SHADER"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_VARYING_FLOATS"/>
+ <enum name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_SHADER_TYPE"/>
+ <enum name="GL_FLOAT_VEC2"/>
+ <enum name="GL_FLOAT_VEC3"/>
+ <enum name="GL_FLOAT_VEC4"/>
+ <enum name="GL_INT_VEC2"/>
+ <enum name="GL_INT_VEC3"/>
+ <enum name="GL_INT_VEC4"/>
+ <enum name="GL_BOOL"/>
+ <enum name="GL_BOOL_VEC2"/>
+ <enum name="GL_BOOL_VEC3"/>
+ <enum name="GL_BOOL_VEC4"/>
+ <enum name="GL_FLOAT_MAT2"/>
+ <enum name="GL_FLOAT_MAT3"/>
+ <enum name="GL_FLOAT_MAT4"/>
+ <enum name="GL_SAMPLER_1D"/>
+ <enum name="GL_SAMPLER_2D"/>
+ <enum name="GL_SAMPLER_3D"/>
+ <enum name="GL_SAMPLER_CUBE"/>
+ <enum name="GL_SAMPLER_1D_SHADOW"/>
+ <enum name="GL_SAMPLER_2D_SHADOW"/>
+ <enum name="GL_DELETE_STATUS"/>
+ <enum name="GL_COMPILE_STATUS"/>
+ <enum name="GL_LINK_STATUS"/>
+ <enum name="GL_VALIDATE_STATUS"/>
+ <enum name="GL_INFO_LOG_LENGTH"/>
+ <enum name="GL_ATTACHED_SHADERS"/>
+ <enum name="GL_ACTIVE_UNIFORMS"/>
+ <enum name="GL_ACTIVE_UNIFORM_MAX_LENGTH"/>
+ <enum name="GL_SHADER_SOURCE_LENGTH"/>
+ <enum name="GL_ACTIVE_ATTRIBUTES"/>
+ <enum name="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH"/>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT"/>
+ <enum name="GL_SHADING_LANGUAGE_VERSION"/>
+ <enum name="GL_CURRENT_PROGRAM"/>
+ <enum name="GL_POINT_SPRITE_COORD_ORIGIN"/>
+ <enum name="GL_LOWER_LEFT"/>
+ <enum name="GL_UPPER_LEFT"/>
+ <enum name="GL_STENCIL_BACK_REF"/>
+ <enum name="GL_STENCIL_BACK_VALUE_MASK"/>
+ <enum name="GL_STENCIL_BACK_WRITEMASK"/>
+ <enum name="GL_VERTEX_PROGRAM_TWO_SIDE"/>
+ <enum name="GL_POINT_SPRITE"/>
+ <enum name="GL_COORD_REPLACE"/>
+ <enum name="GL_MAX_TEXTURE_COORDS"/>
+ <command name="glBlendEquationSeparate"/>
+ <command name="glDrawBuffers"/>
+ <command name="glStencilOpSeparate"/>
+ <command name="glStencilFuncSeparate"/>
+ <command name="glStencilMaskSeparate"/>
+ <command name="glAttachShader"/>
+ <command name="glBindAttribLocation"/>
+ <command name="glCompileShader"/>
+ <command name="glCreateProgram"/>
+ <command name="glCreateShader"/>
+ <command name="glDeleteProgram"/>
+ <command name="glDeleteShader"/>
+ <command name="glDetachShader"/>
+ <command name="glDisableVertexAttribArray"/>
+ <command name="glEnableVertexAttribArray"/>
+ <command name="glGetActiveAttrib"/>
+ <command name="glGetActiveUniform"/>
+ <command name="glGetAttachedShaders"/>
+ <command name="glGetAttribLocation"/>
+ <command name="glGetProgramiv"/>
+ <command name="glGetProgramInfoLog"/>
+ <command name="glGetShaderiv"/>
+ <command name="glGetShaderInfoLog"/>
+ <command name="glGetShaderSource"/>
+ <command name="glGetUniformLocation"/>
+ <command name="glGetUniformfv"/>
+ <command name="glGetUniformiv"/>
+ <command name="glGetVertexAttribdv"/>
+ <command name="glGetVertexAttribfv"/>
+ <command name="glGetVertexAttribiv"/>
+ <command name="glGetVertexAttribPointerv"/>
+ <command name="glIsProgram"/>
+ <command name="glIsShader"/>
+ <command name="glLinkProgram"/>
+ <command name="glShaderSource"/>
+ <command name="glUseProgram"/>
+ <command name="glUniform1f"/>
+ <command name="glUniform2f"/>
+ <command name="glUniform3f"/>
+ <command name="glUniform4f"/>
+ <command name="glUniform1i"/>
+ <command name="glUniform2i"/>
+ <command name="glUniform3i"/>
+ <command name="glUniform4i"/>
+ <command name="glUniform1fv"/>
+ <command name="glUniform2fv"/>
+ <command name="glUniform3fv"/>
+ <command name="glUniform4fv"/>
+ <command name="glUniform1iv"/>
+ <command name="glUniform2iv"/>
+ <command name="glUniform3iv"/>
+ <command name="glUniform4iv"/>
+ <command name="glUniformMatrix2fv"/>
+ <command name="glUniformMatrix3fv"/>
+ <command name="glUniformMatrix4fv"/>
+ <command name="glValidateProgram"/>
+ <command name="glVertexAttrib1d"/>
+ <command name="glVertexAttrib1dv"/>
+ <command name="glVertexAttrib1f"/>
+ <command name="glVertexAttrib1fv"/>
+ <command name="glVertexAttrib1s"/>
+ <command name="glVertexAttrib1sv"/>
+ <command name="glVertexAttrib2d"/>
+ <command name="glVertexAttrib2dv"/>
+ <command name="glVertexAttrib2f"/>
+ <command name="glVertexAttrib2fv"/>
+ <command name="glVertexAttrib2s"/>
+ <command name="glVertexAttrib2sv"/>
+ <command name="glVertexAttrib3d"/>
+ <command name="glVertexAttrib3dv"/>
+ <command name="glVertexAttrib3f"/>
+ <command name="glVertexAttrib3fv"/>
+ <command name="glVertexAttrib3s"/>
+ <command name="glVertexAttrib3sv"/>
+ <command name="glVertexAttrib4Nbv"/>
+ <command name="glVertexAttrib4Niv"/>
+ <command name="glVertexAttrib4Nsv"/>
+ <command name="glVertexAttrib4Nub"/>
+ <command name="glVertexAttrib4Nubv"/>
+ <command name="glVertexAttrib4Nuiv"/>
+ <command name="glVertexAttrib4Nusv"/>
+ <command name="glVertexAttrib4bv"/>
+ <command name="glVertexAttrib4d"/>
+ <command name="glVertexAttrib4dv"/>
+ <command name="glVertexAttrib4f"/>
+ <command name="glVertexAttrib4fv"/>
+ <command name="glVertexAttrib4iv"/>
+ <command name="glVertexAttrib4s"/>
+ <command name="glVertexAttrib4sv"/>
+ <command name="glVertexAttrib4ubv"/>
+ <command name="glVertexAttrib4uiv"/>
+ <command name="glVertexAttrib4usv"/>
+ <command name="glVertexAttribPointer"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_2_1" number="2.1">
+ <require>
+ <enum name="GL_PIXEL_PACK_BUFFER"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER"/>
+ <enum name="GL_PIXEL_PACK_BUFFER_BINDING"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER_BINDING"/>
+ <enum name="GL_FLOAT_MAT2x3"/>
+ <enum name="GL_FLOAT_MAT2x4"/>
+ <enum name="GL_FLOAT_MAT3x2"/>
+ <enum name="GL_FLOAT_MAT3x4"/>
+ <enum name="GL_FLOAT_MAT4x2"/>
+ <enum name="GL_FLOAT_MAT4x3"/>
+ <enum name="GL_SRGB"/>
+ <enum name="GL_SRGB8"/>
+ <enum name="GL_SRGB_ALPHA"/>
+ <enum name="GL_SRGB8_ALPHA8"/>
+ <enum name="GL_COMPRESSED_SRGB"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA"/>
+ <enum name="GL_CURRENT_RASTER_SECONDARY_COLOR"/>
+ <enum name="GL_SLUMINANCE_ALPHA"/>
+ <enum name="GL_SLUMINANCE8_ALPHA8"/>
+ <enum name="GL_SLUMINANCE"/>
+ <enum name="GL_SLUMINANCE8"/>
+ <enum name="GL_COMPRESSED_SLUMINANCE"/>
+ <enum name="GL_COMPRESSED_SLUMINANCE_ALPHA"/>
+ <command name="glUniformMatrix2x3fv"/>
+ <command name="glUniformMatrix3x2fv"/>
+ <command name="glUniformMatrix2x4fv"/>
+ <command name="glUniformMatrix4x2fv"/>
+ <command name="glUniformMatrix3x4fv"/>
+ <command name="glUniformMatrix4x3fv"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_3_0" number="3.0">
+ <require>
+ <enum name="GL_COMPARE_REF_TO_TEXTURE"/>
+ <enum name="GL_CLIP_DISTANCE0"/>
+ <enum name="GL_CLIP_DISTANCE1"/>
+ <enum name="GL_CLIP_DISTANCE2"/>
+ <enum name="GL_CLIP_DISTANCE3"/>
+ <enum name="GL_CLIP_DISTANCE4"/>
+ <enum name="GL_CLIP_DISTANCE5"/>
+ <enum name="GL_CLIP_DISTANCE6"/>
+ <enum name="GL_CLIP_DISTANCE7"/>
+ <enum name="GL_MAX_CLIP_DISTANCES"/>
+ <enum name="GL_MAJOR_VERSION"/>
+ <enum name="GL_MINOR_VERSION"/>
+ <enum name="GL_NUM_EXTENSIONS"/>
+ <enum name="GL_CONTEXT_FLAGS"/>
+ <enum name="GL_COMPRESSED_RED"/>
+ <enum name="GL_COMPRESSED_RG"/>
+ <enum name="GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT"/>
+ <enum name="GL_RGBA32F"/>
+ <enum name="GL_RGB32F"/>
+ <enum name="GL_RGBA16F"/>
+ <enum name="GL_RGB16F"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_INTEGER"/>
+ <enum name="GL_MAX_ARRAY_TEXTURE_LAYERS"/>
+ <enum name="GL_MIN_PROGRAM_TEXEL_OFFSET"/>
+ <enum name="GL_MAX_PROGRAM_TEXEL_OFFSET"/>
+ <enum name="GL_CLAMP_READ_COLOR"/>
+ <enum name="GL_FIXED_ONLY"/>
+ <enum name="GL_MAX_VARYING_COMPONENTS"/>
+ <enum name="GL_TEXTURE_1D_ARRAY"/>
+ <enum name="GL_PROXY_TEXTURE_1D_ARRAY"/>
+ <enum name="GL_TEXTURE_2D_ARRAY"/>
+ <enum name="GL_PROXY_TEXTURE_2D_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_1D_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_2D_ARRAY"/>
+ <enum name="GL_R11F_G11F_B10F"/>
+ <enum name="GL_UNSIGNED_INT_10F_11F_11F_REV"/>
+ <enum name="GL_RGB9_E5"/>
+ <enum name="GL_UNSIGNED_INT_5_9_9_9_REV"/>
+ <enum name="GL_TEXTURE_SHARED_SIZE"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYINGS"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_START"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE"/>
+ <enum name="GL_PRIMITIVES_GENERATED"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN"/>
+ <enum name="GL_RASTERIZER_DISCARD"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS"/>
+ <enum name="GL_INTERLEAVED_ATTRIBS"/>
+ <enum name="GL_SEPARATE_ATTRIBS"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING"/>
+ <enum name="GL_RGBA32UI"/>
+ <enum name="GL_RGB32UI"/>
+ <enum name="GL_RGBA16UI"/>
+ <enum name="GL_RGB16UI"/>
+ <enum name="GL_RGBA8UI"/>
+ <enum name="GL_RGB8UI"/>
+ <enum name="GL_RGBA32I"/>
+ <enum name="GL_RGB32I"/>
+ <enum name="GL_RGBA16I"/>
+ <enum name="GL_RGB16I"/>
+ <enum name="GL_RGBA8I"/>
+ <enum name="GL_RGB8I"/>
+ <enum name="GL_RED_INTEGER"/>
+ <enum name="GL_GREEN_INTEGER"/>
+ <enum name="GL_BLUE_INTEGER"/>
+ <enum name="GL_RGB_INTEGER"/>
+ <enum name="GL_RGBA_INTEGER"/>
+ <enum name="GL_BGR_INTEGER"/>
+ <enum name="GL_BGRA_INTEGER"/>
+ <enum name="GL_SAMPLER_1D_ARRAY"/>
+ <enum name="GL_SAMPLER_2D_ARRAY"/>
+ <enum name="GL_SAMPLER_1D_ARRAY_SHADOW"/>
+ <enum name="GL_SAMPLER_2D_ARRAY_SHADOW"/>
+ <enum name="GL_SAMPLER_CUBE_SHADOW"/>
+ <enum name="GL_UNSIGNED_INT_VEC2"/>
+ <enum name="GL_UNSIGNED_INT_VEC3"/>
+ <enum name="GL_UNSIGNED_INT_VEC4"/>
+ <enum name="GL_INT_SAMPLER_1D"/>
+ <enum name="GL_INT_SAMPLER_2D"/>
+ <enum name="GL_INT_SAMPLER_3D"/>
+ <enum name="GL_INT_SAMPLER_CUBE"/>
+ <enum name="GL_INT_SAMPLER_1D_ARRAY"/>
+ <enum name="GL_INT_SAMPLER_2D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_1D"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_3D"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_CUBE"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_1D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_ARRAY"/>
+ <enum name="GL_QUERY_WAIT"/>
+ <enum name="GL_QUERY_NO_WAIT"/>
+ <enum name="GL_QUERY_BY_REGION_WAIT"/>
+ <enum name="GL_QUERY_BY_REGION_NO_WAIT"/>
+ <enum name="GL_BUFFER_ACCESS_FLAGS"/>
+ <enum name="GL_BUFFER_MAP_LENGTH"/>
+ <enum name="GL_BUFFER_MAP_OFFSET"/>
+ <command name="glColorMaski"/>
+ <command name="glGetBooleani_v"/>
+ <command name="glGetIntegeri_v"/>
+ <command name="glEnablei"/>
+ <command name="glDisablei"/>
+ <command name="glIsEnabledi"/>
+ <command name="glBeginTransformFeedback"/>
+ <command name="glEndTransformFeedback"/>
+ <command name="glBindBufferRange"/>
+ <command name="glBindBufferBase"/>
+ <command name="glTransformFeedbackVaryings"/>
+ <command name="glGetTransformFeedbackVarying"/>
+ <command name="glClampColor"/>
+ <command name="glBeginConditionalRender"/>
+ <command name="glEndConditionalRender"/>
+ <command name="glVertexAttribIPointer"/>
+ <command name="glGetVertexAttribIiv"/>
+ <command name="glGetVertexAttribIuiv"/>
+ <command name="glVertexAttribI1i"/>
+ <command name="glVertexAttribI2i"/>
+ <command name="glVertexAttribI3i"/>
+ <command name="glVertexAttribI4i"/>
+ <command name="glVertexAttribI1ui"/>
+ <command name="glVertexAttribI2ui"/>
+ <command name="glVertexAttribI3ui"/>
+ <command name="glVertexAttribI4ui"/>
+ <command name="glVertexAttribI1iv"/>
+ <command name="glVertexAttribI2iv"/>
+ <command name="glVertexAttribI3iv"/>
+ <command name="glVertexAttribI4iv"/>
+ <command name="glVertexAttribI1uiv"/>
+ <command name="glVertexAttribI2uiv"/>
+ <command name="glVertexAttribI3uiv"/>
+ <command name="glVertexAttribI4uiv"/>
+ <command name="glVertexAttribI4bv"/>
+ <command name="glVertexAttribI4sv"/>
+ <command name="glVertexAttribI4ubv"/>
+ <command name="glVertexAttribI4usv"/>
+ <command name="glGetUniformuiv"/>
+ <command name="glBindFragDataLocation"/>
+ <command name="glGetFragDataLocation"/>
+ <command name="glUniform1ui"/>
+ <command name="glUniform2ui"/>
+ <command name="glUniform3ui"/>
+ <command name="glUniform4ui"/>
+ <command name="glUniform1uiv"/>
+ <command name="glUniform2uiv"/>
+ <command name="glUniform3uiv"/>
+ <command name="glUniform4uiv"/>
+ <command name="glTexParameterIiv"/>
+ <command name="glTexParameterIuiv"/>
+ <command name="glGetTexParameterIiv"/>
+ <command name="glGetTexParameterIuiv"/>
+ <command name="glClearBufferiv"/>
+ <command name="glClearBufferuiv"/>
+ <command name="glClearBufferfv"/>
+ <command name="glClearBufferfi"/>
+ <command name="glGetStringi"/>
+ </require>
+ <require comment="Reuse ARB_depth_buffer_float">
+ <enum name="GL_DEPTH_COMPONENT32F"/>
+ <enum name="GL_DEPTH32F_STENCIL8"/>
+ <enum name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV"/>
+ </require>
+ <require comment="Reuse ARB_framebuffer_object">
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT"/>
+ <enum name="GL_FRAMEBUFFER_UNDEFINED"/>
+ <enum name="GL_DEPTH_STENCIL_ATTACHMENT"/>
+ <enum name="GL_MAX_RENDERBUFFER_SIZE"/>
+ <enum name="GL_DEPTH_STENCIL"/>
+ <enum name="GL_UNSIGNED_INT_24_8"/>
+ <enum name="GL_DEPTH24_STENCIL8"/>
+ <enum name="GL_TEXTURE_STENCIL_SIZE"/>
+ <enum name="GL_TEXTURE_RED_TYPE"/>
+ <enum name="GL_TEXTURE_GREEN_TYPE"/>
+ <enum name="GL_TEXTURE_BLUE_TYPE"/>
+ <enum name="GL_TEXTURE_ALPHA_TYPE"/>
+ <enum name="GL_TEXTURE_DEPTH_TYPE"/>
+ <enum name="GL_UNSIGNED_NORMALIZED"/>
+ <enum name="GL_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_RENDERBUFFER_BINDING"/>
+ <enum name="GL_READ_FRAMEBUFFER"/>
+ <enum name="GL_DRAW_FRAMEBUFFER"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_RENDERBUFFER_SAMPLES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"/>
+ <enum name="GL_FRAMEBUFFER_COMPLETE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER"/>
+ <enum name="GL_FRAMEBUFFER_UNSUPPORTED"/>
+ <enum name="GL_MAX_COLOR_ATTACHMENTS"/>
+ <enum name="GL_COLOR_ATTACHMENT0"/>
+ <enum name="GL_COLOR_ATTACHMENT1"/>
+ <enum name="GL_COLOR_ATTACHMENT2"/>
+ <enum name="GL_COLOR_ATTACHMENT3"/>
+ <enum name="GL_COLOR_ATTACHMENT4"/>
+ <enum name="GL_COLOR_ATTACHMENT5"/>
+ <enum name="GL_COLOR_ATTACHMENT6"/>
+ <enum name="GL_COLOR_ATTACHMENT7"/>
+ <enum name="GL_COLOR_ATTACHMENT8"/>
+ <enum name="GL_COLOR_ATTACHMENT9"/>
+ <enum name="GL_COLOR_ATTACHMENT10"/>
+ <enum name="GL_COLOR_ATTACHMENT11"/>
+ <enum name="GL_COLOR_ATTACHMENT12"/>
+ <enum name="GL_COLOR_ATTACHMENT13"/>
+ <enum name="GL_COLOR_ATTACHMENT14"/>
+ <enum name="GL_COLOR_ATTACHMENT15"/>
+ <enum name="GL_DEPTH_ATTACHMENT"/>
+ <enum name="GL_STENCIL_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER"/>
+ <enum name="GL_RENDERBUFFER"/>
+ <enum name="GL_RENDERBUFFER_WIDTH"/>
+ <enum name="GL_RENDERBUFFER_HEIGHT"/>
+ <enum name="GL_RENDERBUFFER_INTERNAL_FORMAT"/>
+ <enum name="GL_STENCIL_INDEX1"/>
+ <enum name="GL_STENCIL_INDEX4"/>
+ <enum name="GL_STENCIL_INDEX8"/>
+ <enum name="GL_STENCIL_INDEX16"/>
+ <enum name="GL_RENDERBUFFER_RED_SIZE"/>
+ <enum name="GL_RENDERBUFFER_GREEN_SIZE"/>
+ <enum name="GL_RENDERBUFFER_BLUE_SIZE"/>
+ <enum name="GL_RENDERBUFFER_ALPHA_SIZE"/>
+ <enum name="GL_RENDERBUFFER_DEPTH_SIZE"/>
+ <enum name="GL_RENDERBUFFER_STENCIL_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"/>
+ <enum name="GL_MAX_SAMPLES"/>
+ <command name="glIsRenderbuffer"/>
+ <command name="glBindRenderbuffer"/>
+ <command name="glDeleteRenderbuffers"/>
+ <command name="glGenRenderbuffers"/>
+ <command name="glRenderbufferStorage"/>
+ <command name="glGetRenderbufferParameteriv"/>
+ <command name="glIsFramebuffer"/>
+ <command name="glBindFramebuffer"/>
+ <command name="glDeleteFramebuffers"/>
+ <command name="glGenFramebuffers"/>
+ <command name="glCheckFramebufferStatus"/>
+ <command name="glFramebufferTexture1D"/>
+ <command name="glFramebufferTexture2D"/>
+ <command name="glFramebufferTexture3D"/>
+ <command name="glFramebufferRenderbuffer"/>
+ <command name="glGetFramebufferAttachmentParameteriv"/>
+ <command name="glGenerateMipmap"/>
+ <command name="glBlitFramebuffer"/>
+ <command name="glRenderbufferStorageMultisample"/>
+ <command name="glFramebufferTextureLayer"/>
+ </require>
+ <require profile="compatibility" comment="Reuse ARB_framebuffer_object compatibility profile">
+ <enum name="GL_INDEX"/>
+ <enum name="GL_TEXTURE_LUMINANCE_TYPE"/>
+ <enum name="GL_TEXTURE_INTENSITY_TYPE"/>
+ </require>
+ <require comment="Reuse ARB_framebuffer_sRGB">
+ <enum name="GL_FRAMEBUFFER_SRGB"/>
+ </require>
+ <require comment="Reuse ARB_half_float_vertex">
+ <type name="GLhalf"/>
+ <enum name="GL_HALF_FLOAT"/>
+ </require>
+ <require comment="Reuse ARB_map_buffer_range">
+ <enum name="GL_MAP_READ_BIT"/>
+ <enum name="GL_MAP_WRITE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_RANGE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_BUFFER_BIT"/>
+ <enum name="GL_MAP_FLUSH_EXPLICIT_BIT"/>
+ <enum name="GL_MAP_UNSYNCHRONIZED_BIT"/>
+ <command name="glMapBufferRange"/>
+ <command name="glFlushMappedBufferRange"/>
+ </require>
+ <require comment="Reuse ARB_texture_compression_rgtc">
+ <enum name="GL_COMPRESSED_RED_RGTC1"/>
+ <enum name="GL_COMPRESSED_SIGNED_RED_RGTC1"/>
+ <enum name="GL_COMPRESSED_RG_RGTC2"/>
+ <enum name="GL_COMPRESSED_SIGNED_RG_RGTC2"/>
+ </require>
+ <require comment="Reuse ARB_texture_rg">
+ <enum name="GL_RG"/>
+ <enum name="GL_RG_INTEGER"/>
+ <enum name="GL_R8"/>
+ <enum name="GL_R16"/>
+ <enum name="GL_RG8"/>
+ <enum name="GL_RG16"/>
+ <enum name="GL_R16F"/>
+ <enum name="GL_R32F"/>
+ <enum name="GL_RG16F"/>
+ <enum name="GL_RG32F"/>
+ <enum name="GL_R8I"/>
+ <enum name="GL_R8UI"/>
+ <enum name="GL_R16I"/>
+ <enum name="GL_R16UI"/>
+ <enum name="GL_R32I"/>
+ <enum name="GL_R32UI"/>
+ <enum name="GL_RG8I"/>
+ <enum name="GL_RG8UI"/>
+ <enum name="GL_RG16I"/>
+ <enum name="GL_RG16UI"/>
+ <enum name="GL_RG32I"/>
+ <enum name="GL_RG32UI"/>
+ </require>
+ <require comment="Reuse ARB_vertex_array_object">
+ <enum name="GL_VERTEX_ARRAY_BINDING"/>
+ <enum name="GL_CLAMP_VERTEX_COLOR"/>
+ <enum name="GL_CLAMP_FRAGMENT_COLOR"/>
+ <enum name="GL_ALPHA_INTEGER"/>
+ <command name="glBindVertexArray"/>
+ <command name="glDeleteVertexArrays"/>
+ <command name="glGenVertexArrays"/>
+ <command name="glIsVertexArray"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_3_1" number="3.1">
+ <require>
+ <enum name="GL_SAMPLER_2D_RECT"/>
+ <enum name="GL_SAMPLER_2D_RECT_SHADOW"/>
+ <enum name="GL_SAMPLER_BUFFER"/>
+ <enum name="GL_INT_SAMPLER_2D_RECT"/>
+ <enum name="GL_INT_SAMPLER_BUFFER"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_RECT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_BUFFER"/>
+ <enum name="GL_TEXTURE_BUFFER"/>
+ <enum name="GL_MAX_TEXTURE_BUFFER_SIZE"/>
+ <enum name="GL_TEXTURE_BINDING_BUFFER"/>
+ <enum name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING"/>
+ <enum name="GL_TEXTURE_RECTANGLE"/>
+ <enum name="GL_TEXTURE_BINDING_RECTANGLE"/>
+ <enum name="GL_PROXY_TEXTURE_RECTANGLE"/>
+ <enum name="GL_MAX_RECTANGLE_TEXTURE_SIZE"/>
+ <enum name="GL_R8_SNORM"/>
+ <enum name="GL_RG8_SNORM"/>
+ <enum name="GL_RGB8_SNORM"/>
+ <enum name="GL_RGBA8_SNORM"/>
+ <enum name="GL_R16_SNORM"/>
+ <enum name="GL_RG16_SNORM"/>
+ <enum name="GL_RGB16_SNORM"/>
+ <enum name="GL_RGBA16_SNORM"/>
+ <enum name="GL_SIGNED_NORMALIZED"/>
+ <enum name="GL_PRIMITIVE_RESTART"/>
+ <enum name="GL_PRIMITIVE_RESTART_INDEX"/>
+ <command name="glDrawArraysInstanced"/>
+ <command name="glDrawElementsInstanced"/>
+ <command name="glTexBuffer"/>
+ <command name="glPrimitiveRestartIndex"/>
+ </require>
+ <require comment="Reuse ARB_copy_buffer">
+ <enum name="GL_COPY_READ_BUFFER"/>
+ <enum name="GL_COPY_WRITE_BUFFER"/>
+ <command name="glCopyBufferSubData"/>
+ </require>
+ <require comment="Reuse ARB_uniform_buffer_object">
+ <enum name="GL_UNIFORM_BUFFER"/>
+ <enum name="GL_UNIFORM_BUFFER_BINDING"/>
+ <enum name="GL_UNIFORM_BUFFER_START"/>
+ <enum name="GL_UNIFORM_BUFFER_SIZE"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_COMBINED_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_UNIFORM_BUFFER_BINDINGS"/>
+ <enum name="GL_MAX_UNIFORM_BLOCK_SIZE"/>
+ <enum name="GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum name="GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum name="GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH"/>
+ <enum name="GL_ACTIVE_UNIFORM_BLOCKS"/>
+ <enum name="GL_UNIFORM_TYPE"/>
+ <enum name="GL_UNIFORM_SIZE"/>
+ <enum name="GL_UNIFORM_NAME_LENGTH"/>
+ <enum name="GL_UNIFORM_BLOCK_INDEX"/>
+ <enum name="GL_UNIFORM_OFFSET"/>
+ <enum name="GL_UNIFORM_ARRAY_STRIDE"/>
+ <enum name="GL_UNIFORM_MATRIX_STRIDE"/>
+ <enum name="GL_UNIFORM_IS_ROW_MAJOR"/>
+ <enum name="GL_UNIFORM_BLOCK_BINDING"/>
+ <enum name="GL_UNIFORM_BLOCK_DATA_SIZE"/>
+ <enum name="GL_UNIFORM_BLOCK_NAME_LENGTH"/>
+ <enum name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS"/>
+ <enum name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_INVALID_INDEX"/>
+ <command name="glGetUniformIndices"/>
+ <command name="glGetActiveUniformsiv"/>
+ <command name="glGetActiveUniformName"/>
+ <command name="glGetUniformBlockIndex"/>
+ <command name="glGetActiveUniformBlockiv"/>
+ <command name="glGetActiveUniformBlockName"/>
+ <command name="glUniformBlockBinding"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_3_2" number="3.2">
+ <require>
+ <enum name="GL_CONTEXT_CORE_PROFILE_BIT"/>
+ <enum name="GL_CONTEXT_COMPATIBILITY_PROFILE_BIT"/>
+ <enum name="GL_LINES_ADJACENCY"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY"/>
+ <enum name="GL_TRIANGLES_ADJACENCY"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY"/>
+ <enum name="GL_PROGRAM_POINT_SIZE"/>
+ <enum name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS"/>
+ <enum name="GL_GEOMETRY_SHADER"/>
+ <enum name="GL_GEOMETRY_VERTICES_OUT"/>
+ <enum name="GL_GEOMETRY_INPUT_TYPE"/>
+ <enum name="GL_GEOMETRY_OUTPUT_TYPE"/>
+ <enum name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_GEOMETRY_OUTPUT_VERTICES"/>
+ <enum name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_VERTEX_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_GEOMETRY_INPUT_COMPONENTS"/>
+ <enum name="GL_MAX_GEOMETRY_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_FRAGMENT_INPUT_COMPONENTS"/>
+ <enum name="GL_CONTEXT_PROFILE_MASK"/>
+ </require>
+ <require comment="Reuse ARB_depth_clamp">
+ <enum name="GL_DEPTH_CLAMP"/>
+ </require>
+ <require comment="Reuse ARB_draw_elements_base_vertex">
+ <command name="glDrawElementsBaseVertex"/>
+ <command name="glDrawRangeElementsBaseVertex"/>
+ <command name="glDrawElementsInstancedBaseVertex"/>
+ <command name="glMultiDrawElementsBaseVertex"/>
+ </require>
+ <require comment="Reuse ARB_fragment_coord_conventions (none)">
+ </require>
+ <require comment="Reuse ARB_provoking_vertex">
+ <enum name="GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION"/>
+ <enum name="GL_FIRST_VERTEX_CONVENTION"/>
+ <enum name="GL_LAST_VERTEX_CONVENTION"/>
+ <enum name="GL_PROVOKING_VERTEX"/>
+ <command name="glProvokingVertex"/>
+ </require>
+ <require comment="Reuse ARB_seamless_cube_map">
+ <enum name="GL_TEXTURE_CUBE_MAP_SEAMLESS"/>
+ </require>
+ <require comment="Reuse ARB_sync">
+ <enum name="GL_MAX_SERVER_WAIT_TIMEOUT"/>
+ <enum name="GL_OBJECT_TYPE"/>
+ <enum name="GL_SYNC_CONDITION"/>
+ <enum name="GL_SYNC_STATUS"/>
+ <enum name="GL_SYNC_FLAGS"/>
+ <enum name="GL_SYNC_FENCE"/>
+ <enum name="GL_SYNC_GPU_COMMANDS_COMPLETE"/>
+ <enum name="GL_UNSIGNALED"/>
+ <enum name="GL_SIGNALED"/>
+ <enum name="GL_ALREADY_SIGNALED"/>
+ <enum name="GL_TIMEOUT_EXPIRED"/>
+ <enum name="GL_CONDITION_SATISFIED"/>
+ <enum name="GL_WAIT_FAILED"/>
+ <enum name="GL_TIMEOUT_IGNORED"/>
+ <enum name="GL_SYNC_FLUSH_COMMANDS_BIT"/>
+ <command name="glFenceSync"/>
+ <command name="glIsSync"/>
+ <command name="glDeleteSync"/>
+ <command name="glClientWaitSync"/>
+ <command name="glWaitSync"/>
+ <command name="glGetInteger64v"/>
+ <command name="glGetSynciv"/>
+ </require>
+ <require comment="Reuse ARB_texture_multisample">
+ <enum name="GL_SAMPLE_POSITION"/>
+ <enum name="GL_SAMPLE_MASK"/>
+ <enum name="GL_SAMPLE_MASK_VALUE"/>
+ <enum name="GL_MAX_SAMPLE_MASK_WORDS"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE"/>
+ <enum name="GL_PROXY_TEXTURE_2D_MULTISAMPLE"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_2D_MULTISAMPLE"/>
+ <enum name="GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_TEXTURE_SAMPLES"/>
+ <enum name="GL_TEXTURE_FIXED_SAMPLE_LOCATIONS"/>
+ <enum name="GL_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_INT_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_MAX_COLOR_TEXTURE_SAMPLES"/>
+ <enum name="GL_MAX_DEPTH_TEXTURE_SAMPLES"/>
+ <enum name="GL_MAX_INTEGER_SAMPLES"/>
+ <!-- /* Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core */ -->
+ <command name="glGetInteger64i_v"/>
+ <command name="glGetBufferParameteri64v"/>
+ <command name="glFramebufferTexture"/>
+ <command name="glTexImage2DMultisample"/>
+ <command name="glTexImage3DMultisample"/>
+ <command name="glGetMultisamplefv"/>
+ <command name="glSampleMaski"/>
+ </require>
+ <!-- OpenGL 3.2 is where core and compatibility profiles were first
+ introduced, so many, many things were removed from the core
+ profile in this version. A few were reintroduced later (e.g.
+ GetPointerv / STACK_{UNDER,OVER}FLOW by OpenGL 4.3 for debug
+ functionality). -->
+ <remove profile="core" comment="Compatibility-only GL 1.0 features removed from GL 3.2">
+ <command name="glNewList"/>
+ <command name="glEndList"/>
+ <command name="glCallList"/>
+ <command name="glCallLists"/>
+ <command name="glDeleteLists"/>
+ <command name="glGenLists"/>
+ <command name="glListBase"/>
+ <command name="glBegin"/>
+ <command name="glBitmap"/>
+ <command name="glColor3b"/>
+ <command name="glColor3bv"/>
+ <command name="glColor3d"/>
+ <command name="glColor3dv"/>
+ <command name="glColor3f"/>
+ <command name="glColor3fv"/>
+ <command name="glColor3i"/>
+ <command name="glColor3iv"/>
+ <command name="glColor3s"/>
+ <command name="glColor3sv"/>
+ <command name="glColor3ub"/>
+ <command name="glColor3ubv"/>
+ <command name="glColor3ui"/>
+ <command name="glColor3uiv"/>
+ <command name="glColor3us"/>
+ <command name="glColor3usv"/>
+ <command name="glColor4b"/>
+ <command name="glColor4bv"/>
+ <command name="glColor4d"/>
+ <command name="glColor4dv"/>
+ <command name="glColor4f"/>
+ <command name="glColor4fv"/>
+ <command name="glColor4i"/>
+ <command name="glColor4iv"/>
+ <command name="glColor4s"/>
+ <command name="glColor4sv"/>
+ <command name="glColor4ub"/>
+ <command name="glColor4ubv"/>
+ <command name="glColor4ui"/>
+ <command name="glColor4uiv"/>
+ <command name="glColor4us"/>
+ <command name="glColor4usv"/>
+ <command name="glEdgeFlag"/>
+ <command name="glEdgeFlagv"/>
+ <command name="glEnd"/>
+ <command name="glIndexd"/>
+ <command name="glIndexdv"/>
+ <command name="glIndexf"/>
+ <command name="glIndexfv"/>
+ <command name="glIndexi"/>
+ <command name="glIndexiv"/>
+ <command name="glIndexs"/>
+ <command name="glIndexsv"/>
+ <command name="glNormal3b"/>
+ <command name="glNormal3bv"/>
+ <command name="glNormal3d"/>
+ <command name="glNormal3dv"/>
+ <command name="glNormal3f"/>
+ <command name="glNormal3fv"/>
+ <command name="glNormal3i"/>
+ <command name="glNormal3iv"/>
+ <command name="glNormal3s"/>
+ <command name="glNormal3sv"/>
+ <command name="glRasterPos2d"/>
+ <command name="glRasterPos2dv"/>
+ <command name="glRasterPos2f"/>
+ <command name="glRasterPos2fv"/>
+ <command name="glRasterPos2i"/>
+ <command name="glRasterPos2iv"/>
+ <command name="glRasterPos2s"/>
+ <command name="glRasterPos2sv"/>
+ <command name="glRasterPos3d"/>
+ <command name="glRasterPos3dv"/>
+ <command name="glRasterPos3f"/>
+ <command name="glRasterPos3fv"/>
+ <command name="glRasterPos3i"/>
+ <command name="glRasterPos3iv"/>
+ <command name="glRasterPos3s"/>
+ <command name="glRasterPos3sv"/>
+ <command name="glRasterPos4d"/>
+ <command name="glRasterPos4dv"/>
+ <command name="glRasterPos4f"/>
+ <command name="glRasterPos4fv"/>
+ <command name="glRasterPos4i"/>
+ <command name="glRasterPos4iv"/>
+ <command name="glRasterPos4s"/>
+ <command name="glRasterPos4sv"/>
+ <command name="glRectd"/>
+ <command name="glRectdv"/>
+ <command name="glRectf"/>
+ <command name="glRectfv"/>
+ <command name="glRecti"/>
+ <command name="glRectiv"/>
+ <command name="glRects"/>
+ <command name="glRectsv"/>
+ <command name="glTexCoord1d"/>
+ <command name="glTexCoord1dv"/>
+ <command name="glTexCoord1f"/>
+ <command name="glTexCoord1fv"/>
+ <command name="glTexCoord1i"/>
+ <command name="glTexCoord1iv"/>
+ <command name="glTexCoord1s"/>
+ <command name="glTexCoord1sv"/>
+ <command name="glTexCoord2d"/>
+ <command name="glTexCoord2dv"/>
+ <command name="glTexCoord2f"/>
+ <command name="glTexCoord2fv"/>
+ <command name="glTexCoord2i"/>
+ <command name="glTexCoord2iv"/>
+ <command name="glTexCoord2s"/>
+ <command name="glTexCoord2sv"/>
+ <command name="glTexCoord3d"/>
+ <command name="glTexCoord3dv"/>
+ <command name="glTexCoord3f"/>
+ <command name="glTexCoord3fv"/>
+ <command name="glTexCoord3i"/>
+ <command name="glTexCoord3iv"/>
+ <command name="glTexCoord3s"/>
+ <command name="glTexCoord3sv"/>
+ <command name="glTexCoord4d"/>
+ <command name="glTexCoord4dv"/>
+ <command name="glTexCoord4f"/>
+ <command name="glTexCoord4fv"/>
+ <command name="glTexCoord4i"/>
+ <command name="glTexCoord4iv"/>
+ <command name="glTexCoord4s"/>
+ <command name="glTexCoord4sv"/>
+ <command name="glVertex2d"/>
+ <command name="glVertex2dv"/>
+ <command name="glVertex2f"/>
+ <command name="glVertex2fv"/>
+ <command name="glVertex2i"/>
+ <command name="glVertex2iv"/>
+ <command name="glVertex2s"/>
+ <command name="glVertex2sv"/>
+ <command name="glVertex3d"/>
+ <command name="glVertex3dv"/>
+ <command name="glVertex3f"/>
+ <command name="glVertex3fv"/>
+ <command name="glVertex3i"/>
+ <command name="glVertex3iv"/>
+ <command name="glVertex3s"/>
+ <command name="glVertex3sv"/>
+ <command name="glVertex4d"/>
+ <command name="glVertex4dv"/>
+ <command name="glVertex4f"/>
+ <command name="glVertex4fv"/>
+ <command name="glVertex4i"/>
+ <command name="glVertex4iv"/>
+ <command name="glVertex4s"/>
+ <command name="glVertex4sv"/>
+ <command name="glClipPlane"/>
+ <command name="glColorMaterial"/>
+ <command name="glFogf"/>
+ <command name="glFogfv"/>
+ <command name="glFogi"/>
+ <command name="glFogiv"/>
+ <command name="glLightf"/>
+ <command name="glLightfv"/>
+ <command name="glLighti"/>
+ <command name="glLightiv"/>
+ <command name="glLightModelf"/>
+ <command name="glLightModelfv"/>
+ <command name="glLightModeli"/>
+ <command name="glLightModeliv"/>
+ <command name="glLineStipple"/>
+ <command name="glMaterialf"/>
+ <command name="glMaterialfv"/>
+ <command name="glMateriali"/>
+ <command name="glMaterialiv"/>
+ <command name="glPolygonStipple"/>
+ <command name="glShadeModel"/>
+ <command name="glTexEnvf"/>
+ <command name="glTexEnvfv"/>
+ <command name="glTexEnvi"/>
+ <command name="glTexEnviv"/>
+ <command name="glTexGend"/>
+ <command name="glTexGendv"/>
+ <command name="glTexGenf"/>
+ <command name="glTexGenfv"/>
+ <command name="glTexGeni"/>
+ <command name="glTexGeniv"/>
+ <command name="glFeedbackBuffer"/>
+ <command name="glSelectBuffer"/>
+ <command name="glRenderMode"/>
+ <command name="glInitNames"/>
+ <command name="glLoadName"/>
+ <command name="glPassThrough"/>
+ <command name="glPopName"/>
+ <command name="glPushName"/>
+ <command name="glClearAccum"/>
+ <command name="glClearIndex"/>
+ <command name="glIndexMask"/>
+ <command name="glAccum"/>
+ <command name="glPopAttrib"/>
+ <command name="glPushAttrib"/>
+ <command name="glMap1d"/>
+ <command name="glMap1f"/>
+ <command name="glMap2d"/>
+ <command name="glMap2f"/>
+ <command name="glMapGrid1d"/>
+ <command name="glMapGrid1f"/>
+ <command name="glMapGrid2d"/>
+ <command name="glMapGrid2f"/>
+ <command name="glEvalCoord1d"/>
+ <command name="glEvalCoord1dv"/>
+ <command name="glEvalCoord1f"/>
+ <command name="glEvalCoord1fv"/>
+ <command name="glEvalCoord2d"/>
+ <command name="glEvalCoord2dv"/>
+ <command name="glEvalCoord2f"/>
+ <command name="glEvalCoord2fv"/>
+ <command name="glEvalMesh1"/>
+ <command name="glEvalPoint1"/>
+ <command name="glEvalMesh2"/>
+ <command name="glEvalPoint2"/>
+ <command name="glAlphaFunc"/>
+ <command name="glPixelZoom"/>
+ <command name="glPixelTransferf"/>
+ <command name="glPixelTransferi"/>
+ <command name="glPixelMapfv"/>
+ <command name="glPixelMapuiv"/>
+ <command name="glPixelMapusv"/>
+ <command name="glCopyPixels"/>
+ <command name="glDrawPixels"/>
+ <command name="glGetClipPlane"/>
+ <command name="glGetLightfv"/>
+ <command name="glGetLightiv"/>
+ <command name="glGetMapdv"/>
+ <command name="glGetMapfv"/>
+ <command name="glGetMapiv"/>
+ <command name="glGetMaterialfv"/>
+ <command name="glGetMaterialiv"/>
+ <command name="glGetPixelMapfv"/>
+ <command name="glGetPixelMapuiv"/>
+ <command name="glGetPixelMapusv"/>
+ <command name="glGetPolygonStipple"/>
+ <command name="glGetTexEnvfv"/>
+ <command name="glGetTexEnviv"/>
+ <command name="glGetTexGendv"/>
+ <command name="glGetTexGenfv"/>
+ <command name="glGetTexGeniv"/>
+ <command name="glIsList"/>
+ <command name="glFrustum"/>
+ <command name="glLoadIdentity"/>
+ <command name="glLoadMatrixf"/>
+ <command name="glLoadMatrixd"/>
+ <command name="glMatrixMode"/>
+ <command name="glMultMatrixf"/>
+ <command name="glMultMatrixd"/>
+ <command name="glOrtho"/>
+ <command name="glPopMatrix"/>
+ <command name="glPushMatrix"/>
+ <command name="glRotated"/>
+ <command name="glRotatef"/>
+ <command name="glScaled"/>
+ <command name="glScalef"/>
+ <command name="glTranslated"/>
+ <command name="glTranslatef"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 1.1 features removed from GL 3.2">
+ <enum name="GL_CURRENT_BIT"/>
+ <enum name="GL_POINT_BIT"/>
+ <enum name="GL_LINE_BIT"/>
+ <enum name="GL_POLYGON_BIT"/>
+ <enum name="GL_POLYGON_STIPPLE_BIT"/>
+ <enum name="GL_PIXEL_MODE_BIT"/>
+ <enum name="GL_LIGHTING_BIT"/>
+ <enum name="GL_FOG_BIT"/>
+ <enum name="GL_ACCUM_BUFFER_BIT"/>
+ <enum name="GL_VIEWPORT_BIT"/>
+ <enum name="GL_TRANSFORM_BIT"/>
+ <enum name="GL_ENABLE_BIT"/>
+ <enum name="GL_HINT_BIT"/>
+ <enum name="GL_EVAL_BIT"/>
+ <enum name="GL_LIST_BIT"/>
+ <enum name="GL_TEXTURE_BIT"/>
+ <enum name="GL_SCISSOR_BIT"/>
+ <enum name="GL_ALL_ATTRIB_BITS"/>
+ <enum name="GL_CLIENT_PIXEL_STORE_BIT"/>
+ <enum name="GL_CLIENT_VERTEX_ARRAY_BIT"/>
+ <enum name="GL_CLIENT_ALL_ATTRIB_BITS"/>
+ <enum name="GL_QUAD_STRIP"/>
+ <enum name="GL_QUADS"/>
+ <enum name="GL_POLYGON"/>
+ <enum name="GL_ACCUM"/>
+ <enum name="GL_LOAD"/>
+ <enum name="GL_RETURN"/>
+ <enum name="GL_MULT"/>
+ <enum name="GL_ADD"/>
+ <enum name="GL_STACK_OVERFLOW"/>
+ <enum name="GL_STACK_UNDERFLOW"/>
+ <enum name="GL_AUX0"/>
+ <enum name="GL_AUX1"/>
+ <enum name="GL_AUX2"/>
+ <enum name="GL_AUX3"/>
+ <enum name="GL_2D"/>
+ <enum name="GL_3D"/>
+ <enum name="GL_3D_COLOR"/>
+ <enum name="GL_3D_COLOR_TEXTURE"/>
+ <enum name="GL_4D_COLOR_TEXTURE"/>
+ <enum name="GL_PASS_THROUGH_TOKEN"/>
+ <enum name="GL_POINT_TOKEN"/>
+ <enum name="GL_LINE_TOKEN"/>
+ <enum name="GL_POLYGON_TOKEN"/>
+ <enum name="GL_BITMAP_TOKEN"/>
+ <enum name="GL_DRAW_PIXEL_TOKEN"/>
+ <enum name="GL_COPY_PIXEL_TOKEN"/>
+ <enum name="GL_LINE_RESET_TOKEN"/>
+ <enum name="GL_EXP"/>
+ <enum name="GL_EXP2"/>
+ <enum name="GL_COEFF"/>
+ <enum name="GL_ORDER"/>
+ <enum name="GL_DOMAIN"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B"/>
+ <enum name="GL_PIXEL_MAP_A_TO_A"/>
+ <enum name="GL_VERTEX_ARRAY_POINTER"/>
+ <enum name="GL_NORMAL_ARRAY_POINTER"/>
+ <enum name="GL_COLOR_ARRAY_POINTER"/>
+ <enum name="GL_INDEX_ARRAY_POINTER"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_POINTER"/>
+ <enum name="GL_FEEDBACK_BUFFER_POINTER"/>
+ <enum name="GL_SELECTION_BUFFER_POINTER"/>
+ <enum name="GL_CURRENT_COLOR"/>
+ <enum name="GL_CURRENT_INDEX"/>
+ <enum name="GL_CURRENT_NORMAL"/>
+ <enum name="GL_CURRENT_TEXTURE_COORDS"/>
+ <enum name="GL_CURRENT_RASTER_COLOR"/>
+ <enum name="GL_CURRENT_RASTER_INDEX"/>
+ <enum name="GL_CURRENT_RASTER_TEXTURE_COORDS"/>
+ <enum name="GL_CURRENT_RASTER_POSITION"/>
+ <enum name="GL_CURRENT_RASTER_POSITION_VALID"/>
+ <enum name="GL_CURRENT_RASTER_DISTANCE"/>
+ <enum name="GL_POINT_SMOOTH"/>
+ <enum name="GL_LINE_STIPPLE"/>
+ <enum name="GL_LINE_STIPPLE_PATTERN"/>
+ <enum name="GL_LINE_STIPPLE_REPEAT"/>
+ <enum name="GL_LIST_MODE"/>
+ <enum name="GL_MAX_LIST_NESTING"/>
+ <enum name="GL_LIST_BASE"/>
+ <enum name="GL_LIST_INDEX"/>
+ <enum name="GL_POLYGON_STIPPLE"/>
+ <enum name="GL_EDGE_FLAG"/>
+ <enum name="GL_LIGHTING"/>
+ <enum name="GL_LIGHT_MODEL_LOCAL_VIEWER"/>
+ <enum name="GL_LIGHT_MODEL_TWO_SIDE"/>
+ <enum name="GL_LIGHT_MODEL_AMBIENT"/>
+ <enum name="GL_SHADE_MODEL"/>
+ <enum name="GL_COLOR_MATERIAL_FACE"/>
+ <enum name="GL_COLOR_MATERIAL_PARAMETER"/>
+ <enum name="GL_COLOR_MATERIAL"/>
+ <enum name="GL_FOG"/>
+ <enum name="GL_FOG_INDEX"/>
+ <enum name="GL_FOG_DENSITY"/>
+ <enum name="GL_FOG_START"/>
+ <enum name="GL_FOG_END"/>
+ <enum name="GL_FOG_MODE"/>
+ <enum name="GL_FOG_COLOR"/>
+ <enum name="GL_ACCUM_CLEAR_VALUE"/>
+ <enum name="GL_MATRIX_MODE"/>
+ <enum name="GL_NORMALIZE"/>
+ <enum name="GL_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MODELVIEW_MATRIX"/>
+ <enum name="GL_PROJECTION_MATRIX"/>
+ <enum name="GL_TEXTURE_MATRIX"/>
+ <enum name="GL_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_CLIENT_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_ALPHA_TEST"/>
+ <enum name="GL_ALPHA_TEST_FUNC"/>
+ <enum name="GL_ALPHA_TEST_REF"/>
+ <enum name="GL_INDEX_LOGIC_OP"/>
+ <enum name="GL_LOGIC_OP"/>
+ <enum name="GL_AUX_BUFFERS"/>
+ <enum name="GL_INDEX_CLEAR_VALUE"/>
+ <enum name="GL_INDEX_WRITEMASK"/>
+ <enum name="GL_INDEX_MODE"/>
+ <enum name="GL_RGBA_MODE"/>
+ <enum name="GL_RENDER_MODE"/>
+ <enum name="GL_PERSPECTIVE_CORRECTION_HINT"/>
+ <enum name="GL_POINT_SMOOTH_HINT"/>
+ <enum name="GL_FOG_HINT"/>
+ <enum name="GL_TEXTURE_GEN_S"/>
+ <enum name="GL_TEXTURE_GEN_T"/>
+ <enum name="GL_TEXTURE_GEN_R"/>
+ <enum name="GL_TEXTURE_GEN_Q"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I_SIZE"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A_SIZE"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R_SIZE"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G_SIZE"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B_SIZE"/>
+ <enum name="GL_PIXEL_MAP_A_TO_A_SIZE"/>
+ <enum name="GL_MAP_COLOR"/>
+ <enum name="GL_MAP_STENCIL"/>
+ <enum name="GL_INDEX_SHIFT"/>
+ <enum name="GL_INDEX_OFFSET"/>
+ <enum name="GL_RED_SCALE"/>
+ <enum name="GL_RED_BIAS"/>
+ <enum name="GL_ZOOM_X"/>
+ <enum name="GL_ZOOM_Y"/>
+ <enum name="GL_GREEN_SCALE"/>
+ <enum name="GL_GREEN_BIAS"/>
+ <enum name="GL_BLUE_SCALE"/>
+ <enum name="GL_BLUE_BIAS"/>
+ <enum name="GL_ALPHA_SCALE"/>
+ <enum name="GL_ALPHA_BIAS"/>
+ <enum name="GL_DEPTH_SCALE"/>
+ <enum name="GL_DEPTH_BIAS"/>
+ <enum name="GL_MAX_EVAL_ORDER"/>
+ <enum name="GL_MAX_LIGHTS"/>
+ <enum name="GL_MAX_CLIP_PLANES"/>
+ <enum name="GL_MAX_PIXEL_MAP_TABLE"/>
+ <enum name="GL_MAX_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_MAX_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_MAX_NAME_STACK_DEPTH"/>
+ <enum name="GL_MAX_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_MAX_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MAX_CLIENT_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_INDEX_BITS"/>
+ <enum name="GL_RED_BITS"/>
+ <enum name="GL_GREEN_BITS"/>
+ <enum name="GL_BLUE_BITS"/>
+ <enum name="GL_ALPHA_BITS"/>
+ <enum name="GL_DEPTH_BITS"/>
+ <enum name="GL_STENCIL_BITS"/>
+ <enum name="GL_ACCUM_RED_BITS"/>
+ <enum name="GL_ACCUM_GREEN_BITS"/>
+ <enum name="GL_ACCUM_BLUE_BITS"/>
+ <enum name="GL_ACCUM_ALPHA_BITS"/>
+ <enum name="GL_NAME_STACK_DEPTH"/>
+ <enum name="GL_AUTO_NORMAL"/>
+ <enum name="GL_MAP1_COLOR_4"/>
+ <enum name="GL_MAP1_INDEX"/>
+ <enum name="GL_MAP1_NORMAL"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP1_VERTEX_3"/>
+ <enum name="GL_MAP1_VERTEX_4"/>
+ <enum name="GL_MAP2_COLOR_4"/>
+ <enum name="GL_MAP2_INDEX"/>
+ <enum name="GL_MAP2_NORMAL"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP2_VERTEX_3"/>
+ <enum name="GL_MAP2_VERTEX_4"/>
+ <enum name="GL_MAP1_GRID_DOMAIN"/>
+ <enum name="GL_MAP1_GRID_SEGMENTS"/>
+ <enum name="GL_MAP2_GRID_DOMAIN"/>
+ <enum name="GL_MAP2_GRID_SEGMENTS"/>
+ <enum name="GL_FEEDBACK_BUFFER_SIZE"/>
+ <enum name="GL_FEEDBACK_BUFFER_TYPE"/>
+ <enum name="GL_SELECTION_BUFFER_SIZE"/>
+ <enum name="GL_VERTEX_ARRAY"/>
+ <enum name="GL_NORMAL_ARRAY"/>
+ <enum name="GL_COLOR_ARRAY"/>
+ <enum name="GL_INDEX_ARRAY"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY"/>
+ <enum name="GL_EDGE_FLAG_ARRAY"/>
+ <enum name="GL_VERTEX_ARRAY_SIZE"/>
+ <enum name="GL_VERTEX_ARRAY_TYPE"/>
+ <enum name="GL_VERTEX_ARRAY_STRIDE"/>
+ <enum name="GL_NORMAL_ARRAY_TYPE"/>
+ <enum name="GL_NORMAL_ARRAY_STRIDE"/>
+ <enum name="GL_COLOR_ARRAY_SIZE"/>
+ <enum name="GL_COLOR_ARRAY_TYPE"/>
+ <enum name="GL_COLOR_ARRAY_STRIDE"/>
+ <enum name="GL_INDEX_ARRAY_TYPE"/>
+ <enum name="GL_INDEX_ARRAY_STRIDE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_SIZE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_TYPE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_STRIDE"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_STRIDE"/>
+ <enum name="GL_TEXTURE_COMPONENTS"/>
+ <enum name="GL_TEXTURE_BORDER"/>
+ <enum name="GL_TEXTURE_LUMINANCE_SIZE"/>
+ <enum name="GL_TEXTURE_INTENSITY_SIZE"/>
+ <enum name="GL_TEXTURE_PRIORITY"/>
+ <enum name="GL_TEXTURE_RESIDENT"/>
+ <enum name="GL_AMBIENT"/>
+ <enum name="GL_DIFFUSE"/>
+ <enum name="GL_SPECULAR"/>
+ <enum name="GL_POSITION"/>
+ <enum name="GL_SPOT_DIRECTION"/>
+ <enum name="GL_SPOT_EXPONENT"/>
+ <enum name="GL_SPOT_CUTOFF"/>
+ <enum name="GL_CONSTANT_ATTENUATION"/>
+ <enum name="GL_LINEAR_ATTENUATION"/>
+ <enum name="GL_QUADRATIC_ATTENUATION"/>
+ <enum name="GL_COMPILE"/>
+ <enum name="GL_COMPILE_AND_EXECUTE"/>
+ <enum name="GL_2_BYTES"/>
+ <enum name="GL_3_BYTES"/>
+ <enum name="GL_4_BYTES"/>
+ <enum name="GL_EMISSION"/>
+ <enum name="GL_SHININESS"/>
+ <enum name="GL_AMBIENT_AND_DIFFUSE"/>
+ <enum name="GL_COLOR_INDEXES"/>
+ <enum name="GL_MODELVIEW"/>
+ <enum name="GL_PROJECTION"/>
+ <enum name="GL_COLOR_INDEX"/>
+ <enum name="GL_LUMINANCE"/>
+ <enum name="GL_LUMINANCE_ALPHA"/>
+ <enum name="GL_BITMAP"/>
+ <enum name="GL_RENDER"/>
+ <enum name="GL_FEEDBACK"/>
+ <enum name="GL_SELECT"/>
+ <enum name="GL_FLAT"/>
+ <enum name="GL_SMOOTH"/>
+ <enum name="GL_S"/>
+ <enum name="GL_T"/>
+ <enum name="GL_R"/>
+ <enum name="GL_Q"/>
+ <enum name="GL_MODULATE"/>
+ <enum name="GL_DECAL"/>
+ <enum name="GL_TEXTURE_ENV_MODE"/>
+ <enum name="GL_TEXTURE_ENV_COLOR"/>
+ <enum name="GL_TEXTURE_ENV"/>
+ <enum name="GL_EYE_LINEAR"/>
+ <enum name="GL_OBJECT_LINEAR"/>
+ <enum name="GL_SPHERE_MAP"/>
+ <enum name="GL_TEXTURE_GEN_MODE"/>
+ <enum name="GL_OBJECT_PLANE"/>
+ <enum name="GL_EYE_PLANE"/>
+ <enum name="GL_CLAMP"/>
+ <enum name="GL_ALPHA4"/>
+ <enum name="GL_ALPHA8"/>
+ <enum name="GL_ALPHA12"/>
+ <enum name="GL_ALPHA16"/>
+ <enum name="GL_LUMINANCE4"/>
+ <enum name="GL_LUMINANCE8"/>
+ <enum name="GL_LUMINANCE12"/>
+ <enum name="GL_LUMINANCE16"/>
+ <enum name="GL_LUMINANCE4_ALPHA4"/>
+ <enum name="GL_LUMINANCE6_ALPHA2"/>
+ <enum name="GL_LUMINANCE8_ALPHA8"/>
+ <enum name="GL_LUMINANCE12_ALPHA4"/>
+ <enum name="GL_LUMINANCE12_ALPHA12"/>
+ <enum name="GL_LUMINANCE16_ALPHA16"/>
+ <enum name="GL_INTENSITY"/>
+ <enum name="GL_INTENSITY4"/>
+ <enum name="GL_INTENSITY8"/>
+ <enum name="GL_INTENSITY12"/>
+ <enum name="GL_INTENSITY16"/>
+ <enum name="GL_V2F"/>
+ <enum name="GL_V3F"/>
+ <enum name="GL_C4UB_V2F"/>
+ <enum name="GL_C4UB_V3F"/>
+ <enum name="GL_C3F_V3F"/>
+ <enum name="GL_N3F_V3F"/>
+ <enum name="GL_C4F_N3F_V3F"/>
+ <enum name="GL_T2F_V3F"/>
+ <enum name="GL_T4F_V4F"/>
+ <enum name="GL_T2F_C4UB_V3F"/>
+ <enum name="GL_T2F_C3F_V3F"/>
+ <enum name="GL_T2F_N3F_V3F"/>
+ <enum name="GL_T2F_C4F_N3F_V3F"/>
+ <enum name="GL_T4F_C4F_N3F_V4F"/>
+ <enum name="GL_CLIP_PLANE0"/>
+ <enum name="GL_CLIP_PLANE1"/>
+ <enum name="GL_CLIP_PLANE2"/>
+ <enum name="GL_CLIP_PLANE3"/>
+ <enum name="GL_CLIP_PLANE4"/>
+ <enum name="GL_CLIP_PLANE5"/>
+ <enum name="GL_LIGHT0"/>
+ <enum name="GL_LIGHT1"/>
+ <enum name="GL_LIGHT2"/>
+ <enum name="GL_LIGHT3"/>
+ <enum name="GL_LIGHT4"/>
+ <enum name="GL_LIGHT5"/>
+ <enum name="GL_LIGHT6"/>
+ <enum name="GL_LIGHT7"/>
+ <command name="glArrayElement"/>
+ <command name="glColorPointer"/>
+ <command name="glDisableClientState"/>
+ <command name="glEdgeFlagPointer"/>
+ <command name="glEnableClientState"/>
+ <command name="glIndexPointer"/>
+ <command name="glGetPointerv"/>
+ <command name="glInterleavedArrays"/>
+ <command name="glNormalPointer"/>
+ <command name="glTexCoordPointer"/>
+ <command name="glVertexPointer"/>
+ <command name="glAreTexturesResident"/>
+ <command name="glPrioritizeTextures"/>
+ <command name="glIndexub"/>
+ <command name="glIndexubv"/>
+ <command name="glPopClientAttrib"/>
+ <command name="glPushClientAttrib"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 1.2 features removed from GL 3.2">
+ <enum name="GL_RESCALE_NORMAL"/>
+ <enum name="GL_LIGHT_MODEL_COLOR_CONTROL"/>
+ <enum name="GL_SINGLE_COLOR"/>
+ <enum name="GL_SEPARATE_SPECULAR_COLOR"/>
+ <enum name="GL_ALIASED_POINT_SIZE_RANGE"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 1.3 features removed from GL 3.2">
+ <enum name="GL_CLIENT_ACTIVE_TEXTURE"/>
+ <enum name="GL_MAX_TEXTURE_UNITS"/>
+ <enum name="GL_TRANSPOSE_MODELVIEW_MATRIX"/>
+ <enum name="GL_TRANSPOSE_PROJECTION_MATRIX"/>
+ <enum name="GL_TRANSPOSE_TEXTURE_MATRIX"/>
+ <enum name="GL_TRANSPOSE_COLOR_MATRIX"/>
+ <enum name="GL_MULTISAMPLE_BIT"/>
+ <enum name="GL_NORMAL_MAP"/>
+ <enum name="GL_REFLECTION_MAP"/>
+ <enum name="GL_COMPRESSED_ALPHA"/>
+ <enum name="GL_COMPRESSED_LUMINANCE"/>
+ <enum name="GL_COMPRESSED_LUMINANCE_ALPHA"/>
+ <enum name="GL_COMPRESSED_INTENSITY"/>
+ <enum name="GL_COMBINE"/>
+ <enum name="GL_COMBINE_RGB"/>
+ <enum name="GL_COMBINE_ALPHA"/>
+ <enum name="GL_SOURCE0_RGB"/>
+ <enum name="GL_SOURCE1_RGB"/>
+ <enum name="GL_SOURCE2_RGB"/>
+ <enum name="GL_SOURCE0_ALPHA"/>
+ <enum name="GL_SOURCE1_ALPHA"/>
+ <enum name="GL_SOURCE2_ALPHA"/>
+ <enum name="GL_OPERAND0_RGB"/>
+ <enum name="GL_OPERAND1_RGB"/>
+ <enum name="GL_OPERAND2_RGB"/>
+ <enum name="GL_OPERAND0_ALPHA"/>
+ <enum name="GL_OPERAND1_ALPHA"/>
+ <enum name="GL_OPERAND2_ALPHA"/>
+ <enum name="GL_RGB_SCALE"/>
+ <enum name="GL_ADD_SIGNED"/>
+ <enum name="GL_INTERPOLATE"/>
+ <enum name="GL_SUBTRACT"/>
+ <enum name="GL_CONSTANT"/>
+ <enum name="GL_PRIMARY_COLOR"/>
+ <enum name="GL_PREVIOUS"/>
+ <enum name="GL_DOT3_RGB"/>
+ <enum name="GL_DOT3_RGBA"/>
+ <command name="glClientActiveTexture"/>
+ <command name="glMultiTexCoord1d"/>
+ <command name="glMultiTexCoord1dv"/>
+ <command name="glMultiTexCoord1f"/>
+ <command name="glMultiTexCoord1fv"/>
+ <command name="glMultiTexCoord1i"/>
+ <command name="glMultiTexCoord1iv"/>
+ <command name="glMultiTexCoord1s"/>
+ <command name="glMultiTexCoord1sv"/>
+ <command name="glMultiTexCoord2d"/>
+ <command name="glMultiTexCoord2dv"/>
+ <command name="glMultiTexCoord2f"/>
+ <command name="glMultiTexCoord2fv"/>
+ <command name="glMultiTexCoord2i"/>
+ <command name="glMultiTexCoord2iv"/>
+ <command name="glMultiTexCoord2s"/>
+ <command name="glMultiTexCoord2sv"/>
+ <command name="glMultiTexCoord3d"/>
+ <command name="glMultiTexCoord3dv"/>
+ <command name="glMultiTexCoord3f"/>
+ <command name="glMultiTexCoord3fv"/>
+ <command name="glMultiTexCoord3i"/>
+ <command name="glMultiTexCoord3iv"/>
+ <command name="glMultiTexCoord3s"/>
+ <command name="glMultiTexCoord3sv"/>
+ <command name="glMultiTexCoord4d"/>
+ <command name="glMultiTexCoord4dv"/>
+ <command name="glMultiTexCoord4f"/>
+ <command name="glMultiTexCoord4fv"/>
+ <command name="glMultiTexCoord4i"/>
+ <command name="glMultiTexCoord4iv"/>
+ <command name="glMultiTexCoord4s"/>
+ <command name="glMultiTexCoord4sv"/>
+ <command name="glLoadTransposeMatrixf"/>
+ <command name="glLoadTransposeMatrixd"/>
+ <command name="glMultTransposeMatrixf"/>
+ <command name="glMultTransposeMatrixd"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 1.4 features removed from GL 3.2">
+ <enum name="GL_POINT_SIZE_MIN"/>
+ <enum name="GL_POINT_SIZE_MAX"/>
+ <enum name="GL_POINT_DISTANCE_ATTENUATION"/>
+ <enum name="GL_GENERATE_MIPMAP"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT"/>
+ <enum name="GL_FOG_COORDINATE_SOURCE"/>
+ <enum name="GL_FOG_COORDINATE"/>
+ <enum name="GL_FRAGMENT_DEPTH"/>
+ <enum name="GL_CURRENT_FOG_COORDINATE"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_TYPE"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_STRIDE"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_POINTER"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY"/>
+ <enum name="GL_COLOR_SUM"/>
+ <enum name="GL_CURRENT_SECONDARY_COLOR"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_SIZE"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_TYPE"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_STRIDE"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_POINTER"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY"/>
+ <enum name="GL_TEXTURE_FILTER_CONTROL"/>
+ <enum name="GL_DEPTH_TEXTURE_MODE"/>
+ <enum name="GL_COMPARE_R_TO_TEXTURE"/>
+ <command name="glFogCoordf"/>
+ <command name="glFogCoordfv"/>
+ <command name="glFogCoordd"/>
+ <command name="glFogCoorddv"/>
+ <command name="glFogCoordPointer"/>
+ <command name="glSecondaryColor3b"/>
+ <command name="glSecondaryColor3bv"/>
+ <command name="glSecondaryColor3d"/>
+ <command name="glSecondaryColor3dv"/>
+ <command name="glSecondaryColor3f"/>
+ <command name="glSecondaryColor3fv"/>
+ <command name="glSecondaryColor3i"/>
+ <command name="glSecondaryColor3iv"/>
+ <command name="glSecondaryColor3s"/>
+ <command name="glSecondaryColor3sv"/>
+ <command name="glSecondaryColor3ub"/>
+ <command name="glSecondaryColor3ubv"/>
+ <command name="glSecondaryColor3ui"/>
+ <command name="glSecondaryColor3uiv"/>
+ <command name="glSecondaryColor3us"/>
+ <command name="glSecondaryColor3usv"/>
+ <command name="glSecondaryColorPointer"/>
+ <command name="glWindowPos2d"/>
+ <command name="glWindowPos2dv"/>
+ <command name="glWindowPos2f"/>
+ <command name="glWindowPos2fv"/>
+ <command name="glWindowPos2i"/>
+ <command name="glWindowPos2iv"/>
+ <command name="glWindowPos2s"/>
+ <command name="glWindowPos2sv"/>
+ <command name="glWindowPos3d"/>
+ <command name="glWindowPos3dv"/>
+ <command name="glWindowPos3f"/>
+ <command name="glWindowPos3fv"/>
+ <command name="glWindowPos3i"/>
+ <command name="glWindowPos3iv"/>
+ <command name="glWindowPos3s"/>
+ <command name="glWindowPos3sv"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 1.5 features removed from GL 3.2">
+ <enum name="GL_VERTEX_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_NORMAL_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_INDEX_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_WEIGHT_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_FOG_COORD_SRC"/>
+ <enum name="GL_FOG_COORD"/>
+ <enum name="GL_CURRENT_FOG_COORD"/>
+ <enum name="GL_FOG_COORD_ARRAY_TYPE"/>
+ <enum name="GL_FOG_COORD_ARRAY_STRIDE"/>
+ <enum name="GL_FOG_COORD_ARRAY_POINTER"/>
+ <enum name="GL_FOG_COORD_ARRAY"/>
+ <enum name="GL_FOG_COORD_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_SRC0_RGB"/>
+ <enum name="GL_SRC1_RGB"/>
+ <enum name="GL_SRC2_RGB"/>
+ <enum name="GL_SRC0_ALPHA"/>
+ <enum name="GL_SRC2_ALPHA"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 2.0 features removed from GL 3.2">
+ <enum name="GL_VERTEX_PROGRAM_TWO_SIDE"/>
+ <enum name="GL_POINT_SPRITE"/>
+ <enum name="GL_COORD_REPLACE"/>
+ <enum name="GL_MAX_TEXTURE_COORDS"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 2.1 features removed from GL 3.2">
+ <enum name="GL_CURRENT_RASTER_SECONDARY_COLOR"/>
+ <enum name="GL_SLUMINANCE_ALPHA"/>
+ <enum name="GL_SLUMINANCE8_ALPHA8"/>
+ <enum name="GL_SLUMINANCE"/>
+ <enum name="GL_SLUMINANCE8"/>
+ <enum name="GL_COMPRESSED_SLUMINANCE"/>
+ <enum name="GL_COMPRESSED_SLUMINANCE_ALPHA"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 3.0 features removed from GL 3.2">
+ <enum name="GL_CLAMP_VERTEX_COLOR"/>
+ <enum name="GL_CLAMP_FRAGMENT_COLOR"/>
+ <enum name="GL_ALPHA_INTEGER"/>
+ <enum name="GL_TEXTURE_LUMINANCE_TYPE"/>
+ <enum name="GL_TEXTURE_INTENSITY_TYPE"/>
+ </remove>
+ <!-- Deprecated (not removed) in OpenGL 3.2 core;
+ deprecate tag not defined/supported yet
+ <deprecate profile="core">
+ <enum name="GL_MAX_VARYING_FLOATS"/>
+ <enum name="GL_MAX_VARYING_COMPONENTS"/>
+ </deprecate>
+ -->
+ </feature>
+ <feature api="gl" name="GL_VERSION_3_3" number="3.3">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR"/>
+ </require>
+ <require comment="Reuse ARB_blend_func_extended">
+ <enum name="GL_SRC1_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC1_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC1_ALPHA"/>
+ <enum name="GL_MAX_DUAL_SOURCE_DRAW_BUFFERS"/>
+ <command name="glBindFragDataLocationIndexed"/>
+ <command name="glGetFragDataIndex"/>
+ </require>
+ <require comment="Reuse ARB_explicit_attrib_location (none)">
+ </require>
+ <require comment="Reuse ARB_occlusion_query2">
+ <enum name="GL_ANY_SAMPLES_PASSED"/>
+ </require>
+ <require comment="Reuse ARB_sampler_objects">
+ <enum name="GL_SAMPLER_BINDING"/>
+ <command name="glGenSamplers"/>
+ <command name="glDeleteSamplers"/>
+ <command name="glIsSampler"/>
+ <command name="glBindSampler"/>
+ <command name="glSamplerParameteri"/>
+ <command name="glSamplerParameteriv"/>
+ <command name="glSamplerParameterf"/>
+ <command name="glSamplerParameterfv"/>
+ <command name="glSamplerParameterIiv"/>
+ <command name="glSamplerParameterIuiv"/>
+ <command name="glGetSamplerParameteriv"/>
+ <command name="glGetSamplerParameterIiv"/>
+ <command name="glGetSamplerParameterfv"/>
+ <command name="glGetSamplerParameterIuiv"/>
+ </require>
+ <require comment="Reuse ARB_shader_bit_encoding (none)">
+ </require>
+ <require comment="Reuse ARB_texture_rgb10_a2ui">
+ <enum name="GL_RGB10_A2UI"/>
+ </require>
+ <require comment="Reuse ARB_texture_swizzle">
+ <enum name="GL_TEXTURE_SWIZZLE_R"/>
+ <enum name="GL_TEXTURE_SWIZZLE_G"/>
+ <enum name="GL_TEXTURE_SWIZZLE_B"/>
+ <enum name="GL_TEXTURE_SWIZZLE_A"/>
+ <enum name="GL_TEXTURE_SWIZZLE_RGBA"/>
+ </require>
+ <require comment="Reuse ARB_timer_query">
+ <enum name="GL_TIME_ELAPSED"/>
+ <enum name="GL_TIMESTAMP"/>
+ <command name="glQueryCounter"/>
+ <command name="glGetQueryObjecti64v"/>
+ <command name="glGetQueryObjectui64v"/>
+ </require>
+ <require comment="Reuse ARB_vertex_type_2_10_10_10_rev">
+ <enum name="GL_INT_2_10_10_10_REV"/>
+ <command name="glVertexAttribDivisor"/>
+ <command name="glVertexAttribP1ui"/>
+ <command name="glVertexAttribP1uiv"/>
+ <command name="glVertexAttribP2ui"/>
+ <command name="glVertexAttribP2uiv"/>
+ <command name="glVertexAttribP3ui"/>
+ <command name="glVertexAttribP3uiv"/>
+ <command name="glVertexAttribP4ui"/>
+ <command name="glVertexAttribP4uiv"/>
+ </require>
+ <require profile="compatibility" comment="Reuse ARB_vertex_type_2_10_10_10_rev compatibility profile">
+ <command name="glVertexP2ui"/>
+ <command name="glVertexP2uiv"/>
+ <command name="glVertexP3ui"/>
+ <command name="glVertexP3uiv"/>
+ <command name="glVertexP4ui"/>
+ <command name="glVertexP4uiv"/>
+ <command name="glTexCoordP1ui"/>
+ <command name="glTexCoordP1uiv"/>
+ <command name="glTexCoordP2ui"/>
+ <command name="glTexCoordP2uiv"/>
+ <command name="glTexCoordP3ui"/>
+ <command name="glTexCoordP3uiv"/>
+ <command name="glTexCoordP4ui"/>
+ <command name="glTexCoordP4uiv"/>
+ <command name="glMultiTexCoordP1ui"/>
+ <command name="glMultiTexCoordP1uiv"/>
+ <command name="glMultiTexCoordP2ui"/>
+ <command name="glMultiTexCoordP2uiv"/>
+ <command name="glMultiTexCoordP3ui"/>
+ <command name="glMultiTexCoordP3uiv"/>
+ <command name="glMultiTexCoordP4ui"/>
+ <command name="glMultiTexCoordP4uiv"/>
+ <command name="glNormalP3ui"/>
+ <command name="glNormalP3uiv"/>
+ <command name="glColorP3ui"/>
+ <command name="glColorP3uiv"/>
+ <command name="glColorP4ui"/>
+ <command name="glColorP4uiv"/>
+ <command name="glSecondaryColorP3ui"/>
+ <command name="glSecondaryColorP3uiv"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_4_0" number="4.0">
+ <require>
+ <enum name="GL_SAMPLE_SHADING"/>
+ <enum name="GL_MIN_SAMPLE_SHADING_VALUE"/>
+ <enum name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET"/>
+ <enum name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY"/>
+ <enum name="GL_PROXY_TEXTURE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_SAMPLER_CUBE_MAP_ARRAY"/>
+ <enum name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW"/>
+ <enum name="GL_INT_SAMPLER_CUBE_MAP_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY"/>
+ <command name="glMinSampleShading"/>
+ <command name="glBlendEquationi"/>
+ <command name="glBlendEquationSeparatei"/>
+ <command name="glBlendFunci"/>
+ <command name="glBlendFuncSeparatei"/>
+ </require>
+ <require comment="Reuse ARB_draw_buffers_blend (none)">
+ </require>
+ <require comment="Reuse ARB_draw_indirect">
+ <enum name="GL_DRAW_INDIRECT_BUFFER"/>
+ <enum name="GL_DRAW_INDIRECT_BUFFER_BINDING"/>
+ <command name="glDrawArraysIndirect"/>
+ <command name="glDrawElementsIndirect"/>
+ </require>
+ <require comment="Reuse ARB_gpu_shader5">
+ <enum name="GL_GEOMETRY_SHADER_INVOCATIONS"/>
+ <enum name="GL_MAX_GEOMETRY_SHADER_INVOCATIONS"/>
+ <enum name="GL_MIN_FRAGMENT_INTERPOLATION_OFFSET"/>
+ <enum name="GL_MAX_FRAGMENT_INTERPOLATION_OFFSET"/>
+ <enum name="GL_FRAGMENT_INTERPOLATION_OFFSET_BITS"/>
+ <enum name="GL_MAX_VERTEX_STREAMS"/>
+ </require>
+ <require comment="Reuse ARB_gpu_shader_fp64">
+ <enum name="GL_DOUBLE_VEC2"/>
+ <enum name="GL_DOUBLE_VEC3"/>
+ <enum name="GL_DOUBLE_VEC4"/>
+ <enum name="GL_DOUBLE_MAT2"/>
+ <enum name="GL_DOUBLE_MAT3"/>
+ <enum name="GL_DOUBLE_MAT4"/>
+ <enum name="GL_DOUBLE_MAT2x3"/>
+ <enum name="GL_DOUBLE_MAT2x4"/>
+ <enum name="GL_DOUBLE_MAT3x2"/>
+ <enum name="GL_DOUBLE_MAT3x4"/>
+ <enum name="GL_DOUBLE_MAT4x2"/>
+ <enum name="GL_DOUBLE_MAT4x3"/>
+ <command name="glUniform1d"/>
+ <command name="glUniform2d"/>
+ <command name="glUniform3d"/>
+ <command name="glUniform4d"/>
+ <command name="glUniform1dv"/>
+ <command name="glUniform2dv"/>
+ <command name="glUniform3dv"/>
+ <command name="glUniform4dv"/>
+ <command name="glUniformMatrix2dv"/>
+ <command name="glUniformMatrix3dv"/>
+ <command name="glUniformMatrix4dv"/>
+ <command name="glUniformMatrix2x3dv"/>
+ <command name="glUniformMatrix2x4dv"/>
+ <command name="glUniformMatrix3x2dv"/>
+ <command name="glUniformMatrix3x4dv"/>
+ <command name="glUniformMatrix4x2dv"/>
+ <command name="glUniformMatrix4x3dv"/>
+ <command name="glGetUniformdv"/>
+ </require>
+ <require comment="Reuse ARB_shader_subroutine">
+ <enum name="GL_ACTIVE_SUBROUTINES"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_UNIFORMS"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_MAX_LENGTH"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH"/>
+ <enum name="GL_MAX_SUBROUTINES"/>
+ <enum name="GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS"/>
+ <enum name="GL_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum name="GL_COMPATIBLE_SUBROUTINES"/>
+ <command name="glGetSubroutineUniformLocation"/>
+ <command name="glGetSubroutineIndex"/>
+ <command name="glGetActiveSubroutineUniformiv"/>
+ <command name="glGetActiveSubroutineUniformName"/>
+ <command name="glGetActiveSubroutineName"/>
+ <command name="glUniformSubroutinesuiv"/>
+ <command name="glGetUniformSubroutineuiv"/>
+ <command name="glGetProgramStageiv"/>
+ </require>
+ <require comment="Reuse ARB_tessellation_shader">
+ <enum name="GL_PATCHES"/>
+ <enum name="GL_PATCH_VERTICES"/>
+ <enum name="GL_PATCH_DEFAULT_INNER_LEVEL"/>
+ <enum name="GL_PATCH_DEFAULT_OUTER_LEVEL"/>
+ <enum name="GL_TESS_CONTROL_OUTPUT_VERTICES"/>
+ <enum name="GL_TESS_GEN_MODE"/>
+ <enum name="GL_TESS_GEN_SPACING"/>
+ <enum name="GL_TESS_GEN_VERTEX_ORDER"/>
+ <enum name="GL_TESS_GEN_POINT_MODE"/>
+ <enum name="GL_ISOLINES"/>
+ <enum name="GL_QUADS"/>
+ <enum name="GL_FRACTIONAL_ODD"/>
+ <enum name="GL_FRACTIONAL_EVEN"/>
+ <enum name="GL_MAX_PATCH_VERTICES"/>
+ <enum name="GL_MAX_TESS_GEN_LEVEL"/>
+ <enum name="GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_PATCH_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_TESS_CONTROL_INPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_TESS_CONTROL_SHADER"/>
+ <command name="glPatchParameteri"/>
+ <command name="glPatchParameterfv"/>
+ </require>
+ <require comment="Reuse ARB_texture_buffer_object_rgb32 (none)">
+ </require>
+ <require comment="Reuse ARB_texture_cube_map_array (none)">
+ </require>
+ <require comment="Reuse ARB_texture_gather (none)">
+ </require>
+ <require comment="Reuse ARB_texture_query_lod (none)">
+ </require>
+ <require comment="Reuse ARB_transform_feedback2">
+ <enum name="GL_TRANSFORM_FEEDBACK"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BINDING"/>
+ <command name="glBindTransformFeedback"/>
+ <command name="glDeleteTransformFeedbacks"/>
+ <command name="glGenTransformFeedbacks"/>
+ <command name="glIsTransformFeedback"/>
+ <command name="glPauseTransformFeedback"/>
+ <command name="glResumeTransformFeedback"/>
+ <command name="glDrawTransformFeedback"/>
+ </require>
+ <require comment="Reuse ARB_transform_feedback3">
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_BUFFERS"/>
+ <enum name="GL_MAX_VERTEX_STREAMS"/>
+ <command name="glDrawTransformFeedbackStream"/>
+ <command name="glBeginQueryIndexed"/>
+ <command name="glEndQueryIndexed"/>
+ <command name="glGetQueryIndexediv"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_4_1" number="4.1">
+ <require comment="Reuse tokens from ARB_ES2_compatibility">
+ <enum name="GL_FIXED"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_TYPE"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_FORMAT"/>
+ <enum name="GL_LOW_FLOAT"/>
+ <enum name="GL_MEDIUM_FLOAT"/>
+ <enum name="GL_HIGH_FLOAT"/>
+ <enum name="GL_LOW_INT"/>
+ <enum name="GL_MEDIUM_INT"/>
+ <enum name="GL_HIGH_INT"/>
+ <enum name="GL_SHADER_COMPILER"/>
+ <enum name="GL_SHADER_BINARY_FORMATS"/>
+ <enum name="GL_NUM_SHADER_BINARY_FORMATS"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_VECTORS"/>
+ <enum name="GL_MAX_VARYING_VECTORS"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_VECTORS"/>
+ <enum name="GL_RGB565"/>
+ </require>
+ <require comment="Reuse tokens from ARB_get_program_binary">
+ <enum name="GL_PROGRAM_BINARY_RETRIEVABLE_HINT"/>
+ <enum name="GL_PROGRAM_BINARY_LENGTH"/>
+ <enum name="GL_NUM_PROGRAM_BINARY_FORMATS"/>
+ <enum name="GL_PROGRAM_BINARY_FORMATS"/>
+ </require>
+ <require comment="Reuse tokens from ARB_separate_shader_objects">
+ <enum name="GL_VERTEX_SHADER_BIT"/>
+ <enum name="GL_FRAGMENT_SHADER_BIT"/>
+ <enum name="GL_GEOMETRY_SHADER_BIT"/>
+ <enum name="GL_TESS_CONTROL_SHADER_BIT"/>
+ <enum name="GL_TESS_EVALUATION_SHADER_BIT"/>
+ <enum name="GL_ALL_SHADER_BITS"/>
+ <enum name="GL_PROGRAM_SEPARABLE"/>
+ <enum name="GL_ACTIVE_PROGRAM"/>
+ <enum name="GL_PROGRAM_PIPELINE_BINDING"/>
+ </require>
+ <require comment="Reuse tokens from ARB_shader_precision (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already">
+ </require>
+ <require comment="Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already">
+ <enum name="GL_MAX_VIEWPORTS"/>
+ <enum name="GL_VIEWPORT_SUBPIXEL_BITS"/>
+ <enum name="GL_VIEWPORT_BOUNDS_RANGE"/>
+ <enum name="GL_LAYER_PROVOKING_VERTEX"/>
+ <enum name="GL_VIEWPORT_INDEX_PROVOKING_VERTEX"/>
+ <enum name="GL_UNDEFINED_VERTEX"/>
+ </require>
+ <require comment="Reuse commands from ARB_ES2_compatibility">
+ <command name="glReleaseShaderCompiler"/>
+ <command name="glShaderBinary"/>
+ <command name="glGetShaderPrecisionFormat"/>
+ <command name="glDepthRangef"/>
+ <command name="glClearDepthf"/>
+ </require>
+ <require comment="Reuse commands from ARB_get_program_binary">
+ <command name="glGetProgramBinary"/>
+ <command name="glProgramBinary"/>
+ <command name="glProgramParameteri"/>
+ </require>
+ <require comment="Reuse commands from ARB_separate_shader_objects">
+ <command name="glUseProgramStages"/>
+ <command name="glActiveShaderProgram"/>
+ <command name="glCreateShaderProgramv"/>
+ <command name="glBindProgramPipeline"/>
+ <command name="glDeleteProgramPipelines"/>
+ <command name="glGenProgramPipelines"/>
+ <command name="glIsProgramPipeline"/>
+ <command name="glGetProgramPipelineiv"/>
+ <command name="glProgramUniform1i"/>
+ <command name="glProgramUniform1iv"/>
+ <command name="glProgramUniform1f"/>
+ <command name="glProgramUniform1fv"/>
+ <command name="glProgramUniform1d"/>
+ <command name="glProgramUniform1dv"/>
+ <command name="glProgramUniform1ui"/>
+ <command name="glProgramUniform1uiv"/>
+ <command name="glProgramUniform2i"/>
+ <command name="glProgramUniform2iv"/>
+ <command name="glProgramUniform2f"/>
+ <command name="glProgramUniform2fv"/>
+ <command name="glProgramUniform2d"/>
+ <command name="glProgramUniform2dv"/>
+ <command name="glProgramUniform2ui"/>
+ <command name="glProgramUniform2uiv"/>
+ <command name="glProgramUniform3i"/>
+ <command name="glProgramUniform3iv"/>
+ <command name="glProgramUniform3f"/>
+ <command name="glProgramUniform3fv"/>
+ <command name="glProgramUniform3d"/>
+ <command name="glProgramUniform3dv"/>
+ <command name="glProgramUniform3ui"/>
+ <command name="glProgramUniform3uiv"/>
+ <command name="glProgramUniform4i"/>
+ <command name="glProgramUniform4iv"/>
+ <command name="glProgramUniform4f"/>
+ <command name="glProgramUniform4fv"/>
+ <command name="glProgramUniform4d"/>
+ <command name="glProgramUniform4dv"/>
+ <command name="glProgramUniform4ui"/>
+ <command name="glProgramUniform4uiv"/>
+ <command name="glProgramUniformMatrix2fv"/>
+ <command name="glProgramUniformMatrix3fv"/>
+ <command name="glProgramUniformMatrix4fv"/>
+ <command name="glProgramUniformMatrix2dv"/>
+ <command name="glProgramUniformMatrix3dv"/>
+ <command name="glProgramUniformMatrix4dv"/>
+ <command name="glProgramUniformMatrix2x3fv"/>
+ <command name="glProgramUniformMatrix3x2fv"/>
+ <command name="glProgramUniformMatrix2x4fv"/>
+ <command name="glProgramUniformMatrix4x2fv"/>
+ <command name="glProgramUniformMatrix3x4fv"/>
+ <command name="glProgramUniformMatrix4x3fv"/>
+ <command name="glProgramUniformMatrix2x3dv"/>
+ <command name="glProgramUniformMatrix3x2dv"/>
+ <command name="glProgramUniformMatrix2x4dv"/>
+ <command name="glProgramUniformMatrix4x2dv"/>
+ <command name="glProgramUniformMatrix3x4dv"/>
+ <command name="glProgramUniformMatrix4x3dv"/>
+ <command name="glValidateProgramPipeline"/>
+ <command name="glGetProgramPipelineInfoLog"/>
+ </require>
+ <require comment="Reuse commands from ARB_shader_precision (none)">
+ </require>
+ <require comment="Reuse commands from ARB_vertex_attrib_64bit">
+ <command name="glVertexAttribL1d"/>
+ <command name="glVertexAttribL2d"/>
+ <command name="glVertexAttribL3d"/>
+ <command name="glVertexAttribL4d"/>
+ <command name="glVertexAttribL1dv"/>
+ <command name="glVertexAttribL2dv"/>
+ <command name="glVertexAttribL3dv"/>
+ <command name="glVertexAttribL4dv"/>
+ <command name="glVertexAttribLPointer"/>
+ <command name="glGetVertexAttribLdv"/>
+ </require>
+ <require comment="Reuse commands from ARB_viewport_array">
+ <command name="glViewportArrayv"/>
+ <command name="glViewportIndexedf"/>
+ <command name="glViewportIndexedfv"/>
+ <command name="glScissorArrayv"/>
+ <command name="glScissorIndexed"/>
+ <command name="glScissorIndexedv"/>
+ <command name="glDepthRangeArrayv"/>
+ <command name="glDepthRangeIndexed"/>
+ <command name="glGetFloati_v"/>
+ <command name="glGetDoublei_v"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_4_2" number="4.2">
+ <require>
+ </require>
+ <require comment="Reuse tokens from ARB_base_instance (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_shading_language_420pack (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_transform_feedback_instanced (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_compressed_texture_pixel_storage">
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_WIDTH"/>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_DEPTH"/>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_SIZE"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_WIDTH"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_DEPTH"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_SIZE"/>
+ </require>
+ <require comment="Reuse tokens from ARB_conservative_depth (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_internalformat_query">
+ <enum name="GL_NUM_SAMPLE_COUNTS"/>
+ </require>
+ <require comment="Reuse tokens from ARB_map_buffer_alignment">
+ <enum name="GL_MIN_MAP_BUFFER_ALIGNMENT"/>
+ </require>
+ <require comment="Reuse tokens from ARB_shader_atomic_counters">
+ <enum name="GL_ATOMIC_COUNTER_BUFFER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_BINDING"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_START"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_VERTEX_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_GEOMETRY_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_FRAGMENT_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_COMBINED_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum name="GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS"/>
+ <enum name="GL_ACTIVE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX"/>
+ <enum name="GL_UNSIGNED_INT_ATOMIC_COUNTER"/>
+ </require>
+ <require comment="Reuse tokens from ARB_shader_image_load_store">
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_ELEMENT_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_UNIFORM_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_FETCH_BARRIER_BIT"/>
+ <enum name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"/>
+ <enum name="GL_COMMAND_BARRIER_BIT"/>
+ <enum name="GL_PIXEL_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_BUFFER_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_FRAMEBUFFER_BARRIER_BIT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT"/>
+ <enum name="GL_ATOMIC_COUNTER_BARRIER_BIT"/>
+ <enum name="GL_ALL_BARRIER_BITS"/>
+ <enum name="GL_MAX_IMAGE_UNITS"/>
+ <enum name="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS"/>
+ <enum name="GL_IMAGE_BINDING_NAME"/>
+ <enum name="GL_IMAGE_BINDING_LEVEL"/>
+ <enum name="GL_IMAGE_BINDING_LAYERED"/>
+ <enum name="GL_IMAGE_BINDING_LAYER"/>
+ <enum name="GL_IMAGE_BINDING_ACCESS"/>
+ <enum name="GL_IMAGE_1D"/>
+ <enum name="GL_IMAGE_2D"/>
+ <enum name="GL_IMAGE_3D"/>
+ <enum name="GL_IMAGE_2D_RECT"/>
+ <enum name="GL_IMAGE_CUBE"/>
+ <enum name="GL_IMAGE_BUFFER"/>
+ <enum name="GL_IMAGE_1D_ARRAY"/>
+ <enum name="GL_IMAGE_2D_ARRAY"/>
+ <enum name="GL_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_IMAGE_2D_MULTISAMPLE"/>
+ <enum name="GL_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_INT_IMAGE_1D"/>
+ <enum name="GL_INT_IMAGE_2D"/>
+ <enum name="GL_INT_IMAGE_3D"/>
+ <enum name="GL_INT_IMAGE_2D_RECT"/>
+ <enum name="GL_INT_IMAGE_CUBE"/>
+ <enum name="GL_INT_IMAGE_BUFFER"/>
+ <enum name="GL_INT_IMAGE_1D_ARRAY"/>
+ <enum name="GL_INT_IMAGE_2D_ARRAY"/>
+ <enum name="GL_INT_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_INT_IMAGE_2D_MULTISAMPLE"/>
+ <enum name="GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_1D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_3D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_RECT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_BUFFER"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_1D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_MAX_IMAGE_SAMPLES"/>
+ <enum name="GL_IMAGE_BINDING_FORMAT"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_TYPE"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS"/>
+ <enum name="GL_MAX_VERTEX_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_GEOMETRY_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_FRAGMENT_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_COMBINED_IMAGE_UNIFORMS"/>
+ </require>
+ <require comment="Reuse tokens from ARB_shading_language_packing (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_texture_storage">
+ <enum name="GL_TEXTURE_IMMUTABLE_FORMAT"/>
+ </require>
+ <require comment="Reuse commands from ARB_base_instance">
+ <command name="glDrawArraysInstancedBaseInstance"/>
+ <command name="glDrawElementsInstancedBaseInstance"/>
+ <command name="glDrawElementsInstancedBaseVertexBaseInstance"/>
+ </require>
+ <require comment="Reuse commands from ARB_compressed_texture_pixel_storage (none)">
+ </require>
+ <require comment="Reuse commands from ARB_conservative_depth (none)">
+ </require>
+ <require comment="Reuse commands from ARB_internalformat_query">
+ <command name="glGetInternalformativ"/>
+ </require>
+ <require comment="Reuse commands from ARB_map_buffer_alignment (none)">
+ </require>
+ <require comment="Reuse commands from ARB_shader_atomic_counters">
+ <command name="glGetActiveAtomicCounterBufferiv"/>
+ </require>
+ <require comment="Reuse commands from ARB_shader_image_load_store">
+ <command name="glBindImageTexture"/>
+ <command name="glMemoryBarrier"/>
+ </require>
+ <require comment="Reuse commands from ARB_shading_language_420pack (none)">
+ </require>
+ <require comment="Reuse commands from ARB_shading_language_packing (none)">
+ </require>
+ <require comment="Reuse commands from ARB_texture_storage">
+ <command name="glTexStorage1D"/>
+ <command name="glTexStorage2D"/>
+ <command name="glTexStorage3D"/>
+ </require>
+ <require comment="Reuse commands from ARB_transform_feedback_instanced">
+ <command name="glDrawTransformFeedbackInstanced"/>
+ <command name="glDrawTransformFeedbackStreamInstanced"/>
+ </require>
+ <!-- Deprecated in OpenGL 4.2 core;
+ deprecate tag not defined/supported yet
+ <deprecate profile="core">
+ <enum name="GL_NUM_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_COMPRESSED_TEXTURE_FORMATS"/>
+ </deprecate>
+ -->
+ </feature>
+ <feature api="gl" name="GL_VERSION_4_3" number="4.3">
+ <require>
+ <enum name="GL_NUM_SHADING_LANGUAGE_VERSIONS"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_LONG"/>
+ </require>
+ <require comment="Reuse tokens from ARB_arrays_of_arrays (none, GLSL only)">
+ </require>
+ <require comment="Reuse tokens from ARB_fragment_layer_viewport (none, GLSL only)">
+ </require>
+ <require comment="Reuse tokens from ARB_shader_image_size (none, GLSL only)">
+ </require>
+ <require comment="Reuse tokens from ARB_ES3_compatibility">
+ <enum name="GL_COMPRESSED_RGB8_ETC2"/>
+ <enum name="GL_COMPRESSED_SRGB8_ETC2"/>
+ <enum name="GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum name="GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum name="GL_COMPRESSED_RGBA8_ETC2_EAC"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"/>
+ <enum name="GL_COMPRESSED_R11_EAC"/>
+ <enum name="GL_COMPRESSED_SIGNED_R11_EAC"/>
+ <enum name="GL_COMPRESSED_RG11_EAC"/>
+ <enum name="GL_COMPRESSED_SIGNED_RG11_EAC"/>
+ <enum name="GL_PRIMITIVE_RESTART_FIXED_INDEX"/>
+ <enum name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE"/>
+ <enum name="GL_MAX_ELEMENT_INDEX"/>
+ </require>
+ <require comment="Reuse tokens from ARB_clear_buffer_object (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_compute_shader">
+ <enum name="GL_COMPUTE_SHADER"/>
+ <enum name="GL_MAX_COMPUTE_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_COMPUTE_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_COMPUTE_SHARED_MEMORY_SIZE"/>
+ <enum name="GL_MAX_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_COMPUTE_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS"/>
+ <enum name="GL_MAX_COMPUTE_WORK_GROUP_COUNT"/>
+ <enum name="GL_MAX_COMPUTE_WORK_GROUP_SIZE"/>
+ <enum name="GL_COMPUTE_WORK_GROUP_SIZE"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum name="GL_DISPATCH_INDIRECT_BUFFER"/>
+ <enum name="GL_DISPATCH_INDIRECT_BUFFER_BINDING"/>
+ </require>
+ <require comment="Reuse tokens from ARB_copy_image (none)">
+ </require>
+ <require comment="Reuse tokens from KHR_debug">
+ <enum name="GL_DEBUG_OUTPUT_SYNCHRONOUS"/>
+ <enum name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH"/>
+ <enum name="GL_DEBUG_CALLBACK_FUNCTION"/>
+ <enum name="GL_DEBUG_CALLBACK_USER_PARAM"/>
+ <enum name="GL_DEBUG_SOURCE_API"/>
+ <enum name="GL_DEBUG_SOURCE_WINDOW_SYSTEM"/>
+ <enum name="GL_DEBUG_SOURCE_SHADER_COMPILER"/>
+ <enum name="GL_DEBUG_SOURCE_THIRD_PARTY"/>
+ <enum name="GL_DEBUG_SOURCE_APPLICATION"/>
+ <enum name="GL_DEBUG_SOURCE_OTHER"/>
+ <enum name="GL_DEBUG_TYPE_ERROR"/>
+ <enum name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR"/>
+ <enum name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR"/>
+ <enum name="GL_DEBUG_TYPE_PORTABILITY"/>
+ <enum name="GL_DEBUG_TYPE_PERFORMANCE"/>
+ <enum name="GL_DEBUG_TYPE_OTHER"/>
+ <enum name="GL_MAX_DEBUG_MESSAGE_LENGTH"/>
+ <enum name="GL_MAX_DEBUG_LOGGED_MESSAGES"/>
+ <enum name="GL_DEBUG_LOGGED_MESSAGES"/>
+ <enum name="GL_DEBUG_SEVERITY_HIGH"/>
+ <enum name="GL_DEBUG_SEVERITY_MEDIUM"/>
+ <enum name="GL_DEBUG_SEVERITY_LOW"/>
+ <enum name="GL_DEBUG_TYPE_MARKER"/>
+ <enum name="GL_DEBUG_TYPE_PUSH_GROUP"/>
+ <enum name="GL_DEBUG_TYPE_POP_GROUP"/>
+ <enum name="GL_DEBUG_SEVERITY_NOTIFICATION"/>
+ <enum name="GL_MAX_DEBUG_GROUP_STACK_DEPTH"/>
+ <enum name="GL_DEBUG_GROUP_STACK_DEPTH"/>
+ <enum name="GL_BUFFER"/>
+ <enum name="GL_SHADER"/>
+ <enum name="GL_PROGRAM"/>
+ <enum name="GL_VERTEX_ARRAY"/>
+ <enum name="GL_QUERY"/>
+ <enum name="GL_PROGRAM_PIPELINE"/>
+ <enum name="GL_SAMPLER"/>
+ <enum name="GL_MAX_LABEL_LENGTH"/>
+ <enum name="GL_DEBUG_OUTPUT"/>
+ <enum name="GL_CONTEXT_FLAG_DEBUG_BIT"/>
+ </require>
+ <require comment="Reuse tokens from ARB_explicit_uniform_location">
+ <enum name="GL_MAX_UNIFORM_LOCATIONS"/>
+ </require>
+ <require comment="Reuse tokens from ARB_framebuffer_no_attachments">
+ <enum name="GL_FRAMEBUFFER_DEFAULT_WIDTH"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_HEIGHT"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_LAYERS"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_SAMPLES"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS"/>
+ <enum name="GL_MAX_FRAMEBUFFER_WIDTH"/>
+ <enum name="GL_MAX_FRAMEBUFFER_HEIGHT"/>
+ <enum name="GL_MAX_FRAMEBUFFER_LAYERS"/>
+ <enum name="GL_MAX_FRAMEBUFFER_SAMPLES"/>
+ </require>
+ <require comment="Reuse tokens from ARB_internalformat_query2">
+ <enum name="GL_INTERNALFORMAT_SUPPORTED"/>
+ <enum name="GL_INTERNALFORMAT_PREFERRED"/>
+ <enum name="GL_INTERNALFORMAT_RED_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_GREEN_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_BLUE_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_ALPHA_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_DEPTH_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_STENCIL_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_SHARED_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_RED_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_GREEN_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_BLUE_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_ALPHA_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_DEPTH_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_STENCIL_TYPE"/>
+ <enum name="GL_MAX_WIDTH"/>
+ <enum name="GL_MAX_HEIGHT"/>
+ <enum name="GL_MAX_DEPTH"/>
+ <enum name="GL_MAX_LAYERS"/>
+ <enum name="GL_MAX_COMBINED_DIMENSIONS"/>
+ <enum name="GL_COLOR_COMPONENTS"/>
+ <enum name="GL_DEPTH_COMPONENTS"/>
+ <enum name="GL_STENCIL_COMPONENTS"/>
+ <enum name="GL_COLOR_RENDERABLE"/>
+ <enum name="GL_DEPTH_RENDERABLE"/>
+ <enum name="GL_STENCIL_RENDERABLE"/>
+ <enum name="GL_FRAMEBUFFER_RENDERABLE"/>
+ <enum name="GL_FRAMEBUFFER_RENDERABLE_LAYERED"/>
+ <enum name="GL_FRAMEBUFFER_BLEND"/>
+ <enum name="GL_READ_PIXELS"/>
+ <enum name="GL_READ_PIXELS_FORMAT"/>
+ <enum name="GL_READ_PIXELS_TYPE"/>
+ <enum name="GL_TEXTURE_IMAGE_FORMAT"/>
+ <enum name="GL_TEXTURE_IMAGE_TYPE"/>
+ <enum name="GL_GET_TEXTURE_IMAGE_FORMAT"/>
+ <enum name="GL_GET_TEXTURE_IMAGE_TYPE"/>
+ <enum name="GL_MIPMAP"/>
+ <enum name="GL_MANUAL_GENERATE_MIPMAP"/>
+ <enum name="GL_AUTO_GENERATE_MIPMAP"/>
+ <enum name="GL_COLOR_ENCODING"/>
+ <enum name="GL_SRGB_READ"/>
+ <enum name="GL_SRGB_WRITE"/>
+ <enum name="GL_FILTER"/>
+ <enum name="GL_VERTEX_TEXTURE"/>
+ <enum name="GL_TESS_CONTROL_TEXTURE"/>
+ <enum name="GL_TESS_EVALUATION_TEXTURE"/>
+ <enum name="GL_GEOMETRY_TEXTURE"/>
+ <enum name="GL_FRAGMENT_TEXTURE"/>
+ <enum name="GL_COMPUTE_TEXTURE"/>
+ <enum name="GL_TEXTURE_SHADOW"/>
+ <enum name="GL_TEXTURE_GATHER"/>
+ <enum name="GL_TEXTURE_GATHER_SHADOW"/>
+ <enum name="GL_SHADER_IMAGE_LOAD"/>
+ <enum name="GL_SHADER_IMAGE_STORE"/>
+ <enum name="GL_SHADER_IMAGE_ATOMIC"/>
+ <enum name="GL_IMAGE_TEXEL_SIZE"/>
+ <enum name="GL_IMAGE_COMPATIBILITY_CLASS"/>
+ <enum name="GL_IMAGE_PIXEL_FORMAT"/>
+ <enum name="GL_IMAGE_PIXEL_TYPE"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE"/>
+ <enum name="GL_TEXTURE_COMPRESSED_BLOCK_WIDTH"/>
+ <enum name="GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum name="GL_TEXTURE_COMPRESSED_BLOCK_SIZE"/>
+ <enum name="GL_CLEAR_BUFFER"/>
+ <enum name="GL_TEXTURE_VIEW"/>
+ <enum name="GL_VIEW_COMPATIBILITY_CLASS"/>
+ <enum name="GL_FULL_SUPPORT"/>
+ <enum name="GL_CAVEAT_SUPPORT"/>
+ <enum name="GL_IMAGE_CLASS_4_X_32"/>
+ <enum name="GL_IMAGE_CLASS_2_X_32"/>
+ <enum name="GL_IMAGE_CLASS_1_X_32"/>
+ <enum name="GL_IMAGE_CLASS_4_X_16"/>
+ <enum name="GL_IMAGE_CLASS_2_X_16"/>
+ <enum name="GL_IMAGE_CLASS_1_X_16"/>
+ <enum name="GL_IMAGE_CLASS_4_X_8"/>
+ <enum name="GL_IMAGE_CLASS_2_X_8"/>
+ <enum name="GL_IMAGE_CLASS_1_X_8"/>
+ <enum name="GL_IMAGE_CLASS_11_11_10"/>
+ <enum name="GL_IMAGE_CLASS_10_10_10_2"/>
+ <enum name="GL_VIEW_CLASS_128_BITS"/>
+ <enum name="GL_VIEW_CLASS_96_BITS"/>
+ <enum name="GL_VIEW_CLASS_64_BITS"/>
+ <enum name="GL_VIEW_CLASS_48_BITS"/>
+ <enum name="GL_VIEW_CLASS_32_BITS"/>
+ <enum name="GL_VIEW_CLASS_24_BITS"/>
+ <enum name="GL_VIEW_CLASS_16_BITS"/>
+ <enum name="GL_VIEW_CLASS_8_BITS"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT1_RGB"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT1_RGBA"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT3_RGBA"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT5_RGBA"/>
+ <enum name="GL_VIEW_CLASS_RGTC1_RED"/>
+ <enum name="GL_VIEW_CLASS_RGTC2_RG"/>
+ <enum name="GL_VIEW_CLASS_BPTC_UNORM"/>
+ <enum name="GL_VIEW_CLASS_BPTC_FLOAT"/>
+ </require>
+ <require comment="Reuse tokens from ARB_invalidate_subdata (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_multi_draw_indirect (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_program_interface_query">
+ <enum name="GL_UNIFORM"/>
+ <enum name="GL_UNIFORM_BLOCK"/>
+ <enum name="GL_PROGRAM_INPUT"/>
+ <enum name="GL_PROGRAM_OUTPUT"/>
+ <enum name="GL_BUFFER_VARIABLE"/>
+ <enum name="GL_SHADER_STORAGE_BLOCK"/>
+ <enum name="GL_VERTEX_SUBROUTINE"/>
+ <enum name="GL_TESS_CONTROL_SUBROUTINE"/>
+ <enum name="GL_TESS_EVALUATION_SUBROUTINE"/>
+ <enum name="GL_GEOMETRY_SUBROUTINE"/>
+ <enum name="GL_FRAGMENT_SUBROUTINE"/>
+ <enum name="GL_COMPUTE_SUBROUTINE"/>
+ <enum name="GL_VERTEX_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_TESS_CONTROL_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_TESS_EVALUATION_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_GEOMETRY_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_FRAGMENT_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_COMPUTE_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYING"/>
+ <enum name="GL_ACTIVE_RESOURCES"/>
+ <enum name="GL_MAX_NAME_LENGTH"/>
+ <enum name="GL_MAX_NUM_ACTIVE_VARIABLES"/>
+ <enum name="GL_MAX_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum name="GL_NAME_LENGTH"/>
+ <enum name="GL_TYPE"/>
+ <enum name="GL_ARRAY_SIZE"/>
+ <enum name="GL_OFFSET"/>
+ <enum name="GL_BLOCK_INDEX"/>
+ <enum name="GL_ARRAY_STRIDE"/>
+ <enum name="GL_MATRIX_STRIDE"/>
+ <enum name="GL_IS_ROW_MAJOR"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_INDEX"/>
+ <enum name="GL_BUFFER_BINDING"/>
+ <enum name="GL_BUFFER_DATA_SIZE"/>
+ <enum name="GL_NUM_ACTIVE_VARIABLES"/>
+ <enum name="GL_ACTIVE_VARIABLES"/>
+ <enum name="GL_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum name="GL_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum name="GL_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum name="GL_TOP_LEVEL_ARRAY_SIZE"/>
+ <enum name="GL_TOP_LEVEL_ARRAY_STRIDE"/>
+ <enum name="GL_LOCATION"/>
+ <enum name="GL_LOCATION_INDEX"/>
+ <enum name="GL_IS_PER_PATCH"/>
+ </require>
+ <require comment="Reuse tokens from ARB_robust_buffer_access_behavior (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_shader_storage_buffer_object">
+ <enum name="GL_SHADER_STORAGE_BUFFER"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_BINDING"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_START"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_SIZE"/>
+ <enum name="GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS"/>
+ <enum name="GL_MAX_SHADER_STORAGE_BLOCK_SIZE"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum name="GL_SHADER_STORAGE_BARRIER_BIT"/>
+ <enum name="GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES"/>
+ </require>
+ <require comment="Reuse tokens from ARB_stencil_texturing">
+ <enum name="GL_DEPTH_STENCIL_TEXTURE_MODE"/>
+ </require>
+ <require comment="Reuse tokens from ARB_texture_buffer_range">
+ <enum name="GL_TEXTURE_BUFFER_OFFSET"/>
+ <enum name="GL_TEXTURE_BUFFER_SIZE"/>
+ <enum name="GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT"/>
+ </require>
+ <require comment="Reuse tokens from ARB_texture_query_levels (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_texture_storage_multisample (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_texture_view">
+ <enum name="GL_TEXTURE_VIEW_MIN_LEVEL"/>
+ <enum name="GL_TEXTURE_VIEW_NUM_LEVELS"/>
+ <enum name="GL_TEXTURE_VIEW_MIN_LAYER"/>
+ <enum name="GL_TEXTURE_VIEW_NUM_LAYERS"/>
+ <enum name="GL_TEXTURE_IMMUTABLE_LEVELS"/>
+ </require>
+ <require comment="Reuse tokens from ARB_vertex_attrib_binding">
+ <enum name="GL_VERTEX_ATTRIB_BINDING"/>
+ <enum name="GL_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum name="GL_VERTEX_BINDING_DIVISOR"/>
+ <enum name="GL_VERTEX_BINDING_OFFSET"/>
+ <enum name="GL_VERTEX_BINDING_STRIDE"/>
+ <enum name="GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum name="GL_MAX_VERTEX_ATTRIB_BINDINGS"/>
+ </require>
+ <require comment="Reuse commands from ARB_arrays_of_arrays (none, GLSL only)">
+ </require>
+ <require comment="Reuse commands from ARB_clear_buffer_object">
+ <command name="glClearBufferData"/>
+ <command name="glClearBufferSubData"/>
+ </require>
+ <require comment="Reuse commands from ARB_compute_shader">
+ <command name="glDispatchCompute"/>
+ <command name="glDispatchComputeIndirect"/>
+ </require>
+ <require comment="Reuse commands from ARB_copy_image">
+ <command name="glCopyImageSubData"/>
+ </require>
+ <require comment="Reuse commands from ARB_ES3_compatibility (none)">
+ </require>
+ <require comment="Reuse commands from ARB_explicit_uniform_location (none)">
+ </require>
+ <require comment="Reuse commands from ARB_fragment_layer_viewport (none, GLSL only)">
+ </require>
+ <require comment="Reuse commands from ARB_framebuffer_no_attachments">
+ <command name="glFramebufferParameteri"/>
+ <command name="glGetFramebufferParameteriv"/>
+ </require>
+ <require comment="Reuse commands from ARB_internalformat_query2">
+ <command name="glGetInternalformati64v"/>
+ </require>
+ <require comment="Reuse commands from ARB_invalidate_subdata">
+ <command name="glInvalidateTexSubImage"/>
+ <command name="glInvalidateTexImage"/>
+ <command name="glInvalidateBufferSubData"/>
+ <command name="glInvalidateBufferData"/>
+ <command name="glInvalidateFramebuffer"/>
+ <command name="glInvalidateSubFramebuffer"/>
+ </require>
+ <require comment="Reuse commands from ARB_multi_draw_indirect">
+ <command name="glMultiDrawArraysIndirect"/>
+ <command name="glMultiDrawElementsIndirect"/>
+ </require>
+ <require comment="Reuse commands from ARB_program_interface_query">
+ <command name="glGetProgramInterfaceiv"/>
+ <command name="glGetProgramResourceIndex"/>
+ <command name="glGetProgramResourceName"/>
+ <command name="glGetProgramResourceiv"/>
+ <command name="glGetProgramResourceLocation"/>
+ <command name="glGetProgramResourceLocationIndex"/>
+ </require>
+ <require comment="Reuse commands from ARB_robust_buffer_access_behavior (none)">
+ </require>
+ <require comment="Reuse commands from ARB_shader_image_size (none, GLSL only)">
+ </require>
+ <require comment="Reuse commands from ARB_shader_storage_buffer_object">
+ <command name="glShaderStorageBlockBinding"/>
+ </require>
+ <require comment="Reuse commands from ARB_stencil_texturing (none)">
+ </require>
+ <require comment="Reuse commands from ARB_texture_buffer_range">
+ <command name="glTexBufferRange"/>
+ </require>
+ <require comment="Reuse commands from ARB_texture_query_levels (none)">
+ </require>
+ <require comment="Reuse commands from ARB_texture_storage_multisample">
+ <command name="glTexStorage2DMultisample"/>
+ <command name="glTexStorage3DMultisample"/>
+ </require>
+ <require comment="Reuse commands from ARB_texture_view">
+ <command name="glTextureView"/>
+ </require>
+ <require comment="Reuse commands from ARB_vertex_attrib_binding">
+ <command name="glBindVertexBuffer"/>
+ <command name="glVertexAttribFormat"/>
+ <command name="glVertexAttribIFormat"/>
+ <command name="glVertexAttribLFormat"/>
+ <command name="glVertexAttribBinding"/>
+ <command name="glVertexBindingDivisor"/>
+ </require>
+ <require comment="Reuse commands from KHR_debug (includes ARB_debug_output commands promoted to KHR without suffixes)">
+ <command name="glDebugMessageControl"/>
+ <command name="glDebugMessageInsert"/>
+ <command name="glDebugMessageCallback"/>
+ <command name="glGetDebugMessageLog"/>
+ <command name="glPushDebugGroup"/>
+ <command name="glPopDebugGroup"/>
+ <command name="glObjectLabel"/>
+ <command name="glGetObjectLabel"/>
+ <command name="glObjectPtrLabel"/>
+ <command name="glGetObjectPtrLabel"/>
+ <command name="glGetPointerv"/>
+ </require>
+ <require profile="compatibility" comment="KHR_debug functionality not supported in core profile">
+ <enum name="GL_DISPLAY_LIST"/>
+ </require>
+ <require profile="core" comment="Restore functionality removed in GL 3.2 core to GL 4.3. Needed for debug interface.">
+ <enum name="GL_STACK_UNDERFLOW"/>
+ <enum name="GL_STACK_OVERFLOW"/>
+ <command name="glGetPointerv"/>
+ </require>
+ <!-- Deprecated in OpenGL 4.3 core;
+ deprecate tag not defined/supported yet
+ <deprecate profile="core">
+ <enum name="GL_UNPACK_LSB_FIRST"/>
+ <enum name="GL_PACK_LSB_FIRST"/>
+ </deprecate>
+ -->
+ </feature>
+ <feature api="gl" name="GL_VERSION_4_4" number="4.4">
+ <require>
+ <enum name="GL_MAX_VERTEX_ATTRIB_STRIDE"/>
+ <enum name="GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED"/>
+ <enum name="GL_TEXTURE_BUFFER_BINDING"/>
+ </require>
+ <require comment="Reuse GL_ARB_buffer_storage">
+ <enum name="GL_MAP_READ_BIT"/>
+ <enum name="GL_MAP_WRITE_BIT"/>
+ <enum name="GL_MAP_PERSISTENT_BIT"/>
+ <enum name="GL_MAP_COHERENT_BIT"/>
+ <enum name="GL_DYNAMIC_STORAGE_BIT"/>
+ <enum name="GL_CLIENT_STORAGE_BIT"/>
+ <enum name="GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_BUFFER_IMMUTABLE_STORAGE"/>
+ <enum name="GL_BUFFER_STORAGE_FLAGS"/>
+ <command name="glBufferStorage"/>
+ </require>
+ <require comment="Reuse GL_ARB_clear_texture">
+ <enum name="GL_CLEAR_TEXTURE"/>
+ <command name="glClearTexImage"/>
+ <command name="glClearTexSubImage"/>
+ </require>
+ <require comment="Reuse GL_ARB_enhanced_layouts">
+ <enum name="GL_LOCATION_COMPONENT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_INDEX"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE"/>
+ </require>
+ <require comment="Reuse GL_ARB_multi_bind (none)">
+ <command name="glBindBuffersBase"/>
+ <command name="glBindBuffersRange"/>
+ <command name="glBindTextures"/>
+ <command name="glBindSamplers"/>
+ <command name="glBindImageTextures"/>
+ <command name="glBindVertexBuffers"/>
+ </require>
+ <require comment="Reuse GL_ARB_query_buffer_object">
+ <enum name="GL_QUERY_BUFFER"/>
+ <enum name="GL_QUERY_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_QUERY_BUFFER_BINDING"/>
+ <enum name="GL_QUERY_RESULT_NO_WAIT"/>
+ </require>
+ <require comment="Reuse GL_ARB_texture_mirror_clamp_to_edge">
+ <enum name="GL_MIRROR_CLAMP_TO_EDGE"/>
+ </require>
+ <require comment="Reuse GL_ARB_texture_stencil8">
+ <enum name="GL_STENCIL_INDEX"/>
+ <enum name="GL_STENCIL_INDEX8"/>
+ </require>
+ <require comment="Reuse GL_ARB_vertex_type_10f_11f_11f_rev">
+ <enum name="GL_UNSIGNED_INT_10F_11F_11F_REV"/>
+ </require>
+ </feature>
+
+ <!-- SECTION: OpenGL ES 1.0/1.1 API interface definitions. -->
+ <feature api="gles1" name="GL_VERSION_ES_CM_1_0" number="1.0">
+ <require>
+ <!-- Additional API definition macros - ES 1.0/1.1, common/common-lite all in one header -->
+ <enum name="GL_VERSION_ES_CL_1_0"/>
+ <enum name="GL_VERSION_ES_CM_1_1"/>
+ <enum name="GL_VERSION_ES_CL_1_1"/>
+ <type name="GLvoid" comment="No longer used in headers"/>
+ <enum name="GL_DEPTH_BUFFER_BIT"/>
+ <enum name="GL_STENCIL_BUFFER_BIT"/>
+ <enum name="GL_COLOR_BUFFER_BIT"/>
+ <enum name="GL_FALSE"/>
+ <enum name="GL_TRUE"/>
+ <enum name="GL_POINTS"/>
+ <enum name="GL_LINES"/>
+ <enum name="GL_LINE_LOOP"/>
+ <enum name="GL_LINE_STRIP"/>
+ <enum name="GL_TRIANGLES"/>
+ <enum name="GL_TRIANGLE_STRIP"/>
+ <enum name="GL_TRIANGLE_FAN"/>
+ <enum name="GL_NEVER"/>
+ <enum name="GL_LESS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_LEQUAL"/>
+ <enum name="GL_GREATER"/>
+ <enum name="GL_NOTEQUAL"/>
+ <enum name="GL_GEQUAL"/>
+ <enum name="GL_ALWAYS"/>
+ <enum name="GL_ZERO"/>
+ <enum name="GL_ONE"/>
+ <enum name="GL_SRC_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC_COLOR"/>
+ <enum name="GL_SRC_ALPHA"/>
+ <enum name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <enum name="GL_DST_ALPHA"/>
+ <enum name="GL_ONE_MINUS_DST_ALPHA"/>
+ <enum name="GL_DST_COLOR"/>
+ <enum name="GL_ONE_MINUS_DST_COLOR"/>
+ <enum name="GL_SRC_ALPHA_SATURATE"/>
+ <enum name="GL_CLIP_PLANE0"/>
+ <enum name="GL_CLIP_PLANE1"/>
+ <enum name="GL_CLIP_PLANE2"/>
+ <enum name="GL_CLIP_PLANE3"/>
+ <enum name="GL_CLIP_PLANE4"/>
+ <enum name="GL_CLIP_PLANE5"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_BACK"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ <enum name="GL_FOG"/>
+ <enum name="GL_LIGHTING"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_CULL_FACE"/>
+ <enum name="GL_ALPHA_TEST"/>
+ <enum name="GL_BLEND"/>
+ <enum name="GL_COLOR_LOGIC_OP"/>
+ <enum name="GL_DITHER"/>
+ <enum name="GL_STENCIL_TEST"/>
+ <enum name="GL_DEPTH_TEST"/>
+ <enum name="GL_POINT_SMOOTH"/>
+ <enum name="GL_LINE_SMOOTH"/>
+ <enum name="GL_SCISSOR_TEST"/>
+ <enum name="GL_COLOR_MATERIAL"/>
+ <enum name="GL_NORMALIZE"/>
+ <enum name="GL_RESCALE_NORMAL"/>
+ <enum name="GL_VERTEX_ARRAY"/>
+ <enum name="GL_NORMAL_ARRAY"/>
+ <enum name="GL_COLOR_ARRAY"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY"/>
+ <enum name="GL_MULTISAMPLE"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE"/>
+ <enum name="GL_SAMPLE_COVERAGE"/>
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_INVALID_ENUM"/>
+ <enum name="GL_INVALID_VALUE"/>
+ <enum name="GL_INVALID_OPERATION"/>
+ <enum name="GL_STACK_OVERFLOW"/>
+ <enum name="GL_STACK_UNDERFLOW"/>
+ <enum name="GL_OUT_OF_MEMORY"/>
+ <enum name="GL_EXP"/>
+ <enum name="GL_EXP2"/>
+ <enum name="GL_FOG_DENSITY"/>
+ <enum name="GL_FOG_START"/>
+ <enum name="GL_FOG_END"/>
+ <enum name="GL_FOG_MODE"/>
+ <enum name="GL_FOG_COLOR"/>
+ <enum name="GL_CW"/>
+ <enum name="GL_CCW"/>
+ <enum name="GL_CURRENT_COLOR"/>
+ <enum name="GL_CURRENT_NORMAL"/>
+ <enum name="GL_CURRENT_TEXTURE_COORDS"/>
+ <enum name="GL_POINT_SIZE"/>
+ <enum name="GL_POINT_SIZE_MIN"/>
+ <enum name="GL_POINT_SIZE_MAX"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE"/>
+ <enum name="GL_POINT_DISTANCE_ATTENUATION"/>
+ <enum name="GL_SMOOTH_POINT_SIZE_RANGE"/>
+ <enum name="GL_LINE_WIDTH"/>
+ <enum name="GL_SMOOTH_LINE_WIDTH_RANGE"/>
+ <enum name="GL_ALIASED_POINT_SIZE_RANGE"/>
+ <enum name="GL_ALIASED_LINE_WIDTH_RANGE"/>
+ <enum name="GL_CULL_FACE_MODE"/>
+ <enum name="GL_FRONT_FACE"/>
+ <enum name="GL_SHADE_MODEL"/>
+ <enum name="GL_DEPTH_RANGE"/>
+ <enum name="GL_DEPTH_WRITEMASK"/>
+ <enum name="GL_DEPTH_CLEAR_VALUE"/>
+ <enum name="GL_DEPTH_FUNC"/>
+ <enum name="GL_STENCIL_CLEAR_VALUE"/>
+ <enum name="GL_STENCIL_FUNC"/>
+ <enum name="GL_STENCIL_VALUE_MASK"/>
+ <enum name="GL_STENCIL_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_PASS"/>
+ <enum name="GL_STENCIL_REF"/>
+ <enum name="GL_STENCIL_WRITEMASK"/>
+ <enum name="GL_MATRIX_MODE"/>
+ <enum name="GL_VIEWPORT"/>
+ <enum name="GL_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MODELVIEW_MATRIX"/>
+ <enum name="GL_PROJECTION_MATRIX"/>
+ <enum name="GL_TEXTURE_MATRIX"/>
+ <enum name="GL_ALPHA_TEST_FUNC"/>
+ <enum name="GL_ALPHA_TEST_REF"/>
+ <enum name="GL_BLEND_DST"/>
+ <enum name="GL_BLEND_SRC"/>
+ <enum name="GL_LOGIC_OP_MODE"/>
+ <enum name="GL_SCISSOR_BOX"/>
+ <enum name="GL_COLOR_CLEAR_VALUE"/>
+ <enum name="GL_COLOR_WRITEMASK"/>
+ <enum name="GL_MAX_LIGHTS"/>
+ <enum name="GL_MAX_CLIP_PLANES"/>
+ <enum name="GL_MAX_TEXTURE_SIZE"/>
+ <enum name="GL_MAX_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_MAX_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_MAX_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MAX_VIEWPORT_DIMS"/>
+ <enum name="GL_MAX_TEXTURE_UNITS"/>
+ <enum name="GL_SUBPIXEL_BITS"/>
+ <enum name="GL_RED_BITS"/>
+ <enum name="GL_GREEN_BITS"/>
+ <enum name="GL_BLUE_BITS"/>
+ <enum name="GL_ALPHA_BITS"/>
+ <enum name="GL_DEPTH_BITS"/>
+ <enum name="GL_STENCIL_BITS"/>
+ <enum name="GL_POLYGON_OFFSET_UNITS"/>
+ <enum name="GL_POLYGON_OFFSET_FILL"/>
+ <enum name="GL_POLYGON_OFFSET_FACTOR"/>
+ <enum name="GL_TEXTURE_BINDING_2D"/>
+ <enum name="GL_VERTEX_ARRAY_SIZE"/>
+ <enum name="GL_VERTEX_ARRAY_TYPE"/>
+ <enum name="GL_VERTEX_ARRAY_STRIDE"/>
+ <enum name="GL_NORMAL_ARRAY_TYPE"/>
+ <enum name="GL_NORMAL_ARRAY_STRIDE"/>
+ <enum name="GL_COLOR_ARRAY_SIZE"/>
+ <enum name="GL_COLOR_ARRAY_TYPE"/>
+ <enum name="GL_COLOR_ARRAY_STRIDE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_SIZE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_TYPE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_STRIDE"/>
+ <enum name="GL_VERTEX_ARRAY_POINTER"/>
+ <enum name="GL_NORMAL_ARRAY_POINTER"/>
+ <enum name="GL_COLOR_ARRAY_POINTER"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
+ <enum name="GL_SAMPLE_BUFFERS"/>
+ <enum name="GL_SAMPLES"/>
+ <enum name="GL_SAMPLE_COVERAGE_VALUE"/>
+ <enum name="GL_SAMPLE_COVERAGE_INVERT"/>
+ <enum name="GL_NUM_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_DONT_CARE"/>
+ <enum name="GL_FASTEST"/>
+ <enum name="GL_NICEST"/>
+ <enum name="GL_PERSPECTIVE_CORRECTION_HINT"/>
+ <enum name="GL_POINT_SMOOTH_HINT"/>
+ <enum name="GL_LINE_SMOOTH_HINT"/>
+ <enum name="GL_FOG_HINT"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT"/>
+ <enum name="GL_LIGHT_MODEL_AMBIENT"/>
+ <enum name="GL_LIGHT_MODEL_TWO_SIDE"/>
+ <enum name="GL_AMBIENT"/>
+ <enum name="GL_DIFFUSE"/>
+ <enum name="GL_SPECULAR"/>
+ <enum name="GL_POSITION"/>
+ <enum name="GL_SPOT_DIRECTION"/>
+ <enum name="GL_SPOT_EXPONENT"/>
+ <enum name="GL_SPOT_CUTOFF"/>
+ <enum name="GL_CONSTANT_ATTENUATION"/>
+ <enum name="GL_LINEAR_ATTENUATION"/>
+ <enum name="GL_QUADRATIC_ATTENUATION"/>
+ <enum name="GL_BYTE"/>
+ <enum name="GL_UNSIGNED_BYTE"/>
+ <enum name="GL_SHORT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_FIXED"/>
+ <enum name="GL_CLEAR"/>
+ <enum name="GL_AND"/>
+ <enum name="GL_AND_REVERSE"/>
+ <enum name="GL_COPY"/>
+ <enum name="GL_AND_INVERTED"/>
+ <enum name="GL_NOOP"/>
+ <enum name="GL_XOR"/>
+ <enum name="GL_OR"/>
+ <enum name="GL_NOR"/>
+ <enum name="GL_EQUIV"/>
+ <enum name="GL_INVERT"/>
+ <enum name="GL_OR_REVERSE"/>
+ <enum name="GL_COPY_INVERTED"/>
+ <enum name="GL_OR_INVERTED"/>
+ <enum name="GL_NAND"/>
+ <enum name="GL_SET"/>
+ <enum name="GL_EMISSION"/>
+ <enum name="GL_SHININESS"/>
+ <enum name="GL_AMBIENT_AND_DIFFUSE"/>
+ <enum name="GL_MODELVIEW"/>
+ <enum name="GL_PROJECTION"/>
+ <enum name="GL_TEXTURE"/>
+ <enum name="GL_ALPHA"/>
+ <enum name="GL_RGB"/>
+ <enum name="GL_RGBA"/>
+ <enum name="GL_LUMINANCE"/>
+ <enum name="GL_LUMINANCE_ALPHA"/>
+ <enum name="GL_UNPACK_ALIGNMENT"/>
+ <enum name="GL_PACK_ALIGNMENT"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <enum name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ <enum name="GL_UNSIGNED_SHORT_5_6_5"/>
+ <enum name="GL_FLAT"/>
+ <enum name="GL_SMOOTH"/>
+ <enum name="GL_KEEP"/>
+ <enum name="GL_REPLACE"/>
+ <enum name="GL_INCR"/>
+ <enum name="GL_DECR"/>
+ <enum name="GL_VENDOR"/>
+ <enum name="GL_RENDERER"/>
+ <enum name="GL_VERSION"/>
+ <enum name="GL_EXTENSIONS"/>
+ <enum name="GL_MODULATE"/>
+ <enum name="GL_DECAL"/>
+ <enum name="GL_ADD"/>
+ <enum name="GL_TEXTURE_ENV_MODE"/>
+ <enum name="GL_TEXTURE_ENV_COLOR"/>
+ <enum name="GL_TEXTURE_ENV"/>
+ <enum name="GL_NEAREST"/>
+ <enum name="GL_LINEAR"/>
+ <enum name="GL_NEAREST_MIPMAP_NEAREST"/>
+ <enum name="GL_LINEAR_MIPMAP_NEAREST"/>
+ <enum name="GL_NEAREST_MIPMAP_LINEAR"/>
+ <enum name="GL_LINEAR_MIPMAP_LINEAR"/>
+ <enum name="GL_TEXTURE_MAG_FILTER"/>
+ <enum name="GL_TEXTURE_MIN_FILTER"/>
+ <enum name="GL_TEXTURE_WRAP_S"/>
+ <enum name="GL_TEXTURE_WRAP_T"/>
+ <enum name="GL_GENERATE_MIPMAP"/>
+ <enum name="GL_TEXTURE0"/>
+ <enum name="GL_TEXTURE1"/>
+ <enum name="GL_TEXTURE2"/>
+ <enum name="GL_TEXTURE3"/>
+ <enum name="GL_TEXTURE4"/>
+ <enum name="GL_TEXTURE5"/>
+ <enum name="GL_TEXTURE6"/>
+ <enum name="GL_TEXTURE7"/>
+ <enum name="GL_TEXTURE8"/>
+ <enum name="GL_TEXTURE9"/>
+ <enum name="GL_TEXTURE10"/>
+ <enum name="GL_TEXTURE11"/>
+ <enum name="GL_TEXTURE12"/>
+ <enum name="GL_TEXTURE13"/>
+ <enum name="GL_TEXTURE14"/>
+ <enum name="GL_TEXTURE15"/>
+ <enum name="GL_TEXTURE16"/>
+ <enum name="GL_TEXTURE17"/>
+ <enum name="GL_TEXTURE18"/>
+ <enum name="GL_TEXTURE19"/>
+ <enum name="GL_TEXTURE20"/>
+ <enum name="GL_TEXTURE21"/>
+ <enum name="GL_TEXTURE22"/>
+ <enum name="GL_TEXTURE23"/>
+ <enum name="GL_TEXTURE24"/>
+ <enum name="GL_TEXTURE25"/>
+ <enum name="GL_TEXTURE26"/>
+ <enum name="GL_TEXTURE27"/>
+ <enum name="GL_TEXTURE28"/>
+ <enum name="GL_TEXTURE29"/>
+ <enum name="GL_TEXTURE30"/>
+ <enum name="GL_TEXTURE31"/>
+ <enum name="GL_ACTIVE_TEXTURE"/>
+ <enum name="GL_CLIENT_ACTIVE_TEXTURE"/>
+ <enum name="GL_REPEAT"/>
+ <enum name="GL_CLAMP_TO_EDGE"/>
+ <enum name="GL_LIGHT0"/>
+ <enum name="GL_LIGHT1"/>
+ <enum name="GL_LIGHT2"/>
+ <enum name="GL_LIGHT3"/>
+ <enum name="GL_LIGHT4"/>
+ <enum name="GL_LIGHT5"/>
+ <enum name="GL_LIGHT6"/>
+ <enum name="GL_LIGHT7"/>
+ <enum name="GL_ARRAY_BUFFER"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER"/>
+ <enum name="GL_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_VERTEX_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_NORMAL_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_STATIC_DRAW"/>
+ <enum name="GL_DYNAMIC_DRAW"/>
+ <enum name="GL_BUFFER_SIZE"/>
+ <enum name="GL_BUFFER_USAGE"/>
+ <enum name="GL_SUBTRACT"/>
+ <enum name="GL_COMBINE"/>
+ <enum name="GL_COMBINE_RGB"/>
+ <enum name="GL_COMBINE_ALPHA"/>
+ <enum name="GL_RGB_SCALE"/>
+ <enum name="GL_ADD_SIGNED"/>
+ <enum name="GL_INTERPOLATE"/>
+ <enum name="GL_CONSTANT"/>
+ <enum name="GL_PRIMARY_COLOR"/>
+ <enum name="GL_PREVIOUS"/>
+ <enum name="GL_OPERAND0_RGB"/>
+ <enum name="GL_OPERAND1_RGB"/>
+ <enum name="GL_OPERAND2_RGB"/>
+ <enum name="GL_OPERAND0_ALPHA"/>
+ <enum name="GL_OPERAND1_ALPHA"/>
+ <enum name="GL_OPERAND2_ALPHA"/>
+ <enum name="GL_ALPHA_SCALE"/>
+ <enum name="GL_SRC0_RGB"/>
+ <enum name="GL_SRC1_RGB"/>
+ <enum name="GL_SRC2_RGB"/>
+ <enum name="GL_SRC0_ALPHA"/>
+ <enum name="GL_SRC1_ALPHA"/>
+ <enum name="GL_SRC2_ALPHA"/>
+ <enum name="GL_DOT3_RGB"/>
+ <enum name="GL_DOT3_RGBA"/>
+ </require>
+ <require profile="common">
+ <command name="glAlphaFunc"/>
+ <command name="glClearColor"/>
+ <command name="glClearDepthf"/>
+ <command name="glClipPlanef"/>
+ <command name="glColor4f"/>
+ <command name="glDepthRangef"/>
+ <command name="glFogf"/>
+ <command name="glFogfv"/>
+ <command name="glFrustumf"/>
+ <command name="glGetClipPlanef"/>
+ <command name="glGetFloatv"/>
+ <command name="glGetLightfv"/>
+ <command name="glGetMaterialfv"/>
+ <command name="glGetTexEnvfv"/>
+ <command name="glGetTexParameterfv"/>
+ <command name="glLightModelf"/>
+ <command name="glLightModelfv"/>
+ <command name="glLightf"/>
+ <command name="glLightfv"/>
+ <command name="glLineWidth"/>
+ <command name="glLoadMatrixf"/>
+ <command name="glMaterialf"/>
+ <command name="glMaterialfv"/>
+ <command name="glMultMatrixf"/>
+ <command name="glMultiTexCoord4f"/>
+ <command name="glNormal3f"/>
+ <command name="glOrthof"/>
+ <command name="glPointParameterf"/>
+ <command name="glPointParameterfv"/>
+ <command name="glPointSize"/>
+ <command name="glPolygonOffset"/>
+ <command name="glRotatef"/>
+ <command name="glScalef"/>
+ <command name="glTexEnvf"/>
+ <command name="glTexEnvfv"/>
+ <command name="glTexParameterf"/>
+ <command name="glTexParameterfv"/>
+ <command name="glTranslatef"/>
+ </require>
+ <require>
+ <command name="glActiveTexture"/>
+ <command name="glAlphaFuncx"/>
+ <command name="glBindBuffer"/>
+ <command name="glBindTexture"/>
+ <command name="glBlendFunc"/>
+ <command name="glBufferData"/>
+ <command name="glBufferSubData"/>
+ <command name="glClear"/>
+ <command name="glClearColorx"/>
+ <command name="glClearDepthx"/>
+ <command name="glClearStencil"/>
+ <command name="glClientActiveTexture"/>
+ <command name="glClipPlanex"/>
+ <command name="glColor4ub"/>
+ <command name="glColor4x"/>
+ <command name="glColorMask"/>
+ <command name="glColorPointer"/>
+ <command name="glCompressedTexImage2D"/>
+ <command name="glCompressedTexSubImage2D"/>
+ <command name="glCopyTexImage2D"/>
+ <command name="glCopyTexSubImage2D"/>
+ <command name="glCullFace"/>
+ <command name="glDeleteBuffers"/>
+ <command name="glDeleteTextures"/>
+ <command name="glDepthFunc"/>
+ <command name="glDepthMask"/>
+ <command name="glDepthRangex"/>
+ <command name="glDisable"/>
+ <command name="glDisableClientState"/>
+ <command name="glDrawArrays"/>
+ <command name="glDrawElements"/>
+ <command name="glEnable"/>
+ <command name="glEnableClientState"/>
+ <command name="glFinish"/>
+ <command name="glFlush"/>
+ <command name="glFogx"/>
+ <command name="glFogxv"/>
+ <command name="glFrontFace"/>
+ <command name="glFrustumx"/>
+ <command name="glGetBooleanv"/>
+ <command name="glGetBufferParameteriv"/>
+ <command name="glGetClipPlanex"/>
+ <command name="glGenBuffers"/>
+ <command name="glGenTextures"/>
+ <command name="glGetError"/>
+ <command name="glGetFixedv"/>
+ <command name="glGetIntegerv"/>
+ <command name="glGetLightxv"/>
+ <command name="glGetMaterialxv"/>
+ <command name="glGetPointerv"/>
+ <command name="glGetString"/>
+ <command name="glGetTexEnviv"/>
+ <command name="glGetTexEnvxv"/>
+ <command name="glGetTexParameteriv"/>
+ <command name="glGetTexParameterxv"/>
+ <command name="glHint"/>
+ <command name="glIsBuffer"/>
+ <command name="glIsEnabled"/>
+ <command name="glIsTexture"/>
+ <command name="glLightModelx"/>
+ <command name="glLightModelxv"/>
+ <command name="glLightx"/>
+ <command name="glLightxv"/>
+ <command name="glLineWidthx"/>
+ <command name="glLoadIdentity"/>
+ <command name="glLoadMatrixx"/>
+ <command name="glLogicOp"/>
+ <command name="glMaterialx"/>
+ <command name="glMaterialxv"/>
+ <command name="glMatrixMode"/>
+ <command name="glMultMatrixx"/>
+ <command name="glMultiTexCoord4x"/>
+ <command name="glNormal3x"/>
+ <command name="glNormalPointer"/>
+ <command name="glOrthox"/>
+ <command name="glPixelStorei"/>
+ <command name="glPointParameterx"/>
+ <command name="glPointParameterxv"/>
+ <command name="glPointSizex"/>
+ <command name="glPolygonOffsetx"/>
+ <command name="glPopMatrix"/>
+ <command name="glPushMatrix"/>
+ <command name="glReadPixels"/>
+ <command name="glRotatex"/>
+ <command name="glSampleCoverage"/>
+ <command name="glSampleCoveragex"/>
+ <command name="glScalex"/>
+ <command name="glScissor"/>
+ <command name="glShadeModel"/>
+ <command name="glStencilFunc"/>
+ <command name="glStencilMask"/>
+ <command name="glStencilOp"/>
+ <command name="glTexCoordPointer"/>
+ <command name="glTexEnvi"/>
+ <command name="glTexEnvx"/>
+ <command name="glTexEnviv"/>
+ <command name="glTexEnvxv"/>
+ <command name="glTexImage2D"/>
+ <command name="glTexParameteri"/>
+ <command name="glTexParameterx"/>
+ <command name="glTexParameteriv"/>
+ <command name="glTexParameterxv"/>
+ <command name="glTexSubImage2D"/>
+ <command name="glTranslatex"/>
+ <command name="glVertexPointer"/>
+ <command name="glViewport"/>
+ </require>
+ </feature>
+ <feature api="gles2" name="GL_ES_VERSION_2_0" number="2.0">
+ <require comment="Not used by the API, for compatibility with old gl2.h">
+ <type name="GLbyte"/>
+ <type name="GLclampf"/>
+ <type name="GLfixed"/>
+ <type name="GLshort"/>
+ <type name="GLushort"/>
+ <type name="GLvoid" comment="No longer used in headers"/>
+ </require>
+ <require comment="Not used by the API; put here so this type doesn't need to be declared in gl2ext.h">
+ <type name="GLsync"/>
+ <type name="GLint64"/>
+ <type name="GLuint64"/>
+ </require>
+ <require>
+ <enum name="GL_DEPTH_BUFFER_BIT"/>
+ <enum name="GL_STENCIL_BUFFER_BIT"/>
+ <enum name="GL_COLOR_BUFFER_BIT"/>
+ <enum name="GL_FALSE"/>
+ <enum name="GL_TRUE"/>
+ <enum name="GL_POINTS"/>
+ <enum name="GL_LINES"/>
+ <enum name="GL_LINE_LOOP"/>
+ <enum name="GL_LINE_STRIP"/>
+ <enum name="GL_TRIANGLES"/>
+ <enum name="GL_TRIANGLE_STRIP"/>
+ <enum name="GL_TRIANGLE_FAN"/>
+ <enum name="GL_ZERO"/>
+ <enum name="GL_ONE"/>
+ <enum name="GL_SRC_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC_COLOR"/>
+ <enum name="GL_SRC_ALPHA"/>
+ <enum name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <enum name="GL_DST_ALPHA"/>
+ <enum name="GL_ONE_MINUS_DST_ALPHA"/>
+ <enum name="GL_DST_COLOR"/>
+ <enum name="GL_ONE_MINUS_DST_COLOR"/>
+ <enum name="GL_SRC_ALPHA_SATURATE"/>
+ <enum name="GL_FUNC_ADD"/>
+ <enum name="GL_BLEND_EQUATION"/>
+ <enum name="GL_BLEND_EQUATION_RGB"/>
+ <enum name="GL_BLEND_EQUATION_ALPHA"/>
+ <enum name="GL_FUNC_SUBTRACT"/>
+ <enum name="GL_FUNC_REVERSE_SUBTRACT"/>
+ <enum name="GL_BLEND_DST_RGB"/>
+ <enum name="GL_BLEND_SRC_RGB"/>
+ <enum name="GL_BLEND_DST_ALPHA"/>
+ <enum name="GL_BLEND_SRC_ALPHA"/>
+ <enum name="GL_CONSTANT_COLOR"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_COLOR"/>
+ <enum name="GL_CONSTANT_ALPHA"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_ALPHA"/>
+ <enum name="GL_BLEND_COLOR"/>
+ <enum name="GL_ARRAY_BUFFER"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER"/>
+ <enum name="GL_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_STREAM_DRAW"/>
+ <enum name="GL_STATIC_DRAW"/>
+ <enum name="GL_DYNAMIC_DRAW"/>
+ <enum name="GL_BUFFER_SIZE"/>
+ <enum name="GL_BUFFER_USAGE"/>
+ <enum name="GL_CURRENT_VERTEX_ATTRIB"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_BACK"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_CULL_FACE"/>
+ <enum name="GL_BLEND"/>
+ <enum name="GL_DITHER"/>
+ <enum name="GL_STENCIL_TEST"/>
+ <enum name="GL_DEPTH_TEST"/>
+ <enum name="GL_SCISSOR_TEST"/>
+ <enum name="GL_POLYGON_OFFSET_FILL"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
+ <enum name="GL_SAMPLE_COVERAGE"/>
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_INVALID_ENUM"/>
+ <enum name="GL_INVALID_VALUE"/>
+ <enum name="GL_INVALID_OPERATION"/>
+ <enum name="GL_OUT_OF_MEMORY"/>
+ <enum name="GL_CW"/>
+ <enum name="GL_CCW"/>
+ <enum name="GL_LINE_WIDTH"/>
+ <enum name="GL_ALIASED_POINT_SIZE_RANGE"/>
+ <enum name="GL_ALIASED_LINE_WIDTH_RANGE"/>
+ <enum name="GL_CULL_FACE_MODE"/>
+ <enum name="GL_FRONT_FACE"/>
+ <enum name="GL_DEPTH_RANGE"/>
+ <enum name="GL_DEPTH_WRITEMASK"/>
+ <enum name="GL_DEPTH_CLEAR_VALUE"/>
+ <enum name="GL_DEPTH_FUNC"/>
+ <enum name="GL_STENCIL_CLEAR_VALUE"/>
+ <enum name="GL_STENCIL_FUNC"/>
+ <enum name="GL_STENCIL_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_PASS"/>
+ <enum name="GL_STENCIL_REF"/>
+ <enum name="GL_STENCIL_VALUE_MASK"/>
+ <enum name="GL_STENCIL_WRITEMASK"/>
+ <enum name="GL_STENCIL_BACK_FUNC"/>
+ <enum name="GL_STENCIL_BACK_FAIL"/>
+ <enum name="GL_STENCIL_BACK_PASS_DEPTH_FAIL"/>
+ <enum name="GL_STENCIL_BACK_PASS_DEPTH_PASS"/>
+ <enum name="GL_STENCIL_BACK_REF"/>
+ <enum name="GL_STENCIL_BACK_VALUE_MASK"/>
+ <enum name="GL_STENCIL_BACK_WRITEMASK"/>
+ <enum name="GL_VIEWPORT"/>
+ <enum name="GL_SCISSOR_BOX"/>
+ <enum name="GL_COLOR_CLEAR_VALUE"/>
+ <enum name="GL_COLOR_WRITEMASK"/>
+ <enum name="GL_UNPACK_ALIGNMENT"/>
+ <enum name="GL_PACK_ALIGNMENT"/>
+ <enum name="GL_MAX_TEXTURE_SIZE"/>
+ <enum name="GL_MAX_VIEWPORT_DIMS"/>
+ <enum name="GL_SUBPIXEL_BITS"/>
+ <enum name="GL_RED_BITS"/>
+ <enum name="GL_GREEN_BITS"/>
+ <enum name="GL_BLUE_BITS"/>
+ <enum name="GL_ALPHA_BITS"/>
+ <enum name="GL_DEPTH_BITS"/>
+ <enum name="GL_STENCIL_BITS"/>
+ <enum name="GL_POLYGON_OFFSET_UNITS"/>
+ <enum name="GL_POLYGON_OFFSET_FACTOR"/>
+ <enum name="GL_TEXTURE_BINDING_2D"/>
+ <enum name="GL_SAMPLE_BUFFERS"/>
+ <enum name="GL_SAMPLES"/>
+ <enum name="GL_SAMPLE_COVERAGE_VALUE"/>
+ <enum name="GL_SAMPLE_COVERAGE_INVERT"/>
+ <enum name="GL_NUM_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_DONT_CARE"/>
+ <enum name="GL_FASTEST"/>
+ <enum name="GL_NICEST"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT"/>
+ <enum name="GL_BYTE"/>
+ <enum name="GL_UNSIGNED_BYTE"/>
+ <enum name="GL_SHORT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_FIXED"/>
+ <enum name="GL_DEPTH_COMPONENT"/>
+ <enum name="GL_ALPHA"/>
+ <enum name="GL_RGB"/>
+ <enum name="GL_RGBA"/>
+ <enum name="GL_LUMINANCE"/>
+ <enum name="GL_LUMINANCE_ALPHA"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <enum name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ <enum name="GL_UNSIGNED_SHORT_5_6_5"/>
+ <enum name="GL_FRAGMENT_SHADER"/>
+ <enum name="GL_VERTEX_SHADER"/>
+ <enum name="GL_MAX_VERTEX_ATTRIBS"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_VECTORS"/>
+ <enum name="GL_MAX_VARYING_VECTORS"/>
+ <enum name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_VECTORS"/>
+ <enum name="GL_SHADER_TYPE"/>
+ <enum name="GL_DELETE_STATUS"/>
+ <enum name="GL_LINK_STATUS"/>
+ <enum name="GL_VALIDATE_STATUS"/>
+ <enum name="GL_ATTACHED_SHADERS"/>
+ <enum name="GL_ACTIVE_UNIFORMS"/>
+ <enum name="GL_ACTIVE_UNIFORM_MAX_LENGTH"/>
+ <enum name="GL_ACTIVE_ATTRIBUTES"/>
+ <enum name="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH"/>
+ <enum name="GL_SHADING_LANGUAGE_VERSION"/>
+ <enum name="GL_CURRENT_PROGRAM"/>
+ <enum name="GL_NEVER"/>
+ <enum name="GL_LESS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_LEQUAL"/>
+ <enum name="GL_GREATER"/>
+ <enum name="GL_NOTEQUAL"/>
+ <enum name="GL_GEQUAL"/>
+ <enum name="GL_ALWAYS"/>
+ <enum name="GL_KEEP"/>
+ <enum name="GL_REPLACE"/>
+ <enum name="GL_INCR"/>
+ <enum name="GL_DECR"/>
+ <enum name="GL_INVERT"/>
+ <enum name="GL_INCR_WRAP"/>
+ <enum name="GL_DECR_WRAP"/>
+ <enum name="GL_VENDOR"/>
+ <enum name="GL_RENDERER"/>
+ <enum name="GL_VERSION"/>
+ <enum name="GL_EXTENSIONS"/>
+ <enum name="GL_NEAREST"/>
+ <enum name="GL_LINEAR"/>
+ <enum name="GL_NEAREST_MIPMAP_NEAREST"/>
+ <enum name="GL_LINEAR_MIPMAP_NEAREST"/>
+ <enum name="GL_NEAREST_MIPMAP_LINEAR"/>
+ <enum name="GL_LINEAR_MIPMAP_LINEAR"/>
+ <enum name="GL_TEXTURE_MAG_FILTER"/>
+ <enum name="GL_TEXTURE_MIN_FILTER"/>
+ <enum name="GL_TEXTURE_WRAP_S"/>
+ <enum name="GL_TEXTURE_WRAP_T"/>
+ <enum name="GL_TEXTURE"/>
+ <enum name="GL_TEXTURE_CUBE_MAP"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
+ <enum name="GL_MAX_CUBE_MAP_TEXTURE_SIZE"/>
+ <enum name="GL_TEXTURE0"/>
+ <enum name="GL_TEXTURE1"/>
+ <enum name="GL_TEXTURE2"/>
+ <enum name="GL_TEXTURE3"/>
+ <enum name="GL_TEXTURE4"/>
+ <enum name="GL_TEXTURE5"/>
+ <enum name="GL_TEXTURE6"/>
+ <enum name="GL_TEXTURE7"/>
+ <enum name="GL_TEXTURE8"/>
+ <enum name="GL_TEXTURE9"/>
+ <enum name="GL_TEXTURE10"/>
+ <enum name="GL_TEXTURE11"/>
+ <enum name="GL_TEXTURE12"/>
+ <enum name="GL_TEXTURE13"/>
+ <enum name="GL_TEXTURE14"/>
+ <enum name="GL_TEXTURE15"/>
+ <enum name="GL_TEXTURE16"/>
+ <enum name="GL_TEXTURE17"/>
+ <enum name="GL_TEXTURE18"/>
+ <enum name="GL_TEXTURE19"/>
+ <enum name="GL_TEXTURE20"/>
+ <enum name="GL_TEXTURE21"/>
+ <enum name="GL_TEXTURE22"/>
+ <enum name="GL_TEXTURE23"/>
+ <enum name="GL_TEXTURE24"/>
+ <enum name="GL_TEXTURE25"/>
+ <enum name="GL_TEXTURE26"/>
+ <enum name="GL_TEXTURE27"/>
+ <enum name="GL_TEXTURE28"/>
+ <enum name="GL_TEXTURE29"/>
+ <enum name="GL_TEXTURE30"/>
+ <enum name="GL_TEXTURE31"/>
+ <enum name="GL_ACTIVE_TEXTURE"/>
+ <enum name="GL_REPEAT"/>
+ <enum name="GL_CLAMP_TO_EDGE"/>
+ <enum name="GL_MIRRORED_REPEAT"/>
+ <enum name="GL_FLOAT_VEC2"/>
+ <enum name="GL_FLOAT_VEC3"/>
+ <enum name="GL_FLOAT_VEC4"/>
+ <enum name="GL_INT_VEC2"/>
+ <enum name="GL_INT_VEC3"/>
+ <enum name="GL_INT_VEC4"/>
+ <enum name="GL_BOOL"/>
+ <enum name="GL_BOOL_VEC2"/>
+ <enum name="GL_BOOL_VEC3"/>
+ <enum name="GL_BOOL_VEC4"/>
+ <enum name="GL_FLOAT_MAT2"/>
+ <enum name="GL_FLOAT_MAT3"/>
+ <enum name="GL_FLOAT_MAT4"/>
+ <enum name="GL_SAMPLER_2D"/>
+ <enum name="GL_SAMPLER_CUBE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_STRIDE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_TYPE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_POINTER"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_TYPE"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_FORMAT"/>
+ <enum name="GL_COMPILE_STATUS"/>
+ <enum name="GL_INFO_LOG_LENGTH"/>
+ <enum name="GL_SHADER_SOURCE_LENGTH"/>
+ <enum name="GL_SHADER_COMPILER"/>
+ <enum name="GL_SHADER_BINARY_FORMATS"/>
+ <enum name="GL_NUM_SHADER_BINARY_FORMATS"/>
+ <enum name="GL_LOW_FLOAT"/>
+ <enum name="GL_MEDIUM_FLOAT"/>
+ <enum name="GL_HIGH_FLOAT"/>
+ <enum name="GL_LOW_INT"/>
+ <enum name="GL_MEDIUM_INT"/>
+ <enum name="GL_HIGH_INT"/>
+ <enum name="GL_FRAMEBUFFER"/>
+ <enum name="GL_RENDERBUFFER"/>
+ <enum name="GL_RGBA4"/>
+ <enum name="GL_RGB5_A1"/>
+ <enum name="GL_RGB565"/>
+ <enum name="GL_DEPTH_COMPONENT16"/>
+ <enum name="GL_STENCIL_INDEX8"/>
+ <enum name="GL_RENDERBUFFER_WIDTH"/>
+ <enum name="GL_RENDERBUFFER_HEIGHT"/>
+ <enum name="GL_RENDERBUFFER_INTERNAL_FORMAT"/>
+ <enum name="GL_RENDERBUFFER_RED_SIZE"/>
+ <enum name="GL_RENDERBUFFER_GREEN_SIZE"/>
+ <enum name="GL_RENDERBUFFER_BLUE_SIZE"/>
+ <enum name="GL_RENDERBUFFER_ALPHA_SIZE"/>
+ <enum name="GL_RENDERBUFFER_DEPTH_SIZE"/>
+ <enum name="GL_RENDERBUFFER_STENCIL_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"/>
+ <enum name="GL_COLOR_ATTACHMENT0"/>
+ <enum name="GL_DEPTH_ATTACHMENT"/>
+ <enum name="GL_STENCIL_ATTACHMENT"/>
+ <enum name="GL_NONE"/>
+ <enum name="GL_FRAMEBUFFER_COMPLETE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS"/>
+ <enum name="GL_FRAMEBUFFER_UNSUPPORTED"/>
+ <enum name="GL_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_RENDERBUFFER_BINDING"/>
+ <enum name="GL_MAX_RENDERBUFFER_SIZE"/>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION"/>
+ <command name="glActiveTexture"/>
+ <command name="glAttachShader"/>
+ <command name="glBindAttribLocation"/>
+ <command name="glBindBuffer"/>
+ <command name="glBindFramebuffer"/>
+ <command name="glBindRenderbuffer"/>
+ <command name="glBindTexture"/>
+ <command name="glBlendColor"/>
+ <command name="glBlendEquation"/>
+ <command name="glBlendEquationSeparate"/>
+ <command name="glBlendFunc"/>
+ <command name="glBlendFuncSeparate"/>
+ <command name="glBufferData"/>
+ <command name="glBufferSubData"/>
+ <command name="glCheckFramebufferStatus"/>
+ <command name="glClear"/>
+ <command name="glClearColor"/>
+ <command name="glClearDepthf"/>
+ <command name="glClearStencil"/>
+ <command name="glColorMask"/>
+ <command name="glCompileShader"/>
+ <command name="glCompressedTexImage2D"/>
+ <command name="glCompressedTexSubImage2D"/>
+ <command name="glCopyTexImage2D"/>
+ <command name="glCopyTexSubImage2D"/>
+ <command name="glCreateProgram"/>
+ <command name="glCreateShader"/>
+ <command name="glCullFace"/>
+ <command name="glDeleteBuffers"/>
+ <command name="glDeleteFramebuffers"/>
+ <command name="glDeleteProgram"/>
+ <command name="glDeleteRenderbuffers"/>
+ <command name="glDeleteShader"/>
+ <command name="glDeleteTextures"/>
+ <command name="glDepthFunc"/>
+ <command name="glDepthMask"/>
+ <command name="glDepthRangef"/>
+ <command name="glDetachShader"/>
+ <command name="glDisable"/>
+ <command name="glDisableVertexAttribArray"/>
+ <command name="glDrawArrays"/>
+ <command name="glDrawElements"/>
+ <command name="glEnable"/>
+ <command name="glEnableVertexAttribArray"/>
+ <command name="glFinish"/>
+ <command name="glFlush"/>
+ <command name="glFramebufferRenderbuffer"/>
+ <command name="glFramebufferTexture2D"/>
+ <command name="glFrontFace"/>
+ <command name="glGenBuffers"/>
+ <command name="glGenerateMipmap"/>
+ <command name="glGenFramebuffers"/>
+ <command name="glGenRenderbuffers"/>
+ <command name="glGenTextures"/>
+ <command name="glGetActiveAttrib"/>
+ <command name="glGetActiveUniform"/>
+ <command name="glGetAttachedShaders"/>
+ <command name="glGetAttribLocation"/>
+ <command name="glGetBooleanv"/>
+ <command name="glGetBufferParameteriv"/>
+ <command name="glGetError"/>
+ <command name="glGetFloatv"/>
+ <command name="glGetFramebufferAttachmentParameteriv"/>
+ <command name="glGetIntegerv"/>
+ <command name="glGetProgramiv"/>
+ <command name="glGetProgramInfoLog"/>
+ <command name="glGetRenderbufferParameteriv"/>
+ <command name="glGetShaderiv"/>
+ <command name="glGetShaderInfoLog"/>
+ <command name="glGetShaderPrecisionFormat"/>
+ <command name="glGetShaderSource"/>
+ <command name="glGetString"/>
+ <command name="glGetTexParameterfv"/>
+ <command name="glGetTexParameteriv"/>
+ <command name="glGetUniformfv"/>
+ <command name="glGetUniformiv"/>
+ <command name="glGetUniformLocation"/>
+ <command name="glGetVertexAttribfv"/>
+ <command name="glGetVertexAttribiv"/>
+ <command name="glGetVertexAttribPointerv"/>
+ <command name="glHint"/>
+ <command name="glIsBuffer"/>
+ <command name="glIsEnabled"/>
+ <command name="glIsFramebuffer"/>
+ <command name="glIsProgram"/>
+ <command name="glIsRenderbuffer"/>
+ <command name="glIsShader"/>
+ <command name="glIsTexture"/>
+ <command name="glLineWidth"/>
+ <command name="glLinkProgram"/>
+ <command name="glPixelStorei"/>
+ <command name="glPolygonOffset"/>
+ <command name="glReadPixels"/>
+ <command name="glReleaseShaderCompiler"/>
+ <command name="glRenderbufferStorage"/>
+ <command name="glSampleCoverage"/>
+ <command name="glScissor"/>
+ <command name="glShaderBinary"/>
+ <command name="glShaderSource"/>
+ <command name="glStencilFunc"/>
+ <command name="glStencilFuncSeparate"/>
+ <command name="glStencilMask"/>
+ <command name="glStencilMaskSeparate"/>
+ <command name="glStencilOp"/>
+ <command name="glStencilOpSeparate"/>
+ <command name="glTexImage2D"/>
+ <command name="glTexParameterf"/>
+ <command name="glTexParameterfv"/>
+ <command name="glTexParameteri"/>
+ <command name="glTexParameteriv"/>
+ <command name="glTexSubImage2D"/>
+ <command name="glUniform1f"/>
+ <command name="glUniform1fv"/>
+ <command name="glUniform1i"/>
+ <command name="glUniform1iv"/>
+ <command name="glUniform2f"/>
+ <command name="glUniform2fv"/>
+ <command name="glUniform2i"/>
+ <command name="glUniform2iv"/>
+ <command name="glUniform3f"/>
+ <command name="glUniform3fv"/>
+ <command name="glUniform3i"/>
+ <command name="glUniform3iv"/>
+ <command name="glUniform4f"/>
+ <command name="glUniform4fv"/>
+ <command name="glUniform4i"/>
+ <command name="glUniform4iv"/>
+ <command name="glUniformMatrix2fv"/>
+ <command name="glUniformMatrix3fv"/>
+ <command name="glUniformMatrix4fv"/>
+ <command name="glUseProgram"/>
+ <command name="glValidateProgram"/>
+ <command name="glVertexAttrib1f"/>
+ <command name="glVertexAttrib1fv"/>
+ <command name="glVertexAttrib2f"/>
+ <command name="glVertexAttrib2fv"/>
+ <command name="glVertexAttrib3f"/>
+ <command name="glVertexAttrib3fv"/>
+ <command name="glVertexAttrib4f"/>
+ <command name="glVertexAttrib4fv"/>
+ <command name="glVertexAttribPointer"/>
+ <command name="glViewport"/>
+ </require>
+ </feature>
+ <feature api="gles2" name="GL_ES_VERSION_3_0" number="3.0">
+ <require comment="Not used by the API, for compatibility with old gl2.h">
+ <type name="GLhalf"/>
+ </require>
+ <require>
+ <enum name="GL_READ_BUFFER"/>
+ <enum name="GL_UNPACK_ROW_LENGTH"/>
+ <enum name="GL_UNPACK_SKIP_ROWS"/>
+ <enum name="GL_UNPACK_SKIP_PIXELS"/>
+ <enum name="GL_PACK_ROW_LENGTH"/>
+ <enum name="GL_PACK_SKIP_ROWS"/>
+ <enum name="GL_PACK_SKIP_PIXELS"/>
+ <enum name="GL_COLOR"/>
+ <enum name="GL_DEPTH"/>
+ <enum name="GL_STENCIL"/>
+ <enum name="GL_RED"/>
+ <enum name="GL_RGB8"/>
+ <enum name="GL_RGBA8"/>
+ <enum name="GL_RGB10_A2"/>
+ <enum name="GL_TEXTURE_BINDING_3D"/>
+ <enum name="GL_UNPACK_SKIP_IMAGES"/>
+ <enum name="GL_UNPACK_IMAGE_HEIGHT"/>
+ <enum name="GL_TEXTURE_3D"/>
+ <enum name="GL_TEXTURE_WRAP_R"/>
+ <enum name="GL_MAX_3D_TEXTURE_SIZE"/>
+ <enum name="GL_UNSIGNED_INT_2_10_10_10_REV"/>
+ <enum name="GL_MAX_ELEMENTS_VERTICES"/>
+ <enum name="GL_MAX_ELEMENTS_INDICES"/>
+ <enum name="GL_TEXTURE_MIN_LOD"/>
+ <enum name="GL_TEXTURE_MAX_LOD"/>
+ <enum name="GL_TEXTURE_BASE_LEVEL"/>
+ <enum name="GL_TEXTURE_MAX_LEVEL"/>
+ <enum name="GL_MIN"/>
+ <enum name="GL_MAX"/>
+ <enum name="GL_DEPTH_COMPONENT24"/>
+ <enum name="GL_MAX_TEXTURE_LOD_BIAS"/>
+ <enum name="GL_TEXTURE_COMPARE_MODE"/>
+ <enum name="GL_TEXTURE_COMPARE_FUNC"/>
+ <enum name="GL_CURRENT_QUERY"/>
+ <enum name="GL_QUERY_RESULT"/>
+ <enum name="GL_QUERY_RESULT_AVAILABLE"/>
+ <enum name="GL_BUFFER_MAPPED"/>
+ <enum name="GL_BUFFER_MAP_POINTER"/>
+ <enum name="GL_STREAM_READ"/>
+ <enum name="GL_STREAM_COPY"/>
+ <enum name="GL_STATIC_READ"/>
+ <enum name="GL_STATIC_COPY"/>
+ <enum name="GL_DYNAMIC_READ"/>
+ <enum name="GL_DYNAMIC_COPY"/>
+ <enum name="GL_MAX_DRAW_BUFFERS"/>
+ <enum name="GL_DRAW_BUFFER0"/>
+ <enum name="GL_DRAW_BUFFER1"/>
+ <enum name="GL_DRAW_BUFFER2"/>
+ <enum name="GL_DRAW_BUFFER3"/>
+ <enum name="GL_DRAW_BUFFER4"/>
+ <enum name="GL_DRAW_BUFFER5"/>
+ <enum name="GL_DRAW_BUFFER6"/>
+ <enum name="GL_DRAW_BUFFER7"/>
+ <enum name="GL_DRAW_BUFFER8"/>
+ <enum name="GL_DRAW_BUFFER9"/>
+ <enum name="GL_DRAW_BUFFER10"/>
+ <enum name="GL_DRAW_BUFFER11"/>
+ <enum name="GL_DRAW_BUFFER12"/>
+ <enum name="GL_DRAW_BUFFER13"/>
+ <enum name="GL_DRAW_BUFFER14"/>
+ <enum name="GL_DRAW_BUFFER15"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum name="GL_SAMPLER_3D"/>
+ <enum name="GL_SAMPLER_2D_SHADOW"/>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT"/>
+ <enum name="GL_PIXEL_PACK_BUFFER"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER"/>
+ <enum name="GL_PIXEL_PACK_BUFFER_BINDING"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER_BINDING"/>
+ <enum name="GL_FLOAT_MAT2x3"/>
+ <enum name="GL_FLOAT_MAT2x4"/>
+ <enum name="GL_FLOAT_MAT3x2"/>
+ <enum name="GL_FLOAT_MAT3x4"/>
+ <enum name="GL_FLOAT_MAT4x2"/>
+ <enum name="GL_FLOAT_MAT4x3"/>
+ <enum name="GL_SRGB"/>
+ <enum name="GL_SRGB8"/>
+ <enum name="GL_SRGB8_ALPHA8"/>
+ <enum name="GL_COMPARE_REF_TO_TEXTURE"/>
+ <enum name="GL_MAJOR_VERSION"/>
+ <enum name="GL_MINOR_VERSION"/>
+ <enum name="GL_NUM_EXTENSIONS"/>
+ <enum name="GL_RGBA32F"/>
+ <enum name="GL_RGB32F"/>
+ <enum name="GL_RGBA16F"/>
+ <enum name="GL_RGB16F"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_INTEGER"/>
+ <enum name="GL_MAX_ARRAY_TEXTURE_LAYERS"/>
+ <enum name="GL_MIN_PROGRAM_TEXEL_OFFSET"/>
+ <enum name="GL_MAX_PROGRAM_TEXEL_OFFSET"/>
+ <enum name="GL_MAX_VARYING_COMPONENTS"/>
+ <enum name="GL_TEXTURE_2D_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_2D_ARRAY"/>
+ <enum name="GL_R11F_G11F_B10F"/>
+ <enum name="GL_UNSIGNED_INT_10F_11F_11F_REV"/>
+ <enum name="GL_RGB9_E5"/>
+ <enum name="GL_UNSIGNED_INT_5_9_9_9_REV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYINGS"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_START"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN"/>
+ <enum name="GL_RASTERIZER_DISCARD"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS"/>
+ <enum name="GL_INTERLEAVED_ATTRIBS"/>
+ <enum name="GL_SEPARATE_ATTRIBS"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING"/>
+ <enum name="GL_RGBA32UI"/>
+ <enum name="GL_RGB32UI"/>
+ <enum name="GL_RGBA16UI"/>
+ <enum name="GL_RGB16UI"/>
+ <enum name="GL_RGBA8UI"/>
+ <enum name="GL_RGB8UI"/>
+ <enum name="GL_RGBA32I"/>
+ <enum name="GL_RGB32I"/>
+ <enum name="GL_RGBA16I"/>
+ <enum name="GL_RGB16I"/>
+ <enum name="GL_RGBA8I"/>
+ <enum name="GL_RGB8I"/>
+ <enum name="GL_RED_INTEGER"/>
+ <enum name="GL_RGB_INTEGER"/>
+ <enum name="GL_RGBA_INTEGER"/>
+ <enum name="GL_SAMPLER_2D_ARRAY"/>
+ <enum name="GL_SAMPLER_2D_ARRAY_SHADOW"/>
+ <enum name="GL_SAMPLER_CUBE_SHADOW"/>
+ <enum name="GL_UNSIGNED_INT_VEC2"/>
+ <enum name="GL_UNSIGNED_INT_VEC3"/>
+ <enum name="GL_UNSIGNED_INT_VEC4"/>
+ <enum name="GL_INT_SAMPLER_2D"/>
+ <enum name="GL_INT_SAMPLER_3D"/>
+ <enum name="GL_INT_SAMPLER_CUBE"/>
+ <enum name="GL_INT_SAMPLER_2D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_3D"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_CUBE"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_ARRAY"/>
+ <enum name="GL_BUFFER_ACCESS_FLAGS"/>
+ <enum name="GL_BUFFER_MAP_LENGTH"/>
+ <enum name="GL_BUFFER_MAP_OFFSET"/>
+ <enum name="GL_DEPTH_COMPONENT32F"/>
+ <enum name="GL_DEPTH32F_STENCIL8"/>
+ <enum name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT"/>
+ <enum name="GL_FRAMEBUFFER_UNDEFINED"/>
+ <enum name="GL_DEPTH_STENCIL_ATTACHMENT"/>
+ <enum name="GL_DEPTH_STENCIL"/>
+ <enum name="GL_UNSIGNED_INT_24_8"/>
+ <enum name="GL_DEPTH24_STENCIL8"/>
+ <enum name="GL_UNSIGNED_NORMALIZED"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_READ_FRAMEBUFFER"/>
+ <enum name="GL_DRAW_FRAMEBUFFER"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_RENDERBUFFER_SAMPLES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"/>
+ <enum name="GL_MAX_COLOR_ATTACHMENTS"/>
+ <enum name="GL_COLOR_ATTACHMENT1"/>
+ <enum name="GL_COLOR_ATTACHMENT2"/>
+ <enum name="GL_COLOR_ATTACHMENT3"/>
+ <enum name="GL_COLOR_ATTACHMENT4"/>
+ <enum name="GL_COLOR_ATTACHMENT5"/>
+ <enum name="GL_COLOR_ATTACHMENT6"/>
+ <enum name="GL_COLOR_ATTACHMENT7"/>
+ <enum name="GL_COLOR_ATTACHMENT8"/>
+ <enum name="GL_COLOR_ATTACHMENT9"/>
+ <enum name="GL_COLOR_ATTACHMENT10"/>
+ <enum name="GL_COLOR_ATTACHMENT11"/>
+ <enum name="GL_COLOR_ATTACHMENT12"/>
+ <enum name="GL_COLOR_ATTACHMENT13"/>
+ <enum name="GL_COLOR_ATTACHMENT14"/>
+ <enum name="GL_COLOR_ATTACHMENT15"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"/>
+ <enum name="GL_MAX_SAMPLES"/>
+ <enum name="GL_HALF_FLOAT"/>
+ <enum name="GL_MAP_READ_BIT"/>
+ <enum name="GL_MAP_WRITE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_RANGE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_BUFFER_BIT"/>
+ <enum name="GL_MAP_FLUSH_EXPLICIT_BIT"/>
+ <enum name="GL_MAP_UNSYNCHRONIZED_BIT"/>
+ <enum name="GL_RG"/>
+ <enum name="GL_RG_INTEGER"/>
+ <enum name="GL_R8"/>
+ <enum name="GL_RG8"/>
+ <enum name="GL_R16F"/>
+ <enum name="GL_R32F"/>
+ <enum name="GL_RG16F"/>
+ <enum name="GL_RG32F"/>
+ <enum name="GL_R8I"/>
+ <enum name="GL_R8UI"/>
+ <enum name="GL_R16I"/>
+ <enum name="GL_R16UI"/>
+ <enum name="GL_R32I"/>
+ <enum name="GL_R32UI"/>
+ <enum name="GL_RG8I"/>
+ <enum name="GL_RG8UI"/>
+ <enum name="GL_RG16I"/>
+ <enum name="GL_RG16UI"/>
+ <enum name="GL_RG32I"/>
+ <enum name="GL_RG32UI"/>
+ <enum name="GL_VERTEX_ARRAY_BINDING"/>
+ <enum name="GL_R8_SNORM"/>
+ <enum name="GL_RG8_SNORM"/>
+ <enum name="GL_RGB8_SNORM"/>
+ <enum name="GL_RGBA8_SNORM"/>
+ <enum name="GL_SIGNED_NORMALIZED"/>
+ <enum name="GL_PRIMITIVE_RESTART_FIXED_INDEX"/>
+ <enum name="GL_COPY_READ_BUFFER"/>
+ <enum name="GL_COPY_WRITE_BUFFER"/>
+ <enum name="GL_COPY_READ_BUFFER_BINDING"/>
+ <enum name="GL_COPY_WRITE_BUFFER_BINDING"/>
+ <enum name="GL_UNIFORM_BUFFER"/>
+ <enum name="GL_UNIFORM_BUFFER_BINDING"/>
+ <enum name="GL_UNIFORM_BUFFER_START"/>
+ <enum name="GL_UNIFORM_BUFFER_SIZE"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_COMBINED_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_UNIFORM_BUFFER_BINDINGS"/>
+ <enum name="GL_MAX_UNIFORM_BLOCK_SIZE"/>
+ <enum name="GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum name="GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum name="GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH"/>
+ <enum name="GL_ACTIVE_UNIFORM_BLOCKS"/>
+ <enum name="GL_UNIFORM_TYPE"/>
+ <enum name="GL_UNIFORM_SIZE"/>
+ <enum name="GL_UNIFORM_NAME_LENGTH"/>
+ <enum name="GL_UNIFORM_BLOCK_INDEX"/>
+ <enum name="GL_UNIFORM_OFFSET"/>
+ <enum name="GL_UNIFORM_ARRAY_STRIDE"/>
+ <enum name="GL_UNIFORM_MATRIX_STRIDE"/>
+ <enum name="GL_UNIFORM_IS_ROW_MAJOR"/>
+ <enum name="GL_UNIFORM_BLOCK_BINDING"/>
+ <enum name="GL_UNIFORM_BLOCK_DATA_SIZE"/>
+ <enum name="GL_UNIFORM_BLOCK_NAME_LENGTH"/>
+ <enum name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS"/>
+ <enum name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_INVALID_INDEX"/>
+ <enum name="GL_MAX_VERTEX_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_FRAGMENT_INPUT_COMPONENTS"/>
+ <enum name="GL_MAX_SERVER_WAIT_TIMEOUT"/>
+ <enum name="GL_OBJECT_TYPE"/>
+ <enum name="GL_SYNC_CONDITION"/>
+ <enum name="GL_SYNC_STATUS"/>
+ <enum name="GL_SYNC_FLAGS"/>
+ <enum name="GL_SYNC_FENCE"/>
+ <enum name="GL_SYNC_GPU_COMMANDS_COMPLETE"/>
+ <enum name="GL_UNSIGNALED"/>
+ <enum name="GL_SIGNALED"/>
+ <enum name="GL_ALREADY_SIGNALED"/>
+ <enum name="GL_TIMEOUT_EXPIRED"/>
+ <enum name="GL_CONDITION_SATISFIED"/>
+ <enum name="GL_WAIT_FAILED"/>
+ <enum name="GL_SYNC_FLUSH_COMMANDS_BIT"/>
+ <enum name="GL_TIMEOUT_IGNORED"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR"/>
+ <enum name="GL_ANY_SAMPLES_PASSED"/>
+ <enum name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE"/>
+ <enum name="GL_SAMPLER_BINDING"/>
+ <enum name="GL_RGB10_A2UI"/>
+ <enum name="GL_TEXTURE_SWIZZLE_R"/>
+ <enum name="GL_TEXTURE_SWIZZLE_G"/>
+ <enum name="GL_TEXTURE_SWIZZLE_B"/>
+ <enum name="GL_TEXTURE_SWIZZLE_A"/>
+ <enum name="GL_GREEN"/>
+ <enum name="GL_BLUE"/>
+ <enum name="GL_INT_2_10_10_10_REV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_PAUSED"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_ACTIVE"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BINDING"/>
+ <enum name="GL_PROGRAM_BINARY_RETRIEVABLE_HINT"/>
+ <enum name="GL_PROGRAM_BINARY_LENGTH"/>
+ <enum name="GL_NUM_PROGRAM_BINARY_FORMATS"/>
+ <enum name="GL_PROGRAM_BINARY_FORMATS"/>
+ <enum name="GL_COMPRESSED_R11_EAC"/>
+ <enum name="GL_COMPRESSED_SIGNED_R11_EAC"/>
+ <enum name="GL_COMPRESSED_RG11_EAC"/>
+ <enum name="GL_COMPRESSED_SIGNED_RG11_EAC"/>
+ <enum name="GL_COMPRESSED_RGB8_ETC2"/>
+ <enum name="GL_COMPRESSED_SRGB8_ETC2"/>
+ <enum name="GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum name="GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum name="GL_COMPRESSED_RGBA8_ETC2_EAC"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"/>
+ <enum name="GL_TEXTURE_IMMUTABLE_FORMAT"/>
+ <enum name="GL_MAX_ELEMENT_INDEX"/>
+ <enum name="GL_NUM_SAMPLE_COUNTS"/>
+ <enum name="GL_TEXTURE_IMMUTABLE_LEVELS"/>
+ <command name="glReadBuffer"/>
+ <command name="glDrawRangeElements"/>
+ <command name="glTexImage3D"/>
+ <command name="glTexSubImage3D"/>
+ <command name="glCopyTexSubImage3D"/>
+ <command name="glCompressedTexImage3D"/>
+ <command name="glCompressedTexSubImage3D"/>
+ <command name="glGenQueries"/>
+ <command name="glDeleteQueries"/>
+ <command name="glIsQuery"/>
+ <command name="glBeginQuery"/>
+ <command name="glEndQuery"/>
+ <command name="glGetQueryiv"/>
+ <command name="glGetQueryObjectuiv"/>
+ <command name="glUnmapBuffer"/>
+ <command name="glGetBufferPointerv"/>
+ <command name="glDrawBuffers"/>
+ <command name="glUniformMatrix2x3fv"/>
+ <command name="glUniformMatrix3x2fv"/>
+ <command name="glUniformMatrix2x4fv"/>
+ <command name="glUniformMatrix4x2fv"/>
+ <command name="glUniformMatrix3x4fv"/>
+ <command name="glUniformMatrix4x3fv"/>
+ <command name="glBlitFramebuffer"/>
+ <command name="glRenderbufferStorageMultisample"/>
+ <command name="glFramebufferTextureLayer"/>
+ <command name="glMapBufferRange"/>
+ <command name="glFlushMappedBufferRange"/>
+ <command name="glBindVertexArray"/>
+ <command name="glDeleteVertexArrays"/>
+ <command name="glGenVertexArrays"/>
+ <command name="glIsVertexArray"/>
+ <command name="glGetIntegeri_v"/>
+ <command name="glBeginTransformFeedback"/>
+ <command name="glEndTransformFeedback"/>
+ <command name="glBindBufferRange"/>
+ <command name="glBindBufferBase"/>
+ <command name="glTransformFeedbackVaryings"/>
+ <command name="glGetTransformFeedbackVarying"/>
+ <command name="glVertexAttribIPointer"/>
+ <command name="glGetVertexAttribIiv"/>
+ <command name="glGetVertexAttribIuiv"/>
+ <command name="glVertexAttribI4i"/>
+ <command name="glVertexAttribI4ui"/>
+ <command name="glVertexAttribI4iv"/>
+ <command name="glVertexAttribI4uiv"/>
+ <command name="glGetUniformuiv"/>
+ <command name="glGetFragDataLocation"/>
+ <command name="glUniform1ui"/>
+ <command name="glUniform2ui"/>
+ <command name="glUniform3ui"/>
+ <command name="glUniform4ui"/>
+ <command name="glUniform1uiv"/>
+ <command name="glUniform2uiv"/>
+ <command name="glUniform3uiv"/>
+ <command name="glUniform4uiv"/>
+ <command name="glClearBufferiv"/>
+ <command name="glClearBufferuiv"/>
+ <command name="glClearBufferfv"/>
+ <command name="glClearBufferfi"/>
+ <command name="glGetStringi"/>
+ <command name="glCopyBufferSubData"/>
+ <command name="glGetUniformIndices"/>
+ <command name="glGetActiveUniformsiv"/>
+ <command name="glGetUniformBlockIndex"/>
+ <command name="glGetActiveUniformBlockiv"/>
+ <command name="glGetActiveUniformBlockName"/>
+ <command name="glUniformBlockBinding"/>
+ <command name="glDrawArraysInstanced"/>
+ <command name="glDrawElementsInstanced"/>
+ <command name="glFenceSync"/>
+ <command name="glIsSync"/>
+ <command name="glDeleteSync"/>
+ <command name="glClientWaitSync"/>
+ <command name="glWaitSync"/>
+ <command name="glGetInteger64v"/>
+ <command name="glGetSynciv"/>
+ <command name="glGetInteger64i_v"/>
+ <command name="glGetBufferParameteri64v"/>
+ <command name="glGenSamplers"/>
+ <command name="glDeleteSamplers"/>
+ <command name="glIsSampler"/>
+ <command name="glBindSampler"/>
+ <command name="glSamplerParameteri"/>
+ <command name="glSamplerParameteriv"/>
+ <command name="glSamplerParameterf"/>
+ <command name="glSamplerParameterfv"/>
+ <command name="glGetSamplerParameteriv"/>
+ <command name="glGetSamplerParameterfv"/>
+ <command name="glVertexAttribDivisor"/>
+ <command name="glBindTransformFeedback"/>
+ <command name="glDeleteTransformFeedbacks"/>
+ <command name="glGenTransformFeedbacks"/>
+ <command name="glIsTransformFeedback"/>
+ <command name="glPauseTransformFeedback"/>
+ <command name="glResumeTransformFeedback"/>
+ <command name="glGetProgramBinary"/>
+ <command name="glProgramBinary"/>
+ <command name="glProgramParameteri"/>
+ <command name="glInvalidateFramebuffer"/>
+ <command name="glInvalidateSubFramebuffer"/>
+ <command name="glTexStorage2D"/>
+ <command name="glTexStorage3D"/>
+ <command name="glGetInternalformativ"/>
+ </require>
+ </feature>
+
+ <!-- SECTION: OpenGL / OpenGL ES extension interface definitions -->
+ <extensions>
+ <extension name="GL_3DFX_multisample" supported="gl">
+ <require>
+ <enum name="GL_MULTISAMPLE_3DFX"/>
+ <enum name="GL_SAMPLE_BUFFERS_3DFX"/>
+ <enum name="GL_SAMPLES_3DFX"/>
+ <enum name="GL_MULTISAMPLE_BIT_3DFX"/>
+ </require>
+ </extension>
+ <extension name="GL_3DFX_tbuffer" supported="gl">
+ <require>
+ <command name="glTbufferMask3DFX"/>
+ </require>
+ </extension>
+ <extension name="GL_3DFX_texture_compression_FXT1" supported="gl">
+ <require>
+ <enum name="GL_COMPRESSED_RGB_FXT1_3DFX"/>
+ <enum name="GL_COMPRESSED_RGBA_FXT1_3DFX"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_blend_minmax_factor" supported="gl">
+ <require>
+ <enum name="GL_FACTOR_MIN_AMD"/>
+ <enum name="GL_FACTOR_MAX_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_compressed_3DC_texture" supported="gles1|gles2">
+ <require>
+ <enum name="GL_3DC_X_AMD"/>
+ <enum name="GL_3DC_XY_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_compressed_ATC_texture" supported="gles1|gles2">
+ <require>
+ <enum name="GL_ATC_RGB_AMD"/>
+ <enum name="GL_ATC_RGBA_EXPLICIT_ALPHA_AMD"/>
+ <enum name="GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_conservative_depth" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_AMD_debug_output" supported="gl">
+ <require>
+ <enum name="GL_MAX_DEBUG_MESSAGE_LENGTH_AMD"/>
+ <enum name="GL_MAX_DEBUG_LOGGED_MESSAGES_AMD"/>
+ <enum name="GL_DEBUG_LOGGED_MESSAGES_AMD"/>
+ <enum name="GL_DEBUG_SEVERITY_HIGH_AMD"/>
+ <enum name="GL_DEBUG_SEVERITY_MEDIUM_AMD"/>
+ <enum name="GL_DEBUG_SEVERITY_LOW_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_API_ERROR_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_DEPRECATION_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_PERFORMANCE_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_APPLICATION_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_OTHER_AMD"/>
+ <command name="glDebugMessageEnableAMD"/>
+ <command name="glDebugMessageInsertAMD"/>
+ <command name="glDebugMessageCallbackAMD"/>
+ <command name="glGetDebugMessageLogAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_depth_clamp_separate" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_CLAMP_NEAR_AMD"/>
+ <enum name="GL_DEPTH_CLAMP_FAR_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_draw_buffers_blend" supported="gl">
+ <require>
+ <command name="glBlendFuncIndexedAMD"/>
+ <command name="glBlendFuncSeparateIndexedAMD"/>
+ <command name="glBlendEquationIndexedAMD"/>
+ <command name="glBlendEquationSeparateIndexedAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_interleaved_elements" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ELEMENT_SWIZZLE_AMD"/>
+ <enum name="GL_VERTEX_ID_SWIZZLE_AMD"/>
+ <enum name="GL_RED"/>
+ <enum name="GL_GREEN"/>
+ <enum name="GL_BLUE"/>
+ <enum name="GL_ALPHA"/>
+ <enum name="GL_RG8UI"/>
+ <enum name="GL_RG16UI"/>
+ <enum name="GL_RGBA8UI"/>
+ <command name="glVertexAttribParameteriAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_multi_draw_indirect" supported="gl">
+ <require>
+ <command name="glMultiDrawArraysIndirectAMD"/>
+ <command name="glMultiDrawElementsIndirectAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_name_gen_delete" supported="gl">
+ <require>
+ <enum name="GL_DATA_BUFFER_AMD"/>
+ <enum name="GL_PERFORMANCE_MONITOR_AMD"/>
+ <enum name="GL_QUERY_OBJECT_AMD"/>
+ <enum name="GL_VERTEX_ARRAY_OBJECT_AMD"/>
+ <enum name="GL_SAMPLER_OBJECT_AMD"/>
+ <command name="glGenNamesAMD"/>
+ <command name="glDeleteNamesAMD"/>
+ <command name="glIsNameAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_performance_monitor" supported="gl|gles2">
+ <require>
+ <enum name="GL_COUNTER_TYPE_AMD"/>
+ <enum name="GL_COUNTER_RANGE_AMD"/>
+ <enum name="GL_UNSIGNED_INT64_AMD"/>
+ <enum name="GL_PERCENTAGE_AMD"/>
+ <enum name="GL_PERFMON_RESULT_AVAILABLE_AMD"/>
+ <enum name="GL_PERFMON_RESULT_SIZE_AMD"/>
+ <enum name="GL_PERFMON_RESULT_AMD"/>
+ <command name="glGetPerfMonitorGroupsAMD"/>
+ <command name="glGetPerfMonitorCountersAMD"/>
+ <command name="glGetPerfMonitorGroupStringAMD"/>
+ <command name="glGetPerfMonitorCounterStringAMD"/>
+ <command name="glGetPerfMonitorCounterInfoAMD"/>
+ <command name="glGenPerfMonitorsAMD"/>
+ <command name="glDeletePerfMonitorsAMD"/>
+ <command name="glSelectPerfMonitorCountersAMD"/>
+ <command name="glBeginPerfMonitorAMD"/>
+ <command name="glEndPerfMonitorAMD"/>
+ <command name="glGetPerfMonitorCounterDataAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_pinned_memory" supported="gl">
+ <require>
+ <enum name="GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_program_binary_Z400" supported="gles2">
+ <require>
+ <enum name="GL_Z400_BINARY_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_query_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_QUERY_BUFFER_AMD"/>
+ <enum name="GL_QUERY_BUFFER_BINDING_AMD"/>
+ <enum name="GL_QUERY_RESULT_NO_WAIT_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_sample_positions" supported="gl">
+ <require>
+ <enum name="GL_SUBSAMPLE_DISTANCE_AMD"/>
+ <command name="glSetMultisamplefvAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_seamless_cubemap_per_texture" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_CUBE_MAP_SEAMLESS"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_shader_atomic_counter_ops" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_AMD_shader_stencil_export" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_AMD_shader_trinary_minmax" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_AMD_sparse_texture" supported="gl">
+ <require>
+ <enum name="GL_VIRTUAL_PAGE_SIZE_X_AMD"/>
+ <enum name="GL_VIRTUAL_PAGE_SIZE_Y_AMD"/>
+ <enum name="GL_VIRTUAL_PAGE_SIZE_Z_AMD"/>
+ <enum name="GL_MAX_SPARSE_TEXTURE_SIZE_AMD"/>
+ <enum name="GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD"/>
+ <enum name="GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS"/>
+ <enum name="GL_MIN_SPARSE_LEVEL_AMD"/>
+ <enum name="GL_MIN_LOD_WARNING_AMD"/>
+ <enum name="GL_TEXTURE_STORAGE_SPARSE_BIT_AMD"/>
+ <command name="glTexStorageSparseAMD"/>
+ <command name="glTextureStorageSparseAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_stencil_operation_extended" supported="gl">
+ <require>
+ <enum name="GL_SET_AMD"/>
+ <enum name="GL_REPLACE_VALUE_AMD"/>
+ <enum name="GL_STENCIL_OP_VALUE_AMD"/>
+ <enum name="GL_STENCIL_BACK_OP_VALUE_AMD"/>
+ <command name="glStencilOpValueAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_texture_texture4" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_AMD_transform_feedback3_lines_triangles" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_AMD_vertex_shader_layer" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_AMD_vertex_shader_tessellator" supported="gl">
+ <require>
+ <enum name="GL_SAMPLER_BUFFER_AMD"/>
+ <enum name="GL_INT_SAMPLER_BUFFER_AMD"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD"/>
+ <enum name="GL_TESSELLATION_MODE_AMD"/>
+ <enum name="GL_TESSELLATION_FACTOR_AMD"/>
+ <enum name="GL_DISCRETE_AMD"/>
+ <enum name="GL_CONTINUOUS_AMD"/>
+ <command name="glTessellationFactorAMD"/>
+ <command name="glTessellationModeAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_vertex_shader_viewport_index" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_depth_texture" supported="gles2">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT"/>
+ <enum name="GL_DEPTH_STENCIL_OES"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_UNSIGNED_INT_24_8_OES"/>
+ <enum name="GL_DEPTH_COMPONENT16"/>
+ <enum name="GL_DEPTH_COMPONENT32_OES"/>
+ <enum name="GL_DEPTH24_STENCIL8_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_framebuffer_blit" supported="gles2">
+ <require>
+ <enum name="GL_READ_FRAMEBUFFER_ANGLE"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_ANGLE"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING_ANGLE"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING_ANGLE"/>
+ <command name="glBlitFramebufferANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_framebuffer_multisample" supported="gles2">
+ <require>
+ <enum name="GL_RENDERBUFFER_SAMPLES_ANGLE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE"/>
+ <enum name="GL_MAX_SAMPLES_ANGLE"/>
+ <command name="glRenderbufferStorageMultisampleANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_instanced_arrays" supported="gles2">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE"/>
+ <command name="glDrawArraysInstancedANGLE"/>
+ <command name="glDrawElementsInstancedANGLE"/>
+ <command name="glVertexAttribDivisorANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_pack_reverse_row_order" supported="gles2">
+ <require>
+ <enum name="GL_PACK_REVERSE_ROW_ORDER_ANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_program_binary" supported="gles2">
+ <require>
+ <enum name="GL_PROGRAM_BINARY_ANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_texture_compression_dxt3" supported="gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_texture_compression_dxt5" supported="gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_texture_usage" supported="gles2">
+ <require>
+ <enum name="GL_TEXTURE_USAGE_ANGLE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_ANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_translated_shader_source" supported="gles2">
+ <require>
+ <enum name="GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE"/>
+ <command name="glGetTranslatedShaderSourceANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_aux_depth_stencil" supported="gl">
+ <require>
+ <enum name="GL_AUX_DEPTH_STENCIL_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_client_storage" supported="gl">
+ <require>
+ <enum name="GL_UNPACK_CLIENT_STORAGE_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_copy_texture_levels" supported="gles1|gles2">
+ <require>
+ <command name="glCopyTextureLevelsAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_element_array" supported="gl">
+ <require>
+ <enum name="GL_ELEMENT_ARRAY_APPLE"/>
+ <enum name="GL_ELEMENT_ARRAY_TYPE_APPLE"/>
+ <enum name="GL_ELEMENT_ARRAY_POINTER_APPLE"/>
+ <command name="glElementPointerAPPLE"/>
+ <command name="glDrawElementArrayAPPLE"/>
+ <command name="glDrawRangeElementArrayAPPLE"/>
+ <command name="glMultiDrawElementArrayAPPLE"/>
+ <command name="glMultiDrawRangeElementArrayAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_fence" supported="gl">
+ <require>
+ <enum name="GL_DRAW_PIXELS_APPLE"/>
+ <enum name="GL_FENCE_APPLE"/>
+ <command name="glGenFencesAPPLE"/>
+ <command name="glDeleteFencesAPPLE"/>
+ <command name="glSetFenceAPPLE"/>
+ <command name="glIsFenceAPPLE"/>
+ <command name="glTestFenceAPPLE"/>
+ <command name="glFinishFenceAPPLE"/>
+ <command name="glTestObjectAPPLE"/>
+ <command name="glFinishObjectAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_float_pixels" supported="gl">
+ <require>
+ <enum name="GL_HALF_APPLE"/>
+ <enum name="GL_RGBA_FLOAT32_APPLE"/>
+ <enum name="GL_RGB_FLOAT32_APPLE"/>
+ <enum name="GL_ALPHA_FLOAT32_APPLE"/>
+ <enum name="GL_INTENSITY_FLOAT32_APPLE"/>
+ <enum name="GL_LUMINANCE_FLOAT32_APPLE"/>
+ <enum name="GL_LUMINANCE_ALPHA_FLOAT32_APPLE"/>
+ <enum name="GL_RGBA_FLOAT16_APPLE"/>
+ <enum name="GL_RGB_FLOAT16_APPLE"/>
+ <enum name="GL_ALPHA_FLOAT16_APPLE"/>
+ <enum name="GL_INTENSITY_FLOAT16_APPLE"/>
+ <enum name="GL_LUMINANCE_FLOAT16_APPLE"/>
+ <enum name="GL_LUMINANCE_ALPHA_FLOAT16_APPLE"/>
+ <enum name="GL_COLOR_FLOAT_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_flush_buffer_range" supported="gl">
+ <require>
+ <enum name="GL_BUFFER_SERIALIZED_MODIFY_APPLE"/>
+ <enum name="GL_BUFFER_FLUSHING_UNMAP_APPLE"/>
+ <command name="glBufferParameteriAPPLE"/>
+ <command name="glFlushMappedBufferRangeAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_framebuffer_multisample" supported="gles1|gles2">
+ <require>
+ <enum name="GL_RENDERBUFFER_SAMPLES_APPLE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE"/>
+ <enum name="GL_MAX_SAMPLES_APPLE"/>
+ <enum name="GL_READ_FRAMEBUFFER_APPLE"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_APPLE"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING_APPLE"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING_APPLE"/>
+ <command name="glRenderbufferStorageMultisampleAPPLE"/>
+ <command name="glResolveMultisampleFramebufferAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_object_purgeable" supported="gl">
+ <require>
+ <enum name="GL_BUFFER_OBJECT_APPLE"/>
+ <enum name="GL_RELEASED_APPLE"/>
+ <enum name="GL_VOLATILE_APPLE"/>
+ <enum name="GL_RETAINED_APPLE"/>
+ <enum name="GL_UNDEFINED_APPLE"/>
+ <enum name="GL_PURGEABLE_APPLE"/>
+ <command name="glObjectPurgeableAPPLE"/>
+ <command name="glObjectUnpurgeableAPPLE"/>
+ <command name="glGetObjectParameterivAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_rgb_422" supported="gl|gles2">
+ <require>
+ <enum name="GL_RGB_422_APPLE"/>
+ <enum name="GL_UNSIGNED_SHORT_8_8_APPLE"/>
+ <enum name="GL_UNSIGNED_SHORT_8_8_REV_APPLE"/>
+ </require>
+ <require comment="Depends on TexStorage* (EXT_texture_storage / ES 3.0 / GL 4.4 / etc.)">
+ <enum name="GL_RGB_RAW_422_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_row_bytes" supported="gl">
+ <require>
+ <enum name="GL_PACK_ROW_BYTES_APPLE"/>
+ <enum name="GL_UNPACK_ROW_BYTES_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_specular_vector" supported="gl">
+ <require>
+ <enum name="GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_sync" supported="gles1|gles2">
+ <require>
+ <enum name="GL_SYNC_OBJECT_APPLE"/>
+ <enum name="GL_MAX_SERVER_WAIT_TIMEOUT_APPLE"/>
+ <enum name="GL_OBJECT_TYPE_APPLE"/>
+ <enum name="GL_SYNC_CONDITION_APPLE"/>
+ <enum name="GL_SYNC_STATUS_APPLE"/>
+ <enum name="GL_SYNC_FLAGS_APPLE"/>
+ <enum name="GL_SYNC_FENCE_APPLE"/>
+ <enum name="GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE"/>
+ <enum name="GL_UNSIGNALED_APPLE"/>
+ <enum name="GL_SIGNALED_APPLE"/>
+ <enum name="GL_ALREADY_SIGNALED_APPLE"/>
+ <enum name="GL_TIMEOUT_EXPIRED_APPLE"/>
+ <enum name="GL_CONDITION_SATISFIED_APPLE"/>
+ <enum name="GL_WAIT_FAILED_APPLE"/>
+ <enum name="GL_SYNC_FLUSH_COMMANDS_BIT_APPLE"/>
+ <enum name="GL_TIMEOUT_IGNORED_APPLE"/>
+ <command name="glFenceSyncAPPLE"/>
+ <command name="glIsSyncAPPLE"/>
+ <command name="glDeleteSyncAPPLE"/>
+ <command name="glClientWaitSyncAPPLE"/>
+ <command name="glWaitSyncAPPLE"/>
+ <command name="glGetInteger64vAPPLE"/>
+ <command name="glGetSyncivAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_texture_2D_limited_npot" supported="gles1">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_texture_format_BGRA8888" supported="gles1|gles2">
+ <require>
+ <enum name="GL_BGRA_EXT"/>
+ </require>
+ <require comment="Depends on TexStorage* (EXT_texture_storage / ES 3.0 / GL 4.4 / etc.)">
+ <enum name="GL_BGRA8_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_texture_max_level" supported="gles1|gles2">
+ <require>
+ <enum name="GL_TEXTURE_MAX_LEVEL_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_texture_range" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_RANGE_LENGTH_APPLE"/>
+ <enum name="GL_TEXTURE_RANGE_POINTER_APPLE"/>
+ <enum name="GL_TEXTURE_STORAGE_HINT_APPLE"/>
+ <enum name="GL_STORAGE_PRIVATE_APPLE"/>
+ <enum name="GL_STORAGE_CACHED_APPLE"/>
+ <enum name="GL_STORAGE_SHARED_APPLE"/>
+ <command name="glTextureRangeAPPLE"/>
+ <command name="glGetTexParameterPointervAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_transform_hint" supported="gl">
+ <require>
+ <enum name="GL_TRANSFORM_HINT_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_vertex_array_object" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_BINDING_APPLE"/>
+ <command name="glBindVertexArrayAPPLE"/>
+ <command name="glDeleteVertexArraysAPPLE"/>
+ <command name="glGenVertexArraysAPPLE"/>
+ <command name="glIsVertexArrayAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_vertex_array_range" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_RANGE_APPLE"/>
+ <enum name="GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE"/>
+ <enum name="GL_VERTEX_ARRAY_STORAGE_HINT_APPLE"/>
+ <enum name="GL_VERTEX_ARRAY_RANGE_POINTER_APPLE"/>
+ <enum name="GL_STORAGE_CLIENT_APPLE"/>
+ <enum name="GL_STORAGE_CACHED_APPLE"/>
+ <enum name="GL_STORAGE_SHARED_APPLE"/>
+ <command name="glVertexArrayRangeAPPLE"/>
+ <command name="glFlushVertexArrayRangeAPPLE"/>
+ <command name="glVertexArrayParameteriAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_vertex_program_evaluators" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_MAP1_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP2_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE"/>
+ <command name="glEnableVertexAttribAPPLE"/>
+ <command name="glDisableVertexAttribAPPLE"/>
+ <command name="glIsVertexAttribEnabledAPPLE"/>
+ <command name="glMapVertexAttrib1dAPPLE"/>
+ <command name="glMapVertexAttrib1fAPPLE"/>
+ <command name="glMapVertexAttrib2dAPPLE"/>
+ <command name="glMapVertexAttrib2fAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_ycbcr_422" supported="gl">
+ <require>
+ <enum name="GL_YCBCR_422_APPLE"/>
+ <enum name="GL_UNSIGNED_SHORT_8_8_APPLE"/>
+ <enum name="GL_UNSIGNED_SHORT_8_8_REV_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_ES2_compatibility" supported="gl|glcore">
+ <require>
+ <enum name="GL_FIXED"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_TYPE"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_FORMAT"/>
+ <enum name="GL_LOW_FLOAT"/>
+ <enum name="GL_MEDIUM_FLOAT"/>
+ <enum name="GL_HIGH_FLOAT"/>
+ <enum name="GL_LOW_INT"/>
+ <enum name="GL_MEDIUM_INT"/>
+ <enum name="GL_HIGH_INT"/>
+ <enum name="GL_SHADER_COMPILER"/>
+ <enum name="GL_SHADER_BINARY_FORMATS"/>
+ <enum name="GL_NUM_SHADER_BINARY_FORMATS"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_VECTORS"/>
+ <enum name="GL_MAX_VARYING_VECTORS"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_VECTORS"/>
+ <enum name="GL_RGB565"/>
+ <command name="glReleaseShaderCompiler"/>
+ <command name="glShaderBinary"/>
+ <command name="glGetShaderPrecisionFormat"/>
+ <command name="glDepthRangef"/>
+ <command name="glClearDepthf"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_ES3_compatibility" supported="gl|glcore">
+ <require>
+ <enum name="GL_COMPRESSED_RGB8_ETC2"/>
+ <enum name="GL_COMPRESSED_SRGB8_ETC2"/>
+ <enum name="GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum name="GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum name="GL_COMPRESSED_RGBA8_ETC2_EAC"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"/>
+ <enum name="GL_COMPRESSED_R11_EAC"/>
+ <enum name="GL_COMPRESSED_SIGNED_R11_EAC"/>
+ <enum name="GL_COMPRESSED_RG11_EAC"/>
+ <enum name="GL_COMPRESSED_SIGNED_RG11_EAC"/>
+ <enum name="GL_PRIMITIVE_RESTART_FIXED_INDEX"/>
+ <enum name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE"/>
+ <enum name="GL_MAX_ELEMENT_INDEX"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_arrays_of_arrays" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_base_instance" supported="gl|glcore">
+ <require>
+ <command name="glDrawArraysInstancedBaseInstance"/>
+ <command name="glDrawElementsInstancedBaseInstance"/>
+ <command name="glDrawElementsInstancedBaseVertexBaseInstance"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_bindless_texture" supported="gl|glcore">
+ <require>
+ <enum name="GL_UNSIGNED_INT64_ARB"/>
+ <command name="glGetTextureHandleARB"/>
+ <command name="glGetTextureSamplerHandleARB"/>
+ <command name="glMakeTextureHandleResidentARB"/>
+ <command name="glMakeTextureHandleNonResidentARB"/>
+ <command name="glGetImageHandleARB"/>
+ <command name="glMakeImageHandleResidentARB"/>
+ <command name="glMakeImageHandleNonResidentARB"/>
+ <command name="glUniformHandleui64ARB"/>
+ <command name="glUniformHandleui64vARB"/>
+ <command name="glProgramUniformHandleui64ARB"/>
+ <command name="glProgramUniformHandleui64vARB"/>
+ <command name="glIsTextureHandleResidentARB"/>
+ <command name="glIsImageHandleResidentARB"/>
+ <command name="glVertexAttribL1ui64ARB"/>
+ <command name="glVertexAttribL1ui64vARB"/>
+ <command name="glGetVertexAttribLui64vARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_blend_func_extended" supported="gl|glcore">
+ <require>
+ <enum name="GL_SRC1_COLOR"/>
+ <enum name="GL_SRC1_ALPHA"/>
+ <enum name="GL_ONE_MINUS_SRC1_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC1_ALPHA"/>
+ <enum name="GL_MAX_DUAL_SOURCE_DRAW_BUFFERS"/>
+ <command name="glBindFragDataLocationIndexed"/>
+ <command name="glGetFragDataIndex"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_buffer_storage" supported="gl|glcore">
+ <require>
+ <enum name="GL_MAP_READ_BIT"/>
+ <enum name="GL_MAP_WRITE_BIT"/>
+ <enum name="GL_MAP_PERSISTENT_BIT"/>
+ <enum name="GL_MAP_COHERENT_BIT"/>
+ <enum name="GL_DYNAMIC_STORAGE_BIT"/>
+ <enum name="GL_CLIENT_STORAGE_BIT"/>
+ <enum name="GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_BUFFER_IMMUTABLE_STORAGE"/>
+ <enum name="GL_BUFFER_STORAGE_FLAGS"/>
+ <command name="glBufferStorage"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_cl_event" supported="gl|glcore">
+ <require>
+ <enum name="GL_SYNC_CL_EVENT_ARB"/>
+ <enum name="GL_SYNC_CL_EVENT_COMPLETE_ARB"/>
+ <command name="glCreateSyncFromCLeventARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_clear_buffer_object" supported="gl|glcore">
+ <require>
+ <command name="glClearBufferData"/>
+ <command name="glClearBufferSubData"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_clear_texture" supported="gl|glcore">
+ <require>
+ <enum name="GL_CLEAR_TEXTURE"/>
+ <command name="glClearTexImage"/>
+ <command name="glClearTexSubImage"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_color_buffer_float" supported="gl">
+ <require>
+ <enum name="GL_RGBA_FLOAT_MODE_ARB"/>
+ <enum name="GL_CLAMP_VERTEX_COLOR_ARB"/>
+ <enum name="GL_CLAMP_FRAGMENT_COLOR_ARB"/>
+ <enum name="GL_CLAMP_READ_COLOR_ARB"/>
+ <enum name="GL_FIXED_ONLY_ARB"/>
+ <command name="glClampColorARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_compatibility" supported="gl">
+ <require comment="Defines features from OpenGL 3.0 that were removed in OpenGL 3.1 - not enumerated here yet">
+ </require>
+ </extension>
+ <extension name="GL_ARB_compressed_texture_pixel_storage" supported="gl|glcore">
+ <require>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_WIDTH"/>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_DEPTH"/>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_SIZE"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_WIDTH"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_DEPTH"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_SIZE"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_compute_shader" supported="gl|glcore">
+ <require>
+ <enum name="GL_COMPUTE_SHADER"/>
+ <enum name="GL_MAX_COMPUTE_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_COMPUTE_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_COMPUTE_SHARED_MEMORY_SIZE"/>
+ <enum name="GL_MAX_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_COMPUTE_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS"/>
+ <enum name="GL_MAX_COMPUTE_WORK_GROUP_COUNT"/>
+ <enum name="GL_MAX_COMPUTE_WORK_GROUP_SIZE"/>
+ <enum name="GL_COMPUTE_WORK_GROUP_SIZE"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum name="GL_DISPATCH_INDIRECT_BUFFER"/>
+ <enum name="GL_DISPATCH_INDIRECT_BUFFER_BINDING"/>
+ <enum name="GL_COMPUTE_SHADER_BIT"/>
+ <command name="glDispatchCompute"/>
+ <command name="glDispatchComputeIndirect"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_compute_variable_group_size" supported="gl|glcore">
+ <require>
+ <enum name="GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB"/>
+ <enum name="GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB"/>
+ <enum name="GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB"/>
+ <enum name="GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB"/>
+ <command name="glDispatchComputeGroupSizeARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_conservative_depth" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_copy_buffer" supported="gl|glcore">
+ <require>
+ <enum name="GL_COPY_READ_BUFFER_BINDING"/>
+ <enum name="GL_COPY_READ_BUFFER"/>
+ <enum name="GL_COPY_WRITE_BUFFER_BINDING"/>
+ <enum name="GL_COPY_WRITE_BUFFER"/>
+ <command name="glCopyBufferSubData"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_copy_image" supported="gl|glcore">
+ <require>
+ <command name="glCopyImageSubData"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_debug_output" supported="gl|glcore">
+ <require>
+ <enum name="GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB"/>
+ <enum name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB"/>
+ <enum name="GL_DEBUG_CALLBACK_FUNCTION_ARB"/>
+ <enum name="GL_DEBUG_CALLBACK_USER_PARAM_ARB"/>
+ <enum name="GL_DEBUG_SOURCE_API_ARB"/>
+ <enum name="GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB"/>
+ <enum name="GL_DEBUG_SOURCE_SHADER_COMPILER_ARB"/>
+ <enum name="GL_DEBUG_SOURCE_THIRD_PARTY_ARB"/>
+ <enum name="GL_DEBUG_SOURCE_APPLICATION_ARB"/>
+ <enum name="GL_DEBUG_SOURCE_OTHER_ARB"/>
+ <enum name="GL_DEBUG_TYPE_ERROR_ARB"/>
+ <enum name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB"/>
+ <enum name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB"/>
+ <enum name="GL_DEBUG_TYPE_PORTABILITY_ARB"/>
+ <enum name="GL_DEBUG_TYPE_PERFORMANCE_ARB"/>
+ <enum name="GL_DEBUG_TYPE_OTHER_ARB"/>
+ <enum name="GL_MAX_DEBUG_MESSAGE_LENGTH_ARB"/>
+ <enum name="GL_MAX_DEBUG_LOGGED_MESSAGES_ARB"/>
+ <enum name="GL_DEBUG_LOGGED_MESSAGES_ARB"/>
+ <enum name="GL_DEBUG_SEVERITY_HIGH_ARB"/>
+ <enum name="GL_DEBUG_SEVERITY_MEDIUM_ARB"/>
+ <enum name="GL_DEBUG_SEVERITY_LOW_ARB"/>
+ <command name="glDebugMessageControlARB"/>
+ <command name="glDebugMessageInsertARB"/>
+ <command name="glDebugMessageCallbackARB"/>
+ <command name="glGetDebugMessageLogARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_depth_buffer_float" supported="gl|glcore">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT32F"/>
+ <enum name="GL_DEPTH32F_STENCIL8"/>
+ <enum name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_depth_clamp" supported="gl|glcore">
+ <require>
+ <enum name="GL_DEPTH_CLAMP"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_depth_texture" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT16_ARB"/>
+ <enum name="GL_DEPTH_COMPONENT24_ARB"/>
+ <enum name="GL_DEPTH_COMPONENT32_ARB"/>
+ <enum name="GL_TEXTURE_DEPTH_SIZE_ARB"/>
+ <enum name="GL_DEPTH_TEXTURE_MODE_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_draw_buffers" supported="gl">
+ <require>
+ <enum name="GL_MAX_DRAW_BUFFERS_ARB"/>
+ <enum name="GL_DRAW_BUFFER0_ARB"/>
+ <enum name="GL_DRAW_BUFFER1_ARB"/>
+ <enum name="GL_DRAW_BUFFER2_ARB"/>
+ <enum name="GL_DRAW_BUFFER3_ARB"/>
+ <enum name="GL_DRAW_BUFFER4_ARB"/>
+ <enum name="GL_DRAW_BUFFER5_ARB"/>
+ <enum name="GL_DRAW_BUFFER6_ARB"/>
+ <enum name="GL_DRAW_BUFFER7_ARB"/>
+ <enum name="GL_DRAW_BUFFER8_ARB"/>
+ <enum name="GL_DRAW_BUFFER9_ARB"/>
+ <enum name="GL_DRAW_BUFFER10_ARB"/>
+ <enum name="GL_DRAW_BUFFER11_ARB"/>
+ <enum name="GL_DRAW_BUFFER12_ARB"/>
+ <enum name="GL_DRAW_BUFFER13_ARB"/>
+ <enum name="GL_DRAW_BUFFER14_ARB"/>
+ <enum name="GL_DRAW_BUFFER15_ARB"/>
+ <command name="glDrawBuffersARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_draw_buffers_blend" supported="gl|glcore">
+ <require>
+ <command name="glBlendEquationiARB"/>
+ <command name="glBlendEquationSeparateiARB"/>
+ <command name="glBlendFunciARB"/>
+ <command name="glBlendFuncSeparateiARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_draw_elements_base_vertex" supported="gl|glcore">
+ <require>
+ <command name="glDrawElementsBaseVertex"/>
+ <command name="glDrawRangeElementsBaseVertex"/>
+ <command name="glDrawElementsInstancedBaseVertex"/>
+ <command name="glMultiDrawElementsBaseVertex"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_draw_indirect" supported="gl|glcore">
+ <require>
+ <enum name="GL_DRAW_INDIRECT_BUFFER"/>
+ <enum name="GL_DRAW_INDIRECT_BUFFER_BINDING"/>
+ <command name="glDrawArraysIndirect"/>
+ <command name="glDrawElementsIndirect"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_draw_instanced" supported="gl">
+ <require>
+ <command name="glDrawArraysInstancedARB"/>
+ <command name="glDrawElementsInstancedARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_enhanced_layouts" supported="gl|glcore">
+ <require>
+ <enum name="GL_LOCATION_COMPONENT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_INDEX"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_explicit_attrib_location" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_explicit_uniform_location" supported="gl|glcore">
+ <require>
+ <enum name="GL_MAX_UNIFORM_LOCATIONS"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_fragment_coord_conventions" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_fragment_layer_viewport" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_fragment_program" supported="gl">
+ <require>
+ <enum name="GL_FRAGMENT_PROGRAM_ARB"/>
+ <enum name="GL_PROGRAM_FORMAT_ASCII_ARB"/>
+ <enum name="GL_PROGRAM_LENGTH_ARB"/>
+ <enum name="GL_PROGRAM_FORMAT_ARB"/>
+ <enum name="GL_PROGRAM_BINDING_ARB"/>
+ <enum name="GL_PROGRAM_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_TEMPORARIES_ARB"/>
+ <enum name="GL_MAX_PROGRAM_TEMPORARIES_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_TEMPORARIES_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB"/>
+ <enum name="GL_PROGRAM_PARAMETERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_PARAMETERS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_PARAMETERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB"/>
+ <enum name="GL_PROGRAM_ATTRIBS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_ATTRIBS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_ATTRIBS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_ENV_PARAMETERS_ARB"/>
+ <enum name="GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB"/>
+ <enum name="GL_PROGRAM_ALU_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_TEX_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_TEX_INDIRECTIONS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB"/>
+ <enum name="GL_PROGRAM_STRING_ARB"/>
+ <enum name="GL_PROGRAM_ERROR_POSITION_ARB"/>
+ <enum name="GL_CURRENT_MATRIX_ARB"/>
+ <enum name="GL_TRANSPOSE_CURRENT_MATRIX_ARB"/>
+ <enum name="GL_CURRENT_MATRIX_STACK_DEPTH_ARB"/>
+ <enum name="GL_MAX_PROGRAM_MATRICES_ARB"/>
+ <enum name="GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB"/>
+ <enum name="GL_MAX_TEXTURE_COORDS_ARB"/>
+ <enum name="GL_MAX_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum name="GL_PROGRAM_ERROR_STRING_ARB"/>
+ <enum name="GL_MATRIX0_ARB"/>
+ <enum name="GL_MATRIX1_ARB"/>
+ <enum name="GL_MATRIX2_ARB"/>
+ <enum name="GL_MATRIX3_ARB"/>
+ <enum name="GL_MATRIX4_ARB"/>
+ <enum name="GL_MATRIX5_ARB"/>
+ <enum name="GL_MATRIX6_ARB"/>
+ <enum name="GL_MATRIX7_ARB"/>
+ <enum name="GL_MATRIX8_ARB"/>
+ <enum name="GL_MATRIX9_ARB"/>
+ <enum name="GL_MATRIX10_ARB"/>
+ <enum name="GL_MATRIX11_ARB"/>
+ <enum name="GL_MATRIX12_ARB"/>
+ <enum name="GL_MATRIX13_ARB"/>
+ <enum name="GL_MATRIX14_ARB"/>
+ <enum name="GL_MATRIX15_ARB"/>
+ <enum name="GL_MATRIX16_ARB"/>
+ <enum name="GL_MATRIX17_ARB"/>
+ <enum name="GL_MATRIX18_ARB"/>
+ <enum name="GL_MATRIX19_ARB"/>
+ <enum name="GL_MATRIX20_ARB"/>
+ <enum name="GL_MATRIX21_ARB"/>
+ <enum name="GL_MATRIX22_ARB"/>
+ <enum name="GL_MATRIX23_ARB"/>
+ <enum name="GL_MATRIX24_ARB"/>
+ <enum name="GL_MATRIX25_ARB"/>
+ <enum name="GL_MATRIX26_ARB"/>
+ <enum name="GL_MATRIX27_ARB"/>
+ <enum name="GL_MATRIX28_ARB"/>
+ <enum name="GL_MATRIX29_ARB"/>
+ <enum name="GL_MATRIX30_ARB"/>
+ <enum name="GL_MATRIX31_ARB"/>
+ </require>
+ <require comment="Shared with ARB_vertex_program">
+ <command name="glProgramStringARB"/>
+ <command name="glBindProgramARB"/>
+ <command name="glDeleteProgramsARB"/>
+ <command name="glGenProgramsARB"/>
+ <command name="glProgramEnvParameter4dARB"/>
+ <command name="glProgramEnvParameter4dvARB"/>
+ <command name="glProgramEnvParameter4fARB"/>
+ <command name="glProgramEnvParameter4fvARB"/>
+ <command name="glProgramLocalParameter4dARB"/>
+ <command name="glProgramLocalParameter4dvARB"/>
+ <command name="glProgramLocalParameter4fARB"/>
+ <command name="glProgramLocalParameter4fvARB"/>
+ <command name="glGetProgramEnvParameterdvARB"/>
+ <command name="glGetProgramEnvParameterfvARB"/>
+ <command name="glGetProgramLocalParameterdvARB"/>
+ <command name="glGetProgramLocalParameterfvARB"/>
+ <command name="glGetProgramivARB"/>
+ <command name="glGetProgramStringARB"/>
+ <command name="glIsProgramARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_fragment_program_shadow" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_fragment_shader" supported="gl">
+ <require>
+ <enum name="GL_FRAGMENT_SHADER_ARB"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB"/>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_framebuffer_no_attachments" supported="gl|glcore">
+ <require>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_WIDTH"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_HEIGHT"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_LAYERS"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_SAMPLES"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS"/>
+ <enum name="GL_MAX_FRAMEBUFFER_WIDTH"/>
+ <enum name="GL_MAX_FRAMEBUFFER_HEIGHT"/>
+ <enum name="GL_MAX_FRAMEBUFFER_LAYERS"/>
+ <enum name="GL_MAX_FRAMEBUFFER_SAMPLES"/>
+ <command name="glFramebufferParameteri"/>
+ <command name="glGetFramebufferParameteriv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_framebuffer_object" supported="gl|glcore">
+ <require>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT"/>
+ <enum name="GL_FRAMEBUFFER_UNDEFINED"/>
+ <enum name="GL_DEPTH_STENCIL_ATTACHMENT"/>
+ <enum name="GL_MAX_RENDERBUFFER_SIZE"/>
+ <enum name="GL_DEPTH_STENCIL"/>
+ <enum name="GL_UNSIGNED_INT_24_8"/>
+ <enum name="GL_DEPTH24_STENCIL8"/>
+ <enum name="GL_TEXTURE_STENCIL_SIZE"/>
+ <enum name="GL_TEXTURE_RED_TYPE"/>
+ <enum name="GL_TEXTURE_GREEN_TYPE"/>
+ <enum name="GL_TEXTURE_BLUE_TYPE"/>
+ <enum name="GL_TEXTURE_ALPHA_TYPE"/>
+ <enum name="GL_TEXTURE_DEPTH_TYPE"/>
+ <enum name="GL_UNSIGNED_NORMALIZED"/>
+ <enum name="GL_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_RENDERBUFFER_BINDING"/>
+ <enum name="GL_READ_FRAMEBUFFER"/>
+ <enum name="GL_DRAW_FRAMEBUFFER"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_RENDERBUFFER_SAMPLES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"/>
+ <enum name="GL_FRAMEBUFFER_COMPLETE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER"/>
+ <enum name="GL_FRAMEBUFFER_UNSUPPORTED"/>
+ <enum name="GL_MAX_COLOR_ATTACHMENTS"/>
+ <enum name="GL_COLOR_ATTACHMENT0"/>
+ <enum name="GL_COLOR_ATTACHMENT1"/>
+ <enum name="GL_COLOR_ATTACHMENT2"/>
+ <enum name="GL_COLOR_ATTACHMENT3"/>
+ <enum name="GL_COLOR_ATTACHMENT4"/>
+ <enum name="GL_COLOR_ATTACHMENT5"/>
+ <enum name="GL_COLOR_ATTACHMENT6"/>
+ <enum name="GL_COLOR_ATTACHMENT7"/>
+ <enum name="GL_COLOR_ATTACHMENT8"/>
+ <enum name="GL_COLOR_ATTACHMENT9"/>
+ <enum name="GL_COLOR_ATTACHMENT10"/>
+ <enum name="GL_COLOR_ATTACHMENT11"/>
+ <enum name="GL_COLOR_ATTACHMENT12"/>
+ <enum name="GL_COLOR_ATTACHMENT13"/>
+ <enum name="GL_COLOR_ATTACHMENT14"/>
+ <enum name="GL_COLOR_ATTACHMENT15"/>
+ <enum name="GL_DEPTH_ATTACHMENT"/>
+ <enum name="GL_STENCIL_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER"/>
+ <enum name="GL_RENDERBUFFER"/>
+ <enum name="GL_RENDERBUFFER_WIDTH"/>
+ <enum name="GL_RENDERBUFFER_HEIGHT"/>
+ <enum name="GL_RENDERBUFFER_INTERNAL_FORMAT"/>
+ <enum name="GL_STENCIL_INDEX1"/>
+ <enum name="GL_STENCIL_INDEX4"/>
+ <enum name="GL_STENCIL_INDEX8"/>
+ <enum name="GL_STENCIL_INDEX16"/>
+ <enum name="GL_RENDERBUFFER_RED_SIZE"/>
+ <enum name="GL_RENDERBUFFER_GREEN_SIZE"/>
+ <enum name="GL_RENDERBUFFER_BLUE_SIZE"/>
+ <enum name="GL_RENDERBUFFER_ALPHA_SIZE"/>
+ <enum name="GL_RENDERBUFFER_DEPTH_SIZE"/>
+ <enum name="GL_RENDERBUFFER_STENCIL_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"/>
+ <enum name="GL_MAX_SAMPLES"/>
+ <command name="glIsRenderbuffer"/>
+ <command name="glBindRenderbuffer"/>
+ <command name="glDeleteRenderbuffers"/>
+ <command name="glGenRenderbuffers"/>
+ <command name="glRenderbufferStorage"/>
+ <command name="glGetRenderbufferParameteriv"/>
+ <command name="glIsFramebuffer"/>
+ <command name="glBindFramebuffer"/>
+ <command name="glDeleteFramebuffers"/>
+ <command name="glGenFramebuffers"/>
+ <command name="glCheckFramebufferStatus"/>
+ <command name="glFramebufferTexture1D"/>
+ <command name="glFramebufferTexture2D"/>
+ <command name="glFramebufferTexture3D"/>
+ <command name="glFramebufferRenderbuffer"/>
+ <command name="glGetFramebufferAttachmentParameteriv"/>
+ <command name="glGenerateMipmap"/>
+ <command name="glBlitFramebuffer"/>
+ <command name="glRenderbufferStorageMultisample"/>
+ <command name="glFramebufferTextureLayer"/>
+ </require>
+ <require api="gl" profile="compatibility">
+ <enum name="GL_INDEX"/>
+ <enum name="GL_TEXTURE_LUMINANCE_TYPE"/>
+ <enum name="GL_TEXTURE_INTENSITY_TYPE"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_framebuffer_sRGB" supported="gl|glcore">
+ <require>
+ <enum name="GL_FRAMEBUFFER_SRGB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_geometry_shader4" supported="gl">
+ <require>
+ <enum name="GL_LINES_ADJACENCY_ARB"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY_ARB"/>
+ <enum name="GL_TRIANGLES_ADJACENCY_ARB"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY_ARB"/>
+ <enum name="GL_PROGRAM_POINT_SIZE_ARB"/>
+ <enum name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB"/>
+ <enum name="GL_GEOMETRY_SHADER_ARB"/>
+ <enum name="GL_GEOMETRY_VERTICES_OUT_ARB"/>
+ <enum name="GL_GEOMETRY_INPUT_TYPE_ARB"/>
+ <enum name="GL_GEOMETRY_OUTPUT_TYPE_ARB"/>
+ <enum name="GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB"/>
+ <enum name="GL_MAX_VERTEX_VARYING_COMPONENTS_ARB"/>
+ <enum name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB"/>
+ <enum name="GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB"/>
+ <enum name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB"/>
+ <enum name="GL_MAX_VARYING_COMPONENTS"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"/>
+ <command name="glProgramParameteriARB"/>
+ <command name="glFramebufferTextureARB"/>
+ <command name="glFramebufferTextureLayerARB"/>
+ <command name="glFramebufferTextureFaceARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_get_program_binary" supported="gl|glcore">
+ <require>
+ <enum name="GL_PROGRAM_BINARY_RETRIEVABLE_HINT"/>
+ <enum name="GL_PROGRAM_BINARY_LENGTH"/>
+ <enum name="GL_NUM_PROGRAM_BINARY_FORMATS"/>
+ <enum name="GL_PROGRAM_BINARY_FORMATS"/>
+ <command name="glGetProgramBinary"/>
+ <command name="glProgramBinary"/>
+ <command name="glProgramParameteri"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_gpu_shader5" supported="gl|glcore">
+ <require>
+ <enum name="GL_GEOMETRY_SHADER_INVOCATIONS"/>
+ <enum name="GL_MAX_GEOMETRY_SHADER_INVOCATIONS"/>
+ <enum name="GL_MIN_FRAGMENT_INTERPOLATION_OFFSET"/>
+ <enum name="GL_MAX_FRAGMENT_INTERPOLATION_OFFSET"/>
+ <enum name="GL_FRAGMENT_INTERPOLATION_OFFSET_BITS"/>
+ <enum name="GL_MAX_VERTEX_STREAMS"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_gpu_shader_fp64" supported="gl|glcore">
+ <require>
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_DOUBLE_VEC2"/>
+ <enum name="GL_DOUBLE_VEC3"/>
+ <enum name="GL_DOUBLE_VEC4"/>
+ <enum name="GL_DOUBLE_MAT2"/>
+ <enum name="GL_DOUBLE_MAT3"/>
+ <enum name="GL_DOUBLE_MAT4"/>
+ <enum name="GL_DOUBLE_MAT2x3"/>
+ <enum name="GL_DOUBLE_MAT2x4"/>
+ <enum name="GL_DOUBLE_MAT3x2"/>
+ <enum name="GL_DOUBLE_MAT3x4"/>
+ <enum name="GL_DOUBLE_MAT4x2"/>
+ <enum name="GL_DOUBLE_MAT4x3"/>
+ <command name="glUniform1d"/>
+ <command name="glUniform2d"/>
+ <command name="glUniform3d"/>
+ <command name="glUniform4d"/>
+ <command name="glUniform1dv"/>
+ <command name="glUniform2dv"/>
+ <command name="glUniform3dv"/>
+ <command name="glUniform4dv"/>
+ <command name="glUniformMatrix2dv"/>
+ <command name="glUniformMatrix3dv"/>
+ <command name="glUniformMatrix4dv"/>
+ <command name="glUniformMatrix2x3dv"/>
+ <command name="glUniformMatrix2x4dv"/>
+ <command name="glUniformMatrix3x2dv"/>
+ <command name="glUniformMatrix3x4dv"/>
+ <command name="glUniformMatrix4x2dv"/>
+ <command name="glUniformMatrix4x3dv"/>
+ <command name="glGetUniformdv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_half_float_pixel" supported="gl">
+ <require>
+ <type name="GLhalfARB"/>
+ <enum name="GL_HALF_FLOAT_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_half_float_vertex" supported="gl|glcore">
+ <require>
+ <type name="GLhalf"/>
+ <enum name="GL_HALF_FLOAT"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_imaging" supported="gl|glcore" comment="Now treating ARB_imaging as an extension, not a GL API version">
+ <require>
+ <enum name="GL_CONSTANT_COLOR"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_COLOR"/>
+ <enum name="GL_CONSTANT_ALPHA"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_ALPHA"/>
+ <enum name="GL_BLEND_COLOR"/>
+ <enum name="GL_FUNC_ADD"/>
+ <enum name="GL_MIN"/>
+ <enum name="GL_MAX"/>
+ <enum name="GL_BLEND_EQUATION"/>
+ <enum name="GL_FUNC_SUBTRACT"/>
+ <enum name="GL_FUNC_REVERSE_SUBTRACT"/>
+ <command name="glBlendColor"/>
+ <command name="glBlendEquation"/>
+ </require>
+ <require api="gl" profile="compatibility">
+ <enum name="GL_CONVOLUTION_1D"/>
+ <enum name="GL_CONVOLUTION_2D"/>
+ <enum name="GL_SEPARABLE_2D"/>
+ <enum name="GL_CONVOLUTION_BORDER_MODE"/>
+ <enum name="GL_CONVOLUTION_FILTER_SCALE"/>
+ <enum name="GL_CONVOLUTION_FILTER_BIAS"/>
+ <enum name="GL_REDUCE"/>
+ <enum name="GL_CONVOLUTION_FORMAT"/>
+ <enum name="GL_CONVOLUTION_WIDTH"/>
+ <enum name="GL_CONVOLUTION_HEIGHT"/>
+ <enum name="GL_MAX_CONVOLUTION_WIDTH"/>
+ <enum name="GL_MAX_CONVOLUTION_HEIGHT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_RED_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_BIAS"/>
+ <enum name="GL_HISTOGRAM"/>
+ <enum name="GL_PROXY_HISTOGRAM"/>
+ <enum name="GL_HISTOGRAM_WIDTH"/>
+ <enum name="GL_HISTOGRAM_FORMAT"/>
+ <enum name="GL_HISTOGRAM_RED_SIZE"/>
+ <enum name="GL_HISTOGRAM_GREEN_SIZE"/>
+ <enum name="GL_HISTOGRAM_BLUE_SIZE"/>
+ <enum name="GL_HISTOGRAM_ALPHA_SIZE"/>
+ <enum name="GL_HISTOGRAM_LUMINANCE_SIZE"/>
+ <enum name="GL_HISTOGRAM_SINK"/>
+ <enum name="GL_MINMAX"/>
+ <enum name="GL_MINMAX_FORMAT"/>
+ <enum name="GL_MINMAX_SINK"/>
+ <enum name="GL_TABLE_TOO_LARGE"/>
+ <enum name="GL_COLOR_MATRIX"/>
+ <enum name="GL_COLOR_MATRIX_STACK_DEPTH"/>
+ <enum name="GL_MAX_COLOR_MATRIX_STACK_DEPTH"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_BIAS"/>
+ <enum name="GL_COLOR_TABLE"/>
+ <enum name="GL_POST_CONVOLUTION_COLOR_TABLE"/>
+ <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE"/>
+ <enum name="GL_PROXY_COLOR_TABLE"/>
+ <enum name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE"/>
+ <enum name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE"/>
+ <enum name="GL_COLOR_TABLE_SCALE"/>
+ <enum name="GL_COLOR_TABLE_BIAS"/>
+ <enum name="GL_COLOR_TABLE_FORMAT"/>
+ <enum name="GL_COLOR_TABLE_WIDTH"/>
+ <enum name="GL_COLOR_TABLE_RED_SIZE"/>
+ <enum name="GL_COLOR_TABLE_GREEN_SIZE"/>
+ <enum name="GL_COLOR_TABLE_BLUE_SIZE"/>
+ <enum name="GL_COLOR_TABLE_ALPHA_SIZE"/>
+ <enum name="GL_COLOR_TABLE_LUMINANCE_SIZE"/>
+ <enum name="GL_COLOR_TABLE_INTENSITY_SIZE"/>
+ <enum name="GL_CONSTANT_BORDER"/>
+ <enum name="GL_REPLICATE_BORDER"/>
+ <enum name="GL_CONVOLUTION_BORDER_COLOR"/>
+ <command name="glColorTable"/>
+ <command name="glColorTableParameterfv"/>
+ <command name="glColorTableParameteriv"/>
+ <command name="glCopyColorTable"/>
+ <command name="glGetColorTable"/>
+ <command name="glGetColorTableParameterfv"/>
+ <command name="glGetColorTableParameteriv"/>
+ <command name="glColorSubTable"/>
+ <command name="glCopyColorSubTable"/>
+ <command name="glConvolutionFilter1D"/>
+ <command name="glConvolutionFilter2D"/>
+ <command name="glConvolutionParameterf"/>
+ <command name="glConvolutionParameterfv"/>
+ <command name="glConvolutionParameteri"/>
+ <command name="glConvolutionParameteriv"/>
+ <command name="glCopyConvolutionFilter1D"/>
+ <command name="glCopyConvolutionFilter2D"/>
+ <command name="glGetConvolutionFilter"/>
+ <command name="glGetConvolutionParameterfv"/>
+ <command name="glGetConvolutionParameteriv"/>
+ <command name="glGetSeparableFilter"/>
+ <command name="glSeparableFilter2D"/>
+ <command name="glGetHistogram"/>
+ <command name="glGetHistogramParameterfv"/>
+ <command name="glGetHistogramParameteriv"/>
+ <command name="glGetMinmax"/>
+ <command name="glGetMinmaxParameterfv"/>
+ <command name="glGetMinmaxParameteriv"/>
+ <command name="glHistogram"/>
+ <command name="glMinmax"/>
+ <command name="glResetHistogram"/>
+ <command name="glResetMinmax"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_indirect_parameters" supported="gl|glcore">
+ <require>
+ <enum name="GL_PARAMETER_BUFFER_ARB"/>
+ <enum name="GL_PARAMETER_BUFFER_BINDING_ARB"/>
+ <command name="glMultiDrawArraysIndirectCountARB"/>
+ <command name="glMultiDrawElementsIndirectCountARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_instanced_arrays" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB"/>
+ <command name="glVertexAttribDivisorARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_internalformat_query" supported="gl|glcore">
+ <require>
+ <enum name="GL_NUM_SAMPLE_COUNTS"/>
+ <command name="glGetInternalformativ"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_internalformat_query2" supported="gl|glcore">
+ <require>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_TYPE"/>
+ <enum name="GL_NUM_SAMPLE_COUNTS"/>
+ <enum name="GL_RENDERBUFFER"/>
+ <enum name="GL_SAMPLES"/>
+ <enum name="GL_TEXTURE_1D"/>
+ <enum name="GL_TEXTURE_1D_ARRAY"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_TEXTURE_2D_ARRAY"/>
+ <enum name="GL_TEXTURE_3D"/>
+ <enum name="GL_TEXTURE_CUBE_MAP"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_TEXTURE_RECTANGLE"/>
+ <enum name="GL_TEXTURE_BUFFER"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_TEXTURE_COMPRESSED"/>
+ <enum name="GL_INTERNALFORMAT_SUPPORTED"/>
+ <enum name="GL_INTERNALFORMAT_PREFERRED"/>
+ <enum name="GL_INTERNALFORMAT_RED_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_GREEN_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_BLUE_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_ALPHA_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_DEPTH_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_STENCIL_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_SHARED_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_RED_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_GREEN_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_BLUE_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_ALPHA_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_DEPTH_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_STENCIL_TYPE"/>
+ <enum name="GL_MAX_WIDTH"/>
+ <enum name="GL_MAX_HEIGHT"/>
+ <enum name="GL_MAX_DEPTH"/>
+ <enum name="GL_MAX_LAYERS"/>
+ <enum name="GL_MAX_COMBINED_DIMENSIONS"/>
+ <enum name="GL_COLOR_COMPONENTS"/>
+ <enum name="GL_DEPTH_COMPONENTS"/>
+ <enum name="GL_STENCIL_COMPONENTS"/>
+ <enum name="GL_COLOR_RENDERABLE"/>
+ <enum name="GL_DEPTH_RENDERABLE"/>
+ <enum name="GL_STENCIL_RENDERABLE"/>
+ <enum name="GL_FRAMEBUFFER_RENDERABLE"/>
+ <enum name="GL_FRAMEBUFFER_RENDERABLE_LAYERED"/>
+ <enum name="GL_FRAMEBUFFER_BLEND"/>
+ <enum name="GL_READ_PIXELS"/>
+ <enum name="GL_READ_PIXELS_FORMAT"/>
+ <enum name="GL_READ_PIXELS_TYPE"/>
+ <enum name="GL_TEXTURE_IMAGE_FORMAT"/>
+ <enum name="GL_TEXTURE_IMAGE_TYPE"/>
+ <enum name="GL_GET_TEXTURE_IMAGE_FORMAT"/>
+ <enum name="GL_GET_TEXTURE_IMAGE_TYPE"/>
+ <enum name="GL_MIPMAP"/>
+ <enum name="GL_MANUAL_GENERATE_MIPMAP"/>
+ <enum name="GL_AUTO_GENERATE_MIPMAP"/>
+ <enum name="GL_COLOR_ENCODING"/>
+ <enum name="GL_SRGB_READ"/>
+ <enum name="GL_SRGB_WRITE"/>
+ <enum name="GL_SRGB_DECODE_ARB"/>
+ <enum name="GL_FILTER"/>
+ <enum name="GL_VERTEX_TEXTURE"/>
+ <enum name="GL_TESS_CONTROL_TEXTURE"/>
+ <enum name="GL_TESS_EVALUATION_TEXTURE"/>
+ <enum name="GL_GEOMETRY_TEXTURE"/>
+ <enum name="GL_FRAGMENT_TEXTURE"/>
+ <enum name="GL_COMPUTE_TEXTURE"/>
+ <enum name="GL_TEXTURE_SHADOW"/>
+ <enum name="GL_TEXTURE_GATHER"/>
+ <enum name="GL_TEXTURE_GATHER_SHADOW"/>
+ <enum name="GL_SHADER_IMAGE_LOAD"/>
+ <enum name="GL_SHADER_IMAGE_STORE"/>
+ <enum name="GL_SHADER_IMAGE_ATOMIC"/>
+ <enum name="GL_IMAGE_TEXEL_SIZE"/>
+ <enum name="GL_IMAGE_COMPATIBILITY_CLASS"/>
+ <enum name="GL_IMAGE_PIXEL_FORMAT"/>
+ <enum name="GL_IMAGE_PIXEL_TYPE"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE"/>
+ <enum name="GL_TEXTURE_COMPRESSED_BLOCK_WIDTH"/>
+ <enum name="GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum name="GL_TEXTURE_COMPRESSED_BLOCK_SIZE"/>
+ <enum name="GL_CLEAR_BUFFER"/>
+ <enum name="GL_TEXTURE_VIEW"/>
+ <enum name="GL_VIEW_COMPATIBILITY_CLASS"/>
+ <enum name="GL_FULL_SUPPORT"/>
+ <enum name="GL_CAVEAT_SUPPORT"/>
+ <enum name="GL_IMAGE_CLASS_4_X_32"/>
+ <enum name="GL_IMAGE_CLASS_2_X_32"/>
+ <enum name="GL_IMAGE_CLASS_1_X_32"/>
+ <enum name="GL_IMAGE_CLASS_4_X_16"/>
+ <enum name="GL_IMAGE_CLASS_2_X_16"/>
+ <enum name="GL_IMAGE_CLASS_1_X_16"/>
+ <enum name="GL_IMAGE_CLASS_4_X_8"/>
+ <enum name="GL_IMAGE_CLASS_2_X_8"/>
+ <enum name="GL_IMAGE_CLASS_1_X_8"/>
+ <enum name="GL_IMAGE_CLASS_11_11_10"/>
+ <enum name="GL_IMAGE_CLASS_10_10_10_2"/>
+ <enum name="GL_VIEW_CLASS_128_BITS"/>
+ <enum name="GL_VIEW_CLASS_96_BITS"/>
+ <enum name="GL_VIEW_CLASS_64_BITS"/>
+ <enum name="GL_VIEW_CLASS_48_BITS"/>
+ <enum name="GL_VIEW_CLASS_32_BITS"/>
+ <enum name="GL_VIEW_CLASS_24_BITS"/>
+ <enum name="GL_VIEW_CLASS_16_BITS"/>
+ <enum name="GL_VIEW_CLASS_8_BITS"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT1_RGB"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT1_RGBA"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT3_RGBA"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT5_RGBA"/>
+ <enum name="GL_VIEW_CLASS_RGTC1_RED"/>
+ <enum name="GL_VIEW_CLASS_RGTC2_RG"/>
+ <enum name="GL_VIEW_CLASS_BPTC_UNORM"/>
+ <enum name="GL_VIEW_CLASS_BPTC_FLOAT"/>
+ <command name="glGetInternalformati64v"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_invalidate_subdata" supported="gl|glcore">
+ <require>
+ <command name="glInvalidateTexSubImage"/>
+ <command name="glInvalidateTexImage"/>
+ <command name="glInvalidateBufferSubData"/>
+ <command name="glInvalidateBufferData"/>
+ <command name="glInvalidateFramebuffer"/>
+ <command name="glInvalidateSubFramebuffer"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_map_buffer_alignment" supported="gl|glcore">
+ <require>
+ <enum name="GL_MIN_MAP_BUFFER_ALIGNMENT"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_map_buffer_range" supported="gl|glcore">
+ <require>
+ <enum name="GL_MAP_READ_BIT"/>
+ <enum name="GL_MAP_WRITE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_RANGE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_BUFFER_BIT"/>
+ <enum name="GL_MAP_FLUSH_EXPLICIT_BIT"/>
+ <enum name="GL_MAP_UNSYNCHRONIZED_BIT"/>
+ <command name="glMapBufferRange"/>
+ <command name="glFlushMappedBufferRange"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_matrix_palette" supported="gl">
+ <require>
+ <enum name="GL_MATRIX_PALETTE_ARB"/>
+ <enum name="GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB"/>
+ <enum name="GL_MAX_PALETTE_MATRICES_ARB"/>
+ <enum name="GL_CURRENT_PALETTE_MATRIX_ARB"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_ARB"/>
+ <enum name="GL_CURRENT_MATRIX_INDEX_ARB"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_SIZE_ARB"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_TYPE_ARB"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_STRIDE_ARB"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_POINTER_ARB"/>
+ <command name="glCurrentPaletteMatrixARB"/>
+ <command name="glMatrixIndexubvARB"/>
+ <command name="glMatrixIndexusvARB"/>
+ <command name="glMatrixIndexuivARB"/>
+ <command name="glMatrixIndexPointerARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_multi_bind" supported="gl|glcore">
+ <require>
+ <command name="glBindBuffersBase"/>
+ <command name="glBindBuffersRange"/>
+ <command name="glBindTextures"/>
+ <command name="glBindSamplers"/>
+ <command name="glBindImageTextures"/>
+ <command name="glBindVertexBuffers"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_multi_draw_indirect" supported="gl|glcore">
+ <require>
+ <command name="glMultiDrawArraysIndirect"/>
+ <command name="glMultiDrawElementsIndirect"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_multisample" supported="gl">
+ <require>
+ <enum name="GL_MULTISAMPLE_ARB"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_COVERAGE_ARB"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE_ARB"/>
+ <enum name="GL_SAMPLE_COVERAGE_ARB"/>
+ <enum name="GL_SAMPLE_BUFFERS_ARB"/>
+ <enum name="GL_SAMPLES_ARB"/>
+ <enum name="GL_SAMPLE_COVERAGE_VALUE_ARB"/>
+ <enum name="GL_SAMPLE_COVERAGE_INVERT_ARB"/>
+ <enum name="GL_MULTISAMPLE_BIT_ARB"/>
+ <command name="glSampleCoverageARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_multitexture" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE0_ARB"/>
+ <enum name="GL_TEXTURE1_ARB"/>
+ <enum name="GL_TEXTURE2_ARB"/>
+ <enum name="GL_TEXTURE3_ARB"/>
+ <enum name="GL_TEXTURE4_ARB"/>
+ <enum name="GL_TEXTURE5_ARB"/>
+ <enum name="GL_TEXTURE6_ARB"/>
+ <enum name="GL_TEXTURE7_ARB"/>
+ <enum name="GL_TEXTURE8_ARB"/>
+ <enum name="GL_TEXTURE9_ARB"/>
+ <enum name="GL_TEXTURE10_ARB"/>
+ <enum name="GL_TEXTURE11_ARB"/>
+ <enum name="GL_TEXTURE12_ARB"/>
+ <enum name="GL_TEXTURE13_ARB"/>
+ <enum name="GL_TEXTURE14_ARB"/>
+ <enum name="GL_TEXTURE15_ARB"/>
+ <enum name="GL_TEXTURE16_ARB"/>
+ <enum name="GL_TEXTURE17_ARB"/>
+ <enum name="GL_TEXTURE18_ARB"/>
+ <enum name="GL_TEXTURE19_ARB"/>
+ <enum name="GL_TEXTURE20_ARB"/>
+ <enum name="GL_TEXTURE21_ARB"/>
+ <enum name="GL_TEXTURE22_ARB"/>
+ <enum name="GL_TEXTURE23_ARB"/>
+ <enum name="GL_TEXTURE24_ARB"/>
+ <enum name="GL_TEXTURE25_ARB"/>
+ <enum name="GL_TEXTURE26_ARB"/>
+ <enum name="GL_TEXTURE27_ARB"/>
+ <enum name="GL_TEXTURE28_ARB"/>
+ <enum name="GL_TEXTURE29_ARB"/>
+ <enum name="GL_TEXTURE30_ARB"/>
+ <enum name="GL_TEXTURE31_ARB"/>
+ <enum name="GL_ACTIVE_TEXTURE_ARB"/>
+ <enum name="GL_CLIENT_ACTIVE_TEXTURE_ARB"/>
+ <enum name="GL_MAX_TEXTURE_UNITS_ARB"/>
+ <command name="glActiveTextureARB"/>
+ <command name="glClientActiveTextureARB"/>
+ <command name="glMultiTexCoord1dARB"/>
+ <command name="glMultiTexCoord1dvARB"/>
+ <command name="glMultiTexCoord1fARB"/>
+ <command name="glMultiTexCoord1fvARB"/>
+ <command name="glMultiTexCoord1iARB"/>
+ <command name="glMultiTexCoord1ivARB"/>
+ <command name="glMultiTexCoord1sARB"/>
+ <command name="glMultiTexCoord1svARB"/>
+ <command name="glMultiTexCoord2dARB"/>
+ <command name="glMultiTexCoord2dvARB"/>
+ <command name="glMultiTexCoord2fARB"/>
+ <command name="glMultiTexCoord2fvARB"/>
+ <command name="glMultiTexCoord2iARB"/>
+ <command name="glMultiTexCoord2ivARB"/>
+ <command name="glMultiTexCoord2sARB"/>
+ <command name="glMultiTexCoord2svARB"/>
+ <command name="glMultiTexCoord3dARB"/>
+ <command name="glMultiTexCoord3dvARB"/>
+ <command name="glMultiTexCoord3fARB"/>
+ <command name="glMultiTexCoord3fvARB"/>
+ <command name="glMultiTexCoord3iARB"/>
+ <command name="glMultiTexCoord3ivARB"/>
+ <command name="glMultiTexCoord3sARB"/>
+ <command name="glMultiTexCoord3svARB"/>
+ <command name="glMultiTexCoord4dARB"/>
+ <command name="glMultiTexCoord4dvARB"/>
+ <command name="glMultiTexCoord4fARB"/>
+ <command name="glMultiTexCoord4fvARB"/>
+ <command name="glMultiTexCoord4iARB"/>
+ <command name="glMultiTexCoord4ivARB"/>
+ <command name="glMultiTexCoord4sARB"/>
+ <command name="glMultiTexCoord4svARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_occlusion_query" supported="gl">
+ <require>
+ <enum name="GL_QUERY_COUNTER_BITS_ARB"/>
+ <enum name="GL_CURRENT_QUERY_ARB"/>
+ <enum name="GL_QUERY_RESULT_ARB"/>
+ <enum name="GL_QUERY_RESULT_AVAILABLE_ARB"/>
+ <enum name="GL_SAMPLES_PASSED_ARB"/>
+ <command name="glGenQueriesARB"/>
+ <command name="glDeleteQueriesARB"/>
+ <command name="glIsQueryARB"/>
+ <command name="glBeginQueryARB"/>
+ <command name="glEndQueryARB"/>
+ <command name="glGetQueryivARB"/>
+ <command name="glGetQueryObjectivARB"/>
+ <command name="glGetQueryObjectuivARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_occlusion_query2" supported="gl|glcore">
+ <require>
+ <enum name="GL_ANY_SAMPLES_PASSED"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_pixel_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_PACK_BUFFER_ARB"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER_ARB"/>
+ <enum name="GL_PIXEL_PACK_BUFFER_BINDING_ARB"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER_BINDING_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_point_parameters" supported="gl">
+ <require>
+ <enum name="GL_POINT_SIZE_MIN_ARB"/>
+ <enum name="GL_POINT_SIZE_MAX_ARB"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_ARB"/>
+ <enum name="GL_POINT_DISTANCE_ATTENUATION_ARB"/>
+ <command name="glPointParameterfARB"/>
+ <command name="glPointParameterfvARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_point_sprite" supported="gl">
+ <require>
+ <enum name="GL_POINT_SPRITE_ARB"/>
+ <enum name="GL_COORD_REPLACE_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_program_interface_query" supported="gl|glcore">
+ <require>
+ <enum name="GL_UNIFORM"/>
+ <enum name="GL_UNIFORM_BLOCK"/>
+ <enum name="GL_PROGRAM_INPUT"/>
+ <enum name="GL_PROGRAM_OUTPUT"/>
+ <enum name="GL_BUFFER_VARIABLE"/>
+ <enum name="GL_SHADER_STORAGE_BLOCK"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER"/>
+ <enum name="GL_VERTEX_SUBROUTINE"/>
+ <enum name="GL_TESS_CONTROL_SUBROUTINE"/>
+ <enum name="GL_TESS_EVALUATION_SUBROUTINE"/>
+ <enum name="GL_GEOMETRY_SUBROUTINE"/>
+ <enum name="GL_FRAGMENT_SUBROUTINE"/>
+ <enum name="GL_COMPUTE_SUBROUTINE"/>
+ <enum name="GL_VERTEX_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_TESS_CONTROL_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_TESS_EVALUATION_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_GEOMETRY_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_FRAGMENT_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_COMPUTE_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYING"/>
+ <enum name="GL_ACTIVE_RESOURCES"/>
+ <enum name="GL_MAX_NAME_LENGTH"/>
+ <enum name="GL_MAX_NUM_ACTIVE_VARIABLES"/>
+ <enum name="GL_MAX_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum name="GL_NAME_LENGTH"/>
+ <enum name="GL_TYPE"/>
+ <enum name="GL_ARRAY_SIZE"/>
+ <enum name="GL_OFFSET"/>
+ <enum name="GL_BLOCK_INDEX"/>
+ <enum name="GL_ARRAY_STRIDE"/>
+ <enum name="GL_MATRIX_STRIDE"/>
+ <enum name="GL_IS_ROW_MAJOR"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_INDEX"/>
+ <enum name="GL_BUFFER_BINDING"/>
+ <enum name="GL_BUFFER_DATA_SIZE"/>
+ <enum name="GL_NUM_ACTIVE_VARIABLES"/>
+ <enum name="GL_ACTIVE_VARIABLES"/>
+ <enum name="GL_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum name="GL_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum name="GL_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum name="GL_TOP_LEVEL_ARRAY_SIZE"/>
+ <enum name="GL_TOP_LEVEL_ARRAY_STRIDE"/>
+ <enum name="GL_LOCATION"/>
+ <enum name="GL_LOCATION_INDEX"/>
+ <enum name="GL_IS_PER_PATCH"/>
+ <enum name="GL_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum name="GL_COMPATIBLE_SUBROUTINES"/>
+ <command name="glGetProgramInterfaceiv"/>
+ <command name="glGetProgramResourceIndex"/>
+ <command name="glGetProgramResourceName"/>
+ <command name="glGetProgramResourceiv"/>
+ <command name="glGetProgramResourceLocation"/>
+ <command name="glGetProgramResourceLocationIndex"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_provoking_vertex" supported="gl|glcore">
+ <require>
+ <enum name="GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION"/>
+ <enum name="GL_FIRST_VERTEX_CONVENTION"/>
+ <enum name="GL_LAST_VERTEX_CONVENTION"/>
+ <enum name="GL_PROVOKING_VERTEX"/>
+ <command name="glProvokingVertex"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_query_buffer_object" supported="gl|glcore">
+ <require>
+ <enum name="GL_QUERY_BUFFER"/>
+ <enum name="GL_QUERY_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_QUERY_BUFFER_BINDING"/>
+ <enum name="GL_QUERY_RESULT_NO_WAIT"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_robust_buffer_access_behavior" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_robustness" supported="gl|glcore">
+ <require>
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB"/>
+ <enum name="GL_LOSE_CONTEXT_ON_RESET_ARB"/>
+ <enum name="GL_GUILTY_CONTEXT_RESET_ARB"/>
+ <enum name="GL_INNOCENT_CONTEXT_RESET_ARB"/>
+ <enum name="GL_UNKNOWN_CONTEXT_RESET_ARB"/>
+ <enum name="GL_RESET_NOTIFICATION_STRATEGY_ARB"/>
+ <enum name="GL_NO_RESET_NOTIFICATION_ARB"/>
+ <command name="glGetGraphicsResetStatusARB"/>
+ <command name="glGetnTexImageARB"/>
+ <command name="glReadnPixelsARB"/>
+ <command name="glGetnCompressedTexImageARB"/>
+ <command name="glGetnUniformfvARB"/>
+ <command name="glGetnUniformivARB"/>
+ <command name="glGetnUniformuivARB"/>
+ <command name="glGetnUniformdvARB"/>
+ </require>
+ <require api="gl" profile="compatibility">
+ <command name="glGetnMapdvARB"/>
+ <command name="glGetnMapfvARB"/>
+ <command name="glGetnMapivARB"/>
+ <command name="glGetnPixelMapfvARB"/>
+ <command name="glGetnPixelMapuivARB"/>
+ <command name="glGetnPixelMapusvARB"/>
+ <command name="glGetnPolygonStippleARB"/>
+ <command name="glGetnColorTableARB"/>
+ <command name="glGetnConvolutionFilterARB"/>
+ <command name="glGetnSeparableFilterARB"/>
+ <command name="glGetnHistogramARB"/>
+ <command name="glGetnMinmaxARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_robustness_isolation" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_sample_shading" supported="gl|glcore">
+ <require>
+ <enum name="GL_SAMPLE_SHADING_ARB"/>
+ <enum name="GL_MIN_SAMPLE_SHADING_VALUE_ARB"/>
+ <command name="glMinSampleShadingARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_sampler_objects" supported="gl|glcore">
+ <require>
+ <enum name="GL_SAMPLER_BINDING"/>
+ <command name="glGenSamplers"/>
+ <command name="glDeleteSamplers"/>
+ <command name="glIsSampler"/>
+ <command name="glBindSampler"/>
+ <command name="glSamplerParameteri"/>
+ <command name="glSamplerParameteriv"/>
+ <command name="glSamplerParameterf"/>
+ <command name="glSamplerParameterfv"/>
+ <command name="glSamplerParameterIiv"/>
+ <command name="glSamplerParameterIuiv"/>
+ <command name="glGetSamplerParameteriv"/>
+ <command name="glGetSamplerParameterIiv"/>
+ <command name="glGetSamplerParameterfv"/>
+ <command name="glGetSamplerParameterIuiv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_seamless_cube_map" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_CUBE_MAP_SEAMLESS"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_seamless_cubemap_per_texture" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_CUBE_MAP_SEAMLESS"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_separate_shader_objects" supported="gl|glcore">
+ <require>
+ <enum name="GL_VERTEX_SHADER_BIT"/>
+ <enum name="GL_FRAGMENT_SHADER_BIT"/>
+ <enum name="GL_GEOMETRY_SHADER_BIT"/>
+ <enum name="GL_TESS_CONTROL_SHADER_BIT"/>
+ <enum name="GL_TESS_EVALUATION_SHADER_BIT"/>
+ <enum name="GL_ALL_SHADER_BITS"/>
+ <enum name="GL_PROGRAM_SEPARABLE"/>
+ <enum name="GL_ACTIVE_PROGRAM"/>
+ <enum name="GL_PROGRAM_PIPELINE_BINDING"/>
+ <command name="glUseProgramStages"/>
+ <command name="glActiveShaderProgram"/>
+ <command name="glCreateShaderProgramv"/>
+ <command name="glBindProgramPipeline"/>
+ <command name="glDeleteProgramPipelines"/>
+ <command name="glGenProgramPipelines"/>
+ <command name="glIsProgramPipeline"/>
+ <command name="glGetProgramPipelineiv"/>
+ <command name="glProgramUniform1i"/>
+ <command name="glProgramUniform1iv"/>
+ <command name="glProgramUniform1f"/>
+ <command name="glProgramUniform1fv"/>
+ <command name="glProgramUniform1d"/>
+ <command name="glProgramUniform1dv"/>
+ <command name="glProgramUniform1ui"/>
+ <command name="glProgramUniform1uiv"/>
+ <command name="glProgramUniform2i"/>
+ <command name="glProgramUniform2iv"/>
+ <command name="glProgramUniform2f"/>
+ <command name="glProgramUniform2fv"/>
+ <command name="glProgramUniform2d"/>
+ <command name="glProgramUniform2dv"/>
+ <command name="glProgramUniform2ui"/>
+ <command name="glProgramUniform2uiv"/>
+ <command name="glProgramUniform3i"/>
+ <command name="glProgramUniform3iv"/>
+ <command name="glProgramUniform3f"/>
+ <command name="glProgramUniform3fv"/>
+ <command name="glProgramUniform3d"/>
+ <command name="glProgramUniform3dv"/>
+ <command name="glProgramUniform3ui"/>
+ <command name="glProgramUniform3uiv"/>
+ <command name="glProgramUniform4i"/>
+ <command name="glProgramUniform4iv"/>
+ <command name="glProgramUniform4f"/>
+ <command name="glProgramUniform4fv"/>
+ <command name="glProgramUniform4d"/>
+ <command name="glProgramUniform4dv"/>
+ <command name="glProgramUniform4ui"/>
+ <command name="glProgramUniform4uiv"/>
+ <command name="glProgramUniformMatrix2fv"/>
+ <command name="glProgramUniformMatrix3fv"/>
+ <command name="glProgramUniformMatrix4fv"/>
+ <command name="glProgramUniformMatrix2dv"/>
+ <command name="glProgramUniformMatrix3dv"/>
+ <command name="glProgramUniformMatrix4dv"/>
+ <command name="glProgramUniformMatrix2x3fv"/>
+ <command name="glProgramUniformMatrix3x2fv"/>
+ <command name="glProgramUniformMatrix2x4fv"/>
+ <command name="glProgramUniformMatrix4x2fv"/>
+ <command name="glProgramUniformMatrix3x4fv"/>
+ <command name="glProgramUniformMatrix4x3fv"/>
+ <command name="glProgramUniformMatrix2x3dv"/>
+ <command name="glProgramUniformMatrix3x2dv"/>
+ <command name="glProgramUniformMatrix2x4dv"/>
+ <command name="glProgramUniformMatrix4x2dv"/>
+ <command name="glProgramUniformMatrix3x4dv"/>
+ <command name="glProgramUniformMatrix4x3dv"/>
+ <command name="glValidateProgramPipeline"/>
+ <command name="glGetProgramPipelineInfoLog"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_atomic_counters" supported="gl|glcore">
+ <require>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_BINDING"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_START"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_VERTEX_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_GEOMETRY_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_FRAGMENT_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_COMBINED_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum name="GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS"/>
+ <enum name="GL_ACTIVE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX"/>
+ <enum name="GL_UNSIGNED_INT_ATOMIC_COUNTER"/>
+ <command name="glGetActiveAtomicCounterBufferiv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_bit_encoding" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_draw_parameters" supported="gl|glcore">
+ </extension>
+ <extension name="GL_ARB_shader_group_vote" supported="gl|glcore">
+ </extension>
+ <extension name="GL_ARB_shader_image_load_store" supported="gl|glcore">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_ELEMENT_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_UNIFORM_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_FETCH_BARRIER_BIT"/>
+ <enum name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"/>
+ <enum name="GL_COMMAND_BARRIER_BIT"/>
+ <enum name="GL_PIXEL_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_BUFFER_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_FRAMEBUFFER_BARRIER_BIT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT"/>
+ <enum name="GL_ATOMIC_COUNTER_BARRIER_BIT"/>
+ <enum name="GL_ALL_BARRIER_BITS"/>
+ <enum name="GL_MAX_IMAGE_UNITS"/>
+ <enum name="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS"/>
+ <enum name="GL_IMAGE_BINDING_NAME"/>
+ <enum name="GL_IMAGE_BINDING_LEVEL"/>
+ <enum name="GL_IMAGE_BINDING_LAYERED"/>
+ <enum name="GL_IMAGE_BINDING_LAYER"/>
+ <enum name="GL_IMAGE_BINDING_ACCESS"/>
+ <enum name="GL_IMAGE_1D"/>
+ <enum name="GL_IMAGE_2D"/>
+ <enum name="GL_IMAGE_3D"/>
+ <enum name="GL_IMAGE_2D_RECT"/>
+ <enum name="GL_IMAGE_CUBE"/>
+ <enum name="GL_IMAGE_BUFFER"/>
+ <enum name="GL_IMAGE_1D_ARRAY"/>
+ <enum name="GL_IMAGE_2D_ARRAY"/>
+ <enum name="GL_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_IMAGE_2D_MULTISAMPLE"/>
+ <enum name="GL_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_INT_IMAGE_1D"/>
+ <enum name="GL_INT_IMAGE_2D"/>
+ <enum name="GL_INT_IMAGE_3D"/>
+ <enum name="GL_INT_IMAGE_2D_RECT"/>
+ <enum name="GL_INT_IMAGE_CUBE"/>
+ <enum name="GL_INT_IMAGE_BUFFER"/>
+ <enum name="GL_INT_IMAGE_1D_ARRAY"/>
+ <enum name="GL_INT_IMAGE_2D_ARRAY"/>
+ <enum name="GL_INT_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_INT_IMAGE_2D_MULTISAMPLE"/>
+ <enum name="GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_1D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_3D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_RECT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_BUFFER"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_1D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_MAX_IMAGE_SAMPLES"/>
+ <enum name="GL_IMAGE_BINDING_FORMAT"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_TYPE"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS"/>
+ <enum name="GL_MAX_VERTEX_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_GEOMETRY_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_FRAGMENT_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_COMBINED_IMAGE_UNIFORMS"/>
+ <command name="glBindImageTexture"/>
+ <command name="glMemoryBarrier"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_image_size" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_objects" supported="gl">
+ <require>
+ <enum name="GL_PROGRAM_OBJECT_ARB"/>
+ <enum name="GL_SHADER_OBJECT_ARB"/>
+ <enum name="GL_OBJECT_TYPE_ARB"/>
+ <enum name="GL_OBJECT_SUBTYPE_ARB"/>
+ <enum name="GL_FLOAT_VEC2_ARB"/>
+ <enum name="GL_FLOAT_VEC3_ARB"/>
+ <enum name="GL_FLOAT_VEC4_ARB"/>
+ <enum name="GL_INT_VEC2_ARB"/>
+ <enum name="GL_INT_VEC3_ARB"/>
+ <enum name="GL_INT_VEC4_ARB"/>
+ <enum name="GL_BOOL_ARB"/>
+ <enum name="GL_BOOL_VEC2_ARB"/>
+ <enum name="GL_BOOL_VEC3_ARB"/>
+ <enum name="GL_BOOL_VEC4_ARB"/>
+ <enum name="GL_FLOAT_MAT2_ARB"/>
+ <enum name="GL_FLOAT_MAT3_ARB"/>
+ <enum name="GL_FLOAT_MAT4_ARB"/>
+ <enum name="GL_SAMPLER_1D_ARB"/>
+ <enum name="GL_SAMPLER_2D_ARB"/>
+ <enum name="GL_SAMPLER_3D_ARB"/>
+ <enum name="GL_SAMPLER_CUBE_ARB"/>
+ <enum name="GL_SAMPLER_1D_SHADOW_ARB"/>
+ <enum name="GL_SAMPLER_2D_SHADOW_ARB"/>
+ <enum name="GL_SAMPLER_2D_RECT_ARB"/>
+ <enum name="GL_SAMPLER_2D_RECT_SHADOW_ARB"/>
+ <enum name="GL_OBJECT_DELETE_STATUS_ARB"/>
+ <enum name="GL_OBJECT_COMPILE_STATUS_ARB"/>
+ <enum name="GL_OBJECT_LINK_STATUS_ARB"/>
+ <enum name="GL_OBJECT_VALIDATE_STATUS_ARB"/>
+ <enum name="GL_OBJECT_INFO_LOG_LENGTH_ARB"/>
+ <enum name="GL_OBJECT_ATTACHED_OBJECTS_ARB"/>
+ <enum name="GL_OBJECT_ACTIVE_UNIFORMS_ARB"/>
+ <enum name="GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB"/>
+ <enum name="GL_OBJECT_SHADER_SOURCE_LENGTH_ARB"/>
+ <command name="glDeleteObjectARB"/>
+ <command name="glGetHandleARB"/>
+ <command name="glDetachObjectARB"/>
+ <command name="glCreateShaderObjectARB"/>
+ <command name="glShaderSourceARB"/>
+ <command name="glCompileShaderARB"/>
+ <command name="glCreateProgramObjectARB"/>
+ <command name="glAttachObjectARB"/>
+ <command name="glLinkProgramARB"/>
+ <command name="glUseProgramObjectARB"/>
+ <command name="glValidateProgramARB"/>
+ <command name="glUniform1fARB"/>
+ <command name="glUniform2fARB"/>
+ <command name="glUniform3fARB"/>
+ <command name="glUniform4fARB"/>
+ <command name="glUniform1iARB"/>
+ <command name="glUniform2iARB"/>
+ <command name="glUniform3iARB"/>
+ <command name="glUniform4iARB"/>
+ <command name="glUniform1fvARB"/>
+ <command name="glUniform2fvARB"/>
+ <command name="glUniform3fvARB"/>
+ <command name="glUniform4fvARB"/>
+ <command name="glUniform1ivARB"/>
+ <command name="glUniform2ivARB"/>
+ <command name="glUniform3ivARB"/>
+ <command name="glUniform4ivARB"/>
+ <command name="glUniformMatrix2fvARB"/>
+ <command name="glUniformMatrix3fvARB"/>
+ <command name="glUniformMatrix4fvARB"/>
+ <command name="glGetObjectParameterfvARB"/>
+ <command name="glGetObjectParameterivARB"/>
+ <command name="glGetInfoLogARB"/>
+ <command name="glGetAttachedObjectsARB"/>
+ <command name="glGetUniformLocationARB"/>
+ <command name="glGetActiveUniformARB"/>
+ <command name="glGetUniformfvARB"/>
+ <command name="glGetUniformivARB"/>
+ <command name="glGetShaderSourceARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_precision" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_stencil_export" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_storage_buffer_object" supported="gl|glcore">
+ <require>
+ <enum name="GL_SHADER_STORAGE_BUFFER"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_BINDING"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_START"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_SIZE"/>
+ <enum name="GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS"/>
+ <enum name="GL_MAX_SHADER_STORAGE_BLOCK_SIZE"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum name="GL_SHADER_STORAGE_BARRIER_BIT"/>
+ <enum name="GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES"/>
+ <enum name="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS"/>
+ <command name="glShaderStorageBlockBinding"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_subroutine" supported="gl|glcore">
+ <require>
+ <enum name="GL_ACTIVE_SUBROUTINES"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_UNIFORMS"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_MAX_LENGTH"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH"/>
+ <enum name="GL_MAX_SUBROUTINES"/>
+ <enum name="GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS"/>
+ <enum name="GL_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum name="GL_COMPATIBLE_SUBROUTINES"/>
+ <enum name="GL_UNIFORM_SIZE"/>
+ <enum name="GL_UNIFORM_NAME_LENGTH"/>
+ <command name="glGetSubroutineUniformLocation"/>
+ <command name="glGetSubroutineIndex"/>
+ <command name="glGetActiveSubroutineUniformiv"/>
+ <command name="glGetActiveSubroutineUniformName"/>
+ <command name="glGetActiveSubroutineName"/>
+ <command name="glUniformSubroutinesuiv"/>
+ <command name="glGetUniformSubroutineuiv"/>
+ <command name="glGetProgramStageiv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_texture_lod" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shading_language_100" supported="gl">
+ <require>
+ <enum name="GL_SHADING_LANGUAGE_VERSION_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shading_language_420pack" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shading_language_include" supported="gl|glcore">
+ <require>
+ <enum name="GL_SHADER_INCLUDE_ARB"/>
+ <enum name="GL_NAMED_STRING_LENGTH_ARB"/>
+ <enum name="GL_NAMED_STRING_TYPE_ARB"/>
+ <command name="glNamedStringARB"/>
+ <command name="glDeleteNamedStringARB"/>
+ <command name="glCompileShaderIncludeARB"/>
+ <command name="glIsNamedStringARB"/>
+ <command name="glGetNamedStringARB"/>
+ <command name="glGetNamedStringivARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shading_language_packing" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shadow" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_COMPARE_MODE_ARB"/>
+ <enum name="GL_TEXTURE_COMPARE_FUNC_ARB"/>
+ <enum name="GL_COMPARE_R_TO_TEXTURE_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shadow_ambient" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_COMPARE_FAIL_VALUE_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_sparse_texture" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_SPARSE_ARB"/>
+ <enum name="GL_VIRTUAL_PAGE_SIZE_INDEX_ARB"/>
+ <enum name="GL_MIN_SPARSE_LEVEL_ARB"/>
+ <enum name="GL_NUM_VIRTUAL_PAGE_SIZES_ARB"/>
+ <enum name="GL_VIRTUAL_PAGE_SIZE_X_ARB"/>
+ <enum name="GL_VIRTUAL_PAGE_SIZE_Y_ARB"/>
+ <enum name="GL_VIRTUAL_PAGE_SIZE_Z_ARB"/>
+ <enum name="GL_MAX_SPARSE_TEXTURE_SIZE_ARB"/>
+ <enum name="GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB"/>
+ <enum name="GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB"/>
+ <enum name="GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB"/>
+ <command name="glTexPageCommitmentARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_stencil_texturing" supported="gl|glcore">
+ <require>
+ <enum name="GL_DEPTH_STENCIL_TEXTURE_MODE"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_sync" supported="gl|glcore">
+ <require>
+ <enum name="GL_MAX_SERVER_WAIT_TIMEOUT"/>
+ <enum name="GL_OBJECT_TYPE"/>
+ <enum name="GL_SYNC_CONDITION"/>
+ <enum name="GL_SYNC_STATUS"/>
+ <enum name="GL_SYNC_FLAGS"/>
+ <enum name="GL_SYNC_FENCE"/>
+ <enum name="GL_SYNC_GPU_COMMANDS_COMPLETE"/>
+ <enum name="GL_UNSIGNALED"/>
+ <enum name="GL_SIGNALED"/>
+ <enum name="GL_ALREADY_SIGNALED"/>
+ <enum name="GL_TIMEOUT_EXPIRED"/>
+ <enum name="GL_CONDITION_SATISFIED"/>
+ <enum name="GL_WAIT_FAILED"/>
+ <enum name="GL_SYNC_FLUSH_COMMANDS_BIT"/>
+ <enum name="GL_TIMEOUT_IGNORED"/>
+ <command name="glFenceSync"/>
+ <command name="glIsSync"/>
+ <command name="glDeleteSync"/>
+ <command name="glClientWaitSync"/>
+ <command name="glWaitSync"/>
+ <command name="glGetInteger64v"/>
+ <command name="glGetSynciv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_tessellation_shader" supported="gl|glcore">
+ <require>
+ <enum name="GL_PATCHES"/>
+ <enum name="GL_PATCH_VERTICES"/>
+ <enum name="GL_PATCH_DEFAULT_INNER_LEVEL"/>
+ <enum name="GL_PATCH_DEFAULT_OUTER_LEVEL"/>
+ <enum name="GL_TESS_CONTROL_OUTPUT_VERTICES"/>
+ <enum name="GL_TESS_GEN_MODE"/>
+ <enum name="GL_TESS_GEN_SPACING"/>
+ <enum name="GL_TESS_GEN_VERTEX_ORDER"/>
+ <enum name="GL_TESS_GEN_POINT_MODE"/>
+ <enum name="GL_TRIANGLES"/>
+ <enum name="GL_ISOLINES"/>
+ <enum name="GL_QUADS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_FRACTIONAL_ODD"/>
+ <enum name="GL_FRACTIONAL_EVEN"/>
+ <enum name="GL_CCW"/>
+ <enum name="GL_CW"/>
+ <enum name="GL_MAX_PATCH_VERTICES"/>
+ <enum name="GL_MAX_TESS_GEN_LEVEL"/>
+ <enum name="GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_PATCH_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_TESS_CONTROL_INPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_TESS_CONTROL_SHADER"/>
+ <command name="glPatchParameteri"/>
+ <command name="glPatchParameterfv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_border_clamp" supported="gl">
+ <require>
+ <enum name="GL_CLAMP_TO_BORDER_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_BUFFER_ARB"/>
+ <enum name="GL_MAX_TEXTURE_BUFFER_SIZE_ARB"/>
+ <enum name="GL_TEXTURE_BINDING_BUFFER_ARB"/>
+ <enum name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB"/>
+ <enum name="GL_TEXTURE_BUFFER_FORMAT_ARB"/>
+ <command name="glTexBufferARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_buffer_object_rgb32" supported="gl|glcore">
+ <require>
+ <enum name="GL_RGB32F"/>
+ <enum name="GL_RGB32UI"/>
+ <enum name="GL_RGB32I"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_buffer_range" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_BUFFER_OFFSET"/>
+ <enum name="GL_TEXTURE_BUFFER_SIZE"/>
+ <enum name="GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT"/>
+ <command name="glTexBufferRange"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_compression" supported="gl">
+ <require>
+ <enum name="GL_COMPRESSED_ALPHA_ARB"/>
+ <enum name="GL_COMPRESSED_LUMINANCE_ARB"/>
+ <enum name="GL_COMPRESSED_LUMINANCE_ALPHA_ARB"/>
+ <enum name="GL_COMPRESSED_INTENSITY_ARB"/>
+ <enum name="GL_COMPRESSED_RGB_ARB"/>
+ <enum name="GL_COMPRESSED_RGBA_ARB"/>
+ <enum name="GL_TEXTURE_COMPRESSION_HINT_ARB"/>
+ <enum name="GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB"/>
+ <enum name="GL_TEXTURE_COMPRESSED_ARB"/>
+ <enum name="GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB"/>
+ <enum name="GL_COMPRESSED_TEXTURE_FORMATS_ARB"/>
+ <command name="glCompressedTexImage3DARB"/>
+ <command name="glCompressedTexImage2DARB"/>
+ <command name="glCompressedTexImage1DARB"/>
+ <command name="glCompressedTexSubImage3DARB"/>
+ <command name="glCompressedTexSubImage2DARB"/>
+ <command name="glCompressedTexSubImage1DARB"/>
+ <command name="glGetCompressedTexImageARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_compression_bptc" supported="gl|glcore">
+ <require>
+ <enum name="GL_COMPRESSED_RGBA_BPTC_UNORM_ARB"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB"/>
+ <enum name="GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB"/>
+ <enum name="GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_compression_rgtc" supported="gl|glcore">
+ <require>
+ <enum name="GL_COMPRESSED_RED_RGTC1"/>
+ <enum name="GL_COMPRESSED_SIGNED_RED_RGTC1"/>
+ <enum name="GL_COMPRESSED_RG_RGTC2"/>
+ <enum name="GL_COMPRESSED_SIGNED_RG_RGTC2"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_cube_map" supported="gl">
+ <require>
+ <enum name="GL_NORMAL_MAP_ARB"/>
+ <enum name="GL_REFLECTION_MAP_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_ARB"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB"/>
+ <enum name="GL_PROXY_TEXTURE_CUBE_MAP_ARB"/>
+ <enum name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_cube_map_array" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_CUBE_MAP_ARRAY_ARB"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB"/>
+ <enum name="GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB"/>
+ <enum name="GL_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
+ <enum name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB"/>
+ <enum name="GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_env_add" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_env_combine" supported="gl">
+ <require>
+ <enum name="GL_COMBINE_ARB"/>
+ <enum name="GL_COMBINE_RGB_ARB"/>
+ <enum name="GL_COMBINE_ALPHA_ARB"/>
+ <enum name="GL_SOURCE0_RGB_ARB"/>
+ <enum name="GL_SOURCE1_RGB_ARB"/>
+ <enum name="GL_SOURCE2_RGB_ARB"/>
+ <enum name="GL_SOURCE0_ALPHA_ARB"/>
+ <enum name="GL_SOURCE1_ALPHA_ARB"/>
+ <enum name="GL_SOURCE2_ALPHA_ARB"/>
+ <enum name="GL_OPERAND0_RGB_ARB"/>
+ <enum name="GL_OPERAND1_RGB_ARB"/>
+ <enum name="GL_OPERAND2_RGB_ARB"/>
+ <enum name="GL_OPERAND0_ALPHA_ARB"/>
+ <enum name="GL_OPERAND1_ALPHA_ARB"/>
+ <enum name="GL_OPERAND2_ALPHA_ARB"/>
+ <enum name="GL_RGB_SCALE_ARB"/>
+ <enum name="GL_ADD_SIGNED_ARB"/>
+ <enum name="GL_INTERPOLATE_ARB"/>
+ <enum name="GL_SUBTRACT_ARB"/>
+ <enum name="GL_CONSTANT_ARB"/>
+ <enum name="GL_PRIMARY_COLOR_ARB"/>
+ <enum name="GL_PREVIOUS_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_env_crossbar" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_env_dot3" supported="gl">
+ <require>
+ <enum name="GL_DOT3_RGB_ARB"/>
+ <enum name="GL_DOT3_RGBA_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_float" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_RED_TYPE_ARB"/>
+ <enum name="GL_TEXTURE_GREEN_TYPE_ARB"/>
+ <enum name="GL_TEXTURE_BLUE_TYPE_ARB"/>
+ <enum name="GL_TEXTURE_ALPHA_TYPE_ARB"/>
+ <enum name="GL_TEXTURE_LUMINANCE_TYPE_ARB"/>
+ <enum name="GL_TEXTURE_INTENSITY_TYPE_ARB"/>
+ <enum name="GL_TEXTURE_DEPTH_TYPE_ARB"/>
+ <enum name="GL_UNSIGNED_NORMALIZED_ARB"/>
+ <enum name="GL_RGBA32F_ARB"/>
+ <enum name="GL_RGB32F_ARB"/>
+ <enum name="GL_ALPHA32F_ARB"/>
+ <enum name="GL_INTENSITY32F_ARB"/>
+ <enum name="GL_LUMINANCE32F_ARB"/>
+ <enum name="GL_LUMINANCE_ALPHA32F_ARB"/>
+ <enum name="GL_RGBA16F_ARB"/>
+ <enum name="GL_RGB16F_ARB"/>
+ <enum name="GL_ALPHA16F_ARB"/>
+ <enum name="GL_INTENSITY16F_ARB"/>
+ <enum name="GL_LUMINANCE16F_ARB"/>
+ <enum name="GL_LUMINANCE_ALPHA16F_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_gather" supported="gl|glcore">
+ <require>
+ <enum name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB"/>
+ <enum name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB"/>
+ <enum name="GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_mirror_clamp_to_edge" supported="gl|glcore">
+ <require>
+ <enum name="GL_MIRROR_CLAMP_TO_EDGE"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_mirrored_repeat" supported="gl">
+ <require>
+ <enum name="GL_MIRRORED_REPEAT_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_multisample" supported="gl|glcore">
+ <require>
+ <enum name="GL_SAMPLE_POSITION"/>
+ <enum name="GL_SAMPLE_MASK"/>
+ <enum name="GL_SAMPLE_MASK_VALUE"/>
+ <enum name="GL_MAX_SAMPLE_MASK_WORDS"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE"/>
+ <enum name="GL_PROXY_TEXTURE_2D_MULTISAMPLE"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_2D_MULTISAMPLE"/>
+ <enum name="GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_TEXTURE_SAMPLES"/>
+ <enum name="GL_TEXTURE_FIXED_SAMPLE_LOCATIONS"/>
+ <enum name="GL_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_INT_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_MAX_COLOR_TEXTURE_SAMPLES"/>
+ <enum name="GL_MAX_DEPTH_TEXTURE_SAMPLES"/>
+ <enum name="GL_MAX_INTEGER_SAMPLES"/>
+ <command name="glTexImage2DMultisample"/>
+ <command name="glTexImage3DMultisample"/>
+ <command name="glGetMultisamplefv"/>
+ <command name="glSampleMaski"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_non_power_of_two" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_query_levels" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_query_lod" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_rectangle" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_RECTANGLE_ARB"/>
+ <enum name="GL_TEXTURE_BINDING_RECTANGLE_ARB"/>
+ <enum name="GL_PROXY_TEXTURE_RECTANGLE_ARB"/>
+ <enum name="GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_rg" supported="gl|glcore">
+ <require>
+ <enum name="GL_RG"/>
+ <enum name="GL_RG_INTEGER"/>
+ <enum name="GL_R8"/>
+ <enum name="GL_R16"/>
+ <enum name="GL_RG8"/>
+ <enum name="GL_RG16"/>
+ <enum name="GL_R16F"/>
+ <enum name="GL_R32F"/>
+ <enum name="GL_RG16F"/>
+ <enum name="GL_RG32F"/>
+ <enum name="GL_R8I"/>
+ <enum name="GL_R8UI"/>
+ <enum name="GL_R16I"/>
+ <enum name="GL_R16UI"/>
+ <enum name="GL_R32I"/>
+ <enum name="GL_R32UI"/>
+ <enum name="GL_RG8I"/>
+ <enum name="GL_RG8UI"/>
+ <enum name="GL_RG16I"/>
+ <enum name="GL_RG16UI"/>
+ <enum name="GL_RG32I"/>
+ <enum name="GL_RG32UI"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_rgb10_a2ui" supported="gl|glcore">
+ <require>
+ <enum name="GL_RGB10_A2UI"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_stencil8" supported="gl|glcore">
+ <require>
+ <enum name="GL_STENCIL_INDEX"/>
+ <enum name="GL_STENCIL_INDEX8"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_storage" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_IMMUTABLE_FORMAT"/>
+ <command name="glTexStorage1D"/>
+ <command name="glTexStorage2D"/>
+ <command name="glTexStorage3D"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_storage_multisample" supported="gl|glcore">
+ <require>
+ <command name="glTexStorage2DMultisample"/>
+ <command name="glTexStorage3DMultisample"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_swizzle" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_SWIZZLE_R"/>
+ <enum name="GL_TEXTURE_SWIZZLE_G"/>
+ <enum name="GL_TEXTURE_SWIZZLE_B"/>
+ <enum name="GL_TEXTURE_SWIZZLE_A"/>
+ <enum name="GL_TEXTURE_SWIZZLE_RGBA"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_view" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_VIEW_MIN_LEVEL"/>
+ <enum name="GL_TEXTURE_VIEW_NUM_LEVELS"/>
+ <enum name="GL_TEXTURE_VIEW_MIN_LAYER"/>
+ <enum name="GL_TEXTURE_VIEW_NUM_LAYERS"/>
+ <enum name="GL_TEXTURE_IMMUTABLE_LEVELS"/>
+ <command name="glTextureView"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_timer_query" supported="gl|glcore">
+ <require>
+ <enum name="GL_TIME_ELAPSED"/>
+ <enum name="GL_TIMESTAMP"/>
+ <command name="glQueryCounter"/>
+ <command name="glGetQueryObjecti64v"/>
+ <command name="glGetQueryObjectui64v"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_transform_feedback2" supported="gl|glcore">
+ <require>
+ <enum name="GL_TRANSFORM_FEEDBACK"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_PAUSED"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_ACTIVE"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BINDING"/>
+ <command name="glBindTransformFeedback"/>
+ <command name="glDeleteTransformFeedbacks"/>
+ <command name="glGenTransformFeedbacks"/>
+ <command name="glIsTransformFeedback"/>
+ <command name="glPauseTransformFeedback"/>
+ <command name="glResumeTransformFeedback"/>
+ <command name="glDrawTransformFeedback"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_transform_feedback3" supported="gl|glcore">
+ <require>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_BUFFERS"/>
+ <enum name="GL_MAX_VERTEX_STREAMS"/>
+ <command name="glDrawTransformFeedbackStream"/>
+ <command name="glBeginQueryIndexed"/>
+ <command name="glEndQueryIndexed"/>
+ <command name="glGetQueryIndexediv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_transform_feedback_instanced" supported="gl|glcore">
+ <require>
+ <command name="glDrawTransformFeedbackInstanced"/>
+ <command name="glDrawTransformFeedbackStreamInstanced"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_transpose_matrix" supported="gl">
+ <require>
+ <enum name="GL_TRANSPOSE_MODELVIEW_MATRIX_ARB"/>
+ <enum name="GL_TRANSPOSE_PROJECTION_MATRIX_ARB"/>
+ <enum name="GL_TRANSPOSE_TEXTURE_MATRIX_ARB"/>
+ <enum name="GL_TRANSPOSE_COLOR_MATRIX_ARB"/>
+ <command name="glLoadTransposeMatrixfARB"/>
+ <command name="glLoadTransposeMatrixdARB"/>
+ <command name="glMultTransposeMatrixfARB"/>
+ <command name="glMultTransposeMatrixdARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_uniform_buffer_object" supported="gl|glcore">
+ <require>
+ <enum name="GL_UNIFORM_BUFFER"/>
+ <enum name="GL_UNIFORM_BUFFER_BINDING"/>
+ <enum name="GL_UNIFORM_BUFFER_START"/>
+ <enum name="GL_UNIFORM_BUFFER_SIZE"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_GEOMETRY_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_COMBINED_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_UNIFORM_BUFFER_BINDINGS"/>
+ <enum name="GL_MAX_UNIFORM_BLOCK_SIZE"/>
+ <enum name="GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum name="GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum name="GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH"/>
+ <enum name="GL_ACTIVE_UNIFORM_BLOCKS"/>
+ <enum name="GL_UNIFORM_TYPE"/>
+ <enum name="GL_UNIFORM_SIZE"/>
+ <enum name="GL_UNIFORM_NAME_LENGTH"/>
+ <enum name="GL_UNIFORM_BLOCK_INDEX"/>
+ <enum name="GL_UNIFORM_OFFSET"/>
+ <enum name="GL_UNIFORM_ARRAY_STRIDE"/>
+ <enum name="GL_UNIFORM_MATRIX_STRIDE"/>
+ <enum name="GL_UNIFORM_IS_ROW_MAJOR"/>
+ <enum name="GL_UNIFORM_BLOCK_BINDING"/>
+ <enum name="GL_UNIFORM_BLOCK_DATA_SIZE"/>
+ <enum name="GL_UNIFORM_BLOCK_NAME_LENGTH"/>
+ <enum name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS"/>
+ <enum name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_INVALID_INDEX"/>
+ <command name="glGetUniformIndices"/>
+ <command name="glGetActiveUniformsiv"/>
+ <command name="glGetActiveUniformName"/>
+ <command name="glGetUniformBlockIndex"/>
+ <command name="glGetActiveUniformBlockiv"/>
+ <command name="glGetActiveUniformBlockName"/>
+ <command name="glUniformBlockBinding"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_array_bgra" supported="gl|glcore">
+ <require>
+ <enum name="GL_BGRA"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_array_object" supported="gl|glcore">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_BINDING"/>
+ <command name="glBindVertexArray"/>
+ <command name="glDeleteVertexArrays"/>
+ <command name="glGenVertexArrays"/>
+ <command name="glIsVertexArray"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_attrib_64bit" supported="gl|glcore">
+ <require>
+ <enum name="GL_RGB32I"/>
+ <enum name="GL_DOUBLE_VEC2"/>
+ <enum name="GL_DOUBLE_VEC3"/>
+ <enum name="GL_DOUBLE_VEC4"/>
+ <enum name="GL_DOUBLE_MAT2"/>
+ <enum name="GL_DOUBLE_MAT3"/>
+ <enum name="GL_DOUBLE_MAT4"/>
+ <enum name="GL_DOUBLE_MAT2x3"/>
+ <enum name="GL_DOUBLE_MAT2x4"/>
+ <enum name="GL_DOUBLE_MAT3x2"/>
+ <enum name="GL_DOUBLE_MAT3x4"/>
+ <enum name="GL_DOUBLE_MAT4x2"/>
+ <enum name="GL_DOUBLE_MAT4x3"/>
+ <command name="glVertexAttribL1d"/>
+ <command name="glVertexAttribL2d"/>
+ <command name="glVertexAttribL3d"/>
+ <command name="glVertexAttribL4d"/>
+ <command name="glVertexAttribL1dv"/>
+ <command name="glVertexAttribL2dv"/>
+ <command name="glVertexAttribL3dv"/>
+ <command name="glVertexAttribL4dv"/>
+ <command name="glVertexAttribLPointer"/>
+ <command name="glGetVertexAttribLdv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_attrib_binding" supported="gl|glcore">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_BINDING"/>
+ <enum name="GL_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum name="GL_VERTEX_BINDING_DIVISOR"/>
+ <enum name="GL_VERTEX_BINDING_OFFSET"/>
+ <enum name="GL_VERTEX_BINDING_STRIDE"/>
+ <enum name="GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum name="GL_MAX_VERTEX_ATTRIB_BINDINGS"/>
+ <command name="glBindVertexBuffer"/>
+ <command name="glVertexAttribFormat"/>
+ <command name="glVertexAttribIFormat"/>
+ <command name="glVertexAttribLFormat"/>
+ <command name="glVertexAttribBinding"/>
+ <command name="glVertexBindingDivisor"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_blend" supported="gl">
+ <require>
+ <enum name="GL_MAX_VERTEX_UNITS_ARB"/>
+ <enum name="GL_ACTIVE_VERTEX_UNITS_ARB"/>
+ <enum name="GL_WEIGHT_SUM_UNITY_ARB"/>
+ <enum name="GL_VERTEX_BLEND_ARB"/>
+ <enum name="GL_CURRENT_WEIGHT_ARB"/>
+ <enum name="GL_WEIGHT_ARRAY_TYPE_ARB"/>
+ <enum name="GL_WEIGHT_ARRAY_STRIDE_ARB"/>
+ <enum name="GL_WEIGHT_ARRAY_SIZE_ARB"/>
+ <enum name="GL_WEIGHT_ARRAY_POINTER_ARB"/>
+ <enum name="GL_WEIGHT_ARRAY_ARB"/>
+ <enum name="GL_MODELVIEW0_ARB"/>
+ <enum name="GL_MODELVIEW1_ARB"/>
+ <enum name="GL_MODELVIEW2_ARB"/>
+ <enum name="GL_MODELVIEW3_ARB"/>
+ <enum name="GL_MODELVIEW4_ARB"/>
+ <enum name="GL_MODELVIEW5_ARB"/>
+ <enum name="GL_MODELVIEW6_ARB"/>
+ <enum name="GL_MODELVIEW7_ARB"/>
+ <enum name="GL_MODELVIEW8_ARB"/>
+ <enum name="GL_MODELVIEW9_ARB"/>
+ <enum name="GL_MODELVIEW10_ARB"/>
+ <enum name="GL_MODELVIEW11_ARB"/>
+ <enum name="GL_MODELVIEW12_ARB"/>
+ <enum name="GL_MODELVIEW13_ARB"/>
+ <enum name="GL_MODELVIEW14_ARB"/>
+ <enum name="GL_MODELVIEW15_ARB"/>
+ <enum name="GL_MODELVIEW16_ARB"/>
+ <enum name="GL_MODELVIEW17_ARB"/>
+ <enum name="GL_MODELVIEW18_ARB"/>
+ <enum name="GL_MODELVIEW19_ARB"/>
+ <enum name="GL_MODELVIEW20_ARB"/>
+ <enum name="GL_MODELVIEW21_ARB"/>
+ <enum name="GL_MODELVIEW22_ARB"/>
+ <enum name="GL_MODELVIEW23_ARB"/>
+ <enum name="GL_MODELVIEW24_ARB"/>
+ <enum name="GL_MODELVIEW25_ARB"/>
+ <enum name="GL_MODELVIEW26_ARB"/>
+ <enum name="GL_MODELVIEW27_ARB"/>
+ <enum name="GL_MODELVIEW28_ARB"/>
+ <enum name="GL_MODELVIEW29_ARB"/>
+ <enum name="GL_MODELVIEW30_ARB"/>
+ <enum name="GL_MODELVIEW31_ARB"/>
+ <command name="glWeightbvARB"/>
+ <command name="glWeightsvARB"/>
+ <command name="glWeightivARB"/>
+ <command name="glWeightfvARB"/>
+ <command name="glWeightdvARB"/>
+ <command name="glWeightubvARB"/>
+ <command name="glWeightusvARB"/>
+ <command name="glWeightuivARB"/>
+ <command name="glWeightPointerARB"/>
+ <command name="glVertexBlendARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_BUFFER_SIZE_ARB"/>
+ <enum name="GL_BUFFER_USAGE_ARB"/>
+ <enum name="GL_ARRAY_BUFFER_ARB"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER_ARB"/>
+ <enum name="GL_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_VERTEX_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_NORMAL_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_COLOR_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_INDEX_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_READ_ONLY_ARB"/>
+ <enum name="GL_WRITE_ONLY_ARB"/>
+ <enum name="GL_READ_WRITE_ARB"/>
+ <enum name="GL_BUFFER_ACCESS_ARB"/>
+ <enum name="GL_BUFFER_MAPPED_ARB"/>
+ <enum name="GL_BUFFER_MAP_POINTER_ARB"/>
+ <enum name="GL_STREAM_DRAW_ARB"/>
+ <enum name="GL_STREAM_READ_ARB"/>
+ <enum name="GL_STREAM_COPY_ARB"/>
+ <enum name="GL_STATIC_DRAW_ARB"/>
+ <enum name="GL_STATIC_READ_ARB"/>
+ <enum name="GL_STATIC_COPY_ARB"/>
+ <enum name="GL_DYNAMIC_DRAW_ARB"/>
+ <enum name="GL_DYNAMIC_READ_ARB"/>
+ <enum name="GL_DYNAMIC_COPY_ARB"/>
+ <command name="glBindBufferARB"/>
+ <command name="glDeleteBuffersARB"/>
+ <command name="glGenBuffersARB"/>
+ <command name="glIsBufferARB"/>
+ <command name="glBufferDataARB"/>
+ <command name="glBufferSubDataARB"/>
+ <command name="glGetBufferSubDataARB"/>
+ <command name="glMapBufferARB"/>
+ <command name="glUnmapBufferARB"/>
+ <command name="glGetBufferParameterivARB"/>
+ <command name="glGetBufferPointervARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_program" supported="gl">
+ <require>
+ <enum name="GL_COLOR_SUM_ARB"/>
+ <enum name="GL_VERTEX_PROGRAM_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB"/>
+ <enum name="GL_CURRENT_VERTEX_ATTRIB_ARB"/>
+ <enum name="GL_PROGRAM_LENGTH_ARB"/>
+ <enum name="GL_PROGRAM_STRING_ARB"/>
+ <enum name="GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB"/>
+ <enum name="GL_MAX_PROGRAM_MATRICES_ARB"/>
+ <enum name="GL_CURRENT_MATRIX_STACK_DEPTH_ARB"/>
+ <enum name="GL_CURRENT_MATRIX_ARB"/>
+ <enum name="GL_VERTEX_PROGRAM_POINT_SIZE_ARB"/>
+ <enum name="GL_VERTEX_PROGRAM_TWO_SIDE_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB"/>
+ <enum name="GL_PROGRAM_ERROR_POSITION_ARB"/>
+ <enum name="GL_PROGRAM_BINDING_ARB"/>
+ <enum name="GL_MAX_VERTEX_ATTRIBS_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB"/>
+ <enum name="GL_PROGRAM_ERROR_STRING_ARB"/>
+ <enum name="GL_PROGRAM_FORMAT_ASCII_ARB"/>
+ <enum name="GL_PROGRAM_FORMAT_ARB"/>
+ <enum name="GL_PROGRAM_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_TEMPORARIES_ARB"/>
+ <enum name="GL_MAX_PROGRAM_TEMPORARIES_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_TEMPORARIES_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB"/>
+ <enum name="GL_PROGRAM_PARAMETERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_PARAMETERS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_PARAMETERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB"/>
+ <enum name="GL_PROGRAM_ATTRIBS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_ATTRIBS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_ATTRIBS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB"/>
+ <enum name="GL_PROGRAM_ADDRESS_REGISTERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_ENV_PARAMETERS_ARB"/>
+ <enum name="GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB"/>
+ <enum name="GL_TRANSPOSE_CURRENT_MATRIX_ARB"/>
+ <enum name="GL_MATRIX0_ARB"/>
+ <enum name="GL_MATRIX1_ARB"/>
+ <enum name="GL_MATRIX2_ARB"/>
+ <enum name="GL_MATRIX3_ARB"/>
+ <enum name="GL_MATRIX4_ARB"/>
+ <enum name="GL_MATRIX5_ARB"/>
+ <enum name="GL_MATRIX6_ARB"/>
+ <enum name="GL_MATRIX7_ARB"/>
+ <enum name="GL_MATRIX8_ARB"/>
+ <enum name="GL_MATRIX9_ARB"/>
+ <enum name="GL_MATRIX10_ARB"/>
+ <enum name="GL_MATRIX11_ARB"/>
+ <enum name="GL_MATRIX12_ARB"/>
+ <enum name="GL_MATRIX13_ARB"/>
+ <enum name="GL_MATRIX14_ARB"/>
+ <enum name="GL_MATRIX15_ARB"/>
+ <enum name="GL_MATRIX16_ARB"/>
+ <enum name="GL_MATRIX17_ARB"/>
+ <enum name="GL_MATRIX18_ARB"/>
+ <enum name="GL_MATRIX19_ARB"/>
+ <enum name="GL_MATRIX20_ARB"/>
+ <enum name="GL_MATRIX21_ARB"/>
+ <enum name="GL_MATRIX22_ARB"/>
+ <enum name="GL_MATRIX23_ARB"/>
+ <enum name="GL_MATRIX24_ARB"/>
+ <enum name="GL_MATRIX25_ARB"/>
+ <enum name="GL_MATRIX26_ARB"/>
+ <enum name="GL_MATRIX27_ARB"/>
+ <enum name="GL_MATRIX28_ARB"/>
+ <enum name="GL_MATRIX29_ARB"/>
+ <enum name="GL_MATRIX30_ARB"/>
+ <enum name="GL_MATRIX31_ARB"/>
+ <command name="glVertexAttrib1dARB"/>
+ <command name="glVertexAttrib1dvARB"/>
+ <command name="glVertexAttrib1fARB"/>
+ <command name="glVertexAttrib1fvARB"/>
+ <command name="glVertexAttrib1sARB"/>
+ <command name="glVertexAttrib1svARB"/>
+ <command name="glVertexAttrib2dARB"/>
+ <command name="glVertexAttrib2dvARB"/>
+ <command name="glVertexAttrib2fARB"/>
+ <command name="glVertexAttrib2fvARB"/>
+ <command name="glVertexAttrib2sARB"/>
+ <command name="glVertexAttrib2svARB"/>
+ <command name="glVertexAttrib3dARB"/>
+ <command name="glVertexAttrib3dvARB"/>
+ <command name="glVertexAttrib3fARB"/>
+ <command name="glVertexAttrib3fvARB"/>
+ <command name="glVertexAttrib3sARB"/>
+ <command name="glVertexAttrib3svARB"/>
+ <command name="glVertexAttrib4NbvARB"/>
+ <command name="glVertexAttrib4NivARB"/>
+ <command name="glVertexAttrib4NsvARB"/>
+ <command name="glVertexAttrib4NubARB"/>
+ <command name="glVertexAttrib4NubvARB"/>
+ <command name="glVertexAttrib4NuivARB"/>
+ <command name="glVertexAttrib4NusvARB"/>
+ <command name="glVertexAttrib4bvARB"/>
+ <command name="glVertexAttrib4dARB"/>
+ <command name="glVertexAttrib4dvARB"/>
+ <command name="glVertexAttrib4fARB"/>
+ <command name="glVertexAttrib4fvARB"/>
+ <command name="glVertexAttrib4ivARB"/>
+ <command name="glVertexAttrib4sARB"/>
+ <command name="glVertexAttrib4svARB"/>
+ <command name="glVertexAttrib4ubvARB"/>
+ <command name="glVertexAttrib4uivARB"/>
+ <command name="glVertexAttrib4usvARB"/>
+ <command name="glVertexAttribPointerARB"/>
+ <command name="glEnableVertexAttribArrayARB"/>
+ <command name="glDisableVertexAttribArrayARB"/>
+ <command name="glProgramStringARB"/>
+ <command name="glBindProgramARB"/>
+ <command name="glDeleteProgramsARB"/>
+ <command name="glGenProgramsARB"/>
+ <command name="glProgramEnvParameter4dARB"/>
+ <command name="glProgramEnvParameter4dvARB"/>
+ <command name="glProgramEnvParameter4fARB"/>
+ <command name="glProgramEnvParameter4fvARB"/>
+ <command name="glProgramLocalParameter4dARB"/>
+ <command name="glProgramLocalParameter4dvARB"/>
+ <command name="glProgramLocalParameter4fARB"/>
+ <command name="glProgramLocalParameter4fvARB"/>
+ <command name="glGetProgramEnvParameterdvARB"/>
+ <command name="glGetProgramEnvParameterfvARB"/>
+ <command name="glGetProgramLocalParameterdvARB"/>
+ <command name="glGetProgramLocalParameterfvARB"/>
+ <command name="glGetProgramivARB"/>
+ <command name="glGetProgramStringARB"/>
+ <command name="glGetVertexAttribdvARB"/>
+ <command name="glGetVertexAttribfvARB"/>
+ <command name="glGetVertexAttribivARB"/>
+ <command name="glGetVertexAttribPointervARB"/>
+ <command name="glIsProgramARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_shader" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_SHADER_ARB"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB"/>
+ <enum name="GL_MAX_VARYING_FLOATS_ARB"/>
+ <enum name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum name="GL_OBJECT_ACTIVE_ATTRIBUTES_ARB"/>
+ <enum name="GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB"/>
+ <enum name="GL_MAX_VERTEX_ATTRIBS_ARB"/>
+ <enum name="GL_MAX_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum name="GL_MAX_TEXTURE_COORDS_ARB"/>
+ <enum name="GL_VERTEX_PROGRAM_POINT_SIZE_ARB"/>
+ <enum name="GL_VERTEX_PROGRAM_TWO_SIDE_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB"/>
+ <enum name="GL_CURRENT_VERTEX_ATTRIB_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_FLOAT_VEC2_ARB"/>
+ <enum name="GL_FLOAT_VEC3_ARB"/>
+ <enum name="GL_FLOAT_VEC4_ARB"/>
+ <enum name="GL_FLOAT_MAT2_ARB"/>
+ <enum name="GL_FLOAT_MAT3_ARB"/>
+ <enum name="GL_FLOAT_MAT4_ARB"/>
+ <command name="glVertexAttrib1fARB"/>
+ <command name="glVertexAttrib1sARB"/>
+ <command name="glVertexAttrib1dARB"/>
+ <command name="glVertexAttrib2fARB"/>
+ <command name="glVertexAttrib2sARB"/>
+ <command name="glVertexAttrib2dARB"/>
+ <command name="glVertexAttrib3fARB"/>
+ <command name="glVertexAttrib3sARB"/>
+ <command name="glVertexAttrib3dARB"/>
+ <command name="glVertexAttrib4fARB"/>
+ <command name="glVertexAttrib4sARB"/>
+ <command name="glVertexAttrib4dARB"/>
+ <command name="glVertexAttrib4NubARB"/>
+ <command name="glVertexAttrib1fvARB"/>
+ <command name="glVertexAttrib1svARB"/>
+ <command name="glVertexAttrib1dvARB"/>
+ <command name="glVertexAttrib2fvARB"/>
+ <command name="glVertexAttrib2svARB"/>
+ <command name="glVertexAttrib2dvARB"/>
+ <command name="glVertexAttrib3fvARB"/>
+ <command name="glVertexAttrib3svARB"/>
+ <command name="glVertexAttrib3dvARB"/>
+ <command name="glVertexAttrib4fvARB"/>
+ <command name="glVertexAttrib4svARB"/>
+ <command name="glVertexAttrib4dvARB"/>
+ <command name="glVertexAttrib4ivARB"/>
+ <command name="glVertexAttrib4bvARB"/>
+ <command name="glVertexAttrib4ubvARB"/>
+ <command name="glVertexAttrib4usvARB"/>
+ <command name="glVertexAttrib4uivARB"/>
+ <command name="glVertexAttrib4NbvARB"/>
+ <command name="glVertexAttrib4NsvARB"/>
+ <command name="glVertexAttrib4NivARB"/>
+ <command name="glVertexAttrib4NubvARB"/>
+ <command name="glVertexAttrib4NusvARB"/>
+ <command name="glVertexAttrib4NuivARB"/>
+ <command name="glVertexAttribPointerARB"/>
+ <command name="glEnableVertexAttribArrayARB"/>
+ <command name="glDisableVertexAttribArrayARB"/>
+ <command name="glBindAttribLocationARB"/>
+ <command name="glGetActiveAttribARB"/>
+ <command name="glGetAttribLocationARB"/>
+ <command name="glGetVertexAttribdvARB"/>
+ <command name="glGetVertexAttribfvARB"/>
+ <command name="glGetVertexAttribivARB"/>
+ <command name="glGetVertexAttribPointervARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_type_10f_11f_11f_rev" supported="gl|glcore">
+ <require>
+ <enum name="GL_UNSIGNED_INT_10F_11F_11F_REV"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_type_2_10_10_10_rev" supported="gl|glcore">
+ <require>
+ <enum name="GL_UNSIGNED_INT_2_10_10_10_REV"/>
+ <enum name="GL_INT_2_10_10_10_REV"/>
+ <command name="glVertexAttribP1ui"/>
+ <command name="glVertexAttribP1uiv"/>
+ <command name="glVertexAttribP2ui"/>
+ <command name="glVertexAttribP2uiv"/>
+ <command name="glVertexAttribP3ui"/>
+ <command name="glVertexAttribP3uiv"/>
+ <command name="glVertexAttribP4ui"/>
+ <command name="glVertexAttribP4uiv"/>
+ </require>
+ <require api="gl" profile="compatibility">
+ <command name="glVertexP2ui"/>
+ <command name="glVertexP2uiv"/>
+ <command name="glVertexP3ui"/>
+ <command name="glVertexP3uiv"/>
+ <command name="glVertexP4ui"/>
+ <command name="glVertexP4uiv"/>
+ <command name="glTexCoordP1ui"/>
+ <command name="glTexCoordP1uiv"/>
+ <command name="glTexCoordP2ui"/>
+ <command name="glTexCoordP2uiv"/>
+ <command name="glTexCoordP3ui"/>
+ <command name="glTexCoordP3uiv"/>
+ <command name="glTexCoordP4ui"/>
+ <command name="glTexCoordP4uiv"/>
+ <command name="glMultiTexCoordP1ui"/>
+ <command name="glMultiTexCoordP1uiv"/>
+ <command name="glMultiTexCoordP2ui"/>
+ <command name="glMultiTexCoordP2uiv"/>
+ <command name="glMultiTexCoordP3ui"/>
+ <command name="glMultiTexCoordP3uiv"/>
+ <command name="glMultiTexCoordP4ui"/>
+ <command name="glMultiTexCoordP4uiv"/>
+ <command name="glNormalP3ui"/>
+ <command name="glNormalP3uiv"/>
+ <command name="glColorP3ui"/>
+ <command name="glColorP3uiv"/>
+ <command name="glColorP4ui"/>
+ <command name="glColorP4uiv"/>
+ <command name="glSecondaryColorP3ui"/>
+ <command name="glSecondaryColorP3uiv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_viewport_array" supported="gl|glcore">
+ <require>
+ <enum name="GL_SCISSOR_BOX"/>
+ <enum name="GL_VIEWPORT"/>
+ <enum name="GL_DEPTH_RANGE"/>
+ <enum name="GL_SCISSOR_TEST"/>
+ <enum name="GL_MAX_VIEWPORTS"/>
+ <enum name="GL_VIEWPORT_SUBPIXEL_BITS"/>
+ <enum name="GL_VIEWPORT_BOUNDS_RANGE"/>
+ <enum name="GL_LAYER_PROVOKING_VERTEX"/>
+ <enum name="GL_VIEWPORT_INDEX_PROVOKING_VERTEX"/>
+ <enum name="GL_UNDEFINED_VERTEX"/>
+ <enum name="GL_FIRST_VERTEX_CONVENTION"/>
+ <enum name="GL_LAST_VERTEX_CONVENTION"/>
+ <enum name="GL_PROVOKING_VERTEX"/>
+ <command name="glViewportArrayv"/>
+ <command name="glViewportIndexedf"/>
+ <command name="glViewportIndexedfv"/>
+ <command name="glScissorArrayv"/>
+ <command name="glScissorIndexed"/>
+ <command name="glScissorIndexedv"/>
+ <command name="glDepthRangeArrayv"/>
+ <command name="glDepthRangeIndexed"/>
+ <command name="glGetFloati_v"/>
+ <command name="glGetDoublei_v"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_window_pos" supported="gl">
+ <require>
+ <command name="glWindowPos2dARB"/>
+ <command name="glWindowPos2dvARB"/>
+ <command name="glWindowPos2fARB"/>
+ <command name="glWindowPos2fvARB"/>
+ <command name="glWindowPos2iARB"/>
+ <command name="glWindowPos2ivARB"/>
+ <command name="glWindowPos2sARB"/>
+ <command name="glWindowPos2svARB"/>
+ <command name="glWindowPos3dARB"/>
+ <command name="glWindowPos3dvARB"/>
+ <command name="glWindowPos3fARB"/>
+ <command name="glWindowPos3fvARB"/>
+ <command name="glWindowPos3iARB"/>
+ <command name="glWindowPos3ivARB"/>
+ <command name="glWindowPos3sARB"/>
+ <command name="glWindowPos3svARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARM_mali_program_binary" supported="gles2">
+ <require>
+ <enum name="GL_MALI_PROGRAM_BINARY_ARM"/>
+ </require>
+ </extension>
+ <extension name="GL_ARM_mali_shader_binary" supported="gles2">
+ <require>
+ <enum name="GL_MALI_SHADER_BINARY_ARM"/>
+ </require>
+ </extension>
+ <extension name="GL_ARM_rgba8" supported="gles1|gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ATI_draw_buffers" supported="gl">
+ <require>
+ <enum name="GL_MAX_DRAW_BUFFERS_ATI"/>
+ <enum name="GL_DRAW_BUFFER0_ATI"/>
+ <enum name="GL_DRAW_BUFFER1_ATI"/>
+ <enum name="GL_DRAW_BUFFER2_ATI"/>
+ <enum name="GL_DRAW_BUFFER3_ATI"/>
+ <enum name="GL_DRAW_BUFFER4_ATI"/>
+ <enum name="GL_DRAW_BUFFER5_ATI"/>
+ <enum name="GL_DRAW_BUFFER6_ATI"/>
+ <enum name="GL_DRAW_BUFFER7_ATI"/>
+ <enum name="GL_DRAW_BUFFER8_ATI"/>
+ <enum name="GL_DRAW_BUFFER9_ATI"/>
+ <enum name="GL_DRAW_BUFFER10_ATI"/>
+ <enum name="GL_DRAW_BUFFER11_ATI"/>
+ <enum name="GL_DRAW_BUFFER12_ATI"/>
+ <enum name="GL_DRAW_BUFFER13_ATI"/>
+ <enum name="GL_DRAW_BUFFER14_ATI"/>
+ <enum name="GL_DRAW_BUFFER15_ATI"/>
+ <command name="glDrawBuffersATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_element_array" supported="gl">
+ <require>
+ <enum name="GL_ELEMENT_ARRAY_ATI"/>
+ <enum name="GL_ELEMENT_ARRAY_TYPE_ATI"/>
+ <enum name="GL_ELEMENT_ARRAY_POINTER_ATI"/>
+ <command name="glElementPointerATI"/>
+ <command name="glDrawElementArrayATI"/>
+ <command name="glDrawRangeElementArrayATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_envmap_bumpmap" supported="gl">
+ <require>
+ <enum name="GL_BUMP_ROT_MATRIX_ATI"/>
+ <enum name="GL_BUMP_ROT_MATRIX_SIZE_ATI"/>
+ <enum name="GL_BUMP_NUM_TEX_UNITS_ATI"/>
+ <enum name="GL_BUMP_TEX_UNITS_ATI"/>
+ <enum name="GL_DUDV_ATI"/>
+ <enum name="GL_DU8DV8_ATI"/>
+ <enum name="GL_BUMP_ENVMAP_ATI"/>
+ <enum name="GL_BUMP_TARGET_ATI"/>
+ <command name="glTexBumpParameterivATI"/>
+ <command name="glTexBumpParameterfvATI"/>
+ <command name="glGetTexBumpParameterivATI"/>
+ <command name="glGetTexBumpParameterfvATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_fragment_shader" supported="gl">
+ <require>
+ <enum name="GL_FRAGMENT_SHADER_ATI"/>
+ <enum name="GL_REG_0_ATI"/>
+ <enum name="GL_REG_1_ATI"/>
+ <enum name="GL_REG_2_ATI"/>
+ <enum name="GL_REG_3_ATI"/>
+ <enum name="GL_REG_4_ATI"/>
+ <enum name="GL_REG_5_ATI"/>
+ <enum name="GL_REG_6_ATI"/>
+ <enum name="GL_REG_7_ATI"/>
+ <enum name="GL_REG_8_ATI"/>
+ <enum name="GL_REG_9_ATI"/>
+ <enum name="GL_REG_10_ATI"/>
+ <enum name="GL_REG_11_ATI"/>
+ <enum name="GL_REG_12_ATI"/>
+ <enum name="GL_REG_13_ATI"/>
+ <enum name="GL_REG_14_ATI"/>
+ <enum name="GL_REG_15_ATI"/>
+ <enum name="GL_REG_16_ATI"/>
+ <enum name="GL_REG_17_ATI"/>
+ <enum name="GL_REG_18_ATI"/>
+ <enum name="GL_REG_19_ATI"/>
+ <enum name="GL_REG_20_ATI"/>
+ <enum name="GL_REG_21_ATI"/>
+ <enum name="GL_REG_22_ATI"/>
+ <enum name="GL_REG_23_ATI"/>
+ <enum name="GL_REG_24_ATI"/>
+ <enum name="GL_REG_25_ATI"/>
+ <enum name="GL_REG_26_ATI"/>
+ <enum name="GL_REG_27_ATI"/>
+ <enum name="GL_REG_28_ATI"/>
+ <enum name="GL_REG_29_ATI"/>
+ <enum name="GL_REG_30_ATI"/>
+ <enum name="GL_REG_31_ATI"/>
+ <enum name="GL_CON_0_ATI"/>
+ <enum name="GL_CON_1_ATI"/>
+ <enum name="GL_CON_2_ATI"/>
+ <enum name="GL_CON_3_ATI"/>
+ <enum name="GL_CON_4_ATI"/>
+ <enum name="GL_CON_5_ATI"/>
+ <enum name="GL_CON_6_ATI"/>
+ <enum name="GL_CON_7_ATI"/>
+ <enum name="GL_CON_8_ATI"/>
+ <enum name="GL_CON_9_ATI"/>
+ <enum name="GL_CON_10_ATI"/>
+ <enum name="GL_CON_11_ATI"/>
+ <enum name="GL_CON_12_ATI"/>
+ <enum name="GL_CON_13_ATI"/>
+ <enum name="GL_CON_14_ATI"/>
+ <enum name="GL_CON_15_ATI"/>
+ <enum name="GL_CON_16_ATI"/>
+ <enum name="GL_CON_17_ATI"/>
+ <enum name="GL_CON_18_ATI"/>
+ <enum name="GL_CON_19_ATI"/>
+ <enum name="GL_CON_20_ATI"/>
+ <enum name="GL_CON_21_ATI"/>
+ <enum name="GL_CON_22_ATI"/>
+ <enum name="GL_CON_23_ATI"/>
+ <enum name="GL_CON_24_ATI"/>
+ <enum name="GL_CON_25_ATI"/>
+ <enum name="GL_CON_26_ATI"/>
+ <enum name="GL_CON_27_ATI"/>
+ <enum name="GL_CON_28_ATI"/>
+ <enum name="GL_CON_29_ATI"/>
+ <enum name="GL_CON_30_ATI"/>
+ <enum name="GL_CON_31_ATI"/>
+ <enum name="GL_MOV_ATI"/>
+ <enum name="GL_ADD_ATI"/>
+ <enum name="GL_MUL_ATI"/>
+ <enum name="GL_SUB_ATI"/>
+ <enum name="GL_DOT3_ATI"/>
+ <enum name="GL_DOT4_ATI"/>
+ <enum name="GL_MAD_ATI"/>
+ <enum name="GL_LERP_ATI"/>
+ <enum name="GL_CND_ATI"/>
+ <enum name="GL_CND0_ATI"/>
+ <enum name="GL_DOT2_ADD_ATI"/>
+ <enum name="GL_SECONDARY_INTERPOLATOR_ATI"/>
+ <enum name="GL_NUM_FRAGMENT_REGISTERS_ATI"/>
+ <enum name="GL_NUM_FRAGMENT_CONSTANTS_ATI"/>
+ <enum name="GL_NUM_PASSES_ATI"/>
+ <enum name="GL_NUM_INSTRUCTIONS_PER_PASS_ATI"/>
+ <enum name="GL_NUM_INSTRUCTIONS_TOTAL_ATI"/>
+ <enum name="GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI"/>
+ <enum name="GL_NUM_LOOPBACK_COMPONENTS_ATI"/>
+ <enum name="GL_COLOR_ALPHA_PAIRING_ATI"/>
+ <enum name="GL_SWIZZLE_STR_ATI"/>
+ <enum name="GL_SWIZZLE_STQ_ATI"/>
+ <enum name="GL_SWIZZLE_STR_DR_ATI"/>
+ <enum name="GL_SWIZZLE_STQ_DQ_ATI"/>
+ <enum name="GL_SWIZZLE_STRQ_ATI"/>
+ <enum name="GL_SWIZZLE_STRQ_DQ_ATI"/>
+ <enum name="GL_RED_BIT_ATI"/>
+ <enum name="GL_GREEN_BIT_ATI"/>
+ <enum name="GL_BLUE_BIT_ATI"/>
+ <enum name="GL_2X_BIT_ATI"/>
+ <enum name="GL_4X_BIT_ATI"/>
+ <enum name="GL_8X_BIT_ATI"/>
+ <enum name="GL_HALF_BIT_ATI"/>
+ <enum name="GL_QUARTER_BIT_ATI"/>
+ <enum name="GL_EIGHTH_BIT_ATI"/>
+ <enum name="GL_SATURATE_BIT_ATI"/>
+ <enum name="GL_COMP_BIT_ATI"/>
+ <enum name="GL_NEGATE_BIT_ATI"/>
+ <enum name="GL_BIAS_BIT_ATI"/>
+ <command name="glGenFragmentShadersATI"/>
+ <command name="glBindFragmentShaderATI"/>
+ <command name="glDeleteFragmentShaderATI"/>
+ <command name="glBeginFragmentShaderATI"/>
+ <command name="glEndFragmentShaderATI"/>
+ <command name="glPassTexCoordATI"/>
+ <command name="glSampleMapATI"/>
+ <command name="glColorFragmentOp1ATI"/>
+ <command name="glColorFragmentOp2ATI"/>
+ <command name="glColorFragmentOp3ATI"/>
+ <command name="glAlphaFragmentOp1ATI"/>
+ <command name="glAlphaFragmentOp2ATI"/>
+ <command name="glAlphaFragmentOp3ATI"/>
+ <command name="glSetFragmentShaderConstantATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_map_object_buffer" supported="gl">
+ <require>
+ <command name="glMapObjectBufferATI"/>
+ <command name="glUnmapObjectBufferATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_meminfo" supported="gl">
+ <require>
+ <enum name="GL_VBO_FREE_MEMORY_ATI"/>
+ <enum name="GL_TEXTURE_FREE_MEMORY_ATI"/>
+ <enum name="GL_RENDERBUFFER_FREE_MEMORY_ATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_pixel_format_float" supported="gl" comment="WGL extension defining some associated GL enums. ATI does not export this extension.">
+ <require>
+ <enum name="GL_RGBA_FLOAT_MODE_ATI"/>
+ <enum name="GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_pn_triangles" supported="gl">
+ <require>
+ <enum name="GL_PN_TRIANGLES_ATI"/>
+ <enum name="GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI"/>
+ <enum name="GL_PN_TRIANGLES_POINT_MODE_ATI"/>
+ <enum name="GL_PN_TRIANGLES_NORMAL_MODE_ATI"/>
+ <enum name="GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI"/>
+ <enum name="GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI"/>
+ <enum name="GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI"/>
+ <enum name="GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI"/>
+ <enum name="GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI"/>
+ <command name="glPNTrianglesiATI"/>
+ <command name="glPNTrianglesfATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_separate_stencil" supported="gl">
+ <require>
+ <enum name="GL_STENCIL_BACK_FUNC_ATI"/>
+ <enum name="GL_STENCIL_BACK_FAIL_ATI"/>
+ <enum name="GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI"/>
+ <enum name="GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI"/>
+ <command name="glStencilOpSeparateATI"/>
+ <command name="glStencilFuncSeparateATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_text_fragment_shader" supported="gl">
+ <require>
+ <enum name="GL_TEXT_FRAGMENT_SHADER_ATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_texture_env_combine3" supported="gl">
+ <require>
+ <enum name="GL_MODULATE_ADD_ATI"/>
+ <enum name="GL_MODULATE_SIGNED_ADD_ATI"/>
+ <enum name="GL_MODULATE_SUBTRACT_ATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_texture_float" supported="gl">
+ <require>
+ <enum name="GL_RGBA_FLOAT32_ATI"/>
+ <enum name="GL_RGB_FLOAT32_ATI"/>
+ <enum name="GL_ALPHA_FLOAT32_ATI"/>
+ <enum name="GL_INTENSITY_FLOAT32_ATI"/>
+ <enum name="GL_LUMINANCE_FLOAT32_ATI"/>
+ <enum name="GL_LUMINANCE_ALPHA_FLOAT32_ATI"/>
+ <enum name="GL_RGBA_FLOAT16_ATI"/>
+ <enum name="GL_RGB_FLOAT16_ATI"/>
+ <enum name="GL_ALPHA_FLOAT16_ATI"/>
+ <enum name="GL_INTENSITY_FLOAT16_ATI"/>
+ <enum name="GL_LUMINANCE_FLOAT16_ATI"/>
+ <enum name="GL_LUMINANCE_ALPHA_FLOAT16_ATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_texture_mirror_once" supported="gl">
+ <require>
+ <enum name="GL_MIRROR_CLAMP_ATI"/>
+ <enum name="GL_MIRROR_CLAMP_TO_EDGE_ATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_vertex_array_object" supported="gl">
+ <require>
+ <enum name="GL_STATIC_ATI"/>
+ <enum name="GL_DYNAMIC_ATI"/>
+ <enum name="GL_PRESERVE_ATI"/>
+ <enum name="GL_DISCARD_ATI"/>
+ <enum name="GL_OBJECT_BUFFER_SIZE_ATI"/>
+ <enum name="GL_OBJECT_BUFFER_USAGE_ATI"/>
+ <enum name="GL_ARRAY_OBJECT_BUFFER_ATI"/>
+ <enum name="GL_ARRAY_OBJECT_OFFSET_ATI"/>
+ <command name="glNewObjectBufferATI"/>
+ <command name="glIsObjectBufferATI"/>
+ <command name="glUpdateObjectBufferATI"/>
+ <command name="glGetObjectBufferfvATI"/>
+ <command name="glGetObjectBufferivATI"/>
+ <command name="glFreeObjectBufferATI"/>
+ <command name="glArrayObjectATI"/>
+ <command name="glGetArrayObjectfvATI"/>
+ <command name="glGetArrayObjectivATI"/>
+ <command name="glVariantArrayObjectATI"/>
+ <command name="glGetVariantArrayObjectfvATI"/>
+ <command name="glGetVariantArrayObjectivATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_vertex_attrib_array_object" supported="gl">
+ <require>
+ <command name="glVertexAttribArrayObjectATI"/>
+ <command name="glGetVertexAttribArrayObjectfvATI"/>
+ <command name="glGetVertexAttribArrayObjectivATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_vertex_streams" supported="gl">
+ <require>
+ <enum name="GL_MAX_VERTEX_STREAMS_ATI"/>
+ <enum name="GL_VERTEX_STREAM0_ATI"/>
+ <enum name="GL_VERTEX_STREAM1_ATI"/>
+ <enum name="GL_VERTEX_STREAM2_ATI"/>
+ <enum name="GL_VERTEX_STREAM3_ATI"/>
+ <enum name="GL_VERTEX_STREAM4_ATI"/>
+ <enum name="GL_VERTEX_STREAM5_ATI"/>
+ <enum name="GL_VERTEX_STREAM6_ATI"/>
+ <enum name="GL_VERTEX_STREAM7_ATI"/>
+ <enum name="GL_VERTEX_SOURCE_ATI"/>
+ <command name="glVertexStream1sATI"/>
+ <command name="glVertexStream1svATI"/>
+ <command name="glVertexStream1iATI"/>
+ <command name="glVertexStream1ivATI"/>
+ <command name="glVertexStream1fATI"/>
+ <command name="glVertexStream1fvATI"/>
+ <command name="glVertexStream1dATI"/>
+ <command name="glVertexStream1dvATI"/>
+ <command name="glVertexStream2sATI"/>
+ <command name="glVertexStream2svATI"/>
+ <command name="glVertexStream2iATI"/>
+ <command name="glVertexStream2ivATI"/>
+ <command name="glVertexStream2fATI"/>
+ <command name="glVertexStream2fvATI"/>
+ <command name="glVertexStream2dATI"/>
+ <command name="glVertexStream2dvATI"/>
+ <command name="glVertexStream3sATI"/>
+ <command name="glVertexStream3svATI"/>
+ <command name="glVertexStream3iATI"/>
+ <command name="glVertexStream3ivATI"/>
+ <command name="glVertexStream3fATI"/>
+ <command name="glVertexStream3fvATI"/>
+ <command name="glVertexStream3dATI"/>
+ <command name="glVertexStream3dvATI"/>
+ <command name="glVertexStream4sATI"/>
+ <command name="glVertexStream4svATI"/>
+ <command name="glVertexStream4iATI"/>
+ <command name="glVertexStream4ivATI"/>
+ <command name="glVertexStream4fATI"/>
+ <command name="glVertexStream4fvATI"/>
+ <command name="glVertexStream4dATI"/>
+ <command name="glVertexStream4dvATI"/>
+ <command name="glNormalStream3bATI"/>
+ <command name="glNormalStream3bvATI"/>
+ <command name="glNormalStream3sATI"/>
+ <command name="glNormalStream3svATI"/>
+ <command name="glNormalStream3iATI"/>
+ <command name="glNormalStream3ivATI"/>
+ <command name="glNormalStream3fATI"/>
+ <command name="glNormalStream3fvATI"/>
+ <command name="glNormalStream3dATI"/>
+ <command name="glNormalStream3dvATI"/>
+ <command name="glClientActiveVertexStreamATI"/>
+ <command name="glVertexBlendEnviATI"/>
+ <command name="glVertexBlendEnvfATI"/>
+ </require>
+ </extension>
+ <extension name="GL_DMP_shader_binary" supported="gles2">
+ <require>
+ <enum name="GL_SHADER_BINARY_DMP"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_422_pixels" supported="gl">
+ <require>
+ <enum name="GL_422_EXT"/>
+ <enum name="GL_422_REV_EXT"/>
+ <enum name="GL_422_AVERAGE_EXT"/>
+ <enum name="GL_422_REV_AVERAGE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_abgr" supported="gl">
+ <require>
+ <enum name="GL_ABGR_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_bgra" supported="gl">
+ <require>
+ <enum name="GL_BGR_EXT"/>
+ <enum name="GL_BGRA_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_bindable_uniform" supported="gl">
+ <require>
+ <enum name="GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT"/>
+ <enum name="GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT"/>
+ <enum name="GL_MAX_BINDABLE_UNIFORM_SIZE_EXT"/>
+ <enum name="GL_UNIFORM_BUFFER_EXT"/>
+ <enum name="GL_UNIFORM_BUFFER_BINDING_EXT"/>
+ <command name="glUniformBufferEXT"/>
+ <command name="glGetUniformBufferSizeEXT"/>
+ <command name="glGetUniformOffsetEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_blend_color" supported="gl">
+ <require>
+ <enum name="GL_CONSTANT_COLOR_EXT"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_COLOR_EXT"/>
+ <enum name="GL_CONSTANT_ALPHA_EXT"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_ALPHA_EXT"/>
+ <enum name="GL_BLEND_COLOR_EXT"/>
+ <command name="glBlendColorEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_blend_equation_separate" supported="gl">
+ <require>
+ <enum name="GL_BLEND_EQUATION_RGB_EXT"/>
+ <enum name="GL_BLEND_EQUATION_ALPHA_EXT"/>
+ <command name="glBlendEquationSeparateEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_blend_func_separate" supported="gl">
+ <require>
+ <enum name="GL_BLEND_DST_RGB_EXT"/>
+ <enum name="GL_BLEND_SRC_RGB_EXT"/>
+ <enum name="GL_BLEND_DST_ALPHA_EXT"/>
+ <enum name="GL_BLEND_SRC_ALPHA_EXT"/>
+ <command name="glBlendFuncSeparateEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_blend_logic_op" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_EXT_blend_minmax" supported="gl|gles1|gles2">
+ <require>
+ <enum name="GL_MIN_EXT"/>
+ <enum name="GL_MAX_EXT"/>
+ </require>
+ <require api="gl">
+ <enum name="GL_FUNC_ADD_EXT"/>
+ <enum name="GL_BLEND_EQUATION_EXT"/>
+ <command name="glBlendEquationEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_blend_subtract" supported="gl">
+ <require>
+ <enum name="GL_FUNC_SUBTRACT_EXT"/>
+ <enum name="GL_FUNC_REVERSE_SUBTRACT_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_clip_volume_hint" supported="gl">
+ <require>
+ <enum name="GL_CLIP_VOLUME_CLIPPING_HINT_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_cmyka" supported="gl">
+ <require>
+ <enum name="GL_CMYK_EXT"/>
+ <enum name="GL_CMYKA_EXT"/>
+ <enum name="GL_PACK_CMYK_HINT_EXT"/>
+ <enum name="GL_UNPACK_CMYK_HINT_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_color_buffer_half_float" supported="gles2">
+ <require>
+ <enum name="GL_RGBA16F_EXT"/>
+ <enum name="GL_RGB16F_EXT"/>
+ <enum name="GL_RG16F_EXT"/>
+ <enum name="GL_R16F_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT"/>
+ <enum name="GL_UNSIGNED_NORMALIZED_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_color_subtable" supported="gl">
+ <require>
+ <command name="glColorSubTableEXT"/>
+ <command name="glCopyColorSubTableEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_compiled_vertex_array" supported="gl">
+ <require>
+ <enum name="GL_ARRAY_ELEMENT_LOCK_FIRST_EXT"/>
+ <enum name="GL_ARRAY_ELEMENT_LOCK_COUNT_EXT"/>
+ <command name="glLockArraysEXT"/>
+ <command name="glUnlockArraysEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_convolution" supported="gl">
+ <require>
+ <enum name="GL_CONVOLUTION_1D_EXT"/>
+ <enum name="GL_CONVOLUTION_2D_EXT"/>
+ <enum name="GL_SEPARABLE_2D_EXT"/>
+ <enum name="GL_CONVOLUTION_BORDER_MODE_EXT"/>
+ <enum name="GL_CONVOLUTION_FILTER_SCALE_EXT"/>
+ <enum name="GL_CONVOLUTION_FILTER_BIAS_EXT"/>
+ <enum name="GL_REDUCE_EXT"/>
+ <enum name="GL_CONVOLUTION_FORMAT_EXT"/>
+ <enum name="GL_CONVOLUTION_WIDTH_EXT"/>
+ <enum name="GL_CONVOLUTION_HEIGHT_EXT"/>
+ <enum name="GL_MAX_CONVOLUTION_WIDTH_EXT"/>
+ <enum name="GL_MAX_CONVOLUTION_HEIGHT_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_BIAS_EXT"/>
+ <command name="glConvolutionFilter1DEXT"/>
+ <command name="glConvolutionFilter2DEXT"/>
+ <command name="glConvolutionParameterfEXT"/>
+ <command name="glConvolutionParameterfvEXT"/>
+ <command name="glConvolutionParameteriEXT"/>
+ <command name="glConvolutionParameterivEXT"/>
+ <command name="glCopyConvolutionFilter1DEXT"/>
+ <command name="glCopyConvolutionFilter2DEXT"/>
+ <command name="glGetConvolutionFilterEXT"/>
+ <command name="glGetConvolutionParameterfvEXT"/>
+ <command name="glGetConvolutionParameterivEXT"/>
+ <command name="glGetSeparableFilterEXT"/>
+ <command name="glSeparableFilter2DEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_coordinate_frame" supported="gl">
+ <require>
+ <enum name="GL_TANGENT_ARRAY_EXT"/>
+ <enum name="GL_BINORMAL_ARRAY_EXT"/>
+ <enum name="GL_CURRENT_TANGENT_EXT"/>
+ <enum name="GL_CURRENT_BINORMAL_EXT"/>
+ <enum name="GL_TANGENT_ARRAY_TYPE_EXT"/>
+ <enum name="GL_TANGENT_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_BINORMAL_ARRAY_TYPE_EXT"/>
+ <enum name="GL_BINORMAL_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_TANGENT_ARRAY_POINTER_EXT"/>
+ <enum name="GL_BINORMAL_ARRAY_POINTER_EXT"/>
+ <enum name="GL_MAP1_TANGENT_EXT"/>
+ <enum name="GL_MAP2_TANGENT_EXT"/>
+ <enum name="GL_MAP1_BINORMAL_EXT"/>
+ <enum name="GL_MAP2_BINORMAL_EXT"/>
+ <command name="glTangent3bEXT"/>
+ <command name="glTangent3bvEXT"/>
+ <command name="glTangent3dEXT"/>
+ <command name="glTangent3dvEXT"/>
+ <command name="glTangent3fEXT"/>
+ <command name="glTangent3fvEXT"/>
+ <command name="glTangent3iEXT"/>
+ <command name="glTangent3ivEXT"/>
+ <command name="glTangent3sEXT"/>
+ <command name="glTangent3svEXT"/>
+ <command name="glBinormal3bEXT"/>
+ <command name="glBinormal3bvEXT"/>
+ <command name="glBinormal3dEXT"/>
+ <command name="glBinormal3dvEXT"/>
+ <command name="glBinormal3fEXT"/>
+ <command name="glBinormal3fvEXT"/>
+ <command name="glBinormal3iEXT"/>
+ <command name="glBinormal3ivEXT"/>
+ <command name="glBinormal3sEXT"/>
+ <command name="glBinormal3svEXT"/>
+ <command name="glTangentPointerEXT"/>
+ <command name="glBinormalPointerEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_copy_texture" supported="gl">
+ <require>
+ <command name="glCopyTexImage1DEXT"/>
+ <command name="glCopyTexImage2DEXT"/>
+ <command name="glCopyTexSubImage1DEXT"/>
+ <command name="glCopyTexSubImage2DEXT"/>
+ <command name="glCopyTexSubImage3DEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_cull_vertex" supported="gl">
+ <require>
+ <enum name="GL_CULL_VERTEX_EXT"/>
+ <enum name="GL_CULL_VERTEX_EYE_POSITION_EXT"/>
+ <enum name="GL_CULL_VERTEX_OBJECT_POSITION_EXT"/>
+ <command name="glCullParameterdvEXT"/>
+ <command name="glCullParameterfvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_debug_label" supported="gl|gles2">
+ <require>
+ <enum name="GL_PROGRAM_PIPELINE_OBJECT_EXT"/>
+ <enum name="GL_PROGRAM_OBJECT_EXT"/>
+ <enum name="GL_SHADER_OBJECT_EXT"/>
+ <enum name="GL_BUFFER_OBJECT_EXT"/>
+ <enum name="GL_QUERY_OBJECT_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_OBJECT_EXT"/>
+ <command name="glLabelObjectEXT"/>
+ <command name="glGetObjectLabelEXT"/>
+ </require>
+ <require comment="Depends on OpenGL ES 3.0">
+ <enum name="GL_SAMPLER"/>
+ <enum name="GL_TRANSFORM_FEEDBACK"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_debug_marker" supported="gl|gles2">
+ <require>
+ <command name="glInsertEventMarkerEXT"/>
+ <command name="glPushGroupMarkerEXT"/>
+ <command name="glPopGroupMarkerEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_depth_bounds_test" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_BOUNDS_TEST_EXT"/>
+ <enum name="GL_DEPTH_BOUNDS_EXT"/>
+ <command name="glDepthBoundsEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_direct_state_access" supported="gl" comment="DSA extension doesn't identify which interfaces are core profile and keeps getting expanded. This is in sync with revision 34, 2010/09/07">
+ <require>
+ <enum name="GL_PROGRAM_MATRIX_EXT"/>
+ <enum name="GL_TRANSPOSE_PROGRAM_MATRIX_EXT"/>
+ <enum name="GL_PROGRAM_MATRIX_STACK_DEPTH_EXT"/>
+ </require>
+ <require comment="OpenGL 1.0: New matrix commands">
+ <command name="glMatrixLoadfEXT"/>
+ <command name="glMatrixLoaddEXT"/>
+ <command name="glMatrixMultfEXT"/>
+ <command name="glMatrixMultdEXT"/>
+ <command name="glMatrixLoadIdentityEXT"/>
+ <command name="glMatrixRotatefEXT"/>
+ <command name="glMatrixRotatedEXT"/>
+ <command name="glMatrixScalefEXT"/>
+ <command name="glMatrixScaledEXT"/>
+ <command name="glMatrixTranslatefEXT"/>
+ <command name="glMatrixTranslatedEXT"/>
+ <command name="glMatrixFrustumEXT"/>
+ <command name="glMatrixOrthoEXT"/>
+ <command name="glMatrixPopEXT"/>
+ <command name="glMatrixPushEXT"/>
+ </require>
+ <require comment="OpenGL 1.1: New client commands">
+ <command name="glClientAttribDefaultEXT"/>
+ <command name="glPushClientAttribDefaultEXT"/>
+ </require>
+ <require comment="OpenGL 1.1: New texture object commands">
+ <command name="glTextureParameterfEXT"/>
+ <command name="glTextureParameterfvEXT"/>
+ <command name="glTextureParameteriEXT"/>
+ <command name="glTextureParameterivEXT"/>
+ <command name="glTextureImage1DEXT"/>
+ <command name="glTextureImage2DEXT"/>
+ <command name="glTextureSubImage1DEXT"/>
+ <command name="glTextureSubImage2DEXT"/>
+ <command name="glCopyTextureImage1DEXT"/>
+ <command name="glCopyTextureImage2DEXT"/>
+ <command name="glCopyTextureSubImage1DEXT"/>
+ <command name="glCopyTextureSubImage2DEXT"/>
+ <command name="glGetTextureImageEXT"/>
+ <command name="glGetTextureParameterfvEXT"/>
+ <command name="glGetTextureParameterivEXT"/>
+ <command name="glGetTextureLevelParameterfvEXT"/>
+ <command name="glGetTextureLevelParameterivEXT"/>
+ </require>
+ <require comment="OpenGL 1.2: New 3D texture object commands">
+ <command name="glTextureImage3DEXT"/>
+ <command name="glTextureSubImage3DEXT"/>
+ <command name="glCopyTextureSubImage3DEXT"/>
+ </require>
+ <require comment="OpenGL 1.2.1: New multitexture commands">
+ <command name="glBindMultiTextureEXT"/>
+ <command name="glMultiTexCoordPointerEXT"/>
+ <command name="glMultiTexEnvfEXT"/>
+ <command name="glMultiTexEnvfvEXT"/>
+ <command name="glMultiTexEnviEXT"/>
+ <command name="glMultiTexEnvivEXT"/>
+ <command name="glMultiTexGendEXT"/>
+ <command name="glMultiTexGendvEXT"/>
+ <command name="glMultiTexGenfEXT"/>
+ <command name="glMultiTexGenfvEXT"/>
+ <command name="glMultiTexGeniEXT"/>
+ <command name="glMultiTexGenivEXT"/>
+ <command name="glGetMultiTexEnvfvEXT"/>
+ <command name="glGetMultiTexEnvivEXT"/>
+ <command name="glGetMultiTexGendvEXT"/>
+ <command name="glGetMultiTexGenfvEXT"/>
+ <command name="glGetMultiTexGenivEXT"/>
+ <command name="glMultiTexParameteriEXT"/>
+ <command name="glMultiTexParameterivEXT"/>
+ <command name="glMultiTexParameterfEXT"/>
+ <command name="glMultiTexParameterfvEXT"/>
+ <command name="glMultiTexImage1DEXT"/>
+ <command name="glMultiTexImage2DEXT"/>
+ <command name="glMultiTexSubImage1DEXT"/>
+ <command name="glMultiTexSubImage2DEXT"/>
+ <command name="glCopyMultiTexImage1DEXT"/>
+ <command name="glCopyMultiTexImage2DEXT"/>
+ <command name="glCopyMultiTexSubImage1DEXT"/>
+ <command name="glCopyMultiTexSubImage2DEXT"/>
+ <command name="glGetMultiTexImageEXT"/>
+ <command name="glGetMultiTexParameterfvEXT"/>
+ <command name="glGetMultiTexParameterivEXT"/>
+ <command name="glGetMultiTexLevelParameterfvEXT"/>
+ <command name="glGetMultiTexLevelParameterivEXT"/>
+ <command name="glMultiTexImage3DEXT"/>
+ <command name="glMultiTexSubImage3DEXT"/>
+ <command name="glCopyMultiTexSubImage3DEXT"/>
+ </require>
+ <require comment="OpenGL 1.2.1: New indexed texture commands">
+ <command name="glEnableClientStateIndexedEXT"/>
+ <command name="glDisableClientStateIndexedEXT"/>
+ </require>
+ <require comment="OpenGL 1.2.1: New indexed generic queries">
+ <command name="glGetFloatIndexedvEXT"/>
+ <command name="glGetDoubleIndexedvEXT"/>
+ <command name="glGetPointerIndexedvEXT"/>
+ </require>
+ <require comment="OpenGL 1.2.1: Extend EXT_draw_buffers2 commands">
+ <command name="glEnableIndexedEXT"/>
+ <command name="glDisableIndexedEXT"/>
+ <command name="glIsEnabledIndexedEXT"/>
+ <command name="glGetIntegerIndexedvEXT"/>
+ <command name="glGetBooleanIndexedvEXT"/>
+ </require>
+ <require comment="OpenGL 1.3: New compressed texture object commands">
+ <command name="glCompressedTextureImage3DEXT"/>
+ <command name="glCompressedTextureImage2DEXT"/>
+ <command name="glCompressedTextureImage1DEXT"/>
+ <command name="glCompressedTextureSubImage3DEXT"/>
+ <command name="glCompressedTextureSubImage2DEXT"/>
+ <command name="glCompressedTextureSubImage1DEXT"/>
+ <command name="glGetCompressedTextureImageEXT"/>
+ </require>
+ <require comment="OpenGL 1.3: New multitexture compressed texture commands">
+ <command name="glCompressedMultiTexImage3DEXT"/>
+ <command name="glCompressedMultiTexImage2DEXT"/>
+ <command name="glCompressedMultiTexImage1DEXT"/>
+ <command name="glCompressedMultiTexSubImage3DEXT"/>
+ <command name="glCompressedMultiTexSubImage2DEXT"/>
+ <command name="glCompressedMultiTexSubImage1DEXT"/>
+ <command name="glGetCompressedMultiTexImageEXT"/>
+ </require>
+ <require comment="OpenGL 1.3: New transpose matrix commands">
+ <command name="glMatrixLoadTransposefEXT"/>
+ <command name="glMatrixLoadTransposedEXT"/>
+ <command name="glMatrixMultTransposefEXT"/>
+ <command name="glMatrixMultTransposedEXT"/>
+ </require>
+ <require comment="OpenGL 1.5: New buffer commands">
+ <command name="glNamedBufferDataEXT"/>
+ <command name="glNamedBufferSubDataEXT"/>
+ <command name="glMapNamedBufferEXT"/>
+ <command name="glUnmapNamedBufferEXT"/>
+ <command name="glGetNamedBufferParameterivEXT"/>
+ <command name="glGetNamedBufferPointervEXT"/>
+ <command name="glGetNamedBufferSubDataEXT"/>
+ </require>
+ <require comment="OpenGL 2.0: New uniform commands">
+ <command name="glProgramUniform1fEXT"/>
+ <command name="glProgramUniform2fEXT"/>
+ <command name="glProgramUniform3fEXT"/>
+ <command name="glProgramUniform4fEXT"/>
+ <command name="glProgramUniform1iEXT"/>
+ <command name="glProgramUniform2iEXT"/>
+ <command name="glProgramUniform3iEXT"/>
+ <command name="glProgramUniform4iEXT"/>
+ <command name="glProgramUniform1fvEXT"/>
+ <command name="glProgramUniform2fvEXT"/>
+ <command name="glProgramUniform3fvEXT"/>
+ <command name="glProgramUniform4fvEXT"/>
+ <command name="glProgramUniform1ivEXT"/>
+ <command name="glProgramUniform2ivEXT"/>
+ <command name="glProgramUniform3ivEXT"/>
+ <command name="glProgramUniform4ivEXT"/>
+ <command name="glProgramUniformMatrix2fvEXT"/>
+ <command name="glProgramUniformMatrix3fvEXT"/>
+ <command name="glProgramUniformMatrix4fvEXT"/>
+ </require>
+ <require comment="OpenGL 2.1: New uniform matrix commands">
+ <command name="glProgramUniformMatrix2x3fvEXT"/>
+ <command name="glProgramUniformMatrix3x2fvEXT"/>
+ <command name="glProgramUniformMatrix2x4fvEXT"/>
+ <command name="glProgramUniformMatrix4x2fvEXT"/>
+ <command name="glProgramUniformMatrix3x4fvEXT"/>
+ <command name="glProgramUniformMatrix4x3fvEXT"/>
+ </require>
+ <require comment="Extend EXT_texture_buffer_object commands">
+ <command name="glTextureBufferEXT"/>
+ <command name="glMultiTexBufferEXT"/>
+ </require>
+ <require comment="Extend EXT_texture_integer commands">
+ <command name="glTextureParameterIivEXT"/>
+ <command name="glTextureParameterIuivEXT"/>
+ <command name="glGetTextureParameterIivEXT"/>
+ <command name="glGetTextureParameterIuivEXT"/>
+ <command name="glMultiTexParameterIivEXT"/>
+ <command name="glMultiTexParameterIuivEXT"/>
+ <command name="glGetMultiTexParameterIivEXT"/>
+ <command name="glGetMultiTexParameterIuivEXT"/>
+ </require>
+ <require comment="Extend EXT_gpu_shader4 commands">
+ <command name="glProgramUniform1uiEXT"/>
+ <command name="glProgramUniform2uiEXT"/>
+ <command name="glProgramUniform3uiEXT"/>
+ <command name="glProgramUniform4uiEXT"/>
+ <command name="glProgramUniform1uivEXT"/>
+ <command name="glProgramUniform2uivEXT"/>
+ <command name="glProgramUniform3uivEXT"/>
+ <command name="glProgramUniform4uivEXT"/>
+ </require>
+ <require comment="Extend EXT_gpu_program_parameters commands">
+ <command name="glNamedProgramLocalParameters4fvEXT"/>
+ </require>
+ <require comment="Extend NV_gpu_program4 commands">
+ <command name="glNamedProgramLocalParameterI4iEXT"/>
+ <command name="glNamedProgramLocalParameterI4ivEXT"/>
+ <command name="glNamedProgramLocalParametersI4ivEXT"/>
+ <command name="glNamedProgramLocalParameterI4uiEXT"/>
+ <command name="glNamedProgramLocalParameterI4uivEXT"/>
+ <command name="glNamedProgramLocalParametersI4uivEXT"/>
+ <command name="glGetNamedProgramLocalParameterIivEXT"/>
+ <command name="glGetNamedProgramLocalParameterIuivEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New indexed texture commands">
+ <command name="glEnableClientStateiEXT"/>
+ <command name="glDisableClientStateiEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New indexed generic queries">
+ <command name="glGetFloati_vEXT"/>
+ <command name="glGetDoublei_vEXT"/>
+ <command name="glGetPointeri_vEXT"/>
+ </require>
+ <require comment="Extend GL_ARB_vertex_program commands">
+ <command name="glNamedProgramStringEXT"/>
+ <command name="glNamedProgramLocalParameter4dEXT"/>
+ <command name="glNamedProgramLocalParameter4dvEXT"/>
+ <command name="glNamedProgramLocalParameter4fEXT"/>
+ <command name="glNamedProgramLocalParameter4fvEXT"/>
+ <command name="glGetNamedProgramLocalParameterdvEXT"/>
+ <command name="glGetNamedProgramLocalParameterfvEXT"/>
+ <command name="glGetNamedProgramivEXT"/>
+ <command name="glGetNamedProgramStringEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New renderbuffer commands">
+ <command name="glNamedRenderbufferStorageEXT"/>
+ <command name="glGetNamedRenderbufferParameterivEXT"/>
+ <command name="glNamedRenderbufferStorageMultisampleEXT"/>
+ </require>
+ <require comment="Extend NV_framebuffer_multisample_coverage">
+ <command name="glNamedRenderbufferStorageMultisampleCoverageEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New framebuffer commands">
+ <command name="glCheckNamedFramebufferStatusEXT"/>
+ <command name="glNamedFramebufferTexture1DEXT"/>
+ <command name="glNamedFramebufferTexture2DEXT"/>
+ <command name="glNamedFramebufferTexture3DEXT"/>
+ <command name="glNamedFramebufferRenderbufferEXT"/>
+ <command name="glGetNamedFramebufferAttachmentParameterivEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New texture commands">
+ <command name="glGenerateTextureMipmapEXT"/>
+ <command name="glGenerateMultiTexMipmapEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New framebuffer commands">
+ <command name="glFramebufferDrawBufferEXT"/>
+ <command name="glFramebufferDrawBuffersEXT"/>
+ <command name="glFramebufferReadBufferEXT"/>
+ <command name="glGetFramebufferParameterivEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New buffer data copy command">
+ <command name="glNamedCopyBufferSubDataEXT"/>
+ </require>
+ <require comment="Extend EXT_geometry_shader4 or NV_gpu_program4">
+ <command name="glNamedFramebufferTextureEXT"/>
+ <command name="glNamedFramebufferTextureLayerEXT"/>
+ <command name="glNamedFramebufferTextureFaceEXT"/>
+ </require>
+ <require comment="Extend NV_explicit_multisample">
+ <command name="glTextureRenderbufferEXT"/>
+ <command name="glMultiTexRenderbufferEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New vertex array specification commands for VAO">
+ <command name="glVertexArrayVertexOffsetEXT"/>
+ <command name="glVertexArrayColorOffsetEXT"/>
+ <command name="glVertexArrayEdgeFlagOffsetEXT"/>
+ <command name="glVertexArrayIndexOffsetEXT"/>
+ <command name="glVertexArrayNormalOffsetEXT"/>
+ <command name="glVertexArrayTexCoordOffsetEXT"/>
+ <command name="glVertexArrayMultiTexCoordOffsetEXT"/>
+ <command name="glVertexArrayFogCoordOffsetEXT"/>
+ <command name="glVertexArraySecondaryColorOffsetEXT"/>
+ <command name="glVertexArrayVertexAttribOffsetEXT"/>
+ <command name="glVertexArrayVertexAttribIOffsetEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New vertex array enable commands for VAO">
+ <command name="glEnableVertexArrayEXT"/>
+ <command name="glDisableVertexArrayEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New vertex attrib array enable commands for VAO">
+ <command name="glEnableVertexArrayAttribEXT"/>
+ <command name="glDisableVertexArrayAttribEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New queries for VAO">
+ <command name="glGetVertexArrayIntegervEXT"/>
+ <command name="glGetVertexArrayPointervEXT"/>
+ <command name="glGetVertexArrayIntegeri_vEXT"/>
+ <command name="glGetVertexArrayPointeri_vEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New buffer commands">
+ <command name="glMapNamedBufferRangeEXT"/>
+ <command name="glFlushMappedNamedBufferRangeEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_buffer_storage">
+ <command name="glNamedBufferStorageEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_clear_buffer_object">
+ <command name="glClearNamedBufferDataEXT"/>
+ <command name="glClearNamedBufferSubDataEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_framebuffer_no_attachments">
+ <command name="glNamedFramebufferParameteriEXT"/>
+ <command name="glGetNamedFramebufferParameterivEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_gpu_shader_fp64">
+ <command name="glProgramUniform1dEXT"/>
+ <command name="glProgramUniform2dEXT"/>
+ <command name="glProgramUniform3dEXT"/>
+ <command name="glProgramUniform4dEXT"/>
+ <command name="glProgramUniform1dvEXT"/>
+ <command name="glProgramUniform2dvEXT"/>
+ <command name="glProgramUniform3dvEXT"/>
+ <command name="glProgramUniform4dvEXT"/>
+ <command name="glProgramUniformMatrix2dvEXT"/>
+ <command name="glProgramUniformMatrix3dvEXT"/>
+ <command name="glProgramUniformMatrix4dvEXT"/>
+ <command name="glProgramUniformMatrix2x3dvEXT"/>
+ <command name="glProgramUniformMatrix2x4dvEXT"/>
+ <command name="glProgramUniformMatrix3x2dvEXT"/>
+ <command name="glProgramUniformMatrix3x4dvEXT"/>
+ <command name="glProgramUniformMatrix4x2dvEXT"/>
+ <command name="glProgramUniformMatrix4x3dvEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_texture_buffer_range">
+ <command name="glTextureBufferRangeEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_texture_storage">
+ <command name="glTextureStorage1DEXT"/>
+ <command name="glTextureStorage2DEXT"/>
+ <command name="glTextureStorage3DEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_texture_storage_multisample">
+ <command name="glTextureStorage2DMultisampleEXT"/>
+ <command name="glTextureStorage3DMultisampleEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_vertex_attrib_binding">
+ <command name="glVertexArrayBindVertexBufferEXT"/>
+ <command name="glVertexArrayVertexAttribFormatEXT"/>
+ <command name="glVertexArrayVertexAttribIFormatEXT"/>
+ <command name="glVertexArrayVertexAttribLFormatEXT"/>
+ <command name="glVertexArrayVertexAttribBindingEXT"/>
+ <command name="glVertexArrayVertexBindingDivisorEXT"/>
+ </require>
+ <require comment="Extended by GL_EXT_vertex_attrib_64bit">
+ <command name="glVertexArrayVertexAttribLOffsetEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_sparse_texture">
+ <command name="glTexturePageCommitmentEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_instanced_arrays">
+ <command name="glVertexArrayVertexAttribDivisorEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_discard_framebuffer" supported="gles1|gles2">
+ <require>
+ <enum name="GL_COLOR_EXT"/>
+ <enum name="GL_DEPTH_EXT"/>
+ <enum name="GL_STENCIL_EXT"/>
+ <command name="glDiscardFramebufferEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_disjoint_timer_query" supported="gles2">
+ <require>
+ <enum name="GL_QUERY_COUNTER_BITS_EXT"/>
+ <enum name="GL_CURRENT_QUERY_EXT"/>
+ <enum name="GL_QUERY_RESULT_EXT"/>
+ <enum name="GL_QUERY_RESULT_AVAILABLE_EXT"/>
+ <enum name="GL_TIME_ELAPSED_EXT"/>
+ <enum name="GL_TIMESTAMP_EXT"/>
+ <enum name="GL_GPU_DISJOINT_EXT"/>
+ <command name="glGenQueriesEXT"/>
+ <command name="glDeleteQueriesEXT"/>
+ <command name="glIsQueryEXT"/>
+ <command name="glBeginQueryEXT"/>
+ <command name="glEndQueryEXT"/>
+ <command name="glQueryCounterEXT"/>
+ <command name="glGetQueryivEXT"/>
+ <command name="glGetQueryObjectivEXT"/>
+ <command name="glGetQueryObjectuivEXT"/>
+ <command name="glGetQueryObjecti64vEXT"/>
+ <command name="glGetQueryObjectui64vEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_draw_buffers" supported="gles2">
+ <require>
+ <enum name="GL_MAX_COLOR_ATTACHMENTS_EXT"/>
+ <enum name="GL_MAX_DRAW_BUFFERS_EXT"/>
+ <enum name="GL_DRAW_BUFFER0_EXT"/>
+ <enum name="GL_DRAW_BUFFER1_EXT"/>
+ <enum name="GL_DRAW_BUFFER2_EXT"/>
+ <enum name="GL_DRAW_BUFFER3_EXT"/>
+ <enum name="GL_DRAW_BUFFER4_EXT"/>
+ <enum name="GL_DRAW_BUFFER5_EXT"/>
+ <enum name="GL_DRAW_BUFFER6_EXT"/>
+ <enum name="GL_DRAW_BUFFER7_EXT"/>
+ <enum name="GL_DRAW_BUFFER8_EXT"/>
+ <enum name="GL_DRAW_BUFFER9_EXT"/>
+ <enum name="GL_DRAW_BUFFER10_EXT"/>
+ <enum name="GL_DRAW_BUFFER11_EXT"/>
+ <enum name="GL_DRAW_BUFFER12_EXT"/>
+ <enum name="GL_DRAW_BUFFER13_EXT"/>
+ <enum name="GL_DRAW_BUFFER14_EXT"/>
+ <enum name="GL_DRAW_BUFFER15_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT0_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT1_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT2_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT3_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT4_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT5_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT6_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT7_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT8_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT9_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT10_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT11_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT12_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT13_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT14_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT15_EXT"/>
+ <command name="glDrawBuffersEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_draw_buffers2" supported="gl">
+ <require>
+ <command name="glColorMaskIndexedEXT"/>
+ <command name="glGetBooleanIndexedvEXT"/>
+ <command name="glGetIntegerIndexedvEXT"/>
+ <command name="glEnableIndexedEXT"/>
+ <command name="glDisableIndexedEXT"/>
+ <command name="glIsEnabledIndexedEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_draw_instanced" supported="gl|gles2">
+ <require>
+ <command name="glDrawArraysInstancedEXT"/>
+ <command name="glDrawElementsInstancedEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_draw_range_elements" supported="gl">
+ <require>
+ <enum name="GL_MAX_ELEMENTS_VERTICES_EXT"/>
+ <enum name="GL_MAX_ELEMENTS_INDICES_EXT"/>
+ <command name="glDrawRangeElementsEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_fog_coord" supported="gl">
+ <require>
+ <enum name="GL_FOG_COORDINATE_SOURCE_EXT"/>
+ <enum name="GL_FOG_COORDINATE_EXT"/>
+ <enum name="GL_FRAGMENT_DEPTH_EXT"/>
+ <enum name="GL_CURRENT_FOG_COORDINATE_EXT"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_TYPE_EXT"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_POINTER_EXT"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_EXT"/>
+ <command name="glFogCoordfEXT"/>
+ <command name="glFogCoordfvEXT"/>
+ <command name="glFogCoorddEXT"/>
+ <command name="glFogCoorddvEXT"/>
+ <command name="glFogCoordPointerEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_framebuffer_blit" supported="gl">
+ <require>
+ <enum name="GL_READ_FRAMEBUFFER_EXT"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_EXT"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING_EXT"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING_EXT"/>
+ <command name="glBlitFramebufferEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_framebuffer_multisample" supported="gl">
+ <require>
+ <enum name="GL_RENDERBUFFER_SAMPLES_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT"/>
+ <enum name="GL_MAX_SAMPLES_EXT"/>
+ <command name="glRenderbufferStorageMultisampleEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_framebuffer_multisample_blit_scaled" supported="gl">
+ <require>
+ <enum name="GL_SCALED_RESOLVE_FASTEST_EXT"/>
+ <enum name="GL_SCALED_RESOLVE_NICEST_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_framebuffer_object" supported="gl">
+ <require>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION_EXT"/>
+ <enum name="GL_MAX_RENDERBUFFER_SIZE_EXT"/>
+ <enum name="GL_FRAMEBUFFER_BINDING_EXT"/>
+ <enum name="GL_RENDERBUFFER_BINDING_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT"/>
+ <enum name="GL_FRAMEBUFFER_COMPLETE_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT"/>
+ <enum name="GL_FRAMEBUFFER_UNSUPPORTED_EXT"/>
+ <enum name="GL_MAX_COLOR_ATTACHMENTS_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT0_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT1_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT2_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT3_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT4_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT5_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT6_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT7_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT8_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT9_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT10_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT11_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT12_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT13_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT14_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT15_EXT"/>
+ <enum name="GL_DEPTH_ATTACHMENT_EXT"/>
+ <enum name="GL_STENCIL_ATTACHMENT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_EXT"/>
+ <enum name="GL_RENDERBUFFER_EXT"/>
+ <enum name="GL_RENDERBUFFER_WIDTH_EXT"/>
+ <enum name="GL_RENDERBUFFER_HEIGHT_EXT"/>
+ <enum name="GL_RENDERBUFFER_INTERNAL_FORMAT_EXT"/>
+ <enum name="GL_STENCIL_INDEX1_EXT"/>
+ <enum name="GL_STENCIL_INDEX4_EXT"/>
+ <enum name="GL_STENCIL_INDEX8_EXT"/>
+ <enum name="GL_STENCIL_INDEX16_EXT"/>
+ <enum name="GL_RENDERBUFFER_RED_SIZE_EXT"/>
+ <enum name="GL_RENDERBUFFER_GREEN_SIZE_EXT"/>
+ <enum name="GL_RENDERBUFFER_BLUE_SIZE_EXT"/>
+ <enum name="GL_RENDERBUFFER_ALPHA_SIZE_EXT"/>
+ <enum name="GL_RENDERBUFFER_DEPTH_SIZE_EXT"/>
+ <enum name="GL_RENDERBUFFER_STENCIL_SIZE_EXT"/>
+ <command name="glIsRenderbufferEXT"/>
+ <command name="glBindRenderbufferEXT"/>
+ <command name="glDeleteRenderbuffersEXT"/>
+ <command name="glGenRenderbuffersEXT"/>
+ <command name="glRenderbufferStorageEXT"/>
+ <command name="glGetRenderbufferParameterivEXT"/>
+ <command name="glIsFramebufferEXT"/>
+ <command name="glBindFramebufferEXT"/>
+ <command name="glDeleteFramebuffersEXT"/>
+ <command name="glGenFramebuffersEXT"/>
+ <command name="glCheckFramebufferStatusEXT"/>
+ <command name="glFramebufferTexture1DEXT"/>
+ <command name="glFramebufferTexture2DEXT"/>
+ <command name="glFramebufferTexture3DEXT"/>
+ <command name="glFramebufferRenderbufferEXT"/>
+ <command name="glGetFramebufferAttachmentParameterivEXT"/>
+ <command name="glGenerateMipmapEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_framebuffer_sRGB" supported="gl">
+ <require>
+ <enum name="GL_FRAMEBUFFER_SRGB_EXT"/>
+ <enum name="GL_FRAMEBUFFER_SRGB_CAPABLE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_geometry_shader4" supported="gl">
+ <require>
+ <enum name="GL_GEOMETRY_SHADER_EXT"/>
+ <enum name="GL_GEOMETRY_VERTICES_OUT_EXT"/>
+ <enum name="GL_GEOMETRY_INPUT_TYPE_EXT"/>
+ <enum name="GL_GEOMETRY_OUTPUT_TYPE_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_VERTEX_VARYING_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_VARYING_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT"/>
+ <enum name="GL_LINES_ADJACENCY_EXT"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY_EXT"/>
+ <enum name="GL_TRIANGLES_ADJACENCY_EXT"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT"/>
+ <enum name="GL_PROGRAM_POINT_SIZE_EXT"/>
+ <command name="glProgramParameteriEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_gpu_program_parameters" supported="gl">
+ <require>
+ <command name="glProgramEnvParameters4fvEXT"/>
+ <command name="glProgramLocalParameters4fvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_gpu_shader4" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT"/>
+ <enum name="GL_SAMPLER_1D_ARRAY_EXT"/>
+ <enum name="GL_SAMPLER_2D_ARRAY_EXT"/>
+ <enum name="GL_SAMPLER_BUFFER_EXT"/>
+ <enum name="GL_SAMPLER_1D_ARRAY_SHADOW_EXT"/>
+ <enum name="GL_SAMPLER_2D_ARRAY_SHADOW_EXT"/>
+ <enum name="GL_SAMPLER_CUBE_SHADOW_EXT"/>
+ <enum name="GL_UNSIGNED_INT_VEC2_EXT"/>
+ <enum name="GL_UNSIGNED_INT_VEC3_EXT"/>
+ <enum name="GL_UNSIGNED_INT_VEC4_EXT"/>
+ <enum name="GL_INT_SAMPLER_1D_EXT"/>
+ <enum name="GL_INT_SAMPLER_2D_EXT"/>
+ <enum name="GL_INT_SAMPLER_3D_EXT"/>
+ <enum name="GL_INT_SAMPLER_CUBE_EXT"/>
+ <enum name="GL_INT_SAMPLER_2D_RECT_EXT"/>
+ <enum name="GL_INT_SAMPLER_1D_ARRAY_EXT"/>
+ <enum name="GL_INT_SAMPLER_2D_ARRAY_EXT"/>
+ <enum name="GL_INT_SAMPLER_BUFFER_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_1D_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_3D_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_CUBE_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT"/>
+ <enum name="GL_MIN_PROGRAM_TEXEL_OFFSET_EXT"/>
+ <enum name="GL_MAX_PROGRAM_TEXEL_OFFSET_EXT"/>
+ <command name="glGetUniformuivEXT"/>
+ <command name="glBindFragDataLocationEXT"/>
+ <command name="glGetFragDataLocationEXT"/>
+ <command name="glUniform1uiEXT"/>
+ <command name="glUniform2uiEXT"/>
+ <command name="glUniform3uiEXT"/>
+ <command name="glUniform4uiEXT"/>
+ <command name="glUniform1uivEXT"/>
+ <command name="glUniform2uivEXT"/>
+ <command name="glUniform3uivEXT"/>
+ <command name="glUniform4uivEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_histogram" supported="gl">
+ <require>
+ <enum name="GL_HISTOGRAM_EXT"/>
+ <enum name="GL_PROXY_HISTOGRAM_EXT"/>
+ <enum name="GL_HISTOGRAM_WIDTH_EXT"/>
+ <enum name="GL_HISTOGRAM_FORMAT_EXT"/>
+ <enum name="GL_HISTOGRAM_RED_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_GREEN_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_BLUE_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_ALPHA_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_LUMINANCE_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_SINK_EXT"/>
+ <enum name="GL_MINMAX_EXT"/>
+ <enum name="GL_MINMAX_FORMAT_EXT"/>
+ <enum name="GL_MINMAX_SINK_EXT"/>
+ <enum name="GL_TABLE_TOO_LARGE_EXT"/>
+ <command name="glGetHistogramEXT"/>
+ <command name="glGetHistogramParameterfvEXT"/>
+ <command name="glGetHistogramParameterivEXT"/>
+ <command name="glGetMinmaxEXT"/>
+ <command name="glGetMinmaxParameterfvEXT"/>
+ <command name="glGetMinmaxParameterivEXT"/>
+ <command name="glHistogramEXT"/>
+ <command name="glMinmaxEXT"/>
+ <command name="glResetHistogramEXT"/>
+ <command name="glResetMinmaxEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_index_array_formats" supported="gl">
+ <require>
+ <enum name="GL_IUI_V2F_EXT"/>
+ <enum name="GL_IUI_V3F_EXT"/>
+ <enum name="GL_IUI_N3F_V2F_EXT"/>
+ <enum name="GL_IUI_N3F_V3F_EXT"/>
+ <enum name="GL_T2F_IUI_V2F_EXT"/>
+ <enum name="GL_T2F_IUI_V3F_EXT"/>
+ <enum name="GL_T2F_IUI_N3F_V2F_EXT"/>
+ <enum name="GL_T2F_IUI_N3F_V3F_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_index_func" supported="gl">
+ <require>
+ <enum name="GL_INDEX_TEST_EXT"/>
+ <enum name="GL_INDEX_TEST_FUNC_EXT"/>
+ <enum name="GL_INDEX_TEST_REF_EXT"/>
+ <command name="glIndexFuncEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_index_material" supported="gl">
+ <require>
+ <enum name="GL_INDEX_MATERIAL_EXT"/>
+ <enum name="GL_INDEX_MATERIAL_PARAMETER_EXT"/>
+ <enum name="GL_INDEX_MATERIAL_FACE_EXT"/>
+ <command name="glIndexMaterialEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_index_texture" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_EXT_instanced_arrays" supported="gles2">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT"/>
+ <command name="glDrawArraysInstancedEXT"/>
+ <command name="glDrawElementsInstancedEXT"/>
+ <command name="glVertexAttribDivisorEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_light_texture" supported="gl">
+ <require>
+ <enum name="GL_FRAGMENT_MATERIAL_EXT"/>
+ <enum name="GL_FRAGMENT_NORMAL_EXT"/>
+ <enum name="GL_FRAGMENT_COLOR_EXT"/>
+ <enum name="GL_ATTENUATION_EXT"/>
+ <enum name="GL_SHADOW_ATTENUATION_EXT"/>
+ <enum name="GL_TEXTURE_APPLICATION_MODE_EXT"/>
+ <enum name="GL_TEXTURE_LIGHT_EXT"/>
+ <enum name="GL_TEXTURE_MATERIAL_FACE_EXT"/>
+ <enum name="GL_TEXTURE_MATERIAL_PARAMETER_EXT"/>
+ <enum name="GL_FRAGMENT_DEPTH_EXT"/>
+ <command name="glApplyTextureEXT"/>
+ <command name="glTextureLightEXT"/>
+ <command name="glTextureMaterialEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_map_buffer_range" supported="gles1|gles2">
+ <require>
+ <enum name="GL_MAP_READ_BIT_EXT"/>
+ <enum name="GL_MAP_WRITE_BIT_EXT"/>
+ <enum name="GL_MAP_INVALIDATE_RANGE_BIT_EXT"/>
+ <enum name="GL_MAP_INVALIDATE_BUFFER_BIT_EXT"/>
+ <enum name="GL_MAP_FLUSH_EXPLICIT_BIT_EXT"/>
+ <enum name="GL_MAP_UNSYNCHRONIZED_BIT_EXT"/>
+ <command name="glMapBufferRangeEXT"/>
+ <command name="glFlushMappedBufferRangeEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_misc_attribute" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_EXT_multi_draw_arrays" supported="gl|gles1|gles2">
+ <require>
+ <command name="glMultiDrawArraysEXT"/>
+ <command name="glMultiDrawElementsEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_multisample" supported="gl">
+ <require>
+ <enum name="GL_MULTISAMPLE_EXT"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_MASK_EXT"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE_EXT"/>
+ <enum name="GL_SAMPLE_MASK_EXT"/>
+ <enum name="GL_1PASS_EXT"/>
+ <enum name="GL_2PASS_0_EXT"/>
+ <enum name="GL_2PASS_1_EXT"/>
+ <enum name="GL_4PASS_0_EXT"/>
+ <enum name="GL_4PASS_1_EXT"/>
+ <enum name="GL_4PASS_2_EXT"/>
+ <enum name="GL_4PASS_3_EXT"/>
+ <enum name="GL_SAMPLE_BUFFERS_EXT"/>
+ <enum name="GL_SAMPLES_EXT"/>
+ <enum name="GL_SAMPLE_MASK_VALUE_EXT"/>
+ <enum name="GL_SAMPLE_MASK_INVERT_EXT"/>
+ <enum name="GL_SAMPLE_PATTERN_EXT"/>
+ <enum name="GL_MULTISAMPLE_BIT_EXT"/>
+ <command name="glSampleMaskEXT"/>
+ <command name="glSamplePatternEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_multisampled_render_to_texture" supported="gles1|gles2">
+ <require>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT"/>
+ <enum name="GL_RENDERBUFFER_SAMPLES_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT"/>
+ <enum name="GL_MAX_SAMPLES_EXT"/>
+ <command name="glRenderbufferStorageMultisampleEXT"/>
+ <command name="glFramebufferTexture2DMultisampleEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_multiview_draw_buffers" supported="gles2">
+ <require>
+ <enum name="GL_COLOR_ATTACHMENT_EXT"/>
+ <enum name="GL_MULTIVIEW_EXT"/>
+ <enum name="GL_DRAW_BUFFER_EXT"/>
+ <enum name="GL_READ_BUFFER_EXT"/>
+ <enum name="GL_MAX_MULTIVIEW_BUFFERS_EXT"/>
+ <command name="glReadBufferIndexedEXT"/>
+ <command name="glDrawBuffersIndexedEXT"/>
+ <command name="glGetIntegeri_vEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_occlusion_query_boolean" supported="gles2">
+ <require>
+ <enum name="GL_ANY_SAMPLES_PASSED_EXT"/>
+ <enum name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT"/>
+ <enum name="GL_CURRENT_QUERY_EXT"/>
+ <enum name="GL_QUERY_RESULT_EXT"/>
+ <enum name="GL_QUERY_RESULT_AVAILABLE_EXT"/>
+ <command name="glGenQueriesEXT"/>
+ <command name="glDeleteQueriesEXT"/>
+ <command name="glIsQueryEXT"/>
+ <command name="glBeginQueryEXT"/>
+ <command name="glEndQueryEXT"/>
+ <command name="glGetQueryivEXT"/>
+ <command name="glGetQueryObjectuivEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_packed_depth_stencil" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_STENCIL_EXT"/>
+ <enum name="GL_UNSIGNED_INT_24_8_EXT"/>
+ <enum name="GL_DEPTH24_STENCIL8_EXT"/>
+ <enum name="GL_TEXTURE_STENCIL_SIZE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_packed_float" supported="gl">
+ <require>
+ <enum name="GL_R11F_G11F_B10F_EXT"/>
+ <enum name="GL_UNSIGNED_INT_10F_11F_11F_REV_EXT"/>
+ <enum name="GL_RGBA_SIGNED_COMPONENTS_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_packed_pixels" supported="gl">
+ <require>
+ <enum name="GL_UNSIGNED_BYTE_3_3_2_EXT"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4_EXT"/>
+ <enum name="GL_UNSIGNED_SHORT_5_5_5_1_EXT"/>
+ <enum name="GL_UNSIGNED_INT_8_8_8_8_EXT"/>
+ <enum name="GL_UNSIGNED_INT_10_10_10_2_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_paletted_texture" supported="gl">
+ <require>
+ <enum name="GL_COLOR_INDEX1_EXT"/>
+ <enum name="GL_COLOR_INDEX2_EXT"/>
+ <enum name="GL_COLOR_INDEX4_EXT"/>
+ <enum name="GL_COLOR_INDEX8_EXT"/>
+ <enum name="GL_COLOR_INDEX12_EXT"/>
+ <enum name="GL_COLOR_INDEX16_EXT"/>
+ <enum name="GL_TEXTURE_INDEX_SIZE_EXT"/>
+ <command name="glColorTableEXT"/>
+ <command name="glGetColorTableEXT"/>
+ <command name="glGetColorTableParameterivEXT"/>
+ <command name="glGetColorTableParameterfvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_pixel_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_PACK_BUFFER_EXT"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER_EXT"/>
+ <enum name="GL_PIXEL_PACK_BUFFER_BINDING_EXT"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER_BINDING_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_pixel_transform" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_TRANSFORM_2D_EXT"/>
+ <enum name="GL_PIXEL_MAG_FILTER_EXT"/>
+ <enum name="GL_PIXEL_MIN_FILTER_EXT"/>
+ <enum name="GL_PIXEL_CUBIC_WEIGHT_EXT"/>
+ <enum name="GL_CUBIC_EXT"/>
+ <enum name="GL_AVERAGE_EXT"/>
+ <enum name="GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT"/>
+ <enum name="GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT"/>
+ <enum name="GL_PIXEL_TRANSFORM_2D_MATRIX_EXT"/>
+ <command name="glPixelTransformParameteriEXT"/>
+ <command name="glPixelTransformParameterfEXT"/>
+ <command name="glPixelTransformParameterivEXT"/>
+ <command name="glPixelTransformParameterfvEXT"/>
+ <command name="glGetPixelTransformParameterivEXT"/>
+ <command name="glGetPixelTransformParameterfvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_pixel_transform_color_table" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_EXT_point_parameters" supported="gl">
+ <require>
+ <enum name="GL_POINT_SIZE_MIN_EXT"/>
+ <enum name="GL_POINT_SIZE_MAX_EXT"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_EXT"/>
+ <enum name="GL_DISTANCE_ATTENUATION_EXT"/>
+ <command name="glPointParameterfEXT"/>
+ <command name="glPointParameterfvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_polygon_offset" supported="gl">
+ <require>
+ <enum name="GL_POLYGON_OFFSET_EXT"/>
+ <enum name="GL_POLYGON_OFFSET_FACTOR_EXT"/>
+ <enum name="GL_POLYGON_OFFSET_BIAS_EXT"/>
+ <command name="glPolygonOffsetEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_provoking_vertex" supported="gl">
+ <require>
+ <enum name="GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT"/>
+ <enum name="GL_FIRST_VERTEX_CONVENTION_EXT"/>
+ <enum name="GL_LAST_VERTEX_CONVENTION_EXT"/>
+ <enum name="GL_PROVOKING_VERTEX_EXT"/>
+ <command name="glProvokingVertexEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_pvrtc_sRGB" supported="gles2">
+ <require>
+ <enum name="GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_read_format_bgra" supported="gles1|gles2">
+ <require>
+ <enum name="GL_BGRA_EXT"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT"/>
+ <enum name="GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_rescale_normal" supported="gl">
+ <require>
+ <enum name="GL_RESCALE_NORMAL_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_robustness" supported="gles1|gles2">
+ <require>
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_GUILTY_CONTEXT_RESET_EXT"/>
+ <enum name="GL_INNOCENT_CONTEXT_RESET_EXT"/>
+ <enum name="GL_UNKNOWN_CONTEXT_RESET_EXT"/>
+ <enum name="GL_CONTEXT_ROBUST_ACCESS_EXT"/>
+ <enum name="GL_RESET_NOTIFICATION_STRATEGY_EXT"/>
+ <enum name="GL_LOSE_CONTEXT_ON_RESET_EXT"/>
+ <enum name="GL_NO_RESET_NOTIFICATION_EXT"/>
+ <command name="glGetGraphicsResetStatusEXT"/>
+ <command name="glReadnPixelsEXT"/>
+ <command name="glGetnUniformfvEXT"/>
+ <command name="glGetnUniformivEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_sRGB" supported="gles1|gles2">
+ <require>
+ <enum name="GL_SRGB_EXT"/>
+ <enum name="GL_SRGB_ALPHA_EXT"/>
+ <enum name="GL_SRGB8_ALPHA8_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_sRGB_write_control" supported="gles2">
+ <require>
+ <enum name="GL_FRAMEBUFFER_SRGB_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_secondary_color" supported="gl">
+ <require>
+ <enum name="GL_COLOR_SUM_EXT"/>
+ <enum name="GL_CURRENT_SECONDARY_COLOR_EXT"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_SIZE_EXT"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_TYPE_EXT"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_POINTER_EXT"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_EXT"/>
+ <command name="glSecondaryColor3bEXT"/>
+ <command name="glSecondaryColor3bvEXT"/>
+ <command name="glSecondaryColor3dEXT"/>
+ <command name="glSecondaryColor3dvEXT"/>
+ <command name="glSecondaryColor3fEXT"/>
+ <command name="glSecondaryColor3fvEXT"/>
+ <command name="glSecondaryColor3iEXT"/>
+ <command name="glSecondaryColor3ivEXT"/>
+ <command name="glSecondaryColor3sEXT"/>
+ <command name="glSecondaryColor3svEXT"/>
+ <command name="glSecondaryColor3ubEXT"/>
+ <command name="glSecondaryColor3ubvEXT"/>
+ <command name="glSecondaryColor3uiEXT"/>
+ <command name="glSecondaryColor3uivEXT"/>
+ <command name="glSecondaryColor3usEXT"/>
+ <command name="glSecondaryColor3usvEXT"/>
+ <command name="glSecondaryColorPointerEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_separate_shader_objects" supported="gl|gles2">
+ <require api="gl" comment="The OpenGL version of this extension is completely unrelated to the OpenGL ES version">
+ <enum name="GL_ACTIVE_PROGRAM_EXT"/>
+ <command name="glUseShaderProgramEXT"/>
+ <command name="glActiveProgramEXT"/>
+ <command name="glCreateShaderProgramEXT"/>
+ </require>
+ <require api="gles2" comment="The OpenGL ES version of this extension is completely unrelated to the OpenGL version">
+ <enum name="GL_VERTEX_SHADER_BIT_EXT"/>
+ <enum name="GL_FRAGMENT_SHADER_BIT_EXT"/>
+ <enum name="GL_ALL_SHADER_BITS_EXT"/>
+ <enum name="GL_PROGRAM_SEPARABLE_EXT"/>
+ <enum name="GL_ACTIVE_PROGRAM_EXT"/>
+ <enum name="GL_PROGRAM_PIPELINE_BINDING_EXT"/>
+ <command name="glActiveShaderProgramEXT"/>
+ <command name="glBindProgramPipelineEXT"/>
+ <command name="glCreateShaderProgramvEXT"/>
+ <command name="glDeleteProgramPipelinesEXT"/>
+ <command name="glGenProgramPipelinesEXT"/>
+ <command name="glGetProgramPipelineInfoLogEXT"/>
+ <command name="glGetProgramPipelineivEXT"/>
+ <command name="glIsProgramPipelineEXT"/>
+ <command name="glProgramParameteriEXT"/>
+ <command name="glProgramUniform1fEXT"/>
+ <command name="glProgramUniform1fvEXT"/>
+ <command name="glProgramUniform1iEXT"/>
+ <command name="glProgramUniform1ivEXT"/>
+ <command name="glProgramUniform2fEXT"/>
+ <command name="glProgramUniform2fvEXT"/>
+ <command name="glProgramUniform2iEXT"/>
+ <command name="glProgramUniform2ivEXT"/>
+ <command name="glProgramUniform3fEXT"/>
+ <command name="glProgramUniform3fvEXT"/>
+ <command name="glProgramUniform3iEXT"/>
+ <command name="glProgramUniform3ivEXT"/>
+ <command name="glProgramUniform4fEXT"/>
+ <command name="glProgramUniform4fvEXT"/>
+ <command name="glProgramUniform4iEXT"/>
+ <command name="glProgramUniform4ivEXT"/>
+ <command name="glProgramUniformMatrix2fvEXT"/>
+ <command name="glProgramUniformMatrix3fvEXT"/>
+ <command name="glProgramUniformMatrix4fvEXT"/>
+ <command name="glUseProgramStagesEXT"/>
+ <command name="glValidateProgramPipelineEXT"/>
+ </require>
+ <require api="gles2" comment="Depends on OpenGL ES 3.0">
+ <command name="glProgramUniform1uiEXT"/>
+ <command name="glProgramUniform2uiEXT"/>
+ <command name="glProgramUniform3uiEXT"/>
+ <command name="glProgramUniform4uiEXT"/>
+ <command name="glProgramUniform1uivEXT"/>
+ <command name="glProgramUniform2uivEXT"/>
+ <command name="glProgramUniform3uivEXT"/>
+ <command name="glProgramUniform4uivEXT"/>
+ <command name="glProgramUniformMatrix4fvEXT"/>
+ <command name="glProgramUniformMatrix2x3fvEXT"/>
+ <command name="glProgramUniformMatrix3x2fvEXT"/>
+ <command name="glProgramUniformMatrix2x4fvEXT"/>
+ <command name="glProgramUniformMatrix4x2fvEXT"/>
+ <command name="glProgramUniformMatrix3x4fvEXT"/>
+ <command name="glProgramUniformMatrix4x3fvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_separate_specular_color" supported="gl">
+ <require>
+ <enum name="GL_LIGHT_MODEL_COLOR_CONTROL_EXT"/>
+ <enum name="GL_SINGLE_COLOR_EXT"/>
+ <enum name="GL_SEPARATE_SPECULAR_COLOR_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_shader_framebuffer_fetch" supported="gles2">
+ <require>
+ <enum name="GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_shader_image_load_store" supported="gl">
+ <require>
+ <enum name="GL_MAX_IMAGE_UNITS_EXT"/>
+ <enum name="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT"/>
+ <enum name="GL_IMAGE_BINDING_NAME_EXT"/>
+ <enum name="GL_IMAGE_BINDING_LEVEL_EXT"/>
+ <enum name="GL_IMAGE_BINDING_LAYERED_EXT"/>
+ <enum name="GL_IMAGE_BINDING_LAYER_EXT"/>
+ <enum name="GL_IMAGE_BINDING_ACCESS_EXT"/>
+ <enum name="GL_IMAGE_1D_EXT"/>
+ <enum name="GL_IMAGE_2D_EXT"/>
+ <enum name="GL_IMAGE_3D_EXT"/>
+ <enum name="GL_IMAGE_2D_RECT_EXT"/>
+ <enum name="GL_IMAGE_CUBE_EXT"/>
+ <enum name="GL_IMAGE_BUFFER_EXT"/>
+ <enum name="GL_IMAGE_1D_ARRAY_EXT"/>
+ <enum name="GL_IMAGE_2D_ARRAY_EXT"/>
+ <enum name="GL_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum name="GL_IMAGE_2D_MULTISAMPLE_EXT"/>
+ <enum name="GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
+ <enum name="GL_INT_IMAGE_1D_EXT"/>
+ <enum name="GL_INT_IMAGE_2D_EXT"/>
+ <enum name="GL_INT_IMAGE_3D_EXT"/>
+ <enum name="GL_INT_IMAGE_2D_RECT_EXT"/>
+ <enum name="GL_INT_IMAGE_CUBE_EXT"/>
+ <enum name="GL_INT_IMAGE_BUFFER_EXT"/>
+ <enum name="GL_INT_IMAGE_1D_ARRAY_EXT"/>
+ <enum name="GL_INT_IMAGE_2D_ARRAY_EXT"/>
+ <enum name="GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum name="GL_INT_IMAGE_2D_MULTISAMPLE_EXT"/>
+ <enum name="GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_1D_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_3D_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_BUFFER_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
+ <enum name="GL_MAX_IMAGE_SAMPLES_EXT"/>
+ <enum name="GL_IMAGE_BINDING_FORMAT_EXT"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT"/>
+ <enum name="GL_ELEMENT_ARRAY_BARRIER_BIT_EXT"/>
+ <enum name="GL_UNIFORM_BARRIER_BIT_EXT"/>
+ <enum name="GL_TEXTURE_FETCH_BARRIER_BIT_EXT"/>
+ <enum name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT"/>
+ <enum name="GL_COMMAND_BARRIER_BIT_EXT"/>
+ <enum name="GL_PIXEL_BUFFER_BARRIER_BIT_EXT"/>
+ <enum name="GL_TEXTURE_UPDATE_BARRIER_BIT_EXT"/>
+ <enum name="GL_BUFFER_UPDATE_BARRIER_BIT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_BARRIER_BIT_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT"/>
+ <enum name="GL_ATOMIC_COUNTER_BARRIER_BIT_EXT"/>
+ <enum name="GL_ALL_BARRIER_BITS_EXT"/>
+ <command name="glBindImageTextureEXT"/>
+ <command name="glMemoryBarrierEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_shader_integer_mix" supported="gl|gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_EXT_shader_texture_lod" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_EXT_shadow_funcs" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_EXT_shadow_samplers" supported="gles2">
+ <require>
+ <enum name="GL_TEXTURE_COMPARE_MODE_EXT"/>
+ <enum name="GL_TEXTURE_COMPARE_FUNC_EXT"/>
+ <enum name="GL_COMPARE_REF_TO_TEXTURE_EXT"/>
+ <enum name="GL_SAMPLER_2D_SHADOW_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_shared_texture_palette" supported="gl">
+ <require>
+ <enum name="GL_SHARED_TEXTURE_PALETTE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_stencil_clear_tag" supported="gl">
+ <require>
+ <enum name="GL_STENCIL_TAG_BITS_EXT"/>
+ <enum name="GL_STENCIL_CLEAR_TAG_VALUE_EXT"/>
+ <command name="glStencilClearTagEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_stencil_two_side" supported="gl">
+ <require>
+ <enum name="GL_STENCIL_TEST_TWO_SIDE_EXT"/>
+ <enum name="GL_ACTIVE_STENCIL_FACE_EXT"/>
+ <command name="glActiveStencilFaceEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_stencil_wrap" supported="gl">
+ <require>
+ <enum name="GL_INCR_WRAP_EXT"/>
+ <enum name="GL_DECR_WRAP_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_subtexture" supported="gl">
+ <require>
+ <command name="glTexSubImage1DEXT"/>
+ <command name="glTexSubImage2DEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture" supported="gl">
+ <require>
+ <enum name="GL_ALPHA4_EXT"/>
+ <enum name="GL_ALPHA8_EXT"/>
+ <enum name="GL_ALPHA12_EXT"/>
+ <enum name="GL_ALPHA16_EXT"/>
+ <enum name="GL_LUMINANCE4_EXT"/>
+ <enum name="GL_LUMINANCE8_EXT"/>
+ <enum name="GL_LUMINANCE12_EXT"/>
+ <enum name="GL_LUMINANCE16_EXT"/>
+ <enum name="GL_LUMINANCE4_ALPHA4_EXT"/>
+ <enum name="GL_LUMINANCE6_ALPHA2_EXT"/>
+ <enum name="GL_LUMINANCE8_ALPHA8_EXT"/>
+ <enum name="GL_LUMINANCE12_ALPHA4_EXT"/>
+ <enum name="GL_LUMINANCE12_ALPHA12_EXT"/>
+ <enum name="GL_LUMINANCE16_ALPHA16_EXT"/>
+ <enum name="GL_INTENSITY_EXT"/>
+ <enum name="GL_INTENSITY4_EXT"/>
+ <enum name="GL_INTENSITY8_EXT"/>
+ <enum name="GL_INTENSITY12_EXT"/>
+ <enum name="GL_INTENSITY16_EXT"/>
+ <enum name="GL_RGB2_EXT"/>
+ <enum name="GL_RGB4_EXT"/>
+ <enum name="GL_RGB5_EXT"/>
+ <enum name="GL_RGB8_EXT"/>
+ <enum name="GL_RGB10_EXT"/>
+ <enum name="GL_RGB12_EXT"/>
+ <enum name="GL_RGB16_EXT"/>
+ <enum name="GL_RGBA2_EXT"/>
+ <enum name="GL_RGBA4_EXT"/>
+ <enum name="GL_RGB5_A1_EXT"/>
+ <enum name="GL_RGBA8_EXT"/>
+ <enum name="GL_RGB10_A2_EXT"/>
+ <enum name="GL_RGBA12_EXT"/>
+ <enum name="GL_RGBA16_EXT"/>
+ <enum name="GL_TEXTURE_RED_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_GREEN_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_BLUE_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_ALPHA_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_LUMINANCE_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_INTENSITY_SIZE_EXT"/>
+ <enum name="GL_REPLACE_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_1D_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_2D_EXT"/>
+ <enum name="GL_TEXTURE_TOO_LARGE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture3D" supported="gl">
+ <require>
+ <enum name="GL_PACK_SKIP_IMAGES_EXT"/>
+ <enum name="GL_PACK_IMAGE_HEIGHT_EXT"/>
+ <enum name="GL_UNPACK_SKIP_IMAGES_EXT"/>
+ <enum name="GL_UNPACK_IMAGE_HEIGHT_EXT"/>
+ <enum name="GL_TEXTURE_3D_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_3D_EXT"/>
+ <enum name="GL_TEXTURE_DEPTH_EXT"/>
+ <enum name="GL_TEXTURE_WRAP_R_EXT"/>
+ <enum name="GL_MAX_3D_TEXTURE_SIZE_EXT"/>
+ <command name="glTexImage3DEXT"/>
+ <command name="glTexSubImage3DEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_array" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_1D_ARRAY_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_1D_ARRAY_EXT"/>
+ <enum name="GL_TEXTURE_2D_ARRAY_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_2D_ARRAY_EXT"/>
+ <enum name="GL_TEXTURE_BINDING_1D_ARRAY_EXT"/>
+ <enum name="GL_TEXTURE_BINDING_2D_ARRAY_EXT"/>
+ <enum name="GL_MAX_ARRAY_TEXTURE_LAYERS_EXT"/>
+ <enum name="GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_BUFFER_EXT"/>
+ <enum name="GL_MAX_TEXTURE_BUFFER_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_BINDING_BUFFER_EXT"/>
+ <enum name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT"/>
+ <enum name="GL_TEXTURE_BUFFER_FORMAT_EXT"/>
+ <command name="glTexBufferEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_compression_dxt1" supported="gles1|gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT"/>
+ <enum name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_compression_latc" supported="gl">
+ <require>
+ <enum name="GL_COMPRESSED_LUMINANCE_LATC1_EXT"/>
+ <enum name="GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT"/>
+ <enum name="GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT"/>
+ <enum name="GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_compression_rgtc" supported="gl">
+ <require>
+ <enum name="GL_COMPRESSED_RED_RGTC1_EXT"/>
+ <enum name="GL_COMPRESSED_SIGNED_RED_RGTC1_EXT"/>
+ <enum name="GL_COMPRESSED_RED_GREEN_RGTC2_EXT"/>
+ <enum name="GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_compression_s3tc" supported="gl|gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT"/>
+ <enum name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"/>
+ <enum name="GL_COMPRESSED_RGBA_S3TC_DXT3_EXT"/>
+ <enum name="GL_COMPRESSED_RGBA_S3TC_DXT5_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_cube_map" supported="gl" comment="Replaced by ARB_texture_cube_map, but was apparently shipped anyway?">
+ <require>
+ <enum name="GL_NORMAL_MAP_EXT"/>
+ <enum name="GL_REFLECTION_MAP_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_EXT"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_CUBE_MAP_EXT"/>
+ <enum name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_env_add" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_env_combine" supported="gl">
+ <require>
+ <enum name="GL_COMBINE_EXT"/>
+ <enum name="GL_COMBINE_RGB_EXT"/>
+ <enum name="GL_COMBINE_ALPHA_EXT"/>
+ <enum name="GL_RGB_SCALE_EXT"/>
+ <enum name="GL_ADD_SIGNED_EXT"/>
+ <enum name="GL_INTERPOLATE_EXT"/>
+ <enum name="GL_CONSTANT_EXT"/>
+ <enum name="GL_PRIMARY_COLOR_EXT"/>
+ <enum name="GL_PREVIOUS_EXT"/>
+ <enum name="GL_SOURCE0_RGB_EXT"/>
+ <enum name="GL_SOURCE1_RGB_EXT"/>
+ <enum name="GL_SOURCE2_RGB_EXT"/>
+ <enum name="GL_SOURCE0_ALPHA_EXT"/>
+ <enum name="GL_SOURCE1_ALPHA_EXT"/>
+ <enum name="GL_SOURCE2_ALPHA_EXT"/>
+ <enum name="GL_OPERAND0_RGB_EXT"/>
+ <enum name="GL_OPERAND1_RGB_EXT"/>
+ <enum name="GL_OPERAND2_RGB_EXT"/>
+ <enum name="GL_OPERAND0_ALPHA_EXT"/>
+ <enum name="GL_OPERAND1_ALPHA_EXT"/>
+ <enum name="GL_OPERAND2_ALPHA_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_env_dot3" supported="gl">
+ <require>
+ <enum name="GL_DOT3_RGB_EXT"/>
+ <enum name="GL_DOT3_RGBA_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_filter_anisotropic" supported="gl|gles1|gles2">
+ <require>
+ <enum name="GL_TEXTURE_MAX_ANISOTROPY_EXT"/>
+ <enum name="GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_format_BGRA8888" supported="gles1|gles2">
+ <require>
+ <enum name="GL_BGRA_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_integer" supported="gl">
+ <require>
+ <enum name="GL_RGBA32UI_EXT"/>
+ <enum name="GL_RGB32UI_EXT"/>
+ <enum name="GL_ALPHA32UI_EXT"/>
+ <enum name="GL_INTENSITY32UI_EXT"/>
+ <enum name="GL_LUMINANCE32UI_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA32UI_EXT"/>
+ <enum name="GL_RGBA16UI_EXT"/>
+ <enum name="GL_RGB16UI_EXT"/>
+ <enum name="GL_ALPHA16UI_EXT"/>
+ <enum name="GL_INTENSITY16UI_EXT"/>
+ <enum name="GL_LUMINANCE16UI_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA16UI_EXT"/>
+ <enum name="GL_RGBA8UI_EXT"/>
+ <enum name="GL_RGB8UI_EXT"/>
+ <enum name="GL_ALPHA8UI_EXT"/>
+ <enum name="GL_INTENSITY8UI_EXT"/>
+ <enum name="GL_LUMINANCE8UI_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA8UI_EXT"/>
+ <enum name="GL_RGBA32I_EXT"/>
+ <enum name="GL_RGB32I_EXT"/>
+ <enum name="GL_ALPHA32I_EXT"/>
+ <enum name="GL_INTENSITY32I_EXT"/>
+ <enum name="GL_LUMINANCE32I_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA32I_EXT"/>
+ <enum name="GL_RGBA16I_EXT"/>
+ <enum name="GL_RGB16I_EXT"/>
+ <enum name="GL_ALPHA16I_EXT"/>
+ <enum name="GL_INTENSITY16I_EXT"/>
+ <enum name="GL_LUMINANCE16I_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA16I_EXT"/>
+ <enum name="GL_RGBA8I_EXT"/>
+ <enum name="GL_RGB8I_EXT"/>
+ <enum name="GL_ALPHA8I_EXT"/>
+ <enum name="GL_INTENSITY8I_EXT"/>
+ <enum name="GL_LUMINANCE8I_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA8I_EXT"/>
+ <enum name="GL_RED_INTEGER_EXT"/>
+ <enum name="GL_GREEN_INTEGER_EXT"/>
+ <enum name="GL_BLUE_INTEGER_EXT"/>
+ <enum name="GL_ALPHA_INTEGER_EXT"/>
+ <enum name="GL_RGB_INTEGER_EXT"/>
+ <enum name="GL_RGBA_INTEGER_EXT"/>
+ <enum name="GL_BGR_INTEGER_EXT"/>
+ <enum name="GL_BGRA_INTEGER_EXT"/>
+ <enum name="GL_LUMINANCE_INTEGER_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA_INTEGER_EXT"/>
+ <enum name="GL_RGBA_INTEGER_MODE_EXT"/>
+ <command name="glTexParameterIivEXT"/>
+ <command name="glTexParameterIuivEXT"/>
+ <command name="glGetTexParameterIivEXT"/>
+ <command name="glGetTexParameterIuivEXT"/>
+ <command name="glClearColorIiEXT"/>
+ <command name="glClearColorIuiEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_lod_bias" supported="gl|gles1">
+ <require>
+ <enum name="GL_MAX_TEXTURE_LOD_BIAS_EXT"/>
+ <enum name="GL_TEXTURE_FILTER_CONTROL_EXT"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_mirror_clamp" supported="gl">
+ <require>
+ <enum name="GL_MIRROR_CLAMP_EXT"/>
+ <enum name="GL_MIRROR_CLAMP_TO_EDGE_EXT"/>
+ <enum name="GL_MIRROR_CLAMP_TO_BORDER_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_object" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_PRIORITY_EXT"/>
+ <enum name="GL_TEXTURE_RESIDENT_EXT"/>
+ <enum name="GL_TEXTURE_1D_BINDING_EXT"/>
+ <enum name="GL_TEXTURE_2D_BINDING_EXT"/>
+ <enum name="GL_TEXTURE_3D_BINDING_EXT"/>
+ <command name="glAreTexturesResidentEXT"/>
+ <command name="glBindTextureEXT"/>
+ <command name="glDeleteTexturesEXT"/>
+ <command name="glGenTexturesEXT"/>
+ <command name="glIsTextureEXT"/>
+ <command name="glPrioritizeTexturesEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_perturb_normal" supported="gl">
+ <require>
+ <enum name="GL_PERTURB_EXT"/>
+ <enum name="GL_TEXTURE_NORMAL_EXT"/>
+ <command name="glTextureNormalEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_rg" supported="gles2">
+ <require>
+ <enum name="GL_RED_EXT"/>
+ <enum name="GL_RG_EXT"/>
+ <enum name="GL_R8_EXT"/>
+ <enum name="GL_RG8_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_sRGB" supported="gl">
+ <require>
+ <enum name="GL_SRGB_EXT"/>
+ <enum name="GL_SRGB8_EXT"/>
+ <enum name="GL_SRGB_ALPHA_EXT"/>
+ <enum name="GL_SRGB8_ALPHA8_EXT"/>
+ <enum name="GL_SLUMINANCE_ALPHA_EXT"/>
+ <enum name="GL_SLUMINANCE8_ALPHA8_EXT"/>
+ <enum name="GL_SLUMINANCE_EXT"/>
+ <enum name="GL_SLUMINANCE8_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_EXT"/>
+ <enum name="GL_COMPRESSED_SLUMINANCE_EXT"/>
+ <enum name="GL_COMPRESSED_SLUMINANCE_ALPHA_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_S3TC_DXT1_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_sRGB_decode" supported="gl|gles2">
+ <require>
+ <enum name="GL_TEXTURE_SRGB_DECODE_EXT"/>
+ <enum name="GL_DECODE_EXT"/>
+ <enum name="GL_SKIP_DECODE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_shared_exponent" supported="gl">
+ <require>
+ <enum name="GL_RGB9_E5_EXT"/>
+ <enum name="GL_UNSIGNED_INT_5_9_9_9_REV_EXT"/>
+ <enum name="GL_TEXTURE_SHARED_SIZE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_snorm" supported="gl">
+ <require>
+ <enum name="GL_ALPHA_SNORM"/>
+ <enum name="GL_LUMINANCE_SNORM"/>
+ <enum name="GL_LUMINANCE_ALPHA_SNORM"/>
+ <enum name="GL_INTENSITY_SNORM"/>
+ <enum name="GL_ALPHA8_SNORM"/>
+ <enum name="GL_LUMINANCE8_SNORM"/>
+ <enum name="GL_LUMINANCE8_ALPHA8_SNORM"/>
+ <enum name="GL_INTENSITY8_SNORM"/>
+ <enum name="GL_ALPHA16_SNORM"/>
+ <enum name="GL_LUMINANCE16_SNORM"/>
+ <enum name="GL_LUMINANCE16_ALPHA16_SNORM"/>
+ <enum name="GL_INTENSITY16_SNORM"/>
+ <enum name="GL_RED_SNORM"/>
+ <enum name="GL_RG_SNORM"/>
+ <enum name="GL_RGB_SNORM"/>
+ <enum name="GL_RGBA_SNORM"/>
+ <enum name="GL_R8_SNORM"/>
+ <enum name="GL_RG8_SNORM"/>
+ <enum name="GL_RGB8_SNORM"/>
+ <enum name="GL_RGBA8_SNORM"/>
+ <enum name="GL_R16_SNORM"/>
+ <enum name="GL_RG16_SNORM"/>
+ <enum name="GL_RGB16_SNORM"/>
+ <enum name="GL_RGBA16_SNORM"/>
+ <enum name="GL_SIGNED_NORMALIZED"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_storage" supported="gles1|gles2">
+ <require comment="Not clear all of these enums should be here for OpenGL ES. Many are only defined if other extensions also requiring them are supported">
+ <enum name="GL_TEXTURE_IMMUTABLE_FORMAT_EXT"/>
+ <enum name="GL_ALPHA8_EXT"/>
+ <enum name="GL_LUMINANCE8_EXT"/>
+ <enum name="GL_LUMINANCE8_ALPHA8_EXT"/>
+ <enum name="GL_RGBA32F_EXT"/>
+ <enum name="GL_RGB32F_EXT"/>
+ <enum name="GL_ALPHA32F_EXT"/>
+ <enum name="GL_LUMINANCE32F_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA32F_EXT"/>
+ <enum name="GL_RGBA16F_EXT"/>
+ <enum name="GL_RGB16F_EXT"/>
+ <enum name="GL_ALPHA16F_EXT"/>
+ <enum name="GL_LUMINANCE16F_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA16F_EXT"/>
+ <enum name="GL_RGB10_A2_EXT"/>
+ <enum name="GL_RGB10_EXT"/>
+ <enum name="GL_BGRA8_EXT"/>
+ <enum name="GL_R8_EXT"/>
+ <enum name="GL_RG8_EXT"/>
+ <enum name="GL_R32F_EXT"/>
+ <enum name="GL_RG32F_EXT"/>
+ <enum name="GL_R16F_EXT"/>
+ <enum name="GL_RG16F_EXT"/>
+ <command name="glTexStorage1DEXT"/>
+ <command name="glTexStorage2DEXT"/>
+ <command name="glTexStorage3DEXT"/>
+ </require>
+ <require comment="Supported only if GL_EXT_direct_state_access is supported">
+ <command name="glTextureStorage1DEXT"/>
+ <command name="glTextureStorage2DEXT"/>
+ <command name="glTextureStorage3DEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_swizzle" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_SWIZZLE_R_EXT"/>
+ <enum name="GL_TEXTURE_SWIZZLE_G_EXT"/>
+ <enum name="GL_TEXTURE_SWIZZLE_B_EXT"/>
+ <enum name="GL_TEXTURE_SWIZZLE_A_EXT"/>
+ <enum name="GL_TEXTURE_SWIZZLE_RGBA_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_type_2_10_10_10_REV" supported="gles2">
+ <require>
+ <enum name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_timer_query" supported="gl">
+ <require>
+ <enum name="GL_TIME_ELAPSED_EXT"/>
+ <command name="glGetQueryObjecti64vEXT"/>
+ <command name="glGetQueryObjectui64vEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_transform_feedback" supported="gl">
+ <require>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT"/>
+ <enum name="GL_INTERLEAVED_ATTRIBS_EXT"/>
+ <enum name="GL_SEPARATE_ATTRIBS_EXT"/>
+ <enum name="GL_PRIMITIVES_GENERATED_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT"/>
+ <enum name="GL_RASTERIZER_DISCARD_EXT"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYINGS_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT"/>
+ <command name="glBeginTransformFeedbackEXT"/>
+ <command name="glEndTransformFeedbackEXT"/>
+ <command name="glBindBufferRangeEXT"/>
+ <command name="glBindBufferOffsetEXT"/>
+ <command name="glBindBufferBaseEXT"/>
+ <command name="glTransformFeedbackVaryingsEXT"/>
+ <command name="glGetTransformFeedbackVaryingEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_unpack_subimage" supported="gles2">
+ <require>
+ <enum name="GL_UNPACK_ROW_LENGTH_EXT"/>
+ <enum name="GL_UNPACK_SKIP_ROWS_EXT"/>
+ <enum name="GL_UNPACK_SKIP_PIXELS_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_vertex_array" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_EXT"/>
+ <enum name="GL_NORMAL_ARRAY_EXT"/>
+ <enum name="GL_COLOR_ARRAY_EXT"/>
+ <enum name="GL_INDEX_ARRAY_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_EXT"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_SIZE_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_TYPE_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_COUNT_EXT"/>
+ <enum name="GL_NORMAL_ARRAY_TYPE_EXT"/>
+ <enum name="GL_NORMAL_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_NORMAL_ARRAY_COUNT_EXT"/>
+ <enum name="GL_COLOR_ARRAY_SIZE_EXT"/>
+ <enum name="GL_COLOR_ARRAY_TYPE_EXT"/>
+ <enum name="GL_COLOR_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_COLOR_ARRAY_COUNT_EXT"/>
+ <enum name="GL_INDEX_ARRAY_TYPE_EXT"/>
+ <enum name="GL_INDEX_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_INDEX_ARRAY_COUNT_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_TYPE_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_COUNT_EXT"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_COUNT_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_POINTER_EXT"/>
+ <enum name="GL_NORMAL_ARRAY_POINTER_EXT"/>
+ <enum name="GL_COLOR_ARRAY_POINTER_EXT"/>
+ <enum name="GL_INDEX_ARRAY_POINTER_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_POINTER_EXT"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_POINTER_EXT"/>
+ <command name="glArrayElementEXT"/>
+ <command name="glColorPointerEXT"/>
+ <command name="glDrawArraysEXT"/>
+ <command name="glEdgeFlagPointerEXT"/>
+ <command name="glGetPointervEXT"/>
+ <command name="glIndexPointerEXT"/>
+ <command name="glNormalPointerEXT"/>
+ <command name="glTexCoordPointerEXT"/>
+ <command name="glVertexPointerEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_vertex_array_bgra" supported="gl">
+ <require>
+ <enum name="GL_BGRA"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_vertex_attrib_64bit" supported="gl">
+ <require>
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_DOUBLE_VEC2_EXT"/>
+ <enum name="GL_DOUBLE_VEC3_EXT"/>
+ <enum name="GL_DOUBLE_VEC4_EXT"/>
+ <enum name="GL_DOUBLE_MAT2_EXT"/>
+ <enum name="GL_DOUBLE_MAT3_EXT"/>
+ <enum name="GL_DOUBLE_MAT4_EXT"/>
+ <enum name="GL_DOUBLE_MAT2x3_EXT"/>
+ <enum name="GL_DOUBLE_MAT2x4_EXT"/>
+ <enum name="GL_DOUBLE_MAT3x2_EXT"/>
+ <enum name="GL_DOUBLE_MAT3x4_EXT"/>
+ <enum name="GL_DOUBLE_MAT4x2_EXT"/>
+ <enum name="GL_DOUBLE_MAT4x3_EXT"/>
+ <command name="glVertexAttribL1dEXT"/>
+ <command name="glVertexAttribL2dEXT"/>
+ <command name="glVertexAttribL3dEXT"/>
+ <command name="glVertexAttribL4dEXT"/>
+ <command name="glVertexAttribL1dvEXT"/>
+ <command name="glVertexAttribL2dvEXT"/>
+ <command name="glVertexAttribL3dvEXT"/>
+ <command name="glVertexAttribL4dvEXT"/>
+ <command name="glVertexAttribLPointerEXT"/>
+ <command name="glGetVertexAttribLdvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_vertex_shader" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_SHADER_EXT"/>
+ <enum name="GL_VERTEX_SHADER_BINDING_EXT"/>
+ <enum name="GL_OP_INDEX_EXT"/>
+ <enum name="GL_OP_NEGATE_EXT"/>
+ <enum name="GL_OP_DOT3_EXT"/>
+ <enum name="GL_OP_DOT4_EXT"/>
+ <enum name="GL_OP_MUL_EXT"/>
+ <enum name="GL_OP_ADD_EXT"/>
+ <enum name="GL_OP_MADD_EXT"/>
+ <enum name="GL_OP_FRAC_EXT"/>
+ <enum name="GL_OP_MAX_EXT"/>
+ <enum name="GL_OP_MIN_EXT"/>
+ <enum name="GL_OP_SET_GE_EXT"/>
+ <enum name="GL_OP_SET_LT_EXT"/>
+ <enum name="GL_OP_CLAMP_EXT"/>
+ <enum name="GL_OP_FLOOR_EXT"/>
+ <enum name="GL_OP_ROUND_EXT"/>
+ <enum name="GL_OP_EXP_BASE_2_EXT"/>
+ <enum name="GL_OP_LOG_BASE_2_EXT"/>
+ <enum name="GL_OP_POWER_EXT"/>
+ <enum name="GL_OP_RECIP_EXT"/>
+ <enum name="GL_OP_RECIP_SQRT_EXT"/>
+ <enum name="GL_OP_SUB_EXT"/>
+ <enum name="GL_OP_CROSS_PRODUCT_EXT"/>
+ <enum name="GL_OP_MULTIPLY_MATRIX_EXT"/>
+ <enum name="GL_OP_MOV_EXT"/>
+ <enum name="GL_OUTPUT_VERTEX_EXT"/>
+ <enum name="GL_OUTPUT_COLOR0_EXT"/>
+ <enum name="GL_OUTPUT_COLOR1_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD0_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD1_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD2_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD3_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD4_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD5_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD6_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD7_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD8_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD9_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD10_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD11_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD12_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD13_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD14_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD15_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD16_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD17_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD18_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD19_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD20_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD21_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD22_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD23_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD24_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD25_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD26_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD27_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD28_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD29_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD30_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD31_EXT"/>
+ <enum name="GL_OUTPUT_FOG_EXT"/>
+ <enum name="GL_SCALAR_EXT"/>
+ <enum name="GL_VECTOR_EXT"/>
+ <enum name="GL_MATRIX_EXT"/>
+ <enum name="GL_VARIANT_EXT"/>
+ <enum name="GL_INVARIANT_EXT"/>
+ <enum name="GL_LOCAL_CONSTANT_EXT"/>
+ <enum name="GL_LOCAL_EXT"/>
+ <enum name="GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT"/>
+ <enum name="GL_MAX_VERTEX_SHADER_VARIANTS_EXT"/>
+ <enum name="GL_MAX_VERTEX_SHADER_INVARIANTS_EXT"/>
+ <enum name="GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"/>
+ <enum name="GL_MAX_VERTEX_SHADER_LOCALS_EXT"/>
+ <enum name="GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT"/>
+ <enum name="GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT"/>
+ <enum name="GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"/>
+ <enum name="GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT"/>
+ <enum name="GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT"/>
+ <enum name="GL_VERTEX_SHADER_INSTRUCTIONS_EXT"/>
+ <enum name="GL_VERTEX_SHADER_VARIANTS_EXT"/>
+ <enum name="GL_VERTEX_SHADER_INVARIANTS_EXT"/>
+ <enum name="GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"/>
+ <enum name="GL_VERTEX_SHADER_LOCALS_EXT"/>
+ <enum name="GL_VERTEX_SHADER_OPTIMIZED_EXT"/>
+ <enum name="GL_X_EXT"/>
+ <enum name="GL_Y_EXT"/>
+ <enum name="GL_Z_EXT"/>
+ <enum name="GL_W_EXT"/>
+ <enum name="GL_NEGATIVE_X_EXT"/>
+ <enum name="GL_NEGATIVE_Y_EXT"/>
+ <enum name="GL_NEGATIVE_Z_EXT"/>
+ <enum name="GL_NEGATIVE_W_EXT"/>
+ <enum name="GL_ZERO_EXT"/>
+ <enum name="GL_ONE_EXT"/>
+ <enum name="GL_NEGATIVE_ONE_EXT"/>
+ <enum name="GL_NORMALIZED_RANGE_EXT"/>
+ <enum name="GL_FULL_RANGE_EXT"/>
+ <enum name="GL_CURRENT_VERTEX_EXT"/>
+ <enum name="GL_MVP_MATRIX_EXT"/>
+ <enum name="GL_VARIANT_VALUE_EXT"/>
+ <enum name="GL_VARIANT_DATATYPE_EXT"/>
+ <enum name="GL_VARIANT_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_VARIANT_ARRAY_TYPE_EXT"/>
+ <enum name="GL_VARIANT_ARRAY_EXT"/>
+ <enum name="GL_VARIANT_ARRAY_POINTER_EXT"/>
+ <enum name="GL_INVARIANT_VALUE_EXT"/>
+ <enum name="GL_INVARIANT_DATATYPE_EXT"/>
+ <enum name="GL_LOCAL_CONSTANT_VALUE_EXT"/>
+ <enum name="GL_LOCAL_CONSTANT_DATATYPE_EXT"/>
+ <command name="glBeginVertexShaderEXT"/>
+ <command name="glEndVertexShaderEXT"/>
+ <command name="glBindVertexShaderEXT"/>
+ <command name="glGenVertexShadersEXT"/>
+ <command name="glDeleteVertexShaderEXT"/>
+ <command name="glShaderOp1EXT"/>
+ <command name="glShaderOp2EXT"/>
+ <command name="glShaderOp3EXT"/>
+ <command name="glSwizzleEXT"/>
+ <command name="glWriteMaskEXT"/>
+ <command name="glInsertComponentEXT"/>
+ <command name="glExtractComponentEXT"/>
+ <command name="glGenSymbolsEXT"/>
+ <command name="glSetInvariantEXT"/>
+ <command name="glSetLocalConstantEXT"/>
+ <command name="glVariantbvEXT"/>
+ <command name="glVariantsvEXT"/>
+ <command name="glVariantivEXT"/>
+ <command name="glVariantfvEXT"/>
+ <command name="glVariantdvEXT"/>
+ <command name="glVariantubvEXT"/>
+ <command name="glVariantusvEXT"/>
+ <command name="glVariantuivEXT"/>
+ <command name="glVariantPointerEXT"/>
+ <command name="glEnableVariantClientStateEXT"/>
+ <command name="glDisableVariantClientStateEXT"/>
+ <command name="glBindLightParameterEXT"/>
+ <command name="glBindMaterialParameterEXT"/>
+ <command name="glBindTexGenParameterEXT"/>
+ <command name="glBindTextureUnitParameterEXT"/>
+ <command name="glBindParameterEXT"/>
+ <command name="glIsVariantEnabledEXT"/>
+ <command name="glGetVariantBooleanvEXT"/>
+ <command name="glGetVariantIntegervEXT"/>
+ <command name="glGetVariantFloatvEXT"/>
+ <command name="glGetVariantPointervEXT"/>
+ <command name="glGetInvariantBooleanvEXT"/>
+ <command name="glGetInvariantIntegervEXT"/>
+ <command name="glGetInvariantFloatvEXT"/>
+ <command name="glGetLocalConstantBooleanvEXT"/>
+ <command name="glGetLocalConstantIntegervEXT"/>
+ <command name="glGetLocalConstantFloatvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_vertex_weighting" supported="gl">
+ <require>
+ <enum name="GL_MODELVIEW0_STACK_DEPTH_EXT"/>
+ <enum name="GL_MODELVIEW1_STACK_DEPTH_EXT"/>
+ <enum name="GL_MODELVIEW0_MATRIX_EXT"/>
+ <enum name="GL_MODELVIEW1_MATRIX_EXT"/>
+ <enum name="GL_VERTEX_WEIGHTING_EXT"/>
+ <enum name="GL_MODELVIEW0_EXT"/>
+ <enum name="GL_MODELVIEW1_EXT"/>
+ <enum name="GL_CURRENT_VERTEX_WEIGHT_EXT"/>
+ <enum name="GL_VERTEX_WEIGHT_ARRAY_EXT"/>
+ <enum name="GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT"/>
+ <enum name="GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT"/>
+ <enum name="GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT"/>
+ <command name="glVertexWeightfEXT"/>
+ <command name="glVertexWeightfvEXT"/>
+ <command name="glVertexWeightPointerEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_x11_sync_object" supported="gl">
+ <require>
+ <enum name="GL_SYNC_X11_FENCE_EXT"/>
+ <command name="glImportSyncEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_FJ_shader_binary_GCCSO" supported="gles2">
+ <require>
+ <enum name="GL_GCCSO_SHADER_BINARY_FJ"/>
+ </require>
+ </extension>
+ <extension name="GL_GREMEDY_frame_terminator" supported="gl">
+ <require>
+ <command name="glFrameTerminatorGREMEDY"/>
+ </require>
+ </extension>
+ <extension name="GL_GREMEDY_string_marker" supported="gl">
+ <require>
+ <command name="glStringMarkerGREMEDY"/>
+ </require>
+ </extension>
+ <extension name="GL_HP_convolution_border_modes" supported="gl">
+ <require>
+ <enum name="GL_IGNORE_BORDER_HP"/>
+ <enum name="GL_CONSTANT_BORDER_HP"/>
+ <enum name="GL_REPLICATE_BORDER_HP"/>
+ <enum name="GL_CONVOLUTION_BORDER_COLOR_HP"/>
+ </require>
+ </extension>
+ <extension name="GL_HP_image_transform" supported="gl">
+ <require>
+ <enum name="GL_IMAGE_SCALE_X_HP"/>
+ <enum name="GL_IMAGE_SCALE_Y_HP"/>
+ <enum name="GL_IMAGE_TRANSLATE_X_HP"/>
+ <enum name="GL_IMAGE_TRANSLATE_Y_HP"/>
+ <enum name="GL_IMAGE_ROTATE_ANGLE_HP"/>
+ <enum name="GL_IMAGE_ROTATE_ORIGIN_X_HP"/>
+ <enum name="GL_IMAGE_ROTATE_ORIGIN_Y_HP"/>
+ <enum name="GL_IMAGE_MAG_FILTER_HP"/>
+ <enum name="GL_IMAGE_MIN_FILTER_HP"/>
+ <enum name="GL_IMAGE_CUBIC_WEIGHT_HP"/>
+ <enum name="GL_CUBIC_HP"/>
+ <enum name="GL_AVERAGE_HP"/>
+ <enum name="GL_IMAGE_TRANSFORM_2D_HP"/>
+ <enum name="GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP"/>
+ <enum name="GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP"/>
+ <command name="glImageTransformParameteriHP"/>
+ <command name="glImageTransformParameterfHP"/>
+ <command name="glImageTransformParameterivHP"/>
+ <command name="glImageTransformParameterfvHP"/>
+ <command name="glGetImageTransformParameterivHP"/>
+ <command name="glGetImageTransformParameterfvHP"/>
+ </require>
+ </extension>
+ <extension name="GL_HP_occlusion_test" supported="gl">
+ <require>
+ <enum name="GL_OCCLUSION_TEST_HP"/>
+ <enum name="GL_OCCLUSION_TEST_RESULT_HP"/>
+ </require>
+ </extension>
+ <extension name="GL_HP_texture_lighting" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_LIGHTING_MODE_HP"/>
+ <enum name="GL_TEXTURE_POST_SPECULAR_HP"/>
+ <enum name="GL_TEXTURE_PRE_SPECULAR_HP"/>
+ </require>
+ </extension>
+ <extension name="GL_IBM_cull_vertex" supported="gl">
+ <require>
+ <enum name="GL_CULL_VERTEX_IBM"/>
+ </require>
+ </extension>
+ <extension name="GL_IBM_multimode_draw_arrays" supported="gl">
+ <require>
+ <command name="glMultiModeDrawArraysIBM"/>
+ <command name="glMultiModeDrawElementsIBM"/>
+ </require>
+ </extension>
+ <extension name="GL_IBM_rasterpos_clip" supported="gl">
+ <require>
+ <enum name="GL_RASTER_POSITION_UNCLIPPED_IBM"/>
+ </require>
+ </extension>
+ <extension name="GL_IBM_static_data" supported="gl">
+ <require>
+ <enum name="GL_ALL_STATIC_DATA_IBM"/>
+ <enum name="GL_STATIC_VERTEX_ARRAY_IBM"/>
+ <command name="glFlushStaticDataIBM"/>
+ </require>
+ </extension>
+ <extension name="GL_IBM_texture_mirrored_repeat" supported="gl">
+ <require>
+ <enum name="GL_MIRRORED_REPEAT_IBM"/>
+ </require>
+ </extension>
+ <extension name="GL_IBM_vertex_array_lists" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_LIST_IBM"/>
+ <enum name="GL_NORMAL_ARRAY_LIST_IBM"/>
+ <enum name="GL_COLOR_ARRAY_LIST_IBM"/>
+ <enum name="GL_INDEX_ARRAY_LIST_IBM"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_LIST_IBM"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_LIST_IBM"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_LIST_IBM"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_LIST_IBM"/>
+ <enum name="GL_VERTEX_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_NORMAL_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_COLOR_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_INDEX_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM"/>
+ <command name="glColorPointerListIBM"/>
+ <command name="glSecondaryColorPointerListIBM"/>
+ <command name="glEdgeFlagPointerListIBM"/>
+ <command name="glFogCoordPointerListIBM"/>
+ <command name="glIndexPointerListIBM"/>
+ <command name="glNormalPointerListIBM"/>
+ <command name="glTexCoordPointerListIBM"/>
+ <command name="glVertexPointerListIBM"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_multisampled_render_to_texture" supported="gles1|gles2">
+ <require>
+ <enum name="GL_RENDERBUFFER_SAMPLES_IMG"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG"/>
+ <enum name="GL_MAX_SAMPLES_IMG"/>
+ <enum name="GL_TEXTURE_SAMPLES_IMG"/>
+ <command name="glRenderbufferStorageMultisampleIMG"/>
+ <command name="glFramebufferTexture2DMultisampleIMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_program_binary" supported="gles2">
+ <require>
+ <enum name="GL_SGX_PROGRAM_BINARY_IMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_read_format" supported="gles1|gles2">
+ <require>
+ <enum name="GL_BGRA_IMG"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_shader_binary" supported="gles2">
+ <require>
+ <enum name="GL_SGX_BINARY_IMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_texture_compression_pvrtc" supported="gles1|gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG"/>
+ <enum name="GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG"/>
+ <enum name="GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG"/>
+ <enum name="GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_texture_compression_pvrtc2" supported="gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG"/>
+ <enum name="GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_texture_env_enhanced_fixed_function" supported="gles1">
+ <require>
+ <enum name="GL_MODULATE_COLOR_IMG"/>
+ <enum name="GL_RECIP_ADD_SIGNED_ALPHA_IMG"/>
+ <enum name="GL_TEXTURE_ALPHA_MODULATE_IMG"/>
+ <enum name="GL_FACTOR_ALPHA_MODULATE_IMG"/>
+ <enum name="GL_FRAGMENT_ALPHA_MODULATE_IMG"/>
+ <enum name="GL_ADD_BLEND_IMG"/>
+ <enum name="GL_DOT3_RGBA_IMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_user_clip_plane" supported="gles1">
+ <require>
+ <enum name="GL_CLIP_PLANE0_IMG"/>
+ <enum name="GL_CLIP_PLANE1_IMG"/>
+ <enum name="GL_CLIP_PLANE2_IMG"/>
+ <enum name="GL_CLIP_PLANE3_IMG"/>
+ <enum name="GL_CLIP_PLANE4_IMG"/>
+ <enum name="GL_CLIP_PLANE5_IMG"/>
+ <enum name="GL_MAX_CLIP_PLANES_IMG"/>
+ <command name="glClipPlanefIMG"/>
+ <command name="glClipPlanexIMG"/>
+ </require>
+ </extension>
+ <extension name="GL_INGR_blend_func_separate" supported="gl">
+ <require>
+ <command name="glBlendFuncSeparateINGR"/>
+ </require>
+ </extension>
+ <extension name="GL_INGR_color_clamp" supported="gl">
+ <require>
+ <enum name="GL_RED_MIN_CLAMP_INGR"/>
+ <enum name="GL_GREEN_MIN_CLAMP_INGR"/>
+ <enum name="GL_BLUE_MIN_CLAMP_INGR"/>
+ <enum name="GL_ALPHA_MIN_CLAMP_INGR"/>
+ <enum name="GL_RED_MAX_CLAMP_INGR"/>
+ <enum name="GL_GREEN_MAX_CLAMP_INGR"/>
+ <enum name="GL_BLUE_MAX_CLAMP_INGR"/>
+ <enum name="GL_ALPHA_MAX_CLAMP_INGR"/>
+ </require>
+ </extension>
+ <extension name="GL_INGR_interlace_read" supported="gl">
+ <require>
+ <enum name="GL_INTERLACE_READ_INGR"/>
+ </require>
+ </extension>
+ <extension name="GL_INTEL_fragment_shader_ordering" supported="gl">
+ <require/>
+ </extension>
+ <extension name="GL_INTEL_map_texture" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_MEMORY_LAYOUT_INTEL"/>
+ <enum name="GL_LAYOUT_DEFAULT_INTEL"/>
+ <enum name="GL_LAYOUT_LINEAR_INTEL"/>
+ <enum name="GL_LAYOUT_LINEAR_CPU_CACHED_INTEL"/>
+ <command name="glSyncTextureINTEL"/>
+ <command name="glUnmapTexture2DINTEL"/>
+ <command name="glMapTexture2DINTEL"/>
+ </require>
+ </extension>
+ <extension name="GL_INTEL_parallel_arrays" supported="gl">
+ <require>
+ <enum name="GL_PARALLEL_ARRAYS_INTEL"/>
+ <enum name="GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <enum name="GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <enum name="GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <command name="glVertexPointervINTEL"/>
+ <command name="glNormalPointervINTEL"/>
+ <command name="glColorPointervINTEL"/>
+ <command name="glTexCoordPointervINTEL"/>
+ </require>
+ </extension>
+ <extension name="GL_KHR_debug" supported="gl|glcore|gles2">
+ <require api="gl" comment="KHR extensions *mandate* suffixes for ES, unlike for GL">
+ <enum name="GL_DEBUG_OUTPUT_SYNCHRONOUS"/>
+ <enum name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH"/>
+ <enum name="GL_DEBUG_CALLBACK_FUNCTION"/>
+ <enum name="GL_DEBUG_CALLBACK_USER_PARAM"/>
+ <enum name="GL_DEBUG_SOURCE_API"/>
+ <enum name="GL_DEBUG_SOURCE_WINDOW_SYSTEM"/>
+ <enum name="GL_DEBUG_SOURCE_SHADER_COMPILER"/>
+ <enum name="GL_DEBUG_SOURCE_THIRD_PARTY"/>
+ <enum name="GL_DEBUG_SOURCE_APPLICATION"/>
+ <enum name="GL_DEBUG_SOURCE_OTHER"/>
+ <enum name="GL_DEBUG_TYPE_ERROR"/>
+ <enum name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR"/>
+ <enum name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR"/>
+ <enum name="GL_DEBUG_TYPE_PORTABILITY"/>
+ <enum name="GL_DEBUG_TYPE_PERFORMANCE"/>
+ <enum name="GL_DEBUG_TYPE_OTHER"/>
+ <enum name="GL_DEBUG_TYPE_MARKER"/>
+ <enum name="GL_DEBUG_TYPE_PUSH_GROUP"/>
+ <enum name="GL_DEBUG_TYPE_POP_GROUP"/>
+ <enum name="GL_DEBUG_SEVERITY_NOTIFICATION"/>
+ <enum name="GL_MAX_DEBUG_GROUP_STACK_DEPTH"/>
+ <enum name="GL_DEBUG_GROUP_STACK_DEPTH"/>
+ <enum name="GL_BUFFER"/>
+ <enum name="GL_SHADER"/>
+ <enum name="GL_PROGRAM"/>
+ <enum name="GL_VERTEX_ARRAY"/>
+ <enum name="GL_QUERY"/>
+ <enum name="GL_SAMPLER"/>
+ <enum name="GL_MAX_LABEL_LENGTH"/>
+ <enum name="GL_MAX_DEBUG_MESSAGE_LENGTH"/>
+ <enum name="GL_MAX_DEBUG_LOGGED_MESSAGES"/>
+ <enum name="GL_DEBUG_LOGGED_MESSAGES"/>
+ <enum name="GL_DEBUG_SEVERITY_HIGH"/>
+ <enum name="GL_DEBUG_SEVERITY_MEDIUM"/>
+ <enum name="GL_DEBUG_SEVERITY_LOW"/>
+ <enum name="GL_DEBUG_OUTPUT"/>
+ <enum name="GL_CONTEXT_FLAG_DEBUG_BIT"/>
+ <enum name="GL_STACK_OVERFLOW"/>
+ <enum name="GL_STACK_UNDERFLOW"/>
+ <command name="glDebugMessageControl"/>
+ <command name="glDebugMessageInsert"/>
+ <command name="glDebugMessageCallback"/>
+ <command name="glGetDebugMessageLog"/>
+ <command name="glPushDebugGroup"/>
+ <command name="glPopDebugGroup"/>
+ <command name="glObjectLabel"/>
+ <command name="glGetObjectLabel"/>
+ <command name="glObjectPtrLabel"/>
+ <command name="glGetObjectPtrLabel"/>
+ <command name="glGetPointerv"/>
+ </require>
+ <require api="gles2">
+ <enum name="GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR"/>
+ <enum name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR"/>
+ <enum name="GL_DEBUG_CALLBACK_FUNCTION_KHR"/>
+ <enum name="GL_DEBUG_CALLBACK_USER_PARAM_KHR"/>
+ <enum name="GL_DEBUG_SOURCE_API_KHR"/>
+ <enum name="GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR"/>
+ <enum name="GL_DEBUG_SOURCE_SHADER_COMPILER_KHR"/>
+ <enum name="GL_DEBUG_SOURCE_THIRD_PARTY_KHR"/>
+ <enum name="GL_DEBUG_SOURCE_APPLICATION_KHR"/>
+ <enum name="GL_DEBUG_SOURCE_OTHER_KHR"/>
+ <enum name="GL_DEBUG_TYPE_ERROR_KHR"/>
+ <enum name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR"/>
+ <enum name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR"/>
+ <enum name="GL_DEBUG_TYPE_PORTABILITY_KHR"/>
+ <enum name="GL_DEBUG_TYPE_PERFORMANCE_KHR"/>
+ <enum name="GL_DEBUG_TYPE_OTHER_KHR"/>
+ <enum name="GL_DEBUG_TYPE_MARKER_KHR"/>
+ <enum name="GL_DEBUG_TYPE_PUSH_GROUP_KHR"/>
+ <enum name="GL_DEBUG_TYPE_POP_GROUP_KHR"/>
+ <enum name="GL_DEBUG_SEVERITY_NOTIFICATION_KHR"/>
+ <enum name="GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR"/>
+ <enum name="GL_DEBUG_GROUP_STACK_DEPTH_KHR"/>
+ <enum name="GL_BUFFER_KHR"/>
+ <enum name="GL_SHADER_KHR"/>
+ <enum name="GL_PROGRAM_KHR"/>
+ <enum name="GL_VERTEX_ARRAY_KHR"/>
+ <enum name="GL_QUERY_KHR"/>
+ <enum name="GL_SAMPLER_KHR"/>
+ <enum name="GL_MAX_LABEL_LENGTH_KHR"/>
+ <enum name="GL_MAX_DEBUG_MESSAGE_LENGTH_KHR"/>
+ <enum name="GL_MAX_DEBUG_LOGGED_MESSAGES_KHR"/>
+ <enum name="GL_DEBUG_LOGGED_MESSAGES_KHR"/>
+ <enum name="GL_DEBUG_SEVERITY_HIGH_KHR"/>
+ <enum name="GL_DEBUG_SEVERITY_MEDIUM_KHR"/>
+ <enum name="GL_DEBUG_SEVERITY_LOW_KHR"/>
+ <enum name="GL_DEBUG_OUTPUT_KHR"/>
+ <enum name="GL_CONTEXT_FLAG_DEBUG_BIT_KHR"/>
+ <enum name="GL_STACK_OVERFLOW_KHR"/>
+ <enum name="GL_STACK_UNDERFLOW_KHR"/>
+ <command name="glDebugMessageControlKHR"/>
+ <command name="glDebugMessageInsertKHR"/>
+ <command name="glDebugMessageCallbackKHR"/>
+ <command name="glGetDebugMessageLogKHR"/>
+ <command name="glPushDebugGroupKHR"/>
+ <command name="glPopDebugGroupKHR"/>
+ <command name="glObjectLabelKHR"/>
+ <command name="glGetObjectLabelKHR"/>
+ <command name="glObjectPtrLabelKHR"/>
+ <command name="glGetObjectPtrLabelKHR"/>
+ <command name="glGetPointervKHR"/>
+ </require>
+ <require api="gl" comment="Could benefit from api/profile attributes at enum tag level">
+ <enum name="GL_PROGRAM_PIPELINE"/>
+ </require>
+ <require api="gl" profile="compatibility">
+ <enum name="GL_DISPLAY_LIST"/>
+ </require>
+ </extension>
+ <extension name="GL_KHR_texture_compression_astc_hdr" supported="gl|glcore|gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_4x4_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x4_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x8_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x8_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x10_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_12x10_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_12x12_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"/>
+ </require>
+ </extension>
+ <extension name="GL_KHR_texture_compression_astc_ldr" supported="gl|glcore|gles2" comment="API is identical to GL_KHR_texture_compression_astc_hdr extension">
+ <require>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_4x4_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x4_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x8_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x8_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x10_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_12x10_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_12x12_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"/>
+ </require>
+ </extension>
+ <extension name="GL_MESAX_texture_stack" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_1D_STACK_MESAX"/>
+ <enum name="GL_TEXTURE_2D_STACK_MESAX"/>
+ <enum name="GL_PROXY_TEXTURE_1D_STACK_MESAX"/>
+ <enum name="GL_PROXY_TEXTURE_2D_STACK_MESAX"/>
+ <enum name="GL_TEXTURE_1D_STACK_BINDING_MESAX"/>
+ <enum name="GL_TEXTURE_2D_STACK_BINDING_MESAX"/>
+ </require>
+ </extension>
+ <extension name="GL_MESA_pack_invert" supported="gl">
+ <require>
+ <enum name="GL_PACK_INVERT_MESA"/>
+ </require>
+ </extension>
+ <extension name="GL_MESA_resize_buffers" supported="gl">
+ <require>
+ <command name="glResizeBuffersMESA"/>
+ </require>
+ </extension>
+ <extension name="GL_MESA_window_pos" supported="gl">
+ <require>
+ <command name="glWindowPos2dMESA"/>
+ <command name="glWindowPos2dvMESA"/>
+ <command name="glWindowPos2fMESA"/>
+ <command name="glWindowPos2fvMESA"/>
+ <command name="glWindowPos2iMESA"/>
+ <command name="glWindowPos2ivMESA"/>
+ <command name="glWindowPos2sMESA"/>
+ <command name="glWindowPos2svMESA"/>
+ <command name="glWindowPos3dMESA"/>
+ <command name="glWindowPos3dvMESA"/>
+ <command name="glWindowPos3fMESA"/>
+ <command name="glWindowPos3fvMESA"/>
+ <command name="glWindowPos3iMESA"/>
+ <command name="glWindowPos3ivMESA"/>
+ <command name="glWindowPos3sMESA"/>
+ <command name="glWindowPos3svMESA"/>
+ <command name="glWindowPos4dMESA"/>
+ <command name="glWindowPos4dvMESA"/>
+ <command name="glWindowPos4fMESA"/>
+ <command name="glWindowPos4fvMESA"/>
+ <command name="glWindowPos4iMESA"/>
+ <command name="glWindowPos4ivMESA"/>
+ <command name="glWindowPos4sMESA"/>
+ <command name="glWindowPos4svMESA"/>
+ </require>
+ </extension>
+ <extension name="GL_MESA_ycbcr_texture" supported="gl">
+ <require>
+ <enum name="GL_UNSIGNED_SHORT_8_8_MESA"/>
+ <enum name="GL_UNSIGNED_SHORT_8_8_REV_MESA"/>
+ <enum name="GL_YCBCR_MESA"/>
+ </require>
+ </extension>
+ <extension name="GL_NVX_conditional_render" supported="gl">
+ <require>
+ <command name="glBeginConditionalRenderNVX"/>
+ <command name="glEndConditionalRenderNVX"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_bindless_multi_draw_indirect" supported="gl">
+ <require>
+ <command name="glMultiDrawArraysIndirectBindlessNV"/>
+ <command name="glMultiDrawElementsIndirectBindlessNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_bindless_texture" supported="gl">
+ <require>
+ <command name="glGetTextureHandleNV"/>
+ <command name="glGetTextureSamplerHandleNV"/>
+ <command name="glMakeTextureHandleResidentNV"/>
+ <command name="glMakeTextureHandleNonResidentNV"/>
+ <command name="glGetImageHandleNV"/>
+ <command name="glMakeImageHandleResidentNV"/>
+ <command name="glMakeImageHandleNonResidentNV"/>
+ <command name="glUniformHandleui64NV"/>
+ <command name="glUniformHandleui64vNV"/>
+ <command name="glProgramUniformHandleui64NV"/>
+ <command name="glProgramUniformHandleui64vNV"/>
+ <command name="glIsTextureHandleResidentNV"/>
+ <command name="glIsImageHandleResidentNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_blend_equation_advanced" supported="gl|gles2">
+ <require api="gles2" comment="Really only required for ES 2.0, not ES 3.0">
+ <enum name="GL_BLUE_NV"/>
+ <enum name="GL_GREEN_NV"/>
+ <enum name="GL_RED_NV"/>
+ <enum name="GL_XOR_NV"/>
+ </require>
+ <require api="gl" comment="GL has these enums in core">
+ <enum name="GL_BLUE"/>
+ <enum name="GL_GREEN"/>
+ <enum name="GL_RED"/>
+ <enum name="GL_XOR"/>
+ </require>
+ <require>
+ <enum name="GL_BLEND_OVERLAP_NV"/>
+ <enum name="GL_BLEND_PREMULTIPLIED_SRC_NV"/>
+ <enum name="GL_COLORBURN_NV"/>
+ <enum name="GL_COLORDODGE_NV"/>
+ <enum name="GL_CONJOINT_NV"/>
+ <enum name="GL_CONTRAST_NV"/>
+ <enum name="GL_DARKEN_NV"/>
+ <enum name="GL_DIFFERENCE_NV"/>
+ <enum name="GL_DISJOINT_NV"/>
+ <enum name="GL_DST_ATOP_NV"/>
+ <enum name="GL_DST_IN_NV"/>
+ <enum name="GL_DST_NV"/>
+ <enum name="GL_DST_OUT_NV"/>
+ <enum name="GL_DST_OVER_NV"/>
+ <enum name="GL_EXCLUSION_NV"/>
+ <enum name="GL_HARDLIGHT_NV"/>
+ <enum name="GL_HARDMIX_NV"/>
+ <enum name="GL_HSL_COLOR_NV"/>
+ <enum name="GL_HSL_HUE_NV"/>
+ <enum name="GL_HSL_LUMINOSITY_NV"/>
+ <enum name="GL_HSL_SATURATION_NV"/>
+ <enum name="GL_INVERT"/>
+ <enum name="GL_INVERT_OVG_NV"/>
+ <enum name="GL_INVERT_RGB_NV"/>
+ <enum name="GL_LIGHTEN_NV"/>
+ <enum name="GL_LINEARBURN_NV"/>
+ <enum name="GL_LINEARDODGE_NV"/>
+ <enum name="GL_LINEARLIGHT_NV"/>
+ <enum name="GL_MINUS_CLAMPED_NV"/>
+ <enum name="GL_MINUS_NV"/>
+ <enum name="GL_MULTIPLY_NV"/>
+ <enum name="GL_OVERLAY_NV"/>
+ <enum name="GL_PINLIGHT_NV"/>
+ <enum name="GL_PLUS_CLAMPED_ALPHA_NV"/>
+ <enum name="GL_PLUS_CLAMPED_NV"/>
+ <enum name="GL_PLUS_DARKER_NV"/>
+ <enum name="GL_PLUS_NV"/>
+ <enum name="GL_SCREEN_NV"/>
+ <enum name="GL_SOFTLIGHT_NV"/>
+ <enum name="GL_SRC_ATOP_NV"/>
+ <enum name="GL_SRC_IN_NV"/>
+ <enum name="GL_SRC_NV"/>
+ <enum name="GL_SRC_OUT_NV"/>
+ <enum name="GL_SRC_OVER_NV"/>
+ <enum name="GL_UNCORRELATED_NV"/>
+ <enum name="GL_VIVIDLIGHT_NV"/>
+ <enum name="GL_ZERO"/>
+ <command name="glBlendParameteriNV"/>
+ <command name="glBlendBarrierNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_blend_equation_advanced_coherent" supported="gl|gles2">
+ <require comment="Otherwise identical to GL_NV_blend_equation_advanced, just different semantic behavior">
+ <enum name="GL_BLEND_ADVANCED_COHERENT_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_blend_square" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_compute_program5" supported="gl">
+ <require>
+ <enum name="GL_COMPUTE_PROGRAM_NV"/>
+ <enum name="GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_conditional_render" supported="gl">
+ <require>
+ <enum name="GL_QUERY_WAIT_NV"/>
+ <enum name="GL_QUERY_NO_WAIT_NV"/>
+ <enum name="GL_QUERY_BY_REGION_WAIT_NV"/>
+ <enum name="GL_QUERY_BY_REGION_NO_WAIT_NV"/>
+ <command name="glBeginConditionalRenderNV"/>
+ <command name="glEndConditionalRenderNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_copy_buffer" supported="gles2">
+ <require>
+ <enum name="GL_COPY_READ_BUFFER_NV"/>
+ <enum name="GL_COPY_WRITE_BUFFER_NV"/>
+ <command name="glCopyBufferSubDataNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_copy_depth_to_color" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_STENCIL_TO_RGBA_NV"/>
+ <enum name="GL_DEPTH_STENCIL_TO_BGRA_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_copy_image" supported="gl">
+ <require>
+ <command name="glCopyImageSubDataNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_coverage_sample" supported="gles2">
+ <require>
+ <enum name="GL_COVERAGE_COMPONENT_NV"/>
+ <enum name="GL_COVERAGE_COMPONENT4_NV"/>
+ <enum name="GL_COVERAGE_ATTACHMENT_NV"/>
+ <enum name="GL_COVERAGE_BUFFERS_NV"/>
+ <enum name="GL_COVERAGE_SAMPLES_NV"/>
+ <enum name="GL_COVERAGE_ALL_FRAGMENTS_NV"/>
+ <enum name="GL_COVERAGE_EDGE_FRAGMENTS_NV"/>
+ <enum name="GL_COVERAGE_AUTOMATIC_NV"/>
+ <enum name="GL_COVERAGE_BUFFER_BIT_NV"/>
+ <command name="glCoverageMaskNV"/>
+ <command name="glCoverageOperationNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_deep_texture3D" supported="gl">
+ <require>
+ <enum name="GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV"/>
+ <enum name="GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_depth_buffer_float" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT32F_NV"/>
+ <enum name="GL_DEPTH32F_STENCIL8_NV"/>
+ <enum name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV"/>
+ <enum name="GL_DEPTH_BUFFER_FLOAT_MODE_NV"/>
+ <command name="glDepthRangedNV"/>
+ <command name="glClearDepthdNV"/>
+ <command name="glDepthBoundsdNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_depth_clamp" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_CLAMP_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_depth_nonlinear" supported="gles2">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT16_NONLINEAR_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_draw_buffers" supported="gles2">
+ <require>
+ <enum name="GL_MAX_DRAW_BUFFERS_NV"/>
+ <enum name="GL_DRAW_BUFFER0_NV"/>
+ <enum name="GL_DRAW_BUFFER1_NV"/>
+ <enum name="GL_DRAW_BUFFER2_NV"/>
+ <enum name="GL_DRAW_BUFFER3_NV"/>
+ <enum name="GL_DRAW_BUFFER4_NV"/>
+ <enum name="GL_DRAW_BUFFER5_NV"/>
+ <enum name="GL_DRAW_BUFFER6_NV"/>
+ <enum name="GL_DRAW_BUFFER7_NV"/>
+ <enum name="GL_DRAW_BUFFER8_NV"/>
+ <enum name="GL_DRAW_BUFFER9_NV"/>
+ <enum name="GL_DRAW_BUFFER10_NV"/>
+ <enum name="GL_DRAW_BUFFER11_NV"/>
+ <enum name="GL_DRAW_BUFFER12_NV"/>
+ <enum name="GL_DRAW_BUFFER13_NV"/>
+ <enum name="GL_DRAW_BUFFER14_NV"/>
+ <enum name="GL_DRAW_BUFFER15_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT0_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT1_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT2_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT3_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT4_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT5_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT6_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT7_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT8_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT9_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT10_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT11_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT12_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT13_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT14_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT15_NV"/>
+ <command name="glDrawBuffersNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_draw_instanced" supported="gles2">
+ <require>
+ <command name="glDrawArraysInstancedNV"/>
+ <command name="glDrawElementsInstancedNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_draw_texture" supported="gl">
+ <require>
+ <command name="glDrawTextureNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_evaluators" supported="gl">
+ <require>
+ <enum name="GL_EVAL_2D_NV"/>
+ <enum name="GL_EVAL_TRIANGULAR_2D_NV"/>
+ <enum name="GL_MAP_TESSELLATION_NV"/>
+ <enum name="GL_MAP_ATTRIB_U_ORDER_NV"/>
+ <enum name="GL_MAP_ATTRIB_V_ORDER_NV"/>
+ <enum name="GL_EVAL_FRACTIONAL_TESSELLATION_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB0_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB1_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB2_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB3_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB4_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB5_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB6_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB7_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB8_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB9_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB10_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB11_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB12_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB13_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB14_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB15_NV"/>
+ <enum name="GL_MAX_MAP_TESSELLATION_NV"/>
+ <enum name="GL_MAX_RATIONAL_EVAL_ORDER_NV"/>
+ <command name="glMapControlPointsNV"/>
+ <command name="glMapParameterivNV"/>
+ <command name="glMapParameterfvNV"/>
+ <command name="glGetMapControlPointsNV"/>
+ <command name="glGetMapParameterivNV"/>
+ <command name="glGetMapParameterfvNV"/>
+ <command name="glGetMapAttribParameterivNV"/>
+ <command name="glGetMapAttribParameterfvNV"/>
+ <command name="glEvalMapsNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_explicit_attrib_location" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_explicit_multisample" supported="gl">
+ <require>
+ <enum name="GL_SAMPLE_POSITION_NV"/>
+ <enum name="GL_SAMPLE_MASK_NV"/>
+ <enum name="GL_SAMPLE_MASK_VALUE_NV"/>
+ <enum name="GL_TEXTURE_BINDING_RENDERBUFFER_NV"/>
+ <enum name="GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV"/>
+ <enum name="GL_TEXTURE_RENDERBUFFER_NV"/>
+ <enum name="GL_SAMPLER_RENDERBUFFER_NV"/>
+ <enum name="GL_INT_SAMPLER_RENDERBUFFER_NV"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV"/>
+ <enum name="GL_MAX_SAMPLE_MASK_WORDS_NV"/>
+ <command name="glGetMultisamplefvNV"/>
+ <command name="glSampleMaskIndexedNV"/>
+ <command name="glTexRenderbufferNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_fbo_color_attachments" supported="gles2">
+ <require>
+ <enum name="GL_MAX_COLOR_ATTACHMENTS_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT0_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT1_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT2_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT3_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT4_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT5_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT6_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT7_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT8_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT9_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT10_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT11_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT12_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT13_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT14_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT15_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_fence" supported="gl|gles1|gles2">
+ <require>
+ <enum name="GL_ALL_COMPLETED_NV"/>
+ <enum name="GL_FENCE_STATUS_NV"/>
+ <enum name="GL_FENCE_CONDITION_NV"/>
+ <command name="glDeleteFencesNV"/>
+ <command name="glGenFencesNV"/>
+ <command name="glIsFenceNV"/>
+ <command name="glTestFenceNV"/>
+ <command name="glGetFenceivNV"/>
+ <command name="glFinishFenceNV"/>
+ <command name="glSetFenceNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_float_buffer" supported="gl">
+ <require>
+ <enum name="GL_FLOAT_R_NV"/>
+ <enum name="GL_FLOAT_RG_NV"/>
+ <enum name="GL_FLOAT_RGB_NV"/>
+ <enum name="GL_FLOAT_RGBA_NV"/>
+ <enum name="GL_FLOAT_R16_NV"/>
+ <enum name="GL_FLOAT_R32_NV"/>
+ <enum name="GL_FLOAT_RG16_NV"/>
+ <enum name="GL_FLOAT_RG32_NV"/>
+ <enum name="GL_FLOAT_RGB16_NV"/>
+ <enum name="GL_FLOAT_RGB32_NV"/>
+ <enum name="GL_FLOAT_RGBA16_NV"/>
+ <enum name="GL_FLOAT_RGBA32_NV"/>
+ <enum name="GL_TEXTURE_FLOAT_COMPONENTS_NV"/>
+ <enum name="GL_FLOAT_CLEAR_COLOR_VALUE_NV"/>
+ <enum name="GL_FLOAT_RGBA_MODE_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_fog_distance" supported="gl">
+ <require>
+ <enum name="GL_FOG_DISTANCE_MODE_NV"/>
+ <enum name="GL_EYE_RADIAL_NV"/>
+ <enum name="GL_EYE_PLANE_ABSOLUTE_NV"/>
+ <enum name="GL_EYE_PLANE"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_fragment_program" supported="gl">
+ <require>
+ <enum name="GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV"/>
+ <enum name="GL_FRAGMENT_PROGRAM_NV"/>
+ <enum name="GL_MAX_TEXTURE_COORDS_NV"/>
+ <enum name="GL_MAX_TEXTURE_IMAGE_UNITS_NV"/>
+ <enum name="GL_FRAGMENT_PROGRAM_BINDING_NV"/>
+ <enum name="GL_PROGRAM_ERROR_STRING_NV"/>
+ </require>
+ <require comment="Some NV_fragment_program entry points are shared with ARB_vertex_program">
+ <command name="glProgramNamedParameter4fNV"/>
+ <command name="glProgramNamedParameter4fvNV"/>
+ <command name="glProgramNamedParameter4dNV"/>
+ <command name="glProgramNamedParameter4dvNV"/>
+ <command name="glGetProgramNamedParameterfvNV"/>
+ <command name="glGetProgramNamedParameterdvNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_fragment_program2" supported="gl">
+ <require>
+ <enum name="GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV"/>
+ <enum name="GL_MAX_PROGRAM_CALL_DEPTH_NV"/>
+ <enum name="GL_MAX_PROGRAM_IF_DEPTH_NV"/>
+ <enum name="GL_MAX_PROGRAM_LOOP_DEPTH_NV"/>
+ <enum name="GL_MAX_PROGRAM_LOOP_COUNT_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_fragment_program4" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_fragment_program_option" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_framebuffer_blit" supported="gles2">
+ <require>
+ <enum name="GL_READ_FRAMEBUFFER_NV"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_NV"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING_NV"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING_NV"/>
+ <command name="glBlitFramebufferNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_framebuffer_multisample" supported="gles2">
+ <require>
+ <enum name="GL_RENDERBUFFER_SAMPLES_NV"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV"/>
+ <enum name="GL_MAX_SAMPLES_NV"/>
+ <command name="glRenderbufferStorageMultisampleNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_framebuffer_multisample_coverage" supported="gl">
+ <require>
+ <enum name="GL_RENDERBUFFER_COVERAGE_SAMPLES_NV"/>
+ <enum name="GL_RENDERBUFFER_COLOR_SAMPLES_NV"/>
+ <enum name="GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV"/>
+ <enum name="GL_MULTISAMPLE_COVERAGE_MODES_NV"/>
+ <command name="glRenderbufferStorageMultisampleCoverageNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_generate_mipmap_sRGB" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_geometry_program4" supported="gl">
+ <require>
+ <enum name="GL_LINES_ADJACENCY_EXT"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY_EXT"/>
+ <enum name="GL_TRIANGLES_ADJACENCY_EXT"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY_EXT"/>
+ <enum name="GL_GEOMETRY_PROGRAM_NV"/>
+ <enum name="GL_MAX_PROGRAM_OUTPUT_VERTICES_NV"/>
+ <enum name="GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV"/>
+ <enum name="GL_GEOMETRY_VERTICES_OUT_EXT"/>
+ <enum name="GL_GEOMETRY_INPUT_TYPE_EXT"/>
+ <enum name="GL_GEOMETRY_OUTPUT_TYPE_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT"/>
+ <enum name="GL_PROGRAM_POINT_SIZE_EXT"/>
+ <command name="glProgramVertexLimitNV"/>
+ <command name="glFramebufferTextureEXT"/>
+ <command name="glFramebufferTextureLayerEXT"/>
+ <command name="glFramebufferTextureFaceEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_geometry_shader4" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_gpu_program4" supported="gl">
+ <require>
+ <enum name="GL_MIN_PROGRAM_TEXEL_OFFSET_NV"/>
+ <enum name="GL_MAX_PROGRAM_TEXEL_OFFSET_NV"/>
+ <enum name="GL_PROGRAM_ATTRIB_COMPONENTS_NV"/>
+ <enum name="GL_PROGRAM_RESULT_COMPONENTS_NV"/>
+ <enum name="GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV"/>
+ <enum name="GL_MAX_PROGRAM_RESULT_COMPONENTS_NV"/>
+ <enum name="GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV"/>
+ <enum name="GL_MAX_PROGRAM_GENERIC_RESULTS_NV"/>
+ <command name="glProgramLocalParameterI4iNV"/>
+ <command name="glProgramLocalParameterI4ivNV"/>
+ <command name="glProgramLocalParametersI4ivNV"/>
+ <command name="glProgramLocalParameterI4uiNV"/>
+ <command name="glProgramLocalParameterI4uivNV"/>
+ <command name="glProgramLocalParametersI4uivNV"/>
+ <command name="glProgramEnvParameterI4iNV"/>
+ <command name="glProgramEnvParameterI4ivNV"/>
+ <command name="glProgramEnvParametersI4ivNV"/>
+ <command name="glProgramEnvParameterI4uiNV"/>
+ <command name="glProgramEnvParameterI4uivNV"/>
+ <command name="glProgramEnvParametersI4uivNV"/>
+ <command name="glGetProgramLocalParameterIivNV"/>
+ <command name="glGetProgramLocalParameterIuivNV"/>
+ <command name="glGetProgramEnvParameterIivNV"/>
+ <command name="glGetProgramEnvParameterIuivNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_gpu_program5" supported="gl">
+ <require>
+ <enum name="GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV"/>
+ <enum name="GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV"/>
+ <enum name="GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV"/>
+ <enum name="GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV"/>
+ <enum name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV"/>
+ <enum name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV"/>
+ <enum name="GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV"/>
+ <enum name="GL_MAX_PROGRAM_SUBROUTINE_NUM_NV"/>
+ <command name="glProgramSubroutineParametersuivNV"/>
+ <command name="glGetProgramSubroutineParameteruivNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_gpu_program5_mem_extended" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_gpu_shader5" supported="gl">
+ <require>
+ <enum name="GL_INT64_NV"/>
+ <enum name="GL_UNSIGNED_INT64_NV"/>
+ <enum name="GL_INT8_NV"/>
+ <enum name="GL_INT8_VEC2_NV"/>
+ <enum name="GL_INT8_VEC3_NV"/>
+ <enum name="GL_INT8_VEC4_NV"/>
+ <enum name="GL_INT16_NV"/>
+ <enum name="GL_INT16_VEC2_NV"/>
+ <enum name="GL_INT16_VEC3_NV"/>
+ <enum name="GL_INT16_VEC4_NV"/>
+ <enum name="GL_INT64_VEC2_NV"/>
+ <enum name="GL_INT64_VEC3_NV"/>
+ <enum name="GL_INT64_VEC4_NV"/>
+ <enum name="GL_UNSIGNED_INT8_NV"/>
+ <enum name="GL_UNSIGNED_INT8_VEC2_NV"/>
+ <enum name="GL_UNSIGNED_INT8_VEC3_NV"/>
+ <enum name="GL_UNSIGNED_INT8_VEC4_NV"/>
+ <enum name="GL_UNSIGNED_INT16_NV"/>
+ <enum name="GL_UNSIGNED_INT16_VEC2_NV"/>
+ <enum name="GL_UNSIGNED_INT16_VEC3_NV"/>
+ <enum name="GL_UNSIGNED_INT16_VEC4_NV"/>
+ <enum name="GL_UNSIGNED_INT64_VEC2_NV"/>
+ <enum name="GL_UNSIGNED_INT64_VEC3_NV"/>
+ <enum name="GL_UNSIGNED_INT64_VEC4_NV"/>
+ <enum name="GL_FLOAT16_NV"/>
+ <enum name="GL_FLOAT16_VEC2_NV"/>
+ <enum name="GL_FLOAT16_VEC3_NV"/>
+ <enum name="GL_FLOAT16_VEC4_NV"/>
+ <enum name="GL_PATCHES"/>
+ <command name="glUniform1i64NV"/>
+ <command name="glUniform2i64NV"/>
+ <command name="glUniform3i64NV"/>
+ <command name="glUniform4i64NV"/>
+ <command name="glUniform1i64vNV"/>
+ <command name="glUniform2i64vNV"/>
+ <command name="glUniform3i64vNV"/>
+ <command name="glUniform4i64vNV"/>
+ <command name="glUniform1ui64NV"/>
+ <command name="glUniform2ui64NV"/>
+ <command name="glUniform3ui64NV"/>
+ <command name="glUniform4ui64NV"/>
+ <command name="glUniform1ui64vNV"/>
+ <command name="glUniform2ui64vNV"/>
+ <command name="glUniform3ui64vNV"/>
+ <command name="glUniform4ui64vNV"/>
+ <command name="glGetUniformi64vNV"/>
+ </require>
+ <require comment="Supported only if GL_EXT_direct_state_access is supported">
+ <command name="glProgramUniform1i64NV"/>
+ <command name="glProgramUniform2i64NV"/>
+ <command name="glProgramUniform3i64NV"/>
+ <command name="glProgramUniform4i64NV"/>
+ <command name="glProgramUniform1i64vNV"/>
+ <command name="glProgramUniform2i64vNV"/>
+ <command name="glProgramUniform3i64vNV"/>
+ <command name="glProgramUniform4i64vNV"/>
+ <command name="glProgramUniform1ui64NV"/>
+ <command name="glProgramUniform2ui64NV"/>
+ <command name="glProgramUniform3ui64NV"/>
+ <command name="glProgramUniform4ui64NV"/>
+ <command name="glProgramUniform1ui64vNV"/>
+ <command name="glProgramUniform2ui64vNV"/>
+ <command name="glProgramUniform3ui64vNV"/>
+ <command name="glProgramUniform4ui64vNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_half_float" supported="gl">
+ <require>
+ <enum name="GL_HALF_FLOAT_NV"/>
+ <command name="glVertex2hNV"/>
+ <command name="glVertex2hvNV"/>
+ <command name="glVertex3hNV"/>
+ <command name="glVertex3hvNV"/>
+ <command name="glVertex4hNV"/>
+ <command name="glVertex4hvNV"/>
+ <command name="glNormal3hNV"/>
+ <command name="glNormal3hvNV"/>
+ <command name="glColor3hNV"/>
+ <command name="glColor3hvNV"/>
+ <command name="glColor4hNV"/>
+ <command name="glColor4hvNV"/>
+ <command name="glTexCoord1hNV"/>
+ <command name="glTexCoord1hvNV"/>
+ <command name="glTexCoord2hNV"/>
+ <command name="glTexCoord2hvNV"/>
+ <command name="glTexCoord3hNV"/>
+ <command name="glTexCoord3hvNV"/>
+ <command name="glTexCoord4hNV"/>
+ <command name="glTexCoord4hvNV"/>
+ <command name="glMultiTexCoord1hNV"/>
+ <command name="glMultiTexCoord1hvNV"/>
+ <command name="glMultiTexCoord2hNV"/>
+ <command name="glMultiTexCoord2hvNV"/>
+ <command name="glMultiTexCoord3hNV"/>
+ <command name="glMultiTexCoord3hvNV"/>
+ <command name="glMultiTexCoord4hNV"/>
+ <command name="glMultiTexCoord4hvNV"/>
+ <command name="glFogCoordhNV"/>
+ <command name="glFogCoordhvNV"/>
+ <command name="glSecondaryColor3hNV"/>
+ <command name="glSecondaryColor3hvNV"/>
+ <command name="glVertexWeighthNV"/>
+ <command name="glVertexWeighthvNV"/>
+ <command name="glVertexAttrib1hNV"/>
+ <command name="glVertexAttrib1hvNV"/>
+ <command name="glVertexAttrib2hNV"/>
+ <command name="glVertexAttrib2hvNV"/>
+ <command name="glVertexAttrib3hNV"/>
+ <command name="glVertexAttrib3hvNV"/>
+ <command name="glVertexAttrib4hNV"/>
+ <command name="glVertexAttrib4hvNV"/>
+ <command name="glVertexAttribs1hvNV"/>
+ <command name="glVertexAttribs2hvNV"/>
+ <command name="glVertexAttribs3hvNV"/>
+ <command name="glVertexAttribs4hvNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_instanced_arrays" supported="gles2">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV"/>
+ <command name="glVertexAttribDivisorNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_light_max_exponent" supported="gl">
+ <require>
+ <enum name="GL_MAX_SHININESS_NV"/>
+ <enum name="GL_MAX_SPOT_EXPONENT_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_multisample_coverage" supported="gl">
+ <require>
+ <enum name="GL_SAMPLES_ARB"/>
+ <enum name="GL_COLOR_SAMPLES_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_multisample_filter_hint" supported="gl">
+ <require>
+ <enum name="GL_MULTISAMPLE_FILTER_HINT_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_non_square_matrices" supported="gles2">
+ <require>
+ <enum name="GL_FLOAT_MAT2x3_NV"/>
+ <enum name="GL_FLOAT_MAT2x4_NV"/>
+ <enum name="GL_FLOAT_MAT3x2_NV"/>
+ <enum name="GL_FLOAT_MAT3x4_NV"/>
+ <enum name="GL_FLOAT_MAT4x2_NV"/>
+ <enum name="GL_FLOAT_MAT4x3_NV"/>
+ <command name="glUniformMatrix2x3fvNV"/>
+ <command name="glUniformMatrix3x2fvNV"/>
+ <command name="glUniformMatrix2x4fvNV"/>
+ <command name="glUniformMatrix4x2fvNV"/>
+ <command name="glUniformMatrix3x4fvNV"/>
+ <command name="glUniformMatrix4x3fvNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_occlusion_query" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_COUNTER_BITS_NV"/>
+ <enum name="GL_CURRENT_OCCLUSION_QUERY_ID_NV"/>
+ <enum name="GL_PIXEL_COUNT_NV"/>
+ <enum name="GL_PIXEL_COUNT_AVAILABLE_NV"/>
+ <command name="glGenOcclusionQueriesNV"/>
+ <command name="glDeleteOcclusionQueriesNV"/>
+ <command name="glIsOcclusionQueryNV"/>
+ <command name="glBeginOcclusionQueryNV"/>
+ <command name="glEndOcclusionQueryNV"/>
+ <command name="glGetOcclusionQueryivNV"/>
+ <command name="glGetOcclusionQueryuivNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_packed_depth_stencil" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_STENCIL_NV"/>
+ <enum name="GL_UNSIGNED_INT_24_8_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_parameter_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV"/>
+ <enum name="GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV"/>
+ <enum name="GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum name="GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum name="GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <command name="glProgramBufferParametersfvNV"/>
+ <command name="glProgramBufferParametersIivNV"/>
+ <command name="glProgramBufferParametersIuivNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_parameter_buffer_object2" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_path_rendering" supported="gl">
+ <require>
+ <enum name="GL_PATH_FORMAT_SVG_NV"/>
+ <enum name="GL_PATH_FORMAT_PS_NV"/>
+ <enum name="GL_STANDARD_FONT_NAME_NV"/>
+ <enum name="GL_SYSTEM_FONT_NAME_NV"/>
+ <enum name="GL_FILE_NAME_NV"/>
+ <enum name="GL_PATH_STROKE_WIDTH_NV"/>
+ <enum name="GL_PATH_END_CAPS_NV"/>
+ <enum name="GL_PATH_INITIAL_END_CAP_NV"/>
+ <enum name="GL_PATH_TERMINAL_END_CAP_NV"/>
+ <enum name="GL_PATH_JOIN_STYLE_NV"/>
+ <enum name="GL_PATH_MITER_LIMIT_NV"/>
+ <enum name="GL_PATH_DASH_CAPS_NV"/>
+ <enum name="GL_PATH_INITIAL_DASH_CAP_NV"/>
+ <enum name="GL_PATH_TERMINAL_DASH_CAP_NV"/>
+ <enum name="GL_PATH_DASH_OFFSET_NV"/>
+ <enum name="GL_PATH_CLIENT_LENGTH_NV"/>
+ <enum name="GL_PATH_FILL_MODE_NV"/>
+ <enum name="GL_PATH_FILL_MASK_NV"/>
+ <enum name="GL_PATH_FILL_COVER_MODE_NV"/>
+ <enum name="GL_PATH_STROKE_COVER_MODE_NV"/>
+ <enum name="GL_PATH_STROKE_MASK_NV"/>
+ <enum name="GL_COUNT_UP_NV"/>
+ <enum name="GL_COUNT_DOWN_NV"/>
+ <enum name="GL_PATH_OBJECT_BOUNDING_BOX_NV"/>
+ <enum name="GL_CONVEX_HULL_NV"/>
+ <enum name="GL_BOUNDING_BOX_NV"/>
+ <enum name="GL_TRANSLATE_X_NV"/>
+ <enum name="GL_TRANSLATE_Y_NV"/>
+ <enum name="GL_TRANSLATE_2D_NV"/>
+ <enum name="GL_TRANSLATE_3D_NV"/>
+ <enum name="GL_AFFINE_2D_NV"/>
+ <enum name="GL_AFFINE_3D_NV"/>
+ <enum name="GL_TRANSPOSE_AFFINE_2D_NV"/>
+ <enum name="GL_TRANSPOSE_AFFINE_3D_NV"/>
+ <enum name="GL_UTF8_NV"/>
+ <enum name="GL_UTF16_NV"/>
+ <enum name="GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV"/>
+ <enum name="GL_PATH_COMMAND_COUNT_NV"/>
+ <enum name="GL_PATH_COORD_COUNT_NV"/>
+ <enum name="GL_PATH_DASH_ARRAY_COUNT_NV"/>
+ <enum name="GL_PATH_COMPUTED_LENGTH_NV"/>
+ <enum name="GL_PATH_FILL_BOUNDING_BOX_NV"/>
+ <enum name="GL_PATH_STROKE_BOUNDING_BOX_NV"/>
+ <enum name="GL_SQUARE_NV"/>
+ <enum name="GL_ROUND_NV"/>
+ <enum name="GL_TRIANGULAR_NV"/>
+ <enum name="GL_BEVEL_NV"/>
+ <enum name="GL_MITER_REVERT_NV"/>
+ <enum name="GL_MITER_TRUNCATE_NV"/>
+ <enum name="GL_SKIP_MISSING_GLYPH_NV"/>
+ <enum name="GL_USE_MISSING_GLYPH_NV"/>
+ <enum name="GL_PATH_ERROR_POSITION_NV"/>
+ <enum name="GL_PATH_FOG_GEN_MODE_NV"/>
+ <enum name="GL_ACCUM_ADJACENT_PAIRS_NV"/>
+ <enum name="GL_ADJACENT_PAIRS_NV"/>
+ <enum name="GL_FIRST_TO_REST_NV"/>
+ <enum name="GL_PATH_GEN_MODE_NV"/>
+ <enum name="GL_PATH_GEN_COEFF_NV"/>
+ <enum name="GL_PATH_GEN_COLOR_FORMAT_NV"/>
+ <enum name="GL_PATH_GEN_COMPONENTS_NV"/>
+ <enum name="GL_PATH_STENCIL_FUNC_NV"/>
+ <enum name="GL_PATH_STENCIL_REF_NV"/>
+ <enum name="GL_PATH_STENCIL_VALUE_MASK_NV"/>
+ <enum name="GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV"/>
+ <enum name="GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV"/>
+ <enum name="GL_PATH_COVER_DEPTH_FUNC_NV"/>
+ <enum name="GL_PATH_DASH_OFFSET_RESET_NV"/>
+ <enum name="GL_MOVE_TO_RESETS_NV"/>
+ <enum name="GL_MOVE_TO_CONTINUES_NV"/>
+ <enum name="GL_CLOSE_PATH_NV"/>
+ <enum name="GL_MOVE_TO_NV"/>
+ <enum name="GL_RELATIVE_MOVE_TO_NV"/>
+ <enum name="GL_LINE_TO_NV"/>
+ <enum name="GL_RELATIVE_LINE_TO_NV"/>
+ <enum name="GL_HORIZONTAL_LINE_TO_NV"/>
+ <enum name="GL_RELATIVE_HORIZONTAL_LINE_TO_NV"/>
+ <enum name="GL_VERTICAL_LINE_TO_NV"/>
+ <enum name="GL_RELATIVE_VERTICAL_LINE_TO_NV"/>
+ <enum name="GL_QUADRATIC_CURVE_TO_NV"/>
+ <enum name="GL_RELATIVE_QUADRATIC_CURVE_TO_NV"/>
+ <enum name="GL_CUBIC_CURVE_TO_NV"/>
+ <enum name="GL_RELATIVE_CUBIC_CURVE_TO_NV"/>
+ <enum name="GL_SMOOTH_QUADRATIC_CURVE_TO_NV"/>
+ <enum name="GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV"/>
+ <enum name="GL_SMOOTH_CUBIC_CURVE_TO_NV"/>
+ <enum name="GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV"/>
+ <enum name="GL_SMALL_CCW_ARC_TO_NV"/>
+ <enum name="GL_RELATIVE_SMALL_CCW_ARC_TO_NV"/>
+ <enum name="GL_SMALL_CW_ARC_TO_NV"/>
+ <enum name="GL_RELATIVE_SMALL_CW_ARC_TO_NV"/>
+ <enum name="GL_LARGE_CCW_ARC_TO_NV"/>
+ <enum name="GL_RELATIVE_LARGE_CCW_ARC_TO_NV"/>
+ <enum name="GL_LARGE_CW_ARC_TO_NV"/>
+ <enum name="GL_RELATIVE_LARGE_CW_ARC_TO_NV"/>
+ <enum name="GL_RESTART_PATH_NV"/>
+ <enum name="GL_DUP_FIRST_CUBIC_CURVE_TO_NV"/>
+ <enum name="GL_DUP_LAST_CUBIC_CURVE_TO_NV"/>
+ <enum name="GL_RECT_NV"/>
+ <enum name="GL_CIRCULAR_CCW_ARC_TO_NV"/>
+ <enum name="GL_CIRCULAR_CW_ARC_TO_NV"/>
+ <enum name="GL_CIRCULAR_TANGENT_ARC_TO_NV"/>
+ <enum name="GL_ARC_TO_NV"/>
+ <enum name="GL_RELATIVE_ARC_TO_NV"/>
+ <enum name="GL_BOLD_BIT_NV"/>
+ <enum name="GL_ITALIC_BIT_NV"/>
+ <enum name="GL_GLYPH_WIDTH_BIT_NV"/>
+ <enum name="GL_GLYPH_HEIGHT_BIT_NV"/>
+ <enum name="GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV"/>
+ <enum name="GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV"/>
+ <enum name="GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV"/>
+ <enum name="GL_GLYPH_VERTICAL_BEARING_X_BIT_NV"/>
+ <enum name="GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV"/>
+ <enum name="GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV"/>
+ <enum name="GL_GLYPH_HAS_KERNING_BIT_NV"/>
+ <enum name="GL_FONT_X_MIN_BOUNDS_BIT_NV"/>
+ <enum name="GL_FONT_Y_MIN_BOUNDS_BIT_NV"/>
+ <enum name="GL_FONT_X_MAX_BOUNDS_BIT_NV"/>
+ <enum name="GL_FONT_Y_MAX_BOUNDS_BIT_NV"/>
+ <enum name="GL_FONT_UNITS_PER_EM_BIT_NV"/>
+ <enum name="GL_FONT_ASCENDER_BIT_NV"/>
+ <enum name="GL_FONT_DESCENDER_BIT_NV"/>
+ <enum name="GL_FONT_HEIGHT_BIT_NV"/>
+ <enum name="GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV"/>
+ <enum name="GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV"/>
+ <enum name="GL_FONT_UNDERLINE_POSITION_BIT_NV"/>
+ <enum name="GL_FONT_UNDERLINE_THICKNESS_BIT_NV"/>
+ <enum name="GL_FONT_HAS_KERNING_BIT_NV"/>
+ <enum name="GL_PRIMARY_COLOR"/>
+ <enum name="GL_PRIMARY_COLOR_NV"/>
+ <enum name="GL_SECONDARY_COLOR_NV"/>
+ <command name="glGenPathsNV"/>
+ <command name="glDeletePathsNV"/>
+ <command name="glIsPathNV"/>
+ <command name="glPathCommandsNV"/>
+ <command name="glPathCoordsNV"/>
+ <command name="glPathSubCommandsNV"/>
+ <command name="glPathSubCoordsNV"/>
+ <command name="glPathStringNV"/>
+ <command name="glPathGlyphsNV"/>
+ <command name="glPathGlyphRangeNV"/>
+ <command name="glWeightPathsNV"/>
+ <command name="glCopyPathNV"/>
+ <command name="glInterpolatePathsNV"/>
+ <command name="glTransformPathNV"/>
+ <command name="glPathParameterivNV"/>
+ <command name="glPathParameteriNV"/>
+ <command name="glPathParameterfvNV"/>
+ <command name="glPathParameterfNV"/>
+ <command name="glPathDashArrayNV"/>
+ <command name="glPathStencilFuncNV"/>
+ <command name="glPathStencilDepthOffsetNV"/>
+ <command name="glStencilFillPathNV"/>
+ <command name="glStencilStrokePathNV"/>
+ <command name="glStencilFillPathInstancedNV"/>
+ <command name="glStencilStrokePathInstancedNV"/>
+ <command name="glPathCoverDepthFuncNV"/>
+ <command name="glPathColorGenNV"/>
+ <command name="glPathTexGenNV"/>
+ <command name="glPathFogGenNV"/>
+ <command name="glCoverFillPathNV"/>
+ <command name="glCoverStrokePathNV"/>
+ <command name="glCoverFillPathInstancedNV"/>
+ <command name="glCoverStrokePathInstancedNV"/>
+ <command name="glGetPathParameterivNV"/>
+ <command name="glGetPathParameterfvNV"/>
+ <command name="glGetPathCommandsNV"/>
+ <command name="glGetPathCoordsNV"/>
+ <command name="glGetPathDashArrayNV"/>
+ <command name="glGetPathMetricsNV"/>
+ <command name="glGetPathMetricRangeNV"/>
+ <command name="glGetPathSpacingNV"/>
+ <command name="glGetPathColorGenivNV"/>
+ <command name="glGetPathColorGenfvNV"/>
+ <command name="glGetPathTexGenivNV"/>
+ <command name="glGetPathTexGenfvNV"/>
+ <command name="glIsPointInFillPathNV"/>
+ <command name="glIsPointInStrokePathNV"/>
+ <command name="glGetPathLengthNV"/>
+ <command name="glPointAlongPathNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_pixel_data_range" supported="gl">
+ <require>
+ <enum name="GL_WRITE_PIXEL_DATA_RANGE_NV"/>
+ <enum name="GL_READ_PIXEL_DATA_RANGE_NV"/>
+ <enum name="GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV"/>
+ <enum name="GL_READ_PIXEL_DATA_RANGE_LENGTH_NV"/>
+ <enum name="GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV"/>
+ <enum name="GL_READ_PIXEL_DATA_RANGE_POINTER_NV"/>
+ <command name="glPixelDataRangeNV"/>
+ <command name="glFlushPixelDataRangeNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_point_sprite" supported="gl">
+ <require>
+ <enum name="GL_POINT_SPRITE_NV"/>
+ <enum name="GL_COORD_REPLACE_NV"/>
+ <enum name="GL_POINT_SPRITE_R_MODE_NV"/>
+ <command name="glPointParameteriNV"/>
+ <command name="glPointParameterivNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_present_video" supported="gl">
+ <require>
+ <enum name="GL_FRAME_NV"/>
+ <enum name="GL_FIELDS_NV"/>
+ <enum name="GL_CURRENT_TIME_NV"/>
+ <enum name="GL_NUM_FILL_STREAMS_NV"/>
+ <enum name="GL_PRESENT_TIME_NV"/>
+ <enum name="GL_PRESENT_DURATION_NV"/>
+ <command name="glPresentFrameKeyedNV"/>
+ <command name="glPresentFrameDualFillNV"/>
+ <command name="glGetVideoivNV"/>
+ <command name="glGetVideouivNV"/>
+ <command name="glGetVideoi64vNV"/>
+ <command name="glGetVideoui64vNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_primitive_restart" supported="gl">
+ <require>
+ <enum name="GL_PRIMITIVE_RESTART_NV"/>
+ <enum name="GL_PRIMITIVE_RESTART_INDEX_NV"/>
+ <command name="glPrimitiveRestartNV"/>
+ <command name="glPrimitiveRestartIndexNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_read_buffer" supported="gles2">
+ <require>
+ <enum name="GL_READ_BUFFER_NV"/>
+ <command name="glReadBufferNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_read_buffer_front" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_read_depth" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_read_depth_stencil" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_read_stencil" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_register_combiners" supported="gl">
+ <require>
+ <enum name="GL_REGISTER_COMBINERS_NV"/>
+ <enum name="GL_VARIABLE_A_NV"/>
+ <enum name="GL_VARIABLE_B_NV"/>
+ <enum name="GL_VARIABLE_C_NV"/>
+ <enum name="GL_VARIABLE_D_NV"/>
+ <enum name="GL_VARIABLE_E_NV"/>
+ <enum name="GL_VARIABLE_F_NV"/>
+ <enum name="GL_VARIABLE_G_NV"/>
+ <enum name="GL_CONSTANT_COLOR0_NV"/>
+ <enum name="GL_CONSTANT_COLOR1_NV"/>
+ <enum name="GL_PRIMARY_COLOR_NV"/>
+ <enum name="GL_SECONDARY_COLOR_NV"/>
+ <enum name="GL_SPARE0_NV"/>
+ <enum name="GL_SPARE1_NV"/>
+ <enum name="GL_DISCARD_NV"/>
+ <enum name="GL_E_TIMES_F_NV"/>
+ <enum name="GL_SPARE0_PLUS_SECONDARY_COLOR_NV"/>
+ <enum name="GL_UNSIGNED_IDENTITY_NV"/>
+ <enum name="GL_UNSIGNED_INVERT_NV"/>
+ <enum name="GL_EXPAND_NORMAL_NV"/>
+ <enum name="GL_EXPAND_NEGATE_NV"/>
+ <enum name="GL_HALF_BIAS_NORMAL_NV"/>
+ <enum name="GL_HALF_BIAS_NEGATE_NV"/>
+ <enum name="GL_SIGNED_IDENTITY_NV"/>
+ <enum name="GL_SIGNED_NEGATE_NV"/>
+ <enum name="GL_SCALE_BY_TWO_NV"/>
+ <enum name="GL_SCALE_BY_FOUR_NV"/>
+ <enum name="GL_SCALE_BY_ONE_HALF_NV"/>
+ <enum name="GL_BIAS_BY_NEGATIVE_ONE_HALF_NV"/>
+ <enum name="GL_COMBINER_INPUT_NV"/>
+ <enum name="GL_COMBINER_MAPPING_NV"/>
+ <enum name="GL_COMBINER_COMPONENT_USAGE_NV"/>
+ <enum name="GL_COMBINER_AB_DOT_PRODUCT_NV"/>
+ <enum name="GL_COMBINER_CD_DOT_PRODUCT_NV"/>
+ <enum name="GL_COMBINER_MUX_SUM_NV"/>
+ <enum name="GL_COMBINER_SCALE_NV"/>
+ <enum name="GL_COMBINER_BIAS_NV"/>
+ <enum name="GL_COMBINER_AB_OUTPUT_NV"/>
+ <enum name="GL_COMBINER_CD_OUTPUT_NV"/>
+ <enum name="GL_COMBINER_SUM_OUTPUT_NV"/>
+ <enum name="GL_MAX_GENERAL_COMBINERS_NV"/>
+ <enum name="GL_NUM_GENERAL_COMBINERS_NV"/>
+ <enum name="GL_COLOR_SUM_CLAMP_NV"/>
+ <enum name="GL_COMBINER0_NV"/>
+ <enum name="GL_COMBINER1_NV"/>
+ <enum name="GL_COMBINER2_NV"/>
+ <enum name="GL_COMBINER3_NV"/>
+ <enum name="GL_COMBINER4_NV"/>
+ <enum name="GL_COMBINER5_NV"/>
+ <enum name="GL_COMBINER6_NV"/>
+ <enum name="GL_COMBINER7_NV"/>
+ <enum name="GL_TEXTURE0_ARB"/>
+ <enum name="GL_TEXTURE1_ARB"/>
+ <enum name="GL_ZERO"/>
+ <enum name="GL_NONE"/>
+ <enum name="GL_FOG"/>
+ <command name="glCombinerParameterfvNV"/>
+ <command name="glCombinerParameterfNV"/>
+ <command name="glCombinerParameterivNV"/>
+ <command name="glCombinerParameteriNV"/>
+ <command name="glCombinerInputNV"/>
+ <command name="glCombinerOutputNV"/>
+ <command name="glFinalCombinerInputNV"/>
+ <command name="glGetCombinerInputParameterfvNV"/>
+ <command name="glGetCombinerInputParameterivNV"/>
+ <command name="glGetCombinerOutputParameterfvNV"/>
+ <command name="glGetCombinerOutputParameterivNV"/>
+ <command name="glGetFinalCombinerInputParameterfvNV"/>
+ <command name="glGetFinalCombinerInputParameterivNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_register_combiners2" supported="gl">
+ <require>
+ <enum name="GL_PER_STAGE_CONSTANTS_NV"/>
+ <command name="glCombinerStageParameterfvNV"/>
+ <command name="glGetCombinerStageParameterfvNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_sRGB_formats" supported="gles2">
+ <require>
+ <enum name="GL_SLUMINANCE_NV"/>
+ <enum name="GL_SLUMINANCE_ALPHA_NV"/>
+ <enum name="GL_SRGB8_NV"/>
+ <enum name="GL_SLUMINANCE8_NV"/>
+ <enum name="GL_SLUMINANCE8_ALPHA8_NV"/>
+ <enum name="GL_COMPRESSED_SRGB_S3TC_DXT1_NV"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV"/>
+ <enum name="GL_ETC1_SRGB8_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_shader_atomic_counters" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_shader_atomic_float" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_shader_buffer_load" supported="gl">
+ <require>
+ <enum name="GL_BUFFER_GPU_ADDRESS_NV"/>
+ <enum name="GL_GPU_ADDRESS_NV"/>
+ <enum name="GL_MAX_SHADER_BUFFER_ADDRESS_NV"/>
+ <command name="glMakeBufferResidentNV"/>
+ <command name="glMakeBufferNonResidentNV"/>
+ <command name="glIsBufferResidentNV"/>
+ <command name="glMakeNamedBufferResidentNV"/>
+ <command name="glMakeNamedBufferNonResidentNV"/>
+ <command name="glIsNamedBufferResidentNV"/>
+ <command name="glGetBufferParameterui64vNV"/>
+ <command name="glGetNamedBufferParameterui64vNV"/>
+ <command name="glGetIntegerui64vNV"/>
+ <command name="glUniformui64NV"/>
+ <command name="glUniformui64vNV"/>
+ <command name="glGetUniformui64vNV"/>
+ <command name="glProgramUniformui64NV"/>
+ <command name="glProgramUniformui64vNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_shader_buffer_store" supported="gl">
+ <require>
+ <enum name="GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV"/>
+ <enum name="GL_READ_WRITE"/>
+ <enum name="GL_WRITE_ONLY"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_shader_storage_buffer_object" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_shadow_samplers_array" supported="gles2">
+ <require>
+ <enum name="GL_SAMPLER_2D_ARRAY_SHADOW_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_shadow_samplers_cube" supported="gles2">
+ <require>
+ <enum name="GL_SAMPLER_CUBE_SHADOW_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_tessellation_program5" supported="gl">
+ <require>
+ <enum name="GL_MAX_PROGRAM_PATCH_ATTRIBS_NV"/>
+ <enum name="GL_TESS_CONTROL_PROGRAM_NV"/>
+ <enum name="GL_TESS_EVALUATION_PROGRAM_NV"/>
+ <enum name="GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum name="GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texgen_emboss" supported="gl">
+ <require>
+ <enum name="GL_EMBOSS_LIGHT_NV"/>
+ <enum name="GL_EMBOSS_CONSTANT_NV"/>
+ <enum name="GL_EMBOSS_MAP_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texgen_reflection" supported="gl">
+ <require>
+ <enum name="GL_NORMAL_MAP_NV"/>
+ <enum name="GL_REFLECTION_MAP_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_barrier" supported="gl">
+ <require>
+ <command name="glTextureBarrierNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_border_clamp" supported="gles2">
+ <require>
+ <enum name="GL_TEXTURE_BORDER_COLOR_NV"/>
+ <enum name="GL_CLAMP_TO_BORDER_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_compression_s3tc_update" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_compression_vtc" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_env_combine4" supported="gl">
+ <require>
+ <enum name="GL_COMBINE4_NV"/>
+ <enum name="GL_SOURCE3_RGB_NV"/>
+ <enum name="GL_SOURCE3_ALPHA_NV"/>
+ <enum name="GL_OPERAND3_RGB_NV"/>
+ <enum name="GL_OPERAND3_ALPHA_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_expand_normal" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_UNSIGNED_REMAP_MODE_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_multisample" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_COVERAGE_SAMPLES_NV"/>
+ <enum name="GL_TEXTURE_COLOR_SAMPLES_NV"/>
+ <command name="glTexImage2DMultisampleCoverageNV"/>
+ <command name="glTexImage3DMultisampleCoverageNV"/>
+ </require>
+ <require comment="Supported only if GL_EXT_direct_state_access is supported">
+ <command name="glTextureImage2DMultisampleNV"/>
+ <command name="glTextureImage3DMultisampleNV"/>
+ <command name="glTextureImage2DMultisampleCoverageNV"/>
+ <command name="glTextureImage3DMultisampleCoverageNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_npot_2D_mipmap" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_rectangle" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_TEXTURE_BINDING_RECTANGLE_NV"/>
+ <enum name="GL_PROXY_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_MAX_RECTANGLE_TEXTURE_SIZE_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_shader" supported="gl">
+ <require>
+ <enum name="GL_OFFSET_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV"/>
+ <enum name="GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV"/>
+ <enum name="GL_UNSIGNED_INT_S8_S8_8_8_NV"/>
+ <enum name="GL_UNSIGNED_INT_8_8_S8_S8_REV_NV"/>
+ <enum name="GL_DSDT_MAG_INTENSITY_NV"/>
+ <enum name="GL_SHADER_CONSISTENT_NV"/>
+ <enum name="GL_TEXTURE_SHADER_NV"/>
+ <enum name="GL_SHADER_OPERATION_NV"/>
+ <enum name="GL_CULL_MODES_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_MATRIX_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_SCALE_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_BIAS_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_2D_MATRIX_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_2D_SCALE_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_2D_BIAS_NV"/>
+ <enum name="GL_PREVIOUS_TEXTURE_INPUT_NV"/>
+ <enum name="GL_CONST_EYE_NV"/>
+ <enum name="GL_PASS_THROUGH_NV"/>
+ <enum name="GL_CULL_FRAGMENT_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_2D_NV"/>
+ <enum name="GL_DEPENDENT_AR_TEXTURE_2D_NV"/>
+ <enum name="GL_DEPENDENT_GB_TEXTURE_2D_NV"/>
+ <enum name="GL_DOT_PRODUCT_NV"/>
+ <enum name="GL_DOT_PRODUCT_DEPTH_REPLACE_NV"/>
+ <enum name="GL_DOT_PRODUCT_TEXTURE_2D_NV"/>
+ <enum name="GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV"/>
+ <enum name="GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV"/>
+ <enum name="GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV"/>
+ <enum name="GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV"/>
+ <enum name="GL_HILO_NV"/>
+ <enum name="GL_DSDT_NV"/>
+ <enum name="GL_DSDT_MAG_NV"/>
+ <enum name="GL_DSDT_MAG_VIB_NV"/>
+ <enum name="GL_HILO16_NV"/>
+ <enum name="GL_SIGNED_HILO_NV"/>
+ <enum name="GL_SIGNED_HILO16_NV"/>
+ <enum name="GL_SIGNED_RGBA_NV"/>
+ <enum name="GL_SIGNED_RGBA8_NV"/>
+ <enum name="GL_SIGNED_RGB_NV"/>
+ <enum name="GL_SIGNED_RGB8_NV"/>
+ <enum name="GL_SIGNED_LUMINANCE_NV"/>
+ <enum name="GL_SIGNED_LUMINANCE8_NV"/>
+ <enum name="GL_SIGNED_LUMINANCE_ALPHA_NV"/>
+ <enum name="GL_SIGNED_LUMINANCE8_ALPHA8_NV"/>
+ <enum name="GL_SIGNED_ALPHA_NV"/>
+ <enum name="GL_SIGNED_ALPHA8_NV"/>
+ <enum name="GL_SIGNED_INTENSITY_NV"/>
+ <enum name="GL_SIGNED_INTENSITY8_NV"/>
+ <enum name="GL_DSDT8_NV"/>
+ <enum name="GL_DSDT8_MAG8_NV"/>
+ <enum name="GL_DSDT8_MAG8_INTENSITY8_NV"/>
+ <enum name="GL_SIGNED_RGB_UNSIGNED_ALPHA_NV"/>
+ <enum name="GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV"/>
+ <enum name="GL_HI_SCALE_NV"/>
+ <enum name="GL_LO_SCALE_NV"/>
+ <enum name="GL_DS_SCALE_NV"/>
+ <enum name="GL_DT_SCALE_NV"/>
+ <enum name="GL_MAGNITUDE_SCALE_NV"/>
+ <enum name="GL_VIBRANCE_SCALE_NV"/>
+ <enum name="GL_HI_BIAS_NV"/>
+ <enum name="GL_LO_BIAS_NV"/>
+ <enum name="GL_DS_BIAS_NV"/>
+ <enum name="GL_DT_BIAS_NV"/>
+ <enum name="GL_MAGNITUDE_BIAS_NV"/>
+ <enum name="GL_VIBRANCE_BIAS_NV"/>
+ <enum name="GL_TEXTURE_BORDER_VALUES_NV"/>
+ <enum name="GL_TEXTURE_HI_SIZE_NV"/>
+ <enum name="GL_TEXTURE_LO_SIZE_NV"/>
+ <enum name="GL_TEXTURE_DS_SIZE_NV"/>
+ <enum name="GL_TEXTURE_DT_SIZE_NV"/>
+ <enum name="GL_TEXTURE_MAG_SIZE_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_shader2" supported="gl">
+ <require>
+ <enum name="GL_DOT_PRODUCT_TEXTURE_3D_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_shader3" supported="gl">
+ <require>
+ <enum name="GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV"/>
+ <enum name="GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV"/>
+ <enum name="GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV"/>
+ <enum name="GL_OFFSET_HILO_TEXTURE_2D_NV"/>
+ <enum name="GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV"/>
+ <enum name="GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_DEPENDENT_HILO_TEXTURE_2D_NV"/>
+ <enum name="GL_DEPENDENT_RGB_TEXTURE_3D_NV"/>
+ <enum name="GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV"/>
+ <enum name="GL_DOT_PRODUCT_PASS_THROUGH_NV"/>
+ <enum name="GL_DOT_PRODUCT_TEXTURE_1D_NV"/>
+ <enum name="GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV"/>
+ <enum name="GL_HILO8_NV"/>
+ <enum name="GL_SIGNED_HILO8_NV"/>
+ <enum name="GL_FORCE_BLUE_TO_ONE_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_transform_feedback" supported="gl">
+ <require>
+ <enum name="GL_BACK_PRIMARY_COLOR_NV"/>
+ <enum name="GL_BACK_SECONDARY_COLOR_NV"/>
+ <enum name="GL_TEXTURE_COORD_NV"/>
+ <enum name="GL_CLIP_DISTANCE_NV"/>
+ <enum name="GL_VERTEX_ID_NV"/>
+ <enum name="GL_PRIMITIVE_ID_NV"/>
+ <enum name="GL_GENERIC_ATTRIB_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_ATTRIBS_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV"/>
+ <enum name="GL_ACTIVE_VARYINGS_NV"/>
+ <enum name="GL_ACTIVE_VARYING_MAX_LENGTH_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYINGS_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_START_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_RECORD_NV"/>
+ <enum name="GL_PRIMITIVES_GENERATED_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV"/>
+ <enum name="GL_RASTERIZER_DISCARD_NV"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV"/>
+ <enum name="GL_INTERLEAVED_ATTRIBS_NV"/>
+ <enum name="GL_SEPARATE_ATTRIBS_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV"/>
+ <enum name="GL_LAYER_NV"/>
+ <command name="glBeginTransformFeedbackNV"/>
+ <command name="glEndTransformFeedbackNV"/>
+ <command name="glTransformFeedbackAttribsNV"/>
+ <command name="glBindBufferRangeNV"/>
+ <command name="glBindBufferOffsetNV"/>
+ <command name="glBindBufferBaseNV"/>
+ <command name="glTransformFeedbackVaryingsNV"/>
+ <command name="glActiveVaryingNV"/>
+ <command name="glGetVaryingLocationNV"/>
+ <command name="glGetActiveVaryingNV"/>
+ <command name="glGetTransformFeedbackVaryingNV"/>
+ </require>
+ <require comment="Extended by GL_ARB_transform_feedback3">
+ <enum name="GL_NEXT_BUFFER_NV"/>
+ <enum name="GL_SKIP_COMPONENTS4_NV"/>
+ <enum name="GL_SKIP_COMPONENTS3_NV"/>
+ <enum name="GL_SKIP_COMPONENTS2_NV"/>
+ <enum name="GL_SKIP_COMPONENTS1_NV"/>
+ <command name="glTransformFeedbackStreamAttribsNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_transform_feedback2" supported="gl">
+ <require>
+ <enum name="GL_TRANSFORM_FEEDBACK_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BINDING_NV"/>
+ <command name="glBindTransformFeedbackNV"/>
+ <command name="glDeleteTransformFeedbacksNV"/>
+ <command name="glGenTransformFeedbacksNV"/>
+ <command name="glIsTransformFeedbackNV"/>
+ <command name="glPauseTransformFeedbackNV"/>
+ <command name="glResumeTransformFeedbackNV"/>
+ <command name="glDrawTransformFeedbackNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vdpau_interop" supported="gl">
+ <require>
+ <enum name="GL_SURFACE_STATE_NV"/>
+ <enum name="GL_SURFACE_REGISTERED_NV"/>
+ <enum name="GL_SURFACE_MAPPED_NV"/>
+ <enum name="GL_WRITE_DISCARD_NV"/>
+ <command name="glVDPAUInitNV"/>
+ <command name="glVDPAUFiniNV"/>
+ <command name="glVDPAURegisterVideoSurfaceNV"/>
+ <command name="glVDPAURegisterOutputSurfaceNV"/>
+ <command name="glVDPAUIsSurfaceNV"/>
+ <command name="glVDPAUUnregisterSurfaceNV"/>
+ <command name="glVDPAUGetSurfaceivNV"/>
+ <command name="glVDPAUSurfaceAccessNV"/>
+ <command name="glVDPAUMapSurfacesNV"/>
+ <command name="glVDPAUUnmapSurfacesNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_array_range" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_RANGE_NV"/>
+ <enum name="GL_VERTEX_ARRAY_RANGE_LENGTH_NV"/>
+ <enum name="GL_VERTEX_ARRAY_RANGE_VALID_NV"/>
+ <enum name="GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV"/>
+ <enum name="GL_VERTEX_ARRAY_RANGE_POINTER_NV"/>
+ <command name="glFlushVertexArrayRangeNV"/>
+ <command name="glVertexArrayRangeNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_array_range2" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_attrib_integer_64bit" supported="gl">
+ <require>
+ <enum name="GL_INT64_NV"/>
+ <enum name="GL_UNSIGNED_INT64_NV"/>
+ <command name="glVertexAttribL1i64NV"/>
+ <command name="glVertexAttribL2i64NV"/>
+ <command name="glVertexAttribL3i64NV"/>
+ <command name="glVertexAttribL4i64NV"/>
+ <command name="glVertexAttribL1i64vNV"/>
+ <command name="glVertexAttribL2i64vNV"/>
+ <command name="glVertexAttribL3i64vNV"/>
+ <command name="glVertexAttribL4i64vNV"/>
+ <command name="glVertexAttribL1ui64NV"/>
+ <command name="glVertexAttribL2ui64NV"/>
+ <command name="glVertexAttribL3ui64NV"/>
+ <command name="glVertexAttribL4ui64NV"/>
+ <command name="glVertexAttribL1ui64vNV"/>
+ <command name="glVertexAttribL2ui64vNV"/>
+ <command name="glVertexAttribL3ui64vNV"/>
+ <command name="glVertexAttribL4ui64vNV"/>
+ <command name="glGetVertexAttribLi64vNV"/>
+ <command name="glGetVertexAttribLui64vNV"/>
+ <command name="glVertexAttribLFormatNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_buffer_unified_memory" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV"/>
+ <enum name="GL_ELEMENT_ARRAY_UNIFIED_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_VERTEX_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_NORMAL_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_COLOR_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_INDEX_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_FOG_COORD_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_ELEMENT_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV"/>
+ <enum name="GL_VERTEX_ARRAY_LENGTH_NV"/>
+ <enum name="GL_NORMAL_ARRAY_LENGTH_NV"/>
+ <enum name="GL_COLOR_ARRAY_LENGTH_NV"/>
+ <enum name="GL_INDEX_ARRAY_LENGTH_NV"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_LENGTH_NV"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_LENGTH_NV"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_LENGTH_NV"/>
+ <enum name="GL_FOG_COORD_ARRAY_LENGTH_NV"/>
+ <enum name="GL_ELEMENT_ARRAY_LENGTH_NV"/>
+ <enum name="GL_DRAW_INDIRECT_UNIFIED_NV"/>
+ <enum name="GL_DRAW_INDIRECT_ADDRESS_NV"/>
+ <enum name="GL_DRAW_INDIRECT_LENGTH_NV"/>
+ <command name="glBufferAddressRangeNV"/>
+ <command name="glVertexFormatNV"/>
+ <command name="glNormalFormatNV"/>
+ <command name="glColorFormatNV"/>
+ <command name="glIndexFormatNV"/>
+ <command name="glTexCoordFormatNV"/>
+ <command name="glEdgeFlagFormatNV"/>
+ <command name="glSecondaryColorFormatNV"/>
+ <command name="glFogCoordFormatNV"/>
+ <command name="glVertexAttribFormatNV"/>
+ <command name="glVertexAttribIFormatNV"/>
+ <command name="glGetIntegerui64i_vNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_program" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_PROGRAM_NV"/>
+ <enum name="GL_VERTEX_STATE_PROGRAM_NV"/>
+ <enum name="GL_ATTRIB_ARRAY_SIZE_NV"/>
+ <enum name="GL_ATTRIB_ARRAY_STRIDE_NV"/>
+ <enum name="GL_ATTRIB_ARRAY_TYPE_NV"/>
+ <enum name="GL_CURRENT_ATTRIB_NV"/>
+ <enum name="GL_PROGRAM_LENGTH_NV"/>
+ <enum name="GL_PROGRAM_STRING_NV"/>
+ <enum name="GL_MODELVIEW_PROJECTION_NV"/>
+ <enum name="GL_IDENTITY_NV"/>
+ <enum name="GL_INVERSE_NV"/>
+ <enum name="GL_TRANSPOSE_NV"/>
+ <enum name="GL_INVERSE_TRANSPOSE_NV"/>
+ <enum name="GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV"/>
+ <enum name="GL_MAX_TRACK_MATRICES_NV"/>
+ <enum name="GL_MATRIX0_NV"/>
+ <enum name="GL_MATRIX1_NV"/>
+ <enum name="GL_MATRIX2_NV"/>
+ <enum name="GL_MATRIX3_NV"/>
+ <enum name="GL_MATRIX4_NV"/>
+ <enum name="GL_MATRIX5_NV"/>
+ <enum name="GL_MATRIX6_NV"/>
+ <enum name="GL_MATRIX7_NV"/>
+ <enum name="GL_CURRENT_MATRIX_STACK_DEPTH_NV"/>
+ <enum name="GL_CURRENT_MATRIX_NV"/>
+ <enum name="GL_VERTEX_PROGRAM_POINT_SIZE_NV"/>
+ <enum name="GL_VERTEX_PROGRAM_TWO_SIDE_NV"/>
+ <enum name="GL_PROGRAM_PARAMETER_NV"/>
+ <enum name="GL_ATTRIB_ARRAY_POINTER_NV"/>
+ <enum name="GL_PROGRAM_TARGET_NV"/>
+ <enum name="GL_PROGRAM_RESIDENT_NV"/>
+ <enum name="GL_TRACK_MATRIX_NV"/>
+ <enum name="GL_TRACK_MATRIX_TRANSFORM_NV"/>
+ <enum name="GL_VERTEX_PROGRAM_BINDING_NV"/>
+ <enum name="GL_PROGRAM_ERROR_POSITION_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY0_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY1_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY2_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY3_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY4_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY5_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY6_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY7_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY8_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY9_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY10_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY11_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY12_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY13_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY14_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY15_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB0_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB1_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB2_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB3_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB4_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB5_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB6_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB7_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB8_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB9_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB10_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB11_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB12_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB13_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB14_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB15_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB0_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB1_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB2_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB3_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB4_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB5_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB6_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB7_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB8_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB9_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB10_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB11_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB12_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB13_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB14_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB15_4_NV"/>
+ <command name="glAreProgramsResidentNV"/>
+ <command name="glBindProgramNV"/>
+ <command name="glDeleteProgramsNV"/>
+ <command name="glExecuteProgramNV"/>
+ <command name="glGenProgramsNV"/>
+ <command name="glGetProgramParameterdvNV"/>
+ <command name="glGetProgramParameterfvNV"/>
+ <command name="glGetProgramivNV"/>
+ <command name="glGetProgramStringNV"/>
+ <command name="glGetTrackMatrixivNV"/>
+ <command name="glGetVertexAttribdvNV"/>
+ <command name="glGetVertexAttribfvNV"/>
+ <command name="glGetVertexAttribivNV"/>
+ <command name="glGetVertexAttribPointervNV"/>
+ <command name="glIsProgramNV"/>
+ <command name="glLoadProgramNV"/>
+ <command name="glProgramParameter4dNV"/>
+ <command name="glProgramParameter4dvNV"/>
+ <command name="glProgramParameter4fNV"/>
+ <command name="glProgramParameter4fvNV"/>
+ <command name="glProgramParameters4dvNV"/>
+ <command name="glProgramParameters4fvNV"/>
+ <command name="glRequestResidentProgramsNV"/>
+ <command name="glTrackMatrixNV"/>
+ <command name="glVertexAttribPointerNV"/>
+ <command name="glVertexAttrib1dNV"/>
+ <command name="glVertexAttrib1dvNV"/>
+ <command name="glVertexAttrib1fNV"/>
+ <command name="glVertexAttrib1fvNV"/>
+ <command name="glVertexAttrib1sNV"/>
+ <command name="glVertexAttrib1svNV"/>
+ <command name="glVertexAttrib2dNV"/>
+ <command name="glVertexAttrib2dvNV"/>
+ <command name="glVertexAttrib2fNV"/>
+ <command name="glVertexAttrib2fvNV"/>
+ <command name="glVertexAttrib2sNV"/>
+ <command name="glVertexAttrib2svNV"/>
+ <command name="glVertexAttrib3dNV"/>
+ <command name="glVertexAttrib3dvNV"/>
+ <command name="glVertexAttrib3fNV"/>
+ <command name="glVertexAttrib3fvNV"/>
+ <command name="glVertexAttrib3sNV"/>
+ <command name="glVertexAttrib3svNV"/>
+ <command name="glVertexAttrib4dNV"/>
+ <command name="glVertexAttrib4dvNV"/>
+ <command name="glVertexAttrib4fNV"/>
+ <command name="glVertexAttrib4fvNV"/>
+ <command name="glVertexAttrib4sNV"/>
+ <command name="glVertexAttrib4svNV"/>
+ <command name="glVertexAttrib4ubNV"/>
+ <command name="glVertexAttrib4ubvNV"/>
+ <command name="glVertexAttribs1dvNV"/>
+ <command name="glVertexAttribs1fvNV"/>
+ <command name="glVertexAttribs1svNV"/>
+ <command name="glVertexAttribs2dvNV"/>
+ <command name="glVertexAttribs2fvNV"/>
+ <command name="glVertexAttribs2svNV"/>
+ <command name="glVertexAttribs3dvNV"/>
+ <command name="glVertexAttribs3fvNV"/>
+ <command name="glVertexAttribs3svNV"/>
+ <command name="glVertexAttribs4dvNV"/>
+ <command name="glVertexAttribs4fvNV"/>
+ <command name="glVertexAttribs4svNV"/>
+ <command name="glVertexAttribs4ubvNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_program1_1" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_program2" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_program2_option" supported="gl">
+ <require>
+ <enum name="GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV"/>
+ <enum name="GL_MAX_PROGRAM_CALL_DEPTH_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_program3" supported="gl">
+ <require>
+ <enum name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_program4" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV"/>
+ <command name="glVertexAttribI1iEXT"/>
+ <command name="glVertexAttribI2iEXT"/>
+ <command name="glVertexAttribI3iEXT"/>
+ <command name="glVertexAttribI4iEXT"/>
+ <command name="glVertexAttribI1uiEXT"/>
+ <command name="glVertexAttribI2uiEXT"/>
+ <command name="glVertexAttribI3uiEXT"/>
+ <command name="glVertexAttribI4uiEXT"/>
+ <command name="glVertexAttribI1ivEXT"/>
+ <command name="glVertexAttribI2ivEXT"/>
+ <command name="glVertexAttribI3ivEXT"/>
+ <command name="glVertexAttribI4ivEXT"/>
+ <command name="glVertexAttribI1uivEXT"/>
+ <command name="glVertexAttribI2uivEXT"/>
+ <command name="glVertexAttribI3uivEXT"/>
+ <command name="glVertexAttribI4uivEXT"/>
+ <command name="glVertexAttribI4bvEXT"/>
+ <command name="glVertexAttribI4svEXT"/>
+ <command name="glVertexAttribI4ubvEXT"/>
+ <command name="glVertexAttribI4usvEXT"/>
+ <command name="glVertexAttribIPointerEXT"/>
+ <command name="glGetVertexAttribIivEXT"/>
+ <command name="glGetVertexAttribIuivEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_video_capture" supported="gl">
+ <require>
+ <enum name="GL_VIDEO_BUFFER_NV"/>
+ <enum name="GL_VIDEO_BUFFER_BINDING_NV"/>
+ <enum name="GL_FIELD_UPPER_NV"/>
+ <enum name="GL_FIELD_LOWER_NV"/>
+ <enum name="GL_NUM_VIDEO_CAPTURE_STREAMS_NV"/>
+ <enum name="GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV"/>
+ <enum name="GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV"/>
+ <enum name="GL_LAST_VIDEO_CAPTURE_STATUS_NV"/>
+ <enum name="GL_VIDEO_BUFFER_PITCH_NV"/>
+ <enum name="GL_VIDEO_COLOR_CONVERSION_MATRIX_NV"/>
+ <enum name="GL_VIDEO_COLOR_CONVERSION_MAX_NV"/>
+ <enum name="GL_VIDEO_COLOR_CONVERSION_MIN_NV"/>
+ <enum name="GL_VIDEO_COLOR_CONVERSION_OFFSET_NV"/>
+ <enum name="GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV"/>
+ <enum name="GL_PARTIAL_SUCCESS_NV"/>
+ <enum name="GL_SUCCESS_NV"/>
+ <enum name="GL_FAILURE_NV"/>
+ <enum name="GL_YCBYCR8_422_NV"/>
+ <enum name="GL_YCBAYCR8A_4224_NV"/>
+ <enum name="GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV"/>
+ <enum name="GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV"/>
+ <enum name="GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV"/>
+ <enum name="GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV"/>
+ <enum name="GL_Z4Y12Z4CB12Z4CR12_444_NV"/>
+ <enum name="GL_VIDEO_CAPTURE_FRAME_WIDTH_NV"/>
+ <enum name="GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV"/>
+ <enum name="GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV"/>
+ <enum name="GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV"/>
+ <enum name="GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV"/>
+ <command name="glBeginVideoCaptureNV"/>
+ <command name="glBindVideoCaptureStreamBufferNV"/>
+ <command name="glBindVideoCaptureStreamTextureNV"/>
+ <command name="glEndVideoCaptureNV"/>
+ <command name="glGetVideoCaptureivNV"/>
+ <command name="glGetVideoCaptureStreamivNV"/>
+ <command name="glGetVideoCaptureStreamfvNV"/>
+ <command name="glGetVideoCaptureStreamdvNV"/>
+ <command name="glVideoCaptureNV"/>
+ <command name="glVideoCaptureStreamParameterivNV"/>
+ <command name="glVideoCaptureStreamParameterfvNV"/>
+ <command name="glVideoCaptureStreamParameterdvNV"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_EGL_image" supported="gles1|gles2">
+ <require>
+ <type name="GLeglImageOES"/>
+ <command name="glEGLImageTargetTexture2DOES"/>
+ <command name="glEGLImageTargetRenderbufferStorageOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_EGL_image_external" supported="gles1|gles2">
+ <require>
+ <type name="GLeglImageOES"/>
+ <enum name="GL_TEXTURE_EXTERNAL_OES"/>
+ <enum name="GL_TEXTURE_BINDING_EXTERNAL_OES"/>
+ <enum name="GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES"/>
+ </require>
+ <require api="gles2">
+ <enum name="GL_SAMPLER_EXTERNAL_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_blend_equation_separate" supported="gles1">
+ <require>
+ <enum name="GL_BLEND_EQUATION_RGB_OES"/>
+ <enum name="GL_BLEND_EQUATION_ALPHA_OES"/>
+ <command name="glBlendEquationSeparateOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_blend_func_separate" supported="gles1">
+ <require>
+ <enum name="GL_BLEND_DST_RGB_OES"/>
+ <enum name="GL_BLEND_SRC_RGB_OES"/>
+ <enum name="GL_BLEND_DST_ALPHA_OES"/>
+ <enum name="GL_BLEND_SRC_ALPHA_OES"/>
+ <command name="glBlendFuncSeparateOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_blend_subtract" supported="gles1">
+ <require>
+ <enum name="GL_BLEND_EQUATION_OES"/>
+ <enum name="GL_FUNC_ADD_OES"/>
+ <enum name="GL_FUNC_SUBTRACT_OES"/>
+ <enum name="GL_FUNC_REVERSE_SUBTRACT_OES"/>
+ <command name="glBlendEquationOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_byte_coordinates" supported="gl|gles1">
+ <require>
+ <command name="glMultiTexCoord1bOES"/>
+ <command name="glMultiTexCoord1bvOES"/>
+ <command name="glMultiTexCoord2bOES"/>
+ <command name="glMultiTexCoord2bvOES"/>
+ <command name="glMultiTexCoord3bOES"/>
+ <command name="glMultiTexCoord3bvOES"/>
+ <command name="glMultiTexCoord4bOES"/>
+ <command name="glMultiTexCoord4bvOES"/>
+ <command name="glTexCoord1bOES"/>
+ <command name="glTexCoord1bvOES"/>
+ <command name="glTexCoord2bOES"/>
+ <command name="glTexCoord2bvOES"/>
+ <command name="glTexCoord3bOES"/>
+ <command name="glTexCoord3bvOES"/>
+ <command name="glTexCoord4bOES"/>
+ <command name="glTexCoord4bvOES"/>
+ <command name="glVertex2bOES"/>
+ <command name="glVertex2bvOES"/>
+ <command name="glVertex3bOES"/>
+ <command name="glVertex3bvOES"/>
+ <command name="glVertex4bOES"/>
+ <command name="glVertex4bvOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_compressed_ETC1_RGB8_texture" supported="gles1|gles2">
+ <require>
+ <enum name="GL_ETC1_RGB8_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_compressed_paletted_texture" supported="gl|gles1|gles2">
+ <require>
+ <enum name="GL_PALETTE4_RGB8_OES"/>
+ <enum name="GL_PALETTE4_RGBA8_OES"/>
+ <enum name="GL_PALETTE4_R5_G6_B5_OES"/>
+ <enum name="GL_PALETTE4_RGBA4_OES"/>
+ <enum name="GL_PALETTE4_RGB5_A1_OES"/>
+ <enum name="GL_PALETTE8_RGB8_OES"/>
+ <enum name="GL_PALETTE8_RGBA8_OES"/>
+ <enum name="GL_PALETTE8_R5_G6_B5_OES"/>
+ <enum name="GL_PALETTE8_RGBA4_OES"/>
+ <enum name="GL_PALETTE8_RGB5_A1_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_depth24" supported="gles1|gles2">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT24_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_depth32" supported="gles1|gles2">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT32_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_depth_texture" supported="gles2">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_draw_texture" supported="gles1">
+ <require>
+ <enum name="GL_TEXTURE_CROP_RECT_OES"/>
+ <command name="glDrawTexsOES"/>
+ <command name="glDrawTexiOES"/>
+ <command name="glDrawTexxOES"/>
+ <command name="glDrawTexsvOES"/>
+ <command name="glDrawTexivOES"/>
+ <command name="glDrawTexxvOES"/>
+ <command name="glDrawTexfOES"/>
+ <command name="glDrawTexfvOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_element_index_uint" supported="gles1|gles2">
+ <require>
+ <enum name="GL_UNSIGNED_INT"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_extended_matrix_palette" supported="gles1">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_OES_fbo_render_mipmap" supported="gles1|gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_OES_fixed_point" supported="gl|gles1">
+ <require>
+ <enum name="GL_FIXED_OES"/>
+ <command name="glAlphaFuncxOES"/>
+ <command name="glClearColorxOES"/>
+ <command name="glClearDepthxOES"/>
+ <command name="glClipPlanexOES"/>
+ <command name="glColor4xOES"/>
+ <command name="glDepthRangexOES"/>
+ <command name="glFogxOES"/>
+ <command name="glFogxvOES"/>
+ <command name="glFrustumxOES"/>
+ <command name="glGetClipPlanexOES"/>
+ <command name="glGetFixedvOES"/>
+ <command name="glGetTexEnvxvOES"/>
+ <command name="glGetTexParameterxvOES"/>
+ <command name="glLightModelxOES"/>
+ <command name="glLightModelxvOES"/>
+ <command name="glLightxOES"/>
+ <command name="glLightxvOES"/>
+ <command name="glLineWidthxOES"/>
+ <command name="glLoadMatrixxOES"/>
+ <command name="glMaterialxOES"/>
+ <command name="glMaterialxvOES"/>
+ <command name="glMultMatrixxOES"/>
+ <command name="glMultiTexCoord4xOES"/>
+ <command name="glNormal3xOES"/>
+ <command name="glOrthoxOES"/>
+ <command name="glPointParameterxvOES"/>
+ <command name="glPointSizexOES"/>
+ <command name="glPolygonOffsetxOES"/>
+ <command name="glRotatexOES"/>
+ <command name="glSampleCoverageOES"/>
+ <command name="glScalexOES"/>
+ <command name="glTexEnvxOES"/>
+ <command name="glTexEnvxvOES"/>
+ <command name="glTexParameterxOES"/>
+ <command name="glTexParameterxvOES"/>
+ <command name="glTranslatexOES"/>
+ </require>
+ <require api="gles1" comment="Entry points not in the extension spec, but in the Khronos glext.h. Included for backward compatibility.">
+ <command name="glGetLightxvOES"/>
+ <command name="glGetMaterialxvOES"/>
+ <command name="glPointParameterxOES"/>
+ <command name="glSampleCoveragexOES"/>
+ </require>
+ <require api="gl" comment="Entry points in the extension spec, but not the Khronos glext.h. Correspond to GL-only features it's unlikely were ever implemented against ES 1.x.">
+ <command name="glAccumxOES"/>
+ <command name="glBitmapxOES"/>
+ <command name="glBlendColorxOES"/>
+ <command name="glClearAccumxOES"/>
+ <command name="glColor3xOES"/>
+ <command name="glColor3xvOES"/>
+ <command name="glColor4xvOES"/>
+ <command name="glConvolutionParameterxOES"/>
+ <command name="glConvolutionParameterxvOES"/>
+ <command name="glEvalCoord1xOES"/>
+ <command name="glEvalCoord1xvOES"/>
+ <command name="glEvalCoord2xOES"/>
+ <command name="glEvalCoord2xvOES"/>
+ <command name="glFeedbackBufferxOES"/>
+ <command name="glGetConvolutionParameterxvOES"/>
+ <command name="glGetHistogramParameterxvOES"/>
+ <command name="glGetLightxOES"/>
+ <command name="glGetMapxvOES"/>
+ <command name="glGetMaterialxOES"/>
+ <command name="glGetPixelMapxv"/>
+ <command name="glGetTexGenxvOES"/>
+ <command name="glGetTexLevelParameterxvOES"/>
+ <command name="glIndexxOES"/>
+ <command name="glIndexxvOES"/>
+ <command name="glLoadTransposeMatrixxOES"/>
+ <command name="glMap1xOES"/>
+ <command name="glMap2xOES"/>
+ <command name="glMapGrid1xOES"/>
+ <command name="glMapGrid2xOES"/>
+ <command name="glMultTransposeMatrixxOES"/>
+ <command name="glMultiTexCoord1xOES"/>
+ <command name="glMultiTexCoord1xvOES"/>
+ <command name="glMultiTexCoord2xOES"/>
+ <command name="glMultiTexCoord2xvOES"/>
+ <command name="glMultiTexCoord3xOES"/>
+ <command name="glMultiTexCoord3xvOES"/>
+ <command name="glMultiTexCoord4xvOES"/>
+ <command name="glNormal3xvOES"/>
+ <command name="glPassThroughxOES"/>
+ <command name="glPixelMapx"/>
+ <command name="glPixelStorex"/>
+ <command name="glPixelTransferxOES"/>
+ <command name="glPixelZoomxOES"/>
+ <command name="glPrioritizeTexturesxOES"/>
+ <command name="glRasterPos2xOES"/>
+ <command name="glRasterPos2xvOES"/>
+ <command name="glRasterPos3xOES"/>
+ <command name="glRasterPos3xvOES"/>
+ <command name="glRasterPos4xOES"/>
+ <command name="glRasterPos4xvOES"/>
+ <command name="glRectxOES"/>
+ <command name="glRectxvOES"/>
+ <command name="glTexCoord1xOES"/>
+ <command name="glTexCoord1xvOES"/>
+ <command name="glTexCoord2xOES"/>
+ <command name="glTexCoord2xvOES"/>
+ <command name="glTexCoord3xOES"/>
+ <command name="glTexCoord3xvOES"/>
+ <command name="glTexCoord4xOES"/>
+ <command name="glTexCoord4xvOES"/>
+ <command name="glTexGenxOES"/>
+ <command name="glTexGenxvOES"/>
+ <command name="glVertex2xOES"/>
+ <command name="glVertex2xvOES"/>
+ <command name="glVertex3xOES"/>
+ <command name="glVertex3xvOES"/>
+ <command name="glVertex4xOES"/>
+ <command name="glVertex4xvOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_fragment_precision_high" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_OES_framebuffer_object" supported="gles1">
+ <require>
+ <enum name="GL_NONE_OES"/>
+ <enum name="GL_FRAMEBUFFER_OES"/>
+ <enum name="GL_RENDERBUFFER_OES"/>
+ <enum name="GL_RGBA4_OES"/>
+ <enum name="GL_RGB5_A1_OES"/>
+ <enum name="GL_RGB565_OES"/>
+ <enum name="GL_DEPTH_COMPONENT16_OES"/>
+ <enum name="GL_RENDERBUFFER_WIDTH_OES"/>
+ <enum name="GL_RENDERBUFFER_HEIGHT_OES"/>
+ <enum name="GL_RENDERBUFFER_INTERNAL_FORMAT_OES"/>
+ <enum name="GL_RENDERBUFFER_RED_SIZE_OES"/>
+ <enum name="GL_RENDERBUFFER_GREEN_SIZE_OES"/>
+ <enum name="GL_RENDERBUFFER_BLUE_SIZE_OES"/>
+ <enum name="GL_RENDERBUFFER_ALPHA_SIZE_OES"/>
+ <enum name="GL_RENDERBUFFER_DEPTH_SIZE_OES"/>
+ <enum name="GL_RENDERBUFFER_STENCIL_SIZE_OES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES"/>
+ <enum name="GL_COLOR_ATTACHMENT0_OES"/>
+ <enum name="GL_DEPTH_ATTACHMENT_OES"/>
+ <enum name="GL_STENCIL_ATTACHMENT_OES"/>
+ <enum name="GL_FRAMEBUFFER_COMPLETE_OES"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES"/>
+ <enum name="GL_FRAMEBUFFER_UNSUPPORTED_OES"/>
+ <enum name="GL_FRAMEBUFFER_BINDING_OES"/>
+ <enum name="GL_RENDERBUFFER_BINDING_OES"/>
+ <enum name="GL_MAX_RENDERBUFFER_SIZE_OES"/>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION_OES"/>
+ <command name="glIsRenderbufferOES"/>
+ <command name="glBindRenderbufferOES"/>
+ <command name="glDeleteRenderbuffersOES"/>
+ <command name="glGenRenderbuffersOES"/>
+ <command name="glRenderbufferStorageOES"/>
+ <command name="glGetRenderbufferParameterivOES"/>
+ <command name="glIsFramebufferOES"/>
+ <command name="glBindFramebufferOES"/>
+ <command name="glDeleteFramebuffersOES"/>
+ <command name="glGenFramebuffersOES"/>
+ <command name="glCheckFramebufferStatusOES"/>
+ <command name="glFramebufferRenderbufferOES"/>
+ <command name="glFramebufferTexture2DOES"/>
+ <command name="glGetFramebufferAttachmentParameterivOES"/>
+ <command name="glGenerateMipmapOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_get_program_binary" supported="gles2">
+ <require>
+ <enum name="GL_PROGRAM_BINARY_LENGTH_OES"/>
+ <enum name="GL_NUM_PROGRAM_BINARY_FORMATS_OES"/>
+ <enum name="GL_PROGRAM_BINARY_FORMATS_OES"/>
+ <command name="glGetProgramBinaryOES"/>
+ <command name="glProgramBinaryOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_mapbuffer" supported="gles1|gles2">
+ <require>
+ <enum name="GL_WRITE_ONLY_OES"/>
+ <enum name="GL_BUFFER_ACCESS_OES"/>
+ <enum name="GL_BUFFER_MAPPED_OES"/>
+ <enum name="GL_BUFFER_MAP_POINTER_OES"/>
+ <command name="glMapBufferOES"/>
+ <command name="glUnmapBufferOES"/>
+ <command name="glGetBufferPointervOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_matrix_get" supported="gles1">
+ <require>
+ <enum name="GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES"/>
+ <enum name="GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES"/>
+ <enum name="GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_matrix_palette" supported="gles1">
+ <require>
+ <enum name="GL_MAX_VERTEX_UNITS_OES"/>
+ <enum name="GL_MAX_PALETTE_MATRICES_OES"/>
+ <enum name="GL_MATRIX_PALETTE_OES"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_OES"/>
+ <enum name="GL_WEIGHT_ARRAY_OES"/>
+ <enum name="GL_CURRENT_PALETTE_MATRIX_OES"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_SIZE_OES"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_TYPE_OES"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_STRIDE_OES"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_POINTER_OES"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES"/>
+ <enum name="GL_WEIGHT_ARRAY_SIZE_OES"/>
+ <enum name="GL_WEIGHT_ARRAY_TYPE_OES"/>
+ <enum name="GL_WEIGHT_ARRAY_STRIDE_OES"/>
+ <enum name="GL_WEIGHT_ARRAY_POINTER_OES"/>
+ <enum name="GL_WEIGHT_ARRAY_BUFFER_BINDING_OES"/>
+ <command name="glCurrentPaletteMatrixOES"/>
+ <command name="glLoadPaletteFromModelViewMatrixOES"/>
+ <command name="glMatrixIndexPointerOES"/>
+ <command name="glWeightPointerOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_packed_depth_stencil" supported="gles1|gles2">
+ <require>
+ <enum name="GL_DEPTH_STENCIL_OES"/>
+ <enum name="GL_UNSIGNED_INT_24_8_OES"/>
+ <enum name="GL_DEPTH24_STENCIL8_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_point_size_array" supported="gles1">
+ <require>
+ <enum name="GL_POINT_SIZE_ARRAY_OES"/>
+ <enum name="GL_POINT_SIZE_ARRAY_TYPE_OES"/>
+ <enum name="GL_POINT_SIZE_ARRAY_STRIDE_OES"/>
+ <enum name="GL_POINT_SIZE_ARRAY_POINTER_OES"/>
+ <enum name="GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES"/>
+ <command name="glPointSizePointerOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_point_sprite" supported="gles1">
+ <require>
+ <enum name="GL_POINT_SPRITE_OES"/>
+ <enum name="GL_COORD_REPLACE_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_query_matrix" supported="gl|gles1">
+ <require>
+ <command name="glQueryMatrixxOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_read_format" supported="gl|gles1">
+ <require>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_TYPE_OES"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_required_internalformat" supported="gles1|gles2">
+ <require>
+ <enum name="GL_ALPHA8_OES"/>
+ <enum name="GL_DEPTH_COMPONENT16_OES"/>
+ <enum name="GL_DEPTH_COMPONENT24_OES"/>
+ <enum name="GL_DEPTH24_STENCIL8_OES"/>
+ <enum name="GL_DEPTH_COMPONENT32_OES"/>
+ <enum name="GL_LUMINANCE4_ALPHA4_OES"/>
+ <enum name="GL_LUMINANCE8_ALPHA8_OES"/>
+ <enum name="GL_LUMINANCE8_OES"/>
+ <enum name="GL_RGBA4_OES"/>
+ <enum name="GL_RGB5_A1_OES"/>
+ <enum name="GL_RGB565_OES"/>
+ <enum name="GL_RGB8_OES"/>
+ <enum name="GL_RGBA8_OES"/>
+ <enum name="GL_RGB10_EXT"/>
+ <enum name="GL_RGB10_A2_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_rgb8_rgba8" supported="gles1|gles2">
+ <require>
+ <enum name="GL_RGB8_OES"/>
+ <enum name="GL_RGBA8_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_single_precision" supported="gl|gles1">
+ <require>
+ <command name="glClearDepthfOES"/>
+ <command name="glClipPlanefOES"/>
+ <command name="glDepthRangefOES"/>
+ <command name="glFrustumfOES"/>
+ <command name="glGetClipPlanefOES"/>
+ <command name="glOrthofOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_standard_derivatives" supported="gles2">
+ <require>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_stencil1" supported="gles1|gles2">
+ <require>
+ <enum name="GL_STENCIL_INDEX1_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_stencil4" supported="gles1|gles2">
+ <require>
+ <enum name="GL_STENCIL_INDEX4_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_stencil8" supported="gles1">
+ <require>
+ <enum name="GL_STENCIL_INDEX8_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_stencil_wrap" supported="gles1">
+ <require>
+ <enum name="GL_INCR_WRAP_OES"/>
+ <enum name="GL_DECR_WRAP_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_surfaceless_context" supported="gles2">
+ <require>
+ <enum name="GL_FRAMEBUFFER_UNDEFINED_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_3D" supported="gles2">
+ <require>
+ <enum name="GL_TEXTURE_WRAP_R_OES"/>
+ <enum name="GL_TEXTURE_3D_OES"/>
+ <enum name="GL_TEXTURE_BINDING_3D_OES"/>
+ <enum name="GL_MAX_3D_TEXTURE_SIZE_OES"/>
+ <enum name="GL_SAMPLER_3D_OES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES"/>
+ <command name="glTexImage3DOES"/>
+ <command name="glTexSubImage3DOES"/>
+ <command name="glCopyTexSubImage3DOES"/>
+ <command name="glCompressedTexImage3DOES"/>
+ <command name="glCompressedTexSubImage3DOES"/>
+ <command name="glFramebufferTexture3DOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_compression_astc" supported="gles2" comment="API is identical to GL_KHR_texture_compression_astc_hdr extension">
+ <require>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_4x4_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x4_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x8_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x8_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x10_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_12x10_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_12x12_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_cube_map" supported="gles1">
+ <require>
+ <enum name="GL_NORMAL_MAP_OES"/>
+ <enum name="GL_REFLECTION_MAP_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_OES"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES"/>
+ <enum name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES"/>
+ <enum name="GL_TEXTURE_GEN_MODE_OES"/>
+ <enum name="GL_TEXTURE_GEN_STR_OES"/>
+ <command name="glTexGenfOES"/>
+ <command name="glTexGenfvOES"/>
+ <command name="glTexGeniOES"/>
+ <command name="glTexGenivOES"/>
+ <command name="glTexGenxOES"/>
+ <command name="glTexGenxvOES"/>
+ <command name="glGetTexGenfvOES"/>
+ <command name="glGetTexGenivOES"/>
+ <command name="glGetTexGenxvOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_env_crossbar" supported="gles1">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_float" supported="gles2">
+ <require>
+ <enum name="GL_FLOAT"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_float_linear" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_half_float" supported="gles2">
+ <require>
+ <enum name="GL_HALF_FLOAT_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_half_float_linear" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_mirrored_repeat" supported="gles1">
+ <require>
+ <enum name="GL_MIRRORED_REPEAT_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_npot" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_OES_vertex_array_object" supported="gles1|gles2">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_BINDING_OES"/>
+ <command name="glBindVertexArrayOES"/>
+ <command name="glDeleteVertexArraysOES"/>
+ <command name="glGenVertexArraysOES"/>
+ <command name="glIsVertexArrayOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_vertex_half_float" supported="gles2">
+ <require>
+ <enum name="GL_HALF_FLOAT_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_vertex_type_10_10_10_2" supported="gles2">
+ <require>
+ <enum name="GL_UNSIGNED_INT_10_10_10_2_OES"/>
+ <enum name="GL_INT_10_10_10_2_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OML_interlace" supported="gl">
+ <require>
+ <enum name="GL_INTERLACE_OML"/>
+ <enum name="GL_INTERLACE_READ_OML"/>
+ </require>
+ </extension>
+ <extension name="GL_OML_resample" supported="gl">
+ <require>
+ <enum name="GL_PACK_RESAMPLE_OML"/>
+ <enum name="GL_UNPACK_RESAMPLE_OML"/>
+ <enum name="GL_RESAMPLE_REPLICATE_OML"/>
+ <enum name="GL_RESAMPLE_ZERO_FILL_OML"/>
+ <enum name="GL_RESAMPLE_AVERAGE_OML"/>
+ <enum name="GL_RESAMPLE_DECIMATE_OML"/>
+ </require>
+ </extension>
+ <extension name="GL_OML_subsample" supported="gl">
+ <require>
+ <enum name="GL_FORMAT_SUBSAMPLE_24_24_OML"/>
+ <enum name="GL_FORMAT_SUBSAMPLE_244_244_OML"/>
+ </require>
+ </extension>
+ <extension name="GL_PGI_misc_hints" supported="gl">
+ <require>
+ <enum name="GL_PREFER_DOUBLEBUFFER_HINT_PGI"/>
+ <enum name="GL_CONSERVE_MEMORY_HINT_PGI"/>
+ <enum name="GL_RECLAIM_MEMORY_HINT_PGI"/>
+ <enum name="GL_NATIVE_GRAPHICS_HANDLE_PGI"/>
+ <enum name="GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI"/>
+ <enum name="GL_NATIVE_GRAPHICS_END_HINT_PGI"/>
+ <enum name="GL_ALWAYS_FAST_HINT_PGI"/>
+ <enum name="GL_ALWAYS_SOFT_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_OBJ_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_WIN_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_FRG_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_MEM_HINT_PGI"/>
+ <enum name="GL_STRICT_DEPTHFUNC_HINT_PGI"/>
+ <enum name="GL_STRICT_LIGHTING_HINT_PGI"/>
+ <enum name="GL_STRICT_SCISSOR_HINT_PGI"/>
+ <enum name="GL_FULL_STIPPLE_HINT_PGI"/>
+ <enum name="GL_CLIP_NEAR_HINT_PGI"/>
+ <enum name="GL_CLIP_FAR_HINT_PGI"/>
+ <enum name="GL_WIDE_LINE_HINT_PGI"/>
+ <enum name="GL_BACK_NORMALS_HINT_PGI"/>
+ <command name="glHintPGI"/>
+ </require>
+ </extension>
+ <extension name="GL_PGI_vertex_hints" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_DATA_HINT_PGI"/>
+ <enum name="GL_VERTEX_CONSISTENT_HINT_PGI"/>
+ <enum name="GL_MATERIAL_SIDE_HINT_PGI"/>
+ <enum name="GL_MAX_VERTEX_HINT_PGI"/>
+ <enum name="GL_COLOR3_BIT_PGI"/>
+ <enum name="GL_COLOR4_BIT_PGI"/>
+ <enum name="GL_EDGEFLAG_BIT_PGI"/>
+ <enum name="GL_INDEX_BIT_PGI"/>
+ <enum name="GL_MAT_AMBIENT_BIT_PGI"/>
+ <enum name="GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI"/>
+ <enum name="GL_MAT_DIFFUSE_BIT_PGI"/>
+ <enum name="GL_MAT_EMISSION_BIT_PGI"/>
+ <enum name="GL_MAT_COLOR_INDEXES_BIT_PGI"/>
+ <enum name="GL_MAT_SHININESS_BIT_PGI"/>
+ <enum name="GL_MAT_SPECULAR_BIT_PGI"/>
+ <enum name="GL_NORMAL_BIT_PGI"/>
+ <enum name="GL_TEXCOORD1_BIT_PGI"/>
+ <enum name="GL_TEXCOORD2_BIT_PGI"/>
+ <enum name="GL_TEXCOORD3_BIT_PGI"/>
+ <enum name="GL_TEXCOORD4_BIT_PGI"/>
+ <enum name="GL_VERTEX23_BIT_PGI"/>
+ <enum name="GL_VERTEX4_BIT_PGI"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_alpha_test" supported="gles2">
+ <require>
+ <enum name="GL_ALPHA_TEST_QCOM"/>
+ <enum name="GL_ALPHA_TEST_FUNC_QCOM"/>
+ <enum name="GL_ALPHA_TEST_REF_QCOM"/>
+ <command name="glAlphaFuncQCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_binning_control" supported="gles2">
+ <require>
+ <enum name="GL_BINNING_CONTROL_HINT_QCOM"/>
+ <enum name="GL_CPU_OPTIMIZED_QCOM"/>
+ <enum name="GL_GPU_OPTIMIZED_QCOM"/>
+ <enum name="GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_driver_control" supported="gles1|gles2">
+ <require>
+ <command name="glGetDriverControlsQCOM"/>
+ <command name="glGetDriverControlStringQCOM"/>
+ <command name="glEnableDriverControlQCOM"/>
+ <command name="glDisableDriverControlQCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_extended_get" supported="gles1|gles2">
+ <require>
+ <enum name="GL_TEXTURE_WIDTH_QCOM"/>
+ <enum name="GL_TEXTURE_HEIGHT_QCOM"/>
+ <enum name="GL_TEXTURE_DEPTH_QCOM"/>
+ <enum name="GL_TEXTURE_INTERNAL_FORMAT_QCOM"/>
+ <enum name="GL_TEXTURE_FORMAT_QCOM"/>
+ <enum name="GL_TEXTURE_TYPE_QCOM"/>
+ <enum name="GL_TEXTURE_IMAGE_VALID_QCOM"/>
+ <enum name="GL_TEXTURE_NUM_LEVELS_QCOM"/>
+ <enum name="GL_TEXTURE_TARGET_QCOM"/>
+ <enum name="GL_TEXTURE_OBJECT_VALID_QCOM"/>
+ <enum name="GL_STATE_RESTORE"/>
+ <command name="glExtGetTexturesQCOM"/>
+ <command name="glExtGetBuffersQCOM"/>
+ <command name="glExtGetRenderbuffersQCOM"/>
+ <command name="glExtGetFramebuffersQCOM"/>
+ <command name="glExtGetTexLevelParameterivQCOM"/>
+ <command name="glExtTexObjectStateOverrideiQCOM"/>
+ <command name="glExtGetTexSubImageQCOM"/>
+ <command name="glExtGetBufferPointervQCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_extended_get2" supported="gles1|gles2">
+ <require>
+ <command name="glExtGetShadersQCOM"/>
+ <command name="glExtGetProgramsQCOM"/>
+ <command name="glExtIsProgramBinaryQCOM"/>
+ <command name="glExtGetProgramBinarySourceQCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_perfmon_global_mode" supported="gles1|gles2">
+ <require>
+ <enum name="GL_PERFMON_GLOBAL_MODE_QCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_tiled_rendering" supported="gles1|gles2">
+ <require>
+ <enum name="GL_COLOR_BUFFER_BIT0_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT1_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT2_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT3_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT4_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT5_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT6_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT7_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT0_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT1_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT2_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT3_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT4_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT5_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT6_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT7_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT0_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT1_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT2_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT3_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT4_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT5_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT6_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT7_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT0_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT1_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT2_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT3_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT4_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT5_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT6_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT7_QCOM"/>
+ <command name="glStartTilingQCOM"/>
+ <command name="glEndTilingQCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_writeonly_rendering" supported="gles1|gles2">
+ <require>
+ <enum name="GL_WRITEONLY_RENDERING_QCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_REND_screen_coordinates" supported="gl">
+ <require>
+ <enum name="GL_SCREEN_COORDINATES_REND"/>
+ <enum name="GL_INVERTED_SCREEN_W_REND"/>
+ </require>
+ </extension>
+ <extension name="GL_S3_s3tc" supported="gl">
+ <require>
+ <enum name="GL_RGB_S3TC"/>
+ <enum name="GL_RGB4_S3TC"/>
+ <enum name="GL_RGBA_S3TC"/>
+ <enum name="GL_RGBA4_S3TC"/>
+ <enum name="GL_RGBA_DXT5_S3TC"/>
+ <enum name="GL_RGBA4_DXT5_S3TC"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_detail_texture" supported="gl">
+ <require>
+ <enum name="GL_DETAIL_TEXTURE_2D_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_2D_BINDING_SGIS"/>
+ <enum name="GL_LINEAR_DETAIL_SGIS"/>
+ <enum name="GL_LINEAR_DETAIL_ALPHA_SGIS"/>
+ <enum name="GL_LINEAR_DETAIL_COLOR_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_LEVEL_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_MODE_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS"/>
+ <command name="glDetailTexFuncSGIS"/>
+ <command name="glGetDetailTexFuncSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_fog_function" supported="gl">
+ <require>
+ <enum name="GL_FOG_FUNC_SGIS"/>
+ <enum name="GL_FOG_FUNC_POINTS_SGIS"/>
+ <enum name="GL_MAX_FOG_FUNC_POINTS_SGIS"/>
+ <command name="glFogFuncSGIS"/>
+ <command name="glGetFogFuncSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_generate_mipmap" supported="gl">
+ <require>
+ <enum name="GL_GENERATE_MIPMAP_SGIS"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT_SGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_multisample" supported="gl">
+ <require>
+ <enum name="GL_MULTISAMPLE_SGIS"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_MASK_SGIS"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_SGIS"/>
+ <enum name="GL_1PASS_SGIS"/>
+ <enum name="GL_2PASS_0_SGIS"/>
+ <enum name="GL_2PASS_1_SGIS"/>
+ <enum name="GL_4PASS_0_SGIS"/>
+ <enum name="GL_4PASS_1_SGIS"/>
+ <enum name="GL_4PASS_2_SGIS"/>
+ <enum name="GL_4PASS_3_SGIS"/>
+ <enum name="GL_SAMPLE_BUFFERS_SGIS"/>
+ <enum name="GL_SAMPLES_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_VALUE_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_INVERT_SGIS"/>
+ <enum name="GL_SAMPLE_PATTERN_SGIS"/>
+ <command name="glSampleMaskSGIS"/>
+ <command name="glSamplePatternSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_pixel_texture" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_TEXTURE_SGIS"/>
+ <enum name="GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS"/>
+ <enum name="GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS"/>
+ <enum name="GL_PIXEL_GROUP_COLOR_SGIS"/>
+ <command name="glPixelTexGenParameteriSGIS"/>
+ <command name="glPixelTexGenParameterivSGIS"/>
+ <command name="glPixelTexGenParameterfSGIS"/>
+ <command name="glPixelTexGenParameterfvSGIS"/>
+ <command name="glGetPixelTexGenParameterivSGIS"/>
+ <command name="glGetPixelTexGenParameterfvSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_point_line_texgen" supported="gl">
+ <require>
+ <enum name="GL_EYE_DISTANCE_TO_POINT_SGIS"/>
+ <enum name="GL_OBJECT_DISTANCE_TO_POINT_SGIS"/>
+ <enum name="GL_EYE_DISTANCE_TO_LINE_SGIS"/>
+ <enum name="GL_OBJECT_DISTANCE_TO_LINE_SGIS"/>
+ <enum name="GL_EYE_POINT_SGIS"/>
+ <enum name="GL_OBJECT_POINT_SGIS"/>
+ <enum name="GL_EYE_LINE_SGIS"/>
+ <enum name="GL_OBJECT_LINE_SGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_point_parameters" supported="gl">
+ <require>
+ <enum name="GL_POINT_SIZE_MIN_SGIS"/>
+ <enum name="GL_POINT_SIZE_MAX_SGIS"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_SGIS"/>
+ <enum name="GL_DISTANCE_ATTENUATION_SGIS"/>
+ <command name="glPointParameterfSGIS"/>
+ <command name="glPointParameterfvSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_sharpen_texture" supported="gl">
+ <require>
+ <enum name="GL_LINEAR_SHARPEN_SGIS"/>
+ <enum name="GL_LINEAR_SHARPEN_ALPHA_SGIS"/>
+ <enum name="GL_LINEAR_SHARPEN_COLOR_SGIS"/>
+ <enum name="GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS"/>
+ <command name="glSharpenTexFuncSGIS"/>
+ <command name="glGetSharpenTexFuncSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture4D" supported="gl">
+ <require>
+ <enum name="GL_PACK_SKIP_VOLUMES_SGIS"/>
+ <enum name="GL_PACK_IMAGE_DEPTH_SGIS"/>
+ <enum name="GL_UNPACK_SKIP_VOLUMES_SGIS"/>
+ <enum name="GL_UNPACK_IMAGE_DEPTH_SGIS"/>
+ <enum name="GL_TEXTURE_4D_SGIS"/>
+ <enum name="GL_PROXY_TEXTURE_4D_SGIS"/>
+ <enum name="GL_TEXTURE_4DSIZE_SGIS"/>
+ <enum name="GL_TEXTURE_WRAP_Q_SGIS"/>
+ <enum name="GL_MAX_4D_TEXTURE_SIZE_SGIS"/>
+ <enum name="GL_TEXTURE_4D_BINDING_SGIS"/>
+ <command name="glTexImage4DSGIS"/>
+ <command name="glTexSubImage4DSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture_border_clamp" supported="gl">
+ <require>
+ <enum name="GL_CLAMP_TO_BORDER_SGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture_color_mask" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_COLOR_WRITEMASK_SGIS"/>
+ <command name="glTextureColorMaskSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture_edge_clamp" supported="gl">
+ <require>
+ <enum name="GL_CLAMP_TO_EDGE_SGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture_filter4" supported="gl">
+ <require>
+ <enum name="GL_FILTER4_SGIS"/>
+ <enum name="GL_TEXTURE_FILTER4_SIZE_SGIS"/>
+ <command name="glGetTexFilterFuncSGIS"/>
+ <command name="glTexFilterFuncSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture_lod" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_MIN_LOD_SGIS"/>
+ <enum name="GL_TEXTURE_MAX_LOD_SGIS"/>
+ <enum name="GL_TEXTURE_BASE_LEVEL_SGIS"/>
+ <enum name="GL_TEXTURE_MAX_LEVEL_SGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture_select" supported="gl">
+ <require>
+ <enum name="GL_DUAL_ALPHA4_SGIS"/>
+ <enum name="GL_DUAL_ALPHA8_SGIS"/>
+ <enum name="GL_DUAL_ALPHA12_SGIS"/>
+ <enum name="GL_DUAL_ALPHA16_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE4_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE8_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE12_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE16_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY4_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY8_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY12_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY16_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE_ALPHA4_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE_ALPHA8_SGIS"/>
+ <enum name="GL_QUAD_ALPHA4_SGIS"/>
+ <enum name="GL_QUAD_ALPHA8_SGIS"/>
+ <enum name="GL_QUAD_LUMINANCE4_SGIS"/>
+ <enum name="GL_QUAD_LUMINANCE8_SGIS"/>
+ <enum name="GL_QUAD_INTENSITY4_SGIS"/>
+ <enum name="GL_QUAD_INTENSITY8_SGIS"/>
+ <enum name="GL_DUAL_TEXTURE_SELECT_SGIS"/>
+ <enum name="GL_QUAD_TEXTURE_SELECT_SGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_async" supported="gl">
+ <require>
+ <enum name="GL_ASYNC_MARKER_SGIX"/>
+ <command name="glAsyncMarkerSGIX"/>
+ <command name="glFinishAsyncSGIX"/>
+ <command name="glPollAsyncSGIX"/>
+ <command name="glGenAsyncMarkersSGIX"/>
+ <command name="glDeleteAsyncMarkersSGIX"/>
+ <command name="glIsAsyncMarkerSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_async_histogram" supported="gl">
+ <require>
+ <enum name="GL_ASYNC_HISTOGRAM_SGIX"/>
+ <enum name="GL_MAX_ASYNC_HISTOGRAM_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_async_pixel" supported="gl">
+ <require>
+ <enum name="GL_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum name="GL_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum name="GL_ASYNC_READ_PIXELS_SGIX"/>
+ <enum name="GL_MAX_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum name="GL_MAX_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum name="GL_MAX_ASYNC_READ_PIXELS_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_blend_alpha_minmax" supported="gl">
+ <require>
+ <enum name="GL_ALPHA_MIN_SGIX"/>
+ <enum name="GL_ALPHA_MAX_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_calligraphic_fragment" supported="gl">
+ <require>
+ <enum name="GL_CALLIGRAPHIC_FRAGMENT_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_clipmap" supported="gl">
+ <require>
+ <enum name="GL_LINEAR_CLIPMAP_LINEAR_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_CENTER_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_FRAME_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_OFFSET_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_DEPTH_SGIX"/>
+ <enum name="GL_MAX_CLIPMAP_DEPTH_SGIX"/>
+ <enum name="GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum name="GL_NEAREST_CLIPMAP_NEAREST_SGIX"/>
+ <enum name="GL_NEAREST_CLIPMAP_LINEAR_SGIX"/>
+ <enum name="GL_LINEAR_CLIPMAP_NEAREST_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_convolution_accuracy" supported="gl">
+ <require>
+ <enum name="GL_CONVOLUTION_HINT_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_depth_pass_instrument" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_depth_texture" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT16_SGIX"/>
+ <enum name="GL_DEPTH_COMPONENT24_SGIX"/>
+ <enum name="GL_DEPTH_COMPONENT32_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_flush_raster" supported="gl">
+ <require>
+ <command name="glFlushRasterSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_fog_offset" supported="gl">
+ <require>
+ <enum name="GL_FOG_OFFSET_SGIX"/>
+ <enum name="GL_FOG_OFFSET_VALUE_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_fragment_lighting" supported="gl" comment="Incomplete extension">
+ <require>
+ <enum name="GL_FRAGMENT_LIGHTING_SGIX"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_SGIX"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX"/>
+ <enum name="GL_MAX_FRAGMENT_LIGHTS_SGIX"/>
+ <enum name="GL_MAX_ACTIVE_LIGHTS_SGIX"/>
+ <enum name="GL_CURRENT_RASTER_NORMAL_SGIX"/>
+ <enum name="GL_LIGHT_ENV_MODE_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT0_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT1_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT2_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT3_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT4_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT5_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT6_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT7_SGIX"/>
+ <command name="glFragmentColorMaterialSGIX"/>
+ <command name="glFragmentLightfSGIX"/>
+ <command name="glFragmentLightfvSGIX"/>
+ <command name="glFragmentLightiSGIX"/>
+ <command name="glFragmentLightivSGIX"/>
+ <command name="glFragmentLightModelfSGIX"/>
+ <command name="glFragmentLightModelfvSGIX"/>
+ <command name="glFragmentLightModeliSGIX"/>
+ <command name="glFragmentLightModelivSGIX"/>
+ <command name="glFragmentMaterialfSGIX"/>
+ <command name="glFragmentMaterialfvSGIX"/>
+ <command name="glFragmentMaterialiSGIX"/>
+ <command name="glFragmentMaterialivSGIX"/>
+ <command name="glGetFragmentLightfvSGIX"/>
+ <command name="glGetFragmentLightivSGIX"/>
+ <command name="glGetFragmentMaterialfvSGIX"/>
+ <command name="glGetFragmentMaterialivSGIX"/>
+ <command name="glLightEnviSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_framezoom" supported="gl">
+ <require>
+ <enum name="GL_FRAMEZOOM_SGIX"/>
+ <enum name="GL_FRAMEZOOM_FACTOR_SGIX"/>
+ <enum name="GL_MAX_FRAMEZOOM_FACTOR_SGIX"/>
+ <command name="glFrameZoomSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_igloo_interface" supported="gl">
+ <require>
+ <command name="glIglooInterfaceSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_instruments" supported="gl">
+ <require>
+ <enum name="GL_INSTRUMENT_BUFFER_POINTER_SGIX"/>
+ <enum name="GL_INSTRUMENT_MEASUREMENTS_SGIX"/>
+ <command name="glGetInstrumentsSGIX"/>
+ <command name="glInstrumentsBufferSGIX"/>
+ <command name="glPollInstrumentsSGIX"/>
+ <command name="glReadInstrumentsSGIX"/>
+ <command name="glStartInstrumentsSGIX"/>
+ <command name="glStopInstrumentsSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_interlace" supported="gl">
+ <require>
+ <enum name="GL_INTERLACE_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_ir_instrument1" supported="gl">
+ <require>
+ <enum name="GL_IR_INSTRUMENT1_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_list_priority" supported="gl">
+ <require>
+ <enum name="GL_LIST_PRIORITY_SGIX"/>
+ <command name="glGetListParameterfvSGIX"/>
+ <command name="glGetListParameterivSGIX"/>
+ <command name="glListParameterfSGIX"/>
+ <command name="glListParameterfvSGIX"/>
+ <command name="glListParameteriSGIX"/>
+ <command name="glListParameterivSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_pixel_texture" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_TEX_GEN_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_MODE_SGIX"/>
+ <command name="glPixelTexGenSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_pixel_tiles" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_CACHE_INCREMENT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_WIDTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_HEIGHT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_WIDTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_HEIGHT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_DEPTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_CACHE_SIZE_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_polynomial_ffd" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_DEFORMATION_BIT_SGIX"/>
+ <enum name="GL_GEOMETRY_DEFORMATION_BIT_SGIX"/>
+ <enum name="GL_GEOMETRY_DEFORMATION_SGIX"/>
+ <enum name="GL_TEXTURE_DEFORMATION_SGIX"/>
+ <enum name="GL_DEFORMATIONS_MASK_SGIX"/>
+ <enum name="GL_MAX_DEFORMATION_ORDER_SGIX"/>
+ <command name="glDeformationMap3dSGIX"/>
+ <command name="glDeformationMap3fSGIX"/>
+ <command name="glDeformSGIX"/>
+ <command name="glLoadIdentityDeformationMapSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_reference_plane" supported="gl">
+ <require>
+ <enum name="GL_REFERENCE_PLANE_SGIX"/>
+ <enum name="GL_REFERENCE_PLANE_EQUATION_SGIX"/>
+ <command name="glReferencePlaneSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_resample" supported="gl">
+ <require>
+ <enum name="GL_PACK_RESAMPLE_SGIX"/>
+ <enum name="GL_UNPACK_RESAMPLE_SGIX"/>
+ <enum name="GL_RESAMPLE_REPLICATE_SGIX"/>
+ <enum name="GL_RESAMPLE_ZERO_FILL_SGIX"/>
+ <enum name="GL_RESAMPLE_DECIMATE_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_scalebias_hint" supported="gl">
+ <require>
+ <enum name="GL_SCALEBIAS_HINT_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_shadow" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_COMPARE_SGIX"/>
+ <enum name="GL_TEXTURE_COMPARE_OPERATOR_SGIX"/>
+ <enum name="GL_TEXTURE_LEQUAL_R_SGIX"/>
+ <enum name="GL_TEXTURE_GEQUAL_R_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_shadow_ambient" supported="gl">
+ <require>
+ <enum name="GL_SHADOW_AMBIENT_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_sprite" supported="gl">
+ <require>
+ <enum name="GL_SPRITE_SGIX"/>
+ <enum name="GL_SPRITE_MODE_SGIX"/>
+ <enum name="GL_SPRITE_AXIS_SGIX"/>
+ <enum name="GL_SPRITE_TRANSLATION_SGIX"/>
+ <enum name="GL_SPRITE_AXIAL_SGIX"/>
+ <enum name="GL_SPRITE_OBJECT_ALIGNED_SGIX"/>
+ <enum name="GL_SPRITE_EYE_ALIGNED_SGIX"/>
+ <command name="glSpriteParameterfSGIX"/>
+ <command name="glSpriteParameterfvSGIX"/>
+ <command name="glSpriteParameteriSGIX"/>
+ <command name="glSpriteParameterivSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_subsample" supported="gl">
+ <require>
+ <enum name="GL_PACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum name="GL_UNPACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum name="GL_PIXEL_SUBSAMPLE_4444_SGIX"/>
+ <enum name="GL_PIXEL_SUBSAMPLE_2424_SGIX"/>
+ <enum name="GL_PIXEL_SUBSAMPLE_4242_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_tag_sample_buffer" supported="gl">
+ <require>
+ <command name="glTagSampleBufferSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_texture_add_env" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_ENV_BIAS_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_texture_coordinate_clamp" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_MAX_CLAMP_S_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_T_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_R_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_texture_lod_bias" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_LOD_BIAS_S_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_T_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_R_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_texture_multi_buffer" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_MULTI_BUFFER_HINT_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_texture_scale_bias" supported="gl">
+ <require>
+ <enum name="GL_POST_TEXTURE_FILTER_BIAS_SGIX"/>
+ <enum name="GL_POST_TEXTURE_FILTER_SCALE_SGIX"/>
+ <enum name="GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX"/>
+ <enum name="GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_vertex_preclip" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_PRECLIP_SGIX"/>
+ <enum name="GL_VERTEX_PRECLIP_HINT_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_ycrcb" supported="gl">
+ <require>
+ <enum name="GL_YCRCB_422_SGIX"/>
+ <enum name="GL_YCRCB_444_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_ycrcb_subsample" supported="gl">
+ <require/>
+ </extension>
+ <extension name="GL_SGIX_ycrcba" supported="gl">
+ <require>
+ <enum name="GL_YCRCB_SGIX"/>
+ <enum name="GL_YCRCBA_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGI_color_matrix" supported="gl">
+ <require>
+ <enum name="GL_COLOR_MATRIX_SGI"/>
+ <enum name="GL_COLOR_MATRIX_STACK_DEPTH_SGI"/>
+ <enum name="GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI"/>
+ </require>
+ </extension>
+ <extension name="GL_SGI_color_table" supported="gl">
+ <require>
+ <enum name="GL_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum name="GL_COLOR_TABLE_SCALE_SGI"/>
+ <enum name="GL_COLOR_TABLE_BIAS_SGI"/>
+ <enum name="GL_COLOR_TABLE_FORMAT_SGI"/>
+ <enum name="GL_COLOR_TABLE_WIDTH_SGI"/>
+ <enum name="GL_COLOR_TABLE_RED_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_GREEN_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_BLUE_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_ALPHA_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_LUMINANCE_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_INTENSITY_SIZE_SGI"/>
+ <command name="glColorTableSGI"/>
+ <command name="glColorTableParameterfvSGI"/>
+ <command name="glColorTableParameterivSGI"/>
+ <command name="glCopyColorTableSGI"/>
+ <command name="glGetColorTableSGI"/>
+ <command name="glGetColorTableParameterfvSGI"/>
+ <command name="glGetColorTableParameterivSGI"/>
+ </require>
+ </extension>
+ <extension name="GL_SGI_texture_color_table" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_TEXTURE_COLOR_TABLE_SGI"/>
+ </require>
+ </extension>
+ <extension name="GL_SUNX_constant_data" supported="gl">
+ <require>
+ <enum name="GL_UNPACK_CONSTANT_DATA_SUNX"/>
+ <enum name="GL_TEXTURE_CONSTANT_DATA_SUNX"/>
+ <command name="glFinishTextureSUNX"/>
+ </require>
+ </extension>
+ <extension name="GL_SUN_convolution_border_modes" supported="gl">
+ <require>
+ <enum name="GL_WRAP_BORDER_SUN"/>
+ </require>
+ </extension>
+ <extension name="GL_SUN_global_alpha" supported="gl">
+ <require>
+ <enum name="GL_GLOBAL_ALPHA_SUN"/>
+ <enum name="GL_GLOBAL_ALPHA_FACTOR_SUN"/>
+ <command name="glGlobalAlphaFactorbSUN"/>
+ <command name="glGlobalAlphaFactorsSUN"/>
+ <command name="glGlobalAlphaFactoriSUN"/>
+ <command name="glGlobalAlphaFactorfSUN"/>
+ <command name="glGlobalAlphaFactordSUN"/>
+ <command name="glGlobalAlphaFactorubSUN"/>
+ <command name="glGlobalAlphaFactorusSUN"/>
+ <command name="glGlobalAlphaFactoruiSUN"/>
+ </require>
+ </extension>
+ <extension name="GL_SUN_mesh_array" supported="gl">
+ <require>
+ <enum name="GL_QUAD_MESH_SUN"/>
+ <enum name="GL_TRIANGLE_MESH_SUN"/>
+ <command name="glDrawMeshArraysSUN"/>
+ </require>
+ </extension>
+ <extension name="GL_SUN_slice_accum" supported="gl">
+ <require>
+ <enum name="GL_SLICE_ACCUM_SUN"/>
+ </require>
+ </extension>
+ <extension name="GL_SUN_triangle_list" supported="gl">
+ <require>
+ <enum name="GL_RESTART_SUN"/>
+ <enum name="GL_REPLACE_MIDDLE_SUN"/>
+ <enum name="GL_REPLACE_OLDEST_SUN"/>
+ <enum name="GL_TRIANGLE_LIST_SUN"/>
+ <enum name="GL_REPLACEMENT_CODE_SUN"/>
+ <enum name="GL_REPLACEMENT_CODE_ARRAY_SUN"/>
+ <enum name="GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN"/>
+ <enum name="GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN"/>
+ <enum name="GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN"/>
+ <enum name="GL_R1UI_V3F_SUN"/>
+ <enum name="GL_R1UI_C4UB_V3F_SUN"/>
+ <enum name="GL_R1UI_C3F_V3F_SUN"/>
+ <enum name="GL_R1UI_N3F_V3F_SUN"/>
+ <enum name="GL_R1UI_C4F_N3F_V3F_SUN"/>
+ <enum name="GL_R1UI_T2F_V3F_SUN"/>
+ <enum name="GL_R1UI_T2F_N3F_V3F_SUN"/>
+ <enum name="GL_R1UI_T2F_C4F_N3F_V3F_SUN"/>
+ <command name="glReplacementCodeuiSUN"/>
+ <command name="glReplacementCodeusSUN"/>
+ <command name="glReplacementCodeubSUN"/>
+ <command name="glReplacementCodeuivSUN"/>
+ <command name="glReplacementCodeusvSUN"/>
+ <command name="glReplacementCodeubvSUN"/>
+ <command name="glReplacementCodePointerSUN"/>
+ </require>
+ </extension>
+ <extension name="GL_SUN_vertex" supported="gl">
+ <require>
+ <command name="glColor4ubVertex2fSUN"/>
+ <command name="glColor4ubVertex2fvSUN"/>
+ <command name="glColor4ubVertex3fSUN"/>
+ <command name="glColor4ubVertex3fvSUN"/>
+ <command name="glColor3fVertex3fSUN"/>
+ <command name="glColor3fVertex3fvSUN"/>
+ <command name="glNormal3fVertex3fSUN"/>
+ <command name="glNormal3fVertex3fvSUN"/>
+ <command name="glColor4fNormal3fVertex3fSUN"/>
+ <command name="glColor4fNormal3fVertex3fvSUN"/>
+ <command name="glTexCoord2fVertex3fSUN"/>
+ <command name="glTexCoord2fVertex3fvSUN"/>
+ <command name="glTexCoord4fVertex4fSUN"/>
+ <command name="glTexCoord4fVertex4fvSUN"/>
+ <command name="glTexCoord2fColor4ubVertex3fSUN"/>
+ <command name="glTexCoord2fColor4ubVertex3fvSUN"/>
+ <command name="glTexCoord2fColor3fVertex3fSUN"/>
+ <command name="glTexCoord2fColor3fVertex3fvSUN"/>
+ <command name="glTexCoord2fNormal3fVertex3fSUN"/>
+ <command name="glTexCoord2fNormal3fVertex3fvSUN"/>
+ <command name="glTexCoord2fColor4fNormal3fVertex3fSUN"/>
+ <command name="glTexCoord2fColor4fNormal3fVertex3fvSUN"/>
+ <command name="glTexCoord4fColor4fNormal3fVertex4fSUN"/>
+ <command name="glTexCoord4fColor4fNormal3fVertex4fvSUN"/>
+ <command name="glReplacementCodeuiVertex3fSUN"/>
+ <command name="glReplacementCodeuiVertex3fvSUN"/>
+ <command name="glReplacementCodeuiColor4ubVertex3fSUN"/>
+ <command name="glReplacementCodeuiColor4ubVertex3fvSUN"/>
+ <command name="glReplacementCodeuiColor3fVertex3fSUN"/>
+ <command name="glReplacementCodeuiColor3fVertex3fvSUN"/>
+ <command name="glReplacementCodeuiNormal3fVertex3fSUN"/>
+ <command name="glReplacementCodeuiNormal3fVertex3fvSUN"/>
+ <command name="glReplacementCodeuiColor4fNormal3fVertex3fSUN"/>
+ <command name="glReplacementCodeuiColor4fNormal3fVertex3fvSUN"/>
+ <command name="glReplacementCodeuiTexCoord2fVertex3fSUN"/>
+ <command name="glReplacementCodeuiTexCoord2fVertex3fvSUN"/>
+ <command name="glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN"/>
+ <command name="glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN"/>
+ <command name="glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN"/>
+ <command name="glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN"/>
+ </require>
+ </extension>
+ <extension name="GL_VIV_shader_binary" supported="gles2">
+ <require>
+ <enum name="GL_SHADER_BINARY_VIV"/>
+ </require>
+ </extension>
+ <extension name="GL_WIN_phong_shading" supported="gl">
+ <require>
+ <enum name="GL_PHONG_WIN"/>
+ <enum name="GL_PHONG_HINT_WIN"/>
+ </require>
+ </extension>
+ <extension name="GL_WIN_specular_fog" supported="gl">
+ <require>
+ <enum name="GL_FOG_SPECULAR_TEXTURE_WIN"/>
+ </require>
+ </extension>
+ </extensions>
+</registry>
diff --git a/xorg-server/hw/xwin/glx/glwindows.h b/xorg-server/hw/xwin/glx/glwindows.h
index ec1d1f51b..42adc5b60 100644
--- a/xorg-server/hw/xwin/glx/glwindows.h
+++ b/xorg-server/hw/xwin/glx/glwindows.h
@@ -49,9 +49,15 @@ void glAddSwapHintRectWINWrapperNonstatic(GLint x, GLint y, GLsizei width,
GLsizei height);
void glWinSetupDispatchTable(void);
-#if 1
+#ifdef _DEBUG
+#ifdef _MSC_VER
+#define GLWIN_TRACE_MSG(msg, ...) if (glxWinDebugSettings.enableTrace) ErrorF(msg " [%s:%d]\n" , __VA_ARGS__ , __FUNCTION__, __LINE__ )
+#define GLWIN_DEBUG_MSG(msg, ...) if (glxWinDebugSettings.enableDebug) ErrorF(msg " [%s:%d]\n" , __VA_ARGS__ , __FUNCTION__, __LINE__ )
+#else
#define GLWIN_TRACE_MSG(msg, args...) if (glxWinDebugSettings.enableTrace) ErrorF(msg " [%s:%d]\n" , ##args , __FUNCTION__, __LINE__ )
#define GLWIN_DEBUG_MSG(msg, args...) if (glxWinDebugSettings.enableDebug) ErrorF(msg " [%s:%d]\n" , ##args , __FUNCTION__, __LINE__ )
+#endif
+
#else
#define GLWIN_TRACE_MSG(a, ...)
#define GLWIN_DEBUG_MSG(a, ...)
diff --git a/xorg-server/hw/xwin/glx/glwrap.c b/xorg-server/hw/xwin/glx/glwrap.c
index 73cff3cc1..9733e7526 100644
--- a/xorg-server/hw/xwin/glx/glwrap.c
+++ b/xorg-server/hw/xwin/glx/glwrap.c
@@ -39,12 +39,15 @@
#include <X11/Xwindows.h>
#include <GL/gl.h>
#include <GL/glext.h>
+#include <glx/glheader.h>
#include <glx/glxserver.h>
#include <glx/glxext.h>
#include <glx/glapi.h>
#include <glx/dispatch.h>
#include <glwindows.h>
+#include <winmsg.h>
+#ifdef _DEBUG
static unsigned int glWinIndirectProcCalls = 0;
static unsigned int glWinDirectProcCalls = 0;
@@ -65,6 +68,7 @@ glWinCallDelta(void)
glWinIndirectProcCallsLast = glWinIndirectProcCalls;
}
}
+#endif
static PROC
glWinResolveHelper(PROC * cache, const char *symbol)
@@ -75,11 +79,11 @@ glWinResolveHelper(PROC * cache, const char *symbol)
if ((*cache) == NULL) {
proc = wglGetProcAddress(symbol);
if (proc == NULL) {
- ErrorF("glwrap: Can't resolve \"%s\"\n", symbol);
+ winDebug("glwrap: Can't resolve \"%s\"\n", symbol);
(*cache) = (PROC) - 1;
}
else {
- ErrorF("glwrap: Resolved \"%s\"\n", symbol);
+ winDebug("glwrap: Resolved \"%s\"\n", symbol);
(*cache) = proc;
}
}
@@ -95,14 +99,20 @@ glWinResolveHelper(PROC * cache, const char *symbol)
return proc;
}
+#ifdef _DEBUG
+#define INCPROCCALLS glWinIndirectProcCalls++;
+#else
+#define INCPROCCALLS
+#endif
+
#define RESOLVE_RET(proctype, symbol, retval) \
static PROC cache = NULL; \
- __stdcall proctype proc = (proctype)glWinResolveHelper(&cache, symbol); \
+ proctype proc = (proctype)glWinResolveHelper(&cache, symbol); \
if (proc == NULL) { \
__glXErrorCallBack(0); \
return retval; \
} \
- glWinIndirectProcCalls++;
+ INCPROCCALLS
#define RESOLVE(proctype, symbol) RESOLVE_RET(proctype, symbol,)
diff --git a/xorg-server/hw/xwin/glx/indirect.c b/xorg-server/hw/xwin/glx/indirect.c
index 4f09652f0..495e366ca 100644
--- a/xorg-server/hw/xwin/glx/indirect.c
+++ b/xorg-server/hw/xwin/glx/indirect.c
@@ -79,13 +79,19 @@
#endif
#include "glwindows.h"
+#include <glx/glheader.h>
#include <glx/glxserver.h>
#include <glx/glxutil.h>
#include <glx/extension_string.h>
+#include <glx/glxext.h>
#include <GL/glxtokens.h>
+#include <glx/glapitable.h>
+#include <glx/glapi.h>
#include <winpriv.h>
#include <wgl_ext_api.h>
+#include "win.h"
+#include <winmsg.h>
#include <winglobals.h>
#define NUM_ELEMENTS(x) (sizeof(x)/ sizeof(x[1]))
@@ -114,14 +120,17 @@ typedef struct __GLXWinConfig GLXWinConfig;
struct __GLXWinContext {
__GLXcontext base;
HGLRC ctx; /* Windows GL Context */
+ HDC hDC; /* Windows device context */
+ HDC hreadDC; /* Windows device read context */
__GLXWinContext *shareContext; /* Context with which we will share display lists and textures */
HWND hwnd; /* For detecting when HWND has changed */
+ HWND hreadwnd;
+ struct _glapi_table *Dispatch;
};
struct __GLXWinDrawable {
__GLXdrawable base;
__GLXWinContext *drawContext;
- __GLXWinContext *readContext;
/* If this drawable is GLX_DRAWABLE_PBUFFER */
HPBUFFERARB hPbuffer;
@@ -147,7 +156,9 @@ struct __GLXWinScreen {
/* wrapped screen functions */
RealizeWindowProcPtr RealizeWindow;
UnrealizeWindowProcPtr UnrealizeWindow;
+ DestroyWindowProcPtr DestroyWindow;
CopyWindowProcPtr CopyWindow;
+ PositionWindowProcPtr PositionWindow;
};
struct __GLXWinConfig {
@@ -160,12 +171,33 @@ struct __GLXWinConfig {
* Various debug helpers
*/
-#define GLWIN_DEBUG_HWND(hwnd) \
- if (glxWinDebugSettings.dumpHWND) { \
- char buffer[1024]; \
- if (GetWindowText(hwnd, buffer, sizeof(buffer))==0) *buffer=0; \
- GLWIN_DEBUG_MSG("Got HWND %p for window '%s'", hwnd, buffer); \
+#ifdef _DEBUG
+void GLWIN_DEBUG_HWND(HWND hwnd)
+{
+ if (glxWinDebugSettings.dumpHWND) {
+ char buffer[1024];
+ RECT Rect;
+ HDC hDc=GetDC(hwnd);
+
+ if (GetWindowText(hwnd, buffer, sizeof(buffer))==0) *buffer=0;
+ GetWindowRect(hwnd,&Rect);
+
+ GLWIN_DEBUG_MSG("Got HWND %p (hdc %p) for window '%s' (%d,%d,%d,%d)", hwnd, hDc, buffer, Rect.left, Rect.top, Rect.right, Rect.bottom);
+ ReleaseDC(hwnd,hDc);
}
+}
+
+void GLWIN_HDC_DEBUG_MSG(const char *Message, HDC hDc, HWND hwnd)
+{
+ char buffer[1024];
+ RECT Rect;
+
+ if (GetWindowText(hwnd, buffer, sizeof(buffer))==0) *buffer=0;
+ GetWindowRect(hwnd,&Rect);
+
+ GLWIN_DEBUG_MSG("Got HDC %p (hwnd %p) for window '%s' (%d,%d,%d,%d)", hDc, hwnd, buffer, Rect.left, Rect.top, Rect.right, Rect.bottom);
+
+}
glxWinDebugSettingsRec glxWinDebugSettings = { 0, 0, 0, 0, 0, 0 };
@@ -213,6 +245,7 @@ glxWinInitDebugSettings(void)
glxWinDebugSettings.enableWGLcallTrace = 1;
}
}
+#endif
static
const char *
@@ -239,6 +272,8 @@ glxWinErrorMessage(void)
static void pfdOut(const PIXELFORMATDESCRIPTOR * pfd);
+#ifdef _DEBUG
+
#define DUMP_PFD_FLAG(flag) \
if (pfd->dwFlags & flag) { \
ErrorF("%s%s", pipesym, #flag); \
@@ -396,6 +431,7 @@ fbConfigsDump(unsigned int n, __GLXconfig * c)
c = c->next;
}
}
+#endif
/* ---------------------------------------------------------------------- */
/*
@@ -417,11 +453,13 @@ static __GLXdrawable *glxWinCreateDrawable(ClientPtr client,
static Bool glxWinRealizeWindow(WindowPtr pWin);
static Bool glxWinUnrealizeWindow(WindowPtr pWin);
+static Bool glxWinDestroyWindow(WindowPtr pWin);
static void glxWinCopyWindow(WindowPtr pWindow, DDXPointRec ptOldOrg,
RegionPtr prgnSrc);
+static Bool glxWinPositionWindow(WindowPtr pWindow, int x, int y);
static HDC glxWinMakeDC(__GLXWinContext * gc, __GLXWinDrawable * draw,
- HDC * hdc, HWND * hwnd);
+ HWND * hwnd);
static void glxWinReleaseDC(HWND hwnd, HDC hdc, __GLXWinDrawable * draw);
static void glxWinCreateConfigs(HDC dc, glxWinScreen * screen);
@@ -447,7 +485,8 @@ __GLXprovider __glXWGLProvider = {
void
glxWinPushNativeProvider(void)
{
- GlxPushProvider(&__glXWGLProvider);
+ if (g_fNativeGl)
+ GlxPushProvider(&__glXWGLProvider);
}
/* ---------------------------------------------------------------------- */
@@ -475,6 +514,15 @@ glxWinScreenSwapInterval(__GLXdrawable * drawable, int interval)
return ret;
}
+static LRESULT CALLBACK GlxWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ if (uMsg== WM_NCHITTEST) {
+ return HTTRANSPARENT;
+ }
+ else
+ return DefWindowProc(hwnd, uMsg, wParam, lParam);
+}
+
/*
Report the extensions split and formatted to avoid overflowing a line
*/
@@ -493,7 +541,8 @@ glxLogExtensions(const char *prefix, const char *extensions)
strl = strtok(str, " ");
if (strl == NULL)
strl = "";
- ErrorF("%s%s", prefix, strl);
+ winDebug("%s%s", prefix, strl);
+
length = strlen(prefix) + strlen(strl);
while (1) {
@@ -502,20 +551,20 @@ glxLogExtensions(const char *prefix, const char *extensions)
break;
if (length + strlen(strl) + 1 > 120) {
- ErrorF("\n");
- ErrorF("%s", prefix);
+ winDebug("\n");
+ winDebug("%s", prefix);
length = strlen(prefix);
}
else {
- ErrorF(" ");
+ winDebug(" ");
length++;
}
- ErrorF("%s", strl);
+ winDebug("%s", strl);
length = length + strlen(strl);
}
- ErrorF("\n");
+ winDebug("\n");
free(str);
}
@@ -534,7 +583,9 @@ glxWinScreenProbe(ScreenPtr pScreen)
GLWIN_DEBUG_MSG("glxWinScreenProbe");
+#ifdef _DEBUG
glxWinInitDebugSettings();
+#endif
if (pScreen == NULL)
return NULL;
@@ -553,24 +604,23 @@ glxWinScreenProbe(ScreenPtr pScreen)
/* Dump out some useful information about the native renderer */
// create window class
-#define WIN_GL_TEST_WINDOW_CLASS "XWinGLTest"
{
static wATOM glTestWndClass = 0;
if (glTestWndClass == 0) {
WNDCLASSEX wc;
-
+ glTestWndClass=1;
wc.cbSize = sizeof(WNDCLASSEX);
- wc.style = CS_HREDRAW | CS_VREDRAW;
- wc.lpfnWndProc = DefWindowProc;
+ wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC ;
+ wc.lpfnWndProc = GlxWindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
- wc.hInstance = GetModuleHandle(NULL);
+ wc.hInstance = g_hInstance;
wc.hIcon = 0;
wc.hCursor = 0;
- wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
+ wc.hbrBackground = 0;
wc.lpszMenuName = NULL;
- wc.lpszClassName = WIN_GL_TEST_WINDOW_CLASS;
+ wc.lpszClassName = WIN_GL_WINDOW_CLASS;
wc.hIconSm = 0;
RegisterClassEx(&wc);
}
@@ -578,9 +628,9 @@ glxWinScreenProbe(ScreenPtr pScreen)
// create an invisible window for a scratch DC
hwnd = CreateWindowExA(0,
- WIN_GL_TEST_WINDOW_CLASS,
+ WIN_GL_WINDOW_CLASS,
"XWin GL Renderer Capabilities Test Window",
- 0, 0, 0, 0, 0, NULL, NULL, GetModuleHandle(NULL),
+ 0, 0, 0, 0, 0, NULL, NULL, g_hInstance,
NULL);
if (hwnd == NULL)
LogMessage(X_ERROR,
@@ -591,16 +641,19 @@ glxWinScreenProbe(ScreenPtr pScreen)
// we must set a pixel format before we can create a context, just use the first one...
SetPixelFormat(hdc, 1, NULL);
hglrc = wglCreateContext(hdc);
- wglMakeCurrent(hdc, hglrc);
+ if (!wglMakeCurrent(hdc, hglrc)) {
+ DWORD ErrorCode=GetLastError();
+ ErrorF("wglMakeCurrent error: %x dc %p ctx %p\n", ErrorCode,hdc,hglrc);
+ }
// initialize wgl extension proc pointers (don't call them before here...)
// (but we need to have a current context for them to be resolvable)
wglResolveExtensionProcs();
- ErrorF("GL_VERSION: %s\n", glGetStringWrapperNonstatic(GL_VERSION));
- ErrorF("GL_VENDOR: %s\n", glGetStringWrapperNonstatic(GL_VENDOR));
+ winDebug("GL_VERSION: %s\n", glGetStringWrapperNonstatic(GL_VERSION));
+ winDebug("GL_VENDOR: %s\n", glGetStringWrapperNonstatic(GL_VENDOR));
gl_renderer = (const char *) glGetStringWrapperNonstatic(GL_RENDERER);
- ErrorF("GL_RENDERER: %s\n", gl_renderer);
+ winDebug("GL_RENDERER: %s\n", gl_renderer);
gl_extensions = (const char *) glGetStringWrapperNonstatic(GL_EXTENSIONS);
wgl_extensions = wglGetExtensionsStringARBWrapper(hdc);
if (!wgl_extensions)
@@ -777,8 +830,10 @@ glxWinScreenProbe(ScreenPtr pScreen)
ReleaseDC(hwnd, hdc);
DestroyWindow(hwnd);
+#ifdef _DEBUG
// dump out fbConfigs now fbConfigIds and visualIDs have been assigned
fbConfigsDump(screen->base.numFBConfigs, screen->base.fbconfigs);
+#endif
/* Wrap RealizeWindow, UnrealizeWindow and CopyWindow on this screen */
screen->RealizeWindow = pScreen->RealizeWindow;
@@ -787,6 +842,10 @@ glxWinScreenProbe(ScreenPtr pScreen)
pScreen->UnrealizeWindow = glxWinUnrealizeWindow;
screen->CopyWindow = pScreen->CopyWindow;
pScreen->CopyWindow = glxWinCopyWindow;
+ screen->PositionWindow = pScreen->PositionWindow;
+ pScreen->PositionWindow = glxWinPositionWindow;
+ screen->DestroyWindow = pScreen->DestroyWindow;
+ pScreen->DestroyWindow = glxWinDestroyWindow;
return &screen->base;
}
@@ -802,6 +861,7 @@ glxWinRealizeWindow(WindowPtr pWin)
Bool result;
ScreenPtr pScreen = pWin->drawable.pScreen;
glxWinScreen *screenPriv = (glxWinScreen *) glxGetScreen(pScreen);
+ winWindowPriv(pWin);
GLWIN_DEBUG_MSG("glxWinRealizeWindow");
@@ -809,7 +869,11 @@ glxWinRealizeWindow(WindowPtr pWin)
pScreen->RealizeWindow = screenPriv->RealizeWindow;
result = pScreen->RealizeWindow(pWin);
pScreen->RealizeWindow = glxWinRealizeWindow;
-
+
+ // Check if ze need to move the window\n
+ if (pWinPriv->fWglUsed && pWinPriv->hWnd) {
+ ShowWindow(pWinPriv->hWnd,SW_SHOWNOACTIVATE);
+ }
return result;
}
@@ -845,17 +909,88 @@ glxWinCopyWindow(WindowPtr pWindow, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
}
static Bool
+glxWinPositionWindow(WindowPtr pWin, int x, int y)
+{
+ Bool result;
+ ScreenPtr pScreen = pWin->drawable.pScreen;
+ glxWinScreen *screenPriv = (glxWinScreen *) glxGetScreen(pScreen);
+ winWindowPriv(pWin);
+
+ pScreen->PositionWindow = screenPriv->PositionWindow;
+ result = pScreen->PositionWindow(pWin, x, y);
+ pScreen->PositionWindow = glxWinPositionWindow;
+
+ if (pWinPriv->fWglUsed && pWinPriv->hWnd)
+ {
+ MoveWindow(pWinPriv->hWnd,
+ pWin->drawable.x,
+ pWin->drawable.y,
+ pWin->drawable.width,
+ pWin->drawable.height,
+ FALSE);
+ winDebug("Move window %x, %x, %d, %d, %d, %d\n",pWinPriv->hWnd,GetParent(pWinPriv->hWnd), pWin->drawable.x, pWin->drawable.y, pWin->drawable.width, pWin->drawable.height);
+ }
+ return result;
+}
+
+
+static Bool
glxWinUnrealizeWindow(WindowPtr pWin)
{
Bool result;
ScreenPtr pScreen = pWin->drawable.pScreen;
glxWinScreen *screenPriv = (glxWinScreen *) glxGetScreen(pScreen);
+ winWindowPriv(pWin);
GLWIN_DEBUG_MSG("glxWinUnrealizeWindow");
- pScreen->UnrealizeWindow = screenPriv->UnrealizeWindow;
- result = pScreen->UnrealizeWindow(pWin);
- pScreen->UnrealizeWindow = glxWinUnrealizeWindow;
+ if (pWinPriv->fWglUsed && pWinPriv->hWnd)
+ {
+ ShowWindow(pWinPriv->hWnd,SW_HIDE);
+ result = TRUE;
+ }
+ else
+ {
+ pScreen->UnrealizeWindow = screenPriv->UnrealizeWindow;
+ result = pScreen->UnrealizeWindow(pWin);
+ pScreen->UnrealizeWindow = glxWinUnrealizeWindow;
+ }
+
+
+ return result;
+}
+
+static Bool
+glxWinDestroyWindow(WindowPtr pWin)
+{
+ Bool result;
+ ScreenPtr pScreen = pWin->drawable.pScreen;
+ glxWinScreen *screenPriv = (glxWinScreen *)glxGetScreen(pScreen);
+ __GLXWinDrawable *pGlxDraw;
+ winWindowPriv(pWin);
+
+ GLWIN_DEBUG_MSG("glxWinDestroyWindow");
+
+ dixLookupResourceByType((pointer) &pGlxDraw, pWin->drawable.id, __glXDrawableRes, NullClient, DixUnknownAccess);
+
+ if (pGlxDraw && pGlxDraw->drawContext)
+ {
+ if (pGlxDraw->drawContext->hwnd!=pWinPriv->hWnd)
+ ErrorF("Wrong assumption\n");
+ glxWinReleaseDC(pGlxDraw->drawContext->hwnd, pGlxDraw->drawContext->hDC, pGlxDraw);
+ pGlxDraw->drawContext->hDC=NULL;
+ pGlxDraw->drawContext->hwnd=NULL;
+ }
+ if (pWinPriv->fWglUsed && pWinPriv->hWnd)
+ {
+ DestroyWindow(pWinPriv->hWnd);
+ pWinPriv->hWnd=NULL;
+ pWinPriv->fWglUsed=0;
+ }
+
+ pScreen->DestroyWindow = screenPriv->DestroyWindow;
+ result = pScreen->DestroyWindow(pWin);
+ pScreen->DestroyWindow = glxWinDestroyWindow;
return result;
}
@@ -868,8 +1003,6 @@ glxWinUnrealizeWindow(WindowPtr pWin)
static GLboolean
glxWinDrawableSwapBuffers(ClientPtr client, __GLXdrawable * base)
{
- HDC dc;
- HWND hwnd;
BOOL ret;
__GLXWinDrawable *draw = (__GLXWinDrawable *) base;
@@ -890,13 +1023,7 @@ glxWinDrawableSwapBuffers(ClientPtr client, __GLXdrawable * base)
assert((draw->drawContext->base.drawPriv == NULL) ||
(draw->drawContext->base.drawPriv == base));
- dc = glxWinMakeDC(draw->drawContext, draw, &dc, &hwnd);
- if (dc == NULL)
- return GL_FALSE;
-
- ret = wglSwapLayerBuffers(dc, WGL_SWAP_MAIN_PLANE);
-
- glxWinReleaseDC(hwnd, dc, draw);
+ ret = SwapBuffers(draw->drawContext->hDC);
if (!ret) {
ErrorF("wglSwapBuffers failed: %s\n", glxWinErrorMessage());
@@ -950,6 +1077,7 @@ glxWinDrawableDestroy(__GLXdrawable * base)
}
((PixmapPtr) glxPriv->base.pDraw)->devPrivate.ptr = glxPriv->pOldBits;
+ glxPriv->base.pDraw->pScreen->DestroyPixmap((PixmapPtr)glxPriv->base.pDraw); /* Decrement reference count since we do not use it any more */
}
GLWIN_DEBUG_MSG("glxWinDestroyDrawable");
@@ -964,13 +1092,11 @@ glxWinCreateDrawable(ClientPtr client,
{
__GLXWinDrawable *glxPriv;
- glxPriv = malloc(sizeof *glxPriv);
+ glxPriv = calloc(1, sizeof *glxPriv);
if (glxPriv == NULL)
return NULL;
- memset(glxPriv, 0, sizeof *glxPriv);
-
if (!__glXDrawableInit
(&glxPriv->base, screen, pDraw, type, glxDrawId, conf)) {
free(glxPriv);
@@ -1040,28 +1166,25 @@ glxWinSetPixelFormat(__GLXWinContext * gc, HDC hdc, int bppOverride,
__GLXconfig *config = gc->base.config;
GLXWinConfig *winConfig = (GLXWinConfig *) config;
- GLWIN_DEBUG_MSG("glxWinSetPixelFormat: pixelFormatIndex %d",
- winConfig->pixelFormatIndex);
- /*
- Normally, we can just use the the pixelFormatIndex corresponding
- to the fbconfig which has been specified by the client
- */
-
- if (!
- ((bppOverride &&
- (bppOverride !=
- (config->redBits + config->greenBits + config->blueBits)))
- || ((config->drawableType & drawableTypeOverride) == 0))) {
- if (!SetPixelFormat(hdc, winConfig->pixelFormatIndex, NULL)) {
- ErrorF("SetPixelFormat error: %s\n", glxWinErrorMessage());
- return FALSE;
+ WindowPtr pWin;
+ __GLXWinDrawable *drawPriv = (__GLXWinDrawable *)gc->base.drawPriv;
+ pWin = (WindowPtr) drawPriv->base.pDraw;
+ {
+ winWindowPriv(pWin);
+ if (pWinPriv->OpenGlWindow)
+ {
+ ErrorF("Not Setting pixel format to %d on hdc %x for window %x (not allowed on windows)\n",winConfig->pixelFormatIndex,hdc,pWinPriv->hWnd);
+ return TRUE; /* Pixel format is already set on this window so it cannot be changed anymore */
}
-
- return TRUE;
}
+ GLWIN_DEBUG_MSG("glxWinSetPixelFormat: pixelFormatIndex %d", winConfig->pixelFormatIndex);
/*
+ Normally, we can just use the the pixelFormatIndex corresponding
+ to the fbconfig which has been specified by the client
+ */
+ /*
However, in certain special cases this pixel format will be incompatible with the
use we are going to put it to, so we need to re-evaluate the pixel format to use:
@@ -1093,8 +1216,10 @@ glxWinSetPixelFormat(__GLXWinContext * gc, HDC hdc, int bppOverride,
return FALSE;
}
+#ifdef _DEBUG
if (glxWinDebugSettings.dumpPFD)
pfdOut(&pfd);
+#endif
if (bppOverride) {
GLWIN_DEBUG_MSG("glxWinSetPixelFormat: Forcing bpp from %d to %d\n",
@@ -1114,6 +1239,7 @@ glxWinSetPixelFormat(__GLXWinContext * gc, HDC hdc, int bppOverride,
("ChoosePixelFormat: chose pixelFormatIndex %d (rather than %d as originally planned)\n",
pixelFormat, winConfig->pixelFormatIndex);
+ ErrorF("Setting pixel format 2 to %d on hdc %x\n",pixelFormat,hdc);
if (!SetPixelFormat(hdc, pixelFormat, &pfd)) {
ErrorF("SetPixelFormat error: %s\n", glxWinErrorMessage());
return FALSE;
@@ -1123,31 +1249,58 @@ glxWinSetPixelFormat(__GLXWinContext * gc, HDC hdc, int bppOverride,
int pixelFormat =
fbConfigToPixelFormatIndex(hdc, gc->base.config,
drawableTypeOverride, winScreen);
- if (pixelFormat == 0) {
- ErrorF("wglChoosePixelFormat error: %s\n", glxWinErrorMessage());
- return FALSE;
- }
+ if (pixelFormat != 0) {
+ GLWIN_DEBUG_MSG("wglChoosePixelFormat: chose pixelFormatIndex %d", pixelFormat);
- GLWIN_DEBUG_MSG("wglChoosePixelFormat: chose pixelFormatIndex %d",
- pixelFormat);
- ErrorF
- ("wglChoosePixelFormat: chose pixelFormatIndex %d (rather than %d as originally planned)\n",
- pixelFormat, winConfig->pixelFormatIndex);
-
- if (!SetPixelFormat(hdc, pixelFormat, NULL)) {
- ErrorF("SetPixelFormat error: %s\n", glxWinErrorMessage());
- return FALSE;
+ ErrorF("Setting pixel format 3 to %d on hdc %x\n",pixelFormat,hdc);
+ if (!SetPixelFormat(hdc, pixelFormat, NULL)) {
+ ErrorF("SetPixelFormat error: %s\n", glxWinErrorMessage());
+ return FALSE;
+ }
+ return TRUE;
+ }
+ else {
+ /* There was an error choose some default for the moment */
+ PIXELFORMATDESCRIPTOR pfd = {
+ sizeof(PIXELFORMATDESCRIPTOR), // size of this pfd
+ 1, // version number
+ PFD_DRAW_TO_WINDOW | // support window
+ PFD_SUPPORT_OPENGL | // support OpenGL
+ PFD_DOUBLEBUFFER, // double buffered
+ PFD_TYPE_RGBA, // RGBA type
+ 24, // 24-bit color depth
+ 0, 0, 0, 0, 0, 0, // color bits ignored
+ 0, // no alpha buffer
+ 0, // shift bit ignored
+ 0, // no accumulation buffer
+ 0, 0, 0, 0, // accum bits ignored
+ 32, // 32-bit z-buffer
+ 0, // no stencil buffer
+ 0, // no auxiliary buffer
+ PFD_MAIN_PLANE, // main layer
+ 0, // reserved
+ 0, 0, 0 // layer masks ignored
+ };
+ int iPixelFormat;
+
+ // get the best available match of pixel format for the device context
+ iPixelFormat = ChoosePixelFormat(hdc, &pfd);
+
+ ErrorF("Setting pixel format 4 to %d on hdc %x\n",iPixelFormat,hdc);
+ // make that the pixel format of the device context
+ if (!SetPixelFormat(hdc, iPixelFormat, &pfd)) {
+ ErrorF("SetPixelFormat error: %s\n", glxWinErrorMessage());
+ return FALSE;
+ }
}
}
-
return TRUE;
}
static HDC
-glxWinMakeDC(__GLXWinContext * gc, __GLXWinDrawable * draw, HDC * hdc,
- HWND * hwnd)
+glxWinMakeDC(__GLXWinContext *gc, __GLXWinDrawable *draw, HWND *hwnd)
{
- *hdc = NULL;
+ HDC hdc = NULL;
*hwnd = NULL;
if (draw == NULL) {
@@ -1174,45 +1327,52 @@ glxWinMakeDC(__GLXWinContext * gc, __GLXWinDrawable * draw, HDC * hdc,
return NULL;
}
- *hdc = GetDC(*hwnd);
-
- if (*hdc == NULL)
- ErrorF("GetDC error: %s\n", glxWinErrorMessage());
+ if (!gc->hDC) {
+ winWindowPriv(pWin);
- /* Check if the hwnd has changed... */
- if (*hwnd != gc->hwnd) {
- if (glxWinDebugSettings.enableTrace)
- GLWIN_DEBUG_HWND(*hwnd);
+ hdc = GetDC(*hwnd);
- GLWIN_TRACE_MSG
- ("for context %p (native ctx %p), hWnd changed from %p to %p",
- gc, gc->ctx, gc->hwnd, *hwnd);
- gc->hwnd = *hwnd;
+ if (hdc == NULL)
+ ErrorF("GetDC error: %s: hwnd %x, gc %p, gc->ctx %p ,gc->hwnd %p\n", glxWinErrorMessage(), *hwnd, gc, gc->ctx, gc->hwnd);
- /* We must select a pixelformat, but SetPixelFormat can only be called once for a window... */
- if (!glxWinSetPixelFormat(gc, *hdc, 0, GLX_WINDOW_BIT)) {
- ErrorF("glxWinSetPixelFormat error: %s\n",
- glxWinErrorMessage());
- ReleaseDC(*hwnd, *hdc);
- *hdc = NULL;
- return NULL;
- }
+ glxWinSetPixelFormat(gc, hdc, 0, GLX_WINDOW_BIT);
+ pWinPriv->OpenGlWindow=TRUE; /* Identify it as an opengl window, also used to check if the pixel format is already set */
+ gc->ctx = wglCreateContext(hdc);
}
+
+#ifdef _DEBUG
+ if (glxWinDebugSettings.enableTrace)
+ GLWIN_DEBUG_HWND(*hwnd);
+
+ GLWIN_TRACE_MSG
+ ("for context %p (native ctx %p), hWnd changed from %p to %p",
+ gc, gc->ctx, gc->hwnd, *hwnd);
+#endif
+ if (gc->hwnd!=*hwnd)
+ ErrorF("Window changed handle from %x to %x\n", gc->hwnd, *hwnd);
+
+ gc->hwnd = *hwnd;
}
break;
case GLX_DRAWABLE_PBUFFER:
{
- *hdc = wglGetPbufferDCARBWrapper(draw->hPbuffer);
+ hdc = wglGetPbufferDCARBWrapper(draw->hPbuffer);
- if (*hdc == NULL)
+ if (hdc == NULL)
ErrorF("GetDC (pbuffer) error: %s\n", glxWinErrorMessage());
+
+ gc->ctx = wglCreateContext(hdc);
}
break;
case GLX_DRAWABLE_PIXMAP:
{
- *hdc = draw->dibDC;
+ hdc = draw->dibDC;
+#ifdef _DEBUG
+ if (glxWinDebugSettings.dumpDC)
+ GLWIN_DEBUG_MSG("Got PIXMAP HDC %p for window %p", hdc, *hwnd);
+#endif
}
break;
@@ -1223,10 +1383,12 @@ glxWinMakeDC(__GLXWinContext * gc, __GLXWinDrawable * draw, HDC * hdc,
}
}
+#ifdef _DEBUG
if (glxWinDebugSettings.dumpDC)
- GLWIN_DEBUG_MSG("Got HDC %p", *hdc);
+ GLWIN_HDC_DEBUG_MSG("Got HDC %p for window %p", hdc, *hwnd);
+#endif
- return *hdc;
+ return hdc;
}
static void
@@ -1269,7 +1431,6 @@ glxWinReleaseDC(HWND hwnd, HDC hdc, __GLXWinDrawable * draw)
static void
glxWinDeferredCreateContext(__GLXWinContext * gc, __GLXWinDrawable * draw)
{
- HDC dc;
HWND hwnd;
GLWIN_DEBUG_MSG
@@ -1302,13 +1463,16 @@ glxWinDeferredCreateContext(__GLXWinContext * gc, __GLXWinDrawable * draw)
case GLX_DRAWABLE_PBUFFER:
{
+ WindowPtr pWin = (WindowPtr) draw->base.pDraw;
if (draw->hPbuffer == NULL) {
__GLXscreen *screen;
glxWinScreen *winScreen;
int pixelFormat;
// XXX: which DC are supposed to use???
- HDC screenDC = GetDC(NULL);
+ ScreenPtr pScreen = pWin->drawable.pScreen;
+ winPrivScreenPtr pWinScreen = winGetScreenPriv(pScreen);
+ HDC screenDC=pWinScreen->hdcScreen;
if (!(gc->base.config->drawableType & GLX_PBUFFER_BIT)) {
ErrorF
@@ -1320,7 +1484,7 @@ glxWinDeferredCreateContext(__GLXWinContext * gc, __GLXWinDrawable * draw)
pixelFormat =
fbConfigToPixelFormatIndex(screenDC, gc->base.config,
- GLX_DRAWABLE_PBUFFER, winScreen);
+ GLX_PBUFFER_BIT, winScreen);
if (pixelFormat == 0) {
ErrorF("wglChoosePixelFormat error: %s\n",
glxWinErrorMessage());
@@ -1331,7 +1495,6 @@ glxWinDeferredCreateContext(__GLXWinContext * gc, __GLXWinDrawable * draw)
wglCreatePbufferARBWrapper(screenDC, pixelFormat,
draw->base.pDraw->width,
draw->base.pDraw->height, NULL);
- ReleaseDC(NULL, screenDC);
if (draw->hPbuffer == NULL) {
ErrorF("wglCreatePbufferARBWrapper error: %s\n",
@@ -1386,6 +1549,8 @@ glxWinDeferredCreateContext(__GLXWinContext * gc, __GLXWinDrawable * draw)
draw->pOldBits = ((PixmapPtr) draw->base.pDraw)->devPrivate.ptr;
((PixmapPtr) draw->base.pDraw)->devPrivate.ptr = pBits;
+ ((PixmapPtr)draw->base.pDraw)->refcnt++; /* Increment reference count to be sure it is not freed before the glxdrawable is destroyed */
+
// Select the DIB into the DC
draw->hOldDIB = SelectObject(draw->dibDC, draw->hDIB);
if (!draw->hOldDIB) {
@@ -1413,11 +1578,12 @@ glxWinDeferredCreateContext(__GLXWinContext * gc, __GLXWinDrawable * draw)
}
}
- dc = glxWinMakeDC(gc, draw, &dc, &hwnd);
- gc->ctx = wglCreateContext(dc);
- glxWinReleaseDC(hwnd, dc, draw);
+ gc->hDC = glxWinMakeDC(gc, draw, &hwnd);
if (gc->ctx == NULL) {
+ glxWinReleaseDC(hwnd, gc->hDC, draw);
+ gc->hDC=0;
+
ErrorF("wglCreateContext error: %s\n", glxWinErrorMessage());
return;
}
@@ -1427,7 +1593,7 @@ glxWinDeferredCreateContext(__GLXWinContext * gc, __GLXWinDrawable * draw)
gc, gc->ctx, draw);
// if the native context was created successfully, shareLists if needed
- if (gc->ctx && gc->shareContext) {
+ if (gc->ctx && gc->shareContext && gc->shareContext->ctx) {
GLWIN_DEBUG_MSG
("glxWinCreateContextReal shareLists with context %p (native ctx %p)",
gc->shareContext, gc->shareContext->ctx);
@@ -1449,34 +1615,25 @@ glxWinContextMakeCurrent(__GLXcontext * base)
{
__GLXWinContext *gc = (__GLXWinContext *) base;
BOOL ret;
- HDC drawDC;
- HDC readDC = NULL;
- __GLXdrawable *drawPriv;
- __GLXdrawable *readPriv = NULL;
- HWND hDrawWnd;
- HWND hReadWnd;
-
- GLWIN_TRACE_MSG("glxWinContextMakeCurrent context %p (native ctx %p)", gc,
- gc->ctx);
+ __GLXWinDrawable *drawPriv;
+
+#ifdef _DEBUG
+ GLWIN_TRACE_MSG("glxWinContextMakeCurrent context %p (native ctx %p)", gc, gc->ctx);
glWinCallDelta();
+#endif
/* Keep a note of the last active context in the drawable */
- drawPriv = gc->base.drawPriv;
- ((__GLXWinDrawable *) drawPriv)->drawContext = gc;
+ drawPriv = (__GLXWinDrawable *)gc->base.drawPriv;
+ drawPriv->drawContext = gc;
if (gc->ctx == NULL) {
- glxWinDeferredCreateContext(gc, (__GLXWinDrawable *) drawPriv);
+ glxWinDeferredCreateContext(gc, drawPriv);
}
+ _glapi_set_dispatch(gc->Dispatch);
if (gc->ctx == NULL) {
ErrorF("glxWinContextMakeCurrent: Native context is NULL\n");
- return FALSE;
- }
-
- drawDC =
- glxWinMakeDC(gc, (__GLXWinDrawable *) drawPriv, &drawDC, &hDrawWnd);
- if (drawDC == NULL) {
- ErrorF("glxWinMakeDC failed for drawDC\n");
+ drawPriv->drawContext = NULL; /* clear last active context because we return error */
return FALSE;
}
@@ -1487,16 +1644,14 @@ glxWinContextMakeCurrent(__GLXcontext * base)
use the wglMakeContextCurrent extension to make the context current drawing
to one DC and reading from the other
*/
- readPriv = gc->base.readPriv;
- readDC =
- glxWinMakeDC(gc, (__GLXWinDrawable *) readPriv, &readDC, &hReadWnd);
- if (readDC == NULL) {
+ gc->hreadDC = glxWinMakeDC(gc, (__GLXWinDrawable *)gc->base.readPriv, &gc->hreadwnd);
+ if (gc->hreadDC == NULL) {
ErrorF("glxWinMakeDC failed for readDC\n");
- glxWinReleaseDC(hDrawWnd, drawDC, (__GLXWinDrawable *) drawPriv);
+ drawPriv->drawContext = NULL; /* clear last active context because we return error */
return FALSE;
}
- ret = wglMakeContextCurrentARBWrapper(drawDC, readDC, gc->ctx);
+ ret = wglMakeContextCurrentARBWrapper(gc->hDC, gc->hreadDC, gc->ctx);
if (!ret) {
ErrorF("wglMakeContextCurrentARBWrapper error: %s\n",
glxWinErrorMessage());
@@ -1504,18 +1659,25 @@ glxWinContextMakeCurrent(__GLXcontext * base)
}
else {
/* Otherwise, just use wglMakeCurrent */
- ret = wglMakeCurrent(drawDC, gc->ctx);
+ if (!gc->hDC) {
+ /* It probably has been release by loseCurrent, so create it again */
+ gc->hDC = glxWinMakeDC(gc, drawPriv, &gc->hwnd);
+ }
+ ret = wglMakeCurrent(gc->hDC, gc->ctx);
if (!ret) {
- ErrorF("wglMakeCurrent error: %s\n", glxWinErrorMessage());
+ DWORD ErrorCode=GetLastError();
+ ErrorF("wglMakeCurrent error: %x dc %p ctx %p\n", ErrorCode,gc->hDC,gc->ctx);
+ if (!ErrorCode) {
+ ErrorF("Error code was 0, assuming no error.\n");
+ ret=TRUE;
+ }
}
}
// apparently make current could fail if the context is current in a different thread,
// but that shouldn't be able to happen in the current server...
-
- glxWinReleaseDC(hDrawWnd, drawDC, (__GLXWinDrawable *) drawPriv);
- if (readDC)
- glxWinReleaseDC(hReadWnd, readDC, (__GLXWinDrawable *) readPriv);
+ if (!ret)
+ drawPriv->drawContext = NULL; /* clear last active context because we return error */
return ret;
}
@@ -1523,25 +1685,34 @@ glxWinContextMakeCurrent(__GLXcontext * base)
static int
glxWinContextLoseCurrent(__GLXcontext * base)
{
- BOOL ret;
+ BOOL ret=TRUE;
__GLXWinContext *gc = (__GLXWinContext *) base;
+ __GLXWinDrawable *drawPriv = (__GLXWinDrawable *)gc->base.drawPriv;
- GLWIN_TRACE_MSG("glxWinContextLoseCurrent context %p (native ctx %p)", gc,
- gc->ctx);
+#ifdef _DEBUG
+ GLWIN_TRACE_MSG("glxWinContextLoseCurrent context %p (native ctx %p)", gc, gc->ctx);
glWinCallDelta();
+#endif
- /*
- An error seems to be reported if we try to make no context current
- if there is already no current context, so avoid doing that...
- */
- if (__glXLastContext != NULL) {
- ret = wglMakeCurrent(NULL, NULL); /* We don't need a DC when setting no current context */
- if (!ret)
- ErrorF("glxWinContextLoseCurrent error: %s\n",
- glxWinErrorMessage());
+ /* Clear the last active context in the drawable */
+ if (drawPriv) drawPriv->drawContext = NULL;
+
+ if (wglGetCurrentContext()==gc->ctx)
+ {
+ /* Only do this when we are sure we are currently the active, otherwise we are deactivating the wrong one (this is happening!!!) */
+ ret = wglMakeCurrent(NULL, NULL);
+ if (!ret)
+ ErrorF("glxWinContextLoseCurrent error: %s\n", glxWinErrorMessage());
+ }
+ else
+ {
+ return FALSE;
}
- return TRUE;
+ base->currentClient=NULL; /* It looks like glx is not doing this */
+ _glapi_set_dispatch(NULL);
+
+ return ret;
}
static int
@@ -1568,27 +1739,35 @@ glxWinContextDestroy(__GLXcontext * base)
__GLXWinContext *gc = (__GLXWinContext *) base;
if (gc != NULL) {
+ __GLXWinDrawable *drawPriv = (__GLXWinDrawable *)gc->base.drawPriv;
+
GLWIN_DEBUG_MSG("GLXcontext %p destroyed (native ctx %p)", base,
gc->ctx);
if (gc->ctx) {
+ BOOL ret;
/* It's bad style to delete the context while it's still current */
if (wglGetCurrentContext() == gc->ctx) {
wglMakeCurrent(NULL, NULL);
}
- {
- BOOL ret = wglDeleteContext(gc->ctx);
-
- if (!ret)
- ErrorF("wglDeleteContext error: %s\n",
- glxWinErrorMessage());
- }
+ ret = wglDeleteContext(gc->ctx);
+ if (!ret)
+ ErrorF("wglDeleteContext error: %s\n", glxWinErrorMessage());
+ if (drawPriv && gc->hDC) glxWinReleaseDC(gc->hwnd, gc->hDC, drawPriv);
+ if (gc->base.readPriv && gc->hreadDC) glxWinReleaseDC(gc->hreadwnd, gc->hreadDC, (__GLXWinDrawable *)gc->base.readPriv);
+ gc->hDC=NULL;
+ gc->hreadDC=NULL;
gc->ctx = NULL;
}
+ /* Clear the last active context in the drawable */
+ if (drawPriv) drawPriv->drawContext = NULL;
+
+ free(gc->Dispatch);
free(gc);
+ _glapi_set_dispatch(NULL);
}
}
@@ -1620,9 +1799,12 @@ glxWinCreateContext(__GLXscreen * screen,
context->base.pGlxScreen = screen;
// actual native GL context creation is deferred until attach()
- context->ctx = NULL;
+ //context->ctx = NULL; already done with memset
context->shareContext = shareContext;
+ context->Dispatch=calloc(sizeof(void*), (sizeof(struct _glapi_table) / sizeof(void *) + MAX_EXTENSION_FUNCS));
+ _glapi_set_dispatch(context->Dispatch);
+
glWinSetupDispatchTable();
GLWIN_DEBUG_MSG("GLXcontext %p created", context);
@@ -1874,8 +2056,10 @@ glxWinCreateConfigs(HDC hdc, glxWinScreen * screen)
break;
}
+#ifdef _DEBUG
if (glxWinDebugSettings.dumpPFD)
pfdOut(&pfd);
+#endif
if (!(pfd.dwFlags & (PFD_DRAW_TO_WINDOW | PFD_DRAW_TO_BITMAP)) ||
!(pfd.dwFlags & PFD_SUPPORT_OPENGL)) {
@@ -2160,7 +2344,10 @@ glxWinCreateConfigsExt(HDC hdc, glxWinScreen * screen)
/* fill in configs */
for (i = 0; i < numConfigs; i++) {
- int values[num_attrs];
+ int sizevalues=num_attrs*sizeof(int);
+ int *values=(int*)_alloca(sizevalues);
+
+ memset(values,0,sizevalues);
c = &(result[i]);
c->base.next = NULL;
diff --git a/xorg-server/hw/xwin/glx/makefile b/xorg-server/hw/xwin/glx/makefile
new file mode 100755
index 000000000..3b0413312
--- /dev/null
+++ b/xorg-server/hw/xwin/glx/makefile
@@ -0,0 +1,43 @@
+LIBRARY=libwinglx
+
+INCLUDES += $(OBJDIR) ..\..\..\glx .. ..\..\..
+DEFINES += GLAPIENTRY=__stdcall _GLAPI_NO_EXPORTS
+
+DEFINES += XWIN_CLIPBOARD
+DEFINES += XWIN_MULTIWINDOW
+DEFINES += XWIN_GLX_WINDOWS
+DEFINES += XWIN_RANDR
+DEFINES += RELOCATE_PROJECTROOT
+INCLUDES += ..\..\..\miext\rootless
+DEFINES += HAVE_XWIN_CONFIG_H PTW32_STATIC_LIB
+
+CSRCS = \
+ winpriv.c \
+ glwrap.c \
+ indirect.c \
+ wgl_ext_api.c
+
+.PHONY: getspecfiles
+
+getspecfiles:
+ del -e wglext.h
+ wget http://www.opengl.org/registry/api/GL/wglext.h
+ del -e glxext.h
+ wget http://www.opengl.org/registry/api/GL/glxext.h
+ del -e glext.h
+ wget http://www.opengl.org/registry/api/GL/glext.h
+ del -e genheaders.py
+ wget --no-check-certificate https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api/genheaders.py
+ del -e reg.py
+ wget --no-check-certificate https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api/reg.py
+ del -e gl.xml
+ wget --no-check-certificate https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api/gl.xml
+ del -e wgl.xml
+ wget --no-check-certificate https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api/wgl.xml
+
+$(OBJDIR)\generated_gl_wrappers.c: gen_gl_wrappers.py gl.xml gen_gl_wrappers.py reg.py
+ $(PYTHON3) gen_gl_wrappers.py -outfile $@ -staticwrappers -dispatchheader ../../../glx/dispatch.h
+
+$(OBJDIR)\generated_wgl_wrappers.c: gen_gl_wrappers.py wgl.xml gen_gl_wrappers.py reg.py
+ $(PYTHON3) gen_gl_wrappers.py -outfile $@ -registry wgl.xml -prefix wgl -preresolve
+
diff --git a/xorg-server/hw/xwin/glx/reg.py b/xorg-server/hw/xwin/glx/reg.py
new file mode 100644
index 000000000..de28323d5
--- /dev/null
+++ b/xorg-server/hw/xwin/glx/reg.py
@@ -0,0 +1,1162 @@
+#!/usr/bin/python3 -i
+#
+# Copyright (c) 2013 The Khronos Group Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and/or associated documentation files (the
+# "Materials"), to deal in the Materials without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Materials, and to
+# permit persons to whom the Materials are furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Materials.
+#
+# THE MATERIALS ARE 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
+# MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+import io,os,re,string,sys
+from lxml import etree
+
+def write( *args, **kwargs ):
+ file = kwargs.pop('file',sys.stdout)
+ end = kwargs.pop( 'end','\n')
+ file.write( ' '.join([str(arg) for arg in args]) )
+ file.write( end )
+
+# noneStr - returns string argument, or "" if argument is None.
+# Used in converting lxml Elements into text.
+# str - string to convert
+def noneStr(str):
+ if (str):
+ return str
+ else:
+ return ""
+
+# matchAPIProfile - returns whether an API and profile
+# being generated matches an element's profile
+# api - string naming the API to match
+# profile - string naming the profile to match
+# elem - Element which (may) have 'api' and 'profile'
+# attributes to match to.
+# If a tag is not present in the Element, the corresponding API
+# or profile always matches.
+# Otherwise, the tag must exactly match the API or profile.
+# Thus, if 'profile' = core:
+# <remove> with no attribute will match
+# <remove profile='core'> will match
+# <remove profile='compatibility'> will not match
+# Possible match conditions:
+# Requested Element
+# Profile Profile
+# --------- --------
+# None None Always matches
+# 'string' None Always matches
+# None 'string' Does not match. Can't generate multiple APIs
+# or profiles, so if an API/profile constraint
+# is present, it must be asked for explicitly.
+# 'string' 'string' Strings must match
+#
+# ** In the future, we will allow regexes for the attributes,
+# not just strings, so that api="^(gl|gles2)" will match. Even
+# this isn't really quite enough, we might prefer something
+# like "gl(core)|gles1(common-lite)".
+def matchAPIProfile(api, profile, elem):
+ """Match a requested API & profile name to a api & profile attributes of an Element"""
+ match = True
+ # Match 'api', if present
+ if ('api' in elem.attrib):
+ if (api == None):
+ raise UserWarning("No API requested, but 'api' attribute is present with value '" +
+ elem.get('api') + "'")
+ elif (api != elem.get('api')):
+ # Requested API doesn't match attribute
+ return False
+ if ('profile' in elem.attrib):
+ if (profile == None):
+ raise UserWarning("No profile requested, but 'profile' attribute is present with value '" +
+ elem.get('profile') + "'")
+ elif (profile != elem.get('profile')):
+ # Requested profile doesn't match attribute
+ return False
+ return True
+
+# BaseInfo - base class for information about a registry feature
+# (type/group/enum/command/API/extension).
+# required - should this feature be defined during header generation
+# (has it been removed by a profile or version)?
+# declared - has this feature been defined already?
+# elem - lxml.etree Element for this feature
+# resetState() - reset required/declared to initial values. Used
+# prior to generating a new API interface.
+class BaseInfo:
+ """Represents the state of a registry feature, used during API generation"""
+ def __init__(self, elem):
+ self.required = False
+ self.declared = False
+ self.elem = elem
+ def resetState(self):
+ self.required = False
+ self.declared = False
+
+# TypeInfo - registry information about a type. No additional state
+# beyond BaseInfo is required.
+class TypeInfo(BaseInfo):
+ """Represents the state of a registry type"""
+ def __init__(self, elem):
+ BaseInfo.__init__(self, elem)
+
+# GroupInfo - registry information about a group of related enums.
+# enums - dictionary of enum names which are in the group
+class GroupInfo(BaseInfo):
+ """Represents the state of a registry enumerant group"""
+ def __init__(self, elem):
+ BaseInfo.__init__(self, elem)
+ self.enums = {}
+
+# EnumInfo - registry information about an enum
+# type - numeric type of the value of the <enum> tag
+# ( '' for GLint, 'u' for GLuint, 'ull' for GLuint64 )
+class EnumInfo(BaseInfo):
+ """Represents the state of a registry enum"""
+ def __init__(self, elem):
+ BaseInfo.__init__(self, elem)
+ self.type = elem.get('type')
+ if (self.type == None):
+ self.type = ''
+
+# CmdInfo - registry information about a command
+# glxtype - type of GLX protocol { None, 'render', 'single', 'vendor' }
+# glxopcode - GLX protocol opcode { None, number }
+# glxequiv - equivalent command at GLX dispatch level { None, string }
+# vecequiv - equivalent vector form of a command taking multiple scalar args
+# { None, string }
+class CmdInfo(BaseInfo):
+ """Represents the state of a registry command"""
+ def __init__(self, elem):
+ BaseInfo.__init__(self, elem)
+ self.glxtype = None
+ self.glxopcode = None
+ self.glxequiv = None
+ self.vecequiv = None
+
+# FeatureInfo - registry information about an API <feature>
+# or <extension>
+# name - feature name string (e.g. 'GL_ARB_multitexture')
+# number - feature version number (e.g. 1.2). <extension>
+# features are unversioned and assigned version number 0.
+# category - category, e.g. VERSION or ARB/KHR/OES/ETC/vendor
+# emit - has this feature been defined already?
+class FeatureInfo(BaseInfo):
+ """Represents the state of an API feature (version/extension)"""
+ def __init__(self, elem):
+ BaseInfo.__init__(self, elem)
+ self.name = elem.get('name')
+ # Determine element category (vendor). Only works
+ # for <extension> elements.
+ if (elem.tag == 'feature'):
+ self.category = 'VERSION'
+ self.number = elem.get('number')
+ else:
+ self.category = self.name.split('_', 2)[1]
+ self.number = "0"
+ self.emit = False
+
+# Primary sort key for regSortFeatures.
+# Sorts by category of the feature name string:
+# Core API features (those defined with a <feature> tag)
+# ARB/KHR/OES (Khronos extensions)
+# other (EXT/vendor extensions)
+def regSortCategoryKey(feature):
+ if (feature.elem.tag == 'feature'):
+ return 0
+ elif (feature.category == 'ARB' or
+ feature.category == 'KHR' or
+ feature.category == 'OES'):
+ return 1
+ else:
+ return 2
+
+# Secondary sort key for regSortFeatures.
+# Sorts by extension name.
+def regSortNameKey(feature):
+ return feature.name
+
+# Tertiary sort key for regSortFeatures.
+# Sorts by feature version number. <extension>
+# elements all have version number "0"
+def regSortNumberKey(feature):
+ return feature.number
+
+# regSortFeatures - default sort procedure for features.
+# Sorts by primary key of feature category,
+# then by feature name within the category,
+# then by version number
+def regSortFeatures(featureList):
+ featureList.sort(key = regSortNumberKey)
+ featureList.sort(key = regSortNameKey)
+ featureList.sort(key = regSortCategoryKey)
+
+# GeneratorOptions - base class for options used during header production
+# These options are target language independent, and used by
+# Registry.apiGen() and by base OutputGenerator objects.
+#
+# Members
+# filename - name of file to generate, or None to write to stdout.
+# apiname - string matching <api> 'apiname' attribute, e.g. 'gl'.
+# profile - string specifying API profile , e.g. 'core', or None.
+# versions - regex matching API versions to process interfaces for.
+# Normally '.*' or '[0-9]\.[0-9]' to match all defined versions.
+# emitversions - regex matching API versions to actually emit
+# interfaces for (though all requested versions are considered
+# when deciding which interfaces to generate). For GL 4.3 glext.h,
+# this might be '1\.[2-5]|[2-4]\.[0-9]'.
+# defaultExtensions - If not None, a string which must in its
+# entirety match the pattern in the "supported" attribute of
+# the <extension>. Defaults to None. Usually the same as apiname.
+# addExtensions - regex matching names of additional extensions
+# to include. Defaults to None.
+# removeExtenions - regex matching names of extensions to
+# remove (after defaultExtensions and addExtensions). Defaults
+# to None.
+# sortProcedure - takes a list of FeatureInfo objects and sorts
+# them in place to a preferred order in the generated output.
+# Default is core API versions, ARB/KHR/OES extensions, all
+# other extensions, alphabetically within each group.
+# The regex patterns can be None or empty, in which case they match
+# nothing.
+class GeneratorOptions:
+ """Represents options during header production from an API registry"""
+ def __init__(self,
+ filename = None,
+ apiname = None,
+ profile = None,
+ versions = '.*',
+ emitversions = '.*',
+ defaultExtensions = None,
+ addExtensions = None,
+ removeExtensions = None,
+ sortProcedure = regSortFeatures):
+ self.filename = filename
+ self.apiname = apiname
+ self.profile = profile
+ self.versions = self.emptyRegex(versions)
+ self.emitversions = self.emptyRegex(emitversions)
+ self.defaultExtensions = defaultExtensions
+ self.addExtensions = self.emptyRegex(addExtensions)
+ self.removeExtensions = self.emptyRegex(removeExtensions)
+ self.sortProcedure = sortProcedure
+ #
+ # Substitute a regular expression which matches no version
+ # or extension names for None or the empty string.
+ def emptyRegex(self,pat):
+ if (pat == None or pat == ''):
+ return '_nomatch_^'
+ else:
+ return pat
+
+# CGeneratorOptions - subclass of GeneratorOptions.
+#
+# Adds options used by COutputGenerator objects during C language header
+# generation.
+#
+# Additional members
+# prefixText - list of strings to prefix generated header with
+# (usually a copyright statement + calling convention macros).
+# protectFile - True if multiple inclusion protection should be
+# generated (based on the filename) around the entire header.
+# protectFeature - True if #ifndef..#endif protection should be
+# generated around a feature interface in the header file.
+# genFuncPointers - True if function pointer typedefs should be
+# generated
+# protectProto - True if #ifdef..#endif protection should be
+# generated around prototype declarations
+# protectProtoStr - #ifdef symbol to use around prototype
+# declarations, if protected
+# apicall - string to use for the function declaration prefix,
+# such as APICALL on Windows.
+# apientry - string to use for the calling convention macro,
+# in typedefs, such as APIENTRY.
+# apientryp - string to use for the calling convention macro
+# in function pointer typedefs, such as APIENTRYP.
+class CGeneratorOptions(GeneratorOptions):
+ """Represents options during C header production from an API registry"""
+ def __init__(self,
+ filename = None,
+ apiname = None,
+ profile = None,
+ versions = '.*',
+ emitversions = '.*',
+ defaultExtensions = None,
+ addExtensions = None,
+ removeExtensions = None,
+ sortProcedure = regSortFeatures,
+ prefixText = "",
+ genFuncPointers = True,
+ protectFile = True,
+ protectFeature = True,
+ protectProto = True,
+ protectProtoStr = True,
+ apicall = '',
+ apientry = '',
+ apientryp = ''):
+ GeneratorOptions.__init__(self, filename, apiname, profile,
+ versions, emitversions, defaultExtensions,
+ addExtensions, removeExtensions, sortProcedure)
+ self.prefixText = prefixText
+ self.genFuncPointers = genFuncPointers
+ self.protectFile = protectFile
+ self.protectFeature = protectFeature
+ self.protectProto = protectProto
+ self.protectProtoStr = protectProtoStr
+ self.apicall = apicall
+ self.apientry = apientry
+ self.apientryp = apientryp
+
+# OutputGenerator - base class for generating API interfaces.
+# Manages basic logic, logging, and output file control
+# Derived classes actually generate formatted output.
+#
+# ---- methods ----
+# OutputGenerator(errFile, warnFile, diagFile)
+# errFile, warnFile, diagFile - file handles to write errors,
+# warnings, diagnostics to. May be None to not write.
+# logMsg(level, *args) - log messages of different categories
+# level - 'error', 'warn', or 'diag'. 'error' will also
+# raise a UserWarning exception
+# *args - print()-style arguments
+# beginFile(genOpts) - start a new interface file
+# genOpts - GeneratorOptions controlling what's generated and how
+# endFile() - finish an interface file, closing it when done
+# beginFeature(interface, emit) - write interface for a feature
+# and tag generated features as having been done.
+# interface - element for the <version> / <extension> to generate
+# emit - actually write to the header only when True
+# endFeature() - finish an interface.
+# genType(typeinfo,name) - generate interface for a type
+# typeinfo - TypeInfo for a type
+# genEnum(enuminfo, name) - generate interface for an enum
+# enuminfo - EnumInfo for an enum
+# name - enum name
+# genCmd(cmdinfo) - generate interface for a command
+# cmdinfo - CmdInfo for a command
+class OutputGenerator:
+ """Generate specified API interfaces in a specific style, such as a C header"""
+ def __init__(self,
+ errFile = sys.stderr,
+ warnFile = sys.stderr,
+ diagFile = sys.stdout):
+ self.outFile = None
+ self.errFile = errFile
+ self.warnFile = warnFile
+ self.diagFile = diagFile
+ # Internal state
+ self.featureName = None
+ self.genOpts = None
+ #
+ # logMsg - write a message of different categories to different
+ # destinations.
+ # level -
+ # 'diag' (diagnostic, voluminous)
+ # 'warn' (warning)
+ # 'error' (fatal error - raises exception after logging)
+ # *args - print()-style arguments to direct to corresponding log
+ def logMsg(self, level, *args):
+ """Log a message at the given level. Can be ignored or log to a file"""
+ if (level == 'error'):
+ strfile = io.StringIO()
+ write('ERROR:', *args, file=strfile)
+ if (self.errFile != None):
+ write(strfile.getvalue(), file=self.errFile)
+ raise UserWarning(strfile.getvalue())
+ elif (level == 'warn'):
+ if (self.warnFile != None):
+ write('WARNING:', *args, file=self.warnFile)
+ elif (level == 'diag'):
+ if (self.diagFile != None):
+ write('DIAG:', *args, file=self.diagFile)
+ else:
+ raise UserWarning(
+ '*** FATAL ERROR in Generator.logMsg: unknown level:' + level)
+ #
+ def beginFile(self, genOpts):
+ self.genOpts = genOpts
+ #
+ # Open specified output file. Not done in constructor since a
+ # Generator can be used without writing to a file.
+ if (self.genOpts.filename != None):
+ self.outFile = open(self.genOpts.filename, 'w')
+ else:
+ self.outFile = sys.stdout
+ def endFile(self):
+ self.errFile and self.errFile.flush()
+ self.warnFile and self.warnFile.flush()
+ self.diagFile and self.diagFile.flush()
+ self.outFile.flush()
+ if (self.outFile != sys.stdout and self.outFile != sys.stderr):
+ self.outFile.close()
+ self.genOpts = None
+ #
+ def beginFeature(self, interface, emit):
+ self.emit = emit
+ self.featureName = interface.get('name')
+ # If there's an additional 'protect' attribute in the feature, save it
+ self.featureExtraProtect = interface.get('protect')
+ def endFeature(self):
+ # Derived classes responsible for emitting feature
+ self.featureName = None
+ self.featureExtraProtect = None
+ #
+ # Type generation
+ def genType(self, typeinfo, name):
+ if (self.featureName == None):
+ raise UserWarning('Attempt to generate type', name,
+ 'when not in feature')
+ #
+ # Enumerant generation
+ def genEnum(self, enuminfo, name):
+ if (self.featureName == None):
+ raise UserWarning('Attempt to generate enum', name,
+ 'when not in feature')
+ #
+ # Command generation
+ def genCmd(self, cmd, name):
+ if (self.featureName == None):
+ raise UserWarning('Attempt to generate command', name,
+ 'when not in feature')
+
+# COutputGenerator - subclass of OutputGenerator.
+# Generates C-language API interfaces.
+#
+# ---- methods ----
+# COutputGenerator(errFile, warnFile, diagFile) - args as for
+# OutputGenerator. Defines additional internal state.
+# makeCDecls(cmd) - return C prototype and function pointer typedef for a
+# <command> Element, as a list of two strings
+# cmd - Element for the <command>
+# newline() - print a newline to the output file (utility function)
+# ---- methods overriding base class ----
+# beginFile(genOpts)
+# endFile()
+# beginFeature(interface, emit)
+# endFeature()
+# genType(typeinfo,name) - generate interface for a type
+# genEnum(enuminfo, name)
+# genCmd(cmdinfo)
+class COutputGenerator(OutputGenerator):
+ """Generate specified API interfaces in a specific style, such as a C header"""
+ def __init__(self,
+ errFile = sys.stderr,
+ warnFile = sys.stderr,
+ diagFile = sys.stdout):
+ OutputGenerator.__init__(self, errFile, warnFile, diagFile)
+ # Internal state - accumulators for different inner block text
+ self.typeBody = ''
+ self.enumBody = ''
+ self.cmdBody = ''
+ #
+ # makeCDecls - return C prototype and function pointer typedef for a
+ # command, as a two-element list of strings.
+ # cmd - Element containing a <command> tag
+ def makeCDecls(self, cmd):
+ """Generate C function pointer typedef for <command> Element"""
+ proto = cmd.find('proto')
+ params = cmd.findall('param')
+ # Begin accumulating prototype and typedef strings
+ pdecl = self.genOpts.apicall
+ tdecl = 'typedef '
+ #
+ # Insert the function return type/name.
+ # For prototypes, add APIENTRY macro before the name
+ # For typedefs, add (APIENTRYP <name>) around the name and
+ # use the PFNGLCMDNAMEPROC nameng convention.
+ # Done by walking the tree for <proto> element by element.
+ # lxml.etree has elem.text followed by (elem[i], elem[i].tail)
+ # for each child element and any following text
+ # Leading text
+ pdecl += noneStr(proto.text)
+ tdecl += noneStr(proto.text)
+ # For each child element, if it's a <name> wrap in appropriate
+ # declaration. Otherwise append its contents and tail contents.
+ for elem in proto:
+ text = noneStr(elem.text)
+ tail = noneStr(elem.tail)
+ if (elem.tag == 'name'):
+ pdecl += self.genOpts.apientry + text + tail
+ tdecl += '(' + self.genOpts.apientryp + 'PFN' + text.upper() + 'PROC' + tail + ')'
+ else:
+ pdecl += text + tail
+ tdecl += text + tail
+ # Now add the parameter declaration list, which is identical
+ # for prototypes and typedefs. Concatenate all the text from
+ # a <param> node without the tags. No tree walking required
+ # since all tags are ignored.
+ n = len(params)
+ paramdecl = ' ('
+ if n > 0:
+ for i in range(0,n):
+ paramdecl += ''.join([t for t in params[i].itertext()])
+ if (i < n - 1):
+ paramdecl += ', '
+ else:
+ paramdecl += 'void'
+ paramdecl += ");\n";
+ return [ pdecl + paramdecl, tdecl + paramdecl ]
+ #
+ def newline(self):
+ write('', file=self.outFile)
+ #
+ def beginFile(self, genOpts):
+ OutputGenerator.beginFile(self, genOpts)
+ # C-specific
+ #
+ # Multiple inclusion protection & C++ wrappers.
+ if (genOpts.protectFile and self.genOpts.filename):
+ headerSym = '__' + re.sub('\.h', '_h_', os.path.basename(self.genOpts.filename))
+ write('#ifndef', headerSym, file=self.outFile)
+ write('#define', headerSym, '1', file=self.outFile)
+ self.newline()
+ write('#ifdef __cplusplus', file=self.outFile)
+ write('extern "C" {', file=self.outFile)
+ write('#endif', file=self.outFile)
+ self.newline()
+ #
+ # User-supplied prefix text, if any (list of strings)
+ if (genOpts.prefixText):
+ for s in genOpts.prefixText:
+ write(s, file=self.outFile)
+ #
+ # Some boilerplate describing what was generated - this
+ # will probably be removed later since the extensions
+ # pattern may be very long.
+ write('/* Generated C header for:', file=self.outFile)
+ write(' * API:', genOpts.apiname, file=self.outFile)
+ if (genOpts.profile):
+ write(' * Profile:', genOpts.profile, file=self.outFile)
+ write(' * Versions considered:', genOpts.versions, file=self.outFile)
+ write(' * Versions emitted:', genOpts.emitversions, file=self.outFile)
+ write(' * Default extensions included:', genOpts.defaultExtensions, file=self.outFile)
+ write(' * Additional extensions included:', genOpts.addExtensions, file=self.outFile)
+ write(' * Extensions removed:', genOpts.removeExtensions, file=self.outFile)
+ write(' */', file=self.outFile)
+ def endFile(self):
+ # C-specific
+ # Finish C++ wrapper and multiple inclusion protection
+ self.newline()
+ write('#ifdef __cplusplus', file=self.outFile)
+ write('}', file=self.outFile)
+ write('#endif', file=self.outFile)
+ if (self.genOpts.protectFile and self.genOpts.filename):
+ self.newline()
+ write('#endif', file=self.outFile)
+ # Finish processing in superclass
+ OutputGenerator.endFile(self)
+ def beginFeature(self, interface, emit):
+ # Start processing in superclass
+ OutputGenerator.beginFeature(self, interface, emit)
+ # C-specific
+ # Accumulate types, enums, function pointer typedefs, end function
+ # prototypes separately for this feature. They're only printed in
+ # endFeature().
+ self.typeBody = ''
+ self.enumBody = ''
+ self.cmdPointerBody = ''
+ self.cmdBody = ''
+ def endFeature(self):
+ # C-specific
+ # Actually write the interface to the output file.
+ if (self.emit):
+ self.newline()
+ if (self.genOpts.protectFeature):
+ write('#ifndef', self.featureName, file=self.outFile)
+ write('#define', self.featureName, '1', file=self.outFile)
+ if (self.typeBody != ''):
+ write(self.typeBody, end='', file=self.outFile)
+ #
+ # Don't add additional protection for derived type declarations,
+ # which may be needed by other features later on.
+ if (self.featureExtraProtect != None):
+ write('#ifdef', self.featureExtraProtect, file=self.outFile)
+ if (self.enumBody != ''):
+ write(self.enumBody, end='', file=self.outFile)
+ if (self.genOpts.genFuncPointers and self.cmdPointerBody != ''):
+ write(self.cmdPointerBody, end='', file=self.outFile)
+ if (self.cmdBody != ''):
+ if (self.genOpts.protectProto):
+ write('#ifdef', self.genOpts.protectProtoStr, file=self.outFile)
+ write(self.cmdBody, end='', file=self.outFile)
+ if (self.genOpts.protectProto):
+ write('#endif', file=self.outFile)
+ if (self.featureExtraProtect != None):
+ write('#endif /*', self.featureExtraProtect, '*/', file=self.outFile)
+ if (self.genOpts.protectFeature):
+ write('#endif /*', self.featureName, '*/', file=self.outFile)
+ # Finish processing in superclass
+ OutputGenerator.endFeature(self)
+ #
+ # Type generation
+ def genType(self, typeinfo, name):
+ OutputGenerator.genType(self, typeinfo, name)
+ #
+ # Replace <apientry /> tags with an APIENTRY-style string
+ # (from self.genOpts). Copy other text through unchanged.
+ # If the resulting text is an empty string, don't emit it.
+ typeElem = typeinfo.elem
+ s = noneStr(typeElem.text)
+ for elem in typeElem:
+ if (elem.tag == 'apientry'):
+ s += self.genOpts.apientry + noneStr(elem.tail)
+ else:
+ s += noneStr(elem.text) + noneStr(elem.tail)
+ if (len(s) > 0):
+ self.typeBody += s + "\n"
+ #
+ # Enumerant generation
+ def genEnum(self, enuminfo, name):
+ OutputGenerator.genEnum(self, enuminfo, name)
+ #
+ # EnumInfo.type is a C value suffix (e.g. u, ull)
+ self.enumBody += '#define ' + name.ljust(33) + ' ' + enuminfo.elem.get('value')
+ #
+ # Handle non-integer 'type' fields by using it as the C value suffix
+ t = enuminfo.elem.get('type')
+ if (t != '' and t != 'i'):
+ self.enumBody += enuminfo.type
+ self.enumBody += "\n"
+ #
+ # Command generation
+ def genCmd(self, cmdinfo, name):
+ OutputGenerator.genCmd(self, cmdinfo, name)
+ #
+ decls = self.makeCDecls(cmdinfo.elem)
+ self.cmdBody += decls[0]
+ if (self.genOpts.genFuncPointers):
+ self.cmdPointerBody += decls[1]
+
+# Registry - object representing an API registry, loaded from an XML file
+# Members
+# tree - ElementTree containing the root <registry>
+# typedict - dictionary of TypeInfo objects keyed by type name
+# groupdict - dictionary of GroupInfo objects keyed by group name
+# enumdict - dictionary of EnumInfo objects keyed by enum name
+# cmddict - dictionary of CmdInfo objects keyed by command name
+# apidict - dictionary of <api> Elements keyed by API name
+# extensions - list of <extension> Elements
+# extdict - dictionary of <extension> Elements keyed by extension name
+# gen - OutputGenerator object used to write headers / messages
+# genOpts - GeneratorOptions object used to control which
+# fetures to write and how to format them
+# emitFeatures - True to actually emit features for a version / extension,
+# or False to just treat them as emitted
+# Public methods
+# loadElementTree(etree) - load registry from specified ElementTree
+# loadFile(filename) - load registry from XML file
+# setGenerator(gen) - OutputGenerator to use
+# parseTree() - parse the registry once loaded & create dictionaries
+# dumpReg(maxlen, filehandle) - diagnostic to dump the dictionaries
+# to specified file handle (default stdout). Truncates type /
+# enum / command elements to maxlen characters (default 80)
+# generator(g) - specify the output generator object
+# apiGen(apiname, genOpts) - generate API headers for the API type
+# and profile specified in genOpts, but only for the versions and
+# extensions specified there.
+# apiReset() - call between calls to apiGen() to reset internal state
+# validateGroups() - call to verify that each <proto> or <param>
+# with a 'group' attribute matches an actual existing group.
+# Private methods
+# addElementInfo(elem,info,infoName,dictionary) - add feature info to dict
+# lookupElementInfo(fname,dictionary) - lookup feature info in dict
+class Registry:
+ """Represents an API registry loaded from XML"""
+ def __init__(self):
+ self.tree = None
+ self.typedict = {}
+ self.groupdict = {}
+ self.enumdict = {}
+ self.cmddict = {}
+ self.apidict = {}
+ self.extensions = []
+ self.extdict = {}
+ # A default output generator, so commands prior to apiGen can report
+ # errors via the generator object.
+ self.gen = OutputGenerator()
+ self.genOpts = None
+ self.emitFeatures = False
+ def loadElementTree(self, tree):
+ """Load ElementTree into a Registry object and parse it"""
+ self.tree = tree
+ self.parseTree()
+ def loadFile(self, file):
+ """Load an API registry XML file into a Registry object and parse it"""
+ self.tree = etree.parse(file)
+ self.parseTree()
+ def setGenerator(self, gen):
+ """Specify output generator object. None restores the default generator"""
+ self.gen = gen
+ # addElementInfo - add information about an element to the
+ # corresponding dictionary
+ # elem - <type>/<group>/<enum>/<command>/<feature>/<extension> Element
+ # info - corresponding {Type|Group|Enum|Cmd|Feature}Info object
+ # infoName - 'type' / 'group' / 'enum' / 'command' / 'feature' / 'extension'
+ # dictionary - self.{type|group|enum|cmd|api|ext}dict
+ # If the Element has an 'api' attribute, the dictionary key is the
+ # tuple (name,api). If not, the key is the name. 'name' is an
+ # attribute of the Element
+ def addElementInfo(self, elem, info, infoName, dictionary):
+ if ('api' in elem.attrib):
+ key = (elem.get('name'),elem.get('api'))
+ else:
+ key = elem.get('name')
+ if key in dictionary:
+ self.gen.logMsg('warn', '*** Attempt to redefine',
+ infoName, 'with key:', key)
+ else:
+ dictionary[key] = info
+ #
+ # lookupElementInfo - find a {Type|Enum|Cmd}Info object by name.
+ # If an object qualified by API name exists, use that.
+ # fname - name of type / enum / command
+ # dictionary - self.{type|enum|cmd}dict
+ def lookupElementInfo(self, fname, dictionary):
+ key = (fname, self.genOpts.apiname)
+ if (key in dictionary):
+ # self.gen.logMsg('diag', 'Found API-specific element for feature', fname)
+ return dictionary[key]
+ elif (fname in dictionary):
+ # self.gen.logMsg('diag', 'Found generic element for feature', fname)
+ return dictionary[fname]
+ else:
+ return None
+ def parseTree(self):
+ """Parse the registry Element, once created"""
+ # This must be the Element for the root <registry>
+ self.reg = self.tree.getroot()
+ #
+ # Create dictionary of registry types from toplevel <types> tags
+ # and add 'name' attribute to each <type> tag (where missing)
+ # based on its <name> element.
+ #
+ # There's usually one <types> block; more are OK
+ # Required <type> attributes: 'name' or nested <name> tag contents
+ self.typedict = {}
+ for type in self.reg.findall('types/type'):
+ # If the <type> doesn't already have a 'name' attribute, set
+ # it from contents of its <name> tag.
+ if (type.get('name') == None):
+ type.attrib['name'] = type.find('name').text
+ self.addElementInfo(type, TypeInfo(type), 'type', self.typedict)
+ #
+ # Create dictionary of registry groups from toplevel <groups> tags.
+ #
+ # There's usually one <groups> block; more are OK.
+ # Required <group> attributes: 'name'
+ self.groupdict = {}
+ for group in self.reg.findall('groups/group'):
+ self.addElementInfo(group, GroupInfo(group), 'group', self.groupdict)
+ #
+ # Create dictionary of registry enums from toplevel <enums> tags
+ #
+ # There are usually many <enums> tags in different namespaces, but
+ # these are functional namespaces of the values, while the actual
+ # enum names all share the dictionary.
+ # Required <enums> attributes: 'name', 'value'
+ self.enumdict = {}
+ for enum in self.reg.findall('enums/enum'):
+ self.addElementInfo(enum, EnumInfo(enum), 'enum', self.enumdict)
+ #
+ # Create dictionary of registry commands from <command> tags
+ # and add 'name' attribute to each <command> tag (where missing)
+ # based on its <proto><name> element.
+ #
+ # There's usually only one <commands> block; more are OK.
+ # Required <command> attributes: 'name' or <proto><name> tag contents
+ self.cmddict = {}
+ for cmd in self.reg.findall('commands/command'):
+ # If the <command> doesn't already have a 'name' attribute, set
+ # it from contents of its <proto><name> tag.
+ if (cmd.get('name') == None):
+ cmd.attrib['name'] = cmd.find('proto/name').text
+ ci = CmdInfo(cmd)
+ self.addElementInfo(cmd, ci, 'command', self.cmddict)
+ #
+ # Create dictionaries of API and extension interfaces
+ # from toplevel <api> and <extension> tags.
+ #
+ self.apidict = {}
+ for feature in self.reg.findall('feature'):
+ ai = FeatureInfo(feature)
+ self.addElementInfo(feature, ai, 'feature', self.apidict)
+ self.extensions = self.reg.findall('extensions/extension')
+ self.extdict = {}
+ for feature in self.extensions:
+ ei = FeatureInfo(feature)
+ self.addElementInfo(feature, ei, 'extension', self.extdict)
+ def dumpReg(self, maxlen = 40, filehandle = sys.stdout):
+ """Dump all the dictionaries constructed from the Registry object"""
+ write('***************************************', file=filehandle)
+ write(' ** Dumping Registry contents **', file=filehandle)
+ write('***************************************', file=filehandle)
+ write('// Types', file=filehandle)
+ for name in self.typedict:
+ tobj = self.typedict[name]
+ write(' Type', name, '->', etree.tostring(tobj.elem)[0:maxlen], file=filehandle)
+ write('// Groups', file=filehandle)
+ for name in self.groupdict:
+ gobj = self.groupdict[name]
+ write(' Group', name, '->', etree.tostring(gobj.elem)[0:maxlen], file=filehandle)
+ write('// Enums', file=filehandle)
+ for name in self.enumdict:
+ eobj = self.enumdict[name]
+ write(' Enum', name, '->', etree.tostring(eobj.elem)[0:maxlen], file=filehandle)
+ write('// Commands', file=filehandle)
+ for name in self.cmddict:
+ cobj = self.cmddict[name]
+ write(' Command', name, '->', etree.tostring(cobj.elem)[0:maxlen], file=filehandle)
+ write('// APIs', file=filehandle)
+ for key in self.apidict:
+ write(' API Version ', key, '->',
+ etree.tostring(self.apidict[key].elem)[0:maxlen], file=filehandle)
+ write('// Extensions', file=filehandle)
+ for key in self.extdict:
+ write(' Extension', key, '->',
+ etree.tostring(self.extdict[key].elem)[0:maxlen], file=filehandle)
+ # write('***************************************', file=filehandle)
+ # write(' ** Dumping XML ElementTree **', file=filehandle)
+ # write('***************************************', file=filehandle)
+ # write(etree.tostring(self.tree.getroot(),pretty_print=True), file=filehandle)
+ #
+ # typename - name of type
+ # required - boolean (to tag features as required or not)
+ def markTypeRequired(self, typename, required):
+ """Require (along with its dependencies) or remove (but not its dependencies) a type"""
+ self.gen.logMsg('diag', '*** tagging type:', typename, '-> required =', required)
+ # Get TypeInfo object for <type> tag corresponding to typename
+ type = self.lookupElementInfo(typename, self.typedict)
+ if (type != None):
+ # Tag required type dependencies as required.
+ # This DOES NOT un-tag dependencies in a <remove> tag.
+ # See comments in markRequired() below for the reason.
+ if (required and ('requires' in type.elem.attrib)):
+ depType = type.elem.get('requires')
+ self.gen.logMsg('diag', '*** Generating dependent type',
+ depType, 'for type', typename)
+ self.markTypeRequired(depType, required)
+ type.required = required
+ else:
+ self.gen.logMsg('warn', '*** type:', typename , 'IS NOT DEFINED')
+ #
+ # features - Element for <require> or <remove> tag
+ # required - boolean (to tag features as required or not)
+ def markRequired(self, features, required):
+ """Require or remove features specified in the Element"""
+ self.gen.logMsg('diag', '*** markRequired (features = <too long to print>, required =', required, ')')
+ # Loop over types, enums, and commands in the tag
+ # @@ It would be possible to respect 'api' and 'profile' attributes
+ # in individual features, but that's not done yet.
+ for typeElem in features.findall('type'):
+ self.markTypeRequired(typeElem.get('name'), required)
+ for enumElem in features.findall('enum'):
+ name = enumElem.get('name')
+ self.gen.logMsg('diag', '*** tagging enum:', name, '-> required =', required)
+ enum = self.lookupElementInfo(name, self.enumdict)
+ if (enum != None):
+ enum.required = required
+ else:
+ self.gen.logMsg('warn', '*** enum:', name , 'IS NOT DEFINED')
+ for cmdElem in features.findall('command'):
+ name = cmdElem.get('name')
+ self.gen.logMsg('diag', '*** tagging command:', name, '-> required =', required)
+ cmd = self.lookupElementInfo(name, self.cmddict)
+ if (cmd != None):
+ cmd.required = required
+ # Tag all parameter types of this command as required.
+ # This DOES NOT remove types of commands in a <remove>
+ # tag, because many other commands may use the same type.
+ # We could be more clever and reference count types,
+ # instead of using a boolean.
+ if (required):
+ # Look for <ptype> in entire <command> tree,
+ # not just immediate children
+ for ptype in cmd.elem.findall('.//ptype'):
+ self.gen.logMsg('diag', '*** markRequired: command implicitly requires dependent type', ptype.text)
+ self.markTypeRequired(ptype.text, required)
+ else:
+ self.gen.logMsg('warn', '*** command:', name, 'IS NOT DEFINED')
+ #
+ # interface - Element for <version> or <extension>, containing
+ # <require> and <remove> tags
+ # api - string specifying API name being generated
+ # profile - string specifying API profile being generated
+ def requireAndRemoveFeatures(self, interface, api, profile):
+ """Process <recquire> and <remove> tags for a <version> or <extension>"""
+ # <require> marks things that are required by this version/profile
+ for feature in interface.findall('require'):
+ if (matchAPIProfile(api, profile, feature)):
+ self.markRequired(feature,True)
+ # <remove> marks things that are removed by this version/profile
+ for feature in interface.findall('remove'):
+ if (matchAPIProfile(api, profile, feature)):
+ self.markRequired(feature,False)
+ #
+ # generateFeature - generate a single type / enum / command,
+ # and all its dependencies as needed.
+ # fname - name of feature (<type>/<enum>/<command>
+ # ftype - type of feature, 'type' | 'enum' | 'command'
+ # dictionary - of *Info objects - self.{type|enum|cmd}dict
+ # genProc - bound function pointer for self.gen.gen{Type|Enum|Cmd}
+ def generateFeature(self, fname, ftype, dictionary, genProc):
+ f = self.lookupElementInfo(fname, dictionary)
+ if (f == None):
+ # No such feature. This is an error, but reported earlier
+ self.gen.logMsg('diag', '*** No entry found for feature', fname,
+ 'returning!')
+ return
+ #
+ # If feature isn't required, or has already been declared, return
+ if (not f.required):
+ self.gen.logMsg('diag', '*** Skipping', ftype, fname, '(not required)')
+ return
+ if (f.declared):
+ self.gen.logMsg('diag', '*** Skipping', ftype, fname, '(already declared)')
+ return
+ #
+ # Pull in dependent type declaration(s) of the feature.
+ # For types, there may be one in the 'required' attribute of the element
+ # For commands, there may be many in <ptype> tags within the element
+ # For enums, no dependencies are allowed (though perhasps if you
+ # have a uint64 enum, it should require GLuint64)
+ if (ftype == 'type'):
+ if ('requires' in f.elem.attrib):
+ depname = f.elem.get('requires')
+ self.gen.logMsg('diag', '*** Generating required dependent type',
+ depname)
+ self.generateFeature(depname, 'type', self.typedict,
+ self.gen.genType)
+ elif (ftype == 'command'):
+ for ptype in f.elem.findall('.//ptype'):
+ depname = ptype.text
+ self.gen.logMsg('diag', '*** Generating required parameter type',
+ depname)
+ self.generateFeature(depname, 'type', self.typedict,
+ self.gen.genType)
+ #
+ # Actually generate the type only if emitting declarations
+ if self.emitFeatures:
+ self.gen.logMsg('diag', '*** Emitting', ftype, 'decl for', fname)
+ genProc(f, fname)
+ else:
+ self.gen.logMsg('diag', '*** Skipping', ftype, fname,
+ '(not emitting this feature)')
+ # Always mark feature declared, as though actually emitted
+ f.declared = True
+ #
+ # generateRequiredInterface - generate all interfaces required
+ # by an API version or extension
+ # interface - Element for <version> or <extension>
+ def generateRequiredInterface(self, interface):
+ """Generate required C interface for specified API version/extension"""
+ #
+ # Loop over all features inside all <require> tags.
+ # <remove> tags are ignored (handled in pass 1).
+ for features in interface.findall('require'):
+ for t in features.findall('type'):
+ self.generateFeature(t.get('name'), 'type', self.typedict,
+ self.gen.genType)
+ for e in features.findall('enum'):
+ self.generateFeature(e.get('name'), 'enum', self.enumdict,
+ self.gen.genEnum)
+ for c in features.findall('command'):
+ self.generateFeature(c.get('name'), 'command', self.cmddict,
+ self.gen.genCmd)
+ #
+ # apiGen(genOpts) - generate interface for specified versions
+ # genOpts - GeneratorOptions object with parameters used
+ # by the Generator object.
+ def apiGen(self, genOpts):
+ """Generate interfaces for the specified API type and range of versions"""
+ #
+ self.gen.logMsg('diag', '*******************************************')
+ self.gen.logMsg('diag', ' Registry.apiGen file:', genOpts.filename,
+ 'api:', genOpts.apiname,
+ 'profile:', genOpts.profile)
+ self.gen.logMsg('diag', '*******************************************')
+ #
+ self.genOpts = genOpts
+ # Reset required/declared flags for all features
+ self.apiReset()
+ #
+ # Compile regexps used to select versions & extensions
+ regVersions = re.compile(self.genOpts.versions)
+ regEmitVersions = re.compile(self.genOpts.emitversions)
+ regAddExtensions = re.compile(self.genOpts.addExtensions)
+ regRemoveExtensions = re.compile(self.genOpts.removeExtensions)
+ #
+ # Get all matching API versions & add to list of FeatureInfo
+ features = []
+ apiMatch = False
+ for key in self.apidict:
+ fi = self.apidict[key]
+ api = fi.elem.get('api')
+ if (api == self.genOpts.apiname):
+ apiMatch = True
+ if (regVersions.match(fi.number)):
+ # Matches API & version #s being generated. Mark for
+ # emission and add to the features[] list .
+ # @@ Could use 'declared' instead of 'emit'?
+ fi.emit = (regEmitVersions.match(fi.number) != None)
+ features.append(fi)
+ if (not fi.emit):
+ self.gen.logMsg('diag', '*** NOT tagging feature api =', api,
+ 'name =', fi.name, 'number =', fi.number,
+ 'for emission (does not match emitversions pattern)')
+ else:
+ self.gen.logMsg('diag', '*** NOT including feature api =', api,
+ 'name =', fi.name, 'number =', fi.number,
+ '(does not match requested versions)')
+ else:
+ self.gen.logMsg('diag', '*** NOT including feature api =', api,
+ 'name =', fi.name,
+ '(does not match requested API)')
+ if (not apiMatch):
+ self.gen.logMsg('warn', '*** No matching API versions found!')
+ #
+ # Get all matching extensions & add to the list.
+ # Start with extensions tagged with 'api' pattern matching the API
+ # being generated. Add extensions matching the pattern specified in
+ # regExtensions, then remove extensions matching the pattern
+ # specified in regRemoveExtensions
+ for key in self.extdict:
+ ei = self.extdict[key]
+ extName = ei.name
+ include = False
+ #
+ # Include extension if defaultExtensions is not None and if the
+ # 'supported' attribute matches defaultExtensions. The regexp in
+ # 'supported' must exactly match defaultExtensions, so bracket
+ # it with ^(pat)$.
+ pat = '^(' + ei.elem.get('supported') + ')$'
+ if (self.genOpts.defaultExtensions and
+ re.match(pat, self.genOpts.defaultExtensions)):
+ self.gen.logMsg('diag', '*** Including extension',
+ extName, "(defaultExtensions matches the 'supported' attribute)")
+ include = True
+ #
+ # Include additional extensions if the extension name matches
+ # the regexp specified in the generator options. This allows
+ # forcing extensions into an interface even if they're not
+ # tagged appropriately in the registry.
+ if (regAddExtensions.match(extName) != None):
+ self.gen.logMsg('diag', '*** Including extension',
+ extName, '(matches explicitly requested extensions to add)')
+ include = True
+ # Remove extensions if the name matches the regexp specified
+ # in generator options. This allows forcing removal of
+ # extensions from an interface even if they're tagged that
+ # way in the registry.
+ if (regRemoveExtensions.match(extName) != None):
+ self.gen.logMsg('diag', '*** Removing extension',
+ extName, '(matches explicitly requested extensions to remove)')
+ include = False
+ #
+ # If the extension is to be included, add it to the
+ # extension features list.
+ if (include):
+ ei.emit = True
+ features.append(ei)
+ else:
+ self.gen.logMsg('diag', '*** NOT including extension',
+ extName, '(does not match api attribute or explicitly requested extensions)')
+ #
+ # Sort the extension features list, if a sort procedure is defined
+ if (self.genOpts.sortProcedure):
+ self.genOpts.sortProcedure(features)
+ #
+ # Pass 1: loop over requested API versions and extensions tagging
+ # types/commands/features as required (in an <require> block) or no
+ # longer required (in an <exclude> block). It is possible to remove
+ # a feature in one version and restore it later by requiring it in
+ # a later version.
+ # If a profile other than 'None' is being generated, it must
+ # match the profile attribute (if any) of the <require> and
+ # <remove> tags.
+ self.gen.logMsg('diag', '*** PASS 1: TAG FEATURES ********************************************')
+ for f in features:
+ self.gen.logMsg('diag', '*** PASS 1: Tagging required and removed features for',
+ f.name)
+ self.requireAndRemoveFeatures(f.elem, self.genOpts.apiname, self.genOpts.profile)
+ #
+ # Pass 2: loop over specified API versions and extensions printing
+ # declarations for required things which haven't already been
+ # generated.
+ self.gen.logMsg('diag', '*** PASS 2: GENERATE INTERFACES FOR FEATURES ************************')
+ self.gen.beginFile(self.genOpts)
+ for f in features:
+ self.gen.logMsg('diag', '*** PASS 2: Generating interface for',
+ f.name)
+ emit = self.emitFeatures = f.emit
+ if (not emit):
+ self.gen.logMsg('diag', '*** PASS 2: NOT declaring feature',
+ f.elem.get('name'), 'because it is not tagged for emission')
+ # Generate the interface (or just tag its elements as having been
+ # emitted, if they haven't been).
+ self.gen.beginFeature(f.elem, emit)
+ self.generateRequiredInterface(f.elem)
+ self.gen.endFeature()
+ self.gen.endFile()
+ #
+ # apiReset - use between apiGen() calls to reset internal state
+ #
+ def apiReset(self):
+ """Reset type/enum/command dictionaries before generating another API"""
+ for type in self.typedict:
+ self.typedict[type].resetState()
+ for enum in self.enumdict:
+ self.enumdict[enum].resetState()
+ for cmd in self.cmddict:
+ self.cmddict[cmd].resetState()
+ for cmd in self.apidict:
+ self.apidict[cmd].resetState()
+ #
+ # validateGroups - check that group= attributes match actual groups
+ #
+ def validateGroups(self):
+ """Validate group= attributes on <param> and <proto> tags"""
+ # Keep track of group names not in <group> tags
+ badGroup = {}
+ self.gen.logMsg('diag', '*** VALIDATING GROUP ATTRIBUTES ***')
+ for cmd in self.reg.findall('commands/command'):
+ proto = cmd.find('proto')
+ funcname = cmd.find('proto/name').text
+ if ('group' in proto.attrib.keys()):
+ group = proto.get('group')
+ # self.gen.logMsg('diag', '*** Command ', funcname, ' has return group ', group)
+ if (group not in self.groupdict.keys()):
+ # self.gen.logMsg('diag', '*** Command ', funcname, ' has UNKNOWN return group ', group)
+ if (group not in badGroup.keys()):
+ badGroup[group] = 1
+ else:
+ badGroup[group] = badGroup[group] + 1
+ for param in cmd.findall('param'):
+ pname = param.find('name')
+ if (pname != None):
+ pname = pname.text
+ else:
+ pname = type.get('name')
+ if ('group' in param.attrib.keys()):
+ group = param.get('group')
+ if (group not in self.groupdict.keys()):
+ # self.gen.logMsg('diag', '*** Command ', funcname, ' param ', pname, ' has UNKNOWN group ', group)
+ if (group not in badGroup.keys()):
+ badGroup[group] = 1
+ else:
+ badGroup[group] = badGroup[group] + 1
+ if (len(badGroup.keys()) > 0):
+ self.gen.logMsg('diag', '*** SUMMARY OF UNRECOGNIZED GROUPS ***')
+ for key in sorted(badGroup.keys()):
+ self.gen.logMsg('diag', ' ', key, ' occurred ', badGroup[key], ' times')
diff --git a/xorg-server/hw/xwin/glx/simpledib.c b/xorg-server/hw/xwin/glx/simpledib.c
new file mode 100644
index 000000000..f491e2857
--- /dev/null
+++ b/xorg-server/hw/xwin/glx/simpledib.c
@@ -0,0 +1,675 @@
+/*
+** Simple example of rendering to a Windows DIB (Device Independent Bitmap)
+*/
+#include <windows.h>
+#include <math.h>
+#include <GL/gl.h>
+
+#if !defined(M_PI)
+#define M_PI 3.14159265F
+#endif
+
+char *className = "OpenGL";
+char *windowName = "Simple DIB Example";
+int winX = 0, winY = 0;
+int winWidth = 1024, winHeight = 1024;
+
+HDC hDC;
+HDC hDCFrontBuffer;
+HGLRC hGLRC;
+HPALETTE hPalette;
+HBITMAP hBitmap, hOldBitmap;
+
+void (*idleFunc)(void);
+
+BOOL colorIndexMode = FALSE;
+BOOL doubleBuffered = FALSE;
+BOOL renderToDIB = TRUE;
+
+/* Struct used to manage color ramps */
+struct colorIndexState {
+ GLfloat amb[3]; /* ambient color / bottom of ramp */
+ GLfloat diff[3]; /* diffuse color / middle of ramp */
+ GLfloat spec[3]; /* specular color / top of ramp */
+ GLfloat ratio; /* ratio of diffuse to specular in ramp */
+ GLint indexes[3]; /* where ramp was placed in palette */
+};
+
+/*
+** Each entry in this array corresponds to a color ramp in the
+** palette. The indexes member of each struct is updated to
+** reflect the placement of the color ramp in the palette.
+*/
+#define NUM_COLORS (sizeof(colors) / sizeof(colors[0]))
+struct colorIndexState colors[] = {
+ {
+ { 0.0F, 0.0F, 0.0F },
+ { 0.1F, 0.6F, 0.3F },
+ { 1.0F, 1.0F, 1.0F },
+ 0.75F, { 0, 0, 0 },
+ },
+ {
+ { 0.0F, 0.0F, 0.0F },
+ { 0.0F, 0.2F, 0.5F },
+ { 1.0F, 1.0F, 1.0F },
+
+ 0.75F, { 0, 0, 0 },
+ },
+ {
+ { 0.0F, 0.05F, 0.05F },
+ { 0.6F, 0.0F, 0.8F },
+ { 1.0F, 1.0F, 1.0F },
+ 0.75F, { 0, 0, 0 },
+ },
+};
+
+void
+drawTorus(void)
+{
+ int numMajor = 32;
+ int numMinor = 24;
+ float majorRadius = 0.6F;
+ float minorRadius = 0.2F;
+ double majorStep = 2.0F*M_PI / numMajor;
+ double minorStep = 2.0F*M_PI / numMinor;
+ int i, j;
+
+ for (i=0; i<numMajor; ++i) {
+ double a0 = i * majorStep;
+ double a1 = a0 + majorStep;
+ GLfloat x0 = (GLfloat) cos(a0);
+ GLfloat y0 = (GLfloat) sin(a0);
+ GLfloat x1 = (GLfloat) cos(a1);
+ GLfloat y1 = (GLfloat) sin(a1);
+
+ if (i & 1) {
+ glColor3fv(colors[0].diff);
+ glMaterialiv(GL_FRONT, GL_COLOR_INDEXES, colors[0].indexes);
+ } else {
+ glColor3fv(colors[1].diff);
+ glMaterialiv(GL_FRONT, GL_COLOR_INDEXES, colors[1].indexes);
+ }
+
+ glBegin(GL_TRIANGLE_STRIP);
+ for (j=0; j<=numMinor; ++j) {
+ double b = j * minorStep;
+ GLfloat c = (GLfloat) cos(b);
+ GLfloat r = minorRadius * c + majorRadius;
+ GLfloat z = minorRadius * (GLfloat) sin(b);
+
+ glNormal3f(x0*c, y0*c, z/minorRadius);
+ glVertex3f(x0*r, y0*r, z);
+
+ glNormal3f(x1*c, y1*c, z/minorRadius);
+ glVertex3f(x1*r, y1*r, z);
+ }
+ glEnd();
+ }
+}
+
+/*****************************************************************/
+
+void
+setProjection(void)
+{
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ /*
+ ** Preserve the aspect ratio of objects in the scene.
+ */
+ if (winWidth > winHeight) {
+ GLfloat aspect = (GLfloat) winWidth / (GLfloat) winHeight;
+ glFrustum(-0.5F*aspect, 0.5F*aspect, -0.5F, 0.5F, 1.0F, 3.0F);
+ } else {
+ GLfloat aspect = (GLfloat) winHeight / (GLfloat) winWidth;
+ glFrustum(-0.5F, 0.5F, -0.5F*aspect, 0.5F*aspect, 1.0F, 3.0F);
+ }
+ glMatrixMode(GL_MODELVIEW);
+}
+
+void
+init(void)
+{
+ GLfloat matShine = 20.00F;
+ GLfloat light0Pos[4] = { 0.70F, 0.70F, 1.25F, 0.00F };
+
+ glClearColor(colors[2].diff[0], colors[2].diff[1], colors[2].diff[2], 1.0F);
+ glClearIndex((GLfloat) colors[2].indexes[1]);
+
+ setProjection();
+ glTranslatef(0.0F, 0.0F, -2.0F);
+
+ glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, matShine);
+ glLightfv(GL_LIGHT0, GL_POSITION, light0Pos);
+ glEnable(GL_LIGHT0);
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_DEPTH_TEST);
+
+ if (!colorIndexMode) {
+ glEnable(GL_COLOR_MATERIAL);
+ }
+}
+
+void
+doRedraw(void)
+{
+ static GLfloat x, y, z;
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+ glRotatef(x, 1.0F, 0.0F, 0.0F);
+ glRotatef(y, 0.0F, 1.0F, 0.0F);
+ glRotatef(z, 0.0F, 0.0F, 1.0F);
+
+ drawTorus();
+
+ glPopMatrix();
+
+ if (renderToDIB) {
+ glFinish();
+ BitBlt(hDCFrontBuffer, /*winWidth/4, winHeight/4, winWidth/2, winHeight/2,*/0,0,winWidth, winHeight, hDC, 0, 0, SRCCOPY);
+ GdiFlush();
+ } else {
+ SwapBuffers(hDC);
+ }
+
+ x += 5.0F;
+ if (x > 360.0F) x -= 360.0F;
+ y += 7.0F;
+ if (y > 360.0F) y -= 360.0F;
+ z += 9.0F;
+ if (z > 360.0F) z -= 360.0F;
+}
+
+void
+redraw(void)
+{
+ idleFunc = doRedraw;
+}
+
+void
+resize(void)
+{
+ setProjection();
+ glViewport(0, 0, winWidth, winHeight /*winWidth/2, winHeight/2*/);
+}
+
+/*****************************************************************/
+
+void
+setupDIB(HDC hDC)
+{
+ BITMAPINFO *bmInfo;
+ BITMAPINFOHEADER *bmHeader;
+ UINT usage;
+ VOID *base;
+ int bmiSize;
+ int bitsPerPixel;
+
+ bmiSize = sizeof(*bmInfo);
+ bitsPerPixel = GetDeviceCaps(hDC, BITSPIXEL);
+
+ switch (bitsPerPixel) {
+ case 8:
+ /* bmiColors is 256 WORD palette indices */
+ bmiSize += (256 * sizeof(WORD)) - sizeof(RGBQUAD);
+ break;
+ case 16:
+ /* bmiColors is 3 WORD component masks */
+ bmiSize += (3 * sizeof(DWORD)) - sizeof(RGBQUAD);
+ break;
+ case 24:
+ case 32:
+ default:
+ /* bmiColors not used */
+ break;
+ }
+
+ bmInfo = (BITMAPINFO *) calloc(1, bmiSize);
+ bmHeader = &bmInfo->bmiHeader;
+
+ bmHeader->biSize = sizeof(*bmHeader);
+ bmHeader->biWidth = winWidth /* /2 */;
+ bmHeader->biHeight = winHeight /* /2 */;
+ bmHeader->biPlanes = 1; /* must be 1 */
+ bmHeader->biBitCount = bitsPerPixel;
+ bmHeader->biXPelsPerMeter = 0;
+ bmHeader->biYPelsPerMeter = 0;
+ bmHeader->biClrUsed = 0; /* all are used */
+ bmHeader->biClrImportant = 0; /* all are important */
+
+ switch (bitsPerPixel) {
+ case 8:
+ bmHeader->biCompression = BI_RGB;
+ bmHeader->biSizeImage = 0;
+ usage = DIB_PAL_COLORS;
+ /* bmiColors is 256 WORD palette indices */
+ {
+ WORD *palIndex = (WORD *) &bmInfo->bmiColors[0];
+ int i;
+
+ for (i=0; i<256; i++) {
+ palIndex[i] = i;
+ }
+ }
+ break;
+ case 16:
+ bmHeader->biCompression = BI_RGB;
+ bmHeader->biSizeImage = 0;
+ usage = DIB_RGB_COLORS;
+ /* bmiColors is 3 WORD component masks */
+ {
+ DWORD *compMask = (DWORD *) &bmInfo->bmiColors[0];
+
+ compMask[0] = 0xF800;
+ compMask[1] = 0x07E0;
+ compMask[2] = 0x001F;
+ }
+ break;
+ case 24:
+ case 32:
+ default:
+ bmHeader->biCompression = BI_RGB;
+ bmHeader->biSizeImage = 0;
+ usage = DIB_RGB_COLORS;
+ /* bmiColors not used */
+ break;
+ }
+
+ hBitmap = CreateDIBSection(hDC, bmInfo, usage, &base, NULL, 0);
+ if (hBitmap == NULL) {
+ (void) MessageBox(WindowFromDC(hDC),
+ "Failed to create DIBSection.",
+ "OpenGL application error",
+ MB_ICONERROR | MB_OK);
+ exit(1);
+ }
+
+ hOldBitmap = SelectObject(hDC, hBitmap);
+
+ free(bmInfo);
+}
+
+void
+resizeDIB(HDC hDC)
+{
+ SelectObject(hDC, hOldBitmap);
+ DeleteObject(hBitmap);
+ setupDIB(hDC);
+}
+
+void
+setupPalette(HDC hDC)
+{
+ PIXELFORMATDESCRIPTOR pfd;
+ LOGPALETTE* pPal;
+ int pixelFormat = GetPixelFormat(hDC);
+ int paletteSize;
+
+ DescribePixelFormat(hDC, pixelFormat, sizeof(PIXELFORMATDESCRIPTOR), &pfd);
+
+ /*
+ ** Determine if a palette is needed and if so what size.
+ */
+ if (pfd.dwFlags & PFD_NEED_PALETTE) {
+ paletteSize = 1 << pfd.cColorBits;
+ } else if (pfd.iPixelType == PFD_TYPE_COLORINDEX) {
+ paletteSize = 4096;
+ } else {
+ return;
+ }
+
+ pPal = (LOGPALETTE*)
+ malloc(sizeof(LOGPALETTE) + paletteSize * sizeof(PALETTEENTRY));
+ pPal->palVersion = 0x300;
+ pPal->palNumEntries = paletteSize;
+
+ if (pfd.iPixelType == PFD_TYPE_RGBA) {
+ /*
+ ** Fill the logical paletee with RGB color ramps
+ */
+ int redMask = (1 << pfd.cRedBits) - 1;
+ int greenMask = (1 << pfd.cGreenBits) - 1;
+ int blueMask = (1 << pfd.cBlueBits) - 1;
+ int i;
+
+ for (i=0; i<paletteSize; ++i) {
+ pPal->palPalEntry[i].peRed =
+ (((i >> pfd.cRedShift) & redMask) * 255) / redMask;
+ pPal->palPalEntry[i].peGreen =
+ (((i >> pfd.cGreenShift) & greenMask) * 255) / greenMask;
+ pPal->palPalEntry[i].peBlue =
+ (((i >> pfd.cBlueShift) & blueMask) * 255) / blueMask;
+ pPal->palPalEntry[i].peFlags = 0;
+ }
+ } else {
+ /*
+ ** Fill the logical palette with color ramps.
+ **
+ ** Set up the logical palette so that it can be realized
+ ** into the system palette as an identity palette.
+ **
+ ** 1) The default static entries should be present and at the right
+ ** location. The easiest way to do this is to grab them from
+ ** the current system palette.
+ **
+ ** 2) All non-static entries should be initialized to unique values.
+ ** The easiest way to do this is to ensure that all of the non-static
+ ** entries have the PC_NOCOLLAPSE flag bit set.
+ */
+ int numRamps = NUM_COLORS;
+ int rampSize = (paletteSize - 20) / numRamps;
+ int extra = (paletteSize - 20) - (numRamps * rampSize);
+ int i, r;
+
+ /*
+ ** Initialize static entries by copying them from the
+ ** current system palette.
+ */
+ GetSystemPaletteEntries(hDC, 0, paletteSize, &pPal->palPalEntry[0]);
+
+ /*
+ ** Fill in non-static entries with desired colors.
+ */
+ for (r=0; r<numRamps; ++r) {
+ int rampBase = r * rampSize + 10;
+ PALETTEENTRY *pe = &pPal->palPalEntry[rampBase];
+ int diffSize = (int) (rampSize * colors[r].ratio);
+ int specSize = rampSize - diffSize;
+
+ for (i=0; i<rampSize; ++i) {
+ GLfloat *c0, *c1;
+ GLint a;
+
+ if (i < diffSize) {
+ c0 = colors[r].amb;
+ c1 = colors[r].diff;
+ a = (i * 255) / (diffSize - 1);
+ } else {
+ c0 = colors[r].diff;
+ c1 = colors[r].spec;
+ a = ((i - diffSize) * 255) / (specSize - 1);
+ }
+
+ pe[i].peRed = (BYTE) (a * (c1[0] - c0[0]) + 255 * c0[0]);
+ pe[i].peGreen = (BYTE) (a * (c1[1] - c0[1]) + 255 * c0[1]);
+ pe[i].peBlue = (BYTE) (a * (c1[2] - c0[2]) + 255 * c0[2]);
+ pe[i].peFlags = PC_NOCOLLAPSE;
+ }
+
+ colors[r].indexes[0] = rampBase;
+ colors[r].indexes[1] = rampBase + (diffSize-1);
+ colors[r].indexes[2] = rampBase + (rampSize-1);
+ }
+
+ /*
+ ** Initialize any remaining non-static entries.
+ */
+ for (i=0; i<extra; ++i) {
+ int index = numRamps*rampSize+10+i;
+ PALETTEENTRY *pe = &pPal->palPalEntry[index];
+
+ pe->peRed = (BYTE) 0;
+ pe->peGreen = (BYTE) 0;
+ pe->peBlue = (BYTE) 0;
+ pe->peFlags = PC_NOCOLLAPSE;
+ }
+ }
+
+ hPalette = CreatePalette(pPal);
+ free(pPal);
+
+ if (hPalette) {
+ SelectPalette(hDC, hPalette, FALSE);
+ RealizePalette(hDC);
+ }
+}
+
+void
+setupPixelFormat(HDC hDC)
+{
+ PIXELFORMATDESCRIPTOR pfd = {
+ sizeof(PIXELFORMATDESCRIPTOR), /* size of this pfd */
+ 1, /* version num */
+ PFD_SUPPORT_OPENGL, /* support OpenGL */
+ 0, /* pixel type */
+ 0, /* 8-bit color depth */
+ 0, 0, 0, 0, 0, 0, /* color bits (ignored) */
+ 0, /* no alpha buffer */
+ 0, /* alpha bits (ignored) */
+ 0, /* no accumulation buffer */
+ 0, 0, 0, 0, /* accum bits (ignored) */
+ 16, /* depth buffer */
+ 0, /* no stencil buffer */
+ 0, /* no auxiliary buffers */
+ PFD_MAIN_PLANE, /* main layer */
+ 0, /* reserved */
+ 0, 0, 0, /* no layer, visible, damage masks */
+ };
+ int SelectedPixelFormat;
+ BOOL retVal;
+
+ pfd.cColorBits = GetDeviceCaps(hDC, BITSPIXEL);
+
+ if (colorIndexMode) {
+ pfd.iPixelType = PFD_TYPE_COLORINDEX;
+ } else {
+ pfd.iPixelType = PFD_TYPE_RGBA;
+ }
+
+ if (doubleBuffered) {
+ pfd.dwFlags |= PFD_DOUBLEBUFFER;
+ }
+
+ if (renderToDIB) {
+ pfd.dwFlags |= PFD_DRAW_TO_BITMAP;
+ } else {
+ pfd.dwFlags |= PFD_DRAW_TO_WINDOW;
+ }
+
+ SelectedPixelFormat = ChoosePixelFormat(hDC, &pfd);
+ if (SelectedPixelFormat == 0) {
+ (void) MessageBox(WindowFromDC(hDC),
+ "Failed to find acceptable pixel format.",
+ "OpenGL application error",
+ MB_ICONERROR | MB_OK);
+ exit(1);
+ }
+
+ retVal = SetPixelFormat(hDC, SelectedPixelFormat, &pfd);
+ if (retVal != TRUE) {
+ (void) MessageBox(WindowFromDC(hDC),
+ "Failed to set pixel format.",
+ "OpenGL application error",
+ MB_ICONERROR | MB_OK);
+ exit(1);
+ }
+}
+
+LRESULT APIENTRY
+WndProc(
+ HWND hWnd,
+ UINT message,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ switch (message) {
+ case WM_CREATE:
+ return 0;
+ case WM_DESTROY:
+ PostQuitMessage(0);
+ return 0;
+ case WM_SIZE:
+ if (hGLRC) {
+ winWidth = (int) LOWORD(lParam);
+ winHeight = (int) HIWORD(lParam);
+ /**/
+ if (renderToDIB) {
+ resizeDIB(hDC);
+ }
+ /**/
+ resize();
+ return 0;
+ }
+ case WM_PALETTECHANGED:
+ /*
+ ** Update palette mapping if this *is not* the active window.
+ */
+ if (hGLRC && hPalette && (HWND) wParam != hWnd) {
+ UnrealizeObject(hPalette);
+ SelectPalette(hDC, hPalette, FALSE);
+ RealizePalette(hDC);
+ redraw();
+ return 0;
+ }
+ break;
+ case WM_QUERYNEWPALETTE:
+ /*
+ ** Update palette mapping if this *is* the active window.
+ */
+ if (hGLRC && hPalette) {
+ UnrealizeObject(hPalette);
+ SelectPalette(hDC, hPalette, FALSE);
+ RealizePalette(hDC);
+ redraw();
+ return TRUE;
+ }
+ break;
+ case WM_PAINT:
+ /*
+ ** Update the window. Don't use the device context returned by
+ ** BeginPaint as it won't have the right palette selected into it.
+ */
+ if (hGLRC) {
+ PAINTSTRUCT ps;
+
+ BeginPaint(hWnd, &ps);
+ redraw();
+ EndPaint(hWnd, &ps);
+ return 0;
+ }
+ break;
+ case WM_CHAR:
+ switch ((int)wParam) {
+ case VK_ESCAPE:
+ DestroyWindow(hWnd);
+ return 0;
+ case VK_SPACE:
+ if (idleFunc) {
+ idleFunc = NULL;
+ } else {
+ idleFunc = doRedraw;
+ }
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+
+ /* Deal with any unprocessed messages */
+ return DefWindowProc(hWnd, message, wParam, lParam);
+}
+
+int APIENTRY
+WinMain(
+ HINSTANCE hCurrentInst,
+ HINSTANCE hPreviousInst,
+ LPSTR lpszCmdLine,
+ int nCmdShow)
+{
+ const GLubyte * Ret;
+ WNDCLASS wndClass;
+ HWND hWnd;
+ MSG msg;
+
+ __asm int 3;
+ Ret = glGetString( GL_EXTENSIONS );
+
+ /* Define and register a window class */
+ wndClass.style = CS_HREDRAW | CS_VREDRAW;
+ wndClass.lpfnWndProc = WndProc;
+ wndClass.cbClsExtra = 0;
+ wndClass.cbWndExtra = 0;
+ wndClass.hInstance = hCurrentInst;
+ wndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
+ wndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
+ wndClass.hbrBackground = GetStockObject(WHITE_BRUSH);
+ wndClass.lpszMenuName = NULL;
+ wndClass.lpszClassName = className;
+ RegisterClass(&wndClass);
+
+ /* Create a window of the previously defined class */
+ hWnd = CreateWindow(
+ className, /* Window class's name */
+ windowName, /* Title bar text */
+ WS_OVERLAPPEDWINDOW | /* The window's style */
+ WS_CLIPCHILDREN |
+ WS_CLIPSIBLINGS,
+ winX, winY, /* Position */
+ winWidth, winHeight, /* Size */
+ NULL, /* Parent window's handle */
+ NULL, /* Menu handle */
+ hCurrentInst, /* Instance handle */
+ NULL); /* No additional data */
+
+ /* Map the window to the screen */
+ ShowWindow(hWnd, nCmdShow);
+
+ /* Force the window to repaint itself */
+ UpdateWindow(hWnd);
+
+ /*
+ ** Set up for OpenGL rendering. Bind the rendering context to
+ ** the same device context that the palette will be selected into.
+ */
+ hDC = GetDC(hWnd);
+ hDCFrontBuffer = hDC;
+ if (renderToDIB) {
+ hDC = CreateCompatibleDC(hDCFrontBuffer);
+ setupDIB(hDC);
+ }
+ Ret = glGetString( GL_EXTENSIONS );
+ setupPixelFormat(hDC);
+ Ret = glGetString( GL_EXTENSIONS );
+ setupPalette(hDC);
+ Ret = glGetString( GL_EXTENSIONS );
+ hGLRC = wglCreateContext(hDC);
+ Ret = glGetString( GL_EXTENSIONS );
+ wglMakeCurrent(hDC, hGLRC);
+ Ret = glGetString( GL_EXTENSIONS );
+ init();
+ idleFunc = doRedraw;
+
+
+
+ /* Process Messages */
+ while (1) {
+ /* execute the idle function while there are no messages to process */
+ while (idleFunc &&
+ PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE) == FALSE)
+ {
+ (*idleFunc)();
+ }
+ if (GetMessage(&msg, NULL, 0, 0) != TRUE) {
+ break;
+ }
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+
+ /*
+ ** Finish OpenGL rendering.
+ */
+ idleFunc = NULL;
+ if (hGLRC) {
+ wglMakeCurrent(NULL, NULL);
+ wglDeleteContext(hGLRC);
+ }
+ ReleaseDC(hWnd, hDC);
+
+ return msg.wParam;
+}
diff --git a/xorg-server/hw/xwin/glx/wgl.xml b/xorg-server/hw/xwin/glx/wgl.xml
new file mode 100644
index 000000000..8e0315308
--- /dev/null
+++ b/xorg-server/hw/xwin/glx/wgl.xml
@@ -0,0 +1,1957 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<registry>
+ <!--
+ Copyright (c) 2013 The Khronos Group Inc.
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and/or associated documentation files (the
+ "Materials"), to deal in the Materials without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Materials, and to
+ permit persons to whom the Materials are furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Materials.
+
+ THE MATERIALS ARE 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
+ MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+ -->
+ <!--
+ This file, wgl.xml, is the WGL API Registry. The older ".spec" file
+ format has been retired and will no longer be updated with new
+ extensions and API versions. The canonical version of the registry,
+ together with documentation, schema, and Python generator scripts used
+ to generate C header files for WGL, can always be found in the Khronos
+ Registry at
+ http://www.opengl.org/registry/
+ -->
+
+ <!-- SECTION: WGL type definitions. Does not include base Windows types. -->
+
+ <types>
+ <!-- Dummy placeholders for Windows types -->
+ <type name="BOOL"/>
+ <type name="CHAR"/>
+ <type name="DWORD"/>
+ <type name="FLOAT"/>
+ <type name="GLbitfield"/>
+ <type name="GLboolean"/>
+ <type name="GLenum"/>
+ <type name="GLfloat"/>
+ <type name="GLint"/>
+ <type name="GLsizei"/>
+ <type name="GLuint"/>
+ <type name="GLushort"/>
+ <type name="HANDLE"/>
+ <type name="HDC"/>
+ <type name="HGLRC"/>
+ <type name="INT"/>
+ <type name="INT32"/>
+ <type name="INT64"/>
+ <type name="PROC"/>
+ <type name="RECT"/>
+ <type name="LPCSTR"/>
+ <type name="LPVOID"/>
+ <type name="UINT"/>
+ <type name="USHORT"/>
+ <type name="VOID"/>
+ <!-- Could be filled in from wgltypes.txt -->
+ <type name="COLORREF"/>
+ <type name="HENHMETAFILE"/>
+ <type name="LAYERPLANEDESCRIPTOR"/>
+ <type name="LPGLYPHMETRICSFLOAT"/>
+ <type name="PIXELFORMATDESCRIPTOR"/>
+ <!-- These are dependencies WGL types require to be declared legally -->
+ <!-- Declaring C structures in XML is a pain indentation-wise -->
+ <type>struct <name>_GPU_DEVICE</name> {
+ DWORD cb;
+ CHAR DeviceName[32];
+ CHAR DeviceString[128];
+ DWORD Flags;
+ RECT rcVirtualScreen;
+};</type>
+ <!-- These are actual WGL types. Windows types are not included. -->
+ <type>DECLARE_HANDLE(<name>HPBUFFERARB</name>);</type>
+ <type>DECLARE_HANDLE(<name>HPBUFFEREXT</name>);</type>
+ <type>DECLARE_HANDLE(<name>HVIDEOOUTPUTDEVICENV</name>);</type>
+ <type>DECLARE_HANDLE(<name>HPVIDEODEV</name>);</type>
+ <type>DECLARE_HANDLE(<name>HPGPUNV</name>);</type>
+ <type>DECLARE_HANDLE(<name>HGPUNV</name>);</type>
+ <type>DECLARE_HANDLE(<name>HVIDEOINPUTDEVICENV</name>);</type>
+ <type requires="_GPU_DEVICE">typedef struct _GPU_DEVICE <name>GPU_DEVICE</name>;</type>
+ <type requires="_GPU_DEVICE">typedef struct _GPU_DEVICE *<name>PGPU_DEVICE</name>;</type>
+ </types>
+
+ <!-- SECTION: WGL enumerant (token) definitions. -->
+
+ <!-- Bitmasks each have their own namespace, although bits are
+ sometimes reused for other purposes -->
+
+ <enums namespace="WGLLayerPlaneMask" type="bitmask" vendor="MS">
+ <enum value="0x00000001" name="WGL_SWAP_MAIN_PLANE"/>
+ <enum value="0x00000002" name="WGL_SWAP_OVERLAY1"/>
+ <enum value="0x00000004" name="WGL_SWAP_OVERLAY2"/>
+ <enum value="0x00000008" name="WGL_SWAP_OVERLAY3"/>
+ <enum value="0x00000010" name="WGL_SWAP_OVERLAY4"/>
+ <enum value="0x00000020" name="WGL_SWAP_OVERLAY5"/>
+ <enum value="0x00000040" name="WGL_SWAP_OVERLAY6"/>
+ <enum value="0x00000080" name="WGL_SWAP_OVERLAY7"/>
+ <enum value="0x00000100" name="WGL_SWAP_OVERLAY8"/>
+ <enum value="0x00000200" name="WGL_SWAP_OVERLAY9"/>
+ <enum value="0x00000400" name="WGL_SWAP_OVERLAY10"/>
+ <enum value="0x00000800" name="WGL_SWAP_OVERLAY11"/>
+ <enum value="0x00001000" name="WGL_SWAP_OVERLAY12"/>
+ <enum value="0x00002000" name="WGL_SWAP_OVERLAY13"/>
+ <enum value="0x00004000" name="WGL_SWAP_OVERLAY14"/>
+ <enum value="0x00008000" name="WGL_SWAP_OVERLAY15"/>
+ <enum value="0x00010000" name="WGL_SWAP_UNDERLAY1"/>
+ <enum value="0x00020000" name="WGL_SWAP_UNDERLAY2"/>
+ <enum value="0x00040000" name="WGL_SWAP_UNDERLAY3"/>
+ <enum value="0x00080000" name="WGL_SWAP_UNDERLAY4"/>
+ <enum value="0x00100000" name="WGL_SWAP_UNDERLAY5"/>
+ <enum value="0x00200000" name="WGL_SWAP_UNDERLAY6"/>
+ <enum value="0x00400000" name="WGL_SWAP_UNDERLAY7"/>
+ <enum value="0x00800000" name="WGL_SWAP_UNDERLAY8"/>
+ <enum value="0x01000000" name="WGL_SWAP_UNDERLAY9"/>
+ <enum value="0x02000000" name="WGL_SWAP_UNDERLAY10"/>
+ <enum value="0x04000000" name="WGL_SWAP_UNDERLAY11"/>
+ <enum value="0x08000000" name="WGL_SWAP_UNDERLAY12"/>
+ <enum value="0x10000000" name="WGL_SWAP_UNDERLAY13"/>
+ <enum value="0x20000000" name="WGL_SWAP_UNDERLAY14"/>
+ <enum value="0x40000000" name="WGL_SWAP_UNDERLAY15"/>
+ </enums>
+
+ <enums namespace="WGLColorBufferMask" type="bitmask" vendor="ARB">
+ <enum value="0x00000001" name="WGL_FRONT_COLOR_BUFFER_BIT_ARB"/>
+ <enum value="0x00000002" name="WGL_BACK_COLOR_BUFFER_BIT_ARB"/>
+ <enum value="0x00000004" name="WGL_DEPTH_BUFFER_BIT_ARB"/>
+ <enum value="0x00000008" name="WGL_STENCIL_BUFFER_BIT_ARB"/>
+ </enums>
+
+ <enums namespace="WGLContextFlagsMask" type="bitmask" vendor="ARB">
+ <enum value="0x00000001" name="WGL_CONTEXT_DEBUG_BIT_ARB"/>
+ <enum value="0x00000002" name="WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB"/>
+ <enum value="0x00000004" name="WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB"/>
+ <enum value="0x00000008" name="WGL_CONTEXT_RESET_ISOLATION_BIT_ARB"/>
+ </enums>
+
+ <enums namespace="WGLContextProfileMask" type="bitmask" vendor="ARB">
+ <enum value="0x00000001" name="WGL_CONTEXT_CORE_PROFILE_BIT_ARB"/>
+ <enum value="0x00000002" name="WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB"/>
+ <enum value="0x00000004" name="WGL_CONTEXT_ES_PROFILE_BIT_EXT"/>
+ <enum value="0x00000004" name="WGL_CONTEXT_ES2_PROFILE_BIT_EXT" alias="WGL_CONTEXT_ES_PROFILE_BIT_EXT"/>
+ </enums>
+
+ <enums namespace="WGLImageBufferMaskI3D" type="bitmask" vendor="I3D">
+ <enum value="0x00000001" name="WGL_IMAGE_BUFFER_MIN_ACCESS_I3D"/>
+ <enum value="0x00000002" name="WGL_IMAGE_BUFFER_LOCK_I3D"/>
+ </enums>
+
+ <enums namespace="WGLDXInteropMaskNV" type="bitmask" vendor="NV">
+ <enum value="0x00000000" name="WGL_ACCESS_READ_ONLY_NV"/>
+ <enum value="0x00000001" name="WGL_ACCESS_READ_WRITE_NV"/>
+ <enum value="0x00000002" name="WGL_ACCESS_WRITE_DISCARD_NV"/>
+ </enums>
+
+ <!-- The default ("API") enum namespace starts here. While some
+ assigned values may overlap, and different parts of the
+ namespace are reserved for different purposes, it is a single
+ namespace. The "class" attribute indicates some of the reserved
+ purposes but is by no means complete (and cannot be, since many
+ tokens are reused for different purposes in different
+ extensions and API versions). -->
+
+ <enums namespace="WGL" group="SpecialNumbers" vendor="MS">
+ <enum value="0" name="WGL_FONT_LINES"/>
+ <enum value="1" name="WGL_FONT_POLYGONS"/>
+ </enums>
+
+ <enums namespace="WGL" start="0x1F00" end="0x1F02" vendor="ARB" comment="Unclear why AMD used values in this range">
+ <enum value="0x1F00" name="WGL_GPU_VENDOR_AMD"/>
+ <enum value="0x1F01" name="WGL_GPU_RENDERER_STRING_AMD"/>
+ <enum value="0x1F02" name="WGL_GPU_OPENGL_VERSION_STRING_AMD"/>
+ </enums>
+
+ <enums namespace="WGL" start="0x2000" end="0x203F" vendor="ARB">
+ <enum value="0x2000" name="WGL_NUMBER_PIXEL_FORMATS_ARB"/>
+ <enum value="0x2000" name="WGL_NUMBER_PIXEL_FORMATS_EXT"/>
+ <enum value="0x2001" name="WGL_DRAW_TO_WINDOW_ARB"/>
+ <enum value="0x2001" name="WGL_DRAW_TO_WINDOW_EXT"/>
+ <enum value="0x2002" name="WGL_DRAW_TO_BITMAP_ARB"/>
+ <enum value="0x2002" name="WGL_DRAW_TO_BITMAP_EXT"/>
+ <enum value="0x2003" name="WGL_ACCELERATION_ARB"/>
+ <enum value="0x2003" name="WGL_ACCELERATION_EXT"/>
+ <enum value="0x2004" name="WGL_NEED_PALETTE_ARB"/>
+ <enum value="0x2004" name="WGL_NEED_PALETTE_EXT"/>
+ <enum value="0x2005" name="WGL_NEED_SYSTEM_PALETTE_ARB"/>
+ <enum value="0x2005" name="WGL_NEED_SYSTEM_PALETTE_EXT"/>
+ <enum value="0x2006" name="WGL_SWAP_LAYER_BUFFERS_ARB"/>
+ <enum value="0x2006" name="WGL_SWAP_LAYER_BUFFERS_EXT"/>
+ <enum value="0x2007" name="WGL_SWAP_METHOD_ARB"/>
+ <enum value="0x2007" name="WGL_SWAP_METHOD_EXT"/>
+ <enum value="0x2008" name="WGL_NUMBER_OVERLAYS_ARB"/>
+ <enum value="0x2008" name="WGL_NUMBER_OVERLAYS_EXT"/>
+ <enum value="0x2009" name="WGL_NUMBER_UNDERLAYS_ARB"/>
+ <enum value="0x2009" name="WGL_NUMBER_UNDERLAYS_EXT"/>
+ <enum value="0x200A" name="WGL_TRANSPARENT_ARB"/>
+ <enum value="0x200A" name="WGL_TRANSPARENT_EXT"/>
+ <enum value="0x200B" name="WGL_TRANSPARENT_VALUE_EXT"/>
+ <enum value="0x200C" name="WGL_SHARE_DEPTH_ARB"/>
+ <enum value="0x200C" name="WGL_SHARE_DEPTH_EXT"/>
+ <enum value="0x200D" name="WGL_SHARE_STENCIL_ARB"/>
+ <enum value="0x200D" name="WGL_SHARE_STENCIL_EXT"/>
+ <enum value="0x200E" name="WGL_SHARE_ACCUM_ARB"/>
+ <enum value="0x200E" name="WGL_SHARE_ACCUM_EXT"/>
+ <enum value="0x200F" name="WGL_SUPPORT_GDI_ARB"/>
+ <enum value="0x200F" name="WGL_SUPPORT_GDI_EXT"/>
+ <enum value="0x2010" name="WGL_SUPPORT_OPENGL_ARB"/>
+ <enum value="0x2010" name="WGL_SUPPORT_OPENGL_EXT"/>
+ <enum value="0x2011" name="WGL_DOUBLE_BUFFER_ARB"/>
+ <enum value="0x2011" name="WGL_DOUBLE_BUFFER_EXT"/>
+ <enum value="0x2012" name="WGL_STEREO_ARB"/>
+ <enum value="0x2012" name="WGL_STEREO_EXT"/>
+ <enum value="0x2013" name="WGL_PIXEL_TYPE_ARB"/>
+ <enum value="0x2013" name="WGL_PIXEL_TYPE_EXT"/>
+ <enum value="0x2014" name="WGL_COLOR_BITS_ARB"/>
+ <enum value="0x2014" name="WGL_COLOR_BITS_EXT"/>
+ <enum value="0x2015" name="WGL_RED_BITS_ARB"/>
+ <enum value="0x2015" name="WGL_RED_BITS_EXT"/>
+ <enum value="0x2016" name="WGL_RED_SHIFT_ARB"/>
+ <enum value="0x2016" name="WGL_RED_SHIFT_EXT"/>
+ <enum value="0x2017" name="WGL_GREEN_BITS_ARB"/>
+ <enum value="0x2017" name="WGL_GREEN_BITS_EXT"/>
+ <enum value="0x2018" name="WGL_GREEN_SHIFT_ARB"/>
+ <enum value="0x2018" name="WGL_GREEN_SHIFT_EXT"/>
+ <enum value="0x2019" name="WGL_BLUE_BITS_ARB"/>
+ <enum value="0x2019" name="WGL_BLUE_BITS_EXT"/>
+ <enum value="0x201A" name="WGL_BLUE_SHIFT_ARB"/>
+ <enum value="0x201A" name="WGL_BLUE_SHIFT_EXT"/>
+ <enum value="0x201B" name="WGL_ALPHA_BITS_ARB"/>
+ <enum value="0x201B" name="WGL_ALPHA_BITS_EXT"/>
+ <enum value="0x201C" name="WGL_ALPHA_SHIFT_ARB"/>
+ <enum value="0x201C" name="WGL_ALPHA_SHIFT_EXT"/>
+ <enum value="0x201D" name="WGL_ACCUM_BITS_ARB"/>
+ <enum value="0x201D" name="WGL_ACCUM_BITS_EXT"/>
+ <enum value="0x201E" name="WGL_ACCUM_RED_BITS_ARB"/>
+ <enum value="0x201E" name="WGL_ACCUM_RED_BITS_EXT"/>
+ <enum value="0x201F" name="WGL_ACCUM_GREEN_BITS_ARB"/>
+ <enum value="0x201F" name="WGL_ACCUM_GREEN_BITS_EXT"/>
+ <enum value="0x2020" name="WGL_ACCUM_BLUE_BITS_ARB"/>
+ <enum value="0x2020" name="WGL_ACCUM_BLUE_BITS_EXT"/>
+ <enum value="0x2021" name="WGL_ACCUM_ALPHA_BITS_ARB"/>
+ <enum value="0x2021" name="WGL_ACCUM_ALPHA_BITS_EXT"/>
+ <enum value="0x2022" name="WGL_DEPTH_BITS_ARB"/>
+ <enum value="0x2022" name="WGL_DEPTH_BITS_EXT"/>
+ <enum value="0x2023" name="WGL_STENCIL_BITS_ARB"/>
+ <enum value="0x2023" name="WGL_STENCIL_BITS_EXT"/>
+ <enum value="0x2024" name="WGL_AUX_BUFFERS_ARB"/>
+ <enum value="0x2024" name="WGL_AUX_BUFFERS_EXT"/>
+ <enum value="0x2025" name="WGL_NO_ACCELERATION_ARB"/>
+ <enum value="0x2025" name="WGL_NO_ACCELERATION_EXT"/>
+ <enum value="0x2026" name="WGL_GENERIC_ACCELERATION_ARB"/>
+ <enum value="0x2026" name="WGL_GENERIC_ACCELERATION_EXT"/>
+ <enum value="0x2027" name="WGL_FULL_ACCELERATION_ARB"/>
+ <enum value="0x2027" name="WGL_FULL_ACCELERATION_EXT"/>
+ <enum value="0x2028" name="WGL_SWAP_EXCHANGE_ARB"/>
+ <enum value="0x2028" name="WGL_SWAP_EXCHANGE_EXT"/>
+ <enum value="0x2029" name="WGL_SWAP_COPY_ARB"/>
+ <enum value="0x2029" name="WGL_SWAP_COPY_EXT"/>
+ <enum value="0x202A" name="WGL_SWAP_UNDEFINED_ARB"/>
+ <enum value="0x202A" name="WGL_SWAP_UNDEFINED_EXT"/>
+ <enum value="0x202B" name="WGL_TYPE_RGBA_ARB"/>
+ <enum value="0x202B" name="WGL_TYPE_RGBA_EXT"/>
+ <enum value="0x202C" name="WGL_TYPE_COLORINDEX_ARB"/>
+ <enum value="0x202C" name="WGL_TYPE_COLORINDEX_EXT"/>
+ <enum value="0x202D" name="WGL_DRAW_TO_PBUFFER_ARB"/>
+ <enum value="0x202D" name="WGL_DRAW_TO_PBUFFER_EXT"/>
+ <enum value="0x202E" name="WGL_MAX_PBUFFER_PIXELS_ARB"/>
+ <enum value="0x202E" name="WGL_MAX_PBUFFER_PIXELS_EXT"/>
+ <enum value="0x202F" name="WGL_MAX_PBUFFER_WIDTH_ARB"/>
+ <enum value="0x202F" name="WGL_MAX_PBUFFER_WIDTH_EXT"/>
+ <enum value="0x2030" name="WGL_MAX_PBUFFER_HEIGHT_ARB"/>
+ <enum value="0x2030" name="WGL_MAX_PBUFFER_HEIGHT_EXT"/>
+ <enum value="0x2031" name="WGL_OPTIMAL_PBUFFER_WIDTH_EXT"/>
+ <enum value="0x2032" name="WGL_OPTIMAL_PBUFFER_HEIGHT_EXT"/>
+ <enum value="0x2033" name="WGL_PBUFFER_LARGEST_ARB"/>
+ <enum value="0x2033" name="WGL_PBUFFER_LARGEST_EXT"/>
+ <enum value="0x2034" name="WGL_PBUFFER_WIDTH_ARB"/>
+ <enum value="0x2034" name="WGL_PBUFFER_WIDTH_EXT"/>
+ <enum value="0x2035" name="WGL_PBUFFER_HEIGHT_ARB"/>
+ <enum value="0x2035" name="WGL_PBUFFER_HEIGHT_EXT"/>
+ <enum value="0x2036" name="WGL_PBUFFER_LOST_ARB"/>
+ <enum value="0x2037" name="WGL_TRANSPARENT_RED_VALUE_ARB"/>
+ <enum value="0x2038" name="WGL_TRANSPARENT_GREEN_VALUE_ARB"/>
+ <enum value="0x2039" name="WGL_TRANSPARENT_BLUE_VALUE_ARB"/>
+ <enum value="0x203A" name="WGL_TRANSPARENT_ALPHA_VALUE_ARB"/>
+ <enum value="0x203B" name="WGL_TRANSPARENT_INDEX_VALUE_ARB"/>
+ <unused start="0x203C" end="0x203F"/>
+ </enums>
+
+ <enums namespace="WGL" start="0x2040" end="0x205F" vendor="I3D">
+ <enum value="0x2040" name="WGL_DEPTH_FLOAT_EXT"/>
+ <enum value="0x2041" name="WGL_SAMPLE_BUFFERS_ARB"/>
+ <enum value="0x2041" name="WGL_SAMPLE_BUFFERS_EXT"/>
+ <enum value="0x2042" name="WGL_COVERAGE_SAMPLES_NV"/>
+ <enum value="0x2042" name="WGL_SAMPLES_ARB"/>
+ <enum value="0x2042" name="WGL_SAMPLES_EXT"/>
+ <enum value="0x2043" name="ERROR_INVALID_PIXEL_TYPE_ARB"/>
+ <enum value="0x2043" name="ERROR_INVALID_PIXEL_TYPE_EXT"/>
+ <enum value="0x2044" name="WGL_GENLOCK_SOURCE_MULTIVIEW_I3D"/>
+ <enum value="0x2045" name="WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D"/>
+ <enum value="0x2046" name="WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D"/>
+ <enum value="0x2047" name="WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D"/>
+ <enum value="0x2048" name="WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D"/>
+ <enum value="0x2049" name="WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D"/>
+ <enum value="0x204A" name="WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D"/>
+ <enum value="0x204B" name="WGL_GENLOCK_SOURCE_EDGE_RISING_I3D"/>
+ <enum value="0x204C" name="WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D"/>
+ <unused start="0x204D"/>
+ <enum value="0x204E" name="WGL_GAMMA_TABLE_SIZE_I3D"/>
+ <enum value="0x204F" name="WGL_GAMMA_EXCLUDE_DESKTOP_I3D"/>
+ <enum value="0x2050" name="WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D"/>
+ <enum value="0x2051" name="WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D"/>
+ <enum value="0x2052" name="WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D"/>
+ <enum value="0x2053" name="WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D"/>
+ <enum value="0x2054" name="ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB"/>
+ <enum value="0x2055" name="WGL_STEREO_EMITTER_ENABLE_3DL"/>
+ <enum value="0x2056" name="WGL_STEREO_EMITTER_DISABLE_3DL"/>
+ <enum value="0x2057" name="WGL_STEREO_POLARITY_NORMAL_3DL"/>
+ <enum value="0x2058" name="WGL_STEREO_POLARITY_INVERT_3DL"/>
+ <unused start="0x2059" end="0x205F"/>
+ </enums>
+
+ <enums namespace="WGL" start="0x2060" end="0x206F" vendor="3Dfx">
+ <unused start="0x2060" end="0x206F" comment="Could be reclaimed"/>
+ </enums>
+
+ <enums namespace="WGL" start="0x2070" end="0x209F" vendor="ARB">
+ <enum value="0x2060" name="WGL_SAMPLE_BUFFERS_3DFX"/>
+ <enum value="0x2061" name="WGL_SAMPLES_3DFX"/>
+ <enum value="0x2070" name="WGL_BIND_TO_TEXTURE_RGB_ARB"/>
+ <enum value="0x2071" name="WGL_BIND_TO_TEXTURE_RGBA_ARB"/>
+ <enum value="0x2072" name="WGL_TEXTURE_FORMAT_ARB"/>
+ <enum value="0x2073" name="WGL_TEXTURE_TARGET_ARB"/>
+ <enum value="0x2074" name="WGL_MIPMAP_TEXTURE_ARB"/>
+ <enum value="0x2075" name="WGL_TEXTURE_RGB_ARB"/>
+ <enum value="0x2076" name="WGL_TEXTURE_RGBA_ARB"/>
+ <enum value="0x2077" name="WGL_NO_TEXTURE_ARB"/>
+ <enum value="0x2078" name="WGL_TEXTURE_CUBE_MAP_ARB"/>
+ <enum value="0x2079" name="WGL_TEXTURE_1D_ARB"/>
+ <enum value="0x207A" name="WGL_TEXTURE_2D_ARB"/>
+ <enum value="0x207B" name="WGL_MIPMAP_LEVEL_ARB"/>
+ <enum value="0x207C" name="WGL_CUBE_MAP_FACE_ARB"/>
+ <enum value="0x207D" name="WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB"/>
+ <enum value="0x207E" name="WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB"/>
+ <enum value="0x207F" name="WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB"/>
+ <enum value="0x2080" name="WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB"/>
+ <enum value="0x2081" name="WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB"/>
+ <enum value="0x2082" name="WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB"/>
+ <enum value="0x2083" name="WGL_FRONT_LEFT_ARB"/>
+ <enum value="0x2084" name="WGL_FRONT_RIGHT_ARB"/>
+ <enum value="0x2085" name="WGL_BACK_LEFT_ARB"/>
+ <enum value="0x2086" name="WGL_BACK_RIGHT_ARB"/>
+ <enum value="0x2087" name="WGL_AUX0_ARB"/>
+ <enum value="0x2088" name="WGL_AUX1_ARB"/>
+ <enum value="0x2089" name="WGL_AUX2_ARB"/>
+ <enum value="0x208A" name="WGL_AUX3_ARB"/>
+ <enum value="0x208B" name="WGL_AUX4_ARB"/>
+ <enum value="0x208C" name="WGL_AUX5_ARB"/>
+ <enum value="0x208D" name="WGL_AUX6_ARB"/>
+ <enum value="0x208E" name="WGL_AUX7_ARB"/>
+ <enum value="0x208F" name="WGL_AUX8_ARB"/>
+ <enum value="0x2090" name="WGL_AUX9_ARB"/>
+ <enum value="0x2091" name="WGL_CONTEXT_MAJOR_VERSION_ARB"/>
+ <enum value="0x2092" name="WGL_CONTEXT_MINOR_VERSION_ARB"/>
+ <enum value="0x2093" name="WGL_CONTEXT_LAYER_PLANE_ARB"/>
+ <enum value="0x2094" name="WGL_CONTEXT_FLAGS_ARB"/>
+ <enum value="0x2095" name="ERROR_INVALID_VERSION_ARB"/>
+ <enum value="0x2096" name="ERROR_INVALID_PROFILE_ARB"/>
+ <unused start="0x2097" end="0x209F"/>
+ </enums>
+
+ <enums namespace="WGL" start="0x20A0" end="0x219F" vendor="NV" comment="shared with GLX">
+ <enum value="0x20A0" name="WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV"/>
+ <enum value="0x20A1" name="WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV"/>
+ <enum value="0x20A2" name="WGL_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x20A3" name="WGL_BIND_TO_TEXTURE_DEPTH_NV"/>
+ <enum value="0x20A4" name="WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV"/>
+ <enum value="0x20A5" name="WGL_DEPTH_TEXTURE_FORMAT_NV"/>
+ <enum value="0x20A6" name="WGL_TEXTURE_DEPTH_COMPONENT_NV"/>
+ <enum value="0x20A7" name="WGL_DEPTH_COMPONENT_NV"/>
+ <enum value="0x20A8" name="WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT"/>
+ <enum value="0x20A9" name="WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB"/>
+ <enum value="0x20A9" name="WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT"/>
+ <unused start="0x20AA" end="0x20AF"/>
+ <enum value="0x20B0" name="WGL_FLOAT_COMPONENTS_NV"/>
+ <enum value="0x20B1" name="WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV"/>
+ <enum value="0x20B2" name="WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV"/>
+ <enum value="0x20B3" name="WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV"/>
+ <enum value="0x20B4" name="WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV"/>
+ <enum value="0x20B5" name="WGL_TEXTURE_FLOAT_R_NV"/>
+ <enum value="0x20B6" name="WGL_TEXTURE_FLOAT_RG_NV"/>
+ <enum value="0x20B7" name="WGL_TEXTURE_FLOAT_RGB_NV"/>
+ <enum value="0x20B8" name="WGL_TEXTURE_FLOAT_RGBA_NV"/>
+ <enum value="0x20B9" name="WGL_COLOR_SAMPLES_NV"/>
+ <unused start="0x20BA" end="0x20BF"/>
+ <enum value="0x20C0" name="WGL_BIND_TO_VIDEO_RGB_NV"/>
+ <enum value="0x20C1" name="WGL_BIND_TO_VIDEO_RGBA_NV"/>
+ <enum value="0x20C2" name="WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV"/>
+ <enum value="0x20C3" name="WGL_VIDEO_OUT_COLOR_NV"/>
+ <enum value="0x20C4" name="WGL_VIDEO_OUT_ALPHA_NV"/>
+ <enum value="0x20C5" name="WGL_VIDEO_OUT_DEPTH_NV"/>
+ <enum value="0x20C6" name="WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV"/>
+ <enum value="0x20C7" name="WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV"/>
+ <enum value="0x20C8" name="WGL_VIDEO_OUT_FRAME"/>
+ <enum value="0x20C9" name="WGL_VIDEO_OUT_FIELD_1"/>
+ <enum value="0x20CA" name="WGL_VIDEO_OUT_FIELD_2"/>
+ <enum value="0x20CB" name="WGL_VIDEO_OUT_STACKED_FIELDS_1_2"/>
+ <enum value="0x20CC" name="WGL_VIDEO_OUT_STACKED_FIELDS_2_1"/>
+ <unused start="0x20CD" comment="reserved for GLX_DEVICE_ID_NV (not present in WGL interface)"/>
+ <enum value="0x20CE" name="WGL_UNIQUE_ID_NV"/>
+ <enum value="0x20CF" name="WGL_NUM_VIDEO_CAPTURE_SLOTS_NV"/>
+ <enum value="0x20D0" name="ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV"/>
+ <enum value="0x20D1" name="ERROR_MISSING_AFFINITY_MASK_NV"/>
+ <unused start="0x20D2" end="0x20EF"/>
+ <enum value="0x20F0" name="WGL_NUM_VIDEO_SLOTS_NV"/>
+ <unused start="0x20F1" end="0x219F"/>
+ </enums>
+
+ <enums namespace="WGL" start="0x21A0" end="0x21AF" vendor="AMD">
+ <enum value="0x21A0" name="WGL_TYPE_RGBA_FLOAT_ARB"/>
+ <enum value="0x21A0" name="WGL_TYPE_RGBA_FLOAT_ATI"/>
+ <unused start="0x21A1"/>
+ <enum value="0x21A2" name="WGL_GPU_FASTEST_TARGET_GPUS_AMD"/>
+ <enum value="0x21A3" name="WGL_GPU_RAM_AMD"/>
+ <enum value="0x21A4" name="WGL_GPU_CLOCK_AMD"/>
+ <enum value="0x21A5" name="WGL_GPU_NUM_PIPES_AMD"/>
+ <enum value="0x21A6" name="WGL_GPU_NUM_SIMD_AMD"/>
+ <enum value="0x21A7" name="WGL_GPU_NUM_RB_AMD"/>
+ <enum value="0x21A8" name="WGL_GPU_NUM_SPI_AMD"/>
+ <unused start="0x21A9" end="0x21AF"/>
+ </enums>
+
+ <enums namespace="WGL" start="0x21B0" end="0x21BF" vendor="Matrox" comment="could be reclaimed (tentative, RFC sent to ARB 2002/10/3)">
+ <unused start="0x21B0" end="0x21BF"/>
+ </enums>
+
+<!-- Please remember that new enumerant allocations must be obtained by
+ request to the Khronos API registrar (see comments at the top of this
+ file) File requests in the Khronos Bugzilla, OpenGL project, Registry
+ component. Also note that some GLX enum values are shared with GL and
+ WGL, and new ranges should be allocated with such overlaps in mind. -->
+
+<!-- Reservable for future use: 0x21C0-0x2FFF.
+ To generate a new range, allocate multiples of 16 starting at the
+ lowest available point in this block. -->
+ <enums namespace="WGL" start="0x21C0" end="0x2FFF" vendor="ARB">
+ <unused start="0x21C0" end="0x2FFF" comment="Reserved for future use"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8250" end="0x826F" vendor="ARB" comment="Values shared with GL. Do not allocate additional values in this range.">
+ <enum value="0x8252" name="WGL_LOSE_CONTEXT_ON_RESET_ARB"/>
+ <enum value="0x8256" name="WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB"/>
+ <enum value="0x8261" name="WGL_NO_RESET_NOTIFICATION_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9120" end="0x912F" vendor="ARB" comment="Values shared with GL. Do not allocate additional values in this range.">
+ <enum value="0x9126" name="WGL_CONTEXT_PROFILE_MASK_ARB"/>
+ </enums>
+
+ <!-- SECTION: WGL command definitions. -->
+ <commands namespace="WGL">
+ <command>
+ <proto>int <name>ChoosePixelFormat</name></proto>
+ <param><ptype>HDC</ptype> <name>hDc</name></param>
+ <param>const <ptype>PIXELFORMATDESCRIPTOR</ptype> *<name>pPfd</name></param>
+ </command>
+ <command>
+ <proto>int <name>DescribePixelFormat</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>ipfd</name></param>
+ <param><ptype>UINT</ptype> <name>cjpfd</name></param>
+ <param>const <ptype>PIXELFORMATDESCRIPTOR</ptype> *<name>ppfd</name></param>
+ </command>
+ <command>
+ <proto>int <name>GetPixelFormat</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>SetPixelFormat</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>ipfd</name></param>
+ <param>const <ptype>PIXELFORMATDESCRIPTOR</ptype> *<name>ppfd</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>SwapBuffers</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ </command>
+ <command>
+ <proto>void *<name>wglAllocateMemoryNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param><ptype>GLfloat</ptype> <name>readfreq</name></param>
+ <param><ptype>GLfloat</ptype> <name>writefreq</name></param>
+ <param><ptype>GLfloat</ptype> <name>priority</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglAssociateImageBufferEventsI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>const <ptype>HANDLE</ptype> *<name>pEvent</name></param>
+ <param>const <ptype>LPVOID</ptype> *<name>pAddress</name></param>
+ <param>const <ptype>DWORD</ptype> *<name>pSize</name></param>
+ <param><ptype>UINT</ptype> <name>count</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglBeginFrameTrackingI3D</name></proto>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>wglBindDisplayColorTableEXT</name></proto>
+ <param><ptype>GLushort</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglBindSwapBarrierNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>group</name></param>
+ <param><ptype>GLuint</ptype> <name>barrier</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglBindTexImageARB</name></proto>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ <param>int <name>iBuffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglBindVideoCaptureDeviceNV</name></proto>
+ <param><ptype>UINT</ptype> <name>uVideoSlot</name></param>
+ <param><ptype>HVIDEOINPUTDEVICENV</ptype> <name>hDevice</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglBindVideoDeviceNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>unsigned int <name>uVideoSlot</name></param>
+ <param><ptype>HVIDEOOUTPUTDEVICENV</ptype> <name>hVideoDevice</name></param>
+ <param>const int *<name>piAttribList</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglBindVideoImageNV</name></proto>
+ <param><ptype>HPVIDEODEV</ptype> <name>hVideoDevice</name></param>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ <param>int <name>iVideoBuffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>VOID</ptype> <name>wglBlitContextFramebufferAMD</name></proto>
+ <param><ptype>HGLRC</ptype> <name>dstCtx</name></param>
+ <param><ptype>GLint</ptype> <name>srcX0</name></param>
+ <param><ptype>GLint</ptype> <name>srcY0</name></param>
+ <param><ptype>GLint</ptype> <name>srcX1</name></param>
+ <param><ptype>GLint</ptype> <name>srcY1</name></param>
+ <param><ptype>GLint</ptype> <name>dstX0</name></param>
+ <param><ptype>GLint</ptype> <name>dstY0</name></param>
+ <param><ptype>GLint</ptype> <name>dstX1</name></param>
+ <param><ptype>GLint</ptype> <name>dstY1</name></param>
+ <param><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <param><ptype>GLenum</ptype> <name>filter</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglChoosePixelFormatARB</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>const int *<name>piAttribIList</name></param>
+ <param>const <ptype>FLOAT</ptype> *<name>pfAttribFList</name></param>
+ <param><ptype>UINT</ptype> <name>nMaxFormats</name></param>
+ <param>int *<name>piFormats</name></param>
+ <param><ptype>UINT</ptype> *<name>nNumFormats</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglChoosePixelFormatEXT</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>const int *<name>piAttribIList</name></param>
+ <param>const <ptype>FLOAT</ptype> *<name>pfAttribFList</name></param>
+ <param><ptype>UINT</ptype> <name>nMaxFormats</name></param>
+ <param>int *<name>piFormats</name></param>
+ <param><ptype>UINT</ptype> *<name>nNumFormats</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglCopyContext</name></proto>
+ <param><ptype>HGLRC</ptype> <name>hglrcSrc</name></param>
+ <param><ptype>HGLRC</ptype> <name>hglrcDst</name></param>
+ <param><ptype>UINT</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglCopyImageSubDataNV</name></proto>
+ <param><ptype>HGLRC</ptype> <name>hSrcRC</name></param>
+ <param><ptype>GLuint</ptype> <name>srcName</name></param>
+ <param><ptype>GLenum</ptype> <name>srcTarget</name></param>
+ <param><ptype>GLint</ptype> <name>srcLevel</name></param>
+ <param><ptype>GLint</ptype> <name>srcX</name></param>
+ <param><ptype>GLint</ptype> <name>srcY</name></param>
+ <param><ptype>GLint</ptype> <name>srcZ</name></param>
+ <param><ptype>HGLRC</ptype> <name>hDstRC</name></param>
+ <param><ptype>GLuint</ptype> <name>dstName</name></param>
+ <param><ptype>GLenum</ptype> <name>dstTarget</name></param>
+ <param><ptype>GLint</ptype> <name>dstLevel</name></param>
+ <param><ptype>GLint</ptype> <name>dstX</name></param>
+ <param><ptype>GLint</ptype> <name>dstY</name></param>
+ <param><ptype>GLint</ptype> <name>dstZ</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto><ptype>HDC</ptype> <name>wglCreateAffinityDCNV</name></proto>
+ <param>const <ptype>HGPUNV</ptype> *<name>phGpuList</name></param>
+ </command>
+ <command>
+ <proto><ptype>HGLRC</ptype> <name>wglCreateAssociatedContextAMD</name></proto>
+ <param><ptype>UINT</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto><ptype>HGLRC</ptype> <name>wglCreateAssociatedContextAttribsAMD</name></proto>
+ <param><ptype>UINT</ptype> <name>id</name></param>
+ <param><ptype>HGLRC</ptype> <name>hShareContext</name></param>
+ <param>const int *<name>attribList</name></param>
+ </command>
+ <command>
+ <proto><ptype>HANDLE</ptype> <name>wglCreateBufferRegionARB</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>iLayerPlane</name></param>
+ <param><ptype>UINT</ptype> <name>uType</name></param>
+ </command>
+ <command>
+ <proto><ptype>HGLRC</ptype> <name>wglCreateContext</name></proto>
+ <param><ptype>HDC</ptype> <name>hDc</name></param>
+ </command>
+ <command>
+ <proto><ptype>HGLRC</ptype> <name>wglCreateContextAttribsARB</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>HGLRC</ptype> <name>hShareContext</name></param>
+ <param>const int *<name>attribList</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>wglCreateDisplayColorTableEXT</name></proto>
+ <param><ptype>GLushort</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto><ptype>LPVOID</ptype> <name>wglCreateImageBufferI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>DWORD</ptype> <name>dwSize</name></param>
+ <param><ptype>UINT</ptype> <name>uFlags</name></param>
+ </command>
+ <command>
+ <proto><ptype>HGLRC</ptype> <name>wglCreateLayerContext</name></proto>
+ <param><ptype>HDC</ptype> <name>hDc</name></param>
+ <param>int <name>level</name></param>
+ </command>
+ <command>
+ <proto><ptype>HPBUFFERARB</ptype> <name>wglCreatePbufferARB</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>iPixelFormat</name></param>
+ <param>int <name>iWidth</name></param>
+ <param>int <name>iHeight</name></param>
+ <param>const int *<name>piAttribList</name></param>
+ </command>
+ <command>
+ <proto><ptype>HPBUFFEREXT</ptype> <name>wglCreatePbufferEXT</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>iPixelFormat</name></param>
+ <param>int <name>iWidth</name></param>
+ <param>int <name>iHeight</name></param>
+ <param>const int *<name>piAttribList</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDelayBeforeSwapNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>GLfloat</ptype> <name>seconds</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDeleteAssociatedContextAMD</name></proto>
+ <param><ptype>HGLRC</ptype> <name>hglrc</name></param>
+ </command>
+ <command>
+ <proto><ptype>VOID</ptype> <name>wglDeleteBufferRegionARB</name></proto>
+ <param><ptype>HANDLE</ptype> <name>hRegion</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDeleteContext</name></proto>
+ <param><ptype>HGLRC</ptype> <name>oldContext</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDeleteDCNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDescribeLayerPlane</name></proto>
+ <param><ptype>HDC</ptype> <name>hDc</name></param>
+ <param>int <name>pixelFormat</name></param>
+ <param>int <name>layerPlane</name></param>
+ <param><ptype>UINT</ptype> <name>nBytes</name></param>
+ <param>const <ptype>LAYERPLANEDESCRIPTOR</ptype> *<name>plpd</name></param>
+ </command>
+ <command>
+ <proto><ptype>VOID</ptype> <name>wglDestroyDisplayColorTableEXT</name></proto>
+ <param><ptype>GLushort</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDestroyImageBufferI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>LPVOID</ptype> <name>pAddress</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDestroyPbufferARB</name></proto>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDestroyPbufferEXT</name></proto>
+ <param><ptype>HPBUFFEREXT</ptype> <name>hPbuffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDisableFrameLockI3D</name></proto>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDisableGenlockI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDXCloseDeviceNV</name></proto>
+ <param><ptype>HANDLE</ptype> <name>hDevice</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDXLockObjectsNV</name></proto>
+ <param><ptype>HANDLE</ptype> <name>hDevice</name></param>
+ <param><ptype>GLint</ptype> <name>count</name></param>
+ <param><ptype>HANDLE</ptype> *<name>hObjects</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDXObjectAccessNV</name></proto>
+ <param><ptype>HANDLE</ptype> <name>hObject</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto><ptype>HANDLE</ptype> <name>wglDXOpenDeviceNV</name></proto>
+ <param>void *<name>dxDevice</name></param>
+ </command>
+ <command>
+ <proto><ptype>HANDLE</ptype> <name>wglDXRegisterObjectNV</name></proto>
+ <param><ptype>HANDLE</ptype> <name>hDevice</name></param>
+ <param>void *<name>dxObject</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDXSetResourceShareHandleNV</name></proto>
+ <param>void *<name>dxObject</name></param>
+ <param><ptype>HANDLE</ptype> <name>shareHandle</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDXUnlockObjectsNV</name></proto>
+ <param><ptype>HANDLE</ptype> <name>hDevice</name></param>
+ <param><ptype>GLint</ptype> <name>count</name></param>
+ <param><ptype>HANDLE</ptype> *<name>hObjects</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDXUnregisterObjectNV</name></proto>
+ <param><ptype>HANDLE</ptype> <name>hDevice</name></param>
+ <param><ptype>HANDLE</ptype> <name>hObject</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglEnableFrameLockI3D</name></proto>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglEnableGenlockI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglEndFrameTrackingI3D</name></proto>
+ </command>
+ <command>
+ <proto><ptype>UINT</ptype> <name>wglEnumerateVideoCaptureDevicesNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDc</name></param>
+ <param><ptype>HVIDEOINPUTDEVICENV</ptype> *<name>phDeviceList</name></param>
+ </command>
+ <command>
+ <proto>int <name>wglEnumerateVideoDevicesNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>HVIDEOOUTPUTDEVICENV</ptype> *<name>phDeviceList</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglEnumGpuDevicesNV</name></proto>
+ <param><ptype>HGPUNV</ptype> <name>hGpu</name></param>
+ <param><ptype>UINT</ptype> <name>iDeviceIndex</name></param>
+ <param><ptype>PGPU_DEVICE</ptype> <name>lpGpuDevice</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglEnumGpusFromAffinityDCNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hAffinityDC</name></param>
+ <param><ptype>UINT</ptype> <name>iGpuIndex</name></param>
+ <param><ptype>HGPUNV</ptype> *<name>hGpu</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglEnumGpusNV</name></proto>
+ <param><ptype>UINT</ptype> <name>iGpuIndex</name></param>
+ <param><ptype>HGPUNV</ptype> *<name>phGpu</name></param>
+ </command>
+ <command>
+ <proto>void <name>wglFreeMemoryNV</name></proto>
+ <param>void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGenlockSampleRateI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> <name>uRate</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGenlockSourceDelayI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> <name>uDelay</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGenlockSourceEdgeI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> <name>uEdge</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGenlockSourceI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> <name>uSource</name></param>
+ </command>
+ <command>
+ <proto><ptype>UINT</ptype> <name>wglGetContextGPUIDAMD</name></proto>
+ <param><ptype>HGLRC</ptype> <name>hglrc</name></param>
+ </command>
+ <command>
+ <proto><ptype>HGLRC</ptype> <name>wglGetCurrentAssociatedContextAMD</name></proto>
+ </command>
+ <command>
+ <proto><ptype>HGLRC</ptype> <name>wglGetCurrentContext</name></proto>
+ </command>
+ <command>
+ <proto><ptype>HDC</ptype> <name>wglGetCurrentDC</name></proto>
+ </command>
+ <command>
+ <proto><ptype>HDC</ptype> <name>wglGetCurrentReadDCARB</name></proto>
+ </command>
+ <command>
+ <proto><ptype>HDC</ptype> <name>wglGetCurrentReadDCEXT</name></proto>
+ </command>
+ <command>
+ <proto><ptype>PROC</ptype> <name>wglGetDefaultProcAddress</name></proto>
+ <param><ptype>LPCSTR</ptype> <name>lpszProc</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetDigitalVideoParametersI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>iAttribute</name></param>
+ <param>int *<name>piValue</name></param>
+ </command>
+ <command>
+ <proto><ptype>UINT</ptype> <name>GetEnhMetaFilePixelFormat</name></proto>
+ <param><ptype>HENHMETAFILE</ptype> <name>hemf</name></param>
+ <param>const <ptype>PIXELFORMATDESCRIPTOR</ptype> *<name>ppfd</name></param>
+ </command>
+ <command>
+ <proto>const char *<name>wglGetExtensionsStringARB</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ </command>
+ <command>
+ <proto>const char *<name>wglGetExtensionsStringEXT</name></proto>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetFrameUsageI3D</name></proto>
+ <param>float *<name>pUsage</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetGammaTableI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>iEntries</name></param>
+ <param><ptype>USHORT</ptype> *<name>puRed</name></param>
+ <param><ptype>USHORT</ptype> *<name>puGreen</name></param>
+ <param><ptype>USHORT</ptype> *<name>puBlue</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetGammaTableParametersI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>iAttribute</name></param>
+ <param>int *<name>piValue</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetGenlockSampleRateI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> *<name>uRate</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetGenlockSourceDelayI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> *<name>uDelay</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetGenlockSourceEdgeI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> *<name>uEdge</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetGenlockSourceI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> *<name>uSource</name></param>
+ </command>
+ <command>
+ <proto><ptype>UINT</ptype> <name>wglGetGPUIDsAMD</name></proto>
+ <param><ptype>UINT</ptype> <name>maxCount</name></param>
+ <param><ptype>UINT</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto><ptype>INT</ptype> <name>wglGetGPUInfoAMD</name></proto>
+ <param><ptype>UINT</ptype> <name>id</name></param>
+ <param>int <name>property</name></param>
+ <param><ptype>GLenum</ptype> <name>dataType</name></param>
+ <param><ptype>UINT</ptype> <name>size</name></param>
+ <param>void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>int <name>wglGetLayerPaletteEntries</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>iLayerPlane</name></param>
+ <param>int <name>iStart</name></param>
+ <param>int <name>cEntries</name></param>
+ <param>const <ptype>COLORREF</ptype> *<name>pcr</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetMscRateOML</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param><ptype>INT32</ptype> *<name>numerator</name></param>
+ <param><ptype>INT32</ptype> *<name>denominator</name></param>
+ </command>
+ <command>
+ <proto><ptype>HDC</ptype> <name>wglGetPbufferDCARB</name></proto>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>HDC</ptype> <name>wglGetPbufferDCEXT</name></proto>
+ <param><ptype>HPBUFFEREXT</ptype> <name>hPbuffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetPixelFormatAttribfvARB</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>iPixelFormat</name></param>
+ <param>int <name>iLayerPlane</name></param>
+ <param><ptype>UINT</ptype> <name>nAttributes</name></param>
+ <param>const int *<name>piAttributes</name></param>
+ <param><ptype>FLOAT</ptype> *<name>pfValues</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetPixelFormatAttribfvEXT</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>iPixelFormat</name></param>
+ <param>int <name>iLayerPlane</name></param>
+ <param><ptype>UINT</ptype> <name>nAttributes</name></param>
+ <param>int *<name>piAttributes</name></param>
+ <param><ptype>FLOAT</ptype> *<name>pfValues</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetPixelFormatAttribivARB</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>iPixelFormat</name></param>
+ <param>int <name>iLayerPlane</name></param>
+ <param><ptype>UINT</ptype> <name>nAttributes</name></param>
+ <param>const int *<name>piAttributes</name></param>
+ <param>int *<name>piValues</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetPixelFormatAttribivEXT</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>iPixelFormat</name></param>
+ <param>int <name>iLayerPlane</name></param>
+ <param><ptype>UINT</ptype> <name>nAttributes</name></param>
+ <param>int *<name>piAttributes</name></param>
+ <param>int *<name>piValues</name></param>
+ </command>
+ <command>
+ <proto><ptype>PROC</ptype> <name>wglGetProcAddress</name></proto>
+ <param><ptype>LPCSTR</ptype> <name>lpszProc</name></param>
+ </command>
+ <command>
+ <proto>int <name>wglGetSwapIntervalEXT</name></proto>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetSyncValuesOML</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param><ptype>INT64</ptype> *<name>ust</name></param>
+ <param><ptype>INT64</ptype> *<name>msc</name></param>
+ <param><ptype>INT64</ptype> *<name>sbc</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetVideoDeviceNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>numDevices</name></param>
+ <param><ptype>HPVIDEODEV</ptype> *<name>hVideoDevice</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetVideoInfoNV</name></proto>
+ <param><ptype>HPVIDEODEV</ptype> <name>hpVideoDevice</name></param>
+ <param>unsigned long *<name>pulCounterOutputPbuffer</name></param>
+ <param>unsigned long *<name>pulCounterOutputVideo</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglIsEnabledFrameLockI3D</name></proto>
+ <param><ptype>BOOL</ptype> *<name>pFlag</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglIsEnabledGenlockI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>BOOL</ptype> *<name>pFlag</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglJoinSwapGroupNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>GLuint</ptype> <name>group</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>wglLoadDisplayColorTableEXT</name></proto>
+ <param>const <ptype>GLushort</ptype> *<name>table</name></param>
+ <param><ptype>GLuint</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglLockVideoCaptureDeviceNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDc</name></param>
+ <param><ptype>HVIDEOINPUTDEVICENV</ptype> <name>hDevice</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglMakeAssociatedContextCurrentAMD</name></proto>
+ <param><ptype>HGLRC</ptype> <name>hglrc</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglMakeContextCurrentARB</name></proto>
+ <param><ptype>HDC</ptype> <name>hDrawDC</name></param>
+ <param><ptype>HDC</ptype> <name>hReadDC</name></param>
+ <param><ptype>HGLRC</ptype> <name>hglrc</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglMakeContextCurrentEXT</name></proto>
+ <param><ptype>HDC</ptype> <name>hDrawDC</name></param>
+ <param><ptype>HDC</ptype> <name>hReadDC</name></param>
+ <param><ptype>HGLRC</ptype> <name>hglrc</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglMakeCurrent</name></proto>
+ <param><ptype>HDC</ptype> <name>hDc</name></param>
+ <param><ptype>HGLRC</ptype> <name>newContext</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQueryCurrentContextNV</name></proto>
+ <param>int <name>iAttribute</name></param>
+ <param>int *<name>piValue</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQueryFrameCountNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>GLuint</ptype> *<name>count</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQueryFrameLockMasterI3D</name></proto>
+ <param><ptype>BOOL</ptype> *<name>pFlag</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQueryFrameTrackingI3D</name></proto>
+ <param><ptype>DWORD</ptype> *<name>pFrameCount</name></param>
+ <param><ptype>DWORD</ptype> *<name>pMissedFrames</name></param>
+ <param>float *<name>pLastMissedUsage</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQueryGenlockMaxSourceDelayI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> *<name>uMaxLineDelay</name></param>
+ <param><ptype>UINT</ptype> *<name>uMaxPixelDelay</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQueryMaxSwapGroupsNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>GLuint</ptype> *<name>maxGroups</name></param>
+ <param><ptype>GLuint</ptype> *<name>maxBarriers</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQueryPbufferARB</name></proto>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ <param>int <name>iAttribute</name></param>
+ <param>int *<name>piValue</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQueryPbufferEXT</name></proto>
+ <param><ptype>HPBUFFEREXT</ptype> <name>hPbuffer</name></param>
+ <param>int <name>iAttribute</name></param>
+ <param>int *<name>piValue</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQuerySwapGroupNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>GLuint</ptype> *<name>group</name></param>
+ <param><ptype>GLuint</ptype> *<name>barrier</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQueryVideoCaptureDeviceNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDc</name></param>
+ <param><ptype>HVIDEOINPUTDEVICENV</ptype> <name>hDevice</name></param>
+ <param>int <name>iAttribute</name></param>
+ <param>int *<name>piValue</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglRealizeLayerPalette</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>iLayerPlane</name></param>
+ <param><ptype>BOOL</ptype> <name>bRealize</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglReleaseImageBufferEventsI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>const <ptype>LPVOID</ptype> *<name>pAddress</name></param>
+ <param><ptype>UINT</ptype> <name>count</name></param>
+ </command>
+ <command>
+ <proto>int <name>wglReleasePbufferDCARB</name></proto>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ </command>
+ <command>
+ <proto>int <name>wglReleasePbufferDCEXT</name></proto>
+ <param><ptype>HPBUFFEREXT</ptype> <name>hPbuffer</name></param>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglReleaseTexImageARB</name></proto>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ <param>int <name>iBuffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglReleaseVideoCaptureDeviceNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDc</name></param>
+ <param><ptype>HVIDEOINPUTDEVICENV</ptype> <name>hDevice</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglReleaseVideoDeviceNV</name></proto>
+ <param><ptype>HPVIDEODEV</ptype> <name>hVideoDevice</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglReleaseVideoImageNV</name></proto>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ <param>int <name>iVideoBuffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglResetFrameCountNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglRestoreBufferRegionARB</name></proto>
+ <param><ptype>HANDLE</ptype> <name>hRegion</name></param>
+ <param>int <name>x</name></param>
+ <param>int <name>y</name></param>
+ <param>int <name>width</name></param>
+ <param>int <name>height</name></param>
+ <param>int <name>xSrc</name></param>
+ <param>int <name>ySrc</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglSaveBufferRegionARB</name></proto>
+ <param><ptype>HANDLE</ptype> <name>hRegion</name></param>
+ <param>int <name>x</name></param>
+ <param>int <name>y</name></param>
+ <param>int <name>width</name></param>
+ <param>int <name>height</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglSendPbufferToVideoNV</name></proto>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ <param>int <name>iBufferType</name></param>
+ <param>unsigned long *<name>pulCounterPbuffer</name></param>
+ <param><ptype>BOOL</ptype> <name>bBlock</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglSetDigitalVideoParametersI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>iAttribute</name></param>
+ <param>const int *<name>piValue</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglSetGammaTableI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>iEntries</name></param>
+ <param>const <ptype>USHORT</ptype> *<name>puRed</name></param>
+ <param>const <ptype>USHORT</ptype> *<name>puGreen</name></param>
+ <param>const <ptype>USHORT</ptype> *<name>puBlue</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglSetGammaTableParametersI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>iAttribute</name></param>
+ <param>const int *<name>piValue</name></param>
+ </command>
+ <command>
+ <proto>int <name>wglSetLayerPaletteEntries</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>iLayerPlane</name></param>
+ <param>int <name>iStart</name></param>
+ <param>int <name>cEntries</name></param>
+ <param>const <ptype>COLORREF</ptype> *<name>pcr</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglSetPbufferAttribARB</name></proto>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ <param>const int *<name>piAttribList</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglSetStereoEmitterState3DL</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> <name>uState</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglShareLists</name></proto>
+ <param><ptype>HGLRC</ptype> <name>hrcSrvShare</name></param>
+ <param><ptype>HGLRC</ptype> <name>hrcSrvSource</name></param>
+ </command>
+ <command>
+ <proto><ptype>INT64</ptype> <name>wglSwapBuffersMscOML</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param><ptype>INT64</ptype> <name>target_msc</name></param>
+ <param><ptype>INT64</ptype> <name>divisor</name></param>
+ <param><ptype>INT64</ptype> <name>remainder</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglSwapLayerBuffers</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param><ptype>UINT</ptype> <name>fuFlags</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglSwapIntervalEXT</name></proto>
+ <param>int <name>interval</name></param>
+ </command>
+ <command>
+ <proto><ptype>INT64</ptype> <name>wglSwapLayerBuffersMscOML</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>fuPlanes</name></param>
+ <param><ptype>INT64</ptype> <name>target_msc</name></param>
+ <param><ptype>INT64</ptype> <name>divisor</name></param>
+ <param><ptype>INT64</ptype> <name>remainder</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglUseFontBitmaps</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>DWORD</ptype> <name>first</name></param>
+ <param><ptype>DWORD</ptype> <name>count</name></param>
+ <param><ptype>DWORD</ptype> <name>listBase</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglUseFontBitmapsA</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>DWORD</ptype> <name>first</name></param>
+ <param><ptype>DWORD</ptype> <name>count</name></param>
+ <param><ptype>DWORD</ptype> <name>listBase</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglUseFontBitmapsW</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>DWORD</ptype> <name>first</name></param>
+ <param><ptype>DWORD</ptype> <name>count</name></param>
+ <param><ptype>DWORD</ptype> <name>listBase</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglUseFontOutlines</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>DWORD</ptype> <name>first</name></param>
+ <param><ptype>DWORD</ptype> <name>count</name></param>
+ <param><ptype>DWORD</ptype> <name>listBase</name></param>
+ <param><ptype>FLOAT</ptype> <name>deviation</name></param>
+ <param><ptype>FLOAT</ptype> <name>extrusion</name></param>
+ <param>int <name>format</name></param>
+ <param><ptype>LPGLYPHMETRICSFLOAT</ptype> <name>lpgmf</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglUseFontOutlinesA</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>DWORD</ptype> <name>first</name></param>
+ <param><ptype>DWORD</ptype> <name>count</name></param>
+ <param><ptype>DWORD</ptype> <name>listBase</name></param>
+ <param><ptype>FLOAT</ptype> <name>deviation</name></param>
+ <param><ptype>FLOAT</ptype> <name>extrusion</name></param>
+ <param>int <name>format</name></param>
+ <param><ptype>LPGLYPHMETRICSFLOAT</ptype> <name>lpgmf</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglUseFontOutlinesW</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>DWORD</ptype> <name>first</name></param>
+ <param><ptype>DWORD</ptype> <name>count</name></param>
+ <param><ptype>DWORD</ptype> <name>listBase</name></param>
+ <param><ptype>FLOAT</ptype> <name>deviation</name></param>
+ <param><ptype>FLOAT</ptype> <name>extrusion</name></param>
+ <param>int <name>format</name></param>
+ <param><ptype>LPGLYPHMETRICSFLOAT</ptype> <name>lpgmf</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglWaitForMscOML</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param><ptype>INT64</ptype> <name>target_msc</name></param>
+ <param><ptype>INT64</ptype> <name>divisor</name></param>
+ <param><ptype>INT64</ptype> <name>remainder</name></param>
+ <param><ptype>INT64</ptype> *<name>ust</name></param>
+ <param><ptype>INT64</ptype> *<name>msc</name></param>
+ <param><ptype>INT64</ptype> *<name>sbc</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglWaitForSbcOML</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param><ptype>INT64</ptype> <name>target_sbc</name></param>
+ <param><ptype>INT64</ptype> *<name>ust</name></param>
+ <param><ptype>INT64</ptype> *<name>msc</name></param>
+ <param><ptype>INT64</ptype> *<name>sbc</name></param>
+ </command>
+ </commands>
+
+ <!-- SECTION: WGL API interface definitions. -->
+ <feature api="wgl" name="WGL_VERSION_1_0" number="1.0">
+ <require>
+ <enum name="WGL_FONT_LINES"/>
+ <enum name="WGL_FONT_POLYGONS"/>
+ <enum name="WGL_SWAP_MAIN_PLANE"/>
+ <enum name="WGL_SWAP_OVERLAY1"/>
+ <enum name="WGL_SWAP_OVERLAY2"/>
+ <enum name="WGL_SWAP_OVERLAY3"/>
+ <enum name="WGL_SWAP_OVERLAY4"/>
+ <enum name="WGL_SWAP_OVERLAY5"/>
+ <enum name="WGL_SWAP_OVERLAY6"/>
+ <enum name="WGL_SWAP_OVERLAY7"/>
+ <enum name="WGL_SWAP_OVERLAY8"/>
+ <enum name="WGL_SWAP_OVERLAY9"/>
+ <enum name="WGL_SWAP_OVERLAY10"/>
+ <enum name="WGL_SWAP_OVERLAY11"/>
+ <enum name="WGL_SWAP_OVERLAY12"/>
+ <enum name="WGL_SWAP_OVERLAY13"/>
+ <enum name="WGL_SWAP_OVERLAY14"/>
+ <enum name="WGL_SWAP_OVERLAY15"/>
+ <enum name="WGL_SWAP_UNDERLAY1"/>
+ <enum name="WGL_SWAP_UNDERLAY2"/>
+ <enum name="WGL_SWAP_UNDERLAY3"/>
+ <enum name="WGL_SWAP_UNDERLAY4"/>
+ <enum name="WGL_SWAP_UNDERLAY5"/>
+ <enum name="WGL_SWAP_UNDERLAY6"/>
+ <enum name="WGL_SWAP_UNDERLAY7"/>
+ <enum name="WGL_SWAP_UNDERLAY8"/>
+ <enum name="WGL_SWAP_UNDERLAY9"/>
+ <enum name="WGL_SWAP_UNDERLAY10"/>
+ <enum name="WGL_SWAP_UNDERLAY11"/>
+ <enum name="WGL_SWAP_UNDERLAY12"/>
+ <enum name="WGL_SWAP_UNDERLAY13"/>
+ <enum name="WGL_SWAP_UNDERLAY14"/>
+ <enum name="WGL_SWAP_UNDERLAY15"/>
+ <command name="ChoosePixelFormat"/>
+ <command name="DescribePixelFormat"/>
+ <command name="GetEnhMetaFilePixelFormat"/>
+ <command name="GetPixelFormat"/>
+ <command name="SetPixelFormat"/>
+ <command name="SwapBuffers"/>
+ <command name="wglCopyContext"/>
+ <command name="wglCreateContext"/>
+ <command name="wglCreateLayerContext"/>
+ <command name="wglDeleteContext"/>
+ <command name="wglDescribeLayerPlane"/>
+ <command name="wglGetCurrentContext"/>
+ <command name="wglGetCurrentDC"/>
+ <command name="wglGetLayerPaletteEntries"/>
+ <command name="wglGetProcAddress"/>
+ <command name="wglMakeCurrent"/>
+ <command name="wglRealizeLayerPalette"/>
+ <command name="wglSetLayerPaletteEntries"/>
+ <command name="wglShareLists"/>
+ <command name="wglSwapLayerBuffers"/>
+ <command name="wglUseFontBitmaps"/>
+ <command name="wglUseFontBitmapsA"/>
+ <command name="wglUseFontBitmapsW"/>
+ <command name="wglUseFontOutlines"/>
+ <command name="wglUseFontOutlinesA"/>
+ <command name="wglUseFontOutlinesW"/>
+ </require>
+ </feature>
+
+ <!-- SECTION: WGL extension interface definitions -->
+ <extensions>
+ <extension name="WGL_ARB_buffer_region" supported="wgl">
+ <require>
+ <enum name="WGL_FRONT_COLOR_BUFFER_BIT_ARB"/>
+ <enum name="WGL_BACK_COLOR_BUFFER_BIT_ARB"/>
+ <enum name="WGL_DEPTH_BUFFER_BIT_ARB"/>
+ <enum name="WGL_STENCIL_BUFFER_BIT_ARB"/>
+ <command name="wglCreateBufferRegionARB"/>
+ <command name="wglDeleteBufferRegionARB"/>
+ <command name="wglSaveBufferRegionARB"/>
+ <command name="wglRestoreBufferRegionARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_multisample" supported="wgl">
+ <require>
+ <enum name="WGL_SAMPLE_BUFFERS_ARB"/>
+ <enum name="WGL_SAMPLES_ARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_extensions_string" supported="wgl">
+ <require>
+ <command name="wglGetExtensionsStringARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_pixel_format" supported="wgl">
+ <require>
+ <enum name="WGL_NUMBER_PIXEL_FORMATS_ARB"/>
+ <enum name="WGL_DRAW_TO_WINDOW_ARB"/>
+ <enum name="WGL_DRAW_TO_BITMAP_ARB"/>
+ <enum name="WGL_ACCELERATION_ARB"/>
+ <enum name="WGL_NEED_PALETTE_ARB"/>
+ <enum name="WGL_NEED_SYSTEM_PALETTE_ARB"/>
+ <enum name="WGL_SWAP_LAYER_BUFFERS_ARB"/>
+ <enum name="WGL_SWAP_METHOD_ARB"/>
+ <enum name="WGL_NUMBER_OVERLAYS_ARB"/>
+ <enum name="WGL_NUMBER_UNDERLAYS_ARB"/>
+ <enum name="WGL_TRANSPARENT_ARB"/>
+ <enum name="WGL_TRANSPARENT_RED_VALUE_ARB"/>
+ <enum name="WGL_TRANSPARENT_GREEN_VALUE_ARB"/>
+ <enum name="WGL_TRANSPARENT_BLUE_VALUE_ARB"/>
+ <enum name="WGL_TRANSPARENT_ALPHA_VALUE_ARB"/>
+ <enum name="WGL_TRANSPARENT_INDEX_VALUE_ARB"/>
+ <enum name="WGL_SHARE_DEPTH_ARB"/>
+ <enum name="WGL_SHARE_STENCIL_ARB"/>
+ <enum name="WGL_SHARE_ACCUM_ARB"/>
+ <enum name="WGL_SUPPORT_GDI_ARB"/>
+ <enum name="WGL_SUPPORT_OPENGL_ARB"/>
+ <enum name="WGL_DOUBLE_BUFFER_ARB"/>
+ <enum name="WGL_STEREO_ARB"/>
+ <enum name="WGL_PIXEL_TYPE_ARB"/>
+ <enum name="WGL_COLOR_BITS_ARB"/>
+ <enum name="WGL_RED_BITS_ARB"/>
+ <enum name="WGL_RED_SHIFT_ARB"/>
+ <enum name="WGL_GREEN_BITS_ARB"/>
+ <enum name="WGL_GREEN_SHIFT_ARB"/>
+ <enum name="WGL_BLUE_BITS_ARB"/>
+ <enum name="WGL_BLUE_SHIFT_ARB"/>
+ <enum name="WGL_ALPHA_BITS_ARB"/>
+ <enum name="WGL_ALPHA_SHIFT_ARB"/>
+ <enum name="WGL_ACCUM_BITS_ARB"/>
+ <enum name="WGL_ACCUM_RED_BITS_ARB"/>
+ <enum name="WGL_ACCUM_GREEN_BITS_ARB"/>
+ <enum name="WGL_ACCUM_BLUE_BITS_ARB"/>
+ <enum name="WGL_ACCUM_ALPHA_BITS_ARB"/>
+ <enum name="WGL_DEPTH_BITS_ARB"/>
+ <enum name="WGL_STENCIL_BITS_ARB"/>
+ <enum name="WGL_AUX_BUFFERS_ARB"/>
+ <enum name="WGL_NO_ACCELERATION_ARB"/>
+ <enum name="WGL_GENERIC_ACCELERATION_ARB"/>
+ <enum name="WGL_FULL_ACCELERATION_ARB"/>
+ <enum name="WGL_SWAP_EXCHANGE_ARB"/>
+ <enum name="WGL_SWAP_COPY_ARB"/>
+ <enum name="WGL_SWAP_UNDEFINED_ARB"/>
+ <enum name="WGL_TYPE_RGBA_ARB"/>
+ <enum name="WGL_TYPE_COLORINDEX_ARB"/>
+ <command name="wglGetPixelFormatAttribivARB"/>
+ <command name="wglGetPixelFormatAttribfvARB"/>
+ <command name="wglChoosePixelFormatARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_make_current_read" supported="wgl">
+ <require>
+ <enum name="ERROR_INVALID_PIXEL_TYPE_ARB"/>
+ <enum name="ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB"/>
+ <command name="wglMakeContextCurrentARB"/>
+ <command name="wglGetCurrentReadDCARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_pbuffer" supported="wgl">
+ <require>
+ <enum name="WGL_DRAW_TO_PBUFFER_ARB"/>
+ <enum name="WGL_MAX_PBUFFER_PIXELS_ARB"/>
+ <enum name="WGL_MAX_PBUFFER_WIDTH_ARB"/>
+ <enum name="WGL_MAX_PBUFFER_HEIGHT_ARB"/>
+ <enum name="WGL_PBUFFER_LARGEST_ARB"/>
+ <enum name="WGL_PBUFFER_WIDTH_ARB"/>
+ <enum name="WGL_PBUFFER_HEIGHT_ARB"/>
+ <enum name="WGL_PBUFFER_LOST_ARB"/>
+ <command name="wglCreatePbufferARB"/>
+ <command name="wglGetPbufferDCARB"/>
+ <command name="wglReleasePbufferDCARB"/>
+ <command name="wglDestroyPbufferARB"/>
+ <command name="wglQueryPbufferARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_render_texture" supported="wgl">
+ <require>
+ <enum name="WGL_BIND_TO_TEXTURE_RGB_ARB"/>
+ <enum name="WGL_BIND_TO_TEXTURE_RGBA_ARB"/>
+ <enum name="WGL_TEXTURE_FORMAT_ARB"/>
+ <enum name="WGL_TEXTURE_TARGET_ARB"/>
+ <enum name="WGL_MIPMAP_TEXTURE_ARB"/>
+ <enum name="WGL_TEXTURE_RGB_ARB"/>
+ <enum name="WGL_TEXTURE_RGBA_ARB"/>
+ <enum name="WGL_NO_TEXTURE_ARB"/>
+ <enum name="WGL_TEXTURE_CUBE_MAP_ARB"/>
+ <enum name="WGL_TEXTURE_1D_ARB"/>
+ <enum name="WGL_TEXTURE_2D_ARB"/>
+ <enum name="WGL_MIPMAP_LEVEL_ARB"/>
+ <enum name="WGL_CUBE_MAP_FACE_ARB"/>
+ <enum name="WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB"/>
+ <enum name="WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB"/>
+ <enum name="WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB"/>
+ <enum name="WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB"/>
+ <enum name="WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB"/>
+ <enum name="WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB"/>
+ <enum name="WGL_FRONT_LEFT_ARB"/>
+ <enum name="WGL_FRONT_RIGHT_ARB"/>
+ <enum name="WGL_BACK_LEFT_ARB"/>
+ <enum name="WGL_BACK_RIGHT_ARB"/>
+ <enum name="WGL_AUX0_ARB"/>
+ <enum name="WGL_AUX1_ARB"/>
+ <enum name="WGL_AUX2_ARB"/>
+ <enum name="WGL_AUX3_ARB"/>
+ <enum name="WGL_AUX4_ARB"/>
+ <enum name="WGL_AUX5_ARB"/>
+ <enum name="WGL_AUX6_ARB"/>
+ <enum name="WGL_AUX7_ARB"/>
+ <enum name="WGL_AUX8_ARB"/>
+ <enum name="WGL_AUX9_ARB"/>
+ <command name="wglBindTexImageARB"/>
+ <command name="wglReleaseTexImageARB"/>
+ <command name="wglSetPbufferAttribARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_pixel_format_float" supported="wgl">
+ <require>
+ <enum name="WGL_TYPE_RGBA_FLOAT_ARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_framebuffer_sRGB" supported="wgl">
+ <require>
+ <enum name="WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_create_context" supported="wgl">
+ <require>
+ <enum name="WGL_CONTEXT_DEBUG_BIT_ARB"/>
+ <enum name="WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB"/>
+ <enum name="WGL_CONTEXT_MAJOR_VERSION_ARB"/>
+ <enum name="WGL_CONTEXT_MINOR_VERSION_ARB"/>
+ <enum name="WGL_CONTEXT_LAYER_PLANE_ARB"/>
+ <enum name="WGL_CONTEXT_FLAGS_ARB"/>
+ <enum name="ERROR_INVALID_VERSION_ARB"/>
+ <command name="wglCreateContextAttribsARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_create_context_profile" supported="wgl">
+ <require>
+ <enum name="WGL_CONTEXT_PROFILE_MASK_ARB"/>
+ <enum name="WGL_CONTEXT_CORE_PROFILE_BIT_ARB"/>
+ <enum name="WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB"/>
+ <enum name="ERROR_INVALID_PROFILE_ARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_create_context_robustness" supported="wgl">
+ <require>
+ <enum name="WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB"/>
+ <enum name="WGL_LOSE_CONTEXT_ON_RESET_ARB"/>
+ <enum name="WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB"/>
+ <enum name="WGL_NO_RESET_NOTIFICATION_ARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_robustness_application_isolation" supported="wgl">
+ <require>
+ <enum name="WGL_CONTEXT_RESET_ISOLATION_BIT_ARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_robustness_share_group_isolation" supported="wgl">
+ <require>
+ <enum name="WGL_CONTEXT_RESET_ISOLATION_BIT_ARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_display_color_table" supported="wgl">
+ <require>
+ <command name="wglCreateDisplayColorTableEXT"/>
+ <command name="wglLoadDisplayColorTableEXT"/>
+ <command name="wglBindDisplayColorTableEXT"/>
+ <command name="wglDestroyDisplayColorTableEXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_extensions_string" supported="wgl">
+ <require>
+ <command name="wglGetExtensionsStringEXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_make_current_read" supported="wgl">
+ <require>
+ <enum name="ERROR_INVALID_PIXEL_TYPE_EXT"/>
+ <command name="wglMakeContextCurrentEXT"/>
+ <command name="wglGetCurrentReadDCEXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_pbuffer" supported="wgl">
+ <require>
+ <enum name="WGL_DRAW_TO_PBUFFER_EXT"/>
+ <enum name="WGL_MAX_PBUFFER_PIXELS_EXT"/>
+ <enum name="WGL_MAX_PBUFFER_WIDTH_EXT"/>
+ <enum name="WGL_MAX_PBUFFER_HEIGHT_EXT"/>
+ <enum name="WGL_OPTIMAL_PBUFFER_WIDTH_EXT"/>
+ <enum name="WGL_OPTIMAL_PBUFFER_HEIGHT_EXT"/>
+ <enum name="WGL_PBUFFER_LARGEST_EXT"/>
+ <enum name="WGL_PBUFFER_WIDTH_EXT"/>
+ <enum name="WGL_PBUFFER_HEIGHT_EXT"/>
+ <command name="wglCreatePbufferEXT"/>
+ <command name="wglGetPbufferDCEXT"/>
+ <command name="wglReleasePbufferDCEXT"/>
+ <command name="wglDestroyPbufferEXT"/>
+ <command name="wglQueryPbufferEXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_pixel_format" supported="wgl">
+ <require>
+ <enum name="WGL_NUMBER_PIXEL_FORMATS_EXT"/>
+ <enum name="WGL_DRAW_TO_WINDOW_EXT"/>
+ <enum name="WGL_DRAW_TO_BITMAP_EXT"/>
+ <enum name="WGL_ACCELERATION_EXT"/>
+ <enum name="WGL_NEED_PALETTE_EXT"/>
+ <enum name="WGL_NEED_SYSTEM_PALETTE_EXT"/>
+ <enum name="WGL_SWAP_LAYER_BUFFERS_EXT"/>
+ <enum name="WGL_SWAP_METHOD_EXT"/>
+ <enum name="WGL_NUMBER_OVERLAYS_EXT"/>
+ <enum name="WGL_NUMBER_UNDERLAYS_EXT"/>
+ <enum name="WGL_TRANSPARENT_EXT"/>
+ <enum name="WGL_TRANSPARENT_VALUE_EXT"/>
+ <enum name="WGL_SHARE_DEPTH_EXT"/>
+ <enum name="WGL_SHARE_STENCIL_EXT"/>
+ <enum name="WGL_SHARE_ACCUM_EXT"/>
+ <enum name="WGL_SUPPORT_GDI_EXT"/>
+ <enum name="WGL_SUPPORT_OPENGL_EXT"/>
+ <enum name="WGL_DOUBLE_BUFFER_EXT"/>
+ <enum name="WGL_STEREO_EXT"/>
+ <enum name="WGL_PIXEL_TYPE_EXT"/>
+ <enum name="WGL_COLOR_BITS_EXT"/>
+ <enum name="WGL_RED_BITS_EXT"/>
+ <enum name="WGL_RED_SHIFT_EXT"/>
+ <enum name="WGL_GREEN_BITS_EXT"/>
+ <enum name="WGL_GREEN_SHIFT_EXT"/>
+ <enum name="WGL_BLUE_BITS_EXT"/>
+ <enum name="WGL_BLUE_SHIFT_EXT"/>
+ <enum name="WGL_ALPHA_BITS_EXT"/>
+ <enum name="WGL_ALPHA_SHIFT_EXT"/>
+ <enum name="WGL_ACCUM_BITS_EXT"/>
+ <enum name="WGL_ACCUM_RED_BITS_EXT"/>
+ <enum name="WGL_ACCUM_GREEN_BITS_EXT"/>
+ <enum name="WGL_ACCUM_BLUE_BITS_EXT"/>
+ <enum name="WGL_ACCUM_ALPHA_BITS_EXT"/>
+ <enum name="WGL_DEPTH_BITS_EXT"/>
+ <enum name="WGL_STENCIL_BITS_EXT"/>
+ <enum name="WGL_AUX_BUFFERS_EXT"/>
+ <enum name="WGL_NO_ACCELERATION_EXT"/>
+ <enum name="WGL_GENERIC_ACCELERATION_EXT"/>
+ <enum name="WGL_FULL_ACCELERATION_EXT"/>
+ <enum name="WGL_SWAP_EXCHANGE_EXT"/>
+ <enum name="WGL_SWAP_COPY_EXT"/>
+ <enum name="WGL_SWAP_UNDEFINED_EXT"/>
+ <enum name="WGL_TYPE_RGBA_EXT"/>
+ <enum name="WGL_TYPE_COLORINDEX_EXT"/>
+ <command name="wglGetPixelFormatAttribivEXT"/>
+ <command name="wglGetPixelFormatAttribfvEXT"/>
+ <command name="wglChoosePixelFormatEXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_swap_control" supported="wgl">
+ <require>
+ <command name="wglSwapIntervalEXT"/>
+ <command name="wglGetSwapIntervalEXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_depth_float" supported="wgl">
+ <require>
+ <enum name="WGL_DEPTH_FLOAT_EXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_vertex_array_range" supported="wgl">
+ <require>
+ <command name="wglAllocateMemoryNV"/>
+ <command name="wglFreeMemoryNV"/>
+ </require>
+ </extension>
+ <extension name="WGL_3DFX_multisample" supported="wgl">
+ <require>
+ <enum name="WGL_SAMPLE_BUFFERS_3DFX"/>
+ <enum name="WGL_SAMPLES_3DFX"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_multisample" supported="wgl">
+ <require>
+ <enum name="WGL_SAMPLE_BUFFERS_EXT"/>
+ <enum name="WGL_SAMPLES_EXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_OML_sync_control" supported="wgl">
+ <require>
+ <command name="wglGetSyncValuesOML"/>
+ <command name="wglGetMscRateOML"/>
+ <command name="wglSwapBuffersMscOML"/>
+ <command name="wglSwapLayerBuffersMscOML"/>
+ <command name="wglWaitForMscOML"/>
+ <command name="wglWaitForSbcOML"/>
+ </require>
+ </extension>
+ <extension name="WGL_I3D_digital_video_control" supported="wgl">
+ <require>
+ <enum name="WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D"/>
+ <enum name="WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D"/>
+ <enum name="WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D"/>
+ <enum name="WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D"/>
+ <command name="wglGetDigitalVideoParametersI3D"/>
+ <command name="wglSetDigitalVideoParametersI3D"/>
+ </require>
+ </extension>
+ <extension name="WGL_I3D_gamma" supported="wgl">
+ <require>
+ <enum name="WGL_GAMMA_TABLE_SIZE_I3D"/>
+ <enum name="WGL_GAMMA_EXCLUDE_DESKTOP_I3D"/>
+ <command name="wglGetGammaTableParametersI3D"/>
+ <command name="wglSetGammaTableParametersI3D"/>
+ <command name="wglGetGammaTableI3D"/>
+ <command name="wglSetGammaTableI3D"/>
+ </require>
+ </extension>
+ <extension name="WGL_I3D_genlock" supported="wgl">
+ <require>
+ <enum name="WGL_GENLOCK_SOURCE_MULTIVIEW_I3D"/>
+ <enum name="WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D"/>
+ <enum name="WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D"/>
+ <enum name="WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D"/>
+ <enum name="WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D"/>
+ <enum name="WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D"/>
+ <enum name="WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D"/>
+ <enum name="WGL_GENLOCK_SOURCE_EDGE_RISING_I3D"/>
+ <enum name="WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D"/>
+ <command name="wglEnableGenlockI3D"/>
+ <command name="wglDisableGenlockI3D"/>
+ <command name="wglIsEnabledGenlockI3D"/>
+ <command name="wglGenlockSourceI3D"/>
+ <command name="wglGetGenlockSourceI3D"/>
+ <command name="wglGenlockSourceEdgeI3D"/>
+ <command name="wglGetGenlockSourceEdgeI3D"/>
+ <command name="wglGenlockSampleRateI3D"/>
+ <command name="wglGetGenlockSampleRateI3D"/>
+ <command name="wglGenlockSourceDelayI3D"/>
+ <command name="wglGetGenlockSourceDelayI3D"/>
+ <command name="wglQueryGenlockMaxSourceDelayI3D"/>
+ </require>
+ </extension>
+ <extension name="WGL_I3D_image_buffer" supported="wgl">
+ <require>
+ <enum name="WGL_IMAGE_BUFFER_MIN_ACCESS_I3D"/>
+ <enum name="WGL_IMAGE_BUFFER_LOCK_I3D"/>
+ <command name="wglCreateImageBufferI3D"/>
+ <command name="wglDestroyImageBufferI3D"/>
+ <command name="wglAssociateImageBufferEventsI3D"/>
+ <command name="wglReleaseImageBufferEventsI3D"/>
+ </require>
+ </extension>
+ <extension name="WGL_I3D_swap_frame_lock" supported="wgl">
+ <require>
+ <command name="wglEnableFrameLockI3D"/>
+ <command name="wglDisableFrameLockI3D"/>
+ <command name="wglIsEnabledFrameLockI3D"/>
+ <command name="wglQueryFrameLockMasterI3D"/>
+ </require>
+ </extension>
+ <extension name="WGL_I3D_swap_frame_usage" supported="wgl">
+ <require>
+ <command name="wglGetFrameUsageI3D"/>
+ <command name="wglBeginFrameTrackingI3D"/>
+ <command name="wglEndFrameTrackingI3D"/>
+ <command name="wglQueryFrameTrackingI3D"/>
+ </require>
+ </extension>
+ <extension name="WGL_ATI_pixel_format_float" supported="wgl">
+ <require>
+ <enum name="WGL_TYPE_RGBA_FLOAT_ATI"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_float_buffer" supported="wgl">
+ <require>
+ <enum name="WGL_FLOAT_COMPONENTS_NV"/>
+ <enum name="WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV"/>
+ <enum name="WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV"/>
+ <enum name="WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV"/>
+ <enum name="WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV"/>
+ <enum name="WGL_TEXTURE_FLOAT_R_NV"/>
+ <enum name="WGL_TEXTURE_FLOAT_RG_NV"/>
+ <enum name="WGL_TEXTURE_FLOAT_RGB_NV"/>
+ <enum name="WGL_TEXTURE_FLOAT_RGBA_NV"/>
+ </require>
+ </extension>
+ <extension name="WGL_3DL_stereo_control" supported="wgl">
+ <require>
+ <enum name="WGL_STEREO_EMITTER_ENABLE_3DL"/>
+ <enum name="WGL_STEREO_EMITTER_DISABLE_3DL"/>
+ <enum name="WGL_STEREO_POLARITY_NORMAL_3DL"/>
+ <enum name="WGL_STEREO_POLARITY_INVERT_3DL"/>
+ <command name="wglSetStereoEmitterState3DL"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_pixel_format_packed_float" supported="wgl">
+ <require>
+ <enum name="WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_framebuffer_sRGB" supported="wgl">
+ <require>
+ <enum name="WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_present_video" supported="wgl">
+ <require>
+ <enum name="WGL_NUM_VIDEO_SLOTS_NV"/>
+ <command name="wglEnumerateVideoDevicesNV"/>
+ <command name="wglBindVideoDeviceNV"/>
+ <command name="wglQueryCurrentContextNV"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_video_output" supported="wgl">
+ <require>
+ <enum name="WGL_BIND_TO_VIDEO_RGB_NV"/>
+ <enum name="WGL_BIND_TO_VIDEO_RGBA_NV"/>
+ <enum name="WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV"/>
+ <enum name="WGL_VIDEO_OUT_COLOR_NV"/>
+ <enum name="WGL_VIDEO_OUT_ALPHA_NV"/>
+ <enum name="WGL_VIDEO_OUT_DEPTH_NV"/>
+ <enum name="WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV"/>
+ <enum name="WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV"/>
+ <enum name="WGL_VIDEO_OUT_FRAME"/>
+ <enum name="WGL_VIDEO_OUT_FIELD_1"/>
+ <enum name="WGL_VIDEO_OUT_FIELD_2"/>
+ <enum name="WGL_VIDEO_OUT_STACKED_FIELDS_1_2"/>
+ <enum name="WGL_VIDEO_OUT_STACKED_FIELDS_2_1"/>
+ <command name="wglGetVideoDeviceNV"/>
+ <command name="wglReleaseVideoDeviceNV"/>
+ <command name="wglBindVideoImageNV"/>
+ <command name="wglReleaseVideoImageNV"/>
+ <command name="wglSendPbufferToVideoNV"/>
+ <command name="wglGetVideoInfoNV"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_render_depth_texture" supported="wgl">
+ <require>
+ <enum name="WGL_BIND_TO_TEXTURE_DEPTH_NV"/>
+ <enum name="WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV"/>
+ <enum name="WGL_DEPTH_TEXTURE_FORMAT_NV"/>
+ <enum name="WGL_TEXTURE_DEPTH_COMPONENT_NV"/>
+ <enum name="WGL_DEPTH_COMPONENT_NV"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_render_texture_rectangle" supported="wgl">
+ <require>
+ <enum name="WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV"/>
+ <enum name="WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV"/>
+ <enum name="WGL_TEXTURE_RECTANGLE_NV"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_swap_group" supported="wgl">
+ <require>
+ <command name="wglJoinSwapGroupNV"/>
+ <command name="wglBindSwapBarrierNV"/>
+ <command name="wglQuerySwapGroupNV"/>
+ <command name="wglQueryMaxSwapGroupsNV"/>
+ <command name="wglQueryFrameCountNV"/>
+ <command name="wglResetFrameCountNV"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_gpu_affinity" supported="wgl">
+ <require>
+ <enum name="ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV"/>
+ <enum name="ERROR_MISSING_AFFINITY_MASK_NV"/>
+ <command name="wglEnumGpusNV"/>
+ <command name="wglEnumGpuDevicesNV"/>
+ <command name="wglCreateAffinityDCNV"/>
+ <command name="wglEnumGpusFromAffinityDCNV"/>
+ <command name="wglDeleteDCNV"/>
+ </require>
+ </extension>
+ <extension name="WGL_AMD_gpu_association" supported="wgl">
+ <require>
+ <enum name="WGL_GPU_VENDOR_AMD"/>
+ <enum name="WGL_GPU_RENDERER_STRING_AMD"/>
+ <enum name="WGL_GPU_OPENGL_VERSION_STRING_AMD"/>
+ <enum name="WGL_GPU_FASTEST_TARGET_GPUS_AMD"/>
+ <enum name="WGL_GPU_RAM_AMD"/>
+ <enum name="WGL_GPU_CLOCK_AMD"/>
+ <enum name="WGL_GPU_NUM_PIPES_AMD"/>
+ <enum name="WGL_GPU_NUM_SIMD_AMD"/>
+ <enum name="WGL_GPU_NUM_RB_AMD"/>
+ <enum name="WGL_GPU_NUM_SPI_AMD"/>
+ <command name="wglGetGPUIDsAMD"/>
+ <command name="wglGetGPUInfoAMD"/>
+ <command name="wglGetContextGPUIDAMD"/>
+ <command name="wglCreateAssociatedContextAMD"/>
+ <command name="wglCreateAssociatedContextAttribsAMD"/>
+ <command name="wglDeleteAssociatedContextAMD"/>
+ <command name="wglMakeAssociatedContextCurrentAMD"/>
+ <command name="wglGetCurrentAssociatedContextAMD"/>
+ <command name="wglBlitContextFramebufferAMD"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_video_capture" supported="wgl">
+ <require>
+ <enum name="WGL_UNIQUE_ID_NV"/>
+ <enum name="WGL_NUM_VIDEO_CAPTURE_SLOTS_NV"/>
+ <command name="wglBindVideoCaptureDeviceNV"/>
+ <command name="wglEnumerateVideoCaptureDevicesNV"/>
+ <command name="wglLockVideoCaptureDeviceNV"/>
+ <command name="wglQueryVideoCaptureDeviceNV"/>
+ <command name="wglReleaseVideoCaptureDeviceNV"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_copy_image" supported="wgl">
+ <require>
+ <command name="wglCopyImageSubDataNV"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_multisample_coverage" supported="wgl">
+ <require>
+ <enum name="WGL_COVERAGE_SAMPLES_NV"/>
+ <enum name="WGL_COLOR_SAMPLES_NV"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_create_context_es_profile" supported="wgl">
+ <require>
+ <enum name="WGL_CONTEXT_ES_PROFILE_BIT_EXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_create_context_es2_profile" supported="wgl">
+ <require>
+ <enum name="WGL_CONTEXT_ES2_PROFILE_BIT_EXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_DX_interop" supported="wgl">
+ <require>
+ <enum name="WGL_ACCESS_READ_ONLY_NV"/>
+ <enum name="WGL_ACCESS_READ_WRITE_NV"/>
+ <enum name="WGL_ACCESS_WRITE_DISCARD_NV"/>
+ <command name="wglDXSetResourceShareHandleNV"/>
+ <command name="wglDXOpenDeviceNV"/>
+ <command name="wglDXCloseDeviceNV"/>
+ <command name="wglDXRegisterObjectNV"/>
+ <command name="wglDXUnregisterObjectNV"/>
+ <command name="wglDXObjectAccessNV"/>
+ <command name="wglDXLockObjectsNV"/>
+ <command name="wglDXUnlockObjectsNV"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_DX_interop2" supported="wgl">
+ <require>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_swap_control_tear" supported="wgl">
+ <require>
+ </require>
+ </extension>
+ <extension name="WGL_NV_delay_before_swap" supported="wgl">
+ <require>
+ <command name="wglDelayBeforeSwapNV"/>
+ </require>
+ </extension>
+ </extensions>
+</registry>
diff --git a/xorg-server/hw/xwin/glx/wgl_ext_api.c b/xorg-server/hw/xwin/glx/wgl_ext_api.c
index 78b6e2a02..c11eb4f14 100644
--- a/xorg-server/hw/xwin/glx/wgl_ext_api.c
+++ b/xorg-server/hw/xwin/glx/wgl_ext_api.c
@@ -35,15 +35,20 @@
#include <GL/glext.h>
#include <glx/glxserver.h>
#include <glx/glxext.h>
-#include <GL/wglext.h>
+#include "wglext.h"
#include <wgl_ext_api.h>
#include "glwindows.h"
#define RESOLVE_DECL(type) \
static type type##proc = NULL;
+#ifdef _DEBUG
#define PRERESOLVE(type, symbol) \
type##proc = (type)wglGetProcAddress(symbol);
+#else
+#define PRERESOLVE(type, symbol) \
+ type##proc = (type)wglGetProcAddress(symbol);
+#endif
#define RESOLVE_RET(type, symbol, retval) \
if (type##proc == NULL) { \
diff --git a/xorg-server/hw/xwin/glx/wgl_ext_api.h b/xorg-server/hw/xwin/glx/wgl_ext_api.h
index b7231eb13..63b1d7ef1 100644
--- a/xorg-server/hw/xwin/glx/wgl_ext_api.h
+++ b/xorg-server/hw/xwin/glx/wgl_ext_api.h
@@ -29,7 +29,7 @@
#ifndef wgl_ext_api_h
#define wgl_ext_api_h
-#include <GL/wglext.h>
+#include "wglext.h"
void wglResolveExtensionProcs(void);
@@ -38,46 +38,46 @@ void wglResolveExtensionProcs(void);
XXX: should be automatically generated as well
*/
-const char *wglGetExtensionsStringARBWrapper(HDC hdc);
-BOOL wglMakeContextCurrentARBWrapper(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
-HDC wglGetCurrentReadDCARBWrapper(VOID);
+const char * __stdcall wglGetExtensionsStringARBWrapper(HDC hdc);
+BOOL __stdcall wglMakeContextCurrentARBWrapper(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+HDC __stdcall wglGetCurrentReadDCARBWrapper(VOID);
-BOOL wglGetPixelFormatAttribivARBWrapper(HDC hdc,
+BOOL __stdcall wglGetPixelFormatAttribivARBWrapper(HDC hdc,
int iPixelFormat,
int iLayerPlane,
UINT nAttributes,
const int *piAttributes,
int *piValues);
-BOOL wglGetPixelFormatAttribfvARBWrapper(HDC hdc,
+BOOL __stdcall wglGetPixelFormatAttribfvARBWrapper(HDC hdc,
int iPixelFormat,
int iLayerPlane,
UINT nAttributes,
const int *piAttributes,
FLOAT * pfValues);
-BOOL wglChoosePixelFormatARBWrapper(HDC hdc,
+BOOL __stdcall wglChoosePixelFormatARBWrapper(HDC hdc,
const int *piAttribIList,
const FLOAT * pfAttribFList,
UINT nMaxFormats,
int *piFormats, UINT * nNumFormats);
-HPBUFFERARB wglCreatePbufferARBWrapper(HDC hDC,
+HPBUFFERARB __stdcall wglCreatePbufferARBWrapper(HDC hDC,
int iPixelFormat,
int iWidth,
int iHeight, const int *piAttribList);
-HDC wglGetPbufferDCARBWrapper(HPBUFFERARB hPbuffer);
+HDC __stdcall wglGetPbufferDCARBWrapper(HPBUFFERARB hPbuffer);
-int wglReleasePbufferDCARBWrapper(HPBUFFERARB hPbuffer, HDC hDC);
+int __stdcall wglReleasePbufferDCARBWrapper(HPBUFFERARB hPbuffer, HDC hDC);
-BOOL wglDestroyPbufferARBWrapper(HPBUFFERARB hPbuffer);
+BOOL __stdcall wglDestroyPbufferARBWrapper(HPBUFFERARB hPbuffer);
-BOOL wglQueryPbufferARBWrapper(HPBUFFERARB hPbuffer,
+BOOL __stdcall wglQueryPbufferARBWrapper(HPBUFFERARB hPbuffer,
int iAttribute, int *piValue);
-BOOL wglSwapIntervalEXTWrapper(int interval);
+BOOL __stdcall wglSwapIntervalEXTWrapper(int interval);
-int wglGetSwapIntervalEXTWrapper(void);
+int __stdcall wglGetSwapIntervalEXTWrapper(void);
#endif /* wgl_ext_api_h */
diff --git a/xorg-server/hw/xwin/glx/wglext.h b/xorg-server/hw/xwin/glx/wglext.h
new file mode 100644
index 000000000..dc73a01aa
--- /dev/null
+++ b/xorg-server/hw/xwin/glx/wglext.h
@@ -0,0 +1,833 @@
+#ifndef __wglext_h_
+#define __wglext_h_ 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+** Copyright (c) 2013 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE 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
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+/*
+** This header is generated from the Khronos OpenGL / OpenGL ES XML
+** API Registry. The current version of the Registry, generator scripts
+** used to make the header, and the header can be found at
+** http://www.opengl.org/registry/
+**
+** Khronos $Revision: 23649 $ on $Date: 2013-10-23 00:21:49 -0700 (Wed, 23 Oct 2013) $
+*/
+
+#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+#endif
+
+#define WGL_WGLEXT_VERSION 20130916
+
+/* Generated C header for:
+ * API: wgl
+ * Versions considered: .*
+ * Versions emitted: _nomatch_^
+ * Default extensions included: wgl
+ * Additional extensions included: _nomatch_^
+ * Extensions removed: _nomatch_^
+ */
+
+#ifndef WGL_ARB_buffer_region
+#define WGL_ARB_buffer_region 1
+#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001
+#define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002
+#define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004
+#define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008
+typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType);
+typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion);
+typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height);
+typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
+#ifdef WGL_WGLEXT_PROTOTYPES
+HANDLE WINAPI wglCreateBufferRegionARB (HDC hDC, int iLayerPlane, UINT uType);
+VOID WINAPI wglDeleteBufferRegionARB (HANDLE hRegion);
+BOOL WINAPI wglSaveBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height);
+BOOL WINAPI wglRestoreBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
+#endif
+#endif /* WGL_ARB_buffer_region */
+
+#ifndef WGL_ARB_create_context
+#define WGL_ARB_create_context 1
+#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001
+#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
+#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
+#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
+#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
+#define WGL_CONTEXT_FLAGS_ARB 0x2094
+#define ERROR_INVALID_VERSION_ARB 0x2095
+typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int *attribList);
+#ifdef WGL_WGLEXT_PROTOTYPES
+HGLRC WINAPI wglCreateContextAttribsARB (HDC hDC, HGLRC hShareContext, const int *attribList);
+#endif
+#endif /* WGL_ARB_create_context */
+
+#ifndef WGL_ARB_create_context_profile
+#define WGL_ARB_create_context_profile 1
+#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
+#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
+#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
+#define ERROR_INVALID_PROFILE_ARB 0x2096
+#endif /* WGL_ARB_create_context_profile */
+
+#ifndef WGL_ARB_create_context_robustness
+#define WGL_ARB_create_context_robustness 1
+#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
+#define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
+#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
+#define WGL_NO_RESET_NOTIFICATION_ARB 0x8261
+#endif /* WGL_ARB_create_context_robustness */
+
+#ifndef WGL_ARB_extensions_string
+#define WGL_ARB_extensions_string 1
+typedef const char *(WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc);
+#ifdef WGL_WGLEXT_PROTOTYPES
+const char *WINAPI wglGetExtensionsStringARB (HDC hdc);
+#endif
+#endif /* WGL_ARB_extensions_string */
+
+#ifndef WGL_ARB_framebuffer_sRGB
+#define WGL_ARB_framebuffer_sRGB 1
+#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9
+#endif /* WGL_ARB_framebuffer_sRGB */
+
+#ifndef WGL_ARB_make_current_read
+#define WGL_ARB_make_current_read 1
+#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
+#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
+typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (void);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglMakeContextCurrentARB (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+HDC WINAPI wglGetCurrentReadDCARB (void);
+#endif
+#endif /* WGL_ARB_make_current_read */
+
+#ifndef WGL_ARB_multisample
+#define WGL_ARB_multisample 1
+#define WGL_SAMPLE_BUFFERS_ARB 0x2041
+#define WGL_SAMPLES_ARB 0x2042
+#endif /* WGL_ARB_multisample */
+
+#ifndef WGL_ARB_pbuffer
+#define WGL_ARB_pbuffer 1
+DECLARE_HANDLE(HPBUFFERARB);
+#define WGL_DRAW_TO_PBUFFER_ARB 0x202D
+#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E
+#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F
+#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030
+#define WGL_PBUFFER_LARGEST_ARB 0x2033
+#define WGL_PBUFFER_WIDTH_ARB 0x2034
+#define WGL_PBUFFER_HEIGHT_ARB 0x2035
+#define WGL_PBUFFER_LOST_ARB 0x2036
+typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
+typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer);
+typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC);
+typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer);
+typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
+#ifdef WGL_WGLEXT_PROTOTYPES
+HPBUFFERARB WINAPI wglCreatePbufferARB (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
+HDC WINAPI wglGetPbufferDCARB (HPBUFFERARB hPbuffer);
+int WINAPI wglReleasePbufferDCARB (HPBUFFERARB hPbuffer, HDC hDC);
+BOOL WINAPI wglDestroyPbufferARB (HPBUFFERARB hPbuffer);
+BOOL WINAPI wglQueryPbufferARB (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
+#endif
+#endif /* WGL_ARB_pbuffer */
+
+#ifndef WGL_ARB_pixel_format
+#define WGL_ARB_pixel_format 1
+#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
+#define WGL_DRAW_TO_WINDOW_ARB 0x2001
+#define WGL_DRAW_TO_BITMAP_ARB 0x2002
+#define WGL_ACCELERATION_ARB 0x2003
+#define WGL_NEED_PALETTE_ARB 0x2004
+#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
+#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
+#define WGL_SWAP_METHOD_ARB 0x2007
+#define WGL_NUMBER_OVERLAYS_ARB 0x2008
+#define WGL_NUMBER_UNDERLAYS_ARB 0x2009
+#define WGL_TRANSPARENT_ARB 0x200A
+#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
+#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
+#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
+#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
+#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
+#define WGL_SHARE_DEPTH_ARB 0x200C
+#define WGL_SHARE_STENCIL_ARB 0x200D
+#define WGL_SHARE_ACCUM_ARB 0x200E
+#define WGL_SUPPORT_GDI_ARB 0x200F
+#define WGL_SUPPORT_OPENGL_ARB 0x2010
+#define WGL_DOUBLE_BUFFER_ARB 0x2011
+#define WGL_STEREO_ARB 0x2012
+#define WGL_PIXEL_TYPE_ARB 0x2013
+#define WGL_COLOR_BITS_ARB 0x2014
+#define WGL_RED_BITS_ARB 0x2015
+#define WGL_RED_SHIFT_ARB 0x2016
+#define WGL_GREEN_BITS_ARB 0x2017
+#define WGL_GREEN_SHIFT_ARB 0x2018
+#define WGL_BLUE_BITS_ARB 0x2019
+#define WGL_BLUE_SHIFT_ARB 0x201A
+#define WGL_ALPHA_BITS_ARB 0x201B
+#define WGL_ALPHA_SHIFT_ARB 0x201C
+#define WGL_ACCUM_BITS_ARB 0x201D
+#define WGL_ACCUM_RED_BITS_ARB 0x201E
+#define WGL_ACCUM_GREEN_BITS_ARB 0x201F
+#define WGL_ACCUM_BLUE_BITS_ARB 0x2020
+#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
+#define WGL_DEPTH_BITS_ARB 0x2022
+#define WGL_STENCIL_BITS_ARB 0x2023
+#define WGL_AUX_BUFFERS_ARB 0x2024
+#define WGL_NO_ACCELERATION_ARB 0x2025
+#define WGL_GENERIC_ACCELERATION_ARB 0x2026
+#define WGL_FULL_ACCELERATION_ARB 0x2027
+#define WGL_SWAP_EXCHANGE_ARB 0x2028
+#define WGL_SWAP_COPY_ARB 0x2029
+#define WGL_SWAP_UNDEFINED_ARB 0x202A
+#define WGL_TYPE_RGBA_ARB 0x202B
+#define WGL_TYPE_COLORINDEX_ARB 0x202C
+typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
+typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
+typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglGetPixelFormatAttribivARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
+BOOL WINAPI wglGetPixelFormatAttribfvARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
+BOOL WINAPI wglChoosePixelFormatARB (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
+#endif
+#endif /* WGL_ARB_pixel_format */
+
+#ifndef WGL_ARB_pixel_format_float
+#define WGL_ARB_pixel_format_float 1
+#define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0
+#endif /* WGL_ARB_pixel_format_float */
+
+#ifndef WGL_ARB_render_texture
+#define WGL_ARB_render_texture 1
+#define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070
+#define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071
+#define WGL_TEXTURE_FORMAT_ARB 0x2072
+#define WGL_TEXTURE_TARGET_ARB 0x2073
+#define WGL_MIPMAP_TEXTURE_ARB 0x2074
+#define WGL_TEXTURE_RGB_ARB 0x2075
+#define WGL_TEXTURE_RGBA_ARB 0x2076
+#define WGL_NO_TEXTURE_ARB 0x2077
+#define WGL_TEXTURE_CUBE_MAP_ARB 0x2078
+#define WGL_TEXTURE_1D_ARB 0x2079
+#define WGL_TEXTURE_2D_ARB 0x207A
+#define WGL_MIPMAP_LEVEL_ARB 0x207B
+#define WGL_CUBE_MAP_FACE_ARB 0x207C
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080
+#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081
+#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082
+#define WGL_FRONT_LEFT_ARB 0x2083
+#define WGL_FRONT_RIGHT_ARB 0x2084
+#define WGL_BACK_LEFT_ARB 0x2085
+#define WGL_BACK_RIGHT_ARB 0x2086
+#define WGL_AUX0_ARB 0x2087
+#define WGL_AUX1_ARB 0x2088
+#define WGL_AUX2_ARB 0x2089
+#define WGL_AUX3_ARB 0x208A
+#define WGL_AUX4_ARB 0x208B
+#define WGL_AUX5_ARB 0x208C
+#define WGL_AUX6_ARB 0x208D
+#define WGL_AUX7_ARB 0x208E
+#define WGL_AUX8_ARB 0x208F
+#define WGL_AUX9_ARB 0x2090
+typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
+typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
+typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int *piAttribList);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglBindTexImageARB (HPBUFFERARB hPbuffer, int iBuffer);
+BOOL WINAPI wglReleaseTexImageARB (HPBUFFERARB hPbuffer, int iBuffer);
+BOOL WINAPI wglSetPbufferAttribARB (HPBUFFERARB hPbuffer, const int *piAttribList);
+#endif
+#endif /* WGL_ARB_render_texture */
+
+#ifndef WGL_ARB_robustness_application_isolation
+#define WGL_ARB_robustness_application_isolation 1
+#define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
+#endif /* WGL_ARB_robustness_application_isolation */
+
+#ifndef WGL_ARB_robustness_share_group_isolation
+#define WGL_ARB_robustness_share_group_isolation 1
+#endif /* WGL_ARB_robustness_share_group_isolation */
+
+#ifndef WGL_3DFX_multisample
+#define WGL_3DFX_multisample 1
+#define WGL_SAMPLE_BUFFERS_3DFX 0x2060
+#define WGL_SAMPLES_3DFX 0x2061
+#endif /* WGL_3DFX_multisample */
+
+#ifndef WGL_3DL_stereo_control
+#define WGL_3DL_stereo_control 1
+#define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055
+#define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056
+#define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057
+#define WGL_STEREO_POLARITY_INVERT_3DL 0x2058
+typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglSetStereoEmitterState3DL (HDC hDC, UINT uState);
+#endif
+#endif /* WGL_3DL_stereo_control */
+
+#ifndef WGL_AMD_gpu_association
+#define WGL_AMD_gpu_association 1
+#define WGL_GPU_VENDOR_AMD 0x1F00
+#define WGL_GPU_RENDERER_STRING_AMD 0x1F01
+#define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
+#define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
+#define WGL_GPU_RAM_AMD 0x21A3
+#define WGL_GPU_CLOCK_AMD 0x21A4
+#define WGL_GPU_NUM_PIPES_AMD 0x21A5
+#define WGL_GPU_NUM_SIMD_AMD 0x21A6
+#define WGL_GPU_NUM_RB_AMD 0x21A7
+#define WGL_GPU_NUM_SPI_AMD 0x21A8
+typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT *ids);
+typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, int property, GLenum dataType, UINT size, void *data);
+typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc);
+typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) (UINT id);
+typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UINT id, HGLRC hShareContext, const int *attribList);
+typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc);
+typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc);
+typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void);
+typedef VOID (WINAPI * PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC) (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+#ifdef WGL_WGLEXT_PROTOTYPES
+UINT WINAPI wglGetGPUIDsAMD (UINT maxCount, UINT *ids);
+INT WINAPI wglGetGPUInfoAMD (UINT id, int property, GLenum dataType, UINT size, void *data);
+UINT WINAPI wglGetContextGPUIDAMD (HGLRC hglrc);
+HGLRC WINAPI wglCreateAssociatedContextAMD (UINT id);
+HGLRC WINAPI wglCreateAssociatedContextAttribsAMD (UINT id, HGLRC hShareContext, const int *attribList);
+BOOL WINAPI wglDeleteAssociatedContextAMD (HGLRC hglrc);
+BOOL WINAPI wglMakeAssociatedContextCurrentAMD (HGLRC hglrc);
+HGLRC WINAPI wglGetCurrentAssociatedContextAMD (void);
+VOID WINAPI wglBlitContextFramebufferAMD (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+#endif
+#endif /* WGL_AMD_gpu_association */
+
+#ifndef WGL_ATI_pixel_format_float
+#define WGL_ATI_pixel_format_float 1
+#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0
+#endif /* WGL_ATI_pixel_format_float */
+
+#ifndef WGL_EXT_create_context_es2_profile
+#define WGL_EXT_create_context_es2_profile 1
+#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
+#endif /* WGL_EXT_create_context_es2_profile */
+
+#ifndef WGL_EXT_create_context_es_profile
+#define WGL_EXT_create_context_es_profile 1
+#define WGL_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004
+#endif /* WGL_EXT_create_context_es_profile */
+
+#ifndef WGL_EXT_depth_float
+#define WGL_EXT_depth_float 1
+#define WGL_DEPTH_FLOAT_EXT 0x2040
+#endif /* WGL_EXT_depth_float */
+
+#ifndef WGL_EXT_display_color_table
+#define WGL_EXT_display_color_table 1
+typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id);
+typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (const GLushort *table, GLuint length);
+typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id);
+typedef VOID (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id);
+#ifdef WGL_WGLEXT_PROTOTYPES
+GLboolean WINAPI wglCreateDisplayColorTableEXT (GLushort id);
+GLboolean WINAPI wglLoadDisplayColorTableEXT (const GLushort *table, GLuint length);
+GLboolean WINAPI wglBindDisplayColorTableEXT (GLushort id);
+VOID WINAPI wglDestroyDisplayColorTableEXT (GLushort id);
+#endif
+#endif /* WGL_EXT_display_color_table */
+
+#ifndef WGL_EXT_extensions_string
+#define WGL_EXT_extensions_string 1
+typedef const char *(WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void);
+#ifdef WGL_WGLEXT_PROTOTYPES
+const char *WINAPI wglGetExtensionsStringEXT (void);
+#endif
+#endif /* WGL_EXT_extensions_string */
+
+#ifndef WGL_EXT_framebuffer_sRGB
+#define WGL_EXT_framebuffer_sRGB 1
+#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9
+#endif /* WGL_EXT_framebuffer_sRGB */
+
+#ifndef WGL_EXT_make_current_read
+#define WGL_EXT_make_current_read 1
+#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043
+typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (void);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglMakeContextCurrentEXT (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+HDC WINAPI wglGetCurrentReadDCEXT (void);
+#endif
+#endif /* WGL_EXT_make_current_read */
+
+#ifndef WGL_EXT_multisample
+#define WGL_EXT_multisample 1
+#define WGL_SAMPLE_BUFFERS_EXT 0x2041
+#define WGL_SAMPLES_EXT 0x2042
+#endif /* WGL_EXT_multisample */
+
+#ifndef WGL_EXT_pbuffer
+#define WGL_EXT_pbuffer 1
+DECLARE_HANDLE(HPBUFFEREXT);
+#define WGL_DRAW_TO_PBUFFER_EXT 0x202D
+#define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E
+#define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F
+#define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030
+#define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031
+#define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032
+#define WGL_PBUFFER_LARGEST_EXT 0x2033
+#define WGL_PBUFFER_WIDTH_EXT 0x2034
+#define WGL_PBUFFER_HEIGHT_EXT 0x2035
+typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
+typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer);
+typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC);
+typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer);
+typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue);
+#ifdef WGL_WGLEXT_PROTOTYPES
+HPBUFFEREXT WINAPI wglCreatePbufferEXT (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
+HDC WINAPI wglGetPbufferDCEXT (HPBUFFEREXT hPbuffer);
+int WINAPI wglReleasePbufferDCEXT (HPBUFFEREXT hPbuffer, HDC hDC);
+BOOL WINAPI wglDestroyPbufferEXT (HPBUFFEREXT hPbuffer);
+BOOL WINAPI wglQueryPbufferEXT (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue);
+#endif
+#endif /* WGL_EXT_pbuffer */
+
+#ifndef WGL_EXT_pixel_format
+#define WGL_EXT_pixel_format 1
+#define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000
+#define WGL_DRAW_TO_WINDOW_EXT 0x2001
+#define WGL_DRAW_TO_BITMAP_EXT 0x2002
+#define WGL_ACCELERATION_EXT 0x2003
+#define WGL_NEED_PALETTE_EXT 0x2004
+#define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005
+#define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006
+#define WGL_SWAP_METHOD_EXT 0x2007
+#define WGL_NUMBER_OVERLAYS_EXT 0x2008
+#define WGL_NUMBER_UNDERLAYS_EXT 0x2009
+#define WGL_TRANSPARENT_EXT 0x200A
+#define WGL_TRANSPARENT_VALUE_EXT 0x200B
+#define WGL_SHARE_DEPTH_EXT 0x200C
+#define WGL_SHARE_STENCIL_EXT 0x200D
+#define WGL_SHARE_ACCUM_EXT 0x200E
+#define WGL_SUPPORT_GDI_EXT 0x200F
+#define WGL_SUPPORT_OPENGL_EXT 0x2010
+#define WGL_DOUBLE_BUFFER_EXT 0x2011
+#define WGL_STEREO_EXT 0x2012
+#define WGL_PIXEL_TYPE_EXT 0x2013
+#define WGL_COLOR_BITS_EXT 0x2014
+#define WGL_RED_BITS_EXT 0x2015
+#define WGL_RED_SHIFT_EXT 0x2016
+#define WGL_GREEN_BITS_EXT 0x2017
+#define WGL_GREEN_SHIFT_EXT 0x2018
+#define WGL_BLUE_BITS_EXT 0x2019
+#define WGL_BLUE_SHIFT_EXT 0x201A
+#define WGL_ALPHA_BITS_EXT 0x201B
+#define WGL_ALPHA_SHIFT_EXT 0x201C
+#define WGL_ACCUM_BITS_EXT 0x201D
+#define WGL_ACCUM_RED_BITS_EXT 0x201E
+#define WGL_ACCUM_GREEN_BITS_EXT 0x201F
+#define WGL_ACCUM_BLUE_BITS_EXT 0x2020
+#define WGL_ACCUM_ALPHA_BITS_EXT 0x2021
+#define WGL_DEPTH_BITS_EXT 0x2022
+#define WGL_STENCIL_BITS_EXT 0x2023
+#define WGL_AUX_BUFFERS_EXT 0x2024
+#define WGL_NO_ACCELERATION_EXT 0x2025
+#define WGL_GENERIC_ACCELERATION_EXT 0x2026
+#define WGL_FULL_ACCELERATION_EXT 0x2027
+#define WGL_SWAP_EXCHANGE_EXT 0x2028
+#define WGL_SWAP_COPY_EXT 0x2029
+#define WGL_SWAP_UNDEFINED_EXT 0x202A
+#define WGL_TYPE_RGBA_EXT 0x202B
+#define WGL_TYPE_COLORINDEX_EXT 0x202C
+typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues);
+typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues);
+typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglGetPixelFormatAttribivEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues);
+BOOL WINAPI wglGetPixelFormatAttribfvEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues);
+BOOL WINAPI wglChoosePixelFormatEXT (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
+#endif
+#endif /* WGL_EXT_pixel_format */
+
+#ifndef WGL_EXT_pixel_format_packed_float
+#define WGL_EXT_pixel_format_packed_float 1
+#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8
+#endif /* WGL_EXT_pixel_format_packed_float */
+
+#ifndef WGL_EXT_swap_control
+#define WGL_EXT_swap_control 1
+typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval);
+typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglSwapIntervalEXT (int interval);
+int WINAPI wglGetSwapIntervalEXT (void);
+#endif
+#endif /* WGL_EXT_swap_control */
+
+#ifndef WGL_EXT_swap_control_tear
+#define WGL_EXT_swap_control_tear 1
+#endif /* WGL_EXT_swap_control_tear */
+
+#ifndef WGL_I3D_digital_video_control
+#define WGL_I3D_digital_video_control 1
+#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050
+#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051
+#define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052
+#define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053
+typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue);
+typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglGetDigitalVideoParametersI3D (HDC hDC, int iAttribute, int *piValue);
+BOOL WINAPI wglSetDigitalVideoParametersI3D (HDC hDC, int iAttribute, const int *piValue);
+#endif
+#endif /* WGL_I3D_digital_video_control */
+
+#ifndef WGL_I3D_gamma
+#define WGL_I3D_gamma 1
+#define WGL_GAMMA_TABLE_SIZE_I3D 0x204E
+#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F
+typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue);
+typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue);
+typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue);
+typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglGetGammaTableParametersI3D (HDC hDC, int iAttribute, int *piValue);
+BOOL WINAPI wglSetGammaTableParametersI3D (HDC hDC, int iAttribute, const int *piValue);
+BOOL WINAPI wglGetGammaTableI3D (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue);
+BOOL WINAPI wglSetGammaTableI3D (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue);
+#endif
+#endif /* WGL_I3D_gamma */
+
+#ifndef WGL_I3D_genlock
+#define WGL_I3D_genlock 1
+#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044
+#define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045
+#define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046
+#define WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D 0x2047
+#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048
+#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049
+#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A
+#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B
+#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C
+typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC);
+typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC);
+typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL *pFlag);
+typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource);
+typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT *uSource);
+typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge);
+typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT *uEdge);
+typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate);
+typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT *uRate);
+typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay);
+typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT *uDelay);
+typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglEnableGenlockI3D (HDC hDC);
+BOOL WINAPI wglDisableGenlockI3D (HDC hDC);
+BOOL WINAPI wglIsEnabledGenlockI3D (HDC hDC, BOOL *pFlag);
+BOOL WINAPI wglGenlockSourceI3D (HDC hDC, UINT uSource);
+BOOL WINAPI wglGetGenlockSourceI3D (HDC hDC, UINT *uSource);
+BOOL WINAPI wglGenlockSourceEdgeI3D (HDC hDC, UINT uEdge);
+BOOL WINAPI wglGetGenlockSourceEdgeI3D (HDC hDC, UINT *uEdge);
+BOOL WINAPI wglGenlockSampleRateI3D (HDC hDC, UINT uRate);
+BOOL WINAPI wglGetGenlockSampleRateI3D (HDC hDC, UINT *uRate);
+BOOL WINAPI wglGenlockSourceDelayI3D (HDC hDC, UINT uDelay);
+BOOL WINAPI wglGetGenlockSourceDelayI3D (HDC hDC, UINT *uDelay);
+BOOL WINAPI wglQueryGenlockMaxSourceDelayI3D (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay);
+#endif
+#endif /* WGL_I3D_genlock */
+
+#ifndef WGL_I3D_image_buffer
+#define WGL_I3D_image_buffer 1
+#define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001
+#define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002
+typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags);
+typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress);
+typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count);
+typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const LPVOID *pAddress, UINT count);
+#ifdef WGL_WGLEXT_PROTOTYPES
+LPVOID WINAPI wglCreateImageBufferI3D (HDC hDC, DWORD dwSize, UINT uFlags);
+BOOL WINAPI wglDestroyImageBufferI3D (HDC hDC, LPVOID pAddress);
+BOOL WINAPI wglAssociateImageBufferEventsI3D (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count);
+BOOL WINAPI wglReleaseImageBufferEventsI3D (HDC hDC, const LPVOID *pAddress, UINT count);
+#endif
+#endif /* WGL_I3D_image_buffer */
+
+#ifndef WGL_I3D_swap_frame_lock
+#define WGL_I3D_swap_frame_lock 1
+typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (void);
+typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (void);
+typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL *pFlag);
+typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL *pFlag);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglEnableFrameLockI3D (void);
+BOOL WINAPI wglDisableFrameLockI3D (void);
+BOOL WINAPI wglIsEnabledFrameLockI3D (BOOL *pFlag);
+BOOL WINAPI wglQueryFrameLockMasterI3D (BOOL *pFlag);
+#endif
+#endif /* WGL_I3D_swap_frame_lock */
+
+#ifndef WGL_I3D_swap_frame_usage
+#define WGL_I3D_swap_frame_usage 1
+typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float *pUsage);
+typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void);
+typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void);
+typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglGetFrameUsageI3D (float *pUsage);
+BOOL WINAPI wglBeginFrameTrackingI3D (void);
+BOOL WINAPI wglEndFrameTrackingI3D (void);
+BOOL WINAPI wglQueryFrameTrackingI3D (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
+#endif
+#endif /* WGL_I3D_swap_frame_usage */
+
+#ifndef WGL_NV_DX_interop
+#define WGL_NV_DX_interop 1
+#define WGL_ACCESS_READ_ONLY_NV 0x00000000
+#define WGL_ACCESS_READ_WRITE_NV 0x00000001
+#define WGL_ACCESS_WRITE_DISCARD_NV 0x00000002
+typedef BOOL (WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC) (void *dxObject, HANDLE shareHandle);
+typedef HANDLE (WINAPI * PFNWGLDXOPENDEVICENVPROC) (void *dxDevice);
+typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice);
+typedef HANDLE (WINAPI * PFNWGLDXREGISTEROBJECTNVPROC) (HANDLE hDevice, void *dxObject, GLuint name, GLenum type, GLenum access);
+typedef BOOL (WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC) (HANDLE hDevice, HANDLE hObject);
+typedef BOOL (WINAPI * PFNWGLDXOBJECTACCESSNVPROC) (HANDLE hObject, GLenum access);
+typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE *hObjects);
+typedef BOOL (WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE *hObjects);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglDXSetResourceShareHandleNV (void *dxObject, HANDLE shareHandle);
+HANDLE WINAPI wglDXOpenDeviceNV (void *dxDevice);
+BOOL WINAPI wglDXCloseDeviceNV (HANDLE hDevice);
+HANDLE WINAPI wglDXRegisterObjectNV (HANDLE hDevice, void *dxObject, GLuint name, GLenum type, GLenum access);
+BOOL WINAPI wglDXUnregisterObjectNV (HANDLE hDevice, HANDLE hObject);
+BOOL WINAPI wglDXObjectAccessNV (HANDLE hObject, GLenum access);
+BOOL WINAPI wglDXLockObjectsNV (HANDLE hDevice, GLint count, HANDLE *hObjects);
+BOOL WINAPI wglDXUnlockObjectsNV (HANDLE hDevice, GLint count, HANDLE *hObjects);
+#endif
+#endif /* WGL_NV_DX_interop */
+
+#ifndef WGL_NV_DX_interop2
+#define WGL_NV_DX_interop2 1
+#endif /* WGL_NV_DX_interop2 */
+
+#ifndef WGL_NV_copy_image
+#define WGL_NV_copy_image 1
+typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglCopyImageSubDataNV (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
+#endif
+#endif /* WGL_NV_copy_image */
+
+#ifndef WGL_NV_delay_before_swap
+#define WGL_NV_delay_before_swap 1
+typedef BOOL (WINAPI * PFNWGLDELAYBEFORESWAPNVPROC) (HDC hDC, GLfloat seconds);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglDelayBeforeSwapNV (HDC hDC, GLfloat seconds);
+#endif
+#endif /* WGL_NV_delay_before_swap */
+
+#ifndef WGL_NV_float_buffer
+#define WGL_NV_float_buffer 1
+#define WGL_FLOAT_COMPONENTS_NV 0x20B0
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4
+#define WGL_TEXTURE_FLOAT_R_NV 0x20B5
+#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6
+#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7
+#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8
+#endif /* WGL_NV_float_buffer */
+
+#ifndef WGL_NV_gpu_affinity
+#define WGL_NV_gpu_affinity 1
+DECLARE_HANDLE(HGPUNV);
+struct _GPU_DEVICE {
+ DWORD cb;
+ CHAR DeviceName[32];
+ CHAR DeviceString[128];
+ DWORD Flags;
+ RECT rcVirtualScreen;
+};
+typedef struct _GPU_DEVICE *PGPU_DEVICE;
+#define ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0
+#define ERROR_MISSING_AFFINITY_MASK_NV 0x20D1
+typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu);
+typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
+typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList);
+typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
+typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglEnumGpusNV (UINT iGpuIndex, HGPUNV *phGpu);
+BOOL WINAPI wglEnumGpuDevicesNV (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
+HDC WINAPI wglCreateAffinityDCNV (const HGPUNV *phGpuList);
+BOOL WINAPI wglEnumGpusFromAffinityDCNV (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
+BOOL WINAPI wglDeleteDCNV (HDC hdc);
+#endif
+#endif /* WGL_NV_gpu_affinity */
+
+#ifndef WGL_NV_multisample_coverage
+#define WGL_NV_multisample_coverage 1
+#define WGL_COVERAGE_SAMPLES_NV 0x2042
+#define WGL_COLOR_SAMPLES_NV 0x20B9
+#endif /* WGL_NV_multisample_coverage */
+
+#ifndef WGL_NV_present_video
+#define WGL_NV_present_video 1
+DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
+#define WGL_NUM_VIDEO_SLOTS_NV 0x20F0
+typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList);
+typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList);
+typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int *piValue);
+#ifdef WGL_WGLEXT_PROTOTYPES
+int WINAPI wglEnumerateVideoDevicesNV (HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList);
+BOOL WINAPI wglBindVideoDeviceNV (HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList);
+BOOL WINAPI wglQueryCurrentContextNV (int iAttribute, int *piValue);
+#endif
+#endif /* WGL_NV_present_video */
+
+#ifndef WGL_NV_render_depth_texture
+#define WGL_NV_render_depth_texture 1
+#define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4
+#define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5
+#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6
+#define WGL_DEPTH_COMPONENT_NV 0x20A7
+#endif /* WGL_NV_render_depth_texture */
+
+#ifndef WGL_NV_render_texture_rectangle
+#define WGL_NV_render_texture_rectangle 1
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0
+#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1
+#define WGL_TEXTURE_RECTANGLE_NV 0x20A2
+#endif /* WGL_NV_render_texture_rectangle */
+
+#ifndef WGL_NV_swap_group
+#define WGL_NV_swap_group 1
+typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group);
+typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier);
+typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint *group, GLuint *barrier);
+typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers);
+typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint *count);
+typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglJoinSwapGroupNV (HDC hDC, GLuint group);
+BOOL WINAPI wglBindSwapBarrierNV (GLuint group, GLuint barrier);
+BOOL WINAPI wglQuerySwapGroupNV (HDC hDC, GLuint *group, GLuint *barrier);
+BOOL WINAPI wglQueryMaxSwapGroupsNV (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers);
+BOOL WINAPI wglQueryFrameCountNV (HDC hDC, GLuint *count);
+BOOL WINAPI wglResetFrameCountNV (HDC hDC);
+#endif
+#endif /* WGL_NV_swap_group */
+
+#ifndef WGL_NV_vertex_array_range
+#define WGL_NV_vertex_array_range 1
+typedef void *(WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
+typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer);
+#ifdef WGL_WGLEXT_PROTOTYPES
+void *WINAPI wglAllocateMemoryNV (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
+void WINAPI wglFreeMemoryNV (void *pointer);
+#endif
+#endif /* WGL_NV_vertex_array_range */
+
+#ifndef WGL_NV_video_capture
+#define WGL_NV_video_capture 1
+DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
+#define WGL_UNIQUE_ID_NV 0x20CE
+#define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
+typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
+typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList);
+typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
+typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue);
+typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglBindVideoCaptureDeviceNV (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
+UINT WINAPI wglEnumerateVideoCaptureDevicesNV (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList);
+BOOL WINAPI wglLockVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
+BOOL WINAPI wglQueryVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue);
+BOOL WINAPI wglReleaseVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
+#endif
+#endif /* WGL_NV_video_capture */
+
+#ifndef WGL_NV_video_output
+#define WGL_NV_video_output 1
+DECLARE_HANDLE(HPVIDEODEV);
+#define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0
+#define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1
+#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2
+#define WGL_VIDEO_OUT_COLOR_NV 0x20C3
+#define WGL_VIDEO_OUT_ALPHA_NV 0x20C4
+#define WGL_VIDEO_OUT_DEPTH_NV 0x20C5
+#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
+#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
+#define WGL_VIDEO_OUT_FRAME 0x20C8
+#define WGL_VIDEO_OUT_FIELD_1 0x20C9
+#define WGL_VIDEO_OUT_FIELD_2 0x20CA
+#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB
+#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC
+typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice);
+typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice);
+typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
+typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer);
+typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock);
+typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglGetVideoDeviceNV (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice);
+BOOL WINAPI wglReleaseVideoDeviceNV (HPVIDEODEV hVideoDevice);
+BOOL WINAPI wglBindVideoImageNV (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
+BOOL WINAPI wglReleaseVideoImageNV (HPBUFFERARB hPbuffer, int iVideoBuffer);
+BOOL WINAPI wglSendPbufferToVideoNV (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock);
+BOOL WINAPI wglGetVideoInfoNV (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
+#endif
+#endif /* WGL_NV_video_output */
+
+#ifndef WGL_OML_sync_control
+#define WGL_OML_sync_control 1
+typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
+typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32 *numerator, INT32 *denominator);
+typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
+typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
+typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
+typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
+#ifdef WGL_WGLEXT_PROTOTYPES
+BOOL WINAPI wglGetSyncValuesOML (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
+BOOL WINAPI wglGetMscRateOML (HDC hdc, INT32 *numerator, INT32 *denominator);
+INT64 WINAPI wglSwapBuffersMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
+INT64 WINAPI wglSwapLayerBuffersMscOML (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
+BOOL WINAPI wglWaitForMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
+BOOL WINAPI wglWaitForSbcOML (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
+#endif
+#endif /* WGL_OML_sync_control */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/xorg-server/hw/xwin/glx/winpriv.c b/xorg-server/hw/xwin/glx/winpriv.c
index 4f6e4ffd5..1b8ec5a4a 100644
--- a/xorg-server/hw/xwin/glx/winpriv.c
+++ b/xorg-server/hw/xwin/glx/winpriv.c
@@ -11,6 +11,8 @@
#include "winpriv.h"
#include "winwindow.h"
+extern Bool g_fXdmcpEnabled;
+
void
winCreateWindowsWindow(WindowPtr pWin);
@@ -21,7 +23,8 @@ void
HWND
winGetWindowInfo(WindowPtr pWin)
{
- winTrace("%s: pWin %p XID 0x%x\n", __FUNCTION__, pWin, pWin->drawable.id);
+ HWND hwnd = NULL;
+ winDebug("%s:%d pWin %p XID 0x%x\n", __FUNCTION__, __LINE__, pWin, pWin->drawable.id);
/* a real window was requested */
if (pWin != NULL) {
@@ -29,11 +32,10 @@ winGetWindowInfo(WindowPtr pWin)
ScreenPtr pScreen = pWin->drawable.pScreen;
winPrivScreenPtr pWinScreen = winGetScreenPriv(pScreen);
winScreenInfoPtr pScreenInfo = NULL;
- HWND hwnd = NULL;
if (pWinScreen == NULL) {
ErrorF("winGetWindowInfo: screen has no privates\n");
- return NULL;
+ return hwnd;
}
hwnd = pWinScreen->hwndScreen;
@@ -50,19 +52,103 @@ winGetWindowInfo(WindowPtr pWin)
}
if (pWinPriv->hWnd == NULL) {
+ if (pWin->parent && pWin->parent->parent)
+ {
+ int offsetx;
+ int offsety;
+ int ExtraClass=(pWin->realized)?WS_VISIBLE:0;
+ HWND hWndParent;
+ WindowPtr pParent=pWin->parent;
+ while (pParent)
+ {
+ winWindowPriv(pParent);
+ hWndParent=pWinPriv->hWnd;
+ if (hWndParent)
+ break;
+ pParent=pParent->parent;
+ }
+ if (!hWndParent)
+ hWndParent=hwnd;
+ if (pParent)
+ {
+ offsetx=pParent->drawable.x;
+ offsety=pParent->drawable.y;
+ }
+ else
+ {
+ offsetx=0;
+ offsety=0;
+ }
+ pWinPriv->hWnd=CreateWindowExA(0,
+ WIN_GL_WINDOW_CLASS,
+ "",
+ WS_CHILD |WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_DISABLED | ExtraClass,
+ pWin->drawable.x-offsetx,
+ pWin->drawable.y-offsety,
+ pWin->drawable.width,
+ pWin->drawable.height,
+ hWndParent,
+ NULL,
+ g_hInstance,
+ pWin);
+ winDebug("Window created %x %x %d %d %d %d\n",pWinPriv->hWnd,hWndParent,pWin->drawable.x-offsetx,pWin->drawable.y-offsety,pWin->drawable.width, pWin->drawable.height);
+ pWinPriv->fWglUsed=TRUE;
+ }
+ else
+ {
winCreateWindowsWindow(pWin);
- ErrorF("winGetWindowInfo: forcing window to exist...\n");
+ winDebug("winGetWindowInfo: forcing window to exist...\n");
+ }
}
-
if (pWinPriv->hWnd != NULL) {
/* copy window handle */
hwnd = pWinPriv->hWnd;
-
- /* mark GLX active on that hwnd */
- pWinPriv->fWglUsed = TRUE;
}
+ }
+ else if (g_fXdmcpEnabled)
+ {
+ winWindowPriv(pWin);
- return hwnd;
+ if (pWinPriv == NULL)
+ {
+ ErrorF("winGetWindowInfo: window has no privates\n");
+ return hwnd;
+ }
+ if (pWinPriv->hWnd == NULL)
+ {
+ if (!((pWin->drawable.x==0) &&
+ (pWin->drawable.y==0) &&
+ (pWin->drawable.width==pScreen->width) &&
+ (pWin->drawable.height==pScreen->height)
+ )
+ )
+ {
+ int ExtraClass=(pWin->realized)?WS_VISIBLE:0;
+ pWinPriv->hWnd=CreateWindowExA(0,
+ WIN_GL_WINDOW_CLASS,
+ "",
+ WS_CHILD |WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_DISABLED | ExtraClass,
+ pWin->drawable.x,
+ pWin->drawable.y,
+ pWin->drawable.width,
+ pWin->drawable.height,
+ pWinScreen->hwndScreen,
+ NULL,
+ g_hInstance,
+ pWin);
+ pWinPriv->fWglUsed=TRUE;
+ /* copy size and window handle */
+ hwnd = pWinPriv->hWnd;
+ }
+ else
+ {
+ hwnd = pWinScreen->hwndScreen;
+ }
+ }
+ else
+ {
+ hwnd = pWinPriv->hWnd;
+ }
}
#endif
#ifdef XWIN_MULTIWINDOWEXTWM
@@ -73,14 +159,12 @@ winGetWindowInfo(WindowPtr pWin)
if (pRLWinPriv == NULL) {
ErrorF("winGetWindowInfo: window has no privates\n");
- return hwnd;
}
if (pRLWinPriv->hWnd != NULL) {
/* copy window handle */
hwnd = pRLWinPriv->hWnd;
}
- return hwnd;
}
#endif
}
@@ -90,15 +174,16 @@ winGetWindowInfo(WindowPtr pWin)
if (pWinScreen == NULL) {
ErrorF("winGetWindowInfo: screen has no privates\n");
- return NULL;
}
+ else
+ {
+ winDebug("winGetWindowInfo: returning root window\n");
- ErrorF("winGetWindowInfo: returning root window\n");
-
- return pWinScreen->hwndScreen;
+ hwnd=pWinScreen->hwndScreen;
+ }
}
- return NULL;
+ return hwnd;
}
Bool
@@ -117,5 +202,8 @@ winCheckScreenAiglxIsSupported(ScreenPtr pScreen)
return TRUE;
#endif
+ if (g_fXdmcpEnabled)
+ return TRUE;
+
return FALSE;
}
diff --git a/xorg-server/hw/xwin/glx/winpriv.h b/xorg-server/hw/xwin/glx/winpriv.h
index dce1edf48..710525ccc 100644
--- a/xorg-server/hw/xwin/glx/winpriv.h
+++ b/xorg-server/hw/xwin/glx/winpriv.h
@@ -7,5 +7,7 @@
#include <X11/Xwindows.h>
#include <windowstr.h>
+#define WIN_GL_WINDOW_CLASS "XWinGLTest"
+
HWND winGetWindowInfo(WindowPtr pWin);
Bool winCheckScreenAiglxIsSupported(ScreenPtr pScreen);
diff --git a/xorg-server/hw/xwin/makefile b/xorg-server/hw/xwin/makefile
new file mode 100644
index 000000000..46bcc1e05
--- /dev/null
+++ b/xorg-server/hw/xwin/makefile
@@ -0,0 +1,165 @@
+LIBRARY = libXWin
+
+XWIN_MULTIWINDOW=1
+XWIN_CLIPBOARD=1
+XWIN_MULTIWINDOWEXTWM=0 # currently not working correctly
+XWIN_MULTIWINDOWINTWM=0 # currently not working correctly
+XWIN_RANDR=1
+XWIN_NATIVEGDI=0 # currently not working correctly
+XWIN_PRIMARYFB=0 # currently not working correctly
+XWIN_GLX_WINDOWS=1 # everything is in the glx makefile
+
+if XWIN_CLIPBOARD
+SRCS_CLIPBOARD = \
+ winclipboardinit.c \
+ winclipboardtextconv.c \
+ winclipboardthread.c \
+ winclipboardwndproc.c \
+ winclipboardwrappers.c \
+ winclipboardxevents.c
+DEFS_CLIPBOARD = -DXWIN_CLIPBOARD
+endif
+
+if XWIN_GLX_WINDOWS
+GLX_DIR = glx
+DEFS_GLX_WINDOWS = -DXWIN_GLX_WINDOWS
+XWIN_GLX_LIBS = $(top_builddir)/hw/xwin/glx/libXwinGLX.la
+XWIN_GLX_LINK_FLAGS = -lopengl32
+endif
+
+if XWIN_MULTIWINDOW
+SRCS_MULTIWINDOW = \
+ winmultiwindowshape.c \
+ winmultiwindowwindow.c \
+ winmultiwindowwm.c \
+ winmultiwindowwndproc.c \
+ winSetAppUserModelID.c
+DEFS_MULTIWINDOW = -DXWIN_MULTIWINDOW
+endif
+
+if XWIN_MULTIWINDOWEXTWM
+SRCS_MULTIWINDOWEXTWM = \
+ winwin32rootless.c \
+ winwin32rootlesswindow.c \
+ winwin32rootlesswndproc.c \
+ winwindowswm.c
+DEFS_MULTIWINDOWEXTWM = -DXWIN_MULTIWINDOWEXTWM
+MULTIWINDOWEXTWM_LIBS = $(top_builddir)/miext/rootless/librootless.la
+endif
+
+if XWIN_NATIVEGDI
+SRCS_NATIVEGDI = \
+ winclip.c \
+ winfillsp.c \
+ winfont.c \
+ wingc.c \
+ wingetsp.c \
+ winnativegdi.c \
+ winpixmap.c \
+ winpolyline.c \
+ winrop.c \
+ winsetsp.c
+DEFS_NATIVEGDI = -DXWIN_NATIVEGDI
+endif
+
+if XWIN_PRIMARYFB
+SRCS_PRIMARYFB = \
+ winpfbdd.c
+DEFS_PRIMARYFB = -DXWIN_PRIMARYFB
+endif
+
+if XWIN_RANDR
+SRCS_RANDR = \
+ winrandr.c
+DEFS_RANDR = -DXWIN_RANDR
+endif
+
+if XWIN_XV
+SRCS_XV = \
+ winvideo.c
+DEFS_XV = -DXWIN_XV
+endif
+
+SRCS = InitInput.c \
+ InitOutput.c \
+ winallpriv.c \
+ winauth.c \
+ winblock.c \
+ wincmap.c \
+ winconfig.c \
+ wincreatewnd.c \
+ wincursor.c \
+ windialogs.c \
+ winengine.c \
+ winerror.c \
+ winglobals.c \
+ winkeybd.c \
+ winkeyhook.c \
+ winmisc.c \
+ winmonitors.c \
+ winmouse.c \
+ winmsg.c \
+ winmsgwindow.c \
+ winmultiwindowclass.c \
+ winmultiwindowicons.c \
+ winprefs.c \
+ winprefsyacc.y \
+ winprefslex.l \
+ winprocarg.c \
+ winscrinit.c \
+ winshaddd.c \
+ winshadddnl.c \
+ winshadgdi.c \
+ wintaskbar.c \
+ wintrayicon.c \
+ winvalargs.c \
+ winwakeup.c \
+ winwindow.c \
+ winwndproc.c \
+ ddraw.h \
+ winclipboard.h \
+ winconfig.h \
+ win.h \
+ winkeybd.h \
+ winkeynames.h \
+ winlayouts.h \
+ winmessages.h \
+ winmsg.h \
+ winms.h \
+ winmultiwindowclass.h \
+ winprefs.h \
+ winresource.h \
+ winwindow.h \
+ windisplay.c \
+ XWin.rc \
+ $(SRCS_CLIPBOARD) \
+ $(SRCS_MULTIWINDOW) \
+ $(SRCS_MULTIWINDOWEXTWM) \
+ $(SRCS_NATIVEGDI) \
+ $(SRCS_PRIMARYFB) \
+ $(SRCS_RANDR) \
+ $(SRCS_XV) \
+ xdmcphostselect.c
+
+CSRCS=$(filter %.c,$(SRCS)) $(filter %.y,$(SRCS)) $(filter %.l,$(SRCS))
+CSRCS := $(CSRCS:%.y=%.c)
+CSRCS := $(CSRCS:%.l=%.c)
+
+ DEFS = $(DEFS_CLIPBOARD) \
+ $(DEFS_GLX_WINDOWS) \
+ $(DEFS_MULTIWINDOW) \
+ $(DEFS_MULTIWINDOWEXTWM) \
+ $(DEFS_NATIVEGDI) \
+ $(DEFS_PRIMARYFB) \
+ $(DEFS_RANDR) \
+ $(DEFS_XV)
+
+DEFINES += $(DEFS:-D%=%) HAVE_XWIN_CONFIG_H PTW32_STATIC_LIB RELOCATE_PROJECTROOT
+
+INCLUDES += ..\.. ..\..\miext\rootless
+
+INCLUDES += $(OBJDIR)
+
+$(OBJDIR)\winprefslex.c $(OBJDIR)\winprefsyacc.c $(OBJDIR)\winprefsyacc.h: winprefslex.l winprefsyacc.y
+ doflexbison.bat $(subst \,/,$(OBJDIR))
+
diff --git a/xorg-server/hw/xwin/propertystore.h b/xorg-server/hw/xwin/propertystore.h
index 6afc6c954..b4a761f51 100644
--- a/xorg-server/hw/xwin/propertystore.h
+++ b/xorg-server/hw/xwin/propertystore.h
@@ -26,7 +26,7 @@
#include <windows.h>
-#ifdef __MINGW64_VERSION_MAJOR
+#if defined(__MINGW64_VERSION_MAJOR) || defined(_MSC_VER)
/* If we are using headers from mingw-w64 project, it provides the PSDK headers this needs ... */
#include <propkey.h>
#include <propsys.h>
diff --git a/xorg-server/hw/xwin/swrastwgl_dri/.gitignore b/xorg-server/hw/xwin/swrastwgl_dri/.gitignore
new file mode 100644
index 000000000..ff5c6df34
--- /dev/null
+++ b/xorg-server/hw/xwin/swrastwgl_dri/.gitignore
@@ -0,0 +1 @@
+diag.txt
diff --git a/xorg-server/hw/xwin/swrastwgl_dri/glwindows.h b/xorg-server/hw/xwin/swrastwgl_dri/glwindows.h
new file mode 100644
index 000000000..3e200644f
--- /dev/null
+++ b/xorg-server/hw/xwin/swrastwgl_dri/glwindows.h
@@ -0,0 +1,39 @@
+/*
+ * File: glwindows.h
+ * Purpose: Header for GLX implementation using native Windows OpenGL library
+ *
+ * Authors: Alexander Gottwald
+ * Jon TURNEY
+ *
+ * Copyright (c) Jon TURNEY 2009
+ * Copyright (c) Alexander Gottwald 2004
+ *
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+ */
+
+
+#include <GL/gl.h>
+
+void glWinCallDelta(void);
+void glxWinPushNativeProvider(void);
+const GLubyte* glGetStringWrapperNonstatic(GLenum name);
+void glAddSwapHintRectWINWrapperNonstatic(GLint x, GLint y, GLsizei width,
+ GLsizei height);
+void glWinSetupDispatchTable(void);
diff --git a/xorg-server/hw/xwin/swrastwgl_dri/glwrap.c b/xorg-server/hw/xwin/swrastwgl_dri/glwrap.c
new file mode 100644
index 000000000..6d794b671
--- /dev/null
+++ b/xorg-server/hw/xwin/swrastwgl_dri/glwrap.c
@@ -0,0 +1,151 @@
+/*
+ * File: glwrap.c
+ * Purpose: Wrapper functions for Win32 OpenGL functions
+ *
+ * Authors: Alexander Gottwald
+ * Jon TURNEY
+ *
+ * Copyright (c) Jon TURNEY 2009
+ * Copyright (c) Alexander Gottwald 2004
+ *
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+ */
+
+// define USE_OPENGL32 makes gl.h declare gl*() function prototypes with stdcall linkage,
+// so our generated wrappers will correctly link with the functions in opengl32.dll
+#define USE_OPENGL32
+
+#ifdef HAVE_XWIN_CONFIG_H
+#include <xwin-config.h>
+#endif
+
+#include <X11/Xwindows.h>
+#include <GL/gl.h>
+#include <GL/glext.h>
+#include <glx/glheader.h>
+#include <glx/glxserver.h>
+#include <glx/glxext.h>
+#include <glx/glapi.h>
+#include <glx/dispatch.h>
+#include <glwindows.h>
+#include <winmsg.h>
+
+#ifdef _DEBUG
+static unsigned int glWinIndirectProcCalls = 0;
+static unsigned int glWinDirectProcCalls = 0;
+
+void
+glWinCallDelta(void)
+{
+ static unsigned int glWinIndirectProcCallsLast = 0;
+ static unsigned int glWinDirectProcCallsLast = 0;
+
+ if ((glWinIndirectProcCalls != glWinIndirectProcCallsLast) ||
+ (glWinDirectProcCalls != glWinDirectProcCallsLast)) {
+ glWinDirectProcCallsLast = glWinDirectProcCalls;
+ glWinIndirectProcCallsLast = glWinIndirectProcCalls;
+ }
+}
+#endif
+
+static __inline PROC
+glWinResolveHelper(PROC * cache, char *symbol)
+{
+ PROC proc = NULL;
+
+ /* If not yet cached, call wglGetProcAddress */
+ if ((*cache) == NULL) {
+ proc = wglGetProcAddress(symbol);
+ if (proc == NULL) {
+ ErrorF("glwrap: Can't resolve \"%s\"\n", symbol);
+ (*cache) = (PROC) - 1;
+ }
+ else {
+ ErrorF("glwrap: Resolved \"%s\"\n", symbol);
+ (*cache) = proc;
+ }
+ }
+ /* Cached wglGetProcAddress failure */
+ else if ((*cache) == (PROC) - 1) {
+ proc = 0;
+ }
+ /* Cached wglGetProcAddress result */
+ else {
+ proc = (*cache);
+ }
+
+ return proc;
+}
+
+#ifdef _DEBUG
+#define INCPROCCALLS glWinIndirectProcCalls++;
+#else
+#define INCPROCCALLS
+#endif
+
+#define RESOLVE_RET(proctype, symbol, retval) \
+ static PROC cache = NULL; \
+ proctype proc = (proctype)glWinResolveHelper(&cache, symbol); \
+ if (proc == NULL) { \
+ __glXErrorCallBack(0); \
+ return retval; \
+ } \
+ INCPROCCALLS
+
+#define RESOLVE(proctype, symbol) RESOLVE_RET(proctype, symbol,)
+
+#define RESOLVED_PROC(proctype) proc
+
+/*
+ Include generated cdecl wrappers for stdcall gl*() functions in opengl32.dll
+
+ OpenGL 1.2 and upward is treated as extensions, function address must
+ found using wglGetProcAddress(), but also stdcall so still need wrappers...
+
+ Include generated dispatch table setup function
+*/
+
+#include "generated_gl_wrappers.c"
+
+/*
+ Special non-static wrapper for glGetString for debug output
+*/
+
+const GLubyte *
+glGetStringWrapperNonstatic(GLenum name)
+{
+ return glGetString(name);
+}
+
+/*
+ Special non-static wrapper for glAddSwapHintRectWIN for copySubBuffers
+*/
+
+typedef void (__stdcall * PFNGLADDSWAPHINTRECTWIN) (GLint x, GLint y,
+ GLsizei width,
+ GLsizei height);
+
+void
+glAddSwapHintRectWINWrapperNonstatic(GLint x, GLint y, GLsizei width,
+ GLsizei height)
+{
+ RESOLVE(PFNGLADDSWAPHINTRECTWIN, "glAddSwapHintRectWIN");
+ proc(x, y, width, height);
+}
diff --git a/xorg-server/hw/xwin/swrastwgl_dri/makefile b/xorg-server/hw/xwin/swrastwgl_dri/makefile
new file mode 100755
index 000000000..201f2aeb9
--- /dev/null
+++ b/xorg-server/hw/xwin/swrastwgl_dri/makefile
@@ -0,0 +1,21 @@
+ifndef PYTHON3
+$(error Please define PYTHON3 environment variable)
+endif
+
+SHAREDLIB = swrastwgl_dri
+
+INCLUDES += $(OBJDIR) ..\..\.. .. ..\glx
+DEFINES += INSERVER HAVE_XWIN_CONFIG_H PTW32_STATIC_LIB
+
+$(OBJDIR)\swrastwgl_dri.dll : ..\..\..\$(SERVOBJDIR)\vcxsrv.exe
+LINKLIBS += ..\..\..\$(SERVOBJDIR)\vcxsrv.lib
+
+CSRCS = swrastwgl_dri.c glwrap.c wgl_ext_api.c
+
+vpath %.c ../glx
+
+$(OBJDIR)\generated_gl_wrappers.c: ../glx/gen_gl_wrappers.py ../glx/gl.xml ../glx/gen_gl_wrappers.py ../glx/reg.py ../../../glx/dispatch.h
+ $(PYTHON3) ../glx/gen_gl_wrappers.py -outfile $@ -nodbgcount -registry ../glx/gl.xml -staticwrappers -dispatchheader ../../../glx/dispatch.h
+
+$(OBJDIR)\generated_wgl_wrappers.c: ../glx/gen_gl_wrappers.py ../glx/wgl.xml ../glx/gen_gl_wrappers.py ../glx/reg.py
+ $(PYTHON3) ../glx/gen_gl_wrappers.py -outfile $@ -nodbgcount -registry ../glx/wgl.xml -prefix wgl -preresolve
diff --git a/xorg-server/hw/xwin/swrastwgl_dri/swrastwgl_dri.c b/xorg-server/hw/xwin/swrastwgl_dri/swrastwgl_dri.c
new file mode 100644
index 000000000..52b7203b5
--- /dev/null
+++ b/xorg-server/hw/xwin/swrastwgl_dri/swrastwgl_dri.c
@@ -0,0 +1,1245 @@
+#ifdef HAVE_XWIN_CONFIG_H
+#include <xwin-config.h>
+#endif
+#include <X11/Xwindows.h>
+#include <GL/gl.h>
+#include <GL/glext.h>
+#include <GL/glx.h>
+#include <GL/internal/dri_interface.h>
+#include <stdint.h>
+
+#include <glx/glheader.h>
+#include <glx/glapi.h>
+#include <glx/glapitable.h>
+
+typedef unsigned char BYTE;
+typedef int BOOL;
+
+#ifdef _DEBUG
+#define PRINTF(...) ErrorF( __VA_ARGS__)
+#else
+#define PRINTF(...)
+#endif
+
+#undef PUBLIC
+#define PUBLIC __declspec(dllexport)
+
+BOOL colorIndexMode = FALSE;
+BOOL doubleBuffered = FALSE;
+
+struct __DRIscreenRec
+{
+ int ScreenNum;
+ const __DRIextension **extensions;
+ const __DRIswrastLoaderExtension *swrast_loader;
+};
+
+struct __DRIcontextRec
+{
+ struct _glapi_table *Dispatch;
+
+ void *driverPrivate;
+ void *loaderPrivate;
+ __DRIdrawable *driDrawablePriv;
+ __DRIdrawable *driReadablePriv;
+ __DRIscreen *driScreenPriv;
+};
+
+struct __DRIdrawableRec
+{
+ HDC hDC;
+ HDC hDCFrontBuffer;
+ HGLRC hGLRC;
+ HPALETTE hPalette;
+ HBITMAP hBitmap;
+ int winWidth;
+ int winHeight;
+ int bitsPerPixel;
+ VOID *bits;
+
+ void *driverPrivate;
+ void *loaderPrivate;
+ __DRIscreen *driScreenPriv;
+ int refcount;
+};
+
+/* Struct used to manage color ramps */
+struct colorIndexState
+{
+ GLfloat amb[3]; /* ambient color / bottom of ramp */
+ GLfloat diff[3]; /* diffuse color / middle of ramp */
+ GLfloat spec[3]; /* specular color / top of ramp */
+ GLfloat ratio; /* ratio of diffuse to specular in ramp */
+ GLint indexes[3]; /* where ramp was placed in palette */
+};
+
+/*
+** Each entry in this array corresponds to a color ramp in the
+** palette. The indexes member of each struct is updated to
+** reflect the placement of the color ramp in the palette.
+*/
+#define NUM_COLORS (sizeof(colors) / sizeof(colors[0]))
+struct colorIndexState colors[] = {
+ {
+ { 0.0F, 0.0F, 0.0F },
+ { 0.1F, 0.6F, 0.3F },
+ { 1.0F, 1.0F, 1.0F },
+ 0.75F, { 0, 0, 0 },
+ },
+ {
+ { 0.0F, 0.0F, 0.0F },
+ { 0.0F, 0.2F, 0.5F },
+ { 1.0F, 1.0F, 1.0F },
+
+ 0.75F, { 0, 0, 0 },
+ },
+ {
+ { 0.0F, 0.05F, 0.05F },
+ { 0.6F, 0.0F, 0.8F },
+ { 1.0F, 1.0F, 1.0F },
+ 0.75F, { 0, 0, 0 },
+ },
+};
+void setupPalette(__DRIdrawable * pdp)
+{
+ PIXELFORMATDESCRIPTOR pfd;
+ LOGPALETTE* pPal;
+ int pixelFormat = GetPixelFormat(pdp->hDC);
+ int paletteSize;
+
+ PRINTF(__FUNCTION__": pdp %x\n", pdp);
+
+ DescribePixelFormat(pdp->hDC, pixelFormat, sizeof(PIXELFORMATDESCRIPTOR), &pfd);
+
+ /*
+ ** Determine if a palette is needed and if so what size.
+ */
+ if (pfd.dwFlags & PFD_NEED_PALETTE) {
+ paletteSize = 1 << pfd.cColorBits;
+ } else if (pfd.iPixelType == PFD_TYPE_COLORINDEX) {
+ paletteSize = 4096;
+ } else {
+ return;
+ }
+
+ pPal = (LOGPALETTE*)malloc(sizeof(LOGPALETTE) + paletteSize * sizeof(PALETTEENTRY));
+ pPal->palVersion = 0x300;
+ pPal->palNumEntries = paletteSize;
+
+ if (pfd.iPixelType == PFD_TYPE_RGBA)
+ {
+ /*
+ ** Fill the logical paletee with RGB color ramps
+ */
+ int redMask = (1 << pfd.cRedBits) - 1;
+ int greenMask = (1 << pfd.cGreenBits) - 1;
+ int blueMask = (1 << pfd.cBlueBits) - 1;
+ int i;
+
+ for (i=0; i<paletteSize; ++i) {
+ pPal->palPalEntry[i].peRed =
+ (((i >> pfd.cRedShift) & redMask) * 255) / redMask;
+ pPal->palPalEntry[i].peGreen =
+ (((i >> pfd.cGreenShift) & greenMask) * 255) / greenMask;
+ pPal->palPalEntry[i].peBlue =
+ (((i >> pfd.cBlueShift) & blueMask) * 255) / blueMask;
+ pPal->palPalEntry[i].peFlags = 0;
+ }
+ } else {
+ /*
+ ** Fill the logical palette with color ramps.
+ **pcp
+ ** Set up the logical palette so that it can be realized
+ ** into the system palette as an identity palette.
+ **
+ ** 1) The default static entries should be present and at the right
+ ** location. The easiest way to do this is to grab them from
+ ** the current system palette.
+ **
+ ** 2) All non-static entries should be initialized to unique values.
+ ** The easiest way to do this is to ensure that all of the non-static
+ ** entries have the PC_NOCOLLAPSE flag bit set.
+ */
+ int numRamps = NUM_COLORS;
+ int rampSize = (paletteSize - 20) / numRamps;
+ int extra = (paletteSize - 20) - (numRamps * rampSize);
+ int i, r;
+
+ /*
+ ** Initialize static entries by copying them from the
+ ** current system palette.
+ */
+ GetSystemPaletteEntries(pdp->hDC, 0, paletteSize, &pPal->palPalEntry[0]);
+
+ /*
+ ** Fill in non-static entries with desired colors.
+ */
+ for (r=0; r<numRamps; ++r) {
+ int rampBase = r * rampSize + 10;
+ PALETTEENTRY *pe = &pPal->palPalEntry[rampBase];
+ int diffSize = (int) (rampSize * colors[r].ratio);
+ int specSize = rampSize - diffSize;
+
+ for (i=0; i<rampSize; ++i) {
+ GLfloat *c0, *c1;
+ GLint a;
+
+ if (i < diffSize) {
+ c0 = colors[r].amb;
+ c1 = colors[r].diff;
+ a = (i * 255) / (diffSize - 1);
+ } else {
+ c0 = colors[r].diff;
+ c1 = colors[r].spec;
+ a = ((i - diffSize) * 255) / (specSize - 1);
+ }
+
+ pe[i].peRed = (BYTE) (a * (c1[0] - c0[0]) + 255 * c0[0]);
+ pe[i].peGreen = (BYTE) (a * (c1[1] - c0[1]) + 255 * c0[1]);
+ pe[i].peBlue = (BYTE) (a * (c1[2] - c0[2]) + 255 * c0[2]);
+ pe[i].peFlags = PC_NOCOLLAPSE;
+ }
+
+ colors[r].indexes[0] = rampBase;
+ colors[r].indexes[1] = rampBase + (diffSize-1);
+ colors[r].indexes[2] = rampBase + (rampSize-1);
+ }
+
+ /*
+ ** Initialize any remaining non-static entries.
+ */
+ for (i=0; i<extra; ++i) {
+ int index = numRamps*rampSize+10+i;
+ PALETTEENTRY *pe = &pPal->palPalEntry[index];
+
+ pe->peRed = (BYTE) 0;
+ pe->peGreen = (BYTE) 0;
+ pe->peBlue = (BYTE) 0;
+ pe->peFlags = PC_NOCOLLAPSE;
+ }
+ }
+
+ pdp->hPalette = CreatePalette(pPal);
+ free(pPal);
+
+ if (pdp->hPalette) {
+ SelectPalette(pdp->hDC, pdp->hPalette, FALSE);
+ RealizePalette(pdp->hDC);
+ }
+}
+
+void setupPixelFormat(__DRIdrawable *pdp)
+{
+ PIXELFORMATDESCRIPTOR pfd = {
+ sizeof(PIXELFORMATDESCRIPTOR), /* size of this pfd */
+ 1, /* version num */
+ PFD_SUPPORT_OPENGL, /* support OpenGL */
+ 0, /* pixel type */
+ 0, /* 8-bit color depth */
+ 0, 0, 0, 0, 0, 0, /* color bits (ignored) */
+ 0, /* no alpha buffer */
+ 0, /* alpha bits (ignored) */
+ 0, /* no accumulation buffer */
+ 0, 0, 0, 0, /* accum bits (ignored) */
+ 16, /* depth buffer */
+ 0, /* no stencil buffer */
+ 0, /* no auxiliary buffers */
+ PFD_MAIN_PLANE, /* main layer */
+ 0, /* reserved */
+ 0, 0, 0, /* no layer, visible, damage masks */
+ };
+ int SelectedPixelFormat;
+ BOOL retVal;
+
+ PRINTF(__FUNCTION__": pdp %x\n", pdp);
+
+ pfd.cColorBits = GetDeviceCaps(pdp->hDC, BITSPIXEL);
+
+ if (colorIndexMode) {
+ pfd.iPixelType = PFD_TYPE_COLORINDEX;
+ } else {
+ pfd.iPixelType = PFD_TYPE_RGBA;
+ }
+
+ if (doubleBuffered) {
+ pfd.dwFlags |= PFD_DOUBLEBUFFER;
+ }
+
+ pfd.dwFlags |= PFD_DRAW_TO_BITMAP;
+
+ SelectedPixelFormat = ChoosePixelFormat(pdp->hDC, &pfd);
+ if (SelectedPixelFormat == 0)
+ {
+ (void) MessageBox(WindowFromDC(pdp->hDC), "Failed to find acceptable pixel format.", "OpenGL application error", MB_ICONERROR | MB_OK);
+ exit(1);
+ }
+
+ retVal = SetPixelFormat(pdp->hDC, SelectedPixelFormat, &pfd);
+ if (retVal != TRUE)
+ {
+ MessageBox(WindowFromDC(pdp->hDC), "Failed to set pixel format.", "OpenGL application error", MB_ICONERROR | MB_OK);
+ exit(1);
+ }
+}
+
+void setupDIB(__DRIdrawable * pdp)
+{
+ HBITMAP hBitmap;
+ BITMAPINFO *bmInfo;
+ BITMAPINFOHEADER *bmHeader;
+ UINT usage;
+ VOID *base;
+ int bmiSize;
+ int bitsPerPixel;
+
+ PRINTF(__FUNCTION__": pdp %x\n", pdp);
+
+ bmiSize = sizeof(*bmInfo);
+ bitsPerPixel = GetDeviceCaps(pdp->hDC, BITSPIXEL);
+ pdp->bitsPerPixel=bitsPerPixel;
+
+ switch (bitsPerPixel) {
+ case 8:
+ /* bmiColors is 256 WORD palette indices */
+ bmiSize += (256 * sizeof(WORD)) - sizeof(RGBQUAD);
+ break;
+ case 16:
+ /* bmiColors is 3 WORD component masks */
+ bmiSize += (3 * sizeof(DWORD)) - sizeof(RGBQUAD);
+ break;
+ case 24:
+ case 32:
+ default:
+ /* bmiColors not used */
+ break;
+ }
+
+ bmInfo = (BITMAPINFO *) calloc(1, bmiSize);
+ bmHeader = &bmInfo->bmiHeader;
+
+ bmHeader->biSize = sizeof(*bmHeader);
+ bmHeader->biWidth = pdp->winWidth;
+ bmHeader->biHeight = pdp->winHeight;
+ bmHeader->biPlanes = 1; /* must be 1 */
+ bmHeader->biBitCount = bitsPerPixel;
+ bmHeader->biXPelsPerMeter = 0;
+ bmHeader->biYPelsPerMeter = 0;
+ bmHeader->biClrUsed = 0; /* all are used */
+ bmHeader->biClrImportant = 0; /* all are important */
+
+ switch (bitsPerPixel) {
+ case 8:
+ bmHeader->biCompression = BI_RGB;
+ bmHeader->biSizeImage = 0;
+ usage = DIB_PAL_COLORS;
+ /* bmiColors is 256 WORD palette indices */
+ {
+ WORD *palIndex = (WORD *) &bmInfo->bmiColors[0];
+ int i;
+
+ for (i=0; i<256; i++) {
+ palIndex[i] = i;
+ }
+ }
+ break;
+ case 16:
+ bmHeader->biCompression = BI_RGB;
+ bmHeader->biSizeImage = 0;
+ usage = DIB_RGB_COLORS;
+ /* bmiColors is 3 WORD component masks */
+ {
+ DWORD *compMask = (DWORD *) &bmInfo->bmiColors[0];
+
+ compMask[0] = 0xF800;
+ compMask[1] = 0x07E0;
+ compMask[2] = 0x001F;
+ }
+ break;
+ case 24:
+ case 32:
+ default:
+ bmHeader->biCompression = BI_RGB;
+ bmHeader->biSizeImage = 0;
+ usage = DIB_RGB_COLORS;
+ /* bmiColors not used */
+ break;
+ }
+
+ hBitmap = CreateDIBSection(pdp->hDC, bmInfo, usage, &base, NULL, 0);
+ if (hBitmap == NULL)
+ {
+ (void) MessageBox(WindowFromDC(pdp->hDC), "Failed to create DIBSection.", "OpenGL application error", MB_ICONERROR | MB_OK);
+ exit(1);
+ }
+
+ pdp->bits=base;
+ SelectObject(pdp->hDC, hBitmap);
+ if (pdp->hBitmap) DeleteObject(pdp->hBitmap);
+ pdp->hBitmap = hBitmap;
+
+ free(bmInfo);
+}
+
+static void setupLoaderExtensions(__DRIscreen *psp, const __DRIextension **extensions)
+{
+ int i;
+
+ for (i = 0; extensions[i]; i++)
+ {
+ if (strcmp(extensions[i]->name, __DRI_SWRAST_LOADER) == 0)
+ psp->swrast_loader = (__DRIswrastLoaderExtension *) extensions[i];
+ }
+}
+
+static const __DRItexBufferExtension swrastTexBufferExtension = {
+ { __DRI_TEX_BUFFER, __DRI_TEX_BUFFER_VERSION },
+ NULL,// swrastSetTexBuffer,
+ NULL // swrastSetTexBuffer2
+};
+
+static const __DRIextension *dri_screen_extensions[] = {
+ &swrastTexBufferExtension.base,
+ NULL
+};
+
+struct gl_config
+{
+ GLboolean rgbMode;
+ GLboolean floatMode;
+ GLboolean colorIndexMode; /* XXX is this used anywhere? */
+ GLuint doubleBufferMode;
+ GLuint stereoMode;
+
+ GLboolean haveAccumBuffer;
+ GLboolean haveDepthBuffer;
+ GLboolean haveStencilBuffer;
+
+ GLint redBits, greenBits, blueBits, alphaBits; /* bits per comp */
+ GLuint redMask, greenMask, blueMask, alphaMask;
+ GLint rgbBits; /* total bits for rgb */
+ GLint indexBits; /* total bits for colorindex */
+
+ GLint accumRedBits, accumGreenBits, accumBlueBits, accumAlphaBits;
+ GLint depthBits;
+ GLint stencilBits;
+
+ GLint numAuxBuffers;
+
+ GLint level;
+
+ /* EXT_visual_rating / GLX 1.2 */
+ GLint visualRating;
+
+ /* EXT_visual_info / GLX 1.2 */
+ GLint transparentPixel;
+ /* colors are floats scaled to ints */
+ GLint transparentRed, transparentGreen, transparentBlue, transparentAlpha;
+ GLint transparentIndex;
+
+ /* ARB_multisample / SGIS_multisample */
+ GLint sampleBuffers;
+ GLint samples;
+
+ /* SGIX_pbuffer / GLX 1.3 */
+ GLint maxPbufferWidth;
+ GLint maxPbufferHeight;
+ GLint maxPbufferPixels;
+ GLint optimalPbufferWidth; /* Only for SGIX_pbuffer. */
+ GLint optimalPbufferHeight; /* Only for SGIX_pbuffer. */
+
+ /* OML_swap_method */
+ GLint swapMethod;
+
+ /* EXT_texture_from_pixmap */
+ GLint bindToTextureRgb;
+ GLint bindToTextureRgba;
+ GLint bindToMipmapTexture;
+ GLint bindToTextureTargets;
+ GLint yInverted;
+
+ /* EXT_framebuffer_sRGB */
+ GLint sRGBCapable;
+};
+
+struct __DRIconfigRec {
+ struct gl_config modes;
+};
+
+#define __ATTRIB(attrib, field) \
+ { attrib, offsetof(struct gl_config, field) }
+
+static const struct { unsigned int attrib, offset; } attribMap[] = {
+ __ATTRIB(__DRI_ATTRIB_BUFFER_SIZE, rgbBits),
+ __ATTRIB(__DRI_ATTRIB_LEVEL, level),
+ __ATTRIB(__DRI_ATTRIB_RED_SIZE, redBits),
+ __ATTRIB(__DRI_ATTRIB_GREEN_SIZE, greenBits),
+ __ATTRIB(__DRI_ATTRIB_BLUE_SIZE, blueBits),
+ __ATTRIB(__DRI_ATTRIB_ALPHA_SIZE, alphaBits),
+ __ATTRIB(__DRI_ATTRIB_DEPTH_SIZE, depthBits),
+ __ATTRIB(__DRI_ATTRIB_STENCIL_SIZE, stencilBits),
+ __ATTRIB(__DRI_ATTRIB_ACCUM_RED_SIZE, accumRedBits),
+ __ATTRIB(__DRI_ATTRIB_ACCUM_GREEN_SIZE, accumGreenBits),
+ __ATTRIB(__DRI_ATTRIB_ACCUM_BLUE_SIZE, accumBlueBits),
+ __ATTRIB(__DRI_ATTRIB_ACCUM_ALPHA_SIZE, accumAlphaBits),
+ __ATTRIB(__DRI_ATTRIB_SAMPLE_BUFFERS, sampleBuffers),
+ __ATTRIB(__DRI_ATTRIB_SAMPLES, samples),
+ __ATTRIB(__DRI_ATTRIB_DOUBLE_BUFFER, doubleBufferMode),
+ __ATTRIB(__DRI_ATTRIB_STEREO, stereoMode),
+ __ATTRIB(__DRI_ATTRIB_AUX_BUFFERS, numAuxBuffers),
+ __ATTRIB(__DRI_ATTRIB_TRANSPARENT_TYPE, transparentPixel),
+ __ATTRIB(__DRI_ATTRIB_TRANSPARENT_INDEX_VALUE, transparentPixel),
+ __ATTRIB(__DRI_ATTRIB_TRANSPARENT_RED_VALUE, transparentRed),
+ __ATTRIB(__DRI_ATTRIB_TRANSPARENT_GREEN_VALUE, transparentGreen),
+ __ATTRIB(__DRI_ATTRIB_TRANSPARENT_BLUE_VALUE, transparentBlue),
+ __ATTRIB(__DRI_ATTRIB_TRANSPARENT_ALPHA_VALUE, transparentAlpha),
+ __ATTRIB(__DRI_ATTRIB_FLOAT_MODE, floatMode),
+ __ATTRIB(__DRI_ATTRIB_RED_MASK, redMask),
+ __ATTRIB(__DRI_ATTRIB_GREEN_MASK, greenMask),
+ __ATTRIB(__DRI_ATTRIB_BLUE_MASK, blueMask),
+ __ATTRIB(__DRI_ATTRIB_ALPHA_MASK, alphaMask),
+ __ATTRIB(__DRI_ATTRIB_MAX_PBUFFER_WIDTH, maxPbufferWidth),
+ __ATTRIB(__DRI_ATTRIB_MAX_PBUFFER_HEIGHT, maxPbufferHeight),
+ __ATTRIB(__DRI_ATTRIB_MAX_PBUFFER_PIXELS, maxPbufferPixels),
+ __ATTRIB(__DRI_ATTRIB_OPTIMAL_PBUFFER_WIDTH, optimalPbufferWidth),
+ __ATTRIB(__DRI_ATTRIB_OPTIMAL_PBUFFER_HEIGHT, optimalPbufferHeight),
+ __ATTRIB(__DRI_ATTRIB_SWAP_METHOD, swapMethod),
+ __ATTRIB(__DRI_ATTRIB_BIND_TO_TEXTURE_RGB, bindToTextureRgb),
+ __ATTRIB(__DRI_ATTRIB_BIND_TO_TEXTURE_RGBA, bindToTextureRgba),
+ __ATTRIB(__DRI_ATTRIB_BIND_TO_MIPMAP_TEXTURE, bindToMipmapTexture),
+ __ATTRIB(__DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS, bindToTextureTargets),
+ __ATTRIB(__DRI_ATTRIB_YINVERTED, yInverted),
+ __ATTRIB(__DRI_ATTRIB_FRAMEBUFFER_SRGB_CAPABLE, sRGBCapable),
+
+ /* The struct field doesn't matter here, these are handled by the
+ * switch in driGetConfigAttribIndex. We need them in the array
+ * so the iterator includes them though.*/
+ __ATTRIB(__DRI_ATTRIB_RENDER_TYPE, level),
+ __ATTRIB(__DRI_ATTRIB_CONFIG_CAVEAT, level),
+ __ATTRIB(__DRI_ATTRIB_SWAP_METHOD, level)
+};
+
+#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
+
+__DRIconfig **
+driCreateConfigs(GLenum fb_format, GLenum fb_type,
+ const uint8_t * depth_bits, const uint8_t * stencil_bits,
+ unsigned num_depth_stencil_bits,
+ const GLenum * db_modes, unsigned num_db_modes,
+ const uint8_t * msaa_samples, unsigned num_msaa_modes,
+ GLboolean enable_accum)
+{
+ static const uint8_t bits_table[4][4] = {
+ /* R G B A */
+ { 3, 3, 2, 0 }, /* Any GL_UNSIGNED_BYTE_3_3_2 */
+ { 5, 6, 5, 0 }, /* Any GL_UNSIGNED_SHORT_5_6_5 */
+ { 8, 8, 8, 0 }, /* Any RGB with any GL_UNSIGNED_INT_8_8_8_8 */
+ { 8, 8, 8, 8 } /* Any RGBA with any GL_UNSIGNED_INT_8_8_8_8 */
+ };
+
+ static const uint32_t masks_table_rgb[6][4] = {
+ { 0x000000E0, 0x0000001C, 0x00000003, 0x00000000 }, /* 3_3_2 */
+ { 0x00000007, 0x00000038, 0x000000C0, 0x00000000 }, /* 2_3_3_REV */
+ { 0x0000F800, 0x000007E0, 0x0000001F, 0x00000000 }, /* 5_6_5 */
+ { 0x0000001F, 0x000007E0, 0x0000F800, 0x00000000 }, /* 5_6_5_REV */
+ { 0xFF000000, 0x00FF0000, 0x0000FF00, 0x00000000 }, /* 8_8_8_8 */
+ { 0x000000FF, 0x0000FF00, 0x00FF0000, 0x00000000 } /* 8_8_8_8_REV */
+ };
+
+ static const uint32_t masks_table_rgba[6][4] = {
+ { 0x000000E0, 0x0000001C, 0x00000003, 0x00000000 }, /* 3_3_2 */
+ { 0x00000007, 0x00000038, 0x000000C0, 0x00000000 }, /* 2_3_3_REV */
+ { 0x0000F800, 0x000007E0, 0x0000001F, 0x00000000 }, /* 5_6_5 */
+ { 0x0000001F, 0x000007E0, 0x0000F800, 0x00000000 }, /* 5_6_5_REV */
+ { 0xFF000000, 0x00FF0000, 0x0000FF00, 0x000000FF }, /* 8_8_8_8 */
+ { 0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000 }, /* 8_8_8_8_REV */
+ };
+
+ static const uint32_t masks_table_bgr[6][4] = {
+ { 0x00000007, 0x00000038, 0x000000C0, 0x00000000 }, /* 3_3_2 */
+ { 0x000000E0, 0x0000001C, 0x00000003, 0x00000000 }, /* 2_3_3_REV */
+ { 0x0000001F, 0x000007E0, 0x0000F800, 0x00000000 }, /* 5_6_5 */
+ { 0x0000F800, 0x000007E0, 0x0000001F, 0x00000000 }, /* 5_6_5_REV */
+ { 0x0000FF00, 0x00FF0000, 0xFF000000, 0x00000000 }, /* 8_8_8_8 */
+ { 0x00FF0000, 0x0000FF00, 0x000000FF, 0x00000000 }, /* 8_8_8_8_REV */
+ };
+
+ static const uint32_t masks_table_bgra[6][4] = {
+ { 0x00000007, 0x00000038, 0x000000C0, 0x00000000 }, /* 3_3_2 */
+ { 0x000000E0, 0x0000001C, 0x00000003, 0x00000000 }, /* 2_3_3_REV */
+ { 0x0000001F, 0x000007E0, 0x0000F800, 0x00000000 }, /* 5_6_5 */
+ { 0x0000F800, 0x000007E0, 0x0000001F, 0x00000000 }, /* 5_6_5_REV */
+ { 0x0000FF00, 0x00FF0000, 0xFF000000, 0x000000FF }, /* 8_8_8_8 */
+ { 0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000 }, /* 8_8_8_8_REV */
+ };
+
+ static const uint8_t bytes_per_pixel[6] = {
+ 1, /* 3_3_2 */
+ 1, /* 2_3_3_REV */
+ 2, /* 5_6_5 */
+ 2, /* 5_6_5_REV */
+ 4, /* 8_8_8_8 */
+ 4 /* 8_8_8_8_REV */
+
+ };
+
+ const uint8_t * bits;
+ const uint32_t * masks;
+ int index;
+ __DRIconfig **configs, **c;
+
+ struct gl_config *modes;
+ unsigned i, j, k, h;
+ unsigned num_modes;
+ unsigned num_accum_bits = (enable_accum) ? 2 : 1;
+
+ PRINTF(__FUNCTION__"\n");
+ switch ( fb_type ) {
+ case GL_UNSIGNED_BYTE_3_3_2:
+ index = 0;
+ break;
+ case GL_UNSIGNED_BYTE_2_3_3_REV:
+ index = 1;
+ break;
+ case GL_UNSIGNED_SHORT_5_6_5:
+ index = 2;
+ break;
+ case GL_UNSIGNED_SHORT_5_6_5_REV:
+ index = 3;
+ break;
+ case GL_UNSIGNED_INT_8_8_8_8:
+ index = 4;
+ break;
+ case GL_UNSIGNED_INT_8_8_8_8_REV:
+ index = 5;
+ break;
+ default:
+ fprintf( stderr, "[%s:%u] Unknown framebuffer type 0x%04x.\n",
+ __FUNCTION__, __LINE__, fb_type );
+ return NULL;
+ }
+
+
+ /* Valid types are GL_UNSIGNED_SHORT_5_6_5 and GL_UNSIGNED_INT_8_8_8_8 and
+ * the _REV versions.
+ *
+ * Valid formats are GL_RGBA, GL_RGB, and GL_BGRA.
+ */
+
+ switch ( fb_format ) {
+ case GL_RGB:
+ masks = masks_table_rgb[ index ];
+ break;
+
+ case GL_RGBA:
+ masks = masks_table_rgba[ index ];
+ break;
+
+ case GL_BGR:
+ masks = masks_table_bgr[ index ];
+ break;
+
+ case GL_BGRA:
+ masks = masks_table_bgra[ index ];
+ break;
+
+ default:
+ fprintf( stderr, "[%s:%u] Unknown framebuffer format 0x%04x.\n",
+ __FUNCTION__, __LINE__, fb_format );
+ return NULL;
+ }
+
+ switch ( bytes_per_pixel[ index ] ) {
+ case 1:
+ bits = bits_table[0];
+ break;
+ case 2:
+ bits = bits_table[1];
+ break;
+ default:
+ bits = ((fb_format == GL_RGB) || (fb_format == GL_BGR))
+ ? bits_table[2]
+ : bits_table[3];
+ break;
+ }
+
+ num_modes = num_depth_stencil_bits * num_db_modes * num_accum_bits * num_msaa_modes;
+ configs = calloc(1, (num_modes + 1) * sizeof *configs);
+ if (configs == NULL)
+ return NULL;
+
+ c = configs;
+ for ( k = 0 ; k < num_depth_stencil_bits ; k++ ) {
+ for ( i = 0 ; i < num_db_modes ; i++ ) {
+ for ( h = 0 ; h < num_msaa_modes; h++ ) {
+ for ( j = 0 ; j < num_accum_bits ; j++ ) {
+ *c = malloc (sizeof **c);
+ modes = &(*c)->modes;
+ c++;
+
+ memset(modes, 0, sizeof *modes);
+ modes->redBits = bits[0];
+ modes->greenBits = bits[1];
+ modes->blueBits = bits[2];
+ modes->alphaBits = bits[3];
+ modes->redMask = masks[0];
+ modes->greenMask = masks[1];
+ modes->blueMask = masks[2];
+ modes->alphaMask = masks[3];
+ modes->rgbBits = modes->redBits + modes->greenBits
+ + modes->blueBits + modes->alphaBits;
+
+ modes->accumRedBits = 16 * j;
+ modes->accumGreenBits = 16 * j;
+ modes->accumBlueBits = 16 * j;
+ modes->accumAlphaBits = (masks[3] != 0) ? 16 * j : 0;
+ modes->visualRating = (j == 0) ? GLX_NONE : GLX_SLOW_CONFIG;
+
+ modes->stencilBits = stencil_bits[k];
+ modes->depthBits = depth_bits[k];
+
+ modes->transparentPixel = GLX_NONE;
+ modes->transparentRed = GLX_DONT_CARE;
+ modes->transparentGreen = GLX_DONT_CARE;
+ modes->transparentBlue = GLX_DONT_CARE;
+ modes->transparentAlpha = GLX_DONT_CARE;
+ modes->transparentIndex = GLX_DONT_CARE;
+ modes->rgbMode = GL_TRUE;
+
+ if ( db_modes[i] == GLX_NONE ) {
+ modes->doubleBufferMode = GL_FALSE;
+ }
+ else {
+ modes->doubleBufferMode = GL_TRUE;
+ modes->swapMethod = db_modes[i];
+ }
+
+ modes->samples = msaa_samples[h];
+ modes->sampleBuffers = modes->samples ? 1 : 0;
+
+
+ modes->haveAccumBuffer = ((modes->accumRedBits +
+ modes->accumGreenBits +
+ modes->accumBlueBits +
+ modes->accumAlphaBits) > 0);
+ modes->haveDepthBuffer = (modes->depthBits > 0);
+ modes->haveStencilBuffer = (modes->stencilBits > 0);
+
+ modes->bindToTextureRgb = GL_TRUE;
+ modes->bindToTextureRgba = GL_TRUE;
+ modes->bindToMipmapTexture = GL_FALSE;
+ modes->bindToTextureTargets =
+ __DRI_ATTRIB_TEXTURE_1D_BIT |
+ __DRI_ATTRIB_TEXTURE_2D_BIT |
+ __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT;
+
+ modes->sRGBCapable = GL_FALSE;
+ }
+ }
+ }
+ }
+ *c = NULL;
+
+ return configs;
+}
+
+static __DRIconfig **
+swrastFillInModes(__DRIscreen *psp,
+ unsigned pixel_bits, unsigned depth_bits,
+ unsigned stencil_bits, GLboolean have_back_buffer)
+{
+ __DRIconfig **configs;
+ unsigned depth_buffer_factor;
+ unsigned back_buffer_factor;
+ GLenum fb_format;
+ GLenum fb_type;
+
+ /* GLX_SWAP_COPY_OML is only supported because the Intel driver doesn't
+ * support pageflipping at all.
+ */
+ static const GLenum back_buffer_modes[] = {
+ GLX_NONE, GLX_SWAP_UNDEFINED_OML
+ };
+
+ uint8_t depth_bits_array[4];
+ uint8_t stencil_bits_array[4];
+ uint8_t msaa_samples_array[1];
+
+ (void) psp;
+ (void) have_back_buffer;
+
+ PRINTF(__FUNCTION__"\n");
+
+ depth_bits_array[0] = 0;
+ depth_bits_array[1] = 0;
+ depth_bits_array[2] = depth_bits;
+ depth_bits_array[3] = depth_bits;
+
+ /* Just like with the accumulation buffer, always provide some modes
+ * with a stencil buffer.
+ */
+ stencil_bits_array[0] = 0;
+ stencil_bits_array[1] = (stencil_bits == 0) ? 8 : stencil_bits;
+ stencil_bits_array[2] = 0;
+ stencil_bits_array[3] = (stencil_bits == 0) ? 8 : stencil_bits;
+
+ msaa_samples_array[0] = 0;
+
+ depth_buffer_factor = 4;
+ back_buffer_factor = 2;
+
+ switch (pixel_bits) {
+ case 8:
+ fb_format = GL_RGB;
+ fb_type = GL_UNSIGNED_BYTE_2_3_3_REV;
+ break;
+ case 16:
+ fb_format = GL_RGB;
+ fb_type = GL_UNSIGNED_SHORT_5_6_5;
+ break;
+ case 24:
+ fb_format = GL_BGR;
+ fb_type = GL_UNSIGNED_INT_8_8_8_8_REV;
+ break;
+ case 32:
+ fb_format = GL_BGRA;
+ fb_type = GL_UNSIGNED_INT_8_8_8_8_REV;
+ break;
+ default:
+ fprintf(stderr, "[%s:%u] bad depth %d\n", __FUNCTION__, __LINE__,
+ pixel_bits);
+ return NULL;
+ }
+
+ configs = driCreateConfigs(fb_format, fb_type,
+ depth_bits_array, stencil_bits_array,
+ depth_buffer_factor, back_buffer_modes,
+ back_buffer_factor, msaa_samples_array, 1,
+ GL_TRUE);
+ if (configs == NULL) {
+ fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __FUNCTION__,
+ __LINE__);
+ return NULL;
+ }
+
+ return configs;
+}
+
+__DRIconfig **driConcatConfigs(__DRIconfig **a, __DRIconfig **b)
+{
+ __DRIconfig **all;
+ int i, j, index;
+
+ PRINTF(__FUNCTION__"\n");
+
+ i = 0;
+ while (a[i] != NULL)
+ i++;
+ j = 0;
+ while (b[j] != NULL)
+ j++;
+
+ all = malloc((i + j + 1) * sizeof *all);
+ index = 0;
+ for (i = 0; a[i] != NULL; i++)
+ all[index++] = a[i];
+ for (j = 0; b[j] != NULL; j++)
+ all[index++] = b[j];
+ all[index++] = NULL;
+
+ free(a);
+ free(b);
+
+ return all;
+}
+
+/**
+ * Return the value of a configuration attribute. The attribute is
+ * indicated by the index.
+ */
+static int driGetConfigAttribIndex(const __DRIconfig *config, unsigned int index, unsigned int *value)
+{
+ switch (attribMap[index].attrib) {
+ case __DRI_ATTRIB_RENDER_TYPE:
+ /* no support for color index mode */
+ *value = __DRI_ATTRIB_RGBA_BIT;
+ break;
+ case __DRI_ATTRIB_CONFIG_CAVEAT:
+ if (config->modes.visualRating == GLX_NON_CONFORMANT_CONFIG)
+ *value = __DRI_ATTRIB_NON_CONFORMANT_CONFIG;
+ else if (config->modes.visualRating == GLX_SLOW_CONFIG)
+ *value = __DRI_ATTRIB_SLOW_BIT;
+ else
+ *value = 0;
+ break;
+ case __DRI_ATTRIB_SWAP_METHOD:
+ /* XXX no return value??? */
+ break;
+
+ case __DRI_ATTRIB_FLOAT_MODE:
+ /* this field is not int-sized */
+ *value = config->modes.floatMode;
+ break;
+
+ default:
+ /* any other int-sized field */
+ *value = *(unsigned int *)
+ ((char *) &config->modes + attribMap[index].offset);
+ break;
+ }
+
+ return GL_TRUE;
+}
+
+/**
+ * Get the value of a configuration attribute.
+ * \param attrib the attribute (one of the _DRI_ATTRIB_x tokens)
+ * \param value returns the attribute's value
+ * \return 1 for success, 0 for failure
+ */
+int
+driGetConfigAttrib(const __DRIconfig *config, unsigned int attrib, unsigned int *value)
+{
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(attribMap); i++)
+ if (attribMap[i].attrib == attrib)
+ return driGetConfigAttribIndex(config, i, value);
+
+ return GL_FALSE;
+}
+
+/**
+ * Get a configuration attribute name and value, given an index.
+ * \param index which field of the __DRIconfig to query
+ * \param attrib returns the attribute name (one of the _DRI_ATTRIB_x tokens)
+ * \param value returns the attribute's value
+ * \return 1 for success, 0 for failure
+ */
+int driIndexConfigAttrib(const __DRIconfig *config, int index, unsigned int *attrib, unsigned int *value)
+{
+ if (index >= 0 && index < ARRAY_SIZE(attribMap))
+ {
+ *attrib = attribMap[index].attrib;
+ return driGetConfigAttribIndex(config, index, value);
+ }
+
+ return GL_FALSE;
+}
+
+static const __DRIconfig **dri_init_screen(__DRIscreen * psp)
+{
+ __DRIconfig **configs8, **configs16, **configs24, **configs32;
+
+ PRINTF(__FUNCTION__": psp %x\n", psp);
+
+ psp->extensions = dri_screen_extensions;
+
+ configs8 = swrastFillInModes(psp, 8, 8, 0, 1);
+ configs16 = swrastFillInModes(psp, 16, 16, 0, 1);
+ configs24 = swrastFillInModes(psp, 24, 24, 8, 1);
+ configs32 = swrastFillInModes(psp, 32, 24, 8, 1);
+
+ configs16 = driConcatConfigs(configs8, configs16);
+ configs24 = driConcatConfigs(configs16, configs24);
+ configs32 = driConcatConfigs(configs24, configs32);
+
+ return (const __DRIconfig **)configs32;
+}
+
+static __DRIscreen *driCreateNewScreen(int scrn, const __DRIextension **extensions, const __DRIconfig ***driver_configs, void *data)
+{
+ static const __DRIextension *emptyExtensionList[] = { NULL };
+ __DRIscreen *psp;
+
+ HDC hDc = GetDC(NULL);
+ int bitsPerPixel= GetDeviceCaps(hDc, BITSPIXEL);
+ ReleaseDC(NULL, hDc);
+ if (bitsPerPixel<24)
+ {
+ PRINTF(__FUNCTION__": bitsPerPixel not supported %d\n", bitsPerPixel);
+ return NULL;
+ }
+
+ psp = calloc(sizeof(struct __DRIscreenRec),1);
+ if (!psp)
+ return NULL;
+
+ PRINTF(__FUNCTION__": psp %x\n", psp);
+
+ setupLoaderExtensions(psp, extensions);
+
+ psp->extensions = emptyExtensionList;
+ psp->ScreenNum = scrn;
+
+ *driver_configs = dri_init_screen(psp);
+
+ if (*driver_configs == NULL)
+ {
+ free(psp);
+ return NULL;
+ }
+
+ return psp;
+}
+
+static __DRIcontext *driCreateNewContext(__DRIscreen *psp, const __DRIconfig *config, __DRIcontext *shared, void *data)
+{
+ __DRIcontext *pcp;
+ void * const shareCtx = (shared != NULL) ? shared->driverPrivate : NULL;
+
+ pcp = calloc(sizeof(struct __DRIcontextRec),1);
+ if (!pcp)
+ return NULL;
+
+ PRINTF(__FUNCTION__": psp %x, shared %x, data %x, pcp %x\n", psp, shared, data, pcp);
+
+ pcp->loaderPrivate = data;
+
+ pcp->driScreenPriv = psp;
+ pcp->driDrawablePriv = NULL;
+ pcp->driReadablePriv = NULL;
+
+ pcp->Dispatch=calloc(sizeof(void*), (sizeof(struct _glapi_table) / sizeof(void *) + MAX_EXTENSION_FUNCS));
+ _glapi_set_dispatch(pcp->Dispatch);
+
+ glWinSetupDispatchTable();
+
+ return pcp;
+}
+
+static const __DRIextension **driGetExtensions(__DRIscreen *psp)
+{
+ return psp->extensions;
+}
+
+static void driDrawableCheckSize(__DRIdrawable *pdp)
+{
+ int x;
+ int y;
+ int w;
+ int h;
+ pdp->driScreenPriv->swrast_loader->getDrawableInfo(pdp, &x, &y, &w, &h, pdp->loaderPrivate);
+ if (pdp->winWidth==w && pdp->winHeight==h)
+ return;
+ pdp->winWidth=w;
+ pdp->winHeight=h;
+ setupDIB(pdp);
+}
+static __DRIdrawable *driCreateNewDrawable(__DRIscreen *psp, const __DRIconfig *config, void *data)
+{
+ __DRIdrawable *pdp = calloc(sizeof(struct __DRIdrawableRec),1);
+ if (!pdp)
+ return NULL;
+
+ PRINTF(__FUNCTION__": pdp %x, data %x\n", pdp, data);
+
+ pdp->loaderPrivate = data;
+
+ pdp->driScreenPriv = psp;
+
+ pdp->refcount++;
+
+ pdp->hDCFrontBuffer = GetDC(NULL);
+ pdp->hDC = CreateCompatibleDC(pdp->hDCFrontBuffer);
+
+ driDrawableCheckSize(pdp);
+
+ setupPixelFormat(pdp);
+ setupPalette(pdp);
+ pdp->hGLRC = wglCreateContext(pdp->hDC);
+
+ return pdp;
+}
+
+static __DRIcontext *current_pcp;
+
+static int driBindContext(__DRIcontext *pcp, __DRIdrawable *pdp, __DRIdrawable *prp)
+{
+ PRINTF(__FUNCTION__": pcp %x, pdp %x, prp %x\n",pcp, pdp, prp);
+
+ if (current_pcp)
+ {
+ driUnbindContext(current_pcp);
+ current_pcp=NULL;
+ }
+
+ /* Bind the drawable to the context */
+ if (pcp)
+ {
+ static int Created=0;
+
+ if (!pdp || !prp)
+ {
+ return GL_TRUE;
+ }
+
+ pcp->driDrawablePriv = pdp;
+ pcp->driReadablePriv = prp;
+ if (pdp)
+ {
+ pdp->refcount++;
+ }
+ if ( prp && pdp != prp )
+ {
+ prp->refcount++;
+ }
+
+ if (wglGetCurrentContext()!=pdp->hGLRC)
+ {
+ if (!wglMakeCurrent(pdp->hDC, pdp->hGLRC))
+ ErrorF("Error making context current: pdp %x\n",pdp);
+ PRINTF("pdp->hDC %x to pdp->hGLRC %x\n",pdp->hDC, pdp->hGLRC);
+ }
+ if (Created)
+ {
+ // initialize wgl extension proc pointers (don't call them before here...)
+ // (but we need to have a current context for them to be resolvable)
+ Created=1;
+ wglResolveExtensionProcs();
+ }
+ current_pcp=pcp;
+ _glapi_set_dispatch(pcp->Dispatch);
+ }
+
+ return GL_TRUE;
+}
+
+static void driDestroyDrawable(__DRIdrawable *pdp)
+{
+ if (pdp)
+ {
+ pdp->refcount--;
+ if (pdp->refcount) return;
+
+ PRINTF(__FUNCTION__": pdp %x\n", pdp);
+
+ wglDeleteContext (pdp->hGLRC);
+ DeleteDC(pdp->hDC);
+ ReleaseDC(NULL, pdp->hDCFrontBuffer);
+ DeleteObject(pdp->hBitmap);
+ if (pdp->hPalette) DeleteObject(pdp->hPalette);
+
+ free(pdp);
+ }
+}
+
+static int driUnbindContext(__DRIcontext *pcp)
+{
+ __DRIdrawable *pdp;
+ __DRIdrawable *prp;
+
+ PRINTF(__FUNCTION__": pcp %x\n", pcp);
+
+ if (pcp == NULL)
+ return GL_FALSE;
+
+ pdp = pcp->driDrawablePriv;
+ prp = pcp->driReadablePriv;
+
+ /* already unbound */
+ if (!pdp && !prp)
+ {
+ PRINTF(__FUNCTION__": pcp %x already unbound\n", pcp);
+ return GL_TRUE;
+ }
+
+ if (wglGetCurrentContext()==pdp->hGLRC)
+ {
+ current_pcp=NULL;
+ wglMakeCurrent(pdp->hDC, NULL);
+ PRINTF("pdp->hDC %x to NULL\n", pdp->hDC);
+ }
+
+ driDestroyDrawable(pdp);
+ if (prp!=pdp)
+ driDestroyDrawable(prp);
+
+ pcp->driDrawablePriv = NULL;
+ pcp->driReadablePriv = NULL;
+ _glapi_set_dispatch(NULL);
+
+ return GL_TRUE;
+}
+
+static void driDestroyContext(__DRIcontext *pcp)
+{
+ PRINTF(__FUNCTION__": pcp %x\n", pcp);
+ if (pcp)
+ {
+ driUnbindContext(pcp);
+ free(pcp);
+ }
+}
+
+static void driDestroyScreen(__DRIscreen *psp)
+{
+ PRINTF(__FUNCTION__": psp %x\n", psp);
+ if (psp)
+ {
+ free(psp);
+ }
+}
+
+static void driSwapBuffers(__DRIdrawable *pdp)
+{
+// GET_CURRENT_CONTEXT(ctx);
+ /* Revert image */
+ int Row;
+ int UpRow;
+ int ColCount;
+ int HalfRowCount;
+ int *pBits;
+
+ //GdiFlush();
+
+ driDrawableCheckSize(pdp);
+
+ ColCount=pdp->winWidth;
+ HalfRowCount=pdp->winHeight/2;
+ pBits=(int*)pdp->bits;
+
+ for (Row=0,UpRow=2*HalfRowCount-1; Row<HalfRowCount; Row++,UpRow--)
+ {
+ int j;
+ for (j=0; j<ColCount; j++)
+ {
+ int Temp=pBits[Row*ColCount+j];
+ pBits[Row*ColCount+j]=pBits[UpRow*ColCount+j];
+ pBits[UpRow*ColCount+j]=Temp;
+ }
+ }
+
+ pdp->driScreenPriv->swrast_loader->putImage(pdp, __DRI_SWRAST_IMAGE_OP_SWAP, 0, 0, pdp->winWidth, pdp->winHeight, pdp->bits, pdp->loaderPrivate);
+}
+
+const __DRIcoreExtension driCoreExtension = {
+ { __DRI_CORE, __DRI_CORE_VERSION },
+ NULL, /* driCreateNewScreen */
+ driDestroyScreen,
+ driGetExtensions,
+ driGetConfigAttrib,
+ driIndexConfigAttrib,
+ NULL, /* driCreateNewDrawable */
+ driDestroyDrawable,
+ driSwapBuffers,
+ driCreateNewContext,
+ NULL,// driCopyContext,
+ driDestroyContext,
+ driBindContext,
+ driUnbindContext
+};
+
+const __DRIswrastExtension driWGLExtension = {
+ { __DRI_SWRAST, __DRI_SWRAST_VERSION },
+ driCreateNewScreen,
+ driCreateNewDrawable,
+ NULL // driCreateNewContextForAPI
+};
+
+/* This is the table of extensions that the loader will dlsym() for. */
+PUBLIC const __DRIextension *__driDriverExtensions[] =
+{
+ &driCoreExtension.base,
+ &driWGLExtension.base,
+ NULL
+};
diff --git a/xorg-server/hw/xwin/swrastwgl_dri/swrastwgl_dri.def b/xorg-server/hw/xwin/swrastwgl_dri/swrastwgl_dri.def
new file mode 100644
index 000000000..b5826a404
--- /dev/null
+++ b/xorg-server/hw/xwin/swrastwgl_dri/swrastwgl_dri.def
@@ -0,0 +1,2 @@
+EXPORTS
+
diff --git a/xorg-server/hw/xwin/taskbar.h b/xorg-server/hw/xwin/taskbar.h
new file mode 100644
index 000000000..94f3f9efb
--- /dev/null
+++ b/xorg-server/hw/xwin/taskbar.h
@@ -0,0 +1,39 @@
+/*
+ *Copyright (C) 1994-2000 The XFree86 Project, Inc. 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 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:
+ *
+ *The above copyright notice and this permission notice 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
+ *NONINFRINGEMENT. IN NO EVENT SHALL THE XFREE86 PROJECT 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.
+ *
+ *Except as contained in this notice, the name of the XFree86 Project
+ *shall not be used in advertising or otherwise to promote the sale, use
+ *or other dealings in this Software without prior written authorization
+ *from the XFree86 Project.
+ */
+
+#ifndef _TASKBAR_H
+#define _TASKBAR_H
+
+#include <windows.h>
+#include <propsys.h>
+#include <propkey.h>
+
+typedef HRESULT (__stdcall *SHGETPROPERTYSTOREFORWINDOWPROC)(HWND,REFIID,void**);
+typedef HRESULT (__stdcall *PROPVARIANTCLEARPROC)(PROPVARIANT*);
+
+#endif
diff --git a/xorg-server/hw/xwin/win.h b/xorg-server/hw/xwin/win.h
index ce89348fe..1d3448a44 100644
--- a/xorg-server/hw/xwin/win.h
+++ b/xorg-server/hw/xwin/win.h
@@ -47,11 +47,6 @@
#define WM_MOUSEHWHEEL 0x020E
#endif
-/* Turn debug messages on or off */
-#ifndef CYGDEBUG
-#define CYGDEBUG NO
-#endif
-
#define WIN_DEFAULT_BPP 0
#define WIN_DEFAULT_WHITEPIXEL 255
#define WIN_DEFAULT_BLACKPIXEL 0
@@ -136,6 +131,9 @@
#include <errno.h>
#if defined(XWIN_MULTIWINDOWEXTWM) || defined(XWIN_CLIPBOARD) || defined(XWIN_MULTIWINDOW)
#define HANDLE void *
+#ifdef _MSC_VER
+typedef int pid_t;
+#endif
#include <pthread.h>
#undef HANDLE
#endif
@@ -200,43 +198,6 @@
#include "winwindow.h"
#include "winmsg.h"
-/*
- * Debugging macros
- */
-
-#if CYGDEBUG
-#define DEBUG_MSG(str,...) \
-if (fDebugProcMsg) \
-{ \
- char *pszTemp; \
- int iLength; \
- if (asprintf (&pszTemp, str, ##__VA_ARGS__) != -1) { \
- MessageBox (NULL, pszTemp, szFunctionName, MB_OK); \
- free (pszTemp); \
- } \
-}
-#else
-#define DEBUG_MSG(str,...)
-#endif
-
-#if CYGDEBUG
-#define DEBUG_FN_NAME(str) PTSTR szFunctionName = str
-#else
-#define DEBUG_FN_NAME(str)
-#endif
-
-#if CYGDEBUG || YES
-#define DEBUGVARS BOOL fDebugProcMsg = FALSE
-#else
-#define DEBUGVARS
-#endif
-
-#if CYGDEBUG || YES
-#define DEBUGPROC_MSG fDebugProcMsg = TRUE
-#else
-#define DEBUGPROC_MSG
-#endif
-
#define PROFILEPOINT(point,thresh)\
{\
static unsigned int PROFPT##point = 0;\
@@ -417,9 +378,11 @@ typedef struct {
Bool fDecoration;
#ifdef XWIN_MULTIWINDOWEXTWM
Bool fMWExtWM;
- Bool fInternalWM;
Bool fAnotherWMRunning;
#endif
+#ifdef XWIN_MULTIWINDOWINTWM
+ Bool fInternalWM;
+#endif
Bool fRootless;
#ifdef XWIN_MULTIWINDOW
Bool fMultiWindow;
@@ -489,17 +452,19 @@ typedef struct _winPrivScreenRec {
/* Privates used by shadow fb and primary fb DirectDraw servers */
LPDIRECTDRAW pdd;
- LPDIRECTDRAWSURFACE2 pddsPrimary;
+ LPDIRECTDRAWSURFACE pddsPrimary;
LPDIRECTDRAW2 pdd2;
/* Privates used by shadow fb DirectDraw server */
- LPDIRECTDRAWSURFACE2 pddsShadow;
+ LPDIRECTDRAWSURFACE pddsShadow;
LPDDSURFACEDESC pddsdShadow;
+#ifdef XWIN_PRIMARYFB
/* Privates used by primary fb DirectDraw server */
- LPDIRECTDRAWSURFACE2 pddsOffscreen;
+ LPDIRECTDRAWSURFACE pddsOffscreen;
LPDDSURFACEDESC pddsdOffscreen;
LPDDSURFACEDESC pddsdPrimary;
+#endif
/* Privates used by shadow fb DirectDraw Nonlocking server */
LPDIRECTDRAW4 pdd4;
@@ -793,7 +758,7 @@ Bool
winInitClipboard(void);
void
- winFixClipboardChain(void);
+ winFixClipboardChain (int Removed);
#endif
/*
@@ -820,6 +785,9 @@ Bool
* windialogs.c
*/
+int
+GetLiveClients (winPrivScreenPtr pScreenPriv);
+
void
winDisplayExitDialog(winPrivScreenPtr pScreenPriv);
@@ -1239,7 +1207,7 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
*/
void
- winInitNotifyIcon(winPrivScreenPtr pScreenPriv);
+ winInitNotifyIcon (winPrivScreenPtr pScreenPriv, Bool Modify);
void
winDeleteNotifyIcon(winPrivScreenPtr pScreenPriv);
@@ -1336,22 +1304,19 @@ void
winMWExtWMMoveResizeXWindow(WindowPtr pWin, int x, int y, int w, int h);
void
- winMWExtWMUpdateIcon(Window id);
-
-void
winMWExtWMUpdateWindowDecoration(win32RootlessWindowPtr pRLWinPriv,
winScreenInfoPtr pScreenInfo);
wBOOL CALLBACK winMWExtWMDecorateWindow(HWND hwnd, LPARAM lParam);
-Bool
- winIsInternalWMRunning(winScreenInfoPtr pScreenInfo);
-
void
winMWExtWMRestackWindows(ScreenPtr pScreen);
#endif
-
+#ifdef XWIN_MULTIWINDOWINTWM
+Bool
+ winIsInternalWMRunning (winScreenInfoPtr pScreenInfo);
+#endif
#ifdef XWIN_MULTIWINDOWEXTWM
/*
* winwin32rootlesswndproc.c
@@ -1387,6 +1352,13 @@ void
winInitializeScreens(int maxscreens);
/*
+ * windisplay.c
+ */
+
+void
+winGetDisplayName(char *szDisplay, unsigned int screen);
+
+/*
* winrandr.c
*/
Bool
diff --git a/xorg-server/hw/xwin/winSetAppUserModelID.c b/xorg-server/hw/xwin/winSetAppUserModelID.c
index 41615e19c..3c449a3a8 100644
--- a/xorg-server/hw/xwin/winSetAppUserModelID.c
+++ b/xorg-server/hw/xwin/winSetAppUserModelID.c
@@ -34,6 +34,7 @@
#include "winmsg.h"
#include <shlwapi.h>
+#include <propvarutil.h>
#define INITGUID
#include "initguid.h"
@@ -95,7 +96,7 @@ winSetAppUserModelID(HWND hWnd, const char *AppID)
hr = g_pSHGetPropertyStoreForWindow(hWnd, &IID_IPropertyStore,
(void **) &pps);
if (SUCCEEDED(hr) && pps) {
- memset(&pv, 0, sizeof(PROPVARIANT));
+ PropVariantInit(&pv);
if (AppID) {
pv.vt = VT_LPWSTR;
hr = SHStrDupA(AppID, &pv.pwszVal);
diff --git a/xorg-server/hw/xwin/winallpriv.c b/xorg-server/hw/xwin/winallpriv.c
index cc3b3d1ba..248d03658 100644
--- a/xorg-server/hw/xwin/winallpriv.c
+++ b/xorg-server/hw/xwin/winallpriv.c
@@ -47,10 +47,8 @@ winAllocatePrivates(ScreenPtr pScreen)
{
winPrivScreenPtr pScreenPriv;
-#if CYGDEBUG
winDebug("winAllocateScreenPrivates - g_ulServerGeneration: %d "
"serverGeneration: %d\n", g_ulServerGeneration, serverGeneration);
-#endif
/* We need a new slot for our privates if the screen gen has changed */
if (g_ulServerGeneration != serverGeneration) {
@@ -72,7 +70,7 @@ winAllocatePrivates(ScreenPtr pScreen)
/* Register our screen private */
if (!dixRegisterPrivateKey(g_iScreenPrivateKey, PRIVATE_SCREEN, 0)) {
- ErrorF("winAllocatePrivates - AllocateScreenPrivate () failed\n");
+ ErrorF ("winAllocatePrivates - dixRegisterPrivateKey () failed\n");
return FALSE;
}
@@ -112,9 +110,7 @@ winAllocatePrivates(ScreenPtr pScreen)
Bool
winInitCmapPrivates(ColormapPtr pcmap, int i)
{
-#if CYGDEBUG
winDebug("winInitCmapPrivates\n");
-#endif
/*
* I see no way that this function can do anything useful
@@ -139,9 +135,7 @@ winAllocateCmapPrivates(ColormapPtr pCmap)
winPrivCmapPtr pCmapPriv;
static unsigned long s_ulPrivateGeneration = 0;
-#if CYGDEBUG
winDebug("winAllocateCmapPrivates\n");
-#endif
/* Get a new privates index when the server generation changes */
if (s_ulPrivateGeneration != serverGeneration) {
@@ -168,9 +162,7 @@ winAllocateCmapPrivates(ColormapPtr pCmap)
/* Save the cmap private pointer */
winSetCmapPriv(pCmap, pCmapPriv);
-#if CYGDEBUG
winDebug("winAllocateCmapPrivates - Returning\n");
-#endif
return TRUE;
}
diff --git a/xorg-server/hw/xwin/winauth.c b/xorg-server/hw/xwin/winauth.c
index a6a7366a4..5c46c7022 100644
--- a/xorg-server/hw/xwin/winauth.c
+++ b/xorg-server/hw/xwin/winauth.c
@@ -32,6 +32,10 @@
#include <xwin-config.h>
#endif
+#define GC X11_GC /* To avoid compilation errors later when including win.h (which also defines the GC type) */
+#include <X11/Xlib.h>
+#undef GC
+
#include "win.h"
/* Includes for authorization */
@@ -56,15 +60,28 @@ static char *g_pAuthData = NULL;
* Code to generate a MIT-MAGIC-COOKIE-1, copied from under XCSECURITY
*/
+
+
#ifndef XCSECURITY
void
GenerateRandomData(int len, char *buf)
{
int fd;
-
+#ifdef _MSC_VER
+ static HANDLE hAdvApi32;
+ static BOOLEAN (_stdcall * RtlGenRandom)(void *,unsigned long);
+
+ if (!hAdvApi32)
+ {
+ hAdvApi32=LoadLibrary("advapi32.dll");
+ RtlGenRandom=(BOOLEAN (_stdcall *)(void*,unsigned long))GetProcAddress(hAdvApi32,"SystemFunction036");
+ }
+ RtlGenRandom(buf, len);
+#else
fd = open("/dev/urandom", O_RDONLY);
read(fd, buf, len);
close(fd);
+#endif
}
static char cookie[16]; /* 128 bits */
@@ -114,7 +131,6 @@ GenerateAuthorization(unsigned name_length,
Bool
winGenerateAuthorization(void)
{
- Bool fFreeAuth = FALSE;
SecurityAuthorizationPtr pAuth = NULL;
/* Call OS layer to generate authorization key */
@@ -125,12 +141,13 @@ winGenerateAuthorization(void)
ErrorF("winGenerateAuthorization - GenerateAuthorization failed\n");
goto auth_bailout;
}
-
+#ifdef WINDBG
else {
winDebug("winGenerateAuthorization - GenerateAuthorization success!\n"
"AuthDataLen: %d AuthData: %s\n",
g_uiAuthDataLen, g_pAuthData);
}
+#endif
#ifdef XCSECURITY
/* Allocate structure for additional auth information */
@@ -155,19 +172,16 @@ winGenerateAuthorization(void)
/* Add the authorization to the server's auth list */
if (!AddResource(g_authId, SecurityAuthorizationResType, pAuth)) {
ErrorF("winGenerateAuthorization - AddResource failed for auth.\n");
- fFreeAuth = TRUE;
goto auth_bailout;
}
/* Don't free the auth data, since it is still used internally */
- pAuth = NULL;
#endif
return TRUE;
auth_bailout:
- if (fFreeAuth)
- free(pAuth);
+ free(pAuth);
return FALSE;
}
@@ -176,6 +190,7 @@ winGenerateAuthorization(void)
void
winSetAuthorization(void)
{
+ if (g_pAuthData)
XSetAuthorization(AUTH_NAME,
strlen(AUTH_NAME), g_pAuthData, g_uiAuthDataLen);
}
diff --git a/xorg-server/hw/xwin/winclip.c b/xorg-server/hw/xwin/winclip.c
index 941e9483a..6862603ba 100644
--- a/xorg-server/hw/xwin/winclip.c
+++ b/xorg-server/hw/xwin/winclip.c
@@ -37,6 +37,6 @@
RegionPtr
winPixmapToRegionNativeGDI(PixmapPtr pPix)
{
- ErrorF("winPixmapToRegion()\n");
+ winDebug("winPixmapToRegion()\n");
return NULL;
}
diff --git a/xorg-server/hw/xwin/winclipboard.h b/xorg-server/hw/xwin/winclipboard.h
index cb7769510..d42497cc9 100644
--- a/xorg-server/hw/xwin/winclipboard.h
+++ b/xorg-server/hw/xwin/winclipboard.h
@@ -34,7 +34,9 @@
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
+#ifndef _MSC_VER
#include <unistd.h>
+#endif
#ifdef __CYGWIN__
#include <sys/select.h>
#else
@@ -42,6 +44,9 @@
#endif
#include <fcntl.h>
#include <setjmp.h>
+#ifdef _MSC_VER
+typedef int pid_t;
+#endif
#include <pthread.h>
/* X headers */
@@ -49,7 +54,6 @@
#include <X11/Xatom.h>
#include <X11/Xproto.h>
#include <X11/Xutil.h>
-#include <X11/Xlocale.h>
/* Windows headers */
#include <X11/Xwindows.h>
@@ -68,19 +72,14 @@
#define WIN_XEVENTS_SUCCESS 0
#define WIN_XEVENTS_CONVERT 2
#define WIN_XEVENTS_NOTIFY 3
-#define WIN_CLIPBOARD_RETRIES 40
-#define WIN_CLIPBOARD_DELAY 1
-#define WM_WM_REINIT (WM_USER + 1)
+#include "winmsg.h"
/*
* References to external symbols
*/
extern char *display;
-extern void winDebug(const char *format, ...);
-extern void winErrorFVerb(int verb, const char *format, ...);
-
/*
* winclipboardinit.c
*/
@@ -122,5 +121,5 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
int
winClipboardFlushXEvents(HWND hwnd,
- int iWindow, Display * pDisplay, Bool fUnicodeSupport);
+ int iWindow, Display * pDisplay, Bool fUnicodeSupport, Bool ClipboardOpened);
#endif
diff --git a/xorg-server/hw/xwin/winclipboardinit.c b/xorg-server/hw/xwin/winclipboardinit.c
index 304e6df9f..90fcf0086 100644
--- a/xorg-server/hw/xwin/winclipboardinit.c
+++ b/xorg-server/hw/xwin/winclipboardinit.c
@@ -33,6 +33,9 @@
#endif
#include "dixstruct.h"
#include "winclipboard.h"
+#include "objbase.h"
+#include "ddraw.h"
+#include "winwindow.h"
/*
* Local typedefs
@@ -126,9 +129,9 @@ winClipboardCreateMessagingWindow(void)
}
void
-winFixClipboardChain(void)
+winFixClipboardChain(int Removed)
{
if (g_fClipboard && g_hwndClipboard) {
- PostMessage(g_hwndClipboard, WM_WM_REINIT, 0, 0);
+ PostMessage (g_hwndClipboard, WM_WM_REINIT, Removed, 0);
}
}
diff --git a/xorg-server/hw/xwin/winclipboardthread.c b/xorg-server/hw/xwin/winclipboardthread.c
index 33595be7f..488a00fcc 100644
--- a/xorg-server/hw/xwin/winclipboardthread.c
+++ b/xorg-server/hw/xwin/winclipboardthread.c
@@ -42,7 +42,11 @@
#include <errno.h>
#endif
#include "misc.h"
+#include "winmsg.h"
+#ifdef _MSC_VER
+#define snprintf _snprintf
+#endif
/*
* References to external symbols
*/
@@ -50,17 +54,16 @@
extern Bool g_fUnicodeClipboard;
extern Bool g_fClipboardStarted;
extern Bool g_fClipboardLaunched;
-extern Bool g_fClipboard;
extern HWND g_hwndClipboard;
extern void *g_pClipboardDisplay;
extern Window g_iClipboardWindow;
+extern Bool g_fClipboardPrimary;
/*
* Global variables
*/
static jmp_buf g_jmpEntry;
-static int clipboardRestarts = 0;
static XIOErrorHandler g_winClipboardOldIOErrorHandler;
static pthread_t g_winClipboardProcThread;
@@ -76,6 +79,8 @@ static int
static int
winClipboardIOErrorHandler(Display * pDisplay);
+static void
+winClipboardThreadExit(void *arg);
/*
* Main thread function
*/
@@ -102,8 +107,9 @@ winClipboardProc(void *pvNotUsed)
char szDisplay[512];
int iSelectError;
- winDebug("winClipboardProc - Hello\n");
- ++clipboardRestarts;
+ pthread_cleanup_push(&winClipboardThreadExit, NULL);
+
+ winDebug ("winClipboardProc - Hello\n");
/* Do we use Unicode clipboard? */
fUseUnicode = g_fUnicodeClipboard;
@@ -111,16 +117,11 @@ winClipboardProc(void *pvNotUsed)
/* Save the Unicode support flag in a global */
g_fUseUnicode = fUseUnicode;
- /* Allow multiple threads to access Xlib */
- if (XInitThreads() == 0) {
- ErrorF("winClipboardProc - XInitThreads failed.\n");
- goto winClipboardProc_Exit;
- }
-
- /* See if X supports the current locale */
- if (XSupportsLocale() == False) {
- ErrorF("winClipboardProc - Warning: Locale not supported by X.\n");
- }
+ /* Create Windows messaging window */
+ hwnd = winClipboardCreateMessagingWindow ();
+
+ /* Save copy of HWND in screen privates */
+ g_hwndClipboard = hwnd;
/* Set error handler */
XSetErrorHandler(winClipboardErrorHandler);
@@ -135,12 +136,11 @@ winClipboardProc(void *pvNotUsed)
if (iReturn != WIN_JMP_ERROR_IO && iReturn != WIN_JMP_OKAY) {
/* setjmp returned an unknown value, exit */
ErrorF("winClipboardProc - setjmp returned: %d exiting\n", iReturn);
- goto winClipboardProc_Exit;
+ goto thread_errorexit;
}
else if (iReturn == WIN_JMP_ERROR_IO) {
/* TODO: Cleanup the Win32 window and free any allocated memory */
ErrorF("winClipboardProc - setjmp returned for IO Error Handler.\n");
- pthread_exit(NULL);
}
/* Use our generated cookie for authentication */
@@ -157,10 +157,10 @@ winClipboardProc(void *pvNotUsed)
* for all screens on the display. That is why there is only
* one clipboard client thread.
*/
- snprintf(szDisplay, 512, "127.0.0.1:%s.0", display);
+ winGetDisplayName(szDisplay,0);
/* Print the display connection string */
- ErrorF("winClipboardProc - DISPLAY=%s\n", szDisplay);
+ winDebug ("winClipboardProc - DISPLAY=%s\n", szDisplay);
/* Open the X display */
do {
@@ -180,24 +180,26 @@ winClipboardProc(void *pvNotUsed)
/* Make sure that the display opened */
if (pDisplay == NULL) {
ErrorF("winClipboardProc - Failed opening the display, giving up\n");
- goto winClipboardProc_Done;
+ goto thread_errorexit;
}
/* Save the display in the screen privates */
g_pClipboardDisplay = pDisplay;
- ErrorF("winClipboardProc - XOpenDisplay () returned and "
+ winDebug ("winClipboardProc - XOpenDisplay () returned and "
"successfully opened the display.\n");
/* Get our connection number */
iConnectionNumber = ConnectionNumber(pDisplay);
+ winDebug("Clipboard is using socket %d\n",iConnectionNumber);
+
#ifdef HAS_DEVWINDOWS
/* Open a file descriptor for the windows message queue */
- fdMessageQueue = open(WIN_MSG_QUEUE_FNAME, O_RDONLY);
+ fdMessageQueue = open (WIN_MSG_QUEUE_FNAME, _O_RDONLY);
if (fdMessageQueue == -1) {
ErrorF("winClipboardProc - Failed opening %s\n", WIN_MSG_QUEUE_FNAME);
- goto winClipboardProc_Done;
+ goto thread_errorexit;
}
/* Find max of our file descriptors */
@@ -208,6 +210,10 @@ winClipboardProc(void *pvNotUsed)
/* Create atom */
atomClipboard = XInternAtom(pDisplay, "CLIPBOARD", False);
+ XInternAtom (pDisplay, WIN_LOCAL_PROPERTY, False);
+ XInternAtom (pDisplay, "UTF8_STRING", False);
+ XInternAtom (pDisplay, "COMPOUND_TEXT", False);
+ XInternAtom (pDisplay, "TARGETS", False);
/* Create a messaging window */
iWindow = XCreateSimpleWindow(pDisplay,
@@ -219,7 +225,7 @@ winClipboardProc(void *pvNotUsed)
BlackPixel(pDisplay, 0));
if (iWindow == 0) {
ErrorF("winClipboardProc - Could not create an X window.\n");
- goto winClipboardProc_Done;
+ goto thread_errorexit;
}
XStoreName(pDisplay, iWindow, "xwinclip");
@@ -232,30 +238,30 @@ winClipboardProc(void *pvNotUsed)
/* Save the window in the screen privates */
g_iClipboardWindow = iWindow;
- /* Create Windows messaging window */
- hwnd = winClipboardCreateMessagingWindow();
-
- /* Save copy of HWND in screen privates */
- g_hwndClipboard = hwnd;
-
/* Assert ownership of selections if Win32 clipboard is owned */
if (NULL != GetClipboardOwner()) {
- /* PRIMARY */
- iReturn = XSetSelectionOwner(pDisplay, XA_PRIMARY,
- iWindow, CurrentTime);
- if (iReturn == BadAtom || iReturn == BadWindow ||
- XGetSelectionOwner(pDisplay, XA_PRIMARY) != iWindow) {
- ErrorF("winClipboardProc - Could not set PRIMARY owner\n");
- goto winClipboardProc_Done;
+ if (g_fClipboardPrimary)
+ {
+ /* PRIMARY */
+ winDebug("winClipboardProc - asserted ownership.\n");
+ iReturn = XSetSelectionOwner (pDisplay, XA_PRIMARY,
+ iWindow, CurrentTime);
+ if (iReturn == BadAtom || iReturn == BadWindow /*||
+ XGetSelectionOwner (pDisplay, XA_PRIMARY) != iWindow*/)
+ {
+ ErrorF ("winClipboardProc - Could not set PRIMARY owner\n");
+ goto thread_errorexit;
+ }
}
/* CLIPBOARD */
iReturn = XSetSelectionOwner(pDisplay, atomClipboard,
iWindow, CurrentTime);
- if (iReturn == BadAtom || iReturn == BadWindow ||
- XGetSelectionOwner(pDisplay, atomClipboard) != iWindow) {
- ErrorF("winClipboardProc - Could not set CLIPBOARD owner\n");
- goto winClipboardProc_Done;
+ if (iReturn == BadAtom || iReturn == BadWindow /*||
+ XGetSelectionOwner (pDisplay, atomClipboard) != iWindow*/)
+ {
+ ErrorF ("winClipboardProc - Could not set CLIPBOARD owner\n");
+ goto thread_errorexit;
}
}
@@ -265,12 +271,17 @@ winClipboardProc(void *pvNotUsed)
* because there may be events in local data structures
* already.
*/
- winClipboardFlushXEvents(hwnd, iWindow, pDisplay, fUseUnicode);
+ //winClipboardFlushXEvents(hwnd, iWindow, pDisplay, fUseUnicode);
/* Pre-flush Windows messages */
+ winDebug ("Start flushing \n");
if (!winClipboardFlushWindowsMessageQueue(hwnd))
- return 0;
+ {
+ ErrorF ("winClipboardFlushWindowsMessageQueue - returned 0\n");
+ goto thread_errorexit;
+ }
+ winDebug ("winClipboardProc - Started\n");
/* Signal that the clipboard client has started */
g_fClipboardStarted = TRUE;
@@ -323,10 +334,12 @@ winClipboardProc(void *pvNotUsed)
}
/* Branch on which descriptor became active */
- if (FD_ISSET(iConnectionNumber, &fdsRead)) {
+// if (FD_ISSET (iConnectionNumber, &fdsRead)) {
+// Also do it when no read since winClipboardFlushXEvents
+// is sending the output.
/* Process X events */
- winClipboardFlushXEvents(hwnd, iWindow, pDisplay, fUseUnicode);
- }
+ winClipboardFlushXEvents(hwnd, iWindow, pDisplay, fUseUnicode, FALSE);
+// }
#ifdef HAS_DEVWINDOWS
/* Check for Windows event ready */
@@ -345,26 +358,15 @@ winClipboardProc(void *pvNotUsed)
}
}
- winClipboardProc_Exit:
- /* disable the clipboard, which means the thread will die */
- g_fClipboard = FALSE;
-
- winClipboardProc_Done:
- /* Close our Windows window */
- if (g_hwndClipboard) {
- /* Destroy the Window window (hwnd) */
- winDebug("winClipboardProc - Destroy Windows window\n");
- PostMessage(g_hwndClipboard, WM_DESTROY, 0, 0);
- winClipboardFlushWindowsMessageQueue(g_hwndClipboard);
- }
-
/* Close our X window */
if (pDisplay && iWindow) {
iReturn = XDestroyWindow(pDisplay, iWindow);
if (iReturn == BadWindow)
ErrorF("winClipboardProc - XDestroyWindow returned BadWindow.\n");
+#ifdef WINDBG
else
- ErrorF("winClipboardProc - XDestroyWindow succeeded.\n");
+ winDebug("winClipboardProc - XDestroyWindow succeeded.\n");
+#endif
}
#ifdef HAS_DEVWINDOWS
@@ -391,41 +393,28 @@ winClipboardProc(void *pvNotUsed)
}
#endif
- /* global clipboard variable reset */
- g_fClipboardLaunched = FALSE;
- g_fClipboardStarted = FALSE;
- g_iClipboardWindow = None;
- g_pClipboardDisplay = NULL;
- g_hwndClipboard = NULL;
-
- /* checking if we need to restart */
- if (clipboardRestarts >= WIN_CLIPBOARD_RETRIES) {
- /* terminates clipboard thread but the main server still lives */
- ErrorF
- ("winClipboardProc - the clipboard thread has restarted %d times and seems to be unstable, disabling clipboard integration\n",
- clipboardRestarts);
- g_fClipboard = FALSE;
- return NULL;
+ goto commonexit;
+
+thread_errorexit:
+ if (g_pClipboardDisplay && g_iClipboardWindow)
+ {
+ iReturn = XDestroyWindow (g_pClipboardDisplay, g_iClipboardWindow);
+ if (iReturn == BadWindow)
+ ErrorF ("winClipboardProc - XDestroyWindow returned BadWindow.\n");
+#ifdef WINDBG
+ else
+ winDebug ("winClipboardProc - XDestroyWindow succeeded.\n");
+#endif
}
+ winDebug ("Clipboard thread died.\n");
- if (g_fClipboard) {
- sleep(WIN_CLIPBOARD_DELAY);
- ErrorF("winClipboardProc - trying to restart clipboard thread \n");
- /* Create the clipboard client thread */
- if (!winInitClipboard()) {
- ErrorF("winClipboardProc - winClipboardInit failed.\n");
- return NULL;
- }
+commonexit:
+ g_iClipboardWindow = None;
+ g_pClipboardDisplay = NULL;
+ g_fClipboardLaunched = FALSE;
+ g_fClipboardStarted = FALSE;
- winDebug("winClipboardProc - winInitClipboard returned.\n");
- /* Flag that clipboard client has been launched */
- g_fClipboardLaunched = TRUE;
- }
- else {
- ErrorF("winClipboardProc - Clipboard disabled - Exit from server \n");
- /* clipboard thread has exited, stop server as well */
- raise(SIGTERM);
- }
+ pthread_cleanup_pop(0);
return NULL;
}
@@ -441,8 +430,17 @@ winClipboardErrorHandler(Display * pDisplay, XErrorEvent * pErr)
XGetErrorText(pDisplay, pErr->error_code, pszErrorMsg, sizeof(pszErrorMsg));
ErrorF("winClipboardErrorHandler - ERROR: \n\t%s\n"
- "\tSerial: %lu, Request Code: %d, Minor Code: %d\n",
- pszErrorMsg, pErr->serial, pErr->request_code, pErr->minor_code);
+ " errorCode %d\n"
+ " serial %lu\n"
+ " resourceID 0x%x\n"
+ " majorCode %d\n"
+ " minorCode %d\n"
+ , pszErrorMsg
+ , pErr->error_code
+ , pErr->serial
+ , pErr->resourceid
+ , pErr->request_code
+ , pErr->minor_code);
return 0;
}
@@ -465,3 +463,15 @@ winClipboardIOErrorHandler(Display * pDisplay)
return 0;
}
+
+/*
+ * winClipboardThreadExit - Thread exit handler
+ */
+
+static void
+winClipboardThreadExit(void *arg)
+{
+ /* clipboard thread has exited, stop server as well */
+ AbortDDX(EXIT_ERR_ABORT);
+ TerminateProcess(GetCurrentProcess(),1);
+}
diff --git a/xorg-server/hw/xwin/winclipboardwndproc.c b/xorg-server/hw/xwin/winclipboardwndproc.c
index 90dc9e0bb..7447183ac 100644
--- a/xorg-server/hw/xwin/winclipboardwndproc.c
+++ b/xorg-server/hw/xwin/winclipboardwndproc.c
@@ -26,7 +26,7 @@
*the sale, use or other dealings in this Software without prior written
*authorization from the copyright holder(s) and author(s).
*
- * Authors: Harold L Hunt II
+ * Authors: Harold L Hunt II
* Colin Harrison
*/
@@ -37,12 +37,16 @@
#include <sys/time.h>
#include "winclipboard.h"
#include "misc.h"
+#include "winmsg.h"
+#include "objbase.h"
+#include "ddraw.h"
+#include "winwindow.h"
/*
* Constants
*/
-#define WIN_POLL_TIMEOUT 1
+#define WIN_POLL_TIMEOUT 1
/*
* References to external symbols
@@ -51,6 +55,9 @@
extern void *g_pClipboardDisplay;
extern Window g_iClipboardWindow;
extern Atom g_atomLastOwnedSelection;
+extern Bool g_fClipboardStarted;
+extern HWND g_hwndClipboard;
+extern Bool g_fClipboardPrimary;
/*
* Process X events up to specified timeout
@@ -65,8 +72,17 @@ winProcessXEventsTimeout(HWND hwnd, int iWindow, Display * pDisplay,
int iReturn;
DWORD dwStopTime = GetTickCount() + iTimeoutSec * 1000;
- winDebug("winProcessXEventsTimeout () - pumping X events for %d seconds\n",
- iTimeoutSec);
+ /* Make sure the output messages are sent before waiting on a response. */
+ iReturn = winClipboardFlushXEvents (hwnd,
+ iWindow,
+ pDisplay,
+ fUseUnicode,
+ TRUE);
+ if (WIN_XEVENTS_NOTIFY == iReturn)
+ {
+ /* Bail out if notify processed */
+ return iReturn;
+ }
/* Get our connection number */
iConnNumber = ConnectionNumber(pDisplay);
@@ -76,9 +92,6 @@ winProcessXEventsTimeout(HWND hwnd, int iWindow, Display * pDisplay,
fd_set fdsRead;
long remainingTime;
- /* We need to ensure that all pending events are processed */
- XSync(pDisplay, FALSE);
-
/* Setup the file descriptor set */
FD_ZERO(&fdsRead);
FD_SET(iConnNumber, &fdsRead);
@@ -101,8 +114,8 @@ winProcessXEventsTimeout(HWND hwnd, int iWindow, Display * pDisplay,
NULL, /* No exception mask */
&tv); /* Timeout */
if (iReturn < 0) {
- ErrorF("winProcessXEventsTimeout - Call to select () failed: %d. "
- "Bailing.\n", iReturn);
+ ErrorF("winProcessXEventsTimeout - Call to select () failed: %d (%x). "
+ "Bailing.\n", iReturn, WSAGetLastError());
break;
}
@@ -111,7 +124,7 @@ winProcessXEventsTimeout(HWND hwnd, int iWindow, Display * pDisplay,
/* Process X events */
/* Exit when we see that server is shutting down */
iReturn = winClipboardFlushXEvents(hwnd,
- iWindow, pDisplay, fUseUnicode);
+ iWindow, pDisplay, fUseUnicode, TRUE);
winDebug
("winProcessXEventsTimeout () - winClipboardFlushXEvents returned %d\n",
@@ -138,7 +151,6 @@ LRESULT CALLBACK
winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static HWND s_hwndNextViewer;
- static Bool s_fCBCInitialized;
/* Branch on message type */
switch (message) {
@@ -150,7 +162,7 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
ChangeClipboardChain(hwnd, s_hwndNextViewer);
s_hwndNextViewer = NULL;
-
+ g_hwndClipboard = NULL;
PostQuitMessage(0);
}
return 0;
@@ -162,16 +174,16 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
winDebug("winClipboardWindowProc - WM_CREATE\n");
- first = GetClipboardViewer(); /* Get handle to first viewer in chain. */
- if (first == hwnd)
- return 0; /* Make sure it's not us! */
/* Add ourselves to the clipboard viewer chain */
- next = SetClipboardViewer(hwnd);
- error_code = GetLastError();
- if (SUCCEEDED(error_code) && (next == first)) /* SetClipboardViewer must have succeeded, and the handle */
- s_hwndNextViewer = next; /* it returned must have been the first window in the chain */
- else
- s_fCBCInitialized = FALSE;
+ s_hwndNextViewer = SetClipboardViewer (hwnd);
+ #ifdef _DEBUG
+ if (s_hwndNextViewer== hwnd)
+ {
+ ErrorF("WM_CREATE: SetClipboardViewer returned own window. This causes an endless loop, so reset s_hwndNextViewer. ");
+ s_hwndNextViewer=NULL;
+ }
+ #endif
+
}
return 0;
@@ -184,9 +196,8 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if ((HWND) wParam == s_hwndNextViewer) {
s_hwndNextViewer = (HWND) lParam;
if (s_hwndNextViewer == hwnd) {
- s_hwndNextViewer = NULL;
- winErrorFVerb(1, "winClipboardWindowProc - WM_CHANGECBCHAIN: "
- "attempted to set next window to ourselves.");
+ winDebug("WM_CHANGECBCHAIN: trying to set s_hwndNextViewer to own window. Resetting it back to NULL. ");
+ s_hwndNextViewer=NULL; /* This would cause an endless loop, so break it by ending the loop here. I have seen this happening, why??? */
}
}
else if (s_hwndNextViewer)
@@ -213,30 +224,28 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
HWND first, next;
DWORD error_code = 0;
-
+ if (!g_hwndClipboard)
+ return 0;
winDebug("winClipboardWindowProc - WM_WM_REINIT: Enter\n");
first = GetClipboardViewer(); /* Get handle to first viewer in chain. */
- if (first == hwnd)
- return 0; /* Make sure it's not us! */
- winDebug(" WM_WM_REINIT: Replacing us(%x) with %x at head "
- "of chain\n", hwnd, s_hwndNextViewer);
- s_fCBCInitialized = FALSE;
- ChangeClipboardChain(hwnd, s_hwndNextViewer);
- s_hwndNextViewer = NULL;
- s_fCBCInitialized = FALSE;
- winDebug(" WM_WM_REINIT: Putting us back at head of chain.\n");
- first = GetClipboardViewer(); /* Get handle to first viewer in chain. */
- if (first == hwnd)
- return 0; /* Make sure it's not us! */
- next = SetClipboardViewer(hwnd);
- error_code = GetLastError();
- if (SUCCEEDED(error_code) && (next == first)) /* SetClipboardViewer must have succeeded, and the handle */
- s_hwndNextViewer = next; /* it returned must have been the first window in the chain */
- else
- s_fCBCInitialized = FALSE;
+ if (first != hwnd)
+ {
+ winDebug (" WM_WM_REINIT: Replacing us(%x) with %x at head "
+ "of chain\n", hwnd, s_hwndNextViewer);
+ if (!wParam) ChangeClipboardChain (hwnd, s_hwndNextViewer); /* When wParam is set, the window was already removed from the chain */
+ winDebug (" WM_WM_REINIT: Putting us back at head of chain.\n");
+ s_hwndNextViewer = SetClipboardViewer (hwnd);
+ #ifdef _DEBUG
+ if (s_hwndNextViewer== hwnd)
+ {
+ ErrorF("WM_WM_REINIT: SetClipboardViewer returned own window. This causes an endless loop, so reset s_hwndNextViewer. ");
+ s_hwndNextViewer=NULL;
+ }
+ #endif
+ }
+ winDebug ("winClipboardWindowProc - WM_WM_REINIT: Exit\n");
}
- winDebug("winClipboardWindowProc - WM_WM_REINIT: Exit\n");
return 0;
case WM_DRAWCLIPBOARD:
@@ -248,7 +257,14 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
Window iWindow = g_iClipboardWindow;
int iReturn;
- winDebug("winClipboardWindowProc - WM_DRAWCLIPBOARD: Enter\n");
+ winDebug ("winClipboardWindowProc - WM_DRAWCLIPBOARD 0x%x 0x%x 0x%x: Enter\n",hwnd,wParam,lParam);
+
+ if (!g_fClipboardStarted) {
+ winDebug ("winClipboardWindowProc - WM_DRAWCLIPBOARD: Exit with no processing\n");
+ if (s_hwndNextViewer)
+ SendMessage (s_hwndNextViewer, message, wParam, lParam);
+ return 0;
+ }
if (generation != serverGeneration) {
generation = serverGeneration;
@@ -264,44 +280,15 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
}
else {
/* Attempt to break the nesting by getting out of the chain, twice?, and then fix and bail */
- s_fCBCInitialized = FALSE;
ChangeClipboardChain(hwnd, s_hwndNextViewer);
- winFixClipboardChain();
- winErrorFVerb(1, "winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ winFixClipboardChain(1);
+ ErrorF ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
"Nested calls detected. Re-initing.\n");
winDebug("winClipboardWindowProc - WM_DRAWCLIPBOARD: Exit\n");
s_fProcessingDrawClipboard = FALSE;
return 0;
}
- /* Bail on first message */
- if (!s_fCBCInitialized) {
- s_fCBCInitialized = TRUE;
- s_fProcessingDrawClipboard = FALSE;
- winDebug("winClipboardWindowProc - WM_DRAWCLIPBOARD: Exit\n");
- return 0;
- }
-
- /*
- * NOTE: We cannot bail out when NULL == GetClipboardOwner ()
- * because some applications deal with the clipboard in a manner
- * that causes the clipboard owner to be NULL when they are in
- * fact taking ownership. One example of this is the Win32
- * native compile of emacs.
- */
-
- /* Bail when we still own the clipboard */
- if (hwnd == GetClipboardOwner()) {
-
- winDebug("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
- "We own the clipboard, returning.\n");
- winDebug("winClipboardWindowProc - WM_DRAWCLIPBOARD: Exit\n");
- s_fProcessingDrawClipboard = FALSE;
- if (s_hwndNextViewer)
- SendMessage(s_hwndNextViewer, message, wParam, lParam);
- return 0;
- }
-
/*
* Do not take ownership of the X11 selections when something
* other than CF_TEXT or CF_UNICODETEXT has been copied
@@ -320,20 +307,20 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
*/
XSync(pDisplay, FALSE);
- winDebug("winClipboardWindowProc - XSync done.\n");
-
- /* Release PRIMARY selection if owned */
- iReturn = XGetSelectionOwner(pDisplay, XA_PRIMARY);
- if (iReturn == g_iClipboardWindow) {
- winDebug("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
- "PRIMARY selection is owned by us.\n");
- XSetSelectionOwner(pDisplay, XA_PRIMARY, None, CurrentTime);
+ if (g_fClipboardPrimary)
+ {
+ /* Release PRIMARY selection if owned */
+ iReturn = XGetSelectionOwner (pDisplay, XA_PRIMARY);
+ if (iReturn == g_iClipboardWindow) {
+ winDebug ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ "PRIMARY selection is owned by us.\n");
+ XSetSelectionOwner (pDisplay, XA_PRIMARY, None, CurrentTime);
+ }
+ else if (BadWindow == iReturn || BadAtom == iReturn)
+ ErrorF ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ "XGetSelection failed for PRIMARY: %d\n",
+ iReturn);
}
- else if (BadWindow == iReturn || BadAtom == iReturn)
- winErrorFVerb(1, "winClipboardWindowProc - WM_DRAWCLIPBOARD - "
- "XGetSelection failed for PRIMARY: %d\n",
- iReturn);
-
/* Release CLIPBOARD selection if owned */
iReturn = XGetSelectionOwner(pDisplay, atomClipboard);
if (iReturn == g_iClipboardWindow) {
@@ -342,7 +329,7 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
XSetSelectionOwner(pDisplay, atomClipboard, None, CurrentTime);
}
else if (BadWindow == iReturn || BadAtom == iReturn)
- winErrorFVerb(1, "winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ ErrorF ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
"XGetSelection failed for CLIPBOARD: %d\n",
iReturn);
@@ -352,45 +339,48 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
SendMessage(s_hwndNextViewer, message, wParam, lParam);
return 0;
}
-
- /* Reassert ownership of PRIMARY */
- iReturn = XSetSelectionOwner(pDisplay,
- XA_PRIMARY, iWindow, CurrentTime);
- if (iReturn == BadAtom || iReturn == BadWindow ||
- XGetSelectionOwner(pDisplay, XA_PRIMARY) != iWindow) {
- winErrorFVerb(1, "winClipboardWindowProc - WM_DRAWCLIPBOARD - "
- "Could not reassert ownership of PRIMARY\n");
- }
- else {
- winDebug("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
- "Reasserted ownership of PRIMARY\n");
- }
-
- /* Reassert ownership of the CLIPBOARD */
- iReturn = XSetSelectionOwner(pDisplay,
- atomClipboard, iWindow, CurrentTime);
-
- if (iReturn == BadAtom || iReturn == BadWindow ||
- XGetSelectionOwner(pDisplay, atomClipboard) != iWindow) {
- winErrorFVerb(1, "winClipboardWindowProc - WM_DRAWCLIPBOARD - "
- "Could not reassert ownership of CLIPBOARD\n");
- }
- else {
- winDebug("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
- "Reasserted ownership of CLIPBOARD\n");
+ /* Only reassert ownership when we did not change the clipboard ourselves */
+ if (hwnd!=(HWND)wParam) {
+ if (g_fClipboardPrimary) {
+ /* Reassert ownership of PRIMARY */
+ iReturn = XSetSelectionOwner (pDisplay,
+ XA_PRIMARY, iWindow, CurrentTime);
+ if (iReturn == BadAtom || iReturn == BadWindow ||
+ XGetSelectionOwner (pDisplay, XA_PRIMARY) != iWindow) {
+ ErrorF ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ "Could not reassert ownership of PRIMARY\n");
+ }
+ else {
+ winDebug ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ "Reasserted ownership of PRIMARY\n");
+ }
+ }
+ /* Reassert ownership of the CLIPBOARD */
+ iReturn = XSetSelectionOwner (pDisplay,
+ atomClipboard, iWindow, CurrentTime);
+
+ if (iReturn == BadAtom || iReturn == BadWindow ||
+ XGetSelectionOwner (pDisplay, atomClipboard) != iWindow) {
+ ErrorF ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ "Could not reassert ownership of CLIPBOARD\n");
+ }
+ else {
+ winDebug ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ "Reasserted ownership of CLIPBOARD\n");
+ }
+
+ /* Flush the pending SetSelectionOwner event now */
+ XFlush (pDisplay);
}
- /* Flush the pending SetSelectionOwner event now */
- XFlush(pDisplay);
-
s_fProcessingDrawClipboard = FALSE;
- }
winDebug("winClipboardWindowProc - WM_DRAWCLIPBOARD: Exit\n");
/* Pass the message on the next window in the clipboard viewer chain */
if (s_hwndNextViewer)
SendMessage(s_hwndNextViewer, message, wParam, lParam);
return 0;
+ }
case WM_DESTROYCLIPBOARD:
/*
* NOTE: Intentionally do nothing.
@@ -427,10 +417,10 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
XInternAtom(pDisplay,
"COMPOUND_TEXT", False),
XInternAtom(pDisplay,
- "CYGX_CUT_BUFFER", False),
+ WIN_LOCAL_PROPERTY, False),
iWindow, CurrentTime);
if (iReturn == BadAtom || iReturn == BadWindow) {
- winErrorFVerb(1, "winClipboardWindowProc - WM_RENDER*FORMAT - "
+ ErrorF ("winClipboardWindowProc - WM_RENDER*FORMAT - "
"XConvertSelection () failed\n");
break;
}
@@ -438,23 +428,18 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* Special handling for WM_RENDERALLFORMATS */
if (message == WM_RENDERALLFORMATS) {
/* We must open and empty the clipboard */
-
- /* Close clipboard if we have it open already */
- if (GetOpenClipboardWindow() == hwnd) {
- CloseClipboard();
- }
-
if (!OpenClipboard(hwnd)) {
- winErrorFVerb(1, "winClipboardWindowProc - WM_RENDER*FORMATS - "
+ ErrorF ("winClipboardWindowProc - WM_RENDER*FORMATS - "
"OpenClipboard () failed: %08x\n",
GetLastError());
break;
}
if (!EmptyClipboard()) {
- winErrorFVerb(1, "winClipboardWindowProc - WM_RENDER*FORMATS - "
+ ErrorF ("winClipboardWindowProc - WM_RENDER*FORMATS - "
"EmptyClipboard () failed: %08x\n",
GetLastError());
+ CloseClipboard ();
break;
}
}
@@ -473,6 +458,7 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
* satisfy the requirement that we write something to it.
*/
if (WIN_XEVENTS_NOTIFY != iReturn) {
+ ErrorF("winClipboardWindowProc - winProcessXEventsTimeout should have returned WIN_XEVENTS_NOTIFY was %d\n",iReturn);
/* Paste no data, to satisfy required call to SetClipboardData */
SetClipboardData(CF_UNICODETEXT, NULL);
SetClipboardData(CF_TEXT, NULL);
@@ -486,7 +472,7 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* We must close the clipboard */
if (!CloseClipboard()) {
- winErrorFVerb(1,
+ ErrorF (
"winClipboardWindowProc - WM_RENDERALLFORMATS - "
"CloseClipboard () failed: %08x\n",
GetLastError());
diff --git a/xorg-server/hw/xwin/winclipboardwrappers.c b/xorg-server/hw/xwin/winclipboardwrappers.c
index bfd6bff8b..2671fc000 100644
--- a/xorg-server/hw/xwin/winclipboardwrappers.c
+++ b/xorg-server/hw/xwin/winclipboardwrappers.c
@@ -62,6 +62,7 @@ extern Bool g_fClipboard;
extern Window g_iClipboardWindow;
extern Atom g_atomLastOwnedSelection;
extern HWND g_hwndClipboard;
+extern Bool g_fClipboardPrimary;
/*
@@ -77,12 +78,14 @@ winProcEstablishConnection(ClientPtr client)
static int s_iCallCount = 0;
static unsigned long s_ulServerGeneration = 0;
+ #ifdef WINDBG
if (s_iCallCount == 0)
winDebug("winProcEstablishConnection - Hello\n");
+ #endif
/* Do nothing if clipboard is not enabled */
if (!g_fClipboard) {
- ErrorF("winProcEstablishConnection - Clipboard is not enabled, "
+ winDebug ("winProcEstablishConnection - Clipboard is not enabled, "
"returning.\n");
/* Unwrap the original function, call it, and return */
@@ -129,7 +132,7 @@ winProcEstablishConnection(ClientPtr client)
/* If the clipboard client has already been started, abort */
if (g_fClipboardLaunched) {
- ErrorF("winProcEstablishConnection - Clipboard client already "
+ winDebug ("winProcEstablishConnection - Clipboard client already "
"launched, returning.\n");
return iReturn;
}
@@ -160,7 +163,7 @@ winProcEstablishConnection(ClientPtr client)
return iReturn;
}
- ErrorF("winProcEstablishConnection - winInitClipboard returned.\n");
+ winDebug ("winProcEstablishConnection - winInitClipboard returned.\n");
}
/* Flag that clipboard client has been launched */
@@ -173,14 +176,12 @@ winProcEstablishConnection(ClientPtr client)
* Wrapper for internal SetSelectionOwner function.
* Grabs ownership of Windows clipboard when X11 clipboard owner changes.
*/
-
int
winProcSetSelectionOwner(ClientPtr client)
{
int i;
DrawablePtr pDrawable;
WindowPtr pWindow = None;
- Bool fOwnedToNotOwned = FALSE;
static Window s_iOwners[CLIP_NUM_SELECTIONS] = { None };
static unsigned long s_ulServerGeneration = 0;
@@ -194,7 +195,7 @@ winProcSetSelectionOwner(ClientPtr client)
if (s_ulServerGeneration != serverGeneration) {
/* Save new generation number */
s_ulServerGeneration = serverGeneration;
-
+
/* Initialize static variables */
for (i = 0; i < CLIP_NUM_SELECTIONS; ++i)
s_iOwners[i] = None;
@@ -202,8 +203,8 @@ winProcSetSelectionOwner(ClientPtr client)
/* Abort if clipboard not completely initialized yet */
if (!g_fClipboardStarted) {
- /* ErrorF ("winProcSetSelectionOwner - Clipboard not yet started, "
- "aborting.\n"); */
+ winDebug ("winProcSetSelectionOwner - Clipboard not yet started, "
+ "aborting.\n");
goto winProcSetSelectionOwner_Done;
}
@@ -221,11 +222,9 @@ winProcSetSelectionOwner(ClientPtr client)
/* Now we either have a valid window or None */
/* Save selection owners for monitored selections, ignore other selections */
- if (XA_PRIMARY == stuff->selection) {
+ if (XA_PRIMARY == stuff->selection && g_fClipboardPrimary) {
/* Look for owned -> not owned transition */
if (None == stuff->window && None != s_iOwners[CLIP_OWN_PRIMARY]) {
- fOwnedToNotOwned = TRUE;
-
winDebug("winProcSetSelectionOwner - PRIMARY - Going from "
"owned to not owned.\n");
@@ -239,19 +238,17 @@ winProcSetSelectionOwner(ClientPtr client)
/* Save new selection owner or None */
s_iOwners[CLIP_OWN_PRIMARY] = stuff->window;
- winDebug("winProcSetSelectionOwner - PRIMARY - Now owned by: %d\n",
- stuff->window);
+ winDebug ("winProcSetSelectionOwner - PRIMARY - Now owned by: 0x%x (clipboard is 0x%x)\n",
+ stuff->window,g_iClipboardWindow);
}
else if (MakeAtom("CLIPBOARD", 9, TRUE) == stuff->selection) {
/* Look for owned -> not owned transition */
if (None == stuff->window && None != s_iOwners[CLIP_OWN_CLIPBOARD]) {
- fOwnedToNotOwned = TRUE;
-
winDebug("winProcSetSelectionOwner - CLIPBOARD - Going from "
"owned to not owned.\n");
/* Adjust last owned selection */
- if (None != s_iOwners[CLIP_OWN_PRIMARY])
+ if ((None != s_iOwners[CLIP_OWN_PRIMARY]) && g_fClipboardPrimary)
g_atomLastOwnedSelection = XA_PRIMARY;
else
g_atomLastOwnedSelection = None;
@@ -260,9 +257,8 @@ winProcSetSelectionOwner(ClientPtr client)
/* Save new selection owner or None */
s_iOwners[CLIP_OWN_CLIPBOARD] = stuff->window;
- winDebug("winProcSetSelectionOwner - CLIPBOARD - Now owned by: %d\n",
- stuff->window);
-
+ winDebug ("winProcSetSelectionOwner - CLIPBOARD - Now owned by: 0x%x, clipboard is 0x%x\n",
+ stuff->window,g_iClipboardWindow);
}
else
goto winProcSetSelectionOwner_Done;
@@ -277,40 +273,15 @@ winProcSetSelectionOwner(ClientPtr client)
if (g_iClipboardWindow == s_iOwners[CLIP_OWN_CLIPBOARD])
s_iOwners[CLIP_OWN_CLIPBOARD] = None;
- /*
- * Handle case when selection is being disowned,
- * WM_DRAWCLIPBOARD did not do the disowning,
- * both monitored selections are no longer owned,
- * an owned to not owned transition was detected,
- * and we currently own the Win32 clipboard.
- */
- if (stuff->window == None
- && s_iOwners[CLIP_OWN_PRIMARY] == None
- && s_iOwners[CLIP_OWN_CLIPBOARD] == None
- && fOwnedToNotOwned
- && g_hwndClipboard != NULL && g_hwndClipboard == GetClipboardOwner()) {
- winDebug("winProcSetSelectionOwner - We currently own the "
- "clipboard and neither the PRIMARY nor the CLIPBOARD "
- "selections are owned, releasing ownership of Win32 "
- "clipboard.\n");
-
- /* Release ownership of the Windows clipboard */
- OpenClipboard(NULL);
- EmptyClipboard();
- CloseClipboard();
-
- goto winProcSetSelectionOwner_Done;
- }
-
/* Abort if no window at this point */
if (None == stuff->window) {
- winDebug("winProcSetSelectionOwner - No window, returning.\n");
+ winDebug ("winProcSetSelectionOwner - No window, returning.\n");
goto winProcSetSelectionOwner_Done;
}
/* Abort if invalid selection */
if (!ValidAtom(stuff->selection)) {
- ErrorF("winProcSetSelectionOwner - Found BadAtom, aborting.\n");
+ winDebug ("winProcSetSelectionOwner - Found BadAtom, aborting.\n");
goto winProcSetSelectionOwner_Done;
}
@@ -319,27 +290,22 @@ winProcSetSelectionOwner(ClientPtr client)
/* Abort if clipboard manager is owning the selection */
if (pDrawable->id == g_iClipboardWindow) {
- winDebug("winProcSetSelectionOwner - We changed ownership, "
+ winDebug ("winProcSetSelectionOwner - We changed ownership, "
"aborting.\n");
goto winProcSetSelectionOwner_Done;
}
/* Abort if root window is taking ownership */
if (pDrawable->id == 0) {
- ErrorF("winProcSetSelectionOwner - Root window taking ownership, "
+ winDebug ("winProcSetSelectionOwner - Root window taking ownership, "
"aborting\n");
goto winProcSetSelectionOwner_Done;
}
- /* Close clipboard if we have it open already */
- if (GetOpenClipboardWindow() == g_hwndClipboard) {
- CloseClipboard();
- }
-
/* Access the Windows clipboard */
if (!OpenClipboard(g_hwndClipboard)) {
- ErrorF("winProcSetSelectionOwner - OpenClipboard () failed: %08x\n",
- (int) GetLastError());
+ ErrorF ("winProcSetSelectionOwner - OpenClipboard () failed: %08x, hwnd: %08x\n",
+ (int) GetLastError (),g_hwndClipboard);
goto winProcSetSelectionOwner_Done;
}
@@ -347,9 +313,11 @@ winProcSetSelectionOwner(ClientPtr client)
if (!EmptyClipboard()) {
ErrorF("winProcSetSelectionOwner - EmptyClipboard () failed: %08x\n",
(int) GetLastError());
+ CloseClipboard ();
goto winProcSetSelectionOwner_Done;
}
+ winDebug("winProcSetSelectionOwner - SetClipboardData NULL\n");
/* Advertise regular text and unicode */
SetClipboardData(CF_UNICODETEXT, NULL);
SetClipboardData(CF_TEXT, NULL);
@@ -364,6 +332,6 @@ winProcSetSelectionOwner(ClientPtr client)
goto winProcSetSelectionOwner_Done;
}
- winProcSetSelectionOwner_Done:
+winProcSetSelectionOwner_Done:
return (*winProcSetSelectionOwnerOrig) (client);
}
diff --git a/xorg-server/hw/xwin/winclipboardxevents.c b/xorg-server/hw/xwin/winclipboardxevents.c
index 226c3f055..4aff0659b 100644
--- a/xorg-server/hw/xwin/winclipboardxevents.c
+++ b/xorg-server/hw/xwin/winclipboardxevents.c
@@ -35,6 +35,10 @@
#endif
#include "winclipboard.h"
#include "misc.h"
+#include "winmsg.h"
+#include <unistd.h>
+
+extern Bool g_fClipboardPrimary;
/*
* Process any pending X events
@@ -42,7 +46,7 @@
int
winClipboardFlushXEvents(HWND hwnd,
- int iWindow, Display * pDisplay, Bool fUseUnicode)
+ int iWindow, Display * pDisplay, Bool fUseUnicode, Bool ClipboardOpened)
{
static Atom atomLocalProperty;
static Atom atomCompoundText;
@@ -85,6 +89,8 @@ winClipboardFlushXEvents(HWND hwnd,
/* Get the next event - will not block because one is ready */
XNextEvent(pDisplay, &event);
+ winDebug ("Received event type %d\n",event.type);
+
/* Branch on the event type */
switch (event.type) {
/*
@@ -92,6 +98,7 @@ winClipboardFlushXEvents(HWND hwnd,
*/
case SelectionRequest:
+#ifdef _DEBUG
{
char *pszAtomName = NULL;
@@ -103,7 +110,10 @@ winClipboardFlushXEvents(HWND hwnd,
winDebug("SelectionRequest - Target atom name %s\n", pszAtomName);
XFree(pszAtomName);
pszAtomName = NULL;
+ winDebug ("SelectionRequest - owner %d\n", event.xselectionrequest.owner);
+ winDebug ("SelectionRequest - requestor %d\n", event.xselectionrequest.requestor);
}
+#endif
/* Abort if invalid target type */
if (event.xselectionrequest.target != XA_STRING
@@ -165,24 +175,24 @@ winClipboardFlushXEvents(HWND hwnd,
break;
}
- /* Close clipboard if we have it open already */
- if (GetOpenClipboardWindow() == hwnd) {
- CloseClipboard();
- }
-
- /* Access the clipboard */
- if (!OpenClipboard(hwnd)) {
- ErrorF("winClipboardFlushXEvents - SelectionRequest - "
- "OpenClipboard () failed: %08lx\n", GetLastError());
+ /* Access the clipboard */
+ if (!ClipboardOpened)
+ {
+ if (!OpenClipboard (hwnd))
+ {
+ ErrorF ("winClipboardFlushXEvents - SelectionRequest - "
+ "OpenClipboard () failed: %08lx\n",
+ GetLastError ());
/* Abort */
fAbort = TRUE;
goto winClipboardFlushXEvents_SelectionRequest_Done;
+ }
+
+ /* Indicate that clipboard was opened */
+ fCloseClipboard = TRUE;
}
- /* Indicate that clipboard was opened */
- fCloseClipboard = TRUE;
-
/* Check that clipboard format is available */
if (fUseUnicode && !IsClipboardFormatAvailable(CF_UNICODETEXT)) {
static int count; /* Hack to stop acroread spamming the log */
@@ -232,7 +242,16 @@ winClipboardFlushXEvents(HWND hwnd,
hGlobal = GetClipboardData(CF_TEXT);
}
if (!hGlobal) {
- ErrorF("winClipboardFlushXEvents - SelectionRequest - "
+ if (GetLastError()==ERROR_CLIPBOARD_NOT_OPEN && ClipboardOpened)
+ {
+ ErrorF("We should not have received a SelectionRequest????\n"
+ "The owner is the clipboard, but in reality it was"
+ "an X window\n");
+ /* Set the owner to None */
+ if (g_fClipboardPrimary) XSetSelectionOwner (pDisplay, XA_PRIMARY, None, CurrentTime);
+ XSetSelectionOwner (pDisplay, XInternAtom (pDisplay, "CLIPBOARD", False), None, CurrentTime);
+ }
+ ErrorF ("winClipboardFlushXEvents - SelectionRequest - "
"GetClipboardData () failed: %08lx\n", GetLastError());
/* Abort */
@@ -320,9 +339,11 @@ winClipboardFlushXEvents(HWND hwnd,
/* Release the clipboard data */
GlobalUnlock(hGlobal);
pszGlobalData = NULL;
- fCloseClipboard = FALSE;
- CloseClipboard();
-
+ if (fCloseClipboard)
+ {
+ fCloseClipboard = FALSE;
+ CloseClipboard ();
+ }
/* Clean up */
XFree(xtpText.value);
xtpText.value = NULL;
@@ -401,9 +422,8 @@ winClipboardFlushXEvents(HWND hwnd,
/*
* SelectionNotify
*/
-
case SelectionNotify:
-
+#ifdef _DEBUG
winDebug("winClipboardFlushXEvents - SelectionNotify\n");
{
char *pszAtomName;
@@ -414,8 +434,11 @@ winClipboardFlushXEvents(HWND hwnd,
winDebug
("winClipboardFlushXEvents - SelectionNotify - ATOM: %s\n",
pszAtomName);
+ winDebug ("SelectionNotify - requestor %d\n", event.xselectionrequest.requestor);
XFree(pszAtomName);
}
+#endif
+
/*
* Request conversion of UTF8 and CompoundText targets.
@@ -498,6 +521,7 @@ winClipboardFlushXEvents(HWND hwnd,
break;
}
+#ifdef WINDBG
{
char *pszAtomName = NULL;
@@ -508,6 +532,7 @@ winClipboardFlushXEvents(HWND hwnd,
XFree(pszAtomName);
pszAtomName = NULL;
}
+#endif
if (fUseUnicode) {
#ifdef X_HAVE_UTF8_STRING
@@ -529,7 +554,7 @@ winClipboardFlushXEvents(HWND hwnd,
for (i = 0; i < iCount; i++) {
iReturnDataLen += strlen(ppszTextList[i]);
}
- pszReturnData = malloc(iReturnDataLen + 1);
+ pszReturnData = (char *) malloc(iReturnDataLen + 1);
pszReturnData[0] = '\0';
for (i = 0; i < iCount; i++) {
strcat(pszReturnData, ppszTextList[i]);
@@ -538,7 +563,7 @@ winClipboardFlushXEvents(HWND hwnd,
else {
ErrorF("winClipboardFlushXEvents - SelectionNotify - "
"X*TextPropertyToTextList list_return is NULL.\n");
- pszReturnData = malloc(1);
+ pszReturnData = (char *) malloc(1);
pszReturnData[0] = '\0';
}
}
@@ -559,7 +584,7 @@ winClipboardFlushXEvents(HWND hwnd,
ErrorF("%d\n", iReturn);
break;
}
- pszReturnData = malloc(1);
+ pszReturnData = (char *) malloc(1);
pszReturnData[0] = '\0';
}
@@ -572,7 +597,7 @@ winClipboardFlushXEvents(HWND hwnd,
xtpText.nitems = 0;
/* Convert the X clipboard string to DOS format */
- winClipboardUNIXtoDOS(&pszReturnData, strlen(pszReturnData));
+ winClipboardUNIXtoDOS((unsigned char **)&pszReturnData, strlen(pszReturnData));
if (fUseUnicode) {
/* Find out how much space needed to convert MBCS to Unicode */
@@ -683,14 +708,32 @@ winClipboardFlushXEvents(HWND hwnd,
}
return WIN_XEVENTS_NOTIFY;
- case SelectionClear:
+ /*
+ * SelectionClear
+ */
+ case SelectionClear:
+#ifdef _DEBUG
winDebug("SelectionClear - doing nothing\n");
+ {
+ char *pszAtomName;
+
+ pszAtomName = XGetAtomName (pDisplay,
+ event.xselection.selection);
+
+ winDebug ("SelectionClear - ATOM: %s\n",
+ pszAtomName);
+ winDebug ("SelectionClear - owner %d\n", event.xselectionrequest.owner);
+
+ XFree (pszAtomName);
+ }
+#endif
break;
case PropertyNotify:
break;
-
+
case MappingNotify:
+ XRefreshKeyboardMapping((XMappingEvent *)&event);
break;
default:
diff --git a/xorg-server/hw/xwin/wincmap.c b/xorg-server/hw/xwin/wincmap.c
index 610437ad4..283372a9f 100644
--- a/xorg-server/hw/xwin/wincmap.c
+++ b/xorg-server/hw/xwin/wincmap.c
@@ -116,16 +116,12 @@ winInstallColormap(ColormapPtr pColormap)
winScreenPriv(pScreen);
ColormapPtr oldpmap = pScreenPriv->pcmapInstalled;
-#if CYGDEBUG
winDebug("winInstallColormap\n");
-#endif
/* Did the colormap actually change? */
if (pColormap != oldpmap) {
-#if CYGDEBUG
winDebug("winInstallColormap - Colormap has changed, attempt "
"to install.\n");
-#endif
/* Was there a previous colormap? */
if (oldpmap != (ColormapPtr) None) {
@@ -139,10 +135,9 @@ winInstallColormap(ColormapPtr pColormap)
/* Call the engine specific colormap install procedure */
if (!((*pScreenPriv->pwinInstallColormap) (pColormap))) {
- winErrorFVerb(2,
- "winInstallColormap - Screen specific colormap install "
- "procedure failed. Continuing, but colors may be "
- "messed up from now on.\n");
+ ErrorF ("winInstallColormap - Screen specific colormap install "
+ "procedure failed. Continuing, but colors may be "
+ "messed up from now on.\n");
}
}
@@ -157,9 +152,7 @@ winUninstallColormap(ColormapPtr pmap)
winScreenPriv(pmap->pScreen);
ColormapPtr curpmap = pScreenPriv->pcmapInstalled;
-#if CYGDEBUG
winDebug("winUninstallColormap\n");
-#endif
/* Is the colormap currently installed? */
if (pmap != curpmap) {
@@ -194,7 +187,7 @@ winStoreColors(ColormapPtr pmap, int ndef, xColorItem * pdefs)
int i;
unsigned short nRed, nGreen, nBlue;
-#if CYGDEBUG
+#ifdef WINDBG
if (ndef != 1)
winDebug("winStoreColors - ndef: %d\n", ndef);
#endif
@@ -216,18 +209,15 @@ winStoreColors(ColormapPtr pmap, int ndef, xColorItem * pdefs)
pCmapPriv->rgbColors[pdefs[0].pixel + i].rgbGreen = nGreen;
pCmapPriv->rgbColors[pdefs[0].pixel + i].rgbBlue = nBlue;
-#if CYGDEBUG
winDebug("winStoreColors - nRed %d nGreen %d nBlue %d\n",
nRed, nGreen, nBlue);
-#endif
}
/* Call the engine specific store colors procedure */
if (!((pScreenPriv->pwinStoreColors) (pmap, ndef, pdefs))) {
- winErrorFVerb(2,
- "winStoreColors - Engine cpecific color storage procedure "
- "failed. Continuing, but colors may be messed up from now "
- "on.\n");
+ ErrorF ("winStoreColors - Engine cpecific color storage procedure "
+ "failed. Continuing, but colors may be messed up from now "
+ "on.\n");
}
}
@@ -237,9 +227,7 @@ winResolveColor(unsigned short *pred,
unsigned short *pgreen,
unsigned short *pblue, VisualPtr pVisual)
{
-#if CYGDEBUG
winDebug("winResolveColor ()\n");
-#endif
miResolveColor(pred, pgreen, pblue, pVisual);
}
@@ -253,9 +241,7 @@ winCreateColormap(ColormapPtr pmap)
winScreenPriv(pScreen);
-#if CYGDEBUG
winDebug("winCreateColormap\n");
-#endif
/* Allocate colormap privates */
if (!winAllocateCmapPrivates(pmap)) {
@@ -301,19 +287,16 @@ winDestroyColormap(ColormapPtr pColormap)
/* Call the engine specific colormap destruction procedure */
if (!((*pScreenPriv->pwinDestroyColormap) (pColormap))) {
- winErrorFVerb(2,
- "winDestroyColormap - Engine specific colormap destruction "
- "procedure failed. Continuing, but it is possible that memory "
- "was leaked, or that colors will be messed up from now on.\n");
+ ErrorF ("winDestroyColormap - Engine specific colormap destruction "
+ "procedure failed. Continuing, but it is possible that memory "
+ "was leaked, or that colors will be messed up from now on.\n");
}
/* Free the colormap privates */
free(pCmapPriv);
winSetCmapPriv(pColormap, NULL);
-#if CYGDEBUG
winDebug("winDestroyColormap - Returning\n");
-#endif
}
/*
@@ -338,10 +321,8 @@ winGetPaletteDIB(ScreenPtr pScreen, ColormapPtr pcmap)
return FALSE;
}
-#if CYGDEBUG
winDebug("winGetPaletteDIB - Retrieved %d colors from DIB\n",
uiColorsRetrieved);
-#endif
/* Set the DIB color table to the default screen palette */
if (SetDIBColorTable(pScreenPriv->hdcShadow,
@@ -359,10 +340,8 @@ winGetPaletteDIB(ScreenPtr pScreen, ColormapPtr pcmap)
nGreen = rgbColors[i].rgbGreen << 8;
nBlue = rgbColors[i].rgbBlue << 8;
-#if CYGDEBUG
winDebug("winGetPaletteDIB - Allocating a color: %d; "
"%d %d %d\n", pixel, nRed, nGreen, nBlue);
-#endif
/* Allocate a entry in the X colormap */
if (AllocColor(pcmap, &nRed, &nGreen, &nBlue, &pixel, 0) != Success) {
@@ -421,10 +400,8 @@ winGetPaletteDD(ScreenPtr pScreen, ColormapPtr pcmap)
return FALSE;
}
-#if CYGDEBUG
winDebug("winGetPaletteDD - uiSystemPaletteEntries %d\n",
uiSystemPaletteEntries);
-#endif
/* Allocate palette entries structure */
ppeColors = malloc(uiSystemPaletteEntries * sizeof(PALETTEENTRY));
@@ -444,10 +421,8 @@ winGetPaletteDD(ScreenPtr pScreen, ColormapPtr pcmap)
nRed = ppeColors[i].peRed << 8;
nGreen = ppeColors[i].peGreen << 8;
nBlue = ppeColors[i].peBlue << 8;
-#if CYGDEBUG
winDebug("winGetPaletteDD - Allocating a color: %d; "
"%d %d %d\n", pixel, nRed, nGreen, nBlue);
-#endif
if (AllocColor(pcmap, &nRed, &nGreen, &nBlue, &pixel, 0) != Success) {
ErrorF("winGetPaletteDD - AllocColor () failed, pixel %d\n", i);
free(ppeColors);
@@ -493,9 +468,7 @@ winCreateDefColormap(ScreenPtr pScreen)
ColormapPtr pcmap = NULL;
Pixel wp, bp;
-#if CYGDEBUG
winDebug("winCreateDefColormap\n");
-#endif
/* Use standard fb colormaps for non palettized color modes */
if (pScreenInfo->dwBPP > 8) {
@@ -514,9 +487,7 @@ winCreateDefColormap(ScreenPtr pScreen)
* to be changed by clients.
*/
-#if CYGDEBUG
winDebug("winCreateDefColormap - defColormap: %d\n", pScreen->defColormap);
-#endif
/* Allocate an X colormap, owned by client 0 */
if (CreateColormap(pScreen->defColormap,
@@ -533,9 +504,7 @@ winCreateDefColormap(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winCreateDefColormap - Created a colormap\n");
-#endif
/* Branch on the visual class */
if (!(pVisual->class & DynamicClass)) {
@@ -570,33 +539,12 @@ winCreateDefColormap(ScreenPtr pScreen)
pScreen->whitePixel = wp;
pScreen->blackPixel = bp;
-#if 0
- /* Have to reserve first 10 and last ten pixels in DirectDraw windowed */
- if (pScreenInfo->dwEngine != WIN_SERVER_SHADOW_GDI) {
- int k;
- Pixel p;
-
- for (k = 1; k < 10; ++k) {
- p = k;
- if (AllocColor(pcmap, &ones, &ones, &ones, &p, 0) != Success)
- FatalError("Foo!\n");
- }
-
- for (k = 245; k < 255; ++k) {
- p = k;
- if (AllocColor(pcmap, &zero, &zero, &zero, &p, 0) != Success)
- FatalError("Baz!\n");
- }
- }
-#endif
}
/* Install the created colormap */
(*pScreen->InstallColormap) (pcmap);
-#if CYGDEBUG
winDebug("winCreateDefColormap - Returning\n");
-#endif
return TRUE;
}
diff --git a/xorg-server/hw/xwin/winconfig.c b/xorg-server/hw/xwin/winconfig.c
index 9e38113a5..11717a506 100644
--- a/xorg-server/hw/xwin/winconfig.c
+++ b/xorg-server/hw/xwin/winconfig.c
@@ -140,10 +140,10 @@ winReadConfigfile()
filename = xf86openConfigFile(CONFIGPATH, "XF86Config", PROJECTROOT);
if (filename) {
- winMsg(from, "Using config file: \"%s\"\n", filename);
+ winDebug ("Using config file: \"%s\"\n", filename);
}
else {
- winMsg(X_ERROR, "Unable to locate/open config file");
+ ErrorF ("Unable to locate/open config file");
if (xf86ConfigFile)
ErrorF(": \"%s\"", xf86ConfigFile);
ErrorF("\n");
@@ -163,7 +163,7 @@ winReadConfigfile()
free(filename);
free(dirname);
if ((g_xf86configptr = xf86readConfigFile()) == NULL) {
- winMsg(X_ERROR, "Problem parsing the config file\n");
+ ErrorF ("Problem parsing the config file\n");
return FALSE;
}
xf86closeConfigFile();
@@ -175,12 +175,11 @@ winReadConfigfile()
if (g_xf86configptr->conf_layout_lst == NULL ||
g_cmdline.screenname != NULL) {
if (g_cmdline.screenname == NULL) {
- winMsg(X_WARNING,
- "No Layout section. Using the first Screen section.\n");
+ winDebug ("No Layout section. Using the first Screen section.\n");
}
if (!configImpliedLayout(&g_winConfigLayout,
g_xf86configptr->conf_screen_lst)) {
- winMsg(X_ERROR, "Unable to determine the screen layout\n");
+ ErrorF ("Unable to determine the screen layout\n");
return FALSE;
}
}
@@ -196,14 +195,14 @@ winReadConfigfile()
if (!configLayout(&g_winConfigLayout,
g_xf86configptr->conf_layout_lst, dfltlayout)) {
- winMsg(X_ERROR, "Unable to determine the screen layout\n");
+ ErrorF ("Unable to determine the screen layout\n");
return FALSE;
}
}
else {
if (!configLayout(&g_winConfigLayout,
g_xf86configptr->conf_layout_lst, NULL)) {
- winMsg(X_ERROR, "Unable to determine the screen layout\n");
+ ErrorF ("Unable to determine the screen layout\n");
return FALSE;
}
}
@@ -263,7 +262,7 @@ winConfigKeyboard(DeviceIntPtr pDevice)
break;
}
g_winInfo.keyboard.rate = (kbd_speed > 0) ? kbd_speed : 1;
- winMsgVerb(X_PROBED, 1, "Setting autorepeat to delay=%d, rate=%d\n",
+ winDebug("Setting autorepeat to delay=%d, rate=%d\n",
g_winInfo.keyboard.delay, g_winInfo.keyboard.rate);
}
}
@@ -286,9 +285,9 @@ winConfigKeyboard(DeviceIntPtr pDevice)
such as the lack of WM_KEYUP for Caps Lock key.
Loading US layout fixes this problem. */
if (LoadKeyboardLayout("00000409", KLF_ACTIVATE) != NULL)
- winMsg(X_INFO, "Loading US keyboard layout.\n");
+ winDebug("Loading US keyboard layout.\n");
else
- winMsg(X_ERROR, "LoadKeyboardLayout failed.\n");
+ ErrorF ("LoadKeyboardLayout failed.\n");
}
}
@@ -314,9 +313,8 @@ winConfigKeyboard(DeviceIntPtr pDevice)
free(regpath);
}
- winMsg(X_PROBED,
- "Windows keyboard layout: \"%s\" (%08x) \"%s\", type %d\n",
- layoutName, layoutNum, layoutFriendlyName, keyboardType);
+ winDebug ("Windows keyboard layout: \"%s\" (%08x) \"%s\", type %d\n",
+ layoutName, layoutNum, layoutFriendlyName, keyboardType);
for (pLayout = winKBLayouts; pLayout->winlayout != -1; pLayout++) {
if (pLayout->winlayout != layoutNum)
@@ -325,11 +323,11 @@ winConfigKeyboard(DeviceIntPtr pDevice)
continue;
bfound = TRUE;
- winMsg(X_PROBED,
+ winDebug (
"Found matching XKB configuration \"%s\"\n",
pLayout->layoutname);
- winMsg(X_PROBED,
+ winDebug(
"Model = \"%s\" Layout = \"%s\""
" Variant = \"%s\" Options = \"%s\"\n",
pLayout->xkbmodel ? pLayout->xkbmodel : "none",
@@ -337,17 +335,16 @@ winConfigKeyboard(DeviceIntPtr pDevice)
pLayout->xkbvariant ? pLayout->xkbvariant : "none",
pLayout->xkboptions ? pLayout->xkboptions : "none");
- g_winInfo.xkb.model = pLayout->xkbmodel;
- g_winInfo.xkb.layout = pLayout->xkblayout;
- g_winInfo.xkb.variant = pLayout->xkbvariant;
- g_winInfo.xkb.options = pLayout->xkboptions;
+ g_winInfo.xkb.model = (char *)pLayout->xkbmodel;
+ g_winInfo.xkb.layout = (char *)pLayout->xkblayout;
+ g_winInfo.xkb.variant = (char *)pLayout->xkbvariant;
+ g_winInfo.xkb.options = (char *)pLayout->xkboptions;
break;
}
if (!bfound) {
- winMsg(X_ERROR,
- "Keyboardlayout \"%s\" (%s) is unknown, using X server default layout\n",
+ ErrorF ("Keyboardlayout \"%s\" (%s) is unknown, using X server default layout\n",
layoutFriendlyName, layoutName);
}
}
@@ -379,8 +376,8 @@ winConfigKeyboard(DeviceIntPtr pDevice)
if (kbd != NULL) {
if (kbd->inp_identifier)
- winMsg(kbdfrom, "Using keyboard \"%s\" as primary keyboard\n",
- kbd->inp_identifier);
+ winDebug ("Using keyboard \"%s\" as primary keyboard\n",
+ kbd->inp_identifier);
if ((s = winSetStrOption(kbd->inp_option_lst, "AutoRepeat", NULL))) {
if ((sscanf(s, "%ld %ld", &g_winInfo.keyboard.delay,
@@ -388,12 +385,12 @@ winConfigKeyboard(DeviceIntPtr pDevice)
(g_winInfo.keyboard.delay < 1) ||
(g_winInfo.keyboard.rate == 0) ||
(1000 / g_winInfo.keyboard.rate) < 1) {
- winErrorFVerb(2, "\"%s\" is not a valid AutoRepeat value", s);
+ ErrorF ("\"%s\" is not a valid AutoRepeat value", s);
free(s);
return FALSE;
}
free(s);
- winMsg(X_CONFIG, "AutoRepeat: %ld %ld\n",
+ winDebug ("AutoRepeat: %ld %ld\n",
g_winInfo.keyboard.delay, g_winInfo.keyboard.rate);
}
#endif
@@ -411,7 +408,7 @@ winConfigKeyboard(DeviceIntPtr pDevice)
#endif
if (s) {
g_winInfo.xkb.rules = NULL_IF_EMPTY(s);
- winMsg(from, "XKB: rules: \"%s\"\n", s);
+ winDebug ("XKB: rules: \"%s\"\n", s);
}
s = NULL;
@@ -427,7 +424,7 @@ winConfigKeyboard(DeviceIntPtr pDevice)
#endif
if (s) {
g_winInfo.xkb.model = NULL_IF_EMPTY(s);
- winMsg(from, "XKB: model: \"%s\"\n", s);
+ winDebug ("XKB: model: \"%s\"\n", s);
}
s = NULL;
@@ -443,7 +440,7 @@ winConfigKeyboard(DeviceIntPtr pDevice)
#endif
if (s) {
g_winInfo.xkb.layout = NULL_IF_EMPTY(s);
- winMsg(from, "XKB: layout: \"%s\"\n", s);
+ winDebug ("XKB: layout: \"%s\"\n", s);
}
s = NULL;
@@ -459,7 +456,7 @@ winConfigKeyboard(DeviceIntPtr pDevice)
#endif
if (s) {
g_winInfo.xkb.variant = NULL_IF_EMPTY(s);
- winMsg(from, "XKB: variant: \"%s\"\n", s);
+ winDebug ("XKB: variant: \"%s\"\n", s);
}
s = NULL;
@@ -472,10 +469,16 @@ winConfigKeyboard(DeviceIntPtr pDevice)
s = winSetStrOption(kbd->inp_option_lst, "XkbOptions", NULL);
from = X_CONFIG;
}
+#else
+ else
+ {
+ if (!g_winInfo.xkb.options)
+ s="grab:break_actions"; /* Currently attach default CTRL+ALT+NKP/ and CTRL+ALT+NKP* mappings to release grab functions */
+ }
#endif
if (s) {
g_winInfo.xkb.options = NULL_IF_EMPTY(s);
- winMsg(from, "XKB: options: \"%s\"\n", s);
+ winDebug ("XKB: options: \"%s\"\n", s);
}
#ifdef XWIN_XF86CONFIG
@@ -513,8 +516,8 @@ winConfigMouse(DeviceIntPtr pDevice)
if (mouse != NULL) {
if (mouse->inp_identifier)
- winMsg(mousefrom, "Using pointer \"%s\" as primary pointer\n",
- mouse->inp_identifier);
+ winDebug ("Using pointer \"%s\" as primary pointer\n",
+ mouse->inp_identifier);
g_winInfo.pointer.emulate3Buttons =
winSetBoolOption(mouse->inp_option_lst, "Emulate3Buttons", FALSE);
@@ -527,8 +530,8 @@ winConfigMouse(DeviceIntPtr pDevice)
g_winInfo.pointer.emulate3Timeout = g_cmdline.emulate3timeout;
}
else {
- winMsg(X_ERROR, "No primary pointer configured\n");
- winMsg(X_DEFAULT, "Using compiletime defaults for pointer\n");
+ winDebug ("No primary pointer configured\n");
+ winDebug ("Using compiletime defaults for pointer\n");
}
return TRUE;
@@ -556,7 +559,7 @@ winConfigFiles()
from = X_CONFIG;
defaultFontPath = strdup(filesptr->file_fontpath);
}
- winMsg(from, "FontPath set to \"%s\"\n", defaultFontPath);
+ winDebug ("FontPath set to \"%s\"\n", defaultFontPath);
return TRUE;
}
@@ -567,7 +570,7 @@ winConfigFiles(void)
/* Fontpath */
if (g_cmdline.fontPath) {
defaultFontPath = g_cmdline.fontPath;
- winMsg(X_CMDLINE, "FontPath set to \"%s\"\n", defaultFontPath);
+ winDebug("FontPath set to \"%s\"\n", defaultFontPath);
}
return TRUE;
@@ -742,8 +745,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
switch (p->type) {
case OPTV_INTEGER:
if (*s == '\0') {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires an integer value\n", p->name);
+ winDebug ( "Option \"%s\" requires an integer value\n",
p->found = FALSE;
}
else {
@@ -752,8 +754,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
p->found = TRUE;
}
else {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires an integer value\n",
+ winDebug ( "Option \"%s\" requires an integer value\n",
p->name);
p->found = FALSE;
}
@@ -761,8 +762,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
break;
case OPTV_STRING:
if (*s == '\0') {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires a string value\n", p->name);
+ winDebug ( "Option \"%s\" requires a string value\n", p->name);
p->found = FALSE;
}
else {
@@ -776,8 +776,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
break;
case OPTV_REAL:
if (*s == '\0') {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires a floating point value\n",
+ winDebug ( "Option \"%s\" requires a floating point value\n",
p->name);
p->found = FALSE;
}
@@ -787,8 +786,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
p->found = TRUE;
}
else {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires a floating point value\n",
+ winDebug ( "Option \"%s\" requires a floating point value\n",
p->name);
p->found = FALSE;
}
@@ -799,8 +797,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
p->found = TRUE;
}
else {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires a boolean value\n", p->name);
+ winDebug ( "Option \"%s\" requires a boolean value\n", p->name);
p->found = FALSE;
}
break;
@@ -826,8 +823,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
}
case OPTV_FREQ:
if (*s == '\0') {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires a frequency value\n",
+ winDebug ( "Option \"%s\" requires a frequency value\n",
p->name);
p->found = FALSE;
}
@@ -846,8 +842,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
!winNameCompare(end, "M"))
units = 1000000;
else {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires a frequency value\n",
+ winDebug ( "Option \"%s\" requires a frequency value\n",
p->name);
p->found = FALSE;
}
@@ -855,8 +850,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
freq *= (double) units;
}
else {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires a frequency value\n",
+ winDebug ( "Option \"%s\" requires a frequency value\n",
p->name);
p->found = FALSE;
}
@@ -872,11 +866,11 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
break;
}
if (p->found) {
- winDrvMsgVerb(scrnIndex, X_CONFIG, 2, "Option \"%s\"", p->name);
+ winDebug ("Option \"%s\"", p->name);
if (!(p->type == OPTV_BOOLEAN && *s == 0)) {
- winErrorFVerb(2, " \"%s\"", s);
+ winDebug (" \"%s\"", s);
}
- winErrorFVerb(2, "\n");
+ winDebug ("\n");
}
}
else if (p->type == OPTV_BOOLEAN) {
@@ -909,8 +903,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
p->found = TRUE;
}
else {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires a boolean value\n", newn);
+ winDebug ( "Option \"%s\" requires a boolean value\n", newn);
p->found = FALSE;
}
}
@@ -918,11 +911,11 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
p->found = FALSE;
}
if (p->found) {
- winDrvMsgVerb(scrnIndex, X_CONFIG, 2, "Option \"%s\"", newn);
+ winDebug ("Option \"%s\"", newn);
if (*s != 0) {
- winErrorFVerb(2, " \"%s\"", s);
+ winDebug (" \"%s\"", s);
}
- winErrorFVerb(2, "\n");
+ winDebug ("\n");
}
free(n);
}
diff --git a/xorg-server/hw/xwin/wincreatewnd.c b/xorg-server/hw/xwin/wincreatewnd.c
index 6732dcb58..597f6bc4e 100644
--- a/xorg-server/hw/xwin/wincreatewnd.c
+++ b/xorg-server/hw/xwin/wincreatewnd.c
@@ -60,10 +60,10 @@ winCreateBoundingWindowFullScreen(ScreenPtr pScreen)
HWND *phwnd = &pScreenPriv->hwndScreen;
WNDCLASSEX wc;
char szTitle[256];
+ char HostName[256];
+ gethostname(HostName,256);
-#if CYGDEBUG
winDebug("winCreateBoundingWindowFullScreen\n");
-#endif
/* Setup our window class */
wc.cbSize = sizeof(WNDCLASSEX);
@@ -91,12 +91,13 @@ winCreateBoundingWindowFullScreen(ScreenPtr pScreen)
snprintf(szTitle,
sizeof(szTitle),
WINDOW_TITLE_XDMCP,
- g_pszQueryHost, display, (int) pScreenInfo->dwScreen);
+ g_pszQueryHost, HostName, display, (int) pScreenInfo->dwScreen);
else
+ {
snprintf(szTitle,
sizeof(szTitle),
- WINDOW_TITLE, display, (int) pScreenInfo->dwScreen);
-
+ WINDOW_TITLE, HostName, display, (int) pScreenInfo->dwScreen);
+ }
/* Create the window */
*phwnd = CreateWindowExA(0, /* Extended styles */
WINDOW_CLASS, /* Class name */
@@ -153,6 +154,9 @@ winCreateBoundingWindowWindowed(ScreenPtr pScreen)
DWORD dwWindowStyle;
BOOL fForceShowWindow = FALSE;
char szTitle[256];
+ char HostName[256];
+
+ gethostname(HostName,256);
winDebug("winCreateBoundingWindowWindowed - User w: %d h: %d\n",
(int) pScreenInfo->dwUserWidth, (int) pScreenInfo->dwUserHeight);
@@ -244,10 +248,8 @@ winCreateBoundingWindowWindowed(ScreenPtr pScreen)
/* Did the user specify a height and width? */
if (pScreenInfo->fUserGaveHeightAndWidth) {
/* User gave a desired height and width, try to accomodate */
-#if CYGDEBUG
winDebug("winCreateBoundingWindowWindowed - User gave height "
"and width\n");
-#endif
/* Adjust the window width and height for borders and title bar */
if (pScreenInfo->fDecoration
@@ -259,27 +261,21 @@ winCreateBoundingWindowWindowed(ScreenPtr pScreen)
&& !pScreenInfo->fMultiWindow
#endif
) {
-#if CYGDEBUG
winDebug
("winCreateBoundingWindowWindowed - Window has decoration\n");
-#endif
/* Are we resizable */
if (pScreenInfo->iResizeMode != notAllowed) {
-#if CYGDEBUG
winDebug
("winCreateBoundingWindowWindowed - Window is resizable\n");
-#endif
iWidth += 2 * GetSystemMetrics(SM_CXSIZEFRAME);
iHeight += 2 * GetSystemMetrics(SM_CYSIZEFRAME)
+ GetSystemMetrics(SM_CYCAPTION);
}
else {
-#if CYGDEBUG
winDebug
("winCreateBoundingWindowWindowed - Window is not resizable\n");
-#endif
iWidth += 2 * GetSystemMetrics(SM_CXFIXEDFRAME);
iHeight += 2 * GetSystemMetrics(SM_CYFIXEDFRAME)
@@ -289,10 +285,8 @@ winCreateBoundingWindowWindowed(ScreenPtr pScreen)
}
else {
/* By default, we are creating a window that is as large as possible */
-#if CYGDEBUG
winDebug("winCreateBoundingWindowWindowed - User did not give "
"height and width\n");
-#endif
/* Defaults are wrong if we have multiple monitors */
if (pScreenInfo->fMultipleMonitors) {
iWidth = GetSystemMetrics(SM_CXVIRTUALSCREEN);
@@ -317,10 +311,8 @@ winCreateBoundingWindowWindowed(ScreenPtr pScreen)
if (iHeight >= (rcWorkArea.bottom - rcWorkArea.top))
iHeight = rcWorkArea.bottom - rcWorkArea.top;
-#if CYGDEBUG
winDebug("winCreateBoundingWindowWindowed - Adjusted width: %d "
"height: %d\n", iWidth, iHeight);
-#endif
}
/* Set display and screen-specific tooltip text */
@@ -328,11 +320,13 @@ winCreateBoundingWindowWindowed(ScreenPtr pScreen)
snprintf(szTitle,
sizeof(szTitle),
WINDOW_TITLE_XDMCP,
- g_pszQueryHost, display, (int) pScreenInfo->dwScreen);
+ g_pszQueryHost, HostName, display, (int) pScreenInfo->dwScreen);
else
+ {
snprintf(szTitle,
sizeof(szTitle),
- WINDOW_TITLE, display, (int) pScreenInfo->dwScreen);
+ WINDOW_TITLE, HostName, display, (int) pScreenInfo->dwScreen);
+ }
/* Create the window */
*phwnd = CreateWindowExA(0, /* Extended styles */
@@ -351,9 +345,7 @@ winCreateBoundingWindowWindowed(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winCreateBoundingWindowWindowed - CreateWindowEx () returned\n");
-#endif
if (fForceShowWindow) {
ErrorF
diff --git a/xorg-server/hw/xwin/wincursor.c b/xorg-server/hw/xwin/wincursor.c
index a35336a34..d55ff5bde 100644
--- a/xorg-server/hw/xwin/wincursor.c
+++ b/xorg-server/hw/xwin/wincursor.c
@@ -43,10 +43,9 @@
#define BRIGHTNESS(x) (x##Red * 0.299 + x##Green * 0.587 + x##Blue * 0.114)
-#if 0
-#define WIN_DEBUG_MSG winDebug
-#else
-#define WIN_DEBUG_MSG(...)
+#ifdef _MSC_VER
+#define min(a,b) (((a) < (b)) ? (a) : (b))
+#define max(a,b) (((a) > (b)) ? (a) : (b))
#endif
/*
@@ -82,7 +81,7 @@ winPointerWarpCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
/* Don't ignore subsequent warps */
s_fInitialWarp = FALSE;
- winErrorFVerb(2,
+ winDebug (
"winPointerWarpCursor - Discarding first warp: %d %d\n",
x, y);
@@ -164,7 +163,7 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen)
BITMAPINFO *pbmi;
uint32_t *lpBits;
- WIN_DEBUG_MSG("winLoadCursor: Win32: %dx%d X11: %dx%d hotspot: %d,%d\n",
+ winDebug("winLoadCursor: Win32: %dx%d X11: %dx%d hotspot: %d,%d\n",
pScreenPriv->cursor.sm_cx, pScreenPriv->cursor.sm_cy,
pCursor->bits->width, pCursor->bits->height,
pCursor->bits->xhot, pCursor->bits->yhot);
@@ -178,7 +177,7 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen)
/* Check wether the X11 cursor is bigger than the win32 cursor */
if (pScreenPriv->cursor.sm_cx < pCursor->bits->width ||
pScreenPriv->cursor.sm_cy < pCursor->bits->height) {
- winErrorFVerb(3,
+ ErrorF (
"winLoadCursor - Windows requires %dx%d cursor but X requires %dx%d\n",
pScreenPriv->cursor.sm_cx, pScreenPriv->cursor.sm_cy,
pCursor->bits->width, pCursor->bits->height);
@@ -242,7 +241,7 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen)
/* We have a truecolor alpha-blended cursor and can use it! */
if (pCursor->bits->argb) {
- WIN_DEBUG_MSG("winLoadCursor: Trying truecolor alphablended cursor\n");
+ winDebug("winLoadCursor: Trying truecolor alphablended cursor\n");
memset(&bi, 0, sizeof(BITMAPV4HEADER));
bi.bV4Size = sizeof(BITMAPV4HEADER);
bi.bV4Width = pScreenPriv->cursor.sm_cx;
@@ -274,7 +273,7 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen)
if (!lpBits) {
RGBQUAD *pbmiColors;
/* Bicolor, use a palettized DIB */
- WIN_DEBUG_MSG("winLoadCursor: Trying two color cursor\n");
+ winDebug("winLoadCursor: Trying two color cursor\n");
pbmi = (BITMAPINFO *) &bi;
pbmiColors = &(pbmi->bmiColors[0]);
@@ -345,7 +344,7 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen)
/* If one of the previous two methods gave us the bitmap we need, make a cursor */
if (lpBits) {
- WIN_DEBUG_MSG("winLoadCursor: Creating bitmap cursor: hotspot %d,%d\n",
+ winDebug("winLoadCursor: Creating bitmap cursor: hotspot %d,%d\n",
pCursor->bits->xhot, pCursor->bits->yhot);
hAnd = NULL;
@@ -375,13 +374,12 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen)
hCursor = (HCURSOR) CreateIconIndirect(&ii);
if (hCursor == NULL)
- winW32Error(2, "winLoadCursor - CreateIconIndirect failed:");
+ winW32Error("winLoadCursor - CreateIconIndirect failed:");
else {
if (GetIconInfo(hCursor, &ii)) {
if (ii.fIcon) {
- WIN_DEBUG_MSG
+ winDebug
("winLoadCursor: CreateIconIndirect returned no cursor. Trying again.\n");
-
DestroyCursor(hCursor);
ii.fIcon = FALSE;
@@ -390,7 +388,7 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen)
hCursor = (HCURSOR) CreateIconIndirect(&ii);
if (hCursor == NULL)
- winW32Error(2,
+ winW32Error(
"winLoadCursor - CreateIconIndirect failed:");
}
/* GetIconInfo creates new bitmaps. Destroy them again */
@@ -416,7 +414,7 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen)
pScreenPriv->cursor.sm_cx,
pScreenPriv->cursor.sm_cy, pAnd, pXor);
if (hCursor == NULL)
- winW32Error(2, "winLoadCursor - CreateCursor failed:");
+ winW32Error("winLoadCursor - CreateCursor failed:");
}
free(pAnd);
free(pXor);
@@ -471,7 +469,7 @@ winSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, int x,
BOOL bInhibit;
winScreenPriv(pScreen);
- WIN_DEBUG_MSG("winSetCursor: cursor=%p\n", pCursor);
+ winDebug("winSetCursor: cursor=%p\n", pCursor);
/* Inhibit changing the cursor if the mouse is not in a client area */
bInhibit = FALSE;
@@ -513,7 +511,7 @@ winSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, int x,
}
pScreenPriv->cursor.handle =
winLoadCursor(pScreen, pCursor, pScreen->myNum);
- WIN_DEBUG_MSG("winSetCursor: handle=%p\n", pScreenPriv->cursor.handle);
+ winDebug("winSetCursor: handle=%p\n", pScreenPriv->cursor.handle);
if (!bInhibit)
SetCursor(pScreenPriv->cursor.handle);
@@ -604,9 +602,11 @@ winInitCursor(ScreenPtr pScreen)
pPointPriv = (miPointerScreenPtr)
dixLookupPrivate(&pScreen->devPrivates, miPointerScreenKey);
- pScreenPriv->cursor.spriteFuncs = pPointPriv->spriteFuncs;
- pPointPriv->spriteFuncs = &winSpriteFuncsRec;
-
+ if (pPointPriv)
+ {
+ pScreenPriv->cursor.spriteFuncs = pPointPriv->spriteFuncs;
+ pPointPriv->spriteFuncs = &winSpriteFuncsRec;
+ }
pScreenPriv->cursor.handle = NULL;
pScreenPriv->cursor.visible = FALSE;
diff --git a/xorg-server/hw/xwin/windialogs.c b/xorg-server/hw/xwin/windialogs.c
index 054ee95b5..3e3bd401c 100644
--- a/xorg-server/hw/xwin/windialogs.c
+++ b/xorg-server/hw/xwin/windialogs.c
@@ -189,8 +189,8 @@ winInitDialog(HWND hwndDlg)
*/
if (GetSystemMetrics(SM_CMONITORS) > 1) {
/* Still need to refresh the frame change. */
- SetWindowPos(hwndDlg, HWND_TOPMOST, 0, 0, 0, 0,
- SWP_NOMOVE | SWP_NOSIZE | SWP_FRAMECHANGED);
+ SetWindowPos (hwndDlg, HWND_TOP, 0,0,0,0,
+ SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);
}
else {
GetWindowRect(hwndDesk, &rcDesk);
@@ -229,12 +229,8 @@ winInitDialog(HWND hwndDlg)
PostMessage(hwndDlg, WM_SETICON, ICON_SMALL, (LPARAM) hIconSmall);
}
-/*
- * Display the Exit dialog box
- */
-
-void
-winDisplayExitDialog(winPrivScreenPtr pScreenPriv)
+int
+GetLiveClients (winPrivScreenPtr pScreenPriv)
{
int i;
int liveClients = 0;
@@ -257,6 +253,20 @@ winDisplayExitDialog(winPrivScreenPtr pScreenPriv)
if (liveClients < 0)
liveClients = 0;
+ pScreenPriv->iConnectedClients = liveClients;
+
+ return liveClients;
+}
+
+/*
+ * Display the Exit dialog box
+ */
+
+void
+winDisplayExitDialog (winPrivScreenPtr pScreenPriv)
+{
+ int liveClients = GetLiveClients(pScreenPriv);
+
/* Don't show the exit confirmation dialog if SilentExit & no clients,
or ForceExit, is enabled */
if ((pref.fSilentExit && liveClients <= 0) || pref.fForceExit) {
@@ -268,8 +278,6 @@ winDisplayExitDialog(winPrivScreenPtr pScreenPriv)
return;
}
- pScreenPriv->iConnectedClients = liveClients;
-
/* Check if dialog already exists */
if (g_hDlgExit != NULL) {
/* Dialog box already exists, display it */
@@ -428,50 +436,40 @@ winChangeDepthDlgProc(HWND hwndDialog, UINT message,
static winPrivScreenPtr s_pScreenPriv = NULL;
static winScreenInfo *s_pScreenInfo = NULL;
-#if CYGDEBUG
winDebug("winChangeDepthDlgProc\n");
-#endif
/* Branch on message type */
switch (message) {
case WM_INITDIALOG:
-#if CYGDEBUG
winDebug("winChangeDepthDlgProc - WM_INITDIALOG\n");
-#endif
/* Store pointers to private structures for future use */
s_pScreenPriv = (winPrivScreenPtr) lParam;
s_pScreenInfo = s_pScreenPriv->pScreenInfo;
-#if CYGDEBUG
winDebug("winChangeDepthDlgProc - WM_INITDIALOG - s_pScreenPriv: %08x, "
"s_pScreenInfo: %08x\n",
s_pScreenPriv, s_pScreenInfo);
-#endif
-#if CYGDEBUG
winDebug("winChangeDepthDlgProc - WM_INITDIALOG - orig bpp: %d, "
"current bpp: %d\n",
s_pScreenInfo->dwBPP,
GetDeviceCaps(s_pScreenPriv->hdcScreen, BITSPIXEL));
-#endif
winInitDialog(hwndDialog);
return TRUE;
case WM_DISPLAYCHANGE:
-#if CYGDEBUG
winDebug("winChangeDepthDlgProc - WM_DISPLAYCHANGE - orig bpp: %d, "
"new bpp: %d\n",
s_pScreenInfo->dwBPP,
GetDeviceCaps(s_pScreenPriv->hdcScreen, BITSPIXEL));
-#endif
/* Dismiss the dialog if the display returns to the original depth */
if (GetDeviceCaps(s_pScreenPriv->hdcScreen, BITSPIXEL) ==
s_pScreenInfo->dwBPP) {
- ErrorF("winChangeDelthDlgProc - wParam == s_pScreenInfo->dwBPP\n");
+ winDebug ("winChangeDelthDlgProc - wParam == s_pScreenInfo->dwBPP\n");
/* Depth has been restored, dismiss dialog */
DestroyWindow(g_hDlgDepthChange);
@@ -557,16 +555,12 @@ winAboutDlgProc(HWND hwndDialog, UINT message, WPARAM wParam, LPARAM lParam)
{
static winPrivScreenPtr s_pScreenPriv = NULL;
-#if CYGDEBUG
winDebug("winAboutDlgProc\n");
-#endif
/* Branch on message type */
switch (message) {
case WM_INITDIALOG:
-#if CYGDEBUG
winDebug("winAboutDlgProc - WM_INITDIALOG\n");
-#endif
/* Store pointer to private structure for future use */
s_pScreenPriv = (winPrivScreenPtr) lParam;
diff --git a/xorg-server/hw/xwin/windisplay.c b/xorg-server/hw/xwin/windisplay.c
new file mode 100644
index 000000000..db7b2f4d8
--- /dev/null
+++ b/xorg-server/hw/xwin/windisplay.c
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) Jon TURNEY 2009
+ *
+ * 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:
+ *
+ * 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 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.
+ *
+ */
+
+#ifdef HAVE_XWIN_CONFIG_H
+#include <xwin-config.h>
+#endif
+#include "win.h"
+
+#include <X11/Xwindows.h>
+
+/*
+ Generate a display name string referring to the display of this server,
+ using a transport we know is enabled
+*/
+
+void
+winGetDisplayName(char *szDisplay, unsigned int screen)
+{
+ if (TransIsListening("local"))
+ {
+ snprintf(szDisplay, 512, ":%s.%d", display, screen);
+ }
+ else if (TransIsListening("inet"))
+ {
+ snprintf(szDisplay, 512, "127.0.0.1:%s.%d", display, screen);
+ }
+ else if (TransIsListening("inet6"))
+ {
+ snprintf(szDisplay, 512, "[::1]:%s.%d", display, screen);
+ }
+ else
+ {
+ // this can't happen!
+ winDebug ("winGetDisplay: Don't know what to use for DISPLAY\n");
+ snprintf(szDisplay, 512, "localhost:%s.%d", display, screen);
+ }
+
+ winDebug ("winGetDisplay: DISPLAY=%s\n", szDisplay);
+}
diff --git a/xorg-server/hw/xwin/winengine.c b/xorg-server/hw/xwin/winengine.c
index 1f55ada58..e597e2c49 100644
--- a/xorg-server/hw/xwin/winengine.c
+++ b/xorg-server/hw/xwin/winengine.c
@@ -85,13 +85,13 @@ winDetectSupportedEngines(void)
ddrval = (*g_fpDirectDrawCreate) (NULL, (void **) &lpdd, NULL);
if (FAILED(ddrval)) {
/* No DirectDraw support */
- winErrorFVerb(2,
+ winDebug (
"winDetectSupportedEngines - DirectDraw not installed\n");
return;
}
else {
/* We have DirectDraw */
- winErrorFVerb(2,
+ winDebug (
"winDetectSupportedEngines - DirectDraw installed, allowing ShadowDD\n");
g_dwEnginesSupported |= WIN_SERVER_SHADOW_DD;
@@ -99,7 +99,7 @@ winDetectSupportedEngines(void)
/* Allow PrimaryDD engine if NT */
if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) {
g_dwEnginesSupported |= WIN_SERVER_PRIMARY_DD;
- winErrorFVerb(2,
+ winDebug (
"winDetectSupportedEngines - Windows NT, allowing PrimaryDD\n");
}
#endif
@@ -111,7 +111,7 @@ winDetectSupportedEngines(void)
(LPVOID *) &lpdd4);
if (SUCCEEDED(ddrval)) {
/* We have DirectDraw4 */
- winErrorFVerb(2,
+ winDebug (
"winDetectSupportedEngines - DirectDraw4 installed, allowing ShadowDDNL\n");
g_dwEnginesSupported |= WIN_SERVER_SHADOW_DDNL;
}
@@ -123,7 +123,7 @@ winDetectSupportedEngines(void)
IDirectDraw_Release(lpdd);
}
- winErrorFVerb(2,
+ winDebug (
"winDetectSupportedEngines - Returning, supported engines %08x\n",
(unsigned int) g_dwEnginesSupported);
}
@@ -162,7 +162,7 @@ winSetEngine(ScreenPtr pScreen)
/* ShadowGDI is the only engine that supports windowed PseudoColor */
if (dwBPP == 8 && !pScreenInfo->fFullScreen) {
- winErrorFVerb(2,
+ winDebug (
"winSetEngine - Windowed && PseudoColor => ShadowGDI\n");
pScreenInfo->dwEngine = WIN_SERVER_SHADOW_GDI;
@@ -180,7 +180,7 @@ winSetEngine(ScreenPtr pScreen)
|| pScreenInfo->fMultiWindow
#endif
) {
- winErrorFVerb(2,
+ winDebug (
"winSetEngine - Multi Window or Rootless => ShadowGDI\n");
pScreenInfo->dwEngine = WIN_SERVER_SHADOW_GDI;
@@ -189,9 +189,9 @@ winSetEngine(ScreenPtr pScreen)
return TRUE;
}
- /* If the user's choice is supported, we'll use that */
- if (g_dwEnginesSupported & pScreenInfo->dwEnginePreferred) {
- winErrorFVerb(2, "winSetEngine - Using user's preference: %d\n",
+ /* If there is a user's choice, we'll use that */
+ if (pScreenInfo->dwEnginePreferred) {
+ winDebug ("winSetEngine - Using user's preference: %d\n",
(int) pScreenInfo->dwEnginePreferred);
pScreenInfo->dwEngine = pScreenInfo->dwEnginePreferred;
@@ -217,14 +217,14 @@ winSetEngine(ScreenPtr pScreen)
break;
#endif
default:
- FatalError("winSetEngine - Invalid engine type\n");
+ FatalError ("winSetEngine - Invalid engine type %d\n",pScreenInfo->dwEngine);
}
return TRUE;
}
/* ShadowDDNL has good performance, so why not */
if (g_dwEnginesSupported & WIN_SERVER_SHADOW_DDNL) {
- winErrorFVerb(2, "winSetEngine - Using Shadow DirectDraw NonLocking\n");
+ winDebug ("winSetEngine - Using Shadow DirectDraw NonLocking\n");
pScreenInfo->dwEngine = WIN_SERVER_SHADOW_DDNL;
/* Set engine function pointers */
@@ -234,7 +234,7 @@ winSetEngine(ScreenPtr pScreen)
/* ShadowDD is next in line */
if (g_dwEnginesSupported & WIN_SERVER_SHADOW_DD) {
- winErrorFVerb(2, "winSetEngine - Using Shadow DirectDraw\n");
+ winDebug ("winSetEngine - Using Shadow DirectDraw\n");
pScreenInfo->dwEngine = WIN_SERVER_SHADOW_DD;
/* Set engine function pointers */
@@ -244,7 +244,7 @@ winSetEngine(ScreenPtr pScreen)
/* ShadowGDI is next in line */
if (g_dwEnginesSupported & WIN_SERVER_SHADOW_GDI) {
- winErrorFVerb(2, "winSetEngine - Using Shadow GDI DIB\n");
+ winDebug ("winSetEngine - Using Shadow GDI DIB\n");
pScreenInfo->dwEngine = WIN_SERVER_SHADOW_GDI;
/* Set engine function pointers */
diff --git a/xorg-server/hw/xwin/winerror.c b/xorg-server/hw/xwin/winerror.c
index 1318b0f36..859a66834 100644
--- a/xorg-server/hw/xwin/winerror.c
+++ b/xorg-server/hw/xwin/winerror.c
@@ -35,6 +35,7 @@
#include <../xfree86/common/xorgVersion.h>
#include "win.h"
+extern Bool g_fSilentDupError;
#ifdef DDXOSVERRORF
void
OsVendorVErrorF(const char *pszFormat, va_list va_args)
@@ -48,6 +49,24 @@ OsVendorVErrorF(const char *pszFormat, va_list va_args)
pthread_mutex_lock(&s_pmPrinting);
#endif
+ /*
+ If we want to silence it,
+ detect if we are going to abort due to duplication error
+ */
+ if (g_fSilentDupError)
+ {
+ if ((strcmp(pszFormat,
+ "InitOutput - Duplicate invocation on display "
+ "number: %s. Exiting.\n") == 0)
+ || (strcmp(pszFormat,
+ "Server is already active for display %s\n%s %s\n%s\n") == 0)
+ || (strcmp(pszFormat,
+ "MakeAllCOTSServerListeners: server already running\n") == 0))
+ {
+ g_fSilentFatalError = TRUE;
+ }
+ }
+
/* Print the error message to a log file, could be stderr */
LogVWrite(0, pszFormat, va_args);
@@ -64,11 +83,10 @@ OsVendorVErrorF(const char *pszFormat, va_list va_args)
*
* Attempt to do last-ditch, safe, important cleanup here.
*/
+char g_FatalErrorMessage[1024];
void
OsVendorFatalError(const char *f, va_list args)
{
- char errormsg[1024] = "";
-
/* Don't give duplicate warning if UseMsg was called */
if (g_fSilentFatalError)
return;
@@ -79,9 +97,6 @@ OsVendorFatalError(const char *f, va_list args)
}
LogClose(EXIT_ERR_ABORT);
- /* Format the error message */
- vsnprintf(errormsg, sizeof(errormsg), f, args);
-
/*
Sometimes the error message needs a bit of cosmetic cleaning
up for use in a dialog box...
@@ -89,7 +104,7 @@ OsVendorFatalError(const char *f, va_list args)
{
char *s;
- while ((s = strstr(errormsg, "\n\t")) != NULL) {
+ while ((s = strstr(g_FatalErrorMessage, "\n\t")) != NULL) {
s[0] = ' ';
s[1] = '\n';
}
@@ -99,7 +114,7 @@ OsVendorFatalError(const char *f, va_list args)
"%s\n\n"
"Please open %s for more information.\n",
MB_ICONERROR,
- errormsg,
+ g_FatalErrorMessage,
(g_pszLogFile ? g_pszLogFile : "the logfile"));
}
diff --git a/xorg-server/hw/xwin/winfont.c b/xorg-server/hw/xwin/winfont.c
index 7bcbce1c7..e7356486d 100644
--- a/xorg-server/hw/xwin/winfont.c
+++ b/xorg-server/hw/xwin/winfont.c
@@ -43,9 +43,7 @@ winRealizeFontNativeGDI(ScreenPtr pScreen, FontPtr pFont)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winRealizeFont (%p, %p)\n", pScreen, pFont);
-#endif
+ winDebug("winRealizeFont (%p, %p)\n", pScreen, pFont);
WIN_UNWRAP(RealizeFont);
if (pScreen->RealizeFont)
@@ -64,9 +62,7 @@ winUnrealizeFontNativeGDI(ScreenPtr pScreen, FontPtr pFont)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winUnrealizeFont (%p, %p)\n", pScreen, pFont);
-#endif
+ winDebug("winUnrealizeFont (%p, %p)\n", pScreen, pFont);
WIN_UNWRAP(UnrealizeFont);
if (pScreen->UnrealizeFont)
@@ -74,9 +70,5 @@ winUnrealizeFontNativeGDI(ScreenPtr pScreen, FontPtr pFont)
WIN_WRAP(UnrealizeFont, winUnrealizeFontNativeGDI);
return fResult;
-#if CYGDEBUG
- winDebug("winUnrealizeFont()\n");
-#endif
- return TRUE;
}
#endif
diff --git a/xorg-server/hw/xwin/wingc.c b/xorg-server/hw/xwin/wingc.c
index 814d53113..aba398d0a 100644
--- a/xorg-server/hw/xwin/wingc.c
+++ b/xorg-server/hw/xwin/wingc.c
@@ -37,46 +37,13 @@
* Local prototypes
*/
-#if 0
-static void
- winChangeGCNativeGDI(GCPtr pGC, unsigned long ulChanges);
-#endif
-
static void
winValidateGCNativeGDI(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable);
-#if 0
-static void
- winCopyGCNativeGDI(GCPtr pGCsrc, unsigned long ulMask, GCPtr pGCdst);
-#endif
-
static void
winDestroyGCNativeGDI(GCPtr pGC);
-#if 0
-static void
- winChangeClipNativeGDI(GCPtr pGC, int nType, pointer pValue, int nRects);
-
-static void
- winDestroyClipNativeGDI(GCPtr pGC);
-
-static void
- winCopyClipNativeGDI(GCPtr pGCdst, GCPtr pGCsrc);
-#endif
-
-#if 0
-/* GC Handling Routines */
-const GCFuncs winGCFuncs = {
- winValidateGCNativeGDI,
- winChangeGCNativeGDI,
- winCopyGCNativeGDI,
- winDestroyGCNativeGDI,
- winChangeClipNativeGDI,
- winDestroyClipNativeGDI,
- winCopyClipNativeGDI,
-};
-#else
const GCFuncs winGCFuncs = {
winValidateGCNativeGDI,
miChangeGC,
@@ -86,7 +53,6 @@ const GCFuncs winGCFuncs = {
miDestroyClip,
miCopyClip,
};
-#endif
/* Drawing Primitives */
const GCOps winGCOps = {
@@ -107,13 +73,8 @@ const GCOps winGCOps = {
miPolyText16,
miImageText8,
miImageText16,
-#if 0
- winImageGlyphBltNativeGDI,
- winPolyGlyphBltNativeGDI,
-#else
miImageGlyphBlt,
miPolyGlyphBlt,
-#endif
miPushPixels,
};
@@ -126,9 +87,7 @@ winCreateGCNativeGDI(GCPtr pGC)
winPrivGCPtr pGCPriv = NULL;
winPrivScreenPtr pScreenPriv = NULL;
-#if 0
- ErrorF("winCreateGCNativeGDI - depth: %d\n", pGC->depth);
-#endif
+ winDebug ("winCreateGCNativeGDI - depth: %d\n", pGC->depth);
pGC->ops = (GCOps *) &winGCOps;
pGC->funcs = (GCFuncs *) &winGCFuncs;
@@ -153,17 +112,6 @@ winCreateGCNativeGDI(GCPtr pGC)
return TRUE;
}
-#if 0
-/* See Porting Layer Definition - p. 45 */
-static void
-winChangeGCNativeGDI(GCPtr pGC, unsigned long ulChanges)
-{
-#if 0
- ErrorF("winChangeGCNativeGDI () - Doing nothing\n");
-#endif
-}
-#endif
-
static void
winValidateGCNativeGDI(GCPtr pGC,
unsigned long ulChanges, DrawablePtr pDrawable)
@@ -176,15 +124,6 @@ winValidateGCNativeGDI(GCPtr pGC,
}
}
-#if 0
-/* See Porting Layer Definition - p. 46 */
-static void
-winCopyGCNativeGDI(GCPtr pGCsrc, unsigned long ulMask, GCPtr pGCdst)
-{
-
-}
-#endif
-
/* See Porting Layer Definition - p. 46 */
static void
winDestroyGCNativeGDI(GCPtr pGC)
@@ -210,26 +149,3 @@ winDestroyGCNativeGDI(GCPtr pGC)
/* Invalidate the GC privates pointer */
winSetGCPriv(pGC, NULL);
}
-
-#if 0
-/* See Porting Layer Definition - p. 46 */
-static void
-winChangeClipNativeGDI(GCPtr pGC, int nType, pointer pValue, int nRects)
-{
-
-}
-
-/* See Porting Layer Definition - p. 47 */
-static void
-winDestroyClipNativeGDI(GCPtr pGC)
-{
-
-}
-
-/* See Porting Layer Definition - p. 47 */
-static void
-winCopyClipNativeGDI(GCPtr pGCdst, GCPtr pGCsrc)
-{
-
-}
-#endif
diff --git a/xorg-server/hw/xwin/wingetsp.c b/xorg-server/hw/xwin/wingetsp.c
index 049e2c939..1076b5cc5 100644
--- a/xorg-server/hw/xwin/wingetsp.c
+++ b/xorg-server/hw/xwin/wingetsp.c
@@ -57,9 +57,7 @@ winGetSpansNativeGDI(DrawablePtr pDrawable,
/* Branch on the drawable type */
switch (pDrawable->type) {
case DRAWABLE_PIXMAP:
-#if 0
- ErrorF("winGetSpans - DRAWABLE_PIXMAP %08x\n", pDrawable);
-#endif
+ winDebug ("winGetSpans - DRAWABLE_PIXMAP %08x\n", pDrawable);
pPixmap = (PixmapPtr) pDrawable;
pPixmapPriv = winGetPixmapPriv(pPixmap);
@@ -98,12 +96,6 @@ winGetSpansNativeGDI(DrawablePtr pDrawable,
SelectObject(hdcMem, hbmpOrig);
DeleteObject(hbmpWindow);
-#if 0
- ErrorF("(%dx%dx%d) (%d,%d) w: %d\n",
- pDrawable->width, pDrawable->height, pDrawable->depth,
- pPoint->x, pPoint->y, *piWidth);
-#endif
-
/* Calculate offset of next bit destination */
pDst += PixmapBytePad(*piWidth, pDrawable->depth);
}
@@ -117,9 +109,6 @@ winGetSpansNativeGDI(DrawablePtr pDrawable,
break;
case DRAWABLE_WINDOW:
-#if 0
- ErrorF("winGetSpans - DRAWABLE_WINDOW\n");
-#endif
/* Open a memory HDC */
hdcMem = CreateCompatibleDC(NULL);
@@ -150,12 +139,6 @@ winGetSpansNativeGDI(DrawablePtr pDrawable,
DeleteObject(hbmpWindow);
-#if 0
- ErrorF("(%dx%dx%d) (%d,%d) w: %d\n",
- pDrawable->width, pDrawable->height, pDrawable->depth,
- pPoint->x, pPoint->y, *piWidth);
-#endif
-
/* Calculate offset of next bit destination */
pDst += PixmapBytePad(*piWidth, pDrawable->depth);
}
diff --git a/xorg-server/hw/xwin/winglobals.c b/xorg-server/hw/xwin/winglobals.c
index d28132247..59287cadb 100644
--- a/xorg-server/hw/xwin/winglobals.c
+++ b/xorg-server/hw/xwin/winglobals.c
@@ -78,6 +78,7 @@ Bool g_fNoHelpMessageBox = FALSE;
Bool g_fSoftwareCursor = FALSE;
Bool g_fSilentDupError = FALSE;
Bool g_fNativeGl = TRUE;
+Bool g_fswrastwgl = FALSE;
pthread_mutex_t g_pmTerminating = PTHREAD_MUTEX_INITIALIZER;
#ifdef XWIN_CLIPBOARD
@@ -93,6 +94,7 @@ winDispatchProcPtr winProcSetSelectionOwnerOrig = NULL;
Bool g_fUnicodeClipboard = TRUE;
Bool g_fClipboard = TRUE;
+Bool g_fClipboardPrimary = TRUE;
Bool g_fClipboardLaunched = FALSE;
Bool g_fClipboardStarted = FALSE;
pthread_t g_ptClipboardProc;
@@ -102,6 +104,11 @@ Window g_iClipboardWindow = None;
Atom g_atomLastOwnedSelection = None;
#endif
+const char WIN_WINDOW_PROP[]= "vcxsrv_window_prop_rl";
+const char WIN_WID_PROP[]= "vcxsrv_wid_prop_rl";
+const char WIN_NEEDMANAGE_PROP[]= "vcxsrv_override_redirect_prop_rl";
+const char WIN_SCR_PROP[]= "vcxsrv_screen_prop_rl";
+
/*
* Re-initialize global variables that are invalidated
* by a server reset.
diff --git a/xorg-server/hw/xwin/winglobals.h b/xorg-server/hw/xwin/winglobals.h
index 58a919c65..75707b460 100644
--- a/xorg-server/hw/xwin/winglobals.h
+++ b/xorg-server/hw/xwin/winglobals.h
@@ -54,6 +54,7 @@ extern Bool g_fXdmcpEnabled;
extern Bool g_fNoHelpMessageBox;
extern Bool g_fSilentDupError;
extern Bool g_fNativeGl;
+extern Bool g_fswrastwgl;
extern HWND g_hDlgDepthChange;
extern HWND g_hDlgExit;
diff --git a/xorg-server/hw/xwin/winkeybd.c b/xorg-server/hw/xwin/winkeybd.c
index 9c5d4e9cd..54e1847d7 100644
--- a/xorg-server/hw/xwin/winkeybd.c
+++ b/xorg-server/hw/xwin/winkeybd.c
@@ -156,7 +156,7 @@ winKeybdProc(DeviceIntPtr pDeviceInt, int iState)
/* FIXME: Maybe we should use winGetKbdLeds () here? */
defaultKeyboardControl.leds = g_winInfo.keyboard.leds;
- winErrorFVerb(2, "Rules = \"%s\" Model = \"%s\" Layout = \"%s\""
+ winDebug("Rules = \"%s\" Model = \"%s\" Layout = \"%s\""
" Variant = \"%s\" Options = \"%s\"\n",
g_winInfo.xkb.rules ? g_winInfo.xkb.rules : "none",
g_winInfo.xkb.model ? g_winInfo.xkb.model : "none",
@@ -174,8 +174,7 @@ winKeybdProc(DeviceIntPtr pDeviceInt, int iState)
ctrl->repeat_interval = 1000 / g_winInfo.keyboard.rate;
}
else {
- winErrorFVerb(1,
- "winKeybdProc - Error initializing keyboard AutoRepeat\n");
+ winDebug ("winKeybdProc - Error initializing keyboard AutoRepeat\n");
}
break;
@@ -265,6 +264,21 @@ winRestoreModeKeyStates(void)
XkbStateFieldFromRec(&inputInfo.keyboard->key->xkbInfo->state);
winDebug("winRestoreModeKeyStates: state %d\n", internalKeyStates);
+ {
+ /* Make sure the message queue is empty, otherwise the GetKeyState will not always
+ return the correct state of the numlock key, capslock key, ...
+ This is mainly because this function is called from the WM_SETFOCUS handler.
+ From MSDN GetKeyState: The key status returned from this function changes as a thread
+ reads key messages from its message queue.*/
+ MSG msg;
+
+ /* Process all messages on our queue */
+ while (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))
+ {
+ DispatchMessage (&msg);
+ }
+ }
+
/* Check if modifier keys are pressed, and if so, fake a press */
{
diff --git a/xorg-server/hw/xwin/winkeybd.h b/xorg-server/hw/xwin/winkeybd.h
index 6701f0959..545aef751 100644
--- a/xorg-server/hw/xwin/winkeybd.h
+++ b/xorg-server/hw/xwin/winkeybd.h
@@ -39,8 +39,10 @@
#define WIN_KEYMAP_COLS 3
-/* Rows 160 through 165 correspond to software-generated codes, which
- * may not be associated with the appropriate scan code.
+/* ASCII column, rows 33 through 40 are for Speech Recognition with
+ * num-lock asserted.
+ * Rows 160 through 165 correspond to software-generated codes, which
+ * may not be associated with the appropriate scan code/extended bit
*/
const int
g_iKeyMap[] = {
@@ -78,14 +80,14 @@ const int
/* 30 */ 0, 0, 0,
/* 31 */ 0, 0, 0,
/* 32 */ 0, 0, 0,
- /* 33 */ VK_PRIOR, 0, KEY_PgUp,
- /* 34 */ VK_NEXT, 0, KEY_PgDown,
- /* 35 */ VK_END, 0, KEY_End,
- /* 36 */ VK_HOME, 0, KEY_Home,
- /* 37 */ VK_LEFT, 0, KEY_Left,
- /* 38 */ VK_UP, 0, KEY_Up,
- /* 39 */ VK_RIGHT, 0, KEY_Right,
- /* 40 */ VK_DOWN, 0, KEY_Down,
+ /* 33 */ VK_PRIOR, KEY_PgUp, KEY_PgUp,
+ /* 34 */ VK_NEXT, KEY_PgDown, KEY_PgDown,
+ /* 35 */ VK_END, KEY_End, KEY_End,
+ /* 36 */ VK_HOME, KEY_Home, KEY_Home,
+ /* 37 */ VK_LEFT, KEY_Left, KEY_Left,
+ /* 38 */ VK_UP, KEY_Up, KEY_Up,
+ /* 39 */ VK_RIGHT, KEY_Right, KEY_Right,
+ /* 40 */ VK_DOWN, KEY_Down, KEY_Down,
/* 41 */ 0, 0, 0,
/* 42 */ 0, 0, 0,
/* 43 */ 0, 0, 0,
@@ -205,12 +207,12 @@ const int
/* 157 */ 0, 0, 0,
/* 158 */ 0, 0, 0,
/* 159 */ 0, 0, 0,
- /* 160 */ VK_LSHIFT, KEY_ShiftL, 0,
- /* 161 */ VK_RSHIFT, KEY_ShiftR, 0,
- /* 162 */ VK_LCONTROL, KEY_LCtrl, 0,
- /* 163 */ VK_RCONTROL, KEY_RCtrl, 0,
- /* 164 */ VK_LMENU, KEY_Alt, 0,
- /* 165 */ VK_RMENU, KEY_AltLang, 0,
+ /* 160 */ VK_LSHIFT, KEY_ShiftL, KEY_ShiftL,
+ /* 161 */ VK_RSHIFT, KEY_ShiftR, KEY_ShiftR,
+ /* 162 */ VK_LCONTROL, KEY_LCtrl, KEY_LCtrl,
+ /* 163 */ VK_RCONTROL, KEY_RCtrl, KEY_RCtrl,
+ /* 164 */ VK_LMENU, KEY_Alt, KEY_Alt,
+ /* 165 */ VK_RMENU, KEY_AltLang, KEY_AltLang,
/* 166 */ 0, 0, 0,
/* 167 */ 0, 0, 0,
/* 168 */ 0, 0, 0,
@@ -268,7 +270,7 @@ const int
/* 220 */ 0, 0, 0,
/* 221 */ 0, 0, 0,
/* 222 */ 0, 0, 0,
- /* 223 */ VK_OEM_8, 0, KEY_RCtrl,
+ /* 223 */ VK_OEM_8, 0, KEY_RCtrl,
/* at least on Canadian Multilingual Standard layout */
/* 224 */ 0, 0, 0,
/* 225 */ 0, 0, 0,
@@ -301,7 +303,7 @@ const int
/* 252 */ 0, 0, 0,
/* 253 */ 0, 0, 0,
/* 254 */ 0, 0, 0,
- /* 255 */ VK_FN, 0, KEY_Fn
+ /* 255 */ VK_FN, 0, KEY_Fn
/* Most keyboards don't generate a scancode for Fn, but a few do... */
};
diff --git a/xorg-server/hw/xwin/winlayouts.h b/xorg-server/hw/xwin/winlayouts.h
index 8b6b98407..0aae18b00 100644
--- a/xorg-server/hw/xwin/winlayouts.h
+++ b/xorg-server/hw/xwin/winlayouts.h
@@ -64,6 +64,7 @@ WinKBLayoutRec winKBLayouts[] = {
{0x0000040b, -1, "pc105", "fi", NULL, NULL, "Finnish"},
{0x0000040c, -1, "pc105", "fr", NULL, NULL, "French (Standard)"},
{0x0000080c, -1, "pc105", "be", NULL, NULL, "French (Belgian)"},
+ {0x0001080c, -1, "pc105", "be", NULL, NULL, "Belgian (Comma)"},
{0x00000c0c, -1, "pc105", "ca", "fr-legacy", NULL,
"French (Canada, Legacy)"},
{0x0000100c, -1, "pc105", "ch", "fr", NULL, "French (Switzerland)"},
diff --git a/xorg-server/hw/xwin/winmisc.c b/xorg-server/hw/xwin/winmisc.c
index 10f97322f..f810ed073 100644
--- a/xorg-server/hw/xwin/winmisc.c
+++ b/xorg-server/hw/xwin/winmisc.c
@@ -44,7 +44,7 @@ void
winQueryBestSizeNativeGDI(int class, unsigned short *pWidth,
unsigned short *pHeight, ScreenPtr pScreen)
{
- ErrorF("winQueryBestSizeNativeGDI\n");
+ winDebug ("winQueryBestSizeNativeGDI\n");
}
#endif
diff --git a/xorg-server/hw/xwin/winmonitors.c b/xorg-server/hw/xwin/winmonitors.c
index 955fb9214..916b8b0bb 100644
--- a/xorg-server/hw/xwin/winmonitors.c
+++ b/xorg-server/hw/xwin/winmonitors.c
@@ -32,6 +32,8 @@ from The Open Group.
#endif
#include "win.h"
+#define COMPILE_MULTIMON_STUBS
+#include <multimon.h>
#include "winmonitors.h"
/*
@@ -68,7 +70,5 @@ QueryMonitor(int i, struct GetMonitorInfoData *data)
data->requestedMonitor = i;
/* query information */
- EnumDisplayMonitors(NULL, NULL, getMonitorInfo, (LPARAM) data);
-
- return TRUE;
+ return !EnumDisplayMonitors(NULL, NULL, getMonitorInfo, (LPARAM) data);
}
diff --git a/xorg-server/hw/xwin/winmouse.c b/xorg-server/hw/xwin/winmouse.c
index bbe21cba6..6b293f0ab 100644
--- a/xorg-server/hw/xwin/winmouse.c
+++ b/xorg-server/hw/xwin/winmouse.c
@@ -36,6 +36,13 @@
#endif
#include "win.h"
+#ifdef XKB
+#ifndef XKB_IN_SERVER
+#define XKB_IN_SERVER
+#endif
+#include <xkbsrv.h>
+#endif
+
#include "inputstr.h"
#include "exevents.h" /* for button/axes labels */
#include "xserver-properties.h"
@@ -45,18 +52,6 @@
static CARD8 const *g_winMouseButtonMap = NULL;
/*
- * Local prototypes
- */
-
-static void
- winMouseCtrl(DeviceIntPtr pDevice, PtrCtrl * pCtrl);
-
-static void
-winMouseCtrl(DeviceIntPtr pDevice, PtrCtrl * pCtrl)
-{
-}
-
-/*
* See Porting Layer Definition - p. 18
* This is known as a DeviceProc
*/
@@ -75,7 +70,7 @@ winMouseProc(DeviceIntPtr pDeviceInt, int iState)
case DEVICE_INIT:
/* Get number of mouse buttons */
lngMouseButtons = GetSystemMetrics(SM_CMOUSEBUTTONS);
- winMsg(X_PROBED, "%d mouse buttons found\n", lngMouseButtons);
+ winDebug("%d mouse buttons found\n", lngMouseButtons);
/* Mapping of windows events to X events:
* LEFT:1 MIDDLE:2 RIGHT:3
@@ -122,7 +117,7 @@ winMouseProc(DeviceIntPtr pDeviceInt, int iState)
map,
lngMouseButtons + lngWheelEvents,
btn_labels,
- winMouseCtrl,
+ (PtrCtrlProcPtr)NoopDDA,
GetMotionHistorySize(), 2, axes_labels);
free(map);
@@ -231,10 +226,8 @@ winMouseButtonsSendEvent(int iEventType, int iButton)
QueuePointerEvents(g_pwinPointer, iEventType, iButton,
POINTER_RELATIVE, &mask);
-#if CYGDEBUG
- ErrorF("winMouseButtonsSendEvent: iEventType: %d, iButton: %d\n",
+ winDebug("winMouseButtonsSendEvent: iEventType: %d, iButton: %d\n",
iEventType, iButton);
-#endif
}
/*
diff --git a/xorg-server/hw/xwin/winmsg.c b/xorg-server/hw/xwin/winmsg.c
index 56e7a097c..7831a3b36 100644
--- a/xorg-server/hw/xwin/winmsg.c
+++ b/xorg-server/hw/xwin/winmsg.c
@@ -33,72 +33,16 @@
#endif
#include "win.h"
#include "winmsg.h"
-#if CYGDEBUG
+#ifdef WINDBG
#include "winmessages.h"
#endif
#include <stdarg.h>
-void
-winVMsg(int, MessageType, int verb, const char *, va_list)
-_X_ATTRIBUTE_PRINTF(4, 0);
-
-void
-winVMsg(int scrnIndex, MessageType type, int verb, const char *format,
- va_list ap)
-{
- LogVMessageVerb(type, verb, format, ap);
-}
+#ifdef WINDBG
-void
-winDrvMsg(int scrnIndex, MessageType type, const char *format, ...)
-{
- va_list ap;
- va_start(ap, format);
- LogVMessageVerb(type, 0, format, ap);
- va_end(ap);
-}
-void
-winMsg(MessageType type, const char *format, ...)
-{
- va_list ap;
- va_start(ap, format);
- LogVMessageVerb(type, 1, format, ap);
- va_end(ap);
-}
-
-void
-winDrvMsgVerb(int scrnIndex, MessageType type, int verb, const char *format,
- ...)
-{
- va_list ap;
-
- va_start(ap, format);
- LogVMessageVerb(type, verb, format, ap);
- va_end(ap);
-}
-
-void
-winMsgVerb(MessageType type, int verb, const char *format, ...)
-{
- va_list ap;
-
- va_start(ap, format);
- LogVMessageVerb(type, verb, format, ap);
- va_end(ap);
-}
-
-void
-winErrorFVerb(int verb, const char *format, ...)
-{
- va_list ap;
-
- va_start(ap, format);
- LogVMessageVerb(X_NONE, verb, format, ap);
- va_end(ap);
-}
void
winDebug(const char *format, ...)
@@ -111,23 +55,24 @@ winDebug(const char *format, ...)
}
void
-winTrace(const char *format, ...)
+winDebug4 (const char *format, ...)
{
va_list ap;
va_start(ap, format);
- LogVMessageVerb(X_NONE, 10, format, ap);
+ LogVMessageVerb(X_NONE, 4, format, ap);
va_end(ap);
}
+#endif
void
-winW32Error(int verb, const char *msg)
+winW32Error(const char *msg)
{
- winW32ErrorEx(verb, msg, GetLastError());
+ winW32ErrorEx(msg, GetLastError());
}
void
-winW32ErrorEx(int verb, const char *msg, DWORD errorcode)
+winW32ErrorEx(const char *msg, DWORD errorcode)
{
LPVOID buffer;
@@ -138,15 +83,16 @@ winW32ErrorEx(int verb, const char *msg, DWORD errorcode)
errorcode,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &buffer, 0, NULL)) {
- winErrorFVerb(verb, "Unknown error in FormatMessage!\n");
+ ErrorF(msg);
+ ErrorF("Unknown error in FormatMessage!\n");
}
else {
- winErrorFVerb(verb, "%s %s", msg, (char *) buffer);
+ ErrorF("%s %s", msg, (char *)buffer);
LocalFree(buffer);
}
}
-#if CYGDEBUG
+#ifdef WINDBG
void
winDebugWin32Message(const char *function, HWND hwnd, UINT message,
WPARAM wParam, LPARAM lParam)
@@ -175,10 +121,4 @@ winDebugWin32Message(const char *function, HWND hwnd, UINT message,
}
}
}
-#else
-void
-winDebugWin32Message(const char *function, HWND hwnd, UINT message,
- WPARAM wParam, LPARAM lParam)
-{
-}
#endif
diff --git a/xorg-server/hw/xwin/winmsg.h b/xorg-server/hw/xwin/winmsg.h
index b638f2cb3..beb6683ed 100644
--- a/xorg-server/hw/xwin/winmsg.h
+++ b/xorg-server/hw/xwin/winmsg.h
@@ -33,33 +33,21 @@
/*
* Function prototypes
*/
+
+#include "os.h"
-void
-winDrvMsgVerb(int scrnIndex,
- MessageType type, int verb, const char *format, ...)
-_X_ATTRIBUTE_PRINTF(4, 5);
-void
-winDrvMsg(int scrnIndex, MessageType type, const char *format, ...)
-_X_ATTRIBUTE_PRINTF(3, 4);
-void
-winMsgVerb(MessageType type, int verb, const char *format, ...)
-_X_ATTRIBUTE_PRINTF(3, 4);
-void
-winMsg(MessageType type, const char *format, ...)
-_X_ATTRIBUTE_PRINTF(2, 3);
-void
-winDebug(const char *format, ...)
-_X_ATTRIBUTE_PRINTF(1, 2);
-void
-winTrace(const char *format, ...)
-_X_ATTRIBUTE_PRINTF(1, 2);
+#if !defined(_MSC_VER) || defined(_DEBUG)
+#define WINDBG
+void winDebug (const char *format, ...);
+void winDebug4 (const char *format, ...);
+void winDebugWin32Message(const char* function, HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
+#else
+#define winDebug(...)
+#define winDebug4(...)
+#define winDebugWin32Message(...)
+#endif
-void
-winErrorFVerb(int verb, const char *format, ...)
-_X_ATTRIBUTE_PRINTF(2, 3);
-void winW32Error(int verb, const char *message);
-void winW32ErrorEx(int verb, const char *message, DWORD errorcode);
-void winDebugWin32Message(const char *function, HWND hwnd, UINT message,
- WPARAM wParam, LPARAM lParam);
+void winW32Error(const char *message);
+void winW32ErrorEx(const char *message, DWORD errorcode);
#endif
diff --git a/xorg-server/hw/xwin/winmsgwindow.c b/xorg-server/hw/xwin/winmsgwindow.c
index 8067c693c..e48a46af7 100644
--- a/xorg-server/hw/xwin/winmsgwindow.c
+++ b/xorg-server/hw/xwin/winmsgwindow.c
@@ -22,6 +22,9 @@
*
*/
+#ifdef HAVE_XWIN_CONFIG_H
+#include <xwin-config.h>
+#endif
#include "win.h"
/*
diff --git a/xorg-server/hw/xwin/winmultiwindowclass.c b/xorg-server/hw/xwin/winmultiwindowclass.c
index 6787332a3..ec283610e 100644
--- a/xorg-server/hw/xwin/winmultiwindowclass.c
+++ b/xorg-server/hw/xwin/winmultiwindowclass.c
@@ -134,8 +134,9 @@ winMultiWindowGetWMHints(WindowPtr pWin, WinXWMHints * hints)
memset(hints, 0, sizeof(WinXWMHints));
while (prop) {
- if (prop->propertyName == XA_WM_HINTS && prop->data) {
- memcpy(hints, prop->data, sizeof(WinXWMHints));
+ if (prop->propertyName == XA_WM_HINTS && prop->data
+ && prop->format == 32) {
+ memcpy (hints, prop->data, 4*(int)prop->size); /* format/8 = 4 */
return 1;
}
else
@@ -208,8 +209,9 @@ winMultiWindowGetWMNormalHints(WindowPtr pWin, WinXSizeHints * hints)
memset(hints, 0, sizeof(WinXSizeHints));
while (prop) {
- if (prop->propertyName == XA_WM_NORMAL_HINTS && prop->data) {
- memcpy(hints, prop->data, sizeof(WinXSizeHints));
+ if (prop->propertyName == XA_WM_NORMAL_HINTS && prop->data
+ && prop->format == 32) {
+ memcpy (hints, prop->data, 4*(int)prop->size); /* format/8 = 4 */
return 1;
}
else
@@ -241,9 +243,11 @@ winMultiWindowGetTransientFor(WindowPtr pWin, Window *pDaddyId)
*pDaddyId = 0;
while (prop) {
- if (prop->propertyName == XA_WM_TRANSIENT_FOR) {
+ if (prop->propertyName == XA_WM_TRANSIENT_FOR
+ && prop->format == 32
+ && prop->data) {
if (pDaddyId)
- memcpy(pDaddyId, prop->data, sizeof(Window));
+ memcpy (pDaddyId, prop->data, 4*(int)prop->size); /* format/8 = 4 */
return 1;
}
else
diff --git a/xorg-server/hw/xwin/winmultiwindowclass.h b/xorg-server/hw/xwin/winmultiwindowclass.h
index 3244f78e3..cb47ce943 100644
--- a/xorg-server/hw/xwin/winmultiwindowclass.h
+++ b/xorg-server/hw/xwin/winmultiwindowclass.h
@@ -47,16 +47,6 @@ typedef struct {
/* this structure may be extended in the future */
} WinXWMHints;
-/* Window manager hints mask bits */
-#define InputHint (1L << 0)
-#define StateHint (1L << 1)
-#define IconPixmapHint (1L << 2)
-#define IconWindowHint (1L << 3)
-#define IconPositionHint (1L << 4)
-#define IconMaskHint (1L << 5)
-#define WindowGroupHint (1L << 6)
-#define UrgencyHint (1L << 8)
-#define AllHints (InputHint|StateHint|IconPixmapHint|IconWindowHint|IconPositionHint|IconMaskHint|WindowGroupHint)
/*
* new version containing base_width, base_height, and win_gravity fields;
diff --git a/xorg-server/hw/xwin/winmultiwindowicons.c b/xorg-server/hw/xwin/winmultiwindowicons.c
index 0531ad6c7..74d0af1ba 100644
--- a/xorg-server/hw/xwin/winmultiwindowicons.c
+++ b/xorg-server/hw/xwin/winmultiwindowicons.c
@@ -237,18 +237,20 @@ NetWMToWinIconAlpha(uint32_t * icon)
HDC hdc = GetDC(NULL);
uint32_t *DIB_pixels;
ICONINFO ii;
- BITMAPV4HEADER bmh = { sizeof(bmh) };
+ BITMAPV5HEADER bmh;
/* Define an ARGB pixel format used for Color+Alpha icons */
- bmh.bV4Width = width;
- bmh.bV4Height = -height; /* Invert the image */
- bmh.bV4Planes = 1;
- bmh.bV4BitCount = 32;
- bmh.bV4V4Compression = BI_BITFIELDS;
- bmh.bV4AlphaMask = 0xFF000000;
- bmh.bV4RedMask = 0x00FF0000;
- bmh.bV4GreenMask = 0x0000FF00;
- bmh.bV4BlueMask = 0x000000FF;
+ ZeroMemory(&bmh,sizeof(bmh));
+ bmh.bV5Size = sizeof(bmh);
+ bmh.bV5Width = width;
+ bmh.bV5Height = -height; /* Invert the image */
+ bmh.bV5Planes = 1;
+ bmh.bV5BitCount = 32;
+ bmh.bV5Compression = BI_BITFIELDS;
+ bmh.bV5AlphaMask = 0xFF000000;
+ bmh.bV5RedMask = 0x00FF0000;
+ bmh.bV5GreenMask = 0x0000FF00;
+ bmh.bV5BlueMask = 0x000000FF;
ii.fIcon = TRUE;
ii.xHotspot = 0; /* ignored */
@@ -351,7 +353,7 @@ NetWMToWinIcon(int bpp, uint32_t * icon)
dwlConditionMask);
versionChecked = TRUE;
- ErrorF("OS has icon alpha channel support: %s\n",
+ winDebug("OS has icon alpha channel support: %s\n",
hasIconAlphaChannel ? "yes" : "no");
}
diff --git a/xorg-server/hw/xwin/winmultiwindowshape.c b/xorg-server/hw/xwin/winmultiwindowshape.c
index cb0f38950..0a00e79ee 100644
--- a/xorg-server/hw/xwin/winmultiwindowshape.c
+++ b/xorg-server/hw/xwin/winmultiwindowshape.c
@@ -46,9 +46,7 @@ winSetShapeMultiWindow(WindowPtr pWin, int kind)
winScreenPriv(pScreen);
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winSetShapeMultiWindow - pWin: %08x kind: %i\n", pWin, kind);
-#endif
+ winDebug ("winSetShapeMultiWindow - pWin: %08x kind: %i\n", pWin, kind);
WIN_UNWRAP(SetShape);
(*pScreen->SetShape) (pWin, kind);
@@ -89,9 +87,7 @@ winReshapeMultiWindow(WindowPtr pWin)
winWindowPriv(pWin);
-#if CYGDEBUG
winDebug("winReshape ()\n");
-#endif
/* Bail if the window is the root window */
if (pWin->parent == NULL)
@@ -197,3 +193,14 @@ winReshapeMultiWindow(WindowPtr pWin)
return;
}
+
+void
+winShapeRgnUpdateMultiwindow(HWND hwnd)
+{
+ WindowPtr pWin = GetProp (hwnd, WIN_WINDOW_PROP);
+ if (pWin)
+ {
+ winReshapeMultiWindow(pWin);
+ winUpdateRgnMultiWindow(pWin);
+ }
+}
diff --git a/xorg-server/hw/xwin/winmultiwindowwindow.c b/xorg-server/hw/xwin/winmultiwindowwindow.c
index 44ad19302..94956863b 100644
--- a/xorg-server/hw/xwin/winmultiwindowwindow.c
+++ b/xorg-server/hw/xwin/winmultiwindowwindow.c
@@ -83,7 +83,7 @@ winInitMultiWindowClass(void)
wcx.hIconSm = hIconSmall;
#if CYGMULTIWINDOW_DEBUG
- ErrorF("winCreateWindowsWindow - Creating class: %s\n", WINDOW_CLASS_X);
+ winDebug ("winCreateWindowsWindow - Creating class: %s\n", WINDOW_CLASS_X);
#endif
atomXWinClass = RegisterClassEx(&wcx);
@@ -104,7 +104,7 @@ winCreateWindowMultiWindow(WindowPtr pWin)
winScreenPriv(pScreen);
#if CYGMULTIWINDOW_DEBUG
- winTrace("winCreateWindowMultiWindow - pWin: %p\n", pWin);
+ winDebug ("winCreateWindowMultiWindow - pWin: %p\n", pWin);
#endif
WIN_UNWRAP(CreateWindow);
@@ -137,7 +137,7 @@ winDestroyWindowMultiWindow(WindowPtr pWin)
winScreenPriv(pScreen);
#if CYGMULTIWINDOW_DEBUG
- ErrorF("winDestroyWindowMultiWindow - pWin: %p\n", pWin);
+ winDebug ("winDestroyWindowMultiWindow - pWin: %p\n", pWin);
#endif
WIN_UNWRAP(DestroyWindow);
@@ -175,30 +175,29 @@ winPositionWindowMultiWindow(WindowPtr pWin, int x, int y)
RECT rcNew;
RECT rcOld;
-#if CYGMULTIWINDOW_DEBUG
+#ifdef WINDBG
RECT rcClient;
RECT *lpRc;
#endif
DWORD dwExStyle;
DWORD dwStyle;
-#if CYGMULTIWINDOW_DEBUG
- winTrace("winPositionWindowMultiWindow - pWin: %p\n", pWin);
-#endif
+ winDebug ("winPositionWindowMultiWindow - pWin: %p\n", pWin);
WIN_UNWRAP(PositionWindow);
fResult = (*pScreen->PositionWindow) (pWin, x, y);
WIN_WRAP(PositionWindow, winPositionWindowMultiWindow);
-#if CYGWINDOWING_DEBUG
- ErrorF("winPositionWindowMultiWindow: (x, y) = (%d, %d)\n", x, y);
-#endif
+ winDebug ("winPositionWindowMultiWindow: (x, y) = (%d, %d)\n", x, y);
/* Bail out if the Windows window handle is bad */
if (!hWnd) {
-#if CYGWINDOWING_DEBUG
- ErrorF("\timmediately return since hWnd is NULL\n");
-#endif
+ winDebug ("\timmediately return since hWnd is NULL\n");
+ if (pWin->redirectDraw != RedirectDrawNone)
+ {
+ winDebug("winPositionWindowMultiWindow: Calling compReallocPixmap to make sure the pixmap buffer is valid.\n");
+ compReallocPixmap(pWin, x, y, pWin->drawable.width, pWin->drawable.height, pWin->borderWidth);
+ }
return fResult;
}
@@ -219,7 +218,7 @@ winPositionWindowMultiWindow(WindowPtr pWin, int x, int y)
#if CYGMULTIWINDOW_DEBUG
lpRc = &rcNew;
- ErrorF("winPositionWindowMultiWindow - (%d ms)drawable (%d, %d)-(%d, %d)\n",
+ winDebug ("winPositionWindowMultiWindow - (%d ms)drawable (%d, %d)-(%d, %d)\n",
GetTickCount(), lpRc->left, lpRc->top, lpRc->right, lpRc->bottom);
#endif
@@ -237,37 +236,41 @@ winPositionWindowMultiWindow(WindowPtr pWin, int x, int y)
GetClientRect(hWnd, &rcClient);
lpRc = &rcNew;
- ErrorF("winPositionWindowMultiWindow - (%d ms)rcNew (%d, %d)-(%d, %d)\n",
+ winDebug ("winPositionWindowMultiWindow - (%d ms)rcNew (%d, %d)-(%d, %d)\n",
GetTickCount(), lpRc->left, lpRc->top, lpRc->right, lpRc->bottom);
lpRc = &rcOld;
- ErrorF("winPositionWindowMultiWindow - (%d ms)rcOld (%d, %d)-(%d, %d)\n",
+ winDebug ("winPositionWindowMultiWindow - (%d ms)rcOld (%d, %d)-(%d, %d)\n",
GetTickCount(), lpRc->left, lpRc->top, lpRc->right, lpRc->bottom);
lpRc = &rcClient;
- ErrorF("(%d ms)rcClient (%d, %d)-(%d, %d)\n",
+ winDebug ("(%d ms)rcClient (%d, %d)-(%d, %d)\n",
GetTickCount(), lpRc->left, lpRc->top, lpRc->right, lpRc->bottom);
#endif
/* Check if the old rectangle and new rectangle are the same */
if (!EqualRect(&rcNew, &rcOld)) {
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winPositionWindowMultiWindow - Need to move\n");
-#endif
-
-#if CYGWINDOWING_DEBUG
- ErrorF("\tMoveWindow to (%ld, %ld) - %ldx%ld\n", rcNew.left, rcNew.top,
+ winDebug ("winPositionWindowMultiWindow - Need to move\n");
+ winDebug ("\tMoveWindow to (%ld, %ld) - %ldx%ld\n", rcNew.left, rcNew.top,
rcNew.right - rcNew.left, rcNew.bottom - rcNew.top);
-#endif
+
/* Change the position and dimensions of the Windows window */
- MoveWindow(hWnd,
- rcNew.left, rcNew.top,
- rcNew.right - rcNew.left, rcNew.bottom - rcNew.top, TRUE);
+ if (pWinPriv->fWglUsed)
+ {
+ int iWidth=rcNew.right - rcNew.left;
+ int iHeight=rcNew.bottom - rcNew.top;
+ ScreenToClient(GetParent(hWnd), (LPPOINT)&rcNew);
+ MoveWindow (hWnd,
+ rcNew.left, rcNew.top,
+ iWidth, iHeight, TRUE);
+ }
+ else
+ MoveWindow (hWnd,
+ rcNew.left, rcNew.top,
+ rcNew.right - rcNew.left, rcNew.bottom - rcNew.top, TRUE);
}
else {
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winPositionWindowMultiWindow - Not need to move\n");
-#endif
+ winDebug ("winPositionWindowMultiWindow - Not need to move\n");
}
return fResult;
@@ -285,9 +288,7 @@ winChangeWindowAttributesMultiWindow(WindowPtr pWin, unsigned long mask)
winScreenPriv(pScreen);
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winChangeWindowAttributesMultiWindow - pWin: %08x\n", pWin);
-#endif
+ winDebug ("winChangeWindowAttributesMultiWindow - pWin: %08x\n", pWin);
WIN_UNWRAP(ChangeWindowAttributes);
fResult = (*pScreen->ChangeWindowAttributes) (pWin, mask);
@@ -315,7 +316,7 @@ winUnmapWindowMultiWindow(WindowPtr pWin)
winScreenPriv(pScreen);
#if CYGMULTIWINDOW_DEBUG
- ErrorF("winUnmapWindowMultiWindow - pWin: %08x\n", pWin);
+ winDebug ("winUnmapWindowMultiWindow - pWin: %08x\n", pWin);
#endif
WIN_UNWRAP(UnrealizeWindow);
@@ -346,7 +347,7 @@ winMapWindowMultiWindow(WindowPtr pWin)
winScreenPriv(pScreen);
#if CYGMULTIWINDOW_DEBUG
- ErrorF("winMapWindowMultiWindow - pWin: %08x\n", pWin);
+ winDebug ("winMapWindowMultiWindow - pWin: %08x\n", pWin);
#endif
WIN_UNWRAP(RealizeWindow);
@@ -398,76 +399,23 @@ winReparentWindowMultiWindow(WindowPtr pWin, WindowPtr pPriorParent)
void
winRestackWindowMultiWindow(WindowPtr pWin, WindowPtr pOldNextSib)
{
-#if 0
- WindowPtr pPrevWin;
- UINT uFlags;
- HWND hInsertAfter;
- HWND hWnd = NULL;
-#endif
ScreenPtr pScreen = pWin->drawable.pScreen;
winScreenPriv(pScreen);
-#if CYGMULTIWINDOW_DEBUG || CYGWINDOWING_DEBUG
- winTrace("winRestackMultiWindow - %08x\n", pWin);
-#endif
+ winDebug ("winRestackMultiWindow - %08x\n", pWin);
WIN_UNWRAP(RestackWindow);
if (pScreen->RestackWindow)
(*pScreen->RestackWindow) (pWin, pOldNextSib);
WIN_WRAP(RestackWindow, winRestackWindowMultiWindow);
-#if 1
/*
* Calling winReorderWindowsMultiWindow here means our window manager
* (i.e. Windows Explorer) has initiative to determine Z order.
*/
if (pWin->nextSib != pOldNextSib)
winReorderWindowsMultiWindow();
-#else
- /* Bail out if no window privates or window handle is invalid */
- if (!pWinPriv || !pWinPriv->hWnd)
- return;
-
- /* Get a pointer to our previous sibling window */
- pPrevWin = pWin->prevSib;
-
- /*
- * Look for a sibling window with
- * valid privates and window handle
- */
- while (pPrevWin && !winGetWindowPriv(pPrevWin)
- && !winGetWindowPriv(pPrevWin)->hWnd)
- pPrevWin = pPrevWin->prevSib;
-
- /* Check if we found a valid sibling */
- if (pPrevWin) {
- /* Valid sibling - get handle to insert window after */
- hInsertAfter = winGetWindowPriv(pPrevWin)->hWnd;
- uFlags = SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE;
-
- hWnd = GetNextWindow(pWinPriv->hWnd, GW_HWNDPREV);
-
- do {
- if (GetProp(hWnd, WIN_WINDOW_PROP)) {
- if (hWnd == winGetWindowPriv(pPrevWin)->hWnd) {
- uFlags |= SWP_NOZORDER;
- }
- break;
- }
- hWnd = GetNextWindow(hWnd, GW_HWNDPREV);
- }
- while (hWnd);
- }
- else {
- /* No valid sibling - make this window the top window */
- hInsertAfter = HWND_TOP;
- uFlags = SWP_NOMOVE | SWP_NOSIZE;
- }
-
- /* Perform the restacking operation in Windows */
- SetWindowPos(pWinPriv->hWnd, hInsertAfter, 0, 0, 0, 0, uFlags);
-#endif
}
/*
@@ -502,15 +450,36 @@ winCreateWindowsWindow(WindowPtr pWin)
iHeight = pWin->drawable.height;
/* If it's an InputOutput window, and so is going to end up being made visible,
- make sure the window actually ends up somewhere where it will be visible */
+ make sure the window actually ends up somewhere where it will be visible
+ Dont't do it by making just one of the two iX and iY CW_USEDEFAULT since
+ this will create a window at place CW_USEDEFAULT which is 0x80000000 */
if (pWin->drawable.class != InputOnly) {
- if ((iX < GetSystemMetrics(SM_XVIRTUALSCREEN)) ||
- (iX > GetSystemMetrics(SM_CXVIRTUALSCREEN)))
- iX = CW_USEDEFAULT;
-
- if ((iY < GetSystemMetrics(SM_YVIRTUALSCREEN)) ||
- (iY > GetSystemMetrics(SM_CYVIRTUALSCREEN)))
- iY = CW_USEDEFAULT;
+ while (1) {
+ if (iX < GetSystemMetrics (SM_XVIRTUALSCREEN)) {
+ iX = GetSystemMetrics (SM_XVIRTUALSCREEN);
+ ErrorF("Resetting iX to %d\n",iX);
+ }
+ else if (iX > GetSystemMetrics (SM_CXVIRTUALSCREEN))
+ {
+ iX = GetSystemMetrics (SM_CXVIRTUALSCREEN)-iWidth;
+ ErrorF("Resetting iX to %d\n",iX);
+ }
+ else
+ break;
+ }
+
+ while (1) {
+ if (iY < GetSystemMetrics (SM_YVIRTUALSCREEN)) {
+ iY = GetSystemMetrics (SM_YVIRTUALSCREEN);
+ ErrorF("Resetting iY to %d\n",iY);
+ }
+ else if (iY > GetSystemMetrics (SM_CYVIRTUALSCREEN)) {
+ iY = GetSystemMetrics (SM_CYVIRTUALSCREEN)-iHeight;
+ ErrorF("Resetting iY to %d\n",iY);
+ }
+ else
+ break;
+ }
}
winDebug("winCreateWindowsWindow - %dx%d @ %dx%d\n", iWidth, iHeight, iX,
@@ -577,16 +546,20 @@ winCreateWindowsWindow(WindowPtr pWin)
}
pWinPriv->hWnd = hWnd;
+ /* If we asked the native WM to place the window, synchronize the X window position.
+ Do this before the next SetWindowPos because this one is generating a WM_STYLECHANGED
+ message which is causing a window move, which is wrong if the Xwindow does not
+ have the correct coordinates yet */
+ if (iX == CW_USEDEFAULT) {
+ winAdjustXWindow(pWin, hWnd);
+ }
/* Change style back to popup, already placed... */
SetWindowLongPtr(hWnd, GWL_STYLE,
WS_POPUP | WS_CLIPCHILDREN | WS_CLIPSIBLINGS);
SetWindowPos(hWnd, 0, 0, 0, 0, 0,
SWP_FRAMECHANGED | SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE |
SWP_NOACTIVATE);
-
- /* Adjust the X window to match the window placement we actually got... */
- winAdjustXWindow(pWin, hWnd);
-
+
/* Make sure it gets the proper system menu for a WS_POPUP, too */
GetSystemMenu(hWnd, TRUE);
@@ -670,7 +643,7 @@ winUpdateWindowsWindow(WindowPtr pWin)
HWND hWnd = pWinPriv->hWnd;
#if CYGMULTIWINDOW_DEBUG
- ErrorF("winUpdateWindowsWindow\n");
+ winDebug("winUpdateWindowsWindow\n");
#endif
/* Check if the Windows window's parents have been destroyed */
@@ -689,13 +662,44 @@ winUpdateWindowsWindow(WindowPtr pWin)
UpdateWindow(pWinPriv->hWnd);
}
else if (hWnd != NULL) {
- /* Destroy the Windows window if its parents are destroyed */
- winDestroyWindowsWindow(pWin);
- assert(pWinPriv->hWnd == NULL);
+ if (pWinPriv->fWglUsed) {
+ /* We do not need to destroy the window but to reparent it and move it to the
+ correct place when it is an opengl window */
+ int offsetx;
+ int offsety;
+ HWND hParentWnd;
+ WindowPtr pParent=pWin->parent;
+
+ while (pParent) {
+ winWindowPriv(pParent);
+ hParentWnd=pWinPriv->hWnd;
+ if (hParentWnd)
+ break;
+ pParent=pParent->parent;
+ }
+
+ if (pParent) {
+ offsetx=pParent->drawable.x;
+ offsety=pParent->drawable.y;
+ }
+ else {
+ offsetx=0;
+ offsety=0;
+ }
+ winDebug ("-winUpdateWindowsWindow: %x changing parent to %x and moving to %d,%d\n",pWinPriv->hWnd,hParentWnd,pWin->drawable.x-offsetx,pWin->drawable.y-offsety);
+ SetParent(pWinPriv->hWnd,hParentWnd);
+ SetWindowPos(pWinPriv->hWnd,NULL,pWin->drawable.x-offsetx,pWin->drawable.y-offsety,0,0,SWP_NOSIZE|SWP_NOZORDER|SWP_SHOWWINDOW);
+ }
+ else {
+ /* Destroy the Windows window if its parents are destroyed */
+ /* First check if we need to release the DC when it is an opengl window */
+ winDestroyWindowsWindow (pWin);
+ assert (pWinPriv->hWnd == NULL);
+ }
}
#if CYGMULTIWINDOW_DEBUG
- ErrorF("-winUpdateWindowsWindow\n");
+ winDebug ("-winUpdateWindowsWindow\n");
#endif
}
@@ -713,7 +717,7 @@ winGetWindowID(WindowPtr pWin)
FindClientResourcesByType(c, RT_WINDOW, winFindWindow, &wi);
#if CYGMULTIWINDOW_DEBUG
- ErrorF("winGetWindowID - Window ID: %d\n", wi.id);
+ winDebug("winGetWindowID - Window ID: %d\n", wi.id);
#endif
return wi.id;
@@ -748,16 +752,12 @@ winReorderWindowsMultiWindow(void)
DWORD dwCurrentProcessID = GetCurrentProcessId();
DWORD dwWindowProcessID = 0;
-#if CYGMULTIWINDOW_DEBUG || CYGWINDOWING_DEBUG
- winTrace("winReorderWindowsMultiWindow\n");
-#endif
+ winDebug("winReorderWindowsMultiWindow\n");
if (fRestacking) {
/* It is a recusive call so immediately exit */
-#if CYGWINDOWING_DEBUG
- ErrorF("winReorderWindowsMultiWindow - "
+ winDebug("winReorderWindowsMultiWindow - "
"exit because fRestacking == TRUE\n");
-#endif
return;
}
fRestacking = TRUE;
@@ -809,9 +809,7 @@ winMinimizeWindow(Window id)
ScreenPtr pScreen = NULL;
winPrivScreenPtr pScreenPriv = NULL;
-#if CYGWINDOWING_DEBUG
- ErrorF("winMinimizeWindow\n");
-#endif
+ winDebug("winMinimizeWindow\n");
dixLookupResourceByType((pointer) &pWin, id, RT_WINDOW, NullClient,
DixUnknownAccess);
@@ -824,7 +822,7 @@ winMinimizeWindow(Window id)
if (pScreen)
pScreenPriv = winGetScreenPriv(pScreen);
-#ifdef XWIN_MULTIWINDOWEXTWM
+#ifdef XWIN_MULTIWINDOWINTWM
if (pScreenPriv && pScreenPriv->pScreenInfo->fInternalWM) {
pRLWinPriv =
(win32RootlessWindowPtr) RootlessFrameForWindow(pWin, FALSE);
@@ -852,9 +850,8 @@ winCopyWindowMultiWindow(WindowPtr pWin, DDXPointRec oldpt, RegionPtr oldRegion)
winScreenPriv(pScreen);
-#if CYGWINDOWING_DEBUG
- ErrorF("CopyWindowMultiWindow\n");
-#endif
+ winDebug("CopyWindowMultiWindow\n");
+
WIN_UNWRAP(CopyWindow);
(*pScreen->CopyWindow) (pWin, oldpt, oldRegion);
WIN_WRAP(CopyWindow, winCopyWindowMultiWindow);
@@ -871,9 +868,7 @@ winMoveWindowMultiWindow(WindowPtr pWin, int x, int y,
winScreenPriv(pScreen);
-#if CYGWINDOWING_DEBUG
- ErrorF("MoveWindowMultiWindow to (%d, %d)\n", x, y);
-#endif
+ winDebug("MoveWindowMultiWindow to (%d, %d)\n", x, y);
WIN_UNWRAP(MoveWindow);
(*pScreen->MoveWindow) (pWin, x, y, pSib, kind);
@@ -891,9 +886,8 @@ winResizeWindowMultiWindow(WindowPtr pWin, int x, int y, unsigned int w,
winScreenPriv(pScreen);
-#if CYGWINDOWING_DEBUG
- ErrorF("ResizeWindowMultiWindow to (%d, %d) - %dx%d\n", x, y, w, h);
-#endif
+ winDebug("ResizeWindowMultiWindow to (%d, %d) - %dx%d\n", x, y, w, h);
+
WIN_UNWRAP(ResizeWindow);
(*pScreen->ResizeWindow) (pWin, x, y, w, h, pSib);
WIN_WRAP(ResizeWindow, winResizeWindowMultiWindow);
@@ -922,14 +916,10 @@ winAdjustXWindow(WindowPtr pWin, HWND hwnd)
#define WIDTH(rc) (rc.right - rc.left)
#define HEIGHT(rc) (rc.bottom - rc.top)
-#if CYGWINDOWING_DEBUG
- ErrorF("winAdjustXWindow\n");
-#endif
+ winDebug("winAdjustXWindow\n");
if (IsIconic(hwnd)) {
-#if CYGWINDOWING_DEBUG
- ErrorF("\timmediately return because the window is iconized\n");
-#endif
+ winDebug("\timmediately return because the window is iconized\n");
/*
* If the Windows window is minimized, its WindowRect has
* meaningless values so we don't adjust X window to it.
@@ -945,34 +935,26 @@ winAdjustXWindow(WindowPtr pWin, HWND hwnd)
x = pDraw->x + GetSystemMetrics(SM_XVIRTUALSCREEN);
y = pDraw->y + GetSystemMetrics(SM_YVIRTUALSCREEN);
SetRect(&rcDraw, x, y, x + pDraw->width, y + pDraw->height);
-#ifdef CYGMULTIWINDOW_DEBUG
winDebug("\tDrawable extend {%d, %d, %d, %d}, {%d, %d}\n",
rcDraw.left, rcDraw.top, rcDraw.right, rcDraw.bottom,
rcDraw.right - rcDraw.left, rcDraw.bottom - rcDraw.top);
-#endif
dwExStyle = GetWindowLongPtr(hwnd, GWL_EXSTYLE);
dwStyle = GetWindowLongPtr(hwnd, GWL_STYLE);
-#ifdef CYGMULTIWINDOW_DEBUG
winDebug("\tWindowStyle: %08x %08x\n", dwStyle, dwExStyle);
-#endif
AdjustWindowRectEx(&rcDraw, dwStyle, FALSE, dwExStyle);
/* The source of adjust */
GetWindowRect(hwnd, &rcWin);
-#ifdef CYGMULTIWINDOW_DEBUG
winDebug("\tWindow extend {%d, %d, %d, %d}, {%d, %d}\n",
rcWin.left, rcWin.top, rcWin.right, rcWin.bottom,
rcWin.right - rcWin.left, rcWin.bottom - rcWin.top);
winDebug("\tDraw extend {%d, %d, %d, %d}, {%d, %d}\n",
rcDraw.left, rcDraw.top, rcDraw.right, rcDraw.bottom,
rcDraw.right - rcDraw.left, rcDraw.bottom - rcDraw.top);
-#endif
if (EqualRect(&rcDraw, &rcWin)) {
/* Bail if no adjust is needed */
-#if CYGWINDOWING_DEBUG
- ErrorF("\treturn because already adjusted\n");
-#endif
+ winDebug("\treturn because already adjusted\n");
return 0;
}
@@ -992,10 +974,8 @@ winAdjustXWindow(WindowPtr pWin, HWND hwnd)
vlist[1] = pDraw->y + dY - wBorderWidth(pWin);
vlist[2] = pDraw->width + dW;
vlist[3] = pDraw->height + dH;
-#if CYGWINDOWING_DEBUG
- ErrorF("\tConfigureWindow to (%ld, %ld) - %ldx%ld\n", vlist[0], vlist[1],
- vlist[2], vlist[3]);
-#endif
+ winDebug("\tConfigureWindow to (%ld, %ld) - %ldx%ld\n", vlist[0], vlist[1],
+ vlist[2], vlist[3]);
return ConfigureWindow(pWin, CWX | CWY | CWWidth | CWHeight,
vlist, wClient(pWin));
diff --git a/xorg-server/hw/xwin/winmultiwindowwm.c b/xorg-server/hw/xwin/winmultiwindowwm.c
index 1dd8ba5b3..2b619a2b6 100644
--- a/xorg-server/hw/xwin/winmultiwindowwm.c
+++ b/xorg-server/hw/xwin/winmultiwindowwm.c
@@ -43,12 +43,14 @@
#include <fcntl.h>
#include <setjmp.h>
#define HANDLE void *
+#ifdef _MSC_VER
+typedef int pid_t;
+#endif
#include <pthread.h>
#undef HANDLE
#include <X11/X.h>
#include <X11/Xatom.h>
#include <X11/Xlib.h>
-#include <X11/Xlocale.h>
#include <X11/Xproto.h>
#include <X11/Xutil.h>
#include <X11/cursorfont.h>
@@ -59,9 +61,12 @@
#include "winprefs.h"
#include "window.h"
#include "pixmapstr.h"
+#include "winmsg.h"
#include "windowstr.h"
+#include "winmultiwindowclass.h"
#ifdef XWIN_MULTIWINDOWEXTWM
+#define _WINDOWSWM_SERVER_
#include <X11/extensions/windowswmstr.h>
#else
/* We need the native HWND atom for intWM, so for consistency use the
@@ -73,10 +78,6 @@ extern void winDebug(const char *format, ...);
extern void winReshapeMultiWindow(WindowPtr pWin);
extern void winUpdateRgnMultiWindow(WindowPtr pWin);
-#ifndef CYGDEBUG
-#define CYGDEBUG NO
-#endif
-
/*
* Constant defines
*/
@@ -103,7 +104,9 @@ typedef struct _WMMsgQueueRec {
struct _WMMsgNodeRec *pTail;
pthread_mutex_t pmMutex;
pthread_cond_t pcNotEmpty;
+#ifdef _DEBUG
int nQueueSize;
+#endif
} WMMsgQueueRec, *WMMsgQueuePtr;
typedef struct _WMInfo {
@@ -112,7 +115,9 @@ typedef struct _WMInfo {
Atom atmWmProtos;
Atom atmWmDelete;
Atom atmPrivMap;
+#ifdef XWIN_MULTIWINDOWINTWM
Bool fAllowOtherWM;
+#endif
} WMInfoRec, *WMInfoPtr;
typedef struct _WMProcArgRec {
@@ -166,17 +171,15 @@ static int
static int
winMultiWindowXMsgProcIOErrorHandler(Display * pDisplay);
+static void
+winMultiWindowThreadExit(void *arg);
+
static int
winRedirectErrorHandler(Display * pDisplay, XErrorEvent * pErr);
static void
winInitMultiWindowWM(WMInfoPtr pWMInfo, WMProcArgPtr pProcArg);
-#if 0
-static void
- PreserveWin32Stack(WMInfoPtr pWMInfo, Window iWindow, UINT direction);
-#endif
-
static Bool
CheckAnotherWindowManager(Display * pDisplay, DWORD dwScreen,
@@ -224,46 +227,10 @@ PushMessage(WMMsgQueuePtr pQueue, WMMsgNodePtr pNode)
pQueue->pHead = pNode;
}
-#if 0
- switch (pNode->msg.msg) {
- case WM_WM_MOVE:
- ErrorF("\tWM_WM_MOVE\n");
- break;
- case WM_WM_SIZE:
- ErrorF("\tWM_WM_SIZE\n");
- break;
- case WM_WM_RAISE:
- ErrorF("\tWM_WM_RAISE\n");
- break;
- case WM_WM_LOWER:
- ErrorF("\tWM_WM_LOWER\n");
- break;
- case WM_WM_MAP:
- ErrorF("\tWM_WM_MAP\n");
- break;
- case WM_WM_MAP2:
- ErrorF("\tWM_WM_MAP2\n");
- break;
- case WM_WM_MAP3:
- ErrorF("\tWM_WM_MAP3\n");
- break;
- case WM_WM_UNMAP:
- ErrorF("\tWM_WM_UNMAP\n");
- break;
- case WM_WM_KILL:
- ErrorF("\tWM_WM_KILL\n");
- break;
- case WM_WM_ACTIVATE:
- ErrorF("\tWM_WM_ACTIVATE\n");
- break;
- default:
- ErrorF("\tUnknown Message.\n");
- break;
- }
-#endif
-
+#ifdef _DEBUG
/* Increase the count of elements in the queue by one */
++(pQueue->nQueueSize);
+#endif
/* Release the queue mutex */
pthread_mutex_unlock(&pQueue->pmMutex);
@@ -272,7 +239,7 @@ PushMessage(WMMsgQueuePtr pQueue, WMMsgNodePtr pNode)
pthread_cond_signal(&pQueue->pcNotEmpty);
}
-#if CYGMULTIWINDOW_DEBUG
+#ifdef WINDBG
/*
* QueueSize - Return the size of the queue
*/
@@ -317,12 +284,12 @@ PopMessage(WMMsgQueuePtr pQueue, WMInfoPtr pWMInfo)
pQueue->pTail = NULL;
}
+ #ifdef _DEBUG
/* Drop the number of elements in the queue by one */
--(pQueue->nQueueSize);
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("Queue Size %d %d\n", pQueue->nQueueSize, QueueSize(pQueue));
-#endif
+ winDebug ("Queue Size %d %d\n", pQueue->nQueueSize, QueueSize(pQueue));
+ #endif
/* Release the queue mutex */
pthread_mutex_unlock(&pQueue->pmMutex);
@@ -368,24 +335,24 @@ InitQueue(WMMsgQueuePtr pQueue)
pQueue->pTail = NULL;
/* There are no elements initially */
+ #ifdef _DEBUG
pQueue->nQueueSize = 0;
-#if CYGMULTIWINDOW_DEBUG
winDebug("InitQueue - Queue Size %d %d\n", pQueue->nQueueSize,
QueueSize(pQueue));
-#endif
+ #endif
- winDebug("InitQueue - Calling pthread_mutex_init\n");
+ winDebug ("InitQueue - Calling pthread_mutex_init\n");
/* Create synchronization objects */
pthread_mutex_init(&pQueue->pmMutex, NULL);
- winDebug("InitQueue - pthread_mutex_init returned\n");
- winDebug("InitQueue - Calling pthread_cond_init\n");
+ winDebug ("InitQueue - pthread_mutex_init returned\n");
+ winDebug ("InitQueue - Calling pthread_cond_init\n");
pthread_cond_init(&pQueue->pcNotEmpty, NULL);
- winDebug("InitQueue - pthread_cond_init returned\n");
+ winDebug ("InitQueue - pthread_cond_init returned\n");
return TRUE;
}
@@ -431,9 +398,7 @@ GetWindowName(Display * pDisplay, Window iWin, char **ppWindowName)
XTextProperty xtpWindowName;
char *pszWindowName;
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("GetWindowName\n");
-#endif
+ winDebug ("GetWindowName\n");
/* Intialize ppWindowName to NULL */
*ppWindowName = NULL;
@@ -441,9 +406,7 @@ GetWindowName(Display * pDisplay, Window iWin, char **ppWindowName)
/* Try to get window name */
nResult = XGetWMName(pDisplay, iWin, &xtpWindowName);
if (!nResult || !xtpWindowName.value || !xtpWindowName.nitems) {
-#if CYGMULTIWINDOW_DEBUG
ErrorF("GetWindowName - XGetWMName failed. No name.\n");
-#endif
return;
}
@@ -680,21 +643,23 @@ winMultiWindowWMProc(void *pArg)
WMProcArgPtr pProcArg = (WMProcArgPtr) pArg;
WMInfoPtr pWMInfo = pProcArg->pWMInfo;
+ pthread_cleanup_push(&winMultiWindowThreadExit, NULL);
+
/* Initialize the Window Manager */
winInitMultiWindowWM(pWMInfo, pProcArg);
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winMultiWindowWMProc ()\n");
-#endif
+ winDebug ("winMultiWindowWMProc ()\n");
/* Loop until we explicitly break out */
for (;;) {
WMMsgNodePtr pNode;
+#ifdef XWIN_MULTIWINDOWINTWM
if (g_fAnotherWMRunning) { /* Another Window manager exists. */
Sleep(1000);
continue;
}
+#endif
/* Pop a message off of our queue */
pNode = PopMessage(&pWMInfo->wmMsgQueue, pWMInfo);
@@ -705,47 +670,26 @@ winMultiWindowWMProc(void *pArg)
pthread_exit(NULL);
}
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winMultiWindowWMProc - %d ms MSG: %d ID: %d\n",
- GetTickCount(), (int) pNode->msg.msg, (int) pNode->msg.dwID);
-#endif
+ winDebug ("winMultiWindowWMProc - %d ms MSG: %d ID: %d\n",
+ GetTickCount(), (int) pNode->msg.msg, (int) pNode->msg.dwID);
/* Branch on the message type */
switch (pNode->msg.msg) {
-#if 0
- case WM_WM_MOVE:
- ErrorF("\tWM_WM_MOVE\n");
- break;
-
- case WM_WM_SIZE:
- ErrorF("\tWM_WM_SIZE\n");
- break;
-#endif
-
case WM_WM_RAISE:
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("\tWM_WM_RAISE\n");
-#endif
+ winDebug ("\tWM_WM_RAISE\n");
/* Raise the window */
XRaiseWindow(pWMInfo->pDisplay, pNode->msg.iWindow);
-#if 0
- PreserveWin32Stack(pWMInfo, pNode->msg.iWindow, GW_HWNDPREV);
-#endif
break;
case WM_WM_LOWER:
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("\tWM_WM_LOWER\n");
-#endif
+ winDebug ("\tWM_WM_LOWER\n");
/* Lower the window */
XLowerWindow(pWMInfo->pDisplay, pNode->msg.iWindow);
break;
case WM_WM_MAP:
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("\tWM_WM_MAP\n");
-#endif
+ winDebug ("\tWM_WM_MAP\n");
/* Put a note as to the HWND associated with this Window */
XChangeProperty(pWMInfo->pDisplay, pNode->msg.iWindow, pWMInfo->atmPrivMap, XA_INTEGER,
32,
@@ -756,9 +700,8 @@ winMultiWindowWMProc(void *pArg)
break;
case WM_WM_MAP2:
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("\tWM_WM_MAP2\n");
-#endif
+ winDebug ("\tWM_WM_MAP2\n");
+
XChangeProperty(pWMInfo->pDisplay, pNode->msg.iWindow, pWMInfo->atmPrivMap, XA_INTEGER,
32,
PropModeReplace,
@@ -766,9 +709,8 @@ winMultiWindowWMProc(void *pArg)
break;
case WM_WM_MAP3:
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("\tWM_WM_MAP3\n");
-#endif
+ winDebug ("\tWM_WM_MAP3\n");
+
/* Put a note as to the HWND associated with this Window */
XChangeProperty(pWMInfo->pDisplay, pNode->msg.iWindow, pWMInfo->atmPrivMap, XA_INTEGER,
32,
@@ -792,18 +734,14 @@ winMultiWindowWMProc(void *pArg)
break;
case WM_WM_UNMAP:
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("\tWM_WM_UNMAP\n");
-#endif
+ winDebug ("\tWM_WM_UNMAP\n");
/* Unmap the window */
XUnmapWindow(pWMInfo->pDisplay, pNode->msg.iWindow);
break;
case WM_WM_KILL:
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("\tWM_WM_KILL\n");
-#endif
+ winDebug ("\tWM_WM_KILL\n");
{
int i, n, found = 0;
Atom *protocols;
@@ -829,9 +767,7 @@ winMultiWindowWMProc(void *pArg)
break;
case WM_WM_ACTIVATE:
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("\tWM_WM_ACTIVATE\n");
-#endif
+ winDebug ("\tWM_WM_ACTIVATE\n");
/* Set the input focus */
XSetInputFocus(pWMInfo->pDisplay,
@@ -887,9 +823,10 @@ winMultiWindowWMProc(void *pArg)
/* Free the passed-in argument */
free(pProcArg);
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("-winMultiWindowWMProc ()\n");
-#endif
+ winDebug("-winMultiWindowWMProc ()\n");
+
+ pthread_cleanup_pop(0);
+
return NULL;
}
@@ -913,6 +850,8 @@ winMultiWindowXMsgProc(void *pArg)
int iReturn;
XIconSize *xis;
+ pthread_cleanup_push(&winMultiWindowThreadExit, NULL);
+
winDebug("winMultiWindowXMsgProc - Hello\n");
/* Check that argument pointer is not invalid */
@@ -921,7 +860,7 @@ winMultiWindowXMsgProc(void *pArg)
pthread_exit(NULL);
}
- ErrorF("winMultiWindowXMsgProc - Calling pthread_mutex_lock ()\n");
+ winDebug("winMultiWindowXMsgProc - Calling pthread_mutex_lock ()\n");
/* Grab the server started mutex - pause until we get it */
iReturn = pthread_mutex_lock(pProcArg->ppmServerStarted);
@@ -931,23 +870,12 @@ winMultiWindowXMsgProc(void *pArg)
pthread_exit(NULL);
}
- ErrorF("winMultiWindowXMsgProc - pthread_mutex_lock () returned.\n");
-
- /* Allow multiple threads to access Xlib */
- if (XInitThreads() == 0) {
- ErrorF("winMultiWindowXMsgProc - XInitThreads () failed. Exiting.\n");
- pthread_exit(NULL);
- }
-
- /* See if X supports the current locale */
- if (XSupportsLocale() == False) {
- ErrorF("winMultiWindowXMsgProc - Warning: locale not supported by X\n");
- }
+ winDebug("winMultiWindowXMsgProc - pthread_mutex_lock () returned.\n");
/* Release the server started mutex */
pthread_mutex_unlock(pProcArg->ppmServerStarted);
- ErrorF("winMultiWindowXMsgProc - pthread_mutex_unlock () returned.\n");
+ winDebug("winMultiWindowXMsgProc - pthread_mutex_unlock () returned.\n");
/* Install our error handler */
XSetErrorHandler(winMultiWindowXMsgProcErrorHandler);
@@ -971,11 +899,10 @@ winMultiWindowXMsgProc(void *pArg)
}
/* Setup the display connection string x */
- snprintf(pszDisplay,
- 512, "127.0.0.1:%s.%d", display, (int) pProcArg->dwScreen);
+ winGetDisplayName(pszDisplay, (int)pProcArg->dwScreen);
/* Print the display connection string */
- ErrorF("winMultiWindowXMsgProc - DISPLAY=%s\n", pszDisplay);
+ winDebug("winMultiWindowXMsgProc - DISPLAY=%s\n", pszDisplay);
/* Use our generated cookie for authentication */
winSetAuthorization();
@@ -988,8 +915,8 @@ winMultiWindowXMsgProc(void *pArg)
/* Try to open the display */
pProcArg->pDisplay = XOpenDisplay(pszDisplay);
if (pProcArg->pDisplay == NULL) {
- ErrorF("winMultiWindowXMsgProc - Could not open display, try: %d, "
- "sleeping: %d\n", iRetries + 1, WIN_CONNECT_DELAY);
+ winDebug("winMultiWindowXMsgProc - Could not open display, try: %d, "
+ "sleeping: %d\n", iRetries + 1, WIN_CONNECT_DELAY);
++iRetries;
sleep(WIN_CONNECT_DELAY);
continue;
@@ -1006,15 +933,25 @@ winMultiWindowXMsgProc(void *pArg)
pthread_exit(NULL);
}
- ErrorF("winMultiWindowXMsgProc - XOpenDisplay () returned and "
- "successfully opened the display.\n");
+ winDebug("winMultiWindowXMsgProc - XOpenDisplay () returned and "
+ "successfully opened the display.\n");
/* Check if another window manager is already running */
+#ifdef XWIN_MULTIWINDOWINTWM
g_fAnotherWMRunning =
CheckAnotherWindowManager(pProcArg->pDisplay, pProcArg->dwScreen,
pProcArg->pWMInfo->fAllowOtherWM);
+#else
+ g_fAnotherWMRunning =
+ CheckAnotherWindowManager(pProcArg->pDisplay, pProcArg->dwScreen,
+ FALSE);
+#endif
- if (g_fAnotherWMRunning && !pProcArg->pWMInfo->fAllowOtherWM) {
+ if (g_fAnotherWMRunning
+#ifdef XWIN_MULTIWINDOWINTWM
+ && !pProcArg->pWMInfo->fAllowOtherWM
+#endif
+ ) {
ErrorF("winMultiWindowXMsgProc - "
"another window manager is running. Exiting.\n");
pthread_exit(NULL);
@@ -1056,6 +993,7 @@ winMultiWindowXMsgProc(void *pArg)
if (g_shutdown)
break;
+#ifdef XWIN_MULTIWINDOWINTWM
if (pProcArg->pWMInfo->fAllowOtherWM && !XPending(pProcArg->pDisplay)) {
if (CheckAnotherWindowManager
(pProcArg->pDisplay, pProcArg->dwScreen, TRUE)) {
@@ -1073,12 +1011,13 @@ winMultiWindowXMsgProc(void *pArg)
Sleep(500);
continue;
}
+#endif
/* Fetch next event */
XNextEvent(pProcArg->pDisplay, &event);
/* Branch on event type */
- if (event.type == CreateNotify) {
+ if (event.type == MapNotify /* CreateNotify */) {
XWindowAttributes attr;
XSelectInput(pProcArg->pDisplay,
@@ -1088,7 +1027,7 @@ winMultiWindowXMsgProc(void *pArg)
XGetWindowAttributes(pProcArg->pDisplay,
event.xcreatewindow.window, &attr);
- if (!attr.override_redirect)
+ if (!attr.override_redirect && attr.class != InputOnly)
XSetWindowBorderWidth(pProcArg->pDisplay,
event.xcreatewindow.window, 0);
}
@@ -1136,6 +1075,7 @@ winMultiWindowXMsgProc(void *pArg)
event_send.xreparent.parent = parent;
event_send.xreparent.x = attr.x;
event_send.xreparent.y = attr.y;
+ event_send.xreparent.override_redirect = False;
XSendEvent(event.xmap.display,
event.xmap.window,
@@ -1208,7 +1148,7 @@ winMultiWindowXMsgProc(void *pArg)
else if (event.type == ClientMessage
&& event.xclient.message_type == atmWmChange
&& event.xclient.data.l[0] == IconicState) {
- ErrorF("winMultiWindowXMsgProc - WM_CHANGE_STATE - IconicState\n");
+ winDebug("winMultiWindowXMsgProc - WM_CHANGE_STATE - IconicState\n");
memset(&msg, 0, sizeof(msg));
@@ -1220,7 +1160,7 @@ winMultiWindowXMsgProc(void *pArg)
}
XCloseDisplay(pProcArg->pDisplay);
- pthread_exit(NULL);
+ pthread_cleanup_pop(0);
return NULL;
}
@@ -1257,7 +1197,9 @@ winInitWM(void **ppWMInfo,
/* Set a return pointer to the Window Manager info structure */
*ppWMInfo = pWMInfo;
+#ifdef XWIN_MULTIWINDOWINTWM
pWMInfo->fAllowOtherWM = allowOtherWM;
+#endif
/* Setup the argument structure for the thread function */
pArg->dwScreen = dwScreen;
@@ -1288,9 +1230,7 @@ winInitWM(void **ppWMInfo,
return FALSE;
}
-#if CYGDEBUG || YES
winDebug("winInitWM - Returning.\n");
-#endif
return TRUE;
}
@@ -1314,7 +1254,7 @@ winInitMultiWindowWM(WMInfoPtr pWMInfo, WMProcArgPtr pProcArg)
pthread_exit(NULL);
}
- ErrorF("winInitMultiWindowWM - Calling pthread_mutex_lock ()\n");
+ winDebug("winInitMultiWindowWM - Calling pthread_mutex_lock ()\n");
/* Grab our garbage mutex to satisfy pthread_cond_wait */
iReturn = pthread_mutex_lock(pProcArg->ppmServerStarted);
@@ -1324,23 +1264,12 @@ winInitMultiWindowWM(WMInfoPtr pWMInfo, WMProcArgPtr pProcArg)
pthread_exit(NULL);
}
- ErrorF("winInitMultiWindowWM - pthread_mutex_lock () returned.\n");
-
- /* Allow multiple threads to access Xlib */
- if (XInitThreads() == 0) {
- ErrorF("winInitMultiWindowWM - XInitThreads () failed. Exiting.\n");
- pthread_exit(NULL);
- }
-
- /* See if X supports the current locale */
- if (XSupportsLocale() == False) {
- ErrorF("winInitMultiWindowWM - Warning: Locale not supported by X.\n");
- }
+ winDebug("winInitMultiWindowWM - pthread_mutex_lock () returned.\n");
/* Release the server started mutex */
pthread_mutex_unlock(pProcArg->ppmServerStarted);
- ErrorF("winInitMultiWindowWM - pthread_mutex_unlock () returned.\n");
+ winDebug("winInitMultiWindowWM - pthread_mutex_unlock () returned.\n");
/* Install our error handler */
XSetErrorHandler(winMultiWindowWMErrorHandler);
@@ -1364,11 +1293,10 @@ winInitMultiWindowWM(WMInfoPtr pWMInfo, WMProcArgPtr pProcArg)
}
/* Setup the display connection string x */
- snprintf(pszDisplay,
- 512, "127.0.0.1:%s.%d", display, (int) pProcArg->dwScreen);
+ winGetDisplayName(pszDisplay, (int)pProcArg->dwScreen);
/* Print the display connection string */
- ErrorF("winInitMultiWindowWM - DISPLAY=%s\n", pszDisplay);
+ winDebug("winInitMultiWindowWM - DISPLAY=%s\n", pszDisplay);
/* Use our generated cookie for authentication */
winSetAuthorization();
@@ -1396,8 +1324,8 @@ winInitMultiWindowWM(WMInfoPtr pWMInfo, WMProcArgPtr pProcArg)
pthread_exit(NULL);
}
- ErrorF("winInitMultiWindowWM - XOpenDisplay () returned and "
- "successfully opened the display.\n");
+ winDebug("winInitMultiWindowWM - XOpenDisplay () returned and "
+ "successfully opened the display.\n");
/* Create some atoms */
pWMInfo->atmWmProtos = XInternAtom(pWMInfo->pDisplay,
@@ -1428,9 +1356,7 @@ winSendMessageToWM(void *pWMInfo, winWMMessagePtr pMsg)
{
WMMsgNodePtr pNode;
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winSendMessageToWM ()\n");
-#endif
+ winDebug("winSendMessageToWM ()\n");
pNode = (WMMsgNodePtr) malloc(sizeof(WMMsgNodeRec));
if (pNode != NULL) {
@@ -1456,7 +1382,18 @@ winMultiWindowWMErrorHandler(Display * pDisplay, XErrorEvent * pErr)
}
XGetErrorText(pDisplay, pErr->error_code, pszErrorMsg, sizeof(pszErrorMsg));
- ErrorF("winMultiWindowWMErrorHandler - ERROR: %s\n", pszErrorMsg);
+ ErrorF("winMultiWindowWMErrorHandler - ERROR: %s\n"
+ " errorCode %d\n"
+ " serial %d\n"
+ " resourceID 0x%x\n"
+ " majorCode %d\n"
+ " minorCode %d\n"
+ , pszErrorMsg
+ , pErr->error_code
+ , pErr->serial
+ , pErr->resourceid
+ , pErr->request_code
+ , pErr->minor_code);
return 0;
}
@@ -1494,9 +1431,18 @@ winMultiWindowXMsgProcErrorHandler(Display * pDisplay, XErrorEvent * pErr)
char pszErrorMsg[100];
XGetErrorText(pDisplay, pErr->error_code, pszErrorMsg, sizeof(pszErrorMsg));
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winMultiWindowXMsgProcErrorHandler - ERROR: %s\n", pszErrorMsg);
-#endif
+ ErrorF("winMultiWindowXMsgProcErrorHandler - ERROR: %s\n"
+ " errorCode %d\n"
+ " serial %d\n"
+ " resourceID 0x%x\n"
+ " majorCode %d\n"
+ " minorCode %d\n"
+ , pszErrorMsg
+ , pErr->error_code
+ , pErr->serial
+ , pErr->resourceid
+ , pErr->request_code
+ , pErr->minor_code);
return 0;
}
@@ -1522,6 +1468,18 @@ winMultiWindowXMsgProcIOErrorHandler(Display * pDisplay)
}
/*
+ * winMultiWindowThreadExit - Thread exit handler
+ */
+
+static void
+winMultiWindowThreadExit(void *arg)
+{
+ AbortDDX(EXIT_ERR_ABORT);
+
+ /* multiwindow client thread has exited, stop server as well */
+ TerminateProcess(GetCurrentProcess(),1);
+}
+/*
* Catch RedirectError to detect other window manager running
*/
@@ -1572,7 +1530,7 @@ CheckAnotherWindowManager(Display * pDisplay, DWORD dwScreen,
void
winDeinitMultiWindowWM(void)
{
- ErrorF("winDeinitMultiWindowWM - Noting shutdown in progress\n");
+ winDebug("winDeinitMultiWindowWM - Noting shutdown in progress\n");
g_shutdown = TRUE;
}
@@ -1601,7 +1559,9 @@ winApplyHints(Display * pDisplay, Window iWindow, HWND hWnd, HWND * zstyle)
int format;
unsigned long hint = 0, maxmin = 0, nitems = 0, left = 0;
unsigned long style, exStyle;
+ WindowPtr pWin = GetProp (hWnd, WIN_WINDOW_PROP);
MwmHints *mwm_hint = NULL;
+ WinXSizeHints SizeHints;
if (!hWnd)
return;
@@ -1728,17 +1688,18 @@ winApplyHints(Display * pDisplay, Window iWindow, HWND hWnd, HWND * zstyle)
*/
{
XClassHint class_hint = { 0, 0 };
- char *window_name = 0;
char *application_id = 0;
if (XGetClassHint(pDisplay, iWindow, &class_hint)) {
+ char *window_name = 0;
+ char *application_id = 0;
XFetchName(pDisplay, iWindow, &window_name);
style =
winOverrideStyle(class_hint.res_name, class_hint.res_class,
window_name);
-#define APPLICATION_ID_FORMAT "%s.xwin.%s"
+#define APPLICATION_ID_FORMAT "%s.vcxsrv.%s"
#define APPLICATION_ID_UNKNOWN "unknown"
if (class_hint.res_class) {
asprintf(&application_id, APPLICATION_ID_FORMAT, XVENDORNAME,
@@ -1784,12 +1745,10 @@ winApplyHints(Display * pDisplay, Window iWindow, HWND hWnd, HWND * zstyle)
HINT_SIZEBOX;
else if (style & STYLE_OUTLINE)
hint =
- (hint & ~HINT_NOFRAME & ~HINT_SIZEBOX & ~HINT_CAPTION) |
- HINT_BORDER;
+ (hint & ~HINT_NOFRAME & ~HINT_CAPTION) | HINT_BORDER;
else if (style & STYLE_NOFRAME)
hint =
- (hint & ~HINT_BORDER & ~HINT_CAPTION & ~HINT_SIZEBOX) |
- HINT_NOFRAME;
+ (hint & ~HINT_BORDER & ~HINT_CAPTION) | HINT_NOFRAME;
/* Now apply styles to window */
style = GetWindowLongPtr(hWnd, GWL_STYLE);
@@ -1799,7 +1758,7 @@ winApplyHints(Display * pDisplay, Window iWindow, HWND hWnd, HWND * zstyle)
style &= ~WS_CAPTION & ~WS_SIZEBOX; /* Just in case */
if (!(hint & ~HINT_SKIPTASKBAR)) /* No hints, default */
- style = style | WS_CAPTION | WS_SIZEBOX;
+ style = style | WS_CAPTION;
else if (hint & HINT_NOFRAME) /* No frame, no decorations */
style = style & ~WS_CAPTION & ~WS_SIZEBOX;
else
@@ -1819,6 +1778,19 @@ winApplyHints(Display * pDisplay, Window iWindow, HWND hWnd, HWND * zstyle)
if (hint & HINT_SKIPTASKBAR)
style = style & ~WS_MINIMIZEBOX; /* window will become lost if minimized */
+ if (!IsWindow (hWnd))
+ {
+ ErrorF("Windows window 0x%x has become invalid, so returning without applying hints\n",hWnd);
+ return;
+ }
+
+ if (winMultiWindowGetWMNormalHints(pWin, &SizeHints))
+ {
+ if (!(SizeHints.max_width&&SizeHints.max_height&&(SizeHints.min_width == SizeHints.max_width)&&(SizeHints.min_height == SizeHints.max_height) ))
+ style|=WS_SIZEBOX;
+ }
+ else
+ style|=WS_SIZEBOX;
SetWindowLongPtr(hWnd, GWL_STYLE, style);
exStyle = GetWindowLongPtr(hWnd, GWL_EXSTYLE);
@@ -1859,9 +1831,6 @@ winUpdateWindowPosition(HWND hWnd, HWND * zstyle)
/* Setup a rectangle with the X window position and size */
SetRect(&rcNew, iX, iY, iX + iWidth, iY + iHeight);
- winDebug("winUpdateWindowPosition - drawable extent (%d, %d)-(%d, %d)\n",
- rcNew.left, rcNew.top, rcNew.right, rcNew.bottom);
-
AdjustWindowRectEx(&rcNew, GetWindowLongPtr(hWnd, GWL_STYLE), FALSE,
GetWindowLongPtr(hWnd, GWL_EXSTYLE));
@@ -1878,9 +1847,6 @@ winUpdateWindowPosition(HWND hWnd, HWND * zstyle)
rcNew.bottom += iDy;
}
- winDebug("winUpdateWindowPosition - Window extent (%d, %d)-(%d, %d)\n",
- rcNew.left, rcNew.top, rcNew.right, rcNew.bottom);
-
/* Position the Windows window */
SetWindowPos(hWnd, *zstyle, rcNew.left, rcNew.top,
rcNew.right - rcNew.left, rcNew.bottom - rcNew.top, 0);
diff --git a/xorg-server/hw/xwin/winmultiwindowwndproc.c b/xorg-server/hw/xwin/winmultiwindowwndproc.c
index abb87ee4b..9ca27e5ff 100644
--- a/xorg-server/hw/xwin/winmultiwindowwndproc.c
+++ b/xorg-server/hw/xwin/winmultiwindowwndproc.c
@@ -35,6 +35,10 @@
#ifdef HAVE_XWIN_CONFIG_H
#include <xwin-config.h>
#endif
+#define GC tempGC // This is to avoid name conflicts when including the next headers which also define GC
+#include <X11/Xutil.h>
+#undef GC
+
#include "win.h"
#include "dixevents.h"
#include "winmultiwindowclass.h"
@@ -44,6 +48,14 @@
extern void winUpdateWindowPosition(HWND hWnd, HWND * zstyle);
+#ifdef XKB
+#ifndef XKB_IN_SERVER
+#define XKB_IN_SERVER
+#endif
+#include <xkbsrv.h>
+#endif
+
+
/*
* Local globals
*/
@@ -316,11 +328,10 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
static Bool s_fTracking = FALSE;
Bool needRestack = FALSE;
LRESULT ret;
+ static Bool hasEnteredSizeMove = FALSE;
-#if CYGDEBUG
winDebugWin32Message("winTopLevelWindowProc", hwnd, message, wParam,
lParam);
-#endif
/* Check if the Windows window property for our X window pointer is valid */
if ((pWin = GetProp(hwnd, WIN_WINDOW_PROP)) != NULL) {
@@ -352,32 +363,13 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
fWMMsgInitialized = TRUE;
-#if 0
- /*
- * Print some debugging information
- */
-
- ErrorF("hWnd %08X\n", hwnd);
- ErrorF("pWin %08X\n", pWin);
- ErrorF("pDraw %08X\n", pDraw);
- ErrorF("\ttype %08X\n", pWin->drawable.type);
- ErrorF("\tclass %08X\n", pWin->drawable.class);
- ErrorF("\tdepth %08X\n", pWin->drawable.depth);
- ErrorF("\tbitsPerPixel %08X\n", pWin->drawable.bitsPerPixel);
- ErrorF("\tid %08X\n", pWin->drawable.id);
- ErrorF("\tx %08X\n", pWin->drawable.x);
- ErrorF("\ty %08X\n", pWin->drawable.y);
- ErrorF("\twidth %08X\n", pWin->drawable.width);
- ErrorF("\thenght %08X\n", pWin->drawable.height);
- ErrorF("\tpScreen %08X\n", pWin->drawable.pScreen);
- ErrorF("\tserialNumber %08X\n", pWin->drawable.serialNumber);
- ErrorF("g_iWindowPrivateKey %p\n", g_iWindowPrivateKey);
- ErrorF("pWinPriv %08X\n", pWinPriv);
- ErrorF("s_pScreenPriv %08X\n", s_pScreenPriv);
- ErrorF("s_pScreenInfo %08X\n", s_pScreenInfo);
- ErrorF("hwndScreen %08X\n", hwndScreen);
-#endif
}
+ #ifdef _DEBUG
+ else if (message!=WM_CREATE)
+ {
+ winDebug("Warning: message 0x%x received when WIN_WINDOW_PROP NULL\n",message);
+ }
+ #endif
/* Branch on message type */
switch (message) {
@@ -409,10 +401,9 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
GetWindowRect(hwnd, &rWindow);
hRgnWindow = CreateRectRgnIndirect(&rWindow);
SetWindowRgn(hwnd, hRgnWindow, TRUE);
- DeleteObject(hRgnWindow);
}
- SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR) XMING_SIGNATURE);
+ SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)VCXSRV_SIGNATURE);
return 0;
@@ -593,6 +584,9 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
break;
case WM_MOUSELEAVE:
+ /* We can't do anything without privates */
+ if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
+ break;
/* Mouse has left our client area */
/* Flag that we are no longer tracking */
@@ -756,7 +750,7 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (wParam == VK_F4 && (GetKeyState(VK_MENU) & 0x8000))
break;
-#if CYGWINDOWING_DEBUG
+#ifdef WINDBG
if (wParam == VK_ESCAPE) {
/* Place for debug: put any tests and dumps here */
WINDOWPLACEMENT windPlace;
@@ -766,25 +760,25 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
windPlace.length = sizeof(WINDOWPLACEMENT);
GetWindowPlacement(hwnd, &windPlace);
pRect = &windPlace.rcNormalPosition;
- ErrorF("\nCYGWINDOWING Dump:\n"
+ winDebug ("\nCYGWINDOWING Dump:\n"
"\tdrawable: (%hd, %hd) - %hdx%hd\n", pDraw->x,
pDraw->y, pDraw->width, pDraw->height);
- ErrorF("\twindPlace: (%ld, %ld) - %ldx%ld\n", pRect->left,
- pRect->top, pRect->right - pRect->left,
- pRect->bottom - pRect->top);
+ winDebug ("\twindPlace: (%ld, %ld) - %ldx%ld\n", pRect->left,
+ pRect->top, pRect->right - pRect->left,
+ pRect->bottom - pRect->top);
if (GetClientRect(hwnd, &rc)) {
pRect = &rc;
- ErrorF("\tClientRect: (%ld, %ld) - %ldx%ld\n", pRect->left,
- pRect->top, pRect->right - pRect->left,
- pRect->bottom - pRect->top);
+ winDebug ("\tClientRect: (%ld, %ld) - %ldx%ld\n", pRect->left,
+ pRect->top, pRect->right - pRect->left,
+ pRect->bottom - pRect->top);
}
if (GetWindowRect(hwnd, &rc)) {
pRect = &rc;
- ErrorF("\tWindowRect: (%ld, %ld) - %ldx%ld\n", pRect->left,
- pRect->top, pRect->right - pRect->left,
- pRect->bottom - pRect->top);
+ winDebug ("\tWindowRect: (%ld, %ld) - %ldx%ld\n", pRect->left,
+ pRect->top, pRect->right - pRect->left,
+ pRect->bottom - pRect->top);
}
- ErrorF("\n");
+ winDebug ("\n");
}
#endif
@@ -819,9 +813,8 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* Tell our Window Manager thread to activate the window */
wmMsg.msg = WM_WM_ACTIVATE;
- if (fWMMsgInitialized)
- if (!pWin || !pWin->overrideRedirect) /* for OOo menus */
- winSendMessageToWM(s_pScreenPriv->pWMInfo, &wmMsg);
+ if (fWMMsgInitialized && pWin->realized && !pWin->overrideRedirect /* for OOo menus */)
+ winSendMessageToWM (s_pScreenPriv->pWMInfo, &wmMsg);
}
/* Prevent the mouse wheel from stalling when another window is minimized */
if (HIWORD(wParam) == 0 && LOWORD(wParam) == WA_ACTIVE &&
@@ -856,7 +849,7 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* Branch on if the window was killed in X already */
if (pWinPriv && !pWinPriv->fXKilled) {
- ErrorF("winTopLevelWindowProc - WM_DESTROY - WM_WM_KILL\n");
+ winDebug ("winTopLevelWindowProc - WM_DESTROY - WM_WM_KILL\n");
/* Tell our Window Manager thread to kill the window */
wmMsg.msg = WM_WM_KILL;
@@ -872,7 +865,8 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
case WM_MOVE:
/* Adjust the X Window to the moved Windows window */
- winAdjustXWindow(pWin, hwnd);
+ if (!hasEnteredSizeMove) winAdjustXWindow (pWin, hwnd);
+ /* else: Wait for WM_EXITSIZEMOVE */
return 0;
case WM_SHOWWINDOW:
@@ -920,13 +914,10 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
else { /* It is an overridden window so make it top of Z stack */
HWND forHwnd = GetForegroundWindow();
-
-#if CYGWINDOWING_DEBUG
- ErrorF("overridden window is shown\n");
-#endif
+ winDebug ("overridden window is shown\n");
if (forHwnd != NULL) {
if (GetWindowLongPtr(forHwnd, GWLP_USERDATA) & (LONG_PTR)
- XMING_SIGNATURE) {
+ VCXSRV_SIGNATURE) {
if (GetWindowLongPtr(forHwnd, GWL_EXSTYLE) & WS_EX_TOPMOST)
SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
@@ -951,6 +942,26 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* for applications like xterm */
return ValidateSizing(hwnd, pWin, wParam, lParam);
+ case WM_WINDOWPOSCHANGING:
+ {
+ /*
+ When window is moved or resized, force it to be redrawn, so that
+ any OpenGL content is re-drawn correctly, rather than copying bits
+ (which seem to be wrong, either because we are copying the wrong
+ window in the window heirarchy, or because we don't have the bits
+ drawn by OpenGL at all)
+
+ XXX: really this should check if any child has fWglUsed set, but
+ that might be expensive to check....
+ */
+ if (g_fNativeGl)
+ {
+ LPWINDOWPOS pWinPos = (LPWINDOWPOS)lParam;
+ pWinPos->flags |= SWP_NOCOPYBITS;
+ }
+ }
+ break;
+
case WM_WINDOWPOSCHANGED:
{
LPWINDOWPOS pWinPos = (LPWINDOWPOS) lParam;
@@ -1005,9 +1016,19 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
*/
break;
+ case WM_ENTERSIZEMOVE:
+ hasEnteredSizeMove = TRUE;
+ return 0;
+
+ case WM_EXITSIZEMOVE:
+ /* Adjust the X Window to the moved Windows window */
+ hasEnteredSizeMove = FALSE;
+ winAdjustXWindow (pWin, hwnd);
+ return 0;
+
case WM_SIZE:
/* see dix/window.c */
-#if CYGWINDOWING_DEBUG
+#ifdef WINDBG
{
char buf[64];
@@ -1024,84 +1045,28 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
default:
strcpy(buf, "UNKNOWN_FLAG");
}
- ErrorF("winTopLevelWindowProc - WM_SIZE to %dx%d (%s) - %d ms\n",
- (int) LOWORD(lParam), (int) HIWORD(lParam), buf,
- (int) (GetTickCount()));
+ winDebug ("winTopLevelWindowProc - WM_SIZE to %dx%d (%s) - %d ms\n",
+ (int) LOWORD(lParam), (int) HIWORD(lParam), buf,
+ (int) (GetTickCount()));
}
#endif
- /* Adjust the X Window to the moved Windows window */
- winAdjustXWindow(pWin, hwnd);
- return 0; /* end of WM_SIZE handler */
-
- case WM_STYLECHANGING:
- /*
- When the style changes, adjust the Windows window size so the client area remains the same size,
- and adjust the Windows window position so that the client area remains in the same place.
- */
- {
- RECT newWinRect;
- DWORD dwExStyle;
- DWORD dwStyle;
- DWORD newStyle = ((STYLESTRUCT *) lParam)->styleNew;
- WINDOWINFO wi;
-
- dwExStyle = GetWindowLongPtr(hwnd, GWL_EXSTYLE);
- dwStyle = GetWindowLongPtr(hwnd, GWL_STYLE);
-
- winDebug("winTopLevelWindowProc - WM_STYLECHANGING from %08x %08x\n",
- dwStyle, dwExStyle);
-
- if (wParam == GWL_EXSTYLE)
- dwExStyle = newStyle;
-
- if (wParam == GWL_STYLE)
- dwStyle = newStyle;
-
- winDebug("winTopLevelWindowProc - WM_STYLECHANGING to %08x %08x\n",
- dwStyle, dwExStyle);
-
- /* Get client rect in screen coordinates */
- wi.cbSize = sizeof(WINDOWINFO);
- GetWindowInfo(hwnd, &wi);
-
- winDebug
- ("winTopLevelWindowProc - WM_STYLECHANGING client area {%d, %d, %d, %d}, {%d x %d}\n",
- wi.rcClient.left, wi.rcClient.top, wi.rcClient.right,
- wi.rcClient.bottom, wi.rcClient.right - wi.rcClient.left,
- wi.rcClient.bottom - wi.rcClient.top);
-
- newWinRect = wi.rcClient;
- if (!AdjustWindowRectEx(&newWinRect, dwStyle, FALSE, dwExStyle))
- winDebug
- ("winTopLevelWindowProc - WM_STYLECHANGING AdjustWindowRectEx failed\n");
-
- winDebug
- ("winTopLevelWindowProc - WM_STYLECHANGING window area should be {%d, %d, %d, %d}, {%d x %d}\n",
- newWinRect.left, newWinRect.top, newWinRect.right,
- newWinRect.bottom, newWinRect.right - newWinRect.left,
- newWinRect.bottom - newWinRect.top);
-
- /*
- Style change hasn't happened yet, so we can't adjust the window size yet, as the winAdjustXWindow()
- which WM_SIZE does will use the current (unchanged) style. Instead make a note to change it when
- WM_STYLECHANGED is received...
- */
- pWinPriv->hDwp = BeginDeferWindowPos(1);
- pWinPriv->hDwp =
- DeferWindowPos(pWinPriv->hDwp, hwnd, NULL, newWinRect.left,
- newWinRect.top, newWinRect.right - newWinRect.left,
- newWinRect.bottom - newWinRect.top,
- SWP_NOACTIVATE | SWP_NOZORDER);
+ if (!hasEnteredSizeMove)
+ {
+ /* Adjust the X Window to the moved Windows window */
+ winAdjustXWindow (pWin, hwnd);
+ if (wParam == SIZE_MINIMIZED) winReorderWindowsMultiWindow();
}
- return 0;
+ /* else: wait for WM_EXITSIZEMOVE */
+ return 0; /* end of WM_SIZE handler */
case WM_STYLECHANGED:
+ /* when the style changes, adjust the window size so the client area remains the same */
{
- if (pWinPriv->hDwp) {
- EndDeferWindowPos(pWinPriv->hDwp);
- pWinPriv->hDwp = NULL;
- }
- winDebug("winTopLevelWindowProc - WM_STYLECHANGED done\n");
+ LONG x,y;
+ DrawablePtr pDraw = &pWin->drawable;
+ x = pDraw->x - wBorderWidth(pWin);
+ y = pDraw->y - wBorderWidth(pWin);
+ winPositionWindowMultiWindow(pWin, x, y);
}
return 0;
@@ -1109,10 +1074,8 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* Check if this window needs to be made active when clicked */
if (!GetProp(pWinPriv->hWnd, WIN_NEEDMANAGE_PROP)) {
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winTopLevelWindowProc - WM_MOUSEACTIVATE - "
- "MA_NOACTIVATE\n");
-#endif
+ winDebug ("winTopLevelWindowProc - WM_MOUSEACTIVATE - "
+ "MA_NOACTIVATE\n");
/* */
return MA_NOACTIVATE;
diff --git a/xorg-server/hw/xwin/winnativegdi.c b/xorg-server/hw/xwin/winnativegdi.c
index a2a5123a0..3cd565313 100644
--- a/xorg-server/hw/xwin/winnativegdi.c
+++ b/xorg-server/hw/xwin/winnativegdi.c
@@ -109,7 +109,7 @@ winCloseScreenNativeGDI(ScreenPtr pScreen)
winScreenPriv(pScreen);
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
- ErrorF("winCloseScreenNativeGDI - Freeing screen resources\n");
+ winDebug ("winCloseScreenNativeGDI - Freeing screen resources\n");
/* Flag that the screen is closed */
pScreenPriv->fClosed = TRUE;
@@ -123,7 +123,7 @@ winCloseScreenNativeGDI(ScreenPtr pScreen)
/* Delete the window property */
RemoveProp(pScreenPriv->hwndScreen, WIN_SCR_PROP);
- ErrorF("winCloseScreenNativeGDI - Destroying window\n");
+ winDebug ("winCloseScreenNativeGDI - Destroying window\n");
/* Delete tray icon, if we have one */
if (!pScreenInfo->fNoTrayIcon)
@@ -147,7 +147,7 @@ winCloseScreenNativeGDI(ScreenPtr pScreen)
/* Free the screen privates for this screen */
free(pScreenPriv);
- ErrorF("winCloseScreenNativeGDI - Returning\n");
+ winDebug ("winCloseScreenNativeGDI - Returning\n");
return TRUE;
}
@@ -202,8 +202,8 @@ winInitVisualsNativeGDI(ScreenPtr pScreen)
}
/* Tell the user how many bits per RGB we are using */
- ErrorF("winInitVisualsNativeGDI - Using dwBitsPerRGB: %d\n",
- (int) pScreenPriv->dwBitsPerRGB);
+ winDebug ("winInitVisualsNativeGDI - Using dwBitsPerRGB: %d\n",
+ (int) pScreenPriv->dwBitsPerRGB);
/* Create a single visual according to the Windows screen depth */
switch (pScreenInfo->dwDepth) {
@@ -223,7 +223,7 @@ winInitVisualsNativeGDI(ScreenPtr pScreen)
break;
case 8:
- ErrorF("winInitVisuals - Calling miSetVisualTypesAndMasks\n");
+ winDebug ("winInitVisuals - Calling miSetVisualTypesAndMasks\n");
if (!miSetVisualTypesAndMasks(pScreenInfo->dwDepth,
StaticColorMask,
pScreenPriv->dwBitsPerRGB,
@@ -241,9 +241,7 @@ winInitVisualsNativeGDI(ScreenPtr pScreen)
return FALSE;
}
-#if 1
- ErrorF("winInitVisualsNativeGDI - Returning\n");
-#endif
+ winDebug ("winInitVisualsNativeGDI - Returning\n");
return TRUE;
}
@@ -359,11 +357,13 @@ winCreateDIBNativeGDI(int iWidth, int iHeight, int iDepth,
pbmih->biPlanes = 1;
pbmih->biBitCount = iDepth;
pbmih->biCompression = BI_RGB;
+ /*
pbmih->biSizeImage = 0;
pbmih->biXPelsPerMeter = 0;
pbmih->biYPelsPerMeter = 0;
pbmih->biClrUsed = 0;
pbmih->biClrImportant = 0;
+ */
/* Setup color table for mono DIBs */
if (iDepth == 1) {
diff --git a/xorg-server/hw/xwin/winpfbdd.c b/xorg-server/hw/xwin/winpfbdd.c
index f87000726..12f3b172f 100644
--- a/xorg-server/hw/xwin/winpfbdd.c
+++ b/xorg-server/hw/xwin/winpfbdd.c
@@ -73,7 +73,7 @@ winAllocateFBPrimaryDD(ScreenPtr pScreen)
DDSURFACEDESC *pddsdOffscreen = NULL;
RECT rcClient;
- ErrorF("winAllocateFBPrimaryDD\n");
+ winDebug ("winAllocateFBPrimaryDD\n");
/* Get client area location in screen coords */
GetClientRect(pScreenPriv->hwndScreen, &rcClient);
@@ -95,7 +95,7 @@ winAllocateFBPrimaryDD(ScreenPtr pScreen)
return FALSE;
}
- ErrorF("winAllocateFBPrimaryDD - Created and initialized DD\n");
+ winDebug ("winAllocateFBPrimaryDD - Created and initialized DD\n");
/* Are we windowed or fullscreen? */
if (pScreenInfo->fFullScreen) {
@@ -141,7 +141,7 @@ winAllocateFBPrimaryDD(ScreenPtr pScreen)
FatalError("winAllocateFBPrimaryDD - Could not create primary "
"surface %08x\n", (unsigned int) ddrval);
- ErrorF("winAllocateFBPrimaryDD - Created primary\n");
+ winDebug ("winAllocateFBPrimaryDD - Created primary\n");
/* Allocate a DD surface description for our screen privates */
pddsdPrimary = pScreenPriv->pddsdPrimary = malloc(sizeof(DDSURFACEDESC));
@@ -175,7 +175,7 @@ winAllocateFBPrimaryDD(ScreenPtr pScreen)
FatalError("winAllocateFBPrimaryDD - Could not create shadow "
"surface\n");
- ErrorF("winAllocateFBPrimaryDD - Created offscreen\n");
+ winDebug ("winAllocateFBPrimaryDD - Created offscreen\n");
/* Allocate a DD surface description for our screen privates */
pddsdOffscreen = pScreenPriv->pddsdOffscreen
@@ -186,7 +186,7 @@ winAllocateFBPrimaryDD(ScreenPtr pScreen)
ZeroMemory(pddsdOffscreen, sizeof(*pddsdOffscreen));
pddsdOffscreen->dwSize = sizeof(*pddsdOffscreen);
- ErrorF("winAllocateFBPrimaryDD - Locking primary\n");
+ winDebug ("winAllocateFBPrimaryDD - Locking primary\n");
/* Lock the primary surface */
ddrval = IDirectDrawSurface2_Lock(pScreenPriv->pddsPrimary,
@@ -197,7 +197,7 @@ winAllocateFBPrimaryDD(ScreenPtr pScreen)
FatalError("winAllocateFBPrimaryDD - Could not lock "
"primary surface\n");
- ErrorF("winAllocateFBPrimaryDD - Locked primary\n");
+ winDebug ("winAllocateFBPrimaryDD - Locked primary\n");
/* We don't know how to deal with anything other than RGB */
if (!(pddsdPrimary->ddpfPixelFormat.dwFlags & DDPF_RGB))
@@ -215,7 +215,7 @@ winAllocateFBPrimaryDD(ScreenPtr pScreen)
pScreenPriv->dwGreenMask = pddsdPrimary->ddpfPixelFormat.u3.dwGBitMask;
pScreenPriv->dwBlueMask = pddsdPrimary->ddpfPixelFormat.u4.dwBBitMask;
- ErrorF("winAllocateFBPrimaryDD - Returning\n");
+ winDebug ("winAllocateFBPrimaryDD - Returning\n");
return TRUE;
}
@@ -339,11 +339,11 @@ winInitVisualsPrimaryDD(ScreenPtr pScreen)
else
pScreenPriv->dwBitsPerRGB = dwBlueBits;
- ErrorF("winInitVisualsPrimaryDD - Masks: %08x %08x %08x bpRGB: %d\n",
- (unsigned int) pScreenPriv->dwRedMask,
- (unsigned int) pScreenPriv->dwGreenMask,
- (unsigned int) pScreenPriv->dwBlueMask,
- (int) pScreenPriv->dwBitsPerRGB);
+ winDebug ("winInitVisualsPrimaryDD - Masks: %08x %08x %08x bpRGB: %d\n",
+ (unsigned int) pScreenPriv->dwRedMask,
+ (unsigned int) pScreenPriv->dwGreenMask,
+ (unsigned int) pScreenPriv->dwBlueMask,
+ (int) pScreenPriv->dwBitsPerRGB);
/* Create a single visual according to the Windows screen depth */
switch (pScreenInfo->dwDepth) {
@@ -364,9 +364,7 @@ winInitVisualsPrimaryDD(ScreenPtr pScreen)
break;
case 8:
-#if CYGDEBUG
winDebug("winInitVisuals - Calling miSetVisualTypesAndMasks\n");
-#endif /* CYGDEBUG */
if (!miSetVisualTypesAndMasks(pScreenInfo->dwDepth,
PseudoColorMask,
pScreenPriv->dwBitsPerRGB,
@@ -378,10 +376,8 @@ winInitVisualsPrimaryDD(ScreenPtr pScreen)
"miSetVisualTypesAndMasks failed\n");
return FALSE;
}
-#if CYGDEBUG
winDebug("winInitVisualsPrimaryDD - Returned from "
"miSetVisualTypesAndMasks\n");
-#endif /* CYGDEBUG */
break;
default:
@@ -389,7 +385,7 @@ winInitVisualsPrimaryDD(ScreenPtr pScreen)
return FALSE;
}
- ErrorF("winInitVisualsPrimaryDD - Returning\n");
+ winDebug ("winInitVisualsPrimaryDD - Returning\n");
return TRUE;
}
@@ -516,7 +512,7 @@ winHotKeyAltTabPrimaryDD(ScreenPtr pScreen)
winScreenPriv(pScreen);
HRESULT ddrval = DD_OK;
- ErrorF("\nwinHotKeyAltTabPrimaryDD\n\n");
+ winDebug ("\nwinHotKeyAltTabPrimaryDD\n\n");
/* Alt+Tab was pressed, we will lose focus very soon */
pScreenPriv->fActive = FALSE;
diff --git a/xorg-server/hw/xwin/winpixmap.c b/xorg-server/hw/xwin/winpixmap.c
index d8a12d58e..43c0c3c14 100644
--- a/xorg-server/hw/xwin/winpixmap.c
+++ b/xorg-server/hw/xwin/winpixmap.c
@@ -68,11 +68,9 @@ winCreatePixmapNativeGDI(ScreenPtr pScreen,
return NullPixmap;
}
-#if CYGDEBUG
winDebug("winCreatePixmap () - w %d h %d d %d uh %d bw %d\n",
iWidth, iHeight, iDepth, usage_hint,
PixmapBytePad(iWidth, iDepth));
-#endif
/* Setup pixmap values */
pPixmap->drawable.type = DRAWABLE_PIXMAP;
@@ -112,11 +110,9 @@ winCreatePixmapNativeGDI(ScreenPtr pScreen,
(BITMAPINFO **) &pPixmapPriv->
pbmih);
-#if CYGDEBUG
winDebug("winCreatePixmap () - Created a pixmap %08x, %dx%dx%d, for "
"screen: %08x\n",
pPixmapPriv->hBitmap, iWidth, iHeight, iDepth, pScreen);
-#endif
return pPixmap;
}
@@ -132,9 +128,7 @@ winDestroyPixmapNativeGDI(PixmapPtr pPixmap)
{
winPrivPixmapPtr pPixmapPriv = NULL;
-#if CYGDEBUG
winDebug("winDestroyPixmapNativeGDI ()\n");
-#endif
/* Bail early if there is not a pixmap to destroy */
if (pPixmap == NULL) {
@@ -145,10 +139,8 @@ winDestroyPixmapNativeGDI(PixmapPtr pPixmap)
/* Get a handle to the pixmap privates */
pPixmapPriv = winGetPixmapPriv(pPixmap);
-#if CYGDEBUG
winDebug("winDestroyPixmapNativeGDI - pPixmapPriv->hBitmap: %08x\n",
pPixmapPriv->hBitmap);
-#endif
/* Decrement reference count, return if nonzero */
--pPixmap->refcnt;
@@ -184,40 +176,3 @@ winModifyPixmapHeaderNativeGDI(PixmapPtr pPixmap,
return TRUE;
}
-#if 0
-/*
- * Not used yet.
- * See cfb/cfbpixmap.c
- */
-
-static void
-winXRotatePixmapNativeGDI(PixmapPtr pPix, int rw)
-{
- ErrorF("winXRotatePixmap()\n");
- /* fill in this function, look at CFB */
-}
-
-/*
- * Not used yet.
- * See cfb/cfbpixmap.c
- */
-static void
-winYRotatePixmapNativeGDI(PixmapPtr pPix, int rh)
-{
- ErrorF("winYRotatePixmap()\n");
- /* fill in this function, look at CFB */
-}
-
-/*
- * Not used yet.
- * See cfb/cfbpixmap.c
- */
-
-static void
-winCopyRotatePixmapNativeGDI(PixmapPtr psrcPix, PixmapPtr *ppdstPix,
- int xrot, int yrot)
-{
- ErrorF("winCopyRotatePixmap()\n");
- /* fill in this function, look at CFB */
-}
-#endif
diff --git a/xorg-server/hw/xwin/winpolyline.c b/xorg-server/hw/xwin/winpolyline.c
index 8b7e10645..ce7c8de28 100644
--- a/xorg-server/hw/xwin/winpolyline.c
+++ b/xorg-server/hw/xwin/winpolyline.c
@@ -41,7 +41,7 @@ winPolyLineNativeGDI(DrawablePtr pDrawable,
switch (pGC->lineStyle) {
case LineSolid:
if (pGC->lineWidth == 0)
- return miZeroLine(pDrawable, pGC, mode, npt, ppt);
+ miZeroLine (pDrawable, pGC, mode, npt, ppt);
else
miWideLine(pDrawable, pGC, mode, npt, ppt);
break;
diff --git a/xorg-server/hw/xwin/winprefs.c b/xorg-server/hw/xwin/winprefs.c
index f386facdd..6fff8a10d 100644
--- a/xorg-server/hw/xwin/winprefs.c
+++ b/xorg-server/hw/xwin/winprefs.c
@@ -51,6 +51,8 @@
extern const char *winGetBaseDir(void);
+extern const char *g_pszLogFile;
+
/* From winprefslex.l, the real parser */
extern int parse_file(FILE * fp);
@@ -346,8 +348,8 @@ HandleCustomWM_COMMAND(HWND hwnd, int command)
memset(&start, 0, sizeof(start));
start.cb = sizeof(start);
- start.dwFlags = STARTF_USESHOWWINDOW;
- start.wShowWindow = SW_HIDE;
+ //start.dwFlags = STARTF_USESHOWWINDOW;
+ //start.wShowWindow = SW_HIDE;
memset(&child, 0, sizeof(child));
@@ -359,7 +361,7 @@ HandleCustomWM_COMMAND(HWND hwnd, int command)
}
else
MessageBox(NULL, m->menuItem[j].param,
- "Mingrc Exec Command Error!",
+ "VcXsrv Exec Command Error!",
MB_OK | MB_ICONEXCLAMATION);
}
return TRUE;
@@ -711,16 +713,13 @@ LoadPreferences(void)
}
/* Setup a DISPLAY environment variable, need to allocate on heap */
- /* because putenv doesn't copy the argument... */
- snprintf(szDisplay, 512, "DISPLAY=127.0.0.1:%s.0", display);
- szEnvDisplay = (char *) (malloc(strlen(szDisplay) + 1));
- if (szEnvDisplay) {
- strcpy(szEnvDisplay, szDisplay);
- putenv(szEnvDisplay);
- }
+ /* because putenv doesn't copy the argument... Always use screen 0 */
+ winGetDisplayName(szDisplay, 0);
+ szEnvDisplay = (char *)(malloc(strlen(szDisplay)+9/*strlen("DISPLAY=")+1*/));
+ snprintf(szEnvDisplay, 512, "DISPLAY=%s", szDisplay);
+ putenv (szEnvDisplay);
/* Replace any "%display%" in menu commands with display string */
- snprintf(szDisplay, 512, "127.0.0.1:%s.0", display);
for (i = 0; i < pref.menuItems; i++) {
for (j = 0; j < pref.menu[i].menuItems; j++) {
if (pref.menu[i].menuItem[j].cmd == CMD_EXEC) {
@@ -732,6 +731,11 @@ LoadPreferences(void)
dstParam += strlen(szDisplay);
srcParam += 9;
}
+ else if (!strncmp(srcParam, "%logfile%", 9)) {
+ memcpy (dstParam, g_pszLogFile, strlen(g_pszLogFile));
+ dstParam += strlen(g_pszLogFile);
+ srcParam += 9;
+ }
else {
*dstParam = *srcParam;
dstParam++;
diff --git a/xorg-server/hw/xwin/winprefslex.l b/xorg-server/hw/xwin/winprefslex.l
index 15f707766..66d12ede7 100644
--- a/xorg-server/hw/xwin/winprefslex.l
+++ b/xorg-server/hw/xwin/winprefslex.l
@@ -39,8 +39,6 @@
extern int yyparse(void);
-extern void ErrorF (const char* /*f*/, ...);
-
/* Copy the parsed string, must be free()d in yacc parser */
static char *makestr(char *str)
{
diff --git a/xorg-server/hw/xwin/winprefsyacc.y b/xorg-server/hw/xwin/winprefsyacc.y
index 3b376b3e7..ff051f233 100644
--- a/xorg-server/hw/xwin/winprefsyacc.y
+++ b/xorg-server/hw/xwin/winprefsyacc.y
@@ -40,6 +40,7 @@
#define _STDLIB_H 1 /* bison checks this to know if stdlib has been included */
#include <string.h>
#include "winprefs.h"
+#include "winmsg.h"
/* The following give better error messages in bison at the cost of a few KB */
#define YYERROR_VERBOSE 1
@@ -84,6 +85,9 @@ static int yyerror (char *s);
extern char *yytext;
extern int yylex(void);
+#define YYMALLOC malloc
+#define YYFREE free
+
%}
%union {
@@ -243,7 +247,7 @@ forceexit: FORCEEXIT NEWLINE { pref.fForceExit = TRUE; }
silentexit: SILENTEXIT NEWLINE { pref.fSilentExit = TRUE; }
;
-debug: DEBUGOUTPUT STRING NEWLINE { ErrorF("LoadPreferences: %s\n", $2); free($2); }
+debug: DEBUGOUTPUT STRING NEWLINE { winDebug("LoadPreferences: %s\n", $2); free($2); }
;
@@ -354,7 +358,7 @@ static void
OpenIcons (void)
{
if (pref.icon != NULL) {
- ErrorF("LoadPreferences: Redefining icon mappings\n");
+ winDebug("LoadPreferences: Redefining icon mappings\n");
free(pref.icon);
pref.icon = NULL;
}
@@ -390,7 +394,7 @@ static void
OpenStyles (void)
{
if (pref.style != NULL) {
- ErrorF("LoadPreferences: Redefining window style\n");
+ winDebug("LoadPreferences: Redefining window style\n");
free(pref.style);
pref.style = NULL;
}
@@ -423,7 +427,7 @@ static void
OpenSysMenu (void)
{
if (pref.sysMenu != NULL) {
- ErrorF("LoadPreferences: Redefining system menu\n");
+ winDebug("LoadPreferences: Redefining system menu\n");
free(pref.sysMenu);
pref.sysMenu = NULL;
}
diff --git a/xorg-server/hw/xwin/winprocarg.c b/xorg-server/hw/xwin/winprocarg.c
index 858be4a56..570b91721 100644
--- a/xorg-server/hw/xwin/winprocarg.c
+++ b/xorg-server/hw/xwin/winprocarg.c
@@ -44,6 +44,7 @@ from The Open Group.
#ifdef XWIN_CLIPBOARD
extern Bool g_fUnicodeClipboard;
extern Bool g_fClipboard;
+extern Bool g_fClipboardPrimary;
#endif
/*
@@ -84,9 +85,9 @@ winInitializeScreenDefaults(void)
dwWidth = GetSystemMetrics(SM_CXSCREEN);
dwHeight = GetSystemMetrics(SM_CYSCREEN);
- winErrorFVerb(2,
- "winInitializeScreenDefaults - primary monitor w %d h %d\n",
- (int) dwWidth, (int) dwHeight);
+ winDebug (
+ "winInitializeScreenDefaults - primary monitor w %d h %d\n",
+ (int) dwWidth, (int) dwHeight);
/* Set a default DPI, if no '-dpi' option was used */
if (monitorResolution == 0) {
@@ -96,17 +97,17 @@ winInitializeScreenDefaults(void)
int dpiX = GetDeviceCaps(hdc, LOGPIXELSX);
int dpiY = GetDeviceCaps(hdc, LOGPIXELSY);
- winErrorFVerb(2,
- "winInitializeScreenDefaults - native DPI x %d y %d\n",
- dpiX, dpiY);
+ winDebug(
+ "winInitializeScreenDefaults - native DPI x %d y %d\n",
+ dpiX, dpiY);
monitorResolution = dpiY;
ReleaseDC(NULL, hdc);
}
else {
- winErrorFVerb(1,
- "winInitializeScreenDefaults - Failed to retrieve native DPI, falling back to default of %d DPI\n",
- WIN_DEFAULT_DPI);
+ winDebug(
+ "winInitializeScreenDefaults - Failed to retrieve native DPI, falling back to default of %d DPI\n",
+ WIN_DEFAULT_DPI);
monitorResolution = WIN_DEFAULT_DPI;
}
}
@@ -131,6 +132,8 @@ winInitializeScreenDefaults(void)
defaultScreenInfo.fDecoration = TRUE;
#ifdef XWIN_MULTIWINDOWEXTWM
defaultScreenInfo.fMWExtWM = FALSE;
+#endif
+#ifdef XWIN_MULTIWINDOWINTWM
defaultScreenInfo.fInternalWM = FALSE;
#endif
defaultScreenInfo.fRootless = FALSE;
@@ -157,7 +160,7 @@ winInitializeScreenDefaults(void)
static void
winInitializeScreen(int i)
{
- winErrorFVerb(3, "winInitializeScreen - %d\n", i);
+ winDebug ("winInitializeScreen - %d\n",i);
/* Initialize default screen values, if needed */
winInitializeScreenDefaults();
@@ -174,7 +177,7 @@ winInitializeScreens(int maxscreens)
{
int i;
- winErrorFVerb(3, "winInitializeScreens - %i\n", maxscreens);
+ winDebug ("winInitializeScreens - %i\n", maxscreens);
if (maxscreens > g_iNumScreens) {
/* Reallocate the memory for DDX-specific screen info */
@@ -248,23 +251,22 @@ ddxProcessArgument(int argc, char *argv[], int i)
* OsVendorInit () gets called, otherwise we will overwrite
* settings changed by parameters such as -fullscreen, etc.
*/
- winErrorFVerb(2, "ddxProcessArgument - Initializing default "
- "screens\n");
+ winDebug ("ddxProcessArgument - Initializing default "
+ "screens\n");
winInitializeScreenDefaults();
}
}
-#if CYGDEBUG
winDebug("ddxProcessArgument - arg: %s\n", argv[i]);
-#endif
/*
* Look for the '-help' and similar options
*/
if (IS_OPTION("-help") || IS_OPTION("-h") || IS_OPTION("--help")) {
/* Reset logfile. We don't need that helpmessage in the logfile */
- g_pszLogFile = NULL;
+#ifdef _DEBUG
g_fNoHelpMessageBox = TRUE;
+#endif
UseMsg();
exit(0);
return 1;
@@ -272,7 +274,6 @@ ddxProcessArgument(int argc, char *argv[], int i)
if (IS_OPTION("-version") || IS_OPTION("--version")) {
/* Reset logfile. We don't need that versioninfo in the logfile */
- g_pszLogFile = NULL;
winLogVersionInfo();
exit(0);
return 1;
@@ -287,9 +288,7 @@ ddxProcessArgument(int argc, char *argv[], int i)
int iWidth, iHeight, iX, iY;
int iMonitor;
-#if CYGDEBUG
winDebug("ddxProcessArgument - screen - argc: %d i: %d\n", argc, i);
-#endif
/* Display the usage message if the argument is malformed */
if (i + 1 >= argc) {
@@ -324,9 +323,9 @@ ddxProcessArgument(int argc, char *argv[], int i)
("ddxProcessArgument - screen - Querying monitors failed\n");
}
else if (data.bMonitorSpecifiedExists == TRUE) {
- winErrorFVerb(2,
- "ddxProcessArgument - screen - Found Valid ``@Monitor'' = %d arg\n",
- iMonitor);
+ winDebug(
+ "ddxProcessArgument - screen - Found Valid ``@Monitor'' = %d arg\n",
+ iMonitor);
iArgsProcessed = 3;
g_ScreenInfo[nScreenNum].fUserGaveHeightAndWidth = FALSE;
g_ScreenInfo[nScreenNum].fUserGavePosition = TRUE;
@@ -354,8 +353,8 @@ ddxProcessArgument(int argc, char *argv[], int i)
else if (i + 2 < argc
&& 2 == sscanf(argv[i + 2], "%dx%d",
(int *) &iWidth, (int *) &iHeight)) {
- winErrorFVerb(2,
- "ddxProcessArgument - screen - Found ``WxD'' arg\n");
+ winDebug (
+ "ddxProcessArgument - screen - Found ``WxD'' arg\n");
iArgsProcessed = 3;
g_ScreenInfo[nScreenNum].fUserGaveHeightAndWidth = TRUE;
g_ScreenInfo[nScreenNum].dwWidth = iWidth;
@@ -365,8 +364,8 @@ ddxProcessArgument(int argc, char *argv[], int i)
/* Look for WxD+X+Y */
if (2 == sscanf(argv[i + 2], "%*dx%*d+%d+%d",
(int *) &iX, (int *) &iY)) {
- winErrorFVerb(2,
- "ddxProcessArgument - screen - Found ``X+Y'' arg\n");
+ winDebug (
+ "ddxProcessArgument - screen - Found ``X+Y'' arg\n");
g_ScreenInfo[nScreenNum].fUserGavePosition = TRUE;
g_ScreenInfo[nScreenNum].dwInitialX = iX;
g_ScreenInfo[nScreenNum].dwInitialY = iY;
@@ -410,9 +409,9 @@ ddxProcessArgument(int argc, char *argv[], int i)
("ddxProcessArgument - screen - Querying monitors failed\n");
}
else if (data.bMonitorSpecifiedExists == TRUE) {
- winErrorFVerb(2,
- "ddxProcessArgument - screen - Found Valid ``@Monitor'' = %d arg\n",
- iMonitor);
+ winDebug (
+ "ddxProcessArgument - screen - Found Valid ``@Monitor'' = %d arg\n",
+ iMonitor);
g_ScreenInfo[nScreenNum].fUserGavePosition = TRUE;
g_ScreenInfo[nScreenNum].iMonitor = iMonitor;
g_ScreenInfo[nScreenNum].hMonitor = data.monitorHandle;
@@ -433,7 +432,7 @@ ddxProcessArgument(int argc, char *argv[], int i)
}
else if (i + 3 < argc && 1 == sscanf(argv[i + 2], "%d", (int *) &iWidth)
&& 1 == sscanf(argv[i + 3], "%d", (int *) &iHeight)) {
- winErrorFVerb(2,
+ winDebug (
"ddxProcessArgument - screen - Found ``W D'' arg\n");
iArgsProcessed = 4;
g_ScreenInfo[nScreenNum].fUserGaveHeightAndWidth = TRUE;
@@ -443,7 +442,7 @@ ddxProcessArgument(int argc, char *argv[], int i)
g_ScreenInfo[nScreenNum].dwUserHeight = iHeight;
if (i + 5 < argc && 1 == sscanf(argv[i + 4], "%d", (int *) &iX)
&& 1 == sscanf(argv[i + 5], "%d", (int *) &iY)) {
- winErrorFVerb(2,
+ winDebug (
"ddxProcessArgument - screen - Found ``X Y'' arg\n");
iArgsProcessed = 6;
g_ScreenInfo[nScreenNum].fUserGavePosition = TRUE;
@@ -452,11 +451,11 @@ ddxProcessArgument(int argc, char *argv[], int i)
}
}
else {
- winErrorFVerb(2,
+ ErrorF (
"ddxProcessArgument - screen - Did not find size arg. "
- "dwWidth: %d dwHeight: %d\n",
- (int) g_ScreenInfo[nScreenNum].dwWidth,
- (int) g_ScreenInfo[nScreenNum].dwHeight);
+ "dwWidth: %d dwHeight: %d\n",
+ (int) g_ScreenInfo[nScreenNum].dwWidth,
+ (int) g_ScreenInfo[nScreenNum].dwHeight);
iArgsProcessed = 2;
g_ScreenInfo[nScreenNum].fUserGaveHeightAndWidth = FALSE;
}
@@ -533,6 +532,8 @@ ddxProcessArgument(int argc, char *argv[], int i)
screenInfoPtr->fMultipleMonitors = FALSE;
#endif
screenInfoPtr->fFullScreen = TRUE;
+ // resizing is not allowed in full screen so change the default to not allowed
+ screenInfoPtr->iResizeMode=notAllowed;
/* Indicate that we have processed this argument */
return 1;
@@ -574,6 +575,8 @@ ddxProcessArgument(int argc, char *argv[], int i)
/* Indicate that we have processed this argument */
return 1;
}
+#endif
+#ifdef XWIN_MULTIWINDOWINTWM
/*
* Look for the '-internalwm' argument
*/
@@ -716,6 +719,30 @@ ddxProcessArgument(int argc, char *argv[], int i)
/* Indicate that we have processed this argument */
return 1;
}
+
+ /*
+ * Look for the '-clipboard' argument
+ */
+ if (IS_OPTION ("-clipboardprimary"))
+ {
+ /* Now the default, we still accept the arg for backwards compatibility */
+ g_fClipboardPrimary = TRUE;
+
+ /* Indicate that we have processed this argument */
+ return 1;
+ }
+
+ /*
+ * Look for the '-noclipboard' argument
+ */
+ if (IS_OPTION ("-noclipboardprimary"))
+ {
+ g_fClipboardPrimary = FALSE;
+
+ /* Indicate that we have processed this argument */
+ return 1;
+ }
+
#endif
/*
@@ -1004,6 +1031,7 @@ ddxProcessArgument(int argc, char *argv[], int i)
if (IS_OPTION("-logverbose")) {
CHECK_ARGS(1);
g_iLogVerbose = atoi(argv[++i]);
+ LogSetParameter(XLOG_VERBOSITY, g_iLogVerbose);
return 2;
}
@@ -1069,10 +1097,27 @@ ddxProcessArgument(int argc, char *argv[], int i)
return 1;
}
- if (IS_OPTION("-nowgl")) {
+ else if (IS_OPTION("-nowgl")) {
g_fNativeGl = FALSE;
return 1;
}
+ else if (IS_OPTION("-swrastwgl"))
+ {
+ g_fswrastwgl = TRUE;
+ return 1;
+ }
+ else if (IS_OPTION("-parentprocessid"))
+ {
+ DWORD dwProcessId;
+ CHECK_ARGS (1);
+ dwProcessId = atoi(argv[++i]);
+ if (!AllowSetForegroundWindow(dwProcessId))
+ {
+ winMessageBoxF ("Error calling AllowSetForegroundWindow.", MB_ICONINFORMATION);
+ return 0;
+ }
+ return 2;
+ }
return 0;
}
@@ -1140,7 +1185,7 @@ winLogCommandLine(int argc, char *argv[])
iCurrLen += strlen(argv[i]);
}
- ErrorF("XWin was started with the following command line:\n\n"
+ winDebug ("XWin was started with the following command line:\n\n"
"%s\n\n", g_pszCommandLine);
}
@@ -1157,9 +1202,9 @@ winLogVersionInfo(void)
return;
s_fBeenHere = TRUE;
- ErrorF("Welcome to the XWin X Server\n");
+ ErrorF("Welcome to the VcXsrv X Server\n");
ErrorF("Vendor: %s\n", XVENDORNAME);
- ErrorF("Release: %d.%d.%d.%d\n", XORG_VERSION_MAJOR,
+ ErrorF("Release: %d.%d.%d.%d\n\n", XORG_VERSION_MAJOR,
XORG_VERSION_MINOR, XORG_VERSION_PATCH, XORG_VERSION_SNAP);
if (strlen(BUILDERSTRING))
ErrorF("%s\n", BUILDERSTRING);
diff --git a/xorg-server/hw/xwin/winresource.h b/xorg-server/hw/xwin/winresource.h
index a14d402e1..bb419188a 100644
--- a/xorg-server/hw/xwin/winresource.h
+++ b/xorg-server/hw/xwin/winresource.h
@@ -49,4 +49,6 @@
#define ID_ABOUT_CHANGELOG 302
#define ID_ABOUT_WEBSITE 303
+#define IDC_HOSTLIST 100
+
#endif
diff --git a/xorg-server/hw/xwin/winscrinit.c b/xorg-server/hw/xwin/winscrinit.c
index 23152cbd2..ae52f8a2c 100644
--- a/xorg-server/hw/xwin/winscrinit.c
+++ b/xorg-server/hw/xwin/winscrinit.c
@@ -88,10 +88,8 @@ winScreenInit(ScreenPtr pScreen, int argc, char **argv)
HDC hdc;
DWORD dwInitialBPP;
-#if CYGDEBUG || YES
winDebug("winScreenInit - dwWidth: %ld dwHeight: %ld\n",
pScreenInfo->dwWidth, pScreenInfo->dwHeight);
-#endif
/* Allocate privates for this screen */
if (!winAllocatePrivates(pScreen)) {
@@ -122,27 +120,27 @@ winScreenInit(ScreenPtr pScreen, int argc, char **argv)
/* Horribly misnamed function: Allow engine to adjust BPP for screen */
dwInitialBPP = pScreenInfo->dwBPP;
-
- if (!(*pScreenPriv->pwinAdjustVideoMode) (pScreen)) {
+
+ if (pScreenPriv->pwinAdjustVideoMode && !(*pScreenPriv->pwinAdjustVideoMode) (pScreen)) {
ErrorF("winScreenInit - winAdjustVideoMode () failed\n");
return FALSE;
}
if (dwInitialBPP == WIN_DEFAULT_BPP) {
/* No -depth parameter was passed, let the user know the depth being used */
- ErrorF
+ winDebug
("winScreenInit - Using Windows display depth of %d bits per pixel\n",
(int) pScreenInfo->dwBPP);
}
else if (dwInitialBPP != pScreenInfo->dwBPP) {
/* Warn user if engine forced a depth different to -depth parameter */
- ErrorF
+ winDebug
("winScreenInit - Command line depth of %d bpp overidden by engine, using %d bpp\n",
(int) dwInitialBPP, (int) pScreenInfo->dwBPP);
}
else {
- ErrorF("winScreenInit - Using command line depth of %d bpp\n",
- (int) pScreenInfo->dwBPP);
+ winDebug("winScreenInit - Using command line depth of %d bpp\n",
+ (int) pScreenInfo->dwBPP);
}
/* Check for supported display depth */
@@ -175,7 +173,7 @@ winScreenInit(ScreenPtr pScreen, int argc, char **argv)
}
/* Create display window */
- if (!(*pScreenPriv->pwinCreateBoundingWindow) (pScreen)) {
+ if (pScreenPriv->pwinCreateBoundingWindow && !(*pScreenPriv->pwinCreateBoundingWindow) (pScreen)) {
ErrorF("winScreenInit - pwinCreateBoundingWindow () " "failed\n");
return FALSE;
}
@@ -202,7 +200,7 @@ winScreenInit(ScreenPtr pScreen, int argc, char **argv)
miClearVisualTypes();
/* Call the engine dependent screen initialization procedure */
- if (!((*pScreenPriv->pwinFinishScreenInit) (pScreen->myNum, pScreen, argc, argv))) {
+ if (pScreenPriv->pwinFinishScreenInit && !((*pScreenPriv->pwinFinishScreenInit) (pScreen->myNum, pScreen, argc, argv))) {
ErrorF("winScreenInit - winFinishScreenInit () failed\n");
/* call the engine dependent screen close procedure to clean up from a failure */
@@ -213,8 +211,10 @@ winScreenInit(ScreenPtr pScreen, int argc, char **argv)
if (!g_fSoftwareCursor)
winInitCursor(pScreen);
+#ifdef WINDBG
else
- winErrorFVerb(2, "winScreenInit - Using software cursor\n");
+ winDebug("winScreenInit - Using software cursor\n");
+#endif
/*
Note the screen origin in a normalized coordinate space where (0,0) is at the top left
@@ -223,12 +223,9 @@ winScreenInit(ScreenPtr pScreen, int argc, char **argv)
pScreen->x = pScreenInfo->dwInitialX - GetSystemMetrics(SM_XVIRTUALSCREEN);
pScreen->y = pScreenInfo->dwInitialY - GetSystemMetrics(SM_YVIRTUALSCREEN);
- ErrorF("Screen %d added at virtual desktop coordinate (%d,%d).\n",
+ winDebug("Screen %d added at virtual desktop coordinate (%d,%d).\n",
pScreen->myNum, pScreen->x, pScreen->y);
-
-#if CYGDEBUG || YES
winDebug("winScreenInit - returning\n");
-#endif
return TRUE;
}
@@ -281,10 +278,10 @@ winFinishScreenInitFB(int i, ScreenPtr pScreen, int argc, char **argv)
+ winCountBits(pScreenPriv->dwGreenMask)
+ winCountBits(pScreenPriv->dwBlueMask);
- winErrorFVerb(2, "winFinishScreenInitFB - Masks: %08x %08x %08x\n",
- (unsigned int) pScreenPriv->dwRedMask,
- (unsigned int) pScreenPriv->dwGreenMask,
- (unsigned int) pScreenPriv->dwBlueMask);
+ winDebug ("winFinishScreenInitFB - Masks: %08x %08x %08x\n",
+ (unsigned int) pScreenPriv->dwRedMask,
+ (unsigned int) pScreenPriv->dwGreenMask,
+ (unsigned int) pScreenPriv->dwBlueMask);
/* Init visuals */
if (!(*pScreenPriv->pwinInitVisuals) (pScreen)) {
@@ -367,16 +364,12 @@ winFinishScreenInitFB(int i, ScreenPtr pScreen, int argc, char **argv)
#endif
/* Setup the cursor routines */
-#if CYGDEBUG
winDebug("winFinishScreenInitFB - Calling miDCInitialize ()\n");
-#endif
miDCInitialize(pScreen, &g_winPointerCursorFuncs);
/* KDrive does winCreateDefColormap right after miDCInitialize */
/* Create a default colormap */
-#if CYGDEBUG
winDebug("winFinishScreenInitFB - Calling winCreateDefColormap ()\n");
-#endif
if (!winCreateDefColormap(pScreen)) {
ErrorF("winFinishScreenInitFB - Could not create colormap\n");
return FALSE;
@@ -390,9 +383,7 @@ winFinishScreenInitFB(int i, ScreenPtr pScreen, int argc, char **argv)
&& !pScreenInfo->fMWExtWM
#endif
) {
-#if CYGDEBUG
winDebug("winFinishScreenInitFB - Calling shadowSetup ()\n");
-#endif
if (!shadowSetup(pScreen)) {
ErrorF("winFinishScreenInitFB - shadowSetup () failed\n");
return FALSE;
@@ -533,13 +524,11 @@ winFinishScreenInitFB(int i, ScreenPtr pScreen, int argc, char **argv)
#ifdef XWIN_MULTIWINDOW
|| pScreenInfo->fMultiWindow
#endif
-#ifdef XWIN_MULTIWINDOWEXTWM
+#ifdef XWIN_MULTIWINDOWINTWM
|| pScreenInfo->fInternalWM
#endif
) {
-#if CYGDEBUG || YES
winDebug("winFinishScreenInitFB - Calling winInitWM.\n");
-#endif
/* Initialize multi window mode */
if (!winInitWM(&pScreenPriv->pWMInfo,
@@ -547,7 +536,7 @@ winFinishScreenInitFB(int i, ScreenPtr pScreen, int argc, char **argv)
&pScreenPriv->ptXMsgProc,
&pScreenPriv->pmServerStarted,
pScreenInfo->dwScreen, (HWND) &pScreenPriv->hwndScreen,
-#ifdef XWIN_MULTIWINDOWEXTWM
+#ifdef XWIN_MULTIWINDOWINTWM
pScreenInfo->fInternalWM ||
#endif
FALSE)) {
@@ -563,9 +552,7 @@ winFinishScreenInitFB(int i, ScreenPtr pScreen, int argc, char **argv)
/* Tell the server that we have a valid depth */
pScreenPriv->fBadDepth = FALSE;
-#if CYGDEBUG || YES
winDebug("winFinishScreenInitFB - returning\n");
-#endif
return TRUE;
}
@@ -675,7 +662,7 @@ winFinishScreenInitNativeGDI(int i,
/* Bitmap */
pScreen->BitmapToRegion = winPixmapToRegionNativeGDI;
- ErrorF("winFinishScreenInitNativeGDI - calling miDCInitialize\n");
+ winDebug ("winFinishScreenInitNativeGDI - calling miDCInitialize\n");
/* Set the default white and black pixel positions */
pScreen->whitePixel = pScreen->blackPixel = (Pixel) 0;
@@ -693,8 +680,8 @@ winFinishScreenInitNativeGDI(int i,
return FALSE;
}
- ErrorF("winFinishScreenInitNativeGDI - miCreateDefColormap () "
- "returned\n");
+ winDebug ("winFinishScreenInitNativeGDI - miCreateDefColormap () "
+ "returned\n");
/* mi doesn't use a CloseScreen procedure, so no need to wrap */
pScreen->CloseScreen = pScreenPriv->pwinCloseScreen;
@@ -702,8 +689,8 @@ winFinishScreenInitNativeGDI(int i,
/* Tell the server that we are enabled */
pScreenPriv->fEnabled = TRUE;
- ErrorF("winFinishScreenInitNativeGDI - Successful addition of "
- "screen %p\n", pScreen);
+ winDebug ("winFinishScreenInitNativeGDI - Successful addition of "
+ "screen %p\n", pScreen);
return TRUE;
}
diff --git a/xorg-server/hw/xwin/winsetsp.c b/xorg-server/hw/xwin/winsetsp.c
index 11108cb53..29f49abe1 100644
--- a/xorg-server/hw/xwin/winsetsp.c
+++ b/xorg-server/hw/xwin/winsetsp.c
@@ -34,6 +34,11 @@
#endif
#include "win.h"
+typedef struct mybitmap
+{
+ BITMAPINFOHEADER bmiHeader;
+ RGBQUAD bmiColors[256]; /* Maximum palette used in case of 8-bit per pixel */
+} mybitmap_t;
/* See Porting Layer Definition - p. 55 */
void
winSetSpansNativeGDI(DrawablePtr pDrawable,
@@ -46,7 +51,7 @@ winSetSpansNativeGDI(DrawablePtr pDrawable,
PixmapPtr pPixmap = NULL;
winPrivPixmapPtr pPixmapPriv = NULL;
HBITMAP hbmpOrig = NULL;
- BITMAPINFO *pbmi;
+ mybitmap_t bmi;
HRGN hrgn = NULL, combined = NULL;
int nbox;
BoxPtr pbox;
@@ -57,8 +62,6 @@ winSetSpansNativeGDI(DrawablePtr pDrawable,
if (!nbox)
return;
- pbmi = malloc(sizeof(BITMAPINFO) + sizeof(RGBQUAD));
-
combined = CreateRectRgn(pbox->x1, pbox->y1, pbox->x2, pbox->y2);
nbox--;
pbox++;
@@ -88,20 +91,19 @@ winSetSpansNativeGDI(DrawablePtr pDrawable,
"failed on pPixmapPriv->hBitmap\n");
while (iSpans--) {
- ZeroMemory(pbmi, sizeof(BITMAPINFO));
- pbmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
- pbmi->bmiHeader.biWidth = *piWidths;
- pbmi->bmiHeader.biHeight = 1;
- pbmi->bmiHeader.biPlanes = 1;
- pbmi->bmiHeader.biBitCount = pDrawable->depth;
- pbmi->bmiHeader.biCompression = BI_RGB;
+ ZeroMemory (&bmi, sizeof (mybitmap_t));
+ bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
+ bmi.bmiHeader.biWidth = *piWidths;
+ bmi.bmiHeader.biHeight = 1;
+ bmi.bmiHeader.biPlanes = 1;
+ bmi.bmiHeader.biBitCount = pDrawable->depth;
+ bmi.bmiHeader.biCompression = BI_RGB;
/* Setup color table for mono DIBs */
if (pDrawable->depth == 1) {
- RGBQUAD *bmiColors = &(pbmi->bmiColors[0]);
- bmiColors[1].rgbBlue = 255;
- bmiColors[1].rgbGreen = 255;
- bmiColors[1].rgbRed = 255;
+ bmi.bmiColors[1].rgbBlue = 255;
+ bmi.bmiColors[1].rgbGreen = 255;
+ bmi.bmiColors[1].rgbRed = 255;
}
StretchDIBits(pGCPriv->hdcMem,
@@ -110,7 +112,7 @@ winSetSpansNativeGDI(DrawablePtr pDrawable,
0, 0,
*piWidths, 1,
pSrcs,
- (BITMAPINFO *) pbmi,
+ (BITMAPINFO *) &bmi,
DIB_RGB_COLORS, g_copyROP[pGC->alu]);
pSrcs += PixmapBytePad(*piWidths, pDrawable->depth);
@@ -132,20 +134,19 @@ winSetSpansNativeGDI(DrawablePtr pDrawable,
combined = NULL;
while (iSpans--) {
- ZeroMemory(pbmi, sizeof(BITMAPINFO));
- pbmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
- pbmi->bmiHeader.biWidth = *piWidths;
- pbmi->bmiHeader.biHeight = 1;
- pbmi->bmiHeader.biPlanes = 1;
- pbmi->bmiHeader.biBitCount = pDrawable->depth;
- pbmi->bmiHeader.biCompression = BI_RGB;
+ ZeroMemory (&bmi, sizeof (mybitmap_t));
+ bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
+ bmi.bmiHeader.biWidth = *piWidths;
+ bmi.bmiHeader.biHeight = 1;
+ bmi.bmiHeader.biPlanes = 1;
+ bmi.bmiHeader.biBitCount = pDrawable->depth;
+ bmi.bmiHeader.biCompression = BI_RGB;
/* Setup color table for mono DIBs */
if (pDrawable->depth == 1) {
- RGBQUAD *bmiColors = &(pbmi->bmiColors[0]);
- bmiColors[1].rgbBlue = 255;
- bmiColors[1].rgbGreen = 255;
- bmiColors[1].rgbRed = 255;
+ bmi.bmiColors[1].rgbBlue = 255;
+ bmi.bmiColors[1].rgbGreen = 255;
+ bmi.bmiColors[1].rgbRed = 255;
}
StretchDIBits(pGCPriv->hdc,
@@ -154,7 +155,7 @@ winSetSpansNativeGDI(DrawablePtr pDrawable,
0, 0,
*piWidths, 1,
pSrcs,
- (BITMAPINFO *) pbmi,
+ (BITMAPINFO *) &bmi,
DIB_RGB_COLORS, g_copyROP[pGC->alu]);
pSrcs += PixmapBytePad(*piWidths, pDrawable->depth);
@@ -170,6 +171,4 @@ winSetSpansNativeGDI(DrawablePtr pDrawable,
FatalError("\nwinSetSpansNativeGDI - Unknown drawable type\n\n");
break;
}
-
- free(pbmi);
}
diff --git a/xorg-server/hw/xwin/winshaddd.c b/xorg-server/hw/xwin/winshaddd.c
index 2e7060838..5a117aace 100644
--- a/xorg-server/hw/xwin/winshaddd.c
+++ b/xorg-server/hw/xwin/winshaddd.c
@@ -113,9 +113,7 @@ winCreatePrimarySurfaceShadowDD(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winCreatePrimarySurfaceShadowDD - Created primary surface\n");
-#endif
/*
* Attach a clipper to the primary surface that will clip our blits to our
@@ -129,10 +127,8 @@ winCreatePrimarySurfaceShadowDD(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winCreatePrimarySurfaceShadowDD - Attached clipper to "
"primary surface\n");
-#endif
/* Everything was correct */
return TRUE;
@@ -148,7 +144,7 @@ winReleasePrimarySurfaceShadowDD(ScreenPtr pScreen)
{
winScreenPriv(pScreen);
- ErrorF("winReleasePrimarySurfaceShadowDD - Hello\n");
+ winDebug ("winReleasePrimarySurfaceShadowDD - Hello\n");
/* Release the primary surface and clipper, if they exist */
if (pScreenPriv->pddsPrimary) {
@@ -158,14 +154,14 @@ winReleasePrimarySurfaceShadowDD(ScreenPtr pScreen)
*/
IDirectDrawSurface2_SetClipper(pScreenPriv->pddsPrimary, NULL);
- ErrorF("winReleasePrimarySurfaceShadowDD - Detached clipper\n");
+ winDebug ("winReleasePrimarySurfaceShadowDD - Detached clipper\n");
/* Release the primary surface */
IDirectDrawSurface2_Release(pScreenPriv->pddsPrimary);
pScreenPriv->pddsPrimary = NULL;
}
- ErrorF("winReleasePrimarySurfaceShadowDD - Released primary surface\n");
+ winDebug ("winReleasePrimarySurfaceShadowDD - Released primary surface\n");
return TRUE;
}
@@ -187,9 +183,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
DDSURFACEDESC ddsd;
DDSURFACEDESC *pddsdShadow = NULL;
-#if CYGDEBUG
winDebug("winAllocateFBShadowDD\n");
-#endif
/* Create a clipper */
ddrval = (*g_fpDirectDrawCreateClipper) (0,
@@ -200,9 +194,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winAllocateFBShadowDD - Created a clipper\n");
-#endif
/* Attach the clipper to our display window */
ddrval = IDirectDrawClipper_SetHWnd(pScreenPriv->pddcPrimary,
@@ -213,9 +205,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winAllocateFBShadowDD - Attached clipper to window\n");
-#endif
/* Create a DirectDraw object, store the address at lpdd */
ddrval = (*g_fpDirectDrawCreate) (NULL, &pScreenPriv->pdd, NULL);
@@ -225,9 +215,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winAllocateFBShadowDD () - Created and initialized DD\n");
-#endif
/* Get a DirectDraw2 interface pointer */
ddrval = IDirectDraw_QueryInterface(pScreenPriv->pdd,
@@ -300,7 +288,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
|| pScreenInfo->dwHeight != GetSystemMetrics(SM_CYSCREEN)
|| pScreenInfo->dwBPP != GetDeviceCaps(hdc, BITSPIXEL)
|| pScreenInfo->dwRefreshRate != 0)) {
- ErrorF("winAllocateFBShadowDD - Changing video mode\n");
+ winDebug ("winAllocateFBShadowDD - Changing video mode\n");
/* Change the video mode to the mode requested, and use the driver default refresh rate on failure */
ddrval = IDirectDraw2_SetDisplayMode(pScreenPriv->pdd2,
@@ -329,7 +317,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
}
}
else {
- ErrorF("winAllocateFBShadowDD - Not changing video mode\n");
+ winDebug ("winAllocateFBShadowDD - Not changing video mode\n");
}
/* Release our DC */
@@ -379,9 +367,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winAllocateFBShadowDD - Created shadow\n");
-#endif
/* Allocate a DD surface description for our screen privates */
pddsdShadow = pScreenPriv->pddsdShadow = malloc(sizeof(DDSURFACEDESC));
@@ -393,9 +379,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
ZeroMemory(pddsdShadow, sizeof(*pddsdShadow));
pddsdShadow->dwSize = sizeof(*pddsdShadow);
-#if CYGDEBUG
winDebug("winAllocateFBShadowDD - Locking shadow\n");
-#endif
/* Lock the shadow surface */
ddrval = IDirectDrawSurface2_Lock(pScreenPriv->pddsShadow,
@@ -406,9 +390,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winAllocateFBShadowDD - Locked shadow\n");
-#endif
/* We don't know how to deal with anything other than RGB */
if (!(pddsdShadow->ddpfPixelFormat.dwFlags & DDPF_RGB)) {
@@ -428,9 +410,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
pScreenPriv->dwGreenMask = pddsdShadow->ddpfPixelFormat.u3.dwGBitMask;
pScreenPriv->dwBlueMask = pddsdShadow->ddpfPixelFormat.u4.dwBBitMask;
-#if CYGDEBUG
winDebug("winAllocateFBShadowDD - Returning\n");
-#endif
return TRUE;
}
@@ -594,6 +574,7 @@ winShadowUpdateDD(ScreenPtr pScreen, shadowBufPtr pBuf)
/* Has our memory pointer changed? */
if (pScreenInfo->pfb != pScreenPriv->pddsdShadow->lpSurface) {
+ extern const char *g_pszLogFile;
ErrorF("winShadowUpdateDD - Memory location of the shadow "
"surface has changed, trying to update the root window "
"pixmap header to point to the new address. If you get "
@@ -630,9 +611,7 @@ winCloseScreenShadowDD(ScreenPtr pScreen)
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
Bool fReturn;
-#if CYGDEBUG
winDebug("winCloseScreenShadowDD - Freeing screen resources\n");
-#endif
/* Flag that the screen is closed */
pScreenPriv->fClosed = TRUE;
@@ -669,7 +648,7 @@ winCloseScreenShadowDD(ScreenPtr pScreen)
#if defined(XWIN_CLIPBOARD) || defined(XWIN_MULTIWINDOW)
/* Destroy the thread startup mutex */
- pthread_mutex_destroy(&pScreenPriv->pmServerStarted);
+ if (pScreenPriv->pmServerStarted) pthread_mutex_destroy (&pScreenPriv->pmServerStarted);
#endif
/* Kill our screeninfo's pointer to the screen */
@@ -711,13 +690,13 @@ winInitVisualsShadowDD(ScreenPtr pScreen)
else
pScreenPriv->dwBitsPerRGB = dwBlueBits;
- ErrorF("winInitVisualsShadowDD - Masks %08x %08x %08x BPRGB %d d %d "
- "bpp %d\n",
- (unsigned int) pScreenPriv->dwRedMask,
- (unsigned int) pScreenPriv->dwGreenMask,
- (unsigned int) pScreenPriv->dwBlueMask,
- (int) pScreenPriv->dwBitsPerRGB,
- (int) pScreenInfo->dwDepth, (int) pScreenInfo->dwBPP);
+ winDebug ("winInitVisualsShadowDD - Masks %08x %08x %08x BPRGB %d d %d "
+ "bpp %d\n",
+ (unsigned int) pScreenPriv->dwRedMask,
+ (unsigned int) pScreenPriv->dwGreenMask,
+ (unsigned int) pScreenPriv->dwBlueMask,
+ (int) pScreenPriv->dwBitsPerRGB,
+ (int) pScreenInfo->dwDepth, (int) pScreenInfo->dwBPP);
/* Create a single visual according to the Windows screen depth */
switch (pScreenInfo->dwDepth) {
@@ -771,9 +750,7 @@ winInitVisualsShadowDD(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winInitVisualsShadowDD - Returning\n");
-#endif
return TRUE;
}
@@ -1144,10 +1121,8 @@ winDestroyColormapShadowDD(ColormapPtr pColormap)
* we need to handle the default colormap in a special way.
*/
if (pColormap->flags & IsDefault) {
-#if CYGDEBUG
winDebug("winDestroyColormapShadowDD - Destroying default "
"colormap\n");
-#endif
/*
* FIXME: Walk the list of all screens, popping the default
diff --git a/xorg-server/hw/xwin/winshadddnl.c b/xorg-server/hw/xwin/winshadddnl.c
index 01097f295..af13aba52 100644
--- a/xorg-server/hw/xwin/winshadddnl.c
+++ b/xorg-server/hw/xwin/winshadddnl.c
@@ -87,6 +87,65 @@ static Bool
static Bool
winReleasePrimarySurfaceShadowDDNL(ScreenPtr pScreen);
+static HRESULT myIDirectDrawSurface4_Blt( ScreenPtr pScreen, RECT *pRect, RECT *prcSrc)
+{
+ HRESULT ddrval = DD_OK;
+ unsigned i;
+ winScreenPriv(pScreen);
+
+
+ for (i = 0; i < 3; ++i)
+ {
+ if (pScreenPriv->pddsPrimary4)
+ ddrval = IDirectDrawSurface4_Blt(pScreenPriv->pddsPrimary4, pRect, pScreenPriv->pddsShadow4, prcSrc, DDBLT_WAIT, NULL);
+ else
+ ddrval = DDERR_SURFACELOST; // Surface has been closed
+ /* Try to regain the primary surface and blit again if we've lost it */
+ if (ddrval == DDERR_SURFACELOST)
+ {
+ /* Surface was lost */
+ ErrorF ("IDirectDrawSurface4_Blt reported that the primary "
+ "surface was lost, trying to restore, retry: %d\n", i + 1);
+
+ /* Try to restore the surface, once */
+
+ if (i==1)
+ {
+ ErrorF("Recreating DDraw surface because restoring of surface didn't work.\n");
+ winAllocateFBShadowDDNL(pScreen);
+ }
+ else
+ {
+ ddrval = IDirectDraw4_RestoreAllSurfaces (pScreenPriv->pdd4);
+ ErrorF ("IDirectDraw4_RestoreAllSurfaces returned: ");
+ if (ddrval == DD_OK)
+ ErrorF ("DD_OK\n");
+ else if (ddrval == DDERR_WRONGMODE)
+ ErrorF ("DDERR_WRONGMODE\n");
+ else if (ddrval == DDERR_INCOMPATIBLEPRIMARY)
+ ErrorF ("DDERR_INCOMPATIBLEPRIMARY\n");
+ else if (ddrval == DDERR_UNSUPPORTED)
+ ErrorF ("DDERR_UNSUPPORTED\n");
+ else if (ddrval == DDERR_INVALIDPARAMS)
+ ErrorF ("DDERR_INVALIDPARAMS\n");
+ else if (ddrval == DDERR_INVALIDOBJECT)
+ ErrorF ("DDERR_INVALIDOBJECT\n");
+ else
+ ErrorF ("unknown error: %08x\n", ddrval);
+ }
+ /* Loop around to try the blit one more time */
+ continue;
+ }
+ else if (FAILED (ddrval))
+ {
+ ErrorF ("IDirectDrawSurface4_Blt failed, but surface not "
+ "lost: %08x %d\n", ddrval, ddrval);
+ }
+ break;
+ }
+ return ddrval;
+}
+
/*
* Create the primary surface and attach the clipper.
* Used for both the initial surface creation and during
@@ -127,9 +186,7 @@ winCreatePrimarySurfaceShadowDDNL(ScreenPtr pScreen)
return FALSE;
}
-#if 1
winDebug("winCreatePrimarySurfaceShadowDDNL - Created primary surface\n");
-#endif
/* Attach our clipper to our primary surface handle */
ddrval = IDirectDrawSurface4_SetClipper(pScreenPriv->pddsPrimary4,
@@ -140,34 +197,22 @@ winCreatePrimarySurfaceShadowDDNL(ScreenPtr pScreen)
return FALSE;
}
-#if 1
winDebug("winCreatePrimarySurfaceShadowDDNL - Attached clipper to primary "
"surface\n");
-#endif
/* Everything was correct */
return TRUE;
}
-/*
- * Detach the clipper and release the primary surface.
- * Called from WM_DISPLAYCHANGE.
- */
-
-static Bool
-winReleasePrimarySurfaceShadowDDNL(ScreenPtr pScreen)
+static void ClosePrimarySurfaceShadowDDNL (winPrivScreenPtr pScreenPriv)
{
- winScreenPriv(pScreen);
-
- winDebug("winReleasePrimarySurfaceShadowDDNL - Hello\n");
-
/* Release the primary surface and clipper, if they exist */
if (pScreenPriv->pddsPrimary4) {
/*
* Detach the clipper from the primary surface.
* NOTE: We do this explicity for clarity. The Clipper is not released.
*/
- IDirectDrawSurface4_SetClipper(pScreenPriv->pddsPrimary4, NULL);
+ IDirectDrawSurface4_SetClipper (pScreenPriv->pddsPrimary4, NULL);
winDebug("winReleasePrimarySurfaceShadowDDNL - Detached clipper\n");
@@ -176,6 +221,47 @@ winReleasePrimarySurfaceShadowDDNL(ScreenPtr pScreen)
pScreenPriv->pddsPrimary4 = NULL;
}
+}
+
+static void ReleaseDDNL(winPrivScreenPtr pScreenPriv)
+{
+ /* Release the clipper object */
+ if (pScreenPriv->pddcPrimary)
+ {
+ IDirectDrawClipper_Release (pScreenPriv->pddcPrimary);
+ pScreenPriv->pddcPrimary = NULL;
+ }
+
+ /* Free the DirectDraw4 object, if there is one */
+ if (pScreenPriv->pdd4)
+ {
+ IDirectDraw4_RestoreDisplayMode (pScreenPriv->pdd4);
+ IDirectDraw4_Release (pScreenPriv->pdd4);
+ pScreenPriv->pdd4 = NULL;
+ }
+
+ /* Free the DirectDraw object, if there is one */
+ if (pScreenPriv->pdd)
+ {
+ IDirectDraw_Release (pScreenPriv->pdd);
+ pScreenPriv->pdd = NULL;
+ }
+}
+
+/*
+ * Detach the clipper and release the primary surface.
+ * Called from WM_DISPLAYCHANGE.
+ */
+
+static Bool
+winReleasePrimarySurfaceShadowDDNL (ScreenPtr pScreen)
+{
+ winScreenPriv(pScreen);
+
+ winDebug ("winReleasePrimarySurfaceShadowDDNL - Hello\n");
+
+ ClosePrimarySurfaceShadowDDNL(pScreenPriv);
+
winDebug("winReleasePrimarySurfaceShadowDDNL - Released primary surface\n");
return TRUE;
@@ -199,28 +285,41 @@ winAllocateFBShadowDDNL(ScreenPtr pScreen)
char *lpSurface = NULL;
DDPIXELFORMAT ddpfPrimary;
-#if CYGDEBUG
winDebug("winAllocateFBShadowDDNL - w %d h %d d %d\n",
pScreenInfo->dwWidth, pScreenInfo->dwHeight, pScreenInfo->dwDepth);
-#endif
/* Set the padded screen width */
pScreenInfo->dwPaddedWidth = PixmapBytePad(pScreenInfo->dwWidth,
pScreenInfo->dwBPP);
- /* Allocate memory for our shadow surface */
- lpSurface = malloc(pScreenInfo->dwPaddedWidth * pScreenInfo->dwHeight);
- if (lpSurface == NULL) {
- ErrorF("winAllocateFBShadowDDNL - Could not allocate bits\n");
- return FALSE;
- }
-
- /*
- * Initialize the framebuffer memory so we don't get a
- * strange display at startup
- */
- ZeroMemory(lpSurface, pScreenInfo->dwPaddedWidth * pScreenInfo->dwHeight);
+ if ( pScreenInfo->pfb)
+ {
+ ErrorF("winAllocateFBShadowDDNL calling for the second time, reallocating\n");
+ lpSurface=pScreenInfo->pfb;
+ if (pScreenPriv->pddsShadow4)
+ {
+ IDirectDrawSurface4_Release (pScreenPriv->pddsShadow4);
+ pScreenPriv->pddsShadow4 = NULL;
+ }
+ ClosePrimarySurfaceShadowDDNL(pScreenPriv);
+ ReleaseDDNL(pScreenPriv);
+ }
+ else
+ {
+ /* Allocate memory for our shadow surface */
+ lpSurface = malloc (pScreenInfo->dwPaddedWidth * pScreenInfo->dwHeight);
+ if (lpSurface == NULL) {
+ ErrorF ("winAllocateFBShadowDDNL - Could not allocate bits\n");
+ return FALSE;
+ }
+
+ /*
+ * Initialize the framebuffer memory so we don't get a
+ * strange display at startup
+ */
+ ZeroMemory (lpSurface, pScreenInfo->dwPaddedWidth * pScreenInfo->dwHeight);
+ }
/* Create a clipper */
ddrval = (*g_fpDirectDrawCreateClipper) (0,
&pScreenPriv->pddcPrimary, NULL);
@@ -230,9 +329,7 @@ winAllocateFBShadowDDNL(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winAllocateFBShadowDDNL - Created a clipper\n");
-#endif
/* Attach the clipper to our display window */
ddrval = IDirectDrawClipper_SetHWnd(pScreenPriv->pddcPrimary,
@@ -243,9 +340,7 @@ winAllocateFBShadowDDNL(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winAllocateFBShadowDDNL - Attached clipper to window\n");
-#endif
/* Create a DirectDraw object, store the address at lpdd */
ddrval = (*g_fpDirectDrawCreate) (NULL,
@@ -257,9 +352,7 @@ winAllocateFBShadowDDNL(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winAllocateFBShadowDDNL - Created and initialized DD\n");
-#endif
/* Get a DirectDraw4 interface pointer */
ddrval = IDirectDraw_QueryInterface(pScreenPriv->pdd,
@@ -398,13 +491,11 @@ winAllocateFBShadowDDNL(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winAllocateFBShadowDDNL - Primary masks: %08x %08x %08x "
"dwRGBBitCount: %d\n",
ddpfPrimary.u2.dwRBitMask,
ddpfPrimary.u3.dwGBitMask,
ddpfPrimary.u4.dwBBitMask, ddpfPrimary.u1.dwRGBBitCount);
-#endif
/* Describe the shadow surface to be created */
/*
@@ -439,19 +530,15 @@ winAllocateFBShadowDDNL(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG || YES
winDebug("winAllocateFBShadowDDNL - Created shadow pitch: %d\n",
(int) ddsdShadow.u1.lPitch);
-#endif
/* Grab the pitch from the surface desc */
pScreenInfo->dwStride = (ddsdShadow.u1.lPitch * 8)
/ pScreenInfo->dwBPP;
-#if CYGDEBUG || YES
winDebug("winAllocateFBShadowDDNL - Created shadow stride: %d\n",
(int) pScreenInfo->dwStride);
-#endif
/* Save the pointer to our surface memory */
pScreenInfo->pfb = lpSurface;
@@ -461,9 +548,7 @@ winAllocateFBShadowDDNL(ScreenPtr pScreen)
pScreenPriv->dwGreenMask = ddsdShadow.u4.ddpfPixelFormat.u3.dwGBitMask;
pScreenPriv->dwBlueMask = ddsdShadow.u4.ddpfPixelFormat.u4.dwBBitMask;
-#if CYGDEBUG
winDebug("winAllocateFBShadowDDNL - Returning\n");
-#endif
return TRUE;
}
@@ -485,24 +570,7 @@ winFreeFBShadowDDNL(ScreenPtr pScreen)
/* Detach the clipper from the primary surface and release the primary surface, if there is one */
winReleasePrimarySurfaceShadowDDNL(pScreen);
- /* Release the clipper object */
- if (pScreenPriv->pddcPrimary) {
- IDirectDrawClipper_Release(pScreenPriv->pddcPrimary);
- pScreenPriv->pddcPrimary = NULL;
- }
-
- /* Free the DirectDraw4 object, if there is one */
- if (pScreenPriv->pdd4) {
- IDirectDraw4_RestoreDisplayMode(pScreenPriv->pdd4);
- IDirectDraw4_Release(pScreenPriv->pdd4);
- pScreenPriv->pdd4 = NULL;
- }
-
- /* Free the DirectDraw object, if there is one */
- if (pScreenPriv->pdd) {
- IDirectDraw_Release(pScreenPriv->pdd);
- pScreenPriv->pdd = NULL;
- }
+ ReleaseDDNL(pScreenPriv);
/* Invalidate the ScreenInfo's fb pointer */
pScreenInfo->pfb = NULL;
@@ -518,7 +586,6 @@ winShadowUpdateDDNL(ScreenPtr pScreen, shadowBufPtr pBuf)
winScreenPriv(pScreen);
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
RegionPtr damage = shadowDamage(pBuf);
- HRESULT ddrval = DD_OK;
RECT rcDest, rcSrc;
POINT ptOrigin;
DWORD dwBox = RegionNumRects(damage);
@@ -565,27 +632,10 @@ winShadowUpdateDDNL(ScreenPtr pScreen, shadowBufPtr pBuf)
rcDest.bottom = ptOrigin.y + rcSrc.bottom;
/* Blit the damaged areas */
- ddrval = IDirectDrawSurface4_Blt(pScreenPriv->pddsPrimary4,
- &rcDest,
- pScreenPriv->pddsShadow4,
- &rcSrc, DDBLT_WAIT, NULL);
- if (FAILED(ddrval)) {
- static int s_iFailCount = 0;
-
- if (s_iFailCount < FAIL_MSG_MAX_BLT) {
- ErrorF("winShadowUpdateDDNL - IDirectDrawSurface4_Blt () "
- "failed: %08x\n", (unsigned int) ddrval);
-
- ++s_iFailCount;
-
- if (s_iFailCount == FAIL_MSG_MAX_BLT) {
- ErrorF("winShadowUpdateDDNL - IDirectDrawSurface4_Blt "
- "failure message maximum (%d) reached. No "
- "more failure messages will be printed.\n",
- FAIL_MSG_MAX_BLT);
- }
- }
- }
+ if (pScreenPriv->pddsPrimary4)
+ myIDirectDrawSurface4_Blt (pScreen,
+ &rcDest,
+ &rcSrc);
/* Get a pointer to the next box */
++pBox;
@@ -604,11 +654,9 @@ winShadowUpdateDDNL(ScreenPtr pScreen, shadowBufPtr pBuf)
DeleteObject(hrgnCombined);
hrgnCombined = NULL;
-#if CYGDEBUG
winDebug("winShadowUpdateDDNL - be x1 %d y1 %d x2 %d y2 %d\n",
pBoxExtents->x1, pBoxExtents->y1,
pBoxExtents->x2, pBoxExtents->y2);
-#endif
/* Calculating a bounding box for the source is easy */
rcSrc.left = pBoxExtents->x1;
@@ -623,10 +671,7 @@ winShadowUpdateDDNL(ScreenPtr pScreen, shadowBufPtr pBuf)
rcDest.bottom = ptOrigin.y + rcSrc.bottom;
/* Our Blt should be clipped to the invalidated region */
- ddrval = IDirectDrawSurface4_Blt(pScreenPriv->pddsPrimary4,
- &rcDest,
- pScreenPriv->pddsShadow4,
- &rcSrc, DDBLT_WAIT, NULL);
+ myIDirectDrawSurface4_Blt (pScreen, &rcDest, &rcSrc);
/* Reset the clip region */
SelectClipRgn(pScreenPriv->hdcScreen, NULL);
@@ -655,11 +700,9 @@ winCloseScreenShadowDDNL(ScreenPtr pScreen)
{
winScreenPriv(pScreen);
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
- Bool fReturn;
+ Bool fReturn=FALSE;
-#if CYGDEBUG
winDebug("winCloseScreenShadowDDNL - Freeing screen resources\n");
-#endif
/* Flag that the screen is closed */
pScreenPriv->fClosed = TRUE;
@@ -696,7 +739,7 @@ winCloseScreenShadowDDNL(ScreenPtr pScreen)
#if defined(XWIN_CLIPBOARD) || defined(XWIN_MULTIWINDOW)
/* Destroy the thread startup mutex */
- pthread_mutex_destroy(&pScreenPriv->pmServerStarted);
+ if (pScreenPriv->pmServerStarted) pthread_mutex_destroy (&pScreenPriv->pmServerStarted);
#endif
/* Kill our screeninfo's pointer to the screen */
@@ -798,9 +841,7 @@ winInitVisualsShadowDDNL(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winInitVisualsShadowDDNL - Returning\n");
-#endif
return TRUE;
}
@@ -892,58 +933,14 @@ winBltExposedRegionsShadowDDNL(ScreenPtr pScreen)
rcSrc.right = pScreenInfo->dwWidth;
rcSrc.bottom = pScreenInfo->dwHeight;
- /* Try to regain the primary surface and blit again if we've lost it */
- for (i = 0; i <= WIN_REGAIN_SURFACE_RETRIES; ++i) {
- /* Our Blt should be clipped to the invalidated region */
- ddrval = IDirectDrawSurface4_Blt(pScreenPriv->pddsPrimary4,
- &rcDest,
- pScreenPriv->pddsShadow4,
- &rcSrc, DDBLT_WAIT, NULL);
- if (ddrval == DDERR_SURFACELOST) {
- /* Surface was lost */
- winErrorFVerb(1, "winBltExposedRegionsShadowDDNL - "
- "IDirectDrawSurface4_Blt reported that the primary "
- "surface was lost, trying to restore, retry: %d\n",
- i + 1);
-
- /* Try to restore the surface, once */
-
- ddrval = IDirectDrawSurface4_Restore(pScreenPriv->pddsPrimary4);
- winDebug("winBltExposedRegionsShadowDDNL - "
- "IDirectDrawSurface4_Restore returned: ");
- if (ddrval == DD_OK)
- winDebug("DD_OK\n");
- else if (ddrval == DDERR_WRONGMODE)
- winDebug("DDERR_WRONGMODE\n");
- else if (ddrval == DDERR_INCOMPATIBLEPRIMARY)
- winDebug("DDERR_INCOMPATIBLEPRIMARY\n");
- else if (ddrval == DDERR_UNSUPPORTED)
- winDebug("DDERR_UNSUPPORTED\n");
- else if (ddrval == DDERR_INVALIDPARAMS)
- winDebug("DDERR_INVALIDPARAMS\n");
- else if (ddrval == DDERR_INVALIDOBJECT)
- winDebug("DDERR_INVALIDOBJECT\n");
- else
- winDebug("unknown error: %08x\n", (unsigned int) ddrval);
-
- /* Loop around to try the blit one more time */
- continue;
- }
- else if (FAILED(ddrval)) {
- fReturn = FALSE;
- winErrorFVerb(1, "winBltExposedRegionsShadowDDNL - "
- "IDirectDrawSurface4_Blt failed, but surface not "
- "lost: %08x %d\n",
- (unsigned int) ddrval, (int) ddrval);
- goto winBltExposedRegionsShadowDDNL_Exit;
- }
- else {
- /* Success, stop looping */
- break;
- }
+ /* Our Blt should be clipped to the invalidated region */
+ ddrval = myIDirectDrawSurface4_Blt (pScreen, &rcDest, &rcSrc);
+ if (FAILED (ddrval))
+ {
+ fReturn = FALSE;
}
- winBltExposedRegionsShadowDDNL_Exit:
+winBltExposedRegionsShadowDDNL_Exit:
/* EndPaint frees the DC */
if (hdcUpdate != NULL)
EndPaint(pScreenPriv->hwndScreen, &ps);
@@ -982,7 +979,6 @@ winRedrawScreenShadowDDNL(ScreenPtr pScreen)
{
winScreenPriv(pScreen);
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
- HRESULT ddrval = DD_OK;
RECT rcSrc, rcDest;
POINT ptOrigin;
@@ -1003,15 +999,7 @@ winRedrawScreenShadowDDNL(ScreenPtr pScreen)
rcSrc.bottom = pScreenInfo->dwHeight;
/* Redraw the whole window, to take account for the new colors */
- ddrval = IDirectDrawSurface4_Blt(pScreenPriv->pddsPrimary4,
- &rcDest,
- pScreenPriv->pddsShadow4,
- &rcSrc, DDBLT_WAIT, NULL);
- if (FAILED(ddrval)) {
- ErrorF("winRedrawScreenShadowDDNL - IDirectDrawSurface4_Blt () "
- "failed: %08x\n", (unsigned int) ddrval);
- }
-
+ myIDirectDrawSurface4_Blt (pScreen, &rcDest, &rcSrc);
return TRUE;
}
@@ -1139,10 +1127,8 @@ winDestroyColormapShadowDDNL(ColormapPtr pColormap)
* we need to handle the default colormap in a special way.
*/
if (pColormap->flags & IsDefault) {
-#if CYGDEBUG
winDebug
("winDestroyColormapShadowDDNL - Destroying default colormap\n");
-#endif
/*
* FIXME: Walk the list of all screens, popping the default
diff --git a/xorg-server/hw/xwin/winshadgdi.c b/xorg-server/hw/xwin/winshadgdi.c
index ebc233924..9e981cea7 100644
--- a/xorg-server/hw/xwin/winshadgdi.c
+++ b/xorg-server/hw/xwin/winshadgdi.c
@@ -92,8 +92,7 @@ winQueryScreenDIBFormat(ScreenPtr pScreen, BITMAPINFOHEADER * pbmih)
{
winScreenPriv(pScreen);
HBITMAP hbmp;
-
-#if CYGDEBUG
+#ifdef WINDBG
LPDWORD pdw = NULL;
#endif
@@ -116,7 +115,7 @@ winQueryScreenDIBFormat(ScreenPtr pScreen, BITMAPINFOHEADER * pbmih)
return FALSE;
}
-#if CYGDEBUG
+#ifdef WINDBG
/* Get a pointer to bitfields */
pdw = (DWORD *) ((CARD8 *) pbmih + sizeof(BITMAPINFOHEADER));
@@ -169,8 +168,8 @@ winQueryRGBBitsAndMasks(ScreenPtr pScreen)
/* Color masks for 24 bpp are standardized */
if (GetDeviceCaps(pScreenPriv->hdcScreen, PLANES)
* GetDeviceCaps(pScreenPriv->hdcScreen, BITSPIXEL) == 24) {
- ErrorF("winQueryRGBBitsAndMasks - GetDeviceCaps (BITSPIXEL) "
- "returned 24 for the screen. Using default 24bpp masks.\n");
+ winDebug ("winQueryRGBBitsAndMasks - GetDeviceCaps (BITSPIXEL) "
+ "returned 24 for the screen. Using default 24bpp masks.\n");
/* 8 bits per primary color */
pScreenPriv->dwBitsPerRGB = 8;
@@ -196,7 +195,7 @@ winQueryRGBBitsAndMasks(ScreenPtr pScreen)
/* Get a pointer to bitfields */
pdw = (DWORD *) ((CARD8 *) pbmih + sizeof(BITMAPINFOHEADER));
-#if CYGDEBUG
+#ifdef WINDBG
winDebug("%s - Masks: %08x %08x %08x\n", __FUNCTION__,
pdw[0], pdw[1], pdw[2]);
winDebug("%s - Bitmap: %dx%d %d bpp %d planes\n", __FUNCTION__,
@@ -328,10 +327,10 @@ winAllocateFBShadowGDI(ScreenPtr pScreen)
pScreenPriv->pbmih->biWidth = pScreenInfo->dwWidth;
pScreenPriv->pbmih->biHeight = -pScreenInfo->dwHeight;
- ErrorF("winAllocateFBShadowGDI - Creating DIB with width: %d height: %d "
- "depth: %d\n",
- (int) pScreenPriv->pbmih->biWidth,
- (int) -pScreenPriv->pbmih->biHeight, pScreenPriv->pbmih->biBitCount);
+ winDebug ("winAllocateFBShadowGDI - Creating DIB with width: %d height: %d "
+ "depth: %d\n",
+ (int) pScreenPriv->pbmih->biWidth,
+ (int) -pScreenPriv->pbmih->biHeight, pScreenPriv->pbmih->biBitCount);
/* Create a DI shadow bitmap with a bit pointer */
pScreenPriv->hbmpShadow = CreateDIBSection(pScreenPriv->hdcScreen,
@@ -340,32 +339,26 @@ winAllocateFBShadowGDI(ScreenPtr pScreen)
(VOID **) &pScreenInfo->pfb,
NULL, 0);
if (pScreenPriv->hbmpShadow == NULL || pScreenInfo->pfb == NULL) {
- winW32Error(2, "winAllocateFBShadowGDI - CreateDIBSection failed:");
+ winW32Error ("winAllocateFBShadowGDI - CreateDIBSection failed:");
return FALSE;
}
else {
-#if CYGDEBUG
winDebug("winAllocateFBShadowGDI - Shadow buffer allocated\n");
-#endif
}
/* Get information about the bitmap that was allocated */
GetObject(pScreenPriv->hbmpShadow, sizeof(dibsection), &dibsection);
-#if CYGDEBUG || YES
/* Print information about bitmap allocated */
winDebug("winAllocateFBShadowGDI - Dibsection width: %d height: %d "
"depth: %d size image: %d\n",
(int) dibsection.dsBmih.biWidth, (int) dibsection.dsBmih.biHeight,
dibsection.dsBmih.biBitCount, (int) dibsection.dsBmih.biSizeImage);
-#endif
/* Select the shadow bitmap into the shadow DC */
SelectObject(pScreenPriv->hdcShadow, pScreenPriv->hbmpShadow);
-#if CYGDEBUG
winDebug("winAllocateFBShadowGDI - Attempting a shadow blit\n");
-#endif
/* Do a test blit from the shadow to the screen, I think */
fReturn = BitBlt(pScreenPriv->hdcScreen,
@@ -373,20 +366,14 @@ winAllocateFBShadowGDI(ScreenPtr pScreen)
pScreenInfo->dwWidth, pScreenInfo->dwHeight,
pScreenPriv->hdcShadow, 0, 0, SRCCOPY);
if (fReturn) {
-#if CYGDEBUG
winDebug("winAllocateFBShadowGDI - Shadow blit success\n");
-#endif
}
else {
- winW32Error(2, "winAllocateFBShadowGDI - Shadow blit failure\n");
-#if 0
- return FALSE;
-#else
+ winW32Error ("winAllocateFBShadowGDI - Shadow blit failure\n");
/* ago: ignore this error. The blit fails with wine, but does not
* cause any problems later. */
fReturn = TRUE;
-#endif
}
/* Look for height weirdness */
@@ -399,10 +386,8 @@ winAllocateFBShadowGDI(ScreenPtr pScreen)
/ dibsection.dsBmih.biHeight)
* 8) / pScreenInfo->dwBPP;
-#if CYGDEBUG || YES
winDebug("winAllocateFBShadowGDI - Created shadow stride: %d\n",
(int) pScreenInfo->dwStride);
-#endif
#ifdef XWIN_MULTIWINDOW
/* Redraw all windows */
@@ -462,15 +447,16 @@ winShadowUpdateGDI(ScreenPtr pScreen, shadowBufPtr pBuf)
if (dwBox != 1) {
++s_dwNonUnitRegions;
- ErrorF("winShadowUpdatGDI - dwBox: %d\n", dwBox);
+ winDebug ("winShadowUpdatGDI - dwBox: %d\n", dwBox);
}
if ((s_dwTotalUpdates % 100) == 0)
- ErrorF("winShadowUpdateGDI - %d%% non-unity regions, avg boxes: %d "
- "nu: %d tu: %d\n",
- (s_dwNonUnitRegions * 100) / s_dwTotalUpdates,
- s_dwTotalBoxes / s_dwTotalUpdates,
- s_dwNonUnitRegions, s_dwTotalUpdates);
+ winDebug ("winShadowUpdateGDI - %d%% non-unity regions, avg boxes: %d "
+ "nu: %d tu: %d\n",
+ (s_dwNonUnitRegions * 100) / s_dwTotalUpdates,
+ s_dwTotalBoxes / s_dwTotalUpdates,
+ s_dwNonUnitRegions, s_dwTotalUpdates);
+ }
#endif /* XWIN_UPDATESTATS */
/*
@@ -580,9 +566,7 @@ winCloseScreenShadowGDI(ScreenPtr pScreen)
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
Bool fReturn;
-#if CYGDEBUG
winDebug("winCloseScreenShadowGDI - Freeing screen resources\n");
-#endif
/* Flag that the screen is closed */
pScreenPriv->fClosed = TRUE;
@@ -622,7 +606,7 @@ winCloseScreenShadowGDI(ScreenPtr pScreen)
#if defined(XWIN_CLIPBOARD) || defined(XWIN_MULTIWINDOW)
/* Destroy the thread startup mutex */
- pthread_mutex_destroy(&pScreenPriv->pmServerStarted);
+ if (pScreenPriv->pmServerStarted) pthread_mutex_destroy (&pScreenPriv->pmServerStarted);
#endif
/* Invalidate our screeninfo's pointer to the screen */
@@ -649,13 +633,13 @@ winInitVisualsShadowGDI(ScreenPtr pScreen)
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
/* Display debugging information */
- ErrorF("winInitVisualsShadowGDI - Masks %08x %08x %08x BPRGB %d d %d "
- "bpp %d\n",
- (unsigned int) pScreenPriv->dwRedMask,
- (unsigned int) pScreenPriv->dwGreenMask,
- (unsigned int) pScreenPriv->dwBlueMask,
- (int) pScreenPriv->dwBitsPerRGB,
- (int) pScreenInfo->dwDepth, (int) pScreenInfo->dwBPP);
+ winDebug ("winInitVisualsShadowGDI - Masks %08x %08x %08x BPRGB %d d %d "
+ "bpp %d\n",
+ (unsigned int) pScreenPriv->dwRedMask,
+ (unsigned int) pScreenPriv->dwGreenMask,
+ (unsigned int) pScreenPriv->dwBlueMask,
+ (int) pScreenPriv->dwBitsPerRGB,
+ (int) pScreenInfo->dwDepth, (int) pScreenInfo->dwBPP);
/* Create a single visual according to the Windows screen depth */
switch (pScreenInfo->dwDepth) {
@@ -707,9 +691,7 @@ winInitVisualsShadowGDI(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winInitVisualsShadowGDI - Returning\n");
-#endif
return TRUE;
}
@@ -868,16 +850,12 @@ winRealizeInstalledPaletteShadowGDI(ScreenPtr pScreen)
winScreenPriv(pScreen);
winPrivCmapPtr pCmapPriv = NULL;
-#if CYGDEBUG
winDebug("winRealizeInstalledPaletteShadowGDI\n");
-#endif
/* Don't do anything if there is not a colormap */
if (pScreenPriv->pcmapInstalled == NULL) {
-#if CYGDEBUG
winDebug("winRealizeInstalledPaletteShadowGDI - No colormap "
"installed\n");
-#endif
return TRUE;
}
@@ -1082,10 +1060,8 @@ winDestroyColormapShadowGDI(ColormapPtr pColormap)
* we need to handle the default colormap in a special way.
*/
if (pColormap->flags & IsDefault) {
-#if CYGDEBUG
winDebug("winDestroyColormapShadowGDI - Destroying default "
"colormap\n");
-#endif
/*
* FIXME: Walk the list of all screens, popping the default
diff --git a/xorg-server/hw/xwin/wintrayicon.c b/xorg-server/hw/xwin/wintrayicon.c
index e0aa7e5ab..3c7820cf7 100644
--- a/xorg-server/hw/xwin/wintrayicon.c
+++ b/xorg-server/hw/xwin/wintrayicon.c
@@ -36,34 +36,57 @@
#include <shellapi.h>
#include "winprefs.h"
+static NOTIFYICONDATA nid;
/*
* Initialize the tray icon
*/
void
-winInitNotifyIcon(winPrivScreenPtr pScreenPriv)
+winInitNotifyIcon(winPrivScreenPtr pScreenPriv, Bool Modify)
{
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
- NOTIFYICONDATA nid = { 0 };
+ char HostName[256];
- nid.cbSize = sizeof(NOTIFYICONDATA);
- nid.hWnd = pScreenPriv->hwndScreen;
- nid.uID = pScreenInfo->dwScreen;
- nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
- nid.uCallbackMessage = WM_TRAYICON;
- nid.hIcon = winTaskbarIcon();
+ if (!Modify)
+ {
+ nid.cbSize = sizeof(NOTIFYICONDATA);
+ nid.hWnd = pScreenPriv->hwndScreen;
+ nid.uID = pScreenInfo->dwScreen;
+ nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
+ nid.uCallbackMessage = WM_TRAYICON;
+ nid.hIcon = winTaskbarIcon();
+
+ /* Save handle to the icon so it can be freed later */
+ pScreenPriv->hiconNotifyIcon = nid.hIcon;
+ }
- /* Save handle to the icon so it can be freed later */
- pScreenPriv->hiconNotifyIcon = nid.hIcon;
+ gethostname(HostName,256);
/* Set display and screen-specific tooltip text */
- snprintf(nid.szTip,
- sizeof(nid.szTip),
- PROJECT_NAME " Server:%s.%d",
- display, (int) pScreenInfo->dwScreen);
+ if (g_pszQueryHost)
+ {
+ snprintf(nid.szTip,
+ sizeof(nid.szTip),
+ "%s - %s:%s.%d - %d clients",
+ g_pszQueryHost,
+ HostName,
+ display,
+ (int) pScreenInfo->dwScreen,
+ pScreenPriv->iConnectedClients);
+ }
+ else
+ {
+ snprintf (nid.szTip,
+ sizeof (nid.szTip),
+ "%s:%s.%d - %d clients",
+ HostName,
+ display,
+ (int) pScreenInfo->dwScreen,
+ pScreenPriv->iConnectedClients);
+ }
/* Add the tray icon */
- if (!Shell_NotifyIcon(NIM_ADD, &nid))
+ if (!Shell_NotifyIcon ((Modify) ? NIM_MODIFY : NIM_ADD, &nid))
ErrorF("winInitNotifyIcon - Shell_NotifyIcon Failed\n");
}
@@ -75,27 +98,16 @@ void
winDeleteNotifyIcon(winPrivScreenPtr pScreenPriv)
{
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
- NOTIFYICONDATA nid = { 0 };
-
-#if 0
- ErrorF("winDeleteNotifyIcon\n");
-#endif
- nid.cbSize = sizeof(NOTIFYICONDATA);
- nid.hWnd = pScreenPriv->hwndScreen;
- nid.uID = pScreenInfo->dwScreen;
+ if (!pScreenPriv->hiconNotifyIcon)
+ return;
/* Delete the tray icon */
- if (!Shell_NotifyIcon(NIM_DELETE, &nid)) {
- ErrorF("winDeleteNotifyIcon - Shell_NotifyIcon failed\n");
- return;
- }
+ Shell_NotifyIcon (NIM_DELETE, &nid);
/* Free the icon that was loaded */
- if (pScreenPriv->hiconNotifyIcon != NULL
- && DestroyIcon(pScreenPriv->hiconNotifyIcon) == 0) {
- ErrorF("winDeleteNotifyIcon - DestroyIcon failed\n");
- }
+ DestroyIcon (pScreenPriv->hiconNotifyIcon);
+
pScreenPriv->hiconNotifyIcon = NULL;
}
@@ -112,6 +124,17 @@ winHandleIconMessage(HWND hwnd, UINT message,
#endif
switch (lParam) {
+ case WM_MOUSEMOVE:
+ {
+ static int PrevNrClients;
+ int NrClients=GetLiveClients(pScreenPriv);
+ if (NrClients!=PrevNrClients)
+ {
+ PrevNrClients=NrClients;
+ winInitNotifyIcon (pScreenPriv, TRUE);
+ }
+ }
+ break;
case WM_LBUTTONUP:
/* Restack and bring all windows to top */
SetForegroundWindow (pScreenPriv->hwndScreen);
diff --git a/xorg-server/hw/xwin/winwin32rootless.c b/xorg-server/hw/xwin/winwin32rootless.c
index 724976a84..7ea7f0c4d 100644
--- a/xorg-server/hw/xwin/winwin32rootless.c
+++ b/xorg-server/hw/xwin/winwin32rootless.c
@@ -83,8 +83,7 @@ winMWExtWMQueryDIBFormat(win32RootlessWindowPtr pRLWinPriv,
BITMAPINFOHEADER * pbmih)
{
HBITMAP hbmp;
-
-#if CYGMULTIWINDOW_DEBUG
+#ifdef _DEBUG
LPDWORD pdw = NULL;
#endif
@@ -107,7 +106,7 @@ winMWExtWMQueryDIBFormat(win32RootlessWindowPtr pRLWinPriv,
return FALSE;
}
-#if CYGMULTIWINDOW_DEBUG
+#ifdef _DEBUG
/* Get a pointer to bitfields */
pdw = (DWORD *) ((CARD8 *) pbmih + sizeof(BITMAPINFOHEADER));
@@ -209,10 +208,8 @@ winMWExtWMCreateFrame(RootlessWindowPtr pFrame, ScreenPtr pScreen,
char *res_name, *res_class, *res_role;
static int s_iWindowID = 0;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMCreateFrame %d %d - %d %d\n",
newX, newY, pFrame->width, pFrame->height);
-#endif
pRLWinPriv =
(win32RootlessWindowPtr) malloc(sizeof(win32RootlessWindowRec));
@@ -262,9 +259,7 @@ winMWExtWMCreateFrame(RootlessWindowPtr pFrame, ScreenPtr pScreen,
pszWindowID[sizeof(pszWindowID) - 1] = 0;
strcat(pszClass, pszWindowID);
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMCreateFrame - Creating class: %s\n", pszClass);
-#endif
/* Setup our window class */
wc.cbSize = sizeof(wc);
@@ -300,9 +295,7 @@ winMWExtWMCreateFrame(RootlessWindowPtr pFrame, ScreenPtr pScreen,
fResult = FALSE;
}
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMCreateFrame - ShowWindow\n");
-#endif
//ShowWindow (pRLWinPriv->hWnd, SW_SHOWNOACTIVATE);
g_fNoConfigureWindow = FALSE;
@@ -311,28 +304,8 @@ winMWExtWMCreateFrame(RootlessWindowPtr pFrame, ScreenPtr pScreen,
winMWExtWMReshapeFrame(pFrame->wid, pShape);
}
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMCreateFrame - (%p) %p\n",
pFrame->wid, pRLWinPriv->hWnd);
-#if 0
- {
- WindowPtr pWin2 = NULL;
- win32RootlessWindowPtr pRLWinPriv2 = NULL;
-
- /* Check if the Windows window property for our X window pointer is valid */
- if ((pWin2 =
- (WindowPtr) GetProp(pRLWinPriv->hWnd, WIN_WINDOW_PROP)) != NULL) {
- pRLWinPriv2 =
- (win32RootlessWindowPtr) RootlessFrameForWindow(pWin2, FALSE);
- }
- winDebug("winMWExtWMCreateFrame2 (%08x) %08x\n",
- pRLWinPriv2, pRLWinPriv2->hWnd);
- if (pRLWinPriv != pRLWinPriv2 || pRLWinPriv->hWnd != pRLWinPriv2->hWnd) {
- winDebug("Error param missmatch\n");
- }
- }
-#endif
-#endif
winMWExtWMSetNativeProperty(pFrame);
@@ -349,29 +322,8 @@ winMWExtWMDestroyFrame(RootlessFrameID wid)
int iReturn;
char pszClass[CLASS_NAME_LENGTH];
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMDestroyFrame (%p) %p\n",
pRLWinPriv, pRLWinPriv->hWnd);
-#if 0
- {
- WindowPtr pWin2 = NULL;
- win32RootlessWindowPtr pRLWinPriv2 = NULL;
-
- /* Check if the Windows window property for our X window pointer is valid */
- if ((pWin2 =
- (WindowPtr) GetProp(pRLWinPriv->hWnd, WIN_WINDOW_PROP)) != NULL) {
- pRLWinPriv2 =
- (win32RootlessWindowPtr) RootlessFrameForWindow(pWin2, FALSE);
- }
- winDebug("winMWExtWMDestroyFrame2 (%08x) %08x\n",
- pRLWinPriv2, pRLWinPriv2->hWnd);
- if (pRLWinPriv != pRLWinPriv2 || pRLWinPriv->hWnd != pRLWinPriv2->hWnd) {
- winDebug("Error param missmatch\n");
- *(int *) 0 = 1; //raise exseption
- }
- }
-#endif
-#endif
/* Store the info we need to destroy after this window is gone */
hInstance = (HINSTANCE) GetClassLongPtr(pRLWinPriv->hWnd, GCLP_HMODULE);
@@ -387,22 +339,16 @@ winMWExtWMDestroyFrame(RootlessFrameID wid)
/* Only if we were able to get the name */
if (iReturn) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMDestroyFrame - Unregistering %s: ", pszClass);
-#endif
iReturn = UnregisterClass(pszClass, hInstance);
+
+ winDebug ("winMWExtWMDestroyFramew - Deleting Icon\n");
}
-#if CYGMULTIWINDOW_DEBUG
- winDebug("winMWExtWMDestroyFramew - Deleting Icon\n");
-#endif
-
- winDestroyIcon(hIcon);
- winDestroyIcon(hIconSm);
+ winDestroyIcon(hiconClass);
+ winDestroyIcon(hiconSmClass);
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMDestroyFrame - done\n");
-#endif
}
void
@@ -415,10 +361,8 @@ winMWExtWMMoveFrame(RootlessFrameID wid, ScreenPtr pScreen, int iNewX,
DWORD dwStyle;
int iX, iY, iWidth, iHeight;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMMoveFrame (%p) (%d %d)\n", pRLWinPriv, iNewX,
iNewY);
-#endif
/* Get the Windows window style and extended style */
dwExStyle = GetWindowLongPtr(pRLWinPriv->hWnd, GWL_EXSTYLE);
@@ -435,29 +379,23 @@ winMWExtWMMoveFrame(RootlessFrameID wid, ScreenPtr pScreen, int iNewX,
/* Store the origin, height, and width in a rectangle structure */
SetRect(&rcNew, iX, iY, iX + iWidth, iY + iHeight);
-#ifdef CYGMULTIWINDOW_DEBUG
winDebug("\tWindow {%d, %d, %d, %d}, {%d, %d}\n",
rcNew.left, rcNew.top, rcNew.right, rcNew.bottom,
rcNew.right - rcNew.left, rcNew.bottom - rcNew.top);
-#endif
/*
* Calculate the required size of the Windows window rectangle,
* given the size of the Windows window client area.
*/
AdjustWindowRectEx(&rcNew, dwStyle, FALSE, dwExStyle);
-#ifdef CYGMULTIWINDOW_DEBUG
winDebug("\tAdjusted {%d, %d, %d, %d}, {%d, %d}\n",
rcNew.left, rcNew.top, rcNew.right, rcNew.bottom,
rcNew.right - rcNew.left, rcNew.bottom - rcNew.top);
-#endif
g_fNoConfigureWindow = TRUE;
SetWindowPos(pRLWinPriv->hWnd, NULL, rcNew.left, rcNew.top, 0, 0,
SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOZORDER);
g_fNoConfigureWindow = FALSE;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMMoveFrame (%p) done\n", pRLWinPriv);
-#endif
}
void
@@ -473,10 +411,8 @@ winMWExtWMResizeFrame(RootlessFrameID wid, ScreenPtr pScreen,
DWORD dwStyle;
int iX, iY;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMResizeFrame (%p) (%d %d)-(%d %d)\n",
pRLWinPriv, iNewX, iNewY, uiNewWidth, uiNewHeight);
-#endif
pRLWinPriv->fResized = TRUE;
@@ -525,9 +461,8 @@ winMWExtWMRestackFrame(RootlessFrameID wid, RootlessFrameID nextWid)
Bool fFirst = TRUE;
Bool fNeedRestack = TRUE;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMRestackFrame (%p)\n", pRLWinPriv);
-#endif
+
if (pScreenPriv && pScreenPriv->fRestacking)
return;
@@ -542,18 +477,16 @@ winMWExtWMRestackFrame(RootlessFrameID wid, RootlessFrameID nextWid)
ShowWindow(pRLWinPriv->hWnd, SW_SHOWNOACTIVATE);
if (pRLNextWinPriv == NULL) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("Win %08x is top\n", pRLWinPriv);
-#endif
pScreenPriv->widTop = wid;
SetWindowPos(pRLWinPriv->hWnd, HWND_TOP,
0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
- else if (winIsInternalWMRunning(pScreenInfo)) {
- /* using mulwinidow wm */
-#if CYGMULTIWINDOW_DEBUG
+#ifdef XWIN_MULTIWINDOWINTWM
+ else if (winIsInternalWMRunning(pScreenInfo)) {
+ /* using mulwinidow wm */
winDebug("Win %08x is not top\n", pRLWinPriv);
-#endif
+
for (hWnd = GetNextWindow(pRLWinPriv->hWnd, GW_HWNDPREV);
fNeedRestack && hWnd != NULL;
hWnd = GetNextWindow(hWnd, GW_HWNDPREV)) {
@@ -564,18 +497,14 @@ winMWExtWMRestackFrame(RootlessFrameID wid, RootlessFrameID nextWid)
if (hWnd == pRLNextWinPriv->hWnd) {
/* Enable interleave X window and Windows window */
if (!fFirst) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("raise: Insert after Win %08x\n",
pRLNextWinPriv);
-#endif
SetWindowPos(pRLWinPriv->hWnd, pRLNextWinPriv->hWnd,
0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
else {
-#if CYGMULTIWINDOW_DEBUG
winDebug("No change\n");
-#endif
}
fNeedRestack = FALSE;
break;
@@ -593,9 +522,8 @@ winMWExtWMRestackFrame(RootlessFrameID wid, RootlessFrameID nextWid)
if ((dwWindowProcessID == dwCurrentProcessID)
&& GetProp(hWnd, WIN_WINDOW_PROP)) {
if (hWnd == pRLNextWinPriv->hWnd) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("lower: Insert after Win %08x\n", pRLNextWinPriv);
-#endif
+
SetWindowPos(pRLWinPriv->hWnd, pRLNextWinPriv->hWnd,
0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
@@ -605,15 +533,14 @@ winMWExtWMRestackFrame(RootlessFrameID wid, RootlessFrameID nextWid)
}
}
}
+#endif
else {
/* using general wm like twm, wmaker etc.
Interleave X window and Windows window will cause problem. */
SetWindowPos(pRLWinPriv->hWnd, pRLNextWinPriv->hWnd,
0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMRestackFrame - done (%p)\n", pRLWinPriv);
-#endif
pRLWinPriv->fRestackingNow = FALSE;
}
@@ -625,9 +552,7 @@ winMWExtWMReshapeFrame(RootlessFrameID wid, RegionPtr pShape)
HRGN hRgn, hRgnWindow, hRgnClient;
RECT rcWindow, rcClient;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMReshapeFrame (%p)\n", pRLWinPriv);
-#endif
hRgn = winMWExtWMCreateRgnFromRegion(pShape);
@@ -654,9 +579,7 @@ winMWExtWMUnmapFrame(RootlessFrameID wid)
{
win32RootlessWindowPtr pRLWinPriv = (win32RootlessWindowPtr) wid;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMUnmapFrame (%p)\n", pRLWinPriv);
-#endif
g_fNoConfigureWindow = TRUE;
//ShowWindow (pRLWinPriv->hWnd, SW_MINIMIZE);
@@ -679,10 +602,8 @@ winMWExtWMStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow)
HDC hdcNew;
HBITMAP hbmpNew;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMStartDrawing (%p) %08x\n", pRLWinPriv,
pRLWinPriv->fDestroyed);
-#endif
if (!pRLWinPriv->fDestroyed) {
pScreen = pRLWinPriv->pFrame->win->drawable.pScreen;
@@ -691,12 +612,11 @@ winMWExtWMStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow)
if (pScreenPriv)
pScreenInfo = pScreenPriv->pScreenInfo;
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tpScreenPriv %p\n", pScreenPriv);
winDebug("\tpScreenInfo %p\n", pScreenInfo);
winDebug("\t(%d, %d)\n", (int) pRLWinPriv->pFrame->width,
(int) pRLWinPriv->pFrame->height);
-#endif
+
if (pRLWinPriv->hdcScreen == NULL) {
InitWin32RootlessEngine(pRLWinPriv);
}
@@ -731,15 +651,12 @@ winMWExtWMStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow)
//return FALSE;
}
else {
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMStartDrawing - Shadow buffer allocated\n");
-#endif
}
/* Get information about the bitmap that was allocated */
GetObject(hbmpNew, sizeof(dibsection), &dibsection);
-#if CYGMULTIWINDOW_DEBUG
/* Print information about bitmap allocated */
winDebug("winMWExtWMStartDrawing - Dibsection width: %d height: %d "
"depth: %d size image: %d\n",
@@ -747,14 +664,11 @@ winMWExtWMStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow)
(unsigned int) dibsection.dsBmih.biHeight,
(unsigned int) dibsection.dsBmih.biBitCount,
(unsigned int) dibsection.dsBmih.biSizeImage);
-#endif
/* Select the shadow bitmap into the shadow DC */
SelectObject(hdcNew, hbmpNew);
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMStartDrawing - Attempting a shadow blit\n");
-#endif
/* Blit from the old shadow to the new shadow */
fReturn = BitBlt(hdcNew,
@@ -763,9 +677,7 @@ winMWExtWMStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow)
pRLWinPriv->pFrame->height, pRLWinPriv->hdcShadow,
0, 0, SRCCOPY);
if (fReturn) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMStartDrawing - Shadow blit success\n");
-#endif
}
else {
ErrorF("winMWExtWMStartDrawing - Shadow blit failure\n");
@@ -784,10 +696,8 @@ winMWExtWMStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow)
pRLWinPriv->dwWidthBytes = dibsection.dsBm.bmWidthBytes;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMStartDrawing - bytesPerRow: %d\n",
(unsigned int) dibsection.dsBm.bmWidthBytes);
-#endif
/* Free the old shadow bitmap */
DeleteObject(pRLWinPriv->hdcShadow);
@@ -797,22 +707,18 @@ winMWExtWMStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow)
pRLWinPriv->hbmpShadow = hbmpNew;
pRLWinPriv->fResized = FALSE;
-#if CYGMULTIWINDOW_DEBUG && FALSE
winDebug("winMWExtWMStartDrawing - 0x%08x %d\n",
(unsigned int) pRLWinPriv->pfb,
(unsigned int) dibsection.dsBm.bmWidthBytes);
-#endif
}
}
else {
ErrorF("winMWExtWMStartDrawing - Already window was destroyed \n");
}
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMStartDrawing - done (%p) %p %d\n",
pRLWinPriv,
pRLWinPriv->pfb,
(unsigned int) pRLWinPriv->dwWidthBytes);
-#endif
*pixelData = pRLWinPriv->pfb;
*bytesPerRow = pRLWinPriv->dwWidthBytes;
}
@@ -820,31 +726,6 @@ winMWExtWMStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow)
void
winMWExtWMStopDrawing(RootlessFrameID wid, Bool fFlush)
{
-#if 0
- win32RootlessWindowPtr pRLWinPriv = (win32RootlessWindowPtr) wid;
- BLENDFUNCTION bfBlend;
- SIZE szWin;
- POINT ptSrc;
-
-#if CYGMULTIWINDOW_DEBUG || TRUE
- winDebug("winMWExtWMStopDrawing (%08x)\n", pRLWinPriv);
-#endif
- szWin.cx = pRLWinPriv->dwWidth;
- szWin.cy = pRLWinPriv->dwHeight;
- ptSrc.x = 0;
- ptSrc.y = 0;
- bfBlend.BlendOp = AC_SRC_OVER;
- bfBlend.BlendFlags = 0;
- bfBlend.SourceConstantAlpha = 255;
- bfBlend.AlphaFormat = AC_SRC_ALPHA;
-
- if (!UpdateLayeredWindow(pRLWinPriv->hWnd,
- NULL, NULL, &szWin,
- pRLWinPriv->hdcShadow, &ptSrc,
- 0, &bfBlend, ULW_ALPHA)) {
- ErrorF("winMWExtWMStopDrawing - UpdateLayeredWindow failed\n");
- }
-#endif
}
void
@@ -852,44 +733,6 @@ winMWExtWMUpdateRegion(RootlessFrameID wid, RegionPtr pDamage)
{
win32RootlessWindowPtr pRLWinPriv = (win32RootlessWindowPtr) wid;
-#if 0
- BLENDFUNCTION bfBlend;
- SIZE szWin;
- POINT ptSrc;
-#endif
-#if CYGMULTIWINDOW_DEBUG && 0
- winDebug("winMWExtWMUpdateRegion (%08x)\n", pRLWinPriv);
-#endif
-#if 0
- szWin.cx = pRLWinPriv->dwWidth;
- szWin.cy = pRLWinPriv->dwHeight;
- ptSrc.x = 0;
- ptSrc.y = 0;
- bfBlend.BlendOp = AC_SRC_OVER;
- bfBlend.BlendFlags = 0;
- bfBlend.SourceConstantAlpha = 255;
- bfBlend.AlphaFormat = AC_SRC_ALPHA;
-
- if (!UpdateLayeredWindow(pRLWinPriv->hWnd,
- NULL, NULL, &szWin,
- pRLWinPriv->hdcShadow, &ptSrc,
- 0, &bfBlend, ULW_ALPHA)) {
- LPVOID lpMsgBuf;
-
- /* Display a fancy error message */
- FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS,
- NULL,
- GetLastError(),
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
- (LPTSTR) &lpMsgBuf, 0, NULL);
-
- ErrorF("winMWExtWMUpdateRegion - UpdateLayeredWindow failed: %s\n",
- (LPSTR) lpMsgBuf);
- LocalFree(lpMsgBuf);
- }
-#endif
if (!g_fNoConfigureWindow)
UpdateWindow(pRLWinPriv->hWnd);
}
@@ -901,10 +744,8 @@ winMWExtWMDamageRects(RootlessFrameID wid, int nCount, const BoxRec * pRects,
win32RootlessWindowPtr pRLWinPriv = (win32RootlessWindowPtr) wid;
const BoxRec *pEnd;
-#if CYGMULTIWINDOW_DEBUG && 0
winDebug("winMWExtWMDamageRects (%08x, %d, %08x, %d, %d)\n",
pRLWinPriv, nCount, pRects, shift_x, shift_y);
-#endif
for (pEnd = pRects + nCount; pRects < pEnd; pRects++) {
RECT rcDmg;
@@ -923,10 +764,8 @@ winMWExtWMRootlessSwitchWindow(RootlessWindowPtr pFrame, WindowPtr oldWin)
{
win32RootlessWindowPtr pRLWinPriv = (win32RootlessWindowPtr) pFrame->wid;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMRootlessSwitchWindow (%p) %p\n",
pRLWinPriv, pRLWinPriv->hWnd);
-#endif
pRLWinPriv->pFrame = pFrame;
pRLWinPriv->fResized = TRUE;
@@ -938,26 +777,6 @@ winMWExtWMRootlessSwitchWindow(RootlessWindowPtr pFrame, WindowPtr oldWin)
DeleteProperty(serverClient, oldWin, AtmWindowsWmNativeHwnd());
winMWExtWMSetNativeProperty(pFrame);
-#if CYGMULTIWINDOW_DEBUG
-#if 0
- {
- WindowPtr pWin2 = NULL;
- win32RootlessWindowPtr pRLWinPriv2 = NULL;
-
- /* Check if the Windows window property for our X window pointer is valid */
- if ((pWin2 =
- (WindowPtr) GetProp(pRLWinPriv->hWnd, WIN_WINDOW_PROP)) != NULL) {
- pRLWinPriv2 =
- (win32RootlessWindowPtr) RootlessFrameForWindow(pWin2, FALSE);
- }
- winDebug("winMWExtWMSwitchFrame2 (%08x) %08x\n",
- pRLWinPriv2, pRLWinPriv2->hWnd);
- if (pRLWinPriv != pRLWinPriv2 || pRLWinPriv->hWnd != pRLWinPriv2->hWnd) {
- winDebug("Error param missmatch\n");
- }
- }
-#endif
-#endif
}
void
@@ -965,9 +784,7 @@ winMWExtWMCopyBytes(unsigned int width, unsigned int height,
const void *src, unsigned int srcRowBytes,
void *dst, unsigned int dstRowBytes)
{
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMCopyBytes - Not implemented\n");
-#endif
}
void
@@ -978,19 +795,15 @@ winMWExtWMCopyWindow(RootlessFrameID wid, int nDstRects,
const BoxRec *pEnd;
RECT rcDmg;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMCopyWindow (%p, %d, %p, %d, %d)\n",
pRLWinPriv, nDstRects, pDstRects, nDx, nDy);
-#endif
for (pEnd = pDstRects + nDstRects; pDstRects < pEnd; pDstRects++) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("BitBlt (%d, %d, %d, %d) (%d, %d)\n",
pDstRects->x1, pDstRects->y1,
pDstRects->x2 - pDstRects->x1,
pDstRects->y2 - pDstRects->y1,
pDstRects->x1 + nDx, pDstRects->y1 + nDy);
-#endif
if (!BitBlt(pRLWinPriv->hdcShadow,
pDstRects->x1, pDstRects->y1,
@@ -1008,9 +821,7 @@ winMWExtWMCopyWindow(RootlessFrameID wid, int nDstRects,
InvalidateRect(pRLWinPriv->hWnd, &rcDmg, FALSE);
}
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMCopyWindow - done\n");
-#endif
}
/*
diff --git a/xorg-server/hw/xwin/winwin32rootlesswindow.c b/xorg-server/hw/xwin/winwin32rootlesswindow.c
index 1faa531df..693fbcec0 100644
--- a/xorg-server/hw/xwin/winwin32rootlesswindow.c
+++ b/xorg-server/hw/xwin/winwin32rootlesswindow.c
@@ -194,22 +194,17 @@ winMWExtWMUpdateWindowDecoration(win32RootlessWindowPtr pRLWinPriv,
/* Get current window placement */
GetWindowPlacement(pRLWinPriv->hWnd, &wndPlace);
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo)) {
if (!pRLWinPriv->pFrame->win->overrideRedirect)
fDecorate = TRUE;
}
-#if 0
- if (wndPlace.showCmd == SW_HIDE)
- return; //showCmd = SWP_HIDEWINDOW;
- else
- showCmd = SWP_SHOWWINDOW;
-#else
+#endif
if (wndPlace.showCmd == SW_HIDE)
return;
if (IsWindowVisible(pRLWinPriv->hWnd))
showCmd = SWP_SHOWWINDOW;
-#endif
showCmd |= SWP_NOMOVE | SWP_FRAMECHANGED | SWP_NOACTIVATE | SWP_NOZORDER;
@@ -344,6 +339,7 @@ winMWExtWMUpdateWindowDecoration(win32RootlessWindowPtr pRLWinPriv,
}
}
+#ifdef XWIN_MULTIWINDOWINTWM
/*
* winIsInternalWMRunning (winScreenInfoPtr pScreenInfo)
*/
@@ -352,7 +348,7 @@ winIsInternalWMRunning(winScreenInfoPtr pScreenInfo)
{
return pScreenInfo->fInternalWM && !pScreenInfo->fAnotherWMRunning;
}
-
+#endif
/*
* winMWExtWMRestackWindows
*/
diff --git a/xorg-server/hw/xwin/winwin32rootlesswndproc.c b/xorg-server/hw/xwin/winwin32rootlesswndproc.c
index 001d0d2fc..0c5856d6e 100644
--- a/xorg-server/hw/xwin/winwin32rootlesswndproc.c
+++ b/xorg-server/hw/xwin/winwin32rootlesswndproc.c
@@ -413,7 +413,6 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
wmMsg.iHeight = pRLWinPriv->pFrame->height;
fWMMsgInitialized = TRUE;
-#if CYGDEBUG
winDebugWin32Message("winMWExtWMWindowProc", hwnd, message, wParam,
lParam);
@@ -423,7 +422,6 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
winDebug("\thwndScreen %08X\n", hwndScreen);
winDebug("winMWExtWMWindowProc (%08x) %08x %08x %08x\n",
pRLWinPriv, message, wParam, lParam);
-#endif
}
/* Branch on message type */
switch (message) {
@@ -438,20 +436,21 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
return 0;
case WM_CLOSE:
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMWindowProc - WM_CLOSE %d\n", pRLWinPriv->fClose);
-#endif
+
/* Tell window-manager to close window */
if (pRLWinPriv->fClose) {
DestroyWindow(hwnd);
}
else {
if (winIsInternalWMRunning(pScreenInfo)) {
+#ifdef XWIN_MULTIWINDOWINTWM
/* Tell our Window Manager thread to kill the window */
wmMsg.msg = WM_WM_KILL;
if (fWMMsgInitialized)
winSendMessageToWM(pScreenPriv->pWMInfo, &wmMsg);
}
+#endif
winWindowsWMSendEvent(WindowsWMControllerNotify,
WindowsWMControllerNotifyMask,
1,
@@ -677,22 +676,23 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
return 0;
case WM_MOUSEACTIVATE:
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMWindowProc - WM_MOUSEACTIVATE\n");
-#endif
-#if 1
+
+#ifdef XWIN_MULTIWINDOWINTWM
/* Check if this window needs to be made active when clicked */
if (winIsInternalWMRunning(pScreenInfo) && pWin->overrideRedirect) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMWindowProc - WM_MOUSEACTIVATE - "
"MA_NOACTIVATE\n");
-#endif
/* */
return MA_NOACTIVATE;
}
#endif
- if (!winIsInternalWMRunning(pScreenInfo) && !IsMouseActive(pWin))
+ if (
+#ifdef XWIN_MULTIWINDOWINTWM
+ !winIsInternalWMRunning(pScreenInfo) &&
+#endif
+ !IsMouseActive (pWin))
return MA_NOACTIVATE;
break;
@@ -758,9 +758,7 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
return 0;
case WM_ERASEBKGND:
-#if CYGDEBUG
winDebug("winMWExtWMWindowProc - WM_ERASEBKGND\n");
-#endif
/*
* Pretend that we did erase the background but we don't care,
* since we repaint the entire region anyhow
@@ -801,11 +799,10 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
break;
case WM_ACTIVATE:
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMWindowProc - WM_ACTIVATE\n");
-#endif
if (LOWORD(wParam) != WA_INACTIVE) {
if (winIsInternalWMRunning(pScreenInfo)) {
+#ifdef XWIN_MULTIWINDOWINTWM
#if 0
/* Raise the window to the top in Z order */
wmMsg.msg = WM_WM_RAISE;
@@ -818,6 +815,7 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (!pWin || !pWin->overrideRedirect) /* for OOo menus */
winSendMessageToWM(pScreenPriv->pWMInfo, &wmMsg);
}
+#endif
winWindowsWMSendEvent(WindowsWMControllerNotify,
WindowsWMControllerNotifyMask,
1,
@@ -831,26 +829,24 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
pWinPos = (LPWINDOWPOS) lParam;
if (!(pWinPos->flags & SWP_NOZORDER)) {
if (pRLWinPriv->fRestackingNow || pScreenPriv->fRestacking) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("Win %p is now restacking.\n",
pRLWinPriv);
-#endif
break;
}
- if (winIsInternalWMRunning(pScreenInfo) || IsRaiseOnClick(pWin)) {
-#if CYGMULTIWINDOW_DEBUG
+ if (
+#ifdef XWIN_MULTIWINDOWINTWM
+ winIsInternalWMRunning(pScreenInfo) ||
+#endif
+ IsRaiseOnClick (pWin))
winDebug("Win %p has WINDOWSWM_RAISE_ON_CLICK.\n",
pRLWinPriv);
-#endif
break;
}
-#if CYGMULTIWINDOW_DEBUG
winDebug("Win %p forbid to change z order (%p).\n",
pRLWinPriv,
pWinPos->hwndInsertAfter);
-#endif
pWinPos->flags |= SWP_NOZORDER;
}
break;
@@ -885,14 +881,13 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
}
#endif
-#if CYGMULTIWINDOW_DEBUG
winDebug("\t(%d, %d)\n", (short) LOWORD(lParam),
(short) HIWORD(lParam));
-#endif
if (!pRLWinPriv->fMovingOrSizing) {
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo))
winAdjustXWindow(pWin, hwnd);
-
+#endif
winMWExtWMMoveXWindow(pWin, (LOWORD(lParam) - wBorderWidth(pWin)
- GetSystemMetrics(SM_XVIRTUALSCREEN)),
(HIWORD(lParam) - wBorderWidth(pWin)
@@ -901,23 +896,22 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
return 0;
case WM_SHOWWINDOW:
-#if CYGMULTIWINDOW_DEBUG || TRUE
winDebug("winMWExtWMWindowProc - WM_SHOWWINDOW - %d ms\n",
(unsigned int) GetTickCount());
-#endif
+
/* Bail out if the window is being hidden */
if (!wParam)
return 0;
+#ifdef XWIN_MULTIWINDOWINTWM
if (!pScreenInfo->fInternalWM) //XXXX
return 0;
winMWExtWMUpdateWindowDecoration(pRLWinPriv, pScreenInfo);
if (winIsInternalWMRunning(pScreenInfo)) {
-#if CYGMULTIWINDOW_DEBUG || TRUE
winDebug("\tMapWindow\n");
-#endif
+
/* Tell X to map the window */
MapWindow(pWin, wClient(pWin));
@@ -934,6 +928,9 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (fWMMsgInitialized)
winSendMessageToWM(pScreenPriv->pWMInfo, &wmMsg);
}
+#else
+ return 0;
+#endif
break;
case WM_SIZING:
@@ -944,7 +941,7 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
case WM_WINDOWPOSCHANGED:
{
pWinPos = (LPWINDOWPOS) lParam;
-#if CYGMULTIWINDOW_DEBUG
+#ifdef _DEBUG
winDebug("winMWExtWMWindowProc - WM_WINDOWPOSCHANGED\n");
winDebug("\tflags: %s%s%s%s%s%s%s%s%s%s%s%s\n",
(pWinPos->flags & SWP_DRAWFRAME) ? "SWP_DRAWFRAME " : "",
@@ -969,20 +966,19 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (pWinPos->flags & SWP_HIDEWINDOW)
break;
+#ifdef XWIN_MULTIWINDOWINTWM
/* Reorder if window z order was changed */
if ((pScreenPriv != NULL)
&& !(pWinPos->flags & SWP_NOZORDER)
&& !(pWinPos->flags & SWP_SHOWWINDOW)
&& winIsInternalWMRunning(pScreenInfo)) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\twindow z order was changed\n");
-#endif
+
if (pWinPos->hwndInsertAfter == HWND_TOP
|| pWinPos->hwndInsertAfter == HWND_TOPMOST
|| pWinPos->hwndInsertAfter == HWND_NOTOPMOST) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\traise to top\n");
-#endif
+
/* Raise the window to the top in Z order */
wmMsg.msg = WM_WM_RAISE;
if (fWMMsgInitialized)
@@ -1012,9 +1008,8 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* If this is top of X windows in Windows stack,
raise it in X stack. */
if (hWndAbove == NULL) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\traise to top\n");
-#endif
+
/* Raise the window to the top in Z order */
wmMsg.msg = WM_WM_RAISE;
if (fWMMsgInitialized)
@@ -1023,18 +1018,19 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
}
#endif
}
+#endif
if (!(pWinPos->flags & SWP_NOSIZE)) {
if (IsIconic(hwnd)) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tIconic -> MINIMIZED\n");
-#endif
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo)) {
/* Raise the window to the top in Z order */
wmMsg.msg = WM_WM_LOWER;
if (fWMMsgInitialized)
winSendMessageToWM(pScreenPriv->pWMInfo, &wmMsg);
}
+#endif
winWindowsWMSendEvent(WindowsWMControllerNotify,
WindowsWMControllerNotifyMask,
1,
@@ -1042,9 +1038,8 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
pWin->drawable.id, 0, 0, 0, 0);
}
else if (IsZoomed(hwnd)) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tZoomed -> MAXIMIZED\n");
-#endif
+
winWindowsWMSendEvent(WindowsWMControllerNotify,
WindowsWMControllerNotifyMask,
1,
@@ -1052,9 +1047,8 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
pWin->drawable.id, 0, 0, 0, 0);
}
else {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tnone -> RESTORED\n");
-#endif
+
winWindowsWMSendEvent(WindowsWMControllerNotify,
WindowsWMControllerNotifyMask,
1,
@@ -1071,12 +1065,12 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (!(pWinPos->flags & SWP_NOMOVE)
&& !(pWinPos->flags & SWP_NOSIZE)) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tmove & resize\n");
-#endif
+
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo))
winAdjustXWindow(pWin, hwnd);
-
+#endif
winMWExtWMMoveResizeXWindow(pWin,
rcClient.left -
wBorderWidth(pWin)
@@ -1094,12 +1088,11 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
wBorderWidth(pWin) * 2);
}
else if (!(pWinPos->flags & SWP_NOMOVE)) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tmove\n");
-#endif
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo))
winAdjustXWindow(pWin, hwnd);
-
+#endif
winMWExtWMMoveResizeXWindow(pWin,
rcClient.left -
wBorderWidth(pWin)
@@ -1117,12 +1110,12 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
wBorderWidth(pWin) * 2);
}
else if (!(pWinPos->flags & SWP_NOMOVE)) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tmove\n");
-#endif
+
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo))
winAdjustXWindow(pWin, hwnd);
-
+#endif
winMWExtWMMoveXWindow(pWin,
rcClient.left - wBorderWidth(pWin)
- GetSystemMetrics(SM_XVIRTUALSCREEN),
@@ -1131,12 +1124,11 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
GetSystemMetrics(SM_YVIRTUALSCREEN));
}
else if (!(pWinPos->flags & SWP_NOSIZE)) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tresize\n");
-#endif
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo))
winAdjustXWindow(pWin, hwnd);
-
+#endif
winMWExtWMResizeXWindow(pWin,
rcClient.right - rcClient.left
- wBorderWidth(pWin) * 2,
@@ -1146,37 +1138,34 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
}
}
}
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMWindowProc - WM_WINDOWPOSCHANGED - done.\n");
-#endif
+
return 0;
case WM_SIZE:
/* see dix/window.c */
/* FIXME: Maximize/Restore? */
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMWindowProc - WM_SIZE - %d ms\n",
(unsigned int) GetTickCount());
-#endif
-#if CYGMULTIWINDOW_DEBUG
+
winDebug("\t(%d, %d) %d\n", (short) LOWORD(lParam),
(short) HIWORD(lParam), g_fNoConfigureWindow);
-#endif
if (g_fNoConfigureWindow)
break;
/* Branch on type of resizing occurring */
switch (wParam) {
case SIZE_MINIMIZED:
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tSIZE_MINIMIZED\n");
-#endif
+
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo)) {
/* Raise the window to the top in Z order */
wmMsg.msg = WM_WM_LOWER;
if (fWMMsgInitialized)
winSendMessageToWM(pScreenPriv->pWMInfo, &wmMsg);
}
+#endif
winWindowsWMSendEvent(WindowsWMControllerNotify,
WindowsWMControllerNotifyMask,
1,
@@ -1186,9 +1175,8 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
break;
case SIZE_RESTORED:
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tSIZE_RESTORED\n");
-#endif
+
winWindowsWMSendEvent(WindowsWMControllerNotify,
WindowsWMControllerNotifyMask,
1,
@@ -1212,9 +1200,10 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* Perform the resize and notify the X client */
if (!pRLWinPriv->fMovingOrSizing) {
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo))
winAdjustXWindow(pWin, hwnd);
-
+#endif
winMWExtWMResizeXWindow(pWin, (short) LOWORD(lParam)
- wBorderWidth(pWin) * 2,
(short) HIWORD(lParam)
@@ -1229,9 +1218,11 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
#endif
if (wParam) {
if (winIsInternalWMRunning(pScreenInfo)) {
+#ifdef XWIN_MULTIWINDOWINTWM
}
else {
}
+#endif
winWindowsWMSendEvent(WindowsWMActivationNotify,
WindowsWMActivationNotifyMask,
1,
@@ -1256,26 +1247,26 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
break;
case WM_ENTERSIZEMOVE:
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMWindowProc - WM_ENTERSIZEMOVE - %d ms\n",
(unsigned int) GetTickCount());
-#endif
+
pRLWinPriv->fMovingOrSizing = TRUE;
break;
case WM_EXITSIZEMOVE:
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMWindowProc - WM_EXITSIZEMOVE - %d ms\n",
(unsigned int) GetTickCount());
-#endif
+
pRLWinPriv->fMovingOrSizing = FALSE;
GetClientRect(hwnd, &rcClient);
MapWindowPoints(hwnd, HWND_DESKTOP, (LPPOINT) &rcClient, 2);
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo))
winAdjustXWindow(pWin, hwnd);
+#endif
winMWExtWMMoveResizeXWindow(pWin, rcClient.left - wBorderWidth(pWin)
- GetSystemMetrics(SM_XVIRTUALSCREEN),
@@ -1288,11 +1279,11 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
break;
case WM_MANAGE:
- ErrorF("winMWExtWMWindowProc - WM_MANAGE\n");
+ winDebug ("winMWExtWMWindowProc - WM_MANAGE\n");
break;
case WM_UNMANAGE:
- ErrorF("winMWExtWMWindowProc - WM_UNMANAGE\n");
+ winDebug ("winMWExtWMWindowProc - WM_UNMANAGE\n");
break;
default:
diff --git a/xorg-server/hw/xwin/winwindow.c b/xorg-server/hw/xwin/winwindow.c
index 029bd855d..e3bac41d9 100644
--- a/xorg-server/hw/xwin/winwindow.c
+++ b/xorg-server/hw/xwin/winwindow.c
@@ -61,9 +61,7 @@ winCreateWindowNativeGDI(WindowPtr pWin)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winCreateWindowNativeGDI (%p)\n", pWin);
-#endif
+ winDebug ("winCreateWindowNativeGDI (%p)\n", pWin);
WIN_UNWRAP(CreateWindow);
fResult = (*pScreen->CreateWindow) (pWin);
@@ -83,9 +81,7 @@ winDestroyWindowNativeGDI(WindowPtr pWin)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winDestroyWindowNativeGDI (%p)\n", pWin);
-#endif
+ winDebug ("winDestroyWindowNativeGDI (%p)\n", pWin);
WIN_UNWRAP(DestroyWindow);
fResult = (*pScreen->DestroyWindow) (pWin);
@@ -105,9 +101,7 @@ winPositionWindowNativeGDI(WindowPtr pWin, int x, int y)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winPositionWindowNativeGDI (%p)\n", pWin);
-#endif
+ winDebug ("winPositionWindowNativeGDI (%p)\n", pWin);
WIN_UNWRAP(PositionWindow);
fResult = (*pScreen->PositionWindow) (pWin, x, y);
@@ -133,9 +127,6 @@ winCopyWindowNativeGDI(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
winScreenPriv(pScreen);
-#if 0
- ErrorF("winCopyWindow\n");
-#endif
/* Create a region for the destination */
prgnDst = RegionCreate(NULL, 1);
@@ -171,18 +162,8 @@ winCopyWindowNativeGDI(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
pBoxDst = RegionRects(prgnDst);
ppt = pptSrc;
-#if 0
- ErrorF("winCopyWindow - x1\tx2\ty1\ty2\tx\ty\n");
-#endif
-
/* BitBlt each source to the destination point */
for (i = nbox; --i >= 0; pBoxDst++, ppt++) {
-#if 0
- ErrorF("winCopyWindow - %d\t%d\t%d\t%d\t%d\t%d\n",
- pBoxDst->x1, pBoxDst->x2, pBoxDst->y1, pBoxDst->y2,
- ppt->x, ppt->y);
-#endif
-
BitBlt(pScreenPriv->hdcScreen,
pBoxDst->x1, pBoxDst->y1,
pBoxDst->x2 - pBoxDst->x1, pBoxDst->y2 - pBoxDst->y1,
@@ -205,9 +186,7 @@ winChangeWindowAttributesNativeGDI(WindowPtr pWin, unsigned long mask)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winChangeWindowAttributesNativeGDI (%p)\n", pWin);
-#endif
+ winDebug ("winChangeWindowAttributesNativeGDI (%p)\n", pWin);
WIN_UNWRAP(ChangeWindowAttributes);
fResult = (*pScreen->ChangeWindowAttributes) (pWin, mask);
@@ -232,9 +211,7 @@ winUnmapWindowNativeGDI(WindowPtr pWin)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winUnmapWindowNativeGDI (%p)\n", pWin);
-#endif
+ winDebug ("winUnmapWindowNativeGDI (%p)\n", pWin);
WIN_UNWRAP(UnrealizeWindow);
fResult = (*pScreen->UnrealizeWindow) (pWin);
@@ -255,9 +232,7 @@ winMapWindowNativeGDI(WindowPtr pWin)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winMapWindowNativeGDI (%p)\n", pWin);
-#endif
+ winDebug ("winMapWindowNativeGDI (%p)\n", pWin);
WIN_UNWRAP(RealizeWindow);
fResult = (*pScreen->RealizeWindow) (pWin);
@@ -280,9 +255,7 @@ winCreateWindowRootless(WindowPtr pWin)
winWindowPriv(pWin);
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winCreateWindowRootless (%p)\n", pWin);
-#endif
+ winDebug ("winCreateWindowRootless (%p)\n", pWin);
WIN_UNWRAP(CreateWindow);
fResult = (*pScreen->CreateWindow) (pWin);
@@ -305,9 +278,7 @@ winDestroyWindowRootless(WindowPtr pWin)
winWindowPriv(pWin);
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winDestroyWindowRootless (%p)\n", pWin);
-#endif
+ winDebug ("winDestroyWindowRootless (%p)\n", pWin);
WIN_UNWRAP(DestroyWindow);
fResult = (*pScreen->DestroyWindow) (pWin);
@@ -334,9 +305,7 @@ winPositionWindowRootless(WindowPtr pWin, int x, int y)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winPositionWindowRootless (%p)\n", pWin);
-#endif
+ winDebug ("winPositionWindowRootless (%p)\n", pWin);
WIN_UNWRAP(PositionWindow);
fResult = (*pScreen->PositionWindow) (pWin, x, y);
@@ -358,9 +327,7 @@ winChangeWindowAttributesRootless(WindowPtr pWin, unsigned long mask)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winChangeWindowAttributesRootless (%p)\n", pWin);
-#endif
+ winDebug ("winChangeWindowAttributesRootless (%p)\n", pWin);
WIN_UNWRAP(ChangeWindowAttributes);
fResult = (*pScreen->ChangeWindowAttributes) (pWin, mask);
@@ -384,9 +351,7 @@ winUnmapWindowRootless(WindowPtr pWin)
winWindowPriv(pWin);
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winUnmapWindowRootless (%p)\n", pWin);
-#endif
+ winDebug ("winUnmapWindowRootless (%p)\n", pWin);
WIN_UNWRAP(UnrealizeWindow);
fResult = (*pScreen->UnrealizeWindow) (pWin);
@@ -414,9 +379,7 @@ winMapWindowRootless(WindowPtr pWin)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winMapWindowRootless (%p)\n", pWin);
-#endif
+ winDebug ("winMapWindowRootless (%p)\n", pWin);
WIN_UNWRAP(RealizeWindow);
fResult = (*pScreen->RealizeWindow) (pWin);
@@ -436,9 +399,7 @@ winSetShapeRootless(WindowPtr pWin, int kind)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winSetShapeRootless (%p, %i)\n", pWin, kind);
-#endif
+ winDebug ("winSetShapeRootless (%p, %i)\n", pWin, kind);
WIN_UNWRAP(SetShape);
(*pScreen->SetShape) (pWin, kind);
@@ -466,9 +427,7 @@ winAddRgn(WindowPtr pWin, pointer data)
/* If pWin is not Root */
if (pWin->parent != NULL) {
-#if CYGDEBUG
winDebug("winAddRgn ()\n");
-#endif
if (pWin->mapped) {
iBorder = wBorderWidth(pWin);
@@ -481,9 +440,9 @@ winAddRgn(WindowPtr pWin, pointer data)
hRgnWin = CreateRectRgn(0, 0, iWidth, iHeight);
if (hRgnWin == NULL) {
- ErrorF("winAddRgn - CreateRectRgn () failed\n");
- ErrorF(" Rect %d %d %d %d\n",
- iX, iY, iX + iWidth, iY + iHeight);
+ winDebug ("winAddRgn - CreateRectRgn () failed\n");
+ winDebug (" Rect %d %d %d %d\n",
+ iX, iY, iX + iWidth, iY + iHeight);
}
if (pWinPriv->hRgn) {
@@ -539,9 +498,7 @@ winReshapeRootless(WindowPtr pWin)
winWindowPriv(pWin);
-#if CYGDEBUG
winDebug("winReshapeRootless ()\n");
-#endif
/* Bail if the window is the root window */
if (pWin->parent == NULL)
diff --git a/xorg-server/hw/xwin/winwindow.h b/xorg-server/hw/xwin/winwindow.h
index 7e6bd565c..3ab7148d7 100644
--- a/xorg-server/hw/xwin/winwindow.h
+++ b/xorg-server/hw/xwin/winwindow.h
@@ -41,30 +41,24 @@
/* Constant strings */
#ifndef PROJECT_NAME
-#define PROJECT_NAME "Cygwin/X"
+#define PROJECT_NAME "VcXsrv"
#endif
-#define EXECUTABLE_NAME "XWin"
-#define WINDOW_CLASS "cygwin/x"
-#define WINDOW_TITLE PROJECT_NAME ":%s.%d"
-#define WINDOW_TITLE_XDMCP "%s:%s.%d"
-#define WIN_SCR_PROP "cyg_screen_prop rl"
-#define WINDOW_CLASS_X "cygwin/x X rl"
-#define WINDOW_CLASS_X_MSG "cygwin/x X msg"
-#define WINDOW_TITLE_X PROJECT_NAME " X"
-#define WIN_WINDOW_PROP "cyg_window_prop_rl"
+#define EXECUTABLE_NAME "VcXsrv"
+#define WINDOW_CLASS "VcXsrv/x"
+#define WINDOW_TITLE PROJECT_NAME " Server - Display %s:%s.%d"
+#define WINDOW_TITLE_XDMCP PROJECT_NAME " Server - %s - Display %s:%s.%d"
+extern const char WIN_SCR_PROP[];
+#define WINDOW_CLASS_X "vcxsrv/x X rl"
+#define WINDOW_CLASS_X_MSG "vcxsrv/x X msg"
+#define WINDOW_TITLE_X PROJECT_NAME " X"
+extern const char WIN_WINDOW_PROP[];
#ifdef HAS_DEVWINDOWS
-#define WIN_MSG_QUEUE_FNAME "/dev/windows"
-#endif
-#define WIN_WID_PROP "cyg_wid_prop_rl"
-#define WIN_NEEDMANAGE_PROP "cyg_override_redirect_prop_rl"
-#ifndef CYGMULTIWINDOW_DEBUG
-#define CYGMULTIWINDOW_DEBUG NO
-#endif
-#ifndef CYGWINDOWING_DEBUG
-#define CYGWINDOWING_DEBUG NO
+#define WIN_MSG_QUEUE_FNAME "/dev/windows"
#endif
+extern const char WIN_WID_PROP[];
+extern const char WIN_NEEDMANAGE_PROP[];
-#define XMING_SIGNATURE 0x12345678L
+#define VCXSRV_SIGNATURE 0xdeaddeadL
typedef struct _winPrivScreenRec *winPrivScreenPtr;
@@ -76,6 +70,7 @@ typedef struct {
DWORD dwDummy;
HRGN hRgn;
HWND hWnd;
+ BOOL OpenGlWindow;
winPrivScreenPtr pScreenPriv;
Bool fXKilled;
HDWP hDwp;
@@ -114,6 +109,8 @@ typedef struct _winWMMessageRec {
#define WM_WM_HINTS_EVENT (WM_USER + 14)
#define WM_MANAGE (WM_USER + 100)
#define WM_UNMANAGE (WM_USER + 102)
+#define WM_WM_REINIT (WM_USER + 200)
+
#define MwmHintsDecorations (1L << 1)
@@ -151,6 +148,15 @@ void
winMinimizeWindow(Window id);
void
+winTaskbarInit (void);
+
+void
+winTaskbarDestroy (void);
+
+void
+winSetAppID (HWND hWnd, const char* AppID);
+
+void
winPropertyStoreInit(void);
void
diff --git a/xorg-server/hw/xwin/winwindowswm.c b/xorg-server/hw/xwin/winwindowswm.c
index be43265e0..36f4ce0ae 100644
--- a/xorg-server/hw/xwin/winwindowswm.c
+++ b/xorg-server/hw/xwin/winwindowswm.c
@@ -234,26 +234,20 @@ winWindowsWMSendEvent(int type, unsigned int mask, int which, int arg,
WMEventPtr *pHead, pEvent;
ClientPtr client;
xWindowsWMNotifyEvent se;
-
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winWindowsWMSendEvent %d %d %d %d, %d %d - %d %d\n",
- type, mask, which, arg, x, y, w, h);
-#endif
+ winDebug ("winWindowsWMSendEvent %d %d %d %d, %d %d - %d %d\n",
+ type, mask, which, arg, x, y, w, h);
dixLookupResourceByType((pointer) &pHead, eventResource, eventResourceType,
NullClient, DixUnknownAccess);
if (!pHead)
return;
for (pEvent = *pHead; pEvent; pEvent = pEvent->next) {
client = pEvent->client;
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winWindowsWMSendEvent - %p\n", client);
-#endif
+ winDebug ("winWindowsWMSendEvent - %p\n", client);
if ((pEvent->mask & mask) == 0) {
continue;
}
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winWindowsWMSendEvent - send\n");
-#endif
+ winDebug ("winWindowsWMSendEvent - send\n");
+
se.type = type + WMEventBase;
se.kind = which;
se.window = window;
@@ -311,10 +305,8 @@ ProcWindowsWMFrameGetRect(ClientPtr client)
REQUEST(xWindowsWMFrameGetRectReq);
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameGetRect %d %d\n",
- (sizeof(xWindowsWMFrameGetRectReq) >> 2), (int) client->req_len);
-#endif
+ winDebug ("ProcWindowsWMFrameGetRect %d %d\n",
+ (sizeof(xWindowsWMFrameGetRectReq) >> 2), (int) client->req_len);
REQUEST_SIZE_MATCH(xWindowsWMFrameGetRectReq);
rep.type = X_Reply;
@@ -330,10 +322,8 @@ ProcWindowsWMFrameGetRect(ClientPtr client)
SetRect(&rcNew, stuff->ix, stuff->iy,
stuff->ix + stuff->iw, stuff->iy + stuff->ih);
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameGetRect - %d %d %d %d\n",
- stuff->ix, stuff->iy, stuff->ix + stuff->iw, stuff->iy + stuff->ih);
-#endif
+ winDebug ("ProcWindowsWMFrameGetRect - %d %d %d %d\n",
+ stuff->ix, stuff->iy, stuff->ix + stuff->iw, stuff->iy + stuff->ih);
/*
* Calculate the required size of the Windows window rectangle,
@@ -345,10 +335,8 @@ ProcWindowsWMFrameGetRect(ClientPtr client)
rep.y = rcNew.top;
rep.w = rcNew.right - rcNew.left;
rep.h = rcNew.bottom - rcNew.top;
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameGetRect - %d %d %d %d\n",
+ winDebug ("ProcWindowsWMFrameGetRect - %d %d %d %d\n",
rep.x, rep.y, rep.w, rep.h);
-#endif
WriteToClient(client, sizeof(xWindowsWMFrameGetRectReply), &rep);
return Success;
@@ -366,27 +354,23 @@ ProcWindowsWMFrameDraw(ClientPtr client)
REQUEST_SIZE_MATCH(xWindowsWMFrameDrawReq);
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameDraw\n");
-#endif
+ winDebug ("ProcWindowsWMFrameDraw\n");
+
rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
if (rc != Success)
return rc;
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameDraw - Window found\n");
-#endif
+
+ winDebug ("ProcWindowsWMFrameDraw - Window found\n");
pRLWinPriv = (win32RootlessWindowPtr) RootlessFrameForWindow(pWin, TRUE);
if (pRLWinPriv == 0)
return BadWindow;
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameDraw - HWND %p 0x%08x 0x%08x\n",
- pRLWinPriv->hWnd, (int) stuff->frame_style,
- (int) stuff->frame_style_ex);
- ErrorF("ProcWindowsWMFrameDraw - %d %d %d %d\n",
- stuff->ix, stuff->iy, stuff->iw, stuff->ih);
-#endif
+ winDebug ("ProcWindowsWMFrameDraw - HWND %p 0x%08x 0x%08x\n",
+ pRLWinPriv->hWnd, (int) stuff->frame_style,
+ (int) stuff->frame_style_ex);
+ winDebug ("ProcWindowsWMFrameDraw - %d %d %d %d\n",
+ stuff->ix, stuff->iy, stuff->iw, stuff->ih);
/* Store the origin, height, and width in a rectangle structure */
SetRect(&rcNew, stuff->ix, stuff->iy,
@@ -433,9 +417,7 @@ ProcWindowsWMFrameDraw(ClientPtr client)
winMWExtWMReshapeFrame(pRLWinPriv, &newShape);
RegionUninit(&newShape);
}
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameDraw - done\n");
-#endif
+ winDebug ("ProcWindowsWMFrameDraw - done\n");
return Success;
}
@@ -451,18 +433,14 @@ ProcWindowsWMFrameSetTitle(ClientPtr client)
win32RootlessWindowPtr pRLWinPriv;
int rc;
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameSetTitle\n");
-#endif
+ winDebug ("ProcWindowsWMFrameSetTitle\n");
REQUEST_AT_LEAST_SIZE(xWindowsWMFrameSetTitleReq);
rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
if (rc != Success)
return rc;
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameSetTitle - Window found\n");
-#endif
+ winDebug ("ProcWindowsWMFrameSetTitle - Window found\n");
title_length = stuff->title_length;
title_max = (stuff->length << 2) - sizeof(xWindowsWMFrameSetTitleReq);
@@ -470,9 +448,7 @@ ProcWindowsWMFrameSetTitle(ClientPtr client)
if (title_max < title_length)
return BadValue;
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameSetTitle - length is valid\n");
-#endif
+ winDebug ("ProcWindowsWMFrameSetTitle - length is valid\n");
title_bytes = malloc(title_length + 1);
strncpy(title_bytes, (char *) &stuff[1], title_length);
@@ -490,9 +466,7 @@ ProcWindowsWMFrameSetTitle(ClientPtr client)
free(title_bytes);
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameSetTitle - done\n");
-#endif
+ winDebug ("ProcWindowsWMFrameSetTitle - done\n");
return Success;
}
diff --git a/xorg-server/hw/xwin/winwndproc.c b/xorg-server/hw/xwin/winwndproc.c
index c73a75c6f..6d4cb3a51 100644
--- a/xorg-server/hw/xwin/winwndproc.c
+++ b/xorg-server/hw/xwin/winwndproc.c
@@ -43,10 +43,16 @@
#include "winmonitors.h"
#include "inputstr.h"
+#ifndef XKB_IN_SERVER
+#define XKB_IN_SERVER
+#endif
+#include <xkbsrv.h>
+
/*
* Global variables
*/
+extern Bool g_fClipboardStarted;
Bool g_fCursor = TRUE;
Bool g_fButton[3] = { FALSE, FALSE, FALSE };
@@ -68,9 +74,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
int iScanCode;
int i;
-#if CYGDEBUG
winDebugWin32Message("winWindowProc", hwnd, message, wParam, lParam);
-#endif
/* Watch for server regeneration */
if (g_ulServerGeneration != s_ulServerGeneration) {
@@ -81,9 +85,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* Only retrieve new privates pointers if window handle is null or changed */
if ((s_pScreenPriv == NULL || hwnd != s_hwndLastPrivates)
&& (s_pScreenPriv = GetProp(hwnd, WIN_SCR_PROP)) != NULL) {
-#if CYGDEBUG
winDebug("winWindowProc - Setting privates handle\n");
-#endif
s_pScreenInfo = s_pScreenPriv->pScreenInfo;
s_pScreen = s_pScreenInfo->pScreen;
s_hwndLastPrivates = hwnd;
@@ -102,9 +104,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
s_pScreenPriv);
case WM_CREATE:
-#if CYGDEBUG
winDebug("winWindowProc - WM_CREATE\n");
-#endif
/*
* Add a property to our display window that references
@@ -135,7 +135,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
s_pScreenPriv->hwndScreen = hwnd;
- winInitNotifyIcon(s_pScreenPriv);
+ winInitNotifyIcon(s_pScreenPriv,FALSE);
}
return 0;
@@ -168,9 +168,9 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
break;
}
- ErrorF("winWindowProc - WM_DISPLAYCHANGE - new width: %d "
- "new height: %d new bpp: %d\n",
- LOWORD(lParam), HIWORD(lParam), wParam);
+ winDebug ("winWindowProc - WM_DISPLAYCHANGE - new width: %d "
+ "new height: %d new bpp: %d\n",
+ LOWORD(lParam), HIWORD(lParam), wParam);
/* 0 bpp has no defined meaning, ignore this message */
if (wParam == 0)
@@ -194,7 +194,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
#endif
)) {
/* Cannot display the visual until the depth is restored */
- ErrorF("winWindowProc - Disruptive change in depth\n");
+ winDebug ("winWindowProc - Disruptive change in depth\n");
/* Display depth change dialog */
winDisplayDepthChangeDialog(s_pScreenPriv);
@@ -244,7 +244,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
fMultiWindow
#endif
)) {
- DWORD dwWidth, dwHeight;
+ DWORD dwWidth = 0, dwHeight = 0;
if (s_pScreenInfo->fMultipleMonitors) {
/* resize to new virtual desktop size */
@@ -308,25 +308,31 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
winDebug
("winWindowProc - WM_DISPLAYCHANGE - Releasing and recreating primary surface\n");
- /* Release the old primary surface */
- (*s_pScreenPriv->pwinReleasePrimarySurface) (s_pScreen);
+ /* Reallocate the framebuffer used by the drawing engine */
+ (*s_pScreenPriv->pwinFreeFB)(s_pScreen);
+ if (!(*s_pScreenPriv->pwinAllocateFB)(s_pScreen))
+ {
+ ErrorF ("winWindowProc - WM_DISPLAYCHANGE - Could not reallocate framebuffer\n");
+ }
+ /* Update the screen pixmap to point to the new framebuffer */
+ winUpdateFBPointer(s_pScreen, s_pScreenPriv->pScreenInfo->pfb);
+ // Restore the ability to update screen, now with new dimensions
+ SetRootClip(s_pScreen, TRUE);
- /* Create the new primary surface */
- (*s_pScreenPriv->pwinCreatePrimarySurface) (s_pScreen);
+ // and arrange for it to be repainted
+ miPaintWindow(s_pScreen->root, &s_pScreen->root->borderClip, PW_BACKGROUND);
}
}
break;
-
+
case WM_SIZE:
{
SCROLLINFO si;
RECT rcWindow;
int iWidth, iHeight;
-#if CYGDEBUG
winDebug("winWindowProc - WM_SIZE\n");
-#endif
/* Break if we do not allow resizing */
if ((s_pScreenInfo->iResizeMode == notAllowed)
@@ -345,8 +351,8 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (wParam == SIZE_MINIMIZED)
return 0;
- ErrorF("winWindowProc - WM_SIZE - new client area w: %d h: %d\n",
- LOWORD(lParam), HIWORD(lParam));
+ winDebug ("winWindowProc - WM_SIZE - new client area w: %d h: %d\n",
+ LOWORD(lParam), HIWORD(lParam));
if (s_pScreenInfo->iResizeMode == resizeWithRandr) {
/* Actual resizing is done on WM_EXITSIZEMOVE */
@@ -425,20 +431,22 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
s_pScreenInfo->dwYOffset = -si.nPos;
}
return 0;
-
- case WM_SYSCOMMAND:
- if (s_pScreenInfo->iResizeMode == resizeWithRandr &&
- ((wParam & 0xfff0) == SC_MAXIMIZE ||
- (wParam & 0xfff0) == SC_RESTORE))
- PostMessage(hwnd, WM_EXITSIZEMOVE, 0, 0);
+
+ case WM_SYSCOMMAND:
+ if ((wParam & 0xfff0) == SC_MAXIMIZE ||
+ (wParam & 0xfff0) == SC_RESTORE)
+ {
+ winDebug("Posting WM_EXITSIZEMOVE message since windows does not send it when the maximised/restored button is clicked.\n");
+ PostMessage(hwnd, WM_EXITSIZEMOVE, 0, 0);
+ }
break;
case WM_ENTERSIZEMOVE:
- ErrorF("winWindowProc - WM_ENTERSIZEMOVE\n");
+ winDebug("winWindowProc - WM_ENTERSIZEMOVE\n");
break;
case WM_EXITSIZEMOVE:
- ErrorF("winWindowProc - WM_EXITSIZEMOVE\n");
+ winDebug("winWindowProc - WM_EXITSIZEMOVE\n");
if (s_pScreenInfo->iResizeMode == resizeWithRandr) {
/* Set screen size to match new client area, if it is different to current */
@@ -467,9 +475,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
SCROLLINFO si;
int iVertPos;
-#if CYGDEBUG
winDebug("winWindowProc - WM_VSCROLL\n");
-#endif
/* Get vertical scroll bar info */
si.cbSize = sizeof(si);
@@ -546,9 +552,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
SCROLLINFO si;
int iHorzPos;
-#if CYGDEBUG
winDebug("winWindowProc - WM_HSCROLL\n");
-#endif
/* Get horizontal scroll bar info */
si.cbSize = sizeof(si);
@@ -625,10 +629,8 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
int iCaptionHeight;
int iBorderHeight, iBorderWidth;
-#if CYGDEBUG
winDebug("winWindowProc - WM_GETMINMAXINFO - pScreenInfo: %08x\n",
s_pScreenInfo);
-#endif
/* Can't do anything without screen info */
if (s_pScreenInfo == NULL
@@ -669,9 +671,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
return 0;
case WM_ERASEBKGND:
-#if CYGDEBUG
winDebug("winWindowProc - WM_ERASEBKGND\n");
-#endif
/*
* Pretend that we did erase the background but we don't care,
* the application uses the full window estate. This avoids some
@@ -680,9 +680,6 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
return TRUE;
case WM_PAINT:
-#if CYGDEBUG
- winDebug("winWindowProc - WM_PAINT\n");
-#endif
/* Only paint if we have privates and the server is enabled */
if (s_pScreenPriv == NULL
|| !s_pScreenPriv->fEnabled
@@ -702,9 +699,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
case WM_PALETTECHANGED:
{
-#if CYGDEBUG
winDebug("winWindowProc - WM_PALETTECHANGED\n");
-#endif
/*
* Don't process if we don't have privates or a colormap,
* or if we have an invalid depth.
@@ -955,11 +950,11 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
wShift = (GetKeyState(VK_SHIFT) & 0x8000) ? MK_SHIFT : 0;
wCtrl = (GetKeyState(VK_CONTROL) & 0x8000) ? MK_CONTROL : 0;
lPos = MAKELPARAM(point.x, point.y);
- if (g_fButton[0] & !wL)
+ if (g_fButton[0] && !wL)
PostMessage(hwnd, WM_LBUTTONUP, wCtrl | wM | wR | wShift, lPos);
- if (g_fButton[1] & !wM)
+ if (g_fButton[1] && !wM)
PostMessage(hwnd, WM_MBUTTONUP, wCtrl | wL | wR | wShift, lPos);
- if (g_fButton[2] & !wR)
+ if (g_fButton[2] && !wR)
PostMessage(hwnd, WM_RBUTTONUP, wCtrl | wL | wM | wShift, lPos);
}
}
@@ -973,9 +968,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
case WM_MOUSEWHEEL:
if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
break;
-#if CYGDEBUG
winDebug("winWindowProc - WM_MOUSEWHEEL\n");
-#endif
/* Button4 = WheelUp */
/* Button5 = WheelDown */
winMouseWheel(&(s_pScreenPriv->iDeltaZ), GET_WHEEL_DELTA_WPARAM(wParam), Button4, Button5);
@@ -984,9 +977,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
case WM_MOUSEHWHEEL:
if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
break;
-#if CYGDEBUG
winDebug("winWindowProc - WM_MOUSEHWHEEL\n");
-#endif
/* Button7 = TiltRight */
/* Button6 = TiltLeft */
winMouseWheel(&(s_pScreenPriv->iDeltaV), GET_WHEEL_DELTA_WPARAM(wParam), 7, 6);
@@ -1039,21 +1030,13 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
* user enters Alt + F4 and is surprised when the application
* quits.
*/
- ErrorF("winWindowProc - WM_*KEYDOWN - Closekey hit, quitting\n");
+ winDebug ("winWindowProc - WM_*KEYDOWN - Closekey hit, quitting\n");
/* Display Exit dialog */
winDisplayExitDialog(s_pScreenPriv);
return 0;
}
- /*
- * Don't do anything for the Windows keys, as focus will soon
- * be returned to Windows. We may be able to trap the Windows keys,
- * but we should determine if that is desirable before doing so.
- */
- if ((wParam == VK_LWIN || wParam == VK_RWIN) && !g_fKeyboardHookLL)
- break;
-
/* Discard fake Ctrl_L events that precede AltGR on non-US keyboards */
if (winIsFakeCtrl_L(message, wParam, lParam))
return 0;
@@ -1093,14 +1076,6 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
break;
- /*
- * Don't do anything for the Windows keys, as focus will soon
- * be returned to Windows. We may be able to trap the Windows keys,
- * but we should determine if that is desirable before doing so.
- */
- if ((wParam == VK_LWIN || wParam == VK_RWIN) && !g_fKeyboardHookLL)
- break;
-
/* Ignore the fake Ctrl_L that follows an AltGr release */
if (winIsFakeCtrl_L(message, wParam, lParam))
return 0;
@@ -1128,7 +1103,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* TODO: Override display of window when we have a bad depth */
if (LOWORD(wParam) != WA_INACTIVE && s_pScreenPriv->fBadDepth) {
- ErrorF("winWindowProc - WM_ACTIVATE - Bad depth, trying "
+ winDebug ("winWindowProc - WM_ACTIVATE - Bad depth, trying "
"to override window activation\n");
/* Minimize the window */
@@ -1148,9 +1123,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
return 0;
}
-#if CYGDEBUG
winDebug("winWindowProc - WM_ACTIVATE\n");
-#endif
/*
* Focus is being changed to another window.
@@ -1174,9 +1147,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
break;
-#if CYGDEBUG || TRUE
winDebug("winWindowProc - WM_ACTIVATEAPP\n");
-#endif
/* Activate or deactivate */
s_pScreenPriv->fActive = wParam;
@@ -1190,13 +1161,13 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
#ifdef XWIN_CLIPBOARD
/* Make sure the clipboard chain is ok. */
- winFixClipboardChain();
+ winFixClipboardChain(0);
#endif
/* Call engine specific screen activation/deactivation function */
(*s_pScreenPriv->pwinActivateApp) (s_pScreen);
-#ifdef XWIN_MULTIWINDOWEXTWM
+#ifdef XWIN_MULTIWINDOWINTWM
if (s_pScreenPriv->fActive) {
/* Restack all window unless using built-in wm. */
if (s_pScreenInfo->fInternalWM && s_pScreenInfo->fAnotherWMRunning)
@@ -1241,6 +1212,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (s_pScreenInfo->fMultiWindow)
winDeinitMultiWindowWM();
#endif
+ g_fClipboardStarted=FALSE; /* This is to avoid dead-locls caused by the clipboard thread still doing some stuff */
GiveUp(0);
return 0;
@@ -1259,29 +1231,33 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
#ifdef XWIN_MULTIWINDOWEXTWM
case WM_MANAGE:
- ErrorF("winWindowProc - WM_MANAGE\n");
+ winDebug("winWindowProc - WM_MANAGE\n");
s_pScreenInfo->fAnotherWMRunning = FALSE;
+#ifdef XWIN_MULTIWINDOWINTWM
if (s_pScreenInfo->fInternalWM) {
EnumThreadWindows(g_dwCurrentThreadID, winMWExtWMDecorateWindow, 0);
//RootlessRepositionWindows (s_pScreen);
}
+#endif
break;
case WM_UNMANAGE:
- ErrorF("winWindowProc - WM_UNMANAGE\n");
+ winDebug("winWindowProc - WM_UNMANAGE\n");
s_pScreenInfo->fAnotherWMRunning = TRUE;
+#ifdef XWIN_MULTIWINDOWINTWM
if (s_pScreenInfo->fInternalWM) {
EnumThreadWindows(g_dwCurrentThreadID, winMWExtWMDecorateWindow, 0);
winMWExtWMRestackWindows(s_pScreen);
}
+#endif
break;
#endif
default:
if (message == s_uTaskbarRestart) {
- winInitNotifyIcon(s_pScreenPriv);
+ winInitNotifyIcon(s_pScreenPriv,FALSE);
}
break;
}
diff --git a/xorg-server/hw/xwin/xdmcphostselect.c b/xorg-server/hw/xwin/xdmcphostselect.c
new file mode 100644
index 000000000..9b8b62b93
--- /dev/null
+++ b/xorg-server/hw/xwin/xdmcphostselect.c
@@ -0,0 +1,180 @@
+#ifdef HAVE_XWIN_CONFIG_H
+#include <xwin-config.h>
+#endif
+#include "win.h"
+
+void XdmcpHostSelected(int HostIndex);
+
+static HWND g_hDlgHosts;
+static char HostToConnect[128];
+
+static void SelectHost(int Index)
+{
+ int i;
+ char HostName[128];
+ int HostIndex=SendDlgItemMessage(g_hDlgHosts, IDC_HOSTLIST, LB_GETITEMDATA, (WPARAM)Index, 0);
+
+ HostToConnect[0]=0;
+ SendDlgItemMessage(g_hDlgHosts, IDC_HOSTLIST, LB_GETTEXT, (WPARAM)Index, (LPARAM)HostToConnect);
+ g_pszQueryHost=HostToConnect;
+
+ gethostname(HostName,128);
+
+ XdmcpHostSelected(HostIndex);
+
+ for (i = 0; i < g_iNumScreens; ++i)
+ {
+ /* Change the window title to reflect the host we are connecting to */
+ if (g_ScreenInfo[i].pScreen)
+ {
+ char szTitle[256];
+
+ winScreenPriv(g_ScreenInfo[i].pScreen);
+ winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
+ snprintf (szTitle, sizeof (szTitle), WINDOW_TITLE_XDMCP, HostToConnect, HostName, display, (int) pScreenInfo->dwScreen);
+ SetWindowText(pScreenPriv->hwndScreen,szTitle);
+ }
+ }
+
+ DestroyWindow (g_hDlgHosts);
+ g_hDlgHosts = NULL;
+}
+
+/*
+ * Process messages for the about dialog.
+ */
+
+static INT_PTR CALLBACK DisplayXdmcpHostsDlgProc (HWND hwndDialog, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ /* Branch on message type */
+ switch (message)
+ {
+ case WM_INITDIALOG:
+ {
+ HWND hwndDesk=GetForegroundWindow();
+ RECT rc, rcDlg, rcDesk;
+
+ GetWindowRect (hwndDesk, &rcDesk);
+ GetWindowRect (hwndDialog, &rcDlg);
+ CopyRect (&rc, &rcDesk);
+
+ OffsetRect (&rcDlg, -rcDlg.left, -rcDlg.top);
+ OffsetRect (&rc, -rc.left, -rc.top);
+ OffsetRect (&rc, -rcDlg.right, -rcDlg.bottom);
+
+ SetWindowPos (hwndDialog,
+ HWND_TOPMOST,
+ rcDesk.left + (rc.right / 2),
+ rcDesk.top + (rc.bottom / 2),
+ 0, 0,
+ SWP_NOSIZE | SWP_FRAMECHANGED);
+ return TRUE;
+ }
+ break;
+
+ case WM_COMMAND:
+ switch (LOWORD (wParam))
+ {
+ case IDOK:
+ {
+ int Index;
+ winDebug ("DisplayXdmcpHostsDlgProc - WM_COMMAND - IDOK or IDCANCEL\n");
+
+ /* Retreive the host to connect to */
+ Index=SendDlgItemMessage(g_hDlgHosts, IDC_HOSTLIST, LB_GETCURSEL, 0, 0);
+ if (Index==LB_ERR)
+ {
+ MessageBox(hwndDialog,"Please select a host to connect to!","Error",MB_OK);
+ }
+ else
+ {
+ SelectHost(Index);
+ }
+
+ return TRUE;
+ }
+ break;
+ case IDCANCEL:
+ winDebug ("DisplayXdmcpHostsDlgProc - WM_COMMAND - IDCANCEL\n");
+
+ DestroyWindow (g_hDlgHosts);
+ AbortDDX(EXIT_ERR_ABORT);
+ TerminateProcess(GetCurrentProcess(),1); /* Exit the application */
+
+ return TRUE;
+ break;
+ case IDC_HOSTLIST:
+ if (HIWORD(wParam)==LBN_DBLCLK)
+ {
+ int Index=SendDlgItemMessage(g_hDlgHosts, IDC_HOSTLIST, LB_GETCURSEL, 0, 0);
+ SelectHost(Index);
+ return TRUE;
+ }
+ break;
+ }
+ break;
+
+ case WM_CLOSE:
+ ErrorF ("DisplayXdmcpHostsDlgProc - WM_CLOSE\n");
+
+ DestroyWindow (g_hDlgHosts);
+ g_hDlgHosts = NULL;
+ AbortDDX(EXIT_ERR_ABORT);
+ TerminateProcess(GetCurrentProcess(),1); /* Exit the application */
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+int XdmcpHostAddName(const char *HostName, int HostIndex)
+{
+ int Index=SendDlgItemMessage(g_hDlgHosts, IDC_HOSTLIST, LB_FINDSTRINGEXACT, -1, (LPARAM)HostName);
+ if (LB_ERR==Index)
+ {
+ Index=SendDlgItemMessage(g_hDlgHosts, IDC_HOSTLIST, LB_ADDSTRING, 0, (LPARAM)HostName);
+ SendDlgItemMessage(g_hDlgHosts, IDC_HOSTLIST, LB_SETITEMDATA, (WPARAM)Index, (LPARAM)HostIndex);
+ return -1;
+ }
+ else
+ return SendDlgItemMessage(g_hDlgHosts, IDC_HOSTLIST, LB_GETITEMDATA, (WPARAM)Index, 0);
+}
+/*
+ * Display the host selection dialog box
+ */
+
+void DisplayXdmcpHostsDialog(void)
+{
+ /* Check if dialog already exists */
+ if (g_hDlgHosts != NULL)
+ {
+ /* Dialog box already exists, display it */
+ ShowWindow (g_hDlgHosts, SW_SHOWDEFAULT);
+
+ /* User has lost the dialog. Show them where it is. */
+ SetForegroundWindow (g_hDlgHosts);
+
+ return;
+ }
+
+ /* Show an arrow cursor as long as the selection dialog is shown */
+ {
+ winScreenPriv(screenInfo.screens[0]);
+ pScreenPriv->cursor.handle=LoadCursor(NULL,IDC_ARROW);
+ }
+
+ /*
+ * Display the about box
+ */
+ g_hDlgHosts = CreateDialogParam (g_hInstance, "XDMCP_HOSTS", NULL, DisplayXdmcpHostsDlgProc, 0);
+
+ /* Show the dialog box */
+ ShowWindow (g_hDlgHosts, SW_SHOW);
+
+ /* Needed to get keyboard controls (tab, arrows, enter, esc) to work */
+ SetForegroundWindow (g_hDlgHosts);
+
+ /* Set focus to the OK button */
+ PostMessage (g_hDlgAbout, WM_NEXTDLGCTL, (WPARAM)GetDlgItem (g_hDlgHosts, IDOK), TRUE);
+}
diff --git a/xorg-server/hw/xwin/xlaunch/COPYING b/xorg-server/hw/xwin/xlaunch/COPYING
new file mode 100644
index 000000000..c7fa84400
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/COPYING
@@ -0,0 +1,25 @@
+
+ Copyright (c) 2005 Alexander Gottwald
+
+ 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:
+
+ The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+
+ Except as contained in this notice, the name(s) of the above copyright
+ holders shall not be used in advertising or otherwise to promote the sale,
+ use or other dealings in this Software without prior written authorization.
+
diff --git a/xorg-server/hw/xwin/xlaunch/config.cc b/xorg-server/hw/xwin/xlaunch/config.cc
new file mode 100644
index 000000000..fc268e2e8
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/config.cc
@@ -0,0 +1,200 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+#include "config.h"
+#include "window/util.h"
+#include <stdexcept>
+
+xmlDocPtr CreateDocument()
+{
+ xmlDocPtr doc = xmlNewDoc(BAD_CAST "1.0");
+ xmlNodePtr root_node = xmlNewNode(NULL, BAD_CAST "XLaunch");
+ xmlDocSetRootElement(doc, root_node);
+
+ return doc;
+
+}
+
+void setAttribute(xmlNodePtr elem, const char *name, const char *value)
+{
+ xmlNewProp(elem, BAD_CAST name, BAD_CAST value);
+}
+
+void CConfig::Save(const char *filename)
+{
+ xmlDocPtr doc = CreateDocument();
+ xmlNodePtr root = xmlDocGetRootElement(doc);
+
+ switch (window)
+ {
+ case MultiWindow:
+ setAttribute(root, "WindowMode", "MultiWindow");
+ break;
+ case Fullscreen:
+ setAttribute(root, "WindowMode", "Fullscreen");
+ break;
+ default:
+ case Windowed:
+ setAttribute(root, "WindowMode", "Windowed");
+ break;
+ case Nodecoration:
+ setAttribute(root, "WindowMode", "Nodecoration");
+ break;
+ }
+ switch (client)
+ {
+ default:
+ case NoClient:
+ setAttribute(root, "ClientMode", "NoClient");
+ break;
+ case StartProgram:
+ setAttribute(root, "ClientMode", "StartProgram");
+ break;
+ case XDMCP:
+ setAttribute(root, "ClientMode", "XDMCP");
+ break;
+ }
+ setAttribute(root, "LocalClient", local?"True":"False");
+ setAttribute(root, "Display", display.c_str());
+ setAttribute(root, "LocalProgram", localprogram.c_str());
+ setAttribute(root, "RemoteProgram", remoteprogram.c_str());
+ setAttribute(root, "RemotePassword", remotepassword.c_str());
+ setAttribute(root, "PrivateKey", privatekey.c_str());
+ setAttribute(root, "RemoteHost", host.c_str());
+ setAttribute(root, "RemoteUser", user.c_str());
+ setAttribute(root, "XDMCPHost", xdmcp_host.c_str());
+ setAttribute(root, "XDMCPBroadcast", broadcast?"True":"False");
+ setAttribute(root, "XDMCPIndirect", indirect?"True":"False");
+ setAttribute(root, "Clipboard", clipboard?"True":"False");
+ setAttribute(root, "ClipboardPrimary", clipboardprimary?"True":"False");
+ setAttribute(root, "ExtraParams", extra_params.c_str());
+ setAttribute(root, "Wgl", wgl?"True":"False");
+ setAttribute(root, "DisableAC", disableac?"True":"False");
+ setAttribute(root, "XDMCPTerminate", xdmcpterminate?"True":"False");
+
+ xmlSaveFormatFileEnc(filename, doc, "UTF-8", 1);
+
+ /*free the document */
+ xmlFreeDoc(doc);
+
+ /*
+ *Free the global variables that may
+ *have been allocated by the parser.
+ */
+ xmlCleanupParser();
+}
+
+BOOL getAttribute(xmlNodePtr elem, const char *name, std::string &ret)
+{
+ char *pVal=(char*)xmlGetProp(elem,BAD_CAST name);
+ if (!pVal)
+ return false;
+ ret=pVal;
+ return true;
+}
+
+BOOL getAttributeBool(xmlNodePtr elem, const char *name, bool &ret)
+{
+ const char *pVal=(char*)xmlGetProp(elem, BAD_CAST name);
+ if (!pVal)
+ return false;
+
+ std::string str(pVal);
+
+ if (str == "True")
+ ret = true;
+ else
+ ret = false;
+ return true;
+}
+
+
+void CConfig::Load(const char *filename)
+{
+ xmlDocPtr doc = xmlReadFile(filename, NULL, 0);
+
+ xmlNodePtr root;
+
+ if (doc == NULL)
+ {
+ return;
+ }
+
+ root = xmlDocGetRootElement(doc);
+
+ std::string windowMode;
+ std::string clientMode;
+
+ if (getAttribute(root, "WindowMode", windowMode))
+ {
+ if (windowMode == "MultiWindow")
+ window = MultiWindow;
+ else if (windowMode == "Fullscreen")
+ window = Fullscreen;
+ else if (windowMode == "Windowed")
+ window = Windowed;
+ else if (windowMode == "Nodecoration")
+ window = Nodecoration;
+ }
+ if (getAttribute(root, "ClientMode", clientMode))
+ {
+ if (clientMode == "NoClient")
+ client = NoClient;
+ else if (clientMode == "StartProgram")
+ client = StartProgram;
+ else if (clientMode == "XDMCP")
+ client = XDMCP;
+ }
+
+ getAttributeBool(root, "LocalClient", local);
+ getAttribute(root, "Display", display);
+ getAttribute(root, "LocalProgram", localprogram);
+ getAttribute(root, "RemoteProgram", remoteprogram);
+ getAttribute(root, "RemotePassword", remotepassword);
+ getAttribute(root, "PrivateKey", privatekey);
+ getAttribute(root, "RemoteHost", host);
+ getAttribute(root, "RemoteUser", user);
+ getAttribute(root, "XDMCPHost", xdmcp_host);
+ getAttributeBool(root, "XDMCPBroadcast", broadcast);
+ getAttributeBool(root, "XDMCPIndirect", indirect);
+ getAttributeBool(root, "Clipboard", clipboard);
+ getAttributeBool(root, "ClipboardPrimary", clipboardprimary);
+ getAttribute(root, "ExtraParams", extra_params);
+ getAttributeBool(root, "Wgl", wgl);
+ getAttributeBool(root, "DisableAC", disableac);
+ getAttributeBool(root, "XDMCPTerminate", xdmcpterminate);
+
+ /*free the document */
+ xmlFreeDoc(doc);
+
+ /*
+ *Free the global variables that may
+ *have been allocated by the parser.
+ */
+ xmlCleanupParser();
+}
+
diff --git a/xorg-server/hw/xwin/xlaunch/config.h b/xorg-server/hw/xwin/xlaunch/config.h
new file mode 100644
index 000000000..d4ae5e35d
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/config.h
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ *
+ * Authors: Alexander Gottwald, Colin Harrison
+ */
+#ifndef __CONFIG_H__
+#define __CONFIG_H__
+#define UNICODE
+#define _UNICODE
+
+#define PROG_NUMBER 10
+#define HOST_NUMBER 10
+#define MAX_MESSAGE 256
+#define MAX_CAPTION 128
+
+#include <windows.h>
+#include <string>
+#include <vector>
+struct CConfig
+{
+ enum {MultiWindow, Fullscreen, Windowed, Nodecoration} window;
+ enum {NoClient, StartProgram, XDMCP} client;
+ bool local;
+ std::string display;
+ std::string localprogram;
+ std::string remoteprogram;
+ bool compress;
+ std::string host;
+ std::string user;
+ std::string remotepassword;
+ std::string privatekey;
+ bool broadcast;
+ bool indirect;
+ std::string xdmcp_host;
+ bool clipboard;
+ bool clipboardprimary;
+ bool wgl;
+ bool disableac;
+ bool xdmcpterminate;
+ std::string extra_params;
+ CConfig() : window(MultiWindow), client(NoClient), display("-1"),
+ local(false),
+ remotepassword(""),
+ privatekey(""),
+ localprogram("xcalc"),
+ remoteprogram("xterm"),
+ compress(false),
+ host(""),
+ user(""),
+ broadcast(false),
+ indirect(false),
+ xdmcp_host(""),
+ clipboard(true),
+ clipboardprimary(true),
+ extra_params(),
+ disableac(false),
+ wgl(true),
+ xdmcpterminate(false)
+ {
+ };
+ void Load(const char * filename);
+ void Save(const char * filename);
+};
+
+#endif
diff --git a/xorg-server/hw/xwin/xlaunch/main.cc b/xorg-server/hw/xwin/xlaunch/main.cc
new file mode 100644
index 000000000..bf4f5e6a5
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/main.cc
@@ -0,0 +1,982 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#define SAVEPOSIX _POSIX_
+#undef _POSIX_
+#include <io.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <stdio.h>
+#define _POSIX_ SAVEPOSIX
+
+#include "window/util.h"
+#include "window/wizard.h"
+#include "resources/resources.h"
+#include "config.h"
+#include <prsht.h>
+#include <commctrl.h>
+
+#include <stdexcept>
+
+#include <X11/Xlib.h>
+
+#include <sstream>
+
+static bool ContainPrintableChars(const char *Buf, unsigned Nbr)
+{
+ for (int i=0; i<Nbr; i++)
+ {
+ if (Buf[i]>0x20)
+ return true;
+ }
+ return false;
+}
+
+/*
+ * Process messages for the prompt dialog.
+ */
+
+static INT_PTR CALLBACK DisplayPromptDlgProc (HWND hwndDialog, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ static LPARAM Param;
+ static UINT PasswordChar;
+ switch (message)
+ {
+ case WM_INITDIALOG:
+ {
+ HWND hwndDesk=GetForegroundWindow();
+ RECT rc, rcDlg, rcDesk;
+
+ PasswordChar=SendDlgItemMessage(hwndDialog, IDC_INPUT, EM_GETPASSWORDCHAR, 0, 0);
+
+ GetWindowRect (hwndDesk, &rcDesk);
+ GetWindowRect (hwndDialog, &rcDlg);
+ CopyRect (&rc, &rcDesk);
+
+ OffsetRect (&rcDlg, -rcDlg.left, -rcDlg.top);
+ OffsetRect (&rc, -rc.left, -rc.top);
+ OffsetRect (&rc, -rcDlg.right, -rcDlg.bottom);
+
+ SetWindowPos (hwndDialog,
+ HWND_TOPMOST,
+ rcDesk.left + (rc.right / 2),
+ rcDesk.top + (rc.bottom / 2),
+ 0, 0,
+ SWP_NOSIZE | SWP_FRAMECHANGED);
+
+ Param=lParam;
+ SendDlgItemMessage(hwndDialog, IDC_PROMPT_DESC, WM_SETTEXT, 0, lParam);
+ return TRUE;
+ }
+ break;
+
+ case WM_COMMAND:
+ switch (LOWORD (wParam))
+ {
+ case IDOK:
+ SendDlgItemMessage(hwndDialog, IDC_INPUT, WM_GETTEXT, 128, Param);
+ EndDialog(hwndDialog, Param);
+ return TRUE;
+ case IDCANCEL:
+ EndDialog(hwndDialog, NULL);
+ return TRUE;
+ case IDC_PASSWORD:
+ {
+ HWND hDlg=GetDlgItem(hwndDialog, IDC_INPUT);
+ if (HIWORD(wParam)==BN_CLICKED)
+ {
+ if (BST_CHECKED==SendDlgItemMessage(hwndDialog, IDC_PASSWORD, BM_GETCHECK, 0, 0))
+ SendMessage(hDlg, EM_SETPASSWORDCHAR, 0, 0);
+ else
+ SendMessage(hDlg, EM_SETPASSWORDCHAR, (WPARAM)PasswordChar, 0);
+ }
+ InvalidateRect(hDlg, NULL, TRUE);
+ }
+ return TRUE;
+ }
+ break;
+
+ case WM_CLOSE:
+ EndDialog (hwndDialog, NULL);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static bool CheckOutput(HANDLE hChildStdoutRd, int hStdOut, int hStdIn)
+{
+ DWORD NbrAvail=0;
+ PeekNamedPipe(hChildStdoutRd, NULL, NULL, NULL, &NbrAvail, NULL);
+ if (NbrAvail)
+ {
+ char Buf[128];
+ size_t Nbr = _read(hStdOut, Buf, sizeof(Buf)-1);
+ if (ContainPrintableChars(Buf,Nbr))
+ {
+ Buf[Nbr]=0;
+ INT_PTR Ret = DialogBoxParam (GetModuleHandle(NULL), "IDD_PROMPT", NULL, DisplayPromptDlgProc, (LPARAM)Buf);
+
+ if (Ret)
+ {
+ char *Data=(char*)Ret;
+ // Write it to the client
+ _write(hStdIn, Data, strlen(Data));
+ _write(hStdIn, "\x0d\x0a", 2);
+ }
+
+ return true;
+ }
+
+ }
+ return false;
+}
+
+
+/// @brief Send WM_ENDSESSION to all program windows.
+/// This will shutdown the started xserver
+BOOL CALLBACK KillWindowsProc(HWND hwnd, LPARAM lParam)
+{
+ SendMessage(hwnd, WM_ENDSESSION, 0, 0);
+ return TRUE;
+}
+
+/// @brief Actual wizard implementation.
+/// This is based on generic CWizard but handles the special dialogs
+class CMyWizard : public CWizard
+{
+ public:
+ private:
+ CConfig config; /// Storage for config options.
+ public:
+ /// @brief Constructor.
+ /// Set wizard pages.
+ CMyWizard() : CWizard()
+ {
+ AddPage(IDD_DISPLAY, IDS_DISPLAY_TITLE, IDS_DISPLAY_SUBTITLE);
+ AddPage(IDD_CLIENTS, IDS_CLIENTS_TITLE, IDS_CLIENTS_SUBTITLE);
+ AddPage(IDD_PROGRAM, IDS_PROGRAM_TITLE, IDS_PROGRAM_SUBTITLE);
+ AddPage(IDD_XDMCP, IDS_XDMCP_TITLE, IDS_XDMCP_SUBTITLE);
+ //AddPage(IDD_FONTPATH, IDS_FONTPATH_TITLE, IDS_FONTPATH_SUBTITLE);
+ AddPage(IDD_EXTRA, IDS_EXTRA_TITLE, IDS_EXTRA_SUBTITLE);
+ AddPage(IDD_FINISH, IDS_FINISH_TITLE, IDS_FINISH_SUBTITLE);
+ }
+
+ virtual void LoadConfig(const char *filename)
+ {
+ try {
+ config.Load(filename);
+ } catch (std::runtime_error &e)
+ {
+ char Message[255];
+ sprintf(Message,"Failure: %s\n", e.what());
+ MessageBox(NULL,Message,"Exception",MB_OK);
+ }
+ }
+
+ /// @brief Handle the PSN_WIZNEXT message.
+ /// @param hwndDlg Handle to active page dialog.
+ /// @param index Index of current page.
+ /// @return TRUE if the message was handled. FALSE otherwise.
+ virtual BOOL WizardNext(HWND hwndDlg, unsigned index)
+ {
+#ifdef _DEBUG
+ printf("%s %d\n", __FUNCTION__, index);
+#endif
+ switch (PageID(index))
+ {
+ case IDD_DISPLAY:
+ // Check for select window mode
+ if (IsDlgButtonChecked(hwndDlg, IDC_MULTIWINDOW))
+ config.window = CConfig::MultiWindow;
+ else if (IsDlgButtonChecked(hwndDlg, IDC_FULLSCREEN))
+ config.window = CConfig::Fullscreen;
+ else if (IsDlgButtonChecked(hwndDlg, IDC_WINDOWED))
+ config.window = CConfig::Windowed;
+ else if (IsDlgButtonChecked(hwndDlg, IDC_NODECORATION))
+ config.window = CConfig::Nodecoration;
+ else
+ {
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
+ return TRUE;
+ }
+ // Get selected display number
+ {
+ char buffer[512];
+ GetDlgItemText(hwndDlg, IDC_DISPLAY, buffer, 512);
+ buffer[511] = 0;
+ config.display = buffer;
+ }
+ // Check for valid input
+ if (config.display.empty())
+ {
+ MessageBox(hwndDlg,"Please fill in a display number.","Error",MB_OK);
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
+ }
+ else
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_CLIENTS);
+ return TRUE;
+ case IDD_CLIENTS:
+ // Check for select client startup method
+ if (IsDlgButtonChecked(hwndDlg, IDC_CLIENT))
+ {
+ config.client = CConfig::StartProgram;
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_PROGRAM);
+ } else if (IsDlgButtonChecked(hwndDlg, IDC_XDMCP))
+ {
+ config.client = CConfig::XDMCP;
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_XDMCP);
+ } else if (IsDlgButtonChecked(hwndDlg, IDC_CLIENT_NONE))
+ {
+ config.client = CConfig::NoClient;
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_EXTRA);
+ } else
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
+ return TRUE;
+ case IDD_PROGRAM:
+ // Check wether local or remote client should be started
+ if (IsDlgButtonChecked(hwndDlg, IDC_CLIENT_LOCAL))
+ config.local = true;
+ else if (IsDlgButtonChecked(hwndDlg, IDC_CLIENT_REMOTE))
+ config.local = false;
+ else
+ {
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
+ return TRUE;
+ }
+ // Read program, user and host name
+ {
+ char buffer[512];
+ GetDlgItemText(hwndDlg, IDC_CLIENT_USER, buffer, 512);
+ buffer[511] = 0;
+ config.user = buffer;
+ GetDlgItemText(hwndDlg, IDC_CLIENT_HOST, buffer, 512);
+ buffer[511] = 0;
+ config.host = buffer;
+ GetDlgItemText(hwndDlg, IDC_CLIENT_PROGRAM, buffer, 512);
+ buffer[511] = 0;
+ config.localprogram = buffer;
+ GetDlgItemText(hwndDlg, IDC_CLIENT_REMOTEPROGRAM, buffer, 512);
+ buffer[511] = 0;
+ config.remoteprogram = buffer;
+ GetDlgItemText(hwndDlg, IDC_CLIENT_PASSWORD, buffer, 512);
+ buffer[511] = 0;
+ config.remotepassword = buffer;
+ GetDlgItemText(hwndDlg, IDC_CLIENT_PRIVATEKEY, buffer, 512);
+ buffer[511] = 0;
+ config.privatekey = buffer;
+ }
+ // Check for valid input
+ if (!config.local && (config.host.empty() || config.localprogram.empty() || config.remoteprogram.empty()))
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
+ else
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_EXTRA);
+ return TRUE;
+ case IDD_XDMCP:
+ // Check for broadcast
+ if (IsDlgButtonChecked(hwndDlg, IDC_XDMCP_BROADCAST))
+ config.broadcast = true;
+ else if (IsDlgButtonChecked(hwndDlg, IDC_XDMCP_QUERY))
+ config.broadcast = false;
+ else
+ {
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
+ return TRUE;
+ }
+ // Check for indirect mode
+ if (IsDlgButtonChecked(hwndDlg, IDC_XDMCP_INDIRECT))
+ config.indirect = true;
+ else
+ config.indirect = false;
+ // Read hostname
+ {
+ char buffer[512];
+ GetDlgItemText(hwndDlg, IDC_XDMCP_HOST, buffer, 512);
+ buffer[511] = 0;
+ config.xdmcp_host = buffer;
+ }
+ // Check for valid input
+ if (!config.broadcast && config.xdmcp_host.empty())
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
+ else
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_EXTRA);
+ if (IsDlgButtonChecked(hwndDlg, IDC_XDMCP_TERMINATE))
+ config.xdmcpterminate = true;
+ else
+ config.xdmcpterminate = false;
+ return TRUE;
+ case IDD_EXTRA:
+ // check for clipboard
+ if (IsDlgButtonChecked(hwndDlg, IDC_CLIPBOARD))
+ config.clipboard = true;
+ else
+ config.clipboard = false;
+ // check for clipboard primary selection
+ if (IsDlgButtonChecked(hwndDlg, IDC_CLIPBOARDPRIMARY))
+ config.clipboardprimary = true;
+ else
+ config.clipboardprimary = false;
+ // check for wgl
+ if (IsDlgButtonChecked(hwndDlg, IDC_WGL))
+ config.wgl = true;
+ else
+ config.wgl = false;
+ // check for access control
+ if (IsDlgButtonChecked(hwndDlg, IDC_DISABLEAC))
+ config.disableac = true;
+ else
+ config.disableac = false;
+ // read parameters
+ {
+ char buffer[512];
+ GetDlgItemText(hwndDlg, IDC_EXTRA_PARAMS, buffer, 512);
+ buffer[511] = 0;
+ config.extra_params = buffer;
+ }
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_FINISH);
+ return TRUE;
+ default:
+ break;
+ }
+ return FALSE;
+ }
+ /// @brief Handle PSN_WIZFINISH message.
+ /// @param hwndDlg Handle to active page dialog.
+ /// @param index Index of current page.
+ /// @return TRUE if the message was handled. FALSE otherwise.
+ virtual BOOL WizardFinish(HWND hwndDlg, unsigned index)
+ {
+#ifdef _DEBUG
+ printf("finish %d\n", index);
+#endif
+ return FALSE;
+ }
+ /// @brief Handle PSN_WIZBACK message.
+ /// Basicly handles switching to proper page (skipping XDMCP or program page
+ /// if required).
+ /// @param hwndDlg Handle to active page dialog.
+ /// @param index Index of current page.
+ /// @return TRUE if the message was handled. FALSE otherwise.
+ virtual BOOL WizardBack(HWND hwndDlg, unsigned index)
+ {
+ switch (PageID(index))
+ {
+ case IDD_PROGRAM:
+ case IDD_XDMCP:
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_CLIENTS);
+ return TRUE;
+ case IDD_FONTPATH:
+ case IDD_EXTRA: // temporary. fontpath is disabled
+ switch (config.client)
+ {
+ case CConfig::NoClient:
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_CLIENTS);
+ return TRUE;
+ case CConfig::StartProgram:
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_PROGRAM);
+ return TRUE;
+ case CConfig::XDMCP:
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_XDMCP);
+ return TRUE;
+ }
+ break;
+ }
+ return FALSE;
+ }
+ /// @brief Handle PSN_SETACTIVE message.
+ /// @param hwndDlg Handle to active page dialog.
+ /// @param index Index of current page.
+ /// @return TRUE if the message was handled. FALSE otherwise.
+ virtual BOOL WizardActivate(HWND hwndDlg, unsigned index)
+ {
+#ifdef _DEBUG
+ printf("%s %d\n", __FUNCTION__, index);
+#endif
+ switch (PageID(index))
+ {
+ case IDD_CLIENTS:
+ // Enable or disable XDMCP radiobutton and text
+ if (config.window != CConfig::MultiWindow)
+ {
+ EnableWindow(GetDlgItem(hwndDlg, IDC_XDMCP), true);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_XDMCP_DESC), true);
+ }
+ else
+ {
+ if (IsDlgButtonChecked(hwndDlg, IDC_XDMCP))
+ CheckRadioButton(hwndDlg, IDC_CLIENT_NONE, IDC_CLIENT, IDC_CLIENT_NONE);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_XDMCP), false);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_XDMCP_DESC), false);
+ }
+ break;
+ }
+ return FALSE;
+ }
+ protected:
+ /// @brief Enable or disable the control for remote clients.
+ /// @param hwndDlg Handle to active page dialog.
+ /// @param state State of control group.
+ void EnableRemoteProgramGroup(HWND hwndDlg, BOOL state)
+ {
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_PASSWORD), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_HOST), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_USER), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_PASSWORD_DESC), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_HOST_DESC), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_USER_DESC), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_REMOTEPROGRAM), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_REMOTEPROGRAM_DESC), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_PRIVATEKEY), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_PRIVATEKEY_DESC), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_PROGRAM), !state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_PROGRAM_DESC), !state);
+ }
+ /// @brief Enable or disable the control for XDMCP connection.
+ /// @param hwndDlg Handle to active page dialog.
+ /// @param state State of control group.
+ void EnableXDMCPQueryGroup(HWND hwndDlg, BOOL state)
+ {
+ EnableWindow(GetDlgItem(hwndDlg, IDC_XDMCP_HOST), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_XDMCP_INDIRECT), state);
+ }
+ /// @brief Fill program box with default values.
+ /// @param hwndDlg Handle to active page dialog.
+ void FillProgramBox(HWND hwndDlg)
+ {
+ HWND cbwnd = GetDlgItem(hwndDlg, IDC_CLIENT_PROGRAM);
+ if (cbwnd == NULL)
+ return;
+ SendMessage(cbwnd, CB_RESETCONTENT, 0, 0);
+ SendMessage(cbwnd, CB_ADDSTRING, 0, (LPARAM) "xcalc");
+ SendMessage(cbwnd, CB_ADDSTRING, 0, (LPARAM) "xclock");
+ SendMessage(cbwnd, CB_ADDSTRING, 0, (LPARAM) "xwininfo");
+ SendMessage(cbwnd, CB_SETCURSEL, 0, 0);
+ }
+ void ShowSaveDialog(HWND parent)
+ {
+ char szTitle[512];
+ char szFilter[512];
+ char szFileTitle[512];
+ char szFile[MAX_PATH];
+ HINSTANCE hInst = GetModuleHandle(NULL);
+
+ LoadString(hInst, IDS_SAVE_TITLE, szTitle, sizeof(szTitle));
+ LoadString(hInst, IDS_SAVE_FILETITLE, szFileTitle, sizeof(szFileTitle));
+ LoadString(hInst, IDS_SAVE_FILTER, szFilter, sizeof(szFilter));
+ for (unsigned i=0; szFilter[i]; i++)
+ if (szFilter[i] == '%')
+ szFilter[i] = '\0';
+
+ strcpy(szFile, "config.xlaunch");
+
+ OPENFILENAME ofn;
+ memset(&ofn, 0, sizeof(OPENFILENAME));
+ ofn.lStructSize = sizeof(OPENFILENAME);
+ ofn.hwndOwner = parent;
+ ofn.lpstrFilter = szFilter;
+ ofn.lpstrFile= szFile;
+ ofn.nMaxFile = sizeof(szFile)/ sizeof(*szFile);
+ ofn.lpstrFileTitle = szFileTitle;
+ ofn.nMaxFileTitle = sizeof(szFileTitle);
+ ofn.lpstrInitialDir = (LPSTR)NULL;
+ ofn.Flags = OFN_SHOWHELP | OFN_OVERWRITEPROMPT;
+ ofn.lpstrTitle = szTitle;
+
+ if (GetSaveFileName(&ofn))
+ {
+ try {
+ config.Save(ofn.lpstrFile);
+ } catch (std::runtime_error &e)
+ {
+ char Message[255];
+ sprintf(Message,"Failure: %s\n", e.what());
+ MessageBox(NULL,Message,"Exception",MB_OK);
+ }
+ }
+ }
+ public:
+
+ /// @brief Handle messages fo the dialog pages.
+ /// @param hwndDlg Handle of active dialog.
+ /// @param uMsg Message code.
+ /// @param wParam Message parameter.
+ /// @param lParam Message parameter.
+ /// @param psp Handle to sheet paramters.
+ virtual INT_PTR PageDispatch(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam, PROPSHEETPAGE *psp)
+ {
+ HWND hwnd;
+ switch (uMsg)
+ {
+ case WM_INITDIALOG:
+ switch (PageID(PageIndex(psp)))
+ {
+ case IDD_DISPLAY:
+ // Init display dialog. Enable correct check buttons
+ switch (config.window)
+ {
+ default:
+ case CConfig::MultiWindow:
+ CheckRadioButton(hwndDlg, IDC_MULTIWINDOW, IDC_NODECORATION, IDC_MULTIWINDOW);
+ break;
+ case CConfig::Fullscreen:
+ CheckRadioButton(hwndDlg, IDC_MULTIWINDOW, IDC_NODECORATION, IDC_FULLSCREEN);
+ break;
+ case CConfig::Windowed:
+ CheckRadioButton(hwndDlg, IDC_MULTIWINDOW, IDC_NODECORATION, IDC_WINDOWED);
+ break;
+ case CConfig::Nodecoration:
+ CheckRadioButton(hwndDlg, IDC_MULTIWINDOW, IDC_NODECORATION, IDC_NODECORATION);
+ break;
+ }
+ // Set display number
+ SetDlgItemText(hwndDlg, IDC_DISPLAY, config.display.c_str());
+ break;
+ case IDD_CLIENTS:
+ // Init client dialog. Enable correct check buttons
+ switch (config.client)
+ {
+ default:
+ case CConfig::NoClient:
+ CheckRadioButton(hwndDlg, IDC_CLIENT_NONE, IDC_CLIENT, IDC_CLIENT_NONE);
+ break;
+ case CConfig::StartProgram:
+ CheckRadioButton(hwndDlg, IDC_CLIENT_NONE, IDC_CLIENT, IDC_CLIENT);
+ break;
+ case CConfig::XDMCP:
+ CheckRadioButton(hwndDlg, IDC_CLIENT_NONE, IDC_CLIENT, IDC_XDMCP);
+ break;
+ }
+ break;
+ case IDD_PROGRAM:
+ // Init program dialog. Check local and remote buttons
+ CheckRadioButton(hwndDlg, IDC_CLIENT_LOCAL, IDC_CLIENT_REMOTE, config.local?IDC_CLIENT_LOCAL:IDC_CLIENT_REMOTE);
+ EnableRemoteProgramGroup(hwndDlg, config.local?FALSE:TRUE);
+ // Fill combo boxes
+ FillProgramBox(hwndDlg);
+ // Set edit fields
+ SetDlgItemText(hwndDlg, IDC_CLIENT_PROGRAM, config.localprogram.c_str());
+ SetDlgItemText(hwndDlg, IDC_CLIENT_REMOTEPROGRAM, config.remoteprogram.c_str());
+ SetDlgItemText(hwndDlg, IDC_CLIENT_USER, config.user.c_str());
+ SetDlgItemText(hwndDlg, IDC_CLIENT_HOST, config.host.c_str());
+ SetDlgItemText(hwndDlg, IDC_CLIENT_PASSWORD, config.remotepassword.c_str());
+ SetDlgItemText(hwndDlg, IDC_CLIENT_PRIVATEKEY, config.privatekey.c_str());
+ break;
+ case IDD_XDMCP:
+ // Init XDMCP dialog. Check broadcast and indirect button
+ CheckRadioButton(hwndDlg, IDC_XDMCP_QUERY, IDC_XDMCP_BROADCAST, config.broadcast?IDC_XDMCP_BROADCAST:IDC_XDMCP_QUERY);
+ CheckDlgButton(hwndDlg, IDC_XDMCP_INDIRECT, config.indirect?BST_CHECKED:BST_UNCHECKED);
+ EnableXDMCPQueryGroup(hwndDlg, config.broadcast?FALSE:TRUE);
+ // Set hostname
+ SetDlgItemText(hwndDlg, IDC_XDMCP_HOST, config.xdmcp_host.c_str());
+ CheckDlgButton(hwndDlg, IDC_XDMCP_TERMINATE, config.xdmcpterminate?BST_CHECKED:BST_UNCHECKED);
+ break;
+ case IDD_EXTRA:
+ CheckDlgButton(hwndDlg, IDC_CLIPBOARD, config.clipboard?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_CLIPBOARDPRIMARY, config.clipboardprimary?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_WGL, config.wgl?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_DISABLEAC, config.disableac?BST_CHECKED:BST_UNCHECKED);
+ SetDlgItemText(hwndDlg, IDC_EXTRA_PARAMS, config.extra_params.c_str());
+ break;
+
+ }
+ case WM_COMMAND:
+ // Handle control messages
+ switch (LOWORD(wParam))
+ {
+ // Handle clicks on images. Check proper radiobutton
+ case IDC_MULTIWINDOW_IMG:
+ case IDC_FULLSCREEN_IMG:
+ case IDC_WINDOWED_IMG:
+ case IDC_NODECORATION_IMG:
+ CheckRadioButton(hwndDlg, IDC_MULTIWINDOW, IDC_NODECORATION, LOWORD(wParam)-4);
+ SetFocus(GetDlgItem(hwndDlg, LOWORD(wParam)-4));
+ break;
+ // Disable unavailable controls
+ case IDC_CLIENT_REMOTE:
+ case IDC_CLIENT_LOCAL:
+ EnableRemoteProgramGroup(hwndDlg, LOWORD(wParam) == IDC_CLIENT_REMOTE);
+ break;
+ case IDC_XDMCP_QUERY:
+ case IDC_XDMCP_BROADCAST:
+ EnableXDMCPQueryGroup(hwndDlg, LOWORD(wParam) == IDC_XDMCP_QUERY);
+ break;
+ case IDC_FINISH_SAVE:
+ ShowSaveDialog(hwndDlg);
+ break;
+ }
+ }
+ // pass messages to parent
+ return CWizard::PageDispatch(hwndDlg, uMsg, wParam, lParam, psp);
+ }
+
+ /// @brief Try to connect to server.
+ /// Repeat until successful, server died or maximum number of retries
+ /// reached.
+ Display *WaitForServer(HANDLE serverProcess)
+ {
+ int ncycles = 120; /* # of cycles to wait */
+ int cycles; /* Wait cycle count */
+ Display *xd;
+
+ for (cycles = 0; cycles < ncycles; cycles++) {
+ if ((xd = XOpenDisplay(NULL))) {
+ return xd;
+ }
+ else {
+ if (WaitForSingleObject(serverProcess, 1000) == WAIT_TIMEOUT)
+ continue;
+ }
+ }
+ return NULL;
+ }
+
+ /// @brief Do the actual start of VCXsrv and clients
+ void StartUp()
+ {
+ std::string buffer;
+ std::string client;
+
+ // Construct display strings
+ int DisplayNbr=atoi(config.display.c_str());
+ std::string display_id = ":" + config.display;
+ std::string display = "DISPLAY=127.0.0.1" + display_id + ".0";
+
+ // Build Xsrv commandline
+ buffer = "vcxsrv ";
+ if (DisplayNbr!=-1)
+ buffer += display_id + " ";
+ switch (config.window)
+ {
+ case CConfig::MultiWindow:
+ buffer += "-multiwindow ";
+ break;
+ case CConfig::Fullscreen:
+ buffer += "-fullscreen ";
+ break;
+ case CConfig::Nodecoration:
+ buffer += "-nodecoration ";
+ break;
+ default:
+ break;
+ }
+ // Add XDMCP parameter
+ if (config.client == CConfig::XDMCP)
+ {
+ if (config.broadcast)
+ buffer += "-broadcast ";
+ else
+ {
+ if (config.indirect)
+ buffer += "-indirect ";
+ else
+ buffer += "-query ";
+ buffer += config.xdmcp_host;
+ buffer += " ";
+ }
+ if (config.xdmcpterminate)
+ buffer += "-terminate ";
+ }
+ if (config.clipboard)
+ buffer += "-clipboard ";
+ if (!config.clipboardprimary)
+ buffer += "-noclipboardprimary ";
+ if (config.wgl)
+ buffer += "-wgl ";
+ else
+ buffer += "-nowgl ";
+ if (config.disableac)
+ buffer += "-ac ";
+ if (!config.extra_params.empty())
+ {
+ buffer += config.extra_params;
+ buffer += " ";
+ }
+
+ int *pDisplayfd;
+ if (DisplayNbr==-1)
+ {
+ // Pass the handle of some shared memory to vcxsrv to getting back the display nbr
+ SECURITY_ATTRIBUTES sa;
+ sa.nLength=sizeof(sa);
+ sa.lpSecurityDescriptor=NULL;
+ sa.bInheritHandle=TRUE;
+ HANDLE hDisplayFdMem=CreateFileMapping(INVALID_HANDLE_VALUE, &sa, PAGE_READWRITE, 0, sizeof(int), NULL);
+ pDisplayfd=(int*)MapViewOfFile(hDisplayFdMem, FILE_MAP_READ|FILE_MAP_WRITE, 0, 0, 0);
+ *pDisplayfd=-1; // Not yet initialised
+ buffer+="-displayfd ";
+ std::stringstream ss;
+ ss<<(int)hDisplayFdMem;
+ buffer+=ss.str();
+ }
+ // Construct client commandline
+ if (config.client == CConfig::StartProgram)
+ {
+ if (!config.local)
+ {
+ char cmdline[512];
+ std::string host = config.host;
+ std::string remotepassword;
+ if (!config.user.empty())
+ host = config.user + "@" + config.host;
+ if (!config.remotepassword.empty())
+ remotepassword=std::string(" -pw ")+config.remotepassword;
+ if (!config.privatekey.empty())
+ remotepassword+=std::string(" -i \"")+config.privatekey+"\"";
+ _snprintf(cmdline,512,"plink -ssh -X%s %s %s",
+ remotepassword.c_str(), host.c_str(),config.remoteprogram.c_str());
+ client += cmdline;
+ }
+ else
+ {
+ client += config.localprogram.c_str();
+ }
+ }
+
+ // Prepare program startup
+ STARTUPINFO si, sic;
+ PROCESS_INFORMATION pi, pic;
+ DWORD hcount = 0;
+ Display *dpy = NULL;
+
+ ZeroMemory( &si, sizeof(si) );
+ si.cb = sizeof(si);
+ ZeroMemory( &pi, sizeof(pi) );
+ ZeroMemory( &sic, sizeof(sic) );
+ sic.cb = sizeof(sic);
+ ZeroMemory( &pic, sizeof(pic) );
+
+ // Start VCXsrv process.
+#ifdef _DEBUG
+ printf("%s\n", buffer.c_str());
+#endif
+ char CurDir[MAX_PATH];
+ GetModuleFileName(NULL,CurDir,MAX_PATH);
+ *strrchr(CurDir,'\\')=0;
+
+ if( !CreateProcess( NULL, (CHAR*)buffer.c_str(), NULL, NULL,
+ TRUE, 0, NULL, CurDir, &si, &pi ))
+ throw win32_error("CreateProcess failed");
+
+ if (!client.empty())
+ {
+ if (DisplayNbr==-1)
+ {
+ // Wait maximum 10 seconds
+ int Count=1000;
+ while (-1==*pDisplayfd)
+ {
+ if (Count-- < 0)
+ throw std::runtime_error("Connection to server failed");
+ Sleep(10);
+ }
+ std::stringstream ss;
+ ss<<*pDisplayfd;
+ display_id = ":" + ss.str();
+ display = "DISPLAY=127.0.0.1" + display_id + ".0";
+ }
+ // Set DISPLAY variable
+ _putenv(display.c_str());
+
+ // Wait for server to startup
+ dpy = WaitForServer(pi.hProcess);
+ if (dpy == NULL)
+ {
+ TerminateProcess(pi.hProcess, (DWORD)-1);
+ throw std::runtime_error("Connection to server failed");
+ }
+
+#ifdef _DEBUG
+ printf("%s\n", client.c_str());
+#endif
+
+ // Start the child process.
+
+ #if 1
+ // Create a console, otherwise some commands will not execute with plink
+ HWINSTA h=GetProcessWindowStation();
+ HWND hConsoleWnd=NULL;
+ if (h)
+ {
+ AllocConsole();
+ hConsoleWnd=GetConsoleWindow();
+ ShowWindow(hConsoleWnd, SW_HIDE ); // make it hidden, the disadvantage of this method is that the console window flashes
+ // but we must be able to show it when the client puts some output
+ }
+
+ HANDLE hChildStdinRd;
+ HANDLE hChildStdinWr;
+ HANDLE hChildStdoutRd;
+ HANDLE hChildStdoutWr;
+ SECURITY_ATTRIBUTES saAttr;
+ BOOL fSuccess;
+
+ saAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
+ saAttr.bInheritHandle = TRUE;
+ saAttr.lpSecurityDescriptor = NULL;
+
+ if (!CreatePipe(&hChildStdinRd, &hChildStdinWr, &saAttr, 0))
+ throw win32_error("CreatePipe failed", GetLastError());
+
+ // Ensure the write handle to the pipe for STDIN is not inherited.
+ if ( ! SetHandleInformation(hChildStdinWr, HANDLE_FLAG_INHERIT, 0) )
+ throw win32_error("SetHandleInformation failed", GetLastError());
+
+ if (!CreatePipe(&hChildStdoutRd, &hChildStdoutWr, &saAttr, 0))
+ throw win32_error("CreatePipe failed", GetLastError());
+
+ // Ensure the read handle to the pipe for STDOUT is not inherited.
+ if ( ! SetHandleInformation(hChildStdoutRd, HANDLE_FLAG_INHERIT, 0) )
+ throw win32_error("SetHandleInformation failed", GetLastError());
+
+ sic.dwFlags = STARTF_USESTDHANDLES;
+ sic.hStdInput = hChildStdinRd;
+ sic.hStdOutput = hChildStdoutWr;
+ sic.hStdError = hChildStdoutWr;
+
+ if (!CreateProcess(NULL,(CHAR*)client.c_str(),NULL,NULL,TRUE,0,NULL, CurDir, &sic, &pic))
+ {
+ DWORD err = GetLastError();
+ TerminateProcess(pi.hProcess, (DWORD)-1);
+ throw win32_error("CreateProcess failed", err);
+ }
+ CloseHandle(hChildStdinRd);
+ CloseHandle(hChildStdoutWr);
+ CloseHandle(pic.hThread);
+
+ int hStdIn = _open_osfhandle((long)hChildStdinWr, _O_WRONLY|_O_BINARY);
+ int hStdOut = _open_osfhandle((long)hChildStdoutRd, _O_RDONLY|_O_BINARY);
+ HANDLE hConsoleInput=GetStdHandle(STD_INPUT_HANDLE);
+ HANDLE hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
+ SetConsoleMode(hConsoleInput, 0); // Needed to disable local echo, and return only upon carriage return of read function
+ while (1)
+ {
+ if (!WaitForSingleObject(pic.hProcess, 20 ))
+ {
+ // Child does not exist anymore, but it could be that there is still error output in the pipes
+ // So wait some time, that then check the output again
+ Sleep(500);
+ CheckOutput(hChildStdoutRd, hStdOut, hStdIn);
+ break;
+ }
+ if (!WaitForSingleObject(pi.hProcess, 0))
+ {
+ TerminateProcess(pic.hProcess, (DWORD)-1);
+ break;
+ }
+ CheckOutput(hChildStdoutRd, hStdOut, hStdIn);
+ }
+ #else
+ // Hide a console window
+ // FIXME: This may make it impossible to enter the password
+ sic.dwFlags = STARTF_USESHOWWINDOW;
+ sic.wShowWindow = SW_HIDE;
+
+ if( !CreateProcess( NULL, (CHAR*)client.c_str(), NULL, NULL,
+ FALSE, 0, NULL, CurDir, &sic, &pic ))
+ {
+ DWORD err = GetLastError();
+ while (hcount--)
+ TerminateProcess(handles[hcount], (DWORD)-1);
+ throw win32_error("CreateProcess failed", err);
+ }
+ CloseHandle( pic.hThread );
+ #endif
+ }
+
+ // Wait until child process exits.
+ DWORD ret = WaitForSingleObject(pic.hProcess, INFINITE );
+
+#ifdef _DEBUG
+ printf("killing process!\n");
+#endif
+ // Check if Xsrv is still running, but only when we started a local program
+ if (config.local)
+ {
+ DWORD exitcode;
+ GetExitCodeProcess(pi.hProcess, &exitcode);
+ unsigned counter = 0;
+ while (exitcode == STILL_ACTIVE)
+ {
+ if (++counter > 10)
+ TerminateProcess(pi.hProcess, (DWORD)-1);
+ else
+ // Shutdown Xsrv (the soft way!)
+ EnumThreadWindows(pi.dwThreadId, KillWindowsProc, 0);
+ Sleep(500);
+ GetExitCodeProcess(pi.hProcess, &exitcode);
+ }
+ }
+
+ // Close process and thread handles.
+ CloseHandle( pi.hProcess );
+ CloseHandle( pi.hThread );
+ CloseHandle( pic.hProcess );
+ }
+};
+
+int main(int argc, char **argv)
+{
+ try {
+ InitCommonControls();
+ CMyWizard dialog;
+
+ bool skip_wizard = false;
+
+ for (int i = 1; i < argc; i++)
+ {
+ if (argv[i] == NULL)
+ continue;
+
+ std::string arg(argv[i]);
+ if (arg == "-load" && i + 1 < argc)
+ {
+ i++;
+ dialog.LoadConfig(argv[i]);
+ continue;
+ }
+ if (arg == "-run" && i + 1 < argc)
+ {
+ i++;
+ dialog.LoadConfig(argv[i]);
+ skip_wizard = true;
+ continue;
+ }
+ }
+
+ int ret = 0;
+ if (skip_wizard || (ret =dialog.ShowModal()) != 0)
+ dialog.StartUp();
+#ifdef _DEBUG
+ printf("return %d\n", ret);
+#endif
+ return 0;
+ } catch (std::runtime_error &e)
+ {
+ char Message[255];
+ sprintf(Message,"Failure: %s\n", e.what());
+ MessageBox(NULL,Message,"Exception",MB_OK);
+ return -1;
+ }
+}
diff --git a/xorg-server/hw/xwin/xlaunch/makefile b/xorg-server/hw/xwin/xlaunch/makefile
new file mode 100644
index 000000000..83426fe19
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/makefile
@@ -0,0 +1,22 @@
+INCLUDELIBFILES = window\$(OBJDIR)\window.lib \
+ $(MHMAKECONF)\libX11\$(OBJDIR)\libX11.lib \
+ $(MHMAKECONF)\libxcb\src\$(OBJDIR)\libxcb.lib \
+ $(MHMAKECONF)\libXau\$(OBJDIR)\libXau.lib
+
+CSRCS=config.cc main.cc
+
+INCLUDES += $(MHMAKECONF)\libxml2\include
+
+WINAPP = xlaunch
+
+RESOURCES = resources.rc
+
+$(OBJDIR)\%.res : resources\%.rc $(wildcard resources\*.rc)
+ $(RC) $(RCFLAGS) $(RCDEFINES:%=-d "%") $(RCINCLUDES:%=-i %) -Fo$(relpath $@) $<
+
+LIBDIRS=$(dir $(INCLUDELIBFILES))
+
+load_makefile $(LIBDIRS:%$(OBJDIR)\=%makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+LINKLIBS += $(LIBXMLLIB) $(PTHREADLIB)
+
diff --git a/xorg-server/hw/xwin/xlaunch/resources/dialog.rc b/xorg-server/hw/xwin/xlaunch/resources/dialog.rc
new file mode 100644
index 000000000..3435329b2
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/resources/dialog.rc
@@ -0,0 +1,153 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#include <windows.h>
+#include "resources.h"
+
+#ifndef STR_CAPTION_DISPLAY
+#include "strings.rc"
+#endif
+
+IDD_DISPLAY DIALOGEX 0, 0, 317, 143
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_CENTERMOUSE
+CAPTION STR_CAPTION_DISPLAY
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ AUTORADIOBUTTON STR_MULTIWINDOW,IDC_MULTIWINDOW,7,25,70,24,BS_MULTILINE|BS_TOP
+ AUTORADIOBUTTON STR_FULLSCREEN,IDC_FULLSCREEN,157,25,70,24,BS_MULTILINE|BS_TOP
+ AUTORADIOBUTTON STR_WINDOWED,IDC_WINDOWED,7,75,70,24,BS_MULTILINE|BS_TOP
+ AUTORADIOBUTTON STR_NODECORATION,IDC_NODECORATION,157,75,70,24,BS_MULTILINE|BS_TOP
+
+ CONTROL "IMG_MULTIWINDOW",IDC_MULTIWINDOW_IMG,"Static",SS_BITMAP | SS_NOTIFY,80,10,0,0
+ CONTROL "IMG_FULLSCREEN",IDC_FULLSCREEN_IMG,"Static",SS_BITMAP | SS_NOTIFY,230,10,0,0
+ CONTROL "IMG_WINDOWED",IDC_WINDOWED_IMG,"Static",SS_BITMAP | SS_NOTIFY,80,60,0,0
+ CONTROL "IMG_NODECORATION",IDC_NODECORATION_IMG,"Static",SS_BITMAP | SS_NOTIFY,230,60,0,0
+
+ LTEXT STR_DISPLAY_DESC,IDC_DISPLAY_DESC,7,120,64,12
+ LTEXT STR_DISPLAY_EXTRA_DESC,IDC_DISPLAY_EXTRA_DESC,7,132,200,12
+ EDITTEXT IDC_DISPLAY,80,118,67,12
+END
+
+IDD_CLIENTS DIALOGEX 0, 0, 317, 143
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_CENTERMOUSE
+CAPTION STR_CAPTION_CLIENTS
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ AUTORADIOBUTTON STR_CLIENT_NONE,IDC_CLIENT_NONE,7,14,300,10
+ AUTORADIOBUTTON STR_CLIENT,IDC_CLIENT,7,56,300,10
+ AUTORADIOBUTTON STR_XDMCP,IDC_XDMCP,7,98,300,10
+
+ LTEXT STR_CLIENT_NONE_DESC,IDC_CLIENT_NONE_DESC,19,28,280,27
+ LTEXT STR_CLIENT_DESC,IDC_CLIENT_DESC,19,70,280,27
+ LTEXT STR_XDMCP_DESC,IDC_XDMCP_DESC,19,112,280,27
+END
+
+IDD_PROGRAM DIALOGEX 0, 0, 317, 143
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_CENTERMOUSE
+CAPTION STR_CAPTION_PROGRAM
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ AUTORADIOBUTTON STR_CLIENT_LOCAL,IDC_CLIENT_LOCAL,7,14,300,10
+ AUTORADIOBUTTON STR_CLIENT_REMOTE,IDC_CLIENT_REMOTE,7,50,300,10
+
+ LTEXT STR_CLIENT_PROGRAM_DESC,IDC_CLIENT_PROGRAM_DESC,19,28,64,10
+ COMBOBOX IDC_CLIENT_PROGRAM,110,26,64,54,CBS_DROPDOWN | WS_VSCROLL
+
+
+ LTEXT STR_CLIENT_REMOTEPROGRAM_DESC,IDC_CLIENT_REMOTEPROGRAM_DESC,19,64,70,10
+ EDITTEXT IDC_CLIENT_REMOTEPROGRAM,110,62,200,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
+
+ LTEXT STR_CLIENT_PASSWORD_DESC,IDC_CLIENT_PASSWORD_DESC,19,78,70,10
+ EDITTEXT IDC_CLIENT_PASSWORD,110,76,64,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
+
+
+ LTEXT STR_CLIENT_HOST_DESC,IDC_CLIENT_HOST_DESC,19,92,70,10
+ EDITTEXT IDC_CLIENT_HOST,110,90,64,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
+
+ LTEXT STR_CLIENT_USER_DESC,IDC_CLIENT_USER_DESC,19,106,70,10
+ EDITTEXT IDC_CLIENT_USER,110,104,64,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
+
+ LTEXT STR_CLIENT_PRIVATEKEY_DESC,IDC_CLIENT_PRIVATEKEY_DESC,19,120,90,10
+ EDITTEXT IDC_CLIENT_PRIVATEKEY,110,118,200,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
+END
+
+IDD_XDMCP DIALOGEX 0, 0, 317, 143
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_CENTERMOUSE
+CAPTION STR_CAPTION_XDMCP
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ AUTORADIOBUTTON STR_XDMCP_QUERY, IDC_XDMCP_QUERY,7,14,64,10
+ EDITTEXT IDC_XDMCP_HOST,78,12,64,12
+ AUTOCHECKBOX STR_XDMCP_INDIRECT,IDC_XDMCP_INDIRECT,19,28,280,10
+ AUTORADIOBUTTON STR_XDMCP_BROADCAST, IDC_XDMCP_BROADCAST,7,42,300,10
+ LTEXT STR_XDMCP_QUERY_DESC,IDC_XDMCP_QUERY_DESC,7,66,300,42
+ AUTOCHECKBOX STR_XDMCP_TERMINATE,IDC_XDMCP_TERMINATE,7,94,300,10
+END
+
+IDD_EXTRA DIALOGEX 0, 0, 317, 143
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_CENTERMOUSE
+CAPTION STR_CAPTION_EXTRA
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ AUTOCHECKBOX STR_CLIPBOARD,IDC_CLIPBOARD,7,10,300,10
+ LTEXT STR_CLIPBOARD_DESC,IDC_CLIPBOARD_DESC,19,20,280,27
+
+ AUTOCHECKBOX STR_CLIPBOARDPRIMARY,IDC_CLIPBOARDPRIMARY,19,30,300,10
+ LTEXT STR_CLIPBOARDPRIMARY_DESC,IDC_CLIPBOARDPRIMARY_DESC,31,40,280,27
+
+ AUTOCHECKBOX STR_WGL,IDC_WGL,7,52,300,10
+ LTEXT STR_WGL_DESC,IDC_WGL_DESC,19,62,280,27
+
+ AUTOCHECKBOX STR_DISABLEAC,IDC_DISABLEAC,7,82,300,10
+ LTEXT STR_DISABLEAC_DESC,IDC_DISABLEAC_DESC,19,92,280,27
+
+ LTEXT STR_EXTRA_PARAMS_DESC,IDC_EXTRA_PARAMS_DESC,7,105,280,10
+ EDITTEXT IDC_EXTRA_PARAMS,7,115,300,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
+END
+
+IDD_FINISH DIALOGEX 0, 0, 317, 143
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_CENTERMOUSE
+CAPTION STR_CAPTION_FINISH
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ LTEXT STR_FINISH_DESC,IDC_FINISH_DESC,7,14,300,28
+ LTEXT STR_FINISH_SAVE_DESC,IDC_FINISH_SAVE_DESC,7,56,300,12
+ PUSHBUTTON STR_FINISH_SAVE,IDC_FINISH_SAVE,7,68,75,14
+END
+
+/* Prompting dialog */
+IDD_PROMPT DIALOGEX 32, 32, 260, 115
+STYLE DS_SETFONT | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION
+EXSTYLE WS_EX_NOPARENTNOTIFY
+CAPTION "Input requested?"
+FONT 8, "MS Shell Dlg 2", 0, 0, 0x1
+BEGIN
+ LTEXT "",IDC_PROMPT_DESC,7,7,245,50, WS_BORDER
+ EDITTEXT IDC_INPUT,7,67,245,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL | ES_PASSWORD
+ AUTOCHECKBOX "Show Characters", IDC_PASSWORD, 7,77,245,12, WS_TABSTOP
+ DEFPUSHBUTTON "OK",IDOK,61,95,50,15, WS_TABSTOP
+ PUSHBUTTON "Cancel",IDCANCEL,147,95,50,14, WS_TABSTOP
+END
+
diff --git a/xorg-server/hw/xwin/xlaunch/resources/fullscreen.bmp b/xorg-server/hw/xwin/xlaunch/resources/fullscreen.bmp
new file mode 100644
index 000000000..0d051f0b4
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/resources/fullscreen.bmp
Binary files differ
diff --git a/xorg-server/hw/xwin/xlaunch/resources/images.rc b/xorg-server/hw/xwin/xlaunch/resources/images.rc
new file mode 100644
index 000000000..2eac53c93
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/resources/images.rc
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+IMG_MULTIWINDOW BITMAP "resources\\multiwindow.bmp"
+IMG_WINDOWED BITMAP "resources\\windowed.bmp"
+IMG_FULLSCREEN BITMAP "resources\\fullscreen.bmp"
+IMG_NODECORATION BITMAP "resources\\nodecoration.bmp"
diff --git a/xorg-server/hw/xwin/xlaunch/resources/multiwindow.bmp b/xorg-server/hw/xwin/xlaunch/resources/multiwindow.bmp
new file mode 100644
index 000000000..0755c87b4
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/resources/multiwindow.bmp
Binary files differ
diff --git a/xorg-server/hw/xwin/xlaunch/resources/nodecoration.bmp b/xorg-server/hw/xwin/xlaunch/resources/nodecoration.bmp
new file mode 100644
index 000000000..e9e1ce690
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/resources/nodecoration.bmp
Binary files differ
diff --git a/xorg-server/hw/xwin/xlaunch/resources/resources.h b/xorg-server/hw/xwin/xlaunch/resources/resources.h
new file mode 100644
index 000000000..256ebb9fa
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/resources/resources.h
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+
+#define IDC_STATIC -1
+
+#define IDD_WELCOME 100
+#define IDD_FINISH 101
+#define IDD_DISPLAY 102
+#define IDD_CLIENTS 103
+#define IDD_PROGRAM 104
+#define IDD_XDMCP 105
+#define IDD_FONTPATH 106
+#define IDD_EXTRA 107
+
+#define IDI_XLAUNCH 108
+
+#define IDC_MULTIWINDOW 200
+#define IDC_WINDOWED 201
+#define IDC_FULLSCREEN 202
+#define IDC_NODECORATION 203
+#define IDC_MULTIWINDOW_IMG 204
+#define IDC_WINDOWED_IMG 205
+#define IDC_FULLSCREEN_IMG 206
+#define IDC_NODECORATION_IMG 207
+#define IDC_DISPLAY 208
+#define IDC_DISPLAY_DESC 209
+#define IDC_DISPLAY_EXTRA_DESC 210
+
+#define IDC_CLIENT_NONE 211
+#define IDC_XDMCP 212
+#define IDC_CLIENT 213
+#define IDC_CLIENT_LOCAL 214
+#define IDC_CLIENT_REMOTE 215
+#define IDC_CLIENT_HOST 216
+#define IDC_CLIENT_USER 217
+#define IDC_CLIENT_PASSWORD 218
+#define IDC_CLIENT_CONFIGURE 219
+#define IDC_CLIENT_PROGRAM 220
+#define IDC_XDMCP_QUERY 221
+#define IDC_XDMCP_BROADCAST 222
+#define IDC_XDMCP_INDIRECT 223
+#define IDC_XDMCP_HOST 224
+#define IDC_CLIENT_NONE_DESC 225
+#define IDC_XDMCP_DESC 226
+#define IDC_CLIENT_DESC 227
+#define IDC_XDMCP_QUERY_DESC 228
+#define IDC_CLIENT_PROGRAM_DESC 229
+#define IDC_CLIENT_HOST_DESC 230
+#define IDC_CLIENT_USER_DESC 231
+#define IDC_CLIENT_PASSWORD_DESC 232
+#define IDC_CLIENT_REMOTEPROGRAM 233
+#define IDC_CLIENT_REMOTEPROGRAM_DESC 234
+#define IDC_CLIENT_PRIVATEKEY 235
+#define IDC_CLIENT_PRIVATEKEY_DESC 236
+
+#define IDC_FONTPATH_DESC 240
+
+#define IDC_FINISH_DESC 250
+#define IDC_FINISH_SAVE 251
+#define IDC_FINISH_SAVE_DESC 252
+
+#define IDC_CLIPBOARD 260
+#define IDC_CLIPBOARD_DESC 261
+#define IDC_EXTRA_PARAMS 262
+#define IDC_EXTRA_PARAMS_DESC 263
+#define IDC_WGL 264
+#define IDC_WGL_DESC 265
+#define IDC_CLIPBOARDPRIMARY 266
+#define IDC_CLIPBOARDPRIMARY_DESC 267
+#define IDC_DISABLEAC 268
+#define IDC_DISABLEAC_DESC 269
+#define IDC_XDMCP_TERMINATE 270
+
+#define IDC_PROMPT_DESC 280
+#define IDC_INPUT 281
+#define IDC_PASSWORD 282
+
+#define IDS_DISPLAY_TITLE 300
+#define IDS_DISPLAY_SUBTITLE 301
+#define IDS_CLIENTS_TITLE 302
+#define IDS_CLIENTS_SUBTITLE 303
+#define IDS_PROGRAM_TITLE 304
+#define IDS_PROGRAM_SUBTITLE 305
+#define IDS_XDMCP_TITLE 306
+#define IDS_XDMCP_SUBTITLE 307
+#define IDS_FONTPATH_TITLE 308
+#define IDS_FONTPATH_SUBTITLE 309
+#define IDS_FINISH_TITLE 310
+#define IDS_FINISH_SUBTITLE 311
+#define IDS_EXTRA_TITLE 312
+#define IDS_EXTRA_SUBTITLE 313
+#define IDS_SAVE_TITLE 320
+#define IDS_SAVE_FILETITLE 321
+#define IDS_SAVE_FILTER 322
+
diff --git a/xorg-server/hw/xwin/xlaunch/resources/resources.rc b/xorg-server/hw/xwin/xlaunch/resources/resources.rc
new file mode 100644
index 000000000..e3df4610a
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/resources/resources.rc
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#include <windows.h>
+
+#include "resources.h"
+#include "images.rc"
+#include "dialog.rc"
+
+IDI_XLAUNCH ICON "..\\..\\X.ico"
diff --git a/xorg-server/hw/xwin/xlaunch/resources/strings.rc b/xorg-server/hw/xwin/xlaunch/resources/strings.rc
new file mode 100644
index 000000000..f34f46208
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/resources/strings.rc
@@ -0,0 +1,121 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+
+#define STR_CAPTION_DISPLAY "Display settings"
+#define STR_MULTIWINDOW "Multiple windows"
+#define STR_FULLSCREEN "Fullscreen"
+#define STR_WINDOWED "One large window"
+#define STR_NODECORATION "One window without titlebar"
+#define STR_DISPLAY_DESC "Display number"
+#define STR_DISPLAY_EXTRA_DESC "(Specify -1 to let vcxsrv automatically choose one)"
+
+#define STR_CAPTION_CLIENTS "Client startup"
+#define STR_CLIENT_NONE "Start no client"
+#define STR_CLIENT_NONE_DESC "This will just start the xserver. You will be able to start local clients later."
+#define STR_CLIENT "Start a program"
+#define STR_CLIENT_DESC "This will start a local or remote program which will connect to the xserver. You will be able to start local clients later too. Remote programs are started using SSH."
+#define STR_XDMCP "Open session via XDMCP"
+#define STR_XDMCP_DESC "This will start a remote XDMCP session. Starting local clients later is limited. This option is not available with the ""Multiple windows"" mode."
+
+#define STR_CAPTION_PROGRAM "Start program"
+#define STR_CLIENT_PROGRAM_DESC "Local program"
+#define STR_CLIENT_LOCAL "Start program on this computer"
+#define STR_CLIENT_REMOTE "Start program on remote computer"
+#define STR_CLIENT_PASSWORD_DESC "Password"
+#define STR_CLIENT_HOST_DESC "Connect to computer"
+#define STR_CLIENT_USER_DESC "Login as user"
+
+#define STR_CLIENT_REMOTEPROGRAM_DESC "Remote program"
+#define STR_CLIENT_PRIVATEKEY_DESC "Private key (putty format)"
+
+
+#define STR_CAPTION_XDMCP "XDMCP settings"
+#define STR_XDMCP_QUERY "Connect to host"
+#define STR_XDMCP_INDIRECT "Use indirect connect"
+#define STR_XDMCP_BROADCAST "Search for hosts (broadcast)"
+#define STR_XDMCP_QUERY_DESC "Some XDMCP servers must be configured to allow remote connections. Please check the documentation about configuring XDMCP servers."
+
+
+#define STR_CAPTION_FONTPATH "Fontpath settings"
+
+#define STR_CAPTION_EXTRA "Extra settings"
+#define STR_CLIPBOARD "Clipboard"
+#define STR_CLIPBOARD_DESC "Start the integrated clipboard manager"
+#define STR_CLIPBOARDPRIMARY "Primary Selection"
+#define STR_CLIPBOARDPRIMARY_DESC "Also map the PRIMARY selection to the windows clipboard."
+#define STR_WGL "Native opengl"
+#define STR_WGL_DESC "Use the native windows opengl library (wgl). Make sure to export the LIBGL_ALWAYS_INDIRECT environment variable."
+#define STR_EXTRA_PARAMS_DESC "Additional parameters for VcXsrv"
+
+#define STR_DISABLEAC "Disable access control"
+#define STR_DISABLEAC_DESC "Use this when you want vcxsrv to accept connections from all clients."
+
+#define STR_XDMCP_TERMINATE "Terminate on server reset."
+
+#define STR_CAPTION_FINISH "Finish configuration"
+#define STR_FINISH_DESC "Configuration is complete. Click Finish to start VcXsrv."
+#define STR_FINISH_SAVE_DESC "You may also save the configuration for later use."
+#define STR_FINISH_SAVE "Save configuration"
+
+#define STR_DISPLAY_TITLE "Select display settings"
+#define STR_DISPLAY_SUBTITLE "Choose how VcXsrv display programs"
+#define STR_CLIENTS_TITLE "Select how to start clients"
+#define STR_CLIENTS_SUBTITLE ""
+#define STR_PROGRAM_TITLE "Specify the program to start"
+#define STR_PROGRAM_SUBTITLE ""
+#define STR_XDMCP_TITLE "Configure a remote XDMCP connection"
+#define STR_XDMCP_SUBTITLE ""
+#define STR_FONTPATH_TITLE "Define font locations"
+#define STR_FONTPATH_SUBTITLE ""
+#define STR_FINISH_TITLE "Configuration complete"
+#define STR_FINISH_SUBTITLE ""
+#define STR_EXTRA_TITLE "Extra settings"
+#define STR_EXTRA_SUBTITLE ""
+
+#define STR_SAVE_TITLE "Save configuration"
+#define STR_SAVE_FILETITLE "Filename"
+#define STR_SAVE_FILTER "Xlaunch Files (*.xlaunch)%*.xlaunch%%"
+
+STRINGTABLE
+BEGIN
+ IDS_DISPLAY_TITLE STR_DISPLAY_TITLE
+ IDS_DISPLAY_SUBTITLE STR_DISPLAY_SUBTITLE
+ IDS_CLIENTS_TITLE STR_CLIENTS_TITLE
+ IDS_CLIENTS_SUBTITLE STR_CLIENTS_SUBTITLE
+ IDS_PROGRAM_TITLE STR_PROGRAM_TITLE
+ IDS_PROGRAM_SUBTITLE STR_PROGRAM_SUBTITLE
+ IDS_XDMCP_TITLE STR_XDMCP_TITLE
+ IDS_XDMCP_SUBTITLE STR_XDMCP_SUBTITLE
+ IDS_FONTPATH_TITLE STR_FONTPATH_TITLE
+ IDS_FONTPATH_SUBTITLE STR_FONTPATH_SUBTITLE
+ IDS_FINISH_TITLE STR_FINISH_TITLE
+ IDS_FINISH_SUBTITLE STR_FINISH_SUBTITLE
+ IDS_EXTRA_TITLE STR_EXTRA_TITLE
+ IDS_EXTRA_SUBTITLE STR_EXTRA_SUBTITLE
+ IDS_SAVE_TITLE STR_SAVE_TITLE
+ IDS_SAVE_FILETITLE STR_SAVE_FILETITLE
+ IDS_SAVE_FILTER STR_SAVE_FILTER
+END
diff --git a/xorg-server/hw/xwin/xlaunch/resources/windowed.bmp b/xorg-server/hw/xwin/xlaunch/resources/windowed.bmp
new file mode 100644
index 000000000..9eff2bff9
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/resources/windowed.bmp
Binary files differ
diff --git a/xorg-server/hw/xwin/xlaunch/window/dialog.cc b/xorg-server/hw/xwin/xlaunch/window/dialog.cc
new file mode 100644
index 000000000..76e5c35ac
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/window/dialog.cc
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#include <stdio.h>
+#include "dialog.h"
+#include "util.h"
+
+CBaseDialog::CBaseDialog() : CWindow(""), result(0)
+{
+}
+
+CDialog::CDialog(const char *res) : CBaseDialog(), resourcename(res)
+{
+}
+
+HWND CDialog::CreateWindowHandle()
+{
+ HWND ret = CreateDialog(
+ GetModuleHandle(NULL),
+ resourcename.c_str(),
+ NULL,
+ DialogProc);
+ if (ret == NULL)
+ throw win32_error("CreateDialog failed");
+ return ret;
+}
+
+INT_PTR CALLBACK CBaseDialog::DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ MessageDebug::debug(hwndDlg, uMsg, wParam, lParam, __FUNCTION__);
+ CBaseDialog* dialog = (CDialog*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
+ if (dialog != NULL)
+ return dialog->DlgDispatch(hwndDlg, uMsg, wParam, lParam);
+ return FALSE;
+}
+
+INT_PTR CBaseDialog::DlgDispatch(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ switch (uMsg)
+ {
+ case WM_COMMAND:
+ switch (LOWORD(wParam))
+ {
+ case IDOK:
+ case IDCANCEL:
+ result = wParam;
+ EndDialog(hwndDlg, wParam);
+ DestroyWindow(hwndDlg);
+ return TRUE;
+ }
+ break;
+ }
+ return FALSE;
+}
+
+INT_PTR CDialog::DlgDispatch(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ return CBaseDialog::DlgDispatch(hwndDlg, uMsg, wParam, lParam);
+}
+
+int CBaseDialog::Execute()
+{
+ return CWindow::ShowModal();
+}
diff --git a/xorg-server/hw/xwin/xlaunch/window/dialog.h b/xorg-server/hw/xwin/xlaunch/window/dialog.h
new file mode 100644
index 000000000..073394bb2
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/window/dialog.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#ifndef __DIALOG_H__
+#define __DIALOG_H__
+
+#include "window.h"
+class CBaseDialog : public CWindow
+{
+ private:
+ int result;
+ protected:
+ static INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+ virtual INT_PTR DlgDispatch(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+ public:
+ CBaseDialog();
+ int Execute();
+};
+
+class CDialog : public CBaseDialog
+{
+ private:
+ std::string resourcename;
+ protected:
+ virtual INT_PTR DlgDispatch(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+ virtual HWND CreateWindowHandle();
+ public:
+ CDialog(const char *res);
+};
+
+
+#endif
diff --git a/xorg-server/hw/xwin/xlaunch/window/makefile b/xorg-server/hw/xwin/xlaunch/window/makefile
new file mode 100644
index 000000000..18a33e728
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/window/makefile
@@ -0,0 +1,4 @@
+CSRCS=dialog.cc util.cc window.cc wizard.cc
+
+LIBRARY = window
+
diff --git a/xorg-server/hw/xwin/xlaunch/window/util.cc b/xorg-server/hw/xwin/xlaunch/window/util.cc
new file mode 100644
index 000000000..c01b782fc
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/window/util.cc
@@ -0,0 +1,1113 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#include "util.h"
+
+const char * MessageDebug::notify_names[NOTIFY_NAMES_LEN];
+
+std::string win32_error::message(DWORD errorcode)
+{
+ LPVOID lpMsgBuf;
+ if (!FormatMessage(
+ FORMAT_MESSAGE_ALLOCATE_BUFFER |
+ FORMAT_MESSAGE_FROM_SYSTEM |
+ FORMAT_MESSAGE_IGNORE_INSERTS,
+ NULL,
+ errorcode,
+ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
+ (LPTSTR) &lpMsgBuf,
+ 0,
+ NULL ))
+ {
+ return "Unknown error in FormatMessage";
+ }
+
+ std::string ret((LPCTSTR)lpMsgBuf);
+ LocalFree( lpMsgBuf );
+ return ret;
+}
+
+void MessageDebug::debug(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, const char *prefix)
+{
+#ifdef _DEBUG
+ static const char *psn_notify[] = {
+ "PSN_SETACTIVE",
+ "PSN_KILLACTIVE",
+ "PSN_APPLY",
+ "PSN_RESET",
+ NULL,
+ "PSN_HELP",
+ "PSN_WIZBACK",
+ "PSN_WIZNEXT",
+ "PSN_WIZFINISH",
+ "PSN_QUERYCANCEL" };
+ if (uMsg == WM_NOTIFY)
+ {
+ LPNMHDR pnmh = (LPNMHDR)lParam;
+ int psn_index = -(int)pnmh->code - 200;
+ if (psn_index >= 0 && psn_index < 10 && psn_notify[psn_index])
+ printf("%s: %p %04x WM_NOTIFY (%s)\n", prefix, hwnd, wParam, psn_notify[psn_index]);
+ else if (pnmh->code < NOTIFY_NAMES_LEN && notify_names[pnmh->code])
+ printf("%s: %p %04x WM_NOTIFY (%s)\n", prefix, hwnd, wParam, notify_names[pnmh->code]);
+ else
+ printf("%s: %p %04x WM_NOTIFY (%u)\n", prefix, hwnd, wParam, pnmh->code);
+ }
+ else if (uMsg >= MESSAGE_NAMES_LEN)
+ if (uMsg >= WM_USER)
+ printf("%s: %p %04x %08x WM_USER + %d\n", prefix, hwnd, wParam, lParam, uMsg - WM_USER);
+ else
+ printf("%s: %p %04x %08x %d\n", prefix, hwnd, wParam, lParam, uMsg);
+ else if (uMsg >= 0 && uMsg < MESSAGE_NAMES_LEN && message_names[uMsg])
+ printf("%s: %p %04x %08x %s\n", prefix, hwnd, wParam, lParam, message_names[uMsg]);
+#endif
+}
+
+
+const char * MessageDebug::message_names[MESSAGE_NAMES_LEN] = {
+ "WM_NULL",
+ "WM_CREATE",
+ "WM_DESTROY",
+ "WM_MOVE",
+ "4",
+ "WM_SIZE",
+ "WM_ACTIVATE",
+ "WM_SETFOCUS",
+ "WM_KILLFOCUS",
+ "9",
+ "WM_ENABLE",
+ "WM_SETREDRAW",
+ "WM_SETTEXT",
+ "WM_GETTEXT",
+ "WM_GETTEXTLENGTH",
+ "WM_PAINT",
+ "WM_CLOSE",
+ "WM_QUERYENDSESSION",
+ "WM_QUIT",
+ "WM_QUERYOPEN",
+ "WM_ERASEBKGND",
+ "WM_SYSCOLORCHANGE",
+ "WM_ENDSESSION",
+ "23",
+ "WM_SHOWWINDOW",
+ "25",
+ "WM_WININICHANGE",
+ "WM_DEVMODECHANGE",
+ "WM_ACTIVATEAPP",
+ "WM_FONTCHANGE",
+ "WM_TIMECHANGE",
+ "WM_CANCELMODE",
+ NULL /* WM_SETCURSOR */,
+ "WM_MOUSEACTIVATE",
+ "WM_CHILDACTIVATE",
+ "WM_QUEUESYNC",
+ "WM_GETMINMAXINFO",
+ "37",
+ "WM_PAINTICON",
+ "WM_ICONERASEBKGND",
+ "WM_NEXTDLGCTL",
+ "41",
+ "WM_SPOOLERSTATUS",
+ "WM_DRAWITEM",
+ "WM_MEASUREITEM",
+ "WM_DELETEITEM",
+ "WM_VKEYTOITEM",
+ "WM_CHARTOITEM",
+ "WM_SETFONT",
+ "WM_GETFONT",
+ "WM_SETHOTKEY",
+ "WM_GETHOTKEY",
+ "52",
+ "53",
+ "54",
+ "WM_QUERYDRAGICON",
+ "56",
+ "WM_COMPAREITEM",
+ "58",
+ "59",
+ "60",
+ "61",
+ "62",
+ "63",
+ "64",
+ "WM_COMPACTING",
+ "66",
+ "67",
+ "WM_COMMNOTIFY",
+ "69",
+ "WM_WINDOWPOSCHANGING",
+ "WM_WINDOWPOSCHANGED",
+ "WM_POWER",
+ "73",
+ "WM_COPYDATA",
+ "WM_CANCELJOURNAL",
+ "76",
+ "77",
+ "WM_NOTIFY",
+ "79",
+ "WM_INPUTLANGCHANGEREQUEST",
+ "WM_INPUTLANGCHANGE",
+ "WM_TCARD",
+ "WM_HELP",
+ "WM_USERCHANGED",
+ "WM_NOTIFYFORMAT",
+ "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",
+ "119",
+ "120",
+ "121",
+ "122",
+ "WM_CONTEXTMENU",
+ "WM_STYLECHANGING",
+ "WM_STYLECHANGED",
+ "WM_DISPLAYCHANGE",
+ "WM_GETICON",
+ "WM_SETICON",
+ "WM_NCCREATE",
+ "WM_NCDESTROY",
+ "WM_NCCALCSIZE",
+ NULL /* WM_NCHITTEST */,
+ "WM_NCPAINT",
+ "WM_NCACTIVATE",
+ "WM_GETDLGCODE",
+ "WM_SYNCPAINT",
+ "137",
+ "138",
+ "139",
+ "140",
+ "141",
+ "142",
+ "143",
+ "144",
+ "145",
+ "146",
+ "147",
+ "148",
+ "149",
+ "150",
+ "151",
+ "152",
+ "153",
+ "154",
+ "155",
+ "156",
+ "157",
+ "158",
+ "159",
+ NULL /* WM_NCMOUSEMOVE */,
+ "WM_NCLBUTTONDOWN",
+ "WM_NCLBUTTONUP",
+ "WM_NCLBUTTONDBLCLK",
+ "WM_NCRBUTTONDOWN",
+ "WM_NCRBUTTONUP",
+ "WM_NCRBUTTONDBLCLK",
+ "WM_NCMBUTTONDOWN",
+ "WM_NCMBUTTONUP",
+ "WM_NCMBUTTONDBLCLK",
+ "170",
+ "171",
+ "172",
+ "173",
+ "174",
+ "175",
+ "176",
+ "177",
+ "178",
+ "179",
+ "180",
+ "181",
+ "182",
+ "183",
+ "184",
+ "185",
+ "186",
+ "187",
+ "188",
+ "189",
+ "190",
+ "191",
+ "192",
+ "193",
+ "194",
+ "195",
+ "196",
+ "197",
+ "198",
+ "199",
+ "200",
+ "201",
+ "202",
+ "203",
+ "204",
+ "205",
+ "206",
+ "207",
+ "208",
+ "209",
+ "210",
+ "211",
+ "212",
+ "213",
+ "214",
+ "215",
+ "216",
+ "217",
+ "218",
+ "219",
+ "220",
+ "221",
+ "222",
+ "223",
+ "224",
+ "225",
+ "226",
+ "227",
+ "228",
+ "229",
+ "230",
+ "231",
+ "232",
+ "233",
+ "234",
+ "235",
+ "236",
+ "237",
+ "238",
+ "239",
+ "240",
+ "241",
+ "242",
+ "243",
+ "244",
+ "245",
+ "246",
+ "247",
+ "248",
+ "249",
+ "250",
+ "251",
+ "252",
+ "253",
+ "254",
+ "255",
+ "WM_KEYDOWN",
+ "WM_KEYUP",
+ "WM_CHAR",
+ "WM_DEADCHAR",
+ "WM_SYSKEYDOWN",
+ "WM_SYSKEYUP",
+ "WM_SYSCHAR",
+ "WM_SYSDEADCHAR",
+ "WM_CONVERTREQUESTEX",
+ "265",
+ "266",
+ "267",
+ "268",
+ "WM_IME_STARTCOMPOSITION",
+ "WM_IME_ENDCOMPOSITION",
+ "WM_IME_KEYLAST",
+ "WM_INITDIALOG",
+ "WM_COMMAND",
+ "WM_SYSCOMMAND",
+ NULL /* WM_TIMER */,
+ "WM_HSCROLL",
+ "WM_VSCROLL",
+ "WM_INITMENU",
+ "WM_INITMENUPOPUP",
+ "280",
+ "281",
+ "282",
+ "283",
+ "284",
+ "285",
+ "286",
+ "WM_MENUSELECT",
+ "WM_MENUCHAR",
+ "WM_ENTERIDLE",
+ "290",
+ "291",
+ "292",
+ "293",
+ "294",
+ "295",
+ "296",
+ "297",
+ "298",
+ "299",
+ "300",
+ "301",
+ "302",
+ "303",
+ "304",
+ "305",
+ "WM_CTLCOLORMSGBOX",
+ "WM_CTLCOLOREDIT",
+ "WM_CTLCOLORLISTBOX",
+ "WM_CTLCOLORBTN",
+ "WM_CTLCOLORDLG",
+ "WM_CTLCOLORSCROLLBAR",
+ "WM_CTLCOLORSTATIC",
+ "313",
+ "314",
+ "315",
+ "316",
+ "317",
+ "318",
+ "319",
+ "320",
+ "321",
+ "322",
+ "323",
+ "324",
+ "325",
+ "326",
+ "327",
+ "328",
+ "329",
+ "330",
+ "331",
+ "332",
+ "333",
+ "334",
+ "335",
+ "336",
+ "337",
+ "338",
+ "339",
+ "340",
+ "341",
+ "342",
+ "343",
+ "344",
+ "345",
+ "346",
+ "347",
+ "348",
+ "349",
+ "350",
+ "351",
+ "352",
+ "353",
+ "354",
+ "355",
+ "356",
+ "357",
+ "358",
+ "359",
+ "360",
+ "361",
+ "362",
+ "363",
+ "364",
+ "365",
+ "366",
+ "367",
+ "368",
+ "369",
+ "370",
+ "371",
+ "372",
+ "373",
+ "374",
+ "375",
+ "376",
+ "377",
+ "378",
+ "379",
+ "380",
+ "381",
+ "382",
+ "383",
+ "384",
+ "385",
+ "386",
+ "387",
+ "388",
+ "389",
+ "390",
+ "391",
+ "392",
+ "393",
+ "394",
+ "395",
+ "396",
+ "397",
+ "398",
+ "399",
+ "400",
+ "401",
+ "402",
+ "403",
+ "404",
+ "405",
+ "406",
+ "407",
+ "408",
+ "409",
+ "410",
+ "411",
+ "412",
+ "413",
+ "414",
+ "415",
+ "416",
+ "417",
+ "418",
+ "419",
+ "420",
+ "421",
+ "422",
+ "423",
+ "424",
+ "425",
+ "426",
+ "427",
+ "428",
+ "429",
+ "430",
+ "431",
+ "432",
+ "433",
+ "434",
+ "435",
+ "436",
+ "437",
+ "438",
+ "439",
+ "440",
+ "441",
+ "442",
+ "443",
+ "444",
+ "445",
+ "446",
+ "447",
+ "448",
+ "449",
+ "450",
+ "451",
+ "452",
+ "453",
+ "454",
+ "455",
+ "456",
+ "457",
+ "458",
+ "459",
+ "460",
+ "461",
+ "462",
+ "463",
+ "464",
+ "465",
+ "466",
+ "467",
+ "468",
+ "469",
+ "470",
+ "471",
+ "472",
+ "473",
+ "474",
+ "475",
+ "476",
+ "477",
+ "478",
+ "479",
+ "480",
+ "481",
+ "482",
+ "483",
+ "484",
+ "485",
+ "486",
+ "487",
+ "488",
+ "489",
+ "490",
+ "491",
+ "492",
+ "493",
+ "494",
+ "495",
+ "496",
+ "497",
+ "498",
+ "499",
+ "500",
+ "501",
+ "502",
+ "503",
+ "504",
+ "505",
+ "506",
+ "507",
+ "508",
+ "509",
+ "510",
+ "511",
+ NULL /* WM_MOUSEMOVE */,
+ "WM_LBUTTONDOWN",
+ "WM_LBUTTONUP",
+ "WM_LBUTTONDBLCLK",
+ "WM_RBUTTONDOWN",
+ "WM_RBUTTONUP",
+ "WM_RBUTTONDBLCLK",
+ "WM_MBUTTONDOWN",
+ "WM_MBUTTONUP",
+ "WM_MBUTTONDBLCLK",
+ "WM_MOUSEWHEEL",
+ "WM_XBUTTONDOWN",
+ "WM_XBUTTONUP",
+ "WM_XBUTTONDBLCLK",
+ "526",
+ "527",
+ "WM_PARENTNOTIFY",
+ "WM_ENTERMENULOOP",
+ "WM_EXITMENULOOP",
+ "WM_NEXTMENU",
+ "WM_SIZING",
+ "WM_CAPTURECHANGED",
+ "WM_MOVING",
+ "535",
+ "WM_POWERBROADCAST",
+ "WM_DEVICECHANGE",
+ "538",
+ "539",
+ "540",
+ "541",
+ "542",
+ "543",
+ "WM_MDICREATE",
+ "WM_MDIDESTROY",
+ "WM_MDIACTIVATE",
+ "WM_MDIRESTORE",
+ "WM_MDINEXT",
+ "WM_MDIMAXIMIZE",
+ "WM_MDITILE",
+ "WM_MDICASCADE",
+ "WM_MDIICONARRANGE",
+ "WM_MDIGETACTIVE",
+ "554",
+ "555",
+ "556",
+ "557",
+ "558",
+ "559",
+ "WM_MDISETMENU",
+ "WM_ENTERSIZEMOVE",
+ "WM_EXITSIZEMOVE",
+ "WM_DROPFILES",
+ "WM_MDIREFRESHMENU",
+ "565",
+ "566",
+ "567",
+ "568",
+ "569",
+ "570",
+ "571",
+ "572",
+ "573",
+ "574",
+ "575",
+ "576",
+ "577",
+ "578",
+ "579",
+ "580",
+ "581",
+ "582",
+ "583",
+ "584",
+ "585",
+ "586",
+ "587",
+ "588",
+ "589",
+ "590",
+ "591",
+ "592",
+ "593",
+ "594",
+ "595",
+ "596",
+ "597",
+ "598",
+ "599",
+ "600",
+ "601",
+ "602",
+ "603",
+ "604",
+ "605",
+ "606",
+ "607",
+ "608",
+ "609",
+ "610",
+ "611",
+ "612",
+ "613",
+ "614",
+ "615",
+ "616",
+ "617",
+ "618",
+ "619",
+ "620",
+ "621",
+ "622",
+ "623",
+ "624",
+ "625",
+ "626",
+ "627",
+ "628",
+ "629",
+ "630",
+ "631",
+ "632",
+ "633",
+ "634",
+ "635",
+ "636",
+ "637",
+ "638",
+ "639",
+ "640",
+ "WM_IME_SETCONTEXT",
+ "WM_IME_NOTIFY",
+ "WM_IME_CONTROL",
+ "WM_IME_COMPOSITIONFULL",
+ "WM_IME_SELECT",
+ "WM_IME_CHAR",
+ "647",
+ "648",
+ "649",
+ "650",
+ "651",
+ "652",
+ "653",
+ "654",
+ "655",
+ "WM_IME_KEYDOWN",
+ "WM_IME_KEYUP",
+ "658",
+ "659",
+ "660",
+ "661",
+ "662",
+ "663",
+ "664",
+ "665",
+ "666",
+ "667",
+ "668",
+ "669",
+ "670",
+ "671",
+ "672",
+ "WM_MOUSEHOVER",
+ "674",
+ "WM_MOUSELEAVE",
+ "676",
+ "677",
+ "678",
+ "679",
+ "680",
+ "681",
+ "682",
+ "683",
+ "684",
+ "685",
+ "686",
+ "687",
+ "688",
+ "689",
+ "690",
+ "691",
+ "692",
+ "693",
+ "694",
+ "695",
+ "696",
+ "697",
+ "698",
+ "699",
+ "700",
+ "701",
+ "702",
+ "703",
+ "704",
+ "705",
+ "706",
+ "707",
+ "708",
+ "709",
+ "710",
+ "711",
+ "712",
+ "713",
+ "714",
+ "715",
+ "716",
+ "717",
+ "718",
+ "719",
+ "720",
+ "721",
+ "722",
+ "723",
+ "724",
+ "725",
+ "726",
+ "727",
+ "728",
+ "729",
+ "730",
+ "731",
+ "732",
+ "733",
+ "734",
+ "735",
+ "736",
+ "737",
+ "738",
+ "739",
+ "740",
+ "741",
+ "742",
+ "743",
+ "744",
+ "745",
+ "746",
+ "747",
+ "748",
+ "749",
+ "750",
+ "751",
+ "752",
+ "753",
+ "754",
+ "755",
+ "756",
+ "757",
+ "758",
+ "759",
+ "760",
+ "761",
+ "762",
+ "763",
+ "764",
+ "765",
+ "766",
+ "767",
+ "WM_CUT",
+ "WM_COPY",
+ "WM_PASTE",
+ "WM_CLEAR",
+ "WM_UNDO",
+ "WM_RENDERFORMAT",
+ "WM_RENDERALLFORMATS",
+ "WM_DESTROYCLIPBOARD",
+ "WM_DRAWCLIPBOARD",
+ "WM_PAINTCLIPBOARD",
+ "WM_VSCROLLCLIPBOARD",
+ "WM_SIZECLIPBOARD",
+ "WM_ASKCBFORMATNAME",
+ "WM_CHANGECBCHAIN",
+ "WM_HSCROLLCLIPBOARD",
+ "WM_QUERYNEWPALETTE",
+ "WM_PALETTEISCHANGING",
+ "WM_PALETTECHANGED",
+ "WM_HOTKEY",
+ "787",
+ "788",
+ "789",
+ "790",
+ "WM_PRINT",
+ "WM_PRINTCLIENT",
+ "793",
+ "794",
+ "795",
+ "796",
+ "797",
+ "798",
+ "799",
+ "800",
+ "801",
+ "802",
+ "803",
+ "804",
+ "805",
+ "806",
+ "807",
+ "808",
+ "809",
+ "810",
+ "811",
+ "812",
+ "813",
+ "814",
+ "815",
+ "816",
+ "817",
+ "818",
+ "819",
+ "820",
+ "821",
+ "822",
+ "823",
+ "824",
+ "825",
+ "826",
+ "827",
+ "828",
+ "829",
+ "830",
+ "831",
+ "832",
+ "833",
+ "834",
+ "835",
+ "836",
+ "837",
+ "838",
+ "839",
+ "840",
+ "841",
+ "842",
+ "843",
+ "844",
+ "845",
+ "846",
+ "847",
+ "848",
+ "849",
+ "850",
+ "851",
+ "852",
+ "853",
+ "854",
+ "855",
+ "856",
+ "857",
+ "858",
+ "859",
+ "860",
+ "861",
+ "862",
+ "863",
+ "864",
+ "865",
+ "866",
+ "867",
+ "868",
+ "869",
+ "870",
+ "871",
+ "872",
+ "873",
+ "874",
+ "875",
+ "876",
+ "877",
+ "878",
+ "879",
+ "880",
+ "881",
+ "882",
+ "883",
+ "884",
+ "885",
+ "886",
+ "887",
+ "888",
+ "889",
+ "890",
+ "891",
+ "892",
+ "893",
+ "894",
+ "895",
+ "896",
+ "897",
+ "898",
+ "899",
+ "900",
+ "901",
+ "902",
+ "903",
+ "904",
+ "905",
+ "906",
+ "907",
+ "908",
+ "909",
+ "910",
+ "911",
+ "912",
+ "913",
+ "914",
+ "915",
+ "916",
+ "917",
+ "918",
+ "919",
+ "920",
+ "921",
+ "922",
+ "923",
+ "924",
+ "925",
+ "926",
+ "927",
+ "928",
+ "929",
+ "930",
+ "931",
+ "932",
+ "933",
+ "934",
+ "935",
+ "936",
+ "937",
+ "938",
+ "939",
+ "940",
+ "941",
+ "942",
+ "943",
+ "944",
+ "945",
+ "946",
+ "947",
+ "948",
+ "949",
+ "950",
+ "951",
+ "952",
+ "953",
+ "954",
+ "955",
+ "956",
+ "957",
+ "958",
+ "959",
+ "960",
+ "961",
+ "962",
+ "963",
+ "964",
+ "965",
+ "966",
+ "967",
+ "968",
+ "969",
+ "970",
+ "971",
+ "972",
+ "973",
+ "974",
+ "975",
+ "976",
+ "977",
+ "978",
+ "979",
+ "980",
+ "981",
+ "982",
+ "983",
+ "984",
+ "985",
+ "986",
+ "987",
+ "988",
+ "989",
+ "990",
+ "991",
+ "992",
+ "993",
+ "994",
+ "995",
+ "996",
+ "997",
+ "998",
+ "999",
+ "1000",
+ "1001",
+ "1002",
+ "1003",
+ "1004",
+ "1005",
+ "1006",
+ "1007",
+ "1008",
+ "1009",
+ "1010",
+ "1011",
+ "1012",
+ "1013",
+ "1014",
+ "1015",
+ "1016",
+ "1017",
+ "1018",
+ "1019",
+ "1020",
+ "1021",
+ "1022",
+ "1023"
+};
diff --git a/xorg-server/hw/xwin/xlaunch/window/util.h b/xorg-server/hw/xwin/xlaunch/window/util.h
new file mode 100644
index 000000000..a1196b115
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/window/util.h
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#ifndef __UTIL_H__
+#define __UTIL_H__
+
+#include <windows.h>
+#include <stdexcept>
+#include <string>
+
+class win32_error : public std::runtime_error
+{
+ public:
+ static std::string message(DWORD code);
+ DWORD errorcode;
+ win32_error(const std::string &msg,DWORD code = GetLastError()) : std::runtime_error(msg + ":" + message(code)), errorcode(code) {};
+};
+
+#define MESSAGE_NAMES_LEN 1024
+#define NOTIFY_NAMES_LEN 1
+class MessageDebug
+{
+ protected:
+ static const char * message_names[MESSAGE_NAMES_LEN];
+ static const char * notify_names[NOTIFY_NAMES_LEN];
+ public:
+ static void debug(HWND handle, UINT uMsg, WPARAM wParam, LPARAM lParam, const char *prefix);
+};
+
+
+#endif
diff --git a/xorg-server/hw/xwin/xlaunch/window/window.cc b/xorg-server/hw/xwin/xlaunch/window/window.cc
new file mode 100644
index 000000000..cca3a485a
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/window/window.cc
@@ -0,0 +1,284 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+
+#include "window.h"
+#include "util.h"
+#include <stdio.h>
+#include <stdexcept>
+
+CWindow::CWindowClass CWindow::windowClass("CWINDOWCLASS", DefWindowProc);
+
+CWindow::CWindowClass::CWindowClass(const char *_name, WNDPROC _wndproc) :
+ wndproc(_wndproc), atom(0), classname(_name)
+{
+ Register();
+}
+
+CWindow::CWindowClass::~CWindowClass()
+{
+ UnregisterClass(classname.c_str(), GetModuleHandle(NULL));
+}
+
+void CWindow::CWindowClass::Register()
+{
+ WNDCLASSEX wndclass;
+ memset(&wndclass, 0, sizeof(wndclass));
+ wndclass.cbSize = sizeof(wndclass);
+ wndclass.style = 0;
+ wndclass.lpfnWndProc = wndproc;
+ wndclass.cbClsExtra = 0;
+ wndclass.cbWndExtra = 0;
+ wndclass.hInstance = GetModuleHandle(NULL);
+ wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
+ wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
+ wndclass.hbrBackground = (HBRUSH)(1 + COLOR_BTNFACE);
+ wndclass.lpszMenuName = NULL;
+ wndclass.lpszClassName = classname.c_str();
+ wndclass.hIconSm = NULL;
+ atom = RegisterClassEx(&wndclass);
+ if (atom == 0)
+ throw win32_error("RegisterClassEx failed");
+}
+
+CWindow::CWindow(const char *_title) : title(_title), hwnd(NULL), parent(NULL), bounds(), owndproc(NULL), showing(FALSE)
+{
+ style = WS_CHILD;
+ exstyle = 0;
+}
+
+HWND CWindow::CreateWindowHandle()
+{
+ HWND ret = CreateWindowEx(
+ exstyle,
+ GetClassName(),
+ title.c_str(),
+ style,
+ bounds.left,
+ bounds.top,
+ bounds.width,
+ bounds.height,
+ parent,
+ NULL,
+ GetModuleHandle(NULL),
+ 0
+ );
+ if (ret == NULL)
+ throw win32_error("CreateWindowEx failed");
+ return ret;
+}
+
+void CWindow::Create()
+{
+ if (hwnd != NULL)
+ return;
+ hwnd = CreateWindowHandle();
+ if (hwnd == NULL)
+ throw win32_error("Could not create window");
+
+ // Reset the error code
+ DWORD err = 0;
+ SetLastError(err);
+
+ // Attach the object reference to the window handle
+ SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)this);
+ err = GetLastError();
+ if (err != 0)
+ throw win32_error("SetWindowLongPtr failed",err);
+
+ // Set the window proc
+ owndproc = (WNDPROC)SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)WindowProc);
+ err = GetLastError();
+ if (err != 0)
+ throw win32_error("SetWindowLongPtr failed",err);
+}
+
+const char *CWindow::GetClassName()
+{
+ return windowClass.GetClassName();
+}
+
+LRESULT CALLBACK CWindow::WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ MessageDebug::debug(hwnd, uMsg, wParam, lParam, __FUNCTION__);
+ CWindow* window = (CWindow*)GetWindowLongPtr(hwnd, GWLP_USERDATA);
+ if (window != NULL)
+ return window->Dispatch(hwnd, uMsg, wParam, lParam);
+ return DefWindowProc(hwnd, uMsg, wParam, lParam);
+}
+
+LRESULT CWindow::Dispatch(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ switch (uMsg)
+ {
+ case WM_SIZE:
+ bounds.width = LOWORD(lParam);
+ bounds.height = LOWORD(lParam);
+ break;
+ case WM_MOVE:
+ bounds.left = LOWORD(lParam);
+ bounds.top = LOWORD(lParam);
+ break;
+ case WM_DESTROY:
+ showing = FALSE;
+ break;
+ }
+ if (owndproc)
+ return CallWindowProc(owndproc, hwnd, uMsg, wParam, lParam);
+ else
+ return DefWindowProc(hwnd, uMsg, wParam, lParam);
+}
+
+void CWindow::Show()
+{
+ if (hwnd == NULL)
+ Create();
+ ShowWindow(hwnd, SW_SHOWNORMAL);
+}
+
+int CWindow::ShowModal()
+{
+ MSG msg;
+ BOOL bRet;
+ showing = TRUE;
+ Show();
+
+ while( showing && (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)
+ {
+ if (bRet == -1)
+ {
+ // handle the error and possibly exit
+ }
+ else
+ {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+ }
+ return 0;
+}
+
+void CWindow::SetLeft(int left)
+{
+ bounds.left = left;
+ if (hwnd)
+ if (!SetWindowPos(hwnd, NULL,
+ bounds.left, bounds.top,
+ 0, 0,
+ SWP_NOZORDER | SWP_NOSIZE))
+ throw win32_error("SetWindowPos failed");
+}
+
+void CWindow::SetTop(int top)
+{
+ bounds.top = top;
+ if (hwnd)
+ if (!SetWindowPos(hwnd, NULL,
+ bounds.left, bounds.top,
+ 0, 0,
+ SWP_NOZORDER | SWP_NOSIZE))
+ throw win32_error("SetWindowPos failed");
+}
+
+void CWindow::SetWidth(int width)
+{
+ bounds.width = width;
+ if (hwnd)
+ if (!SetWindowPos(hwnd, NULL,
+ 0, 0,
+ bounds.width, bounds.height,
+ SWP_NOZORDER | SWP_NOMOVE))
+ throw win32_error("SetWindowPos failed");
+}
+void CWindow::SetHeight(int height)
+{
+ bounds.height = height;
+ if (hwnd)
+ if (!SetWindowPos(hwnd, NULL,
+ 0, 0,
+ bounds.width, bounds.height,
+ SWP_NOZORDER | SWP_NOMOVE))
+ throw win32_error("SetWindowPos failed");
+}
+
+void CWindow::SetBounds(int left, int top, int width, int height)
+{
+ bounds = CBoundary(left, top, width, height);
+ if (hwnd)
+ if (!SetWindowPos(hwnd, NULL,
+ bounds.left, bounds.top,
+ bounds.width, bounds.height,
+ SWP_NOZORDER))
+ throw win32_error("SetWindowPos failed");
+}
+
+void CWindow::SetBounds(const RECT &rect)
+{
+ bounds = rect;
+ if (hwnd)
+ if (!SetWindowPos(hwnd, NULL,
+ bounds.left, bounds.top,
+ bounds.width, bounds.height,
+ SWP_NOZORDER))
+ throw win32_error("SetWindowPos failed");
+}
+
+HWND CWindow::GetHandle()
+{
+ if (hwnd == NULL)
+ Create();
+ return hwnd;
+}
+
+void CWindow::SetParent(CWindow *window)
+{
+ parent = window->GetHandle();
+ if (hwnd != NULL)
+ if (::SetParent(hwnd, parent) == NULL)
+ throw win32_error("SetParent failed");
+
+}
+
+void CWindow::SetStyle(DWORD style)
+{
+ this->style = style;
+ SetLastError(0);
+ if (hwnd)
+ SetWindowLong(hwnd, GWL_STYLE, style);
+ int err = GetLastError();
+ if (err != 0)
+ throw win32_error("SetWindowLong failed", err);
+}
+
+void CWindow::SetExStyle(DWORD exstyle)
+{
+ this->exstyle = exstyle;
+ SetLastError(0);
+ if (hwnd)
+ SetWindowLong(hwnd, GWL_EXSTYLE, exstyle);
+ int err = GetLastError();
+ if (err != 0)
+ throw win32_error("SetWindowWLong failed", err);
+}
diff --git a/xorg-server/hw/xwin/xlaunch/window/window.h b/xorg-server/hw/xwin/xlaunch/window/window.h
new file mode 100644
index 000000000..baf401405
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/window/window.h
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#ifndef __WINDOW_H__
+#define __WINDOW_H__
+
+#include <windows.h>
+#include <string>
+
+class CDialog;
+class CWindow
+{
+ friend class CDialog;
+ public:
+ struct CBoundary
+ {
+ int left;
+ int top;
+ int width;
+ int height;
+ CBoundary() :
+ left(0), top(0), width(0), height(0) {};
+ CBoundary(int x, int y, int w, int h) :
+ left(x), top(y), width(w), height(h) {};
+ CBoundary(const RECT &r) :
+ left(r.left), top(r.top), width(r.right-r.left), height(r.bottom-r.top) {};
+ };
+ class CWindowClass
+ {
+ private:
+ WNDPROC wndproc;
+ ATOM atom;
+ std::string classname;
+ protected:
+ void Register();
+ public:
+ CWindowClass(const char *name, WNDPROC wndproc);
+ ~CWindowClass();
+ const char *GetClassName() { return classname.c_str(); };
+ };
+ private:
+ static CWindowClass windowClass;
+
+ std::string title;
+ DWORD exstyle;
+ DWORD style;
+ CBoundary bounds;
+ HWND hwnd;
+ HWND parent;
+ WNDPROC owndproc;
+
+ BOOL showing;
+
+ protected:
+
+ virtual const char *GetClassName();
+ virtual HWND CreateWindowHandle();
+ static LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+ public:
+ CWindow(const char *title);
+ virtual void Create();
+
+ virtual int ShowModal();
+
+ void Show();
+ void Hide();
+
+ void SetWidth(int width);
+ void SetHeight(int height);
+ void SetLeft(int left);
+ void SetTop(int top);
+ int GetWidth() { return bounds.width; };
+ int GetHeight() { return bounds.height; };
+ int GetLeft() { return bounds.left; };
+ int GetTop() { return bounds.top; };
+
+ void SetBounds(int left, int top, int width, int height);
+ void SetBounds(const RECT &rect);
+
+ void SetStyle(DWORD style);
+ DWORD GetStyle() { return style; };
+
+ void SetExStyle(DWORD exstyle);
+ DWORD GetExStyle() { return exstyle; };
+
+ HWND GetHandle();
+ void SetParent(CWindow *window);
+
+ virtual LRESULT Dispatch(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+};
+
+#endif
diff --git a/xorg-server/hw/xwin/xlaunch/window/wizard.cc b/xorg-server/hw/xwin/xlaunch/window/wizard.cc
new file mode 100644
index 000000000..9d6c71193
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/window/wizard.cc
@@ -0,0 +1,244 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#include "wizard.h"
+#include "util.h"
+
+CWizard::CWizard() : pages()
+{
+};
+
+void CWizard::AddPage(const PROPSHEETPAGE &page)
+{
+ pages.push_back(page);
+}
+
+void CWizard::AddPage(const char *page, HINSTANCE instance)
+{
+ PROPSHEETPAGE psp;
+ if (instance == NULL)
+ instance = GetModuleHandle(NULL);
+
+ memset(&psp, 0, sizeof(psp));
+ psp.dwSize = sizeof(PROPSHEETPAGE);
+ psp.dwFlags = PSP_DEFAULT;
+ psp.hInstance = instance;
+ psp.pszTemplate = page;
+ psp.pfnDlgProc = WizardDialogProc;
+ psp.lParam = (LPARAM)this;
+
+ AddPage(psp);
+}
+
+void CWizard::AddPage(DWORD id, DWORD title, DWORD subtitle, HINSTANCE instance)
+{
+ PROPSHEETPAGE psp;
+ if (instance == NULL)
+ instance = GetModuleHandle(NULL);
+
+ memset(&psp, 0, sizeof(psp));
+ psp.dwSize = sizeof(PROPSHEETPAGE);
+ psp.dwFlags = PSP_DEFAULT;
+#if _WIN32_IE >= 0x0500
+ if (title != 0)
+ {
+ psp.dwFlags |= PSP_USEHEADERTITLE;
+ psp.pszHeaderTitle = MAKEINTRESOURCE(title);
+ }
+ if (subtitle != 0)
+ {
+ psp.dwFlags |= PSP_USEHEADERSUBTITLE;
+ psp.pszHeaderSubTitle = MAKEINTRESOURCE(subtitle);
+ }
+#endif
+
+ psp.hInstance = instance;
+ psp.pszTemplate = MAKEINTRESOURCE(id);
+ psp.pfnDlgProc = WizardDialogProc;
+ psp.lParam = (LPARAM)this;
+
+ AddPage(psp);
+}
+
+HWND CWizard::CreateWindowHandle()
+{
+ PROPSHEETHEADER psh;
+ HWND ret;
+
+ PrepareSheetHeader(psh, FALSE);
+ ret = (HWND)PropertySheet(&psh);
+ free(psh.phpage);
+ if (ret == NULL)
+ throw win32_error("PropertySheet failed");
+ return ret;
+}
+
+int CWizard::ShowModal()
+{
+ PROPSHEETHEADER psh;
+ int ret;
+
+ PrepareSheetHeader(psh, TRUE);
+ ret = PropertySheet(&psh);
+ free(psh.phpage);
+ return ret;
+}
+
+void CWizard::PrepareSheetHeader(PROPSHEETHEADER &psh, BOOL modal)
+{
+ HPROPSHEETPAGE *phpage = (HPROPSHEETPAGE*)malloc(pages.size() * sizeof(HPROPSHEETPAGE));
+ DWORD modeflag;
+
+ if (modal)
+ modeflag = 0;
+ else
+ modeflag = PSH_MODELESS;
+
+ for (unsigned i = 0; i < pages.size(); i++)
+ {
+ phpage[i] = CreatePropertySheetPage(&pages[i]);
+ if (phpage[i] == NULL)
+ {
+ DWORD err = GetLastError();
+ free(phpage);
+ throw win32_error("CreatePropertySheetPage failed", err);
+ }
+ }
+
+ memset(&psh, 0, sizeof(psh));
+ psh.dwSize = sizeof(PROPSHEETHEADER);
+#if _WIN32_IE >= 0x0500
+ psh.dwFlags = PSH_WIZARD97 | modeflag;
+#else
+ psh.dwFlags = PSH_WIZARD | modeflag;
+#endif
+ psh.hwndParent = NULL;
+ psh.hInstance = GetModuleHandle(NULL);
+ psh.pszIcon = NULL;
+ psh.pszCaption = (LPSTR) "Cell Properties";
+ psh.nPages = pages.size();
+ psh.nStartPage = 0;
+ psh.phpage = phpage;
+ psh.pfnCallback = NULL;
+}
+
+DWORD CWizard::PageID(unsigned index)
+{
+ if (index < pages.size() && IS_INTRESOURCE(pages[index].pszTemplate))
+ return (DWORD)pages[index].pszTemplate;
+ return (DWORD)-1;
+}
+
+unsigned CWizard::PageIndex(PROPSHEETPAGE *psp)
+{
+ for (unsigned i = 0; i < pages.size(); i++)
+ {
+ if (IS_INTRESOURCE(psp->pszTemplate) || IS_INTRESOURCE(pages[i].pszTemplate ))
+ {
+ if (psp->pszTemplate == pages[i].pszTemplate)
+ return i;
+ }
+ else if (psp->pszTemplate && pages[i].pszTemplate)
+ {
+ if (strcmp(psp->pszTemplate, pages[i].pszTemplate) == 0)
+ return i;
+ }
+ }
+ return (unsigned)-1;
+}
+
+INT_PTR CWizard::DlgDispatch(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ return CBaseDialog::DlgDispatch(hwndDlg, uMsg, wParam, lParam);
+}
+
+INT_PTR CWizard::PageDispatch(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam, PROPSHEETPAGE *psp)
+{
+ LPNMHDR pnmh = (LPNMHDR)lParam;
+ DWORD flags;
+ unsigned pageindex;
+ switch (uMsg)
+ {
+ case WM_NOTIFY:
+ switch (pnmh->code)
+ {
+ case PSN_SETACTIVE:
+#ifdef _DEBUG
+ printf("PSN_SETACTIVE %d\n", PageIndex(psp));
+#endif
+ pageindex = PageIndex(psp);
+ if (pageindex != (unsigned)-1)
+ {
+ flags = 0;
+ if (pageindex > 0)
+ flags |= PSWIZB_BACK;
+ if ((unsigned)pageindex + 1 == pages.size())
+ flags |= PSWIZB_FINISH;
+ if ((unsigned)pageindex + 1 < pages.size())
+ flags |= PSWIZB_NEXT;
+ PropSheet_SetWizButtons(GetParent(hwndDlg), flags);
+ }
+ WizardActivate(hwndDlg, pageindex);
+ break;
+ case PSN_WIZNEXT:
+ if (WizardNext(hwndDlg, PageIndex(psp)))
+ return TRUE;
+ break;
+ case PSN_WIZBACK:
+ if (WizardBack(hwndDlg, PageIndex(psp)))
+ return TRUE;
+ break;
+ case PSN_WIZFINISH:
+ if (WizardFinish(hwndDlg, PageIndex(psp)))
+ return TRUE;
+ DestroyWindow(GetParent(hwndDlg));
+ case PSN_RESET:
+ if (WizardReset(hwndDlg, PageIndex(psp)))
+ return TRUE;
+ DestroyWindow(GetParent(hwndDlg));
+ break;
+ }
+ }
+ return DlgDispatch(hwndDlg, uMsg, wParam, lParam);
+}
+
+
+INT_PTR CALLBACK CWizard::WizardDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ MessageDebug::debug(hwndDlg, uMsg, wParam, lParam, __FUNCTION__);
+ PROPSHEETPAGE *psp = (PROPSHEETPAGE*)lParam;
+ switch (uMsg)
+ {
+ case WM_INITDIALOG:
+ SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)psp);
+ break;
+ }
+ psp = (PROPSHEETPAGE*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
+ CWizard* wizard = psp?(CWizard*)psp->lParam:NULL;
+ if (wizard != NULL)
+ return wizard->PageDispatch(hwndDlg, uMsg, wParam, lParam, psp);
+ return FALSE;
+}
+
diff --git a/xorg-server/hw/xwin/xlaunch/window/wizard.h b/xorg-server/hw/xwin/xlaunch/window/wizard.h
new file mode 100644
index 000000000..c576cc093
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/window/wizard.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * 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:
+ *
+ * The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) 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.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#ifndef __WIZARD_H__
+#define __WIZARD_H__
+
+#include "dialog.h"
+#include <vector>
+
+#include <prsht.h>
+
+class CWizard : public CBaseDialog
+{
+ private:
+ std::vector<PROPSHEETPAGE> pages;
+ void PrepareSheetHeader(PROPSHEETHEADER &psh, BOOL modal);
+ protected:
+ virtual HWND CreateWindowHandle();
+ static INT_PTR CALLBACK WizardDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+ virtual INT_PTR DlgDispatch(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+ virtual INT_PTR PageDispatch(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam, PROPSHEETPAGE *psp);
+ virtual unsigned PageIndex(PROPSHEETPAGE *psp);
+ virtual DWORD PageID(unsigned index);
+ virtual BOOL WizardNext(HWND hwndDlg, unsigned index) { return FALSE; }
+ virtual BOOL WizardBack(HWND hwndDlg, unsigned index) { return FALSE; }
+ virtual BOOL WizardFinish(HWND hwndDlg, unsigned index) { return FALSE; }
+ virtual BOOL WizardReset(HWND hwndDlg, unsigned index) { return FALSE; }
+ virtual BOOL WizardActivate(HWND hwndDlg, unsigned index) { return FALSE; }
+ public:
+ CWizard();
+ void AddPage(const PROPSHEETPAGE &page);
+ void AddPage(const char *page, HINSTANCE instance = NULL);
+ void AddPage(DWORD id, DWORD title, DWORD subtitle, HINSTANCE instance = NULL);
+ virtual int ShowModal();
+};
+#endif
diff --git a/xorg-server/include/callback.h b/xorg-server/include/callback.h
index b42708960..b4249e8a5 100644
--- a/xorg-server/include/callback.h
+++ b/xorg-server/include/callback.h
@@ -52,6 +52,10 @@ SOFTWARE.
#include <X11/Xproto.h>
#include <X11/Xfuncproto.h>
+#ifdef _MSC_VER
+#define inline __inline
+#endif
+
/*
* callback manager stuff
*/
diff --git a/xorg-server/include/closestr.h b/xorg-server/include/closestr.h
index c6aa1295f..9715b7cfb 100644
--- a/xorg-server/include/closestr.h
+++ b/xorg-server/include/closestr.h
@@ -52,6 +52,7 @@ typedef struct _OFclosure {
XID fontid;
char *fontname;
int fnamelen;
+ Bool from_dispatch;
FontPtr non_cachable_font;
} OFclosureRec;
@@ -77,6 +78,7 @@ typedef struct _LFWIclosure {
LFWIstateRec saved;
int savedNumFonts;
Bool haveSaved;
+ Bool from_dispatch;
char *savedName;
} LFWIclosureRec;
@@ -90,6 +92,7 @@ typedef struct _LFclosure {
LFWIstateRec current;
LFWIstateRec saved;
Bool haveSaved;
+ Bool from_dispatch;
char *savedName;
int savedNameLen;
} LFclosureRec;
@@ -108,6 +111,7 @@ typedef struct _PTclosure {
CARD8 reqType;
XID did;
int err;
+ Bool from_dispatch;
} PTclosureRec;
/* ImageText */
@@ -122,5 +126,6 @@ typedef struct _ITclosure {
int yorg;
CARD8 reqType;
XID did;
+ Bool from_dispatch;
} ITclosureRec;
#endif /* CLOSESTR_H */
diff --git a/xorg-server/include/dixstruct.h b/xorg-server/include/dixstruct.h
index 6f5667fcb..440e5ccdd 100644
--- a/xorg-server/include/dixstruct.h
+++ b/xorg-server/include/dixstruct.h
@@ -90,7 +90,7 @@ typedef struct _Client {
int priority;
ReplySwapPtr pSwapReplyFunc;
XID errorValue;
- int sequence;
+ unsigned short sequence; //MH
int ignoreCount; /* count for Attend/IgnoreClient */
int numSaved;
SaveSetElt *saveSet;
diff --git a/xorg-server/include/eventstr.h b/xorg-server/include/eventstr.h
index 3950584d5..cce903d04 100644
--- a/xorg-server/include/eventstr.h
+++ b/xorg-server/include/eventstr.h
@@ -176,7 +176,7 @@ struct _DeviceChangedEvent {
struct {
uint32_t min; /**< Minimum value */
uint32_t max; /**< Maximum value */
- double value; /**< Current value */;
+ double value; /**< Current value */
/* FIXME: frac parts of min/max */
uint32_t resolution; /**< Resolution counts/m */
uint8_t mode; /**< Relative or Absolute */
diff --git a/xorg-server/include/gc.h b/xorg-server/include/gc.h
index 6e5b92da2..a78d922f2 100644
--- a/xorg-server/include/gc.h
+++ b/xorg-server/include/gc.h
@@ -87,8 +87,8 @@ extern _X_EXPORT void ValidateGC(DrawablePtr /*pDraw */ ,
GCPtr /*pGC */ );
typedef union {
- CARD32 val;
pointer ptr;
+ CARD32 val;
} ChangeGCVal, *ChangeGCValPtr;
extern int ChangeGCXIDs(ClientPtr /*client */ ,
diff --git a/xorg-server/include/input.h b/xorg-server/include/input.h
index 2d5e531ef..b42510d9b 100644
--- a/xorg-server/include/input.h
+++ b/xorg-server/include/input.h
@@ -570,7 +570,7 @@ extern void TouchEventHistoryReplay(TouchPointInfoPtr ti, DeviceIntPtr dev,
extern Bool TouchResourceIsOwner(TouchPointInfoPtr ti, XID resource);
extern void TouchAddListener(TouchPointInfoPtr ti, XID resource, int resource_type,
enum InputLevel level, enum TouchListenerType type,
- enum TouchListenerState state, WindowPtr window, GrabPtr grab);
+ enum TouchListenerState state, WindowPtr window, const GrabPtr grab);
extern Bool TouchRemoveListener(TouchPointInfoPtr ti, XID resource);
extern void TouchSetupListeners(DeviceIntPtr dev, TouchPointInfoPtr ti,
InternalEvent *ev);
diff --git a/xorg-server/include/list.h b/xorg-server/include/list.h
index 455c670d3..7bf3cc5f4 100644
--- a/xorg-server/include/list.h
+++ b/xorg-server/include/list.h
@@ -305,7 +305,7 @@ xorg_list_is_empty(struct xorg_list *head)
*
*/
#define xorg_list_for_each_entry(pos, head, member) \
- for (pos = __container_of((head)->next, pos, member); \
+ for (pos = NULL, pos = __container_of((head)->next, pos, member); \
&pos->member != (head); \
pos = __container_of(pos->member.next, pos, member))
@@ -317,7 +317,7 @@ xorg_list_is_empty(struct xorg_list *head)
* See xorg_list_for_each_entry for more details.
*/
#define xorg_list_for_each_entry_safe(pos, tmp, head, member) \
- for (pos = __container_of((head)->next, pos, member), \
+ for (pos = NULL, pos = __container_of((head)->next, pos, member), \
tmp = __container_of(pos->member.next, pos, member); \
&pos->member != (head); \
pos = tmp, tmp = __container_of(pos->member.next, tmp, member))
diff --git a/xorg-server/include/misc.h b/xorg-server/include/misc.h
index 17de71041..19e71035c 100644
--- a/xorg-server/include/misc.h
+++ b/xorg-server/include/misc.h
@@ -79,6 +79,16 @@ OF THIS SOFTWARE.
#include <stddef.h>
#include <stdint.h>
+#include <unistd.h>
+
+#ifdef _MSC_VER
+#define inline __inline
+#include <math.h>
+static double __inline trunc(double d)
+{
+ return (d>0) ? floor(d) : ceil(d) ;
+}
+#endif
#ifndef MAXSCREENS
#define MAXSCREENS 16
@@ -86,7 +96,7 @@ OF THIS SOFTWARE.
#ifndef MAXGPUSCREENS
#define MAXGPUSCREENS 16
#endif
-#define MAXCLIENTS 256
+#define MAXCLIENTS 1024
#define MAXEXTENSIONS 128
#define MAXFORMATS 8
#define MAXDEVICES 40 /* input devices */
@@ -173,9 +183,9 @@ lswaps(uint16_t x)
#include <math.h>
#undef MAXSHORT
-#define MAXSHORT SHRT_MAX
+#define MAXSHORT 32767
#undef MINSHORT
-#define MINSHORT SHRT_MIN
+#define MINSHORT -32768
#undef MAXINT
#define MAXINT INT_MAX
#undef MININT
@@ -203,7 +213,7 @@ lswaps(uint16_t x)
* @param bits The minimum number of bits needed.
* @return The number of bytes needed to hold bits.
*/
-static inline int
+static __inline int
bits_to_bytes(const int bits)
{
return ((bits + 7) >> 3);
@@ -215,7 +225,7 @@ bits_to_bytes(const int bits)
* @param bytes The minimum number of bytes needed.
* @return The number of 4-byte units needed to hold bytes.
*/
-static inline int
+static __inline int
bytes_to_int32(const int bytes)
{
return (((bytes) + 3) >> 2);
@@ -226,7 +236,7 @@ bytes_to_int32(const int bytes)
* @param bytes The minimum number of bytes needed.
* @return The closest multiple of 4 that is equal or higher than bytes.
*/
-static inline int
+static __inline int
pad_to_int32(const int bytes)
{
return (((bytes) + 3) & ~3);
@@ -422,7 +432,7 @@ extern _X_EXPORT unsigned long serverGeneration;
do { if (cond) { \
ErrorFSigSafe("BUG: triggered 'if (" #cond ")'\n"); \
ErrorFSigSafe("BUG: %s:%u in %s()\n", \
- __FILE__, __LINE__, __func__); \
+ __FILE__, __LINE__, __FUNCTION__); \
if (with_msg) ErrorFSigSafe(__VA_ARGS__); \
xorg_backtrace(); \
} } while(0)
diff --git a/xorg-server/include/os.h b/xorg-server/include/os.h
index 450e1a8e8..4689e573d 100644
--- a/xorg-server/include/os.h
+++ b/xorg-server/include/os.h
@@ -121,6 +121,8 @@ extern _X_EXPORT int WriteToClient(ClientPtr /*who */ , int /*count */ ,
extern _X_EXPORT void ResetOsBuffers(void);
+extern _X_EXPORT int TransIsListening(char *protocol);
+
extern _X_EXPORT void InitConnectionLimits(void);
extern _X_EXPORT void NotifyParentProcess(void);
@@ -460,7 +462,7 @@ extern _X_EXPORT void
AccessUsingXdmcp(void);
extern _X_EXPORT void
-DefineSelf(int /*fd */ );
+DefineSelf(int /*fd */ , const int /*protocol*/);
#if XDMCP
extern _X_EXPORT void
@@ -668,10 +670,20 @@ _X_ATTRIBUTE_PRINTF(1, 2)
#define DebugF(...) /* */
#endif
+#ifdef _MSC_VER
+#ifdef INSERVER
+#define SERVEXTERN _declspec(dllimport)
+#else
+#define SERVEXTERN _declspec(dllexport)
+#endif
+#else
+#define SERVEXTERN _X_EXPORT
+#endif
+
extern _X_EXPORT void
VErrorF(const char *f, va_list args)
_X_ATTRIBUTE_PRINTF(1, 0);
-extern _X_EXPORT void
+extern SERVEXTERN void
ErrorF(const char *f, ...)
_X_ATTRIBUTE_PRINTF(1, 2);
extern _X_EXPORT void
@@ -686,4 +698,8 @@ LogPrintMarkers(void);
extern _X_EXPORT void
xorg_backtrace(void);
+#ifdef _MSC_VER
+#define snprintf _snprintf
+#endif
+
#endif /* OS_H */
diff --git a/xorg-server/include/pixmapstr.h b/xorg-server/include/pixmapstr.h
index 2a1ef9b85..d933a5916 100644
--- a/xorg-server/include/pixmapstr.h
+++ b/xorg-server/include/pixmapstr.h
@@ -76,10 +76,8 @@ typedef struct _Pixmap {
int refcnt;
int devKind; /* This is the pitch of the pixmap, typically width*bpp/8. */
DevUnion devPrivate; /* When !NULL, devPrivate.ptr points to the raw pixel data. */
-#ifdef COMPOSITE
short screen_x;
short screen_y;
-#endif
unsigned usage_hint; /* see CREATE_PIXMAP_USAGE_* */
PixmapPtr master_pixmap; /* pointer to master copy of pixmap for pixmap sharing */
diff --git a/xorg-server/include/resource.h b/xorg-server/include/resource.h
index 4a8dc3169..3719242bf 100644
--- a/xorg-server/include/resource.h
+++ b/xorg-server/include/resource.h
@@ -69,7 +69,7 @@ typedef uint32_t RESTYPE;
#define RC_LASTPREDEF RC_NEVERRETAIN
#define RC_ANY (~(RESTYPE)0)
-/* types for Resource routines */
+/* types for Resource routines. When you change one of them, please also update the predefTypes array in resource.c*/
#define RT_WINDOW ((RESTYPE)1|RC_DRAWABLE)
#define RT_PIXMAP ((RESTYPE)2|RC_DRAWABLE)
@@ -99,6 +99,9 @@ typedef uint32_t RESTYPE;
#if MAXCLIENTS == 512
#define RESOURCE_CLIENT_BITS 9
#endif
+#if MAXCLIENTS == 1024
+#define RESOURCE_CLIENT_BITS 10
+#endif
/* client field offset */
#define CLIENTOFFSET (RESOURCE_AND_CLIENT_COUNT - RESOURCE_CLIENT_BITS)
/* resource field */
diff --git a/xorg-server/include/scrnintstr.h b/xorg-server/include/scrnintstr.h
index df7407391..6afda0322 100644
--- a/xorg-server/include/scrnintstr.h
+++ b/xorg-server/include/scrnintstr.h
@@ -66,7 +66,7 @@ typedef struct _Visual {
VisualID vid;
short class;
short bitsPerRGBValue;
- short ColormapEntries;
+ long ColormapEntries;
short nplanes; /* = log2 (ColormapEntries). This does not
* imply that the screen has this many planes.
* it may have more or fewer */
@@ -332,6 +332,10 @@ typedef void (*MarkUnrealizedWindowProcPtr) (WindowPtr /*pChild */ ,
WindowPtr /*pWin */ ,
Bool /*fromConfigure */ );
+#ifdef CreateWindow
+#undef CreateWindow
+#endif
+
typedef Bool (*DeviceCursorInitializeProcPtr) (DeviceIntPtr /* pDev */ ,
ScreenPtr /* pScreen */ );
diff --git a/xorg-server/include/servermd.h b/xorg-server/include/servermd.h
index 11f6c1022..a7b9a686d 100644
--- a/xorg-server/include/servermd.h
+++ b/xorg-server/include/servermd.h
@@ -300,6 +300,12 @@ SOFTWARE.
#endif /* __aarch64__ */
+#ifdef WIN32
+#define IMAGE_BYTE_ORDER LSBFirst
+#define BITMAP_BIT_ORDER LSBFirst
+#define GLYPHPADBYTES 4
+#endif
+
/* size of buffer to use with GetImage, measured in bytes. There's obviously
* a trade-off between the amount of heap used and the number of times the
* ddx routine has to be called.
diff --git a/xorg-server/include/site.h b/xorg-server/include/site.h
index 25caabbb3..52a5e8388 100644
--- a/xorg-server/include/site.h
+++ b/xorg-server/include/site.h
@@ -51,7 +51,7 @@ SOFTWARE.
* server executable.
*/
#ifndef VENDOR_STRING
-#define VENDOR_STRING "The X.Org Foundation"
+#define VENDOR_STRING "HC-Consult"
#endif
/*
@@ -60,7 +60,7 @@ SOFTWARE.
* by the vendor.
*/
#ifndef VENDOR_RELEASE
-#define VENDOR_RELEASE 6600
+#define VENDOR_RELEASE XORG_VERSION_CURRENT
#endif
/*
diff --git a/xorg-server/include/version-config.h b/xorg-server/include/version-config.h
new file mode 100644
index 000000000..b8d482ce8
--- /dev/null
+++ b/xorg-server/include/version-config.h
@@ -0,0 +1,16 @@
+/* version-config.h.in: not generated */
+
+#ifndef VERSION_CONFIG_H
+#define VERSION_CONFIG_H
+
+/* Vendor man version */
+#undef VENDOR_MAN_VERSION
+
+/* Vendor name */
+#define VENDOR_NAME "HC-Consult"
+
+/* Vendor release */
+#define VENDOR_RELEASE XORG_VERSION_CURRENT
+
+#endif /* VERSION_CONFIG_H */
+
diff --git a/xorg-server/include/windowstr.h b/xorg-server/include/windowstr.h
index a1e608f09..15a83f056 100644
--- a/xorg-server/include/windowstr.h
+++ b/xorg-server/include/windowstr.h
@@ -140,7 +140,7 @@ typedef struct _Window {
RegionRec borderSize;
DDXPointRec origin; /* position relative to parent */
unsigned short borderWidth;
- unsigned short deliverableEvents; /* all masks from all clients */
+ unsigned long deliverableEvents; /* all masks from all clients */
Mask eventMask; /* mask from the creating client */
PixUnion background;
PixUnion border;
diff --git a/xorg-server/include/xkb-config.h b/xorg-server/include/xkb-config.h
new file mode 100644
index 000000000..7041656fe
--- /dev/null
+++ b/xorg-server/include/xkb-config.h
@@ -0,0 +1,33 @@
+/* include/xkb-config.h. Generated from xkb-config.h.in by configure. */
+/* xkb-config.h.in: not at all generated. -*- c -*-
+ *
+ */
+
+#ifndef _XKB_CONFIG_H_
+#define _XKB_CONFIG_H_
+
+/* Default set of XKB rules. */
+#define XKB_DFLT_RULES "xorg"
+
+/* Default XKB model. */
+#define XKB_DFLT_MODEL "pc104"
+
+/* Default XKB layout. */
+#define XKB_DFLT_LAYOUT "us"
+
+/* Default XKB variant. */
+#define XKB_DFLT_VARIANT ""
+
+/* Default XKB options. */
+#define XKB_DFLT_OPTIONS ""
+
+/* Path to XKB definitions. */
+#define XKB_BASE_DIRECTORY "xkbdata"
+
+/* Path to xkbcomp. */
+#define XKB_BIN_DIRECTORY "."
+
+/* XKB output dir for compiled keymaps. */
+#define XKM_OUTPUT_DIR "xkbdata/compiled/"
+
+#endif /* _XKB_CONFIG_H_ */
diff --git a/xorg-server/include/xkbstr.h b/xorg-server/include/xkbstr.h
index 935330c7c..b85bf9220 100644
--- a/xorg-server/include/xkbstr.h
+++ b/xorg-server/include/xkbstr.h
@@ -46,10 +46,10 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
typedef struct _XkbStateRec {
unsigned char group; /* base + latched + locked */
+ unsigned char locked_group;
/* FIXME: Why are base + latched short and not char?? */
unsigned short base_group; /* physically ... down? */
unsigned short latched_group;
- unsigned char locked_group;
unsigned char mods; /* base + latched + locked */
unsigned char base_mods; /* physically down */
diff --git a/xorg-server/include/xwin-config.h b/xorg-server/include/xwin-config.h
new file mode 100644
index 000000000..e6c4488a3
--- /dev/null
+++ b/xorg-server/include/xwin-config.h
@@ -0,0 +1,36 @@
+/*
+ * xwin-config.h.in
+ *
+ * This file has all defines used in the xwin ddx
+ *
+ */
+#include <dix-config.h>
+
+/* Winsock networking */
+#define HAS_WINSOCK
+
+/* Cygwin has /dev/windows for signaling new win32 messages */
+/* #undef HAS_DEVWINDOWS */
+
+/* Switch on debug messages */
+/* #undef CYGDEBUG */
+/* #undef CYGWINDOWING_DEBUG */
+/* #undef CYGMULTIWINDOW_DEBUG */
+
+/* Define to 1 if unsigned long is 64 bits. */
+/* #undef _XSERVER64 */
+
+/* Short vendor name */
+#define XVENDORNAMESHORT "VcXsrv"
+
+/* Vendor web address for support */
+#define __VENDORDWEBSUPPORT__ "http://www.hc-consult.be/"
+
+/* Location of system.XWinrc */
+#define SYSCONFDIR "."
+
+/* Default log location */
+#define DEFAULT_LOGDIR "."
+
+/* Whether we should re-locate the root to where the executable lives */
+/* #undef RELOCATE_PROJECTROOT */
diff --git a/xorg-server/installer/genruntimeinclude.py b/xorg-server/installer/genruntimeinclude.py
new file mode 100644
index 000000000..bad6c8324
--- /dev/null
+++ b/xorg-server/installer/genruntimeinclude.py
@@ -0,0 +1,82 @@
+PublicToken="1fc8b3b9a1e18e3b"
+
+Template=r"""!define MSVC_PUBLICTOKEN "<PUBLICTOKEN>"
+!define MSVC_VERSION "<VERSION>"
+!define MSVCR90_DLL "<WINSXSDIR>\x86_Microsoft.VC90.CRT_${MSVC_PUBLICTOKEN}_9.0.${MSVC_VERSION}_<SUFFIX>\msvcr90.dll"
+!define MSVCM90_DLL "<WINSXSDIR>\x86_Microsoft.VC90.CRT_${MSVC_PUBLICTOKEN}_9.0.${MSVC_VERSION}_<SUFFIX>\msvcm90.dll"
+!define MSVCP90_DLL "<WINSXSDIR>\x86_Microsoft.VC90.CRT_${MSVC_PUBLICTOKEN}_9.0.${MSVC_VERSION}_<SUFFIX>\msvcp90.dll"
+!define MSVC_CAT "<WINSXSDIR>\manifests\x86_Microsoft.VC90.CRT_${MSVC_PUBLICTOKEN}_9.0.${MSVC_VERSION}_<SUFFIX>.cat"
+!define MSVC_MANIFEST_PART "x86_Microsoft.VC90.CRT_${MSVC_PUBLICTOKEN}_9.0.${MSVC_VERSION}_<SUFFIX>.manifest"
+!define MSVC_MANIFEST "<WINSXSDIR>\manifests\${MSVC_MANIFEST_PART}"
+
+!define MSVC_VERSION_D "<DVERSION>"
+!define MSVCR90_DLL_D "<WINSXSDIR>\x86_Microsoft.VC90.DebugCRT_${MSVC_PUBLICTOKEN}_9.0.${MSVC_VERSION_D}_<DSUFFIX>\msvcr90d.dll"
+!define MSVCM90_DLL_D "<WINSXSDIR>\x86_Microsoft.VC90.DebugCRT_${MSVC_PUBLICTOKEN}_9.0.${MSVC_VERSION_D}_<DSUFFIX>\msvcm90d.dll"
+!define MSVCP90_DLL_D "<WINSXSDIR>\x86_Microsoft.VC90.DebugCRT_${MSVC_PUBLICTOKEN}_9.0.${MSVC_VERSION_D}_<DSUFFIX>\msvcp90d.dll"
+!define MSVC_CAT_D "<WINSXSDIR>\manifests\x86_Microsoft.VC90.DebugCRT_${MSVC_PUBLICTOKEN}_9.0.${MSVC_VERSION_D}_<DSUFFIX>.cat"
+!define MSVC_MANIFEST_PART_D "x86_Microsoft.VC90.DebugCRT_${MSVC_PUBLICTOKEN}_9.0.${MSVC_VERSION_D}_<DSUFFIX>.manifest"
+!define MSVC_MANIFEST_D "<WINSXSDIR>\manifests\${MSVC_MANIFEST_PART_D}"
+"""
+
+import glob,re,sys,os
+
+Files=glob.glob(r"c:\windows\winsxs\x86_Microsoft.VC90.CRT_%s_9.0.*"%PublicToken)
+DebugFiles=glob.glob(r"c:\windows\winsxs\x86_Microsoft.VC90.DebugCRT_%s_9.0.*"%PublicToken)
+
+SearchRe=re.compile(r"c:\\windows\\winsxs\\x86_Microsoft\.VC90\.CRT_%s_9\.0\.([0-9]+)\.([0-9]+)_(.*)"%PublicToken,re.I)
+DebugSearchRe=re.compile(r"c:\\windows\\winsxs\\x86_Microsoft\.VC90\.DebugCRT_%s_9\.0\.([0-9]+)\.([0-9]+)_(.*)"%PublicToken,re.I)
+
+# Release Dlls
+MajorVersion=0
+MinorVersion=0
+LatestFile=None
+#Now Select the one with the latest version
+for File in Files:
+ # Extract version
+ Search=SearchRe.search(File)
+ Major=int(Search.group(1))
+ Minor=int(Search.group(2))
+ if Major>MajorVersion:
+ MajorVersion=Major
+ MinorVersion=Minor
+ LatestFile=File
+ Suffix=Search.group(3)
+ elif Major==MajorVersion and Minor>MinorVersion:
+ MinorVersion=Minor
+ LatestFile=File
+ Suffix=Search.group(3)
+
+
+Template=re.sub("<VERSION>","%d.%d"%(MajorVersion,MinorVersion),Template)
+Template=re.sub("<SUFFIX>",Suffix,Template)
+
+# Debug dlls
+MajorVersion=0
+MinorVersion=0
+LatestFile=None
+#Now Select the one with the latest version
+for File in DebugFiles:
+ # Extract version
+ Search=DebugSearchRe.search(File)
+ Major=int(Search.group(1))
+ Minor=int(Search.group(2))
+ if Major>MajorVersion:
+ MajorVersion=Major
+ MinorVersion=Minor
+ LatestFile=File
+ Suffix=Search.group(3)
+ elif Major==MajorVersion and Minor>MinorVersion:
+ MinorVersion=Minor
+ LatestFile=File
+ Suffix=Search.group(3)
+
+
+Template=re.sub("<DVERSION>","%d.%d"%(MajorVersion,MinorVersion),Template)
+Template=re.sub("<DSUFFIX>",Suffix,Template)
+
+# Adjust common stuff
+Template=re.sub("<PUBLICTOKEN>",PublicToken,Template)
+WinSxsDir=os.path.join(os.getenv("systemroot"),"WinSxS")
+Template=re.sub("<WINSXSDIR>",WinSxsDir,Template)
+
+open("runtime","w").write(Template)
diff --git a/xorg-server/installer/packageall.bat b/xorg-server/installer/packageall.bat
new file mode 100755
index 000000000..5e9677e6e
--- /dev/null
+++ b/xorg-server/installer/packageall.bat
@@ -0,0 +1,40 @@
+@echo off
+if exist vcxsrv*.installer.exe del vcxsrv*.installer.exe
+
+if "%1"=="nox86" goto skipx86
+
+copy "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x86\Microsoft.VC120.CRT\msvcp120.dll"
+copy "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x86\Microsoft.VC120.CRT\msvcr120.dll"
+copy "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\Debug_NonRedist\x86\Microsoft.VC120.DebugCRT\msvcp120d.dll"
+copy "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\Debug_NonRedist\x86\Microsoft.VC120.DebugCRT\msvcr120d.dll"
+
+if exist "C:\Program Files (x86)\NSIS\Unicode\makensis.exe" (
+ "C:\Program Files (x86)\NSIS\Unicode\makensis.exe" vcxsrv.nsi
+ "C:\Program Files (x86)\NSIS\Unicode\makensis.exe" vcxsrv-debug.nsi
+) else (
+ "C:\Program Files\NSIS\makensis.exe" vcxsrv.nsi
+ "C:\Program Files\NSIS\makensis.exe" vcxsrv-debug.nsi
+)
+
+:skipx86
+if "%1"=="nox64" goto skipx64
+
+copy "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x64\Microsoft.VC120.CRT\msvcp120.dll"
+copy "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x64\Microsoft.VC120.CRT\msvcr120.dll"
+copy "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\Debug_NonRedist\x64\Microsoft.VC120.DebugCRT\msvcp120d.dll"
+copy "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\Debug_NonRedist\x64\Microsoft.VC120.DebugCRT\msvcr120d.dll"
+
+if exist "C:\Program Files (x86)\NSIS\Unicode\makensis.exe" (
+ "C:\Program Files (x86)\NSIS\Unicode\makensis.exe" vcxsrv-64.nsi
+ "C:\Program Files (x86)\NSIS\Unicode\makensis.exe" vcxsrv-64-debug.nsi
+) else (
+ "C:\Program Files\NSIS\makensis.exe" vcxsrv-64.nsi
+ "C:\Program Files\NSIS\makensis.exe" vcxsrv-64-debug.nsi
+)
+
+:skipx64
+
+del msvcr120.dll
+del msvcr120d.dll
+del msvcp120.dll
+del msvcp120d.dll
diff --git a/xorg-server/installer/vcxsrv-64-debug.nsi b/xorg-server/installer/vcxsrv-64-debug.nsi
new file mode 100644
index 000000000..f93a32c78
--- /dev/null
+++ b/xorg-server/installer/vcxsrv-64-debug.nsi
@@ -0,0 +1,97 @@
+/* This file is part of vcxsrv.
+ *
+ * Copyright (C) 2009 Marc Haesen
+ *
+ * vcxsrv is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * vcxsrv is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with vcxsrv. If not, see <http://www.gnu.org/licenses/>.
+*/
+;--------------------------------
+
+; The name of the installer
+Name "VcXsrv"
+
+; The file to write
+OutFile "vcxsrv-64-debug.1.14.3.installer.exe"
+
+; The default installation directory
+InstallDir $PROGRAMFILES64\VcXsrv
+
+; Registry key to check for directory (so if you install again, it will
+; overwrite the old one automatically)
+InstallDirRegKey HKLM SOFTWARE\VcXsrv "Install_Dir_64"
+
+; Request application privileges for Windows Vista
+RequestExecutionLevel admin
+
+;--------------------------------
+InstType "Full"
+
+; Pages
+
+Page components
+Page directory
+Page instfiles
+
+UninstPage uninstConfirm
+UninstPage instfiles
+
+SetPluginUnload alwaysoff
+; ShowInstDetails show
+XPStyle on
+
+!define FUSION_REFCOUNT_UNINSTALL_SUBKEY_GUID {8cedc215-ac4b-488b-93c0-a50a49cb2fb8}
+
+;--------------------------------
+; The stuff to install
+Section "VcXsrv debug exe and dlls"
+
+ SectionIn RO
+ SectionIn 1
+
+ ; Set output path to the installation directory.
+ SetOutPath $INSTDIR
+
+ IfFileExists "$INSTDIR\msvcr100d.dll" 0 +2
+ Delete "$INSTDIR\msvcr100d.dll"
+ IfFileExists "$INSTDIR\msvcp100d.dll" 0 +2
+ Delete "$INSTDIR\msvcp100d.dll"
+ IfFileExists "$INSTDIR\msvcr110d.dll" 0 +2
+ Delete "$INSTDIR\msvcr110d.dll"
+ IfFileExists "$INSTDIR\msvcp110d.dll" 0 +2
+ Delete "$INSTDIR\msvcp110d.dll"
+
+ ; Put files there
+ File "..\obj64\servdebug\vcxsrv.exe"
+ File "..\..\xkbcomp\obj64\debug\xkbcomp.exe"
+ File "..\..\apps\xhost\obj64\debug\xhost.exe"
+ File "..\..\apps\xrdb\obj64\debug\xrdb.exe"
+ File "..\..\apps\xauth\obj64\debug\xauth.exe"
+ File "..\..\apps\xcalc\obj64\debug\xcalc.exe"
+ File "..\..\apps\xclock\obj64\debug\xclock.exe"
+ File "..\..\apps\xwininfo\obj64\debug\xwininfo.exe"
+ File "..\hw\xwin\xlaunch\obj64\debug\xlaunch.exe"
+ File "..\..\tools\plink\obj64\debug\plink.exe"
+ File "..\..\mesalib\windows\VC8\mesa\x64\Debug\swrast_dri.dll"
+ File "..\hw\xwin\swrastwgl_dri\obj64\debug\swrastwgl_dri.dll"
+ File "..\..\dxtn\obj64\debug\dxtn.dll"
+ File "..\..\zlib\obj64\debug\zlib1.dll"
+ File "..\..\libxcb\src\obj64\debug\libxcb.dll"
+ File "..\..\libXau\obj64\debug\libXau.dll"
+ File "..\..\libX11\obj64\debug\libX11.dll"
+ File "..\..\libXext\src\obj64\debug\libXext.dll"
+ File "..\..\libXmu\src\obj64\debug\libXmu.dll"
+ File "msvcr120d.dll"
+ File "msvcp120d.dll"
+
+ WriteRegStr HKLM SOFTWARE\VcXsrv "Install_Dir_64" $INSTDIR
+SectionEnd
diff --git a/xorg-server/installer/vcxsrv-64.nsi b/xorg-server/installer/vcxsrv-64.nsi
new file mode 100644
index 000000000..d452c0634
--- /dev/null
+++ b/xorg-server/installer/vcxsrv-64.nsi
@@ -0,0 +1,255 @@
+/* This file is part of vcxsrv.
+ *
+ * Copyright (C) 2009 Marc Haesen
+ *
+ * vcxsrv is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * vcxsrv is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with vcxsrv. If not, see <http://www.gnu.org/licenses/>.
+*/
+;--------------------------------
+
+; The name of the installer
+Name "VcXsrv"
+
+; The file to write
+OutFile "vcxsrv-64.1.14.3.installer.exe"
+
+; The default installation directory
+InstallDir $programfiles64\VcXsrv
+
+; Registry key to check for directory (so if you install again, it will
+; overwrite the old one automatically)
+InstallDirRegKey HKLM SOFTWARE\VcXsrv "Install_Dir_64"
+
+; Request application privileges for Windows Vista
+RequestExecutionLevel admin
+
+;--------------------------------
+InstType "Full"
+InstType "Minimal"
+
+; Pages
+
+Page components
+Page directory
+Page instfiles
+
+UninstPage uninstConfirm
+UninstPage instfiles
+
+SetPluginUnload alwaysoff
+; ShowInstDetails show
+XPStyle on
+
+!define FUSION_REFCOUNT_UNINSTALL_SUBKEY_GUID {8cedc215-ac4b-488b-93c0-a50a49cb2fb8}
+
+;--------------------------------
+; The stuff to install
+Section "VcXsrv (required)"
+
+ SectionIn RO
+ SectionIn 1 2 3
+
+ ; Set output path to the installation directory.
+ SetOutPath $INSTDIR
+
+ ; Remove old opengl32.dll file if it extits
+ IfFileExists "$INSTDIR\opengl32.dll" 0 +2
+ Delete "$INSTDIR\opengl32.dll"
+ IfFileExists "$INSTDIR\msvcr100.dll" 0 +2
+ Delete "$INSTDIR\msvcr100.dll"
+ IfFileExists "$INSTDIR\msvcp100.dll" 0 +2
+ Delete "$INSTDIR\msvcp100.dll"
+ IfFileExists "$INSTDIR\msvcr110.dll" 0 +2
+ Delete "$INSTDIR\msvcr110.dll"
+ IfFileExists "$INSTDIR\msvcp110.dll" 0 +2
+ Delete "$INSTDIR\msvcp110.dll"
+
+ ; Put files there
+ File "..\obj64\servrelease\vcxsrv.exe"
+ File "..\dix\protocol.txt"
+ File "..\system.XWinrc"
+ File "..\..\xkbcomp\obj64\release\xkbcomp.exe"
+ File "..\..\apps\xhost\obj64\release\xhost.exe"
+ File "..\..\apps\xrdb\obj64\release\xrdb.exe"
+ File "..\..\apps\xauth\obj64\release\xauth.exe"
+ File "..\..\apps\xcalc\obj64\release\xcalc.exe"
+ File "..\..\apps\xcalc\app-defaults\xcalc"
+ File "..\..\apps\xcalc\app-defaults\xcalc-color"
+ File "..\..\apps\xclock\obj64\release\xclock.exe"
+ File "..\..\apps\xclock\app-defaults\xclock"
+ File "..\..\apps\xclock\app-defaults\xclock-color"
+ File "..\..\apps\xwininfo\obj64\release\xwininfo.exe"
+ File "..\XKeysymDB"
+ File "..\..\libX11\src\XErrorDB"
+ File "..\..\libX11\src\xcms\Xcms.txt"
+ File "..\XtErrorDB"
+ File "..\.Xdefaults"
+ File "..\hw\xwin\xlaunch\obj64\release\xlaunch.exe"
+ File "..\..\tools\plink\obj64\release\plink.exe"
+ File "..\..\mesalib\windows\VC8\mesa\x64\Release\swrast_dri.dll"
+ File "..\hw\xwin\swrastwgl_dri\obj64\release\swrastwgl_dri.dll"
+ File "..\..\dxtn\obj64\release\dxtn.dll"
+ File "..\..\libxml2\bin64\libxml2-2.dll"
+ File "..\..\libxml2\bin64\libgcc_s_sjlj-1.dll"
+ File "..\..\libxml2\bin64\libiconv-2.dll"
+ File "..\..\libxml2\bin64\libwinpthread-1.dll"
+ File "..\..\zlib\obj64\release\zlib1.dll"
+ File "..\..\libxcb\src\obj64\release\libxcb.dll"
+ File "..\..\libXau\obj64\release\libXau.dll"
+ File "..\..\libX11\obj64\release\libX11.dll"
+ File "..\..\libXext\src\obj64\release\libXext.dll"
+ File "..\..\libXmu\src\obj64\release\libXmu.dll"
+ File "msvcr120.dll"
+ File "msvcp120.dll"
+ SetOutPath $INSTDIR\xkbdata
+ File /r "..\xkbdata\*.*"
+ SetOutPath $INSTDIR\locale
+ File /r "..\locale\*.*"
+ SetOutPath $INSTDIR\bitmaps
+ File /r "..\bitmaps\*.*"
+
+ ; Write the installation path into the registry
+ WriteRegStr HKLM SOFTWARE\VcXsrv "Install_Dir_64" $INSTDIR
+
+ ; Write the uninstall keys for Windows
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VcXsrv" "DisplayName" "VcXsrv"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VcXsrv" "UninstallString" '"$INSTDIR\uninstall.exe"'
+ WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VcXsrv" "NoModify" 1
+ WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VcXsrv" "NoRepair" 1
+ WriteUninstaller "uninstall.exe"
+
+ ; Register the xlaunch file extension
+ WriteRegStr HKCR ".xlaunch" "" "XLaunchFile"
+ WriteRegStr HKCR "XLaunchFile" "" "XLaunch Configuration"
+ WriteRegStr HKCR "XLaunchFile\DefaultIcon" "" "$INSTDIR\xlaunch.exe,0"
+ WriteRegStr HKCR "XLaunchFile\shell" "" 'open'
+ WriteRegStr HKCR "XLaunchFile\shell\open\command" "" '"$INSTDIR\XLaunch.exe" -run "%1"'
+ WriteRegStr HKCR "XLaunchFile\shell\open\ddeexec\Application" "" "XLaunch"
+ WriteRegStr HKCR "XLaunchFile\shell\open\ddeexec\Topic" "" "System"
+ WriteRegStr HKCR "XLaunchFile\shell\edit\command" "" '"$INSTDIR\XLaunch.exe" -load "%1"'
+ WriteRegStr HKCR "XLaunchFile\shell\edit\ddeexec\Application" "" "XLaunch"
+ WriteRegStr HKCR "XLaunchFile\shell\edit\ddeexec\Topic" "" "System"
+ WriteRegStr HKCR "XLaunchFile\shell\Validate\command" "" '"$INSTDIR\XLaunch.exe" -validate "%1"'
+ WriteRegStr HKCR "XLaunchFile\shell\Validate\ddeexec\Application" "" "XLaunch"
+ WriteRegStr HKCR "XLaunchFile\shell\Validate\ddeexec\Topic" "" "System"
+
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell" "" 'open'
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell\open\command" "" '"$INSTDIR\XLaunch.exe" -run "%1"'
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell\open\ddeexec\Application" "" "XLaunch"
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell\open\ddeexec\Topic" "" "System"
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell\edit\command" "" '"$INSTDIR\XLaunch.exe" -load "%1"'
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell\edit\ddeexec\Application" "" "XLaunch"
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell\edit\ddeexec\Topic" "" "System"
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell\Validate\command" "" '"$INSTDIR\XLaunch.exe" -validate "%1"'
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell\Validate\ddeexec\Application" "" "XLaunch"
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell\Validate\ddeexec\Topic" "" "System"
+
+SectionEnd
+
+; Optional section (can be disabled by the user)
+Section "Fonts"
+ SectionIn 1 3
+
+ SetOutPath $INSTDIR\fonts
+ CreateDirectory "$SMPROGRAMS\VcXsrv"
+ File /r "..\fonts\*.*"
+
+SectionEnd
+
+; Optional section (can be disabled by the user)
+Section "Start Menu Shortcuts"
+ SectionIn 1 3
+
+ SetOutPath $INSTDIR
+ CreateDirectory "$SMPROGRAMS\VcXsrv"
+ CreateShortCut "$SMPROGRAMS\VcXsrv\Uninstall VcXsrv.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
+ CreateShortCut "$SMPROGRAMS\VcXsrv\VcXsrv.lnk" "$INSTDIR\vcxsrv.exe" " :0 -ac -terminate -lesspointer -multiwindow -clipboard -wgl" "$INSTDIR\vcxsrv.exe" 0
+ CreateShortCut "$SMPROGRAMS\VcXsrv\XLaunch.lnk" "$INSTDIR\xlaunch.exe" "" "$INSTDIR\xlaunch.exe" 0
+
+SectionEnd
+
+; Optional section (can be disabled by the user)
+Section "Desktop Shortcuts"
+ SectionIn 1 3
+
+ SetOutPath $INSTDIR
+ CreateShortCut "$DESKTOP\VcXsrv.lnk" "$INSTDIR\vcxsrv.exe" " :0 -ac -terminate -lesspointer -multiwindow -clipboard -wgl" "$INSTDIR\vcxsrv.exe" 0
+ CreateShortCut "$DESKTOP\XLaunch.lnk" "$INSTDIR\xlaunch.exe" "" "$INSTDIR\xlaunch.exe" 0
+
+SectionEnd
+
+;--------------------------------
+
+; Uninstaller
+
+Section "Uninstall"
+
+ ; Remove registry keys
+ DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VcXsrv"
+ DeleteRegKey HKLM SOFTWARE\VcXsrv
+
+ ; Register the xlaunch file extension
+ DeleteRegKey HKCR ".xlaunch"
+ DeleteRegKey HKCR "XLaunchFile"
+ DeleteRegKey HKCR "Applications\xlaunch.exe"
+
+ ; Remove files and uninstaller
+ Delete "$INSTDIR\vcxsrv.exe"
+ Delete "$INSTDIR\uninstall.exe"
+ Delete "$INSTDIR\protocol.txt"
+ Delete "$INSTDIR\system.XWinrc"
+ Delete "$INSTDIR\xkbcomp.exe"
+ Delete "$INSTDIR\xcalc.exe"
+ Delete "$INSTDIR\xcalc"
+ Delete "$INSTDIR\xcalc-color"
+ Delete "$INSTDIR\xclock.exe"
+ Delete "$INSTDIR\xclock"
+ Delete "$INSTDIR\xclock-color"
+ Delete "$INSTDIR\xwininfo.exe"
+ Delete "$INSTDIR\XKeysymDB"
+ Delete "$INSTDIR\XErrorDB"
+ Delete "$INSTDIR\Xcms.txt"
+ Delete "$INSTDIR\XtErrorDB"
+ Delete "$INSTDIR\.Xdefaults"
+ Delete "$INSTDIR\xlaunch.exe"
+ Delete "$INSTDIR\plink.exe"
+ Delete "$INSTDIR\swrast_dri.dll"
+ Delete "$INSTDIR\dxtn.dll"
+ Delete "$INSTDIR\swrastwgl_dri.dll"
+ Delete "$INSTDIR\libxcb.dll"
+ Delete "$INSTDIR\libXau.dll"
+ Delete "$INSTDIR\libX11.dll"
+ Delete "$INSTDIR\libXext.dll"
+ Delete "$INSTDIR\libXmu.dll"
+ Delete "$INSTDIR\libxml2.dll"
+ Delete "$INSTDIR\zlib1.dll"
+ Delete "$INSTDIR\iconv.dll"
+ Delete "$INSTDIR\msvcr120.dll"
+ Delete "$INSTDIR\msvcp120.dll"
+ Delete "$INSTDIR\msvcr120d.dll"
+ Delete "$INSTDIR\msvcp120d.dll"
+
+ RMDir /r "$INSTDIR\fonts"
+ RMDir /r "$INSTDIR\xkbdata"
+ RMDir /r "$INSTDIR\locale"
+
+ ; Remove shortcuts, if any
+ Delete "$SMPROGRAMS\VcXsrv\*.*"
+ Delete "$DESKTOP\VcXsrv.lnk"
+ Delete "$DESKTOP\XLaunch.lnk"
+
+ ; Remove directories used
+ RMDir "$SMPROGRAMS\VcXsrv"
+ RMDir "$INSTDIR"
+
+SectionEnd
diff --git a/xorg-server/installer/vcxsrv-debug.nsi b/xorg-server/installer/vcxsrv-debug.nsi
new file mode 100644
index 000000000..7ca89fd61
--- /dev/null
+++ b/xorg-server/installer/vcxsrv-debug.nsi
@@ -0,0 +1,97 @@
+/* This file is part of vcxsrv.
+ *
+ * Copyright (C) 2009 Marc Haesen
+ *
+ * vcxsrv is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * vcxsrv is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with vcxsrv. If not, see <http://www.gnu.org/licenses/>.
+*/
+;--------------------------------
+
+; The name of the installer
+Name "VcXsrv"
+
+; The file to write
+OutFile "vcxsrv-debug.1.14.3.installer.exe"
+
+; The default installation directory
+InstallDir $PROGRAMFILES32\VcXsrv
+
+; Registry key to check for directory (so if you install again, it will
+; overwrite the old one automatically)
+InstallDirRegKey HKLM SOFTWARE\VcXsrv "Install_Dir"
+
+; Request application privileges for Windows Vista
+RequestExecutionLevel admin
+
+;--------------------------------
+InstType "Full"
+
+; Pages
+
+Page components
+Page directory
+Page instfiles
+
+UninstPage uninstConfirm
+UninstPage instfiles
+
+SetPluginUnload alwaysoff
+; ShowInstDetails show
+XPStyle on
+
+!define FUSION_REFCOUNT_UNINSTALL_SUBKEY_GUID {8cedc215-ac4b-488b-93c0-a50a49cb2fb8}
+
+;--------------------------------
+; The stuff to install
+Section "VcXsrv debug exe and dlls"
+
+ SectionIn RO
+ SectionIn 1
+
+ ; Set output path to the installation directory.
+ SetOutPath $INSTDIR
+
+ IfFileExists "$INSTDIR\msvcr100d.dll" 0 +2
+ Delete "$INSTDIR\msvcr100d.dll"
+ IfFileExists "$INSTDIR\msvcp100d.dll" 0 +2
+ Delete "$INSTDIR\msvcp100d.dll"
+ IfFileExists "$INSTDIR\msvcr110d.dll" 0 +2
+ Delete "$INSTDIR\msvcr110d.dll"
+ IfFileExists "$INSTDIR\msvcp110d.dll" 0 +2
+ Delete "$INSTDIR\msvcp110d.dll"
+
+ ; Put files there
+ File "..\obj\servdebug\vcxsrv.exe"
+ File "..\..\xkbcomp\obj\debug\xkbcomp.exe"
+ File "..\..\apps\xhost\obj\debug\xhost.exe"
+ File "..\..\apps\xrdb\obj\debug\xrdb.exe"
+ File "..\..\apps\xauth\obj\debug\xauth.exe"
+ File "..\..\apps\xcalc\obj\debug\xcalc.exe"
+ File "..\..\apps\xclock\obj\debug\xclock.exe"
+ File "..\..\apps\xwininfo\obj\debug\xwininfo.exe"
+ File "..\hw\xwin\xlaunch\obj\debug\xlaunch.exe"
+ File "..\..\tools\plink\obj\debug\plink.exe"
+ File "..\..\mesalib\windows\VC8\mesa\Win32\Debug\swrast_dri.dll"
+ File "..\hw\xwin\swrastwgl_dri\obj\debug\swrastwgl_dri.dll"
+ File "..\..\dxtn\obj\debug\dxtn.dll"
+ File "..\..\zlib\obj\debug\zlib1.dll"
+ File "..\..\libxcb\src\obj\debug\libxcb.dll"
+ File "..\..\libXau\obj\debug\libXau.dll"
+ File "..\..\libX11\obj\debug\libX11.dll"
+ File "..\..\libXext\src\obj\debug\libXext.dll"
+ File "..\..\libXmu\src\obj\debug\libXmu.dll"
+ File "msvcr120d.dll"
+ File "msvcp120d.dll"
+
+ WriteRegStr HKLM SOFTWARE\VcXsrv "Install_Dir" "$INSTDIR"
+SectionEnd
diff --git a/xorg-server/installer/vcxsrv.nsi b/xorg-server/installer/vcxsrv.nsi
new file mode 100644
index 000000000..54186a3b9
--- /dev/null
+++ b/xorg-server/installer/vcxsrv.nsi
@@ -0,0 +1,255 @@
+/* This file is part of vcxsrv.
+ *
+ * Copyright (C) 2009 Marc Haesen
+ *
+ * vcxsrv is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * vcxsrv is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with vcxsrv. If not, see <http://www.gnu.org/licenses/>.
+*/
+;--------------------------------
+
+; The name of the installer
+Name "VcXsrv"
+
+; The file to write
+OutFile "vcxsrv.1.14.3.installer.exe"
+
+; The default installation directory
+InstallDir $PROGRAMFILES32\VcXsrv
+
+; Registry key to check for directory (so if you install again, it will
+; overwrite the old one automatically)
+InstallDirRegKey HKLM SOFTWARE\VcXsrv "Install_Dir"
+
+; Request application privileges for Windows Vista
+RequestExecutionLevel admin
+
+;--------------------------------
+InstType "Full"
+InstType "Minimal"
+
+; Pages
+
+Page components
+Page directory
+Page instfiles
+
+UninstPage uninstConfirm
+UninstPage instfiles
+
+SetPluginUnload alwaysoff
+; ShowInstDetails show
+XPStyle on
+
+!define FUSION_REFCOUNT_UNINSTALL_SUBKEY_GUID {8cedc215-ac4b-488b-93c0-a50a49cb2fb8}
+
+;--------------------------------
+; The stuff to install
+Section "VcXsrv (required)"
+
+ SectionIn RO
+ SectionIn 1 2 3
+
+ ; Set output path to the installation directory.
+ SetOutPath $INSTDIR
+
+ ; Remove old opengl32.dll file if it extits
+ IfFileExists "$INSTDIR\opengl32.dll" 0 +2
+ Delete "$INSTDIR\opengl32.dll"
+ IfFileExists "$INSTDIR\msvcr100.dll" 0 +2
+ Delete "$INSTDIR\msvcr100.dll"
+ IfFileExists "$INSTDIR\msvcp100.dll" 0 +2
+ Delete "$INSTDIR\msvcp100.dll"
+ IfFileExists "$INSTDIR\msvcr110.dll" 0 +2
+ Delete "$INSTDIR\msvcr110.dll"
+ IfFileExists "$INSTDIR\msvcp110.dll" 0 +2
+ Delete "$INSTDIR\msvcp110.dll"
+
+ ; Put files there
+ File "..\obj\servrelease\vcxsrv.exe"
+ File "..\dix\protocol.txt"
+ File "..\system.XWinrc"
+ File "..\..\xkbcomp\obj\release\xkbcomp.exe"
+ File "..\..\apps\xhost\obj\release\xhost.exe"
+ File "..\..\apps\xrdb\obj\release\xrdb.exe"
+ File "..\..\apps\xauth\obj\release\xauth.exe"
+ File "..\..\apps\xcalc\obj\release\xcalc.exe"
+ File "..\..\apps\xcalc\app-defaults\xcalc"
+ File "..\..\apps\xcalc\app-defaults\xcalc-color"
+ File "..\..\apps\xclock\obj\release\xclock.exe"
+ File "..\..\apps\xclock\app-defaults\xclock"
+ File "..\..\apps\xclock\app-defaults\xclock-color"
+ File "..\..\apps\xwininfo\obj\release\xwininfo.exe"
+ File "..\XKeysymDB"
+ File "..\..\libX11\src\XErrorDB"
+ File "..\..\libX11\src\xcms\Xcms.txt"
+ File "..\XtErrorDB"
+ File "..\.Xdefaults"
+ File "..\hw\xwin\xlaunch\obj\release\xlaunch.exe"
+ File "..\..\tools\plink\obj\release\plink.exe"
+ File "..\..\mesalib\windows\VC8\mesa\Win32\Release\swrast_dri.dll"
+ File "..\hw\xwin\swrastwgl_dri\obj\release\swrastwgl_dri.dll"
+ File "..\..\dxtn\obj\release\dxtn.dll"
+ File "..\..\libxml2\bin\libxml2-2.dll"
+ File "..\..\libxml2\bin\libgcc_s_sjlj-1.dll"
+ File "..\..\libxml2\bin\libiconv-2.dll"
+ File "..\..\libxml2\bin\libwinpthread-1.dll"
+ File "..\..\zlib\obj\release\zlib1.dll"
+ File "..\..\libxcb\src\obj\release\libxcb.dll"
+ File "..\..\libXau\obj\release\libXau.dll"
+ File "..\..\libX11\obj\release\libX11.dll"
+ File "..\..\libXext\src\obj\release\libXext.dll"
+ File "..\..\libXmu\src\obj\release\libXmu.dll"
+ File "msvcr120.dll"
+ File "msvcp120.dll"
+ SetOutPath $INSTDIR\xkbdata
+ File /r "..\xkbdata\*.*"
+ SetOutPath $INSTDIR\locale
+ File /r "..\locale\*.*"
+ SetOutPath $INSTDIR\bitmaps
+ File /r "..\bitmaps\*.*"
+
+ ; Write the installation path into the registry
+ WriteRegStr HKLM SOFTWARE\VcXsrv "Install_Dir" "$INSTDIR"
+
+ ; Write the uninstall keys for Windows
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VcXsrv" "DisplayName" "VcXsrv"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VcXsrv" "UninstallString" '"$INSTDIR\uninstall.exe"'
+ WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VcXsrv" "NoModify" 1
+ WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VcXsrv" "NoRepair" 1
+ WriteUninstaller "uninstall.exe"
+
+ ; Register the xlaunch file extension
+ WriteRegStr HKCR ".xlaunch" "" "XLaunchFile"
+ WriteRegStr HKCR "XLaunchFile" "" "XLaunch Configuration"
+ WriteRegStr HKCR "XLaunchFile\DefaultIcon" "" "$INSTDIR\xlaunch.exe,0"
+ WriteRegStr HKCR "XLaunchFile\shell" "" 'open'
+ WriteRegStr HKCR "XLaunchFile\shell\open\command" "" '"$INSTDIR\XLaunch.exe" -run "%1"'
+ WriteRegStr HKCR "XLaunchFile\shell\open\ddeexec\Application" "" "XLaunch"
+ WriteRegStr HKCR "XLaunchFile\shell\open\ddeexec\Topic" "" "System"
+ WriteRegStr HKCR "XLaunchFile\shell\edit\command" "" '"$INSTDIR\XLaunch.exe" -load "%1"'
+ WriteRegStr HKCR "XLaunchFile\shell\edit\ddeexec\Application" "" "XLaunch"
+ WriteRegStr HKCR "XLaunchFile\shell\edit\ddeexec\Topic" "" "System"
+ WriteRegStr HKCR "XLaunchFile\shell\Validate\command" "" '"$INSTDIR\XLaunch.exe" -validate "%1"'
+ WriteRegStr HKCR "XLaunchFile\shell\Validate\ddeexec\Application" "" "XLaunch"
+ WriteRegStr HKCR "XLaunchFile\shell\Validate\ddeexec\Topic" "" "System"
+
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell" "" 'open'
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell\open\command" "" '"$INSTDIR\XLaunch.exe" -run "%1"'
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell\open\ddeexec\Application" "" "XLaunch"
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell\open\ddeexec\Topic" "" "System"
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell\edit\command" "" '"$INSTDIR\XLaunch.exe" -load "%1"'
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell\edit\ddeexec\Application" "" "XLaunch"
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell\edit\ddeexec\Topic" "" "System"
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell\Validate\command" "" '"$INSTDIR\XLaunch.exe" -validate "%1"'
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell\Validate\ddeexec\Application" "" "XLaunch"
+ WriteRegStr HKCR "Applications\xlaunch.exe\shell\Validate\ddeexec\Topic" "" "System"
+
+SectionEnd
+
+; Optional section (can be disabled by the user)
+Section "Fonts"
+ SectionIn 1 3
+
+ SetOutPath $INSTDIR\fonts
+ CreateDirectory "$SMPROGRAMS\VcXsrv"
+ File /r "..\fonts\*.*"
+
+SectionEnd
+
+; Optional section (can be disabled by the user)
+Section "Start Menu Shortcuts"
+ SectionIn 1 3
+
+ SetOutPath $INSTDIR
+ CreateDirectory "$SMPROGRAMS\VcXsrv"
+ CreateShortCut "$SMPROGRAMS\VcXsrv\Uninstall VcXsrv.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
+ CreateShortCut "$SMPROGRAMS\VcXsrv\VcXsrv.lnk" "$INSTDIR\vcxsrv.exe" " :0 -ac -terminate -lesspointer -multiwindow -clipboard -wgl" "$INSTDIR\vcxsrv.exe" 0
+ CreateShortCut "$SMPROGRAMS\VcXsrv\XLaunch.lnk" "$INSTDIR\xlaunch.exe" "" "$INSTDIR\xlaunch.exe" 0
+
+SectionEnd
+
+; Optional section (can be disabled by the user)
+Section "Desktop Shortcuts"
+ SectionIn 1 3
+
+ SetOutPath $INSTDIR
+ CreateShortCut "$DESKTOP\VcXsrv.lnk" "$INSTDIR\vcxsrv.exe" " :0 -ac -terminate -lesspointer -multiwindow -clipboard -wgl" "$INSTDIR\vcxsrv.exe" 0
+ CreateShortCut "$DESKTOP\XLaunch.lnk" "$INSTDIR\xlaunch.exe" "" "$INSTDIR\xlaunch.exe" 0
+
+SectionEnd
+
+;--------------------------------
+
+; Uninstaller
+
+Section "Uninstall"
+
+ ; Remove registry keys
+ DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VcXsrv"
+ DeleteRegKey HKLM SOFTWARE\VcXsrv
+
+ ; Register the xlaunch file extension
+ DeleteRegKey HKCR ".xlaunch"
+ DeleteRegKey HKCR "XLaunchFile"
+ DeleteRegKey HKCR "Applications\xlaunch.exe"
+
+ ; Remove files and uninstaller
+ Delete "$INSTDIR\vcxsrv.exe"
+ Delete "$INSTDIR\uninstall.exe"
+ Delete "$INSTDIR\protocol.txt"
+ Delete "$INSTDIR\system.XWinrc"
+ Delete "$INSTDIR\xkbcomp.exe"
+ Delete "$INSTDIR\xcalc.exe"
+ Delete "$INSTDIR\xcalc"
+ Delete "$INSTDIR\xcalc-color"
+ Delete "$INSTDIR\xclock.exe"
+ Delete "$INSTDIR\xclock"
+ Delete "$INSTDIR\xclock-color"
+ Delete "$INSTDIR\xwininfo.exe"
+ Delete "$INSTDIR\XKeysymDB"
+ Delete "$INSTDIR\XErrorDB"
+ Delete "$INSTDIR\Xcms.txt"
+ Delete "$INSTDIR\XtErrorDB"
+ Delete "$INSTDIR\.Xdefaults"
+ Delete "$INSTDIR\xlaunch.exe"
+ Delete "$INSTDIR\plink.exe"
+ Delete "$INSTDIR\swrast_dri.dll"
+ Delete "$INSTDIR\dxtn.dll"
+ Delete "$INSTDIR\swrastwgl_dri.dll"
+ Delete "$INSTDIR\libxcb.dll"
+ Delete "$INSTDIR\libXau.dll"
+ Delete "$INSTDIR\libX11.dll"
+ Delete "$INSTDIR\libXext.dll"
+ Delete "$INSTDIR\libXmu.dll"
+ Delete "$INSTDIR\libxml2.dll"
+ Delete "$INSTDIR\zlib1.dll"
+ Delete "$INSTDIR\iconv.dll"
+ Delete "$INSTDIR\msvcr120.dll"
+ Delete "$INSTDIR\msvcp120.dll"
+ Delete "$INSTDIR\msvcr120d.dll"
+ Delete "$INSTDIR\msvcp120d.dll"
+
+ RMDir /r "$INSTDIR\fonts"
+ RMDir /r "$INSTDIR\xkbdata"
+ RMDir /r "$INSTDIR\locale"
+
+ ; Remove shortcuts, if any
+ Delete "$SMPROGRAMS\VcXsrv\*.*"
+ Delete "$DESKTOP\VcXsrv.lnk"
+ Delete "$DESKTOP\XLaunch.lnk"
+
+ ; Remove directories used
+ RMDir "$SMPROGRAMS\VcXsrv"
+ RMDir "$INSTDIR"
+
+SectionEnd
diff --git a/xorg-server/makefile b/xorg-server/makefile
new file mode 100644
index 000000000..2e441e4a5
--- /dev/null
+++ b/xorg-server/makefile
@@ -0,0 +1,109 @@
+ifneq ($(MAKESERVER),1)
+$(error Please specify MAKESERVER=1 on the command line or as environment variable)
+endif
+
+INCLUDELIBFILES = \
+ composite\$(OBJDIR)\libcomposite.lib \
+ config\$(OBJDIR)\libconfig.lib \
+ damageext\$(OBJDIR)\libdamageext.lib \
+ dbe\$(OBJDIR)\libdbe.lib \
+ dix\$(OBJDIR)\libdix.lib \
+ fb\$(OBJDIR)\libfb.lib \
+ glx\$(OBJDIR)\libglx.lib \
+ hw\xwin\$(OBJDIR)\libXWin.lib \
+ hw\xwin\glx\$(OBJDIR)\libwinglx.lib \
+ mi\$(OBJDIR)\libmi.lib \
+ miext\damage\$(OBJDIR)\libdamage.lib \
+ miext\shadow\$(OBJDIR)\libshadow.lib \
+ miext\sync\$(OBJDIR)\libsync.lib \
+ miext\rootless\$(OBJDIR)\librootless.lib \
+ os\$(OBJDIR)\libos.lib \
+ randr\$(OBJDIR)\librandr.lib \
+ record\$(OBJDIR)\librecord.lib \
+ Xext\$(OBJDIR)\libxext.lib \
+ xfixes\$(OBJDIR)\libxfixes.lib \
+ Xi\$(OBJDIR)\libXi.lib \
+ xkb\$(OBJDIR)\libxkb.lib \
+ render\$(OBJDIR)\librender.lib \
+ present\$(OBJDIR)\libpresent.lib
+
+INCLUDENOSERVLIBFILES = \
+ $(MHMAKECONF)\libX11\$(NOSERVOBJDIR)\libX11.lib \
+ $(MHMAKECONF)\libxcb\src\$(NOSERVOBJDIR)\libxcb.lib \
+ $(MHMAKECONF)\pixman\pixman\$(NOSERVOBJDIR)\libpixman-1.lib \
+ $(MHMAKECONF)\libXdmcp\$(NOSERVOBJDIR)\libXdmcp.lib \
+ $(MHMAKECONF)\libXau\$(NOSERVOBJDIR)\libXau.lib \
+ $(MHMAKECONF)\libXfont\src\util\$(NOSERVOBJDIR)\libutil.lib \
+ $(MHMAKECONF)\libXfont\src\fc\$(NOSERVOBJDIR)\libfc.lib \
+ $(MHMAKECONF)\libXfont\src\fontfile\$(NOSERVOBJDIR)\libfontfile.lib \
+ $(MHMAKECONF)\libXfont\src\builtins\$(NOSERVOBJDIR)\libbuiltins.lib \
+ $(MHMAKECONF)\libXfont\src\bitmap\$(NOSERVOBJDIR)\libbitmap.lib \
+ $(MHMAKECONF)\libXfont\src\freetype\$(NOSERVOBJDIR)\libft.lib \
+ $(MHMAKECONF)\libXfont\src\stubs\$(NOSERVOBJDIR)\libstubs.lib \
+ $(MHMAKECONF)\libfontenc\src\$(NOSERVOBJDIR)\libfontenc.lib \
+ $(MHMAKECONF)\libXinerama\src\$(NOSERVOBJDIR)\libXinerama.lib \
+ $(MHMAKECONF)\zlib\$(NOSERVOBJDIR)\zlib1.lib
+
+LIBDIRS=$(dir $(INCLUDELIBFILES))
+NOSERVLIBDIRS=$(dir $(INCLUDENOSERVLIBFILES))
+
+load_makefile $(LIBDIRS:%$(OBJDIR)\=%makefile MAKESERVER=$(MAKESERVER) DEBUG=$(DEBUG);)
+load_makefile $(NOSERVLIBDIRS:%$(NOSERVOBJDIR)\=%makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+OBJS = dix\$(OBJDIR)\main.obj
+
+LINKLIBS += $(PTHREADLIB) $(FREETYPELIB) $(OPENSSLLIB)
+
+ifeq ($(DEBUG),1)
+TTYAPP=vcxsrv
+APP:=$(TTYAPP)
+else
+WINAPP=vcxsrv
+APP:=$(WINAPP)
+endif
+
+RCINCLUDES += include hw\xwin $(MHMAKECONF)\include $(MHMAKECONF)
+
+XWin.rc: hw\xwin\XWin.rc
+ copy $< $@
+
+RESOURCES = XWin.rc
+
+$(OBJDIR)\$(APP).exe: $(LINKLIBS)
+
+load_makefile fonts.src\makefile MAKESERVER=0 DEBUG=0
+load_makefile xkeyboard-config\makefile MAKESERVER=0 DEBUG=0
+
+EXTRASTOBUILD = \
+ hw\xwin\xlaunch\$(NOSERVOBJDIR)\xlaunch.exe \
+ ..\xkbcomp\$(NOSERVOBJDIR)\xkbcomp.exe \
+ ..\apps\xcalc\$(NOSERVOBJDIR)\xcalc.exe \
+ ..\apps\xclock\$(NOSERVOBJDIR)\xclock.exe \
+ ..\apps\xwininfo\$(NOSERVOBJDIR)\xwininfo.exe \
+ ..\apps\xhost\$(NOSERVOBJDIR)\xhost.exe \
+ ..\apps\xrdb\$(NOSERVOBJDIR)\xrdb.exe \
+ ..\apps\xauth\$(NOSERVOBJDIR)\xauth.exe \
+ ..\tools\plink\$(NOSERVOBJDIR)\plink.exe \
+ hw\xwin\swrastwgl_dri\$(NOSERVOBJDIR)\swrastwgl_dri.dll \
+ ..\dxtn\$(NOSERVOBJDIR)\dxtn.dll
+
+EXTRASTOBUILDDIRS=$(dir $(EXTRASTOBUILD))
+
+load_makefile $(EXTRASTOBUILDDIRS:%$(NOSERVOBJDIR)\=%makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+all: $(EXTRASTOBUILD)
+
+load_makefile ..\mesalib\windows\VC8\mesa\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+ifdef IS64
+TARGETDIR=x64
+else
+TARGETDIR=Win32
+endif
+
+ifeq ($(DEBUG),1)
+all: ..\mesalib\windows\VC8\mesa\$(TARGETDIR)\Debug\swrast_dri.dll
+else
+all: ..\mesalib\windows\VC8\mesa\$(TARGETDIR)\Release\swrast_dri.dll
+endif
+
+all: fonts.src\all xkeyboard-config\all
+
diff --git a/xorg-server/mi/makefile b/xorg-server/mi/makefile
new file mode 100644
index 000000000..7067c62e8
--- /dev/null
+++ b/xorg-server/mi/makefile
@@ -0,0 +1,39 @@
+CSRCS=miarc.c \
+ mibitblt.c \
+ micmap.c \
+ micopy.c \
+ micursor.c \
+ midash.c \
+ midispcur.c \
+ mieq.c \
+ miexpose.c \
+ mifillarc.c \
+ mifillrct.c \
+ mifpolycon.c \
+ migc.c \
+ miglblt.c \
+ mioverlay.c \
+ mipointer.c \
+ mipoly.c \
+ mipolycon.c \
+ mipolygen.c \
+ mipolypnt.c \
+ mipolyrect.c \
+ mipolyseg.c \
+ mipolytext.c \
+ mipolyutil.c \
+ mipushpxl.c \
+ miscrinit.c \
+ mispans.c \
+ misprite.c \
+ mivaltree.c \
+ miwideline.c \
+ miwindow.c \
+ mizerarc.c \
+ mizerclip.c \
+ mizerline.c \
+ miinitext.c
+
+LIBRARY=libmi
+
+
diff --git a/xorg-server/mi/miarc.c b/xorg-server/mi/miarc.c
index 0f6448bc1..edb80bfe3 100644
--- a/xorg-server/mi/miarc.c
+++ b/xorg-server/mi/miarc.c
@@ -63,6 +63,11 @@ SOFTWARE.
#include "mifillarc.h"
#include <X11/Xfuncproto.h>
+#ifdef _MSC_VER
+#define hypot _hypot
+#define HAVE_CBRT
+#endif
+
static double miDsin(double a);
static double miDcos(double a);
static double miDasin(double v);
diff --git a/xorg-server/mi/micmap.c b/xorg-server/mi/micmap.c
index 3ef0c8c70..90ca85d67 100644
--- a/xorg-server/mi/micmap.c
+++ b/xorg-server/mi/micmap.c
@@ -118,17 +118,26 @@ miInitializeColormap(ColormapPtr pmap)
unsigned limr, limg, limb;
limr = pVisual->redMask >> pVisual->offsetRed;
- limg = pVisual->greenMask >> pVisual->offsetGreen;
- limb = pVisual->blueMask >> pVisual->offsetBlue;
- for (i = 0; i <= maxent; i++) {
+ for(i = 0; i <= min(limr,maxent); i++) {
/* rescale to [0..65535] then rgb bits */
pmap->red[i].co.local.red =
((((i * 65535) / limr) >> shift) * 65535) / lim;
+ }
+ for(; i <= maxent; i++) pmap->red[i].co.local.red = 65535;
+ limg = pVisual->greenMask >> pVisual->offsetGreen;
+ for(i = 0; i <= min(limg,maxent); i++) {
+ /* rescale to [0..65535] then rgb bits */
pmap->green[i].co.local.green =
((((i * 65535) / limg) >> shift) * 65535) / lim;
+ }
+ for(; i <= maxent; i++) pmap->green[i].co.local.green = 65535;
+ limb = pVisual->blueMask >> pVisual->offsetBlue;
+ for(i = 0; i <= min(limb,maxent); i++) {
+ /* rescale to [0..65535] then rgb bits */
pmap->blue[i].co.local.blue =
((((i * 65535) / limb) >> shift) * 65535) / lim;
}
+ for(; i <= maxent; i++) pmap->blue[i].co.local.blue = 65535;
}
else if (pVisual->class == StaticColor) {
unsigned limr, limg, limb;
diff --git a/xorg-server/mi/micoord.h b/xorg-server/mi/micoord.h
index 481e418c5..c6fa41d53 100644
--- a/xorg-server/mi/micoord.h
+++ b/xorg-server/mi/micoord.h
@@ -55,14 +55,14 @@
#endif
#if IMAGE_BYTE_ORDER == MSBFirst
-#define intToCoord(i,x,y) (((x) = GetHighWord(i)), ((y) = (int) ((short) (i))))
+#define intToCoord(i,x,y) (((x) = GetHighWord(i)), ((y) = (int) ((short) ((i)&0xffff))))
#define coordToInt(x,y) (((x) << 16) | ((y) & 0xffff))
#define intToX(i) (GetHighWord(i))
-#define intToY(i) ((int) ((short) i))
+#define intToY(i) ((int) ((short) ((i)&0xffff)))
#else
-#define intToCoord(i,x,y) (((x) = (int) ((short) (i))), ((y) = GetHighWord(i)))
+#define intToCoord(i,x,y) (((x) = (int) ((short) ((i)&0xffff))), ((y) = GetHighWord(i)))
#define coordToInt(x,y) (((y) << 16) | ((x) & 0xffff))
-#define intToX(i) ((int) ((short) (i)))
+#define intToX(i) ((int) ((short) ((i)&0xffff)))
#define intToY(i) (GetHighWord(i))
#endif
diff --git a/xorg-server/mi/mieq.c b/xorg-server/mi/mieq.c
index 4c0748054..b2f8bcf1e 100644
--- a/xorg-server/mi/mieq.c
+++ b/xorg-server/mi/mieq.c
@@ -60,7 +60,7 @@ in this Software without prior written authorization from The Open Group.
#endif
/* Maximum size should be initial size multiplied by a power of 2 */
-#define QUEUE_INITIAL_SIZE 512
+#define QUEUE_INITIAL_SIZE 1024
#define QUEUE_RESERVED_SIZE 64
#define QUEUE_MAXIMUM_SIZE 4096
#define QUEUE_DROP_BACKTRACE_FREQUENCY 100
@@ -572,7 +572,7 @@ mieqProcessInputEvents(void)
{
EventRec *e = NULL;
ScreenPtr screen;
- static InternalEvent event;
+ InternalEvent event;
DeviceIntPtr dev = NULL, master = NULL;
size_t n_enqueued;
diff --git a/xorg-server/mi/miexpose.c b/xorg-server/mi/miexpose.c
index 8b7c93fb8..791687245 100644
--- a/xorg-server/mi/miexpose.c
+++ b/xorg-server/mi/miexpose.c
@@ -349,11 +349,11 @@ miSendGraphicsExpose(ClientPtr client, RegionPtr pRgn, XID drawable,
free(pEvent);
}
else {
- xEvent event = {
- .u.noExposure.drawable = drawable,
- .u.noExposure.majorEvent = major,
- .u.noExposure.minorEvent = minor
- };
+ xEvent event; memset(&event, 0, sizeof(xEvent));
+ event.u.noExposure.drawable = drawable;
+ event.u.noExposure.majorEvent = major;
+ event.u.noExposure.minorEvent = minor;
+
event.u.u.type = NoExpose;
WriteEventsToClient(client, 1, &event);
}
diff --git a/xorg-server/mi/miinitext.c b/xorg-server/mi/miinitext.c
index 67511b8d0..e5648724c 100644
--- a/xorg-server/mi/miinitext.c
+++ b/xorg-server/mi/miinitext.c
@@ -234,7 +234,7 @@ EnableDisableExtensionError(const char *name, Bool enable)
}
/* List of built-in (statically linked) extensions */
-static ExtensionModule staticExtensions[] = {
+static const ExtensionModule staticExtensions[] = {
{GEExtensionInit, "Generic Event Extension", &noGEExtension},
{ShapeExtensionInit, "SHAPE", NULL},
#ifdef MITSHM
diff --git a/xorg-server/mi/mioverlay.c b/xorg-server/mi/mioverlay.c
index 2bfd5e401..14cd14ccb 100644
--- a/xorg-server/mi/mioverlay.c
+++ b/xorg-server/mi/mioverlay.c
@@ -3,6 +3,10 @@
#include <dix-config.h>
#endif
+#ifdef CreateWindow
+#undef CreateWindow
+#endif
+
#include <X11/X.h>
#include "scrnintstr.h"
#include <X11/extensions/shapeproto.h>
diff --git a/xorg-server/mi/misprite.c b/xorg-server/mi/misprite.c
index 85ca022ed..bbd097b4f 100644
--- a/xorg-server/mi/misprite.c
+++ b/xorg-server/mi/misprite.c
@@ -466,7 +466,7 @@ miSpriteSourceValidate(DrawablePtr pDrawable, int x, int y, int width,
for (pDev = inputInfo.devices; pDev; pDev = pDev->next) {
if (DevHasCursor(pDev)) {
pCursorInfo = MISPRITE(pDev);
- if (pCursorInfo->isUp && pCursorInfo->pScreen == pScreen &&
+ if (pCursorInfo && pCursorInfo->isUp && pCursorInfo->pScreen == pScreen &&
ORG_OVERLAP(&pCursorInfo->saved, pDrawable->x, pDrawable->y,
x, y, width, height)) {
SPRITE_DEBUG(("SourceValidate remove\n"));
@@ -499,7 +499,7 @@ miSpriteCopyWindow(WindowPtr pWindow, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
/*
* Damage will take care of destination check
*/
- if (pCursorInfo->isUp && pCursorInfo->pScreen == pScreen &&
+ if (pCursorInfo && pCursorInfo->isUp && pCursorInfo->pScreen == pScreen &&
RegionContainsRect(prgnSrc, &pCursorInfo->saved) != rgnOUT) {
SPRITE_DEBUG(("CopyWindow remove\n"));
miSpriteRemoveCursor(pDev, pScreen);
@@ -574,9 +574,12 @@ miSpriteInstallColormap(ColormapPtr pMap)
for (pDev = inputInfo.devices; pDev; pDev = pDev->next) {
if (DevHasCursor(pDev)) {
pCursorInfo = MISPRITE(pDev);
- pCursorInfo->checkPixels = TRUE;
- if (pCursorInfo->isUp && pCursorInfo->pScreen == pScreen)
- miSpriteRemoveCursor(pDev, pScreen);
+ if (pCursorInfo)
+ {
+ pCursorInfo->checkPixels = TRUE;
+ if (pCursorInfo->isUp && pCursorInfo->pScreen == pScreen)
+ miSpriteRemoveCursor(pDev, pScreen);
+ }
}
}
diff --git a/xorg-server/mi/mivaltree.c b/xorg-server/mi/mivaltree.c
index c1cc43122..88f9a4084 100644
--- a/xorg-server/mi/mivaltree.c
+++ b/xorg-server/mi/mivaltree.c
@@ -286,6 +286,9 @@ miComputeClips(WindowPtr pParent,
eventMask | wOtherEventMasks(pParent)) & VisibilityChangeMask))
SendVisibilityNotify(pParent);
+ if (pParent->valdata==UnmapValData)
+ return; // return if no valid valdata
+
dx = pParent->drawable.x - pParent->valdata->before.oldAbsCorner.x;
dy = pParent->drawable.y - pParent->valdata->before.oldAbsCorner.y;
@@ -718,9 +721,11 @@ miValidateTree(WindowPtr pParent, /* Parent to validate */
RegionUninit(&childUnion);
}
- RegionNull(&pParent->valdata->after.exposed);
- RegionNull(&pParent->valdata->after.borderExposed);
-
+ if (pParent->valdata && pParent->valdata!=UnmapValData)
+ {
+ RegionNull(&pParent->valdata->after.exposed);
+ RegionNull(&pParent->valdata->after.borderExposed);
+ }
/*
* each case below is responsible for updating the
* clipList and serial number for the parent window
@@ -735,8 +740,9 @@ miValidateTree(WindowPtr pParent, /* Parent to validate */
* exposures and obscures as per miComputeClips and reset the parent's
* clipList.
*/
- RegionSubtract(&pParent->valdata->after.exposed,
- &totalClip, &pParent->clipList);
+ if (pParent->valdata && pParent->valdata!=UnmapValData)
+ RegionSubtract(&pParent->valdata->after.exposed,
+ &totalClip, &pParent->clipList);
/* fall through */
case VTMap:
RegionCopy(&pParent->clipList, &totalClip);
diff --git a/xorg-server/mi/miwideline.c b/xorg-server/mi/miwideline.c
index b76e7a818..ff64ab5d4 100644
--- a/xorg-server/mi/miwideline.c
+++ b/xorg-server/mi/miwideline.c
@@ -45,6 +45,10 @@ from The Open Group.
#include <math.h>
#undef _XOPEN_SOURCE
#endif
+#ifdef _MSC_VER
+#define hypot _hypot
+#endif
+
#include <X11/X.h>
#include "windowstr.h"
#include "gcstruct.h"
diff --git a/xorg-server/mi/miwindow.c b/xorg-server/mi/miwindow.c
index 8dd99dbf0..e341b79de 100644
--- a/xorg-server/mi/miwindow.c
+++ b/xorg-server/mi/miwindow.c
@@ -216,7 +216,7 @@ miHandleValidateExposures(WindowPtr pWin)
pChild = pWin;
WindowExposures = pChild->drawable.pScreen->WindowExposures;
while (1) {
- if ((val = pChild->valdata)) {
+ if ( (val = pChild->valdata) && val!=UnmapValData) {
if (RegionNotEmpty(&val->after.borderExposed))
miPaintWindow(pChild, &val->after.borderExposed, PW_BORDER);
RegionUninit(&val->after.borderExposed);
diff --git a/xorg-server/miext/damage/damage.c b/xorg-server/miext/damage/damage.c
index 173fe5070..07c0579b4 100644
--- a/xorg-server/miext/damage/damage.c
+++ b/xorg-server/miext/damage/damage.c
@@ -1171,9 +1171,9 @@ damagePolyFillRect(DrawablePtr pDrawable,
int nRectsTmp = nRects;
box.x1 = pRectsTmp->x;
- box.x2 = box.x1 + pRectsTmp->width;
+ box.x2 = box.x1 + (short)pRectsTmp->width;
box.y1 = pRectsTmp->y;
- box.y2 = box.y1 + pRectsTmp->height;
+ box.y2 = box.y1 + (short)pRectsTmp->height;
while (--nRectsTmp) {
pRectsTmp++;
@@ -1876,7 +1876,7 @@ DamageRegionProcessPending(DrawablePtr pDrawable)
/* This call is very odd, i'm leaving it intact for API sake, but please don't use it. */
void
-DamageDamageRegion(DrawablePtr pDrawable, RegionPtr pRegion)
+DamageDamageRegion(DrawablePtr pDrawable, const RegionPtr pRegion)
{
damageRegionAppend(pDrawable, pRegion, FALSE, -1);
diff --git a/xorg-server/miext/damage/makefile b/xorg-server/miext/damage/makefile
new file mode 100644
index 000000000..e58f4a883
--- /dev/null
+++ b/xorg-server/miext/damage/makefile
@@ -0,0 +1,7 @@
+LIBRARY = libdamage
+
+#INCLUDES = -I$(srcdir)/../cw -I$(top_srcdir)/hw/xfree86/os-support
+
+CSRCS =damage.c
+
+
diff --git a/xorg-server/miext/rootless/makefile b/xorg-server/miext/rootless/makefile
new file mode 100644
index 000000000..d49e810a2
--- /dev/null
+++ b/xorg-server/miext/rootless/makefile
@@ -0,0 +1,10 @@
+LIBRARY=librootless
+
+librootless_la_SOURCES = \
+ rootlessCommon.c \
+ rootlessGC.c \
+ rootlessScreen.c \
+ rootlessValTree.c \
+ rootlessWindow.c
+
+CSRCS = $(filter %.c,$(librootless_la_SOURCES))
diff --git a/xorg-server/miext/rootless/rootlessGC.c b/xorg-server/miext/rootless/rootlessGC.c
index 932899591..526709350 100644
--- a/xorg-server/miext/rootless/rootlessGC.c
+++ b/xorg-server/miext/rootless/rootlessGC.c
@@ -49,6 +49,9 @@
#include "rootlessCommon.h"
+#ifdef _MSC_VER
+#define inline __inline
+#endif
// GC functions
static void RootlessValidateGC(GCPtr pGC, unsigned long changes,
DrawablePtr pDrawable);
diff --git a/xorg-server/miext/rootless/rootlessWindow.c b/xorg-server/miext/rootless/rootlessWindow.c
index 7e3c28130..cf1611c1e 100644
--- a/xorg-server/miext/rootless/rootlessWindow.c
+++ b/xorg-server/miext/rootless/rootlessWindow.c
@@ -51,6 +51,12 @@ extern Bool no_configure_window;
#include "rootlessCommon.h"
#include "rootlessWindow.h"
+#ifdef _MSC_VER
+#define inline __inline
+#include "xplugin.h"
+extern int darwinMainScreenX, darwinMainScreenY;
+#endif
+
#define SCREEN_TO_GLOBAL_X \
(pScreen->x + rootlessGlobalOffsetX)
#define SCREEN_TO_GLOBAL_Y \
@@ -995,6 +1001,7 @@ StartFrameResize(WindowPtr pWin, Bool gravity,
}
else if (gravity) {
/* The general case. Just copy everything. */
+ BoxRec tmpBoxRec={oldX, oldY, oldX2, oldY2};
RootlessStartDrawing(pWin);
@@ -1003,8 +1010,7 @@ StartFrameResize(WindowPtr pWin, Bool gravity,
memcpy(gResizeDeathBits, winRec->pixelData,
winRec->bytesPerRow * winRec->height);
- gResizeDeathBounds[0] = (BoxRec) {
- oldX, oldY, oldX2, oldY2};
+ gResizeDeathBounds[0] = tmpBoxRec;
gResizeDeathPix[0]
= GetScratchPixmapHeader(pScreen, winRec->width,
winRec->height,
@@ -1041,8 +1047,8 @@ StartFrameResize(WindowPtr pWin, Bool gravity,
window bits. */
if (need_window_source) {
- gResizeDeathBounds[0] = (BoxRec) {
- oldX, oldY, oldX2, oldY2};
+ BoxRec tmpBoxRec={oldX, oldY, oldX2, oldY2};
+ gResizeDeathBounds[0] = tmpBoxRec;
gResizeDeathPix[0]
= GetScratchPixmapHeader(pScreen, oldW, oldH,
winRec->win->drawable.depth,
diff --git a/xorg-server/miext/rootless/xplugin.h b/xorg-server/miext/rootless/xplugin.h
new file mode 100644
index 000000000..7fdf6006e
--- /dev/null
+++ b/xorg-server/miext/rootless/xplugin.h
@@ -0,0 +1,592 @@
+/* Xplugin.h -- windowing API for rootless X11 server
+ $Id$
+
+ Copyright (c) 2002 Apple Computer, Inc. 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 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:
+
+ The above copyright notice and this permission notice 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
+ NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT
+ HOLDER(S) 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.
+
+ Except as contained in this notice, the name(s) of the above
+ copyright holders shall not be used in advertising or otherwise to
+ promote the sale, use or other dealings in this Software without
+ prior written authorization.
+
+ Note that these interfaces are provided solely for the use of the
+ X11 server. Any other uses are unsupported and strongly discouraged. */
+/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/Xplugin.h,v 1.2 2003/05/02 00:08:49 torrey Exp $ */
+
+#ifndef XPLUGIN_H
+#define XPLUGIN_H 1
+
+#include <stdint.h>
+
+/* By default we use the X server definition of BoxRec to define xp_box,
+ so that the compiler can silently convert between the two. But if
+ XP_NO_X_HEADERS is defined, we'll define it ourselves. */
+
+#ifndef XP_NO_X_HEADERS
+# include "miscstruct.h"
+ typedef BoxRec xp_box;
+#else
+ struct xp_box_struct {
+ short x1, y1, x2, y2;
+ };
+ typedef struct xp_box_struct xp_box;
+#endif
+
+typedef unsigned int xp_resource_id;
+typedef xp_resource_id xp_window_id;
+typedef xp_resource_id xp_surface_id;
+typedef unsigned int xp_client_id;
+typedef unsigned int xp_request_type;
+typedef int xp_error;
+typedef int xp_bool;
+
+
+/* Error codes that the functions declared here may return. They all
+ numerically match their X equivalents, i.e. the XP_ can be dropped
+ if <X11/X.h> has been included. */
+
+enum xp_error_enum {
+ XP_Success = 0,
+ XP_BadRequest = 1,
+ XP_BadValue = 2,
+ XP_BadWindow = 3,
+ XP_BadMatch = 8,
+ XP_BadAccess = 10,
+ XP_BadImplementation = 17,
+};
+
+
+/* Event types generated by the plugin. */
+
+enum xp_event_type_enum {
+ /* The global display configuration changed somehow. */
+ XP_EVENT_DISPLAY_CHANGED = 1 << 0,
+
+ /* A window changed state. Argument is xp_window_state_event */
+ XP_EVENT_WINDOW_STATE_CHANGED = 1 << 1,
+
+ /* An async request encountered an error. Argument is of type
+ xp_async_error_event */
+ XP_EVENT_ASYNC_ERROR = 1 << 2,
+
+ /* Sent when a surface is destroyed as a side effect of destroying
+ a window. Arg is of type xp_surface_id. */
+ XP_EVENT_SURFACE_DESTROYED = 1 << 3,
+
+ /* Sent when any GL contexts pointing at the given surface need to
+ call xp_update_gl_context () to refresh their state (because the
+ window moved or was resized. Arg is of type xp_surface_id. */
+ XP_EVENT_SURFACE_CHANGED = 1 << 4,
+
+ /* Sent when a window has been moved. Arg is of type xp_window_id. */
+ XP_EVENT_WINDOW_MOVED = 1 << 5,
+};
+
+/* Function type used to receive events. */
+
+typedef void (xp_event_fun) (unsigned int type, const void *arg,
+ unsigned int arg_size, void *user_data);
+
+
+/* Operation types. Used when reporting errors asynchronously. */
+
+enum xp_request_type_enum {
+ XP_REQUEST_NIL = 0,
+ XP_REQUEST_DESTROY_WINDOW = 1,
+ XP_REQUEST_CONFIGURE_WINDOW = 2,
+ XP_REQUEST_FLUSH_WINDOW = 3,
+ XP_REQUEST_COPY_WINDOW = 4,
+ XP_REQUEST_UNLOCK_WINDOW = 5,
+ XP_REQUEST_DISABLE_UPDATE = 6,
+ XP_REQUEST_REENABLE_UPDATE = 7,
+ XP_REQUEST_HIDE_CURSOR = 8,
+ XP_REQUEST_SHOW_CURSOR = 9,
+ XP_REQUEST_FRAME_DRAW = 10,
+};
+
+/* Structure used to report an error asynchronously. Passed as the "arg"
+ of an XP_EVENT_ASYNC_ERROR event. */
+
+struct xp_async_error_event_struct {
+ xp_request_type request_type;
+ xp_resource_id id;
+ xp_error error;
+};
+
+typedef struct xp_async_error_event_struct xp_async_error_event;
+
+
+/* Possible window states. */
+
+enum xp_window_state_enum {
+ /* The window is not in the global list of possibly-visible windows. */
+ XP_WINDOW_STATE_OFFSCREEN = 1 << 0,
+
+ /* Parts of the window may be obscured by other windows. */
+ XP_WINDOW_STATE_OBSCURED = 1 << 1,
+};
+
+/* Structure passed as argument of an XP_EVENT_WINDOW_STATE_CHANGED event. */
+
+struct xp_window_state_event_struct {
+ xp_window_id id;
+ unsigned int state;
+};
+
+typedef struct xp_window_state_event_struct xp_window_state_event;
+
+
+/* Function type used to supply a colormap for indexed drawables. */
+
+typedef xp_error (xp_colormap_fun) (void *data, int first_color,
+ int n_colors, uint32_t *colors);
+
+
+/* Window attributes structure. Used when creating and configuring windows.
+ Also used when configuring surfaces attached to windows. Functions that
+ take one of these structures also take a bit mask defining which
+ fields are set to meaningful values. */
+
+enum xp_window_changes_enum {
+ XP_ORIGIN = 1 << 0,
+ XP_SIZE = 1 << 1,
+ XP_BOUNDS = XP_ORIGIN | XP_SIZE,
+ XP_SHAPE = 1 << 2,
+ XP_STACKING = 1 << 3,
+ XP_DEPTH = 1 << 4,
+ XP_COLORMAP = 1 << 5,
+ XP_WINDOW_LEVEL = 1 << 6,
+};
+
+struct xp_window_changes_struct {
+ /* XP_ORIGIN */
+ int x, y;
+
+ /* XP_SIZE */
+ unsigned int width, height;
+ int bit_gravity; /* how to resize the backing store */
+
+ /* XP_SHAPE */
+ int shape_nrects; /* -1 = remove shape */
+ xp_box *shape_rects;
+ int shape_tx, shape_ty; /* translation for shape */
+
+ /* XP_STACKING */
+ int stack_mode;
+ xp_window_id sibling; /* may be zero; in ABOVE/BELOW modes
+ it may specify a relative window */
+ /* XP_DEPTH, window-only */
+ unsigned int depth;
+
+ /* XP_COLORMAP, window-only */
+ xp_colormap_fun *colormap;
+ void *colormap_data;
+
+ /* XP_WINDOW_LEVEL, window-only */
+ int window_level;
+};
+
+typedef struct xp_window_changes_struct xp_window_changes;
+
+/* Values for bit_gravity field */
+
+enum xp_bit_gravity_enum {
+ XP_GRAVITY_NONE = 0, /* no gravity, fill everything */
+ XP_GRAVITY_NORTH_WEST = 1, /* anchor to top-left corner */
+ XP_GRAVITY_NORTH_EAST = 2, /* anchor to top-right corner */
+ XP_GRAVITY_SOUTH_EAST = 3, /* anchor to bottom-right corner */
+ XP_GRAVITY_SOUTH_WEST = 4, /* anchor to bottom-left corner */
+};
+
+/* Values for stack_mode field */
+
+enum xp_window_stack_mode_enum {
+ XP_UNMAPPED = 0, /* remove the window */
+ XP_MAPPED_ABOVE = 1, /* display the window on top */
+ XP_MAPPED_BELOW = 2, /* display the window at bottom */
+};
+
+/* Data formats for depth field and composite functions */
+
+enum xp_depth_enum {
+ XP_DEPTH_NIL = 0, /* null source when compositing */
+ XP_DEPTH_ARGB8888,
+ XP_DEPTH_RGB555,
+ XP_DEPTH_A8, /* for masks when compositing */
+ XP_DEPTH_INDEX8,
+};
+
+/* Options that may be passed to the xp_init () function. */
+
+enum xp_init_options_enum {
+ /* Don't mark that this process can be in the foreground. */
+ XP_IN_BACKGROUND = 1 << 0,
+
+ /* Deliver background pointer events to this process. */
+ XP_BACKGROUND_EVENTS = 1 << 1,
+};
+
+
+
+/* Miscellaneous functions */
+
+/* Initialize the plugin library. Only the copy/fill/composite functions
+ may be called without having previously called xp_init () */
+
+extern xp_error xp_init (unsigned int options);
+
+/* Sets the current set of requested notifications to MASK. When any of
+ these arrive, CALLBACK will be invoked with CALLBACK-DATA. Note that
+ calling this function cancels any previously requested notifications
+ that aren't set in MASK. */
+
+extern xp_error xp_select_events (unsigned int mask,
+ xp_event_fun *callback,
+ void *callback_data);
+
+/* Waits for all initiated operations to complete. */
+
+extern xp_error xp_synchronize (void);
+
+/* Causes any display update initiated through the plugin libary to be
+ queued until update is reenabled. Note that calls to these functions
+ nest. */
+
+extern xp_error xp_disable_update (void);
+extern xp_error xp_reenable_update (void);
+
+
+
+/* Cursor functions. */
+
+/* Installs the specified cursor. ARGB-DATA should point to 32-bit
+ premultiplied big-endian ARGB data. The HOT-X,HOT-Y parameters
+ specify the offset to the cursor's hot spot from its top-left
+ corner. */
+
+extern xp_error xp_set_cursor (unsigned int width, unsigned int height,
+ unsigned int hot_x, unsigned int hot_y,
+ const uint32_t *argb_data,
+ unsigned int rowbytes);
+
+/* Hide and show the cursor if it's owned by the current process. Calls
+ to these functions nest. */
+
+extern xp_error xp_hide_cursor (void);
+extern xp_error xp_show_cursor (void);
+
+
+
+/* Window functions. */
+
+/* Create a new window as defined by MASK and VALUES. MASK must contain
+ XP_BOUNDS or an error is raised. The id of the newly created window
+ is stored in *RET-ID if this function returns XP_Success. */
+
+extern xp_error xp_create_window (unsigned int mask,
+ const xp_window_changes *values,
+ xp_window_id *ret_id);
+
+/* Destroys the window identified by ID. */
+
+extern xp_error xp_destroy_window (xp_window_id id);
+
+/* Reconfigures the given window according to MASK and VALUES. */
+
+extern xp_error xp_configure_window (xp_window_id id, unsigned int mask,
+ const xp_window_changes *values);
+
+
+/* Returns true if NATIVE-ID is a window created by the plugin library.
+ If so and RET-ID is non-null, stores the id of the window in *RET-ID. */
+
+extern xp_bool xp_lookup_native_window (unsigned int native_id,
+ xp_window_id *ret_id);
+
+/* If ID names a window created by the plugin library, stores it's native
+ window id in *RET-NATIVE-ID. */
+
+extern xp_error xp_get_native_window (xp_window_id id,
+ unsigned int *ret_native_id);
+
+
+/* Locks the rectangle IN-RECT (or, if null, the entire window) of the
+ given window's backing store. Any other non-null parameters are filled
+ in as follows:
+
+ DEPTH = format of returned data. Currently either XP_DEPTH_ARGB8888
+ or XP_DEPTH_RGB565 (possibly with 8 bit planar alpha). Data is
+ always stored in native byte order.
+
+ BITS[0] = pointer to top-left pixel of locked color data
+ BITS[1] = pointer to top-left of locked alpha data, or null if window
+ has no alpha. If the alpha data is meshed, then BITS[1] = BITS[0].
+
+ ROWBYTES[0,1] = size in bytes of each row of color,alpha data
+
+ OUT-RECT = rectangle specifying the current position and size of the
+ locked region relative to the window origin.
+
+ Note that an error is raised when trying to lock an already locked
+ window. While the window is locked, the only operations that may
+ be performed on it are to modify, access or flush its marked region. */
+
+extern xp_error xp_lock_window (xp_window_id id,
+ const xp_box *in_rect,
+ unsigned int *depth,
+ void *bits[2],
+ unsigned int rowbytes[2],
+ xp_box *out_rect);
+
+/* Mark that the region specified by SHAPE-NRECTS, SHAPE-RECTS,
+ SHAPE-TX, and SHAPE-TY in the specified window has been updated, and
+ will need to subsequently be redisplayed. */
+
+extern xp_error xp_mark_window (xp_window_id id, int shape_nrects,
+ const xp_box *shape_rects,
+ int shape_tx, int shape_ty);
+
+/* Unlocks the specified window. If FLUSH is true, then any marked
+ regions are immediately redisplayed. Note that it's an error to
+ unlock an already unlocked window. */
+
+extern xp_error xp_unlock_window (xp_window_id id, xp_bool flush);
+
+/* If anything is marked in the given window for redisplay, do it now. */
+
+extern xp_error xp_flush_window (xp_window_id id);
+
+/* Moves the contents of the region DX,DY pixels away from that specified
+ by DST_RECTS and DST_NRECTS in the window with SRC-ID to the
+ destination region in the window DST-ID. Note that currently source
+ and destination windows must be the same. */
+
+extern xp_error xp_copy_window (xp_window_id src_id, xp_window_id dst_id,
+ int dst_nrects, const xp_box *dst_rects,
+ int dx, int dy);
+
+/* Returns true if the given window has any regions marked for
+ redisplay. */
+
+extern xp_bool xp_is_window_marked (xp_window_id id);
+
+/* If successful returns a superset of the region marked for update in
+ the given window. Use xp_free_region () to release the returned data. */
+
+extern xp_error xp_get_marked_shape (xp_window_id id,
+ int *ret_nrects, xp_box **ret_rects);
+
+extern void xp_free_shape (int nrects, xp_box *rects);
+
+/* Searches for the first window below ABOVE-ID containing the point X,Y,
+ and returns it's window id in *RET-ID. If no window is found, *RET-ID
+ is set to zero. If ABOVE-ID is zero, finds the topmost window
+ containing the given point. */
+
+extern xp_error xp_find_window (int x, int y, xp_window_id above_id,
+ xp_window_id *ret_id);
+
+/* Returns the current origin and size of the window ID in *BOUNDS-RET if
+ successful. */
+extern xp_error xp_get_window_bounds (xp_window_id id, xp_box *bounds_ret);
+
+
+
+/* Window surface functions. */
+
+/* Create a new VRAM surface on the specified window. If successful,
+ returns the identifier of the new surface in *RET-SID. */
+
+extern xp_error xp_create_surface (xp_window_id id, xp_surface_id *ret_sid);
+
+/* Destroys the specified surface. */
+
+extern xp_error xp_destroy_surface (xp_surface_id sid);
+
+/* Reconfigures the specified surface as defined by MASK and VALUES.
+ Note that specifying XP_DEPTH is an error. */
+
+extern xp_error xp_configure_surface (xp_surface_id sid, unsigned int mask,
+ const xp_window_changes *values);
+
+/* If successful, places the client identifier of the current process
+ in *RET-CLIENT. */
+
+extern xp_error xp_get_client_id (xp_client_id *ret_client);
+
+/* Given a valid window,surface combination created by the current
+ process, attempts to allow the specified external client access
+ to that surface. If successful, returns two integers in RET-KEY
+ which the client can use to import the surface into their process. */
+
+extern xp_error xp_export_surface (xp_window_id wid, xp_surface_id sid,
+ xp_client_id client,
+ unsigned int ret_key[2]);
+
+/* Given a two integer key returned from xp_export_surface (), tries
+ to import the surface into the current process. If successful the
+ local surface identifier is stored in *SID-RET. */
+
+extern xp_error xp_import_surface (const unsigned int key[2],
+ xp_surface_id *sid_ret);
+
+/* If successful, stores the number of surfaces attached to the
+ specified window in *RET. */
+
+extern xp_error xp_get_window_surface_count (xp_window_id id,
+ unsigned int *ret);
+
+/* Attaches the CGLContextObj CGL-CTX to the specified surface. */
+
+extern xp_error xp_attach_gl_context (void *cgl_ctx, xp_surface_id sid);
+
+/* Updates the CGLContextObj CGL-CTX to reflect any recent changes to
+ the surface it's attached to. */
+
+extern xp_error xp_update_gl_context (void *cgl_ctx);
+
+
+
+/* Window frame functions. */
+
+/* Possible arguments to xp_frame_get_rect (). */
+
+enum xp_frame_rect_enum {
+ XP_FRAME_RECT_TITLEBAR = 1,
+ XP_FRAME_RECT_TRACKING = 2,
+ XP_FRAME_RECT_GROWBOX = 3,
+};
+
+/* Classes of window frame. */
+
+enum xp_frame_class_enum {
+ XP_FRAME_CLASS_DOCUMENT = 1 << 0,
+ XP_FRAME_CLASS_DIALOG = 1 << 1,
+ XP_FRAME_CLASS_MODAL_DIALOG = 1 << 2,
+ XP_FRAME_CLASS_SYSTEM_MODAL_DIALOG = 1 << 3,
+ XP_FRAME_CLASS_UTILITY = 1 << 4,
+ XP_FRAME_CLASS_TOOLBAR = 1 << 5,
+ XP_FRAME_CLASS_MENU = 1 << 6,
+ XP_FRAME_CLASS_SPLASH = 1 << 7,
+ XP_FRAME_CLASS_BORDERLESS = 1 << 8,
+};
+
+/* Attributes of window frames. */
+
+enum xp_frame_attr_enum {
+ XP_FRAME_ACTIVE = 0x0001,
+ XP_FRAME_URGENT = 0x0002,
+ XP_FRAME_TITLE = 0x0004,
+ XP_FRAME_PRELIGHT = 0x0008,
+ XP_FRAME_SHADED = 0x0010,
+ XP_FRAME_CLOSE_BOX = 0x0100,
+ XP_FRAME_COLLAPSE = 0x0200,
+ XP_FRAME_ZOOM = 0x0400,
+ XP_FRAME_ANY_BUTTON = 0x0700,
+ XP_FRAME_CLOSE_BOX_CLICKED = 0x0800,
+ XP_FRAME_COLLAPSE_BOX_CLICKED = 0x1000,
+ XP_FRAME_ZOOM_BOX_CLICKED = 0x2000,
+ XP_FRAME_ANY_CLICKED = 0x3800,
+ XP_FRAME_GROW_BOX = 0x4000,
+};
+
+#define XP_FRAME_ATTR_IS_SET(a,b) (((a) & (b)) == (b))
+#define XP_FRAME_ATTR_IS_CLICKED(a,m) ((a) & ((m) << 3))
+#define XP_FRAME_ATTR_SET_CLICKED(a,m) ((a) |= ((m) << 3))
+#define XP_FRAME_ATTR_UNSET_CLICKED(a,m) ((a) &= ~((m) << 3))
+
+#define XP_FRAME_POINTER_ATTRS (XP_FRAME_PRELIGHT \
+ | XP_FRAME_ANY_BUTTON \
+ | XP_FRAME_ANY_CLICKED)
+
+extern xp_error xp_frame_get_rect (int type, int class, const xp_box *outer,
+ const xp_box *inner, xp_box *ret);
+extern xp_error xp_frame_hit_test (int class, int x, int y,
+ const xp_box *outer,
+ const xp_box *inner, int *ret);
+extern xp_error xp_frame_draw (xp_window_id wid, int class, unsigned int attr,
+ const xp_box *outer, const xp_box *inner,
+ unsigned int title_len,
+ const unsigned char *title_bytes);
+
+
+
+/* Memory manipulation functions. */
+
+enum xp_composite_op_enum {
+ XP_COMPOSITE_SRC = 0,
+ XP_COMPOSITE_OVER,
+};
+
+#define XP_COMPOSITE_FUNCTION(op, src_depth, mask_depth, dest_depth) \
+ (((op) << 24) | ((src_depth) << 16) \
+ | ((mask_depth) << 8) | ((dest_depth) << 0))
+
+#define XP_COMPOSITE_FUNCTION_OP(f) (((f) >> 24) & 255)
+#define XP_COMPOSITE_FUNCTION_SRC_DEPTH(f) (((f) >> 16) & 255)
+#define XP_COMPOSITE_FUNCTION_MASK_DEPTH(f) (((f) >> 8) & 255)
+#define XP_COMPOSITE_FUNCTION_DEST_DEPTH(f) (((f) >> 0) & 255)
+
+/* Composite WIDTH by HEIGHT pixels from source and mask to destination
+ using a specified function (if source and destination overlap,
+ undefined behavior results).
+
+ For SRC and DEST, the first element of the array is the color data. If
+ the second element is non-null it implies that there is alpha data
+ (which may be meshed or planar). Data without alpha is assumed to be
+ opaque.
+
+ Passing a null SRC-ROWBYTES pointer implies that the data SRC points
+ to is a single element.
+
+ Operations that are not supported will return XP_BadImplementation. */
+
+extern xp_error xp_composite_pixels (unsigned int width, unsigned int height,
+ unsigned int function,
+ void *src[2], unsigned int src_rowbytes[2],
+ void *mask, unsigned int mask_rowbytes,
+ void *dest[2], unsigned int dest_rowbytes[2]);
+
+/* Fill HEIGHT rows of data starting at DST. Each row will have WIDTH
+ bytes filled with the 32-bit pattern VALUE. Each row is DST-ROWBYTES
+ wide in total. */
+
+extern void xp_fill_bytes (unsigned int width,
+ unsigned int height, uint32_t value,
+ void *dst, unsigned int dst_rowbytes);
+
+/* Copy HEIGHT rows of bytes from SRC to DST. Each row will have WIDTH
+ bytes copied. SRC and DST may overlap, and the right thing will happen. */
+
+extern void xp_copy_bytes (unsigned int width, unsigned int height,
+ const void *src, unsigned int src_rowbytes,
+ void *dst, unsigned int dst_rowbytes);
+
+/* Suggestions for the minimum number of bytes or pixels for which it
+ makes sense to use some of the xp_ functions */
+
+extern unsigned int xp_fill_bytes_threshold, xp_copy_bytes_threshold,
+ xp_composite_area_threshold, xp_scroll_area_threshold;
+
+
+#endif /* XPLUGIN_H */
+
diff --git a/xorg-server/miext/shadow/makefile b/xorg-server/miext/shadow/makefile
new file mode 100644
index 000000000..0a84b506c
--- /dev/null
+++ b/xorg-server/miext/shadow/makefile
@@ -0,0 +1,25 @@
+LIBRARY = libshadow
+
+#INCLUDES = -I$(top_srcdir)/hw/xfree86/os-support
+
+CSRCS = shadow.c \
+ shalloc.c \
+ shpacked.c \
+ shplanar8.c \
+ shplanar.c \
+ shrot16pack_180.c \
+ shrot16pack_270.c \
+ shrot16pack_270YX.c \
+ shrot16pack_90.c \
+ shrot16pack_90YX.c \
+ shrot16pack.c \
+ shrot32pack_180.c \
+ shrot32pack_270.c \
+ shrot32pack_90.c \
+ shrot32pack.c \
+ shrot8pack_180.c \
+ shrot8pack_270.c \
+ shrot8pack_90.c \
+ shrot8pack.c \
+ shrotate.c
+
diff --git a/xorg-server/miext/sync/makefile b/xorg-server/miext/sync/makefile
new file mode 100644
index 000000000..007233627
--- /dev/null
+++ b/xorg-server/miext/sync/makefile
@@ -0,0 +1,4 @@
+LIBRARY = libsync
+
+CSRCS = \
+ misync.c
diff --git a/xorg-server/os/WaitFor.c b/xorg-server/os/WaitFor.c
index 39fedd9a2..ffa740fe4 100644
--- a/xorg-server/os/WaitFor.c
+++ b/xorg-server/os/WaitFor.c
@@ -209,6 +209,12 @@ WaitForSomething(int *pClientsReady)
wt = &waittime;
}
}
+ if (!wt)
+ {
+ wt = &waittime;
+ waittime.tv_sec = 0;
+ waittime.tv_usec = 100;
+ }
XFD_COPYSET(&AllSockets, &LastSelectMask);
}
diff --git a/xorg-server/os/access.c b/xorg-server/os/access.c
index 6d991b362..c8e15cfea 100644
--- a/xorg-server/os/access.c
+++ b/xorg-server/os/access.c
@@ -224,6 +224,10 @@ static int AccessEnabled = DEFAULT_ACCESS_CONTROL;
static int LocalHostEnabled = FALSE;
static int LocalHostRequested = FALSE;
static int UsingXdmcp = FALSE;
+static u_long *pInterfaces = NULL;
+static int ActiveInterfaces = 0;
+
+void match_interface(u_long u_lQuery);
/* FamilyServerInterpreted implementation */
static Bool siAddrMatch(int family, pointer addr, int len, HOST * host,
@@ -231,6 +235,84 @@ static Bool siAddrMatch(int family, pointer addr, int len, HOST * host,
static int siCheckAddr(const char *addrString, int length);
static void siTypesInitialize(void);
+#if NTDDI_VERSION < NTDDI_VISTA
+const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt)
+{
+ if (af == AF_INET)
+ {
+ struct sockaddr_in in;
+ memset(&in, 0, sizeof(in));
+ in.sin_family = AF_INET;
+ memcpy(&in.sin_addr, src, sizeof(struct in_addr));
+ if (getnameinfo((struct sockaddr *)&in, sizeof(struct sockaddr_in), dst, cnt, NULL, 0, NI_NUMERICHOST) != 0)
+ {
+ errno = WSAGetLastError();
+ return NULL;
+ }
+ else return dst;
+ }
+ else if (af == AF_INET6)
+ {
+ struct sockaddr_in6 in;
+ memset(&in, 0, sizeof(in));
+ in.sin6_family = AF_INET6;
+ memcpy(&in.sin6_addr, src, sizeof(struct in_addr6));
+ if (getnameinfo((struct sockaddr *)&in, sizeof(struct sockaddr_in6), dst, cnt, NULL, 0, NI_NUMERICHOST) != 0)
+ {
+ errno = WSAGetLastError();
+ return NULL;
+ }
+ else return dst;
+ }
+ errno = WSAEAFNOSUPPORT;
+ return NULL;
+}
+
+int inet_pton(int af, const char *src, void *dst)
+{
+ struct sockaddr_storage ss;
+ int sslen = sizeof(ss);
+ if (af == AF_INET)
+ {
+ struct in_addr out;
+ char buffer[INET_ADDRSTRLEN + 1];
+ strncpy (buffer, src, INET_ADDRSTRLEN);
+ buffer [INET_ADDRSTRLEN] = '\0';
+ if (WSAStringToAddressA(buffer, AF_INET, NULL, (struct sockaddr*)&ss, &sslen) == SOCKET_ERROR)
+ {
+ errno = WSAGetLastError();
+ return 0;
+ }
+ else
+ {
+ out = ((struct sockaddr_in *)&ss)->sin_addr;
+ memcpy (dst, &out, sizeof(struct in_addr));
+ return 1;
+ }
+ }
+ else if (af == AF_INET6)
+ {
+ struct in6_addr out6;
+ char buffer6[INET6_ADDRSTRLEN + 1];
+ strncpy (buffer6, src, INET6_ADDRSTRLEN);
+ buffer6 [INET6_ADDRSTRLEN] = '\0';
+ if (WSAStringToAddressA(buffer6, AF_INET6, NULL, (struct sockaddr*)&ss, &sslen) == SOCKET_ERROR)
+ {
+ errno = WSAGetLastError();
+ return 0;
+ }
+ else
+ {
+ out6 = ((struct sockaddr_in6 *)&ss)->sin6_addr;
+ memcpy (dst, &out6, sizeof(struct in6_addr));
+ return 1;
+ }
+ }
+ errno = WSAEAFNOSUPPORT;
+ return -1;
+}
+#endif
+
/*
* called when authorization is not enabled to add the
* local host to the access list
@@ -307,7 +389,7 @@ ifioctl(int fd, int cmd, char *arg)
#endif
/*
- * DefineSelf (fd):
+ * DefineSelf (fd, protocol):
*
* Define this host for access control. Find all the hosts the OS knows about
* for this fd and add them to the selfhosts list.
@@ -315,12 +397,11 @@ ifioctl(int fd, int cmd, char *arg)
#if !defined(SIOCGIFCONF)
void
-DefineSelf(int fd)
+DefineSelf(int fd, const int protocol)
{
#if !defined(TCPCONN) && !defined(STREAMSCONN) && !defined(UNIXCONN)
return;
#else
- register int n;
int len;
caddr_t addr;
int family;
@@ -332,6 +413,10 @@ DefineSelf(int fd)
struct {
char nodename[512];
} name;
+ HOST ha;
+ struct addrinfo *addresses;
+ struct addrinfo *a;
+ struct addrinfo hints;
#endif
register struct hostent *hp;
@@ -351,7 +436,6 @@ DefineSelf(int fd)
#ifdef XTHREADS_NEEDS_BYNAMEPARAMS
_Xgethostbynameparams hparams;
#endif
-
/* Why not use gethostname()? Well, at least on my system, I've had to
* make an ugly kernel patch to get a name longer than 8 characters, and
* uname() lets me access to the whole string (it smashes release, you
@@ -363,16 +447,93 @@ DefineSelf(int fd)
gethostname(name.nodename, sizeof(name.nodename));
#endif
+ /* Colin's experiments with using getaddrinfo() instead of the IPv6-useless gethostbyname() */
+ memset( &hints, 0, sizeof(hints) );
+ if (protocol == 4) hints.ai_family = AF_INET;
+ else if (protocol == 6) hints.ai_family = AF_INET6;
+
+ if (getaddrinfo(name.nodename, NULL, &hints, &addresses) != 0) goto CarryOnTheOldWay;
+
+ if (protocol == 6) ErrorF ("DefineSelf - %s has IPv%d addresses...\n",
+ name.nodename, protocol);
+
+ for (a = addresses; a != NULL; a = a->ai_next) {
+ char ad[INET6_ADDRSTRLEN];
+ ha.family = a->ai_family;
+ if (a->ai_family == AF_INET6) {
+ ha.addr = (unsigned char *)
+ &((struct sockaddr_in6 *) a->ai_addr)->sin6_addr;
+ ha.len =
+ sizeof (((struct sockaddr_in6 *) a->ai_addr)->sin6_addr);
+ } else {
+ ha.addr = (unsigned char *)
+ &((struct sockaddr_in *) a->ai_addr)->sin_addr;
+ ha.len =
+ sizeof (((struct sockaddr_in *) a->ai_addr)->sin_addr);
+ }
+ inet_ntop(ha.family, ha.addr, ad, sizeof(ad));
+
+ if (ha.family == AF_INET6) {
+ ErrorF(" %s", ad);
+ saddr.sa.sa_family = AF_INET6;
+ inet6addr = (struct sockaddr_in6 *) (&(saddr.sa));
+ memcpy (&(inet6addr->sin6_addr), ha.addr, ha.len);
+ len = sizeof(saddr.in6);
+ family = ConvertAddr (&(saddr.sa), &len, (pointer *)&addr);
+ if ( family != -1 && family != FamilyLocal ) {
+ for (host = selfhosts;
+ host && !addrEqual (family, addr, len, host);
+ host = host->next) ;
+ if (!host) {
+ /* add this host to the host list. */
+ MakeHost(host,len)
+ if (host) {
+ host->family = family;
+ host->len = len;
+ memcpy (host->addr, addr, len);
+ host->next = selfhosts;
+ selfhosts = host;
+ }
+ if (family == FamilyInternet6 &&
+ !(IN6_IS_ADDR_LOOPBACK((struct in6_addr *)addr))) {
+ XdmcpRegisterConnection (family, (char *)addr, len);
+ }
+ }
+ }
+ }
+ }
+ if (protocol == 6) ErrorF ("\n");
+ freeaddrinfo(addresses);
+ /* End of Colin's experiments */
+
+CarryOnTheOldWay:
+
hp = _XGethostbyname(name.nodename, hparams);
if (hp != NULL) {
+ int i = 0, j = 0;
+ IN_ADDR Inter;
saddr.sa.sa_family = hp->h_addrtype;
switch (hp->h_addrtype) {
case AF_INET:
+ if (protocol == 6) return; /* We should not be here: gethostbyname() is useless with inet6! */
inetaddr = (struct sockaddr_in *) (&(saddr.sa));
- memcpy(&(inetaddr->sin_addr), hp->h_addr, hp->h_length);
- len = sizeof(saddr.sa);
+ if (!pInterfaces) match_interface(0);
+ if (ActiveInterfaces && pInterfaces && *pInterfaces)
+ {
+ ErrorF ("DefineSelf - %s has %d usable IPv%d interface%s...\n address%s",
+ name.nodename, ActiveInterfaces, protocol,
+ ActiveInterfaces==1 ? "" : "s",
+ ActiveInterfaces==1 ? "" : "es");
+ for (i = 0; hp->h_addr_list[i]; i++)
+ {
+ Inter.S_un.S_addr = *(u_long *)hp->h_addr_list[i];
+ ErrorF(" %s", inet_ntoa(Inter));
+ if (*pInterfaces == *(u_long *)hp->h_addr_list[i]) j = i;
+ }
+ ErrorF ("\n");
+ }
break;
-#if defined(IPv6) && defined(AF_INET6)
+#if 0 /* We never used to get here and AF_INET6 is now processed by getaddrinfo() */
case AF_INET6:
inet6addr = (struct sockaddr_in6 *) (&(saddr.sa));
memcpy(&(inet6addr->sin6_addr), hp->h_addr, hp->h_length);
@@ -382,48 +543,56 @@ DefineSelf(int fd)
default:
goto DefineLocalHost;
}
- family = ConvertAddr(&(saddr.sa), &len, (pointer *) &addr);
- if (family != -1 && family != FamilyLocal) {
- for (host = selfhosts;
- host && !addrEqual(family, addr, len, host);
- host = host->next);
- if (!host) {
- /* add this host to the host list. */
- MakeHost(host, len)
+
+ for (i = -1; i < 0 || hp->h_addr_list[i]; i++)
+ {
+ if (i < 0) memcpy ( &(inetaddr->sin_addr), hp->h_addr_list[j], hp->h_length);
+ else if (i == j) continue;
+ else memcpy ( &(inetaddr->sin_addr), hp->h_addr_list[i], hp->h_length);
+ len = sizeof(saddr.sa);
+ family = ConvertAddr(&(saddr.sa), &len, (pointer *) &addr);
+ if ( family != -1 && family != FamilyLocal ) {
+ for (host = selfhosts;
+ host && !addrEqual (family, addr, len, host);
+ host = host->next) ;
+ if (!host) {
+ /* add this host to the host list. */
+ MakeHost(host,len)
if (host) {
- host->family = family;
- host->len = len;
- memcpy(host->addr, addr, len);
- host->next = selfhosts;
- selfhosts = host;
- }
-#ifdef XDMCP
- /*
- * If this is an Internet Address, but not the localhost
- * address (127.0.0.1), nor the bogus address (0.0.0.0),
- * register it.
- */
- if (family == FamilyInternet &&
- !(len == 4 &&
- ((addr[0] == 127) ||
- (addr[0] == 0 && addr[1] == 0 &&
- addr[2] == 0 && addr[3] == 0)))
- ) {
- XdmcpRegisterConnection(family, (char *) addr, len);
- broad_addr = *inetaddr;
- ((struct sockaddr_in *) &broad_addr)->sin_addr.s_addr =
+ host->family = family;
+ host->len = len;
+ memcpy ( host->addr, addr, len);
+ host->next = selfhosts;
+ selfhosts = host;
+ }
+ #ifdef XDMCP
+ /*
+ * If this is an Internet Address, but not the localhost
+ * address (127.0.0.1), nor the bogus address (0.0.0.0),
+ * register it.
+ */
+ if (family == FamilyInternet &&
+ !(len == 4 &&
+ ((addr[0] == 127) ||
+ (addr[0] == 0 && addr[1] == 0 &&
+ addr[2] == 0 && addr[3] == 0)))
+ ) {
+ XdmcpRegisterConnection (family, (char *)addr, len);
+ broad_addr = *inetaddr;
+ ((struct sockaddr_in *) &broad_addr)->sin_addr.s_addr =
htonl(INADDR_BROADCAST);
- XdmcpRegisterBroadcastAddress((struct sockaddr_in *)
+ XdmcpRegisterBroadcastAddress ((struct sockaddr_in *)
&broad_addr);
+ }
+ #if defined(IPv6) && defined(AF_INET6)
+ else if (family == FamilyInternet6 &&
+ !(IN6_IS_ADDR_LOOPBACK((struct in6_addr *)addr))) {
+ XdmcpRegisterConnection (family, (char *)addr, len);
+ }
+ #endif
+
+ #endif /* XDMCP */
}
-#if defined(IPv6) && defined(AF_INET6)
- else if (family == FamilyInternet6 &&
- !(IN6_IS_ADDR_LOOPBACK((struct in6_addr *) addr))) {
- XdmcpRegisterConnection(family, (char *) addr, len);
- }
-#endif
-
-#endif /* XDMCP */
}
}
}
@@ -431,6 +600,7 @@ DefineSelf(int fd)
* now add a host of family FamilyLocalHost...
*/
DefineLocalHost:
+ free(pInterfaces);
for (host = selfhosts;
host && !addrEqual(FamilyLocalHost, "", 0, host); host = host->next);
if (!host) {
@@ -846,18 +1016,19 @@ ResetHosts(char *display)
FreeHost(host);
}
-#if defined WIN32 && defined __MINGW32__
-#define ETC_HOST_PREFIX "X"
-#else
#define ETC_HOST_PREFIX "/etc/X"
-#endif
#define ETC_HOST_SUFFIX ".hosts"
fnamelen = strlen(ETC_HOST_PREFIX) + strlen(ETC_HOST_SUFFIX) +
strlen(display) + 1;
if (fnamelen > sizeof(fname))
FatalError("Display name `%s' is too long\n", display);
+#ifdef __MINGW32__
+ snprintf(fname, sizeof(fname), "%s%s" ETC_HOST_SUFFIX, getenv("XHOSTPREFIX"),
+ display);
+#else
snprintf(fname, sizeof(fname), ETC_HOST_PREFIX "%s" ETC_HOST_SUFFIX,
display);
+#endif
if ((fd = fopen(fname, "r")) != 0) {
while (fgets(ohostname, sizeof(ohostname), fd)) {
@@ -921,9 +1092,13 @@ ResetHosts(char *display)
(family == FamilyWild)) {
struct addrinfo *addresses;
struct addrinfo *a;
+ struct addrinfo hints;
int f;
- if (getaddrinfo(hostname, NULL, NULL, &addresses) == 0) {
+ memset( &hints, 0, sizeof(hints) );
+ if (family == FamilyInternet) hints.ai_family = AF_INET;
+ else if (family == FamilyInternet6) hints.ai_family = AF_INET6;
+ if (getaddrinfo(hostname, NULL, &hints, &addresses) == 0) {
for (a = addresses; a != NULL; a = a->ai_next) {
len = a->ai_addrlen;
f = ConvertAddr(a->ai_addr, &len,
@@ -1237,7 +1412,9 @@ NewHost(int family, const void *addr, int len, int addingLocalHosts)
{
register HOST *host;
+ if (family == FamilyLocal) return TRUE; /* No FamilyLocal in Vcxsrv */
for (host = validhosts; host; host = host->next) {
+
if (addrEqual(family, addr, len, host))
return TRUE;
}
@@ -1674,6 +1851,7 @@ siHostnameAddrMatch(int family, pointer addr, int len,
char hostname[SI_HOSTNAME_MAXLEN];
struct addrinfo *addresses;
struct addrinfo *a;
+ struct addrinfo hints;
int f, hostaddrlen;
pointer hostaddr;
@@ -1682,7 +1860,10 @@ siHostnameAddrMatch(int family, pointer addr, int len,
strlcpy(hostname, siAddr, siAddrLen + 1);
- if (getaddrinfo(hostname, NULL, NULL, &addresses) == 0) {
+ memset( &hints, 0, sizeof(hints) );
+ if (family == FamilyInternet) hints.ai_family = AF_INET;
+ else if (family == FamilyInternet6) hints.ai_family = AF_INET6;
+ if (getaddrinfo(hostname, NULL, &hints, &addresses) == 0) {
for (a = addresses; a != NULL; a = a->ai_next) {
hostaddrlen = a->ai_addrlen;
f = ConvertAddr(a->ai_addr, &hostaddrlen, &hostaddr);
@@ -1715,7 +1896,7 @@ siHostnameAddrMatch(int family, pointer addr, int len,
if ((hp = _XGethostbyname(hostname, hparams)) != NULL) {
#ifdef h_addr /* new 4.3bsd version of gethostent */
/* iterate over the addresses */
- for (addrlist = hp->h_addr_list; *addrlist; addrlist++)
+ for (addrlist = (const char **)hp->h_addr_list; *addrlist; addrlist++)
#else
addrlist = &hp->h_addr;
#endif
@@ -2012,3 +2193,55 @@ siTypesInitialize(void)
&siLocalGroupPriv);
#endif
}
+
+void match_interface(u_long u_lQuery)
+{
+ WSADATA w;
+ SOCKET sd;
+ INTERFACE_INFO InterfaceList[25];
+ PSOCKADDR_IN pAddress, pNetmask;
+ u_long nBytesReturned, tempAddress;
+ u_long u_lAddress, u_lNetmask, u_lFlags;
+ int nNumInterfaces, i, j = 0;
+
+ if (WSAStartup(MAKEWORD(2,2), &w) != 0)
+ return;
+
+ sd = WSASocket(AF_INET, SOCK_DGRAM, 0, 0, 0, 0);
+ if (sd == INVALID_SOCKET)
+ {
+ WSACleanup();
+ return;
+ }
+
+ if (WSAIoctl(sd, SIO_GET_INTERFACE_LIST, 0, 0, &InterfaceList, sizeof(InterfaceList), &nBytesReturned, 0, 0) == SOCKET_ERROR)
+ {
+ closesocket(sd);
+ WSACleanup();
+ return;
+ }
+
+ nNumInterfaces = (int)(nBytesReturned/sizeof(INTERFACE_INFO));
+ pInterfaces = malloc(25*sizeof(u_long));
+ for (i = 0; i < nNumInterfaces; ++i)
+ {
+ pAddress = &InterfaceList[i].iiAddress.AddressIn;
+ u_lAddress = pAddress->sin_addr.S_un.S_addr;
+
+ pNetmask = &InterfaceList[i].iiNetmask.AddressIn;
+ u_lNetmask = pNetmask->sin_addr.S_un.S_addr;
+
+ u_lFlags = InterfaceList[i].iiFlags;
+ if ((u_lFlags & IFF_UP) && !(u_lFlags & IFF_LOOPBACK))
+ {
+ if ((u_lAddress & u_lNetmask) == (u_lQuery & u_lNetmask)) j = i;
+ *(pInterfaces + ActiveInterfaces) = u_lAddress;
+ ActiveInterfaces++;
+ }
+ }
+ tempAddress = *pInterfaces;
+ *pInterfaces = *(pInterfaces + j);
+ *(pInterfaces + j) = tempAddress;
+ closesocket(sd);
+ WSACleanup();
+}
diff --git a/xorg-server/os/auth.c b/xorg-server/os/auth.c
index ac20de47d..b95786bee 100644
--- a/xorg-server/os/auth.c
+++ b/xorg-server/os/auth.c
@@ -303,11 +303,23 @@ GenerateAuthorization(unsigned name_length,
void
GenerateRandomData(int len, char *buf)
{
+#ifdef _MSC_VER
+ static HANDLE hAdvApi32;
+ static BOOLEAN (_stdcall * RtlGenRandom)(void *,unsigned long);
+
+ if (!hAdvApi32)
+ {
+ hAdvApi32=LoadLibrary("advapi32.dll");
+ RtlGenRandom=(BOOLEAN (_stdcall *)(void*,unsigned long))GetProcAddress(hAdvApi32,"SystemFunction036");
+ }
+ RtlGenRandom(buf, len);
+#else
int fd;
fd = open("/dev/urandom", O_RDONLY);
read(fd, buf, len);
close(fd);
+#endif
}
#endif /* XCSECURITY */
diff --git a/xorg-server/os/connection.c b/xorg-server/os/connection.c
index 162e1d93e..99f0da06c 100644
--- a/xorg-server/os/connection.c
+++ b/xorg-server/os/connection.c
@@ -66,6 +66,9 @@ SOFTWARE.
#ifdef WIN32
#include <X11/Xwinsock.h>
+#ifdef _DEBUG
+#define DEBUG
+#endif
#endif
#include <X11/X.h>
#include <X11/Xproto.h>
@@ -108,6 +111,10 @@ SOFTWARE.
#include "dixstruct.h"
#include "xace.h"
+#ifdef _MSC_VER
+typedef int pid_t;
+#endif
+
#define Pid_t pid_t
#ifdef HAVE_GETPEERUCRED
@@ -139,12 +146,15 @@ int MaxClients = 0;
Bool NewOutputPending; /* not yet attempted to write some new output */
Bool AnyClientsWriteBlocked; /* true if some client blocked on write */
+#if !defined(_MSC_VER)
static Bool RunFromSmartParent; /* send SIGUSR1 to parent process */
+static Pid_t ParentProcess;
+#endif
Bool RunFromSigStopParent; /* send SIGSTOP to our own process; Upstart (or
equivalent) will send SIGCONT back. */
static char dynamic_display[7]; /* display name */
+static int dynamic_display_id;
Bool PartialNetwork; /* continue even if unable to bind all addrs */
-static Pid_t ParentProcess;
static Bool debug_conns = FALSE;
@@ -166,9 +176,9 @@ int *ConnectionTranslation = NULL;
*/
#undef MAXSOCKS
-#define MAXSOCKS 500
+#define MAXSOCKS FD_SETSIZE
#undef MAXSELECT
-#define MAXSELECT 500
+#define MAXSELECT FD_SETSIZE
struct _ct_node {
struct _ct_node *next;
@@ -269,6 +279,23 @@ lookup_trans_conn(int fd)
return NULL;
}
+int
+TransIsListening(char *protocol)
+{
+ /* look for this transport in the list of listeners */
+ int i;
+ for (i = 0; i < ListenTransCount; i++)
+ {
+ if (!strcmp(protocol, ListenTransConns[i]->transptr->TransName))
+ {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+
/* Set MaxClients and lastfdesc, and allocate ConnectionTranslation */
void
@@ -363,6 +390,11 @@ NotifyParentProcess(void)
}
if (RunFromSigStopParent)
raise(SIGSTOP);
+#else
+/* On windows the displayfd points to shared memory, so write the id to it */
+ int *pDisplayfd=(int*)MapViewOfFile((HANDLE)displayfd, FILE_MAP_READ|FILE_MAP_WRITE, 0, 0, 0);
+ if (pDisplayfd)
+ *pDisplayfd=dynamic_display_id;
#endif
}
@@ -415,7 +447,7 @@ CreateWellKnownSockets(void)
else { /* -displayfd */
Bool found = 0;
for (i = 0; i < 65535 - X_TCP_PORT; i++) {
- if (TryCreateSocket(i, &partial) && !partial) {
+ if (TryCreateSocket(i, &partial) && ListenTransCount >= 1 && (PartialNetwork || !partial)) {
found = 1;
break;
}
@@ -424,20 +456,25 @@ CreateWellKnownSockets(void)
}
if (!found)
FatalError("Failed to find a socket to listen on");
+ dynamic_display_id=i;
snprintf(dynamic_display, sizeof(dynamic_display), "%d", i);
display = dynamic_display;
}
ListenTransFds = malloc(ListenTransCount * sizeof (int));
- for (i = 0; i < ListenTransCount; i++) {
- int fd = _XSERVTransGetConnectionNumber(ListenTransConns[i]);
+ for (i = ListenTransCount; i > 0; i--) {
+ int fd = _XSERVTransGetConnectionNumber (ListenTransConns[i-1]);
- ListenTransFds[i] = fd;
+ ListenTransFds[i-1] = fd;
FD_SET(fd, &WellKnownConnections);
- if (!_XSERVTransIsLocal(ListenTransConns[i]))
- DefineSelf (fd);
+ if (!_XSERVTransIsLocal (ListenTransConns[i-1])) {
+ int protocol = 0;
+ if (!strcmp("inet", ListenTransConns[i-1]->transptr->TransName)) protocol = 4;
+ else if (!strcmp("inet6", ListenTransConns[i-1]->transptr->TransName)) protocol = 6;
+ DefineSelf (fd, protocol);
+ }
}
if (!XFD_ANYSET(&WellKnownConnections))
@@ -978,15 +1015,17 @@ CheckConnections(void)
{
#ifndef WIN32
fd_mask mask;
+ int curoff;
#endif
fd_set tmask;
- int curclient, curoff;
+ int curclient;
int i;
struct timeval notime;
int r;
#ifdef WIN32
- fd_set savedAllClients;
+ fd_set savedAllSockets;
+ unsigned j;
#endif
notime.tv_sec = 0;
@@ -1010,17 +1049,21 @@ CheckConnections(void)
}
}
#else
- XFD_COPYSET(&AllClients, &savedAllClients);
- for (i = 0; i < XFD_SETCOUNT(&savedAllClients); i++) {
- curclient = XFD_FD(&savedAllClients, i);
- FD_ZERO(&tmask);
- FD_SET(curclient, &tmask);
- do {
- r = Select(curclient + 1, &tmask, NULL, NULL, &notime);
- } while (r < 0 && (errno == EINTR || errno == EAGAIN));
- if (r < 0)
- if (GetConnectionTranslation(curclient) > 0)
- CloseDownClient(clients[GetConnectionTranslation(curclient)]);
+ /* First test AllSockets and then AllClients are valid sockets */
+ XFD_COPYSET(&AllSockets, &savedAllSockets);
+ for (j=0; j<2; j++) {
+ for (i = 0; i < XFD_SETCOUNT(&savedAllSockets); i++) {
+ curclient = XFD_FD(&savedAllSockets, i);
+ FD_ZERO(&tmask);
+ FD_SET(curclient, &tmask);
+ do {
+ r = Select (curclient + 1, &tmask, NULL, NULL, &notime);
+ } while (r == SOCKET_ERROR && (WSAGetLastError() == WSAEINTR || WSAGetLastError() == WSAEWOULDBLOCK));
+ if (r < 0)
+ if (GetConnectionTranslation(curclient) > 0)
+ CloseDownClient(clients[GetConnectionTranslation(curclient)]);
+ }
+ XFD_COPYSET(&AllClients, &savedAllSockets);
}
#endif
}
@@ -1038,8 +1081,12 @@ CloseDownConnection(ClientPtr client)
if (FlushCallback)
CallCallbacks(&FlushCallback, NULL);
+#ifdef DEBUG
+ ErrorF("CloseDownConnection: client index = %d, socket fd = %d\n",
+ client->index, oc->fd);
+#endif
if (oc->output)
- FlushClient(client, oc, (char *) NULL, 0);
+ FlushClient(client, oc, (char *) NULL, 0);
#ifdef XDMCP
XdmcpCloseDisplay(oc->fd);
#endif
diff --git a/xorg-server/os/io.c b/xorg-server/os/io.c
index 922a8eb02..9f0842672 100644
--- a/xorg-server/os/io.c
+++ b/xorg-server/os/io.c
@@ -949,6 +949,7 @@ FlushClient(ClientPtr who, OsCommPtr oc, const void *__extraBuf, int extraCount)
/* If we've arrived here, then the client is stuffed to the gills
and not ready to accept more. Make a note of it and buffer
the rest. */
+ errno=0;
FD_SET(connection, &ClientsWriteBlocked);
AnyClientsWriteBlocked = TRUE;
diff --git a/xorg-server/os/log.c b/xorg-server/os/log.c
index 53b358629..a85ec9c2e 100644
--- a/xorg-server/os/log.c
+++ b/xorg-server/os/log.c
@@ -92,8 +92,14 @@ OR PERFORMANCE OF THIS SOFTWARE.
#ifdef WIN32
#include <process.h>
+#ifndef _MSC_VER
#define getpid(x) _getpid(x)
#endif
+#endif
+
+#ifdef _MSC_VER
+#define S_ISREG(m) (((m)&_S_IFMT) == _S_IFREG)
+#endif
#ifdef XF86BIGFONT
#include "xf86bigfontsrv.h"
@@ -498,8 +504,8 @@ LogSWrite(int verb, const char *buf, size_t len, Bool end_line)
#endif
}
else if (!inSignalContext && logFile) {
- if (newline)
- fprintf(logFile, "[%10.3f] ", GetTimeInMillis() / 1000.0);
+// if (newline)
+// fprintf(logFile, "[%10.3f] ", GetTimeInMillis() / 1000.0);
newline = end_line;
fwrite(buf, len, 1, logFile);
if (logFlush) {
@@ -528,7 +534,7 @@ LogSWrite(int verb, const char *buf, size_t len, Bool end_line)
void
LogVWrite(int verb, const char *f, va_list args)
{
- return LogVMessageVerb(X_NONE, verb, f, args);
+ LogVMessageVerb(X_NONE, verb, f, args);
}
void
@@ -865,7 +871,7 @@ VAuditF(const char *f, va_list args)
if (auditTimer != NULL)
TimerForce(auditTimer);
ErrorF("%s%s", prefix != NULL ? prefix : "", buf);
- strlcpy(oldbuf, buf, sizeof(oldbuf));
+ strncpy(oldbuf, buf, sizeof(oldbuf));
oldlen = len;
nrepeat = 0;
auditTimer = TimerSet(auditTimer, 0, AUDIT_TIMEOUT, AuditFlush, NULL);
@@ -873,6 +879,8 @@ VAuditF(const char *f, va_list args)
free(prefix);
}
+extern char g_FatalErrorMessage[1024];
+
void
FatalError(const char *f, ...)
{
@@ -887,8 +895,10 @@ FatalError(const char *f, ...)
va_start(args, f);
+#ifndef _MSC_VER
/* Make a copy for OsVendorFatalError */
va_copy(args2, args);
+#endif
#ifdef __APPLE__
{
@@ -900,9 +910,15 @@ FatalError(const char *f, ...)
va_end(apple_args);
}
#endif
+#ifdef WIN32
+ vsnprintf(g_FatalErrorMessage, 1024, f, args);
+#endif
VErrorFSigSafe(f, args);
va_end(args);
ErrorFSigSafe("\n");
+#ifdef _MSC_VER
+ va_start(args2, f);
+#endif
if (!beenhere)
OsVendorFatalError(f, args2);
va_end(args2);
diff --git a/xorg-server/os/makefile b/xorg-server/os/makefile
new file mode 100644
index 000000000..b7fdc12b1
--- /dev/null
+++ b/xorg-server/os/makefile
@@ -0,0 +1,55 @@
+LIBRARY=libos
+
+ifeq ($(DEBUG),1)
+DEFINES += XSERVER_DTRACE
+endif
+SECURE_RPC=1
+XDMCP=1
+NEED_STRLCAT=1
+NEED_STRNDUP=1
+
+SECURERPC_SRCS = rpcauth.c
+XDMCP_SRCS = xdmcp.c
+STRLCAT_SRCS = strlcat.c strlcpy.c
+XORG_SRCS = log.c
+STRNDUP_SRCS = strndup.c
+
+libos_la_SOURCES = \
+ WaitFor.c \
+ access.c \
+ auth.c \
+ backtrace.c \
+ client.c \
+ connection.c \
+ io.c \
+ mitauth.c \
+ oscolor.c \
+ osdep.h \
+ osinit.c \
+ utils.c \
+ strcasecmp.c \
+ strcasestr.c \
+ xdmauth.c \
+ xsha1.c \
+ xstrans.c \
+ xprintf.c \
+ $(XORG_SRCS)
+
+if SECURE_RPC
+libos_la_SOURCES += $(SECURERPC_SRCS)
+endif
+if XDMCP
+libos_la_SOURCES += $(XDMCP_SRCS)
+endif
+
+if NEED_STRLCAT
+libos_la_SOURCES += $(STRLCAT_SRCS)
+endif
+
+if NEED_STRNDUP
+libos_la_SOURCES += $(STRNDUP_SRCS)
+endif
+
+CSRCS = $(filter %.c,$(libos_la_SOURCES))
+
+
diff --git a/xorg-server/os/utils.c b/xorg-server/os/utils.c
index fb20da755..c40a938f7 100644
--- a/xorg-server/os/utils.c
+++ b/xorg-server/os/utils.c
@@ -73,6 +73,9 @@ __stdcall unsigned long GetTickCount(void);
#include <sys/resource.h>
# define SMART_SCHEDULE_POSSIBLE
#endif
+#ifdef _MSC_VER
+# define SMART_SCHEDULE_POSSIBLE
+#endif
#include "misc.h"
#include <X11/X.h>
#define XSERV_t
@@ -204,6 +207,11 @@ char *SeatId = NULL;
sig_atomic_t inSignalContext = FALSE;
+#ifdef _MSC_VER
+static HANDLE s_hSmartScheduleTimer = NULL;
+static HANDLE s_hSmartScheduleTimerQueue = NULL;
+#endif
+
#if defined(SVR4) || defined(__linux__) || defined(CSRG_BASED)
#define HAS_SAVED_IDS_AND_SETEUID
#endif
@@ -238,6 +246,10 @@ OsSignal(int sig, OsSigHandlerPtr handler)
#define LOCK_PREFIX "/.X"
#define LOCK_SUFFIX "-lock"
+#ifdef _MSC_VER
+#define LockFile szLockFile
+#endif
+
#if !defined(WIN32) || defined(__CYGWIN__)
#define LOCK_SERVER
#endif
@@ -264,6 +276,14 @@ static Bool nolock = FALSE;
void
LockServer(void)
{
+#if defined(WIN32) && !defined(__CYGWIN__)
+ char MutexName[100];
+ sprintf(MutexName, "Global\\VcXsrv_Mutex_%d\n", atoi(display));
+ if (!CreateMutex(NULL,TRUE,MutexName) || GetLastError()== ERROR_ALREADY_EXISTS)
+ {
+ FatalError("Server is already active for display %d\n", atoi(display));
+ }
+#else
char tmp[PATH_MAX], pid_str[12];
int lfd, i, haslock, l_pid, t;
const char *tmppath = LOCK_DIR;
@@ -381,6 +401,7 @@ LockServer(void)
if (!haslock)
FatalError("Could not create server lock file: %s\n", LockFile);
StillLocking = FALSE;
+#endif
}
/*
@@ -513,7 +534,10 @@ AdjustWaitForDelay(pointer waitTime, unsigned long newdelay)
void
UseMsg(void)
{
- ErrorF("use: X [:<display>] [option]\n");
+ ErrorF("Usage...\nVcxsrv [:<display>] [option]\n\n");
+ ErrorF(":display-number\n\tVcxsrv runs as the given display-number, which defaults to 0.\n");
+ ErrorF("\tTo run multiple instances, use unique display-numbers.\n\n");
+
ErrorF("-a # default pointer acceleration (factor)\n");
ErrorF("-ac disable access control restrictions\n");
ErrorF("-audit int set audit trail level\n");
@@ -521,12 +545,14 @@ UseMsg(void)
ErrorF("-br create root window with black background\n");
ErrorF("+bs enable any backing store support\n");
ErrorF("-bs disable any backing store support\n");
- ErrorF("-c turns off key-click\n");
- ErrorF("c # key-click volume (0-100)\n");
ErrorF("-cc int default color visual class\n");
ErrorF("-nocursor disable the cursor\n");
ErrorF("-core generate core dump on fatal error\n");
+#ifdef _MSC_VER
+ ErrorF("-dpi [auto|int] screen resolution set to native or this dpi\n");
+#else
ErrorF("-dpi int screen resolution in dots per inch\n");
+#endif
#ifdef DPMSExtension
ErrorF("-dpms disables VESA DPMS monitor control\n");
#endif
@@ -554,25 +580,19 @@ UseMsg(void)
ErrorF("-noreset don't reset after last client exists\n");
ErrorF("-background [none] create root window with no background\n");
ErrorF("-reset reset after last client exists\n");
- ErrorF("-p # screen-saver pattern duration (minutes)\n");
ErrorF("-pn accept failure to listen on all ports\n");
ErrorF("-nopn reject failure to listen on all ports\n");
ErrorF("-r turns off auto-repeat\n");
ErrorF("r turns on auto-repeat \n");
ErrorF("-render [default|mono|gray|color] set render color alloc policy\n");
- ErrorF("-retro start with classic stipple and cursor\n");
- ErrorF("-s # screen-saver timeout (minutes)\n");
+ ErrorF("-retro start with classic stipple\n");
ErrorF("-seat string seat to run on\n");
ErrorF("-t # default pointer threshold (pixels/t)\n");
ErrorF("-terminate terminate at server reset\n");
ErrorF("-to # connection time out\n");
ErrorF("-tst disable testing extensions\n");
- ErrorF("ttyxx server started from init on /dev/ttyxx\n");
- ErrorF("v video blanking for screen-saver\n");
- ErrorF("-v screen-saver without video blanking\n");
ErrorF("-wm WhenMapped default backing-store\n");
ErrorF("-wr create root window with white background\n");
- ErrorF("-maxbigreqsize set maximal bigrequest size \n");
#ifdef PANORAMIX
ErrorF("+xinerama Enable XINERAMA extension\n");
ErrorF("-xinerama Disable XINERAMA extension\n");
@@ -580,7 +600,6 @@ UseMsg(void)
ErrorF
("-dumbSched Disable smart scheduling, enable old behavior\n");
ErrorF("-schedInterval int Set scheduler interval in msec\n");
- ErrorF("-sigstop Enable SIGSTOP based startup\n");
ErrorF("+extension name Enable extension\n");
ErrorF("-extension name Disable extension\n");
#ifdef XDMCP
@@ -672,15 +691,6 @@ ProcessCommandLine(int argc, char *argv[])
enableBackingStore = TRUE;
else if (strcmp(argv[i], "-bs") == 0)
disableBackingStore = TRUE;
- else if (strcmp(argv[i], "c") == 0) {
- if (++i < argc)
- defaultKeyboardControl.click = atoi(argv[i]);
- else
- UseMsg();
- }
- else if (strcmp(argv[i], "-c") == 0) {
- defaultKeyboardControl.click = 0;
- }
else if (strcmp(argv[i], "-cc") == 0) {
if (++i < argc)
defaultColorVisualClass = atoi(argv[i]);
@@ -702,7 +712,24 @@ ProcessCommandLine(int argc, char *argv[])
}
else if (strcmp(argv[i], "-dpi") == 0) {
if (++i < argc)
+#ifdef _MSC_VER
+ {
+ if (strcmp(argv[i], "auto") == 0)
+ {
+ HDC hdc = GetDC(NULL);
+ if (hdc)
+ {
+ int dpiY = GetDeviceCaps(hdc, LOGPIXELSY);
+ monitorResolution = dpiY;
+ ReleaseDC(NULL, hdc);
+ }
+ }
+ else if (isdigit(*argv[i])) /* Naively prevent a crash if not numeric */
+ monitorResolution = atoi(argv[i]);
+ }
+#else
monitorResolution = atoi(argv[i]);
+#endif
else
UseMsg();
}
@@ -869,10 +896,6 @@ ProcessCommandLine(int argc, char *argv[])
else if (strcmp(argv[i], "-tst") == 0) {
noTestExtensions = TRUE;
}
- else if (strcmp(argv[i], "v") == 0)
- defaultScreenSaverBlanking = PreferBlanking;
- else if (strcmp(argv[i], "-v") == 0)
- defaultScreenSaverBlanking = DontPreferBlanking;
else if (strcmp(argv[i], "-wm") == 0)
defaultBackingStore = WhenMapped;
else if (strcmp(argv[i], "-wr") == 0)
@@ -956,9 +979,6 @@ ProcessCommandLine(int argc, char *argv[])
else
UseMsg();
}
- else if (strcmp(argv[i], "-sigstop") == 0) {
- RunFromSigStopParent = TRUE;
- }
else if (strcmp(argv[i], "+extension") == 0) {
if (++i < argc) {
if (!EnableDisableExtension(argv[i], TRUE))
@@ -1156,6 +1176,12 @@ void
SmartScheduleStopTimer(void)
{
#ifdef SMART_SCHEDULE_POSSIBLE
+#ifdef _MSC_VER
+ if (SmartScheduleDisable)
+ return;
+ DeleteTimerQueueTimer(s_hSmartScheduleTimerQueue, s_hSmartScheduleTimer, NULL);
+ s_hSmartScheduleTimer=NULL;
+#else
struct itimerval timer;
if (SmartScheduleDisable)
@@ -1166,12 +1192,37 @@ SmartScheduleStopTimer(void)
timer.it_value.tv_usec = 0;
(void) setitimer(ITIMER_REAL, &timer, 0);
#endif
+#endif
}
+#ifdef _MSC_VER
+static VOID CALLBACK SmartScheduleTimer( PVOID lpParameter, BOOLEAN TimerOrWaitFired)
+#else
+static void SmartScheduleTimer (int sig)
+#endif
+{
+ SmartScheduleTime += SmartScheduleInterval;
+}
+
+
void
SmartScheduleStartTimer(void)
{
#ifdef SMART_SCHEDULE_POSSIBLE
+#ifdef _MSC_VER
+ if (SmartScheduleDisable)
+ return;
+
+ if (!CreateTimerQueueTimer( &s_hSmartScheduleTimer, s_hSmartScheduleTimerQueue, SmartScheduleTimer, NULL
+ , SmartScheduleInterval, SmartScheduleInterval, WT_EXECUTEONLYONCE|WT_EXECUTEINPERSISTENTTHREAD))
+ {
+ DWORD Error=GetLastError();
+ ErrorF("Error starting timer, smart scheduling disabled: 0x%x (%d)\n",Error,Error);
+ CloseHandle(s_hSmartScheduleTimer);
+ SmartScheduleDisable = TRUE;
+ return;
+ }
+#else
struct itimerval timer;
if (SmartScheduleDisable)
@@ -1182,18 +1233,24 @@ SmartScheduleStartTimer(void)
timer.it_value.tv_usec = SmartScheduleInterval * 1000;
setitimer(ITIMER_REAL, &timer, 0);
#endif
-}
-
-static void
-SmartScheduleTimer(int sig)
-{
- SmartScheduleTime += SmartScheduleInterval;
+#endif
}
void
SmartScheduleInit(void)
{
#ifdef SMART_SCHEDULE_POSSIBLE
+#ifdef _MSC_VER
+ if (SmartScheduleDisable)
+ return;
+ s_hSmartScheduleTimerQueue = CreateTimerQueue();
+ if (!s_hSmartScheduleTimerQueue)
+ {
+ DWORD Error=GetLastError();
+ ErrorF("Error creating timer, smart scheduling disabled: 0x%x (%d)\n",Error,Error);
+ SmartScheduleDisable = TRUE;
+ }
+#else
struct sigaction act;
if (SmartScheduleDisable)
@@ -1210,6 +1267,7 @@ SmartScheduleInit(void)
SmartScheduleDisable = TRUE;
}
#endif
+#endif
}
#ifdef SIG_BLOCK
@@ -1734,7 +1792,7 @@ System(const char *cmdline)
#endif
#define MAX_ARG_LENGTH 128
-#define MAX_ENV_LENGTH 256
+#define MAX_ENV_LENGTH 2048
#define MAX_ENV_PATH_LENGTH 2048 /* Limit for *PATH and TERMCAP */
#if USE_ISPRINT
diff --git a/xorg-server/os/xdmcp.c b/xorg-server/os/xdmcp.c
index 11f11333d..c18e90248 100644
--- a/xorg-server/os/xdmcp.c
+++ b/xorg-server/os/xdmcp.c
@@ -62,6 +62,8 @@
static const char *defaultDisplayClass = COMPILEDDISPLAYCLASS;
+extern void match_interface(u_long u_lQuery);
+
static int xdmcpSocket, sessionSocket;
static xdmcp_states state;
@@ -197,6 +199,11 @@ static void XdmcpWakeupHandler(pointer /*data */ ,
int /*i */ ,
pointer /*LastSelectMask */ );
+#define XSERV_t
+#define TRANS_SERVER
+#define TRANS_REOPEN
+#include <X11/Xtrans/Xtrans.h>
+
/*
* Register the Manufacturer display ID
*/
@@ -581,6 +588,32 @@ XdmcpInit(void)
(pointer) 0);
timeOutRtx = 0;
DisplayNumber = (CARD16) atoi(display);
+ if (ConnectionTypes.length>1 && xdm_from==NULL)
+ {
+ unsigned i=0;
+ char ErrorMessage[1024];
+ sprintf(ErrorMessage,"Multiple ip-addresses detected:\n");
+ for (i=0; i<ConnectionTypes.length; i++)
+ {
+ int AddrLen=ConnectionAddresses.data[i].length;
+ if (AddrLen==4)
+ sprintf(ErrorMessage+strlen(ErrorMessage)," %d.%d.%d.%d\n",
+ ConnectionAddresses.data[i].data[0],
+ ConnectionAddresses.data[i].data[1],
+ ConnectionAddresses.data[i].data[2],
+ ConnectionAddresses.data[i].data[3]);
+ else
+ {
+ int j;
+ sprintf(ErrorMessage+strlen(ErrorMessage)," ");
+ for (j=0; j<AddrLen; j++)
+ sprintf(ErrorMessage+strlen(ErrorMessage),"%02x",ConnectionAddresses.data[i].data[j]);
+ sprintf(ErrorMessage+strlen(ErrorMessage),"\n");
+ }
+ }
+ sprintf(ErrorMessage+strlen(ErrorMessage),"Please specify the ip-address you want to use with -from\n");
+ FatalError(ErrorMessage);
+ }
get_xdmcp_sock();
send_packet();
}
@@ -651,8 +684,8 @@ XdmcpBlockHandler(pointer data, /* unused */
if (timeOutTime == 0)
return;
millisToGo = timeOutTime - GetTimeInMillis();
- if ((int) millisToGo < 0)
- millisToGo = 0;
+ if ((int) millisToGo <= 0)
+ millisToGo = 1;
AdjustWaitForDelay(wt, millisToGo);
}
@@ -689,16 +722,6 @@ XdmcpWakeupHandler(pointer data, /* unused */
else if (state == XDM_RUN_SESSION)
keepaliveDormancy = defaultKeepaliveDormancy;
}
- if (XFD_ANYSET(&AllClients) && state == XDM_RUN_SESSION)
- timeOutTime = GetTimeInMillis() + keepaliveDormancy * 1000;
- }
- else if (timeOutTime && (int) (GetTimeInMillis() - timeOutTime) >= 0) {
- if (state == XDM_RUN_SESSION) {
- state = XDM_KEEPALIVE;
- send_packet();
- }
- else
- timeout();
}
}
@@ -724,12 +747,71 @@ XdmcpSelectHost(const struct sockaddr *host_sockaddr,
* selects the first host to respond with willing message.
*/
+#ifdef _MSC_VER
+void DisplayXdmcpHostsDialog(void);
+int XdmcpHostAddName(const char *HostName, int HostIndex);
+
+struct hostinfo
+{
+ struct sockaddr *from;
+ int fromlen;
+ ARRAY8 AuthenticationName;
+};
+static int g_NrHosts;
+static struct hostinfo *g_Hosts;
+
+void XdmcpHostSelected(int HostIdx)
+{
+ int i;
+
+ /* Connect to the selected host */
+ XdmcpSelectHost(g_Hosts[HostIdx].from, g_Hosts[HostIdx].fromlen, &g_Hosts[HostIdx].AuthenticationName);
+
+ for (i=0; i<g_NrHosts; i++)
+ {
+ free(g_Hosts[i].from);
+ free(g_Hosts[i].AuthenticationName.data);
+ }
+ free(g_Hosts);
+ g_Hosts=NULL;
+ g_NrHosts=0;
+}
+#endif
+
/*ARGSUSED*/ static void
XdmcpAddHost(const struct sockaddr *from,
int fromlen,
ARRAY8Ptr AuthenticationName, ARRAY8Ptr hostname, ARRAY8Ptr status)
{
- XdmcpSelectHost(from, fromlen, AuthenticationName);
+#ifdef _MSC_VER
+ char szHostName[100];
+ int HostIdx;
+
+ memcpy(szHostName,hostname->data,hostname->length);
+ szHostName[hostname->length]=0;
+
+ DisplayXdmcpHostsDialog(); /* Display the dialog if not already displayed */
+
+ HostIdx=XdmcpHostAddName(szHostName, g_NrHosts);
+ if (HostIdx==-1)
+ {
+ HostIdx=g_NrHosts;
+ g_NrHosts++;
+ g_Hosts=realloc(g_Hosts,g_NrHosts*sizeof(*g_Hosts));
+ g_Hosts[HostIdx].AuthenticationName.data=NULL;
+ g_Hosts[HostIdx].from=NULL;
+ }
+
+ g_Hosts[HostIdx].fromlen=fromlen;
+ g_Hosts[HostIdx].from=realloc(g_Hosts[HostIdx].from,g_Hosts[HostIdx].fromlen);
+ memcpy(g_Hosts[HostIdx].from,from,fromlen);
+
+ g_Hosts[HostIdx].AuthenticationName.length=AuthenticationName->length;
+ g_Hosts[HostIdx].AuthenticationName.data=realloc(g_Hosts[HostIdx].AuthenticationName.data,AuthenticationName->length);
+ memcpy(g_Hosts[HostIdx].AuthenticationName.data,AuthenticationName->data,AuthenticationName->length);
+#else
+ XdmcpSelectHost(from, fromlen, AuthenticationName);
+#endif
}
/*
@@ -1001,12 +1083,20 @@ get_xdmcp_sock(void)
sizeof(soopts)) < 0)
XdmcpWarning("UDP set broadcast socket-option failed");
#endif /* SO_BROADCAST */
- if (xdmcpSocket >= 0 && xdm_from != NULL) {
+ if (xdm_from)
+ {
+ if (xdmcpSocket >= 0 && SOCKADDR_FAMILY(FromAddress)==AF_INET) {
if (bind(xdmcpSocket, (struct sockaddr *) &FromAddress,
FromAddressLen) < 0) {
- FatalError("Xserver: failed to bind to -from address: %s\n",
- xdm_from);
+ FatalError("Xserver: failed to bind to -from address: %s error %d\n", xdm_from, WSAGetLastError());
+ }
+ }
+ else if (xdmcpSocket6 >= 0 && SOCKADDR_FAMILY(FromAddress)==AF_INET6) {
+ if (bind(xdmcpSocket6, (struct sockaddr *)&FromAddress,
+ FromAddressLen) < 0) {
+ FatalError("Xserver: failed to bind to -from address: %s error %d\n", xdm_from, WSAGetLastError());
}
+ }
}
#endif /* STREAMSCONN */
}
@@ -1070,18 +1160,18 @@ send_query_msg(void)
for (mcl = mcastlist; mcl != NULL; mcl = mcl->next) {
for (ai = mcl->ai; ai != NULL; ai = ai->ai_next) {
if (ai->ai_family == AF_INET) {
- unsigned char hopflag = (unsigned char) mcl->hops;
+ int hopflag = mcl->hops;
socketfd = xdmcpSocket;
setsockopt(socketfd, IPPROTO_IP, IP_MULTICAST_TTL,
- &hopflag, sizeof(hopflag));
+ (char*)&hopflag, sizeof(hopflag));
}
else if (ai->ai_family == AF_INET6) {
int hopflag6 = mcl->hops;
socketfd = xdmcpSocket6;
setsockopt(socketfd, IPPROTO_IPV6, IPV6_MULTICAST_HOPS,
- &hopflag6, sizeof(hopflag6));
+ (char*)&hopflag6, sizeof(hopflag6));
}
else {
continue;
@@ -1435,6 +1525,10 @@ get_addr_by_name(const char *argtype,
char *pport = portstr;
int gaierr;
+#if defined(WIN32) && defined(TCPCONN)
+ _XSERVTransWSAStartup();
+#endif
+
memset(&hints, 0, sizeof(hints));
hints.ai_socktype = socktype;
@@ -1478,9 +1572,6 @@ get_addr_by_name(const char *argtype,
#ifdef XTHREADS_NEEDS_BYNAMEPARAMS
_Xgethostbynameparams hparams;
#endif
-#if defined(WIN32) && defined(TCPCONN)
- _XSERVTransWSAStartup();
-#endif
if (!(hep = _XGethostbyname(namestr, hparams))) {
FatalError("Xserver: %s unknown host: %s\n", argtype, namestr);
}
@@ -1501,7 +1592,11 @@ static void
get_manager_by_name(int argc, char **argv, int i)
{
+ PSOCKADDR_IN queryAddr = NULL;
+ u_long u_lqueryAddr = 0;
+
if ((i + 1) == argc) {
+
FatalError("Xserver: missing %s host name in command line\n", argv[i]);
}
@@ -1511,6 +1606,9 @@ get_manager_by_name(int argc, char **argv, int i)
, &mgrAddr, &mgrAddrFirst
#endif
);
+ queryAddr = (PSOCKADDR_IN)&ManagerAddress;
+ u_lqueryAddr = queryAddr->sin_addr.S_un.S_addr;
+ match_interface(u_lqueryAddr);
}
static void
diff --git a/xorg-server/os/xprintf.c b/xorg-server/os/xprintf.c
index 80caa5790..58aad894b 100644
--- a/xorg-server/os/xprintf.c
+++ b/xorg-server/os/xprintf.c
@@ -78,9 +78,11 @@
#ifdef __va_copy
#define va_copy __va_copy
#else
+#ifndef _MSC_VER
#error "no working va_copy was found"
#endif
#endif
+#endif
/**
* Varargs sprintf that allocates a string buffer the right size for
@@ -99,11 +101,16 @@ Xvasprintf(char **ret, const char *_X_RESTRICT_KYWD format, va_list va)
return vasprintf(ret, format, va);
#else
int size;
+
+#ifdef _MSC_VER
+ size = vsnprintf(NULL, 0, format, va);
+#else
va_list va2;
va_copy(va2, va);
size = vsnprintf(NULL, 0, format, va2);
va_end(va2);
+#endif
*ret = malloc(size + 1);
if (*ret == NULL)
diff --git a/xorg-server/os/xstrans.c b/xorg-server/os/xstrans.c
index 2bc79e7ae..30de32b1e 100644
--- a/xorg-server/os/xstrans.c
+++ b/xorg-server/os/xstrans.c
@@ -5,13 +5,21 @@
#include <X11/Xfuncproto.h>
/* ErrorF is used by xtrans */
-#ifndef HAVE_DIX_CONFIG_H
+/*#ifndef HAVE_DIX_CONFIG_H
extern _X_EXPORT void
ErrorF(const char *f, ...)
_X_ATTRIBUTE_PRINTF(1, 2);
-#endif
+#endif*/
#define TRANS_REOPEN
#define TRANS_SERVER
#define XSERV_t
+#ifndef TCPCONN
+#define TCPCONN
+#endif
+#ifdef WIN32
+#undef SO_REUSEADDR
+#define SO_BINDRETRYCOUNT 0 // do not try to bind again when it fails, this will speed up searching for a free listening port
+#endif
+
#include <X11/Xtrans/transport.c>
diff --git a/xorg-server/present/makefile b/xorg-server/present/makefile
new file mode 100644
index 000000000..b56430a65
--- /dev/null
+++ b/xorg-server/present/makefile
@@ -0,0 +1,10 @@
+CSRCS = \
+ present.c \
+ present_event.c \
+ present_fake.c \
+ present_fence.c \
+ present_notify.c \
+ present_request.c \
+ present_screen.c
+
+LIBRARY=libpresent
diff --git a/xorg-server/present/present.c b/xorg-server/present/present.c
index f9eef6b26..1bd528b23 100644
--- a/xorg-server/present/present.c
+++ b/xorg-server/present/present.c
@@ -20,8 +20,8 @@
* OF THIS SOFTWARE.
*/
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
#endif
#include "present_priv.h"
diff --git a/xorg-server/present/present_event.c b/xorg-server/present/present_event.c
index a8f7176eb..9015c9371 100644
--- a/xorg-server/present/present_event.c
+++ b/xorg-server/present/present_event.c
@@ -20,8 +20,8 @@
* OF THIS SOFTWARE.
*/
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
#endif
#include "present_priv.h"
@@ -109,24 +109,23 @@ present_send_config_notify(WindowPtr window, int x, int y, int w, int h, int bw,
present_window_priv_ptr window_priv = present_window_priv(window);
if (window_priv) {
- xPresentConfigureNotify cn = {
- .type = GenericEvent,
- .extension = present_request,
- .length = (sizeof(xPresentConfigureNotify) - 32) >> 2,
- .evtype = PresentConfigureNotify,
- .eid = 0,
- .window = window->drawable.id,
- .x = x,
- .y = y,
- .width = w,
- .height = h,
- .off_x = 0,
- .off_y = 0,
- .pixmap_width = w,
- .pixmap_height = h,
- .pixmap_flags = 0
- };
present_event_ptr event;
+ xPresentConfigureNotify cn;
+ cn.type = GenericEvent;
+ cn.extension = present_request;
+ cn.length = (sizeof(xPresentConfigureNotify) - 32) >> 2;
+ cn.evtype = PresentConfigureNotify;
+ cn.eid = 0;
+ cn.window = window->drawable.id;
+ cn.x = x;
+ cn.y = y;
+ cn.width = w;
+ cn.height = h;
+ cn.off_x = 0;
+ cn.off_y = 0;
+ cn.pixmap_width = w;
+ cn.pixmap_height = h;
+ cn.pixmap_flags = 0;
for (event = window_priv->events; event; event = event->next) {
if (event->mask & (1 << PresentConfigureNotify)) {
@@ -143,20 +142,19 @@ present_send_complete_notify(WindowPtr window, CARD8 kind, CARD8 mode, CARD32 se
present_window_priv_ptr window_priv = present_window_priv(window);
if (window_priv) {
- xPresentCompleteNotify cn = {
- .type = GenericEvent,
- .extension = present_request,
- .length = (sizeof(xPresentCompleteNotify) - 32) >> 2,
- .evtype = PresentCompleteNotify,
- .kind = kind,
- .mode = mode,
- .eid = 0,
- .window = window->drawable.id,
- .serial = serial,
- .ust = ust,
- .msc = msc,
- };
present_event_ptr event;
+ xPresentCompleteNotify cn;
+ cn.type = GenericEvent;
+ cn.extension = present_request;
+ cn.length = (sizeof(xPresentCompleteNotify) - 32) >> 2;
+ cn.evtype = PresentCompleteNotify;
+ cn.kind = kind;
+ cn.mode = mode;
+ cn.eid = 0;
+ cn.window = window->drawable.id;
+ cn.serial = serial;
+ cn.ust = ust;
+ cn.msc = msc;
for (event = window_priv->events; event; event = event->next) {
if (event->mask & PresentCompleteNotifyMask) {
@@ -173,18 +171,17 @@ present_send_idle_notify(WindowPtr window, CARD32 serial, PixmapPtr pixmap, stru
present_window_priv_ptr window_priv = present_window_priv(window);
if (window_priv) {
- xPresentIdleNotify in = {
- .type = GenericEvent,
- .extension = present_request,
- .length = (sizeof(xPresentIdleNotify) - 32) >> 2,
- .evtype = PresentIdleNotify,
- .eid = 0,
- .window = window->drawable.id,
- .serial = serial,
- .pixmap = pixmap->drawable.id,
- .idle_fence = present_fence_id(idle_fence)
- };
present_event_ptr event;
+ xPresentIdleNotify in;
+ in.type = GenericEvent;
+ in.extension = present_request;
+ in.length = (sizeof(xPresentIdleNotify) - 32) >> 2;
+ in.evtype = PresentIdleNotify;
+ in.eid = 0;
+ in.window = window->drawable.id;
+ in.serial = serial;
+ in.pixmap = pixmap->drawable.id;
+ in.idle_fence = present_fence_id(idle_fence);
for (event = window_priv->events; event; event = event->next) {
if (event->mask & PresentIdleNotifyMask) {
diff --git a/xorg-server/present/present_fence.c b/xorg-server/present/present_fence.c
index e09657d31..8be32e1a7 100644
--- a/xorg-server/present/present_fence.c
+++ b/xorg-server/present/present_fence.c
@@ -20,8 +20,8 @@
* OF THIS SOFTWARE.
*/
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
#endif
#include "present_priv.h"
diff --git a/xorg-server/present/present_request.c b/xorg-server/present/present_request.c
index 095fa2daf..cd2d334ff 100644
--- a/xorg-server/present/present_request.c
+++ b/xorg-server/present/present_request.c
@@ -20,8 +20,8 @@
* OF THIS SOFTWARE.
*/
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
#endif
#include "present_priv.h"
@@ -30,14 +30,14 @@
static int
proc_present_query_version(ClientPtr client)
{
+ xPresentQueryVersionReply rep;
REQUEST(xPresentQueryVersionReq);
- xPresentQueryVersionReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .majorVersion = PRESENT_MAJOR,
- .minorVersion = PRESENT_MINOR
- };
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.majorVersion = PRESENT_MAJOR;
+ rep.minorVersion = PRESENT_MINOR;
+
REQUEST_SIZE_MATCH(xPresentQueryVersionReq);
(void) stuff;
@@ -199,15 +199,14 @@ proc_present_select_input (ClientPtr client)
static int
proc_present_query_capabilities (ClientPtr client)
{
- REQUEST(xPresentQueryCapabilitiesReq);
- xPresentQueryCapabilitiesReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- };
WindowPtr window;
RRCrtcPtr crtc = NULL;
int r;
+ xPresentQueryCapabilitiesReply rep;
+ REQUEST(xPresentQueryCapabilitiesReq);
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
r = dixLookupWindow(&window, stuff->target, client, DixGetAttrAccess);
switch (r) {
diff --git a/xorg-server/present/present_screen.c b/xorg-server/present/present_screen.c
index 2702cd6ca..6df0c1d99 100644
--- a/xorg-server/present/present_screen.c
+++ b/xorg-server/present/present_screen.c
@@ -20,8 +20,8 @@
* OF THIS SOFTWARE.
*/
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
+#ifdef HAVE_DIX_CONFIG_H
+#include <dix-config.h>
#endif
#include "present_priv.h"
diff --git a/xorg-server/randr/makefile b/xorg-server/randr/makefile
new file mode 100644
index 000000000..9f32cf77d
--- /dev/null
+++ b/xorg-server/randr/makefile
@@ -0,0 +1,28 @@
+LIBRARY=librandr
+XINERAMA=1
+
+XINERAMA_SRCS = rrxinerama.c
+
+librandr_la_SOURCES = \
+ randr.c \
+ randrstr.h \
+ rrcrtc.c \
+ rrdispatch.c \
+ rrinfo.c \
+ rrmode.c \
+ rroutput.c \
+ rrpointer.c \
+ rrproperty.c \
+ rrprovider.c \
+ rrproviderproperty.c \
+ rrscreen.c \
+ rrsdispatch.c \
+ rrtransform.h \
+ rrtransform.c
+
+if XINERAMA
+librandr_la_SOURCES += ${XINERAMA_SRCS}
+endif
+
+CSRCS = $(filter %.c,$(librandr_la_SOURCES))
+
diff --git a/xorg-server/randr/randr.c b/xorg-server/randr/randr.c
index 3c5142771..87729e430 100644
--- a/xorg-server/randr/randr.c
+++ b/xorg-server/randr/randr.c
@@ -433,15 +433,16 @@ static void
RRDeliverResourceEvent(ClientPtr client, WindowPtr pWin)
{
ScreenPtr pScreen = pWin->drawable.pScreen;
+ xRRResourceChangeNotifyEvent re;
rrScrPriv(pScreen);
- xRRResourceChangeNotifyEvent re = {
- .type = RRNotify + RREventBase,
- .subCode = RRNotify_ResourceChange,
- .timestamp = pScrPriv->lastSetTime.milliseconds,
- .window = pWin->drawable.id
- };
+
+ re.type = RRNotify + RREventBase;
+ re.subCode = RRNotify_ResourceChange;
+ re.timestamp = pScrPriv->lastSetTime.milliseconds;
+ re.window = pWin->drawable.id;
+
WriteEventsToClient(client, 1, (xEvent *) &re);
}
diff --git a/xorg-server/randr/rrcrtc.c b/xorg-server/randr/rrcrtc.c
index 99b3dca08..18b1389a1 100644
--- a/xorg-server/randr/rrcrtc.c
+++ b/xorg-server/randr/rrcrtc.c
@@ -238,21 +238,22 @@ RRDeliverCrtcEvent(ClientPtr client, WindowPtr pWin, RRCrtcPtr crtc)
ScreenPtr pScreen = pWin->drawable.pScreen;
rrScrPriv(pScreen);
+ xRRCrtcChangeNotifyEvent ce;
RRModePtr mode = crtc->mode;
- xRRCrtcChangeNotifyEvent ce = {
- .type = RRNotify + RREventBase,
- .subCode = RRNotify_CrtcChange,
- .timestamp = pScrPriv->lastSetTime.milliseconds,
- .window = pWin->drawable.id,
- .crtc = crtc->id,
- .mode = mode ? mode->mode.id : None,
- .rotation = crtc->rotation,
- .x = mode ? crtc->x : 0,
- .y = mode ? crtc->y : 0,
- .width = mode ? mode->mode.width : 0,
- .height = mode ? mode->mode.height : 0
- };
+
+ ce.type = RRNotify + RREventBase;
+ ce.subCode = RRNotify_CrtcChange;
+ ce.timestamp = pScrPriv->lastSetTime.milliseconds;
+ ce.window = pWin->drawable.id;
+ ce.crtc = crtc->id;
+ ce.mode = mode ? mode->mode.id : None;
+ ce.rotation = crtc->rotation;
+ ce.x = mode ? crtc->x : 0;
+ ce.y = mode ? crtc->y : 0;
+ ce.width = mode ? mode->mode.width : 0;
+ ce.height = mode ? mode->mode.height : 0;
+
WriteEventsToClient(client, 1, (xEvent *) &ce);
}
@@ -898,13 +899,13 @@ ProcRRGetCrtcInfo(ClientPtr client)
mode = crtc->mode;
- rep = (xRRGetCrtcInfoReply) {
- .type = X_Reply,
- .status = RRSetConfigSuccess,
- .sequenceNumber = client->sequence,
- .length = 0,
- .timestamp = pScrPriv->lastSetTime.milliseconds
- };
+
+ rep.type = X_Reply;
+ rep.status = RRSetConfigSuccess;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.timestamp = pScrPriv->lastSetTime.milliseconds;
+
if (pScrPriv->rrGetPanning &&
pScrPriv->rrGetPanning(pScreen, crtc, &panned_area, NULL, NULL) &&
(panned_area.x2 > panned_area.x1) && (panned_area.y2 > panned_area.y1))
@@ -1171,13 +1172,12 @@ ProcRRSetCrtcConfig(ClientPtr client)
sendReply:
free(outputs);
- rep = (xRRSetCrtcConfigReply) {
- .type = X_Reply,
- .status = status,
- .sequenceNumber = client->sequence,
- .length = 0,
- .newTimestamp = pScrPriv->lastSetTime.milliseconds
- };
+
+ rep.type = X_Reply;
+ rep.status = status;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.newTimestamp = pScrPriv->lastSetTime.milliseconds;
if (client->swapped) {
swaps(&rep.sequenceNumber);
@@ -1213,13 +1213,12 @@ ProcRRGetPanning(ClientPtr client)
if (!pScrPriv)
return RRErrorBase + BadRRCrtc;
- rep = (xRRGetPanningReply) {
- .type = X_Reply,
- .status = RRSetConfigSuccess,
- .sequenceNumber = client->sequence,
- .length = 1,
- .timestamp = pScrPriv->lastSetTime.milliseconds
- };
+ memset(&rep, 0, sizeof(rep));
+ rep.type = X_Reply;
+ rep.status = RRSetConfigSuccess;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 1;
+ rep.timestamp = pScrPriv->lastSetTime.milliseconds;
if (pScrPriv->rrGetPanning &&
pScrPriv->rrGetPanning(pScreen, crtc, &total, &tracking, border)) {
@@ -1313,13 +1312,12 @@ ProcRRSetPanning(ClientPtr client)
status = RRSetConfigSuccess;
sendReply:
- rep = (xRRSetPanningReply) {
- .type = X_Reply,
- .status = status,
- .sequenceNumber = client->sequence,
- .length = 0,
- .newTimestamp = pScrPriv->lastSetTime.milliseconds
- };
+
+ rep.type = X_Reply;
+ rep.status = status;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.newTimestamp = pScrPriv->lastSetTime.milliseconds;
if (client->swapped) {
swaps(&rep.sequenceNumber);
@@ -1344,12 +1342,12 @@ ProcRRGetCrtcGammaSize(ClientPtr client)
if (!RRCrtcGammaGet(crtc))
return RRErrorBase + BadRRCrtc;
- reply = (xRRGetCrtcGammaSizeReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .size = crtc->gammaSize
- };
+
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = 0;
+ reply.size = crtc->gammaSize;
+
if (client->swapped) {
swaps(&reply.sequenceNumber);
swapl(&reply.length);
@@ -1383,12 +1381,12 @@ ProcRRGetCrtcGamma(ClientPtr client)
return BadAlloc;
}
- reply = (xRRGetCrtcGammaReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(len),
- .size = crtc->gammaSize
- };
+
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = bytes_to_int32(len);
+ reply.size = crtc->gammaSize;
+
if (client->swapped) {
swaps(&reply.sequenceNumber);
swapl(&reply.length);
diff --git a/xorg-server/randr/rrdispatch.c b/xorg-server/randr/rrdispatch.c
index 7fbc9f01c..f9b26c137 100644
--- a/xorg-server/randr/rrdispatch.c
+++ b/xorg-server/randr/rrdispatch.c
@@ -35,17 +35,17 @@ RRClientKnowsRates(ClientPtr pClient)
static int
ProcRRQueryVersion(ClientPtr client)
{
- xRRQueryVersionReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+ xRRQueryVersionReply rep;
REQUEST(xRRQueryVersionReq);
rrClientPriv(client);
REQUEST_SIZE_MATCH(xRRQueryVersionReq);
pRRClient->major_version = stuff->majorVersion;
pRRClient->minor_version = stuff->minorVersion;
+ memset(&rep, 0, sizeof(rep));
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
if (version_compare(stuff->majorVersion, stuff->minorVersion,
SERVER_RANDR_MAJOR_VERSION,
diff --git a/xorg-server/randr/rrmode.c b/xorg-server/randr/rrmode.c
index f5d3f9e54..c0fa709a0 100644
--- a/xorg-server/randr/rrmode.c
+++ b/xorg-server/randr/rrmode.c
@@ -312,12 +312,11 @@ ProcRRCreateMode(ClientPtr client)
if (!mode)
return error;
- rep = (xRRCreateModeReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .mode = mode->mode.id
- };
+ memset(&rep, 0, sizeof(rep));
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.mode = mode->mode.id;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
diff --git a/xorg-server/randr/rroutput.c b/xorg-server/randr/rroutput.c
index 2b0b82f4c..a6d910b3e 100644
--- a/xorg-server/randr/rroutput.c
+++ b/xorg-server/randr/rroutput.c
@@ -308,22 +308,23 @@ RRDeliverOutputEvent(ClientPtr client, WindowPtr pWin, RROutputPtr output)
ScreenPtr pScreen = pWin->drawable.pScreen;
rrScrPriv(pScreen);
+ xRROutputChangeNotifyEvent oe;
RRCrtcPtr crtc = output->crtc;
RRModePtr mode = crtc ? crtc->mode : NULL;
- xRROutputChangeNotifyEvent oe = {
- .type = RRNotify + RREventBase,
- .subCode = RRNotify_OutputChange,
- .timestamp = pScrPriv->lastSetTime.milliseconds,
- .configTimestamp = pScrPriv->lastConfigTime.milliseconds,
- .window = pWin->drawable.id,
- .output = output->id,
- .crtc = crtc ? crtc->id : None,
- .mode = mode ? mode->mode.id : None,
- .rotation = crtc ? crtc->rotation : RR_Rotate_0,
- .connection = output->connection,
- .subpixelOrder = output->subpixelOrder
- };
+
+ oe.type = RRNotify + RREventBase;
+ oe.subCode = RRNotify_OutputChange;
+ oe.timestamp = pScrPriv->lastSetTime.milliseconds;
+ oe.configTimestamp = pScrPriv->lastConfigTime.milliseconds;
+ oe.window = pWin->drawable.id;
+ oe.output = output->id;
+ oe.crtc = crtc ? crtc->id : None;
+ oe.mode = mode ? mode->mode.id : None;
+ oe.rotation = crtc ? crtc->rotation : RR_Rotate_0;
+ oe.connection = output->connection;
+ oe.subpixelOrder = output->subpixelOrder;
+
WriteEventsToClient(client, 1, (xEvent *) &oe);
}
@@ -424,23 +425,23 @@ ProcRRGetOutputInfo(ClientPtr client)
pScreen = output->pScreen;
pScrPriv = rrGetScrPriv(pScreen);
- rep = (xRRGetOutputInfoReply) {
- .type = X_Reply,
- .status = RRSetConfigSuccess,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(OutputInfoExtra),
- .timestamp = pScrPriv->lastSetTime.milliseconds,
- .crtc = output->crtc ? output->crtc->id : None,
- .mmWidth = output->mmWidth,
- .mmHeight = output->mmHeight,
- .connection = output->connection,
- .subpixelOrder = output->subpixelOrder,
- .nCrtcs = output->numCrtcs,
- .nModes = output->numModes + output->numUserModes,
- .nPreferred = output->numPreferred,
- .nClones = output->numClones,
- .nameLength = output->nameLength
- };
+
+ rep.type = X_Reply;
+ rep.status = RRSetConfigSuccess;
+ rep.sequenceNumber = client->sequence;
+ rep.length = bytes_to_int32(OutputInfoExtra);
+ rep.timestamp = pScrPriv->lastSetTime.milliseconds;
+ rep.crtc = output->crtc ? output->crtc->id : None;
+ rep.mmWidth = output->mmWidth;
+ rep.mmHeight = output->mmHeight;
+ rep.connection = output->connection;
+ rep.subpixelOrder = output->subpixelOrder;
+ rep.nCrtcs = output->numCrtcs;
+ rep.nModes = output->numModes + output->numUserModes;
+ rep.nPreferred = output->numPreferred;
+ rep.nClones = output->numClones;
+ rep.nameLength = output->nameLength;
+
extraLen = ((output->numCrtcs +
output->numModes + output->numUserModes +
output->numClones + bytes_to_int32(rep.nameLength)) << 2);
@@ -573,11 +574,10 @@ ProcRRGetOutputPrimary(ClientPtr client)
if (pScrPriv)
primary = pScrPriv->primaryOutput;
- rep = (xRRGetOutputPrimaryReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .output = primary ? primary->id : None
- };
+ memset(&rep, 0, sizeof(rep));
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.output = primary ? primary->id : None;
if (client->swapped) {
swaps(&rep.sequenceNumber);
diff --git a/xorg-server/randr/rrproperty.c b/xorg-server/randr/rrproperty.c
index 67b546728..dcc640e29 100644
--- a/xorg-server/randr/rrproperty.c
+++ b/xorg-server/randr/rrproperty.c
@@ -65,14 +65,13 @@ RRDestroyOutputProperty(RRPropertyPtr prop)
static void
RRDeleteProperty(RROutputRec * output, RRPropertyRec * prop)
{
- xRROutputPropertyNotifyEvent event = {
- .type = RREventBase + RRNotify,
- .subCode = RRNotify_OutputProperty,
- .output = output->id,
- .state = PropertyDelete,
- .atom = prop->propertyName,
- .timestamp = currentTime.milliseconds
- };
+ xRROutputPropertyNotifyEvent event;
+ event.type = RREventBase + RRNotify;
+ event.subCode = RRNotify_OutputProperty;
+ event.output = output->id;
+ event.state = PropertyDelete;
+ event.atom = prop->propertyName;
+ event.timestamp = currentTime.milliseconds;
RRDeliverPropertyEvent(output->pScreen, (xEvent *) &event);
@@ -238,14 +237,13 @@ RRChangeOutputProperty(RROutputPtr output, Atom property, Atom type,
output->pendingProperties = TRUE;
if (sendevent) {
- xRROutputPropertyNotifyEvent event = {
- .type = RREventBase + RRNotify,
- .subCode = RRNotify_OutputProperty,
- .output = output->id,
- .state = PropertyNewValue,
- .atom = prop->propertyName,
- .timestamp = currentTime.milliseconds
- };
+ xRROutputPropertyNotifyEvent event;
+ event.type = RREventBase + RRNotify;
+ event.subCode = RRNotify_OutputProperty;
+ event.output = output->id;
+ event.state = PropertyNewValue;
+ event.atom = prop->propertyName;
+ event.timestamp = currentTime.milliseconds;
RRDeliverPropertyEvent(output->pScreen, (xEvent *) &event);
}
return Success;
@@ -403,12 +401,12 @@ ProcRRListOutputProperties(ClientPtr client)
if (!(pAtoms = (Atom *) malloc(numProps * sizeof(Atom))))
return BadAlloc;
- rep = (xRRListOutputPropertiesReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(numProps * sizeof(Atom)),
- .nAtoms = numProps
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = bytes_to_int32(numProps * sizeof(Atom));
+ rep.nAtoms = numProps;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -452,14 +450,13 @@ ProcRRQueryOutputProperty(ClientPtr client)
return BadAlloc;
}
- rep = (xRRQueryOutputPropertyReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = prop->num_valid,
- .pending = prop->is_pending,
- .range = prop->range,
- .immutable = prop->immutable
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = prop->num_valid;
+ rep.pending = prop->is_pending;
+ rep.range = prop->range;
+ rep.immutable = prop->immutable;
if (client->swapped) {
swaps(&rep.sequenceNumber);
@@ -611,10 +608,10 @@ ProcRRGetOutputProperty(ClientPtr client)
if (prop->propertyName == stuff->property)
break;
- reply = (xRRGetOutputPropertyReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence
- };
+
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+
if (!prop) {
reply.nItems = 0;
reply.length = 0;
@@ -691,14 +688,14 @@ ProcRRGetOutputProperty(ClientPtr client)
reply.propertyType = prop_value->type;
if (stuff->delete && (reply.bytesAfter == 0)) {
- xRROutputPropertyNotifyEvent event = {
- .type = RREventBase + RRNotify,
- .subCode = RRNotify_OutputProperty,
- .output = output->id,
- .state = PropertyDelete,
- .atom = prop->propertyName,
- .timestamp = currentTime.milliseconds
- };
+ xRROutputPropertyNotifyEvent event;
+ event.type = RREventBase + RRNotify;
+ event.subCode = RRNotify_OutputProperty;
+ event.output = output->id;
+ event.state = PropertyDelete;
+ event.atom = prop->propertyName;
+ event.timestamp = currentTime.milliseconds;
+
RRDeliverPropertyEvent(output->pScreen, (xEvent *) &event);
}
diff --git a/xorg-server/randr/rrprovider.c b/xorg-server/randr/rrprovider.c
index 2334ad277..a18c72259 100644
--- a/xorg-server/randr/rrprovider.c
+++ b/xorg-server/randr/rrprovider.c
@@ -89,23 +89,23 @@ ProcRRGetProviders (ClientPtr client)
if (!pScrPriv)
{
- rep = (xRRGetProvidersReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .timestamp = currentTime.milliseconds,
- .nProviders = 0
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.timestamp = currentTime.milliseconds;
+ rep.nProviders = 0;
+
extra = NULL;
extraLen = 0;
} else {
- rep = (xRRGetProvidersReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .timestamp = pScrPriv->lastSetTime.milliseconds,
- .nProviders = total_providers,
- .length = total_providers
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.timestamp = pScrPriv->lastSetTime.milliseconds;
+ rep.nProviders = total_providers;
+ rep.length = total_providers;
+
extraLen = rep.length << 2;
if (extraLen) {
extra = malloc(extraLen);
@@ -166,18 +166,18 @@ ProcRRGetProviderInfo (ClientPtr client)
pScreen = provider->pScreen;
pScrPriv = rrGetScrPriv(pScreen);
- rep = (xRRGetProviderInfoReply) {
- .type = X_Reply,
- .status = RRSetConfigSuccess,
- .sequenceNumber = client->sequence,
- .length = 0,
- .capabilities = provider->capabilities,
- .nameLength = provider->nameLength,
- .timestamp = pScrPriv->lastSetTime.milliseconds,
- .nCrtcs = pScrPriv->numCrtcs,
- .nOutputs = pScrPriv->numOutputs,
- .nAssociatedProviders = 0
- };
+
+ rep.type = X_Reply;
+ rep.status = RRSetConfigSuccess;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.capabilities = provider->capabilities;
+ rep.nameLength = provider->nameLength;
+ rep.timestamp = pScrPriv->lastSetTime.milliseconds;
+ rep.nCrtcs = pScrPriv->numCrtcs;
+ rep.nOutputs = pScrPriv->numOutputs;
+ rep.nAssociatedProviders = 0;
+
/* count associated providers */
if (provider->offload_sink)
@@ -428,16 +428,17 @@ void
RRDeliverProviderEvent(ClientPtr client, WindowPtr pWin, RRProviderPtr provider)
{
ScreenPtr pScreen = pWin->drawable.pScreen;
+ xRRProviderChangeNotifyEvent pe;
rrScrPriv(pScreen);
- xRRProviderChangeNotifyEvent pe = {
- .type = RRNotify + RREventBase,
- .subCode = RRNotify_ProviderChange,
- .timestamp = pScrPriv->lastSetTime.milliseconds,
- .window = pWin->drawable.id,
- .provider = provider->id
- };
+
+ pe.type = RRNotify + RREventBase;
+ pe.subCode = RRNotify_ProviderChange;
+ pe.timestamp = pScrPriv->lastSetTime.milliseconds;
+ pe.window = pWin->drawable.id;
+ pe.provider = provider->id;
+
WriteEventsToClient(client, 1, (xEvent *) &pe);
}
diff --git a/xorg-server/randr/rrproviderproperty.c b/xorg-server/randr/rrproviderproperty.c
index ab601da9a..be54f259e 100644
--- a/xorg-server/randr/rrproviderproperty.c
+++ b/xorg-server/randr/rrproviderproperty.c
@@ -65,14 +65,14 @@ RRDestroyProviderProperty(RRPropertyPtr prop)
static void
RRDeleteProperty(RRProviderRec * provider, RRPropertyRec * prop)
{
- xRRProviderPropertyNotifyEvent event = {
- .type = RREventBase + RRNotify,
- .subCode = RRNotify_ProviderProperty,
- .provider = provider->id,
- .state = PropertyDelete,
- .atom = prop->propertyName,
- .timestamp = currentTime.milliseconds
- };
+ xRRProviderPropertyNotifyEvent event;
+ event.type = RREventBase + RRNotify;
+ event.subCode = RRNotify_ProviderProperty;
+ event.provider = provider->id;
+ event.state = PropertyDelete;
+ event.atom = prop->propertyName;
+ event.timestamp = currentTime.milliseconds;
+
RRDeliverPropertyEvent(provider->pScreen, (xEvent *) &event);
@@ -238,14 +238,14 @@ RRChangeProviderProperty(RRProviderPtr provider, Atom property, Atom type,
provider->pendingProperties = TRUE;
if (sendevent) {
- xRRProviderPropertyNotifyEvent event = {
- .type = RREventBase + RRNotify,
- .subCode = RRNotify_ProviderProperty,
- .provider = provider->id,
- .state = PropertyNewValue,
- .atom = prop->propertyName,
- .timestamp = currentTime.milliseconds
- };
+ xRRProviderPropertyNotifyEvent event;
+ event.type = RREventBase + RRNotify;
+ event.subCode = RRNotify_ProviderProperty;
+ event.provider = provider->id;
+ event.state = PropertyNewValue;
+ event.atom = prop->propertyName;
+ event.timestamp = currentTime.milliseconds;
+
RRDeliverPropertyEvent(provider->pScreen, (xEvent *) &event);
}
return Success;
@@ -403,12 +403,12 @@ ProcRRListProviderProperties(ClientPtr client)
if (!(pAtoms = (Atom *) malloc(numProps * sizeof(Atom))))
return BadAlloc;
- rep = (xRRListProviderPropertiesReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(numProps * sizeof(Atom)),
- .nAtoms = numProps
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = bytes_to_int32(numProps * sizeof(Atom));
+ rep.nAtoms = numProps;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -449,14 +449,14 @@ ProcRRQueryProviderProperty(ClientPtr client)
if (!extra)
return BadAlloc;
}
- rep = (xRRQueryProviderPropertyReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = prop->num_valid,
- .pending = prop->is_pending,
- .range = prop->range,
- .immutable = prop->immutable
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = prop->num_valid;
+ rep.pending = prop->is_pending;
+ rep.range = prop->range;
+ rep.immutable = prop->immutable;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -581,12 +581,12 @@ ProcRRGetProviderProperty(ClientPtr client)
RRPropertyValuePtr prop_value;
unsigned long n, len, ind;
RRProviderPtr provider;
- xRRGetProviderPropertyReply reply = {
- .type = X_Reply,
- .sequenceNumber = client->sequence
- };
+ xRRGetProviderPropertyReply reply;
char *extra = NULL;
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+
REQUEST_SIZE_MATCH(xRRGetProviderPropertyReq);
if (stuff->delete)
UpdateCurrentTime();
@@ -686,14 +686,14 @@ ProcRRGetProviderProperty(ClientPtr client)
reply.propertyType = prop_value->type;
if (stuff->delete && (reply.bytesAfter == 0)) {
- xRRProviderPropertyNotifyEvent event = {
- .type = RREventBase + RRNotify,
- .subCode = RRNotify_ProviderProperty,
- .provider = provider->id,
- .state = PropertyDelete,
- .atom = prop->propertyName,
- .timestamp = currentTime.milliseconds
- };
+ xRRProviderPropertyNotifyEvent event;
+ event.type = RREventBase + RRNotify;
+ event.subCode = RRNotify_ProviderProperty;
+ event.provider = provider->id;
+ event.state = PropertyDelete;
+ event.atom = prop->propertyName;
+ event.timestamp = currentTime.milliseconds;
+
RRDeliverPropertyEvent(provider->pScreen, (xEvent *) &event);
}
diff --git a/xorg-server/randr/rrscreen.c b/xorg-server/randr/rrscreen.c
index 36179ae89..22a7e984f 100644
--- a/xorg-server/randr/rrscreen.c
+++ b/xorg-server/randr/rrscreen.c
@@ -68,19 +68,18 @@ void
RRSendConfigNotify(ScreenPtr pScreen)
{
WindowPtr pWin = pScreen->root;
- xEvent event = {
- .u.configureNotify.window = pWin->drawable.id,
- .u.configureNotify.aboveSibling = None,
- .u.configureNotify.x = 0,
- .u.configureNotify.y = 0,
+ xEvent event;
+ event.u.configureNotify.window = pWin->drawable.id;
+ event.u.configureNotify.aboveSibling = None;
+ event.u.configureNotify.x = 0;
+ event.u.configureNotify.y = 0;
/* XXX xinerama stuff ? */
- .u.configureNotify.width = pWin->drawable.width,
- .u.configureNotify.height = pWin->drawable.height,
- .u.configureNotify.borderWidth = wBorderWidth(pWin),
- .u.configureNotify.override = pWin->overrideRedirect
- };
+ event.u.configureNotify.width = pWin->drawable.width;
+ event.u.configureNotify.height = pWin->drawable.height;
+ event.u.configureNotify.borderWidth = wBorderWidth(pWin);
+ event.u.configureNotify.override = pWin->overrideRedirect;
event.u.u.type = ConfigureNotify;
DeliverEvents(pWin, &event, 1, NullWindow);
}
@@ -89,20 +88,21 @@ void
RRDeliverScreenEvent(ClientPtr client, WindowPtr pWin, ScreenPtr pScreen)
{
rrScrPriv(pScreen);
+ xRRScreenChangeNotifyEvent se;
RRCrtcPtr crtc = pScrPriv->numCrtcs ? pScrPriv->crtcs[0] : NULL;
WindowPtr pRoot = pScreen->root;
- xRRScreenChangeNotifyEvent se = {
- .type = RRScreenChangeNotify + RREventBase,
- .rotation = (CARD8) (crtc ? crtc->rotation : RR_Rotate_0),
- .timestamp = pScrPriv->lastSetTime.milliseconds,
- .configTimestamp = pScrPriv->lastConfigTime.milliseconds,
- .root = pRoot->drawable.id,
- .window = pWin->drawable.id,
- .subpixelOrder = PictureGetSubpixelOrder(pScreen),
- .sizeID = RR10CurrentSizeID(pScreen)
- };
+ se.type = RRScreenChangeNotify + RREventBase;
+ se.rotation = (CARD8) (crtc ? crtc->rotation : RR_Rotate_0);
+ se.timestamp = pScrPriv->lastSetTime.milliseconds;
+ se.configTimestamp = pScrPriv->lastConfigTime.milliseconds;
+ se.root = pRoot->drawable.id;
+ se.window = pWin->drawable.id;
+ se.subpixelOrder = PictureGetSubpixelOrder(pScreen);
+
+ se.sizeID = RR10CurrentSizeID(pScreen);
+
if (se.rotation & (RR_Rotate_90 | RR_Rotate_270)) {
se.widthInPixels = pScreen->height;
@@ -201,12 +201,11 @@ ProcRRGetScreenSizeRange(ClientPtr client)
pScreen = pWin->drawable.pScreen;
pScrPriv = rrGetScrPriv(pScreen);
- rep = (xRRGetScreenSizeRangeReply) {
- .type = X_Reply,
- .pad = 0,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+
+ rep.type = X_Reply;
+ rep.pad = 0;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
if (pScrPriv) {
if (!RRGetInfo(pScreen, FALSE))
@@ -396,17 +395,17 @@ rrGetMultiScreenResources(ClientPtr client, Bool query, ScreenPtr pScreen)
ErrorF("reporting %d %d %d %d\n", total_crtcs, total_outputs, total_modes, total_name_len);
pScrPriv = rrGetScrPriv(pScreen);
- rep = (xRRGetScreenResourcesReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .timestamp = pScrPriv->lastSetTime.milliseconds,
- .configTimestamp = pScrPriv->lastConfigTime.milliseconds,
- .nCrtcs = total_crtcs,
- .nOutputs = total_outputs,
- .nModes = total_modes,
- .nbytesNames = total_name_len
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.timestamp = pScrPriv->lastSetTime.milliseconds;
+ rep.configTimestamp = pScrPriv->lastConfigTime.milliseconds;
+ rep.nCrtcs = total_crtcs;
+ rep.nOutputs = total_outputs;
+ rep.nModes = total_modes;
+ rep.nbytesNames = total_name_len;
+
rep.length = (total_crtcs + total_outputs + total_modes * bytes_to_int32(SIZEOF(xRRModeInfo)) +
bytes_to_int32(rep.nbytesNames));
@@ -482,6 +481,7 @@ rrGetScreenResources(ClientPtr client, Bool query)
pScreen = pWin->drawable.pScreen;
pScrPriv = rrGetScrPriv(pScreen);
+ rep.pad = 0;
if (query && pScrPriv)
if (!RRGetInfo(pScreen, query))
@@ -491,17 +491,17 @@ rrGetScreenResources(ClientPtr client, Bool query)
return rrGetMultiScreenResources(client, query, pScreen);
if (!pScrPriv) {
- rep = (xRRGetScreenResourcesReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .timestamp = currentTime.milliseconds,
- .configTimestamp = currentTime.milliseconds,
- .nCrtcs = 0,
- .nOutputs = 0,
- .nModes = 0,
- .nbytesNames = 0
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.timestamp = currentTime.milliseconds;
+ rep.configTimestamp = currentTime.milliseconds;
+ rep.nCrtcs = 0;
+ rep.nOutputs = 0;
+ rep.nModes = 0;
+ rep.nbytesNames = 0;
+
extra = NULL;
extraLen = 0;
}
@@ -513,17 +513,16 @@ rrGetScreenResources(ClientPtr client, Bool query)
if (!modes)
return BadAlloc;
- rep = (xRRGetScreenResourcesReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .timestamp = pScrPriv->lastSetTime.milliseconds,
- .configTimestamp = pScrPriv->lastConfigTime.milliseconds,
- .nCrtcs = pScrPriv->numCrtcs,
- .nOutputs = pScrPriv->numOutputs,
- .nModes = num_modes,
- .nbytesNames = 0
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.timestamp = pScrPriv->lastSetTime.milliseconds;
+ rep.configTimestamp = pScrPriv->lastConfigTime.milliseconds;
+ rep.nCrtcs = pScrPriv->numCrtcs;
+ rep.nOutputs = pScrPriv->numOutputs;
+ rep.nModes = num_modes;
+ rep.nbytesNames = 0;
for (i = 0; i < num_modes; i++)
@@ -749,6 +748,7 @@ ProcRRGetScreenInfo(ClientPtr client)
pScreen = pWin->drawable.pScreen;
pScrPriv = rrGetScrPriv(pScreen);
+ rep.pad = 0;
if (pScrPriv)
if (!RRGetInfo(pScreen, TRUE))
@@ -757,20 +757,20 @@ ProcRRGetScreenInfo(ClientPtr client)
output = RRFirstOutput(pScreen);
if (!pScrPriv || !output) {
- rep = (xRRGetScreenInfoReply) {
- .type = X_Reply,
- .setOfRotations = RR_Rotate_0,
- .sequenceNumber = client->sequence,
- .length = 0,
- .root = pWin->drawable.pScreen->root->drawable.id,
- .timestamp = currentTime.milliseconds,
- .configTimestamp = currentTime.milliseconds,
- .nSizes = 0,
- .sizeID = 0,
- .rotation = RR_Rotate_0,
- .rate = 0,
- .nrateEnts = 0
- };
+
+ rep.type = X_Reply;
+ rep.setOfRotations = RR_Rotate_0;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.root = pWin->drawable.pScreen->root->drawable.id;
+ rep.timestamp = currentTime.milliseconds;
+ rep.configTimestamp = currentTime.milliseconds;
+ rep.nSizes = 0;
+ rep.sizeID = 0;
+ rep.rotation = RR_Rotate_0;
+ rep.rate = 0;
+ rep.nrateEnts = 0;
+
extra = 0;
extraLen = 0;
}
@@ -787,20 +787,19 @@ ProcRRGetScreenInfo(ClientPtr client)
if (!pData)
return BadAlloc;
- rep = (xRRGetScreenInfoReply) {
- .type = X_Reply,
- .setOfRotations = output->crtc->rotations,
- .sequenceNumber = client->sequence,
- .length = 0,
- .root = pWin->drawable.pScreen->root->drawable.id,
- .timestamp = pScrPriv->lastSetTime.milliseconds,
- .configTimestamp = pScrPriv->lastConfigTime.milliseconds,
- .rotation = output->crtc->rotation,
- .nSizes = pData->nsize,
- .nrateEnts = pData->nrefresh + pData->nsize,
- .sizeID = pData->size,
- .rate = pData->refresh
- };
+
+ rep.type = X_Reply;
+ rep.setOfRotations = output->crtc->rotations;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.root = pWin->drawable.pScreen->root->drawable.id;
+ rep.timestamp = pScrPriv->lastSetTime.milliseconds;
+ rep.configTimestamp = pScrPriv->lastConfigTime.milliseconds;
+ rep.rotation = output->crtc->rotation;
+ rep.nSizes = pData->nsize;
+ rep.nrateEnts = pData->nrefresh + pData->nsize;
+ rep.sizeID = pData->size;
+ rep.rate = pData->refresh;
extraLen = rep.nSizes * sizeof(xScreenSizes);
if (has_rate)
@@ -1086,17 +1085,16 @@ ProcRRSetScreenConfig(ClientPtr client)
free(pData);
- rep = (xRRSetScreenConfigReply) {
- .type = X_Reply,
- .status = status,
- .sequenceNumber = client->sequence,
- .length = 0,
-
- .newTimestamp = pScrPriv->lastSetTime.milliseconds,
- .newConfigTimestamp = pScrPriv->lastConfigTime.milliseconds,
- .root = pDraw->pScreen->root->drawable.id,
- /* .subpixelOrder = ?? */
- };
+
+ rep.type = X_Reply;
+ rep.status = status;
+ rep.length = 0;
+ rep.sequenceNumber = client->sequence;
+
+ rep.newTimestamp = pScrPriv->lastSetTime.milliseconds;
+ rep.newConfigTimestamp = pScrPriv->lastConfigTime.milliseconds;
+ rep.root = pDraw->pScreen->root->drawable.id;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
diff --git a/xorg-server/randr/rrxinerama.c b/xorg-server/randr/rrxinerama.c
index 76d728c70..86a19757b 100644
--- a/xorg-server/randr/rrxinerama.c
+++ b/xorg-server/randr/rrxinerama.c
@@ -89,15 +89,14 @@ static int SProcRRXineramaDispatch(ClientPtr client);
int
ProcRRXineramaQueryVersion(ClientPtr client)
{
- xPanoramiXQueryVersionReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .majorVersion = SERVER_RRXINERAMA_MAJOR_VERSION,
- .minorVersion = SERVER_RRXINERAMA_MINOR_VERSION
- };
+ xPanoramiXQueryVersionReply rep;
REQUEST_SIZE_MATCH(xPanoramiXQueryVersionReq);
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.majorVersion = SERVER_RRXINERAMA_MAJOR_VERSION;
+ rep.minorVersion = SERVER_RRXINERAMA_MINOR_VERSION;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -131,13 +130,13 @@ ProcRRXineramaGetState(ClientPtr client)
active = TRUE;
}
- rep = (xPanoramiXGetStateReply) {
- .type = X_Reply,
- .state = active,
- .sequenceNumber = client->sequence,
- .length = 0,
- .window = stuff->window
- };
+
+ rep.type = X_Reply;
+ rep.state = active;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.window = stuff->window;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -197,13 +196,13 @@ ProcRRXineramaGetScreenCount(ClientPtr client)
if (rc != Success)
return rc;
- rep = (xPanoramiXGetScreenCountReply) {
- .type = X_Reply,
- .ScreenCount = RRXineramaScreenCount(pWin->drawable.pScreen),
- .sequenceNumber = client->sequence,
- .length = 0,
- .window = stuff->window
- };
+
+ rep.type = X_Reply;
+ rep.ScreenCount = RRXineramaScreenCount(pWin->drawable.pScreen);
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.window = stuff->window;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -230,15 +229,15 @@ ProcRRXineramaGetScreenSize(ClientPtr client)
pScreen = pWin->drawable.pScreen;
pRoot = pScreen->root;
- rep = (xPanoramiXGetScreenSizeReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .width = pRoot->drawable.width,
- .height = pRoot->drawable.height,
- .window = stuff->window,
- .screen = stuff->screen
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.width = pRoot->drawable.width;
+ rep.height = pRoot->drawable.height;
+ rep.window = stuff->window;
+ rep.screen = stuff->screen;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -258,12 +257,12 @@ ProcRRXineramaIsActive(ClientPtr client)
REQUEST_SIZE_MATCH(xXineramaIsActiveReq);
- rep = (xXineramaIsActiveReply) {
- .type = X_Reply,
- .length = 0,
- .sequenceNumber = client->sequence,
- .state = RRXineramaScreenActive(screenInfo.screens[RR_XINERAMA_SCREEN])
- };
+ memset(&rep, 0, sizeof(xXineramaIsActiveReply));
+ rep.type = X_Reply;
+ rep.length = 0;
+ rep.sequenceNumber = client->sequence;
+ rep.state = RRXineramaScreenActive(screenInfo.screens[RR_XINERAMA_SCREEN]);
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -327,12 +326,12 @@ ProcRRXineramaQueryScreens(ClientPtr client)
n = RRXineramaScreenCount(pScreen);
}
- rep = (xXineramaQueryScreensReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(n * sz_XineramaScreenInfo),
- .number = n
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = bytes_to_int32(n * sz_XineramaScreenInfo);
+ rep.number = n;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
diff --git a/xorg-server/record/makefile b/xorg-server/record/makefile
new file mode 100644
index 000000000..1cef2de18
--- /dev/null
+++ b/xorg-server/record/makefile
@@ -0,0 +1,4 @@
+CSRCS = record.c set.c
+
+LIBRARY=librecord
+
diff --git a/xorg-server/record/record.c b/xorg-server/record/record.c
index 2c70460e8..1b7eb8a43 100644
--- a/xorg-server/record/record.c
+++ b/xorg-server/record/record.c
@@ -1819,15 +1819,14 @@ static int
ProcRecordQueryVersion(ClientPtr client)
{
/* REQUEST(xRecordQueryVersionReq); */
- xRecordQueryVersionReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .majorVersion = SERVER_RECORD_MAJOR_VERSION,
- .minorVersion = SERVER_RECORD_MINOR_VERSION
- };
+ xRecordQueryVersionReply rep;
REQUEST_SIZE_MATCH(xRecordQueryVersionReq);
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.majorVersion = SERVER_RECORD_MAJOR_VERSION;
+ rep.minorVersion = SERVER_RECORD_MINOR_VERSION;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swaps(&rep.majorVersion);
@@ -2235,14 +2234,14 @@ ProcRecordGetContext(ClientPtr client)
/* write the reply header */
- rep = (xRecordGetContextReply) {
- .type = X_Reply,
- .enabled = pContext->pRecordingClient != NULL,
- .sequenceNumber = client->sequence,
- .length = length,
- .elementHeader = pContext->elemHeaders,
- .nClients = nClients
- };
+
+ rep.type = X_Reply;
+ rep.enabled = pContext->pRecordingClient != NULL;
+ rep.sequenceNumber = client->sequence;
+ rep.length = length;
+ rep.elementHeader = pContext->elemHeaders;
+ rep.nClients = nClients;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
diff --git a/xorg-server/render/makefile b/xorg-server/render/makefile
new file mode 100644
index 000000000..86d66a6d3
--- /dev/null
+++ b/xorg-server/render/makefile
@@ -0,0 +1,15 @@
+
+LIBRARY=librender
+
+CSRCS = \
+ animcur.c \
+ filter.c \
+ glyph.c \
+ matrix.c \
+ miindex.c \
+ mipict.c \
+ mirect.c \
+ mitrap.c \
+ mitri.c \
+ picture.c \
+ render.c
diff --git a/xorg-server/render/mipict.c b/xorg-server/render/mipict.c
index 2e64b20ff..421df5aa8 100644
--- a/xorg-server/render/mipict.c
+++ b/xorg-server/render/mipict.c
@@ -246,7 +246,7 @@ miChangePictureFilter(PicturePtr pPicture,
#define BOUND(v) (INT16) ((v) < MINSHORT ? MINSHORT : (v) > MAXSHORT ? MAXSHORT : (v))
-static inline pixman_bool_t
+static __inline pixman_bool_t
miClipPictureReg(pixman_region16_t * pRegion,
pixman_region16_t * pClip, int dx, int dy)
{
diff --git a/xorg-server/render/render.c b/xorg-server/render/render.c
index 51f75ae7e..b159021e2 100644
--- a/xorg-server/render/render.c
+++ b/xorg-server/render/render.c
@@ -268,11 +268,7 @@ static int
ProcRenderQueryVersion(ClientPtr client)
{
RenderClientPtr pRenderClient = GetRenderClient(client);
- xRenderQueryVersionReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+ xRenderQueryVersionReply rep;
REQUEST(xRenderQueryVersionReq);
@@ -280,6 +276,10 @@ ProcRenderQueryVersion(ClientPtr client)
pRenderClient->minor_version = stuff->minorVersion;
REQUEST_SIZE_MATCH(xRenderQueryVersionReq);
+ memset(&rep, 0, sizeof(xRenderQueryVersionReply));
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
if ((stuff->majorVersion * 1000 + stuff->minorVersion) <
(SERVER_RENDER_MAJOR_VERSION * 1000 + SERVER_RENDER_MINOR_VERSION)) {
diff --git a/xorg-server/startmulti.bat b/xorg-server/startmulti.bat
new file mode 100644
index 000000000..6b989d2aa
--- /dev/null
+++ b/xorg-server/startmulti.bat
@@ -0,0 +1 @@
+vcxsrv :1 -ac -terminate -lesspointer -multiwindow -xkblayout be -xkbmodel pc105 -clipboard -logverbose 4
diff --git a/xorg-server/startxdmcp.bat b/xorg-server/startxdmcp.bat
new file mode 100644
index 000000000..b2af85f53
--- /dev/null
+++ b/xorg-server/startxdmcp.bat
@@ -0,0 +1,2 @@
+vcxsrv :1 -query 192.168.37.20 -clipboard -ac -xkblayout be -xkbmodel pc105 -logverbose 4 -once
+
diff --git a/xorg-server/system.XWinrc b/xorg-server/system.XWinrc
new file mode 100644
index 000000000..1d4c2b208
--- /dev/null
+++ b/xorg-server/system.XWinrc
@@ -0,0 +1,127 @@
+# XWin Server Resource File - EXAMPLE
+# Earle F. Philhower, III
+
+# Place in ~/.XWinrc or in /etc/X11/system.XWinrc
+
+# Keywords are case insensitive, comments legal pretty much anywhere
+# you can have an end-of-line
+
+# Comments begin with "#" or "//" and go to the end-of-line
+
+# Paths to icons are **WINDOWS** based (i.e. c:\windows\icons)
+
+# Menus are defined as...
+# MENU <name> {
+# <Menu Text> EXEC <command>
+# ^^ This command will have any "%display%"
+# string replaced with the proper display
+# variable (i.e. 127.0.0.1:<display>.0)
+# (This should only rarely be needed as
+# the DISPLAY environment variable is also
+# set correctly)
+# or <Menu Text> MENU <name-of-some-prior-defined-menu>
+# or <Menu Text> ALWAYSONTOP
+# ^^ Sets the window to display above all others
+# or <Menu Text> RELOAD
+# ^^ Causes ~/.XWinrc or the system.XWinrc file
+# to be reloaded and icons and menus regenerated
+# or SEPARATOR
+# ...
+# }
+
+# Set the taskmar menu with
+# ROOTMENU <name-of-some-prior-defined-menu>
+
+# If you want a menu to be applied to all popup window's system menu
+# DEFAULTSYSMENU <name-of-some-prior-defined-menu> <atstart|atend>
+
+# To choose a specific menu for a specific WM_CLASS or WM_NAME use ...
+# SYSMENU {
+# <class-or-name-of-window> <name-of-prior-defined-menu> <atstart|atend>
+# ...
+# }
+
+# When specifying an ICONFILE in the following commands several different
+# formats are allowed:
+# 1. Name of a regular Windows .ico format file
+# (ex: "cygwin.ico", "apple.ico")
+# 2. Name and index into a Windows .DLL
+# (ex: "c:\windows\system32\shell32.dll,4" gives the default folder icon
+# "c:\windows\system32\shell32.dll,5" gives the floppy drive icon)
+# 3. Index into XWin.EXE internal ICON resource
+# (ex: ",101" is the 1st icon inside XWin.exe)
+
+# To define where ICO files live (** Windows path**)
+# ICONDIRECTORY <windows-path i.e. c:\cygwin\usr\icons>
+# NOTE: If you specify a fully qualified path to an ICON below
+# (i.e. "c:\xxx" or "d:\xxxx")
+# this ICONDIRECTORY will not be prepended
+
+# To change the taskbar icon use...
+# TRAYICON <name-of-windows-ico-file-in-icondirectory>
+
+# To define a replacement for the standard X icon for apps w/o specified icons
+# DEFAULTICON <name-of-windows-ico-file-in-icondirectory>
+
+# To define substitute icons on a per-window basis use...
+# ICONS {
+# <class-or-name-of-window> <icon-file-name.ico>
+# ...
+# }
+# In the case where multiple matches occur, the first listed in the ICONS
+# section will be chosen.
+
+# To disable exit confirmation dialog add the line containing SilentExit
+
+# DEBUG <string> prints out the string to the XWin.log file
+
+// Below are just some silly menus to demonstrate writing your
+// own configuration file.
+
+// Make some menus...
+menu apps {
+ xcalc exec "xcalc"
+ xclock exec "xclock"
+ xwininfo exec "xwininfo -pause"
+}
+
+menu root {
+// Comments fit here, too...
+ "Reload system.XWinrc" RELOAD
+ "Applications" menu apps
+ Separator
+ "Show log" exec "notepad %logfile%"
+ Separator
+}
+
+menu aot {
+ Separator
+ "Always on Top" alwaysontop
+}
+
+menu xtermspecial {
+ "Emacs" exec "emacs"
+ "Always on Top" alwaysontop
+ Separator
+}
+
+RootMenu root
+
+DefaultSysMenu aot atend
+
+SysMenu {
+ "xterm" xtermspecial atstart
+}
+
+# IconDirectory "c:\winnt\"
+
+# DefaultIcon "reinstall.ico"
+
+# Icons {
+# "xterm" "uninstall.ico"
+# }
+
+# SilentExit
+
+# DEBUG "Done parsing the configuration file..."
+
diff --git a/xorg-server/vcxsrv.sln b/xorg-server/vcxsrv.sln
new file mode 100644
index 000000000..a581eb181
--- /dev/null
+++ b/xorg-server/vcxsrv.sln
@@ -0,0 +1,26 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{911E67C6-3D85-4FCE-B560-20A9C3E3FF48}") = "vcxsrv", "vcxsrv.exe", "{0A7F2844-C7BA-43E2-B7AE-48070F7AA1A7}"
+ ProjectSection(DebuggerProjectSystem) = preProject
+ PortSupplier = 00000000-0000-0000-0000-000000000000
+ Executable = D:\vcxsrv x server\trunk\xorg-server\vcxsrv.exe
+ RemoteMachine = OAB1MAHAENEW
+ StartingDirectory = D:\vcxsrv x server\trunk\xorg-server
+ Environment = Default
+ LaunchingEngine = 00000000-0000-0000-0000-000000000000
+ LaunchSQLEngine = No
+ AttachLaunchAction = No
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Default = Debug|Default
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {0A7F2844-C7BA-43E2-B7AE-48070F7AA1A7}.Debug|Default.ActiveCfg = Debug
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/xorg-server/xfixes/cursor.c b/xorg-server/xfixes/cursor.c
index 753d5f7bc..1ad7519ec 100644
--- a/xorg-server/xfixes/cursor.c
+++ b/xorg-server/xfixes/cursor.c
@@ -44,6 +44,8 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
+#else
+#define XFIXES
#endif
#include "xfixesint.h"
@@ -156,14 +158,13 @@ CursorDisplayCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
CursorCurrent[pDev->id] = pCursor;
for (e = cursorEvents; e; e = e->next) {
if ((e->eventMask & XFixesDisplayCursorNotifyMask)) {
- xXFixesCursorNotifyEvent ev = {
- .type = XFixesEventBase + XFixesCursorNotify,
- .subtype = XFixesDisplayCursorNotify,
- .window = e->pWindow->drawable.id,
- .cursorSerial = pCursor ? pCursor->serialNumber : 0,
- .timestamp = currentTime.milliseconds,
- .name = pCursor ? pCursor->name : None
- };
+ xXFixesCursorNotifyEvent ev;
+ ev.type = XFixesEventBase + XFixesCursorNotify;
+ ev.subtype = XFixesDisplayCursorNotify;
+ ev.window = e->pWindow->drawable.id;
+ ev.cursorSerial = pCursor ? pCursor->serialNumber : 0;
+ ev.timestamp = currentTime.milliseconds;
+ ev.name = pCursor ? pCursor->name : None;
WriteEventsToClient(e->pClient, 1, (xEvent *) &ev);
}
}
@@ -456,13 +457,13 @@ ProcXFixesGetCursorName(ClientPtr client)
str = "";
len = strlen(str);
- reply = (xXFixesGetCursorNameReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(len),
- .atom = pCursor->name,
- .nbytes = len
- };
+
+ reply.type = X_Reply;
+ reply.sequenceNumber = client->sequence;
+ reply.length = bytes_to_int32(len);
+ reply.atom = pCursor->name;
+ reply.nbytes = len;
+
if (client->swapped) {
swaps(&reply.sequenceNumber);
swapl(&reply.length);
diff --git a/xorg-server/xfixes/makefile b/xorg-server/xfixes/makefile
new file mode 100644
index 000000000..73df36c4e
--- /dev/null
+++ b/xorg-server/xfixes/makefile
@@ -0,0 +1,9 @@
+CSRCS = cursor.c \
+ region.c \
+ saveset.c \
+ select.c \
+ xfixes.c
+
+LIBRARY=libxfixes
+
+
diff --git a/xorg-server/xfixes/select.c b/xorg-server/xfixes/select.c
index ee8ed6f68..17fb0b583 100644
--- a/xorg-server/xfixes/select.c
+++ b/xorg-server/xfixes/select.c
@@ -77,16 +77,15 @@ XFixesSelectionCallback(CallbackListPtr *callbacks, pointer data, pointer args)
}
for (e = selectionEvents; e; e = e->next) {
if (e->selection == selection->selection && (e->eventMask & eventMask)) {
- xXFixesSelectionNotifyEvent ev = {
- .type = XFixesEventBase + XFixesSelectionNotify,
- .subtype = subtype,
- .window = e->pWindow->drawable.id,
- .owner = (subtype == XFixesSetSelectionOwnerNotify) ?
- selection->window : 0,
- .selection = e->selection,
- .timestamp = currentTime.milliseconds,
- .selectionTimestamp = selection->lastTimeChanged.milliseconds
- };
+ xXFixesSelectionNotifyEvent ev;
+ ev.type = XFixesEventBase + XFixesSelectionNotify;
+ ev.subtype = subtype;
+ ev.window = e->pWindow->drawable.id;
+ ev.owner = (subtype == XFixesSetSelectionOwnerNotify) ?
+ selection->window : 0;
+ ev.selection = e->selection;
+ ev.timestamp = currentTime.milliseconds;
+ ev.selectionTimestamp = selection->lastTimeChanged.milliseconds;
WriteEventsToClient(e->pClient, 1, (xEvent *) &ev);
}
}
diff --git a/xorg-server/xfixes/xfixes.c b/xorg-server/xfixes/xfixes.c
index 48af9ea6e..c377d233c 100644
--- a/xorg-server/xfixes/xfixes.c
+++ b/xorg-server/xfixes/xfixes.c
@@ -62,15 +62,15 @@ static int
ProcXFixesQueryVersion(ClientPtr client)
{
XFixesClientPtr pXFixesClient = GetXFixesClient(client);
- xXFixesQueryVersionReply rep = {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+ xXFixesQueryVersionReply rep;
REQUEST(xXFixesQueryVersionReq);
REQUEST_SIZE_MATCH(xXFixesQueryVersionReq);
+ memset(&rep, 0, sizeof(xXFixesQueryVersionReply));
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
if (version_compare(stuff->majorVersion, stuff->minorVersion,
SERVER_XFIXES_MAJOR_VERSION,
diff --git a/xorg-server/xkb/XKBMisc.c b/xorg-server/xkb/XKBMisc.c
index 6abd1d11a..6280637d6 100644
--- a/xorg-server/xkb/XKBMisc.c
+++ b/xorg-server/xkb/XKBMisc.c
@@ -330,7 +330,7 @@ _XkbFindMatchingInterp(XkbDescPtr xkb,
static void
_XkbAddKeyChange(KeyCode *pFirst, unsigned char *pNum, KeyCode newKey)
{
- KeyCode last;
+ int last;
last = (*pFirst) + (*pNum);
if (newKey < *pFirst) {
diff --git a/xorg-server/xkb/ddxPrivate.c b/xorg-server/xkb/ddxPrivate.c
index fcde3a18c..c4d21cb9c 100644
--- a/xorg-server/xkb/ddxPrivate.c
+++ b/xorg-server/xkb/ddxPrivate.c
@@ -3,12 +3,44 @@
#include <dix-config.h>
#endif
+#ifdef HAVE_XORG_CONFIG_H
+#include <xorg-config.h>
+#endif
+
+#include <stdio.h>
#include <X11/X.h>
#include "windowstr.h"
+#define XKBSRV_NEED_FILE_FUNCS
#include <xkbsrv.h>
+#include "dixgrabs.h"
+#include "os.h"
+#include "xf86.h"
+
int
XkbDDXPrivate(DeviceIntPtr dev, KeyCode key, XkbAction *act)
{
+ XkbAnyAction *xf86act = &(act->any);
+ char msgbuf[XkbAnyActionDataSize+1];
+
+ if (xf86act->type == XkbSA_XFree86Private) {
+ memcpy(msgbuf, xf86act->data, XkbAnyActionDataSize);
+ msgbuf[XkbAnyActionDataSize]= '\0';
+ if (strcasecmp(msgbuf, "prgrbs")==0) {
+ DeviceIntPtr tmp;
+ ErrorF("Printing all currently active device grabs:\n");
+ for (tmp = inputInfo.devices; tmp; tmp = tmp->next)
+ if (tmp->deviceGrab.grab)
+ PrintDeviceGrabInfo(tmp);
+ ErrorF("End list of active device grabs\n");
+ }
+ else if (strcasecmp(msgbuf, "ungrab")==0)
+ UngrabAllDevices(FALSE);
+ else if (strcasecmp(msgbuf, "clsgrb")==0)
+ UngrabAllDevices(TRUE);
+ else if (strcasecmp(msgbuf, "prwins")==0)
+ PrintWindowTree();
+ }
+
return 0;
}
diff --git a/xorg-server/xkb/makefile b/xorg-server/xkb/makefile
new file mode 100755
index 000000000..71a327c8e
--- /dev/null
+++ b/xorg-server/xkb/makefile
@@ -0,0 +1,41 @@
+DEFINES += HAVE_XKB_CONFIG_H
+
+DDX_SRCS = \
+ ddxBeep.c \
+ ddxCtrls.c \
+ ddxLEDs.c \
+ ddxLoad.c
+
+DIX_SRCS = \
+ xkb.c \
+ xkbUtils.c \
+ xkbEvents.c \
+ xkbAccessX.c \
+ xkbSwap.c \
+ xkbLEDs.c \
+ xkbInit.c \
+ xkbActions.c \
+ xkbPrKeyEv.c
+
+# this should be replaced by a common library or something, ideally -d
+XKBFILE_SRCS = \
+ maprules.c \
+ xkmread.c \
+ xkbtext.c \
+ xkbfmisc.c \
+ xkbout.c
+
+X11_SRCS = \
+ XKBMisc.c \
+ XKBAlloc.c \
+ XKBGAlloc.c \
+ XKBMAlloc.c
+
+# ends up unused...
+# XI_SRCS = xkbPrOtherEv.c
+
+CSRCS = $(DDX_SRCS) $(DIX_SRCS) $(XI_SRCS) $(XKBFILE_SRCS) \
+ $(X11_SRCS) ddxVT.c ddxPrivate.c ddxKillSrv.c
+
+LIBRARY=libxkb
+
diff --git a/xorg-server/xkb/xkb.c b/xorg-server/xkb/xkb.c
index c78aceb78..408775039 100644
--- a/xorg-server/xkb/xkb.c
+++ b/xorg-server/xkb/xkb.c
@@ -182,14 +182,13 @@ ProcXkbUseExtension(ClientPtr client)
stuff->wantedMinor, SERVER_XKB_MAJOR_VERSION,
SERVER_XKB_MINOR_VERSION);
}
- rep = (xkbUseExtensionReply) {
- .type = X_Reply,
- .supported = supported,
- .sequenceNumber = client->sequence,
- .length = 0,
- .serverMajor = SERVER_XKB_MAJOR_VERSION,
- .serverMinor = SERVER_XKB_MINOR_VERSION
- };
+ memset(&rep, 0, sizeof(xkbUseExtensionReply));
+ rep.type = X_Reply;
+ rep.supported = supported;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.serverMajor = SERVER_XKB_MAJOR_VERSION;
+ rep.serverMinor = SERVER_XKB_MINOR_VERSION;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swaps(&rep.serverMajor);
@@ -579,22 +578,21 @@ ProcXkbGetState(ClientPtr client)
CHK_KBD_DEVICE(dev, stuff->deviceSpec, client, DixGetAttrAccess);
xkb = &dev->key->xkbInfo->state;
- rep = (xkbGetStateReply) {
- .type = X_Reply,
- .deviceID = dev->id,
- .sequenceNumber = client->sequence,
- .length = 0,
- .mods = XkbStateFieldFromRec(xkb) & 0xff,
- .baseMods = xkb->base_mods,
- .latchedMods = xkb->latched_mods,
- .lockedMods = xkb->locked_mods,
- .group = xkb->group,
- .lockedGroup = xkb->locked_group,
- .baseGroup = xkb->base_group,
- .latchedGroup = xkb->latched_group,
- .compatState = xkb->compat_state,
- .ptrBtnState = xkb->ptr_buttons
- };
+ memset(&rep, 0, sizeof(xkbGetStateReply));
+ rep.type = X_Reply;
+ rep.deviceID = dev->id;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.mods = XkbStateFieldFromRec(xkb) & 0xff;
+ rep.baseMods = xkb->base_mods;
+ rep.latchedMods = xkb->latched_mods;
+ rep.lockedMods = xkb->locked_mods;
+ rep.group = xkb->group;
+ rep.lockedGroup = xkb->locked_group;
+ rep.baseGroup = xkb->base_group;
+ rep.latchedGroup = xkb->latched_group;
+ rep.compatState = xkb->compat_state;
+ rep.ptrBtnState = xkb->ptr_buttons;
if (client->swapped) {
swaps(&rep.sequenceNumber);
swaps(&rep.ptrBtnState);
@@ -691,38 +689,38 @@ ProcXkbGetControls(ClientPtr client)
CHK_KBD_DEVICE(dev, stuff->deviceSpec, client, DixGetAttrAccess);
xkb = dev->key->xkbInfo->desc->ctrls;
- rep = (xkbGetControlsReply) {
- .type = X_Reply,
- .deviceID = ((DeviceIntPtr) dev)->id,
- .sequenceNumber = client->sequence,
- .length = bytes_to_int32(SIZEOF(xkbGetControlsReply) -
- SIZEOF(xGenericReply)),
- .mkDfltBtn = xkb->mk_dflt_btn,
- .numGroups = xkb->num_groups,
- .groupsWrap = xkb->groups_wrap,
- .internalMods = xkb->internal.mask,
- .ignoreLockMods = xkb->ignore_lock.mask,
- .internalRealMods = xkb->internal.real_mods,
- .ignoreLockRealMods = xkb->ignore_lock.real_mods,
- .internalVMods = xkb->internal.vmods,
- .ignoreLockVMods = xkb->ignore_lock.vmods,
- .repeatDelay = xkb->repeat_delay,
- .repeatInterval = xkb->repeat_interval,
- .slowKeysDelay = xkb->slow_keys_delay,
- .debounceDelay = xkb->debounce_delay,
- .mkDelay = xkb->mk_delay,
- .mkInterval = xkb->mk_interval,
- .mkTimeToMax = xkb->mk_time_to_max,
- .mkMaxSpeed = xkb->mk_max_speed,
- .mkCurve = xkb->mk_curve,
- .axOptions = xkb->ax_options,
- .axTimeout = xkb->ax_timeout,
- .axtOptsMask = xkb->axt_opts_mask,
- .axtOptsValues = xkb->axt_opts_values,
- .axtCtrlsMask = xkb->axt_ctrls_mask,
- .axtCtrlsValues = xkb->axt_ctrls_values,
- .enabledCtrls = xkb->enabled_ctrls,
- };
+
+ rep.type = X_Reply;
+ rep.deviceID = ((DeviceIntPtr) dev)->id;
+ rep.sequenceNumber = client->sequence;
+ rep.length = bytes_to_int32(SIZEOF(xkbGetControlsReply) -
+ SIZEOF(xGenericReply));
+ rep.mkDfltBtn = xkb->mk_dflt_btn;
+ rep.numGroups = xkb->num_groups;
+ rep.groupsWrap = xkb->groups_wrap;
+ rep.internalMods = xkb->internal.mask;
+ rep.ignoreLockMods = xkb->ignore_lock.mask;
+ rep.internalRealMods = xkb->internal.real_mods;
+ rep.ignoreLockRealMods = xkb->ignore_lock.real_mods;
+ rep.internalVMods = xkb->internal.vmods;
+ rep.ignoreLockVMods = xkb->ignore_lock.vmods;
+ rep.repeatDelay = xkb->repeat_delay;
+ rep.repeatInterval = xkb->repeat_interval;
+ rep.slowKeysDelay = xkb->slow_keys_delay;
+ rep.debounceDelay = xkb->debounce_delay;
+ rep.mkDelay = xkb->mk_delay;
+ rep.mkInterval = xkb->mk_interval;
+ rep.mkTimeToMax = xkb->mk_time_to_max;
+ rep.mkMaxSpeed = xkb->mk_max_speed;
+ rep.mkCurve = xkb->mk_curve;
+ rep.axOptions = xkb->ax_options;
+ rep.axTimeout = xkb->ax_timeout;
+ rep.axtOptsMask = xkb->axt_opts_mask;
+ rep.axtOptsValues = xkb->axt_opts_values;
+ rep.axtCtrlsMask = xkb->axt_ctrls_mask;
+ rep.axtCtrlsValues = xkb->axt_ctrls_values;
+ rep.enabledCtrls = xkb->enabled_ctrls;
+
memcpy(rep.perKeyRepeat, xkb->per_key_repeat, XkbPerKeyBitArraySize);
if (client->swapped) {
swaps(&rep.sequenceNumber);
@@ -1464,16 +1462,14 @@ ProcXkbGetMap(ClientPtr client)
CHK_MASK_LEGAL(0x03, stuff->partial, XkbAllMapComponentsMask);
xkb = dev->key->xkbInfo->desc;
- rep = (xkbGetMapReply) {
- .type = X_Reply,
- .deviceID = dev->id,
- .sequenceNumber = client->sequence,
- .length = (SIZEOF(xkbGetMapReply) - SIZEOF(xGenericReply)) >> 2,
- .present = stuff->partial | stuff->full,
- .minKeyCode = xkb->min_key_code,
- .maxKeyCode = xkb->max_key_code
- };
-
+ memset(&rep, 0, sizeof(xkbGetMapReply));
+ rep.type = X_Reply;
+ rep.deviceID = dev->id;
+ rep.sequenceNumber = client->sequence;
+ rep.length = (SIZEOF(xkbGetMapReply) - SIZEOF(xGenericReply)) >> 2;
+ rep.present = stuff->partial | stuff->full;
+ rep.minKeyCode = xkb->min_key_code;
+ rep.maxKeyCode = xkb->max_key_code;
if (stuff->full & XkbKeyTypesMask) {
rep.firstType = 0;
rep.nTypes = xkb->map->num_types;
@@ -2778,14 +2774,14 @@ ProcXkbGetCompatMap(ClientPtr client)
xkb = dev->key->xkbInfo->desc;
compat = xkb->compat;
- rep = (xkbGetCompatMapReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .deviceID = dev->id,
- .firstSI = stuff->firstSI,
- .nSI = stuff->nSI
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.deviceID = dev->id;
+ rep.firstSI = stuff->firstSI;
+ rep.nSI = stuff->nSI;
+
if (stuff->getAllSI) {
rep.firstSI = 0;
rep.nSI = compat->num_si;
@@ -3042,13 +3038,12 @@ ProcXkbGetIndicatorState(ClientPtr client)
if (!sli)
return BadAlloc;
- rep = (xkbGetIndicatorStateReply) {
- .type = X_Reply,
- .deviceID = dev->id,
- .sequenceNumber = client->sequence,
- .length = 0,
- .state = sli->effectiveState
- };
+
+ rep.type = X_Reply;
+ rep.deviceID = dev->id;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.state = sli->effectiveState;
if (client->swapped) {
swaps(&rep.sequenceNumber);
@@ -3156,13 +3151,13 @@ ProcXkbGetIndicatorMap(ClientPtr client)
xkb = dev->key->xkbInfo->desc;
leds = xkb->indicators;
- rep = (xkbGetIndicatorMapReply) {
- .type = X_Reply,
- .deviceID = dev->id,
- .sequenceNumber = client->sequence,
- .length = 0,
- .which = stuff->which
- };
+
+ rep.type = X_Reply;
+ rep.deviceID = dev->id;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.which = stuff->which;
+
XkbComputeGetIndicatorMapReplySize(leds, &rep);
return XkbSendIndicatorMap(client, leds, &rep);
}
@@ -3313,13 +3308,13 @@ ProcXkbGetNamedIndicator(ClientPtr client)
}
}
- rep = (xkbGetNamedIndicatorReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .deviceID = dev->id,
- .indicator = stuff->indicator
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.deviceID = dev->id;
+ rep.indicator = stuff->indicator;
+
if (map != NULL) {
rep.found = TRUE;
rep.on = ((sli->effectiveState & (1 << i)) != 0);
@@ -3895,18 +3890,18 @@ ProcXkbGetNames(ClientPtr client)
CHK_MASK_LEGAL(0x01, stuff->which, XkbAllNamesMask);
xkb = dev->key->xkbInfo->desc;
- rep = (xkbGetNamesReply) {
- .type = X_Reply,
- .deviceID = dev->id,
- .sequenceNumber = client->sequence,
- .length = 0,
- .which = stuff->which,
- .nTypes = xkb->map->num_types,
- .firstKey = xkb->min_key_code,
- .nKeys = XkbNumKeys(xkb),
- .nKeyAliases = xkb->names ? xkb->names->num_key_aliases : 0,
- .nRadioGroups = xkb->names ? xkb->names->num_rg : 0
- };
+ memset(&rep, 0, sizeof(xkbGetNamesReply));
+ rep.type = X_Reply;
+ rep.deviceID = dev->id;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.which = stuff->which;
+ rep.nTypes = xkb->map->num_types;
+ rep.firstKey = xkb->min_key_code;
+ rep.nKeys = XkbNumKeys(xkb);
+ rep.nKeyAliases = xkb->names ? xkb->names->num_key_aliases : 0;
+ rep.nRadioGroups = xkb->names ? xkb->names->num_rg : 0;
+
XkbComputeGetNamesReplySize(xkb, &rep);
return XkbSendNames(client, xkb, &rep);
}
@@ -4942,12 +4937,12 @@ ProcXkbGetGeometry(ClientPtr client)
CHK_ATOM_OR_NONE(stuff->name);
geom = XkbLookupNamedGeometry(dev, stuff->name, &shouldFree);
- rep = (xkbGetGeometryReply) {
- .type = X_Reply,
- .deviceID = dev->id,
- .sequenceNumber = client->sequence,
- .length = 0
- };
+
+ rep.type = X_Reply;
+ rep.deviceID = dev->id;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+
status = XkbComputeGetGeometryReplySize(geom, &rep, stuff->name);
if (status != Success)
return status;
@@ -5530,15 +5525,15 @@ ProcXkbPerClientFlags(ClientPtr client)
}
}
- rep = (xkbPerClientFlagsReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .supported = XkbPCF_AllFlagsMask,
- .value = client->xkbClientFlags & XkbPCF_AllFlagsMask,
- .autoCtrls = interest ? interest->autoCtrls : 0,
- .autoCtrlValues = interest ? interest->autoCtrlValues : 0,
- };
+ memset(&rep, 0, sizeof(xkbPerClientFlagsReply));
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.supported = XkbPCF_AllFlagsMask;
+ rep.value = client->xkbClientFlags & XkbPCF_AllFlagsMask;
+ rep.autoCtrls = interest ? interest->autoCtrls : 0;
+ rep.autoCtrlValues = interest ? interest->autoCtrlValues : 0;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.supported);
@@ -5645,19 +5640,19 @@ ProcXkbListComponents(ClientPtr client)
}
if ((XkbPaddedSize(len) / 4) != stuff->length)
return BadLength;
- rep = (xkbListComponentsReply) {
- .type = X_Reply,
- .deviceID = dev->id,
- .sequenceNumber = client->sequence,
- .length = 0,
- .nKeymaps = 0,
- .nKeycodes = 0,
- .nTypes = 0,
- .nCompatMaps = 0,
- .nSymbols = 0,
- .nGeometries = 0,
- .extra = 0
- };
+ memset(&rep, 0, sizeof(xkbListComponentsReply));
+ rep.type = X_Reply;
+ rep.deviceID = dev->id;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.nKeymaps = 0;
+ rep.nKeycodes = 0;
+ rep.nTypes = 0;
+ rep.nCompatMaps = 0;
+ rep.nSymbols = 0;
+ rep.nGeometries = 0;
+ rep.extra = 0;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
@@ -5705,6 +5700,8 @@ ProcXkbGetKbdByName(ClientPtr client)
if (!(client->xkbClientFlags & _XkbClientInitialized))
return BadAccess;
+ memset(&mrep,0,sizeof(mrep)); //MH
+
CHK_KBD_DEVICE(dev, stuff->deviceSpec, client, access_mode);
master = GetMaster(dev, MASTER_KEYBOARD);
@@ -6251,25 +6248,24 @@ ProcXkbGetDeviceInfo(ClientPtr client)
wanted &= ~XkbXI_IndicatorsMask;
nameLen = XkbSizeCountedString(dev->name);
- rep = (xkbGetDeviceInfoReply) {
- .type = X_Reply,
- .deviceID = dev->id,
- .sequenceNumber = client->sequence,
- .length = nameLen / 4,
- .present = wanted,
- .supported = XkbXI_AllDeviceFeaturesMask,
- .unsupported = 0,
- .nDeviceLedFBs = 0,
- .firstBtnWanted = 0,
- .nBtnsWanted = 0,
- .firstBtnRtrn = 0,
- .nBtnsRtrn = 0,
- .totalBtns = dev->button ? dev->button->numButtons : 0,
- .hasOwnState = (dev->key && dev->key->xkbInfo),
- .dfltKbdFB = dev->kbdfeed ? dev->kbdfeed->ctrl.id : XkbXINone,
- .dfltLedFB = dev->leds ? dev->leds->ctrl.id : XkbXINone,
- .devType = dev->xinput_type
- };
+ memset((char *) &rep, 0, SIZEOF(xkbGetDeviceInfoReply));
+ rep.type = X_Reply;
+ rep.deviceID = dev->id;
+ rep.sequenceNumber = client->sequence;
+ rep.length = nameLen / 4;
+ rep.present = wanted;
+ rep.supported = XkbXI_AllDeviceFeaturesMask;
+ rep.unsupported = 0;
+ rep.nDeviceLedFBs = 0;
+ rep.firstBtnWanted = 0;
+ rep.nBtnsWanted = 0;
+ rep.firstBtnRtrn = 0;
+ rep.nBtnsRtrn = 0;
+ rep.totalBtns = dev->button ? dev->button->numButtons : 0;
+ rep.hasOwnState = (dev->key && dev->key->xkbInfo);
+ rep.dfltKbdFB = dev->kbdfeed ? dev->kbdfeed->ctrl.id : XkbXINone;
+ rep.dfltLedFB = dev->leds ? dev->leds->ctrl.id : XkbXINone;
+ rep.devType = dev->xinput_type;
ledClass = stuff->ledClass;
ledID = stuff->ledID;
@@ -6735,15 +6731,15 @@ ProcXkbSetDebuggingFlags(ClientPtr client)
xkbDebugFlags = newFlags;
xkbDebugCtrls = newCtrls;
- rep = (xkbSetDebuggingFlagsReply) {
- .type = X_Reply,
- .sequenceNumber = client->sequence,
- .length = 0,
- .currentFlags = newFlags,
- .currentCtrls = newCtrls,
- .supportedFlags = ~0,
- .supportedCtrls = ~0
- };
+
+ rep.type = X_Reply;
+ rep.sequenceNumber = client->sequence;
+ rep.length = 0;
+ rep.currentFlags = newFlags;
+ rep.currentCtrls = newCtrls;
+ rep.supportedFlags = ~0;
+ rep.supportedCtrls = ~0;
+
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.currentFlags);
diff --git a/xorg-server/xkb/xkbActions.c b/xorg-server/xkb/xkbActions.c
index e32005cf6..09f8e489b 100644
--- a/xorg-server/xkb/xkbActions.c
+++ b/xorg-server/xkb/xkbActions.c
@@ -1469,6 +1469,7 @@ XkbFakePointerMotion(DeviceIntPtr dev, unsigned flags, int x, int y)
{
ValuatorMask mask;
int gpe_flags = 0;
+ int Point[]={x, y};
/* ignore attached SDs */
if (!IsMaster(dev) && !IsFloating(dev))
@@ -1479,8 +1480,8 @@ XkbFakePointerMotion(DeviceIntPtr dev, unsigned flags, int x, int y)
else
gpe_flags = POINTER_RELATIVE;
- valuator_mask_set_range(&mask, 0, 2, (int[]) {
- x, y});
+ valuator_mask_set_range(&mask, 0, 2,
+ Point);
InjectPointerKeyEvents(dev, MotionNotify, 0, gpe_flags, &mask);
}
diff --git a/xorg-server/xkb/xkbEvents.c b/xorg-server/xkb/xkbEvents.c
index 87a4485eb..66a6e1509 100644
--- a/xorg-server/xkb/xkbEvents.c
+++ b/xorg-server/xkb/xkbEvents.c
@@ -99,7 +99,8 @@ XkbSendLegacyMapNotify(DeviceIntPtr kbd, CARD16 xkb_event, CARD16 changed,
continue;
if (keymap_changed) {
- xEvent core_mn = { .u.u.type = MappingNotify };
+ xEvent core_mn;
+ core_mn.u.u.type = MappingNotify;
core_mn.u.mappingNotify.request = MappingKeyboard;
/* Clip the keycode range to what the client knows about, so it
@@ -117,11 +118,10 @@ XkbSendLegacyMapNotify(DeviceIntPtr kbd, CARD16 xkb_event, CARD16 changed,
WriteEventsToClient(clients[i], 1, &core_mn);
}
if (modmap_changed) {
- xEvent core_mn = {
- .u.mappingNotify.request = MappingModifier,
- .u.mappingNotify.firstKeyCode = 0,
- .u.mappingNotify.count = 0
- };
+ xEvent core_mn;
+ core_mn.u.mappingNotify.request = MappingModifier;
+ core_mn.u.mappingNotify.firstKeyCode = 0;
+ core_mn.u.mappingNotify.count = 0;
core_mn.u.u.type = MappingNotify;
WriteEventsToClient(clients[i], 1, &core_mn);
}
@@ -131,26 +131,24 @@ XkbSendLegacyMapNotify(DeviceIntPtr kbd, CARD16 xkb_event, CARD16 changed,
* here? Clients might be upset, but that seems better than the
* alternative of stale keymaps. -ds */
if (keymap_changed) {
- deviceMappingNotify xi_mn = {
- .type = DeviceMappingNotify,
- .deviceid = kbd->id,
- .request = MappingKeyboard,
- .firstKeyCode = first_key,
- .count = num_keys,
- .time = time
- };
+ deviceMappingNotify xi_mn;
+ xi_mn.type = DeviceMappingNotify;
+ xi_mn.deviceid = kbd->id;
+ xi_mn.request = MappingKeyboard;
+ xi_mn.firstKeyCode = first_key;
+ xi_mn.count = num_keys;
+ xi_mn.time = time;
SendEventToAllWindows(kbd, DeviceMappingNotifyMask, (xEvent *) &xi_mn,
1);
}
if (modmap_changed) {
- deviceMappingNotify xi_mn = {
- .type = DeviceMappingNotify,
- .deviceid = kbd->id,
- .request = MappingModifier,
- .firstKeyCode = 0,
- .count = 0,
- .time = time
- };
+ deviceMappingNotify xi_mn;
+ xi_mn.type = DeviceMappingNotify;
+ xi_mn.deviceid = kbd->id;
+ xi_mn.request = MappingModifier;
+ xi_mn.firstKeyCode = 0;
+ xi_mn.count = 0;
+ xi_mn.time = time;
SendEventToAllWindows(kbd, DeviceMappingNotifyMask, (xEvent *) &xi_mn,
1);
}
diff --git a/xorg-server/xkb/xkbInit.c b/xorg-server/xkb/xkbInit.c
index f72655fc3..b7c521b12 100644
--- a/xorg-server/xkb/xkbInit.c
+++ b/xorg-server/xkb/xkbInit.c
@@ -687,7 +687,7 @@ extern int XkbDfltRepeatInterval;
extern unsigned short XkbDfltAccessXTimeout;
extern unsigned int XkbDfltAccessXTimeoutMask;
extern unsigned int XkbDfltAccessXFeedback;
-extern unsigned char XkbDfltAccessXOptions;
+extern unsigned short XkbDfltAccessXOptions;
int
XkbProcessArguments(int argc, char *argv[], int i)
@@ -748,7 +748,7 @@ XkbProcessArguments(int argc, char *argv[], int i)
j++;
}
if (((i + 1) < argc) && (isdigit(argv[i + 1][0]))) {
- XkbDfltAccessXOptions = (unsigned char)
+ XkbDfltAccessXOptions=(unsigned short)
strtol(argv[++i], NULL, 16);
j++;
}
diff --git a/xorg-server/xkeyboard-config/compat/makefile b/xorg-server/xkeyboard-config/compat/makefile
new file mode 100644
index 000000000..d8dc5d8c4
--- /dev/null
+++ b/xorg-server/xkeyboard-config/compat/makefile
@@ -0,0 +1,20 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+THISDIR=compat
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\$(THISDIR)
+
+dist_xkbdata_compat_DATA = \
+accessx basic caps complete \
+iso9995 \
+japan ledcaps \
+lednum ledscroll level5 \
+misc mousekeys \
+olpc pc pc98 xfree86 \
+xtest README
+
+DATA_FILES=$(dist_xkbdata_compat_DATA:%=$(DESTDIR)\%)
+
+include ..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/geometry/digital_vndr/makefile b/xorg-server/xkeyboard-config/geometry/digital_vndr/makefile
new file mode 100644
index 000000000..12d4c37fc
--- /dev/null
+++ b/xorg-server/xkeyboard-config/geometry/digital_vndr/makefile
@@ -0,0 +1,12 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\geometry\digital_vndr
+
+dist_geom_DATA = \
+lk pc unix
+
+DATA_FILES=$(dist_geom_DATA:%=$(DESTDIR)\%)
+
+include ..\..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/geometry/makefile b/xorg-server/xkeyboard-config/geometry/makefile
new file mode 100644
index 000000000..896e186f4
--- /dev/null
+++ b/xorg-server/xkeyboard-config/geometry/makefile
@@ -0,0 +1,25 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+THISDIR=geometry
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\$(THISDIR)
+
+dist_xkbdata_geometry_DATA = \
+amiga ataritt chicony \
+dell everex fujitsu \
+hhk hp keytronic kinesis \
+macintosh microsoft nec nokia \
+northgate pc sanwa sony thinkpad \
+sun typematrix winbook README
+
+DATA_FILES=$(dist_xkbdata_geometry_DATA:%=$(DESTDIR)\%)
+
+SUBDIRS = digital_vndr sgi_vndr
+
+load_makefile $(SUBDIRS:%=%\makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+extrastuff: $(SUBDIRS:%=%\all)
+
+include ..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/geometry/sgi_vndr/makefile b/xorg-server/xkeyboard-config/geometry/sgi_vndr/makefile
new file mode 100644
index 000000000..285067802
--- /dev/null
+++ b/xorg-server/xkeyboard-config/geometry/sgi_vndr/makefile
@@ -0,0 +1,13 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\geometry\sgi_vndr
+
+
+dist_geom_DATA = \
+indigo indy O2
+
+DATA_FILES=$(dist_geom_DATA:%=$(DESTDIR)\%)
+
+include ..\..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/keycodes/digital_vndr/makefile b/xorg-server/xkeyboard-config/keycodes/digital_vndr/makefile
new file mode 100644
index 000000000..9cf1180e5
--- /dev/null
+++ b/xorg-server/xkeyboard-config/keycodes/digital_vndr/makefile
@@ -0,0 +1,12 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\keycodes\digital_vndr
+
+dist_keycodes_DATA = \
+lk pc
+
+DATA_FILES=$(dist_keycodes_DATA:%=$(DESTDIR)\%)
+
+include ..\..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/keycodes/makefile b/xorg-server/xkeyboard-config/keycodes/makefile
new file mode 100644
index 000000000..f22e67a93
--- /dev/null
+++ b/xorg-server/xkeyboard-config/keycodes/makefile
@@ -0,0 +1,33 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+THISDIR=keycodes
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\$(THISDIR)
+
+SUBDIRS = digital_vndr sgi_vndr
+
+dist_xkbdata_keycodes_DATA = \
+aliases \
+amiga \
+ataritt \
+empty \
+evdev \
+fujitsu \
+hp \
+ibm \
+macintosh \
+sony \
+sun \
+xfree86 \
+xfree98 \
+README
+
+DATA_FILES=$(dist_xkbdata_keycodes_DATA:%=$(DESTDIR)\%)
+
+load_makefile $(SUBDIRS:%=%\makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+extrastuff: $(SUBDIRS:%=%\all)
+
+include ..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/keycodes/sgi_vndr/makefile b/xorg-server/xkeyboard-config/keycodes/sgi_vndr/makefile
new file mode 100644
index 000000000..e6c1defda
--- /dev/null
+++ b/xorg-server/xkeyboard-config/keycodes/sgi_vndr/makefile
@@ -0,0 +1,12 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\keycodes\sgi_vndr
+
+dist_keycodes_DATA = \
+indigo indy iris
+
+DATA_FILES=$(dist_keycodes_DATA:%=$(DESTDIR)\%)
+
+include ..\..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/makefile b/xorg-server/xkeyboard-config/makefile
new file mode 100644
index 000000000..47ce6dd7b
--- /dev/null
+++ b/xorg-server/xkeyboard-config/makefile
@@ -0,0 +1,9 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+SUBDIRS = compat geometry keycodes rules symbols types
+
+load_makefile $(SUBDIRS:%=%\makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+all: $(SUBDIRS:%=%\all)
diff --git a/xorg-server/xkeyboard-config/rules/bin/ml1_s.bat b/xorg-server/xkeyboard-config/rules/bin/ml1_s.bat
new file mode 100755
index 000000000..b09459a5d
--- /dev/null
+++ b/xorg-server/xkeyboard-config/rules/bin/ml1_s.bat
@@ -0,0 +1,9 @@
+@echo off
+
+set OUTFILE=base.ml1_s.part
+
+if exist %OUTFILE% del %OUTFILE%
+
+gawk "{ if (index($2, """(""") == 0) { printf """ * %%s = pc+%%s%%%%(v[1])\n""", $1, $2; } else { printf """ * %%s = pc+%%s\n""", $1, $2; }}" < layoutsMapping.lst >> %OUTFILE%
+
+gawk "{ printf """ * %%s(%%s) = pc+%%s(%%s)\n""", $1, $2, $3, $4; }" < variantsMapping.lst >> %OUTFILE%
diff --git a/xorg-server/xkeyboard-config/rules/bin/ml1v1_s.bat b/xorg-server/xkeyboard-config/rules/bin/ml1v1_s.bat
new file mode 100755
index 000000000..4d492e02b
--- /dev/null
+++ b/xorg-server/xkeyboard-config/rules/bin/ml1v1_s.bat
@@ -0,0 +1,7 @@
+@echo off
+
+set OUTFILE=base.ml1v1_s.part
+
+if exist %OUTFILE% del %OUTFILE%
+
+gawk "{ printf """ * %%s %%s = pc+%%s(%%s)\n""", $1, $2, $3, $4; }" < variantsMapping.lst >> %OUTFILE%
diff --git a/xorg-server/xkeyboard-config/rules/bin/ml1v_s.bat b/xorg-server/xkeyboard-config/rules/bin/ml1v_s.bat
new file mode 100755
index 000000000..cec1334c0
--- /dev/null
+++ b/xorg-server/xkeyboard-config/rules/bin/ml1v_s.bat
@@ -0,0 +1,7 @@
+@echo off
+
+set OUTFILE=base.ml1v_s.part
+
+if exist %OUTFILE% del %OUTFILE%
+
+gawk "{ printf """ * %%s %%s = pc+%%s(%%s)\n""", $1, $2, $3, $4; }" < variantsMapping.lst >> %OUTFILE%
diff --git a/xorg-server/xkeyboard-config/rules/bin/ml_s.bat b/xorg-server/xkeyboard-config/rules/bin/ml_s.bat
new file mode 100755
index 000000000..b7f0d9c46
--- /dev/null
+++ b/xorg-server/xkeyboard-config/rules/bin/ml_s.bat
@@ -0,0 +1,9 @@
+@echo off
+
+set OUTFILE=base.ml_s.part
+
+if exist %OUTFILE% del %OUTFILE%
+
+gawk "{ printf """ * %%s = pc+%%s\n""", $1, $2; }" < layoutsMapping.lst >> %OUTFILE%
+
+gawk "{ printf """ * %%s(%%s) = pc+%%s(%%s)\n""", $1, $2, $3, $4; }" < variantsMapping.lst >> %OUTFILE%
diff --git a/xorg-server/xkeyboard-config/rules/bin/mln_s.bat b/xorg-server/xkeyboard-config/rules/bin/mln_s.bat
new file mode 100755
index 000000000..15e0629be
--- /dev/null
+++ b/xorg-server/xkeyboard-config/rules/bin/mln_s.bat
@@ -0,0 +1,10 @@
+@echo off
+set variant=%1
+
+set OUTFILE=base.ml%variant%_s.part
+
+if exist %OUTFILE% del %OUTFILE%
+
+echo "{ if (index($2, """(""") == 0) { printf """ * %%s = +%%s%%%%(v[%variant%]):%variant%\n""", $1, $2; } else { printf """ * %%s = +%%s:%variant%\n""", $1, $2; }}" < layoutsMapping.lst >> %OUTFILE%
+
+gawk "{ printf """ * %%s(%%s) = +%%s(%%s):%variant%\n""", $1, $2, $3, $4;}" < variantsMapping.lst >> %OUTFILE%
diff --git a/xorg-server/xkeyboard-config/rules/bin/mlnvn_s.bat b/xorg-server/xkeyboard-config/rules/bin/mlnvn_s.bat
new file mode 100755
index 000000000..78119bcc7
--- /dev/null
+++ b/xorg-server/xkeyboard-config/rules/bin/mlnvn_s.bat
@@ -0,0 +1,8 @@
+@echo off
+set variant=%1
+
+set OUTFILE=base.ml%variant%v%variant%_s.part
+
+if exist %OUTFILE% del %OUTFILE%
+
+gawk "{ printf """ * %%s %%s = +%%s(%%s):%variant%\n""", $1, $2, $3, $4;}" < variantsMapping.lst >> %OUTFILE%
diff --git a/xorg-server/xkeyboard-config/rules/bin/mlv_s.bat b/xorg-server/xkeyboard-config/rules/bin/mlv_s.bat
new file mode 100755
index 000000000..573cb930f
--- /dev/null
+++ b/xorg-server/xkeyboard-config/rules/bin/mlv_s.bat
@@ -0,0 +1,7 @@
+@echo off
+
+set OUTFILE=base.mlv_s.part
+
+if exist %OUTFILE% del %OUTFILE%
+
+gawk "{ printf """ * %%s %%s = pc+%%s(%%s)\n""", $1, $2, $3, $4; }" < variantsMapping.lst >> %OUTFILE%
diff --git a/xorg-server/xkeyboard-config/rules/compat/.gitignore b/xorg-server/xkeyboard-config/rules/compat/.gitignore
index bd274090a..077356fbb 100644
--- a/xorg-server/xkeyboard-config/rules/compat/.gitignore
+++ b/xorg-server/xkeyboard-config/rules/compat/.gitignore
@@ -1,6 +1,16 @@
+base.ml1_s.part
+base.ml1v1_s.part
base.ml2_s.part
base.ml2v2_s.part
base.ml3_s.part
base.ml3v3_s.part
base.ml4_s.part
base.ml4v4_s.part
+base.ml_s.part
+base.mlv_s.part
+ml1_s.bat
+ml1v1_s.bat
+ml_s.bat
+mln_s.bat
+mlnvn_s.bat
+mlv_s.bat \ No newline at end of file
diff --git a/xorg-server/xkeyboard-config/rules/compat/makefile b/xorg-server/xkeyboard-config/rules/compat/makefile
new file mode 100644
index 000000000..e14430c74
--- /dev/null
+++ b/xorg-server/xkeyboard-config/rules/compat/makefile
@@ -0,0 +1,56 @@
+transform_files=layoutsMapping.lst variantsMapping.lst
+
+scripts_dir=..\bin
+
+SCRIPTS= \
+base.ml2_s.part \
+base.ml3_s.part \
+base.ml4_s.part \
+base.ml2v2_s.part \
+base.ml3v3_s.part \
+base.ml4v4_s.part \
+base.ml_s.part \
+base.ml1_s.part \
+base.mlv_s.part \
+base.ml1v1_s.part
+
+# Here we make a distinction when compiling from cygwin or from cmd
+ifdef SHLVL
+SH=sh
+SHEXT=.sh
+else
+SH=cmd /c
+SHEXT=.bat
+endif
+
+base.ml2_s.part: $(scripts_dir)\mln_s$(SHEXT) $(transform_files)
+ $(SH) $< 2 .
+
+base.ml3_s.part: $(scripts_dir)\mln_s$(SHEXT) $(transform_files)
+ $(SH) $< 3 .
+
+base.ml4_s.part: $(scripts_dir)\mln_s$(SHEXT) $(transform_files)
+ $(SH) $< 4 .
+
+base.ml2v2_s.part: $(scripts_dir)\mlnvn_s$(SHEXT) $(transform_files)
+ $(SH) $< 2 .
+
+base.ml3v3_s.part: $(scripts_dir)\mlnvn_s$(SHEXT) $(transform_files)
+ $(SH) $< 3 .
+
+base.ml4v4_s.part: $(scripts_dir)\mlnvn_s$(SHEXT) $(transform_files)
+ $(SH) $< 4 .
+
+base.ml_s.part: $(scripts_dir)\ml_s$(SHEXT) $(transform_files)
+ $(SH) $< .
+
+base.ml1_s.part: $(scripts_dir)\ml1_s$(SHEXT) $(transform_files)
+ $(SH) $< .
+
+base.mlv_s.part: $(scripts_dir)\mlv_s$(SHEXT) $(transform_files)
+ $(SH) $< .
+
+base.ml1v1_s.part: $(scripts_dir)\ml1v1_s$(SHEXT) $(transform_files)
+ $(SH) $< .
+
+all: $(SCRIPTS)
diff --git a/xorg-server/xkeyboard-config/rules/makefile b/xorg-server/xkeyboard-config/rules/makefile
new file mode 100644
index 000000000..4e2786734
--- /dev/null
+++ b/xorg-server/xkeyboard-config/rules/makefile
@@ -0,0 +1,197 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+load_makefile compat\makefile MAKESERVER=0 DEBUG=$(DEBUG)
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\rules
+
+USE_COMPAT_RULES = 1
+
+if USE_COMPAT_RULES
+
+base_parts = base.hdr.part base.lists.part \
+compat/base.lists.part \
+HDR base.m_k.part \
+HDR base.l1_k.part \
+HDR base.l_k.part \
+HDR base.o_k.part \
+HDR base.ml_g.part \
+HDR base.m_g.part \
+HDR compat/base.mlv_s.part base.mlv_s.part \
+HDR compat/base.ml_s.part base.ml_s.part \
+HDR compat/base.ml1_s.part base.ml1_s.part \
+HDR compat/base.ml1v1_s.part \
+HDR compat/base.ml2_s.part base.ml2_s.part \
+HDR compat/base.ml3_s.part base.ml3_s.part \
+HDR compat/base.ml4_s.part base.ml4_s.part \
+HDR compat/base.ml2v2_s.part \
+HDR compat/base.ml3v3_s.part \
+HDR compat/base.ml4v4_s.part \
+HDR base.m_s.part \
+HDR compat/base.lv_c.part \
+HDR compat/base.l1v1_c.part \
+HDR compat/base.l2v2_c.part \
+HDR compat/base.l3v3_c.part \
+HDR compat/base.l4v4_c.part \
+HDR base.ml_c.part \
+HDR base.ml1_c.part \
+HDR base.m_t.part \
+HDR base.lo_s.part \
+HDR base.l1o_s.part \
+HDR base.l2o_s.part \
+HDR base.l3o_s.part \
+HDR base.l4o_s.part \
+HDR compat/base.o_s.part base.o_s.part \
+HDR base.o_c.part \
+HDR base.o_t.part
+
+evdev_parts = base.hdr.part base.lists.part \
+compat/base.lists.part \
+HDR evdev.m_k.part \
+HDR base.l1_k.part \
+HDR base.l_k.part \
+HDR base.o_k.part \
+HDR base.ml_g.part \
+HDR base.m_g.part \
+HDR compat/base.mlv_s.part base.mlv_s.part \
+HDR compat/base.ml_s.part base.ml_s.part \
+HDR compat/base.ml1_s.part base.ml1_s.part \
+HDR compat/base.ml1v1_s.part \
+HDR compat/base.ml2_s.part base.ml2_s.part \
+HDR compat/base.ml3_s.part base.ml3_s.part \
+HDR compat/base.ml4_s.part base.ml4_s.part \
+HDR compat/base.ml2v2_s.part \
+HDR compat/base.ml3v3_s.part \
+HDR compat/base.ml4v4_s.part \
+HDR evdev.m_s.part \
+HDR compat/base.lv_c.part \
+HDR compat/base.l1v1_c.part \
+HDR compat/base.l2v2_c.part \
+HDR compat/base.l3v3_c.part \
+HDR compat/base.l4v4_c.part \
+HDR base.ml_c.part \
+HDR base.ml1_c.part \
+HDR base.m_t.part \
+HDR base.lo_s.part \
+HDR base.l1o_s.part \
+HDR base.l2o_s.part \
+HDR base.l3o_s.part \
+HDR base.l4o_s.part \
+HDR compat/base.o_s.part base.o_s.part \
+HDR base.o_c.part \
+HDR base.o_t.part
+
+else
+
+base_parts = base.hdr.part base.lists.part \
+HDR base.m_k.part \
+HDR base.l1_k.part \
+HDR base.l_k.part \
+HDR \
+HDR base.ml_g.part \
+HDR base.m_g.part \
+HDR base.mlv_s.part \
+HDR base.ml_s.part \
+HDR base.ml1_s.part \
+HDR \
+HDR base.ml2_s.part \
+HDR base.ml3_s.part \
+HDR base.ml4_s.part \
+HDR \
+HDR \
+HDR \
+HDR base.m_s.part \
+HDR \
+HDR \
+HDR \
+HDR \
+HDR \
+HDR base.ml_c.part \
+HDR base.ml1_c.part \
+HDR base.m_t.part \
+HDR \
+HDR base.l1o_s.part \
+HDR base.l2o_s.part \
+HDR base.l3o_s.part \
+HDR base.l4o_s.part \
+HDR base.o_s.part \
+HDR base.o_c.part \
+HDR base.o_t.part
+
+evdev_parts = base.hdr.part base.lists.part \
+HDR evdev.m_k.part \
+HDR base.l1_k.part \
+HDR base.l_k.part \
+HDR \
+HDR base.ml_g.part \
+HDR base.m_g.part \
+HDR base.mlv_s.part \
+HDR base.ml_s.part \
+HDR base.ml1_s.part \
+HDR \
+HDR base.ml2_s.part \
+HDR base.ml3_s.part \
+HDR base.ml4_s.part \
+HDR \
+HDR \
+HDR \
+HDR evdev.m_s.part \
+HDR \
+HDR \
+HDR \
+HDR \
+HDR \
+HDR base.ml_c.part \
+HDR base.ml1_c.part \
+HDR base.m_t.part \
+HDR \
+HDR base.l1o_s.part \
+HDR base.l2o_s.part \
+HDR base.l3o_s.part \
+HDR base.l4o_s.part \
+HDR base.o_s.part \
+HDR base.o_c.part \
+HDR base.o_t.part
+
+endif
+rules_files = base evdev xfree98
+
+lst_files = base.lst evdev.lst
+
+$(DESTDIR)\%.lst: $(DESTDIR)\%.xml
+ perl xml2lst.pl < $< > $@
+
+$(DESTDIR)\base: compat\all $(base_parts)
+ merge $@ $(base_parts)
+
+$(DESTDIR)\evdev: compat\all $(evdev_parts)
+ merge $@ $(evdev_parts)
+
+dist_files = xkb.dtd README
+
+rules_DATA = $(rules_files) $(lst_files) $(dist_files)
+
+COMPATFILES=xorg xorg.xml xorg.lst
+$(DESTDIR)\xorg: $(DESTDIR)\base
+ copy $< $@
+$(DESTDIR)\xorg%: $(DESTDIR)\base%
+ copy $< $@
+
+rules_DATA := $(rules_DATA) $(COMPATFILES)
+
+xml_in_files = base.xml.in evdev.xml.in base.extras.xml.in evdev.extras.xml.in
+xml_DATA = $(xml_in_files:.xml.in=.xml)
+
+$(DESTDIR)\%.xml: %.xml.in
+ copy $< $@
+
+$(DESTDIR)\evdev.xml: base.xml.in
+ copy $< $@
+
+$(DESTDIR)\evdev.extras.xml: base.extras.xml.in
+ copy $< $@
+
+DATA_FILES=$(rules_DATA:%=$(DESTDIR)\%) $(xml_DATA:%=$(DESTDIR)\%)
+
+include ..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/rules/merge.py b/xorg-server/xkeyboard-config/rules/merge.py
new file mode 100644
index 000000000..442a866f2
--- /dev/null
+++ b/xorg-server/xkeyboard-config/rules/merge.py
@@ -0,0 +1,13 @@
+import sys
+
+pOUT=open(sys.argv[1],"wb")
+pHDR=open("HDR","r")
+for item in sys.argv[2:]:
+ if item == 'HDR':
+ pOUT.write("\n")
+ pOUT.write(pHDR.readline())
+ else:
+ pOUT.write(open(item,"rb").read())
+
+pOUT.close()
+
diff --git a/xorg-server/xkeyboard-config/symbols/cd b/xorg-server/xkeyboard-config/symbols/cd.in
index a87c749aa..a87c749aa 100644
--- a/xorg-server/xkeyboard-config/symbols/cd
+++ b/xorg-server/xkeyboard-config/symbols/cd.in
diff --git a/xorg-server/xkeyboard-config/symbols/digital_vndr/makefile b/xorg-server/xkeyboard-config/symbols/digital_vndr/makefile
new file mode 100644
index 000000000..cdfa2ef28
--- /dev/null
+++ b/xorg-server/xkeyboard-config/symbols/digital_vndr/makefile
@@ -0,0 +1,13 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\symbols\digital_vndr
+
+dist_symbols_DATA = \
+lk pc us \
+vt
+
+DATA_FILES=$(dist_symbols_DATA:%=$(DESTDIR)\%)
+
+include ..\..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/symbols/fujitsu_vndr/makefile b/xorg-server/xkeyboard-config/symbols/fujitsu_vndr/makefile
new file mode 100644
index 000000000..841c123d8
--- /dev/null
+++ b/xorg-server/xkeyboard-config/symbols/fujitsu_vndr/makefile
@@ -0,0 +1,12 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\symbols\fujitsu_vndr
+
+dist_symbols_DATA = \
+jp us
+
+DATA_FILES=$(dist_symbols_DATA:%=$(DESTDIR)\%)
+
+include ..\..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/symbols/hp_vndr/makefile b/xorg-server/xkeyboard-config/symbols/hp_vndr/makefile
new file mode 100644
index 000000000..3e6a64f47
--- /dev/null
+++ b/xorg-server/xkeyboard-config/symbols/hp_vndr/makefile
@@ -0,0 +1,12 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\symbols\hp_vndr
+
+dist_symbols_DATA = \
+us
+
+DATA_FILES=$(dist_symbols_DATA:%=$(DESTDIR)\%)
+
+include ..\..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/symbols/level3 b/xorg-server/xkeyboard-config/symbols/level3
index b15e24d53..b15e24d53 100644..100755
--- a/xorg-server/xkeyboard-config/symbols/level3
+++ b/xorg-server/xkeyboard-config/symbols/level3
diff --git a/xorg-server/xkeyboard-config/symbols/level5 b/xorg-server/xkeyboard-config/symbols/level5
index 1ae2e6d3b..1ae2e6d3b 100644..100755
--- a/xorg-server/xkeyboard-config/symbols/level5
+++ b/xorg-server/xkeyboard-config/symbols/level5
diff --git a/xorg-server/xkeyboard-config/symbols/macintosh_vndr/makefile b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/makefile
new file mode 100644
index 000000000..0c54d7bdd
--- /dev/null
+++ b/xorg-server/xkeyboard-config/symbols/macintosh_vndr/makefile
@@ -0,0 +1,16 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\symbols\macintosh_vndr
+
+dist_symbols_DATA = \
+apple ch de dk \
+fi fr \
+gb is it jp \
+latam nl no pt \
+se us
+
+DATA_FILES=$(dist_symbols_DATA:%=$(DESTDIR)\%)
+
+include ..\..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/symbols/makefile b/xorg-server/xkeyboard-config/symbols/makefile
new file mode 100644
index 000000000..54b1ac1c3
--- /dev/null
+++ b/xorg-server/xkeyboard-config/symbols/makefile
@@ -0,0 +1,56 @@
+SUBDIRS = digital_vndr fujitsu_vndr hp_vndr macintosh_vndr nec_vndr nokia_vndr sharp_vndr sgi_vndr sony_vndr sun_vndr xfree68_vndr
+
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+THISDIR=symbols
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\$(THISDIR)
+
+dist_symbols_DATA = \
+af al \
+am apl ara \
+at az \
+ba bd be \
+bg br brai \
+bt bw by \
+ca cd ch \
+cm cn cz \
+de dk \
+ee es et epo \
+fi fo fr \
+gb ge gh gn \
+gr hr hu \
+ie il in iq \
+ir is it jp \
+ke kg kh \
+kr kz \
+la latam latin \
+lk lt lv \
+ma mao md me \
+mk ml mm \
+mn mt mv \
+ng nl no np \
+pc ph pk pl pt \
+ro rs ru \
+se si sk sn \
+sy th \
+terminate \
+tj tm tr tw tz \
+ua us uz vn \
+za \
+altwin capslock compose ctrl empty eurosign rupeesign group inet \
+keypad kpdl level3 level5 nbsp olpc shift srvr_ctrl typo
+
+DATA_FILES=$(dist_symbols_DATA:%=$(DESTDIR)\%)
+
+load_makefile $(SUBDIRS:%=%\makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+extrastuff: $(SUBDIRS:%=%\all)
+
+include ..\xkbrules.mak
+
+$(DESTDIR)\cd: cd.in
+ copy $< $@
+
diff --git a/xorg-server/xkeyboard-config/symbols/nec_vndr/makefile b/xorg-server/xkeyboard-config/symbols/nec_vndr/makefile
new file mode 100644
index 000000000..6ab523a2b
--- /dev/null
+++ b/xorg-server/xkeyboard-config/symbols/nec_vndr/makefile
@@ -0,0 +1,12 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\symbols\nec_vndr
+
+dist_symbols_DATA = \
+jp
+
+DATA_FILES=$(dist_symbols_DATA:%=$(DESTDIR)\%)
+
+include ..\..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/symbols/nokia_vndr/makefile b/xorg-server/xkeyboard-config/symbols/nokia_vndr/makefile
new file mode 100644
index 000000000..f3719bbac
--- /dev/null
+++ b/xorg-server/xkeyboard-config/symbols/nokia_vndr/makefile
@@ -0,0 +1,14 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\symbols\nokia_vndr
+
+dist_symbols_DATA = \
+rx-44 \
+rx-51 \
+su-8w
+
+DATA_FILES=$(dist_symbols_DATA:%=$(DESTDIR)\%)
+
+include ..\..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/symbols/sgi_vndr/makefile b/xorg-server/xkeyboard-config/symbols/sgi_vndr/makefile
new file mode 100644
index 000000000..79a27fead
--- /dev/null
+++ b/xorg-server/xkeyboard-config/symbols/sgi_vndr/makefile
@@ -0,0 +1,12 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\symbols\sgi_vndr
+
+dist_symbols_DATA = \
+jp
+
+DATA_FILES=$(dist_symbols_DATA:%=$(DESTDIR)\%)
+
+include ..\..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/symbols/sharp_vndr/makefile b/xorg-server/xkeyboard-config/symbols/sharp_vndr/makefile
new file mode 100644
index 000000000..2174000bd
--- /dev/null
+++ b/xorg-server/xkeyboard-config/symbols/sharp_vndr/makefile
@@ -0,0 +1,16 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\symbols\sharp_vndr
+
+dist_symbols_DATA = \
+sl-c3x00 \
+ws003sh \
+ws007sh \
+ws011sh \
+ws020sh
+
+DATA_FILES=$(dist_symbols_DATA:%=$(DESTDIR)\%)
+
+include ..\..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/symbols/sony_vndr/makefile b/xorg-server/xkeyboard-config/symbols/sony_vndr/makefile
new file mode 100644
index 000000000..c2c1fa757
--- /dev/null
+++ b/xorg-server/xkeyboard-config/symbols/sony_vndr/makefile
@@ -0,0 +1,12 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\symbols\sony_vndr
+
+dist_symbols_DATA = \
+us
+
+DATA_FILES=$(dist_symbols_DATA:%=$(DESTDIR)\%)
+
+include ..\..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/symbols/sun_vndr/makefile b/xorg-server/xkeyboard-config/symbols/sun_vndr/makefile
new file mode 100644
index 000000000..a1329d15f
--- /dev/null
+++ b/xorg-server/xkeyboard-config/symbols/sun_vndr/makefile
@@ -0,0 +1,18 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\symbols\sun_vndr
+
+dist_symbols_DATA = \
+ ara be br ca ch \
+ cz de dk ee es \
+ fi fr gb gr it \
+ jp kr lt lv nl \
+ no pl pt ro ru \
+ se sk solaris tr \
+ tw ua us
+
+DATA_FILES=$(dist_symbols_DATA:%=$(DESTDIR)\%)
+
+include ..\..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/symbols/xfree68_vndr/makefile b/xorg-server/xkeyboard-config/symbols/xfree68_vndr/makefile
new file mode 100644
index 000000000..c9c1b3ede
--- /dev/null
+++ b/xorg-server/xkeyboard-config/symbols/xfree68_vndr/makefile
@@ -0,0 +1,12 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\symbols\xfree68_vndr
+
+dist_symbols_DATA = \
+amiga ataritt
+
+DATA_FILES=$(dist_symbols_DATA:%=$(DESTDIR)\%)
+
+include ..\..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/types/default b/xorg-server/xkeyboard-config/types/default.in
index 140208ccc..140208ccc 100644
--- a/xorg-server/xkeyboard-config/types/default
+++ b/xorg-server/xkeyboard-config/types/default.in
diff --git a/xorg-server/xkeyboard-config/types/makefile b/xorg-server/xkeyboard-config/types/makefile
new file mode 100644
index 000000000..ef03746ed
--- /dev/null
+++ b/xorg-server/xkeyboard-config/types/makefile
@@ -0,0 +1,17 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+THISDIR=types
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\$(THISDIR)
+
+dist_xkbdata_types_DATA = \
+basic cancel caps \
+complete default extra \
+iso9995 level5 mousekeys nokia numpad \
+pc README
+
+DATA_FILES=$(dist_xkbdata_types_DATA:%=$(DESTDIR)\%)
+
+include ..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/xkbrules.mak b/xorg-server/xkeyboard-config/xkbrules.mak
new file mode 100644
index 000000000..50e38298b
--- /dev/null
+++ b/xorg-server/xkeyboard-config/xkbrules.mak
@@ -0,0 +1,26 @@
+DIRFILE=$(THISDIR:%=$(DESTDIR)\..\%.dir)
+
+.PHONY: destdir
+destdir: $(DESTDIR)
+
+all: destdir $(DATA_FILES) $(DIRFILE)
+
+$(DESTDIR)\default: default.in
+ copy $< $@
+
+$(DESTDIR)\%: %
+ copy $< $@
+
+ifneq ($(DIRFILE),)
+.PHONY: extrastuff
+
+#bdftopcf is dependent on libX11.dll, so we need to add the directory of the libX11 dll to the path env variable
+PATH:=$(relpath $(MHMAKECONF)\libxcb\src\$(OBJDIR))\;$(relpath $(MHMAKECONF)\libX11\$(OBJDIR))\;$(relpath $(MHMAKECONF)\libXau\$(OBJDIR))\;$(PATH)
+export PATH
+
+load_makefile ..\..\..\xkbcomp\makefile MAKESERVER=0 DEBUG=0
+
+$(DIRFILE): extrastuff $(DATA_FILES) ..\..\..\xkbcomp\obj$(OBJDIREXTRA)\release\xkbcomp.exe
+ -del -e $@
+ cd $(DESTDIR) & ..\..\..\xkbcomp\obj$(OBJDIREXTRA)\release\xkbcomp.exe -lfhlpR -o $(relpath $@) *
+endif
diff --git a/xorg-server/xkeysymdb b/xorg-server/xkeysymdb
new file mode 100644
index 000000000..45d892971
--- /dev/null
+++ b/xorg-server/xkeysymdb
@@ -0,0 +1,380 @@
+! Copyright 1993 Massachusetts Institute of Technology
+!
+! 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 M.I.T. not be used in advertising or
+! publicity pertaining to distribution of the software without specific,
+! written prior permission. M.I.T. makes no representations about the
+! suitability of this software for any purpose. It is provided "as is"
+! without express or implied warranty.
+!
+
+hpmute_acute :100000A8
+hpmute_grave :100000A9
+hpmute_asciicircum :100000AA
+hpmute_diaeresis :100000AB
+hpmute_asciitilde :100000AC
+hplira :100000AF
+hpguilder :100000BE
+hpYdiaeresis :100000EE
+hpIO :100000EE
+hplongminus :100000F6
+hpblock :100000FC
+apLineDel :1000FF00
+apCharDel :1000FF01
+apCopy :1000FF02
+apCut :1000FF03
+apPaste :1000FF04
+apMove :1000FF05
+apGrow :1000FF06
+apCmd :1000FF07
+apShell :1000FF08
+apLeftBar :1000FF09
+apRightBar :1000FF0A
+apLeftBox :1000FF0B
+apRightBox :1000FF0C
+apUpBox :1000FF0D
+apDownBox :1000FF0E
+apPop :1000FF0F
+apRead :1000FF10
+apEdit :1000FF11
+apSave :1000FF12
+apExit :1000FF13
+apRepeat :1000FF14
+hpModelock1 :1000FF48
+hpModelock2 :1000FF49
+hpReset :1000FF6C
+hpSystem :1000FF6D
+hpUser :1000FF6E
+hpClearLine :1000FF6F
+hpInsertLine :1000FF70
+hpDeleteLine :1000FF71
+hpInsertChar :1000FF72
+hpDeleteChar :1000FF73
+hpBackTab :1000FF74
+hpKP_BackTab :1000FF75
+apKP_parenleft :1000FFA8
+apKP_parenright :1000FFA9
+
+I2ND_FUNC_L :10004001
+I2ND_FUNC_R :10004002
+IREMOVE :10004003
+IREPEAT :10004004
+IA1 :10004101
+IA2 :10004102
+IA3 :10004103
+IA4 :10004104
+IA5 :10004105
+IA6 :10004106
+IA7 :10004107
+IA8 :10004108
+IA9 :10004109
+IA10 :1000410A
+IA11 :1000410B
+IA12 :1000410C
+IA13 :1000410D
+IA14 :1000410E
+IA15 :1000410F
+IB1 :10004201
+IB2 :10004202
+IB3 :10004203
+IB4 :10004204
+IB5 :10004205
+IB6 :10004206
+IB7 :10004207
+IB8 :10004208
+IB9 :10004209
+IB10 :1000420A
+IB11 :1000420B
+IB12 :1000420C
+IB13 :1000420D
+IB14 :1000420E
+IB15 :1000420F
+IB16 :10004210
+
+DRemove :1000FF00
+Dring_accent :1000FEB0
+Dcircumflex_accent :1000FE5E
+Dcedilla_accent :1000FE2C
+Dacute_accent :1000FE27
+Dgrave_accent :1000FE60
+Dtilde :1000FE7E
+Ddiaeresis :1000FE22
+
+osfCopy :1004FF02
+osfCut :1004FF03
+osfPaste :1004FF04
+osfBackTab :1004FF07
+osfBackSpace :1004FF08
+osfClear :1004FF0B
+osfEscape :1004FF1B
+osfAddMode :1004FF31
+osfPrimaryPaste :1004FF32
+osfQuickPaste :1004FF33
+osfPageLeft :1004FF40
+osfPageUp :1004FF41
+osfPageDown :1004FF42
+osfPageRight :1004FF43
+osfActivate :1004FF44
+osfMenuBar :1004FF45
+osfLeft :1004FF51
+osfUp :1004FF52
+osfRight :1004FF53
+osfDown :1004FF54
+osfPrior :1004FF55
+osfNext :1004FF56
+osfEndLine :1004FF57
+osfBeginLine :1004FF58
+osfEndData :1004FF59
+osfBeginData :1004FF5A
+osfPrevMenu :1004FF5B
+osfNextMenu :1004FF5C
+osfPrevField :1004FF5D
+osfNextField :1004FF5E
+osfSelect :1004FF60
+osfInsert :1004FF63
+osfUndo :1004FF65
+osfMenu :1004FF67
+osfCancel :1004FF69
+osfHelp :1004FF6A
+osfSelectAll :1004FF71
+osfDeselectAll :1004FF72
+osfReselect :1004FF73
+osfExtend :1004FF74
+osfRestore :1004FF78
+osfSwitchDirection :1004FF7E
+osfPriorMinor :1004FFF5
+osfNextMinor :1004FFF6
+osfRightLine :1004FFF7
+osfLeftLine :1004FFF8
+osfDelete :1004FFFF
+
+SunFA_Grave :1005FF00
+SunFA_Circum :1005FF01
+SunFA_Tilde :1005FF02
+SunFA_Acute :1005FF03
+SunFA_Diaeresis :1005FF04
+SunFA_Cedilla :1005FF05
+SunF36 :1005FF10
+SunF37 :1005FF11
+SunSys_Req :1005FF60
+SunProps :1005FF70
+SunFront :1005FF71
+SunCopy :1005FF72
+SunOpen :1005FF73
+SunPaste :1005FF74
+SunCut :1005FF75
+SunPowerSwitch :1005FF76
+SunAudioLowerVolume :1005FF77
+SunAudioMute :1005FF78
+SunAudioRaiseVolume :1005FF79
+SunVideoDegauss :1005FF7A
+SunVideoLowerBrightness :1005FF7B
+SunVideoRaiseBrightness :1005FF7C
+SunPowerSwitchShift :1005FF7D
+
+SunCompose :FF20
+SunPageUp :FF55
+SunPageDown :FF56
+SunPrint_Screen :FF61
+SunUndo :FF65
+SunAgain :FF66
+SunFind :FF68
+SunStop :FF69
+SunAltGraph :FF7E
+
+WYSetup :1006FF00
+
+ncdSetup :1006FF00
+
+XeroxPointerButton1 :10070001
+XeroxPointerButton2 :10070002
+XeroxPointerButton3 :10070003
+XeroxPointerButton4 :10070004
+XeroxPointerButton5 :10070005
+
+! The definitions here should match <X11/XF86keysym.h>
+XF86ModeLock :1008FF01
+XF86MonBrightnessUp :1008FF02
+XF86MonBrightnessDown :1008FF03
+XF86KbdLightOnOff :1008FF04
+XF86KbdBrightnessUp :1008FF05
+XF86KbdBrightnessDown :1008FF06
+XF86Standby :1008FF10
+XF86AudioLowerVolume :1008FF11
+XF86AudioMute :1008FF12
+XF86AudioRaiseVolume :1008FF13
+XF86AudioPlay :1008FF14
+XF86AudioStop :1008FF15
+XF86AudioPrev :1008FF16
+XF86AudioNext :1008FF17
+XF86HomePage :1008FF18
+XF86Mail :1008FF19
+XF86Start :1008FF1A
+XF86Search :1008FF1B
+XF86AudioRecord :1008FF1C
+XF86Calculator :1008FF1D
+XF86Memo :1008FF1E
+XF86ToDoList :1008FF1F
+XF86Calendar :1008FF20
+XF86PowerDown :1008FF21
+XF86ContrastAdjust :1008FF22
+XF86RockerUp :1008FF23
+XF86RockerDown :1008FF24
+XF86RockerEnter :1008FF25
+XF86Back :1008FF26
+XF86Forward :1008FF27
+XF86Stop :1008FF28
+XF86Refresh :1008FF29
+XF86PowerOff :1008FF2A
+XF86WakeUp :1008FF2B
+XF86Eject :1008FF2C
+XF86ScreenSaver :1008FF2D
+XF86WWW :1008FF2E
+XF86Sleep :1008FF2F
+XF86Favorites :1008FF30
+XF86AudioPause :1008FF31
+XF86AudioMedia :1008FF32
+XF86MyComputer :1008FF33
+XF86VendorHome :1008FF34
+XF86LightBulb :1008FF35
+XF86Shop :1008FF36
+XF86History :1008FF37
+XF86OpenURL :1008FF38
+XF86AddFavorite :1008FF39
+XF86HotLinks :1008FF3A
+XF86BrightnessAdjust :1008FF3B
+XF86Finance :1008FF3C
+XF86Community :1008FF3D
+XF86AudioRewind :1008FF3E
+XF86BackForward :1008FF3F
+XF86Launch0 :1008FF40
+XF86Launch1 :1008FF41
+XF86Launch2 :1008FF42
+XF86Launch3 :1008FF43
+XF86Launch4 :1008FF44
+XF86Launch5 :1008FF45
+XF86Launch6 :1008FF46
+XF86Launch7 :1008FF47
+XF86Launch8 :1008FF48
+XF86Launch9 :1008FF49
+XF86LaunchA :1008FF4A
+XF86LaunchB :1008FF4B
+XF86LaunchC :1008FF4C
+XF86LaunchD :1008FF4D
+XF86LaunchE :1008FF4E
+XF86LaunchF :1008FF4F
+XF86ApplicationLeft :1008FF50
+XF86ApplicationRight :1008FF51
+XF86Book :1008FF52
+XF86CD :1008FF53
+XF86Calculater :1008FF54
+XF86Clear :1008FF55
+XF86Close :1008FF56
+XF86Copy :1008FF57
+XF86Cut :1008FF58
+XF86Display :1008FF59
+XF86DOS :1008FF5A
+XF86Documents :1008FF5B
+XF86Excel :1008FF5C
+XF86Explorer :1008FF5D
+XF86Game :1008FF5E
+XF86Go :1008FF5F
+XF86iTouch :1008FF60
+XF86LogOff :1008FF61
+XF86Market :1008FF62
+XF86Meeting :1008FF63
+XF86MenuKB :1008FF65
+XF86MenuPB :1008FF66
+XF86MySites :1008FF67
+XF86New :1008FF68
+XF86News :1008FF69
+XF86OfficeHome :1008FF6A
+XF86Open :1008FF6B
+XF86Option :1008FF6C
+XF86Paste :1008FF6D
+XF86Phone :1008FF6E
+XF86Q :1008FF70
+XF86Reply :1008FF72
+XF86Reload :1008FF73
+XF86RotateWindows :1008FF74
+XF86RotationPB :1008FF75
+XF86RotationKB :1008FF76
+XF86Save :1008FF77
+XF86ScrollUp :1008FF78
+XF86ScrollDown :1008FF79
+XF86ScrollClick :1008FF7A
+XF86Send :1008FF7B
+XF86Spell :1008FF7C
+XF86SplitScreen :1008FF7D
+XF86Support :1008FF7E
+XF86TaskPane :1008FF7F
+XF86Terminal :1008FF80
+XF86Tools :1008FF81
+XF86Travel :1008FF82
+XF86UserPB :1008FF84
+XF86User1KB :1008FF85
+XF86User2KB :1008FF86
+XF86Video :1008FF87
+XF86WheelButton :1008FF88
+XF86Word :1008FF89
+XF86Xfer :1008FF8A
+XF86ZoomIn :1008FF8B
+XF86ZoomOut :1008FF8C
+XF86Away :1008FF8D
+XF86Messenger :1008FF8E
+XF86WebCam :1008FF8F
+XF86MailForward :1008FF90
+XF86Pictures :1008FF91
+XF86Music :1008FF92
+XF86Battery :1008FF93
+XF86Bluetooth :1008FF94
+XF86WLAN :1008FF95
+XF86UWB :1008FF96
+XF86AudioForward :1008FF97
+XF86AudioRepeat :1008FF98
+XF86AudioRandomPlay :1008FF99
+XF86Subtitle :1008FF9A
+XF86AudioCycleTrack :1008FF9B
+XF86CycleAngle :1008FF9C
+XF86FrameBack :1008FF9D
+XF86FrameForward :1008FF9E
+XF86Time :1008FF9F
+XF86Select :1008FFA0
+XF86View :1008FFA1
+XF86TopMenu :1008FFA2
+XF86Red :1008FFA3
+XF86Green :1008FFA4
+XF86Yellow :1008FFA5
+XF86Blue :1008FFA6
+XF86Suspend :1008FFA7
+XF86Hibernate :1008FFA8
+XF86TouchpadToggle :1008FFA9
+
+! XFree86 special action keys
+XF86_Switch_VT_1 :1008FE01
+XF86_Switch_VT_2 :1008FE02
+XF86_Switch_VT_3 :1008FE03
+XF86_Switch_VT_4 :1008FE04
+XF86_Switch_VT_5 :1008FE05
+XF86_Switch_VT_6 :1008FE06
+XF86_Switch_VT_7 :1008FE07
+XF86_Switch_VT_8 :1008FE08
+XF86_Switch_VT_9 :1008FE09
+XF86_Switch_VT_10 :1008FE0A
+XF86_Switch_VT_11 :1008FE0B
+XF86_Switch_VT_12 :1008FE0C
+XF86_Ungrab :1008FE20
+XF86_ClearGrab :1008FE21
+XF86_Next_VMode :1008FE22
+XF86_Prev_VMode :1008FE23
+
+usldead_acute :100000A8
+usldead_grave :100000A9
+usldead_diaeresis :100000AB
+usldead_asciicircum :100000AA
+usldead_asciitilde :100000AC
+usldead_cedilla :1000FE2C
+usldead_ring :1000FEB0
diff --git a/zlib/Makefile b/zlib/Makefile
index 6bba86c73..69371a621 100644
--- a/zlib/Makefile
+++ b/zlib/Makefile
@@ -1,5 +1,8 @@
-all:
- -@echo "Please use ./configure first. Thank you."
+SHAREDLIB=zlib1
+DEFFILE = win32\zlib.def
+DEFINES += ZLIB_DLL
+
+CSRCS = adler32.c compress.c crc32.c uncompr.c deflate.c trees.c \
+ zutil.c inflate.c infback.c inftrees.c inffast.c gzlib.c \
+ gzclose.c gzread.c gzwrite.c
-distclean:
- make -f Makefile.in distclean
diff --git a/zlib/contrib/masmx64/bld_ml64.bat b/zlib/contrib/masmx64/bld_ml64.bat
index 8f9343d0a..8f9343d0a 100644..100755
--- a/zlib/contrib/masmx64/bld_ml64.bat
+++ b/zlib/contrib/masmx64/bld_ml64.bat
diff --git a/zlib/contrib/masmx86/bld_ml32.bat b/zlib/contrib/masmx86/bld_ml32.bat
index e1b86bf68..e1b86bf68 100644..100755
--- a/zlib/contrib/masmx86/bld_ml32.bat
+++ b/zlib/contrib/masmx86/bld_ml32.bat
diff --git a/zlib/crc32.c b/zlib/crc32.c
index 979a7190a..a9d79b8ff 100644
--- a/zlib/crc32.c
+++ b/zlib/crc32.c
@@ -21,6 +21,8 @@
DYNAMIC_CRC_TABLE and MAKECRCH can be #defined to write out crc32.h.
*/
+#include <stdio.h>
+
#ifdef MAKECRCH
# include <stdio.h>
# ifndef DYNAMIC_CRC_TABLE
diff --git a/zlib/deflate.c b/zlib/deflate.c
index 696957705..4d709322e 100644
--- a/zlib/deflate.c
+++ b/zlib/deflate.c
@@ -49,6 +49,8 @@
/* @(#) $Id$ */
+#include <stdio.h>
+
#include "deflate.h"
const char deflate_copyright[] =
diff --git a/zlib/gzlib.c b/zlib/gzlib.c
index fae202ef8..1819af951 100644
--- a/zlib/gzlib.c
+++ b/zlib/gzlib.c
@@ -99,7 +99,7 @@ local gzFile gz_open(path, fd, mode)
#ifdef O_CLOEXEC
int cloexec = 0;
#endif
-#ifdef O_EXCL
+#ifdef _O_EXCL
int exclusive = 0;
#endif
@@ -228,14 +228,14 @@ local gzFile gz_open(path, fd, mode)
(cloexec ? O_CLOEXEC : 0) |
#endif
(state->mode == GZ_READ ?
- O_RDONLY :
- (O_WRONLY | O_CREAT |
-#ifdef O_EXCL
- (exclusive ? O_EXCL : 0) |
+ _O_RDONLY :
+ (_O_WRONLY | _O_CREAT |
+#ifdef _O_EXCL
+ (exclusive ? _O_EXCL : 0) |
#endif
(state->mode == GZ_WRITE ?
- O_TRUNC :
- O_APPEND)));
+ _O_TRUNC :
+ _O_APPEND)));
/* open the file with the appropriate flags (or just use fd) */
state->fd = fd > -1 ? fd : (
diff --git a/zlib/infback.c b/zlib/infback.c
index f3833c2e4..b0ff94bb6 100644
--- a/zlib/infback.c
+++ b/zlib/infback.c
@@ -10,6 +10,7 @@
inflate_fast() can be used with either inflate.c or infback.c.
*/
+#include <stdio.h>
#include "zutil.h"
#include "inftrees.h"
#include "inflate.h"
diff --git a/zlib/inffast.c b/zlib/inffast.c
index bda59ceb6..a2e4fad43 100644
--- a/zlib/inffast.c
+++ b/zlib/inffast.c
@@ -3,6 +3,7 @@
* For conditions of distribution and use, see copyright notice in zlib.h
*/
+#include <stdio.h>
#include "zutil.h"
#include "inftrees.h"
#include "inflate.h"
diff --git a/zlib/inflate.c b/zlib/inflate.c
index 870f89bb4..cb4cb8675 100644
--- a/zlib/inflate.c
+++ b/zlib/inflate.c
@@ -80,6 +80,8 @@
* The history for versions after 1.2.0 are in ChangeLog in zlib distribution.
*/
+#include <stdio.h>
+
#include "zutil.h"
#include "inftrees.h"
#include "inflate.h"
diff --git a/zlib/inftrees.c b/zlib/inftrees.c
index 44d89cf24..4ccc909e0 100644
--- a/zlib/inftrees.c
+++ b/zlib/inftrees.c
@@ -3,6 +3,7 @@
* For conditions of distribution and use, see copyright notice in zlib.h
*/
+#include <stdio.h>
#include "zutil.h"
#include "inftrees.h"
diff --git a/zlib/trees.c b/zlib/trees.c
index 1fd7759ef..5e19f2630 100644
--- a/zlib/trees.c
+++ b/zlib/trees.c
@@ -34,6 +34,8 @@
/* #define GEN_TREES_H */
+#include <stdio.h>
+
#include "deflate.h"
#ifdef DEBUG
diff --git a/zlib/win32/zlib.def b/zlib/win32/zlib.def
index face65518..e18a5e0ca 100644
--- a/zlib/win32/zlib.def
+++ b/zlib/win32/zlib.def
@@ -1,86 +1,3 @@
; zlib data compression library
EXPORTS
-; basic functions
- zlibVersion
- deflate
- deflateEnd
- inflate
- inflateEnd
-; advanced functions
- deflateSetDictionary
- deflateCopy
- deflateReset
- deflateParams
- deflateTune
- deflateBound
- deflatePending
- deflatePrime
- deflateSetHeader
- inflateSetDictionary
- inflateGetDictionary
- inflateSync
- inflateCopy
- inflateReset
- inflateReset2
- inflatePrime
- inflateMark
- inflateGetHeader
- inflateBack
- inflateBackEnd
- zlibCompileFlags
-; utility functions
- compress
- compress2
- compressBound
- uncompress
- gzopen
- gzdopen
- gzbuffer
- gzsetparams
- gzread
- gzwrite
- gzprintf
- gzvprintf
- gzputs
- gzgets
- gzputc
- gzgetc
- gzungetc
- gzflush
- gzseek
- gzrewind
- gztell
- gzoffset
- gzeof
- gzdirect
- gzclose
- gzclose_r
- gzclose_w
- gzerror
- gzclearerr
-; large file functions
- gzopen64
- gzseek64
- gztell64
- gzoffset64
- adler32_combine64
- crc32_combine64
-; checksum functions
- adler32
- crc32
- adler32_combine
- crc32_combine
-; various hacks, don't look :)
- deflateInit_
- deflateInit2_
- inflateInit_
- inflateInit2_
- inflateBackInit_
- gzgetc_
- zError
- inflateSyncPoint
- get_crc_table
- inflateUndermine
- inflateResetKeep
- deflateResetKeep
- gzopen_w
+
diff --git a/zlib/zutil.c b/zlib/zutil.c
index 23d2ebef0..daa8633c6 100644
--- a/zlib/zutil.c
+++ b/zlib/zutil.c
@@ -5,6 +5,8 @@
/* @(#) $Id$ */
+#include <stdio.h>
+
#include "zutil.h"
#ifndef Z_SOLO
# include "gzguts.h"